diff --git a/Examples/MAX32520/AES/Makefile b/Examples/MAX32520/AES/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/AES/Makefile +++ b/Examples/MAX32520/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/AES/main.c b/Examples/MAX32520/AES/main.c index c67ab6df760..5b440eb38c2 100644 --- a/Examples/MAX32520/AES/main.c +++ b/Examples/MAX32520/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_bayes_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_class_marks_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_convolution_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32520/ARM-DSP/arm_dotproduct_example_f32/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_fft_bin_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_fir_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_fir_example/arm_fir_example_f32.c b/Examples/MAX32520/ARM-DSP/arm_fir_example/arm_fir_example_f32.c index 8b320013c83..491cb554441 100644 --- a/Examples/MAX32520/ARM-DSP/arm_fir_example/arm_fir_example_f32.c +++ b/Examples/MAX32520/ARM-DSP/arm_fir_example/arm_fir_example_f32.c @@ -1,10 +1,10 @@ /* ---------------------------------------------------------------------- * Copyright (C) 2010-2012 ARM Limited. All rights reserved. * -* $Date: 17. January 2013 -* $Revision: V1.4.0 -* -* Project: CMSIS DSP Library + * $Date: 17. January 2013 + * $Revision: V1.4.0 + * + * Project: CMSIS DSP Library * Title: arm_fir_example_f32.c * * Description: Example code demonstrating how an FIR filter can be used @@ -12,31 +12,31 @@ * * Target Processor: Cortex-M4/Cortex-M3 * -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* - Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* - Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in -* the documentation and/or other materials provided with the -* distribution. -* - Neither the name of ARM LIMITED nor the names of its contributors -* may be used to endorse or promote products derived from this -* software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * - Neither the name of ARM LIMITED nor the names of its contributors + * may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. * -------------------------------------------------------------------- */ /** diff --git a/Examples/MAX32520/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_graphic_equalizer_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_linear_interp_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_matrix_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_signal_converge_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_sin_cos_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_svm_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32520/ARM-DSP/arm_variance_example/Makefile index 4a90286e549..c5ecbcbe62d 100644 --- a/Examples/MAX32520/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32520/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/CRC/Makefile b/Examples/MAX32520/CRC/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/CRC/Makefile +++ b/Examples/MAX32520/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/CRC/main.c b/Examples/MAX32520/CRC/main.c index e4e18f1ecda..2bbf472ca99 100644 --- a/Examples/MAX32520/CRC/main.c +++ b/Examples/MAX32520/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/Coremark/Makefile b/Examples/MAX32520/Coremark/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Coremark/Makefile +++ b/Examples/MAX32520/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/DMA/Makefile b/Examples/MAX32520/DMA/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/DMA/Makefile +++ b/Examples/MAX32520/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/DMA/main.c b/Examples/MAX32520/DMA/main.c index 4f300796f3f..ad11609c0d3 100644 --- a/Examples/MAX32520/DMA/main.c +++ b/Examples/MAX32520/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/ECDSA/Makefile b/Examples/MAX32520/ECDSA/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/ECDSA/Makefile +++ b/Examples/MAX32520/ECDSA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ECDSA/main.c b/Examples/MAX32520/ECDSA/main.c index 4c55b622708..0b10ee8d6c1 100644 --- a/Examples/MAX32520/ECDSA/main.c +++ b/Examples/MAX32520/ECDSA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/EEPROM_Emulator/Makefile b/Examples/MAX32520/EEPROM_Emulator/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/EEPROM_Emulator/Makefile +++ b/Examples/MAX32520/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/EEPROM_Emulator/include/cache.h b/Examples/MAX32520/EEPROM_Emulator/include/cache.h index 5812d2d8fac..34b2d9b3d11 100644 --- a/Examples/MAX32520/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32520/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32520/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32520/EEPROM_Emulator/include/eeprom.h index 90c30df9e75..8d507d43ea8 100644 --- a/Examples/MAX32520/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32520/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32520/EEPROM_Emulator/main.c b/Examples/MAX32520/EEPROM_Emulator/main.c index c6a3621f5fc..efe36bfc9ab 100644 --- a/Examples/MAX32520/EEPROM_Emulator/main.c +++ b/Examples/MAX32520/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/EEPROM_Emulator/src/cache.c b/Examples/MAX32520/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32520/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32520/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32520/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32520/EEPROM_Emulator/src/eeprom.c index 56a2d40829d..0441eca3fc1 100644 --- a/Examples/MAX32520/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32520/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32520/Flash/Makefile b/Examples/MAX32520/Flash/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Flash/Makefile +++ b/Examples/MAX32520/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Flash/main.c b/Examples/MAX32520/Flash/main.c index 583fb8e4d45..2079f5261aa 100644 --- a/Examples/MAX32520/Flash/main.c +++ b/Examples/MAX32520/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32520/Flash_CLI/FreeRTOSConfig.h index c330441ec06..4dda5aaf7c0 100644 --- a/Examples/MAX32520/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32520/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32520/Flash_CLI/Makefile b/Examples/MAX32520/Flash_CLI/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Flash_CLI/Makefile +++ b/Examples/MAX32520/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Flash_CLI/definitions.h b/Examples/MAX32520/Flash_CLI/definitions.h index 60ea776ef3c..2b1962d6daf 100644 --- a/Examples/MAX32520/Flash_CLI/definitions.h +++ b/Examples/MAX32520/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32520/Flash_CLI/main.c b/Examples/MAX32520/Flash_CLI/main.c index 4333c332603..b6b9c226b6b 100644 --- a/Examples/MAX32520/Flash_CLI/main.c +++ b/Examples/MAX32520/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32520/FreeRTOSDemo/FreeRTOSConfig.h index c55a9491dd7..da7dee768f7 100644 --- a/Examples/MAX32520/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32520/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32520/FreeRTOSDemo/Makefile b/Examples/MAX32520/FreeRTOSDemo/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/FreeRTOSDemo/Makefile +++ b/Examples/MAX32520/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/FreeRTOSDemo/main.c b/Examples/MAX32520/FreeRTOSDemo/main.c index 6c1876474f7..7a5865d594f 100644 --- a/Examples/MAX32520/FreeRTOSDemo/main.c +++ b/Examples/MAX32520/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/GPIO/Makefile b/Examples/MAX32520/GPIO/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/GPIO/Makefile +++ b/Examples/MAX32520/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/GPIO/main.c b/Examples/MAX32520/GPIO/main.c index 61466402025..6ba6be6f1a0 100644 --- a/Examples/MAX32520/GPIO/main.c +++ b/Examples/MAX32520/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/Hello_World/Makefile b/Examples/MAX32520/Hello_World/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Hello_World/Makefile +++ b/Examples/MAX32520/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Hello_World/main.c b/Examples/MAX32520/Hello_World/main.c index 74c1e55a35c..50e1e0e326d 100644 --- a/Examples/MAX32520/Hello_World/main.c +++ b/Examples/MAX32520/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/Hello_World_Cpp/Makefile b/Examples/MAX32520/Hello_World_Cpp/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Hello_World_Cpp/Makefile +++ b/Examples/MAX32520/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Hello_World_Cpp/main.cpp b/Examples/MAX32520/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32520/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32520/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32520/I2C_MNGR/FreeRTOSConfig.h index 7c1d9e03a3c..f689ff67701 100644 --- a/Examples/MAX32520/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32520/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32520/I2C_MNGR/Makefile b/Examples/MAX32520/I2C_MNGR/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/I2C_MNGR/Makefile +++ b/Examples/MAX32520/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.c index 4f6eb7f96b5..c5c3e434bf3 100644 --- a/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.h index fc04c96397e..542f35ab5f9 100644 --- a/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32520/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32520/I2C_MNGR/main.c b/Examples/MAX32520/I2C_MNGR/main.c index 477b83e96e0..9a9800b86bf 100644 --- a/Examples/MAX32520/I2C_MNGR/main.c +++ b/Examples/MAX32520/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/I2C_SCAN/Makefile b/Examples/MAX32520/I2C_SCAN/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/I2C_SCAN/Makefile +++ b/Examples/MAX32520/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/I2C_SCAN/main.c b/Examples/MAX32520/I2C_SCAN/main.c index dba44d3c2bb..c27882d4104 100644 --- a/Examples/MAX32520/I2C_SCAN/main.c +++ b/Examples/MAX32520/I2C_SCAN/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file main.c diff --git a/Examples/MAX32520/I2C_Sensor/Makefile b/Examples/MAX32520/I2C_Sensor/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/I2C_Sensor/Makefile +++ b/Examples/MAX32520/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/I2C_Sensor/main.c b/Examples/MAX32520/I2C_Sensor/main.c index 054dd52105a..b42b676bef6 100644 --- a/Examples/MAX32520/I2C_Sensor/main.c +++ b/Examples/MAX32520/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/ICC/Makefile b/Examples/MAX32520/ICC/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/ICC/Makefile +++ b/Examples/MAX32520/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/ICC/main.c b/Examples/MAX32520/ICC/main.c index 15945f7205f..08747ac0584 100644 --- a/Examples/MAX32520/ICC/main.c +++ b/Examples/MAX32520/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/LP/Makefile b/Examples/MAX32520/LP/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/LP/Makefile +++ b/Examples/MAX32520/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/LP/lp-sla.ld b/Examples/MAX32520/LP/lp-sla.ld index 48f77abe9cd..a8274cefa74 100644 --- a/Examples/MAX32520/LP/lp-sla.ld +++ b/Examples/MAX32520/LP/lp-sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32520/LP/main.c b/Examples/MAX32520/LP/main.c index e4192710382..42f4ff1a769 100644 --- a/Examples/MAX32520/LP/main.c +++ b/Examples/MAX32520/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32520/Library_Generate/Makefile b/Examples/MAX32520/Library_Generate/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Library_Generate/Makefile +++ b/Examples/MAX32520/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Library_Generate/gpiolib.c b/Examples/MAX32520/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32520/Library_Generate/gpiolib.c +++ b/Examples/MAX32520/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32520/Library_Generate/gpiolib.h b/Examples/MAX32520/Library_Generate/gpiolib.h index 2f39aa4885a..c549f070f4f 100644 --- a/Examples/MAX32520/Library_Generate/gpiolib.h +++ b/Examples/MAX32520/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32520/Library_Use/Makefile b/Examples/MAX32520/Library_Use/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Library_Use/Makefile +++ b/Examples/MAX32520/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Library_Use/lib/include/gpiolib.h b/Examples/MAX32520/Library_Use/lib/include/gpiolib.h index 31e4d7614c1..c2c94e0c387 100644 --- a/Examples/MAX32520/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32520/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32520/Library_Use/main.c b/Examples/MAX32520/Library_Use/main.c index beb652cbdfe..30cae26c2d7 100644 --- a/Examples/MAX32520/Library_Use/main.c +++ b/Examples/MAX32520/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32520/LockDebug/Makefile b/Examples/MAX32520/LockDebug/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/LockDebug/Makefile +++ b/Examples/MAX32520/LockDebug/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/LockDebug/main.c b/Examples/MAX32520/LockDebug/main.c index 1ffd99d4012..e71cd3af908 100644 --- a/Examples/MAX32520/LockDebug/main.c +++ b/Examples/MAX32520/LockDebug/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/OTP_Dump/Makefile b/Examples/MAX32520/OTP_Dump/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/OTP_Dump/Makefile +++ b/Examples/MAX32520/OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/SCPA_OTP_Dump/Makefile b/Examples/MAX32520/SCPA_OTP_Dump/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/SCPA_OTP_Dump/Makefile +++ b/Examples/MAX32520/SCPA_OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/SCPA_OTP_Dump/main.c b/Examples/MAX32520/SCPA_OTP_Dump/main.c index a10203e6440..a1e2d43e71a 100644 --- a/Examples/MAX32520/SCPA_OTP_Dump/main.c +++ b/Examples/MAX32520/SCPA_OTP_Dump/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/SCPA_OTP_Dump/utils.c b/Examples/MAX32520/SCPA_OTP_Dump/utils.c index 3a84ee68f25..ff7ccf8019a 100644 --- a/Examples/MAX32520/SCPA_OTP_Dump/utils.c +++ b/Examples/MAX32520/SCPA_OTP_Dump/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32520/SCPA_OTP_Dump/utils.h b/Examples/MAX32520/SCPA_OTP_Dump/utils.h index 71b93c6f7f4..9bcb59aa7d1 100644 --- a/Examples/MAX32520/SCPA_OTP_Dump/utils.h +++ b/Examples/MAX32520/SCPA_OTP_Dump/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_SCPA_OTP_DUMP_UTILS_H_ diff --git a/Examples/MAX32520/SFE/Makefile b/Examples/MAX32520/SFE/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/SFE/Makefile +++ b/Examples/MAX32520/SFE/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/SFE/main.c b/Examples/MAX32520/SFE/main.c index fcfe5e34ed2..e4ae13a7516 100644 --- a/Examples/MAX32520/SFE/main.c +++ b/Examples/MAX32520/SFE/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/SFE_Host/Makefile b/Examples/MAX32520/SFE_Host/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/SFE_Host/Makefile +++ b/Examples/MAX32520/SFE_Host/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/SFE_Host/main.c b/Examples/MAX32520/SFE_Host/main.c index 455402a1041..1082c8b5a37 100644 --- a/Examples/MAX32520/SFE_Host/main.c +++ b/Examples/MAX32520/SFE_Host/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/SFE_Host/sfe_host.c b/Examples/MAX32520/SFE_Host/sfe_host.c index 0dbd1807762..f509d695aff 100644 --- a/Examples/MAX32520/SFE_Host/sfe_host.c +++ b/Examples/MAX32520/SFE_Host/sfe_host.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/SFE_Host/sfe_host.h b/Examples/MAX32520/SFE_Host/sfe_host.h index 32e53372ab8..f3b01216909 100644 --- a/Examples/MAX32520/SFE_Host/sfe_host.h +++ b/Examples/MAX32520/SFE_Host/sfe_host.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32520_SFE_HOST_SFE_HOST_H_ diff --git a/Examples/MAX32520/SMON/Makefile b/Examples/MAX32520/SMON/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/SMON/Makefile +++ b/Examples/MAX32520/SMON/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/SMON/main.c b/Examples/MAX32520/SMON/main.c index ae2c5c3c2f3..6ceced27320 100644 --- a/Examples/MAX32520/SMON/main.c +++ b/Examples/MAX32520/SMON/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/SPI/Makefile b/Examples/MAX32520/SPI/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/SPI/Makefile +++ b/Examples/MAX32520/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/SPI/main.c b/Examples/MAX32520/SPI/main.c index f383606084b..c71337bb347 100644 --- a/Examples/MAX32520/SPI/main.c +++ b/Examples/MAX32520/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/SPI_MasterSlave/Makefile b/Examples/MAX32520/SPI_MasterSlave/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/SPI_MasterSlave/Makefile +++ b/Examples/MAX32520/SPI_MasterSlave/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/SPI_MasterSlave/main.c b/Examples/MAX32520/SPI_MasterSlave/main.c index f712f555bf9..50a8f1e5945 100644 --- a/Examples/MAX32520/SPI_MasterSlave/main.c +++ b/Examples/MAX32520/SPI_MasterSlave/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32520/TMR/Makefile b/Examples/MAX32520/TMR/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/TMR/Makefile +++ b/Examples/MAX32520/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/TMR/main.c b/Examples/MAX32520/TMR/main.c index cca62118c1c..89e26221fc8 100644 --- a/Examples/MAX32520/TMR/main.c +++ b/Examples/MAX32520/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32520/TRNG/Makefile b/Examples/MAX32520/TRNG/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/TRNG/Makefile +++ b/Examples/MAX32520/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/TRNG/main.c b/Examples/MAX32520/TRNG/main.c index 856c376b74c..6a38f51df6a 100644 --- a/Examples/MAX32520/TRNG/main.c +++ b/Examples/MAX32520/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32520/UCL/Makefile b/Examples/MAX32520/UCL/Makefile index 1dfbb5081e6..fc500867716 100644 --- a/Examples/MAX32520/UCL/Makefile +++ b/Examples/MAX32520/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Watchdog/Makefile b/Examples/MAX32520/Watchdog/Makefile index 39c460599c7..4ba11c64818 100644 --- a/Examples/MAX32520/Watchdog/Makefile +++ b/Examples/MAX32520/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32520/Watchdog/main.c b/Examples/MAX32520/Watchdog/main.c index aa49d6a1a87..06b6d68de39 100644 --- a/Examples/MAX32520/Watchdog/main.c +++ b/Examples/MAX32520/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32572/.gitignore b/Examples/MAX32572/.gitignore deleted file mode 100644 index f959a5f90cf..00000000000 --- a/Examples/MAX32572/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*/scp_packets \ No newline at end of file diff --git a/Examples/MAX32572/ADC/.cproject b/Examples/MAX32572/ADC/.cproject deleted file mode 100644 index f168013be1d..00000000000 --- a/Examples/MAX32572/ADC/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/ADC/.project b/Examples/MAX32572/ADC/.project deleted file mode 100644 index f549c17fa59..00000000000 --- a/Examples/MAX32572/ADC/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - ADC - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/ADC/.vscode/c_cpp_properties.json b/Examples/MAX32572/ADC/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/ADC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/ADC/.vscode/launch.json b/Examples/MAX32572/ADC/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/ADC/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/ADC/.vscode/settings.json b/Examples/MAX32572/ADC/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/ADC/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/ADC/.vscode/tasks.json b/Examples/MAX32572/ADC/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/ADC/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/ADC/ADC.launch b/Examples/MAX32572/ADC/ADC.launch deleted file mode 100644 index e77c5050323..00000000000 --- a/Examples/MAX32572/ADC/ADC.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/ADC/Makefile b/Examples/MAX32572/ADC/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/ADC/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/ADC/README.md b/Examples/MAX32572/ADC/README.md deleted file mode 100644 index 52ab8b1ed91..00000000000 --- a/Examples/MAX32572/ADC/README.md +++ /dev/null @@ -1,48 +0,0 @@ -## Description - -Demonstrates the use of the ADC by continuously monitoring ADC input channel 0. Vary the voltage on the AIN0 input (0 to 0.9V) to observe different readings from the ADC. - -High and low limits are set arbitrarily to demonstrate the detection of overvoltage and undervoltage conditions respectively. If the ADC reading exceeds 0x300, the example will report that the high limit has been reached. If the ADC reading falls below 0x25, the example will report the low limit has been reached. - -Any reading that exceeds the full-scale value of the ADC will have an '*' appended to the value. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -ADC Example -0: 0x0001 - - -0: 0x003f - - -0: 0x0001 - - -0: 0x0001 - - -0: 0x0289 - - -0: 0x0001 -``` diff --git a/Examples/MAX32572/ADC/main.c b/Examples/MAX32572/ADC/main.c deleted file mode 100644 index 9b798eade84..00000000000 --- a/Examples/MAX32572/ADC/main.c +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief ADC demo application - * @details Continuously monitors the ADC channels - */ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ - -/* Change to #undef USE_INTERRUPTS for polling mode */ -#define USE_INTERRUPTS -// #define DMA - -/***** Globals *****/ -#ifdef USE_INTERRUPTS -volatile unsigned int adc_done = 0; -#endif - -volatile unsigned int dma_done = 0; -static uint16_t adc_val; - -/***** Functions *****/ - -#ifdef USE_INTERRUPTS -void adc_complete_cb(void *req, int error) -{ - adc_done = 1; - return; -} -void ADC_IRQHandler(void) -{ - MXC_ADC_Handler(); -} -#endif - -#ifdef DMA -void DMA0_IRQHandler(void) -{ - MXC_DMA_Handler(); - MXC_DMA_ReleaseChannel(0); - dma_done = 1; -} - -void DMA_Callback(int ch, int error) -{ - // Read 32-bit value and truncate to 16-bit for output depending on data align bit - if ((MXC_ADC->ctrl & MXC_F_ADC_CTRL_DATA_ALIGN) != 0) { - adc_val = (uint16_t)(adc_val >> 6); /* MSB justified */ - } -} -#endif - -int main(void) -{ - // unsigned int overflow; - - printf("ADC Example\n"); - - /* Initialize ADC */ - if (MXC_ADC_Init() != E_NO_ERROR) { - printf("Error Bad Parameter\n"); - - while (1) {} - } - - /* Set up LIMIT0 to monitor high and low trip points */ - MXC_ADC_SetMonitorChannel(MXC_ADC_MONITOR_0, MXC_ADC_CH_0); - MXC_ADC_SetMonitorHighThreshold(MXC_ADC_MONITOR_0, 0x300); - MXC_ADC_SetMonitorLowThreshold(MXC_ADC_MONITOR_0, 0x25); - MXC_ADC_EnableMonitor(MXC_ADC_MONITOR_0); - -#ifdef USE_INTERRUPTS - NVIC_EnableIRQ(ADC_IRQn); -#endif - -#ifdef DMA - MXC_DMA_ReleaseChannel(0); - NVIC_EnableIRQ(DMA0_IRQn); -#endif - - while (1) { - /* Flash LED when starting ADC cycle */ - LED_On(0); - MXC_TMR_Delay(MXC_TMR0, MSEC(10)); - LED_Off(0); - - /* Convert channel 0 */ -#ifdef USE_INTERRUPTS - adc_done = 0; - MXC_ADC_StartConversionAsync(MXC_ADC_CH_0, adc_complete_cb); - - while (!adc_done) {} - -#endif - -#ifdef DMA - dma_done = 0; - - MXC_ADC_StartConversionDMA(MXC_ADC_CH_0, &adc_val, DMA_Callback); - - while (!dma_done) {} - - printf("0: 0x%04x\n", adc_val); -#else - // MXC_ADC_StartConversion(MXC_ADC_CH_0); - static uint8_t overflow; - overflow = (MXC_ADC_GetData(&adc_val) == E_OVERFLOW ? 1 : 0); - /* Display results on OLED display, display asterisk if overflow */ - printf("0: 0x%04x%s\n\n", adc_val, overflow ? "*" : " "); -#endif - - /* Determine if programmable limits on AIN0 were exceeded */ - if (MXC_ADC_GetFlags() & (MXC_F_ADC_INTR_LO_LIMIT_IF | MXC_F_ADC_INTR_HI_LIMIT_IF)) { - printf(" %s Limit on AIN0 ", - (MXC_ADC_GetFlags() & MXC_F_ADC_INTR_LO_LIMIT_IF) ? "Low" : "High"); - MXC_ADC_ClearFlags(MXC_F_ADC_INTR_LO_LIMIT_IF | MXC_F_ADC_INTR_HI_LIMIT_IF); - } else { - printf(" "); - } - - printf("\n"); - - /* Delay for 1/4 second before next reading */ - MXC_TMR_Delay(MXC_TMR0, MSEC(250)); - } -} diff --git a/Examples/MAX32572/AES/.cproject b/Examples/MAX32572/AES/.cproject deleted file mode 100644 index e68cf2f772c..00000000000 --- a/Examples/MAX32572/AES/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/AES/.project b/Examples/MAX32572/AES/.project deleted file mode 100644 index d8829bc7bf2..00000000000 --- a/Examples/MAX32572/AES/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - AES - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/AES/.vscode/c_cpp_properties.json b/Examples/MAX32572/AES/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/AES/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/AES/.vscode/launch.json b/Examples/MAX32572/AES/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/AES/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/AES/.vscode/settings.json b/Examples/MAX32572/AES/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/AES/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/AES/.vscode/tasks.json b/Examples/MAX32572/AES/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/AES/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/AES/AES.launch b/Examples/MAX32572/AES/AES.launch deleted file mode 100644 index d9a404f49e5..00000000000 --- a/Examples/MAX32572/AES/AES.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/AES/Makefile b/Examples/MAX32572/AES/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/AES/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/AES/README.md b/Examples/MAX32572/AES/README.md deleted file mode 100644 index 321dfcf9dbe..00000000000 --- a/Examples/MAX32572/AES/README.md +++ /dev/null @@ -1,56 +0,0 @@ -## Description - -This application demonstrates both encryption and decryption using AES. A block of data is encrypted. The resulting encrypted data is then decrypted. The new plain text is then compared with the original plain text to confirm they match. This is repeated three times using a different key size each time. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** AES Example ***** -Test Cipher Sync -Pass. -Test Cipher Async -Pass. -Test Cipher Sync -Pass. -Test Cipher Async -Pass. -Test Cipher Sync -Pass. -Test Cipher Async -Pass. -Test Cipher Sync -Pass. -Test Cipher Async -Pass. -Test Cipher Sync -Pass. -Test Cipher Async -Pass. -Test Cipher Sync -Pass. -Test Cipher Async -Pass. - -Example Succeeded -``` - - diff --git a/Examples/MAX32572/AES/main.c b/Examples/MAX32572/AES/main.c deleted file mode 100644 index ef12aedc182..00000000000 --- a/Examples/MAX32572/AES/main.c +++ /dev/null @@ -1,422 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief AES Example - * @details Encryption and decryption of AES on different modes (ECB and OFB) with different bit sizes (128, 192, and 256) - */ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Definitions *****/ - -volatile int wait; -volatile int callback_result; -volatile int counter; - -#define MXC_AES_DATA_LEN (128 / 8) -#define MXC_AES_KEY_128_LEN (128 / 8) -#define MXC_AES_KEY_192_LEN (192 / 8) -#define MXC_AES_KEY_256_LEN (256 / 8) - -/***** Globals *****/ -unsigned int rnd_no[4] = { 0 }; -uint8_t var_rnd_no[16] = { 0 }; - -char temp[] = { 0x00, 0x00, 0x00 }; - -/***** Globals *****/ -char result[512]; - -/***** Functions *****/ -void CRYPTO_IRQHandler(void) -{ - MXC_CTB_Handler(); -} - -void Test_Callback(void *req, int result) -{ - wait = 0; - callback_result = result; -} - -//Convert ascii to byte -void ascii_to_byte(const char *src, char *dst, int len) -{ - int i; - - for (i = 0; i < len; ++i) { - int val; - temp[0] = *src; - src++; - temp[1] = *src; - src++; - sscanf(temp, "%0x", &val); - dst[i] = val; - } - - return; -} - -//Verify by comparing calculated to expected -int AES_check(char *calculated, char *expected, int len) -{ - int i, fail = 0; - - for (i = 0; i < len; ++i) { - if (calculated[i] != expected[i]) { - ++fail; - } - } - - if (fail > 0) { - printf("Fail.\n"); - } else { - printf("Pass.\n"); - return 0; - } - - return -1; -} - -int AES128_ECB_enc(int asynchronous) -{ - printf(asynchronous ? "Test Cipher Async\n" : "Test Cipher Sync\n"); - - char *_key = "797f8b3d176dac5b7e34a2d539c4ef36"; - char key[MXC_AES_KEY_128_LEN]; - ascii_to_byte(_key, key, MXC_AES_KEY_128_LEN); - - const char *iv_src = ""; - char iv_dst[16]; - ascii_to_byte(iv_src, iv_dst, 16); - - char *_pt = "00000000000000000000000000000000"; - char pt[MXC_AES_DATA_LEN]; - ascii_to_byte(_pt, pt, MXC_AES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)pt, MXC_AES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_AES128); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_AES_KEY_128_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_EncryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Encrypt(&cipher_req); - } - - const char *_expected = "322FD6E503395CDB89A77AC53D2B954F"; - char expected[MXC_AES_DATA_LEN]; - ascii_to_byte(_expected, expected, MXC_AES_DATA_LEN); - - return AES_check(result, expected, MXC_AES_DATA_LEN); -} - -int AES128_ECB_dec(int asynchronous) -{ - printf(asynchronous ? "Test Cipher Async\n" : "Test Cipher Sync\n"); - - char *_key = "797f8b3d176dac5b7e34a2d539c4ef36"; - char key[MXC_AES_KEY_128_LEN]; - ascii_to_byte(_key, key, MXC_AES_KEY_128_LEN); - - const char *iv_src = ""; - char iv_dst[16]; - ascii_to_byte(iv_src, iv_dst, 16); - - char *_pt = "322FD6E503395CDB89A77AC53D2B954F"; - char pt[MXC_AES_DATA_LEN]; - ascii_to_byte(_pt, pt, MXC_AES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)pt, MXC_AES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_AES128); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_AES_KEY_128_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_DecryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Decrypt(&cipher_req); - } - - const char *_expected = "00000000000000000000000000000000"; - char expected[MXC_AES_DATA_LEN]; - ascii_to_byte(_expected, expected, MXC_AES_DATA_LEN); - - return AES_check(result, expected, MXC_AES_DATA_LEN); -} - -int AES192_ECB_enc(int asynchronous) -{ - printf(asynchronous ? "Test Cipher Async\n" : "Test Cipher Sync\n"); - - char *_key = "797f8b3d176dac5b7e34a2d539c4ef367a16f8635f626473"; - char key[MXC_AES_KEY_192_LEN]; - ascii_to_byte(_key, key, MXC_AES_KEY_192_LEN); - - const char *iv_src = ""; - char iv_dst[16]; - ascii_to_byte(iv_src, iv_dst, 16); - - char *_pt = "00000000000000000000000000000000"; - char pt[MXC_AES_DATA_LEN]; - ascii_to_byte(_pt, pt, MXC_AES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)pt, MXC_AES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_AES192); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_AES_KEY_192_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_EncryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Encrypt(&cipher_req); - } - - const char *_expected = "91D29E37E9B5B39CB2BF1AC8FD0FCFD2"; - char expected[MXC_AES_DATA_LEN]; - ascii_to_byte(_expected, expected, MXC_AES_DATA_LEN); - - return AES_check(result, expected, MXC_AES_DATA_LEN); -} - -int AES192_ECB_dec(int asynchronous) -{ - printf(asynchronous ? "Test Cipher Async\n" : "Test Cipher Sync\n"); - - char *_key = "797f8b3d176dac5b7e34a2d539c4ef367a16f8635f626473"; - char key[MXC_AES_KEY_192_LEN]; - ascii_to_byte(_key, key, MXC_AES_KEY_192_LEN); - - const char *iv_src = ""; - char iv_dst[16]; - ascii_to_byte(iv_src, iv_dst, 16); - - char *_pt = "91D29E37E9B5B39CB2BF1AC8FD0FCFD2"; - char pt[MXC_AES_DATA_LEN]; - ascii_to_byte(_pt, pt, MXC_AES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)pt, MXC_AES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_AES192); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_AES_KEY_192_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_DecryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Decrypt(&cipher_req); - } - - const char *_expected = "00000000000000000000000000000000"; - char expected[MXC_AES_DATA_LEN]; - ascii_to_byte(_expected, expected, MXC_AES_DATA_LEN); - - return AES_check(result, expected, MXC_AES_DATA_LEN); -} - -int AES256_ECB_enc(int asynchronous) -{ - printf(asynchronous ? "Test Cipher Async\n" : "Test Cipher Sync\n"); - - char *_key = "797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e"; - char key[MXC_AES_KEY_256_LEN]; - ascii_to_byte(_key, key, MXC_AES_KEY_256_LEN); - - const char *iv_src = ""; - char iv_dst[16]; - ascii_to_byte(iv_src, iv_dst, 16); - - char *_pt = "00000000000000000000000000000000"; - char pt[MXC_AES_DATA_LEN]; - ascii_to_byte(_pt, pt, MXC_AES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)pt, MXC_AES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_AES256); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_AES_KEY_256_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_EncryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Encrypt(&cipher_req); - } - - const char *_expected = "a74289fe73a4c123ca189ea1e1b49ad5"; - char expected[MXC_AES_DATA_LEN]; - ascii_to_byte(_expected, expected, MXC_AES_DATA_LEN); - - return AES_check(result, expected, MXC_AES_DATA_LEN); -} - -int AES256_ECB_dec(int asynchronous) -{ - printf(asynchronous ? "Test Cipher Async\n" : "Test Cipher Sync\n"); - - char *_key = "797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e"; - char key[MXC_AES_KEY_256_LEN]; - ascii_to_byte(_key, key, MXC_AES_KEY_256_LEN); - - const char *iv_src = ""; - char iv_dst[16]; - ascii_to_byte(iv_src, iv_dst, 16); - - char *_pt = "a74289fe73a4c123ca189ea1e1b49ad5"; - char pt[MXC_AES_DATA_LEN]; - ascii_to_byte(_pt, pt, MXC_AES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)pt, MXC_AES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_AES256); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_AES_KEY_256_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_DecryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Decrypt(&cipher_req); - } - - const char *_expected = "00000000000000000000000000000000"; - char expected[MXC_AES_DATA_LEN]; - ascii_to_byte(_expected, expected, MXC_AES_DATA_LEN); - - return AES_check(result, expected, MXC_AES_DATA_LEN); -} - -// ***************************************************************************** -int main(void) -{ - printf("\n***** AES Example *****\n"); - - int fail = 0; - - //ECB - fail += AES128_ECB_enc(0); - fail += AES128_ECB_enc(1); - fail += AES128_ECB_dec(0); - fail += AES128_ECB_dec(1); - fail += AES192_ECB_enc(0); - fail += AES192_ECB_enc(1); - fail += AES192_ECB_dec(0); - fail += AES192_ECB_dec(1); - fail += AES256_ECB_enc(0); - fail += AES256_ECB_enc(1); - fail += AES256_ECB_dec(0); - fail += AES256_ECB_dec(1); - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/Barcode_Decoder/.cproject b/Examples/MAX32572/Barcode_Decoder/.cproject deleted file mode 100644 index 9fd63a840f3..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Barcode_Decoder/.project b/Examples/MAX32572/Barcode_Decoder/.project deleted file mode 100644 index b2c04466aa5..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Barcode_Decoder - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Barcode_Decoder/.vscode/c_cpp_properties.json b/Examples/MAX32572/Barcode_Decoder/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Barcode_Decoder/.vscode/launch.json b/Examples/MAX32572/Barcode_Decoder/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Barcode_Decoder/.vscode/settings.json b/Examples/MAX32572/Barcode_Decoder/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Barcode_Decoder/.vscode/tasks.json b/Examples/MAX32572/Barcode_Decoder/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Barcode_Decoder/Barcode_Decoder.launch b/Examples/MAX32572/Barcode_Decoder/Barcode_Decoder.launch deleted file mode 100644 index ab8f4b1e36d..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/Barcode_Decoder.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Barcode_Decoder/Makefile b/Examples/MAX32572/Barcode_Decoder/Makefile deleted file mode 100644 index 67e5c78bb5c..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/Makefile +++ /dev/null @@ -1,170 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += src/ov2640.c -SRCS += src/ov7670.c -SRCS += src/camera.c -SRCS += src/app_loop.c -SRCS += src/ov7725.c -SRCS += src/sccb.c -SRCS += src/utils.c -SRCS += src/gc0308.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += ./src - -# Where to find header files for this test -IPATH = . -IPATH += barcode/include -IPATH += ./include - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - -PROJ_LIBS += barcode - -# Use these variables to add project specific tool options -PROJ_CFLAGS += -DBRCD_RDR_IMG_TO_PC -PROJ_CFLAGS += -DDISABLE_EVKIT_DISPLAY -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs -PROJ_LDFLAGS += -Lbarcode - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Barcode_Decoder/README.md b/Examples/MAX32572/Barcode_Decoder/README.md deleted file mode 100644 index 667b747c8d8..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD \ No newline at end of file diff --git a/Examples/MAX32572/Barcode_Decoder/barcode/include/zbar.h b/Examples/MAX32572/Barcode_Decoder/barcode/include/zbar.h deleted file mode 100644 index ffe729ff1ea..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/barcode/include/zbar.h +++ /dev/null @@ -1,1513 +0,0 @@ -/*------------------------------------------------------------------------ - * Copyright 2007-2010 (c) Jeff Brown - * - * This file is part of the ZBar Bar Code Reader. - * - * The ZBar Bar Code Reader is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * The ZBar Bar Code Reader is distributed in the hope that it will be - * useful, but WITHOUT ANY WARRANTY; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser Public License for more details. - * - * You should have received a copy of the GNU Lesser Public License - * along with the ZBar Bar Code Reader; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301 USA - * - * http://sourceforge.net/projects/zbar - *------------------------------------------------------------------------*/ -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_BARCODE_INCLUDE_ZBAR_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_BARCODE_INCLUDE_ZBAR_H_ - -#include - -/** @file - * ZBar Barcode Reader C API definition - */ - -/** @mainpage - * - * interface to the barcode reader is available at several levels. - * most applications will want to use the high-level interfaces: - * - * @section high-level High-Level Interfaces - * - * these interfaces wrap all library functionality into an easy-to-use - * package for a specific toolkit: - * - the "GTK+ 2.x widget" may be used with GTK GUI applications. a - * Python wrapper is included for PyGtk - * - the @ref zbar::QZBar "Qt4 widget" may be used with Qt GUI - * applications - * - the Processor interface (in @ref c-processor "C" or @ref - * zbar::Processor "C++") adds a scanning window to an application - * with no GUI. - * - * @section mid-level Intermediate Interfaces - * - * building blocks used to construct high-level interfaces: - * - the ImageScanner (in @ref c-imagescanner "C" or @ref - * zbar::ImageScanner "C++") looks for barcodes in a library defined - * image object - * - the Window abstraction (in @ref c-window "C" or @ref - * zbar::Window "C++") sinks library images, displaying them on the - * platform display - * - the Video abstraction (in @ref c-video "C" or @ref zbar::Video - * "C++") sources library images from a video device - * - * @section low-level Low-Level Interfaces - * - * direct interaction with barcode scanning and decoding: - * - the Scanner (in @ref c-scanner "C" or @ref zbar::Scanner "C++") - * looks for barcodes in a linear intensity sample stream - * - the Decoder (in @ref c-decoder "C" or @ref zbar::Decoder "C++") - * extracts barcodes from a stream of bar and space widths - */ - -/** @name Global library interfaces */ -/*@{*/ - -/** "color" of element: bar or space. */ -typedef enum zbar_color_e { - ZBAR_SPACE = 0, /**< light area or space between bars */ - ZBAR_BAR = 1, /**< dark area or colored bar segment */ -} zbar_color_t; - -/** decoded symbol type. */ -typedef enum zbar_symbol_type_e { - ZBAR_NONE = 0, /**< no symbol decoded */ - ZBAR_PARTIAL = 1, /**< intermediate status */ - ZBAR_EAN2 = 2, /**< GS1 2-digit add-on */ - ZBAR_EAN5 = 5, /**< GS1 5-digit add-on */ - ZBAR_EAN8 = 8, /**< EAN-8 */ - ZBAR_UPCE = 9, /**< UPC-E */ - ZBAR_ISBN10 = 10, /**< ISBN-10 (from EAN-13). @since 0.4 */ - ZBAR_UPCA = 12, /**< UPC-A */ - ZBAR_EAN13 = 13, /**< EAN-13 */ - ZBAR_ISBN13 = 14, /**< ISBN-13 (from EAN-13). @since 0.4 */ - ZBAR_COMPOSITE = 15, /**< EAN/UPC composite */ - ZBAR_I25 = 25, /**< Interleaved 2 of 5. @since 0.4 */ - ZBAR_DATABAR = 34, /**< GS1 DataBar (RSS). @since 0.11 */ - ZBAR_DATABAR_EXP = 35, /**< GS1 DataBar Expanded. @since 0.11 */ - ZBAR_CODABAR = 38, /**< Codabar. @since 0.11 */ - ZBAR_CODE39 = 39, /**< Code 39. @since 0.4 */ - ZBAR_PDF417 = 57, /**< PDF417. @since 0.6 */ - ZBAR_QRCODE = 64, /**< QR Code. @since 0.10 */ - ZBAR_SQCODE = 80, /**< SQ Code. @since 0.20.1 */ - ZBAR_CODE93 = 93, /**< Code 93. @since 0.11 */ - ZBAR_CODE128 = 128, /**< Code 128 */ - - /* - * Please see _zbar_get_symbol_hash() if adding - * anything after 128 - */ - - /** mask for base symbol type. - * @deprecated in 0.11, remove this from existing code - */ - ZBAR_SYMBOL = 0x00ff, - /** 2-digit add-on flag. - * @deprecated in 0.11, a ::ZBAR_EAN2 component is used for - * 2-digit GS1 add-ons - */ - ZBAR_ADDON2 = 0x0200, - /** 5-digit add-on flag. - * @deprecated in 0.11, a ::ZBAR_EAN5 component is used for - * 5-digit GS1 add-ons - */ - ZBAR_ADDON5 = 0x0500, - /** add-on flag mask. - * @deprecated in 0.11, GS1 add-ons are represented using composite - * symbols of type ::ZBAR_COMPOSITE; add-on components use ::ZBAR_EAN2 - * or ::ZBAR_EAN5 - */ - ZBAR_ADDON = 0x0700, -} zbar_symbol_type_t; - -/** decoded symbol coarse orientation. - * @since 0.11 - */ -typedef enum zbar_orientation_e { - ZBAR_ORIENT_UNKNOWN = -1, /**< unable to determine orientation */ - ZBAR_ORIENT_UP, /**< upright, read left to right */ - ZBAR_ORIENT_RIGHT, /**< sideways, read top to bottom */ - ZBAR_ORIENT_DOWN, /**< upside-down, read right to left */ - ZBAR_ORIENT_LEFT, /**< sideways, read bottom to top */ -} zbar_orientation_t; - -/** error codes. */ -typedef enum zbar_error_e { - ZBAR_OK = 0, /**< no error */ - ZBAR_ERR_NOMEM, /**< out of memory */ - ZBAR_ERR_INTERNAL, /**< internal library error */ - ZBAR_ERR_UNSUPPORTED, /**< unsupported request */ - ZBAR_ERR_INVALID, /**< invalid request */ - ZBAR_ERR_SYSTEM, /**< system error */ - ZBAR_ERR_LOCKING, /**< locking error */ - ZBAR_ERR_BUSY, /**< all resources busy */ - ZBAR_ERR_XDISPLAY, /**< X11 display error */ - ZBAR_ERR_XPROTO, /**< X11 protocol error */ - ZBAR_ERR_CLOSED, /**< output window is closed */ - ZBAR_ERR_WINAPI, /**< windows system error */ - ZBAR_ERR_NUM /**< number of error codes */ -} zbar_error_t; - -/** decoder configuration options. - * @since 0.4 - */ -typedef enum zbar_config_e { - ZBAR_CFG_ENABLE = 0, /**< enable symbology/feature */ - ZBAR_CFG_ADD_CHECK, /**< enable check digit when optional */ - ZBAR_CFG_EMIT_CHECK, /**< return check digit when present */ - ZBAR_CFG_ASCII, /**< enable full ASCII character set */ - ZBAR_CFG_NUM, /**< number of boolean decoder configs */ - - ZBAR_CFG_MIN_LEN = 0x20, /**< minimum data length for valid decode */ - ZBAR_CFG_MAX_LEN, /**< maximum data length for valid decode */ - - ZBAR_CFG_UNCERTAINTY = 0x40, /**< required video consistency frames */ - - ZBAR_CFG_POSITION = 0x80, /**< enable scanner to collect position data */ - ZBAR_CFG_TEST_INVERTED, /**< if fails to decode, test inverted */ - - ZBAR_CFG_X_DENSITY = 0x100, /**< image scanner vertical scan density */ - ZBAR_CFG_Y_DENSITY, /**< image scanner horizontal scan density */ -} zbar_config_t; - -/** decoder symbology modifier flags. - * @since 0.11 - */ -typedef enum zbar_modifier_e { - /** barcode tagged as GS1 (EAN.UCC) reserved - * (eg, FNC1 before first data character). - * data may be parsed as a sequence of GS1 AIs - */ - ZBAR_MOD_GS1 = 0, - - /** barcode tagged as AIM reserved - * (eg, FNC1 after first character or digit pair) - */ - ZBAR_MOD_AIM, - - /** number of modifiers */ - ZBAR_MOD_NUM, -} zbar_modifier_t; - -typedef enum video_control_type_e { - VIDEO_CNTL_INTEGER = 1, - VIDEO_CNTL_MENU, - VIDEO_CNTL_BUTTON, - VIDEO_CNTL_INTEGER64, - VIDEO_CNTL_STRING, - VIDEO_CNTL_BOOLEAN, -} video_control_type_t; - -/** store video control menu - * @param name name of the menu item - * @param val integer value associated with the item - */ -typedef struct video_control_menu_s { - char *name; - int64_t value; -} video_control_menu_t; - -/** store video controls - * @param name name of the control - * @param group name of the control group/class - * @param type type of the control - * @param min minimum value of control (if control is integer) - * @param max maximum value of control (if control is integer) - * @param def default value of control (if control is integer) - * @param step increment steps (if control is integer) - * @param menu menu array - * @param menu_size menu size - * @since 0.20 - */ -typedef struct video_controls_s { - char *name; - char *group; - video_control_type_t type; - - int64_t min, max, def; - uint64_t step; - - unsigned int menu_size; - video_control_menu_t *menu; - - void *next; - - // video drivers may add extra private data in the end of this struct -} video_controls_t; - -/** store a video resolution - * @param width width of the video window - * @param height length of the video window - * @param max_fps maximum streaming speed, in frames per second - * @since 0.22 - */ -struct video_resolution_s { - unsigned int width, height; - float max_fps; -}; - -/** retrieve runtime library version information. - * @param major set to the running major version (unless NULL) - * @param minor set to the running minor version (unless NULL) - * @returns 0 - */ -extern int zbar_version(unsigned *major, unsigned *minor, unsigned *patch); - -/** set global library debug level. - * @param verbosity desired debug level. higher values create more spew - */ -extern void zbar_set_verbosity(int verbosity); - -/** increase global library debug level. - * eg, for -vvvv - */ -extern void zbar_increase_verbosity(void); - -/** retrieve string name for symbol encoding. - * @param sym symbol type encoding - * @returns the static string name for the specified symbol type, - * or "UNKNOWN" if the encoding is not recognized - */ -extern const char *zbar_get_symbol_name(zbar_symbol_type_t sym); - -/** retrieve string name for addon encoding. - * @param sym symbol type encoding - * @returns static string name for any addon, or the empty string - * if no addons were decoded - * @deprecated in 0.11 - */ -extern const char *zbar_get_addon_name(zbar_symbol_type_t sym); - -/** retrieve string name for configuration setting. - * @param config setting to name - * @returns static string name for config, - * or the empty string if value is not a known config - */ -extern const char *zbar_get_config_name(zbar_config_t config); - -/** retrieve string name for modifier. - * @param modifier flag to name - * @returns static string name for modifier, - * or the empty string if the value is not a known flag - */ -extern const char *zbar_get_modifier_name(zbar_modifier_t modifier); - -/** retrieve string name for orientation. - * @param orientation orientation encoding - * @returns the static string name for the specified orientation, - * or "UNKNOWN" if the orientation is not recognized - * @since 0.11 - */ -extern const char *zbar_get_orientation_name(zbar_orientation_t orientation); - -/** parse a configuration string of the form "[symbology.]config[=value]". - * the config must match one of the recognized names. - * the symbology, if present, must match one of the recognized names. - * if symbology is unspecified, it will be set to 0. - * if value is unspecified it will be set to 1. - * @returns 0 if the config is parsed successfully, 1 otherwise - * @since 0.4 - */ -extern int zbar_parse_config(const char *config_string, zbar_symbol_type_t *symbology, - zbar_config_t *config, int *value); - -/** consistently compute fourcc values across architectures - * (adapted from v4l2 specification) - * @since 0.11 - */ -#define zbar_fourcc(a, b, c, d) \ - ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) - -/** parse a fourcc string into its encoded integer value. - * @since 0.11 - */ -static inline uint32_t zbar_fourcc_parse(const char *format) -{ - uint32_t fourcc = 0; - - if (format) { - int i; - - for (i = 0; i < 4 && format[i]; i++) { - fourcc |= ((uint32_t)format[i]) << (i * 8); - } - } - - return (fourcc); -} - -/** @internal type unsafe error API (don't use) */ -extern int _zbar_error_spew(const void *object, int verbosity); -extern const char *_zbar_error_string(const void *object, int verbosity); -extern zbar_error_t _zbar_get_error_code(const void *object); - -/*@}*/ - -struct zbar_symbol_s; -typedef struct zbar_symbol_s zbar_symbol_t; - -struct zbar_symbol_set_s; -typedef struct zbar_symbol_set_s zbar_symbol_set_t; - -/*------------------------------------------------------------*/ -/** @name Symbol interface - * decoded barcode symbol result object. stores type, data, and image - * location of decoded symbol. all memory is owned by the library - */ -/*@{*/ - -/** @typedef zbar_symbol_t - * opaque decoded symbol object. - */ - -/** symbol reference count manipulation. - * increment the reference count when you store a new reference to the - * symbol. decrement when the reference is no longer used. do not - * refer to the symbol once the count is decremented and the - * containing image has been recycled or destroyed. - * @note the containing image holds a reference to the symbol, so you - * only need to use this if you keep a symbol after the image has been - * destroyed or reused. - * @since 0.9 - */ -extern void zbar_symbol_ref(const zbar_symbol_t *symbol, int refs); - -/** retrieve type of decoded symbol. - * @returns the symbol type - */ -extern zbar_symbol_type_t zbar_symbol_get_type(const zbar_symbol_t *symbol); - -/** retrieve symbology boolean config settings. - * @returns a bitmask indicating which configs were set for the detected - * symbology during decoding. - * @since 0.11 - */ -extern unsigned int zbar_symbol_get_configs(const zbar_symbol_t *symbol); - -/** retrieve symbology modifier flag settings. - * @returns a bitmask indicating which characteristics were detected - * during decoding. - * @since 0.11 - */ -extern unsigned int zbar_symbol_get_modifiers(const zbar_symbol_t *symbol); - -/** retrieve data decoded from symbol. - * @returns the data string - */ -extern const char *zbar_symbol_get_data(const zbar_symbol_t *symbol); - -/** retrieve length of binary data. - * @returns the length of the decoded data - */ -extern unsigned int zbar_symbol_get_data_length(const zbar_symbol_t *symbol); - -/** retrieve a symbol confidence metric. - * @returns an unscaled, relative quantity: larger values are better - * than smaller values, where "large" and "small" are application - * dependent. - * @note expect the exact definition of this quantity to change as the - * metric is refined. currently, only the ordered relationship - * between two values is defined and will remain stable in the future - * @since 0.9 - */ -extern int zbar_symbol_get_quality(const zbar_symbol_t *symbol); - -/** retrieve current cache count. when the cache is enabled for the - * image_scanner this provides inter-frame reliability and redundancy - * information for video streams. - * @returns < 0 if symbol is still uncertain. - * @returns 0 if symbol is newly verified. - * @returns > 0 for duplicate symbols - */ -extern int zbar_symbol_get_count(const zbar_symbol_t *symbol); - -/** retrieve the number of points in the location polygon. the - * location polygon defines the image area that the symbol was - * extracted from. - * @returns the number of points in the location polygon - * @note this is currently not a polygon, but the scan locations - * where the symbol was decoded - */ -extern unsigned zbar_symbol_get_loc_size(const zbar_symbol_t *symbol); - -/** retrieve location polygon x-coordinates. - * points are specified by 0-based index. - * @returns the x-coordinate for a point in the location polygon. - * @returns -1 if index is out of range - */ -extern int zbar_symbol_get_loc_x(const zbar_symbol_t *symbol, unsigned index); - -/** retrieve location polygon y-coordinates. - * points are specified by 0-based index. - * @returns the y-coordinate for a point in the location polygon. - * @returns -1 if index is out of range - */ -extern int zbar_symbol_get_loc_y(const zbar_symbol_t *symbol, unsigned index); - -/** retrieve general orientation of decoded symbol. - * @returns a coarse, axis-aligned indication of symbol orientation or - * ::ZBAR_ORIENT_UNKNOWN if unknown - * @since 0.11 - */ -extern zbar_orientation_t zbar_symbol_get_orientation(const zbar_symbol_t *symbol); - -/** iterate the set to which this symbol belongs (there can be only one). - * @returns the next symbol in the set, or - * @returns NULL when no more results are available - */ -extern const zbar_symbol_t *zbar_symbol_next(const zbar_symbol_t *symbol); - -/** retrieve components of a composite result. - * @returns the symbol set containing the components - * @returns NULL if the symbol is already a physical symbol - * @since 0.10 - */ -extern const zbar_symbol_set_t *zbar_symbol_get_components(const zbar_symbol_t *symbol); - -/** iterate components of a composite result. - * @returns the first physical component symbol of a composite result - * @returns NULL if the symbol is already a physical symbol - * @since 0.10 - */ -extern const zbar_symbol_t *zbar_symbol_first_component(const zbar_symbol_t *symbol); - -/** print XML symbol element representation to user result buffer. - * @see http://zbar.sourceforge.net/2008/barcode.xsd for the schema. - * @param symbol is the symbol to print - * @param buffer is the inout result pointer, it will be reallocated - * with a larger size if necessary. - * @param buflen is inout length of the result buffer. - * @returns the buffer pointer - * @since 0.6 - */ -extern char *zbar_symbol_xml(const zbar_symbol_t *symbol, char **buffer, unsigned *buflen); - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Symbol Set interface - * container for decoded result symbols associated with an image - * or a composite symbol. - * @since 0.10 - */ -/*@{*/ - -/** @typedef zbar_symbol_set_t - * opaque symbol iterator object. - * @since 0.10 - */ - -/** reference count manipulation. - * increment the reference count when you store a new reference. - * decrement when the reference is no longer used. do not refer to - * the object any longer once references have been released. - * @since 0.10 - */ -extern void zbar_symbol_set_ref(const zbar_symbol_set_t *symbols, int refs); - -/** retrieve set size. - * @returns the number of symbols in the set. - * @since 0.10 - */ -extern int zbar_symbol_set_get_size(const zbar_symbol_set_t *symbols); - -/** set iterator. - * @returns the first decoded symbol result in a set - * @returns NULL if the set is empty - * @since 0.10 - */ -extern const zbar_symbol_t *zbar_symbol_set_first_symbol(const zbar_symbol_set_t *symbols); - -/** raw result iterator. - * @returns the first decoded symbol result in a set, *before* filtering - * @returns NULL if the set is empty - * @since 0.11 - */ -extern const zbar_symbol_t *zbar_symbol_set_first_unfiltered(const zbar_symbol_set_t *symbols); - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Image interface - * stores image data samples along with associated format and size - * metadata - */ -/*@{*/ - -struct zbar_image_s; -/** - * zbar_image_t: opaque image object. - */ -typedef struct zbar_image_s zbar_image_t; - -/** cleanup handler callback function. - * called to free sample data when an image is destroyed. - */ -typedef void(zbar_image_cleanup_handler_t)(zbar_image_t *image); - -/** data handler callback function. - * called when decoded symbol results are available for an image - */ -typedef void(zbar_image_data_handler_t)(zbar_image_t *image, const void *userdata); - -/** new image constructor. - * @returns a new image object with uninitialized data and format. - * this image should be destroyed (using zbar_image_destroy()) as - * soon as the application is finished with it - */ -extern zbar_image_t *zbar_image_create(void); - -/** image destructor. all images created by or returned to the - * application should be destroyed using this function. when an image - * is destroyed, the associated data cleanup handler will be invoked - * if available - * @note make no assumptions about the image or the data buffer. - * they may not be destroyed/cleaned immediately if the library - * is still using them. if necessary, use the cleanup handler hook - * to keep track of image data buffers - */ -extern void zbar_image_destroy(zbar_image_t *image); - -/** image reference count manipulation. - * increment the reference count when you store a new reference to the - * image. decrement when the reference is no longer used. do not - * refer to the image any longer once the count is decremented. - * zbar_image_ref(image, -1) is the same as zbar_image_destroy(image) - * @since 0.5 - */ -extern void zbar_image_ref(zbar_image_t *image, int refs); - -/** image format conversion. refer to the documentation for supported - * image formats - * @returns a @em new image with the sample data from the original image - * converted to the requested format. the original image is - * unaffected. - * @note the converted image size may be rounded (up) due to format - * constraints - */ -extern zbar_image_t *zbar_image_convert(const zbar_image_t *image, uint32_t format); - -/** image format conversion with crop/pad. - * if the requested size is larger than the image, the last row/column - * are duplicated to cover the difference. if the requested size is - * smaller than the image, the extra rows/columns are dropped from the - * right/bottom. - * @returns a @em new image with the sample data from the original - * image converted to the requested format and size. - * @note the image is @em not scaled - * @see zbar_image_convert() - * @since 0.4 - */ -extern zbar_image_t *zbar_image_convert_resize(const zbar_image_t *image, uint32_t format, - unsigned width, unsigned height); - -/** retrieve the image format. - * @returns the fourcc describing the format of the image sample data - */ -extern uint32_t zbar_image_get_format(const zbar_image_t *image); - -/** retrieve a "sequence" (page/frame) number associated with this image. - * @since 0.6 - */ -extern unsigned zbar_image_get_sequence(const zbar_image_t *image); - -/** retrieve the width of the image. - * @returns the width in sample columns - */ -extern unsigned zbar_image_get_width(const zbar_image_t *image); - -/** retrieve the height of the image. - * @returns the height in sample rows - */ -extern unsigned zbar_image_get_height(const zbar_image_t *image); - -/** retrieve both dimensions of the image. - * fills in the width and height in samples - */ -extern void zbar_image_get_size(const zbar_image_t *image, unsigned *width, unsigned *height); - -/** retrieve the crop rectangle. - * fills in the image coordinates of the upper left corner and size - * of an axis-aligned rectangular area of the image that will be scanned. - * defaults to the full image - * @since 0.11 - */ -extern void zbar_image_get_crop(const zbar_image_t *image, unsigned *x, unsigned *y, - unsigned *width, unsigned *height); - -/** return the image sample data. the returned data buffer is only - * valid until zbar_image_destroy() is called - */ -extern const void *zbar_image_get_data(const zbar_image_t *image); - -/** return the size of image data. - * @since 0.6 - */ -extern uint32_t zbar_image_get_data_length(const zbar_image_t *img); - -/** retrieve the decoded results. - * @returns the (possibly empty) set of decoded symbols - * @returns NULL if the image has not been scanned - * @since 0.10 - */ -extern const zbar_symbol_set_t *zbar_image_get_symbols(const zbar_image_t *image); - -/** associate the specified symbol set with the image, replacing any - * existing results. use NULL to release the current results from the - * image. - * @see zbar_image_scanner_recycle_image() - * @since 0.10 - */ -extern void zbar_image_set_symbols(zbar_image_t *image, const zbar_symbol_set_t *symbols); - -/** image_scanner decode result iterator. - * @returns the first decoded symbol result for an image - * or NULL if no results are available - */ -extern const zbar_symbol_t *zbar_image_first_symbol(const zbar_image_t *image); - -/** specify the fourcc image format code for image sample data. - * refer to the documentation for supported formats. - * @note this does not convert the data! - * (see zbar_image_convert() for that) - */ -extern void zbar_image_set_format(zbar_image_t *image, uint32_t format); - -/** associate a "sequence" (page/frame) number with this image. - * @since 0.6 - */ -extern void zbar_image_set_sequence(zbar_image_t *image, unsigned sequence_num); - -/** specify the pixel size of the image. - * @note this also resets the crop rectangle to the full image - * (0, 0, width, height) - * @note this does not affect the data! - */ -extern void zbar_image_set_size(zbar_image_t *image, unsigned width, unsigned height); - -/** specify a rectangular region of the image to scan. - * the rectangle will be clipped to the image boundaries. - * defaults to the full image specified by zbar_image_set_size() - */ -extern void zbar_image_set_crop(zbar_image_t *image, unsigned x, unsigned y, unsigned width, - unsigned height); - -/** specify image sample data. when image data is no longer needed by - * the library the specific data cleanup handler will be called - * (unless NULL) - * @note application image data will not be modified by the library - */ -extern void zbar_image_set_data(zbar_image_t *image, const void *data, uint32_t data_byte_length, - zbar_image_cleanup_handler_t *cleanup_hndlr); - -/** built-in cleanup handler. - * passes the image data buffer to free() - */ -extern void zbar_image_free_data(zbar_image_t *image); - -/** associate user specified data value with an image. - * @since 0.5 - */ -extern void zbar_image_set_userdata(zbar_image_t *image, void *userdata); - -/** return user specified data value associated with the image. - * @since 0.5 - */ -extern void *zbar_image_get_userdata(const zbar_image_t *image); - -/** dump raw image data to a file for debug. - * the data will be prefixed with a 16 byte header consisting of: - * - 4 bytes uint = 0x676d697a ("zimg") - * - 4 bytes format fourcc - * - 2 bytes width - * - 2 bytes height - * - 4 bytes size of following image data in bytes - * this header can be dumped w/eg: - * @verbatim - od -Ax -tx1z -N16 -w4 [file] -@endverbatim - * for some formats the image can be displayed/converted using - * ImageMagick, eg: - * @verbatim - display -size 640x480+16 [-depth ?] [-sampling-factor ?x?] \ - {GRAY,RGB,UYVY,YUV}:[file] -@endverbatim - * - * @param image the image object to dump - * @param filebase base filename, appended with ".XXXX.zimg" where - * XXXX is the format fourcc - * @returns 0 on success or a system error code on failure - */ -extern int zbar_image_write(const zbar_image_t *image, const char *filebase); - -/** read back an image in the format written by zbar_image_write() - * @note TBD - */ -extern zbar_image_t *zbar_image_read(char *filename); - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Processor interface - * @anchor c-processor - * high-level self-contained image processor. - * processes video and images for barcodes, optionally displaying - * images to a library owned output window - */ -/*@{*/ - -struct zbar_processor_s; -/** opaque standalone processor object. */ -typedef struct zbar_processor_s zbar_processor_t; - -/** constructor. - * if threaded is set and threading is available the processor - * will spawn threads where appropriate to avoid blocking and - * improve responsiveness - */ -extern zbar_processor_t *zbar_processor_create(int threaded); - -/** destructor. cleans up all resources associated with the processor - */ -extern void zbar_processor_destroy(zbar_processor_t *processor); - -/** (re)initialization. - * opens a video input device and/or prepares to display output - */ -extern int zbar_processor_init(zbar_processor_t *processor, const char *video_device, - int enable_display); - -/** request a preferred size for the video image from the device. - * the request may be adjusted or completely ignored by the driver. - * @note must be called before zbar_processor_init() - * @since 0.6 - */ -extern int zbar_processor_request_size(zbar_processor_t *processor, unsigned width, - unsigned height); - -/** request a preferred video driver interface version for - * debug/testing. - * @note must be called before zbar_processor_init() - * @since 0.6 - */ -extern int zbar_processor_request_interface(zbar_processor_t *processor, int version); - -/** request a preferred video I/O mode for debug/testing. You will - * get errors if the driver does not support the specified mode. - * @verbatim - 0 = auto-detect - 1 = force I/O using read() - 2 = force memory mapped I/O using mmap() - 3 = force USERPTR I/O (v4l2 only) -@endverbatim - * @note must be called before zbar_processor_init() - * @since 0.7 - */ -extern int zbar_processor_request_iomode(zbar_processor_t *video, int iomode); - -/** force specific input and output formats for debug/testing. - * @note must be called before zbar_processor_init() - */ -extern int zbar_processor_force_format(zbar_processor_t *processor, uint32_t input_format, - uint32_t output_format); - -/** setup result handler callback. - * the specified function will be called by the processor whenever - * new results are available from the video stream or a static image. - * pass a NULL value to disable callbacks. - * @param processor the object on which to set the handler. - * @param handler the function to call when new results are available. - * @param userdata is set as with zbar_processor_set_userdata(). - * @returns the previously registered handler - */ -extern zbar_image_data_handler_t * -zbar_processor_set_data_handler(zbar_processor_t *processor, zbar_image_data_handler_t *handler, - const void *userdata); - -/** associate user specified data value with the processor. - * @since 0.6 - */ -extern void zbar_processor_set_userdata(zbar_processor_t *processor, void *userdata); - -/** return user specified data value associated with the processor. - * @since 0.6 - */ -extern void *zbar_processor_get_userdata(const zbar_processor_t *processor); - -/** set config for indicated symbology (0 for all) to specified value. - * @returns 0 for success, non-0 for failure (config does not apply to - * specified symbology, or value out of range) - * @see zbar_decoder_set_config() - * @since 0.4 - */ -extern int zbar_processor_set_config(zbar_processor_t *processor, zbar_symbol_type_t symbology, - zbar_config_t config, int value); - -/** set video control value - * @returns 0 for success, non-0 for failure - * @since 0.20 - * @see zbar_video_set_control() - */ -extern int zbar_processor_set_control(zbar_processor_t *processor, const char *control_name, - int value); - -/** get video control value - * @returns 0 for success, non-0 for failure - * @since 0.20 - * @see zbar_video_get_control() - */ -extern int zbar_processor_get_control(zbar_processor_t *processor, const char *control_name, - int *value); - -/** parse configuration string using zbar_parse_config() - * and apply to processor using zbar_processor_set_config(). - * @returns 0 for success, non-0 for failure - * @see zbar_parse_config() - * @see zbar_processor_set_config() - * @since 0.4 - */ -static inline int zbar_processor_parse_config(zbar_processor_t *processor, - const char *config_string) -{ - zbar_symbol_type_t sym; - zbar_config_t cfg; - int val; - return (zbar_parse_config(config_string, &sym, &cfg, &val) || - zbar_processor_set_config(processor, sym, cfg, val)); -} - -/** retrieve the current state of the output window. - * @returns 1 if the output window is currently displayed, 0 if not. - * @returns -1 if an error occurs - */ -extern int zbar_processor_is_visible(zbar_processor_t *processor); - -/** show or hide the display window owned by the library. - * the size will be adjusted to the input size - */ -extern int zbar_processor_set_visible(zbar_processor_t *processor, int visible); - -/** control the processor in free running video mode. - * only works if video input is initialized. if threading is in use, - * scanning will occur in the background, otherwise this is only - * useful wrapping calls to zbar_processor_user_wait(). if the - * library output window is visible, video display will be enabled. - */ -extern int zbar_processor_set_active(zbar_processor_t *processor, int active); - -/** retrieve decode results for last scanned image/frame. - * @returns the symbol set result container or NULL if no results are - * available - * @note the returned symbol set has its reference count incremented; - * ensure that the count is decremented after use - * @since 0.10 - */ -extern const zbar_symbol_set_t *zbar_processor_get_results(const zbar_processor_t *processor); - -/** wait for input to the display window from the user - * (via mouse or keyboard). - * @returns >0 when input is received, 0 if timeout ms expired - * with no input or -1 in case of an error - */ -extern int zbar_processor_user_wait(zbar_processor_t *processor, int timeout); - -/** process from the video stream until a result is available, - * or the timeout (in milliseconds) expires. - * specify a timeout of -1 to scan indefinitely - * (zbar_processor_set_active() may still be used to abort the scan - * from another thread). - * if the library window is visible, video display will be enabled. - * @note that multiple results may still be returned (despite the - * name). - * @returns >0 if symbols were successfully decoded, - * 0 if no symbols were found (ie, the timeout expired) - * or -1 if an error occurs - */ -extern int zbar_process_one(zbar_processor_t *processor, int timeout); - -/** process the provided image for barcodes. - * if the library window is visible, the image will be displayed. - * @returns >0 if symbols were successfully decoded, - * 0 if no symbols were found or -1 if an error occurs - */ -extern int zbar_process_image(zbar_processor_t *processor, zbar_image_t *image); - -/** enable dbus IPC API. - * @returns 0 successful - */ -int zbar_processor_request_dbus(zbar_processor_t *proc, int req_dbus_enabled); - -/** display detail for last processor error to stderr. - * @returns a non-zero value suitable for passing to exit() - */ -static inline int zbar_processor_error_spew(const zbar_processor_t *processor, int verbosity) -{ - return (_zbar_error_spew(processor, verbosity)); -} - -/** retrieve the detail string for the last processor error. */ -static inline const char *zbar_processor_error_string(const zbar_processor_t *processor, - int verbosity) -{ - return (_zbar_error_string(processor, verbosity)); -} - -/** retrieve the type code for the last processor error. */ -static inline zbar_error_t zbar_processor_get_error_code(const zbar_processor_t *processor) -{ - return (_zbar_get_error_code(processor)); -} - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Video interface - * @anchor c-video - * mid-level video source abstraction. - * captures images from a video device - */ -/*@{*/ - -struct zbar_video_s; -/** opaque video object. */ -typedef struct zbar_video_s zbar_video_t; - -/** constructor. */ -extern zbar_video_t *zbar_video_create(void); - -/** destructor. */ -extern void zbar_video_destroy(zbar_video_t *video); - -/** open and probe a video device. - * the device specified by platform specific unique name - * (v4l device node path in *nix eg "/dev/video", - * DirectShow DevicePath property in windows). - * @returns 0 if successful or -1 if an error occurs - */ -extern int zbar_video_open(zbar_video_t *video, const char *device); - -/** retrieve file descriptor associated with open *nix video device - * useful for using select()/poll() to tell when new images are - * available (NB v4l2 only!!). - * @returns the file descriptor or -1 if the video device is not open - * or the driver only supports v4l1 - */ -extern int zbar_video_get_fd(const zbar_video_t *video); - -/** request a preferred size for the video image from the device. - * the request may be adjusted or completely ignored by the driver. - * @returns 0 if successful or -1 if the video device is already - * initialized - * @since 0.6 - */ -extern int zbar_video_request_size(zbar_video_t *video, unsigned width, unsigned height); - -/** request a preferred driver interface version for debug/testing. - * @note must be called before zbar_video_open() - * @since 0.6 - */ -extern int zbar_video_request_interface(zbar_video_t *video, int version); - -/** request a preferred I/O mode for debug/testing. You will get - * errors if the driver does not support the specified mode. - * @verbatim - 0 = auto-detect - 1 = force I/O using read() - 2 = force memory mapped I/O using mmap() - 3 = force USERPTR I/O (v4l2 only) -@endverbatim - * @note must be called before zbar_video_open() - * @since 0.7 - */ -extern int zbar_video_request_iomode(zbar_video_t *video, int iomode); - -/** retrieve current output image width. - * @returns the width or 0 if the video device is not open - */ -extern int zbar_video_get_width(const zbar_video_t *video); - -/** retrieve current output image height. - * @returns the height or 0 if the video device is not open - */ -extern int zbar_video_get_height(const zbar_video_t *video); - -/** initialize video using a specific format for debug. - * use zbar_negotiate_format() to automatically select and initialize - * the best available format - */ -extern int zbar_video_init(zbar_video_t *video, uint32_t format); - -/** start/stop video capture. - * all buffered images are retired when capture is disabled. - * @returns 0 if successful or -1 if an error occurs - */ -extern int zbar_video_enable(zbar_video_t *video, int enable); - -/** retrieve next captured image. blocks until an image is available. - * @returns NULL if video is not enabled or an error occurs - */ -extern zbar_image_t *zbar_video_next_image(zbar_video_t *video); - -/** set video control value (integer). - * @returns 0 for success, non-0 for failure - * @since 0.20 - * @see zbar_processor_set_control() - */ -extern int zbar_video_set_control(zbar_video_t *video, const char *control_name, int value); - -/** get video control value (integer). - * @returns 0 for success, non-0 for failure - * @since 0.20 - * @see zbar_processor_get_control() - */ -extern int zbar_video_get_control(zbar_video_t *video, const char *control_name, int *value); - -/** get available controls from video source - * @returns 0 for success, non-0 for failure - * @since 0.20 - */ -extern struct video_controls_s *zbar_video_get_controls(const zbar_video_t *video, int index); - -/** get available video resolutions from video source - * @returns 0 for success, non-0 for failure - * @since 0.22 - */ -extern struct video_resolution_s *zbar_video_get_resolutions(const zbar_video_t *vdo, int index); - -/** display detail for last video error to stderr. - * @returns a non-zero value suitable for passing to exit() - */ -static inline int zbar_video_error_spew(const zbar_video_t *video, int verbosity) -{ - return (_zbar_error_spew(video, verbosity)); -} - -/** retrieve the detail string for the last video error. */ -static inline const char *zbar_video_error_string(const zbar_video_t *video, int verbosity) -{ - return (_zbar_error_string(video, verbosity)); -} - -/** retrieve the type code for the last video error. */ -static inline zbar_error_t zbar_video_get_error_code(const zbar_video_t *video) -{ - return (_zbar_get_error_code(video)); -} - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Window interface - * @anchor c-window - * mid-level output window abstraction. - * displays images to user-specified platform specific output window - */ -/*@{*/ - -struct zbar_window_s; -/** opaque window object. */ -typedef struct zbar_window_s zbar_window_t; - -/** constructor. */ -extern zbar_window_t *zbar_window_create(void); - -/** destructor. */ -extern void zbar_window_destroy(zbar_window_t *window); - -/** associate reader with an existing platform window. - * This can be any "Drawable" for X Windows or a "HWND" for windows. - * input images will be scaled into the output window. - * pass NULL to detach from the resource, further input will be - * ignored - */ -extern int zbar_window_attach(zbar_window_t *window, void *x11_display_w32_hwnd, - uint32_t x11_drawable); - -/** control content level of the reader overlay. - * the overlay displays graphical data for informational or debug - * purposes. higher values increase the level of annotation (possibly - * decreasing performance). @verbatim - 0 = disable overlay - 1 = outline decoded symbols (default) - 2 = also track and display input frame rate -@endverbatim - */ -extern void zbar_window_set_overlay(zbar_window_t *window, int level); - -/** retrieve current content level of reader overlay. - * @see zbar_window_set_overlay() - * @since 0.10 - */ -extern int zbar_window_get_overlay(const zbar_window_t *window); - -/** draw a new image into the output window. */ -extern int zbar_window_draw(zbar_window_t *window, zbar_image_t *image); - -/** redraw the last image (exposure handler). */ -extern int zbar_window_redraw(zbar_window_t *window); - -/** resize the image window (reconfigure handler). - * this does @em not update the contents of the window - * @since 0.3, changed in 0.4 to not redraw window - */ -extern int zbar_window_resize(zbar_window_t *window, unsigned width, unsigned height); - -/** display detail for last window error to stderr. - * @returns a non-zero value suitable for passing to exit() - */ -static inline int zbar_window_error_spew(const zbar_window_t *window, int verbosity) -{ - return (_zbar_error_spew(window, verbosity)); -} - -/** retrieve the detail string for the last window error. */ -static inline const char *zbar_window_error_string(const zbar_window_t *window, int verbosity) -{ - return (_zbar_error_string(window, verbosity)); -} - -/** retrieve the type code for the last window error. */ -static inline zbar_error_t zbar_window_get_error_code(const zbar_window_t *window) -{ - return (_zbar_get_error_code(window)); -} - -/** select a compatible format between video input and output window. - * the selection algorithm attempts to use a format shared by - * video input and window output which is also most useful for - * barcode scanning. if a format conversion is necessary, it will - * heuristically attempt to minimize the cost of the conversion - */ -extern int zbar_negotiate_format(zbar_video_t *video, zbar_window_t *window); - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Image Scanner interface - * @anchor c-imagescanner - * mid-level image scanner interface. - * reads barcodes from 2-D images - */ -/*@{*/ - -struct zbar_image_scanner_s; -/** opaque image scanner object. */ -typedef struct zbar_image_scanner_s zbar_image_scanner_t; - -/** constructor. */ -extern zbar_image_scanner_t *zbar_image_scanner_create(void); - -/** destructor. */ -extern void zbar_image_scanner_destroy(zbar_image_scanner_t *scanner); - -/** setup result handler callback. - * the specified function will be called by the scanner whenever - * new results are available from a decoded image. - * pass a NULL value to disable callbacks. - * @returns the previously registered handler - */ -extern zbar_image_data_handler_t * -zbar_image_scanner_set_data_handler(zbar_image_scanner_t *scanner, - zbar_image_data_handler_t *handler, const void *userdata); - -/** request sending decoded codes via D-Bus - * @see zbar_processor_parse_config() - * @since 0.21 - */ -extern int zbar_image_scanner_request_dbus(zbar_image_scanner_t *scanner, int req_dbus_enabled); - -/** set config for indicated symbology (0 for all) to specified value. - * @returns 0 for success, non-0 for failure (config does not apply to - * specified symbology, or value out of range) - * @see zbar_decoder_set_config() - * @since 0.4 - */ -extern int zbar_image_scanner_set_config(zbar_image_scanner_t *scanner, - zbar_symbol_type_t symbology, zbar_config_t config, - int value); - -/** get config for indicated symbology - * @returns 0 for success, non-0 for failure (config does not apply to - * specified symbology, or value out of range). On success, *value is filled. - * @since 0.22 - */ -extern int zbar_image_scanner_get_config(zbar_image_scanner_t *scanner, - zbar_symbol_type_t symbology, zbar_config_t config, - int *value); - -/** parse configuration string using zbar_parse_config() - * and apply to image scanner using zbar_image_scanner_set_config(). - * @returns 0 for success, non-0 for failure - * @see zbar_parse_config() - * @see zbar_image_scanner_set_config() - * @since 0.4 - */ -static inline int zbar_image_scanner_parse_config(zbar_image_scanner_t *scanner, - const char *config_string) -{ - zbar_symbol_type_t sym; - zbar_config_t cfg; - int val; - return (zbar_parse_config(config_string, &sym, &cfg, &val) || - zbar_image_scanner_set_config(scanner, sym, cfg, val)); -} - -/** enable or disable the inter-image result cache (default disabled). - * mostly useful for scanning video frames, the cache filters - * duplicate results from consecutive images, while adding some - * consistency checking and hysteresis to the results. - * this interface also clears the cache - */ -extern void zbar_image_scanner_enable_cache(zbar_image_scanner_t *scanner, int enable); - -/** remove any previously decoded results from the image scanner and the - * specified image. somewhat more efficient version of - * zbar_image_set_symbols(image, NULL) which may retain memory for - * subsequent decodes - * @since 0.10 - */ -extern void zbar_image_scanner_recycle_image(zbar_image_scanner_t *scanner, zbar_image_t *image); - -/** retrieve decode results for last scanned image. - * @returns the symbol set result container or NULL if no results are - * available - * @note the symbol set does not have its reference count adjusted; - * ensure that the count is incremented if the results may be kept - * after the next image is scanned - * @since 0.10 - */ -extern const zbar_symbol_set_t *zbar_image_scanner_get_results(const zbar_image_scanner_t *scanner); - -/** scan for symbols in provided image. The image format must be - * "Y800" or "GRAY". - * @returns >0 if symbols were successfully decoded from the image, - * 0 if no symbols were found or -1 if an error occurs - * @see zbar_image_convert() - * @since 0.9 - changed to only accept grayscale images - */ -extern int zbar_scan_image(zbar_image_scanner_t *scanner, zbar_image_t *image); - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Decoder interface - * @anchor c-decoder - * low-level bar width stream decoder interface. - * identifies symbols and extracts encoded data - */ -/*@{*/ - -struct zbar_decoder_s; -/** opaque decoder object. */ -typedef struct zbar_decoder_s zbar_decoder_t; - -/** decoder data handler callback function. - * called by decoder when new data has just been decoded - */ -typedef void(zbar_decoder_handler_t)(zbar_decoder_t *decoder); - -/** constructor. */ -extern zbar_decoder_t *zbar_decoder_create(void); - -/** destructor. */ -extern void zbar_decoder_destroy(zbar_decoder_t *decoder); - -/** set config for indicated symbology (0 for all) to specified value. - * @returns 0 for success, non-0 for failure (config does not apply to - * specified symbology, or value out of range) - * @since 0.4 - */ -extern int zbar_decoder_set_config(zbar_decoder_t *decoder, zbar_symbol_type_t symbology, - zbar_config_t config, int value); - -/** get config for indicated symbology - * @returns 0 for success, non-0 for failure (config does not apply to - * specified symbology, or value out of range). On success, *value is filled. - * @since 0.22 - */ -extern int zbar_decoder_get_config(zbar_decoder_t *decoder, zbar_symbol_type_t symbology, - zbar_config_t config, int *value); - -/** parse configuration string using zbar_parse_config() - * and apply to decoder using zbar_decoder_set_config(). - * @returns 0 for success, non-0 for failure - * @see zbar_parse_config() - * @see zbar_decoder_set_config() - * @since 0.4 - */ -static inline int zbar_decoder_parse_config(zbar_decoder_t *decoder, const char *config_string) -{ - zbar_symbol_type_t sym; - zbar_config_t cfg; - int val; - return (zbar_parse_config(config_string, &sym, &cfg, &val) || - zbar_decoder_set_config(decoder, sym, cfg, val)); -} - -/** retrieve symbology boolean config settings. - * @returns a bitmask indicating which configs are currently set for the - * specified symbology. - * @since 0.11 - */ -extern unsigned int zbar_decoder_get_configs(const zbar_decoder_t *decoder, - zbar_symbol_type_t symbology); - -/** clear all decoder state. - * any partial symbols are flushed - */ -extern void zbar_decoder_reset(zbar_decoder_t *decoder); - -/** mark start of a new scan pass. - * clears any intra-symbol state and resets color to ::ZBAR_SPACE. - * any partially decoded symbol state is retained - */ -extern void zbar_decoder_new_scan(zbar_decoder_t *decoder); - -/** process next bar/space width from input stream. - * the width is in arbitrary relative units. first value of a scan - * is ::ZBAR_SPACE width, alternating from there. - * @returns appropriate symbol type if width completes - * decode of a symbol (data is available for retrieval) - * @returns ::ZBAR_PARTIAL as a hint if part of a symbol was decoded - * @returns ::ZBAR_NONE (0) if no new symbol data is available - */ -extern zbar_symbol_type_t zbar_decode_width(zbar_decoder_t *decoder, unsigned width); - -/** retrieve color of @em next element passed to - * zbar_decode_width(). */ -extern zbar_color_t zbar_decoder_get_color(const zbar_decoder_t *decoder); - -/** retrieve last decoded data. - * @returns the data string or NULL if no new data available. - * the returned data buffer is owned by library, contents are only - * valid between non-0 return from zbar_decode_width and next library - * call - */ -extern const char *zbar_decoder_get_data(const zbar_decoder_t *decoder); - -/** retrieve length of binary data. - * @returns the length of the decoded data or 0 if no new data - * available. - */ -extern unsigned int zbar_decoder_get_data_length(const zbar_decoder_t *decoder); - -/** retrieve last decoded symbol type. - * @returns the type or ::ZBAR_NONE if no new data available - */ -extern zbar_symbol_type_t zbar_decoder_get_type(const zbar_decoder_t *decoder); - -/** retrieve modifier flags for the last decoded symbol. - * @returns a bitmask indicating which characteristics were detected - * during decoding. - * @since 0.11 - */ -extern unsigned int zbar_decoder_get_modifiers(const zbar_decoder_t *decoder); - -/** retrieve last decode direction. - * @returns 1 for forward and -1 for reverse - * @returns 0 if the decode direction is unknown or does not apply - * @since 0.11 - */ -extern int zbar_decoder_get_direction(const zbar_decoder_t *decoder); - -/** setup data handler callback. - * the registered function will be called by the decoder - * just before zbar_decode_width() returns a non-zero value. - * pass a NULL value to disable callbacks. - * @returns the previously registered handler - */ -extern zbar_decoder_handler_t *zbar_decoder_set_handler(zbar_decoder_t *decoder, - zbar_decoder_handler_t *handler); - -/** associate user specified data value with the decoder. */ -extern void zbar_decoder_set_userdata(zbar_decoder_t *decoder, void *userdata); - -/** return user specified data value associated with the decoder. */ -extern void *zbar_decoder_get_userdata(const zbar_decoder_t *decoder); - -/*@}*/ - -/*------------------------------------------------------------*/ -/** @name Scanner interface - * @anchor c-scanner - * low-level linear intensity sample stream scanner interface. - * identifies "bar" edges and measures width between them. - * optionally passes to bar width decoder - */ -/*@{*/ - -struct zbar_scanner_s; -/** opaque scanner object. */ -typedef struct zbar_scanner_s zbar_scanner_t; - -/** constructor. - * if decoder is non-NULL it will be attached to scanner - * and called automatically at each new edge - * current color is initialized to ::ZBAR_SPACE - * (so an initial BAR->SPACE transition may be discarded) - */ -extern zbar_scanner_t *zbar_scanner_create(zbar_decoder_t *decoder); - -/** destructor. */ -extern void zbar_scanner_destroy(zbar_scanner_t *scanner); - -/** clear all scanner state. - * also resets an associated decoder - */ -extern zbar_symbol_type_t zbar_scanner_reset(zbar_scanner_t *scanner); - -/** mark start of a new scan pass. resets color to ::ZBAR_SPACE. - * also updates an associated decoder. - * @returns any decode results flushed from the pipeline - * @note when not using callback handlers, the return value should - * be checked the same as zbar_scan_y() - * @note call zbar_scanner_flush() at least twice before calling this - * method to ensure no decode results are lost - */ -extern zbar_symbol_type_t zbar_scanner_new_scan(zbar_scanner_t *scanner); - -/** flush scanner processing pipeline. - * forces current scanner position to be a scan boundary. - * call multiple times (max 3) to completely flush decoder. - * @returns any decode/scan results flushed from the pipeline - * @note when not using callback handlers, the return value should - * be checked the same as zbar_scan_y() - * @since 0.9 - */ -extern zbar_symbol_type_t zbar_scanner_flush(zbar_scanner_t *scanner); - -/** process next sample intensity value. - * intensity (y) is in arbitrary relative units. - * @returns result of zbar_decode_width() if a decoder is attached, - * otherwise @returns (::ZBAR_PARTIAL) when new edge is detected - * or 0 (::ZBAR_NONE) if no new edge is detected - */ -extern zbar_symbol_type_t zbar_scan_y(zbar_scanner_t *scanner, int y); - -/** process next sample from RGB (or BGR) triple. */ -static inline zbar_symbol_type_t zbar_scan_rgb24(zbar_scanner_t *scanner, unsigned char *rgb) -{ - return (zbar_scan_y(scanner, rgb[0] + rgb[1] + rgb[2])); -} - -/** retrieve last scanned width. */ -extern unsigned zbar_scanner_get_width(const zbar_scanner_t *scanner); - -/** retrieve sample position of last edge. - * @since 0.10 - */ -extern unsigned zbar_scanner_get_edge(const zbar_scanner_t *scn, unsigned offset, int prec); - -/** retrieve last scanned color. */ -extern zbar_color_t zbar_scanner_get_color(const zbar_scanner_t *scanner); - -/*@}*/ - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_BARCODE_INCLUDE_ZBAR_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/barcode/libbarcode.a b/Examples/MAX32572/Barcode_Decoder/barcode/libbarcode.a deleted file mode 100644 index dfbe870cc23..00000000000 Binary files a/Examples/MAX32572/Barcode_Decoder/barcode/libbarcode.a and /dev/null differ diff --git a/Examples/MAX32572/Barcode_Decoder/include/app_loop.h b/Examples/MAX32572/Barcode_Decoder/include/app_loop.h deleted file mode 100644 index eb041d79954..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/app_loop.h +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_APP_LOOP_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_APP_LOOP_H_ - -/*****************************************************************************/ -int app_loop_init(void); -void app_loop_endless(void); - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_APP_LOOP_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/include/camera.h b/Examples/MAX32572/Barcode_Decoder/include/camera.h deleted file mode 100644 index a95882cb6ca..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/camera.h +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_CAMERA_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_CAMERA_H_ - -// includes -#include -#include - -// Defines -#define CAM_OV7670 (1) -#define CAM_OV7725 (2) -#define CAM_OV2640 (3) -#define CAM_GC0308 (4) // implementation not finalized yet - -#define ACTIVE_CAMERA CAM_OV7725 -#define CAMERA_FREQ (15 * 1000 * 1000) //PT generates ~12.5MHz for 15MHz - -#include "ov7670_regs.h" -#include "ov7725_regs.h" -#include "ov2640_regs.h" -#include "gc0308_regs.h" - -/******************************** Type Definitions ***************************/ -typedef enum { - PIXFORMAT_INVALID = 0, - PIXFORMAT_BINARY, // 1BPP/BINARY - PIXFORMAT_GRAYSCALE, // 1BPP/GRAYSCALE - PIXFORMAT_RGB565, // 2BPP/RGB565 - PIXFORMAT_YUV422, // 2BPP/YUV422 - PIXFORMAT_BAYER, // 1BPP/RAW -} pixformat_t; - -typedef enum { - // Special Resolutions - FRAMESIZE_SP, // special - // CIF Resolutions - FRAMESIZE_CIF, // 352x288 - // VGA Resolutions - FRAMESIZE_QVGA, // 320x240 - FRAMESIZE_VGA, // 640x480 -} framesize_t; - -typedef enum { - GAINCEILING_2X, - GAINCEILING_4X, - GAINCEILING_8X, - GAINCEILING_16X, - GAINCEILING_32X, - GAINCEILING_64X, - GAINCEILING_128X, -} gainceiling_t; - -typedef struct _camera { - // Sensor function pointers - int (*init)(void); - int (*get_id)(void); - int (*dump_registers)(void); - int (*reset)(void); - int (*sleep)(int enable); - int (*read_reg)(uint16_t reg_addr); - int (*write_reg)(uint16_t reg_addr, uint16_t reg_data); - int (*set_pixformat)(pixformat_t pixformat); - int (*set_framesize)(framesize_t framesize); - int (*set_contrast)(int level); - int (*set_brightness)(int level); - int (*set_saturation)(int level); - int (*set_gainceiling)(gainceiling_t gainceiling); - int (*set_colorbar)(int enable); - int (*set_hmirror)(int enable); - int (*set_vflip)(int enable); -} camera_t; - -/******************************** Public Functions ***************************/ -// Initialize the sensor hardware and probe the image sensor. -int camera_init(); - -// Return sensor PID. -int camera_get_id(); - -// dump all registers of camera -int camera_dump_registers(); - -// Reset the sensor to its default state. -int camera_reset(); - -// Sleep mode. -int camera_sleep(int enable); - -// Shutdown mode. -int camera_shutdown(int enable); - -// Read a sensor register. -int camera_read_reg(uint16_t reg_addr); - -// Write a sensor register. -int camera_write_reg(uint16_t reg_addr, uint16_t reg_data); - -// Set the sensor pixel format. -int camera_set_pixformat(pixformat_t pixformat); - -// Set the sensor frame size. -int camera_set_framesize(framesize_t framesize); - -// Set the sensor contrast level (from -3 to +3). -int camera_set_contrast(int level); - -// Set the sensor brightness level (from -3 to +3). -int camera_set_brightness(int level); - -// Set the sensor saturation level (from -3 to +3). -int camera_set_saturation(int level); - -// Set the sensor AGC gain ceiling. -// Note: This function has no effect when AGC (Automatic Gain Control) is disabled. -int camera_set_gainceiling(gainceiling_t gainceiling); - -// Enable/disable the colorbar mode. -int camera_set_colorbar(int enable); - -// Enable/disable the hmirror mode. -int camera_set_hmirror(int enable); - -// Enable/disable the vflip mode. -int camera_set_vflip(int enable); - -// start to capture image -int camera_start_campture_image(void); - -// check whether all image data rcv or not -int camera_is_image_rcv(void); - -// -uint8_t *camera_get_pixel_format(void); - -// -void camera_get_image(uint8_t **img, uint32_t *imgLen, uint32_t *w, uint32_t *h); - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_CAMERA_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/include/gc0308_regs.h b/Examples/MAX32572/Barcode_Decoder/include/gc0308_regs.h deleted file mode 100644 index bce5e365490..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/gc0308_regs.h +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include - -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_GC0308_REGS_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_GC0308_REGS_H_ - -#if (ACTIVE_CAMERA == CAM_GC0308) - -#define PAGE_SELECT 0xFE -#define PAGE_0 0x00 -#define PAGE_1 0x01 - - -#define REG_Output_format 0x24 - -#endif - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_GC0308_REGS_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/include/ov2640_regs.h b/Examples/MAX32572/Barcode_Decoder/include/ov2640_regs.h deleted file mode 100644 index 1be2189dd4a..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/ov2640_regs.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV2640 register definitions. - */ - -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV2640_REGS_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV2640_REGS_H_ - -#if (ACTIVE_CAMERA == CAM_OV2640) - -/* DSP register bank FF=0x00*/ - -#define QS 0x44 -#define HSIZE 0x51 -#define VSIZE 0x52 -#define XOFFL 0x53 -#define YOFFL 0x54 -#define VHYX 0x55 -#define DPRP 0x56 -#define TEST 0x57 -#define ZMOW 0x5A -#define ZMOH 0x5B -#define ZMHH 0x5C -#define BPADDR 0x7C -#define BPDATA 0x7D -#define SIZEL 0x8C -#define HSIZE8 0xC0 -#define VSIZE8 0xC1 -#define CTRL1 0xC3 -#define MS_SP 0xF0 -#define SS_ID 0xF7 -#define SS_CTRL 0xF7 -#define MC_AL 0xFA -#define MC_AH 0xFB -#define MC_D 0xFC -#define P_CMD 0xFD -#define P_STATUS 0xFE - -#define CTRLI 0x50 -#define CTRLI_LP_DP 0x80 -#define CTRLI_ROUND 0x40 - -#define CTRL0 0xC2 -#define CTRL0_AEC_EN 0x80 -#define CTRL0_AEC_SEL 0x40 -#define CTRL0_STAT_SEL 0x20 -#define CTRL0_VFIRST 0x10 -#define CTRL0_YUV422 0x08 -#define CTRL0_YUV_EN 0x04 -#define CTRL0_RGB_EN 0x02 -#define CTRL0_RAW_EN 0x01 - -#define CTRL2 0x86 -#define CTRL2_DCW_EN 0x20 -#define CTRL2_SDE_EN 0x10 -#define CTRL2_UV_ADJ_EN 0x08 -#define CTRL2_UV_AVG_EN 0x04 -#define CTRL2_CMX_EN 0x01 - -#define CTRL3 0x87 -#define CTRL3_BPC_EN 0x80 -#define CTRL3_WPC_EN 0x40 -#define R_DVP_SP 0xD3 -#define R_DVP_SP_AUTO_MODE 0x80 - -#define R_BYPASS 0x05 -#define R_BYPASS_DSP_EN 0x00 -#define R_BYPASS_DSP_BYPAS 0x01 - -#define IMAGE_MODE 0xDA -#define IMAGE_MODE_Y8_DVP_EN 0x40 -#define IMAGE_MODE_JPEG_EN 0x10 -#define IMAGE_MODE_YUV422 0x00 -#define IMAGE_MODE_RAW10 0x04 -#define IMAGE_MODE_RGB565 0x08 -#define IMAGE_MODE_HREF_VSYNC 0x02 -#define IMAGE_MODE_LBYTE_FIRST 0x01 -#define IMAGE_MODE_GET_FMT(x) ((x)&0xC) - -#define RESET 0xE0 -#define RESET_MICROC 0x40 -#define RESET_SCCB 0x20 -#define RESET_JPEG 0x10 -#define RESET_DVP 0x04 -#define RESET_IPU 0x02 -#define RESET_CIF 0x01 - -#define MC_BIST 0xF9 -#define MC_BIST_RESET 0x80 -#define MC_BIST_BOOT_ROM_SEL 0x40 -#define MC_BIST_12KB_SEL 0x20 -#define MC_BIST_12KB_MASK 0x30 -#define MC_BIST_512KB_SEL 0x08 -#define MC_BIST_512KB_MASK 0x0C -#define MC_BIST_BUSY_BIT_R 0x02 -#define MC_BIST_MC_RES_ONE_SH_W 0x02 -#define MC_BIST_LAUNCH 0x01 - -#define BANK_SEL 0xFF -#define BANK_SEL_DSP 0x00 -#define BANK_SEL_SENSOR 0x01 - -/* Sensor register bank FF=0x01*/ - -#define GAIN 0x00 -#define COM1 0x03 -#define REG_PID 0x0A -#define REG_VER 0x0B -#define COM4 0x0D -#define AEC 0x10 - -#define CLKRC 0x11 -#define CLKRC_DOUBLE 0x80 -#define CLKRC_DIVIDER_MASK 0x3F - -#define COM10 0x15 -#define HSTART 0x17 -#define HSTOP 0x18 -#define VSTART 0x19 -#define VSTOP 0x1A -#define MIDH 0x1C -#define MIDL 0x1D -#define AEW 0x24 -#define AEB 0x25 -#define REG2A 0x2A -#define FRARL 0x2B -#define ADDVSL 0x2D -#define ADDVSH 0x2E -#define YAVG 0x2F -#define HSDY 0x30 -#define HEDY 0x31 -#define ARCOM2 0x34 -#define REG45 0x45 -#define FLL 0x46 -#define FLH 0x47 -#define COM19 0x48 -#define ZOOMS 0x49 -#define COM22 0x4B -#define COM25 0x4E -#define BD50 0x4F -#define BD60 0x50 -#define REG5D 0x5D -#define REG5E 0x5E -#define REG5F 0x5F -#define REG60 0x60 -#define HISTO_LOW 0x61 -#define HISTO_HIGH 0x62 - -#define REG04 0x04 -#define REG04_DEFAULT 0x28 -#define REG04_HFLIP_IMG 0x80 -#define REG04_VFLIP_IMG 0x40 -#define REG04_VREF_EN 0x10 -#define REG04_HREF_EN 0x08 -#define REG04_SET(x) (REG04_DEFAULT|x) - -#define REG08 0x08 -#define COM2 0x09 -#define COM2_STDBY 0x10 -#define COM2_OUT_DRIVE_1x 0x00 -#define COM2_OUT_DRIVE_2x 0x01 -#define COM2_OUT_DRIVE_3x 0x02 -#define COM2_OUT_DRIVE_4x 0x03 - -#define COM3 0x0C -#define COM3_DEFAULT 0x38 -#define COM3_BAND_50Hz 0x04 -#define COM3_BAND_60Hz 0x00 -#define COM3_BAND_AUTO 0x02 -#define COM3_BAND_SET(x) (COM3_DEFAULT|x) - -#define COM7 0x12 -#define COM7_SRST 0x80 -#define COM7_RES_UXGA 0x00 /* UXGA */ -#define COM7_RES_SVGA 0x40 /* SVGA */ -#define COM7_RES_CIF 0x20 /* CIF */ -#define COM7_ZOOM_EN 0x04 /* Enable Zoom */ -#define COM7_COLOR_BAR 0x02 /* Enable Color Bar Test */ -#define COM7_GET_RES(x) ((x)&0x70) - -#define COM8 0x13 -#define COM8_DEFAULT 0xC0 -#define COM8_BNDF_EN 0x20 /* Enable Banding filter */ -#define COM8_AGC_EN 0x04 /* AGC Auto/Manual control selection */ -#define COM8_AEC_EN 0x01 /* Auto/Manual Exposure control */ -#define COM8_SET(x) (COM8_DEFAULT|x) -#define COM8_SET_AEC(r, x) (((r)&0xFE)|((x)&1)) - -#define COM9 0x14 /* AGC gain ceiling */ -#define COM9_DEFAULT 0x08 -#define COM9_AGC_GAIN_2x 0x00 /* AGC: 2x */ -#define COM9_AGC_GAIN_4x 0x01 /* AGC: 4x */ -#define COM9_AGC_GAIN_8x 0x02 /* AGC: 8x */ -#define COM9_AGC_GAIN_16x 0x03 /* AGC: 16x */ -#define COM9_AGC_GAIN_32x 0x04 /* AGC: 32x */ -#define COM9_AGC_GAIN_64x 0x05 /* AGC: 64x */ -#define COM9_AGC_GAIN_128x 0x06 /* AGC: 128x */ -#define COM9_AGC_SET(x) (COM9_DEFAULT|(x << 5)) - -#define CTRL1_AWB 0x08 /* Enable AWB */ - -#define VV 0x26 -#define VV_AGC_TH_SET(h, l) ((h << 4)|(l&0x0F)) - -#define REG32 0x32 -#define REG32_UXGA 0x36 -#define REG32_SVGA 0x09 -#define REG32_CIF 0x00 - -#define VAL_SET(x, mask, rshift, lshift) ((((x) >> rshift) & mask) << lshift) - -#define CTRLI_V_DIV_SET(x) VAL_SET(x, 0x3, 0, 3) -#define CTRLI_H_DIV_SET(x) VAL_SET(x, 0x3, 0, 0) - -#define SIZEL_HSIZE8_11_SET(x) VAL_SET(x, 0x1, 11, 6) -#define SIZEL_HSIZE8_SET(x) VAL_SET(x, 0x7, 0, 3) -#define SIZEL_VSIZE8_SET(x) VAL_SET(x, 0x7, 0, 0) - -#define HSIZE8_SET(x) VAL_SET(x, 0xFF, 3, 0) -#define VSIZE8_SET(x) VAL_SET(x, 0xFF, 3, 0) - -#define HSIZE_SET(x) VAL_SET(x, 0xFF, 2, 0) -#define VSIZE_SET(x) VAL_SET(x, 0xFF, 2, 0) - -#define XOFFL_SET(x) VAL_SET(x, 0xFF, 0, 0) -#define YOFFL_SET(x) VAL_SET(x, 0xFF, 0, 0) - -#define VHYX_VSIZE_SET(x) VAL_SET(x, 0x1, (8+2), 7) -#define VHYX_HSIZE_SET(x) VAL_SET(x, 0x1, (8+2), 3) -#define VHYX_YOFF_SET(x) VAL_SET(x, 0x3, 8, 4) -#define VHYX_XOFF_SET(x) VAL_SET(x, 0x3, 8, 0) - -#define TEST_HSIZE_SET(x) VAL_SET(x, 0x1, (9+2), 7) - -#define ZMOW_OUTW_SET(x) VAL_SET(x, 0xFF, 2, 0) -#define ZMOH_OUTH_SET(x) VAL_SET(x, 0xFF, 2, 0) - -#define ZMHH_ZSPEED_SET(x) VAL_SET(x, 0x0F, 0, 4) -#define ZMHH_OUTH_SET(x) VAL_SET(x, 0x1, (8+2), 2) -#define ZMHH_OUTW_SET(x) VAL_SET(x, 0x3, (8+2), 0) - -#endif // (ACTIVE_CAMERA == CAM_OV2640) - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV2640_REGS_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/include/ov7670_regs.h b/Examples/MAX32572/Barcode_Decoder/include/ov7670_regs.h deleted file mode 100644 index f020c25f132..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/ov7670_regs.h +++ /dev/null @@ -1,418 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV7670_REGS_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV7670_REGS_H_ - -#if (ACTIVE_CAMERA == CAM_OV7670) - -/* OV7670 Registers definition */ -#define REG_GAIN 0x00 /* AGC - Gain control gain setting */ -#define REG_BLUE 0x01 /* AWB - Blue channel gain setting */ -#define REG_RED 0x02 /* AWB - Red channel gain setting */ -#define REG_VREF 0x03 /* Vertical frame control */ -#define REG_COM1 0x04 /* Common Control 1 */ -#define REG_BAVE 0x05 /* U/B Average Level */ -#define REG_GbAVE 0x06 /* Y/Gb Average Level */ -#define REG_AECHH 0x07 /* Exposure Value - AEC MSB 5 bits */ -#define REG_RAVE 0x08 /* V/R Average Level */ -#define REG_COM2 0x09 /* Common Control 2 */ -#define REG_PID 0x0A /* Product ID Number MSB, (Read Only) */ -#define REG_VER 0x0B /* Product ID Number LSB, (Read Only) */ -#define REG_COM3 0x0C /* Common Control 3 */ -#define REG_COM4 0x0D /* Common Control 4 */ -#define REG_COM5 0x0E /* Common Control 5 */ -#define REG_COM6 0x0F /* Common Control 6 */ -#define REG_AECH 0x10 /* Exposure Value */ -#define REG_CLKRC 0x11 /* Internal Clock */ -#define REG_COM7 0x12 /* Common Control 7 */ -#define REG_COM8 0x13 /* Common Control 8 */ -#define REG_COM9 0x14 /* Common Control 9 */ -#define REG_COM10 0x15 /* Common Control 10 */ -//#define REG_RSVD 0x16 -#define REG_HSTART 0x17 -#define REG_HSTOP 0x18 -#define REG_VSTRT 0x19 -#define REG_VSTOP 0x1A -#define REG_PSHFT 0x1B -#define REG_MIDH 0x1C -#define REG_MIDL 0x1D -#define REG_MVFP 0x1E -#define REG_LAEC 0x1F -#define REG_ADCCTR0 0x20 -#define REG_ADCCTR1 0x21 -#define REG_ADCCTR2 0x22 -#define REG_ADCCTR3 0x23 -#define REG_AEW 0x24 -#define REG_AEB 0x25 -#define REG_VPT 0x26 -#define REG_BBIAS 0x27 -#define REG_GbBIAS 0x28 -//#define REG_RSVD 0x29 -#define REG_EXHCH 0x2A -#define REG_EXHCL 0x2B -#define REG_RBIAS 0x2C -#define REG_ADVFL 0x2D -#define REG_ADVFH 0x2E -#define REG_YAVE 0x2F -#define REG_HSYST 0x30 -#define REG_HSYEN 0x31 -#define REG_HREF 0x32 -#define REG_CHLF 0x33 -#define REG_ARBLM 0x34 -//#define REG_RSVD 0x35 -//#define REG_RSVD 0x36 -#define REG_ADC 0x37 -#define REG_ACOM 0x38 -#define REG_OFON 0x39 -#define REG_TSLB 0x3A -#define REG_COM11 0x3B -#define REG_COM12 0x3C -#define REG_COM13 0x3D -#define REG_COM14 0x3E -#define REG_EDGE 0x3F -#define REG_COM15 0x40 -#define REG_COM16 0x41 -#define REG_COM17 0x42 -#define REG_AWBC1 0x43 -#define REG_AWBC2 0x44 -#define REG_AWBC3 0x45 -#define REG_AWBC4 0x46 -#define REG_AWBC5 0x47 -#define REG_AWBC6 0x48 -//#define REG_RSVD 0x49 -//#define REG_RSVD 0x4A -#define REG_REG4B 0x4B -#define REG_DNSTH 0x4C -//#define REG_RSVD 0x4D -//#define REG_RSVD 0x4E -#define REG_MTX1 0x4F -#define REG_MTX2 0x50 -#define REG_MTX3 0x51 -#define REG_MTX4 0x52 -#define REG_MTX5 0x53 -#define REG_MTX6 0x54 -#define REG_BRIGHT 0x55 -#define REG_CONTRAS 0x56 -#define REG_CONTRASCENTER 0x57 -#define REG_MTXS 0x58 -//#define REG_RSVD 0x59 -//#define REG_RSVD 0x5A -//#define REG_RSVD 0x5B -//#define REG_RSVD 0x5C -//#define REG_RSVD 0x5D -//#define REG_RSVD 0x5E -//#define REG_RSVD 0x5F -//#define REG_RSVD 0x60 -//#define REG_RSVD 0x61 -#define REG_LCC1 0x62 -#define REG_LCC2 0x63 -#define REG_LCC3 0x64 -#define REG_LCC4 0x65 -#define REG_LCC5 0x66 -#define REG_MANU 0x67 -#define REG_MANV 0x68 -#define REG_GFIX 0x69 -#define REG_GGAIN 0x6A -#define REG_DBLV 0x6B -#define REG_AWBCTR3 0x6C -#define REG_AWBCTR2 0x6D -#define REG_AWBCTR1 0x6E -#define REG_AWBCTR0 0x6F -#define REG_SCALING_XSC 0x70 -#define REG_SCALING_YSC 0x71 -#define REG_SCALING_DCWCTR 0x72 -#define REG_SCALING_PCLK_DIV 0x73 -#define REG_REG74 0x74 -#define REG_REG75 0x75 -#define REG_REG76 0x76 -#define REG_REG77 0x77 -//#define REG_RSVD 0x78 -//#define REG_RSVD 0x79 -#define REG_SLOP 0x7A -#define REG_GAM1 0x7B -#define REG_GAM2 0x7C -#define REG_GAM3 0x7D -#define REG_GAM4 0x7E -#define REG_GAM5 0x7F -#define REG_GAM6 0x80 -#define REG_GAM7 0x81 -#define REG_GAM8 0x82 -#define REG_GAM9 0x83 -#define REG_GAM10 0x84 -#define REG_GAM11 0x85 -#define REG_GAM12 0x86 -#define REG_GAM13 0x87 -#define REG_GAM14 0x88 -#define REG_GAM15 0x89 -//#define REG_RSVD 0x8A -//#define REG_RSVD 0x8B -#define REG_RGB444 0x8C -//#define REG_RSVD 0x8D -//#define REG_RSVD 0x8E -//#define REG_RSVD 0x8F -//#define REG_RSVD 0x90 -//#define REG_RSVD 0x91 -#define REG_DM_LNL 0x92 -#define REG_DM_LNH 0x93 -#define REG_LCC6 0x94 -#define REG_LCC7 0x95 -//#define REG_RSVD 0x96 -//#define REG_RSVD 0x97 -//#define REG_RSVD 0x98 -//#define REG_RSVD 0x99 -//#define REG_RSVD 0x9A -//#define REG_RSVD 0x9B -//#define REG_RSVD 0x9C -#define REG_BD50ST 0x9D -#define REG_BD60ST 0x9E -#define REG_HAECC1 0x9F -#define REG_HAECC2 0xA0 -//#define REG_RSVD 0xA1 -#define REG_SCALING_PCLK_DELAY 0xA2 -//#define REG_RSVD 0xA3 -#define REG_NT_CTRL 0xA4 -#define REG_BD50MAX 0xA5 - -#define REG_HAECC3 0xA6 -#define REG_HAECC4 0xA7 -#define REG_HAECC5 0xA8 -#define REG_HAECC6 0xA9 -#define REG_HAECC7 0xAA -#define REG_BD60MAX 0xAB -#define REG_STR_OPT 0xAC -#define REG_STR_R 0xAD -#define REG_STR_G 0xAE -#define REG_STR_B 0xAF -//#define REG_RSVD 0xB0 -#define REG_ABLC1 0xB1 -//#define REG_RSVD 0xB2 -#define REG_THL_ST 0xB3 -//#define REG_RSVD 0xB4 -#define REG_THL_DLT 0xB5 -//#define REG_RSVD 0xB6 -//#define REG_RSVD 0xB7 -//#define REG_RSVD 0xB8 -//#define REG_RSVD 0xBC -//#define REG_RSVD 0xBD -#define REG_AD_CHB 0xBE -#define REG_AD_CHR 0xBF -#define REG_AD_CHGb 0xC0 -#define REG_AD_CHGr 0xC1 -//#define REG_RSVD 0xC2 -//#define REG_RSVD 0xC3 -//#define REG_RSVD 0xC4 -//#define REG_RSVD 0xC5 -//#define REG_RSVD 0xC6 -//#define REG_RSVD 0xC7 -//#define REG_RSVD 0xC8 -#define REG_SATCTR 0xC9 - - -/* Registers bit definition */ -/* COM1 Register */ -#define CCIR656_FORMAT 0x40 /* CCIR656 enable */ -#define HREF_SKIP_0 0x00 -#define HREF_SKIP_1 0x04 -#define HREF_SKIP_3 0x08 - -/* COM2 Register */ -#define COM2_SOFT_SLEEP_MODE 0x10 -#define COM2_ODCAP_1x 0x00 -#define COM2_ODCAP_2x 0x01 -#define COM2_ODCAP_3x 0x02 -#define COM2_ODCAP_4x 0x03 - -/* COM3 Register */ -#define COM3_COLOR_BAR_OUTPUT 0x80 -#define COM3_OUTPUT_MSB_LAS_SWAP 0x40 -#define COM3_PIN_REMAP_RESETB_EXPST 0x08 -#define COM3_RGB565_FORMAT 0x00 -#define COM3_RGB_OUTPUT_AVERAGE 0x04 -#define COM3_SINGLE_FRAME 0x01 -#define COM3_SET_MIRROR(r, x) ((r&0xBF)|((x&1) << 6)) -#define COM3_GET_MIRROR(r) ((r>>6)&1) - -/* COM5 Register */ -#define SLAM_MODE_ENABLE 0x40 -#define EXPOSURE_NORMAL_MODE 0x01 - -/* COM7 Register */ -#define SCCB_REG_RESET 0x80 -#define FORMAT_CTRL_15fpsVGA 0x00 -#define FORMAT_CTRL_30fpsVGA_NoVArioPixel 0x50 -#define FORMAT_CTRL_30fpsVGA_VArioPixel 0x60 -#define OUTPUT_FORMAT_RAWRGB 0x00 -#define OUTPUT_FORMAT_RAWRGB_DATA 0x00 -#define OUTPUT_FORMAT_RAWRGB_INTERP 0x01 -#define OUTPUT_FORMAT_YUV 0x02 -#define OUTPUT_FORMAT_RGB 0x03 - -/* COM9 Register */ -#define COM9_GAIN_2x 0x00 -#define COM9_GAIN_4x 0x10 -#define COM9_GAIN_8x 0x20 -#define COM9_GAIN_16x 0x30 -#define COM9_GAIN_32x 0x40 -#define COM9_GAIN_64x 0x50 -#define COM9_GAIN_128x 0x60 -#define COM9_DROP_VSYNC 0x04 -#define COM9_DROP_HREF 0x02 -#define COM9_SET_AGC(r, x) ((r&0x8F)|((x&0x07) << 4)) - -/* COM10 Register */ -#define RESETb_REMAP_SLHS 0x80 -#define HREF_CHANGE_HSYNC 0x40 -#define PCLK_ON 0x00 -#define PCLK_OFF 0x20 -#define PCLK_POLARITY_REV 0x10 -#define HREF_POLARITY_REV 0x08 -#define RESET_ENDPOINT 0x04 -#define VSYNC_NEG 0x02 -#define HSYNC_NEG 0x01 - -/* TSLB Register */ -#define PCLK_DELAY_0 0x00 -#define PCLK_DELAY_2 0x40 -#define PCLK_DELAY_4 0x80 -#define PCLK_DELAY_6 0xC0 -#define OUTPUT_BITWISE_REV 0x20 -#define UV_NORMAL 0x00 -#define UV_FIXED 0x10 -#define YUV_SEQ_YUYV 0x00 -#define YUV_SEQ_YVYU 0x02 -#define YUV_SEQ_VYUY 0x04 -#define YUV_SEQ_UYVY 0x06 -#define BANDING_FREQ_50 0x02 - -#define RGB_NORMAL 0x00 -#define RGB_565 0x10 -#define RGB_555 0x30 - - -#define COM1_CCIR656 0x40 /* CCIR656 enable */ -#define COM2_SSLEEP 0x10 /* Soft sleep mode */ -#define COM3_SWAP 0x40 /* Byte swap */ -#define COM3_SCALEEN 0x08 /* Enable scaling */ -#define COM3_DCWEN 0x04 /* Enable downsamp/crop/window */ -#define CLK_EXT 0x40 /* Use external clock directly */ -#define CLK_SCALE 0x3f /* Mask for internal clock scale */ -#define COM7_RESET 0x80 /* Register reset */ -#define COM7_FMT_MASK 0x38 -#define COM7_FMT_VGA 0x00 -#define COM7_FMT_CIF 0x20 /* CIF format */ -#define COM7_FMT_QVGA 0x10 /* QVGA format */ -#define COM7_FMT_QCIF 0x08 /* QCIF format */ -#define COM7_RGB 0x04 /* bits 0 and 2 - RGB format */ -#define COM7_YUV 0x00 /* YUV */ -#define COM7_BAYER 0x01 /* Bayer format */ -#define COM7_PBAYER 0x05 /* "Processed bayer" */ -#define COM8_FASTAEC 0x80 /* Enable fast AGC/AEC */ -#define COM8_AECSTEP 0x40 /* Unlimited AEC step size */ -#define COM8_BFILT 0x20 /* Band filter enable */ -#define COM8_AGC 0x04 /* Auto gain enable */ -#define COM8_AWB 0x02 /* White balance enable */ -#define COM8_AEC 0x01 /* Auto exposure enable */ -#define COM10_HSYNC 0x40 /* HSYNC instead of HREF */ -#define COM10_PCLK_HB 0x20 /* Suppress PCLK on horiz blank */ -#define COM10_HREF_REV 0x08 /* Reverse HREF */ -#define COM10_VS_LEAD 0x04 /* VSYNC on clock leading edge */ -#define COM10_VS_NEG 0x02 /* VSYNC negative */ -#define COM10_HS_NEG 0x01 /* HSYNC negative */ -#define MVFP_MIRROR 0x20 /* Mirror image */ -#define MVFP_FLIP 0x10 /* Vertical flip */ - -#define TSLB_YLAST 0x04 /* UYVY or VYUY - see com13 */ -#define COM11_NIGHT 0x80 /* NIght mode enable */ -#define COM11_NMFR 0x60 /* Two bit NM frame rate */ -#define COM11_HZAUTO 0x10 /* Auto detect 50/60 Hz */ -#define COM11_50HZ 0x08 /* Manual 50Hz select */ -#define COM11_EXP 0x02 -#define COM12_HREF 0x80 /* HREF always */ -#define COM13_GAMMA 0x80 /* Gamma enable */ -#define COM13_UVSAT 0x40 /* UV saturation auto adjustment */ -#define COM13_UVSWAP 0x01 /* V before U - w/TSLB */ -#define COM14_DCWEN 0x10 /* DCW/PCLK-scale enable */ -#define COM15_R10F0 0x00 /* Data range 10 to F0 */ -#define COM15_R01FE 0x80 /* 01 to FE */ -#define COM15_R00FF 0xc0 /* 00 to FF */ -#define COM15_RGB565 0x10 /* RGB565 output */ -#define COM15_RGB555 0x30 /* RGB555 output */ -#define COM16_AWBGAIN 0x08 /* AWB gain enable */ -#define COM17_AECWIN 0xc0 /* AEC window - must match COM4 */ -#define COM17_CBAR 0x08 /* DSP Color bar */ -/* - * This matrix defines how the colors are generated, must be - * tweaked to adjust hue and saturation. - * - * Order: v-red, v-green, v-blue, u-red, u-green, u-blue - * They are nine-bit signed quantities, with the sign bit - * stored in0x58.Sign for v-red is bit 0, and up from there. - */ -#define CMATRIX_LEN 6 -#define R76_BLKPCOR 0x80 /* Black pixel correction enable */ -#define R76_WHTPCOR 0x40 /* White pixel correction enable */ -#define R444_ENABLE 0x02 /* Turn on RGB444, overrides 5x5 */ -#define R444_RGBX 0x01 /* Empty nibble at end */ -#define COM7_FMT_CIF 0x20 /* CIF format */ -#define COM7_RGB 0x04 /* bits 0 and 2 - RGB format */ -#define COM7_YUV 0x00 /* YUV */ -#define COM7_BAYER 0x01 /* Bayer format */ -#define COM7_PBAYER 0x05 /* "Processed bayer" */ -#define COM10_VS_LEAD 0x04 /* VSYNC on clock leading edge */ -#define COM11_50HZ 0x08 /* Manual 50Hz select */ -#define COM13_UVSAT 0x40 /* UV saturation auto adjustment */ -#define COM15_R01FE 0x80 /* 01 to FE */ -#define MTX1 0x4f /* Matrix Coefficient 1 */ -#define MTX2 0x50 /* Matrix Coefficient 2 */ -#define MTX3 0x51 /* Matrix Coefficient 3 */ -#define MTX4 0x52 /* Matrix Coefficient 4 */ -#define MTX5 0x53 /* Matrix Coefficient 5 */ -#define MTX6 0x54 /* Matrix Coefficient 6 */ -#define MTXS 0x58 /* Matrix Coefficient Sign */ -#define AWBC7 0x59 /* AWB Control 7 */ -#define AWBC8 0x5a /* AWB Control 8 */ -#define AWBC9 0x5b /* AWB Control 9 */ -#define AWBC10 0x5c /* AWB Control 10 */ -#define AWBC11 0x5d /* AWB Control 11 */ -#define AWBC12 0x5e /* AWB Control 12 */ -#define GGAIN 0x6a /* G Channel AWB Gain */ -#define DBLV 0x6b -#define AWBCTR3 0x6c /* AWB Control 3 */ -#define AWBCTR2 0x6d /* AWB Control 2 */ -#define AWBCTR1 0x6e /* AWB Control 1 */ -#define AWBCTR0 0x6f /* AWB Control 0 */ - -#endif // (ACTIVE_CAMERA == CAM_OV7670) - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV7670_REGS_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/include/ov7725_regs.h b/Examples/MAX32572/Barcode_Decoder/include/ov7725_regs.h deleted file mode 100644 index b1b73d4c6d8..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/ov7725_regs.h +++ /dev/null @@ -1,352 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV7725 register definitions. - */ - -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV7725_REGS_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV7725_REGS_H_ - -#if (ACTIVE_CAMERA == CAM_OV7725) - -#define GAIN 0x00 /* AGC - Gain control gain setting */ -#define BLUE 0x01 /* AWB - Blue channel gain setting */ -#define RED 0x02 /* AWB - Red channel gain setting */ -#define GREEN 0x03 /* AWB - Green channel gain setting */ -#define BAVG 0x05 /* U/B Average Level */ -#define GAVG 0x06 /* Y/Gb Average Level */ -#define RAVG 0x07 /* V/R Average Level */ -#define AECH 0x08 /* Exposure Value - AEC MSBs */ - -#define COM2 0x09 /* Common Control 2 */ -#define COM2_SOFT_SLEEP 0x10 /* Soft sleep mode */ -#define COM2_OUT_DRIVE_1x 0x00 /* Output drive capability 1x */ -#define COM2_OUT_DRIVE_2x 0x01 /* Output drive capability 2x */ -#define COM2_OUT_DRIVE_3x 0x02 /* Output drive capability 3x */ -#define COM2_OUT_DRIVE_4x 0x03 /* Output drive capability 4x */ - -#define PID 0x0A /* Product ID Number MSB */ -#define VER 0x0B /* Product ID Number LSB */ - -#define COM3 0x0C /* Common Control 3 */ -#define COM3_VFLIP 0x80 /* Vertical flip image ON/OFF selection */ -#define COM3_MIRROR 0x40 /* Horizontal mirror image ON/OFF selection */ -#define COM3_SWAP_BR 0x20 /* Swap B/R output sequence in RGB output mode */ -#define COM3_SWAP_YUV 0x10 /* Swap Y/UV output sequence in YUV output mode */ -#define COM3_SWAP_MSB 0x08 /* Swap output MSB/LSB */ -#define COM3_TRI_CLOCK 0x04 /* Tri-state option for output clock at power-down period */ -#define COM3_TRI_DATA 0x02 /* Tri-state option for output data at power-down period */ -#define COM3_COLOR_BAR 0x01 /* Sensor color bar test pattern output enable */ -#define COM3_SET_CBAR(r, x) ((r&0xFE)|((x&1) << 0)) -#define COM3_SET_MIRROR(r, x) ((r&0xBF)|((x&1) << 6)) -#define COM3_SET_FLIP(r, x) ((r&0x7F)|((x&1) << 7)) -#define COM3_GET_CBAR(r) ((r>>0)&1) -#define COM3_GET_MIRROR(r) ((r>>6)&1) -#define COM3_GET_FLIP(r) ((r>>7)&1) - -#define COM4 0x0D /* Common Control 4 */ -#define COM4_PLL_BYPASS 0x00 /* Bypass PLL */ -#define COM4_PLL_4x 0x40 /* PLL frequency 4x */ -#define COM4_PLL_6x 0x80 /* PLL frequency 6x */ -#define COM4_PLL_8x 0xC0 /* PLL frequency 8x */ -#define COM4_AEC_FULL 0x00 /* AEC evaluate full window */ -#define COM4_AEC_1_2 0x10 /* AEC evaluate 1/2 window */ -#define COM4_AEC_1_4 0x20 /* AEC evaluate 1/4 window */ -#define COM4_AEC_2_3 0x30 /* AEC evaluate 2/3 window */ -#define COM4_GET_PLL(r) (r&0xC0) - -#define COM5 0x0E /* Common Control 5 */ -#define COM5_AFR 0x80 /* Auto frame rate control ON/OFF selection (night mode) */ -#define COM5_AFR_SPEED 0x40 /* Auto frame rate control speed selection */ -#define COM5_AFR_0 0x00 /* No reduction of frame rate */ -#define COM5_AFR_1_2 0x10 /* Max reduction to 1/2 frame rate */ -#define COM5_AFR_1_4 0x20 /* Max reduction to 1/4 frame rate */ -#define COM5_AFR_1_8 0x30 /* Max reduction to 1/8 frame rate */ -#define COM5_AFR_4x 0x04 /* Add frame when AGC reaches 4x gain */ -#define COM5_AFR_8x 0x08 /* Add frame when AGC reaches 8x gain */ -#define COM5_AFR_16x 0x0c /* Add frame when AGC reaches 16x gain */ -#define COM5_AEC_NO_LIMIT 0x01 /* No limit to AEC increase step */ - -#define COM6 0x0F /* Common Control 6 */ -#define COM6_AUTO_WINDOW 0x01 /* Auto window setting ON/OFF selection when format changes */ - -#define AEC 0x10 /* AEC[7:0] (see register AECH for AEC[15:8]) */ - -#define CLKRC 0x11 /* Internal Clock */ -#define CLKRC_NO_PRESCALE 0x40 /* Use external clock directly */ -#define CLKRC_PRESCALER 0x3F /* Internal clock pre-scaler */ - -#define COM7 0x12 /* Common Control 7 */ -#define COM7_RESET 0x80 /* SCCB Register Reset */ -#define COM7_RES_VGA 0x00 /* Resolution VGA */ -#define COM7_RES_QVGA 0x40 /* Resolution QVGA */ -#define COM7_BT656 0x20 /* BT.656 protocol ON/OFF */ -#define COM7_SENSOR_RAW 0x10 /* Sensor RAW */ -#define COM7_FMT_GBR422 0x00 /* RGB output format GBR422 */ -#define COM7_FMT_RGB565 0x04 /* RGB output format RGB565 */ -#define COM7_FMT_RGB555 0x08 /* RGB output format RGB555 */ -#define COM7_FMT_RGB444 0x0C /* RGB output format RGB444 */ -#define COM7_FMT_YUV 0x00 /* Output format YUV */ -#define COM7_FMT_P_BAYER 0x01 /* Output format Processed Bayer RAW */ -#define COM7_FMT_RGB 0x02 /* Output format RGB */ -#define COM7_FMT_R_BAYER 0x03 /* Output format Bayer RAW */ -#define COM7_SET_FMT(r, x) ((r&0xFC)|((x&0x3) << 0)) -#define COM7_SET_RES(r, x) ((r&0xBF)|(x)) -#define COM7_GET_FMT(r) (r&0x03) - -#define COM8 0x13 /* Common Control 8 */ -#define COM8_FAST_AUTO 0x80 /* Enable fast AGC/AEC algorithm */ -#define COM8_STEP_VSYNC 0x00 /* AEC - Step size limited to vertical blank */ -#define COM8_STEP_UNLIMIT 0x40 /* AEC - Step size unlimited step size */ -#define COM8_BANDF_EN 0x20 /* Banding filter ON/OFF */ -#define COM8_AEC_BANDF 0x10 /* Enable AEC below banding value */ -#define COM8_AEC_FINE_EN 0x08 /* Fine AEC ON/OFF control */ -#define COM8_AGC_EN 0x04 /* AGC Enable */ -#define COM8_AWB_EN 0x02 /* AWB Enable */ -#define COM8_AEC_EN 0x01 /* AEC Enable */ -#define COM8_SET_AGC(r, x) ((r&0xFB)|((x&0x1) << 2)) -#define COM8_SET_AWB(r, x) ((r&0xFD)|((x&0x1) << 1)) -#define COM8_SET_AEC(r, x) ((r&0x7E)|((x&0x1) << 7)|((x&0x1) << 0)) - -#define COM9 0x14 /* Common Control 9 */ -#define COM9_HISTO_AVG 0x80 /* Histogram or average based AEC/AGC selection */ -#define COM9_AGC_GAIN_2x 0x00 /* Automatic Gain Ceiling 2x */ -#define COM9_AGC_GAIN_4x 0x10 /* Automatic Gain Ceiling 4x */ -#define COM9_AGC_GAIN_8x 0x20 /* Automatic Gain Ceiling 8x */ -#define COM9_AGC_GAIN_16x 0x30 /* Automatic Gain Ceiling 16x */ -#define COM9_AGC_GAIN_32x 0x40 /* Automatic Gain Ceiling 32x */ -#define COM9_DROP_VSYNC 0x04 /* Drop VSYNC output of corrupt frame */ -#define COM9_DROP_HREF 0x02 /* Drop HREF output of corrupt frame */ -#define COM9_SET_AGC(r, x) ((r&0x8F)|((x&0x07) << 4)) - -#define COM10 0x15 /* Common Control 10 */ -#define COM10_NEGATIVE 0x80 /* Output negative data */ -#define COM10_HSYNC_EN 0x40 /* HREF changes to HSYNC */ -#define COM10_PCLK_FREE 0x00 /* PCLK output option: free running PCLK */ -#define COM10_PCLK_MASK 0x20 /* PCLK output option: masked during horizontal blank */ -#define COM10_PCLK_REV 0x10 /* PCLK reverse */ -#define COM10_HREF_REV 0x08 /* HREF reverse */ -#define COM10_VSYNC_FALLING 0x00 /* VSYNC changes on falling edge of PCLK */ -#define COM10_VSYNC_RISING 0x04 /* VSYNC changes on rising edge of PCLK */ -#define COM10_VSYNC_NEG 0x02 /* VSYNC negative */ -#define COM10_OUT_RANGE_8 0x01 /* Output data range: Full range */ -#define COM10_OUT_RANGE_10 0x00 /* Output data range: Data from [10] to [F0] (8 MSBs) */ - -#define REG16 0x16 /* Register 16 */ -#define REG16_BIT_SHIFT 0x80 /* Bit shift test pattern options */ - -#define HSTART 0x17 /* Horizontal Frame (HREF column) Start 8 MSBs (2 LSBs are at HREF[5:4]) */ -#define HSIZE 0x18 /* Horizontal Sensor Size (2 LSBs are at HREF[1:0]) */ -#define VSTART 0x19 /* Vertical Frame (row) Start 8 MSBs (1 LSB is at HREF[6]) */ -#define VSIZE 0x1A /* Vertical Sensor Size (1 LSB is at HREF[2]) */ -#define PSHFT 0x1B /* Data Format - Pixel Delay Select */ -#define MIDH 0x1C /* Manufacturer ID Byte - High */ -#define MIDL 0x1D /* Manufacturer ID Byte - Low */ -#define LAEC 0x1F /* Fine AEC Value - defines exposure value less than one row period */ - -#define COM11 0x20 /* Common Control 11 */ -#define COM11_SNGL_FRAME_EN 0x02 /* Single frame ON/OFF selection */ -#define COM11_SNGL_XFR_TRIG 0x01 /* Single frame transfer trigger */ - -#define BDBASE 0x22 /* Banding Filter Minimum AEC Value */ -#define BDSTEP 0x23 /* Banding Filter Maximum Step */ -#define AEW 0x24 /* AGC/AEC - Stable Operating Region (Upper Limit) */ -#define AEB 0x25 /* AGC/AEC - Stable Operating Region (Lower Limit) */ -#define VPT 0x26 /* AGC/AEC Fast Mode Operating Region */ -#define REG28 0x28 /* Selection on the number of dummy rows, N */ -#define HOUTSIZE 0x29 /* Horizontal Data Output Size MSBs (2 LSBs at register EXHCH[1:0]) */ -#define EXHCH 0x2A /* Dummy Pixel Insert MSB */ -#define EXHCL 0x2B /* Dummy Pixel Insert LSB */ -#define VOUTSIZE 0x2C /* Vertical Data Output Size MSBs (LSB at register EXHCH[2]) */ -#define ADVFL 0x2D /* LSB of Insert Dummy Rows in Vertical Sync (1 bit equals 1 row) */ -#define ADVFH 0x2E /* MSB of Insert Dummy Rows in Vertical Sync */ -#define YAVE 0x2F /* Y/G Channel Average Value */ -#define LUMHTH 0x30 /* Histogram AEC/AGC Luminance High Level Threshold */ -#define LUMLTH 0x31 /* Histogram AEC/AGC Luminance Low Level Threshold */ -#define HREF 0x32 /* Image Start and Size Control */ -#define DM_LNL 0x33 /* Dummy Row Low 8 Bits */ -#define DM_LNH 0x34 /* Dummy Row High 8 Bits */ -#define ADOFF_B 0x35 /* AD Offset Compensation Value for B Channel */ -#define ADOFF_R 0x36 /* AD Offset Compensation Value for R Channel */ -#define ADOFF_GB 0x37 /* AD Offset Compensation Value for GB Channel */ -#define ADOFF_GR 0x38 /* AD Offset Compensation Value for GR Channel */ -#define OFF_B 0x39 /* AD Offset Compensation Value for B Channel */ -#define OFF_R 0x3A /* AD Offset Compensation Value for R Channel */ -#define OFF_GB 0x3B /* AD Offset Compensation Value for GB Channel */ -#define OFF_GR 0x3C /* AD Offset Compensation Value for GR Channel */ - -#define COM12 0x3D /* DC offset compensation for analog process */ - -#define COM13 0x3E /* Common Control 13 */ -#define COM13_BLC_EN 0x80 /* BLC enable */ -#define COM13_ADC_EN 0x40 /* ADC channel BLC ON/OFF control */ -#define COM13_ANALOG_BLC 0x20 /* Analog processing channel BLC ON/OFF control */ -#define COM13_ABLC_GAIN_EN 0x04 /* ABLC gain trigger enable */ - -#define COM14 0x3F /* Common Control 14 */ -#define COM15 0x40 /* Common Control 15 */ -#define COM16 0x41 /* Common Control 16 */ -#define TGT_B 0x42 /* BLC Blue Channel Target Value */ -#define TGT_R 0x43 /* BLC Red Channel Target Value */ -#define TGT_GB 0x44 /* BLC Gb Channel Target Value */ -#define TGT_GR 0x45 /* BLC Gr Channel Target Value */ - -#define LC_CTR 0x46 /* Lens Correction Control */ -#define LC_CTR_RGB_COMP_1 0x00 /* R, G, and B channel compensation coefficient is set by LC_COEF (0x49) */ -#define LC_CTR_RGB_COMP_3 0x04 /* R, G, and B channel compensation coefficient is set by registers */ - /* LC_COEFB (0x4B), LC_COEF (0x49), and LC_COEFR (0x4C), respectively */ -#define LC_CTR_EN 0x01 /* Lens correction enable */ -#define LC_XC 0x47 /* X Coordinate of Lens Correction Center Relative to Array Center */ -#define LC_YC 0x48 /* Y Coordinate of Lens Correction Center Relative to Array Center */ -#define LC_COEF 0x49 /* Lens Correction Coefficient */ -#define LC_RADI 0x4A /* Lens Correction Radius */ -#define LC_COEFB 0x4B /* Lens Correction B Channel Compensation Coefficient */ -#define LC_COEFR 0x4C /* Lens Correction R Channel Compensation Coefficient */ - -#define FIXGAIN 0x4D /* Analog Fix Gain Amplifier */ -#define AREF0 0x4E /* Sensor Reference Control */ -#define AREF1 0x4F /* Sensor Reference Current Control */ -#define AREF2 0x50 /* Analog Reference Control */ -#define AREF3 0x51 /* ADC Reference Control */ -#define AREF4 0x52 /* ADC Reference Control */ -#define AREF5 0x53 /* ADC Reference Control */ -#define AREF6 0x54 /* Analog Reference Control */ -#define AREF7 0x55 /* Analog Reference Control */ -#define UFIX 0x60 /* U Channel Fixed Value Output */ -#define VFIX 0x61 /* V Channel Fixed Value Output */ -#define AWBB_BLK 0x62 /* AWB Option for Advanced AWB */ - -#define AWB_CTRL0 0x63 /* AWB Control Byte 0 */ -#define AWB_CTRL0_GAIN_EN 0x80 /* AWB gain enable */ -#define AWB_CTRL0_CALC_EN 0x40 /* AWB calculate enable */ -#define AWB_CTRL0_WBC_MASK 0x0F /* WBC threshold 2 */ - -#define DSP_CTRL1 0x64 /* DSP Control Byte 1 */ -#define DSP_CTRL1_FIFO_EN 0x80 /* FIFO enable/disable selection */ -#define DSP_CTRL1_UV_EN 0x40 /* UV adjust function ON/OFF selection */ -#define DSP_CTRL1_SDE_EN 0x20 /* SDE enable */ -#define DSP_CTRL1_MTRX_EN 0x10 /* Color matrix ON/OFF selection */ -#define DSP_CTRL1_INTRP_EN 0x08 /* Interpolation ON/OFF selection */ -#define DSP_CTRL1_GAMMA_EN 0x04 /* Gamma function ON/OFF selection */ -#define DSP_CTRL1_BLACK_EN 0x02 /* Black defect auto correction ON/OFF */ -#define DSP_CTRL1_WHITE_EN 0x01 /* White defect auto correction ON/OFF */ - -#define DSP_CTRL2 0x65 /* DSP Control Byte 2 */ -#define DSP_CTRL2_VDCW_EN 0x08 /* Vertical DCW enable */ -#define DSP_CTRL2_HDCW_EN 0x04 /* Horizontal DCW enable */ -#define DSP_CTRL2_VZOOM_EN 0x02 /* Vertical zoom out enable */ -#define DSP_CTRL2_HZOOM_EN 0x01 /* Horizontal zoom out enable */ - -#define DSP_CTRL3 0x66 /* DSP Control Byte 3 */ -#define DSP_CTRL3_UV_EN 0x80 /* UV output sequence option */ -#define DSP_CTRL3_CBAR_EN 0x20 /* DSP color bar ON/OFF selection */ -#define DSP_CTRL3_FIFO_EN 0x08 /* FIFO power down ON/OFF selection */ -#define DSP_CTRL3_SCAL1_PWDN 0x04 /* Scaling module power down control 1 */ -#define DSP_CTRL3_SCAL2_PWDN 0x02 /* Scaling module power down control 2 */ -#define DSP_CTRL3_INTRP_PWDN 0x01 /* Interpolation module power down control */ -#define DSP_CTRL3_SET_CBAR(r, x) ((r&0xDF)|((x&1) << 5)) - -#define DSP_CTRL4 0x67 /* DSP Control Byte 4 */ -#define DSP_CTRL4_YUV_RGB 0x00 /* Output selection YUV or RGB */ -#define DSP_CTRL4_RAW8 0x02 /* Output selection RAW8 */ -#define DSP_CTRL4_RAW10 0x03 /* Output selection RAW10 */ - -#define AWB_BIAS 0x68 /* AWB BLC Level Clip */ -#define AWB_CTRL1 0x69 /* AWB Control 1 */ -#define AWB_CTRL2 0x6A /* AWB Control 2 */ - -#define AWB_CTRL3 0x6B /* AWB Control 3 */ -#define AWB_CTRL3_ADVANCED 0x80 /* AWB mode select - Advanced AWB */ -#define AWB_CTRL3_SIMPLE 0x00 /* AWB mode select - Simple AWB */ - -#define AWB_CTRL4 0x6C /* AWB Control 4 */ -#define AWB_CTRL5 0x6D /* AWB Control 5 */ -#define AWB_CTRL6 0x6E /* AWB Control 6 */ -#define AWB_CTRL7 0x6F /* AWB Control 7 */ -#define AWB_CTRL8 0x70 /* AWB Control 8 */ -#define AWB_CTRL9 0x71 /* AWB Control 9 */ -#define AWB_CTRL10 0x72 /* AWB Control 10 */ -#define AWB_CTRL11 0x73 /* AWB Control 11 */ -#define AWB_CTRL12 0x74 /* AWB Control 12 */ -#define AWB_CTRL13 0x75 /* AWB Control 13 */ -#define AWB_CTRL14 0x76 /* AWB Control 14 */ -#define AWB_CTRL15 0x77 /* AWB Control 15 */ -#define AWB_CTRL16 0x78 /* AWB Control 16 */ -#define AWB_CTRL17 0x79 /* AWB Control 17 */ -#define AWB_CTRL18 0x7A /* AWB Control 18 */ -#define AWB_CTRL19 0x7B /* AWB Control 19 */ -#define AWB_CTRL20 0x7C /* AWB Control 20 */ -#define AWB_CTRL21 0x7D /* AWB Control 21 */ -#define GAM1 0x7E /* Gamma Curve 1st Segment Input End Point 0x04 Output Value */ -#define GAM2 0x7F /* Gamma Curve 2nd Segment Input End Point 0x08 Output Value */ -#define GAM3 0x80 /* Gamma Curve 3rd Segment Input End Point 0x10 Output Value */ -#define GAM4 0x81 /* Gamma Curve 4th Segment Input End Point 0x20 Output Value */ -#define GAM5 0x82 /* Gamma Curve 5th Segment Input End Point 0x28 Output Value */ -#define GAM6 0x83 /* Gamma Curve 6th Segment Input End Point 0x30 Output Value */ -#define GAM7 0x84 /* Gamma Curve 7th Segment Input End Point 0x38 Output Value */ -#define GAM8 0x85 /* Gamma Curve 8th Segment Input End Point 0x40 Output Value */ -#define GAM9 0x86 /* Gamma Curve 9th Segment Input Enpd Point 0x48 Output Value */ -#define GAM10 0x87 /* Gamma Curve 10th Segment Input End Point 0x50 Output Value */ -#define GAM11 0x88 /* Gamma Curve 11th Segment Input End Point 0x60 Output Value */ -#define GAM12 0x89 /* Gamma Curve 12th Segment Input End Point 0x70 Output Value */ -#define GAM13 0x8A /* Gamma Curve 13th Segment Input End Point 0x90 Output Value */ -#define GAM14 0x8B /* Gamma Curve 14th Segment Input End Point 0xB0 Output Value */ -#define GAM15 0x8C /* Gamma Curve 15th Segment Input End Point 0xD0 Output Value */ -#define SLOP 0x8D /* Gamma Curve Highest Segment Slope */ -#define DNSTH 0x8E /* De-noise Threshold */ -#define EDGE0 0x8F /* Edge Enhancement Strength Control */ -#define EDGE1 0x90 /* Edge Enhancement Threshold Control */ -#define DNSOFF 0x91 /* Auto De-noise Threshold Control */ -#define EDGE2 0x92 /* Edge Enhancement Strength Upper Limit */ -#define EDGE3 0x93 /* Edge Enhancement Strength Upper Limit */ -#define MTX1 0x94 /* Matrix Coefficient 1 */ -#define MTX2 0x95 /* Matrix Coefficient 2 */ -#define MTX3 0x96 /* Matrix Coefficient 3 */ -#define MTX4 0x97 /* Matrix Coefficient 4 */ -#define MTX5 0x98 /* Matrix Coefficient 5 */ -#define MTX6 0x99 /* Matrix Coefficient 6 */ - -#define MTX_CTRL 0x9A /* Matrix Control */ -#define MTX_CTRL_DBL_EN 0x80 /* Matrix double ON/OFF selection */ - -#define BRIGHTNESS 0x9B /* Brightness Control */ -#define CONTRAST 0x9C /* Contrast Gain */ -#define UVADJ0 0x9E /* Auto UV Adjust Control 0 */ -#define UVADJ1 0x9F /* Auto UV Adjust Control 1 */ -#define SCAL0 0xA0 /* DCW Ratio Control */ -#define SCAL1 0xA1 /* Horizontal Zoom Out Control */ -#define SCAL2 0xA2 /* Vertical Zoom Out Control */ -#define FIFODLYM 0xA3 /* FIFO Manual Mode Delay Control */ -#define FIFODLYA 0xA4 /* FIFO Auto Mode Delay Control */ - -#define SDE 0xA6 /* Special Digital Effect Control */ -#define SDE_NEGATIVE_EN 0x40 /* Negative image enable */ -#define SDE_GRAYSCALE_EN 0x20 /* Gray scale image enable */ -#define SDE_V_FIXED_EN 0x10 /* V fixed value enable */ -#define SDE_U_FIXED_EN 0x08 /* U fixed value enable */ -#define SDE_CONT_BRIGHT_EN 0x04 /* Contrast/Brightness enable */ -#define SDE_SATURATION_EN 0x02 /* Saturation enable */ -#define SDE_HUE_EN 0x01 /* Hue enable */ - -#define USAT 0xA7 /* U Component Saturation Gain */ -#define VSAT 0xA8 /* V Component Saturation Gain */ -#define HUECOS 0xA9 /* Cosine value × 0x80 */ -#define HUESIN 0xAA /* Sine value × 0x80 */ -#define SIGN_BIT 0xAB /* Sign Bit for Hue and Brightness */ - -#define DSPAUTO 0xAC /* DSP Auto Function ON/OFF Control */ -#define DSPAUTO_AWB_EN 0x80 /* AWB auto threshold control */ -#define DSPAUTO_DENOISE_EN 0x40 /* De-noise auto threshold control */ -#define DSPAUTO_EDGE_EN 0x20 /* Sharpness (edge enhancement) auto strength control */ -#define DSPAUTO_UV_EN 0x10 /* UV adjust auto slope control */ -#define DSPAUTO_SCAL0_EN 0x08 /* Auto scaling factor control (register SCAL0 (0xA0)) */ -#define DSPAUTO_SCAL1_EN 0x04 /* Auto scaling factor control (registers SCAL1 (0xA1 and SCAL2 (0xA2)) */ - -#endif // (ACTIVE_CAMERA == CAM_OV7725) - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_OV7725_REGS_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/include/sccb.h b/Examples/MAX32572/Barcode_Decoder/include/sccb.h deleted file mode 100644 index fad3fe9663a..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/sccb.h +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_SCCB_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_SCCB_H_ - -#include - -int sccb_init(); -int sccb_scan(); -int sccb_read_byt(uint8_t slv_addr, uint8_t reg, uint8_t *byt); -int sccb_write_byt(uint8_t slv_addr, uint8_t reg, uint8_t byt); - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_SCCB_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/include/utils.h b/Examples/MAX32572/Barcode_Decoder/include/utils.h deleted file mode 100644 index fabe66dd50f..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/include/utils.h +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_UTILS_H_ -#define EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_UTILS_H_ - -/***************************** INCLUDES *********************************/ -#include - -/***************************** MACROS *********************************/ - -/***************************** VARIABLES *********************************/ - -/***************************** FUNCTIONS *********************************/ -void utils_delay_ms(unsigned int ms); -unsigned int utils_get_time_ms(void); -void utils_hexDump(const char *title, unsigned char *buf, unsigned int len); -int utils_send_img_to_pc(uint8_t *img, uint32_t imgLen, int w, int h, uint8_t *pixelformat); - -#endif // EXAMPLES_MAX32572_BARCODE_DECODER_INCLUDE_UTILS_H_ diff --git a/Examples/MAX32572/Barcode_Decoder/main.c b/Examples/MAX32572/Barcode_Decoder/main.c deleted file mode 100644 index 84b9e58993b..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/main.c +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/* - * @file main.c - * @brief Decode barcodes from an image. Supports Code39, Code128, and QR decoding algorithms. -*/ - -/***** Includes *****/ -#include -#include - -#include - -#include "camera.h" -#include "app_loop.h" - -// ***************************************************************************** -int main(void) -{ - int ret = 0; - - printf("\n************** Barcode Decoder on MAX32572 !*************\n"); -#ifdef BRCD_RDR_IMG_TO_PC - // To send image to PC - MXC_UART_Init(MXC_UART1, 460800); -#endif - // enable catch - MXC_ICC_Enable(); - // initialize timer - ret = MXC_RTC_Init(0, 0); - - if (ret == 0) { - ret = MXC_RTC_Start(); - } - - if (ret == 0) { - // initialize loop - app_loop_init(); - app_loop_endless(); - } - - return ret; -} diff --git a/Examples/MAX32572/Barcode_Decoder/pc_utility/README b/Examples/MAX32572/Barcode_Decoder/pc_utility/README deleted file mode 100644 index 153b07f48bc..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/pc_utility/README +++ /dev/null @@ -1,8 +0,0 @@ -Python scripts can be used to grab images and convert it to .png on PC side -Existing codes was tested and work as expected, tested with python 3.7 -You may need to install png and serial and opencv python library on your machine. - -To grab camera output run: python grab_image.py -default baudrate is 460800, if you would like to change it do not forget update board side too. - -Usage: python grab_image.py COM42 460800 diff --git a/Examples/MAX32572/Barcode_Decoder/pc_utility/comManager.py b/Examples/MAX32572/Barcode_Decoder/pc_utility/comManager.py deleted file mode 100644 index ead6e236af8..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/pc_utility/comManager.py +++ /dev/null @@ -1,116 +0,0 @@ -import serial -import time -import os -import sys -import string - -ser = serial.Serial() - -def ByteToHex( ch ): - try: - ch = ord(ch) - except: - ch = 0 - - return ch - -def init(comPort, baudRate): - #ser = serial.Serial('COM6', 115200, timeout=0) - global ser - ser.baudrate = baudRate - ser.port = str(comPort) - ser.timeout=3 - try: - ser.open() - except: - None - if ser.is_open: - return 0 - else: - return 1 - - -magic_str = "*RDY*" -start_str = "" - - -PRTCL_STATE_FREE = 0 -PRTCL_STATE_1 = 1, -PRTCL_STATE_2 = 2, -PRTCL_STATE_3 = 3, -PRTCL_STATE_4 = 4, -PRTCL_STATE_FOUND = 5, - -sync_word_state = PRTCL_STATE_FREE - -def find_sync( ): - global start_str - global sync_word_state - isFind = 0 - - if True: - for x in range(1, 1000): - byt = ser.read(1) - if sync_word_state == PRTCL_STATE_FREE: - if (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - - elif sync_word_state == PRTCL_STATE_1: - if (b'S' == byt): - sync_word_state = PRTCL_STATE_2 - elif (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - else: - sync_word_state = PRTCL_STATE_FREE - - elif sync_word_state == PRTCL_STATE_2: - if (b'T' == byt): - sync_word_state = PRTCL_STATE_3 - elif (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - else: - sync_word_state = PRTCL_STATE_FREE - - elif sync_word_state == PRTCL_STATE_3: - if (b'R' == byt): - sync_word_state = PRTCL_STATE_4 - elif (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - else: - sync_word_state = PRTCL_STATE_FREE - - elif sync_word_state == PRTCL_STATE_4: - if (b'*' == byt): - sync_word_state = PRTCL_STATE_FREE - isFind = 1 - break - else: - sync_word_state = PRTCL_STATE_FREE - else: - for x in range(1, 1000): - byt = ser.read(1) - #print("%s" % ByteToHex(byt)) - if ((ByteToHex(byt) < 32) or (ByteToHex(byt) > 127) ): - byt = '-' - - try: - ch = byt.decode("ascii") - except : - ch = str(byt) - - if (len(start_str) == 5): - start_str = start_str[1:] + ch - else: - start_str = start_str[0:] + ch - - #print( "start_str=%s" % start_str ) - if start_str == magic_str: - isFind = 1 - break - return isFind - -def read( expectedLen ): - data=bytearray() - data = ser.read(expectedLen) - return data - \ No newline at end of file diff --git a/Examples/MAX32572/Barcode_Decoder/pc_utility/grab_image.py b/Examples/MAX32572/Barcode_Decoder/pc_utility/grab_image.py deleted file mode 100644 index 1987374140f..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/pc_utility/grab_image.py +++ /dev/null @@ -1,81 +0,0 @@ -import serial -import time -from datetime import datetime -import os -import sys -import string -import comManager -import imgConverter - - -if len(sys.argv) == 3: - comport = sys.argv[1]; - baudRate = sys.argv[2]; -else: - comport = sys.argv[1]; - baudRate = 460800 #default baudrate - -READ_TIMEOUT = 15 - -def ByteToHex( ch ): - try: - ch = ord(ch) - except: - ch = 0 - - return ch - -def print_sep_line( ch ): - line = ch * 80 - print(line, flush=True) - -print("Image Reader Started") -print_sep_line('-') - -retVal = comManager.init(comport, baudRate) -if retVal != 0: - print ("comport open failed. Please check %s status\n" % comport); - sys.exit() - -while True: - if ( comManager.find_sync() == 1 ): - print ("\n\n***Sync word found***", flush=True) - print ("Reading image bytes, please wait...", flush=True) - - # width - arr = comManager.read(2) - w = arr[0]*256 + arr[1] - # height - arr = comManager.read(2) - h = arr[0]*256 + arr[1] - - pixelformat_len = comManager.read(1) - pixelformat = comManager.read(pixelformat_len[0]) - - arr = comManager.read(4) - imageLen = arr[0]*256*256*256 + arr[1]*256*256 + arr[2]*256 + arr[3] - - print ("image Len: %d" % imageLen, flush=True); - if ( imageLen > 0 ): - image=bytearray() - startTime = time.time(); - timeout = 0 - while (imageLen != len(image)): - image += comManager.read(imageLen-len(image)) - print (" Total Read Len:%d bytes" % len(image), flush=True) - # check timeout - if ( time.time() > (startTime + READ_TIMEOUT)): - print("Test Failed: Timeout\n", flush=True); - timeout = 1 - break - - if (timeout == 1): - continue - - print ("All image data read", flush=True); - imgConverter.convert(image, "Image.png", w, h, pixelformat.decode('ASCII')) - #hex_string = "".join("%02x" % b for b in image) - #print (hex_string) - #image_file = open("Image.txt", "w") - #image_file.write(hex_string) - #image_file.close() diff --git a/Examples/MAX32572/Barcode_Decoder/pc_utility/imgConverter.py b/Examples/MAX32572/Barcode_Decoder/pc_utility/imgConverter.py deleted file mode 100644 index 34515bdca18..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/pc_utility/imgConverter.py +++ /dev/null @@ -1,219 +0,0 @@ -import time -import os -import sys -import string -import sys -import zlib -import struct -import png -#import the library opencv -import cv2 - -def swap32(i): - return struct.unpack("I", i))[0] - -def _clamp(n, smallest, largest): - return max(smallest, min(n, largest)) - -def yuv422_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - Y = byte1 - U = byte2 - Y1 = byte3 - V = byte4 - - #Y = byte1 - #U = byte2 - #Y1 = byte3 - #V = byte4 - - #B1 = 1.164 * (y1-16) + 2.018 * (u - 128) - #G1 = 1.164 * (y1-16) - 0.813 * (v - 128) - 0.391 * (u - 128) - #R1 = 1.164 * (y1-16) + 1.596*(v - 128) - #pix[j*2, i] = int(R), int(G), int(B) - - #B2 = 1.164 * (y2-16) + 2.018 * (u - 128) - #G2 = 1.164 * (y2-16) - 0.813 * (v - 128) - 0.391 * (u - 128) - #2 = 1.164 * (y2-16) + 1.596*(v - 128) - #pix[j*2+1, i] = int(R), int(G), int(B) - - #R1 = y1 + 1.4075 * (v - 128) - #G1 = y1 - 0.3455 * (u - 128) - (0.7169 * (v - 128)) - #B1 = y1 + 1.7790 * (u - 128) - - #R2 = y2 + 1.4075 * (v - 128) - #G2 = y2 - 0.3455 * (u - 128) - (0.7169 * (v - 128)) - #B2 = y2 + 1.7790 * (u - 128) - - R1 = Y + 1.4075 * (V - 128) - G1 = Y - 0.3455 * (U - 128) - (0.7169 * (V - 128)) - B1 = Y + 1.7790 * (U - 128) - - R2 = Y1 + 1.4075 * (V - 128) - G2 = Y1 - 0.3455 * (U - 128) - (0.7169 * (V - 128)) - B2 = Y1 + 1.7790 * (U - 128) - - img.append(_clamp(int(R1), 0, 255)) - img.append(_clamp(int(G1), 0, 255)) - img.append(_clamp(int(B1), 0, 255)) - - img.append(_clamp(int(R2), 0, 255)) - img.append(_clamp(int(G2), 0, 255)) - img.append(_clamp(int(B2), 0, 255)) - return img - -def yuv422_to_blackAndWhite(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - Y = byte1 - U = byte2 - Y1 = byte3 - V = byte4 - - r = Y - g = Y - b = Y - - img.append(r) - img.append(g) - img.append(b) - - r = Y1 - g = Y1 - b = Y1 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def blackAndWhite_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence)): - byte1 = bytesequence[i] - - r = byte1 - g = byte1 - b = byte1 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def rgb565_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - value = byte1 * 0x100 + byte2 - - r = (value & 0xf800) >> 11 - g = (value & 0x07e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - value = byte3 * 0x100 + byte4 - - r = (value & 0xf800) >> 11 - g = (value & 0x07e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def rgb555_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - value = byte1 * 0x100 + byte2 - - r = (value & 0x7C00) >> 10 - g = (value & 0x03e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - value = byte3 * 0x100 + byte4 - - r = (value & 0x7C00) >> 11 - g = (value & 0x03e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def show_image(file): - #destroy the window - cv2.destroyAllWindows() - a = cv2.imread(file) - # %%%%%%%%%%%%%%%%%%%%% - #conversion numpy array into rgb image to show - #c = cv2.cvtColor(a, cv2.COLOR_BGR2RGB) - cv2.imshow('CameraImage', a) - #wait for 1 second - k = cv2.waitKey(1) - -def convert(bytesequence, outputfile, xres, yres, pixelformat): - image = [] - - - if (pixelformat == "YUV422"): - imagepixels = yuv422_to_rgb(bytesequence) - elif (pixelformat == "RGB555"): - imagepixels = rgb555_to_rgb(bytesequence) - elif (pixelformat == "RGB565"): - imagepixels = rgb565_to_rgb(bytesequence) - elif (pixelformat == "GRAYSCALE"): #Black and white yuv422 - imagepixels = blackAndWhite_to_rgb(bytesequence) - - offset = 0 - for i in range(yres): - line = [] - offset = (xres * 3) * i - for j in range(xres * 3): - line.append(imagepixels[j + offset]) - image.append(line) - - print("Output image to file xres {}, yres {}".format(xres,yres), flush=True) - f = open(outputfile, 'wb') # binary mode is important - w = png.Writer(xres, yres, greyscale=False) - w.write(f, image) - f.close() - show_image(outputfile) - \ No newline at end of file diff --git a/Examples/MAX32572/Barcode_Decoder/src/app_loop.c b/Examples/MAX32572/Barcode_Decoder/src/app_loop.c deleted file mode 100644 index 62a1900caaf..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/app_loop.c +++ /dev/null @@ -1,158 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include - -#include "camera.h" -#include "utils.h" -// Barcode Decoder include -#include "zbar.h" - -static zbar_image_scanner_t *image_scanner = NULL; - -static int is_barcode_find = 0; - -/**************************** Static Functions *******************************/ -static void print_exec_time(const char *msg, unsigned int t_end, unsigned int t_start) -{ - printf("%s", msg); - - if (t_end >= t_start) { - t_end -= t_start; - printf(" %d sec %d ms\n", (t_end / 1000), (t_end % 1000)); - } else { - printf("\n"); - } -} - -static void process_img(void) -{ - uint8_t *raw; - uint32_t imgLen; - uint32_t w, h; - zbar_image_t *image; - unsigned int start_time; - unsigned int end_time; - - is_barcode_find = 0; - - camera_get_image(&raw, &imgLen, &w, &h); - -#ifdef BRCD_RDR_IMG_TO_PC - printf("Sending image to pc...\n"); - utils_send_img_to_pc(raw, imgLen, w, h, camera_get_pixel_format()); - printf("Send end\n"); -#endif - - start_time = utils_get_time_ms(); - - /* wrap image data */ - image = zbar_image_create(); - zbar_image_set_format(image, *(int *)"Y800"); - zbar_image_set_size(image, w, h); - zbar_image_set_data(image, raw, w * h, zbar_image_free_data); - - /* scan the image for barcodes */ - zbar_scan_image(image_scanner, image); - - /* extract results */ - const zbar_symbol_t *symbol = zbar_image_first_symbol(image); - - for (; symbol; symbol = zbar_symbol_next(symbol)) { - /* do something useful with results */ - zbar_symbol_type_t typ = zbar_symbol_get_type(symbol); - const char *data = zbar_symbol_get_data(symbol); - printf("decoded %s symbol \"%s\"\n", zbar_get_symbol_name(typ), data); - is_barcode_find = 1; - } - - /* clean up */ - zbar_image_destroy(image); - - if (is_barcode_find) { - end_time = utils_get_time_ms(); - print_exec_time("Image Process Time", end_time, start_time); - } -} - -/*****************************************************************************/ -int app_loop_init(void) -{ - int ret = 0; - - camera_init(); - camera_dump_registers(); - - /* create a reader */ - image_scanner = zbar_image_scanner_create(); - /* configure the reader */ - zbar_image_scanner_set_config(image_scanner, ZBAR_NONE, ZBAR_CFG_ENABLE, 1); - - //.. - - return ret; -} - -void app_loop_endless(void) -{ - unsigned int t_start_img; - unsigned int t_end_img; - - t_start_img = utils_get_time_ms(); - - // start to capture - camera_start_campture_image(); - - while (1) { - if (camera_is_image_rcv()) { - t_end_img = utils_get_time_ms(); - - // process images, search barcode inside it - process_img(); - - if (is_barcode_find) { - print_exec_time("Image Read Time", t_end_img, t_start_img); - printf("------------------------------------------------------\n"); - } - - t_start_img = utils_get_time_ms(); - - // restart to capture - camera_start_campture_image(); - } - } - - //zbar_image_scanner_destroy(image_scanner); -} diff --git a/Examples/MAX32572/Barcode_Decoder/src/camera.c b/Examples/MAX32572/Barcode_Decoder/src/camera.c deleted file mode 100644 index 0209d0d4b5a..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/camera.c +++ /dev/null @@ -1,302 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include "camera.h" -#include "sccb.h" - -#include "mxc_device.h" -#include "board.h" -#include "nvic_table.h" -#include "pt.h" -#include "cameraif.h" -#include "utils.h" -#include "dma.h" -#include "uart.h" -#include "mxc_delay.h" -#include "gpio.h" - -/******************************* DEFINES ***************************/ -#define USE_DMA 0 // set it for dma read mode - -#define FIFO_THRES_HOLD 4 -#define PCIF_DATA_BUS_WITH MXC_V_CAMERAIF_CTRL_DATA_WIDTH_8BIT - -/******************************** Static Functions ***************************/ -static unsigned int g_framesize = (unsigned int)FRAMESIZE_SP; -static pixformat_t g_pixelformat = PIXFORMAT_GRAYSCALE; - -static uint8_t rx_data[512 * 384 + 2]; // +2 for manage overflow -static volatile uint32_t rx_data_index = 0; -static volatile uint32_t g_is_img_rcv = 0; -static int g_total_img_size = 0; - -static camera_t camera; -extern int sensor_register(camera_t *camera); - -const int resolution[][2] = { - /* Special resolutions */ - { 512, 384 }, /* SP */ - // C/SIF Resolutions - { 352, 288 }, /* CIF */ - // VGA Resolutions - { 320, 240 }, /* QVGA */ - { 640, 480 }, /* VGA */ -}; - -//---------------------------------------- -// PCIF ISR -//---------------------------------------- -void camera_irq_handler(void) -{ -#if !USE_DMA - - // check fifo threshold flag - if (MXC_PCIF->int_fl & MXC_F_CAMERAIF_INT_FL_FIFO_THRESH) { - /* - * Read sequentially do not use loop - * because it may cause same delay and you may miss some bytes - */ - unsigned int data; - - if ((rx_data_index + 8) <= g_total_img_size) { - // 1 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - - // 2 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - - // 3 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - - // 4 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - } - } - -#endif - - // check img_done flag - if (MXC_PCIF->int_fl & MXC_F_CAMERAIF_INT_FL_IMG_DONE) { - g_is_img_rcv = 1; -#if USE_DMA - - if (g_pixelformat == PIXFORMAT_GRAYSCALE) { - int i; - rx_data_index = g_total_img_size / 2; - - for (i = 0; i < rx_data_index; i++) { - rx_data[i] = rx_data[i * 2]; - } - } else { - rx_data_index = g_total_img_size; - } - -#endif - } - - // clear flags, tmp flag is used to pass coverity check - unsigned int flags = MXC_PCIF->int_fl; - MXC_PCIF->int_fl = flags; // clear flags -} - -#if USE_DMA -static void setup_dma(void) -{ - int dma_handle = 0; - - MXC_DMA->cn = 0x01; - - MXC_DMA->ch[dma_handle].dst = (uint32_t)rx_data; // Cast Pointer - - if (PCIF_DATA_BUS_WITH == MXC_V_CAMERAIF_CTRL_DATA_WIDTH_8BIT) { - MXC_DMA->ch[dma_handle].cnt = g_total_img_size; - } else { - MXC_DMA->ch[dma_handle].cnt = - g_total_img_size * 2; // 10 and 12 bit use 2 bytes per word in the fifo - } - - MXC_DMA->ch[dma_handle].cfg = - ((0x1 << MXC_F_DMA_CFG_CTZIEN_POS) + (0x0 << MXC_F_DMA_CFG_CHDIEN_POS) + - (0x3 << MXC_F_DMA_CFG_BRST_POS) + (0x1 << MXC_F_DMA_CFG_DSTINC_POS) + - (0x2 << MXC_F_DMA_CFG_DSTWD_POS) + (0x0 << MXC_F_DMA_CFG_SRCINC_POS) + - (0x2 << MXC_F_DMA_CFG_SRCWD_POS) + (0x0 << MXC_F_DMA_CFG_PSSEL_POS) + - (0x0 << MXC_F_DMA_CFG_PSSEL_POS) + (0x0 << MXC_F_DMA_CFG_REQWAIT_POS) + - (0xD << MXC_F_DMA_CFG_REQSEL_POS) + (0x0 << MXC_F_DMA_CFG_PRI_POS) + - (0x0 << MXC_F_DMA_CFG_RLDEN_POS) + (0x1 << MXC_F_DMA_CFG_CHEN_POS)); -} -#endif - -/******************************** Public Functions ***************************/ -int camera_init(void) -{ - int ret = 0; - unsigned int bpp; // bytes per pixel - unsigned int framesize; - - // initialize XCLK for camera - MXC_PT_Init(MXC_PT_CLK_DIV1); - MXC_PT_SqrWaveConfig(1, CAMERA_FREQ); - MXC_PT_Start(MXC_F_PTG_ENABLE_PT1); - MXC_GPIO_SetVSSEL(gpio_cfg_pt1.port, MXC_GPIO_VSSEL_VDDIOH, gpio_cfg_pt1.mask); - utils_delay_ms(100); - - // initialize serial camera communication bus - sccb_init(); - // register functions - sensor_register(&camera); - - ret = camera.init(); - - if (ret == 0) { - ret |= camera.reset(); - ret |= camera.set_pixformat(g_pixelformat); - ret |= camera.set_framesize((framesize_t)g_framesize); - ret |= camera.set_contrast(0); - ret |= camera.set_hmirror(1); - ret |= camera.set_vflip(1); - - // calculate frame resolution area - framesize = resolution[g_framesize][0] * resolution[g_framesize][1]; - } - -#if USE_DMA - bpp = 2; // 2 bytes per pixel -#else - - if (g_pixelformat == PIXFORMAT_GRAYSCALE) { - bpp = 1; // 1 bytes per pixel - } else { - bpp = 2; // 2 bytes per pixel - } - -#endif - - if (ret == 0) { - g_total_img_size = framesize * bpp; - /*rx_data = (uint8_t *)malloc( ((g_total_img_size+3)/4) * 4); // - if (rx_data == NULL) { - return -1; - } - */ - - MXC_PCIF_Init(); - MXC_PCIF_SetDatawidth(MXC_PCIF_DATAWIDTH_8_BIT); - MXC_PCIF_SetTimingSel(MXC_PCIF_TIMINGSEL_HSYNC_and_VSYNC); - MXC_PCIF_SetThreshold(FIFO_THRES_HOLD); - - MXC_SETFIELD(MXC_PCIF->ctrl, MXC_F_CAMERAIF_CTRL_PCIF_SYS, MXC_F_CAMERAIF_CTRL_PCIF_SYS); - -#if USE_DMA - MXC_DMA_Init(); - - setup_dma(); - - MXC_SETFIELD(MXC_PCIF->ctrl, MXC_F_CAMERAIF_CTRL_RX_DMA_THRSH, - (0x1 << MXC_F_CAMERAIF_CTRL_RX_DMA_THRSH_POS)); - MXC_SETFIELD(MXC_PCIF->ctrl, MXC_F_CAMERAIF_CTRL_RX_DMA, MXC_F_CAMERAIF_CTRL_RX_DMA); -#endif - - MXC_PCIF_EnableInt(MXC_F_CAMERAIF_INT_EN_IMG_DONE); -#if !USE_DMA - MXC_PCIF_EnableInt(MXC_F_CAMERAIF_INT_EN_FIFO_THRESH); -#endif - - NVIC_SetVector(CameraIF_IRQn, camera_irq_handler); - } - - return ret; -} - -int camera_reset(void) -{ - return camera.reset(); -} - -int camera_get_id(void) -{ - return camera.get_id(); -} - -int camera_dump_registers(void) -{ - return camera.dump_registers(); -} - -int camera_start_campture_image(void) -{ - int ret = 0; - -#if USE_DMA - setup_dma(); -#endif - // clear flag - g_is_img_rcv = 0; - rx_data_index = 0; - MXC_PCIF_Start(MXC_PCIF_READMODE_SINGLE_MODE); - - return ret; -} - -int camera_is_image_rcv(void) -{ - return (g_is_img_rcv) ? 1 : 0; -} - -uint8_t *camera_get_pixel_format(void) -{ - if (g_pixelformat == PIXFORMAT_GRAYSCALE) { - return (uint8_t *)"GRAYSCALE"; - } else if (g_pixelformat == PIXFORMAT_RGB565) { - return (uint8_t *)"RGB565"; - } else { - return (uint8_t *)"YUV422"; - } -} - -void camera_get_image(uint8_t **img, uint32_t *imgLen, uint32_t *w, uint32_t *h) -{ - *img = (uint8_t *)rx_data; - *imgLen = rx_data_index; - - *w = resolution[g_framesize][0]; - *h = resolution[g_framesize][1]; -} diff --git a/Examples/MAX32572/Barcode_Decoder/src/gc0308.c b/Examples/MAX32572/Barcode_Decoder/src/gc0308.c deleted file mode 100644 index 59a3e5cb8b6..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/gc0308.c +++ /dev/null @@ -1,318 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "gc0308_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_GC0308) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -static int g_slv_addr; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i, k; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - const char *banks[2] = { "PAGE0", "PAGE1" }; - unsigned char banks_select[2] = { PAGE_0, PAGE_1 }; - int sz = 64; - - for (k = 0; k < 2; k++) { - printf("SECTION: %s\n", banks[k]); - cambus_writeb(PAGE_SELECT, banks_select[k]); - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - } - - return ret; -} - -static int reset(void) -{ - int ret; - - // Reset all registers - ret = cambus_writeb(PAGE_SELECT, 0x80); - utils_delay_ms(100); - - ret |= cambus_writeb(0x24, 0xA2); // YUYV - ret |= cambus_writeb(0x25, 0x0f); // enable data, pclk, hsync, vsync - ret |= cambus_writeb(0x26, 0x32); // hsync polarity : high - ret |= cambus_writeb(0x28, 0x10); // InternalClk = InputClk / ((1+1)) - - return ret; -} - -static int sleep(int enable) -{ - int ret = 0; - - return ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg; - - if (sccb_read_byt(g_slv_addr, reg_addr, ®) != 0) { - return -1; - } - - return reg; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return sccb_write_byt(g_slv_addr, reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - int ret; - uint8_t reg; - - ret = cambus_readb(REG_Output_format, ®); - - reg &= 0x1f; // clear first 5 bits - - switch (pixformat) { - case PIXFORMAT_RGB565: - reg |= 0x06; - break; - - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - reg |= 0x02; - break; - - // case PIXFORMAT_GRAYSCALE: - // reg |= 0x11; - // break; - case PIXFORMAT_BAYER: - reg |= 0x17; - break; - - default: - return -1; - } - - // Write back register - return cambus_writeb(REG_Output_format, reg) | ret; -} - -extern const int resolution[][2]; - -static int set_framesize(framesize_t framesize) -{ - int ret = 0; - uint16_t w = resolution[framesize][0]; - uint16_t h = resolution[framesize][1]; - - // Write MSBs - ret |= cambus_writeb(0x49, (h >> 8) & 0xff); - ret |= cambus_writeb(0x4A, (h >> 0) & 0xff); - - ret |= cambus_writeb(0x4b, (w >> 8) & 0xff); - ret |= cambus_writeb(0x4c, (w >> 0) & 0xff); - - if ((w <= 320) && (h <= 240)) { - // Set QVGA Resolution - - } else { - // Set VGA Resolution - } - - return ret; -} - -static int set_contrast(int level) -{ - int ret = 0; - - return ret; -} - -static int set_brightness(int level) -{ - int ret = 0; - - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - int ret = 0; - - return ret; -} - -static int set_colorbar(int enable) -{ - int ret = 0; - - return ret; -} - -static int set_hmirror(int enable) -{ - int ret; - uint8_t reg; - - ret = cambus_writeb(PAGE_SELECT, PAGE_0); - ret |= cambus_readb(0x14, ®); - - if (enable) { - reg &= 0xfe; - } else { - reg |= 0x01; - } - - ret |= cambus_writeb(0x14, reg); - - return ret; -} - -static int set_vflip(int enable) -{ - int ret; - uint8_t reg; - - ret = cambus_writeb(PAGE_SELECT, PAGE_0); - ret |= cambus_readb(0x14, ®); - - if (enable) { - reg &= 0xfd; - } else { - reg |= 0x02; - } - - ret |= cambus_writeb(0x14, reg); - - return ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_GC0308) diff --git a/Examples/MAX32572/Barcode_Decoder/src/ov2640.c b/Examples/MAX32572/Barcode_Decoder/src/ov2640.c deleted file mode 100644 index 97efe469d59..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/ov2640.c +++ /dev/null @@ -1,735 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV2640 driver. - */ -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "ov2640_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_OV2640) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -#define IM_LOG2_2(x) (((x)&0x2ULL) ? (2) : 1) // NO ({ ... }) ! -#define IM_LOG2_4(x) (((x)&0xCULL) ? (2 + IM_LOG2_2((x) >> 2)) : IM_LOG2_2(x)) // NO ({ ... }) ! -#define IM_LOG2_8(x) (((x)&0xF0ULL) ? (4 + IM_LOG2_4((x) >> 4)) : IM_LOG2_4(x)) // NO ({ ... }) ! -#define IM_LOG2_16(x) (((x)&0xFF00ULL) ? (8 + IM_LOG2_8((x) >> 8)) : IM_LOG2_8(x)) // NO ({ ... }) ! -#define IM_LOG2_32(x) \ - (((x)&0xFFFF0000ULL) ? (16 + IM_LOG2_16((x) >> 16)) : IM_LOG2_16(x)) // NO ({ ... }) ! -#define IM_LOG2(x) \ - (((x)&0xFFFFFFFF00000000ULL) ? (32 + IM_LOG2_32((x) >> 32)) : IM_LOG2_32(x)) // NO ({ ... }) ! - -#define IM_MAX(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _a > _b ? _a : _b; \ - }) -#define IM_MIN(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _a < _b ? _a : _b; \ - }) -#define IM_DIV(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _b ? (_a / _b) : 0; \ - }) -#define IM_MOD(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _b ? (_a % _b) : 0; \ - }) - -#define CIF_WIDTH (400) -#define CIF_HEIGHT (296) - -#define SVGA_WIDTH (800) -#define SVGA_HEIGHT (600) - -#define UXGA_WIDTH (1600) -#define UXGA_HEIGHT (1200) - -static int g_slv_addr; - -static const uint8_t default_regs[][2] = { - // From Linux Driver. - - { BANK_SEL, BANK_SEL_DSP }, - { 0x2c, 0xff }, - { 0x2e, 0xdf }, - { BANK_SEL, BANK_SEL_SENSOR }, - { 0x3c, 0x32 }, - { CLKRC, CLKRC_DOUBLE }, - { COM2, COM2_OUT_DRIVE_3x }, - { REG04, REG04_SET(REG04_HFLIP_IMG | REG04_VFLIP_IMG | REG04_VREF_EN | REG04_HREF_EN) }, - { COM8, COM8_SET(COM8_BNDF_EN | COM8_AGC_EN | COM8_AEC_EN) }, - { COM9, COM9_AGC_SET(COM9_AGC_GAIN_8x) }, - { 0x2c, 0x0c }, - { 0x33, 0x78 }, - { 0x3a, 0x33 }, - { 0x3b, 0xfb }, - { 0x3e, 0x00 }, - { 0x43, 0x11 }, - { 0x16, 0x10 }, - { 0x39, 0x02 }, - { 0x35, 0x88 }, - { 0x22, 0x0a }, - { 0x37, 0x40 }, - { 0x23, 0x00 }, - { ARCOM2, 0xa0 }, - { 0x06, 0x02 }, - { 0x06, 0x88 }, - { 0x07, 0xc0 }, - { 0x0d, 0xb7 }, - { 0x0e, 0x01 }, - { 0x4c, 0x00 }, - { 0x4a, 0x81 }, - { 0x21, 0x99 }, - { AEW, 0x40 }, - { AEB, 0x38 }, - { VV, VV_AGC_TH_SET(0x08, 0x02) }, - { 0x5c, 0x00 }, - { 0x63, 0x00 }, - { FLL, 0x22 }, - { COM3, COM3_BAND_SET(COM3_BAND_AUTO) }, - { REG5D, 0x55 }, - { REG5E, 0x7d }, - { REG5F, 0x7d }, - { REG60, 0x55 }, - { HISTO_LOW, 0x70 }, - { HISTO_HIGH, 0x80 }, - { 0x7c, 0x05 }, - { 0x20, 0x80 }, - { 0x28, 0x30 }, - { 0x6c, 0x00 }, - { 0x6d, 0x80 }, - { 0x6e, 0x00 }, - { 0x70, 0x02 }, - { 0x71, 0x94 }, - { 0x73, 0xc1 }, - { 0x3d, 0x34 }, - { COM7, COM7_RES_UXGA | COM7_ZOOM_EN }, - { 0x5a, 0x57 }, - { COM25, 0x00 }, - { BD50, 0xbb }, - { BD60, 0x9c }, - { BANK_SEL, BANK_SEL_DSP }, - { 0xe5, 0x7f }, - { MC_BIST, MC_BIST_RESET | MC_BIST_BOOT_ROM_SEL }, - { 0x41, 0x24 }, - { RESET, RESET_JPEG | RESET_DVP }, - { 0x76, 0xff }, - { 0x33, 0xa0 }, - { 0x42, 0x20 }, - { 0x43, 0x18 }, - { 0x4c, 0x00 }, - { CTRL3, CTRL3_BPC_EN | CTRL3_WPC_EN | 0x10 }, - { 0x88, 0x3f }, - { 0xd7, 0x03 }, - { 0xd9, 0x10 }, - { R_DVP_SP, R_DVP_SP_AUTO_MODE | 0x2 }, - { 0xc8, 0x08 }, - { 0xc9, 0x80 }, - { BPADDR, 0x00 }, - { BPDATA, 0x00 }, - { BPADDR, 0x03 }, - { BPDATA, 0x48 }, - { BPDATA, 0x48 }, - { BPADDR, 0x08 }, - { BPDATA, 0x20 }, - { BPDATA, 0x10 }, - { BPDATA, 0x0e }, - { 0x90, 0x00 }, - { 0x91, 0x0e }, - { 0x91, 0x1a }, - { 0x91, 0x31 }, - { 0x91, 0x5a }, - { 0x91, 0x69 }, - { 0x91, 0x75 }, - { 0x91, 0x7e }, - { 0x91, 0x88 }, - { 0x91, 0x8f }, - { 0x91, 0x96 }, - { 0x91, 0xa3 }, - { 0x91, 0xaf }, - { 0x91, 0xc4 }, - { 0x91, 0xd7 }, - { 0x91, 0xe8 }, - { 0x91, 0x20 }, - { 0x92, 0x00 }, - { 0x93, 0x06 }, - { 0x93, 0xe3 }, - { 0x93, 0x03 }, - { 0x93, 0x03 }, - { 0x93, 0x00 }, - { 0x93, 0x02 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x96, 0x00 }, - { 0x97, 0x08 }, - { 0x97, 0x19 }, - { 0x97, 0x02 }, - { 0x97, 0x0c }, - { 0x97, 0x24 }, - { 0x97, 0x30 }, - { 0x97, 0x28 }, - { 0x97, 0x26 }, - { 0x97, 0x02 }, - { 0x97, 0x98 }, - { 0x97, 0x80 }, - { 0x97, 0x00 }, - { 0x97, 0x00 }, - { 0xa4, 0x00 }, - { 0xa8, 0x00 }, - { 0xc5, 0x11 }, - { 0xc6, 0x51 }, - { 0xbf, 0x80 }, - { 0xc7, 0x10 }, /* simple AWB */ - { 0xb6, 0x66 }, - { 0xb8, 0xA5 }, - { 0xb7, 0x64 }, - { 0xb9, 0x7C }, - { 0xb3, 0xaf }, - { 0xb4, 0x97 }, - { 0xb5, 0xFF }, - { 0xb0, 0xC5 }, - { 0xb1, 0x94 }, - { 0xb2, 0x0f }, - { 0xc4, 0x5c }, - { 0xa6, 0x00 }, - { 0xa7, 0x20 }, - { 0xa7, 0xd8 }, - { 0xa7, 0x1b }, - { 0xa7, 0x31 }, - { 0xa7, 0x00 }, - { 0xa7, 0x18 }, - { 0xa7, 0x20 }, - { 0xa7, 0xd8 }, - { 0xa7, 0x19 }, - { 0xa7, 0x31 }, - { 0xa7, 0x00 }, - { 0xa7, 0x18 }, - { 0xa7, 0x20 }, - { 0xa7, 0xd8 }, - { 0xa7, 0x19 }, - { 0xa7, 0x31 }, - { 0xa7, 0x00 }, - { 0xa7, 0x18 }, - { 0x7f, 0x00 }, - { 0xe5, 0x1f }, - { 0xe1, 0x77 }, - { 0xdd, 0x7f }, - { CTRL0, CTRL0_YUV422 | CTRL0_YUV_EN | CTRL0_RGB_EN }, - - // OpenMV Custom. - - { BANK_SEL, BANK_SEL_SENSOR }, - { 0x0f, 0x4b }, - { COM1, 0x8f }, - - // End. - - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t cif_regs[][2] = { - { BANK_SEL, BANK_SEL_SENSOR }, - { COM7, COM7_RES_CIF }, - { COM1, 0x06 | 0x80 }, - { HSTART, 0x11 }, - { HSTOP, 0x43 }, - { VSTART, 0x01 }, // 0x01 fixes issue with garbage pixels in the image... - { VSTOP, 0x97 }, - { REG32, 0x09 }, - { BANK_SEL, BANK_SEL_DSP }, - { RESET, RESET_DVP }, - { SIZEL, - SIZEL_HSIZE8_11_SET(CIF_WIDTH) | SIZEL_HSIZE8_SET(CIF_WIDTH) | SIZEL_VSIZE8_SET(CIF_HEIGHT) }, - { HSIZE8, HSIZE8_SET(CIF_WIDTH) }, - { VSIZE8, VSIZE8_SET(CIF_HEIGHT) }, - { CTRL2, CTRL2_DCW_EN | CTRL2_SDE_EN | CTRL2_UV_AVG_EN | CTRL2_CMX_EN | CTRL2_UV_ADJ_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t svga_regs[][2] = { - { BANK_SEL, BANK_SEL_SENSOR }, - { COM7, COM7_RES_SVGA }, - { COM1, 0x0A | 0x80 }, - { HSTART, 0x11 }, - { HSTOP, 0x43 }, - { VSTART, 0x01 }, // 0x01 fixes issue with garbage pixels in the image... - { VSTOP, 0x97 }, - { REG32, 0x09 }, - { BANK_SEL, BANK_SEL_DSP }, - { RESET, RESET_DVP }, - { SIZEL, SIZEL_HSIZE8_11_SET(SVGA_WIDTH) | SIZEL_HSIZE8_SET(SVGA_WIDTH) | - SIZEL_VSIZE8_SET(SVGA_HEIGHT) }, - { HSIZE8, HSIZE8_SET(SVGA_WIDTH) }, - { VSIZE8, VSIZE8_SET(SVGA_HEIGHT) }, - { CTRL2, CTRL2_DCW_EN | CTRL2_SDE_EN | CTRL2_UV_AVG_EN | CTRL2_CMX_EN | CTRL2_UV_ADJ_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t uxga_regs[][2] = { - { BANK_SEL, BANK_SEL_SENSOR }, - { COM7, COM7_RES_UXGA }, - { COM1, 0x0F | 0x80 }, - { HSTART, 0x11 }, - { HSTOP, 0x75 }, - { VSTART, 0x01 }, - { VSTOP, 0x97 }, - { REG32, 0x36 }, - { BANK_SEL, BANK_SEL_DSP }, - { RESET, RESET_DVP }, - { SIZEL, SIZEL_HSIZE8_11_SET(UXGA_WIDTH) | SIZEL_HSIZE8_SET(UXGA_WIDTH) | - SIZEL_VSIZE8_SET(UXGA_HEIGHT) }, - { HSIZE8, HSIZE8_SET(UXGA_WIDTH) }, - { VSIZE8, VSIZE8_SET(UXGA_HEIGHT) }, - { CTRL2, CTRL2_DCW_EN | CTRL2_SDE_EN | CTRL2_UV_AVG_EN | CTRL2_CMX_EN | CTRL2_UV_ADJ_EN }, - { 0, 0 }, -}; - -static const uint8_t yuv422_regs[][2] = { - { BANK_SEL, BANK_SEL_DSP }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { IMAGE_MODE, IMAGE_MODE_YUV422 }, - { 0xd7, 0x03 }, - { 0x33, 0xa0 }, - { 0xe5, 0x1f }, - { 0xe1, 0x67 }, - { RESET, 0x00 }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t rgb565_regs[][2] = { - { BANK_SEL, BANK_SEL_DSP }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { IMAGE_MODE, IMAGE_MODE_RGB565 }, - { 0xd7, 0x03 }, - { RESET, 0x00 }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t bayer_regs[][2] = { - { BANK_SEL, BANK_SEL_DSP }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { IMAGE_MODE, IMAGE_MODE_RAW10 }, - { 0xd7, 0x03 }, - { RESET, 0x00 }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -#define NUM_BRIGHTNESS_LEVELS (5) -static const uint8_t brightness_regs[NUM_BRIGHTNESS_LEVELS + 1][5] = { - { BPADDR, BPDATA, BPADDR, BPDATA, BPDATA }, { 0x00, 0x04, 0x09, 0x00, 0x00 }, /* -2 */ - { 0x00, 0x04, 0x09, 0x10, 0x00 }, /* -1 */ - { 0x00, 0x04, 0x09, 0x20, 0x00 }, /* 0 */ - { 0x00, 0x04, 0x09, 0x30, 0x00 }, /* +1 */ - { 0x00, 0x04, 0x09, 0x40, 0x00 }, /* +2 */ -}; - -#define NUM_CONTRAST_LEVELS (5) -static const uint8_t contrast_regs[NUM_CONTRAST_LEVELS + 1][7] = { - { BPADDR, BPDATA, BPADDR, BPDATA, BPDATA, BPDATA, BPDATA }, - { 0x00, 0x04, 0x07, 0x20, 0x18, 0x34, 0x06 }, /* -2 */ - { 0x00, 0x04, 0x07, 0x20, 0x1c, 0x2a, 0x06 }, /* -1 */ - { 0x00, 0x04, 0x07, 0x20, 0x20, 0x20, 0x06 }, /* 0 */ - { 0x00, 0x04, 0x07, 0x20, 0x24, 0x16, 0x06 }, /* +1 */ - { 0x00, 0x04, 0x07, 0x20, 0x28, 0x0c, 0x06 }, /* +2 */ -}; - -#define NUM_SATURATION_LEVELS (5) -static const uint8_t saturation_regs[NUM_SATURATION_LEVELS + 1][5] = { - { BPADDR, BPDATA, BPADDR, BPDATA, BPDATA }, { 0x00, 0x02, 0x03, 0x28, 0x28 }, /* -2 */ - { 0x00, 0x02, 0x03, 0x38, 0x38 }, /* -1 */ - { 0x00, 0x02, 0x03, 0x48, 0x48 }, /* 0 */ - { 0x00, 0x02, 0x03, 0x58, 0x58 }, /* +1 */ - { 0x00, 0x02, 0x03, 0x68, 0x68 }, /* +2 */ -}; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i, k; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - const char *banks[2] = { "DSP", "SENSOR" }; - unsigned char banks_select[2] = { BANK_SEL_DSP, BANK_SEL_SENSOR }; - unsigned int sz = 64; - - for (k = 0; k < 2; k++) { - printf("SECTION: %s\n", banks[k]); - cambus_writeb(BANK_SEL, banks_select[k]); - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - } - - return ret; -} - -static int reset(void) -{ - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_writeb(COM7, COM7_SRST); - - utils_delay_ms(10); - - // Write default registers - for (int i = 0; default_regs[i][0]; i++) { - ret |= cambus_writeb(default_regs[i][0], default_regs[i][1]); - } - - ret |= cambus_writeb(CLKRC, 8); //InternalClk = InputClk / (2*(2+1)) - - return ret; -} - -static int sleep(int enable) -{ - int ret = 0; - - return ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg = 0; - - if (cambus_readb(reg_addr, ®) != 0) { - return -1; - } - - return reg; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return cambus_writeb(reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - int ret = 0; - const uint8_t(*regs)[2]; - - switch (pixformat) { - case PIXFORMAT_RGB565: - regs = rgb565_regs; - break; - - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - regs = yuv422_regs; - break; - - case PIXFORMAT_BAYER: - regs = bayer_regs; - break; - - default: - return -1; - } - - // Write registers - for (int i = 0; regs[i][0]; i++) { - ret |= cambus_writeb(regs[i][0], regs[i][1]); - } - - utils_delay_ms(50); - - return ret; -} - -extern const int resolution[][2]; - -static int set_framesize(framesize_t framesize) -{ - const uint8_t(*regs)[2]; - uint16_t sensor_w = 0; - uint16_t sensor_h = 0; - int ret = 0; - uint16_t w = resolution[framesize][0]; - uint16_t h = resolution[framesize][1]; - - if ((w % 4) || (h % 4)) { // w/h must be divisble by 4 - return 1; - } - - // Looks really bad. - if ((w <= CIF_WIDTH) && (h <= CIF_HEIGHT)) { - regs = cif_regs; - sensor_w = CIF_WIDTH; - sensor_h = CIF_HEIGHT; - } else if ((w <= SVGA_WIDTH) && (h <= SVGA_HEIGHT)) { - regs = svga_regs; - sensor_w = SVGA_WIDTH; - sensor_h = SVGA_HEIGHT; - } else { - regs = uxga_regs; - sensor_w = UXGA_WIDTH; - sensor_h = UXGA_HEIGHT; - } - - // Write setup regsiters - for (int i = 0; regs[i][0]; i++) { - ret |= cambus_writeb(regs[i][0], regs[i][1]); - } - - uint64_t tmp_div = IM_MIN(sensor_w / w, sensor_h / h); - uint16_t log_div = IM_MIN(IM_LOG2(tmp_div) - 1, 3); - uint16_t div = 1 << log_div; - uint16_t w_mul = w * div; - uint16_t h_mul = h * div; - uint16_t x_off = (sensor_w - w_mul) / 2; - uint16_t y_off = (sensor_h - h_mul) / 2; - - ret |= cambus_writeb(CTRLI, CTRLI_LP_DP | CTRLI_V_DIV_SET(log_div) | CTRLI_H_DIV_SET(log_div)); - ret |= cambus_writeb(HSIZE, HSIZE_SET(w_mul)); - ret |= cambus_writeb(VSIZE, VSIZE_SET(h_mul)); - ret |= cambus_writeb(XOFFL, XOFFL_SET(x_off)); - ret |= cambus_writeb(YOFFL, YOFFL_SET(y_off)); - ret |= cambus_writeb(VHYX, VHYX_HSIZE_SET(w_mul) | VHYX_VSIZE_SET(h_mul) | - VHYX_XOFF_SET(x_off) | VHYX_YOFF_SET(y_off)); - ret |= cambus_writeb(TEST, TEST_HSIZE_SET(w_mul)); - ret |= cambus_writeb(ZMOW, ZMOW_OUTW_SET(w)); - ret |= cambus_writeb(ZMOH, ZMOH_OUTH_SET(h)); - ret |= cambus_writeb(ZMHH, ZMHH_OUTW_SET(w) | ZMHH_OUTH_SET(h)); - ret |= cambus_writeb(R_DVP_SP, div); - ret |= cambus_writeb(RESET, 0x00); - - // Delay 50 ms - utils_delay_ms(50); - - return ret; -} - -static int set_contrast(int level) -{ - int ret = 0; - - level += (NUM_CONTRAST_LEVELS / 2) + 1; - - if (level < 0 || level > NUM_CONTRAST_LEVELS) { - return -1; - } - - /* Switch to DSP register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_DSP); - - /* Write contrast registers */ - for (int i = 0; i < sizeof(contrast_regs[0]) / sizeof(contrast_regs[0][0]); i++) { - ret |= cambus_writeb(contrast_regs[0][i], contrast_regs[level][i]); - } - - return ret; -} - -static int set_brightness(int level) -{ - int ret = 0; - - level += (NUM_BRIGHTNESS_LEVELS / 2) + 1; - - if (level < 0 || level > NUM_BRIGHTNESS_LEVELS) { - return -1; - } - - /* Switch to DSP register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_DSP); - - /* Write brightness registers */ - for (int i = 0; i < sizeof(brightness_regs[0]) / sizeof(brightness_regs[0][0]); i++) { - ret |= cambus_writeb(brightness_regs[0][i], brightness_regs[level][i]); - } - - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - - level += (NUM_SATURATION_LEVELS / 2) + 1; - - if (level < 0 || level > NUM_SATURATION_LEVELS) { - return -1; - } - - /* Switch to DSP register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_DSP); - - /* Write saturation registers */ - for (int i = 0; i < sizeof(saturation_regs[0]) / sizeof(saturation_regs[0][0]); i++) { - ret |= cambus_writeb(saturation_regs[0][i], saturation_regs[level][i]); - } - - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - int ret = 0; - - /* Switch to SENSOR register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - - /* Write gain ceiling register */ - ret |= cambus_writeb(COM9, COM9_AGC_SET(gainceiling)); - - return ret; -} - -static int set_colorbar(int enable) -{ - uint8_t reg = 0; - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_readb(COM7, ®); - - if (enable) { - reg |= COM7_COLOR_BAR; - } else { - reg &= ~COM7_COLOR_BAR; - } - - return cambus_writeb(COM7, reg) | ret; -} - -static int set_hmirror(int enable) -{ - uint8_t reg = 0; - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_readb(REG04, ®); - - if (!enable) { // Already mirrored. - reg |= REG04_HFLIP_IMG; - } else { - reg &= ~REG04_HFLIP_IMG; - } - - return cambus_writeb(REG04, reg) | ret; -} - -static int set_vflip(int enable) -{ - uint8_t reg = 0; - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_readb(REG04, ®); - - if (!enable) { // Already flipped. - reg |= REG04_VFLIP_IMG | REG04_VREF_EN; - } else { - reg &= ~(REG04_VFLIP_IMG | REG04_VREF_EN); - } - - return cambus_writeb(REG04, reg) | ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_OV2640) diff --git a/Examples/MAX32572/Barcode_Decoder/src/ov7670.c b/Examples/MAX32572/Barcode_Decoder/src/ov7670.c deleted file mode 100644 index a626eddb8be..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/ov7670.c +++ /dev/null @@ -1,703 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "ov7670_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_OV7670) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -static int g_slv_addr; - -static const uint8_t default_regs[][2] = { - /* - * Clock scale: 3 = 15fps - * 2 = 20fps - * 1 = 30fps - */ - { REG_CLKRC, 0x2 }, /* OV: clock scale (30 fps) */ - { REG_TSLB, 0x04 }, /* OV */ - { REG_COM7, 0 }, /* VGA */ - /* - * Set the hardware window. These values from OV don't entirely - * make sense - hstop is less than hstart. But they work... - */ - { REG_HSTART, 0x13 }, - { REG_HSTOP, 0x01 }, - { REG_HREF, 0xb6 }, - { REG_VSTRT, 0x02 }, - { REG_VSTOP, 0x7a }, - { REG_VREF, 0x0a }, - - { REG_COM3, 0 }, - { REG_COM14, 0 }, - /* Mystery scaling numbers */ - { REG_SCALING_XSC, 0x3a }, - { REG_SCALING_YSC, 0x35 }, - { 0x72, 0x11 }, - { 0x73, 0xf0 }, - { 0xa2, 0x02 }, - { REG_COM10, 0x20 }, //REG_COM10 PCLK does not toggle on HBLANK. - - /* Gamma curve values */ - { 0x7a, 0x20 }, - { 0x7b, 0x10 }, - { 0x7c, 0x1e }, - { 0x7d, 0x35 }, - { 0x7e, 0x5a }, - { 0x7f, 0x69 }, - { 0x80, 0x76 }, - { 0x81, 0x80 }, - { 0x82, 0x88 }, - { 0x83, 0x8f }, - { 0x84, 0x96 }, - { 0x85, 0xa3 }, - { 0x86, 0xaf }, - { 0x87, 0xc4 }, - { 0x88, 0xd7 }, - { 0x89, 0xe8 }, - - /* AGC and AEC parameters. Note we start by disabling those features, - then turn them only after tweaking the values. */ - { REG_COM8, COM8_FASTAEC | COM8_AECSTEP | COM8_BFILT }, - { REG_GAIN, 0 }, - { REG_AECH, 0 }, - { REG_COM4, 0x40 }, /* magic reserved bit */ - { REG_COM9, 0x18 }, /* 4x gain + magic rsvd bit */ - { REG_BD50MAX, 0x05 }, - { REG_BD60MAX, 0x07 }, - { REG_AEW, 0x95 }, - { REG_AEB, 0x33 }, - { REG_VPT, 0xe3 }, - { REG_HAECC1, 0x78 }, - { REG_HAECC2, 0x68 }, - { 0xa1, 0x03 }, /* magic */ - { REG_HAECC3, 0xd8 }, - { REG_HAECC4, 0xd8 }, - { REG_HAECC5, 0xf0 }, - { REG_HAECC6, 0x90 }, - { REG_HAECC7, 0x94 }, - { REG_COM8, COM8_FASTAEC | COM8_AECSTEP | COM8_BFILT | COM8_AGC | COM8_AEC }, - - /* Almost all of these are magic "reserved" values. */ - { REG_COM5, 0x61 }, - { REG_COM6, 0x4b }, - { 0x16, 0x02 }, - { REG_MVFP, 0x07 }, - { 0x21, 0x02 }, - { 0x22, 0x91 }, - { 0x29, 0x07 }, - { 0x33, 0x0b }, - { 0x35, 0x0b }, - { 0x37, 0x1d }, - { 0x38, 0x71 }, - { 0x39, 0x2a }, - { REG_COM12, 0x68 }, - { 0x4d, 0x40 }, // REG_COM12 No HREF when VSYNC is low - { 0x4e, 0x20 }, - { REG_GFIX, 0 }, - { 0x6b, 0x4a }, - { 0x74, 0x10 }, - { 0x8d, 0x4f }, - { 0x8e, 0 }, - { 0x8f, 0 }, - { 0x90, 0 }, - { 0x91, 0 }, - { 0x96, 0 }, - { 0x9a, 0 }, - { 0xb0, 0x84 }, - { 0xb1, 0x0c }, - { 0xb2, 0x0e }, - { 0xb3, 0x82 }, - { 0xb8, 0x0a }, - - /* More reserved magic, some of which tweaks white balance */ - { 0x43, 0x0a }, - { 0x44, 0xf0 }, - { 0x45, 0x34 }, - { 0x46, 0x58 }, - { 0x47, 0x28 }, - { 0x48, 0x3a }, - { 0x59, 0x88 }, - { 0x5a, 0x88 }, - { 0x5b, 0x44 }, - { 0x5c, 0x67 }, - { 0x5d, 0x49 }, - { 0x5e, 0x0e }, - { 0x6c, 0x0a }, - { 0x6d, 0x55 }, - { 0x6e, 0x11 }, - { 0x6f, 0x9f }, /* "9e for advance AWB" */ - { 0x6a, 0x40 }, - { REG_BLUE, 0x40 }, - { REG_RED, 0x60 }, - { REG_COM8, COM8_FASTAEC | COM8_AECSTEP | COM8_BFILT | COM8_AGC | COM8_AEC | COM8_AWB }, - - /* Matrix coefficients */ - { 0x4f, 0x80 }, - { 0x50, 0x80 }, - { 0x51, 0 }, - { 0x52, 0x22 }, - { 0x53, 0x5e }, - { 0x54, 0x80 }, - { 0x58, 0x9e }, - - { REG_COM16, COM16_AWBGAIN }, - { REG_EDGE, 0 }, - { 0x75, 0x05 }, - { 0x76, 0xe1 }, - { 0x4c, 0 }, - { 0x77, 0x01 }, - { REG_COM13, 0xc3 }, - { 0x4b, 0x09 }, - { 0xc9, 0x60 }, - { REG_COM16, 0x38 }, - { 0x56, 0x40 }, - - { 0x34, 0x11 }, - { REG_COM11, COM11_EXP | COM11_HZAUTO }, - { 0xa4, 0x88 }, - { 0x96, 0 }, - { 0x97, 0x30 }, - { 0x98, 0x20 }, - { 0x99, 0x30 }, - { 0x9a, 0x84 }, - { 0x9b, 0x29 }, - { 0x9c, 0x03 }, - { 0x9d, 0x4c }, - { 0x9e, 0x3f }, - { 0x78, 0x04 }, - - /* Extra-weird stuff. Some sort of multiplexor register */ - { 0x79, 0x01 }, - { 0xc8, 0xf0 }, - { 0x79, 0x0f }, - { 0xc8, 0x00 }, - { 0x79, 0x10 }, - { 0xc8, 0x7e }, - { 0x79, 0x0a }, - { 0xc8, 0x80 }, - { 0x79, 0x0b }, - { 0xc8, 0x01 }, - { 0x79, 0x0c }, - { 0xc8, 0x0f }, - { 0x79, 0x0d }, - { 0xc8, 0x20 }, - { 0x79, 0x09 }, - { 0xc8, 0x80 }, - { 0x79, 0x02 }, - { 0xc8, 0xc0 }, - { 0x79, 0x03 }, - { 0xc8, 0x40 }, - { 0x79, 0x05 }, - { 0xc8, 0x30 }, - { 0x79, 0x26 }, - - { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t vga_ov7670[][2] = { - { REG_HREF, 0xF6 }, // was B6 - { REG_HSTART, 0x13 }, // HSTART - { REG_HSTOP, 0x01 }, // HSTOP - { REG_VSTRT, 0x02 }, // VSTART - { REG_VSTOP, 0x7a }, // VSTOP - { REG_VREF, 0x0a }, // VREF - { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t qvga_ov7670[][2] = { - { REG_COM14, 0x19 }, // divide by 2 - { 0x72, 0x11 }, // downsample by 2 - { 0x73, 0xf1 }, // divide by 2 - { REG_HSTART, 0x16 }, { REG_HSTOP, 0x04 }, { REG_HREF, 0x24 }, { REG_VSTRT, 0x02 }, - { REG_VSTOP, 0x7a }, { REG_VREF, 0x0a }, { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t qqvga_ov7670[][2] = { - { REG_COM14, 0x1a }, // divide by 4 - { 0x72, 0x22 }, // downsample by 4 - { 0x73, 0xf2 }, // divide by 4 - { REG_HSTART, 0x16 }, { REG_HSTOP, 0x04 }, { REG_HREF, 0xa4 }, { REG_VSTRT, 0x02 }, - { REG_VSTOP, 0x7a }, { REG_VREF, 0x0a }, { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t yuv422_ov7670[][2] = { - { REG_COM7, 0 }, /* Selects YUV mode */ - { REG_RGB444, 0 }, /* No RGB444 please */ - { REG_COM1, 0 }, /* CCIR601 */ - { REG_COM15, COM15_R00FF }, - { REG_COM9, 0x48 }, /* 32x gain ceiling; 0x8 is reserved bit */ - { 0x4f, 0x80 }, /* "matrix coefficient 1" */ - { 0x50, 0x80 }, /* "matrix coefficient 2" */ - { 0x51, 0 }, /* vb */ - { 0x52, 0x22 }, /* "matrix coefficient 4" */ - { 0x53, 0x5e }, /* "matrix coefficient 5" */ - { 0x54, 0x80 }, /* "matrix coefficient 6" */ - { REG_COM13, COM13_GAMMA | COM13_UVSAT }, - { 0xff, 0xff }, -}; - -static const uint8_t rgb565_ov7670[][2] = { - { REG_COM7, COM7_RGB }, /* Selects RGB mode */ - { REG_RGB444, 0 }, /* No RGB444 please */ - { REG_COM1, 0x0 }, - { REG_COM15, COM15_RGB565 | COM15_R00FF }, - { REG_COM9, 0x6A }, /* 128x gain ceiling; 0x8 is reserved bit */ - { 0x4f, 0xb3 }, /* "matrix coefficient 1" */ - { 0x50, 0xb3 }, /* "matrix coefficient 2" */ - { 0x51, 0 }, /* vb */ - { 0x52, 0x3d }, /* "matrix coefficient 4" */ - { 0x53, 0xa7 }, /* "matrix coefficient 5" */ - { 0x54, 0xe4 }, /* "matrix coefficient 6" */ - { REG_COM13, /*COM13_GAMMA|*/ COM13_UVSAT }, - { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t bayerRGB_ov7670[][2] = { - { REG_COM7, COM7_BAYER }, { REG_COM13, 0x08 }, /* No gamma, magic rsvd bit */ - { REG_COM16, 0x3d }, /* Edge enhancement, denoise */ - { REG_REG76, 0xe1 }, /* Pix correction, magic rsvd */ - { 0xff, 0xff }, /* END MARKER */ -}; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - unsigned int sz = 64; - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - - return ret; -} - -static int reset(void) -{ - int ret = 0; - - ret |= cambus_writeb(REG_COM7, COM7_RESET); - utils_delay_ms(250); - - // Write default registers - for (int i = 0; default_regs[i][0] != 0xff; i++) { - ret |= cambus_writeb(default_regs[i][0], default_regs[i][1]); - } - - ret |= cambus_writeb(REG_CLKRC, 2); //InternalClk = InputClk / (2*(2+1)) - - return ret; -} - -static int sleep(int enable) -{ - int ret = 0; - uint8_t reg; - - ret = cambus_readb(REG_COM2, ®); - - if (ret == 0) { - if (enable) { - reg |= COM2_SOFT_SLEEP_MODE; - } else { - reg &= ~COM2_SOFT_SLEEP_MODE; - } - - // Write back register - ret |= cambus_writeb(REG_COM2, reg); - } - - return ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg; - - if (cambus_readb(reg_addr, ®) != 0) { - return -1; - } - - return reg; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return cambus_writeb(reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - int ret = 0; - int i; - uint8_t reg; - - switch (pixformat) { - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - for (i = 0; yuv422_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(yuv422_ov7670[i][0], yuv422_ov7670[i][1]); - } - - break; - - case PIXFORMAT_RGB565: - for (i = 0; rgb565_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(rgb565_ov7670[i][0], rgb565_ov7670[i][1]); - } - - reg = read_reg(REG_CLKRC); - utils_delay_ms(1); - ret |= cambus_writeb( - REG_CLKRC, reg); //according to the Linux kernel driver rgb565 PCLK needs rewriting - break; - - case PIXFORMAT_BAYER: - for (i = 0; bayerRGB_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(bayerRGB_ov7670[i][0], bayerRGB_ov7670[i][1]); - } - - break; - - default: - ret = -1; - break; - } - - return ret; -} - -static int set_framesize(framesize_t format) -{ - int ret = 0; - int i; - - switch (format) { - case FRAMESIZE_VGA: - cambus_writeb(REG_COM3, 0); - - for (i = 0; vga_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(vga_ov7670[i][0], vga_ov7670[i][1]); - } - - break; - - case FRAMESIZE_QVGA: - cambus_writeb(REG_COM3, 4); // enable scaling - - for (i = 0; qvga_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(qvga_ov7670[i][0], qvga_ov7670[i][1]); - } - - break; - - case FRAMESIZE_QQVGA: - cambus_writeb(REG_COM3, 4); // enable scaling - - for (i = 0; qqvga_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(qqvga_ov7670[i][0], qqvga_ov7670[i][1]); - } - - break; - - default: - ret = -1; - break; - } - - return ret; -} - -static int set_contrast(int level) -{ - int ret = 0; - - switch (level) { - case -4: - level = 0; - break; - - case -3: - level = 30; - break; - - case -2: - level = 60; - break; - - case -1: - level = 90; - break; - - case 0: - level = 120; - break; - - case 1: - level = 150; - break; - - case 2: - level = 180; - break; - - case 3: - level = 210; - break; - - case 4: - level = 255; - break; - - default: - return -1; - } - - ret = cambus_writeb(REG_CONTRAS, level); - - return ret; -} - -static int set_brightness(int level) -{ - int ret; - unsigned char reg = 0; - - switch (level) { - case -4: - level = 0; - break; - - case -3: - level = 30; - break; - - case -2: - level = 60; - break; - - case -1: - level = 90; - break; - - case 0: - level = 120; - break; - - case 1: - level = 150; - break; - - case 2: - level = 180; - break; - - case 3: - level = 210; - break; - - case 4: - level = 255; - break; - - default: - return -1; - } - - // update REG_COM8 - ret = cambus_readb(REG_COM8, ®); - reg &= ~COM8_AEC; - ret = cambus_writeb(REG_COM8, reg); - - // update REG_BRIGHT - level &= 0xFF; - reg = (level > 127) ? (level & 0x7f) : ((128 - level) | 0x80); - ret = cambus_writeb(REG_BRIGHT, reg); - - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - (void)level; - - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - int ret = 0; - uint8_t reg = 0; - - ret = cambus_readb(REG_COM9, ®); - - // Set gain ceiling - reg = COM9_SET_AGC(reg, gainceiling); - ret |= cambus_writeb(REG_COM9, reg); - - return ret; -} - -static int set_colorbar(int enable) -{ - int ret = 0; - (void)enable; - - return ret; -} - -static int set_hmirror(int enable) -{ - unsigned char reg = 0; - int ret; - - ret = cambus_readb(REG_MVFP, ®); - - if (enable) { - reg |= MVFP_MIRROR; - } else { - reg &= ~MVFP_MIRROR; - } - - ret |= cambus_writeb(REG_MVFP, reg); - - return ret; -} - -static int set_vflip(int enable) -{ - unsigned char reg = 0; - int ret; - - ret = cambus_readb(REG_MVFP, ®); - - if (enable) { - reg |= MVFP_FLIP; - } else { - reg &= ~MVFP_FLIP; - } - - ret |= cambus_writeb(REG_MVFP, reg); - - return ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_OV7670) diff --git a/Examples/MAX32572/Barcode_Decoder/src/ov7725.c b/Examples/MAX32572/Barcode_Decoder/src/ov7725.c deleted file mode 100644 index 3ca6a30014c..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/ov7725.c +++ /dev/null @@ -1,466 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV7725 driver. - */ -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "ov7725_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_OV7725) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -static int g_slv_addr; -static const uint8_t default_regs[][2] = { - // From App Note. - - { COM12, 0x03 }, - { HSTART, 0x22 }, - { HSIZE, 0xa4 }, - { VSTART, 0x07 }, - { VSIZE, 0xf0 }, - { HREF, 0x00 }, - { HOUTSIZE, 0xa0 }, - { VOUTSIZE, 0xf0 }, - { EXHCH, 0x00 }, - { CLKRC, 0xC0 }, // {CLKRC, 0x01}, - - { TGT_B, 0x7f }, - { FIXGAIN, 0x09 }, - { AWB_CTRL0, 0xe0 }, - { DSP_CTRL1, 0xff }, - { DSP_CTRL2, 0x20 | DSP_CTRL2_VDCW_EN | DSP_CTRL2_HDCW_EN | DSP_CTRL2_VZOOM_EN | - DSP_CTRL2_HZOOM_EN }, // {DSP_CTRL2, 0x20}, - { DSP_CTRL3, 0x00 }, - { DSP_CTRL4, 0x48 }, - - { COM8, 0xf0 }, - { COM4, 0x41 }, // {COM4, OMV_OV7725_PLL_CONFIG}, - { COM6, 0xc5 }, - { COM9, 0x11 }, - { BDBASE, 0x7f }, - { BDSTEP, 0x03 }, - { AEW, 0x40 }, - { AEB, 0x30 }, - { VPT, 0xa1 }, - { EXHCL, 0x00 }, - { AWB_CTRL3, 0xaa }, - { COM8, 0xff }, - - { EDGE1, 0x05 }, - { DNSOFF, 0x01 }, - { EDGE2, 0x03 }, - { EDGE3, 0x00 }, - { MTX1, 0xb0 }, - { MTX2, 0x9d }, - { MTX3, 0x13 }, - { MTX4, 0x16 }, - { MTX5, 0x7b }, - { MTX6, 0x91 }, - { MTX_CTRL, 0x1e }, - { BRIGHTNESS, 0x08 }, - { CONTRAST, 0x20 }, - { UVADJ0, 0x81 }, - { SDE, SDE_CONT_BRIGHT_EN | SDE_SATURATION_EN }, - - { GAM1, 0x0c }, - { GAM2, 0x16 }, - { GAM3, 0x2a }, - { GAM4, 0x4e }, - { GAM5, 0x61 }, - { GAM6, 0x6f }, - { GAM7, 0x7b }, - { GAM8, 0x86 }, - { GAM9, 0x8e }, - { GAM10, 0x97 }, - { GAM11, 0xa4 }, - { GAM12, 0xaf }, - { GAM13, 0xc5 }, - { GAM14, 0xd7 }, - { GAM15, 0xe8 }, - { SLOP, 0x20 }, - - { DM_LNL, 0x00 }, - { BDBASE, 0x7f }, // {BDBASE, OMV_OV7725_BANDING} - { BDSTEP, 0x03 }, - - { LC_RADI, 0x10 }, - { LC_COEF, 0x10 }, - { LC_COEFB, 0x14 }, - { LC_COEFR, 0x17 }, - { LC_CTR, 0x01 }, // {LC_CTR, 0x05}, - - { COM5, 0xf5 }, // {COM5, 0x65}, - - // OpenMV Custom. - - { COM7, COM7_FMT_RGB565 }, - - // End. - - { 0x00, 0x00 }, -}; - -#define NUM_BRIGHTNESS_LEVELS (9) -static const uint8_t brightness_regs[NUM_BRIGHTNESS_LEVELS][2] = { - { 0x38, 0x0e }, /* -4 */ - { 0x28, 0x0e }, /* -3 */ - { 0x18, 0x0e }, /* -2 */ - { 0x08, 0x0e }, /* -1 */ - { 0x08, 0x06 }, /* 0 */ - { 0x18, 0x06 }, /* +1 */ - { 0x28, 0x06 }, /* +2 */ - { 0x38, 0x06 }, /* +3 */ - { 0x48, 0x06 }, /* +4 */ -}; - -#define NUM_CONTRAST_LEVELS (9) -static const uint8_t contrast_regs[NUM_CONTRAST_LEVELS][1] = { - { 0x10 }, /* -4 */ - { 0x14 }, /* -3 */ - { 0x18 }, /* -2 */ - { 0x1C }, /* -1 */ - { 0x20 }, /* 0 */ - { 0x24 }, /* +1 */ - { 0x28 }, /* +2 */ - { 0x2C }, /* +3 */ - { 0x30 }, /* +4 */ -}; - -#define NUM_SATURATION_LEVELS (9) -static const uint8_t saturation_regs[NUM_SATURATION_LEVELS][2] = { - { 0x00, 0x00 }, /* -4 */ - { 0x10, 0x10 }, /* -3 */ - { 0x20, 0x20 }, /* -2 */ - { 0x30, 0x30 }, /* -1 */ - { 0x40, 0x40 }, /* 0 */ - { 0x50, 0x50 }, /* +1 */ - { 0x60, 0x60 }, /* +2 */ - { 0x70, 0x70 }, /* +3 */ - { 0x80, 0x80 }, /* +4 */ -}; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - unsigned int sz = 64; - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - - return ret; -} - -static int reset(void) -{ - // Reset all registers - int ret = cambus_writeb(COM7, COM7_RESET); - - // Delay 2 ms - utils_delay_ms(2); - - // Write default regsiters - for (int i = 0; default_regs[i][0]; i++) { - ret |= cambus_writeb(default_regs[i][0], default_regs[i][1]); - } - - ret |= cambus_writeb(CLKRC, 2); //InternalClk = InputClk / (2*(2+1)) - - // Delay 300 ms - utils_delay_ms(300); - - return ret; -} - -static int sleep(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM2, ®); - - if (enable) { - reg |= COM2_SOFT_SLEEP; - } else { - reg &= ~COM2_SOFT_SLEEP; - } - - // Write back register - return cambus_writeb(COM2, reg) | ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg_data; - - if (cambus_readb(reg_addr, ®_data) != 0) { - return -1; - } - - return reg_data; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return cambus_writeb(reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM7, ®); - - switch (pixformat) { - case PIXFORMAT_RGB565: - reg = COM7_SET_FMT(reg, COM7_FMT_RGB); - ret |= cambus_writeb(DSP_CTRL4, DSP_CTRL4_YUV_RGB); - break; - - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - reg = COM7_SET_FMT(reg, COM7_FMT_YUV); - ret |= cambus_writeb(DSP_CTRL4, DSP_CTRL4_YUV_RGB); - break; - - case PIXFORMAT_BAYER: - reg = COM7_SET_FMT(reg, COM7_FMT_P_BAYER); - ret |= cambus_writeb(DSP_CTRL4, DSP_CTRL4_RAW8); - break; - - default: - return -1; - } - - // Write back register - return cambus_writeb(COM7, reg) | ret; -} - -extern const int resolution[][2]; - -static int set_framesize(framesize_t framesize) -{ - int ret = 0; - uint8_t reg = 0; - uint16_t w = resolution[(unsigned int)framesize][0]; - uint16_t h = resolution[(unsigned int)framesize][1]; - - // Write MSBs - ret |= cambus_writeb(HOUTSIZE, w >> 2); - ret |= cambus_writeb(VOUTSIZE, h >> 1); - - // Write LSBs - ret |= cambus_writeb(EXHCH, ((w & 0x3) | ((h & 0x1) << 2))); - - if ((w <= 320) && (h <= 240)) { - // Set QVGA Resolution - ret = cambus_readb(COM7, ®); - reg = COM7_SET_RES(reg, COM7_RES_QVGA); - ret |= cambus_writeb(COM7, reg); - - // Set QVGA Window Size - ret |= cambus_writeb(HSTART, 0x3F); - ret |= cambus_writeb(HSIZE, 0x50); - ret |= cambus_writeb(VSTART, 0x03); - ret |= cambus_writeb(VSIZE, 0x78); - - // Enable auto-scaling/zooming factors - ret |= cambus_writeb(DSPAUTO, 0xFF); - } else { - // Set VGA Resolution - ret = cambus_readb(COM7, ®); - reg = COM7_SET_RES(reg, COM7_RES_VGA); - ret |= cambus_writeb(COM7, reg); - - // Set VGA Window Size - ret |= cambus_writeb(HSTART, 0x23); - ret |= cambus_writeb(HSIZE, 0xA0); - ret |= cambus_writeb(VSTART, 0x07); - ret |= cambus_writeb(VSIZE, 0xF0); - - // Disable auto-scaling/zooming factors - ret |= cambus_writeb(DSPAUTO, 0xF3); - - // Clear auto-scaling/zooming factors - ret |= cambus_writeb(SCAL0, 0x00); - ret |= cambus_writeb(SCAL1, 0x40); - ret |= cambus_writeb(SCAL2, 0x40); - } - - return ret; -} -static int set_contrast(int level) -{ - int ret = 0; - - level += (NUM_CONTRAST_LEVELS / 2); - - if (level < 0 || level >= NUM_CONTRAST_LEVELS) { - return -1; - } - - ret = cambus_writeb(CONTRAST, contrast_regs[level][0]); - return ret; -} - -static int set_brightness(int level) -{ - int ret = 0; - - level += (NUM_BRIGHTNESS_LEVELS / 2); - - if (level < 0 || level >= NUM_BRIGHTNESS_LEVELS) { - return -1; - } - - ret |= cambus_writeb(BRIGHTNESS, brightness_regs[level][0]); - ret |= cambus_writeb(SIGN_BIT, brightness_regs[level][1]); - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - - level += (NUM_SATURATION_LEVELS / 2); - - if (level < 0 || level >= NUM_SATURATION_LEVELS) { - return -1; - } - - ret |= cambus_writeb(USAT, saturation_regs[level][0]); - ret |= cambus_writeb(VSAT, saturation_regs[level][1]); - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM9, ®); - - // Set gain ceiling - reg = COM9_SET_AGC(reg, gainceiling); - return cambus_writeb(COM9, reg) | ret; -} - -static int set_colorbar(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM3, ®); - - // Enable colorbar test pattern output - reg = COM3_SET_CBAR(reg, enable); - ret |= cambus_writeb(COM3, reg); - - // Enable DSP colorbar output - ret |= cambus_readb(DSP_CTRL3, ®); - reg = DSP_CTRL3_SET_CBAR(reg, enable); - return cambus_writeb(DSP_CTRL3, reg) | ret; -} - -static int set_hmirror(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM3, ®); - ret |= cambus_writeb(COM3, COM3_SET_MIRROR(reg, enable)); - - return ret; -} - -static int set_vflip(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM3, ®); - ret |= cambus_writeb(COM3, COM3_SET_FLIP(reg, enable)); - - return ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_OV2640) diff --git a/Examples/MAX32572/Barcode_Decoder/src/sccb.c b/Examples/MAX32572/Barcode_Decoder/src/sccb.c deleted file mode 100644 index 2494ac9951b..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/sccb.c +++ /dev/null @@ -1,262 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include "sccb.h" -#include "mxc_delay.h" -#include "gpio.h" -#include "max32572.h" - -// serial clock -#define SCL_PORT MXC_GPIO2 -#define SCL_PIN MXC_GPIO_PIN_18 -// serial data -#define SDA_PORT MXC_GPIO2 -#define SDA_PIN MXC_GPIO_PIN_19 - -// -#define GPIO_SET(port, mask) (port)->out_set = (mask) -#define GPIO_CLR(port, mask) (port)->out_clr = (mask) -#define GPIO_GET(port, mask) ((port)->in & (mask)) - -// -#define GPIO_IN(port, mask) (port)->out_en_clr = (mask) -#define GPIO_OUT(port, mask) (port)->out_en_set = (mask) - -// SCL -#define SCL_HIGH() GPIO_SET(SCL_PORT, SCL_PIN) -#define SCL_LOW() GPIO_CLR(SCL_PORT, SCL_PIN) -// SDA -#define SDA_HIGH() GPIO_SET(SDA_PORT, SDA_PIN) -#define SDA_LOW() GPIO_CLR(SDA_PORT, SDA_PIN) -#define SDA_IN() GPIO_IN(SDA_PORT, SDA_PIN) -#define SDA_OUT() GPIO_OUT(SDA_PORT, SDA_PIN) -#define SDA_GET() GPIO_GET(SDA_PORT, SDA_PIN) - -#define WAIT_US 50 -#define DELAY_US(us) MXC_Delay(us) - -static const mxc_gpio_cfg_t gpio_cfg_scl = { SCL_PORT, SCL_PIN, MXC_GPIO_FUNC_OUT, - MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH }; -static const mxc_gpio_cfg_t gpio_cfg_sda = { SDA_PORT, SDA_PIN, MXC_GPIO_FUNC_OUT, - MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH }; - -/******************************** Static Functions ***************************/ -static void start(void) -{ - SDA_HIGH(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - SDA_LOW(); - DELAY_US(WAIT_US); - SCL_LOW(); - DELAY_US(WAIT_US); -} - -static void stop(void) -{ - SDA_LOW(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - SDA_HIGH(); - DELAY_US(WAIT_US); -} - -static void send_NACK(void) -{ - SDA_HIGH(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - SCL_LOW(); - DELAY_US(WAIT_US); - SDA_LOW(); - DELAY_US(WAIT_US); -} - -static uint8_t send_byte(uint8_t byt) -{ - uint8_t i; - uint8_t res = 0; - - for (i = 0; i < 8; i++) { - if ((byt << i) & 0x80) { - SDA_HIGH(); - } else { - SDA_LOW(); - } - - DELAY_US(WAIT_US); - - SCL_HIGH(); - DELAY_US(WAIT_US); - SCL_LOW(); - DELAY_US(WAIT_US); - } - - SDA_IN(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - - if (SDA_GET()) { - res = 1; // means nack - } else { - res = 0; // means ack - } - - SCL_LOW(); - DELAY_US(WAIT_US); - SDA_OUT(); - - return res; -} - -static uint8_t get_byte(void) -{ - uint8_t byt = 0; - uint8_t j; - - SDA_IN(); - DELAY_US(WAIT_US); - - for (j = 8; j > 0; j--) { - SCL_HIGH(); - DELAY_US(WAIT_US); - - byt = byt << 1; - - if (SDA_GET()) { - byt++; - } - - SCL_LOW(); - DELAY_US(WAIT_US); - } - - SDA_OUT(); - - return byt; -} - -/******************************** Public Functions ***************************/ -int sccb_init(void) -{ - int ret = 0; - - MXC_GPIO_Config(&gpio_cfg_scl); - MXC_GPIO_Config(&gpio_cfg_sda); - - SDA_HIGH(); - SCL_HIGH(); - - return ret; -} - -int sccb_scan(void) -{ - int ret = 0; - int slv_addr = 0; - - while (slv_addr < 0xFF) { - start(); - ret = send_byte(slv_addr << 1); // address - stop(); - - if (ret == 0) { - return slv_addr; - } - - slv_addr++; - } - - return -1; // not found -} - -int sccb_read_byt(uint8_t slv_addr, uint8_t reg, uint8_t *byt) -{ - int ret = 0; - - start(); - - if (ret == 0) { - ret = send_byte(slv_addr << 1); // address - } - - if (ret == 0) { - ret = send_byte(reg); - } - - stop(); - - if (ret == 0) { - DELAY_US(WAIT_US); - - start(); - ret = send_byte((slv_addr << 1) + 1); // +1 means read - - if (ret == 0) { - *byt = get_byte(); // - send_NACK(); - } - - stop(); - } - - return ret; -} - -int sccb_write_byt(uint8_t slv_addr, uint8_t reg, uint8_t val) -{ - int ret = 0; - - start(); - - if (ret == 0) { - ret = send_byte(slv_addr << 1); // address - } - - if (ret == 0) { - ret = send_byte(reg); // - } - - if (ret == 0) { - ret = send_byte(val); // - } - - stop(); - - return ret; -} diff --git a/Examples/MAX32572/Barcode_Decoder/src/utils.c b/Examples/MAX32572/Barcode_Decoder/src/utils.c deleted file mode 100644 index 73dd18db812..00000000000 --- a/Examples/MAX32572/Barcode_Decoder/src/utils.c +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "board.h" -#include "mxc_delay.h" -#include "uart.h" -#include "rtc.h" -#include "utils.h" - -#pragma GCC optimize("-O0") - -#define DEBUG_COMPORT MXC_UART1 - -/***************************** VARIABLES *************************************/ - -/************************ PUBLIC FUNCTIONS *******************************/ -void utils_delay_ms(unsigned int ms) -{ - MXC_Delay(ms * 1000UL); -} - -unsigned int utils_get_time_ms(void) -{ - uint32_t sec, ssec; - double subsec; - uint32_t ms; - - MXC_RTC_GetSubSeconds(&ssec); - subsec = (double)ssec / (double)(4096.0); - - MXC_RTC_GetSeconds(&sec); - - ms = (sec * 1000) + (int)(subsec * 1000); - - return ms; -} - -void utils_hexDump(const char *title, unsigned char *buf, unsigned int len) -{ - unsigned int i; - - /* Print title */ - if (title) { - printf("%s", title); - } - - /* Print buffer bytes */ - for (i = 0; i < len; i++) { - if (!(i % 16)) { - printf("\n"); - } - - printf("%02X ", buf[i]); - } - - printf("\n"); -} - -int utils_send_img_to_pc(uint8_t *img, uint32_t imgLen, int w, int h, uint8_t *pixelformat) -{ - int len; - - // start - len = 5; - MXC_UART_Write(DEBUG_COMPORT, (uint8_t *)"*STR*", &len); - - // w - MXC_UART_WriteCharacter(DEBUG_COMPORT, (w >> 8) & 0xff); // high byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (w >> 0) & 0xff); // low byte - // h - MXC_UART_WriteCharacter(DEBUG_COMPORT, (h >> 8) & 0xff); // high byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (h >> 0) & 0xff); // low byte - - // format - len = strlen((char *)pixelformat); - MXC_UART_WriteCharacter(DEBUG_COMPORT, len & 0xff); - MXC_UART_Write(DEBUG_COMPORT, pixelformat, &len); - - // imagelen - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 24) & 0xff); // high byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 16) & 0xff); // low byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 8) & 0xff); // low byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 0) & 0xff); // low byte - -#if 1 - - while (imgLen) { - len = imgLen; - MXC_UART_Write(DEBUG_COMPORT, img, &len); - img += len; - imgLen -= len; - } - -#else // provide a slow communication if need - - while (imgLen) { - int step_size = (imgLen > 2048) ? 2048 : imgLen; - - imgLen -= step_size; - - while (step_size) { - len = step_size; - MXC_UART_Write(DEBUG_COMPORT, img, &len); - img += len; - step_size -= len; - } - - //MXC_Delay(1); - } - -#endif - return 0; -} diff --git a/Examples/MAX32572/CRC/.cproject b/Examples/MAX32572/CRC/.cproject deleted file mode 100644 index cbb8ad26ec8..00000000000 --- a/Examples/MAX32572/CRC/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/CRC/.project b/Examples/MAX32572/CRC/.project deleted file mode 100644 index 1e95e9baa23..00000000000 --- a/Examples/MAX32572/CRC/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - CRC - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/CRC/.vscode/c_cpp_properties.json b/Examples/MAX32572/CRC/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/CRC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/CRC/.vscode/launch.json b/Examples/MAX32572/CRC/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/CRC/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/CRC/.vscode/settings.json b/Examples/MAX32572/CRC/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/CRC/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/CRC/.vscode/tasks.json b/Examples/MAX32572/CRC/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/CRC/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/CRC/CRC.launch b/Examples/MAX32572/CRC/CRC.launch deleted file mode 100644 index 69a6b25efd7..00000000000 --- a/Examples/MAX32572/CRC/CRC.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/CRC/Makefile b/Examples/MAX32572/CRC/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/CRC/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/CRC/README.md b/Examples/MAX32572/CRC/README.md deleted file mode 100644 index dcb2f089cee..00000000000 --- a/Examples/MAX32572/CRC/README.md +++ /dev/null @@ -1,32 +0,0 @@ -## Description - -This example demonstrates the use of the HW CRC calculator. The example first generates a CRC over 100 bytes. The resulting CRC is inverted and placed at the end of the 100 bytes. Another CRC is then calculated over the resulting 101 bytes. The final result is compared with the expected value. This sequence is repeated twice - once using the blocking CRC functions and once using the non-blocking (asynchronous) functions. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -Test CRC Sync - Passed -Test CRC Async - Passed -``` - - diff --git a/Examples/MAX32572/CRC/main.c b/Examples/MAX32572/CRC/main.c deleted file mode 100644 index f81750f17ef..00000000000 --- a/Examples/MAX32572/CRC/main.c +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Example showing how to use the CRC module. Covers 16 and 32-bit CRC. - */ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Definitions *****/ -#define POLY 0xEDB88320 -#define CHECK 0xDEBB20E3 -/***** Globals *****/ -volatile int wait; -volatile int callback_result; -volatile int counter; -/***** Functions *****/ - -void CRYPTO_IRQHandler(void) -{ - MXC_CTB_Handler(); -} - -void Test_Callback(void *req, int result) -{ - wait = 0; - callback_result = result; -} - -int Test_CRC(int asynchronous) -{ - int ret; - uint32_t array[101]; - int i; - - printf(asynchronous ? "Test CRC Async\n" : "Test CRC Sync\n"); - - for (i = 0; i < 100; i++) { - array[i] = i; - } - - MXC_CTB_Init(MXC_CTB_FEATURE_CRC | MXC_CTB_FEATURE_DMA); - - // Load CRC polynomial into crc polynomial register - MXC_CTB_CRC_SetPoly(POLY); - - mxc_ctb_crc_req_t crc_req = { (uint8_t *)&array, 400, 0, &Test_Callback }; - - MXC_CTB_EnableInt(); - - if (asynchronous) { - wait = 1; - MXC_CTB_CRC_ComputeAsync(&crc_req); - - while (wait) {} - } else { - MXC_CTB_CRC_Compute(&crc_req); - } - - array[100] = ~(crc_req.resultCRC); - - crc_req.dataLen += sizeof(array[100]); - - if (asynchronous) { - wait = 1; - MXC_CTB_CRC_ComputeAsync(&crc_req); - - while (wait) {} - } else { - MXC_CTB_CRC_Compute(&crc_req); - } - - if (CHECK != crc_req.resultCRC) { - printf(" * Failed *\n"); - ret = -1; - } else { - printf(" Passed \n"); - ret = 0; - } - - MXC_CTB_Shutdown(MXC_CTB_FEATURE_CRC | MXC_CTB_FEATURE_DMA); - return ret; -} - -// ***************************************************************************** -int main(void) -{ - int fail = 0; - printf("\n***** CRC Example *****\n"); - - fail += Test_CRC(0); - fail += Test_CRC(1); - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/CameraIF/.cproject b/Examples/MAX32572/CameraIF/.cproject deleted file mode 100644 index 0881623b876..00000000000 --- a/Examples/MAX32572/CameraIF/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/CameraIF/.project b/Examples/MAX32572/CameraIF/.project deleted file mode 100644 index 82a52916215..00000000000 --- a/Examples/MAX32572/CameraIF/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - CameraIF - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/CameraIF/.vscode/c_cpp_properties.json b/Examples/MAX32572/CameraIF/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/CameraIF/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/CameraIF/.vscode/launch.json b/Examples/MAX32572/CameraIF/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/CameraIF/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/CameraIF/.vscode/settings.json b/Examples/MAX32572/CameraIF/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/CameraIF/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/CameraIF/.vscode/tasks.json b/Examples/MAX32572/CameraIF/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/CameraIF/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/CameraIF/CameraIF.launch b/Examples/MAX32572/CameraIF/CameraIF.launch deleted file mode 100644 index 48b50e75fb7..00000000000 --- a/Examples/MAX32572/CameraIF/CameraIF.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/CameraIF/Makefile b/Examples/MAX32572/CameraIF/Makefile deleted file mode 100644 index 8c748220a73..00000000000 --- a/Examples/MAX32572/CameraIF/Makefile +++ /dev/null @@ -1,165 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += src/ov2640.c -SRCS += src/ov7670.c -SRCS += src/camera.c -SRCS += src/ov7725.c -SRCS += src/sccb.c -SRCS += src/utils.c -SRCS += src/gc0308.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += ./src - -# Where to find header files for this test -IPATH = . -IPATH += ./include - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -PROJ_CFLAGS += -DDISABLE_EVKIT_DISPLAY -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/CameraIF/README.md b/Examples/MAX32572/CameraIF/README.md deleted file mode 100644 index 71dc68bf941..00000000000 --- a/Examples/MAX32572/CameraIF/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD diff --git a/Examples/MAX32572/CameraIF/include/camera.h b/Examples/MAX32572/CameraIF/include/camera.h deleted file mode 100644 index 797df0907bc..00000000000 --- a/Examples/MAX32572/CameraIF/include/camera.h +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_CAMERAIF_INCLUDE_CAMERA_H_ -#define EXAMPLES_MAX32572_CAMERAIF_INCLUDE_CAMERA_H_ - -// includes -#include -#include - -// Defines -#define CAM_OV7670 (1) -#define CAM_OV7725 (2) -#define CAM_OV2640 (3) -#define CAM_GC0308 (4) // implementation not finalized yet - -#define ACTIVE_CAMERA CAM_OV7670 -#define CAMERA_FREQ (15 * 1000 * 1000) - -#include "ov7670_regs.h" -#include "ov7725_regs.h" -#include "ov2640_regs.h" -#include "gc0308_regs.h" - -/******************************** Type Definitions ***************************/ -typedef enum { - PIXFORMAT_INVALID = 0, - PIXFORMAT_BINARY, // 1BPP/BINARY - PIXFORMAT_GRAYSCALE, // 1BPP/GRAYSCALE - PIXFORMAT_RGB565, // 2BPP/RGB565 - PIXFORMAT_YUV422, // 2BPP/YUV422 - PIXFORMAT_BAYER, // 1BPP/RAW -} pixformat_t; - -typedef enum { - // CIF Resolutions - FRAMESIZE_QCIF, // 176x144 - FRAMESIZE_CIF, // 352x288 - // VGA Resolutions - FRAMESIZE_QQVGA, // 160x120 - FRAMESIZE_QVGA, // 320x240 - FRAMESIZE_VGA, // 640x480 -} framesize_t; - -typedef enum { - GAINCEILING_2X, - GAINCEILING_4X, - GAINCEILING_8X, - GAINCEILING_16X, - GAINCEILING_32X, - GAINCEILING_64X, - GAINCEILING_128X, -} gainceiling_t; - -typedef struct _camera { - // Sensor function pointers - int (*init)(void); - int (*get_id)(void); - int (*dump_registers)(void); - int (*reset)(void); - int (*sleep)(int enable); - int (*read_reg)(uint16_t reg_addr); - int (*write_reg)(uint16_t reg_addr, uint16_t reg_data); - int (*set_pixformat)(pixformat_t pixformat); - int (*set_framesize)(framesize_t framesize); - int (*set_contrast)(int level); - int (*set_brightness)(int level); - int (*set_saturation)(int level); - int (*set_gainceiling)(gainceiling_t gainceiling); - int (*set_colorbar)(int enable); - int (*set_hmirror)(int enable); - int (*set_vflip)(int enable); -} camera_t; - -/******************************** Public Functions ***************************/ -// Initialize the sensor hardware and probe the image sensor. -int camera_init(); - -// Return sensor PID. -int camera_get_id(); - -// dump all registers of camera -int camera_dump_registers(); - -// Reset the sensor to its default state. -int camera_reset(); - -// Sleep mode. -int camera_sleep(int enable); - -// Shutdown mode. -int camera_shutdown(int enable); - -// Read a sensor register. -int camera_read_reg(uint16_t reg_addr); - -// Write a sensor register. -int camera_write_reg(uint16_t reg_addr, uint16_t reg_data); - -// Set the sensor pixel format. -int camera_set_pixformat(pixformat_t pixformat); - -// Set the sensor frame size. -int camera_set_framesize(framesize_t framesize); - -// Set the sensor contrast level (from -3 to +3). -int camera_set_contrast(int level); - -// Set the sensor brightness level (from -3 to +3). -int camera_set_brightness(int level); - -// Set the sensor saturation level (from -3 to +3). -int camera_set_saturation(int level); - -// Set the sensor AGC gain ceiling. -// Note: This function has no effect when AGC (Automatic Gain Control) is disabled. -int camera_set_gainceiling(gainceiling_t gainceiling); - -// Enable/disable the colorbar mode. -int camera_set_colorbar(int enable); - -// Enable/disable the hmirror mode. -int camera_set_hmirror(int enable); - -// Enable/disable the vflip mode. -int camera_set_vflip(int enable); - -// start to capture image -int camera_start_campture_image(void); - -// check whether all image data rcv or not -int camera_is_image_rcv(void); - -// -uint8_t *camera_get_pixel_format(void); - -// -void camera_get_image(uint8_t **img, uint32_t *imgLen, uint32_t *w, uint32_t *h); - -#endif // EXAMPLES_MAX32572_CAMERAIF_INCLUDE_CAMERA_H_ diff --git a/Examples/MAX32572/CameraIF/include/gc0308_regs.h b/Examples/MAX32572/CameraIF/include/gc0308_regs.h deleted file mode 100644 index 00c2cc8912e..00000000000 --- a/Examples/MAX32572/CameraIF/include/gc0308_regs.h +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_CAMERAIF_INCLUDE_GC0308_REGS_H_ -#define EXAMPLES_MAX32572_CAMERAIF_INCLUDE_GC0308_REGS_H_ - -#include - -#if (ACTIVE_CAMERA == CAM_GC0308) - -#define PAGE_SELECT 0xFE -#define PAGE_0 0x00 -#define PAGE_1 0x01 - -#define REG_Output_format 0x24 - -#endif // (ACTIVE_CAMERA == CAM_GC0308) - -#endif // EXAMPLES_MAX32572_CAMERAIF_INCLUDE_GC0308_REGS_H_ diff --git a/Examples/MAX32572/CameraIF/include/ov2640_regs.h b/Examples/MAX32572/CameraIF/include/ov2640_regs.h deleted file mode 100644 index 3e10546a831..00000000000 --- a/Examples/MAX32572/CameraIF/include/ov2640_regs.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV2640 register definitions. - */ - -#ifndef EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV2640_REGS_H_ -#define EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV2640_REGS_H_ - -#if (ACTIVE_CAMERA == CAM_OV2640) - -/* DSP register bank FF=0x00*/ - -#define QS 0x44 -#define HSIZE 0x51 -#define VSIZE 0x52 -#define XOFFL 0x53 -#define YOFFL 0x54 -#define VHYX 0x55 -#define DPRP 0x56 -#define TEST 0x57 -#define ZMOW 0x5A -#define ZMOH 0x5B -#define ZMHH 0x5C -#define BPADDR 0x7C -#define BPDATA 0x7D -#define SIZEL 0x8C -#define HSIZE8 0xC0 -#define VSIZE8 0xC1 -#define CTRL1 0xC3 -#define MS_SP 0xF0 -#define SS_ID 0xF7 -#define SS_CTRL 0xF7 -#define MC_AL 0xFA -#define MC_AH 0xFB -#define MC_D 0xFC -#define P_CMD 0xFD -#define P_STATUS 0xFE - -#define CTRLI 0x50 -#define CTRLI_LP_DP 0x80 -#define CTRLI_ROUND 0x40 - -#define CTRL0 0xC2 -#define CTRL0_AEC_EN 0x80 -#define CTRL0_AEC_SEL 0x40 -#define CTRL0_STAT_SEL 0x20 -#define CTRL0_VFIRST 0x10 -#define CTRL0_YUV422 0x08 -#define CTRL0_YUV_EN 0x04 -#define CTRL0_RGB_EN 0x02 -#define CTRL0_RAW_EN 0x01 - -#define CTRL2 0x86 -#define CTRL2_DCW_EN 0x20 -#define CTRL2_SDE_EN 0x10 -#define CTRL2_UV_ADJ_EN 0x08 -#define CTRL2_UV_AVG_EN 0x04 -#define CTRL2_CMX_EN 0x01 - -#define CTRL3 0x87 -#define CTRL3_BPC_EN 0x80 -#define CTRL3_WPC_EN 0x40 -#define R_DVP_SP 0xD3 -#define R_DVP_SP_AUTO_MODE 0x80 - -#define R_BYPASS 0x05 -#define R_BYPASS_DSP_EN 0x00 -#define R_BYPASS_DSP_BYPAS 0x01 - -#define IMAGE_MODE 0xDA -#define IMAGE_MODE_Y8_DVP_EN 0x40 -#define IMAGE_MODE_JPEG_EN 0x10 -#define IMAGE_MODE_YUV422 0x00 -#define IMAGE_MODE_RAW10 0x04 -#define IMAGE_MODE_RGB565 0x08 -#define IMAGE_MODE_HREF_VSYNC 0x02 -#define IMAGE_MODE_LBYTE_FIRST 0x01 -#define IMAGE_MODE_GET_FMT(x) ((x)&0xC) - -#define RESET 0xE0 -#define RESET_MICROC 0x40 -#define RESET_SCCB 0x20 -#define RESET_JPEG 0x10 -#define RESET_DVP 0x04 -#define RESET_IPU 0x02 -#define RESET_CIF 0x01 - -#define MC_BIST 0xF9 -#define MC_BIST_RESET 0x80 -#define MC_BIST_BOOT_ROM_SEL 0x40 -#define MC_BIST_12KB_SEL 0x20 -#define MC_BIST_12KB_MASK 0x30 -#define MC_BIST_512KB_SEL 0x08 -#define MC_BIST_512KB_MASK 0x0C -#define MC_BIST_BUSY_BIT_R 0x02 -#define MC_BIST_MC_RES_ONE_SH_W 0x02 -#define MC_BIST_LAUNCH 0x01 - -#define BANK_SEL 0xFF -#define BANK_SEL_DSP 0x00 -#define BANK_SEL_SENSOR 0x01 - -/* Sensor register bank FF=0x01*/ - -#define GAIN 0x00 -#define COM1 0x03 -#define REG_PID 0x0A -#define REG_VER 0x0B -#define COM4 0x0D -#define AEC 0x10 - -#define CLKRC 0x11 -#define CLKRC_DOUBLE 0x80 -#define CLKRC_DIVIDER_MASK 0x3F - -#define COM10 0x15 -#define HSTART 0x17 -#define HSTOP 0x18 -#define VSTART 0x19 -#define VSTOP 0x1A -#define MIDH 0x1C -#define MIDL 0x1D -#define AEW 0x24 -#define AEB 0x25 -#define REG2A 0x2A -#define FRARL 0x2B -#define ADDVSL 0x2D -#define ADDVSH 0x2E -#define YAVG 0x2F -#define HSDY 0x30 -#define HEDY 0x31 -#define ARCOM2 0x34 -#define REG45 0x45 -#define FLL 0x46 -#define FLH 0x47 -#define COM19 0x48 -#define ZOOMS 0x49 -#define COM22 0x4B -#define COM25 0x4E -#define BD50 0x4F -#define BD60 0x50 -#define REG5D 0x5D -#define REG5E 0x5E -#define REG5F 0x5F -#define REG60 0x60 -#define HISTO_LOW 0x61 -#define HISTO_HIGH 0x62 - -#define REG04 0x04 -#define REG04_DEFAULT 0x28 -#define REG04_HFLIP_IMG 0x80 -#define REG04_VFLIP_IMG 0x40 -#define REG04_VREF_EN 0x10 -#define REG04_HREF_EN 0x08 -#define REG04_SET(x) (REG04_DEFAULT|x) - -#define REG08 0x08 -#define COM2 0x09 -#define COM2_STDBY 0x10 -#define COM2_OUT_DRIVE_1x 0x00 -#define COM2_OUT_DRIVE_2x 0x01 -#define COM2_OUT_DRIVE_3x 0x02 -#define COM2_OUT_DRIVE_4x 0x03 - -#define COM3 0x0C -#define COM3_DEFAULT 0x38 -#define COM3_BAND_50Hz 0x04 -#define COM3_BAND_60Hz 0x00 -#define COM3_BAND_AUTO 0x02 -#define COM3_BAND_SET(x) (COM3_DEFAULT|x) - -#define COM7 0x12 -#define COM7_SRST 0x80 -#define COM7_RES_UXGA 0x00 /* UXGA */ -#define COM7_RES_SVGA 0x40 /* SVGA */ -#define COM7_RES_CIF 0x20 /* CIF */ -#define COM7_ZOOM_EN 0x04 /* Enable Zoom */ -#define COM7_COLOR_BAR 0x02 /* Enable Color Bar Test */ -#define COM7_GET_RES(x) ((x)&0x70) - -#define COM8 0x13 -#define COM8_DEFAULT 0xC0 -#define COM8_BNDF_EN 0x20 /* Enable Banding filter */ -#define COM8_AGC_EN 0x04 /* AGC Auto/Manual control selection */ -#define COM8_AEC_EN 0x01 /* Auto/Manual Exposure control */ -#define COM8_SET(x) (COM8_DEFAULT|x) -#define COM8_SET_AEC(r, x) (((r)&0xFE)|((x)&1)) - -#define COM9 0x14 /* AGC gain ceiling */ -#define COM9_DEFAULT 0x08 -#define COM9_AGC_GAIN_2x 0x00 /* AGC: 2x */ -#define COM9_AGC_GAIN_4x 0x01 /* AGC: 4x */ -#define COM9_AGC_GAIN_8x 0x02 /* AGC: 8x */ -#define COM9_AGC_GAIN_16x 0x03 /* AGC: 16x */ -#define COM9_AGC_GAIN_32x 0x04 /* AGC: 32x */ -#define COM9_AGC_GAIN_64x 0x05 /* AGC: 64x */ -#define COM9_AGC_GAIN_128x 0x06 /* AGC: 128x */ -#define COM9_AGC_SET(x) (COM9_DEFAULT|(x << 5)) - -#define CTRL1_AWB 0x08 /* Enable AWB */ - -#define VV 0x26 -#define VV_AGC_TH_SET(h, l) ((h << 4)|(l&0x0F)) - -#define REG32 0x32 -#define REG32_UXGA 0x36 -#define REG32_SVGA 0x09 -#define REG32_CIF 0x00 - -#define VAL_SET(x, mask, rshift, lshift) ((((x) >> rshift) & mask) << lshift) - -#define CTRLI_V_DIV_SET(x) VAL_SET(x, 0x3, 0, 3) -#define CTRLI_H_DIV_SET(x) VAL_SET(x, 0x3, 0, 0) - -#define SIZEL_HSIZE8_11_SET(x) VAL_SET(x, 0x1, 11, 6) -#define SIZEL_HSIZE8_SET(x) VAL_SET(x, 0x7, 0, 3) -#define SIZEL_VSIZE8_SET(x) VAL_SET(x, 0x7, 0, 0) - -#define HSIZE8_SET(x) VAL_SET(x, 0xFF, 3, 0) -#define VSIZE8_SET(x) VAL_SET(x, 0xFF, 3, 0) - -#define HSIZE_SET(x) VAL_SET(x, 0xFF, 2, 0) -#define VSIZE_SET(x) VAL_SET(x, 0xFF, 2, 0) - -#define XOFFL_SET(x) VAL_SET(x, 0xFF, 0, 0) -#define YOFFL_SET(x) VAL_SET(x, 0xFF, 0, 0) - -#define VHYX_VSIZE_SET(x) VAL_SET(x, 0x1, (8+2), 7) -#define VHYX_HSIZE_SET(x) VAL_SET(x, 0x1, (8+2), 3) -#define VHYX_YOFF_SET(x) VAL_SET(x, 0x3, 8, 4) -#define VHYX_XOFF_SET(x) VAL_SET(x, 0x3, 8, 0) - -#define TEST_HSIZE_SET(x) VAL_SET(x, 0x1, (9+2), 7) - -#define ZMOW_OUTW_SET(x) VAL_SET(x, 0xFF, 2, 0) -#define ZMOH_OUTH_SET(x) VAL_SET(x, 0xFF, 2, 0) - -#define ZMHH_ZSPEED_SET(x) VAL_SET(x, 0x0F, 0, 4) -#define ZMHH_OUTH_SET(x) VAL_SET(x, 0x1, (8+2), 2) -#define ZMHH_OUTW_SET(x) VAL_SET(x, 0x3, (8+2), 0) - -#endif // (ACTIVE_CAMERA == CAM_OV2640) - -#endif // EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV2640_REGS_H_ diff --git a/Examples/MAX32572/CameraIF/include/ov7670_regs.h b/Examples/MAX32572/CameraIF/include/ov7670_regs.h deleted file mode 100644 index 08fb8ebd8fb..00000000000 --- a/Examples/MAX32572/CameraIF/include/ov7670_regs.h +++ /dev/null @@ -1,418 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV7670_REGS_H_ -#define EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV7670_REGS_H_ - -#if (ACTIVE_CAMERA == CAM_OV7670) - -/* OV7670 Registers definition */ -#define REG_GAIN 0x00 /* AGC - Gain control gain setting */ -#define REG_BLUE 0x01 /* AWB - Blue channel gain setting */ -#define REG_RED 0x02 /* AWB - Red channel gain setting */ -#define REG_VREF 0x03 /* Vertical frame control */ -#define REG_COM1 0x04 /* Common Control 1 */ -#define REG_BAVE 0x05 /* U/B Average Level */ -#define REG_GbAVE 0x06 /* Y/Gb Average Level */ -#define REG_AECHH 0x07 /* Exposure Value - AEC MSB 5 bits */ -#define REG_RAVE 0x08 /* V/R Average Level */ -#define REG_COM2 0x09 /* Common Control 2 */ -#define REG_PID 0x0A /* Product ID Number MSB, (Read Only) */ -#define REG_VER 0x0B /* Product ID Number LSB, (Read Only) */ -#define REG_COM3 0x0C /* Common Control 3 */ -#define REG_COM4 0x0D /* Common Control 4 */ -#define REG_COM5 0x0E /* Common Control 5 */ -#define REG_COM6 0x0F /* Common Control 6 */ -#define REG_AECH 0x10 /* Exposure Value */ -#define REG_CLKRC 0x11 /* Internal Clock */ -#define REG_COM7 0x12 /* Common Control 7 */ -#define REG_COM8 0x13 /* Common Control 8 */ -#define REG_COM9 0x14 /* Common Control 9 */ -#define REG_COM10 0x15 /* Common Control 10 */ -//#define REG_RSVD 0x16 -#define REG_HSTART 0x17 -#define REG_HSTOP 0x18 -#define REG_VSTRT 0x19 -#define REG_VSTOP 0x1A -#define REG_PSHFT 0x1B -#define REG_MIDH 0x1C -#define REG_MIDL 0x1D -#define REG_MVFP 0x1E -#define REG_LAEC 0x1F -#define REG_ADCCTR0 0x20 -#define REG_ADCCTR1 0x21 -#define REG_ADCCTR2 0x22 -#define REG_ADCCTR3 0x23 -#define REG_AEW 0x24 -#define REG_AEB 0x25 -#define REG_VPT 0x26 -#define REG_BBIAS 0x27 -#define REG_GbBIAS 0x28 -//#define REG_RSVD 0x29 -#define REG_EXHCH 0x2A -#define REG_EXHCL 0x2B -#define REG_RBIAS 0x2C -#define REG_ADVFL 0x2D -#define REG_ADVFH 0x2E -#define REG_YAVE 0x2F -#define REG_HSYST 0x30 -#define REG_HSYEN 0x31 -#define REG_HREF 0x32 -#define REG_CHLF 0x33 -#define REG_ARBLM 0x34 -//#define REG_RSVD 0x35 -//#define REG_RSVD 0x36 -#define REG_ADC 0x37 -#define REG_ACOM 0x38 -#define REG_OFON 0x39 -#define REG_TSLB 0x3A -#define REG_COM11 0x3B -#define REG_COM12 0x3C -#define REG_COM13 0x3D -#define REG_COM14 0x3E -#define REG_EDGE 0x3F -#define REG_COM15 0x40 -#define REG_COM16 0x41 -#define REG_COM17 0x42 -#define REG_AWBC1 0x43 -#define REG_AWBC2 0x44 -#define REG_AWBC3 0x45 -#define REG_AWBC4 0x46 -#define REG_AWBC5 0x47 -#define REG_AWBC6 0x48 -//#define REG_RSVD 0x49 -//#define REG_RSVD 0x4A -#define REG_REG4B 0x4B -#define REG_DNSTH 0x4C -//#define REG_RSVD 0x4D -//#define REG_RSVD 0x4E -#define REG_MTX1 0x4F -#define REG_MTX2 0x50 -#define REG_MTX3 0x51 -#define REG_MTX4 0x52 -#define REG_MTX5 0x53 -#define REG_MTX6 0x54 -#define REG_BRIGHT 0x55 -#define REG_CONTRAS 0x56 -#define REG_CONTRASCENTER 0x57 -#define REG_MTXS 0x58 -//#define REG_RSVD 0x59 -//#define REG_RSVD 0x5A -//#define REG_RSVD 0x5B -//#define REG_RSVD 0x5C -//#define REG_RSVD 0x5D -//#define REG_RSVD 0x5E -//#define REG_RSVD 0x5F -//#define REG_RSVD 0x60 -//#define REG_RSVD 0x61 -#define REG_LCC1 0x62 -#define REG_LCC2 0x63 -#define REG_LCC3 0x64 -#define REG_LCC4 0x65 -#define REG_LCC5 0x66 -#define REG_MANU 0x67 -#define REG_MANV 0x68 -#define REG_GFIX 0x69 -#define REG_GGAIN 0x6A -#define REG_DBLV 0x6B -#define REG_AWBCTR3 0x6C -#define REG_AWBCTR2 0x6D -#define REG_AWBCTR1 0x6E -#define REG_AWBCTR0 0x6F -#define REG_SCALING_XSC 0x70 -#define REG_SCALING_YSC 0x71 -#define REG_SCALING_DCWCTR 0x72 -#define REG_SCALING_PCLK_DIV 0x73 -#define REG_REG74 0x74 -#define REG_REG75 0x75 -#define REG_REG76 0x76 -#define REG_REG77 0x77 -//#define REG_RSVD 0x78 -//#define REG_RSVD 0x79 -#define REG_SLOP 0x7A -#define REG_GAM1 0x7B -#define REG_GAM2 0x7C -#define REG_GAM3 0x7D -#define REG_GAM4 0x7E -#define REG_GAM5 0x7F -#define REG_GAM6 0x80 -#define REG_GAM7 0x81 -#define REG_GAM8 0x82 -#define REG_GAM9 0x83 -#define REG_GAM10 0x84 -#define REG_GAM11 0x85 -#define REG_GAM12 0x86 -#define REG_GAM13 0x87 -#define REG_GAM14 0x88 -#define REG_GAM15 0x89 -//#define REG_RSVD 0x8A -//#define REG_RSVD 0x8B -#define REG_RGB444 0x8C -//#define REG_RSVD 0x8D -//#define REG_RSVD 0x8E -//#define REG_RSVD 0x8F -//#define REG_RSVD 0x90 -//#define REG_RSVD 0x91 -#define REG_DM_LNL 0x92 -#define REG_DM_LNH 0x93 -#define REG_LCC6 0x94 -#define REG_LCC7 0x95 -//#define REG_RSVD 0x96 -//#define REG_RSVD 0x97 -//#define REG_RSVD 0x98 -//#define REG_RSVD 0x99 -//#define REG_RSVD 0x9A -//#define REG_RSVD 0x9B -//#define REG_RSVD 0x9C -#define REG_BD50ST 0x9D -#define REG_BD60ST 0x9E -#define REG_HAECC1 0x9F -#define REG_HAECC2 0xA0 -//#define REG_RSVD 0xA1 -#define REG_SCALING_PCLK_DELAY 0xA2 -//#define REG_RSVD 0xA3 -#define REG_NT_CTRL 0xA4 -#define REG_BD50MAX 0xA5 - -#define REG_HAECC3 0xA6 -#define REG_HAECC4 0xA7 -#define REG_HAECC5 0xA8 -#define REG_HAECC6 0xA9 -#define REG_HAECC7 0xAA -#define REG_BD60MAX 0xAB -#define REG_STR_OPT 0xAC -#define REG_STR_R 0xAD -#define REG_STR_G 0xAE -#define REG_STR_B 0xAF -//#define REG_RSVD 0xB0 -#define REG_ABLC1 0xB1 -//#define REG_RSVD 0xB2 -#define REG_THL_ST 0xB3 -//#define REG_RSVD 0xB4 -#define REG_THL_DLT 0xB5 -//#define REG_RSVD 0xB6 -//#define REG_RSVD 0xB7 -//#define REG_RSVD 0xB8 -//#define REG_RSVD 0xBC -//#define REG_RSVD 0xBD -#define REG_AD_CHB 0xBE -#define REG_AD_CHR 0xBF -#define REG_AD_CHGb 0xC0 -#define REG_AD_CHGr 0xC1 -//#define REG_RSVD 0xC2 -//#define REG_RSVD 0xC3 -//#define REG_RSVD 0xC4 -//#define REG_RSVD 0xC5 -//#define REG_RSVD 0xC6 -//#define REG_RSVD 0xC7 -//#define REG_RSVD 0xC8 -#define REG_SATCTR 0xC9 - - -/* Registers bit definition */ -/* COM1 Register */ -#define CCIR656_FORMAT 0x40 /* CCIR656 enable */ -#define HREF_SKIP_0 0x00 -#define HREF_SKIP_1 0x04 -#define HREF_SKIP_3 0x08 - -/* COM2 Register */ -#define COM2_SOFT_SLEEP_MODE 0x10 -#define COM2_ODCAP_1x 0x00 -#define COM2_ODCAP_2x 0x01 -#define COM2_ODCAP_3x 0x02 -#define COM2_ODCAP_4x 0x03 - -/* COM3 Register */ -#define COM3_COLOR_BAR_OUTPUT 0x80 -#define COM3_OUTPUT_MSB_LAS_SWAP 0x40 -#define COM3_PIN_REMAP_RESETB_EXPST 0x08 -#define COM3_RGB565_FORMAT 0x00 -#define COM3_RGB_OUTPUT_AVERAGE 0x04 -#define COM3_SINGLE_FRAME 0x01 -#define COM3_SET_MIRROR(r, x) ((r&0xBF)|((x&1) << 6)) -#define COM3_GET_MIRROR(r) ((r>>6)&1) - -/* COM5 Register */ -#define SLAM_MODE_ENABLE 0x40 -#define EXPOSURE_NORMAL_MODE 0x01 - -/* COM7 Register */ -#define SCCB_REG_RESET 0x80 -#define FORMAT_CTRL_15fpsVGA 0x00 -#define FORMAT_CTRL_30fpsVGA_NoVArioPixel 0x50 -#define FORMAT_CTRL_30fpsVGA_VArioPixel 0x60 -#define OUTPUT_FORMAT_RAWRGB 0x00 -#define OUTPUT_FORMAT_RAWRGB_DATA 0x00 -#define OUTPUT_FORMAT_RAWRGB_INTERP 0x01 -#define OUTPUT_FORMAT_YUV 0x02 -#define OUTPUT_FORMAT_RGB 0x03 - -/* COM9 Register */ -#define COM9_GAIN_2x 0x00 -#define COM9_GAIN_4x 0x10 -#define COM9_GAIN_8x 0x20 -#define COM9_GAIN_16x 0x30 -#define COM9_GAIN_32x 0x40 -#define COM9_GAIN_64x 0x50 -#define COM9_GAIN_128x 0x60 -#define COM9_DROP_VSYNC 0x04 -#define COM9_DROP_HREF 0x02 -#define COM9_SET_AGC(r, x) ((r&0x8F)|((x&0x07) << 4)) - -/* COM10 Register */ -#define RESETb_REMAP_SLHS 0x80 -#define HREF_CHANGE_HSYNC 0x40 -#define PCLK_ON 0x00 -#define PCLK_OFF 0x20 -#define PCLK_POLARITY_REV 0x10 -#define HREF_POLARITY_REV 0x08 -#define RESET_ENDPOINT 0x04 -#define VSYNC_NEG 0x02 -#define HSYNC_NEG 0x01 - -/* TSLB Register */ -#define PCLK_DELAY_0 0x00 -#define PCLK_DELAY_2 0x40 -#define PCLK_DELAY_4 0x80 -#define PCLK_DELAY_6 0xC0 -#define OUTPUT_BITWISE_REV 0x20 -#define UV_NORMAL 0x00 -#define UV_FIXED 0x10 -#define YUV_SEQ_YUYV 0x00 -#define YUV_SEQ_YVYU 0x02 -#define YUV_SEQ_VYUY 0x04 -#define YUV_SEQ_UYVY 0x06 -#define BANDING_FREQ_50 0x02 - -#define RGB_NORMAL 0x00 -#define RGB_565 0x10 -#define RGB_555 0x30 - - -#define COM1_CCIR656 0x40 /* CCIR656 enable */ -#define COM2_SSLEEP 0x10 /* Soft sleep mode */ -#define COM3_SWAP 0x40 /* Byte swap */ -#define COM3_SCALEEN 0x08 /* Enable scaling */ -#define COM3_DCWEN 0x04 /* Enable downsamp/crop/window */ -#define CLK_EXT 0x40 /* Use external clock directly */ -#define CLK_SCALE 0x3f /* Mask for internal clock scale */ -#define COM7_RESET 0x80 /* Register reset */ -#define COM7_FMT_MASK 0x38 -#define COM7_FMT_VGA 0x00 -#define COM7_FMT_CIF 0x20 /* CIF format */ -#define COM7_FMT_QVGA 0x10 /* QVGA format */ -#define COM7_FMT_QCIF 0x08 /* QCIF format */ -#define COM7_RGB 0x04 /* bits 0 and 2 - RGB format */ -#define COM7_YUV 0x00 /* YUV */ -#define COM7_BAYER 0x01 /* Bayer format */ -#define COM7_PBAYER 0x05 /* "Processed bayer" */ -#define COM8_FASTAEC 0x80 /* Enable fast AGC/AEC */ -#define COM8_AECSTEP 0x40 /* Unlimited AEC step size */ -#define COM8_BFILT 0x20 /* Band filter enable */ -#define COM8_AGC 0x04 /* Auto gain enable */ -#define COM8_AWB 0x02 /* White balance enable */ -#define COM8_AEC 0x01 /* Auto exposure enable */ -#define COM10_HSYNC 0x40 /* HSYNC instead of HREF */ -#define COM10_PCLK_HB 0x20 /* Suppress PCLK on horiz blank */ -#define COM10_HREF_REV 0x08 /* Reverse HREF */ -#define COM10_VS_LEAD 0x04 /* VSYNC on clock leading edge */ -#define COM10_VS_NEG 0x02 /* VSYNC negative */ -#define COM10_HS_NEG 0x01 /* HSYNC negative */ -#define MVFP_MIRROR 0x20 /* Mirror image */ -#define MVFP_FLIP 0x10 /* Vertical flip */ - -#define TSLB_YLAST 0x04 /* UYVY or VYUY - see com13 */ -#define COM11_NIGHT 0x80 /* NIght mode enable */ -#define COM11_NMFR 0x60 /* Two bit NM frame rate */ -#define COM11_HZAUTO 0x10 /* Auto detect 50/60 Hz */ -#define COM11_50HZ 0x08 /* Manual 50Hz select */ -#define COM11_EXP 0x02 -#define COM12_HREF 0x80 /* HREF always */ -#define COM13_GAMMA 0x80 /* Gamma enable */ -#define COM13_UVSAT 0x40 /* UV saturation auto adjustment */ -#define COM13_UVSWAP 0x01 /* V before U - w/TSLB */ -#define COM14_DCWEN 0x10 /* DCW/PCLK-scale enable */ -#define COM15_R10F0 0x00 /* Data range 10 to F0 */ -#define COM15_R01FE 0x80 /* 01 to FE */ -#define COM15_R00FF 0xc0 /* 00 to FF */ -#define COM15_RGB565 0x10 /* RGB565 output */ -#define COM15_RGB555 0x30 /* RGB555 output */ -#define COM16_AWBGAIN 0x08 /* AWB gain enable */ -#define COM17_AECWIN 0xc0 /* AEC window - must match COM4 */ -#define COM17_CBAR 0x08 /* DSP Color bar */ -/* - * This matrix defines how the colors are generated, must be - * tweaked to adjust hue and saturation. - * - * Order: v-red, v-green, v-blue, u-red, u-green, u-blue - * They are nine-bit signed quantities, with the sign bit - * stored in0x58.Sign for v-red is bit 0, and up from there. - */ -#define CMATRIX_LEN 6 -#define R76_BLKPCOR 0x80 /* Black pixel correction enable */ -#define R76_WHTPCOR 0x40 /* White pixel correction enable */ -#define R444_ENABLE 0x02 /* Turn on RGB444, overrides 5x5 */ -#define R444_RGBX 0x01 /* Empty nibble at end */ -#define COM7_FMT_CIF 0x20 /* CIF format */ -#define COM7_RGB 0x04 /* bits 0 and 2 - RGB format */ -#define COM7_YUV 0x00 /* YUV */ -#define COM7_BAYER 0x01 /* Bayer format */ -#define COM7_PBAYER 0x05 /* "Processed bayer" */ -#define COM10_VS_LEAD 0x04 /* VSYNC on clock leading edge */ -#define COM11_50HZ 0x08 /* Manual 50Hz select */ -#define COM13_UVSAT 0x40 /* UV saturation auto adjustment */ -#define COM15_R01FE 0x80 /* 01 to FE */ -#define MTX1 0x4f /* Matrix Coefficient 1 */ -#define MTX2 0x50 /* Matrix Coefficient 2 */ -#define MTX3 0x51 /* Matrix Coefficient 3 */ -#define MTX4 0x52 /* Matrix Coefficient 4 */ -#define MTX5 0x53 /* Matrix Coefficient 5 */ -#define MTX6 0x54 /* Matrix Coefficient 6 */ -#define MTXS 0x58 /* Matrix Coefficient Sign */ -#define AWBC7 0x59 /* AWB Control 7 */ -#define AWBC8 0x5a /* AWB Control 8 */ -#define AWBC9 0x5b /* AWB Control 9 */ -#define AWBC10 0x5c /* AWB Control 10 */ -#define AWBC11 0x5d /* AWB Control 11 */ -#define AWBC12 0x5e /* AWB Control 12 */ -#define GGAIN 0x6a /* G Channel AWB Gain */ -#define DBLV 0x6b -#define AWBCTR3 0x6c /* AWB Control 3 */ -#define AWBCTR2 0x6d /* AWB Control 2 */ -#define AWBCTR1 0x6e /* AWB Control 1 */ -#define AWBCTR0 0x6f /* AWB Control 0 */ - -#endif // (ACTIVE_CAMERA == CAM_OV7670) - -#endif // EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV7670_REGS_H_ diff --git a/Examples/MAX32572/CameraIF/include/ov7725_regs.h b/Examples/MAX32572/CameraIF/include/ov7725_regs.h deleted file mode 100644 index 58a76b90edc..00000000000 --- a/Examples/MAX32572/CameraIF/include/ov7725_regs.h +++ /dev/null @@ -1,352 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV7725 register definitions. - */ - -#ifndef EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV7725_REGS_H_ -#define EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV7725_REGS_H_ - -#if (ACTIVE_CAMERA == CAM_OV7725) - -#define GAIN 0x00 /* AGC - Gain control gain setting */ -#define BLUE 0x01 /* AWB - Blue channel gain setting */ -#define RED 0x02 /* AWB - Red channel gain setting */ -#define GREEN 0x03 /* AWB - Green channel gain setting */ -#define BAVG 0x05 /* U/B Average Level */ -#define GAVG 0x06 /* Y/Gb Average Level */ -#define RAVG 0x07 /* V/R Average Level */ -#define AECH 0x08 /* Exposure Value - AEC MSBs */ - -#define COM2 0x09 /* Common Control 2 */ -#define COM2_SOFT_SLEEP 0x10 /* Soft sleep mode */ -#define COM2_OUT_DRIVE_1x 0x00 /* Output drive capability 1x */ -#define COM2_OUT_DRIVE_2x 0x01 /* Output drive capability 2x */ -#define COM2_OUT_DRIVE_3x 0x02 /* Output drive capability 3x */ -#define COM2_OUT_DRIVE_4x 0x03 /* Output drive capability 4x */ - -#define PID 0x0A /* Product ID Number MSB */ -#define VER 0x0B /* Product ID Number LSB */ - -#define COM3 0x0C /* Common Control 3 */ -#define COM3_VFLIP 0x80 /* Vertical flip image ON/OFF selection */ -#define COM3_MIRROR 0x40 /* Horizontal mirror image ON/OFF selection */ -#define COM3_SWAP_BR 0x20 /* Swap B/R output sequence in RGB output mode */ -#define COM3_SWAP_YUV 0x10 /* Swap Y/UV output sequence in YUV output mode */ -#define COM3_SWAP_MSB 0x08 /* Swap output MSB/LSB */ -#define COM3_TRI_CLOCK 0x04 /* Tri-state option for output clock at power-down period */ -#define COM3_TRI_DATA 0x02 /* Tri-state option for output data at power-down period */ -#define COM3_COLOR_BAR 0x01 /* Sensor color bar test pattern output enable */ -#define COM3_SET_CBAR(r, x) ((r&0xFE)|((x&1) << 0)) -#define COM3_SET_MIRROR(r, x) ((r&0xBF)|((x&1) << 6)) -#define COM3_SET_FLIP(r, x) ((r&0x7F)|((x&1) << 7)) -#define COM3_GET_CBAR(r) ((r>>0)&1) -#define COM3_GET_MIRROR(r) ((r>>6)&1) -#define COM3_GET_FLIP(r) ((r>>7)&1) - -#define COM4 0x0D /* Common Control 4 */ -#define COM4_PLL_BYPASS 0x00 /* Bypass PLL */ -#define COM4_PLL_4x 0x40 /* PLL frequency 4x */ -#define COM4_PLL_6x 0x80 /* PLL frequency 6x */ -#define COM4_PLL_8x 0xC0 /* PLL frequency 8x */ -#define COM4_AEC_FULL 0x00 /* AEC evaluate full window */ -#define COM4_AEC_1_2 0x10 /* AEC evaluate 1/2 window */ -#define COM4_AEC_1_4 0x20 /* AEC evaluate 1/4 window */ -#define COM4_AEC_2_3 0x30 /* AEC evaluate 2/3 window */ -#define COM4_GET_PLL(r) (r&0xC0) - -#define COM5 0x0E /* Common Control 5 */ -#define COM5_AFR 0x80 /* Auto frame rate control ON/OFF selection (night mode) */ -#define COM5_AFR_SPEED 0x40 /* Auto frame rate control speed selection */ -#define COM5_AFR_0 0x00 /* No reduction of frame rate */ -#define COM5_AFR_1_2 0x10 /* Max reduction to 1/2 frame rate */ -#define COM5_AFR_1_4 0x20 /* Max reduction to 1/4 frame rate */ -#define COM5_AFR_1_8 0x30 /* Max reduction to 1/8 frame rate */ -#define COM5_AFR_4x 0x04 /* Add frame when AGC reaches 4x gain */ -#define COM5_AFR_8x 0x08 /* Add frame when AGC reaches 8x gain */ -#define COM5_AFR_16x 0x0c /* Add frame when AGC reaches 16x gain */ -#define COM5_AEC_NO_LIMIT 0x01 /* No limit to AEC increase step */ - -#define COM6 0x0F /* Common Control 6 */ -#define COM6_AUTO_WINDOW 0x01 /* Auto window setting ON/OFF selection when format changes */ - -#define AEC 0x10 /* AEC[7:0] (see register AECH for AEC[15:8]) */ - -#define CLKRC 0x11 /* Internal Clock */ -#define CLKRC_NO_PRESCALE 0x40 /* Use external clock directly */ -#define CLKRC_PRESCALER 0x3F /* Internal clock pre-scaler */ - -#define COM7 0x12 /* Common Control 7 */ -#define COM7_RESET 0x80 /* SCCB Register Reset */ -#define COM7_RES_VGA 0x00 /* Resolution VGA */ -#define COM7_RES_QVGA 0x40 /* Resolution QVGA */ -#define COM7_BT656 0x20 /* BT.656 protocol ON/OFF */ -#define COM7_SENSOR_RAW 0x10 /* Sensor RAW */ -#define COM7_FMT_GBR422 0x00 /* RGB output format GBR422 */ -#define COM7_FMT_RGB565 0x04 /* RGB output format RGB565 */ -#define COM7_FMT_RGB555 0x08 /* RGB output format RGB555 */ -#define COM7_FMT_RGB444 0x0C /* RGB output format RGB444 */ -#define COM7_FMT_YUV 0x00 /* Output format YUV */ -#define COM7_FMT_P_BAYER 0x01 /* Output format Processed Bayer RAW */ -#define COM7_FMT_RGB 0x02 /* Output format RGB */ -#define COM7_FMT_R_BAYER 0x03 /* Output format Bayer RAW */ -#define COM7_SET_FMT(r, x) ((r&0xFC)|((x&0x3) << 0)) -#define COM7_SET_RES(r, x) ((r&0xBF)|(x)) -#define COM7_GET_FMT(r) (r&0x03) - -#define COM8 0x13 /* Common Control 8 */ -#define COM8_FAST_AUTO 0x80 /* Enable fast AGC/AEC algorithm */ -#define COM8_STEP_VSYNC 0x00 /* AEC - Step size limited to vertical blank */ -#define COM8_STEP_UNLIMIT 0x40 /* AEC - Step size unlimited step size */ -#define COM8_BANDF_EN 0x20 /* Banding filter ON/OFF */ -#define COM8_AEC_BANDF 0x10 /* Enable AEC below banding value */ -#define COM8_AEC_FINE_EN 0x08 /* Fine AEC ON/OFF control */ -#define COM8_AGC_EN 0x04 /* AGC Enable */ -#define COM8_AWB_EN 0x02 /* AWB Enable */ -#define COM8_AEC_EN 0x01 /* AEC Enable */ -#define COM8_SET_AGC(r, x) ((r&0xFB)|((x&0x1) << 2)) -#define COM8_SET_AWB(r, x) ((r&0xFD)|((x&0x1) << 1)) -#define COM8_SET_AEC(r, x) ((r&0x7E)|((x&0x1) << 7)|((x&0x1) << 0)) - -#define COM9 0x14 /* Common Control 9 */ -#define COM9_HISTO_AVG 0x80 /* Histogram or average based AEC/AGC selection */ -#define COM9_AGC_GAIN_2x 0x00 /* Automatic Gain Ceiling 2x */ -#define COM9_AGC_GAIN_4x 0x10 /* Automatic Gain Ceiling 4x */ -#define COM9_AGC_GAIN_8x 0x20 /* Automatic Gain Ceiling 8x */ -#define COM9_AGC_GAIN_16x 0x30 /* Automatic Gain Ceiling 16x */ -#define COM9_AGC_GAIN_32x 0x40 /* Automatic Gain Ceiling 32x */ -#define COM9_DROP_VSYNC 0x04 /* Drop VSYNC output of corrupt frame */ -#define COM9_DROP_HREF 0x02 /* Drop HREF output of corrupt frame */ -#define COM9_SET_AGC(r, x) ((r&0x8F)|((x&0x07) << 4)) - -#define COM10 0x15 /* Common Control 10 */ -#define COM10_NEGATIVE 0x80 /* Output negative data */ -#define COM10_HSYNC_EN 0x40 /* HREF changes to HSYNC */ -#define COM10_PCLK_FREE 0x00 /* PCLK output option: free running PCLK */ -#define COM10_PCLK_MASK 0x20 /* PCLK output option: masked during horizontal blank */ -#define COM10_PCLK_REV 0x10 /* PCLK reverse */ -#define COM10_HREF_REV 0x08 /* HREF reverse */ -#define COM10_VSYNC_FALLING 0x00 /* VSYNC changes on falling edge of PCLK */ -#define COM10_VSYNC_RISING 0x04 /* VSYNC changes on rising edge of PCLK */ -#define COM10_VSYNC_NEG 0x02 /* VSYNC negative */ -#define COM10_OUT_RANGE_8 0x01 /* Output data range: Full range */ -#define COM10_OUT_RANGE_10 0x00 /* Output data range: Data from [10] to [F0] (8 MSBs) */ - -#define REG16 0x16 /* Register 16 */ -#define REG16_BIT_SHIFT 0x80 /* Bit shift test pattern options */ - -#define HSTART 0x17 /* Horizontal Frame (HREF column) Start 8 MSBs (2 LSBs are at HREF[5:4]) */ -#define HSIZE 0x18 /* Horizontal Sensor Size (2 LSBs are at HREF[1:0]) */ -#define VSTART 0x19 /* Vertical Frame (row) Start 8 MSBs (1 LSB is at HREF[6]) */ -#define VSIZE 0x1A /* Vertical Sensor Size (1 LSB is at HREF[2]) */ -#define PSHFT 0x1B /* Data Format - Pixel Delay Select */ -#define MIDH 0x1C /* Manufacturer ID Byte - High */ -#define MIDL 0x1D /* Manufacturer ID Byte - Low */ -#define LAEC 0x1F /* Fine AEC Value - defines exposure value less than one row period */ - -#define COM11 0x20 /* Common Control 11 */ -#define COM11_SNGL_FRAME_EN 0x02 /* Single frame ON/OFF selection */ -#define COM11_SNGL_XFR_TRIG 0x01 /* Single frame transfer trigger */ - -#define BDBASE 0x22 /* Banding Filter Minimum AEC Value */ -#define BDSTEP 0x23 /* Banding Filter Maximum Step */ -#define AEW 0x24 /* AGC/AEC - Stable Operating Region (Upper Limit) */ -#define AEB 0x25 /* AGC/AEC - Stable Operating Region (Lower Limit) */ -#define VPT 0x26 /* AGC/AEC Fast Mode Operating Region */ -#define REG28 0x28 /* Selection on the number of dummy rows, N */ -#define HOUTSIZE 0x29 /* Horizontal Data Output Size MSBs (2 LSBs at register EXHCH[1:0]) */ -#define EXHCH 0x2A /* Dummy Pixel Insert MSB */ -#define EXHCL 0x2B /* Dummy Pixel Insert LSB */ -#define VOUTSIZE 0x2C /* Vertical Data Output Size MSBs (LSB at register EXHCH[2]) */ -#define ADVFL 0x2D /* LSB of Insert Dummy Rows in Vertical Sync (1 bit equals 1 row) */ -#define ADVFH 0x2E /* MSB of Insert Dummy Rows in Vertical Sync */ -#define YAVE 0x2F /* Y/G Channel Average Value */ -#define LUMHTH 0x30 /* Histogram AEC/AGC Luminance High Level Threshold */ -#define LUMLTH 0x31 /* Histogram AEC/AGC Luminance Low Level Threshold */ -#define HREF 0x32 /* Image Start and Size Control */ -#define DM_LNL 0x33 /* Dummy Row Low 8 Bits */ -#define DM_LNH 0x34 /* Dummy Row High 8 Bits */ -#define ADOFF_B 0x35 /* AD Offset Compensation Value for B Channel */ -#define ADOFF_R 0x36 /* AD Offset Compensation Value for R Channel */ -#define ADOFF_GB 0x37 /* AD Offset Compensation Value for GB Channel */ -#define ADOFF_GR 0x38 /* AD Offset Compensation Value for GR Channel */ -#define OFF_B 0x39 /* AD Offset Compensation Value for B Channel */ -#define OFF_R 0x3A /* AD Offset Compensation Value for R Channel */ -#define OFF_GB 0x3B /* AD Offset Compensation Value for GB Channel */ -#define OFF_GR 0x3C /* AD Offset Compensation Value for GR Channel */ - -#define COM12 0x3D /* DC offset compensation for analog process */ - -#define COM13 0x3E /* Common Control 13 */ -#define COM13_BLC_EN 0x80 /* BLC enable */ -#define COM13_ADC_EN 0x40 /* ADC channel BLC ON/OFF control */ -#define COM13_ANALOG_BLC 0x20 /* Analog processing channel BLC ON/OFF control */ -#define COM13_ABLC_GAIN_EN 0x04 /* ABLC gain trigger enable */ - -#define COM14 0x3F /* Common Control 14 */ -#define COM15 0x40 /* Common Control 15 */ -#define COM16 0x41 /* Common Control 16 */ -#define TGT_B 0x42 /* BLC Blue Channel Target Value */ -#define TGT_R 0x43 /* BLC Red Channel Target Value */ -#define TGT_GB 0x44 /* BLC Gb Channel Target Value */ -#define TGT_GR 0x45 /* BLC Gr Channel Target Value */ - -#define LC_CTR 0x46 /* Lens Correction Control */ -#define LC_CTR_RGB_COMP_1 0x00 /* R, G, and B channel compensation coefficient is set by LC_COEF (0x49) */ -#define LC_CTR_RGB_COMP_3 0x04 /* R, G, and B channel compensation coefficient is set by registers */ - /* LC_COEFB (0x4B), LC_COEF (0x49), and LC_COEFR (0x4C), respectively */ -#define LC_CTR_EN 0x01 /* Lens correction enable */ -#define LC_XC 0x47 /* X Coordinate of Lens Correction Center Relative to Array Center */ -#define LC_YC 0x48 /* Y Coordinate of Lens Correction Center Relative to Array Center */ -#define LC_COEF 0x49 /* Lens Correction Coefficient */ -#define LC_RADI 0x4A /* Lens Correction Radius */ -#define LC_COEFB 0x4B /* Lens Correction B Channel Compensation Coefficient */ -#define LC_COEFR 0x4C /* Lens Correction R Channel Compensation Coefficient */ - -#define FIXGAIN 0x4D /* Analog Fix Gain Amplifier */ -#define AREF0 0x4E /* Sensor Reference Control */ -#define AREF1 0x4F /* Sensor Reference Current Control */ -#define AREF2 0x50 /* Analog Reference Control */ -#define AREF3 0x51 /* ADC Reference Control */ -#define AREF4 0x52 /* ADC Reference Control */ -#define AREF5 0x53 /* ADC Reference Control */ -#define AREF6 0x54 /* Analog Reference Control */ -#define AREF7 0x55 /* Analog Reference Control */ -#define UFIX 0x60 /* U Channel Fixed Value Output */ -#define VFIX 0x61 /* V Channel Fixed Value Output */ -#define AWBB_BLK 0x62 /* AWB Option for Advanced AWB */ - -#define AWB_CTRL0 0x63 /* AWB Control Byte 0 */ -#define AWB_CTRL0_GAIN_EN 0x80 /* AWB gain enable */ -#define AWB_CTRL0_CALC_EN 0x40 /* AWB calculate enable */ -#define AWB_CTRL0_WBC_MASK 0x0F /* WBC threshold 2 */ - -#define DSP_CTRL1 0x64 /* DSP Control Byte 1 */ -#define DSP_CTRL1_FIFO_EN 0x80 /* FIFO enable/disable selection */ -#define DSP_CTRL1_UV_EN 0x40 /* UV adjust function ON/OFF selection */ -#define DSP_CTRL1_SDE_EN 0x20 /* SDE enable */ -#define DSP_CTRL1_MTRX_EN 0x10 /* Color matrix ON/OFF selection */ -#define DSP_CTRL1_INTRP_EN 0x08 /* Interpolation ON/OFF selection */ -#define DSP_CTRL1_GAMMA_EN 0x04 /* Gamma function ON/OFF selection */ -#define DSP_CTRL1_BLACK_EN 0x02 /* Black defect auto correction ON/OFF */ -#define DSP_CTRL1_WHITE_EN 0x01 /* White defect auto correction ON/OFF */ - -#define DSP_CTRL2 0x65 /* DSP Control Byte 2 */ -#define DSP_CTRL2_VDCW_EN 0x08 /* Vertical DCW enable */ -#define DSP_CTRL2_HDCW_EN 0x04 /* Horizontal DCW enable */ -#define DSP_CTRL2_VZOOM_EN 0x02 /* Vertical zoom out enable */ -#define DSP_CTRL2_HZOOM_EN 0x01 /* Horizontal zoom out enable */ - -#define DSP_CTRL3 0x66 /* DSP Control Byte 3 */ -#define DSP_CTRL3_UV_EN 0x80 /* UV output sequence option */ -#define DSP_CTRL3_CBAR_EN 0x20 /* DSP color bar ON/OFF selection */ -#define DSP_CTRL3_FIFO_EN 0x08 /* FIFO power down ON/OFF selection */ -#define DSP_CTRL3_SCAL1_PWDN 0x04 /* Scaling module power down control 1 */ -#define DSP_CTRL3_SCAL2_PWDN 0x02 /* Scaling module power down control 2 */ -#define DSP_CTRL3_INTRP_PWDN 0x01 /* Interpolation module power down control */ -#define DSP_CTRL3_SET_CBAR(r, x) ((r&0xDF)|((x&1) << 5)) - -#define DSP_CTRL4 0x67 /* DSP Control Byte 4 */ -#define DSP_CTRL4_YUV_RGB 0x00 /* Output selection YUV or RGB */ -#define DSP_CTRL4_RAW8 0x02 /* Output selection RAW8 */ -#define DSP_CTRL4_RAW10 0x03 /* Output selection RAW10 */ - -#define AWB_BIAS 0x68 /* AWB BLC Level Clip */ -#define AWB_CTRL1 0x69 /* AWB Control 1 */ -#define AWB_CTRL2 0x6A /* AWB Control 2 */ - -#define AWB_CTRL3 0x6B /* AWB Control 3 */ -#define AWB_CTRL3_ADVANCED 0x80 /* AWB mode select - Advanced AWB */ -#define AWB_CTRL3_SIMPLE 0x00 /* AWB mode select - Simple AWB */ - -#define AWB_CTRL4 0x6C /* AWB Control 4 */ -#define AWB_CTRL5 0x6D /* AWB Control 5 */ -#define AWB_CTRL6 0x6E /* AWB Control 6 */ -#define AWB_CTRL7 0x6F /* AWB Control 7 */ -#define AWB_CTRL8 0x70 /* AWB Control 8 */ -#define AWB_CTRL9 0x71 /* AWB Control 9 */ -#define AWB_CTRL10 0x72 /* AWB Control 10 */ -#define AWB_CTRL11 0x73 /* AWB Control 11 */ -#define AWB_CTRL12 0x74 /* AWB Control 12 */ -#define AWB_CTRL13 0x75 /* AWB Control 13 */ -#define AWB_CTRL14 0x76 /* AWB Control 14 */ -#define AWB_CTRL15 0x77 /* AWB Control 15 */ -#define AWB_CTRL16 0x78 /* AWB Control 16 */ -#define AWB_CTRL17 0x79 /* AWB Control 17 */ -#define AWB_CTRL18 0x7A /* AWB Control 18 */ -#define AWB_CTRL19 0x7B /* AWB Control 19 */ -#define AWB_CTRL20 0x7C /* AWB Control 20 */ -#define AWB_CTRL21 0x7D /* AWB Control 21 */ -#define GAM1 0x7E /* Gamma Curve 1st Segment Input End Point 0x04 Output Value */ -#define GAM2 0x7F /* Gamma Curve 2nd Segment Input End Point 0x08 Output Value */ -#define GAM3 0x80 /* Gamma Curve 3rd Segment Input End Point 0x10 Output Value */ -#define GAM4 0x81 /* Gamma Curve 4th Segment Input End Point 0x20 Output Value */ -#define GAM5 0x82 /* Gamma Curve 5th Segment Input End Point 0x28 Output Value */ -#define GAM6 0x83 /* Gamma Curve 6th Segment Input End Point 0x30 Output Value */ -#define GAM7 0x84 /* Gamma Curve 7th Segment Input End Point 0x38 Output Value */ -#define GAM8 0x85 /* Gamma Curve 8th Segment Input End Point 0x40 Output Value */ -#define GAM9 0x86 /* Gamma Curve 9th Segment Input Enpd Point 0x48 Output Value */ -#define GAM10 0x87 /* Gamma Curve 10th Segment Input End Point 0x50 Output Value */ -#define GAM11 0x88 /* Gamma Curve 11th Segment Input End Point 0x60 Output Value */ -#define GAM12 0x89 /* Gamma Curve 12th Segment Input End Point 0x70 Output Value */ -#define GAM13 0x8A /* Gamma Curve 13th Segment Input End Point 0x90 Output Value */ -#define GAM14 0x8B /* Gamma Curve 14th Segment Input End Point 0xB0 Output Value */ -#define GAM15 0x8C /* Gamma Curve 15th Segment Input End Point 0xD0 Output Value */ -#define SLOP 0x8D /* Gamma Curve Highest Segment Slope */ -#define DNSTH 0x8E /* De-noise Threshold */ -#define EDGE0 0x8F /* Edge Enhancement Strength Control */ -#define EDGE1 0x90 /* Edge Enhancement Threshold Control */ -#define DNSOFF 0x91 /* Auto De-noise Threshold Control */ -#define EDGE2 0x92 /* Edge Enhancement Strength Upper Limit */ -#define EDGE3 0x93 /* Edge Enhancement Strength Upper Limit */ -#define MTX1 0x94 /* Matrix Coefficient 1 */ -#define MTX2 0x95 /* Matrix Coefficient 2 */ -#define MTX3 0x96 /* Matrix Coefficient 3 */ -#define MTX4 0x97 /* Matrix Coefficient 4 */ -#define MTX5 0x98 /* Matrix Coefficient 5 */ -#define MTX6 0x99 /* Matrix Coefficient 6 */ - -#define MTX_CTRL 0x9A /* Matrix Control */ -#define MTX_CTRL_DBL_EN 0x80 /* Matrix double ON/OFF selection */ - -#define BRIGHTNESS 0x9B /* Brightness Control */ -#define CONTRAST 0x9C /* Contrast Gain */ -#define UVADJ0 0x9E /* Auto UV Adjust Control 0 */ -#define UVADJ1 0x9F /* Auto UV Adjust Control 1 */ -#define SCAL0 0xA0 /* DCW Ratio Control */ -#define SCAL1 0xA1 /* Horizontal Zoom Out Control */ -#define SCAL2 0xA2 /* Vertical Zoom Out Control */ -#define FIFODLYM 0xA3 /* FIFO Manual Mode Delay Control */ -#define FIFODLYA 0xA4 /* FIFO Auto Mode Delay Control */ - -#define SDE 0xA6 /* Special Digital Effect Control */ -#define SDE_NEGATIVE_EN 0x40 /* Negative image enable */ -#define SDE_GRAYSCALE_EN 0x20 /* Gray scale image enable */ -#define SDE_V_FIXED_EN 0x10 /* V fixed value enable */ -#define SDE_U_FIXED_EN 0x08 /* U fixed value enable */ -#define SDE_CONT_BRIGHT_EN 0x04 /* Contrast/Brightness enable */ -#define SDE_SATURATION_EN 0x02 /* Saturation enable */ -#define SDE_HUE_EN 0x01 /* Hue enable */ - -#define USAT 0xA7 /* U Component Saturation Gain */ -#define VSAT 0xA8 /* V Component Saturation Gain */ -#define HUECOS 0xA9 /* Cosine value × 0x80 */ -#define HUESIN 0xAA /* Sine value × 0x80 */ -#define SIGN_BIT 0xAB /* Sign Bit for Hue and Brightness */ - -#define DSPAUTO 0xAC /* DSP Auto Function ON/OFF Control */ -#define DSPAUTO_AWB_EN 0x80 /* AWB auto threshold control */ -#define DSPAUTO_DENOISE_EN 0x40 /* De-noise auto threshold control */ -#define DSPAUTO_EDGE_EN 0x20 /* Sharpness (edge enhancement) auto strength control */ -#define DSPAUTO_UV_EN 0x10 /* UV adjust auto slope control */ -#define DSPAUTO_SCAL0_EN 0x08 /* Auto scaling factor control (register SCAL0 (0xA0)) */ -#define DSPAUTO_SCAL1_EN 0x04 /* Auto scaling factor control (registers SCAL1 (0xA1 and SCAL2 (0xA2)) */ - -#endif // (ACTIVE_CAMERA == CAM_OV7725) - -#endif // EXAMPLES_MAX32572_CAMERAIF_INCLUDE_OV7725_REGS_H_ diff --git a/Examples/MAX32572/CameraIF/include/sccb.h b/Examples/MAX32572/CameraIF/include/sccb.h deleted file mode 100644 index 87afc760b93..00000000000 --- a/Examples/MAX32572/CameraIF/include/sccb.h +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_CAMERAIF_INCLUDE_SCCB_H_ -#define EXAMPLES_MAX32572_CAMERAIF_INCLUDE_SCCB_H_ - -#include - -int sccb_init(); -int sccb_scan(); -int sccb_read_byt(uint8_t slv_addr, uint8_t reg, uint8_t *byt); -int sccb_write_byt(uint8_t slv_addr, uint8_t reg, uint8_t byt); - -#endif // EXAMPLES_MAX32572_CAMERAIF_INCLUDE_SCCB_H_ diff --git a/Examples/MAX32572/CameraIF/include/utils.h b/Examples/MAX32572/CameraIF/include/utils.h deleted file mode 100644 index 0d7a07f3f88..00000000000 --- a/Examples/MAX32572/CameraIF/include/utils.h +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#ifndef EXAMPLES_MAX32572_CAMERAIF_INCLUDE_UTILS_H_ -#define EXAMPLES_MAX32572_CAMERAIF_INCLUDE_UTILS_H_ - -/***************************** INCLUDES *********************************/ -#include - -/***************************** MACROS *********************************/ - -/***************************** VARIABLES *********************************/ - -/***************************** FUNCTIONS *********************************/ -void utils_delay_ms(unsigned int ms); -unsigned int utils_get_time_ms(void); -void utils_hexDump(const char *title, unsigned char *buf, unsigned int len); -int utils_send_img_to_pc(uint8_t *img, uint32_t imgLen, int w, int h, uint8_t *pixelformat); - -#endif // EXAMPLES_MAX32572_CAMERAIF_INCLUDE_UTILS_H_ diff --git a/Examples/MAX32572/CameraIF/main.c b/Examples/MAX32572/CameraIF/main.c deleted file mode 100644 index c22c85357af..00000000000 --- a/Examples/MAX32572/CameraIF/main.c +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Paralel Camera Interface! - * - * @details This example uses the UART to print to a the image that capture by camera - */ - -/***** Includes *****/ -#include -#include - -#include - -#include "camera.h" -#include "utils.h" - -void process_img(void) -{ - uint8_t *raw; - uint32_t imgLen; - uint32_t w, h; - - camera_get_image(&raw, &imgLen, &w, &h); - - utils_send_img_to_pc(raw, imgLen, w, h, camera_get_pixel_format()); - - /* ... */ -} - -// ***************************************************************************** -int main(void) -{ - int ret = 0; - printf("\n************** Parallel Camera Interface Example !*************"); - printf("\n* EvKit RevA Requires Pull-up resistor for I2C line *"); - printf("\n* Remove R22 on EvKit RevA*"); - printf("\n* Connect P1.11 to P1.20!*"); - printf("\n* UART0 is used to debug"); - printf("\n* UART1 is used to send image bytes to pc\n"); - - // enable catch - MXC_ICC_Enable(); - - // To send image to PC - MXC_UART_Init(MXC_UART1, 460800); - - camera_init(); - printf("Camera Slave Addr: 0x%X\n", camera_get_id()); - camera_dump_registers(); - - camera_start_campture_image(); - - while (1) { - if (camera_is_image_rcv()) { - process_img(); - utils_delay_ms(2000); - camera_start_campture_image(); - } - } - - return ret; -} diff --git a/Examples/MAX32572/CameraIF/pc_utility/README b/Examples/MAX32572/CameraIF/pc_utility/README deleted file mode 100644 index 08a997e2552..00000000000 --- a/Examples/MAX32572/CameraIF/pc_utility/README +++ /dev/null @@ -1,8 +0,0 @@ -Python scripts can be used to grab images and convert it to .png on PC side -Existing codes was tested and work as expected, tested with python 3.7 -You may need to install png and serial and opencv python library on your machine. - -To grap camera output run: python grab_image.py -default baudrate is 460800, if you would like to change it do not forget update board side too. - -Usage: python grab_image.py COM42 460800 diff --git a/Examples/MAX32572/CameraIF/pc_utility/comManager.py b/Examples/MAX32572/CameraIF/pc_utility/comManager.py deleted file mode 100644 index ead6e236af8..00000000000 --- a/Examples/MAX32572/CameraIF/pc_utility/comManager.py +++ /dev/null @@ -1,116 +0,0 @@ -import serial -import time -import os -import sys -import string - -ser = serial.Serial() - -def ByteToHex( ch ): - try: - ch = ord(ch) - except: - ch = 0 - - return ch - -def init(comPort, baudRate): - #ser = serial.Serial('COM6', 115200, timeout=0) - global ser - ser.baudrate = baudRate - ser.port = str(comPort) - ser.timeout=3 - try: - ser.open() - except: - None - if ser.is_open: - return 0 - else: - return 1 - - -magic_str = "*RDY*" -start_str = "" - - -PRTCL_STATE_FREE = 0 -PRTCL_STATE_1 = 1, -PRTCL_STATE_2 = 2, -PRTCL_STATE_3 = 3, -PRTCL_STATE_4 = 4, -PRTCL_STATE_FOUND = 5, - -sync_word_state = PRTCL_STATE_FREE - -def find_sync( ): - global start_str - global sync_word_state - isFind = 0 - - if True: - for x in range(1, 1000): - byt = ser.read(1) - if sync_word_state == PRTCL_STATE_FREE: - if (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - - elif sync_word_state == PRTCL_STATE_1: - if (b'S' == byt): - sync_word_state = PRTCL_STATE_2 - elif (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - else: - sync_word_state = PRTCL_STATE_FREE - - elif sync_word_state == PRTCL_STATE_2: - if (b'T' == byt): - sync_word_state = PRTCL_STATE_3 - elif (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - else: - sync_word_state = PRTCL_STATE_FREE - - elif sync_word_state == PRTCL_STATE_3: - if (b'R' == byt): - sync_word_state = PRTCL_STATE_4 - elif (b'*' == byt): - sync_word_state = PRTCL_STATE_1 - else: - sync_word_state = PRTCL_STATE_FREE - - elif sync_word_state == PRTCL_STATE_4: - if (b'*' == byt): - sync_word_state = PRTCL_STATE_FREE - isFind = 1 - break - else: - sync_word_state = PRTCL_STATE_FREE - else: - for x in range(1, 1000): - byt = ser.read(1) - #print("%s" % ByteToHex(byt)) - if ((ByteToHex(byt) < 32) or (ByteToHex(byt) > 127) ): - byt = '-' - - try: - ch = byt.decode("ascii") - except : - ch = str(byt) - - if (len(start_str) == 5): - start_str = start_str[1:] + ch - else: - start_str = start_str[0:] + ch - - #print( "start_str=%s" % start_str ) - if start_str == magic_str: - isFind = 1 - break - return isFind - -def read( expectedLen ): - data=bytearray() - data = ser.read(expectedLen) - return data - \ No newline at end of file diff --git a/Examples/MAX32572/CameraIF/pc_utility/grab_image.py b/Examples/MAX32572/CameraIF/pc_utility/grab_image.py deleted file mode 100644 index 1987374140f..00000000000 --- a/Examples/MAX32572/CameraIF/pc_utility/grab_image.py +++ /dev/null @@ -1,81 +0,0 @@ -import serial -import time -from datetime import datetime -import os -import sys -import string -import comManager -import imgConverter - - -if len(sys.argv) == 3: - comport = sys.argv[1]; - baudRate = sys.argv[2]; -else: - comport = sys.argv[1]; - baudRate = 460800 #default baudrate - -READ_TIMEOUT = 15 - -def ByteToHex( ch ): - try: - ch = ord(ch) - except: - ch = 0 - - return ch - -def print_sep_line( ch ): - line = ch * 80 - print(line, flush=True) - -print("Image Reader Started") -print_sep_line('-') - -retVal = comManager.init(comport, baudRate) -if retVal != 0: - print ("comport open failed. Please check %s status\n" % comport); - sys.exit() - -while True: - if ( comManager.find_sync() == 1 ): - print ("\n\n***Sync word found***", flush=True) - print ("Reading image bytes, please wait...", flush=True) - - # width - arr = comManager.read(2) - w = arr[0]*256 + arr[1] - # height - arr = comManager.read(2) - h = arr[0]*256 + arr[1] - - pixelformat_len = comManager.read(1) - pixelformat = comManager.read(pixelformat_len[0]) - - arr = comManager.read(4) - imageLen = arr[0]*256*256*256 + arr[1]*256*256 + arr[2]*256 + arr[3] - - print ("image Len: %d" % imageLen, flush=True); - if ( imageLen > 0 ): - image=bytearray() - startTime = time.time(); - timeout = 0 - while (imageLen != len(image)): - image += comManager.read(imageLen-len(image)) - print (" Total Read Len:%d bytes" % len(image), flush=True) - # check timeout - if ( time.time() > (startTime + READ_TIMEOUT)): - print("Test Failed: Timeout\n", flush=True); - timeout = 1 - break - - if (timeout == 1): - continue - - print ("All image data read", flush=True); - imgConverter.convert(image, "Image.png", w, h, pixelformat.decode('ASCII')) - #hex_string = "".join("%02x" % b for b in image) - #print (hex_string) - #image_file = open("Image.txt", "w") - #image_file.write(hex_string) - #image_file.close() diff --git a/Examples/MAX32572/CameraIF/pc_utility/imgConverter.py b/Examples/MAX32572/CameraIF/pc_utility/imgConverter.py deleted file mode 100644 index 34515bdca18..00000000000 --- a/Examples/MAX32572/CameraIF/pc_utility/imgConverter.py +++ /dev/null @@ -1,219 +0,0 @@ -import time -import os -import sys -import string -import sys -import zlib -import struct -import png -#import the library opencv -import cv2 - -def swap32(i): - return struct.unpack("I", i))[0] - -def _clamp(n, smallest, largest): - return max(smallest, min(n, largest)) - -def yuv422_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - Y = byte1 - U = byte2 - Y1 = byte3 - V = byte4 - - #Y = byte1 - #U = byte2 - #Y1 = byte3 - #V = byte4 - - #B1 = 1.164 * (y1-16) + 2.018 * (u - 128) - #G1 = 1.164 * (y1-16) - 0.813 * (v - 128) - 0.391 * (u - 128) - #R1 = 1.164 * (y1-16) + 1.596*(v - 128) - #pix[j*2, i] = int(R), int(G), int(B) - - #B2 = 1.164 * (y2-16) + 2.018 * (u - 128) - #G2 = 1.164 * (y2-16) - 0.813 * (v - 128) - 0.391 * (u - 128) - #2 = 1.164 * (y2-16) + 1.596*(v - 128) - #pix[j*2+1, i] = int(R), int(G), int(B) - - #R1 = y1 + 1.4075 * (v - 128) - #G1 = y1 - 0.3455 * (u - 128) - (0.7169 * (v - 128)) - #B1 = y1 + 1.7790 * (u - 128) - - #R2 = y2 + 1.4075 * (v - 128) - #G2 = y2 - 0.3455 * (u - 128) - (0.7169 * (v - 128)) - #B2 = y2 + 1.7790 * (u - 128) - - R1 = Y + 1.4075 * (V - 128) - G1 = Y - 0.3455 * (U - 128) - (0.7169 * (V - 128)) - B1 = Y + 1.7790 * (U - 128) - - R2 = Y1 + 1.4075 * (V - 128) - G2 = Y1 - 0.3455 * (U - 128) - (0.7169 * (V - 128)) - B2 = Y1 + 1.7790 * (U - 128) - - img.append(_clamp(int(R1), 0, 255)) - img.append(_clamp(int(G1), 0, 255)) - img.append(_clamp(int(B1), 0, 255)) - - img.append(_clamp(int(R2), 0, 255)) - img.append(_clamp(int(G2), 0, 255)) - img.append(_clamp(int(B2), 0, 255)) - return img - -def yuv422_to_blackAndWhite(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - Y = byte1 - U = byte2 - Y1 = byte3 - V = byte4 - - r = Y - g = Y - b = Y - - img.append(r) - img.append(g) - img.append(b) - - r = Y1 - g = Y1 - b = Y1 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def blackAndWhite_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence)): - byte1 = bytesequence[i] - - r = byte1 - g = byte1 - b = byte1 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def rgb565_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - value = byte1 * 0x100 + byte2 - - r = (value & 0xf800) >> 11 - g = (value & 0x07e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - value = byte3 * 0x100 + byte4 - - r = (value & 0xf800) >> 11 - g = (value & 0x07e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def rgb555_to_rgb(bytesequence): - img = [] - for i in range(len(bytesequence) // 4): - offset = i * 4 - byte1 = bytesequence[offset + 0] - byte2 = bytesequence[offset + 1] - byte3 = bytesequence[offset + 2] - byte4 = bytesequence[offset + 3] - - value = byte1 * 0x100 + byte2 - - r = (value & 0x7C00) >> 10 - g = (value & 0x03e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - value = byte3 * 0x100 + byte4 - - r = (value & 0x7C00) >> 11 - g = (value & 0x03e0) >> 5 - b = (value & 0x001f) >> 0 - - img.append(r) - img.append(g) - img.append(b) - - return img - -def show_image(file): - #destroy the window - cv2.destroyAllWindows() - a = cv2.imread(file) - # %%%%%%%%%%%%%%%%%%%%% - #conversion numpy array into rgb image to show - #c = cv2.cvtColor(a, cv2.COLOR_BGR2RGB) - cv2.imshow('CameraImage', a) - #wait for 1 second - k = cv2.waitKey(1) - -def convert(bytesequence, outputfile, xres, yres, pixelformat): - image = [] - - - if (pixelformat == "YUV422"): - imagepixels = yuv422_to_rgb(bytesequence) - elif (pixelformat == "RGB555"): - imagepixels = rgb555_to_rgb(bytesequence) - elif (pixelformat == "RGB565"): - imagepixels = rgb565_to_rgb(bytesequence) - elif (pixelformat == "GRAYSCALE"): #Black and white yuv422 - imagepixels = blackAndWhite_to_rgb(bytesequence) - - offset = 0 - for i in range(yres): - line = [] - offset = (xres * 3) * i - for j in range(xres * 3): - line.append(imagepixels[j + offset]) - image.append(line) - - print("Output image to file xres {}, yres {}".format(xres,yres), flush=True) - f = open(outputfile, 'wb') # binary mode is important - w = png.Writer(xres, yres, greyscale=False) - w.write(f, image) - f.close() - show_image(outputfile) - \ No newline at end of file diff --git a/Examples/MAX32572/CameraIF/src/camera.c b/Examples/MAX32572/CameraIF/src/camera.c deleted file mode 100644 index 0c1568b7b03..00000000000 --- a/Examples/MAX32572/CameraIF/src/camera.c +++ /dev/null @@ -1,302 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include "camera.h" -#include "sccb.h" - -#include "mxc_device.h" -#include "board.h" -#include "nvic_table.h" -#include "pt.h" -#include "cameraif.h" -#include "utils.h" -#include "dma.h" -#include "uart.h" -#include "mxc_delay.h" -#include "gpio.h" - -/******************************* DEFINES ***************************/ -#define USE_DMA 0 // set it for dma read mode - -#define FIFO_THRES_HOLD 4 -#define CAMERAIF_DATA_BUS_WITH MXC_V_CAMERAIF_CTRL_DATA_WIDTH_8BIT - -/******************************** Static Functions ***************************/ -static unsigned int g_framesize = (unsigned int)FRAMESIZE_VGA; -static pixformat_t g_pixelformat = PIXFORMAT_YUV422; - -static uint8_t rx_data[512 * 384 + 2]; // +2 for manage overflow -static volatile uint32_t rx_data_index = 0; -static volatile uint32_t g_is_img_rcv = 0; -static int g_total_img_size = 0; - -static camera_t camera; -extern int sensor_register(camera_t *camera); - -const int resolution[][2] = { - /* Special resolutions */ - { 512, 384 }, /* SP */ - // C/SIF Resolutions - { 352, 288 }, /* CIF */ - // VGA Resolutions - { 320, 240 }, /* QVGA */ - { 640, 480 }, /* VGA */ -}; - -//---------------------------------------- -// CAMERAIF ISR -//---------------------------------------- -void camera_irq_handler(void) -{ -#if !USE_DMA - - // check fifo threshold flag - if (MXC_PCIF->int_fl & MXC_F_CAMERAIF_INT_FL_FIFO_THRESH) { - /* - * Read sequentially do not use loop - * because it may cause same delay and you may miss some bytes - */ - unsigned int data; - - if ((rx_data_index + 8) <= g_total_img_size) { - // 1 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - - // 2 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - - // 3 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - - // 4 - data = MXC_PCIF->fifo_data; - rx_data[rx_data_index++] = data; - rx_data[rx_data_index++] = data >> 16; - } - } - -#endif - - // check img_done flag - if (MXC_PCIF->int_fl & MXC_F_CAMERAIF_INT_FL_IMG_DONE) { - g_is_img_rcv = 1; -#if USE_DMA - - if (g_pixelformat == PIXFORMAT_GRAYSCALE) { - int i; - rx_data_index = g_total_img_size / 2; - - for (i = 0; i < rx_data_index; i++) { - rx_data[i] = rx_data[i * 2]; - } - } else { - rx_data_index = g_total_img_size; - } - -#endif - } - - // clear flags, tmp flag is used to pass coverity check - unsigned int flags = MXC_PCIF->int_fl; - MXC_PCIF->int_fl = flags; // clear flags -} - -#if USE_DMA -static void setup_dma(void) -{ - int dma_handle = 0; - - MXC_DMA->cn = 0x01; - - MXC_DMA->ch[dma_handle].dst = (uint32_t)rx_data; // Cast Pointer - - if (CAMERAIF_DATA_BUS_WITH == MXC_V_CAMERAIF_CTRL_DATA_WIDTH_8BIT) { - MXC_DMA->ch[dma_handle].cnt = g_total_img_size; - } else { - MXC_DMA->ch[dma_handle].cnt = - g_total_img_size * 2; // 10 and 12 bit use 2 bytes per word in the fifo - } - - MXC_DMA->ch[dma_handle].cfg = - ((0x1 << MXC_F_DMA_CFG_CTZIEN_POS) + (0x0 << MXC_F_DMA_CFG_CHDIEN_POS) + - (0x3 << MXC_F_DMA_CFG_BRST_POS) + (0x1 << MXC_F_DMA_CFG_DSTINC_POS) + - (0x2 << MXC_F_DMA_CFG_DSTWD_POS) + (0x0 << MXC_F_DMA_CFG_SRCINC_POS) + - (0x2 << MXC_F_DMA_CFG_SRCWD_POS) + (0x0 << MXC_F_DMA_CFG_PSSEL_POS) + - (0x0 << MXC_F_DMA_CFG_PSSEL_POS) + (0x0 << MXC_F_DMA_CFG_REQWAIT_POS) + - (0xD << MXC_F_DMA_CFG_REQSEL_POS) + (0x0 << MXC_F_DMA_CFG_PRI_POS) + - (0x0 << MXC_F_DMA_CFG_RLDEN_POS) + (0x1 << MXC_F_DMA_CFG_CHEN_POS)); -} -#endif - -/******************************** Public Functions ***************************/ -int camera_init(void) -{ - int ret = 0; - unsigned int bpp; // bytes per pixel - unsigned int framesize; - - // initialize XCLK for camera - MXC_PT_Init(MXC_PT_CLK_DIV1); - MXC_PT_SqrWaveConfig(1, CAMERA_FREQ); - MXC_PT_Start(MXC_F_PTG_ENABLE_PT1); - MXC_GPIO_SetVSSEL(gpio_cfg_pt1.port, MXC_GPIO_VSSEL_VDDIOH, gpio_cfg_pt1.mask); - utils_delay_ms(100); - - // initialize serial camera communication bus - sccb_init(); - // register functions - sensor_register(&camera); - - ret = camera.init(); - - if (ret == 0) { - ret |= camera.reset(); - ret |= camera.set_pixformat(g_pixelformat); - ret |= camera.set_framesize((framesize_t)g_framesize); - ret |= camera.set_contrast(0); - ret |= camera.set_hmirror(1); - ret |= camera.set_vflip(1); - - // calculate frame resolution area - framesize = resolution[g_framesize][0] * resolution[g_framesize][1]; - } - -#if USE_DMA - bpp = 2; // 2 bytes per pixel -#else - - if (g_pixelformat == PIXFORMAT_GRAYSCALE) { - bpp = 1; // 1 bytes per pixel - } else { - bpp = 2; // 2 bytes per pixel - } - -#endif - - if (ret == 0) { - g_total_img_size = framesize * bpp; - /*rx_data = (uint8_t *)malloc( ((g_total_img_size+3)/4) * 4); // - if (rx_data == NULL) { - return -1; - } - */ - - MXC_PCIF_Init(); - MXC_PCIF_SetDatawidth(MXC_PCIF_DATAWIDTH_8_BIT); - MXC_PCIF_SetTimingSel(MXC_PCIF_TIMINGSEL_HSYNC_and_VSYNC); - MXC_PCIF_SetThreshold(FIFO_THRES_HOLD); - - MXC_SETFIELD(MXC_PCIF->ctrl, MXC_F_CAMERAIF_CTRL_PCIF_SYS, MXC_F_CAMERAIF_CTRL_PCIF_SYS); - -#if USE_DMA - MXC_DMA_Init(); - - setup_dma(); - - MXC_SETFIELD(MXC_PCIF->ctrl, MXC_F_CAMERAIF_CTRL_RX_DMA_THRSH, - (0x1 << MXC_F_CAMERAIF_CTRL_RX_DMA_THRSH_POS)); - MXC_SETFIELD(MXC_PCIF->ctrl, MXC_F_CAMERAIF_CTRL_RX_DMA, MXC_F_CAMERAIF_CTRL_RX_DMA); -#endif - - MXC_PCIF_EnableInt(MXC_F_CAMERAIF_INT_EN_IMG_DONE); -#if !USE_DMA - MXC_PCIF_EnableInt(MXC_F_CAMERAIF_INT_EN_FIFO_THRESH); -#endif - - NVIC_SetVector(CameraIF_IRQn, camera_irq_handler); - } - - return ret; -} - -int camera_reset(void) -{ - return camera.reset(); -} - -int camera_get_id(void) -{ - return camera.get_id(); -} - -int camera_dump_registers(void) -{ - return camera.dump_registers(); -} - -int camera_start_campture_image(void) -{ - int ret = 0; - -#if USE_DMA - setup_dma(); -#endif - // clear flag - g_is_img_rcv = 0; - rx_data_index = 0; - MXC_PCIF_Start(MXC_PCIF_READMODE_SINGLE_MODE); - - return ret; -} - -int camera_is_image_rcv(void) -{ - return (g_is_img_rcv) ? 1 : 0; -} - -uint8_t *camera_get_pixel_format(void) -{ - if (g_pixelformat == PIXFORMAT_GRAYSCALE) { - return (uint8_t *)"GRAYSCALE"; - } else if (g_pixelformat == PIXFORMAT_RGB565) { - return (uint8_t *)"RGB565"; - } else { - return (uint8_t *)"YUV422"; - } -} - -void camera_get_image(uint8_t **img, uint32_t *imgLen, uint32_t *w, uint32_t *h) -{ - *img = (uint8_t *)rx_data; - *imgLen = rx_data_index; - - *w = resolution[g_framesize][0]; - *h = resolution[g_framesize][1]; -} diff --git a/Examples/MAX32572/CameraIF/src/gc0308.c b/Examples/MAX32572/CameraIF/src/gc0308.c deleted file mode 100644 index 59a3e5cb8b6..00000000000 --- a/Examples/MAX32572/CameraIF/src/gc0308.c +++ /dev/null @@ -1,318 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "gc0308_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_GC0308) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -static int g_slv_addr; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i, k; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - const char *banks[2] = { "PAGE0", "PAGE1" }; - unsigned char banks_select[2] = { PAGE_0, PAGE_1 }; - int sz = 64; - - for (k = 0; k < 2; k++) { - printf("SECTION: %s\n", banks[k]); - cambus_writeb(PAGE_SELECT, banks_select[k]); - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - } - - return ret; -} - -static int reset(void) -{ - int ret; - - // Reset all registers - ret = cambus_writeb(PAGE_SELECT, 0x80); - utils_delay_ms(100); - - ret |= cambus_writeb(0x24, 0xA2); // YUYV - ret |= cambus_writeb(0x25, 0x0f); // enable data, pclk, hsync, vsync - ret |= cambus_writeb(0x26, 0x32); // hsync polarity : high - ret |= cambus_writeb(0x28, 0x10); // InternalClk = InputClk / ((1+1)) - - return ret; -} - -static int sleep(int enable) -{ - int ret = 0; - - return ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg; - - if (sccb_read_byt(g_slv_addr, reg_addr, ®) != 0) { - return -1; - } - - return reg; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return sccb_write_byt(g_slv_addr, reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - int ret; - uint8_t reg; - - ret = cambus_readb(REG_Output_format, ®); - - reg &= 0x1f; // clear first 5 bits - - switch (pixformat) { - case PIXFORMAT_RGB565: - reg |= 0x06; - break; - - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - reg |= 0x02; - break; - - // case PIXFORMAT_GRAYSCALE: - // reg |= 0x11; - // break; - case PIXFORMAT_BAYER: - reg |= 0x17; - break; - - default: - return -1; - } - - // Write back register - return cambus_writeb(REG_Output_format, reg) | ret; -} - -extern const int resolution[][2]; - -static int set_framesize(framesize_t framesize) -{ - int ret = 0; - uint16_t w = resolution[framesize][0]; - uint16_t h = resolution[framesize][1]; - - // Write MSBs - ret |= cambus_writeb(0x49, (h >> 8) & 0xff); - ret |= cambus_writeb(0x4A, (h >> 0) & 0xff); - - ret |= cambus_writeb(0x4b, (w >> 8) & 0xff); - ret |= cambus_writeb(0x4c, (w >> 0) & 0xff); - - if ((w <= 320) && (h <= 240)) { - // Set QVGA Resolution - - } else { - // Set VGA Resolution - } - - return ret; -} - -static int set_contrast(int level) -{ - int ret = 0; - - return ret; -} - -static int set_brightness(int level) -{ - int ret = 0; - - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - int ret = 0; - - return ret; -} - -static int set_colorbar(int enable) -{ - int ret = 0; - - return ret; -} - -static int set_hmirror(int enable) -{ - int ret; - uint8_t reg; - - ret = cambus_writeb(PAGE_SELECT, PAGE_0); - ret |= cambus_readb(0x14, ®); - - if (enable) { - reg &= 0xfe; - } else { - reg |= 0x01; - } - - ret |= cambus_writeb(0x14, reg); - - return ret; -} - -static int set_vflip(int enable) -{ - int ret; - uint8_t reg; - - ret = cambus_writeb(PAGE_SELECT, PAGE_0); - ret |= cambus_readb(0x14, ®); - - if (enable) { - reg &= 0xfd; - } else { - reg |= 0x02; - } - - ret |= cambus_writeb(0x14, reg); - - return ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_GC0308) diff --git a/Examples/MAX32572/CameraIF/src/ov2640.c b/Examples/MAX32572/CameraIF/src/ov2640.c deleted file mode 100644 index b541f6d2b58..00000000000 --- a/Examples/MAX32572/CameraIF/src/ov2640.c +++ /dev/null @@ -1,735 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV2640 driver. - */ -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "ov2640_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_OV2640) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -#define IM_LOG2_2(x) (((x)&0x2ULL) ? (2) : 1) // NO ({ ... }) ! -#define IM_LOG2_4(x) (((x)&0xCULL) ? (2 + IM_LOG2_2((x) >> 2)) : IM_LOG2_2(x)) // NO ({ ... }) ! -#define IM_LOG2_8(x) (((x)&0xF0ULL) ? (4 + IM_LOG2_4((x) >> 4)) : IM_LOG2_4(x)) // NO ({ ... }) ! -#define IM_LOG2_16(x) (((x)&0xFF00ULL) ? (8 + IM_LOG2_8((x) >> 8)) : IM_LOG2_8(x)) // NO ({ ... }) ! -#define IM_LOG2_32(x) \ - (((x)&0xFFFF0000ULL) ? (16 + IM_LOG2_16((x) >> 16)) : IM_LOG2_16(x)) // NO ({ ... }) ! -#define IM_LOG2(x) \ - (((x)&0xFFFFFFFF00000000ULL) ? (32 + IM_LOG2_32((x) >> 32)) : IM_LOG2_32(x)) // NO ({ ... }) ! - -#define IM_MAX(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _a > _b ? _a : _b; \ - }) -#define IM_MIN(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _a < _b ? _a : _b; \ - }) -#define IM_DIV(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _b ? (_a / _b) : 0; \ - }) -#define IM_MOD(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - _b ? (_a % _b) : 0; \ - }) - -#define CIF_WIDTH (400) -#define CIF_HEIGHT (296) - -#define SVGA_WIDTH (800) -#define SVGA_HEIGHT (600) - -#define UXGA_WIDTH (1600) -#define UXGA_HEIGHT (1200) - -static int g_slv_addr; - -static const uint8_t default_regs[][2] = { - // From Linux Driver. - - { BANK_SEL, BANK_SEL_DSP }, - { 0x2c, 0xff }, - { 0x2e, 0xdf }, - { BANK_SEL, BANK_SEL_SENSOR }, - { 0x3c, 0x32 }, - { CLKRC, CLKRC_DOUBLE }, - { COM2, COM2_OUT_DRIVE_3x }, - { REG04, REG04_SET(REG04_HFLIP_IMG | REG04_VFLIP_IMG | REG04_VREF_EN | REG04_HREF_EN) }, - { COM8, COM8_SET(COM8_BNDF_EN | COM8_AGC_EN | COM8_AEC_EN) }, - { COM9, COM9_AGC_SET(COM9_AGC_GAIN_8x) }, - { 0x2c, 0x0c }, - { 0x33, 0x78 }, - { 0x3a, 0x33 }, - { 0x3b, 0xfb }, - { 0x3e, 0x00 }, - { 0x43, 0x11 }, - { 0x16, 0x10 }, - { 0x39, 0x02 }, - { 0x35, 0x88 }, - { 0x22, 0x0a }, - { 0x37, 0x40 }, - { 0x23, 0x00 }, - { ARCOM2, 0xa0 }, - { 0x06, 0x02 }, - { 0x06, 0x88 }, - { 0x07, 0xc0 }, - { 0x0d, 0xb7 }, - { 0x0e, 0x01 }, - { 0x4c, 0x00 }, - { 0x4a, 0x81 }, - { 0x21, 0x99 }, - { AEW, 0x40 }, - { AEB, 0x38 }, - { VV, VV_AGC_TH_SET(0x08, 0x02) }, - { 0x5c, 0x00 }, - { 0x63, 0x00 }, - { FLL, 0x22 }, - { COM3, COM3_BAND_SET(COM3_BAND_AUTO) }, - { REG5D, 0x55 }, - { REG5E, 0x7d }, - { REG5F, 0x7d }, - { REG60, 0x55 }, - { HISTO_LOW, 0x70 }, - { HISTO_HIGH, 0x80 }, - { 0x7c, 0x05 }, - { 0x20, 0x80 }, - { 0x28, 0x30 }, - { 0x6c, 0x00 }, - { 0x6d, 0x80 }, - { 0x6e, 0x00 }, - { 0x70, 0x02 }, - { 0x71, 0x94 }, - { 0x73, 0xc1 }, - { 0x3d, 0x34 }, - { COM7, COM7_RES_UXGA | COM7_ZOOM_EN }, - { 0x5a, 0x57 }, - { COM25, 0x00 }, - { BD50, 0xbb }, - { BD60, 0x9c }, - { BANK_SEL, BANK_SEL_DSP }, - { 0xe5, 0x7f }, - { MC_BIST, MC_BIST_RESET | MC_BIST_BOOT_ROM_SEL }, - { 0x41, 0x24 }, - { RESET, RESET_JPEG | RESET_DVP }, - { 0x76, 0xff }, - { 0x33, 0xa0 }, - { 0x42, 0x20 }, - { 0x43, 0x18 }, - { 0x4c, 0x00 }, - { CTRL3, CTRL3_BPC_EN | CTRL3_WPC_EN | 0x10 }, - { 0x88, 0x3f }, - { 0xd7, 0x03 }, - { 0xd9, 0x10 }, - { R_DVP_SP, R_DVP_SP_AUTO_MODE | 0x2 }, - { 0xc8, 0x08 }, - { 0xc9, 0x80 }, - { BPADDR, 0x00 }, - { BPDATA, 0x00 }, - { BPADDR, 0x03 }, - { BPDATA, 0x48 }, - { BPDATA, 0x48 }, - { BPADDR, 0x08 }, - { BPDATA, 0x20 }, - { BPDATA, 0x10 }, - { BPDATA, 0x0e }, - { 0x90, 0x00 }, - { 0x91, 0x0e }, - { 0x91, 0x1a }, - { 0x91, 0x31 }, - { 0x91, 0x5a }, - { 0x91, 0x69 }, - { 0x91, 0x75 }, - { 0x91, 0x7e }, - { 0x91, 0x88 }, - { 0x91, 0x8f }, - { 0x91, 0x96 }, - { 0x91, 0xa3 }, - { 0x91, 0xaf }, - { 0x91, 0xc4 }, - { 0x91, 0xd7 }, - { 0x91, 0xe8 }, - { 0x91, 0x20 }, - { 0x92, 0x00 }, - { 0x93, 0x06 }, - { 0x93, 0xe3 }, - { 0x93, 0x03 }, - { 0x93, 0x03 }, - { 0x93, 0x00 }, - { 0x93, 0x02 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x93, 0x00 }, - { 0x96, 0x00 }, - { 0x97, 0x08 }, - { 0x97, 0x19 }, - { 0x97, 0x02 }, - { 0x97, 0x0c }, - { 0x97, 0x24 }, - { 0x97, 0x30 }, - { 0x97, 0x28 }, - { 0x97, 0x26 }, - { 0x97, 0x02 }, - { 0x97, 0x98 }, - { 0x97, 0x80 }, - { 0x97, 0x00 }, - { 0x97, 0x00 }, - { 0xa4, 0x00 }, - { 0xa8, 0x00 }, - { 0xc5, 0x11 }, - { 0xc6, 0x51 }, - { 0xbf, 0x80 }, - { 0xc7, 0x10 }, /* simple AWB */ - { 0xb6, 0x66 }, - { 0xb8, 0xA5 }, - { 0xb7, 0x64 }, - { 0xb9, 0x7C }, - { 0xb3, 0xaf }, - { 0xb4, 0x97 }, - { 0xb5, 0xFF }, - { 0xb0, 0xC5 }, - { 0xb1, 0x94 }, - { 0xb2, 0x0f }, - { 0xc4, 0x5c }, - { 0xa6, 0x00 }, - { 0xa7, 0x20 }, - { 0xa7, 0xd8 }, - { 0xa7, 0x1b }, - { 0xa7, 0x31 }, - { 0xa7, 0x00 }, - { 0xa7, 0x18 }, - { 0xa7, 0x20 }, - { 0xa7, 0xd8 }, - { 0xa7, 0x19 }, - { 0xa7, 0x31 }, - { 0xa7, 0x00 }, - { 0xa7, 0x18 }, - { 0xa7, 0x20 }, - { 0xa7, 0xd8 }, - { 0xa7, 0x19 }, - { 0xa7, 0x31 }, - { 0xa7, 0x00 }, - { 0xa7, 0x18 }, - { 0x7f, 0x00 }, - { 0xe5, 0x1f }, - { 0xe1, 0x77 }, - { 0xdd, 0x7f }, - { CTRL0, CTRL0_YUV422 | CTRL0_YUV_EN | CTRL0_RGB_EN }, - - // OpenMV Custom. - - { BANK_SEL, BANK_SEL_SENSOR }, - { 0x0f, 0x4b }, - { COM1, 0x8f }, - - // End. - - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t cif_regs[][2] = { - { BANK_SEL, BANK_SEL_SENSOR }, - { COM7, COM7_RES_CIF }, - { COM1, 0x06 | 0x80 }, - { HSTART, 0x11 }, - { HSTOP, 0x43 }, - { VSTART, 0x01 }, // 0x01 fixes issue with garbage pixels in the image... - { VSTOP, 0x97 }, - { REG32, 0x09 }, - { BANK_SEL, BANK_SEL_DSP }, - { RESET, RESET_DVP }, - { SIZEL, - SIZEL_HSIZE8_11_SET(CIF_WIDTH) | SIZEL_HSIZE8_SET(CIF_WIDTH) | SIZEL_VSIZE8_SET(CIF_HEIGHT) }, - { HSIZE8, HSIZE8_SET(CIF_WIDTH) }, - { VSIZE8, VSIZE8_SET(CIF_HEIGHT) }, - { CTRL2, CTRL2_DCW_EN | CTRL2_SDE_EN | CTRL2_UV_AVG_EN | CTRL2_CMX_EN | CTRL2_UV_ADJ_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t svga_regs[][2] = { - { BANK_SEL, BANK_SEL_SENSOR }, - { COM7, COM7_RES_SVGA }, - { COM1, 0x0A | 0x80 }, - { HSTART, 0x11 }, - { HSTOP, 0x43 }, - { VSTART, 0x01 }, // 0x01 fixes issue with garbage pixels in the image... - { VSTOP, 0x97 }, - { REG32, 0x09 }, - { BANK_SEL, BANK_SEL_DSP }, - { RESET, RESET_DVP }, - { SIZEL, SIZEL_HSIZE8_11_SET(SVGA_WIDTH) | SIZEL_HSIZE8_SET(SVGA_WIDTH) | - SIZEL_VSIZE8_SET(SVGA_HEIGHT) }, - { HSIZE8, HSIZE8_SET(SVGA_WIDTH) }, - { VSIZE8, VSIZE8_SET(SVGA_HEIGHT) }, - { CTRL2, CTRL2_DCW_EN | CTRL2_SDE_EN | CTRL2_UV_AVG_EN | CTRL2_CMX_EN | CTRL2_UV_ADJ_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t uxga_regs[][2] = { - { BANK_SEL, BANK_SEL_SENSOR }, - { COM7, COM7_RES_UXGA }, - { COM1, 0x0F | 0x80 }, - { HSTART, 0x11 }, - { HSTOP, 0x75 }, - { VSTART, 0x01 }, - { VSTOP, 0x97 }, - { REG32, 0x36 }, - { BANK_SEL, BANK_SEL_DSP }, - { RESET, RESET_DVP }, - { SIZEL, SIZEL_HSIZE8_11_SET(UXGA_WIDTH) | SIZEL_HSIZE8_SET(UXGA_WIDTH) | - SIZEL_VSIZE8_SET(UXGA_HEIGHT) }, - { HSIZE8, HSIZE8_SET(UXGA_WIDTH) }, - { VSIZE8, VSIZE8_SET(UXGA_HEIGHT) }, - { CTRL2, CTRL2_DCW_EN | CTRL2_SDE_EN | CTRL2_UV_AVG_EN | CTRL2_CMX_EN | CTRL2_UV_ADJ_EN }, - { 0, 0 }, -}; - -static const uint8_t yuv422_regs[][2] = { - { BANK_SEL, BANK_SEL_DSP }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { IMAGE_MODE, IMAGE_MODE_YUV422 }, - { 0xd7, 0x03 }, - { 0x33, 0xa0 }, - { 0xe5, 0x1f }, - { 0xe1, 0x67 }, - { RESET, 0x00 }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t rgb565_regs[][2] = { - { BANK_SEL, BANK_SEL_DSP }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { IMAGE_MODE, IMAGE_MODE_RGB565 }, - { 0xd7, 0x03 }, - { RESET, 0x00 }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -static const uint8_t bayer_regs[][2] = { - { BANK_SEL, BANK_SEL_DSP }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { IMAGE_MODE, IMAGE_MODE_RAW10 }, - { 0xd7, 0x03 }, - { RESET, 0x00 }, - { R_BYPASS, R_BYPASS_DSP_EN }, - { 0x00, 0x00 }, /* END MARKER */ -}; - -#define NUM_BRIGHTNESS_LEVELS (5) -static const uint8_t brightness_regs[NUM_BRIGHTNESS_LEVELS + 1][5] = { - { BPADDR, BPDATA, BPADDR, BPDATA, BPDATA }, { 0x00, 0x04, 0x09, 0x00, 0x00 }, /* -2 */ - { 0x00, 0x04, 0x09, 0x10, 0x00 }, /* -1 */ - { 0x00, 0x04, 0x09, 0x20, 0x00 }, /* 0 */ - { 0x00, 0x04, 0x09, 0x30, 0x00 }, /* +1 */ - { 0x00, 0x04, 0x09, 0x40, 0x00 }, /* +2 */ -}; - -#define NUM_CONTRAST_LEVELS (5) -static const uint8_t contrast_regs[NUM_CONTRAST_LEVELS + 1][7] = { - { BPADDR, BPDATA, BPADDR, BPDATA, BPDATA, BPDATA, BPDATA }, - { 0x00, 0x04, 0x07, 0x20, 0x18, 0x34, 0x06 }, /* -2 */ - { 0x00, 0x04, 0x07, 0x20, 0x1c, 0x2a, 0x06 }, /* -1 */ - { 0x00, 0x04, 0x07, 0x20, 0x20, 0x20, 0x06 }, /* 0 */ - { 0x00, 0x04, 0x07, 0x20, 0x24, 0x16, 0x06 }, /* +1 */ - { 0x00, 0x04, 0x07, 0x20, 0x28, 0x0c, 0x06 }, /* +2 */ -}; - -#define NUM_SATURATION_LEVELS (5) -static const uint8_t saturation_regs[NUM_SATURATION_LEVELS + 1][5] = { - { BPADDR, BPDATA, BPADDR, BPDATA, BPDATA }, { 0x00, 0x02, 0x03, 0x28, 0x28 }, /* -2 */ - { 0x00, 0x02, 0x03, 0x38, 0x38 }, /* -1 */ - { 0x00, 0x02, 0x03, 0x48, 0x48 }, /* 0 */ - { 0x00, 0x02, 0x03, 0x58, 0x58 }, /* +1 */ - { 0x00, 0x02, 0x03, 0x68, 0x68 }, /* +2 */ -}; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i, k; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - const char *banks[2] = { "DSP", "SENSOR" }; - unsigned char banks_select[2] = { BANK_SEL_DSP, BANK_SEL_SENSOR }; - unsigned int sz = 64; - - for (k = 0; k < 2; k++) { - printf("SECTION: %s\n", banks[k]); - cambus_writeb(BANK_SEL, banks_select[k]); - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - } - - return ret; -} - -static int reset(void) -{ - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_writeb(COM7, COM7_SRST); - - utils_delay_ms(10); - - // Write default registers - for (int i = 0; default_regs[i][0]; i++) { - ret |= cambus_writeb(default_regs[i][0], default_regs[i][1]); - } - - ret |= cambus_writeb(CLKRC, 8); //InternalClk = InputClk / (2*(2+1)) - - return ret; -} - -static int sleep(int enable) -{ - int ret = 0; - - return ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg; - - if (cambus_readb(reg_addr, ®) != 0) { - return -1; - } - - return reg; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return cambus_writeb(reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - int ret = 0; - const uint8_t(*regs)[2]; - - switch (pixformat) { - case PIXFORMAT_RGB565: - regs = rgb565_regs; - break; - - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - regs = yuv422_regs; - break; - - case PIXFORMAT_BAYER: - regs = bayer_regs; - break; - - default: - return -1; - } - - // Write registers - for (int i = 0; regs[i][0]; i++) { - ret |= cambus_writeb(regs[i][0], regs[i][1]); - } - - utils_delay_ms(50); - - return ret; -} - -extern const int resolution[][2]; - -static int set_framesize(framesize_t framesize) -{ - const uint8_t(*regs)[2]; - uint16_t sensor_w = 0; - uint16_t sensor_h = 0; - int ret = 0; - uint16_t w = resolution[framesize][0]; - uint16_t h = resolution[framesize][1]; - - if ((w % 4) || (h % 4)) { // w/h must be divisble by 4 - return 1; - } - - // Looks really bad. - if ((w <= CIF_WIDTH) && (h <= CIF_HEIGHT)) { - regs = cif_regs; - sensor_w = CIF_WIDTH; - sensor_h = CIF_HEIGHT; - } else if ((w <= SVGA_WIDTH) && (h <= SVGA_HEIGHT)) { - regs = svga_regs; - sensor_w = SVGA_WIDTH; - sensor_h = SVGA_HEIGHT; - } else { - regs = uxga_regs; - sensor_w = UXGA_WIDTH; - sensor_h = UXGA_HEIGHT; - } - - // Write setup regsiters - for (int i = 0; regs[i][0]; i++) { - ret |= cambus_writeb(regs[i][0], regs[i][1]); - } - - uint64_t tmp_div = IM_MIN(sensor_w / w, sensor_h / h); - uint16_t log_div = IM_MIN(IM_LOG2(tmp_div) - 1, 3); - uint16_t div = 1 << log_div; - uint16_t w_mul = w * div; - uint16_t h_mul = h * div; - uint16_t x_off = (sensor_w - w_mul) / 2; - uint16_t y_off = (sensor_h - h_mul) / 2; - - ret |= cambus_writeb(CTRLI, CTRLI_LP_DP | CTRLI_V_DIV_SET(log_div) | CTRLI_H_DIV_SET(log_div)); - ret |= cambus_writeb(HSIZE, HSIZE_SET(w_mul)); - ret |= cambus_writeb(VSIZE, VSIZE_SET(h_mul)); - ret |= cambus_writeb(XOFFL, XOFFL_SET(x_off)); - ret |= cambus_writeb(YOFFL, YOFFL_SET(y_off)); - ret |= cambus_writeb(VHYX, VHYX_HSIZE_SET(w_mul) | VHYX_VSIZE_SET(h_mul) | - VHYX_XOFF_SET(x_off) | VHYX_YOFF_SET(y_off)); - ret |= cambus_writeb(TEST, TEST_HSIZE_SET(w_mul)); - ret |= cambus_writeb(ZMOW, ZMOW_OUTW_SET(w)); - ret |= cambus_writeb(ZMOH, ZMOH_OUTH_SET(h)); - ret |= cambus_writeb(ZMHH, ZMHH_OUTW_SET(w) | ZMHH_OUTH_SET(h)); - ret |= cambus_writeb(R_DVP_SP, div); - ret |= cambus_writeb(RESET, 0x00); - - // Delay 50 ms - utils_delay_ms(50); - - return ret; -} - -static int set_contrast(int level) -{ - int ret = 0; - - level += (NUM_CONTRAST_LEVELS / 2) + 1; - - if (level < 0 || level > NUM_CONTRAST_LEVELS) { - return -1; - } - - /* Switch to DSP register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_DSP); - - /* Write contrast registers */ - for (int i = 0; i < sizeof(contrast_regs[0]) / sizeof(contrast_regs[0][0]); i++) { - ret |= cambus_writeb(contrast_regs[0][i], contrast_regs[level][i]); - } - - return ret; -} - -static int set_brightness(int level) -{ - int ret = 0; - - level += (NUM_BRIGHTNESS_LEVELS / 2) + 1; - - if (level < 0 || level > NUM_BRIGHTNESS_LEVELS) { - return -1; - } - - /* Switch to DSP register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_DSP); - - /* Write brightness registers */ - for (int i = 0; i < sizeof(brightness_regs[0]) / sizeof(brightness_regs[0][0]); i++) { - ret |= cambus_writeb(brightness_regs[0][i], brightness_regs[level][i]); - } - - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - - level += (NUM_SATURATION_LEVELS / 2) + 1; - - if (level < 0 || level > NUM_SATURATION_LEVELS) { - return -1; - } - - /* Switch to DSP register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_DSP); - - /* Write saturation registers */ - for (int i = 0; i < sizeof(saturation_regs[0]) / sizeof(saturation_regs[0][0]); i++) { - ret |= cambus_writeb(saturation_regs[0][i], saturation_regs[level][i]); - } - - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - int ret = 0; - - /* Switch to SENSOR register bank */ - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - - /* Write gain ceiling register */ - ret |= cambus_writeb(COM9, COM9_AGC_SET(gainceiling)); - - return ret; -} - -static int set_colorbar(int enable) -{ - uint8_t reg = 0; - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_readb(COM7, ®); - - if (enable) { - reg |= COM7_COLOR_BAR; - } else { - reg &= ~COM7_COLOR_BAR; - } - - return cambus_writeb(COM7, reg) | ret; -} - -static int set_hmirror(int enable) -{ - uint8_t reg = 0; - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_readb(REG04, ®); - - if (!enable) { // Already mirrored. - reg |= REG04_HFLIP_IMG; - } else { - reg &= ~REG04_HFLIP_IMG; - } - - return cambus_writeb(REG04, reg) | ret; -} - -static int set_vflip(int enable) -{ - uint8_t reg = 0; - int ret = 0; - - ret |= cambus_writeb(BANK_SEL, BANK_SEL_SENSOR); - ret |= cambus_readb(REG04, ®); - - if (!enable) { // Already flipped. - reg |= REG04_VFLIP_IMG | REG04_VREF_EN; - } else { - reg &= ~(REG04_VFLIP_IMG | REG04_VREF_EN); - } - - return cambus_writeb(REG04, reg) | ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_OV2640) diff --git a/Examples/MAX32572/CameraIF/src/ov7670.c b/Examples/MAX32572/CameraIF/src/ov7670.c deleted file mode 100644 index 4c51f3ab961..00000000000 --- a/Examples/MAX32572/CameraIF/src/ov7670.c +++ /dev/null @@ -1,703 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "ov7670_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_OV7670) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -static int g_slv_addr; - -static const uint8_t default_regs[][2] = { - /* - * Clock scale: 3 = 15fps - * 2 = 20fps - * 1 = 30fps - */ - { REG_CLKRC, 0x2 }, /* OV: clock scale (30 fps) */ - { REG_TSLB, 0x04 }, /* OV */ - { REG_COM7, 0 }, /* VGA */ - /* - * Set the hardware window. These values from OV don't entirely - * make sense - hstop is less than hstart. But they work... - */ - { REG_HSTART, 0x13 }, - { REG_HSTOP, 0x01 }, - { REG_HREF, 0xb6 }, - { REG_VSTRT, 0x02 }, - { REG_VSTOP, 0x7a }, - { REG_VREF, 0x0a }, - - { REG_COM3, 0 }, - { REG_COM14, 0 }, - /* Mystery scaling numbers */ - { REG_SCALING_XSC, 0x3a }, - { REG_SCALING_YSC, 0x35 }, - { 0x72, 0x11 }, - { 0x73, 0xf0 }, - { 0xa2, 0x02 }, - { REG_COM10, 0x20 }, //REG_COM10 PCLK does not toggle on HBLANK. - - /* Gamma curve values */ - { 0x7a, 0x20 }, - { 0x7b, 0x10 }, - { 0x7c, 0x1e }, - { 0x7d, 0x35 }, - { 0x7e, 0x5a }, - { 0x7f, 0x69 }, - { 0x80, 0x76 }, - { 0x81, 0x80 }, - { 0x82, 0x88 }, - { 0x83, 0x8f }, - { 0x84, 0x96 }, - { 0x85, 0xa3 }, - { 0x86, 0xaf }, - { 0x87, 0xc4 }, - { 0x88, 0xd7 }, - { 0x89, 0xe8 }, - - /* AGC and AEC parameters. Note we start by disabling those features, - then turn them only after tweaking the values. */ - { REG_COM8, COM8_FASTAEC | COM8_AECSTEP | COM8_BFILT }, - { REG_GAIN, 0 }, - { REG_AECH, 0 }, - { REG_COM4, 0x40 }, /* magic reserved bit */ - { REG_COM9, 0x18 }, /* 4x gain + magic rsvd bit */ - { REG_BD50MAX, 0x05 }, - { REG_BD60MAX, 0x07 }, - { REG_AEW, 0x95 }, - { REG_AEB, 0x33 }, - { REG_VPT, 0xe3 }, - { REG_HAECC1, 0x78 }, - { REG_HAECC2, 0x68 }, - { 0xa1, 0x03 }, /* magic */ - { REG_HAECC3, 0xd8 }, - { REG_HAECC4, 0xd8 }, - { REG_HAECC5, 0xf0 }, - { REG_HAECC6, 0x90 }, - { REG_HAECC7, 0x94 }, - { REG_COM8, COM8_FASTAEC | COM8_AECSTEP | COM8_BFILT | COM8_AGC | COM8_AEC }, - - /* Almost all of these are magic "reserved" values. */ - { REG_COM5, 0x61 }, - { REG_COM6, 0x4b }, - { 0x16, 0x02 }, - { REG_MVFP, 0x07 }, - { 0x21, 0x02 }, - { 0x22, 0x91 }, - { 0x29, 0x07 }, - { 0x33, 0x0b }, - { 0x35, 0x0b }, - { 0x37, 0x1d }, - { 0x38, 0x71 }, - { 0x39, 0x2a }, - { REG_COM12, 0x68 }, - { 0x4d, 0x40 }, // REG_COM12 No HREF when VSYNC is low - { 0x4e, 0x20 }, - { REG_GFIX, 0 }, - { 0x6b, 0x4a }, - { 0x74, 0x10 }, - { 0x8d, 0x4f }, - { 0x8e, 0 }, - { 0x8f, 0 }, - { 0x90, 0 }, - { 0x91, 0 }, - { 0x96, 0 }, - { 0x9a, 0 }, - { 0xb0, 0x84 }, - { 0xb1, 0x0c }, - { 0xb2, 0x0e }, - { 0xb3, 0x82 }, - { 0xb8, 0x0a }, - - /* More reserved magic, some of which tweaks white balance */ - { 0x43, 0x0a }, - { 0x44, 0xf0 }, - { 0x45, 0x34 }, - { 0x46, 0x58 }, - { 0x47, 0x28 }, - { 0x48, 0x3a }, - { 0x59, 0x88 }, - { 0x5a, 0x88 }, - { 0x5b, 0x44 }, - { 0x5c, 0x67 }, - { 0x5d, 0x49 }, - { 0x5e, 0x0e }, - { 0x6c, 0x0a }, - { 0x6d, 0x55 }, - { 0x6e, 0x11 }, - { 0x6f, 0x9f }, /* "9e for advance AWB" */ - { 0x6a, 0x40 }, - { REG_BLUE, 0x40 }, - { REG_RED, 0x60 }, - { REG_COM8, COM8_FASTAEC | COM8_AECSTEP | COM8_BFILT | COM8_AGC | COM8_AEC | COM8_AWB }, - - /* Matrix coefficients */ - { 0x4f, 0x80 }, - { 0x50, 0x80 }, - { 0x51, 0 }, - { 0x52, 0x22 }, - { 0x53, 0x5e }, - { 0x54, 0x80 }, - { 0x58, 0x9e }, - - { REG_COM16, COM16_AWBGAIN }, - { REG_EDGE, 0 }, - { 0x75, 0x05 }, - { 0x76, 0xe1 }, - { 0x4c, 0 }, - { 0x77, 0x01 }, - { REG_COM13, 0xc3 }, - { 0x4b, 0x09 }, - { 0xc9, 0x60 }, - { REG_COM16, 0x38 }, - { 0x56, 0x40 }, - - { 0x34, 0x11 }, - { REG_COM11, COM11_EXP | COM11_HZAUTO }, - { 0xa4, 0x88 }, - { 0x96, 0 }, - { 0x97, 0x30 }, - { 0x98, 0x20 }, - { 0x99, 0x30 }, - { 0x9a, 0x84 }, - { 0x9b, 0x29 }, - { 0x9c, 0x03 }, - { 0x9d, 0x4c }, - { 0x9e, 0x3f }, - { 0x78, 0x04 }, - - /* Extra-weird stuff. Some sort of multiplexor register */ - { 0x79, 0x01 }, - { 0xc8, 0xf0 }, - { 0x79, 0x0f }, - { 0xc8, 0x00 }, - { 0x79, 0x10 }, - { 0xc8, 0x7e }, - { 0x79, 0x0a }, - { 0xc8, 0x80 }, - { 0x79, 0x0b }, - { 0xc8, 0x01 }, - { 0x79, 0x0c }, - { 0xc8, 0x0f }, - { 0x79, 0x0d }, - { 0xc8, 0x20 }, - { 0x79, 0x09 }, - { 0xc8, 0x80 }, - { 0x79, 0x02 }, - { 0xc8, 0xc0 }, - { 0x79, 0x03 }, - { 0xc8, 0x40 }, - { 0x79, 0x05 }, - { 0xc8, 0x30 }, - { 0x79, 0x26 }, - - { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t vga_ov7670[][2] = { - { REG_HREF, 0xF6 }, // was B6 - { REG_HSTART, 0x13 }, // HSTART - { REG_HSTOP, 0x01 }, // HSTOP - { REG_VSTRT, 0x02 }, // VSTART - { REG_VSTOP, 0x7a }, // VSTOP - { REG_VREF, 0x0a }, // VREF - { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t qvga_ov7670[][2] = { - { REG_COM14, 0x19 }, // divide by 2 - { 0x72, 0x11 }, // downsample by 2 - { 0x73, 0xf1 }, // divide by 2 - { REG_HSTART, 0x16 }, { REG_HSTOP, 0x04 }, { REG_HREF, 0x24 }, { REG_VSTRT, 0x02 }, - { REG_VSTOP, 0x7a }, { REG_VREF, 0x0a }, { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t qqvga_ov7670[][2] = { - { REG_COM14, 0x1a }, // divide by 4 - { 0x72, 0x22 }, // downsample by 4 - { 0x73, 0xf2 }, // divide by 4 - { REG_HSTART, 0x16 }, { REG_HSTOP, 0x04 }, { REG_HREF, 0xa4 }, { REG_VSTRT, 0x02 }, - { REG_VSTOP, 0x7a }, { REG_VREF, 0x0a }, { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t yuv422_ov7670[][2] = { - { REG_COM7, 0 }, /* Selects YUV mode */ - { REG_RGB444, 0 }, /* No RGB444 please */ - { REG_COM1, 0 }, /* CCIR601 */ - { REG_COM15, COM15_R00FF }, - { REG_COM9, 0x48 }, /* 32x gain ceiling; 0x8 is reserved bit */ - { 0x4f, 0x80 }, /* "matrix coefficient 1" */ - { 0x50, 0x80 }, /* "matrix coefficient 2" */ - { 0x51, 0 }, /* vb */ - { 0x52, 0x22 }, /* "matrix coefficient 4" */ - { 0x53, 0x5e }, /* "matrix coefficient 5" */ - { 0x54, 0x80 }, /* "matrix coefficient 6" */ - { REG_COM13, COM13_GAMMA | COM13_UVSAT }, - { 0xff, 0xff }, -}; - -static const uint8_t rgb565_ov7670[][2] = { - { REG_COM7, COM7_RGB }, /* Selects RGB mode */ - { REG_RGB444, 0 }, /* No RGB444 please */ - { REG_COM1, 0x0 }, - { REG_COM15, COM15_RGB565 | COM15_R00FF }, - { REG_COM9, 0x6A }, /* 128x gain ceiling; 0x8 is reserved bit */ - { 0x4f, 0xb3 }, /* "matrix coefficient 1" */ - { 0x50, 0xb3 }, /* "matrix coefficient 2" */ - { 0x51, 0 }, /* vb */ - { 0x52, 0x3d }, /* "matrix coefficient 4" */ - { 0x53, 0xa7 }, /* "matrix coefficient 5" */ - { 0x54, 0xe4 }, /* "matrix coefficient 6" */ - { REG_COM13, /*COM13_GAMMA|*/ COM13_UVSAT }, - { 0xff, 0xff }, /* END MARKER */ -}; - -static const uint8_t bayerRGB_ov7670[][2] = { - { REG_COM7, COM7_BAYER }, { REG_COM13, 0x08 }, /* No gamma, magic rsvd bit */ - { REG_COM16, 0x3d }, /* Edge enhancement, denoise */ - { REG_REG76, 0xe1 }, /* Pix correction, magic rsvd */ - { 0xff, 0xff }, /* END MARKER */ -}; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - unsigned int sz = 64; - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - - return ret; -} - -static int reset(void) -{ - int ret = 0; - - ret |= cambus_writeb(REG_COM7, COM7_RESET); - utils_delay_ms(250); - - // Write default registers - for (int i = 0; default_regs[i][0] != 0xff; i++) { - ret |= cambus_writeb(default_regs[i][0], default_regs[i][1]); - } - - ret |= cambus_writeb(REG_CLKRC, 10); //InternalClk = InputClk / (2*(10+1)) - - return ret; -} - -static int sleep(int enable) -{ - int ret = 0; - uint8_t reg; - - ret = cambus_readb(REG_COM2, ®); - - if (ret == 0) { - if (enable) { - reg |= COM2_SOFT_SLEEP_MODE; - } else { - reg &= ~COM2_SOFT_SLEEP_MODE; - } - - // Write back register - ret |= cambus_writeb(REG_COM2, reg); - } - - return ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg; - - if (cambus_readb(reg_addr, ®) != 0) { - return -1; - } - - return reg; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return cambus_writeb(reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - int ret = 0; - int i; - uint8_t reg; - - switch (pixformat) { - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - for (i = 0; yuv422_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(yuv422_ov7670[i][0], yuv422_ov7670[i][1]); - } - - break; - - case PIXFORMAT_RGB565: - for (i = 0; rgb565_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(rgb565_ov7670[i][0], rgb565_ov7670[i][1]); - } - - reg = read_reg(REG_CLKRC); - utils_delay_ms(1); - ret |= cambus_writeb( - REG_CLKRC, reg); //according to the Linux kernel driver rgb565 PCLK needs rewriting - break; - - case PIXFORMAT_BAYER: - for (i = 0; bayerRGB_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(bayerRGB_ov7670[i][0], bayerRGB_ov7670[i][1]); - } - - break; - - default: - ret = -1; - break; - } - - return ret; -} - -static int set_framesize(framesize_t format) -{ - int ret = 0; - int i; - - switch (format) { - case FRAMESIZE_VGA: - cambus_writeb(REG_COM3, 0); - - for (i = 0; vga_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(vga_ov7670[i][0], vga_ov7670[i][1]); - } - - break; - - case FRAMESIZE_QVGA: - cambus_writeb(REG_COM3, 4); // enable scaling - - for (i = 0; qvga_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(qvga_ov7670[i][0], qvga_ov7670[i][1]); - } - - break; - - case FRAMESIZE_QQVGA: - cambus_writeb(REG_COM3, 4); // enable scaling - - for (i = 0; qqvga_ov7670[i][0] != 0xff; i++) { - ret |= cambus_writeb(qqvga_ov7670[i][0], qqvga_ov7670[i][1]); - } - - break; - - default: - ret = -1; - break; - } - - return ret; -} - -static int set_contrast(int level) -{ - int ret = 0; - - switch (level) { - case -4: - level = 0; - break; - - case -3: - level = 30; - break; - - case -2: - level = 60; - break; - - case -1: - level = 90; - break; - - case 0: - level = 120; - break; - - case 1: - level = 150; - break; - - case 2: - level = 180; - break; - - case 3: - level = 210; - break; - - case 4: - level = 255; - break; - - default: - return -1; - } - - ret = cambus_writeb(REG_CONTRAS, level); - - return ret; -} - -static int set_brightness(int level) -{ - int ret; - unsigned char reg = 0; - - switch (level) { - case -4: - level = 0; - break; - - case -3: - level = 30; - break; - - case -2: - level = 60; - break; - - case -1: - level = 90; - break; - - case 0: - level = 120; - break; - - case 1: - level = 150; - break; - - case 2: - level = 180; - break; - - case 3: - level = 210; - break; - - case 4: - level = 255; - break; - - default: - return -1; - } - - // update REG_COM8 - ret = cambus_readb(REG_COM8, ®); - reg &= ~COM8_AEC; - ret = cambus_writeb(REG_COM8, reg); - - // update REG_BRIGHT - level &= 0xFF; - reg = (level > 127) ? (level & 0x7f) : ((128 - level) | 0x80); - ret = cambus_writeb(REG_BRIGHT, reg); - - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - (void)level; - - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - int ret = 0; - uint8_t reg = 0; - - ret = cambus_readb(REG_COM9, ®); - - // Set gain ceiling - reg = COM9_SET_AGC(reg, gainceiling); - ret |= cambus_writeb(REG_COM9, reg); - - return ret; -} - -static int set_colorbar(int enable) -{ - int ret = 0; - (void)enable; - - return ret; -} - -static int set_hmirror(int enable) -{ - unsigned char reg = 0; - int ret; - - ret = cambus_readb(REG_MVFP, ®); - - if (enable) { - reg |= MVFP_MIRROR; - } else { - reg &= ~MVFP_MIRROR; - } - - ret |= cambus_writeb(REG_MVFP, reg); - - return ret; -} - -static int set_vflip(int enable) -{ - unsigned char reg = 0; - int ret; - - ret = cambus_readb(REG_MVFP, ®); - - if (enable) { - reg |= MVFP_FLIP; - } else { - reg &= ~MVFP_FLIP; - } - - ret |= cambus_writeb(REG_MVFP, reg); - - return ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_OV7670) diff --git a/Examples/MAX32572/CameraIF/src/ov7725.c b/Examples/MAX32572/CameraIF/src/ov7725.c deleted file mode 100644 index 8cdb84a029f..00000000000 --- a/Examples/MAX32572/CameraIF/src/ov7725.c +++ /dev/null @@ -1,466 +0,0 @@ -/* - * This file is part of the OpenMV project. - * - * Copyright (c) 2013-2019 Ibrahim Abdelkader - * Copyright (c) 2013-2019 Kwabena W. Agyeman - * - * This work is licensed under the MIT license, see the file LICENSE for details. - * - * OV7725 driver. - */ -#include -#include -#include - -#include "camera.h" -#include "sccb.h" -#include "ov7725_regs.h" -#include "mxc_delay.h" -#include "max32572.h" -#include "utils.h" - -#if (ACTIVE_CAMERA == CAM_OV7725) - -#define cambus_writeb(addr, x) sccb_write_byt(g_slv_addr, addr, x) -#define cambus_readb(addr, x) sccb_read_byt(g_slv_addr, addr, x) - -static int g_slv_addr; -static const uint8_t default_regs[][2] = { - // From App Note. - - { COM12, 0x03 }, - { HSTART, 0x22 }, - { HSIZE, 0xa4 }, - { VSTART, 0x07 }, - { VSIZE, 0xf0 }, - { HREF, 0x00 }, - { HOUTSIZE, 0xa0 }, - { VOUTSIZE, 0xf0 }, - { EXHCH, 0x00 }, - { CLKRC, 0xC0 }, // {CLKRC, 0x01}, - - { TGT_B, 0x7f }, - { FIXGAIN, 0x09 }, - { AWB_CTRL0, 0xe0 }, - { DSP_CTRL1, 0xff }, - { DSP_CTRL2, 0x20 | DSP_CTRL2_VDCW_EN | DSP_CTRL2_HDCW_EN | DSP_CTRL2_VZOOM_EN | - DSP_CTRL2_HZOOM_EN }, // {DSP_CTRL2, 0x20}, - { DSP_CTRL3, 0x00 }, - { DSP_CTRL4, 0x48 }, - - { COM8, 0xf0 }, - { COM4, 0x41 }, // {COM4, OMV_OV7725_PLL_CONFIG}, - { COM6, 0xc5 }, - { COM9, 0x11 }, - { BDBASE, 0x7f }, - { BDSTEP, 0x03 }, - { AEW, 0x40 }, - { AEB, 0x30 }, - { VPT, 0xa1 }, - { EXHCL, 0x00 }, - { AWB_CTRL3, 0xaa }, - { COM8, 0xff }, - - { EDGE1, 0x05 }, - { DNSOFF, 0x01 }, - { EDGE2, 0x03 }, - { EDGE3, 0x00 }, - { MTX1, 0xb0 }, - { MTX2, 0x9d }, - { MTX3, 0x13 }, - { MTX4, 0x16 }, - { MTX5, 0x7b }, - { MTX6, 0x91 }, - { MTX_CTRL, 0x1e }, - { BRIGHTNESS, 0x08 }, - { CONTRAST, 0x20 }, - { UVADJ0, 0x81 }, - { SDE, SDE_CONT_BRIGHT_EN | SDE_SATURATION_EN }, - - { GAM1, 0x0c }, - { GAM2, 0x16 }, - { GAM3, 0x2a }, - { GAM4, 0x4e }, - { GAM5, 0x61 }, - { GAM6, 0x6f }, - { GAM7, 0x7b }, - { GAM8, 0x86 }, - { GAM9, 0x8e }, - { GAM10, 0x97 }, - { GAM11, 0xa4 }, - { GAM12, 0xaf }, - { GAM13, 0xc5 }, - { GAM14, 0xd7 }, - { GAM15, 0xe8 }, - { SLOP, 0x20 }, - - { DM_LNL, 0x00 }, - { BDBASE, 0x7f }, // {BDBASE, OMV_OV7725_BANDING} - { BDSTEP, 0x03 }, - - { LC_RADI, 0x10 }, - { LC_COEF, 0x10 }, - { LC_COEFB, 0x14 }, - { LC_COEFR, 0x17 }, - { LC_CTR, 0x01 }, // {LC_CTR, 0x05}, - - { COM5, 0xf5 }, // {COM5, 0x65}, - - // OpenMV Custom. - - { COM7, COM7_FMT_RGB565 }, - - // End. - - { 0x00, 0x00 }, -}; - -#define NUM_BRIGHTNESS_LEVELS (9) -static const uint8_t brightness_regs[NUM_BRIGHTNESS_LEVELS][2] = { - { 0x38, 0x0e }, /* -4 */ - { 0x28, 0x0e }, /* -3 */ - { 0x18, 0x0e }, /* -2 */ - { 0x08, 0x0e }, /* -1 */ - { 0x08, 0x06 }, /* 0 */ - { 0x18, 0x06 }, /* +1 */ - { 0x28, 0x06 }, /* +2 */ - { 0x38, 0x06 }, /* +3 */ - { 0x48, 0x06 }, /* +4 */ -}; - -#define NUM_CONTRAST_LEVELS (9) -static const uint8_t contrast_regs[NUM_CONTRAST_LEVELS][1] = { - { 0x10 }, /* -4 */ - { 0x14 }, /* -3 */ - { 0x18 }, /* -2 */ - { 0x1C }, /* -1 */ - { 0x20 }, /* 0 */ - { 0x24 }, /* +1 */ - { 0x28 }, /* +2 */ - { 0x2C }, /* +3 */ - { 0x30 }, /* +4 */ -}; - -#define NUM_SATURATION_LEVELS (9) -static const uint8_t saturation_regs[NUM_SATURATION_LEVELS][2] = { - { 0x00, 0x00 }, /* -4 */ - { 0x10, 0x10 }, /* -3 */ - { 0x20, 0x20 }, /* -2 */ - { 0x30, 0x30 }, /* -1 */ - { 0x40, 0x40 }, /* 0 */ - { 0x50, 0x50 }, /* +1 */ - { 0x60, 0x60 }, /* +2 */ - { 0x70, 0x70 }, /* +3 */ - { 0x80, 0x80 }, /* +4 */ -}; - -/******************************** Static Functions ***************************/ -static int init(void) -{ - int ret = 0; - - g_slv_addr = sccb_scan(); - - if (g_slv_addr == -1) { - return -1; - } - - return ret; -} - -static int get_id(void) -{ - return g_slv_addr; -} - -static int dump_registers(void) -{ - int ret = 0; - unsigned char byt = 0; - unsigned int i; - unsigned char buf[64] = { 0 }; - unsigned char *ptr = buf; - unsigned int sz = 64; - - for (i = 0;; i++) { - if ((i != 0) && !(i % 16)) { - *ptr = '\0'; - printf("%04X:%s\n", i - 16, buf); - ptr = buf; - sz = 64; - } - - if (i == 256) { - break; - } - - ret = cambus_readb(i, &byt); - - if (ret == 0) { - ret = snprintf((char *)ptr, sz, " %02X", byt); - - if (ret < 0) { - return ret; - } - - ptr += 3; // XX + space - sz -= 3; - } else { - //printf("\nREAD FAILED: reg:%X\n", i); - *ptr++ = '!'; - *ptr++ = '!'; - *ptr++ = ' '; - sz -= 3; - } - } - - return ret; -} - -static int reset(void) -{ - // Reset all registers - int ret = cambus_writeb(COM7, COM7_RESET); - - // Delay 2 ms - utils_delay_ms(2); - - // Write default regsiters - for (int i = 0; default_regs[i][0]; i++) { - ret |= cambus_writeb(default_regs[i][0], default_regs[i][1]); - } - - ret |= cambus_writeb(CLKRC, 4); //InternalClk = InputClk / (2*(4+1)) - - // Delay 300 ms - utils_delay_ms(300); - - return ret; -} - -static int sleep(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM2, ®); - - if (enable) { - reg |= COM2_SOFT_SLEEP; - } else { - reg &= ~COM2_SOFT_SLEEP; - } - - // Write back register - return cambus_writeb(COM2, reg) | ret; -} - -static int read_reg(uint16_t reg_addr) -{ - uint8_t reg_data; - - if (cambus_readb(reg_addr, ®_data) != 0) { - return -1; - } - - return reg_data; -} - -static int write_reg(uint16_t reg_addr, uint16_t reg_data) -{ - return cambus_writeb(reg_addr, reg_data); -} - -static int set_pixformat(pixformat_t pixformat) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM7, ®); - - switch (pixformat) { - case PIXFORMAT_RGB565: - reg = COM7_SET_FMT(reg, COM7_FMT_RGB); - ret |= cambus_writeb(DSP_CTRL4, DSP_CTRL4_YUV_RGB); - break; - - case PIXFORMAT_YUV422: - case PIXFORMAT_GRAYSCALE: - reg = COM7_SET_FMT(reg, COM7_FMT_YUV); - ret |= cambus_writeb(DSP_CTRL4, DSP_CTRL4_YUV_RGB); - break; - - case PIXFORMAT_BAYER: - reg = COM7_SET_FMT(reg, COM7_FMT_P_BAYER); - ret |= cambus_writeb(DSP_CTRL4, DSP_CTRL4_RAW8); - break; - - default: - return -1; - } - - // Write back register - return cambus_writeb(COM7, reg) | ret; -} - -extern const int resolution[][2]; - -static int set_framesize(framesize_t framesize) -{ - int ret = 0; - uint8_t reg = 0; - uint16_t w = resolution[(unsigned int)framesize][0]; - uint16_t h = resolution[(unsigned int)framesize][1]; - - // Write MSBs - ret |= cambus_writeb(HOUTSIZE, w >> 2); - ret |= cambus_writeb(VOUTSIZE, h >> 1); - - // Write LSBs - ret |= cambus_writeb(EXHCH, ((w & 0x3) | ((h & 0x1) << 2))); - - if ((w <= 320) && (h <= 240)) { - // Set QVGA Resolution - ret = cambus_readb(COM7, ®); - reg = COM7_SET_RES(reg, COM7_RES_QVGA); - ret |= cambus_writeb(COM7, reg); - - // Set QVGA Window Size - ret |= cambus_writeb(HSTART, 0x3F); - ret |= cambus_writeb(HSIZE, 0x50); - ret |= cambus_writeb(VSTART, 0x03); - ret |= cambus_writeb(VSIZE, 0x78); - - // Enable auto-scaling/zooming factors - ret |= cambus_writeb(DSPAUTO, 0xFF); - } else { - // Set VGA Resolution - ret = cambus_readb(COM7, ®); - reg = COM7_SET_RES(reg, COM7_RES_VGA); - ret |= cambus_writeb(COM7, reg); - - // Set VGA Window Size - ret |= cambus_writeb(HSTART, 0x23); - ret |= cambus_writeb(HSIZE, 0xA0); - ret |= cambus_writeb(VSTART, 0x07); - ret |= cambus_writeb(VSIZE, 0xF0); - - // Disable auto-scaling/zooming factors - ret |= cambus_writeb(DSPAUTO, 0xF3); - - // Clear auto-scaling/zooming factors - ret |= cambus_writeb(SCAL0, 0x00); - ret |= cambus_writeb(SCAL1, 0x40); - ret |= cambus_writeb(SCAL2, 0x40); - } - - return ret; -} -static int set_contrast(int level) -{ - int ret = 0; - - level += (NUM_CONTRAST_LEVELS / 2); - - if (level < 0 || level >= NUM_CONTRAST_LEVELS) { - return -1; - } - - ret = cambus_writeb(CONTRAST, contrast_regs[level][0]); - return ret; -} - -static int set_brightness(int level) -{ - int ret = 0; - - level += (NUM_BRIGHTNESS_LEVELS / 2); - - if (level < 0 || level >= NUM_BRIGHTNESS_LEVELS) { - return -1; - } - - ret |= cambus_writeb(BRIGHTNESS, brightness_regs[level][0]); - ret |= cambus_writeb(SIGN_BIT, brightness_regs[level][1]); - return ret; -} - -static int set_saturation(int level) -{ - int ret = 0; - - level += (NUM_SATURATION_LEVELS / 2); - - if (level < 0 || level >= NUM_SATURATION_LEVELS) { - return -1; - } - - ret |= cambus_writeb(USAT, saturation_regs[level][0]); - ret |= cambus_writeb(VSAT, saturation_regs[level][1]); - return ret; -} - -static int set_gainceiling(gainceiling_t gainceiling) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM9, ®); - - // Set gain ceiling - reg = COM9_SET_AGC(reg, gainceiling); - return cambus_writeb(COM9, reg) | ret; -} - -static int set_colorbar(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM3, ®); - - // Enable colorbar test pattern output - reg = COM3_SET_CBAR(reg, enable); - ret |= cambus_writeb(COM3, reg); - - // Enable DSP colorbar output - ret |= cambus_readb(DSP_CTRL3, ®); - reg = DSP_CTRL3_SET_CBAR(reg, enable); - return cambus_writeb(DSP_CTRL3, reg) | ret; -} - -static int set_hmirror(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM3, ®); - ret |= cambus_writeb(COM3, COM3_SET_MIRROR(reg, enable)); - - return ret; -} - -static int set_vflip(int enable) -{ - uint8_t reg = 0; - int ret = cambus_readb(COM3, ®); - ret |= cambus_writeb(COM3, COM3_SET_FLIP(reg, enable)); - - return ret; -} - -/******************************** Public Functions ***************************/ -int sensor_register(camera_t *camera) -{ - // Initialize sensor structure. - camera->init = init; - camera->get_id = get_id; - camera->dump_registers = dump_registers; - camera->reset = reset; - camera->sleep = sleep; - camera->read_reg = read_reg; - camera->write_reg = write_reg; - camera->set_pixformat = set_pixformat; - camera->set_framesize = set_framesize; - camera->set_contrast = set_contrast; - camera->set_brightness = set_brightness; - camera->set_saturation = set_saturation; - camera->set_gainceiling = set_gainceiling; - camera->set_colorbar = set_colorbar; - camera->set_hmirror = set_hmirror; - camera->set_vflip = set_vflip; - - return 0; -} - -#endif // (ACTIVE_CAMERA == CAM_OV2640) diff --git a/Examples/MAX32572/CameraIF/src/sccb.c b/Examples/MAX32572/CameraIF/src/sccb.c deleted file mode 100644 index 2494ac9951b..00000000000 --- a/Examples/MAX32572/CameraIF/src/sccb.c +++ /dev/null @@ -1,262 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include "sccb.h" -#include "mxc_delay.h" -#include "gpio.h" -#include "max32572.h" - -// serial clock -#define SCL_PORT MXC_GPIO2 -#define SCL_PIN MXC_GPIO_PIN_18 -// serial data -#define SDA_PORT MXC_GPIO2 -#define SDA_PIN MXC_GPIO_PIN_19 - -// -#define GPIO_SET(port, mask) (port)->out_set = (mask) -#define GPIO_CLR(port, mask) (port)->out_clr = (mask) -#define GPIO_GET(port, mask) ((port)->in & (mask)) - -// -#define GPIO_IN(port, mask) (port)->out_en_clr = (mask) -#define GPIO_OUT(port, mask) (port)->out_en_set = (mask) - -// SCL -#define SCL_HIGH() GPIO_SET(SCL_PORT, SCL_PIN) -#define SCL_LOW() GPIO_CLR(SCL_PORT, SCL_PIN) -// SDA -#define SDA_HIGH() GPIO_SET(SDA_PORT, SDA_PIN) -#define SDA_LOW() GPIO_CLR(SDA_PORT, SDA_PIN) -#define SDA_IN() GPIO_IN(SDA_PORT, SDA_PIN) -#define SDA_OUT() GPIO_OUT(SDA_PORT, SDA_PIN) -#define SDA_GET() GPIO_GET(SDA_PORT, SDA_PIN) - -#define WAIT_US 50 -#define DELAY_US(us) MXC_Delay(us) - -static const mxc_gpio_cfg_t gpio_cfg_scl = { SCL_PORT, SCL_PIN, MXC_GPIO_FUNC_OUT, - MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH }; -static const mxc_gpio_cfg_t gpio_cfg_sda = { SDA_PORT, SDA_PIN, MXC_GPIO_FUNC_OUT, - MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH }; - -/******************************** Static Functions ***************************/ -static void start(void) -{ - SDA_HIGH(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - SDA_LOW(); - DELAY_US(WAIT_US); - SCL_LOW(); - DELAY_US(WAIT_US); -} - -static void stop(void) -{ - SDA_LOW(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - SDA_HIGH(); - DELAY_US(WAIT_US); -} - -static void send_NACK(void) -{ - SDA_HIGH(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - SCL_LOW(); - DELAY_US(WAIT_US); - SDA_LOW(); - DELAY_US(WAIT_US); -} - -static uint8_t send_byte(uint8_t byt) -{ - uint8_t i; - uint8_t res = 0; - - for (i = 0; i < 8; i++) { - if ((byt << i) & 0x80) { - SDA_HIGH(); - } else { - SDA_LOW(); - } - - DELAY_US(WAIT_US); - - SCL_HIGH(); - DELAY_US(WAIT_US); - SCL_LOW(); - DELAY_US(WAIT_US); - } - - SDA_IN(); - DELAY_US(WAIT_US); - SCL_HIGH(); - DELAY_US(WAIT_US); - - if (SDA_GET()) { - res = 1; // means nack - } else { - res = 0; // means ack - } - - SCL_LOW(); - DELAY_US(WAIT_US); - SDA_OUT(); - - return res; -} - -static uint8_t get_byte(void) -{ - uint8_t byt = 0; - uint8_t j; - - SDA_IN(); - DELAY_US(WAIT_US); - - for (j = 8; j > 0; j--) { - SCL_HIGH(); - DELAY_US(WAIT_US); - - byt = byt << 1; - - if (SDA_GET()) { - byt++; - } - - SCL_LOW(); - DELAY_US(WAIT_US); - } - - SDA_OUT(); - - return byt; -} - -/******************************** Public Functions ***************************/ -int sccb_init(void) -{ - int ret = 0; - - MXC_GPIO_Config(&gpio_cfg_scl); - MXC_GPIO_Config(&gpio_cfg_sda); - - SDA_HIGH(); - SCL_HIGH(); - - return ret; -} - -int sccb_scan(void) -{ - int ret = 0; - int slv_addr = 0; - - while (slv_addr < 0xFF) { - start(); - ret = send_byte(slv_addr << 1); // address - stop(); - - if (ret == 0) { - return slv_addr; - } - - slv_addr++; - } - - return -1; // not found -} - -int sccb_read_byt(uint8_t slv_addr, uint8_t reg, uint8_t *byt) -{ - int ret = 0; - - start(); - - if (ret == 0) { - ret = send_byte(slv_addr << 1); // address - } - - if (ret == 0) { - ret = send_byte(reg); - } - - stop(); - - if (ret == 0) { - DELAY_US(WAIT_US); - - start(); - ret = send_byte((slv_addr << 1) + 1); // +1 means read - - if (ret == 0) { - *byt = get_byte(); // - send_NACK(); - } - - stop(); - } - - return ret; -} - -int sccb_write_byt(uint8_t slv_addr, uint8_t reg, uint8_t val) -{ - int ret = 0; - - start(); - - if (ret == 0) { - ret = send_byte(slv_addr << 1); // address - } - - if (ret == 0) { - ret = send_byte(reg); // - } - - if (ret == 0) { - ret = send_byte(val); // - } - - stop(); - - return ret; -} diff --git a/Examples/MAX32572/CameraIF/src/utils.c b/Examples/MAX32572/CameraIF/src/utils.c deleted file mode 100644 index 206fd3d3057..00000000000 --- a/Examples/MAX32572/CameraIF/src/utils.c +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -#include -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "board.h" -#include "mxc_delay.h" -#include "uart.h" -#include "rtc.h" -#include "utils.h" - -#pragma GCC optimize("-O0") - -#define DEBUG_COMPORT MXC_UART1 - -/***************************** VARIABLES *************************************/ - -/************************ PUBLIC FUNCTIONS *******************************/ -void utils_delay_ms(unsigned int ms) -{ - MXC_Delay(ms * 1000UL); -} - -unsigned int utils_get_time_ms(void) -{ - uint32_t sec, ssec; - double subsec; - uint32_t ms; - - MXC_RTC_GetSubSeconds(&ssec); - subsec = (double)ssec / (double)(4096.0); - - MXC_RTC_GetSeconds(&sec); - - ms = (sec * 1000) + (int)(subsec * 1000); - - return ms; -} - -void utils_hexDump(const char *title, unsigned char *buf, unsigned int len) -{ - unsigned int i; - - /* Print title */ - if (title) { - printf("%s", title); - } - - /* Print buffer bytes */ - for (i = 0; i < len; i++) { - if (!(i % 16)) { - printf("\n"); - } - - printf("%02X ", buf[i]); - } - - printf("\n"); -} - -int utils_send_img_to_pc(uint8_t *img, uint32_t imgLen, int w, int h, uint8_t *pixelformat) -{ - int len; - - // start - len = 5; - MXC_UART_Write(DEBUG_COMPORT, (uint8_t *)"*STR*", &len); - - // w - MXC_UART_WriteCharacter(DEBUG_COMPORT, (w >> 8) & 0xff); // high byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (w >> 0) & 0xff); // low byte - // h - MXC_UART_WriteCharacter(DEBUG_COMPORT, (h >> 8) & 0xff); // high byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (h >> 0) & 0xff); // low byte - - // format - len = strlen((char *)pixelformat); - MXC_UART_WriteCharacter(DEBUG_COMPORT, len & 0xff); - MXC_UART_Write(DEBUG_COMPORT, pixelformat, &len); - - // imagelen - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 24) & 0xff); // high byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 16) & 0xff); // low byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 8) & 0xff); // low byte - MXC_UART_WriteCharacter(DEBUG_COMPORT, (imgLen >> 0) & 0xff); // low byte - - while (imgLen) { - len = imgLen; - MXC_UART_Write(DEBUG_COMPORT, img, &len); - img += len; - imgLen -= len; - } - - return 0; -} diff --git a/Examples/MAX32572/Coremark/.cproject b/Examples/MAX32572/Coremark/.cproject deleted file mode 100644 index deda72ea0cf..00000000000 --- a/Examples/MAX32572/Coremark/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Coremark/.project b/Examples/MAX32572/Coremark/.project deleted file mode 100644 index 98f93a120bf..00000000000 --- a/Examples/MAX32572/Coremark/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Coremark - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Coremark/.settings/language.settings.xml b/Examples/MAX32572/Coremark/.settings/language.settings.xml deleted file mode 100644 index deb9fd18f3a..00000000000 --- a/Examples/MAX32572/Coremark/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Coremark/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/Coremark/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index 405061192ff..00000000000 --- a/Examples/MAX32572/Coremark/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=Coremark -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32572 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/Coremark/.vscode/README.md b/Examples/MAX32572/Coremark/.vscode/README.md deleted file mode 100644 index b6456f10b6a..00000000000 --- a/Examples/MAX32572/Coremark/.vscode/README.md +++ /dev/null @@ -1,547 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) -* [Wiki](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/wiki) - * If it's not in the readme, check the wiki. - * If it's not in the wiki, open a ticket! - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX-series](https://www.maximintegrated.com/en/products/microcontrollers.html) microcontrollers. - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) -* [C/C++ VSCode Extension](https://github.com/microsoft/vscode-cpptools) -* [Maxim Micros SDK](https://www.maximintegrated.com/content/maximintegrated/en/design/software-description.html/swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.maximintegrated.com/en/products/microcontrollers/artificial-intelligence.html/tab4/vd_1_2eaktism#.YyDxHaE8U_Y.mailto). - -1. Download & install the Maxim Microcontrollers SDK for your OS from the links below. - * [Windows](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018720A) - * [MacOS](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MaximSDK installation, taking note of where the MaximSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -8. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/open_settings_json.jpg) - -9. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the MaximSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -10. Save your changes to the file with `CTRL + S` and restart VS Code. - -11. That's it! You're ready to start using Visual Studio Code to develop with Maxim's Microcontrollers. The MaximSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the SDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MaximSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for Maxim's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, Maxim's microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MaximSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MaximSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, Maxim's perpiheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MaximSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operater is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **IDE/command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The following configuration variables are available. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MaximSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MaximSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MaximSDK. By default, the Makefile will attempt to locate the MaximSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the SDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MaximSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MaximSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.maximintegrated.com/en/design/technical-documents/userguides-and-manuals/7/7637.html). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MaximSDK will be searched. If the [SBT installer](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the Maxim test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the MaximSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the SDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/MaximIntegratedTechSupport/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/Coremark/.vscode/launch.json b/Examples/MAX32572/Coremark/.vscode/launch.json deleted file mode 100644 index 2e118bf25b0..00000000000 --- a/Examples/MAX32572/Coremark/.vscode/launch.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"set $pc=Reset_Handler"}, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Coremark/.vscode/settings.json b/Examples/MAX32572/Coremark/.vscode/settings.json deleted file mode 100644 index 61dff5d6baa..00000000000 --- a/Examples/MAX32572/Coremark/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"max32572.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Coremark/.vscode/tasks.json b/Examples/MAX32572/Coremark/.vscode/tasks.json deleted file mode 100644 index 81917f6f083..00000000000 --- a/Examples/MAX32572/Coremark/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Coremark/Coremark.launch b/Examples/MAX32572/Coremark/Coremark.launch deleted file mode 100644 index 73860fe76d7..00000000000 --- a/Examples/MAX32572/Coremark/Coremark.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Coremark/Makefile b/Examples/MAX32572/Coremark/Makefile deleted file mode 100644 index c43a758f235..00000000000 --- a/Examples/MAX32572/Coremark/Makefile +++ /dev/null @@ -1,399 +0,0 @@ -# /******************************************************************************* -# * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. -# * -# * Permission is hereby granted, free of charge, to any person obtaining a -# * copy of this software and associated documentation files (the "Software"), -# * to deal in the Software without restriction, including without limitation -# * the rights to use, copy, modify, merge, publish, distribute, sublicense, -# * and/or sell copies of the Software, and to permit persons to whom the -# * Software is furnished to do so, subject to the following conditions: -# * -# * The above copyright notice and this permission notice shall be included -# * in all copies or substantial portions of the Software. -# * -# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# * OTHER DEALINGS IN THE SOFTWARE. -# * -# * Except as contained in this notice, the name of Maxim Integrated -# * Products, Inc. shall not be used except as stated in the Maxim Integrated -# * Products, Inc. Branding Policy. -# * -# * The mere transfer of this software does not imply any licenses -# * of trade secrets, proprietary technology, copyrights, patents, -# * trademarks, maskwork rights, or any other form of intellectual -# * property whatsoever. Maxim Integrated Products, Inc. retains all -# * ownership rights. -# ******************************************************************************* -# */ - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32572 -TARGET_UC := MAX32572 -TARGET_LC := max32572 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -include ./project.mk -$(info Loaded project.mk) - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Default optimization level for debug builds (make DEBUG=1 ...) -# gcc.mk checks for this flag to add some additional debug -# info to the build, and should be used when you really need to -# debug. -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Fallback default optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles, who check this too -export MFLOAT_ABI - -ifeq "$(RISCV_CORE)" "" -# Default linkerfile is only specified for standard Arm-core projects. -# Otherwise, gcc_riscv.mk sets the appropriate riscv linkerfile. -LINKERFILE ?= $(TARGET_LC).ld -LINKERPATH ?= $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC - -# Check if linkerfile exists -ifeq ("$(wildcard $(LINKERPATH)/$(LINKERFILE))","") -# Doesn't exists, attempt to use root project folder. -LINKERPATH:=. -endif - -# Form full path to linkerfile. Works around MSYS2 edge case from (see MSDK-903). -LINKERFILE:=$(LINKERPATH)/$(LINKERFILE) -endif - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/Coremark/README.md b/Examples/MAX32572/Coremark/README.md deleted file mode 100644 index 44629b4d9aa..00000000000 --- a/Examples/MAX32572/Coremark/README.md +++ /dev/null @@ -1,49 +0,0 @@ -## Description - -This example determines the Coremark rating for the MAX32xxx and MAX78xxx series microcontrollers. - -The Coremark benchmark is an industry standard benchmark which gives an MCU core a rating based on how fast it can execute multiple iterations of the standard Coremark test (which includes executing list processing, matrix manipulation and state machine algorithms, and computing CRC values). The final score is the number of Coremark test iterations/sec. For example, in the sample print out below, the micro received a score of 251.685201 iterations/sec. - -For more information, visit the [CoreMark webpage](https://www.eembc.org/coremark/) and look through the [README](../../../Libraries/Coremark/README.md). - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -To comply with the CoreMark rules, the only source files which are included in this example directory are the core_portme.c/.h files, the rest (including main) are located in the [Coremark](../../../Libraries/Coremark/) library. - -## Required Connections -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Close jumper JP10 (LED1 EN). - -## Expected Output - -The Console UART of the device will output these messages: - -``` -SystemCoreClock 96000000 -I-Cache enabled -2K performance run parameters for coremark. -CoreMark Size : 666 -Total ticks : 11919652 -Total time (secs): 11.919652 -Iterations/Sec : 251.685201 -Iterations : 3000 -Compiler version : GCC10.3.1 20210824 (release) -Compiler flags : -Memory location : STATIC -seedcrc : 0xe9f5 -[0]crclist : 0xe714 -[0]crcmatrix : 0x1fd7 -[0]crcstate : 0x8e3a -[0]crcfinal : 0xcc42 -Correct operation validated. See README.md for run and reporting rules. -CoreMark 1.0 : 251.685201 / GCC10.3.1 20210824 (release) / STATIC -``` - diff --git a/Examples/MAX32572/Coremark/core_portme.c b/Examples/MAX32572/Coremark/core_portme.c deleted file mode 100644 index 4e02bdc9e25..00000000000 --- a/Examples/MAX32572/Coremark/core_portme.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - File : core_portme.c -*/ -#include -#include -#include "coremark.h" - -#if VALIDATION_RUN -volatile ee_s32 seed1_volatile = 0x3415; -volatile ee_s32 seed2_volatile = 0x3415; -volatile ee_s32 seed3_volatile = 0x66; -#endif -#if PERFORMANCE_RUN -volatile ee_s32 seed1_volatile = 0x0; -volatile ee_s32 seed2_volatile = 0x0; -volatile ee_s32 seed3_volatile = 0x66; -#endif -#if PROFILE_RUN -volatile ee_s32 seed1_volatile = 0x8; -volatile ee_s32 seed2_volatile = 0x8; -volatile ee_s32 seed3_volatile = 0x8; -#endif -volatile ee_s32 seed4_volatile = ITERATIONS; -volatile ee_s32 seed5_volatile = 0; -/* Porting : Timing functions - How to capture time and convert to seconds must be ported to whatever is supported by the platform. - e.g. Read value from on board RTC, read value from cpu clock cycles performance counter etc. - Sample implementation for standard time.h and windows.h definitions included. -*/ - -/** Define Host specific (POSIX), or target specific global time variables. */ -static unsigned int start_time_val, stop_time_val; - -/* Function : start_time - This function will be called right before starting the timed portion of the benchmark. - - Implementation may be capturing a system timer (as implemented in the example code) - or zeroing some system parameters - e.g. setting the cpu clocks cycles to 0. -*/ -#include "tmr.h" -#include "sfcc_regs.h" -extern void *_text; - -void start_time(void) -{ - printf("\n\nSystemCoreClock %u\n", (unsigned int)SystemCoreClock); - - MXC_SFCC->ctrl |= MXC_F_SFCC_CTRL_EN; - if (MXC_SFCC->ctrl & MXC_F_SFCC_CTRL_EN) { - printf("I-Cache enabled\n"); - } - - MXC_TMR_SW_Start(MXC_TMR0); - start_time_val = 0; -} -/* Function : stop_time - This function will be called right after ending the timed portion of the benchmark. - - Implementation may be capturing a system timer (as implemented in the example code) - or other system parameters - e.g. reading the current value of cpu cycles counter. -*/ -void stop_time(void) -{ - stop_time_val = MXC_TMR_SW_Stop(MXC_TMR0); -} -/* Function : get_time - Return an abstract "ticks" number that signifies time on the system. - - Actual value returned may be cpu cycles, milliseconds or any other value, - as long as it can be converted to seconds by . - This methodology is taken to accomodate any hardware or simulated platform. - The sample implementation returns millisecs by default, - and the resolution is controlled by -*/ -CORE_TICKS get_time(void) -{ - return stop_time_val; -} -/* Function : time_in_secs - Convert the value returned by get_time to seconds. - - The type is used to accomodate systems with no support for floating point. - Default implementation implemented by the EE_TICKS_PER_SEC macro above. -*/ -secs_ret time_in_secs(CORE_TICKS ticks) -{ - // 'ticks' from stop_time is reported in microseconds. - return ticks / 1000000.0; -} - -ee_u32 default_num_contexts = 1; - -/* Function : portable_init - Target specific initialization code - Test for some common mistakes. -*/ -void portable_init(core_portable *p, int *argc, char *argv[]) -{ - if (sizeof(ee_ptr_int) != sizeof(ee_u8 *)) { - ee_printf("ERROR! Please define ee_ptr_int to a type that holds a pointer!\n"); - } - if (sizeof(ee_u32) != 4) { - ee_printf("ERROR! Please define ee_u32 to a 32b unsigned type!\n"); - } - - // Make sure system clock is set to fastest clock. - MXC_SYS_Clock_Select(MXC_SYS_CLOCK_IPO); - - p->portable_id = 1; -} -/* Function : portable_fini - Target specific final code -*/ -void portable_fini(core_portable *p) -{ - p->portable_id = 0; -} diff --git a/Examples/MAX32572/Coremark/core_portme.h b/Examples/MAX32572/Coremark/core_portme.h deleted file mode 100644 index 0350d3b2d6e..00000000000 --- a/Examples/MAX32572/Coremark/core_portme.h +++ /dev/null @@ -1,178 +0,0 @@ -/* File : core_portme.h */ -/* Topic : Description - This file contains configuration constants required to execute on different platforms -*/ -#ifndef CORE_PORTME_H -#define CORE_PORTME_H -/************************/ -/* Data types and settings */ -/************************/ -/* Configuration : HAS_FLOAT - Define to 1 if the platform supports floating point. -*/ -#ifndef HAS_FLOAT -#define HAS_FLOAT 1 -#endif -/* Configuration : HAS_TIME_H - Define to 1 if platform has the time.h header file, - and implementation of functions thereof. -*/ -#ifndef HAS_TIME_H -#define HAS_TIME_H 0 -#endif -/* Configuration : USE_CLOCK - Define to 1 if platform has the time.h header file, - and implementation of functions thereof. -*/ -#ifndef USE_CLOCK -#define USE_CLOCK 0 -#endif -/* Configuration : HAS_STDIO - Define to 1 if the platform has stdio.h. -*/ -#ifndef HAS_STDIO -#define HAS_STDIO 1 -#endif -/* Configuration : HAS_PRINTF - Define to 1 if the platform has stdio.h and implements the printf function. -*/ -#ifndef HAS_PRINTF -#define HAS_PRINTF 1 -#endif - -/* Configuration : CORE_TICKS - Define type of return from the timing functions. - */ -typedef unsigned int CORE_TICKS; - -/* Definitions : COMPILER_VERSION, COMPILER_FLAGS, MEM_LOCATION - Initialize these strings per platform -*/ -#ifndef COMPILER_VERSION -#ifdef __GNUC__ -#define COMPILER_VERSION "GCC" __VERSION__ -#else -#define COMPILER_VERSION "Please put compiler version here (e.g. gcc 4.1)" -#endif -#endif -#ifndef COMPILER_FLAGS -#define COMPILER_FLAGS "" -#endif -#ifndef MEM_LOCATION -#define MEM_LOCATION "STATIC" -#endif - -/* Data Types : - To avoid compiler issues, define the data types that need ot be used for 8b, 16b and 32b in . - - *Imprtant* : - ee_ptr_int needs to be the data type used to hold pointers, otherwise coremark may fail!!! -*/ -typedef signed short ee_s16; -typedef unsigned short ee_u16; -typedef signed int ee_s32; -typedef double ee_f32; -typedef unsigned char ee_u8; -typedef unsigned int ee_u32; -typedef ee_u32 ee_ptr_int; -typedef unsigned int ee_size_t; -/* align_mem : - This macro is used to align an offset to point to a 32b value. It is used in the Matrix algorithm to initialize the input memory blocks. -*/ -#define align_mem(x) (void *)(4 + (((ee_ptr_int)(x)-1) & ~3)) - -/* Configuration : SEED_METHOD - Defines method to get seed values that cannot be computed at compile time. - - Valid values : - SEED_ARG - from command line. - SEED_FUNC - from a system function. - SEED_VOLATILE - from volatile variables. -*/ -#ifndef SEED_METHOD -#define SEED_METHOD SEED_VOLATILE -#endif - -/* Configuration : MEM_METHOD - Defines method to get a block of memry. - - Valid values : - MEM_MALLOC - for platforms that implement malloc and have malloc.h. - MEM_STATIC - to use a static memory array. - MEM_STACK - to allocate the data block on the stack (NYI). -*/ -#ifndef MEM_METHOD -#define MEM_METHOD MEM_STATIC -#endif - -/* Configuration : MULTITHREAD - Define for parallel execution - - Valid values : - 1 - only one context (default). - N>1 - will execute N copies in parallel. - - Note : - If this flag is defined to more then 1, an implementation for launching parallel contexts must be defined. - - Two sample implementations are provided. Use or to enable them. - - It is valid to have a different implementation of and in , - to fit a particular architecture. -*/ -#ifndef MULTITHREAD -#define MULTITHREAD 1 -#define USE_PTHREAD 0 -#define USE_FORK 0 -#define USE_SOCKET 0 -#endif - -/* Configuration : MAIN_HAS_NOARGC - Needed if platform does not support getting arguments to main. - - Valid values : - 0 - argc/argv to main is supported - 1 - argc/argv to main is not supported - - Note : - This flag only matters if MULTITHREAD has been defined to a value greater then 1. -*/ -#ifndef MAIN_HAS_NOARGC -#define MAIN_HAS_NOARGC 0 -#endif - -/* Configuration : MAIN_HAS_NORETURN - Needed if platform does not support returning a value from main. - - Valid values : - 0 - main returns an int, and return value will be 0. - 1 - platform does not support returning a value from main -*/ -#ifndef MAIN_HAS_NORETURN -#define MAIN_HAS_NORETURN 0 -#endif - -/* Variable : default_num_contexts - Not used for this simple port, must cintain the value 1. -*/ -extern ee_u32 default_num_contexts; - -typedef struct CORE_PORTABLE_S { - ee_u8 portable_id; -} core_portable; - -/* target specific init/fini */ -void portable_init(core_portable *p, int *argc, char *argv[]); -void portable_fini(core_portable *p); - -#if !defined(PROFILE_RUN) && !defined(PERFORMANCE_RUN) && !defined(VALIDATION_RUN) -#if (TOTAL_DATA_SIZE == 1200) -#define PROFILE_RUN 1 -#elif (TOTAL_DATA_SIZE == 2000) -#define PERFORMANCE_RUN 1 -#else -#define VALIDATION_RUN 1 -#endif -#endif - -#endif /* CORE_PORTME_H */ diff --git a/Examples/MAX32572/Coremark/project.mk b/Examples/MAX32572/Coremark/project.mk deleted file mode 100644 index 97b3ab93144..00000000000 --- a/Examples/MAX32572/Coremark/project.mk +++ /dev/null @@ -1,42 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -# ********************************************************** - -# Add your config here! - -# Include Coremark library in search paths. -IPATH+=$(MAXIM_PATH)/Libraries/Coremark -VPATH+=$(MAXIM_PATH)/Libraries/Coremark - -# To comply with the Coremark rules, these source files -# must be unmodified. They are located in the Coremark -# library. -SRCS+=core_main.c -SRCS+=core_list_join.c -SRCS+=core_matrix.c -SRCS+=core_state.c -SRCS+=core_util.c - -# This source file can be modified, however it has -# already been set up for the MAX32xxx and MAX78xxx -# series microcontrollers. -SRCS+=core_portme.c - -# CoreMark build flags -PROJ_CFLAGS+=-DPERFORMANCE_RUN=1 # Run the CoreMark test with performance parameters -PROJ_CFLAGS+=-DITERATIONS=4000 # Number of times the coremark test is executed - -PROJ_CFLAGS+=-funroll-all-loops -PROJ_CFLAGS+=-fgcse-sm -PROJ_CFLAGS+=-fgcse-las -PROJ_CFLAGS+=-finline-functions -PROJ_CFLAGS+=-finline-limit=1000 - -MFLOAT_ABI=soft -MXC_OPTIMIZE_CFLAGS=-O2 -AUTOSEARCH=0 diff --git a/Examples/MAX32572/DES/.cproject b/Examples/MAX32572/DES/.cproject deleted file mode 100644 index 005cce927ee..00000000000 --- a/Examples/MAX32572/DES/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/DES/.project b/Examples/MAX32572/DES/.project deleted file mode 100644 index 918f725d175..00000000000 --- a/Examples/MAX32572/DES/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - DES - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/DES/.vscode/c_cpp_properties.json b/Examples/MAX32572/DES/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/DES/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/DES/.vscode/launch.json b/Examples/MAX32572/DES/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/DES/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/DES/.vscode/settings.json b/Examples/MAX32572/DES/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/DES/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/DES/.vscode/tasks.json b/Examples/MAX32572/DES/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/DES/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/DES/DES.launch b/Examples/MAX32572/DES/DES.launch deleted file mode 100644 index 45b0d698348..00000000000 --- a/Examples/MAX32572/DES/DES.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/DES/Makefile b/Examples/MAX32572/DES/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/DES/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/DES/README.md b/Examples/MAX32572/DES/README.md deleted file mode 100644 index d0a262c155e..00000000000 --- a/Examples/MAX32572/DES/README.md +++ /dev/null @@ -1,38 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** DES Example ***** -DES ECB Encryption ... Pass. -Pass. -DES ECB Decryption ... Pass. -Pass. -Triple DES ECB Encryption ... Pass. -Pass. -Triple DES ECB Decryption ... Pass. -Pass. - -Example complete. -``` diff --git a/Examples/MAX32572/DES/main.c b/Examples/MAX32572/DES/main.c deleted file mode 100644 index 0f6e26e6fc7..00000000000 --- a/Examples/MAX32572/DES/main.c +++ /dev/null @@ -1,324 +0,0 @@ -/** - * @file main.c - * @brief Data Encryption Standard (DES) Example. - * @details Encryption and decryption of DES on different modes (ECB) with different bit sizes (128, 192, and 256) - */ - -/******************************************************************************* - * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2018-09-05 16:46:11 -0500 (Wed, 05 Sep 2018) $ - * $Revision: 37695 $ - * - ******************************************************************************/ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Definitions *****/ - -volatile int wait; -volatile int callback_result; - -#define MXC_DES_DATA_LEN \ - (64 / \ - 8) /**< Number of bytes in an DES plaintext or cyphertext block, which are always 64-bits long. */ -#define MXC_DES_KEY_LEN (64 / 8) /**< Number of bytes in a TDES key. */ -#define MXC_TDES_KEY_LEN (192 / 8) /**< Number of bytes in a TDES key. */ - -/***** Globals *****/ -unsigned int rnd_no[4] = { 0 }; -uint8_t var_rnd_no[16] = { 0 }; - -char temp[] = { 0x00, 0x00, 0x00 }; - -/***** Globals *****/ -char result[512]; - -/***** Functions *****/ -void CTB_IRQHandler(void) -{ - MXC_CTB_Handler(); -} -void CRYPTO_IRQHandler(void) -{ - MXC_CTB_Handler(); -} - -void Test_Callback(void *req, int result) -{ - wait = 0; - callback_result = result; -} - -//Convert ascii to byte -void ascii_to_byte(const char *src, char *dst, int len) -{ - int i; - - for (i = 0; i < len; ++i) { - int val; - temp[0] = *src; - src++; - temp[1] = *src; - src++; - sscanf(temp, "%0x", &val); - dst[i] = val; - } - - return; -} - -//Verify by comparing calculated to expected -int DES_check(char *calculated, char *expected, int len) -{ - int i, fail = 0; - - for (i = 0; i < len; ++i) { - if (calculated[i] != expected[i]) { - ++fail; - } - } - - if (fail > 0) { - printf("Fail.\n"); - } else { - printf("Pass.\n"); - return 0; - } - - return -1; -} - -int DES_ECB_enc(int asynchronous) -{ - char *xkey = "2f5d4b8c12a4a9c1"; - char key[MXC_DES_KEY_LEN]; - char *iv_src = ""; - char iv_dst[MXC_DES_DATA_LEN]; - char *xmsg = "0000000000000000"; - char msg[MXC_DES_DATA_LEN]; - char *xexpected = "20597b6decaf7166"; - char expected[MXC_DES_DATA_LEN]; - - ascii_to_byte(xkey, key, MXC_DES_KEY_LEN); - ascii_to_byte(iv_src, iv_dst, MXC_DES_DATA_LEN); - ascii_to_byte(xmsg, msg, MXC_DES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)msg, MXC_DES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_DES); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_DES_KEY_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_EncryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Encrypt(&cipher_req); - } - - ascii_to_byte(xexpected, expected, MXC_DES_DATA_LEN); - - return DES_check(result, expected, MXC_DES_DATA_LEN); -} - -int DES_ECB_dec(int asynchronous) -{ - char *xkey = "00c3de5446614d35"; - char key[MXC_DES_KEY_LEN]; - char *iv_src = ""; - char iv_dst[MXC_DES_DATA_LEN]; - char *xct = "d940635dcb8148ae"; - char ct[MXC_DES_DATA_LEN]; - char *xexpected = "0000000000000000"; - char expected[MXC_DES_DATA_LEN]; - - ascii_to_byte(xkey, key, MXC_DES_KEY_LEN); - ascii_to_byte(iv_src, iv_dst, MXC_DES_DATA_LEN); - ascii_to_byte(xct, ct, MXC_DES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)ct, MXC_DES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_DES); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_DES_KEY_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_DecryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Decrypt(&cipher_req); - } - - ascii_to_byte(xexpected, expected, MXC_DES_DATA_LEN); - - return DES_check(result, expected, MXC_DES_DATA_LEN); -} - -int TDES_ECB_enc(int asynchronous) -{ - char *xkey = "2f5d4b8c12a4a9c1"; - char key[MXC_DES_KEY_LEN]; - char *iv_src = ""; - char iv_dst[MXC_DES_DATA_LEN]; - char *xmsg = "0000000000000000"; - char msg[MXC_DES_DATA_LEN]; - char *xexpected = "20597b6decaf7166"; - char expected[MXC_DES_DATA_LEN]; - - ascii_to_byte(xkey, key, MXC_DES_KEY_LEN); - ascii_to_byte(iv_src, iv_dst, MXC_DES_DATA_LEN); - ascii_to_byte(xmsg, msg, MXC_DES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)msg, MXC_DES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_TDES); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_DES_KEY_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_EncryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Encrypt(&cipher_req); - } - - ascii_to_byte(xexpected, expected, MXC_DES_DATA_LEN); - - return DES_check(result, expected, MXC_DES_DATA_LEN); -} - -int TDES_ECB_dec(int asynchronous) -{ - char *xkey = "00c3de5446614d35"; - char key[MXC_DES_KEY_LEN]; - char *iv_src = ""; - char iv_dst[MXC_DES_DATA_LEN]; - char *xct = "d940635dcb8148ae"; - char ct[MXC_DES_DATA_LEN]; - char *xexpected = "0000000000000000"; - char expected[MXC_DES_DATA_LEN]; - - ascii_to_byte(xkey, key, MXC_DES_KEY_LEN); - ascii_to_byte(iv_src, iv_dst, MXC_DES_DATA_LEN); - ascii_to_byte(xct, ct, MXC_DES_DATA_LEN); - - mxc_ctb_cipher_req_t cipher_req = { (uint8_t *)ct, MXC_DES_DATA_LEN, (uint8_t *)iv_src, - (uint8_t *)result, &Test_Callback }; - - // Reset crypto block - MXC_CTB_Init(MXC_CTB_FEATURE_CIPHER | MXC_CTB_FEATURE_DMA); - MXC_CTB_EnableInt(); - - MXC_CTB_Cipher_SetMode(MXC_CTB_MODE_ECB); - MXC_CTB_Cipher_SetCipher(MXC_CTB_CIPHER_TDES); - MXC_CTB_Cipher_SetKeySource(MXC_CTB_CIPHER_KEY_SOFTWARE); - - // Load key into cipher key register - MXC_CTB_Cipher_SetKey((uint8_t *)key, MXC_DES_DATA_LEN); - - if (asynchronous) { - wait = 1; - MXC_CTB_Cipher_DecryptAsync(&cipher_req); - - while (wait) {} - } else { - MXC_CTB_Cipher_Decrypt(&cipher_req); - } - - ascii_to_byte(xexpected, expected, MXC_DES_DATA_LEN); - - return DES_check(result, expected, MXC_DES_DATA_LEN); -} - -// ***************************************************************************** -int main(void) -{ - printf("\n***** DES Example *****\n"); - - int fail = 0; - - printf("DES ECB Encryption ... "); - fail += DES_ECB_enc(0); - fail += DES_ECB_enc(1); - printf("DES ECB Decryption ... "); - fail += DES_ECB_dec(0); - fail += DES_ECB_dec(1); - printf("Triple DES ECB Encryption ... "); - fail += TDES_ECB_enc(0); - fail += TDES_ECB_enc(1); - printf("Triple DES ECB Decryption ... "); - fail += TDES_ECB_dec(0); - fail += TDES_ECB_dec(1); - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/DMA/.cproject b/Examples/MAX32572/DMA/.cproject deleted file mode 100644 index 1802ff6f86f..00000000000 --- a/Examples/MAX32572/DMA/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/DMA/.project b/Examples/MAX32572/DMA/.project deleted file mode 100644 index d15c5dee94e..00000000000 --- a/Examples/MAX32572/DMA/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - DMA - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/DMA/.vscode/c_cpp_properties.json b/Examples/MAX32572/DMA/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/DMA/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/DMA/.vscode/launch.json b/Examples/MAX32572/DMA/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/DMA/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/DMA/.vscode/settings.json b/Examples/MAX32572/DMA/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/DMA/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/DMA/.vscode/tasks.json b/Examples/MAX32572/DMA/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/DMA/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/DMA/DMA.launch b/Examples/MAX32572/DMA/DMA.launch deleted file mode 100644 index f36fd1d9c28..00000000000 --- a/Examples/MAX32572/DMA/DMA.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/DMA/Makefile b/Examples/MAX32572/DMA/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/DMA/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/DMA/README.md b/Examples/MAX32572/DMA/README.md deleted file mode 100644 index aa9dbf7b8cf..00000000000 --- a/Examples/MAX32572/DMA/README.md +++ /dev/null @@ -1,39 +0,0 @@ -## Description - -A simple DMA transaction is shown that copies a block of memory from one location to another. - -A second more complex memory-to-memory DMA transaction is then shown that chains two transfers together. A callback function is used to notify the application once both transfers have completed. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** DMA Example ***** -Transfer from memory to memory. -Data verified. - -Transfer with Reload and Callback. -Data verified. - -Example Succeeded -``` - - diff --git a/Examples/MAX32572/DMA/main.c b/Examples/MAX32572/DMA/main.c deleted file mode 100644 index 5d0062d9a16..00000000000 --- a/Examples/MAX32572/DMA/main.c +++ /dev/null @@ -1,278 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief DMA Example - * @details This runs through two DMA examples, first being memory-to-memory, - * second being a transfer with reload and callback. - */ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Definitions *****/ - -#define MAX_CHANNEL 16 -#define MAX_SIZE 64 - -/***** Globals *****/ -int mychannel = -1; -volatile int flag = 0; - -/***** Functions *****/ -void my_int_func(int a, int b) -{ - int flags; - flags = MXC_DMA_ChannelGetFlags(mychannel); - MXC_DMA_ChannelClearFlags(mychannel, flags); -} - -void memCpyComplete(void *dest) -{ - flag++; -} - -void DMA0_IRQHandler() -{ - MXC_DMA_Handler(); -} - -int example1(void) -{ - printf("Transfer from memory to memory.\n"); - int fail = 0; - int retval; - int i = 0; - - //Initialize data before transfer - uint8_t *srcdata, *dstdata; - srcdata = (uint8_t *)malloc(MAX_SIZE); - dstdata = (uint8_t *)malloc(MAX_SIZE); - - for (i = 0; i < MAX_SIZE; ++i) { - srcdata[i] = i; - dstdata[i] = 0; - } - - retval = MXC_DMA_Init(); - - if (retval != E_NO_ERROR) { - printf("Failed MXC_DMA_Init().\n"); - fail += 1; - } else { - flag = 0; - MXC_DMA_MemCpy(dstdata, srcdata, MAX_SIZE, memCpyComplete); - - while (flag == 0) {} - - // //Demo of acquiring channels - // for (i = 0; i < MAX_CHANNEL; ++i) { - // retval = MXC_DMA_AcquireChannel(); - // if (retval == E_BAD_STATE) { - // printf("Failed to acquire channel: %d\n", i); - // while(1); - // } - // channels[i] = retval; - // } - - // //Only keeping the first channel [0] for use - // for (i = 1; i < MAX_CHANNEL; ++i) { - // retval = MXC_DMA_ReleaseChannel(channels[i]); - // if (retval != E_NO_ERROR) { - // printf("Failed to release channel %d\n", i); - // while(1); - // } - // } - - // mxc_dma_srcdst_t firstTransfer; - // firstTransfer.ch = channels[0]; - // firstTransfer.source = srcdata; - // firstTransfer.dest = dstdata; - // firstTransfer.len = MAX_SIZE; - - // mxc_dma_config_t config; - // config.ch = channels[0]; - // config.reqsel = MXC_DMA_REQUEST_MEMTOMEM; - // config.srcwd = MXC_DMA_WIDTH_WORD; - // config.dstwd = MXC_DMA_WIDTH_WORD; - // config.srcinc_en = 1; - // config.dstinc_en = 1; - - // retval = MXC_DMA_ConfigChannel(config, firstTransfer); - - // if (retval != E_NO_ERROR) { - // printf("Failed to config channel\n"); - // while(1); - // } - - // printf("Starting transfer\n"); - - // if (MXC_DMA_Start(channels[0]) != E_NO_ERROR) { - // printf("Failed to start.\n"); - // while(1); - // } - - //Validate - if (memcmp(srcdata, dstdata, MAX_SIZE) != 0) { - printf("Data mismatch.\n"); - fail += 1; - } else { - printf("Data verified.\n"); - } - - // if (MXC_DMA_ReleaseChannel(channels[0]) != E_NO_ERROR) { - // printf("Failed to release channel 0\n"); - // while(1); - // } - } - - free(srcdata); - free(dstdata); - - return fail; -} - -int example2(void) -{ - printf("\nTransfer with Reload and Callback.\n"); - int fail = 0; - int i, retval; - - //Init data - uint8_t *srcdata, *dstdata, *srcdata2, *dstdata2; - srcdata = (uint8_t *)malloc(MAX_SIZE); - dstdata = (uint8_t *)malloc(MAX_SIZE); - srcdata2 = (uint8_t *)malloc(MAX_SIZE); - dstdata2 = (uint8_t *)malloc(MAX_SIZE); - - for (i = 0; i < MAX_SIZE; ++i) { - srcdata[i] = i; - dstdata[i] = 0; - //Different set of data - srcdata2[i] = MAX_SIZE - 1 - i; - dstdata2[i] = 0; - } - - NVIC_EnableIRQ(DMA0_IRQn); - __enable_irq(); - MXC_DMA_Init(); - mychannel = MXC_DMA_AcquireChannel(); - - mxc_dma_srcdst_t firstTransfer; - firstTransfer.ch = mychannel; - firstTransfer.source = srcdata; - firstTransfer.dest = dstdata; - firstTransfer.len = MAX_SIZE; - - mxc_dma_config_t config; - config.ch = mychannel; - config.reqsel = MXC_DMA_REQUEST_MEMTOMEM; - config.srcwd = MXC_DMA_WIDTH_WORD; - config.dstwd = MXC_DMA_WIDTH_WORD; - config.srcinc_en = 1; - config.dstinc_en = 1; - - mxc_dma_adv_config_t advConfig; - advConfig.ch = mychannel; - advConfig.prio = MXC_DMA_PRIO_HIGH; - advConfig.reqwait_en = 0; - advConfig.tosel = MXC_DMA_TIMEOUT_4_CLK; - advConfig.pssel = MXC_DMA_PRESCALE_DISABLE; - advConfig.burst_size = 32; - - MXC_DMA_ConfigChannel(config, firstTransfer); - MXC_DMA_AdvConfigChannel(advConfig); - - mxc_dma_srcdst_t secondTransfer; - secondTransfer.ch = mychannel; - secondTransfer.source = srcdata2; - secondTransfer.dest = dstdata2; - secondTransfer.len = MAX_SIZE; - - MXC_DMA_SetSrcDst(firstTransfer); - - retval = MXC_DMA_SetSrcReload(secondTransfer); - - if (retval != E_NO_ERROR) { - printf("Failed MXC_DMA_SetReload.\n"); - } - - MXC_DMA_SetCallback(mychannel, my_int_func); - MXC_DMA_EnableInt(mychannel); - MXC_DMA_Start(mychannel); - - // Validate - if (memcmp(srcdata, dstdata, MAX_SIZE) != 0 || memcmp(srcdata2, dstdata2, MAX_SIZE) != 0) { - printf("Data mismatch.\n"); - fail += 1; - } else { - printf("Data verified.\n"); - } - - if (MXC_DMA_ReleaseChannel(mychannel) != E_NO_ERROR) { - printf("Failed to release channel 0\n"); - fail += 1; - } - - free(srcdata); - free(dstdata); - free(srcdata2); - free(dstdata2); - - return fail; -} - -// ***************************************************************************** -int main(void) -{ - int fail = 0; - printf("***** DMA Example *****\n"); - - NVIC_EnableIRQ(DMA0_IRQn); - - fail += example1(); - fail += example2(); - - if (fail != 0) { - printf("\nExample failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/Flash/.cproject b/Examples/MAX32572/Flash/.cproject deleted file mode 100644 index 8ba1afdb833..00000000000 --- a/Examples/MAX32572/Flash/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Flash/.project b/Examples/MAX32572/Flash/.project deleted file mode 100644 index a237c55b593..00000000000 --- a/Examples/MAX32572/Flash/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Flash - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Flash/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/Flash/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index f56e2cac3f6..00000000000 --- a/Examples/MAX32572/Flash/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=Flash -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX78000 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/Flash/.vscode/README.md b/Examples/MAX32572/Flash/.vscode/README.md deleted file mode 100644 index b6456f10b6a..00000000000 --- a/Examples/MAX32572/Flash/.vscode/README.md +++ /dev/null @@ -1,547 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) -* [Wiki](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/wiki) - * If it's not in the readme, check the wiki. - * If it's not in the wiki, open a ticket! - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX-series](https://www.maximintegrated.com/en/products/microcontrollers.html) microcontrollers. - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) -* [C/C++ VSCode Extension](https://github.com/microsoft/vscode-cpptools) -* [Maxim Micros SDK](https://www.maximintegrated.com/content/maximintegrated/en/design/software-description.html/swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.maximintegrated.com/en/products/microcontrollers/artificial-intelligence.html/tab4/vd_1_2eaktism#.YyDxHaE8U_Y.mailto). - -1. Download & install the Maxim Microcontrollers SDK for your OS from the links below. - * [Windows](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018720A) - * [MacOS](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MaximSDK installation, taking note of where the MaximSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -8. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/open_settings_json.jpg) - -9. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the MaximSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -10. Save your changes to the file with `CTRL + S` and restart VS Code. - -11. That's it! You're ready to start using Visual Studio Code to develop with Maxim's Microcontrollers. The MaximSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the SDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MaximSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for Maxim's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, Maxim's microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MaximSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MaximSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, Maxim's perpiheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MaximSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operater is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **IDE/command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The following configuration variables are available. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MaximSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MaximSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MaximSDK. By default, the Makefile will attempt to locate the MaximSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the SDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MaximSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MaximSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.maximintegrated.com/en/design/technical-documents/userguides-and-manuals/7/7637.html). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MaximSDK will be searched. If the [SBT installer](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the Maxim test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the MaximSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the SDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/MaximIntegratedTechSupport/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/Flash/.vscode/c_cpp_properties.json b/Examples/MAX32572/Flash/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Flash/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Flash/.vscode/launch.json b/Examples/MAX32572/Flash/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Flash/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Flash/.vscode/settings.json b/Examples/MAX32572/Flash/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Flash/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Flash/.vscode/tasks.json b/Examples/MAX32572/Flash/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Flash/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Flash/Flash.launch b/Examples/MAX32572/Flash/Flash.launch deleted file mode 100644 index 1171a794c81..00000000000 --- a/Examples/MAX32572/Flash/Flash.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Flash/Makefile b/Examples/MAX32572/Flash/Makefile deleted file mode 100644 index 4780bed9e9f..00000000000 --- a/Examples/MAX32572/Flash/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC)_ram.ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Flash/README.md b/Examples/MAX32572/Flash/README.md deleted file mode 100644 index 81f18fb5fb9..00000000000 --- a/Examples/MAX32572/Flash/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# Flash Example - -## Description - -This example demonstrates the usage of the Flash Controller (FLC) for general purpose storage. The following use-cases are demonstrated: - -1. Reading bytes from a specific location in Flash -2. Writing and verifying a test pattern into Flash -3. Modifying Flash contents - -Flash is **non-volatile** memory, meaning that it can retain state through power cycles. However, application code is stored in Flash and the FLC has some limitations in how it can perform writes, so there are a few minor challenges to deal with when using it for general purpose storage. This example demonstrates a simplified use-case that covers the most common scenarios. - -The _first_ time the example is run the application will use the FLC to write and verify a test pattern into the last page of flash. It will also write a 32-bit "magic" sequence into the page. - -Once complete, the example will prompt the user to reset or power cycle the board. This is to demonstrate that the written data is non-volatile and can survive a power cycle. - -The _second_ time the example is run the application will see the "magic" 32-bit sequence in flash. When this happens, the application will verify that the test pattern has survived the power cycle first. Then, it will _modify_ the "magic" sequence _without_ modifying the rest of the test pattern. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Building and Running - -### Software Setup - -**See the [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)** for detailed instructions on building and running example projects from supported development environments. - -This example supports all available MAX78000 evaluation platforms but comes _pre-configured_ for the MAX78000EVKIT by default. See [Board Support Packages](https://analog-devices-msdk.github.io/msdk/USERGUIDE/#board-support-packages) for instructions on how to configure the project for a different board. - -### Hardware Connections - -If using the MAX78000EVKIT: - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect pins 1 and 2 (P0_1) of the JH1 (UART 0 EN) header. -- Open a terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -If using the Featherboard (FTHR_RevA): - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Open a terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -After flashing and launching the example, an LED on the board will blink once every second. This is the application waiting for PushButton 1 (PB1) to be pressed, and gives a window for a serial terminal to be connected. After connecting the serial terminal, the application will output the following contents: - -``` -***** Flash Control Example ***** -Press Push Button 1 (PB1/SW1) to continue... - ----(Critical)--- -Successfully erased page 64 of flash (addr 0x1007e000) -Writing magic value 0xfeedbeef to address 0x1007e000... -Done! -Writing test pattern... -Done! ----------------- - -> Interrupt! (Flash operation done) - - -Now reset or power cycle the board... - -``` - -At this point, the "magic" and test pattern values have been written to flash. Press SW5 to reset the board, after which the application will restart. Push PB1 to continue the application again, which will print out the following contents: - -``` -***** Flash Control Example ***** -Press Push Button 1 (PB1/SW1) to continue... - -** Magic value 0xfeedbeef found at address 0x1007e000! ** - -(Flash modifications have survived a reset and/or power cycle.) - -Verifying test pattern... -Successfully verified test pattern! - ----(Critical)--- -Erasing magic... -Buffering page... -Erasing page... -Re-writing from buffer... -New magic value: 0xabcd1234 ----------------- - -> Interrupt! (Flash operation done) - -Verifying test pattern... -Successfully verified test pattern! - -Flash example successfully completed. - -``` diff --git a/Examples/MAX32572/Flash/main.c b/Examples/MAX32572/Flash/main.c deleted file mode 100644 index 32c7bac03cd..00000000000 --- a/Examples/MAX32572/Flash/main.c +++ /dev/null @@ -1,311 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Flash Controller Example - * @details This example demonstrates how to use the flash controller for general purpose - * storage. See the "README.md" file for more details. - */ - -/***** Includes *****/ -#include -#include -#include -#include "mxc_device.h" -#include "mxc_assert.h" -#include "mxc_delay.h" -#include "mxc_sys.h" -#include "nvic_table.h" -#include "flc.h" -#include "icc.h" -#include "uart.h" -#include "led.h" -#include "pb.h" - -/***** Definitions *****/ -#define TEST_ADDRESS (MXC_FLASH_MEM_BASE + MXC_FLASH_MEM_SIZE) - (1 * MXC_FLASH_PAGE_SIZE) -/* - ^ Points to last page in flash, which is guaranteed to be unused by this small example. - For larger applications it's recommended to reserve a dedicated flash region by creating - a modified linkerfile. -*/ -#define MAGIC 0xFEEDBEEF -#define TEST_VALUE 0xDEADBEEF - -/***** Globals *****/ -volatile uint32_t isr_cnt; -volatile uint32_t isr_flags; - -/***** Functions *****/ - -//****************************************************************************** - -int button_pressed = 0; -void button_handler() -{ - button_pressed = 1; -} - -//****************************************************************************** - -void FLC0_IRQHandler(void) -{ - uint32_t temp; - isr_cnt++; - temp = MXC_FLC0->intr; - - if (temp & MXC_F_FLC_INTR_DONE) { - MXC_FLC0->intr &= ~MXC_F_FLC_INTR_DONE; - printf(" -> Interrupt! (Flash operation done)\n\n"); - } - - if (temp & MXC_F_FLC_INTR_AF) { - MXC_FLC0->intr &= ~MXC_F_FLC_INTR_AF; - printf(" -> Interrupt! (Flash access failure)\n\n"); - } - - isr_flags = temp; -} - -void setup_irqs(void) -{ - /* - All functions modifying flash contents are set to execute out of RAM - with the (section(".flashprog")) attribute. Therefore, - - If: - - An FLC function is in the middle of execution (from RAM) - ... and... - - An interrupt triggers an ISR which executes from Flash - - ... Then a hard fault will be triggered. - - FLC functions should be: - 1) Executed from a critical code block (interrupts disabled) - or - 2) ISRs should be set to execute out of RAM with NVIC_SetRAM() - - This example demonstrates method #1. Any code modifying - flash is executed from a critical block, and the FLC - interrupts will trigger afterwards. - */ - - // NVIC_SetRAM(); // Execute ISRs out of SRAM (for use with #2 above) - MXC_NVIC_SetVector(FLC0_IRQn, FLC0_IRQHandler); // Assign ISR - NVIC_EnableIRQ(FLC0_IRQn); // Enable interrupt - - __enable_irq(); - - // Clear and enable flash programming interrupts - MXC_FLC_EnableInt(MXC_F_FLC_INTR_DONEIE | MXC_F_FLC_INTR_AFIE); - isr_flags = 0; - isr_cnt = 0; -} - -int write_test_pattern() -{ - int err; - // A flash address must be in the erased state before writing to it, because the - // flash controller can only write a 1 -> 0. - // See the microcontroller's User Guide for more details. - printf("Erasing page 64 of flash (addr 0x%x)...\n", TEST_ADDRESS); - err = MXC_FLC_PageErase(TEST_ADDRESS); - if (err) { - printf("Failed with error code %i\n", TEST_ADDRESS, err); - return err; - } - - printf("Writing magic value 0x%x to address 0x%x...\n", MAGIC, TEST_ADDRESS); - err = MXC_FLC_Write32(TEST_ADDRESS, MAGIC); - if (err) { - printf("Failed to write magic value to 0x%x with error code %i!\n", TEST_ADDRESS, err); - return err; - } - - printf("Writing test pattern...\n"); - for (uint32_t addr = TEST_ADDRESS + 4; addr < TEST_ADDRESS + MXC_FLASH_PAGE_SIZE; addr += 4) { - /* - A single flash page is organized into 4096 128-bit "words", but is still - byte-addressible. Increment the address by 4 bytes to write in 32-bit - chunks. - - The Flash Controller also only supports 128-bit writes. The driver - function below handles the technicalities of inserting the 32-bit value - into a 128-bit word without modifying the rest of the word. - */ - err = MXC_FLC_Write32(addr, TEST_VALUE); - if (err) { - printf("Failed write on address 0x%x with error code %i\n", addr, err); - return err; - } - } - printf("Done!\n"); - - return err; -} - -int validate_test_pattern() -{ - int err = 0; - - printf("Verifying test pattern...\n"); - uint32_t readval = 0; - for (uint32_t addr = TEST_ADDRESS + 4; addr < TEST_ADDRESS + MXC_FLASH_PAGE_SIZE; addr += 4) { - MXC_FLC_Read(addr, &readval, 4); - if (readval != TEST_VALUE) { - printf( - "Failed verification at address 0x%x with error code %i! Expected: 0x%x\tRead: 0x%x\n", - addr, err, TEST_VALUE, readval); - return E_ABORT; - } - } - - printf("Successfully verified test pattern!\n\n"); - return err; -} - -int erase_magic() -{ - /* - To modify a location in flash that has already been written to, - that location must first be restored to its erased state. - However, the flash controller only supports erasing a full page - at a time. - Therefore, the entire page must be buffered, erased, then modified. - */ - int err; - uint32_t buffer[MXC_FLASH_PAGE_SIZE >> 2] = { - 0xFFFFFFFF - }; // 8192 bytes per page / 4 bytes = 2048 uint32_t - - printf("Buffering page...\n"); - MXC_FLC_Read(TEST_ADDRESS, buffer, MXC_FLASH_PAGE_SIZE); - - printf("Erasing page...\n"); - err = MXC_FLC_PageErase(TEST_ADDRESS); - if (err) { - printf("Failed to erase page 0x%x with error code %i!\n", TEST_ADDRESS, err); - return err; - } - - printf("Erasing magic in buffer...\n"); - buffer[0] = 0xABCD1234; // Erase magic value - - printf("Re-writing from buffer...\n"); - for (int i = 0; i < (MXC_FLASH_PAGE_SIZE >> 2); i++) { - err = MXC_FLC_Write32(TEST_ADDRESS + 4 * i, buffer[i]); - if (err) { - printf("Failed at address 0x%x with error code %i\n", (TEST_ADDRESS + 4) * i, err); - return err; - } - } - uint32_t magic = 0; - MXC_FLC_Read(TEST_ADDRESS, &magic, 4); - printf("New magic value: 0x%x\n", magic); - return err; -} - -int main(void) -{ - int err = 0; - - printf("\n\n***** Flash Control Example *****\n"); - printf("Press Push Button 1 (PB1/SW1) to continue...\n\n"); - - PB_RegisterCallback(0, (pb_callback)button_handler); - - while (!button_pressed) { - LED_On(LED1); - MXC_Delay(MXC_DELAY_MSEC(500)); - LED_Off(LED1); - MXC_Delay(MXC_DELAY_MSEC(500)); - } - LED_Off(LED1); - - setup_irqs(); // See notes in function definition - - /* - Disable the instruction cache controller (ICC). - - Any code that modifies flash contents should disable the ICC, - since modifying flash contents may invalidate cached instructions. - */ - MXC_ICC_Disable(MXC_ICC0); - - uint32_t magic = 0; - MXC_FLC_Read(TEST_ADDRESS, &magic, 4); - - if (magic != MAGIC) { // Starting example for the first time. - // clang-format off - MXC_CRITICAL( - printf("---(Critical)---\n"); - err = write_test_pattern(); - printf("----------------\n"); - ) - // clang-format on - if (err) - return err; - - err = validate_test_pattern(); - if (err) - return err; - - printf("\nNow reset or power cycle the board...\n"); - } else { // Starting example after reset or power cycle - printf("** Magic value 0x%x found at address 0x%x! **\n\n", MAGIC, TEST_ADDRESS); - printf("(Flash modifications have survived a reset and/or power cycle.)\n\n"); - - err = validate_test_pattern(); - if (err) - return err; - - // clang-format off - MXC_CRITICAL( - printf("---(Critical)---\n"); - err = erase_magic(); - printf("----------------\n"); - ) - // clang-format on - if (err) - return err; - - err = validate_test_pattern(); - if (err) - return err; - - printf("Flash example successfully completed.\n"); - } - - return E_SUCCESS; -} diff --git a/Examples/MAX32572/Flash/project.mk b/Examples/MAX32572/Flash/project.mk deleted file mode 100644 index f068448db8a..00000000000 --- a/Examples/MAX32572/Flash/project.mk +++ /dev/null @@ -1,10 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -# ********************************************************** - -# Add your config here! diff --git a/Examples/MAX32572/FreeRTOSDemo/.cproject b/Examples/MAX32572/FreeRTOSDemo/.cproject deleted file mode 100644 index ffa838f2b7c..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/.cproject +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/FreeRTOSDemo/.project b/Examples/MAX32572/FreeRTOSDemo/.project deleted file mode 100644 index c801d457145..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - FreeRTOSDemo - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/FreeRTOSDemo/.vscode/c_cpp_properties.json b/Examples/MAX32572/FreeRTOSDemo/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/FreeRTOSDemo/.vscode/launch.json b/Examples/MAX32572/FreeRTOSDemo/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/FreeRTOSDemo/.vscode/settings.json b/Examples/MAX32572/FreeRTOSDemo/.vscode/settings.json deleted file mode 100755 index a911efcffae..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/.vscode/settings.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/include", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM4F", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/RISC-V" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers", - "${config:MAXIM_PATH}/Libraries/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM4F", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/RISC-V" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/FreeRTOSDemo/.vscode/tasks.json b/Examples/MAX32572/FreeRTOSDemo/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/FreeRTOSDemo/CLI-commands.c b/Examples/MAX32572/FreeRTOSDemo/CLI-commands.c deleted file mode 100644 index 4f76c3a32bb..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/CLI-commands.c +++ /dev/null @@ -1,366 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* Modified by Maxim Integrated 26-Jun-2015 to quiet compiler warnings */ -#include -#include - -/* FreeRTOS includes. */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* FreeRTOS+CLI includes. */ -#include "FreeRTOS_CLI.h" - -#include "rtc_regs.h" - -extern int disable_tickless; - -/* - * Defines a command that returns a table showing the state of each task at the - * time the command is called. - */ -static BaseType_t prvTaskStatsCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString); - -/* - * Define a command which reports how long the scheduler has been operating (uptime) - * - */ -static BaseType_t prvUptimeCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString); - -/* - * Defines a command that expects exactly three parameters. Each of the three - * parameter are echoed back one at a time. - */ -static BaseType_t prvThreeParameterEchoCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString); - -/* - * Defines a command that can take a variable number of parameters. Each - * parameter is echoes back one at a time. - */ -static BaseType_t prvParameterEchoCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString); - -/* Enable or disable tickless operation */ -static BaseType_t prvTickless(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString); - -/* Structure that defines the "ps" command line command. */ -static const CLI_Command_Definition_t xTaskStats = { - "ps", /* The command string to type. */ - "\r\nps:\r\n Displays a table showing the state of each FreeRTOS task\r\n\r\n", - prvTaskStatsCommand, /* The function to run. */ - 0 /* No parameters are expected. */ -}; - -/* Structure that defines the "uptime" command line command. */ -static const CLI_Command_Definition_t xUptime = { - "uptime", /* The command string to type. */ - "\r\nuptime:\r\n Displays the uptime of the FreeRTOS system\r\n\r\n", - prvUptimeCommand, /* The function to run. */ - 0 /* No parameters are expected. */ -}; - -/* Structure that defines the "tickless" command line command. */ -static const CLI_Command_Definition_t xTickless = { - "tickless", /* The command string to type. */ - "\r\ntickless <0/1>:\r\n Disable (0) or enable (1) tick-less operation\r\n\r\n", - prvTickless, /* The function to run. */ - 1 /* One parameter expected */ -}; - -/* Structure that defines the "echo_3_parameters" command line command. This -takes exactly three parameters that the command simply echos back one at a -time. */ -static const CLI_Command_Definition_t xThreeParameterEcho = { - "echo_3_parameters", - "\r\necho_3_parameters :\r\n Expects three parameters, echos each in " - "turn\r\n\r\n", - prvThreeParameterEchoCommand, /* The function to run. */ - 3 /* Three parameters are expected, which can take any value. */ -}; - -/* Structure that defines the "echo_parameters" command line command. This -takes a variable number of parameters that the command simply echos back one at -a time. */ -static const CLI_Command_Definition_t xParameterEcho = { - "echo_parameters", - "\r\necho_parameters <...>:\r\n Take variable number of parameters, echos each in turn\r\n\r\n", - prvParameterEchoCommand, /* The function to run. */ - -1 /* The user can enter any number of commands. */ -}; - -/*-----------------------------------------------------------*/ - -void vRegisterCLICommands(void) -{ - /* Register all the command line commands defined immediately above. */ - FreeRTOS_CLIRegisterCommand(&xTaskStats); - FreeRTOS_CLIRegisterCommand(&xUptime); - FreeRTOS_CLIRegisterCommand(&xTickless); - FreeRTOS_CLIRegisterCommand(&xThreeParameterEcho); - FreeRTOS_CLIRegisterCommand(&xParameterEcho); -} -/*-----------------------------------------------------------*/ - -static BaseType_t prvTaskStatsCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString) -{ - const char *const pcHeader = "Task State Priority Stack " - "#\r\n************************************************\r\n"; - - /* Remove compile time warnings about unused parameters, and check the - write buffer is not NULL. NOTE - for simplicity, this example assumes the - write buffer length is adequate, so does not check for buffer overflows. */ - (void)pcCommandString; - (void)xWriteBufferLen; - configASSERT(pcWriteBuffer); - - /* Generate a table of task stats. */ - snprintf(pcWriteBuffer, xWriteBufferLen, "%s", pcHeader); - vTaskList(pcWriteBuffer + strlen(pcHeader)); - - /* There is no more data to return after this single string, so return - pdFALSE. */ - return pdFALSE; -} -/*-----------------------------------------------------------*/ - -static BaseType_t prvUptimeCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString) -{ - TickType_t ticks; - - ticks = xTaskGetTickCount(); - -#if configUSE_TICKLESS_IDLE - pcWriteBuffer += snprintf(pcWriteBuffer, xWriteBufferLen, - "Uptime is 0x%08x (%u ms)\r\nMXC_RTCTMR->timer is %u\r\n", ticks, - ticks / portTICK_PERIOD_MS, MXC_RTC->sec); -#else - pcWriteBuffer += snprintf(pcWriteBuffer, xWriteBufferLen, "Uptime is 0x%08x (%u ms)\r\n", ticks, - ticks / portTICK_PERIOD_MS); -#endif - - /* No more data to return */ - return pdFALSE; -} -/*-----------------------------------------------------------*/ - -static BaseType_t prvThreeParameterEchoCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString) -{ - const char *pcParameter; - BaseType_t lParameterStringLength, xReturn; - static BaseType_t lParameterNumber = 0; - - /* Remove compile time warnings about unused parameters, and check the - write buffer is not NULL. NOTE - for simplicity, this example assumes the - write buffer length is adequate, so does not check for buffer overflows. */ - (void)pcCommandString; - (void)xWriteBufferLen; - configASSERT(pcWriteBuffer); - - if (lParameterNumber == 0) { - /* The first time the function is called after the command has been - entered just a header string is returned. */ - snprintf(pcWriteBuffer, xWriteBufferLen, "The three parameters were:\r\n"); - - /* Next time the function is called the first parameter will be echoed - back. */ - lParameterNumber = 1L; - - /* There is more data to be returned as no parameters have been echoed - back yet. */ - xReturn = pdPASS; - } else { - /* Obtain the parameter string. */ - pcParameter = FreeRTOS_CLIGetParameter( - pcCommandString, /* The command string itself. */ - lParameterNumber, /* Return the next parameter. */ - &lParameterStringLength /* Store the parameter string length. */); - - /* Sanity check something was returned. */ - configASSERT(pcParameter); - - /* Return the parameter string. */ - memset(pcWriteBuffer, 0x00, xWriteBufferLen); - snprintf(pcWriteBuffer, xWriteBufferLen, "%d: ", (int)lParameterNumber); - strncat(pcWriteBuffer, pcParameter, lParameterStringLength); - strncat(pcWriteBuffer, "\r\n", strlen("\r\n")); - - /* If this is the last of the three parameters then there are no more - strings to return after this one. */ - if (lParameterNumber == 3L) { - /* If this is the last of the three parameters then there are no more - strings to return after this one. */ - xReturn = pdFALSE; - lParameterNumber = 0L; - } else { - /* There are more parameters to return after this one. */ - xReturn = pdTRUE; - lParameterNumber++; - } - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -static BaseType_t prvParameterEchoCommand(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString) -{ - const char *pcParameter; - BaseType_t lParameterStringLength, xReturn; - static BaseType_t lParameterNumber = 0; - - /* Remove compile time warnings about unused parameters, and check the - write buffer is not NULL. NOTE - for simplicity, this example assumes the - write buffer length is adequate, so does not check for buffer overflows. */ - (void)pcCommandString; - (void)xWriteBufferLen; - configASSERT(pcWriteBuffer); - - if (lParameterNumber == 0) { - /* The first time the function is called after the command has been - entered just a header string is returned. */ - snprintf(pcWriteBuffer, xWriteBufferLen, "The parameters were:\r\n"); - - /* Next time the function is called the first parameter will be echoed - back. */ - lParameterNumber = 1L; - - /* There is more data to be returned as no parameters have been echoed - back yet. */ - xReturn = pdPASS; - } else { - /* Obtain the parameter string. */ - pcParameter = FreeRTOS_CLIGetParameter( - pcCommandString, /* The command string itself. */ - lParameterNumber, /* Return the next parameter. */ - &lParameterStringLength /* Store the parameter string length. */); - - if (pcParameter != NULL) { - /* Return the parameter string. */ - memset(pcWriteBuffer, 0x00, xWriteBufferLen); - snprintf(pcWriteBuffer, xWriteBufferLen, "%d: ", (int)lParameterNumber); - strncat(pcWriteBuffer, pcParameter, lParameterStringLength); - strncat(pcWriteBuffer, "\r\n", strlen("\r\n")); - - /* There might be more parameters to return after this one. */ - xReturn = pdTRUE; - lParameterNumber++; - } else { - /* No more parameters were found. Make sure the write buffer does - not contain a valid string. */ - pcWriteBuffer[0] = 0x00; - - /* No more data to return. */ - xReturn = pdFALSE; - - /* Start over the next time this command is executed. */ - lParameterNumber = 0; - } - } - - return xReturn; -} - -static BaseType_t prvTickless(char *pcWriteBuffer, size_t xWriteBufferLen, - const char *pcCommandString) -{ - const char *pcParameter; - BaseType_t lParameterStringLength; - - /* Get parameter */ - pcParameter = FreeRTOS_CLIGetParameter(pcCommandString, 1, &lParameterStringLength); - - if (pcParameter != NULL) { - if (pcParameter[0] == '0') { - disable_tickless = 1; - pcWriteBuffer += - snprintf(pcWriteBuffer, xWriteBufferLen, "Tick-less mode disabled\r\n"); - } else if (pcParameter[0] == '1') { - pcWriteBuffer += snprintf(pcWriteBuffer, xWriteBufferLen, "Tick-less mode enabled\r\n"); - disable_tickless = 0; - } else { - pcWriteBuffer += snprintf(pcWriteBuffer, xWriteBufferLen, - "Must supply 0 (Disable) or 1 (Enable)\r\n"); - } - } else { - pcWriteBuffer += - snprintf(pcWriteBuffer, xWriteBufferLen, "Must supply 0 (Disable) or 1 (Enable)\r\n"); - } - - return pdFALSE; -} diff --git a/Examples/MAX32572/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32572/FreeRTOSDemo/FreeRTOSConfig.h deleted file mode 100644 index c06f6b98bd6..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/FreeRTOSConfig.h +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_FREERTOSDEMO_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32572_FREERTOSDEMO_FREERTOSCONFIG_H_ - -#include -#include "max32572.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)120000000) - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -#define configUSE_TICKLESS_IDLE 1 -#ifdef configUSE_TICKLESS_IDLE -#define configSYSTICK_CLK_HZ ((uint32_t)32768) -#define configTICK_RATE_HZ ((portTickType)256) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#endif - -#define configTOTAL_HEAP_SIZE ((size_t)(26 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configMAX_PRIORITIES 5 -#define configUSE_PREEMPTION 0 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -/* Priority 7, or 255 as only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY ((unsigned char)7 << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -#define configRTC_TICK_RATE_HZ ((portTickType)4096) -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -#endif // EXAMPLES_MAX32572_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32572/FreeRTOSDemo/FreeRTOSDemo.launch b/Examples/MAX32572/FreeRTOSDemo/FreeRTOSDemo.launch deleted file mode 100644 index 12f11ec13b4..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/FreeRTOSDemo.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/FreeRTOSDemo/Makefile b/Examples/MAX32572/FreeRTOSDemo/Makefile deleted file mode 100644 index 5ab3252e91b..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/Makefile +++ /dev/null @@ -1,163 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += FreeRTOS_CLI.c -SRCS += CLI-commands.c -SRCS += freertos_tickless.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += $(LIBS_DIR)/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI - -# Where to find header files for this test -IPATH = . -IPATH += $(LIBS_DIR)/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -RTOS_CONFIG_DIR=. -RTOS_DIR=$(LIBS_DIR)/FreeRTOS -include $(RTOS_DIR)/freertos.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/FreeRTOSDemo/README.md b/Examples/MAX32572/FreeRTOSDemo/README.md deleted file mode 100644 index 1e542e6de1c..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/README.md +++ /dev/null @@ -1,59 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` --=- MAX32572 FreeRTOS (V10.2.0) Demo -=- -Tickless idle is configured. Type 'tickless 1' to enable. -Starting scheduler. -Uptime is 0x00000000 (0 seconds), tickless-idle is disabled - -Enter 'help' to view a list of available commands. -cmd> help - -help: - Lists all the registered commands - - -ps: - Displays a table showing the state of each FreeRTOS task - - -uptime: - Displays the uptime of the FreeRTOS system - - -tickless <0/1>: - Disable (0) or enable (1) tick-less operation - - -echo_3_parameters : - Expects three parameters, echos each in turn - - -echo_parameters <...>: - Take variable number of parameters, echos each in turn - -cmd> -``` diff --git a/Examples/MAX32572/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32572/FreeRTOSDemo/freertos_tickless.c deleted file mode 100644 index e3d1c8fd352..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/freertos_tickless.c +++ /dev/null @@ -1,202 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ******************************************************************************* - */ - -/* MXC */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Maxim CMSIS */ -//#include "lp.h" -#include "rtc.h" -#include "pwrseq_regs.h" - -#define RTC_RATIO (configRTC_TICK_RATE_HZ / configTICK_RATE_HZ) -#define MAX_SNOOZE 0xFF -#define MIN_SYSTICK 2 -#define MIN_RTC_TICKS 5 - -static uint32_t residual = 0; - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -__attribute__((weak)) int freertos_permit_tickless(void) -{ - return E_NO_ERROR; -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the RTC to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - volatile uint32_t rtc_ticks, rtc_ss_val; - volatile uint32_t actual_ticks; - volatile uint32_t pre_capture, post_capture; - mxc_gpio_cfg_t uart_rx_pin = { MXC_GPIO0, MXC_GPIO_PIN_10, MXC_GPIO_FUNC_IN, - MXC_GPIO_PAD_PULL_UP, MXC_GPIO_VSSEL_VDDIO }; - - /* Example: - * - * configTICK_RATE_HZ 512 - * configRTC_TICK_RATE_HZ 4096 - * - * RTC is 8x more accurate than the normal tick in this case. We can accumulate an error term and - * fix up when called again as the error term equals 1 task tick - */ - - /* We do not currently handle to case where the RTC is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Deep sleep time is limited */ - if (xExpectedIdleTime > (MAX_SNOOZE / RTC_RATIO)) { - xExpectedIdleTime = (MAX_SNOOZE / RTC_RATIO); - } - - /* Calculate the number of RTC ticks, but we need a few ticks to synchronize */ - rtc_ticks = (xExpectedIdleTime - 4UL) * RTC_RATIO; - - if ((xExpectedIdleTime < 5) || (rtc_ticks < MIN_RTC_TICKS)) { - /* Finish out the rest of this tick with normal sleep */ - // LP_EnterSleepMode(); - return; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - return; - } - - /* Use sub-second roll-over to wake up */ - rtc_ss_val = 0xFFFFFFFF - (rtc_ticks - 1); - MXC_RTC_SetSubsecondAlarm(rtc_ss_val); - - MXC_RTC->ctrl &= ~(MXC_F_RTC_CTRL_ASE); - MXC_RTC_EnableInt(MXC_RTC_INT_EN_SHORT); - - /* Pin used for UART RX must have GPIO interrupt enabled */ - MXC_GPIO_EnableInt(uart_rx_pin.port, uart_rx_pin.mask); - - /* Snapshot the current RTC value */ - pre_capture = MXC_RTC->ssec; - - /* Sleep */ - // LP_EnterDeepSleepMode(); - - /* -- WAKE HERE -- */ - - /* We'll need to wait for the RTC to synchronize */ - MXC_RTC->ctrl &= ~MXC_F_RTC_CTRL_RDY; - - /* Remove interrupt flag and configuration for GPIO on UART RX pin */ - MXC_GPIO_ClearFlags(uart_rx_pin.port, uart_rx_pin.mask); - MXC_GPIO_DisableInt(uart_rx_pin.port, uart_rx_pin.mask); - - /* Snapshot the current RTC value */ - while (!(MXC_RTC->ctrl & MXC_F_RTC_CTRL_RDY)) {} - - post_capture = MXC_RTC->ssec; - - /* Dermine wake cause */ - if (MXC_RTC->ctrl & MXC_F_RTC_CTRL_ASE) { - /* RTC woke the processor */ - actual_ticks = rtc_ticks; - } else { - /* Determine the actual duration of sleep */ - if (post_capture < pre_capture) { - /* Rollover */ - post_capture += 0x1000; - } - - actual_ticks = post_capture - pre_capture; - - if (actual_ticks > rtc_ticks) { - /* Assert or just fix up */ - MXC_ASSERT_FAIL(); - actual_ticks = rtc_ticks; - } - - if (RTC_RATIO > 1) { - /* Add residual from any previous early wake */ - actual_ticks += residual; - /* Find new residual */ - residual = actual_ticks % RTC_RATIO; - } - } - - /* RTC sub-second interrupt no longer desired */ - MXC_RTC_DisableInt(MXC_RTC_INT_EN_SHORT); - MXC_RTC->ctrl &= ~(MXC_F_RTC_CTRL_ASE); - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - /* - * Advance ticks by # actually elapsed - */ - portENTER_CRITICAL(); - /* Future enhancement: Compare time in seconds to RTC and slew to correct */ - vTaskStepTick(actual_ticks / RTC_RATIO); - portEXIT_CRITICAL(); -} diff --git a/Examples/MAX32572/FreeRTOSDemo/main.c b/Examples/MAX32572/FreeRTOSDemo/main.c deleted file mode 100644 index 9d3ab4d8da6..00000000000 --- a/Examples/MAX32572/FreeRTOSDemo/main.c +++ /dev/null @@ -1,475 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief FreeRTOS Example Application. - */ - -/* config.h is the required application configuration; RAM layout, stack, chip type etc. */ -#include - -#include -#include -#include -#include -#include -#include - -/* FreeRTOS */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" -#include "semphr.h" - -/* FreeRTOS+ */ -#include "FreeRTOS_CLI.h" - -/* FreeRTOS+CLI */ -extern void vRegisterCLICommands(void); - -/* Mutual exclusion (mutex) semaphores */ -SemaphoreHandle_t xGPIOmutex; - -/* Task IDs */ -TaskHandle_t cmd_task_id; - -/* Enables/disables tick-less mode */ -unsigned int disable_tickless = 1; - -/* Stringification macros */ -#define STRING(x) STRING_(x) -#define STRING_(x) #x - -/* Console ISR selection */ -#if (CONSOLE_UART == 0) -#define UARTx_IRQHandler UART0_IRQHandler -#define UARTx_IRQn UART0_IRQn -#elif (CONSOLE_UART == 1) -#define UARTx_IRQHandler UART1_IRQHandler -#define UARTx_IRQn UART1_IRQn -#else -#error "Please update ISR macro for UART CONSOLE_UART" -#endif -mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(CONSOLE_UART); - -/* Array sizes */ -#define CMD_LINE_BUF_SIZE 80 -#define OUTPUT_BUF_SIZE 512 - -/* UART access */ -#define USE_ASYNC_UART - -/* =| vTask0 |============================================ - * - * This task blinks LED0 at a 0.5Hz rate, and does not - * drift due to the use of vTaskDelayUntil(). It may have - * jitter, however, due to any higher-priority task or - * interrupt causing delays in scheduling. - * - * ======================================================= - */ -void vTask0(void *pvParameters) -{ - TickType_t xLastWakeTime; - unsigned int x = LED_OFF; - - /* Get task start time */ - xLastWakeTime = xTaskGetTickCount(); - - while (1) { - /* Protect hardware access with mutex - * - * Note: This is not strictly necessary, since GPIO_SetOutVal() is implemented with bit-band - * access, which is inherently task-safe. However, for other drivers, this would be required. - * - */ - if (xSemaphoreTake(xGPIOmutex, portMAX_DELAY) == pdTRUE) { - if (x == LED_OFF) { - x = LED_ON; - } else { - x = LED_OFF; - } - - /* Return the mutex after we have modified the hardware state */ - xSemaphoreGive(xGPIOmutex); - } - - /* Wait 1 second until next run */ - vTaskDelayUntil(&xLastWakeTime, configTICK_RATE_HZ); - } -} - -/* =| vTask1 |============================================ - * - * This task blinks LED1 at a 0.5Hz rate, and does not - * drift due to the use of vTaskDelayUntil(). It may have - * jitter, however, due to any higher-priority task or - * interrupt causing delays in scheduling. - * - * NOTE: The MAX32660 EV Kit has only 1 LED, so this task - * does not blink an LED. - * - * ======================================================= - */ -void vTask1(void *pvParameters) -{ - TickType_t xLastWakeTime; - unsigned int x = LED_ON; - - /* Get task start time */ - xLastWakeTime = xTaskGetTickCount(); - - while (1) { - /* Protect hardware access with mutex - * - * Note: This is not strictly necessary, since GPIO_SetOutVal() is implemented with bit-band - * access, which is inherently task-safe. However, for other drivers, this would be required. - * - */ - if (xSemaphoreTake(xGPIOmutex, portMAX_DELAY) == pdTRUE) { - if (x == LED_OFF) { - LED_On(0); - x = LED_ON; - } else { - LED_Off(0); - x = LED_OFF; - } - - /* Return the mutex after we have modified the hardware state */ - xSemaphoreGive(xGPIOmutex); - } - - /* Wait 1 second until next run */ - vTaskDelayUntil(&xLastWakeTime, configTICK_RATE_HZ); - } -} - -/* =| vTickTockTask |============================================ - * - * This task writes the current RTOS tick time to the console - * - * ======================================================= - */ -void vTickTockTask(void *pvParameters) -{ - TickType_t ticks = 0; - TickType_t xLastWakeTime; - - /* Get task start time */ - xLastWakeTime = xTaskGetTickCount(); - - while (1) { - ticks = xTaskGetTickCount(); - printf("Uptime is 0x%08x (%u seconds), tickless-idle is %s\n", ticks, - ticks / configTICK_RATE_HZ, disable_tickless ? "disabled" : "ENABLED"); - vTaskDelayUntil(&xLastWakeTime, (configTICK_RATE_HZ * 60)); - } -} - -/* =| UART0_IRQHandler |====================================== - * - * This function overrides the weakly-declared interrupt handler - * in system_max326xx.c and is needed for asynchronous UART - * calls to work properly - * - * =========================================================== - */ -void UARTx_IRQHandler(void) -{ - MXC_UART_AsyncHandler(ConsoleUART); -} - -/* =| vCmdLineTask_cb |====================================== - * - * Callback on asynchronous reads to wake the waiting command - * processor task - * - * =========================================================== - */ -void vCmdLineTask_cb(mxc_uart_req_t *req, int error) -{ - BaseType_t xHigherPriorityTaskWoken; - - /* Wake the task */ - xHigherPriorityTaskWoken = pdFALSE; - vTaskNotifyGiveFromISR(cmd_task_id, &xHigherPriorityTaskWoken); - portYIELD_FROM_ISR(xHigherPriorityTaskWoken); -} - -static void prvProcessInput(char *pBufCmdLine, unsigned int *pIdxCmdLine, unsigned char cReadChar) -{ - unsigned int uTransLen; - BaseType_t xMore; - char output[OUTPUT_BUF_SIZE]; /* Buffer for output */ - - /* Process character */ - if (cReadChar == 0x08) { - /* Backspace */ - if (*pIdxCmdLine > 0) { - (*pIdxCmdLine)--; - printf("\x08 \x08"); - } - - fflush(stdout); - } else if (cReadChar == 0x03) { - /* ^C abort */ - *pIdxCmdLine = 0; - printf("^C"); - printf("\ncmd> "); - fflush(stdout); - } else if ((cReadChar == '\r') || (cReadChar == '\n')) { - printf("\r\n"); - /* Null terminate for safety */ - pBufCmdLine[*pIdxCmdLine] = 0x00; - - /* Evaluate */ - do { - xMore = FreeRTOS_CLIProcessCommand(pBufCmdLine, output, OUTPUT_BUF_SIZE); - - /* If xMore == pdTRUE, then output buffer contains no null termination, so - * we know it is OUTPUT_BUF_SIZE. If pdFALSE, we can use strlen. - */ - for (uTransLen = 0; uTransLen < (xMore == pdTRUE ? OUTPUT_BUF_SIZE : strlen(output)); - uTransLen++) { - putchar(*(output + uTransLen)); - } - } while (xMore != pdFALSE); - - /* New prompt */ - *pIdxCmdLine = 0; - printf("\ncmd> "); - fflush(stdout); - } else if (*pIdxCmdLine < CMD_LINE_BUF_SIZE) { - putchar(cReadChar); - pBufCmdLine[(*pIdxCmdLine)++] = cReadChar; - fflush(stdout); - } else { - /* Throw away data and beep terminal */ - putchar(0x07); - fflush(stdout); - } -} - -static inline void prvFlushUART(mxc_uart_regs_t *uart) -{ - while ((uart->status & MXC_F_UART_STATUS_TX_EMPTY) != MXC_F_UART_STATUS_TX_EMPTY) {} -} - -/* =| vCmdLineTask |====================================== - * - * The command line task provides a prompt on the serial - * interface and takes input from the user to evaluate - * via the FreeRTOS+CLI parser. - * - * NOTE: FreeRTOS+CLI is part of FreeRTOS+ and has - * different licensing requirements. Please see - * http://www.freertos.org/FreeRTOS-Plus for more information - * - * ======================================================= - */ -void vCmdLineTask(void *pvParameters) -{ - unsigned char cReadChar; - unsigned int idxCmdLine; /* Index into buffer */ - unsigned int uTransLen; - char bufCmdLine[CMD_LINE_BUF_SIZE]; /* Buffer for input */ -#ifdef USE_ASYNC_UART - mxc_uart_req_t async_read_req; -#endif /* USE_ASYNC_UART */ - mxc_gpio_cfg_t uart_rx_pin = { MXC_GPIO0, MXC_GPIO_PIN_10, MXC_GPIO_FUNC_IN, MXC_GPIO_PAD_NONE, - MXC_GPIO_VSSEL_VDDIO }; - - memset(bufCmdLine, 0, CMD_LINE_BUF_SIZE); - idxCmdLine = 0; - - /* Register available CLI commands */ - vRegisterCLICommands(); - -#if configUSE_TICKLESS_IDLE - /* Configure wake-up for GPIO pin corresponding to the UART RX line */ - // LP_EnableGPIOWakeup(&uart_rx_pin); - MXC_GPIO_IntConfig(&uart_rx_pin, MXC_GPIO_INT_FALLING); -#endif - - /* Enable UART0 interrupt */ - NVIC_ClearPendingIRQ(UARTx_IRQn); - NVIC_DisableIRQ(UARTx_IRQn); - NVIC_SetPriority(UARTx_IRQn, 1); - NVIC_EnableIRQ(UARTx_IRQn); - - /* Async read will be used to wake process */ - async_read_req.uart = ConsoleUART; - async_read_req.txData = NULL; - async_read_req.rxData = &cReadChar; - async_read_req.txLen = 0; - async_read_req.rxLen = 1; - async_read_req.callback = vCmdLineTask_cb; - - printf("\nEnter 'help' to view a list of available commands.\n"); - printf("cmd> "); - fflush(stdout); - - while (1) { -#ifdef USE_ASYNC_UART - /* Wait for previous printf/fflush command. */ - prvFlushUART(ConsoleUART); - - /* Register async read request */ - if (MXC_UART_TransactionAsync(&async_read_req) != E_NO_ERROR) { - printf("Error registering async request. Command line unavailable.\n"); - vTaskDelay(portMAX_DELAY); - } - - /* Hang here until ISR wakes us for a character */ - ulTaskNotifyTake(pdTRUE, portMAX_DELAY); - - /* Check that we have a valid character */ - if (async_read_req.rxCnt > 0) { - /* Process character */ - do { - /* Process character */ - prvProcessInput(&bufCmdLine[0], &idxCmdLine, cReadChar); - - /* If more characters are ready, process them here */ - uTransLen = 1; - } while ((MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) > 0) && - MXC_UART_Read(MXC_UART_GET_UART(CONSOLE_UART), (uint8_t *)&cReadChar, - (int *)&uTransLen)); - } - -#else /* USE_ASYNC_UART */ - - while (MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) == 0) {} - - uTransLen = 1; - uTransLen = MXC_UART_Read(MXC_UART_GET_UART(CONSOLE_UART), (uint8_t *)&cReadChar, - (int *)&uTransLen); - - /* Process character */ - prvProcessInput(&bufCmdLine[0], &idxCmdLine, cReadChar); -#endif /* USE_ASYNC_UART */ - } -} - -#if configUSE_TICKLESS_IDLE -/* =| freertos_permit_tickless |========================== - * - * Determine if any hardware activity should prevent - * low-power tickless operation. - * - * ======================================================= - */ -int freertos_permit_tickless(void) -{ - if (disable_tickless == 1) { - return E_BUSY; - } - - if (MXC_UART_ReadyForSleep(MXC_UART_GET_UART(CONSOLE_UART))) { - return E_BUSY; - } - - return E_NO_ERROR; - // return MXC_UART_PrepForSleep(MXC_UART_GET_UART(CONSOLE_UART)); -} -#endif - -void RTC_IRQHandler(void) -{ - MXC_RTC->ctrl &= ~(MXC_F_RTC_CTRL_ASE); -} - -/* =| main |============================================== - * - * This program demonstrates FreeRTOS tasks, mutexes, - * and the FreeRTOS+CLI extension. - * - * ======================================================= - */ -int main(void) -{ -#if configUSE_TICKLESS_IDLE - /* The RTC must be enabled for tickless operation */ - MXC_RTC_Init(0, 0); - NVIC_ClearPendingIRQ(RTC_IRQn); - NVIC_EnableIRQ(RTC_IRQn); - - // LP_EnableRTCAlarmWakeup(); - /* If running tickless idle, must reduce baud rate to avoid losing character */ - if (MXC_UART_Init(ConsoleUART, 115200) < E_NO_ERROR) { - MXC_ASSERT_FAIL(); - } - -#endif - - /* Print banner (RTOS scheduler not running) */ - printf("\n-=- %s FreeRTOS (%s) Demo -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); -#if configUSE_TICKLESS_IDLE - printf("Tickless idle is configured. Type 'tickless 1' to enable.\n"); -#endif - - /* Create mutexes */ - xGPIOmutex = xSemaphoreCreateMutex(); - - if (xGPIOmutex == NULL) { - printf("xSemaphoreCreateMutex failed to create a mutex.\n"); - } else { - /* Configure task */ - if ((xTaskCreate(vTask0, (const char *)"Task0", configMINIMAL_STACK_SIZE, NULL, - tskIDLE_PRIORITY + 1, NULL) != pdPASS) || - (xTaskCreate(vTask1, (const char *)"Task1", configMINIMAL_STACK_SIZE, NULL, - tskIDLE_PRIORITY + 1, NULL) != pdPASS) || - (xTaskCreate(vTickTockTask, (const char *)"TickTock", 2 * configMINIMAL_STACK_SIZE, - NULL, tskIDLE_PRIORITY + 2, NULL) != pdPASS) || - (xTaskCreate(vCmdLineTask, (const char *)"CmdLineTask", - configMINIMAL_STACK_SIZE + CMD_LINE_BUF_SIZE + OUTPUT_BUF_SIZE, NULL, - tskIDLE_PRIORITY + 1, &cmd_task_id) != pdPASS)) { - printf("xTaskCreate() failed to create a task.\n"); - } else { - /* Start scheduler */ - printf("Starting scheduler.\n"); - vTaskStartScheduler(); - } - } - - /* This code is only reached if the scheduler failed to start */ - printf("ERROR: FreeRTOS did not start due to above error!\n"); - - while (1) { - __NOP(); - } - - /* Quiet GCC warnings */ - return -1; -} diff --git a/Examples/MAX32572/GPIO/.cproject b/Examples/MAX32572/GPIO/.cproject deleted file mode 100644 index 03aae4b40db..00000000000 --- a/Examples/MAX32572/GPIO/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/GPIO/.project b/Examples/MAX32572/GPIO/.project deleted file mode 100644 index b1b7906d9f8..00000000000 --- a/Examples/MAX32572/GPIO/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - GPIO - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/GPIO/.vscode/c_cpp_properties.json b/Examples/MAX32572/GPIO/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/GPIO/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/GPIO/.vscode/launch.json b/Examples/MAX32572/GPIO/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/GPIO/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/GPIO/.vscode/settings.json b/Examples/MAX32572/GPIO/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/GPIO/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/GPIO/.vscode/tasks.json b/Examples/MAX32572/GPIO/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/GPIO/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/GPIO/GPIO.launch b/Examples/MAX32572/GPIO/GPIO.launch deleted file mode 100644 index 9dd58a1f69d..00000000000 --- a/Examples/MAX32572/GPIO/GPIO.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/GPIO/Makefile b/Examples/MAX32572/GPIO/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/GPIO/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/GPIO/README.md b/Examples/MAX32572/GPIO/README.md deleted file mode 100644 index aa064022970..00000000000 --- a/Examples/MAX32572/GPIO/README.md +++ /dev/null @@ -1,36 +0,0 @@ -## Description - -Basic GPIO input, output, and interrupts are demonstrated in this example. - -P0.16 is continuously scanned and whatever value is read on that pin is then output to P0.17. An interrupt is set up on P0.18. P0.19 toggles when that interrupt occurs. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -************************* GPIO Example *********************** - -1. This example reads P0.16 and outputs the same state onto P0.17. -2. An interrupt is set up on P0.18 . P0.19 toggles when that - interrupt occurs. -``` - -You will also observe the LED behavior given in the Description section above. \ No newline at end of file diff --git a/Examples/MAX32572/GPIO/main.c b/Examples/MAX32572/GPIO/main.c deleted file mode 100644 index d05a1919d6b..00000000000 --- a/Examples/MAX32572/GPIO/main.c +++ /dev/null @@ -1,140 +0,0 @@ -/** - * @file main.c - * @brief GPIO Example - * @details - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ -#define MXC_GPIO_PORT_IN MXC_GPIO0 -#define MXC_GPIO_PIN_IN MXC_GPIO_PIN_16 - -#define MXC_GPIO_PORT_OUT MXC_GPIO0 -#define MXC_GPIO_PIN_OUT MXC_GPIO_PIN_17 - -#define MXC_GPIO_PORT_INTERRUPT_IN MXC_GPIO0 -#define MXC_GPIO_PIN_INTERRUPT_IN MXC_GPIO_PIN_18 - -#define MXC_GPIO_PORT_INTERRUPT_STATUS MXC_GPIO0 -#define MXC_GPIO_PIN_INTERRUPT_STATUS MXC_GPIO_PIN_19 - -/***** Globals *****/ - -/***** Functions *****/ -void gpio_isr(void *cbdata) -{ - mxc_gpio_cfg_t *cfg = cbdata; - MXC_GPIO_OutToggle(cfg->port, cfg->mask); -} - -int main(void) -{ - mxc_gpio_cfg_t gpio_in; - mxc_gpio_cfg_t gpio_out; - mxc_gpio_cfg_t gpio_interrupt; - mxc_gpio_cfg_t gpio_interrupt_status; - - printf("\n\n************************* GPIO Example ***********************\n\n"); - printf("1. This example reads P0.16 and outputs the same state onto P0.17.\n"); - printf("2. An interrupt is set up on P0.18 . P0.19 toggles when that\n"); - printf(" interrupt occurs.\n\n"); - - /* Setup interrupt status pin as an output so we can toggle it on each interrupt. */ - gpio_interrupt_status.port = MXC_GPIO_PORT_INTERRUPT_STATUS; - gpio_interrupt_status.mask = MXC_GPIO_PIN_INTERRUPT_STATUS; - gpio_interrupt_status.pad = MXC_GPIO_PAD_NONE; - gpio_interrupt_status.func = MXC_GPIO_FUNC_OUT; - gpio_interrupt_status.vssel = MXC_GPIO_VSSEL_VDDIO; - gpio_interrupt_status.drvstr = MXC_GPIO_DRVSTR_0; - MXC_GPIO_Config(&gpio_interrupt_status); - - /* - * Set up interrupt on P1.07. - * Switch on EV kit is open when non-pressed, and grounded when pressed. Use an internal pull-up so pin - * reads high when button is not pressed. - */ - gpio_interrupt.port = MXC_GPIO_PORT_INTERRUPT_IN; - gpio_interrupt.mask = MXC_GPIO_PIN_INTERRUPT_IN; - gpio_interrupt.pad = MXC_GPIO_PAD_PULL_UP; - gpio_interrupt.func = MXC_GPIO_FUNC_IN; - gpio_interrupt.vssel = MXC_GPIO_VSSEL_VDDIO; - gpio_interrupt.drvstr = MXC_GPIO_DRVSTR_0; - MXC_GPIO_Config(&gpio_interrupt); - MXC_GPIO_RegisterCallback(&gpio_interrupt, gpio_isr, &gpio_interrupt_status); - MXC_GPIO_IntConfig(&gpio_interrupt, MXC_GPIO_INT_FALLING); - MXC_GPIO_EnableInt(gpio_interrupt.port, gpio_interrupt.mask); - NVIC_EnableIRQ(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(MXC_GPIO_PORT_INTERRUPT_IN))); - - /* - * Setup input pin. - * Switch on EV kit is open when non-pressed, and grounded when pressed. Use an internal pull-up so pin - * reads high when button is not pressed. - */ - gpio_in.port = MXC_GPIO_PORT_IN; - gpio_in.mask = MXC_GPIO_PIN_IN; - gpio_in.pad = MXC_GPIO_PAD_PULL_UP; - gpio_in.func = MXC_GPIO_FUNC_IN; - gpio_in.vssel = MXC_GPIO_VSSEL_VDDIO; - gpio_in.drvstr = MXC_GPIO_DRVSTR_0; - MXC_GPIO_Config(&gpio_in); - - /* Setup output pin. */ - gpio_out.port = MXC_GPIO_PORT_OUT; - gpio_out.mask = MXC_GPIO_PIN_OUT; - gpio_out.pad = MXC_GPIO_PAD_NONE; - gpio_out.func = MXC_GPIO_FUNC_OUT; - gpio_out.vssel = MXC_GPIO_VSSEL_VDDIO; - gpio_out.drvstr = MXC_GPIO_DRVSTR_0; - MXC_GPIO_Config(&gpio_out); - - while (1) { - /* Read state of the input pin. */ - if (MXC_GPIO_InGet(gpio_in.port, gpio_in.mask)) { - /* Input pin was high, set the output pin. */ - MXC_GPIO_OutSet(gpio_out.port, gpio_out.mask); - } else { - /* Input pin was low, clear the output pin. */ - MXC_GPIO_OutClr(gpio_out.port, gpio_out.mask); - } - } - - return 0; -} diff --git a/Examples/MAX32572/HTMR/.cproject b/Examples/MAX32572/HTMR/.cproject deleted file mode 100644 index 4be432b7408..00000000000 --- a/Examples/MAX32572/HTMR/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/HTMR/.project b/Examples/MAX32572/HTMR/.project deleted file mode 100644 index 7094ee3e131..00000000000 --- a/Examples/MAX32572/HTMR/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - HTMR - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/HTMR/.vscode/c_cpp_properties.json b/Examples/MAX32572/HTMR/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/HTMR/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/HTMR/.vscode/launch.json b/Examples/MAX32572/HTMR/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/HTMR/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/HTMR/.vscode/settings.json b/Examples/MAX32572/HTMR/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/HTMR/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/HTMR/.vscode/tasks.json b/Examples/MAX32572/HTMR/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/HTMR/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/HTMR/HTMR.launch b/Examples/MAX32572/HTMR/HTMR.launch deleted file mode 100644 index 7037b53c763..00000000000 --- a/Examples/MAX32572/HTMR/HTMR.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/HTMR/Makefile b/Examples/MAX32572/HTMR/Makefile deleted file mode 100644 index e58a832b891..00000000000 --- a/Examples/MAX32572/HTMR/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += resources/all_imgs.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += resources - -# Where to find header files for this test -IPATH = . -IPATH += resources - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/HTMR/README.md b/Examples/MAX32572/HTMR/README.md deleted file mode 100644 index d3cbad02058..00000000000 --- a/Examples/MAX32572/HTMR/README.md +++ /dev/null @@ -1,44 +0,0 @@ -## Description - -This example demonstrates features of HTimer. It sets the short interval alarm to trigger every ~2^22 short interval counts (0.5sec). - -- Pressing PB0 (P3.06) will print the current count to the console -- Pressing PB1 will set the Long Interval alarm to light LED1 in 10000 counts - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -******************** High Speed Timer Example ****************** - -This example enables the HTMR and sets the short interval -alarm to trigger every ~2^22 short interval counts (0.5sec) -Pressing PB0 (P3.06) will print the current count to the console -Pressing Button 1 will set the Long Interval alarm to light LED1 in 10000 counts - -Pressing Button 2 will clear the Long Interval alarm LED1 - - -Timer started. - - -Current Count 0.088623 -``` diff --git a/Examples/MAX32572/HTMR/main.c b/Examples/MAX32572/HTMR/main.c deleted file mode 100644 index df1d33bc1ca..00000000000 --- a/Examples/MAX32572/HTMR/main.c +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Configures and starts the RTC and demonstrates the use of the alarms. - * @details The RTC is enabled and the sub-second alarm set to trigger every 250 ms. - * P2.17 (LED0) is toggled each time the sub-second alarm triggers. The - * time-of-day alarm is set to 2 seconds. When the time-of-day alarm - * triggers, the rate of the sub-second alarm is switched to 500 ms. The - * time-of-day alarm is then rearmed for another 2 sec. Pressing SW2 will - * output the current value of the RTC to the console UART. - */ - -/***** Includes *****/ -#include -#include - -#include - -#include "bitmap.h" - -/***** Definitions *****/ -#define LED_FLASH 0 -#define LED_ALARM 0 - -#define BUTTON_SIZE_X 42 // -#define BUTTON_SIZE_Y 41 // - -#define KEY_1 1 -#define KEY_2 2 - -/***** Globals *****/ -static int button1Pressed = 0; - -/***** Functions *****/ -void SysTick_Handler(void) -{ - // Do nothing here -} - -void HTMR0_IRQHandler(void) -{ - if (MXC_HTMR_GetFlags(MXC_HTMR0) & MXC_F_HTMR_CTRL_ALDF) { - LED_On(LED_ALARM); - MXC_HTMR_ClearFlags(MXC_HTMR0, MXC_F_HTMR_CTRL_ALDF); - } - - if (MXC_HTMR_GetFlags(MXC_HTMR0) & MXC_F_HTMR_CTRL_ALSF) { - if (!button1Pressed) { - LED_Toggle(LED_FLASH); - } - - MXC_HTMR_ClearFlags(MXC_HTMR0, MXC_F_HTMR_CTRL_ALSF); - } - - return; -} - -static void setAlarm(void) -{ - MXC_HTMR_Stop(MXC_HTMR0); - button1Pressed = 1; - LED_Off(LED_ALARM); - - if (MXC_HTMR_SetLongAlarm(MXC_HTMR0, MXC_HTMR_GetLongCount(MXC_HTMR0) + 10000) != E_NO_ERROR) { - printf("Failed to set Long Interval Alarm.\n"); - } - - MXC_TFT_Printf("Alarm Set\n"); - - MXC_HTMR_Start(MXC_HTMR0); -} - -static void resetAlarm(void) -{ - button1Pressed = 0; - LED_Off(LED_ALARM); - MXC_TFT_Printf("Alarm Cleared\n"); -} - -static void printTime(void) -{ - double count; - - /* The short count register is 20 bits long, however - * the long count counter is incremented every 4096 (12 bits) short counts - * so we need to take short count mod 4096 and add long count to - * get a float representing the total number of long counts - */ - count = (MXC_HTMR_GetShortCount(MXC_HTMR0) % 4096) / 4096.0; - count += MXC_HTMR_GetLongCount(MXC_HTMR0); - - printf("\nCurrent Count %f\n", count); -} - -static int setup_display(void) -{ - int x = 100; - int y = 150; - - MXC_TFT_Init(); - MXC_TS_Init(); - // - MXC_TS_Start(); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_white_bmp); - - MXC_TFT_ShowImage(x, y, key_1_bg_white_bmp); - MXC_TS_AddButton(x, y, x + BUTTON_SIZE_X, y + BUTTON_SIZE_Y, KEY_1); - - x += BUTTON_SIZE_X + 40; // add 40pixel space - MXC_TFT_ShowImage(x, y, key_2_bg_white_bmp); - MXC_TS_AddButton(x, y, x + BUTTON_SIZE_X, y + BUTTON_SIZE_Y, KEY_2); - - // set up font - MXC_TFT_SetFont(urw_gothic_13_grey_bg_white); - - // Set print area - area_t print = { 20, 40, 300, 30 }; - MXC_TFT_ConfigPrintf(&print); - - return 0; -} - -// ***************************************************************************** -int main(void) -{ - int key; - - printf("\n******************** High Speed Timer Example ******************\n\n"); - printf("This example enables the HTMR and sets the short interval\n"); - printf("alarm to trigger every ~2^22 short interval counts (0.5sec)\n"); - printf("Pressing PB0 (P3.06) will print the current count to the console\n"); - printf("Pressing Button 1 will set the Long Interval alarm to light LED1 in 10000 counts\n\n"); - printf("Pressing Button 2 will clear the Long Interval alarm LED1\n\n"); - - setup_display(); - - NVIC_SetVector(HTMR0_IRQn, HTMR0_IRQHandler); - NVIC_EnableIRQ(HTMR0_IRQn); - - /* Turn LED off initially */ - LED_Off(LED_ALARM); - - if (MXC_HTMR_Init(MXC_HTMR0, 0, 0) != E_NO_ERROR) { - printf("Failed HTMR Initialization.\n"); - - while (1) {} - } - - if (MXC_HTMR_SetShortAlarm(MXC_HTMR0, 0xFFC7BFFF) != E_NO_ERROR) { - printf("Failed to set short interval alarm\n"); - } - - MXC_HTMR_Start(MXC_HTMR0); - printf("\nTimer started.\n\n"); - printTime(); - - while (1) { - // check touch screen key - key = MXC_TS_GetKey(); - - if (key > 0) { - /* Show the time elapsed. */ - printTime(); - /* Delay for switch debouncing. */ - MXC_TMR_Delay(MXC_TMR0, MSEC(100)); - - switch (key) { - case KEY_1: - setAlarm(); - break; - - case KEY_2: - resetAlarm(); - break; - - default: - break; - } - } - } -} diff --git a/Examples/MAX32572/HTMR/resources/all_imgs.c b/Examples/MAX32572/HTMR/resources/all_imgs.c deleted file mode 100644 index 82562770701..00000000000 --- a/Examples/MAX32572/HTMR/resources/all_imgs.c +++ /dev/null @@ -1,34501 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".bin_storage_img"))) __attribute__((__used__)) -const unsigned char imgs_arr[] = { - /* - Header - */ - 0x18, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x04, - 0x00, - 0x00, - 0x3E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - - /* - Palette - */ - 0x01, - 0x1D, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xA5, - 0x18, - 0x00, - 0x70, - 0x73, - 0x71, - 0x00, - 0x33, - 0x35, - 0x3B, - 0x00, - 0x20, - 0xE8, - 0xD9, - 0x00, - 0x03, - 0x02, - 0xD5, - 0x00, - 0x00, - 0xA9, - 0x00, - 0x00, - 0x6F, - 0x6E, - 0x7A, - 0x00, - 0xFF, - 0xFD, - 0xFF, - 0x00, - 0x76, - 0x75, - 0x76, - 0x00, - 0x95, - 0x94, - 0x95, - 0x00, - 0x6A, - 0x66, - 0x69, - 0x00, - 0x7A, - 0x76, - 0x78, - 0x00, - 0x76, - 0x72, - 0x74, - 0x00, - 0x75, - 0x71, - 0x73, - 0x00, - 0x71, - 0x6F, - 0x6F, - 0x00, - 0x76, - 0x75, - 0x75, - 0x00, - 0x75, - 0x74, - 0x74, - 0x00, - 0x74, - 0x73, - 0x73, - 0x00, - 0x73, - 0x72, - 0x72, - 0x00, - 0x72, - 0x71, - 0x71, - 0x00, - 0x91, - 0x90, - 0x90, - 0x00, - 0x86, - 0x85, - 0x85, - 0x00, - 0x67, - 0x65, - 0x64, - 0x00, - 0x63, - 0x61, - 0x60, - 0x00, - 0x70, - 0x6E, - 0x6D, - 0x00, - 0x6A, - 0x68, - 0x66, - 0x00, - 0x77, - 0x76, - 0x75, - 0x00, - 0x71, - 0x70, - 0x6F, - 0x00, - 0x6E, - 0x6D, - 0x6C, - 0x00, - 0x6D, - 0x6C, - 0x6B, - 0x00, - 0x6C, - 0x6B, - 0x6A, - 0x00, - 0x90, - 0x8F, - 0x8E, - 0x00, - 0x88, - 0x87, - 0x86, - 0x00, - 0x77, - 0x74, - 0x70, - 0x00, - 0x76, - 0x73, - 0x6F, - 0x00, - 0x75, - 0x72, - 0x6E, - 0x00, - 0x4F, - 0x4D, - 0x4A, - 0x00, - 0x5A, - 0x58, - 0x55, - 0x00, - 0x58, - 0x56, - 0x53, - 0x00, - 0x56, - 0x54, - 0x51, - 0x00, - 0x3F, - 0x3D, - 0x39, - 0x00, - 0x44, - 0x42, - 0x3E, - 0x00, - 0x47, - 0x45, - 0x41, - 0x00, - 0x4C, - 0x4A, - 0x46, - 0x00, - 0x4B, - 0x49, - 0x45, - 0x00, - 0x4A, - 0x48, - 0x44, - 0x00, - 0x4E, - 0x4C, - 0x48, - 0x00, - 0x4D, - 0x4B, - 0x47, - 0x00, - 0x6B, - 0x6A, - 0x68, - 0x00, - 0x68, - 0x67, - 0x65, - 0x00, - 0x66, - 0x65, - 0x63, - 0x00, - 0x64, - 0x63, - 0x61, - 0x00, - 0x74, - 0x73, - 0x71, - 0x00, - 0x73, - 0x72, - 0x70, - 0x00, - 0x42, - 0x40, - 0x3B, - 0x00, - 0x41, - 0x3F, - 0x3A, - 0x00, - 0x43, - 0x41, - 0x3C, - 0x00, - 0x46, - 0x44, - 0x3F, - 0x00, - 0x5D, - 0x5C, - 0x59, - 0x00, - 0x5B, - 0x5A, - 0x57, - 0x00, - 0x61, - 0x60, - 0x5D, - 0x00, - 0x5F, - 0x5E, - 0x5B, - 0x00, - 0x76, - 0x75, - 0x72, - 0x00, - 0x72, - 0x71, - 0x6E, - 0x00, - 0x53, - 0x52, - 0x4E, - 0x00, - 0x51, - 0x50, - 0x4C, - 0x00, - 0x79, - 0x78, - 0x74, - 0x00, - 0x48, - 0x47, - 0x42, - 0x00, - 0xFD, - 0xFC, - 0xF7, - 0x00, - 0x77, - 0x76, - 0x6B, - 0x00, - 0x80, - 0x7F, - 0x71, - 0x00, - 0x9D, - 0xA0, - 0x19, - 0x00, - 0x93, - 0x95, - 0x1E, - 0x00, - 0xA3, - 0xA6, - 0x25, - 0x00, - 0xF9, - 0xF9, - 0xED, - 0x00, - 0x76, - 0x76, - 0x73, - 0x00, - 0x79, - 0x79, - 0x77, - 0x00, - 0x89, - 0x89, - 0x87, - 0x00, - 0x81, - 0x81, - 0x7F, - 0x00, - 0x4C, - 0x4C, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x49, - 0x00, - 0xFE, - 0xFE, - 0xFC, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0xE2, - 0xE2, - 0xE1, - 0x00, - 0xC2, - 0xC2, - 0xC1, - 0x00, - 0xB7, - 0xB7, - 0xB6, - 0x00, - 0xAE, - 0xAE, - 0xAD, - 0x00, - 0xA7, - 0xA7, - 0xA6, - 0x00, - 0xA1, - 0xA1, - 0xA0, - 0x00, - 0x9C, - 0x9C, - 0x9B, - 0x00, - 0x9A, - 0x9A, - 0x99, - 0x00, - 0x97, - 0x97, - 0x96, - 0x00, - 0x8E, - 0x8E, - 0x8D, - 0x00, - 0x8D, - 0x8D, - 0x8C, - 0x00, - 0x8A, - 0x8A, - 0x89, - 0x00, - 0x83, - 0x83, - 0x82, - 0x00, - 0xA6, - 0xAE, - 0x00, - 0x00, - 0xA5, - 0xAB, - 0x00, - 0x00, - 0xA2, - 0xA6, - 0x00, - 0x00, - 0xA0, - 0xA4, - 0x00, - 0x00, - 0x95, - 0x9C, - 0x01, - 0x00, - 0xA6, - 0xAA, - 0x0A, - 0x00, - 0x9F, - 0xA6, - 0x0B, - 0x00, - 0x89, - 0x8F, - 0x0E, - 0x00, - 0xA9, - 0xAD, - 0x13, - 0x00, - 0xAD, - 0xB1, - 0x1D, - 0x00, - 0x9C, - 0xA2, - 0x1F, - 0x00, - 0xB1, - 0xB5, - 0x25, - 0x00, - 0xBD, - 0xC3, - 0x41, - 0x00, - 0xB5, - 0xB9, - 0x44, - 0x00, - 0xC3, - 0xC8, - 0x59, - 0x00, - 0x83, - 0x85, - 0x4B, - 0x00, - 0xCB, - 0xCF, - 0x79, - 0x00, - 0x8B, - 0x8D, - 0x56, - 0x00, - 0x7D, - 0x7E, - 0x59, - 0x00, - 0xDB, - 0xDE, - 0x9D, - 0x00, - 0xE4, - 0xE6, - 0xB7, - 0x00, - 0xA9, - 0xB2, - 0x00, - 0x00, - 0xAF, - 0xB8, - 0x14, - 0x00, - 0x9D, - 0xA6, - 0x13, - 0x00, - 0x9C, - 0xA5, - 0x15, - 0x00, - 0x9B, - 0xA5, - 0x16, - 0x00, - 0x99, - 0xA2, - 0x17, - 0x00, - 0x9A, - 0xA3, - 0x19, - 0x00, - 0x9E, - 0xA7, - 0x1D, - 0x00, - 0xA0, - 0xA9, - 0x20, - 0x00, - 0x74, - 0x7A, - 0x1A, - 0x00, - 0xB5, - 0xBC, - 0x2B, - 0x00, - 0xAE, - 0xB4, - 0x36, - 0x00, - 0x9A, - 0xA0, - 0x31, - 0x00, - 0x93, - 0x97, - 0x46, - 0x00, - 0x97, - 0x9A, - 0x67, - 0x00, - 0xA8, - 0xAB, - 0x77, - 0x00, - 0x84, - 0x86, - 0x65, - 0x00, - 0xEC, - 0xEE, - 0xCC, - 0x00, - 0xF4, - 0xF5, - 0xE0, - 0x00, - 0x9C, - 0xA6, - 0x18, - 0x00, - 0x91, - 0x99, - 0x2C, - 0x00, - 0x60, - 0x65, - 0x24, - 0x00, - 0x6A, - 0x6C, - 0x56, - 0x00, - 0x77, - 0x79, - 0x62, - 0x00, - 0x9C, - 0xAB, - 0x15, - 0x00, - 0xA5, - 0xB5, - 0x2B, - 0x00, - 0x9E, - 0xAD, - 0x2C, - 0x00, - 0x8A, - 0x93, - 0x37, - 0x00, - 0x7C, - 0x84, - 0x3D, - 0x00, - 0x51, - 0x55, - 0x2F, - 0x00, - 0x4C, - 0x4F, - 0x2F, - 0x00, - 0x9C, - 0x9F, - 0x81, - 0x00, - 0x8F, - 0xA2, - 0x15, - 0x00, - 0xAF, - 0xC1, - 0x29, - 0x00, - 0xAA, - 0xBC, - 0x2A, - 0x00, - 0xA7, - 0xB8, - 0x2B, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xA3, - 0xB3, - 0x2C, - 0x00, - 0x99, - 0xA9, - 0x35, - 0x00, - 0x45, - 0x48, - 0x32, - 0x00, - 0xA6, - 0xBA, - 0x32, - 0x00, - 0xA2, - 0xB5, - 0x33, - 0x00, - 0x9D, - 0xAF, - 0x34, - 0x00, - 0x6A, - 0x72, - 0x40, - 0x00, - 0x65, - 0x6B, - 0x42, - 0x00, - 0x5F, - 0x65, - 0x40, - 0x00, - 0x48, - 0x4C, - 0x31, - 0x00, - 0x58, - 0x5C, - 0x40, - 0x00, - 0x59, - 0x5C, - 0x47, - 0x00, - 0x53, - 0x56, - 0x44, - 0x00, - 0x4F, - 0x51, - 0x45, - 0x00, - 0x53, - 0x55, - 0x49, - 0x00, - 0x41, - 0x44, - 0x34, - 0x00, - 0x76, - 0x7A, - 0x66, - 0x00, - 0x48, - 0x4D, - 0x38, - 0x00, - 0x73, - 0x76, - 0x6B, - 0x00, - 0x4B, - 0x4D, - 0x46, - 0x00, - 0x41, - 0x45, - 0x39, - 0x00, - 0x73, - 0x76, - 0x6D, - 0x00, - 0x7C, - 0x7D, - 0x7B, - 0x00, - 0xFC, - 0xFD, - 0xFB, - 0x00, - 0x3A, - 0x3D, - 0x39, - 0x00, - 0x6D, - 0x71, - 0x6C, - 0x00, - 0x56, - 0x59, - 0x56, - 0x00, - 0x75, - 0x78, - 0x75, - 0x00, - 0xCC, - 0xCD, - 0xCC, - 0x00, - 0x50, - 0xCD, - 0x59, - 0x00, - 0x32, - 0xC6, - 0x3E, - 0x00, - 0x81, - 0xDC, - 0x89, - 0x00, - 0xA8, - 0xE8, - 0xAE, - 0x00, - 0xC3, - 0xEF, - 0xC7, - 0x00, - 0x02, - 0xC0, - 0x19, - 0x00, - 0xE9, - 0xF9, - 0xEB, - 0x00, - 0x02, - 0xD4, - 0x2E, - 0x00, - 0x6A, - 0x6D, - 0x6B, - 0x00, - 0x74, - 0x77, - 0x75, - 0x00, - 0x73, - 0x76, - 0x74, - 0x00, - 0x71, - 0x74, - 0x72, - 0x00, - 0x6C, - 0x6F, - 0x6D, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x26, - 0xE2, - 0xD3, - 0x00, - 0x2E, - 0xD8, - 0xC9, - 0x00, - 0x34, - 0xD0, - 0xC1, - 0x00, - 0x57, - 0xE1, - 0xD5, - 0x00, - 0x88, - 0xE9, - 0xE1, - 0x00, - 0xBC, - 0xF3, - 0xEE, - 0x00, - 0xE0, - 0xF9, - 0xF7, - 0x00, - 0xF1, - 0xFD, - 0xFC, - 0x00, - 0x1F, - 0xE9, - 0xDA, - 0x00, - 0x63, - 0x65, - 0x65, - 0x00, - 0x51, - 0x52, - 0x52, - 0x00, - 0x55, - 0x56, - 0x56, - 0x00, - 0x4B, - 0x4D, - 0x4E, - 0x00, - 0x36, - 0x38, - 0x3A, - 0x00, - 0x42, - 0x44, - 0x47, - 0x00, - 0x6F, - 0x71, - 0x75, - 0x00, - 0x4E, - 0x4F, - 0x51, - 0x00, - 0x37, - 0x39, - 0x3E, - 0x00, - 0x3A, - 0x3C, - 0x41, - 0x00, - 0x34, - 0x36, - 0x3C, - 0x00, - 0x3F, - 0x40, - 0x44, - 0x00, - 0x46, - 0x47, - 0x4B, - 0x00, - 0x44, - 0x45, - 0x49, - 0x00, - 0x5A, - 0x5B, - 0x5F, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0xF9, - 0xFA, - 0xFF, - 0x00, - 0x69, - 0x6A, - 0x70, - 0x00, - 0x12, - 0x25, - 0xF6, - 0x00, - 0x0D, - 0x1A, - 0xEB, - 0x00, - 0xEE, - 0xEF, - 0xFD, - 0x00, - 0x09, - 0x0F, - 0xE1, - 0x00, - 0x27, - 0x2A, - 0xE1, - 0x00, - 0x38, - 0x3A, - 0xE3, - 0x00, - 0x48, - 0x4A, - 0xE4, - 0x00, - 0x72, - 0x73, - 0xEA, - 0x00, - 0x7F, - 0x80, - 0xEC, - 0x00, - 0xA6, - 0xA6, - 0xF1, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - - /* - Fonts - */ - 0x01, - 0x22, - 0x04, - 0x00, - 0x00, - 0x5E, - 0x03, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0C, - 0x16, - 0x00, - 0x09, - 0x20, - 0x00, - 0x11, - 0x32, - 0x00, - 0x10, - 0x43, - 0x00, - 0x02, - 0x46, - 0x00, - 0x07, - 0x4E, - 0x00, - 0x07, - 0x56, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x0C, - 0x6B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x77, - 0x00, - 0x02, - 0x7A, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x0C, - 0x92, - 0x00, - 0x05, - 0x98, - 0x00, - 0x0B, - 0xA4, - 0x00, - 0x0B, - 0xB0, - 0x00, - 0x0C, - 0xBD, - 0x00, - 0x0C, - 0xCA, - 0x00, - 0x0C, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x0C, - 0xFB, - 0x00, - 0x02, - 0xFE, - 0x00, - 0x04, - 0x03, - 0x01, - 0x0C, - 0x10, - 0x01, - 0x0C, - 0x1D, - 0x01, - 0x0C, - 0x2A, - 0x01, - 0x0B, - 0x36, - 0x01, - 0x11, - 0x48, - 0x01, - 0x11, - 0x5A, - 0x01, - 0x0B, - 0x66, - 0x01, - 0x11, - 0x78, - 0x01, - 0x0E, - 0x87, - 0x01, - 0x0A, - 0x92, - 0x01, - 0x09, - 0x9C, - 0x01, - 0x12, - 0xAF, - 0x01, - 0x0C, - 0xBC, - 0x01, - 0x02, - 0xBF, - 0x01, - 0x09, - 0xC9, - 0x01, - 0x0C, - 0xD6, - 0x01, - 0x09, - 0xE0, - 0x01, - 0x12, - 0xF3, - 0x01, - 0x0E, - 0x02, - 0x02, - 0x12, - 0x15, - 0x02, - 0x0B, - 0x21, - 0x02, - 0x12, - 0x34, - 0x02, - 0x0C, - 0x41, - 0x02, - 0x0B, - 0x4D, - 0x02, - 0x0A, - 0x58, - 0x02, - 0x0C, - 0x65, - 0x02, - 0x10, - 0x76, - 0x02, - 0x16, - 0x8D, - 0x02, - 0x0E, - 0x9C, - 0x02, - 0x0E, - 0xAB, - 0x02, - 0x0B, - 0xB7, - 0x02, - 0x05, - 0xBD, - 0x02, - 0x0A, - 0xC8, - 0x02, - 0x05, - 0xCE, - 0x02, - 0x0E, - 0xDD, - 0x02, - 0x0C, - 0xEA, - 0x02, - 0x07, - 0xF2, - 0x02, - 0x0E, - 0x01, - 0x03, - 0x0D, - 0x0F, - 0x03, - 0x0E, - 0x1E, - 0x03, - 0x0E, - 0x2D, - 0x03, - 0x0D, - 0x3B, - 0x03, - 0x07, - 0x43, - 0x03, - 0x0D, - 0x51, - 0x03, - 0x0B, - 0x5D, - 0x03, - 0x02, - 0x60, - 0x03, - 0x05, - 0x66, - 0x03, - 0x0B, - 0x72, - 0x03, - 0x02, - 0x75, - 0x03, - 0x13, - 0x89, - 0x03, - 0x0B, - 0x95, - 0x03, - 0x0D, - 0xA3, - 0x03, - 0x0D, - 0xB1, - 0x03, - 0x0D, - 0xBF, - 0x03, - 0x06, - 0xC6, - 0x03, - 0x08, - 0xCF, - 0x03, - 0x07, - 0xD7, - 0x03, - 0x0B, - 0xE3, - 0x03, - 0x0D, - 0xF1, - 0x03, - 0x14, - 0x06, - 0x04, - 0x0B, - 0x12, - 0x04, - 0x0D, - 0x20, - 0x04, - 0x09, - 0x2A, - 0x04, - 0x06, - 0x31, - 0x04, - 0x02, - 0x34, - 0x04, - 0x06, - 0x3B, - 0x04, - 0x0C, - - /* - Bitmaps - */ - 0x04, - 0x4F, - 0x05, - 0x00, - 0x00, - 0x3B, - 0x09, - 0x00, - 0x00, - 0x23, - 0x0D, - 0x00, - 0x00, - 0x7B, - 0x12, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x09, - 0x3A, - 0x00, - 0x04, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x05, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x2B, - 0x09, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x1B, - 0x2B, - 0x01, - 0x3B, - 0x0A, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x0F, - 0x2C, - 0x01, - 0x45, - 0x05, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x01, - 0x2F, - 0x04, - 0x45, - 0x00, - 0x0E, - 0x2F, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x0D, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x00, - 0x09, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x2D, - 0x00, - 0x04, - 0x31, - 0x00, - 0x1B, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x00, - 0x06, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x10, - 0x26, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x30, - 0x04, - 0x26, - 0x04, - 0x30, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x26, - 0x43, - 0x04, - 0x26, - 0x01, - 0x43, - 0x0A, - 0x26, - 0x00, - 0x05, - 0x43, - 0x26, - 0xF7, - 0x00, - 0x41, - 0x00, - 0x06, - 0x26, - 0x01, - 0x43, - 0x09, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x01, - 0x42, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x33, - 0x00, - 0x00, - 0x5A, - 0x0D, - 0x43, - 0x00, - 0x05, - 0x42, - 0x43, - 0x43, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x29, - 0x00, - 0x04, - 0x32, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x28, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x54, - 0x59, - 0x10, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x12, - 0x27, - 0x00, - 0x04, - 0x1A, - 0x00, - 0x00, - 0x59, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x04, - 0x41, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x00, - 0x04, - 0x37, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x08, - 0x4F, - 0x09, - 0xB8, - 0x13, - 0x13, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x08, - 0x5A, - 0x54, - 0x00, - 0xF5, - 0x59, - 0x00, - 0x00, - 0x59, - 0x0E, - 0x3E, - 0x00, - 0x04, - 0x19, - 0x3E, - 0x60, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x01, - 0x50, - 0x01, - 0xB8, - 0x04, - 0x00, - 0x01, - 0x58, - 0x10, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1A, - 0x0B, - 0x35, - 0x34, - 0x34, - 0x35, - 0x0B, - 0x34, - 0x00, - 0x13, - 0x35, - 0x34, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x00, - 0x04, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x12, - 0x18, - 0x00, - 0x04, - 0x21, - 0x00, - 0x00, - 0x58, - 0x10, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x0B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x0A, - 0x33, - 0x58, - 0x00, - 0x5C, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x05, - 0x1B, - 0x00, - 0x07, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x08, - 0x1E, - 0x00, - 0x0C, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x05, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x06, - 0x1E, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x06, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0B, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x00, - 0x03, - 0x1D, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x24, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x0B, - 0x3A, - 0x00, - 0x08, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x06, - 0x3A, - 0x01, - 0x2B, - 0x0C, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2C, - 0x45, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x13, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x45, - 0x2F, - 0x00, - 0x05, - 0x45, - 0x00, - 0x06, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x2F, - 0x0B, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0D, - 0x2E, - 0x00, - 0x06, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x0A, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x09, - 0x31, - 0x00, - 0x1F, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x08, - 0x30, - 0x01, - 0x26, - 0x04, - 0x30, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x30, - 0x00, - 0x0B, - 0x26, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x41, - 0x21, - 0x26, - 0x26, - 0x43, - 0x26, - 0x43, - 0x26, - 0x43, - 0x00, - 0x07, - 0x26, - 0x01, - 0x4F, - 0x09, - 0x00, - 0x01, - 0x37, - 0x04, - 0x26, - 0x01, - 0x43, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x01, - 0x58, - 0x09, - 0x00, - 0x01, - 0x36, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x42, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x00, - 0xF5, - 0x1B, - 0x00, - 0x13, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x05, - 0x50, - 0x00, - 0x00, - 0xF6, - 0x1C, - 0x00, - 0x12, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x28, - 0x00, - 0x05, - 0x61, - 0xF5, - 0x00, - 0xF5, - 0x61, - 0x00, - 0x11, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x11, - 0x27, - 0x00, - 0x05, - 0x4E, - 0xF5, - 0x09, - 0x00, - 0x59, - 0x00, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x05, - 0x41, - 0xF7, - 0xB3, - 0x54, - 0x58, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x14, - 0x3C, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF9, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x01, - 0x1B, - 0x04, - 0x3F, - 0x00, - 0x04, - 0x32, - 0xF5, - 0x00, - 0xF6, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x03, - 0x59, - 0x00, - 0x56, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x04, - 0x56, - 0x00, - 0x00, - 0x40, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x57, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x19, - 0x19, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x06, - 0x34, - 0x01, - 0x35, - 0x04, - 0x34, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x34, - 0x5F, - 0x00, - 0x00, - 0xF7, - 0x1E, - 0x34, - 0x58, - 0x00, - 0x00, - 0x55, - 0x00, - 0x04, - 0x34, - 0x00, - 0x04, - 0x35, - 0x35, - 0x34, - 0x35, - 0x06, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x0F, - 0x18, - 0x01, - 0x57, - 0x07, - 0x00, - 0x01, - 0x17, - 0x0E, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5C, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x17, - 0x1B, - 0x33, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x06, - 0x1E, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x06, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x08, - 0x1E, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x04, - 0x1E, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x06, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x0E, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x14, - 0x01, - 0x36, - 0x14, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x1C, - 0x11, - 0x01, - 0x0A, - 0x07, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x18, - 0x11, - 0x01, - 0xFB, - 0x07, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x00, - 0x04, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x0A, - 0x89, - 0x75, - 0x6E, - 0x78, - 0x77, - 0x77, - 0x78, - 0x81, - 0x72, - 0x76, - 0x1E, - 0x00, - 0x00, - 0x04, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x46, - 0x72, - 0x78, - 0x09, - 0x77, - 0x00, - 0x03, - 0x6E, - 0x76, - 0x53, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x05, - 0xF4, - 0x56, - 0x58, - 0x57, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x53, - 0x89, - 0x81, - 0x0D, - 0x77, - 0x00, - 0x03, - 0x75, - 0x53, - 0x54, - 0x00, - 0x07, - 0x00, - 0x01, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x0A, - 0x53, - 0x54, - 0x00, - 0x00, - 0xF9, - 0x5A, - 0xB8, - 0xB8, - 0x4F, - 0x56, - 0x06, - 0x00, - 0x01, - 0x53, - 0x11, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x53, - 0x89, - 0x6D, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x72, - 0x07, - 0x00, - 0x00, - 0x38, - 0x54, - 0xF7, - 0xF6, - 0xB3, - 0xB8, - 0xF4, - 0x00, - 0x55, - 0xF7, - 0x00, - 0xF3, - 0x56, - 0x57, - 0x53, - 0xF4, - 0x56, - 0x58, - 0xB8, - 0xF4, - 0x5D, - 0x56, - 0xF5, - 0xF7, - 0x22, - 0x57, - 0x55, - 0xF7, - 0x00, - 0x00, - 0x55, - 0x58, - 0xB8, - 0x55, - 0x55, - 0x00, - 0xF4, - 0x56, - 0x57, - 0x00, - 0xF5, - 0x57, - 0x58, - 0xB8, - 0xF3, - 0x00, - 0xF7, - 0x58, - 0xB8, - 0x55, - 0xF6, - 0x00, - 0xF6, - 0xF6, - 0x55, - 0x55, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x53, - 0x46, - 0x81, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x77, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x75, - 0x54, - 0x06, - 0x00, - 0x00, - 0x37, - 0x60, - 0x56, - 0xF5, - 0x44, - 0xF6, - 0x00, - 0x58, - 0x5B, - 0x00, - 0x57, - 0xB2, - 0x57, - 0xF5, - 0x60, - 0x0B, - 0x57, - 0x21, - 0xB8, - 0xF4, - 0xB2, - 0x21, - 0x5A, - 0x57, - 0xF3, - 0x58, - 0x0B, - 0x00, - 0xF5, - 0xB2, - 0x58, - 0x58, - 0x4E, - 0x59, - 0x00, - 0x58, - 0xB2, - 0x57, - 0xF5, - 0x22, - 0x5C, - 0x57, - 0x5F, - 0xB8, - 0x55, - 0x40, - 0x59, - 0x5B, - 0x40, - 0x56, - 0x53, - 0xB8, - 0x56, - 0xF9, - 0x4F, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x54, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x6E, - 0x81, - 0x81, - 0x70, - 0x6E, - 0x77, - 0x77, - 0x78, - 0x70, - 0x6E, - 0x81, - 0x6E, - 0x70, - 0x78, - 0x77, - 0x78, - 0x89, - 0x54, - 0x05, - 0x00, - 0x00, - 0x32, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF6, - 0x00, - 0x58, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x54, - 0xB8, - 0x61, - 0x54, - 0x00, - 0x54, - 0xF4, - 0x54, - 0x5F, - 0x5C, - 0x56, - 0x00, - 0x54, - 0x58, - 0x5C, - 0x00, - 0xF6, - 0x4D, - 0x55, - 0x00, - 0x59, - 0x59, - 0x00, - 0x5B, - 0x57, - 0x53, - 0x56, - 0x22, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0x59, - 0x00, - 0x54, - 0x22, - 0x56, - 0x54, - 0x04, - 0x57, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x89, - 0x78, - 0x77, - 0x77, - 0x88, - 0x00, - 0x75, - 0x72, - 0x54, - 0x53, - 0x81, - 0x64, - 0x75, - 0x00, - 0x89, - 0x6E, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x72, - 0x53, - 0x05, - 0x00, - 0x00, - 0x34, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF5, - 0x53, - 0x58, - 0x5A, - 0x00, - 0x58, - 0x59, - 0x00, - 0x56, - 0xB2, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0xF7, - 0x4F, - 0xB8, - 0x5C, - 0x5A, - 0x00, - 0x57, - 0x5C, - 0x00, - 0x00, - 0x56, - 0x60, - 0x5A, - 0x4F, - 0x58, - 0x00, - 0x5A, - 0x57, - 0x53, - 0x57, - 0x50, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0x5C, - 0x57, - 0x00, - 0x00, - 0xF9, - 0x56, - 0x53, - 0xF3, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x72, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x53, - 0x00, - 0x70, - 0x78, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x78, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x31, - 0x21, - 0x56, - 0xF4, - 0x4E, - 0xF7, - 0x54, - 0x58, - 0x5B, - 0x53, - 0x58, - 0x58, - 0x00, - 0xB8, - 0x4E, - 0xF7, - 0x55, - 0x50, - 0x56, - 0x57, - 0x5A, - 0x00, - 0x55, - 0x50, - 0x00, - 0x57, - 0x44, - 0x55, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x16, - 0x59, - 0x00, - 0x5A, - 0x57, - 0x54, - 0xB8, - 0xB2, - 0x55, - 0x55, - 0x4E, - 0xB8, - 0x57, - 0x5D, - 0x00, - 0x54, - 0xF9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x53, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x64, - 0x70, - 0x00, - 0x46, - 0x89, - 0x00, - 0x88, - 0x62, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x76, - 0x05, - 0x00, - 0x00, - 0x31, - 0x5F, - 0x56, - 0xF5, - 0xB2, - 0x5F, - 0x5A, - 0x44, - 0x56, - 0xF7, - 0x50, - 0x50, - 0x58, - 0xF3, - 0x5D, - 0x5A, - 0x58, - 0x4F, - 0xF5, - 0x55, - 0x50, - 0x57, - 0x0B, - 0xB2, - 0x56, - 0x57, - 0x60, - 0x61, - 0x57, - 0x57, - 0x5B, - 0x58, - 0x4E, - 0xB8, - 0xB8, - 0xB2, - 0x17, - 0x58, - 0xF4, - 0xF9, - 0x5A, - 0x59, - 0x5F, - 0xF4, - 0xF5, - 0x17, - 0x5C, - 0x5A, - 0x4D, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0x54, - 0x6E, - 0x63, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x05, - 0x00, - 0x00, - 0x31, - 0x55, - 0xF5, - 0xF3, - 0x55, - 0xF5, - 0x56, - 0xB8, - 0x00, - 0xF6, - 0x16, - 0xF9, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x57, - 0xB8, - 0xF6, - 0x55, - 0xF6, - 0xF6, - 0xF6, - 0xF7, - 0xF5, - 0xB8, - 0x57, - 0xF7, - 0x00, - 0x55, - 0x60, - 0xF8, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x56, - 0xB8, - 0x22, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x54, - 0x75, - 0x62, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x76, - 0x62, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x56, - 0xF7, - 0x54, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x01, - 0x58, - 0x17, - 0x00, - 0x01, - 0x59, - 0x01, - 0x57, - 0x0B, - 0x00, - 0x01, - 0x16, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x88, - 0x53, - 0x75, - 0x63, - 0x77, - 0x62, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xB8, - 0x07, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xF4, - 0x17, - 0x00, - 0x01, - 0xF5, - 0x01, - 0xF4, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x54, - 0x5A, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x78, - 0x75, - 0x81, - 0x46, - 0x54, - 0x72, - 0x64, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x0D, - 0x54, - 0x54, - 0x54, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x54, - 0x00, - 0x1A, - 0x00, - 0x01, - 0xF3, - 0x01, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x19, - 0x54, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x72, - 0x00, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x78, - 0x78, - 0x53, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x75, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x58, - 0xB8, - 0x00, - 0x55, - 0x5A, - 0x53, - 0x00, - 0x59, - 0xF7, - 0xF5, - 0x0B, - 0x5F, - 0x58, - 0x59, - 0x55, - 0x59, - 0xB8, - 0x00, - 0xF7, - 0x5B, - 0xF6, - 0x5A, - 0xF5, - 0xF7, - 0x59, - 0x00, - 0x54, - 0x5A, - 0x55, - 0x54, - 0xB8, - 0x58, - 0x00, - 0x00, - 0x00, - 0x19, - 0x00, - 0x70, - 0x77, - 0x77, - 0x77, - 0x88, - 0x00, - 0x88, - 0x72, - 0x46, - 0x54, - 0x72, - 0x67, - 0x89, - 0x54, - 0x76, - 0x72, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x88, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x60, - 0x56, - 0x00, - 0xF7, - 0x50, - 0xB3, - 0x00, - 0x4F, - 0xB8, - 0x57, - 0x60, - 0xF5, - 0x56, - 0x1A, - 0x55, - 0xF7, - 0x50, - 0x55, - 0x50, - 0xB8, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x4F, - 0x00, - 0x53, - 0x50, - 0xF7, - 0x53, - 0x56, - 0x60, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x75, - 0x77, - 0x77, - 0x62, - 0x88, - 0x04, - 0x00, - 0x00, - 0x05, - 0x89, - 0x78, - 0x63, - 0x72, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x70, - 0x62, - 0x77, - 0x81, - 0xB3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0xB3, - 0x00, - 0x5E, - 0xB8, - 0xF7, - 0x50, - 0xB8, - 0xF5, - 0x61, - 0xF7, - 0x00, - 0x57, - 0x24, - 0x58, - 0x00, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x53, - 0x17, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x4C, - 0x81, - 0x77, - 0x62, - 0x70, - 0x04, - 0x76, - 0x00, - 0x0D, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x75, - 0x76, - 0x76, - 0x76, - 0x75, - 0x78, - 0x77, - 0x77, - 0x75, - 0x00, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0x00, - 0x00, - 0x21, - 0x56, - 0x54, - 0xF7, - 0x5A, - 0x5D, - 0x40, - 0xF7, - 0x00, - 0xB8, - 0x41, - 0x56, - 0x53, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x00, - 0x22, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x76, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x6E, - 0x46, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x60, - 0xF6, - 0x56, - 0x1A, - 0x56, - 0xF6, - 0x50, - 0xB8, - 0xB3, - 0x55, - 0xF4, - 0x55, - 0x40, - 0x55, - 0xF6, - 0x50, - 0x57, - 0x50, - 0xF6, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x25, - 0xB8, - 0xF6, - 0x44, - 0x5C, - 0xF6, - 0x58, - 0x21, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x72, - 0x10, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x07, - 0x00, - 0x00, - 0x20, - 0x59, - 0x58, - 0xF9, - 0x50, - 0x57, - 0x59, - 0x17, - 0x60, - 0xF5, - 0xF4, - 0x5D, - 0x60, - 0x22, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x00, - 0x57, - 0x59, - 0xF4, - 0xF9, - 0xF5, - 0xF7, - 0x5B, - 0x5A, - 0x61, - 0x5D, - 0x57, - 0x5F, - 0xB2, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x54, - 0x70, - 0x00, - 0x0E, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x08, - 0x00, - 0x00, - 0x1F, - 0xF3, - 0x00, - 0xF3, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x53, - 0xF5, - 0x54, - 0xB3, - 0x00, - 0x54, - 0xF5, - 0x53, - 0x00, - 0xF4, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x72, - 0x01, - 0x78, - 0x0B, - 0x77, - 0x01, - 0x6E, - 0x01, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x03, - 0xF6, - 0x50, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x88, - 0x70, - 0x78, - 0x00, - 0x07, - 0x77, - 0x00, - 0x03, - 0x81, - 0x75, - 0x46, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x03, - 0xF3, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x09, - 0x89, - 0x75, - 0x70, - 0x6E, - 0x6E, - 0x70, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x49, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB8, - 0x5D, - 0x17, - 0x17, - 0x5D, - 0xF7, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDC, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x5D, - 0x54, - 0x5D, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD9, - 0xDF, - 0xB8, - 0x55, - 0xF7, - 0x5A, - 0xD2, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0xD9, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDC, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x5B, - 0x00, - 0x5B, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xDE, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD3, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD9, - 0x58, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDA, - 0x60, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDD, - 0x5A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0xDB, - 0xD8, - 0xD7, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xD0, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD8, - 0xD8, - 0xD7, - 0x12, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xD3, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x16, - 0xF2, - 0xD9, - 0xD9, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xD2, - 0xD9, - 0xD9, - 0xDE, - 0xFA, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xDC, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x03, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDB, - 0xD2, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xFA, - 0xD0, - 0xDC, - 0xDA, - 0xD9, - 0xD3, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD3, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xE1, - 0xD7, - 0xD9, - 0xDA, - 0xD5, - 0xDE, - 0x60, - 0xF6, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xDA, - 0xDD, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x5D, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xD0, - 0xDC, - 0xD8, - 0xD8, - 0xD3, - 0xE1, - 0x5A, - 0xF3, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x59, - 0xE1, - 0xF1, - 0xD8, - 0xD9, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0xF5, - 0xDF, - 0xD7, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xEF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDF, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD8, - 0xD9, - 0xD7, - 0xDF, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x09, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x58, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xF1, - 0xD8, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD7, - 0xD9, - 0xD8, - 0xD2, - 0x17, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xE1, - 0xB8, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xDD, - 0xDA, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0xD0, - 0xD5, - 0xDA, - 0xDD, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xD5, - 0xDA, - 0xD5, - 0xD0, - 0x56, - 0xC6, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xDE, - 0xDB, - 0x04, - 0xD5, - 0xD6, - 0xF5, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD9, - 0x55, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD8, - 0xD0, - 0xE1, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xDB, - 0xE1, - 0xD6, - 0xF1, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x53, - 0x59, - 0xD8, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0xD7, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDA, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x60, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDC, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xE1, - 0xD2, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD6, - 0xDE, - 0xD5, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD7, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDB, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDC, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD7, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x16, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD5, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xF2, - 0xD6, - 0xD6, - 0xD3, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0xD2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xEF, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x16, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xE1, - 0xF1, - 0x04, - 0xDC, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD8, - 0x59, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x60, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x16, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD8, - 0xD9, - 0xE1, - 0xD6, - 0xDB, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0x54, - 0xEF, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0xE1, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3E, - 0x54, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xF2, - 0xB8, - 0xF3, - 0xB8, - 0xD7, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xDF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xFC, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x12, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0xD8, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xD5, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD9, - 0x04, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0x04, - 0xDB, - 0xEF, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD5, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD0, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDB, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xDB, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xDA, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD3, - 0xDA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x53, - 0x60, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0x04, - 0x04, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0xD9, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD6, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7D, - 0x3B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDB, - 0xF5, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0xEF, - 0xDA, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD2, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x54, - 0xDF, - 0x04, - 0x16, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x56, - 0xD0, - 0xDA, - 0x04, - 0xD2, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD2, - 0x04, - 0xDA, - 0xE1, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDA, - 0xFA, - 0x00, - 0xF4, - 0xF7, - 0xF5, - 0x54, - 0x54, - 0xF3, - 0xF7, - 0x04, - 0x04, - 0x0A, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x60, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0xDA, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD9, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x5B, - 0x53, - 0xF5, - 0xD7, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDD, - 0xDE, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0x00, - 0xD2, - 0xD2, - 0xB8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x54, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xFF, - 0xAD, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x60, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xDB, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0xDB, - 0x04, - 0xD6, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0xE1, - 0xD4, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xD7, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xF2, - 0x04, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xFA, - 0x00, - 0x60, - 0xD9, - 0x04, - 0xDA, - 0xD6, - 0xB8, - 0xDD, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD6, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x09, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0xF5, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF4, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0D, - 0x04, - 0xFD, - 0xF7, - 0x57, - 0xDA, - 0xF1, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDD, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0xB3, - 0xDC, - 0xF2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xDF, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x54, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x54, - 0xE1, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x5E, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xD0, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0x04, - 0x5A, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF4, - 0x59, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x17, - 0x00, - 0xD2, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD9, - 0xB8, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x60, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD7, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x04, - 0xDE, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0xD5, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x59, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDC, - 0xF3, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD0, - 0x00, - 0xDB, - 0xD2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x60, - 0x0D, - 0x5E, - 0x04, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xF1, - 0x04, - 0xD9, - 0xD6, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xF1, - 0x60, - 0x17, - 0xF1, - 0x04, - 0x04, - 0x56, - 0x55, - 0xEF, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x17, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0xC6, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x56, - 0xF5, - 0x53, - 0xF5, - 0x56, - 0xDF, - 0xD5, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x53, - 0xDE, - 0xDA, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDE, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD5, - 0xF3, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0xD6, - 0x00, - 0xF4, - 0xD9, - 0xEF, - 0x00, - 0x5E, - 0x04, - 0xF7, - 0x00, - 0x60, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0xF7, - 0xC6, - 0x00, - 0x0A, - 0xE1, - 0x00, - 0x54, - 0x53, - 0x53, - 0x57, - 0xDE, - 0xD9, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0xD0, - 0xDA, - 0xB8, - 0x53, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0x0A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xF1, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x58, - 0x00, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x59, - 0x54, - 0x00, - 0xFA, - 0xD7, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xDF, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x55, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xB3, - 0x00, - 0x03, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x54, - 0xDD, - 0xF2, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xDA, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD2, - 0x04, - 0xD8, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x57, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0xDE, - 0xD7, - 0x00, - 0x00, - 0x55, - 0xD8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDA, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0xFA, - 0x00, - 0x5A, - 0x04, - 0xFA, - 0xF3, - 0x57, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x4D, - 0xF9, - 0x69, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD0, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x53, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x56, - 0xD4, - 0xDC, - 0xB8, - 0x54, - 0xB3, - 0xE1, - 0x04, - 0xD0, - 0xF3, - 0x17, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xD0, - 0xB8, - 0xF3, - 0xF5, - 0x59, - 0xD3, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x56, - 0xC6, - 0x00, - 0x00, - 0xDB, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x16, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD0, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xF7, - 0xF1, - 0xD9, - 0xF7, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x00, - 0xDC, - 0xF1, - 0x55, - 0x5A, - 0x17, - 0xEF, - 0xDF, - 0x5D, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD0, - 0xDE, - 0xD7, - 0xD8, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x54, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0xD3, - 0x60, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x57, - 0xD4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0x56, - 0xF4, - 0x5A, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x0A, - 0xDB, - 0x04, - 0xFC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0xD8, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x53, - 0x00, - 0xF4, - 0xDC, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0xDA, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xD8, - 0x17, - 0x55, - 0xB3, - 0xF7, - 0xE1, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x5B, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD7, - 0x04, - 0xDA, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0x53, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x56, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xF2, - 0xDA, - 0xDB, - 0x57, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xD8, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD2, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xDA, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x60, - 0xDE, - 0xDA, - 0x04, - 0xB6, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDC, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xF1, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD5, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD8, - 0x5A, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x53, - 0x16, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDF, - 0x5D, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x56, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDA, - 0xD9, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDF, - 0xDF, - 0x57, - 0x00, - 0x54, - 0xDE, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD6, - 0xD2, - 0x04, - 0xF1, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x53, - 0xD2, - 0xD8, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x59, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xD9, - 0xF7, - 0x00, - 0xD9, - 0xF6, - 0x00, - 0x58, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xE1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xD9, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xF1, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDF, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x04, - 0xD2, - 0xDF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD3, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xF2, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x12, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD8, - 0xF4, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD0, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF4, - 0x5B, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x16, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x0A, - 0x54, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEC, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x58, - 0xFA, - 0x04, - 0xDF, - 0x58, - 0x58, - 0x58, - 0x04, - 0xF2, - 0x58, - 0x58, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0xD2, - 0xFA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x57, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xDB, - 0xDA, - 0xDF, - 0x53, - 0x00, - 0x53, - 0xD2, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD3, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0x04, - 0xD2, - 0xD6, - 0xD6, - 0xF1, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD0, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD2, - 0x5C, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xD2, - 0x04, - 0xD4, - 0xE1, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xE1, - 0x00, - 0xD2, - 0x59, - 0x54, - 0x53, - 0xD7, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD3, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0x55, - 0x5A, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD9, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0xD7, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD0, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0xF3, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x54, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xF1, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD5, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xEF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0x04, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x53, - 0x00, - 0x5A, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF2, - 0xDD, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x54, - 0x53, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDA, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x54, - 0xF2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x74, - 0xEC, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x60, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0xF6, - 0xF6, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x58, - 0x00, - 0x57, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xD2, - 0xD8, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0xDE, - 0xDB, - 0xD9, - 0xF2, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDC, - 0xD9, - 0xD2, - 0x17, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xDB, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x04, - 0xDB, - 0x0D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xEE, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDF, - 0xDE, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x57, - 0x00, - 0x57, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDD, - 0xF3, - 0x54, - 0x53, - 0xD3, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xD7, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x0A, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x55, - 0xD9, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xB6, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD8, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0xD8, - 0xDE, - 0xD6, - 0xE1, - 0xD7, - 0x04, - 0xD5, - 0x56, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD9, - 0x59, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x17, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x12, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0x60, - 0xB8, - 0xDB, - 0xD9, - 0xD0, - 0xD6, - 0xF2, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD0, - 0xF4, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0x60, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xD6, - 0x56, - 0x00, - 0xF7, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xD5, - 0x55, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF5, - 0x00, - 0x57, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xF9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF3, - 0x00, - 0xB8, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x56, - 0x94, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x53, - 0xF6, - 0x55, - 0x55, - 0xDE, - 0xDE, - 0x55, - 0x55, - 0x55, - 0x17, - 0x04, - 0xB8, - 0x55, - 0x00, - 0xD0, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDD, - 0x55, - 0xDC, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x00, - 0xF4, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF1, - 0xD7, - 0xF4, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x16, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x55, - 0xD9, - 0x60, - 0x00, - 0x00, - 0x58, - 0xD9, - 0xD8, - 0xD0, - 0xD6, - 0xDD, - 0xDE, - 0xD7, - 0xE1, - 0x53, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5B, - 0x00, - 0x58, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x56, - 0xD6, - 0x58, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD3, - 0x53, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xF1, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDC, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD8, - 0x00, - 0xF7, - 0xDA, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xF1, - 0x53, - 0x00, - 0xD7, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xDC, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD0, - 0xD5, - 0xD8, - 0xDC, - 0xD6, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xF5, - 0xDF, - 0xD3, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x55, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xD0, - 0x56, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xB8, - 0xD7, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xFA, - 0x00, - 0xE1, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD7, - 0x00, - 0x00, - 0x60, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x0D, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x8C, - 0x3B, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xEF, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0x00, - 0xF3, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDD, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x5B, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xD9, - 0xD0, - 0x55, - 0x00, - 0xF3, - 0x04, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDD, - 0xD2, - 0x00, - 0xDE, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB8, - 0xD5, - 0xDB, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x16, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xD8, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xDA, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF1, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF2, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xF2, - 0x04, - 0x16, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC8, - 0xE3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x54, - 0x00, - 0xB8, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x16, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDD, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0xD4, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDB, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD7, - 0xD8, - 0x5A, - 0x54, - 0x00, - 0x54, - 0xF5, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD7, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD6, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDD, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x60, - 0xD9, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB3, - 0x58, - 0xD2, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xDB, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xD8, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xDC, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0xDD, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD8, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x0D, - 0x53, - 0x00, - 0x54, - 0xF5, - 0xDE, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0xF5, - 0xD4, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xFA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD2, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xC0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD3, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xF1, - 0xD3, - 0x56, - 0xF3, - 0x55, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0xB8, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0xF4, - 0xDB, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xDB, - 0xE1, - 0xE1, - 0xD9, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDC, - 0x56, - 0x00, - 0x57, - 0xDB, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x5E, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD4, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x55, - 0xF1, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDD, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDD, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xDE, - 0xDB, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x00, - 0x00, - 0xB3, - 0xEF, - 0x04, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD7, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xD2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xDB, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5A, - 0x54, - 0x59, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0xF1, - 0xF3, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDA, - 0x5A, - 0x00, - 0x00, - 0x16, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD4, - 0xD8, - 0xD0, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0xD7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x3B, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x17, - 0x00, - 0x17, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xDC, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD6, - 0xD5, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x12, - 0xDC, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xDD, - 0x04, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xF1, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xDE, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xD0, - 0xDD, - 0xD8, - 0xD9, - 0xD7, - 0xE1, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDB, - 0xD7, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x0A, - 0xD7, - 0xD9, - 0x04, - 0xD9, - 0xD7, - 0xD6, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x58, - 0xE1, - 0xD3, - 0xD8, - 0xD8, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xD0, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x60, - 0xDE, - 0xDD, - 0xDA, - 0xD8, - 0xDC, - 0xD0, - 0xFA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD9, - 0xD3, - 0xD0, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xD2, - 0x00, - 0xF7, - 0xD8, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDE, - 0x17, - 0x00, - 0x00, - 0xD7, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xF1, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF2, - 0xD8, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0xDC, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD2, - 0x53, - 0xD0, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x16, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x3B, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0xF6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, -}; diff --git a/Examples/MAX32572/HTMR/resources/bitmap.h b/Examples/MAX32572/HTMR/resources/bitmap.h deleted file mode 100644 index b84d76dad0d..00000000000 --- a/Examples/MAX32572/HTMR/resources/bitmap.h +++ /dev/null @@ -1,48 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_HTMR_RESOURCES_BITMAP_H_ -#define EXAMPLES_MAX32572_HTMR_RESOURCES_BITMAP_H_ - -// bitmaps id -#define key_1_bg_white_bmp 0 -#define key_2_bg_white_bmp 1 -#define logo_white_bg_white_bmp 2 - -// fonts id -#define urw_gothic_13_grey_bg_white 0 - -#endif // EXAMPLES_MAX32572_HTMR_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32572/HTMR/resources/bmp_rle/key_1-bg_white.bmp b/Examples/MAX32572/HTMR/resources/bmp_rle/key_1-bg_white.bmp deleted file mode 100644 index 399bb1ca33c..00000000000 Binary files a/Examples/MAX32572/HTMR/resources/bmp_rle/key_1-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/HTMR/resources/bmp_rle/key_2-bg_white.bmp b/Examples/MAX32572/HTMR/resources/bmp_rle/key_2-bg_white.bmp deleted file mode 100644 index 5c15ca628c3..00000000000 Binary files a/Examples/MAX32572/HTMR/resources/bmp_rle/key_2-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/HTMR/resources/bmp_rle/logo_white-bg_white.bmp b/Examples/MAX32572/HTMR/resources/bmp_rle/logo_white-bg_white.bmp deleted file mode 100644 index 43362ab9476..00000000000 Binary files a/Examples/MAX32572/HTMR/resources/bmp_rle/logo_white-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/HTMR/resources/fonts/urw_gothic_13-grey_bg-white.bmp b/Examples/MAX32572/HTMR/resources/fonts/urw_gothic_13-grey_bg-white.bmp deleted file mode 100644 index 9030c466136..00000000000 Binary files a/Examples/MAX32572/HTMR/resources/fonts/urw_gothic_13-grey_bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/HTMR/resources/fonts/urw_gothic_13-grey_bg-white.mff b/Examples/MAX32572/HTMR/resources/fonts/urw_gothic_13-grey_bg-white.mff deleted file mode 100644 index d854b3a9fe5..00000000000 Binary files a/Examples/MAX32572/HTMR/resources/fonts/urw_gothic_13-grey_bg-white.mff and /dev/null differ diff --git a/Examples/MAX32572/Hash/.cproject b/Examples/MAX32572/Hash/.cproject deleted file mode 100644 index 29bdc32aad4..00000000000 --- a/Examples/MAX32572/Hash/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Hash/.project b/Examples/MAX32572/Hash/.project deleted file mode 100644 index 265d7cc9d80..00000000000 --- a/Examples/MAX32572/Hash/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Hash - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Hash/.vscode/c_cpp_properties.json b/Examples/MAX32572/Hash/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Hash/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Hash/.vscode/launch.json b/Examples/MAX32572/Hash/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Hash/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Hash/.vscode/settings.json b/Examples/MAX32572/Hash/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Hash/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Hash/.vscode/tasks.json b/Examples/MAX32572/Hash/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Hash/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Hash/Hash.launch b/Examples/MAX32572/Hash/Hash.launch deleted file mode 100644 index 94a9fa46309..00000000000 --- a/Examples/MAX32572/Hash/Hash.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Hash/Makefile b/Examples/MAX32572/Hash/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/Hash/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Hash/README.md b/Examples/MAX32572/Hash/README.md deleted file mode 100644 index 7287d600f92..00000000000 --- a/Examples/MAX32572/Hash/README.md +++ /dev/null @@ -1,37 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -********** CTB Hash Example ********** - -Test Hash Sync - Passed - -Test Hash Async - Passed - - -*** Done *** -``` diff --git a/Examples/MAX32572/Hash/main.c b/Examples/MAX32572/Hash/main.c deleted file mode 100644 index 8f26c9273bb..00000000000 --- a/Examples/MAX32572/Hash/main.c +++ /dev/null @@ -1,144 +0,0 @@ -/** - * @file main.c - * @brief Hash Example - * @details - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -#include -#include -#include - -#include - -volatile int wait; -volatile int callback_result; -volatile int counter; - -/***** Globals *****/ - -char temp[] = { 0x00, 0x00, 0x00 }; - -void CRYPTO_IRQHandler(void) -{ - MXC_CTB_Handler(); -} - -void Test_Callback(void *req, int result) -{ - wait = 0; - callback_result = result; -} - -void ascii_to_byte(const char *src, char *dst, int len) -{ - int i; - - for (i = 0; i < len; ++i) { - int val; - temp[0] = *src; - src++; - temp[1] = *src; - src++; - sscanf(temp, "%0x", &val); - dst[i] = val; - } -} - -int Test_Hash(int asynchronous) -{ - int ret; - printf(asynchronous ? "Test Hash Async\n" : "Test Hash Sync\n"); - - unsigned char sha256_msg[] = - "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890!@#$%&*()"; - - char _sha256_result[] = "93bfb2299f7427f021ad038cec5054b4db2e935f3ae10d64e4e6a40a77269803"; - char sha256_result[33]; - ascii_to_byte(_sha256_result, sha256_result, 32); - - unsigned char destination[33]; - unsigned int msgLen = sizeof(sha256_msg) - 1; - - memset(destination, 0, sizeof(destination)); - - // Reset Crypto Block - MXC_CTB_Init(MXC_CTB_FEATURE_HASH); - MXC_CTB_EnableInt(); - - // Select the Hash Function - MXC_CTB_Hash_SetFunction(MXC_CTB_HASH_SHA256); - - mxc_ctb_hash_req_t hash_req = { sha256_msg, msgLen, destination, &Test_Callback }; - - if (asynchronous) { - wait = 1; - MXC_CTB_Hash_ComputeAsync(&hash_req); - - while (wait) {} - } else { - MXC_CTB_Hash_Compute(&hash_req); - } - - if (memcmp(sha256_result, destination, 32)) { - printf(" * Failed *\n\n"); - ret = -1; - } else { - printf(" Passed \n\n"); - ret = 0; - } - - MXC_CTB_Shutdown(MXC_CTB_FEATURE_HASH); - - return ret; -} - -int main(void) -{ - printf("\n\n********** CTB Hash Example **********\n\n"); - - int fail = 0; - - fail += Test_Hash(0); - fail += Test_Hash(1); - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/Hello_World/.cproject b/Examples/MAX32572/Hello_World/.cproject deleted file mode 100644 index 10daf672b1d..00000000000 --- a/Examples/MAX32572/Hello_World/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Hello_World/.project b/Examples/MAX32572/Hello_World/.project deleted file mode 100644 index d21c0a970b7..00000000000 --- a/Examples/MAX32572/Hello_World/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Hello_World - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Hello_World/.vscode/c_cpp_properties.json b/Examples/MAX32572/Hello_World/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Hello_World/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Hello_World/.vscode/launch.json b/Examples/MAX32572/Hello_World/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Hello_World/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Hello_World/.vscode/settings.json b/Examples/MAX32572/Hello_World/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Hello_World/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Hello_World/.vscode/tasks.json b/Examples/MAX32572/Hello_World/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Hello_World/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Hello_World/Hello_World.launch b/Examples/MAX32572/Hello_World/Hello_World.launch deleted file mode 100644 index 3b270e91b59..00000000000 --- a/Examples/MAX32572/Hello_World/Hello_World.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Hello_World/Makefile b/Examples/MAX32572/Hello_World/Makefile deleted file mode 100644 index e58a832b891..00000000000 --- a/Examples/MAX32572/Hello_World/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += resources/all_imgs.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += resources - -# Where to find header files for this test -IPATH = . -IPATH += resources - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Hello_World/README.md b/Examples/MAX32572/Hello_World/README.md deleted file mode 100644 index 90d6fd2851b..00000000000 --- a/Examples/MAX32572/Hello_World/README.md +++ /dev/null @@ -1,37 +0,0 @@ -## Description - -A basic getting started program. - -This version of Hello_World prints an incrementing count to the console UART and toggles a GPIO (P2.17 - LED1) once every 500 ms. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Close jumper JP10 (LED1 EN). - -## Expected Output - -The Console UART of the device will output these messages: - -``` -Hello World! -count : 0 -count : 1 -count : 2 -count : 3 -``` - -You will also observe LED1 blinking at a rate of 1Hz. diff --git a/Examples/MAX32572/Hello_World/main.c b/Examples/MAX32572/Hello_World/main.c deleted file mode 100644 index 9dc18363382..00000000000 --- a/Examples/MAX32572/Hello_World/main.c +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Hello World! - * - * @details This example uses the UART to print to a terminal and flashes an LED(P2.17). - */ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ - -/***** Globals *****/ - -/***** Functions *****/ - -// ***************************************************************************** -int main(void) -{ - int count = 0; - printf("\n***********Hello World!***********\n"); - printf("\nLED1 on P2.17 toggles every 500 ms\n"); - - while (1) { - LED_On(0); - MXC_Delay(500000); - LED_Off(0); - MXC_Delay(500000); - - // print on console - printf("\nCounter = %d", count++); - } -} diff --git a/Examples/MAX32572/Hello_World/resources/all_imgs.c b/Examples/MAX32572/Hello_World/resources/all_imgs.c deleted file mode 100644 index 92e7c67073d..00000000000 --- a/Examples/MAX32572/Hello_World/resources/all_imgs.c +++ /dev/null @@ -1,51079 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".bin_storage_img"))) __attribute__((__used__)) -const unsigned char imgs_arr[] = { - /* - Header - */ - 0x18, - 0x00, - 0x00, - 0x00, - 0x21, - 0x08, - 0x00, - 0x00, - 0x42, - 0x09, - 0x00, - 0x00, - 0x02, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x00, - - /* - Palette - */ - 0x02, - 0x21, - 0x00, - 0x00, - 0x00, - 0x21, - 0x04, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xA5, - 0x18, - 0x00, - 0x70, - 0x73, - 0x71, - 0x00, - 0x33, - 0x35, - 0x3B, - 0x00, - 0x20, - 0xE8, - 0xD9, - 0x00, - 0x03, - 0x02, - 0xD5, - 0x00, - 0x00, - 0xA9, - 0x00, - 0x00, - 0x6F, - 0x6E, - 0x7A, - 0x00, - 0xFF, - 0xFD, - 0xFF, - 0x00, - 0x76, - 0x75, - 0x76, - 0x00, - 0x95, - 0x94, - 0x95, - 0x00, - 0x6A, - 0x66, - 0x69, - 0x00, - 0x7A, - 0x76, - 0x78, - 0x00, - 0x76, - 0x72, - 0x74, - 0x00, - 0x75, - 0x71, - 0x73, - 0x00, - 0x71, - 0x6F, - 0x6F, - 0x00, - 0x76, - 0x75, - 0x75, - 0x00, - 0x75, - 0x74, - 0x74, - 0x00, - 0x74, - 0x73, - 0x73, - 0x00, - 0x73, - 0x72, - 0x72, - 0x00, - 0x72, - 0x71, - 0x71, - 0x00, - 0x91, - 0x90, - 0x90, - 0x00, - 0x86, - 0x85, - 0x85, - 0x00, - 0x67, - 0x65, - 0x64, - 0x00, - 0x63, - 0x61, - 0x60, - 0x00, - 0x70, - 0x6E, - 0x6D, - 0x00, - 0x6A, - 0x68, - 0x66, - 0x00, - 0x77, - 0x76, - 0x75, - 0x00, - 0x71, - 0x70, - 0x6F, - 0x00, - 0x6E, - 0x6D, - 0x6C, - 0x00, - 0x6D, - 0x6C, - 0x6B, - 0x00, - 0x6C, - 0x6B, - 0x6A, - 0x00, - 0x90, - 0x8F, - 0x8E, - 0x00, - 0x88, - 0x87, - 0x86, - 0x00, - 0x77, - 0x74, - 0x70, - 0x00, - 0x76, - 0x73, - 0x6F, - 0x00, - 0x75, - 0x72, - 0x6E, - 0x00, - 0x4F, - 0x4D, - 0x4A, - 0x00, - 0x5A, - 0x58, - 0x55, - 0x00, - 0x58, - 0x56, - 0x53, - 0x00, - 0x56, - 0x54, - 0x51, - 0x00, - 0x3F, - 0x3D, - 0x39, - 0x00, - 0x44, - 0x42, - 0x3E, - 0x00, - 0x47, - 0x45, - 0x41, - 0x00, - 0x4C, - 0x4A, - 0x46, - 0x00, - 0x4B, - 0x49, - 0x45, - 0x00, - 0x4A, - 0x48, - 0x44, - 0x00, - 0x4E, - 0x4C, - 0x48, - 0x00, - 0x4D, - 0x4B, - 0x47, - 0x00, - 0x6B, - 0x6A, - 0x68, - 0x00, - 0x68, - 0x67, - 0x65, - 0x00, - 0x66, - 0x65, - 0x63, - 0x00, - 0x64, - 0x63, - 0x61, - 0x00, - 0x74, - 0x73, - 0x71, - 0x00, - 0x73, - 0x72, - 0x70, - 0x00, - 0x42, - 0x40, - 0x3B, - 0x00, - 0x41, - 0x3F, - 0x3A, - 0x00, - 0x43, - 0x41, - 0x3C, - 0x00, - 0x46, - 0x44, - 0x3F, - 0x00, - 0x5D, - 0x5C, - 0x59, - 0x00, - 0x5B, - 0x5A, - 0x57, - 0x00, - 0x61, - 0x60, - 0x5D, - 0x00, - 0x5F, - 0x5E, - 0x5B, - 0x00, - 0x76, - 0x75, - 0x72, - 0x00, - 0x72, - 0x71, - 0x6E, - 0x00, - 0x53, - 0x52, - 0x4E, - 0x00, - 0x51, - 0x50, - 0x4C, - 0x00, - 0x79, - 0x78, - 0x74, - 0x00, - 0x48, - 0x47, - 0x42, - 0x00, - 0xFD, - 0xFC, - 0xF7, - 0x00, - 0x77, - 0x76, - 0x6B, - 0x00, - 0x80, - 0x7F, - 0x71, - 0x00, - 0x9D, - 0xA0, - 0x19, - 0x00, - 0x93, - 0x95, - 0x1E, - 0x00, - 0xA3, - 0xA6, - 0x25, - 0x00, - 0xF9, - 0xF9, - 0xED, - 0x00, - 0x76, - 0x76, - 0x73, - 0x00, - 0x79, - 0x79, - 0x77, - 0x00, - 0x89, - 0x89, - 0x87, - 0x00, - 0x81, - 0x81, - 0x7F, - 0x00, - 0x4C, - 0x4C, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x49, - 0x00, - 0xFE, - 0xFE, - 0xFC, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0xE2, - 0xE2, - 0xE1, - 0x00, - 0xC2, - 0xC2, - 0xC1, - 0x00, - 0xB7, - 0xB7, - 0xB6, - 0x00, - 0xAE, - 0xAE, - 0xAD, - 0x00, - 0xA7, - 0xA7, - 0xA6, - 0x00, - 0xA1, - 0xA1, - 0xA0, - 0x00, - 0x9C, - 0x9C, - 0x9B, - 0x00, - 0x9A, - 0x9A, - 0x99, - 0x00, - 0x97, - 0x97, - 0x96, - 0x00, - 0x8E, - 0x8E, - 0x8D, - 0x00, - 0x8D, - 0x8D, - 0x8C, - 0x00, - 0x8A, - 0x8A, - 0x89, - 0x00, - 0x83, - 0x83, - 0x82, - 0x00, - 0xA6, - 0xAE, - 0x00, - 0x00, - 0xA5, - 0xAB, - 0x00, - 0x00, - 0xA2, - 0xA6, - 0x00, - 0x00, - 0xA0, - 0xA4, - 0x00, - 0x00, - 0x95, - 0x9C, - 0x01, - 0x00, - 0xA6, - 0xAA, - 0x0A, - 0x00, - 0x9F, - 0xA6, - 0x0B, - 0x00, - 0x89, - 0x8F, - 0x0E, - 0x00, - 0xA9, - 0xAD, - 0x13, - 0x00, - 0xAD, - 0xB1, - 0x1D, - 0x00, - 0x9C, - 0xA2, - 0x1F, - 0x00, - 0xB1, - 0xB5, - 0x25, - 0x00, - 0xBD, - 0xC3, - 0x41, - 0x00, - 0xB5, - 0xB9, - 0x44, - 0x00, - 0xC3, - 0xC8, - 0x59, - 0x00, - 0x83, - 0x85, - 0x4B, - 0x00, - 0xCB, - 0xCF, - 0x79, - 0x00, - 0x8B, - 0x8D, - 0x56, - 0x00, - 0x7D, - 0x7E, - 0x59, - 0x00, - 0xDB, - 0xDE, - 0x9D, - 0x00, - 0xE4, - 0xE6, - 0xB7, - 0x00, - 0xA9, - 0xB2, - 0x00, - 0x00, - 0xAF, - 0xB8, - 0x14, - 0x00, - 0x9D, - 0xA6, - 0x13, - 0x00, - 0x9C, - 0xA5, - 0x15, - 0x00, - 0x9B, - 0xA5, - 0x16, - 0x00, - 0x99, - 0xA2, - 0x17, - 0x00, - 0x9A, - 0xA3, - 0x19, - 0x00, - 0x9E, - 0xA7, - 0x1D, - 0x00, - 0xA0, - 0xA9, - 0x20, - 0x00, - 0x74, - 0x7A, - 0x1A, - 0x00, - 0xB5, - 0xBC, - 0x2B, - 0x00, - 0xAE, - 0xB4, - 0x36, - 0x00, - 0x9A, - 0xA0, - 0x31, - 0x00, - 0x93, - 0x97, - 0x46, - 0x00, - 0x97, - 0x9A, - 0x67, - 0x00, - 0xA8, - 0xAB, - 0x77, - 0x00, - 0x84, - 0x86, - 0x65, - 0x00, - 0xEC, - 0xEE, - 0xCC, - 0x00, - 0xF4, - 0xF5, - 0xE0, - 0x00, - 0x9C, - 0xA6, - 0x18, - 0x00, - 0x91, - 0x99, - 0x2C, - 0x00, - 0x60, - 0x65, - 0x24, - 0x00, - 0x6A, - 0x6C, - 0x56, - 0x00, - 0x77, - 0x79, - 0x62, - 0x00, - 0x9C, - 0xAB, - 0x15, - 0x00, - 0xA5, - 0xB5, - 0x2B, - 0x00, - 0x9E, - 0xAD, - 0x2C, - 0x00, - 0x8A, - 0x93, - 0x37, - 0x00, - 0x7C, - 0x84, - 0x3D, - 0x00, - 0x51, - 0x55, - 0x2F, - 0x00, - 0x4C, - 0x4F, - 0x2F, - 0x00, - 0x9C, - 0x9F, - 0x81, - 0x00, - 0x8F, - 0xA2, - 0x15, - 0x00, - 0xAF, - 0xC1, - 0x29, - 0x00, - 0xAA, - 0xBC, - 0x2A, - 0x00, - 0xA7, - 0xB8, - 0x2B, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xA3, - 0xB3, - 0x2C, - 0x00, - 0x99, - 0xA9, - 0x35, - 0x00, - 0x45, - 0x48, - 0x32, - 0x00, - 0xA6, - 0xBA, - 0x32, - 0x00, - 0xA2, - 0xB5, - 0x33, - 0x00, - 0x9D, - 0xAF, - 0x34, - 0x00, - 0x6A, - 0x72, - 0x40, - 0x00, - 0x65, - 0x6B, - 0x42, - 0x00, - 0x5F, - 0x65, - 0x40, - 0x00, - 0x48, - 0x4C, - 0x31, - 0x00, - 0x58, - 0x5C, - 0x40, - 0x00, - 0x59, - 0x5C, - 0x47, - 0x00, - 0x53, - 0x56, - 0x44, - 0x00, - 0x4F, - 0x51, - 0x45, - 0x00, - 0x53, - 0x55, - 0x49, - 0x00, - 0x41, - 0x44, - 0x34, - 0x00, - 0x76, - 0x7A, - 0x66, - 0x00, - 0x48, - 0x4D, - 0x38, - 0x00, - 0x73, - 0x76, - 0x6B, - 0x00, - 0x4B, - 0x4D, - 0x46, - 0x00, - 0x41, - 0x45, - 0x39, - 0x00, - 0x73, - 0x76, - 0x6D, - 0x00, - 0x7C, - 0x7D, - 0x7B, - 0x00, - 0xFC, - 0xFD, - 0xFB, - 0x00, - 0x3A, - 0x3D, - 0x39, - 0x00, - 0x6D, - 0x71, - 0x6C, - 0x00, - 0x56, - 0x59, - 0x56, - 0x00, - 0x75, - 0x78, - 0x75, - 0x00, - 0xCC, - 0xCD, - 0xCC, - 0x00, - 0x50, - 0xCD, - 0x59, - 0x00, - 0x32, - 0xC6, - 0x3E, - 0x00, - 0x81, - 0xDC, - 0x89, - 0x00, - 0xA8, - 0xE8, - 0xAE, - 0x00, - 0xC3, - 0xEF, - 0xC7, - 0x00, - 0x02, - 0xC0, - 0x19, - 0x00, - 0xE9, - 0xF9, - 0xEB, - 0x00, - 0x02, - 0xD4, - 0x2E, - 0x00, - 0x6A, - 0x6D, - 0x6B, - 0x00, - 0x74, - 0x77, - 0x75, - 0x00, - 0x73, - 0x76, - 0x74, - 0x00, - 0x71, - 0x74, - 0x72, - 0x00, - 0x6C, - 0x6F, - 0x6D, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x26, - 0xE2, - 0xD3, - 0x00, - 0x2E, - 0xD8, - 0xC9, - 0x00, - 0x34, - 0xD0, - 0xC1, - 0x00, - 0x57, - 0xE1, - 0xD5, - 0x00, - 0x88, - 0xE9, - 0xE1, - 0x00, - 0xBC, - 0xF3, - 0xEE, - 0x00, - 0xE0, - 0xF9, - 0xF7, - 0x00, - 0xF1, - 0xFD, - 0xFC, - 0x00, - 0x1F, - 0xE9, - 0xDA, - 0x00, - 0x63, - 0x65, - 0x65, - 0x00, - 0x51, - 0x52, - 0x52, - 0x00, - 0x55, - 0x56, - 0x56, - 0x00, - 0x4B, - 0x4D, - 0x4E, - 0x00, - 0x36, - 0x38, - 0x3A, - 0x00, - 0x42, - 0x44, - 0x47, - 0x00, - 0x6F, - 0x71, - 0x75, - 0x00, - 0x4E, - 0x4F, - 0x51, - 0x00, - 0x37, - 0x39, - 0x3E, - 0x00, - 0x3A, - 0x3C, - 0x41, - 0x00, - 0x34, - 0x36, - 0x3C, - 0x00, - 0x3F, - 0x40, - 0x44, - 0x00, - 0x46, - 0x47, - 0x4B, - 0x00, - 0x44, - 0x45, - 0x49, - 0x00, - 0x5A, - 0x5B, - 0x5F, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0xF9, - 0xFA, - 0xFF, - 0x00, - 0x69, - 0x6A, - 0x70, - 0x00, - 0x12, - 0x25, - 0xF6, - 0x00, - 0x0D, - 0x1A, - 0xEB, - 0x00, - 0xEE, - 0xEF, - 0xFD, - 0x00, - 0x09, - 0x0F, - 0xE1, - 0x00, - 0x27, - 0x2A, - 0xE1, - 0x00, - 0x38, - 0x3A, - 0xE3, - 0x00, - 0x48, - 0x4A, - 0xE4, - 0x00, - 0x72, - 0x73, - 0xEA, - 0x00, - 0x7F, - 0x80, - 0xEC, - 0x00, - 0xA6, - 0xA6, - 0xF1, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00, - 0x00, - 0x80, - 0x00, - 0x00, - 0x00, - 0x80, - 0x80, - 0x00, - 0x80, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00, - 0x80, - 0x00, - 0x80, - 0x80, - 0x00, - 0x00, - 0xC0, - 0xC0, - 0xC0, - 0x00, - 0xC0, - 0xDC, - 0xC0, - 0x00, - 0xF0, - 0xCA, - 0xA6, - 0x00, - 0x00, - 0x20, - 0x40, - 0x00, - 0x00, - 0x20, - 0x60, - 0x00, - 0x00, - 0x20, - 0x80, - 0x00, - 0x00, - 0x20, - 0xA0, - 0x00, - 0x00, - 0x20, - 0xC0, - 0x00, - 0x00, - 0x20, - 0xE0, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x20, - 0x00, - 0x00, - 0x40, - 0x40, - 0x00, - 0x00, - 0x40, - 0x60, - 0x00, - 0x00, - 0x40, - 0x80, - 0x00, - 0x00, - 0x40, - 0xA0, - 0x00, - 0x00, - 0x40, - 0xC0, - 0x00, - 0x00, - 0x40, - 0xE0, - 0x00, - 0x00, - 0x60, - 0x00, - 0x00, - 0x00, - 0x60, - 0x20, - 0x00, - 0x00, - 0x60, - 0x40, - 0x00, - 0x00, - 0x60, - 0x60, - 0x00, - 0x00, - 0x60, - 0x80, - 0x00, - 0x00, - 0x60, - 0xA0, - 0x00, - 0x00, - 0x60, - 0xC0, - 0x00, - 0x00, - 0x60, - 0xE0, - 0x00, - 0x00, - 0x80, - 0x00, - 0x00, - 0x00, - 0x80, - 0x20, - 0x00, - 0x00, - 0x80, - 0x40, - 0x00, - 0x00, - 0x80, - 0x60, - 0x00, - 0x00, - 0x80, - 0x80, - 0x00, - 0x00, - 0x80, - 0xA0, - 0x00, - 0x00, - 0x80, - 0xC0, - 0x00, - 0x00, - 0x80, - 0xE0, - 0x00, - 0x00, - 0xA0, - 0x00, - 0x00, - 0x00, - 0xA0, - 0x20, - 0x00, - 0x00, - 0xA0, - 0x40, - 0x00, - 0x00, - 0xA0, - 0x60, - 0x00, - 0x00, - 0xA0, - 0x80, - 0x00, - 0x00, - 0xA0, - 0xA0, - 0x00, - 0x00, - 0xA0, - 0xC0, - 0x00, - 0x00, - 0xA0, - 0xE0, - 0x00, - 0x00, - 0xC0, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x20, - 0x00, - 0x00, - 0xC0, - 0x40, - 0x00, - 0x00, - 0xC0, - 0x60, - 0x00, - 0x00, - 0xC0, - 0x80, - 0x00, - 0x00, - 0xC0, - 0xA0, - 0x00, - 0x00, - 0xC0, - 0xC0, - 0x00, - 0x00, - 0xC0, - 0xE0, - 0x00, - 0x00, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x20, - 0x00, - 0x00, - 0xE0, - 0x40, - 0x00, - 0x00, - 0xE0, - 0x60, - 0x00, - 0x00, - 0xE0, - 0x80, - 0x00, - 0x00, - 0xE0, - 0xA0, - 0x00, - 0x00, - 0xE0, - 0xC0, - 0x00, - 0x00, - 0xE0, - 0xE0, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x20, - 0x00, - 0x40, - 0x00, - 0x40, - 0x00, - 0x40, - 0x00, - 0x60, - 0x00, - 0x40, - 0x00, - 0x80, - 0x00, - 0x40, - 0x00, - 0xA0, - 0x00, - 0x40, - 0x00, - 0xC0, - 0x00, - 0x40, - 0x00, - 0xE0, - 0x00, - 0x40, - 0x20, - 0x00, - 0x00, - 0x40, - 0x20, - 0x20, - 0x00, - 0x40, - 0x20, - 0x40, - 0x00, - 0x40, - 0x20, - 0x60, - 0x00, - 0x40, - 0x20, - 0x80, - 0x00, - 0x40, - 0x20, - 0xA0, - 0x00, - 0x40, - 0x20, - 0xC0, - 0x00, - 0x40, - 0x20, - 0xE0, - 0x00, - 0x40, - 0x40, - 0x00, - 0x00, - 0x40, - 0x40, - 0x20, - 0x00, - 0x40, - 0x40, - 0x40, - 0x00, - 0x40, - 0x40, - 0x60, - 0x00, - 0x40, - 0x40, - 0x80, - 0x00, - 0x40, - 0x40, - 0xA0, - 0x00, - 0x40, - 0x40, - 0xC0, - 0x00, - 0x40, - 0x40, - 0xE0, - 0x00, - 0x40, - 0x60, - 0x00, - 0x00, - 0x40, - 0x60, - 0x20, - 0x00, - 0x40, - 0x60, - 0x40, - 0x00, - 0x40, - 0x60, - 0x60, - 0x00, - 0x40, - 0x60, - 0x80, - 0x00, - 0x40, - 0x60, - 0xA0, - 0x00, - 0x40, - 0x60, - 0xC0, - 0x00, - 0x40, - 0x60, - 0xE0, - 0x00, - 0x40, - 0x80, - 0x00, - 0x00, - 0x40, - 0x80, - 0x20, - 0x00, - 0x40, - 0x80, - 0x40, - 0x00, - 0x40, - 0x80, - 0x60, - 0x00, - 0x40, - 0x80, - 0x80, - 0x00, - 0x40, - 0x80, - 0xA0, - 0x00, - 0x40, - 0x80, - 0xC0, - 0x00, - 0x40, - 0x80, - 0xE0, - 0x00, - 0x40, - 0xA0, - 0x00, - 0x00, - 0x40, - 0xA0, - 0x20, - 0x00, - 0x40, - 0xA0, - 0x40, - 0x00, - 0x40, - 0xA0, - 0x60, - 0x00, - 0x40, - 0xA0, - 0x80, - 0x00, - 0x40, - 0xA0, - 0xA0, - 0x00, - 0x40, - 0xA0, - 0xC0, - 0x00, - 0x40, - 0xA0, - 0xE0, - 0x00, - 0x40, - 0xC0, - 0x00, - 0x00, - 0x40, - 0xC0, - 0x20, - 0x00, - 0x40, - 0xC0, - 0x40, - 0x00, - 0x40, - 0xC0, - 0x60, - 0x00, - 0x40, - 0xC0, - 0x80, - 0x00, - 0x40, - 0xC0, - 0xA0, - 0x00, - 0x40, - 0xC0, - 0xC0, - 0x00, - 0x40, - 0xC0, - 0xE0, - 0x00, - 0x40, - 0xE0, - 0x00, - 0x00, - 0x40, - 0xE0, - 0x20, - 0x00, - 0x40, - 0xE0, - 0x40, - 0x00, - 0x40, - 0xE0, - 0x60, - 0x00, - 0x40, - 0xE0, - 0x80, - 0x00, - 0x40, - 0xE0, - 0xA0, - 0x00, - 0x40, - 0xE0, - 0xC0, - 0x00, - 0x40, - 0xE0, - 0xE0, - 0x00, - 0x80, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00, - 0x20, - 0x00, - 0x80, - 0x00, - 0x40, - 0x00, - 0x80, - 0x00, - 0x60, - 0x00, - 0x80, - 0x00, - 0x80, - 0x00, - 0x80, - 0x00, - 0xA0, - 0x00, - 0x80, - 0x00, - 0xC0, - 0x00, - 0x80, - 0x00, - 0xE0, - 0x00, - 0x80, - 0x20, - 0x00, - 0x00, - 0x80, - 0x20, - 0x20, - 0x00, - 0x80, - 0x20, - 0x40, - 0x00, - 0x80, - 0x20, - 0x60, - 0x00, - 0x80, - 0x20, - 0x80, - 0x00, - 0x80, - 0x20, - 0xA0, - 0x00, - 0x80, - 0x20, - 0xC0, - 0x00, - 0x80, - 0x20, - 0xE0, - 0x00, - 0x80, - 0x40, - 0x00, - 0x00, - 0x80, - 0x40, - 0x20, - 0x00, - 0x80, - 0x40, - 0x40, - 0x00, - 0x80, - 0x40, - 0x60, - 0x00, - 0x80, - 0x40, - 0x80, - 0x00, - 0x80, - 0x40, - 0xA0, - 0x00, - 0x80, - 0x40, - 0xC0, - 0x00, - 0x80, - 0x40, - 0xE0, - 0x00, - 0x80, - 0x60, - 0x00, - 0x00, - 0x80, - 0x60, - 0x20, - 0x00, - 0x80, - 0x60, - 0x40, - 0x00, - 0x80, - 0x60, - 0x60, - 0x00, - 0x80, - 0x60, - 0x80, - 0x00, - 0x80, - 0x60, - 0xA0, - 0x00, - 0x80, - 0x60, - 0xC0, - 0x00, - 0x80, - 0x60, - 0xE0, - 0x00, - 0x80, - 0x80, - 0x00, - 0x00, - 0x80, - 0x80, - 0x20, - 0x00, - 0x80, - 0x80, - 0x40, - 0x00, - 0x80, - 0x80, - 0x60, - 0x00, - 0x80, - 0x80, - 0x80, - 0x00, - 0x80, - 0x80, - 0xA0, - 0x00, - 0x80, - 0x80, - 0xC0, - 0x00, - 0x80, - 0x80, - 0xE0, - 0x00, - 0x80, - 0xA0, - 0x00, - 0x00, - 0x80, - 0xA0, - 0x20, - 0x00, - 0x80, - 0xA0, - 0x40, - 0x00, - 0x80, - 0xA0, - 0x60, - 0x00, - 0x80, - 0xA0, - 0x80, - 0x00, - 0x80, - 0xA0, - 0xA0, - 0x00, - 0x80, - 0xA0, - 0xC0, - 0x00, - 0x80, - 0xA0, - 0xE0, - 0x00, - 0x80, - 0xC0, - 0x00, - 0x00, - 0x80, - 0xC0, - 0x20, - 0x00, - 0x80, - 0xC0, - 0x40, - 0x00, - 0x80, - 0xC0, - 0x60, - 0x00, - 0x80, - 0xC0, - 0x80, - 0x00, - 0x80, - 0xC0, - 0xA0, - 0x00, - 0x80, - 0xC0, - 0xC0, - 0x00, - 0x80, - 0xC0, - 0xE0, - 0x00, - 0x80, - 0xE0, - 0x00, - 0x00, - 0x80, - 0xE0, - 0x20, - 0x00, - 0x80, - 0xE0, - 0x40, - 0x00, - 0x80, - 0xE0, - 0x60, - 0x00, - 0x80, - 0xE0, - 0x80, - 0x00, - 0x80, - 0xE0, - 0xA0, - 0x00, - 0x80, - 0xE0, - 0xC0, - 0x00, - 0x80, - 0xE0, - 0xE0, - 0x00, - 0xC0, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x00, - 0x20, - 0x00, - 0xC0, - 0x00, - 0x40, - 0x00, - 0xC0, - 0x00, - 0x60, - 0x00, - 0xC0, - 0x00, - 0x80, - 0x00, - 0xC0, - 0x00, - 0xA0, - 0x00, - 0xC0, - 0x00, - 0xC0, - 0x00, - 0xC0, - 0x00, - 0xE0, - 0x00, - 0xC0, - 0x20, - 0x00, - 0x00, - 0xC0, - 0x20, - 0x20, - 0x00, - 0xC0, - 0x20, - 0x40, - 0x00, - 0xC0, - 0x20, - 0x60, - 0x00, - 0xC0, - 0x20, - 0x80, - 0x00, - 0xC0, - 0x20, - 0xA0, - 0x00, - 0xC0, - 0x20, - 0xC0, - 0x00, - 0xC0, - 0x20, - 0xE0, - 0x00, - 0xC0, - 0x40, - 0x00, - 0x00, - 0xC0, - 0x40, - 0x20, - 0x00, - 0xC0, - 0x40, - 0x40, - 0x00, - 0xC0, - 0x40, - 0x60, - 0x00, - 0xC0, - 0x40, - 0x80, - 0x00, - 0xC0, - 0x40, - 0xA0, - 0x00, - 0xC0, - 0x40, - 0xC0, - 0x00, - 0xC0, - 0x40, - 0xE0, - 0x00, - 0xC0, - 0x60, - 0x00, - 0x00, - 0xC0, - 0x60, - 0x20, - 0x00, - 0xC0, - 0x60, - 0x40, - 0x00, - 0xC0, - 0x60, - 0x60, - 0x00, - 0xC0, - 0x60, - 0x80, - 0x00, - 0xC0, - 0x60, - 0xA0, - 0x00, - 0xC0, - 0x60, - 0xC0, - 0x00, - 0xC0, - 0x60, - 0xE0, - 0x00, - 0xC0, - 0x80, - 0x00, - 0x00, - 0xC0, - 0x80, - 0x20, - 0x00, - 0xC0, - 0x80, - 0x40, - 0x00, - 0xC0, - 0x80, - 0x60, - 0x00, - 0xC0, - 0x80, - 0x80, - 0x00, - 0xC0, - 0x80, - 0xA0, - 0x00, - 0xC0, - 0x80, - 0xC0, - 0x00, - 0xC0, - 0x80, - 0xE0, - 0x00, - 0xC0, - 0xA0, - 0x00, - 0x00, - 0xC0, - 0xA0, - 0x20, - 0x00, - 0xC0, - 0xA0, - 0x40, - 0x00, - 0xC0, - 0xA0, - 0x60, - 0x00, - 0xC0, - 0xA0, - 0x80, - 0x00, - 0xC0, - 0xA0, - 0xA0, - 0x00, - 0xC0, - 0xA0, - 0xC0, - 0x00, - 0xC0, - 0xA0, - 0xE0, - 0x00, - 0xC0, - 0xC0, - 0x00, - 0x00, - 0xC0, - 0xC0, - 0x20, - 0x00, - 0xC0, - 0xC0, - 0x40, - 0x00, - 0xC0, - 0xC0, - 0x60, - 0x00, - 0xC0, - 0xC0, - 0x80, - 0x00, - 0xC0, - 0xC0, - 0xA0, - 0x00, - 0xF0, - 0xFB, - 0xFF, - 0x00, - 0xA4, - 0xA0, - 0xA0, - 0x00, - 0x80, - 0x80, - 0x80, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x00, - 0x00, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x00, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - - /* - Fonts - */ - 0x01, - 0x26, - 0x08, - 0x00, - 0x00, - 0x5E, - 0x02, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0C, - 0x16, - 0x00, - 0x09, - 0x20, - 0x00, - 0x11, - 0x32, - 0x00, - 0x10, - 0x43, - 0x00, - 0x02, - 0x46, - 0x00, - 0x07, - 0x4E, - 0x00, - 0x07, - 0x56, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x0C, - 0x6B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x77, - 0x00, - 0x02, - 0x7A, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x0C, - 0x92, - 0x00, - 0x05, - 0x98, - 0x00, - 0x0B, - 0xA4, - 0x00, - 0x0B, - 0xB0, - 0x00, - 0x0C, - 0xBD, - 0x00, - 0x0C, - 0xCA, - 0x00, - 0x0C, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x0C, - 0xFB, - 0x00, - 0x02, - 0xFE, - 0x00, - 0x04, - 0x03, - 0x01, - 0x0C, - 0x10, - 0x01, - 0x0C, - 0x1D, - 0x01, - 0x0C, - 0x2A, - 0x01, - 0x0B, - 0x36, - 0x01, - 0x11, - 0x48, - 0x01, - 0x11, - 0x5A, - 0x01, - 0x0B, - 0x66, - 0x01, - 0x11, - 0x78, - 0x01, - 0x0E, - 0x87, - 0x01, - 0x0A, - 0x92, - 0x01, - 0x09, - 0x9C, - 0x01, - 0x12, - 0xAF, - 0x01, - 0x0C, - 0xBC, - 0x01, - 0x02, - 0xBF, - 0x01, - 0x09, - 0xC9, - 0x01, - 0x0C, - 0xD6, - 0x01, - 0x09, - 0xE0, - 0x01, - 0x12, - 0xF3, - 0x01, - 0x0E, - 0x02, - 0x02, - 0x12, - 0x15, - 0x02, - 0x0B, - 0x21, - 0x02, - 0x12, - 0x34, - 0x02, - 0x0C, - 0x41, - 0x02, - 0x0B, - 0x4D, - 0x02, - 0x0A, - 0x58, - 0x02, - 0x0C, - 0x65, - 0x02, - 0x10, - 0x76, - 0x02, - 0x16, - 0x8D, - 0x02, - 0x0E, - 0x9C, - 0x02, - 0x0E, - 0xAB, - 0x02, - 0x0B, - 0xB7, - 0x02, - 0x05, - 0xBD, - 0x02, - 0x0A, - 0xC8, - 0x02, - 0x05, - 0xCE, - 0x02, - 0x0E, - 0xDD, - 0x02, - 0x0C, - 0xEA, - 0x02, - 0x07, - 0xF2, - 0x02, - 0x0E, - 0x01, - 0x03, - 0x0D, - 0x0F, - 0x03, - 0x0E, - 0x1E, - 0x03, - 0x0E, - 0x2D, - 0x03, - 0x0D, - 0x3B, - 0x03, - 0x07, - 0x43, - 0x03, - 0x0D, - 0x51, - 0x03, - 0x0B, - 0x5D, - 0x03, - 0x02, - 0x60, - 0x03, - 0x05, - 0x66, - 0x03, - 0x0B, - 0x72, - 0x03, - 0x02, - 0x75, - 0x03, - 0x13, - 0x89, - 0x03, - 0x0B, - 0x95, - 0x03, - 0x0D, - 0xA3, - 0x03, - 0x0D, - 0xB1, - 0x03, - 0x0D, - 0xBF, - 0x03, - 0x06, - 0xC6, - 0x03, - 0x08, - 0xCF, - 0x03, - 0x07, - 0xD7, - 0x03, - 0x0B, - 0xE3, - 0x03, - 0x0D, - 0xF1, - 0x03, - 0x14, - 0x06, - 0x04, - 0x0B, - 0x12, - 0x04, - 0x0D, - 0x20, - 0x04, - 0x09, - 0x2A, - 0x04, - 0x06, - 0x31, - 0x04, - 0x02, - 0x34, - 0x04, - 0x06, - 0x3B, - 0x04, - 0x0C, - - /* - Bitmaps - */ - 0x03, - 0x4F, - 0x09, - 0x00, - 0x00, - 0xA7, - 0x0E, - 0x00, - 0x00, - 0x3D, - 0x53, - 0x00, - 0x00, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x00, - 0x04, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x0A, - 0x89, - 0x75, - 0x6E, - 0x78, - 0x77, - 0x77, - 0x78, - 0x81, - 0x72, - 0x76, - 0x1E, - 0x00, - 0x00, - 0x04, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x46, - 0x72, - 0x78, - 0x09, - 0x77, - 0x00, - 0x03, - 0x6E, - 0x76, - 0x53, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x05, - 0xF4, - 0x56, - 0x58, - 0x57, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x53, - 0x89, - 0x81, - 0x0D, - 0x77, - 0x00, - 0x03, - 0x75, - 0x53, - 0x54, - 0x00, - 0x07, - 0x00, - 0x01, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x0A, - 0x53, - 0x54, - 0x00, - 0x00, - 0xF9, - 0x5A, - 0xB8, - 0xB8, - 0x4F, - 0x56, - 0x06, - 0x00, - 0x01, - 0x53, - 0x11, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x53, - 0x89, - 0x6D, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x72, - 0x07, - 0x00, - 0x00, - 0x38, - 0x54, - 0xF7, - 0xF6, - 0xB3, - 0xB8, - 0xF4, - 0x00, - 0x55, - 0xF7, - 0x00, - 0xF3, - 0x56, - 0x57, - 0x53, - 0xF4, - 0x56, - 0x58, - 0xB8, - 0xF4, - 0x5D, - 0x56, - 0xF5, - 0xF7, - 0x22, - 0x57, - 0x55, - 0xF7, - 0x00, - 0x00, - 0x55, - 0x58, - 0xB8, - 0x55, - 0x55, - 0x00, - 0xF4, - 0x56, - 0x57, - 0x00, - 0xF5, - 0x57, - 0x58, - 0xB8, - 0xF3, - 0x00, - 0xF7, - 0x58, - 0xB8, - 0x55, - 0xF6, - 0x00, - 0xF6, - 0xF6, - 0x55, - 0x55, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x53, - 0x46, - 0x81, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x77, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x75, - 0x54, - 0x06, - 0x00, - 0x00, - 0x37, - 0x60, - 0x56, - 0xF5, - 0x44, - 0xF6, - 0x00, - 0x58, - 0x5B, - 0x00, - 0x57, - 0xB2, - 0x57, - 0xF5, - 0x60, - 0x0B, - 0x57, - 0x21, - 0xB8, - 0xF4, - 0xB2, - 0x21, - 0x5A, - 0x57, - 0xF3, - 0x58, - 0x0B, - 0x00, - 0xF5, - 0xB2, - 0x58, - 0x58, - 0x4E, - 0x59, - 0x00, - 0x58, - 0xB2, - 0x57, - 0xF5, - 0x22, - 0x5C, - 0x57, - 0x5F, - 0xB8, - 0x55, - 0x40, - 0x59, - 0x5B, - 0x40, - 0x56, - 0x53, - 0xB8, - 0x56, - 0xF9, - 0x4F, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x54, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x6E, - 0x81, - 0x81, - 0x70, - 0x6E, - 0x77, - 0x77, - 0x78, - 0x70, - 0x6E, - 0x81, - 0x6E, - 0x70, - 0x78, - 0x77, - 0x78, - 0x89, - 0x54, - 0x05, - 0x00, - 0x00, - 0x32, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF6, - 0x00, - 0x58, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x54, - 0xB8, - 0x61, - 0x54, - 0x00, - 0x54, - 0xF4, - 0x54, - 0x5F, - 0x5C, - 0x56, - 0x00, - 0x54, - 0x58, - 0x5C, - 0x00, - 0xF6, - 0x4D, - 0x55, - 0x00, - 0x59, - 0x59, - 0x00, - 0x5B, - 0x57, - 0x53, - 0x56, - 0x22, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0x59, - 0x00, - 0x54, - 0x22, - 0x56, - 0x54, - 0x04, - 0x57, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x89, - 0x78, - 0x77, - 0x77, - 0x88, - 0x00, - 0x75, - 0x72, - 0x54, - 0x53, - 0x81, - 0x64, - 0x75, - 0x00, - 0x89, - 0x6E, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x72, - 0x53, - 0x05, - 0x00, - 0x00, - 0x34, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF5, - 0x53, - 0x58, - 0x5A, - 0x00, - 0x58, - 0x59, - 0x00, - 0x56, - 0xB2, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0xF7, - 0x4F, - 0xB8, - 0x5C, - 0x5A, - 0x00, - 0x57, - 0x5C, - 0x00, - 0x00, - 0x56, - 0x60, - 0x5A, - 0x4F, - 0x58, - 0x00, - 0x5A, - 0x57, - 0x53, - 0x57, - 0x50, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0x5C, - 0x57, - 0x00, - 0x00, - 0xF9, - 0x56, - 0x53, - 0xF3, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x72, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x53, - 0x00, - 0x70, - 0x78, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x78, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x31, - 0x21, - 0x56, - 0xF4, - 0x4E, - 0xF7, - 0x54, - 0x58, - 0x5B, - 0x53, - 0x58, - 0x58, - 0x00, - 0xB8, - 0x4E, - 0xF7, - 0x55, - 0x50, - 0x56, - 0x57, - 0x5A, - 0x00, - 0x55, - 0x50, - 0x00, - 0x57, - 0x44, - 0x55, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x16, - 0x59, - 0x00, - 0x5A, - 0x57, - 0x54, - 0xB8, - 0xB2, - 0x55, - 0x55, - 0x4E, - 0xB8, - 0x57, - 0x5D, - 0x00, - 0x54, - 0xF9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x53, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x64, - 0x70, - 0x00, - 0x46, - 0x89, - 0x00, - 0x88, - 0x62, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x76, - 0x05, - 0x00, - 0x00, - 0x31, - 0x5F, - 0x56, - 0xF5, - 0xB2, - 0x5F, - 0x5A, - 0x44, - 0x56, - 0xF7, - 0x50, - 0x50, - 0x58, - 0xF3, - 0x5D, - 0x5A, - 0x58, - 0x4F, - 0xF5, - 0x55, - 0x50, - 0x57, - 0x0B, - 0xB2, - 0x56, - 0x57, - 0x60, - 0x61, - 0x57, - 0x57, - 0x5B, - 0x58, - 0x4E, - 0xB8, - 0xB8, - 0xB2, - 0x17, - 0x58, - 0xF4, - 0xF9, - 0x5A, - 0x59, - 0x5F, - 0xF4, - 0xF5, - 0x17, - 0x5C, - 0x5A, - 0x4D, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0x54, - 0x6E, - 0x63, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x05, - 0x00, - 0x00, - 0x31, - 0x55, - 0xF5, - 0xF3, - 0x55, - 0xF5, - 0x56, - 0xB8, - 0x00, - 0xF6, - 0x16, - 0xF9, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x57, - 0xB8, - 0xF6, - 0x55, - 0xF6, - 0xF6, - 0xF6, - 0xF7, - 0xF5, - 0xB8, - 0x57, - 0xF7, - 0x00, - 0x55, - 0x60, - 0xF8, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x56, - 0xB8, - 0x22, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x54, - 0x75, - 0x62, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x76, - 0x62, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x56, - 0xF7, - 0x54, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x01, - 0x58, - 0x17, - 0x00, - 0x01, - 0x59, - 0x01, - 0x57, - 0x0B, - 0x00, - 0x01, - 0x16, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x88, - 0x53, - 0x75, - 0x63, - 0x77, - 0x62, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xB8, - 0x07, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xF4, - 0x17, - 0x00, - 0x01, - 0xF5, - 0x01, - 0xF4, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x54, - 0x5A, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x78, - 0x75, - 0x81, - 0x46, - 0x54, - 0x72, - 0x64, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x0D, - 0x54, - 0x54, - 0x54, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x54, - 0x00, - 0x1A, - 0x00, - 0x01, - 0xF3, - 0x01, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x19, - 0x54, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x72, - 0x00, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x78, - 0x78, - 0x53, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x75, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x58, - 0xB8, - 0x00, - 0x55, - 0x5A, - 0x53, - 0x00, - 0x59, - 0xF7, - 0xF5, - 0x0B, - 0x5F, - 0x58, - 0x59, - 0x55, - 0x59, - 0xB8, - 0x00, - 0xF7, - 0x5B, - 0xF6, - 0x5A, - 0xF5, - 0xF7, - 0x59, - 0x00, - 0x54, - 0x5A, - 0x55, - 0x54, - 0xB8, - 0x58, - 0x00, - 0x00, - 0x00, - 0x19, - 0x00, - 0x70, - 0x77, - 0x77, - 0x77, - 0x88, - 0x00, - 0x88, - 0x72, - 0x46, - 0x54, - 0x72, - 0x67, - 0x89, - 0x54, - 0x76, - 0x72, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x88, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x60, - 0x56, - 0x00, - 0xF7, - 0x50, - 0xB3, - 0x00, - 0x4F, - 0xB8, - 0x57, - 0x60, - 0xF5, - 0x56, - 0x1A, - 0x55, - 0xF7, - 0x50, - 0x55, - 0x50, - 0xB8, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x4F, - 0x00, - 0x53, - 0x50, - 0xF7, - 0x53, - 0x56, - 0x60, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x75, - 0x77, - 0x77, - 0x62, - 0x88, - 0x04, - 0x00, - 0x00, - 0x05, - 0x89, - 0x78, - 0x63, - 0x72, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x70, - 0x62, - 0x77, - 0x81, - 0xB3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0xB3, - 0x00, - 0x5E, - 0xB8, - 0xF7, - 0x50, - 0xB8, - 0xF5, - 0x61, - 0xF7, - 0x00, - 0x57, - 0x24, - 0x58, - 0x00, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x53, - 0x17, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x4C, - 0x81, - 0x77, - 0x62, - 0x70, - 0x04, - 0x76, - 0x00, - 0x0D, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x75, - 0x76, - 0x76, - 0x76, - 0x75, - 0x78, - 0x77, - 0x77, - 0x75, - 0x00, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0x00, - 0x00, - 0x21, - 0x56, - 0x54, - 0xF7, - 0x5A, - 0x5D, - 0x40, - 0xF7, - 0x00, - 0xB8, - 0x41, - 0x56, - 0x53, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x00, - 0x22, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x76, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x6E, - 0x46, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x60, - 0xF6, - 0x56, - 0x1A, - 0x56, - 0xF6, - 0x50, - 0xB8, - 0xB3, - 0x55, - 0xF4, - 0x55, - 0x40, - 0x55, - 0xF6, - 0x50, - 0x57, - 0x50, - 0xF6, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x25, - 0xB8, - 0xF6, - 0x44, - 0x5C, - 0xF6, - 0x58, - 0x21, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x72, - 0x10, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x07, - 0x00, - 0x00, - 0x20, - 0x59, - 0x58, - 0xF9, - 0x50, - 0x57, - 0x59, - 0x17, - 0x60, - 0xF5, - 0xF4, - 0x5D, - 0x60, - 0x22, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x00, - 0x57, - 0x59, - 0xF4, - 0xF9, - 0xF5, - 0xF7, - 0x5B, - 0x5A, - 0x61, - 0x5D, - 0x57, - 0x5F, - 0xB2, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x54, - 0x70, - 0x00, - 0x0E, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x08, - 0x00, - 0x00, - 0x1F, - 0xF3, - 0x00, - 0xF3, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x53, - 0xF5, - 0x54, - 0xB3, - 0x00, - 0x54, - 0xF5, - 0x53, - 0x00, - 0xF4, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x72, - 0x01, - 0x78, - 0x0B, - 0x77, - 0x01, - 0x6E, - 0x01, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x03, - 0xF6, - 0x50, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x88, - 0x70, - 0x78, - 0x00, - 0x07, - 0x77, - 0x00, - 0x03, - 0x81, - 0x75, - 0x46, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x03, - 0xF3, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x09, - 0x89, - 0x75, - 0x70, - 0x6E, - 0x6E, - 0x70, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x88, - 0x44, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xED, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0x08, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xF6, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xF6, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xF7, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xA4, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xA4, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0x07, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0x07, - 0x07, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xF6, - 0x08, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xF6, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0x08, - 0x07, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0x08, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0x08, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xF7, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0x07, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0x08, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF7, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0x07, - 0x08, - 0x08, - 0x08, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xF6, - 0xF6, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xED, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x09, - 0xF3, - 0xE9, - 0xA9, - 0xE9, - 0xF2, - 0xF5, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x09, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0x07, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xFF, - 0x07, - 0xFF, - 0xFF, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF3, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x09, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xF7, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF4, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0x09, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF3, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xF4, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF3, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA9, - 0xE9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xF6, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xE9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xF7, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xF7, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0x07, - 0xF7, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xF7, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF5, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF2, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xF7, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xA9, - 0xA9, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF1, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xE9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xE9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF2, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x09, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x09, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xF2, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x09, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF3, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF3, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xF1, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xE9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x08, - 0x08, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xA4, - 0xA4, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF3, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xF7, - 0x07, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xA4, - 0xA4, - 0xF6, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xF7, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF7, - 0xF7, - 0x07, - 0xFF, - 0xFF, - 0xF7, - 0xF7, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xF7, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xF7, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF6, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xF1, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xA4, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF4, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF5, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xE9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0x08, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xF3, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xA9, - 0xE9, - 0x09, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x49, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB8, - 0x5D, - 0x17, - 0x17, - 0x5D, - 0xF7, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDC, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x5D, - 0x54, - 0x5D, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD9, - 0xDF, - 0xB8, - 0x55, - 0xF7, - 0x5A, - 0xD2, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0xD9, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDC, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x5B, - 0x00, - 0x5B, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xDE, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD3, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD9, - 0x58, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDA, - 0x60, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDD, - 0x5A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0xDB, - 0xD8, - 0xD7, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xD0, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD8, - 0xD8, - 0xD7, - 0x12, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xD3, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x16, - 0xF2, - 0xD9, - 0xD9, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xD2, - 0xD9, - 0xD9, - 0xDE, - 0xFA, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xDC, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x03, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDB, - 0xD2, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xFA, - 0xD0, - 0xDC, - 0xDA, - 0xD9, - 0xD3, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD3, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xE1, - 0xD7, - 0xD9, - 0xDA, - 0xD5, - 0xDE, - 0x60, - 0xF6, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xDA, - 0xDD, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x5D, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xD0, - 0xDC, - 0xD8, - 0xD8, - 0xD3, - 0xE1, - 0x5A, - 0xF3, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x59, - 0xE1, - 0xF1, - 0xD8, - 0xD9, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0xF5, - 0xDF, - 0xD7, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xEF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDF, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD8, - 0xD9, - 0xD7, - 0xDF, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x09, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x58, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xF1, - 0xD8, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD7, - 0xD9, - 0xD8, - 0xD2, - 0x17, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xE1, - 0xB8, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xDD, - 0xDA, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0xD0, - 0xD5, - 0xDA, - 0xDD, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xD5, - 0xDA, - 0xD5, - 0xD0, - 0x56, - 0xC6, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xDE, - 0xDB, - 0x04, - 0xD5, - 0xD6, - 0xF5, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD9, - 0x55, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD8, - 0xD0, - 0xE1, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xDB, - 0xE1, - 0xD6, - 0xF1, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x53, - 0x59, - 0xD8, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0xD7, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDA, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x60, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDC, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xE1, - 0xD2, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD6, - 0xDE, - 0xD5, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD7, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDB, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDC, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD7, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x16, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD5, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xF2, - 0xD6, - 0xD6, - 0xD3, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0xD2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xEF, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x16, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xE1, - 0xF1, - 0x04, - 0xDC, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD8, - 0x59, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x60, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x16, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD8, - 0xD9, - 0xE1, - 0xD6, - 0xDB, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0x54, - 0xEF, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0xE1, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3E, - 0x54, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xF2, - 0xB8, - 0xF3, - 0xB8, - 0xD7, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xDF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xFC, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x12, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0xD8, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xD5, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD9, - 0x04, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0x04, - 0xDB, - 0xEF, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD5, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD0, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDB, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xDB, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xDA, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD3, - 0xDA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x53, - 0x60, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0x04, - 0x04, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0xD9, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD6, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7D, - 0x3B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDB, - 0xF5, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0xEF, - 0xDA, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD2, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x54, - 0xDF, - 0x04, - 0x16, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x56, - 0xD0, - 0xDA, - 0x04, - 0xD2, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD2, - 0x04, - 0xDA, - 0xE1, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDA, - 0xFA, - 0x00, - 0xF4, - 0xF7, - 0xF5, - 0x54, - 0x54, - 0xF3, - 0xF7, - 0x04, - 0x04, - 0x0A, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x60, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0xDA, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD9, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x5B, - 0x53, - 0xF5, - 0xD7, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDD, - 0xDE, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0x00, - 0xD2, - 0xD2, - 0xB8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x54, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xFF, - 0xAD, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x60, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xDB, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0xDB, - 0x04, - 0xD6, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0xE1, - 0xD4, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xD7, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xF2, - 0x04, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xFA, - 0x00, - 0x60, - 0xD9, - 0x04, - 0xDA, - 0xD6, - 0xB8, - 0xDD, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD6, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x09, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0xF5, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF4, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0D, - 0x04, - 0xFD, - 0xF7, - 0x57, - 0xDA, - 0xF1, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDD, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0xB3, - 0xDC, - 0xF2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xDF, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x54, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x54, - 0xE1, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x5E, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xD0, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0x04, - 0x5A, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF4, - 0x59, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x17, - 0x00, - 0xD2, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD9, - 0xB8, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x60, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD7, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x04, - 0xDE, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0xD5, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x59, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDC, - 0xF3, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD0, - 0x00, - 0xDB, - 0xD2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x60, - 0x0D, - 0x5E, - 0x04, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xF1, - 0x04, - 0xD9, - 0xD6, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xF1, - 0x60, - 0x17, - 0xF1, - 0x04, - 0x04, - 0x56, - 0x55, - 0xEF, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x17, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0xC6, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x56, - 0xF5, - 0x53, - 0xF5, - 0x56, - 0xDF, - 0xD5, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x53, - 0xDE, - 0xDA, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDE, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD5, - 0xF3, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0xD6, - 0x00, - 0xF4, - 0xD9, - 0xEF, - 0x00, - 0x5E, - 0x04, - 0xF7, - 0x00, - 0x60, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0xF7, - 0xC6, - 0x00, - 0x0A, - 0xE1, - 0x00, - 0x54, - 0x53, - 0x53, - 0x57, - 0xDE, - 0xD9, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0xD0, - 0xDA, - 0xB8, - 0x53, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0x0A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xF1, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x58, - 0x00, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x59, - 0x54, - 0x00, - 0xFA, - 0xD7, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xDF, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x55, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xB3, - 0x00, - 0x03, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x54, - 0xDD, - 0xF2, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xDA, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD2, - 0x04, - 0xD8, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x57, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0xDE, - 0xD7, - 0x00, - 0x00, - 0x55, - 0xD8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDA, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0xFA, - 0x00, - 0x5A, - 0x04, - 0xFA, - 0xF3, - 0x57, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x4D, - 0xF9, - 0x69, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD0, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x53, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x56, - 0xD4, - 0xDC, - 0xB8, - 0x54, - 0xB3, - 0xE1, - 0x04, - 0xD0, - 0xF3, - 0x17, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xD0, - 0xB8, - 0xF3, - 0xF5, - 0x59, - 0xD3, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x56, - 0xC6, - 0x00, - 0x00, - 0xDB, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x16, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD0, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xF7, - 0xF1, - 0xD9, - 0xF7, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x00, - 0xDC, - 0xF1, - 0x55, - 0x5A, - 0x17, - 0xEF, - 0xDF, - 0x5D, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD0, - 0xDE, - 0xD7, - 0xD8, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x54, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0xD3, - 0x60, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x57, - 0xD4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0x56, - 0xF4, - 0x5A, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x0A, - 0xDB, - 0x04, - 0xFC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0xD8, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x53, - 0x00, - 0xF4, - 0xDC, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0xDA, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xD8, - 0x17, - 0x55, - 0xB3, - 0xF7, - 0xE1, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x5B, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD7, - 0x04, - 0xDA, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0x53, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x56, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xF2, - 0xDA, - 0xDB, - 0x57, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xD8, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD2, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xDA, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x60, - 0xDE, - 0xDA, - 0x04, - 0xB6, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDC, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xF1, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD5, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD8, - 0x5A, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x53, - 0x16, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDF, - 0x5D, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x56, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDA, - 0xD9, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDF, - 0xDF, - 0x57, - 0x00, - 0x54, - 0xDE, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD6, - 0xD2, - 0x04, - 0xF1, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x53, - 0xD2, - 0xD8, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x59, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xD9, - 0xF7, - 0x00, - 0xD9, - 0xF6, - 0x00, - 0x58, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xE1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xD9, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xF1, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDF, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x04, - 0xD2, - 0xDF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD3, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xF2, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x12, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD8, - 0xF4, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD0, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF4, - 0x5B, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x16, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x0A, - 0x54, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEC, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x58, - 0xFA, - 0x04, - 0xDF, - 0x58, - 0x58, - 0x58, - 0x04, - 0xF2, - 0x58, - 0x58, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0xD2, - 0xFA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x57, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xDB, - 0xDA, - 0xDF, - 0x53, - 0x00, - 0x53, - 0xD2, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD3, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0x04, - 0xD2, - 0xD6, - 0xD6, - 0xF1, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD0, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD2, - 0x5C, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xD2, - 0x04, - 0xD4, - 0xE1, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xE1, - 0x00, - 0xD2, - 0x59, - 0x54, - 0x53, - 0xD7, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD3, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0x55, - 0x5A, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD9, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0xD7, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD0, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0xF3, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x54, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xF1, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD5, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xEF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0x04, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x53, - 0x00, - 0x5A, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF2, - 0xDD, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x54, - 0x53, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDA, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x54, - 0xF2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x74, - 0xEC, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x60, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0xF6, - 0xF6, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x58, - 0x00, - 0x57, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xD2, - 0xD8, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0xDE, - 0xDB, - 0xD9, - 0xF2, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDC, - 0xD9, - 0xD2, - 0x17, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xDB, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x04, - 0xDB, - 0x0D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xEE, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDF, - 0xDE, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x57, - 0x00, - 0x57, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDD, - 0xF3, - 0x54, - 0x53, - 0xD3, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xD7, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x0A, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x55, - 0xD9, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xB6, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD8, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0xD8, - 0xDE, - 0xD6, - 0xE1, - 0xD7, - 0x04, - 0xD5, - 0x56, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD9, - 0x59, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x17, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x12, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0x60, - 0xB8, - 0xDB, - 0xD9, - 0xD0, - 0xD6, - 0xF2, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD0, - 0xF4, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0x60, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xD6, - 0x56, - 0x00, - 0xF7, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xD5, - 0x55, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF5, - 0x00, - 0x57, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xF9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF3, - 0x00, - 0xB8, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x56, - 0x94, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x53, - 0xF6, - 0x55, - 0x55, - 0xDE, - 0xDE, - 0x55, - 0x55, - 0x55, - 0x17, - 0x04, - 0xB8, - 0x55, - 0x00, - 0xD0, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDD, - 0x55, - 0xDC, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x00, - 0xF4, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF1, - 0xD7, - 0xF4, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x16, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x55, - 0xD9, - 0x60, - 0x00, - 0x00, - 0x58, - 0xD9, - 0xD8, - 0xD0, - 0xD6, - 0xDD, - 0xDE, - 0xD7, - 0xE1, - 0x53, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5B, - 0x00, - 0x58, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x56, - 0xD6, - 0x58, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD3, - 0x53, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xF1, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDC, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD8, - 0x00, - 0xF7, - 0xDA, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xF1, - 0x53, - 0x00, - 0xD7, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xDC, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD0, - 0xD5, - 0xD8, - 0xDC, - 0xD6, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xF5, - 0xDF, - 0xD3, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x55, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xD0, - 0x56, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xB8, - 0xD7, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xFA, - 0x00, - 0xE1, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD7, - 0x00, - 0x00, - 0x60, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x0D, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x8C, - 0x3B, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xEF, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0x00, - 0xF3, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDD, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x5B, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xD9, - 0xD0, - 0x55, - 0x00, - 0xF3, - 0x04, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDD, - 0xD2, - 0x00, - 0xDE, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB8, - 0xD5, - 0xDB, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x16, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xD8, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xDA, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF1, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF2, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xF2, - 0x04, - 0x16, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC8, - 0xE3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x54, - 0x00, - 0xB8, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x16, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDD, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0xD4, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDB, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD7, - 0xD8, - 0x5A, - 0x54, - 0x00, - 0x54, - 0xF5, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD7, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD6, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDD, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x60, - 0xD9, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB3, - 0x58, - 0xD2, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xDB, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xD8, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xDC, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0xDD, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD8, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x0D, - 0x53, - 0x00, - 0x54, - 0xF5, - 0xDE, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0xF5, - 0xD4, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xFA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD2, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xC0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD3, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xF1, - 0xD3, - 0x56, - 0xF3, - 0x55, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0xB8, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0xF4, - 0xDB, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xDB, - 0xE1, - 0xE1, - 0xD9, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDC, - 0x56, - 0x00, - 0x57, - 0xDB, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x5E, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD4, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x55, - 0xF1, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDD, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDD, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xDE, - 0xDB, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x00, - 0x00, - 0xB3, - 0xEF, - 0x04, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD7, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xD2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xDB, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5A, - 0x54, - 0x59, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0xF1, - 0xF3, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDA, - 0x5A, - 0x00, - 0x00, - 0x16, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD4, - 0xD8, - 0xD0, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0xD7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x3B, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x17, - 0x00, - 0x17, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xDC, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD6, - 0xD5, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x12, - 0xDC, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xDD, - 0x04, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xF1, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xDE, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xD0, - 0xDD, - 0xD8, - 0xD9, - 0xD7, - 0xE1, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDB, - 0xD7, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x0A, - 0xD7, - 0xD9, - 0x04, - 0xD9, - 0xD7, - 0xD6, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x58, - 0xE1, - 0xD3, - 0xD8, - 0xD8, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xD0, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x60, - 0xDE, - 0xDD, - 0xDA, - 0xD8, - 0xDC, - 0xD0, - 0xFA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD9, - 0xD3, - 0xD0, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xD2, - 0x00, - 0xF7, - 0xD8, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDE, - 0x17, - 0x00, - 0x00, - 0xD7, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xF1, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF2, - 0xD8, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0xDC, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD2, - 0x53, - 0xD0, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x16, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x3B, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0xF6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, -}; diff --git a/Examples/MAX32572/Hello_World/resources/all_imgs.mpi b/Examples/MAX32572/Hello_World/resources/all_imgs.mpi deleted file mode 100644 index 51b00f217c6..00000000000 Binary files a/Examples/MAX32572/Hello_World/resources/all_imgs.mpi and /dev/null differ diff --git a/Examples/MAX32572/Hello_World/resources/bitmap.h b/Examples/MAX32572/Hello_World/resources/bitmap.h deleted file mode 100644 index d22a30392cc..00000000000 --- a/Examples/MAX32572/Hello_World/resources/bitmap.h +++ /dev/null @@ -1,47 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_HELLO_WORLD_RESOURCES_BITMAP_H_ -#define EXAMPLES_MAX32572_HELLO_WORLD_RESOURCES_BITMAP_H_ - -// bitmaps id -#define logo_white_bg_white_bmp 0 -#define maxim_big_logo_bmp 1 - -// fonts id -#define urw_gothic_13_grey_bg_white 0 - -#endif // EXAMPLES_MAX32572_HELLO_WORLD_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32572/Hello_World/resources/bmp_rle/logo_white-bg_white.bmp b/Examples/MAX32572/Hello_World/resources/bmp_rle/logo_white-bg_white.bmp deleted file mode 100644 index 43362ab9476..00000000000 Binary files a/Examples/MAX32572/Hello_World/resources/bmp_rle/logo_white-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/Hello_World/resources/bmp_rle/maxim_big_logo.bmp b/Examples/MAX32572/Hello_World/resources/bmp_rle/maxim_big_logo.bmp deleted file mode 100644 index e292cd0fc54..00000000000 Binary files a/Examples/MAX32572/Hello_World/resources/bmp_rle/maxim_big_logo.bmp and /dev/null differ diff --git a/Examples/MAX32572/Hello_World/resources/fonts/urw_gothic_13-grey_bg-white.bmp b/Examples/MAX32572/Hello_World/resources/fonts/urw_gothic_13-grey_bg-white.bmp deleted file mode 100644 index 9030c466136..00000000000 Binary files a/Examples/MAX32572/Hello_World/resources/fonts/urw_gothic_13-grey_bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/Hello_World/resources/fonts/urw_gothic_13-grey_bg-white.mff b/Examples/MAX32572/Hello_World/resources/fonts/urw_gothic_13-grey_bg-white.mff deleted file mode 100644 index d854b3a9fe5..00000000000 Binary files a/Examples/MAX32572/Hello_World/resources/fonts/urw_gothic_13-grey_bg-white.mff and /dev/null differ diff --git a/Examples/MAX32572/Hello_World_Cpp/.cproject b/Examples/MAX32572/Hello_World_Cpp/.cproject deleted file mode 100644 index 0a53ec6edd4..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Hello_World_Cpp/.project b/Examples/MAX32572/Hello_World_Cpp/.project deleted file mode 100644 index 57a7156908c..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Hello_World_Cpp - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Hello_World_Cpp/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/Hello_World_Cpp/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index 19766e336af..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=Hello_World_Cpp -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX78002 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/Hello_World_Cpp/.vscode/README.md b/Examples/MAX32572/Hello_World_Cpp/.vscode/README.md deleted file mode 100755 index 8b58b503892..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/.vscode/README.md +++ /dev/null @@ -1,422 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * If it's not in the README, check the UG. - * If it's not in the UG, open a ticket! -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX32xxx/MAX78xxx microcontrollers](https://www.analog.com/en/product-category/microcontrollers.html). - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) - * [C/C++ VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) - * [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) -* [Analog Devices MSDK](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.analog.com/en/education/education-library/videos/6313212752112.html). - -1. Download and install the Analog Devices MSDK for your OS from the links below. For more detailed instructions on installing the MSDK, see the [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * [Windows](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018720A) - * [MacOS](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MSDK installation, taking note of where the MSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Install the [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) - -8. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -9. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/open_settings_json.jpg) - -10. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the Analog Devices MSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -11. Save your changes to the file with `CTRL + S` and restart VS Code. - -12. That's it! You're ready to start using Visual Studio Code to develop with Analog Devices MAX-series Microcontrollers. The MSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the MSDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for the MSDK's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, the MAX-series microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of the MSDK toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, the MSDK's peripheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/65af7c61800c7039956f3c1971ffd7915008668d/img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -**See the [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system) for full documentation on how to configure the build system.** - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the Analog Devices MSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the MSDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Injecting - -VSCode-Maxim releases provide the `Inject` folder for "injecting" into an existing folder. If you want to start from scratch or use the project files with existing source code, take this option. - -1. Create your project folder if necessary. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder from step 1. The contents to copy include a `.vscode` folder, a `Makefile`, and a `project.mk` file. For this example, the contents of the 'MyProject' folder would be the following: - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - |- .vscode - |- Makefile - |- project.mk - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Configure the [build system](https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system) for use with any pre-existing source code. - -7. That's it! Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/Hello_World_Cpp/.vscode/launch.json b/Examples/MAX32572/Hello_World_Cpp/.vscode/launch.json deleted file mode 100755 index a3900ecf2ad..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/.vscode/launch.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "configurations": [ - { - "name": "Debug Arm (Cortex-debug)", - "cwd":"${workspaceRoot}", - "executable": "${workspaceFolder}/build/${config:program_file}", - "loadFiles": ["${workspaceFolder}/build/${config:program_file}"], - "symbolFiles": [{ - "file": "${workspaceFolder}/build/${config:symbol_file}" - }], - "request": "launch", - "type": "cortex-debug", - "servertype": "openocd", - "linux": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "serverpath": "${config:OCD_path}/openocd", - }, - "windows": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "serverpath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "serverpath": "${config:OCD_path}/openocd", - }, - "searchDir": ["${config:OCD_path}/scripts"], - "configFiles": ["interface/${config:M4_OCD_interface_file}", "target/${config:M4_OCD_target_file}"], - "interface": "swd", - "runToEntryPoint": "main", - "svdFile": "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include/${config:target}.svd" - }, - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"set $pc=Reset_Handler"}, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Hello_World_Cpp/.vscode/settings.json b/Examples/MAX32572/Hello_World_Cpp/.vscode/settings.json deleted file mode 100755 index ec526128773..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/.vscode/settings.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX78002", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"max78002.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}", - "TARGET=${config:target}", - "TARGET_REV=0x4131", - "__GNUC__" - ] -} - diff --git a/Examples/MAX32572/Hello_World_Cpp/.vscode/tasks.json b/Examples/MAX32572/Hello_World_Cpp/.vscode/tasks.json deleted file mode 100755 index 23f00049c4e..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Hello_World_Cpp/Hello_World_Cpp.launch b/Examples/MAX32572/Hello_World_Cpp/Hello_World_Cpp.launch deleted file mode 100644 index c2707cb0fb6..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/Hello_World_Cpp.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Hello_World_Cpp/Makefile b/Examples/MAX32572/Hello_World_Cpp/Makefile deleted file mode 100644 index 80ac4541473..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78002 -TARGET_UC := MAX78002 -TARGET_LC := max78002 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/Hello_World_Cpp/README.md b/Examples/MAX32572/Hello_World_Cpp/README.md deleted file mode 100644 index d5a8c93c1c5..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/README.md +++ /dev/null @@ -1,36 +0,0 @@ -## Description - -A basic getting started program. - -This version of Hello_World prints an incrementing count to the console UART and toggles an LED once every 500 ms. - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Close jumper JP10 (LED1 EN). - -## Expected Output - -The Console UART of the device will output these messages: - -``` -C++ Hello World Example -Number of blinks: 0 -Number of blinks: 1 -Number of blinks: 2 -Number of blinks: 3 -``` - -You will also observe LED1 blinking at a rate of 1Hz. diff --git a/Examples/MAX32572/Hello_World_Cpp/main.cpp b/Examples/MAX32572/Hello_World_Cpp/main.cpp deleted file mode 100644 index aee9ae17fcf..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/main.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Hello World (C++ variant) - * @details This example uses the UART to print to a terminal and flashes an LED. It also demonstrates - * basic class creation and instancing available in C++. - */ - -/***** Includes *****/ -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "board.h" -#include "mxc_delay.h" - -/***** Definitions *****/ - -/***** Globals *****/ - -/***** Functions *****/ - -class LED { -public: - explicit LED(int index) - { - idx = index; - blink_count = 0; - } - void on() - { - LED_On(idx); - ++blink_count; - } - void off() - { - LED_Off(idx); - } - void print_blink_count() - { - printf("Number of blinks: %i\n", blink_count); - } - -private: - int idx; - int blink_count; -}; - -int main() -{ - LED led = LED(0); - - printf("C++ Hello World Example\n"); - /* - Note: Use printf instead of std::cout. - iostream consumes an extreme amount of code space. Our printf - function is better optimized for microcontrollers with limited flash - */ - - while (1) { - led.on(); - MXC_Delay(500000); - led.off(); - MXC_Delay(500000); - led.print_blink_count(); - } - - return 0; -} diff --git a/Examples/MAX32572/Hello_World_Cpp/project.mk b/Examples/MAX32572/Hello_World_Cpp/project.mk deleted file mode 100644 index 2aa22a36482..00000000000 --- a/Examples/MAX32572/Hello_World_Cpp/project.mk +++ /dev/null @@ -1,17 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -#MXC_OPTIMIZE_CFLAGS = -Og -# ^ For example, you can uncomment this line to -# optimize the project for debugging - -# ********************************************************** - -# Add your config here! - - - diff --git a/Examples/MAX32572/I2C/.cproject b/Examples/MAX32572/I2C/.cproject deleted file mode 100644 index ead497700fa..00000000000 --- a/Examples/MAX32572/I2C/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/I2C/.project b/Examples/MAX32572/I2C/.project deleted file mode 100644 index 4df3f59362b..00000000000 --- a/Examples/MAX32572/I2C/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - I2C - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/I2C/.vscode/c_cpp_properties.json b/Examples/MAX32572/I2C/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/I2C/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/I2C/.vscode/launch.json b/Examples/MAX32572/I2C/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/I2C/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/I2C/.vscode/settings.json b/Examples/MAX32572/I2C/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/I2C/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/I2C/.vscode/tasks.json b/Examples/MAX32572/I2C/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/I2C/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/I2C/I2C.launch b/Examples/MAX32572/I2C/I2C.launch deleted file mode 100644 index 33091e04c6d..00000000000 --- a/Examples/MAX32572/I2C/I2C.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/I2C/Makefile b/Examples/MAX32572/I2C/Makefile deleted file mode 100644 index 6865c52e2e3..00000000000 --- a/Examples/MAX32572/I2C/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/I2C/README.md b/Examples/MAX32572/I2C/README.md deleted file mode 100644 index ff6ccb592aa..00000000000 --- a/Examples/MAX32572/I2C/README.md +++ /dev/null @@ -1,46 +0,0 @@ -## Description - -This example uses the I2C Master to read/write from/to the I2C Slave. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- You must connect P2.18 to P0.6 (SCL) and P2.19 to P0.7 (SCL). - -## Expected Output -``` -******** I2C Master-Slave Transaction Demo ********* - -This example uses one I2C peripheral as a master to -read and write to another I2C which acts as a slave. - -You will need to connect P2.18 to P0.6 (SCL) and -P2.19 to P0.7 (SDA). - --->I2C Master Initialization Complete --->I2C Slave Initialization Complete - --->Writing data to slave, and reading the data back - --->Result: - --->TxData: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe - --->RxData: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe - - --->I2C Transaction Successful -``` \ No newline at end of file diff --git a/Examples/MAX32572/I2C/main.c b/Examples/MAX32572/I2C/main.c deleted file mode 100644 index 7f904c2cde9..00000000000 --- a/Examples/MAX32572/I2C/main.c +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief I2C Master-Slave Transaction Demo - * @details This example uses the I2C Master to read/write from/to the I2C Slave. For - * this example you must connect P0.6 to P0.18 (SDA) and P0.7 to P0.19 (SCL). The Master - * will use P0.6 and P0.7. The Slave will use P0.18 and P0.19. You must also - * connect the pull-up jumpers (JP23 and JP24) to the proper I/O voltage. - * Refer to JP27 to determine the I/O voltage. - * @note Other devices on the EvKit will be using the same bus. This example cannot be combined with - * a PMIC or bluetooth example because the I2C Slave uses GPIO pins for those devices. - */ - -/***** Includes *****/ - -#include -#include -#include -#include "mxc_device.h" -#include "mxc_delay.h" -#include "mxc_errors.h" -#include "nvic_table.h" -#include "i2c.h" -#include "dma.h" -#include "led.h" - -/***** Definitions *****/ - -#define MASTERDMA //Comment this line out if standard I2C transaction is required - -#define I2C_MASTER MXC_I2C1 -#define I2C_SLAVE MXC_I2C2 - -#define I2C_FREQ 100000 -#define I2C_SLAVE_ADDR (0x51) -#define I2C_BYTES 255 - -/***** Globals *****/ - -static uint8_t Stxdata[I2C_BYTES]; -static uint8_t Srxdata[I2C_BYTES]; -static uint8_t txdata[I2C_BYTES]; -static uint8_t rxdata[I2C_BYTES]; -int8_t DMA_TX_CH; -int8_t DMA_RX_CH; -volatile int I2C_FLAG; -volatile int txnum = 0; -volatile int txcnt = 0; -volatile int rxnum = 0; - -/***** Functions *****/ - -//Slave interrupt handler -void I2C2_IRQHandler(void) -{ - MXC_I2C_AsyncHandler(I2C_SLAVE); -} - -void DMA_TX_IRQHandler(void) -{ - MXC_DMA_Handler(); -} - -void DMA_RX_IRQHandler(void) -{ - MXC_DMA_Handler(); -} - -//I2C callback function -void I2C_Callback(mxc_i2c_req_t *req, int error) -{ - I2C_FLAG = error; -} - -int slaveHandler(mxc_i2c_regs_t *i2c, mxc_i2c_slave_event_t event, void *data) -{ - switch (event) { - case MXC_I2C_EVT_MASTER_WR: - // If we're being written to - // Clear bytes written - rxnum = 0; - break; - - case MXC_I2C_EVT_MASTER_RD: - // Serve as a 16 byte loopback, returning data*2 - txnum = I2C_BYTES; - txcnt = 0; - i2c->intfl0 = MXC_F_I2C_INTFL0_TX_LOCKOUT | MXC_F_I2C_INTFL0_ADDR_MATCH; - break; - - case MXC_I2C_EVT_RX_THRESH: - case MXC_I2C_EVT_OVERFLOW: - rxnum += MXC_I2C_ReadRXFIFO(i2c, &Srxdata[rxnum], MXC_I2C_GetRXFIFOAvailable(i2c)); - if (rxnum == I2C_BYTES) { - i2c->inten0 |= MXC_F_I2C_INTEN0_ADDR_MATCH; - } - - break; - - case MXC_I2C_EVT_TX_THRESH: - case MXC_I2C_EVT_UNDERFLOW: - // Write as much data as possible into TX FIFO - // Unless we're at the end of the transaction (only write what's needed) - if (txcnt >= txnum) { - break; - } - - int num = MXC_I2C_GetTXFIFOAvailable(i2c); - num = (num > (txnum - txcnt)) ? (txnum - txcnt) : num; - txcnt += MXC_I2C_WriteTXFIFO(i2c, &Stxdata[txcnt], num); - break; - - default: - if (*((int *)data) == E_COMM_ERR) { - printf("I2C Slave Error!\n"); - printf("i2c->intfl0 = 0x%08x\n", i2c->intfl0); - printf("i2c->status = 0x%08x\n", i2c->status); - I2C_Callback(NULL, E_COMM_ERR); - return 1; - - } else if (*((int *)data) == E_NO_ERROR) { - rxnum += MXC_I2C_ReadRXFIFO(i2c, &Srxdata[rxnum], MXC_I2C_GetRXFIFOAvailable(i2c)); - I2C_Callback(NULL, E_NO_ERROR); - return 1; - } - } - - return 0; -} - -//Prints out human-friendly format to read txdata and rxdata -void printData(void) -{ - int i; - - printf("\n-->TxData: "); - - for (i = 0; i < sizeof(txdata); ++i) { - printf("%02x ", txdata[i]); - } - - printf("\n\n-->RxData: "); - - for (i = 0; i < sizeof(rxdata); ++i) { - printf("%02x ", rxdata[i]); - } - - printf("\n"); - - return; -} - -//Compare data to see if they are the same -int verifyData(void) -{ - int i, fails = 0; - - for (i = 0; i < I2C_BYTES; ++i) { - if (txdata[i] != rxdata[i]) { - ++fails; - } - } - - if (fails > 0) { - return E_FAIL; - } - - return E_NO_ERROR; -} - -// ***************************************************************************** -int main() -{ - printf("\n******** I2C Master-Slave Transaction Demo *********\n"); - printf("\nThis example uses one I2C peripheral as a master to\n"); - printf("read and write to another I2C which acts as a slave.\n"); - - printf("\nYou will need to connect P2.18 to P0.6 (SCL) and\n"); - printf("P2.19 to P0.7 (SDA).\n"); - - int error, i = 0; - - //Setup the I2CM - error = MXC_I2C_Init(I2C_MASTER, 1, 0); - if (error != E_NO_ERROR) { - printf("Failed master\n"); - return FAILED; - } - - //Setup the I2CM DMA - error = MXC_I2C_DMA_Init(I2C_MASTER, MXC_DMA, true, true); - if (error != E_NO_ERROR) { - printf("Failed DMA master\n"); - return error; - } else { - printf("\n-->I2C Master Initialization Complete"); - } - - //Setup the I2CS - error = MXC_I2C_Init(I2C_SLAVE, 0, I2C_SLAVE_ADDR); - if (error != E_NO_ERROR) { - printf("Failed slave\n"); - return FAILED; - } else { - printf("\n-->I2C Slave Initialization Complete"); - } - - NVIC_SetVector(I2C2_IRQn, I2C2_IRQHandler); - NVIC_EnableIRQ(I2C2_IRQn); - __enable_irq(); - - MXC_I2C_SetFrequency(I2C_MASTER, I2C_FREQ); - - MXC_I2C_SetFrequency(I2C_SLAVE, I2C_FREQ); - - // Initialize test data - for (i = 0; i < I2C_BYTES; i++) { - txdata[i] = i; - rxdata[i] = 0; - Stxdata[i] = i; - Srxdata[i] = 0; - } - - // This will write data to slave - // Then read data back from slave - mxc_i2c_req_t reqMaster; - reqMaster.i2c = I2C_MASTER; - reqMaster.addr = I2C_SLAVE_ADDR; - reqMaster.tx_buf = txdata; - reqMaster.tx_len = I2C_BYTES; - reqMaster.rx_buf = rxdata; - reqMaster.rx_len = I2C_BYTES; - reqMaster.restart = 0; - reqMaster.callback = I2C_Callback; - I2C_FLAG = 1; - - printf("\n\n-->Writing data to slave, and reading the data back\n"); - - if ((error = MXC_I2C_SlaveTransactionAsync(I2C_SLAVE, slaveHandler)) != 0) { - printf("Error Starting Slave Transaction %d\n", error); - return FAILED; - } - -#ifdef MASTERDMA - DMA_TX_CH = MXC_I2C_DMA_GetTXChannel(I2C_MASTER); - DMA_RX_CH = MXC_I2C_DMA_GetRXChannel(I2C_MASTER); - - NVIC_EnableIRQ(MXC_DMA_CH_GET_IRQ(DMA_TX_CH)); - NVIC_EnableIRQ(MXC_DMA_CH_GET_IRQ(DMA_RX_CH)); - - MXC_NVIC_SetVector(MXC_DMA_CH_GET_IRQ(DMA_TX_CH), DMA_TX_IRQHandler); - MXC_NVIC_SetVector(MXC_DMA_CH_GET_IRQ(DMA_RX_CH), DMA_RX_IRQHandler); - - if ((error = MXC_I2C_MasterTransactionDMA(&reqMaster)) != 0) { - printf("Error writing: %d\n", error); - return error; - } -#else - if ((error = MXC_I2C_MasterTransaction(&reqMaster)) != 0) { - printf("Error writing: %d\n", error); - return error; - } -#endif - - while (I2C_FLAG == 1) {} - - printf("\n-->Result: \n"); - printData(); - printf("\n"); - - MXC_I2C_Shutdown(I2C_MASTER); - MXC_I2C_Shutdown(I2C_SLAVE); - - if (verifyData()) { - printf("\n-->I2C Transaction Successful\n"); - } else { - printf("\n-->I2C Transaction Failed\n"); - return E_FAIL; - } - - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/I2C_Sensor/.cproject b/Examples/MAX32572/I2C_Sensor/.cproject deleted file mode 100644 index df05392f24d..00000000000 --- a/Examples/MAX32572/I2C_Sensor/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/I2C_Sensor/.project b/Examples/MAX32572/I2C_Sensor/.project deleted file mode 100644 index 48357bc79dc..00000000000 --- a/Examples/MAX32572/I2C_Sensor/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - I2C_Sensor - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/I2C_Sensor/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/I2C_Sensor/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index bffa81a4723..00000000000 --- a/Examples/MAX32572/I2C_Sensor/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=I2C_Sensor -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32572 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/I2C_Sensor/.vscode/README.md b/Examples/MAX32572/I2C_Sensor/.vscode/README.md deleted file mode 100755 index b77a728b897..00000000000 --- a/Examples/MAX32572/I2C_Sensor/.vscode/README.md +++ /dev/null @@ -1,545 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) -* [Wiki](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/wiki) - * If it's not in the readme, check the wiki. - * If it's not in the wiki, open a ticket! - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX-series](https://www.maximintegrated.com/en/products/microcontrollers.html) microcontrollers. - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) -* [C/C++ VSCode Extension](https://github.com/microsoft/vscode-cpptools) -* [Maxim Micros SDK](https://www.maximintegrated.com/content/maximintegrated/en/design/software-description.html/swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.maximintegrated.com/en/products/microcontrollers/artificial-intelligence.html/tab4/vd_1_2eaktism#.YyDxHaE8U_Y.mailto). - -1. Download & install the Maxim Microcontrollers SDK for your OS from the links below. - * [Windows](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018720A) - * [MacOS](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MaximSDK installation, taking note of where the MaximSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -8. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/open_settings_json.jpg) - -9. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the MaximSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -10. Save your changes to the file with `CTRL + S` and restart VS Code. - -11. That's it! You're ready to start using Visual Studio Code to develop with Maxim's Microcontrollers. The MaximSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the SDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MaximSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for Maxim's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, Maxim's microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -* `"target"` - * This sets the target microcontroller for the project. - * It sets the `TARGET` [Build Configuration](#build-configuration) variable. - * Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -* `"board"` - * This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) - * Supported values: - * ... can be found in the `Libraries/Boards` folder of the MaximSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MaximSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, Maxim's perpiheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MaximSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operater is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The project's `Makefile` can be opened to see a full list of available config options, but they are nested among the implementation details of the Makefile itself. A full reference table is also available below. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MaximSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MaximSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MaximSDK. By default, the Makefile will attempt to locate the MaximSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the SDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MaximSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MaximSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.maximintegrated.com/en/design/technical-documents/userguides-and-manuals/7/7637.html). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MaximSDK will be searched. If the [SBT installer](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the Maxim test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the MaximSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the SDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/MaximIntegratedTechSupport/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/I2C_Sensor/.vscode/launch.json b/Examples/MAX32572/I2C_Sensor/.vscode/launch.json deleted file mode 100755 index 2e118bf25b0..00000000000 --- a/Examples/MAX32572/I2C_Sensor/.vscode/launch.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"set $pc=Reset_Handler"}, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/I2C_Sensor/.vscode/settings.json b/Examples/MAX32572/I2C_Sensor/.vscode/settings.json deleted file mode 100755 index 61dff5d6baa..00000000000 --- a/Examples/MAX32572/I2C_Sensor/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"max32572.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/I2C_Sensor/.vscode/tasks.json b/Examples/MAX32572/I2C_Sensor/.vscode/tasks.json deleted file mode 100644 index 3951f3508da..00000000000 --- a/Examples/MAX32572/I2C_Sensor/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/I2C_Sensor/I2C_Sensor.launch b/Examples/MAX32572/I2C_Sensor/I2C_Sensor.launch deleted file mode 100644 index b19b868ccfd..00000000000 --- a/Examples/MAX32572/I2C_Sensor/I2C_Sensor.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/I2C_Sensor/Makefile b/Examples/MAX32572/I2C_Sensor/Makefile deleted file mode 100644 index aad3c03022c..00000000000 --- a/Examples/MAX32572/I2C_Sensor/Makefile +++ /dev/null @@ -1,357 +0,0 @@ -# /******************************************************************************* -# * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. -# * -# * Permission is hereby granted, free of charge, to any person obtaining a -# * copy of this software and associated documentation files (the "Software"), -# * to deal in the Software without restriction, including without limitation -# * the rights to use, copy, modify, merge, publish, distribute, sublicense, -# * and/or sell copies of the Software, and to permit persons to whom the -# * Software is furnished to do so, subject to the following conditions: -# * -# * The above copyright notice and this permission notice shall be included -# * in all copies or substantial portions of the Software. -# * -# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# * OTHER DEALINGS IN THE SOFTWARE. -# * -# * Except as contained in this notice, the name of Maxim Integrated -# * Products, Inc. shall not be used except as stated in the Maxim Integrated -# * Products, Inc. Branding Policy. -# * -# * The mere transfer of this software does not imply any licenses -# * of trade secrets, proprietary technology, copyrights, patents, -# * trademarks, maskwork rights, or any other form of intellectual -# * property whatsoever. Maxim Integrated Products, Inc. retains all -# * ownership rights. -# ******************************************************************************* -# */ - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32572 -TARGET_UC := MAX32572 -TARGET_LC := max32572 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -include ./project.mk -$(info Loaded project.mk) - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! It's recommended to set MAXIM_PATH in your environment or in project.mk) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# ├─ *.h -# ├─ *.c -# ├─include (optional) -# └─ *.h -# ├─src (optional) -# └─ *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld - - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -DEBUG ?= 0 -ifeq ($(DEBUG),1) -# Default optimization level for debug builds (make DEBUG=1 ...) -# gcc.mk checks for this flag to add some additional debug -# info to the build, and should be used when you really need to -# debug. -MXC_OPTIMIZE_CFLAGS ?= -Og -endif - -# Fallback default optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles, who check this too -export MFLOAT_ABI - -# Set the default linkerfile. Since the core Makefiles later add the location of Maxim's -# linkerfiles to VPATH, and the local project directory has also been added to VPATH, Make -# will search both locations for the specified linkerfile if it can't find it by its path alone. -# The result is that overriding LINKERFILE with the filename of one of Maxim's alternate linkerfiles -# (ex: LINKERFILE=max78000_arm.ld) will work just the same as LINKERFILE=mycustom.ld -# even if mycustom.ld lives locally to this project. - -ifeq "$(RISCV_CORE)" "" -# Default linkerfile is only specified for standard Arm-core projects. -# Otherwise, gcc_riscv.mk sets the appropriate riscv linkerfile. -LINKER = $(TARGET_LC).ld -LINKERFILE ?= $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) -endif - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -include $(MAXIM_SBT_DIR)/SBT-config.mk - -endif - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_SBT_DIR)/SBT-rules.mk -endif - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/I2C_Sensor/README.md b/Examples/MAX32572/I2C_Sensor/README.md deleted file mode 100644 index 372c8cb2a45..00000000000 --- a/Examples/MAX32572/I2C_Sensor/README.md +++ /dev/null @@ -1,68 +0,0 @@ -## Description - -This example demonstrates how to take temperature readings from the MAX31889 using the I2C. - -After initialization, a new reading is printed to the terminal every second. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Select RX0 and TX0 on Headers JP1 and JP3 (UART 0). -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- You must connect P0.16 (SCL), P0.17 (SDA), VDD and GND to corresponding pins of MAX31889 EVKIT_A board (via J3 terminal) - -## Expected Output - -``` -****************** I2C SENSOR DEMO ******************* - --->Temperature: 21.920000 °C --->Temperature: 21.910000 °C --->Temperature: 21.895000 °C --->Temperature: 21.924999 °C --->Temperature: 21.910000 °C --->Temperature: 21.895000 °C --->Temperature: 21.889999 °C --->Temperature: 21.859999 °C --->Temperature: 21.885000 °C --->Temperature: 21.904999 °C --->Temperature: 21.889999 °C --->Temperature: 21.895000 °C - -... -``` - -## Instructions for Using the MAX31889 Driver - -### Opening MAX31889 Sensor Driver -```c - mxc_i2c_sensor_driver_t MAX31889 = MAX31889_Open(); -``` - - - -### Initializing the MAX31889 -```c - MAX31889.init(I2C_MASTER, MAX31889_I2C_SLAVE_ADDR0); -``` -NOTE: This functions inializes the I2C peripheral used to communicate with the MAX31889, the I2C pins, and the MAX31889 itself. - - - -### Taking a Temperature Reading -```c - error = MAX31889.read(&temperature); -``` - - diff --git a/Examples/MAX32572/I2C_Sensor/main.c b/Examples/MAX32572/I2C_Sensor/main.c deleted file mode 100644 index d6e4aa49ef2..00000000000 --- a/Examples/MAX32572/I2C_Sensor/main.c +++ /dev/null @@ -1,85 +0,0 @@ -/** - * @file main.c - * @brief I2C generic sensor Example - * @details This example uses the I2C Master to read/write from/to the I2C sensor. - */ - -/******************************************************************************* -* Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -/***** Includes *****/ -#include -#include -#include - -#include "i2c.h" -#include "mxc_device.h" -#include "max31889_driver.h" - -/***** Definitions *****/ -#define I2C_MASTER MXC_I2C0 ///< I2C instance -#define I2C_FREQ 100000 ///< I2C clock frequency - -// ***************************************************************************** -int main(void) -{ - int error = E_NO_ERROR; - float temperature; - - printf("\n****************** I2C SENSOR DEMO *******************\n"); - - error = MXC_I2C_Init(I2C_MASTER, 1, 0); - if (error != E_NO_ERROR) { - printf("I2C master configure failed with error %i\n", error); - return error; - } - - MXC_I2C_SetFrequency(I2C_MASTER, I2C_FREQ); - - max31889_driver_t MAX31889 = MAX31889_Open(); - - MAX31889.init(I2C_MASTER, MAX31889_I2C_SLAVE_ADDR0); // init the sensor - - while (1) { - error = MAX31889.read(&temperature); - if (error != E_NO_ERROR) { - printf("\nSensor read error: %i", error); - } else { - printf("\n-->Temperature: %02f %cC", (double)temperature, 176); - } - // Wait for 1s - MXC_Delay(MXC_DELAY_SEC(1)); - } - - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/I2C_Sensor/project.mk b/Examples/MAX32572/I2C_Sensor/project.mk deleted file mode 100644 index a53675ddcf9..00000000000 --- a/Examples/MAX32572/I2C_Sensor/project.mk +++ /dev/null @@ -1,16 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -# ********************************************************** - -# Add your config here! - - -SRCS+=max31889_driver.c - -VPATH+=$(LIBS_DIR)/MiscDrivers/TempSensor -IPATH+=$(LIBS_DIR)/MiscDrivers/TempSensor diff --git a/Examples/MAX32572/ICC/.cproject b/Examples/MAX32572/ICC/.cproject deleted file mode 100644 index fcbf73a4a76..00000000000 --- a/Examples/MAX32572/ICC/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/ICC/.project b/Examples/MAX32572/ICC/.project deleted file mode 100644 index b09355d1b42..00000000000 --- a/Examples/MAX32572/ICC/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - ICC - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/ICC/.vscode/c_cpp_properties.json b/Examples/MAX32572/ICC/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/ICC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/ICC/.vscode/launch.json b/Examples/MAX32572/ICC/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/ICC/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/ICC/.vscode/settings.json b/Examples/MAX32572/ICC/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/ICC/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/ICC/.vscode/tasks.json b/Examples/MAX32572/ICC/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/ICC/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/ICC/ICC.launch b/Examples/MAX32572/ICC/ICC.launch deleted file mode 100644 index 3fba9c64fe9..00000000000 --- a/Examples/MAX32572/ICC/ICC.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/ICC/Makefile b/Examples/MAX32572/ICC/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/ICC/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/ICC/README.md b/Examples/MAX32572/ICC/README.md deleted file mode 100644 index 089015aac53..00000000000 --- a/Examples/MAX32572/ICC/README.md +++ /dev/null @@ -1,100 +0,0 @@ -## Description - -This example demonstrates the time differences when running code with the instruction cache on vs. off. It runs four trials, reporting the time required for each. The trials are: - -1. Perform 2.5 million multiplies in a loop with the instruction cache on. The variables used in the loop are all declared as 'volatile'. -2. Perform 2.5 million multiplies in a loop with the instruction cache off. The variables used in the loop are all declared as 'volatile'. -3. Perform 25 million multiplies in a loop with the instruction cache on. The variables used in the loop are all local variables. -4. Perform 25 million multiplies in a loop with the instruction cache off. The variables used in the loop are all local variables. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -******** ICC Example ******** - -***** Volatile Example ***** - -With instruction cache enabled: -0%, k=0 -10%, k=500 -20%, k=1000 -30%, k=1500 -40%, k=2000 -50%, k=2500 -60%, k=3000 -70%, k=3500 -80%, k=4000 -90%, k=4500 - -Time Elapsed: 0.553285 Seconds - - -With instruction cache disabled: -0%, k=0 -10%, k=500 -20%, k=1000 -30%, k=1500 -40%, k=2000 -50%, k=2500 -60%, k=3000 -70%, k=3500 -80%, k=4000 -90%, k=4500 - -Time Elapsed: 1.3264 Seconds - - -***** Non-volatile Example ***** - -With instruction cache enabled: -10%, k=500 -20%, k=1000 -30%, k=1500 -40%, k=2000 -50%, k=2500 -60%, k=3000 -70%, k=3500 -80%, k=4000 -90%, k=4500 -100%, k=5000 - -Time Elapsed: 1.167909 Seconds - - -With instruction cache disabled: -10%, k=500 -20%, k=1000 -30%, k=1500 -40%, k=2000 -50%, k=2500 -60%, k=3000 -70%, k=3500 -80%, k=4000 -90%, k=4500 -100%, k=5000 - -Time Elapsed: 6.351 Seconds - - -EXAMPLE SUCCEEDED -``` - diff --git a/Examples/MAX32572/ICC/main.c b/Examples/MAX32572/ICC/main.c deleted file mode 100644 index 59f1cefa4c5..00000000000 --- a/Examples/MAX32572/ICC/main.c +++ /dev/null @@ -1,160 +0,0 @@ -/** - * @file main.c - * @brief Instruction cache example - * @details Show the time difference when executing operations when instruction - * cache is enabled and disabled - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Functions *****/ - -//Test function to do simple calculations -void example_func1(void) -{ - volatile int i, j, k; - - for (i = 0; i < 5000; i++) { - for (j = 0; j < 500; j++) { - k = i * j; - - if (((i % 500) == 0) && (j == 1)) { - printf("%d%%,\t k=%d\n", i / 50, k); - } - } - } - - printf("\n"); - - return; -} - -void example_func2(void) -{ - int i, j, k; - - for (i = 1; i <= 5000; i++) { - for (j = 1; j <= 5000; j++) { - k = i * j; - - if (((i % 500) == 0) && (j == 1)) { - printf("%d%%,\t k=%d\n", i / 50, k); - } - } - } - - printf("\n"); - - return; -} - -//Start timer before test function -void start_timer(void) -{ - MXC_TMR_SW_Start(MXC_TMR0); - return; -} - -//Stop current timer and print elapsed time -int stop_timer(void) -{ - int time_elapsed = MXC_TMR_SW_Stop(MXC_TMR0); - unsigned int sec = time_elapsed / 1000000; - unsigned int mili = (time_elapsed - (sec * 1000000)) / 1000; - unsigned int micro = time_elapsed - (sec * 1000000) - (mili * 1000); - printf("Time Elapsed: %d.%d%d Seconds\n", sec, mili, micro); - return time_elapsed; -} - -// ***************************************************************************** -int main(void) -{ - int fail = 0; - int time_elapsed1 = 0; - int time_elapsed2 = 0; - - printf("\n******** ICC Example ********\n"); - - printf("\n***** Volatile Example *****\n"); - - printf("\nWith instruction cache enabled:\n"); - MXC_ICC_Enable(); - start_timer(); - example_func1(); //waste time - time_elapsed1 = stop_timer(); - - printf("\n\nWith instruction cache disabled:\n"); - MXC_ICC_Disable(); - start_timer(); - example_func1(); //waste time - time_elapsed2 = stop_timer(); - - if (time_elapsed2 <= time_elapsed1) { - fail += 1; - } - - MXC_ICC_Flush(); - printf("\n\n***** Non-volatile Example *****\n"); - - printf("\nWith instruction cache enabled:\n"); - MXC_ICC_Enable(); - start_timer(); - example_func2(); //waste time - time_elapsed1 = stop_timer(); - - printf("\n\nWith instruction cache disabled:\n"); - MXC_ICC_Disable(); - start_timer(); - example_func2(); //waste time - time_elapsed2 = stop_timer(); - - if (time_elapsed2 <= time_elapsed1) { - fail += 1; - } - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/LP/.cproject b/Examples/MAX32572/LP/.cproject deleted file mode 100644 index 0a4471d86d1..00000000000 --- a/Examples/MAX32572/LP/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/LP/.project b/Examples/MAX32572/LP/.project deleted file mode 100644 index 8bd14c9d5c3..00000000000 --- a/Examples/MAX32572/LP/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - LP - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/LP/.vscode/c_cpp_properties.json b/Examples/MAX32572/LP/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/LP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/LP/.vscode/launch.json b/Examples/MAX32572/LP/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/LP/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/LP/.vscode/settings.json b/Examples/MAX32572/LP/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/LP/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/LP/.vscode/tasks.json b/Examples/MAX32572/LP/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/LP/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/LP/LP.launch b/Examples/MAX32572/LP/LP.launch deleted file mode 100644 index 908467f659c..00000000000 --- a/Examples/MAX32572/LP/LP.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/LP/Makefile b/Examples/MAX32572/LP/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/LP/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/LP/README.md b/Examples/MAX32572/LP/README.md deleted file mode 100644 index ad3b49df7f8..00000000000 --- a/Examples/MAX32572/LP/README.md +++ /dev/null @@ -1,38 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -****Low Power Mode Example**** - -This code cycles through the MAX32572 power modes, using a push button (SW2) to exit from each mode and enter the next. - -Running in ACTIVE mode. -All unused RAMs placed in LIGHT SLEEP mode. -All unused RAMs shutdown. -Entering SLEEP mode. -Waking up from SLEEP mode. -Entering DEEPSLEEP mode. -Waking up from DEEPSLEEP mode. -``` diff --git a/Examples/MAX32572/LP/lp-sla.ld b/Examples/MAX32572/LP/lp-sla.ld deleted file mode 100644 index b03f939d425..00000000000 --- a/Examples/MAX32572/LP/lp-sla.ld +++ /dev/null @@ -1,178 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2016-05-02 14:15:59 -0700 (Mon, 02 May 2016) $ - * $Revision: 22594 $ - * - ******************************************************************************/ - -MEMORY { - SPIX (rx) : ORIGIN = 0x08000000, LENGTH = 128M - HEADER (rx): ORIGIN = 0x10000000, LENGTH = 0x200 /* 256B SLA Header, start on next page */ - FLASH (rx) : ORIGIN = 0x10000200, LENGTH = 0x1FFE00 /* Remainder of 2MB flash */ - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64k /* Limit SRAM usage to SRAM0 and SRAM1 to prevent hardfault. */ - SPID (r) : ORIGIN = 0x80000000, LENGTH = 512M -} - -/* Added Oct 9, 2018 to go to correct reset vector. */ -ENTRY(Reset_Handler) -PROVIDE( _start_SWAP = (((Reset_Handler) >> 24) | (((Reset_Handler) & 0x00FF0000) >> 8) | (((Reset_Handler) & 0x0000FF00) << 8) | ((Reset_Handler) << 24))); -PROVIDE_HIDDEN( _SLA_Size = _endimage - __end_header ); -PROVIDE( _SLA_Size_SWAP = (((_SLA_Size) >> 24) | (((_SLA_Size) & 0x00FF0000) >> 8) | (((_SLA_Size) & 0x0000FF00) << 8) | ((_SLA_Size) << 24))); - -/* Sections Definitions */ -SECTIONS { - .sla_header : ALIGN(4) - { - FILL(0xFF) - KEEP(*(.sb_sla_header)) /* Header for ROM code */ - __end_header = . ; - . = ALIGN(512); - } >HEADER - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - *(.text*) /* program code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - /* This section will keep the SPIX data until loaded into the external device */ - /* Upon initialization of SPIX (user code needs to do this) */ - .xip_section : - { - KEEP(*(.xip_section*)) - } > SPIX AT>FLASH - - __load_start_xip = LOADADDR(.xip_section); - __load_length_xip = SIZEOF(.xip_section); - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.spix_config*) /* SPIX configuration functions need to be run from SRAM */ - *(.flashprog*) /* Flash program */ - - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - _enddata = LOADADDR(.data)+SIZEOF(.data); - - .sb_sla_trailer : AT(_enddata) - { - KEEP(*(.sb_sla_trailer)) - /* Align image with 16 byte boundary to conform to flash encryption block size. */ - FILL(0xDEADC0DE); - /* NOTE: The FILL and ALIGN will not work unless something is written to the section. So, we use LONG. */ - LONG(0xDEADC0DE); - . = ALIGN(16); - } > FLASH - _endimage = LOADADDR(.sb_sla_trailer)+SIZEOF(.sb_sla_trailer); - .sig : - { - KEEP(*(.sig)) - LONG(0xDEADBEEF); - - } > FLASH - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32572/LP/main.c b/Examples/MAX32572/LP/main.c deleted file mode 100644 index 8492e61a284..00000000000 --- a/Examples/MAX32572/LP/main.c +++ /dev/null @@ -1,251 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/* - * @file main.c - * @brief Demonstrates the various low power modes. - * - * @details Iterates through the various low power modes, using either the RTC - * alarm or a GPIO to wake from each. #defines determine which wakeup - * source to use. Once the code is running, you can measure the - * current used on the VCORE rail. - * - * The power states shown are: - * 1. Active mode power with all clocks on - * 2. Active mode power with peripheral clocks disabled - * 3. Active mode power with unused RAMs in light sleep mode - * 4. Active mode power with unused RAMS shut down - * 5. SLEEP mode - * 6. BACKGROUND mode - * 7. DEEPSLEEP mode - * 8. BACKUP mode - */ - -#include -#include - -#include - -#define DELAY_IN_SEC 2 -#define USE_CONSOLE 1 - -#define USE_BUTTON 1 -#define USE_ALARM 0 - -#define DO_SLEEP 1 -#define DO_DEEPSLEEP 1 -#define DO_BACKUP 0 - -#if (!(USE_BUTTON || USE_ALARM)) -#error "You must set either USE_BUTTON or USE_ALARM to 1." -#endif -#if (USE_BUTTON && USE_ALARM) -#error "You must select either USE_BUTTON or USE_ALARM, not both." -#endif - -// ***************************************************************************** - -#if USE_ALARM -volatile int alarmed; -void alarmHandler(void) -{ - int flags = MXC_RTC->ctrl; - alarmed = 1; - - if ((flags & MXC_F_RTC_CTRL_ALSF) >> MXC_F_RTC_CTRL_ALSF_POS) { - MXC_RTC->ctrl &= ~(MXC_F_RTC_CTRL_ALSF); - } - - if ((flags & MXC_F_RTC_CTRL_ALDF) >> MXC_F_RTC_CTRL_ALDF_POS) { - MXC_RTC->ctrl &= ~(MXC_F_RTC_CTRL_ALDF); - } -} - -void setTrigger(int waitForTrigger) -{ - alarmed = 0; - - while (MXC_RTC_Init(0, 0) == E_BUSY) {} - - while (MXC_RTC_DisableInt(MXC_F_RTC_CTRL_ADE) == E_BUSY) {} - - while (MXC_RTC_SetTimeofdayAlarm(DELAY_IN_SEC) == E_BUSY) {} - - while (MXC_RTC_EnableInt(MXC_F_RTC_CTRL_ADE) == E_BUSY) {} - - while (MXC_RTC_Start() == E_BUSY) {} - - if (waitForTrigger) { - while (!alarmed) {} - } - - // Wait for serial transactions to complete. -#if USE_CONSOLE - - while (MXC_UART_ReadyForSleep(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) {} - -#endif // USE_CONSOLE -} -#endif // USE_ALARM - -#if USE_BUTTON -volatile int buttonPressed; -void buttonHandler(void *pb) -{ - buttonPressed = 1; -} - -void setTrigger(int waitForTrigger) -{ - int tmp; - - buttonPressed = 0; - - if (waitForTrigger) { - while (!buttonPressed) {} - } - - // Debounce the button press. - for (tmp = 0; tmp < 0x800000; tmp++) { - __NOP(); - } - - // Wait for serial transactions to complete. -#if USE_CONSOLE - - while (MXC_UART_ReadyForSleep(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) {} - -#endif // USE_CONSOLE -} -#endif // USE_BUTTON - -int main(void) -{ -#if USE_CONSOLE - printf("****Low Power Mode Example****\n\n"); -#endif // USE_CONSOLE - -#if USE_ALARM -#if USE_CONSOLE - printf("This code cycles through the MAX32572 power modes, using the RTC alarm to exit from " - "each mode. The modes will change every %d seconds.\n\n", - DELAY_IN_SEC); -#endif // USE_CONSOLE - NVIC_SetVector(RTC_IRQn, alarmHandler); -#endif // USE_ALARM - -#if USE_BUTTON -#if USE_CONSOLE - printf("This code cycles through the MAX32572 power modes, using a push button (SW2) to exit " - "from each mode and enter the next.\n\n"); -#endif // USE_CONSOLE - PB_RegisterCallback(0, buttonHandler); -#endif // USE_BUTTON - -#if USE_CONSOLE - printf("Running in ACTIVE mode.\n"); -#else - SYS_ClockDisable(SYS_PERIPH_CLOCK_UART0); -#endif // USE_CONSOLE - setTrigger(1); - - MXC_LP_ROM0LightSleepEnable(); - MXC_LP_USBFIFOLightSleepEnable(); - MXC_LP_CryptoLightSleepEnable(); - MXC_LP_ICacheXIPLightSleepEnable(); - MXC_LP_ICache0LightSleepEnable(); - MXC_LP_SysRam6LightSleepEnable(); - MXC_LP_SysRam5LightSleepEnable(); - MXC_LP_SysRam4LightSleepEnable(); - MXC_LP_SysRam3LightSleepEnable(); - MXC_LP_SysRam2LightSleepEnable(); - - MXC_LP_SysRam1LightSleepDisable(); - MXC_LP_SysRam0LightSleepDisable(); // Global variables are in RAM0 and RAM1 - -#if USE_CONSOLE - printf("All unused RAMs placed in LIGHT SLEEP mode.\n"); -#endif // USE_CONSOLE - setTrigger(1); - - MXC_LP_ROM0Shutdown(); - MXC_LP_USBFIFOShutdown(); - MXC_LP_CryptoShutdown(); - MXC_LP_ICacheXIPShutdown(); - MXC_LP_SysRam6Shutdown(); - MXC_LP_SysRam5Shutdown(); - MXC_LP_SysRam4Shutdown(); - MXC_LP_SysRam3Shutdown(); - MXC_LP_SysRam2Shutdown(); - - MXC_LP_SysRam1PowerUp(); - MXC_LP_SysRam0PowerUp(); // Global variables are in RAM0 and RAM1 - -#if USE_CONSOLE - printf("All unused RAMs shutdown.\n"); -#endif // USE_CONSOLE - setTrigger(1); - -#if USE_BUTTON - MXC_LP_EnableGPIOWakeup((mxc_gpio_cfg_t *)&pb_pin[0]); - MXC_GPIO_SetWakeEn(pb_pin[0].port, pb_pin[0].mask); -#endif // USE_BUTTON -#if USE_ALARM - MXC_LP_EnableRTCAlarmWakeup(); -#endif // USE_ALARM - - while (1) { -#if DO_SLEEP -#if USE_CONSOLE - printf("Entering SLEEP mode.\n"); -#endif // USE_CONSOLE - setTrigger(0); - MXC_LP_EnterSleepMode(); -#endif // DO_SLEEP -#if DO_DEEPSLEEP -#if USE_CONSOLE - printf("Entering DEEPSLEEP mode.\n"); -#endif // USE_CONSOLE - setTrigger(0); - MXC_LP_EnterDeepSleepMode(); -#endif // DO_DEEPSLEEP - -#if DO_BACKUP -#if USE_CONSOLE - printf("Entering BACKUP mode.\n"); -#endif // USE_CONSOLE - setTrigger(0); - MXC_LP_EnterBackupMode(); -#endif // DO_BACKUP - } -} diff --git a/Examples/MAX32572/Library_Generate/.cproject b/Examples/MAX32572/Library_Generate/.cproject deleted file mode 100644 index 710484d3c19..00000000000 --- a/Examples/MAX32572/Library_Generate/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Library_Generate/.project b/Examples/MAX32572/Library_Generate/.project deleted file mode 100644 index 02be878e0f6..00000000000 --- a/Examples/MAX32572/Library_Generate/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Library_Generate - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Library_Generate/.settings/language.settings.xml b/Examples/MAX32572/Library_Generate/.settings/language.settings.xml deleted file mode 100644 index e8fb9735319..00000000000 --- a/Examples/MAX32572/Library_Generate/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Examples/MAX32572/Library_Generate/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/Library_Generate/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index a0099b169d8..00000000000 --- a/Examples/MAX32572/Library_Generate/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=Library_Generate -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32572 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/Library_Generate/.vscode/README.md b/Examples/MAX32572/Library_Generate/.vscode/README.md deleted file mode 100644 index d289bba0d6b..00000000000 --- a/Examples/MAX32572/Library_Generate/.vscode/README.md +++ /dev/null @@ -1,550 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * If it's not in the README, check the UG. - * If it's not in the UG, open a ticket! -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX32xxx/MAX78xxx microcontrollers](https://www.analog.com/en/product-category/microcontrollers.html). - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) - * [C/C++ VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) - * [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) -* [Analog Devices MSDK](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.analog.com/en/education/education-library/videos/6313212752112.html). - -1. Download and install the Analog Devices MSDK for your OS from the links below. For more detailed instructions on installing the MSDK, see the [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * [Windows](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018720A) - * [MacOS](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MSDK installation, taking note of where the MSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Install the [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) - -8. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -9. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/open_settings_json.jpg) - -10. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the Analog Devices MSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -11. Save your changes to the file with `CTRL + S` and restart VS Code. - -12. That's it! You're ready to start using Visual Studio Code to develop with Analog Devices MAX-series Microcontrollers. The MSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the MSDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for the MSDK's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, the MAX-series microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of the MSDK toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, the MSDK's peripheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/65af7c61800c7039956f3c1971ffd7915008668d/img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operator is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **IDE/command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The following configuration variables are available. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MSDK. By default, the Makefile will attempt to locate the MSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the MSDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download.html?swpart=SFW0015360C). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MSDK will be searched. If the [SBT installer](hhttps://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download.html?swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the Analog Devices MSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the MSDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/Library_Generate/.vscode/settings.json b/Examples/MAX32572/Library_Generate/.vscode/settings.json deleted file mode 100644 index e42e20ad27c..00000000000 --- a/Examples/MAX32572/Library_Generate/.vscode/settings.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}", - "TARGET=${config:target}", - "TARGET_REV=0x4131", - "__GNUC__" - ] -} - diff --git a/Examples/MAX32572/Library_Generate/.vscode/tasks.json b/Examples/MAX32572/Library_Generate/.vscode/tasks.json deleted file mode 100644 index 4c912702c9b..00000000000 --- a/Examples/MAX32572/Library_Generate/.vscode/tasks.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Library_Generate/Makefile b/Examples/MAX32572/Library_Generate/Makefile deleted file mode 100644 index d7b1a0d3c7a..00000000000 --- a/Examples/MAX32572/Library_Generate/Makefile +++ /dev/null @@ -1,404 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32572 -TARGET_UC := MAX32572 -TARGET_LC := max32572 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -include ./project.mk -$(info Loaded project.mk) - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -ifeq "$(RISCV_CORE)" "" -# Default linkerfile is only specified for standard Arm-core projects. -# Otherwise, gcc_riscv.mk sets the appropriate riscv linkerfile. -LINKERFILE ?= $(TARGET_LC).ld -LINKERPATH ?= $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC - -# Check if linkerfile exists -ifeq ("$(wildcard $(LINKERPATH)/$(LINKERFILE))","") -# Doesn't exists, attempt to use root project folder. -LINKERPATH:=. -endif - -# Form full path to linkerfile. Works around MSYS2 edge case from (see MSDK-903). -LINKERFILE:=$(LINKERPATH)/$(LINKERFILE) -endif - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/Library_Generate/README.md b/Examples/MAX32572/Library_Generate/README.md deleted file mode 100644 index 405263bf82b..00000000000 --- a/Examples/MAX32572/Library_Generate/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## Description - -Example project that demonstrates how to generate a static library using MSDK. - -The output of this project is a ".a" static library file that can be linked by external applications. -Check the Library_Use demo to see how to link static libraries to an application. - -## Software - -### Project Usage - -Universal instructions on building this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -This project does not generate an executable thus it cannot be run directly on the MCU. - -## Required Connections - -None. - -## Expected Output - -None. diff --git a/Examples/MAX32572/Library_Generate/gpiolib.c b/Examples/MAX32572/Library_Generate/gpiolib.c deleted file mode 100644 index 8b107a6a87f..00000000000 --- a/Examples/MAX32572/Library_Generate/gpiolib.c +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @file gpiolib - * @brief Example static library implementation. - * @details GPIO library source. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include "mxc_errors.h" -#include "gpio.h" -#include "gpiolib.h" - -void gpio_set(const mxc_gpio_cfg_t *gpio) -{ - if (gpio->func == MXC_GPIO_FUNC_OUT) - MXC_GPIO_OutSet(gpio->port, gpio->mask); -} - -void gpio_clear(const mxc_gpio_cfg_t *gpio) -{ - if (gpio->func == MXC_GPIO_FUNC_OUT) - MXC_GPIO_OutClr(gpio->port, gpio->mask); -} - -int gpio_get(const mxc_gpio_cfg_t *gpio) -{ - if (gpio->func == MXC_GPIO_FUNC_IN) - return MXC_GPIO_InGet(gpio->port, gpio->mask); - - return MXC_GPIO_OutGet(gpio->port, gpio->mask); -} diff --git a/Examples/MAX32572/Library_Generate/gpiolib.h b/Examples/MAX32572/Library_Generate/gpiolib.h deleted file mode 100644 index 2ee32b6501c..00000000000 --- a/Examples/MAX32572/Library_Generate/gpiolib.h +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file gpiolib.h - * @brief GPIO library header. - * @details Function prototypes for GPIO library. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_LIBRARY_GENERATE_GPIOLIB_H_ -#define EXAMPLES_MAX32572_LIBRARY_GENERATE_GPIOLIB_H_ - -#include "gpio.h" - -/** - * @brief Sets the given GPIO to high state. - * @param gpio GPIO to set. - */ -void gpio_set(const mxc_gpio_cfg_t *gpio); - -/** - * @brief Sets the given GPIO to low state. - * @param gpio GPIO to set. - */ -void gpio_clear(const mxc_gpio_cfg_t *gpio); - -/** - * @brief Returns the input state of the given GPIO. - * @param gpio GPIO to read. - * @return Current GPIO state. - */ -int gpio_get(const mxc_gpio_cfg_t *gpio); - -#endif // EXAMPLES_MAX32572_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32572/Library_Generate/project.mk b/Examples/MAX32572/Library_Generate/project.mk deleted file mode 100644 index 41202bd0b0f..00000000000 --- a/Examples/MAX32572/Library_Generate/project.mk +++ /dev/null @@ -1,11 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -# ********************************************************** - -# Generate a static library by default -override .DEFAULT_GOAL = lib diff --git a/Examples/MAX32572/Library_Use/.cproject b/Examples/MAX32572/Library_Use/.cproject deleted file mode 100644 index e6e225970bb..00000000000 --- a/Examples/MAX32572/Library_Use/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Library_Use/.project b/Examples/MAX32572/Library_Use/.project deleted file mode 100644 index 401cd222d51..00000000000 --- a/Examples/MAX32572/Library_Use/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Library_Use - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Library_Use/.settings/language.settings.xml b/Examples/MAX32572/Library_Use/.settings/language.settings.xml deleted file mode 100644 index e8fb9735319..00000000000 --- a/Examples/MAX32572/Library_Use/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Examples/MAX32572/Library_Use/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/Library_Use/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index f99edc249b6..00000000000 --- a/Examples/MAX32572/Library_Use/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=Library_Use -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32572 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/Library_Use/.vscode/README.md b/Examples/MAX32572/Library_Use/.vscode/README.md deleted file mode 100644 index d289bba0d6b..00000000000 --- a/Examples/MAX32572/Library_Use/.vscode/README.md +++ /dev/null @@ -1,550 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * If it's not in the README, check the UG. - * If it's not in the UG, open a ticket! -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX32xxx/MAX78xxx microcontrollers](https://www.analog.com/en/product-category/microcontrollers.html). - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) - * [C/C++ VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) - * [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) -* [Analog Devices MSDK](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.analog.com/en/education/education-library/videos/6313212752112.html). - -1. Download and install the Analog Devices MSDK for your OS from the links below. For more detailed instructions on installing the MSDK, see the [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * [Windows](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018720A) - * [MacOS](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MSDK installation, taking note of where the MSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Install the [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) - -8. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -9. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/open_settings_json.jpg) - -10. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the Analog Devices MSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -11. Save your changes to the file with `CTRL + S` and restart VS Code. - -12. That's it! You're ready to start using Visual Studio Code to develop with Analog Devices MAX-series Microcontrollers. The MSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the MSDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for the MSDK's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, the MAX-series microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of the MSDK toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, the MSDK's peripheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/65af7c61800c7039956f3c1971ffd7915008668d/img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operator is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **IDE/command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The following configuration variables are available. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MSDK. By default, the Makefile will attempt to locate the MSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the MSDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download.html?swpart=SFW0015360C). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MSDK will be searched. If the [SBT installer](hhttps://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download.html?swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the Analog Devices MSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the MSDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/Library_Use/.vscode/launch.json b/Examples/MAX32572/Library_Use/.vscode/launch.json deleted file mode 100644 index a3900ecf2ad..00000000000 --- a/Examples/MAX32572/Library_Use/.vscode/launch.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "configurations": [ - { - "name": "Debug Arm (Cortex-debug)", - "cwd":"${workspaceRoot}", - "executable": "${workspaceFolder}/build/${config:program_file}", - "loadFiles": ["${workspaceFolder}/build/${config:program_file}"], - "symbolFiles": [{ - "file": "${workspaceFolder}/build/${config:symbol_file}" - }], - "request": "launch", - "type": "cortex-debug", - "servertype": "openocd", - "linux": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "serverpath": "${config:OCD_path}/openocd", - }, - "windows": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "serverpath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "serverpath": "${config:OCD_path}/openocd", - }, - "searchDir": ["${config:OCD_path}/scripts"], - "configFiles": ["interface/${config:M4_OCD_interface_file}", "target/${config:M4_OCD_target_file}"], - "interface": "swd", - "runToEntryPoint": "main", - "svdFile": "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include/${config:target}.svd" - }, - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"set $pc=Reset_Handler"}, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Library_Use/.vscode/settings.json b/Examples/MAX32572/Library_Use/.vscode/settings.json deleted file mode 100644 index e42e20ad27c..00000000000 --- a/Examples/MAX32572/Library_Use/.vscode/settings.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}", - "TARGET=${config:target}", - "TARGET_REV=0x4131", - "__GNUC__" - ] -} - diff --git a/Examples/MAX32572/Library_Use/.vscode/tasks.json b/Examples/MAX32572/Library_Use/.vscode/tasks.json deleted file mode 100644 index 23f00049c4e..00000000000 --- a/Examples/MAX32572/Library_Use/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Library_Use/Library_Use.launch b/Examples/MAX32572/Library_Use/Library_Use.launch deleted file mode 100644 index 3fda1e5217a..00000000000 --- a/Examples/MAX32572/Library_Use/Library_Use.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Library_Use/Makefile b/Examples/MAX32572/Library_Use/Makefile deleted file mode 100644 index d7b1a0d3c7a..00000000000 --- a/Examples/MAX32572/Library_Use/Makefile +++ /dev/null @@ -1,404 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32572 -TARGET_UC := MAX32572 -TARGET_LC := max32572 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -include ./project.mk -$(info Loaded project.mk) - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -ifeq "$(RISCV_CORE)" "" -# Default linkerfile is only specified for standard Arm-core projects. -# Otherwise, gcc_riscv.mk sets the appropriate riscv linkerfile. -LINKERFILE ?= $(TARGET_LC).ld -LINKERPATH ?= $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC - -# Check if linkerfile exists -ifeq ("$(wildcard $(LINKERPATH)/$(LINKERFILE))","") -# Doesn't exists, attempt to use root project folder. -LINKERPATH:=. -endif - -# Form full path to linkerfile. Works around MSYS2 edge case from (see MSDK-903). -LINKERFILE:=$(LINKERPATH)/$(LINKERFILE) -endif - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/Library_Use/README.md b/Examples/MAX32572/Library_Use/README.md deleted file mode 100644 index 9c91d329316..00000000000 --- a/Examples/MAX32572/Library_Use/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## Description - -Simple program that demonstrates how to link static libraries to an application. - -This demo application toggles an LED using GPIO functions found in the static library myLib.a. Refer -to project.mk to see how to include ".a" static library files into your project. - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Close jumper JP10 (LED1 EN). - -## Expected Output - -The Console UART of the device will output these messages: - -``` -********************** Static Library Example ********************** - -This example calls static library functions to toggle an LED. - -... -``` diff --git a/Examples/MAX32572/Library_Use/lib/include/gpiolib.h b/Examples/MAX32572/Library_Use/lib/include/gpiolib.h deleted file mode 100644 index d82877e1df0..00000000000 --- a/Examples/MAX32572/Library_Use/lib/include/gpiolib.h +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file gpiolib.h - * @brief GPIO library header. - * @details Function prototypes for GPIO library. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ -#define EXAMPLES_MAX32572_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ - -#include "gpio.h" - -/** - * @brief Sets the given GPIO to high state. - * @param gpio GPIO to set. - */ -void gpio_set(const mxc_gpio_cfg_t *gpio); - -/** - * @brief Sets the given GPIO to low state. - * @param gpio GPIO to set. - */ -void gpio_clear(const mxc_gpio_cfg_t *gpio); - -/** - * @brief Returns the input state of the given GPIO. - * @param gpio GPIO to read. - * @return Current GPIO state. - */ -int gpio_get(const mxc_gpio_cfg_t *gpio); - -#endif /* EXAMPLES_MAX32572_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ */ diff --git a/Examples/MAX32572/Library_Use/lib/libmyLib.a b/Examples/MAX32572/Library_Use/lib/libmyLib.a deleted file mode 100644 index 7aab56c7dce..00000000000 Binary files a/Examples/MAX32572/Library_Use/lib/libmyLib.a and /dev/null differ diff --git a/Examples/MAX32572/Library_Use/main.c b/Examples/MAX32572/Library_Use/main.c deleted file mode 100644 index 45383105662..00000000000 --- a/Examples/MAX32572/Library_Use/main.c +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file main.c - * @brief Static library example - * @details Calls static library functions to toggle an LED. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* **** Includes **** */ -#include -#include -#include "mxc_delay.h" -#include "led.h" -#include "pb.h" - -#include "gpiolib.h" - -/* ************************************************************************** */ -int main(void) -{ - printf("\n\n*********************** Static Library Example **********************\n\n"); - printf("This example calls static library functions to toggle an LED.\n"); - - gpio_clear(&led_pin[0]); - while (1) { - if (!gpio_get(&led_pin[0])) { - gpio_set(&led_pin[0]); - } else { - gpio_clear(&led_pin[0]); - } - MXC_Delay(500000); - } -} diff --git a/Examples/MAX32572/Library_Use/project.mk b/Examples/MAX32572/Library_Use/project.mk deleted file mode 100644 index 37448b4d8ed..00000000000 --- a/Examples/MAX32572/Library_Use/project.mk +++ /dev/null @@ -1,15 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -# ********************************************************** - -# Add your config here! - -# Add static library to the list of dependencies -IPATH += lib/include -PROJ_LDFLAGS += -Llib -PROJ_LIBS += myLib diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/.cproject b/Examples/MAX32572/MAX32572_Demo_BareMetal/.cproject deleted file mode 100644 index 33299b5dca3..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/.cproject +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/.project b/Examples/MAX32572/MAX32572_Demo_BareMetal/.project deleted file mode 100644 index 271813948a1..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - MAX32572_Demo_BareMetal - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/c_cpp_properties.json b/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/launch.json b/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/settings.json b/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/tasks.json b/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/MAX32570_Demo_BareMetal.launch b/Examples/MAX32572/MAX32572_Demo_BareMetal/MAX32570_Demo_BareMetal.launch deleted file mode 100644 index a1a0336be85..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/MAX32570_Demo_BareMetal.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/Makefile b/Examples/MAX32572/MAX32572_Demo_BareMetal/Makefile deleted file mode 100644 index 0649a010e36..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/Makefile +++ /dev/null @@ -1,224 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -ifeq ("$(wildcard $(LIBS_DIR)/NFC)","") -$(error This demo example requires NFC package, Please install NFC package.) -endif - -ifeq ("$(wildcard $(LIBS_DIR)/EMV)","") -$(error This demo example requires EMV package, Please install EMV package.) -endif - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += src/keypad.c -SRCS += src/utils.c -SRCS += resources/all_imgs.c -# states -SRCS += src/state.c -SRCS += src/state_home.c -SRCS += src/state_idle.c -SRCS += src/state_slide.c -SRCS += src/state_keypad.c -SRCS += src/state_info.c -SRCS += src/state_nfc.c -SRCS += src/state_msr.c -SRCS += src/state_smartcard.c -# tasks -SRCS += src/task_smartcard.c -SRCS += src/task_nfc.c -SRCS += src/task_msr.c -SRCS += src/task_animation.c -# smartcard -SRCS += src/ST8034.c -# msr -SRCS += src/msr/msr_sdma.c -# nfc -SRCS += src/nfc/mml_nfc_port.c -SRCS += src/nfc/logging.c -SRCS += src/nfc/emv_l1_stack/iso14443_3b_flow.c -SRCS += src/nfc/emv_l1_stack/iso14443_3a_cmd.c -SRCS += src/nfc/emv_l1_stack/iso14443_3a_flow.c -SRCS += src/nfc/emv_l1_stack/iso14443_3_common.c -SRCS += src/nfc/emv_l1_stack/iso14443_4_transitive.c -SRCS += src/nfc/emv_l1_stack/iso14443_3b_cmd.c -SRCS += src/nfc/contactless_l1_app/EMV_polling_and_loopback.c - - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += ./src -VPATH += ./src/msr -VPATH += ./src/nfc -VPATH += ./src/nfc/emv_l1_stack -VPATH += ./src/nfc/contactless_l1_app -VPATH += ./resources - -# Where to find header files for this test -IPATH = . -IPATH += include -IPATH += resources -IPATH += include/nfc -IPATH += include/nfc/contactless_l1_app -IPATH += include/nfc/emv_l1_stack -IPATH += $(LIBS_DIR)/NFC/lib_nfc_pcd_rf_driver_MAX32572/include/nfc -IPATH += $(LIBS_DIR)/NFC/lib_nfc_pcd_pbm/include - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -PROJ_AFLAGS+=-D__MSR_SDMA_SIZE=0xA000 - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - -PROJ_LIBS += nfc_pcd_pbm_softfp -PROJ_LIBS += nfc_pcd_rf_driver_MAX32572_softfp - -# Use these variables to add project specific tool options -PROJ_CFLAGS += -DDISABLE_EVKIT_DISPLAY -PROJ_CFLAGS += -D__$(TARGET_UC) -PROJ_CFLAGS += -D$(BOARD) -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs -PROJ_LDFLAGS += -L$(LIBS_DIR)/NFC/lib_nfc_pcd_pbm -PROJ_LDFLAGS += -L$(LIBS_DIR)/NFC/lib_nfc_pcd_rf_driver_MAX32572 - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O0 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -# Convert bitmap and font files to all_imgs.c file -$(shell $(LIBS_DIR)/../Tools/BitmapConverter/maxim_bitmap_converter ./resources) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -EMV_DIR=$(LIBS_DIR)/EMV -include $(EMV_DIR)/emv.mk - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/README.md b/Examples/MAX32572/MAX32572_Demo_BareMetal/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/demo_config.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/demo_config.h deleted file mode 100644 index 09620c2821b..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/demo_config.h +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_DEMO_CONFIG_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_DEMO_CONFIG_H_ - -/***************************** DEFINES *********************************/ -#define SMARTCARD_EXT_AFE_3V (0) -#define SMARTCARD_EXT_AFE_5V (1) - -/* - * To select 5V or 3V working mode - * Class A (5V) and Class B (3V) mode selection - */ -#define SMARTCARD_EXT_AFE_Voltage (SMARTCARD_EXT_AFE_5V) - -/***************************** TYPE DEF *********************************/ - -/***************************** FUNCTIONS *********************************/ - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_DEMO_CONFIG_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/keypad.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/keypad.h deleted file mode 100644 index 612a10ee516..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/keypad.h +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_KEYPAD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_KEYPAD_H_ - -/***************************** DEFINES *********************************/ -#define KEY_0 '0' -#define KEY_1 '1' -#define KEY_2 '2' -#define KEY_3 '3' -#define KEY_4 '4' -#define KEY_5 '5' -#define KEY_6 '6' -#define KEY_7 '7' -#define KEY_8 '8' -#define KEY_9 '9' -#define KEY_A 'A' -#define KEY_B 'B' -#define KEY_C 'C' -#define KEY_D 'D' -#define KEY_E 'E' -#define KEY_F 'F' -// Contact EMV keys -#define KEY_CARD_INSERTED 0xE0 -#define KEY_CARD_REMOVED 0xE1 - -/***************************** FUNCTIONS *********************************/ -int keypad_init(void); -int keypad_getkey(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_KEYPAD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/contactless_l1_app/EMV_polling_and_loopback.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/contactless_l1_app/EMV_polling_and_loopback.h deleted file mode 100644 index 08253059223..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/contactless_l1_app/EMV_polling_and_loopback.h +++ /dev/null @@ -1,216 +0,0 @@ -/** - * @file - * @brief Provides reference polling routines for NFC EMV activation - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_CONTACTLESS_L1_APP_EMV_POLLING_AND_LOOPBACK_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_CONTACTLESS_L1_APP_EMV_POLLING_AND_LOOPBACK_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** @defgroup EMV_POLLING_AND_LOOPBACK Polling and Loopback - * - * @ingroup MML - * - * @{ - */ - -/** - * @defgroup POLLING_CONFIG EMV Polling Configuration Switches - * - * Enable different behaviors in the EMV L1 Polling and Loopback routines - * - * @{ - */ - -/** - * Treat a ATTRIB Response with High INF set as not and error - * - * @note This is incompatible with EMV L1 testing, some digital tests - * will fail. - */ -// Use this wrapper to force Doxygen to document this disabled option -#ifdef _DOXYGEN_ -#define IGNORE_HIGH_INF -#endif - -// Use this define to actually enable the feature -#undef IGNORE_HIGH_INF - -/** - * Display all activation responses from cards: - * ATQ, Anticollision, ATTRIB, Selection, ATS etc. - */ -#define LOG_ACTIVATION_RESPONSES -/** @} */ /* @defgroup POLLING_CONFIG */ - -/** - * @defgroup POLLING_DELAYS EMV Polling Timeout Values - * - * Used for various loopback requests and polling procedures - * - * @{ - */ -#define TIMEOUT_POWEROFF_MS 15 /**< Milliseconds to delay for a power off procedure */ -/** @} */ /* @defgroup POLLING_DELAYS */ - -/** - * @defgroup LOOPBACK_RAPDUS EMV Loopback Procedure Requests - * - * Procedure Requests from the L1 Tester - * - * @{ - */ -#define REMOVALPROCEDURE 0x70 /**< RAPDU signaling a request for removal procedure */ -#define POWEROFFPROCEDURE 0x72 /**< RAPDU signaling a request for poweroff procedure */ -#define RESETPROCEDURE 0x80 /**< RAPDU signaling a request for reset procedure */ -/** @} */ /* @defgroup LOOPBACK_RAPDUS */ - -/** - * @defgroup POLLING_RESPONSES EMV Polling Return Values - * - * Results of the requested polling - * - * @{ - */ -#define TYPE_A_READY 0x0A /**< Type A card found and activated */ -#define TYPE_B_READY 0x0B /**< Type B card found and activated */ -#define TYPE_A_NON_ISO14443_4_READY \ - 0x1A /**< Type A card found but not compliant with Half Duplex Block Transport */ -#define TYPE_B_NON_ISO14443_4_READY \ - 0x1B /**< Type B card found but not compliant with Half Duplex Block Transport */ -#define NO_CARD_FOUND 0xFF /**< Polled for all supported technologies, but no support card found */ -#define CARD_FOUND_WITH_ERROR \ - 0xFE /**< Found a card but failed to activate due communications error or unsupported card */ -#define COLLISION_DETECTED 0xFD /**< Card or cards found, but failed to activate due to collision */ -#define POLLING_TERMINATED \ - 0x01 /**< Polling terminated by call back function @ref callback_check_for_loop_termination_t */ -#define EXCHANGE_COMPLETE 0x00 /**< EMV L1 Exchange finished, Card found */ -/** @} */ /* @defgroup POLLING_RESPONSES */ - -/** uid of last card found during polling */ -typedef struct { - uint8_t uid[15]; /**< uid of last card found during polling */ - uint32_t uid_length; /**< Length of last uid found during polling */ -} uid_storage_t; - -/** - * @defgroup GLOBAL_RAPDU_VARS Global RAPDU Variables - * - * Global RAPDU Variables utilized by polling functions - * - * @{ - */ -extern uint8_t rapdu[261]; /**< Shared RAPDU buffer */ -extern int32_t rapdulen; /**< Length of current RAPDU in the shared buffer */ -extern int32_t rapdu_displayed; /**< Display flag, used to satisfy required EMV DTE logging */ -/** @} */ /* @defgroup GLOBAL_RAPDU_VARS */ - -/** - * Polling termination callback function definition - * - * Passed to @ref singleemvl1exchange to determine if it should exit the - * loopback test mode. - */ -typedef int32_t (*callback_check_for_loop_termination_t)(void); - -/** - * @brief Implements EMV card polling for use in application/demo environment - * - * Implements EMV card polling for use in application/demo environment - * - * @param loop_num how many times through the loop before returning - * - * @return @ref POLLING_RESPONSES - */ -int32_t emvl1_poll_for_card(uint32_t loop_num); - -/** - * @brief Implements EMV card polling for use in Level 1 loop-back testing environment - * - * Implements EMV card polling for use in Level 1 loop-back testing environment - * - * @param callback @ref callback_check_for_loop_termination_t - * Callback to check if this polling loop should be terminated. - * For instance the operator desires to switch to a different test mode. - * - * @note If @ref callback_check_for_loop_termination_t is NULL, loop will - * not return until a card is found and one exchange is completed. - * - * @retval #POLLING_TERMINATED - * @retval #EXCHANGE_COMPLETE - */ -int32_t singleemvl1exchange(callback_check_for_loop_termination_t callback); - -/** - * @brief Implements EMV card polling for use in Level 1 interoperability loop-back testing environment - * - * Implements EMV card polling for use in Level 1 interoperability loop-back testing environment. - * Indicates failure with red led, and low pitched buzz, indicates pass with green led, and high - * pitched buzz. - * - * @param callback @ref callback_check_for_loop_termination_t - * Callback to check if this polling loop should be terminated. - * For instance the operator desires to switch to a different test mode. - * - * @note If @ref callback_check_for_loop_termination_t is NULL, loop will - * not return until a card is found and one exchange is completed. - * - * @retval #POLLING_TERMINATED - * @retval #EXCHANGE_COMPLETE - */ -int32_t singleemvl1interopexchange(callback_check_for_loop_termination_t callback); - -/** - * @brief Get last UID found during polling - * - * Get last UID found during polling. Per EMV Book D, UID has a max length of 15 bytes. - * - * @return @ref uid_storage_t Structure containing the UID of the last card found during polling - */ -uid_storage_t get_stored_uid(void); - -/** @} */ /* @defgroup EMV_POLLING_AND_LOOPBACK */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_CONTACTLESS_L1_APP_EMV_POLLING_AND_LOOPBACK_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/contactless_l1_app/emvl1_app.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/contactless_l1_app/emvl1_app.h deleted file mode 100644 index 8e61763f999..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/contactless_l1_app/emvl1_app.h +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_CONTACTLESS_L1_APP_EMVL1_APP_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_CONTACTLESS_L1_APP_EMVL1_APP_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -void emvl1_main_loop(void); - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_CONTACTLESS_L1_APP_EMVL1_APP_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3_common.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3_common.h deleted file mode 100644 index a6c5d756de2..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3_common.h +++ /dev/null @@ -1,468 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3_COMMON_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3_COMMON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_STACK EMV Contactless PCD L1 Stack - * - * @ingroup MML - * - * This library implements a EMV Contactless PCD L1 Stack - * as detailed by - * [EMV Book D: Contactless Communication Protocol](https://www.emvco.com/specifications.aspx?id=21) - * - * It can also be used to handle applications outside the scope of EMV including - * Proprietary, access control, transport, card applications, etc. - * - * Its primary interfaces functions support: - * - Polling for cards in the field - * - Activating cards, handling collision detection - * - APDU Transport - * - * @{ - * - */ - -#include -#include "mml_nfc_pcd_rf_driver.h" - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_VER_HIST EMV L1 Stack Version History - * - * L1 Stack Version, Release History, and Change Log - * - * @{ - * - * @par 4.0.0 - 05/12/2020 - * - Initial release supporting MAX32572. - * - * Primarily targeted to support EMV Types A and B. - * Also includes basic "as is" support for Type F and V (ISO15693) - * - * @par 3.4.0 - 10/25/2019 - * - Slight modification to SendAPDU to return ISO14443_3_ERR_TIMEOUT in cases - * where three retries fail, and the last error is ISO14443_3_ERR_TIMEOUT - * instead of returning ISO14443_3_ERR_PROTOCOL. Change should only effect - * EMV Level 2 behavior. - * - * @par 3.3.0 - 06/28/2019 - * - EMV L1 Stack now released as source with in the DTE. PBM library - * and RF Driver library are still binary only. - * - Fixed issues with TB311 where invalid retransmission time was used. - * - Updated to support new RF driver features: Configurable Early Limit, - * and new error codes. - * - Added Interoperability Loop-back with Success and Failure indications - * - Added addition margin of 200ppm to long counts in the L1 stack to - * account for crystal and temperature variations of the source clock - * - * @par 3.2.0 - 05/03/2019 - * - Added ability to abort current transactions @ref set_abort_check_callback - * This callback is called after every @ref mml_nfc_pcd_transceive and it - * allows the application to regain control and stop the current transaction. - * - * @par 3.1.1 - 04/05/2019 - * - Version increment to match updated RF driver - * - * @par 3.1.0 - 02/22/2019 - * - Version increment to match updated RF driver - * - Small modifications to use new RF driver functions and parameter structures. - * - * @par 3.0.0 - 01/25/2019 - * - CRC functions moved into RF driver - * - Update to use new structure for transceive parameters - * - * @par 2.1.0 - 08/23/2018 - * - Significant throughput performance enhancements, now utilizes the new `delay_till_send` - * parameter of the @ref mml_nfc_pcd_transceive to time each packet to transmit. This allows upper - * stack PCD processing during the inter-packet delay with minimal increases in inter-packet - * latency. - * - New function @ref nfc_set_delay_till_next_send_fc may be used to set `delay_till_send` for the - * immediately following transceive. After every transceive it is reset to @ref ISO14443_FDT_MIN - * - Renamed `nfc_delay_ms` to `nfc_yield_ms` to better represent its actual behavior. - * - Renamed `nfc_delay_us` to `nfc_block_for_us` to better represent its actual behavior. - * - @ref nfc_pcd_reset_wait added for better precision of reset timing - * - Some unnecessary delays removed from polling routines - * - * @par 2.0.0 - 07/18/2018 - * - Use dedicated NFC timers - * - Modify handling of Early Response Errors from RF Driver - * - Remove double reset delay on card removal EMV test cases TA002, and TB002 - * - * @par 1.4.1 - 01/10/2018 - * - Version increment, refer to @ref MML_NFC_PCD_DRIVER_VER_HIST - * - * @par 1.4.0 - 09/01/2017 - * - L1 stack documentation using Doxygen - * - API function details - * - Porting file details - * - Usage and Interactions guide - * - Addition of dedicated Polling and Loop-Back Routines - * - Added support to retrieve activation responses - * - Dedicated error code for some Type B ATTRIB Responses with High INF set - * - Reworked L1 stack delays to use portable functions in RF Driver Porting File - * - * @par 1.3.1 - 06/23/2017 - * - Updated to latest MML SDK release version 3.0.0 - * - * @par 1.3.0 - 05/05/2017 - * - Support for MAX32560 EVKIT Version 3 - * - Additional changes for improved compatability with CMSIS system backend - * - * @par 1.2.0 - 03/16/2017 - * - Updates to support EMV Contactless version 2.6b - * - Added minimum retransmission time of 3ms to the following commands: - * - WUPA - * - ANTICOLLISION - * - RATS - * - WUPB - * - ATTRIB - * - Updated Copyright headers - * - Ported from Cobra SDK to new MML CMSIS SDK - * - Supporting only A2 silicon - * - * @par 1.1.0 - 10/12/2016 - * - First public release - * - Supporting only A1 silicon - * - Built as binary library for release - * - Added structure and method to get and set current analog configuration - * - Tuned for MAX32560 EVKIT Version 2 - * - * @par 1.0.0 - 09/13/2016 - * - Used in EMV L1 Certification - * - Supporting only A1 silicon - */ -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_VER_HIST */ - -/** - * @defgroup NFC_PCD_EMV_LVL1_COMMON Common Routines - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * @{ - */ - -/** - * @defgroup NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES ERROR_CODES - * - * EMV Level 1 Error Codes from library routines - * - * @{ - */ -#define ISO14443_3_ERR_SUCCESS (0x0000) /**< No Errors, Success */ -//Command error - -#define ISO14443_3_ERR_TIMEOUT (0x0001) /**< Transmit or Receive operation timeout */ -#define ISO14443_3_ERR_TRANSMISSION (0x0005) /**< Error during transmission */ - -//Flow error -#define ISO14443_3_ERR_CMD (0x0020) /**< Cmd execute error */ -#define ISO14443_3_ERR_SEQ (0x0021) /**< Flow sequence error */ - -#define ISO14443_3_ERR_PROTOCOL (0x0022) /**< Protocol error */ -#define ISO14443_3_ERR_COLLISION (0x0023) /**< Data Collision */ -#define ISO14443_3_ERR_EARLY_RESPONSE (0x0024) /**< Response from Card came too soon */ -#define ISO14443_3_ERR_NON_ISO14443_4_CARD (0x0025) /**< Non ISO14443 Card type detected */ -#define ISO14443_3_ERR_CONTAINS_HIGH_INF \ - (0x0026) /**< ATTRIB Response received with HIGH INF set (Not allowed by EMV) */ -#define ISO14443_3_ERR_ABORTED \ - (0x0027) /**< Current transaction has been aborted by application request */ - -#define ISO14443_3_ERR_OTHER (0x00ff) /**< Other, unspecified error */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES */ - -/** - * @defgroup NFC_PCD_EMV_LVL1_DRIVER_STD_VALUES STANDARD CONSTANTS - * - * EMV L1 (ISO14443) Constants - * - * @{ - */ -#define FSDI_DEFAULT_VALUE (8) /**< FSDI nominal value */ - -#define FSCI_DEFAULT_VALUE (2) /**< FSCI nominal value */ -#define FSCI_MAX_VALUE (8) /**< FSCI maximum value */ - -#define FWI_DEFAULT_VALUE (4) /**< FWI nominal value */ -#define FWI_MAX_VALUE (14) /**< FWI maximum value */ - -#define SFGI_DEFAULT_VALUE (0) /**< SFGI nominal value */ -#define SFGI_MAX_VALUE (14) /**< SFGI maximum value */ - -#define WAKEUP_NOTRETRY 0 /**< value for NO retry on Wake */ -#define WAKEUP_DORETRY 1 /**< value for retry on Wake */ - -#define TPDELAY_US 5100 /**< TP (Pause) time in microseconds, 5.1~10ms per spec */ -#define TPDELAY_IN_FC US2FC(TPDELAY_US) /**< TP (Pause) Delay of 5.1ms per spec in fc */ - -#define TRESET_US 5100 /**< Reset time in microseconds, 5.1~10ms per spec */ - -#define TMIN_RETRANSMISSION_US 3000 /**< New for EMV 2.6b Minimum retransmission time FDT in us */ -#define TMIN_RETRANSMISSION_FC \ - US2FC(TMIN_RETRANSMISSION_US) /**< New for EMV 2.6b Minimum retransmission time FDT in fc */ - -#define PROTOCOL_DISREGARD_BITS 0xF1 /**< Mask off bits b4-b2 per 6.3.2.10 */ - -// time unit all fc -#define ISO14443_FWT_MAX 67108864UL /**< maximum FWT = 4096 x 2^14 */ -#define ISO14443_FWT_DEFAULT \ - 114688 /**< nominal FWT in 'fc' units =FWTmax+ AFWT = 4096 * 2^4 + 49152 = 114688 */ -#define ISO14443_FWT_DELTA 49152 /**< delta FWT, use for attrib & apdu */ - -#define ISO14443_FDT_A_EXTRA_MARGIN \ - 16 /**< Provide a bit of allowed margin on reception timing. Relaxes early limit, and timeout. Units are fc */ -#define ISO14443_FDT_A_PICC_MIN \ - (1172) /**< Time when PICC is to respond during activation to PCD command. EMV spec 4.21. @note we don't care about last bit value, timestamp happens the same regardless. */ -#define ISO14443_FDT_A_EARLY_LIMIT \ - (ISO14443_FDT_A_PICC_MIN - \ - 128) /**< Defines the Deaf Time before which any response from PICC is ignored. EMV spec 4.8.1.3 as FDTa,picc,min - 128fc */ -#define ISO14443_FWT_A_ACT \ - (ISO14443_FDT_A_PICC_MIN + 1 + \ - 6) /**< FWT max during activation = FDTa,picc,min + 1fc + .4us (5.424fc, round up to 6) */ - -#define ISO14443_FDT_B_EXTRA_MARGIN \ - 0 /**< Provide a bit of allowed margin on reception timing. Relaxes early limit, and timeout. Units are fc */ -#define ISO14443_FDT_B_PICC_MIN \ - (1008 + \ - 1264) /**< FDTmin Type B, defines the deaf time: TR0min (1008fc) + TR1min (1264fc) => 1008+1264 = 2272 */ -#define ISO14443_FWT_ATQB (7680) /**< typeB FWT */ - -// TODO(ADI): Probably need a new include file for vicinity maybe ISO as well -// TODO(ADI): timing values for vicinity need more work as well -#define ISO15693_FDT_VICC_MIN (3320) /**< FDTmin Type V, */ -#define ISO15693_FWT_ACTIVATION (8800) /**< FWTmax Type V, */ - -#define ISO14443_FWT_ACTIVATION (71680) /**< typeA FWT during activation */ -#define ISO14443_FDT_MIN \ - (6780) /**< minimum FDT in 'fc' units, (frame delay time) between PICC and pcd new command */ - -// This is added to long timings in excess of 100,000 -#define CRYSTAL_PPM_MARGIN_MULTIPLIER 20 -#define CRYSTAL_PPM_MARGIN_DIVISOR 1000000 - -#define ISO14443_FDT_MIN_US \ - FC2US( \ - ISO14443_FDT_MIN) /**< minimum FDT in microseconds, (frame delay time) between PICC and pcd new command */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_DRIVER_STD_VALUES */ - -/* Defines *********************************************************************/ -#define MAX_BUFFER_LEN 511 /**< Max length of @ref gcommonbuffer */ -extern uint8_t gcommonbuffer[]; /**< Buffer used by all internal routines */ -/** - * @brief GetCommonBuffer - * Get a pointer to a shared common buffer of MAX_BUFFER_LEN bytes - */ -/* Macros *********************************************************************/ -#define GetCommonBuffer() gcommonbuffer - -/* Structures *****************************************************************/ -typedef struct { - uint8_t Pro_Type; - uint8_t FSCI; - uint8_t FWI; - uint8_t SFGI; - - uint8_t NAD_support; - uint8_t CID_support; -} ATSConfig_t; - -/** - * Abort transaction callback function definition - * - * @note The abort function should return 1 (TRUE) if abort is desired - */ -typedef int32_t (*abort_check_callback_t)(void); - -/** - * @brief Setup abort callback - * - * Sets the callback function used to determine if the application needs to - * abort the current transaction. This is required for some Level 2 test cases - * to ensure responsiveness for user access. - * - * In the case that the call back returns 1 (TRUE), the current polling will - * stop and return @ref ISO14443_3_ERR_ABORTED. - * - * @param[in] abort_callback Function to call for abort check - * - * @note The abort function should return 1 (TRUE) if abort is desired - */ -void set_abort_check_callback(abort_check_callback_t abort_callback); - -/** - * @brief Gets the current ATS - * - * Gets the current ATS configuration values - * - * @param[in, out] cfg - * @return pointer to ATSConfig_t structure with ATS values - */ -void get_ats(ATSConfig_t *cfg); - -/** - * @brief Set the current ATS - * - * Sets the current ATS configuration values - * - * @param[in] pro_type Protocol to use for ATS - * @param[in] fsci FSC time (integer) - * @param[in] fwi Frame wait time (integer 0-14) FWT is calculated from this value - * @param[in] sfgi SFG (integer) - * @param[in] nad 1 for NAD supported, 0 for not supported - * @param[in] cid 1 for CID supported, 0 for not supported - */ -void set_ats(uint8_t pro_type, uint8_t fsci, uint8_t fwi, uint8_t sfgi, uint8_t nad, uint8_t cid); - -/** - * @brief Yield (Delay) for X milliseconds - * - * Yield (Delay) for a specified number of milliseconds. - * - * @param yield_ms Number of milliseconds to yield before returning - * - * @note This function calls out to mml_nfc_pcd_task_sleep for improved portability - */ -void nfc_yield_ms(uint32_t yield_ms); - -/** - * @brief Set the inter-packet delay (FDTpcd) to use for the next packet - * - * Set the amount of time the RF driver should delay sending the next requested - * packet out. This defaults to @ref ISO14443_FDT_MIN - * - * @param delay Number of fc to delay before sending next packet - * - * @note This function does not actually wait. The RF driver will enforce - * the exact timing based on end of previous TX or RX as required. - */ -void nfc_set_delay_till_next_send_fc(uint32_t delay); - -/** - * @brief Block (Delay) for X microseconds - * - * Block (Delay) for a specified number of microseconds. - * - * @param block_us Number of microseconds to delay before returning - */ -void nfc_block_for_us(uint32_t block_us); - -/** - * @brief Wait for minimum duration required for EMV PCD Reset - * - * Minimum duration as of 2.6b is 5.1ms. We will task yield for 5ms, and block for another - * 100us. - */ -void nfc_pcd_reset_wait(void); - -/** - * @brief Enable EMV field - * - * Turns on the 13.56 MHz field, and performs any calibration needed to be ready to communicate - */ -void poweron_operatingfield(void); - -/** - * @brief Disables EMV field - * - * Turns off the 13.56 MHz field - */ -void poweroff_operatingfield(void); - -/** - * @brief Perform EMV Reset - * - * Perform an NFC reset action to cause PICCs to reset. - * Turns off the 13.56Mhz field, waits 5 mSec, turns the field back on and waits another 5 mSec - * - * @note The field is on and the PICC should be reset and ready to communicate after this routine returns - * @return Always returns 0 - */ -int32_t nfc_reset(void); - -/** - * @brief Dump hex data - * - * prints data in a hex format according to the debug level - * - * @param[in] dbg_level Debug level indicating level of debug output needed for this to be printed out - * @param[in] buf Buffer with data to print out - * @param[in] len Length of data to print out - * @param[in] send Binary value: 1 means data send out, 0 is incoming data - */ -void hexdump(int32_t dbg_level, uint8_t *buf, int32_t len, int32_t send); - -/** - * @brief Send and Receive EMV/NFC Data - * - * PCD will transmit a buffer and then wait for a response from the PICC - * This function handles the low level control of the NFC peripherial. - * Including: - * - Timing error checking for FDT - Frame Delay Time (EMV default values used) - * - Timing error checking for FWT - Frame Wait Time (value supplied by caller) - * - Communications errors - * - Loading and Unloading the FIFO - * - AFE configuration for card type (A or B) - * - Frame setup for NFC uart - * - * @param[in] protocol @ref NFC_PCD_ISO_EMV_PROTOCOL_TYPES - * @param[in] frametype @ref NFC_PCD_ISO_EMV_FRAMETYPES - * @param[in] tx_buf Pointer to buffer with data to transmit (up to 511 bytes) - * @param[in] tx_len Length of data (number of bytes) to transmit - * @param[in, out] rx_buf Pointer to buffer to put receive data in (up to 511 bytes including CRC) - * @param[in, out] rx_len Length of received data - * @param[in] timeout Timeout in 1/Fc clocks before returning timeout error - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Transmit and receive are successful - * @retval #ISO14443_3_ERR_TIMEOUT Timeout occurred while waiting on receive data - * @retval #ISO14443_3_ERR_TRANSMISSION Transmission protocol error - * @retval #ISO14443_3_ERR_COLLISION Data collision error - * @retval #ISO14443_3_ERR_EARLY_RESPONSE PICC responded too early - * @retval #ISO14443_3_ERR_OTHER All other types of error - */ -int32_t nfc_pcd_transceive(uint8_t protocol, uint8_t frametype, uint8_t *tx_buf, uint32_t tx_len, - uint8_t *rx_buf, uint32_t *rx_len, uint32_t timeout); -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_STACK */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_COMMON */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3_COMMON_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3a_cmd.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3a_cmd.h deleted file mode 100644 index cc9d3363202..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3a_cmd.h +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_CMD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_CMD_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** @defgroup NFC_PCD_EMV_LVL1_PART3AC ISO14443-3A Low Level Commands - * - * @ingroup NFC_PCD_EMV_LVL1_PART3AF - * - * Implements basic Type A Low Level commands used primarily for Activation. Typically - * the routines detailed in @ref NFC_PCD_EMV_LVL1_PART3AF are used during activate. These - * low level commands can be called directly for Non EMV applications. - * - * @{ - */ - -#include - -/** - * @defgroup NFC_PCD_EMV_LVL1_TYPEA_INIT_DEFINES Type A Initialization Defines - * - * EMV Level 1 Type A defines for initialization and anticollision - * - * @{ - */ -#define ISO_14443_3A_CMD_WUPA 0x52 /**< WUPA - Wake A command */ -#define ISO_14443_3A_CMD_SEQA 0x26 /**< SEQA - SEQ A command */ - -#define ISO_14443_3A_CMD_ANTICOLL_SEL_L1 0x93 /**< ANTI-collision Level 1 */ -#define ISO_14443_3A_CMD_ANTICOLL_SEL_L2 0x95 /**< ANTI-collision Level 2 */ -#define ISO_14443_3A_CMD_ANTICOLL_SEL_L3 0x97 /**< ANTI-collision Level 3 */ - -#define ISO_14443_3A_CMD_SELECT_SEL_L1 0x93 /**< ANTI-collision Select Level 1 */ -#define ISO_14443_3A_CMD_SELECT_SEL_L2 0x95 /**< ANTI-collision Select Level 2 */ -#define ISO_14443_3A_CMD_SELECT_SEL_L3 0x97 /**< ANTI-collision Select Level 3 */ - -#define ATQA_LEN 2 /**< Length of ATQA command */ -#define UID_EACH_LEN 5 /**< UID Length, includes bcc and ct value */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_TYPEA_ENUM_DEFINES */ - -/** - * @brief Send WUPA - * - * Send a WUPA command to the PICC and listen for a REQA from the PICC - * - * @param[in] req The one byte WUPA command to send - * @param[out] atq The response received from the PICC (should be ATQA) if successful - * @param[in] doretry Binary value, 1=do up to 3 tries, 0=no retries - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received ATQA - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_req_wupa(uint8_t req, uint8_t *atq, uint8_t doretry); - -/** - * @brief Send 1 step of the anti-collision - * - * Send one step of the anti-collision protocol, look for response from PICC - * - * Retry a max of 3 times if response timesout - * - * @param[in] sel The first byte of the anti-collision step (typically 0x93 for first step, 0x95 for second, or 0x97 for third) - * @note 0x20 is appended to sel by this routine - * @param[in, out] uid The UID response received from the PICC if successful - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received UID - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_anticoll(uint8_t sel, uint8_t *uid); - -/** - * @brief Attempt to Select the PICC - * - * Send the Select command to the PICC, look for response from PICC - * - * Retry a max of 3 times if response timesout - * - * @param[in] sel The first byte of the anti-collision step (typically 0x93 for first step, 0x95 for second, or 0x97 for third) - * @note 0x70 and the UID received in previous anti-collision steps are appended to sel by this routine - * @param[in] uid This is appended to the select command, use the UID parameter returned by @ref iso_14443_3a_cmd_anticoll - * @param[in, out] sak Response from the PICC if successful (should be a SAK response) - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received SAK - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_select(uint8_t sel, uint8_t *uid, uint8_t *sak); - -/** - * @brief Send Request for ATS - * - * Send a RATS command to the PICC and receive the ATS response - * This routine builds the RATS command using the FSDI and CID supplied by the calling routine - * - * Retry a max of 3 times if response timesout or responds early - * - * @param[in] fsdi fsdi used in the RATS command - * @param[in] cid cid used in the RATS command - * @param[in, out] ats Pointer to the ATS data received from the PICC - * @param[in, out] ats_len Number of bytes in the ATS data received from the PICC - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received ATS - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_EARLY_RESPONSE Response received too soon after tranmission by the PCD - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_rats(uint8_t fsdi, uint8_t cid, uint8_t *ats, uint32_t *ats_len); - -/** - * @brief Halt PICC - * - * Sends the HALT command to the PICC, and looks for a response from the PICC - * The PICC should NOT send a response - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS (No response seen from PICC within timeout) - * @retval #ISO14443_3_ERR_OTHER Failure of any kind - */ -int32_t iso_14443_3a_cmd_halt(void); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3A */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_CMD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3a_flow.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3a_flow.h deleted file mode 100644 index 79297e929bf..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3a_flow.h +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_FLOW_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_FLOW_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART3AF ISO14443-3A Activation - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * Implements Type A Activation proceedures - * - * @see @ref NFC_PCD_EMV_LVL1_PART3AC - * - * @{ - */ - -/** - * Get the last received SAK - * - Can be used to decipher MIFARE card type - * - * @return Last received SAK value - */ -uint8_t get_last_sak(); - -/** - * @brief Check for presence of Type A PICC (Card) - * - * PCD will execute ISO14443-3A POLLING procedure with PICC. - * - * PCD will send WUPA command and if there is a response, send HALT command - * otherwise return ISO_14443_ERR_TIMEOUT. - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card found and HALT sent - * @retval #ISO14443_3_ERR_TIMEOUT No card found - */ -int32_t iso_14443_3a_polling(); - -/** - * @brief Check for presence of Type A PICC (Card) and capture response - * - * PCD will execute ISO14443-3A polling procedure with PICC. - * - * Copies raw ATQA response into atqa_resp. - * - * @param atqa_resp Buffer to save polling response: ATQA No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQA has a - * length of 2 bytes. - * - * @param atqa_resp_len Number of bytes written to atqa_resp - * - * @note If atqa_resp is NULL, no data will be saved - * - * @return The following or other @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card found and HALT sent - * @retval #ISO14443_3_ERR_TIMEOUT No card found - */ -int32_t iso_14443_3a_polling_response(uint8_t *atqa_resp, int32_t *atqa_resp_len); - -/** - * @brief Perform required anticollision checks - * - * PCD will execute ISO14443-3A COLLISON DETECTION procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.3.2 Type A Collision Detection". - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * - * @note Do not call this function without first calling iso_14443_3a_polling and getting a #ISO14443_3_ERR_SUCCESS indicating at least one Type A card found - */ -int32_t iso_14443_3a_collision_detect(); - -/** - * @brief Perform required anticollision checks and capture response - * - * PCD will execute ISO14443-3A collision detection procedure with PICC. - * - * Implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.3.2 Type A Collision Detection". - * - * - Copy raw ATQA response into atqa_resp - * - Copy raw UID responses into uid_resp - * - * @param atqa_resp Buffer to save polling response: ATQA. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQA has a - * length of 2 bytes. - * - * @param atqa_resp_len Number of bytes written to atqa_resp - * - * @param uid_resp Buffer to save anticollision response: UID. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, UID has a - * max length of 15 bytes. - * - * @param uid_resp_len Number of bytes written to uid_resp - * - * @param sak_resp SAK received from select command Per EMV Book D, SAK is one byte - * - * @note If atqa_resp, uid_resp, or sak_resp is NULL, no data will be saved respectively - * - * @return The following or other @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * - * @note Do not call this function without first calling iso_14443_3a_polling and getting a #ISO14443_3_ERR_SUCCESS indicating at least one Type A card found - */ -int32_t iso_14443_3a_collision_detect_response(uint8_t *atqa_resp, int32_t *atqa_resp_len, - uint8_t *uid_resp, int32_t *uid_resp_len, - uint8_t *sak_resp); - -/** - * @brief Activate a Type A PICC (Card) - * - * PCD will execute ISO14443-3A ACTIVATION procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.4.1 Type A ACTIVATION". - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * - * @note Only use this function after a successful call to iso_14443_3a_collision_detect - */ -int32_t iso_14443_3a_active(); - -/** - * @brief Activate a Type A PICC (Card) and capture response - * - * PCD will execute ISO14443-3A ACTIVATION procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.4.1 Type A ACTIVATION". - * - * - Copy raw ATS response into ats_resp - * - * @param ats_resp Buffer to save Answer To Select response. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, PICC are not - * to reply with an ATS having a length more than 20 bytes. - * - * @param ats_resp_len Number of bytes written to ats_resp - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * @note Only use this function after a successful call to iso_14443_3a_collision_detect - */ -int32_t iso_14443_3a_active_response(uint8_t *ats_resp, int32_t *ats_resp_len); - -/** - * @brief Remove a Type A PICC (Card) - * - * PCD will execute ISO14443-3A REMOVAL procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.5 Removal". - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Successful removal - */ -int32_t iso_14443_3a_remove(); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3AF */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_FLOW_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3b_cmd.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3b_cmd.h deleted file mode 100644 index ad70a6c03bb..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3b_cmd.h +++ /dev/null @@ -1,150 +0,0 @@ -/** - * @file - * @brief Provides ISO14443 Type B activation commands - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_CMD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_CMD_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART3BC ISO14443-3B Low Level Commands - * - * @ingroup NFC_PCD_EMV_LVL1_PART3BF - * - * Implements basic Type B Low Level commands used primarily for Activation. Typically - * the routines detailed in @ref NFC_PCD_EMV_LVL1_PART3BF are used for activation. These - * low level commands may be called directly for Non EMV applications. - * - * @{ - */ - -#include -#include "iso14443_3_common.h" - -/** - * @defgroup NFC_PCD_EMV_LVL1_TYPEB_INIT_DEFINES Type B Initialization Defines - * - * EMV Level 1 Type B defines for initialization and anticollision - * - * @{ - */ -#define PUPI_SIZE (4) /**< Length of PUPI Pseudo-Unique PICC Identifier */ - -#define ISO3B_ATQB_MINLEN 12 /**< Min allowed number of bytes in ATQB response */ -#define ISO3B_ATQB_MAXLEN 13 /**< Max allowed number of bytes in ATQB response */ - -#define ISO3B_ATQB_BYTE1 0x50 /**< ATQB byte 1 should always be this, used for error checks */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_TYPEB_ENUM_DEFINES */ - -/** - * @brief Send WUPB - * - * Creates and sends the WUPB command to the PICC and looks for a correct response - * - * @param[in] atq Pointer to the ATQB data received from the PICC if successful - * @param[in] atq_len Number of bytes in the ATQ data - * @param[in] doretry Binary value, 1=3 tries, 0=single try - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received ATQA - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3b_cmd_req_wup(uint8_t *atq, int32_t *atq_len, uint8_t doretry); - -/** - * @brief Sends ATTRIB command, and captures response - * - * Creates and sends the ATTRIB command to the PICC and looks for the correct response - * Creates the ATTRIB command starting with 0x1D, then adds 4 bytes of PUPI, then adds the 4 parameters - * and finally adds the info supplied in *inf - * - * @param[in] pupi Pointer to 4 bytes of PUPI used to create the ATTRIB command - * @param[in] para1 First of 4 parameter bytes used to create the ATTRIB command - * @param[in] para2 Second of 4 parameter bytes used to create the ATTRIB command - * @param[in] para3 Third of 4 parameter bytes used to create the ATTRIB command - * @param[in] para4 Fourth of 4 parameter bytes used to create the ATTRIB command - * @param[in] inf Pointer to INF data used to create the ATTRIB command - * @param[in] inf_len Number of bytes in the INF data to be used - * @param[in] timeout Timeout for receiving the response from the PICC - * @param[in,out] attrib_resp Buffer to save attrib response. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, - * ATTRIB_RESP has a basic length of 1 byte, but may optionally contain - * a higher layer response of indeterminate length. For maximal saftey - * a buffer of 256 bytes is recommended. - * @param[in,out] attrib_resp_len Number of bytes written to attrib_resp - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_PROTOCOL Incorrect response from PICC - * @retval #ISO14443_3_ERR_COLLISION - * @retval #ISO14443_3_ERR_CONTAINS_HIGH_INF ATTRIB response received containing HIGH INF data - * @retval #ISO14443_3_ERR_TIMEOUT No response seen within timeout - * @retval #ISO14443_3_ERR_EARLY_RESPONSE Response from PICC comes too soon after the ATTRIB command is sent - */ -int32_t iso_14443_3b_cmd_attrib(uint8_t *pupi, uint8_t para1, uint8_t para2, uint8_t para3, - uint8_t para4, uint8_t *inf, uint32_t *inf_len, uint32_t timeout, - uint8_t *attrib_resp, int32_t *attrib_resp_len); - -/** - * @brief Halt PICC - * - * Sends the HALT command to the PICC, and looks for a response from the PICC - * The response from the PICC should be 0x00 followed by 2 bytes of CRC_B - * This routine builds the HALT B command using the PUPI supplied by the calling routine, - * it appends the PUPI to 0x50 to create the HALT B command - * - * @param[in] pupi Pointer to 4 bytes of PUPI to append to create the HALT B command - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_PROTOCOL Incorrect response from PICC - */ -int32_t iso_14443_3b_cmd_halt(uint8_t *pupi); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3BC */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_CMD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3b_flow.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3b_flow.h deleted file mode 100644 index 634d8eb7c6d..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_3b_flow.h +++ /dev/null @@ -1,178 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_FLOW_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_FLOW_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART3BF ISO14443-3B Activation - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * Implements Type B Activation procedures - * - * @see @ref NFC_PCD_EMV_LVL1_PART3BC - * - * @{ - */ - -/** - * @brief Check for presence of Type B PICC (Card) - * - * PCD will execute ISO14443-3B polling procedure with PICC - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card is found - * @retval #ISO14443_3_ERR_TIMEOUT No card detected - */ -int32_t iso_14443_3b_polling(void); - -/** - * @brief Check for presence of Type B PICC (Card) and capture response - * - * PCD will execute ISO14443-3B polling procedure with PICC - * - * Copy raw ATQB response into atqb_resp - * - * @param atqb_resp Buffer to save polling response: ATQB No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQB has a - * max length of 13 bytes without CRCB. - * @param atqb_resp_len Number of bytes written to atqb - * - * @note If atqb_resp is NULL, no data will be saved - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card is found - * @retval #ISO14443_3_ERR_TIMEOUT No card detected - */ -int32_t iso_14443_3b_polling_response(uint8_t *atqb_resp, int32_t *atqb_resp_len); - -/** - * @brief Perform required anticollision checks - * - * PCD will execute ISO14443-3B collision detection procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.3.3 Type B Collision Detection" - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - */ -int32_t iso_14443_3b_collision_detect(void); - -/** - * @brief Perform required anticollision checks and capture response - * - * PCD will execute ISO14443-3B collision detection procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.3.3 Type B Collision Detection" - * - * - Copy raw ATQB response into atqb_resp - * - * @param atqb_resp Buffer to save polling response: ATQB No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQB has a - * max length of 13 bytes without CRCB. - * @param atqb_resp_len Number of bytes written to atqb - * - * @note If atqb_resp is NULL, no data will be saved - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - */ -int32_t iso_14443_3b_collision_detect_response(uint8_t *atqb_resp, int32_t *atqb_resp_len); - -/** - * @brief Activate a Type B PICC (Card) - * - * PCD will execute ISO14443-3B activation procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.4.2 Type B Activation" - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * @note Only use this function after a successful call to iso_14443_3b_collision_detect - */ -int32_t iso_14443_3b_active(void); - -/** - * @brief Activate a Type B PICC (Card) and capture response - * - * - Copy raw ATTRIB response into attrib_resp - * - * @param attrib_resp Buffer to save attrib response. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, - * ATTRIB_RESP has a basic length of 1 byte, but may optionally contain - * a higher layer response of indeterminate length. For maximal safety - * a buffer of 256 bytes is recommended. - * @param attrib_resp_len Number of bytes written to attrib_resp - * - * PCD will execute ISO14443-3B activation procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.4.2 Type B Activation" - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_CONTAINS_HIGH_INF ATTRIB response received containing HIGH INF data - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * @note Only use this function after a successful call to iso_14443_3b_collision_detect - */ -int32_t iso_14443_3b_active_response(uint8_t *attrib_resp, int32_t *attrib_resp_len); - -/** - * @brief Remove a Type B PICC (Card) - * - * PCD will execute ISO14443-3B removal procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.5 Removal" for Type B - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Successful removal - */ -int32_t iso_14443_3b_remove(void); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3BF */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_FLOW_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_4_transitive.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_4_transitive.h deleted file mode 100644 index ca346ad4dd0..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/iso14443_4_transitive.h +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_4_TRANSITIVE_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_4_TRANSITIVE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART4 ISO14443-4 APDU Transport - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * @ref SendAPDU is the primary interface between EMV Level 2 and Level 1. - * - * @{ - */ - -/** - * @brief Reset block number - * - * Resets the block number for block transmission to 0 - */ -void seqnuminit(void); - -/** - * @brief Sends and Receives an APDU - * - * Primary interface to EMV Level 2 Stack - * - * Transmit and Receive APDU to and from a PICC (Card). - * Implements [EMV Book D: Contactless Communication Protocol](https://www.emvco.com/specifications.aspx?id=21) - * chapter "10 Half-Duplex Block Transmission Protocol" - * - * @param[in] capdu data buffer to send to Card (up to 256 bytes) - * @param[in] capdu_len number of bytes in buffer to send to Card - * @param[in, out] rapdu data buffer received from Card (up to 256 bytes) - * @param[in, out] rapdu_len number of bytes in buffer from Card - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS for a successful transmission or other error code for a failure - * @retval #ISO14443_3_ERR_PROTOCOL for a protocol error. - */ -int32_t SendAPDU(uint8_t *capdu, int32_t capdu_len, uint8_t *rapdu, int32_t *rapdu_len); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART4 */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_ISO14443_4_TRANSITIVE_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/logging.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/logging.h deleted file mode 100644 index 933817a32e8..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/nfc/emv_l1_stack/logging.h +++ /dev/null @@ -1,134 +0,0 @@ -/** - * @file - * @brief Provides logging facilaties for the NFC Contactless PCD L1 Stack - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_LOGGING_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_LOGGING_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING Logging - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * Provides routines to facilitate required DTE logging, and for Stack/PICC interaction - * debugging. - * - * @{ - */ - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS Logging Levels - * - * Available levels for EMV Contactless L1 Stack logging. - * - * @ref g_logging_level can be changed on the fly to any of these values for debugging - * - * @note Use of @ref DBG_LVL_FDB will delay some operations long enough to fail certain Level 1 Digital test cases - * - * @{ - */ -#define DBG_LVL_NON 0 /**< No Stack logging or debugging, quite mode used for applications */ -#define DBG_LVL_LOG 1 /**< Basic logging, this level is used to comply with DTE requirements */ -#define DBG_LVL_ERR 2 /**< Same as @ref DBG_LVL_LOG plus various errors encountered */ -#define DBG_LVL_WRN 3 /**< Same as @ref DBG_LVL_ERR plus various warning encountered */ -#define DBG_LVL_INF \ - 4 /**< Same as @ref DBG_LVL_WRN plus useful details about the flow in the stack */ -/**< including uid level, uid, sfgi, and other interface details */ -#define DBG_LVL_DBG \ - 5 /**< Same as @ref DBG_LVL_INF plus TX buffer contents, and RF Driver response status */ -#define DBG_LVL_FDB 6 /**< Same as @ref DBG_LVL_DBG plus RX buffer contents */ - -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS */ - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS Logging Macros - * - * Convenience functions to assist with stack logging, these can be used similar to printf - * - * @note Use of @ref full_debug will delay some operations long enough to fail certain Level 1 Digital test cases - * - * @{ - */ -#define logging(x...) \ - do_log(DBG_LVL_LOG, x) /**< Basic logging, this level is used to comply with DTE requirements */ -#define error(x...) \ - do_log(DBG_LVL_ERR, x) /**< Same as @ref DBG_LVL_LOG plus various errors encountered */ -#define warning(x...) \ - do_log(DBG_LVL_WRN, x) /**< Same as @ref DBG_LVL_ERR plus various warning encountered */ -#define info(x...) \ - do_log(DBG_LVL_INF, \ - x) /**< Same as @ref DBG_LVL_WRN plus useful details about the flow in the */ -/**< stack including uid level, uid, sfgi, and other interface details */ -#define debug(x...) \ - do_log( \ - DBG_LVL_DBG, \ - x) /**< Same as @ref DBG_LVL_INF plus TX buffer contents, and RF Driver response status */ -#define full_debug(x...) \ - do_log(DBG_LVL_FDB, x) /**< Same as @ref DBG_LVL_DBG plus RX buffer contents */ -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS */ - -/** - * @brief Controls the logging level for the L1 Stack - * - * Stack Logging Level - * - * Defaults to output logging level messages only - */ -extern int32_t g_logging_level; - -/** - * @brief Conditionally print some logging information - * - * This function is called by @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS to implement multilevel debugging messages - * - * @param[in] req_level Level for this logging message, use one of @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS - * @param[in] ... printf style formating string and variables to print etc. - */ -void do_log(int32_t req_level, ...); - -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_NFC_EMV_L1_STACK_LOGGING_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/state.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/state.h deleted file mode 100644 index f69e045fe5f..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/state.h +++ /dev/null @@ -1,79 +0,0 @@ -/* -******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_STATE_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_STATE_H_ - -/********************************* INCLUDES *************************/ -#include "MAX32xxx.h" - -#include "bitmap.h" -#include "keypad.h" - -/********************************* DEFINES *************************/ - -/********************************* TYPE DEF ************************/ -typedef int (*Init_func)(void); -typedef int (*Keypad_process)(unsigned int key); -typedef int (*Time_Tick)(void); - -typedef struct _State { - char *name; - Init_func init; - Keypad_process prcss_key; - Time_Tick tick; - unsigned int timeout; -} State; - -/********************************* VARIABLES *************************/ -extern int xAnimLock; - -/********************************** FUNCTIONS **************************/ -void state_init(void); -State *state_get_current(void); -int state_set_current(State *state); - -// states -State *get_home_state(void); -State *get_smartcard_state(void); -State *get_msr_state(void); -State *get_keypad_state(void); -State *get_nfc_state(void); -State *get_slide_state(void); -State *get_info_state(void); -State *get_idle_state(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_STATE_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_logo_animation.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_logo_animation.h deleted file mode 100644 index 5523f8d2d83..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_logo_animation.h +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_LOGO_ANIMATION_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_LOGO_ANIMATION_H_ - -/***************************** DEFINES *********************************/ - -/***************************** FUNCTIONS *********************************/ -void logo_animation_start(void); -void logo_animation_stop(void); -void logo_animation_tick(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_LOGO_ANIMATION_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_msr.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_msr.h deleted file mode 100644 index 572a42b8d98..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_msr.h +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_MSR_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_MSR_H_ - -/********************************* DEFINES *************************/ -/* Number of tracks on magstripe */ -#define MCR_NUM_TRACKS 3 - -/* Maximum number of bits on a 3.375 inch, 210 bpi magstripe */ -#define MCR_MAX_RAW_LEN_BITS (3375 * 210 / 1000) -/* Maximum number of characters decoded from any track */ -#define MCR_MAX_DEC_LEN (MCR_MAX_RAW_LEN_BITS / 5) - -/* Swipe direction: Forward */ -#define MCR_FORWARD 0 -/* Swipe direction: Reverse */ -#define MCR_REVERSE 1 - -/* Errors generated by decoding functions */ -#define MCR_ERR_OK 0x00 /// No error -#define MCR_ERR_BAD_LEN 0x01 /// invalid length parameter -#define MCR_ERR_START_SEN 0x02 /// start sentinel was not found -#define MCR_ERR_END_SEN 0x04 /// end sentinel was not found -#define MCR_ERR_OUTLIER 0x08 /// invalid sample value -#define MCR_ERR_PARAM 0x10 /// invalid parameter -#define MCR_ERR_LRC 0x40 /// invalid LRC (LRC != 0) -#define MCR_ERR_PARITY 0x80 /// parity error - -/* ADC errors */ -#define ADCERR_OVERRUN (1 << 0) -#define ADCERR_SHIFT (1 << 1) -#define ADCERR_INCOMPLETE (1 << 2) - -/* swipe termination exit code */ -#define GETSWIPE_BUSY (0x00) -#define GETSWIPE_OK (0x01) -#define GETSWIPE_ADCERR (0x02) -#define GETSWIPE_TIMO (0x03) - -/***************************** TYPE DEF *********************************/ -/* Structure to contain result of a track decode */ -typedef struct { - uint8_t error_code; /**< Error code value */ - uint8_t parity_errs; /**< Number of characters with parity errors */ - uint8_t lrc; /**< LRC check value. A value of '0' indicates a */ - /**< successful LRC check. Any other value should be */ - /**< considered a failure. */ - uint8_t direction; /**< Swipe direction determined from decode */ - uint16_t len; /**< Number or decoded characters. This does not include */ - /**< the sentinels or the LRC. */ - uint16_t speed; /**< Approximate swipe rate, LSB = 0.1 in/sec */ - uint8_t data[MCR_MAX_DEC_LEN]; /**< The decoded data */ -} mcr_decoded_track_t; - -/***************************** FUNCTIONS *********************************/ -int msr_init(void); -void msr_start(void); -void msr_stop(void); -int msr_tick(char *msg, int *msg_len); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_MSR_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_nfc.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_nfc.h deleted file mode 100644 index 31867d4218d..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_nfc.h +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_NFC_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_NFC_H_ - -/***************************** DEFINES *********************************/ - -/***************************** FUNCTIONS *********************************/ -int nfc_init(void); -int nfc_tick(char *msg, int *msg_len); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_NFC_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_smartcard.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_smartcard.h deleted file mode 100644 index 157c8500ac5..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/task_smartcard.h +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_SMARTCARD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_SMARTCARD_H_ - -#include "smartcard_api.h" - -/******************************************************************************/ -int sc_init(void); -void sc_set_afe_intterrupt(unsigned int status); -IccReturn_t sc_get_card_status(void); -int sc_read_atr(char *msg, int *msg_len); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_TASK_SMARTCARD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/utils.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/include/utils.h deleted file mode 100644 index d9e279ef7f9..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/include/utils.h +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_UTILS_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_UTILS_H_ - -/***************************** DEFINES *********************************/ -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) - -/***************************** TYPE DEF *********************************/ -typedef void (*TimerCb)(void); - -/***************************** FUNCTIONS *********************************/ -unsigned int utils_get_time_ms(void); -unsigned int utils_get_time_tick(void); -void utils_delay_ms(unsigned int ms); -void utils_hex2char(char chr, char *msg); - -// Timer functions -void timer_init(TimerCb cb); -void timer_stop(void); -void timer_start(unsigned int to); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_INCLUDE_UTILS_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/main.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/main.c deleted file mode 100644 index 73b37d14c07..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/main.c +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief MAX32572 Bare-metal Demo Example! - * - * @details - */ - -#include -#include - -#include "MAX32xxx.h" -#include "task_smartcard.h" -#include "task_nfc.h" -#include "task_msr.h" -#include "task_logo_animation.h" - -#include "state.h" -#include "utils.h" - -/********************************* VARIABLES *************************/ -static volatile unsigned int timeout_status = 0; - -/****************************** STATIC FUNCTIONS **************************/ -static void timeout_cb(void) -{ - timeout_status = 1; -} - -static int system_init(void) -{ - MXC_RTC_Init(0, 0); - MXC_RTC_Start(); - -#ifndef MN_EvKit_V1 - keypad_init(); - - nfc_init(); - - msr_init(); -#endif - - sc_init(); - - MXC_TFT_Init(); - - MXC_TS_Init(); - MXC_TS_Start(); - - timer_init(timeout_cb); - - return 0; -} - -/*****************************************************************************/ -int main(void) -{ - int ret = 0; - State *state = NULL; - int key; - unsigned int timeout = 0; - // cumulative time in idle condition, no any event. - unsigned int total_idle_time = 0; - // In idle after this time state will go to screen saver mode - unsigned int max_idle_time = 15000; - - printf("\n************************** MAX32572 Demo Example **************************\n\n"); - printf("This example interact with user\n"); - printf( - "Depend on the user selection on TFT display, some functionality of EvKit can be tested\n"); - printf("Please follow instruction on TFT Display\n"); - printf("Note:\n" - "\tMSR: VBAT_SEL need to be connected to 3.3V, VDD_MSR need to be connected\n" - "\tSmartCard can be configured to 5V mode (Class A) or 3V mode (Class B),\n" - "\t To configure 5V mode:\n" - "\t 1- On EvKit connect SC_PWR_SEL jumper to 5V\n" - "\t 2- In demo_config_h file update SMARTCARD_EXT_AFE_Voltage to 5V\n" - "\t 3- Rebuild project and load it\n" - "\t To configure 3V mode:\n" - "\t 1- On EvKit connect SC_PWR_SEL jumper to 3V\n" - "\t 2- In demo_config_h file update SMARTCARD_EXT_AFE_Voltage to 3V\n" - "\t 3- Rebuild project and load it\n"); - - system_init(); - state_init(); - - /* Infinite loop */ - while (1) { - if (state != state_get_current()) { - state = state_get_current(); - - timeout = state->timeout; - if (timeout == 0) { - timeout = 1000; // 1 sec default timeout - } - - timeout_status = 0; - timer_start(timeout); - } - -#ifndef MN_EvKit_V1 - // check keyboard key - key = keypad_getkey(); - if (key > 0) { - state->prcss_key(key); - total_idle_time = 0; - continue; - } -#endif - - // check touch screen key - key = MXC_TS_GetKey(); - if (key > 0) { - state->prcss_key(key); - total_idle_time = 0; - continue; - } - - /* - * check state timeout status - */ - if (timeout_status) { - if (state->tick) { - ret = state->tick(); - if (ret == 0) { // means tick function is used, do not switch idle state - total_idle_time = 0; - } - } - - // check total idle time - total_idle_time += timeout; - if (total_idle_time >= max_idle_time) { - state_set_current(get_idle_state()); - total_idle_time = 0; - } - - // restart timeout - timeout_status = 0; - timer_start(timeout); - } - - /* - * logo animation - */ - logo_animation_tick(); - } - - return ret; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/all_imgs.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/all_imgs.c deleted file mode 100644 index 28d114e1fc4..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/all_imgs.c +++ /dev/null @@ -1,370503 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".bin_storage_img"))) __attribute__((__used__)) -const unsigned char imgs_arr[] = { - /* - Header - */ - 0x18, - 0x00, - 0x00, - 0x00, - 0x31, - 0x18, - 0x00, - 0x00, - 0xB2, - 0x1C, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x6B, - 0x00, - 0x00, - 0x00, - - /* - Palette - */ - 0x06, - 0x31, - 0x00, - 0x00, - 0x00, - 0x31, - 0x04, - 0x00, - 0x00, - 0x31, - 0x08, - 0x00, - 0x00, - 0x31, - 0x0C, - 0x00, - 0x00, - 0x31, - 0x10, - 0x00, - 0x00, - 0x31, - 0x14, - 0x00, - 0x00, - 0x34, - 0x35, - 0x3A, - 0x00, - 0x49, - 0x4B, - 0x4A, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x39, - 0x3A, - 0x3E, - 0x00, - 0x35, - 0x36, - 0x3B, - 0x00, - 0x43, - 0x46, - 0x44, - 0x00, - 0x3D, - 0x3E, - 0x43, - 0x00, - 0x46, - 0x47, - 0x4C, - 0x00, - 0x80, - 0x8A, - 0x37, - 0x00, - 0x9C, - 0xAB, - 0x31, - 0x00, - 0x3A, - 0x3C, - 0x40, - 0x00, - 0x86, - 0x92, - 0x32, - 0x00, - 0x90, - 0x9E, - 0x31, - 0x00, - 0x41, - 0x42, - 0x47, - 0x00, - 0x84, - 0x8F, - 0x3C, - 0x00, - 0x9E, - 0xB4, - 0x35, - 0x00, - 0x5D, - 0x5F, - 0x46, - 0x00, - 0x8F, - 0x9C, - 0x2F, - 0x00, - 0xF0, - 0xF3, - 0xF1, - 0x00, - 0x4A, - 0x4B, - 0x50, - 0x00, - 0xA0, - 0xA1, - 0xA7, - 0x00, - 0x64, - 0x65, - 0x6A, - 0x00, - 0x36, - 0x37, - 0x3B, - 0x00, - 0x44, - 0x45, - 0x4A, - 0x00, - 0x52, - 0x53, - 0x58, - 0x00, - 0x72, - 0x73, - 0x78, - 0x00, - 0x39, - 0x3C, - 0x3A, - 0x00, - 0x4A, - 0x4D, - 0x4B, - 0x00, - 0xB2, - 0xB3, - 0xB9, - 0x00, - 0xF6, - 0xFA, - 0xF8, - 0x00, - 0xFA, - 0xFD, - 0xFB, - 0x00, - 0x38, - 0x3A, - 0x39, - 0x00, - 0x4D, - 0x4E, - 0x53, - 0x00, - 0xAF, - 0xB0, - 0xB6, - 0x00, - 0x94, - 0x96, - 0x9B, - 0x00, - 0xD7, - 0xDB, - 0xD9, - 0x00, - 0xB8, - 0xB9, - 0xBF, - 0x00, - 0x7F, - 0x81, - 0x86, - 0x00, - 0x60, - 0x61, - 0x66, - 0x00, - 0xCA, - 0xCE, - 0xCB, - 0x00, - 0x9F, - 0xB0, - 0x22, - 0x00, - 0x55, - 0x54, - 0x49, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0x59, - 0x5A, - 0x5F, - 0x00, - 0x56, - 0x57, - 0x5C, - 0x00, - 0x50, - 0x51, - 0x56, - 0x00, - 0x3F, - 0x40, - 0x45, - 0x00, - 0x99, - 0xA8, - 0x2D, - 0x00, - 0x43, - 0x44, - 0x49, - 0x00, - 0xB8, - 0xC7, - 0x60, - 0x00, - 0xEA, - 0xED, - 0xEB, - 0x00, - 0xDF, - 0xE1, - 0xE6, - 0x00, - 0xD1, - 0xD2, - 0xD8, - 0x00, - 0x5D, - 0x5E, - 0x63, - 0x00, - 0x45, - 0x46, - 0x4B, - 0x00, - 0xE4, - 0xE5, - 0xEB, - 0x00, - 0x76, - 0x78, - 0x7D, - 0x00, - 0xF3, - 0xF4, - 0xFA, - 0x00, - 0x4C, - 0x54, - 0x37, - 0x00, - 0x68, - 0x76, - 0x34, - 0x00, - 0xC4, - 0xD0, - 0x7F, - 0x00, - 0xB2, - 0xC1, - 0x4D, - 0x00, - 0x6D, - 0x74, - 0x40, - 0x00, - 0x58, - 0x59, - 0x5E, - 0x00, - 0xC5, - 0xC8, - 0xC6, - 0x00, - 0x6B, - 0x71, - 0x3E, - 0x00, - 0x63, - 0x70, - 0x38, - 0x00, - 0x97, - 0xA6, - 0x2A, - 0x00, - 0x99, - 0x9A, - 0x9F, - 0x00, - 0xD3, - 0xD7, - 0xD4, - 0x00, - 0xD1, - 0xDA, - 0x9B, - 0x00, - 0x5B, - 0x5C, - 0x61, - 0x00, - 0x8B, - 0x97, - 0x39, - 0x00, - 0x88, - 0x89, - 0x8E, - 0x00, - 0x8D, - 0x8F, - 0x94, - 0x00, - 0x84, - 0x97, - 0x32, - 0x00, - 0xAD, - 0xBC, - 0x47, - 0x00, - 0x7C, - 0x85, - 0x3D, - 0x00, - 0x5A, - 0x65, - 0x37, - 0x00, - 0x47, - 0x4E, - 0x39, - 0x00, - 0x7B, - 0x7C, - 0x81, - 0x00, - 0xAC, - 0xAD, - 0xB2, - 0x00, - 0xBC, - 0xBF, - 0xBD, - 0x00, - 0xA7, - 0xA8, - 0xAE, - 0x00, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x81, - 0x92, - 0x3A, - 0x00, - 0x8F, - 0x91, - 0x96, - 0x00, - 0x85, - 0x86, - 0x8B, - 0x00, - 0x3C, - 0x40, - 0x38, - 0x00, - 0x77, - 0x81, - 0x2D, - 0x00, - 0x72, - 0x7A, - 0x3D, - 0x00, - 0xC1, - 0xC4, - 0xC2, - 0x00, - 0xC7, - 0xCA, - 0xC8, - 0x00, - 0xF8, - 0xFC, - 0xF9, - 0x00, - 0x57, - 0x58, - 0x46, - 0x00, - 0x50, - 0x58, - 0x3B, - 0x00, - 0x88, - 0x9B, - 0x37, - 0x00, - 0x69, - 0x6A, - 0x6F, - 0x00, - 0x4E, - 0x4F, - 0x54, - 0x00, - 0x95, - 0xA4, - 0x27, - 0x00, - 0xBE, - 0xBF, - 0xC4, - 0x00, - 0xED, - 0xF0, - 0xEE, - 0x00, - 0xD9, - 0xDA, - 0xE0, - 0x00, - 0xA5, - 0xA6, - 0xAC, - 0x00, - 0xF4, - 0xF8, - 0xF6, - 0x00, - 0x3F, - 0x45, - 0x36, - 0x00, - 0x7C, - 0x8D, - 0x35, - 0x00, - 0x41, - 0x47, - 0x38, - 0x00, - 0x68, - 0x6D, - 0x43, - 0x00, - 0x6C, - 0x6E, - 0x72, - 0x00, - 0x52, - 0x5C, - 0x37, - 0x00, - 0x49, - 0x50, - 0x3A, - 0x00, - 0x89, - 0x96, - 0x27, - 0x00, - 0xA3, - 0xA4, - 0xAA, - 0x00, - 0x37, - 0x39, - 0x37, - 0x00, - 0x71, - 0x7A, - 0x32, - 0x00, - 0xAA, - 0xBB, - 0x34, - 0x00, - 0x66, - 0x6B, - 0x41, - 0x00, - 0xEC, - 0xEE, - 0xF3, - 0x00, - 0x59, - 0x5A, - 0x48, - 0x00, - 0x6E, - 0x70, - 0x74, - 0x00, - 0xE5, - 0xE8, - 0xE6, - 0x00, - 0x66, - 0x68, - 0x6C, - 0x00, - 0x97, - 0xAC, - 0x3C, - 0x00, - 0x6C, - 0x73, - 0x3F, - 0x00, - 0x94, - 0xA9, - 0x38, - 0x00, - 0x9E, - 0xAD, - 0x34, - 0x00, - 0xF2, - 0xF5, - 0xF3, - 0x00, - 0xC0, - 0xC1, - 0xC6, - 0x00, - 0xE8, - 0xEA, - 0xEF, - 0x00, - 0x45, - 0x4C, - 0x36, - 0x00, - 0x75, - 0x7D, - 0x40, - 0x00, - 0x8A, - 0x96, - 0x37, - 0x00, - 0x4C, - 0x4F, - 0x4D, - 0x00, - 0x6A, - 0x6C, - 0x70, - 0x00, - 0xCB, - 0xCD, - 0xD2, - 0x00, - 0xCB, - 0xCF, - 0xCD, - 0x00, - 0x9C, - 0xB2, - 0x33, - 0x00, - 0x6F, - 0x7D, - 0x3C, - 0x00, - 0x6A, - 0x78, - 0x36, - 0x00, - 0x43, - 0x49, - 0x3A, - 0x00, - 0x61, - 0x65, - 0x43, - 0x00, - 0xDC, - 0xDF, - 0xDD, - 0x00, - 0x72, - 0x82, - 0x35, - 0x00, - 0x5A, - 0x5B, - 0x60, - 0x00, - 0xED, - 0xF0, - 0xD3, - 0x00, - 0x63, - 0x67, - 0x45, - 0x00, - 0x84, - 0x90, - 0x30, - 0x00, - 0x5D, - 0x68, - 0x3A, - 0x00, - 0x6D, - 0x7B, - 0x39, - 0x00, - 0x3A, - 0x3E, - 0x36, - 0x00, - 0x3E, - 0x42, - 0x3A, - 0x00, - 0xD8, - 0xE0, - 0xAA, - 0x00, - 0xFD, - 0xFC, - 0xEF, - 0x00, - 0xD5, - 0xD6, - 0xDC, - 0x00, - 0xDF, - 0xE2, - 0xE0, - 0x00, - 0x91, - 0xA5, - 0x33, - 0x00, - 0x8E, - 0xA2, - 0x2F, - 0x00, - 0x60, - 0x6D, - 0x35, - 0x00, - 0x75, - 0x85, - 0x38, - 0x00, - 0xBA, - 0xBC, - 0xC1, - 0x00, - 0xF0, - 0xF1, - 0xF7, - 0x00, - 0xC2, - 0xC4, - 0xC9, - 0x00, - 0xC6, - 0xC7, - 0xCD, - 0x00, - 0x78, - 0x81, - 0x3A, - 0x00, - 0xB4, - 0xB7, - 0xB5, - 0x00, - 0x55, - 0x5F, - 0x3A, - 0x00, - 0xC2, - 0xCF, - 0x74, - 0x00, - 0xC9, - 0xCC, - 0xCA, - 0x00, - 0x74, - 0x72, - 0x6D, - 0x00, - 0x53, - 0x52, - 0x47, - 0x00, - 0x74, - 0x75, - 0x7A, - 0x00, - 0xC4, - 0xC7, - 0xC5, - 0x00, - 0x7D, - 0x7E, - 0x83, - 0x00, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xCC, - 0xD7, - 0x8F, - 0x00, - 0x61, - 0x63, - 0x67, - 0x00, - 0x4F, - 0x53, - 0x4B, - 0x00, - 0xCE, - 0xD1, - 0xCF, - 0x00, - 0x7F, - 0x8A, - 0x29, - 0x00, - 0x6E, - 0x6A, - 0x6C, - 0x00, - 0xE5, - 0xE9, - 0xC4, - 0x00, - 0x58, - 0x61, - 0x3C, - 0x00, - 0x5B, - 0x5E, - 0x44, - 0x00, - 0xD0, - 0xD3, - 0xD1, - 0x00, - 0xE3, - 0xE6, - 0xE4, - 0x00, - 0x9C, - 0x9D, - 0xA2, - 0x00, - 0x73, - 0x6F, - 0x71, - 0x00, - 0x6A, - 0x72, - 0x34, - 0x00, - 0x4F, - 0x4D, - 0x49, - 0x00, - 0x97, - 0x98, - 0x9D, - 0x00, - 0x82, - 0x83, - 0x88, - 0x00, - 0x79, - 0x8A, - 0x31, - 0x00, - 0x60, - 0x63, - 0x61, - 0x00, - 0x70, - 0x6D, - 0x69, - 0x00, - 0x6F, - 0x78, - 0x30, - 0x00, - 0xE7, - 0xEA, - 0xE8, - 0x00, - 0x93, - 0xA0, - 0x34, - 0x00, - 0x86, - 0x99, - 0x34, - 0x00, - 0x65, - 0x68, - 0x66, - 0x00, - 0xF0, - 0xF1, - 0xDC, - 0x00, - 0x8C, - 0x9F, - 0x3B, - 0x00, - 0xE1, - 0xE7, - 0xB9, - 0x00, - 0x66, - 0x72, - 0x3B, - 0x00, - 0xCE, - 0xCF, - 0xD5, - 0x00, - 0xF6, - 0xF7, - 0xE1, - 0x00, - 0x95, - 0xA2, - 0x37, - 0x00, - 0x69, - 0x65, - 0x67, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x00, - 0x98, - 0xAE, - 0x2D, - 0x00, - 0x78, - 0x88, - 0x3B, - 0x00, - 0xBD, - 0xCA, - 0x6F, - 0x00, - 0xF8, - 0xF8, - 0xEA, - 0x00, - 0x4B, - 0x52, - 0x3C, - 0x00, - 0xB6, - 0xC5, - 0x5D, - 0x00, - 0xB5, - 0xB6, - 0xBB, - 0x00, - 0x8D, - 0x99, - 0x3B, - 0x00, - 0x60, - 0x66, - 0x33, - 0x00, - 0x69, - 0x6C, - 0x6A, - 0x00, - 0x3B, - 0x3E, - 0x3C, - 0x00, - 0xF6, - 0xF5, - 0xE8, - 0x00, - 0xD5, - 0xDE, - 0x9F, - 0x00, - 0x65, - 0x6B, - 0x38, - 0x00, - 0xDD, - 0xDE, - 0xE4, - 0x00, - 0xA2, - 0xB8, - 0x3B, - 0x00, - 0x50, - 0x4E, - 0x4A, - 0x00, - 0x6F, - 0x75, - 0x42, - 0x00, - 0x7E, - 0x89, - 0x35, - 0x00, - 0x9E, - 0xA0, - 0xA5, - 0x00, - 0x30, - 0x35, - 0x3C, - 0x00, - 0x5A, - 0x5D, - 0x5B, - 0x00, - 0x81, - 0x8D, - 0x2C, - 0x00, - 0xF1, - 0xF6, - 0xEC, - 0x00, - 0xFF, - 0xFE, - 0xF8, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xA5, - 0x18, - 0x00, - 0x70, - 0x73, - 0x71, - 0x00, - 0x33, - 0x35, - 0x3B, - 0x00, - 0x20, - 0xE8, - 0xD9, - 0x00, - 0x03, - 0x02, - 0xD5, - 0x00, - 0x00, - 0xA9, - 0x00, - 0x00, - 0x6F, - 0x6E, - 0x7A, - 0x00, - 0xFF, - 0xFD, - 0xFF, - 0x00, - 0x76, - 0x75, - 0x76, - 0x00, - 0x95, - 0x94, - 0x95, - 0x00, - 0x6A, - 0x66, - 0x69, - 0x00, - 0x7A, - 0x76, - 0x78, - 0x00, - 0x76, - 0x72, - 0x74, - 0x00, - 0x75, - 0x71, - 0x73, - 0x00, - 0x71, - 0x6F, - 0x6F, - 0x00, - 0x76, - 0x75, - 0x75, - 0x00, - 0x75, - 0x74, - 0x74, - 0x00, - 0x74, - 0x73, - 0x73, - 0x00, - 0x73, - 0x72, - 0x72, - 0x00, - 0x72, - 0x71, - 0x71, - 0x00, - 0x91, - 0x90, - 0x90, - 0x00, - 0x86, - 0x85, - 0x85, - 0x00, - 0x67, - 0x65, - 0x64, - 0x00, - 0x63, - 0x61, - 0x60, - 0x00, - 0x70, - 0x6E, - 0x6D, - 0x00, - 0x6A, - 0x68, - 0x66, - 0x00, - 0x77, - 0x76, - 0x75, - 0x00, - 0x71, - 0x70, - 0x6F, - 0x00, - 0x6E, - 0x6D, - 0x6C, - 0x00, - 0x6D, - 0x6C, - 0x6B, - 0x00, - 0x6C, - 0x6B, - 0x6A, - 0x00, - 0x90, - 0x8F, - 0x8E, - 0x00, - 0x88, - 0x87, - 0x86, - 0x00, - 0x77, - 0x74, - 0x70, - 0x00, - 0x76, - 0x73, - 0x6F, - 0x00, - 0x75, - 0x72, - 0x6E, - 0x00, - 0x4F, - 0x4D, - 0x4A, - 0x00, - 0x5A, - 0x58, - 0x55, - 0x00, - 0x58, - 0x56, - 0x53, - 0x00, - 0x56, - 0x54, - 0x51, - 0x00, - 0x3F, - 0x3D, - 0x39, - 0x00, - 0x44, - 0x42, - 0x3E, - 0x00, - 0x47, - 0x45, - 0x41, - 0x00, - 0x4C, - 0x4A, - 0x46, - 0x00, - 0x4B, - 0x49, - 0x45, - 0x00, - 0x4A, - 0x48, - 0x44, - 0x00, - 0x4E, - 0x4C, - 0x48, - 0x00, - 0x4D, - 0x4B, - 0x47, - 0x00, - 0x6B, - 0x6A, - 0x68, - 0x00, - 0x68, - 0x67, - 0x65, - 0x00, - 0x66, - 0x65, - 0x63, - 0x00, - 0x64, - 0x63, - 0x61, - 0x00, - 0x74, - 0x73, - 0x71, - 0x00, - 0x73, - 0x72, - 0x70, - 0x00, - 0x42, - 0x40, - 0x3B, - 0x00, - 0x41, - 0x3F, - 0x3A, - 0x00, - 0x43, - 0x41, - 0x3C, - 0x00, - 0x46, - 0x44, - 0x3F, - 0x00, - 0x5D, - 0x5C, - 0x59, - 0x00, - 0x5B, - 0x5A, - 0x57, - 0x00, - 0x61, - 0x60, - 0x5D, - 0x00, - 0x5F, - 0x5E, - 0x5B, - 0x00, - 0x76, - 0x75, - 0x72, - 0x00, - 0x72, - 0x71, - 0x6E, - 0x00, - 0x53, - 0x52, - 0x4E, - 0x00, - 0x51, - 0x50, - 0x4C, - 0x00, - 0x79, - 0x78, - 0x74, - 0x00, - 0x48, - 0x47, - 0x42, - 0x00, - 0xFD, - 0xFC, - 0xF7, - 0x00, - 0x77, - 0x76, - 0x6B, - 0x00, - 0x80, - 0x7F, - 0x71, - 0x00, - 0x9D, - 0xA0, - 0x19, - 0x00, - 0x93, - 0x95, - 0x1E, - 0x00, - 0xA3, - 0xA6, - 0x25, - 0x00, - 0xF9, - 0xF9, - 0xED, - 0x00, - 0x76, - 0x76, - 0x73, - 0x00, - 0x79, - 0x79, - 0x77, - 0x00, - 0x89, - 0x89, - 0x87, - 0x00, - 0x81, - 0x81, - 0x7F, - 0x00, - 0x4C, - 0x4C, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x49, - 0x00, - 0xFE, - 0xFE, - 0xFC, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0xE2, - 0xE2, - 0xE1, - 0x00, - 0xC2, - 0xC2, - 0xC1, - 0x00, - 0xB7, - 0xB7, - 0xB6, - 0x00, - 0xAE, - 0xAE, - 0xAD, - 0x00, - 0xA7, - 0xA7, - 0xA6, - 0x00, - 0xA1, - 0xA1, - 0xA0, - 0x00, - 0x9C, - 0x9C, - 0x9B, - 0x00, - 0x9A, - 0x9A, - 0x99, - 0x00, - 0x97, - 0x97, - 0x96, - 0x00, - 0x8E, - 0x8E, - 0x8D, - 0x00, - 0x8D, - 0x8D, - 0x8C, - 0x00, - 0x8A, - 0x8A, - 0x89, - 0x00, - 0x83, - 0x83, - 0x82, - 0x00, - 0xA6, - 0xAE, - 0x00, - 0x00, - 0xA5, - 0xAB, - 0x00, - 0x00, - 0xA2, - 0xA6, - 0x00, - 0x00, - 0xA0, - 0xA4, - 0x00, - 0x00, - 0x95, - 0x9C, - 0x01, - 0x00, - 0xA6, - 0xAA, - 0x0A, - 0x00, - 0x9F, - 0xA6, - 0x0B, - 0x00, - 0x89, - 0x8F, - 0x0E, - 0x00, - 0xA9, - 0xAD, - 0x13, - 0x00, - 0xAD, - 0xB1, - 0x1D, - 0x00, - 0x9C, - 0xA2, - 0x1F, - 0x00, - 0xB1, - 0xB5, - 0x25, - 0x00, - 0xBD, - 0xC3, - 0x41, - 0x00, - 0xB5, - 0xB9, - 0x44, - 0x00, - 0xC3, - 0xC8, - 0x59, - 0x00, - 0x83, - 0x85, - 0x4B, - 0x00, - 0xCB, - 0xCF, - 0x79, - 0x00, - 0x8B, - 0x8D, - 0x56, - 0x00, - 0x7D, - 0x7E, - 0x59, - 0x00, - 0xDB, - 0xDE, - 0x9D, - 0x00, - 0xE4, - 0xE6, - 0xB7, - 0x00, - 0xA9, - 0xB2, - 0x00, - 0x00, - 0xAF, - 0xB8, - 0x14, - 0x00, - 0x9D, - 0xA6, - 0x13, - 0x00, - 0x9C, - 0xA5, - 0x15, - 0x00, - 0x9B, - 0xA5, - 0x16, - 0x00, - 0x99, - 0xA2, - 0x17, - 0x00, - 0x9A, - 0xA3, - 0x19, - 0x00, - 0x9E, - 0xA7, - 0x1D, - 0x00, - 0xA0, - 0xA9, - 0x20, - 0x00, - 0x74, - 0x7A, - 0x1A, - 0x00, - 0xB5, - 0xBC, - 0x2B, - 0x00, - 0xAE, - 0xB4, - 0x36, - 0x00, - 0x9A, - 0xA0, - 0x31, - 0x00, - 0x93, - 0x97, - 0x46, - 0x00, - 0x97, - 0x9A, - 0x67, - 0x00, - 0xA8, - 0xAB, - 0x77, - 0x00, - 0x84, - 0x86, - 0x65, - 0x00, - 0xEC, - 0xEE, - 0xCC, - 0x00, - 0xF4, - 0xF5, - 0xE0, - 0x00, - 0x9C, - 0xA6, - 0x18, - 0x00, - 0x91, - 0x99, - 0x2C, - 0x00, - 0x60, - 0x65, - 0x24, - 0x00, - 0x6A, - 0x6C, - 0x56, - 0x00, - 0x77, - 0x79, - 0x62, - 0x00, - 0x9C, - 0xAB, - 0x15, - 0x00, - 0xA5, - 0xB5, - 0x2B, - 0x00, - 0x9E, - 0xAD, - 0x2C, - 0x00, - 0x8A, - 0x93, - 0x37, - 0x00, - 0x7C, - 0x84, - 0x3D, - 0x00, - 0x51, - 0x55, - 0x2F, - 0x00, - 0x4C, - 0x4F, - 0x2F, - 0x00, - 0x9C, - 0x9F, - 0x81, - 0x00, - 0x8F, - 0xA2, - 0x15, - 0x00, - 0xAF, - 0xC1, - 0x29, - 0x00, - 0xAA, - 0xBC, - 0x2A, - 0x00, - 0xA7, - 0xB8, - 0x2B, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xA3, - 0xB3, - 0x2C, - 0x00, - 0x99, - 0xA9, - 0x35, - 0x00, - 0x45, - 0x48, - 0x32, - 0x00, - 0xA6, - 0xBA, - 0x32, - 0x00, - 0xA2, - 0xB5, - 0x33, - 0x00, - 0x9D, - 0xAF, - 0x34, - 0x00, - 0x6A, - 0x72, - 0x40, - 0x00, - 0x65, - 0x6B, - 0x42, - 0x00, - 0x5F, - 0x65, - 0x40, - 0x00, - 0x48, - 0x4C, - 0x31, - 0x00, - 0x58, - 0x5C, - 0x40, - 0x00, - 0x59, - 0x5C, - 0x47, - 0x00, - 0x53, - 0x56, - 0x44, - 0x00, - 0x4F, - 0x51, - 0x45, - 0x00, - 0x53, - 0x55, - 0x49, - 0x00, - 0x41, - 0x44, - 0x34, - 0x00, - 0x76, - 0x7A, - 0x66, - 0x00, - 0x48, - 0x4D, - 0x38, - 0x00, - 0x73, - 0x76, - 0x6B, - 0x00, - 0x4B, - 0x4D, - 0x46, - 0x00, - 0x41, - 0x45, - 0x39, - 0x00, - 0x73, - 0x76, - 0x6D, - 0x00, - 0x7C, - 0x7D, - 0x7B, - 0x00, - 0xFC, - 0xFD, - 0xFB, - 0x00, - 0x3A, - 0x3D, - 0x39, - 0x00, - 0x6D, - 0x71, - 0x6C, - 0x00, - 0x56, - 0x59, - 0x56, - 0x00, - 0x75, - 0x78, - 0x75, - 0x00, - 0xCC, - 0xCD, - 0xCC, - 0x00, - 0x50, - 0xCD, - 0x59, - 0x00, - 0x32, - 0xC6, - 0x3E, - 0x00, - 0x81, - 0xDC, - 0x89, - 0x00, - 0xA8, - 0xE8, - 0xAE, - 0x00, - 0xC3, - 0xEF, - 0xC7, - 0x00, - 0x02, - 0xC0, - 0x19, - 0x00, - 0xE9, - 0xF9, - 0xEB, - 0x00, - 0x02, - 0xD4, - 0x2E, - 0x00, - 0x6A, - 0x6D, - 0x6B, - 0x00, - 0x74, - 0x77, - 0x75, - 0x00, - 0x73, - 0x76, - 0x74, - 0x00, - 0x71, - 0x74, - 0x72, - 0x00, - 0x6C, - 0x6F, - 0x6D, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x26, - 0xE2, - 0xD3, - 0x00, - 0x2E, - 0xD8, - 0xC9, - 0x00, - 0x34, - 0xD0, - 0xC1, - 0x00, - 0x57, - 0xE1, - 0xD5, - 0x00, - 0x88, - 0xE9, - 0xE1, - 0x00, - 0xBC, - 0xF3, - 0xEE, - 0x00, - 0xE0, - 0xF9, - 0xF7, - 0x00, - 0xF1, - 0xFD, - 0xFC, - 0x00, - 0x1F, - 0xE9, - 0xDA, - 0x00, - 0x63, - 0x65, - 0x65, - 0x00, - 0x51, - 0x52, - 0x52, - 0x00, - 0x55, - 0x56, - 0x56, - 0x00, - 0x4B, - 0x4D, - 0x4E, - 0x00, - 0x36, - 0x38, - 0x3A, - 0x00, - 0x42, - 0x44, - 0x47, - 0x00, - 0x6F, - 0x71, - 0x75, - 0x00, - 0x4E, - 0x4F, - 0x51, - 0x00, - 0x37, - 0x39, - 0x3E, - 0x00, - 0x3A, - 0x3C, - 0x41, - 0x00, - 0x34, - 0x36, - 0x3C, - 0x00, - 0x3F, - 0x40, - 0x44, - 0x00, - 0x46, - 0x47, - 0x4B, - 0x00, - 0x44, - 0x45, - 0x49, - 0x00, - 0x5A, - 0x5B, - 0x5F, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0xF9, - 0xFA, - 0xFF, - 0x00, - 0x69, - 0x6A, - 0x70, - 0x00, - 0x12, - 0x25, - 0xF6, - 0x00, - 0x0D, - 0x1A, - 0xEB, - 0x00, - 0xEE, - 0xEF, - 0xFD, - 0x00, - 0x09, - 0x0F, - 0xE1, - 0x00, - 0x27, - 0x2A, - 0xE1, - 0x00, - 0x38, - 0x3A, - 0xE3, - 0x00, - 0x48, - 0x4A, - 0xE4, - 0x00, - 0x72, - 0x73, - 0xEA, - 0x00, - 0x7F, - 0x80, - 0xEC, - 0x00, - 0xA6, - 0xA6, - 0xF1, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - 0x34, - 0x35, - 0x3A, - 0x00, - 0x49, - 0x4B, - 0x4A, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x39, - 0x3A, - 0x3E, - 0x00, - 0x35, - 0x36, - 0x3B, - 0x00, - 0x43, - 0x46, - 0x44, - 0x00, - 0x3D, - 0x3E, - 0x43, - 0x00, - 0x46, - 0x47, - 0x4C, - 0x00, - 0x80, - 0x8A, - 0x37, - 0x00, - 0x9C, - 0xAB, - 0x31, - 0x00, - 0x3A, - 0x3C, - 0x40, - 0x00, - 0x86, - 0x92, - 0x32, - 0x00, - 0x90, - 0x9E, - 0x31, - 0x00, - 0x41, - 0x42, - 0x47, - 0x00, - 0x84, - 0x8F, - 0x3C, - 0x00, - 0x9E, - 0xB4, - 0x35, - 0x00, - 0x5D, - 0x5F, - 0x46, - 0x00, - 0x8F, - 0x9C, - 0x2F, - 0x00, - 0xF0, - 0xF3, - 0xF1, - 0x00, - 0x4A, - 0x4B, - 0x50, - 0x00, - 0xA0, - 0xA1, - 0xA7, - 0x00, - 0x64, - 0x65, - 0x6A, - 0x00, - 0x36, - 0x37, - 0x3B, - 0x00, - 0x44, - 0x45, - 0x4A, - 0x00, - 0x52, - 0x53, - 0x58, - 0x00, - 0x72, - 0x73, - 0x78, - 0x00, - 0x39, - 0x3C, - 0x3A, - 0x00, - 0x4A, - 0x4D, - 0x4B, - 0x00, - 0xB2, - 0xB3, - 0xB9, - 0x00, - 0xF6, - 0xFA, - 0xF8, - 0x00, - 0xFA, - 0xFD, - 0xFB, - 0x00, - 0x38, - 0x3A, - 0x39, - 0x00, - 0x4D, - 0x4E, - 0x53, - 0x00, - 0xAF, - 0xB0, - 0xB6, - 0x00, - 0x94, - 0x96, - 0x9B, - 0x00, - 0xD7, - 0xDB, - 0xD9, - 0x00, - 0xB8, - 0xB9, - 0xBF, - 0x00, - 0x7F, - 0x81, - 0x86, - 0x00, - 0x60, - 0x61, - 0x66, - 0x00, - 0xCA, - 0xCE, - 0xCB, - 0x00, - 0x9F, - 0xB0, - 0x22, - 0x00, - 0x55, - 0x54, - 0x49, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0x59, - 0x5A, - 0x5F, - 0x00, - 0x56, - 0x57, - 0x5C, - 0x00, - 0x50, - 0x51, - 0x56, - 0x00, - 0x3F, - 0x40, - 0x45, - 0x00, - 0x99, - 0xA8, - 0x2D, - 0x00, - 0x43, - 0x44, - 0x49, - 0x00, - 0xB8, - 0xC7, - 0x60, - 0x00, - 0xEA, - 0xED, - 0xEB, - 0x00, - 0xDF, - 0xE1, - 0xE6, - 0x00, - 0xD1, - 0xD2, - 0xD8, - 0x00, - 0x5D, - 0x5E, - 0x63, - 0x00, - 0x45, - 0x46, - 0x4B, - 0x00, - 0xE4, - 0xE5, - 0xEB, - 0x00, - 0x76, - 0x78, - 0x7D, - 0x00, - 0xF3, - 0xF4, - 0xFA, - 0x00, - 0x4C, - 0x54, - 0x37, - 0x00, - 0x68, - 0x76, - 0x34, - 0x00, - 0xC4, - 0xD0, - 0x7F, - 0x00, - 0xB2, - 0xC1, - 0x4D, - 0x00, - 0x6D, - 0x74, - 0x40, - 0x00, - 0x58, - 0x59, - 0x5E, - 0x00, - 0xC5, - 0xC8, - 0xC6, - 0x00, - 0x6B, - 0x71, - 0x3E, - 0x00, - 0x63, - 0x70, - 0x38, - 0x00, - 0x97, - 0xA6, - 0x2A, - 0x00, - 0x99, - 0x9A, - 0x9F, - 0x00, - 0xD3, - 0xD7, - 0xD4, - 0x00, - 0xD1, - 0xDA, - 0x9B, - 0x00, - 0x5B, - 0x5C, - 0x61, - 0x00, - 0x8B, - 0x97, - 0x39, - 0x00, - 0x88, - 0x89, - 0x8E, - 0x00, - 0x8D, - 0x8F, - 0x94, - 0x00, - 0x84, - 0x97, - 0x32, - 0x00, - 0xAD, - 0xBC, - 0x47, - 0x00, - 0x7C, - 0x85, - 0x3D, - 0x00, - 0x5A, - 0x65, - 0x37, - 0x00, - 0x47, - 0x4E, - 0x39, - 0x00, - 0x7B, - 0x7C, - 0x81, - 0x00, - 0xAC, - 0xAD, - 0xB2, - 0x00, - 0xBC, - 0xBF, - 0xBD, - 0x00, - 0xA7, - 0xA8, - 0xAE, - 0x00, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x81, - 0x92, - 0x3A, - 0x00, - 0x8F, - 0x91, - 0x96, - 0x00, - 0x85, - 0x86, - 0x8B, - 0x00, - 0x3C, - 0x40, - 0x38, - 0x00, - 0x77, - 0x81, - 0x2D, - 0x00, - 0x72, - 0x7A, - 0x3D, - 0x00, - 0xC1, - 0xC4, - 0xC2, - 0x00, - 0xC7, - 0xCA, - 0xC8, - 0x00, - 0xF8, - 0xFC, - 0xF9, - 0x00, - 0x57, - 0x58, - 0x46, - 0x00, - 0x50, - 0x58, - 0x3B, - 0x00, - 0x88, - 0x9B, - 0x37, - 0x00, - 0x69, - 0x6A, - 0x6F, - 0x00, - 0x4E, - 0x4F, - 0x54, - 0x00, - 0x95, - 0xA4, - 0x27, - 0x00, - 0xBE, - 0xBF, - 0xC4, - 0x00, - 0xED, - 0xF0, - 0xEE, - 0x00, - 0xD9, - 0xDA, - 0xE0, - 0x00, - 0xA5, - 0xA6, - 0xAC, - 0x00, - 0xF4, - 0xF8, - 0xF6, - 0x00, - 0x3F, - 0x45, - 0x36, - 0x00, - 0x7C, - 0x8D, - 0x35, - 0x00, - 0x41, - 0x47, - 0x38, - 0x00, - 0x68, - 0x6D, - 0x43, - 0x00, - 0x6C, - 0x6E, - 0x72, - 0x00, - 0x52, - 0x5C, - 0x37, - 0x00, - 0x49, - 0x50, - 0x3A, - 0x00, - 0x89, - 0x96, - 0x27, - 0x00, - 0xA3, - 0xA4, - 0xAA, - 0x00, - 0x37, - 0x39, - 0x37, - 0x00, - 0x71, - 0x7A, - 0x32, - 0x00, - 0xAA, - 0xBB, - 0x34, - 0x00, - 0x66, - 0x6B, - 0x41, - 0x00, - 0xEC, - 0xEE, - 0xF3, - 0x00, - 0x59, - 0x5A, - 0x48, - 0x00, - 0x6E, - 0x70, - 0x74, - 0x00, - 0xE5, - 0xE8, - 0xE6, - 0x00, - 0x66, - 0x68, - 0x6C, - 0x00, - 0x97, - 0xAC, - 0x3C, - 0x00, - 0x6C, - 0x73, - 0x3F, - 0x00, - 0x94, - 0xA9, - 0x38, - 0x00, - 0x9E, - 0xAD, - 0x34, - 0x00, - 0xF2, - 0xF5, - 0xF3, - 0x00, - 0xC0, - 0xC1, - 0xC6, - 0x00, - 0xE8, - 0xEA, - 0xEF, - 0x00, - 0x45, - 0x4C, - 0x36, - 0x00, - 0x75, - 0x7D, - 0x40, - 0x00, - 0x8A, - 0x96, - 0x37, - 0x00, - 0x4C, - 0x4F, - 0x4D, - 0x00, - 0x6A, - 0x6C, - 0x70, - 0x00, - 0xCB, - 0xCD, - 0xD2, - 0x00, - 0xCB, - 0xCF, - 0xCD, - 0x00, - 0x9C, - 0xB2, - 0x33, - 0x00, - 0x6F, - 0x7D, - 0x3C, - 0x00, - 0x6A, - 0x78, - 0x36, - 0x00, - 0x43, - 0x49, - 0x3A, - 0x00, - 0x61, - 0x65, - 0x43, - 0x00, - 0xDC, - 0xDF, - 0xDD, - 0x00, - 0x72, - 0x82, - 0x35, - 0x00, - 0x5A, - 0x5B, - 0x60, - 0x00, - 0xED, - 0xF0, - 0xD3, - 0x00, - 0x63, - 0x67, - 0x45, - 0x00, - 0x84, - 0x90, - 0x30, - 0x00, - 0x5D, - 0x68, - 0x3A, - 0x00, - 0x6D, - 0x7B, - 0x39, - 0x00, - 0x3A, - 0x3E, - 0x36, - 0x00, - 0x3E, - 0x42, - 0x3A, - 0x00, - 0xD8, - 0xE0, - 0xAA, - 0x00, - 0xFD, - 0xFC, - 0xEF, - 0x00, - 0xD5, - 0xD6, - 0xDC, - 0x00, - 0xDF, - 0xE2, - 0xE0, - 0x00, - 0x91, - 0xA5, - 0x33, - 0x00, - 0x8E, - 0xA2, - 0x2F, - 0x00, - 0x60, - 0x6D, - 0x35, - 0x00, - 0x75, - 0x85, - 0x38, - 0x00, - 0xBA, - 0xBC, - 0xC1, - 0x00, - 0xF0, - 0xF1, - 0xF7, - 0x00, - 0xC2, - 0xC4, - 0xC9, - 0x00, - 0xC6, - 0xC7, - 0xCD, - 0x00, - 0x78, - 0x81, - 0x3A, - 0x00, - 0xB4, - 0xB7, - 0xB5, - 0x00, - 0x55, - 0x5F, - 0x3A, - 0x00, - 0xC2, - 0xCF, - 0x74, - 0x00, - 0xC9, - 0xCC, - 0xCA, - 0x00, - 0x74, - 0x72, - 0x6D, - 0x00, - 0x53, - 0x52, - 0x47, - 0x00, - 0x74, - 0x75, - 0x7A, - 0x00, - 0xC4, - 0xC7, - 0xC5, - 0x00, - 0x7D, - 0x7E, - 0x83, - 0x00, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xCC, - 0xD7, - 0x8F, - 0x00, - 0x61, - 0x63, - 0x67, - 0x00, - 0x4F, - 0x53, - 0x4B, - 0x00, - 0xCE, - 0xD1, - 0xCF, - 0x00, - 0x7F, - 0x8A, - 0x29, - 0x00, - 0x6E, - 0x6A, - 0x6C, - 0x00, - 0xE5, - 0xE9, - 0xC4, - 0x00, - 0x58, - 0x61, - 0x3C, - 0x00, - 0x5B, - 0x5E, - 0x44, - 0x00, - 0xD0, - 0xD3, - 0xD1, - 0x00, - 0xE3, - 0xE6, - 0xE4, - 0x00, - 0x9C, - 0x9D, - 0xA2, - 0x00, - 0x73, - 0x6F, - 0x71, - 0x00, - 0x6A, - 0x72, - 0x34, - 0x00, - 0x4F, - 0x4D, - 0x49, - 0x00, - 0x97, - 0x98, - 0x9D, - 0x00, - 0x82, - 0x83, - 0x88, - 0x00, - 0x79, - 0x8A, - 0x31, - 0x00, - 0x60, - 0x63, - 0x61, - 0x00, - 0x70, - 0x6D, - 0x69, - 0x00, - 0x6F, - 0x78, - 0x30, - 0x00, - 0xE7, - 0xEA, - 0xE8, - 0x00, - 0x93, - 0xA0, - 0x34, - 0x00, - 0x86, - 0x99, - 0x34, - 0x00, - 0x65, - 0x68, - 0x66, - 0x00, - 0xF0, - 0xF1, - 0xDC, - 0x00, - 0x8C, - 0x9F, - 0x3B, - 0x00, - 0xE1, - 0xE7, - 0xB9, - 0x00, - 0x66, - 0x72, - 0x3B, - 0x00, - 0xCE, - 0xCF, - 0xD5, - 0x00, - 0xF6, - 0xF7, - 0xE1, - 0x00, - 0x95, - 0xA2, - 0x37, - 0x00, - 0x69, - 0x65, - 0x67, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x00, - 0x98, - 0xAE, - 0x2D, - 0x00, - 0x78, - 0x88, - 0x3B, - 0x00, - 0xBD, - 0xCA, - 0x6F, - 0x00, - 0xF8, - 0xF8, - 0xEA, - 0x00, - 0x4B, - 0x52, - 0x3C, - 0x00, - 0xB6, - 0xC5, - 0x5D, - 0x00, - 0xB5, - 0xB6, - 0xBB, - 0x00, - 0x8D, - 0x99, - 0x3B, - 0x00, - 0x60, - 0x66, - 0x33, - 0x00, - 0x69, - 0x6C, - 0x6A, - 0x00, - 0x3B, - 0x3E, - 0x3C, - 0x00, - 0xF6, - 0xF5, - 0xE8, - 0x00, - 0xD5, - 0xDE, - 0x9F, - 0x00, - 0x65, - 0x6B, - 0x38, - 0x00, - 0xDD, - 0xDE, - 0xE4, - 0x00, - 0xA2, - 0xB8, - 0x3B, - 0x00, - 0x50, - 0x4E, - 0x4A, - 0x00, - 0x6F, - 0x75, - 0x42, - 0x00, - 0x7E, - 0x89, - 0x35, - 0x00, - 0x9E, - 0xA0, - 0xA5, - 0x00, - 0x30, - 0x35, - 0x3C, - 0x00, - 0x5A, - 0x5D, - 0x5B, - 0x00, - 0x81, - 0x8D, - 0x2C, - 0x00, - 0xF1, - 0xF6, - 0xEC, - 0x00, - 0xFF, - 0xFE, - 0xF8, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - 0x22, - 0x22, - 0x31, - 0x00, - 0x2D, - 0x2D, - 0x45, - 0x00, - 0x36, - 0x36, - 0x4F, - 0x00, - 0x5B, - 0x5B, - 0x77, - 0x00, - 0x72, - 0x72, - 0x9B, - 0x00, - 0x99, - 0x99, - 0xCB, - 0x00, - 0xAA, - 0xAA, - 0xD5, - 0x00, - 0xB5, - 0xB5, - 0xCD, - 0x00, - 0xBE, - 0xBE, - 0xD6, - 0x00, - 0xFE, - 0xFE, - 0xFE, - 0x00, - 0x8C, - 0x8D, - 0xBD, - 0x00, - 0x79, - 0x7A, - 0xA7, - 0x00, - 0x83, - 0x84, - 0xAC, - 0x00, - 0x63, - 0x64, - 0x87, - 0x00, - 0x5F, - 0x60, - 0x7F, - 0x00, - 0xAA, - 0xAB, - 0xC8, - 0x00, - 0x6B, - 0x6D, - 0x91, - 0x00, - 0x50, - 0x52, - 0x73, - 0x00, - 0x3A, - 0x3C, - 0x59, - 0x00, - 0x43, - 0x45, - 0x62, - 0x00, - 0xC1, - 0xC3, - 0xDF, - 0x00, - 0xA0, - 0xA5, - 0x01, - 0x00, - 0x9D, - 0xA1, - 0x01, - 0x00, - 0xA4, - 0xA6, - 0x09, - 0x00, - 0xFE, - 0xFE, - 0xFD, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0x97, - 0x7E, - 0x09, - 0x00, - 0xBB, - 0x99, - 0x33, - 0x00, - 0xE8, - 0xCD, - 0x89, - 0x00, - 0xE8, - 0xBE, - 0x6E, - 0x00, - 0xDB, - 0xA6, - 0x4D, - 0x00, - 0xE6, - 0xAE, - 0x5A, - 0x00, - 0xFB, - 0xF9, - 0xF6, - 0x00, - 0xC7, - 0x90, - 0x40, - 0x00, - 0x65, - 0x45, - 0x17, - 0x00, - 0xD8, - 0xAB, - 0x6E, - 0x00, - 0xB1, - 0x7B, - 0x33, - 0x00, - 0xA0, - 0x67, - 0x2C, - 0x00, - 0xF3, - 0xC8, - 0x9E, - 0x00, - 0x87, - 0x5A, - 0x2F, - 0x00, - 0xD3, - 0x92, - 0x55, - 0x00, - 0x8A, - 0x5E, - 0x35, - 0x00, - 0xED, - 0xBB, - 0x8E, - 0x00, - 0xEB, - 0xB0, - 0x7B, - 0x00, - 0xE3, - 0xB4, - 0x8B, - 0x00, - 0xF2, - 0xD4, - 0xBA, - 0x00, - 0x7A, - 0x55, - 0x35, - 0x00, - 0xDF, - 0xAA, - 0x7D, - 0x00, - 0xE3, - 0x91, - 0x4C, - 0x00, - 0x6A, - 0x4C, - 0x33, - 0x00, - 0xEF, - 0xCB, - 0xAD, - 0x00, - 0x6A, - 0x47, - 0x2A, - 0x00, - 0x60, - 0x43, - 0x2B, - 0x00, - 0x43, - 0x33, - 0x26, - 0x00, - 0xC4, - 0x8F, - 0x64, - 0x00, - 0x91, - 0x52, - 0x1F, - 0x00, - 0x7D, - 0x4E, - 0x28, - 0x00, - 0x87, - 0x54, - 0x2B, - 0x00, - 0x97, - 0x5F, - 0x32, - 0x00, - 0x53, - 0x3F, - 0x2F, - 0x00, - 0x67, - 0x3F, - 0x1F, - 0x00, - 0x8F, - 0x49, - 0x11, - 0x00, - 0xA2, - 0x57, - 0x1B, - 0x00, - 0xB0, - 0x5B, - 0x17, - 0x00, - 0xA5, - 0x53, - 0x12, - 0x00, - 0xEF, - 0xA2, - 0x65, - 0x00, - 0x5E, - 0x46, - 0x33, - 0x00, - 0x75, - 0x45, - 0x1F, - 0x00, - 0xA6, - 0x69, - 0x39, - 0x00, - 0xB0, - 0x82, - 0x5E, - 0x00, - 0x71, - 0x51, - 0x38, - 0x00, - 0x96, - 0x4D, - 0x14, - 0x00, - 0xC8, - 0x69, - 0x1F, - 0x00, - 0x46, - 0x34, - 0x26, - 0x00, - 0x4C, - 0x3A, - 0x2C, - 0x00, - 0x84, - 0x45, - 0x14, - 0x00, - 0xD6, - 0x82, - 0x41, - 0x00, - 0x9F, - 0x6A, - 0x41, - 0x00, - 0x75, - 0x49, - 0x27, - 0x00, - 0xD8, - 0x96, - 0x63, - 0x00, - 0x6F, - 0x40, - 0x1C, - 0x00, - 0xB9, - 0x68, - 0x2A, - 0x00, - 0x41, - 0x30, - 0x23, - 0x00, - 0x54, - 0x32, - 0x18, - 0x00, - 0xCD, - 0x79, - 0x39, - 0x00, - 0xE4, - 0xBA, - 0x9A, - 0x00, - 0x53, - 0x3A, - 0x27, - 0x00, - 0x5A, - 0x39, - 0x20, - 0x00, - 0x9B, - 0x59, - 0x27, - 0x00, - 0x7F, - 0x5E, - 0x45, - 0x00, - 0x8E, - 0x61, - 0x3F, - 0x00, - 0x95, - 0x68, - 0x46, - 0x00, - 0xD3, - 0x72, - 0x29, - 0x00, - 0x49, - 0x35, - 0x26, - 0x00, - 0x78, - 0x58, - 0x40, - 0x00, - 0xCD, - 0x95, - 0x6B, - 0x00, - 0xFD, - 0xE9, - 0xDA, - 0x00, - 0x4E, - 0x3E, - 0x32, - 0x00, - 0x7F, - 0x48, - 0x1F, - 0x00, - 0xAF, - 0x71, - 0x43, - 0x00, - 0xB9, - 0x7B, - 0x4D, - 0x00, - 0x77, - 0x41, - 0x19, - 0x00, - 0x98, - 0x6E, - 0x4F, - 0x00, - 0x86, - 0x4D, - 0x23, - 0x00, - 0x48, - 0x2A, - 0x14, - 0x00, - 0x60, - 0x3B, - 0x20, - 0x00, - 0x6B, - 0x3B, - 0x18, - 0x00, - 0x4D, - 0x37, - 0x27, - 0x00, - 0x51, - 0x3B, - 0x2B, - 0x00, - 0x4F, - 0x3D, - 0x30, - 0x00, - 0x52, - 0x40, - 0x33, - 0x00, - 0x65, - 0x4C, - 0x3A, - 0x00, - 0xF8, - 0xD8, - 0xC1, - 0x00, - 0x25, - 0x17, - 0x0D, - 0x00, - 0x6D, - 0x43, - 0x25, - 0x00, - 0xF1, - 0xEA, - 0xE5, - 0x00, - 0x59, - 0x41, - 0x30, - 0x00, - 0xA2, - 0x72, - 0x50, - 0x00, - 0xCD, - 0x9D, - 0x7B, - 0x00, - 0x5E, - 0x35, - 0x18, - 0x00, - 0x2C, - 0x1B, - 0x0F, - 0x00, - 0x44, - 0x33, - 0x27, - 0x00, - 0xDB, - 0x9E, - 0x73, - 0x00, - 0xF7, - 0xDC, - 0xC9, - 0x00, - 0xC6, - 0x83, - 0x54, - 0x00, - 0x57, - 0x39, - 0x24, - 0x00, - 0x3E, - 0x2A, - 0x1C, - 0x00, - 0xD3, - 0xA8, - 0x8A, - 0x00, - 0x28, - 0x1B, - 0x12, - 0x00, - 0x59, - 0x32, - 0x17, - 0x00, - 0x51, - 0x34, - 0x20, - 0x00, - 0x64, - 0x37, - 0x18, - 0x00, - 0x90, - 0x53, - 0x29, - 0x00, - 0xEC, - 0xCC, - 0xB6, - 0x00, - 0x42, - 0x32, - 0x27, - 0x00, - 0x51, - 0x2E, - 0x16, - 0x00, - 0x65, - 0x3F, - 0x25, - 0x00, - 0xBF, - 0x86, - 0x5F, - 0x00, - 0x4F, - 0x36, - 0x25, - 0x00, - 0x8A, - 0x68, - 0x51, - 0x00, - 0xE1, - 0xBF, - 0xA8, - 0x00, - 0x26, - 0x1A, - 0x12, - 0x00, - 0x30, - 0x24, - 0x1C, - 0x00, - 0x42, - 0x2A, - 0x1A, - 0x00, - 0x83, - 0x62, - 0x4C, - 0x00, - 0xAD, - 0x77, - 0x53, - 0x00, - 0xFD, - 0xE5, - 0xD5, - 0x00, - 0xF9, - 0xF3, - 0xEF, - 0x00, - 0x48, - 0x2E, - 0x1D, - 0x00, - 0xFA, - 0xE0, - 0xCF, - 0x00, - 0x38, - 0x21, - 0x12, - 0x00, - 0x2F, - 0x1E, - 0x13, - 0x00, - 0x4F, - 0x30, - 0x1C, - 0x00, - 0x42, - 0x26, - 0x14, - 0x00, - 0x6D, - 0x52, - 0x41, - 0x00, - 0x35, - 0x25, - 0x1B, - 0x00, - 0x49, - 0x31, - 0x22, - 0x00, - 0x4E, - 0x3E, - 0x34, - 0x00, - 0x4B, - 0x2C, - 0x19, - 0x00, - 0xD9, - 0xB5, - 0x9F, - 0x00, - 0xC5, - 0x9F, - 0x88, - 0x00, - 0x20, - 0x16, - 0x10, - 0x00, - 0x3C, - 0x23, - 0x14, - 0x00, - 0x41, - 0x2D, - 0x21, - 0x00, - 0x3F, - 0x30, - 0x27, - 0x00, - 0xBB, - 0x8F, - 0x75, - 0x00, - 0x4C, - 0x3B, - 0x31, - 0x00, - 0xB1, - 0x88, - 0x70, - 0x00, - 0x9C, - 0x76, - 0x60, - 0x00, - 0x26, - 0x18, - 0x10, - 0x00, - 0x2A, - 0x1C, - 0x14, - 0x00, - 0xD5, - 0xAE, - 0x98, - 0x00, - 0x30, - 0x20, - 0x17, - 0x00, - 0x35, - 0x21, - 0x16, - 0x00, - 0x39, - 0x25, - 0x1A, - 0x00, - 0xBF, - 0x95, - 0x7E, - 0x00, - 0x22, - 0x17, - 0x11, - 0x00, - 0x35, - 0x26, - 0x1E, - 0x00, - 0x3C, - 0x2B, - 0x22, - 0x00, - 0x76, - 0x5B, - 0x4D, - 0x00, - 0xCE, - 0xA7, - 0x93, - 0x00, - 0x1E, - 0x14, - 0x0F, - 0x00, - 0x20, - 0x14, - 0x0E, - 0x00, - 0x2B, - 0x1B, - 0x13, - 0x00, - 0x30, - 0x1E, - 0x15, - 0x00, - 0x47, - 0x35, - 0x2C, - 0x00, - 0x5E, - 0x46, - 0x3A, - 0x00, - 0x82, - 0x66, - 0x58, - 0x00, - 0x91, - 0x6F, - 0x5E, - 0x00, - 0xC2, - 0xA2, - 0x92, - 0x00, - 0xA6, - 0x7D, - 0x69, - 0x00, - 0x3A, - 0x27, - 0x1E, - 0x00, - 0xE4, - 0xC4, - 0xB5, - 0x00, - 0x28, - 0x19, - 0x12, - 0x00, - 0x20, - 0x15, - 0x10, - 0x00, - 0x2C, - 0x1C, - 0x15, - 0x00, - 0x17, - 0x10, - 0x0D, - 0x00, - 0x34, - 0x21, - 0x19, - 0x00, - 0x24, - 0x18, - 0x13, - 0x00, - 0x0E, - 0x09, - 0x07, - 0x00, - 0x18, - 0x0E, - 0x0A, - 0x00, - 0x1C, - 0x12, - 0x0E, - 0x00, - 0x21, - 0x17, - 0x13, - 0x00, - 0x29, - 0x1F, - 0x1B, - 0x00, - 0xE9, - 0xD0, - 0xC6, - 0x00, - 0x1C, - 0x11, - 0x0D, - 0x00, - 0x2D, - 0x22, - 0x1E, - 0x00, - 0x16, - 0x0D, - 0x0A, - 0x00, - 0xB1, - 0x8F, - 0x84, - 0x00, - 0x19, - 0x0F, - 0x0C, - 0x00, - 0x1A, - 0x10, - 0x0D, - 0x00, - 0x23, - 0x1C, - 0x1A, - 0x00, - 0x36, - 0x27, - 0x23, - 0x00, - 0xD9, - 0xB8, - 0xB0, - 0x00, - 0x6A, - 0x51, - 0x4C, - 0x00, - 0x10, - 0x0A, - 0x09, - 0x00, - 0xA1, - 0x7F, - 0x7A, - 0x00, - 0x12, - 0x0B, - 0x0A, - 0x00, - 0x14, - 0x0C, - 0x0B, - 0x00, - 0x80, - 0x6A, - 0x69, - 0x00, - 0x50, - 0x3D, - 0x3E, - 0x00, - 0x5F, - 0x49, - 0x4B, - 0x00, - 0xCB, - 0xAF, - 0xB3, - 0x00, - 0xDD, - 0xCD, - 0xD0, - 0x00, - 0x18, - 0x13, - 0x14, - 0x00, - 0x71, - 0x5D, - 0x61, - 0x00, - 0xA1, - 0x8A, - 0x90, - 0x00, - 0x3E, - 0x2E, - 0x33, - 0x00, - 0x55, - 0x4D, - 0x50, - 0x00, - 0xB9, - 0xB0, - 0xB4, - 0x00, - 0x63, - 0x59, - 0x5F, - 0x00, - 0x42, - 0x35, - 0x3D, - 0x00, - 0x84, - 0x74, - 0x7E, - 0x00, - 0xAA, - 0x9B, - 0xA7, - 0x00, - 0xD0, - 0xC3, - 0xCF, - 0x00, - 0x8D, - 0x7F, - 0x8C, - 0x00, - 0x9D, - 0x91, - 0x9E, - 0x00, - 0x6B, - 0x60, - 0x6E, - 0x00, - 0xC1, - 0xBB, - 0xCA, - 0x00, - 0x40, - 0x3C, - 0x4A, - 0x00, - 0x30, - 0x2C, - 0x3B, - 0x00, - 0x2A, - 0x27, - 0x35, - 0x00, - 0xAD, - 0xA9, - 0xBE, - 0x00, - 0x77, - 0x73, - 0x90, - 0x00, - 0x19, - 0x18, - 0x21, - 0x00, - 0x35, - 0x33, - 0x45, - 0x00, - 0x49, - 0x47, - 0x5A, - 0x00, - 0x1F, - 0x1E, - 0x28, - 0x00, - 0x80, - 0x7D, - 0x9B, - 0x00, - 0x8F, - 0x8C, - 0xAA, - 0x00, - 0x57, - 0x55, - 0x6B, - 0x00, - 0x6A, - 0x68, - 0x87, - 0x00, - 0x41, - 0x40, - 0x53, - 0x00, - 0xC8, - 0xC7, - 0xDB, - 0x00, - 0x4E, - 0x4D, - 0x65, - 0x00, - 0x9C, - 0x9B, - 0xB9, - 0x00, - 0x16, - 0x1C, - 0x19, - 0x00, - 0x20, - 0x1F, - 0x17, - 0x00, - 0x2E, - 0x27, - 0x0E, - 0x00, - 0x19, - 0x26, - 0x24, - 0x00, - 0x3D, - 0x2C, - 0x12, - 0x00, - 0x25, - 0x2B, - 0x28, - 0x00, - 0x1E, - 0x2D, - 0x2D, - 0x00, - 0x4E, - 0x34, - 0x10, - 0x00, - 0x5F, - 0x37, - 0x10, - 0x00, - 0x2E, - 0x33, - 0x2F, - 0x00, - 0x17, - 0x34, - 0x35, - 0x00, - 0x26, - 0x35, - 0x32, - 0x00, - 0x7A, - 0x3B, - 0x12, - 0x00, - 0x11, - 0x39, - 0x43, - 0x00, - 0x35, - 0x3A, - 0x34, - 0x00, - 0x2B, - 0x3C, - 0x39, - 0x00, - 0x40, - 0x3C, - 0x33, - 0x00, - 0x35, - 0x40, - 0x3D, - 0x00, - 0x1F, - 0x40, - 0x45, - 0x00, - 0x67, - 0x49, - 0x12, - 0x00, - 0x3B, - 0x44, - 0x39, - 0x00, - 0x0B, - 0x42, - 0x55, - 0x00, - 0x44, - 0x44, - 0x3B, - 0x00, - 0x93, - 0x46, - 0x1A, - 0x00, - 0x7C, - 0x4B, - 0x14, - 0x00, - 0x31, - 0x47, - 0x46, - 0x00, - 0x8D, - 0x4E, - 0x14, - 0x00, - 0x4C, - 0x4A, - 0x3B, - 0x00, - 0x3F, - 0x49, - 0x46, - 0x00, - 0x9A, - 0x4E, - 0x18, - 0x00, - 0x4A, - 0x4D, - 0x44, - 0x00, - 0x34, - 0x4D, - 0x52, - 0x00, - 0x96, - 0x58, - 0x0F, - 0x00, - 0x89, - 0x55, - 0x1E, - 0x00, - 0x4D, - 0x56, - 0x31, - 0x00, - 0x81, - 0x5A, - 0x12, - 0x00, - 0x09, - 0x4D, - 0x68, - 0x00, - 0x99, - 0x57, - 0x18, - 0x00, - 0x21, - 0x51, - 0x5A, - 0x00, - 0xA6, - 0x59, - 0x12, - 0x00, - 0x11, - 0x5E, - 0x36, - 0x00, - 0x55, - 0x53, - 0x44, - 0x00, - 0x4A, - 0x52, - 0x4D, - 0x00, - 0xA2, - 0x57, - 0x1F, - 0x00, - 0xAE, - 0x5D, - 0x17, - 0x00, - 0x0C, - 0x5C, - 0x52, - 0x00, - 0x92, - 0x60, - 0x19, - 0x00, - 0x36, - 0x66, - 0x28, - 0x00, - 0xA1, - 0x61, - 0x16, - 0x00, - 0x97, - 0x5F, - 0x23, - 0x00, - 0x3F, - 0x57, - 0x5D, - 0x00, - 0x6A, - 0x67, - 0x1B, - 0x00, - 0xA1, - 0x60, - 0x20, - 0x00, - 0x59, - 0x5A, - 0x4D, - 0x00, - 0x05, - 0x54, - 0x84, - 0x00, - 0xAD, - 0x60, - 0x26, - 0x00, - 0xAD, - 0x66, - 0x13, - 0x00, - 0x53, - 0x5B, - 0x59, - 0x00, - 0xAC, - 0x65, - 0x1D, - 0x00, - 0xB8, - 0x66, - 0x19, - 0x00, - 0x66, - 0x5F, - 0x4D, - 0x00, - 0xA5, - 0x6B, - 0x1A, - 0x00, - 0x1F, - 0x70, - 0x37, - 0x00, - 0xA2, - 0x69, - 0x23, - 0x00, - 0x82, - 0x6E, - 0x1F, - 0x00, - 0x0F, - 0x67, - 0x66, - 0x00, - 0xB0, - 0x6F, - 0x17, - 0x00, - 0xB1, - 0x69, - 0x2E, - 0x00, - 0x9A, - 0x71, - 0x1D, - 0x00, - 0xC3, - 0x6E, - 0x1A, - 0x00, - 0x04, - 0x5D, - 0x98, - 0x00, - 0xB6, - 0x6F, - 0x1F, - 0x00, - 0xAB, - 0x71, - 0x22, - 0x00, - 0x13, - 0x72, - 0x54, - 0x00, - 0x63, - 0x68, - 0x5D, - 0x00, - 0x0C, - 0x68, - 0x7D, - 0x00, - 0x36, - 0x69, - 0x6C, - 0x00, - 0x57, - 0x67, - 0x69, - 0x00, - 0x72, - 0x6C, - 0x54, - 0x00, - 0x4E, - 0x79, - 0x35, - 0x00, - 0xB4, - 0x74, - 0x26, - 0x00, - 0x03, - 0x5D, - 0xB1, - 0x00, - 0x8F, - 0x79, - 0x27, - 0x00, - 0xC3, - 0x75, - 0x23, - 0x00, - 0xBA, - 0x7A, - 0x22, - 0x00, - 0x6F, - 0x7D, - 0x32, - 0x00, - 0x0D, - 0x7C, - 0x6B, - 0x00, - 0x3C, - 0x70, - 0x84, - 0x00, - 0xC4, - 0x7F, - 0x26, - 0x00, - 0xA7, - 0x81, - 0x2A, - 0x00, - 0xB9, - 0x7C, - 0x35, - 0x00, - 0x6C, - 0x73, - 0x6E, - 0x00, - 0x04, - 0x70, - 0xA0, - 0x00, - 0x7B, - 0x76, - 0x65, - 0x00, - 0x02, - 0x69, - 0xBC, - 0x00, - 0xD2, - 0x81, - 0x26, - 0x00, - 0x54, - 0x73, - 0x81, - 0x00, - 0x02, - 0x69, - 0xC9, - 0x00, - 0x68, - 0x76, - 0x83, - 0x00, - 0xC1, - 0x88, - 0x2D, - 0x00, - 0x11, - 0x80, - 0x8C, - 0x00, - 0x8B, - 0x84, - 0x61, - 0x00, - 0xE5, - 0x8B, - 0x2F, - 0x00, - 0x2C, - 0x91, - 0x5F, - 0x00, - 0x03, - 0x78, - 0xC5, - 0x00, - 0x04, - 0x7F, - 0xB0, - 0x00, - 0x02, - 0x76, - 0xD2, - 0x00, - 0xCB, - 0x93, - 0x35, - 0x00, - 0x7C, - 0x85, - 0x80, - 0x00, - 0x6A, - 0x82, - 0x91, - 0x00, - 0x02, - 0x78, - 0xDC, - 0x00, - 0x7E, - 0x83, - 0x91, - 0x00, - 0x1A, - 0x95, - 0x7C, - 0x00, - 0x88, - 0x8A, - 0x7C, - 0x00, - 0x02, - 0x81, - 0xD0, - 0x00, - 0x0F, - 0x89, - 0xBB, - 0x00, - 0x04, - 0x87, - 0xC7, - 0x00, - 0x02, - 0x80, - 0xE2, - 0x00, - 0x73, - 0x91, - 0x84, - 0x00, - 0x03, - 0x85, - 0xD9, - 0x00, - 0x6A, - 0x93, - 0x8B, - 0x00, - 0x7F, - 0x94, - 0x84, - 0x00, - 0x81, - 0x8D, - 0x9D, - 0x00, - 0x9D, - 0x97, - 0x74, - 0x00, - 0x02, - 0x84, - 0xEA, - 0x00, - 0x77, - 0x97, - 0x8A, - 0x00, - 0x02, - 0x89, - 0xE3, - 0x00, - 0x6B, - 0x98, - 0x90, - 0x00, - 0x61, - 0x99, - 0x93, - 0x00, - 0xE0, - 0xA5, - 0x41, - 0x00, - 0x44, - 0x9D, - 0x91, - 0x00, - 0x04, - 0x91, - 0xD4, - 0x00, - 0x84, - 0x9A, - 0x8D, - 0x00, - 0x02, - 0x8A, - 0xEF, - 0x00, - 0x95, - 0x96, - 0x98, - 0x00, - 0x02, - 0x90, - 0xE0, - 0x00, - 0x02, - 0x8F, - 0xEA, - 0x00, - 0x8B, - 0x96, - 0xA7, - 0x00, - 0x6D, - 0x9E, - 0x97, - 0x00, - 0x01, - 0x8D, - 0xF5, - 0x00, - 0x5B, - 0xA0, - 0x9A, - 0x00, - 0x7C, - 0xA1, - 0x92, - 0x00, - 0x2A, - 0xA8, - 0x9F, - 0x00, - 0x53, - 0xA4, - 0x9F, - 0x00, - 0x01, - 0x92, - 0xFB, - 0x00, - 0x02, - 0x96, - 0xEE, - 0x00, - 0x03, - 0x98, - 0xE7, - 0x00, - 0x01, - 0x95, - 0xF3, - 0x00, - 0x20, - 0xAB, - 0x9F, - 0x00, - 0x4A, - 0xA6, - 0xA2, - 0x00, - 0x97, - 0x9D, - 0xAA, - 0x00, - 0x89, - 0xA3, - 0x9E, - 0x00, - 0x31, - 0xAC, - 0x9E, - 0x00, - 0x18, - 0xAE, - 0xA1, - 0x00, - 0x7A, - 0xA7, - 0x9C, - 0x00, - 0x68, - 0xA9, - 0x9C, - 0x00, - 0x44, - 0xAB, - 0xA5, - 0x00, - 0x01, - 0x98, - 0xFD, - 0x00, - 0x01, - 0x9A, - 0xF7, - 0x00, - 0x3C, - 0xAD, - 0xA6, - 0x00, - 0x01, - 0x9E, - 0xF1, - 0x00, - 0x22, - 0xB1, - 0xA6, - 0x00, - 0x12, - 0xB3, - 0xA6, - 0x00, - 0xAE, - 0xA8, - 0x97, - 0x00, - 0x01, - 0x9D, - 0xFD, - 0x00, - 0x76, - 0xAD, - 0xA2, - 0x00, - 0x18, - 0xB5, - 0xA8, - 0x00, - 0x34, - 0xB3, - 0xA7, - 0x00, - 0xA0, - 0xA7, - 0xAC, - 0x00, - 0x9E, - 0xA4, - 0xB8, - 0x00, - 0x3B, - 0xB1, - 0xAE, - 0x00, - 0x01, - 0xA2, - 0xF7, - 0x00, - 0x0E, - 0xB9, - 0xAB, - 0x00, - 0x01, - 0xA3, - 0xFD, - 0x00, - 0x2A, - 0xB8, - 0xA9, - 0x00, - 0x86, - 0xAF, - 0xA9, - 0x00, - 0x1A, - 0xB9, - 0xAE, - 0x00, - 0x6F, - 0xB2, - 0xAB, - 0x00, - 0x35, - 0xB6, - 0xB2, - 0x00, - 0x24, - 0xBA, - 0xB0, - 0x00, - 0x04, - 0xAB, - 0xF4, - 0x00, - 0x11, - 0xBE, - 0xB0, - 0x00, - 0x08, - 0xBF, - 0xB0, - 0x00, - 0x01, - 0xA9, - 0xFD, - 0x00, - 0x31, - 0xBC, - 0xB2, - 0x00, - 0x68, - 0xB7, - 0xB2, - 0x00, - 0x32, - 0xBB, - 0xB8, - 0x00, - 0x1C, - 0xBF, - 0xB4, - 0x00, - 0x5D, - 0xB9, - 0xB3, - 0x00, - 0xA9, - 0xB0, - 0xB9, - 0x00, - 0x80, - 0xB7, - 0xB3, - 0x00, - 0x2A, - 0xC0, - 0xB5, - 0x00, - 0xB4, - 0xB4, - 0xB1, - 0x00, - 0x38, - 0xBE, - 0xBB, - 0x00, - 0x0A, - 0xC5, - 0xB6, - 0x00, - 0x53, - 0xBD, - 0xBA, - 0x00, - 0x15, - 0xC5, - 0xB7, - 0x00, - 0x3B, - 0xC1, - 0xB8, - 0x00, - 0x76, - 0xBB, - 0xBA, - 0x00, - 0x32, - 0xC2, - 0xBA, - 0x00, - 0x65, - 0xBD, - 0xBC, - 0x00, - 0x1E, - 0xBB, - 0xDE, - 0x00, - 0x4A, - 0xC0, - 0xBF, - 0x00, - 0x23, - 0xC6, - 0xBA, - 0x00, - 0x44, - 0xC3, - 0xBD, - 0x00, - 0x3A, - 0xC4, - 0xC1, - 0x00, - 0x5E, - 0xC1, - 0xC5, - 0x00, - 0x38, - 0xC8, - 0xBC, - 0x00, - 0xB4, - 0xBA, - 0xC1, - 0x00, - 0x2D, - 0xC9, - 0xBD, - 0x00, - 0x0B, - 0xCD, - 0xBE, - 0x00, - 0x41, - 0xC8, - 0xBD, - 0x00, - 0x53, - 0xC5, - 0xC1, - 0x00, - 0x37, - 0xC7, - 0xC5, - 0x00, - 0x40, - 0xC6, - 0xC6, - 0x00, - 0x2E, - 0xC7, - 0xC9, - 0x00, - 0x7B, - 0xC2, - 0xC2, - 0x00, - 0x4D, - 0xC8, - 0xBF, - 0x00, - 0x27, - 0xC9, - 0xCE, - 0x00, - 0x2F, - 0xC8, - 0xCF, - 0x00, - 0x37, - 0xC8, - 0xCD, - 0x00, - 0x28, - 0xC7, - 0xD6, - 0x00, - 0x2D, - 0xC7, - 0xD5, - 0x00, - 0x6D, - 0xC5, - 0xC6, - 0x00, - 0x5C, - 0xC5, - 0xCC, - 0x00, - 0x49, - 0xC7, - 0xCC, - 0x00, - 0x50, - 0xC6, - 0xD0, - 0x00, - 0x56, - 0xCA, - 0xC2, - 0x00, - 0x5E, - 0xCA, - 0xC1, - 0x00, - 0x29, - 0xCA, - 0xD3, - 0x00, - 0x35, - 0xC8, - 0xD6, - 0x00, - 0x14, - 0xD2, - 0xC3, - 0x00, - 0xD0, - 0xC5, - 0xB0, - 0x00, - 0x3A, - 0xC9, - 0xD6, - 0x00, - 0x25, - 0xCA, - 0xDA, - 0x00, - 0x31, - 0xCA, - 0xD7, - 0x00, - 0x6A, - 0xCA, - 0xC5, - 0x00, - 0x3E, - 0xCA, - 0xD4, - 0x00, - 0x2B, - 0xCB, - 0xD8, - 0x00, - 0x45, - 0xCA, - 0xD4, - 0x00, - 0x64, - 0xCC, - 0xC3, - 0x00, - 0xC1, - 0xC2, - 0xC6, - 0x00, - 0x3B, - 0xCF, - 0xC9, - 0x00, - 0x20, - 0xD3, - 0xC5, - 0x00, - 0x6F, - 0xCC, - 0xC5, - 0x00, - 0x46, - 0xD1, - 0xCA, - 0x00, - 0x4E, - 0xCF, - 0xD5, - 0x00, - 0x75, - 0xD0, - 0xC8, - 0x00, - 0x2B, - 0xD7, - 0xCA, - 0x00, - 0x62, - 0xD3, - 0xCB, - 0x00, - 0x7F, - 0xD2, - 0xCB, - 0x00, - 0x50, - 0xD6, - 0xCE, - 0x00, - 0xCD, - 0xCC, - 0xCC, - 0x00, - 0x5A, - 0xDB, - 0xD5, - 0x00, - 0x69, - 0xDF, - 0xD7, - 0x00, - 0xDC, - 0xDE, - 0xDA, - 0x00, - 0x34, - 0x35, - 0x3A, - 0x00, - 0x49, - 0x4B, - 0x4A, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x39, - 0x3A, - 0x3E, - 0x00, - 0x35, - 0x36, - 0x3B, - 0x00, - 0x43, - 0x46, - 0x44, - 0x00, - 0x3D, - 0x3E, - 0x43, - 0x00, - 0x46, - 0x47, - 0x4C, - 0x00, - 0x80, - 0x8A, - 0x37, - 0x00, - 0x9C, - 0xAB, - 0x31, - 0x00, - 0x3A, - 0x3C, - 0x40, - 0x00, - 0x86, - 0x92, - 0x32, - 0x00, - 0x90, - 0x9E, - 0x31, - 0x00, - 0x41, - 0x42, - 0x47, - 0x00, - 0x84, - 0x8F, - 0x3C, - 0x00, - 0x9E, - 0xB4, - 0x35, - 0x00, - 0x5D, - 0x5F, - 0x46, - 0x00, - 0x8F, - 0x9C, - 0x2F, - 0x00, - 0xF0, - 0xF3, - 0xF1, - 0x00, - 0x4A, - 0x4B, - 0x50, - 0x00, - 0xA0, - 0xA1, - 0xA7, - 0x00, - 0x64, - 0x65, - 0x6A, - 0x00, - 0x36, - 0x37, - 0x3B, - 0x00, - 0x44, - 0x45, - 0x4A, - 0x00, - 0x52, - 0x53, - 0x58, - 0x00, - 0x72, - 0x73, - 0x78, - 0x00, - 0x39, - 0x3C, - 0x3A, - 0x00, - 0x4A, - 0x4D, - 0x4B, - 0x00, - 0xB2, - 0xB3, - 0xB9, - 0x00, - 0xF6, - 0xFA, - 0xF8, - 0x00, - 0xFA, - 0xFD, - 0xFB, - 0x00, - 0x38, - 0x3A, - 0x39, - 0x00, - 0x4D, - 0x4E, - 0x53, - 0x00, - 0xAF, - 0xB0, - 0xB6, - 0x00, - 0x94, - 0x96, - 0x9B, - 0x00, - 0xD7, - 0xDB, - 0xD9, - 0x00, - 0xB8, - 0xB9, - 0xBF, - 0x00, - 0x7F, - 0x81, - 0x86, - 0x00, - 0x60, - 0x61, - 0x66, - 0x00, - 0xCA, - 0xCE, - 0xCB, - 0x00, - 0x9F, - 0xB0, - 0x22, - 0x00, - 0x55, - 0x54, - 0x49, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0x59, - 0x5A, - 0x5F, - 0x00, - 0x56, - 0x57, - 0x5C, - 0x00, - 0x50, - 0x51, - 0x56, - 0x00, - 0x3F, - 0x40, - 0x45, - 0x00, - 0x99, - 0xA8, - 0x2D, - 0x00, - 0x43, - 0x44, - 0x49, - 0x00, - 0xB8, - 0xC7, - 0x60, - 0x00, - 0xEA, - 0xED, - 0xEB, - 0x00, - 0xDF, - 0xE1, - 0xE6, - 0x00, - 0xD1, - 0xD2, - 0xD8, - 0x00, - 0x5D, - 0x5E, - 0x63, - 0x00, - 0x45, - 0x46, - 0x4B, - 0x00, - 0xE4, - 0xE5, - 0xEB, - 0x00, - 0x76, - 0x78, - 0x7D, - 0x00, - 0xF3, - 0xF4, - 0xFA, - 0x00, - 0x4C, - 0x54, - 0x37, - 0x00, - 0x68, - 0x76, - 0x34, - 0x00, - 0xC4, - 0xD0, - 0x7F, - 0x00, - 0xB2, - 0xC1, - 0x4D, - 0x00, - 0x6D, - 0x74, - 0x40, - 0x00, - 0x58, - 0x59, - 0x5E, - 0x00, - 0xC5, - 0xC8, - 0xC6, - 0x00, - 0x6B, - 0x71, - 0x3E, - 0x00, - 0x63, - 0x70, - 0x38, - 0x00, - 0x97, - 0xA6, - 0x2A, - 0x00, - 0x99, - 0x9A, - 0x9F, - 0x00, - 0xD3, - 0xD7, - 0xD4, - 0x00, - 0xD1, - 0xDA, - 0x9B, - 0x00, - 0x5B, - 0x5C, - 0x61, - 0x00, - 0x8B, - 0x97, - 0x39, - 0x00, - 0x88, - 0x89, - 0x8E, - 0x00, - 0x8D, - 0x8F, - 0x94, - 0x00, - 0x84, - 0x97, - 0x32, - 0x00, - 0xAD, - 0xBC, - 0x47, - 0x00, - 0x7C, - 0x85, - 0x3D, - 0x00, - 0x5A, - 0x65, - 0x37, - 0x00, - 0x47, - 0x4E, - 0x39, - 0x00, - 0x7B, - 0x7C, - 0x81, - 0x00, - 0xAC, - 0xAD, - 0xB2, - 0x00, - 0xBC, - 0xBF, - 0xBD, - 0x00, - 0xA7, - 0xA8, - 0xAE, - 0x00, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x81, - 0x92, - 0x3A, - 0x00, - 0x8F, - 0x91, - 0x96, - 0x00, - 0x85, - 0x86, - 0x8B, - 0x00, - 0x3C, - 0x40, - 0x38, - 0x00, - 0x77, - 0x81, - 0x2D, - 0x00, - 0x72, - 0x7A, - 0x3D, - 0x00, - 0xC1, - 0xC4, - 0xC2, - 0x00, - 0xC7, - 0xCA, - 0xC8, - 0x00, - 0xF8, - 0xFC, - 0xF9, - 0x00, - 0x57, - 0x58, - 0x46, - 0x00, - 0x50, - 0x58, - 0x3B, - 0x00, - 0x88, - 0x9B, - 0x37, - 0x00, - 0x69, - 0x6A, - 0x6F, - 0x00, - 0x4E, - 0x4F, - 0x54, - 0x00, - 0x95, - 0xA4, - 0x27, - 0x00, - 0xBE, - 0xBF, - 0xC4, - 0x00, - 0xED, - 0xF0, - 0xEE, - 0x00, - 0xD9, - 0xDA, - 0xE0, - 0x00, - 0xA5, - 0xA6, - 0xAC, - 0x00, - 0xF4, - 0xF8, - 0xF6, - 0x00, - 0x3F, - 0x45, - 0x36, - 0x00, - 0x7C, - 0x8D, - 0x35, - 0x00, - 0x41, - 0x47, - 0x38, - 0x00, - 0x68, - 0x6D, - 0x43, - 0x00, - 0x6C, - 0x6E, - 0x72, - 0x00, - 0x52, - 0x5C, - 0x37, - 0x00, - 0x49, - 0x50, - 0x3A, - 0x00, - 0x89, - 0x96, - 0x27, - 0x00, - 0xA3, - 0xA4, - 0xAA, - 0x00, - 0x37, - 0x39, - 0x37, - 0x00, - 0x71, - 0x7A, - 0x32, - 0x00, - 0xAA, - 0xBB, - 0x34, - 0x00, - 0x66, - 0x6B, - 0x41, - 0x00, - 0xEC, - 0xEE, - 0xF3, - 0x00, - 0x59, - 0x5A, - 0x48, - 0x00, - 0x6E, - 0x70, - 0x74, - 0x00, - 0xE5, - 0xE8, - 0xE6, - 0x00, - 0x66, - 0x68, - 0x6C, - 0x00, - 0x97, - 0xAC, - 0x3C, - 0x00, - 0x6C, - 0x73, - 0x3F, - 0x00, - 0x94, - 0xA9, - 0x38, - 0x00, - 0x9E, - 0xAD, - 0x34, - 0x00, - 0xF2, - 0xF5, - 0xF3, - 0x00, - 0xC0, - 0xC1, - 0xC6, - 0x00, - 0xE8, - 0xEA, - 0xEF, - 0x00, - 0x45, - 0x4C, - 0x36, - 0x00, - 0x75, - 0x7D, - 0x40, - 0x00, - 0x8A, - 0x96, - 0x37, - 0x00, - 0x4C, - 0x4F, - 0x4D, - 0x00, - 0x6A, - 0x6C, - 0x70, - 0x00, - 0xCB, - 0xCD, - 0xD2, - 0x00, - 0xCB, - 0xCF, - 0xCD, - 0x00, - 0x9C, - 0xB2, - 0x33, - 0x00, - 0x6F, - 0x7D, - 0x3C, - 0x00, - 0x6A, - 0x78, - 0x36, - 0x00, - 0x43, - 0x49, - 0x3A, - 0x00, - 0x61, - 0x65, - 0x43, - 0x00, - 0xDC, - 0xDF, - 0xDD, - 0x00, - 0x72, - 0x82, - 0x35, - 0x00, - 0x5A, - 0x5B, - 0x60, - 0x00, - 0xED, - 0xF0, - 0xD3, - 0x00, - 0x63, - 0x67, - 0x45, - 0x00, - 0x84, - 0x90, - 0x30, - 0x00, - 0x5D, - 0x68, - 0x3A, - 0x00, - 0x6D, - 0x7B, - 0x39, - 0x00, - 0x3A, - 0x3E, - 0x36, - 0x00, - 0x3E, - 0x42, - 0x3A, - 0x00, - 0xD8, - 0xE0, - 0xAA, - 0x00, - 0xFD, - 0xFC, - 0xEF, - 0x00, - 0xD5, - 0xD6, - 0xDC, - 0x00, - 0xDF, - 0xE2, - 0xE0, - 0x00, - 0x91, - 0xA5, - 0x33, - 0x00, - 0x8E, - 0xA2, - 0x2F, - 0x00, - 0x60, - 0x6D, - 0x35, - 0x00, - 0x75, - 0x85, - 0x38, - 0x00, - 0xBA, - 0xBC, - 0xC1, - 0x00, - 0xF0, - 0xF1, - 0xF7, - 0x00, - 0xC2, - 0xC4, - 0xC9, - 0x00, - 0xC6, - 0xC7, - 0xCD, - 0x00, - 0x78, - 0x81, - 0x3A, - 0x00, - 0xB4, - 0xB7, - 0xB5, - 0x00, - 0x55, - 0x5F, - 0x3A, - 0x00, - 0xC2, - 0xCF, - 0x74, - 0x00, - 0xC9, - 0xCC, - 0xCA, - 0x00, - 0x74, - 0x72, - 0x6D, - 0x00, - 0x53, - 0x52, - 0x47, - 0x00, - 0x74, - 0x75, - 0x7A, - 0x00, - 0xC4, - 0xC7, - 0xC5, - 0x00, - 0x7D, - 0x7E, - 0x83, - 0x00, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xCC, - 0xD7, - 0x8F, - 0x00, - 0x61, - 0x63, - 0x67, - 0x00, - 0x4F, - 0x53, - 0x4B, - 0x00, - 0xCE, - 0xD1, - 0xCF, - 0x00, - 0x7F, - 0x8A, - 0x29, - 0x00, - 0x6E, - 0x6A, - 0x6C, - 0x00, - 0xE5, - 0xE9, - 0xC4, - 0x00, - 0x58, - 0x61, - 0x3C, - 0x00, - 0x5B, - 0x5E, - 0x44, - 0x00, - 0xD0, - 0xD3, - 0xD1, - 0x00, - 0xE3, - 0xE6, - 0xE4, - 0x00, - 0x9C, - 0x9D, - 0xA2, - 0x00, - 0x73, - 0x6F, - 0x71, - 0x00, - 0x6A, - 0x72, - 0x34, - 0x00, - 0x4F, - 0x4D, - 0x49, - 0x00, - 0x97, - 0x98, - 0x9D, - 0x00, - 0x82, - 0x83, - 0x88, - 0x00, - 0x79, - 0x8A, - 0x31, - 0x00, - 0x60, - 0x63, - 0x61, - 0x00, - 0x70, - 0x6D, - 0x69, - 0x00, - 0x6F, - 0x78, - 0x30, - 0x00, - 0xE7, - 0xEA, - 0xE8, - 0x00, - 0x93, - 0xA0, - 0x34, - 0x00, - 0x86, - 0x99, - 0x34, - 0x00, - 0x65, - 0x68, - 0x66, - 0x00, - 0xF0, - 0xF1, - 0xDC, - 0x00, - 0x8C, - 0x9F, - 0x3B, - 0x00, - 0xE1, - 0xE7, - 0xB9, - 0x00, - 0x66, - 0x72, - 0x3B, - 0x00, - 0xCE, - 0xCF, - 0xD5, - 0x00, - 0xF6, - 0xF7, - 0xE1, - 0x00, - 0x95, - 0xA2, - 0x37, - 0x00, - 0x69, - 0x65, - 0x67, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x00, - 0x98, - 0xAE, - 0x2D, - 0x00, - 0x78, - 0x88, - 0x3B, - 0x00, - 0xBD, - 0xCA, - 0x6F, - 0x00, - 0xF8, - 0xF8, - 0xEA, - 0x00, - 0x4B, - 0x52, - 0x3C, - 0x00, - 0xB6, - 0xC5, - 0x5D, - 0x00, - 0xB5, - 0xB6, - 0xBB, - 0x00, - 0x8D, - 0x99, - 0x3B, - 0x00, - 0x60, - 0x66, - 0x33, - 0x00, - 0x69, - 0x6C, - 0x6A, - 0x00, - 0x3B, - 0x3E, - 0x3C, - 0x00, - 0xF6, - 0xF5, - 0xE8, - 0x00, - 0xD5, - 0xDE, - 0x9F, - 0x00, - 0x65, - 0x6B, - 0x38, - 0x00, - 0xDD, - 0xDE, - 0xE4, - 0x00, - 0xA2, - 0xB8, - 0x3B, - 0x00, - 0x50, - 0x4E, - 0x4A, - 0x00, - 0x6F, - 0x75, - 0x42, - 0x00, - 0x7E, - 0x89, - 0x35, - 0x00, - 0x9E, - 0xA0, - 0xA5, - 0x00, - 0x30, - 0x35, - 0x3C, - 0x00, - 0x5A, - 0x5D, - 0x5B, - 0x00, - 0x81, - 0x8D, - 0x2C, - 0x00, - 0xF1, - 0xF6, - 0xEC, - 0x00, - 0xFF, - 0xFE, - 0xF8, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - - /* - Fonts - */ - 0x04, - 0x42, - 0x18, - 0x00, - 0x00, - 0x5E, - 0x19, - 0x00, - 0x00, - 0x7A, - 0x1A, - 0x00, - 0x00, - 0x96, - 0x1B, - 0x00, - 0x00, - 0x5E, - 0x67, - 0x00, - 0x00, - 0x03, - 0x03, - 0x00, - 0x04, - 0x07, - 0x00, - 0x09, - 0x10, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0D, - 0x24, - 0x00, - 0x0C, - 0x30, - 0x00, - 0x03, - 0x33, - 0x00, - 0x06, - 0x39, - 0x00, - 0x06, - 0x3F, - 0x00, - 0x05, - 0x44, - 0x00, - 0x08, - 0x4C, - 0x00, - 0x04, - 0x50, - 0x00, - 0x04, - 0x54, - 0x00, - 0x03, - 0x57, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x09, - 0x67, - 0x00, - 0x05, - 0x6C, - 0x00, - 0x08, - 0x74, - 0x00, - 0x08, - 0x7C, - 0x00, - 0x08, - 0x84, - 0x00, - 0x0A, - 0x8E, - 0x00, - 0x09, - 0x97, - 0x00, - 0x07, - 0x9E, - 0x00, - 0x08, - 0xA6, - 0x00, - 0x09, - 0xAF, - 0x00, - 0x03, - 0xB2, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x08, - 0xBE, - 0x00, - 0x08, - 0xC6, - 0x00, - 0x08, - 0xCE, - 0x00, - 0x08, - 0xD6, - 0x00, - 0x0D, - 0xE3, - 0x00, - 0x0C, - 0xEF, - 0x00, - 0x08, - 0xF7, - 0x00, - 0x0D, - 0x04, - 0x01, - 0x0B, - 0x0F, - 0x01, - 0x08, - 0x17, - 0x01, - 0x07, - 0x1E, - 0x01, - 0x0D, - 0x2B, - 0x01, - 0x09, - 0x34, - 0x01, - 0x03, - 0x37, - 0x01, - 0x07, - 0x3E, - 0x01, - 0x09, - 0x47, - 0x01, - 0x07, - 0x4E, - 0x01, - 0x0D, - 0x5B, - 0x01, - 0x0A, - 0x65, - 0x01, - 0x0D, - 0x72, - 0x01, - 0x09, - 0x7B, - 0x01, - 0x0D, - 0x88, - 0x01, - 0x09, - 0x91, - 0x01, - 0x08, - 0x99, - 0x01, - 0x07, - 0xA0, - 0x01, - 0x09, - 0xA9, - 0x01, - 0x0C, - 0xB5, - 0x01, - 0x10, - 0xC5, - 0x01, - 0x0A, - 0xCF, - 0x01, - 0x0B, - 0xDA, - 0x01, - 0x07, - 0xE1, - 0x01, - 0x04, - 0xE5, - 0x01, - 0x07, - 0xEC, - 0x01, - 0x05, - 0xF1, - 0x01, - 0x0A, - 0xFB, - 0x01, - 0x08, - 0x03, - 0x02, - 0x04, - 0x07, - 0x02, - 0x0A, - 0x11, - 0x02, - 0x0A, - 0x1B, - 0x02, - 0x0A, - 0x25, - 0x02, - 0x0A, - 0x2F, - 0x02, - 0x0A, - 0x39, - 0x02, - 0x05, - 0x3E, - 0x02, - 0x0A, - 0x48, - 0x02, - 0x09, - 0x51, - 0x02, - 0x03, - 0x54, - 0x02, - 0x05, - 0x59, - 0x02, - 0x08, - 0x61, - 0x02, - 0x03, - 0x64, - 0x02, - 0x0E, - 0x72, - 0x02, - 0x09, - 0x7B, - 0x02, - 0x0A, - 0x85, - 0x02, - 0x0A, - 0x8F, - 0x02, - 0x0A, - 0x99, - 0x02, - 0x05, - 0x9E, - 0x02, - 0x06, - 0xA4, - 0x02, - 0x05, - 0xA9, - 0x02, - 0x09, - 0xB2, - 0x02, - 0x09, - 0xBB, - 0x02, - 0x0E, - 0xC9, - 0x02, - 0x08, - 0xD1, - 0x02, - 0x09, - 0xDA, - 0x02, - 0x06, - 0xE0, - 0x02, - 0x05, - 0xE5, - 0x02, - 0x03, - 0xE8, - 0x02, - 0x05, - 0xED, - 0x02, - 0x09, - 0x5E, - 0x68, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0C, - 0x16, - 0x00, - 0x09, - 0x20, - 0x00, - 0x11, - 0x32, - 0x00, - 0x10, - 0x43, - 0x00, - 0x02, - 0x46, - 0x00, - 0x07, - 0x4E, - 0x00, - 0x07, - 0x56, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x0C, - 0x6B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x77, - 0x00, - 0x02, - 0x7A, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x0C, - 0x92, - 0x00, - 0x05, - 0x98, - 0x00, - 0x0B, - 0xA4, - 0x00, - 0x0B, - 0xB0, - 0x00, - 0x0C, - 0xBD, - 0x00, - 0x0C, - 0xCA, - 0x00, - 0x0C, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x0C, - 0xFB, - 0x00, - 0x02, - 0xFE, - 0x00, - 0x04, - 0x03, - 0x01, - 0x0C, - 0x10, - 0x01, - 0x0C, - 0x1D, - 0x01, - 0x0C, - 0x2A, - 0x01, - 0x0B, - 0x36, - 0x01, - 0x11, - 0x48, - 0x01, - 0x11, - 0x5A, - 0x01, - 0x0B, - 0x66, - 0x01, - 0x11, - 0x78, - 0x01, - 0x0E, - 0x87, - 0x01, - 0x0A, - 0x92, - 0x01, - 0x09, - 0x9C, - 0x01, - 0x12, - 0xAF, - 0x01, - 0x0C, - 0xBC, - 0x01, - 0x02, - 0xBF, - 0x01, - 0x09, - 0xC9, - 0x01, - 0x0C, - 0xD6, - 0x01, - 0x09, - 0xE0, - 0x01, - 0x12, - 0xF3, - 0x01, - 0x0E, - 0x02, - 0x02, - 0x12, - 0x15, - 0x02, - 0x0B, - 0x21, - 0x02, - 0x12, - 0x34, - 0x02, - 0x0C, - 0x41, - 0x02, - 0x0B, - 0x4D, - 0x02, - 0x0A, - 0x58, - 0x02, - 0x0C, - 0x65, - 0x02, - 0x10, - 0x76, - 0x02, - 0x16, - 0x8D, - 0x02, - 0x0E, - 0x9C, - 0x02, - 0x0E, - 0xAB, - 0x02, - 0x0B, - 0xB7, - 0x02, - 0x05, - 0xBD, - 0x02, - 0x0A, - 0xC8, - 0x02, - 0x05, - 0xCE, - 0x02, - 0x0E, - 0xDD, - 0x02, - 0x0C, - 0xEA, - 0x02, - 0x07, - 0xF2, - 0x02, - 0x0E, - 0x01, - 0x03, - 0x0D, - 0x0F, - 0x03, - 0x0E, - 0x1E, - 0x03, - 0x0E, - 0x2D, - 0x03, - 0x0D, - 0x3B, - 0x03, - 0x07, - 0x43, - 0x03, - 0x0D, - 0x51, - 0x03, - 0x0B, - 0x5D, - 0x03, - 0x02, - 0x60, - 0x03, - 0x05, - 0x66, - 0x03, - 0x0B, - 0x72, - 0x03, - 0x02, - 0x75, - 0x03, - 0x13, - 0x89, - 0x03, - 0x0B, - 0x95, - 0x03, - 0x0D, - 0xA3, - 0x03, - 0x0D, - 0xB1, - 0x03, - 0x0D, - 0xBF, - 0x03, - 0x06, - 0xC6, - 0x03, - 0x08, - 0xCF, - 0x03, - 0x07, - 0xD7, - 0x03, - 0x0B, - 0xE3, - 0x03, - 0x0D, - 0xF1, - 0x03, - 0x14, - 0x06, - 0x04, - 0x0B, - 0x12, - 0x04, - 0x0D, - 0x20, - 0x04, - 0x09, - 0x2A, - 0x04, - 0x06, - 0x31, - 0x04, - 0x02, - 0x34, - 0x04, - 0x06, - 0x3B, - 0x04, - 0x0C, - 0x5E, - 0x69, - 0x00, - 0x00, - 0x02, - 0x02, - 0x00, - 0x04, - 0x06, - 0x00, - 0x0B, - 0x11, - 0x00, - 0x09, - 0x1A, - 0x00, - 0x10, - 0x2A, - 0x00, - 0x0F, - 0x39, - 0x00, - 0x02, - 0x3B, - 0x00, - 0x06, - 0x41, - 0x00, - 0x07, - 0x48, - 0x00, - 0x06, - 0x4E, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x05, - 0x5E, - 0x00, - 0x06, - 0x64, - 0x00, - 0x02, - 0x66, - 0x00, - 0x09, - 0x6F, - 0x00, - 0x0B, - 0x7A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x0A, - 0x89, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x0B, - 0x9F, - 0x00, - 0x0C, - 0xAB, - 0x00, - 0x0B, - 0xB6, - 0x00, - 0x09, - 0xBF, - 0x00, - 0x0A, - 0xC9, - 0x00, - 0x0B, - 0xD4, - 0x00, - 0x02, - 0xD6, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x0B, - 0xE5, - 0x00, - 0x0B, - 0xF0, - 0x00, - 0x0B, - 0xFB, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x10, - 0x15, - 0x01, - 0x10, - 0x25, - 0x01, - 0x0A, - 0x2F, - 0x01, - 0x10, - 0x3F, - 0x01, - 0x0D, - 0x4C, - 0x01, - 0x09, - 0x55, - 0x01, - 0x09, - 0x5E, - 0x01, - 0x11, - 0x6F, - 0x01, - 0x0C, - 0x7B, - 0x01, - 0x02, - 0x7D, - 0x01, - 0x09, - 0x86, - 0x01, - 0x0B, - 0x91, - 0x01, - 0x09, - 0x9A, - 0x01, - 0x11, - 0xAB, - 0x01, - 0x0D, - 0xB8, - 0x01, - 0x11, - 0xC9, - 0x01, - 0x0B, - 0xD4, - 0x01, - 0x11, - 0xE5, - 0x01, - 0x0B, - 0xF0, - 0x01, - 0x0A, - 0xFA, - 0x01, - 0x09, - 0x03, - 0x02, - 0x0B, - 0x0E, - 0x02, - 0x0F, - 0x1D, - 0x02, - 0x15, - 0x32, - 0x02, - 0x0D, - 0x3F, - 0x02, - 0x0E, - 0x4D, - 0x02, - 0x0A, - 0x57, - 0x02, - 0x04, - 0x5B, - 0x02, - 0x09, - 0x64, - 0x02, - 0x05, - 0x69, - 0x02, - 0x0D, - 0x76, - 0x02, - 0x0B, - 0x81, - 0x02, - 0x06, - 0x87, - 0x02, - 0x0D, - 0x94, - 0x02, - 0x0C, - 0xA0, - 0x02, - 0x0D, - 0xAD, - 0x02, - 0x0D, - 0xBA, - 0x02, - 0x0C, - 0xC6, - 0x02, - 0x06, - 0xCC, - 0x02, - 0x0C, - 0xD8, - 0x02, - 0x0B, - 0xE3, - 0x02, - 0x02, - 0xE5, - 0x02, - 0x05, - 0xEA, - 0x02, - 0x0A, - 0xF4, - 0x02, - 0x02, - 0xF6, - 0x02, - 0x12, - 0x08, - 0x03, - 0x0A, - 0x12, - 0x03, - 0x0C, - 0x1E, - 0x03, - 0x0C, - 0x2A, - 0x03, - 0x0D, - 0x37, - 0x03, - 0x05, - 0x3C, - 0x03, - 0x07, - 0x43, - 0x03, - 0x07, - 0x4A, - 0x03, - 0x0A, - 0x54, - 0x03, - 0x0C, - 0x60, - 0x03, - 0x12, - 0x72, - 0x03, - 0x0B, - 0x7D, - 0x03, - 0x0C, - 0x89, - 0x03, - 0x09, - 0x92, - 0x03, - 0x06, - 0x98, - 0x03, - 0x02, - 0x9A, - 0x03, - 0x06, - 0xA0, - 0x03, - 0x0B, - 0x5E, - 0x6A, - 0x00, - 0x00, - 0x02, - 0x02, - 0x00, - 0x04, - 0x06, - 0x00, - 0x0B, - 0x11, - 0x00, - 0x09, - 0x1A, - 0x00, - 0x10, - 0x2A, - 0x00, - 0x0F, - 0x39, - 0x00, - 0x02, - 0x3B, - 0x00, - 0x06, - 0x41, - 0x00, - 0x07, - 0x48, - 0x00, - 0x06, - 0x4E, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x05, - 0x5E, - 0x00, - 0x06, - 0x64, - 0x00, - 0x02, - 0x66, - 0x00, - 0x09, - 0x6F, - 0x00, - 0x0B, - 0x7A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x0A, - 0x89, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x0B, - 0x9F, - 0x00, - 0x0C, - 0xAB, - 0x00, - 0x0B, - 0xB6, - 0x00, - 0x09, - 0xBF, - 0x00, - 0x0A, - 0xC9, - 0x00, - 0x0B, - 0xD4, - 0x00, - 0x02, - 0xD6, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x0B, - 0xE5, - 0x00, - 0x0B, - 0xF0, - 0x00, - 0x0B, - 0xFB, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x10, - 0x15, - 0x01, - 0x10, - 0x25, - 0x01, - 0x0A, - 0x2F, - 0x01, - 0x10, - 0x3F, - 0x01, - 0x0D, - 0x4C, - 0x01, - 0x09, - 0x55, - 0x01, - 0x09, - 0x5E, - 0x01, - 0x11, - 0x6F, - 0x01, - 0x0C, - 0x7B, - 0x01, - 0x02, - 0x7D, - 0x01, - 0x09, - 0x86, - 0x01, - 0x0B, - 0x91, - 0x01, - 0x09, - 0x9A, - 0x01, - 0x11, - 0xAB, - 0x01, - 0x0D, - 0xB8, - 0x01, - 0x11, - 0xC9, - 0x01, - 0x0B, - 0xD4, - 0x01, - 0x11, - 0xE5, - 0x01, - 0x0B, - 0xF0, - 0x01, - 0x0A, - 0xFA, - 0x01, - 0x09, - 0x03, - 0x02, - 0x0B, - 0x0E, - 0x02, - 0x0F, - 0x1D, - 0x02, - 0x15, - 0x32, - 0x02, - 0x0D, - 0x3F, - 0x02, - 0x0E, - 0x4D, - 0x02, - 0x0A, - 0x57, - 0x02, - 0x04, - 0x5B, - 0x02, - 0x09, - 0x64, - 0x02, - 0x05, - 0x69, - 0x02, - 0x0D, - 0x76, - 0x02, - 0x0B, - 0x81, - 0x02, - 0x06, - 0x87, - 0x02, - 0x0D, - 0x94, - 0x02, - 0x0C, - 0xA0, - 0x02, - 0x0D, - 0xAD, - 0x02, - 0x0D, - 0xBA, - 0x02, - 0x0C, - 0xC6, - 0x02, - 0x06, - 0xCC, - 0x02, - 0x0C, - 0xD8, - 0x02, - 0x0B, - 0xE3, - 0x02, - 0x02, - 0xE5, - 0x02, - 0x05, - 0xEA, - 0x02, - 0x0A, - 0xF4, - 0x02, - 0x02, - 0xF6, - 0x02, - 0x12, - 0x08, - 0x03, - 0x0A, - 0x12, - 0x03, - 0x0C, - 0x1E, - 0x03, - 0x0C, - 0x2A, - 0x03, - 0x0D, - 0x37, - 0x03, - 0x05, - 0x3C, - 0x03, - 0x07, - 0x43, - 0x03, - 0x07, - 0x4A, - 0x03, - 0x0A, - 0x54, - 0x03, - 0x0C, - 0x60, - 0x03, - 0x12, - 0x72, - 0x03, - 0x0B, - 0x7D, - 0x03, - 0x0C, - 0x89, - 0x03, - 0x09, - 0x92, - 0x03, - 0x06, - 0x98, - 0x03, - 0x02, - 0x9A, - 0x03, - 0x06, - 0xA0, - 0x03, - 0x0B, - - /* - Bitmaps - */ - 0x6B, - 0x5F, - 0x1E, - 0x00, - 0x00, - 0x3B, - 0x20, - 0x00, - 0x00, - 0x1B, - 0x22, - 0x00, - 0x00, - 0xF3, - 0x23, - 0x00, - 0x00, - 0x2F, - 0x26, - 0x00, - 0x00, - 0xD3, - 0x2B, - 0x00, - 0x00, - 0x4F, - 0x2E, - 0x00, - 0x00, - 0xB7, - 0x35, - 0x00, - 0x00, - 0xD7, - 0x3C, - 0x00, - 0x00, - 0xFB, - 0x40, - 0x00, - 0x00, - 0x9F, - 0x45, - 0x00, - 0x00, - 0x8B, - 0x49, - 0x00, - 0x00, - 0x73, - 0x4D, - 0x00, - 0x00, - 0x97, - 0x51, - 0x00, - 0x00, - 0xB7, - 0x55, - 0x00, - 0x00, - 0xEF, - 0x59, - 0x00, - 0x00, - 0x73, - 0x5E, - 0x00, - 0x00, - 0x4B, - 0x62, - 0x00, - 0x00, - 0x57, - 0x66, - 0x00, - 0x00, - 0x77, - 0x6A, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x00, - 0xB3, - 0x71, - 0x00, - 0x00, - 0x53, - 0x75, - 0x00, - 0x00, - 0xAB, - 0x7A, - 0x00, - 0x00, - 0x77, - 0x7D, - 0x00, - 0x00, - 0xEF, - 0x81, - 0x00, - 0x00, - 0x7F, - 0x97, - 0x00, - 0x00, - 0x7B, - 0x99, - 0x00, - 0x00, - 0x77, - 0x9B, - 0x00, - 0x00, - 0x6B, - 0x9D, - 0x00, - 0x00, - 0x5B, - 0x9F, - 0x00, - 0x00, - 0x37, - 0xA1, - 0x00, - 0x00, - 0xB7, - 0xA2, - 0x00, - 0x00, - 0x03, - 0xA4, - 0x00, - 0x00, - 0x13, - 0xA5, - 0x00, - 0x00, - 0xCF, - 0xA5, - 0x00, - 0x00, - 0xDF, - 0xA6, - 0x00, - 0x00, - 0x2B, - 0xA8, - 0x00, - 0x00, - 0xAF, - 0xA9, - 0x00, - 0x00, - 0x8B, - 0xAB, - 0x00, - 0x00, - 0x7B, - 0xAD, - 0x00, - 0x00, - 0x6F, - 0xAF, - 0x00, - 0x00, - 0x6F, - 0xB1, - 0x00, - 0x00, - 0x6F, - 0xB3, - 0x00, - 0x00, - 0x6F, - 0xB5, - 0x00, - 0x00, - 0x63, - 0xB7, - 0x00, - 0x00, - 0x53, - 0xB9, - 0x00, - 0x00, - 0x2F, - 0xBB, - 0x00, - 0x00, - 0xB3, - 0xBC, - 0x00, - 0x00, - 0xFF, - 0xBD, - 0x00, - 0x00, - 0x0F, - 0xBF, - 0x00, - 0x00, - 0xCB, - 0xBF, - 0x00, - 0x00, - 0xDB, - 0xC0, - 0x00, - 0x00, - 0x27, - 0xC2, - 0x00, - 0x00, - 0xA7, - 0xC3, - 0x00, - 0x00, - 0x83, - 0xC5, - 0x00, - 0x00, - 0x73, - 0xC7, - 0x00, - 0x00, - 0x67, - 0xC9, - 0x00, - 0x00, - 0x63, - 0xCB, - 0x00, - 0x00, - 0x3B, - 0xCD, - 0x00, - 0x00, - 0xB3, - 0xD8, - 0x00, - 0x00, - 0x6B, - 0xE5, - 0x00, - 0x00, - 0x97, - 0xEE, - 0x00, - 0x00, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x5B, - 0xFE, - 0x00, - 0x00, - 0x8F, - 0x05, - 0x01, - 0x00, - 0x83, - 0x0B, - 0x01, - 0x00, - 0xDB, - 0x10, - 0x01, - 0x00, - 0xE7, - 0x14, - 0x01, - 0x00, - 0xF3, - 0x16, - 0x01, - 0x00, - 0x03, - 0x1B, - 0x01, - 0x00, - 0x5B, - 0x20, - 0x01, - 0x00, - 0x47, - 0x26, - 0x01, - 0x00, - 0x7B, - 0x2D, - 0x01, - 0x00, - 0xF7, - 0x34, - 0x01, - 0x00, - 0x5B, - 0x3D, - 0x01, - 0x00, - 0x8F, - 0x46, - 0x01, - 0x00, - 0xFB, - 0x52, - 0x01, - 0x00, - 0x4B, - 0x5E, - 0x01, - 0x00, - 0xB7, - 0x6A, - 0x01, - 0x00, - 0xEB, - 0x73, - 0x01, - 0x00, - 0x4F, - 0x7C, - 0x01, - 0x00, - 0xCB, - 0x83, - 0x01, - 0x00, - 0xFF, - 0x8A, - 0x01, - 0x00, - 0xEB, - 0x90, - 0x01, - 0x00, - 0x43, - 0x96, - 0x01, - 0x00, - 0x53, - 0x9A, - 0x01, - 0x00, - 0x5F, - 0x9C, - 0x01, - 0x00, - 0x6B, - 0xA0, - 0x01, - 0x00, - 0xC3, - 0xA5, - 0x01, - 0x00, - 0xB7, - 0xAB, - 0x01, - 0x00, - 0xEB, - 0xB2, - 0x01, - 0x00, - 0x67, - 0xBA, - 0x01, - 0x00, - 0xAF, - 0xC2, - 0x01, - 0x00, - 0xDB, - 0xCB, - 0x01, - 0x00, - 0x93, - 0xD8, - 0x01, - 0x00, - 0xA7, - 0xE8, - 0x01, - 0x00, - 0xBB, - 0xF4, - 0x01, - 0x00, - 0x87, - 0xFA, - 0x01, - 0x00, - 0x5F, - 0x02, - 0x02, - 0x00, - 0x93, - 0x09, - 0x02, - 0x00, - 0xF3, - 0x10, - 0x02, - 0x00, - 0x23, - 0x37, - 0x03, - 0x00, - 0x6B, - 0x5A, - 0x04, - 0x00, - 0xF9, - 0x89, - 0x04, - 0x00, - 0x0D, - 0xFE, - 0x04, - 0x00, - 0x8F, - 0x52, - 0x05, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x12, - 0x01, - 0x00, - 0x03, - 0x1C, - 0xA5, - 0x7D, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x12, - 0x01, - 0x00, - 0x03, - 0x4E, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x11, - 0x01, - 0x00, - 0x04, - 0x84, - 0x02, - 0x02, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x10, - 0x01, - 0x00, - 0x05, - 0x3F, - 0x02, - 0x02, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0F, - 0x01, - 0x01, - 0x6D, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0E, - 0x01, - 0x01, - 0x76, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0D, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x85, - 0x09, - 0x6D, - 0x01, - 0x8E, - 0x10, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0C, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x7F, - 0x11, - 0x02, - 0x01, - 0x0C, - 0x0F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0B, - 0x01, - 0x01, - 0x5F, - 0x01, - 0x0A, - 0x13, - 0x02, - 0x01, - 0x86, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0A, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x30, - 0x14, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x09, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xCF, - 0x15, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x09, - 0x01, - 0x01, - 0x76, - 0x16, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x09, - 0x01, - 0x01, - 0x11, - 0x16, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0A, - 0x01, - 0x01, - 0x09, - 0x15, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0A, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x85, - 0x14, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0B, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x10, - 0x01, - 0x1C, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0C, - 0x01, - 0x01, - 0xAB, - 0x01, - 0xC6, - 0x11, - 0x02, - 0x01, - 0x09, - 0x0F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0D, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x09, - 0x8E, - 0x01, - 0x5F, - 0x10, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0E, - 0x01, - 0x01, - 0x5F, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0F, - 0x01, - 0x00, - 0x06, - 0x11, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x10, - 0x01, - 0x00, - 0x05, - 0x93, - 0x10, - 0x02, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x11, - 0x01, - 0x00, - 0x04, - 0x6D, - 0x02, - 0x02, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x12, - 0x01, - 0x00, - 0x03, - 0x5B, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x13, - 0x01, - 0x01, - 0x3F, - 0x01, - 0x76, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x08, - 0x00, - 0x01, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x01, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x4E, - 0x01, - 0x8E, - 0x14, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x03, - 0x30, - 0x29, - 0x11, - 0x00, - 0x13, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x04, - 0x30, - 0x02, - 0x0A, - 0x5F, - 0x12, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x44, - 0xB2, - 0x00, - 0x11, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x86, - 0x10, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x30, - 0x04, - 0x02, - 0x01, - 0x49, - 0x01, - 0x1C, - 0x0F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0E, - 0x01, - 0x01, - 0x1C, - 0x0A, - 0x8E, - 0x01, - 0x7C, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x1C, - 0x0E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x11, - 0x02, - 0x01, - 0x4E, - 0x0E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x6D, - 0x13, - 0x02, - 0x01, - 0x5B, - 0x0D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x13, - 0x02, - 0x01, - 0x10, - 0x01, - 0x7D, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x93, - 0x0B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x30, - 0x01, - 0x1C, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x29, - 0x01, - 0x86, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x84, - 0x0B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x14, - 0x02, - 0x01, - 0x09, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x6D, - 0x13, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1C, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x7F, - 0x11, - 0x02, - 0x01, - 0xD9, - 0x01, - 0xBE, - 0x0D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0E, - 0x01, - 0x01, - 0x86, - 0x01, - 0x76, - 0x09, - 0x6D, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x30, - 0x04, - 0x02, - 0x01, - 0xCF, - 0x01, - 0xAB, - 0x0F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x30, - 0x5F, - 0x10, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x0A, - 0x5F, - 0x00, - 0x11, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x04, - 0x30, - 0x02, - 0x29, - 0x11, - 0x12, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x03, - 0x30, - 0x8A, - 0x8E, - 0x00, - 0x13, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x09, - 0x01, - 0x93, - 0x14, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x37, - 0x2E, - 0x01, - 0x01, - 0x31, - 0x00, - 0x01, - 0x00, - 0x00, - 0x19, - 0x00, - 0x00, - 0x00, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCA, - 0x01, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x60, - 0x01, - 0xBD, - 0x0C, - 0x3C, - 0x01, - 0x95, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x59, - 0x4C, - 0x0F, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0xC1, - 0x00, - 0x12, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x20, - 0x10, - 0x02, - 0x94, - 0x1B, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x50, - 0x7F, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x50, - 0x02, - 0x02, - 0xA7, - 0x00, - 0x04, - 0x00, - 0x01, - 0x59, - 0x01, - 0x50, - 0x08, - 0x00, - 0x00, - 0x03, - 0xB4, - 0x02, - 0x9E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x50, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x30, - 0x10, - 0x4F, - 0x07, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x50, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x59, - 0x9E, - 0x02, - 0x02, - 0x10, - 0xA7, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x50, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x1B, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x60, - 0x05, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x50, - 0x02, - 0x0A, - 0x6C, - 0x1B, - 0xC7, - 0x00, - 0x07, - 0x02, - 0x01, - 0x3B, - 0x04, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x50, - 0x29, - 0x70, - 0x20, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x08, - 0x29, - 0x70, - 0x00, - 0x00, - 0x00, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x6C, - 0x3B, - 0x73, - 0x94, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xD2, - 0x50, - 0x00, - 0x00, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x09, - 0x04, - 0x02, - 0x00, - 0x04, - 0x64, - 0x3B, - 0x3B, - 0x7E, - 0x04, - 0x02, - 0x00, - 0x06, - 0x7E, - 0x8D, - 0x00, - 0xA0, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x00, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x10, - 0x8B, - 0x20, - 0x00, - 0x00, - 0x59, - 0x56, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6A, - 0x1B, - 0xCA, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x8B, - 0x02, - 0x02, - 0x02, - 0x64, - 0x3B, - 0x00, - 0x06, - 0x00, - 0x00, - 0x09, - 0xCC, - 0x10, - 0x02, - 0x02, - 0x02, - 0x64, - 0x98, - 0x59, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x3B, - 0x02, - 0x02, - 0x10, - 0x8B, - 0x20, - 0x08, - 0x00, - 0x00, - 0x08, - 0x3B, - 0x7E, - 0x02, - 0x02, - 0x02, - 0xCA, - 0x59, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6A, - 0x0A, - 0x64, - 0x3B, - 0x0B, - 0x00, - 0x00, - 0x07, - 0x59, - 0x56, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x20, - 0x73, - 0x1B, - 0x6C, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x06, - 0xCC, - 0x10, - 0x02, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x74, - 0x7E, - 0x6B, - 0x1B, - 0x0C, - 0x00, - 0x00, - 0x06, - 0x3B, - 0x7E, - 0x02, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x96, - 0x02, - 0x02, - 0x10, - 0x0B, - 0x02, - 0x00, - 0x07, - 0x09, - 0x1B, - 0x59, - 0x0C, - 0x02, - 0x02, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x4C, - 0x0E, - 0x02, - 0x00, - 0x07, - 0x0D, - 0x50, - 0x00, - 0x3C, - 0x10, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x6C, - 0x01, - 0xCC, - 0x0C, - 0x96, - 0x00, - 0x07, - 0x9F, - 0x8D, - 0x00, - 0x00, - 0x3B, - 0xC4, - 0x20, - 0x00, - 0x00, - 0x01, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x2E, - 0x02, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xD9, - 0x05, - 0x7C, - 0x01, - 0xD9, - 0x05, - 0x01, - 0x01, - 0xA5, - 0x05, - 0x7C, - 0x01, - 0xCF, - 0x01, - 0x78, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x7D, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x11, - 0x04, - 0x78, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0A, - 0x01, - 0x00, - 0x04, - 0x8E, - 0x7D, - 0x7D, - 0x5B, - 0x13, - 0x02, - 0x00, - 0x04, - 0x09, - 0x7D, - 0x7D, - 0x6D, - 0x0A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0A, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x29, - 0x18, - 0x02, - 0x01, - 0x5B, - 0x0A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0B, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x30, - 0x15, - 0x02, - 0x01, - 0x29, - 0x01, - 0x76, - 0x0B, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0C, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x0D, - 0x13, - 0x02, - 0x01, - 0x30, - 0x01, - 0x11, - 0x0C, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0xE2, - 0x01, - 0x0C, - 0x11, - 0x02, - 0x01, - 0xCF, - 0x01, - 0xB2, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0F, - 0x01, - 0x01, - 0x4E, - 0x10, - 0x02, - 0x01, - 0x0F, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x10, - 0x01, - 0x01, - 0x3F, - 0x01, - 0x10, - 0x0E, - 0x02, - 0x01, - 0x0F, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x11, - 0x01, - 0x01, - 0x93, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x12, - 0x01, - 0x01, - 0x11, - 0x01, - 0x30, - 0x07, - 0x02, - 0x00, - 0x06, - 0x7C, - 0x11, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x13, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0D, - 0x2A, - 0x01, - 0x29, - 0x02, - 0x02, - 0x09, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x14, - 0x01, - 0x00, - 0x0D, - 0x86, - 0x85, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x1C, - 0x01, - 0x01, - 0x11, - 0x6D, - 0x6D, - 0x2A, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x16, - 0x01, - 0x00, - 0x04, - 0x4E, - 0x0A, - 0xA5, - 0x1C, - 0x15, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2E, - 0x01, - 0x01, - 0x06, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x07, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x2C, - 0x01, - 0x00, - 0x06, - 0x2A, - 0x11, - 0x76, - 0x8E, - 0x5F, - 0x1C, - 0x29, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x26, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x8E, - 0x4E, - 0x0D, - 0x30, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x7F, - 0xC6, - 0x0F, - 0x6D, - 0xAB, - 0x00, - 0x24, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x23, - 0x01, - 0x00, - 0x04, - 0x1C, - 0x76, - 0x09, - 0x0A, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x10, - 0x49, - 0x3F, - 0x2A, - 0x21, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x22, - 0x01, - 0x01, - 0x76, - 0x01, - 0x44, - 0x15, - 0x02, - 0x00, - 0x03, - 0x29, - 0xA5, - 0x86, - 0x00, - 0x1F, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x20, - 0x01, - 0x01, - 0x11, - 0x01, - 0x0D, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x5B, - 0x1C, - 0x00, - 0x1D, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1E, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0F, - 0x1D, - 0x02, - 0x01, - 0x44, - 0x01, - 0x11, - 0x1C, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1D, - 0x01, - 0x01, - 0x5F, - 0x01, - 0xC6, - 0x20, - 0x02, - 0x01, - 0x6D, - 0x1B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1C, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x7C, - 0x22, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x1C, - 0x19, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1B, - 0x01, - 0x01, - 0x7D, - 0x01, - 0x10, - 0x24, - 0x02, - 0x01, - 0x85, - 0x01, - 0x1C, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x01, - 0x76, - 0x01, - 0x10, - 0x26, - 0x02, - 0x01, - 0x0C, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x29, - 0x28, - 0x02, - 0x01, - 0x84, - 0x17, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x30, - 0x12, - 0x02, - 0x00, - 0x04, - 0x44, - 0x49, - 0x30, - 0x10, - 0x14, - 0x02, - 0x01, - 0x6D, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xD9, - 0x11, - 0x02, - 0x00, - 0x09, - 0x0D, - 0x78, - 0x01, - 0x01, - 0x01, - 0x86, - 0x42, - 0x85, - 0x10, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x01, - 0xB8, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x7D, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xAB, - 0x07, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x30, - 0x11, - 0x02, - 0x01, - 0xD9, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0xBE, - 0x01, - 0x30, - 0x11, - 0x02, - 0x01, - 0x4E, - 0x09, - 0x01, - 0x01, - 0x09, - 0x12, - 0x02, - 0x01, - 0x76, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0x5B, - 0x12, - 0x02, - 0x01, - 0x3F, - 0x05, - 0x01, - 0x00, - 0x05, - 0x1C, - 0x5F, - 0x1C, - 0x01, - 0x7D, - 0x00, - 0x12, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x1C, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x12, - 0x02, - 0x01, - 0x5B, - 0x05, - 0x01, - 0x00, - 0x05, - 0x0C, - 0x02, - 0x10, - 0x0D, - 0x09, - 0x00, - 0x13, - 0x02, - 0x01, - 0x7D, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x84, - 0x13, - 0x02, - 0x01, - 0x0F, - 0x05, - 0x01, - 0x01, - 0x85, - 0x17, - 0x02, - 0x01, - 0x30, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x0D, - 0x13, - 0x02, - 0x01, - 0x44, - 0x05, - 0x01, - 0x01, - 0xA5, - 0x18, - 0x02, - 0x01, - 0x11, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x2A, - 0x15, - 0x02, - 0x01, - 0x2A, - 0x04, - 0x01, - 0x01, - 0x76, - 0x18, - 0x02, - 0x01, - 0xA5, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x6D, - 0x04, - 0x01, - 0x01, - 0x86, - 0x01, - 0x10, - 0x17, - 0x02, - 0x01, - 0xC6, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x49, - 0x15, - 0x02, - 0x01, - 0x09, - 0x05, - 0x01, - 0x01, - 0x0D, - 0x18, - 0x02, - 0x01, - 0x5F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x10, - 0x15, - 0x02, - 0x01, - 0x44, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x18, - 0x02, - 0x01, - 0x5B, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5F, - 0x17, - 0x02, - 0x01, - 0xB2, - 0x04, - 0x01, - 0x01, - 0x76, - 0x18, - 0x02, - 0x01, - 0x4E, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x8E, - 0x17, - 0x02, - 0x01, - 0x6D, - 0x04, - 0x01, - 0x01, - 0x86, - 0x18, - 0x02, - 0x01, - 0x0F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x6D, - 0x17, - 0x02, - 0x01, - 0x09, - 0x05, - 0x01, - 0x01, - 0x0D, - 0x17, - 0x02, - 0x01, - 0x49, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5B, - 0x17, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x17, - 0x02, - 0x01, - 0xC6, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x4E, - 0x17, - 0x02, - 0x01, - 0x10, - 0x01, - 0x86, - 0x04, - 0x01, - 0x01, - 0x76, - 0x17, - 0x02, - 0x01, - 0x7C, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x4E, - 0x18, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0xB2, - 0x17, - 0x02, - 0x01, - 0x7C, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5B, - 0x13, - 0x02, - 0x00, - 0x06, - 0x29, - 0x5B, - 0x85, - 0x30, - 0x8A, - 0xB8, - 0x05, - 0x01, - 0x01, - 0x0A, - 0x16, - 0x02, - 0x01, - 0xC6, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x6D, - 0x14, - 0x02, - 0x01, - 0xAB, - 0x09, - 0x01, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0x49, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x8E, - 0x14, - 0x02, - 0x01, - 0x76, - 0x08, - 0x01, - 0x01, - 0x86, - 0x17, - 0x02, - 0x01, - 0x0F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5F, - 0x14, - 0x02, - 0x01, - 0x49, - 0x01, - 0x2A, - 0x07, - 0x01, - 0x01, - 0x84, - 0x17, - 0x02, - 0x01, - 0x4E, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x1C, - 0x15, - 0x02, - 0x00, - 0x09, - 0x10, - 0x49, - 0x7D, - 0x5F, - 0x01, - 0x01, - 0x86, - 0x84, - 0x10, - 0x00, - 0x17, - 0x02, - 0x01, - 0x3F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x85, - 0x18, - 0x02, - 0x01, - 0x29, - 0x01, - 0x7C, - 0x1A, - 0x02, - 0x01, - 0x5F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x3F, - 0x33, - 0x02, - 0x01, - 0xC6, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x2A, - 0x33, - 0x02, - 0x01, - 0x84, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x0D, - 0x19, - 0x02, - 0x00, - 0x05, - 0x85, - 0xB8, - 0x1C, - 0x11, - 0x0D, - 0x00, - 0x14, - 0x02, - 0x01, - 0x11, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x5B, - 0x18, - 0x02, - 0x01, - 0x49, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x30, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x17, - 0x02, - 0x01, - 0x11, - 0x05, - 0x01, - 0x01, - 0x76, - 0x12, - 0x02, - 0x01, - 0x42, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0x5B, - 0x17, - 0x02, - 0x01, - 0x86, - 0x05, - 0x01, - 0x01, - 0x2A, - 0x11, - 0x02, - 0x01, - 0x0D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0xB8, - 0x05, - 0x01, - 0x01, - 0xB8, - 0x11, - 0x02, - 0x01, - 0x93, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x6D, - 0x16, - 0x02, - 0x01, - 0x09, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x10, - 0x02, - 0x01, - 0x49, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x49, - 0x15, - 0x02, - 0x00, - 0x07, - 0x10, - 0x84, - 0x1C, - 0x01, - 0x1C, - 0x84, - 0x10, - 0x00, - 0x0F, - 0x02, - 0x01, - 0x29, - 0x01, - 0x78, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x44, - 0x16, - 0x02, - 0x00, - 0x03, - 0x29, - 0x0D, - 0x7F, - 0x00, - 0x10, - 0x02, - 0x01, - 0x10, - 0x01, - 0x76, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0x78, - 0x01, - 0x7F, - 0x28, - 0x02, - 0x01, - 0x84, - 0x17, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x01, - 0x93, - 0x27, - 0x02, - 0x01, - 0x0F, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1B, - 0x01, - 0x01, - 0x42, - 0x01, - 0x8A, - 0x24, - 0x02, - 0x01, - 0x0C, - 0x01, - 0xE2, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1C, - 0x01, - 0x01, - 0x11, - 0x01, - 0x0A, - 0x22, - 0x02, - 0x01, - 0xA5, - 0x1A, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1D, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x0D, - 0x1F, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6D, - 0x1B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1E, - 0x01, - 0x00, - 0x03, - 0xE2, - 0x09, - 0x10, - 0x00, - 0x1C, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x11, - 0x1C, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x20, - 0x01, - 0x01, - 0x11, - 0x01, - 0x49, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3F, - 0x1C, - 0x00, - 0x1D, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x22, - 0x01, - 0x01, - 0x93, - 0x01, - 0xC6, - 0x15, - 0x02, - 0x00, - 0x03, - 0x29, - 0x84, - 0x1C, - 0x00, - 0x1F, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x24, - 0x01, - 0x00, - 0x03, - 0x93, - 0x09, - 0x30, - 0x00, - 0x10, - 0x02, - 0x00, - 0x03, - 0x85, - 0x3F, - 0xAB, - 0x00, - 0x21, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x27, - 0x01, - 0x00, - 0x05, - 0x11, - 0xA5, - 0x12, - 0x44, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x10, - 0x30, - 0x0D, - 0x0F, - 0x6D, - 0x1C, - 0x24, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x2C, - 0x01, - 0x00, - 0x05, - 0x1C, - 0x5F, - 0x11, - 0xB8, - 0xB2, - 0x00, - 0x2A, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x04, - 0x5B, - 0x0B, - 0x01, - 0x17, - 0x00, - 0x01, - 0x00, - 0x00, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x05, - 0x05, - 0x14, - 0x19, - 0x21, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x06, - 0x19, - 0x40, - 0x2F, - 0x31, - 0xB1, - 0x04, - 0x00, - 0x00, - 0x00, - 0x32, - 0x08, - 0x31, - 0x05, - 0x2D, - 0x00, - 0x00, - 0x14, - 0x2F, - 0x00, - 0x0E, - 0x40, - 0x37, - 0x05, - 0x18, - 0x2D, - 0x14, - 0x05, - 0x14, - 0xB1, - 0x31, - 0x2E, - 0xC3, - 0x07, - 0x14, - 0x0E, - 0x00, - 0x05, - 0x2E, - 0x2D, - 0x0E, - 0x19, - 0x00, - 0x00, - 0x63, - 0x91, - 0x00, - 0x04, - 0x63, - 0x19, - 0x0E, - 0x00, - 0x05, - 0x14, - 0x2D, - 0x2F, - 0x2E, - 0x00, - 0x07, - 0x31, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x32, - 0x2D, - 0x63, - 0x05, - 0xBC, - 0x00, - 0x00, - 0x36, - 0x08, - 0x00, - 0x16, - 0x21, - 0x0B, - 0x14, - 0x27, - 0x37, - 0x2D, - 0x19, - 0x00, - 0x27, - 0x27, - 0x21, - 0x07, - 0x00, - 0x48, - 0x14, - 0x00, - 0x14, - 0x27, - 0x37, - 0x27, - 0xDB, - 0x00, - 0x0E, - 0xD0, - 0x18, - 0x00, - 0xC8, - 0x2E, - 0x08, - 0x27, - 0x07, - 0x63, - 0x27, - 0x14, - 0xB5, - 0x7B, - 0x00, - 0x08, - 0x14, - 0x14, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x2D, - 0x63, - 0x05, - 0xBC, - 0x00, - 0x00, - 0x36, - 0x08, - 0x00, - 0xC3, - 0x17, - 0x00, - 0xC2, - 0x0E, - 0x04, - 0x00, - 0x00, - 0x13, - 0x91, - 0xD0, - 0x2D, - 0x17, - 0x00, - 0x48, - 0x14, - 0x00, - 0x37, - 0xC8, - 0x0E, - 0x07, - 0xB5, - 0x00, - 0x14, - 0x91, - 0x00, - 0x07, - 0x16, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0xC2, - 0x0E, - 0x00, - 0x2F, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x2D, - 0x63, - 0x05, - 0xBC, - 0x00, - 0x00, - 0x36, - 0x08, - 0x00, - 0xC3, - 0x17, - 0x00, - 0xC8, - 0xD0, - 0x27, - 0x7B, - 0x40, - 0x0E, - 0x16, - 0x05, - 0x2E, - 0x19, - 0x00, - 0x48, - 0x21, - 0x00, - 0x00, - 0x18, - 0x2D, - 0xC2, - 0xB5, - 0x00, - 0x14, - 0x91, - 0x00, - 0x31, - 0xC3, - 0x27, - 0x27, - 0xBC, - 0x07, - 0x27, - 0x0E, - 0x00, - 0x07, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x2D, - 0x63, - 0x05, - 0xAA, - 0x2D, - 0x07, - 0xD0, - 0x31, - 0x05, - 0xDB, - 0x07, - 0x05, - 0x19, - 0x19, - 0x05, - 0x48, - 0x08, - 0x07, - 0xD0, - 0x05, - 0x14, - 0x36, - 0x05, - 0x48, - 0xB5, - 0x14, - 0x05, - 0x37, - 0x17, - 0x08, - 0x27, - 0x05, - 0x14, - 0x91, - 0x17, - 0x00, - 0xB5, - 0x0B, - 0x07, - 0x7B, - 0x00, - 0x14, - 0x48, - 0x0B, - 0x08, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x63, - 0x14, - 0x05, - 0x91, - 0x37, - 0xC2, - 0x40, - 0x00, - 0x2C, - 0xAA, - 0x16, - 0x08, - 0x17, - 0x19, - 0x27, - 0x14, - 0x05, - 0x00, - 0x14, - 0x27, - 0x40, - 0x2D, - 0x14, - 0x19, - 0x31, - 0x91, - 0x31, - 0x2D, - 0xB1, - 0xC2, - 0x31, - 0x0E, - 0xB5, - 0xBC, - 0xC2, - 0x00, - 0x0E, - 0x36, - 0x91, - 0x2F, - 0x00, - 0x05, - 0x21, - 0xB1, - 0xC2, - 0x7B, - 0x00, - 0x00, - 0x01, - 0x05, - 0x08, - 0x00, - 0x01, - 0xC3, - 0x01, - 0x17, - 0x15, - 0x00, - 0x01, - 0x14, - 0x01, - 0x91, - 0x0A, - 0x00, - 0x01, - 0x07, - 0x01, - 0x7B, - 0x00, - 0x00, - 0x01, - 0x2E, - 0x01, - 0x08, - 0x07, - 0x00, - 0x01, - 0x14, - 0x01, - 0x05, - 0x15, - 0x00, - 0x01, - 0x07, - 0x01, - 0x18, - 0x0A, - 0x00, - 0x01, - 0x07, - 0x01, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x2C, - 0x00, - 0x01, - 0x05, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x18, - 0x0E, - 0x00, - 0x07, - 0x08, - 0x00, - 0x00, - 0x2E, - 0x00, - 0x07, - 0x19, - 0x21, - 0x2F, - 0x31, - 0x18, - 0x31, - 0x00, - 0x05, - 0x63, - 0x05, - 0x2E, - 0x00, - 0x0E, - 0x31, - 0x00, - 0x04, - 0x14, - 0x00, - 0x00, - 0x21, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x63, - 0x00, - 0x37, - 0x27, - 0x00, - 0x00, - 0xBC, - 0x00, - 0x36, - 0x19, - 0x19, - 0xDB, - 0x2D, - 0x0B, - 0xC8, - 0x04, - 0x40, - 0x19, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x2D, - 0x00, - 0x2F, - 0x16, - 0x00, - 0x00, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x63, - 0x00, - 0x37, - 0x27, - 0x00, - 0x00, - 0xBC, - 0x00, - 0x36, - 0x2D, - 0x05, - 0x2E, - 0x2D, - 0x00, - 0x08, - 0xC8, - 0x16, - 0x05, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x2D, - 0x00, - 0x2F, - 0x16, - 0x00, - 0x00, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x63, - 0x00, - 0x37, - 0x27, - 0x00, - 0x00, - 0xBC, - 0x00, - 0x17, - 0x19, - 0x27, - 0x62, - 0x2D, - 0x00, - 0x04, - 0xBC, - 0x2E, - 0x00, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x2D, - 0x00, - 0x2F, - 0x16, - 0x00, - 0x00, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x16, - 0x2F, - 0x21, - 0xBC, - 0x08, - 0x07, - 0xBC, - 0x00, - 0x07, - 0x07, - 0x00, - 0x40, - 0x21, - 0x00, - 0x36, - 0x19, - 0xC8, - 0x07, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x16, - 0x0E, - 0x08, - 0xAA, - 0x14, - 0x17, - 0xBC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x19, - 0x21, - 0x2C, - 0x62, - 0x14, - 0x19, - 0x7B, - 0x2E, - 0x00, - 0x31, - 0x27, - 0x7B, - 0x27, - 0x04, - 0x08, - 0x36, - 0x00, - 0x08, - 0x91, - 0x00, - 0xB5, - 0x00, - 0x21, - 0x2E, - 0x40, - 0xB5, - 0x21, - 0x2E, - 0xC8, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x01, - 0x00, - 0x03, - 0x05, - 0x36, - 0x05, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x45, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x5A, - 0x07, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x20, - 0x01, - 0x70, - 0x31, - 0x60, - 0x01, - 0x3B, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x20, - 0x8C, - 0x0D, - 0x00, - 0x35, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x90, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x39, - 0x02, - 0x01, - 0x30, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x50, - 0x3D, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x3D, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x8C, - 0x00, - 0x3F, - 0x02, - 0x01, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x3F, - 0x02, - 0x01, - 0x29, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x20, - 0x41, - 0x02, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x70, - 0x41, - 0x02, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xD3, - 0x05, - 0x8D, - 0x01, - 0x83, - 0x01, - 0x61, - 0x05, - 0x02, - 0x01, - 0x64, - 0x01, - 0x50, - 0x05, - 0x8D, - 0x01, - 0x74, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x05, - 0x8D, - 0x01, - 0xA7, - 0x06, - 0x02, - 0x01, - 0x8B, - 0x05, - 0x8D, - 0x01, - 0x50, - 0x01, - 0x9E, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x8B, - 0x05, - 0x1B, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x98, - 0x05, - 0x1B, - 0x01, - 0x43, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3B, - 0x05, - 0x1B, - 0x01, - 0x3B, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xCC, - 0x05, - 0x1B, - 0x01, - 0x98, - 0x01, - 0x12, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x3C, - 0x05, - 0x00, - 0x01, - 0x05, - 0x01, - 0xE8, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x1B, - 0x05, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x83, - 0x05, - 0x00, - 0x01, - 0x83, - 0x01, - 0x7C, - 0x05, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x20, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x0C, - 0x05, - 0x3B, - 0x01, - 0x60, - 0x01, - 0x9E, - 0x05, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6F, - 0x05, - 0x3B, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x9F, - 0x05, - 0x3B, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0x09, - 0x05, - 0x3B, - 0x01, - 0x60, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x10, - 0x06, - 0x0D, - 0x07, - 0x02, - 0x01, - 0x64, - 0x05, - 0x0D, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x30, - 0x05, - 0x0D, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x8A, - 0x05, - 0x0D, - 0x01, - 0x9E, - 0x09, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x4F, - 0x06, - 0x00, - 0x01, - 0x8B, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x06, - 0x00, - 0x01, - 0x60, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x59, - 0x05, - 0x00, - 0x01, - 0x59, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x60, - 0x05, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x09, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x70, - 0x06, - 0x00, - 0x01, - 0x95, - 0x05, - 0x02, - 0x01, - 0x74, - 0x06, - 0x00, - 0x01, - 0x59, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x00, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x6A, - 0x06, - 0x00, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x9E, - 0x05, - 0x9F, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xCC, - 0x05, - 0x9F, - 0x01, - 0x12, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x05, - 0x9F, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x12, - 0x05, - 0x9F, - 0x01, - 0xBD, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x05, - 0xA0, - 0x01, - 0x09, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0xE8, - 0x05, - 0xA0, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x05, - 0xA0, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x01, - 0x30, - 0x05, - 0xA0, - 0x01, - 0xB4, - 0x09, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x60, - 0x06, - 0x00, - 0x01, - 0x43, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x06, - 0x00, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x01, - 0x64, - 0x01, - 0x73, - 0x05, - 0x00, - 0x01, - 0x73, - 0x01, - 0x64, - 0x05, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x8B, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x60, - 0x06, - 0x00, - 0x01, - 0x43, - 0x05, - 0x02, - 0x01, - 0x90, - 0x06, - 0x00, - 0x01, - 0x6C, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x05, - 0x00, - 0x01, - 0x05, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x8B, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x06, - 0x5A, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0x09, - 0x05, - 0x5A, - 0x01, - 0x9D, - 0x06, - 0x02, - 0x01, - 0x4C, - 0x05, - 0x5A, - 0x01, - 0x4C, - 0x06, - 0x02, - 0x01, - 0x30, - 0x05, - 0x5A, - 0x01, - 0xA0, - 0x09, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x07, - 0x02, - 0x01, - 0x94, - 0x01, - 0x3B, - 0x2F, - 0x20, - 0x01, - 0x50, - 0x01, - 0xA0, - 0x07, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x20, - 0x31, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x09, - 0x33, - 0x00, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x61, - 0x33, - 0x00, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x31, - 0x00, - 0x01, - 0x50, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x70, - 0x08, - 0x02, - 0x01, - 0x61, - 0x2F, - 0x5A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x20, - 0x10, - 0x00, - 0x40, - 0x02, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x3F, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x3C, - 0x00, - 0x3F, - 0x02, - 0x01, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x73, - 0x0D, - 0x3D, - 0x02, - 0x01, - 0x30, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x50, - 0x3C, - 0x02, - 0x01, - 0x10, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x39, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x73, - 0xCC, - 0x61, - 0x00, - 0x34, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0D, - 0x96, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x73, - 0x01, - 0x50, - 0x31, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x20, - 0x00, - 0x01, - 0x00, - 0x00, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x12, - 0x07, - 0x00, - 0x00, - 0x5D, - 0x05, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1D, - 0x01, - 0x01, - 0xAB, - 0x23, - 0x5F, - 0x01, - 0x86, - 0x19, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x00, - 0x03, - 0x2A, - 0x0F, - 0x30, - 0x00, - 0x24, - 0x02, - 0x00, - 0x04, - 0x10, - 0x44, - 0xA5, - 0x1C, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0x93, - 0x01, - 0x7C, - 0x29, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x5F, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x0A, - 0x2B, - 0x02, - 0x01, - 0x12, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x4E, - 0x2D, - 0x02, - 0x01, - 0x6D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x0D, - 0x2D, - 0x02, - 0x01, - 0x09, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x10, - 0x2D, - 0x02, - 0x01, - 0x0D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0x0D, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xC6, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x7C, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x84, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x7C, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x84, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x7C, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x84, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x05, - 0x02, - 0x01, - 0x85, - 0x01, - 0x8E, - 0x21, - 0xB8, - 0x01, - 0x76, - 0x01, - 0xC6, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x05, - 0x02, - 0x01, - 0xB2, - 0x23, - 0x01, - 0x01, - 0x93, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x05, - 0x02, - 0x01, - 0xB2, - 0x23, - 0x01, - 0x01, - 0x93, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x1C, - 0x05, - 0x02, - 0x01, - 0x85, - 0x01, - 0x8E, - 0x21, - 0xB8, - 0x01, - 0x76, - 0x01, - 0xC6, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x30, - 0x2D, - 0x02, - 0x01, - 0x0F, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x0C, - 0x2D, - 0x02, - 0x01, - 0x5B, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x11, - 0x01, - 0x10, - 0x2B, - 0x02, - 0x01, - 0x30, - 0x01, - 0xAB, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0x84, - 0x2B, - 0x02, - 0x01, - 0x93, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x01, - 0x76, - 0x01, - 0x0A, - 0x27, - 0x02, - 0x01, - 0x0D, - 0x01, - 0xB8, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1B, - 0x01, - 0x00, - 0x03, - 0x1C, - 0x11, - 0x3F, - 0x00, - 0x23, - 0x5B, - 0x01, - 0x42, - 0x01, - 0x5F, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x2F, - 0x5B, - 0x0E, - 0x01, - 0x07, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x16, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x0A, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x05, - 0x2E, - 0x00, - 0x14, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x05, - 0x31, - 0x00, - 0x04, - 0x30, - 0x31, - 0x30, - 0x30, - 0x0C, - 0x31, - 0x00, - 0x03, - 0x30, - 0x31, - 0x30, - 0x00, - 0x06, - 0x31, - 0x01, - 0x30, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x03, - 0x26, - 0x43, - 0x26, - 0x00, - 0x04, - 0x43, - 0x00, - 0x0F, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x26, - 0x00, - 0x09, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x04, - 0x43, - 0x42, - 0x42, - 0x43, - 0x05, - 0x42, - 0x01, - 0x3C, - 0x01, - 0xF6, - 0x05, - 0x00, - 0x00, - 0x09, - 0xF7, - 0x3C, - 0x43, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x00, - 0x04, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0B, - 0x42, - 0x00, - 0x0D, - 0x29, - 0x42, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x00, - 0x07, - 0x42, - 0x01, - 0x29, - 0x01, - 0x29, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0E, - 0x29, - 0x00, - 0x0B, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x28, - 0x00, - 0x0B, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x00, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x27, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3D, - 0x00, - 0x0B, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x00, - 0x0D, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x0B, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x00, - 0x0D, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x34, - 0x01, - 0x34, - 0x05, - 0x35, - 0x00, - 0x0A, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x0D, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x05, - 0x18, - 0x00, - 0x03, - 0x34, - 0x34, - 0x34, - 0x00, - 0x05, - 0x18, - 0x01, - 0x61, - 0x01, - 0xF4, - 0x05, - 0x00, - 0x00, - 0x12, - 0x55, - 0x1A, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x10, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x18, - 0x1B, - 0x00, - 0x0D, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x20, - 0x00, - 0x05, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x0D, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x96, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x03, - 0x2E, - 0x2E, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x07, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x0F, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x0E, - 0x31, - 0x00, - 0x03, - 0x30, - 0x31, - 0x30, - 0x00, - 0x09, - 0x31, - 0x00, - 0x05, - 0x30, - 0x31, - 0x30, - 0x31, - 0x30, - 0x00, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x05, - 0x26, - 0x01, - 0x30, - 0x20, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x11, - 0x41, - 0x21, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x00, - 0x04, - 0x43, - 0x00, - 0x0B, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x43, - 0x43, - 0x26, - 0x00, - 0x08, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x08, - 0x42, - 0x01, - 0x3C, - 0x01, - 0xF6, - 0x05, - 0x00, - 0x00, - 0x07, - 0xF7, - 0x3C, - 0x43, - 0x42, - 0x42, - 0x3C, - 0xF6, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0xF7, - 0x3C, - 0x43, - 0x00, - 0x05, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x1B, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x42, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x42, - 0x42, - 0x29, - 0x29, - 0x00, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x07, - 0x29, - 0x00, - 0x17, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x29, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x08, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x28, - 0x00, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x28, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x00, - 0x08, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x27, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x27, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3D, - 0x00, - 0x17, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x00, - 0x08, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x07, - 0x3C, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x3C, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3F, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x3F, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3E, - 0x00, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x3E, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x00, - 0x08, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x07, - 0x19, - 0x00, - 0x17, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x00, - 0x08, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x00, - 0x16, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x35, - 0x35, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x08, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x06, - 0x18, - 0x01, - 0x61, - 0x01, - 0xF4, - 0x05, - 0x00, - 0x00, - 0x07, - 0x55, - 0x1A, - 0x18, - 0x18, - 0x18, - 0x61, - 0xF4, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x55, - 0x1A, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x09, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x06, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x0B, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x1C, - 0x1B, - 0x00, - 0x09, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x00, - 0x07, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x08, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xDE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x09, - 0x3A, - 0x00, - 0x04, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x05, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x2B, - 0x09, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x1B, - 0x2B, - 0x01, - 0x3B, - 0x0A, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x0F, - 0x2C, - 0x01, - 0x45, - 0x05, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x01, - 0x2F, - 0x04, - 0x45, - 0x00, - 0x0E, - 0x2F, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x0D, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x00, - 0x09, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x2D, - 0x00, - 0x04, - 0x31, - 0x00, - 0x1B, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x00, - 0x06, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x10, - 0x26, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x30, - 0x04, - 0x26, - 0x04, - 0x30, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x26, - 0x43, - 0x04, - 0x26, - 0x01, - 0x43, - 0x0A, - 0x26, - 0x00, - 0x05, - 0x43, - 0x26, - 0xF7, - 0x00, - 0x41, - 0x00, - 0x06, - 0x26, - 0x01, - 0x43, - 0x09, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x01, - 0x42, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x33, - 0x00, - 0x00, - 0x5A, - 0x0D, - 0x43, - 0x00, - 0x05, - 0x42, - 0x43, - 0x43, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x29, - 0x00, - 0x04, - 0x32, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x28, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x54, - 0x59, - 0x10, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x12, - 0x27, - 0x00, - 0x04, - 0x1A, - 0x00, - 0x00, - 0x59, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x04, - 0x41, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x00, - 0x04, - 0x37, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x08, - 0x4F, - 0x09, - 0xB8, - 0x13, - 0x13, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x08, - 0x5A, - 0x54, - 0x00, - 0xF5, - 0x59, - 0x00, - 0x00, - 0x59, - 0x0E, - 0x3E, - 0x00, - 0x04, - 0x19, - 0x3E, - 0x60, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x01, - 0x50, - 0x01, - 0xB8, - 0x04, - 0x00, - 0x01, - 0x58, - 0x10, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1A, - 0x0B, - 0x35, - 0x34, - 0x34, - 0x35, - 0x0B, - 0x34, - 0x00, - 0x13, - 0x35, - 0x34, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x00, - 0x04, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x12, - 0x18, - 0x00, - 0x04, - 0x21, - 0x00, - 0x00, - 0x58, - 0x10, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x0B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x0A, - 0x33, - 0x58, - 0x00, - 0x5C, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x05, - 0x1B, - 0x00, - 0x07, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x08, - 0x1E, - 0x00, - 0x0C, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x05, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x06, - 0x1E, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x06, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0B, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x00, - 0x03, - 0x1D, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x24, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xDA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x0B, - 0x3A, - 0x00, - 0x08, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x06, - 0x3A, - 0x01, - 0x2B, - 0x0C, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2C, - 0x45, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x13, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x45, - 0x2F, - 0x00, - 0x05, - 0x45, - 0x00, - 0x06, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x2F, - 0x0B, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0D, - 0x2E, - 0x00, - 0x06, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x0A, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x09, - 0x31, - 0x00, - 0x1F, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x08, - 0x30, - 0x01, - 0x26, - 0x04, - 0x30, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x30, - 0x00, - 0x0B, - 0x26, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x41, - 0x21, - 0x26, - 0x26, - 0x43, - 0x26, - 0x43, - 0x26, - 0x43, - 0x00, - 0x07, - 0x26, - 0x01, - 0x4F, - 0x09, - 0x00, - 0x01, - 0x37, - 0x04, - 0x26, - 0x01, - 0x43, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x01, - 0x58, - 0x09, - 0x00, - 0x01, - 0x36, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x42, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x00, - 0xF5, - 0x1B, - 0x00, - 0x13, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x05, - 0x50, - 0x00, - 0x00, - 0xF6, - 0x1C, - 0x00, - 0x12, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x28, - 0x00, - 0x05, - 0x61, - 0xF5, - 0x00, - 0xF5, - 0x61, - 0x00, - 0x11, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x11, - 0x27, - 0x00, - 0x05, - 0x4E, - 0xF5, - 0x09, - 0x00, - 0x59, - 0x00, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x05, - 0x41, - 0xF7, - 0xB3, - 0x54, - 0x58, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x14, - 0x3C, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF9, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x01, - 0x1B, - 0x04, - 0x3F, - 0x00, - 0x04, - 0x32, - 0xF5, - 0x00, - 0xF6, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x03, - 0x59, - 0x00, - 0x56, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x04, - 0x56, - 0x00, - 0x00, - 0x40, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x57, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x19, - 0x19, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x06, - 0x34, - 0x01, - 0x35, - 0x04, - 0x34, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x34, - 0x5F, - 0x00, - 0x00, - 0xF7, - 0x1E, - 0x34, - 0x58, - 0x00, - 0x00, - 0x55, - 0x00, - 0x04, - 0x34, - 0x00, - 0x04, - 0x35, - 0x35, - 0x34, - 0x35, - 0x06, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x0F, - 0x18, - 0x01, - 0x57, - 0x07, - 0x00, - 0x01, - 0x17, - 0x0E, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5C, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x17, - 0x1B, - 0x33, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x06, - 0x1E, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x06, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x08, - 0x1E, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x04, - 0x1E, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x06, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x0E, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x14, - 0x01, - 0x36, - 0x14, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x1C, - 0x11, - 0x01, - 0x0A, - 0x07, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x18, - 0x11, - 0x01, - 0xFB, - 0x07, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x16, - 0x04, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x37, - 0x5F, - 0x3A, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x00, - 0x0A, - 0x3A, - 0x00, - 0x05, - 0x2B, - 0x3A, - 0x3A, - 0x3A, - 0x2B, - 0x00, - 0x12, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x04, - 0x2C, - 0x01, - 0x45, - 0x1B, - 0x2C, - 0x00, - 0x08, - 0x45, - 0x2C, - 0x2C, - 0x45, - 0x2C, - 0x2C, - 0x61, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x5E, - 0x45, - 0x45, - 0x2F, - 0x00, - 0x15, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x2F, - 0x2F, - 0x00, - 0x04, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0A, - 0x2E, - 0x00, - 0x04, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x08, - 0x37, - 0x21, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x04, - 0x31, - 0x00, - 0x1E, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x37, - 0x21, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x00, - 0x06, - 0x30, - 0x00, - 0x0D, - 0x26, - 0x30, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x26, - 0x30, - 0x26, - 0x00, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x06, - 0x26, - 0x01, - 0x43, - 0x05, - 0x26, - 0x00, - 0x0D, - 0x43, - 0x26, - 0x26, - 0x43, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x56, - 0xB2, - 0x43, - 0x00, - 0x0B, - 0x26, - 0x00, - 0x04, - 0x43, - 0x26, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x00, - 0x04, - 0x42, - 0x43, - 0x1B, - 0xF5, - 0x06, - 0x00, - 0x01, - 0x5D, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x42, - 0x00, - 0x0A, - 0xF7, - 0x00, - 0xF5, - 0x50, - 0x42, - 0x40, - 0xF7, - 0x00, - 0x00, - 0x1B, - 0x0C, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x0B, - 0x1C, - 0x00, - 0x00, - 0xF8, - 0x29, - 0x29, - 0x29, - 0x1C, - 0x00, - 0x00, - 0x58, - 0x00, - 0x0C, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x28, - 0x00, - 0x03, - 0x1E, - 0x00, - 0xF5, - 0x00, - 0x05, - 0x28, - 0x00, - 0x03, - 0x00, - 0x00, - 0xB8, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x10, - 0x27, - 0x01, - 0x35, - 0x05, - 0x27, - 0x00, - 0x05, - 0x19, - 0x00, - 0x00, - 0x56, - 0x3D, - 0x00, - 0x0B, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0B, - 0x3D, - 0x01, - 0x3C, - 0x09, - 0x3D, - 0x00, - 0x05, - 0x34, - 0xF7, - 0x54, - 0x00, - 0x17, - 0x00, - 0x0C, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x01, - 0x59, - 0x04, - 0x00, - 0x01, - 0x53, - 0x01, - 0xF9, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3F, - 0x00, - 0x07, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x1B, - 0x00, - 0x0D, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3E, - 0x01, - 0x19, - 0x0B, - 0x3E, - 0x00, - 0x04, - 0x60, - 0xF5, - 0x00, - 0xB8, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x19, - 0x00, - 0x09, - 0x5A, - 0x56, - 0x5A, - 0x19, - 0x19, - 0x19, - 0x56, - 0x00, - 0x00, - 0x00, - 0x08, - 0x19, - 0x01, - 0x35, - 0x04, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x08, - 0x34, - 0x00, - 0x14, - 0x35, - 0x35, - 0x35, - 0x34, - 0x34, - 0x35, - 0x35, - 0x35, - 0x55, - 0x00, - 0xF6, - 0x61, - 0x34, - 0x61, - 0xF6, - 0x00, - 0xF4, - 0x34, - 0x34, - 0x35, - 0x04, - 0x34, - 0x00, - 0x08, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x10, - 0x18, - 0x01, - 0x21, - 0x07, - 0x00, - 0x01, - 0x58, - 0x0D, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x04, - 0x1B, - 0x01, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x07, - 0x17, - 0x57, - 0x00, - 0x00, - 0x00, - 0x55, - 0x5C, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x04, - 0x1F, - 0x00, - 0x17, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x00, - 0x07, - 0x1E, - 0x00, - 0x06, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x03, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x06, - 0x10, - 0x04, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x04, - 0x10, - 0x01, - 0xFA, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x0E, - 0x15, - 0x01, - 0x1D, - 0x10, - 0x15, - 0x01, - 0x1D, - 0x06, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x1A, - 0x14, - 0x01, - 0x36, - 0x0B, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x0F, - 0x12, - 0x00, - 0x05, - 0x11, - 0x12, - 0x12, - 0x12, - 0x11, - 0x00, - 0x07, - 0x12, - 0x01, - 0x11, - 0x05, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x25, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x18, - 0x2F, - 0x01, - 0x45, - 0x0D, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x2D, - 0x2D, - 0x04, - 0x2E, - 0x04, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2E, - 0x06, - 0x2D, - 0x00, - 0x16, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x06, - 0x31, - 0x01, - 0x30, - 0x14, - 0x31, - 0x01, - 0x30, - 0x0A, - 0x31, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x11, - 0x26, - 0x00, - 0x05, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x00, - 0x10, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x09, - 0x37, - 0x21, - 0x43, - 0x26, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x00, - 0x06, - 0x43, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x43, - 0x00, - 0x08, - 0x3D, - 0xF6, - 0xF6, - 0x3C, - 0x43, - 0x26, - 0x43, - 0x26, - 0x04, - 0x43, - 0x00, - 0x09, - 0x26, - 0x43, - 0x43, - 0x26, - 0x26, - 0x26, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x05, - 0x42, - 0x01, - 0x43, - 0x0A, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x50, - 0x00, - 0x00, - 0x36, - 0x00, - 0x04, - 0x42, - 0x00, - 0x04, - 0x43, - 0x42, - 0x43, - 0x43, - 0x07, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x37, - 0x16, - 0x29, - 0x42, - 0x42, - 0x29, - 0x07, - 0x42, - 0x01, - 0x29, - 0x05, - 0x42, - 0x00, - 0x0A, - 0x29, - 0x29, - 0x50, - 0x00, - 0x00, - 0x50, - 0x42, - 0x42, - 0x42, - 0x29, - 0x04, - 0x42, - 0x01, - 0x29, - 0x06, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0D, - 0x29, - 0x01, - 0x57, - 0x09, - 0x00, - 0x01, - 0xF5, - 0x01, - 0x20, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0D, - 0x28, - 0x0B, - 0x00, - 0x01, - 0x1F, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0D, - 0x27, - 0x00, - 0x0A, - 0x58, - 0x00, - 0xF6, - 0x35, - 0x27, - 0x27, - 0x17, - 0x00, - 0x00, - 0x17, - 0x0F, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3D, - 0x00, - 0x09, - 0x55, - 0x00, - 0x58, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x17, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x09, - 0x37, - 0xF6, - 0x00, - 0xF9, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x22, - 0x00, - 0x0F, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x00, - 0x08, - 0xB2, - 0x00, - 0xF5, - 0x1B, - 0x4F, - 0x00, - 0x00, - 0x4F, - 0x0F, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x10, - 0x3E, - 0x00, - 0x07, - 0x59, - 0x00, - 0xB8, - 0x60, - 0x00, - 0x00, - 0x60, - 0x00, - 0x0F, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x11, - 0x19, - 0x00, - 0x06, - 0xB8, - 0x00, - 0xB8, - 0x00, - 0x00, - 0x5F, - 0x0F, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x04, - 0x35, - 0x01, - 0x34, - 0x0C, - 0x35, - 0x00, - 0x0B, - 0x1E, - 0x55, - 0x00, - 0x00, - 0x00, - 0x5F, - 0x35, - 0x35, - 0x35, - 0x34, - 0x34, - 0x00, - 0x0A, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0x0B, - 0x18, - 0x00, - 0x06, - 0x34, - 0x00, - 0x10, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x34, - 0x18, - 0x34, - 0x34, - 0x18, - 0x4E, - 0xF4, - 0x00, - 0x00, - 0x61, - 0x0C, - 0x18, - 0x00, - 0x05, - 0x34, - 0x34, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x13, - 0x33, - 0x00, - 0x03, - 0x21, - 0x00, - 0x55, - 0x00, - 0x10, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x13, - 0x1B, - 0x01, - 0x32, - 0x05, - 0x1B, - 0x01, - 0x32, - 0x01, - 0x32, - 0x04, - 0x1B, - 0x00, - 0x03, - 0x32, - 0x1B, - 0x32, - 0x00, - 0x04, - 0x1B, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x5D, - 0x32, - 0x20, - 0x08, - 0x32, - 0x00, - 0x0E, - 0x20, - 0x32, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x20, - 0x32, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x05, - 0x20, - 0x32, - 0x32, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x06, - 0x1F, - 0x01, - 0x20, - 0x16, - 0x1F, - 0x00, - 0x0B, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x20, - 0x16, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1A, - 0xF8, - 0x1A, - 0x10, - 0x1A, - 0x10, - 0x10, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x01, - 0x1A, - 0x04, - 0x10, - 0x00, - 0x0C, - 0x1A, - 0x10, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x10, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x09, - 0x1D, - 0x01, - 0x10, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x0B, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x12, - 0x15, - 0x01, - 0x37, - 0x13, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1B, - 0x5D, - 0x13, - 0x14, - 0x13, - 0x14, - 0x14, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x10, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x0A, - 0x13, - 0x01, - 0x12, - 0x01, - 0x12, - 0x1A, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x23, - 0x12, - 0x00, - 0x04, - 0x11, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x1B, - 0x38, - 0x01, - 0x39, - 0x09, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0x21, - 0x2E, - 0x2D, - 0x2E, - 0x00, - 0x07, - 0x2D, - 0x00, - 0x1E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x08, - 0x31, - 0x00, - 0x0F, - 0x30, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x30, - 0x30, - 0x31, - 0x30, - 0x00, - 0x04, - 0x31, - 0x01, - 0x30, - 0x04, - 0x31, - 0x00, - 0x08, - 0x30, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x21, - 0x26, - 0x26, - 0x30, - 0x00, - 0x0E, - 0x26, - 0x01, - 0x30, - 0x0B, - 0x26, - 0x01, - 0x30, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x05, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x00, - 0x04, - 0x43, - 0x00, - 0x06, - 0x5A, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0x5A, - 0x08, - 0x43, - 0x00, - 0x0A, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x06, - 0x42, - 0x00, - 0x0A, - 0x43, - 0x42, - 0x42, - 0x42, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0xB8, - 0x06, - 0x00, - 0x00, - 0x08, - 0xF7, - 0x3F, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x07, - 0x42, - 0x00, - 0x03, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x06, - 0x42, - 0x01, - 0x29, - 0x06, - 0x42, - 0x00, - 0x0B, - 0x29, - 0x5D, - 0x00, - 0x00, - 0x56, - 0x3F, - 0x42, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x00, - 0x04, - 0x42, - 0x01, - 0x29, - 0x09, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0E, - 0x29, - 0x00, - 0x03, - 0x56, - 0x54, - 0xF6, - 0x00, - 0x04, - 0x29, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0E, - 0x28, - 0x00, - 0x03, - 0x61, - 0xF5, - 0x61, - 0x00, - 0x04, - 0x28, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x54, - 0x21, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x15, - 0x27, - 0x00, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x5B, - 0x0D, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3D, - 0x01, - 0x5B, - 0x01, - 0x17, - 0x04, - 0x3D, - 0x00, - 0x04, - 0x58, - 0x00, - 0x00, - 0xB2, - 0x0D, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0A, - 0xF9, - 0x00, - 0x54, - 0x56, - 0x3C, - 0x3C, - 0xF9, - 0x00, - 0x00, - 0xF6, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0A, - 0xB2, - 0x00, - 0x00, - 0x09, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB2, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0F, - 0x3E, - 0x00, - 0x08, - 0x00, - 0x00, - 0xB8, - 0xF7, - 0x53, - 0x00, - 0xB8, - 0x50, - 0x0F, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x00, - 0x03, - 0x55, - 0x54, - 0x57, - 0x00, - 0x14, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x35, - 0x00, - 0x03, - 0x56, - 0x00, - 0x55, - 0x00, - 0x04, - 0x35, - 0x01, - 0x34, - 0x0B, - 0x35, - 0x00, - 0x06, - 0x34, - 0x35, - 0x34, - 0x35, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x41, - 0x0B, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x34, - 0x00, - 0x04, - 0x18, - 0x01, - 0x58, - 0x07, - 0x00, - 0x01, - 0x55, - 0x05, - 0x18, - 0x00, - 0x0B, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x33, - 0x01, - 0xB2, - 0x01, - 0xF4, - 0x06, - 0x00, - 0x01, - 0x55, - 0x0E, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x1C, - 0x1B, - 0x01, - 0x32, - 0x09, - 0x1B, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x5D, - 0x32, - 0x20, - 0x06, - 0x32, - 0x01, - 0x20, - 0x01, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x0A, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x06, - 0x32, - 0x00, - 0x03, - 0x20, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x1F, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x09, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x0B, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x1F, - 0x1F, - 0x16, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x0C, - 0x1E, - 0x01, - 0x1A, - 0x19, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0xF8, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x06, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x10, - 0x10, - 0x10, - 0x00, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x05, - 0x1A, - 0x00, - 0x04, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x05, - 0x1A, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x1A, - 0x5C, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x0F, - 0x1D, - 0x00, - 0x08, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x15, - 0x01, - 0x37, - 0x14, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x26, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x0D, - 0x12, - 0x01, - 0x11, - 0x08, - 0x12, - 0x01, - 0x11, - 0x0A, - 0x12, - 0x00, - 0x06, - 0x11, - 0x12, - 0x12, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x76, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x04, - 0x38, - 0x00, - 0x05, - 0x39, - 0x38, - 0x38, - 0x38, - 0x39, - 0x00, - 0x06, - 0x38, - 0x01, - 0x39, - 0x06, - 0x38, - 0x01, - 0x39, - 0x0E, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x25, - 0x2C, - 0x00, - 0x03, - 0x3B, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x41, - 0x21, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x05, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2D, - 0x07, - 0x2E, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x41, - 0x21, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x0B, - 0x31, - 0x00, - 0x08, - 0x30, - 0x31, - 0x30, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x07, - 0x31, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0A, - 0x26, - 0x01, - 0x30, - 0x1B, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x26, - 0x00, - 0x0B, - 0x43, - 0x00, - 0x0E, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x37, - 0x57, - 0x00, - 0x00, - 0x00, - 0x58, - 0x18, - 0x43, - 0x26, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x26, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x43, - 0x00, - 0x05, - 0x42, - 0x00, - 0x03, - 0x50, - 0x54, - 0x54, - 0x00, - 0x05, - 0x00, - 0x00, - 0x05, - 0x36, - 0x42, - 0x43, - 0x42, - 0x43, - 0x00, - 0x04, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x37, - 0x16, - 0x42, - 0x42, - 0x29, - 0x42, - 0x42, - 0x42, - 0x29, - 0x42, - 0x42, - 0x42, - 0x29, - 0x29, - 0x42, - 0x42, - 0x42, - 0x3F, - 0xF5, - 0x00, - 0xF6, - 0x50, - 0x42, - 0x50, - 0xF5, - 0x00, - 0xF6, - 0x00, - 0x04, - 0x42, - 0x01, - 0x29, - 0x08, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x0B, - 0x5D, - 0x54, - 0x00, - 0xF8, - 0x29, - 0x29, - 0x29, - 0x59, - 0x00, - 0x00, - 0x5F, - 0x00, - 0x0C, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0F, - 0x28, - 0x00, - 0x0B, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x28, - 0x28, - 0x28, - 0x61, - 0x00, - 0x00, - 0x5C, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x27, - 0x00, - 0x0B, - 0xB8, - 0x00, - 0x00, - 0x17, - 0x27, - 0x27, - 0x27, - 0x5B, - 0x00, - 0x00, - 0x21, - 0x00, - 0x0C, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3D, - 0x00, - 0x0B, - 0xF6, - 0x09, - 0x00, - 0xF6, - 0xB2, - 0x3D, - 0x17, - 0xF6, - 0x00, - 0xF5, - 0x34, - 0x00, - 0x0C, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x06, - 0x3D, - 0x55, - 0x54, - 0xF5, - 0xF6, - 0x09, - 0x04, - 0x00, - 0x01, - 0x5B, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0A, - 0x3C, - 0xF7, - 0x00, - 0x00, - 0x15, - 0xB8, - 0x00, - 0x00, - 0x55, - 0xF9, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0F, - 0x3E, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x50, - 0x13, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x00, - 0x0B, - 0x5F, - 0x54, - 0x00, - 0x58, - 0x19, - 0x19, - 0x19, - 0x0B, - 0x54, - 0x56, - 0x3E, - 0x00, - 0x0C, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x07, - 0x35, - 0x01, - 0x34, - 0x08, - 0x35, - 0x00, - 0x0B, - 0xF7, - 0x00, - 0x00, - 0x5D, - 0x35, - 0x61, - 0xF4, - 0x00, - 0xB8, - 0x35, - 0x34, - 0x00, - 0x0B, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x06, - 0x18, - 0x00, - 0x04, - 0x34, - 0x18, - 0x4E, - 0xF4, - 0x06, - 0x00, - 0x01, - 0x17, - 0x05, - 0x18, - 0x00, - 0x0A, - 0x34, - 0x34, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x11, - 0x33, - 0x00, - 0x07, - 0x15, - 0x58, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x17, - 0x00, - 0x0E, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x1B, - 0x01, - 0x32, - 0x0A, - 0x1B, - 0x00, - 0x05, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x09, - 0x1B, - 0x00, - 0x07, - 0x32, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x05, - 0x32, - 0x00, - 0x08, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x04, - 0x20, - 0x06, - 0x32, - 0x00, - 0x04, - 0x20, - 0x32, - 0x20, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x32, - 0x01, - 0x21, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x20, - 0x00, - 0x05, - 0x1F, - 0x01, - 0x20, - 0x09, - 0x1F, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x1F, - 0x01, - 0x20, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x05, - 0x1F, - 0x01, - 0x16, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x07, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x01, - 0x1A, - 0x08, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x1E, - 0x1A, - 0x00, - 0x0B, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1A, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x10, - 0x06, - 0x1A, - 0x00, - 0x06, - 0x10, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x05, - 0x1A, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x08, - 0x1A, - 0x00, - 0x03, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5C, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x08, - 0x1D, - 0x00, - 0x03, - 0x10, - 0x10, - 0x10, - 0x00, - 0x05, - 0x1D, - 0x00, - 0x09, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x20, - 0x15, - 0x01, - 0x37, - 0x05, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x10, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x01, - 0x13, - 0x04, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3F, - 0x5F, - 0x12, - 0x00, - 0x23, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x17, - 0x12, - 0x01, - 0x11, - 0x07, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x00, - 0x03, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xCA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x21, - 0x39, - 0x00, - 0x06, - 0x2A, - 0x39, - 0x39, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x24, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2E, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x04, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x05, - 0x2F, - 0x00, - 0x07, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x0B, - 0x2D, - 0x01, - 0x31, - 0x1A, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x30, - 0x01, - 0x31, - 0x10, - 0x30, - 0x01, - 0x31, - 0x06, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x12, - 0x43, - 0x00, - 0x03, - 0xF7, - 0x00, - 0x36, - 0x00, - 0x11, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x11, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x56, - 0x11, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x11, - 0x29, - 0x00, - 0x04, - 0x3F, - 0x53, - 0x00, - 0xF6, - 0x04, - 0x29, - 0x01, - 0x42, - 0x06, - 0x29, - 0x01, - 0xD1, - 0x05, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x41, - 0xFA, - 0x28, - 0x29, - 0x28, - 0x28, - 0x29, - 0x28, - 0x29, - 0x29, - 0x06, - 0x28, - 0x00, - 0x11, - 0x29, - 0x28, - 0x28, - 0x29, - 0x55, - 0x00, - 0x00, - 0x3E, - 0x28, - 0x29, - 0x28, - 0x29, - 0x29, - 0x28, - 0x28, - 0x29, - 0x29, - 0x00, - 0x06, - 0x28, - 0x00, - 0x03, - 0x29, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xF9, - 0x28, - 0x27, - 0x28, - 0x00, - 0x04, - 0x27, - 0x00, - 0x21, - 0x28, - 0x27, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x58, - 0x00, - 0x00, - 0x4E, - 0x28, - 0x27, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x28, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x41, - 0xF9, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x27, - 0x06, - 0x3D, - 0x00, - 0x0F, - 0x4E, - 0x09, - 0x00, - 0x58, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x27, - 0x00, - 0x05, - 0x3D, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x13, - 0x3C, - 0x00, - 0x03, - 0xF7, - 0x54, - 0xF6, - 0x00, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1D, - 0xF9, - 0x3C, - 0x3C, - 0x09, - 0x3F, - 0x00, - 0x0C, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x22, - 0x54, - 0x00, - 0x4F, - 0x04, - 0x3F, - 0x00, - 0x03, - 0x3C, - 0x3F, - 0x3C, - 0x00, - 0x04, - 0x3F, - 0x00, - 0x06, - 0x3C, - 0x3F, - 0x3F, - 0x3C, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0x3E, - 0x01, - 0x3F, - 0x0E, - 0x3E, - 0x00, - 0x05, - 0x3F, - 0xF7, - 0x00, - 0x55, - 0x3F, - 0x00, - 0x0E, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x19, - 0x00, - 0x0F, - 0x3E, - 0x19, - 0x19, - 0x19, - 0x3E, - 0x19, - 0x19, - 0x3E, - 0x19, - 0x19, - 0x19, - 0x50, - 0x00, - 0x00, - 0x58, - 0x00, - 0x0B, - 0x19, - 0x00, - 0x05, - 0x3E, - 0x3E, - 0x19, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x15, - 0x35, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x61, - 0x08, - 0x35, - 0x01, - 0x19, - 0x04, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x16, - 0x34, - 0x00, - 0x04, - 0x55, - 0x00, - 0xF6, - 0x1A, - 0x0C, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x13, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x33, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0xB2, - 0xF4, - 0x00, - 0x08, - 0x00, - 0x00, - 0x0F, - 0x57, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x33, - 0x33, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x1B, - 0x01, - 0xB2, - 0x09, - 0x00, - 0x01, - 0x59, - 0x01, - 0x33, - 0x0B, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x11, - 0x1A, - 0x5D, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x01, - 0x1F, - 0x09, - 0x20, - 0x01, - 0x1F, - 0x06, - 0x20, - 0x00, - 0x03, - 0x1F, - 0x21, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x25, - 0x1E, - 0x00, - 0x03, - 0x1F, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x09, - 0x1A, - 0x01, - 0x10, - 0x09, - 0x1A, - 0x00, - 0x03, - 0x10, - 0x1A, - 0x10, - 0x00, - 0x10, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x00, - 0x0A, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0A, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x05, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x10, - 0x1D, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1B, - 0x0B, - 0x13, - 0x13, - 0x13, - 0x12, - 0x06, - 0x13, - 0x01, - 0x12, - 0x01, - 0x12, - 0x1A, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x11, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x01, - 0x11, - 0x0E, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xFE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1C, - 0x38, - 0x01, - 0x39, - 0x07, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x21, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x37, - 0x5E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x00, - 0x10, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x03, - 0x2E, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x37, - 0x21, - 0x30, - 0x30, - 0x31, - 0x30, - 0x31, - 0x00, - 0x04, - 0x30, - 0x00, - 0x08, - 0x31, - 0x30, - 0x31, - 0x30, - 0x30, - 0x31, - 0x30, - 0x31, - 0x05, - 0x30, - 0x01, - 0x31, - 0x01, - 0x31, - 0x0E, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x10, - 0x43, - 0x00, - 0x07, - 0x5A, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x58, - 0x18, - 0x00, - 0x0F, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x42, - 0x01, - 0xF7, - 0x06, - 0x00, - 0x01, - 0xF5, - 0x01, - 0x36, - 0x0E, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x29, - 0x00, - 0x0A, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x3E, - 0x42, - 0x5A, - 0x00, - 0x00, - 0xF6, - 0x0E, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xFA, - 0x28, - 0x29, - 0x29, - 0x00, - 0x04, - 0x28, - 0x00, - 0x21, - 0x29, - 0x28, - 0x28, - 0x29, - 0x29, - 0x28, - 0x29, - 0xF7, - 0x00, - 0xF5, - 0x3E, - 0x28, - 0x28, - 0x28, - 0x57, - 0x00, - 0x00, - 0x44, - 0x28, - 0x28, - 0x28, - 0x29, - 0x28, - 0x28, - 0x28, - 0x29, - 0x28, - 0x28, - 0x28, - 0x29, - 0x29, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0x27, - 0x00, - 0x1C, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x28, - 0x27, - 0x28, - 0x27, - 0x28, - 0xF6, - 0x00, - 0xB8, - 0x27, - 0x27, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x28, - 0x28, - 0x28, - 0x27, - 0x28, - 0x27, - 0x28, - 0x06, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xF9, - 0x27, - 0x3D, - 0x27, - 0x00, - 0x08, - 0x3D, - 0x00, - 0x0E, - 0x27, - 0x3D, - 0x3D, - 0x55, - 0x54, - 0xF5, - 0x27, - 0x27, - 0x3D, - 0x3D, - 0x56, - 0xB3, - 0x53, - 0x4E, - 0x05, - 0x3D, - 0x00, - 0x0A, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0B, - 0x5B, - 0x00, - 0x00, - 0xB8, - 0x3D, - 0x3D, - 0x5B, - 0x00, - 0x09, - 0xF7, - 0x3D, - 0x00, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1D, - 0xF9, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x04, - 0x3F, - 0x00, - 0x08, - 0x3C, - 0x3F, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x59, - 0x05, - 0x00, - 0x00, - 0x13, - 0x54, - 0xF7, - 0x1B, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3E, - 0x3E, - 0x3F, - 0x3E, - 0x3E, - 0x5A, - 0xF5, - 0x05, - 0x00, - 0x00, - 0x03, - 0x59, - 0x3E, - 0x3F, - 0x00, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x19, - 0x01, - 0x3E, - 0x06, - 0x19, - 0x00, - 0x0A, - 0x0B, - 0x00, - 0x00, - 0xB8, - 0x3E, - 0x19, - 0x0B, - 0x00, - 0x00, - 0x59, - 0x0D, - 0x19, - 0x00, - 0x03, - 0x3E, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x19, - 0x05, - 0x35, - 0x00, - 0x0B, - 0x5A, - 0x00, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x35, - 0xF6, - 0x00, - 0xF7, - 0x19, - 0x00, - 0x05, - 0x35, - 0x01, - 0x19, - 0x07, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0E, - 0x34, - 0x00, - 0x0A, - 0x4E, - 0x00, - 0x00, - 0xB8, - 0x34, - 0x34, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x0E, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x12, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x33, - 0x58, - 0x06, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xB2, - 0x04, - 0x18, - 0x00, - 0x04, - 0x33, - 0x18, - 0x33, - 0x33, - 0x04, - 0x18, - 0x00, - 0x04, - 0x33, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x1B, - 0x00, - 0x07, - 0x5C, - 0x55, - 0x00, - 0x00, - 0x00, - 0x57, - 0xB2, - 0x00, - 0x0F, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x5D, - 0x20, - 0x1F, - 0x04, - 0x20, - 0x00, - 0x05, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x0E, - 0x20, - 0x00, - 0x09, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x13, - 0x1A, - 0x01, - 0x10, - 0x10, - 0x1A, - 0x00, - 0x04, - 0x10, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xF8, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x05, - 0x1D, - 0x00, - 0x05, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x01, - 0x10, - 0x09, - 0x1D, - 0x00, - 0x04, - 0x10, - 0x1D, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1B, - 0x0B, - 0x13, - 0x12, - 0x0C, - 0x13, - 0x01, - 0x12, - 0x08, - 0x13, - 0x01, - 0x12, - 0x06, - 0x13, - 0x01, - 0x12, - 0x07, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x04, - 0x12, - 0x01, - 0x11, - 0x0D, - 0x12, - 0x01, - 0x11, - 0x12, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x11, - 0x11, - 0x01, - 0x0A, - 0x12, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1C, - 0x38, - 0x01, - 0x39, - 0x07, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x37, - 0x5E, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x06, - 0x2F, - 0x01, - 0x2E, - 0x04, - 0x2F, - 0x00, - 0x13, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x21, - 0x30, - 0x30, - 0x31, - 0x00, - 0x08, - 0x30, - 0x01, - 0x31, - 0x07, - 0x30, - 0x01, - 0x31, - 0x04, - 0x30, - 0x01, - 0x31, - 0x0D, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x10, - 0x43, - 0x00, - 0x07, - 0x3C, - 0x58, - 0x00, - 0x00, - 0x00, - 0x56, - 0x37, - 0x00, - 0x0F, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x42, - 0x00, - 0x04, - 0x3F, - 0xF6, - 0x54, - 0x54, - 0x04, - 0x00, - 0x01, - 0x60, - 0x0E, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0x16, - 0x29, - 0x29, - 0x42, - 0x00, - 0x04, - 0x29, - 0x01, - 0x42, - 0x04, - 0x29, - 0x00, - 0x11, - 0x42, - 0x29, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x5F, - 0x29, - 0x32, - 0xF7, - 0x00, - 0xF5, - 0x3E, - 0x29, - 0x29, - 0x29, - 0xD1, - 0x00, - 0x09, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x41, - 0xFA, - 0x29, - 0x28, - 0x29, - 0x29, - 0x28, - 0x29, - 0x28, - 0x28, - 0x29, - 0x28, - 0x29, - 0x00, - 0x04, - 0x28, - 0x00, - 0x0F, - 0x5C, - 0x00, - 0x58, - 0x28, - 0x29, - 0x28, - 0x44, - 0x00, - 0x00, - 0x5A, - 0x28, - 0x28, - 0x28, - 0x29, - 0x29, - 0x00, - 0x08, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x04, - 0x27, - 0x00, - 0x15, - 0x28, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0xF6, - 0x54, - 0x55, - 0x00, - 0x07, - 0x27, - 0x01, - 0x28, - 0x01, - 0x28, - 0x04, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x41, - 0xF9, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x1A, - 0x56, - 0x54, - 0x00, - 0x55, - 0x61, - 0x56, - 0x00, - 0x00, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x00, - 0x09, - 0x3D, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3C, - 0x01, - 0x3D, - 0x01, - 0x3D, - 0x04, - 0x3C, - 0x01, - 0x1A, - 0x01, - 0xF5, - 0x04, - 0x00, - 0x00, - 0x05, - 0x09, - 0x55, - 0x00, - 0x00, - 0x18, - 0x00, - 0x0C, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x1D, - 0xF9, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0xF7, - 0x00, - 0x00, - 0x59, - 0x3F, - 0x33, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x36, - 0x3F, - 0x3F, - 0x04, - 0x3C, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x0B, - 0x32, - 0x00, - 0x53, - 0xB8, - 0x3E, - 0x3E, - 0x3E, - 0x32, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x09, - 0x3E, - 0x00, - 0x06, - 0x3F, - 0x3E, - 0x3E, - 0x3E, - 0x60, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0xF9, - 0x3E, - 0x00, - 0x07, - 0x19, - 0x01, - 0x3E, - 0x01, - 0x3E, - 0x04, - 0x19, - 0x00, - 0x0F, - 0x1C, - 0x00, - 0x00, - 0x58, - 0x3E, - 0x19, - 0x3E, - 0x19, - 0xF6, - 0x00, - 0xF5, - 0x19, - 0x19, - 0x19, - 0x3E, - 0x00, - 0x09, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x0B, - 0x19, - 0x00, - 0x0E, - 0x35, - 0x00, - 0x0D, - 0xF5, - 0x00, - 0xB8, - 0x35, - 0x35, - 0x35, - 0x1E, - 0x00, - 0x00, - 0x56, - 0x35, - 0x35, - 0x19, - 0x00, - 0x06, - 0x35, - 0x00, - 0x06, - 0x19, - 0x35, - 0x19, - 0x19, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x34, - 0x00, - 0x0A, - 0x56, - 0x00, - 0x00, - 0x58, - 0x34, - 0x4E, - 0xF7, - 0x00, - 0x00, - 0x5E, - 0x0D, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x41, - 0x0B, - 0x33, - 0x18, - 0x18, - 0x33, - 0x05, - 0x18, - 0x00, - 0x08, - 0x33, - 0x33, - 0x33, - 0x18, - 0x33, - 0x18, - 0x1D, - 0x55, - 0x06, - 0x00, - 0x00, - 0x07, - 0x58, - 0x18, - 0x18, - 0x33, - 0x18, - 0x33, - 0x33, - 0x00, - 0x04, - 0x18, - 0x04, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x11, - 0x1B, - 0x00, - 0x06, - 0x58, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x5C, - 0x0F, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x21, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x07, - 0x20, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x07, - 0x1A, - 0x01, - 0x10, - 0x06, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x10, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xF8, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x08, - 0x1D, - 0x00, - 0x05, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x0B, - 0x1D, - 0x00, - 0x04, - 0x10, - 0x10, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1F, - 0x5C, - 0x36, - 0x14, - 0x14, - 0x36, - 0x10, - 0x14, - 0x01, - 0x36, - 0x11, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x21, - 0x13, - 0x01, - 0x12, - 0x04, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x1D, - 0x12, - 0x01, - 0x11, - 0x07, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x1A, - 0x11, - 0x01, - 0x0A, - 0x05, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x82, - 0x03, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x06, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x06, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x25, - 0x06, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x06, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x05, - 0x06, - 0x00, - 0x23, - 0xE9, - 0x09, - 0x53, - 0xE4, - 0xE9, - 0x06, - 0xEB, - 0x54, - 0xED, - 0xEB, - 0xEC, - 0xE9, - 0xED, - 0x06, - 0xEA, - 0xE4, - 0x06, - 0xEA, - 0x09, - 0x53, - 0xED, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xE4, - 0xE7, - 0xE7, - 0x53, - 0xE6, - 0x06, - 0x06, - 0x06, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0x06, - 0x06, - 0xE5, - 0x06, - 0xE8, - 0xC6, - 0xEA, - 0x06, - 0xEA, - 0x53, - 0xE7, - 0xE4, - 0xEB, - 0xE5, - 0xE4, - 0xEB, - 0xEA, - 0xED, - 0x06, - 0xE9, - 0x54, - 0xE5, - 0x53, - 0xEA, - 0xE5, - 0xED, - 0xE9, - 0xED, - 0xEB, - 0x06, - 0xE9, - 0xEA, - 0xE8, - 0x54, - 0xE8, - 0x06, - 0x06, - 0x06, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xE5, - 0x06, - 0x06, - 0x06, - 0xEA, - 0xE0, - 0x06, - 0xE5, - 0xE5, - 0xED, - 0xE6, - 0xE5, - 0xEB, - 0xED, - 0xE0, - 0xEB, - 0xE9, - 0xED, - 0xE5, - 0xEA, - 0x54, - 0xE8, - 0x00, - 0xE8, - 0x06, - 0x06, - 0x06, - 0xC6, - 0x00, - 0x54, - 0x00, - 0xEC, - 0xE8, - 0x00, - 0xE8, - 0x06, - 0xE5, - 0x06, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0x06, - 0x06, - 0x06, - 0xE5, - 0xEB, - 0xED, - 0x06, - 0x06, - 0x06, - 0xE5, - 0xE5, - 0xEC, - 0xEA, - 0xE5, - 0xE4, - 0xEB, - 0xE9, - 0x00, - 0xE6, - 0xEA, - 0xE4, - 0xE5, - 0x54, - 0xEA, - 0xE3, - 0xED, - 0xEA, - 0xED, - 0xEB, - 0xE5, - 0xEC, - 0xEB, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0x06, - 0x06, - 0x4F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x04, - 0xE5, - 0x00, - 0x24, - 0xEA, - 0xE4, - 0xE5, - 0xE5, - 0xE5, - 0xEA, - 0xE6, - 0xE8, - 0x00, - 0x00, - 0xE4, - 0xE7, - 0xEA, - 0xED, - 0xED, - 0x09, - 0xEA, - 0xE5, - 0xE9, - 0x00, - 0xE0, - 0xED, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xED, - 0xE6, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0xE5, - 0xE5, - 0x4F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0xE5, - 0x00, - 0x07, - 0xE7, - 0xC6, - 0xEA, - 0xE5, - 0xEA, - 0xC6, - 0xE6, - 0x00, - 0x15, - 0xE5, - 0x00, - 0x08, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0xE5, - 0xE5, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x05, - 0xE5, - 0x00, - 0x05, - 0xE9, - 0xE4, - 0x00, - 0xE4, - 0xE9, - 0x00, - 0x16, - 0xE5, - 0x00, - 0x08, - 0xE7, - 0x00, - 0xE6, - 0xE5, - 0xE5, - 0xE5, - 0x60, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE5, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xE3, - 0xE3, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x0B, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0x21, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0xE2, - 0x01, - 0x16, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xE2, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x24, - 0xE2, - 0x00, - 0x03, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x17, - 0x22, - 0xE2, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x9E, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0B, - 0x61, - 0x00, - 0x08, - 0x50, - 0x61, - 0x50, - 0x61, - 0x61, - 0x50, - 0x4D, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x4E, - 0x00, - 0x1D, - 0x44, - 0x00, - 0x06, - 0x4D, - 0x40, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x22, - 0x1A, - 0x00, - 0x20, - 0xC9, - 0x00, - 0x04, - 0x33, - 0x61, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x29, - 0x22, - 0xC9, - 0x00, - 0x04, - 0x28, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1F, - 0x00, - 0x25, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0xC9, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x60, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0xC9, - 0x01, - 0x50, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x16, - 0xC9, - 0x01, - 0xC8, - 0x05, - 0xC9, - 0x01, - 0xC8, - 0x05, - 0xC9, - 0x00, - 0x06, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x16, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x22, - 0x41, - 0x16, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xCA, - 0xCD, - 0xF3, - 0x53, - 0xCC, - 0xC9, - 0xCA, - 0x00, - 0xC9, - 0xCB, - 0x00, - 0x53, - 0xCD, - 0xCA, - 0xCB, - 0x00, - 0x00, - 0xCC, - 0x53, - 0xCA, - 0xC6, - 0xC9, - 0xC8, - 0xC9, - 0x04, - 0xC8, - 0x00, - 0x04, - 0xC9, - 0xC8, - 0x22, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x08, - 0xC8, - 0x00, - 0x16, - 0xCC, - 0xCD, - 0xCA, - 0xCA, - 0xCD, - 0xCC, - 0xCA, - 0x00, - 0xCB, - 0xC6, - 0xCB, - 0xC8, - 0xCB, - 0xCA, - 0xCC, - 0xCD, - 0xC8, - 0xCC, - 0xCE, - 0xCA, - 0x00, - 0xCA, - 0x08, - 0xC8, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x08, - 0xC8, - 0x00, - 0x09, - 0x00, - 0xCB, - 0xC8, - 0xC8, - 0xCB, - 0xCC, - 0xCA, - 0x00, - 0xCA, - 0x00, - 0x04, - 0x00, - 0x00, - 0x09, - 0xCB, - 0xC8, - 0xCB, - 0xCC, - 0xC6, - 0xCD, - 0xCA, - 0x00, - 0xCA, - 0x00, - 0x08, - 0xC8, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0x00, - 0xCB, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x12, - 0xCA, - 0xC6, - 0xCB, - 0x00, - 0xCB, - 0xC8, - 0xCE, - 0xCB, - 0xCB, - 0xCD, - 0xC8, - 0xCC, - 0xCD, - 0xCA, - 0xC6, - 0xCB, - 0xC8, - 0xC7, - 0x06, - 0xC8, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0xCB, - 0xC8, - 0xC7, - 0xCA, - 0xCB, - 0xCA, - 0x00, - 0xCA, - 0xCB, - 0xC6, - 0x00, - 0xCC, - 0xC7, - 0xCA, - 0xCD, - 0xC6, - 0xC6, - 0xCB, - 0xCA, - 0xC6, - 0xCD, - 0xE0, - 0xCA, - 0xC8, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC8, - 0x4F, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x06, - 0xC8, - 0x00, - 0x0F, - 0xC7, - 0xC8, - 0xCC, - 0xCD, - 0xCA, - 0xCA, - 0xCD, - 0xCC, - 0xCA, - 0xC6, - 0xCA, - 0xC7, - 0xC8, - 0xC8, - 0xC7, - 0x00, - 0x0C, - 0xC8, - 0x00, - 0x07, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0x4F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x08, - 0xC7, - 0x00, - 0x09, - 0xC8, - 0xCC, - 0x00, - 0x00, - 0xCC, - 0xC7, - 0xCA, - 0xC6, - 0xCA, - 0x00, - 0x15, - 0xC7, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x26, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x11, - 0xC7, - 0x01, - 0x05, - 0x08, - 0xC7, - 0x01, - 0x05, - 0x0B, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x05, - 0x05, - 0x00, - 0x23, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x05, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x15, - 0x05, - 0x01, - 0xCF, - 0x10, - 0x05, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0xCF, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x26, - 0xCF, - 0x01, - 0xFA, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0xCF, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x05, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x26, - 0x05, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x05, - 0x05, - 0x01, - 0xC7, - 0x04, - 0x05, - 0x00, - 0x14, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x08, - 0x05, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x04, - 0xC7, - 0x01, - 0x05, - 0x04, - 0xC7, - 0x00, - 0x15, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x00, - 0x06, - 0xC7, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0xC7, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x92, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x07, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x07, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x24, - 0x07, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x07, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x07, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0xFA, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xFA, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x23, - 0x07, - 0x00, - 0x05, - 0xBE, - 0x07, - 0x07, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x04, - 0x07, - 0x00, - 0x1D, - 0xBF, - 0x00, - 0x00, - 0x53, - 0x53, - 0x00, - 0xBB, - 0xBA, - 0x09, - 0xB9, - 0x07, - 0xBE, - 0xF5, - 0xBB, - 0x07, - 0xB9, - 0x09, - 0x09, - 0xBC, - 0x07, - 0xBC, - 0xC6, - 0xC6, - 0xBD, - 0xB9, - 0x07, - 0xBB, - 0x53, - 0xBA, - 0x00, - 0x05, - 0x07, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0x07, - 0xBE, - 0x07, - 0xBA, - 0x00, - 0xBC, - 0x07, - 0xBE, - 0xBE, - 0x07, - 0x07, - 0xB9, - 0xC6, - 0xBB, - 0x07, - 0xBA, - 0x00, - 0xBB, - 0xBE, - 0xBC, - 0x09, - 0xBE, - 0xBE, - 0xBC, - 0xB3, - 0xB9, - 0x07, - 0xBC, - 0xBF, - 0x07, - 0xBB, - 0x00, - 0xBA, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x21, - 0xBE, - 0x07, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x07, - 0x07, - 0x07, - 0xBE, - 0xBE, - 0xB9, - 0xF3, - 0xBB, - 0x07, - 0xBA, - 0x00, - 0xBB, - 0x07, - 0xBC, - 0x09, - 0xBE, - 0x07, - 0xBF, - 0xBD, - 0x07, - 0xBE, - 0x07, - 0xB9, - 0xBE, - 0xBB, - 0x00, - 0xBA, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0xBE, - 0x07, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0xBE, - 0xBE, - 0xBE, - 0x07, - 0xBE, - 0xB9, - 0x00, - 0xBB, - 0xBE, - 0xBA, - 0x53, - 0xBB, - 0xBE, - 0xBC, - 0x00, - 0xBE, - 0xBE, - 0xBF, - 0x09, - 0x00, - 0x09, - 0xC6, - 0xBF, - 0xBE, - 0xBB, - 0x00, - 0xB9, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x41, - 0xF9, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x06, - 0x00, - 0x00, - 0x17, - 0xBA, - 0xB9, - 0xC6, - 0xBD, - 0xBE, - 0xBB, - 0xB3, - 0xBB, - 0xBE, - 0xBC, - 0x00, - 0xBE, - 0xBE, - 0xBC, - 0xBF, - 0xBE, - 0xBE, - 0xBD, - 0xBF, - 0xBE, - 0xBB, - 0x00, - 0xBB, - 0x00, - 0x05, - 0xBE, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0xF9, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x05, - 0xBE, - 0x00, - 0x1D, - 0xB9, - 0x00, - 0xBB, - 0xBF, - 0xC6, - 0xBD, - 0xBE, - 0xBC, - 0x00, - 0x00, - 0x09, - 0xB9, - 0xC0, - 0xBC, - 0x00, - 0x00, - 0xBD, - 0xBA, - 0xBE, - 0xBB, - 0xC6, - 0xBD, - 0x00, - 0xBD, - 0xBE, - 0xBE, - 0xBE, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0x0B, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x0D, - 0xBE, - 0x00, - 0x03, - 0xBC, - 0x00, - 0xC0, - 0x00, - 0x10, - 0xBE, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x41, - 0x0B, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0xC6, - 0xBC, - 0x05, - 0xBE, - 0x00, - 0x0A, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBC, - 0x4C, - 0x11, - 0xBE, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x1D, - 0x0B, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBF, - 0xC6, - 0x00, - 0x00, - 0x53, - 0x00, - 0xBB, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBB, - 0xCC, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x41, - 0x0B, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0x00, - 0x0F, - 0xBE, - 0x00, - 0x08, - 0xC0, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x41, - 0x0B, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x07, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x10, - 0xC0, - 0x00, - 0x08, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0xC0, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0xC0, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0x0B, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x25, - 0xC0, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x1A, - 0xF9, - 0xC0, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x0B, - 0xC0, - 0x00, - 0x07, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x05, - 0xBE, - 0xC0, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x17, - 0x00, - 0x20, - 0xC0, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x00, - 0x04, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x0A, - 0x89, - 0x75, - 0x6E, - 0x78, - 0x77, - 0x77, - 0x78, - 0x81, - 0x72, - 0x76, - 0x1E, - 0x00, - 0x00, - 0x04, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x46, - 0x72, - 0x78, - 0x09, - 0x77, - 0x00, - 0x03, - 0x6E, - 0x76, - 0x53, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x05, - 0xF4, - 0x56, - 0x58, - 0x57, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x53, - 0x89, - 0x81, - 0x0D, - 0x77, - 0x00, - 0x03, - 0x75, - 0x53, - 0x54, - 0x00, - 0x07, - 0x00, - 0x01, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x0A, - 0x53, - 0x54, - 0x00, - 0x00, - 0xF9, - 0x5A, - 0xB8, - 0xB8, - 0x4F, - 0x56, - 0x06, - 0x00, - 0x01, - 0x53, - 0x11, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x53, - 0x89, - 0x6D, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x72, - 0x07, - 0x00, - 0x00, - 0x38, - 0x54, - 0xF7, - 0xF6, - 0xB3, - 0xB8, - 0xF4, - 0x00, - 0x55, - 0xF7, - 0x00, - 0xF3, - 0x56, - 0x57, - 0x53, - 0xF4, - 0x56, - 0x58, - 0xB8, - 0xF4, - 0x5D, - 0x56, - 0xF5, - 0xF7, - 0x22, - 0x57, - 0x55, - 0xF7, - 0x00, - 0x00, - 0x55, - 0x58, - 0xB8, - 0x55, - 0x55, - 0x00, - 0xF4, - 0x56, - 0x57, - 0x00, - 0xF5, - 0x57, - 0x58, - 0xB8, - 0xF3, - 0x00, - 0xF7, - 0x58, - 0xB8, - 0x55, - 0xF6, - 0x00, - 0xF6, - 0xF6, - 0x55, - 0x55, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x53, - 0x46, - 0x81, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x77, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x75, - 0x54, - 0x06, - 0x00, - 0x00, - 0x37, - 0x60, - 0x56, - 0xF5, - 0x44, - 0xF6, - 0x00, - 0x58, - 0x5B, - 0x00, - 0x57, - 0xB2, - 0x57, - 0xF5, - 0x60, - 0x0B, - 0x57, - 0x21, - 0xB8, - 0xF4, - 0xB2, - 0x21, - 0x5A, - 0x57, - 0xF3, - 0x58, - 0x0B, - 0x00, - 0xF5, - 0xB2, - 0x58, - 0x58, - 0x4E, - 0x59, - 0x00, - 0x58, - 0xB2, - 0x57, - 0xF5, - 0x22, - 0x5C, - 0x57, - 0x5F, - 0xB8, - 0x55, - 0x40, - 0x59, - 0x5B, - 0x40, - 0x56, - 0x53, - 0xB8, - 0x56, - 0xF9, - 0x4F, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x54, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x6E, - 0x81, - 0x81, - 0x70, - 0x6E, - 0x77, - 0x77, - 0x78, - 0x70, - 0x6E, - 0x81, - 0x6E, - 0x70, - 0x78, - 0x77, - 0x78, - 0x89, - 0x54, - 0x05, - 0x00, - 0x00, - 0x32, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF6, - 0x00, - 0x58, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x54, - 0xB8, - 0x61, - 0x54, - 0x00, - 0x54, - 0xF4, - 0x54, - 0x5F, - 0x5C, - 0x56, - 0x00, - 0x54, - 0x58, - 0x5C, - 0x00, - 0xF6, - 0x4D, - 0x55, - 0x00, - 0x59, - 0x59, - 0x00, - 0x5B, - 0x57, - 0x53, - 0x56, - 0x22, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0x59, - 0x00, - 0x54, - 0x22, - 0x56, - 0x54, - 0x04, - 0x57, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x89, - 0x78, - 0x77, - 0x77, - 0x88, - 0x00, - 0x75, - 0x72, - 0x54, - 0x53, - 0x81, - 0x64, - 0x75, - 0x00, - 0x89, - 0x6E, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x72, - 0x53, - 0x05, - 0x00, - 0x00, - 0x34, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF5, - 0x53, - 0x58, - 0x5A, - 0x00, - 0x58, - 0x59, - 0x00, - 0x56, - 0xB2, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0xF7, - 0x4F, - 0xB8, - 0x5C, - 0x5A, - 0x00, - 0x57, - 0x5C, - 0x00, - 0x00, - 0x56, - 0x60, - 0x5A, - 0x4F, - 0x58, - 0x00, - 0x5A, - 0x57, - 0x53, - 0x57, - 0x50, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0x5C, - 0x57, - 0x00, - 0x00, - 0xF9, - 0x56, - 0x53, - 0xF3, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x72, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x53, - 0x00, - 0x70, - 0x78, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x78, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x31, - 0x21, - 0x56, - 0xF4, - 0x4E, - 0xF7, - 0x54, - 0x58, - 0x5B, - 0x53, - 0x58, - 0x58, - 0x00, - 0xB8, - 0x4E, - 0xF7, - 0x55, - 0x50, - 0x56, - 0x57, - 0x5A, - 0x00, - 0x55, - 0x50, - 0x00, - 0x57, - 0x44, - 0x55, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x16, - 0x59, - 0x00, - 0x5A, - 0x57, - 0x54, - 0xB8, - 0xB2, - 0x55, - 0x55, - 0x4E, - 0xB8, - 0x57, - 0x5D, - 0x00, - 0x54, - 0xF9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x53, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x64, - 0x70, - 0x00, - 0x46, - 0x89, - 0x00, - 0x88, - 0x62, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x76, - 0x05, - 0x00, - 0x00, - 0x31, - 0x5F, - 0x56, - 0xF5, - 0xB2, - 0x5F, - 0x5A, - 0x44, - 0x56, - 0xF7, - 0x50, - 0x50, - 0x58, - 0xF3, - 0x5D, - 0x5A, - 0x58, - 0x4F, - 0xF5, - 0x55, - 0x50, - 0x57, - 0x0B, - 0xB2, - 0x56, - 0x57, - 0x60, - 0x61, - 0x57, - 0x57, - 0x5B, - 0x58, - 0x4E, - 0xB8, - 0xB8, - 0xB2, - 0x17, - 0x58, - 0xF4, - 0xF9, - 0x5A, - 0x59, - 0x5F, - 0xF4, - 0xF5, - 0x17, - 0x5C, - 0x5A, - 0x4D, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0x54, - 0x6E, - 0x63, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x05, - 0x00, - 0x00, - 0x31, - 0x55, - 0xF5, - 0xF3, - 0x55, - 0xF5, - 0x56, - 0xB8, - 0x00, - 0xF6, - 0x16, - 0xF9, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x57, - 0xB8, - 0xF6, - 0x55, - 0xF6, - 0xF6, - 0xF6, - 0xF7, - 0xF5, - 0xB8, - 0x57, - 0xF7, - 0x00, - 0x55, - 0x60, - 0xF8, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x56, - 0xB8, - 0x22, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x54, - 0x75, - 0x62, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x76, - 0x62, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x56, - 0xF7, - 0x54, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x01, - 0x58, - 0x17, - 0x00, - 0x01, - 0x59, - 0x01, - 0x57, - 0x0B, - 0x00, - 0x01, - 0x16, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x88, - 0x53, - 0x75, - 0x63, - 0x77, - 0x62, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xB8, - 0x07, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xF4, - 0x17, - 0x00, - 0x01, - 0xF5, - 0x01, - 0xF4, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x54, - 0x5A, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x78, - 0x75, - 0x81, - 0x46, - 0x54, - 0x72, - 0x64, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x0D, - 0x54, - 0x54, - 0x54, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x54, - 0x00, - 0x1A, - 0x00, - 0x01, - 0xF3, - 0x01, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x19, - 0x54, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x72, - 0x00, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x78, - 0x78, - 0x53, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x75, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x58, - 0xB8, - 0x00, - 0x55, - 0x5A, - 0x53, - 0x00, - 0x59, - 0xF7, - 0xF5, - 0x0B, - 0x5F, - 0x58, - 0x59, - 0x55, - 0x59, - 0xB8, - 0x00, - 0xF7, - 0x5B, - 0xF6, - 0x5A, - 0xF5, - 0xF7, - 0x59, - 0x00, - 0x54, - 0x5A, - 0x55, - 0x54, - 0xB8, - 0x58, - 0x00, - 0x00, - 0x00, - 0x19, - 0x00, - 0x70, - 0x77, - 0x77, - 0x77, - 0x88, - 0x00, - 0x88, - 0x72, - 0x46, - 0x54, - 0x72, - 0x67, - 0x89, - 0x54, - 0x76, - 0x72, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x88, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x60, - 0x56, - 0x00, - 0xF7, - 0x50, - 0xB3, - 0x00, - 0x4F, - 0xB8, - 0x57, - 0x60, - 0xF5, - 0x56, - 0x1A, - 0x55, - 0xF7, - 0x50, - 0x55, - 0x50, - 0xB8, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x4F, - 0x00, - 0x53, - 0x50, - 0xF7, - 0x53, - 0x56, - 0x60, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x75, - 0x77, - 0x77, - 0x62, - 0x88, - 0x04, - 0x00, - 0x00, - 0x05, - 0x89, - 0x78, - 0x63, - 0x72, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x70, - 0x62, - 0x77, - 0x81, - 0xB3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0xB3, - 0x00, - 0x5E, - 0xB8, - 0xF7, - 0x50, - 0xB8, - 0xF5, - 0x61, - 0xF7, - 0x00, - 0x57, - 0x24, - 0x58, - 0x00, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x53, - 0x17, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x4C, - 0x81, - 0x77, - 0x62, - 0x70, - 0x04, - 0x76, - 0x00, - 0x0D, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x75, - 0x76, - 0x76, - 0x76, - 0x75, - 0x78, - 0x77, - 0x77, - 0x75, - 0x00, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0x00, - 0x00, - 0x21, - 0x56, - 0x54, - 0xF7, - 0x5A, - 0x5D, - 0x40, - 0xF7, - 0x00, - 0xB8, - 0x41, - 0x56, - 0x53, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x00, - 0x22, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x76, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x6E, - 0x46, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x60, - 0xF6, - 0x56, - 0x1A, - 0x56, - 0xF6, - 0x50, - 0xB8, - 0xB3, - 0x55, - 0xF4, - 0x55, - 0x40, - 0x55, - 0xF6, - 0x50, - 0x57, - 0x50, - 0xF6, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x25, - 0xB8, - 0xF6, - 0x44, - 0x5C, - 0xF6, - 0x58, - 0x21, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x72, - 0x10, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x07, - 0x00, - 0x00, - 0x20, - 0x59, - 0x58, - 0xF9, - 0x50, - 0x57, - 0x59, - 0x17, - 0x60, - 0xF5, - 0xF4, - 0x5D, - 0x60, - 0x22, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x00, - 0x57, - 0x59, - 0xF4, - 0xF9, - 0xF5, - 0xF7, - 0x5B, - 0x5A, - 0x61, - 0x5D, - 0x57, - 0x5F, - 0xB2, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x54, - 0x70, - 0x00, - 0x0E, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x08, - 0x00, - 0x00, - 0x1F, - 0xF3, - 0x00, - 0xF3, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x53, - 0xF5, - 0x54, - 0xB3, - 0x00, - 0x54, - 0xF5, - 0x53, - 0x00, - 0xF4, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x72, - 0x01, - 0x78, - 0x0B, - 0x77, - 0x01, - 0x6E, - 0x01, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x03, - 0xF6, - 0x50, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x88, - 0x70, - 0x78, - 0x00, - 0x07, - 0x77, - 0x00, - 0x03, - 0x81, - 0x75, - 0x46, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x03, - 0xF3, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x09, - 0x89, - 0x75, - 0x70, - 0x6E, - 0x6E, - 0x70, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x77, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x02, - 0x01, - 0xBE, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x1B, - 0x60, - 0x43, - 0x00, - 0x5E, - 0x74, - 0x00, - 0x03, - 0x9F, - 0x3B, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x03, - 0x6C, - 0x09, - 0x64, - 0x00, - 0x63, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0D, - 0x8B, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x9F, - 0x29, - 0x00, - 0x68, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x6C, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x9D, - 0x00, - 0x6E, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x70, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x60, - 0x00, - 0x71, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x20, - 0x30, - 0x00, - 0x72, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x3B, - 0x73, - 0x02, - 0x01, - 0x10, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x9F, - 0x74, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xA0, - 0x74, - 0x02, - 0x01, - 0x9F, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x0D, - 0x74, - 0x02, - 0x01, - 0xA0, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x29, - 0x74, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x43, - 0x28, - 0x4F, - 0x01, - 0xCC, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0xA0, - 0x28, - 0x8B, - 0x01, - 0xA0, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x9F, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x01, - 0x0F, - 0x75, - 0x59, - 0x01, - 0x97, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x7E, - 0x74, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x56, - 0x74, - 0x02, - 0x01, - 0x74, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8C, - 0x74, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xA7, - 0x74, - 0x02, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6A, - 0x73, - 0x02, - 0x01, - 0x7C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x5A, - 0x00, - 0x72, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x9D, - 0x70, - 0x02, - 0x01, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x10, - 0x00, - 0x6E, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0xCC, - 0x01, - 0x10, - 0x6C, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x64, - 0x6A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x20, - 0x8B, - 0x10, - 0x00, - 0x67, - 0x02, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x05, - 0x6A, - 0xA7, - 0x74, - 0x56, - 0xD2, - 0x00, - 0x5E, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6B, - 0x3C, - 0x6F, - 0xDC, - 0x00, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x18, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x0B, - 0x01, - 0x01, - 0xAB, - 0x43, - 0x5F, - 0x01, - 0x1C, - 0x0B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x07, - 0x01, - 0x00, - 0x04, - 0x1C, - 0x3F, - 0x0C, - 0x30, - 0x44, - 0x02, - 0x00, - 0x04, - 0x10, - 0xC6, - 0x09, - 0x93, - 0x08, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x06, - 0x01, - 0x01, - 0x78, - 0x01, - 0x0D, - 0x4B, - 0x02, - 0x01, - 0x09, - 0x01, - 0x1C, - 0x06, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x05, - 0x01, - 0x01, - 0x93, - 0x4E, - 0x02, - 0x01, - 0x44, - 0x01, - 0xAB, - 0x05, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x30, - 0x4F, - 0x02, - 0x01, - 0x0F, - 0x05, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0x0F, - 0x51, - 0x02, - 0x01, - 0x6D, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0xAB, - 0x00, - 0x52, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x93, - 0x00, - 0x52, - 0x02, - 0x00, - 0x06, - 0x29, - 0x1C, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x84, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0xB8, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x76, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x1D, - 0x29, - 0x2A, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0xE2, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x84, - 0x00, - 0x53, - 0x0D, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x76, - 0x00, - 0x53, - 0x84, - 0x00, - 0x05, - 0x5F, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0xA5, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x6D, - 0x00, - 0x52, - 0x02, - 0x00, - 0x06, - 0x10, - 0x86, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x5F, - 0x00, - 0x52, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0xC6, - 0x51, - 0x02, - 0x01, - 0xA5, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x10, - 0x4F, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x1C, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x05, - 0x01, - 0x01, - 0x84, - 0x4E, - 0x02, - 0x01, - 0x10, - 0x01, - 0x11, - 0x05, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x05, - 0x01, - 0x00, - 0x03, - 0x1C, - 0x3F, - 0x29, - 0x00, - 0x4B, - 0x02, - 0x01, - 0x44, - 0x01, - 0x11, - 0x06, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x07, - 0x01, - 0x00, - 0x03, - 0x5F, - 0x85, - 0x29, - 0x00, - 0x47, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x4E, - 0x86, - 0x00, - 0x07, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x0A, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x3F, - 0x43, - 0x5B, - 0x01, - 0x6D, - 0x01, - 0x2A, - 0x0A, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x0E, - 0x01, - 0x07, - 0x00, - 0x01, - 0x00, - 0x00, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x15, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x01, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0x59, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x05, - 0x20, - 0x6F, - 0x90, - 0x30, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x12, - 0xBD, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x14, - 0x00, - 0x00, - 0x04, - 0x1B, - 0x4F, - 0xC1, - 0x29, - 0x12, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x8B, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x00, - 0x03, - 0x20, - 0xCC, - 0x29, - 0x00, - 0x18, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x50, - 0x54, - 0x00, - 0x00, - 0x06, - 0x08, - 0x2C, - 0x62, - 0x87, - 0x40, - 0x37, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x60, - 0x01, - 0x0D, - 0x1F, - 0x02, - 0x00, - 0x03, - 0x10, - 0xA0, - 0x98, - 0x00, - 0x4F, - 0x00, - 0x00, - 0x03, - 0x37, - 0xBB, - 0xE0, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x34, - 0x45, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x8C, - 0x23, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x3B, - 0x4D, - 0x00, - 0x01, - 0x40, - 0x01, - 0x38, - 0x04, - 0x03, - 0x00, - 0x08, - 0xAF, - 0x24, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x6B, - 0x25, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x95, - 0x4C, - 0x00, - 0x00, - 0x0F, - 0x28, - 0x03, - 0x03, - 0xA6, - 0x7B, - 0x0E, - 0x00, - 0x00, - 0x17, - 0x91, - 0x58, - 0x77, - 0x03, - 0x1E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x0D, - 0x28, - 0x02, - 0x01, - 0x8B, - 0x4A, - 0x00, - 0x00, - 0x04, - 0x07, - 0x03, - 0x03, - 0x46, - 0x08, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0x70, - 0x01, - 0x7C, - 0x2A, - 0x02, - 0x01, - 0x56, - 0x01, - 0x20, - 0x49, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0xBA, - 0x05, - 0x07, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x7E, - 0x2C, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x00, - 0x00, - 0x04, - 0x37, - 0x58, - 0x58, - 0x62, - 0x04, - 0x00, - 0x00, - 0x04, - 0x51, - 0x58, - 0x58, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x07, - 0x58, - 0x58, - 0x39, - 0x06, - 0x00, - 0x00, - 0x06, - 0x05, - 0x39, - 0x15, - 0xA6, - 0x54, - 0x45, - 0x05, - 0x00, - 0x00, - 0x08, - 0x07, - 0x39, - 0x45, - 0x25, - 0x22, - 0x4B, - 0x6E, - 0x0E, - 0x04, - 0x00, - 0x00, - 0x04, - 0xD1, - 0x03, - 0x03, - 0x57, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x31, - 0x58, - 0x34, - 0x03, - 0x03, - 0x23, - 0x00, - 0x00, - 0x2C, - 0x58, - 0x58, - 0x40, - 0x07, - 0x00, - 0x00, - 0x0C, - 0x05, - 0xAE, - 0x54, - 0x25, - 0x57, - 0x16, - 0x07, - 0x00, - 0x00, - 0xAE, - 0x58, - 0x2C, - 0x06, - 0x00, - 0x00, - 0x06, - 0x37, - 0x4B, - 0x54, - 0xA6, - 0x68, - 0xAC, - 0x05, - 0x00, - 0x00, - 0x08, - 0x19, - 0x26, - 0x72, - 0xA1, - 0x72, - 0x26, - 0x16, - 0x05, - 0x07, - 0x00, - 0x00, - 0x17, - 0x07, - 0x2B, - 0x72, - 0x25, - 0x4A, - 0x2D, - 0x05, - 0x00, - 0x14, - 0x58, - 0x58, - 0x07, - 0x00, - 0x00, - 0x00, - 0x14, - 0x19, - 0x05, - 0x16, - 0x0E, - 0x2D, - 0x19, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x1B, - 0x01, - 0xCA, - 0x2E, - 0x02, - 0x01, - 0x3C, - 0x16, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x01, - 0x0E, - 0x01, - 0x9C, - 0x04, - 0x03, - 0x01, - 0x7A, - 0x04, - 0x00, - 0x01, - 0x6E, - 0x01, - 0x38, - 0x06, - 0x03, - 0x00, - 0x1A, - 0x80, - 0x23, - 0x07, - 0x00, - 0x00, - 0x05, - 0x4B, - 0x1E, - 0x03, - 0x41, - 0x62, - 0x4A, - 0x22, - 0x9B, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x8F, - 0x31, - 0x00, - 0x00, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x01, - 0x08, - 0x01, - 0x24, - 0x05, - 0x03, - 0x00, - 0x06, - 0x13, - 0x79, - 0x04, - 0x03, - 0x03, - 0x23, - 0x05, - 0x00, - 0x01, - 0x87, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x07, - 0x15, - 0x00, - 0x00, - 0x00, - 0x04, - 0x45, - 0x1E, - 0x00, - 0x06, - 0x03, - 0x01, - 0xE0, - 0x01, - 0x79, - 0x05, - 0x00, - 0x01, - 0x48, - 0x01, - 0x9C, - 0x05, - 0x03, - 0x00, - 0x11, - 0xB3, - 0x31, - 0xAE, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x26, - 0x0B, - 0x25, - 0xD1, - 0x25, - 0x58, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x6B, - 0x2F, - 0x02, - 0x01, - 0x10, - 0x01, - 0xA7, - 0x15, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x01, - 0x52, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1E, - 0xA3, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x04, - 0x03, - 0x01, - 0x9C, - 0x01, - 0xE0, - 0x04, - 0x03, - 0x00, - 0x07, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x1E, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0A, - 0x35, - 0x4B, - 0x37, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x00, - 0x0D, - 0x53, - 0x03, - 0x03, - 0x03, - 0x8F, - 0x67, - 0x03, - 0x03, - 0x03, - 0x25, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x12, - 0x17, - 0x33, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x5E, - 0x26, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x9B, - 0x66, - 0x04, - 0x03, - 0x00, - 0x1D, - 0x68, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x66, - 0x03, - 0x03, - 0x03, - 0x34, - 0xA1, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x26, - 0x0B, - 0x25, - 0x22, - 0x15, - 0x45, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0x3C, - 0x31, - 0x02, - 0x01, - 0x29, - 0x01, - 0x50, - 0x14, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x16, - 0x24, - 0x03, - 0x03, - 0xBB, - 0x08, - 0x00, - 0x05, - 0x00, - 0x00, - 0x14, - 0x3A, - 0x03, - 0x03, - 0x52, - 0x0E, - 0x00, - 0x00, - 0x2F, - 0x62, - 0xA6, - 0x03, - 0x7A, - 0x04, - 0x00, - 0x01, - 0x15, - 0x04, - 0x03, - 0x00, - 0x04, - 0x38, - 0xA1, - 0x4B, - 0x21, - 0x06, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x07, - 0x03, - 0x03, - 0x03, - 0x16, - 0x00, - 0x00, - 0x0E, - 0x26, - 0x80, - 0x03, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x23, - 0x19, - 0x03, - 0x03, - 0x3A, - 0x1A, - 0x0B, - 0x00, - 0x05, - 0x00, - 0x00, - 0x58, - 0x03, - 0x03, - 0x13, - 0x26, - 0x05, - 0x00, - 0x00, - 0x21, - 0x2B, - 0x8F, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x03, - 0x34, - 0x40, - 0x00, - 0x31, - 0x26, - 0x8F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x08, - 0x00, - 0x00, - 0x0B, - 0x51, - 0x4A, - 0x0E, - 0x34, - 0x4A, - 0x2D, - 0x34, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x32, - 0x02, - 0x01, - 0x44, - 0x01, - 0x20, - 0x13, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x04, - 0x3A, - 0x03, - 0x3A, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0xA6, - 0x03, - 0x03, - 0x54, - 0x07, - 0x00, - 0x01, - 0x87, - 0x01, - 0x68, - 0x04, - 0x00, - 0x00, - 0x05, - 0xA3, - 0x03, - 0x03, - 0x4B, - 0x08, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x2D, - 0x03, - 0x03, - 0x89, - 0x05, - 0x00, - 0x00, - 0x05, - 0x19, - 0x24, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x79, - 0x03, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x13, - 0x03, - 0x03, - 0x7B, - 0x00, - 0x06, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x23, - 0x2B, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x1E, - 0x08, - 0x04, - 0x00, - 0x00, - 0x11, - 0x37, - 0x67, - 0x03, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x7B, - 0x45, - 0x45, - 0x79, - 0x45, - 0x0E, - 0x00, - 0x4B, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x61, - 0x34, - 0x02, - 0x01, - 0x43, - 0x13, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x13, - 0x03, - 0x69, - 0x31, - 0x0D, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x1E, - 0x03, - 0x15, - 0x16, - 0x40, - 0x0B, - 0x00, - 0x08, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x1E, - 0x03, - 0x46, - 0x06, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x62, - 0x03, - 0x03, - 0x5C, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x4A, - 0x03, - 0x03, - 0x52, - 0x06, - 0x00, - 0x00, - 0x05, - 0x37, - 0x33, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x4F, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x06, - 0x99, - 0x01, - 0x02, - 0x01, - 0x3E, - 0x06, - 0x99, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x75, - 0x06, - 0x99, - 0x00, - 0x03, - 0x47, - 0x02, - 0xD7, - 0x00, - 0x06, - 0x99, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x31, - 0x03, - 0x03, - 0x46, - 0x0F, - 0x00, - 0x01, - 0x23, - 0x05, - 0x03, - 0x01, - 0x41, - 0x01, - 0x40, - 0x06, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x00, - 0x04, - 0xCD, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x58, - 0x03, - 0x03, - 0x4B, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x54, - 0x03, - 0x03, - 0x2B, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x20, - 0x01, - 0x44, - 0x07, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x03, - 0x02, - 0x02, - 0x92, - 0x00, - 0x06, - 0x03, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x00, - 0x03, - 0xB0, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x07, - 0x02, - 0x01, - 0x74, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x16, - 0x03, - 0x03, - 0x1D, - 0x0E, - 0x00, - 0x00, - 0x0A, - 0x58, - 0x03, - 0x03, - 0x03, - 0x34, - 0x82, - 0x03, - 0x03, - 0x03, - 0x51, - 0x05, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x00, - 0x0D, - 0x16, - 0x80, - 0x03, - 0x03, - 0x88, - 0x39, - 0x0B, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x72, - 0x03, - 0x03, - 0x6E, - 0x0C, - 0x00, - 0x00, - 0x04, - 0xAD, - 0x03, - 0x03, - 0xB1, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x03, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCE, - 0x02, - 0x02, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x6A, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x39, - 0x03, - 0x03, - 0x55, - 0x0A, - 0xA2, - 0x00, - 0x0F, - 0x31, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x03, - 0x35, - 0x21, - 0x00, - 0x00, - 0x16, - 0x77, - 0x03, - 0x69, - 0x2D, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x07, - 0x00, - 0x01, - 0x27, - 0x01, - 0x77, - 0x04, - 0x03, - 0x00, - 0x06, - 0x9C, - 0x53, - 0xA9, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x3A, - 0x09, - 0x13, - 0x00, - 0x07, - 0x81, - 0x00, - 0x00, - 0x65, - 0x03, - 0x03, - 0x36, - 0x00, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x06, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x90, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x01, - 0x36, - 0x0C, - 0x03, - 0x00, - 0x08, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x03, - 0x03, - 0x62, - 0x04, - 0x00, - 0x00, - 0x04, - 0x45, - 0x03, - 0x03, - 0x72, - 0x04, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x08, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x39, - 0x5C, - 0x5E, - 0x06, - 0x03, - 0x01, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x01, - 0x15, - 0x0C, - 0x03, - 0x00, - 0x07, - 0xD8, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x39, - 0x00, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xA7, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x06, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x00, - 0x06, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x05, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x07, - 0x03, - 0x03, - 0x67, - 0x06, - 0x7B, - 0x00, - 0x0B, - 0x87, - 0x55, - 0x03, - 0x9C, - 0x00, - 0x00, - 0x05, - 0x77, - 0x03, - 0xAF, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x21, - 0x03, - 0x03, - 0x46, - 0x04, - 0x00, - 0x00, - 0x05, - 0x23, - 0x03, - 0x03, - 0x66, - 0x63, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x08, - 0x07, - 0x48, - 0xAE, - 0x15, - 0x24, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x26, - 0x03, - 0x03, - 0x54, - 0x06, - 0x7B, - 0x00, - 0x0A, - 0x45, - 0x03, - 0x03, - 0x45, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x03, - 0x23, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xA0, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0x99, - 0x06, - 0x03, - 0x00, - 0x04, - 0x3D, - 0x02, - 0x02, - 0xB6, - 0x06, - 0x03, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x3B, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x62, - 0x05, - 0x00, - 0x00, - 0x04, - 0x2C, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x1E, - 0x2F, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x39, - 0x03, - 0x03, - 0x5C, - 0x00, - 0x00, - 0x04, - 0x55, - 0x03, - 0x82, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x03, - 0x46, - 0x04, - 0x00, - 0x00, - 0x06, - 0x23, - 0x03, - 0x03, - 0x03, - 0x9C, - 0x31, - 0x0D, - 0x00, - 0x00, - 0x04, - 0x57, - 0x03, - 0x03, - 0x4B, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0xA3, - 0x06, - 0x00, - 0x00, - 0x0B, - 0xA1, - 0x03, - 0x03, - 0x51, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x38, - 0x05, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x7C, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0x9A, - 0x05, - 0x03, - 0x00, - 0x03, - 0xDD, - 0x02, - 0xD4, - 0x00, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x8B, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x05, - 0x38, - 0x03, - 0x03, - 0x5E, - 0x58, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x41, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x5D, - 0x03, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x46, - 0x03, - 0x03, - 0x7B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x15, - 0x04, - 0x00, - 0x01, - 0x23, - 0x04, - 0x03, - 0x01, - 0x35, - 0x01, - 0x19, - 0x04, - 0x00, - 0x01, - 0x19, - 0x01, - 0x05, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x1A, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x06, - 0x00, - 0x00, - 0x04, - 0xB9, - 0x03, - 0x03, - 0x16, - 0x04, - 0x00, - 0x00, - 0x0C, - 0x37, - 0x1E, - 0x03, - 0x66, - 0x07, - 0x00, - 0x00, - 0x00, - 0x81, - 0x03, - 0x03, - 0x23, - 0x06, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x06, - 0x03, - 0x01, - 0xB0, - 0x01, - 0xC9, - 0x06, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x9D, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x01, - 0x38, - 0x04, - 0x03, - 0x00, - 0x22, - 0x5D, - 0xD1, - 0x27, - 0x15, - 0x13, - 0x03, - 0x03, - 0x54, - 0x00, - 0x00, - 0x40, - 0x6E, - 0x6E, - 0x1E, - 0x03, - 0x7A, - 0x6E, - 0x6E, - 0x6E, - 0x40, - 0x00, - 0x00, - 0x17, - 0x34, - 0x03, - 0x03, - 0x23, - 0x05, - 0x00, - 0x17, - 0x23, - 0x03, - 0x03, - 0x9B, - 0x04, - 0x00, - 0x00, - 0x41, - 0x4B, - 0x03, - 0x03, - 0xA9, - 0x0E, - 0x00, - 0x00, - 0x2E, - 0xBA, - 0x03, - 0x03, - 0x53, - 0x58, - 0x79, - 0x07, - 0x00, - 0x23, - 0x03, - 0x03, - 0x23, - 0x69, - 0x03, - 0x03, - 0x53, - 0x4B, - 0x0E, - 0x00, - 0xAF, - 0x7A, - 0x45, - 0x6E, - 0x19, - 0x07, - 0x16, - 0x15, - 0x03, - 0x03, - 0x03, - 0x19, - 0x00, - 0x00, - 0x62, - 0x6E, - 0x45, - 0x03, - 0x03, - 0x25, - 0x6E, - 0x6E, - 0x6E, - 0x37, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x82, - 0x7B, - 0x00, - 0x00, - 0x08, - 0x41, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x0E, - 0x2E, - 0x55, - 0x03, - 0x03, - 0x25, - 0x6E, - 0x21, - 0x27, - 0x51, - 0xA3, - 0x03, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x8B, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x06, - 0x02, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x50, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x05, - 0x38, - 0x03, - 0xA3, - 0x58, - 0x1E, - 0x00, - 0x06, - 0x03, - 0x00, - 0x05, - 0x55, - 0x19, - 0x00, - 0x00, - 0x1D, - 0x00, - 0x08, - 0x03, - 0x00, - 0x0F, - 0x25, - 0x00, - 0x00, - 0x00, - 0x27, - 0x82, - 0x03, - 0x03, - 0x1E, - 0x34, - 0x1E, - 0x03, - 0x03, - 0x7A, - 0x40, - 0x00, - 0x04, - 0x00, - 0x00, - 0x08, - 0x05, - 0xA3, - 0x03, - 0x03, - 0x13, - 0xA3, - 0xA9, - 0x1E, - 0x06, - 0x03, - 0x00, - 0x0D, - 0x21, - 0x00, - 0x23, - 0x03, - 0x03, - 0x14, - 0x6E, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x14, - 0x07, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x05, - 0x22, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x08, - 0x03, - 0x00, - 0x0F, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x03, - 0x03, - 0x66, - 0x38, - 0x03, - 0x03, - 0x03, - 0xA3, - 0x07, - 0x00, - 0x05, - 0x00, - 0x01, - 0x51, - 0x01, - 0x3A, - 0x0A, - 0x03, - 0x01, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x0B, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x43, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x10, - 0x38, - 0x03, - 0x15, - 0x00, - 0x19, - 0x41, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x77, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x08, - 0x03, - 0x01, - 0x25, - 0x04, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5C, - 0x05, - 0x03, - 0x01, - 0x88, - 0x01, - 0x08, - 0x06, - 0x00, - 0x00, - 0x03, - 0x07, - 0x23, - 0x3A, - 0x00, - 0x04, - 0x03, - 0x00, - 0x16, - 0x7A, - 0x26, - 0x26, - 0xA1, - 0x3A, - 0x3A, - 0x05, - 0x00, - 0x23, - 0x03, - 0x80, - 0x00, - 0x00, - 0x87, - 0x8F, - 0x03, - 0x13, - 0x00, - 0x0B, - 0x58, - 0x41, - 0x1E, - 0x05, - 0x03, - 0x00, - 0x07, - 0x1E, - 0x52, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x08, - 0x03, - 0x01, - 0x1A, - 0x04, - 0x00, - 0x01, - 0x16, - 0x01, - 0xBA, - 0x04, - 0x03, - 0x00, - 0x03, - 0x55, - 0x15, - 0x05, - 0x00, - 0x07, - 0x00, - 0x01, - 0x19, - 0x01, - 0x88, - 0x04, - 0x03, - 0x00, - 0x06, - 0x80, - 0xB9, - 0x13, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x29, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x01, - 0x92, - 0x0A, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x19, - 0x19, - 0x14, - 0x04, - 0x00, - 0x00, - 0x0B, - 0x2E, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x62, - 0x4A, - 0x87, - 0x0E, - 0x00, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x08, - 0x19, - 0x19, - 0x1E, - 0x03, - 0xBA, - 0x19, - 0x19, - 0x19, - 0x14, - 0x06, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x62, - 0x4A, - 0x62, - 0x0E, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x16, - 0x0E, - 0x16, - 0x58, - 0x26, - 0x16, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x27, - 0x00, - 0x00, - 0x0E, - 0x19, - 0x63, - 0x00, - 0x00, - 0x00, - 0x05, - 0x27, - 0xAC, - 0x04, - 0x00, - 0x00, - 0x07, - 0x07, - 0x91, - 0x1A, - 0x4A, - 0xC0, - 0x6E, - 0x14, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x19, - 0x19, - 0x4A, - 0x03, - 0x03, - 0x22, - 0x19, - 0x19, - 0x19, - 0x07, - 0x06, - 0x00, - 0x00, - 0x05, - 0x21, - 0x39, - 0x26, - 0x48, - 0x17, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x0A, - 0x0B, - 0x48, - 0x79, - 0x21, - 0x05, - 0x00, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x73, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x01, - 0x32, - 0x09, - 0x03, - 0x01, - 0xCE, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x6B, - 0x29, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x97, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x08, - 0x03, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x12, - 0x29, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6A, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x07, - 0x03, - 0x01, - 0x92, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x7E, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x17, - 0x4A, - 0x52, - 0x2D, - 0x16, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8D, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x09, - 0x02, - 0x01, - 0x99, - 0x06, - 0x03, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x0F, - 0x00, - 0x00, - 0x04, - 0xAE, - 0x03, - 0x03, - 0x24, - 0x16, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x09, - 0x02, - 0x01, - 0x75, - 0x01, - 0x1E, - 0x05, - 0x03, - 0x01, - 0xCE, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0B, - 0x02, - 0x01, - 0x59, - 0x0E, - 0x00, - 0x00, - 0x05, - 0x4B, - 0x03, - 0x03, - 0xAF, - 0x05, - 0x00, - 0x15, - 0x00, - 0x00, - 0x03, - 0x0B, - 0x0B, - 0x04, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x05, - 0x0B, - 0x0B, - 0x05, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x0A, - 0x02, - 0x01, - 0xB0, - 0x06, - 0x03, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0B, - 0x02, - 0x01, - 0x1B, - 0x0E, - 0x00, - 0x00, - 0x04, - 0x0E, - 0xA6, - 0x8F, - 0x1A, - 0x7E, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6C, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0xDD, - 0x00, - 0x05, - 0x03, - 0x01, - 0xD5, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x29, - 0x91, - 0x00, - 0x00, - 0x04, - 0x26, - 0x23, - 0x23, - 0x07, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x59, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x00, - 0x05, - 0xCE, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x00, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x9E, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x1B, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x06, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x03, - 0xE9, - 0x75, - 0x02, - 0x02, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x05, - 0x02, - 0x00, - 0x08, - 0x75, - 0xD5, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x32, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0xA0, - 0x2C, - 0x00, - 0x00, - 0x03, - 0x04, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x30, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x05, - 0x02, - 0x00, - 0x09, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0x3E, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x8C, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x48, - 0x33, - 0x33, - 0x52, - 0x06, - 0x00, - 0x00, - 0x04, - 0x52, - 0x33, - 0x33, - 0xB1, - 0x05, - 0x00, - 0x00, - 0x04, - 0x2F, - 0x33, - 0x33, - 0x88, - 0x04, - 0x00, - 0x00, - 0x12, - 0x21, - 0x53, - 0x5E, - 0x03, - 0x03, - 0x8F, - 0x22, - 0x2D, - 0x00, - 0x57, - 0x33, - 0x67, - 0x00, - 0x00, - 0x45, - 0x33, - 0x33, - 0x54, - 0x06, - 0x00, - 0x00, - 0x0A, - 0x40, - 0x82, - 0x33, - 0x38, - 0x63, - 0x00, - 0x48, - 0x33, - 0x33, - 0x1D, - 0x04, - 0x00, - 0x00, - 0x04, - 0x88, - 0x33, - 0x33, - 0x2F, - 0x05, - 0x00, - 0x00, - 0x04, - 0x7B, - 0x33, - 0x33, - 0x54, - 0x06, - 0x00, - 0x00, - 0x04, - 0x1D, - 0x33, - 0x33, - 0x48, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x94, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0xA7, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0C, - 0x69, - 0xAE, - 0xA6, - 0x03, - 0x33, - 0x00, - 0x00, - 0x07, - 0x34, - 0x03, - 0x03, - 0x62, - 0x04, - 0x00, - 0x00, - 0x0B, - 0x17, - 0x24, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x95, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x4D, - 0x02, - 0x02, - 0x99, - 0x06, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x1B, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x2A, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x03, - 0xC5, - 0x23, - 0x62, - 0x57, - 0x5C, - 0x03, - 0x03, - 0x1E, - 0x03, - 0x33, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x03, - 0x03, - 0x7A, - 0x07, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x03, - 0xA9, - 0x05, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x98, - 0x10, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0xA8, - 0xA8, - 0xA8, - 0x3D, - 0x06, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x1E, - 0x05, - 0x03, - 0x00, - 0x05, - 0xC9, - 0xA8, - 0xA8, - 0xA8, - 0xDE, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x56, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x03, - 0x03, - 0x26, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x87, - 0x66, - 0x03, - 0x03, - 0x33, - 0x00, - 0x04, - 0x00, - 0x00, - 0x12, - 0x15, - 0x03, - 0x03, - 0x54, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0xA2, - 0x14, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x12, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x10, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x10, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x95, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x53, - 0x03, - 0x03, - 0x19, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x33, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x24, - 0x03, - 0x03, - 0x16, - 0x07, - 0x34, - 0x03, - 0x03, - 0x2B, - 0x04, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xCC, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x0F, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0xE1, - 0x01, - 0xD5, - 0x0F, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x98, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x33, - 0x00, - 0x05, - 0x00, - 0x00, - 0x08, - 0x2D, - 0x55, - 0x03, - 0x9C, - 0x52, - 0x03, - 0x03, - 0xA6, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x09, - 0x02, - 0x01, - 0x99, - 0x0E, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x3D, - 0x0F, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x61, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x55, - 0x03, - 0x03, - 0x23, - 0x2F, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x33, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x04, - 0x03, - 0x01, - 0x38, - 0x01, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0x3D, - 0x0E, - 0x03, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x92, - 0x0D, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x75, - 0x08, - 0x02, - 0x01, - 0xB7, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x04, - 0x00, - 0x00, - 0x0C, - 0x62, - 0x3A, - 0x03, - 0x03, - 0x3A, - 0x1D, - 0xD1, - 0x87, - 0x14, - 0x03, - 0x03, - 0x33, - 0x06, - 0x00, - 0x00, - 0x06, - 0x05, - 0x89, - 0x03, - 0x03, - 0x03, - 0x7B, - 0x06, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x50, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x92, - 0x0C, - 0x03, - 0x01, - 0xB6, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xD5, - 0x0C, - 0x03, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x61, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x05, - 0x00, - 0x00, - 0x03, - 0x2C, - 0x25, - 0x1E, - 0x00, - 0x07, - 0x03, - 0x01, - 0x33, - 0x07, - 0x00, - 0x00, - 0x05, - 0x53, - 0x03, - 0x03, - 0x13, - 0x08, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0xA0, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x0B, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB0, - 0x09, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x60, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x07, - 0x00, - 0x00, - 0x09, - 0x0E, - 0x58, - 0x1D, - 0x35, - 0x13, - 0x03, - 0x03, - 0x03, - 0x33, - 0x00, - 0x06, - 0x00, - 0x01, - 0x26, - 0x04, - 0x03, - 0x01, - 0x5C, - 0x06, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x6A, - 0x35, - 0x02, - 0x01, - 0x0C, - 0x13, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0xA1, - 0x06, - 0x00, - 0x00, - 0x04, - 0xA1, - 0x03, - 0x03, - 0x62, - 0x05, - 0x00, - 0x00, - 0x04, - 0x31, - 0x03, - 0x03, - 0x34, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x14, - 0x03, - 0x03, - 0x33, - 0x05, - 0x00, - 0x00, - 0x08, - 0x21, - 0x80, - 0x03, - 0x3A, - 0x89, - 0x03, - 0x03, - 0x26, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x31, - 0x05, - 0x00, - 0x00, - 0x04, - 0x79, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x5C, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x96, - 0x33, - 0x02, - 0x01, - 0x10, - 0x01, - 0x50, - 0x13, - 0x00, - 0x00, - 0x05, - 0x27, - 0x03, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x05, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0x03, - 0x34, - 0x2D, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x87, - 0x03, - 0x03, - 0x24, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x67, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x05, - 0xCD, - 0x03, - 0x03, - 0x58, - 0x14, - 0xA2, - 0x03, - 0x3A, - 0x21, - 0x04, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0x03, - 0x88, - 0x31, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x23, - 0x03, - 0x03, - 0x03, - 0x4A, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x82, - 0x03, - 0x03, - 0x91, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x9D, - 0x32, - 0x02, - 0x01, - 0x8B, - 0x14, - 0x00, - 0x01, - 0x27, - 0x04, - 0x03, - 0x00, - 0x05, - 0x22, - 0x21, - 0x00, - 0x00, - 0x87, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x13, - 0x51, - 0x07, - 0x00, - 0x07, - 0x1D, - 0x03, - 0x03, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0xAC, - 0x15, - 0x40, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0xBB, - 0x03, - 0x03, - 0xA1, - 0x04, - 0x00, - 0x00, - 0x12, - 0x23, - 0x03, - 0x03, - 0x5D, - 0x05, - 0x00, - 0xAE, - 0x03, - 0x03, - 0x89, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x34, - 0x03, - 0x03, - 0x03, - 0xBA, - 0x62, - 0x05, - 0x00, - 0x08, - 0x9B, - 0x04, - 0x03, - 0x00, - 0x09, - 0x52, - 0x14, - 0x00, - 0x00, - 0x79, - 0x03, - 0x03, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0x8D, - 0x01, - 0x7F, - 0x30, - 0x02, - 0x01, - 0x0C, - 0x15, - 0x00, - 0x00, - 0x17, - 0x27, - 0x03, - 0x03, - 0x89, - 0x1E, - 0x03, - 0x03, - 0x9B, - 0x24, - 0x03, - 0x03, - 0x03, - 0x34, - 0xB9, - 0x03, - 0x03, - 0x69, - 0xAD, - 0xA2, - 0x03, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x22, - 0x15, - 0x03, - 0x03, - 0x38, - 0xA4, - 0x54, - 0x1D, - 0x82, - 0x03, - 0x03, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x48, - 0x1E, - 0x03, - 0x80, - 0x21, - 0x00, - 0x00, - 0x00, - 0x65, - 0x03, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x16, - 0x34, - 0x03, - 0x7A, - 0x34, - 0x03, - 0x03, - 0x77, - 0x41, - 0x1E, - 0x03, - 0x03, - 0x03, - 0xD8, - 0x03, - 0x03, - 0x03, - 0x46, - 0x67, - 0x03, - 0x03, - 0x03, - 0x24, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x60, - 0x01, - 0x10, - 0x2E, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x15, - 0x00, - 0x00, - 0x06, - 0x27, - 0x03, - 0x03, - 0x87, - 0x36, - 0x34, - 0x05, - 0x03, - 0x00, - 0x04, - 0x69, - 0x2D, - 0x05, - 0x15, - 0x06, - 0x03, - 0x01, - 0x8F, - 0x01, - 0x04, - 0x04, - 0x00, - 0x01, - 0x15, - 0x01, - 0x5E, - 0x08, - 0x03, - 0x00, - 0x09, - 0x53, - 0x00, - 0x00, - 0x00, - 0x07, - 0xE0, - 0x03, - 0x03, - 0x58, - 0x00, - 0x04, - 0x00, - 0x00, - 0x0B, - 0x08, - 0x13, - 0x03, - 0x55, - 0x2D, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0xA6, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x03, - 0x00, - 0x04, - 0x15, - 0x00, - 0x62, - 0x82, - 0x05, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x62, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x43, - 0x2D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x16, - 0x00, - 0x00, - 0x16, - 0x19, - 0x25, - 0x25, - 0x08, - 0x00, - 0x07, - 0x2B, - 0x22, - 0x7A, - 0x9B, - 0x15, - 0x27, - 0x00, - 0x00, - 0x00, - 0x40, - 0x23, - 0xA4, - 0x77, - 0x46, - 0x15, - 0x07, - 0x06, - 0x00, - 0x00, - 0x09, - 0x31, - 0xC0, - 0x1D, - 0x89, - 0x7A, - 0xA2, - 0x8F, - 0xA3, - 0x1A, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x79, - 0x25, - 0x25, - 0x72, - 0x06, - 0x00, - 0x00, - 0x0A, - 0x1A, - 0x25, - 0x25, - 0x57, - 0x00, - 0x00, - 0x19, - 0x25, - 0x25, - 0x4B, - 0x04, - 0x00, - 0x00, - 0x15, - 0x72, - 0x25, - 0x39, - 0x00, - 0x00, - 0x16, - 0xBB, - 0x46, - 0xAF, - 0xA6, - 0x26, - 0x05, - 0x00, - 0x00, - 0x0E, - 0xAE, - 0xA6, - 0x38, - 0x34, - 0x53, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0xA0, - 0x2C, - 0x02, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x74, - 0x29, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x01, - 0x4F, - 0x01, - 0x8A, - 0x26, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x53, - 0x00, - 0x01, - 0x05, - 0x01, - 0x08, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x24, - 0x02, - 0x01, - 0x56, - 0x01, - 0x1B, - 0x53, - 0x00, - 0x00, - 0x04, - 0x19, - 0x82, - 0x03, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x21, - 0x02, - 0x01, - 0x10, - 0x01, - 0x74, - 0x55, - 0x00, - 0x00, - 0x05, - 0x23, - 0x03, - 0x03, - 0x80, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x01, - 0x4F, - 0x01, - 0x44, - 0x1E, - 0x02, - 0x01, - 0x94, - 0x01, - 0x83, - 0x56, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x53, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x03, - 0x20, - 0x43, - 0x7C, - 0x00, - 0x1A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x59, - 0x00, - 0x00, - 0x03, - 0x2E, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x00, - 0x00, - 0x03, - 0x1B, - 0xC4, - 0x64, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x10, - 0x4C, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x16, - 0x00, - 0x00, - 0x04, - 0x83, - 0xBD, - 0x61, - 0x10, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x29, - 0xC1, - 0x4F, - 0x97, - 0x00, - 0x00, - 0x00, - 0x02, - 0x19, - 0x00, - 0x00, - 0x10, - 0x98, - 0x4F, - 0xC4, - 0x5A, - 0x56, - 0x0D, - 0x0A, - 0x02, - 0x10, - 0x7E, - 0x12, - 0x6B, - 0x8B, - 0x43, - 0x6F, - 0x20, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xEE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0x10, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xCA, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x10, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x50, - 0x10, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x73, - 0x9E, - 0x02, - 0xD7, - 0xDE, - 0x47, - 0xD7, - 0x99, - 0x47, - 0x02, - 0x10, - 0xD7, - 0x99, - 0x47, - 0x3E, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3C, - 0x02, - 0x10, - 0xA8, - 0x03, - 0xD5, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x8A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x10, - 0x3D, - 0x03, - 0x5E, - 0xB0, - 0x03, - 0x5E, - 0x4D, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x29, - 0x02, - 0x29, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x47, - 0x10, - 0xD7, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x10, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x8A, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x10, - 0x32, - 0x03, - 0x03, - 0x02, - 0x29, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x5E, - 0xD7, - 0xB6, - 0x5E, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0xE4, - 0x10, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x3E, - 0x10, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0x92, - 0x92, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0x92, - 0x92, - 0x47, - 0x02, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x09, - 0x05, - 0x05, - 0x43, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x6A, - 0xC7, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x43, - 0x8A, - 0x02, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x64, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x83, - 0x6B, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x3B, - 0x4F, - 0x83, - 0x73, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xEE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0x10, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xCA, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x10, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x50, - 0x10, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x73, - 0x9E, - 0x02, - 0xD7, - 0xDE, - 0x47, - 0xD7, - 0x99, - 0x47, - 0x02, - 0x10, - 0xD7, - 0x99, - 0x47, - 0x3E, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3C, - 0x02, - 0x10, - 0xA8, - 0x03, - 0xD5, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x8A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x10, - 0x3D, - 0x03, - 0x5E, - 0xB0, - 0x03, - 0x5E, - 0x4D, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x29, - 0x02, - 0x29, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x47, - 0x10, - 0xD7, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x10, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x8A, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x10, - 0x32, - 0x03, - 0x03, - 0x02, - 0x29, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x5E, - 0xD7, - 0xB6, - 0x5E, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0xE4, - 0x10, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x3E, - 0x10, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0x92, - 0x92, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0x92, - 0x92, - 0x47, - 0x02, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x09, - 0x05, - 0x05, - 0x43, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x6A, - 0xC7, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x43, - 0x8A, - 0x02, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x64, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x83, - 0x6B, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x3B, - 0x4F, - 0x83, - 0x73, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x8D, - 0x95, - 0xE4, - 0x64, - 0x02, - 0xC7, - 0x96, - 0x6F, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x0A, - 0x00, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x7E, - 0x43, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x6B, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xDF, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x75, - 0x3D, - 0xDE, - 0xD4, - 0x47, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x99, - 0x3D, - 0xA8, - 0x99, - 0xD7, - 0x02, - 0xA0, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0x90, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0xCB, - 0x1F, - 0x47, - 0x75, - 0xC9, - 0xDD, - 0xB0, - 0x99, - 0x1F, - 0xA8, - 0x02, - 0x10, - 0xD6, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xDC, - 0x12, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0xD4, - 0xDD, - 0x5E, - 0x47, - 0x1F, - 0xB6, - 0x3E, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x29, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0xCB, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xD3, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD7, - 0xD5, - 0x1F, - 0xB6, - 0x02, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x95, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x1F, - 0x99, - 0x02, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD4, - 0x3E, - 0x03, - 0xCE, - 0x3E, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x4D, - 0xC9, - 0x3D, - 0xCB, - 0x5E, - 0x99, - 0x4D, - 0x99, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x9D, - 0x02, - 0x4D, - 0xCB, - 0x5E, - 0x47, - 0x99, - 0x9A, - 0xB6, - 0x3E, - 0x9A, - 0xC9, - 0xB0, - 0xB6, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0xDC, - 0x0C, - 0x02, - 0x4D, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x4F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xA7, - 0x02, - 0x02, - 0xA8, - 0x92, - 0xC9, - 0x92, - 0xB0, - 0x75, - 0x02, - 0x4D, - 0xCB, - 0xC9, - 0xC9, - 0xCB, - 0x3E, - 0x02, - 0x0D, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0x9E, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x20, - 0x4F, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0xD2, - 0xC4, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x59, - 0xBD, - 0x12, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x6B, - 0xA7, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x60, - 0x4F, - 0x8D, - 0x20, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x1B, - 0xA7, - 0x90, - 0x12, - 0x02, - 0x56, - 0xBD, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8C, - 0x20, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x44, - 0x08, - 0x02, - 0x00, - 0x07, - 0x29, - 0xD3, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x30, - 0x3E, - 0xDE, - 0xB0, - 0x3D, - 0xDE, - 0x4D, - 0x75, - 0xA8, - 0xDE, - 0x32, - 0xDE, - 0xB0, - 0x02, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x59, - 0x6B, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3D, - 0x9A, - 0xDE, - 0x3E, - 0xCE, - 0x92, - 0xA8, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x9E, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3E, - 0x92, - 0x5E, - 0xDE, - 0x1F, - 0x47, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x83, - 0x29, - 0x02, - 0x32, - 0x9A, - 0xCB, - 0x02, - 0x47, - 0x5E, - 0x03, - 0xC9, - 0xD7, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x3E, - 0xCE, - 0x1F, - 0x99, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0xC6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x9A, - 0xB0, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x8A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0xD7, - 0xD7, - 0x03, - 0xB6, - 0x4D, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x3B, - 0x8A, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x75, - 0xCB, - 0xB0, - 0xCB, - 0xD5, - 0xA8, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x32, - 0x9A, - 0x92, - 0xB0, - 0xDD, - 0xB6, - 0xD7, - 0xEA, - 0xB6, - 0xB0, - 0x5E, - 0xB6, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x12, - 0x02, - 0x32, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0xD4, - 0x75, - 0xCB, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x02, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x02, - 0x75, - 0xCB, - 0xC9, - 0xC9, - 0xDE, - 0x75, - 0x02, - 0xD7, - 0xB6, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0x4C, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x90, - 0x29, - 0x00, - 0x09, - 0x02, - 0x00, - 0x06, - 0x9D, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x6F, - 0x4C, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x90, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x20, - 0x3B, - 0x4F, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x3B, - 0x8B, - 0x12, - 0x0A, - 0x6B, - 0xDA, - 0x59, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x61, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x08, - 0x02, - 0x01, - 0x7E, - 0x01, - 0xD6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x43, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x12, - 0x3C, - 0x02, - 0xA8, - 0x47, - 0xD4, - 0xDE, - 0x3E, - 0x75, - 0xB0, - 0x47, - 0xD4, - 0x99, - 0x75, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6C, - 0xC7, - 0x75, - 0x99, - 0xEA, - 0x32, - 0x9A, - 0x99, - 0xD7, - 0xD5, - 0xCB, - 0x47, - 0x03, - 0x75, - 0x10, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x50, - 0x30, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xCB, - 0x1F, - 0x99, - 0x1F, - 0xD4, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x96, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0xA8, - 0x9A, - 0x03, - 0xB6, - 0x4D, - 0x47, - 0x03, - 0x75, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x4D, - 0x92, - 0x1F, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x30, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x02, - 0x47, - 0xD5, - 0xD4, - 0x75, - 0x47, - 0x03, - 0x75, - 0x02, - 0x02, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x43, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x3E, - 0xD7, - 0x03, - 0x99, - 0x75, - 0x47, - 0x03, - 0x4D, - 0x02, - 0xD2, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x10, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xDE, - 0x47, - 0xB6, - 0xDD, - 0x3E, - 0x47, - 0x03, - 0x75, - 0x02, - 0xC7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0xD2, - 0x75, - 0x99, - 0x1F, - 0xA8, - 0xC9, - 0x92, - 0xD4, - 0x1F, - 0xDE, - 0xCB, - 0xEA, - 0x4D, - 0x02, - 0xC1, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0xC6, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x1B, - 0xC1, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xC1, - 0x17, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x17, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6A, - 0x09, - 0x30, - 0x02, - 0x02, - 0x02, - 0x61, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA7, - 0x98, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x72, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x1B, - 0x95, - 0x12, - 0x30, - 0x96, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x20, - 0x01, - 0xA0, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0xD4, - 0x47, - 0xB0, - 0x32, - 0x4D, - 0xDE, - 0xA8, - 0xB0, - 0x0A, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x3B, - 0x0A, - 0xB0, - 0x92, - 0xDE, - 0xB6, - 0xA8, - 0xC9, - 0x47, - 0xC9, - 0x10, - 0x96, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0xB0, - 0x92, - 0xD4, - 0x1F, - 0xB6, - 0xCB, - 0xB0, - 0x92, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x9F, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD5, - 0x03, - 0x3D, - 0x3D, - 0x92, - 0x02, - 0x61, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x74, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xCB, - 0x5E, - 0x75, - 0x3D, - 0xC9, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xE4, - 0x02, - 0xB0, - 0x92, - 0x02, - 0x3D, - 0xDD, - 0x75, - 0x3D, - 0x92, - 0x02, - 0x02, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x90, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD7, - 0x03, - 0xD7, - 0x3D, - 0xC9, - 0x02, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xCC, - 0x02, - 0xB0, - 0x92, - 0x3E, - 0x99, - 0x92, - 0x47, - 0x3D, - 0xC9, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDA, - 0x02, - 0xB0, - 0xC9, - 0x99, - 0x92, - 0xB0, - 0x92, - 0x99, - 0x92, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA7, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xDE, - 0xD7, - 0x5E, - 0x03, - 0x92, - 0x02, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDC, - 0x30, - 0xD7, - 0x92, - 0x92, - 0x3E, - 0x02, - 0x99, - 0xC9, - 0x47, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x08, - 0x02, - 0x01, - 0x30, - 0x01, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x0D, - 0x02, - 0x02, - 0x30, - 0x43, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x94, - 0x0D, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0C, - 0x02, - 0x02, - 0x0A, - 0x98, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x04, - 0x02, - 0x01, - 0x8B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x3E, - 0xB0, - 0x3D, - 0x32, - 0x3D, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xD4, - 0x99, - 0x92, - 0xDE, - 0x99, - 0xDE, - 0x6B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xD4, - 0xDE, - 0x92, - 0x92, - 0x3D, - 0xDE, - 0x12, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x5A, - 0xD4, - 0x47, - 0xCB, - 0xCE, - 0xD4, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x94, - 0xD4, - 0x47, - 0xB0, - 0xCB, - 0x32, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xA8, - 0x47, - 0x32, - 0x99, - 0x32, - 0xDE, - 0x02, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xD4, - 0x47, - 0x3E, - 0x92, - 0xD4, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xE4, - 0xD4, - 0xDE, - 0x47, - 0x92, - 0xA8, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x90, - 0xA8, - 0xCB, - 0x92, - 0x99, - 0x99, - 0x47, - 0x0D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x8C, - 0xD4, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0xDE, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xA7, - 0x3E, - 0x92, - 0xA8, - 0x3E, - 0x92, - 0xA8, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8C, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x95, - 0x02, - 0x02, - 0x90, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x70, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x44, - 0x0A, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x02, - 0x02, - 0x60, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x3D, - 0xA8, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xCB, - 0xDE, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xCB, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x99, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xB0, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0x3D, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xA8, - 0x47, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x47, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB6, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xC9, - 0xB6, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x99, - 0xB0, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xE4, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xDA, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x0A, - 0x02, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE4, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x98, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8C, - 0x01, - 0xDA, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x0A, - 0x44, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x60, - 0x02, - 0x02, - 0x8D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xC1, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xA8, - 0x3D, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0x99, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0xB0, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0x3D, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x47, - 0xA8, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x99, - 0x47, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xB6, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0xB6, - 0xC9, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB0, - 0x99, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xE4, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x02, - 0x0A, - 0x1B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x61, - 0x01, - 0xE4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x0D, - 0x94, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x0A, - 0x02, - 0x02, - 0x0C, - 0x20, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8B, - 0x04, - 0x02, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xA8, - 0x3D, - 0x32, - 0xA8, - 0xB0, - 0x3E, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6B, - 0xDE, - 0x99, - 0xDE, - 0x92, - 0x99, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x12, - 0xDE, - 0x3D, - 0x92, - 0x92, - 0xDE, - 0xD4, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0xDE, - 0xD4, - 0xCE, - 0xCB, - 0x47, - 0xA8, - 0x5A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0x32, - 0xCB, - 0xB0, - 0x47, - 0xD4, - 0x94, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x02, - 0xDE, - 0x32, - 0x99, - 0x32, - 0x47, - 0xD4, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0xD4, - 0x92, - 0x3E, - 0x47, - 0xA8, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0x47, - 0xA8, - 0x92, - 0x47, - 0xDE, - 0xD4, - 0xE4, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0D, - 0xDE, - 0x99, - 0x99, - 0x92, - 0xCB, - 0xD4, - 0x90, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xDE, - 0x03, - 0xB0, - 0xCB, - 0x03, - 0xD4, - 0x8C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xA8, - 0x92, - 0x3E, - 0xA8, - 0x92, - 0x3E, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x30, - 0xDC, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8B, - 0x02, - 0x02, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x70, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x76, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x96, - 0x30, - 0x12, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x20, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x85, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x0D, - 0x08, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x60, - 0x0A, - 0xB0, - 0xA8, - 0xDE, - 0x4D, - 0x32, - 0xB0, - 0x47, - 0xD4, - 0x0D, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x96, - 0x02, - 0x92, - 0x47, - 0xC9, - 0x3D, - 0xB6, - 0x99, - 0x92, - 0xB0, - 0x0A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x92, - 0xB0, - 0xCB, - 0xB6, - 0x1F, - 0xD4, - 0x92, - 0xB0, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x61, - 0x02, - 0xC9, - 0x3D, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x30, - 0x02, - 0xC9, - 0x3D, - 0x75, - 0x5E, - 0xCB, - 0x02, - 0x92, - 0xB0, - 0x02, - 0x74, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x02, - 0x02, - 0x92, - 0x3D, - 0x75, - 0xDD, - 0x3D, - 0x02, - 0x92, - 0xB0, - 0x02, - 0xE4, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0A, - 0x02, - 0xC9, - 0x3D, - 0xD7, - 0x03, - 0xD7, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0D, - 0x02, - 0x92, - 0x3D, - 0x47, - 0x92, - 0x99, - 0x3E, - 0x92, - 0xB0, - 0x02, - 0xCC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0C, - 0x02, - 0x92, - 0x99, - 0x92, - 0xB0, - 0xC9, - 0x99, - 0xC9, - 0xB0, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA0, - 0x02, - 0xC9, - 0x03, - 0x5E, - 0x3E, - 0xDE, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0xA7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0x47, - 0xC9, - 0x99, - 0x02, - 0x3E, - 0x92, - 0x92, - 0xD7, - 0x30, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x43, - 0x30, - 0x02, - 0x02, - 0x0D, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x8D, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x07, - 0x59, - 0xDA, - 0x6B, - 0x0A, - 0x12, - 0x8B, - 0x3B, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x70, - 0x01, - 0x61, - 0x06, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xD6, - 0x01, - 0x7E, - 0x08, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3C, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x12, - 0x75, - 0x99, - 0xD4, - 0x47, - 0xB0, - 0x75, - 0x4D, - 0xDE, - 0xD4, - 0x47, - 0xA8, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x10, - 0x4D, - 0x03, - 0x47, - 0xCB, - 0xD5, - 0xD7, - 0x99, - 0x9A, - 0x32, - 0xEA, - 0xDE, - 0x75, - 0xC7, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x03, - 0x47, - 0xD4, - 0x1F, - 0x99, - 0x1F, - 0xCB, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x30, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x0C, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x9A, - 0xA8, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x3D, - 0x1F, - 0x92, - 0x4D, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x02, - 0xA8, - 0xD5, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x99, - 0x03, - 0xD7, - 0x3E, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x3E, - 0xDD, - 0xB6, - 0x47, - 0x47, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x10, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC1, - 0x02, - 0x4D, - 0x03, - 0xCB, - 0xDE, - 0x1F, - 0xD4, - 0x92, - 0xC9, - 0x3D, - 0x1F, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x75, - 0xC6, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0x30, - 0x75, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0xC1, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0xC1, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0A, - 0x02, - 0x01, - 0xC1, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x8C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x17, - 0x4F, - 0x61, - 0x02, - 0x02, - 0x02, - 0x30, - 0xC1, - 0x6A, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0xA7, - 0x70, - 0x17, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x50, - 0xBD, - 0x56, - 0x02, - 0x12, - 0x90, - 0xA7, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD3, - 0x09, - 0x02, - 0x01, - 0x44, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x4F, - 0xD2, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x98, - 0x6B, - 0x02, - 0xB0, - 0xDE, - 0x32, - 0xDE, - 0xA8, - 0x75, - 0x4D, - 0xDE, - 0x3D, - 0xB0, - 0xDE, - 0x3E, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x8A, - 0x02, - 0xB6, - 0xD5, - 0xA8, - 0x92, - 0xCE, - 0x3E, - 0xDE, - 0x9A, - 0x3D, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x6B, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8C, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x47, - 0x1F, - 0xDE, - 0x5E, - 0x92, - 0x3E, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x32, - 0xC9, - 0x1F, - 0x5E, - 0x47, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x02, - 0x99, - 0x1F, - 0xCE, - 0x3E, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x10, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x02, - 0xB0, - 0x9A, - 0x99, - 0x02, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x02, - 0xBD, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x30, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x4D, - 0xB6, - 0x03, - 0xD7, - 0xD7, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xB6, - 0xDD, - 0x3E, - 0xA8, - 0xD5, - 0xCB, - 0xB0, - 0xCB, - 0x75, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x90, - 0x02, - 0x02, - 0xB6, - 0x5E, - 0xB0, - 0xCB, - 0xEA, - 0xD7, - 0xB6, - 0xDD, - 0xB0, - 0x92, - 0xD5, - 0x32, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9F, - 0x02, - 0x02, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x32, - 0x02, - 0x12, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0xB6, - 0xD7, - 0x02, - 0x75, - 0xDE, - 0xC9, - 0xC9, - 0xCB, - 0x75, - 0x02, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x9F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x29, - 0x90, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x90, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4C, - 0x6F, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x4F, - 0x3B, - 0x20, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x6F, - 0x96, - 0xC7, - 0x02, - 0x64, - 0xE4, - 0x95, - 0x8D, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x43, - 0x7E, - 0x0A, - 0x02, - 0x00, - 0x06, - 0xC1, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x6B, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0xA0, - 0x02, - 0xD7, - 0x99, - 0xA8, - 0x3D, - 0xDE, - 0xD4, - 0x02, - 0x75, - 0xDE, - 0x47, - 0xD4, - 0xDE, - 0x3D, - 0x4D, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD6, - 0x02, - 0x02, - 0xA8, - 0x03, - 0xDE, - 0xB0, - 0xDD, - 0xC9, - 0x75, - 0x47, - 0x1F, - 0xCB, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x43, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x3E, - 0xB6, - 0x1F, - 0x47, - 0x5E, - 0xCE, - 0xD4, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD3, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x3D, - 0xD5, - 0x03, - 0x1F, - 0xCB, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x29, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x0D, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x02, - 0xB6, - 0x1F, - 0x9A, - 0xD7, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x3B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x02, - 0x99, - 0x1F, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x30, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x3E, - 0xCE, - 0x03, - 0x3E, - 0xD4, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x56, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x99, - 0x4D, - 0x99, - 0x1F, - 0xCB, - 0xA8, - 0xC9, - 0x4D, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x02, - 0x3D, - 0x03, - 0xB6, - 0xB0, - 0xC9, - 0x9A, - 0x3E, - 0xB6, - 0x9A, - 0x99, - 0x47, - 0x5E, - 0xCB, - 0x4D, - 0x02, - 0x9D, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x4F, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCB, - 0x4D, - 0x02, - 0x0C, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x0D, - 0x02, - 0xD7, - 0xCB, - 0x92, - 0xC9, - 0xCB, - 0x4D, - 0x02, - 0x75, - 0xB0, - 0x92, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x02, - 0xA7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6F, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x9E, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x4F, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x59, - 0xC4, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x01, - 0x56, - 0x01, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x20, - 0x6F, - 0x6B, - 0x7E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x12, - 0xBD, - 0x98, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x20, - 0x8D, - 0x4F, - 0x60, - 0x20, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x6C, - 0xDA, - 0x90, - 0x61, - 0x02, - 0x64, - 0x09, - 0x43, - 0x3B, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x29, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x70, - 0x8A, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x1B, - 0x9E, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x10, - 0x99, - 0xDE, - 0x3E, - 0xDE, - 0x99, - 0xD7, - 0x02, - 0x10, - 0x47, - 0xDE, - 0xD7, - 0x47, - 0x99, - 0xD7, - 0x02, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x8A, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x99, - 0x03, - 0x92, - 0x02, - 0xB0, - 0x03, - 0xCE, - 0x10, - 0xD5, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x3C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x95, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x4D, - 0x5E, - 0x03, - 0xB0, - 0x5E, - 0x03, - 0x3D, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA0, - 0x02, - 0x02, - 0x10, - 0x03, - 0x5E, - 0x32, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x12, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0xD5, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x10, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x10, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x44, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x32, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x3E, - 0xA8, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6B, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x92, - 0x03, - 0x99, - 0xD4, - 0x03, - 0x3E, - 0x29, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x8A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x10, - 0x02, - 0x03, - 0x5E, - 0xB0, - 0xB0, - 0x5E, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x32, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x10, - 0x3E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x12, - 0x02, - 0x02, - 0x47, - 0x92, - 0x92, - 0xC9, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0x92, - 0xB6, - 0x75, - 0x29, - 0x02, - 0x83, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x43, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x10, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x90, - 0x8A, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0xC7, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x64, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x8A, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x96, - 0x61, - 0x8A, - 0x04, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x6B, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x73, - 0x50, - 0x4F, - 0x3B, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x6C, - 0xDA, - 0x90, - 0x61, - 0x02, - 0x64, - 0x09, - 0x43, - 0x3B, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x29, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x70, - 0x8A, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x1B, - 0x9E, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x10, - 0x99, - 0xDE, - 0x3E, - 0xDE, - 0x99, - 0xD7, - 0x02, - 0x10, - 0x47, - 0xDE, - 0xD7, - 0x47, - 0x99, - 0xD7, - 0x02, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x8A, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x99, - 0x03, - 0x92, - 0x02, - 0xB0, - 0x03, - 0xCE, - 0x10, - 0xD5, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x3C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x95, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x4D, - 0x5E, - 0x03, - 0xB0, - 0x5E, - 0x03, - 0x3D, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA0, - 0x02, - 0x02, - 0x10, - 0x03, - 0x5E, - 0x32, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x12, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0xD5, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x10, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x10, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x44, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x32, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x3E, - 0xA8, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6B, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x92, - 0x03, - 0x99, - 0xD4, - 0x03, - 0x3E, - 0x29, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x8A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x10, - 0x02, - 0x03, - 0x5E, - 0xB0, - 0xB0, - 0x5E, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x32, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x10, - 0x3E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x12, - 0x02, - 0x02, - 0x47, - 0x92, - 0x92, - 0xC9, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0x92, - 0xB6, - 0x75, - 0x29, - 0x02, - 0x83, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x43, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x10, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x90, - 0x8A, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0xC7, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x64, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x8A, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x96, - 0x61, - 0x8A, - 0x04, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x6B, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x73, - 0x50, - 0x4F, - 0x3B, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x6C, - 0xDA, - 0x90, - 0x61, - 0x02, - 0x64, - 0x09, - 0x43, - 0x3B, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x29, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x70, - 0x8A, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x1B, - 0x9E, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x10, - 0x99, - 0xDE, - 0x3E, - 0xDE, - 0x99, - 0xD7, - 0x02, - 0x10, - 0x47, - 0xDE, - 0xD7, - 0x47, - 0x99, - 0xD7, - 0x02, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x8A, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x99, - 0x03, - 0x92, - 0x02, - 0xB0, - 0x03, - 0xCE, - 0x10, - 0xD5, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x3C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x95, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x4D, - 0x5E, - 0x03, - 0xB0, - 0x5E, - 0x03, - 0x3D, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA0, - 0x02, - 0x02, - 0x10, - 0x03, - 0x5E, - 0x32, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x12, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0xD5, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x10, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x10, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x44, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x32, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x3E, - 0xA8, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6B, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x92, - 0x03, - 0x99, - 0xD4, - 0x03, - 0x3E, - 0x29, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x8A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x10, - 0x02, - 0x03, - 0x5E, - 0xB0, - 0xB0, - 0x5E, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x32, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x10, - 0x3E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x12, - 0x02, - 0x02, - 0x47, - 0x92, - 0x92, - 0xC9, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0x92, - 0xB6, - 0x75, - 0x29, - 0x02, - 0x83, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x43, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x10, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x90, - 0x8A, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0xC7, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x64, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x8A, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x96, - 0x61, - 0x8A, - 0x04, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x6B, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x73, - 0x50, - 0x4F, - 0x3B, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x6F, - 0x96, - 0xC7, - 0x02, - 0x64, - 0xE4, - 0x95, - 0x8D, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x43, - 0x7E, - 0x0A, - 0x02, - 0x00, - 0x06, - 0xC1, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x6B, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0xA0, - 0x02, - 0xD7, - 0x99, - 0xA8, - 0x3D, - 0xDE, - 0xD4, - 0x02, - 0x75, - 0xDE, - 0x47, - 0xD4, - 0xDE, - 0x3D, - 0x4D, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD6, - 0x02, - 0x02, - 0xA8, - 0x03, - 0xDE, - 0xB0, - 0xDD, - 0xC9, - 0x75, - 0x47, - 0x1F, - 0xCB, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x43, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x3E, - 0xB6, - 0x1F, - 0x47, - 0x5E, - 0xCE, - 0xD4, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD3, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x3D, - 0xD5, - 0x03, - 0x1F, - 0xCB, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x29, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x0D, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x02, - 0xB6, - 0x1F, - 0x9A, - 0xD7, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x3B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x02, - 0x99, - 0x1F, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x30, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x3E, - 0xCE, - 0x03, - 0x3E, - 0xD4, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x56, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x99, - 0x4D, - 0x99, - 0x1F, - 0xCB, - 0xA8, - 0xC9, - 0x4D, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x02, - 0x3D, - 0x03, - 0xB6, - 0xB0, - 0xC9, - 0x9A, - 0x3E, - 0xB6, - 0x9A, - 0x99, - 0x47, - 0x5E, - 0xCB, - 0x4D, - 0x02, - 0x9D, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x4F, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCB, - 0x4D, - 0x02, - 0x0C, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x0D, - 0x02, - 0xD7, - 0xCB, - 0x92, - 0xC9, - 0xCB, - 0x4D, - 0x02, - 0x75, - 0xB0, - 0x92, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x02, - 0xA7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6F, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x9E, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x4F, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x59, - 0xC4, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x01, - 0x56, - 0x01, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x20, - 0x6F, - 0x6B, - 0x7E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x12, - 0xBD, - 0x98, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x20, - 0x8D, - 0x4F, - 0x60, - 0x20, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x50, - 0xBD, - 0x56, - 0x02, - 0x12, - 0x90, - 0xA7, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD3, - 0x09, - 0x02, - 0x01, - 0x44, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x4F, - 0xD2, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x98, - 0x6B, - 0x02, - 0xB0, - 0xDE, - 0x32, - 0xDE, - 0xA8, - 0x75, - 0x4D, - 0xDE, - 0x3D, - 0xB0, - 0xDE, - 0x3E, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x8A, - 0x02, - 0xB6, - 0xD5, - 0xA8, - 0x92, - 0xCE, - 0x3E, - 0xDE, - 0x9A, - 0x3D, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x6B, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8C, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x47, - 0x1F, - 0xDE, - 0x5E, - 0x92, - 0x3E, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x32, - 0xC9, - 0x1F, - 0x5E, - 0x47, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x02, - 0x99, - 0x1F, - 0xCE, - 0x3E, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x10, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x02, - 0xB0, - 0x9A, - 0x99, - 0x02, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x02, - 0xBD, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x30, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x4D, - 0xB6, - 0x03, - 0xD7, - 0xD7, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xB6, - 0xDD, - 0x3E, - 0xA8, - 0xD5, - 0xCB, - 0xB0, - 0xCB, - 0x75, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x90, - 0x02, - 0x02, - 0xB6, - 0x5E, - 0xB0, - 0xCB, - 0xEA, - 0xD7, - 0xB6, - 0xDD, - 0xB0, - 0x92, - 0xD5, - 0x32, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9F, - 0x02, - 0x02, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x32, - 0x02, - 0x12, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0xB6, - 0xD7, - 0x02, - 0x75, - 0xDE, - 0xC9, - 0xC9, - 0xCB, - 0x75, - 0x02, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x9F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x29, - 0x90, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x90, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4C, - 0x6F, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x4F, - 0x3B, - 0x20, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x07, - 0x59, - 0xDA, - 0x6B, - 0x0A, - 0x12, - 0x8B, - 0x3B, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x70, - 0x01, - 0x61, - 0x06, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xD6, - 0x01, - 0x7E, - 0x08, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3C, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x12, - 0x75, - 0x99, - 0xD4, - 0x47, - 0xB0, - 0x75, - 0x4D, - 0xDE, - 0xD4, - 0x47, - 0xA8, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x10, - 0x4D, - 0x03, - 0x47, - 0xCB, - 0xD5, - 0xD7, - 0x99, - 0x9A, - 0x32, - 0xEA, - 0xDE, - 0x75, - 0xC7, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x03, - 0x47, - 0xD4, - 0x1F, - 0x99, - 0x1F, - 0xCB, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x30, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x0C, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x9A, - 0xA8, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x3D, - 0x1F, - 0x92, - 0x4D, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x02, - 0xA8, - 0xD5, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x99, - 0x03, - 0xD7, - 0x3E, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x3E, - 0xDD, - 0xB6, - 0x47, - 0x47, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x10, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC1, - 0x02, - 0x4D, - 0x03, - 0xCB, - 0xDE, - 0x1F, - 0xD4, - 0x92, - 0xC9, - 0x3D, - 0x1F, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x75, - 0xC6, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0x30, - 0x75, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0xC1, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0xC1, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0A, - 0x02, - 0x01, - 0xC1, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x8C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x17, - 0x4F, - 0x61, - 0x02, - 0x02, - 0x02, - 0x30, - 0xC1, - 0x6A, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0xA7, - 0x70, - 0x17, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x76, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x96, - 0x30, - 0x12, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x20, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x85, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x0D, - 0x08, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x60, - 0x0A, - 0xB0, - 0xA8, - 0xDE, - 0x4D, - 0x32, - 0xB0, - 0x47, - 0xD4, - 0x0D, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x96, - 0x02, - 0x92, - 0x47, - 0xC9, - 0x3D, - 0xB6, - 0x99, - 0x92, - 0xB0, - 0x0A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x92, - 0xB0, - 0xCB, - 0xB6, - 0x1F, - 0xD4, - 0x92, - 0xB0, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x61, - 0x02, - 0xC9, - 0x3D, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x30, - 0x02, - 0xC9, - 0x3D, - 0x75, - 0x5E, - 0xCB, - 0x02, - 0x92, - 0xB0, - 0x02, - 0x74, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x02, - 0x02, - 0x92, - 0x3D, - 0x75, - 0xDD, - 0x3D, - 0x02, - 0x92, - 0xB0, - 0x02, - 0xE4, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0A, - 0x02, - 0xC9, - 0x3D, - 0xD7, - 0x03, - 0xD7, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0D, - 0x02, - 0x92, - 0x3D, - 0x47, - 0x92, - 0x99, - 0x3E, - 0x92, - 0xB0, - 0x02, - 0xCC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0C, - 0x02, - 0x92, - 0x99, - 0x92, - 0xB0, - 0xC9, - 0x99, - 0xC9, - 0xB0, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA0, - 0x02, - 0xC9, - 0x03, - 0x5E, - 0x3E, - 0xDE, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0xA7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0x47, - 0xC9, - 0x99, - 0x02, - 0x3E, - 0x92, - 0x92, - 0xD7, - 0x30, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x43, - 0x30, - 0x02, - 0x02, - 0x0D, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x8D, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x0D, - 0x94, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x0A, - 0x02, - 0x02, - 0x0C, - 0x20, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8B, - 0x04, - 0x02, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xA8, - 0x3D, - 0x32, - 0xA8, - 0xB0, - 0x3E, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6B, - 0xDE, - 0x99, - 0xDE, - 0x92, - 0x99, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x12, - 0xDE, - 0x3D, - 0x92, - 0x92, - 0xDE, - 0xD4, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0xDE, - 0xD4, - 0xCE, - 0xCB, - 0x47, - 0xA8, - 0x5A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0x32, - 0xCB, - 0xB0, - 0x47, - 0xD4, - 0x94, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x02, - 0xDE, - 0x32, - 0x99, - 0x32, - 0x47, - 0xD4, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0xD4, - 0x92, - 0x3E, - 0x47, - 0xA8, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0x47, - 0xA8, - 0x92, - 0x47, - 0xDE, - 0xD4, - 0xE4, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0D, - 0xDE, - 0x99, - 0x99, - 0x92, - 0xCB, - 0xD4, - 0x90, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xDE, - 0x03, - 0xB0, - 0xCB, - 0x03, - 0xD4, - 0x8C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xA8, - 0x92, - 0x3E, - 0xA8, - 0x92, - 0x3E, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x30, - 0xDC, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8B, - 0x02, - 0x02, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x70, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8C, - 0x01, - 0xDA, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x0A, - 0x44, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x60, - 0x02, - 0x02, - 0x8D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xC1, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xA8, - 0x3D, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0x99, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0xB0, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0x3D, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x47, - 0xA8, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x99, - 0x47, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xB6, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0xB6, - 0xC9, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB0, - 0x99, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xE4, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x02, - 0x0A, - 0x1B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x61, - 0x01, - 0xE4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x44, - 0x0A, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x02, - 0x02, - 0x60, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x3D, - 0xA8, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xCB, - 0xDE, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xCB, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x99, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xB0, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0x3D, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xA8, - 0x47, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x47, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB6, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xC9, - 0xB6, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x99, - 0xB0, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xE4, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xDA, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x0A, - 0x02, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE4, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x98, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x94, - 0x0D, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0C, - 0x02, - 0x02, - 0x0A, - 0x98, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x04, - 0x02, - 0x01, - 0x8B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x3E, - 0xB0, - 0x3D, - 0x32, - 0x3D, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xD4, - 0x99, - 0x92, - 0xDE, - 0x99, - 0xDE, - 0x6B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xD4, - 0xDE, - 0x92, - 0x92, - 0x3D, - 0xDE, - 0x12, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x5A, - 0xD4, - 0x47, - 0xCB, - 0xCE, - 0xD4, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x94, - 0xD4, - 0x47, - 0xB0, - 0xCB, - 0x32, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xA8, - 0x47, - 0x32, - 0x99, - 0x32, - 0xDE, - 0x02, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xD4, - 0x47, - 0x3E, - 0x92, - 0xD4, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xE4, - 0xD4, - 0xDE, - 0x47, - 0x92, - 0xA8, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x90, - 0xA8, - 0xCB, - 0x92, - 0x99, - 0x99, - 0x47, - 0x0D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x8C, - 0xD4, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0xDE, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xA7, - 0x3E, - 0x92, - 0xA8, - 0x3E, - 0x92, - 0xA8, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8C, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x95, - 0x02, - 0x02, - 0x90, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x70, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x72, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x1B, - 0x95, - 0x12, - 0x30, - 0x96, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x20, - 0x01, - 0xA0, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0xD4, - 0x47, - 0xB0, - 0x32, - 0x4D, - 0xDE, - 0xA8, - 0xB0, - 0x0A, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x3B, - 0x0A, - 0xB0, - 0x92, - 0xDE, - 0xB6, - 0xA8, - 0xC9, - 0x47, - 0xC9, - 0x10, - 0x96, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0xB0, - 0x92, - 0xD4, - 0x1F, - 0xB6, - 0xCB, - 0xB0, - 0x92, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x9F, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD5, - 0x03, - 0x3D, - 0x3D, - 0x92, - 0x02, - 0x61, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x74, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xCB, - 0x5E, - 0x75, - 0x3D, - 0xC9, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xE4, - 0x02, - 0xB0, - 0x92, - 0x02, - 0x3D, - 0xDD, - 0x75, - 0x3D, - 0x92, - 0x02, - 0x02, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x90, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD7, - 0x03, - 0xD7, - 0x3D, - 0xC9, - 0x02, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xCC, - 0x02, - 0xB0, - 0x92, - 0x3E, - 0x99, - 0x92, - 0x47, - 0x3D, - 0xC9, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDA, - 0x02, - 0xB0, - 0xC9, - 0x99, - 0x92, - 0xB0, - 0x92, - 0x99, - 0x92, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA7, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xDE, - 0xD7, - 0x5E, - 0x03, - 0x92, - 0x02, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDC, - 0x30, - 0xD7, - 0x92, - 0x92, - 0x3E, - 0x02, - 0x99, - 0xC9, - 0x47, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x08, - 0x02, - 0x01, - 0x30, - 0x01, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x0D, - 0x02, - 0x02, - 0x30, - 0x43, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x3B, - 0x8B, - 0x12, - 0x0A, - 0x6B, - 0xDA, - 0x59, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x61, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x08, - 0x02, - 0x01, - 0x7E, - 0x01, - 0xD6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x43, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x12, - 0x3C, - 0x02, - 0xA8, - 0x47, - 0xD4, - 0xDE, - 0x3E, - 0x75, - 0xB0, - 0x47, - 0xD4, - 0x99, - 0x75, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6C, - 0xC7, - 0x75, - 0x99, - 0xEA, - 0x32, - 0x9A, - 0x99, - 0xD7, - 0xD5, - 0xCB, - 0x47, - 0x03, - 0x75, - 0x10, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x50, - 0x30, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xCB, - 0x1F, - 0x99, - 0x1F, - 0xD4, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x96, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0xA8, - 0x9A, - 0x03, - 0xB6, - 0x4D, - 0x47, - 0x03, - 0x75, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x4D, - 0x92, - 0x1F, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x30, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x02, - 0x47, - 0xD5, - 0xD4, - 0x75, - 0x47, - 0x03, - 0x75, - 0x02, - 0x02, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x43, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x3E, - 0xD7, - 0x03, - 0x99, - 0x75, - 0x47, - 0x03, - 0x4D, - 0x02, - 0xD2, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x10, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xDE, - 0x47, - 0xB6, - 0xDD, - 0x3E, - 0x47, - 0x03, - 0x75, - 0x02, - 0xC7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0xD2, - 0x75, - 0x99, - 0x1F, - 0xA8, - 0xC9, - 0x92, - 0xD4, - 0x1F, - 0xDE, - 0xCB, - 0xEA, - 0x4D, - 0x02, - 0xC1, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0xC6, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x1B, - 0xC1, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xC1, - 0x17, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x17, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6A, - 0x09, - 0x30, - 0x02, - 0x02, - 0x02, - 0x61, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA7, - 0x98, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x1B, - 0xA7, - 0x90, - 0x12, - 0x02, - 0x56, - 0xBD, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8C, - 0x20, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x44, - 0x08, - 0x02, - 0x00, - 0x07, - 0x29, - 0xD3, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x30, - 0x3E, - 0xDE, - 0xB0, - 0x3D, - 0xDE, - 0x4D, - 0x75, - 0xA8, - 0xDE, - 0x32, - 0xDE, - 0xB0, - 0x02, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x59, - 0x6B, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3D, - 0x9A, - 0xDE, - 0x3E, - 0xCE, - 0x92, - 0xA8, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x9E, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3E, - 0x92, - 0x5E, - 0xDE, - 0x1F, - 0x47, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x83, - 0x29, - 0x02, - 0x32, - 0x9A, - 0xCB, - 0x02, - 0x47, - 0x5E, - 0x03, - 0xC9, - 0xD7, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x3E, - 0xCE, - 0x1F, - 0x99, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0xC6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x9A, - 0xB0, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x8A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0xD7, - 0xD7, - 0x03, - 0xB6, - 0x4D, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x3B, - 0x8A, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x75, - 0xCB, - 0xB0, - 0xCB, - 0xD5, - 0xA8, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x32, - 0x9A, - 0x92, - 0xB0, - 0xDD, - 0xB6, - 0xD7, - 0xEA, - 0xB6, - 0xB0, - 0x5E, - 0xB6, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x12, - 0x02, - 0x32, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0xD4, - 0x75, - 0xCB, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x02, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x02, - 0x75, - 0xCB, - 0xC9, - 0xC9, - 0xDE, - 0x75, - 0x02, - 0xD7, - 0xB6, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0x4C, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x90, - 0x29, - 0x00, - 0x09, - 0x02, - 0x00, - 0x06, - 0x9D, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x6F, - 0x4C, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x90, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x20, - 0x3B, - 0x4F, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x8D, - 0x95, - 0xE4, - 0x64, - 0x02, - 0xC7, - 0x96, - 0x6F, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x0A, - 0x00, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x7E, - 0x43, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x6B, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xDF, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x75, - 0x3D, - 0xDE, - 0xD4, - 0x47, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x99, - 0x3D, - 0xA8, - 0x99, - 0xD7, - 0x02, - 0xA0, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0x90, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0xCB, - 0x1F, - 0x47, - 0x75, - 0xC9, - 0xDD, - 0xB0, - 0x99, - 0x1F, - 0xA8, - 0x02, - 0x10, - 0xD6, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xDC, - 0x12, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0xD4, - 0xDD, - 0x5E, - 0x47, - 0x1F, - 0xB6, - 0x3E, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x29, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0xCB, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xD3, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD7, - 0xD5, - 0x1F, - 0xB6, - 0x02, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x95, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x1F, - 0x99, - 0x02, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD4, - 0x3E, - 0x03, - 0xCE, - 0x3E, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x4D, - 0xC9, - 0x3D, - 0xCB, - 0x5E, - 0x99, - 0x4D, - 0x99, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x9D, - 0x02, - 0x4D, - 0xCB, - 0x5E, - 0x47, - 0x99, - 0x9A, - 0xB6, - 0x3E, - 0x9A, - 0xC9, - 0xB0, - 0xB6, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0xDC, - 0x0C, - 0x02, - 0x4D, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x4F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xA7, - 0x02, - 0x02, - 0xA8, - 0x92, - 0xC9, - 0x92, - 0xB0, - 0x75, - 0x02, - 0x4D, - 0xCB, - 0xC9, - 0xC9, - 0xCB, - 0x3E, - 0x02, - 0x0D, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0x9E, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x20, - 0x4F, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0xD2, - 0xC4, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x59, - 0xBD, - 0x12, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x6B, - 0xA7, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x60, - 0x4F, - 0x8D, - 0x20, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xEE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0x10, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xCA, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x10, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x50, - 0x10, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x73, - 0x9E, - 0x02, - 0xD7, - 0xDE, - 0x47, - 0xD7, - 0x99, - 0x47, - 0x02, - 0x10, - 0xD7, - 0x99, - 0x47, - 0x3E, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3C, - 0x02, - 0x10, - 0xA8, - 0x03, - 0xD5, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x8A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x10, - 0x3D, - 0x03, - 0x5E, - 0xB0, - 0x03, - 0x5E, - 0x4D, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x29, - 0x02, - 0x29, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x47, - 0x10, - 0xD7, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x10, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x8A, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x10, - 0x32, - 0x03, - 0x03, - 0x02, - 0x29, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x5E, - 0xD7, - 0xB6, - 0x5E, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0xE4, - 0x10, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x3E, - 0x10, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0x92, - 0x92, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0x92, - 0x92, - 0x47, - 0x02, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x09, - 0x05, - 0x05, - 0x43, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x6A, - 0xC7, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x43, - 0x8A, - 0x02, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x64, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x83, - 0x6B, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x3B, - 0x4F, - 0x83, - 0x73, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCA, - 0x01, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8C, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x8C, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x70, - 0x10, - 0x0F, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x15, - 0x00, - 0x20, - 0x9E, - 0x02, - 0xD7, - 0x99, - 0x47, - 0xD7, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x32, - 0x99, - 0xDE, - 0x3E, - 0x99, - 0x99, - 0x02, - 0x02, - 0x96, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x3C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x10, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3D, - 0x03, - 0x1E, - 0xB0, - 0x03, - 0x1E, - 0x4D, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x03, - 0x47, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0x32, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x1E, - 0x32, - 0xB6, - 0x03, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0xE4, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x03, - 0x3E, - 0x02, - 0xB0, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x15, - 0x00, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0xC9, - 0x92, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0xC9, - 0x92, - 0x47, - 0x02, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x43, - 0x00, - 0x11, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x4C, - 0x0F, - 0x02, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6A, - 0xC7, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x10, - 0x01, - 0x90, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x43, - 0x01, - 0x8A, - 0x09, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x83, - 0x09, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x00, - 0x05, - 0x1B, - 0x60, - 0x4F, - 0x50, - 0x73, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x0B, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0x59, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x6F, - 0x90, - 0x30, - 0x8A, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x12, - 0xBD, - 0x83, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x4F, - 0xC1, - 0x29, - 0x12, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x8B, - 0x3B, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x29, - 0x00, - 0x18, - 0x02, - 0x01, - 0x12, - 0x01, - 0x60, - 0x12, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1D, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x8A, - 0xA0, - 0x59, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3C, - 0x09, - 0x02, - 0x01, - 0x29, - 0x10, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x3B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0xC1, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x11, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0xD2, - 0x95, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x12, - 0x0D, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x50, - 0x01, - 0x7C, - 0x29, - 0x02, - 0x00, - 0x03, - 0x29, - 0x56, - 0x73, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x04, - 0x6A, - 0x9D, - 0x02, - 0x10, - 0x09, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0xC1, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x73, - 0x01, - 0xCA, - 0x06, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x10, - 0x02, - 0x02, - 0x29, - 0x00, - 0x09, - 0x02, - 0x01, - 0x29, - 0x0D, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x29, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x07, - 0x50, - 0x8A, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x17, - 0x02, - 0x00, - 0x03, - 0x29, - 0x64, - 0x73, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xC7, - 0x2A, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xE1, - 0x29, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x13, - 0x4F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x10, - 0x3E, - 0xDE, - 0x99, - 0x00, - 0x04, - 0xDE, - 0x01, - 0x3D, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x12, - 0x10, - 0x75, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0xDE, - 0x99, - 0x47, - 0x10, - 0xD7, - 0xDE, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0xDE, - 0x3E, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x73, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x73, - 0x64, - 0x00, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0xCB, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x00, - 0x13, - 0x02, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x47, - 0x5E, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0D, - 0xB0, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x05, - 0x05, - 0x43, - 0x29, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x0C, - 0x4D, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x02, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x73, - 0xD2, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x13, - 0x5E, - 0x03, - 0x02, - 0x10, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0F, - 0x5E, - 0xA8, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x6F, - 0x10, - 0x08, - 0x02, - 0x00, - 0x0B, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x12, - 0x5E, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x92, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xA0, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x23, - 0x5E, - 0x02, - 0x02, - 0x02, - 0x10, - 0x99, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x04, - 0x29, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x7E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x02, - 0x00, - 0x11, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xE9, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0xCB, - 0x00, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0x96, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x05, - 0x03, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0xB0, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x16, - 0x5E, - 0xB0, - 0x92, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0x10, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x96, - 0x02, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x10, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0xCE, - 0x03, - 0x5E, - 0x00, - 0x0A, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x02, - 0x29, - 0x08, - 0x02, - 0x01, - 0x83, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x9E, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x03, - 0x5E, - 0x9A, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x29, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x07, - 0x02, - 0x01, - 0x92, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x10, - 0xB0, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x10, - 0x09, - 0x02, - 0x01, - 0x90, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x73, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x15, - 0x29, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCE, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x06, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x10, - 0xC1, - 0x05, - 0x00, - 0x00, - 0x01, - 0x59, - 0x06, - 0x02, - 0x00, - 0x0E, - 0x29, - 0x02, - 0x02, - 0xE1, - 0x02, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x3D, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x12, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6A, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x3E, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x92, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x8D, - 0x0B, - 0x02, - 0x00, - 0x0B, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xDE, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x06, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x50, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0xCB, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x02, - 0x02, - 0x75, - 0x5E, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x04, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x59, - 0x00, - 0x00, - 0x01, - 0x50, - 0x06, - 0x02, - 0x00, - 0x0F, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0xCB, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x10, - 0x02, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0xB0, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x6C, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0xCB, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x07, - 0x02, - 0x00, - 0x05, - 0xD7, - 0x02, - 0x02, - 0x02, - 0xE9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x11, - 0x5E, - 0xD5, - 0x75, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x59, - 0x06, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x07, - 0x02, - 0x00, - 0x06, - 0xCE, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x1D, - 0x29, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0xB0, - 0x5E, - 0xE9, - 0x75, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0x56, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x8A, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x05, - 0x02, - 0x00, - 0x09, - 0x75, - 0xCE, - 0x5E, - 0x5E, - 0xDE, - 0x02, - 0x10, - 0xD7, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0x32, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x90, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0xD2, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0xCB, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x05, - 0x02, - 0x00, - 0x09, - 0xDE, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x13, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x0C, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x1C, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0x10, - 0x3E, - 0x5E, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0xA7, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x95, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x10, - 0x5E, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x4D, - 0x10, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x12, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x59, - 0x10, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x11, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x5E, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x92, - 0xA8, - 0xA8, - 0xA8, - 0xDE, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0C, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x10, - 0xB0, - 0x06, - 0x03, - 0x05, - 0x5E, - 0x00, - 0x0A, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x43, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0xCB, - 0x5E, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x99, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0xE1, - 0xE9, - 0x03, - 0x5E, - 0x0D, - 0x03, - 0x01, - 0x32, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x10, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x83, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x20, - 0x99, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x9A, - 0x75, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x08, - 0x5E, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0xC7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x0A, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x03, - 0x03, - 0xB0, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x92, - 0x00, - 0x08, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x75, - 0x08, - 0x02, - 0x00, - 0x04, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x50, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB6, - 0x00, - 0x09, - 0x02, - 0x00, - 0x0F, - 0x3E, - 0xD5, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xB0, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x90, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x05, - 0x99, - 0x3D, - 0x02, - 0x02, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB0, - 0x09, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x05, - 0x6A, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x56, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x02, - 0x10, - 0x09, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x05, - 0x59, - 0x9D, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x10, - 0x02, - 0x01, - 0x10, - 0x11, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x96, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0xD2, - 0x1B, - 0x02, - 0x01, - 0x10, - 0x12, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x4C, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x0C, - 0x10, - 0x02, - 0x02, - 0x29, - 0x10, - 0x02, - 0x02, - 0x10, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x9E, - 0x73, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x43, - 0x29, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x12, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xC1, - 0x02, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x0F, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x06, - 0x73, - 0x4F, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x0F, - 0x02, - 0x01, - 0x10, - 0x0D, - 0x02, - 0x00, - 0x03, - 0x29, - 0x9E, - 0x6A, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x3B, - 0xD2, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0x56, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x29, - 0x05, - 0x02, - 0x00, - 0x04, - 0xE1, - 0x02, - 0x02, - 0x29, - 0x09, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x10, - 0xC4, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x64, - 0x02, - 0x29, - 0x09, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0xE1, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x83, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x43, - 0xD2, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x03, - 0x29, - 0x4C, - 0x3B, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x64, - 0x00, - 0x15, - 0x02, - 0x00, - 0x04, - 0x10, - 0x4C, - 0xA7, - 0x73, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x83, - 0x3C, - 0x61, - 0x8A, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x10, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0xC1, - 0x4F, - 0x59, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x6A, - 0x4F, - 0x8C, - 0x90, - 0x4C, - 0x9E, - 0xD2, - 0x02, - 0x10, - 0xD2, - 0x12, - 0xC1, - 0x90, - 0x43, - 0x6F, - 0x1B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAA, - 0x0C, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x17, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x95, - 0x94, - 0x0A, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x04, - 0x30, - 0x5A, - 0x6F, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0x4C, - 0x29, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0xDC, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0x8D, - 0xA0, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x9D, - 0xDF, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x59, - 0x8C, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x15, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x12, - 0xA7, - 0x1B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x24, - 0x1B, - 0x95, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x6B, - 0x3B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x04, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x7F, - 0x4F, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x83, - 0x4C, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x8A, - 0x3C, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x9E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x15, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0xA0, - 0x59, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6F, - 0x7C, - 0x02, - 0x02, - 0x29, - 0x08, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x71, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x0C, - 0x83, - 0x7E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x16, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x94, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x74, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x56, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x14, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x10, - 0x95, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x74, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x21, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x29, - 0x60, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x13, - 0x6F, - 0x8A, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x12, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x9E, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x09, - 0x95, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x03, - 0x3D, - 0x75, - 0xD4, - 0x00, - 0x05, - 0x99, - 0x01, - 0x47, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xA8, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x3E, - 0xB0, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0x32, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x59, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x10, - 0x32, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x09, - 0xCB, - 0x75, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x3E, - 0x32, - 0x92, - 0x05, - 0x03, - 0x01, - 0x3D, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x90, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x1A, - 0x43, - 0x29, - 0x29, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x99, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD4, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x05, - 0x03, - 0x00, - 0x17, - 0xCB, - 0x4D, - 0x02, - 0x10, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x99, - 0x4D, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCE, - 0xD4, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3E, - 0x02, - 0xA8, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x7F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x08, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x16, - 0x3D, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1E, - 0xB0, - 0x3E, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x18, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xCB, - 0xDD, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x29, - 0x9D, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x05, - 0x90, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0xA8, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x70, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x1B, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x1A, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xDE, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0xDC, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0x03, - 0xCB, - 0x3E, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x6C, - 0x02, - 0x29, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x19, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xDD, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x7E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x32, - 0x92, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0xB6, - 0xD7, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x83, - 0x02, - 0x10, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0x10, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x3E, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x1E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x06, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x59, - 0x0A, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xB6, - 0x32, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x21, - 0x05, - 0xDC, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xEA, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x1E, - 0x47, - 0x75, - 0x02, - 0xA8, - 0xD5, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0x3D, - 0x9A, - 0x03, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x30, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0C, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xB7, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0x92, - 0xA8, - 0xA8, - 0xA8, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x10, - 0x02, - 0x75, - 0xDE, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x47, - 0xA8, - 0xA8, - 0xB0, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x07, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x10, - 0x10, - 0x47, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x83, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0xDE, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x12, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x61, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0x0C, - 0x00, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x47, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xB6, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB0, - 0xD5, - 0x00, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x32, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0F, - 0x3B, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x08, - 0x02, - 0x00, - 0x1C, - 0x75, - 0x99, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x4D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xB0, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x0F, - 0x47, - 0xD7, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x07, - 0x99, - 0xA8, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x08, - 0x83, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x0C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8B, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x10, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x06, - 0x17, - 0x4F, - 0x10, - 0x29, - 0x02, - 0x10, - 0x08, - 0x02, - 0x00, - 0x18, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0xC6, - 0x6C, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x96, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x59, - 0x6B, - 0x02, - 0x29, - 0x09, - 0x02, - 0x00, - 0x17, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x0B, - 0xDC, - 0xC1, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4F, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x95, - 0x0A, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x10, - 0x02, - 0x61, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9E, - 0x06, - 0x02, - 0x00, - 0x1D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0xC1, - 0x6C, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x06, - 0x59, - 0x3C, - 0x30, - 0x29, - 0x02, - 0x29, - 0x11, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x04, - 0x29, - 0x12, - 0x6F, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1F, - 0x8D, - 0x8B, - 0x7C, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9E, - 0x95, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x83, - 0xC1, - 0x30, - 0x00, - 0x10, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x9E, - 0x43, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x1B, - 0x60, - 0x90, - 0x9D, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x71, - 0x43, - 0x83, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x17, - 0x70, - 0xDF, - 0x74, - 0xC1, - 0x85, - 0x9D, - 0x02, - 0x10, - 0x7C, - 0x9E, - 0x4C, - 0xA0, - 0x3C, - 0x4F, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x50, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0xC7, - 0xD2, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xE4, - 0xA7, - 0xDC, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xBD, - 0x71, - 0x00, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x98, - 0x90, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x4F, - 0x20, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x1D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x90, - 0xDC, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDA, - 0x01, - 0xD2, - 0x20, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0xD2, - 0x00, - 0x22, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0xD2, - 0x00, - 0x24, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x95, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x27, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x96, - 0xD2, - 0x00, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9E, - 0x2C, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x2E, - 0x02, - 0x01, - 0xC4, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9D, - 0x30, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x06, - 0x02, - 0x00, - 0x10, - 0x32, - 0x47, - 0x99, - 0x99, - 0x99, - 0xDE, - 0xB0, - 0x75, - 0x32, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xB0, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x10, - 0xD7, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0xEA, - 0x00, - 0x0A, - 0x92, - 0x02, - 0x32, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x99, - 0xEA, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xCB, - 0x3E, - 0x32, - 0xDD, - 0x00, - 0x04, - 0xEA, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x75, - 0x47, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xA8, - 0x02, - 0x32, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x70, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x16, - 0x47, - 0x80, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x92, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xEA, - 0x99, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x00, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x20, - 0x92, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x4D, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xE9, - 0xA8, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0x6B, - 0x00, - 0x08, - 0x02, - 0x00, - 0x15, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xB0, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x47, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0x75, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xA0, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x07, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8C, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x56, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0A, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x83, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0x99, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x7E, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x70, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xA8, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x10, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x75, - 0x92, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xCB, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3D, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x50, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0x75, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x75, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0xDE, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x32, - 0x92, - 0x80, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x47, - 0x5E, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x30, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x32, - 0x92, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x90, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0xDA, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x09, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x16, - 0xEA, - 0xD7, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x10, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x70, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0xD4, - 0xA8, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x71, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x44, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x90, - 0x00, - 0x08, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xD7, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0x6F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x80, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x05, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x07, - 0x02, - 0x00, - 0x10, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x07, - 0x02, - 0x00, - 0x06, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x20, - 0x01, - 0x95, - 0x08, - 0x02, - 0x00, - 0x0E, - 0xCB, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x07, - 0x02, - 0x00, - 0x06, - 0x75, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x04, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xDA, - 0x31, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x56, - 0x30, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2E, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x2D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0xA0, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDF, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x90, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x44, - 0x26, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9E, - 0x24, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x22, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xBD, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x18, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x6F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x6C, - 0x5A, - 0x30, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x43, - 0x1B, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xA0, - 0x7E, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x12, - 0x8C, - 0x83, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x1B, - 0x3B, - 0xBD, - 0x5A, - 0x56, - 0x12, - 0x0A, - 0x02, - 0x10, - 0x7E, - 0x71, - 0x6B, - 0x8C, - 0xDA, - 0x83, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3A, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x98, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x17, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x6A, - 0x9F, - 0x4C, - 0x8A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0A, - 0xC1, - 0x6F, - 0x1B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x17, - 0x6F, - 0x6B, - 0x29, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x30, - 0x8B, - 0x50, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x12, - 0x15, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x90, - 0x8A, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x17, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x1A, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x6C, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x1E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x29, - 0x00, - 0x21, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x61, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x56, - 0x29, - 0x02, - 0x01, - 0x9F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x2A, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x2B, - 0x02, - 0x01, - 0x71, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x90, - 0x01, - 0x29, - 0x2B, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDE, - 0x04, - 0x99, - 0x00, - 0x03, - 0x3E, - 0x4D, - 0xDE, - 0x00, - 0x04, - 0x99, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x05, - 0x99, - 0x00, - 0x03, - 0x47, - 0x75, - 0xA8, - 0x00, - 0x04, - 0x99, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3C, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x47, - 0x05, - 0x03, - 0x00, - 0x03, - 0x47, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0xD4, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x04, - 0xD5, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x47, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x05, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x3E, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x29, - 0x01, - 0x95, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x32, - 0x02, - 0xB0, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x47, - 0x75, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x74, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x99, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x06, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0xCB, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x75, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x01, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x47, - 0x01, - 0x5E, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x71, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xD4, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x44, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x1E, - 0x05, - 0x03, - 0x01, - 0x92, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0A, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x99, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x3E, - 0x75, - 0x02, - 0x3E, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x99, - 0xDE, - 0x75, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x12, - 0x32, - 0xC9, - 0x80, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x61, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x07, - 0x47, - 0x1F, - 0x03, - 0xDE, - 0x02, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0xC1, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xDE, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCE, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x3C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x74, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x3D, - 0x80, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xDE, - 0x02, - 0x02, - 0x75, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0xB0, - 0xA8, - 0x3D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x9A, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0xE1, - 0x01, - 0xC9, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xCC, - 0x01, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x80, - 0x0B, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDD, - 0x0B, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x07, - 0x02, - 0x01, - 0xCB, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x9A, - 0x0A, - 0x03, - 0x01, - 0x3D, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0C, - 0x2D, - 0x02, - 0x01, - 0xC4, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x2B, - 0x02, - 0x01, - 0x43, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x29, - 0x02, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xB7, - 0x01, - 0x10, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x25, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x70, - 0x01, - 0x12, - 0x22, - 0x02, - 0x00, - 0x03, - 0x10, - 0xC1, - 0x98, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x61, - 0x21, - 0x02, - 0x01, - 0xA0, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x3C, - 0x30, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x6F, - 0x17, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x50, - 0x56, - 0x8A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0xDA, - 0x12, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6B, - 0x70, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x50, - 0x74, - 0x9D, - 0x10, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x71, - 0x9F, - 0x98, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x0E, - 0x17, - 0xD6, - 0xBD, - 0x5A, - 0x56, - 0xC6, - 0x0A, - 0x10, - 0x7F, - 0x0D, - 0x09, - 0x96, - 0x95, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x59, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x3C, - 0x9D, - 0x10, - 0x08, - 0x02, - 0x00, - 0x03, - 0x12, - 0x4F, - 0xDC, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x17, - 0x60, - 0xE8, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x8D, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xE8, - 0x12, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0x1B, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x7C, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x96, - 0x0A, - 0x00, - 0x17, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x1A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x74, - 0xD2, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xA7, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x7C, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x3C, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x96, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x75, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x47, - 0x75, - 0x3D, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x17, - 0x01, - 0x64, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0x47, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6F, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x4D, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x4D, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x09, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0xD7, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x75, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x59, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xCB, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x60, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xC9, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x08, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDA, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x00, - 0x05, - 0x75, - 0xB6, - 0xD7, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x5E, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0xEA, - 0xA8, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x00, - 0x1A, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE8, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x47, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0xA8, - 0xA8, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x02, - 0x02, - 0x4D, - 0x69, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x47, - 0xA8, - 0x3D, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x4F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x92, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x9A, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0x47, - 0x0B, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x96, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x74, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xD5, - 0x09, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x09, - 0x03, - 0x01, - 0x99, - 0x06, - 0x02, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x06, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6F, - 0x28, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x27, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x43, - 0x22, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC7, - 0x21, - 0x02, - 0x01, - 0x74, - 0x01, - 0x17, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x01, - 0x64, - 0x1D, - 0x02, - 0x01, - 0x94, - 0x01, - 0xDC, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x1B, - 0x02, - 0x01, - 0x61, - 0x01, - 0xDC, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x19, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x17, - 0x02, - 0x01, - 0x90, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0x96, - 0xD2, - 0x00, - 0x13, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x71, - 0x10, - 0x02, - 0x00, - 0x03, - 0x8A, - 0xA0, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA0, - 0x30, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x64, - 0x3C, - 0x6A, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0xDC, - 0x4F, - 0x74, - 0xE8, - 0x12, - 0x0A, - 0x02, - 0x7C, - 0x12, - 0xA0, - 0x3C, - 0x60, - 0x17, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0x50, - 0x98, - 0x17, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x04, - 0x98, - 0x3C, - 0x0A, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x30, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x29, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x20, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x44, - 0x0F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x8A, - 0x11, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xCC, - 0x01, - 0x0A, - 0x13, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4F, - 0x16, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x17, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x98, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x64, - 0x19, - 0x02, - 0x01, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x1B, - 0x02, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x60, - 0x01, - 0xD2, - 0x1B, - 0x02, - 0x01, - 0x44, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x1D, - 0x02, - 0x01, - 0x96, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1D, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x1F, - 0x02, - 0x01, - 0x5A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6F, - 0x20, - 0x02, - 0x01, - 0x29, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6B, - 0x21, - 0x02, - 0x01, - 0x9F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x10, - 0x8D, - 0x44, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x99, - 0x99, - 0x99, - 0x4D, - 0x3D, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x10, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x99, - 0xD4, - 0x32, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x9F, - 0x04, - 0x02, - 0x00, - 0x20, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x44, - 0x3B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC4, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x20, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x3E, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xCC, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xE9, - 0xCB, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x32, - 0x9A, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x04, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x43, - 0x06, - 0x02, - 0x00, - 0x11, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x75, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xDE, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0xDD, - 0x75, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x5E, - 0xD4, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0xCB, - 0x75, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x20, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xA8, - 0x47, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0xB0, - 0xA8, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x09, - 0x03, - 0x00, - 0x05, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x95, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x08, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x00, - 0x07, - 0xD5, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x00, - 0x08, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x07, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x05, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xA8, - 0x06, - 0xCB, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x12, - 0x21, - 0x02, - 0x01, - 0xE4, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8C, - 0x20, - 0x02, - 0x01, - 0x10, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x61, - 0x01, - 0x98, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x02, - 0x01, - 0xDA, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x7E, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x17, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8C, - 0x1D, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x1B, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x1B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x1A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x96, - 0x18, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x17, - 0x02, - 0x01, - 0x96, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x15, - 0x02, - 0x01, - 0x0C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x13, - 0x02, - 0x01, - 0x5A, - 0x01, - 0xDC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x11, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x17, - 0x15, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x17, - 0xC4, - 0xD2, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x98, - 0x74, - 0x7E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x64, - 0x9F, - 0x17, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x9F, - 0x5A, - 0x85, - 0x0A, - 0x10, - 0x7E, - 0x0C, - 0x96, - 0x4F, - 0x17, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6C, - 0xD6, - 0x70, - 0x6A, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x4C, - 0x06, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x59, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x17, - 0x01, - 0x94, - 0x0C, - 0x02, - 0x01, - 0x74, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xD3, - 0x0E, - 0x02, - 0x01, - 0x43, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x74, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x43, - 0x14, - 0x02, - 0x01, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x7F, - 0x14, - 0x02, - 0x01, - 0x9D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x3C, - 0x16, - 0x02, - 0x01, - 0xA7, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6F, - 0x18, - 0x02, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4C, - 0x18, - 0x02, - 0x01, - 0x5A, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6A, - 0x19, - 0x02, - 0x01, - 0xD2, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x95, - 0x1A, - 0x02, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x6B, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1D, - 0x20, - 0xD2, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x1F, - 0x03, - 0x47, - 0x4D, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3C, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0xEA, - 0x47, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xCB, - 0x03, - 0xEA, - 0x99, - 0x04, - 0x02, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x7F, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0xB0, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x12, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0x59, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB6, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x08, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x43, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x92, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x1E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x32, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x17, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x1F, - 0x03, - 0x03, - 0x99, - 0xA8, - 0x92, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0xD4, - 0x02, - 0x02, - 0xB0, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x74, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x5A, - 0x04, - 0x02, - 0x01, - 0x92, - 0x01, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xD7, - 0x00, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x95, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xD5, - 0x06, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6A, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x06, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0xCB, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x5A, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x60, - 0x1A, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x12, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x74, - 0x18, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x17, - 0x02, - 0x01, - 0xD2, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x74, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6F, - 0x16, - 0x02, - 0x01, - 0x6A, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x12, - 0x14, - 0x02, - 0x01, - 0x90, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x50, - 0x13, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x5A, - 0x12, - 0x02, - 0x01, - 0x95, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x30, - 0x10, - 0x02, - 0x01, - 0x4C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x3B, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x0A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x5A, - 0x12, - 0xD2, - 0x8A, - 0x4C, - 0x8C, - 0x8D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xD6, - 0x50, - 0x1B, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x74, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xC1, - 0x08, - 0x02, - 0x01, - 0x3C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x0A, - 0x02, - 0x01, - 0x94, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x4F, - 0x0C, - 0x02, - 0x01, - 0x3B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0xC7, - 0x0C, - 0x02, - 0x01, - 0x6B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x70, - 0x0D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x5A, - 0x0E, - 0x02, - 0x01, - 0xBD, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0x12, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x0F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xBD, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC7, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8A, - 0x10, - 0x02, - 0x01, - 0x44, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xDA, - 0x02, - 0x02, - 0xB0, - 0x99, - 0xA8, - 0xB0, - 0x99, - 0xD4, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0x3D, - 0x99, - 0x3D, - 0x02, - 0x02, - 0x60, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x5A, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x92, - 0x03, - 0x99, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xBD, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC7, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x47, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x5E, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xE8, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xD2, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0xA8, - 0x03, - 0x5E, - 0x75, - 0xD7, - 0x1F, - 0x03, - 0xD7, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x15, - 0x59, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x3E, - 0x03, - 0x03, - 0x32, - 0x3D, - 0x03, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xD2, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x50, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x75, - 0xDD, - 0x03, - 0xB0, - 0xDE, - 0x03, - 0x92, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x59, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x92, - 0x1F, - 0x47, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x92, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xDA, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xDE, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x32, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0xC9, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x3D, - 0xB0, - 0x03, - 0xCE, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0xD7, - 0x99, - 0x32, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x92, - 0x75, - 0x03, - 0x03, - 0xD4, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x99, - 0x5E, - 0x75, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x75, - 0x92, - 0x03, - 0xD7, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x9F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x43, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x47, - 0x75, - 0xD5, - 0x03, - 0xA8, - 0x47, - 0x03, - 0xC9, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x03, - 0xD7, - 0xA8, - 0x03, - 0x5E, - 0x3D, - 0x92, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xD6, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x75, - 0x3E, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xC9, - 0x02, - 0x02, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x8A, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x9D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0x0C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0xD4, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0x74, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x3C, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x4F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xA7, - 0x12, - 0x02, - 0x01, - 0x70, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x8D, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x9D, - 0x10, - 0x02, - 0x01, - 0xC7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0x3B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0xC1, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xDA, - 0x0E, - 0x02, - 0x01, - 0x6F, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0C, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x5A, - 0x0C, - 0x02, - 0x01, - 0x43, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x02, - 0x01, - 0xBD, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x6F, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x04, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x50, - 0xC1, - 0x30, - 0x7E, - 0x90, - 0x8D, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x03, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x70, - 0x20, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x20, - 0x0D, - 0x02, - 0x4C, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x4F, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x12, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6C, - 0x05, - 0x02, - 0x01, - 0x98, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x98, - 0x07, - 0x02, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0x3B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x70, - 0x02, - 0x47, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0x6C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xDD, - 0x99, - 0xC9, - 0x02, - 0xE9, - 0x99, - 0x92, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDA, - 0x02, - 0xDD, - 0x47, - 0x9A, - 0x02, - 0x1F, - 0x47, - 0x92, - 0x02, - 0xA7, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0xCE, - 0xB0, - 0x03, - 0x4D, - 0x03, - 0xB0, - 0x92, - 0x02, - 0x9F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xDD, - 0xA8, - 0x03, - 0xD4, - 0x1F, - 0xA8, - 0x92, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0xDD, - 0xD4, - 0x9A, - 0x47, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xCB, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xDD, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0xCE, - 0x32, - 0xCB, - 0x03, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x99, - 0x03, - 0x47, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0x47, - 0x03, - 0xB0, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x3D, - 0x03, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0xD4, - 0x03, - 0x32, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0x03, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xDD, - 0x32, - 0x4D, - 0x03, - 0x4D, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x02, - 0x1F, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x44, - 0x02, - 0xDD, - 0x32, - 0x02, - 0xD5, - 0x32, - 0xA8, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x75, - 0xC9, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0xB6, - 0xB0, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x3D, - 0xCB, - 0xDE, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x99, - 0xDE, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xB0, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xB0, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0xD4, - 0x5E, - 0xB0, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x6B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xE4, - 0x02, - 0xCE, - 0xDE, - 0x03, - 0xD4, - 0x1F, - 0x99, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xDD, - 0x03, - 0x1F, - 0x4D, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xCE, - 0x03, - 0xD5, - 0x02, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x3C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x3C, - 0x02, - 0xCE, - 0x03, - 0x92, - 0x02, - 0xDD, - 0x03, - 0x92, - 0x02, - 0x43, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDF, - 0x02, - 0xC9, - 0x03, - 0xB6, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0xA8, - 0xCB, - 0x32, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x50, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xA7, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x07, - 0x02, - 0x01, - 0x6C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x0C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x30, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x0A, - 0x02, - 0xD2, - 0x98, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x9F, - 0x0A, - 0x4F, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x01, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x17, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3B, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x90, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x47, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xDA, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x6F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x8D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x04, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x20, - 0x70, - 0x17, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x04, - 0x12, - 0x02, - 0x0D, - 0x20, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x4F, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x0C, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0x6C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0xDF, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x07, - 0x02, - 0x01, - 0x98, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x3B, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6C, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0x47, - 0x02, - 0x70, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0x92, - 0x99, - 0xE9, - 0x02, - 0xC9, - 0x99, - 0xCE, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x47, - 0x1F, - 0x02, - 0x9A, - 0x47, - 0xCE, - 0x02, - 0xDA, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9F, - 0x02, - 0x92, - 0x3D, - 0x03, - 0x4D, - 0x1F, - 0x3D, - 0xDD, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0x92, - 0xA8, - 0x1F, - 0xA8, - 0x03, - 0xA8, - 0xCE, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC4, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0x47, - 0x9A, - 0xD4, - 0xDD, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xCB, - 0xCE, - 0x32, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xCE, - 0x92, - 0x32, - 0xDD, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0x03, - 0xCB, - 0x32, - 0xCE, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0x47, - 0x03, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0x03, - 0xB0, - 0x32, - 0xCE, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x03, - 0x3D, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0x03, - 0xD4, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x03, - 0xD7, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x4D, - 0x03, - 0x4D, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x1F, - 0x02, - 0x32, - 0xCE, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0xD5, - 0x02, - 0x32, - 0xDD, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x92, - 0x75, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0xB6, - 0xD7, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xDE, - 0xCB, - 0x3D, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0xDE, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xB0, - 0x92, - 0x32, - 0xCE, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xB0, - 0xDD, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6B, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0xB0, - 0x5E, - 0xD4, - 0xCE, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xDE, - 0x1F, - 0xD4, - 0x03, - 0xDE, - 0xDD, - 0x02, - 0xE4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0x92, - 0x03, - 0x03, - 0x4D, - 0x1F, - 0x03, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3C, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x02, - 0xD5, - 0x03, - 0xDD, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x43, - 0x02, - 0x92, - 0x03, - 0xDD, - 0x02, - 0x92, - 0x03, - 0xCE, - 0x02, - 0xC4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0xB6, - 0x03, - 0x92, - 0x02, - 0xDF, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x50, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x32, - 0xCB, - 0xA8, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0x83, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6C, - 0x07, - 0x02, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x94, - 0x05, - 0x02, - 0x01, - 0x12, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xC4, - 0x05, - 0x02, - 0x01, - 0x90, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x20, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x90, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x98, - 0xD2, - 0x02, - 0x8A, - 0x6C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x0A, - 0xDA, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x50, - 0xD6, - 0xDC, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xC1, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x09, - 0x02, - 0x01, - 0x60, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x94, - 0x0A, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x3B, - 0x0C, - 0x02, - 0x01, - 0x4F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6B, - 0x0C, - 0x02, - 0x01, - 0xC7, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0D, - 0x02, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xBD, - 0x0E, - 0x02, - 0x01, - 0x5A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x0F, - 0x02, - 0x01, - 0x70, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0xBD, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x94, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x44, - 0x10, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x59, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6C, - 0x12, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x60, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0xB0, - 0x99, - 0x3D, - 0x02, - 0x02, - 0xD4, - 0x99, - 0xB0, - 0xA8, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x9F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xBD, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC1, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x5E, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x47, - 0xDE, - 0x03, - 0x92, - 0x02, - 0x02, - 0xC7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x0D, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0xD7, - 0x03, - 0x1F, - 0xD7, - 0x75, - 0x5E, - 0x03, - 0xA8, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0xD2, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x15, - 0xD2, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0x3D, - 0x32, - 0x03, - 0x03, - 0x3E, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x59, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x59, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB0, - 0x03, - 0xDD, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x92, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x60, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x4F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0xBD, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xC9, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xCE, - 0x03, - 0xB0, - 0x3D, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x32, - 0x99, - 0xD7, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x75, - 0x92, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0x75, - 0x5E, - 0x99, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x9F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0xD7, - 0x03, - 0x92, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0xC9, - 0x03, - 0x47, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x43, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x92, - 0x3D, - 0x5E, - 0x03, - 0xA8, - 0xD7, - 0x1F, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB7, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x3E, - 0x75, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x17, - 0x8A, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x9A, - 0x02, - 0x02, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x0C, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x02, - 0x02, - 0x30, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x74, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xD4, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x4F, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x3C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x70, - 0x12, - 0x02, - 0x01, - 0xA7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD2, - 0x11, - 0x02, - 0x01, - 0x8D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x61, - 0x10, - 0x02, - 0x01, - 0x30, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3C, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x10, - 0x02, - 0x01, - 0xB7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xE4, - 0x0E, - 0x02, - 0x01, - 0xC7, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x60, - 0x0E, - 0x02, - 0x01, - 0xDA, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x0C, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x43, - 0x0C, - 0x02, - 0x01, - 0x90, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0B, - 0x02, - 0x01, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x02, - 0x01, - 0x5A, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0xC7, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x74, - 0x7E, - 0x0A, - 0xC1, - 0x50, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6A, - 0x70, - 0xD6, - 0x6C, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x06, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x8D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x95, - 0x01, - 0x0A, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x74, - 0x0C, - 0x02, - 0x01, - 0x94, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x43, - 0x0E, - 0x02, - 0x01, - 0xD3, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4F, - 0x10, - 0x02, - 0x01, - 0x74, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x0A, - 0x11, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6B, - 0x12, - 0x02, - 0x01, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x60, - 0x14, - 0x02, - 0x01, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x9D, - 0x14, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x59, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0xA7, - 0x16, - 0x02, - 0x01, - 0x8C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x30, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x18, - 0x02, - 0x01, - 0xA7, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x5A, - 0x18, - 0x02, - 0x01, - 0x4C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xD2, - 0x19, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x3B, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x3C, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x12, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x32, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0x3D, - 0xB0, - 0x03, - 0x1F, - 0xC9, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xBD, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x47, - 0x03, - 0xEA, - 0x92, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xB0, - 0x03, - 0x03, - 0xEA, - 0x75, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0xEA, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x6A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x59, - 0x05, - 0x02, - 0x00, - 0x07, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3E, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x08, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x08, - 0x99, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x04, - 0x03, - 0x00, - 0x08, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0xEA, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x0C, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0xB6, - 0x03, - 0x03, - 0x92, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0x9A, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x0C, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x32, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0x99, - 0x02, - 0xC9, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x47, - 0x03, - 0xEA, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x75, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x70, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0x92, - 0xA8, - 0xDE, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x94, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x02, - 0x02, - 0x99, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x05, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x00, - 0x06, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x5A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x04, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0xD5, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x04, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x4F, - 0x1A, - 0x02, - 0x01, - 0x5A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x59, - 0x1A, - 0x02, - 0x01, - 0x60, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x0D, - 0x18, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x20, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x18, - 0x02, - 0x01, - 0x74, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x0A, - 0x17, - 0x02, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x74, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x16, - 0x02, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x5A, - 0x14, - 0x02, - 0x01, - 0x12, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD2, - 0x13, - 0x02, - 0x01, - 0x8D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x12, - 0x02, - 0x01, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4C, - 0x10, - 0x02, - 0x01, - 0x30, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x30, - 0x0C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0x8C, - 0x08, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x8D, - 0x8C, - 0x4C, - 0x8A, - 0x02, - 0x4C, - 0x5A, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x17, - 0x98, - 0x50, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x4F, - 0x30, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0A, - 0x3C, - 0x98, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x9D, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x98, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x0F, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x11, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x4F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x7E, - 0x13, - 0x02, - 0x01, - 0x29, - 0x01, - 0xCC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x8A, - 0x16, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x17, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6B, - 0x19, - 0x02, - 0x01, - 0x64, - 0x01, - 0x1B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x1B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x64, - 0x1B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x96, - 0x1D, - 0x02, - 0x01, - 0x4C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x1D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x20, - 0x01, - 0x5A, - 0x1F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x29, - 0x1F, - 0x02, - 0x01, - 0x10, - 0x01, - 0x6F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x21, - 0x02, - 0x01, - 0x6B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x10, - 0x4C, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x32, - 0xD4, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x75, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x3D, - 0x4D, - 0x99, - 0x99, - 0x99, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x64, - 0x8D, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x20, - 0x3B, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x32, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x04, - 0x02, - 0x01, - 0xDA, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xC4, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xE9, - 0x3E, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xCB, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x9F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x11, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xDE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x75, - 0xC9, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0xD4, - 0x1F, - 0x9A, - 0x75, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x75, - 0x99, - 0x03, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xB0, - 0xD5, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xDE, - 0xA8, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x01, - 0x17, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x00, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0xE4, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x08, - 0x03, - 0x01, - 0x92, - 0x05, - 0x02, - 0x01, - 0x99, - 0x08, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x07, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xD5, - 0x07, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x06, - 0xCB, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x05, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xE4, - 0x21, - 0x02, - 0x01, - 0x12, - 0x01, - 0x20, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x20, - 0x02, - 0x01, - 0x8C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x98, - 0x01, - 0x61, - 0x1F, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x02, - 0x01, - 0x74, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x01, - 0xC7, - 0x1D, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x1D, - 0x02, - 0x01, - 0x8C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x1B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x96, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8C, - 0x17, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x0C, - 0x15, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x5A, - 0x13, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x17, - 0x01, - 0x3C, - 0x11, - 0x02, - 0x01, - 0xD3, - 0x01, - 0xDC, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x0D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xC4, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x64, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x74, - 0x98, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x17, - 0xA7, - 0x8C, - 0x0C, - 0x9D, - 0x10, - 0x30, - 0x85, - 0x5A, - 0x9F, - 0x1B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x59, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x4F, - 0x12, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x3C, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x90, - 0x0A, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0xE8, - 0x60, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x74, - 0x0A, - 0x00, - 0x12, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x6C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x15, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1C, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x1E, - 0x02, - 0x01, - 0x96, - 0x01, - 0x17, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x43, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x71, - 0x21, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x3C, - 0x23, - 0x02, - 0x01, - 0xC7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x27, - 0x02, - 0x01, - 0x96, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x27, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x4D, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x3D, - 0x75, - 0x47, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x32, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x3E, - 0x47, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x75, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x00, - 0x05, - 0x02, - 0x01, - 0x43, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x08, - 0xD7, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xB6, - 0x75, - 0x47, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x47, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x64, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x13, - 0xD7, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x4D, - 0x4D, - 0x9A, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x4D, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xE8, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3E, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x47, - 0x02, - 0x32, - 0x04, - 0x03, - 0x00, - 0x05, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x60, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD4, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xEA, - 0x00, - 0x08, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0D, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x9A, - 0x06, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x92, - 0x75, - 0x00, - 0x06, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x04, - 0x03, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x09, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0xD7, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x10, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x5E, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x03, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x64, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x1A, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x4D, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x98, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x3D, - 0xA8, - 0x47, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x69, - 0x4D, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0xA8, - 0xA8, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x9A, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x96, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0xEA, - 0x0A, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xD6, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xEA, - 0x09, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x74, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xC7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x08, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x99, - 0x06, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x64, - 0x28, - 0x02, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x27, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x59, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xBD, - 0x25, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x22, - 0x02, - 0x01, - 0x43, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x17, - 0x01, - 0x74, - 0x21, - 0x02, - 0x01, - 0x4C, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x1F, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x1D, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x61, - 0x1B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x19, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x59, - 0x01, - 0x90, - 0x17, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x30, - 0x13, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xA0, - 0xD2, - 0x00, - 0x10, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x3C, - 0x64, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x5A, - 0x50, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0x17, - 0x6F, - 0x3C, - 0xA0, - 0x12, - 0x7C, - 0x02, - 0x0A, - 0x12, - 0x6B, - 0x74, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x56, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x17, - 0x98, - 0x8D, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x98, - 0x1B, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xC1, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x4C, - 0x9F, - 0x6A, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x50, - 0x8B, - 0x30, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x29, - 0x6B, - 0x6F, - 0x17, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x60, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x17, - 0x9F, - 0x9D, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x6A, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x56, - 0x8A, - 0x00, - 0x1A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x1E, - 0x02, - 0x01, - 0x9F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x21, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3C, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x23, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x3C, - 0x1B, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x25, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x01, - 0x8A, - 0x28, - 0x02, - 0x01, - 0x56, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x29, - 0x02, - 0x01, - 0x29, - 0x01, - 0x9F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x71, - 0x01, - 0x29, - 0x2A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6B, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x04, - 0x99, - 0x00, - 0x03, - 0xA8, - 0x75, - 0x47, - 0x00, - 0x05, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x01, - 0x4D, - 0x01, - 0x3E, - 0x04, - 0x99, - 0x01, - 0xDE, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x47, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x05, - 0x03, - 0x00, - 0x03, - 0x92, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0xD5, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x03, - 0xD4, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0x47, - 0x04, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x75, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x3E, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xB0, - 0x02, - 0x32, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x03, - 0x9A, - 0xCB, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x9F, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x00, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0x92, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x71, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x44, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x8A, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0x99, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x4D, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD7, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x75, - 0xDE, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x70, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0x32, - 0x02, - 0x4D, - 0x80, - 0xC9, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0xDE, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE4, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xDD, - 0xA8, - 0x02, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xDE, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x75, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x12, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0x3D, - 0x02, - 0x75, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x74, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0xC6, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3D, - 0xA8, - 0xB0, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x75, - 0x02, - 0x02, - 0x99, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x98, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x9A, - 0x00, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x17, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xE1, - 0x04, - 0x02, - 0x01, - 0x99, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x9A, - 0x0B, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x0B, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xCB, - 0x07, - 0x02, - 0x01, - 0xC1, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x74, - 0x2D, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC6, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xCC, - 0x2B, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x29, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x10, - 0x01, - 0xB7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x26, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x23, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xA0, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x1F, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x01, - 0x10, - 0x1C, - 0x02, - 0x01, - 0x61, - 0x01, - 0x6A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x6F, - 0x12, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x0A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x50, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x70, - 0x6B, - 0x10, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x12, - 0xDA, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x98, - 0x9F, - 0x71, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x74, - 0x50, - 0x16, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0E, - 0x8D, - 0x95, - 0x96, - 0x6B, - 0x0D, - 0x7F, - 0x10, - 0x0A, - 0xC6, - 0x56, - 0x5A, - 0xBD, - 0xD6, - 0x17, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x20, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0xE4, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xC7, - 0x43, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x1B, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x03, - 0x71, - 0xBD, - 0x6C, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x20, - 0x4F, - 0x9D, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x29, - 0x90, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x01, - 0xC7, - 0x1A, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0x10, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x83, - 0x01, - 0xCA, - 0x20, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x22, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x20, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x7E, - 0x24, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x90, - 0xDC, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x26, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x6B, - 0x6A, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0xDC, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x2C, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xC4, - 0x2E, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x2F, - 0x02, - 0x01, - 0x8C, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x30, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x10, - 0x4D, - 0x47, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD4, - 0x75, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x47, - 0x32, - 0x06, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0xEA, - 0x00, - 0x04, - 0xDD, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0xEA, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x3D, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x02, - 0x92, - 0x04, - 0xEA, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x00, - 0x0B, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0xA8, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x03, - 0x4D, - 0x92, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x07, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x16, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x75, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x9A, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x83, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x20, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x47, - 0x75, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xB0, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x9A, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0xA0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x75, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x80, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x7E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x47, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x09, - 0x02, - 0x00, - 0x08, - 0xD7, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0xD4, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA0, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x8C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x99, - 0xEA, - 0x1F, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xD4, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x99, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x12, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x32, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x09, - 0x99, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x4D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xA8, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xCB, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0xD4, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x80, - 0x3D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x03, - 0x75, - 0xCB, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xA8, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x4C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xCB, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xB6, - 0x02, - 0x02, - 0x32, - 0x80, - 0x92, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x5E, - 0xDE, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x90, - 0x09, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x09, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x75, - 0xB6, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x71, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x00, - 0x16, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0xD7, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x61, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xA8, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x70, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x8C, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x12, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x0D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x60, - 0x08, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x03, - 0x1F, - 0x9A, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x11, - 0x3E, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x47, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x10, - 0x32, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x00, - 0x10, - 0x75, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x07, - 0x02, - 0x00, - 0x06, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0x80, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x75, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0E, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x08, - 0x02, - 0x00, - 0x06, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD4, - 0x08, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x31, - 0x02, - 0x01, - 0xDA, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x30, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x2D, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x20, - 0xDF, - 0xD2, - 0x00, - 0x2B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0C, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x26, - 0x02, - 0x01, - 0x44, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x98, - 0xE4, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x90, - 0x22, - 0x02, - 0x01, - 0x12, - 0x01, - 0x83, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xCC, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x56, - 0x01, - 0x6A, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x1C, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x9E, - 0x00, - 0x18, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x9E, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x20, - 0x83, - 0x3C, - 0x12, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x7E, - 0xA0, - 0x6F, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x20, - 0x83, - 0xDA, - 0x8C, - 0x6B, - 0x71, - 0x7E, - 0x10, - 0x02, - 0x30, - 0x12, - 0x56, - 0x5A, - 0xBD, - 0x60, - 0x1B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x5E, - 0x0C, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0x5A, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x05, - 0x10, - 0x0A, - 0x94, - 0x95, - 0x6C, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x04, - 0x29, - 0x4C, - 0x43, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0xDC, - 0x43, - 0x9D, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x8D, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x17, - 0xA7, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x16, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x56, - 0x8A, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x95, - 0x1B, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x09, - 0x17, - 0x95, - 0x7F, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x04, - 0x59, - 0x8C, - 0x8A, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x4C, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x09, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x18, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x9E, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x61, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x6F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x09, - 0xDC, - 0x94, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x1A, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x7F, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0xDC, - 0x90, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x9E, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x8A, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x1C, - 0x02, - 0x00, - 0x0E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x56, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x24, - 0x60, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x74, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x04, - 0x59, - 0x30, - 0x29, - 0x29, - 0x22, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x8A, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x26, - 0x1B, - 0x8C, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x02, - 0x71, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x32, - 0x05, - 0x99, - 0x00, - 0x04, - 0xB0, - 0x3E, - 0x3E, - 0xDE, - 0x05, - 0x99, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x00, - 0x03, - 0xD4, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0A, - 0x17, - 0x90, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x04, - 0x92, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x09, - 0x92, - 0xD4, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCE, - 0x32, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x83, - 0x29, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x05, - 0x92, - 0x32, - 0x02, - 0xD4, - 0xD5, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x01, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x75, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x3C, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x10, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x10, - 0x02, - 0x10, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0xD2, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x17, - 0xD2, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x32, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x10, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x75, - 0x02, - 0x10, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0xB7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x29, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0xA8, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0xD7, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x74, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0A, - 0xCB, - 0x3E, - 0xB0, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x5E, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x05, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xCB, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0E, - 0xCB, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x60, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x3B, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x29, - 0x02, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0x9A, - 0xA8, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0x8B, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0xA0, - 0x29, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0D, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3E, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0A, - 0x92, - 0xD4, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x05, - 0x7E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x07, - 0x02, - 0x00, - 0x08, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x25, - 0x05, - 0x98, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x1B, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0xD7, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x29, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1E, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x4D, - 0x00, - 0x06, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xCB, - 0x3E, - 0x02, - 0x32, - 0xB6, - 0xA8, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x56, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x1E, - 0xCB, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xA0, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x92, - 0x03, - 0x9A, - 0x3D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x29, - 0x05, - 0x05, - 0x96, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xB7, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x32, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x23, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xD4, - 0x02, - 0x75, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x18, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x56, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x1B, - 0xC9, - 0xB0, - 0xA8, - 0xA8, - 0x47, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x75, - 0x02, - 0x10, - 0x3D, - 0xCE, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xA8, - 0xA8, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0xB6, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x00, - 0x0F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x92, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x3C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x61, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x03, - 0xB6, - 0xD7, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0x32, - 0x01, - 0xEA, - 0x07, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x01, - 0x75, - 0x07, - 0x02, - 0x00, - 0x04, - 0x0C, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x11, - 0x1B, - 0x61, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x10, - 0x5E, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x3D, - 0xDD, - 0x1F, - 0x03, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xA8, - 0x4D, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x47, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD3, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x4C, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x09, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x20, - 0x1B, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x9D, - 0x6C, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x1E, - 0x8D, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x8A, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x96, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x1D, - 0x1B, - 0x95, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x6B, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x17, - 0x4F, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x59, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x1B, - 0x17, - 0x60, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x29, - 0x8A, - 0x43, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x05, - 0x83, - 0x61, - 0x02, - 0x02, - 0x10, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x0A, - 0x95, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x18, - 0x98, - 0xC1, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x0B, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x6F, - 0x71, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x30, - 0x3C, - 0x59, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x15, - 0x1B, - 0x95, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x03, - 0x7C, - 0x90, - 0x8D, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x04, - 0x59, - 0x43, - 0x9E, - 0x10, - 0x10, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x30, - 0xC1, - 0x83, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x16, - 0x83, - 0x43, - 0x71, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9D, - 0x90, - 0x60, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x10, - 0x6C, - 0x4F, - 0x3C, - 0xA0, - 0x4C, - 0x9D, - 0x7C, - 0x10, - 0x02, - 0x9D, - 0x85, - 0xC1, - 0x74, - 0xDF, - 0x70, - 0x17, - 0x17, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x42, - 0x0B, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x59, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x83, - 0xBD, - 0x12, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x10, - 0x30, - 0x90, - 0x6F, - 0x1B, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x3B, - 0x8B, - 0x9D, - 0x00, - 0x12, - 0x02, - 0x00, - 0x04, - 0x29, - 0xC1, - 0x4F, - 0x1B, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x60, - 0x01, - 0x12, - 0x18, - 0x02, - 0x00, - 0x03, - 0x29, - 0xCC, - 0x73, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x1C, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x95, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x24, - 0x59, - 0xA0, - 0x8A, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x12, - 0x3B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x08, - 0x95, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0xC1, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x96, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x73, - 0x01, - 0x56, - 0x07, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0x10, - 0x12, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x03, - 0x29, - 0x7C, - 0x50, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x29, - 0x10, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x10, - 0x61, - 0x73, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0x6F, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x00, - 0x13, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x04, - 0x83, - 0x29, - 0x02, - 0x29, - 0x15, - 0x02, - 0x01, - 0x10, - 0x14, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x3C, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x73, - 0x64, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x29, - 0x14, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x05, - 0x43, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x10, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x10, - 0x01, - 0x4C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x73, - 0xD2, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x28, - 0x3E, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xDE, - 0xD7, - 0x02, - 0x47, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x75, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x3E, - 0x02, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x3D, - 0x07, - 0x02, - 0x00, - 0x05, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x09, - 0x8C, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x32, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0D, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0xB0, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x5E, - 0x47, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x3E, - 0x5E, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0D, - 0x92, - 0x02, - 0x02, - 0x5E, - 0x5E, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x9E, - 0x73, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0xCE, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x32, - 0x02, - 0x02, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x02, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x90, - 0x08, - 0x02, - 0x01, - 0x32, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x02, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x08, - 0xE1, - 0x02, - 0x02, - 0x29, - 0xD2, - 0x73, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x32, - 0x5E, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x1B, - 0xA8, - 0x02, - 0x10, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0xA7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x3B, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x17, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB6, - 0x02, - 0x29, - 0x3D, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x99, - 0x04, - 0x02, - 0x00, - 0x09, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x96, - 0x29, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x32, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x16, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xD4, - 0x02, - 0xE9, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x10, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x32, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x10, - 0x3E, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x92, - 0xB0, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x08, - 0x10, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x70, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x83, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x04, - 0xDE, - 0x03, - 0x03, - 0x5E, - 0x06, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x03, - 0x03, - 0xCE, - 0x06, - 0x02, - 0x00, - 0x09, - 0x5E, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x90, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x43, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x16, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0x05, - 0x02, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x90, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0xB0, - 0x5E, - 0x00, - 0x07, - 0x03, - 0x00, - 0x15, - 0x5E, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0xC1, - 0x09, - 0x02, - 0x00, - 0x09, - 0x10, - 0x32, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0B, - 0xCE, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x04, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x5E, - 0xCB, - 0x10, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x73, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x12, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x5E, - 0x07, - 0x03, - 0x00, - 0x03, - 0xCB, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x5E, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x08, - 0x29, - 0xE1, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x59, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x7E, - 0x06, - 0x02, - 0x00, - 0x0D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x3E, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x32, - 0x5E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x06, - 0x03, - 0x01, - 0x99, - 0x09, - 0x02, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x83, - 0x00, - 0x00, - 0x01, - 0x59, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0xA8, - 0x07, - 0x02, - 0x00, - 0x1A, - 0x10, - 0xCE, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x75, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xCB, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x0B, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x0A, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x29, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x32, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0xA8, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x75, - 0xD5, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xDD, - 0x10, - 0x02, - 0x02, - 0xD7, - 0x07, - 0x02, - 0x00, - 0x07, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x9E, - 0x29, - 0x00, - 0x09, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0xDE, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x29, - 0xB0, - 0xCE, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x56, - 0x06, - 0x02, - 0x00, - 0x1F, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x3E, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x92, - 0x02, - 0x02, - 0x75, - 0xE9, - 0x5E, - 0xB0, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x32, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x08, - 0x32, - 0x10, - 0x02, - 0xDE, - 0x5E, - 0x03, - 0xE9, - 0x75, - 0x05, - 0x02, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x3C, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x2C, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x29, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xB6, - 0x02, - 0x02, - 0x3E, - 0xEA, - 0x03, - 0x03, - 0x5E, - 0xDE, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x6F, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0x3E, - 0x02, - 0x29, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x3E, - 0x04, - 0x02, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x59, - 0x8A, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x16, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x99, - 0x10, - 0x02, - 0x4D, - 0x05, - 0x03, - 0x00, - 0x11, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x29, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x56, - 0x29, - 0x04, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x06, - 0xDE, - 0xA8, - 0xA8, - 0xA8, - 0x92, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x12, - 0x5E, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x3D, - 0xA8, - 0xA8, - 0xA8, - 0x5E, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x10, - 0x02, - 0x10, - 0x6A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x05, - 0x95, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x32, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x06, - 0x03, - 0x04, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0x12, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x59, - 0x10, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x32, - 0x5E, - 0x5E, - 0x0A, - 0x03, - 0x00, - 0x0F, - 0x5E, - 0x03, - 0x03, - 0xD5, - 0xE1, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x99, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x03, - 0x3C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x61, - 0x04, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x3D, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0x9A, - 0x07, - 0x03, - 0x01, - 0x5E, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x04, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x08, - 0x02, - 0x00, - 0x04, - 0x75, - 0x5E, - 0x03, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x11, - 0x5E, - 0x03, - 0x92, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x73, - 0x61, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x0A, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xD5, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0xB6, - 0x00, - 0x06, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x92, - 0x08, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x09, - 0xCB, - 0x00, - 0x06, - 0xB0, - 0x3E, - 0x10, - 0x02, - 0x02, - 0x29, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x10, - 0x99, - 0x3D, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0xC1, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x4C, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x10, - 0x29, - 0x02, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x00, - 0x0D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x90, - 0x02, - 0x29, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x20, - 0x02, - 0x00, - 0x03, - 0x10, - 0x9E, - 0x73, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x56, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x29, - 0x0D, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9E, - 0x12, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x11, - 0x6A, - 0xD2, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x12, - 0x02, - 0x01, - 0x10, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x43, - 0x73, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x01, - 0x90, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0x10, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x0C, - 0x02, - 0x01, - 0x90, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x05, - 0x6A, - 0x9E, - 0x02, - 0x02, - 0x10, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x73, - 0x01, - 0x56, - 0x11, - 0x02, - 0x01, - 0x29, - 0x01, - 0xE1, - 0x11, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x10, - 0xC4, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6A, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x04, - 0x83, - 0x0C, - 0x29, - 0xE1, - 0x13, - 0x02, - 0x01, - 0xE1, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x64, - 0x95, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xC7, - 0x05, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x00, - 0x04, - 0x10, - 0xD2, - 0x43, - 0x73, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x6F, - 0x4C, - 0x8A, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x64, - 0xC4, - 0x59, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x59, - 0x4F, - 0xC1, - 0x29, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x8A, - 0xC7, - 0x3C, - 0x83, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x73, - 0x6F, - 0x43, - 0x90, - 0xC1, - 0x9E, - 0x7E, - 0x10, - 0x02, - 0xD2, - 0x9E, - 0x56, - 0x90, - 0xC4, - 0x4F, - 0x6A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x5E, - 0x0C, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0x5A, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x05, - 0x10, - 0x0A, - 0x94, - 0x95, - 0x6C, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x04, - 0x29, - 0x4C, - 0x43, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0xDC, - 0x43, - 0x9D, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x8D, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x17, - 0xA7, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x16, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x56, - 0x8A, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x95, - 0x1B, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x09, - 0x17, - 0x95, - 0x7F, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x04, - 0x59, - 0x8C, - 0x8A, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x4C, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x09, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x18, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x9E, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x61, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x6F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x09, - 0xDC, - 0x94, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x1A, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x7F, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0xDC, - 0x90, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x9E, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x8A, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x1C, - 0x02, - 0x00, - 0x0E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x56, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x24, - 0x60, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x74, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x04, - 0x59, - 0x30, - 0x29, - 0x29, - 0x22, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x8A, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x26, - 0x1B, - 0x8C, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x02, - 0x71, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x32, - 0x05, - 0x99, - 0x00, - 0x04, - 0xB0, - 0x3E, - 0x3E, - 0xDE, - 0x05, - 0x99, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x00, - 0x03, - 0xD4, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0A, - 0x17, - 0x90, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x04, - 0x92, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x09, - 0x92, - 0xD4, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCE, - 0x32, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x83, - 0x29, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x05, - 0x92, - 0x32, - 0x02, - 0xD4, - 0xD5, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x01, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x75, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x3C, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x10, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x10, - 0x02, - 0x10, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0xD2, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x17, - 0xD2, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x32, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x10, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x75, - 0x02, - 0x10, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0xB7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x29, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0xA8, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0xD7, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x74, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0A, - 0xCB, - 0x3E, - 0xB0, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x5E, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x05, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xCB, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0E, - 0xCB, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x60, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x3B, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x29, - 0x02, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0x9A, - 0xA8, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0x8B, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0xA0, - 0x29, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0D, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3E, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0A, - 0x92, - 0xD4, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x05, - 0x7E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x07, - 0x02, - 0x00, - 0x08, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x25, - 0x05, - 0x98, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x1B, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0xD7, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x29, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1E, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x4D, - 0x00, - 0x06, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xCB, - 0x3E, - 0x02, - 0x32, - 0xB6, - 0xA8, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x56, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x1E, - 0xCB, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xA0, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x92, - 0x03, - 0x9A, - 0x3D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x29, - 0x05, - 0x05, - 0x96, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xB7, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x32, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x23, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xD4, - 0x02, - 0x75, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x18, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x56, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x1B, - 0xC9, - 0xB0, - 0xA8, - 0xA8, - 0x47, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x75, - 0x02, - 0x10, - 0x3D, - 0xCE, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xA8, - 0xA8, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0xB6, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x00, - 0x0F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x92, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x3C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x61, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x03, - 0xB6, - 0xD7, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0x32, - 0x01, - 0xEA, - 0x07, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x01, - 0x75, - 0x07, - 0x02, - 0x00, - 0x04, - 0x0C, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x11, - 0x1B, - 0x61, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x10, - 0x5E, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x3D, - 0xDD, - 0x1F, - 0x03, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xA8, - 0x4D, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x47, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD3, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x4C, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x09, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x20, - 0x1B, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x9D, - 0x6C, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x1E, - 0x8D, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x8A, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x96, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x1D, - 0x1B, - 0x95, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x6B, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x17, - 0x4F, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x59, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x1B, - 0x17, - 0x60, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x29, - 0x8A, - 0x43, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x05, - 0x83, - 0x61, - 0x02, - 0x02, - 0x10, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x0A, - 0x95, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x18, - 0x98, - 0xC1, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x0B, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x6F, - 0x71, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x30, - 0x3C, - 0x59, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x15, - 0x1B, - 0x95, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x03, - 0x7C, - 0x90, - 0x8D, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x04, - 0x59, - 0x43, - 0x9E, - 0x10, - 0x10, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x30, - 0xC1, - 0x83, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x16, - 0x83, - 0x43, - 0x71, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9D, - 0x90, - 0x60, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x10, - 0x6C, - 0x4F, - 0x3C, - 0xA0, - 0x4C, - 0x9D, - 0x7C, - 0x10, - 0x02, - 0x9D, - 0x85, - 0xC1, - 0x74, - 0xDF, - 0x70, - 0x17, - 0x17, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x20, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0xE4, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xC7, - 0x43, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x1B, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x03, - 0x71, - 0xBD, - 0x6C, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x20, - 0x4F, - 0x9D, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x29, - 0x90, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x01, - 0xC7, - 0x1A, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0x10, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x83, - 0x01, - 0xCA, - 0x20, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x22, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x20, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x7E, - 0x24, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x90, - 0xDC, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x26, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x6B, - 0x6A, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0xDC, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x2C, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xC4, - 0x2E, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x2F, - 0x02, - 0x01, - 0x8C, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x30, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x10, - 0x4D, - 0x47, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD4, - 0x75, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x47, - 0x32, - 0x06, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0xEA, - 0x00, - 0x04, - 0xDD, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0xEA, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x3D, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x02, - 0x92, - 0x04, - 0xEA, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x00, - 0x0B, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0xA8, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x03, - 0x4D, - 0x92, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x07, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x16, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x75, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x9A, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x83, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x20, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x47, - 0x75, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xB0, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x9A, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0xA0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x75, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x80, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x7E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x47, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x09, - 0x02, - 0x00, - 0x08, - 0xD7, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0xD4, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA0, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x8C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x99, - 0xEA, - 0x1F, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xD4, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x99, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x12, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x32, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x09, - 0x99, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x4D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xA8, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xCB, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0xD4, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x80, - 0x3D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x03, - 0x75, - 0xCB, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xA8, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x4C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xCB, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xB6, - 0x02, - 0x02, - 0x32, - 0x80, - 0x92, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x5E, - 0xDE, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x90, - 0x09, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x09, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x75, - 0xB6, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x71, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x00, - 0x16, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0xD7, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x61, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xA8, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x70, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x8C, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x12, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x0D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x60, - 0x08, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x03, - 0x1F, - 0x9A, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x11, - 0x3E, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x47, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x10, - 0x32, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x00, - 0x10, - 0x75, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x07, - 0x02, - 0x00, - 0x06, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0x80, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x75, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0E, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x08, - 0x02, - 0x00, - 0x06, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD4, - 0x08, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x31, - 0x02, - 0x01, - 0xDA, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x30, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x2D, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x20, - 0xDF, - 0xD2, - 0x00, - 0x2B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0C, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x26, - 0x02, - 0x01, - 0x44, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x98, - 0xE4, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x90, - 0x22, - 0x02, - 0x01, - 0x12, - 0x01, - 0x83, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xCC, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x56, - 0x01, - 0x6A, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x1C, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x9E, - 0x00, - 0x18, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x9E, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x20, - 0x83, - 0x3C, - 0x12, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x7E, - 0xA0, - 0x6F, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x20, - 0x83, - 0xDA, - 0x8C, - 0x6B, - 0x71, - 0x7E, - 0x10, - 0x02, - 0x30, - 0x12, - 0x56, - 0x5A, - 0xBD, - 0x60, - 0x1B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x56, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x17, - 0x98, - 0x8D, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x98, - 0x1B, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xC1, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x4C, - 0x9F, - 0x6A, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x50, - 0x8B, - 0x30, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x29, - 0x6B, - 0x6F, - 0x17, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x60, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x17, - 0x9F, - 0x9D, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x6A, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x56, - 0x8A, - 0x00, - 0x1A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x1E, - 0x02, - 0x01, - 0x9F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x21, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3C, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x23, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x3C, - 0x1B, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x25, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x01, - 0x8A, - 0x28, - 0x02, - 0x01, - 0x56, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x29, - 0x02, - 0x01, - 0x29, - 0x01, - 0x9F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x71, - 0x01, - 0x29, - 0x2A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6B, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x04, - 0x99, - 0x00, - 0x03, - 0xA8, - 0x75, - 0x47, - 0x00, - 0x05, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x01, - 0x4D, - 0x01, - 0x3E, - 0x04, - 0x99, - 0x01, - 0xDE, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x47, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x05, - 0x03, - 0x00, - 0x03, - 0x92, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0xD5, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x03, - 0xD4, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0x47, - 0x04, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x75, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x3E, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xB0, - 0x02, - 0x32, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x03, - 0x9A, - 0xCB, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x9F, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x00, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0x92, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x71, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x44, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x8A, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0x99, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x4D, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD7, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x75, - 0xDE, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x70, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0x32, - 0x02, - 0x4D, - 0x80, - 0xC9, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0xDE, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE4, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xDD, - 0xA8, - 0x02, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xDE, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x75, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x12, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0x3D, - 0x02, - 0x75, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x74, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0xC6, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3D, - 0xA8, - 0xB0, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x75, - 0x02, - 0x02, - 0x99, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x98, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x9A, - 0x00, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x17, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xE1, - 0x04, - 0x02, - 0x01, - 0x99, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x9A, - 0x0B, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x0B, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xCB, - 0x07, - 0x02, - 0x01, - 0xC1, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x74, - 0x2D, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC6, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xCC, - 0x2B, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x29, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x10, - 0x01, - 0xB7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x26, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x23, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xA0, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x1F, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x01, - 0x10, - 0x1C, - 0x02, - 0x01, - 0x61, - 0x01, - 0x6A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x6F, - 0x12, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x0A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x50, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x70, - 0x6B, - 0x10, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x12, - 0xDA, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x98, - 0x9F, - 0x71, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x74, - 0x50, - 0x16, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0E, - 0x8D, - 0x95, - 0x96, - 0x6B, - 0x0D, - 0x7F, - 0x10, - 0x0A, - 0xC6, - 0x56, - 0x5A, - 0xBD, - 0xD6, - 0x17, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x59, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x4F, - 0x12, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x3C, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x90, - 0x0A, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0xE8, - 0x60, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x74, - 0x0A, - 0x00, - 0x12, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x6C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x15, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1C, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x1E, - 0x02, - 0x01, - 0x96, - 0x01, - 0x17, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x43, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x71, - 0x21, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x3C, - 0x23, - 0x02, - 0x01, - 0xC7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x27, - 0x02, - 0x01, - 0x96, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x27, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x4D, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x3D, - 0x75, - 0x47, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x32, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x3E, - 0x47, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x75, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x00, - 0x05, - 0x02, - 0x01, - 0x43, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x08, - 0xD7, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xB6, - 0x75, - 0x47, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x47, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x64, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x13, - 0xD7, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x4D, - 0x4D, - 0x9A, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x4D, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xE8, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3E, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x47, - 0x02, - 0x32, - 0x04, - 0x03, - 0x00, - 0x05, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x60, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD4, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xEA, - 0x00, - 0x08, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0D, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x9A, - 0x06, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x92, - 0x75, - 0x00, - 0x06, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x04, - 0x03, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x09, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0xD7, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x10, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x5E, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x03, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x64, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x1A, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x4D, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x98, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x3D, - 0xA8, - 0x47, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x69, - 0x4D, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0xA8, - 0xA8, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x9A, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x96, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0xEA, - 0x0A, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xD6, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xEA, - 0x09, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x74, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xC7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x08, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x99, - 0x06, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x64, - 0x28, - 0x02, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x27, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x59, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xBD, - 0x25, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x22, - 0x02, - 0x01, - 0x43, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x17, - 0x01, - 0x74, - 0x21, - 0x02, - 0x01, - 0x4C, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x1F, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x1D, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x61, - 0x1B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x19, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x59, - 0x01, - 0x90, - 0x17, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x30, - 0x13, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xA0, - 0xD2, - 0x00, - 0x10, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x3C, - 0x64, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x5A, - 0x50, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0x17, - 0x6F, - 0x3C, - 0xA0, - 0x12, - 0x7C, - 0x02, - 0x0A, - 0x12, - 0x6B, - 0x74, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x17, - 0x98, - 0x50, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x4F, - 0x30, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0A, - 0x3C, - 0x98, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x9D, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x98, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x0F, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x11, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x4F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x7E, - 0x13, - 0x02, - 0x01, - 0x29, - 0x01, - 0xCC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x8A, - 0x16, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x17, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6B, - 0x19, - 0x02, - 0x01, - 0x64, - 0x01, - 0x1B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x1B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x64, - 0x1B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x96, - 0x1D, - 0x02, - 0x01, - 0x4C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x1D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x20, - 0x01, - 0x5A, - 0x1F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x29, - 0x1F, - 0x02, - 0x01, - 0x10, - 0x01, - 0x6F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x21, - 0x02, - 0x01, - 0x6B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x10, - 0x4C, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x32, - 0xD4, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x75, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x3D, - 0x4D, - 0x99, - 0x99, - 0x99, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x64, - 0x8D, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x20, - 0x3B, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x32, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x04, - 0x02, - 0x01, - 0xDA, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xC4, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xE9, - 0x3E, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xCB, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x9F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x11, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xDE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x75, - 0xC9, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0xD4, - 0x1F, - 0x9A, - 0x75, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x75, - 0x99, - 0x03, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xB0, - 0xD5, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xDE, - 0xA8, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x01, - 0x17, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x00, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0xE4, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x08, - 0x03, - 0x01, - 0x92, - 0x05, - 0x02, - 0x01, - 0x99, - 0x08, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x07, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xD5, - 0x07, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x06, - 0xCB, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x05, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xE4, - 0x21, - 0x02, - 0x01, - 0x12, - 0x01, - 0x20, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x20, - 0x02, - 0x01, - 0x8C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x98, - 0x01, - 0x61, - 0x1F, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x02, - 0x01, - 0x74, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x01, - 0xC7, - 0x1D, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x1D, - 0x02, - 0x01, - 0x8C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x1B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x96, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8C, - 0x17, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x0C, - 0x15, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x5A, - 0x13, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x17, - 0x01, - 0x3C, - 0x11, - 0x02, - 0x01, - 0xD3, - 0x01, - 0xDC, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x0D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xC4, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x64, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x74, - 0x98, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x17, - 0xA7, - 0x8C, - 0x0C, - 0x9D, - 0x10, - 0x30, - 0x85, - 0x5A, - 0x9F, - 0x1B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6A, - 0x70, - 0xD6, - 0x6C, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x06, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x8D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x95, - 0x01, - 0x0A, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x74, - 0x0C, - 0x02, - 0x01, - 0x94, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x43, - 0x0E, - 0x02, - 0x01, - 0xD3, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4F, - 0x10, - 0x02, - 0x01, - 0x74, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x0A, - 0x11, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6B, - 0x12, - 0x02, - 0x01, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x60, - 0x14, - 0x02, - 0x01, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x9D, - 0x14, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x59, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0xA7, - 0x16, - 0x02, - 0x01, - 0x8C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x30, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x18, - 0x02, - 0x01, - 0xA7, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x5A, - 0x18, - 0x02, - 0x01, - 0x4C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xD2, - 0x19, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x3B, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x3C, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x12, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x32, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0x3D, - 0xB0, - 0x03, - 0x1F, - 0xC9, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xBD, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x47, - 0x03, - 0xEA, - 0x92, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xB0, - 0x03, - 0x03, - 0xEA, - 0x75, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0xEA, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x6A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x59, - 0x05, - 0x02, - 0x00, - 0x07, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3E, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x08, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x08, - 0x99, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x04, - 0x03, - 0x00, - 0x08, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0xEA, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x0C, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0xB6, - 0x03, - 0x03, - 0x92, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0x9A, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x0C, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x32, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0x99, - 0x02, - 0xC9, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x47, - 0x03, - 0xEA, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x75, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x70, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0x92, - 0xA8, - 0xDE, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x94, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x02, - 0x02, - 0x99, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x05, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x00, - 0x06, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x5A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x04, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0xD5, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x04, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x4F, - 0x1A, - 0x02, - 0x01, - 0x5A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x59, - 0x1A, - 0x02, - 0x01, - 0x60, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x0D, - 0x18, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x20, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x18, - 0x02, - 0x01, - 0x74, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x0A, - 0x17, - 0x02, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x74, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x16, - 0x02, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x5A, - 0x14, - 0x02, - 0x01, - 0x12, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD2, - 0x13, - 0x02, - 0x01, - 0x8D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x12, - 0x02, - 0x01, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4C, - 0x10, - 0x02, - 0x01, - 0x30, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x30, - 0x0C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0x8C, - 0x08, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x8D, - 0x8C, - 0x4C, - 0x8A, - 0x02, - 0x4C, - 0x5A, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x50, - 0xD6, - 0xDC, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xC1, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x09, - 0x02, - 0x01, - 0x60, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x94, - 0x0A, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x3B, - 0x0C, - 0x02, - 0x01, - 0x4F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6B, - 0x0C, - 0x02, - 0x01, - 0xC7, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0D, - 0x02, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xBD, - 0x0E, - 0x02, - 0x01, - 0x5A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x0F, - 0x02, - 0x01, - 0x70, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0xBD, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x94, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x44, - 0x10, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x59, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6C, - 0x12, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x60, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0xB0, - 0x99, - 0x3D, - 0x02, - 0x02, - 0xD4, - 0x99, - 0xB0, - 0xA8, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x9F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xBD, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC1, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x5E, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x47, - 0xDE, - 0x03, - 0x92, - 0x02, - 0x02, - 0xC7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x0D, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0xD7, - 0x03, - 0x1F, - 0xD7, - 0x75, - 0x5E, - 0x03, - 0xA8, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0xD2, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x15, - 0xD2, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0x3D, - 0x32, - 0x03, - 0x03, - 0x3E, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x59, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x59, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB0, - 0x03, - 0xDD, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x92, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x60, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x4F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0xBD, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xC9, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xCE, - 0x03, - 0xB0, - 0x3D, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x32, - 0x99, - 0xD7, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x75, - 0x92, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0x75, - 0x5E, - 0x99, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x9F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0xD7, - 0x03, - 0x92, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0xC9, - 0x03, - 0x47, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x43, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x92, - 0x3D, - 0x5E, - 0x03, - 0xA8, - 0xD7, - 0x1F, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB7, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x3E, - 0x75, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x17, - 0x8A, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x9A, - 0x02, - 0x02, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x0C, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x02, - 0x02, - 0x30, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x74, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xD4, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x4F, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x3C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x70, - 0x12, - 0x02, - 0x01, - 0xA7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD2, - 0x11, - 0x02, - 0x01, - 0x8D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x61, - 0x10, - 0x02, - 0x01, - 0x30, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3C, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x10, - 0x02, - 0x01, - 0xB7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xE4, - 0x0E, - 0x02, - 0x01, - 0xC7, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x60, - 0x0E, - 0x02, - 0x01, - 0xDA, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x0C, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x43, - 0x0C, - 0x02, - 0x01, - 0x90, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0B, - 0x02, - 0x01, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x02, - 0x01, - 0x5A, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0xC7, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x74, - 0x7E, - 0x0A, - 0xC1, - 0x50, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x04, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x20, - 0x70, - 0x17, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x04, - 0x12, - 0x02, - 0x0D, - 0x20, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x4F, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x0C, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0x6C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0xDF, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x07, - 0x02, - 0x01, - 0x98, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x3B, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6C, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0x47, - 0x02, - 0x70, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0x92, - 0x99, - 0xE9, - 0x02, - 0xC9, - 0x99, - 0xCE, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x47, - 0x1F, - 0x02, - 0x9A, - 0x47, - 0xCE, - 0x02, - 0xDA, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9F, - 0x02, - 0x92, - 0x3D, - 0x03, - 0x4D, - 0x1F, - 0x3D, - 0xDD, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0x92, - 0xA8, - 0x1F, - 0xA8, - 0x03, - 0xA8, - 0xCE, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC4, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0x47, - 0x9A, - 0xD4, - 0xDD, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xCB, - 0xCE, - 0x32, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xCE, - 0x92, - 0x32, - 0xDD, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0x03, - 0xCB, - 0x32, - 0xCE, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0x47, - 0x03, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0x03, - 0xB0, - 0x32, - 0xCE, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x03, - 0x3D, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0x03, - 0xD4, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x03, - 0xD7, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x4D, - 0x03, - 0x4D, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x1F, - 0x02, - 0x32, - 0xCE, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0xD5, - 0x02, - 0x32, - 0xDD, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x92, - 0x75, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0xB6, - 0xD7, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xDE, - 0xCB, - 0x3D, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0xDE, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xB0, - 0x92, - 0x32, - 0xCE, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xB0, - 0xDD, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6B, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0xB0, - 0x5E, - 0xD4, - 0xCE, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xDE, - 0x1F, - 0xD4, - 0x03, - 0xDE, - 0xDD, - 0x02, - 0xE4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0x92, - 0x03, - 0x03, - 0x4D, - 0x1F, - 0x03, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3C, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x02, - 0xD5, - 0x03, - 0xDD, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x43, - 0x02, - 0x92, - 0x03, - 0xDD, - 0x02, - 0x92, - 0x03, - 0xCE, - 0x02, - 0xC4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0xB6, - 0x03, - 0x92, - 0x02, - 0xDF, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x50, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x32, - 0xCB, - 0xA8, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0x83, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6C, - 0x07, - 0x02, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x94, - 0x05, - 0x02, - 0x01, - 0x12, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xC4, - 0x05, - 0x02, - 0x01, - 0x90, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x20, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x90, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x98, - 0xD2, - 0x02, - 0x8A, - 0x6C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x0A, - 0xDA, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x01, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x17, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3B, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x90, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x47, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xDA, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x6F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x8D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x03, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x70, - 0x20, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x20, - 0x0D, - 0x02, - 0x4C, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x4F, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x12, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6C, - 0x05, - 0x02, - 0x01, - 0x98, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x98, - 0x07, - 0x02, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0x3B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x70, - 0x02, - 0x47, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0x6C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xDD, - 0x99, - 0xC9, - 0x02, - 0xE9, - 0x99, - 0x92, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDA, - 0x02, - 0xDD, - 0x47, - 0x9A, - 0x02, - 0x1F, - 0x47, - 0x92, - 0x02, - 0xA7, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0xCE, - 0xB0, - 0x03, - 0x4D, - 0x03, - 0xB0, - 0x92, - 0x02, - 0x9F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xDD, - 0xA8, - 0x03, - 0xD4, - 0x1F, - 0xA8, - 0x92, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0xDD, - 0xD4, - 0x9A, - 0x47, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xCB, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xDD, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0xCE, - 0x32, - 0xCB, - 0x03, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x99, - 0x03, - 0x47, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0x47, - 0x03, - 0xB0, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x3D, - 0x03, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0xD4, - 0x03, - 0x32, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0x03, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xDD, - 0x32, - 0x4D, - 0x03, - 0x4D, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x02, - 0x1F, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x44, - 0x02, - 0xDD, - 0x32, - 0x02, - 0xD5, - 0x32, - 0xA8, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x75, - 0xC9, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0xB6, - 0xB0, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x3D, - 0xCB, - 0xDE, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x99, - 0xDE, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xB0, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xB0, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0xD4, - 0x5E, - 0xB0, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x6B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xE4, - 0x02, - 0xCE, - 0xDE, - 0x03, - 0xD4, - 0x1F, - 0x99, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xDD, - 0x03, - 0x1F, - 0x4D, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xCE, - 0x03, - 0xD5, - 0x02, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x3C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x3C, - 0x02, - 0xCE, - 0x03, - 0x92, - 0x02, - 0xDD, - 0x03, - 0x92, - 0x02, - 0x43, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDF, - 0x02, - 0xC9, - 0x03, - 0xB6, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0xA8, - 0xCB, - 0x32, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x50, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xA7, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x07, - 0x02, - 0x01, - 0x6C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x0C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x30, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x0A, - 0x02, - 0xD2, - 0x98, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x9F, - 0x0A, - 0x4F, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xD6, - 0x50, - 0x1B, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x74, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xC1, - 0x08, - 0x02, - 0x01, - 0x3C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x0A, - 0x02, - 0x01, - 0x94, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x4F, - 0x0C, - 0x02, - 0x01, - 0x3B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0xC7, - 0x0C, - 0x02, - 0x01, - 0x6B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x70, - 0x0D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x5A, - 0x0E, - 0x02, - 0x01, - 0xBD, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0x12, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x0F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xBD, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC7, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8A, - 0x10, - 0x02, - 0x01, - 0x44, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xDA, - 0x02, - 0x02, - 0xB0, - 0x99, - 0xA8, - 0xB0, - 0x99, - 0xD4, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0x3D, - 0x99, - 0x3D, - 0x02, - 0x02, - 0x60, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x5A, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x92, - 0x03, - 0x99, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xBD, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC7, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x47, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x5E, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xE8, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xD2, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0xA8, - 0x03, - 0x5E, - 0x75, - 0xD7, - 0x1F, - 0x03, - 0xD7, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x15, - 0x59, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x3E, - 0x03, - 0x03, - 0x32, - 0x3D, - 0x03, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xD2, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x50, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x75, - 0xDD, - 0x03, - 0xB0, - 0xDE, - 0x03, - 0x92, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x59, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x92, - 0x1F, - 0x47, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x92, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xDA, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xDE, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x32, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0xC9, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x3D, - 0xB0, - 0x03, - 0xCE, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0xD7, - 0x99, - 0x32, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x92, - 0x75, - 0x03, - 0x03, - 0xD4, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x99, - 0x5E, - 0x75, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x75, - 0x92, - 0x03, - 0xD7, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x9F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x43, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x47, - 0x75, - 0xD5, - 0x03, - 0xA8, - 0x47, - 0x03, - 0xC9, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x03, - 0xD7, - 0xA8, - 0x03, - 0x5E, - 0x3D, - 0x92, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xD6, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x75, - 0x3E, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xC9, - 0x02, - 0x02, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x8A, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x9D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0x0C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0xD4, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0x74, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x3C, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x4F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xA7, - 0x12, - 0x02, - 0x01, - 0x70, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x8D, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x9D, - 0x10, - 0x02, - 0x01, - 0xC7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0x3B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0xC1, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xDA, - 0x0E, - 0x02, - 0x01, - 0x6F, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0C, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x5A, - 0x0C, - 0x02, - 0x01, - 0x43, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x02, - 0x01, - 0xBD, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x6F, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x04, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x50, - 0xC1, - 0x30, - 0x7E, - 0x90, - 0x8D, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6C, - 0xD6, - 0x70, - 0x6A, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x4C, - 0x06, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x59, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x17, - 0x01, - 0x94, - 0x0C, - 0x02, - 0x01, - 0x74, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xD3, - 0x0E, - 0x02, - 0x01, - 0x43, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x74, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x43, - 0x14, - 0x02, - 0x01, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x7F, - 0x14, - 0x02, - 0x01, - 0x9D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x3C, - 0x16, - 0x02, - 0x01, - 0xA7, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6F, - 0x18, - 0x02, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4C, - 0x18, - 0x02, - 0x01, - 0x5A, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6A, - 0x19, - 0x02, - 0x01, - 0xD2, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x95, - 0x1A, - 0x02, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x6B, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1D, - 0x20, - 0xD2, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x1F, - 0x03, - 0x47, - 0x4D, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3C, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0xEA, - 0x47, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xCB, - 0x03, - 0xEA, - 0x99, - 0x04, - 0x02, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x7F, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0xB0, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x12, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0x59, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB6, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x08, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x43, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x92, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x1E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x32, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x17, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x1F, - 0x03, - 0x03, - 0x99, - 0xA8, - 0x92, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0xD4, - 0x02, - 0x02, - 0xB0, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x74, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x5A, - 0x04, - 0x02, - 0x01, - 0x92, - 0x01, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xD7, - 0x00, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x95, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xD5, - 0x06, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6A, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x06, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0xCB, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x5A, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x60, - 0x1A, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x12, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x74, - 0x18, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x17, - 0x02, - 0x01, - 0xD2, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x74, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6F, - 0x16, - 0x02, - 0x01, - 0x6A, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x12, - 0x14, - 0x02, - 0x01, - 0x90, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x50, - 0x13, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x5A, - 0x12, - 0x02, - 0x01, - 0x95, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x30, - 0x10, - 0x02, - 0x01, - 0x4C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x3B, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x0A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x5A, - 0x12, - 0xD2, - 0x8A, - 0x4C, - 0x8C, - 0x8D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0x50, - 0x98, - 0x17, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x04, - 0x98, - 0x3C, - 0x0A, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x30, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x29, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x20, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x44, - 0x0F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x8A, - 0x11, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xCC, - 0x01, - 0x0A, - 0x13, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4F, - 0x16, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x17, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x98, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x64, - 0x19, - 0x02, - 0x01, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x1B, - 0x02, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x60, - 0x01, - 0xD2, - 0x1B, - 0x02, - 0x01, - 0x44, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x1D, - 0x02, - 0x01, - 0x96, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1D, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x1F, - 0x02, - 0x01, - 0x5A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6F, - 0x20, - 0x02, - 0x01, - 0x29, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6B, - 0x21, - 0x02, - 0x01, - 0x9F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x10, - 0x8D, - 0x44, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x99, - 0x99, - 0x99, - 0x4D, - 0x3D, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x10, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x99, - 0xD4, - 0x32, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x9F, - 0x04, - 0x02, - 0x00, - 0x20, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x44, - 0x3B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC4, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x20, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x3E, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xCC, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xE9, - 0xCB, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x32, - 0x9A, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x04, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x43, - 0x06, - 0x02, - 0x00, - 0x11, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x75, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xDE, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0xDD, - 0x75, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x5E, - 0xD4, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0xCB, - 0x75, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x20, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xA8, - 0x47, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0xB0, - 0xA8, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x09, - 0x03, - 0x00, - 0x05, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x95, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x08, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x00, - 0x07, - 0xD5, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x00, - 0x08, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x07, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x05, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xA8, - 0x06, - 0xCB, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x12, - 0x21, - 0x02, - 0x01, - 0xE4, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8C, - 0x20, - 0x02, - 0x01, - 0x10, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x61, - 0x01, - 0x98, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x02, - 0x01, - 0xDA, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x7E, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x17, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8C, - 0x1D, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x1B, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x1B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x1A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x96, - 0x18, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x17, - 0x02, - 0x01, - 0x96, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x15, - 0x02, - 0x01, - 0x0C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x13, - 0x02, - 0x01, - 0x5A, - 0x01, - 0xDC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x11, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x17, - 0x15, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x17, - 0xC4, - 0xD2, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x98, - 0x74, - 0x7E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x64, - 0x9F, - 0x17, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x9F, - 0x5A, - 0x85, - 0x0A, - 0x10, - 0x7E, - 0x0C, - 0x96, - 0x4F, - 0x17, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x59, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x3C, - 0x9D, - 0x10, - 0x08, - 0x02, - 0x00, - 0x03, - 0x12, - 0x4F, - 0xDC, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x17, - 0x60, - 0xE8, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x8D, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xE8, - 0x12, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0x1B, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x7C, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x96, - 0x0A, - 0x00, - 0x17, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x1A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x74, - 0xD2, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xA7, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x7C, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x3C, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x96, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x75, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x47, - 0x75, - 0x3D, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x17, - 0x01, - 0x64, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0x47, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6F, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x4D, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x4D, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x09, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0xD7, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x75, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x59, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xCB, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x60, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xC9, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x08, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDA, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x00, - 0x05, - 0x75, - 0xB6, - 0xD7, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x5E, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0xEA, - 0xA8, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x00, - 0x1A, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE8, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x47, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0xA8, - 0xA8, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x02, - 0x02, - 0x4D, - 0x69, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x47, - 0xA8, - 0x3D, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x4F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x92, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x9A, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0x47, - 0x0B, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x96, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x74, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xD5, - 0x09, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x09, - 0x03, - 0x01, - 0x99, - 0x06, - 0x02, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x06, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6F, - 0x28, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x27, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x43, - 0x22, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC7, - 0x21, - 0x02, - 0x01, - 0x74, - 0x01, - 0x17, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x01, - 0x64, - 0x1D, - 0x02, - 0x01, - 0x94, - 0x01, - 0xDC, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x1B, - 0x02, - 0x01, - 0x61, - 0x01, - 0xDC, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x19, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x17, - 0x02, - 0x01, - 0x90, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0x96, - 0xD2, - 0x00, - 0x13, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x71, - 0x10, - 0x02, - 0x00, - 0x03, - 0x8A, - 0xA0, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA0, - 0x30, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x64, - 0x3C, - 0x6A, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0xDC, - 0x4F, - 0x74, - 0xE8, - 0x12, - 0x0A, - 0x02, - 0x7C, - 0x12, - 0xA0, - 0x3C, - 0x60, - 0x17, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3A, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x98, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x17, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x6A, - 0x9F, - 0x4C, - 0x8A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0A, - 0xC1, - 0x6F, - 0x1B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x17, - 0x6F, - 0x6B, - 0x29, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x30, - 0x8B, - 0x50, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x12, - 0x15, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x90, - 0x8A, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x17, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x1A, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x6C, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x1E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x29, - 0x00, - 0x21, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x61, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x56, - 0x29, - 0x02, - 0x01, - 0x9F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x2A, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x2B, - 0x02, - 0x01, - 0x71, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x90, - 0x01, - 0x29, - 0x2B, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDE, - 0x04, - 0x99, - 0x00, - 0x03, - 0x3E, - 0x4D, - 0xDE, - 0x00, - 0x04, - 0x99, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x05, - 0x99, - 0x00, - 0x03, - 0x47, - 0x75, - 0xA8, - 0x00, - 0x04, - 0x99, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3C, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x47, - 0x05, - 0x03, - 0x00, - 0x03, - 0x47, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0xD4, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x04, - 0xD5, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x47, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x05, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x3E, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x29, - 0x01, - 0x95, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x32, - 0x02, - 0xB0, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x47, - 0x75, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x74, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x99, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x06, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0xCB, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x75, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x01, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x47, - 0x01, - 0x5E, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x71, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xD4, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x44, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x1E, - 0x05, - 0x03, - 0x01, - 0x92, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0A, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x99, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x3E, - 0x75, - 0x02, - 0x3E, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x99, - 0xDE, - 0x75, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x12, - 0x32, - 0xC9, - 0x80, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x61, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x07, - 0x47, - 0x1F, - 0x03, - 0xDE, - 0x02, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0xC1, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xDE, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCE, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x3C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x74, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x3D, - 0x80, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xDE, - 0x02, - 0x02, - 0x75, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0xB0, - 0xA8, - 0x3D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x9A, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0xE1, - 0x01, - 0xC9, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xCC, - 0x01, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x80, - 0x0B, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDD, - 0x0B, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x07, - 0x02, - 0x01, - 0xCB, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x9A, - 0x0A, - 0x03, - 0x01, - 0x3D, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0C, - 0x2D, - 0x02, - 0x01, - 0xC4, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x2B, - 0x02, - 0x01, - 0x43, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x29, - 0x02, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xB7, - 0x01, - 0x10, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x25, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x70, - 0x01, - 0x12, - 0x22, - 0x02, - 0x00, - 0x03, - 0x10, - 0xC1, - 0x98, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x61, - 0x21, - 0x02, - 0x01, - 0xA0, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x3C, - 0x30, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x6F, - 0x17, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x50, - 0x56, - 0x8A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0xDA, - 0x12, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6B, - 0x70, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x50, - 0x74, - 0x9D, - 0x10, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x71, - 0x9F, - 0x98, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x0E, - 0x17, - 0xD6, - 0xBD, - 0x5A, - 0x56, - 0xC6, - 0x0A, - 0x10, - 0x7F, - 0x0D, - 0x09, - 0x96, - 0x95, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x50, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0xC7, - 0xD2, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xE4, - 0xA7, - 0xDC, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xBD, - 0x71, - 0x00, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x98, - 0x90, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x4F, - 0x20, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x1D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x90, - 0xDC, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDA, - 0x01, - 0xD2, - 0x20, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0xD2, - 0x00, - 0x22, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0xD2, - 0x00, - 0x24, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x95, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x27, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x96, - 0xD2, - 0x00, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9E, - 0x2C, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x2E, - 0x02, - 0x01, - 0xC4, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9D, - 0x30, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x06, - 0x02, - 0x00, - 0x10, - 0x32, - 0x47, - 0x99, - 0x99, - 0x99, - 0xDE, - 0xB0, - 0x75, - 0x32, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xB0, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x10, - 0xD7, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0xEA, - 0x00, - 0x0A, - 0x92, - 0x02, - 0x32, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x99, - 0xEA, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xCB, - 0x3E, - 0x32, - 0xDD, - 0x00, - 0x04, - 0xEA, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x75, - 0x47, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xA8, - 0x02, - 0x32, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x70, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x16, - 0x47, - 0x80, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x92, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xEA, - 0x99, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x00, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x20, - 0x92, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x4D, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xE9, - 0xA8, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0x6B, - 0x00, - 0x08, - 0x02, - 0x00, - 0x15, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xB0, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x47, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0x75, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xA0, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x07, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8C, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x56, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0A, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x83, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0x99, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x7E, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x70, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xA8, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x10, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x75, - 0x92, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xCB, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3D, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x50, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0x75, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x75, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0xDE, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x32, - 0x92, - 0x80, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x47, - 0x5E, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x30, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x32, - 0x92, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x90, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0xDA, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x09, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x16, - 0xEA, - 0xD7, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x10, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x70, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0xD4, - 0xA8, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x71, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x44, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x90, - 0x00, - 0x08, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xD7, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0x6F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x80, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x05, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x07, - 0x02, - 0x00, - 0x10, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x07, - 0x02, - 0x00, - 0x06, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x20, - 0x01, - 0x95, - 0x08, - 0x02, - 0x00, - 0x0E, - 0xCB, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x07, - 0x02, - 0x00, - 0x06, - 0x75, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x04, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xDA, - 0x31, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x56, - 0x30, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2E, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x2D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0xA0, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDF, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x90, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x44, - 0x26, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9E, - 0x24, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x22, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xBD, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x18, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x6F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x6C, - 0x5A, - 0x30, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x43, - 0x1B, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xA0, - 0x7E, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x12, - 0x8C, - 0x83, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x1B, - 0x3B, - 0xBD, - 0x5A, - 0x56, - 0x12, - 0x0A, - 0x02, - 0x10, - 0x7E, - 0x71, - 0x6B, - 0x8C, - 0xDA, - 0x83, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAA, - 0x0C, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x17, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x95, - 0x94, - 0x0A, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x04, - 0x30, - 0x5A, - 0x6F, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0x4C, - 0x29, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0xDC, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0x8D, - 0xA0, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x9D, - 0xDF, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x59, - 0x8C, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x15, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x12, - 0xA7, - 0x1B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x24, - 0x1B, - 0x95, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x6B, - 0x3B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x04, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x7F, - 0x4F, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x83, - 0x4C, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x8A, - 0x3C, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x9E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x15, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0xA0, - 0x59, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6F, - 0x7C, - 0x02, - 0x02, - 0x29, - 0x08, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x71, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x0C, - 0x83, - 0x7E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x16, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x94, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x74, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x56, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x14, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x10, - 0x95, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x74, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x21, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x29, - 0x60, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x13, - 0x6F, - 0x8A, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x12, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x9E, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x09, - 0x95, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x03, - 0x3D, - 0x75, - 0xD4, - 0x00, - 0x05, - 0x99, - 0x01, - 0x47, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xA8, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x3E, - 0xB0, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0x32, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x59, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x10, - 0x32, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x09, - 0xCB, - 0x75, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x3E, - 0x32, - 0x92, - 0x05, - 0x03, - 0x01, - 0x3D, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x90, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x1A, - 0x43, - 0x29, - 0x29, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x99, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD4, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x05, - 0x03, - 0x00, - 0x17, - 0xCB, - 0x4D, - 0x02, - 0x10, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x99, - 0x4D, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCE, - 0xD4, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3E, - 0x02, - 0xA8, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x7F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x08, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x16, - 0x3D, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1E, - 0xB0, - 0x3E, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x18, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xCB, - 0xDD, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x29, - 0x9D, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x05, - 0x90, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0xA8, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x70, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x1B, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x1A, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xDE, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0xDC, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0x03, - 0xCB, - 0x3E, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x6C, - 0x02, - 0x29, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x19, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xDD, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x7E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x32, - 0x92, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0xB6, - 0xD7, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x83, - 0x02, - 0x10, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0x10, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x3E, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x1E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x06, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x59, - 0x0A, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xB6, - 0x32, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x21, - 0x05, - 0xDC, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xEA, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x1E, - 0x47, - 0x75, - 0x02, - 0xA8, - 0xD5, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0x3D, - 0x9A, - 0x03, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x30, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0C, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xB7, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0x92, - 0xA8, - 0xA8, - 0xA8, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x10, - 0x02, - 0x75, - 0xDE, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x47, - 0xA8, - 0xA8, - 0xB0, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x07, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x10, - 0x10, - 0x47, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x83, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0xDE, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x12, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x61, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0x0C, - 0x00, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x47, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xB6, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB0, - 0xD5, - 0x00, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x32, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0F, - 0x3B, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x08, - 0x02, - 0x00, - 0x1C, - 0x75, - 0x99, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x4D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xB0, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x0F, - 0x47, - 0xD7, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x07, - 0x99, - 0xA8, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x08, - 0x83, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x0C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8B, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x10, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x06, - 0x17, - 0x4F, - 0x10, - 0x29, - 0x02, - 0x10, - 0x08, - 0x02, - 0x00, - 0x18, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0xC6, - 0x6C, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x96, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x59, - 0x6B, - 0x02, - 0x29, - 0x09, - 0x02, - 0x00, - 0x17, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x0B, - 0xDC, - 0xC1, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4F, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x95, - 0x0A, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x10, - 0x02, - 0x61, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9E, - 0x06, - 0x02, - 0x00, - 0x1D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0xC1, - 0x6C, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x06, - 0x59, - 0x3C, - 0x30, - 0x29, - 0x02, - 0x29, - 0x11, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x04, - 0x29, - 0x12, - 0x6F, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1F, - 0x8D, - 0x8B, - 0x7C, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9E, - 0x95, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x83, - 0xC1, - 0x30, - 0x00, - 0x10, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x9E, - 0x43, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x1B, - 0x60, - 0x90, - 0x9D, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x71, - 0x43, - 0x83, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x17, - 0x70, - 0xDF, - 0x74, - 0xC1, - 0x85, - 0x9D, - 0x02, - 0x10, - 0x7C, - 0x9E, - 0x4C, - 0xA0, - 0x3C, - 0x4F, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x06, - 0x10, - 0x00, - 0x00, - 0x00, - 0x02, - 0x2B, - 0x01, - 0x00, - 0x14, - 0x04, - 0x98, - 0x83, - 0x78, - 0xC2, - 0x93, - 0x6D, - 0x6D, - 0xE3, - 0x42, - 0x42, - 0xE3, - 0x6D, - 0x6D, - 0x93, - 0xC2, - 0xAB, - 0x83, - 0x98, - 0x04, - 0x00, - 0x00, - 0x00, - 0x02, - 0x26, - 0x00, - 0x00, - 0x07, - 0x07, - 0xBE, - 0x5F, - 0x42, - 0x0F, - 0xD9, - 0x64, - 0x00, - 0x05, - 0x29, - 0x07, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x29, - 0x64, - 0x64, - 0x64, - 0xD9, - 0x0F, - 0xBD, - 0xB8, - 0xE2, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x22, - 0x00, - 0x00, - 0x10, - 0x04, - 0x78, - 0xAA, - 0x0F, - 0x12, - 0x02, - 0x0A, - 0x29, - 0x29, - 0xC6, - 0xD9, - 0x0F, - 0x5B, - 0xBD, - 0xDA, - 0xB8, - 0x06, - 0x5F, - 0x00, - 0x10, - 0xB8, - 0xDA, - 0xDA, - 0x84, - 0x0F, - 0x0F, - 0x12, - 0x64, - 0x29, - 0x0A, - 0x29, - 0x64, - 0x0F, - 0xAA, - 0xAB, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1F, - 0x00, - 0x00, - 0x0D, - 0x98, - 0x5F, - 0x4E, - 0x30, - 0x29, - 0x29, - 0x30, - 0xCF, - 0x4E, - 0x76, - 0xAB, - 0x6A, - 0x1B, - 0x00, - 0x12, - 0x00, - 0x00, - 0x0D, - 0x1B, - 0x6A, - 0x70, - 0x93, - 0x4E, - 0xCF, - 0x30, - 0x64, - 0x30, - 0x64, - 0x4E, - 0x11, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x00, - 0x00, - 0x0B, - 0x20, - 0x2A, - 0xA5, - 0x0A, - 0x29, - 0x02, - 0x7C, - 0x4E, - 0x11, - 0x06, - 0x17, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x6C, - 0x11, - 0x84, - 0xCF, - 0x0A, - 0x64, - 0x7F, - 0x4E, - 0x11, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x09, - 0x06, - 0x76, - 0x85, - 0x29, - 0x02, - 0x85, - 0xE3, - 0xAB, - 0x04, - 0x00, - 0x24, - 0x00, - 0x00, - 0x09, - 0x04, - 0xD6, - 0xE3, - 0x85, - 0x29, - 0x64, - 0xD9, - 0x6D, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x18, - 0x00, - 0x00, - 0x08, - 0x01, - 0x84, - 0x30, - 0x29, - 0x30, - 0x4E, - 0x78, - 0x17, - 0x2A, - 0x00, - 0x00, - 0x08, - 0x17, - 0x5F, - 0x4E, - 0x64, - 0x29, - 0x64, - 0xE3, - 0x06, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x01, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x06, - 0xBD, - 0x0A, - 0x64, - 0x49, - 0xBD, - 0x98, - 0x00, - 0x28, - 0x00, - 0x01, - 0x05, - 0x07, - 0x00, - 0x00, - 0x07, - 0x06, - 0x6D, - 0xD9, - 0x29, - 0x30, - 0xE3, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x7F, - 0x29, - 0x12, - 0x8E, - 0x04, - 0x00, - 0x34, - 0x00, - 0x00, - 0x07, - 0x04, - 0x93, - 0xC6, - 0x29, - 0x64, - 0x6D, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x00, - 0x00, - 0x0A, - 0x78, - 0x0F, - 0x29, - 0x0A, - 0x76, - 0x04, - 0x00, - 0x00, - 0x05, - 0x05, - 0x31, - 0x00, - 0x00, - 0x09, - 0x17, - 0x00, - 0x00, - 0x0B, - 0x93, - 0x12, - 0x29, - 0xD9, - 0x78, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x06, - 0x07, - 0x4E, - 0x29, - 0x29, - 0x4E, - 0x06, - 0x37, - 0x00, - 0x01, - 0x05, - 0x04, - 0x00, - 0x00, - 0x06, - 0x2F, - 0x84, - 0x29, - 0x30, - 0x7D, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x05, - 0xBE, - 0x49, - 0x29, - 0xCF, - 0x5F, - 0x00, - 0x3D, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x2A, - 0x0C, - 0x29, - 0xD9, - 0xE2, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0xA7, - 0x64, - 0x29, - 0xE3, - 0x04, - 0x23, - 0x00, - 0x01, - 0x05, - 0x01, - 0x05, - 0x1D, - 0x00, - 0x00, - 0x05, - 0x04, - 0xAA, - 0x29, - 0x64, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x08, - 0x05, - 0x17, - 0x00, - 0x00, - 0x42, - 0x64, - 0x64, - 0xC2, - 0x46, - 0x00, - 0x00, - 0x09, - 0x11, - 0x30, - 0x29, - 0x6D, - 0x05, - 0x00, - 0x05, - 0x17, - 0x05, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x05, - 0x04, - 0xE2, - 0x5F, - 0x84, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x00, - 0x05, - 0x17, - 0x4E, - 0x64, - 0x12, - 0x50, - 0x00, - 0x48, - 0x00, - 0x00, - 0x07, - 0xE7, - 0x7C, - 0x29, - 0x4E, - 0x04, - 0x00, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x84, - 0x12, - 0x02, - 0x29, - 0x64, - 0x84, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x00, - 0x05, - 0x04, - 0x4E, - 0x71, - 0xD9, - 0x06, - 0x00, - 0x29, - 0x00, - 0x00, - 0x03, - 0xD6, - 0xC2, - 0x06, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x05, - 0x08, - 0xE8, - 0x29, - 0xA5, - 0x04, - 0x00, - 0x08, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x6D, - 0x12, - 0x02, - 0x0F, - 0xC8, - 0xBE, - 0x59, - 0x05, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x4E, - 0x64, - 0x0F, - 0x07, - 0x29, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x44, - 0x29, - 0x49, - 0x98, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x0F, - 0x29, - 0x74, - 0x17, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0x04, - 0x84, - 0x29, - 0x09, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x84, - 0x64, - 0xD9, - 0x07, - 0x29, - 0x00, - 0x00, - 0x06, - 0x17, - 0x71, - 0x29, - 0x02, - 0x29, - 0xA5, - 0x1F, - 0x00, - 0x00, - 0x05, - 0x04, - 0x0F, - 0x29, - 0x3F, - 0x17, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x84, - 0x29, - 0xAA, - 0x00, - 0x0F, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x64, - 0xD9, - 0x07, - 0x2A, - 0x00, - 0x00, - 0x07, - 0x17, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x64, - 0xE7, - 0x00, - 0x1F, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xD9, - 0x29, - 0xE3, - 0x04, - 0x00, - 0x00, - 0x03, - 0x2A, - 0x29, - 0x4E, - 0x00, - 0x14, - 0x00, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x04, - 0x78, - 0x64, - 0x64, - 0xE7, - 0x2C, - 0x00, - 0x01, - 0x5F, - 0x04, - 0x29, - 0x00, - 0x03, - 0x4E, - 0x05, - 0x05, - 0x00, - 0x17, - 0x00, - 0x01, - 0x05, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x01, - 0xD9, - 0x29, - 0x02, - 0xD9, - 0x84, - 0xB8, - 0x98, - 0x4E, - 0x0A, - 0x2F, - 0x00, - 0x13, - 0x00, - 0x01, - 0xE3, - 0x01, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x04, - 0x37, - 0xCF, - 0x64, - 0xE7, - 0x23, - 0x00, - 0x00, - 0x05, - 0x17, - 0xE3, - 0xD9, - 0x4E, - 0x0B, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x4E, - 0x29, - 0x02, - 0x02, - 0x64, - 0xE7, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x0C, - 0x98, - 0x84, - 0x29, - 0x29, - 0xCF, - 0xB4, - 0x12, - 0x02, - 0x29, - 0x0A, - 0x30, - 0x0F, - 0x11, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0xC3, - 0x64, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x04, - 0x05, - 0x4E, - 0x64, - 0x6D, - 0x24, - 0x00, - 0x00, - 0x05, - 0x93, - 0x29, - 0x29, - 0x29, - 0xD9, - 0x00, - 0x06, - 0x00, - 0x00, - 0x07, - 0x2A, - 0x44, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x05, - 0x00, - 0x1A, - 0x00, - 0x00, - 0x0D, - 0x8E, - 0x12, - 0x29, - 0x49, - 0x8E, - 0x06, - 0x00, - 0x00, - 0xBE, - 0xB7, - 0xD9, - 0x29, - 0xC2, - 0x00, - 0x11, - 0x00, - 0x00, - 0x05, - 0x05, - 0xB2, - 0x64, - 0xB4, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x04, - 0xC2, - 0x64, - 0x0F, - 0x17, - 0x24, - 0x00, - 0x00, - 0x06, - 0x42, - 0x02, - 0x02, - 0x02, - 0x29, - 0x11, - 0x06, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x30, - 0x2A, - 0x18, - 0x00, - 0x00, - 0x06, - 0xBE, - 0xD9, - 0x29, - 0x12, - 0x11, - 0x04, - 0x06, - 0x00, - 0x00, - 0x03, - 0x84, - 0x0A, - 0x2F, - 0x00, - 0x11, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD9, - 0x30, - 0x06, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x04, - 0x07, - 0xC6, - 0x64, - 0x01, - 0x25, - 0x00, - 0x00, - 0x07, - 0x78, - 0x29, - 0x02, - 0x02, - 0x29, - 0xC6, - 0x0B, - 0x00, - 0x05, - 0x00, - 0x01, - 0x11, - 0x04, - 0x29, - 0x01, - 0x84, - 0x17, - 0x00, - 0x00, - 0x05, - 0x93, - 0x64, - 0x29, - 0x4E, - 0x06, - 0x00, - 0x07, - 0x00, - 0x00, - 0x03, - 0x17, - 0x7F, - 0x4E, - 0x00, - 0x12, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x29, - 0x11, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x64, - 0xE3, - 0x00, - 0x1D, - 0x00, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x08, - 0x00, - 0x00, - 0x06, - 0x4E, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x07, - 0x04, - 0x0F, - 0x29, - 0x29, - 0x29, - 0x49, - 0x04, - 0x00, - 0x15, - 0x00, - 0x00, - 0x04, - 0xBE, - 0x30, - 0x12, - 0x60, - 0x04, - 0x00, - 0x00, - 0x08, - 0x06, - 0x93, - 0x74, - 0x74, - 0x78, - 0xC3, - 0x29, - 0x5F, - 0x11, - 0x00, - 0x00, - 0x03, - 0xAB, - 0x64, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xCF, - 0xCF, - 0x07, - 0x1C, - 0x00, - 0x00, - 0x05, - 0xE2, - 0xD9, - 0x49, - 0x6D, - 0x05, - 0x00, - 0x06, - 0x00, - 0x00, - 0x07, - 0x01, - 0x30, - 0x02, - 0x02, - 0x29, - 0xCF, - 0xDC, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x8E, - 0x29, - 0x29, - 0x29, - 0x02, - 0x11, - 0x15, - 0x00, - 0x00, - 0x10, - 0x4E, - 0x29, - 0x11, - 0x00, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x12, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x10, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x49, - 0x71, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x64, - 0xC3, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x06, - 0x0B, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xE3, - 0x07, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x93, - 0x05, - 0x00, - 0x00, - 0x06, - 0x07, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x15, - 0x00, - 0x00, - 0x0F, - 0xD9, - 0x29, - 0xC2, - 0x00, - 0x05, - 0xB8, - 0xCF, - 0x29, - 0xCF, - 0x6D, - 0xE2, - 0x11, - 0x44, - 0x29, - 0xE3, - 0x00, - 0x0F, - 0x00, - 0x00, - 0x05, - 0x17, - 0x00, - 0x6D, - 0x29, - 0x93, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x85, - 0x44, - 0x06, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x07, - 0x0E, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x30, - 0x11, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0x06, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x09, - 0x06, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x14, - 0x00, - 0x00, - 0x0F, - 0x5F, - 0x30, - 0x30, - 0x5B, - 0x0F, - 0x29, - 0x0A, - 0xE3, - 0x2F, - 0x00, - 0x00, - 0x06, - 0x44, - 0x30, - 0x06, - 0x00, - 0x10, - 0x00, - 0x00, - 0x03, - 0xE2, - 0x29, - 0x0F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x11, - 0x64, - 0x84, - 0x1D, - 0x00, - 0x00, - 0x08, - 0x05, - 0x84, - 0x29, - 0x02, - 0x02, - 0x02, - 0x12, - 0x07, - 0x04, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x84, - 0x29, - 0x02, - 0x02, - 0x30, - 0xAB, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x2A, - 0x13, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0xB8, - 0x02, - 0x29, - 0x29, - 0x4E, - 0x06, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x49, - 0x29, - 0x11, - 0x00, - 0x11, - 0x00, - 0x00, - 0x03, - 0x0F, - 0x64, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x29, - 0x2A, - 0x15, - 0x00, - 0x00, - 0x04, - 0x07, - 0x5B, - 0x0F, - 0xAA, - 0x05, - 0x00, - 0x00, - 0x07, - 0x0B, - 0x09, - 0x29, - 0x02, - 0x02, - 0x29, - 0x84, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0x50, - 0x30, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x30, - 0x29, - 0x02, - 0x02, - 0x6D, - 0x14, - 0x00, - 0x00, - 0x0D, - 0x04, - 0x84, - 0x29, - 0xCF, - 0x11, - 0x00, - 0x00, - 0x05, - 0x00, - 0x8D, - 0x0C, - 0x7F, - 0x8E, - 0x00, - 0x11, - 0x00, - 0x00, - 0x03, - 0x11, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x04, - 0xCF, - 0x64, - 0x0B, - 0x00, - 0x05, - 0x13, - 0x00, - 0x00, - 0x05, - 0xC3, - 0x29, - 0x29, - 0x29, - 0xE3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x06, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x37, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x04, - 0xD9, - 0x29, - 0x02, - 0x29, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x12, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x5B, - 0x29, - 0x0C, - 0x98, - 0x04, - 0x00, - 0x00, - 0x04, - 0x78, - 0x12, - 0x64, - 0x78, - 0x11, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xC6, - 0xD9, - 0x04, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0xE2, - 0x64, - 0x4E, - 0x00, - 0x16, - 0x00, - 0x00, - 0x06, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x64, - 0x78, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x06, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x29, - 0x02, - 0x29, - 0x7F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x84, - 0x29, - 0x02, - 0x29, - 0x7C, - 0x17, - 0x12, - 0x00, - 0x00, - 0x04, - 0xE7, - 0x29, - 0xE8, - 0x59, - 0x04, - 0x00, - 0x00, - 0x04, - 0xC2, - 0x29, - 0x71, - 0x2A, - 0x12, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x29, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0xC8, - 0x64, - 0xC3, - 0x00, - 0x16, - 0x00, - 0x00, - 0x07, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x02, - 0xCF, - 0x0B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x07, - 0x0B, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x49, - 0x04, - 0x00, - 0x05, - 0x00, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xB7, - 0x05, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x29, - 0x02, - 0x29, - 0xCF, - 0x06, - 0x10, - 0x00, - 0x00, - 0x0D, - 0x17, - 0x00, - 0xD9, - 0x29, - 0x2A, - 0x00, - 0x05, - 0x00, - 0x00, - 0x8E, - 0x29, - 0xD9, - 0x31, - 0x00, - 0x12, - 0x00, - 0x00, - 0x03, - 0x01, - 0x64, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x5B, - 0x30, - 0xBE, - 0x00, - 0x16, - 0x00, - 0x00, - 0x07, - 0x0B, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x00, - 0x05, - 0x00, - 0x01, - 0x93, - 0x04, - 0x02, - 0x01, - 0x11, - 0x05, - 0x00, - 0x00, - 0x06, - 0x98, - 0x44, - 0x02, - 0x02, - 0x29, - 0xAA, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC2, - 0x29, - 0x02, - 0x02, - 0x0A, - 0x50, - 0x11, - 0x00, - 0x00, - 0x0D, - 0x04, - 0x7C, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDF, - 0x29, - 0x4E, - 0x07, - 0x00, - 0x05, - 0x00, - 0x10, - 0x00, - 0x00, - 0x04, - 0x17, - 0x0F, - 0x64, - 0x01, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x5A, - 0x0A, - 0x06, - 0x00, - 0x17, - 0x00, - 0x00, - 0x07, - 0x01, - 0x12, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x06, - 0x06, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x44, - 0x02, - 0x02, - 0x29, - 0xB8, - 0x12, - 0x00, - 0x00, - 0x0C, - 0xD9, - 0x29, - 0x11, - 0x00, - 0x06, - 0x4E, - 0x29, - 0x4E, - 0x17, - 0x00, - 0x00, - 0x05, - 0x10, - 0x00, - 0x00, - 0x03, - 0x78, - 0x29, - 0x6D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x71, - 0xCF, - 0x17, - 0x00, - 0x16, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x2A, - 0x04, - 0x00, - 0x00, - 0x06, - 0x05, - 0x0F, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x05, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x98, - 0xC6, - 0x02, - 0x02, - 0x29, - 0xC3, - 0x10, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x98, - 0x84, - 0x29, - 0x30, - 0xD9, - 0x0A, - 0x29, - 0xC3, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x03, - 0xDC, - 0x5F, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x04, - 0x12, - 0xD9, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xD9, - 0x71, - 0x19, - 0x00, - 0x00, - 0x06, - 0xE2, - 0x44, - 0x02, - 0x02, - 0x29, - 0x6D, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAA, - 0x29, - 0x02, - 0x02, - 0xD9, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAA, - 0x29, - 0x02, - 0x02, - 0x09, - 0x17, - 0x04, - 0x00, - 0x00, - 0x06, - 0xDC, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x0D, - 0x17, - 0x59, - 0xAB, - 0x76, - 0x5A, - 0xD9, - 0x64, - 0x29, - 0x02, - 0x02, - 0x29, - 0x30, - 0xB8, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x03, - 0x60, - 0xC6, - 0x64, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x29, - 0xE7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xCF, - 0x71, - 0x19, - 0x00, - 0x00, - 0x06, - 0x0B, - 0xCF, - 0x29, - 0x02, - 0x02, - 0x6D, - 0x05, - 0x00, - 0x00, - 0x06, - 0x93, - 0x29, - 0x02, - 0x02, - 0x64, - 0x98, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDF, - 0x02, - 0x02, - 0x02, - 0x12, - 0x20, - 0x04, - 0x00, - 0x00, - 0x06, - 0x04, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x07, - 0x00, - 0x00, - 0x12, - 0x04, - 0xBE, - 0x4F, - 0x84, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x02, - 0xC6, - 0x0F, - 0x84, - 0x02, - 0x29, - 0xC6, - 0xAB, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA5, - 0x29, - 0x49, - 0xE7, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x7F, - 0x0F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xCF, - 0x71, - 0x19, - 0x00, - 0x00, - 0x06, - 0x17, - 0xCF, - 0x29, - 0x02, - 0x02, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x30, - 0x98, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x12, - 0x1B, - 0x04, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x00, - 0x11, - 0x93, - 0x0F, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x7C, - 0x0F, - 0x76, - 0xE2, - 0x08, - 0x0B, - 0x00, - 0xC8, - 0x29, - 0xCF, - 0x2A, - 0x00, - 0x08, - 0x00, - 0x00, - 0x08, - 0x17, - 0x00, - 0x00, - 0xC2, - 0xC6, - 0x29, - 0xE3, - 0x04, - 0x06, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x64, - 0x86, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xCF, - 0xC6, - 0x19, - 0x00, - 0x00, - 0x06, - 0x0B, - 0xCF, - 0x29, - 0x02, - 0x02, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x8E, - 0x29, - 0x02, - 0x02, - 0x64, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x12, - 0x20, - 0x04, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x09, - 0x02, - 0x84, - 0x93, - 0xD6, - 0x6C, - 0x06, - 0x00, - 0x00, - 0x07, - 0xE3, - 0x29, - 0x5A, - 0x07, - 0x00, - 0x00, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0xE2, - 0x0F, - 0x29, - 0x0F, - 0xBE, - 0x07, - 0x00, - 0x00, - 0x03, - 0x08, - 0x44, - 0x84, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x7F, - 0x0B, - 0x00, - 0x18, - 0x00, - 0x00, - 0x06, - 0xD6, - 0x30, - 0x02, - 0x02, - 0x29, - 0xC2, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAA, - 0x29, - 0x02, - 0x02, - 0xC6, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x0C, - 0x20, - 0x04, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x01, - 0x4E, - 0x01, - 0x7C, - 0x08, - 0x00, - 0x00, - 0x05, - 0x07, - 0x0F, - 0x29, - 0x84, - 0x17, - 0x00, - 0x07, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x04, - 0x42, - 0x29, - 0x64, - 0x93, - 0x00, - 0x09, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x64, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x5A, - 0x7F, - 0x06, - 0x00, - 0x17, - 0x00, - 0x00, - 0x07, - 0x17, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x30, - 0x86, - 0x00, - 0x04, - 0x00, - 0x00, - 0x06, - 0x05, - 0x0F, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x09, - 0x05, - 0x04, - 0x00, - 0x00, - 0x06, - 0xDC, - 0xCF, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x00, - 0x03, - 0xC3, - 0x29, - 0x70, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xD9, - 0x29, - 0x84, - 0x07, - 0x00, - 0x00, - 0x08, - 0x17, - 0x00, - 0x00, - 0x78, - 0x0D, - 0x64, - 0x0F, - 0x06, - 0x09, - 0x00, - 0x00, - 0x03, - 0xE7, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x74, - 0x0A, - 0xBE, - 0x00, - 0x17, - 0x00, - 0x00, - 0x07, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x0F, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x0A, - 0x02, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0x6C, - 0x30, - 0x02, - 0x02, - 0x29, - 0xC8, - 0x05, - 0x00, - 0x00, - 0x03, - 0x78, - 0x64, - 0x6D, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x29, - 0xC3, - 0x00, - 0x09, - 0x00, - 0x00, - 0x06, - 0x06, - 0x84, - 0x64, - 0xD9, - 0x78, - 0x05, - 0x09, - 0x00, - 0x00, - 0x04, - 0x17, - 0xD9, - 0x12, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x6D, - 0x64, - 0x11, - 0x00, - 0x16, - 0x00, - 0x00, - 0x07, - 0x11, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x2A, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x02, - 0x78, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDC, - 0x64, - 0x02, - 0x02, - 0x29, - 0xAA, - 0x05, - 0x00, - 0x00, - 0x06, - 0x50, - 0x29, - 0x02, - 0x02, - 0x29, - 0x11, - 0x05, - 0x00, - 0x00, - 0x03, - 0x07, - 0x7F, - 0x84, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x05, - 0x7C, - 0x49, - 0x00, - 0x09, - 0x00, - 0x00, - 0x08, - 0x11, - 0x71, - 0x29, - 0x29, - 0xBE, - 0x00, - 0x05, - 0x05, - 0x08, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x29, - 0x93, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x78, - 0x64, - 0x84, - 0x00, - 0x16, - 0x00, - 0x00, - 0x12, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x29, - 0x84, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0xBE, - 0x0A, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x05, - 0x00, - 0x00, - 0x06, - 0xB2, - 0x29, - 0x02, - 0x02, - 0x29, - 0x8E, - 0x05, - 0x00, - 0x00, - 0x06, - 0x11, - 0x29, - 0x02, - 0x02, - 0x64, - 0x19, - 0x06, - 0x00, - 0x01, - 0xD9, - 0x01, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x03, - 0x0B, - 0x7F, - 0x84, - 0x00, - 0x07, - 0x00, - 0x00, - 0x07, - 0xD6, - 0x0F, - 0x29, - 0x0F, - 0xAA, - 0x02, - 0x93, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x06, - 0x64, - 0x71, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0xDC, - 0x0A, - 0x49, - 0x17, - 0x15, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x0F, - 0x04, - 0x04, - 0x00, - 0x00, - 0x07, - 0x05, - 0x09, - 0x29, - 0x02, - 0x02, - 0x29, - 0x93, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x29, - 0x7F, - 0xBE, - 0x05, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x29, - 0xCF, - 0x07, - 0x06, - 0x00, - 0x00, - 0x03, - 0x74, - 0x7F, - 0x0B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0x04, - 0x7C, - 0x4E, - 0x00, - 0x05, - 0x00, - 0x00, - 0x09, - 0x0B, - 0x84, - 0x30, - 0x44, - 0xE3, - 0x00, - 0x04, - 0x0A, - 0x84, - 0x00, - 0x09, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xC6, - 0xC6, - 0x06, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x29, - 0xE2, - 0x15, - 0x00, - 0x00, - 0x05, - 0xBE, - 0xD9, - 0xC6, - 0x0F, - 0x04, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x84, - 0x29, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x04, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x05, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x00, - 0x07, - 0x00, - 0x00, - 0x24, - 0x6D, - 0x02, - 0xBE, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0F, - 0x64, - 0xAB, - 0x00, - 0x00, - 0x04, - 0x93, - 0xC6, - 0x29, - 0x4E, - 0x06, - 0x00, - 0x00, - 0x17, - 0x71, - 0xCA, - 0x2F, - 0xDC, - 0x07, - 0x07, - 0xDC, - 0x98, - 0x06, - 0xAB, - 0xE3, - 0x64, - 0x7F, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x93, - 0x64, - 0xE3, - 0x17, - 0x00, - 0x00, - 0x0E, - 0xDC, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6D, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0xC2, - 0x06, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x06, - 0x7F, - 0x29, - 0x02, - 0x29, - 0xE3, - 0x07, - 0x00, - 0x00, - 0x11, - 0xE7, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x07, - 0x85, - 0x30, - 0xD9, - 0x4E, - 0xCF, - 0x64, - 0xD9, - 0x60, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x4E, - 0x29, - 0x30, - 0x0A, - 0x7F, - 0xCF, - 0xCF, - 0x0A, - 0x44, - 0x64, - 0x7F, - 0x4E, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x05, - 0x00, - 0x06, - 0x12, - 0xC6, - 0x07, - 0x00, - 0x15, - 0x00, - 0x01, - 0x05, - 0x06, - 0x00, - 0x00, - 0x14, - 0x0E, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x17, - 0x00, - 0x4E, - 0x29, - 0x02, - 0x02, - 0x44, - 0xB2, - 0x05, - 0x00, - 0x00, - 0x06, - 0xB8, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE7, - 0x07, - 0x00, - 0x00, - 0x21, - 0x06, - 0x30, - 0x84, - 0x00, - 0x05, - 0x00, - 0x00, - 0x17, - 0x00, - 0x07, - 0x93, - 0x4E, - 0x0F, - 0x4E, - 0x93, - 0x17, - 0x00, - 0x00, - 0x00, - 0x17, - 0x17, - 0x00, - 0xC3, - 0x29, - 0xD9, - 0xAA, - 0x4E, - 0x29, - 0x64, - 0x4E, - 0xAA, - 0xB7, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x64, - 0xE7, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x07, - 0x2F, - 0x0A, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x05, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x44, - 0x02, - 0x02, - 0x29, - 0x0F, - 0x06, - 0x00, - 0x00, - 0x06, - 0x4E, - 0x29, - 0x02, - 0x02, - 0xD9, - 0x07, - 0x08, - 0x00, - 0x01, - 0xD9, - 0x01, - 0x0F, - 0x10, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x05, - 0x00, - 0xE7, - 0x29, - 0xC3, - 0x00, - 0xAB, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x04, - 0x06, - 0x12, - 0x0F, - 0x17, - 0x1C, - 0x00, - 0x00, - 0x05, - 0x93, - 0x44, - 0x29, - 0x0F, - 0x07, - 0x00, - 0x07, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x78, - 0x05, - 0x00, - 0x00, - 0x06, - 0x06, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x0F, - 0x09, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x0D, - 0x04, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x05, - 0x07, - 0x00, - 0x00, - 0x07, - 0xBE, - 0x7F, - 0x4E, - 0x05, - 0x85, - 0x44, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x64, - 0xE7, - 0x00, - 0x1D, - 0x00, - 0x00, - 0x03, - 0x06, - 0xD6, - 0x05, - 0x00, - 0x07, - 0x00, - 0x00, - 0x07, - 0x11, - 0x02, - 0x02, - 0x02, - 0x29, - 0x0F, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x11, - 0x09, - 0x00, - 0x00, - 0x03, - 0xDF, - 0x30, - 0x86, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x0C, - 0x04, - 0x83, - 0xAB, - 0xC8, - 0xB4, - 0xC6, - 0x0A, - 0x29, - 0xCF, - 0xD9, - 0x29, - 0x0F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x12, - 0xCF, - 0x07, - 0x25, - 0x00, - 0x00, - 0x07, - 0x06, - 0x85, - 0x02, - 0x02, - 0x02, - 0x44, - 0xE2, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x07, - 0xCF, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x0B, - 0x00, - 0x09, - 0x00, - 0x00, - 0x03, - 0x78, - 0x02, - 0x11, - 0x00, - 0x07, - 0x00, - 0x00, - 0x11, - 0x20, - 0x06, - 0x2A, - 0xB8, - 0x5B, - 0xD9, - 0x29, - 0x02, - 0x7F, - 0x30, - 0x0C, - 0x84, - 0xB8, - 0x06, - 0xCF, - 0x44, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x84, - 0x29, - 0x42, - 0x00, - 0x25, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x02, - 0x02, - 0x02, - 0x29, - 0x84, - 0x06, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x84, - 0x0A, - 0x00, - 0x00, - 0x1A, - 0x37, - 0x30, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x06, - 0x60, - 0xDF, - 0x4E, - 0x12, - 0x30, - 0x7F, - 0x12, - 0x85, - 0x0F, - 0x84, - 0xB7, - 0x37, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x84, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x0C, - 0x29, - 0x2A, - 0x24, - 0x00, - 0x00, - 0x06, - 0x93, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x07, - 0x2F, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x0D, - 0x06, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x0F, - 0x17, - 0x49, - 0x7C, - 0xC3, - 0x09, - 0xCF, - 0x7F, - 0x30, - 0x30, - 0xCF, - 0xD9, - 0x42, - 0x11, - 0x06, - 0x20, - 0x00, - 0x07, - 0x00, - 0x00, - 0x04, - 0x5F, - 0x29, - 0xCF, - 0x07, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0xAB, - 0x44, - 0xD9, - 0x06, - 0x00, - 0x05, - 0x21, - 0x00, - 0x00, - 0x05, - 0x07, - 0x5B, - 0xC6, - 0x0F, - 0xD6, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0x84, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x0C, - 0x00, - 0x00, - 0x09, - 0x4E, - 0x64, - 0x0A, - 0x0D, - 0x5A, - 0xE3, - 0x78, - 0x6C, - 0x17, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x31, - 0x30, - 0x64, - 0x78, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x6D, - 0x29, - 0x0F, - 0x04, - 0x24, - 0x00, - 0x01, - 0x06, - 0x01, - 0x05, - 0x06, - 0x00, - 0x00, - 0x07, - 0x2A, - 0x0A, - 0x02, - 0x02, - 0x29, - 0xC6, - 0x2F, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x03, - 0x1C, - 0x60, - 0x06, - 0x00, - 0x10, - 0x00, - 0x00, - 0x04, - 0x17, - 0x0F, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x04, - 0x05, - 0x0F, - 0x29, - 0x0F, - 0x2B, - 0x00, - 0x00, - 0x07, - 0x05, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x6D, - 0x00, - 0x20, - 0x00, - 0x00, - 0x04, - 0x42, - 0x29, - 0x4E, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x00, - 0x04, - 0x07, - 0xD9, - 0x29, - 0x42, - 0x05, - 0x00, - 0x01, - 0x05, - 0x24, - 0x00, - 0x00, - 0x07, - 0x0B, - 0xCF, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x17, - 0x00, - 0x1F, - 0x00, - 0x00, - 0x04, - 0x42, - 0x29, - 0xB4, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x06, - 0x49, - 0x29, - 0xC3, - 0x04, - 0x00, - 0x01, - 0x05, - 0x24, - 0x00, - 0x00, - 0x06, - 0x05, - 0x84, - 0x29, - 0x29, - 0x0A, - 0x2A, - 0x1B, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x00, - 0x00, - 0x6D, - 0x64, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x8D, - 0x12, - 0x64, - 0x6D, - 0x29, - 0x00, - 0x00, - 0x04, - 0x04, - 0xB7, - 0x4E, - 0xE7, - 0x1F, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x64, - 0xCF, - 0x37, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x00, - 0x05, - 0x06, - 0xD9, - 0x29, - 0x0F, - 0x0B, - 0x00, - 0x2B, - 0x00, - 0x01, - 0x05, - 0x1C, - 0x00, - 0x00, - 0x05, - 0x2F, - 0xC4, - 0x44, - 0xB4, - 0xBE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x05, - 0x07, - 0xD9, - 0x29, - 0xB4, - 0x06, - 0x00, - 0x46, - 0x00, - 0x00, - 0x05, - 0x8D, - 0xD9, - 0x64, - 0xB4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x00, - 0x09, - 0x0B, - 0x4E, - 0x64, - 0x7F, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3D, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x93, - 0x71, - 0x64, - 0x4E, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x07, - 0x8E, - 0x30, - 0x64, - 0xE3, - 0x07, - 0x00, - 0x05, - 0x00, - 0x3E, - 0x00, - 0x00, - 0x05, - 0x07, - 0x84, - 0x64, - 0x64, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x05, - 0x2A, - 0xD9, - 0x29, - 0xD9, - 0x93, - 0x00, - 0x3E, - 0x00, - 0x00, - 0x05, - 0x11, - 0x12, - 0x64, - 0x0F, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x00, - 0x06, - 0x04, - 0x6D, - 0x44, - 0x29, - 0x09, - 0x01, - 0x3A, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x0F, - 0x64, - 0x64, - 0x6D, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x14, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x4E, - 0x64, - 0x30, - 0x4E, - 0xBE, - 0x36, - 0x00, - 0x00, - 0x06, - 0x8D, - 0x84, - 0x64, - 0x71, - 0x84, - 0xBE, - 0x00, - 0x00, - 0x00, - 0x02, - 0x16, - 0x00, - 0x00, - 0x06, - 0x93, - 0x0F, - 0x64, - 0x64, - 0x0F, - 0x2A, - 0x2E, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x0F, - 0x29, - 0x64, - 0x0F, - 0x11, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x08, - 0x17, - 0xB8, - 0x0F, - 0x64, - 0x29, - 0x0F, - 0x93, - 0xDC, - 0x2C, - 0x00, - 0x00, - 0x08, - 0x2F, - 0x11, - 0x0F, - 0x29, - 0x64, - 0x0F, - 0x11, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x08, - 0x5F, - 0x0F, - 0x29, - 0x64, - 0xC6, - 0x84, - 0x5F, - 0xDC, - 0x26, - 0x00, - 0x00, - 0x09, - 0x0B, - 0xD6, - 0x84, - 0xC6, - 0x29, - 0x30, - 0xE4, - 0x11, - 0x17, - 0x00, - 0x06, - 0x00, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x00, - 0x00, - 0x0A, - 0xBE, - 0xE3, - 0xC6, - 0x64, - 0x64, - 0xCF, - 0x5B, - 0x11, - 0x06, - 0x17, - 0x1E, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x8D, - 0x11, - 0x84, - 0xCF, - 0x64, - 0x29, - 0x12, - 0x84, - 0x01, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1E, - 0x00, - 0x00, - 0x0D, - 0x04, - 0x78, - 0x4E, - 0x12, - 0x02, - 0x29, - 0x29, - 0xD9, - 0x5B, - 0xDA, - 0x2A, - 0x0B, - 0x05, - 0x00, - 0x14, - 0x00, - 0x00, - 0x0D, - 0x17, - 0xDC, - 0xE2, - 0xB7, - 0x84, - 0xD9, - 0x29, - 0x29, - 0x29, - 0x71, - 0x4E, - 0x5F, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x21, - 0x00, - 0x00, - 0x12, - 0x04, - 0x2A, - 0xDF, - 0x0F, - 0x44, - 0x29, - 0x29, - 0x02, - 0x30, - 0x94, - 0x4E, - 0xC3, - 0xAA, - 0xB8, - 0x3B, - 0x70, - 0x06, - 0x2F, - 0x04, - 0x07, - 0x00, - 0x12, - 0x06, - 0x06, - 0x06, - 0xD6, - 0x60, - 0xC3, - 0xAA, - 0x4E, - 0x0C, - 0x64, - 0x7F, - 0x30, - 0x64, - 0x64, - 0xD9, - 0x6D, - 0x2A, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x25, - 0x00, - 0x00, - 0x07, - 0x98, - 0xE7, - 0x93, - 0x74, - 0xD9, - 0xCF, - 0x30, - 0x00, - 0x04, - 0x29, - 0x01, - 0x02, - 0x08, - 0x7F, - 0x01, - 0x02, - 0x04, - 0x29, - 0x00, - 0x07, - 0x30, - 0xCF, - 0xD9, - 0xA5, - 0x93, - 0x78, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x2A, - 0x00, - 0x00, - 0x08, - 0x0B, - 0x8D, - 0x3B, - 0xC2, - 0xC3, - 0xE3, - 0x84, - 0xA5, - 0x06, - 0xE4, - 0x00, - 0x08, - 0xA5, - 0x84, - 0xE3, - 0xC3, - 0x6F, - 0x3B, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0C, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x5C, - 0x07, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x18, - 0x01, - 0x00, - 0x03, - 0x1C, - 0x1C, - 0x1C, - 0x00, - 0x07, - 0x01, - 0x04, - 0x1C, - 0x00, - 0x03, - 0x01, - 0x01, - 0x01, - 0x00, - 0x04, - 0x1C, - 0x0D, - 0x01, - 0x00, - 0x0A, - 0x08, - 0x37, - 0x1C, - 0x86, - 0x2A, - 0x78, - 0xB2, - 0x86, - 0x01, - 0x08, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x05, - 0x08, - 0x4E, - 0x0A, - 0x30, - 0x85, - 0x00, - 0x05, - 0x01, - 0x00, - 0x0F, - 0x37, - 0x84, - 0x0A, - 0x9D, - 0x30, - 0x0F, - 0x08, - 0x01, - 0x08, - 0x09, - 0x0A, - 0x30, - 0xC6, - 0x2A, - 0x08, - 0x00, - 0x0A, - 0x01, - 0x00, - 0x0C, - 0x37, - 0x78, - 0x4E, - 0xCF, - 0x0A, - 0x02, - 0x02, - 0x8A, - 0x0A, - 0xCF, - 0x6D, - 0x08, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x05, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x00, - 0x04, - 0x01, - 0x00, - 0x10, - 0x08, - 0x2A, - 0x10, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0x2A, - 0x08, - 0x09, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x4E, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x4E, - 0x18, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x05, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x00, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x08, - 0x01, - 0x00, - 0x03, - 0x08, - 0x49, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x6D, - 0x18, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x0A, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x84, - 0x04, - 0x02, - 0x00, - 0x08, - 0x0A, - 0x84, - 0x11, - 0x5F, - 0x5F, - 0x93, - 0x4E, - 0x78, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x0A, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x01, - 0x08, - 0xD9, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x06, - 0x01, - 0x00, - 0x0E, - 0x08, - 0x2A, - 0x7F, - 0x02, - 0x02, - 0x02, - 0xCF, - 0xB2, - 0x31, - 0x37, - 0x08, - 0x08, - 0x37, - 0x18, - 0x18, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x19, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x00, - 0x06, - 0x01, - 0x00, - 0x08, - 0x18, - 0x84, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x78, - 0x18, - 0x1E, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x26, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x08, - 0xC6, - 0x02, - 0x02, - 0xCF, - 0x0F, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x01, - 0x01, - 0x01, - 0x08, - 0x01, - 0x01, - 0x08, - 0x49, - 0x02, - 0x02, - 0x02, - 0x4E, - 0x18, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x17, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x18, - 0x6D, - 0x02, - 0x02, - 0x02, - 0xE3, - 0x0F, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x0A, - 0x7E, - 0x6D, - 0x18, - 0x1C, - 0xCF, - 0x02, - 0x02, - 0x02, - 0x6D, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x14, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x08, - 0x86, - 0x7E, - 0x02, - 0x02, - 0x0A, - 0x86, - 0x49, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x75, - 0x5B, - 0x31, - 0xB2, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x11, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x14, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x31, - 0x84, - 0x02, - 0x02, - 0x02, - 0xE3, - 0x31, - 0x0D, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x75, - 0x5B, - 0x31, - 0x86, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x18, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x86, - 0x7F, - 0x02, - 0x02, - 0x7E, - 0x86, - 0x08, - 0x0D, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0xE3, - 0x04, - 0x76, - 0x00, - 0x0A, - 0x6D, - 0x5F, - 0x08, - 0x08, - 0xD9, - 0x02, - 0x02, - 0x02, - 0x6D, - 0x18, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x26, - 0x37, - 0x49, - 0x02, - 0x02, - 0x49, - 0xE3, - 0x02, - 0x02, - 0x02, - 0x6D, - 0x18, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0xB2, - 0x31, - 0x37, - 0x37, - 0x37, - 0x18, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x19, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0xCF, - 0x02, - 0x02, - 0xD9, - 0x08, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x00, - 0x06, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x04, - 0x02, - 0x01, - 0x93, - 0x01, - 0x31, - 0x1E, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x01, - 0x37, - 0x01, - 0x49, - 0x05, - 0x02, - 0x00, - 0x12, - 0x75, - 0x93, - 0x18, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0xB2, - 0x31, - 0x05, - 0x37, - 0x00, - 0x0F, - 0x01, - 0x01, - 0x08, - 0x49, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x93, - 0x37, - 0x18, - 0x37, - 0x18, - 0x18, - 0x08, - 0x00, - 0x18, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x01, - 0x37, - 0x01, - 0x49, - 0x05, - 0x02, - 0x00, - 0x11, - 0x49, - 0x08, - 0x01, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0x49, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x07, - 0x49, - 0x4E, - 0x01, - 0x01, - 0x08, - 0x2A, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0xD9, - 0xE3, - 0x76, - 0x6D, - 0x84, - 0xCF, - 0x93, - 0x37, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x01, - 0x37, - 0x01, - 0x49, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x78, - 0x37, - 0x01, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x75, - 0x9D, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x7F, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x84, - 0x18, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x08, - 0x37, - 0x49, - 0x75, - 0x02, - 0x02, - 0x75, - 0x4E, - 0x18, - 0x04, - 0x01, - 0x00, - 0x09, - 0x9D, - 0x75, - 0x75, - 0xC6, - 0x08, - 0x01, - 0x08, - 0x49, - 0x75, - 0x00, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x9D, - 0x04, - 0x01, - 0x00, - 0x03, - 0x37, - 0x2A, - 0x0F, - 0x00, - 0x07, - 0x02, - 0x00, - 0x03, - 0x75, - 0x49, - 0x37, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x08, - 0x08, - 0xE3, - 0x0F, - 0x09, - 0x09, - 0x0F, - 0xB2, - 0x08, - 0x04, - 0x01, - 0x00, - 0x09, - 0x84, - 0x0F, - 0x0F, - 0x84, - 0x01, - 0x01, - 0x08, - 0xE3, - 0x0F, - 0x00, - 0x07, - 0x09, - 0x01, - 0x0F, - 0x01, - 0x84, - 0x05, - 0x01, - 0x00, - 0x0B, - 0x08, - 0x08, - 0x78, - 0x84, - 0x49, - 0xC6, - 0xC6, - 0xC6, - 0xD9, - 0x0F, - 0x93, - 0x00, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x17, - 0x01, - 0x01, - 0x08, - 0x04, - 0x37, - 0x06, - 0x01, - 0x04, - 0x37, - 0x00, - 0x03, - 0x01, - 0x01, - 0x01, - 0x00, - 0x0B, - 0x37, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x37, - 0x05, - 0x08, - 0x01, - 0x37, - 0x01, - 0x37, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3E, - 0x01, - 0x00, - 0x07, - 0x1C, - 0xD9, - 0x75, - 0x02, - 0x75, - 0x49, - 0x08, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x00, - 0x09, - 0x37, - 0x6D, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0x93, - 0x37, - 0x00, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x01, - 0x18, - 0x01, - 0xE3, - 0x05, - 0x02, - 0x01, - 0x49, - 0x01, - 0x37, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x35, - 0x01, - 0x00, - 0x04, - 0x08, - 0xB2, - 0x1C, - 0x37, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x06, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x34, - 0x01, - 0x00, - 0x06, - 0xB2, - 0x0F, - 0x0A, - 0x0A, - 0xE3, - 0x08, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x00, - 0x0D, - 0x08, - 0x0F, - 0x75, - 0x02, - 0x02, - 0x75, - 0x93, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x93, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x32, - 0x01, - 0x01, - 0x08, - 0x01, - 0x2A, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x86, - 0x01, - 0x7E, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x11, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x2B, - 0x01, - 0x01, - 0x08, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x29, - 0x01, - 0x00, - 0x03, - 0x37, - 0x86, - 0x78, - 0x00, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xB2, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x27, - 0x01, - 0x00, - 0x07, - 0x08, - 0x08, - 0xE3, - 0x7F, - 0x02, - 0xD9, - 0xB2, - 0x00, - 0x06, - 0x01, - 0x01, - 0x08, - 0x01, - 0xCA, - 0x04, - 0x02, - 0x00, - 0x08, - 0x75, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x18, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x15, - 0x01, - 0x00, - 0x03, - 0x37, - 0x08, - 0x08, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x09, - 0x37, - 0x86, - 0x0F, - 0x75, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x37, - 0x00, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x14, - 0x01, - 0x00, - 0x05, - 0x08, - 0xE3, - 0xC6, - 0x0F, - 0xB2, - 0x00, - 0x0C, - 0x01, - 0x00, - 0x03, - 0x18, - 0x11, - 0x7E, - 0x00, - 0x06, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0A, - 0x1C, - 0x01, - 0x01, - 0x01, - 0x08, - 0x78, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x00, - 0x07, - 0x37, - 0x84, - 0x75, - 0x02, - 0x75, - 0x0F, - 0x08, - 0x00, - 0x0A, - 0x01, - 0x01, - 0x37, - 0x01, - 0x6D, - 0x08, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x06, - 0x01, - 0x01, - 0xC6, - 0x05, - 0x02, - 0x01, - 0x5F, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x86, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x08, - 0x01, - 0x00, - 0x03, - 0x37, - 0x01, - 0x4E, - 0x00, - 0x09, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xB2, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x37, - 0x01, - 0x4E, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x07, - 0x01, - 0x00, - 0x03, - 0x18, - 0x2A, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x6D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x4E, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x06, - 0x01, - 0x00, - 0x03, - 0x18, - 0x93, - 0x7F, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x18, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x5F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3F, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x04, - 0x01, - 0x00, - 0x03, - 0x08, - 0x08, - 0x84, - 0x00, - 0x0E, - 0x02, - 0x01, - 0xCF, - 0x06, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0xCF, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x08, - 0x01, - 0xB8, - 0x05, - 0x02, - 0x00, - 0x08, - 0x84, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0xB2, - 0xD9, - 0x07, - 0x02, - 0x00, - 0x04, - 0x75, - 0x4E, - 0x93, - 0x10, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x00, - 0x07, - 0x7F, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x08, - 0x78, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0x6D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x18, - 0x11, - 0x7F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0xE3, - 0x37, - 0x37, - 0xC6, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x49, - 0x04, - 0x02, - 0x00, - 0x08, - 0x8A, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x08, - 0x2A, - 0x7F, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x08, - 0x08, - 0x08, - 0x84, - 0x00, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0A, - 0x11, - 0x18, - 0x01, - 0x37, - 0x85, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0x2A, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0x84, - 0x04, - 0x02, - 0x00, - 0x06, - 0x8A, - 0xB2, - 0x31, - 0xB2, - 0x49, - 0x75, - 0x07, - 0x02, - 0x00, - 0x07, - 0xD9, - 0xB2, - 0x37, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x93, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0xB2, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0xA5, - 0x05, - 0x02, - 0x00, - 0x03, - 0x11, - 0x6D, - 0x7F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x84, - 0x08, - 0x08, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x18, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x78, - 0x08, - 0x01, - 0x01, - 0x01, - 0xB2, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0xA5, - 0x05, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x93, - 0x18, - 0x00, - 0x05, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0xB2, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x0D, - 0x02, - 0x00, - 0x03, - 0xCF, - 0x78, - 0x18, - 0x00, - 0x06, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0x2A, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x00, - 0x03, - 0x18, - 0xE3, - 0x75, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x0F, - 0x1C, - 0x37, - 0x00, - 0x07, - 0x01, - 0x01, - 0x08, - 0x01, - 0xD9, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x2A, - 0x05, - 0x01, - 0x01, - 0x08, - 0x01, - 0x0F, - 0x04, - 0x02, - 0x00, - 0x07, - 0x8A, - 0x2A, - 0x08, - 0x01, - 0x01, - 0x08, - 0x2A, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0x8E, - 0x0B, - 0x02, - 0x01, - 0xE3, - 0x01, - 0x37, - 0x09, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x86, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x00, - 0x07, - 0x0A, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x08, - 0x01, - 0x5F, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x93, - 0x18, - 0x00, - 0x09, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x37, - 0x05, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0xCF, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x00, - 0x03, - 0x0F, - 0x86, - 0x37, - 0x00, - 0x0A, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x01, - 0xE3, - 0x01, - 0x18, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3F, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x08, - 0x01, - 0xD9, - 0x06, - 0x02, - 0x00, - 0x03, - 0x84, - 0x08, - 0x08, - 0x00, - 0x0C, - 0x01, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x6D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x4E, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x00, - 0x09, - 0x18, - 0xE3, - 0x75, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x93, - 0x18, - 0x00, - 0x0C, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x00, - 0x07, - 0x1C, - 0xCF, - 0x75, - 0x75, - 0xD9, - 0x2A, - 0x18, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x37, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xE3, - 0x01, - 0x18, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0x1C, - 0xCF, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1C, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x00, - 0x06, - 0x08, - 0xB2, - 0x4E, - 0xE3, - 0x01, - 0x37, - 0x0F, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x86, - 0x05, - 0x01, - 0x01, - 0x37, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x07, - 0x30, - 0x1C, - 0x01, - 0x01, - 0x01, - 0x08, - 0x78, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x15, - 0x01, - 0x01, - 0x18, - 0x01, - 0x18, - 0x10, - 0x01, - 0x00, - 0x08, - 0x1C, - 0x7E, - 0x02, - 0x02, - 0x02, - 0x75, - 0xE3, - 0x18, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x27, - 0x01, - 0x00, - 0x06, - 0x37, - 0x4E, - 0x75, - 0x02, - 0x02, - 0xD9, - 0x08, - 0x01, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x18, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x28, - 0x01, - 0x00, - 0x06, - 0xB2, - 0x49, - 0x7F, - 0x0F, - 0xB2, - 0x08, - 0x05, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xB2, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x29, - 0x01, - 0x00, - 0x03, - 0x08, - 0x86, - 0x08, - 0x00, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x11, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x00, - 0x0D, - 0x37, - 0x0F, - 0x75, - 0x02, - 0x02, - 0x75, - 0x93, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x34, - 0x01, - 0x00, - 0x06, - 0xB2, - 0x4E, - 0xCF, - 0xC6, - 0x6D, - 0x08, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x35, - 0x01, - 0x00, - 0x04, - 0x37, - 0x01, - 0x08, - 0x37, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x2A, - 0x08, - 0x00, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x01, - 0x37, - 0x01, - 0xE3, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x37, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x00, - 0x03, - 0x37, - 0x6D, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3F, - 0x01, - 0x00, - 0x06, - 0xD9, - 0x75, - 0x02, - 0x75, - 0x0F, - 0x08, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3F, - 0x01, - 0x00, - 0x05, - 0x86, - 0x84, - 0x0F, - 0xE3, - 0x1C, - 0x00, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x40, - 0x01, - 0x00, - 0x03, - 0x08, - 0x08, - 0x37, - 0x00, - 0x18, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x17, - 0x5B, - 0x0B, - 0x01, - 0x04, - 0x00, - 0x01, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xBE, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x23, - 0x00, - 0x00, - 0x08, - 0x20, - 0x6A, - 0x3B, - 0xA7, - 0xA7, - 0x3B, - 0x6C, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1D, - 0x00, - 0x00, - 0x06, - 0x97, - 0x4F, - 0xA0, - 0x0C, - 0x0D, - 0x0A, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x0D, - 0x4C, - 0xD3, - 0x95, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x04, - 0x98, - 0x9F, - 0x0C, - 0x10, - 0x13, - 0x02, - 0x00, - 0x03, - 0x12, - 0x43, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x03, - 0x59, - 0xBD, - 0x61, - 0x00, - 0x1A, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x8C, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x15, - 0x00, - 0x00, - 0x03, - 0x20, - 0xCC, - 0x7F, - 0x00, - 0x1E, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x96, - 0x97, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x95, - 0x30, - 0x00, - 0x22, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x43, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x01, - 0x6F, - 0x01, - 0x0D, - 0x26, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x2A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x0D, - 0x2C, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x60, - 0x01, - 0x7C, - 0x2E, - 0x02, - 0x01, - 0x8A, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x01, - 0x9F, - 0x01, - 0x10, - 0x31, - 0x02, - 0x01, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x90, - 0x34, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x8B, - 0x36, - 0x02, - 0x01, - 0x6B, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0x95, - 0x38, - 0x02, - 0x01, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x3B, - 0x3A, - 0x02, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x3A, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x3C, - 0x02, - 0x01, - 0x30, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0xE8, - 0x3E, - 0x02, - 0x01, - 0x61, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x3B, - 0x40, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x61, - 0x40, - 0x02, - 0x01, - 0x44, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0xA7, - 0x14, - 0x02, - 0x00, - 0x05, - 0x10, - 0xCC, - 0x70, - 0xA7, - 0xC1, - 0x00, - 0x29, - 0x02, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x73, - 0x01, - 0x9D, - 0x14, - 0x02, - 0x01, - 0x43, - 0x04, - 0x00, - 0x01, - 0x8D, - 0x01, - 0x0C, - 0x27, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x9F, - 0x15, - 0x02, - 0x01, - 0x98, - 0x06, - 0x00, - 0x01, - 0x60, - 0x01, - 0x0D, - 0x26, - 0x02, - 0x01, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x7E, - 0x00, - 0x14, - 0x02, - 0x01, - 0x0A, - 0x09, - 0x00, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x24, - 0x02, - 0x01, - 0x29, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x4F, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x29, - 0x00, - 0x23, - 0x02, - 0x01, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x94, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0C, - 0x00, - 0x01, - 0x98, - 0x01, - 0xA0, - 0x22, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x29, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0E, - 0x00, - 0x01, - 0x50, - 0x01, - 0x71, - 0x21, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x6F, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x10, - 0x00, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0xA0, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x11, - 0x00, - 0x00, - 0x03, - 0x73, - 0x9F, - 0x7C, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0A, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x13, - 0x00, - 0x01, - 0x97, - 0x01, - 0x8B, - 0x1D, - 0x02, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x3B, - 0x17, - 0x02, - 0x01, - 0x44, - 0x15, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x1B, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x43, - 0x17, - 0x02, - 0x01, - 0x44, - 0x17, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x61, - 0x19, - 0x02, - 0x01, - 0x5A, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8B, - 0x17, - 0x02, - 0x01, - 0x44, - 0x18, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x4F, - 0x30, - 0x00, - 0x17, - 0x02, - 0x01, - 0x94, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xE8, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x20, - 0xCC, - 0x29, - 0x00, - 0x15, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x12, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1C, - 0x00, - 0x01, - 0x59, - 0x01, - 0x5A, - 0x14, - 0x02, - 0x01, - 0x30, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x44, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1E, - 0x00, - 0x01, - 0x50, - 0x01, - 0x56, - 0x12, - 0x02, - 0x01, - 0x10, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x8A, - 0x17, - 0x02, - 0x01, - 0x44, - 0x20, - 0x00, - 0x01, - 0xA7, - 0x01, - 0x29, - 0x11, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x01, - 0x59, - 0x18, - 0x02, - 0x01, - 0x44, - 0x21, - 0x00, - 0x01, - 0x50, - 0x11, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x50, - 0x18, - 0x02, - 0x01, - 0x44, - 0x22, - 0x00, - 0x01, - 0x56, - 0x10, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x01, - 0x8D, - 0x18, - 0x02, - 0x01, - 0x44, - 0x22, - 0x00, - 0x01, - 0x56, - 0x10, - 0x02, - 0x01, - 0x60, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x18, - 0x02, - 0x01, - 0x44, - 0x21, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x10, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x29, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1F, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x95, - 0x8A, - 0x00, - 0x11, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x64, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1E, - 0x00, - 0x01, - 0x60, - 0x01, - 0x61, - 0x12, - 0x02, - 0x01, - 0x8A, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x4C, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1C, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x14, - 0x02, - 0x01, - 0x44, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x09, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x98, - 0xA0, - 0x10, - 0x00, - 0x15, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x96, - 0x17, - 0x02, - 0x01, - 0x44, - 0x18, - 0x00, - 0x00, - 0x03, - 0x1B, - 0xC4, - 0x29, - 0x00, - 0x17, - 0x02, - 0x01, - 0xE8, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x9F, - 0x17, - 0x02, - 0x01, - 0x44, - 0x16, - 0x00, - 0x00, - 0x03, - 0x73, - 0x9F, - 0x7C, - 0x00, - 0x19, - 0x02, - 0x01, - 0x8B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8D, - 0x17, - 0x02, - 0x01, - 0x44, - 0x15, - 0x00, - 0x01, - 0xA7, - 0x01, - 0x64, - 0x1B, - 0x02, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x9E, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x13, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x1C, - 0x02, - 0x01, - 0x29, - 0x01, - 0x73, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x74, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x11, - 0x00, - 0x01, - 0x8D, - 0x01, - 0x6B, - 0x1E, - 0x02, - 0x01, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x3B, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x0F, - 0x00, - 0x00, - 0x03, - 0x59, - 0x5A, - 0x10, - 0x00, - 0x1F, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x7E, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0D, - 0x00, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x29, - 0x00, - 0x20, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xA0, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0B, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x95, - 0x7E, - 0x00, - 0x22, - 0x02, - 0x01, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0A, - 0x00, - 0x01, - 0x6F, - 0x01, - 0x0D, - 0x24, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x0D, - 0x14, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x73, - 0x07, - 0x00, - 0x01, - 0x70, - 0x01, - 0x71, - 0x25, - 0x02, - 0x01, - 0x30, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x60, - 0x15, - 0x02, - 0x01, - 0x70, - 0x05, - 0x00, - 0x01, - 0x6C, - 0x01, - 0xC1, - 0x27, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x56, - 0x14, - 0x02, - 0x00, - 0x07, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x98, - 0x8B, - 0x8A, - 0x00, - 0x27, - 0x02, - 0x01, - 0x0D, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x50, - 0x15, - 0x02, - 0x00, - 0x03, - 0x30, - 0x6B, - 0xC7, - 0x00, - 0x2A, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0xC1, - 0x40, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x8A, - 0x3F, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0xCC, - 0x3E, - 0x02, - 0x01, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0xE6, - 0x01, - 0xE8, - 0x3C, - 0x02, - 0x01, - 0x12, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x20, - 0x01, - 0x61, - 0x3A, - 0x02, - 0x01, - 0x30, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x7E, - 0x38, - 0x02, - 0x01, - 0x29, - 0x01, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0x70, - 0x38, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x4F, - 0x36, - 0x02, - 0x01, - 0xCC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x01, - 0xB7, - 0x01, - 0x8A, - 0x32, - 0x02, - 0x01, - 0x10, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x01, - 0x70, - 0x01, - 0x30, - 0x30, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x98, - 0x01, - 0x12, - 0x2E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x20, - 0x01, - 0xC1, - 0x2C, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x03, - 0xE6, - 0xBD, - 0x8A, - 0x00, - 0x29, - 0x02, - 0x01, - 0x8B, - 0x01, - 0x73, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x00, - 0x03, - 0x6A, - 0xA0, - 0x10, - 0x00, - 0x25, - 0x02, - 0x01, - 0x94, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x14, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x22, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x16, - 0x00, - 0x01, - 0x60, - 0x01, - 0x61, - 0x1E, - 0x02, - 0x01, - 0x9E, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x04, - 0xE6, - 0x60, - 0x8B, - 0x44, - 0x18, - 0x02, - 0x00, - 0x04, - 0x30, - 0x5A, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x03, - 0x50, - 0x3C, - 0x61, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x96, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1E, - 0x00, - 0x00, - 0x12, - 0x6A, - 0x4F, - 0xCC, - 0x90, - 0x94, - 0x61, - 0x30, - 0x02, - 0x02, - 0x02, - 0x10, - 0x30, - 0x61, - 0x56, - 0x90, - 0x3C, - 0x95, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x25, - 0x00, - 0x00, - 0x04, - 0xE6, - 0x98, - 0x98, - 0x05, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCA, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x17, - 0x5C, - 0x07, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x19, - 0x01, - 0x01, - 0x78, - 0x01, - 0x76, - 0x32, - 0x6D, - 0x01, - 0x11, - 0x01, - 0x1C, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x17, - 0x01, - 0x01, - 0xB8, - 0x01, - 0xC6, - 0x36, - 0x02, - 0x01, - 0x5B, - 0x0B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x0A, - 0x38, - 0x02, - 0x01, - 0x7D, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0xA5, - 0x39, - 0x02, - 0x01, - 0x0A, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x85, - 0x3A, - 0x02, - 0x01, - 0x5F, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x3A, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x11, - 0x01, - 0x84, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0E, - 0x01, - 0x00, - 0x09, - 0xB2, - 0x6D, - 0xA5, - 0x4E, - 0x5F, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x11, - 0x14, - 0x7D, - 0x0D, - 0x3F, - 0x01, - 0x6D, - 0x06, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0D, - 0x01, - 0x00, - 0x0A, - 0x8E, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x6D, - 0x21, - 0x02, - 0x01, - 0x49, - 0x06, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x01, - 0x0F, - 0x1F, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0xE3, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x30, - 0x1E, - 0x02, - 0x01, - 0x7D, - 0x07, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x01, - 0x01, - 0x93, - 0x1D, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x09, - 0x01, - 0x01, - 0x09, - 0x1B, - 0x02, - 0x01, - 0x7C, - 0x01, - 0xB2, - 0x08, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x09, - 0x01, - 0x01, - 0x86, - 0x01, - 0x30, - 0x1A, - 0x02, - 0x01, - 0x6D, - 0x09, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0A, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x10, - 0x18, - 0x02, - 0x01, - 0x0F, - 0x0A, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0B, - 0x01, - 0x01, - 0x4E, - 0x17, - 0x02, - 0x01, - 0x30, - 0x01, - 0xAB, - 0x0A, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0B, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x44, - 0x07, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x10, - 0x0D, - 0x02, - 0x01, - 0x93, - 0x0B, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0C, - 0x01, - 0x01, - 0x11, - 0x06, - 0x02, - 0x00, - 0x03, - 0xA5, - 0x01, - 0xA5, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x09, - 0x0C, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0D, - 0x01, - 0x01, - 0xA5, - 0x04, - 0x02, - 0x00, - 0x05, - 0xC6, - 0x1C, - 0x01, - 0xBE, - 0xCF, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x30, - 0x01, - 0x86, - 0x0C, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0D, - 0x01, - 0x00, - 0x0B, - 0x1C, - 0x0D, - 0x02, - 0x02, - 0x10, - 0xB8, - 0x01, - 0x01, - 0x01, - 0x11, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x8E, - 0x0D, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0E, - 0x01, - 0x00, - 0x04, - 0xB8, - 0x02, - 0x02, - 0x84, - 0x05, - 0x01, - 0x01, - 0x84, - 0x08, - 0x02, - 0x01, - 0x4E, - 0x0E, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0F, - 0x01, - 0x00, - 0x03, - 0x5B, - 0x85, - 0x1C, - 0x00, - 0x05, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x0E, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x18, - 0x01, - 0x01, - 0xB8, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x11, - 0x0F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x09, - 0x01, - 0x00, - 0x03, - 0xAB, - 0x8E, - 0xAB, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x84, - 0x10, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x00, - 0x07, - 0x5F, - 0x85, - 0x10, - 0x02, - 0x10, - 0x85, - 0x5F, - 0x00, - 0x0B, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x0D, - 0x02, - 0x02, - 0x0D, - 0x1C, - 0x10, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0xAB, - 0x0B, - 0x01, - 0x00, - 0x04, - 0x78, - 0x29, - 0x8A, - 0xB8, - 0x11, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xA5, - 0x07, - 0x02, - 0x01, - 0xA5, - 0x0C, - 0x01, - 0x01, - 0x6D, - 0x01, - 0x6D, - 0x12, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x0D, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x07, - 0x02, - 0x01, - 0xCF, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x0F, - 0x07, - 0x02, - 0x01, - 0x0F, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0xB8, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x00, - 0x07, - 0x6D, - 0x7F, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x6D, - 0x00, - 0x21, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x01, - 0x00, - 0x05, - 0x2A, - 0x7D, - 0xA5, - 0x7D, - 0x2A, - 0x00, - 0x22, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0xE2, - 0x01, - 0x7D, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x3A, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0xD9, - 0x00, - 0x3A, - 0x02, - 0x01, - 0x78, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x4E, - 0x00, - 0x39, - 0x02, - 0x01, - 0x7F, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x06, - 0x11, - 0x01, - 0x01, - 0x01, - 0x5F, - 0x29, - 0x38, - 0x02, - 0x01, - 0x84, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x76, - 0x01, - 0x7C, - 0x36, - 0x02, - 0x01, - 0x09, - 0x01, - 0x1C, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x11, - 0x05, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x6D, - 0x33, - 0xA5, - 0x01, - 0x3F, - 0x01, - 0xB8, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x11, - 0x48, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x7D, - 0x48, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x85, - 0x48, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x29, - 0x3F, - 0x01, - 0x5F, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x30, - 0x02, - 0x01, - 0x6D, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x09, - 0x30, - 0x02, - 0x01, - 0x8E, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x42, - 0x30, - 0x02, - 0x01, - 0x1C, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x2E, - 0x02, - 0x01, - 0x84, - 0x1E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0D, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x85, - 0x2C, - 0x02, - 0x01, - 0x84, - 0x01, - 0x1C, - 0x1E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0F, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x8E, - 0x28, - 0x93, - 0x01, - 0x11, - 0x01, - 0x1C, - 0x20, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x05, - 0x5C, - 0x0B, - 0x00, - 0x01, - 0x77, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x59, - 0x5F, - 0x3B, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x04, - 0x8D, - 0x43, - 0xC1, - 0x44, - 0x61, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x09, - 0x43, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x43, - 0x68, - 0x02, - 0x00, - 0x03, - 0x29, - 0x9F, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x6B, - 0x02, - 0x01, - 0x56, - 0x01, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x50, - 0x29, - 0x00, - 0x6D, - 0x02, - 0x01, - 0x29, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x6F, - 0x02, - 0x01, - 0x61, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x74, - 0x00, - 0x71, - 0x02, - 0x01, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x3B, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x8A, - 0x5F, - 0x0D, - 0x09, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x09, - 0x07, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x3B, - 0x05, - 0x00, - 0x5F, - 0x00, - 0x00, - 0x03, - 0x73, - 0x60, - 0x44, - 0x00, - 0x07, - 0x02, - 0x01, - 0x90, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0x61, - 0x01, - 0x20, - 0x63, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x83, - 0x65, - 0x00, - 0x01, - 0x50, - 0x06, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x73, - 0x00, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x67, - 0x00, - 0x01, - 0x44, - 0x06, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x67, - 0x00, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0xDC, - 0x10, - 0x43, - 0x01, - 0x50, - 0x05, - 0x00, - 0x01, - 0x4F, - 0x0F, - 0x43, - 0x01, - 0x4F, - 0x05, - 0x00, - 0x01, - 0x50, - 0x10, - 0x43, - 0x01, - 0xDC, - 0x04, - 0x00, - 0x01, - 0xE6, - 0x10, - 0x43, - 0x01, - 0x3B, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x20, - 0x10, - 0x70, - 0x01, - 0x59, - 0x05, - 0x00, - 0x01, - 0x83, - 0x0F, - 0x70, - 0x01, - 0x83, - 0x05, - 0x00, - 0x01, - 0x59, - 0x10, - 0x70, - 0x01, - 0x20, - 0x04, - 0x00, - 0x01, - 0xE6, - 0x10, - 0x70, - 0x01, - 0x6A, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0B, - 0x00, - 0x01, - 0x1B, - 0x0C, - 0x70, - 0x01, - 0x59, - 0x4E, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0A, - 0x00, - 0x01, - 0x43, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x5A, - 0x4D, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x59, - 0x10, - 0x02, - 0x01, - 0xD6, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0xA7, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0A, - 0x00, - 0x01, - 0x6B, - 0x0E, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0B, - 0x00, - 0x01, - 0x60, - 0x0C, - 0x3C, - 0x01, - 0xA7, - 0x01, - 0x05, - 0x4D, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x18, - 0x20, - 0x70, - 0x70, - 0x6A, - 0x00, - 0x1B, - 0x70, - 0x73, - 0x00, - 0x1B, - 0x70, - 0x97, - 0x70, - 0x20, - 0x00, - 0x50, - 0x6C, - 0x00, - 0x50, - 0x98, - 0x00, - 0xDC, - 0x70, - 0x20, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x02, - 0x7E, - 0x29, - 0x64, - 0x8D, - 0x10, - 0x60, - 0x00, - 0x9F, - 0x29, - 0x50, - 0x02, - 0x50, - 0x6C, - 0x10, - 0x6B, - 0x00, - 0x44, - 0x3C, - 0x00, - 0x6B, - 0x0D, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x02, - 0x60, - 0x73, - 0x7C, - 0x43, - 0x4C, - 0x64, - 0x71, - 0x7E, - 0x6B, - 0x8D, - 0x02, - 0x50, - 0x09, - 0x7F, - 0x6B, - 0x00, - 0x44, - 0xA0, - 0x60, - 0x10, - 0x70, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x16, - 0x6A, - 0x02, - 0xC1, - 0x09, - 0x44, - 0x50, - 0x43, - 0x7E, - 0xA7, - 0x10, - 0x4F, - 0x8D, - 0x02, - 0x6F, - 0x29, - 0xE4, - 0x6B, - 0x00, - 0x44, - 0x02, - 0x7E, - 0x5A, - 0x0B, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x16, - 0x6A, - 0x02, - 0x5A, - 0x6B, - 0x4C, - 0x73, - 0x6C, - 0x10, - 0x60, - 0x10, - 0x1B, - 0x8D, - 0x02, - 0x94, - 0x74, - 0xE4, - 0x6B, - 0x00, - 0x44, - 0x9D, - 0x02, - 0x50, - 0x0B, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x02, - 0x95, - 0x95, - 0x10, - 0x6A, - 0x00, - 0x0D, - 0xC7, - 0x56, - 0x00, - 0x8D, - 0x02, - 0x7F, - 0x59, - 0x09, - 0x6B, - 0x00, - 0x44, - 0x3C, - 0xB4, - 0x61, - 0x73, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x7F, - 0x7F, - 0x0D, - 0xBD, - 0x00, - 0x00, - 0x3C, - 0x7F, - 0x95, - 0x00, - 0x6C, - 0x7F, - 0x3C, - 0x00, - 0x5A, - 0x09, - 0x00, - 0x0D, - 0x43, - 0x1B, - 0x0D, - 0x8C, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x67, - 0x00, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x67, - 0x00, - 0x01, - 0x9E, - 0x06, - 0x02, - 0x01, - 0x70, - 0x00, - 0x00, - 0x01, - 0x59, - 0x07, - 0x02, - 0x01, - 0x6C, - 0x65, - 0x00, - 0x01, - 0x8D, - 0x07, - 0x02, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x44, - 0x06, - 0x02, - 0x01, - 0x56, - 0x64, - 0x00, - 0x01, - 0x73, - 0x01, - 0x61, - 0x06, - 0x02, - 0x01, - 0x61, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xB4, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x8D, - 0x61, - 0x00, - 0x01, - 0x50, - 0x01, - 0x61, - 0x07, - 0x02, - 0x01, - 0x5A, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0x30, - 0x01, - 0x56, - 0x5D, - 0x0C, - 0x01, - 0x56, - 0x01, - 0x30, - 0x09, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0xA0, - 0x00, - 0x71, - 0x02, - 0x01, - 0x8B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x6F, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x60, - 0x6F, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x44, - 0x6B, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x68, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8B, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x04, - 0x60, - 0x90, - 0x12, - 0x29, - 0x61, - 0x02, - 0x00, - 0x04, - 0x29, - 0x12, - 0x8B, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x05, - 0x50, - 0xA7, - 0x00, - 0x5D, - 0xB7, - 0x00, - 0x03, - 0xA7, - 0x83, - 0xE6, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x52, - 0x07, - 0x00, - 0x00, - 0x5D, - 0x05, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x0B, - 0x01, - 0x01, - 0x2A, - 0x43, - 0x5F, - 0x0C, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x07, - 0x01, - 0x00, - 0x04, - 0xB2, - 0xA5, - 0x49, - 0x7F, - 0x44, - 0x02, - 0x00, - 0x04, - 0x29, - 0x0D, - 0x4E, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x06, - 0x01, - 0x01, - 0x76, - 0x01, - 0x0A, - 0x4A, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3F, - 0x07, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x05, - 0x01, - 0x01, - 0xA5, - 0x4E, - 0x02, - 0x01, - 0x0F, - 0x06, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x04, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x10, - 0x4F, - 0x02, - 0x01, - 0x42, - 0x05, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x06, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x86, - 0x30, - 0x06, - 0x02, - 0x01, - 0x7F, - 0x43, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x2A, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x42, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x5F, - 0x44, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0x84, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x4E, - 0x00, - 0x04, - 0x02, - 0x01, - 0x49, - 0x48, - 0x01, - 0x01, - 0x09, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x76, - 0x48, - 0x01, - 0x01, - 0x78, - 0x04, - 0x02, - 0x01, - 0x30, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x7C, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xBE, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x93, - 0x0B, - 0x84, - 0x00, - 0x05, - 0x2A, - 0x01, - 0x01, - 0x01, - 0x76, - 0x00, - 0x0B, - 0x84, - 0x00, - 0x05, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x6D, - 0x00, - 0x0B, - 0x84, - 0x00, - 0x05, - 0x86, - 0x01, - 0x01, - 0x01, - 0x7D, - 0x00, - 0x0B, - 0x84, - 0x01, - 0x1C, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x09, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x78, - 0x01, - 0x01, - 0x01, - 0x49, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x2A, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x86, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x09, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x78, - 0x01, - 0x01, - 0x01, - 0x49, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x2A, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x86, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0xA5, - 0x0B, - 0x30, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x09, - 0x00, - 0x0B, - 0x30, - 0x00, - 0x05, - 0x78, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x30, - 0x00, - 0x05, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x85, - 0x00, - 0x0B, - 0x30, - 0x01, - 0x1C, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x5F, - 0x01, - 0x85, - 0x08, - 0x7C, - 0x01, - 0x30, - 0x01, - 0x84, - 0x37, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x09, - 0x0B, - 0x02, - 0x01, - 0x78, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0xA5, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x01, - 0x2A, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0xAB, - 0x01, - 0xA5, - 0x08, - 0x49, - 0x01, - 0x85, - 0x01, - 0x6D, - 0x37, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x11, - 0xAB, - 0x3F, - 0x42, - 0x5F, - 0x8E, - 0x5F, - 0x01, - 0x6D, - 0xB8, - 0x8E, - 0x1C, - 0x7D, - 0xAB, - 0x6D, - 0xAB, - 0x5F, - 0x93, - 0x00, - 0x07, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x11, - 0x5F, - 0x7F, - 0xA5, - 0x0A, - 0x84, - 0x0F, - 0x6D, - 0x7F, - 0x76, - 0x0F, - 0x6D, - 0x02, - 0x5F, - 0x44, - 0xB8, - 0x0D, - 0x76, - 0x00, - 0x07, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x10, - 0x5F, - 0x7F, - 0x4E, - 0x0D, - 0x5F, - 0x7C, - 0x0F, - 0x0C, - 0x76, - 0x0F, - 0x0D, - 0xC6, - 0x5F, - 0x44, - 0x7E, - 0x85, - 0x08, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x10, - 0x5F, - 0x7C, - 0x5B, - 0x0F, - 0x01, - 0x0D, - 0x09, - 0x6D, - 0x76, - 0x30, - 0xA5, - 0xC6, - 0x5F, - 0x44, - 0x0D, - 0x84, - 0x08, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x11, - 0x5F, - 0x02, - 0xCF, - 0x0F, - 0x01, - 0x84, - 0x29, - 0xAB, - 0x76, - 0x7F, - 0xAB, - 0xC6, - 0x5F, - 0x44, - 0x11, - 0xC6, - 0x11, - 0x00, - 0x07, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0xC6, - 0x00, - 0x04, - 0x02, - 0x01, - 0x8E, - 0x48, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0x7F, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x48, - 0x01, - 0x01, - 0x3F, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x3F, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x7D, - 0x46, - 0x01, - 0x01, - 0x93, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x5F, - 0x00, - 0x06, - 0x02, - 0x01, - 0xCF, - 0x44, - 0x0F, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x04, - 0x01, - 0x01, - 0x5B, - 0x50, - 0x02, - 0x01, - 0x4E, - 0x05, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x05, - 0x01, - 0x01, - 0x12, - 0x4E, - 0x02, - 0x01, - 0x44, - 0x01, - 0xE2, - 0x05, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x05, - 0x01, - 0x01, - 0x86, - 0x01, - 0x09, - 0x4C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x2A, - 0x06, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x07, - 0x01, - 0x01, - 0x93, - 0x01, - 0x0D, - 0x47, - 0x02, - 0x00, - 0x03, - 0x10, - 0x44, - 0x6D, - 0x00, - 0x08, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x09, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x8E, - 0x44, - 0x5B, - 0x01, - 0x93, - 0x01, - 0xAB, - 0x0A, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x0E, - 0x01, - 0x2F, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x03, - 0x01, - 0x22, - 0x26, - 0x01, - 0x00, - 0x00, - 0x7C, - 0xB5, - 0xD2, - 0xCD, - 0xC9, - 0xD2, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xC6, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC2, - 0xC6, - 0xC1, - 0xA9, - 0xA9, - 0xC6, - 0xB7, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xB2, - 0xB9, - 0xA6, - 0x4A, - 0x35, - 0x35, - 0x42, - 0xD6, - 0x8B, - 0xD8, - 0xAF, - 0x7F, - 0xD5, - 0x55, - 0x32, - 0x8C, - 0x70, - 0x85, - 0x70, - 0x7B, - 0xCC, - 0x9F, - 0x8B, - 0xB9, - 0xC5, - 0xC3, - 0xC1, - 0xB6, - 0xB6, - 0xB6, - 0xC6, - 0xAE, - 0xD4, - 0xBF, - 0xBF, - 0xD3, - 0xCD, - 0xDA, - 0xCF, - 0xD1, - 0xB6, - 0xD2, - 0xDA, - 0xD9, - 0xDA, - 0xC7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x2B, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0x01, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x1A, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xCF, - 0xD9, - 0xDA, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xD1, - 0xCD, - 0xC8, - 0xD2, - 0xCD, - 0xCD, - 0xD2, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0x05, - 0xB5, - 0x00, - 0x04, - 0xCA, - 0xB5, - 0xB5, - 0xA1, - 0x04, - 0xB5, - 0x00, - 0x07, - 0xC9, - 0xD2, - 0xCD, - 0xD1, - 0xD2, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x2F, - 0xC8, - 0xC8, - 0xC8, - 0xD2, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xCD, - 0xD1, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xB5, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0B, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xCF, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xD1, - 0x04, - 0xCF, - 0x00, - 0x07, - 0xD9, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xDA, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0xC9, - 0xD2, - 0xD2, - 0xD2, - 0xCD, - 0xD2, - 0xCD, - 0xB5, - 0xCD, - 0xB6, - 0xCD, - 0xB5, - 0xB6, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0x04, - 0xC2, - 0x00, - 0x3F, - 0xC6, - 0xC6, - 0xC6, - 0xC2, - 0xB6, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xB0, - 0xC6, - 0xA9, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xB0, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC5, - 0xC3, - 0xAC, - 0x86, - 0xA6, - 0xA6, - 0xA4, - 0xD4, - 0xA6, - 0x6F, - 0xB3, - 0xDB, - 0xD8, - 0xA7, - 0xA0, - 0x2C, - 0x26, - 0x55, - 0x32, - 0x32, - 0x00, - 0x04, - 0x70, - 0x00, - 0x1F, - 0xC0, - 0xD8, - 0x3B, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xD3, - 0xC3, - 0x8E, - 0xBF, - 0xB2, - 0xBF, - 0xC5, - 0xB0, - 0xC8, - 0xD9, - 0xD1, - 0xCD, - 0xB6, - 0xCD, - 0xD9, - 0xDA, - 0xD7, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x09, - 0xC7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xC7, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x08, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xC7, - 0xD7, - 0x04, - 0xD9, - 0x01, - 0xC7, - 0x01, - 0xD7, - 0x09, - 0xD9, - 0x01, - 0xD7, - 0x0A, - 0xD9, - 0x00, - 0x1B, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xC8, - 0xCF, - 0xD9, - 0xC8, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xE0, - 0xC2, - 0xC9, - 0xCD, - 0xC2, - 0xC2, - 0xC9, - 0x00, - 0x08, - 0xB5, - 0x00, - 0x12, - 0xC2, - 0xE0, - 0xB5, - 0xC4, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC4, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x39, - 0xD1, - 0xE0, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xCD, - 0xCD, - 0xB6, - 0xCD, - 0xD2, - 0xCD, - 0xC9, - 0xB6, - 0xCD, - 0xC9, - 0xB6, - 0xB5, - 0xB5, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xD2, - 0xD1, - 0x00, - 0x04, - 0xC8, - 0x01, - 0xCF, - 0x06, - 0xC8, - 0x00, - 0x06, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0x04, - 0xCF, - 0x00, - 0x03, - 0xD9, - 0xC7, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x24, - 0xCD, - 0xCD, - 0xD2, - 0xD2, - 0xC9, - 0xD2, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xB0, - 0xC2, - 0xC6, - 0xCA, - 0xC6, - 0xC6, - 0xC6, - 0x05, - 0xC1, - 0x00, - 0x03, - 0xC6, - 0xC6, - 0xC3, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x41, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xCA, - 0xC6, - 0xCA, - 0xCA, - 0xC1, - 0xC2, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC5, - 0xB8, - 0xD4, - 0xB9, - 0x9D, - 0x5D, - 0xA4, - 0xA4, - 0x9D, - 0xE4, - 0xDB, - 0xE8, - 0xBE, - 0xD8, - 0xBD, - 0xAB, - 0x55, - 0x32, - 0x2D, - 0x70, - 0x85, - 0x70, - 0x70, - 0x70, - 0x85, - 0xA7, - 0xBA, - 0xB2, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xB1, - 0xD4, - 0xA4, - 0xA4, - 0xA4, - 0xD4, - 0xB1, - 0xC3, - 0xA1, - 0xDA, - 0xD7, - 0xD1, - 0xB6, - 0xCD, - 0xD1, - 0xD9, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x01, - 0xC7, - 0x07, - 0xD7, - 0x00, - 0x04, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x17, - 0xD9, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x4B, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0xC2, - 0xCD, - 0xC9, - 0xC2, - 0xB5, - 0xCA, - 0xB5, - 0xCA, - 0xB5, - 0xB5, - 0xD2, - 0xCA, - 0x71, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xC4, - 0xC9, - 0xD1, - 0xD2, - 0xC4, - 0xC4, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xD1, - 0xD1, - 0xB6, - 0xC8, - 0xC8, - 0xD2, - 0xB5, - 0xD2, - 0xA1, - 0xA1, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0A, - 0xB5, - 0xC8, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x10, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xB6, - 0xC9, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0x0A, - 0xCD, - 0x00, - 0x04, - 0xC8, - 0xCD, - 0xD1, - 0xD1, - 0x09, - 0xC8, - 0x01, - 0xCF, - 0x05, - 0xC8, - 0x00, - 0x0C, - 0xD1, - 0xC8, - 0xC8, - 0xD9, - 0xC7, - 0xD9, - 0xCF, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x28, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xCA, - 0xCD, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xCA, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xAA, - 0x04, - 0xC1, - 0x00, - 0x08, - 0xB7, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0x06, - 0xC6, - 0x00, - 0x3B, - 0xC1, - 0xC2, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xB8, - 0xB8, - 0xC3, - 0xAE, - 0xE3, - 0xA6, - 0xE3, - 0xB2, - 0xA4, - 0xDC, - 0xB3, - 0xDB, - 0xA8, - 0xEB, - 0xAF, - 0xBD, - 0xAB, - 0x32, - 0x32, - 0x85, - 0x70, - 0x70, - 0x2D, - 0x70, - 0x70, - 0xC0, - 0xD0, - 0xBA, - 0xD4, - 0xB1, - 0xC5, - 0xC5, - 0xD4, - 0xD4, - 0xE3, - 0xDC, - 0xDC, - 0xB9, - 0xE3, - 0xD4, - 0xCE, - 0xC6, - 0xCD, - 0xC7, - 0xD9, - 0xD2, - 0xCD, - 0xD2, - 0xDA, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0x00, - 0x07, - 0xC7, - 0x01, - 0xD7, - 0x01, - 0xC7, - 0x05, - 0xD7, - 0x01, - 0xC7, - 0x06, - 0xD7, - 0x00, - 0x0C, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0x05, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x22, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0x04, - 0xD1, - 0x00, - 0x43, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC2, - 0xC9, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xCA, - 0xCA, - 0xB5, - 0xC4, - 0x71, - 0xC4, - 0x71, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xD2, - 0xD2, - 0xC8, - 0xD2, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC4, - 0xB5, - 0xB5, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xCA, - 0xCA, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x00, - 0x08, - 0xCD, - 0x00, - 0x12, - 0xC9, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0x07, - 0xC8, - 0x01, - 0xCF, - 0x01, - 0xCF, - 0x05, - 0xC8, - 0x00, - 0x0B, - 0xCF, - 0xCF, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCF, - 0x01, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xB6, - 0xB5, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xCA, - 0xC6, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xB7, - 0xC1, - 0xB7, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x14, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xBF, - 0xB9, - 0xB9, - 0xA4, - 0xA3, - 0x61, - 0xE4, - 0xDB, - 0xA8, - 0xE2, - 0xD0, - 0xBD, - 0x7F, - 0x55, - 0x32, - 0x85, - 0x06, - 0x70, - 0x00, - 0x18, - 0xC0, - 0xD0, - 0x9A, - 0xE3, - 0xC5, - 0xBF, - 0xD4, - 0xC5, - 0xBF, - 0xE3, - 0xA6, - 0xDC, - 0xDC, - 0xE7, - 0xD4, - 0xB1, - 0xD3, - 0xCA, - 0xCF, - 0xC7, - 0xD9, - 0xD1, - 0xCD, - 0xD1, - 0x09, - 0xC7, - 0x00, - 0x0D, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x01, - 0xC7, - 0x04, - 0xD7, - 0x00, - 0x52, - 0xD9, - 0xD7, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xA1, - 0xC4, - 0xA1, - 0xA1, - 0x8D, - 0xA1, - 0xA1, - 0xA1, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xC4, - 0xC4, - 0xC8, - 0xC8, - 0xC4, - 0xC8, - 0x04, - 0xCF, - 0x00, - 0x35, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xC9, - 0xB6, - 0xA1, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0xB0, - 0xA1, - 0xB5, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xD1, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xB6, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x04, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0x07, - 0xC8, - 0x00, - 0x03, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x08, - 0xC8, - 0x00, - 0x0B, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xD9, - 0xC8, - 0xD9, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xCD, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xC2, - 0xC9, - 0xB6, - 0xCA, - 0xCD, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC6, - 0xCA, - 0xC6, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xB6, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC2, - 0xC1, - 0xC2, - 0xC2, - 0xCA, - 0xC6, - 0xCA, - 0xCA, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC3, - 0xC3, - 0xB2, - 0xB9, - 0xE3, - 0xA3, - 0xD4, - 0x86, - 0xE4, - 0xE1, - 0xD8, - 0xE2, - 0xD0, - 0xD0, - 0x8C, - 0x32, - 0x32, - 0x85, - 0x00, - 0x05, - 0x70, - 0x00, - 0x1A, - 0xCC, - 0x85, - 0xD0, - 0x6F, - 0xAE, - 0xB2, - 0xD4, - 0xC5, - 0xC5, - 0xD4, - 0xB2, - 0xB9, - 0xB9, - 0xB9, - 0xE3, - 0xA4, - 0xD4, - 0xC6, - 0xC2, - 0xD2, - 0xD7, - 0xC7, - 0xDA, - 0xCD, - 0xD1, - 0xDA, - 0x06, - 0xC7, - 0x00, - 0x07, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x1C, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0x0B, - 0xD7, - 0x00, - 0x06, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x35, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xCF, - 0xDA, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC4, - 0x71, - 0x71, - 0x7E, - 0x8E, - 0x22, - 0x22, - 0x7E, - 0x68, - 0x97, - 0xB5, - 0xC4, - 0xC7, - 0xC4, - 0xC4, - 0xC4, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1B, - 0xC8, - 0xCD, - 0xD1, - 0xB5, - 0xB0, - 0x80, - 0xB7, - 0xB7, - 0xB8, - 0xC3, - 0xAC, - 0x80, - 0xC6, - 0xA1, - 0xB5, - 0xD2, - 0xCF, - 0xDA, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0F, - 0xC8, - 0xC9, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x04, - 0xD1, - 0xC8, - 0xC8, - 0xD2, - 0x05, - 0xC8, - 0x00, - 0x11, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xB6, - 0x05, - 0xC2, - 0x00, - 0x41, - 0xC6, - 0xC6, - 0xCA, - 0xC1, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB7, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC1, - 0xC2, - 0xC1, - 0xC2, - 0xC6, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xB2, - 0xE3, - 0x86, - 0xB2, - 0xE3, - 0x61, - 0xE4, - 0xBB, - 0xA8, - 0xD8, - 0xD0, - 0x7F, - 0x9F, - 0x32, - 0x85, - 0x70, - 0x7B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x1A, - 0xCC, - 0x85, - 0xD0, - 0xDD, - 0xB2, - 0xB2, - 0xB2, - 0xE3, - 0xE3, - 0x98, - 0x9C, - 0xA4, - 0xA3, - 0x86, - 0xD4, - 0xD4, - 0xCB, - 0xC6, - 0xC2, - 0xCD, - 0xD1, - 0xD9, - 0xC7, - 0xDA, - 0xD1, - 0xD1, - 0x08, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0x04, - 0xD7, - 0x00, - 0x16, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0x07, - 0xD7, - 0x00, - 0x10, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xDA, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x0A, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x11, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xC9, - 0xC9, - 0xC2, - 0xB5, - 0xA1, - 0xB5, - 0x96, - 0x22, - 0x16, - 0x00, - 0x09, - 0x15, - 0x00, - 0x0A, - 0x1A, - 0x22, - 0xC7, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x32, - 0xCD, - 0xCD, - 0xD1, - 0xD1, - 0xCD, - 0xCD, - 0xB5, - 0xA1, - 0xA9, - 0x97, - 0x97, - 0xAD, - 0xAD, - 0xAE, - 0xB8, - 0xAA, - 0x8D, - 0xB0, - 0xB5, - 0xB5, - 0xD2, - 0xCF, - 0xD9, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xD1, - 0xD2, - 0xA1, - 0xCD, - 0x71, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xC4, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC2, - 0xCD, - 0xC9, - 0xB5, - 0xB6, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xB6, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xD2, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0x08, - 0xC8, - 0x00, - 0x0F, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xDA, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xC2, - 0xC9, - 0xC2, - 0xCD, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC1, - 0x00, - 0x07, - 0xC6, - 0x00, - 0x14, - 0xB6, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC6, - 0x00, - 0x1B, - 0xC1, - 0xC2, - 0xC6, - 0xC2, - 0xCA, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xB2, - 0xE3, - 0xA3, - 0xB1, - 0xA4, - 0x4A, - 0xE4, - 0xB3, - 0xEB, - 0xD0, - 0xBD, - 0xDE, - 0x1C, - 0x32, - 0x00, - 0x08, - 0x70, - 0x00, - 0x1B, - 0xD5, - 0xD0, - 0x74, - 0xA3, - 0xE3, - 0x9C, - 0x8A, - 0x6C, - 0xDC, - 0xBA, - 0x6D, - 0x6D, - 0xB9, - 0xA3, - 0x9B, - 0xC3, - 0xCA, - 0xC6, - 0xC6, - 0xC2, - 0xDA, - 0xC7, - 0xC7, - 0xC7, - 0xDA, - 0xD9, - 0xD7, - 0x00, - 0x08, - 0xC7, - 0x00, - 0x0B, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x0E, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0x04, - 0xD7, - 0x01, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0x0A, - 0xD9, - 0x00, - 0x1D, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0xD1, - 0xCD, - 0xC2, - 0xD2, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xAA, - 0x22, - 0x00, - 0x0C, - 0x15, - 0x00, - 0x4A, - 0x16, - 0x16, - 0x16, - 0x22, - 0xC7, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC8, - 0xB6, - 0xB0, - 0x78, - 0x97, - 0xAD, - 0x96, - 0xA2, - 0x7E, - 0x8F, - 0xAE, - 0x8E, - 0x78, - 0xC6, - 0xA1, - 0xB5, - 0xB5, - 0xC8, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xE0, - 0xB9, - 0xED, - 0xDC, - 0xC6, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xB5, - 0xC9, - 0xCD, - 0xC9, - 0xB6, - 0xC9, - 0xCD, - 0xB5, - 0xD2, - 0xC9, - 0xC9, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0x09, - 0xC8, - 0x01, - 0xCF, - 0x01, - 0xCF, - 0x06, - 0xC8, - 0x00, - 0x0A, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x74, - 0xC9, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xCA, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xB0, - 0xB0, - 0xCA, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC2, - 0xC1, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xAA, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xC6, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xE3, - 0xA3, - 0xD4, - 0xCE, - 0xA4, - 0xB9, - 0xDD, - 0xBB, - 0xD8, - 0xD0, - 0x7F, - 0x55, - 0x32, - 0x70, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x7B, - 0xD5, - 0xBE, - 0x7D, - 0xE3, - 0x9C, - 0x9C, - 0xDC, - 0xBA, - 0xD6, - 0x5E, - 0xD6, - 0x46, - 0xDD, - 0x6C, - 0xB9, - 0x9C, - 0xC5, - 0xB8, - 0xC1, - 0xC6, - 0xB6, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xDA, - 0xD9, - 0x09, - 0xC7, - 0x00, - 0x0A, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0x05, - 0xD7, - 0x00, - 0x11, - 0xD9, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xC7, - 0xD9, - 0xD7, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x1E, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xCF, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xD2, - 0xC4, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xC4, - 0xA1, - 0x22, - 0x12, - 0x15, - 0x00, - 0x46, - 0x1A, - 0x71, - 0xC4, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xB5, - 0xB6, - 0x78, - 0x97, - 0x96, - 0xA2, - 0x8F, - 0x7E, - 0x8F, - 0x8F, - 0x8F, - 0x96, - 0x8E, - 0x8D, - 0xA1, - 0xB0, - 0xB6, - 0xCD, - 0xC8, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xCF, - 0xD7, - 0xC8, - 0xC8, - 0xC4, - 0xE8, - 0x20, - 0x73, - 0xEE, - 0xCC, - 0x20, - 0xEE, - 0x8E, - 0xC4, - 0xCD, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xB6, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xC8, - 0xC4, - 0xD1, - 0x05, - 0xC8, - 0x00, - 0x16, - 0xD7, - 0xC4, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xB5, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xC7, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x1E, - 0xCD, - 0xCA, - 0xB6, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xCA, - 0xC6, - 0xC2, - 0xB6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0x04, - 0xC1, - 0x00, - 0x2A, - 0xC3, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xA2, - 0xD4, - 0xBF, - 0xC5, - 0xD4, - 0xA6, - 0x9A, - 0xBB, - 0xA7, - 0x76, - 0xAB, - 0x26, - 0x85, - 0x07, - 0x70, - 0x00, - 0x18, - 0x7B, - 0xCC, - 0x8C, - 0xBC, - 0x6E, - 0x9E, - 0xE3, - 0xA6, - 0xBA, - 0xD6, - 0x59, - 0x8B, - 0xBB, - 0x90, - 0xBB, - 0xB3, - 0x9A, - 0xBA, - 0xA6, - 0x9C, - 0xD4, - 0xAC, - 0xC1, - 0xB5, - 0x0F, - 0xC7, - 0x00, - 0x12, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0x07, - 0xD9, - 0x00, - 0x05, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x07, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0x00, - 0x0F, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xCF, - 0xCF, - 0xDA, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x0D, - 0xCD, - 0xD1, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xA1, - 0xC4, - 0xC4, - 0xA1, - 0xC7, - 0x22, - 0x00, - 0x13, - 0x15, - 0x00, - 0x04, - 0x16, - 0x16, - 0x71, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x1A, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xB6, - 0x78, - 0x9B, - 0x99, - 0x7E, - 0x68, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x96, - 0xAA, - 0x8D, - 0xA1, - 0xA1, - 0xD3, - 0xC4, - 0xCF, - 0x04, - 0xC7, - 0x00, - 0x14, - 0xCF, - 0xDA, - 0xCF, - 0xCA, - 0x20, - 0xE9, - 0xE0, - 0xC4, - 0xE0, - 0xA4, - 0x73, - 0xEC, - 0x71, - 0xB6, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0x04, - 0xB5, - 0x00, - 0x08, - 0xC4, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0x71, - 0xB5, - 0xCD, - 0x04, - 0xC8, - 0x00, - 0x05, - 0xCD, - 0xC4, - 0xC4, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0E, - 0xC4, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xC8, - 0xC4, - 0xCF, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0x00, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x03, - 0xB6, - 0xB6, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x06, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0x05, - 0xC6, - 0x00, - 0x0D, - 0xC1, - 0xC6, - 0xB6, - 0xC6, - 0xC6, - 0xC6, - 0xCA, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xAA, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x0A, - 0xA9, - 0xC6, - 0xC2, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x0D, - 0xC5, - 0xD4, - 0xBF, - 0xC5, - 0xC5, - 0xBF, - 0x6B, - 0x9A, - 0xBC, - 0xA5, - 0x7F, - 0x55, - 0x32, - 0x00, - 0x06, - 0x70, - 0x00, - 0x1C, - 0x7B, - 0x7B, - 0x7B, - 0x70, - 0xD5, - 0xBB, - 0x6C, - 0xE3, - 0xB9, - 0x74, - 0xD6, - 0x90, - 0x8B, - 0xBC, - 0xBC, - 0xBC, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0xD6, - 0x6F, - 0xDC, - 0xA4, - 0xBF, - 0xC3, - 0xB5, - 0xCF, - 0x04, - 0xC7, - 0x01, - 0xD7, - 0x0B, - 0xC7, - 0x01, - 0xD7, - 0x05, - 0xC7, - 0x00, - 0x09, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0x00, - 0x03, - 0xD7, - 0xD9, - 0xD9, - 0x00, - 0x07, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x0A, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0x04, - 0xDA, - 0x00, - 0x16, - 0xCF, - 0xDA, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xD2, - 0xD1, - 0xC8, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xA1, - 0xC4, - 0x1A, - 0x17, - 0x15, - 0x01, - 0x96, - 0x04, - 0xC8, - 0x00, - 0x59, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0x71, - 0xD6, - 0x42, - 0x8F, - 0x49, - 0xBB, - 0x31, - 0x82, - 0x98, - 0x94, - 0xE1, - 0xBA, - 0xB8, - 0xC6, - 0xD3, - 0xB2, - 0xE6, - 0xE6, - 0xCD, - 0xC8, - 0xC7, - 0xE4, - 0xED, - 0xE4, - 0x00, - 0xCF, - 0xD7, - 0xDF, - 0xE5, - 0xA1, - 0xC4, - 0xD3, - 0xE4, - 0x93, - 0xEB, - 0xE0, - 0x6E, - 0xDC, - 0xB5, - 0xCD, - 0xC9, - 0xE0, - 0xF1, - 0xDB, - 0xEF, - 0x71, - 0x52, - 0xDC, - 0xC9, - 0xCD, - 0xB5, - 0xCB, - 0xE4, - 0xED, - 0x8D, - 0xCD, - 0xC7, - 0xDC, - 0xED, - 0xE6, - 0xA4, - 0xB5, - 0xCF, - 0xCF, - 0xC7, - 0x9D, - 0xED, - 0xE4, - 0xE0, - 0xB2, - 0xDC, - 0xCF, - 0xCF, - 0xD4, - 0x8E, - 0x8E, - 0xD3, - 0xC4, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x06, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB6, - 0x07, - 0xC2, - 0x00, - 0x28, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xA9, - 0xC1, - 0xB0, - 0xC6, - 0xC2, - 0xC6, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xB7, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x07, - 0xC3, - 0x00, - 0x0F, - 0xC5, - 0xB8, - 0xAE, - 0xBF, - 0xCE, - 0xC5, - 0xB2, - 0x6C, - 0xB3, - 0x75, - 0x76, - 0x55, - 0x32, - 0x70, - 0x7B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x10, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0xCC, - 0xAB, - 0xE1, - 0xB9, - 0x98, - 0xDC, - 0xBA, - 0x5E, - 0x8B, - 0xBC, - 0xA8, - 0xA8, - 0x04, - 0xBC, - 0x00, - 0x09, - 0xBB, - 0xBB, - 0xB3, - 0x6F, - 0xBA, - 0xDC, - 0x9E, - 0xCE, - 0xC6, - 0x00, - 0x11, - 0xC7, - 0x00, - 0x17, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xDA, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x0C, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0x05, - 0xD9, - 0x00, - 0x07, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xC8, - 0xDA, - 0xCF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0F, - 0xD1, - 0xD1, - 0xCD, - 0xCD, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0x22, - 0x00, - 0x18, - 0x15, - 0x00, - 0x21, - 0x16, - 0x71, - 0xC4, - 0xC8, - 0xC8, - 0xCD, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xB5, - 0x8D, - 0x18, - 0xEC, - 0x82, - 0x42, - 0x19, - 0xD8, - 0x56, - 0x57, - 0x98, - 0x73, - 0xE5, - 0xAC, - 0xC1, - 0x42, - 0x18, - 0x18, - 0x73, - 0xCD, - 0xCB, - 0xEA, - 0x00, - 0x04, - 0x20, - 0x00, - 0x39, - 0xE2, - 0xC8, - 0x8E, - 0xEE, - 0xDF, - 0xDF, - 0x20, - 0x09, - 0xE5, - 0xCE, - 0xA1, - 0xEA, - 0xEE, - 0xB6, - 0xB5, - 0xB5, - 0xDB, - 0x20, - 0x93, - 0x93, - 0xDF, - 0xEE, - 0xEE, - 0xCD, - 0xCD, - 0xA1, - 0x20, - 0x18, - 0x20, - 0xCB, - 0xB5, - 0xE5, - 0x09, - 0x93, - 0x93, - 0x18, - 0xE5, - 0xCA, - 0xC8, - 0xEB, - 0x09, - 0x18, - 0x20, - 0xEA, - 0xE5, - 0xEE, - 0xC8, - 0xCF, - 0xED, - 0xED, - 0xE9, - 0x61, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xC2, - 0xC2, - 0xCA, - 0x00, - 0x0C, - 0xC2, - 0x00, - 0x18, - 0xC6, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xB6, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0xB0, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x0E, - 0xC1, - 0xC3, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB0, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x16, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xBF, - 0xB8, - 0xC5, - 0xB8, - 0xD4, - 0x74, - 0xB3, - 0x89, - 0x7F, - 0x26, - 0x70, - 0x70, - 0x70, - 0x7B, - 0x7B, - 0x70, - 0x05, - 0x95, - 0x00, - 0x1B, - 0xCC, - 0xBD, - 0x9A, - 0x52, - 0x4A, - 0xBA, - 0x5E, - 0x8B, - 0xA8, - 0xA8, - 0xBE, - 0xBE, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xB3, - 0xBB, - 0xB3, - 0x5E, - 0xE4, - 0xBA, - 0xB9, - 0xB1, - 0x80, - 0xB5, - 0x00, - 0x08, - 0xC7, - 0x01, - 0xD7, - 0x06, - 0xC7, - 0x00, - 0x35, - 0xD7, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xC4, - 0xDA, - 0xDA, - 0xC8, - 0xCF, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x03, - 0xC8, - 0xD1, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x08, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0x7E, - 0x16, - 0x04, - 0x17, - 0x15, - 0x15, - 0x00, - 0x58, - 0x16, - 0xC4, - 0xC8, - 0xB6, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xB6, - 0x80, - 0x20, - 0xBD, - 0x98, - 0x42, - 0x18, - 0xD8, - 0x69, - 0x57, - 0x82, - 0x93, - 0xFF, - 0x97, - 0xCB, - 0xEC, - 0x93, - 0xA4, - 0xA1, - 0x71, - 0xE9, - 0x20, - 0xED, - 0xA1, - 0xC4, - 0xE4, - 0xE5, - 0xC7, - 0xC7, - 0xEE, - 0x20, - 0xE5, - 0xE6, - 0xCB, - 0xE0, - 0xCD, - 0xB5, - 0xDF, - 0xE5, - 0xC4, - 0xB5, - 0xA1, - 0xEA, - 0xEE, - 0xCA, - 0xCA, - 0xDB, - 0x73, - 0xDF, - 0xC4, - 0xA1, - 0xE8, - 0x18, - 0xE4, - 0xC4, - 0xC4, - 0xDB, - 0x18, - 0xEB, - 0xCB, - 0xC4, - 0x6E, - 0xEE, - 0xA1, - 0xF0, - 0x20, - 0xEE, - 0xD4, - 0x8E, - 0xE9, - 0x20, - 0xEA, - 0xC7, - 0xB2, - 0xE8, - 0xE8, - 0xD4, - 0xDC, - 0x05, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x52, - 0xC2, - 0xCA, - 0xC6, - 0xB6, - 0xCA, - 0xB6, - 0xCA, - 0xC2, - 0xC6, - 0xB6, - 0xC6, - 0xC2, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xB7, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC1, - 0xB0, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0xB7, - 0xC6, - 0xC3, - 0xB7, - 0xC1, - 0xC6, - 0xC3, - 0xC6, - 0xC6, - 0xB7, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xD4, - 0xC3, - 0xCE, - 0xA3, - 0x42, - 0x75, - 0x5F, - 0x55, - 0x85, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x7B, - 0x06, - 0x95, - 0x00, - 0x43, - 0x85, - 0xD8, - 0x6E, - 0x9C, - 0x6E, - 0x5E, - 0xBC, - 0xBE, - 0xA7, - 0xA7, - 0xA7, - 0xA5, - 0xD0, - 0xD8, - 0xD0, - 0xD8, - 0xD0, - 0xD8, - 0xE8, - 0xBE, - 0xDB, - 0xBC, - 0xBB, - 0xD6, - 0x34, - 0xB9, - 0x8E, - 0xAA, - 0xA1, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xD7, - 0x01, - 0xD7, - 0x07, - 0xD9, - 0x00, - 0x05, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0x00, - 0x05, - 0xDA, - 0x01, - 0xCF, - 0x06, - 0xC8, - 0x00, - 0x70, - 0xD1, - 0xD1, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xA1, - 0x16, - 0x16, - 0x15, - 0x15, - 0x1B, - 0x17, - 0x1B, - 0x17, - 0x1B, - 0x1D, - 0x17, - 0x1D, - 0x16, - 0x15, - 0x15, - 0x15, - 0x17, - 0x1D, - 0x1B, - 0x17, - 0x17, - 0x1B, - 0x1B, - 0x17, - 0x15, - 0x15, - 0x15, - 0x16, - 0x22, - 0xC8, - 0xB6, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC9, - 0xB5, - 0x78, - 0x20, - 0xE9, - 0x8F, - 0x6F, - 0x18, - 0xD0, - 0x34, - 0x69, - 0x77, - 0x93, - 0xBD, - 0x52, - 0x97, - 0xE5, - 0xFD, - 0x8D, - 0xA1, - 0xA1, - 0x73, - 0xEE, - 0xC4, - 0xC4, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC4, - 0xE4, - 0x73, - 0xEB, - 0xD6, - 0xA1, - 0xA1, - 0xB5, - 0xCD, - 0xEA, - 0xEE, - 0xB5, - 0xB5, - 0xB5, - 0xEA, - 0x73, - 0xCA, - 0xA1, - 0xE0, - 0xFD, - 0xEE, - 0xA1, - 0xC4, - 0xE2, - 0x93, - 0xC8, - 0xC8, - 0xA1, - 0xEE, - 0x73, - 0xE0, - 0xA1, - 0x04, - 0xC4, - 0x00, - 0x13, - 0xDB, - 0x18, - 0xE6, - 0xCF, - 0xCF, - 0xA1, - 0xDF, - 0xE5, - 0x71, - 0xC4, - 0xC7, - 0xCF, - 0xCF, - 0xE0, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xC2, - 0xC2, - 0xC6, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x0A, - 0xC6, - 0xCA, - 0xC2, - 0xC6, - 0xB0, - 0xCA, - 0xC6, - 0xC6, - 0xC1, - 0xB6, - 0x07, - 0xC1, - 0x00, - 0x0B, - 0xA9, - 0xC6, - 0xC2, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x03, - 0xC1, - 0xC3, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x0C, - 0xC6, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x0E, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xCB, - 0x9C, - 0x5E, - 0x89, - 0x55, - 0x32, - 0x70, - 0x7B, - 0x7B, - 0x04, - 0x95, - 0x00, - 0x0F, - 0x92, - 0x92, - 0x95, - 0x95, - 0x95, - 0xC0, - 0xA8, - 0x4A, - 0x6E, - 0x59, - 0xA8, - 0xAF, - 0xA0, - 0xB4, - 0xDE, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x11, - 0xE2, - 0xD0, - 0xE2, - 0xEB, - 0xD8, - 0xEB, - 0xD8, - 0xE2, - 0xD8, - 0xD8, - 0xE8, - 0xBB, - 0xD6, - 0x61, - 0xD4, - 0x8D, - 0xB5, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x0A, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0x04, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0x05, - 0xD9, - 0x01, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x03, - 0xD7, - 0xD9, - 0xDA, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xD7, - 0x08, - 0xD9, - 0x00, - 0x12, - 0xDA, - 0xCF, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xC9, - 0xC9, - 0xD2, - 0xC9, - 0xB6, - 0xE0, - 0x22, - 0x00, - 0x04, - 0x15, - 0x00, - 0x15, - 0x20, - 0x20, - 0x20, - 0x1C, - 0x17, - 0x09, - 0x09, - 0x73, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x93, - 0x09, - 0x20, - 0x20, - 0x15, - 0x09, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x04, - 0x16, - 0x00, - 0x1E, - 0xC4, - 0xC4, - 0xB5, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xB5, - 0xCA, - 0x20, - 0xE9, - 0x68, - 0x42, - 0x18, - 0xE2, - 0x22, - 0x72, - 0x69, - 0x93, - 0xBD, - 0x99, - 0x9B, - 0xE5, - 0xDF, - 0x8D, - 0x8D, - 0xD4, - 0x09, - 0xE5, - 0x05, - 0xE6, - 0x00, - 0x20, - 0xC7, - 0xF4, - 0x08, - 0x73, - 0xEC, - 0x73, - 0x73, - 0xF0, - 0xC9, - 0xC8, - 0xDF, - 0xE5, - 0xC4, - 0x71, - 0xA1, - 0xE4, - 0x73, - 0x73, - 0xEC, - 0xE6, - 0xCC, - 0xEE, - 0xC8, - 0xB5, - 0xEB, - 0x18, - 0xC9, - 0xC8, - 0xC7, - 0x73, - 0xFD, - 0xE1, - 0x04, - 0xE6, - 0x00, - 0x14, - 0xA1, - 0xEB, - 0x09, - 0x8D, - 0xCF, - 0xCF, - 0xC4, - 0xFD, - 0xEA, - 0xD9, - 0xC8, - 0xC4, - 0xC8, - 0xC8, - 0xD9, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xB6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0x05, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x26, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xAA, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB8, - 0xC6, - 0xC5, - 0xB9, - 0x66, - 0x7F, - 0x32, - 0x70, - 0x7B, - 0x04, - 0x95, - 0x06, - 0x92, - 0x00, - 0x2D, - 0x70, - 0x9F, - 0xDB, - 0x42, - 0x59, - 0xD8, - 0xA0, - 0xAB, - 0xDE, - 0xDE, - 0xB4, - 0xA0, - 0xD0, - 0xA8, - 0xDB, - 0xDB, - 0xE1, - 0xB3, - 0xE6, - 0xE6, - 0xB3, - 0xE1, - 0xE1, - 0xDB, - 0xE8, - 0xD8, - 0xEB, - 0xBE, - 0xE8, - 0xB3, - 0x6E, - 0xD4, - 0xB5, - 0xC4, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xCF, - 0xC7, - 0xD9, - 0xC7, - 0x00, - 0x08, - 0xD7, - 0x00, - 0x1A, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0x06, - 0xDA, - 0x00, - 0x05, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x12, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xB6, - 0xD2, - 0xCD, - 0xB6, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC7, - 0x16, - 0x04, - 0x15, - 0x00, - 0x74, - 0x20, - 0x09, - 0x20, - 0x1C, - 0x15, - 0x7B, - 0x20, - 0x20, - 0x20, - 0x15, - 0x15, - 0x1D, - 0x09, - 0x09, - 0x73, - 0x1E, - 0x15, - 0x18, - 0x19, - 0x19, - 0x1C, - 0x16, - 0x15, - 0x15, - 0x15, - 0x22, - 0xC4, - 0xC4, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xB6, - 0x80, - 0x20, - 0xE9, - 0x68, - 0x42, - 0x18, - 0xBD, - 0x34, - 0x72, - 0x33, - 0x93, - 0xE5, - 0x7E, - 0x7E, - 0xE5, - 0xDF, - 0xD3, - 0xA1, - 0xCB, - 0x18, - 0x73, - 0xDF, - 0xFD, - 0xDF, - 0x73, - 0x73, - 0xC7, - 0xE6, - 0x18, - 0xA6, - 0xC4, - 0xD3, - 0x93, - 0xE9, - 0xC4, - 0x71, - 0xDF, - 0xFD, - 0xA1, - 0xC4, - 0x71, - 0xB5, - 0xF1, - 0xE1, - 0xE9, - 0x73, - 0x73, - 0xFD, - 0x71, - 0xC4, - 0xEB, - 0x19, - 0xC8, - 0x71, - 0xD3, - 0xDF, - 0x93, - 0xDF, - 0xDF, - 0xDF, - 0x73, - 0x18, - 0x8D, - 0xE8, - 0x09, - 0xDC, - 0xCF, - 0xC8, - 0xC7, - 0xDF, - 0xEE, - 0xC8, - 0xC8, - 0xC7, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x2F, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xB6, - 0xC6, - 0xC6, - 0xC2, - 0xCA, - 0xC6, - 0xC2, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xB7, - 0xC6, - 0xB7, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x1B, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xAC, - 0xC6, - 0xC1, - 0xC5, - 0xBA, - 0x91, - 0x2A, - 0x2D, - 0x7B, - 0x95, - 0x95, - 0x00, - 0x09, - 0x92, - 0x00, - 0x05, - 0xCC, - 0xDE, - 0xB3, - 0xDC, - 0xD6, - 0x00, - 0x04, - 0xD8, - 0x00, - 0x26, - 0xDB, - 0xBB, - 0xBA, - 0x4A, - 0xF0, - 0x8E, - 0xF4, - 0xD3, - 0xE0, - 0xD3, - 0xF4, - 0xCA, - 0xCA, - 0xCE, - 0xA4, - 0xDC, - 0xD6, - 0xDB, - 0xE8, - 0xD0, - 0xE2, - 0xD8, - 0xDB, - 0xBA, - 0xCE, - 0xCA, - 0xC4, - 0xC7, - 0xC4, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0x05, - 0xD9, - 0x00, - 0x05, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0x00, - 0x28, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xCF, - 0xD9, - 0xDA, - 0xC8, - 0xDA, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xB6, - 0xB5, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0x53, - 0x00, - 0x05, - 0x15, - 0x00, - 0x74, - 0x93, - 0x18, - 0x19, - 0x1C, - 0x15, - 0x17, - 0x09, - 0x09, - 0x09, - 0x1C, - 0x15, - 0x73, - 0x20, - 0x20, - 0x73, - 0x15, - 0x15, - 0x93, - 0x09, - 0x19, - 0x1C, - 0x16, - 0x15, - 0x15, - 0x16, - 0x16, - 0xC4, - 0xC4, - 0xCD, - 0xC8, - 0xC8, - 0xC4, - 0xC8, - 0xE0, - 0x8D, - 0x93, - 0xE9, - 0x7E, - 0x31, - 0x18, - 0xEE, - 0x4E, - 0x34, - 0x31, - 0x93, - 0xE5, - 0x8F, - 0x99, - 0xE5, - 0xDF, - 0x71, - 0x8E, - 0xC4, - 0x73, - 0xFD, - 0xC4, - 0xA1, - 0xC7, - 0x73, - 0xE5, - 0xC7, - 0xEB, - 0x20, - 0xCB, - 0xC7, - 0xC7, - 0x73, - 0xE5, - 0xA1, - 0xC4, - 0xFD, - 0x20, - 0xEC, - 0xB5, - 0xB5, - 0xC4, - 0xC4, - 0x71, - 0xC4, - 0xC7, - 0x73, - 0xE5, - 0xCD, - 0xB5, - 0xEB, - 0x18, - 0xE0, - 0xC4, - 0xCD, - 0xE5, - 0x73, - 0xF4, - 0xE0, - 0xC4, - 0xE5, - 0x73, - 0xC8, - 0x9D, - 0x09, - 0xEB, - 0xD9, - 0xC4, - 0xC4, - 0xEA, - 0xE5, - 0x71, - 0xC4, - 0xC8, - 0xCF, - 0xC8, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x19, - 0xC2, - 0xB0, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xCA, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xB0, - 0xA9, - 0xA9, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x0A, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0x09, - 0xC3, - 0x00, - 0x1F, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC6, - 0xC6, - 0xAE, - 0x46, - 0x7A, - 0x32, - 0x70, - 0x95, - 0x92, - 0x95, - 0x95, - 0x00, - 0x05, - 0x92, - 0x00, - 0x11, - 0x95, - 0x95, - 0x92, - 0xCC, - 0xD0, - 0xA6, - 0xD4, - 0xA4, - 0xF5, - 0xB9, - 0x86, - 0xF7, - 0xF4, - 0xE0, - 0xF4, - 0xE0, - 0xD7, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x12, - 0xD9, - 0xE0, - 0xE0, - 0xC4, - 0xD7, - 0xE0, - 0xD3, - 0xD4, - 0xDD, - 0xBB, - 0xD8, - 0xE2, - 0xD0, - 0xD8, - 0xBC, - 0xDC, - 0x9B, - 0xC4, - 0x05, - 0xC7, - 0x00, - 0x04, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0x05, - 0xD9, - 0x00, - 0x0D, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0x00, - 0x06, - 0xD9, - 0x00, - 0x15, - 0xDA, - 0xD7, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD1, - 0xDA, - 0xDA, - 0xC8, - 0xD1, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x10, - 0xD1, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xC9, - 0xC9, - 0xC9, - 0x22, - 0x05, - 0x15, - 0x00, - 0x74, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x15, - 0x17, - 0x1C, - 0x09, - 0x09, - 0x20, - 0x2D, - 0x20, - 0x20, - 0x09, - 0x1B, - 0x15, - 0x15, - 0x20, - 0x20, - 0x19, - 0x1C, - 0x16, - 0x15, - 0x15, - 0x16, - 0x16, - 0xA1, - 0xA1, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xA1, - 0xA1, - 0x8D, - 0x20, - 0xE9, - 0xB2, - 0xE4, - 0x20, - 0x93, - 0xCC, - 0xD0, - 0xDE, - 0x18, - 0xBC, - 0x56, - 0xBC, - 0xFD, - 0x73, - 0xDB, - 0xE6, - 0x78, - 0xE1, - 0x20, - 0xE2, - 0xE4, - 0xE2, - 0x20, - 0xE4, - 0xC7, - 0xE7, - 0x20, - 0xEC, - 0xA4, - 0xE8, - 0x09, - 0xE5, - 0xE1, - 0xA1, - 0xDF, - 0xEE, - 0x93, - 0xDF, - 0xDB, - 0xE4, - 0xEA, - 0xE2, - 0xE6, - 0xEB, - 0x20, - 0xDB, - 0xA1, - 0xE6, - 0xE5, - 0x18, - 0xDB, - 0xDB, - 0xCD, - 0x9D, - 0x09, - 0xE5, - 0xDC, - 0xE8, - 0x18, - 0xE8, - 0xC8, - 0xC4, - 0xE5, - 0x20, - 0xEC, - 0xE1, - 0xEC, - 0x73, - 0xEA, - 0xC4, - 0xC7, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x27, - 0xCA, - 0xC6, - 0xC6, - 0xC2, - 0xB0, - 0xA9, - 0xB6, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xB6, - 0xC6, - 0xB0, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0x00, - 0x07, - 0xC3, - 0x00, - 0x0D, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xAA, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xB7, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x13, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xCA, - 0xA1, - 0x7E, - 0x5A, - 0x7F, - 0x85, - 0x7B, - 0x95, - 0x95, - 0x92, - 0x92, - 0x95, - 0x92, - 0x92, - 0x00, - 0x04, - 0x95, - 0x00, - 0x13, - 0x7B, - 0xC0, - 0xBC, - 0xF7, - 0xF4, - 0xE0, - 0xD7, - 0xF4, - 0xD7, - 0xD3, - 0xE0, - 0xE0, - 0xD7, - 0xF4, - 0xF4, - 0xE0, - 0xE0, - 0xF4, - 0xF4, - 0x00, - 0x06, - 0xE0, - 0x00, - 0x27, - 0xC7, - 0xD9, - 0xC4, - 0x78, - 0xE3, - 0xD6, - 0xBC, - 0xA7, - 0xE9, - 0xE2, - 0xD8, - 0xBB, - 0x4A, - 0xA1, - 0xC4, - 0xD9, - 0xD9, - 0xCF, - 0xD7, - 0xD7, - 0xC8, - 0xD9, - 0xD7, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0xCF, - 0xCF, - 0xD7, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0x00, - 0x06, - 0xDA, - 0x00, - 0x2B, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xC4, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xCF, - 0xC8, - 0xDA, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0x16, - 0x00, - 0x05, - 0x15, - 0x00, - 0x08, - 0x20, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x17, - 0x20, - 0x04, - 0x09, - 0x00, - 0x09, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x5A, - 0x22, - 0xC4, - 0xC8, - 0xC8, - 0xD2, - 0xB5, - 0xE0, - 0xD3, - 0xCE, - 0x73, - 0xEC, - 0x49, - 0xBA, - 0x93, - 0xBB, - 0xE5, - 0x73, - 0x20, - 0xE5, - 0x56, - 0x3B, - 0x93, - 0x20, - 0x20, - 0x73, - 0xEE, - 0x80, - 0xCB, - 0xDB, - 0x73, - 0x18, - 0x73, - 0xE6, - 0xC7, - 0xD9, - 0xC7, - 0xE6, - 0xE5, - 0x93, - 0xFD, - 0xEB, - 0xE5, - 0xDF, - 0x8D, - 0xE5, - 0xE8, - 0xE7, - 0xE5, - 0xE9, - 0xE7, - 0xEC, - 0xDF, - 0x20, - 0x73, - 0xE9, - 0xCB, - 0xC4, - 0xDF, - 0x20, - 0x18, - 0x73, - 0x73, - 0xB5, - 0xC4, - 0xE4, - 0xDF, - 0x09, - 0x73, - 0xEB, - 0xC4, - 0xC8, - 0xC8, - 0xA1, - 0xEC, - 0x73, - 0x93, - 0xFD, - 0x93, - 0xEE, - 0xC7, - 0xC8, - 0xC7, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xA9, - 0xC2, - 0xB6, - 0xC1, - 0xC6, - 0xB0, - 0xC1, - 0xC6, - 0xC6, - 0xA9, - 0xA9, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x0F, - 0xC2, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x04, - 0xC5, - 0xC1, - 0xC3, - 0xB8, - 0x05, - 0xC3, - 0x05, - 0xC1, - 0x01, - 0xC6, - 0x04, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x0C, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB0, - 0xB0, - 0xD4, - 0x5A, - 0x2F, - 0x2D, - 0x7B, - 0x08, - 0x92, - 0x00, - 0x3E, - 0x95, - 0x95, - 0x92, - 0x7B, - 0xD5, - 0xE6, - 0xE0, - 0xE0, - 0xE0, - 0xF4, - 0xE0, - 0xE0, - 0xE0, - 0xD7, - 0xF4, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xD3, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xE0, - 0xE0, - 0xDA, - 0xC4, - 0xC6, - 0xB2, - 0xBA, - 0xBB, - 0xBE, - 0xD0, - 0xD0, - 0xE2, - 0xBC, - 0xE6, - 0x97, - 0xC9, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xD9, - 0xCF, - 0xC7, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xCF, - 0xD9, - 0xD9, - 0x0B, - 0xDA, - 0x00, - 0x2C, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xDA, - 0xC8, - 0xDA, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0x16, - 0x16, - 0x04, - 0x15, - 0x00, - 0x15, - 0x93, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x17, - 0x1C, - 0x73, - 0x09, - 0x09, - 0x09, - 0x73, - 0x17, - 0x15, - 0x15, - 0x15, - 0x73, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x5A, - 0x22, - 0xA1, - 0xC8, - 0xCD, - 0xC2, - 0xD3, - 0xD3, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0x9D, - 0xE4, - 0xE4, - 0xB3, - 0xE6, - 0x9A, - 0xE4, - 0xBA, - 0x3B, - 0x35, - 0xD4, - 0xE5, - 0xDF, - 0xCB, - 0xD3, - 0x80, - 0x80, - 0xA1, - 0xE0, - 0xCB, - 0xD7, - 0xC4, - 0xC4, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xA1, - 0xD7, - 0xC4, - 0xC7, - 0xC4, - 0xC4, - 0xC4, - 0x71, - 0xB5, - 0x80, - 0xCA, - 0xB5, - 0xA1, - 0xA1, - 0xD3, - 0xC4, - 0xC9, - 0xA1, - 0xA1, - 0xB5, - 0xEB, - 0x18, - 0xE0, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC8, - 0xC6, - 0xD1, - 0xC4, - 0xC9, - 0xC8, - 0xC8, - 0xC4, - 0xC4, - 0xC8, - 0xCF, - 0xC7, - 0xDF, - 0xE5, - 0xA1, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xD9, - 0xD9, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x22, - 0xC2, - 0xB0, - 0xC6, - 0xA9, - 0xA9, - 0xC6, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xB7, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0x05, - 0xB8, - 0x00, - 0x03, - 0xC3, - 0xB8, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x01, - 0xC6, - 0x05, - 0xC1, - 0x00, - 0x1C, - 0xB7, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB0, - 0xB0, - 0x7E, - 0x66, - 0x2C, - 0x2D, - 0x95, - 0x92, - 0x92, - 0x95, - 0x92, - 0x60, - 0x60, - 0x04, - 0x92, - 0x00, - 0x04, - 0x95, - 0x70, - 0xE9, - 0xF0, - 0x04, - 0xF4, - 0x00, - 0x12, - 0xD7, - 0xD7, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xF4, - 0xD3, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xCB, - 0xF4, - 0xD3, - 0xF7, - 0x04, - 0xE0, - 0x00, - 0x29, - 0xC4, - 0xC1, - 0xC5, - 0xBA, - 0xD6, - 0xBC, - 0xD0, - 0xD0, - 0xD0, - 0xE2, - 0xB3, - 0x4A, - 0xA1, - 0xCF, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0xD7, - 0xCF, - 0xD9, - 0xD9, - 0xC4, - 0xCF, - 0xD9, - 0xDA, - 0xCF, - 0xC4, - 0xCF, - 0xDA, - 0xDA, - 0xDA, - 0xD1, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x28, - 0xD9, - 0xCF, - 0xD9, - 0xDA, - 0xD1, - 0xCF, - 0xDA, - 0xCF, - 0xC8, - 0xC8, - 0xDA, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xC2, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0x15, - 0x16, - 0x04, - 0x15, - 0x00, - 0x04, - 0x20, - 0x09, - 0x20, - 0xE5, - 0x04, - 0x15, - 0x00, - 0x05, - 0x93, - 0x19, - 0x09, - 0x09, - 0x1C, - 0x00, - 0x04, - 0x15, - 0x00, - 0x2C, - 0x20, - 0x19, - 0x19, - 0xE5, - 0x15, - 0x15, - 0x15, - 0x16, - 0x16, - 0x1A, - 0xC7, - 0xD2, - 0xD2, - 0xD3, - 0xF4, - 0xCB, - 0xCE, - 0xF1, - 0xDB, - 0xE4, - 0xE4, - 0xE4, - 0xE6, - 0xE1, - 0xED, - 0xE6, - 0xB3, - 0x6F, - 0xE4, - 0xB9, - 0xB2, - 0xE5, - 0xDF, - 0xCB, - 0x80, - 0xAA, - 0xAA, - 0x8D, - 0xCA, - 0xB0, - 0xC9, - 0xD2, - 0xCF, - 0xDA, - 0x04, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x16, - 0xB5, - 0xB5, - 0xA1, - 0xC9, - 0xB5, - 0xA1, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xEB, - 0x09, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xB6, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0x06, - 0xC8, - 0x00, - 0x0E, - 0xC4, - 0xEA, - 0xEE, - 0xC8, - 0xD9, - 0xC7, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x19, - 0xC2, - 0x71, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xB6, - 0xCA, - 0xCA, - 0xA9, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x03, - 0xC1, - 0xC3, - 0xB7, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x08, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC3, - 0x04, - 0xC1, - 0x00, - 0x09, - 0xC6, - 0xC6, - 0xC3, - 0xC3, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x0E, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB6, - 0xC2, - 0xA3, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x95, - 0x07, - 0x92, - 0x00, - 0x0A, - 0x95, - 0x95, - 0x92, - 0xCC, - 0xBC, - 0xA4, - 0xE0, - 0xF4, - 0xD7, - 0xE0, - 0x05, - 0xF4, - 0x00, - 0x07, - 0xD3, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xCE, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x27, - 0xCE, - 0xCB, - 0xF7, - 0xD3, - 0xF4, - 0xC9, - 0xE0, - 0xD1, - 0xC6, - 0x8F, - 0xBA, - 0xB3, - 0x8B, - 0xBE, - 0xD0, - 0xD0, - 0xD8, - 0xDB, - 0x61, - 0xD3, - 0xC4, - 0xCF, - 0xD9, - 0xDA, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xD9, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xDA, - 0xCF, - 0xC8, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x08, - 0xDA, - 0xD1, - 0xDA, - 0xDA, - 0xDA, - 0xD1, - 0xDA, - 0xDA, - 0x05, - 0xCF, - 0x00, - 0x10, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x0B, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0x00, - 0x06, - 0x15, - 0x00, - 0x04, - 0x20, - 0x20, - 0x73, - 0x1C, - 0x04, - 0x15, - 0x00, - 0x05, - 0x1E, - 0x20, - 0x09, - 0x09, - 0x1E, - 0x00, - 0x04, - 0x15, - 0x00, - 0x34, - 0x20, - 0x19, - 0x19, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x16, - 0x16, - 0x1A, - 0xC7, - 0xC9, - 0xCA, - 0xCA, - 0xCB, - 0x00, - 0xF1, - 0xE7, - 0x09, - 0xEE, - 0xE4, - 0xE6, - 0xED, - 0xDB, - 0xE6, - 0xE1, - 0xE6, - 0xE4, - 0x9D, - 0x9D, - 0xA4, - 0xBB, - 0xE8, - 0xC3, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xA1, - 0xB5, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC8, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x2B, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xA1, - 0x71, - 0xE0, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xBA, - 0xEB, - 0xC9, - 0xC2, - 0xC9, - 0xC9, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xEA, - 0xD5, - 0xE0, - 0xCF, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x01, - 0xB7, - 0x04, - 0xC3, - 0x00, - 0x04, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0x05, - 0xC3, - 0x00, - 0x0A, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0x04, - 0xC1, - 0x00, - 0x11, - 0xC3, - 0xC1, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xC6, - 0xC2, - 0x94, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x00, - 0x04, - 0x92, - 0x00, - 0x09, - 0x60, - 0x92, - 0x92, - 0x95, - 0x92, - 0x92, - 0x95, - 0x8C, - 0xE6, - 0x00, - 0x09, - 0xF4, - 0x00, - 0x23, - 0xF7, - 0xF7, - 0xF7, - 0xCB, - 0xF1, - 0x00, - 0xD4, - 0xF1, - 0x00, - 0xD4, - 0xF1, - 0xCE, - 0xF1, - 0xF7, - 0xD4, - 0x00, - 0xCE, - 0xF7, - 0xF4, - 0xF4, - 0xE0, - 0xC3, - 0xE3, - 0xBA, - 0x5E, - 0x8B, - 0xBE, - 0xA7, - 0xD0, - 0xD8, - 0xDB, - 0x6E, - 0x8D, - 0xC4, - 0xD9, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x06, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xC4, - 0x07, - 0xCF, - 0x00, - 0x1F, - 0xC4, - 0xCF, - 0xDA, - 0xC8, - 0xDA, - 0xDA, - 0xD1, - 0xD1, - 0xDA, - 0xD1, - 0xDA, - 0xC8, - 0xDA, - 0xC8, - 0xCF, - 0xD1, - 0xD1, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x04, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0x04, - 0xB5, - 0x00, - 0x05, - 0xC9, - 0xC9, - 0xC2, - 0xB5, - 0x71, - 0x00, - 0x06, - 0x15, - 0x00, - 0x04, - 0x20, - 0x09, - 0x09, - 0x1C, - 0x05, - 0x15, - 0x00, - 0x04, - 0x73, - 0x19, - 0x19, - 0x20, - 0x04, - 0x15, - 0x00, - 0x05, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x16, - 0x00, - 0x04, - 0x15, - 0x00, - 0x0F, - 0x1A, - 0xC7, - 0xC4, - 0xCA, - 0xD3, - 0xF7, - 0xCE, - 0xF1, - 0xF0, - 0xEB, - 0xE6, - 0xE4, - 0xE6, - 0xE6, - 0xED, - 0x00, - 0x04, - 0xE6, - 0x00, - 0x11, - 0xDC, - 0xDC, - 0x86, - 0xB2, - 0xC5, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xC9, - 0xCD, - 0xC8, - 0xC4, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x05, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x1E, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xE9, - 0xE9, - 0xD7, - 0x05, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0xC8, - 0xD7, - 0xC8, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0x05, - 0xC1, - 0x00, - 0x0C, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC1, - 0xC3, - 0xB7, - 0x05, - 0xC3, - 0x01, - 0xB8, - 0x04, - 0xC3, - 0x00, - 0x09, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x08, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB7, - 0xC3, - 0x06, - 0xC1, - 0x00, - 0x03, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x0C, - 0xC3, - 0xC1, - 0xCA, - 0x7E, - 0x75, - 0x2A, - 0x70, - 0x95, - 0x92, - 0x92, - 0x92, - 0x60, - 0x06, - 0x92, - 0x00, - 0x0F, - 0x70, - 0xD0, - 0xE7, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xF7, - 0xCE, - 0x00, - 0xF1, - 0x00, - 0x05, - 0xF0, - 0x01, - 0xE3, - 0x04, - 0xF0, - 0x00, - 0x40, - 0xE3, - 0xF1, - 0xD4, - 0xF1, - 0xF1, - 0xD4, - 0xCE, - 0xF7, - 0xC3, - 0xBF, - 0x9C, - 0xBA, - 0xD6, - 0x5B, - 0xA8, - 0xBE, - 0xD8, - 0xA8, - 0xDB, - 0xBA, - 0x8E, - 0xC8, - 0xDA, - 0xDA, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xC4, - 0xCF, - 0xCF, - 0xC4, - 0xD1, - 0xCF, - 0xCF, - 0xC8, - 0xDA, - 0xC8, - 0xD1, - 0xD9, - 0xCF, - 0xCF, - 0xDA, - 0xD2, - 0xC8, - 0xD1, - 0xD2, - 0xC8, - 0xC8, - 0xD1, - 0xD1, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xC8, - 0x04, - 0xCD, - 0x01, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x0F, - 0xB6, - 0xB6, - 0xD2, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xC9, - 0xC2, - 0xB5, - 0xA1, - 0x00, - 0x06, - 0x15, - 0x00, - 0x16, - 0x20, - 0x20, - 0x09, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x7B, - 0x17, - 0x17, - 0x19, - 0x19, - 0x19, - 0x1D, - 0x15, - 0x15, - 0x15, - 0x93, - 0x18, - 0x19, - 0x1C, - 0x16, - 0x04, - 0x15, - 0x00, - 0x25, - 0x1A, - 0xC7, - 0xD2, - 0xCA, - 0xD3, - 0xCE, - 0xF1, - 0xA4, - 0xA4, - 0xFC, - 0xE4, - 0xFA, - 0xED, - 0xED, - 0xE6, - 0xED, - 0xE6, - 0xE6, - 0xE4, - 0xE4, - 0xE7, - 0x49, - 0xBF, - 0xAC, - 0xAC, - 0xC3, - 0xC1, - 0x8D, - 0xC3, - 0xAA, - 0xC6, - 0xB0, - 0xC2, - 0xC9, - 0xC8, - 0xC8, - 0xCF, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x1B, - 0xD7, - 0xC7, - 0xC9, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xB6, - 0xC9, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x06, - 0xC8, - 0x00, - 0x0C, - 0xC7, - 0xC4, - 0xCF, - 0xC7, - 0xC8, - 0xD7, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x14, - 0xC1, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x10, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB7, - 0xC5, - 0x06, - 0xC3, - 0x00, - 0x2A, - 0xC1, - 0xC3, - 0xB7, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0x9B, - 0xC5, - 0x8D, - 0xB5, - 0x7E, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x92, - 0x92, - 0x60, - 0x60, - 0x92, - 0x60, - 0x60, - 0x92, - 0x95, - 0x7B, - 0xDF, - 0xBC, - 0xF7, - 0x06, - 0xF4, - 0x00, - 0x42, - 0xF7, - 0xF7, - 0x00, - 0xF1, - 0xE3, - 0xF0, - 0xEF, - 0xE7, - 0xF5, - 0xE7, - 0xF5, - 0xE7, - 0xF5, - 0xF5, - 0xE7, - 0xF0, - 0xE7, - 0xF5, - 0xF5, - 0xE7, - 0xE3, - 0xF0, - 0xE3, - 0xF0, - 0x8E, - 0xF1, - 0xE3, - 0x7D, - 0xDC, - 0xD6, - 0x90, - 0x8B, - 0xBC, - 0xD8, - 0xD8, - 0xE1, - 0xDD, - 0xA2, - 0xD2, - 0xDA, - 0xD9, - 0xC8, - 0xCF, - 0xC4, - 0xDA, - 0xC4, - 0xD1, - 0xCF, - 0xD1, - 0xC8, - 0xC4, - 0xD2, - 0xCF, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xC4, - 0xC4, - 0xCF, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0x04, - 0xD1, - 0x00, - 0x1C, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xD2, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xCD, - 0xB5, - 0xC2, - 0xC9, - 0xCD, - 0xC2, - 0x04, - 0xB5, - 0x00, - 0x04, - 0xA1, - 0xC7, - 0x16, - 0x16, - 0x04, - 0x15, - 0x00, - 0x15, - 0x20, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x1C, - 0x20, - 0x7B, - 0x15, - 0x2D, - 0x09, - 0x20, - 0x73, - 0x15, - 0x15, - 0x15, - 0x20, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x4A, - 0x22, - 0xD2, - 0xCD, - 0xB0, - 0xF4, - 0xCE, - 0xD4, - 0xF0, - 0x35, - 0xE8, - 0xED, - 0xE6, - 0xE6, - 0xED, - 0xEC, - 0xE8, - 0xE4, - 0xE6, - 0xE4, - 0xE8, - 0xED, - 0xA4, - 0xD4, - 0xA4, - 0xDB, - 0xED, - 0x35, - 0x8E, - 0xED, - 0xCE, - 0xBA, - 0xE6, - 0xCB, - 0xB5, - 0xD7, - 0xC4, - 0xE6, - 0x9D, - 0xC7, - 0xE4, - 0xF5, - 0xC7, - 0xE0, - 0xE6, - 0xA4, - 0xC4, - 0xC4, - 0xA1, - 0xE6, - 0xE7, - 0xCD, - 0xC9, - 0xCD, - 0xE6, - 0xE7, - 0xC9, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xD2, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xB7, - 0xC6, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC3, - 0xC6, - 0xB7, - 0xB7, - 0x05, - 0xC3, - 0x00, - 0x35, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xAE, - 0xC5, - 0xAA, - 0xA1, - 0x7E, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x92, - 0x92, - 0x92, - 0x60, - 0x60, - 0x00, - 0x04, - 0x92, - 0x00, - 0x16, - 0x95, - 0xD5, - 0xDD, - 0xCB, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xF0, - 0xE7, - 0xEF, - 0xEF, - 0xEF, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xFC, - 0x04, - 0xEF, - 0x00, - 0x2C, - 0xF5, - 0xEF, - 0xEF, - 0xE7, - 0xEF, - 0xE7, - 0xF5, - 0xE3, - 0xE7, - 0xE3, - 0xF1, - 0xE3, - 0x7D, - 0xDC, - 0xBA, - 0x59, - 0x90, - 0xBC, - 0xBC, - 0xBC, - 0xD6, - 0xDC, - 0xA2, - 0xE0, - 0xC8, - 0xDA, - 0xCF, - 0xD2, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xC4, - 0xC8, - 0xD1, - 0xD1, - 0xC8, - 0xD1, - 0xCF, - 0xD2, - 0xD2, - 0xC8, - 0xD1, - 0xC4, - 0x04, - 0xD1, - 0x00, - 0x06, - 0xC8, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0x05, - 0xCD, - 0x01, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x0D, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xC9, - 0x00, - 0x07, - 0xB5, - 0x00, - 0x05, - 0xA1, - 0xA1, - 0xE0, - 0x16, - 0x16, - 0x00, - 0x04, - 0x15, - 0x00, - 0x15, - 0x93, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0xDF, - 0x20, - 0x09, - 0x17, - 0x17, - 0x20, - 0x09, - 0x09, - 0x1C, - 0x15, - 0x15, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x40, - 0x53, - 0xD1, - 0xC8, - 0xC9, - 0xCA, - 0xCB, - 0xF1, - 0xA4, - 0xF5, - 0x20, - 0xF2, - 0xE6, - 0xFA, - 0xE6, - 0x20, - 0xE5, - 0xE6, - 0xE4, - 0xE4, - 0x73, - 0xE5, - 0xB9, - 0xA6, - 0x20, - 0x20, - 0x73, - 0x20, - 0xE9, - 0x09, - 0xB9, - 0x9D, - 0x18, - 0xEB, - 0x80, - 0xD3, - 0xEB, - 0x93, - 0xE4, - 0xC7, - 0x93, - 0xEC, - 0xC7, - 0xD3, - 0x20, - 0xE8, - 0xA1, - 0xC8, - 0xCD, - 0x20, - 0xE2, - 0xCD, - 0xB5, - 0xC9, - 0x20, - 0xEC, - 0x71, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0x04, - 0xCD, - 0x00, - 0x03, - 0xB6, - 0xCD, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x06, - 0xCF, - 0x01, - 0xD9, - 0x01, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x27, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x07, - 0xC3, - 0x00, - 0x21, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xAC, - 0xB8, - 0xC5, - 0xD4, - 0xAA, - 0x80, - 0x9B, - 0x4D, - 0x26, - 0x70, - 0x95, - 0x92, - 0x92, - 0x92, - 0x60, - 0x00, - 0x05, - 0x92, - 0x00, - 0x03, - 0xCC, - 0xD0, - 0xE3, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x09, - 0xF7, - 0xF7, - 0xF0, - 0xF0, - 0xEF, - 0xEF, - 0xFC, - 0xF6, - 0xE4, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x07, - 0xE4, - 0xE4, - 0xFC, - 0x13, - 0xF6, - 0xEF, - 0xFC, - 0x00, - 0x06, - 0xEF, - 0x00, - 0x34, - 0xF5, - 0xE7, - 0xE7, - 0xE3, - 0xF0, - 0xE7, - 0xDC, - 0xDD, - 0x46, - 0x5E, - 0x90, - 0x8B, - 0xBB, - 0xD6, - 0xDC, - 0xC5, - 0xC9, - 0xDA, - 0xCF, - 0xC4, - 0xC8, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xC4, - 0xCF, - 0xD2, - 0xD2, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xD2, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xD2, - 0xCD, - 0xD2, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0x06, - 0xCD, - 0x00, - 0x17, - 0xB6, - 0xCD, - 0xCD, - 0xD2, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xCA, - 0xC2, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xA1, - 0xB5, - 0x22, - 0x00, - 0x05, - 0x15, - 0x00, - 0x15, - 0x20, - 0x09, - 0x09, - 0xFD, - 0x1C, - 0x2D, - 0x09, - 0x20, - 0x73, - 0x17, - 0x15, - 0x2D, - 0x09, - 0x09, - 0x20, - 0x1C, - 0x1D, - 0x18, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x44, - 0xC4, - 0xA1, - 0xC8, - 0xC8, - 0xE0, - 0x8D, - 0x8E, - 0xF1, - 0xF0, - 0x20, - 0xE5, - 0xE4, - 0xE6, - 0xE6, - 0x20, - 0xE5, - 0xE4, - 0xFC, - 0xEF, - 0x73, - 0xEE, - 0xD4, - 0xEB, - 0x93, - 0x35, - 0xAA, - 0xE4, - 0xDF, - 0x20, - 0x9D, - 0x80, - 0xEB, - 0x93, - 0xDC, - 0x9D, - 0x20, - 0xEC, - 0xC7, - 0xC7, - 0x93, - 0xEC, - 0xCF, - 0xE0, - 0x09, - 0xE8, - 0xC8, - 0xC8, - 0xCD, - 0x19, - 0xE2, - 0xCD, - 0xCD, - 0xC9, - 0x20, - 0xEC, - 0xB5, - 0xC4, - 0xA1, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xC9, - 0xC9, - 0x06, - 0xCD, - 0x00, - 0x10, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0xD9, - 0xC8, - 0xD7, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xC6, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x53, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xB7, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0x97, - 0xA1, - 0x35, - 0x75, - 0x26, - 0x7B, - 0x92, - 0x92, - 0x92, - 0x60, - 0x92, - 0x92, - 0x60, - 0x92, - 0x92, - 0x95, - 0xC0, - 0xDB, - 0xCE, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x00, - 0xF0, - 0xE3, - 0xEF, - 0xFC, - 0xE4, - 0xFE, - 0xE4, - 0xFE, - 0xFE, - 0xFA, - 0xE4, - 0xFE, - 0xF6, - 0xFE, - 0xFE, - 0xE4, - 0xFC, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0x00, - 0x04, - 0xEF, - 0x01, - 0x02, - 0x04, - 0xE7, - 0x00, - 0x29, - 0xE3, - 0xDC, - 0xDC, - 0xDD, - 0x9A, - 0xB3, - 0xD6, - 0xD6, - 0xDC, - 0xAC, - 0xC4, - 0xDA, - 0xC4, - 0xC8, - 0xC4, - 0xD2, - 0xC4, - 0xCF, - 0xC8, - 0xD2, - 0xD1, - 0xD1, - 0xD2, - 0xCD, - 0xD1, - 0xD2, - 0xD2, - 0xC4, - 0xD2, - 0xD1, - 0xD1, - 0xD2, - 0xD1, - 0xD2, - 0xCD, - 0xD2, - 0xD2, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1D, - 0xD1, - 0xB6, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xB6, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xB5, - 0xB6, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0x96, - 0x00, - 0x05, - 0x15, - 0x00, - 0x15, - 0x20, - 0x09, - 0x09, - 0x93, - 0x09, - 0x93, - 0x09, - 0x09, - 0x2D, - 0x17, - 0x17, - 0x17, - 0x20, - 0x09, - 0x09, - 0x73, - 0x09, - 0x09, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x04, - 0x15, - 0x00, - 0x5B, - 0x1A, - 0xC7, - 0xC4, - 0xCF, - 0xCF, - 0xC4, - 0xA1, - 0xCB, - 0xD4, - 0xA4, - 0x20, - 0xE5, - 0x9D, - 0xE4, - 0xE6, - 0x93, - 0x07, - 0xE4, - 0xE4, - 0xF0, - 0x73, - 0xE5, - 0xD4, - 0xE8, - 0x18, - 0xBB, - 0xD3, - 0x71, - 0xE8, - 0x20, - 0xA6, - 0x80, - 0x97, - 0xFD, - 0xDF, - 0xDF, - 0xFD, - 0xC4, - 0xC4, - 0xC7, - 0x93, - 0xEC, - 0xC4, - 0xD3, - 0x09, - 0xEB, - 0xC7, - 0xC8, - 0xC8, - 0x19, - 0xEB, - 0xCD, - 0xCD, - 0xB5, - 0x20, - 0xE2, - 0xA1, - 0xA1, - 0xB5, - 0xC2, - 0xCD, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xC9, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xB7, - 0xB7, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x16, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x06, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0x05, - 0xC3, - 0x00, - 0x0C, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC3, - 0xB8, - 0xCE, - 0x04, - 0xB8, - 0x00, - 0x31, - 0xC5, - 0xC5, - 0xC3, - 0xC6, - 0x7E, - 0x91, - 0x2D, - 0x95, - 0x92, - 0x92, - 0x60, - 0x92, - 0x60, - 0x60, - 0x92, - 0x92, - 0x92, - 0x95, - 0xE5, - 0x6F, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0xF1, - 0xE7, - 0xEF, - 0xF6, - 0xF6, - 0xFE, - 0xE6, - 0xFA, - 0xFA, - 0xFA, - 0x11, - 0xE6, - 0xFA, - 0xFA, - 0x13, - 0xFE, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xF6, - 0x00, - 0x05, - 0xFC, - 0x00, - 0x15, - 0xEF, - 0xF5, - 0xE7, - 0xE7, - 0xEF, - 0xF0, - 0x86, - 0xE7, - 0x8A, - 0xDC, - 0xBA, - 0xBA, - 0x6F, - 0xDD, - 0xE3, - 0x8E, - 0xC4, - 0xC8, - 0xE0, - 0xB5, - 0xE0, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x1F, - 0xF7, - 0xCB, - 0xF7, - 0xCE, - 0xF7, - 0xF4, - 0xD3, - 0xD3, - 0xD3, - 0xCA, - 0xB0, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xB6, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xB0, - 0xCD, - 0x00, - 0x06, - 0xB5, - 0x00, - 0x07, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCA, - 0xC9, - 0xC2, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x07, - 0xC2, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xC4, - 0x1A, - 0x00, - 0x04, - 0x15, - 0x00, - 0x15, - 0x73, - 0x20, - 0x73, - 0x18, - 0x20, - 0x09, - 0x20, - 0x20, - 0x17, - 0x15, - 0x15, - 0x15, - 0x1C, - 0x20, - 0x73, - 0x09, - 0x20, - 0x09, - 0x73, - 0x09, - 0x1E, - 0x00, - 0x04, - 0x15, - 0x00, - 0x54, - 0x68, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0xCF, - 0xE0, - 0xA1, - 0x8E, - 0xD4, - 0x20, - 0xE9, - 0xE7, - 0x9D, - 0xE4, - 0x20, - 0xE5, - 0x6F, - 0x9D, - 0xE7, - 0x73, - 0xE5, - 0xD3, - 0xB1, - 0xDF, - 0x73, - 0xEE, - 0xEB, - 0xEC, - 0x09, - 0xE7, - 0x80, - 0xAA, - 0xE7, - 0x93, - 0x20, - 0xA6, - 0xB5, - 0xC4, - 0xA1, - 0x73, - 0xEC, - 0xC7, - 0xD3, - 0x18, - 0xE8, - 0xCF, - 0xC8, - 0xC8, - 0x20, - 0xEC, - 0xC9, - 0xC4, - 0x8D, - 0x93, - 0xEC, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xC9, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0x05, - 0xCF, - 0x01, - 0xC8, - 0x01, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x12, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0x04, - 0xC1, - 0x05, - 0xC3, - 0x00, - 0x06, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xC3, - 0xAC, - 0x04, - 0xC3, - 0x00, - 0x0C, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0x07, - 0xC3, - 0x00, - 0x59, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC6, - 0x7E, - 0x45, - 0x26, - 0x95, - 0x92, - 0x92, - 0x60, - 0x92, - 0x60, - 0x92, - 0x92, - 0x60, - 0x92, - 0x7B, - 0xD0, - 0xEF, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0x00, - 0xF1, - 0xF5, - 0xEF, - 0xE4, - 0xFE, - 0xE6, - 0xFA, - 0xFA, - 0xFA, - 0x03, - 0xE6, - 0xFA, - 0x03, - 0xFA, - 0xFE, - 0xE6, - 0xFE, - 0xFE, - 0xFE, - 0xF6, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0xE4, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xE7, - 0xF0, - 0xF0, - 0xF0, - 0xC5, - 0x52, - 0xB9, - 0xDC, - 0xDC, - 0xDC, - 0xA4, - 0xCE, - 0xF7, - 0xCE, - 0xF1, - 0xF0, - 0xF0, - 0xF5, - 0xF0, - 0x01, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x10, - 0xF1, - 0xF1, - 0xF1, - 0xF7, - 0xF7, - 0xCE, - 0xF4, - 0xCA, - 0xC2, - 0xCD, - 0xC4, - 0xD2, - 0xB6, - 0xCD, - 0xD1, - 0xB6, - 0x04, - 0xCD, - 0x00, - 0x11, - 0xC2, - 0xCD, - 0xC9, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xCD, - 0xB6, - 0xCD, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xC9, - 0xCA, - 0xB5, - 0xA1, - 0xE0, - 0xC2, - 0x99, - 0x00, - 0x04, - 0x15, - 0x00, - 0x08, - 0x17, - 0x1C, - 0x73, - 0x7B, - 0x2D, - 0x2D, - 0x1C, - 0x17, - 0x05, - 0x15, - 0x00, - 0x07, - 0x1B, - 0x2D, - 0x7B, - 0x2D, - 0x7B, - 0x2D, - 0x1C, - 0x00, - 0x04, - 0x15, - 0x00, - 0x3F, - 0x16, - 0xC7, - 0x71, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xC4, - 0xC4, - 0x8D, - 0xCB, - 0x20, - 0xE9, - 0x35, - 0xA6, - 0x61, - 0x20, - 0xF2, - 0xEF, - 0x9D, - 0x35, - 0x73, - 0xE5, - 0x97, - 0xCB, - 0xCB, - 0xE4, - 0xD8, - 0xE5, - 0x20, - 0x09, - 0x35, - 0xD3, - 0xAA, - 0xD6, - 0x18, - 0x18, - 0xE4, - 0xA1, - 0xC4, - 0xC4, - 0x73, - 0xEC, - 0xC7, - 0xE0, - 0x18, - 0xE8, - 0xC7, - 0xC4, - 0xC4, - 0x18, - 0xEC, - 0xB5, - 0xC4, - 0xC4, - 0x20, - 0xEC, - 0xA1, - 0xC9, - 0xB6, - 0xCD, - 0xCD, - 0xC9, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x19, - 0xC9, - 0xCD, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0x09, - 0xC1, - 0x00, - 0x06, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0x05, - 0xC5, - 0x00, - 0x2F, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC1, - 0x7E, - 0x36, - 0x2D, - 0x95, - 0x60, - 0x92, - 0x60, - 0x92, - 0x60, - 0x00, - 0x04, - 0x92, - 0x00, - 0x18, - 0x7B, - 0xD8, - 0xD4, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF1, - 0xE7, - 0xEF, - 0xF6, - 0xFE, - 0xFA, - 0xFA, - 0x03, - 0x03, - 0x03, - 0xED, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0x04, - 0xF6, - 0x04, - 0xFC, - 0x01, - 0xF6, - 0x04, - 0xFC, - 0x00, - 0x1A, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xE7, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0xCE, - 0xE3, - 0xDC, - 0xE4, - 0xE7, - 0xFC, - 0xFC, - 0xFC, - 0xF6, - 0x13, - 0xF6, - 0x13, - 0xF6, - 0xF6, - 0xF6, - 0x04, - 0xFC, - 0x00, - 0x0E, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xCE, - 0xF7, - 0xCB, - 0xCA, - 0xB5, - 0x05, - 0xCD, - 0x00, - 0x04, - 0xB6, - 0xC2, - 0xCD, - 0xB6, - 0x06, - 0xC2, - 0x00, - 0x0B, - 0xD2, - 0xCA, - 0xC9, - 0xCA, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xC2, - 0x1A, - 0x00, - 0x09, - 0x15, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x15, - 0x01, - 0x17, - 0x07, - 0x15, - 0x00, - 0x54, - 0x16, - 0x16, - 0x15, - 0x68, - 0xC9, - 0xCD, - 0xC9, - 0xC8, - 0xC4, - 0xD9, - 0xCF, - 0xB5, - 0xB6, - 0xD3, - 0x20, - 0xEA, - 0x35, - 0xA4, - 0x35, - 0x93, - 0xDF, - 0xEF, - 0x52, - 0xA4, - 0x20, - 0xE5, - 0x97, - 0x78, - 0x8D, - 0x8D, - 0x8E, - 0x80, - 0xE2, - 0x93, - 0x35, - 0x97, - 0x8E, - 0x73, - 0xEE, - 0xEE, - 0x73, - 0xD3, - 0xA1, - 0xC7, - 0x20, - 0xEC, - 0xC4, - 0xD3, - 0x09, - 0xE5, - 0xE0, - 0xC7, - 0xCE, - 0x09, - 0xE5, - 0xD3, - 0xC9, - 0xB5, - 0x18, - 0xE2, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xCD, - 0xC2, - 0xC2, - 0xCD, - 0xD2, - 0xCD, - 0xB5, - 0xD1, - 0xCD, - 0xC9, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0x07, - 0xC8, - 0x00, - 0x04, - 0xCF, - 0xC8, - 0xD9, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC1, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x04, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x3A, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC6, - 0x52, - 0x36, - 0x2D, - 0x95, - 0x60, - 0x92, - 0x92, - 0x60, - 0x92, - 0x60, - 0x60, - 0x60, - 0x73, - 0xC0, - 0xDB, - 0xF7, - 0xF4, - 0xF7, - 0xD3, - 0xF1, - 0xF5, - 0xEF, - 0xF6, - 0xE6, - 0xED, - 0xFA, - 0xED, - 0x05, - 0x03, - 0x00, - 0x17, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0x12, - 0xFC, - 0xFC, - 0x12, - 0xFC, - 0x02, - 0xFC, - 0xFC, - 0xEF, - 0x02, - 0xFC, - 0xF5, - 0xEF, - 0x02, - 0x02, - 0xEF, - 0xF5, - 0xF0, - 0xF5, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x0D, - 0xF1, - 0xF0, - 0xE7, - 0xE7, - 0xF6, - 0xFE, - 0xFA, - 0xFA, - 0x11, - 0x03, - 0x11, - 0xFA, - 0x03, - 0x00, - 0x06, - 0xFA, - 0x04, - 0xFE, - 0x00, - 0x17, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0x02, - 0xF0, - 0x01, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xC6, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x01, - 0xB5, - 0x0A, - 0xC2, - 0x00, - 0x0C, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC4, - 0x16, - 0x17, - 0x15, - 0x00, - 0x3F, - 0x16, - 0x16, - 0x1A, - 0xC9, - 0xC9, - 0xCD, - 0xC4, - 0xC4, - 0xC8, - 0xB5, - 0xC4, - 0xC4, - 0xC9, - 0xD3, - 0x20, - 0x93, - 0x73, - 0xE8, - 0xE5, - 0x18, - 0x73, - 0x73, - 0xE2, - 0xE5, - 0x93, - 0xDB, - 0x8E, - 0x8E, - 0xEA, - 0xE5, - 0xDB, - 0xE8, - 0x73, - 0xEE, - 0xD3, - 0x80, - 0xE5, - 0x73, - 0xA4, - 0xE3, - 0x73, - 0xE9, - 0xC4, - 0xA1, - 0x93, - 0xEC, - 0xC7, - 0xF4, - 0x09, - 0x73, - 0xDF, - 0xE8, - 0xE5, - 0x20, - 0x93, - 0xDF, - 0xE8, - 0xE5, - 0x18, - 0xE4, - 0xCD, - 0xB5, - 0xC9, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x13, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xDA, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x0F, - 0xB7, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x06, - 0xC3, - 0x00, - 0x0D, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x12, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xCB, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xAC, - 0x80, - 0x94, - 0x4F, - 0x2D, - 0x92, - 0x07, - 0x60, - 0x00, - 0x36, - 0x92, - 0x92, - 0xD5, - 0xE4, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0xF0, - 0xFC, - 0xFE, - 0xFA, - 0xED, - 0xED, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x03, - 0xFE, - 0x11, - 0xF6, - 0x13, - 0xFC, - 0x12, - 0x02, - 0x12, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0xFC, - 0x02, - 0x12, - 0xF5, - 0x02, - 0xF5, - 0xF5, - 0x01, - 0x01, - 0xF0, - 0x01, - 0xF0, - 0xF0, - 0xF0, - 0xF5, - 0xEF, - 0x12, - 0xFC, - 0xFE, - 0xFA, - 0x03, - 0x03, - 0x06, - 0x0E, - 0x00, - 0x21, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x0E, - 0x0E, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0xF1, - 0xF1, - 0xF7, - 0xF7, - 0xCA, - 0xB6, - 0xC2, - 0xCD, - 0xC2, - 0xC2, - 0xC9, - 0xB6, - 0x00, - 0x05, - 0xC2, - 0x01, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB5, - 0xA1, - 0xC9, - 0xA1, - 0xA1, - 0xC4, - 0x68, - 0x00, - 0x16, - 0x15, - 0x00, - 0x4C, - 0x16, - 0x16, - 0x1A, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0xC4, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xCA, - 0xB5, - 0xCA, - 0xDF, - 0xE6, - 0xEB, - 0xDF, - 0x20, - 0xE5, - 0x49, - 0xEB, - 0xDF, - 0x20, - 0xE9, - 0x35, - 0x52, - 0x9B, - 0xE8, - 0xE5, - 0x73, - 0x73, - 0xE5, - 0xDD, - 0xCB, - 0xE4, - 0x73, - 0xDB, - 0x80, - 0x8D, - 0xE8, - 0xDF, - 0xE4, - 0xA1, - 0xDF, - 0xEB, - 0xC4, - 0xCA, - 0x73, - 0xF5, - 0xEB, - 0xDF, - 0x20, - 0xE9, - 0xE0, - 0xEB, - 0xDF, - 0x73, - 0xEC, - 0xB0, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0x05, - 0xCD, - 0x00, - 0x0F, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD9, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB7, - 0xC6, - 0xC1, - 0xAA, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x07, - 0xB7, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x18, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0x05, - 0xC5, - 0x00, - 0x0A, - 0xC3, - 0xC5, - 0xAD, - 0xAA, - 0x52, - 0x36, - 0x70, - 0x92, - 0x60, - 0x92, - 0x06, - 0x60, - 0x00, - 0x13, - 0x92, - 0xDE, - 0x9D, - 0xF4, - 0xF4, - 0xF7, - 0xCE, - 0xEF, - 0xE4, - 0xE6, - 0xED, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0x03, - 0x11, - 0xFE, - 0x00, - 0x04, - 0x13, - 0x00, - 0x0E, - 0xFC, - 0xFC, - 0x12, - 0x12, - 0xFC, - 0xFC, - 0x12, - 0x02, - 0x12, - 0x12, - 0x02, - 0x12, - 0x02, - 0x02, - 0x05, - 0x01, - 0x00, - 0x35, - 0xF5, - 0xF5, - 0x02, - 0xFC, - 0xFE, - 0xFE, - 0x11, - 0x03, - 0x03, - 0xFB, - 0x0D, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0xF3, - 0xFB, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0xF0, - 0x00, - 0xF7, - 0xF7, - 0xCA, - 0xE0, - 0xB5, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB0, - 0x00, - 0x08, - 0xC2, - 0x01, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xCA, - 0xB6, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x03, - 0xB5, - 0x22, - 0x16, - 0x00, - 0x14, - 0x15, - 0x00, - 0x4A, - 0x16, - 0x16, - 0xC4, - 0xE0, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xA1, - 0xB0, - 0x80, - 0xAA, - 0x80, - 0xAA, - 0xAA, - 0x8E, - 0x80, - 0x8E, - 0xAC, - 0x8E, - 0x7E, - 0xD4, - 0xA4, - 0x86, - 0xB2, - 0xA3, - 0xA4, - 0xB2, - 0x7E, - 0x8E, - 0xAA, - 0x80, - 0xD3, - 0x80, - 0x80, - 0xB7, - 0xAA, - 0xAA, - 0xD3, - 0x80, - 0x8D, - 0xB5, - 0xC6, - 0xCA, - 0xC4, - 0xA1, - 0xB5, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC4, - 0xC4, - 0xC8, - 0xC4, - 0xC9, - 0xC4, - 0xC8, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0x04, - 0xCD, - 0x00, - 0x04, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xD1, - 0xD1, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC1, - 0xC6, - 0xAA, - 0xC1, - 0xAA, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x06, - 0xC3, - 0x08, - 0xC5, - 0x05, - 0xC3, - 0x00, - 0x0E, - 0xB8, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC1, - 0xC1, - 0xB8, - 0x05, - 0xC5, - 0x00, - 0x0A, - 0xB8, - 0xC5, - 0xB8, - 0x8E, - 0x78, - 0x52, - 0x23, - 0x2D, - 0x95, - 0x92, - 0x07, - 0x60, - 0x00, - 0x19, - 0x73, - 0xBD, - 0xE3, - 0xF4, - 0xF4, - 0xF7, - 0xF5, - 0xF6, - 0xFA, - 0xFB, - 0xFB, - 0xF3, - 0xF3, - 0x10, - 0xFB, - 0x0E, - 0x03, - 0xFE, - 0xFE, - 0x11, - 0x13, - 0xFE, - 0x13, - 0xFC, - 0x13, - 0x00, - 0x0D, - 0x12, - 0x00, - 0x13, - 0x01, - 0x12, - 0x01, - 0x02, - 0x12, - 0x12, - 0x12, - 0x11, - 0x11, - 0x11, - 0x03, - 0x0E, - 0x0D, - 0xFB, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0x10, - 0x00, - 0x05, - 0xF3, - 0x00, - 0x03, - 0x10, - 0xF3, - 0x10, - 0x00, - 0x06, - 0xFB, - 0x00, - 0x15, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0x03, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xCB, - 0xC6, - 0xC2, - 0xC9, - 0xB6, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x07, - 0xB6, - 0xC2, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0C, - 0xA1, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xC2, - 0xB5, - 0xA1, - 0xA1, - 0x96, - 0x14, - 0x15, - 0x00, - 0x31, - 0x1A, - 0x8D, - 0xA1, - 0xA1, - 0xC4, - 0xB5, - 0xB5, - 0xB0, - 0xA9, - 0x97, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0xCB, - 0x8E, - 0xAA, - 0x8E, - 0x8E, - 0xAC, - 0xB1, - 0xB1, - 0xB2, - 0xB2, - 0x86, - 0xB2, - 0xA3, - 0x52, - 0xA3, - 0xBF, - 0xC5, - 0xAA, - 0xAA, - 0x80, - 0x8D, - 0xCB, - 0x8D, - 0x80, - 0xAA, - 0x80, - 0x8D, - 0xC6, - 0xA9, - 0xC2, - 0xA1, - 0xE6, - 0x35, - 0xE0, - 0xCF, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0xC7, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0x07, - 0xCD, - 0x00, - 0x0E, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x0C, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC3, - 0x00, - 0x38, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xAD, - 0xAC, - 0x35, - 0xA5, - 0x70, - 0x92, - 0x92, - 0x05, - 0x60, - 0x00, - 0x17, - 0x92, - 0x60, - 0xCC, - 0xD0, - 0xF0, - 0xF4, - 0xF7, - 0xF1, - 0xEF, - 0xE6, - 0xE8, - 0xFB, - 0xF8, - 0xF8, - 0xF8, - 0xFB, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x11, - 0x11, - 0xFE, - 0x00, - 0x04, - 0x13, - 0x0C, - 0x12, - 0x00, - 0x18, - 0x02, - 0x02, - 0x01, - 0x12, - 0x12, - 0xFC, - 0x13, - 0x11, - 0x11, - 0x03, - 0x0E, - 0x0D, - 0xFB, - 0xFB, - 0x10, - 0xF3, - 0xFB, - 0xF3, - 0x10, - 0xF3, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x04, - 0x00, - 0x35, - 0xF3, - 0xF3, - 0x04, - 0xFB, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0xED, - 0x03, - 0x03, - 0x03, - 0xFA, - 0xFE, - 0x13, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0x00, - 0xF7, - 0xD3, - 0xCA, - 0xB6, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xB0, - 0xCA, - 0xB0, - 0xB0, - 0xB6, - 0xC2, - 0xC2, - 0x71, - 0xC2, - 0xA9, - 0x71, - 0xA1, - 0xB6, - 0xC2, - 0xA1, - 0xA1, - 0xC2, - 0xC2, - 0xA1, - 0xCA, - 0xB5, - 0xB5, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x03, - 0x97, - 0x1A, - 0x16, - 0x00, - 0x10, - 0x15, - 0x00, - 0x11, - 0x22, - 0xC2, - 0xC2, - 0xA1, - 0xC9, - 0xC4, - 0xB5, - 0xB6, - 0x80, - 0xAC, - 0xAC, - 0xAE, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0xB1, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x1E, - 0xAC, - 0xB1, - 0xB1, - 0xB2, - 0xD4, - 0xA3, - 0xA4, - 0xA3, - 0xA3, - 0xA3, - 0xB2, - 0xC5, - 0xAA, - 0xAA, - 0x80, - 0xC1, - 0xAA, - 0xAA, - 0x80, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0xC2, - 0x8E, - 0x20, - 0xEE, - 0xCF, - 0xCF, - 0xD7, - 0x04, - 0xC7, - 0x00, - 0x21, - 0xCF, - 0xD9, - 0xD1, - 0xC8, - 0xC9, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xB6, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xD1, - 0x00, - 0x07, - 0xC8, - 0x01, - 0xCF, - 0x01, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xC6, - 0xAA, - 0xC3, - 0xC1, - 0xC1, - 0xB7, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xB7, - 0x00, - 0x0A, - 0xC3, - 0x00, - 0x12, - 0xB8, - 0xC5, - 0xAE, - 0xC5, - 0xBF, - 0xBF, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xAC, - 0xB8, - 0xC5, - 0x04, - 0xC3, - 0x00, - 0x05, - 0xC1, - 0xC6, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x12, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0x49, - 0x23, - 0x70, - 0x92, - 0x08, - 0x60, - 0x00, - 0x1C, - 0x70, - 0xE8, - 0x00, - 0xF4, - 0xCB, - 0xF0, - 0xFA, - 0xFB, - 0xE8, - 0x0C, - 0xF8, - 0xF9, - 0xF3, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x11, - 0x11, - 0x13, - 0x13, - 0x13, - 0x12, - 0x13, - 0x13, - 0x0B, - 0x12, - 0x00, - 0x21, - 0x02, - 0x12, - 0x12, - 0x11, - 0x13, - 0x03, - 0x0E, - 0x0E, - 0x0E, - 0x0D, - 0x10, - 0x10, - 0x10, - 0xF3, - 0xF3, - 0x10, - 0xF3, - 0x04, - 0x04, - 0xF8, - 0x04, - 0xF8, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x04, - 0x0B, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x35, - 0x0D, - 0xED, - 0x0E, - 0xFA, - 0xFA, - 0xFE, - 0x13, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xF0, - 0xF1, - 0x00, - 0xD3, - 0xD3, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xA9, - 0xC2, - 0xB0, - 0xB6, - 0xB0, - 0xA9, - 0xB6, - 0xB0, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0x71, - 0xC6, - 0xA1, - 0xB6, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xB5, - 0xB5, - 0x8D, - 0x68, - 0x1A, - 0x15, - 0x16, - 0x16, - 0x00, - 0x07, - 0x15, - 0x00, - 0x44, - 0x16, - 0x16, - 0x16, - 0x1A, - 0x97, - 0xA1, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xC4, - 0xB6, - 0xB0, - 0x78, - 0x97, - 0xAD, - 0x7E, - 0xA3, - 0xA3, - 0x52, - 0x5D, - 0x35, - 0xB2, - 0xB2, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xC5, - 0xD4, - 0xB2, - 0xBF, - 0xA3, - 0xB2, - 0xB2, - 0xB2, - 0xA3, - 0xBF, - 0xAC, - 0xCB, - 0x80, - 0x80, - 0xAA, - 0xC6, - 0xAA, - 0x8D, - 0xC1, - 0x8D, - 0xB0, - 0xB0, - 0x80, - 0xE4, - 0x86, - 0xC4, - 0xCF, - 0xD7, - 0xCF, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x1E, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x03, - 0xC1, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x07, - 0xB8, - 0xAC, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x07, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xB7, - 0xC3, - 0xB8, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x0B, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xC5, - 0xC5, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x03, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x09, - 0xC3, - 0x00, - 0x11, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xC3, - 0xB8, - 0x5D, - 0xA5, - 0x70, - 0x92, - 0x00, - 0x07, - 0x60, - 0x00, - 0x0D, - 0x92, - 0xDF, - 0xDB, - 0xD3, - 0xF7, - 0xF1, - 0xFC, - 0xE6, - 0xF3, - 0xF8, - 0xEC, - 0xF9, - 0xF8, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x06, - 0x0D, - 0x0E, - 0x03, - 0x03, - 0x11, - 0x11, - 0x04, - 0x13, - 0x00, - 0x07, - 0x12, - 0x12, - 0x12, - 0x13, - 0x13, - 0x02, - 0x02, - 0x00, - 0x09, - 0x12, - 0x00, - 0x57, - 0x13, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0xF3, - 0x10, - 0xF3, - 0x10, - 0xF3, - 0x04, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0xF8, - 0x0B, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0x04, - 0xF3, - 0xF3, - 0x04, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0xED, - 0x0E, - 0x03, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0x13, - 0x02, - 0x01, - 0xF0, - 0xF1, - 0xF7, - 0xD3, - 0xB6, - 0xA1, - 0xC2, - 0xC2, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xA1, - 0xB0, - 0xC2, - 0x71, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xB5, - 0xC2, - 0x99, - 0x22, - 0x16, - 0x00, - 0x07, - 0x15, - 0x00, - 0x39, - 0x1A, - 0x7E, - 0x97, - 0xB5, - 0xA1, - 0xA1, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xCD, - 0xC9, - 0xA1, - 0x97, - 0xAE, - 0x7E, - 0xA3, - 0x94, - 0x8A, - 0x3B, - 0x56, - 0x6C, - 0x6B, - 0x49, - 0x52, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xC5, - 0xB1, - 0xB2, - 0xD4, - 0xB2, - 0xB2, - 0xA3, - 0xA3, - 0xB2, - 0xBF, - 0xAC, - 0x80, - 0xC1, - 0xC1, - 0xC1, - 0x80, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xB0, - 0xB6, - 0xE0, - 0xB5, - 0xC8, - 0xC8, - 0xD7, - 0x00, - 0x05, - 0xC7, - 0x00, - 0x28, - 0xD7, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xB5, - 0xD2, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x21, - 0xC6, - 0xB7, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xCE, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xB7, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x0C, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x12, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xC3, - 0xC5, - 0xC5, - 0x35, - 0x23, - 0x70, - 0x06, - 0x60, - 0x00, - 0x0E, - 0x92, - 0x60, - 0x92, - 0xC0, - 0xE1, - 0xF7, - 0xF4, - 0xF0, - 0xFE, - 0xE8, - 0xF8, - 0xF9, - 0xEC, - 0xEB, - 0x05, - 0x10, - 0x00, - 0x09, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x11, - 0x11, - 0x13, - 0x13, - 0x00, - 0x08, - 0x12, - 0x00, - 0x04, - 0x02, - 0x02, - 0x12, - 0x02, - 0x05, - 0x12, - 0x00, - 0x09, - 0x13, - 0x11, - 0x0E, - 0x0D, - 0x0D, - 0x10, - 0xFB, - 0x10, - 0xF3, - 0x00, - 0x04, - 0x10, - 0x00, - 0x35, - 0xF3, - 0xF3, - 0x0B, - 0xF8, - 0x04, - 0x04, - 0xF8, - 0xF8, - 0x04, - 0xF8, - 0x0B, - 0x0C, - 0xEB, - 0xF8, - 0xF8, - 0xF8, - 0x0B, - 0xF3, - 0xF3, - 0xF3, - 0x04, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x03, - 0xFA, - 0xFA, - 0x11, - 0xFE, - 0xF6, - 0x02, - 0x01, - 0x01, - 0xF1, - 0x00, - 0xD3, - 0xB0, - 0xB6, - 0xC6, - 0xC2, - 0xC6, - 0xB0, - 0xA9, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x12, - 0xC2, - 0xA1, - 0xC2, - 0xC2, - 0xB0, - 0xB0, - 0xC2, - 0x71, - 0xC2, - 0xC2, - 0xB5, - 0xB0, - 0xB5, - 0xC2, - 0xC4, - 0x80, - 0xC4, - 0xC4, - 0x05, - 0x71, - 0x00, - 0x44, - 0xC4, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0x71, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xA9, - 0x97, - 0x7E, - 0x7E, - 0x8A, - 0x6C, - 0x74, - 0x33, - 0x31, - 0x42, - 0x74, - 0x6C, - 0x4A, - 0xA4, - 0x8E, - 0xB1, - 0xCB, - 0xCE, - 0x8E, - 0x9B, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0xA3, - 0xB2, - 0xBF, - 0xB8, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xAA, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xB5, - 0xCD, - 0xCD, - 0xC2, - 0xD2, - 0x00, - 0x09, - 0xCD, - 0x00, - 0x08, - 0xD1, - 0xD1, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x33, - 0xAA, - 0xC1, - 0xC3, - 0xC6, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xAC, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xAE, - 0xBF, - 0xBF, - 0xBF, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x0A, - 0xC3, - 0x00, - 0x0C, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xB8, - 0x49, - 0x23, - 0x70, - 0x07, - 0x60, - 0x00, - 0x29, - 0x92, - 0x92, - 0xD5, - 0xE4, - 0xF4, - 0xF7, - 0xEF, - 0xED, - 0xF3, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x10, - 0x10, - 0x10, - 0xFB, - 0x10, - 0xFB, - 0x10, - 0x10, - 0x0E, - 0x0E, - 0x11, - 0x11, - 0xFE, - 0x13, - 0x13, - 0x12, - 0x02, - 0x12, - 0x02, - 0xFC, - 0x02, - 0x12, - 0x12, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0x00, - 0x04, - 0x12, - 0x00, - 0x10, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0x10, - 0xFB, - 0xF3, - 0x10, - 0x04, - 0x10, - 0xF3, - 0x04, - 0x06, - 0xF8, - 0x00, - 0x8B, - 0xF9, - 0xF3, - 0x0B, - 0xF9, - 0xF8, - 0xF8, - 0xF8, - 0x0C, - 0x0B, - 0xF3, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0xF3, - 0xED, - 0x0D, - 0x0D, - 0x0D, - 0xED, - 0x03, - 0xFE, - 0x13, - 0xF6, - 0xFC, - 0x02, - 0xF5, - 0xF0, - 0x00, - 0xF7, - 0xCA, - 0xB6, - 0xC2, - 0xB6, - 0x71, - 0xC2, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xC6, - 0x71, - 0xB0, - 0x71, - 0xB0, - 0xB6, - 0xB0, - 0xB0, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xA1, - 0xC4, - 0x71, - 0x71, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xC4, - 0xB5, - 0xC4, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xCA, - 0xCA, - 0xD2, - 0xC9, - 0xC4, - 0xA1, - 0xA9, - 0xAD, - 0xA2, - 0x9C, - 0x8A, - 0x33, - 0x46, - 0x46, - 0x46, - 0x5E, - 0x46, - 0x42, - 0x3B, - 0x35, - 0x52, - 0xB1, - 0x8E, - 0xAC, - 0xCB, - 0x8E, - 0x8E, - 0xB1, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xB0, - 0xA1, - 0xB5, - 0xCD, - 0xD1, - 0xC8, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x1D, - 0xC9, - 0xD2, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xB6, - 0xD1, - 0xCD, - 0xCD, - 0xD2, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x29, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xAC, - 0xB8, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xAC, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x18, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xAC, - 0xAD, - 0x35, - 0x36, - 0x70, - 0x92, - 0x07, - 0x60, - 0x00, - 0x1D, - 0x92, - 0xD5, - 0xDC, - 0xF4, - 0x00, - 0xFC, - 0xE8, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x04, - 0x10, - 0x10, - 0x10, - 0xF3, - 0x10, - 0xFB, - 0x10, - 0x0D, - 0x0D, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0x12, - 0x13, - 0x12, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x01, - 0x12, - 0x01, - 0x02, - 0x02, - 0x01, - 0x04, - 0x12, - 0x00, - 0x4F, - 0x11, - 0x0D, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0x10, - 0x10, - 0xFB, - 0xFB, - 0x10, - 0xFB, - 0x10, - 0x10, - 0x04, - 0xF3, - 0x04, - 0x04, - 0xF8, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0x0C, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0xF8, - 0x04, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0x02, - 0xF5, - 0xF1, - 0x00, - 0xCA, - 0xB5, - 0xB6, - 0xB0, - 0xB6, - 0xB0, - 0xC6, - 0xC2, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xC2, - 0xA9, - 0xC2, - 0xA9, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xB6, - 0xB0, - 0xB6, - 0xB0, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x63, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xB6, - 0xC2, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0x71, - 0x80, - 0x97, - 0xA2, - 0x9C, - 0x6C, - 0x72, - 0xB3, - 0x39, - 0x5A, - 0x5E, - 0x5E, - 0x46, - 0xBA, - 0x34, - 0xB9, - 0xB2, - 0x8E, - 0x8E, - 0x97, - 0xCB, - 0xC5, - 0x8E, - 0xC5, - 0xAE, - 0xD4, - 0xBF, - 0xBF, - 0xBF, - 0xB1, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xB5, - 0xCD, - 0xD2, - 0xD1, - 0xC8, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD2, - 0xD2, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x08, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x10, - 0xC6, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xB8, - 0xAC, - 0x05, - 0xC5, - 0x00, - 0x09, - 0xB8, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0x00, - 0x05, - 0xBF, - 0x00, - 0x07, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0x00, - 0x04, - 0xC5, - 0x0B, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x09, - 0xB8, - 0xB8, - 0xAC, - 0x97, - 0x8E, - 0x35, - 0x23, - 0x2D, - 0x92, - 0x00, - 0x07, - 0x60, - 0x00, - 0x0E, - 0x95, - 0xE5, - 0xBA, - 0xF7, - 0xF0, - 0xE6, - 0xF8, - 0xEC, - 0xF9, - 0xF3, - 0x10, - 0x10, - 0x10, - 0xF3, - 0x04, - 0x10, - 0x00, - 0x0C, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x11, - 0x11, - 0x11, - 0x13, - 0x12, - 0x02, - 0xF5, - 0x04, - 0x01, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x02, - 0x02, - 0x01, - 0x12, - 0x12, - 0x02, - 0x12, - 0x12, - 0x13, - 0x11, - 0x0E, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x56, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0xF3, - 0x10, - 0x10, - 0xF3, - 0x04, - 0x04, - 0xF8, - 0x04, - 0x0B, - 0xEB, - 0xF8, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0xF9, - 0xF8, - 0xF8, - 0x0B, - 0xF8, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xFB, - 0xF3, - 0xFB, - 0xF3, - 0xFB, - 0xFB, - 0x0E, - 0x03, - 0x11, - 0x03, - 0xFA, - 0xFE, - 0x13, - 0x12, - 0xF5, - 0xF0, - 0xF1, - 0xF7, - 0xCB, - 0xC6, - 0xC2, - 0xA9, - 0xB6, - 0xC2, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xC2, - 0xB0, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xC6, - 0xB0, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xB6, - 0xC2, - 0xB5, - 0x05, - 0xC2, - 0x00, - 0x4A, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xA1, - 0x80, - 0xAD, - 0xAE, - 0x9C, - 0x88, - 0x46, - 0x5A, - 0x59, - 0x5A, - 0x5B, - 0x90, - 0x5E, - 0x2E, - 0xBA, - 0x74, - 0x5D, - 0xB2, - 0xB1, - 0x8E, - 0x80, - 0xD3, - 0xB8, - 0xC3, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xAE, - 0xC5, - 0xC3, - 0xC1, - 0x8D, - 0xA9, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC9, - 0xC8, - 0xC8, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xDA, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xCD, - 0xCD, - 0xC2, - 0xB5, - 0xC9, - 0xCD, - 0xC9, - 0x05, - 0xCD, - 0x01, - 0xC9, - 0x01, - 0xC2, - 0x05, - 0xCD, - 0x00, - 0x0B, - 0xC9, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xAA, - 0xC3, - 0xB7, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x18, - 0xC3, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xC5, - 0xAE, - 0xBF, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x03, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC3, - 0x00, - 0x11, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC3, - 0xAC, - 0x78, - 0x52, - 0x45, - 0x70, - 0x00, - 0x06, - 0x60, - 0x00, - 0x40, - 0x92, - 0x60, - 0x73, - 0xBD, - 0xEF, - 0xF7, - 0xE7, - 0x0E, - 0xEC, - 0xF9, - 0xF8, - 0x10, - 0x04, - 0xF8, - 0x04, - 0xF8, - 0x04, - 0x04, - 0x10, - 0x10, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x11, - 0x11, - 0xFE, - 0xF6, - 0x13, - 0xFC, - 0x12, - 0x02, - 0xF5, - 0xF5, - 0x01, - 0xF5, - 0xF0, - 0xF5, - 0x01, - 0x00, - 0x02, - 0x01, - 0x01, - 0x02, - 0x12, - 0x12, - 0x13, - 0x11, - 0x11, - 0x0D, - 0x0E, - 0x0E, - 0x0D, - 0x0E, - 0x0E, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0x10, - 0xFB, - 0xF3, - 0x10, - 0xF3, - 0x04, - 0xF8, - 0x00, - 0x08, - 0x0C, - 0x0C, - 0xEB, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0xF9, - 0x04, - 0xF8, - 0x00, - 0xA1, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0xFB, - 0xF3, - 0xFB, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x0E, - 0xED, - 0x11, - 0xFE, - 0x13, - 0x13, - 0xEF, - 0xF5, - 0x01, - 0xF1, - 0xF7, - 0xD3, - 0xA9, - 0xB6, - 0xC2, - 0xA9, - 0x71, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xB0, - 0xC2, - 0xA9, - 0xB6, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xCA, - 0xB5, - 0xC2, - 0xCD, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xC2, - 0xB5, - 0xCA, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xC9, - 0xD2, - 0xD2, - 0xA1, - 0x80, - 0xAC, - 0xBF, - 0x94, - 0x34, - 0x31, - 0x5E, - 0x8B, - 0x5B, - 0x66, - 0x4D, - 0x90, - 0x59, - 0x2E, - 0x31, - 0x3B, - 0x35, - 0x52, - 0x8E, - 0x8E, - 0x8D, - 0xC6, - 0xCB, - 0x9B, - 0xB1, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0x9B, - 0xAC, - 0xAA, - 0xC6, - 0xC1, - 0xA9, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xC2, - 0xC2, - 0xB5, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0xB0, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x0B, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xC5, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xC5, - 0x06, - 0xC3, - 0x00, - 0x15, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xC5, - 0x78, - 0x9B, - 0x9B, - 0xA8, - 0x32, - 0x92, - 0x00, - 0x07, - 0x60, - 0x00, - 0x87, - 0x95, - 0xE5, - 0x9D, - 0x00, - 0xF6, - 0xE8, - 0x0C, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0x04, - 0x0B, - 0x04, - 0x04, - 0x10, - 0x10, - 0x10, - 0xFB, - 0x0E, - 0x0D, - 0x03, - 0x11, - 0xFA, - 0x11, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0x02, - 0xF5, - 0xF5, - 0x01, - 0xF5, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0x12, - 0x01, - 0x12, - 0x02, - 0x12, - 0x11, - 0x11, - 0x11, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0xFB, - 0xFB, - 0x0D, - 0x10, - 0x10, - 0x10, - 0x04, - 0x04, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0x0B, - 0xF9, - 0xF8, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0x04, - 0x04, - 0xF8, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0xFB, - 0xF3, - 0x0D, - 0x0E, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0xFE, - 0xFE, - 0x13, - 0x12, - 0xF5, - 0xF0, - 0xF1, - 0x00, - 0xF7, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0xA9, - 0xC6, - 0xB0, - 0xC2, - 0xC1, - 0xB0, - 0xCA, - 0x71, - 0xB6, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x57, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0xC9, - 0xB5, - 0x80, - 0xAC, - 0xAE, - 0xA3, - 0x7D, - 0x31, - 0x5A, - 0x5A, - 0x75, - 0x75, - 0x66, - 0x4D, - 0x5B, - 0x59, - 0x2E, - 0x31, - 0x42, - 0x49, - 0x52, - 0x8E, - 0xCE, - 0xAA, - 0x80, - 0xAC, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0x7E, - 0xA3, - 0xA3, - 0x9B, - 0xAA, - 0xAA, - 0xAA, - 0xD3, - 0xC6, - 0xA9, - 0xC1, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD2, - 0xB6, - 0xB5, - 0xC9, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xC9, - 0xC9, - 0xB6, - 0xCD, - 0xC9, - 0xC9, - 0x00, - 0x06, - 0xCD, - 0x01, - 0xD1, - 0x06, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xCA, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xC5, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x01, - 0xAC, - 0x06, - 0xC5, - 0x00, - 0x30, - 0xAC, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xBF, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xCE, - 0xB8, - 0x9B, - 0x66, - 0x32, - 0x06, - 0x60, - 0x00, - 0x19, - 0x92, - 0x92, - 0x95, - 0xAB, - 0xF5, - 0xF1, - 0xE4, - 0xF8, - 0xF8, - 0xF8, - 0xF3, - 0x0C, - 0x0B, - 0x0B, - 0x04, - 0x0B, - 0x04, - 0x0B, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x03, - 0x03, - 0x0E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x1A, - 0xFA, - 0xFA, - 0xF6, - 0xF6, - 0x02, - 0xEF, - 0x01, - 0x01, - 0x01, - 0xF0, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x02, - 0x12, - 0x13, - 0x11, - 0x11, - 0x11, - 0x03, - 0x11, - 0x11, - 0x03, - 0xFA, - 0x04, - 0x0E, - 0x00, - 0xAC, - 0xFB, - 0xFB, - 0xFB, - 0x10, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0xF8, - 0xF8, - 0xF9, - 0xF8, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0x0B, - 0xEB, - 0x04, - 0xF8, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0x10, - 0x0D, - 0x0D, - 0x0D, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0xFC, - 0x02, - 0xF0, - 0xF1, - 0xF1, - 0xF7, - 0xC6, - 0xC2, - 0x71, - 0xB0, - 0xC1, - 0xB6, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0x71, - 0xB0, - 0xC2, - 0xB0, - 0xA9, - 0xC2, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xB6, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xCD, - 0xCD, - 0xD2, - 0xC4, - 0xC8, - 0xB5, - 0x8D, - 0xAA, - 0xAE, - 0xA3, - 0x6C, - 0x31, - 0x2E, - 0x90, - 0x66, - 0x75, - 0x91, - 0x75, - 0x66, - 0x5B, - 0x59, - 0x2E, - 0x31, - 0x74, - 0x5D, - 0xB2, - 0x8E, - 0x80, - 0x8D, - 0xAC, - 0xB2, - 0xB2, - 0xA3, - 0xA4, - 0x9C, - 0xA3, - 0xA3, - 0xBF, - 0xC5, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0xA1, - 0xC2, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0x08, - 0xCD, - 0x01, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x06, - 0xB6, - 0xC6, - 0xC1, - 0xB7, - 0xC3, - 0xC1, - 0x04, - 0xC3, - 0x05, - 0xC5, - 0x01, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x17, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x1A, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0x5E, - 0x26, - 0x95, - 0x07, - 0x60, - 0x00, - 0x6D, - 0x95, - 0xE9, - 0xEF, - 0xF0, - 0x03, - 0xF3, - 0xF8, - 0x04, - 0x0C, - 0x0B, - 0x0C, - 0x0C, - 0x0C, - 0x04, - 0x04, - 0x10, - 0xF3, - 0x10, - 0x0D, - 0x0E, - 0xFA, - 0x0E, - 0x03, - 0x03, - 0xED, - 0x03, - 0x03, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0xF5, - 0xF5, - 0xF0, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x01, - 0x12, - 0x13, - 0x13, - 0x11, - 0x13, - 0x11, - 0x11, - 0xFE, - 0x11, - 0x03, - 0x0E, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x10, - 0xF3, - 0xFB, - 0xF8, - 0xF8, - 0xF3, - 0x0C, - 0xF8, - 0xF9, - 0xEB, - 0x0C, - 0xF8, - 0x0C, - 0xF3, - 0xF3, - 0xF8, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x10, - 0xFB, - 0x0D, - 0x04, - 0xF3, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0xFA, - 0x13, - 0xF6, - 0xEF, - 0x01, - 0xF1, - 0xF1, - 0xF7, - 0xD3, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x63, - 0xB0, - 0xC6, - 0xCA, - 0xA9, - 0xA9, - 0xC2, - 0xC2, - 0xB6, - 0xA9, - 0xB6, - 0xB6, - 0xCA, - 0xC2, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC6, - 0xB6, - 0xC1, - 0xB6, - 0xA9, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xC4, - 0xC9, - 0xA1, - 0x97, - 0xB8, - 0xA3, - 0x6B, - 0x34, - 0x46, - 0x5A, - 0x5A, - 0x75, - 0x75, - 0x91, - 0x75, - 0x75, - 0x5B, - 0x5A, - 0x5E, - 0x33, - 0x74, - 0x5D, - 0xB2, - 0x8E, - 0x8E, - 0x8E, - 0xB2, - 0x52, - 0xB9, - 0x5D, - 0xB9, - 0xB9, - 0x9C, - 0xA3, - 0xBF, - 0xAA, - 0xC1, - 0xC6, - 0xAA, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xCF, - 0xCF, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC8, - 0xC8, - 0xD2, - 0xB6, - 0xCD, - 0xCA, - 0xC2, - 0xB5, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x15, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xC2, - 0xB5, - 0xCD, - 0xD2, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xB5, - 0xC2, - 0xC6, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0x00, - 0x08, - 0xC5, - 0x00, - 0x29, - 0xAC, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xC5, - 0xBF, - 0xC5, - 0xAC, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x42, - 0x7F, - 0x95, - 0x07, - 0x60, - 0x00, - 0x1B, - 0x95, - 0xE5, - 0x9D, - 0xEF, - 0x03, - 0xF8, - 0xF3, - 0xF8, - 0x0C, - 0x0C, - 0x0C, - 0x0B, - 0x0C, - 0x0B, - 0xF8, - 0xF8, - 0x04, - 0x0D, - 0x03, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x11, - 0x0E, - 0xE6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0xF5, - 0x01, - 0xF1, - 0x01, - 0x01, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x01, - 0x05, - 0x12, - 0x00, - 0xB5, - 0x13, - 0xFE, - 0xFE, - 0x11, - 0x11, - 0x11, - 0x03, - 0x03, - 0x0D, - 0xFB, - 0xFB, - 0x0D, - 0xF3, - 0xF3, - 0xF3, - 0xF8, - 0xEB, - 0xF9, - 0xEB, - 0x0B, - 0xEB, - 0xEB, - 0xF3, - 0xF8, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0xFB, - 0x04, - 0x04, - 0x0D, - 0x0D, - 0x10, - 0xF3, - 0xFB, - 0xF3, - 0xFB, - 0x10, - 0x0D, - 0x0D, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0x13, - 0xEF, - 0xF5, - 0xF1, - 0xF1, - 0xF7, - 0xCB, - 0xA9, - 0xC1, - 0xB0, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xC6, - 0xC1, - 0xB6, - 0xC6, - 0xC2, - 0xB6, - 0xB5, - 0xC9, - 0xD2, - 0xD1, - 0xC8, - 0xC8, - 0xC9, - 0xA1, - 0x8D, - 0xAC, - 0xB1, - 0x49, - 0x74, - 0x31, - 0x5E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x2E, - 0x33, - 0x74, - 0x35, - 0x7E, - 0x8E, - 0x7E, - 0x35, - 0x35, - 0x4A, - 0x3B, - 0x6C, - 0x6C, - 0x6D, - 0x9C, - 0xA3, - 0xAC, - 0x8D, - 0x8D, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xB0, - 0xC1, - 0xB0, - 0xB0, - 0xC2, - 0xC9, - 0xD1, - 0xC8, - 0xC8, - 0xD9, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xCA, - 0xB5, - 0xC2, - 0xCA, - 0xB5, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0x00, - 0x05, - 0xCD, - 0x01, - 0xC8, - 0x01, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xC9, - 0xB6, - 0xB0, - 0xC1, - 0xB7, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x01, - 0x8E, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xAC, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xAE, - 0xBF, - 0xC5, - 0xAE, - 0xBF, - 0x00, - 0x04, - 0xC5, - 0x01, - 0xAC, - 0x01, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x0C, - 0xC3, - 0xB8, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0x07, - 0xC5, - 0x00, - 0x08, - 0xAC, - 0xAC, - 0x97, - 0x4A, - 0x23, - 0x70, - 0x60, - 0x92, - 0x05, - 0x60, - 0x00, - 0x0A, - 0x92, - 0xDE, - 0x9D, - 0xF6, - 0xF3, - 0xF8, - 0x0C, - 0x0C, - 0x0C, - 0xF9, - 0x04, - 0x0C, - 0x00, - 0x70, - 0xF8, - 0x04, - 0x0D, - 0x10, - 0x0E, - 0x03, - 0x11, - 0x11, - 0xFE, - 0x11, - 0xFE, - 0xFE, - 0x11, - 0xFA, - 0xFA, - 0xED, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0xFC, - 0x02, - 0xF5, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x02, - 0x02, - 0x12, - 0x12, - 0x12, - 0x13, - 0xFE, - 0xFE, - 0xFE, - 0xFA, - 0xFA, - 0x03, - 0x03, - 0xED, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0xF8, - 0xF3, - 0x04, - 0xEB, - 0x0C, - 0xEB, - 0xF8, - 0x0B, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0xFB, - 0xFB, - 0x10, - 0xF3, - 0x0D, - 0x04, - 0x10, - 0x0D, - 0x0D, - 0xF3, - 0xF3, - 0x10, - 0x04, - 0x0D, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x11, - 0xFE, - 0xF6, - 0x12, - 0x02, - 0x01, - 0xF1, - 0x00, - 0xF7, - 0xC6, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0xB6, - 0xC2, - 0xA9, - 0xB0, - 0xA9, - 0x71, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0x04, - 0xCD, - 0x00, - 0x54, - 0xB5, - 0xC2, - 0xB6, - 0xCA, - 0xB6, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xB6, - 0xB0, - 0xB5, - 0xC9, - 0xD2, - 0xCF, - 0xC4, - 0xCD, - 0xD2, - 0xA1, - 0xB0, - 0xC3, - 0x8E, - 0x52, - 0x6C, - 0x42, - 0x46, - 0x59, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x91, - 0x75, - 0x75, - 0x4D, - 0x5A, - 0x46, - 0x31, - 0x74, - 0x49, - 0x52, - 0x35, - 0x4A, - 0x4A, - 0x74, - 0x74, - 0xBA, - 0xBA, - 0x34, - 0x6C, - 0xA3, - 0x9B, - 0x80, - 0xAA, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC9, - 0xCD, - 0xD1, - 0xC8, - 0xD9, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xC8, - 0xB6, - 0xC9, - 0xC2, - 0xCD, - 0xC9, - 0xCA, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x0D, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x04, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC9, - 0xB5, - 0xC2, - 0xB0, - 0xB7, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x05, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0x00, - 0x07, - 0xC5, - 0x01, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x07, - 0xAC, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0x00, - 0x06, - 0xBF, - 0x00, - 0x06, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0x04, - 0xC5, - 0x00, - 0x19, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xAC, - 0xB2, - 0x36, - 0x2D, - 0x92, - 0x00, - 0x05, - 0x60, - 0x00, - 0x14, - 0x95, - 0x95, - 0xE5, - 0xE6, - 0xED, - 0xF8, - 0x0B, - 0xF9, - 0x0A, - 0xF9, - 0x0A, - 0x0C, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0x04, - 0x04, - 0x10, - 0x0D, - 0x04, - 0x11, - 0x00, - 0x05, - 0x13, - 0x11, - 0x13, - 0x13, - 0x11, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x0F, - 0xFE, - 0x13, - 0x12, - 0x12, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x04, - 0x01, - 0x00, - 0x1A, - 0x02, - 0x12, - 0x13, - 0x13, - 0xF6, - 0x11, - 0xFE, - 0x11, - 0x03, - 0xED, - 0xFA, - 0x03, - 0xFA, - 0xF6, - 0x12, - 0xE7, - 0xFE, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0x10, - 0xFB, - 0xF3, - 0x05, - 0xFB, - 0x00, - 0x2C, - 0x04, - 0x0D, - 0x04, - 0x11, - 0x0D, - 0x10, - 0x04, - 0x10, - 0xFB, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x03, - 0x03, - 0x11, - 0xF6, - 0xFE, - 0xFC, - 0xF5, - 0xF1, - 0xF1, - 0xF1, - 0xF7, - 0xCA, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xA9, - 0xC1, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0x04, - 0xCD, - 0x00, - 0x1F, - 0xB6, - 0xB6, - 0xB0, - 0xB6, - 0xA9, - 0xB0, - 0xC2, - 0xC1, - 0xA9, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xCD, - 0xD1, - 0xC4, - 0xC9, - 0xD2, - 0xA1, - 0xA1, - 0x8D, - 0xAA, - 0x8E, - 0xB2, - 0xB9, - 0x74, - 0x6F, - 0x46, - 0x59, - 0x5B, - 0x5B, - 0x00, - 0x04, - 0x91, - 0x00, - 0x33, - 0x75, - 0x5B, - 0x90, - 0x39, - 0x33, - 0x3B, - 0x4A, - 0x3B, - 0x6E, - 0xBA, - 0x6F, - 0xBA, - 0x31, - 0x6F, - 0x6F, - 0x42, - 0x5D, - 0x7E, - 0xAA, - 0x8D, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xA9, - 0xC2, - 0xCA, - 0xC2, - 0xC9, - 0xCD, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xCF, - 0xD1, - 0xD2, - 0xC9, - 0xCD, - 0xB6, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x0B, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x11, - 0xC2, - 0xC2, - 0xB0, - 0xC6, - 0xC6, - 0xAA, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x0A, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x0C, - 0xAE, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x08, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0x04, - 0xC5, - 0x01, - 0xBF, - 0x08, - 0xC5, - 0x00, - 0x03, - 0x66, - 0x32, - 0x92, - 0x00, - 0x06, - 0x60, - 0x00, - 0x08, - 0x92, - 0xE5, - 0xDB, - 0xFB, - 0xF9, - 0xFF, - 0xF9, - 0x0A, - 0x04, - 0xF9, - 0x00, - 0x1B, - 0x0C, - 0xF8, - 0x0C, - 0x0C, - 0x04, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0x11, - 0xFE, - 0xFE, - 0xFE, - 0xFA, - 0xFA, - 0x13, - 0xF6, - 0x12, - 0x02, - 0x01, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF4, - 0x04, - 0x00, - 0x00, - 0x17, - 0xF1, - 0x01, - 0x01, - 0x01, - 0x02, - 0x12, - 0xFC, - 0xF6, - 0x13, - 0x13, - 0xF6, - 0xFE, - 0xFE, - 0x13, - 0x03, - 0xED, - 0x11, - 0x11, - 0xF6, - 0x13, - 0xFC, - 0xE7, - 0x12, - 0x00, - 0x04, - 0xF3, - 0x00, - 0x04, - 0xFB, - 0xFB, - 0x0D, - 0xFB, - 0x04, - 0x0D, - 0x00, - 0x9D, - 0x0E, - 0x04, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0x10, - 0x0D, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x11, - 0xFA, - 0x11, - 0xF6, - 0x13, - 0xEF, - 0x02, - 0x01, - 0x00, - 0x00, - 0xCE, - 0xC6, - 0x71, - 0xA9, - 0xA9, - 0xA9, - 0xC6, - 0xA9, - 0x71, - 0xCA, - 0xC1, - 0xC2, - 0xA9, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB0, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xA1, - 0xB0, - 0xB5, - 0xC9, - 0xCD, - 0xD2, - 0xD2, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xAA, - 0xC3, - 0x8E, - 0xB1, - 0x52, - 0x6C, - 0x42, - 0x46, - 0x5E, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x64, - 0x91, - 0x75, - 0x63, - 0x4D, - 0x5E, - 0x2E, - 0x31, - 0x34, - 0x42, - 0x6F, - 0x6F, - 0x6F, - 0xD6, - 0xD6, - 0x5E, - 0xD6, - 0x46, - 0x42, - 0xA3, - 0xCB, - 0xAA, - 0x8D, - 0x8D, - 0xAA, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xCD, - 0xCF, - 0xD9, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xC8, - 0xD1, - 0xCD, - 0xCD, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB6, - 0xCA, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xCA, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0x05, - 0xC5, - 0x00, - 0x10, - 0x9B, - 0xAE, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAE, - 0xC5, - 0xC5, - 0x05, - 0xBF, - 0x00, - 0x09, - 0xA3, - 0xAE, - 0xBF, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0x00, - 0x05, - 0xC5, - 0x01, - 0xAC, - 0x01, - 0xB8, - 0x04, - 0xC5, - 0x00, - 0x08, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB1, - 0xC5, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x04, - 0x6F, - 0x1C, - 0x95, - 0x92, - 0x05, - 0x60, - 0x00, - 0x04, - 0x92, - 0xCC, - 0xEB, - 0xF8, - 0x04, - 0xFF, - 0x00, - 0x0E, - 0x0A, - 0xF9, - 0x0A, - 0x0C, - 0x0C, - 0xF9, - 0x0A, - 0x0C, - 0x0C, - 0x04, - 0x0B, - 0x10, - 0x10, - 0x0D, - 0x05, - 0x11, - 0x05, - 0xFE, - 0x00, - 0x06, - 0xFC, - 0x13, - 0xFC, - 0x12, - 0x01, - 0x01, - 0x05, - 0xF4, - 0x04, - 0x00, - 0x06, - 0x01, - 0x00, - 0xA8, - 0x02, - 0x02, - 0xFC, - 0x12, - 0x12, - 0xFE, - 0xFE, - 0x11, - 0x0E, - 0x11, - 0x11, - 0xFE, - 0x13, - 0x13, - 0x12, - 0xFC, - 0xF5, - 0xF0, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x0D, - 0x03, - 0x11, - 0x0D, - 0x0D, - 0x11, - 0x10, - 0x0D, - 0x10, - 0xFB, - 0x0D, - 0xFB, - 0x0D, - 0x0D, - 0xED, - 0x0E, - 0x03, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0x02, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xC6, - 0xA9, - 0xC2, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0x71, - 0xA9, - 0xC6, - 0xC2, - 0xA9, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xB5, - 0xC2, - 0x71, - 0xC2, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0xC9, - 0xC2, - 0xD2, - 0xCD, - 0xC9, - 0xC9, - 0xC2, - 0x8D, - 0xAA, - 0xAA, - 0xAC, - 0xC5, - 0xB1, - 0x52, - 0xB9, - 0x3B, - 0x42, - 0x46, - 0x59, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x45, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x29, - 0x46, - 0x46, - 0x31, - 0x46, - 0xB3, - 0xB3, - 0x59, - 0xB3, - 0x90, - 0x59, - 0x5E, - 0x31, - 0x6B, - 0x9B, - 0x80, - 0x8D, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xA9, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xC9, - 0xD1, - 0xC8, - 0xD9, - 0xC8, - 0xD9, - 0xC7, - 0xCF, - 0xC7, - 0xD9, - 0xDA, - 0xD1, - 0xCD, - 0xB5, - 0xC9, - 0xB5, - 0xCA, - 0xC2, - 0xCA, - 0xC6, - 0xC6, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x0E, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xCD, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x26, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xAE, - 0xAE, - 0xA3, - 0x04, - 0xBF, - 0x01, - 0xAE, - 0x0A, - 0xC5, - 0x01, - 0xB8, - 0x04, - 0xC5, - 0x01, - 0xAC, - 0x01, - 0xB8, - 0x09, - 0xC5, - 0x00, - 0x06, - 0xCE, - 0xB8, - 0xC5, - 0x61, - 0x76, - 0x7B, - 0x06, - 0x60, - 0x00, - 0x2F, - 0x92, - 0xCC, - 0xE5, - 0xFF, - 0xFF, - 0xF9, - 0x0C, - 0xF9, - 0xF9, - 0x0C, - 0xF9, - 0xF9, - 0x0C, - 0xFF, - 0xF9, - 0xF9, - 0x0C, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x11, - 0xFE, - 0x11, - 0x11, - 0x13, - 0x13, - 0x12, - 0x02, - 0x01, - 0x00, - 0x00, - 0xF4, - 0xF4, - 0xF4, - 0x01, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0x00, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x01, - 0xF5, - 0x01, - 0x01, - 0x01, - 0x02, - 0x11, - 0xFE, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0x13, - 0xF6, - 0x12, - 0xFC, - 0x12, - 0xE7, - 0xF1, - 0x0E, - 0x0D, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x00, - 0x08, - 0x11, - 0x01, - 0x0E, - 0x05, - 0x0D, - 0x00, - 0x13, - 0x10, - 0x03, - 0x0E, - 0x0E, - 0x03, - 0x11, - 0x11, - 0xFE, - 0x13, - 0x02, - 0x01, - 0x01, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x71, - 0xC1, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x7B, - 0xC2, - 0xC1, - 0x71, - 0xA9, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC9, - 0xC9, - 0xC2, - 0xCD, - 0xB6, - 0xB6, - 0xB6, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xB6, - 0xB6, - 0xD2, - 0xC9, - 0xD2, - 0xC9, - 0xA1, - 0xB0, - 0x8D, - 0xAA, - 0xAC, - 0xAC, - 0x9B, - 0xBF, - 0xA4, - 0x79, - 0x6B, - 0x42, - 0xBA, - 0x9A, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x91, - 0x64, - 0x89, - 0x91, - 0x75, - 0x5B, - 0x29, - 0x46, - 0x5E, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0x90, - 0xBB, - 0x8B, - 0x90, - 0x9A, - 0x74, - 0x52, - 0xAA, - 0x80, - 0x8D, - 0xC6, - 0xAA, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xCF, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xCD, - 0xB6, - 0xB5, - 0xCA, - 0xC2, - 0xC6, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC9, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC5, - 0x01, - 0xBF, - 0x01, - 0xAE, - 0x06, - 0xC5, - 0x00, - 0x0A, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xBF, - 0xBF, - 0xAE, - 0x04, - 0xBF, - 0x00, - 0x05, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xB1, - 0x00, - 0x08, - 0xC5, - 0x01, - 0xAC, - 0x06, - 0xC5, - 0x00, - 0x0D, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0x7E, - 0x45, - 0x32, - 0x92, - 0x00, - 0x05, - 0x60, - 0x00, - 0x0C, - 0x92, - 0xCC, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xFF, - 0x0A, - 0x07, - 0xFF, - 0x00, - 0x1D, - 0x0A, - 0x0B, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0x12, - 0x12, - 0x01, - 0x00, - 0xF4, - 0xF4, - 0xF4, - 0x02, - 0xFE, - 0x11, - 0x11, - 0x11, - 0xFA, - 0x13, - 0xFC, - 0x01, - 0x00, - 0x05, - 0x00, - 0x00, - 0x17, - 0xF1, - 0x01, - 0x01, - 0xF1, - 0xFE, - 0x11, - 0x13, - 0xFE, - 0x11, - 0x11, - 0xFE, - 0xF6, - 0x13, - 0x12, - 0xFC, - 0x02, - 0xEF, - 0x12, - 0xF5, - 0x12, - 0x11, - 0x03, - 0x03, - 0x00, - 0x09, - 0x11, - 0x00, - 0x04, - 0x13, - 0x11, - 0x0D, - 0x0E, - 0x04, - 0x0D, - 0x00, - 0x47, - 0x03, - 0x0D, - 0x0D, - 0x0D, - 0x11, - 0x0E, - 0x11, - 0x13, - 0x11, - 0xFE, - 0x13, - 0x12, - 0x12, - 0x01, - 0x01, - 0x00, - 0xF7, - 0xD3, - 0xC1, - 0xB6, - 0xA9, - 0xA9, - 0xC1, - 0x71, - 0xB6, - 0xC6, - 0xB6, - 0xA9, - 0xB6, - 0xB6, - 0xC2, - 0xC9, - 0xB6, - 0xCD, - 0xC2, - 0xCD, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xB0, - 0xB6, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xA1, - 0x8D, - 0xC3, - 0xCB, - 0xAC, - 0x9B, - 0x9B, - 0xB2, - 0x52, - 0x49, - 0x49, - 0x6C, - 0x42, - 0x6F, - 0x2E, - 0x5E, - 0x5B, - 0x5B, - 0x00, - 0x04, - 0x91, - 0x00, - 0x47, - 0x64, - 0x75, - 0x3A, - 0x5A, - 0x5A, - 0x90, - 0x8B, - 0x66, - 0x8B, - 0xBC, - 0x8B, - 0xBC, - 0x5B, - 0x59, - 0x31, - 0x9C, - 0x8E, - 0x8D, - 0xC1, - 0xC6, - 0xA9, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xC2, - 0xB0, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD7, - 0xC7, - 0xC7, - 0xCF, - 0xD9, - 0xC8, - 0xD2, - 0xCD, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB6, - 0xCA, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC3, - 0x04, - 0xAA, - 0x00, - 0x0D, - 0x8D, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xC5, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x09, - 0xB1, - 0xC5, - 0xAE, - 0xB1, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0x00, - 0x06, - 0xC5, - 0x07, - 0xBF, - 0x00, - 0x03, - 0xAE, - 0xAE, - 0xBF, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x03, - 0xCE, - 0xB8, - 0xB8, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xBF, - 0x00, - 0x06, - 0xC5, - 0x00, - 0x0C, - 0xAC, - 0x9B, - 0x5A, - 0x26, - 0x92, - 0x60, - 0x92, - 0x60, - 0x92, - 0x60, - 0x92, - 0x73, - 0x04, - 0xFF, - 0x00, - 0x21, - 0x0A, - 0xFF, - 0xFF, - 0x0F, - 0xFF, - 0xFF, - 0xFF, - 0xF2, - 0x0A, - 0x0A, - 0x0F, - 0x05, - 0x0F, - 0xFF, - 0x05, - 0x0C, - 0x0B, - 0xF8, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x11, - 0xFE, - 0xFE, - 0x13, - 0x12, - 0x12, - 0x01, - 0x00, - 0x00, - 0xF4, - 0x01, - 0x00, - 0x04, - 0x11, - 0x00, - 0x2D, - 0xFA, - 0x0E, - 0xED, - 0x03, - 0x12, - 0x12, - 0x01, - 0x00, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x01, - 0x12, - 0x11, - 0x13, - 0x12, - 0xFE, - 0xDD, - 0xFE, - 0xFE, - 0x13, - 0xFC, - 0xF6, - 0x12, - 0xEF, - 0x02, - 0xF5, - 0x02, - 0xF0, - 0x11, - 0xFA, - 0xFE, - 0x11, - 0x11, - 0xFE, - 0x11, - 0x13, - 0x11, - 0x13, - 0x13, - 0x11, - 0x12, - 0x11, - 0x11, - 0x00, - 0x04, - 0x0D, - 0x05, - 0x0E, - 0x00, - 0x11, - 0x0D, - 0x11, - 0x0E, - 0x03, - 0x03, - 0x11, - 0x11, - 0x13, - 0x13, - 0x12, - 0x01, - 0x01, - 0xF1, - 0x00, - 0xF7, - 0xC1, - 0x71, - 0x00, - 0x04, - 0xC1, - 0x01, - 0xA9, - 0x01, - 0xA9, - 0x04, - 0xB6, - 0x00, - 0x09, - 0xCD, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xA9, - 0xC1, - 0xA9, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x1C, - 0xA9, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xD2, - 0xC8, - 0xD2, - 0xC9, - 0xA1, - 0xA9, - 0xAA, - 0xC3, - 0xC5, - 0xC5, - 0xB1, - 0xB2, - 0x35, - 0xB9, - 0xB9, - 0xB9, - 0x6D, - 0x42, - 0x6F, - 0x5E, - 0x5A, - 0x5A, - 0x75, - 0x05, - 0x91, - 0x00, - 0x05, - 0x75, - 0x5B, - 0x5A, - 0x5B, - 0x8B, - 0x00, - 0x04, - 0xA8, - 0x00, - 0x3C, - 0xBC, - 0xBC, - 0x90, - 0x9A, - 0x6D, - 0x9B, - 0xAA, - 0xC6, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xB5, - 0xCD, - 0xD1, - 0xC8, - 0xD9, - 0xD9, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xCF, - 0xCF, - 0xD1, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xCA, - 0xC6, - 0xCA, - 0xC2, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0xCD, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCD, - 0xB5, - 0xB6, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x12, - 0x9B, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x06, - 0xB1, - 0xAE, - 0xC5, - 0xB1, - 0xB1, - 0xAE, - 0x09, - 0xC5, - 0x00, - 0x06, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xB2, - 0xC5, - 0x06, - 0xBF, - 0x07, - 0xC5, - 0x00, - 0x04, - 0xAC, - 0xC5, - 0xC5, - 0xC3, - 0x0C, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x42, - 0x2F, - 0x7B, - 0x05, - 0x60, - 0x01, - 0x73, - 0x01, - 0x85, - 0x04, - 0xFF, - 0x00, - 0x6E, - 0xF2, - 0x0F, - 0xFF, - 0xFF, - 0x05, - 0x0F, - 0xFF, - 0x05, - 0x0F, - 0x0F, - 0x05, - 0x06, - 0x0F, - 0x0F, - 0x05, - 0x0F, - 0x05, - 0x0A, - 0x0B, - 0x0C, - 0x10, - 0x0D, - 0x0E, - 0x13, - 0x13, - 0x12, - 0x12, - 0x01, - 0x00, - 0xF4, - 0xF4, - 0x12, - 0x11, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0x13, - 0xF6, - 0xFC, - 0xF6, - 0xF6, - 0xFC, - 0x01, - 0xF1, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x01, - 0x13, - 0xFE, - 0x12, - 0x12, - 0xEF, - 0x02, - 0xEF, - 0x12, - 0xE4, - 0xF6, - 0xEF, - 0x02, - 0x01, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0x12, - 0xFE, - 0x11, - 0x13, - 0x13, - 0xFE, - 0x13, - 0x13, - 0x13, - 0xFE, - 0x12, - 0x12, - 0x01, - 0x13, - 0x11, - 0x0D, - 0x11, - 0x0D, - 0x0D, - 0x03, - 0x0E, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0x01, - 0x01, - 0x00, - 0xF7, - 0xC6, - 0xA9, - 0x71, - 0x05, - 0xA9, - 0x01, - 0x71, - 0x04, - 0xB6, - 0x01, - 0xCD, - 0x01, - 0xB6, - 0x04, - 0xA9, - 0x04, - 0xC1, - 0x00, - 0x67, - 0xA9, - 0xC6, - 0xB6, - 0xC2, - 0xB5, - 0xB6, - 0xCD, - 0xCD, - 0xC8, - 0xC9, - 0xB0, - 0x80, - 0xAA, - 0xAC, - 0xC5, - 0xB1, - 0xBF, - 0xA4, - 0x86, - 0xB9, - 0xB9, - 0xB9, - 0x4A, - 0x6E, - 0x42, - 0x46, - 0x9A, - 0x5A, - 0x8B, - 0x63, - 0x91, - 0x91, - 0x89, - 0x64, - 0x75, - 0x5B, - 0x66, - 0x66, - 0x75, - 0x75, - 0xBE, - 0xBE, - 0xA8, - 0xBE, - 0x75, - 0x66, - 0x59, - 0x34, - 0xB2, - 0xAC, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0x8D, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xD2, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xDA, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0xC2, - 0xC2, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xC2, - 0xCD, - 0xB5, - 0xCD, - 0xD2, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xBF, - 0xAC, - 0x8E, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0x00, - 0x04, - 0xAC, - 0x06, - 0xC5, - 0x00, - 0x1A, - 0xBF, - 0xAE, - 0xB1, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0x9B, - 0x9B, - 0xC5, - 0xBF, - 0xC5, - 0xBF, - 0xBF, - 0xA3, - 0xBF, - 0xD4, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0x04, - 0xC5, - 0x01, - 0xB1, - 0x05, - 0xC5, - 0x00, - 0x04, - 0xB8, - 0xC5, - 0xC5, - 0xB1, - 0x07, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x49, - 0x45, - 0x2D, - 0x05, - 0x60, - 0x00, - 0x0D, - 0x95, - 0xEE, - 0xFF, - 0xF2, - 0xFF, - 0x0F, - 0xFF, - 0x0F, - 0x0F, - 0x07, - 0xFF, - 0x07, - 0x07, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x33, - 0x07, - 0x07, - 0x06, - 0x0F, - 0x05, - 0x0F, - 0x05, - 0x05, - 0x0B, - 0x0B, - 0x0D, - 0x0E, - 0x11, - 0x11, - 0x12, - 0x01, - 0x01, - 0xF4, - 0xF4, - 0x01, - 0x11, - 0x0D, - 0x03, - 0x11, - 0x13, - 0x13, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0x01, - 0x02, - 0x01, - 0x01, - 0xF4, - 0xF4, - 0xF4, - 0x13, - 0x11, - 0x03, - 0x11, - 0x13, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0xF5, - 0xEF, - 0xE7, - 0x00, - 0x04, - 0x01, - 0x00, - 0x17, - 0xF1, - 0x12, - 0x13, - 0xF6, - 0x13, - 0x13, - 0x13, - 0xFE, - 0x13, - 0x13, - 0x12, - 0x13, - 0x12, - 0x12, - 0x13, - 0x11, - 0x11, - 0x11, - 0x0D, - 0x03, - 0x0E, - 0x0D, - 0x0E, - 0x00, - 0x05, - 0x0D, - 0x00, - 0x5E, - 0x10, - 0x10, - 0x04, - 0x10, - 0x04, - 0x0D, - 0x0D, - 0x0D, - 0x13, - 0x11, - 0x12, - 0x01, - 0x00, - 0xD3, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0xB6, - 0xB6, - 0xCD, - 0xB6, - 0xCD, - 0x71, - 0xB6, - 0xB6, - 0xB0, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xB0, - 0xA9, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC9, - 0xA1, - 0xC6, - 0xAA, - 0xCB, - 0x9B, - 0x9B, - 0xB2, - 0xA3, - 0x49, - 0xB9, - 0x4A, - 0x4A, - 0x61, - 0xB9, - 0x74, - 0xBA, - 0x46, - 0x5E, - 0x5A, - 0x5A, - 0x75, - 0x63, - 0x91, - 0x91, - 0x91, - 0x63, - 0x4D, - 0x75, - 0xA8, - 0xBE, - 0x45, - 0xBE, - 0xA7, - 0xBE, - 0xBE, - 0xA8, - 0x90, - 0x9A, - 0x6B, - 0xC5, - 0xAA, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0x04, - 0xC2, - 0x00, - 0x0F, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xDA, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xCF, - 0xD7, - 0xCF, - 0xD1, - 0xCD, - 0xC9, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xB0, - 0xCA, - 0xCA, - 0x00, - 0x07, - 0xC2, - 0x00, - 0x08, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xB6, - 0xB5, - 0xC9, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0xAE, - 0xB1, - 0xC5, - 0xB1, - 0xAE, - 0x00, - 0x07, - 0xC5, - 0x00, - 0x0F, - 0x9B, - 0xC5, - 0xB1, - 0xBF, - 0xBF, - 0xB1, - 0xD4, - 0xBF, - 0xBF, - 0xB2, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0x00, - 0x08, - 0xC5, - 0x01, - 0xAC, - 0x09, - 0xC5, - 0x00, - 0x08, - 0x9B, - 0xC5, - 0xAD, - 0xAC, - 0xB1, - 0x5B, - 0x8C, - 0x95, - 0x04, - 0x60, - 0x00, - 0x4E, - 0x95, - 0xE5, - 0xFF, - 0xF2, - 0xFF, - 0x0F, - 0x0F, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0x07, - 0x06, - 0x07, - 0x07, - 0x06, - 0x08, - 0x07, - 0x07, - 0x06, - 0x07, - 0x06, - 0x0F, - 0x0F, - 0x0A, - 0xFF, - 0x0C, - 0x0B, - 0x0D, - 0x11, - 0x11, - 0x12, - 0x01, - 0xF4, - 0xF4, - 0xF5, - 0x0D, - 0x10, - 0xFB, - 0x0E, - 0x11, - 0xFA, - 0x13, - 0xF6, - 0x13, - 0xFC, - 0xFC, - 0x02, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0xF4, - 0x01, - 0x0E, - 0x11, - 0x0E, - 0x03, - 0x11, - 0x13, - 0x13, - 0x12, - 0x02, - 0x01, - 0x01, - 0x00, - 0xF1, - 0xF1, - 0x01, - 0x00, - 0x00, - 0xF1, - 0x02, - 0x12, - 0x13, - 0x12, - 0x13, - 0x06, - 0x12, - 0x00, - 0x11, - 0x01, - 0x12, - 0x12, - 0x13, - 0x11, - 0x03, - 0x0E, - 0x03, - 0x0D, - 0xFB, - 0x0D, - 0x10, - 0x0D, - 0x0D, - 0x0D, - 0x04, - 0x10, - 0x00, - 0x04, - 0x04, - 0x00, - 0x03, - 0x10, - 0x0D, - 0x04, - 0x00, - 0x04, - 0x11, - 0x00, - 0x3B, - 0x01, - 0x01, - 0x00, - 0xF4, - 0xDA, - 0xC1, - 0xA9, - 0xC1, - 0xB6, - 0x71, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0x71, - 0xC2, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xA1, - 0xCA, - 0xAA, - 0xAC, - 0xC5, - 0xC5, - 0xBF, - 0xA4, - 0x86, - 0xB9, - 0xA6, - 0x4A, - 0x4A, - 0xA6, - 0x6D, - 0x74, - 0x6F, - 0x5E, - 0x5E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x91, - 0x00, - 0x04, - 0x75, - 0x00, - 0x40, - 0xBE, - 0x45, - 0xA7, - 0xA7, - 0xA7, - 0x45, - 0xA8, - 0xA8, - 0x5E, - 0x34, - 0x7E, - 0xAA, - 0xD3, - 0xA9, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC9, - 0xCD, - 0xC8, - 0xD1, - 0xD9, - 0xCF, - 0xD7, - 0xD7, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB0, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xCD, - 0xB5, - 0xC2, - 0xCD, - 0xB5, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x07, - 0xB2, - 0x7E, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xAC, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x14, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0x8E, - 0x97, - 0x9B, - 0xC5, - 0x9B, - 0xC5, - 0xBF, - 0xB1, - 0xAE, - 0xC5, - 0xB1, - 0x9B, - 0x04, - 0xC5, - 0x00, - 0x10, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xBF, - 0xA3, - 0xB2, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xB1, - 0x07, - 0xC5, - 0x01, - 0xB8, - 0x04, - 0xC5, - 0x01, - 0xAE, - 0x01, - 0xB1, - 0x04, - 0xC5, - 0x00, - 0x58, - 0xAC, - 0x9B, - 0x9B, - 0x46, - 0x1C, - 0x95, - 0x60, - 0x60, - 0x92, - 0x92, - 0x7B, - 0x0F, - 0x0F, - 0xFF, - 0xF2, - 0x07, - 0xEE, - 0x08, - 0x07, - 0xFF, - 0x07, - 0x08, - 0xEE, - 0x07, - 0x08, - 0x07, - 0x08, - 0x06, - 0x08, - 0x06, - 0x08, - 0x07, - 0x0F, - 0x05, - 0xFF, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x11, - 0x12, - 0x01, - 0x01, - 0xF4, - 0x01, - 0x04, - 0xF8, - 0xF3, - 0xFB, - 0xFB, - 0x0E, - 0x03, - 0xFA, - 0x13, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0xFC, - 0x01, - 0x00, - 0x01, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x02, - 0x12, - 0x02, - 0x07, - 0x12, - 0x00, - 0x09, - 0x01, - 0x01, - 0x13, - 0x11, - 0x11, - 0x0E, - 0x03, - 0x0D, - 0x0E, - 0x00, - 0x04, - 0x0D, - 0x01, - 0x0B, - 0x01, - 0x04, - 0x07, - 0x0B, - 0x00, - 0x78, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x11, - 0x11, - 0x13, - 0x01, - 0x00, - 0xD3, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xA9, - 0xC2, - 0xC1, - 0xC1, - 0x78, - 0xB7, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xC8, - 0xC4, - 0xB0, - 0xAA, - 0xC3, - 0xCE, - 0xB1, - 0xBF, - 0xA3, - 0xB9, - 0xB9, - 0x4A, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x4A, - 0x6E, - 0x42, - 0x46, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x91, - 0x63, - 0x63, - 0x91, - 0x91, - 0x91, - 0x64, - 0xA7, - 0xA5, - 0xA7, - 0xD0, - 0xA7, - 0x45, - 0xA8, - 0x8B, - 0x6F, - 0x52, - 0xAC, - 0x8D, - 0xAA, - 0x80, - 0xC6, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB6, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xB0, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xB0, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x08, - 0xC9, - 0xC9, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x09, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0xB1, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x51, - 0xAC, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xC5, - 0x9B, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0x9B, - 0xBF, - 0xC5, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0xB1, - 0xAD, - 0xD4, - 0xC5, - 0xAE, - 0xB1, - 0xAE, - 0xBF, - 0xD4, - 0xBF, - 0xBF, - 0xA3, - 0xBF, - 0xBF, - 0xB2, - 0xC5, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0x35, - 0x36, - 0x70, - 0x92, - 0x60, - 0x60, - 0x73, - 0x7B, - 0xF2, - 0xF2, - 0x07, - 0x07, - 0xFD, - 0x08, - 0x07, - 0xF2, - 0x0F, - 0x08, - 0x08, - 0xEE, - 0x00, - 0x05, - 0x08, - 0x00, - 0x37, - 0x07, - 0x08, - 0x08, - 0x07, - 0x07, - 0x0F, - 0x05, - 0xFF, - 0x0A, - 0x0B, - 0x10, - 0x11, - 0x13, - 0x01, - 0x00, - 0x00, - 0x04, - 0xF8, - 0x04, - 0xF8, - 0xF3, - 0x10, - 0xF3, - 0x0E, - 0x03, - 0xFE, - 0xFE, - 0xF6, - 0x13, - 0xFC, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0x13, - 0x0D, - 0x0D, - 0x10, - 0x0D, - 0x11, - 0x11, - 0x11, - 0xFE, - 0x12, - 0x12, - 0x12, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF7, - 0x01, - 0x00, - 0x05, - 0x02, - 0x06, - 0x12, - 0x00, - 0x0F, - 0x01, - 0x01, - 0x12, - 0x12, - 0x13, - 0x11, - 0x11, - 0x03, - 0x0D, - 0x0E, - 0x0D, - 0x04, - 0x11, - 0x04, - 0x04, - 0x00, - 0x08, - 0x0B, - 0x01, - 0x0A, - 0x04, - 0x0B, - 0x00, - 0x1E, - 0x0D, - 0x11, - 0x11, - 0x12, - 0x01, - 0xC6, - 0xA9, - 0xA9, - 0xC1, - 0xB6, - 0x71, - 0xB6, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xB7, - 0xC1, - 0xB7, - 0xC1, - 0xA9, - 0xA9, - 0xB0, - 0xB6, - 0xC2, - 0xC9, - 0xCD, - 0x04, - 0xD2, - 0x00, - 0x0C, - 0xB5, - 0xB5, - 0x8D, - 0x80, - 0x8E, - 0x97, - 0xD4, - 0xA4, - 0x86, - 0xB9, - 0xB9, - 0xA6, - 0x05, - 0x6D, - 0x00, - 0x0E, - 0x42, - 0x6F, - 0x46, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x75, - 0x75, - 0x4D, - 0x75, - 0x91, - 0x45, - 0x45, - 0x04, - 0xA5, - 0x00, - 0x3A, - 0xA7, - 0xBE, - 0x8B, - 0x46, - 0x3B, - 0x8E, - 0x80, - 0x8D, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xD1, - 0xCF, - 0xC8, - 0xD9, - 0xD9, - 0xC7, - 0xC8, - 0xC7, - 0xCF, - 0xC8, - 0xCD, - 0xC2, - 0xC9, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB0, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC9, - 0xB5, - 0xCA, - 0xC9, - 0xB5, - 0xB5, - 0xCA, - 0xC9, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x52, - 0xA3, - 0xA3, - 0xB2, - 0xAE, - 0xB1, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0x04, - 0xC3, - 0x00, - 0x1D, - 0xC5, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0xB1, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0xB1, - 0xBF, - 0xC5, - 0xAE, - 0xAE, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x0A, - 0xA3, - 0xA3, - 0xA3, - 0xBF, - 0xA3, - 0xBF, - 0xBF, - 0xC5, - 0xB1, - 0xAE, - 0x0A, - 0xC5, - 0x00, - 0x5B, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0x9B, - 0x5A, - 0x26, - 0x95, - 0x92, - 0x60, - 0x92, - 0xCC, - 0xF2, - 0x07, - 0x07, - 0xEE, - 0xEE, - 0x07, - 0x0F, - 0xFF, - 0x07, - 0x07, - 0x08, - 0xFD, - 0x08, - 0x08, - 0x14, - 0x08, - 0x14, - 0x14, - 0x08, - 0x08, - 0x08, - 0x06, - 0x06, - 0x0F, - 0xFF, - 0x0A, - 0x0C, - 0x10, - 0x0D, - 0x12, - 0x01, - 0x00, - 0x11, - 0x0A, - 0xF9, - 0x0C, - 0x0C, - 0x0C, - 0xF8, - 0x10, - 0xF3, - 0x0D, - 0x0E, - 0xFA, - 0x13, - 0xF6, - 0x12, - 0x02, - 0x01, - 0x01, - 0xF1, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x10, - 0x0D, - 0x0D, - 0x0E, - 0x11, - 0x13, - 0xFE, - 0x12, - 0x02, - 0x01, - 0x01, - 0xF1, - 0x01, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x02, - 0x01, - 0x00, - 0x04, - 0x02, - 0x00, - 0x14, - 0x12, - 0x02, - 0x12, - 0x12, - 0x01, - 0x01, - 0x12, - 0x13, - 0x11, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x11, - 0x04, - 0x0D, - 0x0B, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x00, - 0x80, - 0x0B, - 0x0B, - 0x0B, - 0x11, - 0x0D, - 0x12, - 0x01, - 0xF4, - 0xA9, - 0xB6, - 0xA9, - 0xB6, - 0x71, - 0xA9, - 0xB6, - 0xC1, - 0xC1, - 0xC1, - 0x78, - 0xB7, - 0xB7, - 0xB7, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0x71, - 0xC2, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xB6, - 0xB5, - 0xA1, - 0xB5, - 0xA1, - 0xCB, - 0x97, - 0x8E, - 0xB1, - 0x52, - 0xA4, - 0x4A, - 0xB9, - 0x4A, - 0x6D, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x74, - 0x31, - 0x46, - 0x5E, - 0x5A, - 0x5B, - 0x5B, - 0x5B, - 0x75, - 0x66, - 0x91, - 0x45, - 0xA7, - 0xA7, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA7, - 0xA8, - 0x59, - 0x34, - 0xB2, - 0x80, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xCF, - 0xD7, - 0xC7, - 0xD7, - 0xCF, - 0xD9, - 0xC8, - 0xD2, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x52, - 0x86, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xAC, - 0x06, - 0xC3, - 0x00, - 0x03, - 0xB8, - 0xAC, - 0xB8, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x03, - 0xC5, - 0xC5, - 0xAC, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x0E, - 0x9B, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0xAE, - 0x05, - 0xBF, - 0x01, - 0xB2, - 0x01, - 0xA3, - 0x04, - 0xBF, - 0x00, - 0x03, - 0xC5, - 0xC5, - 0xBF, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x07, - 0xAE, - 0xAE, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xAE, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x28, - 0x9B, - 0x6E, - 0x23, - 0x70, - 0x92, - 0x60, - 0x60, - 0xDF, - 0x0F, - 0x07, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0xFF, - 0x07, - 0x07, - 0x07, - 0x08, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x14, - 0xEA, - 0x08, - 0xFD, - 0x14, - 0x08, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0xFF, - 0x0B, - 0x0B, - 0x11, - 0x12, - 0x00, - 0x0E, - 0x05, - 0xF9, - 0x00, - 0x10, - 0xF8, - 0xF8, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0x03, - 0x03, - 0x13, - 0x13, - 0x02, - 0x01, - 0x01, - 0x00, - 0x13, - 0x04, - 0x04, - 0x0B, - 0x00, - 0x07, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x12, - 0x00, - 0x04, - 0x01, - 0x00, - 0x64, - 0x00, - 0xF7, - 0x00, - 0xF1, - 0x01, - 0x02, - 0x02, - 0x01, - 0x02, - 0x01, - 0x02, - 0x02, - 0x02, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0x12, - 0x12, - 0x13, - 0x11, - 0x03, - 0x0E, - 0x0D, - 0xFB, - 0x0D, - 0x0D, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x0B, - 0x05, - 0x0A, - 0x0A, - 0x05, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0x0D, - 0x11, - 0x12, - 0xF0, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0x78, - 0xB7, - 0xB8, - 0x78, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xC2, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB0, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0x80, - 0x80, - 0xCB, - 0x8E, - 0x9B, - 0xBF, - 0xA4, - 0x79, - 0xB9, - 0x4A, - 0x6D, - 0x3B, - 0x6E, - 0x6E, - 0xA6, - 0x6D, - 0x3B, - 0x42, - 0x6F, - 0x2E, - 0x59, - 0x04, - 0x5A, - 0x00, - 0x05, - 0x66, - 0x75, - 0x45, - 0x89, - 0xA7, - 0x00, - 0x04, - 0xAF, - 0x00, - 0x39, - 0xA7, - 0xA8, - 0x8B, - 0x31, - 0x5D, - 0xAC, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xD2, - 0xC8, - 0xC8, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xCF, - 0xD9, - 0xC8, - 0xD1, - 0xCD, - 0xC9, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xB0, - 0xCA, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x79, - 0x79, - 0x52, - 0xA4, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xB1, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0x00, - 0x08, - 0xBF, - 0x00, - 0x25, - 0xA3, - 0xBF, - 0xBF, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xBF, - 0xB1, - 0xC5, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0x9B, - 0x7E, - 0x75, - 0x32, - 0x92, - 0x92, - 0x60, - 0xCC, - 0xE5, - 0x07, - 0x07, - 0x07, - 0xEE, - 0x07, - 0x0F, - 0x07, - 0x00, - 0x04, - 0x08, - 0x00, - 0x19, - 0xFD, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0xFD, - 0xFD, - 0xEE, - 0xFD, - 0x08, - 0x07, - 0x0F, - 0xFF, - 0x0A, - 0x0B, - 0x0D, - 0x12, - 0x12, - 0x13, - 0x0C, - 0x0A, - 0xF9, - 0xFF, - 0xF9, - 0xFF, - 0x00, - 0x04, - 0xF8, - 0x00, - 0x3D, - 0xF3, - 0xFB, - 0xFB, - 0x03, - 0xFE, - 0x13, - 0xFC, - 0x01, - 0x00, - 0x00, - 0x10, - 0x0C, - 0xF9, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0x04, - 0x10, - 0x0E, - 0x0E, - 0x11, - 0x13, - 0x12, - 0x02, - 0x01, - 0x01, - 0x00, - 0x01, - 0x00, - 0xF1, - 0x02, - 0x01, - 0x01, - 0x02, - 0x01, - 0x12, - 0x02, - 0x12, - 0x02, - 0x02, - 0x01, - 0x12, - 0x00, - 0x01, - 0x02, - 0x12, - 0x13, - 0x13, - 0x03, - 0x03, - 0x0D, - 0xFB, - 0x0D, - 0x10, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x08, - 0x05, - 0x00, - 0x80, - 0x0A, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x11, - 0x13, - 0x02, - 0x00, - 0xCD, - 0xC1, - 0xB7, - 0x71, - 0xC1, - 0x71, - 0xB7, - 0xC3, - 0xB7, - 0xB7, - 0xB7, - 0xB8, - 0xB7, - 0xC1, - 0xA9, - 0xA9, - 0x71, - 0xC2, - 0xB6, - 0xC9, - 0xB6, - 0xB5, - 0xA9, - 0x78, - 0xAA, - 0x8E, - 0xB8, - 0xAC, - 0xAC, - 0x8E, - 0x97, - 0x9B, - 0x9B, - 0xD4, - 0xB2, - 0xA4, - 0x79, - 0xB9, - 0x6D, - 0x9D, - 0x3B, - 0x3B, - 0x6E, - 0x6D, - 0x6D, - 0x6C, - 0xBA, - 0x6F, - 0x46, - 0x59, - 0x5E, - 0x5A, - 0x90, - 0x8B, - 0x66, - 0xA8, - 0x89, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0x76, - 0xA5, - 0xA7, - 0x66, - 0x5E, - 0x9D, - 0x9B, - 0x80, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xB6, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xCD, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xCF, - 0xD1, - 0xC9, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x15, - 0x49, - 0x79, - 0x35, - 0x52, - 0xA3, - 0x7E, - 0xB2, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xC3, - 0xAA, - 0xAA, - 0xC3, - 0xAA, - 0x80, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0x00, - 0x06, - 0xC3, - 0x04, - 0xAC, - 0x00, - 0x0C, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0x05, - 0xC5, - 0x05, - 0xBF, - 0x01, - 0xA3, - 0x04, - 0xBF, - 0x04, - 0xC5, - 0x00, - 0x5B, - 0xAE, - 0xBF, - 0xBF, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0xAD, - 0x34, - 0x7A, - 0x2D, - 0x60, - 0x92, - 0xCC, - 0x0F, - 0xF2, - 0xEE, - 0xFD, - 0x08, - 0xF2, - 0x0F, - 0x08, - 0x08, - 0x14, - 0x08, - 0x08, - 0x08, - 0xFD, - 0x08, - 0xFD, - 0xFD, - 0xEA, - 0xEE, - 0xFD, - 0x08, - 0x07, - 0x08, - 0x0F, - 0xF2, - 0x0A, - 0x0B, - 0x11, - 0x12, - 0x01, - 0x0C, - 0xF9, - 0xF9, - 0xFF, - 0xF9, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0xF3, - 0xF3, - 0x10, - 0x0E, - 0x11, - 0xFE, - 0x12, - 0x01, - 0x01, - 0x13, - 0x0C, - 0x0A, - 0xFF, - 0x0A, - 0x05, - 0xFF, - 0x0C, - 0x0C, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x11, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x05, - 0x01, - 0x00, - 0x18, - 0x02, - 0x01, - 0x02, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0x01, - 0x01, - 0x02, - 0x02, - 0x12, - 0x13, - 0xFA, - 0x11, - 0x0E, - 0x0E, - 0x11, - 0x10, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x04, - 0x05, - 0x00, - 0x04, - 0x06, - 0x05, - 0x05, - 0x06, - 0x04, - 0x05, - 0x00, - 0x22, - 0x0A, - 0x0B, - 0x04, - 0x04, - 0x11, - 0x12, - 0xF4, - 0xF4, - 0xC1, - 0xA9, - 0xC1, - 0x78, - 0xB8, - 0xB7, - 0xB7, - 0xB8, - 0xB8, - 0xB7, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0x71, - 0x71, - 0xB6, - 0xB5, - 0xB6, - 0x71, - 0x80, - 0xAC, - 0xAD, - 0xAE, - 0xBF, - 0x04, - 0x7E, - 0x00, - 0x58, - 0x8E, - 0xB2, - 0xB1, - 0xBF, - 0xA3, - 0x52, - 0xB9, - 0x4A, - 0x4A, - 0x6D, - 0x6E, - 0x6E, - 0x6E, - 0x6D, - 0x4A, - 0x3B, - 0x74, - 0x31, - 0x5E, - 0x46, - 0x9A, - 0x2E, - 0x59, - 0x66, - 0x75, - 0xBE, - 0xA5, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0x59, - 0x42, - 0x7E, - 0xCB, - 0x8D, - 0x80, - 0xB7, - 0xC1, - 0xC6, - 0xA1, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0xCF, - 0xD9, - 0xC7, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xCA, - 0xC6, - 0xC2, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xCA, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x52, - 0x79, - 0x35, - 0x35, - 0xA4, - 0x52, - 0xA3, - 0xB2, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x0E, - 0xAA, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0x05, - 0xC5, - 0x00, - 0x2C, - 0xBF, - 0xAE, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0x9B, - 0xAD, - 0xAD, - 0x8E, - 0x52, - 0x90, - 0x26, - 0x70, - 0x92, - 0xDF, - 0x0F, - 0xFD, - 0xFD, - 0xFD, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x07, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x0E, - 0x14, - 0xFD, - 0x08, - 0xEA, - 0x08, - 0x0F, - 0x07, - 0xFF, - 0x0A, - 0x0B, - 0x13, - 0x12, - 0x0B, - 0x0A, - 0x04, - 0xFF, - 0x00, - 0x24, - 0xF9, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0xF8, - 0xFB, - 0x0E, - 0xFA, - 0x13, - 0x12, - 0x01, - 0x00, - 0x04, - 0xFF, - 0xFF, - 0x0A, - 0x05, - 0xF9, - 0x0A, - 0x05, - 0xF9, - 0xF9, - 0x0B, - 0x10, - 0x0D, - 0x11, - 0x13, - 0x13, - 0x12, - 0x01, - 0x00, - 0x01, - 0xF1, - 0x06, - 0x01, - 0x00, - 0x18, - 0xF5, - 0x02, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0x01, - 0x00, - 0x02, - 0x02, - 0x12, - 0x12, - 0x11, - 0x11, - 0x0E, - 0x03, - 0x0D, - 0x10, - 0x0B, - 0x0B, - 0x0A, - 0x05, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x84, - 0x06, - 0x05, - 0x06, - 0x05, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x11, - 0x11, - 0x01, - 0x00, - 0xC1, - 0x71, - 0xB7, - 0xC1, - 0xC1, - 0x78, - 0xB8, - 0xC1, - 0xB8, - 0x78, - 0xB7, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xB6, - 0xCD, - 0xB6, - 0xB6, - 0x80, - 0xAC, - 0x9B, - 0x7E, - 0x7E, - 0x9C, - 0x6B, - 0x4A, - 0x4A, - 0x5D, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xB2, - 0xA4, - 0x52, - 0xB9, - 0x6D, - 0x6C, - 0x9D, - 0x6E, - 0x6E, - 0x6E, - 0x6D, - 0x6D, - 0x6C, - 0x42, - 0x34, - 0x6F, - 0x46, - 0x9A, - 0x5E, - 0x90, - 0xA8, - 0x45, - 0xA7, - 0xAF, - 0xA0, - 0xB4, - 0xA0, - 0x76, - 0xA5, - 0xBE, - 0x8B, - 0x46, - 0x5D, - 0x8E, - 0x80, - 0x8D, - 0xC6, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xCD, - 0xC8, - 0xD9, - 0xCF, - 0xD7, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB0, - 0xB0, - 0xC2, - 0xC6, - 0xCA, - 0xB0, - 0xCA, - 0xC9, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x22, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0xB1, - 0x8E, - 0x97, - 0x80, - 0x8D, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xB6, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0x80, - 0x80, - 0x80, - 0xAA, - 0xAA, - 0x04, - 0x8D, - 0x00, - 0x12, - 0xC6, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0x80, - 0xC1, - 0xAA, - 0x80, - 0xAA, - 0xAC, - 0xC3, - 0xAC, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0xAE, - 0x05, - 0xBF, - 0x00, - 0x22, - 0xAE, - 0xC5, - 0xBF, - 0xBF, - 0xC5, - 0xAE, - 0xAE, - 0xBF, - 0xBF, - 0xD4, - 0xBF, - 0xAE, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0x8A, - 0x45, - 0x32, - 0x92, - 0xDF, - 0xEE, - 0xFD, - 0xFD, - 0x08, - 0xFF, - 0x07, - 0x08, - 0xFD, - 0x08, - 0xFD, - 0xFD, - 0x08, - 0x14, - 0x06, - 0xFD, - 0x00, - 0x3A, - 0x08, - 0x08, - 0x08, - 0x07, - 0x0F, - 0x05, - 0x0B, - 0x0D, - 0x12, - 0x0D, - 0x0A, - 0xFF, - 0x0A, - 0xFF, - 0xEC, - 0xF9, - 0xF9, - 0xFF, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0x10, - 0x0E, - 0x03, - 0x11, - 0x12, - 0x01, - 0x02, - 0xF9, - 0x0F, - 0xFF, - 0x0F, - 0xFF, - 0x0A, - 0x0A, - 0xFF, - 0x0C, - 0xF8, - 0xF8, - 0xF8, - 0x04, - 0xFB, - 0x11, - 0x13, - 0x12, - 0x01, - 0x00, - 0x01, - 0xF1, - 0x01, - 0x01, - 0xF0, - 0x01, - 0x01, - 0x01, - 0x05, - 0x02, - 0x00, - 0x15, - 0x12, - 0x02, - 0x01, - 0x00, - 0x02, - 0xFC, - 0x02, - 0x12, - 0xFE, - 0x11, - 0x03, - 0x11, - 0x0D, - 0x0D, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x08, - 0x06, - 0x00, - 0x77, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x0B, - 0x11, - 0x11, - 0x01, - 0xC1, - 0x78, - 0xC1, - 0xB7, - 0xB7, - 0xB7, - 0xB8, - 0x78, - 0xB7, - 0xB7, - 0xB8, - 0xB7, - 0x78, - 0xC1, - 0xC1, - 0xA9, - 0x71, - 0xB6, - 0xB6, - 0xB5, - 0x71, - 0x80, - 0x96, - 0x7E, - 0x94, - 0x56, - 0x74, - 0x34, - 0x74, - 0xBA, - 0x88, - 0x6C, - 0xB9, - 0xA4, - 0xB2, - 0xB2, - 0xB1, - 0x35, - 0x35, - 0xB9, - 0x6C, - 0xA6, - 0x3B, - 0x74, - 0x6E, - 0x9D, - 0x6D, - 0x3B, - 0x6C, - 0x42, - 0x74, - 0x42, - 0x6F, - 0x9A, - 0x90, - 0x66, - 0xBE, - 0xA7, - 0xAF, - 0x7F, - 0xB4, - 0x7F, - 0xA0, - 0xAF, - 0xA7, - 0xBC, - 0x2E, - 0x3B, - 0x9B, - 0x8D, - 0xC6, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0x71, - 0xCA, - 0xC2, - 0xB0, - 0xC2, - 0xCA, - 0xB5, - 0xC9, - 0xCD, - 0xD2, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xC7, - 0xD9, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xCA, - 0xB0, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x04, - 0xB5, - 0xB6, - 0xB5, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x52, - 0xA3, - 0xB2, - 0x7E, - 0xBF, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xD2, - 0xCD, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB0, - 0xCA, - 0xB0, - 0xB0, - 0xCA, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0xB7, - 0xAC, - 0xAC, - 0xC5, - 0xAE, - 0xAE, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x1C, - 0xC5, - 0xAE, - 0xBF, - 0xC5, - 0xB1, - 0xAE, - 0xBF, - 0x8F, - 0xBF, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xB1, - 0x9B, - 0x31, - 0x23, - 0x8C, - 0xCC, - 0xEE, - 0xFD, - 0xFD, - 0x0F, - 0x0F, - 0x08, - 0x08, - 0xFD, - 0x14, - 0x0A, - 0xFD, - 0x00, - 0x0B, - 0xEA, - 0x08, - 0xEE, - 0x07, - 0xFF, - 0x0A, - 0x10, - 0x13, - 0x13, - 0x0A, - 0x0A, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x2C, - 0xF9, - 0xF9, - 0xFF, - 0xF9, - 0xF8, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0x0E, - 0x11, - 0x13, - 0x02, - 0x01, - 0x0E, - 0xFF, - 0x0F, - 0xF2, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0x04, - 0x10, - 0x0E, - 0x0E, - 0x11, - 0xFA, - 0x13, - 0x01, - 0x01, - 0xF1, - 0xF1, - 0xF0, - 0xF0, - 0x01, - 0xE3, - 0x01, - 0x01, - 0x01, - 0xF5, - 0x05, - 0x02, - 0x00, - 0x11, - 0x01, - 0xF1, - 0x02, - 0x02, - 0x12, - 0xFC, - 0xFC, - 0x13, - 0x11, - 0x03, - 0x0D, - 0x04, - 0x0B, - 0x0B, - 0x0B, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x06, - 0x00, - 0x0D, - 0x0A, - 0x05, - 0x0B, - 0x0B, - 0x0D, - 0x11, - 0x02, - 0xA9, - 0xC1, - 0x78, - 0xB7, - 0x78, - 0xB7, - 0x00, - 0x04, - 0xB8, - 0x00, - 0x44, - 0xB7, - 0xB7, - 0xB7, - 0x78, - 0xA9, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0x71, - 0xB0, - 0x97, - 0x99, - 0x94, - 0x56, - 0x34, - 0x33, - 0x2E, - 0x5E, - 0x2E, - 0x9A, - 0x31, - 0x56, - 0x6B, - 0x52, - 0x52, - 0x52, - 0xB1, - 0xA4, - 0xB9, - 0xB9, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x74, - 0x6E, - 0x3B, - 0x6C, - 0x56, - 0x6C, - 0x74, - 0x74, - 0x46, - 0x5E, - 0x8B, - 0xBE, - 0xA7, - 0xAF, - 0xB4, - 0xB4, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0x42, - 0xB2, - 0xAC, - 0x8D, - 0x8D, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xCA, - 0x04, - 0xB5, - 0x00, - 0x12, - 0xCA, - 0xB5, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xD1, - 0xC9, - 0xC9, - 0xB5, - 0x06, - 0xC2, - 0x01, - 0xC6, - 0x04, - 0xC2, - 0x00, - 0x08, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xCD, - 0xCA, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x15, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x79, - 0x52, - 0x52, - 0xB2, - 0xAE, - 0xC5, - 0x8E, - 0xAC, - 0x80, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x06, - 0xC9, - 0xC4, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0x06, - 0xA1, - 0x00, - 0x1F, - 0xC2, - 0xB5, - 0xC2, - 0xA1, - 0xB5, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xCA, - 0x8D, - 0xB0, - 0xC6, - 0xAA, - 0xC3, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0x00, - 0x06, - 0xBF, - 0x00, - 0x15, - 0xAE, - 0xD4, - 0xC5, - 0xC5, - 0x8E, - 0x46, - 0x23, - 0xE9, - 0x07, - 0xFD, - 0x07, - 0x0F, - 0x0F, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x08, - 0x14, - 0x00, - 0x07, - 0xFD, - 0x00, - 0x23, - 0x08, - 0x07, - 0x0F, - 0xFF, - 0x0C, - 0x0D, - 0x13, - 0x0B, - 0x05, - 0x0A, - 0xFF, - 0xF9, - 0xFF, - 0xF9, - 0xF9, - 0xFF, - 0xF9, - 0xF8, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0x11, - 0x13, - 0x02, - 0xF0, - 0x0C, - 0x0F, - 0x0F, - 0x07, - 0xF2, - 0x0F, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x2C, - 0xF8, - 0xF8, - 0x10, - 0x10, - 0x0E, - 0x11, - 0x13, - 0x12, - 0x02, - 0xF1, - 0xF1, - 0xF0, - 0xF0, - 0x01, - 0xF0, - 0x01, - 0x01, - 0x01, - 0xF5, - 0xF5, - 0x02, - 0x01, - 0x02, - 0x12, - 0x01, - 0x02, - 0xF1, - 0x01, - 0xFC, - 0x02, - 0x02, - 0x12, - 0xF6, - 0xFE, - 0x11, - 0x0D, - 0x0D, - 0x04, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x08, - 0x06, - 0x00, - 0x0D, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x11, - 0x02, - 0x78, - 0xC3, - 0x78, - 0x78, - 0xB7, - 0x00, - 0x07, - 0xB8, - 0x00, - 0x57, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0x78, - 0xAC, - 0x7E, - 0x98, - 0x42, - 0x4E, - 0x59, - 0x90, - 0x5A, - 0x5A, - 0x59, - 0x46, - 0x46, - 0x74, - 0x6B, - 0x52, - 0x52, - 0xB1, - 0x52, - 0x52, - 0x49, - 0xB9, - 0xA6, - 0x3B, - 0x6E, - 0x74, - 0xDC, - 0x6E, - 0x6D, - 0x6B, - 0x8A, - 0x56, - 0x3B, - 0xBA, - 0x5E, - 0x90, - 0xA8, - 0xA7, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0xAF, - 0xBE, - 0x90, - 0x6F, - 0x5D, - 0x9B, - 0x80, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC2, - 0xC6, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0xB5, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xD1, - 0xCF, - 0xCF, - 0xD7, - 0xD9, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xDA, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x10, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xCA, - 0xB5, - 0xB5, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x79, - 0x79, - 0x49, - 0x86, - 0x79, - 0x79, - 0x86, - 0x52, - 0x52, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xB0, - 0xA1, - 0xB5, - 0xB5, - 0xCD, - 0xC9, - 0xC4, - 0xC4, - 0xC4, - 0xDA, - 0xC4, - 0xCF, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x24, - 0xC9, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0x8D, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0x9B, - 0xB1, - 0xC5, - 0x04, - 0xBF, - 0x00, - 0x10, - 0x8F, - 0xB2, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xC5, - 0x9B, - 0x7E, - 0x31, - 0xD8, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x07, - 0x04, - 0x08, - 0x00, - 0x03, - 0xFD, - 0x14, - 0x08, - 0x00, - 0x07, - 0xFD, - 0x00, - 0x0D, - 0x08, - 0x07, - 0x08, - 0x0F, - 0x0A, - 0x0B, - 0x11, - 0x04, - 0x0A, - 0x0A, - 0xFF, - 0x0A, - 0xFF, - 0x00, - 0x05, - 0xF9, - 0x05, - 0xF8, - 0x00, - 0x26, - 0xF3, - 0x10, - 0x03, - 0x03, - 0x13, - 0x02, - 0x13, - 0x05, - 0x0F, - 0x07, - 0xF2, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0x10, - 0x0E, - 0x03, - 0x13, - 0x02, - 0x01, - 0x01, - 0xF1, - 0xF0, - 0x01, - 0xF0, - 0x01, - 0xF0, - 0xF0, - 0x01, - 0xF5, - 0x02, - 0xF5, - 0x04, - 0x02, - 0x00, - 0x12, - 0x01, - 0xF1, - 0xF0, - 0x02, - 0xFC, - 0xFC, - 0x02, - 0xFC, - 0x13, - 0x11, - 0x0D, - 0x04, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x05, - 0x05, - 0x08, - 0x06, - 0x00, - 0x60, - 0x05, - 0x06, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x10, - 0x11, - 0xF5, - 0xB7, - 0x78, - 0xC3, - 0xB8, - 0xB8, - 0x78, - 0xB8, - 0xB8, - 0xC3, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0xA1, - 0x78, - 0x96, - 0x99, - 0x7D, - 0x72, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x66, - 0x4D, - 0x90, - 0x2E, - 0x31, - 0x42, - 0x49, - 0x52, - 0xB2, - 0x7E, - 0x35, - 0x86, - 0xB9, - 0x4A, - 0xA6, - 0x3B, - 0x9D, - 0x74, - 0x6E, - 0x3B, - 0x6C, - 0xB9, - 0x49, - 0x6C, - 0xBA, - 0x9A, - 0x8B, - 0xA8, - 0xBE, - 0xAF, - 0xB4, - 0xAB, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xA7, - 0xA8, - 0x5E, - 0x6E, - 0x9B, - 0x80, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCD, - 0xD1, - 0x04, - 0xCF, - 0x00, - 0x10, - 0xC7, - 0xC7, - 0xD7, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xCA, - 0xB5, - 0xC2, - 0xCA, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x08, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xCA, - 0xC2, - 0xB5, - 0x00, - 0x00, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x19, - 0x79, - 0x79, - 0x52, - 0xB2, - 0xB2, - 0x7E, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0x80, - 0xB0, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC4, - 0xC8, - 0xC4, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xCF, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x14, - 0xC9, - 0xD2, - 0xC4, - 0xC9, - 0xC4, - 0xB5, - 0xD2, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0x04, - 0xA1, - 0x00, - 0x07, - 0xC6, - 0xB0, - 0xC1, - 0xAA, - 0xC3, - 0xB8, - 0xB8, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x03, - 0xAE, - 0xD4, - 0xAE, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x0B, - 0xAE, - 0x9B, - 0x8E, - 0x52, - 0xE4, - 0x0F, - 0x08, - 0x0F, - 0x06, - 0x08, - 0x14, - 0x00, - 0x0D, - 0xFD, - 0x00, - 0x0C, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0x0C, - 0x04, - 0x11, - 0xFF, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0x06, - 0xF9, - 0x00, - 0x2A, - 0x0C, - 0xF9, - 0xF8, - 0x0C, - 0xF3, - 0x04, - 0x10, - 0x0E, - 0x11, - 0x13, - 0x01, - 0xFB, - 0x0F, - 0xF2, - 0x07, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF9, - 0xF8, - 0xF3, - 0x0D, - 0x11, - 0xFE, - 0x12, - 0xF5, - 0xF1, - 0x01, - 0xF0, - 0xF0, - 0xF1, - 0x01, - 0xF0, - 0xF0, - 0xF0, - 0x01, - 0x01, - 0x04, - 0x02, - 0x00, - 0x17, - 0xE7, - 0x02, - 0xF1, - 0xF0, - 0xEF, - 0xFC, - 0x02, - 0x01, - 0x02, - 0xFC, - 0xFE, - 0x0D, - 0x0D, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x06, - 0x06, - 0x05, - 0x00, - 0x05, - 0x06, - 0x00, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x10, - 0x11, - 0xE3, - 0xC1, - 0xB8, - 0xB8, - 0xB8, - 0x97, - 0xB7, - 0xB8, - 0xB8, - 0xB8, - 0x97, - 0xB7, - 0xC3, - 0x78, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0x71, - 0xB6, - 0x71, - 0x78, - 0xAE, - 0x68, - 0x57, - 0x4E, - 0x5A, - 0x5B, - 0x91, - 0x45, - 0x91, - 0x91, - 0x91, - 0x5B, - 0x5E, - 0x31, - 0x74, - 0x49, - 0x35, - 0xB2, - 0x8E, - 0xA4, - 0x79, - 0xB9, - 0x4A, - 0x6D, - 0x6D, - 0x3B, - 0x74, - 0xDC, - 0x3B, - 0x6B, - 0x35, - 0x6B, - 0xBA, - 0x6F, - 0x90, - 0xA8, - 0xD8, - 0xAF, - 0xAB, - 0xAB, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xBE, - 0xB3, - 0x42, - 0x7E, - 0x8E, - 0xC6, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xCD, - 0xC9, - 0xB6, - 0xCD, - 0xC8, - 0xC8, - 0xDA, - 0xDA, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xDA, - 0xCF, - 0xC8, - 0xD1, - 0xCD, - 0x06, - 0xC2, - 0x00, - 0x04, - 0xCA, - 0xC2, - 0xB5, - 0xCA, - 0x06, - 0xC2, - 0x00, - 0x03, - 0xB5, - 0xC2, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x13, - 0x79, - 0xA4, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0xA9, - 0xB0, - 0xB5, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x09, - 0xDA, - 0xC4, - 0xD9, - 0xDA, - 0xCF, - 0xDA, - 0xCF, - 0xC4, - 0xCF, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x08, - 0xD2, - 0xD2, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0x06, - 0xB0, - 0x00, - 0x23, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xC6, - 0xC6, - 0x8D, - 0x80, - 0xB7, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0x7E, - 0xBF, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0x97, - 0x6F, - 0x07, - 0x07, - 0x07, - 0x08, - 0x08, - 0x08, - 0x14, - 0xFD, - 0x14, - 0x14, - 0x00, - 0x08, - 0xFD, - 0x00, - 0x12, - 0xEE, - 0x08, - 0x07, - 0x0F, - 0xFF, - 0x0C, - 0x0D, - 0x0A, - 0x05, - 0xFF, - 0x05, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0x06, - 0xF8, - 0x00, - 0xAA, - 0xF3, - 0x10, - 0x03, - 0xFE, - 0x12, - 0x01, - 0xFF, - 0x0F, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x05, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0x10, - 0xFB, - 0x03, - 0x13, - 0x02, - 0xF5, - 0xF0, - 0xF1, - 0xF0, - 0x01, - 0x01, - 0xF1, - 0x01, - 0xF0, - 0xF5, - 0xF0, - 0x01, - 0xE7, - 0x01, - 0x02, - 0x02, - 0x02, - 0xF5, - 0x01, - 0xF0, - 0x02, - 0xEF, - 0xE7, - 0xE7, - 0xF5, - 0xFC, - 0xFC, - 0x11, - 0x0D, - 0x0B, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x06, - 0x05, - 0x06, - 0x06, - 0x06, - 0x05, - 0x05, - 0x06, - 0x05, - 0x05, - 0x0A, - 0x04, - 0x0D, - 0x11, - 0xD3, - 0xB8, - 0x78, - 0xB8, - 0xB8, - 0xB8, - 0x96, - 0xB8, - 0x97, - 0x97, - 0xB7, - 0x97, - 0x78, - 0xC1, - 0xA9, - 0xC1, - 0x71, - 0xC2, - 0xCD, - 0xB6, - 0xA9, - 0x78, - 0xAD, - 0x7E, - 0x57, - 0x46, - 0x5A, - 0x75, - 0x91, - 0x89, - 0x89, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x59, - 0x31, - 0x42, - 0x35, - 0x35, - 0xA4, - 0x7E, - 0xA3, - 0x86, - 0xB9, - 0x4A, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x6D, - 0x6D, - 0x6B, - 0x4A, - 0x42, - 0x9A, - 0x90, - 0xA8, - 0xA7, - 0xA0, - 0xBD, - 0x9F, - 0x9F, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xBE, - 0x8B, - 0x9A, - 0x4A, - 0x8E, - 0xAA, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xB0, - 0xC2, - 0xB0, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0x04, - 0xD9, - 0x00, - 0x16, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x03, - 0x35, - 0x79, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x20, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0xC1, - 0xB0, - 0xB6, - 0xB5, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xDA, - 0xC4, - 0xDA, - 0xDA, - 0xCF, - 0xC4, - 0xDA, - 0xD9, - 0xC4, - 0xD9, - 0xC4, - 0xC4, - 0xCF, - 0x04, - 0xC4, - 0x00, - 0x2B, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0x8D, - 0xAA, - 0xC3, - 0xB8, - 0xAC, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0x8E, - 0xE4, - 0x0F, - 0x0F, - 0x07, - 0x08, - 0x14, - 0x00, - 0x0E, - 0xFD, - 0x00, - 0x10, - 0x08, - 0x07, - 0x0F, - 0x0A, - 0x04, - 0x0B, - 0x0A, - 0xFF, - 0x0F, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0xF9, - 0x07, - 0xF8, - 0x00, - 0x07, - 0x10, - 0xFB, - 0x0E, - 0x13, - 0x12, - 0x11, - 0xF2, - 0x00, - 0x05, - 0x07, - 0x00, - 0x13, - 0xF2, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0xF3, - 0x0D, - 0x03, - 0x13, - 0xFC, - 0x01, - 0xF0, - 0xF1, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x1E, - 0xF5, - 0xF5, - 0x01, - 0xE7, - 0xE7, - 0xEF, - 0x02, - 0x02, - 0xE3, - 0x01, - 0xE7, - 0xEF, - 0x12, - 0xF5, - 0xE7, - 0xEF, - 0xFC, - 0x13, - 0x0D, - 0x04, - 0x0B, - 0x0A, - 0x0B, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x06, - 0x06, - 0x05, - 0x04, - 0x06, - 0x00, - 0x25, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x0B, - 0x0E, - 0x13, - 0x78, - 0xB7, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xB8, - 0x97, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0x71, - 0x71, - 0xB6, - 0xB6, - 0xA1, - 0xB7, - 0x96, - 0x8F, - 0x69, - 0x46, - 0x5A, - 0x63, - 0x91, - 0x5F, - 0x00, - 0x04, - 0x89, - 0x00, - 0x30, - 0x91, - 0x90, - 0x5E, - 0x31, - 0x74, - 0x49, - 0x35, - 0xA4, - 0x7E, - 0xA4, - 0xB9, - 0xB9, - 0xA6, - 0x6D, - 0x9D, - 0x74, - 0x6E, - 0x3B, - 0x74, - 0x6E, - 0x74, - 0x9A, - 0xBB, - 0xBC, - 0xD0, - 0xAF, - 0xB4, - 0x9F, - 0x9F, - 0xD5, - 0x9F, - 0xAB, - 0xAF, - 0xA7, - 0x8B, - 0x9A, - 0x3B, - 0xAE, - 0xAC, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xC1, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0x06, - 0xB5, - 0x00, - 0x20, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xD9, - 0xC7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xB6, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xCD, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x58, - 0x79, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x52, - 0x52, - 0xB2, - 0xA3, - 0xB2, - 0x9B, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xC3, - 0xC3, - 0x8D, - 0xB0, - 0xA1, - 0xC9, - 0xCD, - 0xC9, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xCF, - 0xD9, - 0xC4, - 0xCF, - 0xCF, - 0xC4, - 0xDA, - 0xC4, - 0xDA, - 0xCF, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC9, - 0xC9, - 0xB6, - 0xB6, - 0xA1, - 0xB0, - 0xA9, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xC1, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0x96, - 0xE4, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x08, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x3F, - 0x14, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0xDF, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0x0C, - 0x0B, - 0x0A, - 0x0F, - 0x0F, - 0x05, - 0xFF, - 0x0A, - 0x0A, - 0x0C, - 0x0C, - 0x0C, - 0xF8, - 0x0B, - 0xF8, - 0xF8, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0x0E, - 0x03, - 0x13, - 0x01, - 0x0C, - 0x0F, - 0x07, - 0xEE, - 0x07, - 0xEE, - 0xF2, - 0xF2, - 0x0F, - 0xE9, - 0xFF, - 0xFF, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0x0D, - 0x03, - 0xFE, - 0x02, - 0xF5, - 0xF0, - 0xE3, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x19, - 0xF5, - 0xF0, - 0x02, - 0x01, - 0x02, - 0x02, - 0xE7, - 0xE7, - 0x01, - 0xF0, - 0xEF, - 0xDC, - 0x02, - 0xE7, - 0xF5, - 0xF5, - 0xEF, - 0x12, - 0x11, - 0x0D, - 0x04, - 0x0B, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x16, - 0x0A, - 0x0A, - 0x04, - 0x11, - 0xC5, - 0xB8, - 0x96, - 0xC3, - 0xB7, - 0x96, - 0xB8, - 0xB8, - 0x96, - 0x78, - 0xC3, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0xA9, - 0x04, - 0xB6, - 0x00, - 0x41, - 0x78, - 0x96, - 0x8F, - 0x7D, - 0x33, - 0x5A, - 0x75, - 0x89, - 0x89, - 0x5F, - 0x4F, - 0x89, - 0x89, - 0x91, - 0x91, - 0x5B, - 0x5E, - 0x42, - 0x3B, - 0x35, - 0x52, - 0xA4, - 0xB2, - 0xA3, - 0x86, - 0x8A, - 0xA6, - 0xA6, - 0x6D, - 0x3B, - 0x3B, - 0x6E, - 0xBA, - 0xBA, - 0x9A, - 0xBB, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x9F, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xBC, - 0x59, - 0x74, - 0x52, - 0xAA, - 0xCA, - 0x80, - 0x8D, - 0xA9, - 0xC1, - 0xCA, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1E, - 0xD1, - 0xCF, - 0xD9, - 0xD9, - 0xD9, - 0xC7, - 0xD9, - 0xD7, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xD2, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xD2, - 0xCD, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x52, - 0x52, - 0xB2, - 0xBF, - 0x7E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x0D, - 0x8E, - 0x97, - 0xAA, - 0xC6, - 0xB0, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xD2, - 0xD2, - 0xC4, - 0xD2, - 0x00, - 0x08, - 0xC4, - 0x04, - 0xD2, - 0x00, - 0x2E, - 0xC9, - 0xB5, - 0xB6, - 0xB6, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xAA, - 0x8D, - 0xC1, - 0x8D, - 0xC6, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB6, - 0xC9, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xE0, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0x71, - 0xC6, - 0xC1, - 0xCB, - 0xE4, - 0x07, - 0x0F, - 0x08, - 0x14, - 0x14, - 0x14, - 0xFD, - 0x14, - 0x14, - 0x08, - 0xFD, - 0x00, - 0x34, - 0x14, - 0x14, - 0x07, - 0x07, - 0x0A, - 0x0B, - 0x0A, - 0x05, - 0x0F, - 0x06, - 0x05, - 0x0F, - 0xFF, - 0x0A, - 0x0C, - 0x0C, - 0x0B, - 0x04, - 0xF8, - 0xF8, - 0xF8, - 0x04, - 0xF8, - 0xF3, - 0x10, - 0x10, - 0x0E, - 0x11, - 0x13, - 0x12, - 0xFF, - 0x06, - 0xEE, - 0xEE, - 0xEE, - 0x08, - 0x07, - 0x0F, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0xFB, - 0x03, - 0x13, - 0xFC, - 0xF5, - 0xF0, - 0x05, - 0xF1, - 0x00, - 0x1D, - 0xF0, - 0xF0, - 0xF0, - 0x01, - 0xE7, - 0x01, - 0xE7, - 0x02, - 0xE7, - 0x02, - 0x02, - 0xE3, - 0xF0, - 0xE7, - 0xEF, - 0xEF, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE3, - 0xD4, - 0x11, - 0xFB, - 0x0B, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x00, - 0x09, - 0x05, - 0x00, - 0x6C, - 0x0A, - 0x0C, - 0x04, - 0x03, - 0xE7, - 0x78, - 0x96, - 0xB8, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xB7, - 0x96, - 0x78, - 0xB7, - 0xB8, - 0x78, - 0xC1, - 0xB7, - 0xC1, - 0xB0, - 0x71, - 0xCD, - 0xB6, - 0x71, - 0xAA, - 0x97, - 0x7E, - 0x6C, - 0x4E, - 0x39, - 0x75, - 0x91, - 0x89, - 0x89, - 0x5F, - 0x5F, - 0x4F, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x2E, - 0x42, - 0x3B, - 0x79, - 0x52, - 0xA4, - 0xB1, - 0x35, - 0x35, - 0x4A, - 0x6C, - 0x6D, - 0x6E, - 0x6E, - 0xBA, - 0x6F, - 0x6F, - 0xB3, - 0xBB, - 0xBE, - 0xA7, - 0xA0, - 0xB4, - 0x9F, - 0x8C, - 0x8C, - 0x8C, - 0xAB, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0x6F, - 0x5D, - 0x9B, - 0x80, - 0xC6, - 0xAA, - 0xC1, - 0xC1, - 0xB0, - 0xC6, - 0xC2, - 0xB5, - 0xCA, - 0xC9, - 0xC2, - 0xC9, - 0xC2, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xC7, - 0xD7, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x08, - 0xB5, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0x05, - 0xCD, - 0x00, - 0x00, - 0x07, - 0x35, - 0x00, - 0x18, - 0x79, - 0x79, - 0x79, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xB2, - 0x52, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xAC, - 0xC3, - 0xC1, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xCD, - 0x04, - 0xC9, - 0x00, - 0x1E, - 0xD2, - 0xD2, - 0xD1, - 0xD2, - 0xD1, - 0xD2, - 0xC9, - 0xC4, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xB6, - 0x71, - 0xB0, - 0xC6, - 0xC1, - 0x8D, - 0xAA, - 0xAA, - 0xC1, - 0xC1, - 0xC6, - 0xB0, - 0x8D, - 0x71, - 0xB5, - 0xA1, - 0xB6, - 0xC9, - 0x04, - 0xB5, - 0x00, - 0x15, - 0xB6, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xA1, - 0xE4, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0x00, - 0x0A, - 0xFD, - 0x00, - 0x06, - 0x08, - 0x07, - 0x0F, - 0x0A, - 0x0B, - 0x05, - 0x04, - 0x0F, - 0x00, - 0x14, - 0x05, - 0x0A, - 0x05, - 0x0A, - 0x0C, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x0B, - 0xF8, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x0D, - 0x11, - 0x12, - 0x0E, - 0x07, - 0x04, - 0x08, - 0x00, - 0x33, - 0xEE, - 0x07, - 0xF2, - 0x0F, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0x0C, - 0xF8, - 0xF3, - 0xFB, - 0x03, - 0xFE, - 0xFC, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF0, - 0xF1, - 0xE3, - 0xF0, - 0xF0, - 0xF0, - 0xE3, - 0xF0, - 0xE7, - 0x01, - 0xF5, - 0xEF, - 0xE7, - 0xEF, - 0xF5, - 0xF0, - 0xE7, - 0xE7, - 0xEF, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0x96, - 0x96, - 0xA2, - 0x11, - 0xFB, - 0x0B, - 0x0A, - 0x0B, - 0x0C, - 0x00, - 0x05, - 0x0A, - 0x00, - 0x19, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x10, - 0x03, - 0xA4, - 0x78, - 0xAD, - 0xB8, - 0x96, - 0xAD, - 0xB8, - 0x96, - 0xAD, - 0xB8, - 0x96, - 0xB8, - 0xB8, - 0xB8, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x65, - 0xCD, - 0xC9, - 0x71, - 0xAC, - 0xA2, - 0x8A, - 0x42, - 0xB3, - 0x5B, - 0x91, - 0x89, - 0x89, - 0x5F, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x66, - 0x59, - 0x2E, - 0x34, - 0x6C, - 0x52, - 0x52, - 0xB2, - 0x52, - 0xA4, - 0x49, - 0xB9, - 0x6D, - 0x6D, - 0x3B, - 0x6E, - 0x6F, - 0x9A, - 0xBB, - 0xBC, - 0xA8, - 0xAF, - 0xBD, - 0xAB, - 0xD5, - 0x8C, - 0xD5, - 0x9F, - 0xAB, - 0xB4, - 0xA0, - 0xA7, - 0xBB, - 0x9A, - 0x6C, - 0x9B, - 0xAA, - 0xC1, - 0xC1, - 0x8D, - 0xC1, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xD1, - 0xCF, - 0xCF, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xD2, - 0xCD, - 0xC9, - 0xB6, - 0xD2, - 0xB5, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x35, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x1E, - 0x79, - 0x35, - 0x35, - 0x49, - 0x86, - 0x86, - 0x52, - 0xA4, - 0xB2, - 0xA3, - 0xB2, - 0x7E, - 0xB1, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0x80, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0x04, - 0xC9, - 0x00, - 0x15, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0x8D, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xA1, - 0xB6, - 0x00, - 0x04, - 0xB5, - 0x01, - 0xA1, - 0x04, - 0xB5, - 0x00, - 0x05, - 0xC9, - 0xC9, - 0xB5, - 0xA1, - 0xC9, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x0C, - 0x80, - 0xE4, - 0x0F, - 0x07, - 0x08, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x39, - 0xDF, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x07, - 0x05, - 0x0C, - 0x04, - 0x0F, - 0x06, - 0x06, - 0x06, - 0x07, - 0x06, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x0C, - 0x0C, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x10, - 0x04, - 0x10, - 0x0E, - 0x11, - 0x11, - 0x01, - 0x05, - 0x07, - 0x08, - 0x08, - 0x08, - 0xEA, - 0xEE, - 0xEE, - 0x08, - 0x0F, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0xFB, - 0x0E, - 0xFE, - 0x02, - 0xF5, - 0xF0, - 0xD4, - 0xD4, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x91, - 0xE3, - 0xE3, - 0xF5, - 0xF0, - 0xE7, - 0xF5, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xE7, - 0xE7, - 0xDC, - 0xE7, - 0xE7, - 0xE3, - 0xBF, - 0x78, - 0x96, - 0x96, - 0x96, - 0xFC, - 0x0E, - 0x04, - 0x0B, - 0x0A, - 0x0C, - 0x0B, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x0D, - 0xFA, - 0xE7, - 0xB8, - 0xB8, - 0xB8, - 0x96, - 0x96, - 0xB8, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xAD, - 0x78, - 0x97, - 0x97, - 0x78, - 0xC3, - 0x78, - 0x71, - 0xA9, - 0xB6, - 0xB6, - 0xB6, - 0x71, - 0x8D, - 0x97, - 0x9B, - 0x9C, - 0x88, - 0x46, - 0x5A, - 0x4D, - 0xBE, - 0x89, - 0x36, - 0x89, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x4D, - 0x5A, - 0x46, - 0x34, - 0x4A, - 0x52, - 0x52, - 0x52, - 0xB2, - 0x86, - 0x79, - 0xB9, - 0x6C, - 0xA6, - 0x42, - 0xBA, - 0xB3, - 0xBB, - 0xA8, - 0xD8, - 0xAF, - 0xBD, - 0xAB, - 0x8C, - 0xD5, - 0x8C, - 0x8C, - 0xAB, - 0xAB, - 0xAF, - 0xBE, - 0xBC, - 0x5E, - 0x3B, - 0x52, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0x8D, - 0xA9, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xCD, - 0xD2, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x0D, - 0xCD, - 0xC9, - 0xD2, - 0xCD, - 0xC8, - 0xD2, - 0xD1, - 0xCD, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x86, - 0x35, - 0x52, - 0x00, - 0x05, - 0x35, - 0x00, - 0x05, - 0x49, - 0x35, - 0x79, - 0x35, - 0x35, - 0x00, - 0x04, - 0x52, - 0x00, - 0x63, - 0xB2, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xC3, - 0xAA, - 0xC1, - 0xC6, - 0xC6, - 0xA1, - 0x71, - 0xB5, - 0xB5, - 0xA1, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xA1, - 0xC9, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xAA, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xB6, - 0xA1, - 0xE4, - 0x0F, - 0x0F, - 0x08, - 0x14, - 0x08, - 0x14, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x0F, - 0x0A, - 0x0A, - 0x0A, - 0x07, - 0x07, - 0x07, - 0x06, - 0x06, - 0x0F, - 0x06, - 0x05, - 0x0A, - 0x0A, - 0x0C, - 0x00, - 0x05, - 0x0B, - 0x00, - 0xC7, - 0x04, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x12, - 0x0E, - 0x0F, - 0x08, - 0x08, - 0xEA, - 0xFD, - 0x08, - 0x08, - 0xEE, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0x0A, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0xFB, - 0xFA, - 0xF6, - 0xFC, - 0xE7, - 0xE7, - 0xF1, - 0x00, - 0xF1, - 0xF1, - 0xF1, - 0xE3, - 0x01, - 0xF0, - 0xF0, - 0xE3, - 0x01, - 0xE3, - 0x02, - 0xE7, - 0xEF, - 0x02, - 0xE7, - 0xF5, - 0xE3, - 0xF5, - 0xE7, - 0xE7, - 0xE3, - 0xA4, - 0x9B, - 0xA2, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x99, - 0x02, - 0x0D, - 0xFB, - 0x04, - 0x0B, - 0x04, - 0x04, - 0x10, - 0x04, - 0x0E, - 0xF6, - 0xE7, - 0xC5, - 0x96, - 0x96, - 0xB8, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0xB8, - 0xB7, - 0xB8, - 0x97, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0xC1, - 0x71, - 0xB6, - 0x71, - 0xB6, - 0x71, - 0x8D, - 0xAA, - 0xAD, - 0x99, - 0xDC, - 0x31, - 0x5E, - 0x5B, - 0x63, - 0x91, - 0x89, - 0x4F, - 0x89, - 0x5F, - 0x5F, - 0x7C, - 0x45, - 0x75, - 0x5B, - 0x59, - 0x46, - 0x34, - 0x4A, - 0x52, - 0x52, - 0x7E, - 0x52, - 0xA3, - 0xB9, - 0xB9, - 0x6C, - 0x6E, - 0x6F, - 0xB3, - 0xBB, - 0xA8, - 0xA7, - 0xD0, - 0xB4, - 0x9F, - 0x9F, - 0x8C, - 0x8C, - 0xD5, - 0x8C, - 0xAB, - 0xA0, - 0xA7, - 0xA8, - 0x90, - 0xBA, - 0x49, - 0x8E, - 0xAA, - 0xC6, - 0xC3, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xCA, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xCD, - 0xD2, - 0xC8, - 0xC8, - 0xC8, - 0xD7, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xC8, - 0xD1, - 0xD2, - 0xC4, - 0xC8, - 0xC4, - 0xD2, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x08, - 0x35, - 0x00, - 0x25, - 0x49, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xAC, - 0x80, - 0xAA, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB6, - 0xC2, - 0xA1, - 0xA1, - 0xB5, - 0xB6, - 0x00, - 0x05, - 0xB0, - 0x00, - 0x2A, - 0xC6, - 0xC6, - 0x8D, - 0xA9, - 0x8D, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB6, - 0xB6, - 0xA1, - 0x71, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0x71, - 0xEF, - 0x0F, - 0x07, - 0x08, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x14, - 0xFD, - 0x14, - 0x06, - 0xFD, - 0x00, - 0x4D, - 0x14, - 0x14, - 0x08, - 0x05, - 0x0A, - 0x0B, - 0x05, - 0x06, - 0x08, - 0x07, - 0x14, - 0x07, - 0x06, - 0x05, - 0x06, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x0C, - 0x0C, - 0x0C, - 0x04, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x12, - 0x0B, - 0x07, - 0x08, - 0xFD, - 0x14, - 0xEA, - 0xFD, - 0xFD, - 0x08, - 0xEE, - 0x07, - 0xF2, - 0xF2, - 0xE9, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0x0E, - 0x03, - 0xFA, - 0xFC, - 0xE7, - 0xE3, - 0xF1, - 0xE3, - 0xF1, - 0xF1, - 0xE3, - 0xF1, - 0xE3, - 0xF0, - 0xF0, - 0xF0, - 0x01, - 0xE7, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xF0, - 0xE3, - 0xF5, - 0xE7, - 0xE7, - 0xB2, - 0x00, - 0x06, - 0x96, - 0x00, - 0x7A, - 0xA2, - 0xA2, - 0x96, - 0xAE, - 0xE7, - 0xDC, - 0xDC, - 0xDC, - 0xE3, - 0xB8, - 0xC3, - 0x78, - 0x96, - 0xB8, - 0x96, - 0x96, - 0xAD, - 0xB8, - 0x96, - 0x96, - 0xAD, - 0xAD, - 0xA2, - 0xAD, - 0x96, - 0xB8, - 0x96, - 0x96, - 0x78, - 0x78, - 0xB8, - 0xB7, - 0x78, - 0x78, - 0xA9, - 0x71, - 0xC2, - 0x71, - 0x8D, - 0x71, - 0x97, - 0x97, - 0x97, - 0xA3, - 0x8A, - 0x42, - 0x46, - 0x90, - 0x66, - 0x91, - 0x91, - 0x64, - 0x5F, - 0x89, - 0x7C, - 0x89, - 0x7C, - 0x89, - 0x75, - 0x5B, - 0x59, - 0x31, - 0x34, - 0x49, - 0x52, - 0x52, - 0xB1, - 0x7E, - 0xA4, - 0x35, - 0x49, - 0x3B, - 0x6F, - 0xD6, - 0xBC, - 0xA8, - 0xA7, - 0xA0, - 0xB4, - 0xAB, - 0x8C, - 0x8C, - 0xC0, - 0x8C, - 0x8C, - 0xAB, - 0xB4, - 0xAF, - 0xBE, - 0x90, - 0x9A, - 0x6C, - 0xB2, - 0xAC, - 0x80, - 0x8D, - 0xAA, - 0x8D, - 0xA9, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB6, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0x04, - 0xC8, - 0x00, - 0x0D, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0x00, - 0x58, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x86, - 0x52, - 0x52, - 0x52, - 0xB1, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xC6, - 0xAA, - 0x8D, - 0x80, - 0x80, - 0xC1, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0x71, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xA9, - 0xA9, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xE0, - 0x61, - 0x0F, - 0x0F, - 0x08, - 0x08, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x06, - 0xFD, - 0x00, - 0x10, - 0x07, - 0x06, - 0x05, - 0x0A, - 0x0B, - 0x06, - 0x14, - 0x14, - 0x08, - 0x06, - 0x14, - 0x08, - 0x08, - 0x06, - 0x05, - 0x05, - 0x04, - 0x0A, - 0x00, - 0x3B, - 0x0C, - 0x0B, - 0x0A, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x12, - 0x06, - 0x08, - 0xFD, - 0xFD, - 0xDF, - 0x08, - 0xFD, - 0xEA, - 0xEE, - 0x08, - 0xEE, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0xF9, - 0xF8, - 0xF3, - 0xFB, - 0xED, - 0xF6, - 0xFC, - 0xE7, - 0xF1, - 0xCE, - 0x00, - 0xD4, - 0xF1, - 0xF1, - 0xF0, - 0xE3, - 0xF0, - 0xE3, - 0xF0, - 0xE3, - 0xE3, - 0x02, - 0xE7, - 0xEF, - 0xEF, - 0xE7, - 0xE7, - 0xE3, - 0xE7, - 0xE7, - 0xE3, - 0xE3, - 0xB2, - 0xA2, - 0x96, - 0x96, - 0x00, - 0x04, - 0xA2, - 0x01, - 0x96, - 0x04, - 0xA2, - 0x04, - 0x96, - 0x00, - 0x5A, - 0xA2, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x96, - 0x96, - 0xA2, - 0x96, - 0xAD, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0xB8, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0xB8, - 0x78, - 0x78, - 0xB7, - 0xC1, - 0x71, - 0x71, - 0x71, - 0xA9, - 0x80, - 0xAA, - 0x97, - 0xAD, - 0xAE, - 0xB2, - 0x4A, - 0x74, - 0x6F, - 0x5E, - 0x59, - 0x5B, - 0x91, - 0x45, - 0x7C, - 0x89, - 0x5F, - 0x5F, - 0x5F, - 0x64, - 0x91, - 0x63, - 0x5A, - 0x2E, - 0x31, - 0x74, - 0x5D, - 0x52, - 0x35, - 0xB2, - 0xB1, - 0x52, - 0x35, - 0x61, - 0xBA, - 0x9A, - 0xBB, - 0xD8, - 0xD0, - 0xBD, - 0xB4, - 0xD5, - 0xD5, - 0x8C, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xAF, - 0xBE, - 0xBC, - 0x9A, - 0x74, - 0x35, - 0xC5, - 0xAA, - 0x8D, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0x04, - 0xC2, - 0x00, - 0x23, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xCA, - 0xB5, - 0xC9, - 0xCD, - 0xC8, - 0xC8, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x35, - 0x00, - 0x2C, - 0x79, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x79, - 0x49, - 0x35, - 0x52, - 0x7E, - 0xB2, - 0xB1, - 0xC5, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0xA9, - 0xC1, - 0xAA, - 0xC1, - 0x80, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0xC6, - 0x8D, - 0xA9, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0xA1, - 0x05, - 0xB0, - 0x00, - 0x1A, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xA1, - 0x71, - 0xB0, - 0xA1, - 0xB0, - 0xB6, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xA1, - 0xA1, - 0xB0, - 0xB1, - 0xFF, - 0x07, - 0x07, - 0x05, - 0x14, - 0x00, - 0x1B, - 0xFD, - 0x14, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x06, - 0x0A, - 0x0B, - 0x0A, - 0x14, - 0x14, - 0x08, - 0x14, - 0x08, - 0x08, - 0x08, - 0x14, - 0x06, - 0x06, - 0x05, - 0x05, - 0x05, - 0x00, - 0x04, - 0x0A, - 0x00, - 0x08, - 0x0B, - 0x0B, - 0x04, - 0x0D, - 0x11, - 0x04, - 0x06, - 0x08, - 0x04, - 0xFD, - 0x00, - 0x1E, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0x07, - 0x07, - 0x0F, - 0xFF, - 0xFF, - 0x0A, - 0xEB, - 0xF3, - 0xFB, - 0x03, - 0xFE, - 0xEF, - 0xE7, - 0xE3, - 0xF1, - 0xCE, - 0xF1, - 0xD4, - 0x00, - 0xF0, - 0xF1, - 0xF0, - 0xE3, - 0xF0, - 0xE3, - 0xF5, - 0x05, - 0xE7, - 0x00, - 0x11, - 0xE3, - 0xF5, - 0xE7, - 0xE3, - 0xE3, - 0xE7, - 0x8F, - 0x96, - 0x96, - 0x99, - 0xA2, - 0x96, - 0x96, - 0x96, - 0x99, - 0x96, - 0xA2, - 0x00, - 0x06, - 0x96, - 0x01, - 0x78, - 0x01, - 0x78, - 0x04, - 0x96, - 0x04, - 0xA2, - 0x00, - 0x61, - 0x96, - 0xA2, - 0xC5, - 0x96, - 0xB8, - 0x96, - 0x96, - 0xB8, - 0x96, - 0x78, - 0x96, - 0xC3, - 0x78, - 0xC1, - 0x71, - 0x71, - 0x71, - 0xA9, - 0x78, - 0x97, - 0xAD, - 0x9B, - 0xAE, - 0x9C, - 0x6C, - 0x42, - 0xBA, - 0x31, - 0x5E, - 0x90, - 0x66, - 0x75, - 0x91, - 0x89, - 0x7C, - 0x89, - 0x4F, - 0x89, - 0x7C, - 0x63, - 0x75, - 0x5B, - 0x46, - 0x31, - 0x3B, - 0x35, - 0x35, - 0x52, - 0xB1, - 0x9B, - 0x52, - 0x4A, - 0xBA, - 0xB3, - 0xBC, - 0xD8, - 0xA5, - 0xBD, - 0x9F, - 0x9F, - 0x8C, - 0x8C, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xBC, - 0xB3, - 0x6F, - 0x4A, - 0x7E, - 0xCB, - 0x80, - 0xAA, - 0x8D, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x12, - 0xD9, - 0xC7, - 0xCF, - 0xCF, - 0xD7, - 0xD9, - 0xCF, - 0xD9, - 0xC8, - 0xD9, - 0xC7, - 0xC8, - 0xD7, - 0xD9, - 0xD9, - 0xCF, - 0xD7, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x52, - 0x52, - 0xB2, - 0xB1, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xD3, - 0x00, - 0x07, - 0x8D, - 0x00, - 0x31, - 0xAA, - 0x80, - 0x80, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xB6, - 0xB0, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0x71, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0x71, - 0xA1, - 0xB0, - 0x8D, - 0xF9, - 0xF2, - 0x07, - 0x00, - 0x0A, - 0x14, - 0x00, - 0x58, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x07, - 0x06, - 0x0A, - 0x0A, - 0x05, - 0x06, - 0x14, - 0x14, - 0x08, - 0x14, - 0x06, - 0x14, - 0x07, - 0x06, - 0x07, - 0x05, - 0x06, - 0x0A, - 0x05, - 0x05, - 0xFF, - 0x0A, - 0x0B, - 0x0B, - 0x04, - 0x0D, - 0x13, - 0x0A, - 0x07, - 0xFD, - 0xFD, - 0xFD, - 0xEA, - 0xFD, - 0xEA, - 0xFD, - 0x08, - 0xEE, - 0xEE, - 0xF2, - 0xF2, - 0xF2, - 0xFF, - 0xF9, - 0xF8, - 0xF3, - 0xE8, - 0x11, - 0xE4, - 0xFC, - 0xE7, - 0xCE, - 0xCE, - 0xF1, - 0xD4, - 0xF1, - 0xE3, - 0xE3, - 0xF1, - 0xE3, - 0xF1, - 0xE3, - 0x01, - 0xE3, - 0xE7, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xE3, - 0xE7, - 0xE3, - 0xE3, - 0x8F, - 0xA2, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x04, - 0xA2, - 0x00, - 0x0C, - 0x96, - 0x78, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xA2, - 0x96, - 0x05, - 0xA2, - 0x00, - 0x07, - 0xAD, - 0xA2, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xB8, - 0x00, - 0x04, - 0x78, - 0x00, - 0x60, - 0x71, - 0x71, - 0xA9, - 0xC1, - 0x78, - 0x97, - 0xAD, - 0xA2, - 0xA3, - 0x9C, - 0x6D, - 0x74, - 0x42, - 0x6F, - 0x46, - 0x5E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x89, - 0x89, - 0x7C, - 0x89, - 0x89, - 0x91, - 0x4D, - 0x5B, - 0x2E, - 0x31, - 0x56, - 0x52, - 0x52, - 0x7E, - 0xB1, - 0x7E, - 0xB9, - 0xBA, - 0xB3, - 0xBB, - 0xA8, - 0xAF, - 0xBD, - 0xB4, - 0xD5, - 0x8C, - 0xC0, - 0x8C, - 0xC0, - 0xD5, - 0x55, - 0xAB, - 0xA0, - 0xA7, - 0xA8, - 0x8B, - 0x6F, - 0x74, - 0x7E, - 0x8E, - 0x71, - 0x8D, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xB6, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xCA, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0x06, - 0xCF, - 0x00, - 0x03, - 0xD7, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x01, - 0x79, - 0x06, - 0x35, - 0x00, - 0x2D, - 0x49, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0xA4, - 0x52, - 0xBF, - 0xBF, - 0xB1, - 0xC5, - 0xC3, - 0xAA, - 0xC1, - 0xC6, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0x8D, - 0x8D, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xC6, - 0x71, - 0xA1, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x0E, - 0xB6, - 0xB0, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB0, - 0xB6, - 0x04, - 0xB0, - 0x00, - 0x0C, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0xB0, - 0x8D, - 0xD3, - 0xED, - 0x07, - 0x06, - 0x08, - 0x08, - 0x14, - 0x00, - 0x22, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x06, - 0x06, - 0x0A, - 0x06, - 0x07, - 0xEE, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x14, - 0x06, - 0x08, - 0x08, - 0x06, - 0x06, - 0x06, - 0x05, - 0x06, - 0x05, - 0x05, - 0x05, - 0x0B, - 0x0B, - 0x04, - 0x0D, - 0x11, - 0x06, - 0x14, - 0x05, - 0xFD, - 0x00, - 0x35, - 0xEE, - 0xFD, - 0xEE, - 0xEE, - 0x08, - 0xE5, - 0x07, - 0xFF, - 0xE9, - 0xF9, - 0xF9, - 0x04, - 0xFB, - 0xED, - 0xFE, - 0xFC, - 0xE7, - 0xCB, - 0xCE, - 0xC5, - 0x00, - 0xCE, - 0xE3, - 0xE3, - 0xE3, - 0xF0, - 0xE3, - 0xE3, - 0xF5, - 0xE3, - 0xE7, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xE7, - 0xE7, - 0xB9, - 0xE3, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x99, - 0xA2, - 0xA2, - 0x00, - 0x07, - 0x96, - 0x00, - 0x05, - 0xA2, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x00, - 0x06, - 0xA2, - 0x00, - 0x5F, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0x96, - 0x96, - 0x78, - 0x78, - 0x78, - 0xA9, - 0x71, - 0x71, - 0x71, - 0x78, - 0x78, - 0x9B, - 0xAE, - 0x7E, - 0xA3, - 0x6B, - 0x6C, - 0x74, - 0x6F, - 0x6F, - 0x31, - 0x46, - 0x5E, - 0x5A, - 0x5A, - 0x91, - 0x91, - 0x64, - 0x89, - 0x7C, - 0x89, - 0x89, - 0x64, - 0x91, - 0x4D, - 0x29, - 0x2E, - 0x31, - 0x56, - 0x52, - 0x52, - 0xB2, - 0xB1, - 0x4A, - 0x6E, - 0xB3, - 0xBC, - 0xA7, - 0xD0, - 0xB4, - 0x9F, - 0x9F, - 0xC0, - 0xC0, - 0x8C, - 0xC0, - 0xD5, - 0x8C, - 0xAB, - 0xA0, - 0xAF, - 0xBE, - 0xBB, - 0x5E, - 0xBA, - 0x5D, - 0x8E, - 0xAA, - 0x8D, - 0xA9, - 0x8D, - 0xC6, - 0xA1, - 0xCA, - 0xCA, - 0xC2, - 0xC9, - 0xB5, - 0xD2, - 0xC2, - 0xE0, - 0xC2, - 0xCA, - 0xB6, - 0xC9, - 0xCD, - 0xD2, - 0xC8, - 0xD9, - 0xD9, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0xD7, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0x05, - 0xCF, - 0x00, - 0x06, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x07, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x00, - 0x05, - 0x35, - 0x00, - 0x18, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0x8E, - 0xAC, - 0xAC, - 0xAA, - 0x80, - 0xAA, - 0xC6, - 0x8D, - 0xAA, - 0x8D, - 0xC6, - 0x80, - 0xC6, - 0x06, - 0x8D, - 0x01, - 0xC6, - 0x01, - 0xC6, - 0x08, - 0xB0, - 0x00, - 0x0A, - 0x71, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0x71, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x14, - 0xB6, - 0xA9, - 0xB0, - 0xB6, - 0xA1, - 0x71, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0xC6, - 0xA9, - 0x8D, - 0xB0, - 0xA1, - 0x71, - 0xE4, - 0x07, - 0x07, - 0x08, - 0x0C, - 0x14, - 0x00, - 0x53, - 0x06, - 0x14, - 0x05, - 0x06, - 0x06, - 0x07, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x14, - 0x14, - 0x06, - 0x14, - 0x06, - 0x06, - 0x07, - 0x0F, - 0x0F, - 0x07, - 0x06, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x04, - 0x0D, - 0x0B, - 0x07, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0xEA, - 0xEA, - 0xFD, - 0xEA, - 0x08, - 0x07, - 0xEE, - 0x07, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xE8, - 0xFB, - 0x03, - 0xF6, - 0xDC, - 0xF5, - 0xC5, - 0xF7, - 0xC5, - 0xD4, - 0xF1, - 0xD4, - 0xF1, - 0xE3, - 0xE3, - 0xF0, - 0xF0, - 0xE3, - 0xE7, - 0xE7, - 0xE7, - 0xDC, - 0xDC, - 0xF5, - 0xE7, - 0xE3, - 0xE3, - 0xE3, - 0xE7, - 0xB9, - 0x99, - 0x99, - 0x96, - 0x99, - 0x99, - 0x96, - 0x99, - 0x00, - 0x04, - 0x96, - 0x01, - 0x99, - 0x08, - 0x96, - 0x04, - 0xA2, - 0x01, - 0x99, - 0x06, - 0xA2, - 0x00, - 0x3A, - 0xAD, - 0xA2, - 0xAD, - 0x96, - 0xB8, - 0x97, - 0xB8, - 0x78, - 0x78, - 0x78, - 0x71, - 0x71, - 0x71, - 0x78, - 0x97, - 0x96, - 0xAE, - 0x7E, - 0x9C, - 0x6D, - 0x74, - 0xBA, - 0x6F, - 0x6F, - 0x6F, - 0x31, - 0x31, - 0x5E, - 0x5A, - 0x5A, - 0x75, - 0x91, - 0x64, - 0x89, - 0x89, - 0x7C, - 0x89, - 0x91, - 0x91, - 0x66, - 0x29, - 0x31, - 0x31, - 0x4A, - 0x52, - 0x52, - 0x52, - 0x35, - 0x42, - 0xB3, - 0xBB, - 0xD8, - 0xAF, - 0xBD, - 0x9F, - 0x8C, - 0x8C, - 0xC0, - 0x04, - 0x8C, - 0x00, - 0x20, - 0x9F, - 0xB4, - 0xAF, - 0xBE, - 0xBC, - 0x90, - 0x6F, - 0x6C, - 0xB1, - 0xAA, - 0xAA, - 0xAA, - 0xC6, - 0xA9, - 0xA1, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xD9, - 0x06, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xC8, - 0x05, - 0xCF, - 0x00, - 0x04, - 0xD9, - 0xC7, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x03, - 0x35, - 0x35, - 0x86, - 0x00, - 0x05, - 0x35, - 0x01, - 0x79, - 0x06, - 0x35, - 0x00, - 0x22, - 0x79, - 0x79, - 0x35, - 0x52, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xC3, - 0xCB, - 0x8D, - 0xAA, - 0x8D, - 0xAA, - 0xC1, - 0x80, - 0xAA, - 0x80, - 0x80, - 0xAA, - 0x80, - 0x8D, - 0x80, - 0xC6, - 0x8D, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0x07, - 0xB0, - 0x00, - 0x1F, - 0xC2, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xB6, - 0xB0, - 0xC2, - 0xB0, - 0xA9, - 0x71, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0x8D, - 0xC1, - 0xB0, - 0xA9, - 0x8D, - 0xA1, - 0xB1, - 0xFF, - 0x08, - 0x14, - 0x06, - 0x00, - 0x0D, - 0x14, - 0x00, - 0x1C, - 0x06, - 0x14, - 0x14, - 0x06, - 0x08, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x14, - 0x08, - 0x06, - 0x06, - 0x08, - 0x06, - 0x07, - 0x06, - 0x0F, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x0D, - 0x0A, - 0x14, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x18, - 0xEE, - 0xFD, - 0xEE, - 0x08, - 0x07, - 0xEE, - 0x07, - 0xF2, - 0xF2, - 0xE9, - 0xFF, - 0xEB, - 0xF3, - 0xFB, - 0xE6, - 0xFE, - 0xDC, - 0xE3, - 0xF7, - 0xC5, - 0xF7, - 0xF7, - 0xD4, - 0xD4, - 0x04, - 0xE3, - 0x00, - 0x12, - 0xE7, - 0xE3, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xDC, - 0xDC, - 0xDC, - 0xE3, - 0xDC, - 0xE7, - 0xA6, - 0xE3, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x05, - 0x99, - 0x00, - 0x12, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0xA2, - 0x96, - 0xA2, - 0xA2, - 0x96, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x8F, - 0x04, - 0xA2, - 0x00, - 0x06, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xB8, - 0x96, - 0x04, - 0x78, - 0x00, - 0x49, - 0x71, - 0x71, - 0x71, - 0x78, - 0x97, - 0xB8, - 0x7E, - 0xA3, - 0x6B, - 0x6C, - 0x74, - 0xBA, - 0x42, - 0x6F, - 0x6F, - 0x6F, - 0x31, - 0x46, - 0x2E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x64, - 0x7C, - 0x89, - 0x89, - 0x64, - 0x89, - 0x63, - 0x5B, - 0x5A, - 0x31, - 0x74, - 0x6B, - 0x52, - 0x52, - 0x61, - 0x42, - 0x5E, - 0xBC, - 0xA7, - 0xD0, - 0xB4, - 0x9F, - 0xD5, - 0x8C, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xAF, - 0xBE, - 0xA8, - 0xB3, - 0x9A, - 0x74, - 0x7E, - 0xAC, - 0x80, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xB6, - 0xA1, - 0xCA, - 0xB5, - 0xB6, - 0xC9, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x11, - 0xCA, - 0xC2, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xD9, - 0xC8, - 0xD9, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x07, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x24, - 0x79, - 0x35, - 0x35, - 0x35, - 0x49, - 0x49, - 0x79, - 0x35, - 0xA4, - 0xB2, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0x8D, - 0xC1, - 0x80, - 0x8D, - 0xAA, - 0x80, - 0x80, - 0xAA, - 0xC6, - 0x8D, - 0x80, - 0xAA, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0x06, - 0xB0, - 0x00, - 0x0E, - 0xA1, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0x71, - 0xC2, - 0xC6, - 0xA1, - 0x71, - 0xB0, - 0xB0, - 0xA9, - 0xC2, - 0x04, - 0xB0, - 0x00, - 0x0E, - 0xC6, - 0xA9, - 0x8D, - 0xA9, - 0x80, - 0x8D, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0xE8, - 0x06, - 0x10, - 0x14, - 0x00, - 0x0A, - 0x06, - 0x14, - 0x14, - 0xEA, - 0xFD, - 0xEA, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x05, - 0x06, - 0x00, - 0x2A, - 0x0F, - 0x06, - 0x0F, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x0B, - 0x0D, - 0x05, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0xEA, - 0x07, - 0xEE, - 0x07, - 0x07, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xFB, - 0xED, - 0xE4, - 0xFC, - 0xE3, - 0xD4, - 0xF1, - 0xD4, - 0xC5, - 0xC5, - 0xF1, - 0xD4, - 0xF1, - 0x04, - 0xE3, - 0x00, - 0x03, - 0xE7, - 0xE7, - 0xEF, - 0x00, - 0x06, - 0xE7, - 0x00, - 0x03, - 0xB9, - 0xE7, - 0x8A, - 0x00, - 0x04, - 0x99, - 0x00, - 0x06, - 0xA2, - 0x99, - 0x96, - 0x96, - 0x99, - 0x99, - 0x07, - 0x96, - 0x00, - 0x23, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xAE, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x96, - 0x96, - 0x78, - 0xB8, - 0x78, - 0x71, - 0x71, - 0xCD, - 0x71, - 0xA9, - 0x97, - 0xAD, - 0xAD, - 0xA3, - 0x6B, - 0x6E, - 0x74, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x46, - 0x9A, - 0x6F, - 0x6F, - 0x31, - 0x2E, - 0x5A, - 0x5A, - 0x75, - 0x91, - 0x91, - 0x7C, - 0x7C, - 0x89, - 0x64, - 0x91, - 0x63, - 0x5A, - 0x29, - 0x2E, - 0x34, - 0x3B, - 0x61, - 0x6E, - 0x6F, - 0xB3, - 0xDB, - 0xD8, - 0xA0, - 0xB4, - 0xD5, - 0x8C, - 0x85, - 0xC0, - 0xC0, - 0xC0, - 0x8C, - 0xD5, - 0x9F, - 0xAB, - 0xAF, - 0xD0, - 0xA8, - 0x8B, - 0x9A, - 0x74, - 0x52, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB5, - 0xC9, - 0xE0, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xC2, - 0xCA, - 0xC9, - 0xC2, - 0xD2, - 0xC4, - 0xC8, - 0xCF, - 0xD7, - 0x05, - 0xC7, - 0x00, - 0x05, - 0xCF, - 0xD9, - 0xC8, - 0xCF, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x05, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x35, - 0x35, - 0x35, - 0x79, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x79, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x52, - 0x7E, - 0x52, - 0xB1, - 0xBF, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0xC1, - 0xAA, - 0xC6, - 0xAA, - 0xC6, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0x00, - 0x06, - 0xB0, - 0x00, - 0x23, - 0x71, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xB0, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xB0, - 0xB0, - 0xCA, - 0x71, - 0xB0, - 0xA9, - 0x8D, - 0xC1, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0x71, - 0xA1, - 0xA1, - 0x9D, - 0xF2, - 0x08, - 0x00, - 0x11, - 0x14, - 0x00, - 0x47, - 0x08, - 0xEE, - 0xFD, - 0xFD, - 0xEE, - 0x08, - 0x14, - 0x08, - 0x07, - 0x06, - 0x14, - 0x07, - 0x05, - 0x06, - 0x06, - 0x05, - 0x0F, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x04, - 0x08, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0xEA, - 0x08, - 0xEA, - 0xEE, - 0x07, - 0xEE, - 0x07, - 0xEE, - 0xF2, - 0xF2, - 0xE9, - 0xFF, - 0xF9, - 0xF9, - 0xE8, - 0xF3, - 0xE6, - 0xFE, - 0xE7, - 0xE3, - 0xD4, - 0xD4, - 0xF1, - 0xC5, - 0xF1, - 0xD4, - 0xF1, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xE7, - 0xE3, - 0xE3, - 0xE7, - 0xDC, - 0xEF, - 0xE7, - 0xA6, - 0xE7, - 0xA6, - 0xE7, - 0xDC, - 0x98, - 0x00, - 0x08, - 0x99, - 0x00, - 0x0B, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x00, - 0x09, - 0x8F, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x00, - 0x04, - 0x96, - 0x00, - 0x0F, - 0x78, - 0xB8, - 0x78, - 0x71, - 0x71, - 0x71, - 0xB6, - 0x71, - 0x97, - 0xB8, - 0x8F, - 0xA3, - 0xB9, - 0x3B, - 0x42, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x4D, - 0x9A, - 0x6F, - 0x42, - 0x6F, - 0x31, - 0x46, - 0x5A, - 0x5B, - 0x75, - 0x63, - 0x91, - 0x7C, - 0x89, - 0x7C, - 0x45, - 0x63, - 0x4D, - 0x5A, - 0x2E, - 0x31, - 0x31, - 0xBA, - 0xBA, - 0x6F, - 0xBB, - 0xBC, - 0xD0, - 0xD0, - 0x9F, - 0x9F, - 0xC0, - 0x8C, - 0xC0, - 0xC0, - 0x8C, - 0xD5, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0xBC, - 0x5E, - 0x42, - 0x9C, - 0xAC, - 0xCB, - 0xAA, - 0x8D, - 0xC1, - 0xC6, - 0xB0, - 0xA1, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xCF, - 0x00, - 0x0D, - 0xC8, - 0x00, - 0x00, - 0x01, - 0x35, - 0x01, - 0x52, - 0x0A, - 0x35, - 0x00, - 0x2E, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x35, - 0x52, - 0xA4, - 0x7E, - 0x7E, - 0x8E, - 0x8E, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0x8D, - 0xAA, - 0xC1, - 0xC6, - 0x80, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0x71, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0x04, - 0xB0, - 0x01, - 0xA9, - 0x01, - 0xC2, - 0x05, - 0xB0, - 0x00, - 0x13, - 0xC6, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0x80, - 0xA9, - 0xA9, - 0x80, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xD3, - 0xF3, - 0x08, - 0x08, - 0x08, - 0x00, - 0x09, - 0x14, - 0x01, - 0xFD, - 0x04, - 0x14, - 0x01, - 0x08, - 0x01, - 0x06, - 0x05, - 0xFD, - 0x00, - 0x11, - 0x08, - 0xFD, - 0x08, - 0x06, - 0x07, - 0x06, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x10, - 0x0A, - 0x08, - 0x00, - 0x06, - 0xFD, - 0x00, - 0x06, - 0x08, - 0xEE, - 0x07, - 0x07, - 0xE5, - 0x0F, - 0x04, - 0xF2, - 0x00, - 0x1F, - 0xEC, - 0xEB, - 0xF3, - 0xED, - 0xFA, - 0xDD, - 0xDC, - 0xE3, - 0xF1, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xF1, - 0xE3, - 0xE3, - 0xE3, - 0xE7, - 0xDC, - 0xDC, - 0xE7, - 0xDC, - 0xDC, - 0xDC, - 0xE7, - 0xE7, - 0xA6, - 0xDC, - 0x00, - 0x09, - 0x99, - 0x00, - 0x09, - 0x68, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0x99, - 0x96, - 0x00, - 0x05, - 0x99, - 0x00, - 0x06, - 0x8F, - 0x99, - 0x99, - 0x99, - 0x8F, - 0x99, - 0x04, - 0xA2, - 0x00, - 0x09, - 0x96, - 0xA2, - 0xA2, - 0xB8, - 0x78, - 0x96, - 0x78, - 0x78, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x2A, - 0x78, - 0xAD, - 0x7E, - 0x79, - 0x8A, - 0x3B, - 0x74, - 0xBA, - 0x6F, - 0x6F, - 0x9A, - 0x9A, - 0x6F, - 0x6F, - 0x31, - 0x31, - 0x31, - 0x2E, - 0x5A, - 0x5A, - 0x75, - 0x91, - 0x64, - 0x64, - 0x89, - 0x64, - 0x89, - 0x91, - 0x63, - 0x5A, - 0x29, - 0x6F, - 0x6F, - 0x9A, - 0xBB, - 0xBB, - 0xA8, - 0xA7, - 0xBD, - 0xB4, - 0x8C, - 0x8C, - 0x04, - 0xC0, - 0x00, - 0x2E, - 0x8C, - 0x8C, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0xBB, - 0xB3, - 0x6F, - 0xB9, - 0x9B, - 0xB7, - 0x8D, - 0x80, - 0xC1, - 0xB0, - 0xA1, - 0xA1, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xD9, - 0xD9, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x04, - 0xC8, - 0x00, - 0x05, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x35, - 0x00, - 0x20, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0xA3, - 0xB2, - 0xB1, - 0x9B, - 0xAD, - 0xAC, - 0xC3, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0x8D, - 0x05, - 0xB0, - 0x00, - 0x08, - 0xA1, - 0xA1, - 0xB6, - 0xA9, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0x06, - 0xB0, - 0x00, - 0x05, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x11, - 0xB0, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0xA9, - 0xC1, - 0x8D, - 0x71, - 0x8D, - 0xB0, - 0xA4, - 0xF2, - 0x08, - 0x00, - 0x09, - 0x14, - 0x00, - 0x28, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x08, - 0x14, - 0x07, - 0x08, - 0xFD, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0x08, - 0x07, - 0x08, - 0x06, - 0x0F, - 0x0F, - 0x06, - 0x0F, - 0x05, - 0x0A, - 0x0B, - 0x0A, - 0x04, - 0x06, - 0x14, - 0xFD, - 0xFD, - 0x08, - 0xEA, - 0xFD, - 0xEE, - 0xEE, - 0x07, - 0xEE, - 0x0F, - 0x05, - 0xF2, - 0x00, - 0x10, - 0xFF, - 0xE9, - 0xF9, - 0xF3, - 0xFB, - 0xE6, - 0xF6, - 0xE7, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xBF, - 0xE3, - 0xD4, - 0xD4, - 0x06, - 0xE3, - 0x00, - 0x0A, - 0xDC, - 0xE7, - 0xDC, - 0xE7, - 0xDC, - 0xA6, - 0xE7, - 0xA6, - 0xDC, - 0xB9, - 0x04, - 0x68, - 0x00, - 0x06, - 0x99, - 0x68, - 0x99, - 0x68, - 0x99, - 0x96, - 0x0D, - 0x99, - 0x00, - 0x03, - 0x9E, - 0x99, - 0x8F, - 0x00, - 0x06, - 0x99, - 0x00, - 0x06, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0x96, - 0x96, - 0x08, - 0x78, - 0x00, - 0x29, - 0xC1, - 0x97, - 0xAE, - 0x49, - 0x5D, - 0x6D, - 0x42, - 0xBA, - 0x6F, - 0x6F, - 0x9A, - 0x6F, - 0x9A, - 0x6F, - 0x6F, - 0x42, - 0x42, - 0x31, - 0x5E, - 0x5A, - 0x5A, - 0x5B, - 0x63, - 0x91, - 0x64, - 0x7C, - 0x7C, - 0x91, - 0x75, - 0x4D, - 0x5A, - 0x2E, - 0x59, - 0xB3, - 0x8B, - 0xBC, - 0xD8, - 0xD0, - 0xA0, - 0xAB, - 0xD5, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x2C, - 0x8C, - 0x8C, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0x66, - 0xB3, - 0x9A, - 0x6B, - 0x9B, - 0xAC, - 0xAA, - 0x80, - 0x8D, - 0x8D, - 0xB0, - 0xA1, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC9, - 0xC9, - 0xD2, - 0xC8, - 0xD9, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xCF, - 0xD9, - 0xCF, - 0x05, - 0xD1, - 0x00, - 0x07, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x05, - 0x35, - 0x00, - 0x51, - 0x52, - 0x86, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0xA4, - 0xB2, - 0xB2, - 0x7E, - 0xB1, - 0xC5, - 0xC3, - 0xAA, - 0xC1, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0xB0, - 0xA1, - 0xA9, - 0xB0, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0xA9, - 0xC1, - 0x8D, - 0xA9, - 0x8D, - 0xC1, - 0xC1, - 0xA9, - 0x8D, - 0x8D, - 0x71, - 0x8D, - 0xA9, - 0x71, - 0xE4, - 0x06, - 0x00, - 0x09, - 0x14, - 0x01, - 0xFD, - 0x05, - 0x14, - 0x00, - 0x20, - 0xFD, - 0x07, - 0x08, - 0x08, - 0xEE, - 0x08, - 0xFD, - 0xFD, - 0xEE, - 0x08, - 0x07, - 0x07, - 0x08, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x0B, - 0x08, - 0x08, - 0x14, - 0xFD, - 0x14, - 0x14, - 0xEE, - 0x08, - 0x07, - 0x07, - 0x04, - 0xF2, - 0x00, - 0x0D, - 0xFF, - 0xE9, - 0xFF, - 0xE9, - 0xF9, - 0xF9, - 0xEB, - 0xED, - 0xFE, - 0xDD, - 0xDC, - 0xF0, - 0xD4, - 0x00, - 0x0C, - 0xE3, - 0x00, - 0x03, - 0xE7, - 0xDC, - 0xE7, - 0x00, - 0x05, - 0xDC, - 0x00, - 0x07, - 0xA6, - 0x81, - 0x99, - 0x68, - 0x99, - 0x99, - 0x68, - 0x00, - 0x07, - 0x99, - 0x00, - 0x1B, - 0x96, - 0x99, - 0x96, - 0x68, - 0x99, - 0x68, - 0x99, - 0x99, - 0x68, - 0x68, - 0x9E, - 0x99, - 0x9E, - 0x99, - 0x99, - 0x8F, - 0x99, - 0x99, - 0xAE, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x97, - 0x96, - 0x00, - 0x05, - 0x78, - 0x00, - 0x67, - 0x97, - 0xB8, - 0x96, - 0x96, - 0x7E, - 0x35, - 0x6B, - 0x6C, - 0x3B, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0x9A, - 0x6F, - 0x6F, - 0x9A, - 0x6F, - 0x42, - 0x31, - 0x31, - 0x2E, - 0x59, - 0x5B, - 0x4D, - 0x91, - 0x64, - 0x91, - 0x89, - 0x7C, - 0x63, - 0x4D, - 0x4D, - 0x5B, - 0x5A, - 0x8B, - 0xBC, - 0xBE, - 0xA7, - 0xA0, - 0xBD, - 0x9F, - 0x8C, - 0x8C, - 0xC0, - 0x32, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0xD5, - 0xAB, - 0xA0, - 0xA5, - 0xD8, - 0x66, - 0xBB, - 0x46, - 0x6D, - 0xBF, - 0xB8, - 0xAA, - 0x8D, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xC9, - 0xC9, - 0xE0, - 0xC9, - 0xB6, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xD1, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xD1, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x00, - 0x05, - 0x35, - 0x00, - 0x14, - 0x79, - 0x49, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x52, - 0xB2, - 0xB1, - 0xB1, - 0xAC, - 0xC3, - 0xAA, - 0xAA, - 0xCA, - 0xB0, - 0xA9, - 0x04, - 0xB0, - 0x00, - 0x0D, - 0xA1, - 0xB0, - 0x8D, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA9, - 0xB6, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x25, - 0xA9, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xC6, - 0x71, - 0xB0, - 0xA9, - 0x80, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x80, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0x80, - 0xA9, - 0x8D, - 0x71, - 0x8D, - 0xED, - 0x07, - 0x00, - 0x08, - 0x14, - 0x01, - 0x73, - 0x04, - 0x14, - 0x00, - 0x32, - 0xFD, - 0xFD, - 0x14, - 0x0F, - 0x07, - 0xFD, - 0xEE, - 0x08, - 0xFD, - 0xEE, - 0x08, - 0x08, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0xFF, - 0xFF, - 0x0A, - 0xF9, - 0x0B, - 0x0A, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0xEA, - 0x08, - 0xEE, - 0xEA, - 0x07, - 0xF2, - 0x0F, - 0xFF, - 0x0F, - 0xFF, - 0xFF, - 0xE9, - 0xFF, - 0xE9, - 0xF9, - 0xEB, - 0xFB, - 0xED, - 0xE6, - 0xF6, - 0xDC, - 0xE3, - 0xD4, - 0x0B, - 0xE3, - 0x01, - 0xB9, - 0x01, - 0xE3, - 0x06, - 0xDC, - 0x00, - 0x04, - 0x74, - 0xDC, - 0x87, - 0x99, - 0x04, - 0x68, - 0x00, - 0x04, - 0x99, - 0x68, - 0x99, - 0x68, - 0x07, - 0x99, - 0x00, - 0x04, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x04, - 0x68, - 0x00, - 0x23, - 0x99, - 0x99, - 0x9E, - 0x9E, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x78, - 0x96, - 0x78, - 0x78, - 0x97, - 0x97, - 0x96, - 0x96, - 0x7E, - 0xAE, - 0x8F, - 0x9C, - 0x5D, - 0x3B, - 0x3B, - 0x42, - 0x6E, - 0x42, - 0x6F, - 0xBA, - 0x9A, - 0x9A, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x54, - 0x42, - 0x34, - 0x46, - 0x2E, - 0x29, - 0x5B, - 0x75, - 0x63, - 0x64, - 0x7C, - 0x91, - 0x7C, - 0x91, - 0x63, - 0x5B, - 0x75, - 0x66, - 0xBE, - 0xD8, - 0xA7, - 0xA0, - 0xB4, - 0xD5, - 0xC0, - 0x8C, - 0xC0, - 0x85, - 0xD5, - 0xC0, - 0x8C, - 0xD5, - 0x9F, - 0xB4, - 0xA0, - 0xD0, - 0xBE, - 0xBC, - 0x90, - 0x9A, - 0xBA, - 0xB2, - 0x9B, - 0xC3, - 0xC1, - 0xA9, - 0xA9, - 0xB0, - 0xA1, - 0xCA, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB0, - 0xA1, - 0xA1, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xD2, - 0xCD, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x79, - 0x00, - 0x04, - 0x35, - 0x00, - 0x0C, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0xC5, - 0xB8, - 0x8D, - 0x8D, - 0x04, - 0xB0, - 0x00, - 0x0E, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0x08, - 0xB0, - 0x00, - 0x36, - 0xC6, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0x8D, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0xA9, - 0x8D, - 0x8D, - 0xC1, - 0x80, - 0xC1, - 0xB7, - 0xC1, - 0xC1, - 0xC1, - 0x80, - 0xA9, - 0x8D, - 0x71, - 0x8D, - 0x80, - 0xE6, - 0x07, - 0x08, - 0x14, - 0x08, - 0x14, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x07, - 0xF2, - 0x07, - 0x04, - 0x08, - 0x05, - 0x07, - 0x00, - 0x0A, - 0x0F, - 0x0F, - 0x0F, - 0xFF, - 0x05, - 0x0C, - 0x04, - 0x0F, - 0x08, - 0xFD, - 0x04, - 0x08, - 0x00, - 0x12, - 0xEE, - 0x06, - 0x07, - 0x07, - 0xF2, - 0xF2, - 0xE9, - 0xFF, - 0xEC, - 0xFF, - 0xEC, - 0xF9, - 0xEC, - 0xF8, - 0xE8, - 0xED, - 0xE4, - 0xDC, - 0x09, - 0xE3, - 0x00, - 0x12, - 0xDC, - 0xE3, - 0xE7, - 0xDC, - 0xE3, - 0xE3, - 0xE3, - 0xE7, - 0xDC, - 0xDC, - 0xDD, - 0xDC, - 0x3B, - 0xDC, - 0x7D, - 0x68, - 0x87, - 0x99, - 0x04, - 0x68, - 0x00, - 0x04, - 0x99, - 0x68, - 0x99, - 0x68, - 0x04, - 0x99, - 0x00, - 0x0C, - 0x68, - 0x99, - 0x68, - 0x99, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x68, - 0x06, - 0x99, - 0x00, - 0x19, - 0x8F, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x96, - 0x78, - 0x96, - 0x96, - 0x96, - 0x8F, - 0x8F, - 0x94, - 0x8A, - 0x8A, - 0x8A, - 0x56, - 0x3B, - 0x6E, - 0x6E, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0x00, - 0x06, - 0x6F, - 0x00, - 0x18, - 0xBA, - 0x42, - 0xBA, - 0x31, - 0x46, - 0x29, - 0x5A, - 0x4D, - 0x4D, - 0x91, - 0x64, - 0x91, - 0x91, - 0x64, - 0x75, - 0x63, - 0xA8, - 0x45, - 0xA7, - 0xA0, - 0xBD, - 0xAB, - 0x9F, - 0x8C, - 0x04, - 0xC0, - 0x00, - 0x17, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0xB3, - 0x34, - 0x5D, - 0xB1, - 0xAC, - 0xAA, - 0x8D, - 0x8D, - 0xC6, - 0xB0, - 0xB5, - 0xC2, - 0xC9, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x18, - 0xC2, - 0xCA, - 0xC2, - 0xA1, - 0xCA, - 0xC2, - 0xB5, - 0xC9, - 0xD2, - 0xD2, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xD7, - 0xDA, - 0xCF, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xB6, - 0x04, - 0xCD, - 0x01, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x08, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x0A, - 0x35, - 0x00, - 0x15, - 0xA4, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0x8E, - 0x97, - 0xCB, - 0x8D, - 0xC6, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x0A, - 0xB0, - 0xB6, - 0xA1, - 0x71, - 0xB0, - 0x71, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0x04, - 0xB0, - 0x01, - 0xC6, - 0x01, - 0xC1, - 0x06, - 0xB0, - 0x00, - 0x19, - 0xA1, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xC1, - 0xA9, - 0xC1, - 0x80, - 0x80, - 0xC1, - 0xC1, - 0x80, - 0x80, - 0x8D, - 0x8D, - 0x8E, - 0x6E, - 0xFF, - 0x06, - 0x00, - 0x04, - 0x14, - 0x00, - 0x2C, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0x73, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0x07, - 0x07, - 0xEE, - 0x08, - 0x07, - 0x08, - 0x07, - 0x08, - 0x07, - 0x07, - 0x07, - 0x0F, - 0xFF, - 0xF2, - 0x0A, - 0x0C, - 0x0C, - 0x0B, - 0x07, - 0x14, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0xEE, - 0x07, - 0xEE, - 0x0F, - 0xF2, - 0x0F, - 0xFF, - 0x05, - 0xE9, - 0xFF, - 0x04, - 0xEC, - 0x00, - 0x06, - 0xF3, - 0xFB, - 0xE1, - 0xE6, - 0xDC, - 0xDC, - 0x08, - 0xE3, - 0x00, - 0x08, - 0xDC, - 0xDC, - 0xE3, - 0xE3, - 0xDC, - 0xDC, - 0xE3, - 0x8A, - 0x04, - 0xDC, - 0x00, - 0x09, - 0xBA, - 0xBA, - 0x98, - 0x87, - 0x99, - 0x87, - 0x68, - 0x68, - 0x87, - 0x00, - 0x05, - 0x68, - 0x00, - 0x13, - 0x99, - 0x99, - 0x68, - 0x68, - 0x68, - 0x87, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x99, - 0x9E, - 0x00, - 0x06, - 0x99, - 0x00, - 0x17, - 0xA2, - 0x96, - 0x96, - 0x78, - 0x78, - 0x78, - 0xA2, - 0x8F, - 0x9E, - 0x8A, - 0x7D, - 0x74, - 0x42, - 0x42, - 0x42, - 0x34, - 0x42, - 0x42, - 0x3B, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0x00, - 0x06, - 0x6F, - 0x00, - 0x17, - 0x42, - 0x6E, - 0x42, - 0x31, - 0x2E, - 0x29, - 0x5A, - 0x4D, - 0x63, - 0x91, - 0x7C, - 0x64, - 0x91, - 0x64, - 0x45, - 0xA7, - 0x45, - 0xA5, - 0xA0, - 0xB4, - 0x9F, - 0xD5, - 0x8C, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x1E, - 0x8C, - 0xD5, - 0x8C, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xA7, - 0xBE, - 0x8B, - 0x59, - 0x6F, - 0x6C, - 0x7E, - 0xAD, - 0x80, - 0x8D, - 0xC6, - 0xB0, - 0xA1, - 0xC2, - 0xB5, - 0xB6, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0x04, - 0xA1, - 0x00, - 0x0C, - 0xB5, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0xC8, - 0xC8, - 0xC8, - 0xD2, - 0x05, - 0xCD, - 0x00, - 0x05, - 0xD2, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x03, - 0x79, - 0x35, - 0x79, - 0x00, - 0x06, - 0x35, - 0x00, - 0x11, - 0x52, - 0x52, - 0x52, - 0xB1, - 0xBF, - 0xAD, - 0xAC, - 0xC3, - 0x80, - 0xC6, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0x71, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x09, - 0x71, - 0x71, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0x00, - 0x08, - 0xB0, - 0x00, - 0x25, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0x80, - 0xC1, - 0xC1, - 0xA9, - 0x80, - 0xA9, - 0xC1, - 0x80, - 0xA1, - 0x71, - 0x71, - 0xB6, - 0x9B, - 0xED, - 0x07, - 0x07, - 0x00, - 0x05, - 0xFD, - 0x00, - 0x3C, - 0x14, - 0x14, - 0x73, - 0x14, - 0xFD, - 0xFD, - 0x07, - 0x07, - 0x0F, - 0x07, - 0x07, - 0x08, - 0x0F, - 0x07, - 0x07, - 0x0F, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0x05, - 0xFF, - 0xF9, - 0x04, - 0x0A, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x06, - 0xEE, - 0x06, - 0xF2, - 0x06, - 0xE9, - 0xE9, - 0xEC, - 0xF9, - 0xEC, - 0x0A, - 0xF9, - 0xEC, - 0xF8, - 0xE8, - 0xFB, - 0xE6, - 0xDD, - 0xDC, - 0xE3, - 0xE3, - 0xB9, - 0xE7, - 0xE3, - 0xDC, - 0xE3, - 0xDC, - 0xE3, - 0xE3, - 0x04, - 0xDC, - 0x00, - 0x15, - 0xE7, - 0xDC, - 0xE7, - 0xB9, - 0xDC, - 0xDC, - 0xBA, - 0xDC, - 0x6C, - 0x87, - 0x87, - 0x87, - 0x68, - 0x87, - 0x68, - 0x68, - 0x68, - 0x87, - 0x68, - 0x68, - 0x99, - 0x00, - 0x05, - 0x68, - 0x00, - 0x84, - 0x99, - 0x87, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x68, - 0x9E, - 0x99, - 0x9E, - 0x99, - 0x68, - 0x9E, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x78, - 0x96, - 0x96, - 0x96, - 0x99, - 0x68, - 0x82, - 0x34, - 0x31, - 0x31, - 0x46, - 0x2E, - 0x46, - 0x6F, - 0x42, - 0x42, - 0x6E, - 0x42, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0x6F, - 0x6F, - 0xBA, - 0x6F, - 0x6F, - 0x42, - 0xBA, - 0x34, - 0x42, - 0x31, - 0x46, - 0x29, - 0x5A, - 0x4D, - 0x63, - 0x63, - 0x64, - 0x64, - 0x64, - 0x45, - 0x45, - 0xA5, - 0xAF, - 0xA0, - 0xB4, - 0x9F, - 0xD5, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xBD, - 0xA0, - 0xAF, - 0xBE, - 0xA8, - 0xBC, - 0x8B, - 0x46, - 0x74, - 0x35, - 0x9B, - 0xCB, - 0x8D, - 0xC1, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xE0, - 0xB5, - 0xC9, - 0xE0, - 0xC2, - 0xC9, - 0xC2, - 0xC2, - 0xCA, - 0xB0, - 0xA1, - 0xB0, - 0xC2, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xDA, - 0xC8, - 0xCF, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0xC9, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x35, - 0x52, - 0x00, - 0x08, - 0x35, - 0x04, - 0x79, - 0x00, - 0x1D, - 0x35, - 0x35, - 0x79, - 0x52, - 0xA4, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0xC6, - 0xA1, - 0x71, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0x00, - 0x09, - 0xB0, - 0x00, - 0x13, - 0xA9, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0x8D, - 0xA9, - 0xA9, - 0xC6, - 0x8D, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x16, - 0xB7, - 0xC1, - 0xC1, - 0x80, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0x71, - 0xA9, - 0x71, - 0x71, - 0x71, - 0xA3, - 0xE8, - 0x07, - 0x08, - 0x14, - 0x14, - 0x73, - 0x07, - 0xFD, - 0x00, - 0x15, - 0xEE, - 0xEE, - 0x0F, - 0xE5, - 0x07, - 0xF2, - 0x0F, - 0x0F, - 0xF2, - 0x07, - 0x0F, - 0x07, - 0x0F, - 0xFF, - 0xFF, - 0x0B, - 0x10, - 0x07, - 0xFD, - 0xFD, - 0xFD, - 0x00, - 0x04, - 0x08, - 0x00, - 0x19, - 0x06, - 0x06, - 0xF2, - 0xF2, - 0xFF, - 0x05, - 0x0A, - 0xE9, - 0xF9, - 0xEC, - 0xF8, - 0xEC, - 0xEB, - 0xF3, - 0xE1, - 0xED, - 0xDC, - 0xE4, - 0x98, - 0xE3, - 0xE3, - 0xE3, - 0xDC, - 0xE3, - 0xE3, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x28, - 0xE7, - 0xDC, - 0xDC, - 0xE7, - 0x8A, - 0xDC, - 0xE3, - 0xE3, - 0x74, - 0xBA, - 0xBA, - 0x81, - 0x87, - 0x87, - 0x87, - 0x68, - 0x87, - 0x87, - 0x68, - 0x87, - 0x68, - 0x68, - 0x87, - 0x68, - 0x68, - 0x68, - 0x87, - 0x87, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x68, - 0x68, - 0x9E, - 0x04, - 0x68, - 0x00, - 0x38, - 0x99, - 0x9E, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x96, - 0x96, - 0x78, - 0x78, - 0x96, - 0x8F, - 0x53, - 0x34, - 0x4E, - 0x2E, - 0x29, - 0x59, - 0x5A, - 0x59, - 0x5E, - 0x46, - 0x6F, - 0x42, - 0x42, - 0x6E, - 0x3B, - 0x74, - 0xBA, - 0xBA, - 0x6F, - 0x6F, - 0x42, - 0x6F, - 0xBA, - 0x6F, - 0x74, - 0x74, - 0x74, - 0x31, - 0x2E, - 0x2E, - 0x5A, - 0x44, - 0x75, - 0x91, - 0x64, - 0x64, - 0x89, - 0x36, - 0xAF, - 0xAF, - 0xB4, - 0xAB, - 0x9F, - 0x8C, - 0x06, - 0xC0, - 0x00, - 0x37, - 0xD5, - 0x9F, - 0x9F, - 0xBD, - 0xA0, - 0xAF, - 0xA5, - 0xBE, - 0x75, - 0x8B, - 0x59, - 0x42, - 0x8A, - 0x7E, - 0xAD, - 0x8D, - 0xA9, - 0xCA, - 0xA1, - 0xA1, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xD2, - 0xD2, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xD2, - 0xC9, - 0xCD, - 0xC4, - 0xD2, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x04, - 0x35, - 0x01, - 0x79, - 0x06, - 0x35, - 0x00, - 0x8D, - 0x49, - 0x35, - 0x52, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0x8E, - 0xAC, - 0xAA, - 0xAA, - 0xB0, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0x8D, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0x80, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0x8D, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0x80, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xA1, - 0xA9, - 0xB0, - 0x71, - 0xB6, - 0x71, - 0x71, - 0xA1, - 0x61, - 0xEB, - 0x14, - 0x14, - 0x14, - 0xFD, - 0xDF, - 0x73, - 0x14, - 0xDF, - 0xFD, - 0xFD, - 0xFD, - 0x07, - 0xEE, - 0x07, - 0x0F, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0xFF, - 0xFF, - 0x0A, - 0x0C, - 0x0B, - 0x10, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x14, - 0x06, - 0xF2, - 0x06, - 0xF2, - 0x05, - 0xFF, - 0xEC, - 0xFF, - 0xF9, - 0xF9, - 0xEC, - 0xEC, - 0xF8, - 0xF3, - 0xE8, - 0xFB, - 0xDD, - 0xDC, - 0xDC, - 0xE7, - 0xE3, - 0xDC, - 0xDC, - 0xE3, - 0xDC, - 0xDC, - 0xE7, - 0xDC, - 0xE7, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x09, - 0xDD, - 0xDC, - 0xDC, - 0xBA, - 0xDC, - 0xDC, - 0xDC, - 0xBA, - 0x81, - 0x00, - 0x07, - 0x87, - 0x00, - 0x09, - 0x68, - 0x87, - 0x68, - 0x68, - 0x87, - 0x68, - 0x87, - 0x68, - 0x68, - 0x00, - 0x0A, - 0x87, - 0x00, - 0x0B, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x99, - 0x9E, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x00, - 0x06, - 0x96, - 0x00, - 0x4E, - 0x68, - 0x57, - 0x4E, - 0x2E, - 0x5A, - 0x8B, - 0x75, - 0x66, - 0x66, - 0x5B, - 0x59, - 0x5E, - 0x6F, - 0x42, - 0x6E, - 0x3B, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0x6F, - 0xBA, - 0x42, - 0x74, - 0x74, - 0x34, - 0x31, - 0x38, - 0x5A, - 0x5A, - 0x44, - 0x63, - 0x63, - 0x91, - 0x89, - 0xA5, - 0x5F, - 0xA0, - 0x7F, - 0x9F, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0x7F, - 0xA0, - 0xAF, - 0xA7, - 0xA7, - 0xA8, - 0x66, - 0xB3, - 0x9A, - 0x74, - 0x49, - 0x9B, - 0x80, - 0xC6, - 0xA9, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xA1, - 0xC2, - 0x06, - 0xA1, - 0x00, - 0x16, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xD2, - 0xC9, - 0xD2, - 0xD2, - 0xD1, - 0xD1, - 0xD1, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x03, - 0x86, - 0x52, - 0x86, - 0x00, - 0x04, - 0x35, - 0x01, - 0x52, - 0x05, - 0x35, - 0x00, - 0x54, - 0x79, - 0x35, - 0x35, - 0x79, - 0x79, - 0x86, - 0x35, - 0xA4, - 0xA3, - 0x7E, - 0xB2, - 0xB1, - 0xAC, - 0xAC, - 0x97, - 0xAA, - 0xB0, - 0xCA, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xC2, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0xA9, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xA9, - 0xB6, - 0x71, - 0x71, - 0xB6, - 0x71, - 0x71, - 0x8D, - 0xA1, - 0x78, - 0xE4, - 0xF2, - 0x04, - 0xFD, - 0x01, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x2E, - 0x08, - 0x07, - 0xEE, - 0x07, - 0x07, - 0xF2, - 0xFF, - 0xF2, - 0xFF, - 0xF2, - 0x0F, - 0xF9, - 0xF9, - 0x0C, - 0x04, - 0xF8, - 0x14, - 0xFD, - 0xEA, - 0x14, - 0x08, - 0x08, - 0x06, - 0x06, - 0x06, - 0x07, - 0x05, - 0x05, - 0xFF, - 0x05, - 0xF9, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0xEB, - 0xF3, - 0xFB, - 0xE1, - 0xE6, - 0xDD, - 0xDC, - 0xE3, - 0xDC, - 0xDC, - 0xE3, - 0x04, - 0xDC, - 0x01, - 0xE7, - 0x04, - 0xDC, - 0x00, - 0x0D, - 0xDD, - 0xDD, - 0xDC, - 0xBA, - 0xDC, - 0xDC, - 0x7D, - 0x88, - 0xDC, - 0x87, - 0x87, - 0x87, - 0x81, - 0x00, - 0x07, - 0x87, - 0x00, - 0x05, - 0x68, - 0x87, - 0x87, - 0x68, - 0x68, - 0x00, - 0x07, - 0x87, - 0x00, - 0x7F, - 0x9E, - 0x87, - 0x87, - 0x68, - 0x87, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x99, - 0x68, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x96, - 0x78, - 0x96, - 0x96, - 0x99, - 0x9E, - 0x69, - 0x38, - 0x5A, - 0x5B, - 0x63, - 0x91, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x9A, - 0x42, - 0x42, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0xBA, - 0x42, - 0x6F, - 0x6F, - 0x42, - 0x42, - 0xBA, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x31, - 0x39, - 0x5A, - 0x5A, - 0x63, - 0x91, - 0x89, - 0xAF, - 0x76, - 0x7F, - 0xAB, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xAB, - 0xBD, - 0xAF, - 0xAF, - 0xA5, - 0xBE, - 0xBE, - 0x75, - 0x5B, - 0x46, - 0x42, - 0x6C, - 0xAE, - 0xAA, - 0xC1, - 0xC6, - 0xA1, - 0xB0, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xE0, - 0xB5, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xC9, - 0xC4, - 0xC9, - 0xD1, - 0xD2, - 0xC4, - 0xC4, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x79, - 0x79, - 0x00, - 0x08, - 0x35, - 0x00, - 0x14, - 0x79, - 0x49, - 0x86, - 0x86, - 0x52, - 0xB2, - 0x52, - 0x9B, - 0x9B, - 0x8E, - 0xAC, - 0xAA, - 0x80, - 0x80, - 0x8D, - 0xC6, - 0x8D, - 0xC1, - 0xAA, - 0x80, - 0x04, - 0xAA, - 0x04, - 0x8D, - 0x00, - 0x0B, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xC6, - 0xC1, - 0x00, - 0x05, - 0x8D, - 0x00, - 0x25, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0x8D, - 0x8D, - 0xC1, - 0x80, - 0xA9, - 0x80, - 0x8D, - 0x8D, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0xA9, - 0xB6, - 0x71, - 0x71, - 0xA9, - 0xA9, - 0x71, - 0x78, - 0x71, - 0x71, - 0x8F, - 0xEB, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x2D, - 0xDF, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0x07, - 0xF2, - 0x0F, - 0xF2, - 0x0F, - 0x0F, - 0xFF, - 0xFF, - 0xF9, - 0x0C, - 0x0D, - 0xF9, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x08, - 0xEA, - 0x06, - 0xEE, - 0x05, - 0x06, - 0xE9, - 0xFF, - 0xF9, - 0xFF, - 0xF9, - 0x0C, - 0xE2, - 0xEB, - 0xF8, - 0xE8, - 0xDB, - 0xE1, - 0xDD, - 0xDD, - 0x00, - 0x04, - 0xDC, - 0x01, - 0xDD, - 0x04, - 0xDC, - 0x00, - 0x14, - 0xDD, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xBA, - 0xDC, - 0xBA, - 0xDD, - 0x7D, - 0xDD, - 0x83, - 0x81, - 0x81, - 0x87, - 0x81, - 0x87, - 0x81, - 0x09, - 0x87, - 0x00, - 0x6E, - 0x81, - 0x81, - 0x87, - 0x87, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x87, - 0x99, - 0x68, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x99, - 0x68, - 0x50, - 0x4E, - 0x5B, - 0x91, - 0x45, - 0x89, - 0x89, - 0x89, - 0x45, - 0xA8, - 0x5B, - 0x59, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x74, - 0xBA, - 0x42, - 0xBA, - 0xBA, - 0xBA, - 0x42, - 0x42, - 0x3B, - 0x3B, - 0x42, - 0x33, - 0x2E, - 0x27, - 0x5A, - 0x3A, - 0x75, - 0x45, - 0x36, - 0x76, - 0x7F, - 0x7F, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0x85, - 0xC0, - 0xD5, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA0, - 0xAF, - 0xA5, - 0xA5, - 0xBE, - 0xA8, - 0xBC, - 0x59, - 0x46, - 0x7D, - 0x52, - 0xAC, - 0x8D, - 0xA9, - 0xB0, - 0xCA, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xA1, - 0x05, - 0xB0, - 0x00, - 0x14, - 0xA1, - 0xB5, - 0xD2, - 0xD2, - 0xC4, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xD2, - 0xD1, - 0xCD, - 0xD2, - 0xCD, - 0xC9, - 0xD2, - 0xC9, - 0xC9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x4C, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x86, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xB1, - 0x9B, - 0xAD, - 0xCB, - 0xC3, - 0x80, - 0x8D, - 0xAA, - 0x8D, - 0x80, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0x8D, - 0xC6, - 0xAA, - 0x8D, - 0x8D, - 0xA9, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0x80, - 0xC1, - 0x8D, - 0x8D, - 0x80, - 0xA9, - 0x8D, - 0xC1, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x80, - 0xA9, - 0x8D, - 0x05, - 0xA9, - 0x00, - 0x0C, - 0xB0, - 0x71, - 0xB0, - 0x71, - 0x71, - 0xB0, - 0x71, - 0x71, - 0x71, - 0xC1, - 0x78, - 0xC1, - 0x04, - 0x71, - 0x00, - 0x04, - 0x78, - 0xDB, - 0x08, - 0xEE, - 0x05, - 0xFD, - 0x00, - 0x29, - 0x08, - 0x08, - 0x07, - 0x07, - 0xF2, - 0x07, - 0x0F, - 0xF2, - 0xF2, - 0xF2, - 0xFF, - 0xFF, - 0x0C, - 0x0B, - 0xF8, - 0x07, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x06, - 0x08, - 0x08, - 0x06, - 0x06, - 0x06, - 0x05, - 0xF2, - 0xFF, - 0x0A, - 0xFF, - 0xF9, - 0x0A, - 0xEB, - 0xF8, - 0xE8, - 0xFB, - 0xDB, - 0xFA, - 0xD6, - 0xDD, - 0x00, - 0x04, - 0xDC, - 0x01, - 0xDD, - 0x04, - 0xDC, - 0x00, - 0x09, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xDD, - 0xBA, - 0xDD, - 0xDC, - 0xDD, - 0x00, - 0x04, - 0xBA, - 0x05, - 0x81, - 0x00, - 0x04, - 0x87, - 0x87, - 0x87, - 0x81, - 0x04, - 0x87, - 0x00, - 0x08, - 0x81, - 0x87, - 0x87, - 0x81, - 0x87, - 0x81, - 0x81, - 0x98, - 0x04, - 0x81, - 0x05, - 0x87, - 0x00, - 0x09, - 0x9E, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x99, - 0x99, - 0x00, - 0x05, - 0x96, - 0x00, - 0x6B, - 0x99, - 0x98, - 0x6A, - 0x46, - 0x3A, - 0x91, - 0x89, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x45, - 0x91, - 0x8B, - 0x59, - 0x9A, - 0x42, - 0x42, - 0x61, - 0x4A, - 0x3B, - 0x74, - 0x42, - 0xBA, - 0x74, - 0xBA, - 0x42, - 0xBA, - 0xBA, - 0x74, - 0x74, - 0x7D, - 0x42, - 0x33, - 0x38, - 0x2E, - 0x29, - 0x4D, - 0x45, - 0xA7, - 0xAF, - 0x2F, - 0xAB, - 0x55, - 0xD5, - 0x32, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA7, - 0x91, - 0xBC, - 0x5A, - 0xD6, - 0x88, - 0xA3, - 0xAD, - 0x80, - 0x8D, - 0xA1, - 0xB0, - 0xB5, - 0xA1, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xA9, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0xA1, - 0xA1, - 0xC9, - 0xC9, - 0xD2, - 0xCD, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC9, - 0xC9, - 0xCD, - 0xB6, - 0xE0, - 0xC9, - 0xB5, - 0xC4, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x01, - 0x52, - 0x05, - 0x35, - 0x00, - 0x3B, - 0x52, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x86, - 0x52, - 0xA3, - 0x7E, - 0xB2, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xCB, - 0xB7, - 0xAA, - 0xAA, - 0xAA, - 0x80, - 0x80, - 0x8D, - 0xAA, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0xA9, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x20, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0x71, - 0xB0, - 0x71, - 0xA9, - 0xB0, - 0x71, - 0xC2, - 0x71, - 0xA9, - 0xC1, - 0x71, - 0xC1, - 0x71, - 0x71, - 0x78, - 0x78, - 0x71, - 0x71, - 0x78, - 0xA1, - 0xE6, - 0x07, - 0xEA, - 0x05, - 0xFD, - 0x01, - 0x08, - 0x01, - 0x08, - 0x04, - 0x07, - 0x00, - 0x27, - 0xF2, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0x0C, - 0xF9, - 0x0F, - 0x07, - 0x14, - 0xEA, - 0x08, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x06, - 0x07, - 0x05, - 0xF2, - 0x05, - 0xFF, - 0xE9, - 0xF9, - 0x0A, - 0xE2, - 0x0C, - 0xEB, - 0xFB, - 0xE8, - 0xED, - 0xE1, - 0xDD, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0x00, - 0x0A, - 0xDD, - 0x01, - 0xBA, - 0x01, - 0xDD, - 0x04, - 0xBA, - 0x00, - 0x03, - 0x83, - 0x81, - 0x77, - 0x00, - 0x06, - 0x81, - 0x01, - 0x87, - 0x04, - 0x81, - 0x01, - 0x87, - 0x0A, - 0x81, - 0x01, - 0x98, - 0x01, - 0x81, - 0x06, - 0x87, - 0x00, - 0x08, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x99, - 0x99, - 0x99, - 0x04, - 0x96, - 0x00, - 0x4E, - 0x68, - 0x82, - 0x88, - 0x39, - 0x5B, - 0x91, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0x5F, - 0x89, - 0xBE, - 0x91, - 0x5A, - 0x2E, - 0x6F, - 0x42, - 0x74, - 0x3B, - 0x6B, - 0x3B, - 0x3B, - 0x42, - 0xBA, - 0x42, - 0xBA, - 0x42, - 0x42, - 0x74, - 0x74, - 0x6C, - 0x56, - 0x88, - 0x31, - 0x2E, - 0x39, - 0x5B, - 0x75, - 0x89, - 0x76, - 0x76, - 0x9F, - 0x8C, - 0xD5, - 0xC0, - 0xCC, - 0xC0, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA7, - 0xBE, - 0xA8, - 0x8B, - 0x39, - 0xDD, - 0x8A, - 0x9B, - 0x80, - 0x8D, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC9, - 0xB6, - 0xC2, - 0x05, - 0xA1, - 0x00, - 0x18, - 0xB0, - 0xC6, - 0xB0, - 0xA9, - 0xB5, - 0xCA, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xC4, - 0xD2, - 0xC4, - 0xD1, - 0xD1, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x06, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x08, - 0x35, - 0x01, - 0x79, - 0x08, - 0x35, - 0x00, - 0x0D, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x16, - 0xB8, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0xAA, - 0x80, - 0xC6, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0xA9, - 0x04, - 0x8D, - 0x00, - 0x05, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0x8D, - 0x00, - 0x07, - 0xA9, - 0x00, - 0x43, - 0x71, - 0xA9, - 0x71, - 0xB6, - 0xB0, - 0xB6, - 0x71, - 0x71, - 0x71, - 0xC1, - 0xA9, - 0x78, - 0x78, - 0xA9, - 0x78, - 0x78, - 0x71, - 0x71, - 0x71, - 0x78, - 0x71, - 0x78, - 0x6E, - 0xF2, - 0xFD, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0x07, - 0xEE, - 0x0F, - 0x0F, - 0x07, - 0xF2, - 0x07, - 0xFF, - 0x0F, - 0xFF, - 0x0F, - 0x07, - 0xEE, - 0xFD, - 0xEA, - 0x14, - 0x08, - 0x14, - 0x08, - 0xEE, - 0x06, - 0x07, - 0xF2, - 0xFF, - 0x05, - 0xFF, - 0x0A, - 0xFF, - 0xF9, - 0x0C, - 0xEB, - 0xF3, - 0xE8, - 0xDB, - 0xED, - 0xED, - 0x00, - 0x11, - 0xDD, - 0x00, - 0x0A, - 0xBA, - 0xDD, - 0xBA, - 0xBA, - 0xBA, - 0x88, - 0x83, - 0x77, - 0x81, - 0x77, - 0x07, - 0x81, - 0x01, - 0x87, - 0x0C, - 0x81, - 0x00, - 0x79, - 0x98, - 0x81, - 0x98, - 0x81, - 0x81, - 0x87, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x99, - 0x68, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0xA2, - 0x68, - 0x82, - 0x88, - 0x2E, - 0x5B, - 0x63, - 0x89, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x5F, - 0x89, - 0x64, - 0xA8, - 0x8B, - 0x5E, - 0x6F, - 0x42, - 0x3B, - 0x3B, - 0x56, - 0x6D, - 0x3B, - 0x74, - 0x74, - 0x42, - 0xBA, - 0x74, - 0xBA, - 0x74, - 0x74, - 0x56, - 0x57, - 0x34, - 0x33, - 0x38, - 0x5A, - 0x75, - 0x45, - 0xA5, - 0x7F, - 0xAB, - 0x8C, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0xAB, - 0xB4, - 0xB4, - 0xAF, - 0xAF, - 0xAF, - 0xD0, - 0xA5, - 0x45, - 0xA8, - 0x8B, - 0x5A, - 0x31, - 0x6C, - 0x9B, - 0x97, - 0x8D, - 0xB0, - 0xA1, - 0xA1, - 0xCD, - 0xE0, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xC2, - 0xB5, - 0xA1, - 0xC4, - 0xC9, - 0xC4, - 0xD2, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x05, - 0xB5, - 0x02, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x09, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x79, - 0x35, - 0x86, - 0x52, - 0x00, - 0x04, - 0x35, - 0x01, - 0x49, - 0x01, - 0x52, - 0x07, - 0x35, - 0x00, - 0x0F, - 0x86, - 0x86, - 0x52, - 0xB2, - 0xB2, - 0x7E, - 0x9B, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x03, - 0xAC, - 0xC3, - 0xAC, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x63, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xA9, - 0x8D, - 0x80, - 0x8D, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0xB0, - 0xB6, - 0xA9, - 0x71, - 0x71, - 0x71, - 0xA9, - 0xB0, - 0xC1, - 0xA9, - 0xC1, - 0x78, - 0xC1, - 0x78, - 0x71, - 0x78, - 0x78, - 0x71, - 0x71, - 0x71, - 0x78, - 0x78, - 0x97, - 0x61, - 0xE9, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x08, - 0x07, - 0x08, - 0x07, - 0x07, - 0x07, - 0xF2, - 0x0F, - 0xF2, - 0xF2, - 0x0F, - 0x07, - 0xFD, - 0x08, - 0xEE, - 0x08, - 0x08, - 0xEA, - 0x08, - 0xEA, - 0x06, - 0x06, - 0x08, - 0x06, - 0x0F, - 0xFF, - 0xF2, - 0xFF, - 0xE9, - 0xE9, - 0x0C, - 0xEC, - 0x04, - 0xE8, - 0xFB, - 0xFB, - 0xE1, - 0xDD, - 0xD6, - 0xDD, - 0xFA, - 0x00, - 0x05, - 0xDD, - 0x00, - 0x18, - 0xD6, - 0xDD, - 0xDD, - 0xD6, - 0xDD, - 0xE1, - 0xDD, - 0xDD, - 0xD6, - 0xDD, - 0x46, - 0xDD, - 0xBA, - 0x31, - 0xDD, - 0x77, - 0x77, - 0x83, - 0x81, - 0x83, - 0x81, - 0x81, - 0x81, - 0x87, - 0x07, - 0x81, - 0x00, - 0x0E, - 0x77, - 0x81, - 0x77, - 0x77, - 0x81, - 0x77, - 0x81, - 0x57, - 0x81, - 0x81, - 0x81, - 0x87, - 0x98, - 0x81, - 0x05, - 0x87, - 0x00, - 0x06, - 0x68, - 0x99, - 0x87, - 0x99, - 0x99, - 0x99, - 0x04, - 0x96, - 0x00, - 0x08, - 0x68, - 0x82, - 0x88, - 0x4E, - 0x5A, - 0x63, - 0x89, - 0x89, - 0x04, - 0x7A, - 0x00, - 0x5F, - 0x5F, - 0xA5, - 0x64, - 0x66, - 0x8B, - 0x46, - 0x6F, - 0x3B, - 0x74, - 0x4A, - 0x6B, - 0x3B, - 0x3B, - 0x6E, - 0xBA, - 0x42, - 0xBA, - 0x74, - 0x74, - 0x3B, - 0x3B, - 0x56, - 0x57, - 0x69, - 0x31, - 0x5E, - 0x5B, - 0x45, - 0xAF, - 0x7F, - 0xAB, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0x9F, - 0xBD, - 0xA0, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xA7, - 0xBE, - 0x66, - 0x59, - 0x46, - 0x6C, - 0x9B, - 0xAC, - 0xB0, - 0xC6, - 0xA1, - 0xA1, - 0xA1, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0xC9, - 0xD2, - 0xD1, - 0xD2, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x35, - 0x86, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x00, - 0x08, - 0x35, - 0x00, - 0x1D, - 0x79, - 0x35, - 0x35, - 0xB9, - 0x79, - 0x35, - 0x49, - 0x52, - 0x52, - 0xB2, - 0xB1, - 0xAE, - 0xC5, - 0x8E, - 0x97, - 0xC3, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xB7, - 0xCB, - 0xC3, - 0xAA, - 0xAC, - 0xC3, - 0xAC, - 0xC3, - 0xAC, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x2C, - 0xC1, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0x8D, - 0x80, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xA9, - 0x8D, - 0xB0, - 0xA9, - 0xC1, - 0xC2, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0xA1, - 0xA9, - 0x71, - 0x71, - 0xB6, - 0x71, - 0xB6, - 0xB0, - 0xA9, - 0xB6, - 0x71, - 0xA9, - 0xC1, - 0x78, - 0xC1, - 0x78, - 0xC1, - 0xC1, - 0x78, - 0x78, - 0x04, - 0x71, - 0x00, - 0x3B, - 0x78, - 0x97, - 0xAC, - 0xB9, - 0xE9, - 0x08, - 0x08, - 0x14, - 0x08, - 0x08, - 0x07, - 0x07, - 0x0F, - 0xF2, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x08, - 0x08, - 0xFD, - 0xFD, - 0x07, - 0xEE, - 0xFD, - 0xEE, - 0x08, - 0x08, - 0xEE, - 0xEE, - 0x07, - 0x0F, - 0x0F, - 0xF2, - 0x05, - 0xE9, - 0x05, - 0xF9, - 0x0A, - 0xEB, - 0xF8, - 0xFB, - 0xE8, - 0xED, - 0xE1, - 0xE1, - 0xDD, - 0xDD, - 0xE1, - 0xDD, - 0xE1, - 0xDD, - 0xE1, - 0xD6, - 0xD6, - 0xDD, - 0xE1, - 0xDD, - 0xDD, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x1F, - 0xDD, - 0xDD, - 0xD6, - 0x88, - 0x46, - 0x88, - 0x83, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x81, - 0x77, - 0x81, - 0x81, - 0x83, - 0x81, - 0x83, - 0x81, - 0x83, - 0x81, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x77, - 0x00, - 0x04, - 0x81, - 0x00, - 0x3C, - 0x98, - 0x81, - 0x87, - 0x87, - 0x81, - 0x9E, - 0x87, - 0x87, - 0x68, - 0x99, - 0x68, - 0x96, - 0x96, - 0x96, - 0x78, - 0x96, - 0x68, - 0x53, - 0x34, - 0x46, - 0x5A, - 0x63, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x5F, - 0x89, - 0x45, - 0x66, - 0x5A, - 0x5E, - 0x6F, - 0x42, - 0x3B, - 0x4A, - 0x6B, - 0x6C, - 0x74, - 0x3B, - 0x6E, - 0xBA, - 0x74, - 0x42, - 0x74, - 0x6C, - 0x56, - 0x6B, - 0x6B, - 0x34, - 0x2E, - 0x8B, - 0x45, - 0xA5, - 0x76, - 0x9F, - 0x9F, - 0x04, - 0xC0, - 0x00, - 0x09, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x00, - 0x04, - 0xAF, - 0x00, - 0x16, - 0xA7, - 0xBE, - 0x75, - 0x90, - 0x9A, - 0x6C, - 0x7E, - 0xAC, - 0x80, - 0xB0, - 0xA1, - 0xA1, - 0xC2, - 0xA1, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0x8D, - 0x04, - 0xB0, - 0x00, - 0x06, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xE0, - 0xB5, - 0x06, - 0xC9, - 0x00, - 0x08, - 0xB5, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x35, - 0x35, - 0x52, - 0x52, - 0x35, - 0x79, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x7F, - 0x52, - 0x79, - 0x79, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0x79, - 0xA4, - 0xB2, - 0x52, - 0x9B, - 0xB1, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAA, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0x8D, - 0x80, - 0xAA, - 0x8D, - 0xC1, - 0xAA, - 0x80, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0x71, - 0xA9, - 0x71, - 0x71, - 0xA1, - 0x71, - 0xA1, - 0xB6, - 0xB5, - 0xB6, - 0xC2, - 0xB6, - 0x71, - 0x71, - 0xA9, - 0x78, - 0xA9, - 0xC1, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0x78, - 0x78, - 0xC1, - 0xC1, - 0x71, - 0x71, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0xA2, - 0x9C, - 0xEB, - 0x08, - 0x07, - 0x08, - 0x08, - 0x07, - 0x08, - 0x08, - 0x07, - 0x07, - 0xEE, - 0xEE, - 0xEE, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0xEE, - 0xEE, - 0xEE, - 0xFD, - 0xEE, - 0x08, - 0x08, - 0xEE, - 0x06, - 0x0F, - 0xF2, - 0xE9, - 0x05, - 0x05, - 0xEC, - 0x0A, - 0xE2, - 0x0C, - 0xE8, - 0xE8, - 0xDB, - 0x00, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xED, - 0xE1, - 0xE1, - 0xD6, - 0x05, - 0xE1, - 0x00, - 0x0D, - 0xD6, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0xDD, - 0xDD, - 0xD6, - 0xBA, - 0x72, - 0x00, - 0x04, - 0x83, - 0x00, - 0x15, - 0x81, - 0x83, - 0x83, - 0x83, - 0x81, - 0x83, - 0x81, - 0x83, - 0x83, - 0x81, - 0x83, - 0x81, - 0x83, - 0x77, - 0x69, - 0x77, - 0x83, - 0x77, - 0x77, - 0x81, - 0x77, - 0x00, - 0x06, - 0x81, - 0x00, - 0x18, - 0x98, - 0x87, - 0x98, - 0x87, - 0x87, - 0x68, - 0x87, - 0x68, - 0x99, - 0x68, - 0x96, - 0x96, - 0x99, - 0x96, - 0x96, - 0x87, - 0x57, - 0x33, - 0x5A, - 0x66, - 0x91, - 0x89, - 0x5F, - 0x76, - 0x04, - 0x7A, - 0x00, - 0x2C, - 0x36, - 0x89, - 0x91, - 0x75, - 0x59, - 0x46, - 0x42, - 0x42, - 0x3B, - 0x6B, - 0x5D, - 0x6C, - 0x6C, - 0x74, - 0x74, - 0x74, - 0x6E, - 0x74, - 0x3B, - 0x3B, - 0x8A, - 0x82, - 0x57, - 0x31, - 0x5A, - 0xA8, - 0xA5, - 0xA0, - 0xAB, - 0x8C, - 0xC0, - 0x32, - 0xCC, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xAF, - 0xAF, - 0x04, - 0xA5, - 0x00, - 0x2D, - 0xBE, - 0xA8, - 0x8B, - 0x5E, - 0x74, - 0x52, - 0xAC, - 0x8D, - 0xCA, - 0xB0, - 0xB0, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xE0, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0x8D, - 0xB6, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xB6, - 0xC2, - 0xCA, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x01, - 0x52, - 0x05, - 0x35, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x06, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x79, - 0x04, - 0x35, - 0x00, - 0x2A, - 0x79, - 0x79, - 0x79, - 0x49, - 0x52, - 0xA3, - 0xB2, - 0xB1, - 0x9B, - 0x8E, - 0xC3, - 0xAA, - 0xAA, - 0x8D, - 0xC6, - 0x8D, - 0x8D, - 0x80, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xCB, - 0xC3, - 0xC3, - 0xAA, - 0xAC, - 0xAC, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0x8D, - 0x80, - 0x8D, - 0x04, - 0xA9, - 0x00, - 0x53, - 0x71, - 0xA9, - 0x71, - 0xB6, - 0xB0, - 0x71, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xB0, - 0x71, - 0xA9, - 0xA9, - 0x71, - 0x78, - 0xC1, - 0x78, - 0x78, - 0xC1, - 0xB7, - 0x78, - 0x78, - 0xC1, - 0x71, - 0x78, - 0x71, - 0x71, - 0x71, - 0x96, - 0x96, - 0x96, - 0x99, - 0xA2, - 0x94, - 0xED, - 0xFF, - 0x07, - 0x0F, - 0xF2, - 0x0F, - 0xF2, - 0x07, - 0xF2, - 0x07, - 0x07, - 0xEE, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0xEE, - 0x07, - 0xEE, - 0xEE, - 0xEE, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x07, - 0xFF, - 0xE9, - 0xF2, - 0x05, - 0xE9, - 0xF9, - 0xEC, - 0xEB, - 0xE8, - 0xE8, - 0xED, - 0xDB, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xED, - 0xFB, - 0xED, - 0x00, - 0x09, - 0xE1, - 0x04, - 0xD6, - 0x00, - 0x0A, - 0x4E, - 0x4E, - 0xDD, - 0xD6, - 0x88, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x04, - 0x83, - 0x01, - 0x77, - 0x0A, - 0x83, - 0x00, - 0x22, - 0x77, - 0x77, - 0x77, - 0x81, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x87, - 0x81, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x68, - 0x99, - 0x99, - 0x96, - 0x96, - 0x99, - 0x99, - 0x96, - 0x82, - 0x7D, - 0x31, - 0x5E, - 0x5B, - 0x91, - 0x45, - 0x89, - 0x06, - 0x7A, - 0x00, - 0x44, - 0x5F, - 0x89, - 0x91, - 0x66, - 0x29, - 0x9A, - 0x42, - 0x74, - 0x3B, - 0x6B, - 0x5D, - 0x6C, - 0x6C, - 0x6C, - 0x74, - 0x74, - 0x3B, - 0x56, - 0x3B, - 0x6C, - 0x6B, - 0x56, - 0x42, - 0x90, - 0xBC, - 0xA5, - 0xA0, - 0xAB, - 0x9F, - 0xC0, - 0xC0, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0xC0, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xD0, - 0xAF, - 0xD0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0x5E, - 0x74, - 0x86, - 0xAD, - 0x80, - 0xB0, - 0xB0, - 0xB5, - 0xA1, - 0xB5, - 0xB5, - 0xE0, - 0xB5, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0x05, - 0xB0, - 0x00, - 0x13, - 0xC6, - 0xA1, - 0xA1, - 0xC2, - 0xA1, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB0, - 0xA1, - 0xA1, - 0xCA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x06, - 0x35, - 0x00, - 0x4F, - 0x49, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x52, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0xB8, - 0xC3, - 0x80, - 0x8D, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC1, - 0x80, - 0xAA, - 0xAA, - 0xAA, - 0x97, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0x80, - 0x8D, - 0xA9, - 0xC6, - 0xC6, - 0xB0, - 0x71, - 0xC2, - 0xC2, - 0xC2, - 0x71, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xA9, - 0x71, - 0xA9, - 0xC1, - 0xB7, - 0xC1, - 0x78, - 0x78, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x1D, - 0x96, - 0x96, - 0x96, - 0x99, - 0x99, - 0x68, - 0x8F, - 0x6F, - 0xF8, - 0xFF, - 0xFF, - 0xFF, - 0x0F, - 0x07, - 0xF2, - 0xEE, - 0x07, - 0xEE, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0xEE, - 0xEE, - 0xEE, - 0x07, - 0xEE, - 0xEE, - 0x07, - 0x00, - 0x05, - 0xF2, - 0x00, - 0x12, - 0xFF, - 0xE9, - 0xF9, - 0xEC, - 0xF9, - 0xE8, - 0xF3, - 0xFB, - 0xDB, - 0xE1, - 0xED, - 0xED, - 0xDB, - 0xE8, - 0xE8, - 0xDB, - 0xE8, - 0xDB, - 0x05, - 0xE1, - 0x00, - 0x10, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xE1, - 0xD6, - 0xD6, - 0xDD, - 0xD6, - 0x46, - 0x4E, - 0x72, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x04, - 0x83, - 0x01, - 0x6A, - 0x0C, - 0x83, - 0x00, - 0x0C, - 0x69, - 0x83, - 0x83, - 0x81, - 0x57, - 0x81, - 0x77, - 0x81, - 0x77, - 0x81, - 0x81, - 0x81, - 0x05, - 0x87, - 0x00, - 0x3E, - 0x99, - 0x68, - 0x99, - 0x99, - 0x96, - 0x96, - 0x99, - 0x68, - 0x98, - 0x56, - 0x31, - 0x2E, - 0x90, - 0x75, - 0x89, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x7A, - 0x5F, - 0x5F, - 0x89, - 0x91, - 0x66, - 0x59, - 0x31, - 0x42, - 0x3B, - 0x6C, - 0x5D, - 0x5D, - 0x6C, - 0x3B, - 0x6C, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x56, - 0x6C, - 0x56, - 0x42, - 0x5E, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0xC0, - 0x85, - 0x85, - 0x8C, - 0x9F, - 0xAB, - 0xAB, - 0xA0, - 0x04, - 0xAF, - 0x00, - 0x1C, - 0xA5, - 0xAF, - 0xA5, - 0xA7, - 0x45, - 0xBC, - 0x59, - 0x6F, - 0x6B, - 0xC5, - 0xAA, - 0xB0, - 0xB0, - 0xA1, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xC9, - 0xB5, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0xA1, - 0x04, - 0xB0, - 0x01, - 0xA1, - 0x01, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xC9, - 0xC2, - 0xB5, - 0xB0, - 0xC6, - 0xC2, - 0xC2, - 0xB0, - 0xA1, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x52, - 0x35, - 0x86, - 0x0B, - 0x35, - 0x00, - 0x1C, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x52, - 0x86, - 0xA4, - 0x7E, - 0xB2, - 0xBF, - 0x9B, - 0xC3, - 0xC3, - 0xAA, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xAA, - 0xAA, - 0xAA, - 0x04, - 0xC3, - 0x00, - 0x2F, - 0xAC, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xC3, - 0xB7, - 0xB7, - 0xB7, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0x71, - 0xB0, - 0xB0, - 0x71, - 0xB6, - 0x71, - 0xB6, - 0xB0, - 0xB6, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xB6, - 0xA9, - 0x71, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0x78, - 0xC1, - 0x78, - 0x78, - 0x78, - 0x97, - 0x71, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x36, - 0x78, - 0x96, - 0xAD, - 0xA2, - 0x99, - 0x8F, - 0x99, - 0x9E, - 0x94, - 0x98, - 0x42, - 0xE6, - 0xE8, - 0xEC, - 0xFF, - 0xF2, - 0xF2, - 0xEE, - 0xEE, - 0xEE, - 0x08, - 0xFD, - 0x08, - 0xEE, - 0xEE, - 0x07, - 0x07, - 0xEE, - 0x07, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0xE9, - 0xFF, - 0xFF, - 0xEC, - 0xF9, - 0xEC, - 0xEB, - 0xF3, - 0xE8, - 0xE8, - 0xDB, - 0xE1, - 0xE1, - 0xFB, - 0xE8, - 0xE8, - 0xEB, - 0xD8, - 0xF3, - 0xED, - 0xDB, - 0x06, - 0xE1, - 0x00, - 0x23, - 0xD6, - 0xE1, - 0xB3, - 0xD6, - 0xDD, - 0xD6, - 0x72, - 0xD6, - 0x5E, - 0x6A, - 0x65, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x69, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x83, - 0x77, - 0x83, - 0x00, - 0x04, - 0x77, - 0x00, - 0x08, - 0x81, - 0x77, - 0x53, - 0x87, - 0x81, - 0x87, - 0x87, - 0x87, - 0x04, - 0x68, - 0x00, - 0x55, - 0x96, - 0x99, - 0x99, - 0x99, - 0x9E, - 0x53, - 0x74, - 0x42, - 0x5E, - 0x59, - 0x66, - 0xA8, - 0x89, - 0x36, - 0x5F, - 0x5F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x5F, - 0x89, - 0x91, - 0x5B, - 0x59, - 0x46, - 0x74, - 0x74, - 0x6B, - 0x5D, - 0x82, - 0x5D, - 0x4A, - 0x56, - 0x6C, - 0x6C, - 0x3B, - 0x56, - 0x6C, - 0x6E, - 0x42, - 0x5E, - 0xBC, - 0xA7, - 0xBD, - 0xB4, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x8C, - 0xB4, - 0xB4, - 0xA0, - 0xD0, - 0xAF, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xAF, - 0xA7, - 0xBE, - 0xA8, - 0x90, - 0x9A, - 0x4A, - 0xAE, - 0xAC, - 0x8D, - 0xB0, - 0xB0, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xC2, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x11, - 0x8D, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xB5, - 0xC2, - 0xB5, - 0xA1, - 0xA1, - 0x71, - 0x00, - 0x05, - 0xB0, - 0x00, - 0x00, - 0x0B, - 0x35, - 0x00, - 0x05, - 0x86, - 0x35, - 0x79, - 0x79, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x15, - 0x79, - 0x79, - 0x35, - 0x35, - 0x86, - 0x52, - 0xA3, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0x80, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xC1, - 0x8D, - 0x8D, - 0x00, - 0x04, - 0xAA, - 0x04, - 0xC3, - 0x00, - 0x28, - 0xAC, - 0xC5, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xC6, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0xA9, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0x71, - 0xB0, - 0x71, - 0xA9, - 0x71, - 0x71, - 0xC1, - 0x71, - 0x78, - 0x78, - 0xC1, - 0xB7, - 0x78, - 0xB8, - 0x05, - 0x78, - 0x00, - 0x09, - 0x71, - 0x71, - 0x71, - 0x78, - 0x96, - 0x78, - 0xA2, - 0xA2, - 0xA2, - 0x00, - 0x04, - 0x9E, - 0x00, - 0x0A, - 0x98, - 0x94, - 0x87, - 0x82, - 0x61, - 0x9A, - 0xE8, - 0xEC, - 0xF2, - 0x07, - 0x06, - 0xEE, - 0x00, - 0x30, - 0xE5, - 0xE5, - 0xF2, - 0xE5, - 0x0F, - 0xF2, - 0xF2, - 0xF2, - 0xE9, - 0xE9, - 0xE9, - 0xEC, - 0xEC, - 0xF9, - 0xEB, - 0xEB, - 0xE8, - 0xDB, - 0xE8, - 0xE1, - 0xED, - 0xD8, - 0xEB, - 0xE2, - 0xF9, - 0x0B, - 0xE8, - 0xD8, - 0xE8, - 0xE1, - 0xDB, - 0xE1, - 0xE1, - 0x90, - 0xE1, - 0xED, - 0xD6, - 0xD6, - 0xD6, - 0x46, - 0xD6, - 0xD6, - 0x4E, - 0x4E, - 0x72, - 0x6A, - 0x6A, - 0x65, - 0x0C, - 0x6A, - 0x00, - 0x0F, - 0x88, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x3C, - 0x83, - 0x83, - 0x83, - 0x77, - 0x83, - 0x77, - 0x81, - 0x77, - 0x00, - 0x05, - 0x81, - 0x00, - 0x28, - 0x87, - 0x87, - 0x87, - 0x68, - 0x99, - 0x99, - 0x96, - 0x99, - 0x99, - 0x68, - 0x98, - 0x82, - 0x34, - 0x31, - 0x9A, - 0x59, - 0x90, - 0x75, - 0x91, - 0x45, - 0x36, - 0x5F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x7A, - 0x7A, - 0x36, - 0x89, - 0x75, - 0x5B, - 0x5E, - 0x46, - 0x3B, - 0x3B, - 0x56, - 0x35, - 0x49, - 0x8A, - 0x05, - 0x6C, - 0x00, - 0x48, - 0x4A, - 0x34, - 0x9A, - 0x59, - 0xBC, - 0xA7, - 0xA0, - 0x9F, - 0xD5, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0x32, - 0xC0, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xD0, - 0xAF, - 0xD0, - 0xD0, - 0xA5, - 0xA7, - 0xA8, - 0x8B, - 0x9A, - 0x3B, - 0x52, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xB5, - 0xA1, - 0xE0, - 0xA1, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xA1, - 0xB6, - 0xCA, - 0xC9, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xC1, - 0xB0, - 0xB0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x35, - 0x52, - 0x79, - 0x35, - 0x35, - 0x49, - 0x00, - 0x07, - 0x35, - 0x00, - 0x18, - 0x49, - 0x35, - 0x35, - 0x35, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0xB1, - 0xC5, - 0xC3, - 0xC3, - 0x8D, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xA9, - 0xC1, - 0xC6, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0x04, - 0xC3, - 0x00, - 0x23, - 0xAC, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xC1, - 0xC1, - 0xC1, - 0x8D, - 0xA9, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0x71, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0x00, - 0x0A, - 0x78, - 0x00, - 0x0A, - 0x71, - 0x71, - 0x71, - 0x78, - 0x71, - 0x78, - 0x96, - 0xA2, - 0x99, - 0x99, - 0x05, - 0x9E, - 0x00, - 0x41, - 0x68, - 0x94, - 0x9E, - 0x9E, - 0x9E, - 0x98, - 0x74, - 0xDB, - 0xEC, - 0xE5, - 0xF2, - 0x07, - 0x08, - 0xEE, - 0x08, - 0xE5, - 0xE5, - 0xF2, - 0xE9, - 0x0F, - 0xF2, - 0x07, - 0xE9, - 0xF2, - 0xFF, - 0xE9, - 0xEC, - 0xEC, - 0xE2, - 0xE2, - 0xEB, - 0xE8, - 0xE8, - 0xED, - 0xE1, - 0xE8, - 0x0C, - 0xE2, - 0xE9, - 0xE2, - 0xE2, - 0xE2, - 0xE8, - 0xE8, - 0xDB, - 0xDB, - 0xE1, - 0x90, - 0xE1, - 0xE1, - 0x84, - 0xE1, - 0xD6, - 0x5E, - 0xDD, - 0x72, - 0x46, - 0x46, - 0x9A, - 0x6A, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x65, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x51, - 0x83, - 0x65, - 0x6A, - 0x83, - 0x72, - 0x6A, - 0x50, - 0x6A, - 0x50, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x69, - 0x83, - 0x69, - 0x69, - 0x77, - 0x77, - 0x77, - 0x81, - 0x77, - 0x81, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x68, - 0x99, - 0x68, - 0x99, - 0x68, - 0x9E, - 0x98, - 0x7D, - 0x34, - 0x31, - 0x9A, - 0x59, - 0x8B, - 0x8B, - 0x75, - 0x45, - 0x89, - 0x36, - 0x5F, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x36, - 0x7C, - 0x75, - 0x5A, - 0x2E, - 0x42, - 0x42, - 0x3B, - 0x4A, - 0x8F, - 0x9C, - 0x49, - 0x6B, - 0x6B, - 0x6C, - 0x6B, - 0x3B, - 0x42, - 0x6F, - 0xBB, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x8C, - 0xC0, - 0x00, - 0x04, - 0x85, - 0x00, - 0x08, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xAF, - 0xA5, - 0x04, - 0xAF, - 0x00, - 0x0D, - 0xA0, - 0xAF, - 0xA5, - 0xBE, - 0xBC, - 0x5E, - 0x42, - 0x52, - 0xAC, - 0x80, - 0xA9, - 0xC6, - 0xA1, - 0x00, - 0x06, - 0xB5, - 0x04, - 0xB0, - 0x00, - 0x17, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xCA, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0xB0, - 0xB0, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x01, - 0x79, - 0x05, - 0x35, - 0x00, - 0x03, - 0x79, - 0x49, - 0x86, - 0x00, - 0x0A, - 0x35, - 0x00, - 0x51, - 0x86, - 0x52, - 0xA4, - 0xA3, - 0xBF, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xAA, - 0xAA, - 0x80, - 0x80, - 0xAA, - 0xCB, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0x97, - 0xB7, - 0xAA, - 0xC1, - 0x80, - 0xB7, - 0xC1, - 0xA9, - 0xC6, - 0xC1, - 0xA9, - 0xC1, - 0x71, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0x71, - 0x78, - 0xC1, - 0xA9, - 0xB7, - 0x78, - 0xB8, - 0x78, - 0x97, - 0x96, - 0xC1, - 0x78, - 0x71, - 0x78, - 0x71, - 0x71, - 0x71, - 0x96, - 0x78, - 0x96, - 0xA2, - 0xA2, - 0x9E, - 0x8F, - 0x00, - 0x05, - 0x98, - 0x00, - 0x16, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x42, - 0xE8, - 0xE5, - 0xF2, - 0xE5, - 0x07, - 0xEE, - 0xF2, - 0xF2, - 0xE9, - 0xF2, - 0xE5, - 0xE9, - 0xE9, - 0xF2, - 0x04, - 0xE9, - 0x00, - 0x20, - 0xF9, - 0xF9, - 0xE2, - 0xEB, - 0xEB, - 0xEB, - 0xED, - 0xED, - 0xE2, - 0xE9, - 0xE9, - 0x0A, - 0xE9, - 0xE2, - 0xF9, - 0xE2, - 0x04, - 0xE8, - 0xE8, - 0xDB, - 0xDB, - 0xDB, - 0x5A, - 0xE1, - 0xE1, - 0xE1, - 0x84, - 0xE1, - 0xD6, - 0x46, - 0x46, - 0x62, - 0x04, - 0x65, - 0x00, - 0x14, - 0x50, - 0x6A, - 0x65, - 0x65, - 0x6A, - 0x50, - 0x65, - 0x6A, - 0x50, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x3C, - 0x50, - 0x6A, - 0x3C, - 0x83, - 0x6A, - 0x6A, - 0x04, - 0x83, - 0x00, - 0x5A, - 0x77, - 0x77, - 0x83, - 0x77, - 0x77, - 0x81, - 0x81, - 0x81, - 0x87, - 0x87, - 0x87, - 0x68, - 0x99, - 0x99, - 0x68, - 0x99, - 0x68, - 0x87, - 0x7D, - 0x88, - 0x34, - 0x31, - 0x5E, - 0x59, - 0x90, - 0x8B, - 0x66, - 0x75, - 0x45, - 0x89, - 0x5F, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x5F, - 0x89, - 0x89, - 0x75, - 0x90, - 0x2E, - 0x34, - 0x3B, - 0x3B, - 0x49, - 0xA3, - 0x9C, - 0x5D, - 0x49, - 0x6B, - 0x6B, - 0x3B, - 0x42, - 0xB3, - 0x8B, - 0xBE, - 0xD0, - 0xA0, - 0x8C, - 0x8C, - 0xC0, - 0x85, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x9F, - 0x9F, - 0x7F, - 0xBD, - 0xA0, - 0xA5, - 0xAF, - 0xA5, - 0xD0, - 0xAF, - 0xBD, - 0xA0, - 0xD0, - 0xD0, - 0xBE, - 0xA8, - 0xBB, - 0x6F, - 0x6B, - 0x9B, - 0x8D, - 0xB0, - 0x04, - 0xA1, - 0x01, - 0xC9, - 0x01, - 0xE0, - 0x04, - 0xA1, - 0x00, - 0x0B, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0x71, - 0xB5, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x09, - 0xC2, - 0xA1, - 0xA9, - 0xC1, - 0x8D, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x01, - 0x35, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x0E, - 0x79, - 0x79, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x35, - 0x49, - 0x04, - 0x35, - 0x00, - 0x1E, - 0xA4, - 0x52, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xC3, - 0xC3, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0x80, - 0xAA, - 0x80, - 0xAA, - 0xC3, - 0xAA, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xB8, - 0x06, - 0xAC, - 0x00, - 0x47, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB7, - 0x97, - 0xB7, - 0x80, - 0xB7, - 0xB7, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xB7, - 0x78, - 0x97, - 0x78, - 0x78, - 0xB8, - 0xB8, - 0x78, - 0x78, - 0x71, - 0x78, - 0x71, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x99, - 0x9E, - 0x9E, - 0x9E, - 0x98, - 0x87, - 0x82, - 0x9E, - 0x98, - 0x87, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x57, - 0xD6, - 0xE2, - 0x07, - 0x0F, - 0x07, - 0x07, - 0xE5, - 0xFF, - 0xFF, - 0xEC, - 0xEC, - 0xE9, - 0xE9, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x2F, - 0xEB, - 0xEB, - 0xE8, - 0xEB, - 0xEB, - 0xF8, - 0xE8, - 0xE8, - 0xEC, - 0xFF, - 0xDE, - 0xE9, - 0xFF, - 0xE2, - 0xE9, - 0xF9, - 0xD8, - 0xD8, - 0xE8, - 0xD8, - 0xE1, - 0xDB, - 0xBC, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0x84, - 0x84, - 0xD6, - 0x84, - 0x4E, - 0x65, - 0x72, - 0x62, - 0x65, - 0x6A, - 0x65, - 0x50, - 0x65, - 0x65, - 0x65, - 0x6A, - 0x65, - 0x50, - 0x50, - 0x65, - 0x00, - 0x05, - 0x50, - 0x00, - 0x12, - 0x6A, - 0x6A, - 0x88, - 0x6A, - 0x83, - 0x83, - 0x3C, - 0x83, - 0x83, - 0x77, - 0x83, - 0x77, - 0x77, - 0x81, - 0x77, - 0x81, - 0x87, - 0x81, - 0x04, - 0x68, - 0x00, - 0x6F, - 0x99, - 0x68, - 0x87, - 0x53, - 0x7D, - 0x34, - 0x31, - 0x46, - 0x5E, - 0x59, - 0x90, - 0x8B, - 0x8B, - 0x66, - 0x91, - 0x45, - 0x89, - 0x36, - 0x4F, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x89, - 0x91, - 0x5B, - 0x5A, - 0x4E, - 0xBA, - 0x56, - 0x56, - 0x35, - 0x68, - 0x8F, - 0xB9, - 0x94, - 0x6B, - 0x6B, - 0x42, - 0x5E, - 0xBC, - 0xD8, - 0xAF, - 0xBD, - 0x9F, - 0x8C, - 0x32, - 0xCC, - 0x2D, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xA5, - 0xAF, - 0xA0, - 0xAF, - 0xBD, - 0xA0, - 0xBD, - 0xA5, - 0xA7, - 0xA8, - 0xBC, - 0x9A, - 0x6C, - 0xB2, - 0xAA, - 0xB0, - 0x8D, - 0xA1, - 0xA1, - 0xC9, - 0xB5, - 0xA1, - 0xE0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0xB0, - 0xC6, - 0xA1, - 0x8D, - 0xA1, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0xC1, - 0x80, - 0x80, - 0xC1, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x79, - 0x35, - 0x35, - 0x79, - 0x11, - 0x35, - 0x00, - 0x43, - 0x52, - 0x35, - 0x86, - 0x35, - 0x52, - 0x52, - 0x7E, - 0xB2, - 0x9B, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0xB7, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xB7, - 0xB7, - 0xC1, - 0xB7, - 0x78, - 0x78, - 0xC1, - 0x78, - 0x78, - 0xB7, - 0x97, - 0x97, - 0x97, - 0xAD, - 0x97, - 0x00, - 0x05, - 0x78, - 0x00, - 0x0A, - 0x71, - 0x71, - 0x78, - 0x78, - 0x78, - 0x96, - 0x96, - 0x99, - 0x8F, - 0x9E, - 0x04, - 0x98, - 0x00, - 0x51, - 0x9E, - 0x98, - 0x87, - 0x98, - 0x98, - 0x98, - 0x87, - 0x81, - 0x87, - 0x87, - 0x87, - 0x53, - 0x69, - 0xE8, - 0xE5, - 0xF2, - 0xF2, - 0x07, - 0xF2, - 0xE9, - 0xFF, - 0xEC, - 0xEC, - 0xEC, - 0xF9, - 0xEC, - 0xEB, - 0xEB, - 0xE2, - 0xEB, - 0xEB, - 0xE2, - 0xEB, - 0xEB, - 0xE8, - 0xEC, - 0xF2, - 0xDE, - 0x06, - 0x06, - 0xDE, - 0x05, - 0xDE, - 0xD0, - 0x0A, - 0x0B, - 0xD8, - 0x04, - 0xD8, - 0xDB, - 0xDB, - 0xDB, - 0xBC, - 0xDB, - 0x5A, - 0xE1, - 0xDD, - 0xD6, - 0xDD, - 0x3D, - 0x62, - 0x65, - 0x65, - 0x65, - 0x62, - 0x65, - 0x43, - 0x43, - 0x65, - 0x65, - 0x65, - 0x43, - 0x65, - 0x65, - 0x50, - 0x72, - 0x65, - 0x50, - 0x6A, - 0x6A, - 0x50, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x24, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x69, - 0x69, - 0x77, - 0x77, - 0x81, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x99, - 0x99, - 0x68, - 0x68, - 0x98, - 0x57, - 0x34, - 0x31, - 0x46, - 0x59, - 0x59, - 0xBB, - 0x8B, - 0x66, - 0x5B, - 0x75, - 0x64, - 0x89, - 0x89, - 0x36, - 0x4F, - 0x04, - 0x7A, - 0x00, - 0x3A, - 0x4F, - 0x5F, - 0x7C, - 0x64, - 0x5B, - 0x59, - 0x46, - 0x42, - 0x4A, - 0x6B, - 0x52, - 0xA3, - 0x8F, - 0x86, - 0x9C, - 0x6C, - 0x6F, - 0xB3, - 0xBC, - 0xBE, - 0xA0, - 0xBD, - 0x8C, - 0xC0, - 0xC0, - 0xC0, - 0x85, - 0x85, - 0x32, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xAF, - 0xA5, - 0xD0, - 0xD0, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xA0, - 0xA0, - 0xD0, - 0xA7, - 0x8B, - 0x59, - 0x6E, - 0x7E, - 0x8E, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x09, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0x8D, - 0x00, - 0x07, - 0xA1, - 0x00, - 0x09, - 0xB6, - 0xC2, - 0xA1, - 0x8D, - 0x80, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x46, - 0x79, - 0x35, - 0x49, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xB2, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0xC6, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xAC, - 0xC3, - 0xAA, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xB8, - 0xC3, - 0x97, - 0xB8, - 0xB8, - 0x97, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB7, - 0xB7, - 0xB7, - 0x97, - 0x78, - 0x06, - 0x97, - 0x00, - 0x1F, - 0xB8, - 0xB8, - 0x97, - 0x96, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0xA2, - 0x99, - 0x8F, - 0x9E, - 0x9E, - 0x98, - 0x9E, - 0x82, - 0x98, - 0x98, - 0x98, - 0x9E, - 0x87, - 0x53, - 0x87, - 0x87, - 0x98, - 0x00, - 0x04, - 0x53, - 0x00, - 0x6F, - 0x57, - 0xDB, - 0xF2, - 0x0F, - 0xE9, - 0xF2, - 0xF2, - 0xE9, - 0xE9, - 0xF9, - 0xF8, - 0xD8, - 0xE2, - 0xEB, - 0xEB, - 0xE2, - 0xE2, - 0xEC, - 0xE9, - 0xEC, - 0xE9, - 0xEB, - 0xE9, - 0xEE, - 0xDE, - 0x06, - 0xDE, - 0xF2, - 0xF2, - 0xE9, - 0xE2, - 0x05, - 0xE2, - 0xEB, - 0xD8, - 0xE8, - 0xE8, - 0xDB, - 0xDB, - 0xBC, - 0xBB, - 0xE1, - 0x84, - 0xE1, - 0x84, - 0xD6, - 0x62, - 0x62, - 0x65, - 0x62, - 0x62, - 0x65, - 0x65, - 0x62, - 0x62, - 0x65, - 0x43, - 0x65, - 0x4E, - 0x65, - 0x43, - 0x65, - 0x65, - 0x65, - 0x43, - 0x65, - 0x65, - 0x6A, - 0x50, - 0x50, - 0x50, - 0x3C, - 0x6A, - 0x69, - 0x83, - 0x88, - 0x83, - 0x83, - 0x69, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x99, - 0x99, - 0x68, - 0x68, - 0x68, - 0x7D, - 0x69, - 0x33, - 0x31, - 0x5E, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0xBC, - 0x66, - 0x66, - 0x66, - 0x64, - 0x89, - 0x89, - 0x36, - 0x4F, - 0x4F, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x16, - 0x89, - 0x45, - 0x91, - 0x5B, - 0x2E, - 0x31, - 0x34, - 0x3B, - 0x5D, - 0x52, - 0xBF, - 0x7E, - 0x94, - 0x4A, - 0x6F, - 0xB3, - 0xBC, - 0xD0, - 0xAF, - 0x9F, - 0x9F, - 0xC0, - 0x04, - 0x85, - 0x00, - 0x21, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x7F, - 0x76, - 0xA0, - 0xAF, - 0xA5, - 0xD0, - 0xA0, - 0xBD, - 0xA0, - 0xB4, - 0xB4, - 0xA0, - 0xAF, - 0xBE, - 0xA8, - 0x59, - 0x6F, - 0xB9, - 0xAC, - 0x8D, - 0x8D, - 0xCA, - 0x71, - 0xA1, - 0xB5, - 0xA1, - 0xB5, - 0xB5, - 0x71, - 0x00, - 0x05, - 0xB0, - 0x00, - 0x15, - 0x8D, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xCA, - 0xA1, - 0xB0, - 0x8D, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x79, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x14, - 0xB9, - 0x79, - 0x35, - 0x35, - 0xA4, - 0x52, - 0xB2, - 0xB2, - 0x7E, - 0xBF, - 0xB1, - 0xC5, - 0xB8, - 0xC3, - 0xC1, - 0xAA, - 0xC1, - 0xAA, - 0xB7, - 0xAA, - 0x06, - 0xC3, - 0x00, - 0x15, - 0xB8, - 0xC3, - 0xAC, - 0xAA, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xB8, - 0xAC, - 0x00, - 0x05, - 0xB8, - 0x00, - 0x0F, - 0x97, - 0x97, - 0xB8, - 0x97, - 0x97, - 0xB7, - 0x97, - 0xB8, - 0x97, - 0x97, - 0xB8, - 0x97, - 0x96, - 0xB8, - 0x96, - 0x00, - 0x05, - 0x78, - 0x00, - 0x4D, - 0x71, - 0x78, - 0x78, - 0x78, - 0x96, - 0x97, - 0x96, - 0x99, - 0x99, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x82, - 0x98, - 0x81, - 0x98, - 0x53, - 0x87, - 0x53, - 0x9E, - 0x81, - 0x81, - 0x87, - 0x87, - 0x81, - 0x81, - 0x53, - 0x81, - 0x87, - 0xB3, - 0xEC, - 0xF2, - 0xFF, - 0xFF, - 0xEC, - 0xE9, - 0xEC, - 0xE9, - 0xEB, - 0xEC, - 0xE2, - 0xEC, - 0xE2, - 0xEC, - 0xE9, - 0xE9, - 0xE9, - 0xE5, - 0xE9, - 0xF2, - 0xEE, - 0xEA, - 0xEA, - 0xDE, - 0xF2, - 0xDE, - 0x05, - 0xDE, - 0xE2, - 0xE9, - 0xE2, - 0x0B, - 0xD8, - 0xD8, - 0xD8, - 0xDB, - 0xDB, - 0xDB, - 0x8B, - 0xE1, - 0x5A, - 0xD6, - 0x84, - 0x38, - 0x62, - 0x67, - 0x00, - 0x05, - 0x62, - 0x00, - 0x2D, - 0x65, - 0x62, - 0x62, - 0x62, - 0x65, - 0x62, - 0x65, - 0x62, - 0x72, - 0x62, - 0x65, - 0x72, - 0x65, - 0x72, - 0x65, - 0x6A, - 0x6A, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x50, - 0x83, - 0x83, - 0x83, - 0x77, - 0x77, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x99, - 0x99, - 0x68, - 0x87, - 0x77, - 0x69, - 0x34, - 0x46, - 0x5E, - 0x59, - 0x90, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x54, - 0x5B, - 0x66, - 0x75, - 0x91, - 0x64, - 0x36, - 0x36, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x4F, - 0x4F, - 0x36, - 0x64, - 0x75, - 0x5A, - 0x2E, - 0x31, - 0x56, - 0x6C, - 0x5D, - 0x7E, - 0x7E, - 0x7E, - 0x5D, - 0x42, - 0x59, - 0xBC, - 0xA7, - 0xBD, - 0xAB, - 0x8C, - 0x8C, - 0x85, - 0xCC, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA5, - 0xA7, - 0xAF, - 0xAF, - 0xAF, - 0xBD, - 0xB4, - 0xB4, - 0xB4, - 0xBD, - 0xA0, - 0xD8, - 0xBE, - 0xBB, - 0x46, - 0x5D, - 0x9B, - 0x71, - 0x8D, - 0xB0, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0x8D, - 0xA9, - 0xC6, - 0x8D, - 0xB0, - 0xB0, - 0x71, - 0xB0, - 0xB0, - 0xB0, - 0x04, - 0xA1, - 0x00, - 0x09, - 0x71, - 0xA1, - 0xB0, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x79, - 0x35, - 0x86, - 0x35, - 0x35, - 0x79, - 0x86, - 0x35, - 0x35, - 0x79, - 0x79, - 0x00, - 0x04, - 0x35, - 0x00, - 0x2B, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x52, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xB7, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x1F, - 0xB8, - 0xAC, - 0xAD, - 0xAC, - 0xB8, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xAD, - 0xB8, - 0xAC, - 0x97, - 0xB8, - 0xAD, - 0x97, - 0x97, - 0xB8, - 0xAD, - 0x97, - 0x96, - 0xB8, - 0xAD, - 0x78, - 0x96, - 0x71, - 0x78, - 0x78, - 0x78, - 0x71, - 0x00, - 0x04, - 0x78, - 0x00, - 0x08, - 0xA2, - 0xA2, - 0x99, - 0x8F, - 0x9E, - 0x98, - 0x98, - 0x82, - 0x04, - 0x98, - 0x00, - 0x11, - 0x81, - 0x98, - 0x87, - 0x87, - 0x81, - 0x87, - 0x81, - 0x81, - 0x87, - 0x81, - 0x81, - 0x81, - 0x77, - 0x81, - 0x34, - 0xE1, - 0xE8, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x28, - 0xF8, - 0xA8, - 0xE8, - 0xD8, - 0xE8, - 0xD8, - 0xD0, - 0xEC, - 0xE9, - 0xE9, - 0xE5, - 0xDE, - 0xF2, - 0xEA, - 0xEA, - 0x08, - 0xDE, - 0x07, - 0xDE, - 0xDE, - 0x05, - 0xDE, - 0xD0, - 0x0A, - 0x0C, - 0xD8, - 0xEB, - 0xE8, - 0xD8, - 0xBC, - 0xBC, - 0xE1, - 0xBC, - 0xE1, - 0x84, - 0xE1, - 0x84, - 0x62, - 0x62, - 0x67, - 0x04, - 0x62, - 0x01, - 0x67, - 0x05, - 0x62, - 0x00, - 0x5D, - 0x43, - 0x62, - 0x43, - 0x62, - 0x4E, - 0x65, - 0x43, - 0x65, - 0x50, - 0x65, - 0x50, - 0x65, - 0x6A, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x3C, - 0x83, - 0x83, - 0x77, - 0x81, - 0x81, - 0x87, - 0x87, - 0x87, - 0x68, - 0x68, - 0x99, - 0x68, - 0x53, - 0x7D, - 0x33, - 0x31, - 0x31, - 0x5E, - 0x59, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0xBC, - 0x66, - 0x66, - 0x5B, - 0x4D, - 0x91, - 0x89, - 0x89, - 0x36, - 0x28, - 0x4F, - 0x7A, - 0x7A, - 0x5F, - 0x4F, - 0x36, - 0x64, - 0x75, - 0x5A, - 0x46, - 0x33, - 0x6C, - 0x56, - 0x52, - 0x7E, - 0x9B, - 0x35, - 0x31, - 0x59, - 0xBC, - 0xD0, - 0xBD, - 0x9F, - 0xD5, - 0xC0, - 0x32, - 0xCC, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x7F, - 0xBD, - 0x76, - 0xAF, - 0xA5, - 0xD0, - 0xAF, - 0xAF, - 0xBD, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x0C, - 0xA0, - 0xD0, - 0xBE, - 0x8B, - 0x46, - 0x3B, - 0xB1, - 0x80, - 0x8D, - 0x71, - 0xA1, - 0xB5, - 0x05, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x16, - 0x8D, - 0xA9, - 0x8D, - 0xB0, - 0xB0, - 0x8D, - 0xA1, - 0xA9, - 0xB0, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xC6, - 0x8D, - 0x80, - 0x80, - 0x80, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x28, - 0x49, - 0x79, - 0x49, - 0x35, - 0x49, - 0x49, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0xAC, - 0xB8, - 0xC3, - 0xB7, - 0xC1, - 0xC3, - 0xB7, - 0x05, - 0xC3, - 0x00, - 0x17, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xAD, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xAD, - 0xAC, - 0x00, - 0x09, - 0xAD, - 0x01, - 0xB8, - 0x06, - 0xAD, - 0x00, - 0x05, - 0x96, - 0x97, - 0x97, - 0x78, - 0x96, - 0x00, - 0x06, - 0x78, - 0x00, - 0x18, - 0x96, - 0x96, - 0x96, - 0x99, - 0x9E, - 0x98, - 0x9E, - 0x98, - 0x82, - 0x98, - 0x98, - 0x81, - 0x98, - 0x98, - 0x9E, - 0x53, - 0x81, - 0x98, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x81, - 0x04, - 0x77, - 0x00, - 0x20, - 0x83, - 0x77, - 0x6A, - 0x83, - 0x33, - 0x3C, - 0x3C, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x3C, - 0x43, - 0x27, - 0x8B, - 0xD8, - 0xEC, - 0xDE, - 0x07, - 0xFD, - 0xDE, - 0xDE, - 0x08, - 0x06, - 0xDE, - 0xDE, - 0x0A, - 0xF9, - 0xD0, - 0xD0, - 0x04, - 0xD8, - 0x00, - 0x12, - 0xE8, - 0xD8, - 0xE1, - 0xBB, - 0x5B, - 0xB3, - 0x84, - 0x39, - 0x67, - 0x84, - 0x4B, - 0x62, - 0x67, - 0x67, - 0x67, - 0x4B, - 0x67, - 0x67, - 0x06, - 0x62, - 0x00, - 0x18, - 0x65, - 0x65, - 0x62, - 0x65, - 0x43, - 0x65, - 0x72, - 0x50, - 0x50, - 0x72, - 0x6A, - 0x6A, - 0x88, - 0x3C, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x77, - 0x83, - 0x87, - 0x81, - 0x87, - 0x87, - 0x04, - 0x68, - 0x00, - 0x08, - 0x87, - 0x57, - 0x34, - 0x31, - 0x31, - 0x5E, - 0x5E, - 0xB3, - 0x06, - 0x8B, - 0x00, - 0x1F, - 0x5B, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x89, - 0x36, - 0x36, - 0x4F, - 0x5F, - 0x4F, - 0x5F, - 0x7C, - 0x45, - 0x63, - 0x5B, - 0x5A, - 0x2E, - 0x34, - 0x56, - 0x49, - 0x52, - 0x7E, - 0x5D, - 0x42, - 0xB3, - 0xA8, - 0xA5, - 0xA0, - 0x9F, - 0x8C, - 0x00, - 0x04, - 0x85, - 0x00, - 0x1C, - 0xC0, - 0x85, - 0x8C, - 0x9F, - 0x9F, - 0x7F, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xA0, - 0xAF, - 0xBE, - 0xBC, - 0x5E, - 0x6E, - 0x7E, - 0x80, - 0x8D, - 0xCA, - 0x8D, - 0x06, - 0xA1, - 0x00, - 0x1A, - 0xB0, - 0xA1, - 0xB0, - 0xA9, - 0xB0, - 0x8D, - 0xB0, - 0x8D, - 0xB0, - 0xC6, - 0x8D, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xC6, - 0xC6, - 0x8D, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x30, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x86, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xBF, - 0xBF, - 0xBF, - 0x9B, - 0xAD, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xAC, - 0xC5, - 0xC3, - 0x04, - 0xAC, - 0x00, - 0x31, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0x97, - 0xC5, - 0xAD, - 0xAD, - 0xAC, - 0xAD, - 0xC5, - 0xAD, - 0xAC, - 0xAD, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xAD, - 0xC5, - 0xA2, - 0xAD, - 0xC5, - 0x96, - 0xAD, - 0xB8, - 0x97, - 0x97, - 0xB8, - 0xB7, - 0x78, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x96, - 0x78, - 0x96, - 0xA2, - 0x9E, - 0x99, - 0x9E, - 0x00, - 0x06, - 0x98, - 0x00, - 0x09, - 0x87, - 0x87, - 0x98, - 0x81, - 0x98, - 0x87, - 0x81, - 0x81, - 0x98, - 0x00, - 0x05, - 0x81, - 0x04, - 0x77, - 0x04, - 0x83, - 0x00, - 0x04, - 0x3C, - 0x83, - 0x6A, - 0x6A, - 0x04, - 0x50, - 0x00, - 0x24, - 0x43, - 0x43, - 0x65, - 0x62, - 0x62, - 0x39, - 0xBD, - 0xEA, - 0x06, - 0x08, - 0xDE, - 0xD5, - 0x06, - 0xDE, - 0x05, - 0xDE, - 0xE9, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xD8, - 0xEB, - 0xD8, - 0xBE, - 0xE1, - 0x63, - 0x5A, - 0xB3, - 0x84, - 0x67, - 0x37, - 0x67, - 0x37, - 0x67, - 0x62, - 0x05, - 0x67, - 0x00, - 0x03, - 0x62, - 0x67, - 0x67, - 0x00, - 0x04, - 0x62, - 0x00, - 0x87, - 0x43, - 0x62, - 0x65, - 0x43, - 0x72, - 0x65, - 0x50, - 0x65, - 0x50, - 0x50, - 0x50, - 0x88, - 0x6A, - 0x3C, - 0x83, - 0x83, - 0x83, - 0x81, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x87, - 0x81, - 0x81, - 0x53, - 0x57, - 0x34, - 0x46, - 0x46, - 0x46, - 0x59, - 0x59, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x8B, - 0x66, - 0x8B, - 0x5B, - 0x5B, - 0x4D, - 0x91, - 0x91, - 0x89, - 0x7C, - 0x36, - 0x5F, - 0x4F, - 0x4F, - 0x5F, - 0x7C, - 0x89, - 0x75, - 0x4D, - 0x2E, - 0x2E, - 0x22, - 0x56, - 0x5D, - 0x94, - 0x49, - 0x6F, - 0x59, - 0xA8, - 0xA5, - 0xBD, - 0x9F, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x8C, - 0x55, - 0xAB, - 0xA0, - 0xA0, - 0xA5, - 0xA5, - 0xD0, - 0xD0, - 0xA0, - 0xBD, - 0x7F, - 0xDE, - 0x9F, - 0xB4, - 0xBD, - 0xA0, - 0xBE, - 0xBC, - 0x5E, - 0x42, - 0xB2, - 0xAC, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB6, - 0xB0, - 0x8D, - 0xB0, - 0xC6, - 0xB0, - 0xCA, - 0xB0, - 0x8D, - 0xB0, - 0x71, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xA1, - 0xA1, - 0xA1, - 0x71, - 0xA1, - 0x8D, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x79, - 0x86, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0x9B, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0xC3, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0xAD, - 0xC5, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAE, - 0xAD, - 0xAE, - 0xAD, - 0xAE, - 0xAD, - 0xAE, - 0xAE, - 0xA2, - 0xC5, - 0xA2, - 0xC5, - 0xAE, - 0xAD, - 0xAD, - 0xAD, - 0x97, - 0x96, - 0xB7, - 0x78, - 0x96, - 0x07, - 0x78, - 0x00, - 0x1D, - 0x96, - 0xC5, - 0x99, - 0x99, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x87, - 0x98, - 0x81, - 0x87, - 0x81, - 0x87, - 0x81, - 0x77, - 0x77, - 0x81, - 0x81, - 0x77, - 0x77, - 0x77, - 0x00, - 0x04, - 0x83, - 0x00, - 0x1A, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x65, - 0x65, - 0x50, - 0x65, - 0x43, - 0x65, - 0x43, - 0x65, - 0xD8, - 0xEA, - 0xC0, - 0x08, - 0xEA, - 0xEA, - 0x06, - 0xDE, - 0xDE, - 0xE9, - 0xE9, - 0x04, - 0xE2, - 0x00, - 0x11, - 0xD8, - 0xD8, - 0xD8, - 0xDB, - 0xBE, - 0xE1, - 0x90, - 0x5A, - 0x5A, - 0x84, - 0x67, - 0x67, - 0x84, - 0x67, - 0x84, - 0x67, - 0x37, - 0x00, - 0x06, - 0x67, - 0x00, - 0x12, - 0x62, - 0x67, - 0x62, - 0x62, - 0x62, - 0x43, - 0x4E, - 0x65, - 0x62, - 0x43, - 0x65, - 0x72, - 0x50, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x04, - 0x83, - 0x00, - 0x11, - 0x81, - 0x81, - 0x81, - 0x87, - 0x81, - 0x81, - 0x83, - 0x77, - 0x22, - 0x22, - 0x33, - 0x2E, - 0x5E, - 0x59, - 0x5E, - 0x59, - 0x90, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x44, - 0xBB, - 0x5B, - 0x8B, - 0x5A, - 0x5B, - 0x66, - 0x75, - 0x64, - 0x89, - 0x89, - 0x28, - 0x5F, - 0x5F, - 0x4F, - 0x36, - 0x7C, - 0x64, - 0x4D, - 0x5B, - 0x2E, - 0x6F, - 0x34, - 0x6B, - 0x49, - 0x61, - 0x6F, - 0xBB, - 0xA8, - 0xD0, - 0xB4, - 0x9F, - 0xC0, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xA0, - 0xA0, - 0xA0, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0xB4, - 0xAF, - 0xA5, - 0xA8, - 0x59, - 0x42, - 0x52, - 0xAC, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x18, - 0xB0, - 0xB0, - 0xA1, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xB6, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x00, - 0x01, - 0x35, - 0x01, - 0x79, - 0x05, - 0x35, - 0x00, - 0x27, - 0x79, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0xA4, - 0x52, - 0x7E, - 0x7E, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x04, - 0xB8, - 0x00, - 0x33, - 0xC3, - 0xB8, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAD, - 0xAD, - 0xAC, - 0xAD, - 0xAE, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xA2, - 0xAE, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0xB8, - 0x97, - 0xB8, - 0x78, - 0xA9, - 0x78, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0x99, - 0x8F, - 0x9E, - 0x9E, - 0x9E, - 0x00, - 0x04, - 0x98, - 0x00, - 0x0A, - 0x82, - 0x87, - 0x98, - 0x87, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x98, - 0x05, - 0x81, - 0x00, - 0x13, - 0x77, - 0x77, - 0x83, - 0x77, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x6A, - 0x83, - 0x6A, - 0x50, - 0x50, - 0x6A, - 0x50, - 0x65, - 0x65, - 0x43, - 0x65, - 0x00, - 0x04, - 0x62, - 0x00, - 0x17, - 0x5B, - 0xEA, - 0xEE, - 0xEA, - 0xDE, - 0x14, - 0xDE, - 0x06, - 0xDE, - 0x06, - 0xD0, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xD0, - 0xE2, - 0xD8, - 0xD8, - 0xBC, - 0x91, - 0x84, - 0xDB, - 0x00, - 0x05, - 0x84, - 0x00, - 0x0D, - 0x37, - 0x84, - 0x84, - 0x67, - 0x84, - 0x67, - 0x37, - 0x84, - 0x67, - 0x62, - 0x67, - 0x62, - 0x67, - 0x00, - 0x04, - 0x62, - 0x00, - 0x22, - 0x43, - 0x62, - 0x43, - 0x43, - 0x65, - 0x65, - 0x50, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x81, - 0x81, - 0x77, - 0x81, - 0x77, - 0x3C, - 0x88, - 0x72, - 0x33, - 0x31, - 0x38, - 0x2E, - 0x59, - 0x5E, - 0x59, - 0x59, - 0x59, - 0x90, - 0x90, - 0x04, - 0x8B, - 0x00, - 0x5E, - 0x90, - 0x8B, - 0x59, - 0x5B, - 0x5B, - 0x66, - 0x91, - 0x64, - 0x89, - 0x7C, - 0x4F, - 0x36, - 0x7C, - 0x5F, - 0x89, - 0x63, - 0x4D, - 0x5A, - 0x2E, - 0x33, - 0x22, - 0x56, - 0x42, - 0x9A, - 0x8B, - 0xA8, - 0xAF, - 0xBD, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0xCC, - 0x85, - 0xC0, - 0x8C, - 0x55, - 0x9F, - 0x7F, - 0x7F, - 0xA0, - 0xA5, - 0xAF, - 0xA5, - 0xAF, - 0xAF, - 0x7F, - 0xB4, - 0xB4, - 0xDE, - 0xAB, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0x90, - 0x6F, - 0x35, - 0x97, - 0x80, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0xA1, - 0x8D, - 0xB0, - 0xA9, - 0xB0, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0x71, - 0xB0, - 0xA1, - 0xA1, - 0x8D, - 0x8D, - 0xB7, - 0xC3, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x26, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x86, - 0x79, - 0x35, - 0x79, - 0x35, - 0xB9, - 0x79, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xC3, - 0x8D, - 0x05, - 0xC1, - 0x06, - 0xC3, - 0x01, - 0xAC, - 0x01, - 0xB8, - 0x05, - 0xAC, - 0x00, - 0x1B, - 0xC5, - 0xAC, - 0xAD, - 0xAC, - 0xAD, - 0x9B, - 0x9B, - 0xAD, - 0xAD, - 0x9B, - 0x9B, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xAE, - 0xBF, - 0xA2, - 0xA2, - 0xAE, - 0xC5, - 0xAE, - 0xAE, - 0xAD, - 0xAD, - 0xAD, - 0x96, - 0x00, - 0x0A, - 0x78, - 0x00, - 0x06, - 0x96, - 0x96, - 0xA2, - 0x99, - 0x99, - 0x9E, - 0x04, - 0x98, - 0x00, - 0x0C, - 0x82, - 0x98, - 0x81, - 0x87, - 0x81, - 0x81, - 0x98, - 0x87, - 0x87, - 0x81, - 0x81, - 0x53, - 0x04, - 0x81, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x04, - 0x83, - 0x00, - 0x12, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x50, - 0x65, - 0x65, - 0x43, - 0x43, - 0x43, - 0x62, - 0x65, - 0x62, - 0x62, - 0x67, - 0x84, - 0x04, - 0xEA, - 0x00, - 0x15, - 0x14, - 0xEA, - 0xDE, - 0xDE, - 0xE2, - 0xDE, - 0xE2, - 0xE2, - 0xE2, - 0xD8, - 0xE2, - 0xD8, - 0xE2, - 0xD8, - 0xA8, - 0xDB, - 0xBC, - 0x84, - 0xBC, - 0x84, - 0x58, - 0x00, - 0x09, - 0x84, - 0x00, - 0x03, - 0x67, - 0x67, - 0x84, - 0x00, - 0x04, - 0x67, - 0x04, - 0x62, - 0x00, - 0x43, - 0x43, - 0x62, - 0x65, - 0x65, - 0x72, - 0x43, - 0x50, - 0x50, - 0x50, - 0x3C, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x77, - 0x81, - 0x81, - 0x22, - 0x3C, - 0x4E, - 0x4E, - 0x2E, - 0x27, - 0x27, - 0x59, - 0x27, - 0x59, - 0x29, - 0x90, - 0x5E, - 0x59, - 0x59, - 0xBB, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x5A, - 0x59, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x64, - 0x89, - 0x89, - 0x28, - 0x36, - 0x7C, - 0x36, - 0x7C, - 0x91, - 0x44, - 0x27, - 0x46, - 0x42, - 0x42, - 0x6F, - 0x5E, - 0xBB, - 0xA8, - 0xA5, - 0xB4, - 0x9F, - 0xC0, - 0x00, - 0x04, - 0x85, - 0x00, - 0x3C, - 0x32, - 0xC0, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xAF, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0xAB, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0x31, - 0x49, - 0x9B, - 0x80, - 0x8D, - 0xB0, - 0xC6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xA1, - 0xB0, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0xAA, - 0xAA, - 0xC3, - 0x00, - 0x00, - 0x06, - 0x35, - 0x01, - 0x49, - 0x01, - 0x86, - 0x05, - 0x79, - 0x00, - 0x1F, - 0x49, - 0x35, - 0x79, - 0xB9, - 0x35, - 0x49, - 0x35, - 0x86, - 0x49, - 0x79, - 0x49, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xBF, - 0xB2, - 0x9B, - 0x8E, - 0x97, - 0xAA, - 0xAA, - 0x8D, - 0xC1, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x24, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xC5, - 0xAD, - 0xAE, - 0xAE, - 0xAE, - 0xA2, - 0xAE, - 0xA2, - 0xAE, - 0xAE, - 0xAE, - 0xC5, - 0xA2, - 0xAD, - 0xA2, - 0xB8, - 0x97, - 0x78, - 0x97, - 0x97, - 0x08, - 0x78, - 0x00, - 0x14, - 0x96, - 0x96, - 0x99, - 0x9E, - 0x99, - 0x9E, - 0x98, - 0x9C, - 0x81, - 0x98, - 0x98, - 0x82, - 0x98, - 0x82, - 0x87, - 0x98, - 0x81, - 0x81, - 0x87, - 0x53, - 0x05, - 0x81, - 0x05, - 0x77, - 0x00, - 0x35, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x50, - 0x50, - 0x50, - 0x65, - 0x50, - 0x50, - 0x62, - 0x65, - 0x62, - 0x62, - 0x62, - 0x67, - 0x62, - 0x67, - 0x62, - 0x08, - 0xEA, - 0xEA, - 0xEA, - 0xDE, - 0xEA, - 0xDE, - 0x06, - 0xDE, - 0xE9, - 0xD0, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xD0, - 0xD0, - 0xD8, - 0xBE, - 0xBC, - 0x5B, - 0xBC, - 0xBC, - 0x58, - 0x84, - 0x84, - 0x58, - 0x58, - 0x84, - 0x84, - 0x84, - 0x58, - 0x00, - 0x04, - 0x84, - 0x01, - 0x67, - 0x01, - 0x37, - 0x05, - 0x67, - 0x00, - 0x44, - 0x62, - 0x62, - 0x62, - 0x4E, - 0x62, - 0x62, - 0x43, - 0x65, - 0x65, - 0x65, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x81, - 0x83, - 0x6A, - 0x33, - 0x38, - 0x27, - 0x5A, - 0x5A, - 0x5B, - 0x5B, - 0x4D, - 0x5A, - 0x8B, - 0x8B, - 0x59, - 0x5E, - 0x59, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x59, - 0x59, - 0x29, - 0x5B, - 0x4D, - 0x91, - 0x63, - 0x64, - 0x89, - 0x7C, - 0x5F, - 0x89, - 0x7C, - 0x91, - 0x75, - 0x4D, - 0x27, - 0x2E, - 0x31, - 0x2E, - 0x59, - 0xBC, - 0xA7, - 0xAF, - 0xBD, - 0x9F, - 0x05, - 0x85, - 0x00, - 0x1F, - 0xC0, - 0x32, - 0x55, - 0x9F, - 0x7F, - 0xA0, - 0xAF, - 0xA5, - 0xD0, - 0xAF, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0xAB, - 0xAB, - 0xDE, - 0x7F, - 0xAF, - 0xD0, - 0xA8, - 0x8B, - 0x9A, - 0x79, - 0x9B, - 0x80, - 0x8D, - 0x8D, - 0xA1, - 0xA1, - 0x71, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x0E, - 0x8D, - 0xB0, - 0xB0, - 0xA9, - 0xA1, - 0xB0, - 0xA1, - 0xA9, - 0xCA, - 0x71, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0x04, - 0xA1, - 0x00, - 0x06, - 0xB0, - 0xB0, - 0xC6, - 0x80, - 0xAA, - 0xC3, - 0x00, - 0x00, - 0x01, - 0x35, - 0x04, - 0x79, - 0x00, - 0x3E, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x49, - 0x35, - 0x79, - 0x35, - 0x49, - 0x49, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x49, - 0x35, - 0x52, - 0xA4, - 0xB2, - 0xB1, - 0x9B, - 0x9B, - 0xAC, - 0xAA, - 0xAA, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xAA, - 0x80, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAD, - 0xC5, - 0xAD, - 0xAD, - 0x9B, - 0xAE, - 0xAD, - 0xAE, - 0xAD, - 0x08, - 0xAE, - 0x00, - 0x07, - 0xA2, - 0xA2, - 0xC5, - 0xAD, - 0xB8, - 0x97, - 0x97, - 0x00, - 0x0B, - 0x78, - 0x00, - 0x12, - 0x96, - 0x99, - 0xA2, - 0x99, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x87, - 0x81, - 0x98, - 0x87, - 0x81, - 0x98, - 0x06, - 0x81, - 0x00, - 0x05, - 0x77, - 0x81, - 0x81, - 0x77, - 0x77, - 0x00, - 0x04, - 0x83, - 0x05, - 0x6A, - 0x00, - 0x05, - 0x65, - 0x50, - 0x65, - 0x43, - 0x65, - 0x00, - 0x04, - 0x62, - 0x00, - 0x04, - 0x67, - 0x67, - 0x67, - 0x84, - 0x04, - 0xEA, - 0x00, - 0x1E, - 0xCC, - 0x06, - 0xDE, - 0xDE, - 0xDE, - 0xE9, - 0xE9, - 0xD8, - 0xD8, - 0xD8, - 0xE2, - 0xD0, - 0xD8, - 0xD0, - 0xD8, - 0xBC, - 0x91, - 0x5A, - 0x44, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x84, - 0x58, - 0x04, - 0x84, - 0x00, - 0x06, - 0x67, - 0x84, - 0x84, - 0x62, - 0x67, - 0x67, - 0x04, - 0x62, - 0x00, - 0x80, - 0x4E, - 0x65, - 0x62, - 0x72, - 0x72, - 0x50, - 0x65, - 0x88, - 0x6A, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x6A, - 0x62, - 0x27, - 0x5A, - 0x4D, - 0x63, - 0x91, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x5B, - 0x8B, - 0x59, - 0x5E, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x59, - 0x59, - 0x59, - 0x5E, - 0x5E, - 0x5B, - 0x5B, - 0x75, - 0x64, - 0x64, - 0x7C, - 0x89, - 0x7C, - 0x89, - 0x7C, - 0x63, - 0x4D, - 0x5A, - 0x2E, - 0x27, - 0x59, - 0x8B, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x9F, - 0x8C, - 0x85, - 0x85, - 0xCC, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0xAB, - 0x7F, - 0x7F, - 0xA0, - 0xA5, - 0xA5, - 0xA5, - 0xD0, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x9F, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0x8B, - 0x5E, - 0x6B, - 0xBF, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0xB0, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB6, - 0xB6, - 0xB0, - 0xA1, - 0xA9, - 0xA1, - 0xAA, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x51, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x49, - 0xB9, - 0x49, - 0x79, - 0xB9, - 0x79, - 0x35, - 0x49, - 0x49, - 0xB9, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0xB9, - 0x79, - 0x49, - 0x79, - 0x52, - 0x52, - 0x52, - 0x7E, - 0xBF, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC1, - 0x8D, - 0xC1, - 0xC6, - 0xAA, - 0xAA, - 0x8D, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0xAD, - 0xB8, - 0x9B, - 0x9B, - 0xAD, - 0x9B, - 0xAD, - 0xAE, - 0xAE, - 0xAE, - 0xC5, - 0xBF, - 0xA2, - 0x7E, - 0xAE, - 0xAE, - 0xAE, - 0xA2, - 0xAD, - 0xC5, - 0x96, - 0xB8, - 0x97, - 0x97, - 0xB8, - 0x00, - 0x07, - 0x78, - 0x00, - 0x09, - 0x71, - 0x96, - 0x78, - 0xB8, - 0x96, - 0x96, - 0x99, - 0x99, - 0x8F, - 0x00, - 0x04, - 0x98, - 0x00, - 0x0C, - 0x82, - 0x81, - 0x98, - 0x87, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x87, - 0x04, - 0x81, - 0x00, - 0x25, - 0x77, - 0x81, - 0x77, - 0x77, - 0x77, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x50, - 0x6A, - 0x65, - 0x50, - 0x65, - 0x43, - 0x65, - 0x65, - 0x62, - 0x62, - 0x4B, - 0x67, - 0x62, - 0x84, - 0x67, - 0x67, - 0xDE, - 0xFD, - 0x14, - 0xDF, - 0xEA, - 0xEA, - 0xDE, - 0x06, - 0xE2, - 0xDE, - 0x00, - 0x07, - 0xD8, - 0x00, - 0x0B, - 0xBE, - 0xD8, - 0x91, - 0xD8, - 0x84, - 0x4D, - 0x75, - 0x44, - 0x84, - 0x58, - 0x44, - 0x00, - 0x04, - 0x58, - 0x00, - 0x04, - 0x84, - 0x58, - 0x84, - 0x58, - 0x04, - 0x84, - 0x00, - 0x48, - 0x67, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x62, - 0x62, - 0x62, - 0x65, - 0x4E, - 0x65, - 0x72, - 0x50, - 0x50, - 0x83, - 0x83, - 0x83, - 0x77, - 0x83, - 0x50, - 0x22, - 0x67, - 0x5A, - 0x44, - 0x91, - 0x7C, - 0x89, - 0x36, - 0x89, - 0x45, - 0x91, - 0x75, - 0x5B, - 0x8B, - 0x59, - 0x5E, - 0x5E, - 0x59, - 0x59, - 0x8B, - 0x59, - 0xBB, - 0x90, - 0x90, - 0x90, - 0x5E, - 0x2E, - 0x59, - 0x5A, - 0x5B, - 0x75, - 0x63, - 0x64, - 0x64, - 0x7C, - 0x7C, - 0x64, - 0x64, - 0x63, - 0x5B, - 0x5A, - 0x29, - 0x5B, - 0x66, - 0x45, - 0xA5, - 0xA0, - 0xAB, - 0x8C, - 0x8C, - 0x05, - 0x85, - 0x00, - 0x3B, - 0x8C, - 0x55, - 0x9F, - 0xAB, - 0x76, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xB4, - 0xAB, - 0xAB, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xD0, - 0xBE, - 0x8B, - 0x9A, - 0x56, - 0x7E, - 0x80, - 0x8D, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0x71, - 0xB0, - 0xA1, - 0x8D, - 0xCA, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0xCA, - 0x8D, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xA1, - 0x71, - 0xB0, - 0xC1, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0xB9, - 0x35, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x49, - 0x35, - 0x49, - 0x49, - 0x35, - 0x79, - 0x86, - 0xB2, - 0xA3, - 0xB2, - 0xB1, - 0x8E, - 0xC5, - 0xC3, - 0xC3, - 0x80, - 0x8D, - 0xC1, - 0xC6, - 0x8D, - 0xC1, - 0x80, - 0xAA, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x04, - 0xAD, - 0x08, - 0xAE, - 0x00, - 0x1D, - 0xAD, - 0xA2, - 0xAE, - 0xAE, - 0xAD, - 0xAD, - 0xB8, - 0x97, - 0x78, - 0x97, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x78, - 0x96, - 0x78, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x9E, - 0x99, - 0x9E, - 0x9E, - 0x00, - 0x06, - 0x98, - 0x00, - 0x07, - 0x81, - 0x98, - 0x87, - 0x87, - 0x87, - 0x81, - 0x87, - 0x00, - 0x04, - 0x81, - 0x00, - 0x05, - 0x77, - 0x81, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x83, - 0x00, - 0x56, - 0x6A, - 0x50, - 0x6A, - 0x50, - 0x50, - 0x65, - 0x65, - 0x43, - 0x62, - 0x62, - 0x62, - 0x67, - 0x67, - 0x67, - 0x37, - 0x67, - 0x84, - 0x84, - 0xDE, - 0xEA, - 0xDF, - 0xEA, - 0xDE, - 0xDE, - 0xEA, - 0xDE, - 0xE9, - 0xD0, - 0xE2, - 0xD8, - 0x91, - 0xD8, - 0x91, - 0xD8, - 0xD8, - 0x91, - 0x91, - 0xBC, - 0x5A, - 0xBE, - 0xBC, - 0x58, - 0x58, - 0x51, - 0x84, - 0x84, - 0x58, - 0x44, - 0x84, - 0x3A, - 0x44, - 0x84, - 0x58, - 0x84, - 0x84, - 0x58, - 0x84, - 0x84, - 0x84, - 0x67, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x65, - 0x4E, - 0x62, - 0x65, - 0x65, - 0x65, - 0x50, - 0x50, - 0x50, - 0x6A, - 0x83, - 0x77, - 0x77, - 0x6A, - 0x43, - 0x27, - 0x25, - 0x91, - 0x89, - 0x89, - 0x04, - 0x5F, - 0x00, - 0x4D, - 0x89, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x5E, - 0x5E, - 0x59, - 0xB3, - 0x59, - 0x90, - 0x59, - 0x59, - 0x90, - 0x59, - 0x59, - 0x5E, - 0x5E, - 0x5E, - 0x5A, - 0x5A, - 0x4D, - 0x75, - 0x63, - 0x64, - 0x64, - 0x89, - 0x64, - 0x64, - 0x63, - 0x5B, - 0x5A, - 0x4D, - 0x75, - 0xA7, - 0xA5, - 0xB4, - 0xAB, - 0x8C, - 0xC0, - 0x85, - 0x2D, - 0x2D, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA5, - 0xA5, - 0xD0, - 0xAF, - 0xAF, - 0xBD, - 0xB4, - 0xDE, - 0x7F, - 0xAB, - 0xB4, - 0xB4, - 0xA5, - 0x45, - 0xBC, - 0x5E, - 0x6D, - 0xB1, - 0xAA, - 0x80, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0x71, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x06, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0xA1, - 0xA9, - 0x04, - 0xB0, - 0x00, - 0x0D, - 0xA1, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xC6, - 0x8D, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x5D, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x49, - 0xB9, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x35, - 0xB9, - 0x49, - 0x35, - 0x35, - 0x35, - 0xB9, - 0xB9, - 0x79, - 0x49, - 0x79, - 0x49, - 0x35, - 0x52, - 0x52, - 0x52, - 0xBF, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0x80, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xAD, - 0x9B, - 0xAD, - 0x9B, - 0xAE, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xA2, - 0xAE, - 0xAE, - 0xAE, - 0xAD, - 0x96, - 0xB8, - 0x97, - 0x97, - 0xB7, - 0xB7, - 0x97, - 0xC1, - 0xB7, - 0x78, - 0xA9, - 0x78, - 0x78, - 0x78, - 0xC1, - 0x96, - 0x78, - 0x78, - 0x78, - 0xA2, - 0xA2, - 0xA2, - 0x8F, - 0x99, - 0x9E, - 0x9E, - 0x00, - 0x04, - 0x98, - 0x00, - 0x0B, - 0x81, - 0x98, - 0x87, - 0x98, - 0x87, - 0x98, - 0x81, - 0x87, - 0x53, - 0x81, - 0x87, - 0x00, - 0x05, - 0x81, - 0x00, - 0x06, - 0x77, - 0x77, - 0x77, - 0x83, - 0x83, - 0x83, - 0x04, - 0x6A, - 0x00, - 0x11, - 0x65, - 0x6A, - 0x65, - 0x43, - 0x62, - 0x65, - 0x62, - 0x62, - 0x67, - 0x62, - 0x67, - 0x67, - 0x67, - 0x84, - 0x84, - 0x84, - 0xDE, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x20, - 0xDE, - 0xDE, - 0xD0, - 0xE9, - 0xD0, - 0xD0, - 0xD8, - 0x91, - 0xD8, - 0xD8, - 0xBE, - 0x91, - 0xD8, - 0x91, - 0x75, - 0x91, - 0x5B, - 0x63, - 0x91, - 0x44, - 0x3A, - 0x58, - 0x44, - 0x44, - 0x58, - 0x58, - 0x44, - 0x58, - 0x58, - 0x3A, - 0x58, - 0x58, - 0x05, - 0x84, - 0x00, - 0x46, - 0x67, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x4E, - 0x62, - 0x62, - 0x4E, - 0x65, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x4E, - 0x84, - 0x44, - 0x64, - 0x36, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x5F, - 0x36, - 0x1B, - 0x66, - 0x8B, - 0x59, - 0x5E, - 0x9A, - 0x59, - 0x5E, - 0x59, - 0x59, - 0x90, - 0xB3, - 0x90, - 0x5E, - 0xB3, - 0x46, - 0x2E, - 0x5E, - 0x29, - 0x5B, - 0x4D, - 0x4D, - 0x75, - 0x64, - 0x64, - 0x64, - 0x63, - 0x91, - 0x4D, - 0x4D, - 0x75, - 0xA8, - 0x36, - 0xA0, - 0xB4, - 0x9F, - 0x8C, - 0xC0, - 0x04, - 0x85, - 0x00, - 0x0E, - 0x32, - 0x8C, - 0x8C, - 0xAB, - 0x2C, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0x04, - 0xAB, - 0x00, - 0x22, - 0xA0, - 0xAF, - 0xBE, - 0xBC, - 0x5E, - 0x6C, - 0x7E, - 0x97, - 0x8D, - 0x80, - 0x8D, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xA1, - 0x8D, - 0xB0, - 0xA1, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0xB5, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x04, - 0xB0, - 0x8D, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x3F, - 0x49, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0xB9, - 0x79, - 0x49, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0xB9, - 0x35, - 0x49, - 0x49, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x79, - 0xA4, - 0x52, - 0x7E, - 0xB2, - 0xBF, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0x8D, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAE, - 0xAD, - 0xAD, - 0xAE, - 0xAD, - 0xAD, - 0x00, - 0x04, - 0xAE, - 0x00, - 0x0E, - 0x9B, - 0xAD, - 0xAE, - 0xAD, - 0xAD, - 0xB8, - 0xB8, - 0xB8, - 0xB7, - 0x97, - 0x78, - 0xC1, - 0x78, - 0xB7, - 0x04, - 0x78, - 0x00, - 0x03, - 0x96, - 0x78, - 0x78, - 0x00, - 0x04, - 0x96, - 0x00, - 0x14, - 0xA2, - 0x99, - 0xA2, - 0x9E, - 0x9E, - 0x9E, - 0x87, - 0x82, - 0x98, - 0x98, - 0x81, - 0x98, - 0x53, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x81, - 0x87, - 0x05, - 0x81, - 0x00, - 0x08, - 0x83, - 0x81, - 0x77, - 0x83, - 0x77, - 0x83, - 0x83, - 0x83, - 0x04, - 0x6A, - 0x00, - 0x0A, - 0x65, - 0x43, - 0x65, - 0x65, - 0x62, - 0x62, - 0x62, - 0x4B, - 0x84, - 0x62, - 0x04, - 0x84, - 0x00, - 0xB1, - 0x58, - 0xBD, - 0x14, - 0xEA, - 0xEA, - 0xDE, - 0xEA, - 0xDE, - 0x06, - 0xB4, - 0xE9, - 0xE2, - 0xA5, - 0xD8, - 0xD8, - 0x91, - 0xD8, - 0xD8, - 0x91, - 0xD8, - 0xBC, - 0x5B, - 0x75, - 0x5B, - 0x63, - 0x5A, - 0x51, - 0x51, - 0x4D, - 0x58, - 0x44, - 0x58, - 0x63, - 0x44, - 0x44, - 0x84, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x67, - 0x84, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x4E, - 0x62, - 0x65, - 0x43, - 0x65, - 0x72, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x50, - 0x4E, - 0x27, - 0x4D, - 0x64, - 0x4F, - 0x7A, - 0x2F, - 0x2F, - 0x2B, - 0x2F, - 0x7A, - 0x5F, - 0xA7, - 0x91, - 0x5B, - 0x5B, - 0x5E, - 0x5E, - 0x46, - 0x5E, - 0x5E, - 0xB3, - 0x59, - 0x59, - 0x5E, - 0xB3, - 0x59, - 0x5E, - 0x46, - 0x46, - 0x5E, - 0x27, - 0x5A, - 0x4D, - 0x63, - 0x44, - 0x91, - 0x63, - 0x64, - 0x63, - 0x63, - 0x75, - 0x66, - 0x36, - 0xA5, - 0x76, - 0x7F, - 0x55, - 0x8C, - 0xC0, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x55, - 0x9F, - 0xAB, - 0xA0, - 0x76, - 0xA5, - 0xA5, - 0xD0, - 0xAF, - 0xA0, - 0x7F, - 0xAB, - 0xAB, - 0xAB, - 0xDE, - 0x7F, - 0xB4, - 0xAF, - 0xA7, - 0x66, - 0xB3, - 0x74, - 0xB2, - 0x97, - 0x8D, - 0x8D, - 0xB0, - 0x8D, - 0x71, - 0xA1, - 0xCA, - 0xA1, - 0x71, - 0xCA, - 0xB0, - 0xA1, - 0xC6, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0x71, - 0xB0, - 0xA9, - 0xB0, - 0xB5, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0x71, - 0x8D, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x01, - 0x49, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x2E, - 0x49, - 0x35, - 0x35, - 0xB9, - 0x49, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x79, - 0xB9, - 0x35, - 0xB9, - 0x79, - 0x49, - 0xB9, - 0x49, - 0x49, - 0x79, - 0x35, - 0x35, - 0x49, - 0x49, - 0x86, - 0x52, - 0xB2, - 0xB2, - 0xB1, - 0xB1, - 0xAC, - 0xAC, - 0xC3, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0x04, - 0xC5, - 0x00, - 0x29, - 0x9B, - 0xAD, - 0xAE, - 0x9B, - 0xAE, - 0xAE, - 0xAE, - 0x9B, - 0xAD, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAD, - 0xB8, - 0xB8, - 0xB8, - 0x78, - 0xB7, - 0x78, - 0x78, - 0xB7, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x78, - 0xC1, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0x9E, - 0x9E, - 0x00, - 0x04, - 0x98, - 0x00, - 0x04, - 0x82, - 0x9E, - 0x81, - 0x98, - 0x04, - 0x87, - 0x01, - 0x81, - 0x01, - 0x98, - 0x05, - 0x81, - 0x00, - 0x07, - 0x77, - 0x81, - 0x77, - 0x77, - 0x83, - 0x83, - 0x83, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x38, - 0x65, - 0x50, - 0x65, - 0x65, - 0x65, - 0x62, - 0x62, - 0x67, - 0x62, - 0x67, - 0x67, - 0x67, - 0x84, - 0x84, - 0x58, - 0x84, - 0x58, - 0xAF, - 0xEA, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xEA, - 0xB4, - 0xE9, - 0xDE, - 0xD0, - 0xD0, - 0xD0, - 0x89, - 0xD8, - 0xD8, - 0xD8, - 0x91, - 0xD8, - 0x91, - 0xBC, - 0x91, - 0x51, - 0xBC, - 0x51, - 0x51, - 0x44, - 0x44, - 0x63, - 0x58, - 0x4D, - 0x58, - 0x58, - 0x44, - 0x58, - 0x44, - 0x58, - 0x84, - 0x3A, - 0x05, - 0x84, - 0x00, - 0x70, - 0x67, - 0x84, - 0x84, - 0x67, - 0x67, - 0x62, - 0x67, - 0x4E, - 0x65, - 0x4E, - 0x65, - 0x65, - 0x65, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x50, - 0x38, - 0x27, - 0x44, - 0x64, - 0x36, - 0x23, - 0x2C, - 0x2B, - 0x2B, - 0x2A, - 0x2C, - 0x2F, - 0x5F, - 0x7C, - 0x1B, - 0x66, - 0x90, - 0x5E, - 0x46, - 0x5E, - 0x2E, - 0xB3, - 0x5E, - 0x5E, - 0x5E, - 0x59, - 0x9A, - 0x5E, - 0x9A, - 0x31, - 0x46, - 0x46, - 0x5E, - 0x29, - 0x5A, - 0x4D, - 0x63, - 0x63, - 0x64, - 0x63, - 0x75, - 0x63, - 0x45, - 0x89, - 0x76, - 0x76, - 0xAB, - 0x8C, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0x32, - 0x32, - 0x8C, - 0x8C, - 0xAB, - 0x7F, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA0, - 0xBD, - 0xAB, - 0xAB, - 0x9F, - 0x9F, - 0xB4, - 0xBD, - 0xAF, - 0xA7, - 0x66, - 0x59, - 0x3B, - 0x52, - 0x8E, - 0x8D, - 0x8D, - 0x8D, - 0xA1, - 0x8D, - 0xA1, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB5, - 0xA1, - 0x8D, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x06, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0x06, - 0xA1, - 0x00, - 0x04, - 0xB0, - 0xC6, - 0x8D, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x48, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0xB9, - 0xB9, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x79, - 0x49, - 0xB9, - 0x49, - 0x5D, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0xB9, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0xA4, - 0x52, - 0xB2, - 0x7E, - 0x9B, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0x80, - 0xC6, - 0xC1, - 0xC6, - 0x8D, - 0x8D, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xAC, - 0xAC, - 0xB8, - 0xC5, - 0xC5, - 0xAD, - 0xAD, - 0xC5, - 0xAD, - 0xB8, - 0xC5, - 0xAD, - 0x96, - 0xC5, - 0xAD, - 0xAD, - 0xB8, - 0xB8, - 0xB8, - 0xAC, - 0x97, - 0x05, - 0xB7, - 0x00, - 0x24, - 0x78, - 0xB7, - 0x78, - 0x78, - 0xC3, - 0x97, - 0x96, - 0x96, - 0x96, - 0xAD, - 0xA2, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x99, - 0x8F, - 0x99, - 0x8F, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x81, - 0x9E, - 0x98, - 0x87, - 0x81, - 0x53, - 0x87, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x04, - 0x81, - 0x00, - 0x03, - 0x77, - 0x83, - 0x77, - 0x00, - 0x04, - 0x83, - 0x00, - 0x15, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x65, - 0x65, - 0x43, - 0x62, - 0x65, - 0x62, - 0x62, - 0x67, - 0x84, - 0x67, - 0x84, - 0x37, - 0x84, - 0x84, - 0x58, - 0x58, - 0xD0, - 0x00, - 0x05, - 0xEA, - 0x00, - 0x24, - 0xDE, - 0xDE, - 0xDE, - 0xD0, - 0xDE, - 0xD0, - 0xD0, - 0xE2, - 0xD8, - 0x89, - 0x7C, - 0xD8, - 0x91, - 0xBE, - 0x54, - 0x63, - 0xBC, - 0x63, - 0x63, - 0x44, - 0x51, - 0x63, - 0x51, - 0x44, - 0x51, - 0x44, - 0x51, - 0x3A, - 0x58, - 0x44, - 0x58, - 0x44, - 0x58, - 0x58, - 0x84, - 0x58, - 0x04, - 0x84, - 0x04, - 0x67, - 0x04, - 0x62, - 0x01, - 0x65, - 0x01, - 0x50, - 0x04, - 0x6A, - 0x00, - 0x17, - 0x3C, - 0x50, - 0x67, - 0x29, - 0x63, - 0x64, - 0x4F, - 0x2F, - 0x2F, - 0x2A, - 0x26, - 0x2A, - 0x2A, - 0x2F, - 0x7A, - 0x5F, - 0xA8, - 0x63, - 0x5B, - 0x59, - 0x5E, - 0x6F, - 0x9A, - 0x00, - 0x08, - 0x5E, - 0x00, - 0x55, - 0x9A, - 0x31, - 0x31, - 0x2E, - 0x2E, - 0x27, - 0x29, - 0x25, - 0x4D, - 0x63, - 0x4D, - 0x63, - 0x91, - 0x45, - 0x36, - 0xAF, - 0x7F, - 0xAB, - 0x55, - 0xC0, - 0x32, - 0x85, - 0x2D, - 0x2D, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x7F, - 0x7F, - 0x76, - 0xA5, - 0xA5, - 0xAF, - 0xD0, - 0xA0, - 0xBD, - 0xB4, - 0xAB, - 0xDE, - 0x9F, - 0xAB, - 0xB4, - 0xAF, - 0xA7, - 0xBC, - 0x5E, - 0x3B, - 0xB2, - 0x97, - 0xD3, - 0x71, - 0x80, - 0x8D, - 0xD3, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0x8D, - 0xB0, - 0xA1, - 0x71, - 0xB0, - 0xA9, - 0xCA, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0x80, - 0x00, - 0x00, - 0x00, - 0x04, - 0x61, - 0x01, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x21, - 0x6E, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0xA6, - 0xB9, - 0xB9, - 0x79, - 0xA4, - 0xA4, - 0xD4, - 0xB1, - 0xB1, - 0x8E, - 0xCE, - 0x00, - 0x04, - 0xB1, - 0x01, - 0xD4, - 0x01, - 0xB1, - 0x04, - 0xB2, - 0x00, - 0x32, - 0xA3, - 0xB2, - 0xA4, - 0xB2, - 0xA4, - 0xA4, - 0xB2, - 0xA4, - 0xB2, - 0xB2, - 0xB2, - 0xA3, - 0xD4, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0x7E, - 0xBF, - 0xB2, - 0x94, - 0x9C, - 0xA3, - 0x94, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x7D, - 0x7D, - 0x88, - 0x7D, - 0x74, - 0x69, - 0x88, - 0x04, - 0x7D, - 0x00, - 0x3F, - 0x69, - 0x7D, - 0x69, - 0x69, - 0x69, - 0x88, - 0x69, - 0x69, - 0x3C, - 0x3C, - 0x88, - 0x88, - 0x88, - 0x72, - 0x6A, - 0x72, - 0x72, - 0x72, - 0x43, - 0x62, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0x67, - 0x84, - 0x67, - 0x29, - 0x84, - 0x84, - 0x3A, - 0x3A, - 0x84, - 0x4D, - 0x3A, - 0x44, - 0x4D, - 0xBE, - 0xDF, - 0xEA, - 0xEA, - 0xEA, - 0xDE, - 0xEA, - 0xDE, - 0xDE, - 0xB4, - 0xE9, - 0xDE, - 0xDE, - 0xD8, - 0xAF, - 0xD0, - 0xE2, - 0x89, - 0xD8, - 0x7C, - 0xD8, - 0x91, - 0x7C, - 0xBE, - 0x63, - 0x64, - 0x00, - 0x06, - 0x63, - 0x00, - 0x09, - 0x44, - 0x63, - 0x44, - 0x44, - 0x4D, - 0x44, - 0x44, - 0x4D, - 0x44, - 0x00, - 0x05, - 0x3A, - 0x00, - 0x61, - 0x84, - 0x3A, - 0x84, - 0x84, - 0x84, - 0x2E, - 0x39, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x2E, - 0x5A, - 0x4D, - 0x89, - 0x76, - 0x23, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x7A, - 0x5F, - 0x45, - 0x75, - 0x66, - 0x59, - 0xB3, - 0x5E, - 0x9A, - 0xB3, - 0xB3, - 0x59, - 0xB3, - 0x59, - 0xB3, - 0x5E, - 0x5E, - 0xB3, - 0x46, - 0x9A, - 0x2E, - 0x29, - 0x59, - 0x5A, - 0x4D, - 0x4D, - 0x91, - 0x91, - 0x64, - 0x45, - 0x76, - 0x7F, - 0x7F, - 0x55, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0xCC, - 0xCC, - 0x85, - 0x32, - 0xC0, - 0x9F, - 0x55, - 0x9F, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xB4, - 0x9F, - 0xAB, - 0xAB, - 0x9F, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0x90, - 0x6F, - 0x4A, - 0xA4, - 0xB1, - 0x00, - 0x06, - 0x8E, - 0x00, - 0x1B, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0x8E, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x61, - 0x00, - 0x09, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x04, - 0x61, - 0x01, - 0x6E, - 0x06, - 0x61, - 0x00, - 0x14, - 0xA6, - 0xA6, - 0x4A, - 0xB9, - 0x86, - 0xA4, - 0xA4, - 0xD4, - 0xB2, - 0xD4, - 0xB1, - 0x8E, - 0xB1, - 0xD4, - 0xB1, - 0xB2, - 0xB1, - 0xB2, - 0xD4, - 0xD4, - 0x05, - 0xB2, - 0x00, - 0x05, - 0x52, - 0xB2, - 0xB2, - 0xB2, - 0xA3, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x03, - 0xBF, - 0xD4, - 0x9B, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x1B, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xA3, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x94, - 0x98, - 0x9C, - 0x9C, - 0x8A, - 0x82, - 0x7D, - 0x8A, - 0x8A, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x46, - 0x69, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x7D, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x3C, - 0x88, - 0x6A, - 0x72, - 0x50, - 0x72, - 0x43, - 0x72, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x67, - 0x2E, - 0x2E, - 0x84, - 0x84, - 0x84, - 0x5A, - 0x84, - 0x84, - 0x44, - 0x84, - 0x44, - 0x3A, - 0x44, - 0x75, - 0xEA, - 0xEA, - 0xDF, - 0xEA, - 0xDF, - 0xDE, - 0xDE, - 0xEA, - 0xDE, - 0xDE, - 0xB4, - 0xD0, - 0xB4, - 0xAF, - 0xD0, - 0xA5, - 0xA5, - 0xA5, - 0xD8, - 0x7C, - 0xA5, - 0x91, - 0xBE, - 0x7C, - 0x63, - 0x7C, - 0x63, - 0x63, - 0x64, - 0x04, - 0x63, - 0x00, - 0x17, - 0x44, - 0x63, - 0x44, - 0x44, - 0x3A, - 0x44, - 0x3A, - 0x4D, - 0x44, - 0x3A, - 0x3A, - 0x3A, - 0x5A, - 0x84, - 0x5A, - 0x29, - 0x39, - 0x84, - 0x39, - 0x38, - 0x39, - 0x4E, - 0x38, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x08, - 0x38, - 0x2E, - 0x5A, - 0x75, - 0x45, - 0x28, - 0x2F, - 0x2B, - 0x04, - 0x26, - 0x00, - 0x5D, - 0x55, - 0x2A, - 0x2A, - 0x23, - 0x5F, - 0x45, - 0x66, - 0x66, - 0x59, - 0x9A, - 0x5E, - 0x5E, - 0x5E, - 0xB3, - 0x90, - 0xB3, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x6F, - 0x9A, - 0x46, - 0x2E, - 0x5A, - 0x5A, - 0x4D, - 0x4D, - 0x75, - 0x45, - 0x45, - 0x76, - 0xA0, - 0x2C, - 0x9F, - 0xC0, - 0xC0, - 0x32, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x8C, - 0x7F, - 0x7F, - 0xA0, - 0xA0, - 0xA0, - 0xD0, - 0xA0, - 0xA0, - 0x7F, - 0xDE, - 0x9F, - 0x9F, - 0xD5, - 0xAB, - 0xB4, - 0xBD, - 0xD0, - 0xBE, - 0x90, - 0x9A, - 0x61, - 0xB2, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x05, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x00, - 0x03, - 0x6E, - 0x61, - 0x9D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x1A, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0xB9, - 0xB9, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xB1, - 0x8E, - 0xD4, - 0xB1, - 0xBF, - 0xD4, - 0xD4, - 0xB2, - 0xBF, - 0xA4, - 0x0A, - 0xB2, - 0x00, - 0x08, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xD4, - 0xBF, - 0xB1, - 0xD4, - 0x04, - 0xB1, - 0x00, - 0x44, - 0xBF, - 0xBF, - 0xD4, - 0xBF, - 0xB2, - 0xBF, - 0x7E, - 0xA3, - 0xA3, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x8A, - 0x7D, - 0x7D, - 0x57, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x69, - 0x69, - 0x88, - 0x69, - 0x69, - 0x69, - 0x88, - 0x88, - 0x72, - 0x88, - 0x50, - 0x43, - 0x72, - 0x72, - 0x72, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x67, - 0x38, - 0x84, - 0x84, - 0x39, - 0x84, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x04, - 0x44, - 0x00, - 0x35, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xEA, - 0xD5, - 0xEA, - 0xD5, - 0xDE, - 0xDE, - 0xDE, - 0xB4, - 0xDE, - 0xD0, - 0xD0, - 0xAF, - 0xD8, - 0x7A, - 0xD8, - 0x4F, - 0xD8, - 0x89, - 0x7C, - 0xBE, - 0x64, - 0x64, - 0x64, - 0x63, - 0x64, - 0x63, - 0x63, - 0x63, - 0x54, - 0x51, - 0x75, - 0x44, - 0x44, - 0x63, - 0x3A, - 0x44, - 0x3A, - 0x58, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x58, - 0x84, - 0x84, - 0x67, - 0x5A, - 0x39, - 0x84, - 0x00, - 0x04, - 0x38, - 0x00, - 0x0C, - 0x4E, - 0x4E, - 0x38, - 0x4E, - 0x2E, - 0x5A, - 0x4D, - 0x45, - 0x36, - 0x7A, - 0x2B, - 0x2A, - 0x05, - 0x26, - 0x00, - 0x5B, - 0x55, - 0x2B, - 0x76, - 0x36, - 0x45, - 0x66, - 0x8B, - 0x59, - 0x9A, - 0x5E, - 0x9A, - 0xB3, - 0x5E, - 0x5E, - 0xB3, - 0xB3, - 0x5E, - 0xD6, - 0x9A, - 0x9A, - 0x6F, - 0x6F, - 0x46, - 0x5E, - 0x29, - 0x5A, - 0x5A, - 0x75, - 0x45, - 0x45, - 0x76, - 0x2F, - 0xAB, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0x2D, - 0xCC, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x8C, - 0x55, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0x9F, - 0xAB, - 0x9F, - 0x9F, - 0x9F, - 0xB4, - 0xBD, - 0xA7, - 0xBE, - 0x90, - 0x9A, - 0x6D, - 0x52, - 0xB1, - 0xB1, - 0xB1, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x06, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xD4, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0x6E, - 0x08, - 0x61, - 0x00, - 0x0B, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x01, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x13, - 0xA6, - 0x4A, - 0x4A, - 0xB9, - 0x86, - 0x86, - 0xA4, - 0xB2, - 0xD4, - 0xD4, - 0xD4, - 0xB1, - 0xB1, - 0xB2, - 0xBF, - 0xB2, - 0xD4, - 0xB2, - 0xD4, - 0x00, - 0x08, - 0xB2, - 0x00, - 0x04, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0x05, - 0xB1, - 0x00, - 0x06, - 0x9B, - 0xB1, - 0xB1, - 0xBF, - 0xBF, - 0xD4, - 0x05, - 0xBF, - 0x00, - 0x08, - 0xA3, - 0xA3, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x8A, - 0x04, - 0x9C, - 0x00, - 0x1C, - 0x98, - 0x98, - 0x8A, - 0x8A, - 0x8A, - 0x7D, - 0x7D, - 0x7D, - 0x74, - 0x74, - 0x82, - 0x7D, - 0x7D, - 0x69, - 0x7D, - 0x57, - 0x57, - 0x57, - 0x69, - 0x7D, - 0x69, - 0x69, - 0x69, - 0x3C, - 0x88, - 0x88, - 0x6A, - 0x3C, - 0x04, - 0x72, - 0x00, - 0x1C, - 0x43, - 0x62, - 0x72, - 0x4E, - 0x67, - 0x84, - 0x38, - 0x39, - 0x39, - 0x39, - 0x84, - 0x5A, - 0x3A, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x4D, - 0x63, - 0xB4, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xEA, - 0x04, - 0xDE, - 0x00, - 0x0C, - 0xB4, - 0xDE, - 0xAF, - 0xAF, - 0xB4, - 0xB4, - 0xAF, - 0xD8, - 0x7A, - 0xA5, - 0x7C, - 0xD8, - 0x04, - 0x7C, - 0x00, - 0x1A, - 0x64, - 0x7C, - 0x63, - 0x91, - 0x54, - 0x63, - 0x75, - 0x63, - 0x63, - 0x91, - 0x63, - 0x44, - 0x63, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x4D, - 0x44, - 0x84, - 0x5A, - 0x84, - 0x5A, - 0x84, - 0x5A, - 0x39, - 0x06, - 0x38, - 0x00, - 0x61, - 0x2E, - 0x2E, - 0x38, - 0x27, - 0x59, - 0x66, - 0x91, - 0x36, - 0x76, - 0x7A, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x2B, - 0x23, - 0x89, - 0x64, - 0x5B, - 0x90, - 0x59, - 0x6F, - 0x9A, - 0x9A, - 0x9A, - 0xB3, - 0x5E, - 0x9A, - 0x9A, - 0x5E, - 0xB3, - 0x6F, - 0x6F, - 0x6F, - 0x31, - 0x31, - 0x2E, - 0x27, - 0x5A, - 0x5B, - 0x66, - 0xA7, - 0x76, - 0x7F, - 0xAB, - 0x55, - 0xC0, - 0xC0, - 0x85, - 0x85, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xA0, - 0xAF, - 0xA0, - 0xB4, - 0xB4, - 0xB4, - 0xD5, - 0xD5, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xD0, - 0xA8, - 0xBB, - 0x6F, - 0x4A, - 0xA4, - 0x8E, - 0xD4, - 0x8E, - 0xD4, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x10, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x09, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x00, - 0x07, - 0x61, - 0x00, - 0x04, - 0x6E, - 0x9D, - 0x6E, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x13, - 0x6E, - 0x61, - 0xA6, - 0x6D, - 0xB9, - 0x4A, - 0xB9, - 0xB9, - 0xA4, - 0xA4, - 0xB2, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0xB1, - 0xD4, - 0xD4, - 0xD4, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x08, - 0xD4, - 0xA3, - 0xD4, - 0xB2, - 0xD4, - 0xD4, - 0xB1, - 0xD4, - 0x04, - 0xB1, - 0x00, - 0x19, - 0x8E, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0xA3, - 0xA3, - 0x9C, - 0x9C, - 0xB9, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x00, - 0x05, - 0x9C, - 0x01, - 0x82, - 0x05, - 0x7D, - 0x00, - 0x08, - 0x69, - 0x7D, - 0x7D, - 0x82, - 0x57, - 0x7D, - 0x57, - 0x7D, - 0x04, - 0x69, - 0x00, - 0x74, - 0x88, - 0x69, - 0x88, - 0x69, - 0x83, - 0x72, - 0x3C, - 0x72, - 0x50, - 0x43, - 0x72, - 0x4E, - 0x38, - 0x4E, - 0x67, - 0x4E, - 0x39, - 0x39, - 0x39, - 0x84, - 0x84, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x84, - 0x44, - 0x3A, - 0x63, - 0x63, - 0x44, - 0x63, - 0xAF, - 0xDF, - 0xDF, - 0xDF, - 0xEA, - 0xD5, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xDE, - 0xB4, - 0xB4, - 0xB4, - 0xAF, - 0xB4, - 0xAF, - 0xD0, - 0x7A, - 0xD0, - 0x7A, - 0xD8, - 0x89, - 0x4F, - 0x7C, - 0x64, - 0x7C, - 0x64, - 0x7C, - 0x63, - 0x7C, - 0x63, - 0x64, - 0x63, - 0x63, - 0x51, - 0x63, - 0x63, - 0x44, - 0x4D, - 0x44, - 0x44, - 0x44, - 0x84, - 0x44, - 0x3A, - 0x58, - 0x3A, - 0x5A, - 0x84, - 0x67, - 0x39, - 0x38, - 0x39, - 0x38, - 0x39, - 0x38, - 0x2E, - 0x38, - 0x39, - 0x2E, - 0x29, - 0x5A, - 0x5B, - 0x91, - 0x89, - 0x36, - 0x7A, - 0x2C, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x26, - 0x2C, - 0x7A, - 0x5F, - 0x45, - 0x64, - 0x8B, - 0x59, - 0x5E, - 0x04, - 0x9A, - 0x00, - 0x22, - 0x5E, - 0x9A, - 0xB3, - 0x9A, - 0x9A, - 0x9A, - 0x6F, - 0xBA, - 0x6F, - 0x31, - 0x46, - 0x2E, - 0x5E, - 0x5A, - 0xA8, - 0x45, - 0xAF, - 0x7F, - 0x55, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0x76, - 0x04, - 0xA0, - 0x00, - 0x31, - 0xBD, - 0x7F, - 0xDE, - 0x9F, - 0x9F, - 0xDE, - 0x9F, - 0xB4, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0xD6, - 0x6D, - 0xA4, - 0xB1, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x0A, - 0x61, - 0x00, - 0x12, - 0x9D, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x17, - 0xA6, - 0xA6, - 0xB9, - 0xB9, - 0x86, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xB2, - 0xB1, - 0xD4, - 0xD4, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xD4, - 0xD4, - 0xBF, - 0xB2, - 0xD4, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x17, - 0x8E, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0xB1, - 0xD4, - 0xD4, - 0x9B, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0x7E, - 0xA3, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x94, - 0x00, - 0x08, - 0x9C, - 0x01, - 0x82, - 0x01, - 0x9C, - 0x09, - 0x7D, - 0x00, - 0x07, - 0x57, - 0x7D, - 0x57, - 0x69, - 0x7D, - 0x57, - 0x57, - 0x00, - 0x05, - 0x69, - 0x00, - 0x26, - 0x3C, - 0x88, - 0x72, - 0x3C, - 0x72, - 0x72, - 0x72, - 0x43, - 0x4E, - 0x43, - 0x4E, - 0x67, - 0x4E, - 0x38, - 0x67, - 0x39, - 0x84, - 0x84, - 0x5A, - 0x3A, - 0x3A, - 0x84, - 0x44, - 0x63, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x63, - 0x63, - 0x63, - 0xDF, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xD5, - 0xD5, - 0x05, - 0xDE, - 0x00, - 0x0B, - 0x7A, - 0xDE, - 0xAF, - 0xDE, - 0x7A, - 0xD0, - 0x7A, - 0xA5, - 0x4F, - 0xAF, - 0xD8, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x3B, - 0x64, - 0x7C, - 0x63, - 0x7C, - 0x63, - 0x54, - 0x75, - 0x63, - 0x63, - 0x63, - 0x44, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x44, - 0x3A, - 0x4D, - 0x84, - 0x3A, - 0x84, - 0x84, - 0x5A, - 0x29, - 0x84, - 0x39, - 0x38, - 0x38, - 0x2E, - 0x84, - 0x29, - 0x2E, - 0x29, - 0x2E, - 0x5A, - 0x5B, - 0x75, - 0x64, - 0x36, - 0x7A, - 0x7A, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x2F, - 0x5F, - 0x45, - 0x66, - 0x5B, - 0x59, - 0x46, - 0x46, - 0x6F, - 0x00, - 0x07, - 0x9A, - 0x00, - 0x51, - 0x6F, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x31, - 0x46, - 0x59, - 0x66, - 0xBE, - 0x5F, - 0x7F, - 0xAB, - 0x55, - 0xC0, - 0x85, - 0x2D, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x55, - 0x8C, - 0xB4, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xA0, - 0xA0, - 0xAB, - 0xB4, - 0x9F, - 0x9F, - 0xD5, - 0x9F, - 0x9F, - 0xAB, - 0xBD, - 0xA5, - 0xD8, - 0xBB, - 0x9A, - 0x6D, - 0x52, - 0xD4, - 0x8E, - 0x8E, - 0xD4, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x08, - 0x61, - 0x00, - 0x2F, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0xA6, - 0xB9, - 0xA6, - 0x86, - 0xB9, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xB2, - 0xB2, - 0xBF, - 0xD4, - 0xB2, - 0xB2, - 0xBF, - 0xB2, - 0xB2, - 0xB2, - 0xD4, - 0xB2, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x11, - 0x8E, - 0x8E, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0xD4, - 0xBF, - 0xB1, - 0xB2, - 0xBF, - 0xB2, - 0xB2, - 0xBF, - 0x00, - 0x04, - 0xA3, - 0x00, - 0x11, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x9C, - 0x9C, - 0x82, - 0x9C, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x26, - 0x57, - 0x7D, - 0x57, - 0x7D, - 0x57, - 0x57, - 0x69, - 0x69, - 0x88, - 0x83, - 0x88, - 0x69, - 0x88, - 0x6A, - 0x72, - 0x50, - 0x72, - 0x65, - 0x72, - 0x4E, - 0x4E, - 0x62, - 0x38, - 0x67, - 0x39, - 0x39, - 0x84, - 0x39, - 0x84, - 0x3A, - 0x84, - 0x3A, - 0x4D, - 0x58, - 0x4D, - 0x44, - 0x44, - 0x44, - 0x04, - 0x63, - 0x00, - 0x0C, - 0xD5, - 0xDF, - 0xDF, - 0xDF, - 0xEA, - 0xEA, - 0xD5, - 0xD5, - 0xD5, - 0xDE, - 0xDE, - 0xDE, - 0x07, - 0xB4, - 0x00, - 0x0F, - 0x7A, - 0x7A, - 0xA5, - 0x7A, - 0x7C, - 0x7C, - 0x89, - 0x7C, - 0x7C, - 0x64, - 0x7C, - 0x63, - 0x91, - 0x54, - 0x64, - 0x00, - 0x05, - 0x63, - 0x00, - 0x87, - 0x4D, - 0x44, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x84, - 0x84, - 0x84, - 0x38, - 0x39, - 0x2E, - 0x84, - 0x2E, - 0x2E, - 0x29, - 0x5A, - 0x5A, - 0x5A, - 0x5B, - 0x75, - 0x45, - 0x21, - 0x36, - 0x7A, - 0x2C, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x32, - 0x26, - 0x26, - 0x26, - 0x2B, - 0x7A, - 0x36, - 0x64, - 0x5B, - 0x90, - 0x5E, - 0x9A, - 0x6F, - 0x6F, - 0x6F, - 0x9A, - 0x9A, - 0x9A, - 0x6F, - 0x9A, - 0x6F, - 0x6F, - 0x6F, - 0x42, - 0x3B, - 0x31, - 0x6F, - 0x59, - 0x8B, - 0x45, - 0xA5, - 0x7F, - 0x9F, - 0x8C, - 0xC0, - 0x32, - 0xCC, - 0xCC, - 0x85, - 0x2D, - 0x85, - 0xC0, - 0x8C, - 0x55, - 0x9F, - 0x1C, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0xAF, - 0xA0, - 0xBD, - 0x9F, - 0x9F, - 0x9F, - 0xD5, - 0xD5, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0xBB, - 0x9A, - 0x4A, - 0x35, - 0x8E, - 0xD4, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0xB1, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x08, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x6E, - 0x05, - 0x61, - 0x04, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x00, - 0x08, - 0x61, - 0x00, - 0x11, - 0xA6, - 0xB9, - 0x4A, - 0xB9, - 0xA4, - 0xA4, - 0xA4, - 0xB2, - 0xB2, - 0xBF, - 0xD4, - 0xB2, - 0xD4, - 0xD4, - 0xB2, - 0xD4, - 0xBF, - 0x00, - 0x06, - 0xB1, - 0x00, - 0x1A, - 0xD4, - 0xB1, - 0xB1, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0xD4, - 0xBF, - 0xBF, - 0xD4, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xA3, - 0x7E, - 0xB2, - 0xA3, - 0xA3, - 0xB2, - 0x9C, - 0x94, - 0xB9, - 0x07, - 0x9C, - 0x00, - 0x06, - 0x82, - 0x9C, - 0x8A, - 0x98, - 0x8A, - 0x8A, - 0x04, - 0x7D, - 0x00, - 0x04, - 0x57, - 0x57, - 0x7D, - 0x82, - 0x04, - 0x57, - 0x00, - 0x40, - 0x69, - 0x7D, - 0x69, - 0x69, - 0x88, - 0x69, - 0x3C, - 0x3C, - 0x72, - 0x88, - 0x72, - 0x72, - 0x72, - 0x62, - 0x72, - 0x4E, - 0x38, - 0x38, - 0x67, - 0x38, - 0x39, - 0x84, - 0x84, - 0x5A, - 0x84, - 0x3A, - 0x3A, - 0x58, - 0x4D, - 0x44, - 0x44, - 0x63, - 0x44, - 0x44, - 0x63, - 0x91, - 0x63, - 0x5F, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xD5, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xDE, - 0x7A, - 0xB4, - 0xB4, - 0xAF, - 0xDE, - 0xAF, - 0xB4, - 0x7A, - 0xAF, - 0xB4, - 0x7A, - 0xAF, - 0x4F, - 0x4F, - 0x89, - 0x4F, - 0x04, - 0x7C, - 0x00, - 0x29, - 0x64, - 0x64, - 0x63, - 0x63, - 0x64, - 0x63, - 0x63, - 0x44, - 0x63, - 0x4D, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x84, - 0x3A, - 0x3A, - 0x84, - 0x3A, - 0x84, - 0x2E, - 0x38, - 0x39, - 0x84, - 0x5A, - 0x3A, - 0x5A, - 0x29, - 0x5A, - 0x5B, - 0x5B, - 0x66, - 0x66, - 0x75, - 0xBE, - 0x36, - 0x5F, - 0x7A, - 0x2C, - 0x2A, - 0x2A, - 0x00, - 0x04, - 0x26, - 0x00, - 0x0C, - 0x2A, - 0x2A, - 0x2F, - 0x76, - 0x36, - 0x91, - 0x5B, - 0x59, - 0x5E, - 0x46, - 0x6F, - 0x42, - 0x07, - 0x6F, - 0x00, - 0x1A, - 0x42, - 0x42, - 0x42, - 0x3B, - 0x31, - 0x5E, - 0x66, - 0xBE, - 0xAF, - 0x7F, - 0xAB, - 0x8C, - 0x85, - 0x2D, - 0x85, - 0x2D, - 0x85, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x8C, - 0x9F, - 0x2C, - 0xAB, - 0x7F, - 0x04, - 0xA0, - 0x01, - 0xAB, - 0x01, - 0xB4, - 0x05, - 0x9F, - 0x00, - 0x22, - 0xB4, - 0xA0, - 0xD0, - 0xBE, - 0xBB, - 0x6F, - 0x61, - 0xB2, - 0xD4, - 0x8E, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x04, - 0xCB, - 0x00, - 0x04, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x0C, - 0x61, - 0x00, - 0x30, - 0x9D, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x6D, - 0x61, - 0x61, - 0x4A, - 0x4A, - 0xB9, - 0xB9, - 0x79, - 0x86, - 0xA4, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xD4, - 0xBF, - 0xB2, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0x8E, - 0x04, - 0xB1, - 0x00, - 0x15, - 0xBF, - 0xB1, - 0xD4, - 0xD4, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xB2, - 0xBF, - 0xBF, - 0x7E, - 0xB2, - 0x7E, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x8A, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x15, - 0x98, - 0x9C, - 0x9C, - 0x82, - 0x8A, - 0x98, - 0x8A, - 0x7D, - 0x7D, - 0x7D, - 0x82, - 0x7D, - 0x57, - 0x82, - 0x82, - 0x57, - 0x7D, - 0x57, - 0x57, - 0x77, - 0x7D, - 0x00, - 0x04, - 0x69, - 0x00, - 0x22, - 0x88, - 0x88, - 0x88, - 0x3C, - 0x72, - 0x3C, - 0x4E, - 0x72, - 0x4E, - 0x38, - 0x62, - 0x38, - 0x38, - 0x2E, - 0x39, - 0x39, - 0x29, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x3A, - 0x63, - 0x44, - 0x63, - 0x63, - 0x63, - 0x54, - 0x64, - 0x63, - 0xD5, - 0x04, - 0xDF, - 0x00, - 0x0A, - 0xD5, - 0xEA, - 0xD5, - 0xD5, - 0xD5, - 0xDE, - 0xDE, - 0x7A, - 0xDE, - 0x7A, - 0x05, - 0xB4, - 0x00, - 0x58, - 0xAF, - 0x7A, - 0x5F, - 0x4F, - 0x4F, - 0x7C, - 0x4F, - 0x89, - 0x7C, - 0x7C, - 0x7C, - 0x64, - 0x64, - 0x64, - 0x63, - 0x63, - 0x64, - 0x63, - 0x44, - 0x44, - 0x44, - 0x63, - 0x3A, - 0x3A, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x84, - 0x84, - 0x2E, - 0x84, - 0x2E, - 0x27, - 0x29, - 0x3A, - 0x5B, - 0x5B, - 0x66, - 0x5B, - 0x66, - 0x66, - 0x75, - 0x75, - 0x45, - 0x45, - 0x5F, - 0x23, - 0x7F, - 0x2B, - 0x26, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2F, - 0x2F, - 0x36, - 0x89, - 0x45, - 0x29, - 0x59, - 0x9A, - 0x6F, - 0x6F, - 0x42, - 0x31, - 0x6F, - 0x6F, - 0x42, - 0x6F, - 0xBA, - 0x6F, - 0x42, - 0x6F, - 0x42, - 0x42, - 0x5E, - 0x8B, - 0x45, - 0xAF, - 0x7F, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x04, - 0x2D, - 0x00, - 0x3D, - 0x85, - 0xC0, - 0x32, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0x7F, - 0xA0, - 0xA0, - 0xB4, - 0x9F, - 0xDE, - 0xD5, - 0x9F, - 0xD5, - 0xAB, - 0xB4, - 0xBD, - 0xA5, - 0xA8, - 0x8B, - 0x6F, - 0x4A, - 0x52, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xAC, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x61, - 0x61, - 0x9D, - 0x00, - 0x05, - 0x61, - 0x00, - 0x05, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x01, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x05, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x06, - 0x61, - 0x00, - 0x17, - 0xA6, - 0x61, - 0xA6, - 0x4A, - 0xB9, - 0xB9, - 0xA4, - 0x86, - 0xA4, - 0xD4, - 0xB2, - 0xB2, - 0xB1, - 0xD4, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xD4, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x17, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xD4, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xA3, - 0xB2, - 0xB2, - 0xA3, - 0x9C, - 0x9C, - 0x5D, - 0x00, - 0x09, - 0x9C, - 0x00, - 0x0B, - 0x8A, - 0x82, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x7D, - 0x57, - 0x7D, - 0x00, - 0x04, - 0x57, - 0x00, - 0x1F, - 0x69, - 0x57, - 0x69, - 0x69, - 0x88, - 0x83, - 0x69, - 0x3C, - 0x72, - 0x72, - 0x50, - 0x72, - 0x65, - 0x43, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0x67, - 0x39, - 0x84, - 0x29, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x00, - 0x05, - 0x63, - 0x00, - 0x25, - 0x64, - 0x7C, - 0xB4, - 0xDF, - 0xDF, - 0xD5, - 0xEA, - 0xDF, - 0xD5, - 0xEA, - 0xDE, - 0xD5, - 0xAB, - 0xDE, - 0xD5, - 0x7A, - 0xDE, - 0xB4, - 0x7A, - 0xDE, - 0x7A, - 0xB4, - 0x7A, - 0xB4, - 0x7A, - 0x5F, - 0x5F, - 0x5F, - 0x7C, - 0x7C, - 0x7C, - 0x64, - 0x64, - 0x7C, - 0x64, - 0x54, - 0x91, - 0x00, - 0x05, - 0x63, - 0x00, - 0x20, - 0x44, - 0x3A, - 0x63, - 0x3A, - 0x58, - 0x3A, - 0x3A, - 0x84, - 0x3A, - 0x84, - 0x84, - 0x39, - 0x84, - 0x29, - 0x5A, - 0x5A, - 0x5B, - 0x5B, - 0x4D, - 0x75, - 0x75, - 0x75, - 0x66, - 0x66, - 0x45, - 0x45, - 0x36, - 0x5F, - 0x2F, - 0x2B, - 0x55, - 0x2A, - 0x05, - 0x26, - 0x00, - 0x42, - 0x2A, - 0x2C, - 0x7A, - 0x5F, - 0x24, - 0xA8, - 0x29, - 0x5E, - 0x46, - 0x42, - 0x42, - 0x42, - 0xBA, - 0x42, - 0x6F, - 0xBA, - 0x42, - 0x42, - 0x42, - 0x74, - 0x42, - 0x6F, - 0x5E, - 0x8B, - 0xA8, - 0xAF, - 0xBD, - 0x55, - 0x8C, - 0x85, - 0x85, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x55, - 0x9F, - 0x7F, - 0xB4, - 0x76, - 0xA0, - 0xA0, - 0xB4, - 0xB4, - 0xB4, - 0x9F, - 0x9F, - 0x8C, - 0x9F, - 0xAB, - 0xAB, - 0xAF, - 0xD0, - 0xBE, - 0xBB, - 0xBA, - 0x4A, - 0xA4, - 0x8E, - 0xB1, - 0x8E, - 0xD4, - 0x04, - 0x8E, - 0x00, - 0x13, - 0xCB, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x03, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x61, - 0x00, - 0x13, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x00, - 0x09, - 0x61, - 0x00, - 0x2F, - 0xA6, - 0x61, - 0x4A, - 0xB9, - 0xB9, - 0xB9, - 0x86, - 0x86, - 0xB2, - 0xB2, - 0xD4, - 0xBF, - 0xD4, - 0xD4, - 0xBF, - 0xD4, - 0xD4, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0xB1, - 0xBF, - 0xBF, - 0xD4, - 0xD4, - 0xB2, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xBF, - 0xB1, - 0xB2, - 0x7E, - 0xB2, - 0xB1, - 0xB2, - 0x7E, - 0x52, - 0x94, - 0xA3, - 0x00, - 0x04, - 0x9C, - 0x01, - 0xB9, - 0x01, - 0x98, - 0x04, - 0x9C, - 0x00, - 0x05, - 0x82, - 0x9C, - 0x82, - 0x8A, - 0x82, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x1F, - 0x57, - 0x57, - 0x57, - 0x69, - 0x57, - 0x88, - 0x69, - 0x69, - 0x88, - 0x3C, - 0x69, - 0x3C, - 0x3C, - 0x72, - 0x43, - 0x72, - 0x43, - 0x4E, - 0x38, - 0x4E, - 0x38, - 0x39, - 0x39, - 0x39, - 0x84, - 0x39, - 0x84, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x00, - 0x04, - 0x44, - 0x00, - 0x11, - 0x91, - 0x51, - 0x63, - 0x54, - 0x64, - 0x64, - 0x64, - 0x7C, - 0x7C, - 0xC0, - 0xDF, - 0xEA, - 0xC0, - 0xD5, - 0xEA, - 0xD5, - 0xDF, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x09, - 0xAB, - 0xD5, - 0x55, - 0xAB, - 0xD5, - 0x2C, - 0x7A, - 0xDE, - 0x7F, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x07, - 0x4F, - 0x7C, - 0x4F, - 0x4F, - 0x7C, - 0x7C, - 0x7C, - 0x00, - 0x04, - 0x64, - 0x00, - 0x13, - 0x63, - 0x63, - 0x63, - 0x44, - 0x63, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x58, - 0x3A, - 0x39, - 0x27, - 0x3A, - 0x29, - 0x5B, - 0x4D, - 0x00, - 0x04, - 0x75, - 0x00, - 0x71, - 0x91, - 0x75, - 0xA8, - 0x66, - 0x45, - 0x91, - 0xA5, - 0x36, - 0x76, - 0x2F, - 0x2F, - 0x2A, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x26, - 0x2B, - 0x2F, - 0x23, - 0x36, - 0x91, - 0x4D, - 0x59, - 0x46, - 0x9A, - 0x42, - 0x34, - 0x42, - 0x74, - 0x42, - 0x42, - 0x6F, - 0x74, - 0x42, - 0x42, - 0x31, - 0x6F, - 0x5E, - 0xBB, - 0x45, - 0xD0, - 0xB4, - 0x9F, - 0x8C, - 0xC0, - 0x32, - 0xCC, - 0x2D, - 0x85, - 0xCC, - 0x32, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0x7F, - 0xA0, - 0x7F, - 0x7F, - 0xA0, - 0xB4, - 0xB4, - 0x9F, - 0x9F, - 0xD5, - 0x9F, - 0xD5, - 0xAB, - 0xB4, - 0xBD, - 0xD0, - 0xA8, - 0x90, - 0x6F, - 0x4A, - 0xB2, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x15, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x00, - 0x04, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x1C, - 0x6D, - 0x61, - 0xA6, - 0xA6, - 0x4A, - 0xB9, - 0xB9, - 0x79, - 0x86, - 0xA4, - 0xA4, - 0xB2, - 0xBF, - 0xD4, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xD4, - 0xB1, - 0xB1, - 0xD4, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xD4, - 0x04, - 0xBF, - 0x00, - 0x46, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0x7E, - 0xB1, - 0xB1, - 0x7E, - 0x7E, - 0xB2, - 0x52, - 0x7E, - 0x86, - 0x9C, - 0x9C, - 0x8A, - 0x8A, - 0x8A, - 0x82, - 0x9C, - 0x82, - 0x8A, - 0x82, - 0x82, - 0x8A, - 0x8A, - 0x7D, - 0x7D, - 0x34, - 0x7D, - 0x57, - 0x69, - 0x57, - 0x57, - 0x69, - 0x69, - 0x34, - 0x69, - 0x88, - 0x69, - 0x88, - 0x69, - 0x22, - 0x88, - 0x72, - 0x3C, - 0x72, - 0x4E, - 0x43, - 0x4E, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x39, - 0x39, - 0x39, - 0x84, - 0x27, - 0x27, - 0x25, - 0x3A, - 0x4D, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x04, - 0x63, - 0x00, - 0x04, - 0x64, - 0x64, - 0x91, - 0x64, - 0x04, - 0x7C, - 0x00, - 0x16, - 0xAB, - 0xDF, - 0xCC, - 0xDF, - 0xDF, - 0xCC, - 0xDF, - 0xDF, - 0xC0, - 0xCC, - 0xD5, - 0xC0, - 0xD5, - 0xC0, - 0xD5, - 0xD5, - 0x55, - 0xD5, - 0xDE, - 0xAB, - 0x2A, - 0x2C, - 0x04, - 0x7A, - 0x00, - 0x1F, - 0x5F, - 0x5F, - 0x36, - 0x7C, - 0x7C, - 0x7C, - 0x89, - 0x54, - 0x64, - 0x64, - 0x64, - 0x63, - 0x64, - 0x63, - 0x63, - 0x63, - 0x44, - 0x63, - 0x44, - 0x44, - 0x3A, - 0x4D, - 0x3A, - 0x29, - 0x25, - 0x5A, - 0x4D, - 0x4D, - 0x24, - 0xA8, - 0x91, - 0x00, - 0x05, - 0x45, - 0x00, - 0x5F, - 0x1B, - 0xDB, - 0xBE, - 0x45, - 0x36, - 0x5F, - 0x76, - 0x2F, - 0x2C, - 0x2C, - 0x26, - 0x2A, - 0x26, - 0x32, - 0x2A, - 0x26, - 0x2C, - 0x7A, - 0x5F, - 0x36, - 0x64, - 0x5A, - 0x59, - 0x2E, - 0x46, - 0x42, - 0x74, - 0x42, - 0x34, - 0xBA, - 0x42, - 0x42, - 0x42, - 0x6F, - 0x6F, - 0xB3, - 0x59, - 0xA8, - 0xBE, - 0xA0, - 0xAB, - 0x9F, - 0x8C, - 0x85, - 0x85, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x55, - 0x9F, - 0x7F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xBD, - 0x7F, - 0xAB, - 0x9F, - 0x9F, - 0x9F, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0xBB, - 0x6F, - 0x4A, - 0xB2, - 0xD4, - 0xB1, - 0xD4, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x03, - 0xCE, - 0xCB, - 0x8E, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x03, - 0x8E, - 0xCB, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0x6E, - 0x09, - 0x61, - 0x00, - 0x06, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x0B, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x4A, - 0x4A, - 0xA6, - 0xB9, - 0xB9, - 0x86, - 0xA4, - 0xA4, - 0xB2, - 0xD4, - 0xBF, - 0x00, - 0x06, - 0xB1, - 0x00, - 0x0F, - 0xD4, - 0xB1, - 0xBF, - 0xD4, - 0xB1, - 0xB1, - 0xD4, - 0xB1, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xBF, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x08, - 0x7E, - 0xB1, - 0x7E, - 0xB2, - 0x8F, - 0x52, - 0x9C, - 0x9C, - 0x05, - 0x8A, - 0x01, - 0x7D, - 0x04, - 0x8A, - 0x00, - 0x15, - 0x82, - 0x56, - 0x7D, - 0x7D, - 0x7D, - 0x34, - 0x7D, - 0x34, - 0x34, - 0x69, - 0x69, - 0x34, - 0x34, - 0x88, - 0x88, - 0x33, - 0x31, - 0x22, - 0x33, - 0x4E, - 0x33, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x19, - 0x38, - 0x4E, - 0x38, - 0x38, - 0x39, - 0x39, - 0x39, - 0x27, - 0x27, - 0x3A, - 0x3A, - 0x4D, - 0x3A, - 0x44, - 0x44, - 0x4D, - 0x44, - 0x4D, - 0x24, - 0x63, - 0x63, - 0x63, - 0x64, - 0x91, - 0x64, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x09, - 0x4F, - 0x5F, - 0xCC, - 0xCC, - 0xDF, - 0xCC, - 0xDF, - 0xDF, - 0xDF, - 0x00, - 0x05, - 0xCC, - 0x05, - 0xC0, - 0x00, - 0x63, - 0x55, - 0xD5, - 0xD5, - 0x2A, - 0x7A, - 0x55, - 0x7F, - 0x41, - 0x7A, - 0x4F, - 0x4F, - 0x4F, - 0x36, - 0x7C, - 0x28, - 0x7C, - 0x7C, - 0x7C, - 0x64, - 0x7C, - 0x64, - 0x64, - 0x24, - 0x63, - 0x63, - 0x44, - 0x24, - 0x4D, - 0x44, - 0x4D, - 0x3A, - 0x25, - 0x3A, - 0x4D, - 0x63, - 0x75, - 0x91, - 0xD8, - 0x45, - 0x45, - 0x1B, - 0xD0, - 0x45, - 0x45, - 0xA8, - 0x45, - 0x45, - 0x45, - 0x36, - 0x36, - 0x23, - 0xA0, - 0x2F, - 0x2C, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x2F, - 0x5F, - 0x45, - 0x75, - 0x29, - 0x59, - 0x46, - 0x46, - 0x42, - 0x74, - 0x74, - 0x34, - 0x34, - 0x42, - 0x42, - 0x42, - 0x6F, - 0xB3, - 0x8B, - 0xBC, - 0xA7, - 0xAF, - 0xAB, - 0x8C, - 0xC0, - 0x32, - 0x85, - 0x2D, - 0xCC, - 0x2D, - 0x85, - 0x85, - 0xC0, - 0x32, - 0x8C, - 0x9F, - 0x9F, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x2C, - 0xBD, - 0xBD, - 0xAB, - 0xB4, - 0x9F, - 0x8C, - 0x9F, - 0xAB, - 0x9F, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0xBB, - 0xBA, - 0x4A, - 0xA4, - 0xD4, - 0x8E, - 0xD4, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x06, - 0xCB, - 0x01, - 0x8E, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x12, - 0x6E, - 0x61, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x9D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x05, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x00, - 0x06, - 0x61, - 0x00, - 0x11, - 0xA6, - 0xB9, - 0xB9, - 0xB9, - 0x79, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x04, - 0xD4, - 0xBF, - 0xBF, - 0xD4, - 0x08, - 0xB1, - 0x00, - 0x2F, - 0x9B, - 0xB1, - 0x9B, - 0xB2, - 0xB2, - 0x52, - 0x52, - 0x9C, - 0x9C, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x7D, - 0x7D, - 0x7D, - 0x56, - 0x57, - 0x34, - 0x57, - 0x34, - 0x69, - 0x34, - 0x88, - 0x34, - 0x33, - 0x33, - 0x33, - 0x22, - 0x33, - 0x72, - 0x33, - 0x22, - 0x4E, - 0x4E, - 0x33, - 0x4E, - 0x38, - 0x4E, - 0x2E, - 0x2E, - 0x38, - 0x39, - 0x00, - 0x04, - 0x27, - 0x00, - 0x1B, - 0x3A, - 0x29, - 0x25, - 0x3A, - 0x4D, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x24, - 0x63, - 0x24, - 0x91, - 0x64, - 0x24, - 0x7C, - 0x7C, - 0x4C, - 0x7C, - 0x7C, - 0x7C, - 0x21, - 0x5F, - 0x4F, - 0x5F, - 0x4F, - 0xC0, - 0x00, - 0x06, - 0xDF, - 0x01, - 0xCC, - 0x01, - 0xDF, - 0x07, - 0xCC, - 0x00, - 0x15, - 0xC0, - 0xC0, - 0xD5, - 0xC0, - 0x2A, - 0x55, - 0x2A, - 0x2B, - 0x7F, - 0x7A, - 0x7A, - 0x7A, - 0x4F, - 0x28, - 0x7A, - 0x36, - 0x7C, - 0x28, - 0x7C, - 0x7C, - 0x21, - 0x00, - 0x04, - 0x64, - 0x00, - 0x12, - 0x63, - 0x64, - 0x63, - 0x63, - 0x63, - 0x25, - 0x4D, - 0x44, - 0x44, - 0x75, - 0xA8, - 0x64, - 0x45, - 0x1B, - 0x36, - 0x36, - 0xA7, - 0x36, - 0x05, - 0x45, - 0x00, - 0x58, - 0xBE, - 0xA7, - 0xAF, - 0xA7, - 0x23, - 0x76, - 0x2F, - 0x2B, - 0x2A, - 0x55, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x23, - 0x5F, - 0x5F, - 0x64, - 0x75, - 0x5A, - 0x5E, - 0x9A, - 0x46, - 0x34, - 0x34, - 0x42, - 0x42, - 0x42, - 0x6F, - 0x31, - 0x6F, - 0x90, - 0x8B, - 0x45, - 0xA7, - 0xA0, - 0xAB, - 0x9F, - 0xC0, - 0x85, - 0x85, - 0xCC, - 0x2D, - 0x85, - 0x2D, - 0x85, - 0x85, - 0x8C, - 0x9F, - 0x8C, - 0x55, - 0xB4, - 0xA0, - 0x7F, - 0xBD, - 0x7F, - 0xAB, - 0xAB, - 0xD5, - 0xAB, - 0x9F, - 0xD5, - 0xD5, - 0xAB, - 0xA0, - 0xD0, - 0xA7, - 0xBC, - 0x90, - 0x6F, - 0x4A, - 0xB2, - 0x8E, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0x04, - 0x8E, - 0x00, - 0x0F, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xAC, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x04, - 0x61, - 0x00, - 0x07, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x04, - 0x61, - 0x00, - 0x24, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x4A, - 0xB9, - 0xA6, - 0xB9, - 0x35, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xB1, - 0xD4, - 0x8E, - 0x05, - 0xB1, - 0x00, - 0x03, - 0x8E, - 0xB1, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0xF3, - 0x8E, - 0xB1, - 0xB1, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x9B, - 0xB1, - 0xAE, - 0x7E, - 0x52, - 0x94, - 0x49, - 0x8A, - 0x6B, - 0x82, - 0x74, - 0x56, - 0x56, - 0x57, - 0x34, - 0x82, - 0x4A, - 0x56, - 0x57, - 0x56, - 0x34, - 0x3B, - 0x22, - 0x34, - 0x31, - 0x42, - 0x22, - 0x34, - 0x33, - 0x31, - 0x22, - 0x33, - 0x2E, - 0x22, - 0x31, - 0x4E, - 0x4E, - 0x22, - 0x2E, - 0x4E, - 0x38, - 0x38, - 0x27, - 0x38, - 0x39, - 0x27, - 0x38, - 0x29, - 0x29, - 0x29, - 0x25, - 0x29, - 0x5A, - 0x25, - 0x5A, - 0x25, - 0x75, - 0x44, - 0x24, - 0x4D, - 0x64, - 0x24, - 0x63, - 0x64, - 0x64, - 0x64, - 0x21, - 0x21, - 0x21, - 0x7C, - 0x36, - 0x28, - 0x5F, - 0x4F, - 0x4F, - 0x4F, - 0x41, - 0x55, - 0xDF, - 0xDF, - 0x95, - 0xDF, - 0xDF, - 0x73, - 0x73, - 0xDF, - 0x95, - 0x95, - 0xDF, - 0x95, - 0x95, - 0x7B, - 0x7B, - 0x70, - 0x70, - 0xC0, - 0x32, - 0x26, - 0x55, - 0x2A, - 0x2A, - 0x2C, - 0x2F, - 0x2B, - 0x7A, - 0x7A, - 0x41, - 0x5F, - 0x28, - 0x28, - 0x36, - 0x28, - 0x7C, - 0x36, - 0x21, - 0x21, - 0x1B, - 0x64, - 0x64, - 0x63, - 0x63, - 0x24, - 0x24, - 0x4D, - 0x24, - 0x66, - 0x75, - 0x24, - 0x1B, - 0x45, - 0xAF, - 0x1B, - 0x36, - 0xA7, - 0x36, - 0xA5, - 0x23, - 0xA7, - 0x1B, - 0xE2, - 0x1B, - 0xA7, - 0xA7, - 0x36, - 0x23, - 0xA5, - 0x76, - 0x23, - 0x2F, - 0x55, - 0x2A, - 0x2A, - 0x26, - 0x2A, - 0x26, - 0x2A, - 0x2C, - 0x23, - 0x5F, - 0x89, - 0x45, - 0x5B, - 0x59, - 0x2E, - 0x2E, - 0x42, - 0x42, - 0x22, - 0x34, - 0x42, - 0x42, - 0x31, - 0x9A, - 0x90, - 0xBC, - 0xD8, - 0xAF, - 0xBD, - 0xAB, - 0x8C, - 0xC0, - 0x85, - 0x2D, - 0x2D, - 0x2D, - 0xCC, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x55, - 0x7F, - 0xAB, - 0x7F, - 0xA0, - 0x7F, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0xD5, - 0xD5, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xD0, - 0xD8, - 0xA8, - 0x90, - 0x6F, - 0x4A, - 0x52, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x09, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x6E, - 0x6E, - 0x6D, - 0x3B, - 0x61, - 0x3B, - 0x6E, - 0x61, - 0x6E, - 0x3B, - 0x6E, - 0x6E, - 0x3B, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x28, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x61, - 0x3B, - 0x6D, - 0x6E, - 0x6E, - 0x3B, - 0x61, - 0x61, - 0x4A, - 0xB9, - 0x4A, - 0xB9, - 0x79, - 0x52, - 0x52, - 0xA3, - 0x52, - 0xD4, - 0xB2, - 0xBF, - 0xB1, - 0xB2, - 0xB1, - 0xBF, - 0xB2, - 0xBF, - 0x7E, - 0xB1, - 0x04, - 0xBF, - 0x00, - 0x2F, - 0x7E, - 0xB1, - 0x7E, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x7E, - 0x7E, - 0x7E, - 0x52, - 0x35, - 0x94, - 0x9C, - 0x82, - 0x56, - 0x56, - 0x34, - 0x7D, - 0x34, - 0x3B, - 0x34, - 0x56, - 0x34, - 0x22, - 0x34, - 0x22, - 0x6E, - 0x69, - 0x34, - 0x34, - 0x33, - 0x22, - 0x31, - 0x22, - 0x2E, - 0x4E, - 0x33, - 0x31, - 0x4E, - 0x22, - 0x2E, - 0x38, - 0x38, - 0x2E, - 0x27, - 0x4E, - 0x00, - 0x05, - 0x27, - 0x00, - 0x2D, - 0x59, - 0x29, - 0x25, - 0x25, - 0x29, - 0x25, - 0x5B, - 0x25, - 0x24, - 0x4D, - 0x24, - 0x63, - 0x24, - 0x24, - 0x64, - 0x64, - 0x24, - 0x89, - 0x64, - 0x21, - 0x21, - 0x89, - 0x7C, - 0x7C, - 0x36, - 0x4F, - 0x28, - 0x28, - 0x4F, - 0x4F, - 0x7A, - 0x23, - 0x2B, - 0x2F, - 0x95, - 0xCC, - 0xDF, - 0x73, - 0x95, - 0xDF, - 0x95, - 0x73, - 0x95, - 0x60, - 0x73, - 0x00, - 0x04, - 0x92, - 0x00, - 0x81, - 0x7B, - 0x7B, - 0x70, - 0x2D, - 0x2D, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x2C, - 0x2B, - 0x23, - 0x7A, - 0x23, - 0x23, - 0x4F, - 0x36, - 0x28, - 0x28, - 0x28, - 0x7C, - 0x7C, - 0x36, - 0x89, - 0x21, - 0x21, - 0x64, - 0x64, - 0x64, - 0x24, - 0x24, - 0x24, - 0x1B, - 0x91, - 0x1B, - 0xAF, - 0x36, - 0x36, - 0xA7, - 0x23, - 0x23, - 0xAF, - 0x23, - 0x45, - 0xD0, - 0x45, - 0xA7, - 0x45, - 0x45, - 0xA5, - 0xA7, - 0x23, - 0x76, - 0x23, - 0x7F, - 0x23, - 0x2B, - 0x2C, - 0x2A, - 0x2A, - 0x2A, - 0x2C, - 0x2C, - 0x2B, - 0x7A, - 0x5F, - 0x1B, - 0xA8, - 0x24, - 0x59, - 0x59, - 0x2E, - 0x31, - 0x42, - 0x34, - 0x31, - 0x42, - 0x46, - 0x59, - 0x90, - 0xA8, - 0xA7, - 0xAF, - 0x7F, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0x2D, - 0xCC, - 0x2D, - 0x85, - 0x2D, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0x7F, - 0xBD, - 0x7F, - 0xB4, - 0xB4, - 0xB4, - 0xAB, - 0x9F, - 0xAB, - 0x9F, - 0x9F, - 0x9F, - 0xAB, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x90, - 0x6F, - 0x6B, - 0xB2, - 0xB1, - 0xB2, - 0x7E, - 0x8E, - 0xB2, - 0x8E, - 0x8E, - 0xB1, - 0x00, - 0x08, - 0x8E, - 0x00, - 0x09, - 0xB1, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xB1, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x05, - 0xCB, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3B, - 0x0F, - 0x42, - 0x01, - 0x6F, - 0x04, - 0x42, - 0x01, - 0x31, - 0x01, - 0x6F, - 0x09, - 0x42, - 0x00, - 0x03, - 0x74, - 0x42, - 0x31, - 0x00, - 0x05, - 0x42, - 0x00, - 0x3F, - 0x34, - 0x42, - 0x34, - 0x74, - 0x56, - 0x7D, - 0x56, - 0x82, - 0x6B, - 0x98, - 0x9C, - 0x9C, - 0x94, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x9C, - 0x52, - 0x94, - 0x94, - 0x9C, - 0x9C, - 0x8F, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x53, - 0x52, - 0x98, - 0x6B, - 0x82, - 0x57, - 0x34, - 0x57, - 0x34, - 0x34, - 0x33, - 0x33, - 0x4E, - 0x33, - 0x38, - 0x33, - 0x31, - 0x22, - 0x22, - 0x2E, - 0x2E, - 0x22, - 0x33, - 0x38, - 0x22, - 0x27, - 0x27, - 0x22, - 0x38, - 0x27, - 0x27, - 0x27, - 0x38, - 0x00, - 0x06, - 0x27, - 0x00, - 0x0D, - 0x29, - 0x25, - 0x29, - 0x1A, - 0x27, - 0x3A, - 0x25, - 0x1A, - 0x5B, - 0x4D, - 0x25, - 0x24, - 0x5B, - 0x00, - 0x05, - 0x24, - 0x00, - 0x1D, - 0x63, - 0x63, - 0x21, - 0x7C, - 0x1B, - 0x21, - 0x21, - 0x21, - 0x36, - 0x28, - 0x21, - 0x1E, - 0x28, - 0x1E, - 0x5F, - 0x1E, - 0x23, - 0x41, - 0x23, - 0x1F, - 0x2F, - 0x2B, - 0x2B, - 0x70, - 0x95, - 0x73, - 0x92, - 0x95, - 0x93, - 0x00, - 0x06, - 0x73, - 0x00, - 0x28, - 0x60, - 0x93, - 0x60, - 0x92, - 0x95, - 0x7B, - 0x70, - 0x70, - 0x70, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x1D, - 0x2B, - 0x1D, - 0x2F, - 0x1F, - 0x23, - 0x23, - 0x1F, - 0x4F, - 0x23, - 0x28, - 0x28, - 0x1E, - 0x21, - 0x28, - 0x21, - 0x7C, - 0x1B, - 0x21, - 0x24, - 0x64, - 0x64, - 0x1B, - 0x45, - 0x21, - 0x36, - 0x36, - 0x06, - 0x23, - 0x00, - 0x54, - 0xAF, - 0x45, - 0x23, - 0x36, - 0xA7, - 0x1B, - 0xA7, - 0x23, - 0x23, - 0x36, - 0x76, - 0x76, - 0x23, - 0x23, - 0x2A, - 0x2B, - 0x2B, - 0x1C, - 0x2A, - 0x2A, - 0x2A, - 0x1D, - 0x2F, - 0x23, - 0x36, - 0x7C, - 0x75, - 0x75, - 0x29, - 0x59, - 0x59, - 0x2E, - 0x2E, - 0x33, - 0x2E, - 0x5E, - 0x29, - 0xA8, - 0x45, - 0xA5, - 0x7F, - 0xDE, - 0x8C, - 0x8C, - 0x85, - 0x2D, - 0x85, - 0x7B, - 0xCC, - 0x2D, - 0x2D, - 0x85, - 0x8C, - 0x32, - 0x8C, - 0x55, - 0xAB, - 0x2C, - 0x2C, - 0x7F, - 0xAB, - 0x7F, - 0xB4, - 0x9F, - 0x9F, - 0x55, - 0x9F, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0x46, - 0x74, - 0x56, - 0x94, - 0x52, - 0x52, - 0x52, - 0x94, - 0x94, - 0x05, - 0x7E, - 0x00, - 0x0C, - 0x52, - 0x8F, - 0x7E, - 0x7E, - 0x7E, - 0x52, - 0x94, - 0x8F, - 0x52, - 0x7E, - 0x52, - 0x52, - 0x07, - 0x7E, - 0x00, - 0x04, - 0xB1, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x00, - 0x0D, - 0x31, - 0x01, - 0x46, - 0x0B, - 0x31, - 0x00, - 0x24, - 0x46, - 0x31, - 0x31, - 0x31, - 0x46, - 0x31, - 0x31, - 0x2E, - 0x31, - 0x46, - 0x31, - 0x31, - 0x46, - 0x33, - 0x31, - 0x31, - 0x33, - 0x34, - 0x33, - 0x34, - 0x34, - 0x88, - 0x34, - 0x57, - 0x69, - 0x57, - 0x57, - 0x57, - 0x53, - 0x57, - 0x53, - 0x57, - 0x57, - 0x53, - 0x57, - 0x57, - 0x05, - 0x53, - 0x00, - 0x1A, - 0x82, - 0x53, - 0x53, - 0x57, - 0x53, - 0x22, - 0x53, - 0x22, - 0x22, - 0x33, - 0x22, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x2E, - 0x38, - 0x27, - 0x4E, - 0x39, - 0x38, - 0x38, - 0x38, - 0x27, - 0x38, - 0x05, - 0x27, - 0x00, - 0x14, - 0x25, - 0x29, - 0x27, - 0x27, - 0x1A, - 0x5A, - 0x25, - 0x29, - 0x25, - 0x1A, - 0x5B, - 0x25, - 0x1A, - 0x4D, - 0x44, - 0x66, - 0x25, - 0x24, - 0x24, - 0x25, - 0x04, - 0x24, - 0x00, - 0x05, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x64, - 0x00, - 0x06, - 0x21, - 0x00, - 0x15, - 0x28, - 0x28, - 0x21, - 0x1E, - 0x1E, - 0x1E, - 0x5F, - 0x1E, - 0x23, - 0x1E, - 0x23, - 0x1F, - 0x23, - 0x1F, - 0x2B, - 0x1D, - 0x2C, - 0x2B, - 0x70, - 0x73, - 0x95, - 0x00, - 0x07, - 0x73, - 0x00, - 0x0B, - 0x93, - 0x73, - 0x93, - 0x73, - 0x93, - 0x60, - 0x60, - 0x92, - 0x95, - 0x70, - 0x2D, - 0x00, - 0x04, - 0x26, - 0x00, - 0x4D, - 0x2A, - 0x1C, - 0x2B, - 0x1D, - 0x2B, - 0x1F, - 0x1F, - 0x23, - 0x1F, - 0x1E, - 0x1E, - 0x23, - 0x28, - 0x1E, - 0x28, - 0x1E, - 0x36, - 0x1E, - 0x36, - 0x1E, - 0x21, - 0x21, - 0x21, - 0x1E, - 0x5F, - 0x1E, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x7F, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x36, - 0x23, - 0x1E, - 0xBD, - 0x23, - 0x45, - 0xAF, - 0x23, - 0x23, - 0x23, - 0x2F, - 0x23, - 0x23, - 0x2C, - 0x2C, - 0x2B, - 0x1D, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x23, - 0x23, - 0x28, - 0x21, - 0x1B, - 0x5B, - 0x25, - 0x1A, - 0xB3, - 0x29, - 0x27, - 0x27, - 0x29, - 0x66, - 0x1B, - 0xEB, - 0x23, - 0xBD, - 0x1C, - 0x32, - 0x8C, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x22, - 0x70, - 0x2D, - 0x2D, - 0x2D, - 0x32, - 0xC0, - 0x8C, - 0x1C, - 0x9F, - 0x7F, - 0xAB, - 0x7F, - 0x7F, - 0x2C, - 0x9F, - 0x9F, - 0x55, - 0x9F, - 0x8C, - 0x55, - 0x9F, - 0x7F, - 0xB4, - 0xA5, - 0x45, - 0xBE, - 0x5B, - 0x5E, - 0x33, - 0x69, - 0x57, - 0x82, - 0x57, - 0x53, - 0x04, - 0x82, - 0x00, - 0x0F, - 0x53, - 0x9C, - 0x94, - 0x53, - 0x94, - 0x82, - 0x82, - 0x98, - 0x98, - 0x82, - 0x82, - 0x53, - 0x82, - 0x53, - 0x53, - 0x00, - 0x04, - 0x82, - 0x00, - 0x07, - 0x94, - 0x53, - 0x94, - 0x53, - 0x94, - 0x94, - 0x82, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x46, - 0x2E, - 0x31, - 0x2E, - 0x2E, - 0x46, - 0x11, - 0x2E, - 0x00, - 0x20, - 0x38, - 0x46, - 0x2E, - 0x38, - 0x2E, - 0x46, - 0x2E, - 0x46, - 0x4E, - 0x38, - 0x33, - 0x4E, - 0x4E, - 0x33, - 0x22, - 0x88, - 0x69, - 0x22, - 0x22, - 0x57, - 0x22, - 0x22, - 0x83, - 0x3C, - 0x3C, - 0x77, - 0x22, - 0x69, - 0x22, - 0x77, - 0x6A, - 0x77, - 0x04, - 0x22, - 0x00, - 0x1C, - 0x38, - 0x72, - 0x43, - 0x62, - 0x43, - 0x38, - 0x39, - 0x37, - 0x27, - 0x29, - 0x37, - 0x27, - 0x27, - 0x37, - 0x27, - 0x27, - 0x1A, - 0x27, - 0x27, - 0x25, - 0x27, - 0x3A, - 0x27, - 0x25, - 0x25, - 0x25, - 0x5B, - 0x1A, - 0x04, - 0x25, - 0x00, - 0x1C, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x24, - 0x24, - 0x24, - 0x51, - 0x24, - 0x1B, - 0x24, - 0x24, - 0x21, - 0x1B, - 0x1B, - 0x54, - 0x1B, - 0x21, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x1B, - 0x1E, - 0x1B, - 0x06, - 0x1E, - 0x05, - 0x1F, - 0x01, - 0x1D, - 0x01, - 0x1F, - 0x04, - 0x1D, - 0x00, - 0x1E, - 0x1C, - 0x1C, - 0x2D, - 0x60, - 0x92, - 0x93, - 0x60, - 0x93, - 0x93, - 0x60, - 0x93, - 0x93, - 0x93, - 0x20, - 0x93, - 0x20, - 0x93, - 0x93, - 0x93, - 0x92, - 0x92, - 0x70, - 0x70, - 0x70, - 0x1C, - 0x70, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x05, - 0x1D, - 0x05, - 0x1F, - 0x06, - 0x1E, - 0x00, - 0x3E, - 0x1B, - 0x1E, - 0x1B, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x23, - 0x23, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x2C, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x23, - 0x36, - 0xA5, - 0x23, - 0x23, - 0x36, - 0xAF, - 0x1D, - 0x23, - 0x23, - 0x23, - 0x7F, - 0x1D, - 0x2C, - 0x2A, - 0x1D, - 0x2A, - 0x1C, - 0x2B, - 0x2B, - 0x1F, - 0x23, - 0x36, - 0x64, - 0x1B, - 0x75, - 0x1A, - 0x5B, - 0x25, - 0x1A, - 0x29, - 0x5B, - 0x24, - 0x45, - 0xA5, - 0x76, - 0x9F, - 0x1C, - 0x32, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x04, - 0x2D, - 0x00, - 0x3C, - 0xCC, - 0x1C, - 0x32, - 0x55, - 0x2C, - 0xAB, - 0x2C, - 0x7F, - 0x2C, - 0xAB, - 0x9F, - 0x2C, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x55, - 0xAB, - 0x76, - 0xA5, - 0x45, - 0x45, - 0x4D, - 0x29, - 0x31, - 0x43, - 0x88, - 0x22, - 0x43, - 0x22, - 0x3C, - 0x69, - 0x22, - 0x57, - 0x77, - 0x57, - 0x22, - 0x57, - 0x57, - 0x57, - 0x22, - 0x57, - 0x57, - 0x22, - 0x57, - 0x22, - 0x3C, - 0x57, - 0x69, - 0x57, - 0x69, - 0x77, - 0x57, - 0x22, - 0x57, - 0x81, - 0x69, - 0x57, - 0x57, - 0x77, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x2E, - 0x27, - 0x38, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x29, - 0x2E, - 0x38, - 0x2E, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x00, - 0x05, - 0x27, - 0x00, - 0x31, - 0x2E, - 0x29, - 0x29, - 0x27, - 0x2E, - 0x29, - 0x27, - 0x39, - 0x27, - 0x27, - 0x2E, - 0x38, - 0x38, - 0x4E, - 0x4E, - 0x43, - 0x43, - 0x4E, - 0x43, - 0x4E, - 0x22, - 0x4B, - 0x72, - 0x43, - 0x43, - 0x22, - 0x22, - 0x62, - 0x50, - 0x50, - 0x50, - 0x22, - 0x50, - 0x65, - 0x43, - 0x43, - 0x4B, - 0x22, - 0x62, - 0x39, - 0x46, - 0x1A, - 0x37, - 0x27, - 0x27, - 0x1A, - 0x29, - 0x25, - 0x27, - 0x00, - 0x04, - 0x25, - 0x00, - 0x0C, - 0x2E, - 0x3E, - 0x25, - 0x1A, - 0x5A, - 0x4D, - 0x1A, - 0x25, - 0x25, - 0x25, - 0x24, - 0x25, - 0x04, - 0x24, - 0x00, - 0x18, - 0x1A, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x21, - 0x54, - 0x1B, - 0x5C, - 0x1B, - 0x21, - 0x21, - 0x1E, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x08, - 0x1E, - 0x04, - 0x1F, - 0x01, - 0x1D, - 0x01, - 0x1F, - 0x06, - 0x1D, - 0x00, - 0x20, - 0x1C, - 0x1C, - 0x1C, - 0x26, - 0x60, - 0x93, - 0x60, - 0x20, - 0x60, - 0x93, - 0x93, - 0x93, - 0x20, - 0x20, - 0x20, - 0x18, - 0x20, - 0x20, - 0x93, - 0x60, - 0x60, - 0x60, - 0x92, - 0x70, - 0x2D, - 0x70, - 0x1C, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x04, - 0x1D, - 0x01, - 0x1F, - 0x01, - 0x1D, - 0x06, - 0x1F, - 0x01, - 0x1E, - 0x01, - 0x1F, - 0x05, - 0x1E, - 0x00, - 0x14, - 0x1F, - 0x1D, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x2A, - 0x1D, - 0x1D, - 0x1D, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x04, - 0x23, - 0x00, - 0x44, - 0x1D, - 0x1D, - 0x23, - 0x1D, - 0x1D, - 0x2B, - 0x1D, - 0x2B, - 0x2B, - 0x1D, - 0x23, - 0x23, - 0x1E, - 0x28, - 0x21, - 0x24, - 0x45, - 0x25, - 0x44, - 0x66, - 0x5A, - 0x24, - 0x45, - 0x36, - 0x23, - 0x7F, - 0x8C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x2D, - 0x70, - 0x2D, - 0x7B, - 0x2D, - 0x2D, - 0x2D, - 0x26, - 0x2D, - 0x26, - 0x55, - 0xAB, - 0x1C, - 0x2C, - 0x2C, - 0x2C, - 0x9F, - 0x2C, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x9F, - 0x2C, - 0x76, - 0x76, - 0xA5, - 0x64, - 0x75, - 0x5A, - 0x2E, - 0x43, - 0x22, - 0x4E, - 0x22, - 0x33, - 0x04, - 0x22, - 0x00, - 0x0C, - 0x72, - 0x22, - 0x22, - 0x22, - 0x3C, - 0x22, - 0x22, - 0x3C, - 0x50, - 0x69, - 0x4E, - 0x69, - 0x04, - 0x22, - 0x00, - 0x04, - 0x72, - 0x22, - 0x72, - 0x57, - 0x04, - 0x22, - 0x01, - 0x69, - 0x01, - 0x22, - 0x00, - 0x00, - 0x00, - 0x09, - 0x29, - 0x27, - 0x29, - 0x29, - 0x27, - 0x29, - 0x29, - 0x2E, - 0x27, - 0x00, - 0x05, - 0x29, - 0x00, - 0x03, - 0x2E, - 0x29, - 0x27, - 0x00, - 0x05, - 0x29, - 0x00, - 0x08, - 0x5A, - 0x29, - 0x29, - 0x3A, - 0x27, - 0x29, - 0x29, - 0x25, - 0x07, - 0x29, - 0x00, - 0x38, - 0x3A, - 0x29, - 0x29, - 0x27, - 0x3A, - 0x27, - 0x27, - 0x37, - 0x27, - 0x27, - 0x37, - 0x37, - 0x62, - 0x27, - 0x67, - 0x4B, - 0x38, - 0x38, - 0x62, - 0x4B, - 0x62, - 0x43, - 0x67, - 0x43, - 0x62, - 0x43, - 0x4B, - 0x62, - 0x4B, - 0x38, - 0x4B, - 0x38, - 0x67, - 0x27, - 0x4B, - 0x1A, - 0x37, - 0x3A, - 0x58, - 0x25, - 0x25, - 0x25, - 0x5B, - 0x25, - 0x24, - 0x24, - 0x25, - 0x25, - 0x25, - 0x51, - 0x25, - 0x24, - 0x25, - 0x51, - 0x51, - 0x25, - 0x05, - 0x24, - 0x00, - 0x1A, - 0x1B, - 0x51, - 0x24, - 0x1B, - 0x5C, - 0x7C, - 0x54, - 0x1B, - 0x1B, - 0x48, - 0x1B, - 0x24, - 0x5C, - 0x1B, - 0x1B, - 0x5C, - 0x1B, - 0x1B, - 0x1B, - 0x30, - 0x1E, - 0x1B, - 0x1E, - 0x21, - 0x1E, - 0x1B, - 0x06, - 0x1E, - 0x00, - 0x2D, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1D, - 0x1E, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x1C, - 0x26, - 0x95, - 0x60, - 0x20, - 0x60, - 0x20, - 0x93, - 0x93, - 0x93, - 0x20, - 0x20, - 0x18, - 0x19, - 0x09, - 0x20, - 0x20, - 0x93, - 0x60, - 0x92, - 0x92, - 0x70, - 0x1C, - 0x1C, - 0x70, - 0x70, - 0x00, - 0x04, - 0x1C, - 0x00, - 0x08, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x04, - 0x1F, - 0x00, - 0x23, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x1D, - 0x23, - 0x1D, - 0x1D, - 0x1D, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x1D, - 0x23, - 0x1D, - 0x2F, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x3C, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x21, - 0x21, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x45, - 0x1B, - 0x36, - 0xA0, - 0x1C, - 0x1C, - 0x1C, - 0x2D, - 0x2D, - 0x2D, - 0x7B, - 0x70, - 0x70, - 0x70, - 0x2D, - 0x70, - 0x2D, - 0x2D, - 0x32, - 0x26, - 0x1C, - 0x55, - 0x1C, - 0x2A, - 0xAB, - 0xAB, - 0x1C, - 0x26, - 0x9F, - 0x55, - 0x8C, - 0x1C, - 0x8C, - 0x55, - 0x2C, - 0x76, - 0x23, - 0x36, - 0x45, - 0x24, - 0x5B, - 0x84, - 0x27, - 0x62, - 0x62, - 0x62, - 0x38, - 0x62, - 0x62, - 0x62, - 0x06, - 0x43, - 0x00, - 0x15, - 0x62, - 0x22, - 0x38, - 0x62, - 0x43, - 0x22, - 0x4B, - 0x62, - 0x43, - 0x62, - 0x22, - 0x43, - 0x4E, - 0x22, - 0x4B, - 0x50, - 0x43, - 0x22, - 0x43, - 0x43, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4F, - 0x4D, - 0x25, - 0x4D, - 0x25, - 0x4D, - 0x25, - 0x4D, - 0x24, - 0x44, - 0x25, - 0x4D, - 0x24, - 0x3A, - 0x24, - 0x24, - 0x4D, - 0x4D, - 0x24, - 0x4D, - 0x25, - 0x24, - 0x4D, - 0x25, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x24, - 0x4D, - 0x24, - 0x25, - 0x24, - 0x24, - 0x24, - 0x4D, - 0x24, - 0x24, - 0x25, - 0x44, - 0x25, - 0x25, - 0x25, - 0x3E, - 0x25, - 0x25, - 0x25, - 0x3E, - 0x58, - 0x25, - 0x58, - 0x3E, - 0x1A, - 0x3E, - 0x58, - 0x1A, - 0x58, - 0x84, - 0x1A, - 0x3E, - 0x25, - 0x1A, - 0x25, - 0x3F, - 0x24, - 0x3A, - 0x24, - 0x51, - 0x24, - 0x24, - 0x24, - 0x54, - 0x00, - 0x04, - 0x24, - 0x00, - 0x1B, - 0x54, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x1B, - 0x1B, - 0x5C, - 0x1B, - 0x1B, - 0x21, - 0x54, - 0x1B, - 0x21, - 0x1B, - 0x21, - 0x1B, - 0x1B, - 0x21, - 0x21, - 0x1E, - 0x30, - 0x1B, - 0x00, - 0x07, - 0x1E, - 0x01, - 0x1B, - 0x01, - 0x1F, - 0x04, - 0x1E, - 0x00, - 0x0C, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x07, - 0x1D, - 0x00, - 0x03, - 0x1C, - 0x1D, - 0x1D, - 0x00, - 0x06, - 0x1C, - 0x00, - 0x04, - 0x2D, - 0x60, - 0x93, - 0x60, - 0x05, - 0x20, - 0x00, - 0x0F, - 0x18, - 0x18, - 0x09, - 0x09, - 0x20, - 0x20, - 0x20, - 0x93, - 0x60, - 0x92, - 0x70, - 0x60, - 0x95, - 0x1C, - 0x70, - 0x00, - 0x06, - 0x1C, - 0x06, - 0x1D, - 0x00, - 0x04, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x06, - 0x1F, - 0x00, - 0x16, - 0x1D, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x23, - 0x1C, - 0x04, - 0x1D, - 0x01, - 0x1F, - 0x05, - 0x1D, - 0x00, - 0x5B, - 0x2B, - 0x1D, - 0x1C, - 0x1D, - 0x2B, - 0x1D, - 0x23, - 0x1E, - 0x28, - 0x21, - 0x21, - 0x24, - 0x21, - 0x28, - 0x21, - 0x7F, - 0x23, - 0x1D, - 0x2C, - 0x26, - 0x2D, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x7B, - 0x70, - 0x2D, - 0x2D, - 0x32, - 0x2D, - 0x32, - 0x8C, - 0x55, - 0x2C, - 0x2A, - 0x1C, - 0x2A, - 0x26, - 0x55, - 0x26, - 0x8C, - 0x26, - 0x8C, - 0x26, - 0x55, - 0x55, - 0x23, - 0x76, - 0x36, - 0x28, - 0x45, - 0x24, - 0x44, - 0x1A, - 0x58, - 0x25, - 0x25, - 0x37, - 0x25, - 0x37, - 0x25, - 0x37, - 0x25, - 0x37, - 0x58, - 0x37, - 0x37, - 0x25, - 0x37, - 0x37, - 0x37, - 0x25, - 0x58, - 0x27, - 0x37, - 0x3A, - 0x37, - 0x25, - 0x58, - 0x37, - 0x37, - 0x27, - 0x37, - 0x27, - 0x37, - 0x37, - 0x37, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x29, - 0x2E, - 0x27, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x27, - 0x27, - 0x29, - 0x27, - 0x2E, - 0x27, - 0x29, - 0x27, - 0x29, - 0x29, - 0x27, - 0x27, - 0x29, - 0x29, - 0x27, - 0x29, - 0x27, - 0x29, - 0x29, - 0x29, - 0x27, - 0x29, - 0x29, - 0x29, - 0x27, - 0x0A, - 0x29, - 0x00, - 0x25, - 0x27, - 0x29, - 0x27, - 0x39, - 0x38, - 0x27, - 0x39, - 0x62, - 0x39, - 0x62, - 0x62, - 0x43, - 0x62, - 0x62, - 0x65, - 0x62, - 0x43, - 0x50, - 0x65, - 0x62, - 0x4B, - 0x22, - 0x65, - 0x4B, - 0x62, - 0x4B, - 0x37, - 0x4B, - 0x27, - 0x37, - 0x37, - 0x27, - 0x25, - 0x58, - 0x25, - 0x25, - 0x58, - 0x00, - 0x05, - 0x25, - 0x01, - 0x44, - 0x01, - 0x1A, - 0x04, - 0x25, - 0x00, - 0x04, - 0x1A, - 0x44, - 0x24, - 0x25, - 0x06, - 0x24, - 0x00, - 0x17, - 0x21, - 0x24, - 0x1B, - 0x24, - 0x24, - 0x24, - 0x54, - 0x1B, - 0x24, - 0x1B, - 0x5C, - 0x1B, - 0x21, - 0x24, - 0x1B, - 0x21, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x1B, - 0x30, - 0x1B, - 0x00, - 0x08, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1E, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1D, - 0x1F, - 0x1F, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x26, - 0x1C, - 0x2D, - 0x60, - 0x60, - 0x93, - 0x93, - 0x20, - 0x93, - 0x20, - 0x20, - 0x20, - 0x09, - 0x18, - 0x18, - 0x20, - 0x20, - 0x93, - 0x60, - 0x60, - 0x92, - 0x70, - 0x70, - 0x1C, - 0x2D, - 0x26, - 0x00, - 0x05, - 0x1C, - 0x00, - 0x05, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1E, - 0x1F, - 0x1F, - 0x00, - 0x06, - 0x1E, - 0x00, - 0x15, - 0x1D, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x23, - 0x1C, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x00, - 0x06, - 0x23, - 0x00, - 0x18, - 0x1E, - 0x23, - 0x23, - 0x1D, - 0x1F, - 0x1D, - 0x23, - 0x23, - 0x1F, - 0x23, - 0x1E, - 0x1E, - 0x21, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0xA5, - 0x1B, - 0xAF, - 0xA0, - 0x1C, - 0x55, - 0x05, - 0x2D, - 0x01, - 0x7B, - 0x05, - 0x2D, - 0x00, - 0x05, - 0x32, - 0x32, - 0x26, - 0x55, - 0x1C, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x1E, - 0x9F, - 0x55, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x55, - 0x2C, - 0x7F, - 0x76, - 0x36, - 0x45, - 0x64, - 0x75, - 0x5B, - 0x27, - 0x67, - 0x62, - 0x38, - 0x62, - 0x38, - 0x43, - 0x62, - 0x43, - 0x43, - 0x43, - 0x22, - 0x43, - 0x43, - 0x50, - 0x04, - 0x43, - 0x01, - 0x22, - 0x04, - 0x43, - 0x00, - 0x0C, - 0x22, - 0x43, - 0x43, - 0x4E, - 0x43, - 0x43, - 0x43, - 0x22, - 0x50, - 0x50, - 0x22, - 0x22, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x38, - 0x27, - 0x2E, - 0x46, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x00, - 0x04, - 0x27, - 0x00, - 0x06, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x04, - 0x27, - 0x00, - 0x30, - 0x2E, - 0x27, - 0x27, - 0x38, - 0x27, - 0x38, - 0x38, - 0x62, - 0x38, - 0x22, - 0x43, - 0x43, - 0x22, - 0x83, - 0x22, - 0x22, - 0x50, - 0x50, - 0x6A, - 0x77, - 0x22, - 0x22, - 0x65, - 0x22, - 0x22, - 0x50, - 0x22, - 0x22, - 0x62, - 0x43, - 0x38, - 0x38, - 0x1A, - 0x37, - 0x27, - 0x29, - 0x27, - 0x25, - 0x27, - 0x1A, - 0x5A, - 0x25, - 0x27, - 0x25, - 0x27, - 0x58, - 0x1A, - 0x2E, - 0x05, - 0x25, - 0x00, - 0x22, - 0x1A, - 0x4D, - 0x1A, - 0x63, - 0x25, - 0x24, - 0x1A, - 0x24, - 0x25, - 0x24, - 0x25, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x1B, - 0x54, - 0x1B, - 0x1B, - 0x54, - 0x21, - 0x1B, - 0x1E, - 0x1B, - 0x1E, - 0x1B, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x07, - 0x1E, - 0x00, - 0x09, - 0x1F, - 0x1F, - 0x1E, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x00, - 0x04, - 0x1D, - 0x04, - 0x1C, - 0x00, - 0x1A, - 0x2D, - 0x60, - 0x93, - 0x93, - 0x93, - 0x20, - 0x93, - 0x20, - 0x20, - 0x20, - 0x18, - 0x20, - 0x20, - 0x93, - 0x93, - 0x60, - 0x92, - 0x70, - 0x70, - 0x1C, - 0x70, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x1C, - 0x05, - 0x1D, - 0x05, - 0x1F, - 0x04, - 0x1E, - 0x01, - 0x30, - 0x04, - 0x1E, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1D, - 0x1D, - 0x2A, - 0x00, - 0x06, - 0x1C, - 0x00, - 0x0B, - 0x2F, - 0x1C, - 0x1D, - 0x2C, - 0x1D, - 0x7F, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x36, - 0x00, - 0x06, - 0x23, - 0x00, - 0x42, - 0x36, - 0x1E, - 0x1E, - 0x28, - 0x4F, - 0x23, - 0x1E, - 0x41, - 0x1E, - 0x1E, - 0x28, - 0x36, - 0x21, - 0x64, - 0x21, - 0x24, - 0x45, - 0x45, - 0x21, - 0x36, - 0x23, - 0x2F, - 0x55, - 0x26, - 0x32, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x2D, - 0x7B, - 0x70, - 0x2D, - 0x7B, - 0x26, - 0x32, - 0x1C, - 0xC0, - 0x1C, - 0xB4, - 0x2C, - 0x2C, - 0x7F, - 0xAB, - 0x1C, - 0x55, - 0x9F, - 0x55, - 0x55, - 0x8C, - 0x55, - 0xAB, - 0x2C, - 0x76, - 0x36, - 0x45, - 0x91, - 0x4D, - 0x29, - 0x38, - 0x38, - 0x22, - 0x22, - 0x43, - 0x22, - 0x50, - 0x04, - 0x22, - 0x01, - 0x43, - 0x01, - 0x3C, - 0x04, - 0x22, - 0x00, - 0x13, - 0x3C, - 0x3C, - 0x22, - 0x3C, - 0x22, - 0x22, - 0x22, - 0x43, - 0x22, - 0x22, - 0x22, - 0x69, - 0x22, - 0x22, - 0x69, - 0x22, - 0x69, - 0x6A, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x46, - 0x2E, - 0x46, - 0x46, - 0x2E, - 0x46, - 0x2E, - 0x46, - 0x2E, - 0x2E, - 0x2E, - 0x46, - 0x04, - 0x2E, - 0x00, - 0x52, - 0x38, - 0x2E, - 0x2E, - 0x2E, - 0x38, - 0x2E, - 0x46, - 0x2E, - 0x2E, - 0x38, - 0x2E, - 0x46, - 0x2E, - 0x4E, - 0x4E, - 0x33, - 0x33, - 0x72, - 0x34, - 0x22, - 0x69, - 0x77, - 0x22, - 0x57, - 0x81, - 0x22, - 0x77, - 0x53, - 0x22, - 0x53, - 0x77, - 0x81, - 0x77, - 0x69, - 0x22, - 0x22, - 0x3C, - 0x72, - 0x4E, - 0x43, - 0x38, - 0x34, - 0x38, - 0x39, - 0x38, - 0x27, - 0x27, - 0x27, - 0x38, - 0x37, - 0x27, - 0x27, - 0x38, - 0x39, - 0x39, - 0x46, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x1A, - 0x5E, - 0x27, - 0x25, - 0x25, - 0x3A, - 0x1A, - 0x5A, - 0x29, - 0x25, - 0x25, - 0x25, - 0x24, - 0x66, - 0x1A, - 0x25, - 0x25, - 0x24, - 0x24, - 0x25, - 0x25, - 0x1B, - 0x05, - 0x24, - 0x00, - 0x18, - 0x21, - 0x1B, - 0x5C, - 0x21, - 0x1B, - 0x21, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x1E, - 0x21, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1F, - 0x04, - 0x1D, - 0x00, - 0x08, - 0x2B, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x26, - 0x95, - 0x73, - 0x04, - 0x93, - 0x00, - 0x19, - 0x20, - 0x20, - 0x20, - 0x93, - 0x20, - 0x93, - 0x20, - 0x60, - 0x60, - 0x92, - 0x70, - 0x2D, - 0x95, - 0x2D, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x1D, - 0x2B, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x00, - 0x05, - 0x1E, - 0x01, - 0x30, - 0x04, - 0x1E, - 0x00, - 0x16, - 0x21, - 0x30, - 0x1E, - 0x1E, - 0x23, - 0x1F, - 0x2C, - 0x1C, - 0x2A, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x23, - 0x23, - 0x1C, - 0x1D, - 0x7F, - 0x05, - 0x23, - 0x00, - 0x2D, - 0x36, - 0x23, - 0xA7, - 0x21, - 0xA0, - 0x1E, - 0x45, - 0x36, - 0x1B, - 0x21, - 0x28, - 0x1E, - 0x36, - 0x28, - 0x21, - 0x21, - 0x21, - 0x1B, - 0x44, - 0x24, - 0x64, - 0xA8, - 0x45, - 0x36, - 0x23, - 0x7F, - 0x55, - 0x8C, - 0x32, - 0x2D, - 0x2D, - 0x2D, - 0x70, - 0x2D, - 0x7B, - 0x2D, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x26, - 0x8C, - 0x9F, - 0x1C, - 0x7F, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x32, - 0x9F, - 0x55, - 0x9F, - 0x55, - 0x55, - 0x9F, - 0x55, - 0x76, - 0xAF, - 0x45, - 0x45, - 0x66, - 0x5A, - 0x29, - 0x46, - 0x22, - 0x88, - 0x22, - 0x22, - 0x69, - 0x7D, - 0x22, - 0x69, - 0x69, - 0x57, - 0x77, - 0x22, - 0x53, - 0x77, - 0x57, - 0x53, - 0x69, - 0x22, - 0x82, - 0x57, - 0x53, - 0x57, - 0x57, - 0x57, - 0x7D, - 0x22, - 0x82, - 0x57, - 0x77, - 0x53, - 0x57, - 0x53, - 0x57, - 0x57, - 0x53, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x42, - 0x31, - 0x31, - 0x33, - 0x42, - 0x31, - 0x31, - 0x42, - 0x31, - 0x42, - 0x31, - 0x33, - 0x05, - 0x31, - 0x00, - 0x05, - 0x33, - 0x31, - 0x31, - 0x31, - 0x33, - 0x00, - 0x07, - 0x31, - 0x01, - 0x33, - 0x08, - 0x31, - 0x00, - 0x30, - 0x33, - 0x46, - 0x31, - 0x31, - 0x31, - 0x33, - 0x33, - 0x42, - 0x42, - 0x22, - 0x69, - 0x7D, - 0x57, - 0x53, - 0x57, - 0x53, - 0x94, - 0x53, - 0x87, - 0x94, - 0x87, - 0x53, - 0x68, - 0x53, - 0x87, - 0x53, - 0x53, - 0x53, - 0x82, - 0x77, - 0x57, - 0x22, - 0x69, - 0x33, - 0x72, - 0x72, - 0x4E, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x27, - 0x33, - 0x38, - 0x43, - 0x27, - 0x22, - 0x04, - 0x38, - 0x00, - 0x0F, - 0x67, - 0x38, - 0x27, - 0x84, - 0x27, - 0x39, - 0x27, - 0x27, - 0x27, - 0x58, - 0x27, - 0x25, - 0x27, - 0x25, - 0x27, - 0x00, - 0x05, - 0x25, - 0x00, - 0x06, - 0x29, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x04, - 0x24, - 0x00, - 0x24, - 0x63, - 0x1B, - 0x63, - 0x54, - 0x24, - 0x21, - 0x21, - 0x64, - 0x7C, - 0x1B, - 0x28, - 0x1B, - 0x28, - 0x21, - 0x1B, - 0x1E, - 0x1E, - 0x4F, - 0x1E, - 0x1E, - 0x23, - 0x23, - 0x1E, - 0x41, - 0x1F, - 0x41, - 0x1D, - 0x1D, - 0x2B, - 0x2A, - 0x1C, - 0x26, - 0x26, - 0x32, - 0x60, - 0x60, - 0x09, - 0x93, - 0x00, - 0x56, - 0x60, - 0x60, - 0x60, - 0x95, - 0x2D, - 0x1C, - 0x70, - 0x1C, - 0x1C, - 0x26, - 0x1D, - 0x1D, - 0x2B, - 0x1D, - 0x41, - 0x1D, - 0x41, - 0x1F, - 0x30, - 0x1F, - 0x30, - 0x1E, - 0x30, - 0x1F, - 0x5C, - 0x1E, - 0x5C, - 0x5C, - 0x5C, - 0x1E, - 0x1B, - 0x21, - 0x1E, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x1C, - 0x2A, - 0x26, - 0x1C, - 0x26, - 0x26, - 0x1C, - 0x2C, - 0x2C, - 0x1C, - 0x1C, - 0x2C, - 0x7F, - 0x1D, - 0x76, - 0xA5, - 0x23, - 0x45, - 0x45, - 0x36, - 0x36, - 0x1B, - 0x45, - 0x1B, - 0xA8, - 0x1B, - 0x45, - 0x45, - 0x21, - 0x45, - 0x64, - 0x21, - 0x89, - 0x36, - 0x21, - 0x63, - 0x63, - 0x63, - 0x75, - 0x24, - 0x1B, - 0xA7, - 0xA5, - 0xAF, - 0x7F, - 0x55, - 0x32, - 0xC0, - 0x32, - 0x07, - 0x2D, - 0x00, - 0x3E, - 0x32, - 0x32, - 0x8C, - 0x8C, - 0x55, - 0x2C, - 0xB4, - 0x2C, - 0x7F, - 0x7F, - 0xAB, - 0x9F, - 0x55, - 0x9F, - 0x9F, - 0xAB, - 0xAB, - 0xAB, - 0x7F, - 0xA0, - 0xA5, - 0x45, - 0x66, - 0x66, - 0x90, - 0x46, - 0x33, - 0x69, - 0x57, - 0x82, - 0x82, - 0x57, - 0x82, - 0x53, - 0x53, - 0x82, - 0x53, - 0x82, - 0x94, - 0x82, - 0x98, - 0x98, - 0x82, - 0x53, - 0x9C, - 0x53, - 0x53, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x9C, - 0x98, - 0x94, - 0x94, - 0x82, - 0x8F, - 0x94, - 0x9C, - 0x94, - 0x94, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x42, - 0x42, - 0x74, - 0x74, - 0x42, - 0x74, - 0x42, - 0x3B, - 0x42, - 0x42, - 0x74, - 0x00, - 0x0D, - 0x42, - 0x00, - 0x50, - 0x34, - 0x42, - 0x33, - 0x42, - 0x42, - 0x31, - 0x42, - 0x42, - 0x42, - 0x34, - 0x42, - 0x31, - 0x42, - 0x42, - 0x42, - 0x34, - 0x42, - 0x34, - 0x42, - 0x34, - 0x34, - 0x56, - 0x74, - 0x7D, - 0x56, - 0x8A, - 0x82, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x7E, - 0x99, - 0x8F, - 0x99, - 0x8F, - 0xAE, - 0x68, - 0x8F, - 0x7E, - 0x8F, - 0x94, - 0x94, - 0x98, - 0x82, - 0x82, - 0x7D, - 0x7D, - 0x69, - 0x88, - 0x72, - 0x34, - 0x72, - 0x31, - 0x22, - 0x22, - 0x22, - 0x33, - 0x33, - 0x22, - 0x22, - 0x34, - 0x33, - 0x22, - 0x33, - 0x22, - 0x33, - 0x43, - 0x31, - 0x38, - 0x4E, - 0x38, - 0x22, - 0x2E, - 0x38, - 0x38, - 0x38, - 0x27, - 0x27, - 0x38, - 0x05, - 0x27, - 0x00, - 0x32, - 0x25, - 0x27, - 0x1A, - 0x25, - 0x25, - 0x25, - 0x27, - 0x29, - 0x24, - 0x25, - 0x24, - 0x4D, - 0x63, - 0x24, - 0x24, - 0x24, - 0x64, - 0x24, - 0x24, - 0x64, - 0x1B, - 0x21, - 0x64, - 0x21, - 0x89, - 0x7C, - 0x21, - 0x21, - 0x28, - 0x28, - 0x28, - 0x4F, - 0x1E, - 0x4F, - 0x1E, - 0x4F, - 0x41, - 0x23, - 0x1D, - 0x23, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x26, - 0x2D, - 0x60, - 0x73, - 0x93, - 0x93, - 0x06, - 0x73, - 0x00, - 0x7C, - 0x92, - 0x95, - 0x7B, - 0x32, - 0x2D, - 0x26, - 0x26, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x2B, - 0x23, - 0x2B, - 0x4F, - 0x41, - 0x1E, - 0x30, - 0x1F, - 0x30, - 0x21, - 0x2D, - 0x20, - 0x19, - 0x09, - 0x2D, - 0x23, - 0x21, - 0x4C, - 0x4C, - 0x21, - 0x21, - 0x36, - 0x1E, - 0x23, - 0x23, - 0x2C, - 0x2F, - 0x2C, - 0x26, - 0x1C, - 0x26, - 0x1C, - 0x2A, - 0x2A, - 0x2C, - 0x1C, - 0x2C, - 0xAB, - 0x1D, - 0x7F, - 0x23, - 0x36, - 0xBD, - 0x36, - 0x45, - 0x45, - 0x45, - 0xD0, - 0x45, - 0x45, - 0xBC, - 0x1B, - 0x4D, - 0xA8, - 0x24, - 0x91, - 0x24, - 0x91, - 0x24, - 0x91, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x75, - 0x64, - 0x36, - 0x36, - 0xA0, - 0x7F, - 0x55, - 0x8C, - 0x8C, - 0xC0, - 0x2D, - 0x85, - 0x70, - 0x85, - 0x2D, - 0x85, - 0x32, - 0x85, - 0x32, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0x7F, - 0x2F, - 0xB4, - 0xAB, - 0x2C, - 0xAB, - 0xAB, - 0x2C, - 0xAB, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0x89, - 0xA8, - 0xBC, - 0x5A, - 0xB3, - 0x4E, - 0x34, - 0x8A, - 0x98, - 0x98, - 0x82, - 0x05, - 0x94, - 0x00, - 0x1A, - 0x8F, - 0x8F, - 0x94, - 0x8F, - 0x8F, - 0x94, - 0x7E, - 0x94, - 0x52, - 0x7E, - 0x52, - 0x8F, - 0x8F, - 0x52, - 0x7E, - 0x7E, - 0x52, - 0x7E, - 0x7E, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x13, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x6E, - 0x00, - 0x07, - 0x74, - 0x00, - 0x33, - 0x6E, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x42, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x42, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x6C, - 0x6B, - 0x5D, - 0x9C, - 0x52, - 0x52, - 0x7E, - 0x7E, - 0xAD, - 0x9B, - 0x96, - 0x9B, - 0xAD, - 0x96, - 0x9B, - 0xA2, - 0x9B, - 0x96, - 0x9B, - 0xAE, - 0xAE, - 0x7E, - 0xA3, - 0x9C, - 0x94, - 0x82, - 0x56, - 0x7D, - 0x7D, - 0x7D, - 0x88, - 0x69, - 0x00, - 0x04, - 0x34, - 0x00, - 0x17, - 0x69, - 0x7D, - 0x7D, - 0x57, - 0x57, - 0x69, - 0x3B, - 0x57, - 0x34, - 0x22, - 0x34, - 0x22, - 0x34, - 0x33, - 0x72, - 0x27, - 0x22, - 0x4E, - 0x4E, - 0x4E, - 0x33, - 0x22, - 0x27, - 0x00, - 0x05, - 0x38, - 0x00, - 0x2F, - 0x4E, - 0x27, - 0x5E, - 0x27, - 0x27, - 0x29, - 0x25, - 0x25, - 0x29, - 0x25, - 0x27, - 0x25, - 0x25, - 0x44, - 0x25, - 0x25, - 0x24, - 0x63, - 0x24, - 0x24, - 0x63, - 0x63, - 0x24, - 0x24, - 0x1B, - 0x64, - 0x7C, - 0x21, - 0x64, - 0x21, - 0x89, - 0x21, - 0x36, - 0x28, - 0x28, - 0x1E, - 0x5F, - 0x4F, - 0x4F, - 0x41, - 0x2F, - 0x2B, - 0x2B, - 0x2A, - 0x2A, - 0x8C, - 0x95, - 0x00, - 0x08, - 0x73, - 0x00, - 0x38, - 0x92, - 0x95, - 0x7B, - 0x85, - 0x32, - 0x2A, - 0x26, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x41, - 0x23, - 0x30, - 0x23, - 0x28, - 0x4F, - 0x28, - 0x28, - 0x28, - 0x30, - 0x20, - 0x18, - 0x19, - 0x09, - 0x19, - 0x09, - 0x95, - 0x24, - 0x24, - 0x4C, - 0x21, - 0x28, - 0x23, - 0x4F, - 0x2F, - 0x2F, - 0x1C, - 0x2C, - 0x2A, - 0x55, - 0x2A, - 0x55, - 0x1C, - 0x55, - 0x55, - 0x2C, - 0x2C, - 0x2C, - 0x7F, - 0x23, - 0xA0, - 0x1E, - 0x1B, - 0xA7, - 0x05, - 0x45, - 0x00, - 0x1D, - 0xA8, - 0x66, - 0x66, - 0x66, - 0x29, - 0x5A, - 0x5B, - 0x5B, - 0x25, - 0x4D, - 0x24, - 0x75, - 0x4D, - 0x5B, - 0x24, - 0x66, - 0x91, - 0x45, - 0xA7, - 0xA5, - 0x76, - 0xAB, - 0x9F, - 0x8C, - 0x32, - 0x32, - 0x85, - 0x85, - 0x32, - 0x00, - 0x04, - 0x85, - 0x00, - 0x0B, - 0x32, - 0x8C, - 0x8C, - 0x55, - 0x2C, - 0xAB, - 0x76, - 0x7F, - 0xA0, - 0x7F, - 0x7F, - 0x00, - 0x06, - 0xAB, - 0x00, - 0x0C, - 0xB4, - 0xB4, - 0xA5, - 0xA7, - 0xA8, - 0x66, - 0xB3, - 0x5E, - 0xBA, - 0x8A, - 0x94, - 0xA3, - 0x05, - 0x7E, - 0x00, - 0x15, - 0xAE, - 0x7E, - 0xA2, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0xAE, - 0xA2, - 0xB1, - 0xAE, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xB1, - 0x00, - 0x07, - 0x8E, - 0x00, - 0x00, - 0x09, - 0x61, - 0x01, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x0F, - 0x3B, - 0x61, - 0x6E, - 0x3B, - 0x74, - 0x3B, - 0x74, - 0x6E, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x3B, - 0x74, - 0x42, - 0x00, - 0x06, - 0x74, - 0x00, - 0x48, - 0x42, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x6C, - 0x3B, - 0x6B, - 0x8A, - 0x9C, - 0x9C, - 0x94, - 0x7E, - 0xAE, - 0x7E, - 0xAE, - 0x7E, - 0x7E, - 0xA2, - 0x7E, - 0xA2, - 0x7E, - 0x99, - 0x7E, - 0x99, - 0xBF, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x82, - 0x82, - 0x7D, - 0x7D, - 0x57, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x88, - 0x57, - 0x69, - 0x69, - 0x69, - 0x57, - 0x57, - 0x7D, - 0x57, - 0x57, - 0x57, - 0x7D, - 0x69, - 0x57, - 0x88, - 0x3C, - 0x69, - 0x33, - 0x33, - 0x33, - 0x72, - 0x4E, - 0x72, - 0x2E, - 0x22, - 0x22, - 0x4E, - 0x4E, - 0x22, - 0x04, - 0x38, - 0x00, - 0x2F, - 0x67, - 0x39, - 0x39, - 0x37, - 0x27, - 0x39, - 0x25, - 0x25, - 0x27, - 0x25, - 0x3A, - 0x3A, - 0x25, - 0x25, - 0x4D, - 0x25, - 0x44, - 0x63, - 0x44, - 0x24, - 0x63, - 0x63, - 0x64, - 0x64, - 0x24, - 0x64, - 0x64, - 0x21, - 0x21, - 0x7C, - 0x21, - 0x7C, - 0x28, - 0x28, - 0x28, - 0x4F, - 0x4F, - 0x4F, - 0x7A, - 0x2F, - 0x2B, - 0x2B, - 0x55, - 0x26, - 0x55, - 0xCC, - 0x95, - 0x00, - 0x04, - 0x73, - 0x00, - 0x18, - 0x95, - 0x95, - 0x95, - 0x85, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x7A, - 0x41, - 0x41, - 0x4F, - 0x4F, - 0x4F, - 0x28, - 0x28, - 0x28, - 0x4C, - 0x4C, - 0x54, - 0x06, - 0x19, - 0x00, - 0x80, - 0x09, - 0x55, - 0x5C, - 0x54, - 0x21, - 0x7C, - 0x4F, - 0x4F, - 0x23, - 0x2C, - 0x2F, - 0x1C, - 0x2C, - 0x2C, - 0x26, - 0x1C, - 0x55, - 0x2A, - 0x26, - 0x26, - 0x55, - 0x2A, - 0x2C, - 0x2F, - 0x23, - 0xAF, - 0x36, - 0x45, - 0xE8, - 0x45, - 0xA8, - 0xA8, - 0x66, - 0xA8, - 0x66, - 0x5B, - 0x5B, - 0x5B, - 0x59, - 0x27, - 0x29, - 0x3A, - 0x5A, - 0x25, - 0x5A, - 0x25, - 0x4D, - 0x4D, - 0x24, - 0x45, - 0x45, - 0x36, - 0x76, - 0x76, - 0xAB, - 0x2C, - 0x55, - 0x26, - 0xC0, - 0x32, - 0x32, - 0x32, - 0x85, - 0x32, - 0xC0, - 0x32, - 0x8C, - 0x32, - 0x55, - 0x2C, - 0xAB, - 0x7F, - 0x7F, - 0xA0, - 0x7F, - 0xA0, - 0x7F, - 0xAB, - 0x7F, - 0xAB, - 0xAB, - 0x7F, - 0xB4, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0x59, - 0x2E, - 0xBA, - 0x57, - 0x5D, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x8F, - 0x8F, - 0x52, - 0x99, - 0x7E, - 0x7E, - 0xA2, - 0x7E, - 0x7E, - 0xA2, - 0x7E, - 0x7E, - 0xAE, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x06, - 0x61, - 0x01, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x14, - 0x3B, - 0x61, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0x74, - 0x74, - 0x34, - 0x34, - 0x42, - 0x42, - 0x34, - 0x34, - 0x42, - 0x34, - 0x34, - 0x34, - 0x42, - 0x06, - 0x34, - 0x00, - 0x46, - 0x42, - 0x34, - 0x42, - 0x34, - 0x74, - 0x34, - 0x3B, - 0x7D, - 0x56, - 0x56, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x8F, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x94, - 0x8F, - 0x9E, - 0x98, - 0x94, - 0x82, - 0x82, - 0x82, - 0x7D, - 0x7D, - 0x69, - 0x69, - 0x88, - 0x69, - 0x3C, - 0x88, - 0x3C, - 0x3C, - 0x69, - 0x69, - 0x57, - 0x69, - 0x57, - 0x77, - 0x57, - 0x53, - 0x57, - 0x57, - 0x7D, - 0x22, - 0x69, - 0x69, - 0x72, - 0x22, - 0x22, - 0x33, - 0x3C, - 0x22, - 0x4E, - 0x22, - 0x4E, - 0x4E, - 0x4E, - 0x43, - 0x27, - 0x22, - 0x05, - 0x38, - 0x00, - 0x49, - 0x37, - 0x27, - 0x67, - 0x37, - 0x25, - 0x67, - 0x25, - 0x58, - 0x25, - 0x58, - 0x25, - 0x25, - 0x25, - 0x4D, - 0x44, - 0x25, - 0x44, - 0x4D, - 0x63, - 0x44, - 0x24, - 0x24, - 0x91, - 0x64, - 0x24, - 0x64, - 0x64, - 0x64, - 0x7C, - 0x54, - 0x7C, - 0x7C, - 0x4C, - 0x28, - 0x28, - 0x4F, - 0x4F, - 0x7A, - 0x41, - 0x2B, - 0x7A, - 0x2F, - 0x2A, - 0x55, - 0x85, - 0xC0, - 0xCC, - 0x95, - 0xCC, - 0x95, - 0xCC, - 0xC0, - 0x26, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x7A, - 0x7A, - 0x41, - 0x4F, - 0x4F, - 0x28, - 0x30, - 0x28, - 0x28, - 0x4C, - 0x4C, - 0x21, - 0x54, - 0x21, - 0x00, - 0x06, - 0x19, - 0x00, - 0x5F, - 0x09, - 0x09, - 0x4F, - 0x24, - 0x7C, - 0x30, - 0x36, - 0x23, - 0x23, - 0x2F, - 0x2C, - 0x2C, - 0x55, - 0x1C, - 0x2A, - 0x55, - 0x2A, - 0x26, - 0x55, - 0x2A, - 0x2A, - 0x2C, - 0x2C, - 0x7A, - 0x76, - 0x5F, - 0x36, - 0x45, - 0x1B, - 0x66, - 0x75, - 0x66, - 0x75, - 0x4D, - 0x66, - 0x5B, - 0x59, - 0x29, - 0x29, - 0x27, - 0x2E, - 0x29, - 0x29, - 0x27, - 0x25, - 0x29, - 0x4D, - 0x44, - 0x63, - 0x64, - 0x21, - 0xA5, - 0x5F, - 0x7F, - 0x2F, - 0x9F, - 0x55, - 0x8C, - 0x26, - 0x8C, - 0xC0, - 0xC0, - 0x32, - 0x32, - 0x32, - 0x26, - 0x8C, - 0x55, - 0x55, - 0x9F, - 0x2C, - 0x7F, - 0x7F, - 0x76, - 0x76, - 0x7F, - 0x76, - 0xAB, - 0xAB, - 0x2C, - 0xB4, - 0x7F, - 0xAB, - 0x7A, - 0x76, - 0xA5, - 0x45, - 0x75, - 0x5A, - 0x5A, - 0x9A, - 0x72, - 0x56, - 0x57, - 0x8F, - 0x00, - 0x04, - 0x94, - 0x00, - 0x11, - 0x68, - 0x68, - 0x8F, - 0x94, - 0x68, - 0x68, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0x9B, - 0x7E, - 0x9B, - 0xB1, - 0x00, - 0x05, - 0x8E, - 0x00, - 0x07, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x0F, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x3B, - 0x6E, - 0x74, - 0x74, - 0x74, - 0x42, - 0x34, - 0x34, - 0x42, - 0x00, - 0x04, - 0x34, - 0x00, - 0x10, - 0x42, - 0x33, - 0x34, - 0x31, - 0x34, - 0x33, - 0x33, - 0x34, - 0x33, - 0x34, - 0x33, - 0x34, - 0x34, - 0x42, - 0x34, - 0x33, - 0x04, - 0x34, - 0x04, - 0x7D, - 0x00, - 0x17, - 0x82, - 0x53, - 0x98, - 0x98, - 0x87, - 0x9E, - 0x87, - 0x53, - 0x81, - 0x87, - 0x81, - 0x87, - 0x53, - 0x53, - 0x81, - 0x82, - 0x82, - 0x53, - 0x7D, - 0x57, - 0x57, - 0x69, - 0x69, - 0x00, - 0x04, - 0x3C, - 0x00, - 0x18, - 0x50, - 0x50, - 0x3C, - 0x6A, - 0x3C, - 0x77, - 0x22, - 0x83, - 0x57, - 0x77, - 0x22, - 0x77, - 0x69, - 0x69, - 0x83, - 0x3C, - 0x3C, - 0x3C, - 0x50, - 0x22, - 0x72, - 0x50, - 0x72, - 0x50, - 0x08, - 0x43, - 0x00, - 0x9E, - 0x62, - 0x38, - 0x67, - 0x67, - 0x67, - 0x37, - 0x39, - 0x37, - 0x58, - 0x58, - 0x37, - 0x58, - 0x58, - 0x58, - 0x25, - 0x58, - 0x25, - 0x25, - 0x25, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x63, - 0x44, - 0x24, - 0x63, - 0x63, - 0x63, - 0x54, - 0x54, - 0x64, - 0x54, - 0x7C, - 0x7C, - 0x4C, - 0x7C, - 0x28, - 0x4F, - 0x7C, - 0x4F, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x2C, - 0x2A, - 0x2C, - 0x55, - 0xC0, - 0x55, - 0x32, - 0x55, - 0xD5, - 0x2A, - 0x55, - 0x2B, - 0x2A, - 0x2C, - 0x41, - 0x7A, - 0x41, - 0x41, - 0x30, - 0x41, - 0x4F, - 0x4F, - 0x4C, - 0x28, - 0x4C, - 0x7C, - 0x4C, - 0x4C, - 0x54, - 0x54, - 0x54, - 0x28, - 0x54, - 0x54, - 0x85, - 0x09, - 0x19, - 0x19, - 0x19, - 0xC0, - 0x5C, - 0x54, - 0x28, - 0x28, - 0x23, - 0x7A, - 0x2F, - 0x2C, - 0x2C, - 0x2C, - 0x2A, - 0x2C, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x55, - 0x2B, - 0x2F, - 0x23, - 0x5F, - 0x5F, - 0x36, - 0x91, - 0x75, - 0x4D, - 0x66, - 0x5B, - 0x4D, - 0x5A, - 0x5B, - 0x29, - 0x5A, - 0x27, - 0x2E, - 0x27, - 0x38, - 0x27, - 0x39, - 0x3A, - 0x27, - 0x5A, - 0x24, - 0x63, - 0x64, - 0x7C, - 0x5F, - 0x5F, - 0x2F, - 0x2F, - 0x2C, - 0x2C, - 0x55, - 0x26, - 0x8C, - 0x26, - 0x32, - 0x32, - 0x55, - 0x32, - 0x55, - 0x8C, - 0x55, - 0x2A, - 0xAB, - 0x7F, - 0x2F, - 0x76, - 0x76, - 0x76, - 0x05, - 0x7F, - 0x00, - 0x0F, - 0x2F, - 0xB4, - 0x7F, - 0xA0, - 0x7A, - 0xA5, - 0xBE, - 0x75, - 0x90, - 0x5A, - 0x2E, - 0x33, - 0x88, - 0x53, - 0x98, - 0x00, - 0x04, - 0x53, - 0x00, - 0x03, - 0x9E, - 0x87, - 0x98, - 0x00, - 0x04, - 0x87, - 0x00, - 0x16, - 0x53, - 0x68, - 0x68, - 0x98, - 0x94, - 0x8F, - 0x7E, - 0x7E, - 0x7E, - 0x9B, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xAC, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x15, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x3B, - 0x74, - 0x74, - 0x34, - 0x42, - 0x34, - 0x34, - 0x00, - 0x0A, - 0x33, - 0x01, - 0x72, - 0x07, - 0x33, - 0x00, - 0x11, - 0x4E, - 0x33, - 0x34, - 0x34, - 0x33, - 0x88, - 0x33, - 0x34, - 0x69, - 0x57, - 0x7D, - 0x57, - 0x81, - 0x57, - 0x81, - 0x77, - 0x81, - 0x00, - 0x04, - 0x77, - 0x00, - 0x0E, - 0x83, - 0x77, - 0x77, - 0x77, - 0x57, - 0x77, - 0x83, - 0x57, - 0x69, - 0x83, - 0x3C, - 0x83, - 0x3C, - 0x3C, - 0x06, - 0x50, - 0x00, - 0x1B, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x22, - 0x77, - 0x83, - 0x57, - 0x77, - 0x83, - 0x22, - 0x3C, - 0x3C, - 0x50, - 0x50, - 0x3C, - 0x50, - 0x50, - 0x50, - 0x43, - 0x50, - 0x43, - 0x50, - 0x43, - 0x43, - 0x43, - 0x65, - 0x00, - 0x05, - 0x62, - 0x00, - 0x03, - 0x67, - 0x67, - 0x67, - 0x00, - 0x04, - 0x37, - 0x01, - 0x3E, - 0x06, - 0x58, - 0x00, - 0x1A, - 0x3A, - 0x58, - 0x25, - 0x3A, - 0x3A, - 0x44, - 0x25, - 0x44, - 0x44, - 0x44, - 0x63, - 0x51, - 0x63, - 0x63, - 0x64, - 0x51, - 0x63, - 0x54, - 0x54, - 0x7C, - 0x54, - 0x7C, - 0x7C, - 0x30, - 0x4F, - 0x7C, - 0x05, - 0x7A, - 0x00, - 0x0A, - 0x55, - 0x2A, - 0x2B, - 0x55, - 0x2B, - 0x55, - 0x2B, - 0x2B, - 0x2C, - 0x2B, - 0x04, - 0x41, - 0x00, - 0x23, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x4C, - 0x4C, - 0x30, - 0x4C, - 0x4C, - 0x54, - 0x4C, - 0x54, - 0x64, - 0x54, - 0x54, - 0x54, - 0x5C, - 0x5C, - 0x48, - 0x7B, - 0x19, - 0x19, - 0x19, - 0x09, - 0x21, - 0x21, - 0x4C, - 0x4F, - 0x4F, - 0x23, - 0x7A, - 0x2B, - 0x2F, - 0x2C, - 0x2B, - 0x00, - 0x05, - 0x2A, - 0x00, - 0x62, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x7A, - 0x5F, - 0x28, - 0x21, - 0x45, - 0x75, - 0x4D, - 0x66, - 0x5B, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x29, - 0x2E, - 0x2E, - 0x27, - 0x38, - 0x4E, - 0x4E, - 0x67, - 0x27, - 0x3A, - 0x4D, - 0x44, - 0x63, - 0x7C, - 0x7C, - 0x5F, - 0x7A, - 0x7A, - 0x2F, - 0x2C, - 0x2A, - 0x2A, - 0x55, - 0x2A, - 0x26, - 0x55, - 0x55, - 0x32, - 0x2A, - 0x8C, - 0x2A, - 0x55, - 0xAB, - 0x2F, - 0x2C, - 0x76, - 0x7A, - 0x76, - 0x7A, - 0x76, - 0x7A, - 0xAB, - 0x2F, - 0x7F, - 0x7F, - 0x7A, - 0x7A, - 0x76, - 0xA5, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x29, - 0x39, - 0x4E, - 0x34, - 0x22, - 0x77, - 0x57, - 0x87, - 0x53, - 0x81, - 0x81, - 0x81, - 0x53, - 0x87, - 0x81, - 0x53, - 0x81, - 0x53, - 0x81, - 0x53, - 0x53, - 0x68, - 0x87, - 0x94, - 0x99, - 0x9B, - 0x9B, - 0xAE, - 0x04, - 0x8E, - 0x00, - 0x07, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x61, - 0x00, - 0x2F, - 0x6E, - 0x3B, - 0x6E, - 0x74, - 0x3B, - 0x74, - 0x42, - 0x34, - 0x33, - 0x33, - 0x33, - 0x4E, - 0x31, - 0x22, - 0x4E, - 0x33, - 0x4E, - 0x33, - 0x4E, - 0x4E, - 0x38, - 0x31, - 0x4E, - 0x38, - 0x22, - 0x38, - 0x4E, - 0x33, - 0x4E, - 0x33, - 0x4E, - 0x33, - 0x4E, - 0x34, - 0x33, - 0x88, - 0x72, - 0x72, - 0x72, - 0x3C, - 0x69, - 0x3C, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x77, - 0x00, - 0x06, - 0x6A, - 0x00, - 0x19, - 0x3C, - 0x6A, - 0x6A, - 0x3C, - 0x6A, - 0x3C, - 0x3C, - 0x50, - 0x50, - 0x22, - 0x50, - 0x50, - 0x65, - 0x65, - 0x4B, - 0x22, - 0x65, - 0x65, - 0x6A, - 0x65, - 0x22, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x20, - 0x50, - 0x50, - 0x65, - 0x22, - 0x50, - 0x65, - 0x50, - 0x65, - 0x65, - 0x43, - 0x65, - 0x65, - 0x22, - 0x4B, - 0x62, - 0x65, - 0x65, - 0x62, - 0x62, - 0x4B, - 0x67, - 0x62, - 0x37, - 0x3D, - 0x37, - 0x37, - 0x47, - 0x37, - 0x3E, - 0x37, - 0x3E, - 0x3E, - 0x05, - 0x58, - 0x00, - 0x18, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x3A, - 0x51, - 0x51, - 0x44, - 0x51, - 0x63, - 0x54, - 0x51, - 0x51, - 0x54, - 0x54, - 0x7C, - 0x4C, - 0x7C, - 0x7C, - 0x4F, - 0x7C, - 0x08, - 0x7A, - 0x00, - 0x2F, - 0x2F, - 0x7A, - 0x7A, - 0x7A, - 0x41, - 0x41, - 0x4F, - 0x30, - 0x41, - 0x41, - 0x30, - 0x30, - 0x4C, - 0x30, - 0x4C, - 0x4C, - 0x54, - 0x54, - 0x4C, - 0x54, - 0x54, - 0x54, - 0x5C, - 0x51, - 0x54, - 0x51, - 0x5C, - 0x51, - 0x5C, - 0x54, - 0x20, - 0x19, - 0x19, - 0x20, - 0x55, - 0x4C, - 0x4C, - 0x30, - 0x4F, - 0x41, - 0x2F, - 0x2B, - 0x2B, - 0x2C, - 0x2B, - 0x2B, - 0x2C, - 0x00, - 0x07, - 0x2A, - 0x00, - 0x69, - 0x41, - 0x4F, - 0x5F, - 0x28, - 0x64, - 0x64, - 0x4D, - 0x8B, - 0x25, - 0x5A, - 0x5A, - 0x29, - 0x3A, - 0x29, - 0x27, - 0x27, - 0x38, - 0x38, - 0x62, - 0x43, - 0x39, - 0x39, - 0x3A, - 0x3A, - 0x44, - 0x54, - 0x64, - 0x7C, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x2C, - 0x2C, - 0x2C, - 0x2A, - 0x55, - 0x55, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2A, - 0x2C, - 0x55, - 0x2B, - 0x7F, - 0x76, - 0x2F, - 0x7A, - 0x76, - 0x76, - 0x76, - 0x2F, - 0x7A, - 0x7A, - 0x7F, - 0x2F, - 0x7F, - 0x7A, - 0x7A, - 0x7A, - 0x89, - 0x64, - 0x4D, - 0x4D, - 0x29, - 0x27, - 0x38, - 0x4B, - 0x6A, - 0x22, - 0x22, - 0x22, - 0x83, - 0x77, - 0x83, - 0x77, - 0x83, - 0x22, - 0x53, - 0x77, - 0x22, - 0x22, - 0x81, - 0x77, - 0x77, - 0x81, - 0x94, - 0x68, - 0x94, - 0x99, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x74, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x33, - 0xBC, - 0xBD, - 0xE9, - 0xA0, - 0xBD, - 0x2E, - 0x43, - 0x4E, - 0x38, - 0x38, - 0x38, - 0xAF, - 0xBD, - 0xBD, - 0xBD, - 0xD0, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x6F, - 0xBC, - 0x4E, - 0x72, - 0x50, - 0x72, - 0x50, - 0x50, - 0x6A, - 0x65, - 0x2E, - 0xD0, - 0xA0, - 0x73, - 0x18, - 0x93, - 0xE5, - 0xAF, - 0x5A, - 0x65, - 0x65, - 0x50, - 0x50, - 0x50, - 0x65, - 0x50, - 0x65, - 0xA8, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0x4B, - 0x62, - 0xA0, - 0xD5, - 0x09, - 0x20, - 0xD5, - 0xD0, - 0x6A, - 0x65, - 0x6A, - 0x6A, - 0x65, - 0x6A, - 0x50, - 0x65, - 0xBE, - 0xBD, - 0xD0, - 0xBD, - 0xA0, - 0x50, - 0x4B, - 0x65, - 0x4B, - 0x66, - 0xBD, - 0xA0, - 0xBD, - 0xBD, - 0x66, - 0x62, - 0x4B, - 0x67, - 0x4B, - 0x67, - 0x3D, - 0x47, - 0x47, - 0x91, - 0xA0, - 0x8C, - 0x20, - 0x19, - 0x73, - 0xAB, - 0xB4, - 0x63, - 0x37, - 0x3E, - 0x58, - 0x58, - 0x58, - 0x3A, - 0x58, - 0x58, - 0x58, - 0x3A, - 0x3A, - 0x44, - 0x58, - 0x44, - 0x44, - 0x51, - 0x44, - 0x51, - 0x5F, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x4C, - 0x64, - 0x4C, - 0x4C, - 0x7C, - 0x4F, - 0x7C, - 0x7A, - 0x4F, - 0x00, - 0x08, - 0x7A, - 0x00, - 0x9C, - 0x41, - 0x41, - 0x4F, - 0x7A, - 0xC0, - 0x70, - 0x73, - 0x20, - 0x92, - 0xC0, - 0x2B, - 0x4C, - 0x4C, - 0x7A, - 0x26, - 0x55, - 0x55, - 0x55, - 0x54, - 0x51, - 0x54, - 0x51, - 0x5C, - 0x51, - 0x48, - 0x48, - 0x48, - 0x95, - 0x19, - 0x19, - 0x09, - 0x93, - 0x54, - 0x28, - 0x28, - 0x4F, - 0x5F, - 0x2B, - 0x2F, - 0x2F, - 0x2B, - 0x70, - 0x7B, - 0x2D, - 0x7B, - 0x70, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x32, - 0x8C, - 0x8C, - 0x8C, - 0x9F, - 0x75, - 0x25, - 0x5A, - 0x3A, - 0x3A, - 0x84, - 0xBE, - 0xB4, - 0xBD, - 0xBD, - 0xBD, - 0x67, - 0x38, - 0x67, - 0x62, - 0x84, - 0x84, - 0x44, - 0x24, - 0x64, - 0xAB, - 0x8C, - 0x95, - 0x20, - 0x09, - 0x60, - 0x2D, - 0x70, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x2A, - 0x2C, - 0x2A, - 0x2A, - 0x32, - 0x70, - 0x70, - 0x85, - 0x70, - 0x2C, - 0x7A, - 0x5F, - 0x7A, - 0x5F, - 0x7A, - 0x76, - 0x55, - 0x70, - 0x70, - 0x85, - 0x85, - 0x5F, - 0x7A, - 0x7C, - 0x89, - 0x91, - 0x63, - 0x3A, - 0xA7, - 0xA0, - 0xDE, - 0xE5, - 0xBD, - 0xD0, - 0x83, - 0x6A, - 0x83, - 0x22, - 0x6A, - 0xBE, - 0xD0, - 0x9F, - 0x93, - 0x20, - 0x20, - 0xD5, - 0xD0, - 0xA7, - 0x57, - 0x77, - 0x53, - 0x53, - 0x68, - 0x7E, - 0x7E, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x18, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x34, - 0x34, - 0x33, - 0x33, - 0xBD, - 0x19, - 0x19, - 0x19, - 0x18, - 0x38, - 0x62, - 0x38, - 0x67, - 0x67, - 0x39, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x04, - 0x67, - 0x00, - 0x11, - 0x38, - 0x67, - 0x19, - 0x19, - 0x19, - 0x18, - 0xA0, - 0x38, - 0x62, - 0x43, - 0x62, - 0x65, - 0x43, - 0x62, - 0xD5, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x09, - 0x09, - 0x09, - 0xDF, - 0x5A, - 0x65, - 0x65, - 0x62, - 0x65, - 0x65, - 0x65, - 0x9F, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x20, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x18, - 0xA8, - 0x06, - 0x65, - 0x00, - 0x1A, - 0xCC, - 0x19, - 0x19, - 0x09, - 0x18, - 0x4B, - 0x62, - 0x4B, - 0x4B, - 0xBD, - 0x19, - 0x19, - 0x19, - 0x09, - 0xA0, - 0x4B, - 0x67, - 0x3D, - 0x4B, - 0x3D, - 0x47, - 0x91, - 0xCC, - 0x19, - 0x09, - 0x09, - 0x05, - 0x19, - 0x00, - 0x03, - 0x09, - 0xCC, - 0x44, - 0x00, - 0x05, - 0x58, - 0x00, - 0x1A, - 0x3A, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x58, - 0x44, - 0x44, - 0x51, - 0x63, - 0x51, - 0x8C, - 0x19, - 0x19, - 0x19, - 0x20, - 0x89, - 0x54, - 0x54, - 0x7C, - 0x54, - 0x7C, - 0x7C, - 0x4F, - 0x4F, - 0x4F, - 0x04, - 0x7A, - 0x00, - 0x06, - 0x4F, - 0x4F, - 0x4F, - 0x41, - 0x30, - 0x2D, - 0x05, - 0x19, - 0x00, - 0x14, - 0x09, - 0x09, - 0x09, - 0x20, - 0x7A, - 0x2D, - 0x19, - 0x19, - 0x19, - 0x09, - 0x51, - 0x54, - 0x5C, - 0x51, - 0x5C, - 0x51, - 0x48, - 0x48, - 0x48, - 0x09, - 0x04, - 0x19, - 0x00, - 0x09, - 0x4F, - 0x28, - 0x30, - 0x4F, - 0x41, - 0x2F, - 0x2F, - 0x2B, - 0x2B, - 0x00, - 0x05, - 0x19, - 0x00, - 0x1F, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x2F, - 0x92, - 0x19, - 0x19, - 0x19, - 0x20, - 0x63, - 0x44, - 0x25, - 0x27, - 0x3A, - 0x58, - 0xBD, - 0x09, - 0x19, - 0x19, - 0x19, - 0x84, - 0x37, - 0x67, - 0x37, - 0x37, - 0x58, - 0x25, - 0x76, - 0x09, - 0x00, - 0x08, - 0x19, - 0x00, - 0x09, - 0x09, - 0x7B, - 0x2B, - 0x2A, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x7B, - 0x00, - 0x04, - 0x19, - 0x00, - 0x15, - 0x2C, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x4F, - 0x7A, - 0x70, - 0x09, - 0x20, - 0x19, - 0x19, - 0x7A, - 0x4F, - 0x7C, - 0x7C, - 0x54, - 0x4D, - 0xCC, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x05, - 0x6A, - 0x65, - 0x6A, - 0x66, - 0x09, - 0x00, - 0x05, - 0x19, - 0x00, - 0x17, - 0x18, - 0x19, - 0x19, - 0x19, - 0x20, - 0x8B, - 0x69, - 0x53, - 0x87, - 0x68, - 0x99, - 0x7E, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x61, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x31, - 0x6D, - 0x61, - 0x6E, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x33, - 0x4E, - 0xBD, - 0x19, - 0x19, - 0x09, - 0x09, - 0x39, - 0x37, - 0x67, - 0x37, - 0x84, - 0x45, - 0x09, - 0x19, - 0x09, - 0x19, - 0x18, - 0xA5, - 0x37, - 0x67, - 0x67, - 0x37, - 0x39, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x62, - 0x67, - 0x38, - 0x62, - 0x62, - 0x3A, - 0x73, - 0x09, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x09, - 0x19, - 0x19, - 0x18, - 0x18, - 0x75, - 0x05, - 0x4B, - 0x01, - 0xE5, - 0x04, - 0x19, - 0x01, - 0x09, - 0x05, - 0x19, - 0x00, - 0x05, - 0x09, - 0x09, - 0x18, - 0x19, - 0x91, - 0x00, - 0x05, - 0x4B, - 0x00, - 0x0A, - 0xDF, - 0x19, - 0x09, - 0x19, - 0x09, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x0F, - 0xA0, - 0x37, - 0x47, - 0x47, - 0x3E, - 0x47, - 0x91, - 0x18, - 0x19, - 0x19, - 0x18, - 0x19, - 0x19, - 0x19, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x21, - 0x93, - 0x63, - 0x3E, - 0x58, - 0x37, - 0x58, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x58, - 0x58, - 0x44, - 0x51, - 0x58, - 0x51, - 0x51, - 0x2C, - 0x09, - 0x09, - 0x19, - 0x20, - 0x41, - 0x5C, - 0x7C, - 0x4C, - 0x7C, - 0x4C, - 0x7C, - 0x7C, - 0x7C, - 0x4F, - 0x7C, - 0x00, - 0x05, - 0x4F, - 0x00, - 0x05, - 0x30, - 0x4C, - 0x32, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x14, - 0x09, - 0x09, - 0x19, - 0x19, - 0x09, - 0x20, - 0x19, - 0x19, - 0x09, - 0x09, - 0x54, - 0x48, - 0x51, - 0x54, - 0x51, - 0x5C, - 0x48, - 0x48, - 0x2F, - 0x09, - 0x04, - 0x19, - 0x00, - 0x09, - 0x26, - 0x30, - 0x30, - 0x4F, - 0x4F, - 0x41, - 0x41, - 0x2B, - 0x2B, - 0x00, - 0x05, - 0x19, - 0x01, - 0x2A, - 0x04, - 0x2B, - 0x00, - 0x18, - 0x41, - 0x60, - 0x19, - 0x19, - 0x19, - 0x09, - 0x63, - 0x44, - 0x4D, - 0x25, - 0x84, - 0x84, - 0xB4, - 0x09, - 0x19, - 0x19, - 0x19, - 0x67, - 0x37, - 0x37, - 0x37, - 0x58, - 0x25, - 0xCC, - 0x09, - 0x19, - 0x00, - 0x04, - 0x09, - 0x09, - 0x20, - 0x73, - 0x04, - 0x2B, - 0x01, - 0x2C, - 0x01, - 0x2D, - 0x04, - 0x19, - 0x00, - 0x1D, - 0x2F, - 0x7A, - 0x7A, - 0x4F, - 0x4F, - 0x7A, - 0x7A, - 0x85, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4F, - 0x28, - 0x4F, - 0x7C, - 0x63, - 0xA0, - 0x09, - 0x09, - 0x19, - 0x19, - 0x18, - 0x19, - 0x19, - 0x4B, - 0x65, - 0x66, - 0x09, - 0x00, - 0x05, - 0x19, - 0x01, - 0x20, - 0x01, - 0x18, - 0x04, - 0x19, - 0x00, - 0x09, - 0x09, - 0x8B, - 0x77, - 0x53, - 0x98, - 0x8F, - 0xA2, - 0x7E, - 0x9B, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x05, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x07, - 0x61, - 0x00, - 0x09, - 0x3B, - 0x74, - 0x74, - 0x42, - 0x33, - 0x33, - 0x4E, - 0x4E, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x01, - 0x67, - 0x04, - 0x37, - 0x00, - 0x08, - 0x7F, - 0x19, - 0x09, - 0x19, - 0x19, - 0x19, - 0x9F, - 0x58, - 0x04, - 0x37, - 0x00, - 0x1F, - 0x09, - 0x19, - 0x19, - 0x20, - 0xA0, - 0x37, - 0x37, - 0x3D, - 0x67, - 0x4B, - 0x73, - 0x19, - 0x19, - 0x09, - 0x09, - 0x19, - 0x20, - 0xD5, - 0x93, - 0x09, - 0x09, - 0x18, - 0x18, - 0x19, - 0x19, - 0x3D, - 0x4B, - 0x3D, - 0x67, - 0x4B, - 0x2C, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x09, - 0x09, - 0x20, - 0xCC, - 0x85, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x75, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0xCC, - 0x20, - 0x09, - 0x09, - 0x09, - 0x47, - 0x47, - 0x3D, - 0x47, - 0xB4, - 0x04, - 0x19, - 0x01, - 0x7F, - 0x04, - 0x47, - 0x01, - 0x64, - 0x04, - 0x19, - 0x00, - 0x06, - 0x18, - 0x8C, - 0x7A, - 0x63, - 0x76, - 0x85, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x7B, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x51, - 0x58, - 0x44, - 0x3F, - 0x51, - 0x48, - 0xAB, - 0x09, - 0x19, - 0x09, - 0x09, - 0x7C, - 0x51, - 0x4C, - 0x54, - 0x64, - 0x04, - 0x7C, - 0x00, - 0x15, - 0x89, - 0x4F, - 0x7C, - 0x7C, - 0x4F, - 0x4F, - 0x30, - 0x30, - 0x30, - 0x20, - 0x09, - 0x09, - 0x19, - 0x19, - 0x92, - 0x2A, - 0x30, - 0x41, - 0x26, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x09, - 0x5C, - 0x51, - 0x51, - 0x48, - 0x48, - 0x51, - 0x51, - 0x48, - 0x7B, - 0x09, - 0x00, - 0x05, - 0x19, - 0x01, - 0x4C, - 0x01, - 0x30, - 0x04, - 0x41, - 0x00, - 0x03, - 0x2B, - 0x2B, - 0x18, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1C, - 0x2B, - 0x2B, - 0x2A, - 0x2B, - 0x2B, - 0x41, - 0x60, - 0x18, - 0x19, - 0x19, - 0x19, - 0x24, - 0x24, - 0x44, - 0x3A, - 0x58, - 0x37, - 0xBD, - 0x09, - 0x09, - 0x19, - 0x19, - 0x3E, - 0x37, - 0x37, - 0x3E, - 0x58, - 0x2C, - 0x04, - 0x19, - 0x00, - 0x06, - 0x20, - 0xC0, - 0x2A, - 0x2B, - 0x26, - 0x60, - 0x04, - 0x09, - 0x00, - 0x06, - 0x95, - 0x2B, - 0x2C, - 0x41, - 0x41, - 0x2D, - 0x04, - 0x09, - 0x00, - 0x12, - 0x2B, - 0x4F, - 0x4F, - 0x4F, - 0x5F, - 0x41, - 0x7A, - 0x2D, - 0x09, - 0x09, - 0x19, - 0x09, - 0x4F, - 0x28, - 0x4C, - 0x64, - 0x54, - 0xCC, - 0x04, - 0x19, - 0x00, - 0x10, - 0x18, - 0x18, - 0x20, - 0x65, - 0x4B, - 0x20, - 0x19, - 0x09, - 0x19, - 0x09, - 0x45, - 0x4B, - 0x4B, - 0x4B, - 0x91, - 0xCC, - 0x04, - 0x19, - 0x00, - 0x10, - 0x22, - 0x81, - 0x87, - 0x68, - 0x7E, - 0xAE, - 0xAD, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x33, - 0x4E, - 0x38, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x26, - 0x3E, - 0x37, - 0x37, - 0x3E, - 0x58, - 0x18, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x37, - 0x3E, - 0x3E, - 0x37, - 0x58, - 0x09, - 0x09, - 0x19, - 0x09, - 0xBD, - 0x37, - 0x37, - 0x37, - 0x47, - 0xA0, - 0x18, - 0x09, - 0x09, - 0x19, - 0x93, - 0x75, - 0x3D, - 0x4B, - 0x3D, - 0x44, - 0xCC, - 0x04, - 0x19, - 0x00, - 0x06, - 0xD5, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x9F, - 0x04, - 0x19, - 0x01, - 0x73, - 0x01, - 0x63, - 0x04, - 0x3D, - 0x00, - 0x0B, - 0xCC, - 0x20, - 0x19, - 0x19, - 0x19, - 0x85, - 0x3D, - 0x47, - 0x47, - 0x3D, - 0xCC, - 0x00, - 0x04, - 0x09, - 0x04, - 0x47, - 0x01, - 0xA0, - 0x04, - 0x19, - 0x01, - 0xB4, - 0x04, - 0x40, - 0x00, - 0x25, - 0x93, - 0x19, - 0x19, - 0x19, - 0x09, - 0x7C, - 0x3F, - 0x3F, - 0x40, - 0x3F, - 0x3F, - 0x89, - 0x18, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x58, - 0x3E, - 0x58, - 0x84, - 0x84, - 0x84, - 0x58, - 0x3A, - 0x84, - 0x58, - 0x51, - 0x44, - 0x51, - 0x51, - 0x55, - 0x09, - 0x09, - 0x09, - 0x20, - 0x4C, - 0x00, - 0x04, - 0x54, - 0x00, - 0x19, - 0x4C, - 0x54, - 0x7C, - 0x4C, - 0x4C, - 0x7C, - 0x7C, - 0x30, - 0x4C, - 0x7C, - 0x4C, - 0x7C, - 0x55, - 0x09, - 0x09, - 0x09, - 0x19, - 0x92, - 0x5C, - 0x5C, - 0x5C, - 0x4C, - 0x5C, - 0x5C, - 0x95, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x09, - 0x5C, - 0x5C, - 0x5C, - 0x51, - 0x48, - 0x5C, - 0x48, - 0x48, - 0x09, - 0x09, - 0x00, - 0x05, - 0x19, - 0x00, - 0x09, - 0x2A, - 0x30, - 0x4F, - 0x41, - 0x2F, - 0x2B, - 0x41, - 0x41, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x27, - 0x2B, - 0x2B, - 0x41, - 0x2B, - 0x41, - 0x2B, - 0x92, - 0x18, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x63, - 0x44, - 0x44, - 0x25, - 0x58, - 0x7F, - 0x20, - 0x09, - 0x19, - 0x19, - 0x3E, - 0x3E, - 0x3E, - 0x3F, - 0x45, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x41, - 0x30, - 0x30, - 0x4F, - 0x41, - 0x41, - 0x60, - 0x00, - 0x04, - 0x09, - 0x00, - 0x05, - 0x2A, - 0x41, - 0x2B, - 0x2B, - 0x2D, - 0x00, - 0x04, - 0x09, - 0x01, - 0x2B, - 0x06, - 0x4F, - 0x00, - 0x33, - 0x2D, - 0x18, - 0x09, - 0x09, - 0x09, - 0x4C, - 0x30, - 0x7C, - 0x4C, - 0x44, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x45, - 0x4B, - 0x4B, - 0x4B, - 0xA7, - 0x09, - 0x09, - 0x09, - 0x19, - 0x75, - 0x4B, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0x84, - 0x09, - 0x19, - 0x19, - 0x19, - 0xD0, - 0x69, - 0x87, - 0x94, - 0x8F, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x09, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x61, - 0x3B, - 0x3B, - 0x74, - 0x33, - 0x34, - 0x4E, - 0x4E, - 0x38, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0D, - 0x3E, - 0x37, - 0x58, - 0x3E, - 0x64, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x89, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x0A, - 0x19, - 0x09, - 0x09, - 0x09, - 0x7F, - 0x58, - 0x47, - 0x3E, - 0x47, - 0x18, - 0x04, - 0x19, - 0x01, - 0x91, - 0x04, - 0x3D, - 0x00, - 0x07, - 0x4B, - 0x63, - 0x20, - 0x19, - 0x19, - 0x19, - 0x20, - 0x00, - 0x04, - 0x47, - 0x01, - 0x9F, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x40, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x58, - 0x3D, - 0x3D, - 0x40, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x18, - 0x47, - 0x47, - 0x47, - 0x40, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x0A, - 0x2F, - 0x40, - 0x40, - 0x40, - 0x7C, - 0x18, - 0x19, - 0x19, - 0x19, - 0x9F, - 0x07, - 0x3F, - 0x00, - 0x1F, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x7B, - 0x58, - 0x47, - 0x37, - 0x84, - 0x58, - 0x84, - 0x58, - 0x84, - 0x58, - 0x44, - 0x3E, - 0x51, - 0x51, - 0x51, - 0x2A, - 0x20, - 0x19, - 0x19, - 0x19, - 0x28, - 0x5C, - 0x4C, - 0x51, - 0x54, - 0x54, - 0x54, - 0x00, - 0x07, - 0x7C, - 0x00, - 0x0A, - 0x4C, - 0x7C, - 0x4C, - 0x55, - 0x19, - 0x19, - 0x09, - 0x18, - 0x2B, - 0x30, - 0x06, - 0x5C, - 0x00, - 0x06, - 0x60, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x06, - 0x48, - 0x00, - 0x10, - 0x7F, - 0x18, - 0x19, - 0x20, - 0x93, - 0x19, - 0x09, - 0x09, - 0x2D, - 0x41, - 0x30, - 0x41, - 0x41, - 0x41, - 0x2B, - 0x2B, - 0x04, - 0x19, - 0x00, - 0x13, - 0x20, - 0x2B, - 0x2B, - 0x41, - 0x2B, - 0x2B, - 0x41, - 0x92, - 0x19, - 0x09, - 0x18, - 0x18, - 0x4C, - 0x54, - 0x54, - 0x51, - 0x25, - 0x58, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x05, - 0x3E, - 0x3F, - 0x58, - 0x3F, - 0x9F, - 0x00, - 0x04, - 0x19, - 0x01, - 0x41, - 0x05, - 0x30, - 0x00, - 0x2E, - 0x41, - 0x41, - 0x19, - 0x20, - 0x09, - 0x09, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x19, - 0x09, - 0x19, - 0x19, - 0x2F, - 0x4F, - 0x4F, - 0x4F, - 0x28, - 0x4F, - 0x41, - 0x85, - 0x19, - 0x19, - 0x09, - 0x09, - 0x30, - 0x4C, - 0x54, - 0x4C, - 0x44, - 0x18, - 0x19, - 0x19, - 0x09, - 0x20, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0xA0, - 0x20, - 0x18, - 0x18, - 0x93, - 0x07, - 0x3D, - 0x04, - 0x19, - 0x00, - 0x10, - 0xD0, - 0x77, - 0x53, - 0x68, - 0x99, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x3B, - 0x6E, - 0x74, - 0x74, - 0x34, - 0x33, - 0x4E, - 0x38, - 0x67, - 0xBD, - 0x04, - 0x19, - 0x00, - 0x05, - 0x3E, - 0x3E, - 0x3F, - 0x40, - 0xAB, - 0x00, - 0x04, - 0x09, - 0x00, - 0x11, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x3E, - 0x40, - 0x3E, - 0x40, - 0x19, - 0x09, - 0x09, - 0x19, - 0x7F, - 0x3E, - 0x3E, - 0x37, - 0x89, - 0x00, - 0x04, - 0x19, - 0x00, - 0x12, - 0xCC, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0xB4, - 0x19, - 0x19, - 0x19, - 0x09, - 0xA0, - 0x40, - 0x47, - 0x47, - 0xAB, - 0x04, - 0x19, - 0x01, - 0x47, - 0x01, - 0x47, - 0x05, - 0x3D, - 0x00, - 0x0E, - 0xA0, - 0x19, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x40, - 0x40, - 0x47, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x18, - 0x04, - 0x40, - 0x00, - 0x0F, - 0x7F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x40, - 0x3F, - 0x40, - 0x8C, - 0x09, - 0x19, - 0x19, - 0x18, - 0x54, - 0x00, - 0x08, - 0x3F, - 0x00, - 0x1E, - 0x40, - 0x40, - 0x40, - 0x47, - 0x3E, - 0x58, - 0x58, - 0x58, - 0x84, - 0x84, - 0x84, - 0x58, - 0x58, - 0x58, - 0x44, - 0x3F, - 0x51, - 0x48, - 0xAB, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x5C, - 0x5C, - 0x54, - 0x54, - 0x54, - 0x63, - 0x04, - 0x54, - 0x00, - 0x0C, - 0x4C, - 0x54, - 0x54, - 0x4C, - 0x4C, - 0x4C, - 0x26, - 0x19, - 0x09, - 0x09, - 0x09, - 0x2A, - 0x07, - 0x5C, - 0x00, - 0x11, - 0x60, - 0x18, - 0x19, - 0x09, - 0x09, - 0x5C, - 0x48, - 0x5C, - 0x51, - 0x51, - 0x48, - 0x48, - 0x93, - 0x18, - 0x19, - 0x19, - 0x41, - 0x00, - 0x04, - 0x19, - 0x01, - 0x30, - 0x06, - 0x41, - 0x05, - 0x19, - 0x00, - 0x07, - 0x2B, - 0x41, - 0x1D, - 0x41, - 0x41, - 0x41, - 0x92, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0x30, - 0x54, - 0x54, - 0x24, - 0x51, - 0x25, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x11, - 0x3E, - 0x40, - 0x3F, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x20, - 0x4C, - 0x4C, - 0x30, - 0x30, - 0x41, - 0x41, - 0x30, - 0x30, - 0x00, - 0x08, - 0x41, - 0x00, - 0x1E, - 0x32, - 0x09, - 0x09, - 0x19, - 0x19, - 0x2B, - 0x30, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x41, - 0x32, - 0x19, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x30, - 0x4C, - 0x54, - 0x5C, - 0x18, - 0x19, - 0x19, - 0x09, - 0x73, - 0x47, - 0x3D, - 0x3D, - 0x04, - 0x4B, - 0x00, - 0x09, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x47, - 0x47, - 0x3D, - 0x63, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0xD0, - 0x22, - 0x81, - 0x9E, - 0x8F, - 0x7E, - 0x9B, - 0x00, - 0x06, - 0x8E, - 0x00, - 0x03, - 0xCB, - 0xCB, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x0A, - 0x3B, - 0x6E, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x38, - 0x67, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x1F, - 0x3E, - 0x3F, - 0x3F, - 0x3E, - 0x20, - 0x09, - 0x09, - 0x09, - 0x24, - 0x09, - 0x09, - 0x19, - 0x09, - 0x3E, - 0x3F, - 0x3E, - 0x25, - 0x19, - 0x09, - 0x09, - 0x19, - 0x7F, - 0x3E, - 0x3E, - 0x3E, - 0x7F, - 0x19, - 0x09, - 0x19, - 0x19, - 0x7F, - 0x00, - 0x06, - 0x3D, - 0x00, - 0x0B, - 0x47, - 0xA5, - 0x09, - 0x19, - 0x19, - 0x09, - 0x76, - 0x3D, - 0x40, - 0x3D, - 0x2C, - 0x00, - 0x04, - 0x19, - 0x00, - 0x2A, - 0x47, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x36, - 0x19, - 0x19, - 0x19, - 0x09, - 0x76, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x20, - 0x19, - 0x19, - 0x18, - 0x40, - 0x40, - 0x47, - 0x40, - 0xA0, - 0x19, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x40, - 0x40, - 0x3F, - 0x09, - 0x09, - 0x19, - 0x19, - 0x18, - 0x40, - 0x40, - 0x48, - 0x08, - 0x3F, - 0x00, - 0x09, - 0x3E, - 0x3E, - 0x3E, - 0x37, - 0x84, - 0x47, - 0x84, - 0x37, - 0x84, - 0x00, - 0x04, - 0x58, - 0x00, - 0x09, - 0x51, - 0x3F, - 0x48, - 0x55, - 0x09, - 0x19, - 0x19, - 0x20, - 0x30, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x0E, - 0x54, - 0x5C, - 0x54, - 0x63, - 0x54, - 0x64, - 0x54, - 0x4C, - 0x7C, - 0x54, - 0x4C, - 0x5C, - 0x4C, - 0x93, - 0x04, - 0x09, - 0x01, - 0x30, - 0x06, - 0x5C, - 0x01, - 0x92, - 0x04, - 0x19, - 0x01, - 0x5C, - 0x05, - 0x48, - 0x00, - 0x0C, - 0x30, - 0x19, - 0x19, - 0x19, - 0x20, - 0x5C, - 0x7B, - 0x19, - 0x19, - 0x19, - 0x26, - 0x30, - 0x05, - 0x41, - 0x01, - 0x20, - 0x04, - 0x19, - 0x01, - 0x2B, - 0x05, - 0x41, - 0x00, - 0x0C, - 0x92, - 0x19, - 0x09, - 0x19, - 0x19, - 0x30, - 0x4C, - 0x4C, - 0x48, - 0x24, - 0x51, - 0x7F, - 0x04, - 0x19, - 0x04, - 0x3F, - 0x04, - 0x19, - 0x01, - 0x2D, - 0x04, - 0x4C, - 0x01, - 0x30, - 0x0B, - 0x41, - 0x00, - 0x0D, - 0x32, - 0x09, - 0x09, - 0x19, - 0x19, - 0x2B, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x4F, - 0x4F, - 0x2D, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0F, - 0x30, - 0x4C, - 0x54, - 0x54, - 0x51, - 0x09, - 0x19, - 0x19, - 0x09, - 0x60, - 0x47, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x00, - 0x04, - 0x4B, - 0x00, - 0x1B, - 0x3D, - 0x47, - 0x3D, - 0x3E, - 0xA0, - 0x85, - 0x18, - 0x09, - 0x09, - 0x19, - 0x19, - 0xD0, - 0x81, - 0x53, - 0x68, - 0x8F, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x3B, - 0x3B, - 0x34, - 0x34, - 0x33, - 0x43, - 0x38, - 0x67, - 0xBD, - 0x04, - 0x19, - 0x00, - 0x35, - 0x3F, - 0x3E, - 0x3F, - 0x24, - 0x09, - 0x19, - 0x19, - 0x95, - 0x3F, - 0x20, - 0x09, - 0x19, - 0x19, - 0x54, - 0x3F, - 0x3E, - 0x3F, - 0x19, - 0x19, - 0x09, - 0x20, - 0x7F, - 0x3E, - 0x40, - 0x3E, - 0x7F, - 0x20, - 0x09, - 0x19, - 0x19, - 0xA5, - 0x47, - 0x47, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x3D, - 0x3E, - 0x09, - 0x19, - 0x19, - 0x19, - 0x9F, - 0x40, - 0x40, - 0x40, - 0x9F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x47, - 0x00, - 0x06, - 0x3D, - 0x00, - 0x0E, - 0x37, - 0x19, - 0x19, - 0x19, - 0x09, - 0x8C, - 0x40, - 0x40, - 0x40, - 0x85, - 0x09, - 0x09, - 0x19, - 0x09, - 0x04, - 0x40, - 0x01, - 0x2F, - 0x04, - 0x19, - 0x00, - 0x04, - 0x2F, - 0x3F, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x2E, - 0x09, - 0x54, - 0x48, - 0x5C, - 0x51, - 0x5C, - 0x51, - 0x54, - 0x51, - 0x24, - 0x51, - 0x63, - 0x51, - 0x63, - 0x58, - 0x3E, - 0x37, - 0x84, - 0x37, - 0x84, - 0x84, - 0x84, - 0x58, - 0x58, - 0x51, - 0x3F, - 0x51, - 0x51, - 0x2C, - 0x09, - 0x19, - 0x19, - 0x09, - 0x30, - 0x48, - 0x5C, - 0x48, - 0x54, - 0x54, - 0x5C, - 0x54, - 0x5C, - 0x54, - 0x54, - 0x64, - 0x5C, - 0x05, - 0x54, - 0x00, - 0x08, - 0x85, - 0x20, - 0x09, - 0x19, - 0x09, - 0x09, - 0x2A, - 0x30, - 0x04, - 0x5C, - 0x00, - 0x06, - 0x92, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x05, - 0x48, - 0x00, - 0x11, - 0xAB, - 0x18, - 0x19, - 0x19, - 0x2D, - 0x5C, - 0x26, - 0x19, - 0x19, - 0x19, - 0x95, - 0x41, - 0x1F, - 0x41, - 0x41, - 0x41, - 0x1D, - 0x00, - 0x05, - 0x19, - 0x05, - 0x41, - 0x00, - 0x0D, - 0x30, - 0x92, - 0x19, - 0x19, - 0x19, - 0x93, - 0x30, - 0x30, - 0x4C, - 0x30, - 0x5C, - 0x51, - 0xB4, - 0x00, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3E, - 0x40, - 0x3F, - 0x4F, - 0x04, - 0x19, - 0x00, - 0x03, - 0x26, - 0x30, - 0x30, - 0x00, - 0x06, - 0x41, - 0x00, - 0x04, - 0x2B, - 0x41, - 0x2B, - 0x2B, - 0x04, - 0x41, - 0x00, - 0x0D, - 0x26, - 0x09, - 0x19, - 0x19, - 0x19, - 0x41, - 0x4F, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x30, - 0x32, - 0x00, - 0x04, - 0x19, - 0x00, - 0x18, - 0x30, - 0x4C, - 0x54, - 0x54, - 0x51, - 0x09, - 0x09, - 0x19, - 0x19, - 0x73, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x45, - 0xA0, - 0x60, - 0x19, - 0x19, - 0x06, - 0x09, - 0x00, - 0x10, - 0x29, - 0x53, - 0x53, - 0x87, - 0x7E, - 0xA2, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x29, - 0xA6, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x34, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0xBD, - 0x09, - 0x19, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x3F, - 0x2C, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x3F, - 0x7F, - 0x19, - 0x19, - 0x18, - 0xB4, - 0x3F, - 0x3F, - 0x3F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x7F, - 0x3F, - 0x3E, - 0x3E, - 0x7F, - 0x19, - 0x19, - 0x19, - 0x09, - 0x44, - 0x47, - 0x00, - 0x06, - 0x3D, - 0x01, - 0x47, - 0x04, - 0x19, - 0x00, - 0x0A, - 0x9F, - 0x40, - 0x47, - 0x40, - 0x55, - 0x19, - 0x19, - 0x19, - 0x93, - 0x40, - 0x07, - 0x3D, - 0x04, - 0x19, - 0x00, - 0x0E, - 0xCC, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x20, - 0x40, - 0x40, - 0x40, - 0x47, - 0x2F, - 0x04, - 0x19, - 0x00, - 0x04, - 0x7F, - 0x3F, - 0x3F, - 0x3F, - 0x08, - 0x19, - 0x01, - 0x09, - 0x01, - 0x09, - 0x06, - 0x19, - 0x00, - 0x17, - 0x18, - 0x18, - 0x36, - 0x58, - 0x47, - 0x37, - 0x67, - 0x37, - 0x84, - 0x58, - 0x84, - 0x58, - 0x51, - 0x58, - 0x3F, - 0x48, - 0x55, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x48, - 0x00, - 0x05, - 0x5C, - 0x00, - 0x04, - 0x54, - 0x5C, - 0x54, - 0x51, - 0x07, - 0x54, - 0x00, - 0x0B, - 0x5C, - 0x7B, - 0x09, - 0x09, - 0x19, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x60, - 0x00, - 0x05, - 0x19, - 0x01, - 0x20, - 0x01, - 0x5C, - 0x05, - 0x48, - 0x00, - 0x0B, - 0x09, - 0x19, - 0x19, - 0x19, - 0x2B, - 0x30, - 0x30, - 0x20, - 0x19, - 0x19, - 0x19, - 0x00, - 0x06, - 0x41, - 0x00, - 0x12, - 0x19, - 0x19, - 0x19, - 0x18, - 0x20, - 0x41, - 0x41, - 0x30, - 0x41, - 0x41, - 0x1F, - 0x95, - 0x18, - 0x19, - 0x19, - 0x19, - 0x30, - 0x30, - 0x04, - 0x5C, - 0x01, - 0xAB, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3F, - 0x3F, - 0x3F, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x06, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x07, - 0x19, - 0x00, - 0x05, - 0x18, - 0x41, - 0x30, - 0x41, - 0x32, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1F, - 0x41, - 0x30, - 0x30, - 0x4F, - 0x30, - 0x4F, - 0x41, - 0x8C, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4C, - 0x4C, - 0x4C, - 0x5C, - 0x51, - 0x19, - 0x19, - 0x09, - 0x09, - 0x60, - 0x47, - 0x3D, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0x4B, - 0xA0, - 0x09, - 0x00, - 0x05, - 0x19, - 0x00, - 0x16, - 0x09, - 0x09, - 0x09, - 0x18, - 0x18, - 0x66, - 0x83, - 0x77, - 0x87, - 0x68, - 0x8F, - 0x7E, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x24, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x6E, - 0x74, - 0x34, - 0x34, - 0x4E, - 0x4E, - 0x62, - 0x37, - 0x7F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x3F, - 0x93, - 0x19, - 0x09, - 0x09, - 0x24, - 0x3F, - 0x21, - 0x19, - 0x19, - 0x19, - 0x95, - 0x3F, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x05, - 0x7F, - 0x40, - 0x3F, - 0x3F, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x12, - 0x63, - 0x47, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x47, - 0x37, - 0x18, - 0x19, - 0x19, - 0x19, - 0x8C, - 0x40, - 0x40, - 0x40, - 0xAB, - 0x04, - 0x19, - 0x08, - 0x3D, - 0x04, - 0x19, - 0x00, - 0x05, - 0xCC, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x00, - 0x04, - 0x19, - 0x04, - 0x40, - 0x01, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x05, - 0x7F, - 0x3F, - 0x3F, - 0x3F, - 0x60, - 0x00, - 0x07, - 0x19, - 0x01, - 0x09, - 0x01, - 0x09, - 0x08, - 0x19, - 0x00, - 0x10, - 0x91, - 0x47, - 0x37, - 0x67, - 0x84, - 0x67, - 0x37, - 0x84, - 0x58, - 0x58, - 0x40, - 0x51, - 0x51, - 0x51, - 0x2C, - 0x09, - 0x04, - 0x19, - 0x04, - 0x09, - 0x00, - 0x18, - 0x20, - 0x73, - 0x26, - 0x9F, - 0x4F, - 0x54, - 0x5C, - 0x54, - 0x54, - 0x48, - 0x54, - 0x5C, - 0x5C, - 0x54, - 0x5C, - 0x2F, - 0x60, - 0x19, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x20, - 0x05, - 0x19, - 0x00, - 0x13, - 0x09, - 0x48, - 0x48, - 0x5C, - 0x3F, - 0x48, - 0x4F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x5C, - 0x5C, - 0x30, - 0x20, - 0x19, - 0x19, - 0x19, - 0x2D, - 0x00, - 0x05, - 0x41, - 0x05, - 0x19, - 0x00, - 0x07, - 0x41, - 0x1F, - 0x41, - 0x41, - 0x30, - 0x41, - 0x95, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0x30, - 0x30, - 0x30, - 0x5C, - 0x30, - 0x48, - 0x55, - 0x00, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3F, - 0x3F, - 0x3F, - 0x7A, - 0x04, - 0x19, - 0x00, - 0x09, - 0x18, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x19, - 0x19, - 0x18, - 0x00, - 0x05, - 0x19, - 0x00, - 0x09, - 0x41, - 0x41, - 0x30, - 0x32, - 0x19, - 0x19, - 0x09, - 0x19, - 0x2F, - 0x00, - 0x06, - 0x30, - 0x00, - 0x0F, - 0x32, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4C, - 0x4C, - 0x51, - 0x54, - 0x51, - 0x09, - 0x19, - 0x19, - 0x20, - 0x73, - 0x00, - 0x06, - 0x3D, - 0x01, - 0xCC, - 0x01, - 0x20, - 0x06, - 0x19, - 0x00, - 0x16, - 0x09, - 0x19, - 0x20, - 0xD5, - 0x25, - 0x83, - 0x83, - 0x81, - 0x53, - 0x8F, - 0x7E, - 0xAE, - 0x9B, - 0x9B, - 0xCE, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA6, - 0x61, - 0xA6, - 0x00, - 0x07, - 0x61, - 0x00, - 0x28, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x38, - 0x62, - 0x37, - 0xBD, - 0x09, - 0x09, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x51, - 0x09, - 0x09, - 0x19, - 0x20, - 0x3F, - 0x3F, - 0x3E, - 0x18, - 0x19, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x3F, - 0x3E, - 0x40, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x03, - 0x7F, - 0x47, - 0x47, - 0x00, - 0x05, - 0x3D, - 0x00, - 0x0A, - 0x63, - 0x18, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x40, - 0x40, - 0x40, - 0x9F, - 0x04, - 0x19, - 0x01, - 0x40, - 0x01, - 0x40, - 0x05, - 0x3D, - 0x01, - 0x40, - 0x04, - 0x19, - 0x00, - 0x09, - 0x55, - 0x47, - 0x40, - 0x40, - 0xCC, - 0x20, - 0x19, - 0x19, - 0x18, - 0x00, - 0x04, - 0x40, - 0x01, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x04, - 0x2F, - 0x40, - 0x3F, - 0x3F, - 0x05, - 0x19, - 0x00, - 0x09, - 0x7F, - 0x30, - 0x7F, - 0x7F, - 0x41, - 0x7A, - 0x7F, - 0x7A, - 0xCC, - 0x00, - 0x04, - 0x19, - 0x00, - 0x10, - 0x3E, - 0x47, - 0x47, - 0x84, - 0x67, - 0x37, - 0x37, - 0x84, - 0x37, - 0x58, - 0x44, - 0x3E, - 0x3F, - 0x48, - 0x2C, - 0x09, - 0x0C, - 0x19, - 0x00, - 0x08, - 0x20, - 0x73, - 0x2F, - 0x5C, - 0x54, - 0x48, - 0x5C, - 0x54, - 0x05, - 0x5C, - 0x00, - 0x1F, - 0x4C, - 0x55, - 0x2B, - 0x95, - 0x18, - 0x60, - 0x19, - 0x20, - 0x18, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x48, - 0x48, - 0x3F, - 0x48, - 0x2D, - 0x19, - 0x19, - 0x19, - 0x92, - 0x30, - 0x5C, - 0x30, - 0x26, - 0x19, - 0x19, - 0x18, - 0x93, - 0x00, - 0x05, - 0x41, - 0x01, - 0x20, - 0x04, - 0x19, - 0x00, - 0x12, - 0x41, - 0x30, - 0x30, - 0x41, - 0x30, - 0x30, - 0x92, - 0x19, - 0x19, - 0x19, - 0x20, - 0x30, - 0x5C, - 0x30, - 0x30, - 0x5C, - 0x5C, - 0x2C, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3F, - 0x40, - 0x3F, - 0x5C, - 0x04, - 0x19, - 0x00, - 0x32, - 0x70, - 0x2A, - 0x2A, - 0x26, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x30, - 0x41, - 0x41, - 0x32, - 0x19, - 0x19, - 0x19, - 0x09, - 0x7A, - 0x30, - 0x30, - 0x30, - 0x4C, - 0x30, - 0x30, - 0x32, - 0x09, - 0x19, - 0x19, - 0x20, - 0x4C, - 0x5C, - 0x54, - 0x51, - 0x48, - 0x18, - 0x19, - 0x19, - 0x19, - 0x73, - 0x40, - 0x3D, - 0x3D, - 0x3D, - 0x67, - 0x8C, - 0x06, - 0x19, - 0x00, - 0x18, - 0x20, - 0x20, - 0xAB, - 0xA0, - 0x4B, - 0x4B, - 0x65, - 0x6A, - 0x83, - 0x87, - 0x87, - 0x68, - 0x99, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xAC, - 0xAC, - 0xCB, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0x4A, - 0x05, - 0x61, - 0x00, - 0x2B, - 0xA6, - 0x6D, - 0x61, - 0x6E, - 0x3B, - 0x74, - 0x74, - 0x88, - 0x31, - 0x38, - 0x38, - 0x39, - 0x7F, - 0x20, - 0x09, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x7F, - 0x09, - 0x09, - 0x19, - 0xAB, - 0x3F, - 0x3F, - 0x3F, - 0xAB, - 0x19, - 0x19, - 0x19, - 0x2C, - 0x3F, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x3E, - 0x40, - 0x3E, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x12, - 0xB4, - 0x47, - 0x3D, - 0x37, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x7F, - 0x19, - 0x19, - 0x19, - 0x18, - 0xA0, - 0x47, - 0x40, - 0x47, - 0x2C, - 0x04, - 0x19, - 0x07, - 0x3D, - 0x01, - 0x36, - 0x04, - 0x19, - 0x00, - 0x09, - 0x5F, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x09, - 0x09, - 0x19, - 0x18, - 0x00, - 0x04, - 0x40, - 0x00, - 0x0E, - 0x7F, - 0x19, - 0x19, - 0x09, - 0x19, - 0x2F, - 0x40, - 0x3F, - 0x40, - 0x93, - 0x19, - 0x19, - 0x19, - 0x20, - 0x08, - 0x3F, - 0x00, - 0x15, - 0x8C, - 0x19, - 0x19, - 0x19, - 0x09, - 0x37, - 0x37, - 0x47, - 0x67, - 0x84, - 0x67, - 0x84, - 0x84, - 0x58, - 0x58, - 0x3E, - 0x51, - 0x51, - 0x3F, - 0x2A, - 0x09, - 0x00, - 0x0C, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x09, - 0x09, - 0x7B, - 0x5C, - 0x54, - 0x5C, - 0x51, - 0x51, - 0x5C, - 0x54, - 0x48, - 0x09, - 0x5C, - 0x00, - 0x05, - 0x60, - 0x19, - 0x19, - 0x19, - 0x09, - 0x00, - 0x05, - 0x48, - 0x00, - 0x12, - 0x18, - 0x19, - 0x19, - 0x19, - 0x55, - 0x5C, - 0x30, - 0x30, - 0x41, - 0x19, - 0x19, - 0x18, - 0x19, - 0x2B, - 0x41, - 0x1F, - 0x41, - 0x41, - 0x05, - 0x19, - 0x00, - 0x07, - 0x41, - 0x41, - 0x1F, - 0x30, - 0x1F, - 0x30, - 0x95, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0x30, - 0x30, - 0x30, - 0x5C, - 0x4C, - 0x5C, - 0x2C, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x3F, - 0x3F, - 0x25, - 0x51, - 0x09, - 0x19, - 0x19, - 0x19, - 0x92, - 0x4C, - 0x4C, - 0x00, - 0x04, - 0x30, - 0x00, - 0x10, - 0x41, - 0x30, - 0x19, - 0x19, - 0x19, - 0x09, - 0x60, - 0x41, - 0x30, - 0x30, - 0x26, - 0x19, - 0x19, - 0x19, - 0x09, - 0x41, - 0x06, - 0x30, - 0x00, - 0x33, - 0x32, - 0x19, - 0x19, - 0x19, - 0x18, - 0x4C, - 0x4C, - 0x5C, - 0x5C, - 0x51, - 0x18, - 0x19, - 0x19, - 0x19, - 0x73, - 0x47, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x20, - 0x19, - 0x19, - 0x19, - 0x09, - 0xCC, - 0xB4, - 0x37, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x65, - 0x6A, - 0x6A, - 0x77, - 0x87, - 0x68, - 0x68, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xAC, - 0xAC, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x6D, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x3B, - 0x6E, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x38, - 0x37, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x27, - 0x40, - 0x3F, - 0x2D, - 0x09, - 0x09, - 0x09, - 0x21, - 0x3E, - 0x3E, - 0x3F, - 0x76, - 0x09, - 0x19, - 0x19, - 0xCC, - 0x3F, - 0x48, - 0x19, - 0x19, - 0x19, - 0x20, - 0x7F, - 0x3E, - 0x3E, - 0x3E, - 0x25, - 0x18, - 0x18, - 0x19, - 0x19, - 0x20, - 0x37, - 0x47, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0xCC, - 0x00, - 0x04, - 0x09, - 0x00, - 0x05, - 0x63, - 0x40, - 0x47, - 0x40, - 0x9F, - 0x00, - 0x04, - 0x19, - 0x01, - 0x91, - 0x01, - 0x40, - 0x05, - 0x3D, - 0x01, - 0x9F, - 0x04, - 0x19, - 0x00, - 0x09, - 0x76, - 0x40, - 0x40, - 0x47, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x93, - 0x00, - 0x04, - 0x40, - 0x00, - 0x16, - 0x7F, - 0x19, - 0x19, - 0x09, - 0x09, - 0x2F, - 0x40, - 0x3F, - 0x40, - 0xAB, - 0x19, - 0x09, - 0x09, - 0x09, - 0x5F, - 0x3F, - 0x3F, - 0x40, - 0x3F, - 0x40, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x1B, - 0x7B, - 0x47, - 0x37, - 0x47, - 0x67, - 0x67, - 0x84, - 0x67, - 0x37, - 0x84, - 0x58, - 0x3F, - 0x25, - 0x3F, - 0x48, - 0x55, - 0x09, - 0x19, - 0x19, - 0x19, - 0x18, - 0x18, - 0x60, - 0x19, - 0x19, - 0x19, - 0x18, - 0x00, - 0x04, - 0x19, - 0x00, - 0x18, - 0x09, - 0x09, - 0xC0, - 0x5C, - 0x5C, - 0x51, - 0x5C, - 0x28, - 0x2C, - 0x2F, - 0x2F, - 0x30, - 0x48, - 0x5C, - 0x5C, - 0x48, - 0x48, - 0x5C, - 0x48, - 0x20, - 0x19, - 0x09, - 0x09, - 0x18, - 0x04, - 0x48, - 0x01, - 0x55, - 0x04, - 0x19, - 0x01, - 0x4C, - 0x04, - 0x30, - 0x04, - 0x19, - 0x01, - 0x70, - 0x04, - 0x41, - 0x05, - 0x19, - 0x00, - 0x1B, - 0x2B, - 0x30, - 0x30, - 0x41, - 0x30, - 0x30, - 0x18, - 0x19, - 0x19, - 0x19, - 0x18, - 0x1D, - 0x5C, - 0x5C, - 0x5C, - 0x4C, - 0x5C, - 0x26, - 0x19, - 0x19, - 0x19, - 0x09, - 0x3E, - 0x40, - 0x51, - 0x3F, - 0x95, - 0x00, - 0x04, - 0x09, - 0x00, - 0x03, - 0x5C, - 0x30, - 0x4C, - 0x00, - 0x04, - 0x30, - 0x00, - 0x0A, - 0x2B, - 0x09, - 0x09, - 0x19, - 0x09, - 0x2D, - 0x30, - 0x41, - 0x41, - 0x2D, - 0x04, - 0x19, - 0x01, - 0x2A, - 0x04, - 0x30, - 0x00, - 0x12, - 0x4C, - 0x30, - 0x95, - 0x19, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x54, - 0x54, - 0x5C, - 0x51, - 0x19, - 0x19, - 0x19, - 0x09, - 0x60, - 0x40, - 0x04, - 0x3D, - 0x00, - 0x05, - 0x19, - 0x19, - 0x19, - 0x09, - 0x2C, - 0x00, - 0x05, - 0x3D, - 0x00, - 0x15, - 0x4B, - 0x4B, - 0x65, - 0x83, - 0x22, - 0x81, - 0x53, - 0x8F, - 0x7E, - 0x7E, - 0xAD, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x61, - 0x00, - 0x0D, - 0xA6, - 0x61, - 0x6E, - 0x61, - 0x74, - 0x74, - 0x74, - 0x33, - 0x4E, - 0x62, - 0x38, - 0x37, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x48, - 0x48, - 0x93, - 0x09, - 0x09, - 0x09, - 0x05, - 0x3E, - 0x00, - 0x06, - 0x09, - 0x19, - 0x19, - 0x09, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x11, - 0x7F, - 0x3F, - 0x3E, - 0x3E, - 0x47, - 0xCC, - 0x09, - 0x19, - 0x19, - 0x09, - 0xC0, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0xA5, - 0x00, - 0x04, - 0x09, - 0x00, - 0x06, - 0x93, - 0x47, - 0x3D, - 0x40, - 0x40, - 0xAB, - 0x05, - 0x19, - 0x00, - 0x07, - 0x63, - 0x47, - 0x47, - 0x47, - 0x3D, - 0x63, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1C, - 0x58, - 0x47, - 0x47, - 0x47, - 0xCC, - 0x19, - 0x09, - 0x19, - 0x19, - 0x40, - 0x40, - 0x47, - 0x40, - 0x76, - 0x09, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x40, - 0x40, - 0x40, - 0x51, - 0x19, - 0x09, - 0x09, - 0x09, - 0x85, - 0x06, - 0x3F, - 0x00, - 0x15, - 0x5F, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x37, - 0x3D, - 0x67, - 0x4B, - 0x67, - 0x67, - 0x84, - 0x67, - 0x37, - 0x58, - 0x58, - 0x51, - 0x3F, - 0x51, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x01, - 0x30, - 0x04, - 0x48, - 0x00, - 0x31, - 0x5C, - 0x4C, - 0x55, - 0x93, - 0x09, - 0x19, - 0x09, - 0x09, - 0x09, - 0x28, - 0x5C, - 0x51, - 0x5C, - 0xAB, - 0x20, - 0x09, - 0x19, - 0x73, - 0x5C, - 0x48, - 0x5C, - 0x48, - 0x5C, - 0x48, - 0x48, - 0x20, - 0x19, - 0x19, - 0x09, - 0x09, - 0x48, - 0x3F, - 0x48, - 0x3F, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x20, - 0x4C, - 0x4C, - 0x30, - 0x41, - 0x41, - 0x92, - 0x18, - 0x19, - 0x19, - 0x19, - 0x00, - 0x04, - 0x41, - 0x05, - 0x19, - 0x00, - 0x06, - 0x60, - 0x1D, - 0x41, - 0x30, - 0x30, - 0x1F, - 0x04, - 0x19, - 0x00, - 0x17, - 0x18, - 0x18, - 0x1F, - 0x30, - 0x4C, - 0x5C, - 0x5C, - 0x09, - 0x09, - 0x19, - 0x09, - 0x09, - 0x3E, - 0x3E, - 0x3E, - 0x51, - 0xAB, - 0x09, - 0x09, - 0x19, - 0x09, - 0x26, - 0x4C, - 0x00, - 0x05, - 0x30, - 0x00, - 0x0A, - 0x92, - 0x09, - 0x09, - 0x19, - 0x20, - 0x2B, - 0x30, - 0x41, - 0x30, - 0x32, - 0x05, - 0x19, - 0x01, - 0x2A, - 0x01, - 0x4C, - 0x04, - 0x30, - 0x00, - 0x33, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x4C, - 0x5C, - 0x51, - 0x3F, - 0x19, - 0x19, - 0x19, - 0x20, - 0x73, - 0x3D, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x36, - 0x18, - 0x18, - 0x09, - 0x09, - 0x87, - 0x87, - 0x68, - 0x8F, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x61, - 0x61, - 0xA6, - 0x00, - 0x08, - 0x61, - 0x00, - 0x09, - 0x3B, - 0x3B, - 0x34, - 0x34, - 0x33, - 0x38, - 0x67, - 0x37, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x3F, - 0x7F, - 0x09, - 0x09, - 0x19, - 0x9F, - 0x05, - 0x3E, - 0x00, - 0x1B, - 0xC0, - 0x19, - 0x19, - 0x18, - 0x23, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x3E, - 0x3E, - 0x3E, - 0x47, - 0x91, - 0x09, - 0x09, - 0x09, - 0x19, - 0x09, - 0xCC, - 0xA5, - 0x3D, - 0x45, - 0xC0, - 0x19, - 0x00, - 0x04, - 0x09, - 0x00, - 0x06, - 0x45, - 0x3D, - 0x3D, - 0x47, - 0x47, - 0x9F, - 0x06, - 0x19, - 0x00, - 0x18, - 0xA0, - 0x40, - 0x3D, - 0x36, - 0x18, - 0x09, - 0x19, - 0x19, - 0x19, - 0xC0, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0xC0, - 0x09, - 0x19, - 0x19, - 0x09, - 0x47, - 0x40, - 0x47, - 0x40, - 0x7F, - 0x04, - 0x19, - 0x01, - 0x7F, - 0x04, - 0x40, - 0x01, - 0xC0, - 0x04, - 0x09, - 0x01, - 0xCC, - 0x04, - 0x40, - 0x01, - 0x54, - 0x04, - 0x19, - 0x00, - 0x19, - 0x73, - 0x47, - 0x3D, - 0x67, - 0x3D, - 0x67, - 0x62, - 0x67, - 0x67, - 0x84, - 0x84, - 0x58, - 0x58, - 0x58, - 0x51, - 0x51, - 0x2C, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x48, - 0x48, - 0x5C, - 0x00, - 0x05, - 0x48, - 0x00, - 0x0F, - 0x7B, - 0x19, - 0x19, - 0x09, - 0x09, - 0x2A, - 0x51, - 0x5C, - 0x48, - 0x5F, - 0x09, - 0x09, - 0x19, - 0x20, - 0x2A, - 0x00, - 0x05, - 0x48, - 0x00, - 0x1D, - 0x7B, - 0x19, - 0x19, - 0x19, - 0x09, - 0xAB, - 0x48, - 0x48, - 0x51, - 0x7C, - 0x19, - 0x19, - 0x09, - 0x09, - 0x2A, - 0x4C, - 0x30, - 0x4F, - 0x30, - 0x2F, - 0x32, - 0x19, - 0x18, - 0x19, - 0x19, - 0x26, - 0x41, - 0x41, - 0x41, - 0x00, - 0x05, - 0x19, - 0x00, - 0x06, - 0x09, - 0x19, - 0x26, - 0x41, - 0x2B, - 0x70, - 0x05, - 0x19, - 0x00, - 0x20, - 0x18, - 0x09, - 0x26, - 0x30, - 0x30, - 0x7B, - 0x09, - 0x09, - 0x09, - 0x18, - 0x93, - 0x3E, - 0x3E, - 0x25, - 0x25, - 0x51, - 0x73, - 0x09, - 0x19, - 0x19, - 0x19, - 0x7A, - 0x30, - 0x4C, - 0x30, - 0x30, - 0x95, - 0x09, - 0x09, - 0x19, - 0x19, - 0x95, - 0x04, - 0x41, - 0x00, - 0x34, - 0x32, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x60, - 0x32, - 0x2C, - 0x26, - 0x92, - 0x09, - 0x19, - 0x19, - 0x20, - 0x92, - 0x4C, - 0x5C, - 0x4F, - 0x55, - 0x55, - 0x09, - 0x19, - 0x19, - 0x19, - 0x20, - 0x7F, - 0xB4, - 0x36, - 0x3D, - 0x3D, - 0x93, - 0x09, - 0x09, - 0x20, - 0xCC, - 0x3D, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0xDF, - 0x09, - 0x09, - 0x09, - 0x20, - 0x81, - 0x68, - 0x8F, - 0x8F, - 0xAE, - 0x05, - 0x8E, - 0x00, - 0x06, - 0xCB, - 0x8E, - 0xAC, - 0xD3, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0x33, - 0x33, - 0x4E, - 0x38, - 0x37, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x25, - 0x3F, - 0x2D, - 0x09, - 0x09, - 0x19, - 0x76, - 0x37, - 0x3E, - 0x37, - 0x3E, - 0x3E, - 0xB4, - 0x20, - 0x09, - 0x18, - 0x32, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x3E, - 0x3E, - 0x37, - 0x37, - 0x37, - 0xB4, - 0x20, - 0x19, - 0x19, - 0x19, - 0x20, - 0x09, - 0x09, - 0x18, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0xCC, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x47, - 0xAB, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x19, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x09, - 0x66, - 0x04, - 0x3D, - 0x01, - 0xCC, - 0x04, - 0x09, - 0x00, - 0x05, - 0x47, - 0x47, - 0x40, - 0x47, - 0x76, - 0x00, - 0x04, - 0x19, - 0x00, - 0x2A, - 0xB4, - 0x40, - 0x47, - 0x47, - 0x40, - 0x47, - 0x7B, - 0x09, - 0x09, - 0x09, - 0x19, - 0x18, - 0x2C, - 0xB4, - 0x73, - 0x20, - 0x19, - 0x19, - 0x19, - 0x09, - 0x91, - 0x3D, - 0x37, - 0x4B, - 0x62, - 0x67, - 0x67, - 0x62, - 0x67, - 0x84, - 0x84, - 0x58, - 0x58, - 0x3F, - 0x3F, - 0x3F, - 0x2C, - 0x19, - 0x19, - 0x09, - 0x20, - 0x30, - 0x05, - 0x48, - 0x00, - 0x17, - 0x5C, - 0x5C, - 0x48, - 0x4F, - 0x19, - 0x19, - 0x09, - 0x09, - 0x20, - 0x48, - 0x48, - 0x51, - 0x5C, - 0x7B, - 0x09, - 0x19, - 0x09, - 0x18, - 0x20, - 0x8C, - 0x2B, - 0x26, - 0x93, - 0x00, - 0x04, - 0x19, - 0x00, - 0x19, - 0x18, - 0x28, - 0x3F, - 0x48, - 0x3F, - 0x2C, - 0x19, - 0x19, - 0x09, - 0x09, - 0x23, - 0x4C, - 0x30, - 0x41, - 0x41, - 0x41, - 0x2B, - 0x18, - 0x18, - 0x19, - 0x19, - 0x92, - 0x1D, - 0x41, - 0x41, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x93, - 0x18, - 0x19, - 0x19, - 0x19, - 0x20, - 0x05, - 0x19, - 0x01, - 0x26, - 0x0A, - 0x09, - 0x00, - 0x07, - 0xB4, - 0x37, - 0x58, - 0x3E, - 0x3F, - 0x44, - 0x5F, - 0x00, - 0x05, - 0x19, - 0x00, - 0x03, - 0x93, - 0x26, - 0x32, - 0x00, - 0x04, - 0x09, - 0x00, - 0x10, - 0x19, - 0x73, - 0x41, - 0x4F, - 0x41, - 0x7A, - 0x41, - 0x32, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x18, - 0x05, - 0x09, - 0x00, - 0x13, - 0x19, - 0x09, - 0x2B, - 0x4C, - 0x54, - 0x55, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x95, - 0x65, - 0x3D, - 0x45, - 0x00, - 0x04, - 0x09, - 0x00, - 0x1A, - 0x19, - 0xAB, - 0xBD, - 0xBD, - 0x20, - 0x20, - 0x09, - 0x19, - 0x19, - 0xD0, - 0x87, - 0x68, - 0x8F, - 0xA2, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x06, - 0x61, - 0x00, - 0x18, - 0xA6, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x3B, - 0x3B, - 0x34, - 0x34, - 0x4E, - 0x4E, - 0x67, - 0x37, - 0xB4, - 0x19, - 0x19, - 0x18, - 0x18, - 0x3F, - 0x19, - 0x19, - 0x19, - 0x09, - 0x3E, - 0x04, - 0x37, - 0x00, - 0x15, - 0x3E, - 0x58, - 0x18, - 0x19, - 0x19, - 0x09, - 0x48, - 0x19, - 0x09, - 0x18, - 0x18, - 0x7F, - 0x37, - 0x3E, - 0x37, - 0x37, - 0x62, - 0x37, - 0xBD, - 0x09, - 0x09, - 0x00, - 0x06, - 0x19, - 0x00, - 0x0B, - 0x09, - 0x18, - 0x18, - 0x8C, - 0x65, - 0x3D, - 0x4B, - 0x4B, - 0x3D, - 0x3D, - 0x9F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x64, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x04, - 0x09, - 0x01, - 0x4D, - 0x05, - 0x4B, - 0x00, - 0x0A, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x09, - 0x3D, - 0x47, - 0x47, - 0x47, - 0xB4, - 0x04, - 0x19, - 0x01, - 0x7F, - 0x04, - 0x47, - 0x00, - 0x04, - 0x3D, - 0x25, - 0xCC, - 0x18, - 0x09, - 0x19, - 0x00, - 0x06, - 0x18, - 0x75, - 0x47, - 0x67, - 0x4B, - 0x67, - 0x04, - 0x62, - 0x00, - 0x0E, - 0x67, - 0x67, - 0x84, - 0x58, - 0x58, - 0x3F, - 0x51, - 0x3F, - 0x2C, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x09, - 0x48, - 0x00, - 0x0E, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x48, - 0x48, - 0x48, - 0x51, - 0x54, - 0x95, - 0x09, - 0x09, - 0x09, - 0x07, - 0x19, - 0x00, - 0x1B, - 0x09, - 0x09, - 0x5F, - 0x3F, - 0x51, - 0x3F, - 0x51, - 0x20, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4C, - 0x28, - 0x7A, - 0x2F, - 0x41, - 0x2B, - 0x2B, - 0x93, - 0x19, - 0x19, - 0x19, - 0x09, - 0x2B, - 0x41, - 0x41, - 0x00, - 0x04, - 0x09, - 0x00, - 0x10, - 0x70, - 0x2A, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x95, - 0x5C, - 0x23, - 0x18, - 0x19, - 0x19, - 0x05, - 0x09, - 0x00, - 0x0E, - 0xCC, - 0x37, - 0x37, - 0x84, - 0x58, - 0x25, - 0x44, - 0x44, - 0x5F, - 0x18, - 0x19, - 0x09, - 0x09, - 0x09, - 0x05, - 0x19, - 0x00, - 0x0F, - 0x09, - 0x92, - 0x7F, - 0x41, - 0x41, - 0x7A, - 0x41, - 0x41, - 0x2D, - 0x19, - 0x19, - 0x09, - 0x19, - 0x2B, - 0x93, - 0x00, - 0x07, - 0x09, - 0x00, - 0x06, - 0x20, - 0x95, - 0x30, - 0x7C, - 0x54, - 0x55, - 0x09, - 0x19, - 0x00, - 0x06, - 0xCC, - 0x4B, - 0x4B, - 0x4B, - 0xDE, - 0x09, - 0x06, - 0x19, - 0x00, - 0x16, - 0x18, - 0x18, - 0x20, - 0x20, - 0xEA, - 0x53, - 0x87, - 0x99, - 0x7E, - 0x7E, - 0x9B, - 0xC5, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0x34, - 0x33, - 0x38, - 0x62, - 0x37, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x07, - 0x76, - 0x19, - 0x19, - 0x19, - 0xC0, - 0x37, - 0x3E, - 0x00, - 0x04, - 0x37, - 0x00, - 0x15, - 0x3E, - 0x20, - 0x19, - 0x19, - 0x19, - 0x36, - 0x18, - 0x09, - 0x09, - 0x19, - 0x7F, - 0x3E, - 0x37, - 0x67, - 0x37, - 0x62, - 0x67, - 0x39, - 0x66, - 0xD5, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x18, - 0xCC, - 0x66, - 0x50, - 0x65, - 0x6A, - 0x4B, - 0x65, - 0x4B, - 0x4B, - 0x9F, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x3D, - 0x44, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0xCC, - 0x66, - 0x4B, - 0x65, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0xDF, - 0x20, - 0x19, - 0x19, - 0x18, - 0x3D, - 0x3D, - 0x47, - 0x40, - 0xA0, - 0x04, - 0x19, - 0x01, - 0xA0, - 0x01, - 0x47, - 0x05, - 0x3D, - 0x00, - 0x03, - 0x4B, - 0xA7, - 0x73, - 0x00, - 0x06, - 0x19, - 0x00, - 0x1A, - 0x09, - 0xBD, - 0x3D, - 0x4B, - 0x4B, - 0x4B, - 0x62, - 0x65, - 0x62, - 0x65, - 0x4E, - 0x62, - 0x38, - 0x67, - 0x67, - 0x37, - 0x58, - 0x58, - 0x3F, - 0x51, - 0x7F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x09, - 0x48, - 0x00, - 0x05, - 0x18, - 0x18, - 0x19, - 0x09, - 0x19, - 0x00, - 0x05, - 0x51, - 0x00, - 0x05, - 0x25, - 0xB4, - 0x20, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x30, - 0x09, - 0x09, - 0xCC, - 0x7C, - 0x51, - 0x51, - 0x3F, - 0x3E, - 0x89, - 0x09, - 0x09, - 0x19, - 0x18, - 0x32, - 0x28, - 0x4F, - 0x7A, - 0x41, - 0x2B, - 0x2A, - 0x2A, - 0x70, - 0x19, - 0x19, - 0x09, - 0x09, - 0x70, - 0x41, - 0x2B, - 0x19, - 0x20, - 0x09, - 0x09, - 0x95, - 0x41, - 0x2A, - 0x92, - 0x20, - 0x19, - 0x19, - 0x09, - 0x09, - 0xCC, - 0x54, - 0x4C, - 0x24, - 0x64, - 0xCC, - 0x04, - 0x09, - 0x00, - 0x10, - 0x20, - 0xCC, - 0x37, - 0x67, - 0x67, - 0x39, - 0x84, - 0x3A, - 0x44, - 0x44, - 0x63, - 0x64, - 0x8C, - 0x09, - 0x09, - 0x09, - 0x04, - 0x19, - 0x00, - 0x11, - 0x93, - 0x55, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x7A, - 0x7A, - 0x2D, - 0x19, - 0x19, - 0x09, - 0x09, - 0x28, - 0x30, - 0x85, - 0x00, - 0x05, - 0x09, - 0x00, - 0x0A, - 0x20, - 0xCC, - 0x7C, - 0x30, - 0x4C, - 0x4C, - 0x55, - 0x19, - 0x19, - 0x09, - 0x04, - 0x19, - 0x00, - 0x24, - 0x20, - 0x19, - 0x73, - 0x6A, - 0x4B, - 0x22, - 0x6A, - 0x25, - 0xDF, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x09, - 0x09, - 0x73, - 0xBC, - 0x53, - 0x87, - 0x68, - 0x8F, - 0x7E, - 0xAD, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x61, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x00, - 0x05, - 0x61, - 0x00, - 0x3E, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x4E, - 0x38, - 0x38, - 0x37, - 0x7F, - 0x19, - 0x19, - 0x19, - 0x18, - 0xC0, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x37, - 0x37, - 0x39, - 0x37, - 0x67, - 0x37, - 0x37, - 0x7F, - 0x09, - 0x09, - 0x09, - 0x2C, - 0x18, - 0x09, - 0x19, - 0x19, - 0x7F, - 0x37, - 0x37, - 0x37, - 0x38, - 0x38, - 0x62, - 0x62, - 0x43, - 0x62, - 0x65, - 0x5B, - 0xD0, - 0xA0, - 0xBD, - 0xA8, - 0x6A, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x4B, - 0x6A, - 0x4B, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x25, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0xA5, - 0xA0, - 0xAF, - 0x62, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x4B, - 0x6A, - 0x4B, - 0x4B, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x47, - 0x47, - 0xA0, - 0x18, - 0x19, - 0x19, - 0x09, - 0xA0, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0x62, - 0x67, - 0x00, - 0x04, - 0x4B, - 0x00, - 0x1F, - 0xA5, - 0xA0, - 0xBD, - 0xAF, - 0x84, - 0x3D, - 0x4B, - 0x67, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x43, - 0x43, - 0x62, - 0x62, - 0x43, - 0x38, - 0x67, - 0x84, - 0x37, - 0x58, - 0x3E, - 0x3E, - 0x3F, - 0x7F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x54, - 0x00, - 0x08, - 0x48, - 0x00, - 0x07, - 0x4C, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x48, - 0x00, - 0x08, - 0x51, - 0x00, - 0x18, - 0x5F, - 0x7F, - 0xAB, - 0xAB, - 0x7F, - 0x51, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x51, - 0x3F, - 0x25, - 0x3F, - 0x58, - 0x25, - 0x63, - 0x63, - 0x7C, - 0x28, - 0x7A, - 0x7A, - 0x2B, - 0x2B, - 0x04, - 0x2A, - 0x07, - 0x2B, - 0x00, - 0x2B, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x41, - 0x4F, - 0x41, - 0x7A, - 0x32, - 0x32, - 0x2C, - 0x4C, - 0x4C, - 0x24, - 0x51, - 0x44, - 0x44, - 0x58, - 0x44, - 0xBD, - 0xAB, - 0xBD, - 0x39, - 0x84, - 0x39, - 0x62, - 0x62, - 0x38, - 0x39, - 0x29, - 0x3A, - 0x4D, - 0x63, - 0x63, - 0x64, - 0x7C, - 0x4F, - 0x8C, - 0x8C, - 0x85, - 0x9F, - 0x4F, - 0x4F, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x07, - 0x2F, - 0x2F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x41, - 0x00, - 0x04, - 0x4F, - 0x00, - 0x14, - 0x28, - 0x7C, - 0x2C, - 0x32, - 0x32, - 0x2C, - 0x4F, - 0x4F, - 0x4F, - 0x28, - 0x7C, - 0x64, - 0x54, - 0x25, - 0x58, - 0x09, - 0x19, - 0x19, - 0x19, - 0x73, - 0x04, - 0x4B, - 0x00, - 0x15, - 0x65, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x6A, - 0x75, - 0xD0, - 0xD0, - 0xD0, - 0x66, - 0x77, - 0x81, - 0x81, - 0x53, - 0x68, - 0x68, - 0x7E, - 0xAE, - 0xAD, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x07, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x4E, - 0x67, - 0x67, - 0xBD, - 0x19, - 0x19, - 0x19, - 0x20, - 0x04, - 0x19, - 0x00, - 0x2C, - 0x58, - 0x37, - 0x67, - 0x67, - 0x39, - 0x67, - 0x37, - 0x37, - 0x63, - 0x09, - 0x09, - 0x09, - 0x20, - 0x09, - 0x09, - 0x19, - 0x18, - 0xA0, - 0x37, - 0x37, - 0x38, - 0x62, - 0x4E, - 0x4E, - 0x4E, - 0x22, - 0x4E, - 0x43, - 0x22, - 0x4E, - 0x43, - 0x83, - 0x6A, - 0x6A, - 0x22, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x4B, - 0x4B, - 0xDE, - 0x04, - 0x19, - 0x00, - 0x06, - 0x3D, - 0x4B, - 0x4B, - 0x4B, - 0x65, - 0x22, - 0x09, - 0x6A, - 0x04, - 0x65, - 0x00, - 0x1E, - 0x62, - 0x4B, - 0x4B, - 0x3D, - 0x4B, - 0x47, - 0xA0, - 0x18, - 0x19, - 0x19, - 0x09, - 0x7F, - 0x4B, - 0x4B, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0x62, - 0x4B, - 0x4B, - 0x4B, - 0x62, - 0x4B, - 0x4B, - 0x04, - 0x65, - 0x00, - 0x17, - 0x50, - 0x72, - 0x65, - 0x72, - 0x62, - 0x62, - 0x62, - 0x67, - 0x84, - 0x84, - 0x3E, - 0x3E, - 0x51, - 0x2C, - 0x09, - 0x19, - 0x19, - 0x19, - 0x54, - 0x48, - 0x48, - 0x48, - 0x3F, - 0x00, - 0x04, - 0x48, - 0x00, - 0x19, - 0x26, - 0x20, - 0x19, - 0x19, - 0x09, - 0x92, - 0x51, - 0x3F, - 0x51, - 0x51, - 0x3F, - 0x44, - 0x58, - 0x51, - 0x3F, - 0x44, - 0x3F, - 0x51, - 0x3F, - 0x51, - 0x51, - 0x3E, - 0x51, - 0x58, - 0x3E, - 0x00, - 0x04, - 0x58, - 0x00, - 0x0B, - 0x25, - 0x51, - 0x44, - 0x64, - 0x28, - 0x5F, - 0x7A, - 0x2C, - 0x2A, - 0x2A, - 0x55, - 0x00, - 0x04, - 0x2A, - 0x00, - 0x78, - 0x2C, - 0x2A, - 0x2B, - 0x2C, - 0x2F, - 0x7A, - 0x2B, - 0x2B, - 0x41, - 0x2F, - 0x2B, - 0x41, - 0x4F, - 0x41, - 0x4F, - 0x28, - 0x28, - 0x64, - 0x64, - 0x63, - 0x4D, - 0x25, - 0x3A, - 0x3A, - 0x29, - 0x25, - 0x84, - 0x27, - 0x84, - 0x38, - 0x62, - 0x4E, - 0x4E, - 0x38, - 0x2E, - 0x29, - 0x5A, - 0x4D, - 0x4D, - 0x63, - 0x64, - 0x64, - 0x89, - 0x7C, - 0x36, - 0x28, - 0x5F, - 0x4F, - 0x5F, - 0x5F, - 0x5F, - 0x7A, - 0x7A, - 0x76, - 0x7A, - 0x7F, - 0x2F, - 0x7A, - 0x7F, - 0x76, - 0x7A, - 0x7A, - 0x4F, - 0x5F, - 0x5F, - 0x4F, - 0x4F, - 0x7C, - 0x5F, - 0x28, - 0x4F, - 0x7C, - 0x4F, - 0x7C, - 0x54, - 0x64, - 0x44, - 0x44, - 0x3E, - 0x09, - 0x19, - 0x19, - 0x19, - 0x73, - 0x4B, - 0x65, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x77, - 0x77, - 0x22, - 0x53, - 0x22, - 0x53, - 0x81, - 0x53, - 0x87, - 0x68, - 0x8F, - 0x7E, - 0xAE, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x74, - 0x74, - 0x34, - 0x33, - 0x4E, - 0x4E, - 0x37, - 0xBD, - 0x06, - 0x19, - 0x00, - 0x0C, - 0x18, - 0x73, - 0x37, - 0x37, - 0x67, - 0x62, - 0x62, - 0x38, - 0x39, - 0x37, - 0x37, - 0x09, - 0x06, - 0x19, - 0x00, - 0x26, - 0x09, - 0xA0, - 0x37, - 0x38, - 0x62, - 0x38, - 0x4E, - 0x33, - 0x72, - 0x72, - 0x33, - 0x72, - 0x72, - 0x3C, - 0x3C, - 0x3C, - 0x83, - 0x83, - 0x69, - 0x77, - 0x77, - 0x81, - 0x77, - 0x77, - 0x6A, - 0x6A, - 0x65, - 0x7F, - 0x19, - 0x19, - 0x18, - 0x93, - 0x4B, - 0x4B, - 0x4B, - 0x6A, - 0x6A, - 0x6A, - 0x07, - 0x83, - 0x00, - 0x07, - 0x6A, - 0x6A, - 0x6A, - 0x22, - 0x6A, - 0x4B, - 0x65, - 0x00, - 0x04, - 0x4B, - 0x01, - 0x3D, - 0x01, - 0xA0, - 0x04, - 0x19, - 0x01, - 0xA0, - 0x01, - 0x4B, - 0x05, - 0x65, - 0x00, - 0x03, - 0x6A, - 0x65, - 0x50, - 0x00, - 0x08, - 0x65, - 0x01, - 0x6A, - 0x01, - 0x65, - 0x04, - 0x50, - 0x00, - 0x12, - 0x65, - 0x72, - 0x72, - 0x4E, - 0x62, - 0x38, - 0x62, - 0x67, - 0x84, - 0x3E, - 0x3E, - 0x3F, - 0x7F, - 0x09, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x05, - 0x48, - 0x00, - 0x03, - 0x3F, - 0x48, - 0x55, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0A, - 0x09, - 0x2C, - 0x51, - 0x58, - 0x58, - 0x51, - 0x58, - 0x3F, - 0x51, - 0x51, - 0x04, - 0x58, - 0x00, - 0x04, - 0x51, - 0x58, - 0x58, - 0x51, - 0x07, - 0x58, - 0x00, - 0x6A, - 0x25, - 0x44, - 0x63, - 0x64, - 0x36, - 0x7A, - 0x2F, - 0x2F, - 0x55, - 0x2A, - 0x55, - 0x2A, - 0x26, - 0x55, - 0x2A, - 0x2A, - 0x2C, - 0x2C, - 0x2C, - 0x2B, - 0x2F, - 0x2C, - 0x2B, - 0x2C, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x7A, - 0x7C, - 0x4F, - 0x64, - 0x64, - 0x4D, - 0x4D, - 0x3A, - 0x5A, - 0x3A, - 0x5A, - 0x3A, - 0x29, - 0x2E, - 0x84, - 0x38, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x2E, - 0x2E, - 0x59, - 0x5A, - 0x5B, - 0x4D, - 0x91, - 0x91, - 0x7C, - 0x89, - 0x89, - 0x36, - 0x5F, - 0x36, - 0x5F, - 0x76, - 0x76, - 0x5F, - 0xAF, - 0x7F, - 0x7A, - 0x7F, - 0x7A, - 0x7F, - 0x7A, - 0x7A, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x4F, - 0x36, - 0x89, - 0x5F, - 0x4F, - 0x5F, - 0x5F, - 0x7A, - 0x5F, - 0x89, - 0x7C, - 0x64, - 0x44, - 0x3A, - 0x58, - 0x18, - 0x09, - 0x09, - 0x09, - 0x73, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x77, - 0x53, - 0x81, - 0x04, - 0x53, - 0x00, - 0x19, - 0x94, - 0x53, - 0x87, - 0x53, - 0x68, - 0x68, - 0x94, - 0x99, - 0x8F, - 0x7E, - 0xAE, - 0xAC, - 0x8E, - 0x8E, - 0xCE, - 0xAC, - 0xCB, - 0xAC, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x6D, - 0x61, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0x3B, - 0x6E, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x4E, - 0x38, - 0x7F, - 0x05, - 0x19, - 0x00, - 0x0D, - 0x09, - 0x18, - 0xB4, - 0x37, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x38, - 0x62, - 0x62, - 0x67, - 0xAB, - 0x00, - 0x06, - 0x19, - 0x00, - 0x0B, - 0x18, - 0xBD, - 0x37, - 0x67, - 0x38, - 0x33, - 0x33, - 0x72, - 0x33, - 0x34, - 0x88, - 0x00, - 0x05, - 0x69, - 0x00, - 0x25, - 0x57, - 0x57, - 0x57, - 0x87, - 0x53, - 0x53, - 0x81, - 0x81, - 0x77, - 0x83, - 0x6A, - 0xE5, - 0x19, - 0x19, - 0x18, - 0x19, - 0x4B, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x77, - 0x57, - 0x81, - 0x77, - 0x57, - 0x77, - 0x83, - 0x83, - 0x6A, - 0xCC, - 0x18, - 0x18, - 0x18, - 0x19, - 0x00, - 0x04, - 0x4B, - 0x01, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x07, - 0xBD, - 0x65, - 0x4B, - 0x6A, - 0x50, - 0x6A, - 0x83, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x27, - 0x50, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x65, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x88, - 0x88, - 0x50, - 0x65, - 0x72, - 0x72, - 0x62, - 0x67, - 0x67, - 0x67, - 0x37, - 0x58, - 0x3E, - 0xAB, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x93, - 0x19, - 0x18, - 0x93, - 0x19, - 0x18, - 0x19, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x2A, - 0x20, - 0x3F, - 0x3F, - 0x51, - 0x51, - 0x58, - 0x51, - 0x3A, - 0x58, - 0x58, - 0x58, - 0x51, - 0x51, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x84, - 0x58, - 0x58, - 0x4D, - 0x63, - 0x64, - 0x89, - 0x5F, - 0x76, - 0x2F, - 0x2F, - 0x55, - 0x8C, - 0x2A, - 0x55, - 0x55, - 0x26, - 0x2C, - 0x55, - 0x2A, - 0x05, - 0x2C, - 0x01, - 0x7F, - 0x01, - 0x2F, - 0x04, - 0x7A, - 0x00, - 0x33, - 0x36, - 0x4F, - 0x64, - 0x64, - 0x75, - 0x4D, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x5B, - 0x5A, - 0x5A, - 0x29, - 0x59, - 0x2E, - 0x38, - 0x4E, - 0x33, - 0x72, - 0x31, - 0x31, - 0x2E, - 0x29, - 0x5A, - 0x5A, - 0x66, - 0x75, - 0x91, - 0xBE, - 0x7C, - 0x89, - 0x89, - 0x89, - 0xA5, - 0xA5, - 0x5F, - 0xA5, - 0xAF, - 0x7A, - 0xAF, - 0x76, - 0x76, - 0xB4, - 0x76, - 0x7F, - 0x76, - 0x76, - 0x76, - 0x5F, - 0x89, - 0x00, - 0x05, - 0x5F, - 0x00, - 0x33, - 0x36, - 0x5F, - 0x89, - 0x89, - 0x7C, - 0x91, - 0x63, - 0x4D, - 0x3A, - 0x84, - 0x18, - 0x19, - 0x19, - 0x93, - 0x73, - 0x22, - 0x6A, - 0x81, - 0x81, - 0x53, - 0x53, - 0x87, - 0x94, - 0x68, - 0x9E, - 0x68, - 0x98, - 0x9E, - 0x9E, - 0x68, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0xAC, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x28, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x38, - 0x62, - 0xBD, - 0x19, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x5A, - 0x67, - 0x38, - 0x4E, - 0x43, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x67, - 0xA5, - 0x09, - 0x09, - 0x04, - 0x19, - 0x00, - 0x0D, - 0x18, - 0xBD, - 0x67, - 0x4E, - 0x4E, - 0x33, - 0x33, - 0x34, - 0x34, - 0x57, - 0x34, - 0x34, - 0x88, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0B, - 0x82, - 0x82, - 0x53, - 0x98, - 0x98, - 0x53, - 0x98, - 0x81, - 0x77, - 0x22, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x77, - 0x81, - 0x81, - 0x53, - 0x53, - 0x98, - 0x53, - 0x53, - 0x57, - 0x81, - 0x77, - 0x69, - 0xDF, - 0x18, - 0x19, - 0x19, - 0x19, - 0x6A, - 0x4B, - 0x4B, - 0x4B, - 0xBD, - 0x04, - 0x19, - 0x00, - 0x05, - 0xA0, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x00, - 0x06, - 0x83, - 0x00, - 0x1D, - 0x3C, - 0x83, - 0x6A, - 0x6A, - 0x3C, - 0x6A, - 0x6A, - 0x3C, - 0x83, - 0x6A, - 0x88, - 0x83, - 0x88, - 0x50, - 0x3C, - 0x50, - 0x72, - 0x43, - 0x4E, - 0x62, - 0x67, - 0x84, - 0x47, - 0x3E, - 0x3E, - 0x7F, - 0x19, - 0x09, - 0x09, - 0x00, - 0x0D, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x7C, - 0x3E, - 0x58, - 0x51, - 0x51, - 0x58, - 0x44, - 0x58, - 0x58, - 0x3A, - 0x3A, - 0x04, - 0x58, - 0x07, - 0x84, - 0x00, - 0x0F, - 0x58, - 0x3A, - 0x5A, - 0x63, - 0x63, - 0x45, - 0x36, - 0x5F, - 0x7A, - 0x76, - 0x2C, - 0x55, - 0x55, - 0x8C, - 0x26, - 0x00, - 0x04, - 0x55, - 0x00, - 0x4E, - 0x2C, - 0xAB, - 0x2C, - 0x55, - 0x7F, - 0x2C, - 0x2C, - 0x7F, - 0x2C, - 0x7A, - 0x76, - 0x5F, - 0x89, - 0x89, - 0x45, - 0x75, - 0x4D, - 0x90, - 0x5A, - 0x5A, - 0x5B, - 0x5B, - 0x8B, - 0x8B, - 0x5A, - 0x5A, - 0x39, - 0x2E, - 0x39, - 0x4E, - 0x33, - 0x72, - 0x33, - 0x4E, - 0x6F, - 0x46, - 0x59, - 0x5A, - 0x90, - 0x5B, - 0xBC, - 0x91, - 0xBE, - 0xA7, - 0x45, - 0xA5, - 0xA5, - 0x36, - 0xA5, - 0xA5, - 0x76, - 0xAF, - 0x76, - 0xA0, - 0x76, - 0x76, - 0x7F, - 0x7F, - 0x76, - 0x76, - 0xAF, - 0xAF, - 0x76, - 0x5F, - 0x5F, - 0xA5, - 0x5F, - 0x5F, - 0x5F, - 0xA5, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x5B, - 0x5A, - 0x84, - 0x38, - 0x04, - 0xD0, - 0x00, - 0x17, - 0xD8, - 0x77, - 0x53, - 0x81, - 0x68, - 0x68, - 0x68, - 0x8F, - 0x68, - 0x8F, - 0x68, - 0x8F, - 0x99, - 0x8F, - 0x99, - 0x99, - 0x7E, - 0x7E, - 0x7E, - 0xAE, - 0x9B, - 0x8E, - 0x9B, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x0A, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x28, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x38, - 0xBD, - 0x18, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x20, - 0x37, - 0x38, - 0x4E, - 0x4E, - 0x33, - 0x33, - 0x33, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0x20, - 0x09, - 0x05, - 0x19, - 0x00, - 0x1B, - 0xBD, - 0x38, - 0x43, - 0x33, - 0x33, - 0x34, - 0x34, - 0x34, - 0x74, - 0x74, - 0x56, - 0x74, - 0x7D, - 0x7D, - 0x56, - 0x8A, - 0x82, - 0x8A, - 0x9C, - 0x94, - 0x82, - 0x9E, - 0x53, - 0x53, - 0x81, - 0x77, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x08, - 0x83, - 0x83, - 0x77, - 0x81, - 0x53, - 0x53, - 0x87, - 0x94, - 0x04, - 0x98, - 0x00, - 0x0E, - 0x53, - 0x53, - 0x81, - 0x83, - 0xDF, - 0x20, - 0x19, - 0x19, - 0x20, - 0x65, - 0x65, - 0x50, - 0x65, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x27, - 0xBD, - 0x83, - 0x6A, - 0x83, - 0x77, - 0x77, - 0x57, - 0x77, - 0x77, - 0x57, - 0x77, - 0x77, - 0x69, - 0x83, - 0x69, - 0x83, - 0x83, - 0x69, - 0x83, - 0x3C, - 0x69, - 0x83, - 0x88, - 0x6A, - 0x88, - 0x3C, - 0x72, - 0x6A, - 0x72, - 0x65, - 0x4E, - 0x62, - 0x67, - 0x67, - 0x37, - 0x37, - 0x7F, - 0x19, - 0x09, - 0x00, - 0x0E, - 0x19, - 0x00, - 0x11, - 0x89, - 0x51, - 0x51, - 0x58, - 0x58, - 0x84, - 0x58, - 0x84, - 0x84, - 0x58, - 0x84, - 0x58, - 0x84, - 0x84, - 0x84, - 0x3A, - 0x58, - 0x00, - 0x05, - 0x84, - 0x00, - 0x43, - 0x3A, - 0x5A, - 0x5B, - 0x44, - 0x75, - 0x64, - 0x89, - 0x36, - 0x76, - 0x76, - 0x7F, - 0x7F, - 0x55, - 0x55, - 0x55, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x9F, - 0x55, - 0x2A, - 0x9F, - 0x2C, - 0x55, - 0x2C, - 0x7F, - 0x7A, - 0x7F, - 0x76, - 0x5F, - 0xA5, - 0x89, - 0x91, - 0xA8, - 0x66, - 0x8B, - 0x5B, - 0x8B, - 0x66, - 0x8B, - 0x66, - 0x5B, - 0x5B, - 0x5A, - 0x29, - 0x5A, - 0x27, - 0x2E, - 0x2E, - 0x4E, - 0x33, - 0x34, - 0x42, - 0x31, - 0x31, - 0x46, - 0x46, - 0x59, - 0x90, - 0x5B, - 0x66, - 0x75, - 0x91, - 0xBE, - 0xBE, - 0x89, - 0x00, - 0x06, - 0xA5, - 0x00, - 0x42, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0x76, - 0xA0, - 0xAF, - 0x7A, - 0x5F, - 0x76, - 0xA5, - 0x76, - 0x36, - 0xA5, - 0xAF, - 0x89, - 0x36, - 0xA7, - 0x89, - 0xBE, - 0x91, - 0x5B, - 0x5A, - 0x2E, - 0x72, - 0x88, - 0x22, - 0x82, - 0x77, - 0x87, - 0x53, - 0x53, - 0x87, - 0x8F, - 0x94, - 0x7E, - 0x8F, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0xBF, - 0x7E, - 0x9B, - 0x9B, - 0x7E, - 0x9B, - 0xAD, - 0x9B, - 0x9B, - 0x9B, - 0xAC, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x04, - 0x61, - 0x00, - 0x12, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x3B, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x33, - 0x4E, - 0xBD, - 0x09, - 0x09, - 0x04, - 0x19, - 0x00, - 0x03, - 0xBD, - 0x38, - 0x38, - 0x00, - 0x06, - 0x33, - 0x00, - 0x31, - 0x4E, - 0x38, - 0x43, - 0xD5, - 0x18, - 0x18, - 0x09, - 0x18, - 0x18, - 0x20, - 0xBD, - 0x4E, - 0x33, - 0x33, - 0x34, - 0x34, - 0x42, - 0x74, - 0x3B, - 0x3B, - 0x7D, - 0x56, - 0x6C, - 0x6C, - 0x8A, - 0x6B, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x98, - 0x98, - 0x53, - 0x81, - 0xE5, - 0x09, - 0x09, - 0x20, - 0x19, - 0x77, - 0x81, - 0x53, - 0x53, - 0x98, - 0x98, - 0x94, - 0x8F, - 0x00, - 0x04, - 0x94, - 0x00, - 0x38, - 0x98, - 0x98, - 0x81, - 0x57, - 0xDF, - 0x09, - 0x09, - 0x19, - 0x20, - 0x65, - 0x6A, - 0x6A, - 0x65, - 0xD0, - 0x20, - 0x19, - 0x19, - 0x20, - 0xBD, - 0x6A, - 0x83, - 0x83, - 0x81, - 0x57, - 0x81, - 0x82, - 0x81, - 0x81, - 0x7D, - 0x81, - 0x57, - 0x81, - 0x83, - 0x77, - 0x77, - 0x69, - 0x77, - 0x69, - 0x69, - 0x69, - 0x83, - 0x69, - 0x69, - 0x72, - 0x83, - 0x6A, - 0x72, - 0x50, - 0x43, - 0x43, - 0x62, - 0x67, - 0x37, - 0x37, - 0xB4, - 0x19, - 0x07, - 0x09, - 0x00, - 0x0F, - 0x20, - 0x19, - 0x09, - 0x09, - 0x09, - 0x55, - 0xAB, - 0x58, - 0x3F, - 0x58, - 0x3E, - 0x58, - 0x84, - 0x58, - 0x3A, - 0x00, - 0x09, - 0x84, - 0x00, - 0x29, - 0x39, - 0x84, - 0x84, - 0x39, - 0x39, - 0x29, - 0x5A, - 0x4D, - 0x4D, - 0x75, - 0x45, - 0x89, - 0x36, - 0x76, - 0x5F, - 0xA0, - 0x7A, - 0x7F, - 0x7F, - 0x55, - 0xAB, - 0x55, - 0x55, - 0x55, - 0x9F, - 0x55, - 0x55, - 0x55, - 0xAB, - 0x55, - 0x7F, - 0x55, - 0x7F, - 0x7F, - 0x76, - 0xAF, - 0x5F, - 0x45, - 0xA7, - 0xBE, - 0x91, - 0x00, - 0x06, - 0x66, - 0x04, - 0x75, - 0x00, - 0x5E, - 0x5B, - 0x4D, - 0x5A, - 0x29, - 0x2E, - 0x46, - 0x72, - 0x34, - 0x34, - 0x34, - 0x42, - 0x6F, - 0x46, - 0x5E, - 0x5E, - 0x8B, - 0x8B, - 0x75, - 0x75, - 0xBE, - 0x91, - 0xD8, - 0xBE, - 0xA5, - 0xA7, - 0xA5, - 0xD0, - 0xAF, - 0xA5, - 0xAF, - 0xAF, - 0xAF, - 0x76, - 0xAF, - 0x76, - 0xA5, - 0xAF, - 0xA5, - 0x5F, - 0xA5, - 0x5F, - 0xA5, - 0xA5, - 0xA7, - 0xA7, - 0x36, - 0x45, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x4E, - 0x34, - 0x57, - 0x57, - 0x53, - 0x98, - 0x87, - 0x68, - 0x94, - 0x68, - 0x8F, - 0x7E, - 0x9B, - 0xAE, - 0xAE, - 0xAD, - 0x9B, - 0x9B, - 0x9B, - 0xAD, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xAC, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x1C, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x33, - 0x43, - 0x62, - 0x38, - 0x62, - 0x43, - 0x62, - 0x43, - 0x4E, - 0x33, - 0x33, - 0x33, - 0x34, - 0x33, - 0x34, - 0x34, - 0x33, - 0x33, - 0x4E, - 0x4E, - 0x05, - 0x62, - 0x00, - 0x73, - 0x4E, - 0x72, - 0x4E, - 0x33, - 0x34, - 0x34, - 0x74, - 0x74, - 0x74, - 0x3B, - 0x3B, - 0x6E, - 0x6C, - 0x6C, - 0x4A, - 0x8A, - 0x6B, - 0x5D, - 0x5D, - 0x9C, - 0x52, - 0x98, - 0x82, - 0x94, - 0x82, - 0x53, - 0x81, - 0x53, - 0x81, - 0x81, - 0x87, - 0x81, - 0x53, - 0x53, - 0x87, - 0x9E, - 0x68, - 0x94, - 0x8F, - 0x94, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x81, - 0x34, - 0x33, - 0x4E, - 0x46, - 0x46, - 0x83, - 0x6A, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x81, - 0x83, - 0x77, - 0x81, - 0x81, - 0x53, - 0x98, - 0x53, - 0x87, - 0x98, - 0x53, - 0x53, - 0x87, - 0x81, - 0x82, - 0x7D, - 0x81, - 0x81, - 0x57, - 0x69, - 0x77, - 0x83, - 0x69, - 0x69, - 0x83, - 0x88, - 0x88, - 0x72, - 0x50, - 0x72, - 0x43, - 0x43, - 0x62, - 0x62, - 0x67, - 0x3D, - 0x47, - 0x47, - 0x47, - 0x40, - 0x3E, - 0x40, - 0x40, - 0x3F, - 0x40, - 0x3F, - 0x3E, - 0x3F, - 0x3F, - 0x3E, - 0x3E, - 0x3E, - 0x3F, - 0x00, - 0x05, - 0x58, - 0x04, - 0x84, - 0x01, - 0x39, - 0x01, - 0x84, - 0x04, - 0x39, - 0x00, - 0x16, - 0x67, - 0x39, - 0x39, - 0x38, - 0x67, - 0x27, - 0x3A, - 0x4D, - 0x75, - 0x91, - 0x45, - 0x89, - 0x5F, - 0xA5, - 0x76, - 0x76, - 0x7A, - 0xA0, - 0x7F, - 0x2C, - 0xAB, - 0x55, - 0x06, - 0x9F, - 0x00, - 0x12, - 0xAB, - 0x55, - 0xAB, - 0x55, - 0x2F, - 0xB4, - 0x76, - 0x76, - 0x5F, - 0xA7, - 0x45, - 0x89, - 0x91, - 0xA8, - 0x75, - 0x66, - 0x75, - 0x75, - 0x05, - 0x91, - 0x00, - 0x15, - 0x63, - 0x91, - 0x4D, - 0x5B, - 0x5A, - 0x2E, - 0x38, - 0x31, - 0x34, - 0x34, - 0x56, - 0x74, - 0x74, - 0xBA, - 0x6F, - 0x9A, - 0x59, - 0x90, - 0xBB, - 0xBC, - 0xBC, - 0x00, - 0x04, - 0xBE, - 0x05, - 0xA7, - 0x01, - 0xA5, - 0x06, - 0xAF, - 0x00, - 0x20, - 0x5F, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xA7, - 0x89, - 0x89, - 0xA7, - 0xBE, - 0x45, - 0xA8, - 0x66, - 0x59, - 0x46, - 0x33, - 0x57, - 0x82, - 0x98, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0x9B, - 0xAE, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x9B, - 0x05, - 0x8E, - 0x00, - 0x15, - 0xC5, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA6, - 0x61, - 0x6D, - 0xA6, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x3B, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x33, - 0x06, - 0x4E, - 0x00, - 0x03, - 0x33, - 0x33, - 0x33, - 0x00, - 0x06, - 0x34, - 0x04, - 0x33, - 0x04, - 0x4E, - 0x00, - 0x08, - 0x38, - 0x33, - 0x4E, - 0x33, - 0x34, - 0x34, - 0x34, - 0x74, - 0x05, - 0x3B, - 0x00, - 0x2A, - 0x6D, - 0x6D, - 0x4A, - 0x4A, - 0x5D, - 0x4A, - 0x4A, - 0x5D, - 0x9C, - 0x35, - 0x9C, - 0x9C, - 0x94, - 0x98, - 0x98, - 0x53, - 0x53, - 0x81, - 0x81, - 0x87, - 0x53, - 0x9E, - 0x9E, - 0x94, - 0x8F, - 0x94, - 0x7E, - 0x8F, - 0x8F, - 0xA3, - 0xA3, - 0x8F, - 0x8F, - 0x98, - 0x98, - 0x98, - 0x87, - 0x57, - 0x81, - 0x57, - 0x81, - 0x69, - 0x07, - 0x83, - 0x00, - 0x17, - 0x69, - 0x77, - 0x81, - 0x77, - 0x53, - 0x98, - 0x87, - 0x98, - 0x9E, - 0x98, - 0x87, - 0x9E, - 0x98, - 0x98, - 0x82, - 0x81, - 0x82, - 0x82, - 0x57, - 0x81, - 0x57, - 0x69, - 0x7D, - 0x00, - 0x04, - 0x69, - 0x00, - 0x1D, - 0x88, - 0x6A, - 0x88, - 0x72, - 0x65, - 0x72, - 0x43, - 0x62, - 0x62, - 0x67, - 0x67, - 0x37, - 0x47, - 0x47, - 0x58, - 0x3E, - 0x3E, - 0x3E, - 0x58, - 0x3E, - 0x58, - 0x3E, - 0x3E, - 0x58, - 0x3E, - 0x3E, - 0x58, - 0x58, - 0x58, - 0x00, - 0x04, - 0x84, - 0x07, - 0x39, - 0x00, - 0x94, - 0x84, - 0x38, - 0x39, - 0x39, - 0x39, - 0x38, - 0x39, - 0x29, - 0x4D, - 0x75, - 0x64, - 0xA7, - 0xA7, - 0x5F, - 0x5F, - 0x76, - 0x76, - 0x7F, - 0x76, - 0x76, - 0x76, - 0xA0, - 0xB4, - 0x7F, - 0xAB, - 0xAB, - 0xAB, - 0x9F, - 0xAB, - 0x55, - 0x7F, - 0xAB, - 0xAB, - 0x2C, - 0xAB, - 0x7F, - 0x76, - 0x76, - 0x5F, - 0xA7, - 0xA7, - 0x45, - 0x45, - 0x91, - 0x91, - 0xA8, - 0x91, - 0x45, - 0x45, - 0x89, - 0x45, - 0x89, - 0x89, - 0x91, - 0x91, - 0x75, - 0x4D, - 0x5B, - 0x59, - 0x4E, - 0x33, - 0x34, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x74, - 0x74, - 0x9A, - 0x9A, - 0xB3, - 0x90, - 0x90, - 0xBC, - 0xA8, - 0xA8, - 0xD8, - 0xD8, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xD0, - 0xA7, - 0xD0, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xA7, - 0xA5, - 0xA7, - 0xA7, - 0xBE, - 0x45, - 0xA8, - 0x75, - 0x8B, - 0x5E, - 0x31, - 0x74, - 0x8A, - 0x9C, - 0x94, - 0xA3, - 0x8F, - 0x7E, - 0x7E, - 0x7E, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xAC, - 0x8E, - 0x8E, - 0xCB, - 0xAC, - 0xCB, - 0x8E, - 0x80, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x13, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x34, - 0x34, - 0x00, - 0x04, - 0x33, - 0x00, - 0x0E, - 0x72, - 0x4E, - 0x33, - 0x33, - 0x33, - 0x34, - 0x34, - 0x42, - 0x74, - 0x74, - 0x74, - 0x34, - 0x74, - 0x34, - 0x04, - 0x33, - 0x01, - 0x4E, - 0x04, - 0x33, - 0x00, - 0x71, - 0x34, - 0x34, - 0x74, - 0x74, - 0x3B, - 0x3B, - 0x74, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0xA6, - 0xA6, - 0xB9, - 0x6B, - 0xB9, - 0x5D, - 0x49, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x53, - 0x98, - 0x82, - 0x82, - 0x53, - 0x98, - 0x82, - 0x94, - 0x94, - 0x8F, - 0x7E, - 0x7E, - 0xB2, - 0xBF, - 0xA3, - 0x8F, - 0x94, - 0x94, - 0xA3, - 0x9E, - 0x98, - 0x98, - 0x53, - 0x53, - 0x81, - 0x77, - 0x81, - 0x77, - 0x53, - 0x77, - 0x57, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x53, - 0x98, - 0x98, - 0x98, - 0x9E, - 0x9E, - 0x9E, - 0x94, - 0x94, - 0x98, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x53, - 0x81, - 0x82, - 0x81, - 0x57, - 0x81, - 0x69, - 0x69, - 0x83, - 0x69, - 0x69, - 0x69, - 0x88, - 0x69, - 0x50, - 0x88, - 0x50, - 0x43, - 0x50, - 0x43, - 0x4B, - 0x4B, - 0x62, - 0x67, - 0x37, - 0x47, - 0x37, - 0x47, - 0x58, - 0x37, - 0x3E, - 0x3E, - 0x58, - 0x37, - 0x3E, - 0x58, - 0x84, - 0x58, - 0x00, - 0x04, - 0x84, - 0x00, - 0x0B, - 0x39, - 0x39, - 0x67, - 0x39, - 0x39, - 0x38, - 0x39, - 0x38, - 0x38, - 0x38, - 0x39, - 0x00, - 0x04, - 0x38, - 0x00, - 0x0B, - 0x39, - 0x5A, - 0x4D, - 0x45, - 0x36, - 0x36, - 0x23, - 0xAF, - 0x7F, - 0x7F, - 0x7F, - 0x00, - 0x04, - 0x76, - 0x00, - 0x16, - 0x5F, - 0x76, - 0xA0, - 0x7F, - 0xA0, - 0x7F, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xAB, - 0xAB, - 0xB4, - 0x2F, - 0x76, - 0x5F, - 0xAF, - 0x36, - 0x89, - 0x89, - 0x89, - 0x45, - 0x05, - 0x89, - 0x00, - 0x29, - 0x36, - 0x36, - 0x89, - 0x4F, - 0x7C, - 0x89, - 0x7C, - 0x91, - 0x75, - 0x5A, - 0x84, - 0x46, - 0x34, - 0x7D, - 0x8A, - 0xA3, - 0xA3, - 0x86, - 0xB9, - 0x3B, - 0xBA, - 0x6F, - 0x5E, - 0xD6, - 0x8B, - 0x8B, - 0x8B, - 0xBC, - 0xA8, - 0x91, - 0xBE, - 0xA7, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xA7, - 0xA5, - 0xA7, - 0xA5, - 0xAF, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x37, - 0xA7, - 0x36, - 0xA7, - 0xBE, - 0x45, - 0x45, - 0xBE, - 0x66, - 0x8B, - 0x59, - 0x46, - 0x74, - 0x6B, - 0x9C, - 0xA3, - 0x7E, - 0x7E, - 0xAE, - 0xAE, - 0x9B, - 0x9B, - 0x8E, - 0xB1, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xD3, - 0xCB, - 0xCB, - 0xAA, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x61, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x05, - 0x34, - 0x01, - 0x33, - 0x04, - 0x34, - 0x00, - 0x03, - 0x74, - 0x74, - 0x34, - 0x00, - 0x05, - 0x74, - 0x00, - 0x39, - 0x34, - 0x34, - 0x34, - 0x33, - 0x33, - 0x34, - 0x34, - 0x33, - 0x34, - 0x34, - 0x34, - 0x74, - 0x74, - 0x3B, - 0x6E, - 0x3B, - 0x6D, - 0x6D, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0xA6, - 0x4A, - 0xB9, - 0x4A, - 0x4A, - 0x5D, - 0xB9, - 0x5D, - 0x5D, - 0x9C, - 0x8A, - 0x9C, - 0x82, - 0x82, - 0x82, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x94, - 0xA3, - 0xA3, - 0x7E, - 0xBF, - 0xA3, - 0x7E, - 0x8F, - 0xBF, - 0x7E, - 0x94, - 0x94, - 0x9E, - 0x94, - 0x00, - 0x04, - 0x98, - 0x00, - 0x49, - 0x82, - 0x53, - 0x53, - 0x87, - 0x57, - 0x81, - 0x53, - 0x53, - 0x53, - 0x98, - 0x87, - 0x9E, - 0x98, - 0x9E, - 0x8F, - 0x8F, - 0x94, - 0x68, - 0x9E, - 0x94, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x53, - 0x82, - 0x81, - 0x82, - 0x81, - 0x7D, - 0x69, - 0x69, - 0x69, - 0x88, - 0x88, - 0x83, - 0x88, - 0x72, - 0x88, - 0x50, - 0x72, - 0x72, - 0x43, - 0x43, - 0x65, - 0x62, - 0x62, - 0x67, - 0x37, - 0x67, - 0x84, - 0x84, - 0x37, - 0x37, - 0x37, - 0x84, - 0x37, - 0x84, - 0x67, - 0x84, - 0x84, - 0x67, - 0x67, - 0x39, - 0x84, - 0x38, - 0x84, - 0x67, - 0x2E, - 0x67, - 0x38, - 0x39, - 0x00, - 0x08, - 0x38, - 0x00, - 0x22, - 0x84, - 0x66, - 0x45, - 0x36, - 0xAF, - 0x76, - 0x76, - 0x7F, - 0x2C, - 0x7F, - 0x2F, - 0x7F, - 0x76, - 0x5F, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0x7F, - 0xB4, - 0xB4, - 0xB4, - 0x7F, - 0x76, - 0x7F, - 0x7A, - 0x76, - 0x5F, - 0x76, - 0x89, - 0x36, - 0x04, - 0x89, - 0x00, - 0x68, - 0x7C, - 0x5F, - 0x89, - 0x5F, - 0x5F, - 0x5F, - 0x7A, - 0x89, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x5E, - 0x4E, - 0x34, - 0x56, - 0x9C, - 0xA3, - 0xBF, - 0xB2, - 0xA3, - 0xB9, - 0x6C, - 0xBA, - 0x6F, - 0xD6, - 0x5E, - 0xBB, - 0x90, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0xA8, - 0xBE, - 0xBE, - 0xBE, - 0xA7, - 0xD8, - 0x89, - 0xA7, - 0xA7, - 0xA5, - 0xA5, - 0xD0, - 0xA5, - 0xA5, - 0xA7, - 0xA7, - 0xA7, - 0x45, - 0xBE, - 0x45, - 0x66, - 0x66, - 0x90, - 0x5E, - 0x6F, - 0x74, - 0x5D, - 0x49, - 0x7E, - 0xBF, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x13, - 0xA6, - 0x61, - 0x6D, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x34, - 0x34, - 0x34, - 0x42, - 0x42, - 0x34, - 0x34, - 0x3B, - 0x74, - 0x74, - 0x00, - 0x06, - 0x3B, - 0x00, - 0x03, - 0x74, - 0x74, - 0x74, - 0x00, - 0x04, - 0x34, - 0x01, - 0x42, - 0x01, - 0x34, - 0x04, - 0x74, - 0x00, - 0x20, - 0x3B, - 0x3B, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x6D, - 0x61, - 0x4A, - 0xB9, - 0x4A, - 0xB9, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x8A, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x04, - 0xA3, - 0x00, - 0x0C, - 0xB2, - 0xA3, - 0x7E, - 0x7E, - 0x8F, - 0xA3, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x9E, - 0x9E, - 0x0A, - 0x98, - 0x00, - 0x24, - 0x9E, - 0x9E, - 0x9E, - 0x8F, - 0x9E, - 0x8F, - 0x9E, - 0x94, - 0x8F, - 0x9E, - 0x9E, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x53, - 0x82, - 0x82, - 0x7D, - 0x77, - 0x7D, - 0x69, - 0x57, - 0x83, - 0x69, - 0x88, - 0x88, - 0x83, - 0x6A, - 0x88, - 0x6A, - 0x50, - 0x6A, - 0x43, - 0x43, - 0x04, - 0x62, - 0x00, - 0x37, - 0x4B, - 0x4B, - 0x67, - 0x67, - 0x67, - 0x84, - 0x67, - 0x67, - 0x84, - 0x84, - 0x84, - 0x67, - 0x84, - 0x84, - 0x67, - 0x38, - 0x39, - 0x4E, - 0x39, - 0x38, - 0x38, - 0x4E, - 0x84, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x4E, - 0x2E, - 0x5A, - 0x75, - 0x45, - 0x76, - 0x7F, - 0x2C, - 0x55, - 0x9F, - 0xAB, - 0x55, - 0xAB, - 0x2C, - 0xA0, - 0xAF, - 0xA7, - 0x45, - 0x45, - 0xA7, - 0xA5, - 0xA7, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0x00, - 0x04, - 0x76, - 0x00, - 0x4D, - 0x5F, - 0x76, - 0x5F, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x5F, - 0x7C, - 0x5F, - 0x5F, - 0x5F, - 0x76, - 0x4F, - 0x4F, - 0x7A, - 0x89, - 0x7A, - 0x89, - 0x36, - 0x91, - 0x91, - 0x4D, - 0x5A, - 0x2E, - 0x33, - 0x34, - 0x5D, - 0xA3, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xA4, - 0xB9, - 0x74, - 0xBA, - 0x6F, - 0xD6, - 0x59, - 0xBB, - 0x90, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0xD8, - 0xA8, - 0xA7, - 0xBE, - 0xA7, - 0xA7, - 0xD8, - 0xBE, - 0x89, - 0xBE, - 0xA7, - 0x45, - 0xA7, - 0x45, - 0xBE, - 0xA8, - 0xA8, - 0xBC, - 0x90, - 0xB3, - 0x6F, - 0x6F, - 0x6C, - 0x79, - 0xA3, - 0xBF, - 0xD4, - 0x9B, - 0x9B, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x07, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x03, - 0xD3, - 0xCB, - 0xCB, - 0x00, - 0x07, - 0xD3, - 0x00, - 0x0C, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x00, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x3B, - 0x00, - 0x05, - 0x74, - 0x04, - 0x3B, - 0x00, - 0x0B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x56, - 0x00, - 0x04, - 0x74, - 0x00, - 0x0A, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x03, - 0xA6, - 0x6D, - 0xA6, - 0x00, - 0x06, - 0x4A, - 0x00, - 0x0B, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x9C, - 0x00, - 0x04, - 0xA3, - 0x01, - 0xB2, - 0x04, - 0xA3, - 0x00, - 0x16, - 0x8F, - 0xA3, - 0x8F, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x9E, - 0x9E, - 0x94, - 0x9E, - 0x98, - 0x94, - 0x94, - 0x9E, - 0x8F, - 0x9E, - 0x07, - 0x8F, - 0x00, - 0x20, - 0x9E, - 0x94, - 0x98, - 0x9E, - 0x98, - 0x82, - 0x98, - 0x57, - 0x7D, - 0x81, - 0x81, - 0x69, - 0x7D, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x6A, - 0x88, - 0x83, - 0x72, - 0x72, - 0x50, - 0x50, - 0x72, - 0x50, - 0x62, - 0x43, - 0x67, - 0x62, - 0x62, - 0x05, - 0x67, - 0x00, - 0x31, - 0x38, - 0x38, - 0x67, - 0x67, - 0x38, - 0x38, - 0x67, - 0x67, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x2E, - 0x72, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x4E, - 0x38, - 0x2E, - 0x39, - 0x4D, - 0x91, - 0xAF, - 0x76, - 0x7F, - 0x8C, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x7F, - 0x76, - 0x36, - 0xBE, - 0x91, - 0xBC, - 0x45, - 0xA8, - 0xA7, - 0xA7, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0x00, - 0x06, - 0x5F, - 0x00, - 0x27, - 0x7A, - 0x89, - 0x4F, - 0x5F, - 0x5F, - 0x4F, - 0x5F, - 0x7A, - 0x4F, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x89, - 0x36, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x2E, - 0x46, - 0xBA, - 0x6C, - 0x5D, - 0xB2, - 0xB1, - 0x8E, - 0xC5, - 0xB1, - 0xB2, - 0xB9, - 0xB9, - 0x74, - 0xBA, - 0x46, - 0xD6, - 0x59, - 0xB3, - 0x90, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x25, - 0xBE, - 0xA8, - 0x91, - 0xBE, - 0x45, - 0xBE, - 0xA7, - 0x89, - 0xA7, - 0xD8, - 0x89, - 0xA7, - 0xBE, - 0xBE, - 0x45, - 0xA8, - 0x45, - 0x66, - 0x8B, - 0x90, - 0x5E, - 0x6F, - 0x74, - 0x4A, - 0x86, - 0xB2, - 0xB2, - 0xB1, - 0x8E, - 0xAC, - 0x8E, - 0xAC, - 0xAC, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x07, - 0xD3, - 0xAA, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xCA, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x0B, - 0xCB, - 0xCB, - 0xCB, - 0xAC, - 0xCE, - 0xCE, - 0xAC, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x11, - 0xA6, - 0x61, - 0x4A, - 0x9D, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x3B, - 0x00, - 0x0E, - 0x74, - 0x6C, - 0x74, - 0x3B, - 0x74, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x05, - 0x3B, - 0x00, - 0x2D, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x4A, - 0x4A, - 0x6C, - 0x6B, - 0x4A, - 0x6B, - 0x4A, - 0x8A, - 0x5D, - 0x6B, - 0x5D, - 0x9C, - 0x86, - 0x79, - 0x9C, - 0x35, - 0x52, - 0x9C, - 0x00, - 0x04, - 0xA3, - 0x00, - 0x12, - 0x9C, - 0xA3, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x07, - 0x8F, - 0x00, - 0x2A, - 0x99, - 0x8F, - 0x8F, - 0x9E, - 0x8F, - 0x9E, - 0x94, - 0x94, - 0x98, - 0x98, - 0x98, - 0x82, - 0x81, - 0x7D, - 0x7D, - 0x57, - 0x69, - 0x69, - 0x69, - 0x83, - 0x88, - 0x69, - 0x88, - 0x69, - 0x72, - 0x72, - 0x6A, - 0x72, - 0x72, - 0x50, - 0x43, - 0x72, - 0x4E, - 0x65, - 0x38, - 0x4E, - 0x67, - 0x4E, - 0x62, - 0x38, - 0x62, - 0x67, - 0x05, - 0x38, - 0x00, - 0x80, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x4E, - 0x62, - 0x4E, - 0x4E, - 0x4E, - 0x38, - 0x4E, - 0x46, - 0x62, - 0x2E, - 0x5A, - 0x75, - 0x45, - 0x23, - 0x2C, - 0x8C, - 0x26, - 0x32, - 0x32, - 0x8C, - 0x32, - 0x55, - 0x2C, - 0x7F, - 0x45, - 0x45, - 0xBC, - 0x5B, - 0x8B, - 0xA8, - 0xA8, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xA5, - 0x89, - 0xA7, - 0xA5, - 0x89, - 0x36, - 0x89, - 0x5F, - 0x89, - 0x4F, - 0x5F, - 0x5F, - 0x5F, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x5F, - 0x7A, - 0x5F, - 0x89, - 0x5F, - 0x89, - 0x91, - 0x91, - 0x5A, - 0x59, - 0x5E, - 0x6F, - 0x34, - 0x6B, - 0x52, - 0xBF, - 0x8E, - 0xAC, - 0xCE, - 0xB1, - 0xB2, - 0x86, - 0x8A, - 0xA6, - 0x74, - 0xBA, - 0x46, - 0xD6, - 0x90, - 0xB3, - 0x90, - 0x8B, - 0xBC, - 0x5B, - 0x8B, - 0xA8, - 0xBC, - 0x75, - 0xBE, - 0xBE, - 0x45, - 0xBE, - 0xBE, - 0x45, - 0xA7, - 0xBE, - 0x45, - 0xBE, - 0xBE, - 0xA8, - 0x66, - 0xBC, - 0x8B, - 0x59, - 0x9A, - 0x6F, - 0x6E, - 0xB9, - 0x52, - 0xB2, - 0xB1, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0x07, - 0xCB, - 0x00, - 0x06, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0x8D, - 0x06, - 0xD3, - 0x00, - 0x0C, - 0xCB, - 0x8D, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0xAC, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x21, - 0x61, - 0x4A, - 0xA6, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x3B, - 0x6E, - 0x6E, - 0x3B, - 0x6D, - 0x3B, - 0x6E, - 0x3B, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x0D, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x6D, - 0x3B, - 0x61, - 0x3B, - 0x61, - 0x6D, - 0x00, - 0x05, - 0x61, - 0x00, - 0x0A, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x6E, - 0x61, - 0x61, - 0x05, - 0x6D, - 0x00, - 0x14, - 0x6C, - 0x4A, - 0x6C, - 0x4A, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0xB9, - 0xB9, - 0x5D, - 0x79, - 0x52, - 0x79, - 0x9C, - 0x52, - 0x86, - 0xA3, - 0xA3, - 0x9C, - 0x04, - 0xA3, - 0x00, - 0x0C, - 0x94, - 0x8F, - 0x94, - 0x7E, - 0xA3, - 0x8F, - 0xA3, - 0x9E, - 0x8F, - 0xA3, - 0x8F, - 0x94, - 0x08, - 0x8F, - 0x00, - 0x2F, - 0x7E, - 0x99, - 0x8F, - 0x8F, - 0x8F, - 0x94, - 0x9E, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x82, - 0x98, - 0x57, - 0x77, - 0x82, - 0x57, - 0x69, - 0x69, - 0x69, - 0x57, - 0x83, - 0x88, - 0x69, - 0x88, - 0x88, - 0x6A, - 0x88, - 0x50, - 0x72, - 0x72, - 0x43, - 0x72, - 0x72, - 0x72, - 0x62, - 0x62, - 0x4E, - 0x4E, - 0x62, - 0x4E, - 0x38, - 0x4E, - 0x67, - 0x4E, - 0x4E, - 0x38, - 0x00, - 0x0F, - 0x4E, - 0x00, - 0x1F, - 0x27, - 0x66, - 0x64, - 0x36, - 0x7F, - 0x2C, - 0x32, - 0x32, - 0x85, - 0x85, - 0x32, - 0x32, - 0x8C, - 0x2C, - 0x76, - 0x36, - 0x75, - 0x8B, - 0x59, - 0x59, - 0x5B, - 0x8B, - 0xA8, - 0x66, - 0xBE, - 0xA8, - 0x45, - 0x45, - 0x45, - 0x89, - 0xA5, - 0x00, - 0x04, - 0x89, - 0x00, - 0x4F, - 0x5F, - 0x5F, - 0x4F, - 0x5F, - 0x7A, - 0x5F, - 0x7A, - 0x5F, - 0x36, - 0x4F, - 0x36, - 0x5F, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x90, - 0x5E, - 0x9A, - 0x42, - 0x3B, - 0x49, - 0xB2, - 0xB1, - 0x8E, - 0x8E, - 0x9B, - 0xBF, - 0xBF, - 0xA3, - 0x9C, - 0xB9, - 0x74, - 0x88, - 0xBA, - 0x9A, - 0x9A, - 0xB3, - 0xB3, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0xBC, - 0x5B, - 0x66, - 0xA8, - 0xBE, - 0xBE, - 0xA8, - 0x45, - 0xA7, - 0xA8, - 0xBE, - 0xA8, - 0x45, - 0xA8, - 0xA8, - 0x8B, - 0x8B, - 0x59, - 0xB3, - 0x46, - 0xBA, - 0x6E, - 0x49, - 0xA4, - 0xBF, - 0xB1, - 0x8E, - 0xAC, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xD3, - 0x00, - 0x06, - 0xCB, - 0x04, - 0xD3, - 0x00, - 0x04, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0x04, - 0xD3, - 0x04, - 0xCB, - 0x00, - 0x08, - 0xCE, - 0xCB, - 0xAC, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x38, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x9D, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x6D, - 0x6D, - 0x6E, - 0x6E, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0xA6, - 0x6E, - 0x07, - 0x61, - 0x00, - 0x03, - 0x6D, - 0x6D, - 0x61, - 0x00, - 0x07, - 0x6D, - 0x06, - 0x4A, - 0x00, - 0x0B, - 0x6B, - 0x49, - 0xB9, - 0x6B, - 0x5D, - 0x49, - 0xB9, - 0x9C, - 0x9C, - 0x9C, - 0x86, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x39, - 0xA3, - 0xA3, - 0xA3, - 0x94, - 0x94, - 0x7E, - 0x8F, - 0xA3, - 0x7E, - 0x8F, - 0x8F, - 0xA3, - 0x7E, - 0x94, - 0x8F, - 0x8F, - 0xAE, - 0x8F, - 0x7E, - 0xA2, - 0x8F, - 0x8F, - 0x7E, - 0x9E, - 0x9E, - 0x8F, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x82, - 0x7D, - 0x81, - 0x82, - 0x69, - 0x57, - 0x57, - 0x69, - 0x7D, - 0x88, - 0x88, - 0x69, - 0x88, - 0x88, - 0x6A, - 0x88, - 0x72, - 0x88, - 0x72, - 0x72, - 0x50, - 0x72, - 0x43, - 0x72, - 0x4E, - 0x72, - 0x00, - 0x05, - 0x4E, - 0x01, - 0x72, - 0x05, - 0x4E, - 0x00, - 0x06, - 0x72, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x05, - 0x4E, - 0x00, - 0x56, - 0x72, - 0x4E, - 0x2E, - 0x29, - 0x66, - 0xA7, - 0x76, - 0x2C, - 0x8C, - 0x32, - 0x85, - 0x2D, - 0x2D, - 0x32, - 0x2D, - 0x55, - 0x55, - 0x76, - 0xA7, - 0xA8, - 0x5A, - 0x5E, - 0x2E, - 0x59, - 0x59, - 0x5A, - 0xBC, - 0x8B, - 0x66, - 0x66, - 0xA8, - 0x91, - 0xBE, - 0x91, - 0x89, - 0x45, - 0x89, - 0x89, - 0x4F, - 0x4F, - 0x89, - 0x4F, - 0x89, - 0x89, - 0x4F, - 0x5F, - 0x89, - 0x89, - 0x45, - 0x91, - 0xA8, - 0x66, - 0x8B, - 0x90, - 0x5E, - 0x6F, - 0x6E, - 0x3B, - 0x49, - 0xB2, - 0xB1, - 0x8E, - 0x8E, - 0x9B, - 0xBF, - 0xB2, - 0x52, - 0xA3, - 0x9C, - 0x8A, - 0x6C, - 0xDC, - 0xBA, - 0xBA, - 0x46, - 0x46, - 0x5E, - 0xD6, - 0x5A, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0xA8, - 0x75, - 0x06, - 0xA8, - 0x00, - 0x37, - 0x45, - 0xA8, - 0xA8, - 0x66, - 0x8B, - 0xBB, - 0x59, - 0x9A, - 0x6F, - 0x42, - 0x4A, - 0x52, - 0xB2, - 0xD4, - 0xB1, - 0xCE, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xAC, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x00, - 0x06, - 0x61, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x01, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x06, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x40, - 0x6D, - 0xA6, - 0x61, - 0x6E, - 0x4A, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x6D, - 0x6C, - 0xA6, - 0x4A, - 0x4A, - 0xA6, - 0x6B, - 0x6C, - 0xB9, - 0xB9, - 0x5D, - 0x5D, - 0xB9, - 0xB9, - 0x9C, - 0x79, - 0x9C, - 0x9C, - 0x86, - 0xA3, - 0x9C, - 0xA3, - 0x94, - 0xA3, - 0xA3, - 0x7E, - 0xA3, - 0x94, - 0xBF, - 0xBF, - 0x8F, - 0x8F, - 0xBF, - 0xBF, - 0x8F, - 0x7E, - 0x99, - 0x8F, - 0x7E, - 0x99, - 0x06, - 0x8F, - 0x00, - 0x17, - 0x94, - 0x94, - 0x98, - 0x98, - 0x81, - 0x82, - 0x8A, - 0x82, - 0x77, - 0x57, - 0x57, - 0x69, - 0x69, - 0x88, - 0x77, - 0x88, - 0x88, - 0x69, - 0x88, - 0x88, - 0x88, - 0x72, - 0x6A, - 0x00, - 0x04, - 0x72, - 0x00, - 0x0D, - 0x4E, - 0x72, - 0x4E, - 0x72, - 0x4E, - 0x4E, - 0x72, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x4E, - 0x72, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x12, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x38, - 0x2E, - 0x5B, - 0x45, - 0x36, - 0x7F, - 0x55, - 0x32, - 0x32, - 0x04, - 0x70, - 0x00, - 0x47, - 0x32, - 0x8C, - 0x2C, - 0xA0, - 0x45, - 0x66, - 0x59, - 0x2E, - 0x46, - 0x46, - 0x5E, - 0xB3, - 0x5A, - 0x5A, - 0x8B, - 0x5B, - 0x66, - 0x75, - 0x91, - 0x75, - 0x91, - 0x7C, - 0x89, - 0x89, - 0x89, - 0x5F, - 0x36, - 0x5F, - 0x36, - 0x89, - 0xA7, - 0x89, - 0x45, - 0xBE, - 0x75, - 0xA8, - 0x66, - 0x8B, - 0xB3, - 0xB3, - 0x6F, - 0x6F, - 0x6E, - 0x4A, - 0x86, - 0x7E, - 0xD4, - 0xB1, - 0xBF, - 0xB2, - 0xA3, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0xB9, - 0x56, - 0xDC, - 0x88, - 0xBA, - 0x42, - 0xBA, - 0x4E, - 0xD6, - 0xD6, - 0x5E, - 0xB3, - 0x5E, - 0x90, - 0xBB, - 0x5A, - 0x00, - 0x04, - 0xBC, - 0x05, - 0xA8, - 0x00, - 0x15, - 0xBC, - 0x8B, - 0x8B, - 0x59, - 0xB3, - 0x5E, - 0x6F, - 0x74, - 0x4A, - 0x35, - 0xB2, - 0xD4, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x04, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0x05, - 0xD3, - 0x00, - 0x08, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0x04, - 0xCB, - 0x01, - 0xCE, - 0x04, - 0x8E, - 0x01, - 0xCB, - 0x01, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x61, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0x4A, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x00, - 0x06, - 0x61, - 0x01, - 0x6E, - 0x07, - 0x61, - 0x01, - 0x6D, - 0x08, - 0x61, - 0x01, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x3B, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0xA6, - 0x6D, - 0x4A, - 0x6D, - 0x4A, - 0x6D, - 0x4A, - 0xB9, - 0x4A, - 0x4A, - 0x6B, - 0xB9, - 0xB9, - 0x6B, - 0xB9, - 0x9C, - 0x5D, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0xA3, - 0xA3, - 0x94, - 0xA3, - 0x94, - 0xB2, - 0x94, - 0x8F, - 0xA3, - 0x7E, - 0x8F, - 0x8F, - 0xAE, - 0x8F, - 0xBF, - 0x7E, - 0xA2, - 0x8F, - 0xAE, - 0x00, - 0x04, - 0x8F, - 0x00, - 0x12, - 0x9E, - 0x8F, - 0x9E, - 0x9E, - 0x98, - 0x9C, - 0x82, - 0x98, - 0x98, - 0x8A, - 0x81, - 0x7D, - 0x7D, - 0x77, - 0x7D, - 0x88, - 0x69, - 0x69, - 0x04, - 0x88, - 0x00, - 0x03, - 0x72, - 0x88, - 0x88, - 0x00, - 0x06, - 0x72, - 0x00, - 0x87, - 0x4E, - 0x72, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x4E, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x4E, - 0x4E, - 0x46, - 0x29, - 0x4D, - 0x36, - 0xAF, - 0x1C, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x70, - 0x2D, - 0x32, - 0xAB, - 0x23, - 0xA7, - 0x75, - 0x59, - 0x46, - 0x72, - 0x46, - 0x2E, - 0x46, - 0x5E, - 0x5E, - 0x59, - 0x59, - 0x90, - 0x90, - 0x66, - 0xA8, - 0x91, - 0xBE, - 0x89, - 0x89, - 0x5F, - 0x36, - 0x36, - 0x89, - 0xA7, - 0x89, - 0xBE, - 0x45, - 0xA8, - 0x75, - 0xBC, - 0x8B, - 0xB3, - 0x9A, - 0xB3, - 0x6F, - 0xBA, - 0x6E, - 0x61, - 0x35, - 0x52, - 0xA3, - 0x52, - 0x35, - 0x52, - 0x49, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0xB9, - 0x8A, - 0x6C, - 0x34, - 0x74, - 0xBA, - 0xBA, - 0xBA, - 0xDD, - 0x6F, - 0x6F, - 0x9A, - 0x46, - 0x9A, - 0x5E, - 0x90, - 0x90, - 0x5B, - 0x66, - 0x66, - 0xA8, - 0x66, - 0xA8, - 0xA8, - 0xA8, - 0x8B, - 0x66, - 0x8B, - 0x90, - 0x59, - 0x5E, - 0x9A, - 0x42, - 0x6E, - 0x5D, - 0xA4, - 0xB2, - 0xB1, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0x00, - 0x07, - 0xCB, - 0x00, - 0x1B, - 0xD3, - 0xAA, - 0xD3, - 0xCB, - 0xD3, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xE0, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xCB, - 0xC6, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x4A, - 0x61, - 0xA6, - 0x4A, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x00, - 0x04, - 0x61, - 0x00, - 0x0A, - 0x4A, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x08, - 0x61, - 0x00, - 0x04, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x0D, - 0x61, - 0x01, - 0x6D, - 0x05, - 0x61, - 0x00, - 0x19, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x3B, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x6D, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x08, - 0x8A, - 0xB9, - 0x8A, - 0xB9, - 0x9C, - 0xB9, - 0x8A, - 0xB9, - 0x06, - 0x9C, - 0x00, - 0x23, - 0x8F, - 0xA3, - 0xA3, - 0x8F, - 0xA3, - 0xBF, - 0x7E, - 0xBF, - 0xBF, - 0x8F, - 0xAE, - 0x8F, - 0x8F, - 0x7E, - 0x8F, - 0x7E, - 0x8F, - 0x9E, - 0x9E, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x82, - 0x98, - 0x82, - 0x57, - 0x98, - 0x98, - 0x7D, - 0x7D, - 0x81, - 0x77, - 0x7D, - 0x57, - 0x00, - 0x05, - 0x88, - 0x00, - 0x05, - 0x72, - 0x88, - 0x72, - 0x72, - 0x88, - 0x00, - 0x0C, - 0x72, - 0x01, - 0x4E, - 0x01, - 0x4E, - 0x0B, - 0x72, - 0x00, - 0x4D, - 0x33, - 0x33, - 0x27, - 0x5B, - 0x91, - 0xA5, - 0x7F, - 0xAB, - 0x26, - 0x85, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x70, - 0x2D, - 0x8C, - 0x55, - 0xA0, - 0x36, - 0x66, - 0x59, - 0x31, - 0x33, - 0x4E, - 0x4E, - 0x31, - 0x31, - 0x46, - 0x46, - 0x2E, - 0x59, - 0x5A, - 0x8B, - 0x66, - 0x91, - 0x45, - 0xA7, - 0x89, - 0xA5, - 0x36, - 0x45, - 0xA7, - 0x45, - 0xA7, - 0xA8, - 0xBE, - 0x75, - 0xBC, - 0x8B, - 0xBB, - 0x9A, - 0xB3, - 0x9A, - 0x6F, - 0xDC, - 0x6E, - 0x6C, - 0xB9, - 0x5D, - 0xB9, - 0x49, - 0xB9, - 0x6B, - 0x6B, - 0x8A, - 0x6C, - 0x6B, - 0x6B, - 0x8A, - 0xA6, - 0x6C, - 0x6C, - 0x74, - 0x3B, - 0x74, - 0x6E, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x2A, - 0x46, - 0x9A, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x66, - 0x66, - 0xBC, - 0xBC, - 0xBC, - 0x8B, - 0x8B, - 0x8B, - 0xB3, - 0x59, - 0x9A, - 0x6F, - 0x42, - 0x6D, - 0x49, - 0xB2, - 0xB2, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0x04, - 0xD3, - 0x00, - 0x03, - 0xCA, - 0xD3, - 0xCA, - 0x00, - 0x05, - 0xD3, - 0x04, - 0xCB, - 0x00, - 0x08, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xA6, - 0x4A, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x00, - 0x05, - 0x61, - 0x00, - 0x05, - 0x4A, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x00, - 0x04, - 0x61, - 0x00, - 0x05, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x12, - 0x61, - 0x00, - 0x10, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x3B, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x6D, - 0x04, - 0x6E, - 0x00, - 0x3F, - 0x61, - 0x6E, - 0x6D, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x4A, - 0x6D, - 0xA6, - 0x6C, - 0xA6, - 0x6C, - 0x4A, - 0x6B, - 0x4A, - 0x6B, - 0xB9, - 0x9C, - 0xB9, - 0xB9, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0xA3, - 0xA3, - 0x94, - 0xA3, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0xAE, - 0x7E, - 0x8F, - 0xA2, - 0x7E, - 0x7E, - 0x99, - 0x8F, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x98, - 0x94, - 0x82, - 0x98, - 0x82, - 0x82, - 0x57, - 0x82, - 0x57, - 0x57, - 0x7D, - 0x69, - 0x88, - 0x69, - 0x69, - 0x7D, - 0x00, - 0x05, - 0x88, - 0x00, - 0x04, - 0x72, - 0x33, - 0x72, - 0x33, - 0x0A, - 0x72, - 0x01, - 0x88, - 0x0A, - 0x72, - 0x00, - 0x4E, - 0x33, - 0x72, - 0x88, - 0x2E, - 0x59, - 0x75, - 0x36, - 0xAF, - 0x2C, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x7B, - 0x95, - 0x70, - 0x70, - 0x2D, - 0x32, - 0x55, - 0x2F, - 0xA5, - 0x45, - 0x5A, - 0x2E, - 0x33, - 0x72, - 0xBA, - 0x33, - 0x31, - 0x31, - 0x31, - 0x5E, - 0x59, - 0x8B, - 0x66, - 0xA8, - 0xBE, - 0x45, - 0x89, - 0xA7, - 0x89, - 0xA7, - 0xA5, - 0xBE, - 0xD8, - 0xA8, - 0xBE, - 0xA8, - 0xBC, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0x6F, - 0xE4, - 0x6F, - 0xBA, - 0xBA, - 0x74, - 0x74, - 0x6E, - 0x3B, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x6C, - 0x8A, - 0x6C, - 0x6D, - 0x6C, - 0x7D, - 0xDC, - 0x6C, - 0x6D, - 0xA6, - 0x8A, - 0x04, - 0x6C, - 0x00, - 0x22, - 0x7D, - 0xBA, - 0x42, - 0x46, - 0xB3, - 0x5E, - 0x90, - 0x90, - 0xBB, - 0xBC, - 0xBB, - 0x8B, - 0xBC, - 0x8B, - 0x8B, - 0x8B, - 0x90, - 0x59, - 0xB3, - 0x6F, - 0x6F, - 0x3B, - 0x4A, - 0x35, - 0xB2, - 0xB1, - 0x8E, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0x06, - 0xCB, - 0x01, - 0xD3, - 0x01, - 0xCB, - 0x05, - 0xD3, - 0x00, - 0x05, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0xE0, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x0C, - 0xCB, - 0xD3, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x6D, - 0x61, - 0x6D, - 0x09, - 0x61, - 0x00, - 0x08, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x07, - 0x61, - 0x01, - 0x6E, - 0x06, - 0x61, - 0x00, - 0x0A, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x04, - 0x6E, - 0x00, - 0x0C, - 0x6D, - 0x61, - 0x6E, - 0x6D, - 0x6E, - 0x6D, - 0x6D, - 0x3B, - 0x6D, - 0x3B, - 0x6D, - 0x3B, - 0x04, - 0x6D, - 0x00, - 0x07, - 0x6C, - 0x6C, - 0x4A, - 0x6C, - 0x4A, - 0xB9, - 0x8A, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x07, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0x00, - 0x04, - 0xA3, - 0x00, - 0x0A, - 0x8F, - 0x7E, - 0x8F, - 0x7E, - 0x99, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0x8F, - 0x05, - 0x94, - 0x00, - 0x07, - 0x82, - 0x98, - 0x98, - 0x82, - 0x98, - 0x82, - 0x8A, - 0x00, - 0x04, - 0x7D, - 0x01, - 0x69, - 0x04, - 0x88, - 0x00, - 0x0E, - 0x33, - 0x88, - 0x88, - 0x33, - 0x72, - 0x88, - 0x88, - 0x72, - 0x31, - 0x88, - 0x72, - 0x33, - 0x72, - 0x88, - 0x04, - 0x72, - 0x00, - 0x07, - 0x88, - 0x72, - 0x72, - 0x72, - 0x88, - 0x72, - 0x88, - 0x00, - 0x04, - 0x72, - 0x00, - 0x6D, - 0x33, - 0x72, - 0x29, - 0x5B, - 0x45, - 0xAF, - 0x23, - 0x55, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x70, - 0x2D, - 0x85, - 0x8C, - 0x2C, - 0x76, - 0x45, - 0x90, - 0x2E, - 0x33, - 0x88, - 0x34, - 0x33, - 0x34, - 0x31, - 0x46, - 0x5E, - 0x59, - 0xBB, - 0x66, - 0xBC, - 0x45, - 0x45, - 0xA7, - 0xA7, - 0xA5, - 0xA7, - 0xA7, - 0xA7, - 0xBE, - 0xA8, - 0xD8, - 0xE8, - 0x66, - 0xBB, - 0xB3, - 0xB3, - 0xD6, - 0x6F, - 0xDD, - 0xDD, - 0xBA, - 0xDD, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0xBA, - 0xBA, - 0x6E, - 0x6E, - 0x74, - 0x74, - 0x74, - 0x34, - 0x74, - 0x74, - 0x74, - 0x9D, - 0xB9, - 0xB9, - 0xE3, - 0xB9, - 0x49, - 0xB9, - 0x8A, - 0x8A, - 0x3B, - 0xBA, - 0x6F, - 0x46, - 0xB3, - 0x59, - 0x90, - 0x8B, - 0x8B, - 0x8B, - 0xBC, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x59, - 0x9A, - 0x9A, - 0xBA, - 0x3B, - 0xB9, - 0xB2, - 0xB2, - 0xB1, - 0xCE, - 0xCE, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x0A, - 0xAA, - 0xCB, - 0xCB, - 0xD3, - 0xD3, - 0xAA, - 0xD3, - 0xD3, - 0xD3, - 0xC6, - 0x06, - 0xD3, - 0x00, - 0x05, - 0xCA, - 0xD3, - 0x8D, - 0xCB, - 0xD3, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x07, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x4A, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x6D, - 0x4A, - 0x04, - 0x61, - 0x00, - 0x0C, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x06, - 0x61, - 0x01, - 0xA6, - 0x08, - 0x61, - 0x00, - 0x32, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x6D, - 0x61, - 0x6D, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x6E, - 0x6D, - 0x3B, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x6C, - 0x3B, - 0x6C, - 0xA6, - 0x56, - 0x6B, - 0x4A, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x9C, - 0x5D, - 0x04, - 0x9C, - 0x00, - 0x1E, - 0x94, - 0xA3, - 0x94, - 0x94, - 0x8F, - 0xA3, - 0x8F, - 0xA3, - 0x8F, - 0x8F, - 0xA3, - 0x8F, - 0x9E, - 0x8F, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x82, - 0x98, - 0x8A, - 0x81, - 0x81, - 0x82, - 0x81, - 0x7D, - 0x57, - 0x04, - 0x69, - 0x07, - 0x88, - 0x00, - 0x08, - 0x33, - 0x88, - 0x88, - 0x72, - 0x88, - 0x88, - 0x88, - 0x72, - 0x04, - 0x88, - 0x00, - 0x77, - 0x72, - 0x88, - 0x88, - 0x88, - 0x72, - 0x88, - 0x72, - 0x88, - 0x33, - 0x88, - 0x72, - 0x33, - 0x46, - 0x59, - 0x75, - 0x89, - 0x76, - 0x2C, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x70, - 0x70, - 0x85, - 0x26, - 0x9F, - 0x76, - 0xA7, - 0x45, - 0x59, - 0x31, - 0x69, - 0x88, - 0x88, - 0x31, - 0x31, - 0x5E, - 0x59, - 0x90, - 0x8B, - 0xBC, - 0xA8, - 0x45, - 0xBE, - 0xA7, - 0xA7, - 0xA5, - 0xA7, - 0xA7, - 0xD8, - 0xBE, - 0xD8, - 0xA8, - 0xBC, - 0xDB, - 0x90, - 0xE1, - 0xE6, - 0xB3, - 0xE1, - 0xD6, - 0xE6, - 0xDD, - 0xDD, - 0xD6, - 0xD6, - 0xD6, - 0x9A, - 0x9A, - 0x6F, - 0xBA, - 0x6F, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0xBA, - 0xBA, - 0x42, - 0x74, - 0x6D, - 0xB9, - 0x8A, - 0xA4, - 0xA4, - 0xA3, - 0xB2, - 0x79, - 0x8A, - 0xBA, - 0x6F, - 0xD6, - 0x5E, - 0xB3, - 0xB3, - 0x8B, - 0xBB, - 0x8B, - 0xBB, - 0x8B, - 0x8B, - 0xBB, - 0x90, - 0x5E, - 0xB3, - 0x46, - 0x6F, - 0x42, - 0x61, - 0x5D, - 0x52, - 0xD4, - 0x8E, - 0x8E, - 0x00, - 0x04, - 0xCB, - 0x01, - 0xCE, - 0x05, - 0xCB, - 0x00, - 0x03, - 0xD3, - 0xD3, - 0xCB, - 0x00, - 0x06, - 0xD3, - 0x01, - 0xCA, - 0x01, - 0xCA, - 0x07, - 0xD3, - 0x07, - 0xCB, - 0x00, - 0x06, - 0xAC, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x16, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x61, - 0x61, - 0x4A, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x16, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0xA6, - 0x61, - 0xA6, - 0x0B, - 0x61, - 0x00, - 0x3C, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x61, - 0x3B, - 0x3B, - 0x6C, - 0x3B, - 0x4A, - 0x6C, - 0xA6, - 0x6C, - 0x6B, - 0x6C, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x9C, - 0x94, - 0x94, - 0xA3, - 0x8F, - 0xA3, - 0x94, - 0x94, - 0xA3, - 0x04, - 0x94, - 0x00, - 0x15, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x98, - 0x82, - 0x82, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x69, - 0x88, - 0x7D, - 0x69, - 0x88, - 0x88, - 0x88, - 0x34, - 0x00, - 0x09, - 0x88, - 0x01, - 0x72, - 0x08, - 0x88, - 0x00, - 0x74, - 0x72, - 0x88, - 0x88, - 0x88, - 0x72, - 0x88, - 0x72, - 0x22, - 0x31, - 0x2E, - 0x5A, - 0x45, - 0xA5, - 0x2F, - 0x9F, - 0x26, - 0x26, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x95, - 0x70, - 0x70, - 0x2D, - 0x32, - 0x8C, - 0x2C, - 0x76, - 0x45, - 0x8B, - 0x2E, - 0x88, - 0x88, - 0x34, - 0x31, - 0x46, - 0x5E, - 0x90, - 0x8B, - 0xBC, - 0x66, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xD0, - 0xA5, - 0xD0, - 0xA7, - 0xA7, - 0xBE, - 0xD8, - 0xD8, - 0xBC, - 0xBC, - 0xBB, - 0xE1, - 0xDB, - 0xE1, - 0xE6, - 0xB3, - 0xE6, - 0xE6, - 0xD6, - 0xD6, - 0xE6, - 0xB3, - 0xD6, - 0xB3, - 0x9A, - 0x9A, - 0xD6, - 0x6F, - 0x6F, - 0x9A, - 0xD6, - 0x6F, - 0xBA, - 0x6F, - 0xBA, - 0x9D, - 0xB9, - 0x79, - 0xA4, - 0xB2, - 0xB1, - 0xD4, - 0x35, - 0x6E, - 0x6E, - 0x6F, - 0x9A, - 0xB3, - 0xB3, - 0x90, - 0x90, - 0xBB, - 0x8B, - 0x8B, - 0xBB, - 0x8B, - 0x90, - 0x59, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x74, - 0x4A, - 0x35, - 0xB2, - 0xB1, - 0xAC, - 0xCE, - 0x08, - 0xCB, - 0x00, - 0x03, - 0xD3, - 0xD3, - 0xCB, - 0x00, - 0x07, - 0xD3, - 0x00, - 0x17, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xD3, - 0x8D, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCE, - 0xD4, - 0x8E, - 0x8E, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x08, - 0xA6, - 0x00, - 0x09, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x61, - 0x4A, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x16, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x05, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x00, - 0x05, - 0x61, - 0x01, - 0x6D, - 0x05, - 0x61, - 0x00, - 0x05, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x00, - 0x05, - 0x6E, - 0x00, - 0x03, - 0x61, - 0x6E, - 0x61, - 0x00, - 0x04, - 0x6E, - 0x01, - 0x3B, - 0x04, - 0x6E, - 0x00, - 0x15, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x74, - 0x6E, - 0x3B, - 0x74, - 0x3B, - 0x6C, - 0x6C, - 0x6D, - 0x6C, - 0x6C, - 0x6B, - 0x6C, - 0x6B, - 0x6C, - 0x6B, - 0x6B, - 0x8A, - 0x00, - 0x07, - 0x9C, - 0x01, - 0x94, - 0x01, - 0x9C, - 0x07, - 0x94, - 0x00, - 0x14, - 0x9C, - 0x94, - 0x98, - 0x9E, - 0x9C, - 0x98, - 0x82, - 0x98, - 0x98, - 0x98, - 0x82, - 0x81, - 0x7D, - 0x77, - 0x8A, - 0x7D, - 0x69, - 0x69, - 0x7D, - 0x7D, - 0x0E, - 0x88, - 0x01, - 0x72, - 0x0C, - 0x88, - 0x00, - 0x41, - 0x31, - 0x4E, - 0x5B, - 0x75, - 0x36, - 0x76, - 0xAB, - 0x55, - 0x32, - 0x70, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x7B, - 0x70, - 0x92, - 0x70, - 0x2D, - 0x85, - 0x8C, - 0x9F, - 0x7F, - 0xAF, - 0xA8, - 0x90, - 0x9A, - 0x88, - 0x72, - 0x46, - 0x5E, - 0x59, - 0x90, - 0xBC, - 0xA8, - 0xA8, - 0xBE, - 0xA7, - 0xA5, - 0xA5, - 0xD0, - 0xA5, - 0xA7, - 0xD0, - 0xA7, - 0xD0, - 0xBE, - 0xD8, - 0xD8, - 0xDB, - 0xDB, - 0xDB, - 0xE1, - 0xDB, - 0xED, - 0xE1, - 0xE6, - 0xE1, - 0xE6, - 0xE1, - 0xE6, - 0xB3, - 0xE1, - 0xB3, - 0xE1, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x29, - 0xD6, - 0x9A, - 0x9A, - 0x9A, - 0xDD, - 0x6E, - 0x9D, - 0xA6, - 0xB9, - 0xA4, - 0xB2, - 0xB2, - 0xB2, - 0x5D, - 0x6E, - 0xBA, - 0x9A, - 0x5E, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0x8B, - 0xBC, - 0x90, - 0x59, - 0x59, - 0xB3, - 0xB3, - 0x5E, - 0x5E, - 0x6F, - 0x6F, - 0x74, - 0xB9, - 0x52, - 0xB2, - 0xB1, - 0xCE, - 0xCB, - 0xCE, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x05, - 0xCE, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x04, - 0xCA, - 0xD3, - 0xCA, - 0xCA, - 0x07, - 0xD3, - 0x00, - 0x10, - 0xAA, - 0xD3, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xD4, - 0xCE, - 0x8E, - 0xD4, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x10, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x4A, - 0x61, - 0x4A, - 0x61, - 0x4A, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x03, - 0xA6, - 0x6D, - 0x61, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x15, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x00, - 0x09, - 0x61, - 0x01, - 0x6D, - 0x05, - 0x61, - 0x00, - 0x20, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x3B, - 0x6D, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x6E, - 0x74, - 0x6E, - 0x04, - 0x3B, - 0x04, - 0x6C, - 0x00, - 0x2C, - 0x6B, - 0x6C, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x82, - 0x98, - 0x82, - 0x98, - 0x82, - 0x82, - 0x69, - 0x7D, - 0x7D, - 0x88, - 0x88, - 0x57, - 0x7D, - 0x88, - 0x7D, - 0x04, - 0x88, - 0x00, - 0x03, - 0x72, - 0x72, - 0x7D, - 0x00, - 0x08, - 0x88, - 0x01, - 0x69, - 0x06, - 0x88, - 0x00, - 0x3C, - 0x34, - 0x4E, - 0x59, - 0x66, - 0x45, - 0xA5, - 0x7F, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x92, - 0x70, - 0x95, - 0x95, - 0x95, - 0x7B, - 0x70, - 0x70, - 0x32, - 0x8C, - 0xAB, - 0x7F, - 0xA5, - 0x66, - 0x59, - 0x5E, - 0x46, - 0x46, - 0x5E, - 0x59, - 0x8B, - 0xBC, - 0xA8, - 0xBE, - 0xA7, - 0xA7, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xAF, - 0xAF, - 0xAF, - 0xD0, - 0xD0, - 0xD8, - 0xD8, - 0xDB, - 0xE8, - 0xDB, - 0xED, - 0xDB, - 0xE1, - 0xE1, - 0xED, - 0xE6, - 0xE6, - 0x06, - 0xE1, - 0x00, - 0x37, - 0x90, - 0xBB, - 0xE1, - 0x90, - 0xBB, - 0xB3, - 0xB3, - 0xD6, - 0x6F, - 0xBA, - 0x74, - 0x9D, - 0xB9, - 0xB9, - 0x35, - 0x61, - 0x4A, - 0x6E, - 0x6F, - 0x9A, - 0x9A, - 0xB3, - 0xB3, - 0x90, - 0xBB, - 0x8B, - 0x8B, - 0x8B, - 0xBB, - 0xBB, - 0x90, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x6D, - 0x49, - 0xB2, - 0xB1, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xAA, - 0xD3, - 0xD3, - 0xAA, - 0x00, - 0x07, - 0xD3, - 0x00, - 0x08, - 0xCA, - 0xD3, - 0xCA, - 0x8D, - 0xD3, - 0xD3, - 0xD3, - 0xAA, - 0x04, - 0xCB, - 0x00, - 0x03, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x05, - 0x8E, - 0x03, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x61, - 0x4A, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x05, - 0x61, - 0x01, - 0xA6, - 0x01, - 0xA6, - 0x0A, - 0x61, - 0x00, - 0x15, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x6D, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x09, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x74, - 0x00, - 0x07, - 0x3B, - 0x05, - 0x6C, - 0x00, - 0x27, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x9C, - 0x9C, - 0x8A, - 0x9C, - 0x8A, - 0x9C, - 0x8A, - 0x9C, - 0x82, - 0x8A, - 0x9C, - 0x98, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x98, - 0x9C, - 0x82, - 0x98, - 0x82, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x88, - 0x88, - 0x69, - 0x00, - 0x05, - 0x88, - 0x01, - 0x74, - 0x07, - 0x88, - 0x00, - 0x36, - 0x69, - 0x88, - 0x69, - 0x88, - 0x88, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x88, - 0x31, - 0x5A, - 0x75, - 0xA7, - 0x23, - 0xAB, - 0x8C, - 0x32, - 0x32, - 0x2D, - 0x7B, - 0x70, - 0x70, - 0x92, - 0x70, - 0x92, - 0x7B, - 0x95, - 0x70, - 0x70, - 0x2D, - 0x85, - 0x8C, - 0x7F, - 0xA0, - 0xA7, - 0xA8, - 0x8B, - 0x90, - 0x59, - 0x90, - 0x90, - 0x8B, - 0xBC, - 0xA8, - 0xBE, - 0xA5, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xD0, - 0xBD, - 0x04, - 0xD0, - 0x00, - 0x09, - 0xD8, - 0xEB, - 0xD8, - 0xE8, - 0xBC, - 0xE8, - 0xDB, - 0xDB, - 0xED, - 0x00, - 0x04, - 0xE1, - 0x00, - 0x2F, - 0xED, - 0xE1, - 0xE1, - 0xDB, - 0xE1, - 0xE1, - 0xE1, - 0xBB, - 0xE1, - 0xB3, - 0xE1, - 0xB3, - 0xB3, - 0xD6, - 0x6F, - 0xE4, - 0xBA, - 0xDC, - 0xBA, - 0x6E, - 0x6E, - 0xBA, - 0x6F, - 0xD6, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0x8B, - 0xBB, - 0xBC, - 0xBB, - 0x8B, - 0xB3, - 0x90, - 0xB3, - 0x59, - 0xB3, - 0x6F, - 0x6F, - 0x6E, - 0x61, - 0x35, - 0x52, - 0xB1, - 0xCE, - 0x00, - 0x09, - 0xCB, - 0x01, - 0xD3, - 0x01, - 0xCB, - 0x06, - 0xD3, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xD3, - 0x00, - 0x12, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0xD4, - 0xD4, - 0xD4, - 0xB2, - 0xB1, - 0xB2, - 0x00, - 0x00, - 0x00, - 0x28, - 0x4A, - 0xA6, - 0xA6, - 0x6D, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x6D, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x4A, - 0xA6, - 0xA6, - 0x6D, - 0xA6, - 0x61, - 0x4A, - 0xA6, - 0xA6, - 0xA6, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x4A, - 0x61, - 0x6D, - 0xA6, - 0x61, - 0xA6, - 0x06, - 0x61, - 0x00, - 0x03, - 0xA6, - 0x6D, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x3E, - 0xA6, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x9D, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x9D, - 0x6E, - 0x6E, - 0x6D, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x6E, - 0x74, - 0x3B, - 0x6E, - 0x6D, - 0x74, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x6C, - 0x74, - 0x6C, - 0x6C, - 0x6C, - 0x56, - 0x6C, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x07, - 0x8A, - 0x00, - 0x03, - 0x82, - 0x8A, - 0x9C, - 0x00, - 0x05, - 0x82, - 0x00, - 0x10, - 0x98, - 0x9C, - 0x82, - 0x9C, - 0x81, - 0x82, - 0x98, - 0x82, - 0x98, - 0x57, - 0x82, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x57, - 0x05, - 0x88, - 0x00, - 0x06, - 0x69, - 0x88, - 0x7D, - 0x88, - 0x88, - 0x69, - 0x04, - 0x88, - 0x00, - 0x42, - 0x69, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x88, - 0x69, - 0x33, - 0x29, - 0x8B, - 0xA7, - 0x76, - 0x7F, - 0x9F, - 0x32, - 0x32, - 0x2D, - 0x70, - 0x7B, - 0x7B, - 0x92, - 0x7B, - 0x92, - 0x95, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x2D, - 0x85, - 0x32, - 0x8C, - 0x7F, - 0xA0, - 0xA5, - 0xA8, - 0xBC, - 0xBC, - 0x8B, - 0xBB, - 0xBC, - 0x75, - 0xBE, - 0xBE, - 0xA7, - 0xA5, - 0xAF, - 0xAF, - 0xBD, - 0xD0, - 0xBD, - 0xD0, - 0xD0, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xEB, - 0xE8, - 0xE8, - 0xE8, - 0xED, - 0xED, - 0xDB, - 0xE6, - 0x04, - 0xED, - 0x00, - 0x37, - 0xE1, - 0xE1, - 0xDB, - 0xED, - 0xDB, - 0xDB, - 0xE1, - 0xDB, - 0xE1, - 0xB3, - 0xE1, - 0xB3, - 0xE1, - 0xB3, - 0xD6, - 0xD6, - 0x9A, - 0xD6, - 0x9A, - 0x9A, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0x8B, - 0xDB, - 0xBC, - 0xBC, - 0xBC, - 0xBB, - 0xBB, - 0xBB, - 0x90, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x42, - 0x4A, - 0x35, - 0xA4, - 0x8E, - 0x8E, - 0xCB, - 0xD3, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0x00, - 0x06, - 0xD3, - 0x01, - 0xCA, - 0x05, - 0xD3, - 0x00, - 0x03, - 0xC6, - 0xD3, - 0xD3, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x0F, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xB1, - 0xD4, - 0xD4, - 0xD4, - 0xB2, - 0xD4, - 0xB2, - 0xD4, - 0xB2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x35, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x79, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x00, - 0x08, - 0x35, - 0x00, - 0x05, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x00, - 0x06, - 0x79, - 0x00, - 0x37, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x79, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x49, - 0x79, - 0x79, - 0x49, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x79, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x5D, - 0x8A, - 0x9C, - 0x6B, - 0x6B, - 0x9C, - 0x8A, - 0x00, - 0x05, - 0x9C, - 0x00, - 0x0C, - 0x98, - 0x94, - 0x94, - 0x94, - 0x9E, - 0x94, - 0x9E, - 0x94, - 0x94, - 0x9E, - 0x9E, - 0x94, - 0x04, - 0x9E, - 0x00, - 0x12, - 0x99, - 0x9E, - 0x68, - 0x68, - 0x99, - 0x99, - 0x99, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x98, - 0x81, - 0x04, - 0x98, - 0x00, - 0x3D, - 0x81, - 0x7D, - 0x81, - 0x57, - 0x77, - 0x81, - 0x82, - 0x77, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x77, - 0x98, - 0x81, - 0x81, - 0x98, - 0x7D, - 0x33, - 0x2E, - 0x75, - 0x45, - 0x5F, - 0x2C, - 0x55, - 0x32, - 0x32, - 0x70, - 0x70, - 0x70, - 0x95, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x95, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x70, - 0x85, - 0x8C, - 0x9F, - 0x7F, - 0xAF, - 0xA7, - 0x45, - 0xBC, - 0xBC, - 0x66, - 0x8B, - 0xA8, - 0xBE, - 0xA8, - 0xBE, - 0xA5, - 0xA7, - 0xD0, - 0xAF, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x12, - 0xE2, - 0xE2, - 0xEB, - 0xE8, - 0xD8, - 0xE8, - 0xDB, - 0xED, - 0xED, - 0xED, - 0xFA, - 0xED, - 0xED, - 0xED, - 0xE1, - 0xE1, - 0xED, - 0xED, - 0x05, - 0xE1, - 0x00, - 0x03, - 0xB3, - 0xB3, - 0xE1, - 0x00, - 0x07, - 0xB3, - 0x01, - 0x9A, - 0x04, - 0xB3, - 0x00, - 0x03, - 0xBB, - 0xDB, - 0x8B, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x3C, - 0x8B, - 0xBC, - 0x59, - 0x5E, - 0xB3, - 0x5E, - 0x5E, - 0x6F, - 0x6F, - 0x6F, - 0x3B, - 0x4A, - 0x52, - 0x9B, - 0x97, - 0x8D, - 0xB5, - 0xB5, - 0xCD, - 0xCD, - 0xC4, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC4, - 0xD2, - 0xCD, - 0xC4, - 0xC4, - 0xC4, - 0xCF, - 0xC4, - 0xD9, - 0xD9, - 0xC4, - 0xC4, - 0xC9, - 0xE0, - 0xCD, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xAA, - 0x8D, - 0x80, - 0xAA, - 0xCB, - 0xB7, - 0xC3, - 0xC3, - 0xCB, - 0x97, - 0xAC, - 0xAC, - 0x8E, - 0xAD, - 0x00, - 0x00, - 0x01, - 0x86, - 0x04, - 0x35, - 0x00, - 0x22, - 0x86, - 0x52, - 0xA4, - 0x86, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x86, - 0x35, - 0x86, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x04, - 0x35, - 0x01, - 0x86, - 0x05, - 0x35, - 0x00, - 0x1F, - 0x79, - 0x52, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x49, - 0x49, - 0x79, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x35, - 0xB9, - 0xB9, - 0x35, - 0x49, - 0x49, - 0x5D, - 0xB9, - 0x49, - 0x5D, - 0x00, - 0x05, - 0x49, - 0x00, - 0x28, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x6C, - 0x8A, - 0x5D, - 0x8A, - 0x8A, - 0x8A, - 0x9C, - 0x8A, - 0x6B, - 0x9C, - 0x8A, - 0x82, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x9C, - 0x9C, - 0x98, - 0x94, - 0x9E, - 0x94, - 0x94, - 0x9E, - 0x94, - 0x04, - 0x9E, - 0x00, - 0x1A, - 0x8F, - 0x68, - 0x68, - 0x99, - 0x68, - 0x99, - 0x68, - 0x68, - 0x99, - 0x68, - 0x68, - 0x68, - 0x87, - 0x87, - 0x9E, - 0x81, - 0x9E, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x81, - 0x98, - 0x98, - 0x05, - 0x81, - 0x01, - 0x87, - 0x05, - 0x81, - 0x00, - 0x22, - 0x98, - 0x81, - 0x69, - 0x38, - 0x5A, - 0x91, - 0xA5, - 0x2F, - 0xAB, - 0x26, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x70, - 0x95, - 0x70, - 0x60, - 0x95, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x70, - 0x2D, - 0xC0, - 0x8C, - 0x9F, - 0x7F, - 0xD0, - 0xA7, - 0xBE, - 0x05, - 0xA8, - 0x00, - 0x1F, - 0xBE, - 0xA7, - 0xBE, - 0xD0, - 0xD8, - 0xD0, - 0xE2, - 0xE2, - 0xE2, - 0xEB, - 0xEB, - 0xD8, - 0xEB, - 0xE8, - 0xF3, - 0xE8, - 0xFB, - 0xED, - 0xED, - 0xFA, - 0xED, - 0xED, - 0xFA, - 0xE1, - 0xED, - 0xE6, - 0xED, - 0xE1, - 0xE6, - 0xED, - 0xE6, - 0x00, - 0x07, - 0xE1, - 0x00, - 0x2C, - 0xB3, - 0xE1, - 0xBB, - 0x90, - 0xBB, - 0xBB, - 0xBB, - 0x8B, - 0xDB, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0x8B, - 0xB3, - 0x59, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x31, - 0x74, - 0x56, - 0x6B, - 0x7E, - 0x9B, - 0x97, - 0x8D, - 0xC9, - 0xC9, - 0xC4, - 0xD1, - 0xC9, - 0xD2, - 0xC4, - 0xC9, - 0xD2, - 0xD1, - 0xD2, - 0x04, - 0xC4, - 0x00, - 0x1D, - 0xDA, - 0xC4, - 0xCF, - 0xC4, - 0xC4, - 0xC4, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0xC1, - 0xAA, - 0xAA, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x35, - 0x35, - 0x86, - 0x52, - 0x52, - 0x79, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x52, - 0x79, - 0x35, - 0x86, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x04, - 0x35, - 0x00, - 0x14, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0xB9, - 0x05, - 0x49, - 0x01, - 0xB9, - 0x04, - 0x49, - 0x00, - 0x07, - 0xB9, - 0x5D, - 0x5D, - 0x49, - 0x9C, - 0x5D, - 0x49, - 0x00, - 0x08, - 0x5D, - 0x00, - 0x0C, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x9C, - 0x6C, - 0x56, - 0x07, - 0x8A, - 0x00, - 0x0D, - 0x9C, - 0x82, - 0x9C, - 0x82, - 0x9C, - 0x82, - 0x9C, - 0x98, - 0x98, - 0x9C, - 0x94, - 0x9E, - 0x94, - 0x00, - 0x04, - 0x9E, - 0x00, - 0x63, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x87, - 0x87, - 0x81, - 0x81, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x87, - 0x81, - 0x9E, - 0x98, - 0x87, - 0x81, - 0x57, - 0x72, - 0x59, - 0x66, - 0x45, - 0x76, - 0x7F, - 0x8C, - 0x32, - 0x85, - 0x70, - 0x70, - 0x70, - 0x95, - 0x70, - 0x92, - 0x7B, - 0x92, - 0x95, - 0x92, - 0x95, - 0x92, - 0x95, - 0x95, - 0x7B, - 0xCC, - 0x2D, - 0x85, - 0x9F, - 0xAB, - 0xA0, - 0xA0, - 0xA7, - 0xD8, - 0xBE, - 0xBE, - 0xA8, - 0xBE, - 0xBE, - 0xD8, - 0xD8, - 0xD8, - 0xD0, - 0xE2, - 0xD8, - 0xD8, - 0xE2, - 0xD8, - 0xE2, - 0xEB, - 0xE8, - 0xEB, - 0xDB, - 0xFB, - 0xDB, - 0xED, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xED, - 0xFA, - 0xFA, - 0x00, - 0x05, - 0xE6, - 0x00, - 0x30, - 0xE1, - 0xE6, - 0xE6, - 0xE6, - 0xE1, - 0xE1, - 0xBB, - 0xE1, - 0xDB, - 0xBB, - 0xBB, - 0xDB, - 0xBC, - 0xDB, - 0xA8, - 0xA8, - 0xA8, - 0xE8, - 0xA8, - 0xD8, - 0xBE, - 0xD8, - 0xA8, - 0xD8, - 0xA8, - 0x8B, - 0xBB, - 0x8B, - 0xB3, - 0x5E, - 0x5E, - 0x9A, - 0x9A, - 0x42, - 0x42, - 0x6D, - 0x35, - 0x7E, - 0x9B, - 0x97, - 0xB0, - 0xB5, - 0xC4, - 0xC9, - 0xC4, - 0xC4, - 0xC4, - 0xCD, - 0x09, - 0xC4, - 0x00, - 0x11, - 0xC9, - 0xC4, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xA9, - 0x80, - 0x80, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x06, - 0xAC, - 0x00, - 0x05, - 0x9B, - 0x9B, - 0xAD, - 0x9B, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x79, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x52, - 0x79, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x35, - 0x79, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0xB9, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x05, - 0x5D, - 0x00, - 0x70, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x56, - 0x6C, - 0x8A, - 0x6B, - 0x82, - 0x8A, - 0x8A, - 0x8A, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x98, - 0x82, - 0x9C, - 0x82, - 0x98, - 0x94, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x9E, - 0x8F, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x99, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x98, - 0x98, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x87, - 0x87, - 0x87, - 0x53, - 0x87, - 0x34, - 0x38, - 0x5B, - 0xA8, - 0x36, - 0xA0, - 0x55, - 0x55, - 0x26, - 0x2D, - 0x70, - 0x70, - 0x70, - 0x92, - 0x70, - 0x95, - 0x95, - 0x92, - 0x95, - 0x92, - 0x95, - 0x92, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x2D, - 0x85, - 0xC0, - 0x9F, - 0xAB, - 0xBD, - 0xAF, - 0xD0, - 0xBE, - 0xA8, - 0xD8, - 0xA8, - 0x04, - 0xD8, - 0x00, - 0x03, - 0xEB, - 0xEB, - 0xD8, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x43, - 0xE8, - 0xF3, - 0xE8, - 0xFB, - 0xED, - 0xFB, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0xE6, - 0xFE, - 0xE6, - 0xFA, - 0xE6, - 0xE6, - 0xFA, - 0xE6, - 0xE6, - 0xED, - 0xE1, - 0xE6, - 0xE1, - 0xE1, - 0xE1, - 0xDB, - 0xBC, - 0xDB, - 0xDB, - 0xE8, - 0xA8, - 0xA8, - 0xD8, - 0xA7, - 0xD8, - 0xD8, - 0xA7, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xA8, - 0xBC, - 0x8B, - 0x90, - 0xB3, - 0x59, - 0x9A, - 0x5E, - 0x6F, - 0x42, - 0x74, - 0x6C, - 0x35, - 0x7E, - 0xAD, - 0x78, - 0xA1, - 0xC9, - 0xC4, - 0xC4, - 0xC4, - 0xC9, - 0xC4, - 0xD2, - 0x00, - 0x06, - 0xC4, - 0x00, - 0x12, - 0xC9, - 0xD2, - 0xC9, - 0xD2, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0xB8, - 0xC3, - 0x05, - 0xAC, - 0x00, - 0x08, - 0xAD, - 0xC5, - 0x9B, - 0xC5, - 0x9B, - 0xBF, - 0xAE, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x18, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x86, - 0x79, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x79, - 0x86, - 0x86, - 0x35, - 0x04, - 0x86, - 0x00, - 0x08, - 0x52, - 0x52, - 0x79, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x04, - 0x35, - 0x00, - 0x27, - 0x86, - 0x35, - 0x79, - 0x86, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x52, - 0x79, - 0x52, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x79, - 0x5D, - 0x79, - 0x49, - 0x79, - 0xB9, - 0x00, - 0x04, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x00, - 0x07, - 0x5D, - 0x00, - 0x0D, - 0x6B, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x6C, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x12, - 0x56, - 0x6B, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x82, - 0x8A, - 0x8A, - 0x8A, - 0x82, - 0x9C, - 0x82, - 0x82, - 0x82, - 0x98, - 0x94, - 0x05, - 0x9E, - 0x00, - 0x05, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x87, - 0x00, - 0x05, - 0x9E, - 0x00, - 0x26, - 0x87, - 0x87, - 0x98, - 0x9E, - 0x87, - 0x98, - 0x87, - 0x98, - 0x81, - 0x81, - 0x98, - 0x87, - 0x81, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x53, - 0x87, - 0x9E, - 0x53, - 0x33, - 0x59, - 0x5B, - 0xBE, - 0x76, - 0x2C, - 0x55, - 0x32, - 0x70, - 0x70, - 0x70, - 0x95, - 0x70, - 0x70, - 0x92, - 0x92, - 0x04, - 0x95, - 0x00, - 0x1B, - 0x92, - 0x92, - 0x95, - 0x92, - 0x7B, - 0x7B, - 0xCC, - 0x2D, - 0xC0, - 0xD5, - 0x9F, - 0xBD, - 0xBD, - 0xD0, - 0xD0, - 0xD8, - 0xD8, - 0xD8, - 0xE8, - 0xD8, - 0xE8, - 0xE8, - 0xD8, - 0xEB, - 0xF3, - 0xEB, - 0xEB, - 0x00, - 0x04, - 0xE8, - 0x00, - 0x09, - 0xFB, - 0xFB, - 0x0E, - 0xED, - 0x0E, - 0xED, - 0xED, - 0x11, - 0xFA, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x49, - 0xE4, - 0xFE, - 0xE4, - 0xDD, - 0xFE, - 0xE6, - 0xDD, - 0xE6, - 0xE6, - 0xE1, - 0xED, - 0xE1, - 0xDB, - 0xDB, - 0xDB, - 0xA8, - 0xA8, - 0xA8, - 0xE2, - 0xBE, - 0xD0, - 0xA7, - 0xD0, - 0xD0, - 0xA7, - 0xD0, - 0xBE, - 0xBE, - 0xA8, - 0xBC, - 0x8B, - 0x90, - 0xB3, - 0xB3, - 0x5E, - 0x6F, - 0x9A, - 0x42, - 0x42, - 0x6B, - 0x49, - 0x7E, - 0x8E, - 0xAA, - 0x8D, - 0xD2, - 0xD2, - 0xC4, - 0xCF, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xCF, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xB5, - 0xB5, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xC6, - 0x80, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x05, - 0xAC, - 0x00, - 0x0B, - 0xC5, - 0x9B, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xBF, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x00, - 0x04, - 0x86, - 0x00, - 0x17, - 0x52, - 0x86, - 0x79, - 0x35, - 0x86, - 0x79, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0x79, - 0x35, - 0x86, - 0x79, - 0x49, - 0x00, - 0x04, - 0x79, - 0x00, - 0x20, - 0x35, - 0x79, - 0x52, - 0x49, - 0x79, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x49, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0xB9, - 0x79, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x07, - 0x5D, - 0x00, - 0x16, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x05, - 0x8A, - 0x05, - 0x82, - 0x00, - 0x06, - 0x9C, - 0x82, - 0x82, - 0x98, - 0x98, - 0x98, - 0x0A, - 0x9E, - 0x00, - 0x2C, - 0x98, - 0x9E, - 0x98, - 0x87, - 0x9E, - 0x87, - 0x98, - 0x98, - 0x9E, - 0x87, - 0x98, - 0x98, - 0x87, - 0x98, - 0x87, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x98, - 0x69, - 0x46, - 0x5A, - 0xA8, - 0x36, - 0x76, - 0x2C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x95, - 0x70, - 0x92, - 0x70, - 0x92, - 0x70, - 0x92, - 0x92, - 0x95, - 0x95, - 0x92, - 0x92, - 0x04, - 0x95, - 0x00, - 0x0C, - 0xCC, - 0xCC, - 0x85, - 0x8C, - 0xD5, - 0xAB, - 0xD0, - 0xD0, - 0xA7, - 0xD8, - 0xD8, - 0xD8, - 0x06, - 0xE8, - 0x00, - 0x13, - 0xEB, - 0xE8, - 0xFB, - 0xE8, - 0x04, - 0xFB, - 0xFB, - 0xFB, - 0xED, - 0x0E, - 0x0E, - 0x03, - 0x11, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0x13, - 0x00, - 0x06, - 0xF6, - 0x00, - 0x2B, - 0xFE, - 0xFE, - 0xE6, - 0xE6, - 0xED, - 0xE6, - 0xED, - 0xDB, - 0xBC, - 0xE8, - 0xD8, - 0xE8, - 0xD8, - 0xD8, - 0xD0, - 0xD0, - 0xA0, - 0xA7, - 0xAF, - 0xD0, - 0xD0, - 0xA7, - 0xA8, - 0xE8, - 0xBC, - 0xBB, - 0x59, - 0x59, - 0xB3, - 0x5E, - 0x9A, - 0x9A, - 0x42, - 0x74, - 0x4A, - 0x52, - 0x9B, - 0x8E, - 0x80, - 0xA1, - 0xC4, - 0xC4, - 0xCF, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x25, - 0xD1, - 0xC4, - 0xC4, - 0xC4, - 0xC9, - 0xCD, - 0xB5, - 0xA1, - 0xB5, - 0xB0, - 0xA1, - 0xC6, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xC3, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0x7E, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x79, - 0x86, - 0x35, - 0x86, - 0x79, - 0x86, - 0x52, - 0x79, - 0x52, - 0x79, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x79, - 0x86, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x49, - 0x49, - 0x52, - 0x35, - 0x49, - 0x35, - 0x79, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x79, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x04, - 0x5D, - 0x00, - 0x1B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x5D, - 0x6B, - 0x6B, - 0x56, - 0x6B, - 0x6B, - 0x8A, - 0x6C, - 0x56, - 0x6C, - 0x8A, - 0x8A, - 0x56, - 0x6C, - 0x8A, - 0x8A, - 0x7D, - 0x7D, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x4D, - 0x82, - 0x82, - 0x82, - 0x98, - 0x82, - 0x82, - 0x98, - 0x94, - 0x98, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x9E, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x9E, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x9E, - 0x87, - 0x98, - 0x87, - 0x87, - 0x9E, - 0x98, - 0x87, - 0x87, - 0x98, - 0x87, - 0x98, - 0x53, - 0x82, - 0x33, - 0x2E, - 0x5B, - 0x45, - 0x76, - 0x7F, - 0x8C, - 0x8C, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x70, - 0x95, - 0x7B, - 0x92, - 0x7B, - 0x95, - 0x95, - 0x92, - 0x95, - 0x95, - 0x92, - 0x95, - 0x7B, - 0x95, - 0x70, - 0x2D, - 0xCC, - 0xD5, - 0x9F, - 0xBD, - 0xBD, - 0xD0, - 0xEC, - 0xEB, - 0xD8, - 0x00, - 0x07, - 0xE8, - 0x00, - 0x10, - 0xFB, - 0xFB, - 0xE8, - 0x0E, - 0xFB, - 0xFB, - 0x0D, - 0x0D, - 0x0E, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0x04, - 0xF6, - 0x00, - 0x59, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xF6, - 0xF6, - 0xE4, - 0xE4, - 0xFE, - 0xD6, - 0xE6, - 0xED, - 0xE1, - 0xED, - 0xE8, - 0xBC, - 0xA8, - 0xBE, - 0xD0, - 0xA7, - 0xD0, - 0xD0, - 0xBD, - 0xD0, - 0xA7, - 0xA7, - 0xD8, - 0x45, - 0x45, - 0xBC, - 0xBC, - 0xBB, - 0x90, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x42, - 0x74, - 0x5D, - 0xA3, - 0x7E, - 0x97, - 0x80, - 0xB5, - 0xC4, - 0xC8, - 0xC4, - 0xDA, - 0xC4, - 0xC4, - 0xD2, - 0xD2, - 0xC9, - 0xC9, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0xA9, - 0x8D, - 0xAA, - 0xC3, - 0xAC, - 0xC3, - 0x8E, - 0xB8, - 0xAC, - 0x9B, - 0xAC, - 0x9B, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xAE, - 0x7E, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0xAE, - 0x8E, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x04, - 0x86, - 0x00, - 0x47, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x52, - 0x79, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x79, - 0x35, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x79, - 0x52, - 0x79, - 0x86, - 0x79, - 0x79, - 0x79, - 0x52, - 0x35, - 0x35, - 0x52, - 0x49, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x49, - 0x35, - 0x35, - 0x52, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x49, - 0x35, - 0x00, - 0x06, - 0x49, - 0x00, - 0x36, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x56, - 0x6B, - 0x56, - 0x6C, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x7D, - 0x8A, - 0x8A, - 0x7D, - 0x82, - 0x82, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x94, - 0x98, - 0x82, - 0x94, - 0x04, - 0x98, - 0x00, - 0x24, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x68, - 0x87, - 0x9E, - 0x98, - 0x57, - 0x46, - 0x5A, - 0xA8, - 0x36, - 0xA0, - 0x2C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x7B, - 0x95, - 0x92, - 0x09, - 0x95, - 0x00, - 0x0D, - 0x7B, - 0x7B, - 0xCC, - 0x2D, - 0xCC, - 0xC0, - 0xC0, - 0xDE, - 0xB4, - 0xE5, - 0xD0, - 0xD8, - 0xE2, - 0x00, - 0x04, - 0xE8, - 0x00, - 0x12, - 0xDB, - 0xFB, - 0xED, - 0xFB, - 0x0E, - 0x0E, - 0xFB, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0xED, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0x11, - 0xFE, - 0x04, - 0xF6, - 0x00, - 0x49, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xFC, - 0xF6, - 0xE4, - 0xFE, - 0xE6, - 0xE6, - 0xDB, - 0xED, - 0xDB, - 0xDB, - 0xD8, - 0xE2, - 0xBE, - 0xD0, - 0xA7, - 0xD0, - 0xA5, - 0xD0, - 0xD0, - 0xA7, - 0xD8, - 0xA7, - 0xA8, - 0xBC, - 0x8B, - 0x90, - 0x90, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x74, - 0x6B, - 0x52, - 0x9B, - 0xAC, - 0x8D, - 0xB5, - 0xC4, - 0xC4, - 0xC8, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xB5, - 0xC9, - 0xB6, - 0xA1, - 0xA1, - 0xCA, - 0xB0, - 0x8D, - 0xA9, - 0xCB, - 0x80, - 0xAA, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0x9B, - 0xC5, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x0D, - 0xBF, - 0x9B, - 0xBF, - 0xB1, - 0xBF, - 0x9B, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x35, - 0x04, - 0x86, - 0x00, - 0x14, - 0x35, - 0x79, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x79, - 0x86, - 0x86, - 0x79, - 0x04, - 0x86, - 0x00, - 0x17, - 0x79, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x86, - 0x79, - 0x35, - 0x79, - 0x00, - 0x04, - 0x49, - 0x00, - 0x0E, - 0x79, - 0x49, - 0x79, - 0x79, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x9C, - 0x04, - 0x5D, - 0x01, - 0x6B, - 0x05, - 0x5D, - 0x00, - 0x12, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6C, - 0x5D, - 0x56, - 0x6B, - 0x6B, - 0x8A, - 0x56, - 0x56, - 0x6C, - 0x56, - 0x56, - 0x8A, - 0x04, - 0x56, - 0x00, - 0x19, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x7D, - 0x56, - 0x82, - 0x8A, - 0x82, - 0x82, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x82, - 0x98, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x9E, - 0x98, - 0x00, - 0x09, - 0x9E, - 0x00, - 0x16, - 0x87, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x98, - 0x34, - 0x2E, - 0x66, - 0x45, - 0xAF, - 0x7F, - 0x55, - 0xC0, - 0x32, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x7B, - 0x70, - 0x04, - 0x95, - 0x00, - 0x6D, - 0x92, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0x70, - 0xCC, - 0xCC, - 0xC0, - 0xD5, - 0x9F, - 0xDE, - 0xD0, - 0xE2, - 0xEC, - 0xD8, - 0xE8, - 0xE8, - 0xFB, - 0xED, - 0x0D, - 0xED, - 0xFB, - 0x0E, - 0x0E, - 0xED, - 0x0D, - 0x0E, - 0xED, - 0xED, - 0x11, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xFC, - 0xEF, - 0x02, - 0x02, - 0xEF, - 0x02, - 0xEF, - 0xFC, - 0xFC, - 0x02, - 0xFC, - 0xFC, - 0xE4, - 0xE4, - 0xED, - 0xED, - 0xDB, - 0xE8, - 0xDB, - 0xBC, - 0xD8, - 0xD8, - 0xD0, - 0xA7, - 0xD0, - 0xD0, - 0xA7, - 0xA7, - 0xD8, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xBB, - 0xB3, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x74, - 0x6C, - 0x4A, - 0xA3, - 0x9B, - 0x97, - 0x80, - 0xB5, - 0xC4, - 0xDA, - 0xC4, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xC2, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xCB, - 0xC3, - 0xC3, - 0x00, - 0x04, - 0xAC, - 0x01, - 0xC5, - 0x01, - 0xAC, - 0x05, - 0x9B, - 0x00, - 0x09, - 0xBF, - 0xBF, - 0x9B, - 0x7E, - 0xB1, - 0x7E, - 0x9B, - 0xB1, - 0xAE, - 0x00, - 0x04, - 0x9B, - 0x01, - 0xAE, - 0x01, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x23, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x79, - 0x00, - 0x04, - 0x86, - 0x00, - 0x6F, - 0x35, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x79, - 0x52, - 0x79, - 0x35, - 0x86, - 0x52, - 0x79, - 0x35, - 0x79, - 0x52, - 0x79, - 0x52, - 0x35, - 0x35, - 0x79, - 0x49, - 0x79, - 0x79, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0x5D, - 0x35, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x6C, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x6C, - 0x56, - 0x8A, - 0x56, - 0x7D, - 0x56, - 0x82, - 0x56, - 0x8A, - 0x7D, - 0x8A, - 0x82, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x98, - 0x82, - 0x98, - 0x82, - 0x82, - 0x98, - 0x94, - 0x98, - 0x98, - 0x98, - 0x00, - 0x06, - 0x9E, - 0x01, - 0x68, - 0x04, - 0x9E, - 0x00, - 0x12, - 0x68, - 0x9E, - 0x9E, - 0x57, - 0x31, - 0x59, - 0x75, - 0xA7, - 0x76, - 0xAB, - 0x55, - 0x32, - 0x32, - 0x70, - 0x70, - 0x70, - 0x92, - 0x7B, - 0x07, - 0x95, - 0x01, - 0x7B, - 0x01, - 0x95, - 0x04, - 0x7B, - 0x00, - 0x27, - 0xCC, - 0xC0, - 0xD5, - 0xC0, - 0xDE, - 0xDE, - 0xBD, - 0xE9, - 0xE2, - 0xEB, - 0xEB, - 0xF3, - 0xFB, - 0xDB, - 0x0E, - 0xED, - 0x0E, - 0xED, - 0xED, - 0x03, - 0xED, - 0x11, - 0xED, - 0x11, - 0xED, - 0x11, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0xFE, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0x02, - 0xEF, - 0xEF, - 0x00, - 0x06, - 0xF5, - 0x00, - 0x53, - 0x02, - 0xEF, - 0x02, - 0xEF, - 0xF6, - 0xE4, - 0xE4, - 0xE4, - 0xED, - 0xE1, - 0xDB, - 0xE8, - 0xA8, - 0xEB, - 0xA8, - 0x45, - 0xD8, - 0xBE, - 0xD0, - 0xA7, - 0xBE, - 0xA8, - 0xA8, - 0xBC, - 0x8B, - 0xBB, - 0x90, - 0xB3, - 0x9A, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x5D, - 0x7E, - 0x9B, - 0xAA, - 0xA1, - 0xB5, - 0xD7, - 0xC4, - 0xC4, - 0xC4, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0x97, - 0xAA, - 0xAC, - 0xC5, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0x7E, - 0xB1, - 0x8E, - 0xBF, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x86, - 0x86, - 0x79, - 0x52, - 0x86, - 0x79, - 0x79, - 0x35, - 0x79, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x79, - 0x52, - 0x35, - 0x35, - 0x35, - 0x79, - 0x79, - 0x49, - 0x06, - 0x35, - 0x00, - 0x25, - 0x49, - 0xB9, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x79, - 0xB9, - 0x49, - 0x49, - 0x5D, - 0x79, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x9C, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x06, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x09, - 0x56, - 0x00, - 0x05, - 0x7D, - 0x8A, - 0x56, - 0x82, - 0x8A, - 0x00, - 0x08, - 0x82, - 0x05, - 0x98, - 0x01, - 0x9E, - 0x01, - 0x98, - 0x06, - 0x9E, - 0x00, - 0x17, - 0x68, - 0x9E, - 0x9E, - 0x9E, - 0x68, - 0x9E, - 0x88, - 0x46, - 0x5B, - 0xA8, - 0x36, - 0x7F, - 0x55, - 0x8C, - 0x32, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x00, - 0x06, - 0x95, - 0x00, - 0x16, - 0x7B, - 0x7B, - 0x7B, - 0xCC, - 0xCC, - 0xC0, - 0xC0, - 0xD5, - 0xDE, - 0xB4, - 0xE5, - 0xE2, - 0xE2, - 0xE2, - 0xEB, - 0xEB, - 0xDB, - 0xE8, - 0x03, - 0xED, - 0x03, - 0x11, - 0x04, - 0x03, - 0x00, - 0x06, - 0xFA, - 0x11, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0x04, - 0xF6, - 0x00, - 0x0A, - 0xEF, - 0xFC, - 0xEF, - 0xEF, - 0x02, - 0xE7, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0x04, - 0xF5, - 0x00, - 0x3A, - 0xF0, - 0x01, - 0xF5, - 0xEF, - 0xF5, - 0xEF, - 0xF6, - 0xE6, - 0xE4, - 0xE6, - 0xDB, - 0xDB, - 0xDB, - 0xBC, - 0xA8, - 0xEB, - 0xD8, - 0xBE, - 0xBE, - 0xD8, - 0xA8, - 0xBE, - 0xE8, - 0x66, - 0xBC, - 0x90, - 0xBB, - 0x5E, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x35, - 0x52, - 0xAD, - 0x97, - 0x8D, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xCB, - 0xC5, - 0xC5, - 0x9B, - 0xAC, - 0x05, - 0x9B, - 0x00, - 0x14, - 0xB1, - 0xBF, - 0x7E, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0xB1, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x3F, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x86, - 0x35, - 0x79, - 0x52, - 0x52, - 0x52, - 0x86, - 0x79, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x00, - 0x04, - 0x79, - 0x00, - 0x3A, - 0x35, - 0x35, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x52, - 0x49, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x9C, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x49, - 0x6B, - 0x49, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x8A, - 0x8A, - 0x6B, - 0x04, - 0x56, - 0x00, - 0x05, - 0x7D, - 0x6C, - 0x8A, - 0x56, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x00, - 0x03, - 0x82, - 0x56, - 0x8A, - 0x00, - 0x06, - 0x82, - 0x00, - 0x22, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x9E, - 0x94, - 0x9E, - 0x9E, - 0x99, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x8F, - 0x68, - 0x82, - 0x33, - 0x5E, - 0x75, - 0x45, - 0x76, - 0x7F, - 0x55, - 0xC0, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x04, - 0x95, - 0x04, - 0x7B, - 0x00, - 0x2C, - 0xCC, - 0xCC, - 0xC0, - 0xC0, - 0xC0, - 0xDE, - 0xBD, - 0xE5, - 0xE9, - 0xEC, - 0xD8, - 0xE8, - 0xE8, - 0xF3, - 0xFB, - 0xED, - 0x03, - 0xED, - 0x03, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0x11, - 0xFA, - 0xFE, - 0xFA, - 0xFE, - 0x13, - 0xE4, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF1, - 0x04, - 0xF0, - 0x01, - 0x01, - 0x01, - 0xF0, - 0x04, - 0xF5, - 0x00, - 0x4D, - 0xEF, - 0xFC, - 0xE4, - 0xE4, - 0xE6, - 0xE6, - 0xBB, - 0xDB, - 0xDB, - 0xA8, - 0xE8, - 0xBC, - 0xA7, - 0xA8, - 0xD8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xBB, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x74, - 0x6D, - 0x49, - 0xA3, - 0x9B, - 0x80, - 0x8D, - 0xC4, - 0xD2, - 0xD2, - 0xB5, - 0xB5, - 0xA1, - 0xCA, - 0xA9, - 0x8D, - 0xCB, - 0xAA, - 0xC3, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x7E, - 0x8E, - 0x7E, - 0x7E, - 0xB1, - 0xBF, - 0xBF, - 0xB1, - 0x8E, - 0x7E, - 0xBF, - 0xB1, - 0xBF, - 0xAE, - 0xB1, - 0xAE, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x79, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x04, - 0x35, - 0x00, - 0x06, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x04, - 0x35, - 0x00, - 0x15, - 0x49, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x79, - 0x49, - 0x35, - 0x49, - 0x79, - 0x79, - 0x49, - 0x79, - 0x00, - 0x04, - 0x49, - 0x00, - 0x14, - 0x9C, - 0x9C, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x0F, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x6C, - 0x00, - 0x07, - 0x56, - 0x00, - 0x2A, - 0x82, - 0x56, - 0x82, - 0x7D, - 0x82, - 0x8A, - 0x82, - 0x8A, - 0x98, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x8F, - 0x9E, - 0x8F, - 0x9E, - 0x9E, - 0x8F, - 0x68, - 0x94, - 0x98, - 0x7D, - 0x31, - 0x5A, - 0xA8, - 0x36, - 0x76, - 0x55, - 0x8C, - 0x32, - 0x2D, - 0x2D, - 0x7B, - 0x7B, - 0x95, - 0x70, - 0x7B, - 0x04, - 0x95, - 0x00, - 0x19, - 0x7B, - 0x95, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0x85, - 0xC0, - 0xC0, - 0xC0, - 0xE5, - 0xDE, - 0xE9, - 0xD0, - 0xE2, - 0xEB, - 0xEB, - 0xEB, - 0xED, - 0xED, - 0xED, - 0x11, - 0xED, - 0x11, - 0x03, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x15, - 0xE6, - 0xFE, - 0xFE, - 0xE4, - 0xE4, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xEF, - 0xDC, - 0x12, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF0, - 0xF0, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x34, - 0xF0, - 0xF0, - 0xF1, - 0x01, - 0xF0, - 0x01, - 0xF5, - 0xE7, - 0xEF, - 0xE4, - 0xE4, - 0xE6, - 0xE6, - 0xED, - 0xBB, - 0xBB, - 0xBC, - 0xA8, - 0xDB, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBB, - 0xBB, - 0x5E, - 0x5E, - 0x5E, - 0x6F, - 0x42, - 0x74, - 0x6C, - 0x5D, - 0xB1, - 0x8E, - 0xAA, - 0xA1, - 0xA1, - 0xC9, - 0xC9, - 0xA1, - 0xA1, - 0x8D, - 0x80, - 0x8D, - 0xCB, - 0x97, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0x04, - 0x9B, - 0x00, - 0x1B, - 0xBF, - 0x7E, - 0x8E, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x7E, - 0xB1, - 0xB1, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xBF, - 0xAE, - 0xB1, - 0x8E, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x05, - 0x86, - 0x00, - 0x25, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x52, - 0x35, - 0x86, - 0x00, - 0x04, - 0x35, - 0x00, - 0x1C, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x49, - 0x35, - 0x52, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x35, - 0x79, - 0x49, - 0x86, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0xB9, - 0x5D, - 0x05, - 0x49, - 0x00, - 0x14, - 0x9C, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x08, - 0x8A, - 0x6B, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x08, - 0x56, - 0x00, - 0x09, - 0x7D, - 0x56, - 0x56, - 0x56, - 0x82, - 0x82, - 0x56, - 0x7D, - 0x8A, - 0x00, - 0x05, - 0x82, - 0x00, - 0x3C, - 0x98, - 0x9C, - 0x98, - 0x94, - 0x9E, - 0x8F, - 0x8F, - 0x99, - 0x9E, - 0x99, - 0x8F, - 0x8F, - 0x99, - 0x98, - 0x34, - 0x5E, - 0x66, - 0x45, - 0xAF, - 0xA0, - 0x55, - 0x8C, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0x95, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0xC0, - 0xDF, - 0xC0, - 0xD5, - 0xDE, - 0xDE, - 0xE9, - 0xBD, - 0xE2, - 0xE2, - 0xEB, - 0xE8, - 0xE8, - 0xFB, - 0xED, - 0x03, - 0xED, - 0x11, - 0xED, - 0xFA, - 0xFA, - 0x05, - 0xFE, - 0x00, - 0x45, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xF6, - 0xEF, - 0xFC, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0xF1, - 0xF1, - 0xF1, - 0xF0, - 0xF0, - 0xF0, - 0xF5, - 0xF5, - 0xEF, - 0xEF, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xBB, - 0xE1, - 0xBB, - 0xDB, - 0x8B, - 0xE8, - 0xA8, - 0x8B, - 0x8B, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0x6F, - 0x6F, - 0x42, - 0x4A, - 0x35, - 0x7E, - 0x96, - 0x8D, - 0x80, - 0xC4, - 0xC9, - 0xB5, - 0xB0, - 0x8D, - 0xC6, - 0xAA, - 0xAA, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x21, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x7E, - 0x9B, - 0x8E, - 0x7E, - 0x9B, - 0x7E, - 0x9B, - 0x7E, - 0x9B, - 0xB1, - 0xBF, - 0xAE, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x00, - 0x05, - 0x86, - 0x00, - 0x45, - 0x35, - 0x86, - 0x86, - 0x79, - 0x35, - 0x52, - 0xA4, - 0x86, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x79, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x79, - 0x35, - 0x52, - 0x52, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x52, - 0x49, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x9C, - 0x49, - 0x9C, - 0x00, - 0x04, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x00, - 0x06, - 0x5D, - 0x00, - 0x0A, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x04, - 0x6B, - 0x00, - 0x0F, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x6C, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x56, - 0x6C, - 0x6C, - 0x8A, - 0x00, - 0x05, - 0x56, - 0x00, - 0x27, - 0x8A, - 0x7D, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x82, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x94, - 0x9E, - 0x68, - 0x8F, - 0x8F, - 0x99, - 0x9E, - 0x68, - 0x8F, - 0x7D, - 0x33, - 0x5E, - 0x66, - 0x45, - 0xAF, - 0xAB, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x95, - 0x95, - 0x00, - 0x05, - 0x7B, - 0x00, - 0x13, - 0xCC, - 0xC0, - 0xC0, - 0xD5, - 0xEE, - 0xDE, - 0xBD, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xF3, - 0xE8, - 0xFB, - 0xED, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x1D, - 0xE6, - 0xFE, - 0xFE, - 0xE4, - 0xFE, - 0xF6, - 0xE4, - 0xFC, - 0xF6, - 0xEF, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF0, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x4D, - 0xF0, - 0xF1, - 0x01, - 0xE7, - 0xEF, - 0xEF, - 0xDC, - 0xE4, - 0xE6, - 0xE4, - 0xBB, - 0xE1, - 0xBB, - 0xBC, - 0xBB, - 0xDB, - 0xBC, - 0xBB, - 0x8B, - 0x90, - 0xB3, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x61, - 0x4A, - 0x35, - 0xBF, - 0x8E, - 0xAA, - 0x8D, - 0xA1, - 0xC9, - 0xA1, - 0xB0, - 0x8D, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0x8E, - 0xC5, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0xB1, - 0x9B, - 0x7E, - 0xBF, - 0xB1, - 0xB1, - 0x9B, - 0xBF, - 0x9B, - 0xAE, - 0xB1, - 0x9B, - 0xAE, - 0xAE, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xA4, - 0x35, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x00, - 0x06, - 0x86, - 0x00, - 0x04, - 0x52, - 0x86, - 0x52, - 0x35, - 0x05, - 0x86, - 0x00, - 0xB3, - 0x35, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x86, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x52, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x49, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x6B, - 0x6C, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x6C, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x7D, - 0x8A, - 0x56, - 0x56, - 0x6B, - 0x8A, - 0x8A, - 0x82, - 0x8A, - 0x82, - 0x98, - 0x9C, - 0x98, - 0x94, - 0x98, - 0x94, - 0x8F, - 0x68, - 0x99, - 0x8F, - 0x99, - 0x8F, - 0x98, - 0x7D, - 0x6F, - 0x5A, - 0xA8, - 0x36, - 0xA0, - 0x2C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x70, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0xCC, - 0xCC, - 0xC0, - 0xCC, - 0xDE, - 0xD5, - 0xDE, - 0xE9, - 0xE9, - 0xE2, - 0xE2, - 0xEB, - 0xEB, - 0xF3, - 0xED, - 0xFB, - 0x0E, - 0xED, - 0x03, - 0xED, - 0x03, - 0x00, - 0x04, - 0xFA, - 0x04, - 0xFE, - 0x00, - 0x1D, - 0xF6, - 0xF6, - 0xF6, - 0xE4, - 0xFC, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF5, - 0xF1, - 0xF1, - 0xCE, - 0xF1, - 0xF1, - 0xF7, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x0C, - 0xF0, - 0xF0, - 0xE7, - 0xEF, - 0xE4, - 0xE4, - 0xE6, - 0xE6, - 0xB3, - 0xE1, - 0xBB, - 0xE1, - 0x04, - 0xBB, - 0x00, - 0x25, - 0xB3, - 0xBB, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x6E, - 0x5D, - 0x35, - 0x9B, - 0x8E, - 0x97, - 0x8D, - 0xA1, - 0xB5, - 0xB0, - 0xC6, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0xAD, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0xBF, - 0x7E, - 0x8E, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0x7E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x10, - 0xBF, - 0x9B, - 0xAE, - 0x9B, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0xAE, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x79, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x79, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x04, - 0x86, - 0x00, - 0x0B, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x1E, - 0x52, - 0x35, - 0x35, - 0x79, - 0x79, - 0x52, - 0x35, - 0x49, - 0x49, - 0x52, - 0x52, - 0x86, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x79, - 0x05, - 0x49, - 0x00, - 0x07, - 0x35, - 0x5D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x00, - 0x04, - 0x5D, - 0x01, - 0x6B, - 0x08, - 0x5D, - 0x04, - 0x6B, - 0x01, - 0x8A, - 0x04, - 0x6B, - 0x00, - 0x71, - 0x8A, - 0x8A, - 0x6B, - 0x56, - 0x56, - 0x6C, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x6C, - 0x6C, - 0x8A, - 0x56, - 0x6C, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x5D, - 0x82, - 0x82, - 0x9C, - 0x94, - 0x94, - 0x8F, - 0x9E, - 0x8F, - 0x8F, - 0x99, - 0x8F, - 0x8F, - 0x98, - 0x42, - 0x2E, - 0x8B, - 0x45, - 0xA5, - 0x7F, - 0x9F, - 0x32, - 0x85, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0xCC, - 0xDF, - 0xC0, - 0xEA, - 0xD5, - 0xE5, - 0xDE, - 0xE5, - 0xE2, - 0xEC, - 0xEC, - 0xEB, - 0xF3, - 0xF3, - 0xED, - 0xED, - 0x0E, - 0x03, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0xE6, - 0x11, - 0xFA, - 0xFE, - 0xFA, - 0xE4, - 0xFE, - 0xE4, - 0xFE, - 0xE4, - 0x13, - 0xF6, - 0xF6, - 0xF6, - 0xEF, - 0xFC, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xCE, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x06, - 0x00, - 0x00, - 0x4B, - 0xF1, - 0xF1, - 0xF1, - 0xF0, - 0xE7, - 0xF5, - 0xE7, - 0xDC, - 0xE4, - 0xE4, - 0xD6, - 0xB3, - 0xE6, - 0xB3, - 0xBB, - 0xBB, - 0xB3, - 0x90, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x3B, - 0x4A, - 0x35, - 0x7E, - 0x9B, - 0x80, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xAA, - 0xC3, - 0xB8, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xBF, - 0x9B, - 0xBF, - 0xB1, - 0x7E, - 0xBF, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x7E, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x00, - 0x06, - 0x86, - 0x01, - 0xA4, - 0x01, - 0x35, - 0x04, - 0x86, - 0x00, - 0x0E, - 0x35, - 0xA4, - 0x79, - 0x35, - 0x35, - 0x79, - 0xA4, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x04, - 0x86, - 0x00, - 0x30, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0x79, - 0x52, - 0x52, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x49, - 0x52, - 0x49, - 0x49, - 0x35, - 0x52, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x79, - 0x52, - 0x35, - 0x35, - 0x52, - 0x49, - 0x79, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x05, - 0x49, - 0x00, - 0x03, - 0x5D, - 0x5D, - 0x49, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x19, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x5D, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x6C, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x6C, - 0x00, - 0x05, - 0x56, - 0x01, - 0x6C, - 0x05, - 0x8A, - 0x00, - 0x08, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x04, - 0x8F, - 0x00, - 0x28, - 0x99, - 0x8F, - 0x8A, - 0x33, - 0x5E, - 0x66, - 0x45, - 0xAF, - 0x7F, - 0x8C, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x7B, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0x70, - 0xCC, - 0x2D, - 0xCC, - 0xC0, - 0xD5, - 0xD5, - 0xDE, - 0xE5, - 0xE9, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xF3, - 0xE8, - 0xFB, - 0x0E, - 0x0E, - 0x05, - 0x03, - 0x04, - 0xFA, - 0x00, - 0x31, - 0xFE, - 0xE6, - 0xE4, - 0xFA, - 0xE4, - 0xFA, - 0xFE, - 0xF6, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0x02, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF1, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0xF0, - 0xE3, - 0xEF, - 0xEF, - 0xE4, - 0xE4, - 0x9A, - 0xE4, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x30, - 0x90, - 0xB3, - 0x9A, - 0xB3, - 0x9A, - 0x6E, - 0x3B, - 0x6B, - 0x52, - 0xBF, - 0xAC, - 0xAA, - 0x80, - 0xB0, - 0xB0, - 0x80, - 0xC3, - 0xC3, - 0xAC, - 0xC5, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x7E, - 0xB1, - 0xB2, - 0x8E, - 0xBF, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0x9B, - 0xBF, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x0A, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x67, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x79, - 0x35, - 0x35, - 0x86, - 0x79, - 0x35, - 0x86, - 0x49, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x49, - 0x79, - 0x79, - 0x79, - 0x35, - 0x52, - 0x86, - 0x86, - 0x49, - 0x49, - 0x79, - 0x35, - 0x35, - 0x49, - 0x52, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x35, - 0x79, - 0x9C, - 0x79, - 0x49, - 0x52, - 0x5D, - 0x9C, - 0x49, - 0x9C, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x10, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x9C, - 0x07, - 0x6B, - 0x01, - 0x56, - 0x01, - 0x6B, - 0x05, - 0x56, - 0x00, - 0x04, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x04, - 0x56, - 0x00, - 0x3C, - 0x8A, - 0x56, - 0x8A, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x82, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x8F, - 0x99, - 0x8F, - 0x94, - 0x56, - 0x31, - 0x59, - 0x66, - 0xA7, - 0x76, - 0xAB, - 0x55, - 0xC0, - 0x2D, - 0x2D, - 0x7B, - 0x70, - 0x7B, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0xCC, - 0xEA, - 0xC0, - 0xC0, - 0xEE, - 0xE5, - 0xE5, - 0xBD, - 0xE9, - 0xEC, - 0xEB, - 0xEB, - 0xF3, - 0xFB, - 0xFB, - 0xED, - 0xED, - 0x0D, - 0xED, - 0x03, - 0xED, - 0xFA, - 0xFA, - 0xED, - 0x04, - 0xFA, - 0x00, - 0x03, - 0xFE, - 0x11, - 0xFA, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x16, - 0xF6, - 0xF6, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0x01, - 0xF0, - 0xF0, - 0x00, - 0xF1, - 0x00, - 0xCE, - 0x00, - 0x05, - 0xF7, - 0x05, - 0x00, - 0x00, - 0x31, - 0xF1, - 0x00, - 0xF0, - 0xF0, - 0x9D, - 0xE7, - 0xEF, - 0xE4, - 0xD6, - 0xD6, - 0xE4, - 0xB3, - 0xE6, - 0x5E, - 0xB3, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x5D, - 0x86, - 0xB2, - 0x9B, - 0xCB, - 0x80, - 0x8D, - 0x8D, - 0xAA, - 0x97, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x7E, - 0x9B, - 0x9B, - 0xBF, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0x7E, - 0xB1, - 0x7E, - 0x8E, - 0xB1, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x13, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xAE, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0xC5, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3D, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x86, - 0x79, - 0xA4, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x79, - 0x35, - 0x52, - 0x35, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x23, - 0x52, - 0x35, - 0x52, - 0x49, - 0x35, - 0x49, - 0x52, - 0x79, - 0x52, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0x35, - 0x49, - 0x86, - 0x35, - 0x35, - 0x5D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x15, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x3D, - 0x6C, - 0x6B, - 0x6C, - 0x56, - 0x8A, - 0x8A, - 0x6C, - 0x56, - 0x6B, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x6B, - 0x82, - 0x5D, - 0x9C, - 0x94, - 0x9C, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x99, - 0x8F, - 0x94, - 0x3B, - 0x31, - 0x90, - 0x75, - 0xA7, - 0x76, - 0xAB, - 0x8C, - 0xC0, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x7B, - 0x7B, - 0xCC, - 0x7B, - 0x85, - 0xCC, - 0x85, - 0xC0, - 0xC0, - 0xEE, - 0xDE, - 0xE5, - 0xBD, - 0xE9, - 0xEC, - 0xEC, - 0xF8, - 0xEB, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x0B, - 0x0D, - 0xED, - 0x0E, - 0x03, - 0x0E, - 0xFA, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0x03, - 0x00, - 0x06, - 0xFA, - 0x00, - 0x05, - 0xFE, - 0x13, - 0xE6, - 0xFE, - 0xFE, - 0x00, - 0x05, - 0xF6, - 0x00, - 0x16, - 0xFC, - 0xFC, - 0xEF, - 0x02, - 0xEF, - 0x02, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0x00, - 0xF7, - 0xF7, - 0x05, - 0x00, - 0x00, - 0x2C, - 0xF1, - 0xF1, - 0xF0, - 0xF5, - 0xDC, - 0xEF, - 0xE4, - 0xE4, - 0x6F, - 0x6F, - 0xB3, - 0xE4, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x6F, - 0x6F, - 0x4A, - 0x4A, - 0x35, - 0x7E, - 0x9B, - 0x97, - 0x80, - 0xD3, - 0xAA, - 0xCB, - 0x97, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x7E, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x8E, - 0x7E, - 0x06, - 0x9B, - 0x00, - 0x09, - 0xB1, - 0xB1, - 0x9B, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x06, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0xC5, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x52, - 0x79, - 0x35, - 0x49, - 0x35, - 0x52, - 0x35, - 0x35, - 0x49, - 0x52, - 0x49, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x35, - 0x79, - 0x52, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x35, - 0x49, - 0x79, - 0x5D, - 0xB9, - 0x49, - 0x49, - 0x9C, - 0x9C, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x49, - 0x09, - 0x5D, - 0x00, - 0x1D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x6B, - 0x6C, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x6B, - 0x8A, - 0x56, - 0x6B, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x29, - 0x82, - 0x8A, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x94, - 0x8F, - 0x99, - 0x94, - 0x82, - 0x74, - 0x2E, - 0x59, - 0x45, - 0xA7, - 0xA0, - 0x55, - 0x8C, - 0x32, - 0xCC, - 0x70, - 0x7B, - 0x2D, - 0x70, - 0xCC, - 0x7B, - 0xCC, - 0xCC, - 0xCC, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xE5, - 0xE9, - 0xE9, - 0xF9, - 0xEB, - 0xF3, - 0xE8, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x0F, - 0xED, - 0x0E, - 0xED, - 0x03, - 0xED, - 0xED, - 0x03, - 0x03, - 0xED, - 0xED, - 0x03, - 0xED, - 0xFA, - 0xFA, - 0x03, - 0x00, - 0x05, - 0xFA, - 0x04, - 0xFE, - 0x00, - 0x12, - 0xF6, - 0x13, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0x12, - 0xEF, - 0x02, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0xF1, - 0x00, - 0x06, - 0xF7, - 0x01, - 0xF4, - 0x04, - 0xF7, - 0x04, - 0x00, - 0x00, - 0x2C, - 0xF0, - 0xA4, - 0xF5, - 0x9D, - 0xDC, - 0xDC, - 0xDD, - 0xE4, - 0x9A, - 0x9A, - 0x6F, - 0xD6, - 0xD6, - 0x9A, - 0x6F, - 0x6E, - 0x3B, - 0x4A, - 0x52, - 0xB2, - 0x9B, - 0xAC, - 0x80, - 0x80, - 0x80, - 0x97, - 0x8E, - 0x9B, - 0xAE, - 0xBF, - 0xB1, - 0xAE, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x7E, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x8E, - 0x7E, - 0x06, - 0x9B, - 0x00, - 0x03, - 0x8E, - 0x9B, - 0xB1, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x0B, - 0xB1, - 0xB1, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x01, - 0x86, - 0x05, - 0x52, - 0x00, - 0x14, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x04, - 0x86, - 0x00, - 0x42, - 0x35, - 0x86, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x52, - 0x79, - 0x52, - 0x35, - 0x79, - 0x35, - 0x52, - 0x52, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x35, - 0x35, - 0x49, - 0x52, - 0x35, - 0x35, - 0x49, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x79, - 0x79, - 0x04, - 0x49, - 0x00, - 0x0A, - 0x5D, - 0x49, - 0x9C, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x08, - 0x5D, - 0x00, - 0x1C, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x56, - 0x6C, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x04, - 0x8A, - 0x00, - 0x3A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0xA3, - 0x94, - 0x34, - 0x5E, - 0x5A, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x8C, - 0x85, - 0x2D, - 0x2D, - 0x7B, - 0xCC, - 0x85, - 0xCC, - 0xC0, - 0xCC, - 0xCC, - 0xDE, - 0xD5, - 0xDE, - 0xE5, - 0xE5, - 0xE9, - 0xE2, - 0xEC, - 0xEB, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0xED, - 0x10, - 0xFB, - 0x0E, - 0xED, - 0x0D, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x03, - 0x03, - 0x03, - 0xED, - 0x03, - 0x03, - 0x03, - 0x05, - 0xFA, - 0x00, - 0x18, - 0xFE, - 0xFA, - 0xFE, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0xCE, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x03, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x2C, - 0x00, - 0x00, - 0x00, - 0xF0, - 0xE3, - 0xF5, - 0x9D, - 0xFC, - 0xE4, - 0x6E, - 0xE4, - 0xE4, - 0x6F, - 0xD6, - 0x9A, - 0x6F, - 0x6F, - 0x6E, - 0x3B, - 0x5D, - 0x35, - 0x7E, - 0x9B, - 0xAC, - 0xAC, - 0x80, - 0xAC, - 0x97, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0x7E, - 0xB1, - 0x7E, - 0x8E, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x05, - 0x9B, - 0x00, - 0x15, - 0x7E, - 0xBF, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0xC5, - 0xC5, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x35, - 0x52, - 0x86, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x52, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x86, - 0x52, - 0x79, - 0x35, - 0x52, - 0x86, - 0x35, - 0x35, - 0x00, - 0x04, - 0x86, - 0x00, - 0x1F, - 0x52, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x52, - 0x35, - 0x52, - 0x49, - 0x52, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x00, - 0x06, - 0x49, - 0x00, - 0x12, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x0D, - 0x4A, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6C, - 0x6C, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x00, - 0x05, - 0x8A, - 0x01, - 0x6C, - 0x05, - 0x8A, - 0x00, - 0x33, - 0x82, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x56, - 0x34, - 0x46, - 0x8B, - 0x91, - 0xA5, - 0x7F, - 0xAB, - 0x8C, - 0x32, - 0x2D, - 0xCC, - 0x2D, - 0xCC, - 0xCC, - 0xCC, - 0xEA, - 0xC0, - 0xD5, - 0xEA, - 0xE5, - 0xDE, - 0xBD, - 0xEC, - 0xEC, - 0xF9, - 0xF8, - 0xF3, - 0xE8, - 0x0D, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0xED, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xED, - 0x11, - 0x03, - 0x03, - 0x04, - 0xFA, - 0x00, - 0x1D, - 0xFE, - 0xFE, - 0xE4, - 0x11, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF5, - 0x01, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x33, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0x00, - 0xF1, - 0xA4, - 0xE7, - 0xF5, - 0xDC, - 0xDC, - 0xDC, - 0x6F, - 0xE4, - 0x6F, - 0x6F, - 0xBA, - 0xBA, - 0xBA, - 0x3B, - 0x4A, - 0x35, - 0xB2, - 0x7E, - 0xCB, - 0xAA, - 0xCB, - 0xAC, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xBF, - 0x8E, - 0x7E, - 0x9B, - 0x7E, - 0x8E, - 0x9B, - 0xB1, - 0x7E, - 0x8E, - 0x9B, - 0x8E, - 0x7E, - 0x8E, - 0x8E, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x10, - 0xB1, - 0x9B, - 0xBF, - 0xB1, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x17, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x52, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x00, - 0x04, - 0x86, - 0x00, - 0x4F, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x86, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x52, - 0x49, - 0x52, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x79, - 0x49, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x52, - 0x79, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x00, - 0x04, - 0x49, - 0x00, - 0x06, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x9C, - 0x09, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x05, - 0x6C, - 0x6B, - 0x6B, - 0x6C, - 0x8A, - 0x00, - 0x07, - 0x6B, - 0x00, - 0x2F, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x56, - 0x34, - 0x9A, - 0x8B, - 0xA8, - 0xA7, - 0xA0, - 0x55, - 0x8C, - 0x85, - 0xC0, - 0x2D, - 0xCC, - 0xC0, - 0xDF, - 0xC0, - 0xC0, - 0xEE, - 0xDE, - 0xDE, - 0xE5, - 0xE9, - 0xE2, - 0xF9, - 0xEB, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0x05, - 0xFB, - 0x01, - 0x0E, - 0x01, - 0xED, - 0x04, - 0x0E, - 0x00, - 0x60, - 0xED, - 0xED, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x03, - 0x03, - 0xE6, - 0x03, - 0xFA, - 0x03, - 0xFE, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xD3, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0x00, - 0xF1, - 0xF0, - 0xE7, - 0xE7, - 0xDC, - 0x6E, - 0xBA, - 0xDD, - 0xBA, - 0xE4, - 0xBA, - 0x42, - 0x6E, - 0x6E, - 0x6B, - 0x35, - 0x52, - 0xB1, - 0x9B, - 0xCB, - 0x97, - 0xC5, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x7E, - 0x05, - 0x9B, - 0x00, - 0x09, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x00, - 0x07, - 0x9B, - 0x00, - 0x04, - 0xC5, - 0x9B, - 0x9B, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x71, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x79, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x9C, - 0x5D, - 0x49, - 0x49, - 0x9C, - 0x5D, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x1E, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x04, - 0x8A, - 0x00, - 0x23, - 0x9C, - 0x8A, - 0x82, - 0x9C, - 0x9C, - 0x94, - 0xA3, - 0x8F, - 0x94, - 0x8A, - 0x34, - 0x5E, - 0x5A, - 0x45, - 0xA5, - 0xA0, - 0xB4, - 0xD5, - 0x8C, - 0xCC, - 0xC0, - 0x8C, - 0xCC, - 0xD5, - 0xD5, - 0xDE, - 0xD5, - 0xE5, - 0xE5, - 0xE9, - 0xEC, - 0xF9, - 0xEB, - 0xF3, - 0xF3, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x08, - 0x0D, - 0xED, - 0xFB, - 0x0E, - 0x0D, - 0x0E, - 0x0E, - 0xED, - 0x05, - 0x0E, - 0x00, - 0x2E, - 0xED, - 0x0E, - 0xED, - 0xED, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x03, - 0xFA, - 0x03, - 0x11, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0x04, - 0xF7, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0xD4, - 0xF0, - 0xE3, - 0xEF, - 0xEF, - 0xDC, - 0xDC, - 0xBA, - 0xBA, - 0xBA, - 0x6E, - 0xBA, - 0x3B, - 0x4A, - 0x35, - 0xB2, - 0x7E, - 0x8E, - 0x8E, - 0xAC, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0xBF, - 0x8E, - 0xB1, - 0xB1, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x7E, - 0x8E, - 0x8E, - 0x04, - 0x9B, - 0x00, - 0x06, - 0x8E, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x05, - 0x9B, - 0x00, - 0x0A, - 0x8E, - 0x8E, - 0x8E, - 0xC5, - 0xAC, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x6B, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0x49, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x79, - 0x52, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x52, - 0x52, - 0x52, - 0x35, - 0x35, - 0x49, - 0x79, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x79, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x12, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x07, - 0x6B, - 0x01, - 0x5D, - 0x06, - 0x6B, - 0x00, - 0x34, - 0x8A, - 0x5D, - 0x6B, - 0x8A, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x6B, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x8A, - 0x42, - 0x9A, - 0x8B, - 0xA8, - 0xA7, - 0xAF, - 0xAB, - 0x9F, - 0xD5, - 0xC0, - 0xC0, - 0xEA, - 0xD5, - 0xD5, - 0xEE, - 0xE5, - 0xE5, - 0xE9, - 0xE9, - 0xE2, - 0xF9, - 0xF8, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0D, - 0x0E, - 0xED, - 0x0D, - 0xED, - 0x07, - 0x0E, - 0x00, - 0x1B, - 0x0D, - 0x0E, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0xFA, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0x13, - 0xF6, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x05, - 0xF5, - 0x00, - 0x0D, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x23, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0xF1, - 0xF1, - 0xA4, - 0xF5, - 0x9D, - 0xE7, - 0x9D, - 0xDC, - 0xDC, - 0xBA, - 0x6E, - 0x61, - 0x3B, - 0x4A, - 0x35, - 0x52, - 0xB2, - 0x8E, - 0xAC, - 0x8E, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x07, - 0xB1, - 0x09, - 0x9B, - 0x01, - 0xB1, - 0x05, - 0x9B, - 0x00, - 0x0B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x35, - 0x00, - 0x05, - 0x86, - 0x00, - 0x30, - 0x35, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0x86, - 0x52, - 0x35, - 0x79, - 0x52, - 0x05, - 0x35, - 0x00, - 0x09, - 0x49, - 0x35, - 0x35, - 0x52, - 0x52, - 0x35, - 0x35, - 0x79, - 0x79, - 0x00, - 0x05, - 0x35, - 0x01, - 0x52, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x12, - 0x49, - 0x49, - 0x9C, - 0x49, - 0xB9, - 0x9C, - 0x49, - 0x9C, - 0x35, - 0x5D, - 0x5D, - 0x49, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x6B, - 0x04, - 0x5D, - 0x00, - 0x06, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x0D, - 0x6B, - 0x00, - 0x09, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x5D, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x1A, - 0x94, - 0xA3, - 0x8F, - 0x8A, - 0x34, - 0x46, - 0x5A, - 0xA8, - 0xA7, - 0xAF, - 0xBD, - 0xB4, - 0xD5, - 0xD5, - 0xD5, - 0xC0, - 0xDE, - 0xE5, - 0xDE, - 0xE5, - 0xEC, - 0xE9, - 0xEB, - 0xF8, - 0xF3, - 0xF3, - 0x06, - 0xFB, - 0x00, - 0x23, - 0xED, - 0x0E, - 0xED, - 0x0E, - 0x0E, - 0x0E, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x0D, - 0x0E, - 0x0D, - 0x0E, - 0x0E, - 0x0E, - 0xFB, - 0x0D, - 0x0D, - 0x0E, - 0xFB, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0xFA, - 0x11, - 0xFA, - 0x11, - 0xFE, - 0xFE, - 0xF6, - 0x00, - 0x04, - 0xFC, - 0x00, - 0x0F, - 0x02, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x08, - 0xF4, - 0x00, - 0x16, - 0x00, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0xCE, - 0x00, - 0xF1, - 0xA4, - 0xF5, - 0xA6, - 0xDC, - 0x9D, - 0x6E, - 0xA6, - 0x6D, - 0x4A, - 0x6D, - 0x5D, - 0x35, - 0x52, - 0x7E, - 0x04, - 0x9B, - 0x00, - 0x0A, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x08, - 0x9B, - 0x00, - 0x03, - 0xB1, - 0x9B, - 0x8E, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x12, - 0x8E, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xAC, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x9B, - 0xC5, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x58, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x52, - 0x52, - 0x04, - 0x35, - 0x00, - 0x0D, - 0x52, - 0x79, - 0xA4, - 0x9C, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x79, - 0x00, - 0x04, - 0x49, - 0x00, - 0x1D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x4A, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x59, - 0x5D, - 0x8A, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x82, - 0x9C, - 0x5D, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x6B, - 0x3B, - 0x46, - 0x59, - 0xBC, - 0xA7, - 0xD0, - 0xA0, - 0xBD, - 0xDE, - 0xAB, - 0xDE, - 0xD5, - 0xE5, - 0xE5, - 0xE9, - 0xEC, - 0xE9, - 0xEC, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0x0D, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x0D, - 0x0E, - 0x0D, - 0x0E, - 0x0D, - 0x0E, - 0xFB, - 0x0D, - 0x0E, - 0xFB, - 0x0E, - 0x0D, - 0x0E, - 0xFB, - 0x0D, - 0xFB, - 0x0E, - 0xFB, - 0x10, - 0x10, - 0x0D, - 0xFB, - 0xFB, - 0x0D, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x11, - 0xFA, - 0xFE, - 0xFE, - 0x13, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x08, - 0xF1, - 0xF1, - 0xF0, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x1C, - 0xF7, - 0xF7, - 0xF4, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0xF1, - 0xA4, - 0xF0, - 0xE3, - 0xE7, - 0x9D, - 0xE7, - 0x3B, - 0xA6, - 0x4A, - 0x4A, - 0x49, - 0x35, - 0x52, - 0xB2, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x04, - 0x9B, - 0x00, - 0x27, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xAC, - 0x8E, - 0xB1, - 0xC5, - 0x9B, - 0x8E, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xAC, - 0x8E, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x05, - 0x86, - 0x00, - 0x25, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x52, - 0x00, - 0x05, - 0x35, - 0x00, - 0x29, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x79, - 0x52, - 0x49, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x9C, - 0x86, - 0x52, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x35, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x00, - 0x77, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x8A, - 0x82, - 0x5D, - 0x8A, - 0x8A, - 0x5D, - 0x5D, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0xA3, - 0x9C, - 0x34, - 0x46, - 0x90, - 0xBC, - 0xA8, - 0xBE, - 0xBD, - 0xBD, - 0xBD, - 0xE5, - 0xDE, - 0xE5, - 0xE5, - 0xE9, - 0xE9, - 0xEC, - 0xF8, - 0xF3, - 0xF8, - 0xFB, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0x03, - 0xED, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0xFB, - 0x0D, - 0x0E, - 0xFB, - 0x0D, - 0x0D, - 0x10, - 0x0E, - 0xFB, - 0x0D, - 0x10, - 0x0D, - 0xFB, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0x10, - 0x0D, - 0xFB, - 0x0E, - 0x0D, - 0x0D, - 0x03, - 0x03, - 0x03, - 0x11, - 0x11, - 0xF6, - 0xFE, - 0x13, - 0x13, - 0xF6, - 0x12, - 0xFC, - 0xEF, - 0x02, - 0xF5, - 0xEF, - 0xF5, - 0xF0, - 0xF5, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x01, - 0xF7, - 0x01, - 0xF4, - 0x06, - 0xF7, - 0x00, - 0x07, - 0xF1, - 0xF1, - 0xE7, - 0xE7, - 0xB9, - 0xA6, - 0xA6, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x05, - 0x35, - 0xA3, - 0xB2, - 0x9B, - 0x8E, - 0x00, - 0x07, - 0x9B, - 0x00, - 0x03, - 0xB1, - 0x9B, - 0xB1, - 0x00, - 0x08, - 0x9B, - 0x00, - 0x1B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0xAE, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xAC, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x43, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x86, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x79, - 0x52, - 0x86, - 0x00, - 0x05, - 0x52, - 0x00, - 0x19, - 0x35, - 0x52, - 0x52, - 0x35, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x10, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x52, - 0x49, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x04, - 0x49, - 0x08, - 0x5D, - 0x00, - 0x28, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x8A, - 0x5D, - 0x9C, - 0x5D, - 0x52, - 0x94, - 0x94, - 0x3B, - 0x31, - 0x59, - 0xBB, - 0xBC, - 0xD8, - 0xD8, - 0xE2, - 0xBD, - 0x04, - 0xE9, - 0x00, - 0x1D, - 0xF9, - 0xE2, - 0xF8, - 0xF3, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x10, - 0x10, - 0xFB, - 0x0D, - 0x10, - 0x0D, - 0x10, - 0x0D, - 0x10, - 0x0D, - 0x00, - 0x05, - 0x10, - 0x01, - 0xF3, - 0x07, - 0x10, - 0x00, - 0x20, - 0x0D, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x11, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0x13, - 0xFC, - 0xFC, - 0xFC, - 0x12, - 0xEF, - 0xF5, - 0xF5, - 0x01, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0x04, - 0xF4, - 0x04, - 0xF7, - 0x00, - 0x08, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0xA4, - 0xF1, - 0xA6, - 0xE7, - 0x05, - 0xB9, - 0x00, - 0x0F, - 0x79, - 0x52, - 0xB2, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x00, - 0x09, - 0x9B, - 0x00, - 0x05, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x11, - 0xB1, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x35, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x00, - 0x04, - 0x52, - 0x00, - 0x0E, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x86, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x86, - 0xA4, - 0x04, - 0x52, - 0x00, - 0x1F, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x52, - 0x35, - 0x00, - 0x04, - 0x52, - 0x00, - 0x16, - 0x35, - 0x52, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x52, - 0x52, - 0x49, - 0x79, - 0x52, - 0x79, - 0x79, - 0x35, - 0x49, - 0x49, - 0x35, - 0x07, - 0x49, - 0x00, - 0x1A, - 0x9C, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x6B, - 0x05, - 0x5D, - 0x00, - 0x27, - 0x6B, - 0x5D, - 0x8A, - 0x49, - 0x9C, - 0x5D, - 0x5D, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x52, - 0x5D, - 0x3B, - 0x31, - 0x9A, - 0xBB, - 0xBC, - 0xA8, - 0xEB, - 0xD0, - 0xEC, - 0xBD, - 0xEC, - 0xE9, - 0xEC, - 0xEC, - 0xF3, - 0xF3, - 0x04, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x09, - 0xFB, - 0x0D, - 0x0D, - 0x0D, - 0x10, - 0x0D, - 0x10, - 0x10, - 0x0D, - 0x00, - 0x07, - 0x10, - 0x06, - 0x04, - 0x00, - 0x29, - 0x10, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x0D, - 0x0E, - 0x11, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0x13, - 0x13, - 0xFC, - 0xFC, - 0x12, - 0xFC, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x16, - 0x00, - 0x00, - 0xE3, - 0xF0, - 0xA4, - 0xE3, - 0xB9, - 0xB9, - 0x86, - 0x86, - 0x86, - 0x35, - 0xB2, - 0x7E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x04, - 0x9B, - 0x00, - 0x23, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x7E, - 0x8E, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0x8E, - 0xC5, - 0xC5, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x48, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x04, - 0x52, - 0x00, - 0x3E, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x79, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x79, - 0x52, - 0x35, - 0x79, - 0x49, - 0x52, - 0x49, - 0x49, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x5D, - 0x35, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x9C, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x4A, - 0x5D, - 0x6B, - 0x09, - 0x5D, - 0x00, - 0x32, - 0x6B, - 0x49, - 0x82, - 0x5D, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x6B, - 0x5D, - 0x9C, - 0x5D, - 0x94, - 0x49, - 0x56, - 0x6F, - 0x9A, - 0xBB, - 0xE1, - 0xE8, - 0xD8, - 0xEB, - 0xEB, - 0xEC, - 0xEC, - 0xF9, - 0xEC, - 0xF8, - 0xF8, - 0x10, - 0xFB, - 0x0D, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0x0D, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x06, - 0x10, - 0x00, - 0x09, - 0x04, - 0x04, - 0x04, - 0x10, - 0x0B, - 0xF8, - 0x04, - 0x0B, - 0xF8, - 0x00, - 0x04, - 0x04, - 0x00, - 0x12, - 0x10, - 0x04, - 0x0D, - 0x10, - 0x0D, - 0x0D, - 0x03, - 0x03, - 0x11, - 0x11, - 0x11, - 0x13, - 0xFE, - 0x13, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0x04, - 0xF5, - 0x00, - 0x24, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xCE, - 0xF1, - 0xF1, - 0xA4, - 0xF0, - 0xD4, - 0x35, - 0xE3, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x7E, - 0xB2, - 0x8E, - 0x05, - 0x9B, - 0x00, - 0x04, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0x07, - 0x9B, - 0x00, - 0x09, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x00, - 0x06, - 0x9B, - 0x00, - 0x0F, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x79, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x04, - 0x52, - 0x00, - 0x2D, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0x52, - 0x35, - 0xA3, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x49, - 0x52, - 0x52, - 0x49, - 0x35, - 0x52, - 0x35, - 0x79, - 0x52, - 0x35, - 0x79, - 0x52, - 0x52, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x9C, - 0x49, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x07, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x07, - 0x9C, - 0x6B, - 0x6B, - 0x6B, - 0x9C, - 0x5D, - 0x9C, - 0x00, - 0x08, - 0x5D, - 0x00, - 0x19, - 0x9C, - 0x49, - 0x94, - 0x52, - 0x94, - 0x4A, - 0x6E, - 0x9A, - 0xD6, - 0xBB, - 0xDB, - 0xE8, - 0xE8, - 0xE2, - 0xEB, - 0xEC, - 0xEB, - 0xF8, - 0xF3, - 0x10, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x00, - 0x04, - 0x03, - 0x04, - 0x0E, - 0x00, - 0x04, - 0x0D, - 0xFB, - 0x10, - 0x0D, - 0x05, - 0x10, - 0x00, - 0x10, - 0x04, - 0x10, - 0x10, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0B, - 0x04, - 0xF8, - 0x04, - 0x0B, - 0x0B, - 0x04, - 0x0B, - 0x0B, - 0x04, - 0x04, - 0x00, - 0x03, - 0x10, - 0x10, - 0x10, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x0B, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0xF6, - 0x12, - 0xFC, - 0x02, - 0x02, - 0xEF, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x19, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xCE, - 0xD4, - 0xF0, - 0xA4, - 0xE3, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x0C, - 0x52, - 0x52, - 0xB1, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x05, - 0x9B, - 0x00, - 0x0B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x03, - 0x8E, - 0x9B, - 0x8E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x0B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x00, - 0x04, - 0x52, - 0x00, - 0x0D, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x00, - 0x05, - 0x52, - 0x00, - 0x2F, - 0x86, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x35, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x00, - 0x06, - 0x52, - 0x00, - 0x17, - 0x35, - 0x35, - 0x35, - 0x52, - 0x49, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x49, - 0x49, - 0x52, - 0x35, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x49, - 0x52, - 0x79, - 0x00, - 0x07, - 0x49, - 0x00, - 0x10, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x0B, - 0x5D, - 0x00, - 0x21, - 0x9C, - 0x5D, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x52, - 0x6C, - 0x74, - 0xBA, - 0xD6, - 0xE1, - 0xED, - 0xDB, - 0xF3, - 0xE8, - 0xEB, - 0xEB, - 0xF8, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x08, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0x10, - 0x0D, - 0x10, - 0x0D, - 0x04, - 0x10, - 0x00, - 0x09, - 0x04, - 0x10, - 0x04, - 0x10, - 0x10, - 0x04, - 0x10, - 0x0B, - 0x04, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x2F, - 0x0C, - 0x0B, - 0x0B, - 0xF8, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x04, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x11, - 0x0D, - 0x0E, - 0x13, - 0x13, - 0x11, - 0x12, - 0x13, - 0x12, - 0xEF, - 0x02, - 0x02, - 0x02, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x0D, - 0xF1, - 0xF1, - 0xA4, - 0xF1, - 0xA4, - 0xB2, - 0xB2, - 0xA4, - 0x52, - 0xB2, - 0xB2, - 0xB2, - 0x7E, - 0x00, - 0x05, - 0x9B, - 0x01, - 0x8E, - 0x07, - 0x9B, - 0x01, - 0x8E, - 0x04, - 0x9B, - 0x01, - 0x8E, - 0x01, - 0xB1, - 0x07, - 0x9B, - 0x00, - 0x14, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0xB1, - 0xC5, - 0x8E, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0x8E, - 0xAC, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x46, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x05, - 0x52, - 0x00, - 0x1A, - 0x86, - 0x35, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x49, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x52, - 0x86, - 0x04, - 0x35, - 0x00, - 0x0A, - 0x49, - 0x79, - 0x35, - 0x49, - 0x52, - 0x49, - 0x35, - 0x79, - 0x49, - 0x35, - 0x05, - 0x49, - 0x00, - 0x1A, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x49, - 0xB9, - 0x5D, - 0x49, - 0x9C, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x6B, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x9C, - 0x04, - 0x5D, - 0x00, - 0x1E, - 0x9C, - 0x9C, - 0x5D, - 0x5D, - 0x82, - 0x35, - 0x5D, - 0x5D, - 0x49, - 0x94, - 0x5D, - 0x8A, - 0x3B, - 0xBA, - 0xE6, - 0xD6, - 0xDB, - 0xED, - 0xE8, - 0xE8, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0xED, - 0x05, - 0x03, - 0x00, - 0x05, - 0x0E, - 0xFB, - 0xFB, - 0x10, - 0x0D, - 0x00, - 0x05, - 0x10, - 0x00, - 0x13, - 0x04, - 0x10, - 0x04, - 0x10, - 0x04, - 0x10, - 0x04, - 0x10, - 0x0B, - 0x04, - 0x04, - 0x0B, - 0x0B, - 0x0B, - 0x0C, - 0x0B, - 0x0C, - 0x0B, - 0x0C, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x07, - 0x04, - 0x0B, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x00, - 0x04, - 0x11, - 0x00, - 0x1A, - 0x13, - 0x13, - 0x12, - 0xFC, - 0x12, - 0xEF, - 0xEF, - 0x02, - 0xF5, - 0x02, - 0xF5, - 0xF5, - 0xF0, - 0x01, - 0xF1, - 0x00, - 0xF1, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0xF4, - 0x05, - 0xF7, - 0x00, - 0x3C, - 0x00, - 0xD4, - 0xF1, - 0xD4, - 0xF1, - 0xB2, - 0xD4, - 0xA4, - 0xB2, - 0xB2, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0x7E, - 0x8E, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0xC5, - 0x8E, - 0x9B, - 0xC5, - 0x8E, - 0x9B, - 0x8E, - 0xC5, - 0x9B, - 0x8E, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x04, - 0x01, - 0x3A, - 0x23, - 0x01, - 0x00, - 0x00, - 0x06, - 0xDF, - 0xDF, - 0xFA, - 0xE0, - 0xE0, - 0xDF, - 0x06, - 0xE0, - 0x04, - 0xE2, - 0x00, - 0x09, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xE2, - 0x00, - 0x05, - 0xEF, - 0x00, - 0x05, - 0xE9, - 0xF6, - 0xED, - 0xE9, - 0xED, - 0x00, - 0x04, - 0xE9, - 0x00, - 0x0D, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0x00, - 0x09, - 0xEA, - 0x00, - 0x23, - 0xE7, - 0xEA, - 0xC9, - 0xE7, - 0xC9, - 0xEA, - 0xF3, - 0xC9, - 0xEA, - 0xC9, - 0xDD, - 0xDB, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xC9, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xC9, - 0xDC, - 0xDE, - 0xDE, - 0xD6, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xDC, - 0x00, - 0x06, - 0xE6, - 0x00, - 0x1A, - 0xE9, - 0xE6, - 0xE6, - 0xE1, - 0xE9, - 0xE6, - 0xEF, - 0xE2, - 0xE9, - 0xEF, - 0xE6, - 0xE2, - 0xE9, - 0xEF, - 0xEF, - 0xF5, - 0xBD, - 0x59, - 0x37, - 0x53, - 0x73, - 0xB4, - 0xB4, - 0xB4, - 0xB7, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x2C, - 0xA4, - 0xAD, - 0x9D, - 0x9E, - 0xA4, - 0xA0, - 0xAB, - 0xAD, - 0xAB, - 0xAB, - 0xB7, - 0xB7, - 0x9D, - 0x7C, - 0xAB, - 0xB7, - 0x90, - 0x9D, - 0xA4, - 0x8B, - 0x7C, - 0x90, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xB7, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0xA4, - 0x9D, - 0x9D, - 0x93, - 0x9D, - 0x07, - 0x90, - 0x00, - 0x09, - 0x8B, - 0x90, - 0x8B, - 0x88, - 0x85, - 0x91, - 0x7E, - 0x7E, - 0x92, - 0x00, - 0x04, - 0x87, - 0x00, - 0x06, - 0x91, - 0x77, - 0x87, - 0x7E, - 0x9E, - 0x7C, - 0x04, - 0x5E, - 0x00, - 0x05, - 0x6E, - 0x7A, - 0x81, - 0x37, - 0x5A, - 0x00, - 0x04, - 0x17, - 0x00, - 0x1F, - 0x27, - 0x2B, - 0x1D, - 0x17, - 0x2B, - 0x53, - 0x27, - 0x20, - 0x25, - 0x25, - 0x34, - 0x17, - 0x2B, - 0x17, - 0x1D, - 0x1D, - 0x17, - 0x27, - 0x66, - 0x45, - 0x2C, - 0x5F, - 0x63, - 0x45, - 0x42, - 0x42, - 0x38, - 0x38, - 0x38, - 0x42, - 0x42, - 0x00, - 0x05, - 0x38, - 0x00, - 0x44, - 0x20, - 0x38, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x38, - 0x38, - 0x53, - 0x3B, - 0x38, - 0x45, - 0x45, - 0x38, - 0x30, - 0x0C, - 0x20, - 0x20, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x38, - 0x38, - 0x0C, - 0x27, - 0x37, - 0x1D, - 0x17, - 0x20, - 0x27, - 0x1A, - 0x1A, - 0x20, - 0x38, - 0x3B, - 0x2C, - 0x30, - 0x1A, - 0x21, - 0x20, - 0x0C, - 0x0C, - 0x0C, - 0x20, - 0x27, - 0x38, - 0x1A, - 0x13, - 0x42, - 0x27, - 0x20, - 0x2E, - 0x20, - 0x20, - 0x20, - 0x13, - 0x0C, - 0x1A, - 0x27, - 0x27, - 0x2C, - 0x27, - 0x27, - 0x27, - 0x2C, - 0x08, - 0x08, - 0x00, - 0x00, - 0x00, - 0x24, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xF7, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xFD, - 0xE2, - 0xF9, - 0xF6, - 0xE0, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xF6, - 0xEF, - 0xF6, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xF6, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xED, - 0x05, - 0xE9, - 0x00, - 0x0A, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0x0A, - 0xEA, - 0x00, - 0x24, - 0xC9, - 0xEA, - 0xEA, - 0xEA, - 0xC9, - 0xEA, - 0xC9, - 0xC9, - 0xDA, - 0xE5, - 0xEA, - 0xC9, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDC, - 0xDD, - 0xC9, - 0xDC, - 0xDE, - 0xDE, - 0xDE, - 0xD7, - 0xDE, - 0xDE, - 0xDC, - 0xC9, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0xC9, - 0xDE, - 0x04, - 0xE6, - 0x00, - 0x17, - 0xD6, - 0xE2, - 0xE6, - 0xE6, - 0xE9, - 0xE6, - 0xEF, - 0xE2, - 0xC9, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xE2, - 0xE6, - 0xEF, - 0xFB, - 0xBE, - 0x81, - 0x43, - 0x43, - 0xCA, - 0xB4, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x22, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0x9E, - 0x91, - 0x9E, - 0xAB, - 0xB4, - 0xAB, - 0x9E, - 0xB4, - 0xB7, - 0xA4, - 0x85, - 0x93, - 0xAD, - 0xAD, - 0x90, - 0xAD, - 0xA4, - 0x8B, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0x03, - 0x9D, - 0xAD, - 0xA4, - 0x00, - 0x06, - 0x9D, - 0x01, - 0x90, - 0x01, - 0x9D, - 0x04, - 0x90, - 0x00, - 0x09, - 0x8B, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x85, - 0x93, - 0x88, - 0x00, - 0x04, - 0x87, - 0x00, - 0x6D, - 0x77, - 0x87, - 0x88, - 0x91, - 0x7E, - 0x88, - 0x75, - 0x9E, - 0x6E, - 0x51, - 0x68, - 0x61, - 0x5E, - 0x6A, - 0x75, - 0x66, - 0x37, - 0x43, - 0x31, - 0x17, - 0x17, - 0x17, - 0x34, - 0x1D, - 0x1D, - 0x1D, - 0x2B, - 0x43, - 0x2E, - 0x2B, - 0x25, - 0x1D, - 0x2B, - 0x1D, - 0x1D, - 0x27, - 0x17, - 0x1D, - 0x17, - 0x2C, - 0x45, - 0x5F, - 0x45, - 0x5F, - 0x5F, - 0x54, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x42, - 0x38, - 0x38, - 0x38, - 0x42, - 0x45, - 0x42, - 0x20, - 0x45, - 0x2C, - 0x45, - 0x27, - 0x45, - 0x27, - 0x45, - 0x2C, - 0x45, - 0x45, - 0x45, - 0x3B, - 0x27, - 0x3A, - 0x0C, - 0x2C, - 0x1A, - 0x27, - 0x20, - 0x20, - 0x27, - 0x38, - 0x38, - 0x42, - 0x17, - 0x1D, - 0x2B, - 0x1A, - 0x3B, - 0x1D, - 0x20, - 0x0C, - 0x20, - 0x2B, - 0x2C, - 0x2C, - 0x2C, - 0x30, - 0x1A, - 0x1A, - 0x13, - 0x0C, - 0x27, - 0x1A, - 0x27, - 0x20, - 0x38, - 0x08, - 0x27, - 0x27, - 0x00, - 0x05, - 0x20, - 0x00, - 0x06, - 0x0C, - 0x3B, - 0x1D, - 0x27, - 0x27, - 0x20, - 0x04, - 0x27, - 0x01, - 0x08, - 0x01, - 0x07, - 0x00, - 0x00, - 0x00, - 0x19, - 0xFA, - 0xDF, - 0xFA, - 0xDF, - 0xDF, - 0xE0, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xF6, - 0xE0, - 0xE0, - 0xF6, - 0xE0, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xE2, - 0x00, - 0x08, - 0xEF, - 0x00, - 0x14, - 0xE9, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0x0D, - 0xEA, - 0x00, - 0x06, - 0xC9, - 0xEA, - 0xEA, - 0xDD, - 0xEA, - 0xDA, - 0x04, - 0xDD, - 0x00, - 0x30, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDC, - 0xDE, - 0xDE, - 0xDE, - 0xD6, - 0xDE, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xE1, - 0xEF, - 0xCA, - 0xC9, - 0xE6, - 0xE6, - 0xE6, - 0xC9, - 0xE1, - 0xE9, - 0xE9, - 0xD6, - 0xE6, - 0xE9, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xE9, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xD0, - 0x7B, - 0x5A, - 0x43, - 0x62, - 0xB4, - 0x04, - 0xB7, - 0x06, - 0xAD, - 0x00, - 0x18, - 0x9D, - 0xA4, - 0xA0, - 0x92, - 0x91, - 0xA0, - 0xA0, - 0xAB, - 0xA0, - 0xAB, - 0xB7, - 0xB7, - 0x9E, - 0x8B, - 0xAD, - 0xB7, - 0x90, - 0x9D, - 0xAD, - 0x8B, - 0x8B, - 0xA4, - 0x90, - 0xA4, - 0x04, - 0xAD, - 0x00, - 0x07, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0x00, - 0x06, - 0x9D, - 0x00, - 0x05, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x00, - 0x07, - 0x90, - 0x00, - 0x29, - 0x85, - 0x93, - 0x88, - 0x91, - 0x88, - 0x88, - 0x77, - 0x72, - 0x91, - 0x93, - 0x88, - 0x75, - 0x7E, - 0x7C, - 0xA4, - 0x7C, - 0x51, - 0x61, - 0x61, - 0x68, - 0x68, - 0x7A, - 0x66, - 0x43, - 0x5A, - 0x31, - 0x17, - 0x17, - 0x17, - 0x2C, - 0x1D, - 0x1D, - 0x1D, - 0x2B, - 0x48, - 0x37, - 0x25, - 0x25, - 0x1D, - 0x1D, - 0x2C, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x30, - 0x17, - 0x1D, - 0x5F, - 0x5F, - 0x53, - 0x5F, - 0x5F, - 0x54, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x38, - 0x38, - 0x27, - 0x45, - 0x3B, - 0x2C, - 0x38, - 0x27, - 0x42, - 0x2C, - 0x38, - 0x54, - 0x53, - 0x3B, - 0x42, - 0x20, - 0x3B, - 0x0C, - 0x1A, - 0x20, - 0x27, - 0x20, - 0x27, - 0x38, - 0x38, - 0x08, - 0x25, - 0x2C, - 0x04, - 0x27, - 0x00, - 0x24, - 0x20, - 0x08, - 0x2B, - 0x2C, - 0x3B, - 0x3A, - 0x3B, - 0x20, - 0x0C, - 0x13, - 0x08, - 0x45, - 0x1D, - 0x3B, - 0x38, - 0x38, - 0x08, - 0x30, - 0x30, - 0x20, - 0x20, - 0x23, - 0x20, - 0x1A, - 0x27, - 0x2C, - 0x27, - 0x27, - 0x20, - 0x27, - 0x27, - 0x27, - 0x38, - 0x27, - 0x08, - 0x08, - 0x00, - 0x00, - 0x00, - 0x08, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xFE, - 0x04, - 0xE0, - 0x01, - 0xE2, - 0x01, - 0xE0, - 0x05, - 0xE2, - 0x00, - 0x08, - 0xEF, - 0xF6, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0x06, - 0xEF, - 0x00, - 0x04, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0x04, - 0xE9, - 0x06, - 0xEB, - 0x05, - 0xEE, - 0x01, - 0xEA, - 0x01, - 0xEE, - 0x08, - 0xEA, - 0x00, - 0x23, - 0xE7, - 0xC9, - 0xEA, - 0xC9, - 0xF3, - 0xEA, - 0xDA, - 0xC9, - 0xE5, - 0xC9, - 0xDD, - 0xDD, - 0xC9, - 0xDB, - 0xDE, - 0xDD, - 0xDD, - 0xC9, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDE, - 0xC9, - 0xC9, - 0xDC, - 0xE6, - 0xC9, - 0xDC, - 0xC9, - 0xD6, - 0xDE, - 0xE6, - 0xDE, - 0xC9, - 0x00, - 0x08, - 0xE6, - 0x00, - 0x12, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xEF, - 0xE2, - 0xE0, - 0xA3, - 0x59, - 0x43, - 0x6C, - 0x05, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x1F, - 0xA4, - 0x9D, - 0xA4, - 0xA0, - 0xA0, - 0x88, - 0x93, - 0xA0, - 0xAB, - 0xAB, - 0x92, - 0xAD, - 0xB7, - 0xA4, - 0x93, - 0x93, - 0xB7, - 0xA4, - 0x90, - 0xAD, - 0x8B, - 0x90, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x06, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0x04, - 0x9D, - 0x00, - 0x32, - 0x90, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9E, - 0x9D, - 0x93, - 0x85, - 0x9E, - 0x7C, - 0x92, - 0x91, - 0x87, - 0x77, - 0x87, - 0x91, - 0x88, - 0x85, - 0x88, - 0x7E, - 0x88, - 0xA4, - 0x7E, - 0x51, - 0x72, - 0x68, - 0x68, - 0x68, - 0x7C, - 0x6B, - 0x31, - 0x43, - 0x2B, - 0x21, - 0x17, - 0x17, - 0x34, - 0x2B, - 0x1D, - 0x17, - 0x1D, - 0x50, - 0x34, - 0x25, - 0x25, - 0x25, - 0x2B, - 0x2B, - 0x04, - 0x1D, - 0x00, - 0x58, - 0x17, - 0x17, - 0x53, - 0x5F, - 0x5F, - 0x5F, - 0x58, - 0x58, - 0x42, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x42, - 0x27, - 0x38, - 0x27, - 0x27, - 0x27, - 0x45, - 0x20, - 0x3A, - 0x27, - 0x45, - 0x2C, - 0x3B, - 0x38, - 0x3B, - 0x3B, - 0x27, - 0x30, - 0x1A, - 0x20, - 0x27, - 0x2E, - 0x38, - 0x27, - 0x38, - 0x38, - 0x1D, - 0x2C, - 0x2C, - 0x2C, - 0x38, - 0x27, - 0x27, - 0x20, - 0x20, - 0x2B, - 0x25, - 0x2C, - 0x3A, - 0x2C, - 0x27, - 0x1A, - 0x08, - 0x45, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x13, - 0x20, - 0x27, - 0x20, - 0x27, - 0x20, - 0x20, - 0x20, - 0x27, - 0x3B, - 0x27, - 0x27, - 0x38, - 0x27, - 0x27, - 0x38, - 0x27, - 0x38, - 0x07, - 0x08, - 0x00, - 0x00, - 0x00, - 0x25, - 0xD8, - 0xDF, - 0xFA, - 0xE0, - 0xE0, - 0xFA, - 0xE0, - 0xE0, - 0xE0, - 0xF9, - 0xE0, - 0xE0, - 0xF6, - 0xE0, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xF6, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0xE1, - 0xEF, - 0xEF, - 0xEF, - 0xED, - 0xE9, - 0xEF, - 0xE9, - 0xED, - 0x00, - 0x05, - 0xE9, - 0x05, - 0xEB, - 0x06, - 0xEE, - 0x01, - 0xEA, - 0x01, - 0xEE, - 0x0B, - 0xEA, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0xEA, - 0xEA, - 0xDA, - 0xEA, - 0xDD, - 0xDA, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDC, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDC, - 0xC9, - 0x06, - 0xDE, - 0x00, - 0x04, - 0xD6, - 0xC9, - 0xE6, - 0xDE, - 0x07, - 0xE6, - 0x00, - 0xD9, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xE6, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xF9, - 0xA9, - 0x5A, - 0x53, - 0x4E, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9D, - 0xB7, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0x9E, - 0xA0, - 0x88, - 0x93, - 0xA0, - 0xA0, - 0x9E, - 0x92, - 0xAD, - 0xA4, - 0xAD, - 0x9E, - 0x85, - 0xAD, - 0xB7, - 0x9D, - 0xAD, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x9E, - 0x93, - 0x8B, - 0x9D, - 0x7E, - 0x88, - 0x88, - 0x87, - 0x92, - 0x88, - 0x88, - 0x93, - 0x85, - 0x8B, - 0x6A, - 0x93, - 0xAD, - 0x6A, - 0x51, - 0x72, - 0x68, - 0x6A, - 0x68, - 0x7C, - 0x66, - 0x37, - 0x43, - 0x31, - 0x17, - 0x17, - 0x17, - 0x3B, - 0x1D, - 0x2B, - 0x17, - 0x1D, - 0x47, - 0x2E, - 0x1D, - 0x25, - 0x2B, - 0x2B, - 0x1D, - 0x27, - 0x1D, - 0x1D, - 0x17, - 0x1D, - 0x1D, - 0x45, - 0x5F, - 0x45, - 0x5F, - 0x6B, - 0x58, - 0x58, - 0x42, - 0x44, - 0x42, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x42, - 0x45, - 0x42, - 0x45, - 0x0C, - 0x3B, - 0x27, - 0x38, - 0x27, - 0x45, - 0x27, - 0x27, - 0x38, - 0x2C, - 0x3B, - 0x53, - 0x3B, - 0x2C, - 0x45, - 0x27, - 0x47, - 0x0C, - 0x20, - 0x20, - 0x20, - 0x1D, - 0x20, - 0x27, - 0x38, - 0x1D, - 0x1D, - 0x27, - 0x2C, - 0x38, - 0x30, - 0x3A, - 0x1D, - 0x20, - 0x27, - 0x34, - 0x3A, - 0x3B, - 0x2C, - 0x20, - 0x27, - 0x08, - 0x5F, - 0x20, - 0x20, - 0x42, - 0x38, - 0x44, - 0x18, - 0x38, - 0x20, - 0x20, - 0x30, - 0x1A, - 0x20, - 0x27, - 0x27, - 0x27, - 0x20, - 0x38, - 0x27, - 0x20, - 0x38, - 0x27, - 0x38, - 0x04, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDF, - 0x00, - 0x04, - 0xE0, - 0xF7, - 0xE0, - 0xDF, - 0x05, - 0xE0, - 0x01, - 0xF6, - 0x0C, - 0xE2, - 0x07, - 0xEF, - 0x00, - 0x0A, - 0xE9, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0x05, - 0xEB, - 0x04, - 0xEE, - 0x0D, - 0xEA, - 0x00, - 0x08, - 0xF3, - 0xC9, - 0xEA, - 0xDA, - 0xC9, - 0xDD, - 0xDD, - 0xC9, - 0x08, - 0xDD, - 0x00, - 0x03, - 0xDE, - 0xDD, - 0xDD, - 0x00, - 0x07, - 0xDE, - 0x00, - 0x08, - 0xDD, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0x04, - 0xE6, - 0x00, - 0x06, - 0xE9, - 0xE6, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0x05, - 0xE9, - 0x00, - 0x09, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xBE, - 0x7B, - 0x54, - 0x43, - 0xAD, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x24, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0x9E, - 0xAB, - 0x85, - 0x92, - 0x92, - 0x93, - 0xA0, - 0xAB, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x85, - 0x9E, - 0xAD, - 0xA4, - 0x9D, - 0xB7, - 0x90, - 0xAD, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x07, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x37, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x9D, - 0x9E, - 0x85, - 0x9E, - 0x88, - 0x92, - 0x92, - 0x87, - 0x87, - 0x92, - 0x88, - 0x93, - 0x93, - 0x85, - 0x61, - 0x88, - 0x9D, - 0x6E, - 0x61, - 0x6A, - 0x68, - 0x72, - 0x68, - 0x7C, - 0x81, - 0x37, - 0x5A, - 0x2B, - 0x17, - 0x17, - 0x17, - 0x43, - 0x25, - 0x1D, - 0x1D, - 0x17, - 0x43, - 0x25, - 0x2E, - 0x1A, - 0x0C, - 0x20, - 0x17, - 0x1D, - 0x17, - 0x1D, - 0x17, - 0x17, - 0x17, - 0x5F, - 0x45, - 0x00, - 0x04, - 0x5F, - 0x00, - 0x50, - 0x54, - 0x42, - 0x42, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x45, - 0x45, - 0x27, - 0x45, - 0x27, - 0x45, - 0x27, - 0x38, - 0x38, - 0x27, - 0x45, - 0x27, - 0x47, - 0x2B, - 0x3B, - 0x37, - 0x3B, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x1D, - 0x20, - 0x20, - 0x38, - 0x38, - 0x3B, - 0x27, - 0x27, - 0x20, - 0x2C, - 0x3B, - 0x38, - 0x30, - 0x25, - 0x34, - 0x34, - 0x34, - 0x3A, - 0x34, - 0x37, - 0x20, - 0x1D, - 0x18, - 0x5F, - 0x42, - 0x20, - 0x38, - 0x38, - 0x20, - 0x20, - 0x38, - 0x27, - 0x20, - 0x20, - 0x38, - 0x20, - 0x20, - 0x38, - 0x38, - 0x27, - 0x38, - 0x38, - 0x27, - 0x27, - 0x27, - 0x38, - 0x07, - 0x0C, - 0x00, - 0x00, - 0x01, - 0xFA, - 0x04, - 0xDF, - 0x00, - 0x03, - 0xE0, - 0xE0, - 0xDF, - 0x00, - 0x07, - 0xE0, - 0x08, - 0xE2, - 0x00, - 0x05, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0x00, - 0x07, - 0xEF, - 0x00, - 0x0C, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0x06, - 0xEE, - 0x00, - 0x03, - 0xEA, - 0xEE, - 0xEE, - 0x00, - 0x0B, - 0xEA, - 0x00, - 0x08, - 0xC9, - 0xDA, - 0xC9, - 0xDA, - 0xC9, - 0xEA, - 0xDD, - 0xEB, - 0x0A, - 0xDD, - 0x04, - 0xDE, - 0x01, - 0xC9, - 0x07, - 0xDE, - 0x00, - 0x08, - 0xE6, - 0xDE, - 0xE6, - 0xE1, - 0xDE, - 0xE6, - 0xE6, - 0xE6, - 0x08, - 0xE9, - 0x00, - 0x2A, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xE2, - 0xD8, - 0x7B, - 0x50, - 0x37, - 0x88, - 0xB7, - 0xB4, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0x93, - 0x91, - 0x88, - 0x92, - 0xA0, - 0x9E, - 0xAD, - 0xAD, - 0x9D, - 0xAD, - 0x90, - 0x9E, - 0xA4, - 0xAD, - 0xA4, - 0xB7, - 0x90, - 0x04, - 0x9D, - 0x00, - 0x04, - 0xAD, - 0xAD, - 0xAD, - 0xAB, - 0x04, - 0xAD, - 0x00, - 0x3D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0xA4, - 0x9D, - 0x93, - 0x93, - 0x93, - 0x88, - 0x91, - 0x92, - 0x88, - 0x87, - 0x92, - 0x93, - 0x93, - 0x85, - 0x8B, - 0x77, - 0x7C, - 0xAD, - 0x6A, - 0x5E, - 0x72, - 0x61, - 0x72, - 0x77, - 0x61, - 0x7B, - 0x43, - 0x43, - 0x21, - 0x17, - 0x37, - 0x17, - 0x3A, - 0x1D, - 0x17, - 0x18, - 0x17, - 0x53, - 0x47, - 0x47, - 0x2C, - 0x45, - 0x0C, - 0x17, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x13, - 0x17, - 0x17, - 0x27, - 0x66, - 0x45, - 0x45, - 0x6B, - 0x58, - 0x58, - 0x54, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x00, - 0x04, - 0x45, - 0x00, - 0x41, - 0x27, - 0x42, - 0x38, - 0x27, - 0x3B, - 0x27, - 0x27, - 0x30, - 0x27, - 0x45, - 0x3B, - 0x1D, - 0x2C, - 0x45, - 0x27, - 0x27, - 0x0C, - 0x1A, - 0x20, - 0x1D, - 0x20, - 0x27, - 0x45, - 0x27, - 0x27, - 0x25, - 0x2C, - 0x3B, - 0x42, - 0x34, - 0x3A, - 0x1A, - 0x34, - 0x3A, - 0x3F, - 0x34, - 0x30, - 0x27, - 0x30, - 0x3F, - 0x3A, - 0x58, - 0x20, - 0x30, - 0x38, - 0x27, - 0x45, - 0x27, - 0x27, - 0x27, - 0x20, - 0x38, - 0x20, - 0x0C, - 0x27, - 0x27, - 0x38, - 0x38, - 0x38, - 0x20, - 0x27, - 0x27, - 0x38, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0xDF, - 0xD8, - 0xFA, - 0xE0, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xF9, - 0xE0, - 0xDF, - 0xE0, - 0xF6, - 0xE0, - 0xF6, - 0xE0, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xF6, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x17, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xEE, - 0xE9, - 0xEE, - 0xEB, - 0x00, - 0x06, - 0xEE, - 0x00, - 0x04, - 0xEA, - 0xEA, - 0xEA, - 0xEE, - 0x06, - 0xEA, - 0x00, - 0x1A, - 0xC9, - 0xF3, - 0xEA, - 0xEA, - 0xDA, - 0xEA, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xC9, - 0xDD, - 0xEA, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xC9, - 0xE6, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDC, - 0x05, - 0xDE, - 0x00, - 0x0A, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xE6, - 0xC9, - 0xE6, - 0xE6, - 0xE9, - 0xE6, - 0x0A, - 0xE9, - 0x00, - 0x3A, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xE0, - 0x7B, - 0x63, - 0x31, - 0x73, - 0xB4, - 0xB4, - 0xAD, - 0xB7, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0x9D, - 0xAD, - 0x9D, - 0x9E, - 0x9E, - 0x93, - 0xA0, - 0x88, - 0xA0, - 0xAB, - 0xA4, - 0xB7, - 0x90, - 0xAD, - 0x9E, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0x93, - 0xB7, - 0xAB, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x04, - 0xA4, - 0x01, - 0x9D, - 0x01, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0x88, - 0x90, - 0x9D, - 0x9E, - 0x93, - 0x91, - 0x91, - 0x92, - 0x87, - 0x7E, - 0x92, - 0x91, - 0x91, - 0x93, - 0x85, - 0x9E, - 0x7E, - 0x7E, - 0x9E, - 0x77, - 0x72, - 0x72, - 0x68, - 0x68, - 0x7E, - 0x7C, - 0x5A, - 0x37, - 0x43, - 0x17, - 0x31, - 0x17, - 0x17, - 0x30, - 0x47, - 0x2C, - 0x25, - 0x08, - 0x5F, - 0x45, - 0x45, - 0x2C, - 0x3B, - 0x38, - 0x0C, - 0x1D, - 0x1D, - 0x17, - 0x1D, - 0x17, - 0x17, - 0x17, - 0x45, - 0x45, - 0x58, - 0x5F, - 0x5F, - 0x58, - 0x45, - 0x42, - 0x42, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x38, - 0x45, - 0x45, - 0x1A, - 0x27, - 0x45, - 0x27, - 0x27, - 0x3B, - 0x20, - 0x27, - 0x3B, - 0x25, - 0x37, - 0x27, - 0x5A, - 0x3B, - 0x38, - 0x3B, - 0x1A, - 0x20, - 0x20, - 0x1A, - 0x20, - 0x1A, - 0x27, - 0x38, - 0x2C, - 0x27, - 0x25, - 0x2B, - 0x30, - 0x38, - 0x30, - 0x3A, - 0x34, - 0x3F, - 0x43, - 0x34, - 0x2B, - 0x25, - 0x1A, - 0x38, - 0x30, - 0x50, - 0x54, - 0x20, - 0x38, - 0x23, - 0x38, - 0x42, - 0x38, - 0x38, - 0x27, - 0x38, - 0x45, - 0x20, - 0x08, - 0x38, - 0x38, - 0x38, - 0x20, - 0x30, - 0x38, - 0x20, - 0x38, - 0x38, - 0x02, - 0x27, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xE0, - 0xF7, - 0xDF, - 0x04, - 0xE0, - 0x00, - 0x06, - 0xE2, - 0xE2, - 0xE0, - 0xE2, - 0xE2, - 0xE1, - 0x06, - 0xE2, - 0x00, - 0x12, - 0xEF, - 0xE2, - 0xEF, - 0xE1, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0x04, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x04, - 0xEE, - 0x0B, - 0xEA, - 0x00, - 0x06, - 0xDD, - 0xEA, - 0xDA, - 0xC9, - 0xDA, - 0xEA, - 0x07, - 0xDD, - 0x00, - 0x05, - 0xEA, - 0xDE, - 0xDE, - 0xEA, - 0xC9, - 0x00, - 0x04, - 0xDE, - 0x01, - 0xDD, - 0x04, - 0xDE, - 0x00, - 0x0E, - 0xDD, - 0xDE, - 0xED, - 0xC9, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0xE6, - 0xE6, - 0xE9, - 0xE6, - 0xE6, - 0x08, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0xCA, - 0xE2, - 0xE0, - 0x84, - 0x65, - 0x17, - 0x8F, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xB7, - 0x9D, - 0xAD, - 0xA4, - 0x9E, - 0x9D, - 0xA0, - 0x93, - 0x88, - 0x93, - 0x9E, - 0xAB, - 0xAD, - 0x90, - 0xAD, - 0xA4, - 0x93, - 0x9E, - 0x90, - 0x9D, - 0xA4, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x91, - 0x93, - 0x92, - 0xA0, - 0xA0, - 0xAB, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0x93, - 0x90, - 0x93, - 0x9D, - 0x9D, - 0x90, - 0x9E, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x90, - 0x9D, - 0x93, - 0x90, - 0xA4, - 0x9E, - 0x93, - 0x91, - 0x91, - 0x92, - 0x92, - 0x91, - 0x91, - 0x91, - 0x8B, - 0x8B, - 0x93, - 0x75, - 0x7E, - 0x7E, - 0x6A, - 0x77, - 0x68, - 0x61, - 0x61, - 0x72, - 0x7C, - 0x65, - 0x31, - 0x43, - 0x21, - 0x1D, - 0x17, - 0x17, - 0x3A, - 0x37, - 0x3B, - 0x47, - 0x08, - 0x45, - 0x45, - 0x5F, - 0x3B, - 0x45, - 0x45, - 0x0C, - 0x0C, - 0x1D, - 0x1D, - 0x1D, - 0x17, - 0x1D, - 0x17, - 0x45, - 0x5F, - 0x45, - 0x58, - 0x5F, - 0x58, - 0x54, - 0x45, - 0x42, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x45, - 0x1A, - 0x38, - 0x3B, - 0x2C, - 0x27, - 0x38, - 0x2C, - 0x25, - 0x3A, - 0x2C, - 0x27, - 0x43, - 0x20, - 0x1D, - 0x2C, - 0x45, - 0x27, - 0x2B, - 0x0C, - 0x23, - 0x25, - 0x20, - 0x45, - 0x3B, - 0x3A, - 0x30, - 0x27, - 0x25, - 0x34, - 0x42, - 0x1A, - 0x3A, - 0x3F, - 0x34, - 0x25, - 0x31, - 0x34, - 0x25, - 0x1A, - 0x34, - 0x38, - 0x0C, - 0x3D, - 0x23, - 0x30, - 0x20, - 0x20, - 0x45, - 0x38, - 0x2C, - 0x20, - 0x27, - 0x3B, - 0x20, - 0x07, - 0x38, - 0x3B, - 0x38, - 0x38, - 0x20, - 0x30, - 0x38, - 0x27, - 0x27, - 0x04, - 0x27, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xFA, - 0xDF, - 0xDF, - 0xDF, - 0xFA, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xF9, - 0x00, - 0x04, - 0xE0, - 0x04, - 0xE2, - 0x01, - 0xE0, - 0x04, - 0xE2, - 0x00, - 0x16, - 0xEF, - 0xE2, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xEF, - 0xED, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEE, - 0x04, - 0xEB, - 0x06, - 0xEE, - 0x00, - 0x05, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0x00, - 0x07, - 0xEA, - 0x00, - 0x09, - 0xDD, - 0xEA, - 0xDD, - 0xC9, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xEE, - 0x00, - 0x04, - 0xDD, - 0x00, - 0x04, - 0xDE, - 0xE6, - 0xDD, - 0xDD, - 0x04, - 0xDE, - 0x00, - 0x14, - 0xDD, - 0xDE, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xE6, - 0xC9, - 0xEF, - 0xE6, - 0xC9, - 0xE6, - 0xE6, - 0xE6, - 0xE9, - 0xE9, - 0xE6, - 0xE6, - 0x05, - 0xE9, - 0x00, - 0xCE, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xED, - 0xE0, - 0x7A, - 0x45, - 0x31, - 0x73, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0x9D, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9E, - 0x9E, - 0x88, - 0x93, - 0xAB, - 0x9E, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0x90, - 0x9E, - 0x8B, - 0x8B, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x93, - 0x8B, - 0x90, - 0xA0, - 0x91, - 0x87, - 0x87, - 0xA0, - 0x91, - 0xAB, - 0x88, - 0xA4, - 0x9E, - 0x91, - 0x90, - 0x9E, - 0x90, - 0x90, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x90, - 0x90, - 0x93, - 0xA0, - 0x93, - 0xA0, - 0x91, - 0x88, - 0x91, - 0x91, - 0x8B, - 0x93, - 0x85, - 0xA0, - 0x6A, - 0x91, - 0x7C, - 0x72, - 0x72, - 0x6A, - 0x72, - 0x68, - 0x75, - 0x6E, - 0x66, - 0x37, - 0x37, - 0x17, - 0x21, - 0x3F, - 0x3A, - 0x0C, - 0x2C, - 0x3B, - 0x2C, - 0x0C, - 0x37, - 0x3B, - 0x45, - 0x54, - 0x45, - 0x45, - 0x42, - 0x0C, - 0x17, - 0x0C, - 0x27, - 0x17, - 0x27, - 0x1D, - 0x37, - 0x5F, - 0x53, - 0x5F, - 0x6B, - 0x58, - 0x45, - 0x54, - 0x42, - 0x42, - 0x38, - 0x38, - 0x42, - 0x45, - 0x38, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x20, - 0x45, - 0x27, - 0x2C, - 0x27, - 0x2C, - 0x27, - 0x20, - 0x37, - 0x1D, - 0x3B, - 0x2B, - 0x43, - 0x37, - 0x37, - 0x45, - 0x1A, - 0x18, - 0x0C, - 0x18, - 0x1A, - 0x3A, - 0x38, - 0x3B, - 0x3A, - 0x25, - 0x2E, - 0x34, - 0x2C, - 0x3D, - 0x3A, - 0x43, - 0x2E, - 0x25, - 0x2B, - 0x34, - 0x2B, - 0x1A, - 0x38, - 0x20, - 0x23, - 0x3A, - 0x20, - 0x45, - 0x45, - 0x20, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x27, - 0x45, - 0x38, - 0x08, - 0x27, - 0x27, - 0x38, - 0x20, - 0x20, - 0x30, - 0x27, - 0x38, - 0x20, - 0x08, - 0x45, - 0x00, - 0x00, - 0x00, - 0x11, - 0xD8, - 0xDF, - 0xFA, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xF9, - 0xE2, - 0xE0, - 0xE0, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x05, - 0xE0, - 0xEF, - 0xF6, - 0xE2, - 0xE2, - 0x00, - 0x07, - 0xEF, - 0x00, - 0x03, - 0xED, - 0xEF, - 0xED, - 0x00, - 0x05, - 0xE9, - 0x00, - 0x03, - 0xEB, - 0xE9, - 0xEE, - 0x00, - 0x04, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x04, - 0xEE, - 0x00, - 0x05, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0x00, - 0x06, - 0xEA, - 0x00, - 0x1F, - 0xDA, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xDA, - 0xDD, - 0xEA, - 0xEA, - 0xDD, - 0xDD, - 0xEE, - 0xEA, - 0xDD, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xE6, - 0xEA, - 0xDE, - 0xDE, - 0xDE, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xEF, - 0x06, - 0xE6, - 0x01, - 0xE9, - 0x01, - 0xE6, - 0x05, - 0xE9, - 0x00, - 0x0B, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xE2, - 0x8C, - 0x3F, - 0x31, - 0x60, - 0xAD, - 0xB7, - 0x00, - 0x05, - 0xAD, - 0x00, - 0x30, - 0xA4, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9E, - 0x9E, - 0x93, - 0x91, - 0x9E, - 0x90, - 0x8B, - 0x90, - 0x91, - 0x85, - 0x91, - 0xA0, - 0x92, - 0x92, - 0x83, - 0xB4, - 0x7E, - 0xA0, - 0x7E, - 0xA0, - 0xB7, - 0x8B, - 0x93, - 0x85, - 0x93, - 0x93, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x04, - 0xA4, - 0x00, - 0x31, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x93, - 0x93, - 0x91, - 0x91, - 0x85, - 0x91, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x9E, - 0x61, - 0x9E, - 0x75, - 0x77, - 0x6E, - 0x68, - 0x6A, - 0x6A, - 0x87, - 0x6E, - 0x6F, - 0x17, - 0x43, - 0x1D, - 0x37, - 0x1D, - 0x47, - 0x08, - 0x2B, - 0x3B, - 0x3B, - 0x25, - 0x37, - 0x27, - 0x45, - 0x45, - 0x45, - 0x5F, - 0x45, - 0x27, - 0x18, - 0x0C, - 0x1A, - 0x00, - 0x04, - 0x17, - 0x00, - 0x0F, - 0x53, - 0x5F, - 0x45, - 0x5F, - 0x5F, - 0x42, - 0x45, - 0x54, - 0x38, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x00, - 0x04, - 0x45, - 0x00, - 0x41, - 0x17, - 0x45, - 0x3B, - 0x2C, - 0x27, - 0x42, - 0x27, - 0x20, - 0x47, - 0x27, - 0x1D, - 0x37, - 0x2C, - 0x2C, - 0x37, - 0x45, - 0x20, - 0x1A, - 0x08, - 0x1A, - 0x17, - 0x3B, - 0x45, - 0x47, - 0x2B, - 0x30, - 0x2B, - 0x25, - 0x34, - 0x3A, - 0x1A, - 0x48, - 0x25, - 0x25, - 0x2B, - 0x31, - 0x34, - 0x27, - 0x27, - 0x30, - 0x20, - 0x20, - 0x20, - 0x38, - 0x47, - 0x27, - 0x38, - 0x45, - 0x42, - 0x27, - 0x20, - 0x45, - 0x27, - 0x07, - 0x27, - 0x38, - 0x27, - 0x38, - 0x1A, - 0x30, - 0x30, - 0x38, - 0x0C, - 0x0C, - 0x45, - 0x00, - 0x00, - 0x00, - 0x01, - 0xD8, - 0x01, - 0xD8, - 0x06, - 0xDF, - 0x01, - 0xE0, - 0x01, - 0xDF, - 0x06, - 0xE0, - 0x00, - 0x04, - 0xE2, - 0xE2, - 0xE0, - 0xF6, - 0x06, - 0xE2, - 0x00, - 0x1A, - 0xEF, - 0xE2, - 0xE2, - 0xEF, - 0xEF, - 0xEF, - 0xED, - 0xEF, - 0xEF, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0x04, - 0xEE, - 0x00, - 0x09, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0xDD, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x11, - 0xDD, - 0xEA, - 0xDD, - 0xC9, - 0xDA, - 0xDD, - 0xDD, - 0xDD, - 0xC9, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0x05, - 0xDE, - 0x00, - 0x0A, - 0xDD, - 0xC9, - 0xE6, - 0xDE, - 0xEE, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0x08, - 0xE6, - 0x00, - 0x0F, - 0xE9, - 0xE6, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0x9B, - 0x59, - 0x31, - 0x62, - 0x00, - 0x06, - 0xAD, - 0x00, - 0x3D, - 0xA4, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9E, - 0x9E, - 0x8B, - 0x91, - 0x9E, - 0x9E, - 0x9E, - 0x9D, - 0x9E, - 0x9D, - 0x93, - 0x9E, - 0x8B, - 0x91, - 0x90, - 0x8B, - 0x7C, - 0x93, - 0x93, - 0x85, - 0xA0, - 0x91, - 0x92, - 0x92, - 0x87, - 0xA0, - 0x87, - 0x91, - 0x7C, - 0x9D, - 0xAB, - 0x9E, - 0x9E, - 0x85, - 0x8B, - 0x93, - 0x90, - 0xA4, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x93, - 0x93, - 0xA4, - 0x8B, - 0x00, - 0x05, - 0x93, - 0x00, - 0x7C, - 0x8B, - 0x93, - 0xAB, - 0x6A, - 0x93, - 0x7E, - 0x77, - 0x72, - 0x6E, - 0x68, - 0x6A, - 0x6E, - 0x6D, - 0x66, - 0x17, - 0x43, - 0x2B, - 0x37, - 0x2C, - 0x2B, - 0x0C, - 0x0C, - 0x2C, - 0x3B, - 0x2C, - 0x37, - 0x3A, - 0x47, - 0x53, - 0x42, - 0x45, - 0x5F, - 0x2C, - 0x45, - 0x20, - 0x08, - 0x0C, - 0x17, - 0x17, - 0x17, - 0x45, - 0x45, - 0x58, - 0x58, - 0x63, - 0x58, - 0x42, - 0x54, - 0x42, - 0x42, - 0x42, - 0x38, - 0x38, - 0x45, - 0x45, - 0x38, - 0x38, - 0x45, - 0x5F, - 0x0C, - 0x3B, - 0x38, - 0x27, - 0x27, - 0x3B, - 0x1D, - 0x20, - 0x2C, - 0x25, - 0x1D, - 0x3A, - 0x17, - 0x2B, - 0x37, - 0x37, - 0x47, - 0x1A, - 0x0C, - 0x08, - 0x1A, - 0x30, - 0x42, - 0x2C, - 0x48, - 0x34, - 0x25, - 0x25, - 0x30, - 0x30, - 0x3A, - 0x34, - 0x25, - 0x25, - 0x31, - 0x2B, - 0x25, - 0x30, - 0x38, - 0x2E, - 0x30, - 0x3D, - 0x2C, - 0x42, - 0x27, - 0x42, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x38, - 0x45, - 0x27, - 0x20, - 0x27, - 0x20, - 0x38, - 0x3B, - 0x23, - 0x20, - 0x27, - 0x38, - 0x13, - 0x0C, - 0x45, - 0x00, - 0x00, - 0x00, - 0x09, - 0xFA, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xD8, - 0xFA, - 0xE0, - 0xDF, - 0x00, - 0x06, - 0xE0, - 0x00, - 0x05, - 0xE2, - 0xE0, - 0xE2, - 0xE2, - 0xE0, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x04, - 0xE1, - 0xE2, - 0xEF, - 0xE2, - 0x05, - 0xEF, - 0x00, - 0x0B, - 0xE9, - 0xEF, - 0xEF, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0x00, - 0x05, - 0xEB, - 0x05, - 0xEE, - 0x00, - 0x1B, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0xEA, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0xDD, - 0xEB, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDE, - 0xDD, - 0xE6, - 0xDE, - 0x00, - 0x08, - 0xE6, - 0x00, - 0x13, - 0xE9, - 0xEB, - 0xE6, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xE2, - 0xEF, - 0xEF, - 0xE0, - 0x8A, - 0x59, - 0x4E, - 0x43, - 0xA4, - 0xA4, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x67, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x90, - 0x9E, - 0x93, - 0x8B, - 0x9E, - 0xA4, - 0x9E, - 0x90, - 0x9E, - 0x8B, - 0x8B, - 0x88, - 0x8B, - 0x93, - 0x85, - 0x8B, - 0x91, - 0x93, - 0x85, - 0x7E, - 0x88, - 0x87, - 0x87, - 0xA0, - 0x87, - 0x91, - 0x88, - 0xA0, - 0xB7, - 0x8B, - 0x9D, - 0x88, - 0x8B, - 0x90, - 0x85, - 0xA4, - 0x9E, - 0x8B, - 0xB7, - 0x9D, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0x9E, - 0x93, - 0xA4, - 0x8B, - 0x9E, - 0x93, - 0x9D, - 0xA4, - 0x90, - 0x8B, - 0x9E, - 0xAD, - 0x61, - 0x91, - 0x85, - 0x87, - 0x6E, - 0x6A, - 0x68, - 0x6E, - 0x77, - 0x61, - 0x5A, - 0x37, - 0x37, - 0x37, - 0x45, - 0x3B, - 0x37, - 0x2C, - 0x04, - 0x3A, - 0x3B, - 0x42, - 0x1D, - 0x47, - 0x58, - 0x45, - 0x2C, - 0x53, - 0x45, - 0x38, - 0x45, - 0x45, - 0x08, - 0x08, - 0x00, - 0x04, - 0x0C, - 0x00, - 0x0E, - 0x3B, - 0x45, - 0x53, - 0x58, - 0x54, - 0x54, - 0x45, - 0x42, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x42, - 0x04, - 0x45, - 0x00, - 0x41, - 0x42, - 0x2C, - 0x3B, - 0x27, - 0x27, - 0x42, - 0x27, - 0x27, - 0x1D, - 0x37, - 0x1D, - 0x1D, - 0x30, - 0x3A, - 0x1D, - 0x27, - 0x27, - 0x1A, - 0x1A, - 0x18, - 0x0C, - 0x45, - 0x3B, - 0x50, - 0x30, - 0x34, - 0x34, - 0x25, - 0x25, - 0x2B, - 0x3D, - 0x1A, - 0x34, - 0x37, - 0x34, - 0x31, - 0x34, - 0x1A, - 0x38, - 0x2E, - 0x20, - 0x20, - 0x38, - 0x30, - 0x30, - 0x42, - 0x45, - 0x42, - 0x45, - 0x27, - 0x27, - 0x27, - 0x0C, - 0x27, - 0x3B, - 0x27, - 0x38, - 0x27, - 0x38, - 0x20, - 0x27, - 0x38, - 0x07, - 0x27, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xD8, - 0xD8, - 0xDF, - 0xFA, - 0xFA, - 0xE0, - 0xE0, - 0xDF, - 0xF7, - 0xE0, - 0xDF, - 0x00, - 0x04, - 0xE0, - 0x01, - 0xE2, - 0x01, - 0xE0, - 0x05, - 0xE2, - 0x00, - 0x0F, - 0xE0, - 0xE1, - 0xE2, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xE1, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xED, - 0x00, - 0x04, - 0xE9, - 0x01, - 0xEB, - 0x01, - 0xE9, - 0x08, - 0xEB, - 0x08, - 0xEE, - 0x00, - 0x0A, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xDD, - 0xDE, - 0x06, - 0xDD, - 0x01, - 0xEA, - 0x06, - 0xDD, - 0x00, - 0x0F, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xEE, - 0xDE, - 0xDE, - 0xEA, - 0xDE, - 0xEE, - 0xDE, - 0xEB, - 0xDE, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xDE, - 0x04, - 0xE6, - 0x00, - 0x08, - 0xEB, - 0xE6, - 0xEB, - 0xE9, - 0xE6, - 0xE9, - 0xE9, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0x10, - 0xE2, - 0xE2, - 0xA5, - 0x5A, - 0x43, - 0x2B, - 0x9D, - 0xB4, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0x05, - 0xA4, - 0x00, - 0x2B, - 0x9D, - 0x9E, - 0x9E, - 0x93, - 0x9D, - 0x93, - 0x90, - 0xA4, - 0x90, - 0x93, - 0x9E, - 0x93, - 0x85, - 0x8B, - 0x85, - 0x93, - 0x85, - 0x88, - 0x88, - 0x93, - 0x7E, - 0x7E, - 0x88, - 0x87, - 0x7E, - 0x92, - 0x92, - 0x91, - 0x88, - 0x9E, - 0xAB, - 0x90, - 0x93, - 0x85, - 0x8B, - 0x8B, - 0x93, - 0x9D, - 0x93, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x40, - 0x9D, - 0x9D, - 0x93, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0x90, - 0x9E, - 0x85, - 0x8B, - 0xA4, - 0x6A, - 0x88, - 0x7E, - 0x87, - 0x77, - 0x6A, - 0x6A, - 0x72, - 0x7E, - 0x1E, - 0x43, - 0x2B, - 0x43, - 0x53, - 0x53, - 0x3B, - 0x3A, - 0x30, - 0x08, - 0x0C, - 0x3A, - 0x45, - 0x44, - 0x2B, - 0x45, - 0x58, - 0x2C, - 0x38, - 0x5F, - 0x5F, - 0x27, - 0x45, - 0x5F, - 0x04, - 0x08, - 0x0C, - 0x0C, - 0x0C, - 0x45, - 0x45, - 0x45, - 0x58, - 0x58, - 0x54, - 0x42, - 0x45, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x06, - 0x45, - 0x00, - 0x40, - 0x1D, - 0x2C, - 0x27, - 0x27, - 0x38, - 0x1D, - 0x1D, - 0x2B, - 0x2B, - 0x20, - 0x2C, - 0x25, - 0x27, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x1A, - 0x1A, - 0x0C, - 0x17, - 0x53, - 0x37, - 0x3F, - 0x30, - 0x21, - 0x1A, - 0x31, - 0x25, - 0x2C, - 0x30, - 0x48, - 0x3F, - 0x25, - 0x25, - 0x34, - 0x25, - 0x30, - 0x20, - 0x2E, - 0x30, - 0x27, - 0x30, - 0x3A, - 0x3A, - 0x45, - 0x45, - 0x42, - 0x27, - 0x20, - 0x1A, - 0x18, - 0x1D, - 0x45, - 0x38, - 0x38, - 0x20, - 0x45, - 0x30, - 0x2E, - 0x27, - 0x04, - 0x3B, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xD8, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xF9, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x1C, - 0xE2, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xE9, - 0xEF, - 0xE2, - 0xE9, - 0xED, - 0xEF, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0x05, - 0xEB, - 0x09, - 0xEE, - 0x01, - 0xEA, - 0x05, - 0xEE, - 0x00, - 0x2E, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xEE, - 0xEE, - 0xDE, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xE6, - 0xE9, - 0xEB, - 0xE6, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0x80, - 0xE2, - 0xF6, - 0xE2, - 0xE0, - 0x9B, - 0x5F, - 0x4E, - 0x4E, - 0x91, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9E, - 0x90, - 0x90, - 0x9E, - 0x90, - 0x93, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x85, - 0x93, - 0x85, - 0x88, - 0x8B, - 0x88, - 0x88, - 0x7E, - 0x91, - 0x88, - 0x7E, - 0xA0, - 0x88, - 0x88, - 0x91, - 0x93, - 0xAD, - 0x8B, - 0x90, - 0x85, - 0x90, - 0x85, - 0x90, - 0x93, - 0x9E, - 0x90, - 0x9E, - 0x9D, - 0x93, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x85, - 0xA4, - 0xA4, - 0x90, - 0x90, - 0x93, - 0x90, - 0x9D, - 0x9E, - 0x7C, - 0xA0, - 0x6E, - 0x93, - 0x88, - 0x77, - 0x7E, - 0x77, - 0x72, - 0x6A, - 0x88, - 0x09, - 0x5A, - 0x2B, - 0x37, - 0x53, - 0x53, - 0x3B, - 0x3B, - 0x2C, - 0x2C, - 0x01, - 0x50, - 0x53, - 0x25, - 0x34, - 0x2B, - 0x27, - 0x38, - 0x53, - 0x45, - 0x53, - 0x27, - 0x5F, - 0x5F, - 0x17, - 0x02, - 0x04, - 0x0C, - 0x0C, - 0x0C, - 0x53, - 0x53, - 0x58, - 0x53, - 0x54, - 0x3B, - 0x04, - 0x42, - 0x00, - 0x48, - 0x38, - 0x45, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x5F, - 0x0C, - 0x3B, - 0x27, - 0x27, - 0x2C, - 0x20, - 0x17, - 0x2C, - 0x1D, - 0x27, - 0x1D, - 0x2C, - 0x1D, - 0x27, - 0x2B, - 0x27, - 0x2C, - 0x42, - 0x20, - 0x0C, - 0x27, - 0x38, - 0x3A, - 0x3F, - 0x30, - 0x31, - 0x2E, - 0x25, - 0x20, - 0x2B, - 0x3B, - 0x1A, - 0x2B, - 0x3F, - 0x34, - 0x25, - 0x20, - 0x20, - 0x20, - 0x18, - 0x3A, - 0x30, - 0x38, - 0x30, - 0x30, - 0x45, - 0x45, - 0x20, - 0x27, - 0x27, - 0x20, - 0x20, - 0x27, - 0x3B, - 0x27, - 0x38, - 0x0C, - 0x45, - 0x45, - 0x38, - 0x27, - 0x02, - 0x45, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xF7, - 0xD8, - 0xDF, - 0xD8, - 0xDF, - 0xD8, - 0xD8, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x03, - 0xE2, - 0xE0, - 0xE0, - 0x00, - 0x08, - 0xE2, - 0x00, - 0x0C, - 0xE1, - 0xE2, - 0xEF, - 0xE1, - 0xEF, - 0xEF, - 0xEF, - 0xE1, - 0xE9, - 0xED, - 0xE9, - 0xED, - 0x04, - 0xE9, - 0x00, - 0x09, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0x00, - 0x05, - 0xEE, - 0x01, - 0xEA, - 0x05, - 0xEE, - 0x01, - 0xEA, - 0x04, - 0xEE, - 0x00, - 0x1E, - 0xEA, - 0xDE, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xEE, - 0xC9, - 0xE9, - 0xEA, - 0xEB, - 0xDE, - 0xE6, - 0xDE, - 0x06, - 0xE6, - 0x00, - 0x05, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0x00, - 0x06, - 0xE9, - 0x00, - 0x0A, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xF6, - 0x8F, - 0x7B, - 0x7A, - 0x57, - 0x73, - 0x04, - 0xA4, - 0x00, - 0x04, - 0xAD, - 0xA4, - 0x9D, - 0xB7, - 0x05, - 0xA4, - 0x00, - 0xB6, - 0xAD, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x85, - 0x93, - 0x90, - 0x9E, - 0x9D, - 0x8B, - 0x8B, - 0x90, - 0x85, - 0x8B, - 0x8B, - 0x85, - 0x88, - 0x88, - 0x85, - 0x88, - 0x7C, - 0x88, - 0x88, - 0x87, - 0xA0, - 0x88, - 0x91, - 0x92, - 0x9E, - 0xA4, - 0x93, - 0x90, - 0x7C, - 0x90, - 0x8B, - 0x8B, - 0x93, - 0x9E, - 0xA4, - 0xA4, - 0x9D, - 0x8B, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x8B, - 0x9E, - 0x9D, - 0x93, - 0x9D, - 0x85, - 0x90, - 0x93, - 0x9D, - 0x85, - 0x88, - 0x75, - 0xA0, - 0x85, - 0x75, - 0x77, - 0x6A, - 0x6A, - 0x6A, - 0x77, - 0x10, - 0x5A, - 0x43, - 0x2B, - 0x5F, - 0x53, - 0x53, - 0x3A, - 0x42, - 0x2B, - 0x08, - 0x17, - 0x2C, - 0x3D, - 0x27, - 0x42, - 0x42, - 0x3A, - 0x27, - 0x3B, - 0x45, - 0x3B, - 0x53, - 0x5F, - 0x45, - 0x27, - 0x02, - 0x02, - 0x07, - 0x08, - 0x1D, - 0x50, - 0x53, - 0x63, - 0x54, - 0x54, - 0x54, - 0x42, - 0x38, - 0x38, - 0x42, - 0x38, - 0x38, - 0x45, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x0C, - 0x27, - 0x2C, - 0x38, - 0x27, - 0x27, - 0x20, - 0x2C, - 0x30, - 0x3B, - 0x27, - 0x2B, - 0x2C, - 0x2B, - 0x1D, - 0x2B, - 0x27, - 0x2C, - 0x20, - 0x08, - 0x0C, - 0x27, - 0x3D, - 0x31, - 0x34, - 0x2E, - 0x1D, - 0x25, - 0x25, - 0x31, - 0x34, - 0x20, - 0x48, - 0x37, - 0x34, - 0x21, - 0x30, - 0x20, - 0x20, - 0x0C, - 0x3B, - 0x38, - 0x2E, - 0x25, - 0x3D, - 0x42, - 0x38, - 0x27, - 0x20, - 0x27, - 0x20, - 0x20, - 0x1A, - 0x42, - 0x3B, - 0x27, - 0x13, - 0x45, - 0x45, - 0x2C, - 0x0C, - 0x02, - 0x45, - 0x27, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD8, - 0xD8, - 0xFA, - 0x00, - 0x06, - 0xDF, - 0x00, - 0x05, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0xE2, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x03, - 0xE2, - 0xE2, - 0xE3, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x14, - 0xE1, - 0xEF, - 0xE2, - 0xE1, - 0xEF, - 0xE1, - 0xED, - 0xED, - 0xEF, - 0xED, - 0xED, - 0xED, - 0xE9, - 0xED, - 0xEB, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0x04, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x07, - 0xEE, - 0x01, - 0xEA, - 0x08, - 0xEE, - 0x00, - 0x28, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xEE, - 0xDD, - 0xDE, - 0xEE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEA, - 0xDD, - 0xEE, - 0xDD, - 0xEB, - 0xDE, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xEB, - 0xE6, - 0xE6, - 0xEB, - 0xE6, - 0xE6, - 0xEB, - 0x04, - 0xE9, - 0x00, - 0xB9, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xE2, - 0xCA, - 0x6D, - 0x83, - 0x73, - 0x73, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x9D, - 0x93, - 0x8B, - 0x93, - 0x90, - 0x9E, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x85, - 0x85, - 0x8B, - 0x8B, - 0x88, - 0x7C, - 0x85, - 0x91, - 0x7E, - 0x91, - 0x88, - 0x7E, - 0x91, - 0x88, - 0x88, - 0x88, - 0xA4, - 0x9E, - 0x8B, - 0x9E, - 0x8B, - 0x90, - 0x93, - 0x85, - 0x93, - 0x93, - 0x9D, - 0x9E, - 0x9D, - 0x93, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x93, - 0x91, - 0x93, - 0x9D, - 0x90, - 0x9E, - 0x8B, - 0x9E, - 0x8B, - 0xA0, - 0x8B, - 0x7C, - 0x7E, - 0x91, - 0x91, - 0x75, - 0x7E, - 0x77, - 0x72, - 0x68, - 0x83, - 0x01, - 0x43, - 0x43, - 0x17, - 0x5F, - 0x53, - 0x47, - 0x45, - 0x3A, - 0x3D, - 0x3D, - 0x04, - 0x53, - 0x47, - 0x21, - 0x58, - 0x53, - 0x27, - 0x53, - 0x2C, - 0x45, - 0x47, - 0x3B, - 0x45, - 0x58, - 0x45, - 0x07, - 0x02, - 0x02, - 0x07, - 0x08, - 0x25, - 0x58, - 0x58, - 0x45, - 0x42, - 0x54, - 0x38, - 0x54, - 0x42, - 0x38, - 0x38, - 0x38, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x42, - 0x1A, - 0x27, - 0x38, - 0x27, - 0x30, - 0x2C, - 0x38, - 0x2C, - 0x2C, - 0x43, - 0x27, - 0x25, - 0x3A, - 0x1D, - 0x2B, - 0x3A, - 0x2B, - 0x38, - 0x20, - 0x08, - 0x31, - 0x3D, - 0x31, - 0x25, - 0x25, - 0x31, - 0x25, - 0x25, - 0x27, - 0x38, - 0x48, - 0x1D, - 0x34, - 0x34, - 0x34, - 0x25, - 0x20, - 0x20, - 0x1A, - 0x27, - 0x2C, - 0x00, - 0x04, - 0x30, - 0x00, - 0x12, - 0x20, - 0x20, - 0x20, - 0x27, - 0x20, - 0x38, - 0x20, - 0x3B, - 0x47, - 0x1D, - 0x18, - 0x38, - 0x45, - 0x27, - 0x08, - 0x02, - 0x45, - 0x17, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x05, - 0xDF, - 0x07, - 0xE0, - 0x00, - 0x10, - 0xE2, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xE2, - 0xE1, - 0xE1, - 0xEF, - 0xEF, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x08, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0x05, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x0C, - 0xEE, - 0x01, - 0xE5, - 0x06, - 0xEE, - 0x04, - 0xDD, - 0x00, - 0x17, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xC9, - 0xE9, - 0xEB, - 0xDE, - 0x00, - 0x05, - 0xE6, - 0x00, - 0x19, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xB4, - 0x73, - 0xB4, - 0x90, - 0x92, - 0x9D, - 0x9D, - 0x9D, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x24, - 0xB7, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x90, - 0x9E, - 0x8B, - 0x93, - 0x93, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x7C, - 0x85, - 0x88, - 0x88, - 0x7C, - 0x7E, - 0x88, - 0x7C, - 0x91, - 0x88, - 0x88, - 0x91, - 0x88, - 0x93, - 0x88, - 0x04, - 0x9E, - 0x00, - 0x09, - 0x8B, - 0x8B, - 0x9E, - 0x8B, - 0x8B, - 0x9E, - 0x90, - 0x9E, - 0x8B, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x06, - 0xA4, - 0x9E, - 0x91, - 0x8B, - 0x90, - 0x9E, - 0x04, - 0x90, - 0x00, - 0x07, - 0x8B, - 0x93, - 0x88, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x00, - 0x04, - 0x77, - 0x00, - 0x2D, - 0xC9, - 0x01, - 0x66, - 0x43, - 0x43, - 0x53, - 0x54, - 0x47, - 0x42, - 0x45, - 0x42, - 0x38, - 0x0C, - 0x17, - 0x2C, - 0x25, - 0x47, - 0x27, - 0x3B, - 0x27, - 0x42, - 0x37, - 0x38, - 0x20, - 0x3B, - 0x45, - 0x5F, - 0x38, - 0x17, - 0x18, - 0x0C, - 0x18, - 0x13, - 0x54, - 0x54, - 0x58, - 0x54, - 0x42, - 0x45, - 0x42, - 0x45, - 0x42, - 0x42, - 0x45, - 0x42, - 0x00, - 0x05, - 0x45, - 0x00, - 0x3F, - 0x1A, - 0x27, - 0x3B, - 0x2C, - 0x27, - 0x30, - 0x2C, - 0x2C, - 0x3B, - 0x37, - 0x47, - 0x1D, - 0x34, - 0x37, - 0x1A, - 0x37, - 0x25, - 0x2C, - 0x17, - 0x18, - 0x0C, - 0x25, - 0x2B, - 0x34, - 0x1A, - 0x25, - 0x1A, - 0x25, - 0x2B, - 0x34, - 0x38, - 0x18, - 0x3F, - 0x3F, - 0x25, - 0x20, - 0x18, - 0x20, - 0x1A, - 0x42, - 0x30, - 0x30, - 0x25, - 0x2E, - 0x20, - 0x1A, - 0x27, - 0x38, - 0x1A, - 0x27, - 0x20, - 0x20, - 0x2C, - 0x42, - 0x1A, - 0x23, - 0x38, - 0x45, - 0x27, - 0x01, - 0x08, - 0x27, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xFA, - 0xD8, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xD8, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0x04, - 0xE0, - 0x00, - 0x25, - 0xE2, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xE0, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xE1, - 0xED, - 0xE1, - 0xEF, - 0xED, - 0xE9, - 0xED, - 0xED, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x0F, - 0xEE, - 0x00, - 0x06, - 0xDD, - 0xEE, - 0xE5, - 0xEE, - 0xDD, - 0xEE, - 0x07, - 0xDD, - 0x00, - 0x1C, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xE6, - 0xE6, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0x04, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0xCB, - 0xE2, - 0xE2, - 0xE2, - 0xC9, - 0x83, - 0xB4, - 0x85, - 0x77, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xB7, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0x9D, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x7C, - 0x90, - 0x7C, - 0x85, - 0x8B, - 0x85, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x91, - 0x92, - 0x91, - 0x93, - 0x88, - 0x91, - 0x85, - 0x9E, - 0x8B, - 0x93, - 0x90, - 0x8B, - 0x8B, - 0x9E, - 0x91, - 0x88, - 0x93, - 0x8B, - 0x9E, - 0x8B, - 0x9E, - 0x93, - 0xA4, - 0x9E, - 0x9D, - 0xA4, - 0x9E, - 0x8B, - 0xA0, - 0x9D, - 0x9E, - 0x9E, - 0x9E, - 0x90, - 0x9E, - 0x93, - 0x93, - 0x7E, - 0x91, - 0x93, - 0x7E, - 0x7E, - 0x75, - 0x75, - 0x6A, - 0x77, - 0x61, - 0x05, - 0x81, - 0x43, - 0x37, - 0x66, - 0x5A, - 0x58, - 0x47, - 0x47, - 0x2C, - 0x3A, - 0x42, - 0x08, - 0x53, - 0x30, - 0x2C, - 0x27, - 0x53, - 0x42, - 0x3B, - 0x3A, - 0x37, - 0x1A, - 0x1D, - 0x27, - 0x38, - 0x27, - 0x17, - 0x1D, - 0x1D, - 0x1D, - 0x18, - 0x3D, - 0x54, - 0x47, - 0x42, - 0x54, - 0x42, - 0x42, - 0x38, - 0x45, - 0x38, - 0x38, - 0x45, - 0x38, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x0C, - 0x2C, - 0x2C, - 0x45, - 0x27, - 0x3A, - 0x25, - 0x38, - 0x3B, - 0x20, - 0x37, - 0x47, - 0x2B, - 0x34, - 0x2B, - 0x1D, - 0x34, - 0x2C, - 0x27, - 0x27, - 0x1A, - 0x18, - 0x2E, - 0x1A, - 0x31, - 0x2E, - 0x25, - 0x25, - 0x2B, - 0x2B, - 0x3A, - 0x42, - 0x21, - 0x3F, - 0x34, - 0x1A, - 0x13, - 0x20, - 0x1A, - 0x3B, - 0x3D, - 0x20, - 0x30, - 0x20, - 0x20, - 0x1A, - 0x20, - 0x27, - 0x27, - 0x38, - 0x27, - 0x20, - 0x27, - 0x30, - 0x0C, - 0x0C, - 0x27, - 0x45, - 0x27, - 0x02, - 0x0C, - 0x20, - 0x13, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD8, - 0x01, - 0xDF, - 0x01, - 0xD8, - 0x05, - 0xDF, - 0x01, - 0xE0, - 0x01, - 0xDF, - 0x08, - 0xE0, - 0x06, - 0xE2, - 0x00, - 0x18, - 0xE1, - 0xE2, - 0xE1, - 0xE2, - 0xED, - 0xE2, - 0xE9, - 0xED, - 0xE1, - 0xEF, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEB, - 0x0D, - 0xEE, - 0x01, - 0xEB, - 0x06, - 0xEE, - 0x07, - 0xDD, - 0x00, - 0xA6, - 0xDE, - 0xDE, - 0xEE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xEA, - 0xDE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xEB, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0x92, - 0x92, - 0x9D, - 0x9E, - 0x7E, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0x9D, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0x9E, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x7C, - 0x8B, - 0x7C, - 0x8B, - 0x7C, - 0x88, - 0x88, - 0x88, - 0x87, - 0x91, - 0x88, - 0x88, - 0x91, - 0x88, - 0x93, - 0x88, - 0x93, - 0x9D, - 0x90, - 0x93, - 0x93, - 0x8B, - 0xA0, - 0x8B, - 0x7C, - 0x93, - 0x8B, - 0x93, - 0x7C, - 0x8B, - 0x88, - 0xAB, - 0x9E, - 0x93, - 0x9E, - 0x9E, - 0x91, - 0x93, - 0x9E, - 0x90, - 0x93, - 0x9D, - 0x93, - 0x9E, - 0x93, - 0x88, - 0x75, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x73, - 0x7C, - 0x39, - 0x5A, - 0x17, - 0x43, - 0x5A, - 0x5F, - 0x42, - 0x3B, - 0x3B, - 0x42, - 0x38, - 0x3D, - 0x30, - 0x21, - 0x2C, - 0x25, - 0x3B, - 0x38, - 0x3B, - 0x17, - 0x1D, - 0x17, - 0x1A, - 0x1D, - 0x0C, - 0x27, - 0x27, - 0x1A, - 0x2C, - 0x1D, - 0x27, - 0x0C, - 0x2C, - 0x47, - 0x50, - 0x54, - 0x06, - 0x42, - 0x00, - 0x1E, - 0x38, - 0x30, - 0x38, - 0x42, - 0x3B, - 0x45, - 0x45, - 0x38, - 0x1D, - 0x20, - 0x38, - 0x38, - 0x1D, - 0x20, - 0x38, - 0x38, - 0x3B, - 0x27, - 0x2B, - 0x37, - 0x1D, - 0x37, - 0x1D, - 0x43, - 0x2B, - 0x34, - 0x17, - 0x27, - 0x18, - 0x1A, - 0x06, - 0x25, - 0x00, - 0x22, - 0x30, - 0x2B, - 0x3A, - 0x1A, - 0x3D, - 0x27, - 0x20, - 0x0C, - 0x18, - 0x20, - 0x38, - 0x42, - 0x25, - 0x30, - 0x18, - 0x27, - 0x20, - 0x20, - 0x27, - 0x38, - 0x38, - 0x20, - 0x27, - 0x30, - 0x20, - 0x23, - 0x0C, - 0x27, - 0x27, - 0x3B, - 0x02, - 0x27, - 0x2C, - 0x0C, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x00, - 0x06, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0x07, - 0xE0, - 0x00, - 0x04, - 0xCE, - 0xE2, - 0xE2, - 0xE0, - 0x04, - 0xE2, - 0x00, - 0x15, - 0xE1, - 0xE2, - 0xE1, - 0xEF, - 0xE2, - 0xE2, - 0xE1, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xE1, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x0D, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xEB, - 0xDD, - 0xEB, - 0xEE, - 0xDE, - 0x00, - 0x06, - 0xEE, - 0x00, - 0x16, - 0xDD, - 0xEE, - 0xE5, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xEA, - 0xEA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0x05, - 0xDE, - 0x00, - 0x05, - 0xE6, - 0xE6, - 0xEB, - 0xE6, - 0xDE, - 0x00, - 0x06, - 0xEB, - 0x04, - 0xE9, - 0x00, - 0x13, - 0xEF, - 0xE9, - 0xF6, - 0xF6, - 0xE0, - 0xF6, - 0xC9, - 0xA0, - 0x9E, - 0xAD, - 0xA4, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0x00, - 0x04, - 0xAD, - 0x00, - 0xB8, - 0xB7, - 0xAD, - 0xB7, - 0xA4, - 0xA4, - 0xAB, - 0x90, - 0x9E, - 0xA0, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x93, - 0x93, - 0x8B, - 0x8B, - 0x7C, - 0x85, - 0x7C, - 0x7C, - 0x88, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0x88, - 0x91, - 0x88, - 0x93, - 0x85, - 0x93, - 0x9E, - 0x93, - 0x8B, - 0x85, - 0x85, - 0x85, - 0x93, - 0x7C, - 0x88, - 0x93, - 0x93, - 0x85, - 0x91, - 0x7E, - 0x9E, - 0x8B, - 0x93, - 0x93, - 0x91, - 0x93, - 0x93, - 0x8B, - 0x9E, - 0x93, - 0x9E, - 0x8B, - 0x9E, - 0x93, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x91, - 0x7E, - 0x88, - 0x6A, - 0x7E, - 0x6A, - 0x61, - 0x5A, - 0x7B, - 0x31, - 0x2B, - 0x5F, - 0x53, - 0x47, - 0x3B, - 0x47, - 0x3B, - 0x42, - 0x42, - 0x48, - 0x20, - 0x53, - 0x25, - 0x58, - 0x3B, - 0x2C, - 0x18, - 0x1A, - 0x1D, - 0x1A, - 0x34, - 0x0C, - 0x27, - 0x1A, - 0x27, - 0x1D, - 0x2C, - 0x1D, - 0x1D, - 0x37, - 0x27, - 0x42, - 0x47, - 0x42, - 0x54, - 0x42, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x3B, - 0x27, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x08, - 0x20, - 0x27, - 0x3A, - 0x1A, - 0x1A, - 0x30, - 0x42, - 0x3D, - 0x50, - 0x3B, - 0x1A, - 0x37, - 0x1A, - 0x37, - 0x1A, - 0x43, - 0x34, - 0x18, - 0x30, - 0x27, - 0x18, - 0x25, - 0x21, - 0x25, - 0x25, - 0x2E, - 0x2B, - 0x1D, - 0x3A, - 0x2C, - 0x38, - 0x1A, - 0x38, - 0x2C, - 0x2C, - 0x20, - 0x18, - 0x2C, - 0x30, - 0x27, - 0x2E, - 0x13, - 0x27, - 0x20, - 0x20, - 0x20, - 0x27, - 0x38, - 0x30, - 0x20, - 0x27, - 0x20, - 0x18, - 0x0C, - 0x27, - 0x2C, - 0x45, - 0x08, - 0x45, - 0x45, - 0x18, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xD8, - 0xD8, - 0xD8, - 0xF7, - 0xD8, - 0xDF, - 0xDF, - 0xDF, - 0xD8, - 0xE0, - 0xE0, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0x00, - 0x07, - 0xE0, - 0x00, - 0x18, - 0xD4, - 0xE0, - 0xD4, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE1, - 0xE1, - 0xEF, - 0xE1, - 0xEF, - 0xE1, - 0xE1, - 0xED, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE6, - 0x05, - 0xEB, - 0x00, - 0x06, - 0xEE, - 0xEB, - 0xEE, - 0xEE, - 0xEE, - 0xE5, - 0x05, - 0xEE, - 0x00, - 0x26, - 0xEB, - 0xE5, - 0xEE, - 0xEE, - 0xEE, - 0xE5, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xEE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDD, - 0xEE, - 0xDD, - 0xEE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDE, - 0xE6, - 0xEB, - 0xDE, - 0x07, - 0xEB, - 0x04, - 0xE9, - 0x05, - 0xEF, - 0x00, - 0x0F, - 0xF6, - 0xEF, - 0xE0, - 0xC9, - 0x91, - 0x93, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x99, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x93, - 0x93, - 0x8B, - 0x8B, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x7C, - 0x88, - 0x85, - 0x7C, - 0x7C, - 0x88, - 0x7E, - 0x88, - 0x87, - 0x91, - 0x88, - 0x91, - 0x88, - 0x8B, - 0x93, - 0x85, - 0x88, - 0x85, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x93, - 0x7E, - 0x88, - 0x88, - 0x75, - 0x88, - 0x88, - 0x93, - 0x91, - 0x91, - 0x85, - 0x93, - 0x91, - 0x8B, - 0x90, - 0x93, - 0x9E, - 0x93, - 0x88, - 0x85, - 0x91, - 0x85, - 0x88, - 0x85, - 0x7E, - 0x7E, - 0x7E, - 0x6A, - 0x6A, - 0x6E, - 0x71, - 0x66, - 0x43, - 0x43, - 0x63, - 0x58, - 0x53, - 0x54, - 0x42, - 0x47, - 0x3B, - 0x47, - 0x3B, - 0x42, - 0x2B, - 0x1D, - 0x3B, - 0x17, - 0x1D, - 0x1D, - 0x17, - 0x34, - 0x1D, - 0x1D, - 0x0C, - 0x1D, - 0x1A, - 0x2B, - 0x1D, - 0x1D, - 0x37, - 0x1A, - 0x2C, - 0x1D, - 0x48, - 0x54, - 0x48, - 0x42, - 0x54, - 0x42, - 0x42, - 0x38, - 0x45, - 0x42, - 0x38, - 0x38, - 0x17, - 0x3B, - 0x45, - 0x5F, - 0x0C, - 0x45, - 0x1A, - 0x1D, - 0x17, - 0x0C, - 0x30, - 0x38, - 0x42, - 0x25, - 0x43, - 0x37, - 0x1A, - 0x43, - 0x17, - 0x2B, - 0x17, - 0x3A, - 0x43, - 0x2C, - 0x47, - 0x1A, - 0x21, - 0x25, - 0x1D, - 0x21, - 0x25, - 0x1A, - 0x34, - 0x25, - 0x00, - 0x04, - 0x27, - 0x00, - 0x1C, - 0x3B, - 0x3B, - 0x38, - 0x1A, - 0x30, - 0x38, - 0x2E, - 0x20, - 0x0C, - 0x20, - 0x20, - 0x20, - 0x27, - 0x38, - 0x27, - 0x38, - 0x30, - 0x23, - 0x20, - 0x0C, - 0x0C, - 0x20, - 0x3B, - 0x45, - 0x38, - 0x45, - 0x45, - 0x27, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x00, - 0x0A, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0x06, - 0xE0, - 0x00, - 0x03, - 0xE2, - 0xE2, - 0xE0, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x0D, - 0xE1, - 0xE2, - 0xE1, - 0xEF, - 0xE1, - 0xEF, - 0xE9, - 0xE1, - 0xE9, - 0xED, - 0xEF, - 0xE9, - 0xED, - 0x00, - 0x04, - 0xE9, - 0x01, - 0xE6, - 0x01, - 0xED, - 0x07, - 0xEB, - 0x00, - 0x16, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xDE, - 0xEB, - 0xEE, - 0xE5, - 0xEE, - 0xDE, - 0xEE, - 0xE5, - 0xDD, - 0xDD, - 0xDE, - 0x05, - 0xDD, - 0x00, - 0x0C, - 0xDE, - 0xEE, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xEA, - 0xDE, - 0xEA, - 0xDD, - 0xEE, - 0xEE, - 0x04, - 0xDE, - 0x00, - 0x24, - 0xEB, - 0xEB, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xF6, - 0xE9, - 0xEF, - 0xF6, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xB4, - 0x93, - 0x9E, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0x04, - 0xAD, - 0x00, - 0x19, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0x9E, - 0xA0, - 0x93, - 0x90, - 0x91, - 0x93, - 0xA0, - 0x8B, - 0x93, - 0x8B, - 0x85, - 0x7C, - 0x7C, - 0x7C, - 0x85, - 0x7C, - 0x7E, - 0x88, - 0x7E, - 0x00, - 0x08, - 0x88, - 0x00, - 0x49, - 0x85, - 0x85, - 0x7C, - 0x88, - 0x88, - 0x7E, - 0x75, - 0x7C, - 0x88, - 0x7E, - 0x88, - 0x7E, - 0x75, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x7E, - 0x88, - 0x8B, - 0x88, - 0x88, - 0x93, - 0x8B, - 0x88, - 0x93, - 0x88, - 0x88, - 0x88, - 0x7C, - 0x88, - 0x88, - 0x88, - 0x75, - 0x87, - 0x6A, - 0x68, - 0x72, - 0x71, - 0x43, - 0x43, - 0x17, - 0x58, - 0x53, - 0x47, - 0x3B, - 0x47, - 0x3B, - 0x47, - 0x42, - 0x38, - 0x47, - 0x45, - 0x42, - 0x2B, - 0x1A, - 0x17, - 0x2B, - 0x1D, - 0x1A, - 0x25, - 0x2B, - 0x30, - 0x1D, - 0x25, - 0x1D, - 0x30, - 0x1D, - 0x27, - 0x1D, - 0x3A, - 0x2B, - 0x2C, - 0x00, - 0x05, - 0x42, - 0x00, - 0x43, - 0x38, - 0x42, - 0x38, - 0x38, - 0x38, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x1A, - 0x3B, - 0x1A, - 0x2E, - 0x20, - 0x1A, - 0x25, - 0x30, - 0x42, - 0x20, - 0x2C, - 0x2B, - 0x47, - 0x1A, - 0x34, - 0x17, - 0x2B, - 0x25, - 0x3F, - 0x31, - 0x2C, - 0x27, - 0x20, - 0x21, - 0x21, - 0x2B, - 0x17, - 0x2E, - 0x2B, - 0x27, - 0x2C, - 0x27, - 0x27, - 0x2C, - 0x38, - 0x3B, - 0x45, - 0x45, - 0x38, - 0x38, - 0x20, - 0x20, - 0x08, - 0x38, - 0x20, - 0x20, - 0x20, - 0x38, - 0x38, - 0x30, - 0x20, - 0x27, - 0x1A, - 0x18, - 0x18, - 0x27, - 0x38, - 0x00, - 0x05, - 0x45, - 0x00, - 0x00, - 0x01, - 0xF7, - 0x04, - 0xD8, - 0x06, - 0xDF, - 0x00, - 0x06, - 0xE0, - 0xE0, - 0xCE, - 0xE0, - 0xE0, - 0xCE, - 0x04, - 0xE0, - 0x00, - 0x0A, - 0xD4, - 0xE0, - 0xE2, - 0xD4, - 0xE0, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0x04, - 0xE1, - 0x00, - 0x1F, - 0xEF, - 0xE1, - 0xE1, - 0xE9, - 0xED, - 0xDC, - 0xED, - 0xE9, - 0xE9, - 0xE6, - 0xE9, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xDE, - 0xDE, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xEE, - 0xEB, - 0xE5, - 0x00, - 0x04, - 0xEE, - 0x00, - 0x0B, - 0xE5, - 0xEE, - 0xDE, - 0xEE, - 0xDE, - 0xDD, - 0xE5, - 0xDE, - 0xE5, - 0xDD, - 0xE5, - 0x00, - 0x05, - 0xDD, - 0x00, - 0x0C, - 0xEE, - 0xDD, - 0xDD, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0x06, - 0xEB, - 0x00, - 0x04, - 0xEE, - 0xEB, - 0xE6, - 0xE6, - 0x04, - 0xE9, - 0x00, - 0x14, - 0xF6, - 0xEF, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xC9, - 0x8B, - 0x93, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0xB7, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x93, - 0x90, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0xA0, - 0x93, - 0x93, - 0x85, - 0x85, - 0x85, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x7C, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x93, - 0x93, - 0x85, - 0x7C, - 0x7E, - 0x7C, - 0x7C, - 0x7E, - 0x75, - 0x77, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x7E, - 0x7E, - 0x77, - 0x75, - 0x7C, - 0x88, - 0x7E, - 0x85, - 0x88, - 0x85, - 0x85, - 0x85, - 0x88, - 0x85, - 0x93, - 0x75, - 0x88, - 0x7E, - 0x88, - 0x7C, - 0x7C, - 0x88, - 0x75, - 0x75, - 0x77, - 0x61, - 0x72, - 0x6F, - 0x6B, - 0x65, - 0x37, - 0x63, - 0x53, - 0x54, - 0x47, - 0x47, - 0x42, - 0x47, - 0x3B, - 0x47, - 0x47, - 0x58, - 0x53, - 0x2B, - 0x1D, - 0x20, - 0x17, - 0x2B, - 0x34, - 0x1D, - 0x27, - 0x2E, - 0x1A, - 0x1D, - 0x3A, - 0x27, - 0x3A, - 0x27, - 0x2B, - 0x2B, - 0x1D, - 0x1A, - 0x54, - 0x42, - 0x34, - 0x54, - 0x42, - 0x42, - 0x38, - 0x38, - 0x38, - 0x3A, - 0x27, - 0x45, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x0C, - 0x2B, - 0x2B, - 0x25, - 0x31, - 0x2E, - 0x27, - 0x38, - 0x42, - 0x37, - 0x2B, - 0x34, - 0x37, - 0x1D, - 0x31, - 0x31, - 0x31, - 0x17, - 0x31, - 0x17, - 0x43, - 0x2C, - 0x20, - 0x2E, - 0x1A, - 0x21, - 0x1D, - 0x27, - 0x2C, - 0x2C, - 0x20, - 0x3B, - 0x42, - 0x38, - 0x45, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x27, - 0x23, - 0x07, - 0x45, - 0x20, - 0x20, - 0x27, - 0x38, - 0x38, - 0x38, - 0x2C, - 0x3B, - 0x20, - 0x0C, - 0x20, - 0x38, - 0x38, - 0x27, - 0x45, - 0x45, - 0x45, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x28, - 0xA9, - 0xFA, - 0xD8, - 0xDF, - 0xD8, - 0xD8, - 0xDF, - 0xD8, - 0xCE, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xCE, - 0xE0, - 0xE0, - 0xCE, - 0xE2, - 0xE0, - 0xCE, - 0xE2, - 0xE0, - 0xE2, - 0xD4, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE2, - 0xEF, - 0xED, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xE6, - 0xEF, - 0x05, - 0xE9, - 0x00, - 0x03, - 0xE6, - 0xE9, - 0xE9, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x21, - 0xEE, - 0xEB, - 0xE5, - 0xE5, - 0xEB, - 0xE5, - 0xEB, - 0xEE, - 0xDE, - 0xEB, - 0xE5, - 0xEE, - 0xDE, - 0xEE, - 0xE5, - 0xDE, - 0xEE, - 0xEE, - 0xEE, - 0xE5, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xE5, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xEA, - 0xE5, - 0x00, - 0x04, - 0xDD, - 0x00, - 0x12, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xEB, - 0xDE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xEE, - 0xE9, - 0xEB, - 0x05, - 0xE9, - 0x00, - 0x26, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xF5, - 0xA0, - 0x93, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0x9E, - 0xA4, - 0x90, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0xA0, - 0xAB, - 0x93, - 0x93, - 0x9E, - 0x04, - 0x85, - 0x00, - 0x21, - 0x7E, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7C, - 0x7E, - 0x7C, - 0x7E, - 0x6E, - 0x77, - 0x75, - 0x87, - 0x7E, - 0x75, - 0x77, - 0x7E, - 0x6E, - 0x77, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x80, - 0x88, - 0x85, - 0x88, - 0x85, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x7C, - 0x88, - 0x75, - 0x7E, - 0x6E, - 0x77, - 0x68, - 0x6A, - 0x61, - 0x66, - 0x43, - 0x43, - 0x47, - 0x53, - 0x54, - 0x47, - 0x42, - 0x54, - 0x47, - 0x54, - 0x42, - 0x47, - 0x58, - 0x47, - 0x2B, - 0x25, - 0x31, - 0x1D, - 0x1A, - 0x25, - 0x34, - 0x30, - 0x34, - 0x25, - 0x38, - 0x2B, - 0x3A, - 0x30, - 0x2C, - 0x27, - 0x1D, - 0x3B, - 0x27, - 0x47, - 0x3A, - 0x42, - 0x34, - 0x42, - 0x3D, - 0x38, - 0x42, - 0x27, - 0x38, - 0x38, - 0x2C, - 0x45, - 0x45, - 0x45, - 0x53, - 0x08, - 0x43, - 0x0C, - 0x3D, - 0x31, - 0x0C, - 0x30, - 0x30, - 0x42, - 0x20, - 0x47, - 0x37, - 0x1A, - 0x31, - 0x21, - 0x17, - 0x31, - 0x2B, - 0x21, - 0x2B, - 0x3B, - 0x2B, - 0x38, - 0x21, - 0x1D, - 0x1A, - 0x27, - 0x3B, - 0x3B, - 0x47, - 0x42, - 0x38, - 0x3D, - 0x38, - 0x3B, - 0x27, - 0x38, - 0x38, - 0x38, - 0x20, - 0x18, - 0x07, - 0x38, - 0x20, - 0x20, - 0x20, - 0x30, - 0x45, - 0x20, - 0x27, - 0x42, - 0x20, - 0x0C, - 0x27, - 0x3B, - 0x27, - 0x45, - 0x45, - 0x45, - 0x2C, - 0x27, - 0x00, - 0x00, - 0x01, - 0xBE, - 0x04, - 0xD8, - 0x00, - 0x04, - 0xDF, - 0xDF, - 0xDF, - 0xD8, - 0x04, - 0xDF, - 0x00, - 0x25, - 0xCE, - 0xDF, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xCE, - 0xE2, - 0xCE, - 0xE1, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE9, - 0xE1, - 0xED, - 0xE2, - 0xDC, - 0xE9, - 0xD6, - 0xED, - 0xE9, - 0xE9, - 0xE6, - 0xEB, - 0xDC, - 0xEB, - 0xE9, - 0x00, - 0x06, - 0xEB, - 0x00, - 0x24, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0xDE, - 0xEB, - 0xEB, - 0xE5, - 0xDE, - 0xEE, - 0xEB, - 0xEE, - 0xE5, - 0xEB, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEE, - 0xDD, - 0xDD, - 0xEE, - 0x04, - 0xDE, - 0x00, - 0x22, - 0xEB, - 0xDE, - 0xDE, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xB4, - 0x9E, - 0x9E, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x37, - 0xB7, - 0xAB, - 0x90, - 0xAB, - 0x9E, - 0x9D, - 0x8B, - 0x91, - 0x9E, - 0x93, - 0x91, - 0x93, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x93, - 0x85, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x7E, - 0x88, - 0x75, - 0x6E, - 0x7E, - 0x6E, - 0x87, - 0x7E, - 0x7E, - 0x6E, - 0x6E, - 0x6A, - 0x7E, - 0x77, - 0x6E, - 0x7C, - 0x75, - 0x75, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x15, - 0x85, - 0x7E, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x75, - 0x88, - 0x7C, - 0x6E, - 0x6E, - 0x72, - 0x61, - 0x77, - 0x61, - 0x5A, - 0x43, - 0x5A, - 0x47, - 0x47, - 0x54, - 0x00, - 0x06, - 0x47, - 0x00, - 0x63, - 0x45, - 0x45, - 0x3F, - 0x43, - 0x1A, - 0x21, - 0x25, - 0x2B, - 0x25, - 0x2B, - 0x2C, - 0x0C, - 0x48, - 0x27, - 0x3A, - 0x1D, - 0x3A, - 0x3A, - 0x25, - 0x30, - 0x34, - 0x1D, - 0x47, - 0x47, - 0x42, - 0x3D, - 0x3F, - 0x38, - 0x42, - 0x38, - 0x38, - 0x38, - 0x45, - 0x27, - 0x27, - 0x3B, - 0x45, - 0x45, - 0x0C, - 0x31, - 0x18, - 0x31, - 0x21, - 0x0C, - 0x30, - 0x30, - 0x42, - 0x3D, - 0x17, - 0x37, - 0x37, - 0x1A, - 0x31, - 0x21, - 0x17, - 0x21, - 0x2B, - 0x0C, - 0x37, - 0x27, - 0x37, - 0x30, - 0x18, - 0x1D, - 0x2C, - 0x37, - 0x3A, - 0x47, - 0x45, - 0x37, - 0x42, - 0x3D, - 0x27, - 0x3B, - 0x27, - 0x45, - 0x3D, - 0x20, - 0x18, - 0x08, - 0x38, - 0x20, - 0x20, - 0x20, - 0x38, - 0x38, - 0x27, - 0x27, - 0x3B, - 0x38, - 0x23, - 0x27, - 0x38, - 0x27, - 0x1D, - 0x45, - 0x66, - 0x3B, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0xFA, - 0xD8, - 0xD8, - 0xD8, - 0xDF, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xDF, - 0xCE, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xE0, - 0xCE, - 0xE0, - 0xCE, - 0xCE, - 0xCE, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xD4, - 0x04, - 0xE2, - 0x00, - 0x1D, - 0xE1, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xE9, - 0xE1, - 0xED, - 0xE9, - 0xDC, - 0xE9, - 0xE9, - 0xDC, - 0xDC, - 0xEB, - 0xE9, - 0xDB, - 0xEB, - 0xDB, - 0xEB, - 0xDB, - 0xEB, - 0xEE, - 0xEB, - 0xDE, - 0xEB, - 0x00, - 0x06, - 0xDE, - 0x00, - 0x24, - 0xEE, - 0xE5, - 0xEE, - 0xE5, - 0xEE, - 0xDE, - 0xE5, - 0xEE, - 0xDB, - 0xDE, - 0xEE, - 0xE5, - 0xDD, - 0xDD, - 0xE5, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xE5, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xEA, - 0xDD, - 0xEE, - 0xEE, - 0xDE, - 0xE5, - 0xDE, - 0xDD, - 0xEB, - 0xDD, - 0xDE, - 0xEE, - 0x06, - 0xEB, - 0x00, - 0x2F, - 0xE9, - 0xE9, - 0xE9, - 0xED, - 0xF6, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xEF, - 0xB4, - 0x9E, - 0x9E, - 0x9E, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0x9D, - 0x9E, - 0x9D, - 0x8B, - 0x9E, - 0x93, - 0x91, - 0x91, - 0x8B, - 0x9E, - 0xA0, - 0xAB, - 0xA0, - 0x85, - 0x93, - 0x85, - 0x93, - 0x00, - 0x05, - 0x7C, - 0x00, - 0xA1, - 0x75, - 0x7C, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x7E, - 0x88, - 0x7E, - 0x91, - 0x75, - 0x6E, - 0x6E, - 0x87, - 0x7E, - 0x7E, - 0x92, - 0x6E, - 0x77, - 0x6A, - 0x77, - 0x7E, - 0x6A, - 0x75, - 0x6E, - 0x6E, - 0x6E, - 0x7C, - 0x6E, - 0x7E, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x6E, - 0x7E, - 0x7C, - 0x75, - 0x7C, - 0x77, - 0x6A, - 0x6E, - 0x68, - 0x6A, - 0x61, - 0x65, - 0x43, - 0x5A, - 0x43, - 0x54, - 0x54, - 0x54, - 0x42, - 0x47, - 0x47, - 0x42, - 0x47, - 0x47, - 0x47, - 0x3F, - 0x34, - 0x25, - 0x25, - 0x21, - 0x25, - 0x2B, - 0x34, - 0x42, - 0x21, - 0x30, - 0x30, - 0x30, - 0x42, - 0x3D, - 0x30, - 0x2B, - 0x3A, - 0x27, - 0x34, - 0x27, - 0x34, - 0x3D, - 0x3D, - 0x1D, - 0x48, - 0x25, - 0x42, - 0x38, - 0x3B, - 0x38, - 0x45, - 0x38, - 0x2C, - 0x45, - 0x3B, - 0x47, - 0x0C, - 0x1D, - 0x0C, - 0x2B, - 0x2E, - 0x2E, - 0x3D, - 0x30, - 0x42, - 0x25, - 0x37, - 0x31, - 0x43, - 0x1A, - 0x31, - 0x1D, - 0x31, - 0x17, - 0x18, - 0x2B, - 0x37, - 0x25, - 0x3A, - 0x2C, - 0x1D, - 0x2C, - 0x3B, - 0x34, - 0x53, - 0x47, - 0x3A, - 0x3A, - 0x38, - 0x38, - 0x27, - 0x3B, - 0x3B, - 0x45, - 0x1A, - 0x13, - 0x08, - 0x20, - 0x30, - 0x20, - 0x27, - 0x38, - 0x42, - 0x27, - 0x25, - 0x3B, - 0x38, - 0x1A, - 0x38, - 0x27, - 0x20, - 0x18, - 0x5F, - 0x5F, - 0x20, - 0x02, - 0x00, - 0x00, - 0x00, - 0x01, - 0xBE, - 0x05, - 0xD8, - 0x01, - 0xDF, - 0x01, - 0xD8, - 0x04, - 0xDF, - 0x00, - 0x44, - 0xE0, - 0xCE, - 0xDF, - 0xCE, - 0xE0, - 0xCE, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xD4, - 0xE0, - 0xE0, - 0xE2, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xED, - 0xE1, - 0xE6, - 0xED, - 0xD6, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xE9, - 0xE6, - 0xE9, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xDB, - 0xE5, - 0xEB, - 0xDE, - 0xDE, - 0xEE, - 0xDE, - 0xE5, - 0xEB, - 0xDE, - 0xDE, - 0xE5, - 0xEE, - 0xE5, - 0xDE, - 0xEE, - 0xDD, - 0xE5, - 0xDE, - 0xE5, - 0xDD, - 0xE5, - 0x04, - 0xDD, - 0x00, - 0x07, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0x00, - 0x07, - 0xDE, - 0x00, - 0x0A, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0x04, - 0xE9, - 0x00, - 0x0A, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xE0, - 0xF6, - 0xAB, - 0x9E, - 0xAB, - 0x05, - 0xA4, - 0x00, - 0xC1, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAB, - 0x90, - 0xA4, - 0x90, - 0xA0, - 0x91, - 0x93, - 0x9E, - 0x91, - 0xA0, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x88, - 0x7C, - 0x7C, - 0x7E, - 0x7C, - 0x75, - 0x75, - 0x6E, - 0x7C, - 0x6E, - 0x6A, - 0x75, - 0x75, - 0x7E, - 0x75, - 0x7C, - 0x87, - 0x7C, - 0x7E, - 0x75, - 0x85, - 0x7E, - 0x6E, - 0x75, - 0x87, - 0x7E, - 0x7E, - 0x88, - 0x77, - 0x6A, - 0x77, - 0x7E, - 0x72, - 0x6A, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x7C, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x6A, - 0x6A, - 0x61, - 0x61, - 0x68, - 0x51, - 0x71, - 0x5A, - 0x37, - 0x50, - 0x58, - 0x3A, - 0x54, - 0x54, - 0x38, - 0x47, - 0x47, - 0x53, - 0x3B, - 0x43, - 0x43, - 0x1A, - 0x2E, - 0x31, - 0x1D, - 0x2E, - 0x25, - 0x2B, - 0x2B, - 0x1A, - 0x3A, - 0x38, - 0x3D, - 0x30, - 0x3D, - 0x3A, - 0x25, - 0x30, - 0x30, - 0x2B, - 0x27, - 0x2C, - 0x2C, - 0x42, - 0x3D, - 0x3D, - 0x27, - 0x38, - 0x27, - 0x38, - 0x38, - 0x3B, - 0x45, - 0x42, - 0x45, - 0x38, - 0x42, - 0x0C, - 0x3F, - 0x21, - 0x34, - 0x31, - 0x18, - 0x25, - 0x3D, - 0x3D, - 0x1A, - 0x37, - 0x37, - 0x17, - 0x31, - 0x17, - 0x21, - 0x17, - 0x37, - 0x21, - 0x2B, - 0x31, - 0x1D, - 0x2B, - 0x3B, - 0x2C, - 0x2C, - 0x2B, - 0x2C, - 0x38, - 0x53, - 0x47, - 0x30, - 0x38, - 0x2C, - 0x2C, - 0x38, - 0x20, - 0x2C, - 0x3B, - 0x13, - 0x08, - 0x38, - 0x38, - 0x20, - 0x20, - 0x2C, - 0x3B, - 0x27, - 0x30, - 0x45, - 0x3B, - 0x20, - 0x42, - 0x3B, - 0x1A, - 0x23, - 0x5F, - 0x5F, - 0x07, - 0x01, - 0x00, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x00, - 0x0A, - 0xC6, - 0xDF, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xCE, - 0xDF, - 0xCE, - 0xDF, - 0x04, - 0xE0, - 0x00, - 0x26, - 0xCE, - 0xCE, - 0xCE, - 0xE2, - 0xCE, - 0xE2, - 0xD4, - 0xE1, - 0xD4, - 0xE1, - 0xE2, - 0xE2, - 0xE2, - 0xE1, - 0xEF, - 0xE2, - 0xEF, - 0xD6, - 0xE1, - 0xE9, - 0xE1, - 0xE9, - 0xD6, - 0xED, - 0xE9, - 0xED, - 0xE6, - 0xE9, - 0xE6, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xEB, - 0xDE, - 0xEB, - 0xE6, - 0x05, - 0xDE, - 0x00, - 0x27, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xE5, - 0xEE, - 0xE5, - 0xEB, - 0xEB, - 0xE5, - 0xE5, - 0xDD, - 0xDE, - 0xE5, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xDA, - 0xEA, - 0xE5, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xEE, - 0xDE, - 0xDE, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x10, - 0xE9, - 0xE9, - 0xE9, - 0xED, - 0xEB, - 0xF6, - 0xEF, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xB4, - 0x9E, - 0x9E, - 0x04, - 0xA4, - 0x00, - 0x44, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0xAB, - 0x90, - 0x9D, - 0xAB, - 0xAB, - 0x93, - 0x93, - 0x93, - 0x91, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x9E, - 0x93, - 0x7C, - 0x7C, - 0x91, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x75, - 0x77, - 0x75, - 0x7E, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x6E, - 0x75, - 0x7E, - 0x77, - 0x61, - 0x6E, - 0x87, - 0x75, - 0x61, - 0x6E, - 0x7C, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x7C, - 0x04, - 0x6E, - 0x01, - 0x6A, - 0x06, - 0x6E, - 0x00, - 0x73, - 0x61, - 0x68, - 0x61, - 0x61, - 0x62, - 0x5A, - 0x43, - 0x54, - 0x63, - 0x54, - 0x54, - 0x42, - 0x47, - 0x47, - 0x47, - 0x5F, - 0x25, - 0x43, - 0x1A, - 0x37, - 0x21, - 0x1A, - 0x31, - 0x25, - 0x25, - 0x3A, - 0x42, - 0x1A, - 0x58, - 0x27, - 0x30, - 0x42, - 0x44, - 0x2B, - 0x30, - 0x2B, - 0x50, - 0x2B, - 0x30, - 0x27, - 0x2B, - 0x48, - 0x42, - 0x38, - 0x3D, - 0x1A, - 0x42, - 0x27, - 0x38, - 0x3B, - 0x45, - 0x2C, - 0x3B, - 0x54, - 0x3D, - 0x3F, - 0x0C, - 0x34, - 0x31, - 0x30, - 0x0C, - 0x2E, - 0x3A, - 0x3D, - 0x42, - 0x1D, - 0x25, - 0x43, - 0x21, - 0x2B, - 0x21, - 0x34, - 0x17, - 0x21, - 0x31, - 0x2B, - 0x21, - 0x2B, - 0x2C, - 0x3B, - 0x1D, - 0x43, - 0x3A, - 0x48, - 0x45, - 0x42, - 0x27, - 0x27, - 0x27, - 0x38, - 0x3B, - 0x1A, - 0x38, - 0x45, - 0x23, - 0x07, - 0x2C, - 0x20, - 0x20, - 0x2E, - 0x2C, - 0x3B, - 0x20, - 0x27, - 0x3B, - 0x53, - 0x20, - 0x38, - 0x38, - 0x20, - 0x20, - 0x66, - 0x27, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xBE, - 0xBD, - 0xF4, - 0x00, - 0x04, - 0xD8, - 0x05, - 0xDF, - 0x00, - 0x15, - 0xCE, - 0xDF, - 0xCE, - 0xCE, - 0xDF, - 0xCE, - 0xCE, - 0xE0, - 0xE2, - 0xCE, - 0xCE, - 0xE2, - 0xCE, - 0xE2, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xCA, - 0xE1, - 0xE2, - 0x00, - 0x04, - 0xE1, - 0x00, - 0x5D, - 0xE9, - 0xE1, - 0xE9, - 0xEF, - 0xE9, - 0xDC, - 0xED, - 0xED, - 0xDC, - 0xDC, - 0xEB, - 0xE6, - 0xDC, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xEB, - 0xDB, - 0xDE, - 0xDB, - 0xEB, - 0xDB, - 0xDB, - 0xEE, - 0xDE, - 0xE5, - 0xEB, - 0xE5, - 0xEB, - 0xE5, - 0xEE, - 0xE5, - 0xDE, - 0xE5, - 0xDE, - 0xE5, - 0xEE, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xDD, - 0xDA, - 0xEA, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xE5, - 0xEE, - 0xE5, - 0xDD, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xEE, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xED, - 0xE9, - 0xF6, - 0xE9, - 0xEF, - 0xEF, - 0xF6, - 0xF6, - 0xE0, - 0xF6, - 0xEF, - 0x90, - 0x9E, - 0x9E, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0x9D, - 0xAD, - 0x00, - 0x06, - 0xB7, - 0x00, - 0xB8, - 0xAB, - 0xAB, - 0x9E, - 0xAD, - 0xAB, - 0x9E, - 0x93, - 0xA0, - 0x9E, - 0x93, - 0x9E, - 0xA0, - 0xAB, - 0xA0, - 0x93, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x85, - 0x91, - 0x75, - 0x88, - 0x75, - 0x7C, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x7E, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x75, - 0x7C, - 0x75, - 0x6E, - 0x75, - 0x7E, - 0x7C, - 0x6A, - 0x7E, - 0x75, - 0x75, - 0x61, - 0x77, - 0x75, - 0x6A, - 0x61, - 0x75, - 0x75, - 0x61, - 0x6A, - 0x6E, - 0x6A, - 0x6E, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x6E, - 0x6A, - 0x6A, - 0x6E, - 0x6E, - 0x61, - 0x6A, - 0x61, - 0x61, - 0x68, - 0x51, - 0x6F, - 0x45, - 0x58, - 0x50, - 0x63, - 0x54, - 0x37, - 0x50, - 0x3B, - 0x42, - 0x47, - 0x53, - 0x34, - 0x1D, - 0x3D, - 0x1D, - 0x34, - 0x2B, - 0x31, - 0x25, - 0x34, - 0x30, - 0x38, - 0x1D, - 0x27, - 0x47, - 0x30, - 0x30, - 0x2C, - 0x3D, - 0x3A, - 0x30, - 0x2E, - 0x2B, - 0x43, - 0x3B, - 0x37, - 0x34, - 0x42, - 0x42, - 0x20, - 0x48, - 0x38, - 0x42, - 0x38, - 0x3B, - 0x38, - 0x45, - 0x45, - 0x47, - 0x30, - 0x30, - 0x1D, - 0x21, - 0x1D, - 0x34, - 0x23, - 0x23, - 0x34, - 0x30, - 0x38, - 0x25, - 0x47, - 0x2B, - 0x25, - 0x1D, - 0x31, - 0x17, - 0x21, - 0x17, - 0x18, - 0x21, - 0x2B, - 0x34, - 0x2C, - 0x47, - 0x25, - 0x48, - 0x3F, - 0x3A, - 0x54, - 0x2C, - 0x3B, - 0x2C, - 0x20, - 0x38, - 0x3A, - 0x20, - 0x45, - 0x38, - 0x27, - 0x04, - 0x45, - 0x27, - 0x20, - 0x20, - 0x38, - 0x38, - 0x27, - 0x27, - 0x45, - 0x47, - 0x38, - 0x27, - 0x45, - 0x27, - 0x42, - 0x5F, - 0x02, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD8, - 0xD8, - 0xBE, - 0x00, - 0x04, - 0xD8, - 0x00, - 0x09, - 0xDF, - 0xC6, - 0xDF, - 0xCE, - 0xDF, - 0xDF, - 0xDF, - 0xCE, - 0xDF, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x2A, - 0xE0, - 0xCE, - 0xE0, - 0xD4, - 0xE0, - 0xD4, - 0xCE, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xEF, - 0xEF, - 0xE1, - 0xD6, - 0xDC, - 0xE1, - 0xED, - 0xDC, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xEB, - 0xDB, - 0xE6, - 0xE6, - 0xDB, - 0xDE, - 0xEB, - 0xDB, - 0xEB, - 0x04, - 0xDE, - 0x00, - 0x2F, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xDB, - 0xEB, - 0xE5, - 0xDE, - 0xDB, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xE5, - 0xEA, - 0xDD, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xEB, - 0xEE, - 0xEE, - 0xEB, - 0xEB, - 0xE6, - 0xE9, - 0xEB, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xF6, - 0xEF, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x0D, - 0xE0, - 0xE9, - 0xC9, - 0x93, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x00, - 0x05, - 0xB7, - 0x00, - 0x1B, - 0xB4, - 0xAB, - 0x9E, - 0xA4, - 0xAD, - 0x9E, - 0x9E, - 0x93, - 0x9E, - 0x9E, - 0xA0, - 0xA0, - 0x9E, - 0xA0, - 0xAB, - 0x9E, - 0xAB, - 0x91, - 0x85, - 0xA0, - 0x8B, - 0x88, - 0x85, - 0x6E, - 0x85, - 0x7E, - 0x75, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x9A, - 0x75, - 0x75, - 0x6E, - 0x7C, - 0x77, - 0x75, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x85, - 0x7E, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x6A, - 0x6E, - 0x7E, - 0x61, - 0x7E, - 0x75, - 0x6E, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x6E, - 0x61, - 0x6A, - 0x6A, - 0x61, - 0x6A, - 0x6A, - 0x6A, - 0x61, - 0x6A, - 0x61, - 0x68, - 0x5E, - 0x61, - 0x61, - 0x62, - 0x58, - 0x5A, - 0x58, - 0x6B, - 0x54, - 0x54, - 0x42, - 0x50, - 0x47, - 0x47, - 0x5A, - 0x25, - 0x27, - 0x20, - 0x21, - 0x25, - 0x25, - 0x25, - 0x34, - 0x25, - 0x3A, - 0x54, - 0x18, - 0x38, - 0x30, - 0x3D, - 0x3D, - 0x30, - 0x30, - 0x2B, - 0x25, - 0x3F, - 0x48, - 0x30, - 0x53, - 0x53, - 0x07, - 0x2B, - 0x42, - 0x48, - 0x1A, - 0x42, - 0x2C, - 0x42, - 0x38, - 0x3B, - 0x38, - 0x53, - 0x38, - 0x3A, - 0x34, - 0x2E, - 0x1A, - 0x31, - 0x34, - 0x3D, - 0x0C, - 0x2E, - 0x30, - 0x38, - 0x42, - 0x1D, - 0x34, - 0x3F, - 0x17, - 0x17, - 0x18, - 0x21, - 0x17, - 0x2B, - 0x1D, - 0x17, - 0x21, - 0x2C, - 0x3B, - 0x3A, - 0x34, - 0x34, - 0x47, - 0x45, - 0x2C, - 0x27, - 0x2C, - 0x3A, - 0x3B, - 0x47, - 0x42, - 0x38, - 0x38, - 0x1A, - 0x13, - 0x3B, - 0x20, - 0x30, - 0x30, - 0x3A, - 0x45, - 0x38, - 0x3A, - 0x45, - 0x45, - 0x30, - 0x27, - 0x5F, - 0x38, - 0x45, - 0x20, - 0x00, - 0x03, - 0x02, - 0x00, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xBE, - 0x04, - 0xD8, - 0x00, - 0x29, - 0xC6, - 0xD8, - 0xDF, - 0xDF, - 0xD8, - 0xDF, - 0xC8, - 0xE0, - 0xDF, - 0xCE, - 0xCE, - 0xE0, - 0xE0, - 0xCE, - 0xCE, - 0xE0, - 0xD4, - 0xE0, - 0xE2, - 0xCE, - 0xE1, - 0xE0, - 0xE1, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xEF, - 0xED, - 0xE1, - 0xE1, - 0xD6, - 0xE9, - 0xE1, - 0xE1, - 0xE6, - 0xDC, - 0xEF, - 0xDC, - 0xE6, - 0xDC, - 0x00, - 0x06, - 0xE6, - 0x00, - 0x91, - 0xDB, - 0xE6, - 0xEB, - 0xDB, - 0xE6, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xDE, - 0xDB, - 0xE5, - 0xDE, - 0xEB, - 0xEB, - 0xDB, - 0xE5, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xDE, - 0xDE, - 0xDD, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xEA, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xDD, - 0xE5, - 0xEE, - 0xDE, - 0xDE, - 0xEE, - 0xEE, - 0xE5, - 0xEB, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xED, - 0xED, - 0xEF, - 0xF6, - 0xE9, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xE9, - 0xC9, - 0xA4, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xB4, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0x9E, - 0x93, - 0x9E, - 0xA0, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0x93, - 0x91, - 0xA0, - 0x85, - 0x7E, - 0x7C, - 0x87, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x6E, - 0x6E, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x6E, - 0x75, - 0x7E, - 0x6E, - 0x6E, - 0x61, - 0x75, - 0x75, - 0x6A, - 0x6A, - 0x75, - 0x75, - 0x77, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6A, - 0x61, - 0x6A, - 0x00, - 0x04, - 0x61, - 0x00, - 0x76, - 0x6A, - 0x61, - 0x61, - 0x5E, - 0x68, - 0x51, - 0x61, - 0x60, - 0x6B, - 0x43, - 0x43, - 0x58, - 0x58, - 0x47, - 0x50, - 0x47, - 0x47, - 0x3B, - 0x63, - 0x2B, - 0x37, - 0x1A, - 0x1D, - 0x31, - 0x31, - 0x25, - 0x2B, - 0x34, - 0x38, - 0x38, - 0x1D, - 0x47, - 0x38, - 0x30, - 0x27, - 0x3D, - 0x3A, - 0x3D, - 0x3A, - 0x2B, - 0x30, - 0x25, - 0x47, - 0x47, - 0x18, - 0x04, - 0x37, - 0x3B, - 0x34, - 0x25, - 0x42, - 0x38, - 0x42, - 0x27, - 0x3B, - 0x45, - 0x42, - 0x3A, - 0x34, - 0x3D, - 0x21, - 0x17, - 0x25, - 0x2E, - 0x30, - 0x18, - 0x30, - 0x30, - 0x42, - 0x1A, - 0x43, - 0x17, - 0x2B, - 0x21, - 0x37, - 0x17, - 0x37, - 0x0C, - 0x31, - 0x21, - 0x25, - 0x3B, - 0x47, - 0x48, - 0x21, - 0x3A, - 0x30, - 0x2B, - 0x3B, - 0x38, - 0x38, - 0x38, - 0x42, - 0x30, - 0x42, - 0x30, - 0x30, - 0x23, - 0x1A, - 0x27, - 0x30, - 0x2E, - 0x30, - 0x3B, - 0x3B, - 0x38, - 0x30, - 0x45, - 0x47, - 0x30, - 0x17, - 0x45, - 0x27, - 0x3B, - 0x04, - 0x01, - 0x01, - 0x09, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xBD, - 0xD8, - 0xBE, - 0xFA, - 0xD8, - 0xD8, - 0xC6, - 0xDF, - 0xC6, - 0xDF, - 0xD8, - 0xC8, - 0xDF, - 0xDF, - 0xC8, - 0xDF, - 0xDF, - 0xE0, - 0xCE, - 0xCE, - 0xE0, - 0xCE, - 0xCE, - 0xCE, - 0xE2, - 0xE2, - 0xCE, - 0xD4, - 0xD4, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x29, - 0xCA, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0xE1, - 0xE9, - 0xD6, - 0xEF, - 0xED, - 0xD6, - 0xE9, - 0xDC, - 0xE9, - 0xE6, - 0xE6, - 0xDC, - 0xE6, - 0xDB, - 0xE6, - 0xDB, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0x00, - 0x05, - 0xE5, - 0x00, - 0x2E, - 0xDA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xDD, - 0xDD, - 0xE5, - 0xEA, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xDD, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xE5, - 0xEE, - 0xEB, - 0xF8, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEF, - 0xED, - 0xED, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xDE, - 0xC9, - 0xA0, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0x04, - 0x9D, - 0x00, - 0x45, - 0xA4, - 0xB7, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xAB, - 0xA4, - 0xAB, - 0x9E, - 0x93, - 0xAB, - 0x9D, - 0x93, - 0x93, - 0xAB, - 0x9E, - 0xAB, - 0xAB, - 0xA0, - 0x93, - 0x9E, - 0x9E, - 0x88, - 0x91, - 0x88, - 0x7E, - 0x85, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x6E, - 0x7C, - 0x6E, - 0x7E, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7C, - 0x6E, - 0x85, - 0x6E, - 0x7C, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7E, - 0x6E, - 0x7C, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x61, - 0x61, - 0x77, - 0x6A, - 0x61, - 0x6A, - 0x6A, - 0x68, - 0x00, - 0x06, - 0x61, - 0x00, - 0x74, - 0x5E, - 0x61, - 0x5E, - 0x51, - 0x5E, - 0x65, - 0x5A, - 0x54, - 0x43, - 0x50, - 0x63, - 0x53, - 0x48, - 0x47, - 0x47, - 0x58, - 0x50, - 0x43, - 0x42, - 0x2B, - 0x31, - 0x25, - 0x31, - 0x2B, - 0x30, - 0x30, - 0x38, - 0x47, - 0x20, - 0x27, - 0x42, - 0x42, - 0x3D, - 0x3D, - 0x30, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x48, - 0x27, - 0x3B, - 0x47, - 0x01, - 0x21, - 0x3B, - 0x3D, - 0x30, - 0x1D, - 0x3B, - 0x3B, - 0x3B, - 0x3A, - 0x5F, - 0x47, - 0x47, - 0x30, - 0x3D, - 0x2E, - 0x17, - 0x31, - 0x34, - 0x30, - 0x0C, - 0x20, - 0x27, - 0x38, - 0x2C, - 0x17, - 0x37, - 0x2B, - 0x25, - 0x21, - 0x17, - 0x18, - 0x21, - 0x31, - 0x17, - 0x17, - 0x31, - 0x42, - 0x3A, - 0x30, - 0x34, - 0x37, - 0x1A, - 0x38, - 0x3A, - 0x42, - 0x38, - 0x3A, - 0x48, - 0x38, - 0x21, - 0x30, - 0x18, - 0x38, - 0x1A, - 0x30, - 0x30, - 0x3A, - 0x3B, - 0x45, - 0x38, - 0x38, - 0x53, - 0x42, - 0x0C, - 0x17, - 0x45, - 0x38, - 0x20, - 0x00, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x09, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xD8, - 0xC6, - 0x00, - 0x04, - 0xDF, - 0x01, - 0xCE, - 0x01, - 0xDF, - 0x05, - 0xCE, - 0x00, - 0x55, - 0xE0, - 0xCE, - 0xD4, - 0xE0, - 0xD4, - 0xCE, - 0xCE, - 0xE2, - 0xE2, - 0xD4, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xD6, - 0xE9, - 0xD6, - 0xE9, - 0xE9, - 0xE6, - 0xED, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xE6, - 0xE6, - 0xDB, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xDB, - 0xDB, - 0xDB, - 0xDE, - 0xE5, - 0xDB, - 0xE5, - 0xDE, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0xE5, - 0xE5, - 0xE5, - 0xDB, - 0xE5, - 0xE5, - 0xE5, - 0xEA, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xE5, - 0xE5, - 0xDA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xEE, - 0xEE, - 0xDD, - 0xDE, - 0xE5, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x04, - 0xE9, - 0x00, - 0x17, - 0xEF, - 0xF6, - 0xED, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xEF, - 0x92, - 0xA0, - 0xC9, - 0x93, - 0x9E, - 0x9E, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0xA4, - 0xB7, - 0xB7, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x3F, - 0xAB, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0x93, - 0xAB, - 0x93, - 0x9E, - 0x93, - 0x9E, - 0x9E, - 0x9E, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x9E, - 0x91, - 0x88, - 0x8B, - 0x7C, - 0xA0, - 0x85, - 0x75, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x6E, - 0x75, - 0x88, - 0x6E, - 0x7C, - 0x7C, - 0x6E, - 0x6E, - 0x75, - 0x7C, - 0x8B, - 0x6E, - 0x7C, - 0x6A, - 0x6E, - 0x6E, - 0x75, - 0x6A, - 0x7C, - 0x6E, - 0x75, - 0x77, - 0x6E, - 0x7C, - 0x61, - 0x61, - 0x87, - 0x61, - 0x61, - 0x61, - 0x72, - 0x61, - 0x6A, - 0x00, - 0x04, - 0x61, - 0x00, - 0x75, - 0x5E, - 0x5E, - 0x5E, - 0x51, - 0x5E, - 0x60, - 0x59, - 0x58, - 0x59, - 0x3F, - 0x37, - 0x63, - 0x47, - 0x54, - 0x47, - 0x50, - 0x53, - 0x54, - 0x2B, - 0x48, - 0x31, - 0x2B, - 0x34, - 0x2B, - 0x25, - 0x34, - 0x3A, - 0x38, - 0x53, - 0x17, - 0x45, - 0x27, - 0x38, - 0x42, - 0x42, - 0x3D, - 0x30, - 0x3D, - 0x2B, - 0x2B, - 0x30, - 0x47, - 0x27, - 0x2C, - 0x07, - 0x04, - 0x2B, - 0x38, - 0x2B, - 0x5F, - 0x27, - 0x45, - 0x2C, - 0x58, - 0x53, - 0x58, - 0x30, - 0x3F, - 0x30, - 0x30, - 0x25, - 0x20, - 0x25, - 0x30, - 0x30, - 0x1A, - 0x27, - 0x38, - 0x42, - 0x17, - 0x50, - 0x17, - 0x43, - 0x1A, - 0x34, - 0x17, - 0x31, - 0x21, - 0x18, - 0x21, - 0x3B, - 0x45, - 0x48, - 0x30, - 0x18, - 0x23, - 0x21, - 0x25, - 0x38, - 0x38, - 0x42, - 0x30, - 0x42, - 0x3D, - 0x30, - 0x20, - 0x13, - 0x45, - 0x18, - 0x30, - 0x30, - 0x30, - 0x2C, - 0x53, - 0x3A, - 0x38, - 0x3B, - 0x27, - 0x13, - 0x1D, - 0x66, - 0x38, - 0x07, - 0x01, - 0x01, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0xBE, - 0xBE, - 0xBE, - 0xD8, - 0xD8, - 0xD8, - 0xC6, - 0xDF, - 0xDF, - 0xC6, - 0xDF, - 0xC8, - 0xDF, - 0xDF, - 0xE0, - 0xC8, - 0x06, - 0xCE, - 0x00, - 0x0A, - 0xE0, - 0xCE, - 0xD4, - 0xCE, - 0xE2, - 0xD4, - 0xC3, - 0xE2, - 0xE2, - 0xE2, - 0x06, - 0xE1, - 0x00, - 0x25, - 0xED, - 0xE1, - 0xE1, - 0xE9, - 0xE9, - 0xD6, - 0xD6, - 0xE6, - 0xDC, - 0xE9, - 0xD6, - 0xE6, - 0xDC, - 0xE6, - 0xDC, - 0xE6, - 0xDB, - 0xDC, - 0xDC, - 0xDB, - 0xE6, - 0xDC, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xDE, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xE5, - 0x00, - 0x15, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xEA, - 0xDA, - 0xDD, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xDE, - 0xDD, - 0xE5, - 0xEE, - 0xEE, - 0xE5, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x15, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0xED, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0xC9, - 0xC9, - 0x90, - 0xC9, - 0xA0, - 0xA0, - 0xA4, - 0x9E, - 0xA4, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x33, - 0xB7, - 0xB7, - 0xB4, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xB7, - 0x9E, - 0xAD, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0xA4, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0x9E, - 0x9E, - 0xA0, - 0x91, - 0x88, - 0xA0, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x75, - 0x6E, - 0x7C, - 0x6E, - 0x7C, - 0x6E, - 0x75, - 0x7C, - 0x6E, - 0x00, - 0x04, - 0x75, - 0x00, - 0x88, - 0x7E, - 0x75, - 0x6A, - 0x75, - 0x6E, - 0x7C, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6A, - 0x7C, - 0x61, - 0x6A, - 0x5E, - 0x6E, - 0x51, - 0x61, - 0x5E, - 0x5E, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x60, - 0x3F, - 0x50, - 0x44, - 0x31, - 0x17, - 0x59, - 0x58, - 0x48, - 0x42, - 0x53, - 0x5A, - 0x50, - 0x34, - 0x5A, - 0x2B, - 0x31, - 0x2B, - 0x2B, - 0x34, - 0x34, - 0x3A, - 0x42, - 0x45, - 0x17, - 0x47, - 0x38, - 0x3D, - 0x38, - 0x38, - 0x38, - 0x34, - 0x2B, - 0x34, - 0x34, - 0x34, - 0x47, - 0x37, - 0x37, - 0x1A, - 0x18, - 0x04, - 0x34, - 0x38, - 0x53, - 0x43, - 0x43, - 0x3B, - 0x2B, - 0x5F, - 0x58, - 0x42, - 0x30, - 0x30, - 0x30, - 0x2E, - 0x25, - 0x20, - 0x20, - 0x30, - 0x25, - 0x20, - 0x27, - 0x42, - 0x25, - 0x2C, - 0x34, - 0x17, - 0x1D, - 0x21, - 0x21, - 0x2B, - 0x0C, - 0x31, - 0x21, - 0x3B, - 0x3B, - 0x30, - 0x27, - 0x18, - 0x0C, - 0x13, - 0x1A, - 0x30, - 0x20, - 0x3A, - 0x47, - 0x42, - 0x42, - 0x27, - 0x23, - 0x13, - 0x2B, - 0x18, - 0x48, - 0x30, - 0x25, - 0x5F, - 0x47, - 0x38, - 0x38, - 0x27, - 0x13, - 0x07, - 0x2C, - 0x66, - 0x1A, - 0x02, - 0x01, - 0x04, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x11, - 0xF4, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xD8, - 0xD8, - 0xC6, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xC8, - 0xDF, - 0xCE, - 0xDF, - 0x00, - 0x05, - 0xCE, - 0x00, - 0x46, - 0xD4, - 0xCE, - 0xCE, - 0xE2, - 0xC3, - 0xE0, - 0xE0, - 0xE2, - 0xCA, - 0xCA, - 0xD4, - 0xE2, - 0xCA, - 0xE2, - 0xE1, - 0xED, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE9, - 0xE9, - 0xD6, - 0xDC, - 0xED, - 0xE6, - 0xE6, - 0xDC, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xDB, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xE5, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDD, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xE5, - 0xEA, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xEE, - 0xDD, - 0x05, - 0xE5, - 0x00, - 0x0E, - 0xEE, - 0xE5, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xDC, - 0xEB, - 0xE9, - 0xE9, - 0xED, - 0xED, - 0xF6, - 0xE9, - 0x04, - 0xF6, - 0x00, - 0x13, - 0xE9, - 0xC9, - 0x85, - 0x85, - 0xC9, - 0x92, - 0x9E, - 0x9E, - 0x9E, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x0C, - 0xAB, - 0xAB, - 0xA0, - 0xB7, - 0xAB, - 0x9E, - 0xAB, - 0x93, - 0x9D, - 0x9E, - 0x9E, - 0xAB, - 0x04, - 0x9E, - 0x00, - 0x47, - 0x93, - 0x93, - 0x88, - 0x9E, - 0x7C, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x75, - 0x7E, - 0x7E, - 0x7E, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x7E, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x61, - 0x7C, - 0x6E, - 0x51, - 0x6E, - 0x61, - 0x61, - 0x6A, - 0x6E, - 0x83, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x51, - 0x51, - 0x5E, - 0x51, - 0x6D, - 0x31, - 0x48, - 0x59, - 0x52, - 0x07, - 0x23, - 0x48, - 0x47, - 0x50, - 0x47, - 0x5F, - 0x47, - 0x2B, - 0x59, - 0x21, - 0x31, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x5B, - 0x30, - 0x3A, - 0x3B, - 0x1D, - 0x3B, - 0x42, - 0x38, - 0x42, - 0x44, - 0x30, - 0x42, - 0x30, - 0x30, - 0x34, - 0x30, - 0x30, - 0x53, - 0x50, - 0x1A, - 0x0C, - 0x2C, - 0x17, - 0x2B, - 0x53, - 0x3B, - 0x3A, - 0x47, - 0x45, - 0x5A, - 0x53, - 0x47, - 0x3D, - 0x25, - 0x34, - 0x30, - 0x25, - 0x27, - 0x31, - 0x1D, - 0x30, - 0x20, - 0x30, - 0x38, - 0x38, - 0x0C, - 0x43, - 0x1D, - 0x31, - 0x17, - 0x21, - 0x0C, - 0x18, - 0x21, - 0x1A, - 0x1D, - 0x3B, - 0x2E, - 0x20, - 0x2B, - 0x20, - 0x20, - 0x0C, - 0x25, - 0x47, - 0x38, - 0x38, - 0x48, - 0x42, - 0x20, - 0x20, - 0x13, - 0x47, - 0x30, - 0x20, - 0x30, - 0x30, - 0x53, - 0x53, - 0x3A, - 0x20, - 0x20, - 0x08, - 0x08, - 0x66, - 0x66, - 0x0C, - 0x02, - 0x04, - 0x04, - 0x03, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x11, - 0xBD, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xC6, - 0xD8, - 0xC8, - 0xDF, - 0xC8, - 0xC8, - 0xC8, - 0xDF, - 0xCE, - 0xDF, - 0x00, - 0x08, - 0xCE, - 0x00, - 0x16, - 0xE2, - 0xD4, - 0xCE, - 0xE2, - 0xC3, - 0xE1, - 0xE0, - 0xE2, - 0xCA, - 0xE2, - 0xEF, - 0xE1, - 0xE1, - 0xE1, - 0xEF, - 0xE9, - 0xED, - 0xD6, - 0xE9, - 0xDC, - 0xE6, - 0xD6, - 0x04, - 0xDC, - 0x00, - 0x17, - 0xDE, - 0xDC, - 0xE6, - 0xE6, - 0xDC, - 0xE6, - 0xDB, - 0xD7, - 0xE6, - 0xDB, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDA, - 0xE5, - 0xDB, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xE5, - 0x00, - 0x3A, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xE5, - 0xE5, - 0xE5, - 0xDD, - 0xDA, - 0xE5, - 0xE5, - 0xEA, - 0xE5, - 0xE5, - 0xEE, - 0xEE, - 0xEE, - 0xDB, - 0xEE, - 0xE9, - 0xEB, - 0xEB, - 0xED, - 0xED, - 0xED, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xFD, - 0xC9, - 0x92, - 0xB4, - 0x91, - 0xE6, - 0xA0, - 0xA0, - 0x9E, - 0x9E, - 0x9E, - 0x9D, - 0x9E, - 0x90, - 0x90, - 0x9E, - 0xB7, - 0xB7, - 0xA0, - 0xAB, - 0xB4, - 0xAB, - 0x04, - 0xB4, - 0x00, - 0x14, - 0xAB, - 0xAB, - 0xAB, - 0xB7, - 0x9E, - 0x9E, - 0x9D, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0x9E, - 0x9E, - 0xA0, - 0x93, - 0xA0, - 0x7C, - 0x91, - 0x88, - 0x05, - 0x7E, - 0x00, - 0x27, - 0x6E, - 0x92, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x6E, - 0x87, - 0x88, - 0x7E, - 0x75, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x61, - 0x7E, - 0x7E, - 0x51, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x77, - 0x7E, - 0x68, - 0x6A, - 0x68, - 0x61, - 0x5E, - 0x00, - 0x04, - 0x51, - 0x00, - 0x6F, - 0x62, - 0x3F, - 0x63, - 0x6B, - 0x2B, - 0x31, - 0x07, - 0x18, - 0x3F, - 0x48, - 0x43, - 0x6B, - 0x37, - 0x31, - 0x43, - 0x31, - 0x34, - 0x34, - 0x2B, - 0x34, - 0x30, - 0x3A, - 0x3A, - 0x45, - 0x17, - 0x3B, - 0x3A, - 0x42, - 0x38, - 0x38, - 0x3D, - 0x30, - 0x2B, - 0x34, - 0x34, - 0x2B, - 0x47, - 0x27, - 0x3A, - 0x31, - 0x30, - 0x37, - 0x50, - 0x07, - 0x42, - 0x3A, - 0x50, - 0x2B, - 0x50, - 0x58, - 0x54, - 0x45, - 0x38, - 0x2E, - 0x27, - 0x30, - 0x25, - 0x30, - 0x20, - 0x25, - 0x20, - 0x38, - 0x20, - 0x27, - 0x38, - 0x1A, - 0x37, - 0x21, - 0x43, - 0x21, - 0x21, - 0x17, - 0x31, - 0x31, - 0x18, - 0x2B, - 0x27, - 0x1A, - 0x25, - 0x27, - 0x27, - 0x3B, - 0x3B, - 0x18, - 0x27, - 0x30, - 0x3A, - 0x47, - 0x30, - 0x3D, - 0x20, - 0x08, - 0x3B, - 0x30, - 0x2E, - 0x25, - 0x20, - 0x45, - 0x47, - 0x30, - 0x20, - 0x13, - 0x07, - 0x1A, - 0x66, - 0x5F, - 0x00, - 0x08, - 0x01, - 0x07, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0xBE, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xC6, - 0xC6, - 0xD8, - 0xC6, - 0xDF, - 0xDF, - 0xC6, - 0xC8, - 0xDF, - 0xCE, - 0xC8, - 0xCE, - 0xDF, - 0xCE, - 0xCE, - 0xCE, - 0xE0, - 0xCE, - 0xCE, - 0xE2, - 0xC3, - 0xD4, - 0xE2, - 0xCA, - 0xE0, - 0xCA, - 0xE2, - 0xE1, - 0xCA, - 0xD6, - 0xE2, - 0xED, - 0xCA, - 0xD6, - 0xE1, - 0xE6, - 0xD6, - 0xD6, - 0xE9, - 0xE9, - 0xDC, - 0xDC, - 0xE9, - 0xDC, - 0xE9, - 0xDC, - 0xDC, - 0xDC, - 0xDB, - 0xDB, - 0xDC, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDA, - 0xDE, - 0xDA, - 0xDA, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0x00, - 0x04, - 0xE5, - 0x00, - 0x14, - 0xDA, - 0xDD, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xE5, - 0xE5, - 0xEB, - 0xDB, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0x04, - 0xED, - 0x05, - 0xF6, - 0x00, - 0x48, - 0xE0, - 0xC9, - 0xC9, - 0x92, - 0x92, - 0xB4, - 0xA0, - 0x91, - 0x91, - 0x9E, - 0x9E, - 0x90, - 0x90, - 0x9E, - 0x9D, - 0xAD, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0xB4, - 0xA0, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xAD, - 0xA4, - 0x90, - 0xA0, - 0xA4, - 0x9E, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0x7C, - 0x91, - 0x91, - 0x88, - 0x88, - 0x91, - 0x87, - 0x77, - 0x7E, - 0x6E, - 0x92, - 0x7E, - 0x75, - 0x7E, - 0x77, - 0x88, - 0x91, - 0x92, - 0x7C, - 0x7E, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x04, - 0x75, - 0x00, - 0x32, - 0x85, - 0x7E, - 0x61, - 0x6E, - 0x51, - 0x75, - 0x75, - 0x77, - 0x87, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x61, - 0x61, - 0x51, - 0x51, - 0x51, - 0x5B, - 0x63, - 0x43, - 0x53, - 0x43, - 0x1D, - 0x1A, - 0x13, - 0x13, - 0x3F, - 0x53, - 0x63, - 0x43, - 0x37, - 0x43, - 0x21, - 0x2B, - 0x31, - 0x2B, - 0x34, - 0x34, - 0x38, - 0x3B, - 0x3B, - 0x17, - 0x38, - 0x38, - 0x3B, - 0x3D, - 0x38, - 0x38, - 0x3D, - 0x04, - 0x30, - 0x00, - 0x4C, - 0x27, - 0x3F, - 0x3B, - 0x43, - 0x38, - 0x53, - 0x2C, - 0x17, - 0x43, - 0x48, - 0x2B, - 0x48, - 0x3A, - 0x6B, - 0x54, - 0x54, - 0x42, - 0x30, - 0x34, - 0x25, - 0x2E, - 0x25, - 0x1A, - 0x27, - 0x30, - 0x1D, - 0x38, - 0x27, - 0x42, - 0x38, - 0x0C, - 0x2B, - 0x37, - 0x18, - 0x3F, - 0x0C, - 0x21, - 0x1A, - 0x0C, - 0x1A, - 0x20, - 0x27, - 0x37, - 0x2C, - 0x2C, - 0x3B, - 0x3B, - 0x1A, - 0x1D, - 0x27, - 0x30, - 0x30, - 0x42, - 0x30, - 0x18, - 0x07, - 0x3B, - 0x3D, - 0x20, - 0x23, - 0x18, - 0x45, - 0x2E, - 0x34, - 0x18, - 0x07, - 0x04, - 0x27, - 0x66, - 0x23, - 0x01, - 0x08, - 0x04, - 0x07, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x11, - 0xBE, - 0xBE, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xDF, - 0xC6, - 0xDF, - 0xC6, - 0xC8, - 0xDF, - 0xDF, - 0xC8, - 0xDF, - 0x00, - 0x07, - 0xCE, - 0x00, - 0x1B, - 0xD4, - 0xE0, - 0xCA, - 0xE0, - 0xE0, - 0xE2, - 0xD4, - 0xCA, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xD6, - 0xE9, - 0xE1, - 0xE1, - 0xDC, - 0xE1, - 0xD6, - 0xE6, - 0xD6, - 0xD6, - 0xE6, - 0xDC, - 0xD6, - 0xE6, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x6D, - 0xE6, - 0xDB, - 0xDC, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xD7, - 0xDE, - 0xDB, - 0xDE, - 0xDA, - 0xDE, - 0xDA, - 0xDE, - 0xDA, - 0xE5, - 0xDA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xDA, - 0xEA, - 0xDD, - 0xE5, - 0xE5, - 0xDD, - 0xDA, - 0xEA, - 0xEE, - 0xDD, - 0xF8, - 0xDA, - 0xEB, - 0xE9, - 0xF8, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xF6, - 0xED, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xEF, - 0xB4, - 0x92, - 0xA0, - 0x92, - 0x92, - 0x92, - 0x91, - 0x91, - 0x91, - 0x93, - 0x93, - 0x8B, - 0x93, - 0xAB, - 0xB7, - 0xAB, - 0xAB, - 0xAD, - 0xA0, - 0xAB, - 0x9E, - 0xB4, - 0xB7, - 0xAB, - 0xAB, - 0xAB, - 0xB7, - 0xAB, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0xAB, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x93, - 0x88, - 0x85, - 0x7E, - 0xA0, - 0x7E, - 0x87, - 0x75, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x24, - 0x87, - 0x88, - 0x92, - 0x92, - 0x87, - 0x7C, - 0x88, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x7C, - 0x7E, - 0x88, - 0x7C, - 0x75, - 0x7C, - 0x6A, - 0x7C, - 0x7C, - 0x6A, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x88, - 0x87, - 0x87, - 0x5E, - 0x6A, - 0x68, - 0x72, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x11, - 0x59, - 0x43, - 0x31, - 0x3F, - 0x43, - 0x2B, - 0x31, - 0x37, - 0x13, - 0x18, - 0x3F, - 0x58, - 0x43, - 0x0C, - 0x43, - 0x31, - 0x31, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x5B, - 0x3A, - 0x3A, - 0x53, - 0x17, - 0x3A, - 0x38, - 0x38, - 0x30, - 0x38, - 0x3A, - 0x30, - 0x2B, - 0x30, - 0x34, - 0x30, - 0x42, - 0x38, - 0x53, - 0x50, - 0x34, - 0x2C, - 0x43, - 0x2B, - 0x5A, - 0x31, - 0x48, - 0x48, - 0x38, - 0x5F, - 0x58, - 0x47, - 0x42, - 0x30, - 0x25, - 0x25, - 0x34, - 0x1D, - 0x30, - 0x1A, - 0x25, - 0x27, - 0x1D, - 0x30, - 0x27, - 0x42, - 0x08, - 0x43, - 0x31, - 0x17, - 0x37, - 0x18, - 0x21, - 0x18, - 0x0C, - 0x2C, - 0x27, - 0x2C, - 0x2C, - 0x47, - 0x47, - 0x2C, - 0x3B, - 0x23, - 0x17, - 0x38, - 0x2C, - 0x30, - 0x30, - 0x20, - 0x23, - 0x07, - 0x45, - 0x30, - 0x18, - 0x33, - 0x17, - 0x53, - 0x23, - 0x2C, - 0x08, - 0x04, - 0x08, - 0x3B, - 0x66, - 0x01, - 0x02, - 0x04, - 0x04, - 0x0C, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xF4, - 0xBD, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xC6, - 0xC6, - 0xC6, - 0xDF, - 0xC6, - 0xCE, - 0xDF, - 0xC8, - 0xCE, - 0xC8, - 0xDF, - 0x07, - 0xCE, - 0x00, - 0x34, - 0xD4, - 0xCA, - 0xCE, - 0xD4, - 0xE2, - 0xE2, - 0xCA, - 0xE2, - 0xCA, - 0xCA, - 0xEF, - 0xCA, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xE9, - 0xD6, - 0xDC, - 0xED, - 0xD6, - 0xDC, - 0xE6, - 0xDC, - 0xDC, - 0xE6, - 0xDC, - 0xDB, - 0xDC, - 0xE6, - 0xDE, - 0xDC, - 0xDE, - 0xD7, - 0xDC, - 0xDE, - 0xD7, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDA, - 0xDB, - 0xDB, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xE5, - 0xDA, - 0x04, - 0xE5, - 0x00, - 0x1B, - 0xDA, - 0xE5, - 0xDA, - 0xDD, - 0xDA, - 0xEA, - 0xDA, - 0xDD, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xEB, - 0xEE, - 0xEB, - 0xE9, - 0xEB, - 0xEF, - 0xE9, - 0xF6, - 0xEB, - 0xF6, - 0xED, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x59, - 0xE2, - 0xC9, - 0x88, - 0x92, - 0x92, - 0x91, - 0xA0, - 0x91, - 0x93, - 0x91, - 0x91, - 0x93, - 0x93, - 0x9E, - 0xB7, - 0xB7, - 0xAD, - 0xAB, - 0xAB, - 0xAD, - 0xAB, - 0xAB, - 0xAB, - 0xB7, - 0xB4, - 0xA0, - 0xB4, - 0xAB, - 0xB7, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xAB, - 0xA4, - 0x9E, - 0x9E, - 0xA0, - 0x91, - 0x8B, - 0x91, - 0x88, - 0x91, - 0x88, - 0x92, - 0x7C, - 0x7E, - 0x77, - 0x92, - 0x7E, - 0x88, - 0x91, - 0xA0, - 0x92, - 0x92, - 0x7C, - 0x7E, - 0x87, - 0x7C, - 0x88, - 0x88, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x85, - 0x85, - 0x7C, - 0x85, - 0x75, - 0x6E, - 0x75, - 0x85, - 0x7C, - 0x77, - 0x6E, - 0x61, - 0x6E, - 0x93, - 0x77, - 0x91, - 0x61, - 0x61, - 0x51, - 0x6E, - 0x68, - 0x00, - 0x05, - 0x51, - 0x00, - 0x70, - 0x5A, - 0x31, - 0x43, - 0x48, - 0x2B, - 0x43, - 0x17, - 0x2B, - 0x18, - 0x08, - 0x2B, - 0x6B, - 0x43, - 0x04, - 0x31, - 0x21, - 0x37, - 0x31, - 0x2B, - 0x2B, - 0x30, - 0x2C, - 0x3B, - 0x45, - 0x0C, - 0x47, - 0x3B, - 0x42, - 0x38, - 0x30, - 0x30, - 0x30, - 0x34, - 0x2B, - 0x34, - 0x2C, - 0x2B, - 0x2B, - 0x37, - 0x3A, - 0x38, - 0x2B, - 0x5F, - 0x34, - 0x0C, - 0x37, - 0x42, - 0x3D, - 0x47, - 0x37, - 0x53, - 0x54, - 0x38, - 0x3D, - 0x3A, - 0x25, - 0x1A, - 0x30, - 0x25, - 0x2B, - 0x1A, - 0x25, - 0x30, - 0x20, - 0x30, - 0x38, - 0x3D, - 0x25, - 0x1D, - 0x2B, - 0x21, - 0x18, - 0x21, - 0x0C, - 0x31, - 0x2B, - 0x27, - 0x43, - 0x27, - 0x3B, - 0x2C, - 0x3A, - 0x3A, - 0x21, - 0x1A, - 0x3A, - 0x38, - 0x2B, - 0x1A, - 0x27, - 0x18, - 0x07, - 0x45, - 0x20, - 0x13, - 0x07, - 0x18, - 0x3B, - 0x1D, - 0x2E, - 0x07, - 0x04, - 0x02, - 0x66, - 0x5F, - 0x02, - 0x00, - 0x08, - 0x07, - 0x0C, - 0x03, - 0x01, - 0x00, - 0x00, - 0x00, - 0x14, - 0xBE, - 0xBE, - 0xA8, - 0xF4, - 0xBE, - 0xD8, - 0xD8, - 0xBE, - 0xC6, - 0xDF, - 0xC8, - 0xC6, - 0xDF, - 0xDF, - 0xC6, - 0xCE, - 0xC8, - 0xDF, - 0xCE, - 0xC8, - 0x05, - 0xCE, - 0x00, - 0x19, - 0xC3, - 0xD4, - 0xCE, - 0xCA, - 0xCE, - 0xE0, - 0xCA, - 0xD4, - 0xE2, - 0xE2, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xED, - 0xD6, - 0xD6, - 0xD6, - 0xE9, - 0xD6, - 0xE6, - 0xD6, - 0xE6, - 0x00, - 0x05, - 0xDC, - 0x00, - 0x11, - 0xDE, - 0xDE, - 0xC1, - 0xDC, - 0xDB, - 0xDE, - 0xDC, - 0xDE, - 0xD7, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDA, - 0xD7, - 0xDD, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x21, - 0xDD, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xDA, - 0xDA, - 0xEA, - 0xEA, - 0xDA, - 0xDA, - 0xDA, - 0xEA, - 0xDA, - 0xE5, - 0xE5, - 0xEE, - 0xE5, - 0xEB, - 0xDA, - 0xDB, - 0xEB, - 0xE9, - 0xE9, - 0xF8, - 0xED, - 0xF6, - 0xE9, - 0xF6, - 0xEF, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x1E, - 0xC9, - 0xB4, - 0x92, - 0xA0, - 0x91, - 0x92, - 0x92, - 0x93, - 0x91, - 0x91, - 0x91, - 0x8B, - 0x93, - 0xA0, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xAB, - 0xAD, - 0xAB, - 0xB7, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0x06, - 0x9E, - 0x00, - 0xAA, - 0xA4, - 0xAB, - 0x9E, - 0xA0, - 0x9E, - 0x91, - 0x88, - 0x93, - 0x91, - 0x7C, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x92, - 0x88, - 0x91, - 0x92, - 0x91, - 0xA0, - 0x87, - 0x7E, - 0x88, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x85, - 0x7E, - 0x7C, - 0x88, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x88, - 0x75, - 0x85, - 0x6E, - 0x6A, - 0x6A, - 0x91, - 0x75, - 0x88, - 0x6A, - 0x77, - 0x51, - 0x72, - 0x7E, - 0x51, - 0x51, - 0x61, - 0x51, - 0x51, - 0x60, - 0x43, - 0x59, - 0x3F, - 0x2B, - 0x2B, - 0x43, - 0x17, - 0x1D, - 0x1D, - 0x18, - 0x1A, - 0x58, - 0x3B, - 0x18, - 0x43, - 0x0C, - 0x31, - 0x37, - 0x34, - 0x3A, - 0x2B, - 0x2C, - 0x47, - 0x45, - 0x0C, - 0x42, - 0x38, - 0x38, - 0x3A, - 0x42, - 0x37, - 0x38, - 0x2B, - 0x25, - 0x25, - 0x2C, - 0x37, - 0x3D, - 0x47, - 0x2B, - 0x48, - 0x3A, - 0x37, - 0x3A, - 0x31, - 0x3D, - 0x3D, - 0x42, - 0x54, - 0x3B, - 0x43, - 0x54, - 0x3A, - 0x30, - 0x25, - 0x25, - 0x30, - 0x25, - 0x30, - 0x1A, - 0x30, - 0x1A, - 0x25, - 0x30, - 0x27, - 0x30, - 0x43, - 0x08, - 0x17, - 0x31, - 0x18, - 0x17, - 0x17, - 0x1A, - 0x27, - 0x1D, - 0x38, - 0x47, - 0x27, - 0x43, - 0x38, - 0x53, - 0x50, - 0x1A, - 0x0C, - 0x38, - 0x27, - 0x45, - 0x1A, - 0x20, - 0x18, - 0x08, - 0x3D, - 0x23, - 0x08, - 0x07, - 0x0C, - 0x5F, - 0x27, - 0x08, - 0x07, - 0x04, - 0x0C, - 0x66, - 0x52, - 0x07, - 0x00, - 0x07, - 0x07, - 0x17, - 0x05, - 0x01, - 0x00, - 0x00, - 0x00, - 0x57, - 0xBE, - 0xBE, - 0xFA, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xD8, - 0xC6, - 0xC6, - 0xD8, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xCE, - 0xC8, - 0xC8, - 0xCE, - 0xC8, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xCE, - 0xCA, - 0xE0, - 0xE2, - 0xC3, - 0xE2, - 0xE2, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xEF, - 0xD6, - 0xE1, - 0xE1, - 0xDC, - 0xE1, - 0xE9, - 0xD6, - 0xD6, - 0xE6, - 0xD6, - 0xE9, - 0xCD, - 0xE9, - 0xD6, - 0xDC, - 0xDC, - 0xDC, - 0xC1, - 0xDC, - 0xDE, - 0xD7, - 0xDB, - 0xD7, - 0xDB, - 0xD7, - 0xE6, - 0xDB, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDE, - 0xDA, - 0xDB, - 0xDD, - 0xDB, - 0xDD, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xDA, - 0xEA, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x20, - 0xEA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xDB, - 0xE5, - 0xE5, - 0xEB, - 0xEB, - 0xF2, - 0xEE, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xEF, - 0xED, - 0xF6, - 0xF6, - 0xEF, - 0xEF, - 0xE9, - 0xC9, - 0x83, - 0xA0, - 0x92, - 0xA0, - 0x92, - 0x91, - 0x91, - 0x92, - 0x04, - 0x91, - 0x00, - 0x03, - 0xA4, - 0xB7, - 0xAD, - 0x00, - 0x05, - 0xA4, - 0x00, - 0xB9, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0xAB, - 0xAB, - 0xAD, - 0xA0, - 0x90, - 0x9E, - 0x9E, - 0xAB, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x93, - 0x93, - 0x9E, - 0x91, - 0xA0, - 0x93, - 0x7E, - 0x91, - 0x7E, - 0x88, - 0x87, - 0x87, - 0x91, - 0x91, - 0x92, - 0x91, - 0x92, - 0x88, - 0x91, - 0xA0, - 0x75, - 0x91, - 0x7C, - 0x91, - 0x75, - 0x7E, - 0x85, - 0x85, - 0x7C, - 0x85, - 0x7C, - 0x93, - 0x6E, - 0x7C, - 0x75, - 0x75, - 0x6E, - 0x6E, - 0x7E, - 0x75, - 0x7E, - 0x77, - 0x77, - 0x5E, - 0x6E, - 0x83, - 0x51, - 0x51, - 0x61, - 0x51, - 0x51, - 0x51, - 0x62, - 0x59, - 0x34, - 0x43, - 0x25, - 0x53, - 0x2B, - 0x2B, - 0x2B, - 0x37, - 0x31, - 0x08, - 0x43, - 0x43, - 0x31, - 0x4E, - 0x0C, - 0x37, - 0x31, - 0x34, - 0x37, - 0x2C, - 0x30, - 0x42, - 0x53, - 0x0C, - 0x34, - 0x3A, - 0x38, - 0x3D, - 0x3D, - 0x38, - 0x30, - 0x27, - 0x34, - 0x3A, - 0x3D, - 0x25, - 0x3A, - 0x3D, - 0x53, - 0x27, - 0x47, - 0x34, - 0x48, - 0x3D, - 0x48, - 0x3D, - 0x42, - 0x54, - 0x47, - 0x50, - 0x47, - 0x3A, - 0x3D, - 0x30, - 0x34, - 0x1D, - 0x25, - 0x1A, - 0x20, - 0x1A, - 0x25, - 0x25, - 0x20, - 0x20, - 0x2B, - 0x42, - 0x2E, - 0x18, - 0x43, - 0x1A, - 0x31, - 0x31, - 0x1D, - 0x27, - 0x20, - 0x2C, - 0x45, - 0x3A, - 0x47, - 0x37, - 0x43, - 0x45, - 0x2E, - 0x0C, - 0x3D, - 0x30, - 0x5F, - 0x20, - 0x1A, - 0x08, - 0x18, - 0x30, - 0x13, - 0x07, - 0x04, - 0x17, - 0x66, - 0x1D, - 0x08, - 0x04, - 0x01, - 0x08, - 0x66, - 0x13, - 0x0C, - 0x02, - 0x07, - 0x08, - 0x0C, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC6, - 0x01, - 0xBD, - 0x04, - 0xBE, - 0x00, - 0x11, - 0xC6, - 0xC6, - 0xD8, - 0xC6, - 0xD8, - 0xC8, - 0xC8, - 0xC6, - 0xDF, - 0xC8, - 0xC8, - 0xDF, - 0xC8, - 0xCE, - 0xCE, - 0xCE, - 0xC8, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x33, - 0xE0, - 0xD4, - 0xCE, - 0xE0, - 0xC3, - 0xC3, - 0xCA, - 0xE2, - 0xCA, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xEF, - 0xCA, - 0xD6, - 0xE1, - 0xE9, - 0xD6, - 0xD6, - 0xDC, - 0xD6, - 0xE9, - 0xCD, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xD7, - 0xDC, - 0xDB, - 0xDC, - 0xDC, - 0xDE, - 0xDB, - 0xDB, - 0xDC, - 0xDE, - 0xDE, - 0xD7, - 0xDE, - 0xDB, - 0xDA, - 0xDA, - 0xD7, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0x00, - 0x04, - 0xE5, - 0x06, - 0xDA, - 0x00, - 0x2B, - 0xF3, - 0xEA, - 0xE7, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xE5, - 0xEE, - 0xE5, - 0xF8, - 0xDB, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xF6, - 0xF6, - 0xE9, - 0xF6, - 0xF6, - 0xE6, - 0xEB, - 0x92, - 0xB4, - 0xA0, - 0xA0, - 0xA0, - 0x91, - 0x92, - 0x91, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0xAB, - 0xB7, - 0xB7, - 0xAD, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x1B, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9E, - 0xAD, - 0xAB, - 0xAB, - 0x85, - 0x9E, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0xAB, - 0x9E, - 0xAB, - 0x93, - 0x93, - 0xA0, - 0x93, - 0x9E, - 0x93, - 0x91, - 0x00, - 0x04, - 0x88, - 0x01, - 0x92, - 0x01, - 0x91, - 0x05, - 0x92, - 0x04, - 0x88, - 0x00, - 0x0A, - 0x93, - 0x91, - 0x93, - 0x85, - 0x7C, - 0x85, - 0x85, - 0x85, - 0x8B, - 0x75, - 0x04, - 0x7C, - 0x00, - 0x0C, - 0x6E, - 0x7E, - 0x7C, - 0x75, - 0x77, - 0x6E, - 0x72, - 0x6A, - 0x6E, - 0x6A, - 0x74, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x71, - 0x62, - 0x63, - 0x3F, - 0x47, - 0x37, - 0x2B, - 0x43, - 0x43, - 0x37, - 0x37, - 0x3B, - 0x08, - 0x3A, - 0x34, - 0x43, - 0x08, - 0x2B, - 0x59, - 0x3F, - 0x43, - 0x34, - 0x2B, - 0x38, - 0x3B, - 0x47, - 0x0C, - 0x3D, - 0x42, - 0x38, - 0x38, - 0x3A, - 0x27, - 0x2B, - 0x3F, - 0x34, - 0x34, - 0x2B, - 0x34, - 0x2B, - 0x3B, - 0x2B, - 0x2B, - 0x48, - 0x37, - 0x50, - 0x3D, - 0x2B, - 0x2B, - 0x42, - 0x48, - 0x45, - 0x34, - 0x58, - 0x3A, - 0x34, - 0x30, - 0x25, - 0x30, - 0x25, - 0x1A, - 0x25, - 0x34, - 0x1A, - 0x1A, - 0x25, - 0x2B, - 0x38, - 0x20, - 0x38, - 0x08, - 0x37, - 0x17, - 0x1D, - 0x1D, - 0x27, - 0x27, - 0x38, - 0x30, - 0x42, - 0x47, - 0x37, - 0x47, - 0x47, - 0x3A, - 0x3F, - 0x18, - 0x3A, - 0x30, - 0x3B, - 0x45, - 0x0C, - 0x08, - 0x18, - 0x23, - 0x08, - 0x07, - 0x02, - 0x45, - 0x66, - 0x1D, - 0x04, - 0x04, - 0x01, - 0x17, - 0x81, - 0x02, - 0x0C, - 0x01, - 0x0C, - 0x08, - 0x0C, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xBE, - 0xBE, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0x05, - 0xC6, - 0x00, - 0x08, - 0xDF, - 0xC6, - 0xC8, - 0xC8, - 0xDF, - 0xC8, - 0xC8, - 0xC8, - 0x05, - 0xCE, - 0x00, - 0x1A, - 0xC3, - 0xE0, - 0xCE, - 0xCA, - 0xD4, - 0xCA, - 0xE1, - 0xCE, - 0xCA, - 0xE1, - 0xE2, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xED, - 0xD6, - 0xDC, - 0xCA, - 0xE6, - 0xE9, - 0xD6, - 0xE9, - 0xC1, - 0xE6, - 0xCD, - 0x04, - 0xDC, - 0x00, - 0x43, - 0xE6, - 0xD7, - 0xDC, - 0xD7, - 0xD7, - 0xC1, - 0xDE, - 0xDB, - 0xD7, - 0xDE, - 0xD7, - 0xDB, - 0xD7, - 0xDA, - 0xD7, - 0xDE, - 0xDA, - 0xDA, - 0xDA, - 0xDD, - 0xDA, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xDD, - 0xDA, - 0xEA, - 0xDD, - 0xDA, - 0xEA, - 0xE5, - 0xDA, - 0xDB, - 0xE5, - 0xEB, - 0xEB, - 0xDB, - 0xE9, - 0xF2, - 0xE9, - 0xEB, - 0xF6, - 0xF5, - 0xE9, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xC9, - 0xE6, - 0x9D, - 0xA0, - 0xA0, - 0xAB, - 0x91, - 0xA0, - 0x91, - 0x92, - 0x91, - 0x00, - 0x04, - 0x88, - 0x00, - 0x0B, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x12, - 0xAB, - 0xA0, - 0x91, - 0x9E, - 0xA4, - 0xAB, - 0xAB, - 0x9E, - 0xAD, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x93, - 0x9E, - 0xA0, - 0x91, - 0x04, - 0x88, - 0x00, - 0x16, - 0x91, - 0x92, - 0x91, - 0x91, - 0xA0, - 0x91, - 0x91, - 0x92, - 0x91, - 0x88, - 0x91, - 0x88, - 0x9E, - 0x93, - 0x8B, - 0x93, - 0x85, - 0x93, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x05, - 0x7C, - 0x00, - 0x06, - 0x75, - 0x75, - 0x88, - 0x7E, - 0x77, - 0x75, - 0x04, - 0x6A, - 0x01, - 0x51, - 0x01, - 0x61, - 0x04, - 0x51, - 0x00, - 0x2C, - 0x57, - 0x54, - 0x48, - 0x59, - 0x30, - 0x43, - 0x53, - 0x37, - 0x37, - 0x2C, - 0x37, - 0x31, - 0x0C, - 0x47, - 0x37, - 0x17, - 0x37, - 0x43, - 0x37, - 0x34, - 0x2C, - 0x3A, - 0x3A, - 0x3B, - 0x45, - 0x0C, - 0x37, - 0x48, - 0x38, - 0x38, - 0x2B, - 0x30, - 0x3A, - 0x2C, - 0x2B, - 0x30, - 0x25, - 0x34, - 0x3A, - 0x2B, - 0x58, - 0x3F, - 0x34, - 0x3F, - 0x04, - 0x3D, - 0x00, - 0x41, - 0x42, - 0x42, - 0x58, - 0x48, - 0x50, - 0x3A, - 0x30, - 0x34, - 0x30, - 0x3D, - 0x1D, - 0x3F, - 0x1A, - 0x1A, - 0x2E, - 0x25, - 0x30, - 0x27, - 0x1A, - 0x30, - 0x38, - 0x23, - 0x17, - 0x21, - 0x2B, - 0x27, - 0x1D, - 0x2C, - 0x30, - 0x27, - 0x3B, - 0x42, - 0x3A, - 0x3A, - 0x48, - 0x5A, - 0x30, - 0x21, - 0x42, - 0x3A, - 0x3B, - 0x38, - 0x23, - 0x08, - 0x23, - 0x0C, - 0x07, - 0x02, - 0x13, - 0x66, - 0x66, - 0x27, - 0x02, - 0x01, - 0x01, - 0x37, - 0x66, - 0x02, - 0x17, - 0x02, - 0x08, - 0x07, - 0x0C, - 0x00, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0xBE, - 0xBE, - 0xAF, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xC6, - 0xD8, - 0xC6, - 0xD8, - 0xC6, - 0xDF, - 0xC8, - 0xC6, - 0xDF, - 0xC6, - 0xC8, - 0xC8, - 0xCE, - 0xCE, - 0xC8, - 0xCE, - 0xC8, - 0x04, - 0xCE, - 0x00, - 0x2F, - 0xC3, - 0xE2, - 0xC3, - 0xCE, - 0xC3, - 0xE2, - 0xCA, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xCA, - 0xCA, - 0xE6, - 0xD6, - 0xDC, - 0xD6, - 0xDC, - 0xD6, - 0xDC, - 0xCD, - 0xDC, - 0xE6, - 0xD7, - 0xE6, - 0xDB, - 0xDE, - 0xDC, - 0xDB, - 0xDC, - 0xDB, - 0xD7, - 0xDE, - 0xD7, - 0xDB, - 0xD7, - 0xDE, - 0xD7, - 0xDD, - 0xD7, - 0xDA, - 0xD7, - 0xDD, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x0B, - 0xE5, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xDD, - 0xF3, - 0xEA, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x1F, - 0xE5, - 0xE5, - 0xE6, - 0xF8, - 0xE9, - 0xE9, - 0xF8, - 0xE9, - 0xED, - 0xF5, - 0xE9, - 0xF6, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xEB, - 0xC9, - 0x92, - 0xA0, - 0xAB, - 0xAB, - 0x9E, - 0xA0, - 0xA0, - 0x91, - 0x91, - 0x88, - 0x92, - 0x88, - 0x88, - 0x00, - 0x04, - 0xAD, - 0x04, - 0xA4, - 0x01, - 0x9D, - 0x01, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0xB2, - 0x9E, - 0xAB, - 0xAD, - 0xAB, - 0xAD, - 0xB7, - 0x9E, - 0xA0, - 0xAB, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x93, - 0xA0, - 0x9E, - 0xA0, - 0x93, - 0x93, - 0x91, - 0x92, - 0x91, - 0x88, - 0x91, - 0x91, - 0x92, - 0x91, - 0x92, - 0x92, - 0x91, - 0x92, - 0x93, - 0x91, - 0xA4, - 0x85, - 0x8B, - 0xA4, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x7C, - 0x7E, - 0x7C, - 0x7C, - 0x7C, - 0x8B, - 0x7C, - 0x6E, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x75, - 0x61, - 0x77, - 0x6A, - 0x68, - 0x68, - 0x51, - 0x51, - 0x61, - 0x61, - 0x57, - 0x51, - 0x63, - 0x54, - 0x48, - 0x37, - 0x58, - 0x2B, - 0x17, - 0x37, - 0x2B, - 0x1D, - 0x43, - 0x08, - 0x43, - 0x2B, - 0x37, - 0x4E, - 0x0C, - 0x43, - 0x37, - 0x2B, - 0x38, - 0x3A, - 0x45, - 0x42, - 0x0C, - 0x42, - 0x42, - 0x47, - 0x3A, - 0x2C, - 0x3A, - 0x3A, - 0x30, - 0x34, - 0x34, - 0x2B, - 0x2B, - 0x34, - 0x37, - 0x2B, - 0x47, - 0x21, - 0x3F, - 0x3A, - 0x3D, - 0x3D, - 0x34, - 0x2C, - 0x38, - 0x53, - 0x47, - 0x5A, - 0x3A, - 0x34, - 0x30, - 0x34, - 0x1A, - 0x30, - 0x1A, - 0x31, - 0x25, - 0x1A, - 0x21, - 0x1D, - 0x25, - 0x34, - 0x34, - 0x2C, - 0x2C, - 0x07, - 0x21, - 0x17, - 0x2B, - 0x27, - 0x34, - 0x2B, - 0x3A, - 0x34, - 0x3A, - 0x54, - 0x37, - 0x50, - 0x48, - 0x34, - 0x34, - 0x3A, - 0x3D, - 0x3D, - 0x45, - 0x20, - 0x04, - 0x13, - 0x08, - 0x04, - 0x04, - 0x45, - 0x66, - 0x66, - 0x07, - 0x02, - 0x00, - 0x01, - 0x45, - 0x53, - 0x04, - 0x1A, - 0x04, - 0x02, - 0x04, - 0x0C, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0xBD, - 0xD8, - 0xAF, - 0xBE, - 0xD8, - 0xD8, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x39, - 0xDF, - 0xB9, - 0xCE, - 0xC6, - 0xCE, - 0xC6, - 0xC8, - 0xCE, - 0xC8, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xE0, - 0xCA, - 0xE2, - 0xC3, - 0xE2, - 0xE0, - 0xE1, - 0xCA, - 0xCA, - 0xE1, - 0xD6, - 0xCA, - 0xCA, - 0xE9, - 0xE9, - 0xD6, - 0xD6, - 0xCA, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0xE6, - 0xC1, - 0xCD, - 0xDC, - 0xC1, - 0xDC, - 0xCD, - 0xD7, - 0xDC, - 0xD7, - 0xDB, - 0xDC, - 0xD7, - 0xD7, - 0xD7, - 0xDE, - 0xD7, - 0xDA, - 0xD7, - 0x00, - 0x07, - 0xDA, - 0x00, - 0x04, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0x0A, - 0xDA, - 0x00, - 0x1F, - 0xEA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xDB, - 0xE5, - 0xE6, - 0xEB, - 0xE9, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xF6, - 0xED, - 0xEF, - 0xF6, - 0xE9, - 0xFD, - 0xC9, - 0xC9, - 0xA0, - 0xA0, - 0x9E, - 0xAB, - 0xAB, - 0x9E, - 0xA0, - 0x91, - 0x93, - 0x00, - 0x04, - 0x88, - 0x00, - 0x0F, - 0x9E, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0xAD, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x00, - 0x05, - 0xAB, - 0x00, - 0x15, - 0xAD, - 0x9E, - 0xA0, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0x9E, - 0xA0, - 0xA0, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0x88, - 0x91, - 0x88, - 0x88, - 0x88, - 0x91, - 0xA0, - 0x00, - 0x05, - 0x91, - 0x00, - 0x93, - 0xA0, - 0x9E, - 0x7C, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x93, - 0x8B, - 0x7C, - 0x7C, - 0x85, - 0x85, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x6E, - 0x7E, - 0x88, - 0x6A, - 0x6A, - 0x77, - 0x72, - 0x83, - 0x68, - 0x5E, - 0x72, - 0x5E, - 0x51, - 0x51, - 0x51, - 0x39, - 0x6B, - 0x42, - 0x53, - 0x3F, - 0x5A, - 0x43, - 0x53, - 0x2B, - 0x2B, - 0x1D, - 0x43, - 0x18, - 0x2B, - 0x37, - 0x37, - 0x2B, - 0x31, - 0x21, - 0x37, - 0x3A, - 0x3A, - 0x2C, - 0x3A, - 0x42, - 0x08, - 0x43, - 0x3A, - 0x38, - 0x38, - 0x37, - 0x3A, - 0x34, - 0x2B, - 0x37, - 0x34, - 0x34, - 0x30, - 0x34, - 0x27, - 0x43, - 0x3F, - 0x17, - 0x3F, - 0x34, - 0x3F, - 0x3D, - 0x3D, - 0x3D, - 0x42, - 0x47, - 0x47, - 0x50, - 0x3D, - 0x34, - 0x25, - 0x2E, - 0x34, - 0x25, - 0x34, - 0x1A, - 0x1A, - 0x25, - 0x25, - 0x1A, - 0x1A, - 0x1D, - 0x27, - 0x27, - 0x2B, - 0x0C, - 0x0C, - 0x2B, - 0x2C, - 0x27, - 0x30, - 0x25, - 0x20, - 0x38, - 0x20, - 0x38, - 0x48, - 0x3A, - 0x47, - 0x47, - 0x34, - 0x20, - 0x27, - 0x30, - 0x38, - 0x20, - 0x13, - 0x13, - 0x04, - 0x04, - 0x08, - 0x66, - 0x66, - 0x66, - 0x04, - 0x01, - 0x00, - 0x0C, - 0x37, - 0x31, - 0x0C, - 0x27, - 0x07, - 0x02, - 0x07, - 0x10, - 0x01, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xBD, - 0xBE, - 0xAF, - 0x00, - 0x04, - 0xBE, - 0x05, - 0xC6, - 0x00, - 0x41, - 0xDF, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xCE, - 0xCE, - 0xC8, - 0xC8, - 0xDF, - 0xCE, - 0xC8, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCA, - 0xCE, - 0xCA, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xCA, - 0xD6, - 0xE1, - 0xD6, - 0xCA, - 0xCA, - 0xDC, - 0xD6, - 0xE6, - 0xD6, - 0xDC, - 0xE9, - 0xC1, - 0xD6, - 0xE6, - 0xCD, - 0xE6, - 0xDC, - 0xD7, - 0xD7, - 0xDC, - 0xDE, - 0xDC, - 0xD7, - 0xDC, - 0xD7, - 0xDE, - 0xD7, - 0xDE, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xDD, - 0xD7, - 0xDB, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x09, - 0xDD, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xDD, - 0xF3, - 0xE7, - 0xEA, - 0x00, - 0x05, - 0xDA, - 0x00, - 0xE1, - 0xE5, - 0xDA, - 0xEB, - 0xEB, - 0xDC, - 0xF2, - 0xEB, - 0xF2, - 0xEB, - 0xED, - 0xED, - 0xED, - 0xF6, - 0xED, - 0xF6, - 0xFD, - 0xED, - 0xE9, - 0xB7, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0x9E, - 0xAB, - 0x93, - 0x88, - 0x91, - 0x88, - 0x91, - 0x88, - 0xA4, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x9E, - 0xA0, - 0xA0, - 0x91, - 0xB7, - 0xAB, - 0xA0, - 0xAB, - 0xAB, - 0xB4, - 0xAB, - 0xB4, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x91, - 0x93, - 0x91, - 0x91, - 0x93, - 0x85, - 0x91, - 0x88, - 0xA0, - 0x91, - 0xA0, - 0x91, - 0x91, - 0x92, - 0xA0, - 0x93, - 0x85, - 0x8B, - 0x8B, - 0xA4, - 0x9E, - 0x90, - 0x8B, - 0x88, - 0x8B, - 0x93, - 0x8B, - 0x7C, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x6E, - 0x7C, - 0x85, - 0x7C, - 0x77, - 0x75, - 0x77, - 0x6E, - 0x72, - 0x61, - 0x6A, - 0x72, - 0x5E, - 0x68, - 0x51, - 0x51, - 0x51, - 0x36, - 0x81, - 0x50, - 0x47, - 0x54, - 0x53, - 0x43, - 0x53, - 0x53, - 0x37, - 0x37, - 0x2B, - 0x2B, - 0x0C, - 0x3F, - 0x3F, - 0x37, - 0x17, - 0x2B, - 0x37, - 0x3A, - 0x2C, - 0x3B, - 0x45, - 0x47, - 0x0C, - 0x45, - 0x3B, - 0x3A, - 0x3A, - 0x37, - 0x2C, - 0x2B, - 0x37, - 0x31, - 0x31, - 0x2C, - 0x25, - 0x34, - 0x27, - 0x1D, - 0x1D, - 0x21, - 0x34, - 0x3D, - 0x34, - 0x30, - 0x3D, - 0x30, - 0x34, - 0x47, - 0x58, - 0x37, - 0x54, - 0x3A, - 0x34, - 0x25, - 0x2E, - 0x30, - 0x1A, - 0x31, - 0x2E, - 0x1A, - 0x25, - 0x21, - 0x1A, - 0x25, - 0x27, - 0x1D, - 0x2C, - 0x3A, - 0x08, - 0x31, - 0x2C, - 0x2C, - 0x2B, - 0x30, - 0x3A, - 0x45, - 0x45, - 0x25, - 0x3F, - 0x3A, - 0x48, - 0x30, - 0x3D, - 0x47, - 0x45, - 0x27, - 0x20, - 0x23, - 0x07, - 0x07, - 0x04, - 0x13, - 0x3B, - 0x66, - 0x66, - 0x66, - 0x02, - 0x00, - 0x01, - 0x17, - 0x66, - 0x40, - 0x1A, - 0x17, - 0x07, - 0x02, - 0x08, - 0x04, - 0x01, - 0x10, - 0x00, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x00, - 0x03, - 0xD8, - 0xBE, - 0xD8, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x05, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC6, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x03, - 0xCE, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x2A, - 0xC3, - 0xCE, - 0xCA, - 0xE0, - 0xE2, - 0xC3, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xCA, - 0xD6, - 0xE1, - 0xE9, - 0xCA, - 0xD6, - 0xCA, - 0xDC, - 0xD6, - 0xD6, - 0xD6, - 0xDC, - 0xDC, - 0xCD, - 0xDB, - 0xCD, - 0xDC, - 0xDC, - 0xD6, - 0xDE, - 0xC1, - 0xD7, - 0xDB, - 0xD7, - 0xDC, - 0xD7, - 0xDB, - 0xD7, - 0xD7, - 0xDD, - 0xDE, - 0xD7, - 0x06, - 0xDA, - 0x01, - 0xE5, - 0x01, - 0xDB, - 0x07, - 0xDA, - 0x00, - 0x1E, - 0xEA, - 0xDD, - 0xDA, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xDA, - 0xDB, - 0xEE, - 0xF8, - 0xE6, - 0xE6, - 0xEB, - 0xED, - 0xED, - 0xEF, - 0xED, - 0xF5, - 0xF6, - 0xE9, - 0xFB, - 0xF6, - 0xF6, - 0xF6, - 0xE9, - 0xB7, - 0xB4, - 0x9E, - 0xAB, - 0x04, - 0x9E, - 0x00, - 0x19, - 0x91, - 0x88, - 0x9E, - 0x88, - 0x93, - 0x91, - 0x9E, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x9E, - 0xA0, - 0xAB, - 0xAD, - 0x00, - 0x04, - 0xAB, - 0x00, - 0xAA, - 0xB4, - 0xA0, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0xA0, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x88, - 0x91, - 0x93, - 0x91, - 0x91, - 0xA0, - 0x93, - 0x92, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0x8B, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x85, - 0x88, - 0x8B, - 0x7C, - 0x7C, - 0x91, - 0x7C, - 0x75, - 0x7E, - 0x6E, - 0x87, - 0x77, - 0x77, - 0x61, - 0x72, - 0x87, - 0x68, - 0x61, - 0x51, - 0x51, - 0x51, - 0x46, - 0x51, - 0x63, - 0x58, - 0x42, - 0x53, - 0x37, - 0x37, - 0x5A, - 0x53, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x0C, - 0x43, - 0x34, - 0x37, - 0x3F, - 0x2B, - 0x31, - 0x37, - 0x37, - 0x3A, - 0x3A, - 0x3B, - 0x1B, - 0x45, - 0x3B, - 0x3B, - 0x3A, - 0x3A, - 0x30, - 0x2B, - 0x34, - 0x37, - 0x1D, - 0x45, - 0x37, - 0x27, - 0x2B, - 0x42, - 0x25, - 0x34, - 0x25, - 0x34, - 0x34, - 0x30, - 0x3D, - 0x3D, - 0x42, - 0x42, - 0x54, - 0x1D, - 0x6B, - 0x34, - 0x30, - 0x21, - 0x34, - 0x21, - 0x3D, - 0x1A, - 0x1D, - 0x21, - 0x1A, - 0x1D, - 0x1D, - 0x25, - 0x2B, - 0x1D, - 0x27, - 0x30, - 0x08, - 0x17, - 0x2C, - 0x37, - 0x3B, - 0x30, - 0x1D, - 0x45, - 0x38, - 0x5F, - 0x38, - 0x20, - 0x48, - 0x30, - 0x37, - 0x3B, - 0x3B, - 0x45, - 0x27, - 0x0C, - 0x07, - 0x04, - 0x08, - 0x27, - 0x45, - 0x66, - 0x81, - 0x5F, - 0x02, - 0x00, - 0x01, - 0x2B, - 0x66, - 0x3B, - 0x08, - 0x2B, - 0x04, - 0x04, - 0x08, - 0x00, - 0x09, - 0x08, - 0x00, - 0x00, - 0x01, - 0xAF, - 0x04, - 0xBE, - 0x00, - 0x48, - 0xAF, - 0xD8, - 0xBE, - 0xC6, - 0xC6, - 0xBE, - 0xC6, - 0xC6, - 0xC6, - 0xDF, - 0xC6, - 0xC8, - 0xDF, - 0xB9, - 0xDF, - 0xC8, - 0xC8, - 0xCE, - 0xC8, - 0xCE, - 0xC8, - 0xC8, - 0xC3, - 0xCE, - 0xCE, - 0xCE, - 0xCA, - 0xCA, - 0xCE, - 0xCA, - 0xC3, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xCA, - 0xD6, - 0xCD, - 0xDC, - 0xCA, - 0xDC, - 0xD6, - 0xCD, - 0xE9, - 0xCD, - 0xDB, - 0xCD, - 0xE6, - 0xCD, - 0xDC, - 0xC1, - 0xDC, - 0xDB, - 0xDC, - 0xD7, - 0xD7, - 0xDB, - 0xD7, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDA, - 0xD7, - 0xDD, - 0xD7, - 0x09, - 0xDA, - 0x00, - 0x03, - 0xEA, - 0xF3, - 0xEA, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x23, - 0xF8, - 0xE5, - 0xDB, - 0xDB, - 0xE6, - 0xF8, - 0xEE, - 0xF2, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xF6, - 0xE9, - 0xFB, - 0xED, - 0xF6, - 0xF6, - 0xEF, - 0xFD, - 0xB4, - 0xA0, - 0x92, - 0xA0, - 0x93, - 0xA0, - 0x9E, - 0x9E, - 0x91, - 0x93, - 0x9E, - 0x88, - 0x93, - 0x88, - 0x9E, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x0F, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x9E, - 0x00, - 0x04, - 0xAB, - 0x00, - 0x35, - 0xB4, - 0xB4, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0xA0, - 0xAB, - 0xA0, - 0xAB, - 0x8B, - 0xA0, - 0x8B, - 0x88, - 0x91, - 0x9E, - 0x91, - 0x9E, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0x85, - 0x93, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x93, - 0x93, - 0x93, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x7C, - 0x85, - 0x7C, - 0x7C, - 0x75, - 0x7E, - 0x6E, - 0x77, - 0x72, - 0x6A, - 0x77, - 0x77, - 0x72, - 0x68, - 0x51, - 0x61, - 0x00, - 0x04, - 0x51, - 0x00, - 0x70, - 0x6B, - 0x54, - 0x45, - 0x53, - 0x42, - 0x5A, - 0x5A, - 0x66, - 0x37, - 0x37, - 0x45, - 0x37, - 0x1A, - 0x21, - 0x37, - 0x34, - 0x37, - 0x27, - 0x34, - 0x3A, - 0x2B, - 0x2C, - 0x3B, - 0x43, - 0x0C, - 0x47, - 0x3A, - 0x3B, - 0x37, - 0x2B, - 0x30, - 0x2B, - 0x2B, - 0x38, - 0x3B, - 0x27, - 0x2C, - 0x37, - 0x2C, - 0x2C, - 0x1D, - 0x2C, - 0x47, - 0x2C, - 0x48, - 0x34, - 0x30, - 0x3D, - 0x3A, - 0x38, - 0x54, - 0x1D, - 0x63, - 0x3D, - 0x3D, - 0x31, - 0x1A, - 0x2E, - 0x25, - 0x25, - 0x2E, - 0x25, - 0x1A, - 0x1A, - 0x1A, - 0x17, - 0x17, - 0x2C, - 0x1D, - 0x2B, - 0x2B, - 0x08, - 0x47, - 0x27, - 0x38, - 0x30, - 0x3F, - 0x53, - 0x45, - 0x5F, - 0x5F, - 0x42, - 0x25, - 0x45, - 0x1D, - 0x2C, - 0x27, - 0x5F, - 0x42, - 0x08, - 0x02, - 0x04, - 0x27, - 0x45, - 0x66, - 0x66, - 0x66, - 0x2C, - 0x00, - 0x01, - 0x01, - 0x66, - 0x66, - 0x2C, - 0x01, - 0x45, - 0x00, - 0x07, - 0x0C, - 0x02, - 0x10, - 0x09, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xA8, - 0xBE, - 0xBE, - 0xA9, - 0xBE, - 0xBE, - 0xC6, - 0xBE, - 0xBE, - 0xD8, - 0x05, - 0xC6, - 0x00, - 0x03, - 0xB9, - 0xC6, - 0xB9, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x2D, - 0xCE, - 0xC8, - 0xCE, - 0xCE, - 0xCE, - 0xC3, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xC3, - 0xE2, - 0xCA, - 0xCA, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xE2, - 0xD6, - 0xD6, - 0xE1, - 0xE2, - 0xC1, - 0xD6, - 0xD6, - 0xD6, - 0xDC, - 0xC1, - 0xDC, - 0xCD, - 0xDC, - 0xC1, - 0xE6, - 0xD7, - 0xE6, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xDC, - 0xD7, - 0xDB, - 0xD7, - 0xDD, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x03, - 0xDA, - 0xDA, - 0xD7, - 0x00, - 0x10, - 0xDA, - 0x00, - 0x10, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xEB, - 0xEB, - 0xE9, - 0xED, - 0xF2, - 0xED, - 0xF2, - 0xF5, - 0xE9, - 0xF6, - 0xED, - 0x04, - 0xF6, - 0x00, - 0x13, - 0xEF, - 0xB4, - 0x92, - 0xB4, - 0x9E, - 0xA0, - 0xA0, - 0x93, - 0x93, - 0x93, - 0x88, - 0x93, - 0x88, - 0x90, - 0x88, - 0x9E, - 0xAD, - 0xB7, - 0xB7, - 0x00, - 0x04, - 0xAD, - 0x00, - 0xB9, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x90, - 0x90, - 0x9D, - 0x91, - 0x91, - 0xA0, - 0xA0, - 0xAB, - 0xB7, - 0xAD, - 0xAB, - 0xB4, - 0xA0, - 0xAB, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x91, - 0xA0, - 0x91, - 0x93, - 0x91, - 0x88, - 0x93, - 0x88, - 0x91, - 0x88, - 0x88, - 0x88, - 0x85, - 0x85, - 0x8B, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x85, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x8B, - 0x88, - 0x88, - 0x7C, - 0x7C, - 0x7C, - 0x6E, - 0x88, - 0x75, - 0x6E, - 0x7E, - 0x77, - 0x77, - 0x72, - 0x68, - 0x6A, - 0x61, - 0x5E, - 0x61, - 0x51, - 0x51, - 0x36, - 0x6B, - 0x6B, - 0x50, - 0x54, - 0x50, - 0x1D, - 0x43, - 0x5A, - 0x2B, - 0x37, - 0x43, - 0x43, - 0x50, - 0x08, - 0x3F, - 0x37, - 0x34, - 0x43, - 0x37, - 0x2B, - 0x2B, - 0x2C, - 0x3B, - 0x3B, - 0x1B, - 0x3B, - 0x3A, - 0x3B, - 0x37, - 0x45, - 0x2C, - 0x43, - 0x3A, - 0x27, - 0x2C, - 0x43, - 0x37, - 0x45, - 0x2C, - 0x1D, - 0x2C, - 0x2B, - 0x2B, - 0x1D, - 0x47, - 0x25, - 0x30, - 0x48, - 0x30, - 0x30, - 0x42, - 0x59, - 0x37, - 0x43, - 0x25, - 0x34, - 0x2E, - 0x1A, - 0x25, - 0x21, - 0x17, - 0x21, - 0x21, - 0x1D, - 0x1D, - 0x21, - 0x17, - 0x1D, - 0x2C, - 0x1D, - 0x27, - 0x07, - 0x27, - 0x45, - 0x34, - 0x37, - 0x2C, - 0x47, - 0x54, - 0x54, - 0x5F, - 0x53, - 0x45, - 0x3B, - 0x27, - 0x27, - 0x45, - 0x45, - 0x45, - 0x07, - 0x04, - 0x08, - 0x45, - 0x66, - 0x5F, - 0x66, - 0x66, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x66, - 0x66, - 0x08, - 0x07, - 0x2C, - 0x01, - 0x08, - 0x09, - 0x04, - 0x09, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xBE, - 0xAF, - 0xC6, - 0x05, - 0xBE, - 0x05, - 0xC6, - 0x00, - 0x41, - 0xC8, - 0xC6, - 0xC8, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xC8, - 0xC3, - 0xBC, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xD4, - 0xCA, - 0xC3, - 0xCE, - 0xC3, - 0xE2, - 0xCA, - 0xCA, - 0xE1, - 0xC1, - 0xE1, - 0xE2, - 0xC1, - 0xD6, - 0xD6, - 0xD6, - 0xC1, - 0xDC, - 0xC1, - 0xD6, - 0xDC, - 0xDC, - 0xCD, - 0xD7, - 0xCD, - 0xDC, - 0xD7, - 0xDC, - 0xC1, - 0xDE, - 0xDC, - 0xD7, - 0xBA, - 0xDD, - 0xD7, - 0xDA, - 0xD7, - 0xDD, - 0xD7, - 0xDE, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0x00, - 0x09, - 0xDA, - 0x00, - 0x0F, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xE5, - 0xDA, - 0xDB, - 0xDA, - 0xE5, - 0xF2, - 0xF2, - 0xEB, - 0xEB, - 0xED, - 0xE9, - 0x00, - 0x04, - 0xED, - 0x00, - 0x1E, - 0xF6, - 0xFD, - 0xED, - 0xF6, - 0xF6, - 0xF6, - 0xB4, - 0xB4, - 0xB4, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x93, - 0x91, - 0x93, - 0x91, - 0x91, - 0x90, - 0x88, - 0x93, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0x3A, - 0x93, - 0xA0, - 0xA0, - 0x9E, - 0xAB, - 0xAD, - 0xAD, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xA0, - 0xAB, - 0xAB, - 0xA4, - 0x9E, - 0xA0, - 0xA0, - 0x93, - 0x85, - 0x7C, - 0x93, - 0x88, - 0x93, - 0x91, - 0x91, - 0x88, - 0x88, - 0x7C, - 0x85, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x9E, - 0x8B, - 0x90, - 0x85, - 0x85, - 0x8B, - 0x90, - 0x7C, - 0x8B, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x77, - 0x75, - 0x77, - 0x6A, - 0x72, - 0x04, - 0x68, - 0x00, - 0x74, - 0x5E, - 0x51, - 0x51, - 0x51, - 0x6B, - 0x5F, - 0x54, - 0x5A, - 0x48, - 0x17, - 0x5A, - 0x37, - 0x43, - 0x37, - 0x37, - 0x45, - 0x5A, - 0x2C, - 0x17, - 0x2B, - 0x37, - 0x37, - 0x47, - 0x2B, - 0x2B, - 0x2C, - 0x3B, - 0x2C, - 0x21, - 0x37, - 0x37, - 0x2C, - 0x2C, - 0x5A, - 0x5F, - 0x3B, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x45, - 0x37, - 0x2C, - 0x3B, - 0x2C, - 0x1D, - 0x2B, - 0x27, - 0x37, - 0x37, - 0x30, - 0x48, - 0x20, - 0x3D, - 0x38, - 0x59, - 0x18, - 0x50, - 0x3F, - 0x2E, - 0x2E, - 0x25, - 0x1A, - 0x21, - 0x21, - 0x1A, - 0x1A, - 0x17, - 0x1A, - 0x17, - 0x2B, - 0x17, - 0x1D, - 0x1D, - 0x2B, - 0x21, - 0x45, - 0x2B, - 0x25, - 0x47, - 0x48, - 0x54, - 0x47, - 0x47, - 0x53, - 0x5F, - 0x45, - 0x45, - 0x38, - 0x27, - 0x27, - 0x45, - 0x38, - 0x08, - 0x01, - 0x17, - 0x45, - 0x66, - 0x66, - 0x5F, - 0x45, - 0x2C, - 0x01, - 0x01, - 0x0C, - 0x66, - 0x5F, - 0x01, - 0x0C, - 0x13, - 0x04, - 0x07, - 0x04, - 0x05, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xA8, - 0xBE, - 0xAF, - 0x05, - 0xBE, - 0x00, - 0x03, - 0xC6, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x03, - 0xB9, - 0xDF, - 0xB9, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xCE, - 0xC8, - 0xC8, - 0xCE, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xCA, - 0xCE, - 0xE2, - 0x06, - 0xCA, - 0x00, - 0x18, - 0xD6, - 0xCA, - 0xC1, - 0xE1, - 0xCA, - 0xC1, - 0xCD, - 0xE1, - 0xCD, - 0xE1, - 0xD7, - 0xC1, - 0xD6, - 0xDC, - 0xCD, - 0xDC, - 0xCD, - 0xCD, - 0xD5, - 0xDE, - 0xCD, - 0xD7, - 0xD7, - 0xDE, - 0x04, - 0xD7, - 0x00, - 0x08, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDB, - 0x07, - 0xDA, - 0x00, - 0xEB, - 0xF3, - 0xDD, - 0xE7, - 0xF3, - 0xE5, - 0xDA, - 0xDA, - 0xDA, - 0xF8, - 0xDE, - 0xDB, - 0xDB, - 0xDB, - 0xE9, - 0xF2, - 0xF2, - 0xED, - 0xF5, - 0xED, - 0xE9, - 0xF5, - 0xF6, - 0xEB, - 0xEB, - 0xFD, - 0xEF, - 0xF6, - 0xED, - 0xC9, - 0xAB, - 0xA0, - 0xAB, - 0x9E, - 0x91, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x93, - 0x93, - 0x88, - 0x88, - 0x88, - 0xAB, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA0, - 0x93, - 0xA0, - 0x9E, - 0x9D, - 0xA4, - 0xAD, - 0xAB, - 0xB7, - 0xAB, - 0xB7, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xAD, - 0xAB, - 0xAB, - 0xAB, - 0x93, - 0x9E, - 0x85, - 0x91, - 0x85, - 0x88, - 0x8B, - 0x9E, - 0x91, - 0x91, - 0x91, - 0x7E, - 0x85, - 0x85, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x85, - 0x85, - 0x7C, - 0x7C, - 0x88, - 0x7C, - 0x7E, - 0x75, - 0x77, - 0x6A, - 0x68, - 0x68, - 0x6A, - 0x77, - 0x72, - 0x68, - 0x68, - 0x68, - 0x51, - 0x5E, - 0x7B, - 0x5F, - 0x45, - 0x54, - 0x5A, - 0x37, - 0x2B, - 0x5F, - 0x5A, - 0x37, - 0x3B, - 0x43, - 0x53, - 0x53, - 0x2B, - 0x43, - 0x3A, - 0x2B, - 0x2C, - 0x2B, - 0x2C, - 0x37, - 0x2C, - 0x66, - 0x31, - 0x17, - 0x5F, - 0x2B, - 0x17, - 0x45, - 0x58, - 0x3B, - 0x5F, - 0x5F, - 0x0C, - 0x27, - 0x17, - 0x37, - 0x3B, - 0x37, - 0x27, - 0x3B, - 0x2C, - 0x17, - 0x2C, - 0x3A, - 0x30, - 0x3D, - 0x20, - 0x3D, - 0x31, - 0x42, - 0x1A, - 0x34, - 0x3A, - 0x31, - 0x31, - 0x31, - 0x2E, - 0x17, - 0x1A, - 0x1A, - 0x21, - 0x21, - 0x25, - 0x1A, - 0x2B, - 0x1D, - 0x17, - 0x2B, - 0x1D, - 0x27, - 0x37, - 0x2B, - 0x48, - 0x34, - 0x43, - 0x50, - 0x3A, - 0x53, - 0x45, - 0x3B, - 0x45, - 0x3B, - 0x45, - 0x1A, - 0x27, - 0x38, - 0x20, - 0x08, - 0x01, - 0x27, - 0x5F, - 0x66, - 0x5F, - 0x5F, - 0x66, - 0x17, - 0x01, - 0x00, - 0x5F, - 0x66, - 0x23, - 0x00, - 0x27, - 0x1A, - 0x07, - 0x08, - 0x09, - 0x03, - 0x05, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xB1, - 0xAF, - 0xBE, - 0xAF, - 0x05, - 0xBE, - 0x00, - 0x45, - 0xC6, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xCE, - 0xBC, - 0xC8, - 0xCE, - 0xC3, - 0xCE, - 0xCA, - 0xCE, - 0xC3, - 0xCA, - 0xCE, - 0xCA, - 0xCA, - 0xCA, - 0xE1, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xC1, - 0xE2, - 0xD6, - 0xD6, - 0xCA, - 0xDC, - 0xCA, - 0xDC, - 0xCD, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xDC, - 0xC1, - 0xDE, - 0xD5, - 0xD7, - 0xD7, - 0xDC, - 0xD7, - 0xD7, - 0xD7, - 0xDE, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0x00, - 0x09, - 0xDA, - 0x00, - 0x44, - 0xDD, - 0xDA, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xDB, - 0xDE, - 0xF8, - 0xDB, - 0xEB, - 0xDC, - 0xEB, - 0xF2, - 0xED, - 0xED, - 0xED, - 0xFB, - 0xEB, - 0xED, - 0xF6, - 0xE9, - 0xFD, - 0xEF, - 0xFD, - 0xF6, - 0xC9, - 0xAD, - 0xB7, - 0xAB, - 0xA0, - 0x91, - 0xA0, - 0xA0, - 0x9E, - 0x91, - 0x93, - 0xA0, - 0x8B, - 0xA0, - 0x88, - 0xA4, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x88, - 0x91, - 0xA0, - 0xA0, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0xAB, - 0xB4, - 0xB7, - 0xB4, - 0xB7, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0xA1, - 0x9E, - 0xAB, - 0xA0, - 0xA0, - 0x91, - 0x8B, - 0x93, - 0x93, - 0x9E, - 0x8B, - 0x93, - 0x93, - 0x88, - 0x88, - 0x7C, - 0x90, - 0x90, - 0x90, - 0x93, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x7C, - 0x7C, - 0x7C, - 0xA4, - 0x7C, - 0x8B, - 0x7C, - 0x85, - 0x90, - 0x8B, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x77, - 0x77, - 0x6A, - 0x7E, - 0x77, - 0x6A, - 0x77, - 0x72, - 0x72, - 0x68, - 0x68, - 0x5E, - 0x65, - 0x58, - 0x5A, - 0x54, - 0x37, - 0x48, - 0x31, - 0x5A, - 0x53, - 0x43, - 0x37, - 0x43, - 0x37, - 0x37, - 0x47, - 0x2B, - 0x2C, - 0x37, - 0x3A, - 0x3A, - 0x37, - 0x45, - 0x37, - 0x45, - 0x2B, - 0x2B, - 0x3A, - 0x53, - 0x2B, - 0x53, - 0x43, - 0x5F, - 0x45, - 0x6B, - 0x53, - 0x1D, - 0x42, - 0x0C, - 0x27, - 0x45, - 0x27, - 0x45, - 0x20, - 0x3B, - 0x2B, - 0x2C, - 0x25, - 0x25, - 0x3D, - 0x25, - 0x47, - 0x20, - 0x27, - 0x20, - 0x5A, - 0x2E, - 0x25, - 0x2E, - 0x2E, - 0x21, - 0x17, - 0x21, - 0x1A, - 0x1A, - 0x21, - 0x2B, - 0x17, - 0x1D, - 0x1D, - 0x1D, - 0x27, - 0x2B, - 0x3A, - 0x34, - 0x3A, - 0x50, - 0x50, - 0x3A, - 0x58, - 0x47, - 0x1D, - 0x45, - 0x45, - 0x3B, - 0x45, - 0x13, - 0x3B, - 0x2C, - 0x23, - 0x07, - 0x01, - 0x45, - 0x5F, - 0x53, - 0x5F, - 0x45, - 0x66, - 0x08, - 0x00, - 0x01, - 0x66, - 0x66, - 0x02, - 0x02, - 0x27, - 0x08, - 0x21, - 0x07, - 0x03, - 0x06, - 0x05, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC0, - 0xAF, - 0xBD, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0x00, - 0x04, - 0xBE, - 0x04, - 0xC6, - 0x00, - 0x06, - 0xB9, - 0xC6, - 0xB9, - 0xC6, - 0xC8, - 0xB9, - 0x06, - 0xC8, - 0x00, - 0x04, - 0xC3, - 0xCE, - 0xC3, - 0xCE, - 0x06, - 0xC3, - 0x05, - 0xCA, - 0x00, - 0x16, - 0xD6, - 0xCA, - 0xCA, - 0xD6, - 0xE1, - 0xCA, - 0xCD, - 0xCA, - 0xD7, - 0xC1, - 0xD7, - 0xCA, - 0xC1, - 0xDC, - 0xDC, - 0xC1, - 0xDB, - 0xC1, - 0xDC, - 0xD5, - 0xD7, - 0xDC, - 0x07, - 0xD7, - 0x00, - 0x0E, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xF3, - 0x04, - 0xDA, - 0x00, - 0x40, - 0xF8, - 0xDA, - 0xDA, - 0xDB, - 0xDA, - 0xDB, - 0xDB, - 0xF2, - 0xEB, - 0xEB, - 0xF2, - 0xE9, - 0xED, - 0xF2, - 0xFB, - 0xE9, - 0xFB, - 0xFB, - 0xE9, - 0xFD, - 0xE9, - 0xF6, - 0xFD, - 0xFD, - 0xF6, - 0xAD, - 0xAB, - 0xAB, - 0xA0, - 0x93, - 0x91, - 0xA0, - 0xAB, - 0x93, - 0xA0, - 0x9E, - 0x93, - 0xAB, - 0x88, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0x88, - 0x91, - 0x91, - 0x91, - 0x93, - 0x93, - 0x9D, - 0x91, - 0xAD, - 0xAB, - 0xAD, - 0xAB, - 0xB4, - 0x04, - 0xAD, - 0x00, - 0xA3, - 0xAB, - 0xAD, - 0xAB, - 0xAD, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x93, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x85, - 0x7C, - 0x85, - 0x88, - 0x93, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x7C, - 0x85, - 0x85, - 0x90, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x88, - 0x85, - 0x7E, - 0x7C, - 0x75, - 0x75, - 0x75, - 0x72, - 0x6A, - 0x77, - 0x72, - 0x83, - 0x77, - 0x72, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x62, - 0x6B, - 0x50, - 0x50, - 0x53, - 0x54, - 0x21, - 0x43, - 0x43, - 0x45, - 0x2B, - 0x37, - 0x43, - 0x37, - 0x43, - 0x53, - 0x37, - 0x2B, - 0x2C, - 0x47, - 0x3B, - 0x45, - 0x2B, - 0x3B, - 0x2B, - 0x1D, - 0x37, - 0x37, - 0x25, - 0x6B, - 0x45, - 0x53, - 0x5F, - 0x5F, - 0x6B, - 0x1A, - 0x66, - 0x25, - 0x3B, - 0x3B, - 0x2C, - 0x47, - 0x2C, - 0x2C, - 0x47, - 0x45, - 0x54, - 0x31, - 0x3D, - 0x25, - 0x2C, - 0x38, - 0x38, - 0x20, - 0x48, - 0x34, - 0x30, - 0x21, - 0x25, - 0x21, - 0x21, - 0x1A, - 0x21, - 0x17, - 0x0C, - 0x17, - 0x21, - 0x1A, - 0x18, - 0x17, - 0x2C, - 0x34, - 0x2B, - 0x3F, - 0x48, - 0x43, - 0x50, - 0x50, - 0x37, - 0x53, - 0x45, - 0x2C, - 0x45, - 0x45, - 0x3B, - 0x20, - 0x38, - 0x30, - 0x0C, - 0x02, - 0x02, - 0x45, - 0x58, - 0x45, - 0x1D, - 0x5F, - 0x66, - 0x02, - 0x00, - 0x0C, - 0x66, - 0x5F, - 0x00, - 0x3B, - 0x13, - 0x0C, - 0x18, - 0x07, - 0x03, - 0x03, - 0x05, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xAF, - 0xBE, - 0xAF, - 0xAF, - 0xA8, - 0x00, - 0x04, - 0xBE, - 0x00, - 0x0E, - 0xC6, - 0xB1, - 0xC6, - 0xBE, - 0xC6, - 0xC6, - 0xC6, - 0xC8, - 0xB9, - 0xC6, - 0xB9, - 0xC8, - 0xC8, - 0xB9, - 0x05, - 0xC8, - 0x00, - 0x24, - 0xBC, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xCE, - 0xCA, - 0xC1, - 0xCE, - 0xC1, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xCD, - 0xCA, - 0xE1, - 0xC1, - 0xE1, - 0xD6, - 0xCD, - 0xE1, - 0xC1, - 0xC1, - 0xE6, - 0xDC, - 0xD5, - 0xCD, - 0xD7, - 0xE6, - 0xBA, - 0x0C, - 0xD7, - 0x00, - 0x06, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDA, - 0xCB, - 0x08, - 0xDA, - 0x00, - 0x13, - 0xDB, - 0xDA, - 0xDB, - 0xDA, - 0xD7, - 0xE9, - 0xF2, - 0xDB, - 0xF2, - 0xE6, - 0xF2, - 0xED, - 0xED, - 0xEB, - 0xF6, - 0xE9, - 0xF6, - 0xF6, - 0xED, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x2A, - 0xBA, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0x92, - 0x91, - 0xAB, - 0xAD, - 0x9E, - 0x91, - 0xA4, - 0xA0, - 0xAB, - 0x9E, - 0xAB, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9E, - 0x90, - 0x93, - 0x93, - 0xA0, - 0x93, - 0x93, - 0x9E, - 0x8B, - 0x93, - 0xA4, - 0xAB, - 0xAB, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0xA1, - 0xA4, - 0xAD, - 0x9D, - 0x9E, - 0x9E, - 0xA4, - 0xA4, - 0x9E, - 0x9D, - 0x90, - 0x93, - 0x93, - 0x7C, - 0x91, - 0x8B, - 0x9E, - 0x8B, - 0x93, - 0x90, - 0x85, - 0x93, - 0x8B, - 0x7C, - 0x7C, - 0x7C, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x7C, - 0x7E, - 0x75, - 0x7E, - 0x77, - 0x72, - 0x7E, - 0x77, - 0x77, - 0x72, - 0x72, - 0x72, - 0x77, - 0x72, - 0x72, - 0x68, - 0x60, - 0x66, - 0x5A, - 0x50, - 0x5A, - 0x53, - 0x37, - 0x3B, - 0x37, - 0x43, - 0x43, - 0x37, - 0x5F, - 0x2B, - 0x2B, - 0x43, - 0x1D, - 0x37, - 0x43, - 0x47, - 0x2C, - 0x45, - 0x1D, - 0x2C, - 0x5A, - 0x34, - 0x08, - 0x53, - 0x37, - 0x5F, - 0x53, - 0x53, - 0x5F, - 0x5F, - 0x6B, - 0x38, - 0x53, - 0x5F, - 0x3A, - 0x3A, - 0x3B, - 0x3B, - 0x47, - 0x27, - 0x3B, - 0x3B, - 0x54, - 0x34, - 0x25, - 0x3A, - 0x42, - 0x3B, - 0x1A, - 0x20, - 0x3D, - 0x3F, - 0x31, - 0x25, - 0x21, - 0x25, - 0x25, - 0x17, - 0x18, - 0x18, - 0x21, - 0x17, - 0x17, - 0x18, - 0x17, - 0x17, - 0x3A, - 0x37, - 0x34, - 0x34, - 0x37, - 0x50, - 0x47, - 0x37, - 0x43, - 0x2C, - 0x27, - 0x38, - 0x45, - 0x42, - 0x45, - 0x30, - 0x42, - 0x20, - 0x08, - 0x01, - 0x0C, - 0x66, - 0x27, - 0x20, - 0x0C, - 0x66, - 0x5F, - 0x01, - 0x00, - 0x2C, - 0x66, - 0x07, - 0x04, - 0x2B, - 0x17, - 0x1A, - 0x0C, - 0x05, - 0x03, - 0x05, - 0x05, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xAF, - 0xA8, - 0xAF, - 0xAF, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xC6, - 0xBE, - 0xBE, - 0x06, - 0xC6, - 0x00, - 0x30, - 0xC8, - 0xC6, - 0xC6, - 0xC8, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xCE, - 0xBC, - 0xCE, - 0xBC, - 0xBC, - 0xCE, - 0xCA, - 0xC3, - 0xE2, - 0xC3, - 0xCA, - 0xCA, - 0xCE, - 0xC1, - 0xCA, - 0xE1, - 0xCA, - 0xCA, - 0xCD, - 0xCA, - 0xE1, - 0xC1, - 0xD6, - 0xD6, - 0xC1, - 0xD6, - 0xCD, - 0xDC, - 0xDC, - 0xD6, - 0xC1, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xCD, - 0xD7, - 0xCD, - 0x08, - 0xD7, - 0x00, - 0x08, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDD, - 0x07, - 0xDA, - 0x00, - 0x40, - 0xDB, - 0xDA, - 0xF8, - 0xDB, - 0xDB, - 0xDB, - 0xF8, - 0xE5, - 0xF2, - 0xE6, - 0xF2, - 0xED, - 0xF2, - 0xF5, - 0xE9, - 0xEB, - 0xFB, - 0xED, - 0xF5, - 0xF6, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xE9, - 0x83, - 0xB4, - 0xA0, - 0xAB, - 0x87, - 0x91, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0xAD, - 0x9E, - 0x9E, - 0x9E, - 0xA4, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x88, - 0x93, - 0x93, - 0x88, - 0x91, - 0x91, - 0x7C, - 0x91, - 0xA4, - 0xA4, - 0xAB, - 0xAD, - 0xB7, - 0x06, - 0xAD, - 0x00, - 0x12, - 0xA4, - 0xAD, - 0xA4, - 0xAB, - 0xA4, - 0x9E, - 0xA4, - 0x9E, - 0x9E, - 0x8B, - 0x8B, - 0x85, - 0x90, - 0x85, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x04, - 0x8B, - 0x00, - 0x8B, - 0x7C, - 0x7C, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x93, - 0x93, - 0x8B, - 0x88, - 0x88, - 0x7E, - 0x75, - 0x6E, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x6A, - 0x77, - 0x72, - 0x77, - 0x72, - 0x51, - 0x4C, - 0x5A, - 0x5F, - 0x50, - 0x53, - 0x50, - 0x31, - 0x5A, - 0x37, - 0x3B, - 0x37, - 0x45, - 0x43, - 0x45, - 0x17, - 0x37, - 0x5A, - 0x37, - 0x5F, - 0x1D, - 0x5F, - 0x45, - 0x3A, - 0x0C, - 0x3B, - 0x34, - 0x21, - 0x2B, - 0x37, - 0x5F, - 0x63, - 0x53, - 0x45, - 0x43, - 0x45, - 0x53, - 0x54, - 0x66, - 0x30, - 0x3B, - 0x42, - 0x3A, - 0x2C, - 0x48, - 0x2C, - 0x3B, - 0x53, - 0x21, - 0x2E, - 0x1D, - 0x1D, - 0x27, - 0x42, - 0x20, - 0x3F, - 0x48, - 0x31, - 0x2E, - 0x31, - 0x21, - 0x21, - 0x21, - 0x17, - 0x21, - 0x18, - 0x21, - 0x21, - 0x17, - 0x21, - 0x3A, - 0x37, - 0x3F, - 0x31, - 0x3F, - 0x50, - 0x42, - 0x48, - 0x50, - 0x42, - 0x27, - 0x2C, - 0x27, - 0x45, - 0x45, - 0x45, - 0x2E, - 0x20, - 0x23, - 0x04, - 0x01, - 0x27, - 0x27, - 0x27, - 0x08, - 0x38, - 0x66, - 0x66, - 0x00, - 0x01, - 0x66, - 0x66, - 0x04, - 0x17, - 0x04, - 0x27, - 0x07, - 0x18, - 0x03, - 0x05, - 0x09, - 0x09, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAF, - 0x01, - 0xA8, - 0x04, - 0xAF, - 0x00, - 0x20, - 0xBE, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xB9, - 0xC8, - 0xC8, - 0xBC, - 0xC8, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xCE, - 0xC3, - 0xCA, - 0xCE, - 0x0A, - 0xCA, - 0x00, - 0x12, - 0xC1, - 0xCA, - 0xDC, - 0xC1, - 0xC1, - 0xD6, - 0xCD, - 0xDC, - 0xCD, - 0xDC, - 0xC1, - 0xDC, - 0xD7, - 0xCD, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0x07, - 0xD7, - 0x00, - 0x3D, - 0xDA, - 0xD7, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xDB, - 0xDB, - 0xD7, - 0xE9, - 0xE5, - 0xF2, - 0xEB, - 0xF2, - 0xE9, - 0xF2, - 0xE9, - 0xF5, - 0xF2, - 0xEF, - 0xED, - 0xF6, - 0xF6, - 0xFB, - 0xF6, - 0xF6, - 0xFE, - 0xE7, - 0x73, - 0xB4, - 0xB4, - 0xB7, - 0x87, - 0x87, - 0xB7, - 0xAD, - 0x9E, - 0xA0, - 0xAD, - 0xAB, - 0xA4, - 0xAB, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x11, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x91, - 0x93, - 0x93, - 0x88, - 0x88, - 0x88, - 0x9E, - 0xA4, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0x00, - 0x05, - 0xAD, - 0x00, - 0x0F, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x7C, - 0x8B, - 0x90, - 0x00, - 0x05, - 0x8B, - 0x00, - 0x8C, - 0x88, - 0x8B, - 0x85, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x9E, - 0x90, - 0x85, - 0x85, - 0x7E, - 0x7C, - 0x7E, - 0x6E, - 0x6A, - 0x6E, - 0x77, - 0x6A, - 0x6A, - 0x72, - 0x77, - 0x6A, - 0x6A, - 0x51, - 0x51, - 0x46, - 0x57, - 0x6B, - 0x63, - 0x2C, - 0x43, - 0x47, - 0x43, - 0x43, - 0x43, - 0x37, - 0x37, - 0x37, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x17, - 0x37, - 0x53, - 0x53, - 0x2C, - 0x2B, - 0x50, - 0x21, - 0x0C, - 0x43, - 0x34, - 0x34, - 0x3B, - 0x5F, - 0x5A, - 0x43, - 0x53, - 0x45, - 0x5A, - 0x66, - 0x1D, - 0x66, - 0x5F, - 0x37, - 0x3A, - 0x3B, - 0x38, - 0x3B, - 0x37, - 0x45, - 0x5A, - 0x1D, - 0x34, - 0x25, - 0x42, - 0x42, - 0x38, - 0x20, - 0x44, - 0x43, - 0x34, - 0x31, - 0x31, - 0x21, - 0x1D, - 0x21, - 0x21, - 0x21, - 0x17, - 0x21, - 0x0C, - 0x21, - 0x17, - 0x3B, - 0x3F, - 0x3F, - 0x34, - 0x43, - 0x3A, - 0x3F, - 0x54, - 0x3B, - 0x47, - 0x30, - 0x25, - 0x2C, - 0x3B, - 0x53, - 0x54, - 0x30, - 0x20, - 0x0C, - 0x01, - 0x01, - 0x2B, - 0x2B, - 0x45, - 0x45, - 0x66, - 0x66, - 0x17, - 0x00, - 0x04, - 0x66, - 0x13, - 0x07, - 0x13, - 0x08, - 0x08, - 0x07, - 0x0C, - 0x0A, - 0x05, - 0x05, - 0x10, - 0xAF, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA8, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xC6, - 0xC6, - 0xBE, - 0xC6, - 0xBE, - 0xC6, - 0xC6, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xC6, - 0xB9, - 0x05, - 0xC8, - 0x00, - 0x06, - 0xBC, - 0xCE, - 0xBC, - 0xCE, - 0xBC, - 0xC8, - 0x04, - 0xC3, - 0x01, - 0xCA, - 0x01, - 0xC3, - 0x06, - 0xCA, - 0x00, - 0x0C, - 0xE1, - 0xC1, - 0xD6, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xD6, - 0xD6, - 0xD6, - 0xC1, - 0xD6, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xDC, - 0xD7, - 0xCD, - 0xCD, - 0xD7, - 0xC1, - 0xDB, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x54, - 0xDA, - 0xD7, - 0xCB, - 0xDE, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDA, - 0xF3, - 0xDA, - 0xF3, - 0xDB, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xD7, - 0xF8, - 0xDB, - 0xDC, - 0xF8, - 0xF2, - 0xE6, - 0xF2, - 0xE9, - 0xF2, - 0xE9, - 0xED, - 0xF5, - 0xF6, - 0xED, - 0xFB, - 0xF6, - 0xED, - 0xF6, - 0xFD, - 0xFD, - 0xF6, - 0xB2, - 0x74, - 0x83, - 0x92, - 0xB7, - 0xA0, - 0x7E, - 0xAB, - 0xAD, - 0xAB, - 0xA0, - 0xB7, - 0xAD, - 0xAB, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xAB, - 0x9E, - 0xAB, - 0xA4, - 0x9E, - 0x91, - 0x93, - 0xA0, - 0x93, - 0x88, - 0x88, - 0x88, - 0x7C, - 0x91, - 0x93, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0x0F, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x7C, - 0x8B, - 0x8B, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x8B, - 0x85, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x93, - 0x9D, - 0x90, - 0x9E, - 0x8B, - 0x93, - 0x85, - 0x7C, - 0x7C, - 0x75, - 0x6E, - 0x6A, - 0x6A, - 0x72, - 0x77, - 0x6A, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x66, - 0x54, - 0x54, - 0x43, - 0x54, - 0x3A, - 0x5A, - 0x43, - 0x43, - 0x37, - 0x17, - 0x43, - 0x45, - 0x53, - 0x2B, - 0x37, - 0x43, - 0x53, - 0x5F, - 0x17, - 0x42, - 0x37, - 0x34, - 0x08, - 0x50, - 0x30, - 0x30, - 0x37, - 0x53, - 0x53, - 0x3B, - 0x5A, - 0x63, - 0x5F, - 0x37, - 0x0C, - 0x5F, - 0x53, - 0x54, - 0x3A, - 0x3B, - 0x30, - 0x2C, - 0x3B, - 0x3B, - 0x2B, - 0x47, - 0x18, - 0x30, - 0x45, - 0x27, - 0x42, - 0x38, - 0x1A, - 0x3F, - 0x3F, - 0x31, - 0x25, - 0x17, - 0x21, - 0x31, - 0x17, - 0x17, - 0x31, - 0x17, - 0x21, - 0x0C, - 0x0C, - 0x2B, - 0x43, - 0x3F, - 0x3F, - 0x3A, - 0x2C, - 0x3D, - 0x54, - 0x50, - 0x2C, - 0x27, - 0x25, - 0x2C, - 0x42, - 0x45, - 0x45, - 0x30, - 0x23, - 0x07, - 0x01, - 0x00, - 0x3B, - 0x3B, - 0x45, - 0x5F, - 0x5F, - 0x66, - 0x02, - 0x02, - 0x45, - 0x81, - 0x02, - 0x1D, - 0x09, - 0x0C, - 0x04, - 0x07, - 0x07, - 0x05, - 0x09, - 0x04, - 0x21, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA8, - 0xAF, - 0xA8, - 0x00, - 0x04, - 0xAF, - 0x00, - 0x12, - 0xBE, - 0xBE, - 0xBE, - 0xAF, - 0xB9, - 0xB1, - 0xC6, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xB9, - 0xC8, - 0xC8, - 0xB9, - 0xC6, - 0x04, - 0xC8, - 0x00, - 0x24, - 0xBC, - 0xBC, - 0xC8, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xCE, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xCA, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xCA, - 0xD6, - 0xD6, - 0xC1, - 0xC1, - 0xD6, - 0xCD, - 0xD6, - 0xDC, - 0xC1, - 0xDB, - 0xC1, - 0xD7, - 0xCD, - 0xD5, - 0x04, - 0xD7, - 0x00, - 0x03, - 0xC7, - 0xD7, - 0xD5, - 0x00, - 0x07, - 0xD7, - 0x00, - 0x31, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xD7, - 0xDB, - 0xDA, - 0xDB, - 0xF2, - 0xE5, - 0xF2, - 0xDB, - 0xF2, - 0xF2, - 0xE9, - 0xF2, - 0xF8, - 0xFB, - 0xED, - 0xEB, - 0xFB, - 0xFB, - 0xED, - 0xFD, - 0xEF, - 0xFD, - 0xF6, - 0xF6, - 0xE6, - 0x64, - 0x83, - 0x92, - 0xB4, - 0xB7, - 0x83, - 0xB4, - 0xAB, - 0xAB, - 0xAB, - 0xAD, - 0xB7, - 0xAD, - 0xAB, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x2A, - 0xAB, - 0xAB, - 0xA4, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x91, - 0x93, - 0x88, - 0x91, - 0x91, - 0x7E, - 0x7E, - 0x7C, - 0x8B, - 0x9E, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x05, - 0x90, - 0x00, - 0x8D, - 0x8B, - 0x90, - 0x85, - 0x93, - 0x90, - 0x9E, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x93, - 0x7C, - 0x88, - 0x88, - 0x75, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x77, - 0x6A, - 0x61, - 0x72, - 0x68, - 0x51, - 0x51, - 0x68, - 0x51, - 0x57, - 0x66, - 0x63, - 0x45, - 0x43, - 0x43, - 0x58, - 0x43, - 0x5A, - 0x43, - 0x2B, - 0x43, - 0x53, - 0x43, - 0x5F, - 0x53, - 0x2B, - 0x2B, - 0x63, - 0x5F, - 0x54, - 0x1D, - 0x30, - 0x48, - 0x31, - 0x0C, - 0x3F, - 0x34, - 0x2C, - 0x43, - 0x43, - 0x3B, - 0x5F, - 0x53, - 0x3A, - 0x5F, - 0x2C, - 0x37, - 0x63, - 0x45, - 0x3A, - 0x42, - 0x38, - 0x30, - 0x3B, - 0x30, - 0x53, - 0x45, - 0x42, - 0x3A, - 0x45, - 0x58, - 0x20, - 0x30, - 0x30, - 0x34, - 0x3F, - 0x31, - 0x21, - 0x31, - 0x2B, - 0x21, - 0x21, - 0x21, - 0x1D, - 0x21, - 0x21, - 0x21, - 0x0C, - 0x43, - 0x37, - 0x31, - 0x43, - 0x30, - 0x37, - 0x50, - 0x48, - 0x48, - 0x3B, - 0x2C, - 0x25, - 0x3A, - 0x42, - 0x48, - 0x42, - 0x30, - 0x23, - 0x02, - 0x00, - 0x0C, - 0x45, - 0x45, - 0x45, - 0x5F, - 0x66, - 0x81, - 0x00, - 0x00, - 0x66, - 0x20, - 0x10, - 0x04, - 0x09, - 0x21, - 0x02, - 0x10, - 0x05, - 0x05, - 0x02, - 0x0C, - 0x84, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xAF, - 0xAF, - 0xA8, - 0xBE, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xAF, - 0xAF, - 0xC6, - 0xAF, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xC8, - 0xC8, - 0xCE, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xC3, - 0x00, - 0x07, - 0xCA, - 0x00, - 0x09, - 0xC1, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xC1, - 0xCA, - 0xCD, - 0xD6, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0B, - 0xDC, - 0xCD, - 0xD5, - 0xCD, - 0xDC, - 0xDB, - 0xC1, - 0xDB, - 0xD5, - 0xD7, - 0xD5, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x4C, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xF8, - 0xDB, - 0xD7, - 0xE5, - 0xF2, - 0xDB, - 0xF2, - 0xEB, - 0xF2, - 0xF2, - 0xED, - 0xEF, - 0xEB, - 0xF5, - 0xF5, - 0xEF, - 0xED, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xFE, - 0xAA, - 0x69, - 0x73, - 0x72, - 0x92, - 0xB4, - 0x77, - 0xB4, - 0xB7, - 0xB4, - 0xAB, - 0xAD, - 0xB7, - 0xAD, - 0xAB, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0x92, - 0x91, - 0xA0, - 0x9E, - 0x92, - 0x88, - 0x88, - 0x85, - 0x88, - 0x88, - 0x88, - 0xA4, - 0xA4, - 0xAD, - 0x05, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x00, - 0x04, - 0x90, - 0x00, - 0x11, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x8B, - 0x90, - 0x8B, - 0x9E, - 0x8B, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x9D, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x7F, - 0x75, - 0x6A, - 0x6E, - 0x61, - 0x75, - 0x68, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x5E, - 0x6A, - 0x5E, - 0x5E, - 0x61, - 0x61, - 0x66, - 0x63, - 0x48, - 0x50, - 0x53, - 0x50, - 0x43, - 0x43, - 0x5A, - 0x37, - 0x43, - 0x43, - 0x37, - 0x37, - 0x37, - 0x63, - 0x37, - 0x43, - 0x66, - 0x50, - 0x30, - 0x3F, - 0x34, - 0x2C, - 0x31, - 0x37, - 0x34, - 0x3B, - 0x37, - 0x53, - 0x47, - 0x5A, - 0x43, - 0x37, - 0x43, - 0x2C, - 0x37, - 0x53, - 0x53, - 0x63, - 0x30, - 0x30, - 0x27, - 0x38, - 0x3A, - 0x53, - 0x3B, - 0x50, - 0x27, - 0x37, - 0x45, - 0x54, - 0x1A, - 0x25, - 0x30, - 0x59, - 0x31, - 0x31, - 0x31, - 0x1A, - 0x21, - 0x31, - 0x17, - 0x0C, - 0x17, - 0x21, - 0x0C, - 0x17, - 0x3F, - 0x34, - 0x31, - 0x3F, - 0x34, - 0x50, - 0x3A, - 0x25, - 0x53, - 0x3B, - 0x37, - 0x3A, - 0x31, - 0x47, - 0x42, - 0x47, - 0x20, - 0x07, - 0x02, - 0x04, - 0x37, - 0x45, - 0x5F, - 0x38, - 0x66, - 0x5F, - 0x58, - 0x00, - 0x08, - 0x66, - 0x02, - 0x0C, - 0x01, - 0x21, - 0x07, - 0x04, - 0x04, - 0x02, - 0x09, - 0x07, - 0x29, - 0xF4, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xAF, - 0xA8, - 0xA8, - 0xAF, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xBE, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB9, - 0xC6, - 0xB9, - 0x04, - 0xC8, - 0x00, - 0x09, - 0xB9, - 0xC8, - 0xBC, - 0xCE, - 0xBC, - 0xC8, - 0xC8, - 0xC3, - 0xBC, - 0x00, - 0x04, - 0xC3, - 0x01, - 0xCA, - 0x01, - 0xC3, - 0x05, - 0xCA, - 0x00, - 0x3C, - 0xC1, - 0xCA, - 0xC1, - 0xCA, - 0xD6, - 0xC1, - 0xCA, - 0xD6, - 0xC1, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD7, - 0xCD, - 0xD7, - 0xCD, - 0xC1, - 0xD7, - 0xD5, - 0xD7, - 0xCD, - 0xD7, - 0xD7, - 0xD7, - 0xDB, - 0xC7, - 0xD1, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xF8, - 0xD7, - 0xD7, - 0xF2, - 0xDB, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xEB, - 0xF2, - 0xEB, - 0xF8, - 0xF6, - 0xF5, - 0xED, - 0xEF, - 0xF8, - 0x04, - 0xF6, - 0x00, - 0x0E, - 0xFD, - 0xFD, - 0xF6, - 0xE2, - 0x70, - 0x69, - 0x74, - 0x83, - 0xA0, - 0x92, - 0xB4, - 0xB7, - 0xB4, - 0xB4, - 0x09, - 0xB7, - 0x00, - 0x13, - 0xAD, - 0xAB, - 0xAB, - 0xB7, - 0xB4, - 0xAB, - 0xA0, - 0xA0, - 0x91, - 0x92, - 0x92, - 0x92, - 0x88, - 0x88, - 0x7C, - 0x7C, - 0x9E, - 0xA4, - 0xAD, - 0x00, - 0x08, - 0xB7, - 0x00, - 0x09, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x8B, - 0x00, - 0x08, - 0x90, - 0x00, - 0x0A, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x85, - 0x8B, - 0x05, - 0x7C, - 0x00, - 0x13, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x87, - 0x6A, - 0x61, - 0x6A, - 0x72, - 0x6A, - 0x77, - 0x72, - 0x61, - 0x61, - 0x51, - 0x46, - 0x36, - 0x81, - 0x6B, - 0x00, - 0x04, - 0x50, - 0x01, - 0x2B, - 0x04, - 0x43, - 0x00, - 0x64, - 0x37, - 0x43, - 0x43, - 0x53, - 0x5F, - 0x37, - 0x37, - 0x6B, - 0x54, - 0x3D, - 0x30, - 0x3F, - 0x44, - 0x3D, - 0x34, - 0x3A, - 0x3A, - 0x27, - 0x43, - 0x43, - 0x66, - 0x37, - 0x45, - 0x37, - 0x5A, - 0x43, - 0x37, - 0x43, - 0x5F, - 0x50, - 0x3B, - 0x37, - 0x37, - 0x45, - 0x37, - 0x58, - 0x2B, - 0x53, - 0x3B, - 0x27, - 0x54, - 0x38, - 0x20, - 0x34, - 0x3D, - 0x31, - 0x31, - 0x2B, - 0x17, - 0x21, - 0x21, - 0x21, - 0x17, - 0x3C, - 0x17, - 0x18, - 0x50, - 0x43, - 0x31, - 0x37, - 0x2B, - 0x48, - 0x3F, - 0x48, - 0x48, - 0x42, - 0x2C, - 0x38, - 0x37, - 0x3F, - 0x3A, - 0x42, - 0x27, - 0x23, - 0x02, - 0x0C, - 0x0C, - 0x5F, - 0x45, - 0x66, - 0x20, - 0x5F, - 0x66, - 0x07, - 0x02, - 0x45, - 0x52, - 0x2E, - 0x01, - 0x04, - 0x13, - 0x05, - 0x09, - 0x05, - 0x04, - 0x04, - 0x07, - 0xB1, - 0xF7, - 0xF9, - 0x00, - 0x00, - 0x01, - 0x97, - 0x08, - 0xAF, - 0x00, - 0x21, - 0xBE, - 0xAF, - 0xB1, - 0xB9, - 0xBE, - 0xC6, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xB9, - 0xB9, - 0xC8, - 0xC8, - 0xC8, - 0xB9, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0x00, - 0x06, - 0xCA, - 0x01, - 0xCD, - 0x04, - 0xCA, - 0x00, - 0x16, - 0xC1, - 0xD6, - 0xD6, - 0xD6, - 0xC1, - 0xC1, - 0xDC, - 0xD6, - 0xD5, - 0xC1, - 0xDC, - 0xD5, - 0xD5, - 0xD7, - 0xC1, - 0xD5, - 0xD7, - 0xC7, - 0xDB, - 0xD7, - 0xD7, - 0xDB, - 0x05, - 0xD7, - 0x00, - 0x27, - 0xDA, - 0xD7, - 0xD7, - 0xD7, - 0xDB, - 0xD7, - 0xD7, - 0xF8, - 0xDC, - 0xD7, - 0xDB, - 0xDB, - 0xDC, - 0xF8, - 0xDB, - 0xF2, - 0xF2, - 0xEB, - 0xDC, - 0xF5, - 0xED, - 0xF2, - 0xE9, - 0xF5, - 0xED, - 0xFD, - 0xF5, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xF6, - 0xFE, - 0xEF, - 0x64, - 0x64, - 0x73, - 0x83, - 0x92, - 0x00, - 0x06, - 0xB4, - 0x00, - 0x03, - 0xB7, - 0xB7, - 0xAD, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x14, - 0xAB, - 0xAD, - 0xAB, - 0xAD, - 0xB7, - 0xAD, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0x91, - 0x93, - 0x91, - 0x87, - 0x93, - 0x7E, - 0x91, - 0x85, - 0x93, - 0xAD, - 0x08, - 0xB7, - 0x00, - 0x0B, - 0xAD, - 0xB7, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x00, - 0x06, - 0x90, - 0x00, - 0x13, - 0x9D, - 0x90, - 0x9D, - 0x85, - 0x90, - 0x93, - 0x8B, - 0x88, - 0x88, - 0x75, - 0x75, - 0x7C, - 0x93, - 0x88, - 0x85, - 0x8B, - 0x88, - 0x91, - 0x6A, - 0x00, - 0x04, - 0x77, - 0x00, - 0x04, - 0x72, - 0x6A, - 0x72, - 0x68, - 0x05, - 0x51, - 0x00, - 0x6F, - 0x81, - 0x47, - 0x53, - 0x50, - 0x3A, - 0x50, - 0x48, - 0x37, - 0x31, - 0x43, - 0x43, - 0x17, - 0x5A, - 0x37, - 0x2B, - 0x43, - 0x53, - 0x2B, - 0x66, - 0x50, - 0x47, - 0x3D, - 0x3A, - 0x3D, - 0x3D, - 0x30, - 0x3D, - 0x3D, - 0x50, - 0x3B, - 0x43, - 0x43, - 0x37, - 0x63, - 0x2B, - 0x43, - 0x43, - 0x2B, - 0x66, - 0x53, - 0x3B, - 0x43, - 0x3B, - 0x45, - 0x1D, - 0x2C, - 0x53, - 0x2B, - 0x3A, - 0x53, - 0x47, - 0x30, - 0x3D, - 0x3D, - 0x1A, - 0x21, - 0x43, - 0x31, - 0x21, - 0x31, - 0x21, - 0x31, - 0x21, - 0x0C, - 0x31, - 0x18, - 0x18, - 0x5F, - 0x37, - 0x43, - 0x34, - 0x31, - 0x37, - 0x34, - 0x43, - 0x43, - 0x3B, - 0x45, - 0x3A, - 0x48, - 0x48, - 0x48, - 0x3A, - 0x23, - 0x08, - 0x0C, - 0x23, - 0x08, - 0x2C, - 0x66, - 0x45, - 0x2C, - 0x58, - 0x66, - 0x00, - 0x08, - 0x43, - 0x08, - 0x02, - 0x01, - 0x17, - 0x05, - 0x04, - 0x08, - 0x05, - 0x07, - 0x10, - 0x3C, - 0xF4, - 0xF9, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xAF, - 0xA8, - 0xA8, - 0x04, - 0xAF, - 0x00, - 0x25, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xA5, - 0xC6, - 0xBE, - 0xB1, - 0xBE, - 0xC6, - 0xB1, - 0xB1, - 0xC8, - 0xB9, - 0xB9, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xC8, - 0xBC, - 0xC8, - 0xB9, - 0xBC, - 0xCE, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0x00, - 0x05, - 0xCA, - 0x00, - 0x14, - 0xC1, - 0xC1, - 0xD6, - 0xCC, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xD6, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xD7, - 0xDB, - 0xD7, - 0xCD, - 0x08, - 0xD7, - 0x00, - 0x12, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDC, - 0xDA, - 0xD7, - 0xF8, - 0xDB, - 0xF2, - 0xD7, - 0xF2, - 0xEB, - 0x05, - 0xF2, - 0x00, - 0x14, - 0xE9, - 0xF5, - 0xED, - 0xFB, - 0xED, - 0xF6, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xFD, - 0xE2, - 0xFE, - 0x70, - 0x56, - 0x5C, - 0x74, - 0x77, - 0xA0, - 0xA0, - 0x04, - 0xB4, - 0x09, - 0xB7, - 0x00, - 0x13, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x9E, - 0x92, - 0x88, - 0x88, - 0x93, - 0x87, - 0x91, - 0xAD, - 0xAD, - 0x00, - 0x08, - 0xB7, - 0x00, - 0x2C, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x85, - 0x7C, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x9E, - 0x93, - 0x7C, - 0x75, - 0x7C, - 0x7E, - 0x77, - 0x6E, - 0x68, - 0x72, - 0x6A, - 0x72, - 0x61, - 0x68, - 0x04, - 0x51, - 0x00, - 0x3F, - 0xA3, - 0x53, - 0x53, - 0x47, - 0x5A, - 0x50, - 0x54, - 0x17, - 0x43, - 0x5A, - 0x43, - 0x31, - 0x5A, - 0x31, - 0x5A, - 0x53, - 0x50, - 0x58, - 0x6B, - 0x54, - 0x50, - 0x48, - 0x48, - 0x3D, - 0x3D, - 0x48, - 0x3D, - 0x42, - 0x50, - 0x47, - 0x37, - 0x5A, - 0x2B, - 0x5A, - 0x2C, - 0x37, - 0x2B, - 0x3B, - 0x58, - 0x2C, - 0x37, - 0x58, - 0x3B, - 0x45, - 0x37, - 0x50, - 0x58, - 0x53, - 0x2B, - 0x54, - 0x47, - 0x30, - 0x20, - 0x44, - 0x30, - 0x20, - 0x44, - 0x31, - 0x31, - 0x21, - 0x31, - 0x1D, - 0x17, - 0x00, - 0x04, - 0x21, - 0x00, - 0x2C, - 0x43, - 0x48, - 0x37, - 0x31, - 0x31, - 0x34, - 0x3F, - 0x48, - 0x54, - 0x27, - 0x3B, - 0x3A, - 0x43, - 0x3F, - 0x3F, - 0x20, - 0x08, - 0x13, - 0x20, - 0x27, - 0x30, - 0x48, - 0x5F, - 0x5F, - 0x20, - 0x5F, - 0x53, - 0x00, - 0x13, - 0x18, - 0x08, - 0x03, - 0x10, - 0x04, - 0x10, - 0x08, - 0x04, - 0x04, - 0x04, - 0x08, - 0xC6, - 0xF7, - 0xF7, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA3, - 0xAF, - 0xAF, - 0xAF, - 0xA8, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xAF, - 0xBE, - 0xAF, - 0xBE, - 0xBE, - 0xBE, - 0xB1, - 0xC6, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xBC, - 0xC8, - 0xB9, - 0xC8, - 0xB9, - 0xC8, - 0xB9, - 0xC3, - 0xBC, - 0xC8, - 0x07, - 0xC3, - 0x01, - 0xCA, - 0x01, - 0xC3, - 0x0A, - 0xCA, - 0x00, - 0x43, - 0xC1, - 0xCA, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xD7, - 0xCD, - 0xC7, - 0xD5, - 0xD5, - 0xCD, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD7, - 0xD7, - 0xD1, - 0xD7, - 0xD7, - 0xD7, - 0xD1, - 0xD7, - 0xD1, - 0xD7, - 0xD7, - 0xD1, - 0xDB, - 0xF8, - 0xD7, - 0xD7, - 0xF2, - 0xD5, - 0xDC, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xDC, - 0xF2, - 0xE9, - 0xE9, - 0xF2, - 0xF5, - 0xED, - 0xF5, - 0xED, - 0xFB, - 0xF6, - 0xFB, - 0xF6, - 0xCD, - 0xE1, - 0xF6, - 0xFE, - 0xFD, - 0x98, - 0x64, - 0x64, - 0x69, - 0x74, - 0x83, - 0x00, - 0x07, - 0xB4, - 0x06, - 0xB7, - 0x00, - 0x16, - 0xAD, - 0xB7, - 0xA4, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x9E, - 0x91, - 0x7E, - 0x88, - 0x91, - 0x93, - 0x93, - 0xAD, - 0xB7, - 0xAD, - 0x07, - 0xB7, - 0x00, - 0x07, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x04, - 0x90, - 0x90, - 0x9D, - 0x90, - 0x04, - 0x9D, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x93, - 0x8B, - 0x93, - 0x93, - 0x8B, - 0x8B, - 0x93, - 0x7C, - 0x7C, - 0x8B, - 0x91, - 0x7E, - 0x75, - 0x72, - 0x77, - 0x7E, - 0x6A, - 0x83, - 0x6A, - 0x68, - 0x61, - 0x61, - 0x5E, - 0x5E, - 0x36, - 0x6F, - 0x5F, - 0x5A, - 0x54, - 0x3A, - 0x50, - 0x53, - 0x31, - 0x43, - 0x43, - 0x5A, - 0x17, - 0x5A, - 0x31, - 0x43, - 0x37, - 0x43, - 0x63, - 0x5A, - 0x50, - 0x42, - 0x44, - 0x3D, - 0x48, - 0x3D, - 0x44, - 0x42, - 0x47, - 0x47, - 0x43, - 0x37, - 0x63, - 0x37, - 0x5A, - 0x43, - 0x53, - 0x27, - 0x43, - 0x5F, - 0x5A, - 0x27, - 0x53, - 0x53, - 0x2B, - 0x47, - 0x2C, - 0x47, - 0x53, - 0x43, - 0x30, - 0x48, - 0x3A, - 0x1A, - 0x30, - 0x25, - 0x34, - 0x2B, - 0x3F, - 0x21, - 0x21, - 0x17, - 0x3C, - 0x34, - 0x2B, - 0x31, - 0x31, - 0x17, - 0x45, - 0x43, - 0x34, - 0x3F, - 0x34, - 0x31, - 0x3F, - 0x3A, - 0x43, - 0x3B, - 0x47, - 0x50, - 0x48, - 0x3F, - 0x3F, - 0x18, - 0x23, - 0x38, - 0x0C, - 0x27, - 0x3B, - 0x2C, - 0x45, - 0x5F, - 0x3B, - 0x43, - 0x23, - 0x04, - 0x2B, - 0x07, - 0x00, - 0x04, - 0x31, - 0x05, - 0x04, - 0x04, - 0x05, - 0x10, - 0x04, - 0x84, - 0xF4, - 0xF9, - 0xF9, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x97, - 0xA8, - 0xAF, - 0xA8, - 0xAF, - 0xA8, - 0x97, - 0xBE, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xB1, - 0xAF, - 0xBE, - 0xB1, - 0xB1, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xBC, - 0xC8, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xAA, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xCA, - 0xC1, - 0xCA, - 0xC1, - 0xD6, - 0xC1, - 0x05, - 0xCD, - 0x00, - 0x0C, - 0xD5, - 0xCD, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xDB, - 0xD5, - 0xD5, - 0x0D, - 0xD7, - 0x00, - 0x43, - 0xF2, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xDB, - 0xF8, - 0xE9, - 0xF2, - 0xF2, - 0xED, - 0xF5, - 0xED, - 0xF5, - 0xED, - 0xFB, - 0xEF, - 0xFB, - 0xF6, - 0xC1, - 0xD1, - 0xFE, - 0xFD, - 0xFE, - 0xAA, - 0x60, - 0x4C, - 0x69, - 0x73, - 0x74, - 0x87, - 0xB4, - 0xB4, - 0xB4, - 0x92, - 0xB4, - 0xB4, - 0xB4, - 0xB7, - 0xA0, - 0x92, - 0x88, - 0xA0, - 0x91, - 0xAB, - 0xA4, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0xAB, - 0xA4, - 0xAB, - 0x9E, - 0x91, - 0x9E, - 0x77, - 0x7E, - 0x88, - 0x88, - 0x93, - 0x9E, - 0xAD, - 0xAD, - 0x00, - 0x07, - 0xB7, - 0x00, - 0x1A, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x04, - 0x8B, - 0x00, - 0x80, - 0x88, - 0x7C, - 0x7C, - 0x88, - 0x92, - 0x77, - 0x77, - 0x77, - 0x68, - 0x61, - 0x61, - 0x68, - 0x68, - 0x61, - 0x5E, - 0x5E, - 0x51, - 0x60, - 0x81, - 0x50, - 0x50, - 0x43, - 0x47, - 0x50, - 0x43, - 0x2B, - 0x5A, - 0x5A, - 0x21, - 0x5A, - 0x2B, - 0x43, - 0x2B, - 0x37, - 0x43, - 0x6B, - 0x54, - 0x50, - 0x42, - 0x3D, - 0x3D, - 0x3D, - 0x44, - 0x42, - 0x50, - 0x54, - 0x3A, - 0x43, - 0x43, - 0x43, - 0x63, - 0x2C, - 0x50, - 0x58, - 0x2B, - 0x1D, - 0x50, - 0x50, - 0x3B, - 0x3B, - 0x37, - 0x3A, - 0x45, - 0x47, - 0x3A, - 0x58, - 0x37, - 0x48, - 0x3A, - 0x42, - 0x25, - 0x25, - 0x2E, - 0x31, - 0x3D, - 0x31, - 0x17, - 0x47, - 0x37, - 0x43, - 0x53, - 0x27, - 0x47, - 0x53, - 0x47, - 0x43, - 0x34, - 0x34, - 0x2E, - 0x31, - 0x37, - 0x3F, - 0x31, - 0x53, - 0x47, - 0x3A, - 0x3F, - 0x3F, - 0x20, - 0x18, - 0x3B, - 0x1D, - 0x13, - 0x42, - 0x53, - 0x30, - 0x42, - 0x37, - 0x5F, - 0x43, - 0x07, - 0x04, - 0x07, - 0x00, - 0x03, - 0x31, - 0x04, - 0x04, - 0x04, - 0x05, - 0x10, - 0x07, - 0x29, - 0xEC, - 0xF7, - 0xE0, - 0xFD, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x03, - 0x97, - 0xAF, - 0x97, - 0x00, - 0x07, - 0xAF, - 0x00, - 0x1B, - 0xA5, - 0xBE, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xC6, - 0xC8, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xBC, - 0xC8, - 0xBC, - 0xC3, - 0xC8, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x23, - 0xCA, - 0xCA, - 0xC3, - 0xC3, - 0xE2, - 0xCA, - 0xC1, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xCC, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xD7, - 0xCD, - 0xCD, - 0xC7, - 0xD7, - 0xD7, - 0xD1, - 0xD7, - 0xD1, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x2A, - 0xD5, - 0xD7, - 0xD5, - 0xD7, - 0xF2, - 0xD7, - 0xF2, - 0xD7, - 0xD7, - 0xF2, - 0xD7, - 0xF2, - 0xDC, - 0xF2, - 0xEF, - 0xF2, - 0xF2, - 0xED, - 0xF2, - 0xED, - 0xFB, - 0xF2, - 0xFB, - 0xEF, - 0xEF, - 0xFD, - 0xFD, - 0xEF, - 0x64, - 0xE1, - 0xFE, - 0xFD, - 0xCE, - 0x4D, - 0x64, - 0x64, - 0x69, - 0x68, - 0x74, - 0x83, - 0xB4, - 0x83, - 0x04, - 0xB4, - 0x00, - 0x1C, - 0x83, - 0x83, - 0x74, - 0x68, - 0x72, - 0x74, - 0x77, - 0x83, - 0xA0, - 0xA0, - 0xAD, - 0xAB, - 0xA0, - 0x93, - 0xA0, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x77, - 0x88, - 0x88, - 0x77, - 0x88, - 0x91, - 0x93, - 0xA0, - 0x9E, - 0x04, - 0xB7, - 0x00, - 0x09, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x04, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x04, - 0xA4, - 0x00, - 0x34, - 0x9D, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x9D, - 0x93, - 0x8B, - 0x88, - 0x8B, - 0x85, - 0x93, - 0x85, - 0x88, - 0x77, - 0x6E, - 0x61, - 0x61, - 0x72, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x5E, - 0x61, - 0x5E, - 0x51, - 0x6D, - 0x6B, - 0x58, - 0x5A, - 0x54, - 0x50, - 0x48, - 0x53, - 0x17, - 0x43, - 0x43, - 0x2B, - 0x43, - 0x2B, - 0x43, - 0x31, - 0x43, - 0x5A, - 0x5A, - 0x53, - 0x48, - 0x3F, - 0x3F, - 0x3D, - 0x3D, - 0x04, - 0x42, - 0x00, - 0x52, - 0x3A, - 0x5A, - 0x2B, - 0x63, - 0x2B, - 0x53, - 0x47, - 0x37, - 0x31, - 0x43, - 0x34, - 0x5F, - 0x47, - 0x54, - 0x47, - 0x3D, - 0x3A, - 0x54, - 0x53, - 0x37, - 0x50, - 0x34, - 0x43, - 0x5F, - 0x20, - 0x2E, - 0x25, - 0x3D, - 0x21, - 0x37, - 0x50, - 0x3B, - 0x3B, - 0x45, - 0x53, - 0x53, - 0x45, - 0x45, - 0x50, - 0x37, - 0x3F, - 0x34, - 0x34, - 0x34, - 0x3F, - 0x25, - 0x2B, - 0x2B, - 0x48, - 0x3F, - 0x48, - 0x2E, - 0x18, - 0x30, - 0x3B, - 0x08, - 0x0C, - 0x45, - 0x53, - 0x47, - 0x21, - 0x5F, - 0x50, - 0x48, - 0x00, - 0x07, - 0x00, - 0x00, - 0x0C, - 0x21, - 0x04, - 0x10, - 0x04, - 0x04, - 0x04, - 0x22, - 0xF7, - 0xF9, - 0xDF, - 0xFE, - 0xDF, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x17, - 0xA8, - 0xAF, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0x97, - 0xAF, - 0xAF, - 0xAF, - 0xB1, - 0xAF, - 0xAF, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xB1, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xB1, - 0x00, - 0x07, - 0xB9, - 0x00, - 0x1B, - 0xC8, - 0xBC, - 0xBC, - 0xC3, - 0xC8, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xBC, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xD4, - 0xAA, - 0xCA, - 0xCA, - 0xCD, - 0xCA, - 0xC1, - 0xCA, - 0xCC, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x57, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0xD5, - 0xCD, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD7, - 0xD1, - 0xDC, - 0xF8, - 0xD5, - 0xD7, - 0xF2, - 0xF2, - 0xD7, - 0xD7, - 0xD5, - 0xF8, - 0xDB, - 0xD7, - 0xF2, - 0xF2, - 0xE6, - 0xED, - 0xF2, - 0xF2, - 0xF2, - 0xF5, - 0xF6, - 0xF2, - 0xF6, - 0xF2, - 0xFB, - 0xFD, - 0xEF, - 0xFD, - 0xF6, - 0x94, - 0xB2, - 0xF6, - 0xE0, - 0xD2, - 0x65, - 0x39, - 0x70, - 0x64, - 0x74, - 0x68, - 0x74, - 0x92, - 0x83, - 0x69, - 0x87, - 0x92, - 0x83, - 0x61, - 0x68, - 0x68, - 0x5C, - 0x74, - 0x5C, - 0x69, - 0x69, - 0x68, - 0x83, - 0x88, - 0x92, - 0x92, - 0x92, - 0x93, - 0x92, - 0x91, - 0x88, - 0x88, - 0x77, - 0x00, - 0x04, - 0x7E, - 0x00, - 0xA8, - 0x87, - 0x87, - 0x9E, - 0x92, - 0xA0, - 0xB4, - 0xAB, - 0xB4, - 0xA0, - 0xAB, - 0xAB, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x9E, - 0x85, - 0x90, - 0x8B, - 0x88, - 0x6E, - 0x61, - 0x6A, - 0x6E, - 0x77, - 0x87, - 0x77, - 0x77, - 0x72, - 0x6A, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x5E, - 0x57, - 0x81, - 0x58, - 0x59, - 0x43, - 0x50, - 0x50, - 0x5A, - 0x43, - 0x43, - 0x43, - 0x5A, - 0x2B, - 0x37, - 0x43, - 0x2B, - 0x50, - 0x50, - 0x53, - 0x5A, - 0x50, - 0x3F, - 0x3D, - 0x48, - 0x3D, - 0x30, - 0x44, - 0x42, - 0x54, - 0x48, - 0x2B, - 0x2C, - 0x58, - 0x58, - 0x30, - 0x43, - 0x3A, - 0x37, - 0x2B, - 0x54, - 0x5F, - 0x47, - 0x47, - 0x3D, - 0x47, - 0x48, - 0x47, - 0x58, - 0x63, - 0x27, - 0x50, - 0x25, - 0x50, - 0x47, - 0x25, - 0x3D, - 0x2E, - 0x20, - 0x53, - 0x53, - 0x3B, - 0x45, - 0x37, - 0x47, - 0x47, - 0x37, - 0x2C, - 0x53, - 0x37, - 0x37, - 0x31, - 0x31, - 0x37, - 0x27, - 0x66, - 0x27, - 0x45, - 0x1A, - 0x31, - 0x31, - 0x1A, - 0x23, - 0x25, - 0x2C, - 0x18, - 0x08, - 0x54, - 0x53, - 0x47, - 0x13, - 0x5F, - 0x31, - 0x13, - 0x07, - 0x01, - 0x01, - 0x10, - 0x13, - 0x21, - 0x08, - 0x09, - 0x09, - 0x10, - 0x07, - 0xF4, - 0xF7, - 0xF9, - 0xF9, - 0xEC, - 0xF9, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA3, - 0x9A, - 0xA8, - 0x9A, - 0xAF, - 0xA8, - 0x07, - 0xAF, - 0x00, - 0x18, - 0xB1, - 0xAF, - 0xC6, - 0xB1, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xB9, - 0xB9, - 0xC8, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0x07, - 0xC3, - 0x00, - 0x0F, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xC3, - 0xCC, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x1E, - 0xD6, - 0xCD, - 0xCD, - 0xDC, - 0xC1, - 0xDB, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD5, - 0xD5, - 0xDC, - 0xD7, - 0xF2, - 0xF2, - 0xDC, - 0x04, - 0xF2, - 0x00, - 0x30, - 0xED, - 0xED, - 0xED, - 0xF2, - 0xFB, - 0xED, - 0xFD, - 0xF6, - 0xFB, - 0xFD, - 0xF6, - 0xFD, - 0xE6, - 0x64, - 0xCA, - 0xC9, - 0x74, - 0x71, - 0x4D, - 0x4C, - 0x4B, - 0x73, - 0x5E, - 0x74, - 0x83, - 0x83, - 0x4B, - 0x83, - 0x83, - 0x74, - 0x51, - 0x46, - 0x51, - 0x5C, - 0x5C, - 0x5C, - 0x46, - 0x46, - 0x5E, - 0x5C, - 0x5C, - 0x74, - 0x6E, - 0x77, - 0x87, - 0x77, - 0x83, - 0x7E, - 0x04, - 0x87, - 0x00, - 0x06, - 0x77, - 0x72, - 0x77, - 0x7E, - 0x87, - 0x7E, - 0x04, - 0x92, - 0x00, - 0x2B, - 0xA0, - 0x93, - 0x9E, - 0xA0, - 0xAD, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x8B, - 0x90, - 0x9D, - 0x9D, - 0x8B, - 0xA4, - 0x7C, - 0x93, - 0x93, - 0x88, - 0x88, - 0x6E, - 0x87, - 0x7E, - 0x77, - 0x72, - 0x72, - 0x77, - 0x00, - 0x04, - 0x68, - 0x00, - 0x71, - 0x61, - 0x5E, - 0x51, - 0x66, - 0x63, - 0x50, - 0x54, - 0x48, - 0x48, - 0x43, - 0x47, - 0x43, - 0x31, - 0x43, - 0x2B, - 0x5A, - 0x43, - 0x2B, - 0x53, - 0x31, - 0x63, - 0x50, - 0x50, - 0x44, - 0x3F, - 0x31, - 0x34, - 0x47, - 0x54, - 0x43, - 0x27, - 0x50, - 0x47, - 0x58, - 0x3A, - 0x63, - 0x47, - 0x3D, - 0x50, - 0x3F, - 0x31, - 0x43, - 0x5F, - 0x47, - 0x2B, - 0x48, - 0x3F, - 0x42, - 0x44, - 0x47, - 0x54, - 0x5A, - 0x2B, - 0x43, - 0x2B, - 0x58, - 0x30, - 0x1A, - 0x34, - 0x54, - 0x27, - 0x3B, - 0x47, - 0x47, - 0x3A, - 0x3A, - 0x47, - 0x45, - 0x34, - 0x53, - 0x31, - 0x3F, - 0x31, - 0x47, - 0x3B, - 0x53, - 0x3B, - 0x5F, - 0x5F, - 0x66, - 0x2E, - 0x1A, - 0x2C, - 0x21, - 0x1A, - 0x20, - 0x2E, - 0x25, - 0x5F, - 0x47, - 0x3A, - 0x04, - 0x5F, - 0x50, - 0x02, - 0x01, - 0x02, - 0x10, - 0x08, - 0x17, - 0x1B, - 0x04, - 0x04, - 0x09, - 0x04, - 0xB9, - 0xF7, - 0xF9, - 0xF9, - 0xEC, - 0xF9, - 0xDF, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xAF, - 0x97, - 0x97, - 0xA8, - 0x9A, - 0xA8, - 0xAF, - 0x97, - 0xAF, - 0xAF, - 0xAF, - 0x9A, - 0xAF, - 0xB1, - 0xC6, - 0xA5, - 0xBE, - 0xB1, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x04, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0x05, - 0xBC, - 0x00, - 0xFF, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xC3, - 0xD4, - 0xAA, - 0xCA, - 0xC3, - 0xC1, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xC1, - 0xC1, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xD5, - 0xD7, - 0xCD, - 0xD5, - 0xD7, - 0xDC, - 0xD5, - 0xD7, - 0xD7, - 0xD7, - 0xD1, - 0xD5, - 0xD1, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xF2, - 0xD7, - 0xD5, - 0xF2, - 0xDC, - 0xDC, - 0xF2, - 0xDC, - 0xF2, - 0xF2, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xEF, - 0xF2, - 0xF6, - 0xED, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xE2, - 0x99, - 0x8E, - 0xBB, - 0x77, - 0x6D, - 0x4E, - 0x57, - 0x4C, - 0x4B, - 0x69, - 0x5E, - 0x69, - 0x87, - 0x24, - 0x69, - 0x87, - 0x5C, - 0x36, - 0x46, - 0x36, - 0x36, - 0x41, - 0x5C, - 0x36, - 0x4B, - 0x36, - 0x5C, - 0x4B, - 0x46, - 0x5C, - 0x51, - 0x68, - 0x5E, - 0x6A, - 0x74, - 0x68, - 0x72, - 0x77, - 0x72, - 0x6A, - 0x68, - 0x72, - 0x72, - 0x77, - 0x77, - 0x7E, - 0x87, - 0x87, - 0x87, - 0x7E, - 0x88, - 0x91, - 0x92, - 0x93, - 0x92, - 0x9D, - 0x90, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x85, - 0x91, - 0x88, - 0x7E, - 0x87, - 0x77, - 0x77, - 0x72, - 0x77, - 0x6A, - 0x72, - 0x68, - 0x6A, - 0x68, - 0x5E, - 0x61, - 0x51, - 0x5A, - 0x5A, - 0x54, - 0x59, - 0x48, - 0x50, - 0x48, - 0x5A, - 0x43, - 0x43, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x5A, - 0x2B, - 0x3F, - 0x63, - 0x58, - 0x34, - 0x3D, - 0x48, - 0x30, - 0x37, - 0x54, - 0x47, - 0x1D, - 0x43, - 0x3B, - 0x2B, - 0x6B, - 0x54, - 0x2C, - 0x48, - 0x34, - 0x50, - 0x34, - 0x3F, - 0x53, - 0x53, - 0x58, - 0x3A, - 0x48, - 0x48, - 0x3F, - 0x3D, - 0x48, - 0x20, - 0x43, - 0x43, - 0x1D, - 0x37, - 0x37, - 0x3A, - 0x27, - 0x38, - 0x27, - 0x42, - 0x45, - 0x47, - 0x3A, - 0x47, - 0x38, - 0x3A, - 0x50, - 0x1D, - 0x34, - 0x34, - 0x31, - 0x34, - 0x45, - 0x3B, - 0x45, - 0x47, - 0x45, - 0x27, - 0x5F, - 0x5F, - 0x20, - 0x25, - 0x42, - 0x18, - 0x00, - 0x00, - 0x1C, - 0x3D, - 0x20, - 0x43, - 0x5F, - 0x42, - 0x27, - 0x04, - 0x66, - 0x2E, - 0x00, - 0x00, - 0x02, - 0x29, - 0x17, - 0x17, - 0x04, - 0x05, - 0x0B, - 0x07, - 0xA5, - 0xF7, - 0xF9, - 0xF7, - 0xF4, - 0xEC, - 0xF9, - 0xEC, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x15, - 0x86, - 0xAF, - 0x97, - 0xAF, - 0xAF, - 0xA8, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0xBE, - 0xAF, - 0xB1, - 0x89, - 0xBE, - 0xB1, - 0xBE, - 0xAF, - 0xC6, - 0xBE, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x13, - 0xB9, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xBC, - 0xB9, - 0xC8, - 0xC8, - 0xBC, - 0xBC, - 0xC8, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xBC, - 0x00, - 0x05, - 0xC3, - 0x04, - 0xCA, - 0x00, - 0x74, - 0xC1, - 0xCA, - 0xC1, - 0xC1, - 0xCC, - 0xCC, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0xD1, - 0xD5, - 0xD7, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xDC, - 0xD7, - 0xD5, - 0xF2, - 0xD7, - 0xD5, - 0xD7, - 0xD5, - 0xF2, - 0xDC, - 0xF2, - 0xD7, - 0xF8, - 0xF2, - 0xDC, - 0xDC, - 0xF2, - 0xED, - 0xF2, - 0xED, - 0xF2, - 0xF2, - 0xF5, - 0xF6, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xFD, - 0xFD, - 0xBA, - 0x82, - 0x73, - 0x73, - 0x64, - 0x5D, - 0x4D, - 0x4C, - 0x4B, - 0x5C, - 0x5C, - 0x51, - 0x69, - 0x5C, - 0x4B, - 0x69, - 0x51, - 0x36, - 0x15, - 0x24, - 0x15, - 0x24, - 0x24, - 0x41, - 0x41, - 0x4C, - 0x4C, - 0x2D, - 0x26, - 0x36, - 0x36, - 0x46, - 0x51, - 0x51, - 0x5C, - 0x5E, - 0x5E, - 0x69, - 0x5E, - 0x69, - 0x68, - 0x68, - 0x68, - 0x72, - 0x68, - 0x74, - 0x77, - 0x77, - 0x72, - 0x72, - 0x77, - 0x87, - 0x87, - 0x88, - 0x8B, - 0x91, - 0x93, - 0x9D, - 0x07, - 0x90, - 0x00, - 0x31, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x9E, - 0x91, - 0x93, - 0x75, - 0x87, - 0x77, - 0x77, - 0x77, - 0x6A, - 0x77, - 0x72, - 0x72, - 0x74, - 0x61, - 0x5E, - 0x51, - 0x51, - 0x43, - 0x6B, - 0x50, - 0x5A, - 0x48, - 0x47, - 0x47, - 0x50, - 0x37, - 0x5A, - 0x2C, - 0x5F, - 0x43, - 0x43, - 0x5A, - 0x00, - 0x04, - 0x43, - 0x00, - 0x5B, - 0x63, - 0x48, - 0x2C, - 0x3D, - 0x54, - 0x43, - 0x3B, - 0x37, - 0x53, - 0x2B, - 0x53, - 0x53, - 0x63, - 0x3D, - 0x48, - 0x48, - 0x3D, - 0x30, - 0x48, - 0x50, - 0x53, - 0x48, - 0x50, - 0x31, - 0x48, - 0x42, - 0x44, - 0x3D, - 0x48, - 0x3A, - 0x3F, - 0x5A, - 0x31, - 0x17, - 0x31, - 0x58, - 0x1A, - 0x3A, - 0x42, - 0x54, - 0x50, - 0x3A, - 0x47, - 0x3A, - 0x3D, - 0x3D, - 0x47, - 0x48, - 0x2B, - 0x47, - 0x2C, - 0x3B, - 0x53, - 0x53, - 0x50, - 0x45, - 0x5F, - 0x5F, - 0x5F, - 0x45, - 0x1A, - 0x45, - 0x23, - 0x54, - 0x20, - 0x47, - 0x53, - 0x3A, - 0x23, - 0x1A, - 0x54, - 0x02, - 0x01, - 0x01, - 0x04, - 0x21, - 0x31, - 0x29, - 0x05, - 0x0B, - 0x07, - 0x9B, - 0xFE, - 0xEC, - 0xFE, - 0xF9, - 0xF4, - 0xF9, - 0xDF, - 0xF9, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x97, - 0x97, - 0x97, - 0xAF, - 0xAF, - 0x8D, - 0x97, - 0xAF, - 0x97, - 0x00, - 0x05, - 0xAF, - 0x00, - 0x04, - 0xBE, - 0xAF, - 0xBE, - 0xC6, - 0x06, - 0xB1, - 0x01, - 0xB9, - 0x01, - 0xB1, - 0x07, - 0xB9, - 0x00, - 0x20, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xD4, - 0xCA, - 0xC3, - 0xC5, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xCC, - 0xCA, - 0xCC, - 0xCD, - 0xCD, - 0xCA, - 0xCD, - 0xD6, - 0xD6, - 0x04, - 0xCD, - 0x04, - 0xD5, - 0x00, - 0x51, - 0xC7, - 0xCF, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD7, - 0xD5, - 0xD5, - 0xF2, - 0xD7, - 0xF2, - 0xD1, - 0xF2, - 0xD7, - 0xDC, - 0xD6, - 0xDC, - 0xF2, - 0xF5, - 0xDC, - 0xDC, - 0xF5, - 0xF5, - 0xED, - 0xF6, - 0xF2, - 0xFB, - 0xED, - 0xF6, - 0xEF, - 0xFD, - 0xFD, - 0xFE, - 0xFD, - 0xFD, - 0xD6, - 0x70, - 0x57, - 0x73, - 0x5C, - 0x5D, - 0x39, - 0x32, - 0x4C, - 0x4B, - 0x5C, - 0x46, - 0x5E, - 0x69, - 0x24, - 0x64, - 0x5C, - 0x15, - 0x0D, - 0x0D, - 0x0D, - 0x28, - 0x41, - 0x56, - 0x4C, - 0x4C, - 0x26, - 0x26, - 0x1F, - 0x15, - 0x24, - 0x24, - 0x24, - 0x36, - 0x5C, - 0x46, - 0x5C, - 0x51, - 0x5C, - 0x5E, - 0x5C, - 0x69, - 0x5C, - 0x00, - 0x04, - 0x68, - 0x00, - 0x0C, - 0x6A, - 0x68, - 0x6A, - 0x6A, - 0x83, - 0x87, - 0x7E, - 0x7E, - 0x88, - 0x7C, - 0x85, - 0x93, - 0x06, - 0x8B, - 0x00, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x9D, - 0xA0, - 0x85, - 0x91, - 0x91, - 0x7E, - 0x88, - 0x87, - 0x77, - 0x77, - 0x87, - 0x72, - 0x72, - 0x61, - 0x72, - 0x68, - 0x5E, - 0x51, - 0x51, - 0x5B, - 0x63, - 0x5A, - 0x50, - 0x5A, - 0x47, - 0x47, - 0x50, - 0x48, - 0x5F, - 0x37, - 0x34, - 0x43, - 0x5A, - 0x5A, - 0x5A, - 0x44, - 0x43, - 0x43, - 0x47, - 0x48, - 0x3D, - 0x25, - 0x25, - 0x54, - 0x5F, - 0x63, - 0x2B, - 0x43, - 0x5A, - 0x37, - 0x50, - 0x54, - 0x30, - 0x48, - 0x48, - 0x30, - 0x54, - 0x53, - 0x54, - 0x50, - 0x3D, - 0x3F, - 0x3F, - 0x34, - 0x44, - 0x3D, - 0x48, - 0x34, - 0x5A, - 0x21, - 0x43, - 0x25, - 0x3A, - 0x53, - 0x48, - 0x25, - 0x2B, - 0x3B, - 0x47, - 0x50, - 0x50, - 0x3A, - 0x2C, - 0x3F, - 0x34, - 0x47, - 0x31, - 0x2B, - 0x3B, - 0x58, - 0x47, - 0x38, - 0x47, - 0x47, - 0x3B, - 0x3B, - 0x25, - 0x20, - 0x13, - 0x3F, - 0x3A, - 0x3A, - 0x20, - 0x47, - 0x47, - 0x30, - 0x07, - 0x53, - 0x18, - 0x00, - 0x01, - 0x10, - 0x08, - 0x31, - 0x13, - 0x04, - 0x09, - 0x07, - 0xBC, - 0xF4, - 0xF7, - 0xF4, - 0xDF, - 0xF9, - 0xF7, - 0xF4, - 0xF9, - 0xEC, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x9A, - 0x86, - 0xAF, - 0x86, - 0x97, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xB1, - 0xB9, - 0x89, - 0xAF, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB1, - 0xB9, - 0xB1, - 0x00, - 0x05, - 0xB9, - 0x01, - 0xBC, - 0x01, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x05, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xCA, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x0C, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xCA, - 0xCC, - 0xCD, - 0xCA, - 0xCC, - 0xCC, - 0xD6, - 0x05, - 0xCD, - 0x00, - 0x0A, - 0xD6, - 0xD5, - 0xCD, - 0xD5, - 0xD5, - 0xD5, - 0xDC, - 0xD5, - 0xD5, - 0xD7, - 0x04, - 0xD5, - 0x01, - 0xF2, - 0x05, - 0xD5, - 0x00, - 0x04, - 0xDC, - 0xD5, - 0xF2, - 0xD5, - 0x06, - 0xF2, - 0x00, - 0xDF, - 0xF5, - 0xED, - 0xF5, - 0xF5, - 0xF6, - 0xF5, - 0xF6, - 0xF5, - 0xFD, - 0xFB, - 0xF6, - 0xF6, - 0xFD, - 0xFD, - 0xE2, - 0x82, - 0x70, - 0x64, - 0x51, - 0x4D, - 0x2A, - 0x32, - 0x26, - 0x36, - 0x5C, - 0x46, - 0x46, - 0x68, - 0x26, - 0x57, - 0x46, - 0x24, - 0x0D, - 0x03, - 0x0A, - 0x2D, - 0x26, - 0x4C, - 0x67, - 0x1F, - 0x1F, - 0x19, - 0x1F, - 0x19, - 0x26, - 0x0D, - 0x15, - 0x36, - 0x24, - 0x36, - 0x36, - 0x46, - 0x4B, - 0x36, - 0x46, - 0x51, - 0x51, - 0x5E, - 0x5C, - 0x5E, - 0x69, - 0x69, - 0x61, - 0x68, - 0x68, - 0x77, - 0x6A, - 0x77, - 0x75, - 0x7C, - 0x7E, - 0x7E, - 0x7C, - 0x7C, - 0x85, - 0x7C, - 0x7C, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x9E, - 0x8B, - 0x8B, - 0x8B, - 0x93, - 0x85, - 0xA0, - 0x88, - 0x88, - 0x77, - 0x87, - 0x77, - 0x87, - 0x87, - 0x72, - 0x72, - 0x5E, - 0x5E, - 0x51, - 0x51, - 0x57, - 0x5A, - 0x5F, - 0x48, - 0x50, - 0x48, - 0x43, - 0x47, - 0x3A, - 0x6B, - 0x37, - 0x34, - 0x43, - 0x50, - 0x43, - 0x5A, - 0x43, - 0x21, - 0x34, - 0x66, - 0x42, - 0x1A, - 0x47, - 0x1D, - 0x3B, - 0x43, - 0x43, - 0x37, - 0x53, - 0x53, - 0x47, - 0x50, - 0x50, - 0x3F, - 0x42, - 0x44, - 0x3D, - 0x3D, - 0x42, - 0x58, - 0x3A, - 0x48, - 0x3A, - 0x48, - 0x3F, - 0x3F, - 0x3F, - 0x3D, - 0x44, - 0x2B, - 0x37, - 0x17, - 0x50, - 0x1D, - 0x3B, - 0x25, - 0x3F, - 0x3A, - 0x3D, - 0x58, - 0x47, - 0x3B, - 0x48, - 0x3D, - 0x3F, - 0x27, - 0x3B, - 0x25, - 0x47, - 0x47, - 0x3B, - 0x50, - 0x58, - 0x3A, - 0x3B, - 0x3B, - 0x38, - 0x1A, - 0x34, - 0x31, - 0x17, - 0x47, - 0x47, - 0x20, - 0x54, - 0x48, - 0x23, - 0x04, - 0x38, - 0x01, - 0x00, - 0x02, - 0x07, - 0x18, - 0x31, - 0x10, - 0x09, - 0x13, - 0xE3, - 0xF4, - 0xF7, - 0xF9, - 0xF9, - 0xF7, - 0xDF, - 0xF9, - 0xDF, - 0xEC, - 0xEC, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA3, - 0x84, - 0x97, - 0x9A, - 0xA8, - 0x97, - 0x97, - 0xAF, - 0xAF, - 0x97, - 0xAF, - 0xAF, - 0xAF, - 0x9A, - 0xA5, - 0xAF, - 0xBE, - 0xA5, - 0xC8, - 0xAF, - 0x05, - 0xB1, - 0x00, - 0x0A, - 0xC6, - 0xB9, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0xB9, - 0xC8, - 0x04, - 0xBC, - 0x00, - 0x1F, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAA, - 0xCA, - 0xC3, - 0xCA, - 0xC1, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xCD, - 0xCC, - 0xCA, - 0xD6, - 0xCC, - 0xCC, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0x00, - 0x0F, - 0xD5, - 0x00, - 0x57, - 0xF2, - 0xF2, - 0xD7, - 0xF2, - 0xD5, - 0xF2, - 0xF2, - 0xDC, - 0xF2, - 0xF2, - 0xDC, - 0xF2, - 0xF5, - 0xED, - 0xEF, - 0xF5, - 0xEF, - 0xED, - 0xFB, - 0xFB, - 0xFD, - 0xCC, - 0xE1, - 0xF6, - 0xF6, - 0xB2, - 0xFB, - 0xAA, - 0x4C, - 0x4C, - 0x36, - 0x24, - 0x32, - 0x1F, - 0x15, - 0x15, - 0x46, - 0x5C, - 0x46, - 0x5C, - 0x4B, - 0x4B, - 0x4C, - 0x24, - 0x26, - 0x0A, - 0x0A, - 0x2D, - 0x26, - 0x4C, - 0x26, - 0x19, - 0x1C, - 0x32, - 0x2F, - 0x19, - 0x0D, - 0x0D, - 0x0D, - 0x15, - 0x15, - 0x41, - 0x4B, - 0x24, - 0x41, - 0x24, - 0x36, - 0x36, - 0x51, - 0x36, - 0x51, - 0x46, - 0x5E, - 0x69, - 0x5E, - 0x5E, - 0x68, - 0x72, - 0x72, - 0x6A, - 0x6E, - 0x77, - 0x6E, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x03, - 0x8B, - 0x90, - 0x90, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x30, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9E, - 0x9E, - 0x8B, - 0x93, - 0xA4, - 0x9E, - 0x91, - 0x93, - 0x75, - 0x87, - 0x85, - 0x87, - 0x87, - 0x72, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x51, - 0x36, - 0x81, - 0x5A, - 0x48, - 0x50, - 0x53, - 0x37, - 0x66, - 0x37, - 0x58, - 0x43, - 0x48, - 0x37, - 0x50, - 0x17, - 0x43, - 0x34, - 0x38, - 0x43, - 0x45, - 0x3A, - 0x58, - 0x04, - 0x47, - 0x00, - 0x4B, - 0x6B, - 0x53, - 0x5A, - 0x43, - 0x58, - 0x34, - 0x54, - 0x30, - 0x59, - 0x42, - 0x3D, - 0x3D, - 0x63, - 0x48, - 0x50, - 0x3D, - 0x3F, - 0x31, - 0x3F, - 0x3F, - 0x3D, - 0x3F, - 0x34, - 0x21, - 0x47, - 0x2E, - 0x38, - 0x54, - 0x48, - 0x34, - 0x34, - 0x3D, - 0x42, - 0x47, - 0x3B, - 0x48, - 0x3D, - 0x48, - 0x34, - 0x3B, - 0x3B, - 0x3D, - 0x1D, - 0x42, - 0x58, - 0x47, - 0x3A, - 0x48, - 0x3B, - 0x45, - 0x38, - 0x30, - 0x30, - 0x31, - 0x3F, - 0x45, - 0x54, - 0x20, - 0x53, - 0x30, - 0x08, - 0x21, - 0x07, - 0x00, - 0x01, - 0x01, - 0x07, - 0x17, - 0x10, - 0x08, - 0x2F, - 0xDF, - 0xF7, - 0xDF, - 0xF7, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x05, - 0xF4, - 0xF9, - 0xEC, - 0xDF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x84, - 0x97, - 0x97, - 0x86, - 0x06, - 0x97, - 0x00, - 0x0C, - 0xA5, - 0x89, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xB1, - 0x89, - 0xB1, - 0xB1, - 0xBE, - 0x05, - 0xB1, - 0x04, - 0xB9, - 0x00, - 0x29, - 0xB1, - 0xB9, - 0xB9, - 0x8F, - 0xB9, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xC8, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xC3, - 0xCA, - 0xCC, - 0xCC, - 0xCA, - 0xCC, - 0xCA, - 0xCD, - 0xD6, - 0xCC, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD5, - 0xCD, - 0xD5, - 0xCD, - 0x00, - 0x06, - 0xD5, - 0x00, - 0x05, - 0xF2, - 0xD5, - 0xD5, - 0xD5, - 0xF2, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x3C, - 0xF2, - 0xDC, - 0xD5, - 0xF2, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xED, - 0xF5, - 0xF5, - 0xF5, - 0xF2, - 0xFB, - 0xFD, - 0xF5, - 0xF6, - 0xF6, - 0xEF, - 0x67, - 0xE1, - 0xFD, - 0xBA, - 0x70, - 0x95, - 0x4D, - 0x4C, - 0x26, - 0x15, - 0x32, - 0x1F, - 0x0D, - 0x15, - 0x24, - 0x46, - 0x46, - 0x36, - 0x5C, - 0x32, - 0x4C, - 0x26, - 0x1F, - 0x1F, - 0x0A, - 0x12, - 0x49, - 0x41, - 0x26, - 0x11, - 0x19, - 0x1F, - 0x2A, - 0x1E, - 0x1C, - 0x0F, - 0x0D, - 0x0D, - 0x15, - 0x26, - 0x26, - 0x04, - 0x15, - 0x00, - 0x20, - 0x24, - 0x36, - 0x36, - 0x36, - 0x46, - 0x4B, - 0x5C, - 0x5C, - 0x51, - 0x72, - 0x72, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x75, - 0x72, - 0x6E, - 0x7C, - 0x6E, - 0x7C, - 0x6E, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x8B, - 0x88, - 0x8B, - 0x9E, - 0x9D, - 0x9D, - 0x07, - 0x90, - 0x00, - 0x23, - 0x8B, - 0x85, - 0x93, - 0x8B, - 0x8B, - 0x93, - 0x88, - 0x92, - 0x75, - 0x72, - 0x6A, - 0x68, - 0x77, - 0x61, - 0x61, - 0x5E, - 0x51, - 0x51, - 0x46, - 0x51, - 0x6B, - 0x50, - 0x54, - 0x58, - 0x53, - 0x50, - 0x38, - 0x53, - 0x47, - 0x43, - 0x50, - 0x59, - 0x53, - 0x21, - 0x43, - 0x00, - 0x05, - 0x37, - 0x00, - 0x59, - 0x47, - 0x25, - 0x3A, - 0x3A, - 0x53, - 0x53, - 0x6B, - 0x53, - 0x5A, - 0x47, - 0x34, - 0x50, - 0x3F, - 0x3F, - 0x48, - 0x44, - 0x30, - 0x53, - 0x25, - 0x54, - 0x3D, - 0x48, - 0x3F, - 0x34, - 0x30, - 0x3D, - 0x3A, - 0x3D, - 0x23, - 0x31, - 0x0C, - 0x1A, - 0x53, - 0x3A, - 0x3D, - 0x3D, - 0x34, - 0x3D, - 0x3A, - 0x44, - 0x47, - 0x50, - 0x3A, - 0x50, - 0x2C, - 0x2C, - 0x42, - 0x0C, - 0x58, - 0x47, - 0x54, - 0x53, - 0x20, - 0x3D, - 0x38, - 0x42, - 0x38, - 0x3D, - 0x34, - 0x31, - 0x48, - 0x5F, - 0x20, - 0x42, - 0x13, - 0x0C, - 0x13, - 0x01, - 0x00, - 0x01, - 0x05, - 0x10, - 0x21, - 0x0C, - 0x67, - 0xFA, - 0xF7, - 0xF7, - 0xF9, - 0xF9, - 0xF7, - 0xF7, - 0xF9, - 0xF4, - 0xF9, - 0xF4, - 0xEC, - 0xF9, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x01, - 0x86, - 0x05, - 0x97, - 0x00, - 0x1C, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0x9A, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xBE, - 0xBE, - 0xA5, - 0xBE, - 0xB1, - 0xBE, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xB9, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x23, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xC3, - 0xC5, - 0xCA, - 0xCC, - 0xCC, - 0xCC, - 0xCA, - 0xD6, - 0xCC, - 0xD6, - 0xD6, - 0xCD, - 0xD3, - 0xCD, - 0xD6, - 0xCD, - 0xD5, - 0xD5, - 0xD5, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x5C, - 0xF2, - 0xD5, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xF2, - 0xDC, - 0xF2, - 0xF2, - 0xF2, - 0xED, - 0xF5, - 0xF2, - 0xF5, - 0xEF, - 0xF6, - 0xF6, - 0xFB, - 0xF2, - 0xF6, - 0xFB, - 0xAA, - 0x57, - 0x67, - 0xFB, - 0xE2, - 0x70, - 0x8E, - 0x67, - 0x32, - 0x12, - 0x0A, - 0x0D, - 0x12, - 0x0D, - 0x0D, - 0x2D, - 0x36, - 0x46, - 0x36, - 0x51, - 0x32, - 0x4C, - 0x15, - 0x1F, - 0x1F, - 0x0D, - 0x2D, - 0x2D, - 0x2D, - 0x12, - 0x0A, - 0x19, - 0x1C, - 0x1C, - 0x2F, - 0x32, - 0x2D, - 0x00, - 0x03, - 0x12, - 0x2D, - 0x19, - 0x19, - 0x12, - 0x12, - 0x15, - 0x15, - 0x24, - 0x24, - 0x15, - 0x24, - 0x36, - 0x5C, - 0x5C, - 0x5E, - 0x68, - 0x68, - 0x72, - 0x72, - 0x72, - 0x6A, - 0x72, - 0x6E, - 0x77, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x05, - 0x6E, - 0x00, - 0x3F, - 0x7C, - 0x7C, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x9D, - 0x90, - 0x8B, - 0x8B, - 0x9E, - 0x85, - 0x8B, - 0x93, - 0x8B, - 0xAD, - 0x7E, - 0x7C, - 0x77, - 0x87, - 0x6A, - 0x7E, - 0x77, - 0x72, - 0x83, - 0x74, - 0x68, - 0x51, - 0x5E, - 0x36, - 0x6B, - 0x47, - 0x48, - 0x54, - 0x50, - 0x34, - 0x43, - 0x37, - 0x58, - 0x58, - 0x54, - 0x48, - 0x25, - 0x3F, - 0x43, - 0x5A, - 0x43, - 0x31, - 0x37, - 0x37, - 0x2B, - 0x38, - 0x3A, - 0x3B, - 0x54, - 0x5A, - 0x5F, - 0x43, - 0x47, - 0x5A, - 0x3D, - 0x00, - 0x04, - 0x3F, - 0x00, - 0x3B, - 0x48, - 0x3D, - 0x54, - 0x48, - 0x37, - 0x3F, - 0x31, - 0x30, - 0x34, - 0x44, - 0x58, - 0x47, - 0x3A, - 0x1A, - 0x18, - 0x18, - 0x37, - 0x3B, - 0x3D, - 0x3D, - 0x3D, - 0x34, - 0x34, - 0x3D, - 0x3D, - 0x25, - 0x48, - 0x50, - 0x2C, - 0x47, - 0x3A, - 0x42, - 0x48, - 0x50, - 0x58, - 0x48, - 0x38, - 0x25, - 0x45, - 0x54, - 0x47, - 0x3A, - 0x37, - 0x3D, - 0x2E, - 0x34, - 0x5F, - 0x18, - 0x20, - 0x04, - 0x42, - 0x01, - 0x01, - 0x00, - 0x01, - 0x01, - 0x04, - 0x21, - 0x8D, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x0A, - 0xF9, - 0xF7, - 0xF7, - 0xDF, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x03, - 0x97, - 0x84, - 0x84, - 0x00, - 0x06, - 0x97, - 0x00, - 0x0C, - 0x9A, - 0xAF, - 0x97, - 0x97, - 0xAF, - 0x89, - 0xB1, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xAF, - 0x05, - 0xB1, - 0x00, - 0x0B, - 0xC6, - 0xB1, - 0xB9, - 0xB9, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xBC, - 0xB1, - 0xB9, - 0x00, - 0x07, - 0xBC, - 0x07, - 0xC3, - 0x00, - 0x09, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xCC, - 0x00, - 0x20, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xD6, - 0xCD, - 0xD5, - 0xD5, - 0xD6, - 0xD5, - 0xDC, - 0xCF, - 0xD5, - 0xD5, - 0xD5, - 0xF2, - 0xCD, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xD5, - 0xD5, - 0xF2, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xED, - 0x06, - 0xF5, - 0x00, - 0xCA, - 0x9C, - 0xCA, - 0xE2, - 0xE2, - 0x49, - 0x0F, - 0x4C, - 0xEF, - 0x8E, - 0x64, - 0x57, - 0x12, - 0x32, - 0x06, - 0x0A, - 0x0A, - 0x0D, - 0x0D, - 0x0D, - 0x36, - 0x5C, - 0x36, - 0x5C, - 0x4B, - 0x64, - 0x1F, - 0x12, - 0x12, - 0x0D, - 0x2D, - 0x15, - 0x12, - 0x0D, - 0x0B, - 0x0B, - 0x19, - 0x2F, - 0x19, - 0x1E, - 0x19, - 0x0A, - 0x03, - 0x0D, - 0x0D, - 0x0F, - 0x19, - 0x19, - 0x1F, - 0x19, - 0x26, - 0x0D, - 0x15, - 0x15, - 0x24, - 0x24, - 0x24, - 0x5C, - 0x5E, - 0x5E, - 0x69, - 0x68, - 0x72, - 0x72, - 0x6A, - 0x77, - 0x75, - 0x77, - 0x77, - 0x6E, - 0x6A, - 0x75, - 0x6E, - 0x6E, - 0x6E, - 0x61, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x85, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x85, - 0x85, - 0x8B, - 0x7C, - 0x93, - 0x85, - 0x93, - 0x9E, - 0x75, - 0x9D, - 0x7E, - 0x88, - 0x7E, - 0x91, - 0x87, - 0x87, - 0x83, - 0x6A, - 0x68, - 0x51, - 0x5E, - 0x46, - 0x46, - 0x66, - 0x58, - 0x47, - 0x58, - 0x58, - 0x58, - 0x53, - 0x50, - 0x50, - 0x63, - 0x58, - 0x43, - 0x31, - 0x43, - 0x5A, - 0x43, - 0x43, - 0x37, - 0x31, - 0x43, - 0x2B, - 0x3F, - 0x48, - 0x3A, - 0x47, - 0x53, - 0x5A, - 0x5A, - 0x43, - 0x48, - 0x43, - 0x48, - 0x3F, - 0x3D, - 0x2E, - 0x44, - 0x3D, - 0x53, - 0x3F, - 0x3F, - 0x48, - 0x3F, - 0x3F, - 0x34, - 0x54, - 0x30, - 0x3B, - 0x47, - 0x54, - 0x44, - 0x0C, - 0x25, - 0x47, - 0x47, - 0x3D, - 0x3F, - 0x31, - 0x34, - 0x31, - 0x3F, - 0x48, - 0x21, - 0x34, - 0x58, - 0x2C, - 0x3F, - 0x3F, - 0x47, - 0x47, - 0x42, - 0x47, - 0x2E, - 0x3A, - 0x3B, - 0x38, - 0x30, - 0x3D, - 0x48, - 0x3F, - 0x34, - 0x2E, - 0x38, - 0x0C, - 0x13, - 0x45, - 0x13, - 0x00, - 0x01, - 0x00, - 0x05, - 0x01, - 0x0C, - 0x71, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x0B, - 0xDF, - 0xF7, - 0xDF, - 0xF9, - 0xEC, - 0xEC, - 0xF9, - 0xF9, - 0xEC, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x79, - 0x86, - 0x97, - 0x86, - 0x84, - 0x00, - 0x06, - 0x97, - 0x00, - 0x0B, - 0x9A, - 0xAF, - 0x9A, - 0xAF, - 0x9A, - 0xA5, - 0x89, - 0xA5, - 0xB1, - 0xB1, - 0xAF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x9F, - 0xC6, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xBC, - 0xB1, - 0xB9, - 0x95, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xBC, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xBC, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xCC, - 0xD6, - 0xD6, - 0xCA, - 0xD6, - 0xCC, - 0xCD, - 0xD6, - 0xD5, - 0xCD, - 0xD5, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD5, - 0xD6, - 0xD5, - 0xD6, - 0xD5, - 0xD6, - 0xD5, - 0xD5, - 0xD5, - 0xF2, - 0xD5, - 0xD6, - 0xF2, - 0xF2, - 0xF2, - 0xD6, - 0xDC, - 0xF5, - 0xF2, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xF6, - 0xF5, - 0xFB, - 0xDC, - 0x67, - 0x82, - 0xF6, - 0xAA, - 0x0A, - 0x0B, - 0x32, - 0x95, - 0x64, - 0x2D, - 0x2D, - 0x12, - 0x09, - 0x03, - 0x03, - 0x0A, - 0x03, - 0x0D, - 0x24, - 0x4B, - 0x36, - 0x24, - 0x64, - 0x4B, - 0x32, - 0x26, - 0x0D, - 0x0A, - 0x2D, - 0x0D, - 0x26, - 0x0F, - 0x0A, - 0x19, - 0x0E, - 0x1C, - 0x1B, - 0x35, - 0x1E, - 0x0F, - 0x0A, - 0x0A, - 0x0B, - 0x12, - 0x0F, - 0x19, - 0x19, - 0x1C, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x15, - 0x2D, - 0x24, - 0x4B, - 0x5E, - 0x46, - 0x69, - 0x73, - 0x74, - 0x72, - 0x6A, - 0x77, - 0x83, - 0x75, - 0x6E, - 0x77, - 0x7E, - 0x6A, - 0x6A, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x7C, - 0x7C, - 0x7C, - 0x6E, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x3C, - 0x85, - 0x85, - 0x7C, - 0x93, - 0x85, - 0x7C, - 0x93, - 0x88, - 0x93, - 0x7E, - 0x88, - 0x88, - 0x87, - 0x6E, - 0x74, - 0x87, - 0x83, - 0x83, - 0x46, - 0x51, - 0x46, - 0x81, - 0x54, - 0x54, - 0x54, - 0x5A, - 0x50, - 0x53, - 0x54, - 0x47, - 0x63, - 0x5F, - 0x43, - 0x43, - 0x43, - 0x54, - 0x43, - 0x43, - 0x43, - 0x2B, - 0x43, - 0x31, - 0x37, - 0x54, - 0x58, - 0x3A, - 0x54, - 0x43, - 0x6B, - 0x43, - 0x43, - 0x43, - 0x48, - 0x48, - 0x3D, - 0x3F, - 0x34, - 0x3D, - 0x3D, - 0x48, - 0x04, - 0x34, - 0x00, - 0x42, - 0x54, - 0x3A, - 0x25, - 0x54, - 0x2C, - 0x47, - 0x30, - 0x30, - 0x0C, - 0x45, - 0x42, - 0x48, - 0x30, - 0x31, - 0x31, - 0x34, - 0x31, - 0x31, - 0x2E, - 0x47, - 0x3B, - 0x47, - 0x3A, - 0x48, - 0x47, - 0x48, - 0x3D, - 0x38, - 0x2E, - 0x3D, - 0x47, - 0x45, - 0x38, - 0x47, - 0x47, - 0x3D, - 0x31, - 0x20, - 0x13, - 0x07, - 0x13, - 0x3B, - 0x02, - 0x05, - 0x03, - 0x00, - 0x05, - 0x04, - 0x40, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xDF, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x04, - 0x86, - 0x84, - 0x84, - 0x84, - 0x06, - 0x97, - 0x00, - 0x1D, - 0xAF, - 0x97, - 0x97, - 0x89, - 0xA5, - 0xA5, - 0xAF, - 0xB1, - 0xA5, - 0xAF, - 0xA5, - 0xB1, - 0xBC, - 0x89, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xBC, - 0xC6, - 0xBC, - 0x8F, - 0xC8, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x4A, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xD6, - 0xCA, - 0xD6, - 0xD3, - 0xCD, - 0xD3, - 0xD6, - 0xD5, - 0xD6, - 0xD6, - 0xD5, - 0xF2, - 0xCD, - 0xD5, - 0xD6, - 0xD5, - 0xD3, - 0xCD, - 0xF2, - 0xD6, - 0xDC, - 0xF2, - 0xCD, - 0xD6, - 0xF2, - 0xF2, - 0xF2, - 0xD6, - 0xD6, - 0xF2, - 0xF5, - 0xD6, - 0xF5, - 0xF5, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xFB, - 0xF6, - 0xFB, - 0x9F, - 0x12, - 0x70, - 0xFE, - 0x70, - 0x00, - 0x12, - 0x32, - 0x26, - 0x15, - 0x0D, - 0x15, - 0x15, - 0x04, - 0x03, - 0x00, - 0x3E, - 0x0D, - 0x15, - 0x36, - 0x46, - 0x24, - 0x5C, - 0x57, - 0x64, - 0x1F, - 0x12, - 0x19, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x0B, - 0x09, - 0x1F, - 0x1B, - 0x14, - 0x29, - 0x35, - 0x14, - 0x09, - 0x0F, - 0x0A, - 0x11, - 0x0E, - 0x0F, - 0x0F, - 0x14, - 0x03, - 0x24, - 0x0A, - 0x0D, - 0x15, - 0x0D, - 0x26, - 0x4B, - 0x51, - 0x4B, - 0x51, - 0x5C, - 0x69, - 0x6A, - 0x7E, - 0x77, - 0x7E, - 0x87, - 0x77, - 0x87, - 0x6E, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x04, - 0x6E, - 0x00, - 0x52, - 0x61, - 0x6E, - 0x75, - 0x75, - 0x7E, - 0x75, - 0x6E, - 0x88, - 0x75, - 0x7C, - 0x7E, - 0x85, - 0x88, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x87, - 0x77, - 0x68, - 0x5E, - 0x51, - 0x51, - 0x36, - 0x5A, - 0x58, - 0x58, - 0x54, - 0x50, - 0x54, - 0x5A, - 0x50, - 0x43, - 0x58, - 0x63, - 0x5A, - 0x43, - 0x43, - 0x59, - 0x37, - 0x43, - 0x43, - 0x31, - 0x31, - 0x43, - 0x3F, - 0x48, - 0x63, - 0x6B, - 0x3A, - 0x2C, - 0x5A, - 0x3F, - 0x58, - 0x27, - 0x53, - 0x58, - 0x54, - 0x37, - 0x3D, - 0x31, - 0x50, - 0x3A, - 0x50, - 0x3D, - 0x31, - 0x42, - 0x3B, - 0x3A, - 0x38, - 0x2C, - 0x47, - 0x38, - 0x47, - 0x30, - 0x54, - 0x47, - 0x47, - 0x31, - 0x31, - 0x31, - 0x2E, - 0x04, - 0x31, - 0x00, - 0x28, - 0x3A, - 0x48, - 0x50, - 0x3A, - 0x48, - 0x3F, - 0x48, - 0x3D, - 0x25, - 0x37, - 0x30, - 0x47, - 0x54, - 0x38, - 0x50, - 0x48, - 0x3F, - 0x3F, - 0x2E, - 0x07, - 0x08, - 0x1A, - 0x45, - 0x00, - 0x0C, - 0x01, - 0x00, - 0x05, - 0x07, - 0x79, - 0xFA, - 0xFA, - 0xDF, - 0xF7, - 0xDF, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0x04, - 0xEC, - 0x00, - 0x03, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x84, - 0x84, - 0x84, - 0x00, - 0x04, - 0x97, - 0x00, - 0x14, - 0x84, - 0x97, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0xAF, - 0xAF, - 0x97, - 0x89, - 0xB1, - 0x9A, - 0xB1, - 0xA5, - 0xAF, - 0xB1, - 0xA5, - 0xC6, - 0x9B, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x09, - 0xB9, - 0xBC, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0x00, - 0x07, - 0xBC, - 0x08, - 0xC3, - 0x00, - 0x04, - 0xCC, - 0xC3, - 0xCA, - 0xC3, - 0x05, - 0xCC, - 0x00, - 0x20, - 0xD6, - 0xD3, - 0xCC, - 0xD6, - 0xD6, - 0xD3, - 0xD3, - 0xD6, - 0xD3, - 0xD6, - 0xD3, - 0xD6, - 0xD3, - 0xF2, - 0xD6, - 0xF2, - 0xCD, - 0xF2, - 0xE9, - 0xBA, - 0xB2, - 0xD5, - 0xD3, - 0xF2, - 0xD6, - 0xD5, - 0xD6, - 0xF2, - 0xF2, - 0xF5, - 0xF5, - 0xEF, - 0x05, - 0xF5, - 0x00, - 0x4C, - 0xF6, - 0xFB, - 0xF6, - 0xEF, - 0x82, - 0x0B, - 0x82, - 0xEF, - 0x28, - 0x0A, - 0x0F, - 0x1F, - 0x0F, - 0x12, - 0x0D, - 0x0D, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x00, - 0x26, - 0x57, - 0x4C, - 0x24, - 0x24, - 0x69, - 0x57, - 0x4C, - 0x1F, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x0F, - 0x0F, - 0x0A, - 0x14, - 0x1C, - 0x29, - 0x29, - 0x29, - 0x1C, - 0x16, - 0x0F, - 0x06, - 0x2A, - 0x14, - 0x19, - 0x0F, - 0x0F, - 0x0B, - 0x26, - 0x0A, - 0x0A, - 0x0A, - 0x15, - 0x15, - 0x41, - 0x51, - 0x24, - 0x4C, - 0x5C, - 0x69, - 0x72, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x77, - 0x61, - 0x77, - 0x61, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x8A, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x72, - 0x6E, - 0x72, - 0x75, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x87, - 0x7E, - 0x77, - 0x92, - 0x68, - 0x74, - 0x77, - 0x69, - 0x51, - 0x51, - 0x36, - 0x7B, - 0x6B, - 0x54, - 0x63, - 0x58, - 0x50, - 0x3B, - 0x5A, - 0x50, - 0x6B, - 0x5A, - 0x54, - 0x5A, - 0x50, - 0x34, - 0x37, - 0x43, - 0x5A, - 0x43, - 0x43, - 0x37, - 0x31, - 0x34, - 0x5A, - 0x43, - 0x54, - 0x54, - 0x50, - 0x47, - 0x53, - 0x54, - 0x47, - 0x3A, - 0x2C, - 0x3B, - 0x3B, - 0x3A, - 0x27, - 0x58, - 0x3F, - 0x3F, - 0x34, - 0x47, - 0x30, - 0x38, - 0x47, - 0x3A, - 0x54, - 0x3A, - 0x3A, - 0x30, - 0x5F, - 0x1A, - 0x42, - 0x3F, - 0x3F, - 0x3F, - 0x25, - 0x2E, - 0x31, - 0x25, - 0x34, - 0x48, - 0x45, - 0x30, - 0x48, - 0x3D, - 0x3A, - 0x31, - 0x30, - 0x3D, - 0x31, - 0x3D, - 0x3D, - 0x47, - 0x42, - 0x47, - 0x50, - 0x48, - 0x31, - 0x23, - 0x02, - 0x0C, - 0x3F, - 0x3D, - 0x00, - 0x02, - 0x03, - 0x03, - 0x01, - 0x3C, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xD8, - 0xF7, - 0xF7, - 0xF4, - 0xDF, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x06, - 0x84, - 0x86, - 0x86, - 0x84, - 0x84, - 0x84, - 0x05, - 0x97, - 0x00, - 0x0F, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0xB1, - 0x89, - 0xB1, - 0xB1, - 0xA5, - 0xBE, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x12, - 0xB9, - 0xB1, - 0xB1, - 0xB1, - 0xBC, - 0x8F, - 0xC6, - 0xBC, - 0xB9, - 0x8F, - 0xC8, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0x04, - 0xC3, - 0x00, - 0x57, - 0xCC, - 0xC3, - 0xCC, - 0xC3, - 0xCC, - 0xCA, - 0xCC, - 0xCC, - 0xCA, - 0xD9, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xD6, - 0xD3, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0xD5, - 0xD6, - 0xD6, - 0xF2, - 0xCD, - 0xD6, - 0xD5, - 0xF5, - 0xD5, - 0x98, - 0x0F, - 0x06, - 0x00, - 0x64, - 0xF5, - 0xF2, - 0xD6, - 0xF5, - 0xF2, - 0xF5, - 0xD6, - 0xD6, - 0xF5, - 0xF2, - 0xF5, - 0xED, - 0xF5, - 0xF6, - 0xF5, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xC1, - 0x4F, - 0x32, - 0x57, - 0x95, - 0x03, - 0x06, - 0x19, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x0D, - 0x15, - 0x24, - 0x4C, - 0x32, - 0x32, - 0x4B, - 0x69, - 0x26, - 0x1E, - 0x1C, - 0x1C, - 0x0F, - 0x0F, - 0x19, - 0x06, - 0x0B, - 0x14, - 0x00, - 0x04, - 0x29, - 0x00, - 0x26, - 0x1B, - 0x1E, - 0x1C, - 0x00, - 0x2A, - 0x14, - 0x14, - 0x0B, - 0x1C, - 0x0B, - 0x03, - 0x0D, - 0x0A, - 0x0D, - 0x0A, - 0x15, - 0x24, - 0x36, - 0x4C, - 0x24, - 0x4B, - 0x5C, - 0x73, - 0x6A, - 0x77, - 0x87, - 0x77, - 0x88, - 0x83, - 0x77, - 0x61, - 0x6E, - 0x6A, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x51, - 0x05, - 0x61, - 0x00, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6A, - 0x6E, - 0x6E, - 0x6A, - 0x6A, - 0x75, - 0x6E, - 0x87, - 0x77, - 0x6E, - 0x87, - 0x77, - 0x68, - 0x77, - 0x69, - 0x5E, - 0x51, - 0x24, - 0x15, - 0x4E, - 0x44, - 0x6B, - 0x54, - 0x54, - 0x30, - 0x6B, - 0x54, - 0x54, - 0x63, - 0x50, - 0x5A, - 0x43, - 0x43, - 0x3F, - 0x31, - 0x37, - 0x43, - 0x21, - 0x5A, - 0x2B, - 0x31, - 0x2B, - 0x43, - 0x5A, - 0x5A, - 0x3B, - 0x50, - 0x54, - 0x1D, - 0x53, - 0x30, - 0x53, - 0x2C, - 0x53, - 0x43, - 0x58, - 0x34, - 0x54, - 0x48, - 0x34, - 0x3A, - 0x53, - 0x47, - 0x38, - 0x42, - 0x38, - 0x53, - 0x47, - 0x3D, - 0x3F, - 0x1D, - 0x47, - 0x2B, - 0x3F, - 0x31, - 0x34, - 0x31, - 0x2E, - 0x31, - 0x31, - 0x34, - 0x34, - 0x25, - 0x48, - 0x3F, - 0x3F, - 0x34, - 0x3F, - 0x3D, - 0x2E, - 0x34, - 0x3F, - 0x34, - 0x20, - 0x42, - 0x63, - 0x31, - 0x48, - 0x3F, - 0x08, - 0x02, - 0x37, - 0x53, - 0x13, - 0x04, - 0x01, - 0x00, - 0x04, - 0x07, - 0x97, - 0xD8, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x0C, - 0xF4, - 0xF4, - 0xF7, - 0xEC, - 0xF4, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x07, - 0x84, - 0x86, - 0x84, - 0x84, - 0x84, - 0x97, - 0x84, - 0x00, - 0x07, - 0x97, - 0x00, - 0x06, - 0x9A, - 0x97, - 0x9A, - 0xAF, - 0xA5, - 0x89, - 0x04, - 0xA5, - 0x00, - 0x04, - 0xB9, - 0xA5, - 0xB1, - 0xA5, - 0x06, - 0xB1, - 0x00, - 0x06, - 0xB9, - 0xB9, - 0xBC, - 0x9B, - 0xBC, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x2E, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xCC, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xD3, - 0xD9, - 0xCA, - 0xCC, - 0xCA, - 0xD3, - 0xCC, - 0xCD, - 0xD9, - 0xD3, - 0xD6, - 0xD6, - 0xF5, - 0xD3, - 0xD6, - 0xD6, - 0xD3, - 0xED, - 0xF5, - 0xEB, - 0x57, - 0x0A, - 0x0A, - 0x03, - 0x03, - 0x12, - 0xF2, - 0xD3, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xD6, - 0xD6, - 0x06, - 0xF5, - 0x00, - 0x51, - 0xF6, - 0xFB, - 0xF5, - 0xFD, - 0xFB, - 0xF6, - 0xFD, - 0xCA, - 0x1C, - 0x19, - 0x19, - 0x26, - 0x03, - 0x06, - 0x1C, - 0x1F, - 0x12, - 0x12, - 0x0A, - 0x03, - 0x0A, - 0x06, - 0x00, - 0x0D, - 0x4D, - 0x26, - 0x32, - 0x1C, - 0x1C, - 0x1F, - 0x41, - 0x1C, - 0x11, - 0x1C, - 0x11, - 0x1C, - 0x0F, - 0x0B, - 0x0B, - 0x16, - 0x1E, - 0x29, - 0x16, - 0x1E, - 0x16, - 0x1B, - 0x1C, - 0x03, - 0x35, - 0x1B, - 0x29, - 0x09, - 0x2A, - 0x11, - 0x06, - 0x0D, - 0x03, - 0x0A, - 0x0A, - 0x15, - 0x15, - 0x15, - 0x26, - 0x15, - 0x24, - 0x4B, - 0x69, - 0x72, - 0x77, - 0x87, - 0x77, - 0x88, - 0x83, - 0x61, - 0x74, - 0x61, - 0x77, - 0x6A, - 0x6A, - 0x61, - 0x51, - 0x00, - 0x0B, - 0x61, - 0x00, - 0x04, - 0x6A, - 0x61, - 0x6A, - 0x61, - 0x06, - 0x6A, - 0x00, - 0x6E, - 0x77, - 0x77, - 0x6A, - 0x74, - 0x68, - 0x5E, - 0x5C, - 0x46, - 0x5E, - 0x51, - 0x24, - 0x63, - 0x59, - 0x54, - 0x5A, - 0x59, - 0x47, - 0x48, - 0x6B, - 0x5A, - 0x50, - 0x48, - 0x3F, - 0x50, - 0x50, - 0x31, - 0x43, - 0x37, - 0x43, - 0x37, - 0x2B, - 0x31, - 0x43, - 0x31, - 0x5A, - 0x58, - 0x54, - 0x34, - 0x47, - 0x3A, - 0x50, - 0x53, - 0x50, - 0x5A, - 0x2C, - 0x43, - 0x5F, - 0x3F, - 0x58, - 0x50, - 0x58, - 0x58, - 0x2B, - 0x38, - 0x3D, - 0x38, - 0x48, - 0x42, - 0x48, - 0x3A, - 0x48, - 0x54, - 0x47, - 0x48, - 0x3F, - 0x31, - 0x2E, - 0x31, - 0x25, - 0x21, - 0x31, - 0x34, - 0x3B, - 0x54, - 0x48, - 0x34, - 0x31, - 0x2E, - 0x25, - 0x34, - 0x34, - 0x44, - 0x2E, - 0x34, - 0x3D, - 0x47, - 0x50, - 0x48, - 0x31, - 0x21, - 0x02, - 0x07, - 0x37, - 0x34, - 0x02, - 0x13, - 0x09, - 0x01, - 0x01, - 0x4A, - 0xFA, - 0xFA, - 0xF7, - 0xD8, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0x04, - 0xF4, - 0x05, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x19, - 0x7B, - 0x79, - 0x7B, - 0x7A, - 0x86, - 0x84, - 0x97, - 0x84, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0x89, - 0xA5, - 0x9A, - 0xB1, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x89, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x12, - 0x9B, - 0xB9, - 0xB1, - 0xB9, - 0xB9, - 0x9B, - 0xB9, - 0xB1, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0x08, - 0xC3, - 0x00, - 0x0F, - 0xCC, - 0xC3, - 0xCA, - 0xC3, - 0xCC, - 0xCA, - 0xCC, - 0xD9, - 0xCC, - 0xE1, - 0xCC, - 0xD6, - 0xD6, - 0xCC, - 0xCC, - 0x00, - 0x05, - 0xD6, - 0x00, - 0x04, - 0xBA, - 0x82, - 0x12, - 0x0B, - 0x04, - 0x03, - 0x00, - 0x61, - 0xF2, - 0xD3, - 0xF5, - 0xD6, - 0xF5, - 0xD6, - 0xD6, - 0xF5, - 0xF2, - 0xF5, - 0xF2, - 0xF5, - 0xF5, - 0xED, - 0xF5, - 0xF5, - 0xF5, - 0xFB, - 0xED, - 0xFD, - 0xFD, - 0xFB, - 0xF6, - 0x82, - 0x1F, - 0x1F, - 0x1F, - 0x12, - 0x03, - 0x12, - 0x11, - 0x1F, - 0x12, - 0x19, - 0x0A, - 0x0A, - 0x09, - 0x0D, - 0x1F, - 0x26, - 0x4D, - 0x1F, - 0x1F, - 0x11, - 0x11, - 0x1F, - 0x16, - 0x19, - 0x1C, - 0x1C, - 0x16, - 0x11, - 0x09, - 0x11, - 0x10, - 0x16, - 0x1B, - 0x1E, - 0x16, - 0x16, - 0x1C, - 0x1E, - 0x05, - 0x35, - 0x1B, - 0x29, - 0x03, - 0x35, - 0x1C, - 0x0B, - 0x12, - 0x03, - 0x03, - 0x0D, - 0x0D, - 0x24, - 0x1F, - 0x1F, - 0x15, - 0x26, - 0x24, - 0x5C, - 0x74, - 0x72, - 0x83, - 0x83, - 0x87, - 0x87, - 0x68, - 0x74, - 0x83, - 0x72, - 0x6A, - 0x68, - 0x61, - 0x6E, - 0x6A, - 0x00, - 0x0E, - 0x61, - 0x00, - 0x7D, - 0x6A, - 0x6A, - 0x61, - 0x6A, - 0x72, - 0x6A, - 0x6A, - 0x68, - 0x72, - 0x61, - 0x74, - 0x51, - 0x51, - 0x5E, - 0x5C, - 0x36, - 0x24, - 0x81, - 0x63, - 0x6B, - 0x54, - 0x54, - 0x50, - 0x54, - 0x6B, - 0x37, - 0x63, - 0x50, - 0x50, - 0x50, - 0x47, - 0x43, - 0x5A, - 0x31, - 0x59, - 0x2B, - 0x53, - 0x5A, - 0x37, - 0x2B, - 0x50, - 0x6B, - 0x3B, - 0x3D, - 0x3F, - 0x5A, - 0x53, - 0x58, - 0x50, - 0x3B, - 0x63, - 0x53, - 0x5A, - 0x58, - 0x58, - 0x47, - 0x3B, - 0x58, - 0x53, - 0x47, - 0x31, - 0x3F, - 0x44, - 0x42, - 0x3D, - 0x44, - 0x50, - 0x37, - 0x47, - 0x50, - 0x3D, - 0x31, - 0x3F, - 0x2E, - 0x31, - 0x31, - 0x25, - 0x31, - 0x3A, - 0x25, - 0x2E, - 0x3F, - 0x3F, - 0x25, - 0x21, - 0x3D, - 0x3A, - 0x34, - 0x34, - 0x3A, - 0x31, - 0x25, - 0x48, - 0x59, - 0x3F, - 0x13, - 0x02, - 0x2B, - 0x43, - 0x30, - 0x02, - 0x07, - 0x01, - 0x00, - 0x01, - 0x9A, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xDF, - 0xDF, - 0xF4, - 0xD8, - 0xEC, - 0xDF, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x84, - 0x84, - 0x84, - 0x79, - 0x84, - 0x84, - 0x84, - 0x97, - 0x97, - 0x97, - 0x84, - 0x97, - 0x97, - 0x8D, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0x97, - 0xA5, - 0xAF, - 0xA5, - 0x9A, - 0xB1, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xB1, - 0xC6, - 0x9B, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xBC, - 0xB9, - 0x00, - 0x05, - 0xBC, - 0x00, - 0x87, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCC, - 0xC3, - 0xCA, - 0xCC, - 0xD9, - 0xD9, - 0xCA, - 0xCA, - 0xCC, - 0xD9, - 0xCC, - 0xCC, - 0xE1, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD6, - 0xD6, - 0xED, - 0xAA, - 0x1F, - 0x0A, - 0x06, - 0x06, - 0x03, - 0x03, - 0x00, - 0xCF, - 0xD6, - 0xF5, - 0xD6, - 0xF5, - 0xF5, - 0xD6, - 0xF2, - 0xF5, - 0xD6, - 0xEF, - 0xF2, - 0xE1, - 0xF5, - 0xF6, - 0xFB, - 0xED, - 0xFB, - 0xF6, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0x80, - 0x1C, - 0x1F, - 0x2A, - 0x1F, - 0x0B, - 0x03, - 0x0A, - 0x19, - 0x1F, - 0x12, - 0x0B, - 0x0A, - 0x0F, - 0x19, - 0x11, - 0x1F, - 0x32, - 0x1C, - 0x2A, - 0x0E, - 0x11, - 0x10, - 0x11, - 0x16, - 0x16, - 0x1E, - 0x1C, - 0x1E, - 0x09, - 0x0F, - 0x0E, - 0x10, - 0x10, - 0x1B, - 0x14, - 0x1B, - 0x22, - 0x1F, - 0x0E, - 0x29, - 0x1B, - 0x35, - 0x05, - 0x22, - 0x16, - 0x11, - 0x0B, - 0x0A, - 0x03, - 0x0A, - 0x0A, - 0x15, - 0x1C, - 0x11, - 0x26, - 0x0D, - 0x24, - 0x36, - 0x5C, - 0x68, - 0x72, - 0x74, - 0x74, - 0x83, - 0x83, - 0x68, - 0x83, - 0x6A, - 0x83, - 0x72, - 0x61, - 0x61, - 0x77, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x61, - 0x01, - 0x51, - 0x06, - 0x61, - 0x00, - 0x59, - 0x51, - 0x61, - 0x61, - 0x61, - 0x5E, - 0x61, - 0x61, - 0x61, - 0x51, - 0x68, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x46, - 0x46, - 0x36, - 0x36, - 0x6B, - 0x50, - 0x59, - 0x42, - 0x47, - 0x34, - 0x63, - 0x63, - 0x58, - 0x59, - 0x48, - 0x50, - 0x50, - 0x50, - 0x2E, - 0x31, - 0x48, - 0x43, - 0x43, - 0x3B, - 0x45, - 0x34, - 0x58, - 0x50, - 0x58, - 0x48, - 0x48, - 0x43, - 0x48, - 0x6B, - 0x50, - 0x50, - 0x53, - 0x37, - 0x37, - 0x53, - 0x5F, - 0x58, - 0x45, - 0x43, - 0x63, - 0x58, - 0x47, - 0x3D, - 0x3F, - 0x30, - 0x3F, - 0x3D, - 0x1A, - 0x50, - 0x31, - 0x6B, - 0x48, - 0x42, - 0x34, - 0x31, - 0x25, - 0x31, - 0x25, - 0x21, - 0x2B, - 0x47, - 0x3F, - 0x50, - 0x3F, - 0x2E, - 0x31, - 0x2E, - 0x2E, - 0x31, - 0x2E, - 0x00, - 0x04, - 0x31, - 0x00, - 0x0F, - 0x48, - 0x3F, - 0x1A, - 0x07, - 0x07, - 0x45, - 0x53, - 0x23, - 0x07, - 0x02, - 0x00, - 0x01, - 0x2F, - 0xFA, - 0xD8, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x03, - 0xF4, - 0xF7, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x06, - 0xDF, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x09, - 0x79, - 0x71, - 0x84, - 0x86, - 0x7B, - 0x89, - 0x84, - 0x84, - 0x84, - 0x00, - 0x06, - 0x97, - 0x07, - 0x9A, - 0x00, - 0x13, - 0xB1, - 0x89, - 0xA5, - 0xA5, - 0xB1, - 0x9A, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x8F, - 0xBC, - 0xB1, - 0xBC, - 0x9B, - 0x9B, - 0x00, - 0x09, - 0xBC, - 0x06, - 0xC3, - 0x00, - 0x24, - 0xD9, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xCC, - 0xD9, - 0xD6, - 0xCC, - 0xE1, - 0xCC, - 0xD3, - 0xD6, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD3, - 0x32, - 0x0F, - 0x0A, - 0x0F, - 0x0B, - 0x06, - 0x03, - 0x00, - 0xB2, - 0xD6, - 0xF5, - 0xD3, - 0xF2, - 0xD6, - 0xD6, - 0xF5, - 0xF5, - 0xD6, - 0x04, - 0xF5, - 0x00, - 0x07, - 0xF2, - 0xF5, - 0xF5, - 0xFB, - 0xED, - 0xFD, - 0xFB, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x18, - 0xD6, - 0x28, - 0x1C, - 0x1F, - 0x32, - 0x32, - 0x0A, - 0x03, - 0x06, - 0x19, - 0x32, - 0x26, - 0x03, - 0x32, - 0x0D, - 0x19, - 0x19, - 0x1F, - 0x19, - 0x1C, - 0x16, - 0x11, - 0x11, - 0x10, - 0x04, - 0x1C, - 0x00, - 0x33, - 0x14, - 0x11, - 0x11, - 0x0E, - 0x09, - 0x14, - 0x1E, - 0x22, - 0x2A, - 0x1C, - 0x29, - 0x14, - 0x2A, - 0x1C, - 0x29, - 0x03, - 0x35, - 0x1E, - 0x16, - 0x0E, - 0x03, - 0x0A, - 0x06, - 0x0D, - 0x0A, - 0x2F, - 0x2A, - 0x11, - 0x26, - 0x15, - 0x4B, - 0x5C, - 0x69, - 0x73, - 0x73, - 0x74, - 0x69, - 0x68, - 0x73, - 0x74, - 0x83, - 0x77, - 0x72, - 0x77, - 0x7E, - 0x77, - 0x87, - 0x74, - 0x61, - 0x61, - 0x51, - 0x00, - 0x04, - 0x61, - 0x00, - 0x12, - 0x51, - 0x61, - 0x51, - 0x61, - 0x61, - 0x61, - 0x5E, - 0x61, - 0x68, - 0x61, - 0x61, - 0x68, - 0x61, - 0x61, - 0x5E, - 0x5E, - 0x69, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x6C, - 0x3C, - 0x45, - 0x59, - 0x59, - 0x5A, - 0x31, - 0x47, - 0x6B, - 0x63, - 0x50, - 0x5A, - 0x50, - 0x3F, - 0x50, - 0x5A, - 0x43, - 0x48, - 0x5F, - 0x3A, - 0x47, - 0x37, - 0x2C, - 0x58, - 0x66, - 0x54, - 0x54, - 0x50, - 0x3D, - 0x50, - 0x58, - 0x58, - 0x63, - 0x63, - 0x6B, - 0x63, - 0x63, - 0x43, - 0x53, - 0x3A, - 0x3B, - 0x66, - 0x58, - 0x45, - 0x44, - 0x34, - 0x44, - 0x30, - 0x3D, - 0x48, - 0x21, - 0x44, - 0x5F, - 0x50, - 0x3F, - 0x3F, - 0x31, - 0x31, - 0x21, - 0x31, - 0x25, - 0x25, - 0x42, - 0x48, - 0x31, - 0x3F, - 0x31, - 0x21, - 0x25, - 0x42, - 0x34, - 0x34, - 0x2E, - 0x31, - 0x2E, - 0x34, - 0x50, - 0x44, - 0x13, - 0x01, - 0x0C, - 0x45, - 0x18, - 0x13, - 0x07, - 0x02, - 0x00, - 0x01, - 0xD8, - 0xFA, - 0xFA, - 0xD8, - 0xFA, - 0xFA, - 0xDF, - 0xF7, - 0xDF, - 0xF4, - 0xF4, - 0xF4, - 0xDF, - 0xF0, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x86, - 0x71, - 0x84, - 0x84, - 0x71, - 0x86, - 0x86, - 0x84, - 0x84, - 0x97, - 0x84, - 0x97, - 0x97, - 0x9A, - 0x97, - 0x8D, - 0x97, - 0x9A, - 0x9A, - 0x9A, - 0x89, - 0xA5, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xB1, - 0x8A, - 0xB1, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x08, - 0xBC, - 0xB1, - 0xB9, - 0x9B, - 0xB9, - 0xBC, - 0xBC, - 0xB9, - 0x08, - 0xBC, - 0x05, - 0xC3, - 0x00, - 0x82, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xCA, - 0xD9, - 0xD9, - 0xD4, - 0xCA, - 0xD9, - 0xD9, - 0xCC, - 0xE1, - 0xD9, - 0xD9, - 0xE1, - 0x95, - 0x19, - 0x12, - 0x0B, - 0x0F, - 0x0F, - 0x09, - 0x03, - 0x03, - 0x82, - 0xD3, - 0xF5, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xD3, - 0xE1, - 0xF5, - 0xF2, - 0xF5, - 0xF5, - 0xFB, - 0xEF, - 0xF8, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xFD, - 0xFD, - 0xFD, - 0x82, - 0x32, - 0x1F, - 0x1F, - 0x32, - 0x4C, - 0x00, - 0x03, - 0x0A, - 0x12, - 0x19, - 0x1F, - 0x12, - 0x12, - 0x1F, - 0x11, - 0x1F, - 0x0F, - 0x1C, - 0x1C, - 0x0E, - 0x16, - 0x14, - 0x11, - 0x16, - 0x1C, - 0x16, - 0x14, - 0x11, - 0x11, - 0x14, - 0x16, - 0x09, - 0x10, - 0x22, - 0x2A, - 0x2A, - 0x22, - 0x29, - 0x2A, - 0x22, - 0x29, - 0x09, - 0x29, - 0x1B, - 0x29, - 0x16, - 0x0B, - 0x06, - 0x03, - 0x0A, - 0x06, - 0x19, - 0x1B, - 0x19, - 0x2D, - 0x15, - 0x4B, - 0x36, - 0x5C, - 0x5C, - 0x5C, - 0x68, - 0x64, - 0x73, - 0x73, - 0x68, - 0x83, - 0x7E, - 0x77, - 0x87, - 0x92, - 0x77, - 0x77, - 0x72, - 0x77, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x0D, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x61, - 0x51, - 0x68, - 0x5E, - 0x61, - 0x61, - 0x61, - 0x51, - 0x51, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x4C, - 0x51, - 0x51, - 0x51, - 0x46, - 0x46, - 0x24, - 0x54, - 0x58, - 0x52, - 0x48, - 0x48, - 0x43, - 0x58, - 0x6B, - 0x43, - 0x53, - 0x58, - 0x53, - 0x43, - 0x47, - 0x47, - 0x53, - 0x54, - 0x37, - 0x47, - 0x37, - 0x63, - 0x30, - 0x59, - 0x63, - 0x54, - 0x54, - 0x50, - 0x48, - 0x48, - 0x5A, - 0x43, - 0x53, - 0x43, - 0x47, - 0x50, - 0x47, - 0x47, - 0x50, - 0x30, - 0x63, - 0x63, - 0x47, - 0x48, - 0x3F, - 0x30, - 0x34, - 0x3F, - 0x3F, - 0x48, - 0x0C, - 0x43, - 0x54, - 0x48, - 0x3F, - 0x31, - 0x34, - 0x21, - 0x31, - 0x21, - 0x21, - 0x45, - 0x44, - 0x34, - 0x3F, - 0x31, - 0x2E, - 0x1D, - 0x50, - 0x3D, - 0x34, - 0x04, - 0x21, - 0x00, - 0x21, - 0x43, - 0x18, - 0x04, - 0x00, - 0x02, - 0x3F, - 0x21, - 0x13, - 0x04, - 0x00, - 0x05, - 0x22, - 0xFA, - 0xFA, - 0xF7, - 0xD8, - 0xF4, - 0xF4, - 0xD8, - 0xF7, - 0xF4, - 0xF4, - 0xD8, - 0xDF, - 0xF4, - 0xC6, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x84, - 0x84, - 0x71, - 0x84, - 0x84, - 0x84, - 0x79, - 0x84, - 0x84, - 0x84, - 0x97, - 0x8D, - 0x84, - 0x97, - 0x8D, - 0x97, - 0x8D, - 0x97, - 0xA5, - 0x89, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9A, - 0x9A, - 0xB1, - 0xB1, - 0xA5, - 0xA5, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xBC, - 0x9B, - 0xBC, - 0xB9, - 0xB9, - 0x05, - 0xBC, - 0x00, - 0x29, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0xCA, - 0xD9, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xE1, - 0xD3, - 0xF5, - 0x57, - 0x19, - 0x19, - 0x19, - 0x11, - 0x14, - 0x09, - 0x0B, - 0x03, - 0x26, - 0xF5, - 0xF5, - 0xD6, - 0xF5, - 0xF5, - 0xD9, - 0xD6, - 0xF5, - 0xD6, - 0x00, - 0x05, - 0xF5, - 0x00, - 0x05, - 0xEF, - 0xF5, - 0xF5, - 0xFD, - 0xF6, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x55, - 0xFD, - 0xFD, - 0xFD, - 0xFE, - 0xE3, - 0x4C, - 0x1F, - 0x1F, - 0x2A, - 0x4D, - 0x1F, - 0x00, - 0x03, - 0x0B, - 0x1F, - 0x1F, - 0x12, - 0x11, - 0x11, - 0x1F, - 0x1F, - 0x0E, - 0x11, - 0x1E, - 0x16, - 0x10, - 0x11, - 0x11, - 0x1C, - 0x11, - 0x19, - 0x16, - 0x16, - 0x0E, - 0x0E, - 0x16, - 0x09, - 0x10, - 0x22, - 0x2F, - 0x22, - 0x2A, - 0x29, - 0x22, - 0x4F, - 0x29, - 0x09, - 0x29, - 0x29, - 0x1B, - 0x1B, - 0x11, - 0x06, - 0x03, - 0x03, - 0x0A, - 0x22, - 0x14, - 0x1C, - 0x0F, - 0x1F, - 0x24, - 0x4B, - 0x4B, - 0x4B, - 0x5C, - 0x5C, - 0x57, - 0x46, - 0x46, - 0x5C, - 0x73, - 0x73, - 0x83, - 0x87, - 0x87, - 0x7E, - 0x77, - 0x6A, - 0x72, - 0x61, - 0x72, - 0x61, - 0x61, - 0x5E, - 0x00, - 0x07, - 0x61, - 0x00, - 0x3E, - 0x5E, - 0x61, - 0x5E, - 0x61, - 0x6A, - 0x51, - 0x51, - 0x61, - 0x51, - 0x51, - 0x51, - 0x5E, - 0x5C, - 0x51, - 0x51, - 0x46, - 0x46, - 0x53, - 0x63, - 0x52, - 0x3F, - 0x43, - 0x3F, - 0x6B, - 0x53, - 0x5A, - 0x6B, - 0x43, - 0x3B, - 0x5F, - 0x66, - 0x47, - 0x48, - 0x53, - 0x5A, - 0x17, - 0x48, - 0x2B, - 0x54, - 0x6B, - 0x63, - 0x63, - 0x44, - 0x48, - 0x54, - 0x48, - 0x21, - 0x5A, - 0x43, - 0x48, - 0x37, - 0x47, - 0x58, - 0x3A, - 0x38, - 0x47, - 0x53, - 0x5F, - 0x54, - 0x42, - 0x3F, - 0x3F, - 0x04, - 0x31, - 0x00, - 0x2D, - 0x44, - 0x44, - 0x54, - 0x50, - 0x3F, - 0x34, - 0x31, - 0x25, - 0x17, - 0x21, - 0x18, - 0x3F, - 0x43, - 0x3F, - 0x30, - 0x31, - 0x18, - 0x08, - 0x54, - 0x47, - 0x2E, - 0x31, - 0x21, - 0x23, - 0x13, - 0x23, - 0x1A, - 0x02, - 0x01, - 0x17, - 0x07, - 0x21, - 0x13, - 0x04, - 0x0B, - 0x04, - 0xD8, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0x06, - 0xF4, - 0x00, - 0x07, - 0xEC, - 0xDF, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x71, - 0x71, - 0x84, - 0x84, - 0x71, - 0x79, - 0x86, - 0x00, - 0x04, - 0x84, - 0x01, - 0x97, - 0x01, - 0x84, - 0x04, - 0x97, - 0x00, - 0x03, - 0x9A, - 0x97, - 0x8D, - 0x00, - 0x05, - 0x9A, - 0x00, - 0x07, - 0xA5, - 0xA5, - 0x9A, - 0x9A, - 0xB1, - 0x9A, - 0xA5, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x0A, - 0xB9, - 0xB9, - 0x9B, - 0x9B, - 0xBC, - 0xB1, - 0xC8, - 0x8F, - 0x9B, - 0xC3, - 0x05, - 0xBC, - 0x00, - 0x22, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xCA, - 0xD9, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xD9, - 0xD9, - 0xE2, - 0xD9, - 0x32, - 0x19, - 0x19, - 0x1C, - 0x1E, - 0x1C, - 0x09, - 0x05, - 0x01, - 0x05, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xD9, - 0x07, - 0xF5, - 0x00, - 0x06, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0x04, - 0xFB, - 0x06, - 0xFD, - 0x00, - 0x50, - 0xFE, - 0xE9, - 0x2A, - 0x1F, - 0x2A, - 0x32, - 0x4D, - 0x0B, - 0x00, - 0x03, - 0x09, - 0x1F, - 0x1F, - 0x12, - 0x0B, - 0x11, - 0x2A, - 0x16, - 0x0F, - 0x11, - 0x1C, - 0x1B, - 0x16, - 0x1C, - 0x1F, - 0x1E, - 0x22, - 0x1C, - 0x1B, - 0x1C, - 0x09, - 0x0E, - 0x14, - 0x14, - 0x0E, - 0x1E, - 0x1C, - 0x29, - 0x4F, - 0x35, - 0x29, - 0x35, - 0x1B, - 0x22, - 0x29, - 0x16, - 0x16, - 0x1B, - 0x0E, - 0x03, - 0x00, - 0x0E, - 0x14, - 0x1E, - 0x1C, - 0x14, - 0x1C, - 0x2D, - 0x4B, - 0x41, - 0x36, - 0x36, - 0x57, - 0x64, - 0x4B, - 0x46, - 0x57, - 0x73, - 0x5E, - 0xC9, - 0x83, - 0x92, - 0x92, - 0x87, - 0x92, - 0x6A, - 0x72, - 0x77, - 0x72, - 0x5E, - 0x04, - 0x61, - 0x00, - 0x0A, - 0x68, - 0x61, - 0x51, - 0x61, - 0x5E, - 0x61, - 0x68, - 0x72, - 0x51, - 0x5E, - 0x06, - 0x51, - 0x01, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x6B, - 0x59, - 0x5F, - 0x63, - 0x52, - 0x43, - 0x48, - 0x6B, - 0x58, - 0x3D, - 0x54, - 0x6B, - 0x59, - 0x66, - 0x58, - 0x47, - 0x50, - 0x53, - 0x54, - 0x34, - 0x47, - 0x54, - 0x37, - 0x3A, - 0x63, - 0x50, - 0x59, - 0x54, - 0x48, - 0x48, - 0x52, - 0x5A, - 0x5A, - 0x50, - 0x50, - 0x5F, - 0x34, - 0x3A, - 0x42, - 0x48, - 0x54, - 0x5F, - 0x53, - 0x38, - 0x3F, - 0x44, - 0x3F, - 0x31, - 0x31, - 0x25, - 0x31, - 0x21, - 0x48, - 0x3D, - 0x3F, - 0x31, - 0x21, - 0x31, - 0x18, - 0x21, - 0x34, - 0x21, - 0x25, - 0x21, - 0x31, - 0x18, - 0x18, - 0x21, - 0x50, - 0x3A, - 0x31, - 0x23, - 0x23, - 0x07, - 0x08, - 0x34, - 0x0C, - 0x00, - 0x13, - 0x20, - 0x18, - 0x40, - 0x13, - 0x10, - 0x76, - 0x9B, - 0xFA, - 0xFA, - 0xF7, - 0xD8, - 0xD8, - 0xF4, - 0xF4, - 0xD8, - 0xD8, - 0xF4, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xDF, - 0xEC, - 0xF4, - 0xC8, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x79, - 0x84, - 0x84, - 0x71, - 0x84, - 0x84, - 0x71, - 0x84, - 0x84, - 0x86, - 0x84, - 0x84, - 0x97, - 0x97, - 0x84, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x9A, - 0x97, - 0x9A, - 0x9A, - 0x9A, - 0xB1, - 0x7A, - 0x9A, - 0xA5, - 0xB1, - 0x8A, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x03, - 0xBC, - 0xBC, - 0xB9, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x0B, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xD4, - 0xCA, - 0x00, - 0x04, - 0xD9, - 0x00, - 0x19, - 0xE1, - 0xD9, - 0x95, - 0x1F, - 0x12, - 0x1C, - 0x14, - 0x2A, - 0x2A, - 0x0F, - 0x0E, - 0x09, - 0x05, - 0xA7, - 0xD3, - 0xFB, - 0xD3, - 0xD9, - 0xF5, - 0xD6, - 0xD6, - 0xF5, - 0xF5, - 0xD3, - 0xE1, - 0x00, - 0x06, - 0xF5, - 0x00, - 0x06, - 0xF6, - 0xFB, - 0xF5, - 0xFB, - 0xF6, - 0xF6, - 0x04, - 0xFD, - 0x00, - 0x60, - 0xFE, - 0xFD, - 0xFD, - 0x82, - 0x1C, - 0x1F, - 0x32, - 0x39, - 0x62, - 0x00, - 0x00, - 0x03, - 0x12, - 0x1F, - 0x1F, - 0x19, - 0x0F, - 0x19, - 0x1C, - 0x11, - 0x0F, - 0x1E, - 0x1E, - 0x1C, - 0x1C, - 0x2A, - 0x14, - 0x1C, - 0x1E, - 0x16, - 0x1C, - 0x1B, - 0x0B, - 0x14, - 0x0E, - 0x0E, - 0x2F, - 0x22, - 0x29, - 0x2A, - 0x33, - 0x2A, - 0x33, - 0x22, - 0x3C, - 0x33, - 0x2A, - 0x1B, - 0x29, - 0x10, - 0x03, - 0x01, - 0x0B, - 0x14, - 0x22, - 0x14, - 0x10, - 0x16, - 0x1F, - 0x12, - 0x24, - 0x4B, - 0x41, - 0x41, - 0x4C, - 0x24, - 0x24, - 0x5C, - 0x57, - 0x73, - 0x51, - 0x83, - 0x83, - 0x87, - 0x87, - 0x68, - 0x87, - 0x83, - 0x72, - 0x87, - 0x61, - 0x68, - 0x61, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x61, - 0x51, - 0x5E, - 0x61, - 0x61, - 0x6A, - 0x5E, - 0x51, - 0x61, - 0x04, - 0x51, - 0x00, - 0x62, - 0x5E, - 0x51, - 0x46, - 0x51, - 0x36, - 0x36, - 0x15, - 0x43, - 0x53, - 0x52, - 0x31, - 0x54, - 0x54, - 0x50, - 0x59, - 0x54, - 0x63, - 0x58, - 0x63, - 0x53, - 0x54, - 0x48, - 0x54, - 0x48, - 0x50, - 0x5A, - 0x43, - 0x25, - 0x59, - 0x63, - 0x54, - 0x48, - 0x47, - 0x48, - 0x3F, - 0x31, - 0x59, - 0x5A, - 0x5A, - 0x5F, - 0x43, - 0x38, - 0x47, - 0x3A, - 0x48, - 0x42, - 0x54, - 0x50, - 0x59, - 0x3F, - 0x34, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x2E, - 0x21, - 0x48, - 0x48, - 0x34, - 0x31, - 0x25, - 0x2E, - 0x34, - 0x1A, - 0x0C, - 0x5F, - 0x58, - 0x63, - 0x50, - 0x48, - 0x25, - 0x23, - 0x50, - 0x3D, - 0x31, - 0x18, - 0x07, - 0x04, - 0x31, - 0x3A, - 0x02, - 0x00, - 0x07, - 0x18, - 0x21, - 0x40, - 0x3C, - 0x9B, - 0xFA, - 0xFA, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x0A, - 0xD8, - 0xF4, - 0xDF, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xF4, - 0xC8, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x79, - 0x71, - 0x76, - 0x79, - 0x79, - 0x79, - 0x84, - 0x84, - 0x79, - 0x84, - 0x8D, - 0x86, - 0x8D, - 0x97, - 0x84, - 0x97, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x9A, - 0x9B, - 0x89, - 0x9A, - 0x9A, - 0x8A, - 0xA5, - 0x8A, - 0xB1, - 0xA5, - 0x9B, - 0xB1, - 0x8A, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0xB9, - 0xB1, - 0x9B, - 0xBC, - 0xB9, - 0xBC, - 0x9B, - 0xB1, - 0x07, - 0xBC, - 0x04, - 0xC3, - 0x00, - 0x1E, - 0xD9, - 0xC3, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xD9, - 0xE1, - 0xC3, - 0xCA, - 0x95, - 0x19, - 0x0F, - 0x19, - 0x1C, - 0x14, - 0x1C, - 0x11, - 0x16, - 0x11, - 0x04, - 0x49, - 0xF5, - 0xD9, - 0xE1, - 0xF5, - 0xF5, - 0xF5, - 0xD9, - 0xD9, - 0x08, - 0xF5, - 0x00, - 0xC7, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xFD, - 0xFB, - 0xFD, - 0xFD, - 0xFD, - 0xFE, - 0xFE, - 0xFD, - 0xFE, - 0xFE, - 0xFE, - 0x56, - 0x1F, - 0x32, - 0x2A, - 0x4D, - 0x4D, - 0x00, - 0x00, - 0x0F, - 0x19, - 0x32, - 0x1F, - 0x1C, - 0x12, - 0x0E, - 0x2A, - 0x0F, - 0x1C, - 0x14, - 0x32, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x1E, - 0x1C, - 0x1C, - 0x16, - 0x14, - 0x09, - 0x1B, - 0x0E, - 0x09, - 0x10, - 0x14, - 0x4F, - 0x1B, - 0x29, - 0x33, - 0x29, - 0x3C, - 0x29, - 0x22, - 0x1B, - 0x29, - 0x3C, - 0x0A, - 0x02, - 0x09, - 0x14, - 0x16, - 0x1B, - 0x1B, - 0x16, - 0x16, - 0x19, - 0x1C, - 0x15, - 0x4C, - 0x41, - 0x4B, - 0x24, - 0x26, - 0x4B, - 0x4B, - 0x5C, - 0x95, - 0x73, - 0x73, - 0x83, - 0x83, - 0x88, - 0x83, - 0x77, - 0x92, - 0x83, - 0x6A, - 0x72, - 0x61, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x51, - 0x5E, - 0x61, - 0x61, - 0x6A, - 0x5E, - 0x68, - 0x6A, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x46, - 0x51, - 0x51, - 0x51, - 0x36, - 0x2E, - 0x47, - 0x59, - 0x48, - 0x6B, - 0x54, - 0x48, - 0x54, - 0x31, - 0x58, - 0x6B, - 0x66, - 0x54, - 0x50, - 0x50, - 0x50, - 0x2E, - 0x48, - 0x27, - 0x2B, - 0x52, - 0x6B, - 0x59, - 0x54, - 0x48, - 0x48, - 0x48, - 0x44, - 0x3F, - 0x18, - 0x5A, - 0x5A, - 0x63, - 0x3B, - 0x3A, - 0x44, - 0x3D, - 0x48, - 0x42, - 0x58, - 0x54, - 0x48, - 0x3F, - 0x3F, - 0x31, - 0x25, - 0x31, - 0x31, - 0x21, - 0x31, - 0x3F, - 0x3F, - 0x34, - 0x21, - 0x3B, - 0x47, - 0x3B, - 0x53, - 0x50, - 0x17, - 0x50, - 0x53, - 0x47, - 0x48, - 0x30, - 0x08, - 0x50, - 0x31, - 0x23, - 0x13, - 0x04, - 0x08, - 0x47, - 0x20, - 0x00, - 0x01, - 0x08, - 0x21, - 0x31, - 0x44, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x16, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xD8, - 0xF7, - 0xD8, - 0xF4, - 0xF4, - 0xEC, - 0xD8, - 0xF4, - 0xF4, - 0xC6, - 0xF4, - 0xDF, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xF4, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x76, - 0x76, - 0x71, - 0x79, - 0x76, - 0x79, - 0x71, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x84, - 0x84, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x97, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB9, - 0xB9, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x20, - 0xC3, - 0xBC, - 0xE4, - 0xBC, - 0xE3, - 0xBC, - 0xC3, - 0xE4, - 0xC3, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xCA, - 0xE3, - 0x95, - 0x1F, - 0x19, - 0x1F, - 0x2A, - 0x16, - 0x0E, - 0x14, - 0x0E, - 0x0E, - 0x06, - 0x03, - 0xF5, - 0xD9, - 0xF5, - 0xF5, - 0xD9, - 0x06, - 0xF5, - 0x00, - 0x12, - 0xE1, - 0xF5, - 0xFB, - 0xF5, - 0xF6, - 0xF5, - 0xF5, - 0xFB, - 0xFB, - 0xFB, - 0xFD, - 0xF6, - 0xFB, - 0xFD, - 0xF6, - 0xFD, - 0xFD, - 0xFD, - 0x05, - 0xFE, - 0x00, - 0x11, - 0x19, - 0x2A, - 0x1F, - 0x2A, - 0x62, - 0x11, - 0x00, - 0x0B, - 0x1C, - 0x11, - 0x1F, - 0x19, - 0x03, - 0x11, - 0x1C, - 0x1E, - 0x19, - 0x00, - 0x06, - 0x1C, - 0x00, - 0x2B, - 0x16, - 0x16, - 0x1B, - 0x1B, - 0x1C, - 0x14, - 0x16, - 0x0E, - 0x10, - 0x09, - 0x14, - 0x29, - 0x10, - 0x22, - 0x1B, - 0x4F, - 0x33, - 0x22, - 0x29, - 0x1B, - 0x1B, - 0x29, - 0x09, - 0x05, - 0x05, - 0x10, - 0x10, - 0x16, - 0x1B, - 0x14, - 0x1B, - 0x16, - 0x1C, - 0x28, - 0x26, - 0x4C, - 0x4C, - 0x26, - 0x36, - 0x57, - 0x4B, - 0x4C, - 0x51, - 0x00, - 0x05, - 0x73, - 0x00, - 0x6E, - 0x83, - 0x83, - 0x92, - 0x72, - 0x83, - 0x72, - 0x72, - 0x61, - 0x68, - 0x51, - 0x6E, - 0x61, - 0x51, - 0x51, - 0x6A, - 0x61, - 0x68, - 0x5E, - 0x61, - 0x51, - 0x51, - 0x51, - 0x68, - 0x51, - 0x5E, - 0x51, - 0x5E, - 0x46, - 0x51, - 0x36, - 0x36, - 0x29, - 0x38, - 0x63, - 0x63, - 0x5F, - 0x59, - 0x58, - 0x6B, - 0x63, - 0x43, - 0x63, - 0x50, - 0x54, - 0x58, - 0x47, - 0x47, - 0x34, - 0x52, - 0x65, - 0x5A, - 0x3F, - 0x59, - 0x48, - 0x54, - 0x48, - 0x48, - 0x44, - 0x48, - 0x40, - 0x33, - 0x52, - 0x43, - 0x5A, - 0x42, - 0x42, - 0x48, - 0x30, - 0x48, - 0x44, - 0x50, - 0x63, - 0x3D, - 0x44, - 0x3F, - 0x31, - 0x21, - 0x31, - 0x1A, - 0x21, - 0x2E, - 0x21, - 0x48, - 0x3A, - 0x2C, - 0x3A, - 0x53, - 0x53, - 0x43, - 0x53, - 0x48, - 0x0C, - 0x47, - 0x47, - 0x30, - 0x23, - 0x08, - 0x31, - 0x2E, - 0x18, - 0x07, - 0x07, - 0x21, - 0x53, - 0x07, - 0x01, - 0x04, - 0x31, - 0x3F, - 0x40, - 0x04, - 0xFA, - 0x00, - 0x17, - 0xF7, - 0xFA, - 0xD8, - 0xD8, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xD8, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xDF, - 0xEC, - 0xEC, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x71, - 0x6C, - 0x6C, - 0x71, - 0x71, - 0x76, - 0x04, - 0x79, - 0x00, - 0x0A, - 0x84, - 0x79, - 0x79, - 0x84, - 0x84, - 0x84, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x09, - 0x9A, - 0x00, - 0x12, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xA5, - 0xBC, - 0xB9, - 0x9B, - 0xBC, - 0x9B, - 0xB1, - 0xBC, - 0xB1, - 0x07, - 0xBC, - 0x00, - 0x29, - 0xC3, - 0xBC, - 0xE4, - 0xC3, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xD4, - 0xE3, - 0xCE, - 0x82, - 0x1F, - 0x19, - 0x2A, - 0x1C, - 0x14, - 0x11, - 0x1E, - 0x1E, - 0x16, - 0x09, - 0x05, - 0x57, - 0xD3, - 0xFB, - 0xF5, - 0xE3, - 0xF5, - 0xE3, - 0xEF, - 0xF5, - 0xD9, - 0xF5, - 0xF5, - 0xE1, - 0xE1, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0x00, - 0x04, - 0xFB, - 0x01, - 0xF6, - 0x01, - 0xFB, - 0x04, - 0xFD, - 0x01, - 0xFE, - 0x01, - 0xFD, - 0x05, - 0xFE, - 0x00, - 0xB4, - 0x82, - 0x12, - 0x1F, - 0x32, - 0x39, - 0x5B, - 0x05, - 0x03, - 0x09, - 0x4D, - 0x1C, - 0x1F, - 0x0F, - 0x1F, - 0x1C, - 0x1C, - 0x19, - 0x11, - 0x11, - 0x11, - 0x1C, - 0x1C, - 0x14, - 0x16, - 0x1C, - 0x1E, - 0x16, - 0x11, - 0x14, - 0x16, - 0x1B, - 0x0F, - 0x11, - 0x10, - 0x2A, - 0x10, - 0x22, - 0x22, - 0x33, - 0x35, - 0x22, - 0x4F, - 0x29, - 0x29, - 0x29, - 0x10, - 0x0B, - 0x05, - 0x09, - 0x14, - 0x22, - 0x1C, - 0x16, - 0x1E, - 0x10, - 0x14, - 0x0E, - 0x4C, - 0x1F, - 0x1F, - 0x12, - 0x41, - 0x24, - 0x4C, - 0x57, - 0x5C, - 0x57, - 0x57, - 0x6A, - 0xAA, - 0x73, - 0x73, - 0x92, - 0x73, - 0x87, - 0x6E, - 0x77, - 0x72, - 0x6A, - 0x5E, - 0x5E, - 0x61, - 0x5E, - 0x61, - 0x5E, - 0x6A, - 0x61, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x5E, - 0x74, - 0x51, - 0x5E, - 0x46, - 0x5E, - 0x51, - 0x5C, - 0x46, - 0x36, - 0x46, - 0x24, - 0x27, - 0x44, - 0x5A, - 0x6B, - 0x58, - 0x54, - 0x58, - 0x5F, - 0x53, - 0x63, - 0x53, - 0x54, - 0x63, - 0x42, - 0x48, - 0x50, - 0x33, - 0x52, - 0x3F, - 0x40, - 0x59, - 0x63, - 0x48, - 0x48, - 0x48, - 0x3D, - 0x3F, - 0x31, - 0x23, - 0x55, - 0x43, - 0x50, - 0x58, - 0x3A, - 0x48, - 0x3D, - 0x48, - 0x34, - 0x3F, - 0x63, - 0x3F, - 0x43, - 0x3F, - 0x31, - 0x31, - 0x21, - 0x21, - 0x21, - 0x18, - 0x0C, - 0x47, - 0x53, - 0x47, - 0x20, - 0x3B, - 0x58, - 0x45, - 0x3A, - 0x54, - 0x48, - 0x3A, - 0x3D, - 0x25, - 0x1A, - 0x07, - 0x44, - 0x21, - 0x13, - 0x02, - 0x5F, - 0x5A, - 0x34, - 0x02, - 0x29, - 0x07, - 0x31, - 0x52, - 0x07, - 0xFA, - 0x00, - 0x09, - 0xF7, - 0xF7, - 0xD8, - 0xF7, - 0xF7, - 0xD8, - 0xD8, - 0xF4, - 0xEC, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x08, - 0xC6, - 0xF4, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x76, - 0x6C, - 0x79, - 0x6C, - 0x79, - 0x71, - 0x71, - 0x79, - 0x71, - 0x79, - 0x71, - 0x79, - 0x84, - 0x84, - 0x79, - 0x8D, - 0x84, - 0x8D, - 0x97, - 0x8D, - 0x8D, - 0x84, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0x8A, - 0xA5, - 0x9A, - 0x8A, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x0E, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0xB1, - 0xB1, - 0xB1, - 0xBC, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0x04, - 0xBC, - 0x00, - 0x30, - 0xE4, - 0xBC, - 0xE3, - 0xBC, - 0xE3, - 0xE4, - 0xC3, - 0xD9, - 0xE4, - 0xC3, - 0xE3, - 0x82, - 0x2A, - 0x2A, - 0x1F, - 0x1C, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x1E, - 0x14, - 0x03, - 0x00, - 0xF5, - 0xF5, - 0xD9, - 0xF5, - 0xE3, - 0xF5, - 0xF5, - 0xE3, - 0xF5, - 0xFB, - 0xF5, - 0xF5, - 0xFB, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xFB, - 0xFB, - 0xF6, - 0xFB, - 0xFD, - 0xFB, - 0x05, - 0xFD, - 0x01, - 0xFE, - 0x01, - 0xFD, - 0x04, - 0xFE, - 0x00, - 0x45, - 0xFD, - 0x67, - 0x19, - 0x39, - 0x32, - 0x4D, - 0x60, - 0x00, - 0x2A, - 0x39, - 0x1C, - 0x1C, - 0x19, - 0x0F, - 0x12, - 0x19, - 0x11, - 0x0F, - 0x19, - 0x11, - 0x11, - 0x0F, - 0x1C, - 0x1C, - 0x1C, - 0x11, - 0x1C, - 0x16, - 0x1C, - 0x1C, - 0x1C, - 0x1E, - 0x2A, - 0x10, - 0x1C, - 0x2A, - 0x04, - 0x16, - 0x22, - 0x55, - 0x22, - 0x29, - 0x22, - 0x1B, - 0x35, - 0x3C, - 0x10, - 0x03, - 0x04, - 0x19, - 0x10, - 0x29, - 0x16, - 0x1B, - 0x14, - 0x14, - 0x11, - 0x1C, - 0x2A, - 0x1F, - 0x19, - 0x41, - 0x4C, - 0x4B, - 0x41, - 0x4C, - 0x4C, - 0x73, - 0x8C, - 0x00, - 0x04, - 0x73, - 0x00, - 0x6B, - 0x87, - 0x83, - 0x73, - 0x87, - 0x72, - 0x83, - 0x61, - 0x72, - 0x61, - 0x72, - 0x68, - 0x74, - 0x68, - 0x6A, - 0x5E, - 0x68, - 0x68, - 0x61, - 0x68, - 0x5E, - 0x5E, - 0x51, - 0x61, - 0x51, - 0x69, - 0x51, - 0x51, - 0x36, - 0x36, - 0x36, - 0x10, - 0x2E, - 0x3F, - 0x81, - 0x58, - 0x5A, - 0x50, - 0x5A, - 0x54, - 0x59, - 0x54, - 0x50, - 0x50, - 0x54, - 0x50, - 0x48, - 0x21, - 0x40, - 0x33, - 0x21, - 0x5A, - 0x63, - 0x42, - 0x48, - 0x48, - 0x3D, - 0x31, - 0x52, - 0x31, - 0x33, - 0x43, - 0x63, - 0x53, - 0x48, - 0x3D, - 0x3F, - 0x44, - 0x59, - 0x3F, - 0x63, - 0x44, - 0x3F, - 0x3F, - 0x2E, - 0x31, - 0x31, - 0x1D, - 0x18, - 0x31, - 0x18, - 0x3A, - 0x38, - 0x53, - 0x3A, - 0x3A, - 0x47, - 0x54, - 0x47, - 0x37, - 0x48, - 0x3A, - 0x34, - 0x1A, - 0x13, - 0x07, - 0x1A, - 0x13, - 0x02, - 0x18, - 0x0C, - 0x5A, - 0x17, - 0x02, - 0x13, - 0x08, - 0x3F, - 0xBE, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x12, - 0xD8, - 0xFA, - 0xF7, - 0xD8, - 0xF7, - 0xF7, - 0xF4, - 0xD8, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xF0, - 0xDF, - 0xF4, - 0xC6, - 0xEC, - 0xF4, - 0x04, - 0xEC, - 0x01, - 0xF4, - 0x01, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x09, - 0x71, - 0x6C, - 0x76, - 0x71, - 0x76, - 0x71, - 0x79, - 0x76, - 0x6C, - 0x00, - 0x05, - 0x79, - 0x00, - 0x0A, - 0x84, - 0x79, - 0x84, - 0x84, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x9A, - 0x8A, - 0x05, - 0x9A, - 0x00, - 0x14, - 0x8A, - 0xA5, - 0xA5, - 0x9B, - 0x9B, - 0xA5, - 0x9B, - 0xB1, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0x9B, - 0xBC, - 0xB1, - 0xBC, - 0xB9, - 0xB9, - 0x04, - 0xBC, - 0x00, - 0x29, - 0xE4, - 0xE4, - 0xBC, - 0xC3, - 0xE4, - 0xC3, - 0xE4, - 0xD4, - 0xCA, - 0xCE, - 0x82, - 0x1F, - 0x2A, - 0x2A, - 0x1E, - 0x14, - 0x0F, - 0x0E, - 0x1E, - 0x2A, - 0x14, - 0x09, - 0x03, - 0x67, - 0xD9, - 0xF5, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xFB, - 0xE3, - 0xE1, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xFB, - 0xF5, - 0x00, - 0x04, - 0xFB, - 0x01, - 0xFD, - 0x01, - 0xFB, - 0x07, - 0xFD, - 0x06, - 0xFE, - 0x00, - 0x33, - 0xC3, - 0x19, - 0x1F, - 0x39, - 0x32, - 0x60, - 0x1E, - 0x4D, - 0x0F, - 0x19, - 0x19, - 0x12, - 0x19, - 0x0F, - 0x19, - 0x19, - 0x0F, - 0x0F, - 0x14, - 0x0F, - 0x14, - 0x11, - 0x16, - 0x14, - 0x16, - 0x14, - 0x1C, - 0x14, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x1E, - 0x1C, - 0x2A, - 0x09, - 0x14, - 0x13, - 0x22, - 0x29, - 0x22, - 0x22, - 0x1B, - 0x35, - 0x29, - 0x2A, - 0x01, - 0x05, - 0x09, - 0x14, - 0x14, - 0x00, - 0x04, - 0x16, - 0x00, - 0x10, - 0x09, - 0x2A, - 0x22, - 0x1C, - 0x1F, - 0x26, - 0x26, - 0x24, - 0x36, - 0x32, - 0x64, - 0x57, - 0x60, - 0x73, - 0x61, - 0xAA, - 0x04, - 0x73, - 0x00, - 0x67, - 0x77, - 0x77, - 0x83, - 0x68, - 0x6A, - 0x61, - 0x61, - 0x77, - 0x72, - 0x72, - 0x61, - 0x72, - 0x5E, - 0x68, - 0x72, - 0x74, - 0x68, - 0x68, - 0x68, - 0x51, - 0x51, - 0x5E, - 0x51, - 0x5C, - 0x46, - 0x46, - 0x36, - 0x24, - 0x1B, - 0x13, - 0x81, - 0x63, - 0x54, - 0x58, - 0x63, - 0x63, - 0x63, - 0x5F, - 0x58, - 0x53, - 0x63, - 0x42, - 0x3F, - 0x44, - 0x33, - 0x4E, - 0x52, - 0x59, - 0x54, - 0x50, - 0x54, - 0x44, - 0x44, - 0x31, - 0x2E, - 0x31, - 0x13, - 0x52, - 0x44, - 0x50, - 0x43, - 0x44, - 0x3F, - 0x3F, - 0x3F, - 0x44, - 0x63, - 0x43, - 0x34, - 0x3F, - 0x31, - 0x21, - 0x21, - 0x17, - 0x21, - 0x47, - 0x30, - 0x42, - 0x2C, - 0x3A, - 0x53, - 0x47, - 0x48, - 0x47, - 0x48, - 0x47, - 0x3D, - 0x30, - 0x2E, - 0x18, - 0x07, - 0x07, - 0x33, - 0x07, - 0x04, - 0x5A, - 0x2E, - 0x54, - 0x08, - 0x31, - 0x2F, - 0x20, - 0xA8, - 0x00, - 0x06, - 0xFA, - 0x00, - 0x17, - 0xD8, - 0xF7, - 0xF7, - 0xD8, - 0xF7, - 0xF4, - 0xD8, - 0xF4, - 0xF4, - 0xD8, - 0xEC, - 0xC6, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xDF, - 0xF4, - 0xF4, - 0xF7, - 0xEC, - 0xC8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x33, - 0x76, - 0x6C, - 0x71, - 0x76, - 0x6C, - 0x79, - 0x6C, - 0x71, - 0x79, - 0x71, - 0x79, - 0x71, - 0x79, - 0x79, - 0x84, - 0x79, - 0x84, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8A, - 0x9A, - 0x8A, - 0x9A, - 0x9A, - 0xA5, - 0x8A, - 0x9A, - 0xA5, - 0xB1, - 0xA5, - 0xA5, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0x9B, - 0xBC, - 0xB9, - 0x9B, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0xB9, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x23, - 0xE4, - 0xE4, - 0xBC, - 0xE4, - 0xC3, - 0xE4, - 0xC3, - 0x8F, - 0x2A, - 0x39, - 0x39, - 0x2A, - 0x1C, - 0x1C, - 0x1C, - 0x29, - 0x2A, - 0x35, - 0x0E, - 0x0B, - 0x01, - 0xFB, - 0xF5, - 0xF5, - 0xE3, - 0xFB, - 0xF5, - 0xFB, - 0xE1, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0x00, - 0x05, - 0xFB, - 0x00, - 0x05, - 0xF6, - 0xFB, - 0xFB, - 0xFD, - 0xFB, - 0x00, - 0x04, - 0xFD, - 0x09, - 0xFE, - 0x00, - 0xB2, - 0xFD, - 0x32, - 0x12, - 0x2A, - 0x4D, - 0x32, - 0x4D, - 0x0F, - 0x1F, - 0x1F, - 0x11, - 0x11, - 0x12, - 0x0F, - 0x12, - 0x19, - 0x0B, - 0x0F, - 0x19, - 0x11, - 0x09, - 0x1C, - 0x1B, - 0x16, - 0x14, - 0x14, - 0x14, - 0x2A, - 0x14, - 0x1C, - 0x1E, - 0x2A, - 0x1E, - 0x1C, - 0x2A, - 0x1E, - 0x05, - 0x1B, - 0x22, - 0x33, - 0x22, - 0x22, - 0x14, - 0x3C, - 0x29, - 0x35, - 0x09, - 0x05, - 0x09, - 0x0E, - 0x1B, - 0x1C, - 0x22, - 0x16, - 0x16, - 0x05, - 0x4F, - 0x29, - 0x1E, - 0x0F, - 0x2D, - 0x26, - 0x41, - 0x26, - 0x41, - 0x4C, - 0x57, - 0x60, - 0x57, - 0x6D, - 0x57, - 0x73, - 0x57, - 0x73, - 0xAA, - 0x83, - 0x74, - 0x87, - 0x83, - 0x72, - 0x6A, - 0x72, - 0x72, - 0x6E, - 0x6A, - 0x72, - 0x72, - 0x68, - 0x61, - 0x6A, - 0x5E, - 0x68, - 0x5E, - 0x51, - 0x74, - 0x69, - 0x5C, - 0x5E, - 0x5C, - 0x51, - 0x36, - 0x46, - 0x24, - 0x55, - 0x04, - 0x59, - 0x6B, - 0x3D, - 0x54, - 0x54, - 0x54, - 0x30, - 0x54, - 0x48, - 0x47, - 0x54, - 0x5A, - 0x59, - 0x44, - 0x40, - 0x33, - 0x52, - 0x52, - 0x63, - 0x48, - 0x44, - 0x48, - 0x3D, - 0x44, - 0x2B, - 0x40, - 0x33, - 0x43, - 0x43, - 0x54, - 0x48, - 0x42, - 0x44, - 0x31, - 0x3F, - 0x31, - 0x21, - 0x59, - 0x50, - 0x31, - 0x2E, - 0x31, - 0x2B, - 0x21, - 0x18, - 0x27, - 0x38, - 0x30, - 0x47, - 0x42, - 0x47, - 0x47, - 0x47, - 0x48, - 0x3A, - 0x47, - 0x48, - 0x1A, - 0x18, - 0x18, - 0x13, - 0x04, - 0x13, - 0x04, - 0x43, - 0x31, - 0x50, - 0x21, - 0x21, - 0x18, - 0x04, - 0x7B, - 0xFE, - 0x04, - 0xFA, - 0x00, - 0x07, - 0xD8, - 0xF7, - 0xFA, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x0E, - 0xDF, - 0xF4, - 0xF4, - 0xDF, - 0xF0, - 0xEC, - 0xC6, - 0xF0, - 0xF4, - 0xC8, - 0xC8, - 0xDF, - 0xF4, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x15, - 0x71, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x71, - 0x79, - 0x71, - 0x79, - 0x71, - 0x79, - 0x79, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x7D, - 0x84, - 0x84, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x51, - 0x8A, - 0x8D, - 0x9A, - 0x9A, - 0x8A, - 0x9A, - 0xA5, - 0x9A, - 0x9B, - 0x8A, - 0xA5, - 0xA5, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xB9, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xB9, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xE4, - 0xBC, - 0xC3, - 0xE3, - 0xCE, - 0x8F, - 0x2A, - 0x39, - 0x1F, - 0x1B, - 0x1C, - 0x19, - 0x22, - 0x14, - 0x4F, - 0x4D, - 0x32, - 0x0F, - 0x0F, - 0x0A, - 0xD9, - 0xF5, - 0xE3, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xD4, - 0xFB, - 0xE3, - 0xE3, - 0xFB, - 0xFB, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xF6, - 0xF6, - 0xC9, - 0x9F, - 0x8E, - 0x8E, - 0xA7, - 0xBF, - 0xE1, - 0xFD, - 0xFD, - 0xFD, - 0x00, - 0x07, - 0xFE, - 0x00, - 0xB1, - 0xE0, - 0x4D, - 0x3E, - 0x15, - 0x39, - 0x60, - 0x4D, - 0x32, - 0x0A, - 0x1F, - 0x0F, - 0x0A, - 0x11, - 0x12, - 0x12, - 0x12, - 0x0D, - 0x0B, - 0x0E, - 0x0F, - 0x11, - 0x0B, - 0x1E, - 0x1C, - 0x14, - 0x14, - 0x14, - 0x16, - 0x1C, - 0x1E, - 0x2A, - 0x1E, - 0x1C, - 0x1C, - 0x39, - 0x2A, - 0x0E, - 0x09, - 0x1B, - 0x22, - 0x22, - 0x14, - 0x29, - 0x29, - 0x1E, - 0x1E, - 0x1B, - 0x05, - 0x05, - 0x0E, - 0x14, - 0x1E, - 0x1B, - 0x16, - 0x14, - 0x14, - 0x29, - 0x2A, - 0x22, - 0x1B, - 0x32, - 0x12, - 0x2D, - 0x15, - 0x12, - 0x57, - 0x4C, - 0x4C, - 0x4B, - 0x57, - 0x73, - 0x57, - 0x5C, - 0x6D, - 0x5E, - 0x6A, - 0x73, - 0x83, - 0x6A, - 0x87, - 0x77, - 0x72, - 0x7E, - 0x6E, - 0x87, - 0x6E, - 0x68, - 0x77, - 0x68, - 0x68, - 0x68, - 0x72, - 0x51, - 0x74, - 0x51, - 0x5E, - 0x5E, - 0x5E, - 0x51, - 0x46, - 0x46, - 0x36, - 0x36, - 0x4C, - 0x26, - 0x13, - 0x6B, - 0x54, - 0x63, - 0x63, - 0x54, - 0x44, - 0x50, - 0x59, - 0x58, - 0x48, - 0x34, - 0x50, - 0x54, - 0x50, - 0x21, - 0x52, - 0x31, - 0x54, - 0x50, - 0x3D, - 0x47, - 0x47, - 0x6B, - 0x50, - 0x6B, - 0x52, - 0x59, - 0x59, - 0x63, - 0x3F, - 0x48, - 0x3F, - 0x3F, - 0x2E, - 0x31, - 0x17, - 0x52, - 0x59, - 0x3F, - 0x3F, - 0x21, - 0x21, - 0x21, - 0x18, - 0x17, - 0x42, - 0x1D, - 0x3A, - 0x54, - 0x50, - 0x42, - 0x48, - 0x48, - 0x48, - 0x34, - 0x2E, - 0x44, - 0x30, - 0x23, - 0x07, - 0x04, - 0x04, - 0x07, - 0x43, - 0x3A, - 0x31, - 0x18, - 0x31, - 0x33, - 0x5D, - 0xFE, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x19, - 0xF7, - 0xF7, - 0xF7, - 0xFA, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xD8, - 0xDF, - 0xF4, - 0xF4, - 0xC6, - 0xC6, - 0xEC, - 0xDF, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x76, - 0x6C, - 0x6C, - 0x79, - 0x6C, - 0x79, - 0x6C, - 0x76, - 0x71, - 0x76, - 0x6C, - 0x00, - 0x06, - 0x79, - 0x00, - 0x06, - 0x84, - 0x84, - 0x84, - 0x8D, - 0x79, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x3A, - 0x9A, - 0x9A, - 0x9A, - 0x8A, - 0x8A, - 0xA5, - 0x9A, - 0xA5, - 0x9B, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0xA5, - 0xBC, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0xBC, - 0xB9, - 0xE4, - 0xE4, - 0xBC, - 0xC8, - 0xE4, - 0xE4, - 0xBC, - 0x95, - 0x39, - 0x32, - 0x2A, - 0x2A, - 0x2A, - 0x19, - 0x22, - 0x1F, - 0x39, - 0x39, - 0x32, - 0x16, - 0x0B, - 0x06, - 0x67, - 0xE2, - 0xE0, - 0xFB, - 0xD9, - 0xF5, - 0xE3, - 0xFB, - 0xFB, - 0xF5, - 0x05, - 0xFB, - 0x00, - 0x07, - 0xE3, - 0xFD, - 0xCA, - 0x70, - 0x26, - 0x0D, - 0x03, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x21, - 0x24, - 0x26, - 0x15, - 0x0D, - 0x15, - 0x64, - 0x2D, - 0x70, - 0x95, - 0xB8, - 0xFE, - 0xFE, - 0xFE, - 0x9C, - 0x5B, - 0x0A, - 0x26, - 0x39, - 0x4D, - 0x60, - 0x5B, - 0x19, - 0x12, - 0x0B, - 0x19, - 0x0F, - 0x0F, - 0x19, - 0x06, - 0x0A, - 0x0F, - 0x0F, - 0x0E, - 0x00, - 0x05, - 0x14, - 0x00, - 0x97, - 0x1C, - 0x11, - 0x2A, - 0x1C, - 0x2A, - 0x1F, - 0x2A, - 0x1C, - 0x2A, - 0x35, - 0x2A, - 0x01, - 0x09, - 0x22, - 0x1B, - 0x07, - 0x39, - 0x35, - 0x29, - 0x29, - 0x1E, - 0x1B, - 0x01, - 0x0F, - 0x14, - 0x1B, - 0x1E, - 0x16, - 0x10, - 0x29, - 0x1B, - 0x1B, - 0x1E, - 0x1C, - 0x1E, - 0x1C, - 0x1F, - 0x26, - 0x26, - 0x26, - 0x32, - 0x4C, - 0x60, - 0x57, - 0x60, - 0x57, - 0x6D, - 0x73, - 0x57, - 0x82, - 0x73, - 0x74, - 0x74, - 0x83, - 0x77, - 0x75, - 0x7E, - 0x87, - 0x77, - 0x6E, - 0x77, - 0x77, - 0x72, - 0x61, - 0x6A, - 0x5E, - 0x68, - 0x68, - 0x51, - 0x5E, - 0x74, - 0x5C, - 0x46, - 0x5E, - 0x36, - 0x51, - 0x46, - 0x4B, - 0x4F, - 0x4E, - 0x6B, - 0x53, - 0x63, - 0x54, - 0x59, - 0x63, - 0x48, - 0x54, - 0x50, - 0x63, - 0x50, - 0x58, - 0x63, - 0x43, - 0x52, - 0x43, - 0x52, - 0x54, - 0x3D, - 0x54, - 0x54, - 0x54, - 0x53, - 0x3A, - 0x6B, - 0x43, - 0x6B, - 0x5F, - 0x54, - 0x5A, - 0x3F, - 0x44, - 0x31, - 0x31, - 0x31, - 0x21, - 0x2E, - 0x31, - 0x3F, - 0x21, - 0x21, - 0x25, - 0x18, - 0x21, - 0x1A, - 0x2E, - 0x2E, - 0x31, - 0x2C, - 0x42, - 0x54, - 0x42, - 0x3D, - 0x2E, - 0x1A, - 0x37, - 0x21, - 0x23, - 0x13, - 0x07, - 0x04, - 0x02, - 0x17, - 0x3A, - 0x48, - 0x31, - 0x40, - 0x13, - 0x4E, - 0xFA, - 0xF1, - 0x00, - 0x06, - 0xFA, - 0x00, - 0x08, - 0xD8, - 0xF7, - 0xF7, - 0xF7, - 0xD8, - 0xF4, - 0xF7, - 0xDF, - 0x04, - 0xF4, - 0x00, - 0x0C, - 0xDF, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xC8, - 0xF4, - 0xF7, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x18, - 0x6C, - 0x76, - 0x71, - 0x76, - 0x71, - 0x71, - 0x79, - 0x6C, - 0x79, - 0x79, - 0x6C, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x79, - 0x79, - 0x79, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x7D, - 0x04, - 0x8D, - 0x04, - 0x9A, - 0x00, - 0x0F, - 0x8A, - 0x9A, - 0x9B, - 0x9A, - 0xA5, - 0xA5, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x9B, - 0xA5, - 0xBC, - 0x9B, - 0xB1, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x32, - 0xBC, - 0xB9, - 0xB9, - 0xE4, - 0xBC, - 0xBC, - 0xE4, - 0xCE, - 0xBC, - 0x4D, - 0x32, - 0x2A, - 0x2A, - 0x1F, - 0x22, - 0x14, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x14, - 0x0A, - 0x00, - 0xE4, - 0xF5, - 0xE4, - 0xFB, - 0xE3, - 0xFB, - 0xE3, - 0xE3, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xF9, - 0xF6, - 0xCA, - 0x82, - 0x24, - 0x1F, - 0x15, - 0x0D, - 0x15, - 0x15, - 0x0D, - 0x0D, - 0x0D, - 0x24, - 0x05, - 0x15, - 0x00, - 0x71, - 0x26, - 0x12, - 0x15, - 0x12, - 0x0D, - 0x03, - 0x0A, - 0x67, - 0x57, - 0x32, - 0x32, - 0x0D, - 0x1F, - 0x60, - 0x4D, - 0x60, - 0x4D, - 0x1F, - 0x39, - 0x32, - 0x32, - 0x0B, - 0x1C, - 0x12, - 0x06, - 0x0A, - 0x0F, - 0x0F, - 0x11, - 0x11, - 0x14, - 0x14, - 0x14, - 0x22, - 0x14, - 0x16, - 0x2A, - 0x1E, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x35, - 0x39, - 0x00, - 0x05, - 0x0E, - 0x10, - 0x29, - 0x35, - 0x35, - 0x35, - 0x29, - 0x1E, - 0x10, - 0x0E, - 0x05, - 0x0F, - 0x1E, - 0x1C, - 0x1C, - 0x22, - 0x1E, - 0x16, - 0x1E, - 0x16, - 0x10, - 0x2A, - 0x2F, - 0x1F, - 0x12, - 0x12, - 0x26, - 0x32, - 0x57, - 0x4C, - 0x4C, - 0x4C, - 0x57, - 0x60, - 0x57, - 0x73, - 0x95, - 0x5E, - 0x73, - 0x73, - 0x87, - 0x77, - 0x88, - 0x91, - 0x87, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x72, - 0x83, - 0x61, - 0x72, - 0x5E, - 0x5E, - 0x68, - 0x68, - 0x6A, - 0x5C, - 0x5E, - 0x46, - 0x5E, - 0x51, - 0x46, - 0x24, - 0x26, - 0x4F, - 0x00, - 0x06, - 0x63, - 0x00, - 0x21, - 0x42, - 0x63, - 0x58, - 0x48, - 0x50, - 0x37, - 0x3F, - 0x5A, - 0x50, - 0x3F, - 0x3F, - 0x54, - 0x50, - 0x3F, - 0x43, - 0x50, - 0x43, - 0x48, - 0x63, - 0x50, - 0x63, - 0x37, - 0x63, - 0x54, - 0x3F, - 0x44, - 0x31, - 0x2E, - 0x21, - 0x21, - 0x21, - 0x40, - 0x21, - 0x00, - 0x04, - 0x18, - 0x00, - 0x1A, - 0x25, - 0x34, - 0x25, - 0x1A, - 0x31, - 0x3F, - 0x31, - 0x2E, - 0x54, - 0x3A, - 0x2E, - 0x3F, - 0x25, - 0x2E, - 0x40, - 0x0C, - 0x07, - 0x02, - 0x02, - 0x17, - 0x3F, - 0x48, - 0x3F, - 0x18, - 0x18, - 0xBE, - 0x05, - 0xFA, - 0x00, - 0x1B, - 0xF7, - 0xFA, - 0xFA, - 0xD8, - 0xF7, - 0xD8, - 0xF4, - 0xF7, - 0xF4, - 0xD8, - 0xF4, - 0xDF, - 0xF4, - 0xF4, - 0xF4, - 0xDF, - 0xEC, - 0xF4, - 0xF4, - 0xC8, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF7, - 0xC8, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x5D, - 0x7D, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x79, - 0x6C, - 0x79, - 0x79, - 0x79, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x79, - 0x84, - 0x7D, - 0x79, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8D, - 0x9B, - 0x8D, - 0x8A, - 0x9A, - 0x9B, - 0x9A, - 0x9A, - 0xA5, - 0x9B, - 0xA5, - 0x9B, - 0xA5, - 0x9B, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x22, - 0xB9, - 0x9B, - 0xBC, - 0xB9, - 0xB9, - 0xE4, - 0xBC, - 0xBC, - 0xB9, - 0xE4, - 0xE4, - 0xBC, - 0xF0, - 0x4D, - 0x2A, - 0x2A, - 0x2A, - 0x32, - 0x19, - 0x2A, - 0x39, - 0x1E, - 0x11, - 0x2F, - 0x35, - 0x1F, - 0x0F, - 0x0B, - 0x0A, - 0xFB, - 0xE1, - 0xFB, - 0xFB, - 0xE3, - 0x05, - 0xFB, - 0x00, - 0x0E, - 0xCC, - 0x57, - 0x64, - 0x15, - 0x12, - 0x15, - 0x12, - 0x0D, - 0x0D, - 0x15, - 0x24, - 0x36, - 0x24, - 0x24, - 0x04, - 0x15, - 0x00, - 0xB8, - 0x24, - 0x57, - 0x24, - 0x24, - 0x24, - 0x15, - 0x24, - 0x24, - 0x15, - 0x26, - 0x24, - 0x15, - 0x12, - 0x12, - 0x0A, - 0x12, - 0x1F, - 0x6D, - 0x5B, - 0x62, - 0x71, - 0x0A, - 0x0F, - 0x1F, - 0x0A, - 0x12, - 0x19, - 0x0A, - 0x06, - 0x0A, - 0x0B, - 0x0B, - 0x0E, - 0x14, - 0x1C, - 0x14, - 0x0F, - 0x14, - 0x14, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x2A, - 0x2A, - 0x1E, - 0x39, - 0x01, - 0x03, - 0x05, - 0x09, - 0x35, - 0x22, - 0x1E, - 0x1E, - 0x16, - 0x1E, - 0x10, - 0x0B, - 0x03, - 0x0E, - 0x16, - 0x1E, - 0x2A, - 0x1B, - 0x1E, - 0x29, - 0x22, - 0x29, - 0x1E, - 0x10, - 0x2A, - 0x0F, - 0x1E, - 0x26, - 0x19, - 0x26, - 0x41, - 0x26, - 0x4C, - 0x32, - 0x4D, - 0x57, - 0x57, - 0x60, - 0x5C, - 0x82, - 0x68, - 0x73, - 0x83, - 0x92, - 0x91, - 0x93, - 0x88, - 0x7E, - 0x7E, - 0x7E, - 0x6E, - 0x87, - 0x77, - 0x87, - 0x68, - 0x83, - 0x68, - 0x72, - 0x68, - 0x68, - 0x51, - 0x69, - 0x69, - 0x5C, - 0x5C, - 0x46, - 0x46, - 0x24, - 0x22, - 0x52, - 0x81, - 0x54, - 0x63, - 0x58, - 0x59, - 0x54, - 0x59, - 0x59, - 0x54, - 0x54, - 0x59, - 0x50, - 0x48, - 0x50, - 0x3A, - 0x5A, - 0x34, - 0x50, - 0x48, - 0x63, - 0x43, - 0x50, - 0x63, - 0x43, - 0x63, - 0x34, - 0x58, - 0x59, - 0x59, - 0x43, - 0x3F, - 0x31, - 0x31, - 0x21, - 0x21, - 0x18, - 0x21, - 0x31, - 0x21, - 0x18, - 0x07, - 0x08, - 0x1A, - 0x47, - 0x2B, - 0x3F, - 0x2B, - 0x21, - 0x31, - 0x31, - 0x13, - 0x18, - 0x31, - 0x2B, - 0x31, - 0x34, - 0x18, - 0x07, - 0x04, - 0x02, - 0x18, - 0x43, - 0x31, - 0x21, - 0x1A, - 0x33, - 0x3C, - 0x06, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x17, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xDF, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xEC, - 0xDF, - 0xEC, - 0xC8, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x76, - 0x79, - 0x71, - 0x00, - 0x07, - 0x79, - 0x00, - 0x07, - 0x84, - 0x84, - 0x8D, - 0x79, - 0x84, - 0x8D, - 0x84, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x23, - 0x9A, - 0x8A, - 0x9A, - 0x9A, - 0x9A, - 0x8A, - 0x8A, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0x9B, - 0xA5, - 0x9B, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xF0, - 0xB1, - 0xBC, - 0xB9, - 0xB1, - 0xB1, - 0xBC, - 0xC8, - 0xBC, - 0xC8, - 0xF0, - 0x62, - 0x39, - 0x39, - 0x35, - 0x32, - 0x14, - 0x00, - 0x04, - 0x1C, - 0x00, - 0x26, - 0x14, - 0x14, - 0x32, - 0x2A, - 0x12, - 0x03, - 0x1F, - 0xFB, - 0xF9, - 0xF5, - 0xF9, - 0xFB, - 0xE3, - 0xF6, - 0xE1, - 0x82, - 0x12, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x12, - 0x15, - 0x12, - 0x12, - 0x15, - 0x12, - 0x26, - 0x15, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x15, - 0x26, - 0x36, - 0x36, - 0x0D, - 0x05, - 0x15, - 0x01, - 0x24, - 0x04, - 0x15, - 0x00, - 0xAA, - 0x0D, - 0x12, - 0x0D, - 0x12, - 0x12, - 0x32, - 0x4D, - 0x6D, - 0x5B, - 0x12, - 0x19, - 0x1F, - 0x0A, - 0x0F, - 0x0A, - 0x0A, - 0x03, - 0x0A, - 0x0B, - 0x0F, - 0x14, - 0x1C, - 0x1C, - 0x14, - 0x0F, - 0x14, - 0x1C, - 0x2A, - 0x1E, - 0x1C, - 0x1C, - 0x2A, - 0x2A, - 0x1E, - 0x1E, - 0x00, - 0x03, - 0x1E, - 0x3C, - 0x2A, - 0x1B, - 0x1E, - 0x29, - 0x29, - 0x2A, - 0x02, - 0x05, - 0x05, - 0x22, - 0x1E, - 0x1B, - 0x1B, - 0x2A, - 0x1B, - 0x1E, - 0x29, - 0x29, - 0x16, - 0x29, - 0x14, - 0x11, - 0x0F, - 0x12, - 0x32, - 0x26, - 0x4C, - 0x57, - 0x57, - 0x4C, - 0x32, - 0x57, - 0x82, - 0x6D, - 0x51, - 0x95, - 0x77, - 0x83, - 0x92, - 0x9E, - 0x92, - 0x88, - 0x91, - 0x88, - 0x75, - 0x7E, - 0x75, - 0x87, - 0x68, - 0x6E, - 0x68, - 0x72, - 0x72, - 0x6A, - 0x69, - 0x74, - 0x68, - 0x5E, - 0x51, - 0x74, - 0x46, - 0x36, - 0x15, - 0x19, - 0x13, - 0x42, - 0x54, - 0x59, - 0x63, - 0x5F, - 0x6B, - 0x63, - 0x42, - 0x59, - 0x48, - 0x53, - 0x59, - 0x42, - 0x59, - 0x48, - 0x63, - 0x59, - 0x3F, - 0x50, - 0x50, - 0x43, - 0x5A, - 0x63, - 0x43, - 0x63, - 0x48, - 0x63, - 0x3F, - 0x3F, - 0x48, - 0x48, - 0x31, - 0x21, - 0x31, - 0x18, - 0x18, - 0x21, - 0x31, - 0x3A, - 0x47, - 0x3A, - 0x08, - 0x18, - 0x0C, - 0x3A, - 0x2B, - 0x31, - 0x34, - 0x18, - 0x31, - 0x1A, - 0x21, - 0x21, - 0x3F, - 0x31, - 0x31, - 0x23, - 0x08, - 0x04, - 0x04, - 0x2B, - 0x2E, - 0x2E, - 0x21, - 0x33, - 0x23, - 0x06, - 0xFA, - 0x01, - 0xF7, - 0x01, - 0xFA, - 0x04, - 0xF7, - 0x07, - 0xF4, - 0x00, - 0x04, - 0xDF, - 0xF4, - 0xEC, - 0xF0, - 0x04, - 0xEC, - 0x01, - 0xDF, - 0x01, - 0xEC, - 0x04, - 0xF4, - 0x01, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x71, - 0x76, - 0x79, - 0x6C, - 0x6C, - 0x71, - 0x76, - 0x71, - 0x71, - 0x76, - 0x79, - 0x76, - 0x79, - 0x79, - 0x71, - 0x00, - 0x06, - 0x79, - 0x00, - 0x04, - 0x84, - 0x84, - 0x7D, - 0x7D, - 0x05, - 0x8D, - 0x00, - 0x4D, - 0x9A, - 0x8D, - 0x8D, - 0x9B, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0xB1, - 0xB9, - 0xB9, - 0xF0, - 0xE4, - 0xB1, - 0xE4, - 0xE4, - 0x78, - 0x32, - 0x39, - 0x2A, - 0x2A, - 0x35, - 0x2A, - 0x1C, - 0x22, - 0x29, - 0x1B, - 0x29, - 0x39, - 0x60, - 0x14, - 0x03, - 0x03, - 0x70, - 0xE3, - 0xFB, - 0xE4, - 0xFB, - 0xE3, - 0xC3, - 0x26, - 0x03, - 0x0D, - 0x0D, - 0x06, - 0x15, - 0x12, - 0x12, - 0x24, - 0x1F, - 0x1F, - 0x15, - 0x1F, - 0x0D, - 0x0D, - 0x03, - 0x0D, - 0x06, - 0x15, - 0x15, - 0x0D, - 0x12, - 0x4C, - 0x11, - 0x32, - 0x1F, - 0x00, - 0x05, - 0x0A, - 0x00, - 0x23, - 0x06, - 0x12, - 0x0D, - 0x0A, - 0x0A, - 0x0D, - 0x0D, - 0x12, - 0x0A, - 0x0A, - 0x0B, - 0x0A, - 0x5B, - 0x4D, - 0x2A, - 0x11, - 0x0B, - 0x0A, - 0x06, - 0x0D, - 0x05, - 0x06, - 0x0B, - 0x0F, - 0x0F, - 0x14, - 0x22, - 0x11, - 0x14, - 0x0F, - 0x0E, - 0x39, - 0x2A, - 0x2A, - 0x1C, - 0x00, - 0x04, - 0x2A, - 0x00, - 0x89, - 0x00, - 0x09, - 0x35, - 0x35, - 0x22, - 0x16, - 0x1B, - 0x1B, - 0x22, - 0x29, - 0x14, - 0x09, - 0x05, - 0x09, - 0x16, - 0x22, - 0x10, - 0x22, - 0x1B, - 0x16, - 0x1B, - 0x16, - 0x1E, - 0x16, - 0x29, - 0x16, - 0x0B, - 0x19, - 0x1F, - 0x1F, - 0x26, - 0x26, - 0x26, - 0x32, - 0x60, - 0x57, - 0x57, - 0x57, - 0x8E, - 0x61, - 0x73, - 0x92, - 0x83, - 0xA0, - 0xA0, - 0x91, - 0x91, - 0x88, - 0x87, - 0x7E, - 0x87, - 0x87, - 0x7E, - 0x83, - 0x75, - 0x72, - 0x77, - 0x68, - 0x68, - 0x72, - 0x68, - 0x69, - 0x74, - 0x36, - 0x69, - 0x15, - 0x15, - 0x15, - 0x12, - 0x33, - 0x2E, - 0x59, - 0x63, - 0x63, - 0x63, - 0x44, - 0x59, - 0x54, - 0x59, - 0x40, - 0x50, - 0x48, - 0x54, - 0x3D, - 0x50, - 0x48, - 0x3F, - 0x3F, - 0x5A, - 0x52, - 0x5A, - 0x5A, - 0x3F, - 0x5A, - 0x48, - 0x5A, - 0x3F, - 0x59, - 0x43, - 0x31, - 0x31, - 0x31, - 0x21, - 0x18, - 0x13, - 0x3D, - 0x47, - 0x3B, - 0x3B, - 0x47, - 0x2C, - 0x21, - 0x34, - 0x21, - 0x2E, - 0x31, - 0x21, - 0x31, - 0x21, - 0x2E, - 0x31, - 0x3D, - 0x2B, - 0x2E, - 0x21, - 0x1A, - 0x07, - 0x02, - 0x0C, - 0x48, - 0x25, - 0x2E, - 0x23, - 0x21, - 0x65, - 0xD0, - 0xFE, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x06, - 0xD8, - 0xFA, - 0xF7, - 0xF4, - 0xD8, - 0xF7, - 0x07, - 0xF4, - 0x00, - 0x0E, - 0xDF, - 0xC6, - 0xC6, - 0xEC, - 0xF7, - 0xC8, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x76, - 0x71, - 0x6C, - 0x76, - 0x76, - 0x76, - 0x71, - 0x79, - 0x79, - 0x79, - 0x6C, - 0x00, - 0x09, - 0x79, - 0x00, - 0x06, - 0x84, - 0x79, - 0x8D, - 0x84, - 0x7D, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x3E, - 0x9B, - 0x8D, - 0x8D, - 0xA5, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9B, - 0x9B, - 0xA5, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xA5, - 0xB9, - 0xB9, - 0xB1, - 0xB1, - 0xE4, - 0x9B, - 0xB9, - 0xC8, - 0xB9, - 0xBC, - 0x4D, - 0x39, - 0x39, - 0x1E, - 0x2A, - 0x2A, - 0x35, - 0x14, - 0x22, - 0x1B, - 0x4A, - 0x32, - 0x5B, - 0x4D, - 0x09, - 0x03, - 0x03, - 0xD9, - 0xF9, - 0xE0, - 0xFB, - 0x57, - 0x0D, - 0x0A, - 0x0A, - 0x03, - 0x0D, - 0x12, - 0x0D, - 0x12, - 0x12, - 0x12, - 0x15, - 0x12, - 0x0D, - 0x06, - 0x0A, - 0x00, - 0x4A, - 0x57, - 0x26, - 0x32, - 0x19, - 0x26, - 0x32, - 0x2A, - 0x1C, - 0x11, - 0x32, - 0x19, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x06, - 0x0B, - 0x0F, - 0x0A, - 0x0F, - 0x0A, - 0x0B, - 0x0A, - 0x03, - 0x06, - 0x0B, - 0x0A, - 0x0F, - 0x19, - 0x1F, - 0x0A, - 0x06, - 0x03, - 0x0A, - 0x03, - 0x0A, - 0x03, - 0x12, - 0x0B, - 0x0F, - 0x14, - 0x14, - 0x14, - 0x11, - 0x11, - 0x11, - 0x1F, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x1C, - 0x2A, - 0x1E, - 0x29, - 0x29, - 0x29, - 0x1B, - 0x14, - 0x1B, - 0x1B, - 0x1B, - 0x10, - 0x22, - 0x0E, - 0x0E, - 0x06, - 0x10, - 0x1E, - 0x10, - 0x1B, - 0x1B, - 0x16, - 0x29, - 0x04, - 0x1B, - 0x00, - 0x6D, - 0x22, - 0x14, - 0x0F, - 0x1C, - 0x32, - 0x26, - 0x4C, - 0x57, - 0x26, - 0x4C, - 0x4B, - 0x57, - 0x57, - 0x73, - 0x74, - 0x92, - 0x83, - 0x87, - 0x92, - 0x91, - 0x92, - 0xA0, - 0x91, - 0x88, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x77, - 0x77, - 0x72, - 0x6A, - 0x77, - 0x77, - 0x83, - 0x74, - 0x68, - 0x68, - 0x61, - 0x46, - 0x15, - 0x24, - 0x15, - 0x15, - 0x32, - 0x08, - 0x59, - 0x54, - 0x6B, - 0x6B, - 0x63, - 0x44, - 0x59, - 0x48, - 0x44, - 0x31, - 0x3D, - 0x2E, - 0x63, - 0x30, - 0x43, - 0x59, - 0x3F, - 0x59, - 0x31, - 0x52, - 0x3F, - 0x31, - 0x5A, - 0x34, - 0x37, - 0x47, - 0x54, - 0x3F, - 0x3F, - 0x31, - 0x21, - 0x18, - 0x18, - 0x18, - 0x3A, - 0x2C, - 0x54, - 0x47, - 0x53, - 0x47, - 0x3A, - 0x42, - 0x25, - 0x21, - 0x2B, - 0x21, - 0x31, - 0x18, - 0x25, - 0x3A, - 0x43, - 0x3F, - 0x34, - 0x21, - 0x13, - 0x07, - 0x02, - 0x1A, - 0x5A, - 0x31, - 0x23, - 0x21, - 0x43, - 0x00, - 0x07, - 0xFA, - 0x00, - 0x09, - 0xF7, - 0xF7, - 0xF7, - 0xD8, - 0xF4, - 0xF7, - 0xF4, - 0xD8, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x0F, - 0xEC, - 0xF4, - 0xF0, - 0xF4, - 0xC8, - 0xF4, - 0xC8, - 0xF9, - 0xC6, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x71, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x71, - 0x79, - 0x79, - 0x79, - 0x6C, - 0x05, - 0x79, - 0x00, - 0x3D, - 0x84, - 0x79, - 0x84, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x9B, - 0x9B, - 0x9A, - 0x9B, - 0x9A, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0x9B, - 0xA5, - 0x9B, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xA5, - 0xF0, - 0xB9, - 0xB1, - 0xF0, - 0x5B, - 0x4D, - 0x4D, - 0x2A, - 0x1F, - 0x2A, - 0x39, - 0x1C, - 0x10, - 0x1F, - 0x39, - 0x1E, - 0x4A, - 0x62, - 0x2A, - 0x0B, - 0x06, - 0x0F, - 0xFD, - 0xE3, - 0x82, - 0x11, - 0x0D, - 0x0A, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x07, - 0x0A, - 0x12, - 0x12, - 0x15, - 0x0D, - 0x06, - 0x06, - 0x00, - 0x04, - 0x03, - 0x00, - 0x32, - 0x05, - 0x14, - 0x57, - 0x4D, - 0x4D, - 0x32, - 0x4D, - 0x35, - 0x1E, - 0x1C, - 0x29, - 0x16, - 0x29, - 0x29, - 0x6C, - 0x1B, - 0x1C, - 0x14, - 0x1C, - 0x14, - 0x14, - 0x0F, - 0x0B, - 0x19, - 0x0B, - 0x06, - 0x06, - 0x0A, - 0x03, - 0x06, - 0x06, - 0x0A, - 0x0B, - 0x19, - 0x19, - 0x0A, - 0x03, - 0x03, - 0x0A, - 0x06, - 0x03, - 0x0A, - 0x0F, - 0x0F, - 0x14, - 0x11, - 0x11, - 0x0F, - 0x1C, - 0x2A, - 0x04, - 0x1C, - 0x00, - 0x31, - 0x2A, - 0x35, - 0x2A, - 0x14, - 0x1E, - 0x1E, - 0x1C, - 0x14, - 0x1B, - 0x1B, - 0x16, - 0x14, - 0x1B, - 0x1C, - 0x02, - 0x01, - 0x09, - 0x0E, - 0x16, - 0x16, - 0x14, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x29, - 0x1B, - 0x29, - 0x0E, - 0x0E, - 0x11, - 0x19, - 0x26, - 0x41, - 0x36, - 0x57, - 0x26, - 0x4C, - 0x5C, - 0x64, - 0x74, - 0x74, - 0xB4, - 0x83, - 0x92, - 0x92, - 0x92, - 0xA0, - 0x92, - 0x00, - 0x04, - 0x91, - 0x00, - 0x0E, - 0x92, - 0x87, - 0x87, - 0x6E, - 0x72, - 0x77, - 0x87, - 0x72, - 0x72, - 0x72, - 0x83, - 0x69, - 0x36, - 0x24, - 0x04, - 0x36, - 0x00, - 0x42, - 0x24, - 0x28, - 0x31, - 0x52, - 0x63, - 0x63, - 0x59, - 0x58, - 0x3F, - 0x59, - 0x48, - 0x44, - 0x52, - 0x59, - 0x63, - 0x52, - 0x3F, - 0x3F, - 0x48, - 0x52, - 0x40, - 0x59, - 0x52, - 0x5A, - 0x37, - 0x52, - 0x3F, - 0x21, - 0x37, - 0x44, - 0x21, - 0x18, - 0x13, - 0x13, - 0x21, - 0x23, - 0x3A, - 0x38, - 0x3A, - 0x53, - 0x47, - 0x3B, - 0x48, - 0x48, - 0x3D, - 0x25, - 0x21, - 0x21, - 0x18, - 0x21, - 0x48, - 0x3A, - 0x2E, - 0x3F, - 0x31, - 0x2E, - 0x23, - 0x07, - 0x02, - 0x0C, - 0x18, - 0x13, - 0x2E, - 0x23, - 0xC6, - 0xF7, - 0x04, - 0xFA, - 0x00, - 0x1E, - 0xF7, - 0xD8, - 0xD8, - 0xFA, - 0xF7, - 0xF7, - 0xD8, - 0xF4, - 0xF4, - 0xF4, - 0xF0, - 0xC6, - 0xDF, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF7, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xEC, - 0xEC, - 0xC8, - 0xDF, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x76, - 0x6C, - 0x76, - 0x79, - 0x71, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x79, - 0x6C, - 0x08, - 0x79, - 0x00, - 0x08, - 0x84, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x84, - 0x8D, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x36, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0x9B, - 0xA5, - 0xA5, - 0x9B, - 0xA5, - 0xA5, - 0xB1, - 0xB1, - 0x9B, - 0xB9, - 0xB9, - 0xB1, - 0xB9, - 0xB9, - 0xA5, - 0xF0, - 0xE4, - 0x62, - 0x4D, - 0x39, - 0x39, - 0x2A, - 0x4F, - 0x39, - 0x35, - 0x14, - 0x32, - 0x4D, - 0x60, - 0x32, - 0x4D, - 0x60, - 0x09, - 0x0B, - 0x09, - 0x49, - 0xD4, - 0x39, - 0x39, - 0x4A, - 0x0D, - 0x0A, - 0x06, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x12, - 0x04, - 0x06, - 0x00, - 0x2B, - 0x0B, - 0x05, - 0x0B, - 0x09, - 0x1F, - 0x4C, - 0x32, - 0x1C, - 0x4C, - 0x32, - 0x0E, - 0x19, - 0x0E, - 0x11, - 0x0F, - 0x16, - 0x39, - 0x0E, - 0x1E, - 0x2A, - 0x14, - 0x1C, - 0x1C, - 0x35, - 0x1C, - 0x2A, - 0x3C, - 0x39, - 0x2A, - 0x0E, - 0x14, - 0x0B, - 0x0B, - 0x05, - 0x09, - 0x06, - 0x06, - 0x05, - 0x0A, - 0x0B, - 0x19, - 0x4D, - 0x26, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0A, - 0x0B, - 0x0B, - 0x0E, - 0x0E, - 0x0E, - 0x14, - 0x0F, - 0x1C, - 0x1C, - 0x2A, - 0x04, - 0x1C, - 0x00, - 0x2B, - 0x1B, - 0x1C, - 0x14, - 0x1B, - 0x22, - 0x16, - 0x10, - 0x14, - 0x10, - 0x0E, - 0x16, - 0x16, - 0x0E, - 0x09, - 0x0F, - 0x10, - 0x14, - 0x14, - 0x14, - 0x10, - 0x16, - 0x10, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x16, - 0x0E, - 0x14, - 0x09, - 0x1F, - 0x41, - 0x4C, - 0x24, - 0x4B, - 0x5C, - 0x4C, - 0x64, - 0x83, - 0x83, - 0x83, - 0x74, - 0x83, - 0x00, - 0x04, - 0x92, - 0x00, - 0x59, - 0x91, - 0x93, - 0x91, - 0xA0, - 0x92, - 0x92, - 0x6E, - 0x72, - 0x7E, - 0x7E, - 0x77, - 0x6A, - 0x72, - 0x83, - 0x51, - 0x69, - 0x46, - 0x46, - 0x5C, - 0x5C, - 0x5C, - 0x46, - 0x4B, - 0x24, - 0x14, - 0x6B, - 0x6B, - 0x6B, - 0x63, - 0x54, - 0x50, - 0x47, - 0x50, - 0x44, - 0x40, - 0x55, - 0x44, - 0x59, - 0x50, - 0x52, - 0x3F, - 0x43, - 0x54, - 0x44, - 0x44, - 0x40, - 0x33, - 0x21, - 0x40, - 0x21, - 0x22, - 0x18, - 0x44, - 0x44, - 0x21, - 0x0C, - 0x21, - 0x34, - 0x30, - 0x34, - 0x54, - 0x3B, - 0x47, - 0x50, - 0x44, - 0x58, - 0x54, - 0x34, - 0x21, - 0x3F, - 0x21, - 0x21, - 0x50, - 0x30, - 0x3F, - 0x31, - 0x2E, - 0x1A, - 0x13, - 0x07, - 0x08, - 0x20, - 0x20, - 0x2E, - 0x44, - 0xB9, - 0xE0, - 0xFA, - 0xF7, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x03, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x06, - 0xF4, - 0x00, - 0x13, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xF4, - 0xF0, - 0xF7, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x76, - 0x71, - 0x76, - 0x76, - 0x00, - 0x04, - 0x79, - 0x01, - 0x76, - 0x07, - 0x79, - 0x00, - 0x84, - 0x7D, - 0x84, - 0x79, - 0x84, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x7D, - 0x8D, - 0x9A, - 0x8D, - 0x9B, - 0x8D, - 0x9B, - 0x9A, - 0x9A, - 0x9B, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xA5, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xB1, - 0xF0, - 0xB1, - 0x9B, - 0x5B, - 0x35, - 0x4D, - 0x35, - 0x2A, - 0x2A, - 0x35, - 0x1C, - 0x16, - 0x2A, - 0x5B, - 0x1B, - 0x39, - 0x4D, - 0x22, - 0x0B, - 0x0F, - 0x03, - 0x82, - 0x62, - 0x29, - 0x1B, - 0x16, - 0x16, - 0x12, - 0x0D, - 0x0A, - 0x06, - 0x06, - 0x06, - 0x03, - 0x09, - 0x06, - 0x05, - 0x09, - 0x05, - 0x0B, - 0x0B, - 0x0B, - 0x19, - 0x2A, - 0x19, - 0x1C, - 0x2A, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x0A, - 0x0A, - 0x19, - 0x12, - 0x0F, - 0x0A, - 0x1F, - 0x12, - 0x14, - 0x19, - 0x0F, - 0x19, - 0x0B, - 0x14, - 0x0B, - 0x0F, - 0x14, - 0x2F, - 0x0E, - 0x0F, - 0x09, - 0x05, - 0x0F, - 0x06, - 0x0B, - 0x06, - 0x1C, - 0x32, - 0x32, - 0x0A, - 0x0A, - 0x03, - 0x0A, - 0x0F, - 0x0E, - 0x14, - 0x0F, - 0x11, - 0x19, - 0x1C, - 0x1C, - 0x1F, - 0x1F, - 0x1C, - 0x2A, - 0x16, - 0x10, - 0x04, - 0x16, - 0x00, - 0x8A, - 0x1B, - 0x10, - 0x14, - 0x16, - 0x10, - 0x10, - 0x14, - 0x10, - 0x02, - 0x10, - 0x10, - 0x1B, - 0x10, - 0x22, - 0x10, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x1E, - 0x10, - 0x29, - 0x10, - 0x16, - 0x0F, - 0x1F, - 0x26, - 0x24, - 0x24, - 0x4B, - 0x4B, - 0x69, - 0x74, - 0x83, - 0x69, - 0x74, - 0x74, - 0x83, - 0x83, - 0x87, - 0xA0, - 0xA0, - 0x91, - 0xA0, - 0x91, - 0x88, - 0x6E, - 0x77, - 0x75, - 0x7E, - 0x87, - 0x6A, - 0x83, - 0x77, - 0x5E, - 0x72, - 0x5E, - 0x72, - 0x69, - 0x46, - 0x5E, - 0x36, - 0x69, - 0x36, - 0x46, - 0x59, - 0x54, - 0x5F, - 0x5F, - 0x6B, - 0x63, - 0x63, - 0x48, - 0x52, - 0x59, - 0x40, - 0x40, - 0x40, - 0x59, - 0x50, - 0x50, - 0x59, - 0x48, - 0x53, - 0x48, - 0x37, - 0x3F, - 0x3F, - 0x33, - 0x13, - 0x22, - 0x13, - 0x23, - 0x3F, - 0x34, - 0x3D, - 0x31, - 0x3D, - 0x1A, - 0x2E, - 0x2B, - 0x3D, - 0x37, - 0x30, - 0x2E, - 0x30, - 0x3D, - 0x3A, - 0x54, - 0x3F, - 0x31, - 0x31, - 0x3D, - 0x25, - 0x21, - 0x44, - 0x20, - 0x13, - 0x18, - 0x08, - 0x02, - 0x20, - 0x2E, - 0x44, - 0x48, - 0xBE, - 0xF9, - 0xE3, - 0xF7, - 0xFA, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xD8, - 0x06, - 0xF4, - 0x00, - 0x13, - 0xEC, - 0xF4, - 0xEC, - 0xC8, - 0xF7, - 0xEC, - 0xC6, - 0xF0, - 0xF4, - 0xF4, - 0xEC, - 0xDF, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x6C, - 0x76, - 0x6C, - 0x79, - 0x76, - 0x79, - 0x6C, - 0x76, - 0x79, - 0x79, - 0x79, - 0x76, - 0x0A, - 0x79, - 0x00, - 0x17, - 0x84, - 0x79, - 0x84, - 0x79, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x9B, - 0x9B, - 0x9A, - 0xA5, - 0x9A, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0xA5, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x3D, - 0xA5, - 0xF0, - 0xB1, - 0xB9, - 0xC6, - 0x5B, - 0x39, - 0x4A, - 0x32, - 0x2A, - 0x2A, - 0x2A, - 0x1E, - 0x1E, - 0x4D, - 0x35, - 0x39, - 0x35, - 0x39, - 0x29, - 0x05, - 0x14, - 0x32, - 0x03, - 0xF9, - 0xFD, - 0xF9, - 0xD4, - 0xC8, - 0xBC, - 0x8C, - 0x2A, - 0x11, - 0x0B, - 0x0B, - 0x0B, - 0x06, - 0x0F, - 0x05, - 0x06, - 0x0B, - 0x0B, - 0x09, - 0x4C, - 0x39, - 0x19, - 0x2A, - 0x32, - 0x12, - 0x32, - 0x0F, - 0x0B, - 0x12, - 0x0A, - 0x0B, - 0x12, - 0x19, - 0x0A, - 0x12, - 0x0D, - 0x0D, - 0x00, - 0x04, - 0x12, - 0x00, - 0x2B, - 0x15, - 0x12, - 0x12, - 0x0F, - 0x0A, - 0x0A, - 0x0F, - 0x19, - 0x14, - 0x05, - 0x0F, - 0x14, - 0x06, - 0x06, - 0x0F, - 0x03, - 0x0B, - 0x06, - 0x00, - 0x12, - 0x2A, - 0x26, - 0x12, - 0x03, - 0x03, - 0x0A, - 0x0F, - 0x11, - 0x14, - 0x0E, - 0x11, - 0x1F, - 0x1C, - 0x19, - 0x16, - 0x1C, - 0x1C, - 0x2A, - 0x14, - 0x0E, - 0x16, - 0x1B, - 0x14, - 0x00, - 0x04, - 0x16, - 0x00, - 0x84, - 0x0E, - 0x10, - 0x16, - 0x10, - 0x09, - 0x16, - 0x1B, - 0x16, - 0x16, - 0x1B, - 0x1B, - 0x10, - 0x1B, - 0x1E, - 0x1B, - 0x22, - 0x10, - 0x1B, - 0x16, - 0x0F, - 0x0F, - 0x1F, - 0x0D, - 0x15, - 0x4B, - 0x15, - 0x64, - 0x69, - 0x74, - 0x69, - 0x5C, - 0x68, - 0x69, - 0x74, - 0x83, - 0x92, - 0x92, - 0xA0, - 0xA0, - 0x91, - 0x88, - 0x77, - 0x6E, - 0x87, - 0x7E, - 0x92, - 0x6A, - 0x77, - 0x87, - 0x68, - 0x83, - 0x68, - 0x74, - 0x69, - 0x51, - 0x69, - 0x5C, - 0x83, - 0x46, - 0x15, - 0x5C, - 0x36, - 0x44, - 0x6B, - 0x5F, - 0x58, - 0x81, - 0x6B, - 0x50, - 0x44, - 0x48, - 0x44, - 0x55, - 0x52, - 0x59, - 0x48, - 0x54, - 0x30, - 0x54, - 0x42, - 0x42, - 0x42, - 0x54, - 0x59, - 0x2E, - 0x2E, - 0x2E, - 0x34, - 0x42, - 0x47, - 0x47, - 0x3D, - 0x30, - 0x54, - 0x1A, - 0x3F, - 0x17, - 0x31, - 0x34, - 0x31, - 0x3F, - 0x34, - 0x3A, - 0x3D, - 0x34, - 0x31, - 0x3F, - 0x25, - 0x25, - 0x2E, - 0x31, - 0x21, - 0x21, - 0x23, - 0x23, - 0x23, - 0x08, - 0x17, - 0x40, - 0x31, - 0x82, - 0xE2, - 0xFA, - 0xF0, - 0xEC, - 0xFA, - 0xFA, - 0xFA, - 0xD8, - 0xF7, - 0xF7, - 0xF7, - 0x06, - 0xF4, - 0x00, - 0x15, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xF0, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x79, - 0x7D, - 0x6C, - 0x79, - 0x79, - 0x79, - 0x76, - 0x76, - 0x00, - 0x05, - 0x79, - 0x00, - 0x08, - 0x84, - 0x79, - 0x79, - 0x8D, - 0x79, - 0x8D, - 0x8D, - 0x84, - 0x05, - 0x8D, - 0x00, - 0x06, - 0x9A, - 0x9A, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0x06, - 0xA5, - 0x01, - 0xB1, - 0x01, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x3F, - 0xB9, - 0xB9, - 0x7D, - 0x4D, - 0x4D, - 0x39, - 0x35, - 0x2A, - 0x35, - 0x2A, - 0x1E, - 0x1E, - 0x39, - 0x35, - 0x2A, - 0x4D, - 0x35, - 0x1C, - 0x14, - 0x14, - 0x05, - 0x19, - 0xFB, - 0xFB, - 0xF0, - 0xF9, - 0xF9, - 0xFD, - 0xE0, - 0xFD, - 0xCE, - 0x8F, - 0x4A, - 0x14, - 0x1E, - 0x29, - 0x1C, - 0x14, - 0x0E, - 0x0F, - 0x1F, - 0x2A, - 0x4C, - 0x4D, - 0x32, - 0x1F, - 0x19, - 0x12, - 0x12, - 0x19, - 0x19, - 0x19, - 0x12, - 0x0A, - 0x12, - 0x0A, - 0x0F, - 0x0F, - 0x0D, - 0x12, - 0x0D, - 0x12, - 0x0D, - 0x00, - 0x05, - 0x12, - 0x00, - 0xAF, - 0x0A, - 0x0F, - 0x0A, - 0x0F, - 0x0A, - 0x06, - 0x03, - 0x0B, - 0x0B, - 0x19, - 0x19, - 0x0E, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x22, - 0x4C, - 0x11, - 0x03, - 0x00, - 0x03, - 0x06, - 0x0F, - 0x0F, - 0x0F, - 0x0E, - 0x1C, - 0x2A, - 0x1F, - 0x1F, - 0x2A, - 0x39, - 0x16, - 0x0E, - 0x1E, - 0x16, - 0x1B, - 0x16, - 0x14, - 0x16, - 0x14, - 0x29, - 0x14, - 0x10, - 0x16, - 0x14, - 0x16, - 0x1B, - 0x10, - 0x29, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x16, - 0x22, - 0x1B, - 0x29, - 0x1B, - 0x1B, - 0x22, - 0x0F, - 0x14, - 0x0D, - 0x24, - 0x24, - 0x41, - 0x46, - 0x5C, - 0x64, - 0x36, - 0x46, - 0x5C, - 0x69, - 0x68, - 0x83, - 0x83, - 0x92, - 0x92, - 0x91, - 0x87, - 0x75, - 0x75, - 0x7E, - 0x88, - 0x7E, - 0x7E, - 0x87, - 0x88, - 0x77, - 0x87, - 0x6A, - 0x87, - 0x74, - 0x6A, - 0x74, - 0x68, - 0x72, - 0x69, - 0x36, - 0x74, - 0x46, - 0x24, - 0x4A, - 0x59, - 0x63, - 0x54, - 0x63, - 0x59, - 0x63, - 0x63, - 0x52, - 0x44, - 0x59, - 0x55, - 0x07, - 0x5A, - 0x54, - 0x54, - 0x2E, - 0x59, - 0x42, - 0x54, - 0x59, - 0x48, - 0x44, - 0x44, - 0x44, - 0x48, - 0x3B, - 0x54, - 0x54, - 0x37, - 0x44, - 0x48, - 0x3D, - 0x25, - 0x48, - 0x34, - 0x31, - 0x34, - 0x1A, - 0x48, - 0x3A, - 0x3A, - 0x48, - 0x44, - 0x3F, - 0x3A, - 0x31, - 0x21, - 0x21, - 0x21, - 0x23, - 0x23, - 0x18, - 0x13, - 0x2E, - 0x53, - 0x13, - 0x78, - 0xB3, - 0xCA, - 0xF9, - 0xF9, - 0xFA, - 0xFA, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x15, - 0xEC, - 0xF4, - 0xDF, - 0xEC, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0xF4, - 0xF7, - 0xEC, - 0xEC, - 0xEC, - 0xF7, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0x76, - 0x00, - 0x07, - 0x79, - 0x76, - 0x76, - 0x6C, - 0x6C, - 0x7D, - 0x76, - 0x00, - 0x05, - 0x79, - 0x00, - 0x0C, - 0x76, - 0x79, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x07, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0x8D, - 0x00, - 0x05, - 0xA5, - 0x01, - 0xB1, - 0x01, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x35, - 0xA5, - 0xF0, - 0xB1, - 0x5B, - 0x39, - 0x39, - 0x39, - 0x35, - 0x2A, - 0x1E, - 0x14, - 0x14, - 0x22, - 0x60, - 0x4D, - 0x4C, - 0x2A, - 0x2A, - 0x06, - 0x22, - 0x0F, - 0x05, - 0x67, - 0xFE, - 0xF9, - 0xE0, - 0xFB, - 0xF9, - 0xF9, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xF9, - 0x7B, - 0x1B, - 0x16, - 0x05, - 0x1C, - 0x2A, - 0x5B, - 0x19, - 0x14, - 0x4C, - 0x1F, - 0x1F, - 0x39, - 0x60, - 0x1F, - 0x0F, - 0x12, - 0x0B, - 0x19, - 0x00, - 0x06, - 0x0F, - 0x00, - 0x05, - 0x0A, - 0x12, - 0x11, - 0x12, - 0x19, - 0x00, - 0x04, - 0x0A, - 0x00, - 0x7A, - 0x12, - 0x0A, - 0x0F, - 0x0A, - 0x0B, - 0x06, - 0x06, - 0x0B, - 0x0B, - 0x03, - 0x0B, - 0x1F, - 0x1F, - 0x19, - 0x1C, - 0x19, - 0x60, - 0x1F, - 0x4D, - 0x32, - 0x32, - 0x0F, - 0x00, - 0x00, - 0x03, - 0x03, - 0x0B, - 0x0F, - 0x19, - 0x1C, - 0x1C, - 0x1C, - 0x1F, - 0x2A, - 0x39, - 0x11, - 0x11, - 0x1B, - 0x1E, - 0x16, - 0x14, - 0x16, - 0x14, - 0x16, - 0x10, - 0x2A, - 0x1E, - 0x16, - 0x29, - 0x1B, - 0x16, - 0x10, - 0x1B, - 0x29, - 0x1B, - 0x10, - 0x16, - 0x11, - 0x16, - 0x1B, - 0x1B, - 0x10, - 0x16, - 0x14, - 0x0D, - 0x0D, - 0x26, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x36, - 0x36, - 0x36, - 0x5C, - 0x5C, - 0x69, - 0x74, - 0x87, - 0x92, - 0x92, - 0x6A, - 0x6A, - 0x7E, - 0x91, - 0x88, - 0x75, - 0x7E, - 0xA0, - 0x88, - 0x7E, - 0x87, - 0x87, - 0x87, - 0x6A, - 0x68, - 0x72, - 0x74, - 0x72, - 0x69, - 0x51, - 0x69, - 0x69, - 0x46, - 0x36, - 0x24, - 0x52, - 0x59, - 0x63, - 0x54, - 0x54, - 0x58, - 0x59, - 0x59, - 0x59, - 0x44, - 0x52, - 0x52, - 0x23, - 0x54, - 0x42, - 0x54, - 0x04, - 0x44, - 0x00, - 0x35, - 0x2E, - 0x44, - 0x2E, - 0x18, - 0x30, - 0x53, - 0x50, - 0x54, - 0x48, - 0x31, - 0x3A, - 0x44, - 0x3D, - 0x1A, - 0x31, - 0x31, - 0x3A, - 0x3A, - 0x3A, - 0x42, - 0x48, - 0x34, - 0x31, - 0x21, - 0x2E, - 0x2E, - 0x21, - 0x23, - 0x23, - 0x18, - 0x23, - 0x21, - 0x23, - 0x18, - 0x01, - 0x40, - 0xC9, - 0xE1, - 0xC5, - 0xEC, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x13, - 0xEC, - 0xF4, - 0xF0, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xF7, - 0xC8, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x04, - 0x79, - 0x00, - 0x04, - 0x76, - 0x79, - 0x79, - 0x76, - 0x08, - 0x79, - 0x00, - 0x07, - 0x84, - 0x84, - 0x8D, - 0x84, - 0x7D, - 0x8D, - 0x84, - 0x00, - 0x05, - 0x8D, - 0x04, - 0x9A, - 0x00, - 0x31, - 0xA5, - 0xA5, - 0xA5, - 0x9B, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xA5, - 0xA5, - 0xB1, - 0xBE, - 0xB9, - 0xB1, - 0x6F, - 0x39, - 0x4A, - 0x5B, - 0x35, - 0x2A, - 0x14, - 0x2A, - 0x10, - 0x35, - 0x4D, - 0x32, - 0x4D, - 0x4E, - 0x4D, - 0x4A, - 0x0E, - 0x14, - 0x1C, - 0x00, - 0xE4, - 0xE4, - 0xF9, - 0xF9, - 0xF0, - 0xF9, - 0xFD, - 0xF9, - 0xFD, - 0xF9, - 0xF9, - 0xFD, - 0xA9, - 0x6C, - 0x1B, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x32, - 0x39, - 0x79, - 0x4A, - 0x19, - 0x12, - 0x1F, - 0x4C, - 0x32, - 0x12, - 0x09, - 0x0B, - 0x0B, - 0x0F, - 0x12, - 0x0B, - 0x19, - 0x0B, - 0x19, - 0x1C, - 0x0A, - 0x0F, - 0x0F, - 0x0A, - 0x11, - 0x0B, - 0x0F, - 0x0A, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0A, - 0x0F, - 0x0B, - 0x06, - 0x0B, - 0x06, - 0x06, - 0x0B, - 0x0E, - 0x28, - 0x28, - 0x0F, - 0x1F, - 0x1F, - 0x4A, - 0x60, - 0x26, - 0x4C, - 0x26, - 0x05, - 0x03, - 0x00, - 0x25, - 0x05, - 0x1F, - 0x1C, - 0x1C, - 0x2A, - 0x1E, - 0x32, - 0x4A, - 0x0E, - 0x14, - 0x16, - 0x16, - 0x10, - 0x0E, - 0x29, - 0x16, - 0x1C, - 0x16, - 0x1B, - 0x1E, - 0x1B, - 0x1B, - 0x16, - 0x1B, - 0x1B, - 0x10, - 0x10, - 0x29, - 0x1B, - 0x1B, - 0x10, - 0x22, - 0x1B, - 0x1B, - 0x1B, - 0x14, - 0x03, - 0x00, - 0x04, - 0x12, - 0x00, - 0x69, - 0x1F, - 0x41, - 0x24, - 0x24, - 0x46, - 0x5C, - 0x46, - 0x5E, - 0x74, - 0x83, - 0x74, - 0x6A, - 0x77, - 0x7E, - 0x88, - 0x7C, - 0x88, - 0xAB, - 0xAB, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x87, - 0x6A, - 0x83, - 0x72, - 0x74, - 0x77, - 0x74, - 0x5E, - 0x69, - 0x72, - 0x5C, - 0x51, - 0x46, - 0x24, - 0x0D, - 0x59, - 0x54, - 0x63, - 0x48, - 0x54, - 0x54, - 0x54, - 0x3F, - 0x59, - 0x52, - 0x40, - 0x52, - 0x54, - 0x59, - 0x42, - 0x44, - 0x52, - 0x52, - 0x40, - 0x42, - 0x44, - 0x3D, - 0x58, - 0x3D, - 0x30, - 0x54, - 0x3A, - 0x48, - 0x3D, - 0x59, - 0x42, - 0x44, - 0x31, - 0x21, - 0x2E, - 0x3F, - 0x34, - 0x3A, - 0x48, - 0x3F, - 0x44, - 0x40, - 0x23, - 0x18, - 0x20, - 0x52, - 0x18, - 0x23, - 0x21, - 0x21, - 0x23, - 0x18, - 0x13, - 0x08, - 0xAA, - 0xC3, - 0xC1, - 0xCE, - 0xE0, - 0xF7, - 0xFA, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x11, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xDF, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0x01, - 0xF4, - 0x01, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x29, - 0x76, - 0x76, - 0x76, - 0x79, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x76, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x76, - 0x79, - 0x76, - 0x79, - 0x79, - 0x79, - 0x7D, - 0x84, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x84, - 0x84, - 0x7D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xA5, - 0x8D, - 0x9A, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x20, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xBE, - 0x9B, - 0x5B, - 0x5B, - 0x5B, - 0x39, - 0x2A, - 0x2A, - 0x35, - 0x35, - 0x39, - 0x35, - 0x29, - 0x1E, - 0x14, - 0x4D, - 0x4A, - 0x2A, - 0x14, - 0x16, - 0x1C, - 0x0A, - 0xFD, - 0xE4, - 0xF9, - 0xF0, - 0xFB, - 0x04, - 0xF9, - 0x00, - 0x57, - 0xFD, - 0xFD, - 0xF9, - 0xBE, - 0x4D, - 0x32, - 0x06, - 0x03, - 0x0B, - 0x03, - 0x06, - 0x0A, - 0x5B, - 0xC0, - 0x86, - 0x1C, - 0x11, - 0x4D, - 0x0F, - 0x0B, - 0x19, - 0x11, - 0x14, - 0x14, - 0x0F, - 0x0F, - 0x19, - 0x0F, - 0x0B, - 0x1C, - 0x19, - 0x14, - 0x19, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x09, - 0x0B, - 0x06, - 0x0B, - 0x0B, - 0x1F, - 0x0F, - 0x1C, - 0x19, - 0x1C, - 0x4C, - 0x4D, - 0x4D, - 0x4D, - 0x5B, - 0x1F, - 0x6D, - 0x26, - 0x1F, - 0x03, - 0x03, - 0x00, - 0x0A, - 0x19, - 0x19, - 0x1C, - 0x2A, - 0x2A, - 0x32, - 0x35, - 0x09, - 0x1B, - 0x1B, - 0x11, - 0x16, - 0x1B, - 0x1C, - 0x16, - 0x1C, - 0x16, - 0x1E, - 0x29, - 0x29, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x77, - 0x16, - 0x10, - 0x29, - 0x14, - 0x10, - 0x1B, - 0x16, - 0x1B, - 0x0B, - 0x0F, - 0x0A, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x15, - 0x15, - 0x15, - 0x24, - 0x36, - 0x46, - 0x36, - 0x69, - 0x68, - 0x61, - 0x72, - 0x77, - 0x75, - 0x88, - 0x88, - 0x93, - 0x91, - 0x7E, - 0x88, - 0x91, - 0x75, - 0x88, - 0x87, - 0x6A, - 0x87, - 0x77, - 0x87, - 0x87, - 0x68, - 0x68, - 0x68, - 0x77, - 0x69, - 0x68, - 0x5C, - 0x46, - 0x36, - 0x4B, - 0x0A, - 0x59, - 0x5A, - 0x63, - 0x48, - 0x48, - 0x42, - 0x38, - 0x44, - 0x2E, - 0x44, - 0x33, - 0x44, - 0x23, - 0x59, - 0x59, - 0x44, - 0x33, - 0x42, - 0x42, - 0x3D, - 0x58, - 0x42, - 0x54, - 0x42, - 0x48, - 0x59, - 0x2E, - 0x2E, - 0x23, - 0x63, - 0x48, - 0x2B, - 0x23, - 0x3F, - 0x25, - 0x31, - 0x48, - 0x21, - 0x30, - 0x13, - 0x13, - 0x2E, - 0x25, - 0x3D, - 0x23, - 0x25, - 0x31, - 0x2E, - 0x21, - 0x21, - 0x40, - 0x02, - 0x8D, - 0xD3, - 0xE3, - 0xE4, - 0xF4, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x05, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x10, - 0xF4, - 0xC8, - 0xEC, - 0xF4, - 0xF4, - 0xF0, - 0xC8, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x6C, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x76, - 0x00, - 0x06, - 0x79, - 0x01, - 0x7D, - 0x06, - 0x79, - 0x00, - 0x03, - 0x84, - 0x7D, - 0x84, - 0x00, - 0x08, - 0x8D, - 0x00, - 0x04, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0x07, - 0xA5, - 0x00, - 0x1A, - 0xB1, - 0xA5, - 0xA5, - 0xB1, - 0xB1, - 0x5B, - 0x62, - 0x4A, - 0x4A, - 0x39, - 0x39, - 0x2A, - 0x35, - 0x39, - 0x5B, - 0x1E, - 0x2A, - 0x22, - 0x35, - 0x4A, - 0x1E, - 0x0B, - 0x1C, - 0x39, - 0x0E, - 0x82, - 0x06, - 0xF9, - 0x01, - 0xFD, - 0x04, - 0xF9, - 0x00, - 0x04, - 0xFE, - 0x4A, - 0x0A, - 0x05, - 0x06, - 0x03, - 0x00, - 0x15, - 0x06, - 0x03, - 0x79, - 0xA8, - 0x11, - 0x12, - 0x4C, - 0x0F, - 0x09, - 0x0B, - 0x14, - 0x0E, - 0x0F, - 0x1C, - 0x19, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x00, - 0x04, - 0x0F, - 0x00, - 0xA5, - 0x0B, - 0x0B, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x19, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x05, - 0x2F, - 0x1F, - 0x19, - 0x19, - 0x14, - 0x4D, - 0x7D, - 0x60, - 0x57, - 0x60, - 0x62, - 0x57, - 0x32, - 0x32, - 0x4C, - 0x12, - 0x0F, - 0x00, - 0x00, - 0x12, - 0x11, - 0x1C, - 0x2A, - 0x39, - 0x32, - 0x2A, - 0x10, - 0x1E, - 0x14, - 0x0E, - 0x16, - 0x1E, - 0x1E, - 0x16, - 0x1E, - 0x1E, - 0x3C, - 0x29, - 0x35, - 0x1B, - 0x1B, - 0x16, - 0x10, - 0x1B, - 0x1B, - 0x1B, - 0x14, - 0x0E, - 0x22, - 0x1B, - 0x22, - 0x1C, - 0x0F, - 0x19, - 0x19, - 0x26, - 0x12, - 0x19, - 0x0A, - 0x26, - 0x24, - 0x36, - 0x46, - 0x5C, - 0x5E, - 0x5E, - 0x68, - 0x74, - 0x72, - 0x7E, - 0x7E, - 0x87, - 0x7C, - 0x88, - 0x88, - 0x85, - 0x88, - 0x87, - 0x7E, - 0x77, - 0x92, - 0x77, - 0x87, - 0x87, - 0x83, - 0x77, - 0x61, - 0x74, - 0x72, - 0x68, - 0x74, - 0x5C, - 0x5C, - 0x5C, - 0x24, - 0x24, - 0x15, - 0x6B, - 0x44, - 0x63, - 0x3D, - 0x42, - 0x3D, - 0x54, - 0x5F, - 0x58, - 0x42, - 0x42, - 0x59, - 0x20, - 0x59, - 0x44, - 0x44, - 0x54, - 0x54, - 0x42, - 0x45, - 0x54, - 0x42, - 0x48, - 0x54, - 0x3D, - 0x44, - 0x59, - 0x3F, - 0x63, - 0x6B, - 0x54, - 0x3D, - 0x25, - 0x2E, - 0x25, - 0x31, - 0x3F, - 0x40, - 0x18, - 0x1A, - 0x2E, - 0x21, - 0x18, - 0x48, - 0x31, - 0x23, - 0x23, - 0x23, - 0x40, - 0x02, - 0x7B, - 0xF9, - 0xF4, - 0xF7, - 0xFA, - 0xF9, - 0x00, - 0x06, - 0xF7, - 0x01, - 0xF4, - 0x01, - 0xF7, - 0x06, - 0xF4, - 0x00, - 0x17, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xC8, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x06, - 0x76, - 0x00, - 0x05, - 0x79, - 0x79, - 0x76, - 0x79, - 0x76, - 0x00, - 0x04, - 0x79, - 0x01, - 0x7D, - 0x06, - 0x79, - 0x00, - 0x07, - 0x84, - 0x79, - 0x79, - 0x79, - 0x84, - 0x79, - 0x79, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x08, - 0x9A, - 0x8D, - 0x9A, - 0xA5, - 0x8D, - 0xA5, - 0x9A, - 0x9A, - 0x05, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x17, - 0x9A, - 0x6C, - 0x5D, - 0x39, - 0x4A, - 0x4A, - 0x35, - 0x4A, - 0x1E, - 0x35, - 0x2A, - 0x1B, - 0x35, - 0x4A, - 0x35, - 0x29, - 0x10, - 0x09, - 0x2F, - 0x2A, - 0x00, - 0x8F, - 0xF0, - 0x00, - 0x07, - 0xF9, - 0x00, - 0xD2, - 0xFD, - 0xFD, - 0xF9, - 0xA5, - 0x5B, - 0x0F, - 0x03, - 0x05, - 0x03, - 0x03, - 0x03, - 0x06, - 0x03, - 0x03, - 0x03, - 0x00, - 0x71, - 0x84, - 0x0F, - 0x2A, - 0x09, - 0x0B, - 0x0B, - 0x19, - 0x0B, - 0x11, - 0x0B, - 0x0B, - 0x14, - 0x09, - 0x0F, - 0x09, - 0x0B, - 0x0E, - 0x0F, - 0x0B, - 0x0B, - 0x11, - 0x0F, - 0x0E, - 0x0B, - 0x0E, - 0x11, - 0x14, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x06, - 0x05, - 0x4D, - 0x0B, - 0x14, - 0x1F, - 0x26, - 0x5B, - 0xA8, - 0x5B, - 0x78, - 0x6D, - 0xBE, - 0x57, - 0x26, - 0x4C, - 0x26, - 0x60, - 0x1F, - 0x12, - 0x12, - 0x03, - 0x0B, - 0x19, - 0x11, - 0x1C, - 0x2A, - 0x32, - 0x1E, - 0x16, - 0x0E, - 0x16, - 0x1C, - 0x16, - 0x1E, - 0x2A, - 0x1B, - 0x1C, - 0x29, - 0x3C, - 0x29, - 0x29, - 0x1B, - 0x22, - 0x16, - 0x1B, - 0x0E, - 0x29, - 0x10, - 0x16, - 0x1B, - 0x09, - 0x09, - 0x4A, - 0x22, - 0x26, - 0x12, - 0x19, - 0x12, - 0x26, - 0x26, - 0x15, - 0x24, - 0x24, - 0x36, - 0x51, - 0x5C, - 0x5E, - 0x5E, - 0x72, - 0x72, - 0x6E, - 0x7E, - 0x7E, - 0x75, - 0x75, - 0x88, - 0x7E, - 0x75, - 0x77, - 0x88, - 0x7E, - 0x7E, - 0x92, - 0x92, - 0x7E, - 0x77, - 0x68, - 0x6A, - 0x72, - 0x72, - 0x74, - 0x74, - 0x51, - 0x74, - 0x69, - 0x46, - 0x46, - 0x24, - 0x0D, - 0x6B, - 0x59, - 0x59, - 0x59, - 0x42, - 0x58, - 0x5F, - 0x54, - 0x54, - 0x3D, - 0x42, - 0x44, - 0x44, - 0x48, - 0x52, - 0x23, - 0x47, - 0x54, - 0x42, - 0x63, - 0x54, - 0x54, - 0x50, - 0x3F, - 0x48, - 0x48, - 0x2E, - 0x25, - 0x44, - 0x31, - 0x63, - 0x42, - 0x20, - 0x18, - 0x21, - 0x31, - 0x23, - 0x23, - 0x13, - 0x3F, - 0x23, - 0x2E, - 0x2E, - 0x23, - 0x2E, - 0x31, - 0x54, - 0x02, - 0xBD, - 0xFE, - 0xFA, - 0xFA, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0x04, - 0xEC, - 0x00, - 0x11, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0xF0, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x05, - 0x76, - 0x00, - 0x24, - 0x6C, - 0x76, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x79, - 0x7D, - 0x76, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x79, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x8D, - 0xA5, - 0x9A, - 0x9A, - 0x9A, - 0x07, - 0xA5, - 0x00, - 0x27, - 0xB1, - 0xAF, - 0x76, - 0x6C, - 0x4D, - 0x4A, - 0x35, - 0x2A, - 0x35, - 0x14, - 0x4A, - 0x5B, - 0x29, - 0x2A, - 0x1B, - 0x2A, - 0x16, - 0x29, - 0x0E, - 0x14, - 0x39, - 0x14, - 0x01, - 0xFE, - 0xF9, - 0xF0, - 0xF0, - 0xF9, - 0xFD, - 0xF9, - 0xF9, - 0xFB, - 0xF9, - 0xF9, - 0xFD, - 0x86, - 0x1C, - 0x06, - 0x06, - 0x00, - 0x04, - 0x03, - 0x00, - 0x4B, - 0x06, - 0x03, - 0x03, - 0x00, - 0x03, - 0x03, - 0xA3, - 0x62, - 0x1C, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x14, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x09, - 0x0F, - 0x0F, - 0x0B, - 0x11, - 0x19, - 0x0E, - 0x0F, - 0x0F, - 0x0F, - 0x0E, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x19, - 0x19, - 0x0F, - 0x14, - 0x19, - 0x39, - 0x8D, - 0x76, - 0x60, - 0x97, - 0x80, - 0x60, - 0x4C, - 0x57, - 0x4D, - 0x57, - 0x26, - 0x32, - 0x1F, - 0x1F, - 0x0A, - 0x06, - 0x19, - 0x11, - 0x1C, - 0x19, - 0x32, - 0x2A, - 0x2A, - 0x0E, - 0x16, - 0x1E, - 0x1E, - 0x1C, - 0x16, - 0x1E, - 0x00, - 0x05, - 0x29, - 0x00, - 0x24, - 0x16, - 0x29, - 0x1E, - 0x29, - 0x1B, - 0x10, - 0x10, - 0x1B, - 0x10, - 0x29, - 0x11, - 0x14, - 0x32, - 0x1F, - 0x28, - 0x19, - 0x5C, - 0x15, - 0x24, - 0x15, - 0x24, - 0x36, - 0x51, - 0x51, - 0x5E, - 0x72, - 0x6A, - 0x72, - 0x6A, - 0x77, - 0x7C, - 0x75, - 0x6E, - 0x88, - 0x92, - 0x75, - 0x05, - 0x7E, - 0x00, - 0x40, - 0x77, - 0x77, - 0x61, - 0x6A, - 0x83, - 0x83, - 0x72, - 0x74, - 0x51, - 0x74, - 0x74, - 0x46, - 0x46, - 0x4B, - 0x5C, - 0x4B, - 0x15, - 0x6B, - 0x63, - 0x59, - 0x40, - 0x54, - 0x63, - 0x58, - 0x44, - 0x54, - 0x44, - 0x44, - 0x3D, - 0x48, - 0x54, - 0x3D, - 0x23, - 0x2E, - 0x31, - 0x59, - 0x30, - 0x54, - 0x42, - 0x48, - 0x42, - 0x48, - 0x3D, - 0x3F, - 0x31, - 0x33, - 0x3A, - 0x42, - 0x50, - 0x44, - 0x2E, - 0x23, - 0x21, - 0x18, - 0x23, - 0x27, - 0x30, - 0x2E, - 0x2E, - 0x3F, - 0x48, - 0x59, - 0x33, - 0xD8, - 0x05, - 0xFA, - 0x06, - 0xF7, - 0x01, - 0xF4, - 0x01, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0xF4, - 0xF0, - 0xF4, - 0x05, - 0xEC, - 0x00, - 0x0B, - 0xC8, - 0xF0, - 0xF4, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xC8, - 0xF4, - 0xF0, - 0xDF, - 0x00, - 0x04, - 0xEC, - 0x01, - 0xF4, - 0x01, - 0xEC, - 0x00, - 0x00, - 0x06, - 0x76, - 0x00, - 0x0E, - 0x78, - 0x6C, - 0x6C, - 0x7D, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x04, - 0x79, - 0x00, - 0x06, - 0x7D, - 0x79, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x06, - 0x8D, - 0x05, - 0x9A, - 0x01, - 0xAF, - 0x04, - 0xA5, - 0x00, - 0x1B, - 0xBE, - 0xA5, - 0xB1, - 0xAF, - 0x5B, - 0x5B, - 0x35, - 0x39, - 0x39, - 0x1E, - 0x35, - 0x29, - 0x35, - 0x2A, - 0x1B, - 0x1B, - 0x22, - 0x39, - 0x1B, - 0x29, - 0x1E, - 0x4A, - 0x1B, - 0x0B, - 0x10, - 0xF9, - 0xF0, - 0x00, - 0x07, - 0xF9, - 0x00, - 0xC2, - 0xFD, - 0xF9, - 0xF9, - 0x6C, - 0x39, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x0B, - 0x06, - 0x03, - 0x05, - 0x03, - 0x01, - 0x03, - 0x03, - 0x0B, - 0x39, - 0x4D, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0A, - 0x0F, - 0x0B, - 0x14, - 0x19, - 0x06, - 0x12, - 0x14, - 0x29, - 0x19, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0E, - 0x09, - 0x0F, - 0x0B, - 0x09, - 0x0B, - 0x05, - 0x06, - 0x03, - 0x39, - 0x14, - 0x12, - 0x7B, - 0x76, - 0x78, - 0x6D, - 0xA9, - 0x80, - 0x80, - 0x4C, - 0x60, - 0x6D, - 0x60, - 0x4D, - 0x57, - 0x32, - 0x12, - 0x26, - 0x19, - 0x4C, - 0x19, - 0x11, - 0x1C, - 0x19, - 0x32, - 0x39, - 0x10, - 0x1C, - 0x16, - 0x1E, - 0x16, - 0x1C, - 0x1C, - 0x29, - 0x29, - 0x16, - 0x1B, - 0x29, - 0x16, - 0x29, - 0x1B, - 0x29, - 0x16, - 0x10, - 0x10, - 0x10, - 0x1B, - 0x16, - 0x1B, - 0x14, - 0x1C, - 0x11, - 0x1F, - 0x15, - 0x64, - 0x46, - 0x36, - 0x36, - 0x24, - 0x46, - 0x51, - 0x5E, - 0x68, - 0x6A, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x7C, - 0x75, - 0x75, - 0x88, - 0x75, - 0x77, - 0x75, - 0x75, - 0x7E, - 0x87, - 0x75, - 0x72, - 0x6A, - 0x87, - 0x87, - 0x92, - 0x77, - 0x68, - 0x74, - 0x69, - 0x72, - 0x69, - 0x5C, - 0x46, - 0x5C, - 0x69, - 0x64, - 0x5C, - 0x46, - 0x33, - 0x59, - 0x58, - 0x6B, - 0x58, - 0x18, - 0x44, - 0x38, - 0x44, - 0x30, - 0x44, - 0x42, - 0x54, - 0x54, - 0x59, - 0x42, - 0x44, - 0x23, - 0x33, - 0x40, - 0x44, - 0x3D, - 0x2E, - 0x3D, - 0x48, - 0x44, - 0x2E, - 0x3F, - 0x33, - 0x44, - 0x42, - 0x42, - 0x44, - 0x3D, - 0x2E, - 0x20, - 0x23, - 0x2E, - 0x3D, - 0x3A, - 0x50, - 0x44, - 0x59, - 0x7B, - 0x04, - 0xFA, - 0x01, - 0xF7, - 0x01, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0x04, - 0xF4, - 0x00, - 0x1C, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xC8, - 0xEC, - 0xF0, - 0xF4, - 0xC8, - 0xF0, - 0xF0, - 0xC8, - 0xEC, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x25, - 0x76, - 0x62, - 0x7D, - 0x76, - 0x76, - 0x76, - 0x79, - 0x7D, - 0x7D, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x76, - 0x79, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x7D, - 0x79, - 0x84, - 0x79, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x00, - 0x04, - 0x9A, - 0x08, - 0xA5, - 0x00, - 0x2A, - 0x79, - 0x6C, - 0x5B, - 0x3C, - 0x4A, - 0x35, - 0x39, - 0x29, - 0x39, - 0x3C, - 0x35, - 0x35, - 0x29, - 0x1E, - 0x4A, - 0x6C, - 0x5B, - 0x35, - 0x2A, - 0x14, - 0x05, - 0x67, - 0xF9, - 0xF9, - 0xF4, - 0xF9, - 0xF9, - 0xE4, - 0xFE, - 0xF9, - 0xD9, - 0xF9, - 0xF9, - 0xB1, - 0x2A, - 0x11, - 0x12, - 0x05, - 0x03, - 0x05, - 0x03, - 0x06, - 0x05, - 0x03, - 0x00, - 0x19, - 0x01, - 0x03, - 0x76, - 0x32, - 0x06, - 0x0B, - 0x19, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x14, - 0x0E, - 0x0F, - 0x19, - 0x14, - 0x11, - 0x14, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x09, - 0x0F, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x75, - 0x0E, - 0x0F, - 0x0F, - 0x0B, - 0x0A, - 0x03, - 0x03, - 0x0F, - 0x19, - 0x4D, - 0x84, - 0x7D, - 0x7A, - 0x6D, - 0x9A, - 0x6D, - 0x6D, - 0x4C, - 0x78, - 0x80, - 0x6D, - 0x5B, - 0x32, - 0x26, - 0x32, - 0x60, - 0x32, - 0x39, - 0x57, - 0x32, - 0x32, - 0x1C, - 0x19, - 0x1F, - 0x39, - 0x0E, - 0x1C, - 0x11, - 0x1C, - 0x1C, - 0x16, - 0x35, - 0x1E, - 0x14, - 0x29, - 0x1E, - 0x10, - 0x29, - 0x1B, - 0x10, - 0x1B, - 0x1B, - 0x16, - 0x22, - 0x10, - 0x16, - 0x16, - 0x16, - 0x14, - 0x16, - 0x1F, - 0x64, - 0x36, - 0x5C, - 0x24, - 0x24, - 0x46, - 0x46, - 0x46, - 0x51, - 0x68, - 0x72, - 0x6A, - 0x77, - 0x6E, - 0x75, - 0x77, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x77, - 0x7E, - 0x7C, - 0x72, - 0x77, - 0x77, - 0x77, - 0x7E, - 0x77, - 0x83, - 0x72, - 0x68, - 0x7E, - 0x74, - 0x5E, - 0x5C, - 0x5C, - 0x74, - 0x74, - 0x5C, - 0x5C, - 0x41, - 0x5C, - 0x41, - 0x30, - 0x54, - 0x59, - 0x54, - 0x44, - 0x40, - 0x44, - 0x30, - 0x3D, - 0x3D, - 0x00, - 0x04, - 0x42, - 0x00, - 0x1A, - 0x44, - 0x44, - 0x40, - 0x23, - 0x52, - 0x44, - 0x44, - 0x2E, - 0x3D, - 0x23, - 0x33, - 0x13, - 0x13, - 0x2E, - 0x44, - 0x2E, - 0x23, - 0x2E, - 0x30, - 0x23, - 0x23, - 0x20, - 0x40, - 0x40, - 0x40, - 0x42, - 0x05, - 0xFA, - 0x00, - 0x04, - 0xFE, - 0xF7, - 0xF7, - 0xFA, - 0x04, - 0xF7, - 0x08, - 0xF4, - 0x00, - 0x1B, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xF4, - 0xEC, - 0xC8, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xC8, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x78, - 0x04, - 0x76, - 0x00, - 0x1E, - 0x78, - 0x76, - 0x76, - 0x76, - 0x79, - 0x76, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x7D, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x84, - 0x79, - 0x79, - 0x8D, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x04, - 0x9A, - 0x00, - 0x75, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0xA5, - 0xBE, - 0xA5, - 0xA5, - 0xA5, - 0x6F, - 0x5B, - 0x4A, - 0x86, - 0x29, - 0x4D, - 0x4A, - 0x39, - 0x4D, - 0x39, - 0x16, - 0x39, - 0x29, - 0x22, - 0x5B, - 0x35, - 0x10, - 0x0E, - 0x1B, - 0x09, - 0x14, - 0x82, - 0xF9, - 0xF4, - 0xF9, - 0xF9, - 0xF9, - 0x57, - 0x12, - 0x0A, - 0x0A, - 0x0A, - 0x0D, - 0x62, - 0x39, - 0x0F, - 0x0F, - 0x03, - 0x06, - 0x06, - 0x06, - 0x05, - 0x03, - 0x03, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x05, - 0x4D, - 0x2A, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x09, - 0x09, - 0x0F, - 0x0F, - 0x14, - 0x0F, - 0x0E, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x11, - 0x0E, - 0x2A, - 0x14, - 0x14, - 0x0E, - 0x0E, - 0x0B, - 0x0E, - 0x09, - 0x06, - 0x03, - 0x14, - 0x1C, - 0x35, - 0xA3, - 0x6D, - 0x78, - 0xA9, - 0x6D, - 0x80, - 0x6D, - 0x57, - 0xA8, - 0xA3, - 0x60, - 0x32, - 0x4C, - 0x32, - 0x60, - 0x62, - 0x4C, - 0x6F, - 0x60, - 0x1F, - 0x89, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x7D, - 0x2A, - 0x16, - 0x1C, - 0x1C, - 0x10, - 0x1C, - 0x29, - 0x1E, - 0x1C, - 0x10, - 0x1E, - 0x1B, - 0x1C, - 0x1E, - 0x16, - 0x10, - 0x16, - 0x1B, - 0x29, - 0x1E, - 0x14, - 0x1B, - 0x1E, - 0x14, - 0x0F, - 0x26, - 0x4B, - 0x46, - 0x5C, - 0x4B, - 0x46, - 0x36, - 0x46, - 0x46, - 0x68, - 0x5E, - 0x6A, - 0x68, - 0x72, - 0x7E, - 0x6E, - 0x6A, - 0x77, - 0x77, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x77, - 0x75, - 0x75, - 0x77, - 0x7E, - 0x88, - 0x7E, - 0x87, - 0x92, - 0x72, - 0x72, - 0x83, - 0x83, - 0x68, - 0x74, - 0x69, - 0x74, - 0x73, - 0x74, - 0x5C, - 0x5C, - 0x69, - 0x4B, - 0x5C, - 0x64, - 0x52, - 0x63, - 0x63, - 0x63, - 0x6B, - 0x44, - 0x40, - 0x44, - 0x30, - 0x2E, - 0x42, - 0x54, - 0x59, - 0x38, - 0x44, - 0x44, - 0x40, - 0x33, - 0x23, - 0x23, - 0x3A, - 0x2E, - 0x2E, - 0x23, - 0x2E, - 0x21, - 0x18, - 0x23, - 0x3F, - 0x23, - 0x2E, - 0x23, - 0x21, - 0x21, - 0x04, - 0x04, - 0x0C, - 0x6B, - 0xFE, - 0xFE, - 0xFA, - 0xF7, - 0xFA, - 0xFE, - 0xFA, - 0xFA, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x1F, - 0xF0, - 0xF0, - 0xF4, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xEC, - 0xC8, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x76, - 0x76, - 0x78, - 0x76, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x76, - 0x79, - 0x76, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x04, - 0x79, - 0x8D, - 0x79, - 0x7D, - 0x06, - 0x8D, - 0x00, - 0x32, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0xA5, - 0xBE, - 0xA5, - 0x84, - 0x6C, - 0x4A, - 0x4A, - 0x5D, - 0x39, - 0x5B, - 0x39, - 0x2A, - 0x4A, - 0x35, - 0x1E, - 0x10, - 0x1B, - 0x1E, - 0x16, - 0x29, - 0x4A, - 0x4A, - 0x35, - 0x14, - 0x06, - 0x9B, - 0xE4, - 0xF9, - 0xF0, - 0xC3, - 0x0F, - 0x12, - 0x0D, - 0x12, - 0x03, - 0x06, - 0x0A, - 0x03, - 0x06, - 0x06, - 0x04, - 0x03, - 0x00, - 0x12, - 0x06, - 0x03, - 0x05, - 0x03, - 0x03, - 0x06, - 0x03, - 0x03, - 0x03, - 0x8A, - 0x2A, - 0x0F, - 0x06, - 0x0F, - 0x0F, - 0x0A, - 0x0B, - 0x0B, - 0x05, - 0x0F, - 0x00, - 0x44, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0E, - 0x0F, - 0x0B, - 0x14, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x14, - 0x0B, - 0x0E, - 0x09, - 0x0B, - 0x05, - 0x14, - 0x14, - 0x14, - 0x19, - 0x79, - 0x97, - 0x80, - 0x6D, - 0xA5, - 0x82, - 0x80, - 0x60, - 0xA8, - 0x97, - 0xA8, - 0x84, - 0x39, - 0x60, - 0x32, - 0x4C, - 0x62, - 0x60, - 0x89, - 0x4C, - 0x4C, - 0x76, - 0x9A, - 0x1F, - 0x60, - 0x12, - 0x1F, - 0x1C, - 0x1C, - 0x11, - 0x1C, - 0x11, - 0x16, - 0x1C, - 0x16, - 0x16, - 0x11, - 0x1C, - 0x1E, - 0x1B, - 0x16, - 0x1B, - 0x1B, - 0x16, - 0x29, - 0x10, - 0x04, - 0x16, - 0x00, - 0x55, - 0x1C, - 0x32, - 0x41, - 0x64, - 0x46, - 0x46, - 0x36, - 0x36, - 0x51, - 0x5E, - 0x5E, - 0x5E, - 0x68, - 0x68, - 0x6E, - 0x77, - 0x77, - 0x88, - 0x75, - 0x75, - 0x75, - 0x6E, - 0x75, - 0x77, - 0x6E, - 0x75, - 0x77, - 0x6E, - 0x77, - 0x7E, - 0x92, - 0x7E, - 0x77, - 0x83, - 0x77, - 0x77, - 0x77, - 0x68, - 0x68, - 0x68, - 0x69, - 0x83, - 0x69, - 0x69, - 0x69, - 0x5C, - 0x64, - 0x4B, - 0x41, - 0x64, - 0x55, - 0x6B, - 0x5F, - 0x30, - 0x66, - 0x54, - 0x59, - 0x40, - 0x44, - 0x6B, - 0x44, - 0x23, - 0x23, - 0x30, - 0x2E, - 0x38, - 0x30, - 0x42, - 0x44, - 0x30, - 0x2E, - 0x40, - 0x3D, - 0x2E, - 0x38, - 0x23, - 0x2E, - 0x20, - 0x40, - 0x13, - 0x33, - 0x13, - 0x13, - 0x40, - 0x52, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x03, - 0xF7, - 0xFA, - 0xFE, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x28, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF0, - 0xF7, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xF0, - 0xF0, - 0xC8, - 0xE4, - 0xDF, - 0xF0, - 0xEC, - 0xEC, - 0xC8, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x07, - 0x78, - 0x76, - 0x76, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x00, - 0x04, - 0x76, - 0x00, - 0x0B, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x00, - 0x04, - 0x79, - 0x00, - 0xF9, - 0x7D, - 0x7D, - 0x8D, - 0x7D, - 0x84, - 0x7D, - 0x84, - 0x8D, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0xAF, - 0x8D, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0x97, - 0x6C, - 0x4A, - 0x5B, - 0x4A, - 0x39, - 0x4A, - 0x3C, - 0x4A, - 0x39, - 0x35, - 0x14, - 0x35, - 0x1B, - 0x16, - 0x1B, - 0x14, - 0x2A, - 0x4A, - 0x4A, - 0x14, - 0x09, - 0x82, - 0xF0, - 0xF0, - 0xC8, - 0x0F, - 0x0D, - 0x06, - 0x0D, - 0x0A, - 0x0D, - 0x0B, - 0x06, - 0x0A, - 0x03, - 0x03, - 0x06, - 0x03, - 0x06, - 0x06, - 0x03, - 0x06, - 0x03, - 0x03, - 0x06, - 0x03, - 0x03, - 0x06, - 0x0E, - 0x4D, - 0x19, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x14, - 0x0B, - 0x0F, - 0x14, - 0x0B, - 0x19, - 0x09, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x1C, - 0x14, - 0x14, - 0x19, - 0x14, - 0x14, - 0x0B, - 0x0E, - 0x0F, - 0x0B, - 0x4A, - 0x32, - 0x1B, - 0x09, - 0x5D, - 0x96, - 0x8A, - 0x60, - 0xBD, - 0x6D, - 0x7A, - 0xA8, - 0x76, - 0xA8, - 0x6D, - 0x6F, - 0x79, - 0x84, - 0x60, - 0x4D, - 0x4C, - 0x60, - 0x4D, - 0x89, - 0x4D, - 0x57, - 0x4D, - 0xA3, - 0x4C, - 0xA8, - 0x32, - 0x12, - 0x39, - 0x1C, - 0x1C, - 0x1E, - 0x11, - 0x2A, - 0x1C, - 0x11, - 0x1C, - 0x10, - 0x1C, - 0x1E, - 0x29, - 0x1E, - 0x1E, - 0x16, - 0x1B, - 0x16, - 0x1E, - 0x16, - 0x1B, - 0x14, - 0x16, - 0x1C, - 0x16, - 0x41, - 0x24, - 0x36, - 0x4B, - 0x36, - 0x46, - 0x5C, - 0x5C, - 0x5C, - 0x68, - 0x6A, - 0x72, - 0x77, - 0x75, - 0x75, - 0x6A, - 0x75, - 0x6E, - 0x87, - 0x6E, - 0x75, - 0x77, - 0x75, - 0x7E, - 0x75, - 0x88, - 0x85, - 0x7E, - 0x75, - 0x88, - 0x87, - 0x72, - 0x72, - 0x83, - 0x68, - 0x68, - 0x74, - 0x68, - 0x74, - 0x69, - 0x69, - 0x69, - 0x64, - 0x5C, - 0x64, - 0x4B, - 0x64, - 0x2D, - 0x28, - 0x67, - 0x4C, - 0x66, - 0x42, - 0x42, - 0x58, - 0x58, - 0x23, - 0x44, - 0x54, - 0x30, - 0x38, - 0x30, - 0x38, - 0x30, - 0x30, - 0x42, - 0x42, - 0x44, - 0x44, - 0x38, - 0x38, - 0x38, - 0x44, - 0x30, - 0x23, - 0x23, - 0x23, - 0x20, - 0x23, - 0x20, - 0x38, - 0x7B, - 0xFA, - 0xF7, - 0xFE, - 0xFA, - 0xF7, - 0xF7, - 0xFE, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x10, - 0xF9, - 0xF7, - 0xF9, - 0xF7, - 0xF0, - 0xF0, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0x04, - 0xEC, - 0x00, - 0x15, - 0xF0, - 0xEC, - 0xF0, - 0xDF, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x76, - 0x6D, - 0x78, - 0x76, - 0x6D, - 0x7D, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x7D, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x84, - 0x79, - 0x8D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x8D, - 0xA5, - 0x8D, - 0xAF, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xBE, - 0xA5, - 0xBE, - 0x6F, - 0x5B, - 0x4E, - 0x4D, - 0x2A, - 0x3C, - 0x35, - 0x5B, - 0x4A, - 0x2A, - 0x35, - 0x3C, - 0x1B, - 0x1B, - 0x35, - 0x1C, - 0x0E, - 0x29, - 0x14, - 0x29, - 0x6C, - 0x4A, - 0x4F, - 0xF9, - 0xCE, - 0x1F, - 0x12, - 0x0F, - 0x12, - 0x03, - 0x0A, - 0x12, - 0x0A, - 0x0A, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x0B, - 0x03, - 0x06, - 0x0F, - 0x0B, - 0x03, - 0x05, - 0x06, - 0x06, - 0x05, - 0x00, - 0x62, - 0x2A, - 0x0F, - 0x06, - 0x0B, - 0x14, - 0x0B, - 0x0B, - 0x19, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x11, - 0x1C, - 0x14, - 0x0F, - 0x0F, - 0x0E, - 0x0B, - 0x14, - 0x0F, - 0x0B, - 0x0E, - 0x11, - 0x09, - 0x0B, - 0x09, - 0x0B, - 0x0B, - 0x0B, - 0x14, - 0x22, - 0x1C, - 0x39, - 0x79, - 0x7F, - 0x6D, - 0x8A, - 0xD0, - 0xAF, - 0x7A, - 0xA8, - 0xA8, - 0xC0, - 0xC0, - 0x4D, - 0x62, - 0x7A, - 0x4D, - 0x57, - 0x4D, - 0x57, - 0x32, - 0xA9, - 0xAF, - 0x6D, - 0x6D, - 0x6D, - 0x86, - 0x62, - 0x86, - 0x32, - 0x32, - 0x2A, - 0x11, - 0x11, - 0x11, - 0x1C, - 0x11, - 0x1E, - 0x1C, - 0x09, - 0x2A, - 0x29, - 0x3C, - 0x29, - 0x1E, - 0x1E, - 0x1E, - 0x16, - 0x10, - 0x1B, - 0x14, - 0x14, - 0x16, - 0x1E, - 0x11, - 0x0F, - 0x57, - 0x41, - 0x36, - 0x4B, - 0x4B, - 0x46, - 0x5C, - 0x68, - 0x69, - 0x68, - 0x6A, - 0x6A, - 0x77, - 0x77, - 0x75, - 0x6A, - 0x8B, - 0x75, - 0xA0, - 0x75, - 0x7E, - 0x75, - 0x88, - 0x75, - 0x7C, - 0x8B, - 0x7E, - 0x88, - 0x7E, - 0x77, - 0x77, - 0x77, - 0x72, - 0x74, - 0x72, - 0x74, - 0x74, - 0x69, - 0x73, - 0x5C, - 0x4B, - 0x64, - 0x64, - 0x70, - 0x5C, - 0x41, - 0x4B, - 0x4B, - 0x5C, - 0x99, - 0x56, - 0x65, - 0x6B, - 0x63, - 0x54, - 0x58, - 0x42, - 0x13, - 0x3D, - 0x42, - 0x44, - 0x30, - 0x30, - 0x42, - 0x42, - 0x44, - 0x20, - 0x38, - 0x00, - 0x00, - 0x12, - 0x30, - 0x42, - 0x42, - 0x44, - 0x23, - 0x42, - 0x23, - 0x20, - 0x2E, - 0x55, - 0x3B, - 0x7B, - 0xFE, - 0xFE, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0x04, - 0xF7, - 0x00, - 0x03, - 0xF4, - 0xF4, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x19, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xDF, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xF0, - 0x00, - 0x06, - 0xEC, - 0x00, - 0x04, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x05, - 0x76, - 0x6D, - 0x76, - 0x78, - 0x78, - 0x00, - 0x06, - 0x76, - 0x00, - 0x08, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x08, - 0x7D, - 0x00, - 0x04, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x05, - 0x8D, - 0x00, - 0x27, - 0x9A, - 0x9A, - 0xAF, - 0x8D, - 0xAF, - 0x8D, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0x8D, - 0x71, - 0x5B, - 0x4D, - 0x35, - 0x22, - 0x5B, - 0x4A, - 0x1E, - 0x1E, - 0x39, - 0x2A, - 0x3C, - 0x35, - 0x1E, - 0x16, - 0x0E, - 0x4A, - 0x29, - 0x16, - 0x1E, - 0x2A, - 0x19, - 0x14, - 0x0F, - 0x98, - 0x09, - 0x0B, - 0x00, - 0x04, - 0x0A, - 0x00, - 0xE1, - 0x12, - 0x26, - 0x0F, - 0x12, - 0x0B, - 0x03, - 0x05, - 0x03, - 0x06, - 0x03, - 0x06, - 0x0A, - 0x02, - 0x03, - 0x0B, - 0x05, - 0x03, - 0x03, - 0x84, - 0x16, - 0x0B, - 0x0B, - 0x09, - 0x14, - 0x11, - 0x0F, - 0x14, - 0x0F, - 0x0F, - 0x0E, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x14, - 0x0F, - 0x0B, - 0x0F, - 0x2F, - 0x0E, - 0x09, - 0x0B, - 0x0B, - 0x0E, - 0x0B, - 0x03, - 0x14, - 0x14, - 0x5D, - 0x5D, - 0x7D, - 0x7A, - 0x8A, - 0x9A, - 0xBD, - 0x7A, - 0x62, - 0x78, - 0xBD, - 0x97, - 0x86, - 0x62, - 0x4D, - 0x60, - 0x60, - 0x4D, - 0x57, - 0x32, - 0x4C, - 0x60, - 0xC6, - 0x7F, - 0x7A, - 0x4D, - 0x89, - 0x7A, - 0x6D, - 0xA3, - 0x60, - 0x39, - 0x19, - 0x1C, - 0x11, - 0x1C, - 0x16, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x39, - 0x35, - 0x3C, - 0x29, - 0x1E, - 0x1E, - 0x16, - 0x16, - 0x10, - 0x16, - 0x14, - 0x10, - 0x14, - 0x10, - 0x19, - 0x26, - 0x26, - 0x4B, - 0x36, - 0x5C, - 0x5E, - 0x69, - 0x69, - 0x68, - 0x69, - 0x68, - 0x87, - 0x77, - 0x88, - 0x88, - 0x9E, - 0x92, - 0xA0, - 0x75, - 0x7E, - 0x7E, - 0x88, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x75, - 0x7E, - 0x7E, - 0x7E, - 0x72, - 0x77, - 0x74, - 0x83, - 0x74, - 0x69, - 0x69, - 0x69, - 0x64, - 0x4B, - 0x64, - 0x67, - 0x57, - 0x57, - 0x64, - 0x41, - 0x64, - 0x5C, - 0x69, - 0x64, - 0x73, - 0x4E, - 0x2E, - 0x31, - 0x5A, - 0x63, - 0x6B, - 0x81, - 0x63, - 0x42, - 0x2E, - 0x42, - 0x42, - 0x54, - 0x42, - 0x54, - 0x44, - 0x42, - 0x30, - 0x38, - 0x44, - 0x44, - 0x42, - 0x23, - 0x38, - 0x3D, - 0x54, - 0x81, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xFE, - 0xF7, - 0xFE, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x09, - 0xC8, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x78, - 0x76, - 0x78, - 0x76, - 0x76, - 0x78, - 0x7D, - 0x78, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0E, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x7D, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x84, - 0x04, - 0x8D, - 0x00, - 0xFF, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0x84, - 0x79, - 0x4A, - 0x5B, - 0x2A, - 0x4D, - 0x29, - 0x1B, - 0x1B, - 0x4A, - 0x35, - 0x35, - 0x35, - 0x1E, - 0x22, - 0x09, - 0x10, - 0x5B, - 0x22, - 0x19, - 0x35, - 0x14, - 0x1F, - 0x14, - 0x14, - 0x0E, - 0x0A, - 0x0B, - 0x06, - 0x03, - 0x0A, - 0x0A, - 0x0B, - 0x14, - 0x19, - 0x19, - 0x0A, - 0x06, - 0x06, - 0x03, - 0x05, - 0x06, - 0x06, - 0x05, - 0x0A, - 0x0B, - 0x05, - 0x03, - 0x06, - 0x2A, - 0x8A, - 0x0E, - 0x0B, - 0x14, - 0x19, - 0x0F, - 0x19, - 0x0F, - 0x0B, - 0x39, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x09, - 0x1E, - 0x0F, - 0x11, - 0x14, - 0x0B, - 0x06, - 0x05, - 0x0B, - 0x05, - 0x0B, - 0x03, - 0x05, - 0x06, - 0x2A, - 0x35, - 0x4A, - 0xAF, - 0x7D, - 0xC0, - 0x7A, - 0x7A, - 0xBD, - 0x6D, - 0x60, - 0x78, - 0x89, - 0x78, - 0x6D, - 0x6D, - 0x26, - 0x60, - 0x6D, - 0x57, - 0x6F, - 0x57, - 0x1F, - 0x32, - 0x6D, - 0x60, - 0xBD, - 0x6D, - 0x97, - 0x60, - 0x6D, - 0x60, - 0x62, - 0x89, - 0x39, - 0x11, - 0x1C, - 0x11, - 0x1C, - 0x19, - 0x1E, - 0x1C, - 0x16, - 0x3C, - 0x3C, - 0x29, - 0x2A, - 0x1E, - 0x16, - 0x1C, - 0x10, - 0x1C, - 0x09, - 0x0E, - 0x16, - 0x14, - 0x14, - 0x19, - 0x2A, - 0x2D, - 0x26, - 0x24, - 0x5C, - 0x69, - 0x69, - 0x5E, - 0x5C, - 0x74, - 0x68, - 0x77, - 0xA0, - 0x91, - 0x9E, - 0x9E, - 0xA0, - 0x7E, - 0x7E, - 0x75, - 0x88, - 0x75, - 0x75, - 0x88, - 0x6E, - 0x6E, - 0x85, - 0x75, - 0x75, - 0x6A, - 0x77, - 0x72, - 0x87, - 0x83, - 0x69, - 0x5C, - 0x64, - 0x64, - 0x5C, - 0x69, - 0x67, - 0x60, - 0x60, - 0x67, - 0x64, - 0x69, - 0x69, - 0xAC, - 0x69, - 0xA2, - 0x2D, - 0x4F, - 0x65, - 0x31, - 0x13, - 0x04, - 0x21, - 0x59, - 0x81, - 0x6B, - 0x6B, - 0x63, - 0x63, - 0x58, - 0x63, - 0x20, - 0x42, - 0x30, - 0x42, - 0x42, - 0x48, - 0x42, - 0x2E, - 0x52, - 0x7B, - 0x8D, - 0xFA, - 0xFA, - 0xFE, - 0xFA, - 0xFE, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF9, - 0xF7, - 0xF7, - 0xF9, - 0xF7, - 0xF9, - 0xF7, - 0xF0, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x1C, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x14, - 0x76, - 0x78, - 0x78, - 0x76, - 0x7F, - 0x6D, - 0x76, - 0x78, - 0x7D, - 0x76, - 0x78, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x05, - 0x7D, - 0x00, - 0x06, - 0x79, - 0x7D, - 0x79, - 0x8D, - 0x79, - 0x79, - 0x05, - 0x8D, - 0x00, - 0x89, - 0x9A, - 0x8D, - 0xAF, - 0x8D, - 0x9A, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xAF, - 0x5D, - 0x6F, - 0x4A, - 0x35, - 0x35, - 0x1E, - 0x29, - 0x1E, - 0x4A, - 0x10, - 0x2A, - 0x22, - 0x3C, - 0x5B, - 0x10, - 0x0E, - 0x14, - 0x22, - 0x0E, - 0x0E, - 0x39, - 0x14, - 0x82, - 0x4D, - 0x14, - 0x4C, - 0x19, - 0x0E, - 0x0A, - 0x06, - 0x03, - 0x03, - 0x12, - 0x19, - 0x1C, - 0x19, - 0x0F, - 0x06, - 0x0B, - 0x2F, - 0x05, - 0x06, - 0x06, - 0x06, - 0x09, - 0x0B, - 0x05, - 0x03, - 0x2F, - 0x1C, - 0x71, - 0x0E, - 0x0B, - 0x19, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x0F, - 0x0E, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x19, - 0x09, - 0x0F, - 0x14, - 0x0B, - 0x0E, - 0x14, - 0x0B, - 0x0B, - 0x06, - 0x0B, - 0x0E, - 0x0B, - 0x14, - 0x4D, - 0x35, - 0x84, - 0xA8, - 0xC0, - 0xF1, - 0x6D, - 0xA8, - 0x96, - 0x62, - 0x60, - 0x7A, - 0x60, - 0x78, - 0x97, - 0x26, - 0x32, - 0x57, - 0x60, - 0x57, - 0x80, - 0x84, - 0x32, - 0x32, - 0x4C, - 0x6D, - 0x6D, - 0xA8, - 0xD0, - 0x97, - 0xA8, - 0xA9, - 0x32, - 0x60, - 0x6D, - 0x0F, - 0x11, - 0x1C, - 0x16, - 0x1C, - 0x2A, - 0x1C, - 0x2A, - 0x3C, - 0x00, - 0x04, - 0x29, - 0x00, - 0x71, - 0x1B, - 0x16, - 0x1C, - 0x09, - 0x10, - 0x1B, - 0x16, - 0x10, - 0x11, - 0x16, - 0x26, - 0x1F, - 0x4B, - 0x4B, - 0x64, - 0x36, - 0x24, - 0x5C, - 0x5C, - 0x74, - 0x68, - 0x92, - 0x87, - 0xAD, - 0xAB, - 0xA0, - 0x91, - 0x88, - 0x92, - 0x6E, - 0x88, - 0x75, - 0x7C, - 0x6A, - 0x6E, - 0x7C, - 0x75, - 0x6A, - 0x6E, - 0x72, - 0x6A, - 0x7E, - 0x72, - 0x69, - 0x69, - 0x64, - 0x69, - 0x69, - 0xA2, - 0x57, - 0x5D, - 0x78, - 0x5B, - 0x64, - 0x64, - 0x73, - 0x99, - 0x64, - 0x73, - 0x64, - 0x55, - 0x48, - 0x38, - 0x20, - 0x04, - 0x07, - 0x48, - 0xFA, - 0xFE, - 0x9B, - 0x40, - 0x13, - 0x4F, - 0x23, - 0x44, - 0x63, - 0x54, - 0x63, - 0x52, - 0x20, - 0x2F, - 0x59, - 0xA3, - 0xFE, - 0xF7, - 0xFA, - 0xFE, - 0xFE, - 0xF7, - 0xF7, - 0xF9, - 0xF7, - 0xFE, - 0xF7, - 0xF9, - 0xF7, - 0xF4, - 0xF7, - 0xF9, - 0xF7, - 0xF4, - 0xF9, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0xC8, - 0xF4, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x1A, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xE4, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x04, - 0x78, - 0x00, - 0x0D, - 0x76, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x76, - 0x78, - 0x7D, - 0x7D, - 0x76, - 0x79, - 0x00, - 0x04, - 0x7D, - 0x01, - 0x79, - 0x01, - 0x76, - 0x05, - 0x7D, - 0x00, - 0x05, - 0x84, - 0x7D, - 0x8D, - 0x7D, - 0x84, - 0x00, - 0x06, - 0x8D, - 0x00, - 0xF7, - 0xA5, - 0x9A, - 0xA5, - 0x9A, - 0xAF, - 0xAF, - 0xA5, - 0xAF, - 0x6C, - 0x5B, - 0x5B, - 0x35, - 0x29, - 0x3C, - 0x35, - 0x29, - 0x35, - 0x29, - 0x1E, - 0x35, - 0x1E, - 0x5B, - 0x22, - 0x22, - 0x09, - 0x16, - 0x14, - 0x2A, - 0x22, - 0x19, - 0x3C, - 0x4C, - 0x16, - 0x10, - 0x1F, - 0x1C, - 0x19, - 0x19, - 0x12, - 0x03, - 0x0F, - 0x0F, - 0x32, - 0x1C, - 0x0F, - 0x05, - 0x06, - 0x32, - 0x05, - 0x05, - 0x06, - 0x06, - 0x03, - 0x03, - 0x06, - 0x0B, - 0x1F, - 0x1F, - 0x89, - 0x1C, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0E, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x11, - 0x0B, - 0x11, - 0x0B, - 0x0B, - 0x1C, - 0x19, - 0x14, - 0x0B, - 0x0B, - 0x0B, - 0x05, - 0x1C, - 0x5D, - 0x22, - 0x2A, - 0x14, - 0x1E, - 0x79, - 0xA8, - 0xC0, - 0xC0, - 0xC0, - 0x6D, - 0xA8, - 0x89, - 0x62, - 0x60, - 0x78, - 0xA8, - 0xC0, - 0x62, - 0x1F, - 0x32, - 0x26, - 0x60, - 0x6D, - 0x57, - 0x6D, - 0x60, - 0x32, - 0x4C, - 0x57, - 0x62, - 0x6D, - 0xA8, - 0x96, - 0xA8, - 0xBD, - 0x4D, - 0x60, - 0x6F, - 0x1F, - 0x32, - 0x11, - 0x11, - 0x11, - 0x1C, - 0x2A, - 0x1C, - 0x39, - 0x3C, - 0x39, - 0x29, - 0x1E, - 0x29, - 0x1E, - 0x10, - 0x16, - 0x10, - 0x10, - 0x10, - 0x11, - 0x16, - 0x11, - 0x1F, - 0x26, - 0x26, - 0x15, - 0x24, - 0x2D, - 0x36, - 0x4B, - 0x46, - 0x69, - 0x74, - 0x83, - 0x92, - 0x9E, - 0x88, - 0x8B, - 0x7E, - 0x93, - 0x7E, - 0x91, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x77, - 0x6A, - 0x7E, - 0x83, - 0x68, - 0x69, - 0x69, - 0x68, - 0x5C, - 0x64, - 0x5C, - 0x4A, - 0x67, - 0x4F, - 0x64, - 0x4B, - 0x82, - 0x64, - 0x57, - 0x64, - 0x4E, - 0x3F, - 0x63, - 0x54, - 0x3D, - 0x23, - 0x07, - 0x42, - 0x59, - 0xFA, - 0xFA, - 0xFA, - 0x7B, - 0xA3, - 0x81, - 0x7B, - 0xD9, - 0xF7, - 0xA5, - 0xA5, - 0xA3, - 0xFA, - 0xFE, - 0xF7, - 0xFE, - 0xF7, - 0xFE, - 0xFE, - 0xF7, - 0xF7, - 0xFE, - 0xF7, - 0xF7, - 0xF9, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF9, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xF4, - 0x00, - 0x09, - 0xF0, - 0x00, - 0x0A, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xCE, - 0xF0, - 0xF0, - 0xEC, - 0xE4, - 0xEC, - 0x04, - 0xF0, - 0x00, - 0x0B, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x76, - 0x6D, - 0x78, - 0x76, - 0x78, - 0x6D, - 0x76, - 0x7D, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x0F, - 0x7D, - 0x00, - 0xD7, - 0x84, - 0x7D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x97, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0xAF, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0x6F, - 0x84, - 0x4A, - 0x4A, - 0x4E, - 0x16, - 0x29, - 0x35, - 0x16, - 0x4A, - 0x35, - 0x29, - 0x35, - 0x1E, - 0x35, - 0x29, - 0x1B, - 0x10, - 0x14, - 0x14, - 0x11, - 0x1F, - 0x4D, - 0x2A, - 0x2A, - 0x39, - 0x4A, - 0x1E, - 0x32, - 0x19, - 0x2F, - 0x19, - 0x0B, - 0x0A, - 0x14, - 0x35, - 0x1F, - 0x0F, - 0x0B, - 0x0B, - 0x1C, - 0x0E, - 0x05, - 0x0A, - 0x06, - 0x0A, - 0x06, - 0x0A, - 0x11, - 0x0A, - 0x11, - 0x79, - 0x1C, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x1C, - 0x0F, - 0x0B, - 0x1C, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x32, - 0x0F, - 0x0E, - 0x0F, - 0x09, - 0x05, - 0x22, - 0x76, - 0x14, - 0x2A, - 0x39, - 0x5B, - 0x5B, - 0x96, - 0x96, - 0xC0, - 0xAF, - 0xBD, - 0x62, - 0xC0, - 0x9A, - 0x60, - 0x60, - 0x89, - 0x7D, - 0xF1, - 0x97, - 0x26, - 0x60, - 0x7A, - 0x97, - 0x96, - 0x7A, - 0x96, - 0x32, - 0x60, - 0x60, - 0x7A, - 0x6D, - 0x60, - 0xA9, - 0x97, - 0xA9, - 0x89, - 0x60, - 0x7A, - 0x6D, - 0x4D, - 0x7A, - 0x19, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x2A, - 0x3C, - 0x3C, - 0x35, - 0x2A, - 0x29, - 0x1E, - 0x16, - 0x1E, - 0x10, - 0x10, - 0x1B, - 0x16, - 0x16, - 0x1C, - 0x16, - 0x1C, - 0x19, - 0x19, - 0x0D, - 0x15, - 0x24, - 0x24, - 0x36, - 0x69, - 0x69, - 0x83, - 0x72, - 0xA0, - 0xA4, - 0x9E, - 0x93, - 0x85, - 0xA0, - 0x7E, - 0x88, - 0x87, - 0x75, - 0x7E, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x6E, - 0x5E, - 0x77, - 0x92, - 0x5E, - 0x69, - 0x69, - 0x74, - 0x69, - 0x5C, - 0x64, - 0x56, - 0x70, - 0x4D, - 0x57, - 0x70, - 0x67, - 0x5B, - 0x5D, - 0x3C, - 0x59, - 0x50, - 0x54, - 0x54, - 0x48, - 0x3D, - 0x44, - 0x42, - 0x42, - 0x76, - 0x00, - 0x07, - 0xFE, - 0x01, - 0xF7, - 0x05, - 0xFE, - 0x00, - 0x16, - 0xF7, - 0xFE, - 0xF9, - 0xF9, - 0xF9, - 0xF7, - 0xFE, - 0xF4, - 0xFE, - 0xF7, - 0xF9, - 0xF7, - 0xF0, - 0xF0, - 0xF9, - 0xF4, - 0xF4, - 0xF9, - 0xF4, - 0xF4, - 0xF9, - 0xF4, - 0x0B, - 0xF0, - 0x01, - 0xE4, - 0x09, - 0xF0, - 0x01, - 0xF9, - 0x06, - 0xF0, - 0x00, - 0x03, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x06, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x14, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x76, - 0x7D, - 0x7F, - 0x78, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x78, - 0x7D, - 0x7F, - 0x76, - 0x7D, - 0x76, - 0x07, - 0x7D, - 0x00, - 0x47, - 0x8D, - 0x7D, - 0x7D, - 0x8D, - 0x7D, - 0x7D, - 0x84, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x97, - 0x9A, - 0xAF, - 0x9A, - 0xAF, - 0xAF, - 0xA5, - 0x86, - 0x6C, - 0x4A, - 0x4A, - 0x35, - 0x3C, - 0x35, - 0x29, - 0x35, - 0x2A, - 0x5B, - 0x4A, - 0x16, - 0x10, - 0x1B, - 0x39, - 0x1E, - 0x11, - 0x0E, - 0x0E, - 0x76, - 0x62, - 0x4A, - 0x2A, - 0x32, - 0x2A, - 0x60, - 0x4F, - 0x1F, - 0x1C, - 0x35, - 0x1E, - 0x19, - 0x05, - 0x11, - 0x2A, - 0x2A, - 0x0F, - 0x0A, - 0x0B, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x06, - 0x0B, - 0x0A, - 0x0B, - 0x0D, - 0x03, - 0x0B, - 0x5B, - 0x00, - 0x05, - 0x0F, - 0x00, - 0x0B, - 0x0B, - 0x19, - 0x0B, - 0x19, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x39, - 0x0F, - 0x09, - 0x06, - 0x05, - 0x35, - 0x5B, - 0x22, - 0x35, - 0x35, - 0x5B, - 0x79, - 0x97, - 0x96, - 0x86, - 0xA8, - 0xBD, - 0x97, - 0x78, - 0xD0, - 0x6D, - 0x6D, - 0x7A, - 0x62, - 0xAF, - 0xE8, - 0x86, - 0x57, - 0x6F, - 0x9A, - 0x7A, - 0x60, - 0x62, - 0x62, - 0x32, - 0x60, - 0x62, - 0x89, - 0x9A, - 0x57, - 0x96, - 0xAF, - 0x96, - 0xA9, - 0x60, - 0x6D, - 0x62, - 0x7A, - 0x62, - 0x7A, - 0x11, - 0x10, - 0x1C, - 0x1C, - 0x39, - 0x29, - 0x39, - 0x35, - 0x00, - 0x04, - 0x1E, - 0x00, - 0x2B, - 0x10, - 0x10, - 0x16, - 0x1B, - 0x16, - 0x1E, - 0x1E, - 0x16, - 0x11, - 0x1C, - 0x0F, - 0x12, - 0x12, - 0x15, - 0x36, - 0x36, - 0x5C, - 0x69, - 0x74, - 0x92, - 0xA0, - 0xAD, - 0x7E, - 0x85, - 0x93, - 0x9D, - 0x8B, - 0x88, - 0x7C, - 0x7E, - 0x7E, - 0x75, - 0x75, - 0x6A, - 0x6E, - 0x61, - 0x7E, - 0x88, - 0x68, - 0x74, - 0x74, - 0x69, - 0x74, - 0x00, - 0x04, - 0x69, - 0x00, - 0x12, - 0x70, - 0x56, - 0x4B, - 0x4C, - 0x4E, - 0x55, - 0x40, - 0x52, - 0x54, - 0x58, - 0x59, - 0x58, - 0x42, - 0x30, - 0x45, - 0x5F, - 0x40, - 0xBE, - 0x05, - 0xFE, - 0x00, - 0x19, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0xF7, - 0xFE, - 0xF9, - 0xFE, - 0xF9, - 0xF7, - 0xFE, - 0xFE, - 0xF7, - 0xFE, - 0xF0, - 0xF7, - 0xF9, - 0xF9, - 0xF9, - 0xF7, - 0xF9, - 0xF0, - 0xF9, - 0xF9, - 0xF9, - 0x00, - 0x09, - 0xF0, - 0x01, - 0xEC, - 0x08, - 0xF0, - 0x00, - 0x0D, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x06, - 0xF0, - 0x00, - 0x09, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x04, - 0x78, - 0x00, - 0x14, - 0x7F, - 0x78, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x7D, - 0x7F, - 0x05, - 0x7D, - 0x00, - 0xD6, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0xAF, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0x71, - 0x6C, - 0x5B, - 0x29, - 0x35, - 0x10, - 0x22, - 0x1E, - 0x2A, - 0x35, - 0x4A, - 0x1B, - 0x4A, - 0x1B, - 0x10, - 0x10, - 0x4A, - 0x1C, - 0x0E, - 0x4D, - 0x4D, - 0x39, - 0x2A, - 0x0F, - 0x4F, - 0x4D, - 0x1E, - 0x14, - 0x32, - 0x22, - 0x35, - 0x39, - 0x1E, - 0x0B, - 0x05, - 0x22, - 0x35, - 0x0F, - 0x02, - 0x0E, - 0x05, - 0x14, - 0x29, - 0x09, - 0x0B, - 0x06, - 0x05, - 0x03, - 0x0B, - 0x0A, - 0x0B, - 0x5B, - 0x11, - 0x0B, - 0x11, - 0x0F, - 0x0F, - 0x1C, - 0x11, - 0x0F, - 0x0F, - 0x09, - 0x0B, - 0x0F, - 0x14, - 0x0B, - 0x0F, - 0x14, - 0x0F, - 0x14, - 0x1C, - 0x14, - 0x05, - 0x0B, - 0x05, - 0x1C, - 0x2A, - 0x5B, - 0x35, - 0x35, - 0x76, - 0x35, - 0xA8, - 0x89, - 0x6F, - 0x9A, - 0xC0, - 0xC0, - 0x7A, - 0x6D, - 0xA8, - 0x89, - 0x7D, - 0x6D, - 0x76, - 0xBD, - 0xF1, - 0x79, - 0x60, - 0x6D, - 0xAF, - 0xBD, - 0x32, - 0x60, - 0x4D, - 0x26, - 0x4D, - 0x32, - 0x7A, - 0xA9, - 0x6D, - 0x6D, - 0xD0, - 0x8A, - 0xA9, - 0x6D, - 0x7A, - 0x6D, - 0x4D, - 0x60, - 0x96, - 0x5B, - 0x1F, - 0x16, - 0x1C, - 0x2A, - 0x29, - 0x39, - 0x29, - 0x39, - 0x1E, - 0x1E, - 0x29, - 0x10, - 0x10, - 0x16, - 0x10, - 0x1B, - 0x1E, - 0x29, - 0x1B, - 0x14, - 0x11, - 0x16, - 0x0B, - 0x15, - 0x0D, - 0x24, - 0x36, - 0x69, - 0x69, - 0x83, - 0x87, - 0x91, - 0x88, - 0x90, - 0x8B, - 0x9D, - 0x85, - 0x75, - 0x75, - 0x7C, - 0x7E, - 0x8B, - 0x61, - 0x6E, - 0x6A, - 0x77, - 0x7E, - 0x88, - 0x68, - 0x74, - 0x74, - 0x74, - 0x69, - 0x74, - 0x69, - 0x69, - 0x69, - 0x64, - 0x64, - 0x64, - 0x49, - 0x60, - 0x55, - 0x31, - 0x44, - 0x48, - 0x54, - 0x58, - 0x63, - 0x54, - 0x42, - 0x54, - 0x6B, - 0x59, - 0x55, - 0x0A, - 0xFE, - 0x00, - 0x13, - 0xF9, - 0xFE, - 0xF9, - 0xF9, - 0xF9, - 0xFE, - 0xF9, - 0xF9, - 0xF9, - 0xF7, - 0xF9, - 0xF9, - 0xF9, - 0xF0, - 0xF9, - 0xF0, - 0xF9, - 0xF0, - 0xF4, - 0x00, - 0x0D, - 0xF0, - 0x00, - 0x12, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xC8, - 0xF0, - 0xE4, - 0xF0, - 0xEC, - 0xE4, - 0x05, - 0xF0, - 0x00, - 0x0C, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF9, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x06, - 0x78, - 0x00, - 0x0D, - 0x7D, - 0x78, - 0x78, - 0x7D, - 0x78, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x00, - 0x08, - 0x7D, - 0x01, - 0x79, - 0x05, - 0x7D, - 0x01, - 0x8D, - 0x01, - 0x84, - 0x04, - 0x8D, - 0x00, - 0xCC, - 0x97, - 0x8D, - 0xA5, - 0x9A, - 0xAF, - 0xAF, - 0x97, - 0x79, - 0x5D, - 0x4A, - 0x3C, - 0x1E, - 0x29, - 0x10, - 0x29, - 0x39, - 0x5B, - 0x3C, - 0x3C, - 0x4E, - 0x14, - 0x0E, - 0x29, - 0x22, - 0x1C, - 0x4A, - 0x39, - 0x29, - 0x1C, - 0x11, - 0x2A, - 0x4A, - 0x62, - 0x2A, - 0x14, - 0x2A, - 0x19, - 0x22, - 0x35, - 0x4A, - 0x0E, - 0x05, - 0x14, - 0x35, - 0x11, - 0x10, - 0x09, - 0x05, - 0x0E, - 0x14, - 0x1B, - 0x05, - 0x06, - 0x03, - 0x05, - 0x03, - 0x01, - 0x09, - 0x86, - 0x14, - 0x0E, - 0x0B, - 0x0F, - 0x0B, - 0x09, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x11, - 0x0E, - 0x0B, - 0x0B, - 0x0B, - 0x0E, - 0x0B, - 0x0F, - 0x14, - 0x09, - 0x09, - 0x22, - 0x2A, - 0x3C, - 0x4A, - 0x35, - 0x5B, - 0x5D, - 0xC0, - 0x96, - 0x79, - 0x97, - 0x86, - 0xD0, - 0xC0, - 0x6D, - 0x9A, - 0xA8, - 0x78, - 0x7A, - 0x7F, - 0x76, - 0x97, - 0xD0, - 0x76, - 0x8A, - 0x4D, - 0xBD, - 0xBD, - 0x62, - 0x1F, - 0x26, - 0x7A, - 0xF1, - 0xF1, - 0xA9, - 0xA9, - 0xBD, - 0x62, - 0xA9, - 0xA9, - 0xA9, - 0xA8, - 0xA8, - 0x89, - 0x96, - 0x6F, - 0x60, - 0x89, - 0x39, - 0x1C, - 0x1E, - 0x1C, - 0x39, - 0x35, - 0x2A, - 0x3C, - 0x1B, - 0x1B, - 0x16, - 0x1B, - 0x10, - 0x16, - 0x1B, - 0x29, - 0x1B, - 0x16, - 0x10, - 0x19, - 0x1F, - 0x14, - 0x11, - 0x0A, - 0x15, - 0x15, - 0x36, - 0x5C, - 0x68, - 0x74, - 0x91, - 0xAD, - 0x75, - 0x93, - 0x8B, - 0x9E, - 0x7E, - 0x8B, - 0x7E, - 0x93, - 0x7E, - 0x6A, - 0x6E, - 0x87, - 0x87, - 0x7E, - 0x77, - 0x68, - 0x74, - 0x68, - 0x72, - 0x68, - 0x83, - 0x5C, - 0x73, - 0x73, - 0x64, - 0x64, - 0x64, - 0x4B, - 0x70, - 0x18, - 0x3C, - 0x52, - 0x31, - 0x59, - 0x59, - 0x63, - 0x58, - 0x42, - 0x54, - 0x58, - 0x54, - 0x13, - 0xF7, - 0x07, - 0xFE, - 0x00, - 0x07, - 0xF9, - 0xF9, - 0xF9, - 0xFE, - 0xF9, - 0xFE, - 0xFE, - 0x00, - 0x07, - 0xF9, - 0x01, - 0xF0, - 0x04, - 0xF9, - 0x00, - 0x03, - 0xF0, - 0xF0, - 0xF9, - 0x00, - 0x05, - 0xF0, - 0x01, - 0xF9, - 0x04, - 0xF0, - 0x00, - 0x14, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xC8, - 0xC8, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0x04, - 0xF0, - 0x00, - 0x0E, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0x00, - 0x00, - 0x0C, - 0x78, - 0x00, - 0x0C, - 0x7F, - 0x76, - 0x76, - 0x7D, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x78, - 0x7D, - 0x7D, - 0x76, - 0x05, - 0x7D, - 0x00, - 0x53, - 0x8D, - 0x8D, - 0x7D, - 0x84, - 0x7D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xAF, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0x97, - 0x71, - 0x62, - 0x5D, - 0x29, - 0x1B, - 0x10, - 0x1B, - 0x1B, - 0x5B, - 0x71, - 0x4A, - 0x29, - 0x4E, - 0x16, - 0x22, - 0x14, - 0x29, - 0x35, - 0x32, - 0x4A, - 0x35, - 0x19, - 0x14, - 0x2A, - 0x4D, - 0x1E, - 0x2A, - 0x22, - 0x16, - 0x5B, - 0x4C, - 0x4A, - 0x3C, - 0x0F, - 0x05, - 0x09, - 0x1B, - 0x16, - 0x10, - 0x10, - 0x0E, - 0x0E, - 0x16, - 0x09, - 0x09, - 0x09, - 0x0B, - 0x05, - 0x05, - 0x06, - 0x0A, - 0xA3, - 0x29, - 0x0B, - 0x09, - 0x0F, - 0x0F, - 0x0F, - 0x0E, - 0x0F, - 0x14, - 0x14, - 0x14, - 0x0B, - 0x0F, - 0x0F, - 0x00, - 0x05, - 0x14, - 0x00, - 0x7D, - 0x0F, - 0x0F, - 0x35, - 0x1E, - 0x4A, - 0x4A, - 0x29, - 0x5B, - 0x4A, - 0x86, - 0x97, - 0x97, - 0x8D, - 0x86, - 0x84, - 0xBD, - 0xAF, - 0x6D, - 0x60, - 0x80, - 0x60, - 0x8A, - 0x6D, - 0x60, - 0xBD, - 0xC0, - 0x60, - 0x7A, - 0x57, - 0xAF, - 0xA9, - 0x89, - 0x62, - 0x86, - 0x6F, - 0xA9, - 0xF1, - 0xBD, - 0xBD, - 0xD0, - 0x7A, - 0x96, - 0xF1, - 0xA8, - 0xBD, - 0xA9, - 0xA9, - 0x96, - 0xC0, - 0x6F, - 0x6F, - 0x7A, - 0x2A, - 0x1E, - 0x1C, - 0x39, - 0x39, - 0x39, - 0x1E, - 0x1B, - 0x29, - 0x1B, - 0x14, - 0x1B, - 0x16, - 0x29, - 0x16, - 0x29, - 0x0E, - 0x1C, - 0x1F, - 0x11, - 0x19, - 0x0F, - 0x19, - 0x0D, - 0x15, - 0x36, - 0x46, - 0x68, - 0x72, - 0xA4, - 0xA4, - 0x93, - 0x8B, - 0x9E, - 0x8B, - 0x85, - 0x85, - 0x8B, - 0x92, - 0x75, - 0x6E, - 0x91, - 0x77, - 0x77, - 0x6A, - 0x77, - 0x83, - 0x74, - 0x68, - 0x69, - 0x74, - 0x5E, - 0x74, - 0x69, - 0x64, - 0x64, - 0x64, - 0x76, - 0x56, - 0x55, - 0x57, - 0x55, - 0x52, - 0x59, - 0x50, - 0x63, - 0x54, - 0x54, - 0x54, - 0x63, - 0x58, - 0x23, - 0x55, - 0x00, - 0x05, - 0xFE, - 0x00, - 0x08, - 0xFD, - 0xFE, - 0xF9, - 0xFD, - 0xFE, - 0xF9, - 0xFB, - 0xFD, - 0x0B, - 0xF9, - 0x00, - 0x11, - 0xE4, - 0xF9, - 0xF0, - 0xF9, - 0xF9, - 0xE4, - 0xF9, - 0xF0, - 0xF9, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x04, - 0xE4, - 0x00, - 0x12, - 0xC8, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xCE, - 0xE4, - 0xF0, - 0xE4, - 0xEC, - 0xEC, - 0x05, - 0xF0, - 0x00, - 0x04, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0x04, - 0xF0, - 0x01, - 0xEC, - 0x01, - 0xF0, - 0x00, - 0x00, - 0x01, - 0x80, - 0x04, - 0x78, - 0x00, - 0x0C, - 0x7F, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x07, - 0x7D, - 0x00, - 0x59, - 0x7F, - 0x7D, - 0x7D, - 0x7D, - 0x8D, - 0x76, - 0x79, - 0x8D, - 0x7D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0xAF, - 0xAF, - 0xA5, - 0xA3, - 0x86, - 0x4E, - 0x4E, - 0x2A, - 0x29, - 0x22, - 0x29, - 0x1B, - 0x1E, - 0x4D, - 0x1B, - 0x35, - 0x16, - 0x29, - 0x0E, - 0x10, - 0x1C, - 0x1E, - 0x39, - 0x4D, - 0x4D, - 0x29, - 0x2A, - 0x2A, - 0x62, - 0x35, - 0x1C, - 0x10, - 0x14, - 0x39, - 0x4C, - 0x29, - 0x39, - 0x14, - 0x0F, - 0x05, - 0x16, - 0x16, - 0x16, - 0x1B, - 0x10, - 0x10, - 0x14, - 0x10, - 0x05, - 0x02, - 0x0F, - 0x0B, - 0x0B, - 0x05, - 0x03, - 0xC0, - 0x71, - 0x11, - 0x11, - 0x0E, - 0x0B, - 0x14, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x09, - 0x0E, - 0x0F, - 0x14, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x7D, - 0x05, - 0x05, - 0x4E, - 0x3C, - 0x4A, - 0x14, - 0x5B, - 0x5D, - 0x79, - 0xC0, - 0x97, - 0x86, - 0x7A, - 0x7A, - 0x9A, - 0x89, - 0x60, - 0x6D, - 0xBD, - 0x96, - 0xE8, - 0xC0, - 0x62, - 0x78, - 0xC0, - 0xC0, - 0x60, - 0x8A, - 0x6D, - 0x96, - 0xBD, - 0xA9, - 0x6F, - 0xA8, - 0xFC, - 0xA9, - 0xF1, - 0xD0, - 0xD0, - 0xD0, - 0x89, - 0x6D, - 0xD0, - 0xBD, - 0x60, - 0x89, - 0x86, - 0x7A, - 0xA9, - 0x7A, - 0x62, - 0x96, - 0x6F, - 0x1C, - 0x2A, - 0x4A, - 0x39, - 0x39, - 0x29, - 0x3C, - 0x10, - 0x16, - 0x16, - 0x10, - 0x16, - 0x10, - 0x29, - 0x10, - 0x4B, - 0x26, - 0x0F, - 0x0E, - 0x0F, - 0x0B, - 0x0F, - 0x0D, - 0x0D, - 0x36, - 0x46, - 0x5E, - 0xA0, - 0xA0, - 0x7E, - 0x90, - 0x9E, - 0x9D, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x75, - 0x6E, - 0x88, - 0x77, - 0x7E, - 0x6A, - 0x88, - 0x77, - 0x83, - 0x74, - 0x74, - 0x5C, - 0x69, - 0x69, - 0x5C, - 0x56, - 0x4B, - 0x64, - 0x60, - 0x4C, - 0x55, - 0x65, - 0x55, - 0x4A, - 0x59, - 0x50, - 0x59, - 0x58, - 0x63, - 0x58, - 0x54, - 0x42, - 0x38, - 0x2F, - 0xFD, - 0x00, - 0x07, - 0xFE, - 0x00, - 0x0B, - 0xFD, - 0xF9, - 0xFD, - 0xFE, - 0xFE, - 0xFB, - 0xF9, - 0xFD, - 0xF9, - 0xF9, - 0xFB, - 0x00, - 0x04, - 0xF9, - 0x00, - 0x0B, - 0xE3, - 0xF0, - 0xF9, - 0xE4, - 0xF0, - 0xF9, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x06, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0x06, - 0xE4, - 0x00, - 0x14, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xCE, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF9, - 0x04, - 0xF0, - 0x00, - 0x05, - 0xEC, - 0xF0, - 0xF9, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x76, - 0x78, - 0x78, - 0x80, - 0x78, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x7D, - 0x78, - 0x78, - 0x76, - 0x78, - 0x7D, - 0x7D, - 0x7D, - 0x78, - 0x7D, - 0x7D, - 0x78, - 0x04, - 0x7D, - 0x00, - 0x08, - 0x78, - 0x8D, - 0x7D, - 0x7D, - 0x8D, - 0x78, - 0x8D, - 0x7D, - 0x05, - 0x8D, - 0x00, - 0xCA, - 0x97, - 0x9A, - 0x9A, - 0xAF, - 0xA5, - 0xAF, - 0x86, - 0x71, - 0x4A, - 0x3C, - 0x1B, - 0x1B, - 0x29, - 0x22, - 0x35, - 0x35, - 0x5B, - 0x2A, - 0x4A, - 0x10, - 0x22, - 0x10, - 0x2A, - 0x22, - 0x4D, - 0x4A, - 0x39, - 0x35, - 0x2A, - 0x39, - 0x5B, - 0x35, - 0x1C, - 0x22, - 0x1E, - 0x10, - 0x2F, - 0x32, - 0x32, - 0x35, - 0x1B, - 0x10, - 0x09, - 0x10, - 0x1B, - 0x10, - 0x22, - 0x29, - 0x10, - 0x1B, - 0x05, - 0x4E, - 0x3C, - 0x0F, - 0x01, - 0x0F, - 0x0B, - 0x05, - 0x6F, - 0x5B, - 0x62, - 0x0B, - 0x14, - 0x0F, - 0x14, - 0x0F, - 0x0F, - 0x2F, - 0x09, - 0x0B, - 0x0F, - 0x14, - 0x0E, - 0x14, - 0x11, - 0x1C, - 0x09, - 0x05, - 0x05, - 0x1E, - 0x5D, - 0x5B, - 0x1C, - 0x3C, - 0x6C, - 0x97, - 0xA8, - 0x86, - 0x7D, - 0x7A, - 0x8A, - 0x7A, - 0x97, - 0xAF, - 0xA9, - 0xF1, - 0xE8, - 0xC0, - 0xE8, - 0xC0, - 0x4D, - 0x62, - 0x97, - 0x7A, - 0x6D, - 0x7A, - 0x89, - 0xBD, - 0xC0, - 0xC0, - 0x6F, - 0x7A, - 0xF1, - 0xD0, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xA9, - 0x7A, - 0x89, - 0xFC, - 0x89, - 0x7A, - 0xC0, - 0x96, - 0xD0, - 0xA9, - 0x62, - 0x89, - 0x7A, - 0x4D, - 0x1F, - 0x39, - 0x39, - 0x16, - 0x1B, - 0x29, - 0x16, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x29, - 0x19, - 0x64, - 0x11, - 0x4C, - 0x0B, - 0x0F, - 0x0F, - 0x19, - 0x12, - 0x0A, - 0x15, - 0x24, - 0x36, - 0x68, - 0x91, - 0xA0, - 0x7C, - 0x9D, - 0x9D, - 0x9D, - 0x75, - 0x9E, - 0x90, - 0x88, - 0x75, - 0x93, - 0x77, - 0x7E, - 0x77, - 0x77, - 0x74, - 0x72, - 0x74, - 0x83, - 0x5C, - 0x73, - 0x46, - 0x64, - 0x56, - 0x4B, - 0x56, - 0x67, - 0x4A, - 0x4F, - 0x59, - 0x55, - 0x35, - 0x4E, - 0x52, - 0x50, - 0x63, - 0x63, - 0x54, - 0x54, - 0x44, - 0x54, - 0x02, - 0x9B, - 0x04, - 0xFE, - 0x00, - 0x21, - 0xFD, - 0xFE, - 0xFE, - 0xFB, - 0xFE, - 0xFD, - 0xF9, - 0xFD, - 0xFD, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xE4, - 0xFB, - 0xF9, - 0xE4, - 0xF9, - 0xE3, - 0xF9, - 0xE3, - 0xF9, - 0xE4, - 0xE4, - 0xF0, - 0xE3, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x0A, - 0xE4, - 0x01, - 0xC8, - 0x01, - 0xF0, - 0x04, - 0xE4, - 0x00, - 0x1A, - 0xCE, - 0xE4, - 0xE4, - 0xE4, - 0xCE, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xF9, - 0xF0, - 0xF0, - 0xF9, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x05, - 0x80, - 0x6D, - 0x78, - 0x78, - 0x7F, - 0x00, - 0x06, - 0x78, - 0x00, - 0x1D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x78, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x8D, - 0x76, - 0x7D, - 0x8D, - 0x7D, - 0x8D, - 0x7D, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0xA5, - 0x8D, - 0x00, - 0x04, - 0x9A, - 0x00, - 0x56, - 0xAF, - 0x86, - 0x5D, - 0x5B, - 0x35, - 0x1B, - 0x29, - 0x1E, - 0x4A, - 0x39, - 0x39, - 0x4A, - 0x29, - 0x1E, - 0x14, - 0x09, - 0x22, - 0x1E, - 0x19, - 0x4A, - 0x35, - 0x4D, - 0x1E, - 0x4D, - 0x39, - 0x5B, - 0x10, - 0x1E, - 0x16, - 0x1B, - 0x1C, - 0x16, - 0x4A, - 0x1C, - 0x22, - 0x32, - 0x14, - 0x09, - 0x10, - 0x1B, - 0x10, - 0x10, - 0x29, - 0x22, - 0x14, - 0x11, - 0x65, - 0x71, - 0x09, - 0x14, - 0x0E, - 0x09, - 0x16, - 0x3C, - 0x5D, - 0x2A, - 0x09, - 0x0B, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x09, - 0x11, - 0x09, - 0x0F, - 0x19, - 0x0B, - 0x0E, - 0x0B, - 0x05, - 0x4F, - 0x2A, - 0x5B, - 0x29, - 0x79, - 0x1E, - 0x4A, - 0x5B, - 0x71, - 0xA3, - 0xAF, - 0x96, - 0x89, - 0x8D, - 0xA9, - 0x04, - 0xFC, - 0x00, - 0x8B, - 0xF1, - 0xBD, - 0xA8, - 0xA8, - 0x8D, - 0x78, - 0x80, - 0x89, - 0xF1, - 0xF1, - 0xE8, - 0xF1, - 0xA8, - 0xC0, - 0xA8, - 0x6F, - 0x6F, - 0xA9, - 0xD0, - 0xFC, - 0xD0, - 0xA9, - 0xFC, - 0xFF, - 0xD0, - 0x89, - 0xF1, - 0xD0, - 0xA9, - 0x62, - 0x89, - 0xD0, - 0xC0, - 0x96, - 0x6F, - 0xF1, - 0x6F, - 0x39, - 0x11, - 0x10, - 0x1E, - 0x16, - 0x10, - 0x16, - 0x10, - 0x0E, - 0x1E, - 0x1E, - 0x1F, - 0x4B, - 0x0F, - 0x12, - 0x0E, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0D, - 0x15, - 0x15, - 0x46, - 0x92, - 0x91, - 0x9E, - 0x9D, - 0x9D, - 0x9D, - 0x6E, - 0x90, - 0x8B, - 0x93, - 0x93, - 0x91, - 0x7E, - 0x88, - 0x72, - 0x88, - 0x72, - 0x72, - 0x68, - 0x83, - 0x5C, - 0x69, - 0x4B, - 0x5C, - 0x56, - 0x4B, - 0x67, - 0x2A, - 0x4A, - 0x4F, - 0x65, - 0x65, - 0x55, - 0x55, - 0x59, - 0x59, - 0x59, - 0x58, - 0x54, - 0x50, - 0x42, - 0x5F, - 0x07, - 0x33, - 0xFE, - 0xFD, - 0xFE, - 0xFD, - 0xFD, - 0xFE, - 0xFD, - 0xFD, - 0xFB, - 0xFD, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xF9, - 0xFB, - 0xF9, - 0xFB, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xFB, - 0xF0, - 0xE3, - 0xF9, - 0xE3, - 0xF9, - 0xF9, - 0xE3, - 0xF9, - 0xE4, - 0xF9, - 0x00, - 0x0B, - 0xE4, - 0x01, - 0xF0, - 0x04, - 0xE4, - 0x00, - 0x05, - 0xD4, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x09, - 0xE4, - 0x00, - 0x09, - 0xF0, - 0xE4, - 0xF0, - 0xEC, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x04, - 0xF9, - 0xEC, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x12, - 0x78, - 0x80, - 0x78, - 0x78, - 0x78, - 0x80, - 0x78, - 0x80, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x78, - 0x7F, - 0x78, - 0x76, - 0x7F, - 0x04, - 0x7D, - 0x00, - 0x0B, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x8D, - 0x7D, - 0x7D, - 0x00, - 0x06, - 0x8D, - 0x00, - 0x2E, - 0x9A, - 0x97, - 0x9A, - 0x9A, - 0xAF, - 0xAF, - 0x86, - 0x71, - 0x5B, - 0x3C, - 0x10, - 0x10, - 0x29, - 0x29, - 0x2A, - 0x5B, - 0x5B, - 0x76, - 0x10, - 0x1E, - 0x35, - 0x35, - 0x0E, - 0x2A, - 0x39, - 0x4A, - 0x2A, - 0x4A, - 0x4D, - 0x4A, - 0x79, - 0x10, - 0x35, - 0x16, - 0x29, - 0x1E, - 0x35, - 0x14, - 0x1C, - 0x32, - 0x2A, - 0x22, - 0x0E, - 0x09, - 0x10, - 0x0E, - 0x04, - 0x10, - 0x00, - 0xB1, - 0x2A, - 0x7B, - 0x71, - 0x2A, - 0x16, - 0x14, - 0x0E, - 0x09, - 0x11, - 0x5B, - 0x2A, - 0x05, - 0x0E, - 0x06, - 0x09, - 0x09, - 0x0F, - 0x0B, - 0x09, - 0x11, - 0x0E, - 0x0E, - 0x0F, - 0x0F, - 0x06, - 0x05, - 0x4F, - 0x29, - 0x10, - 0x4A, - 0x1B, - 0x6C, - 0x29, - 0x71, - 0xA8, - 0x86, - 0x89, - 0x7A, - 0xA8, - 0xF1, - 0xA8, - 0xF1, - 0xF1, - 0xF1, - 0xFC, - 0x89, - 0x8D, - 0x6D, - 0x7F, - 0x62, - 0xAF, - 0x89, - 0xBD, - 0xC0, - 0xD0, - 0xA8, - 0x86, - 0x86, - 0xBD, - 0xC0, - 0x6F, - 0x6F, - 0x89, - 0xBD, - 0xFC, - 0xF1, - 0x89, - 0xFF, - 0xF1, - 0xD0, - 0xA9, - 0xD0, - 0xFC, - 0xD0, - 0xA9, - 0x6D, - 0xC0, - 0xA9, - 0x96, - 0x7A, - 0x96, - 0xA9, - 0x6F, - 0x62, - 0x09, - 0x1E, - 0x1B, - 0x1E, - 0x16, - 0x16, - 0x10, - 0x0E, - 0x4C, - 0x24, - 0x4C, - 0x11, - 0x0E, - 0x0E, - 0x0F, - 0x14, - 0x0F, - 0x0A, - 0x12, - 0x15, - 0x0D, - 0x24, - 0x51, - 0x92, - 0xA0, - 0x9D, - 0x9D, - 0x8B, - 0x7C, - 0x9D, - 0xB7, - 0xAD, - 0x8B, - 0x8B, - 0x75, - 0x88, - 0x88, - 0x92, - 0x87, - 0x74, - 0x68, - 0x83, - 0x5C, - 0x83, - 0x4B, - 0x64, - 0x56, - 0x56, - 0x67, - 0x4C, - 0x65, - 0x4F, - 0x52, - 0x59, - 0x23, - 0x52, - 0x59, - 0x44, - 0x53, - 0x5A, - 0x47, - 0x50, - 0x48, - 0x5F, - 0x07, - 0x07, - 0x67, - 0xFE, - 0xFD, - 0xFD, - 0xFE, - 0xFE, - 0xFB, - 0xFD, - 0xFD, - 0xF9, - 0xFD, - 0xFB, - 0xFD, - 0xFB, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xF9, - 0xFB, - 0xE4, - 0xE3, - 0xFB, - 0xE3, - 0xE3, - 0xE3, - 0xF9, - 0x00, - 0x04, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0xE3, - 0xE4, - 0xE3, - 0x0A, - 0xE4, - 0x00, - 0x24, - 0xC3, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xC8, - 0xE4, - 0xE4, - 0xF0, - 0xC3, - 0xE4, - 0xC8, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xE4, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x78, - 0x78, - 0x78, - 0x80, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x7D, - 0x78, - 0x7F, - 0x7D, - 0x78, - 0x7D, - 0x7D, - 0x8A, - 0x7F, - 0x7D, - 0x7D, - 0x8D, - 0x7F, - 0x7D, - 0x8D, - 0x8A, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xA5, - 0x9A, - 0xAF, - 0x86, - 0x5B, - 0x4E, - 0x4E, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x5B, - 0x35, - 0x62, - 0x5B, - 0x16, - 0x2A, - 0x35, - 0x39, - 0x2A, - 0x4A, - 0x2A, - 0x4A, - 0x35, - 0x6C, - 0x4E, - 0x4D, - 0x6C, - 0x1B, - 0x35, - 0x16, - 0x1E, - 0x16, - 0x22, - 0x10, - 0x14, - 0x4A, - 0x32, - 0x1F, - 0x10, - 0x05, - 0x0E, - 0x09, - 0x10, - 0x0E, - 0x09, - 0x1E, - 0x16, - 0x7B, - 0x5D, - 0x5D, - 0x0E, - 0x1C, - 0x09, - 0x09, - 0x10, - 0x86, - 0x29, - 0x0B, - 0x05, - 0x2F, - 0x05, - 0x0B, - 0x0F, - 0x09, - 0x0F, - 0x0E, - 0x11, - 0x19, - 0x0E, - 0x09, - 0x0B, - 0x05, - 0x05, - 0x1E, - 0x1C, - 0x16, - 0x1B, - 0x35, - 0x39, - 0x96, - 0x7A, - 0x6F, - 0x7A, - 0xAF, - 0xBD, - 0xD0, - 0x96, - 0x97, - 0x89, - 0x7A, - 0x6D, - 0x60, - 0x89, - 0xBD, - 0x6D, - 0xA9, - 0xA9, - 0x89, - 0xA9, - 0x86, - 0x7A, - 0x86, - 0x86, - 0x89, - 0xC0, - 0xBD, - 0x62, - 0x89, - 0x6F, - 0x7A, - 0xFC, - 0xF1, - 0xA9, - 0xD0, - 0xFC, - 0xF1, - 0xA9, - 0x89, - 0xF1, - 0xFF, - 0xD0, - 0x89, - 0x6F, - 0xF1, - 0xBD, - 0x6F, - 0x62, - 0xD0, - 0x6F, - 0x62, - 0x3C, - 0x16, - 0x1B, - 0x10, - 0x1C, - 0x16, - 0x1E, - 0x4C, - 0x12, - 0x09, - 0x11, - 0x0F, - 0x0E, - 0x0F, - 0x0E, - 0x14, - 0x0B, - 0x19, - 0x12, - 0x0D, - 0x0D, - 0x46, - 0x74, - 0x87, - 0x9E, - 0x90, - 0x85, - 0x8B, - 0x9D, - 0x9D, - 0x8B, - 0x8B, - 0x8B, - 0x7C, - 0x90, - 0x8B, - 0x91, - 0x92, - 0x72, - 0x83, - 0x83, - 0x74, - 0x83, - 0x4B, - 0x69, - 0x56, - 0x4B, - 0x70, - 0x57, - 0x52, - 0x2F, - 0x4E, - 0x63, - 0x40, - 0x52, - 0x52, - 0x59, - 0x3F, - 0x42, - 0x48, - 0x48, - 0x3D, - 0x53, - 0x23, - 0x02, - 0x07, - 0xFE, - 0xFD, - 0xFE, - 0x04, - 0xFD, - 0x00, - 0x4A, - 0xFB, - 0xFB, - 0xFD, - 0xFB, - 0xFB, - 0xFB, - 0xFD, - 0xF9, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xE3, - 0xFB, - 0xFB, - 0xE4, - 0xE4, - 0xFB, - 0xE3, - 0xE3, - 0xE4, - 0xFB, - 0xE3, - 0xF9, - 0xD9, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xE4, - 0xCE, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xCE, - 0xCE, - 0xE4, - 0xE4, - 0xF0, - 0xE0, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF9, - 0xF0, - 0xF0, - 0xF0, - 0xF9, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xF9, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x21, - 0x78, - 0x80, - 0x80, - 0x78, - 0x78, - 0x80, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x7D, - 0x78, - 0x7F, - 0x76, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x8A, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x00, - 0x06, - 0x8D, - 0x00, - 0xC8, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0x86, - 0x4E, - 0x5B, - 0x71, - 0x22, - 0x0E, - 0x2A, - 0x2A, - 0x5B, - 0x39, - 0x6C, - 0x35, - 0x29, - 0x19, - 0x76, - 0x4A, - 0x14, - 0x4D, - 0x4A, - 0x39, - 0x5B, - 0x4E, - 0x16, - 0x5B, - 0x1E, - 0x22, - 0x29, - 0x14, - 0x4E, - 0x1E, - 0x22, - 0x29, - 0x22, - 0x39, - 0x14, - 0x11, - 0x14, - 0x1C, - 0x04, - 0x22, - 0x1B, - 0x09, - 0x09, - 0x09, - 0x14, - 0x5D, - 0x7B, - 0x7B, - 0x39, - 0x39, - 0x0B, - 0x0E, - 0x03, - 0xA8, - 0x5D, - 0x12, - 0x09, - 0x09, - 0x09, - 0x0B, - 0x0E, - 0x09, - 0x0F, - 0x11, - 0x2F, - 0x0B, - 0x0E, - 0x0B, - 0x05, - 0x03, - 0x11, - 0x29, - 0x1E, - 0x39, - 0x4A, - 0x32, - 0xA9, - 0x6D, - 0x62, - 0x60, - 0xA5, - 0x97, - 0xBD, - 0x7A, - 0xAF, - 0xC0, - 0xD0, - 0xFC, - 0xE8, - 0xF1, - 0xBD, - 0xAF, - 0xBD, - 0x89, - 0xC0, - 0x7A, - 0xA8, - 0x7A, - 0x6F, - 0x6F, - 0x62, - 0x96, - 0xA8, - 0xA8, - 0x7A, - 0xA9, - 0x62, - 0x86, - 0xF1, - 0xFC, - 0xA9, - 0xD0, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0xD0, - 0xFC, - 0xA9, - 0xA9, - 0x96, - 0xFC, - 0xBD, - 0x6F, - 0x86, - 0xC0, - 0x6F, - 0x5B, - 0x16, - 0x1B, - 0x32, - 0x1C, - 0x1E, - 0x32, - 0x11, - 0x0E, - 0x14, - 0x10, - 0x10, - 0x14, - 0x11, - 0x10, - 0x11, - 0x0F, - 0x0F, - 0x2D, - 0x24, - 0x24, - 0x46, - 0x75, - 0x75, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x7C, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x93, - 0x91, - 0x87, - 0x92, - 0x83, - 0x83, - 0x69, - 0x5C, - 0x5C, - 0x56, - 0x4B, - 0x56, - 0x67, - 0x60, - 0x3C, - 0x5B, - 0x59, - 0x40, - 0x52, - 0x5D, - 0x52, - 0x38, - 0x42, - 0x42, - 0x44, - 0x20, - 0x44, - 0x23, - 0x02, - 0x02, - 0x7B, - 0x07, - 0xFD, - 0x01, - 0xFB, - 0x01, - 0xFD, - 0x04, - 0xFB, - 0x00, - 0x1A, - 0xD9, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xE3, - 0xE3, - 0xFB, - 0xE4, - 0xFB, - 0xE3, - 0xE3, - 0xE4, - 0xFB, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0x04, - 0xE4, - 0x00, - 0x0F, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xC3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xC3, - 0xE4, - 0xC8, - 0x00, - 0x06, - 0xE4, - 0x00, - 0x08, - 0xF0, - 0xE0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE0, - 0xE4, - 0x04, - 0xF0, - 0x00, - 0x05, - 0xF9, - 0xF0, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCB, - 0x76, - 0x78, - 0x78, - 0x78, - 0x80, - 0x78, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x7F, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x7F, - 0x8D, - 0x7F, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8D, - 0x9A, - 0x97, - 0x9A, - 0xAF, - 0x96, - 0x5D, - 0x5D, - 0x6C, - 0x29, - 0x1B, - 0x35, - 0x29, - 0x4A, - 0x4D, - 0x4A, - 0x5B, - 0x14, - 0x16, - 0x1E, - 0x5B, - 0x1E, - 0x4A, - 0x1C, - 0x1E, - 0x6C, - 0x10, - 0x4D, - 0x16, - 0x22, - 0x1E, - 0x16, - 0x29, - 0x4E, - 0x14, - 0x1E, - 0x10, - 0x16, - 0x1E, - 0x5B, - 0x1C, - 0x19, - 0x1F, - 0x2A, - 0x0A, - 0x10, - 0x10, - 0x10, - 0x05, - 0x0E, - 0x0B, - 0x0E, - 0x4A, - 0x4A, - 0x35, - 0x4E, - 0x39, - 0x05, - 0x0B, - 0xA3, - 0x7B, - 0x10, - 0x1F, - 0x14, - 0x14, - 0x10, - 0x16, - 0x11, - 0x14, - 0x11, - 0x05, - 0x14, - 0x1F, - 0x14, - 0x0E, - 0x0B, - 0x29, - 0x10, - 0x39, - 0x4A, - 0x2A, - 0x89, - 0x8A, - 0x60, - 0x6D, - 0xA5, - 0x89, - 0x8A, - 0x89, - 0xAF, - 0x89, - 0xF1, - 0xC0, - 0xC0, - 0xE8, - 0xD0, - 0xFC, - 0xFC, - 0xFC, - 0xD0, - 0xD0, - 0x89, - 0xA8, - 0x6F, - 0x6F, - 0x62, - 0x62, - 0x96, - 0xBD, - 0xA9, - 0x86, - 0xA8, - 0x62, - 0x89, - 0xF1, - 0xD0, - 0xA9, - 0xFC, - 0xD0, - 0xFF, - 0xFF, - 0xA9, - 0xD0, - 0xD0, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0x96, - 0xFC, - 0x89, - 0x6F, - 0x7A, - 0x86, - 0x6F, - 0x1C, - 0x39, - 0x32, - 0x11, - 0x1F, - 0x0E, - 0x11, - 0x0E, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x16, - 0x1C, - 0x14, - 0x11, - 0x12, - 0x12, - 0x15, - 0x36, - 0x69, - 0x68, - 0x7C, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x7C, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x11, - 0x9D, - 0x9E, - 0x88, - 0x92, - 0x74, - 0x83, - 0x83, - 0x69, - 0x64, - 0x64, - 0x56, - 0x56, - 0x64, - 0x1F, - 0x4F, - 0x70, - 0x55, - 0x00, - 0x04, - 0x52, - 0x00, - 0x0B, - 0x48, - 0x42, - 0x3D, - 0x3A, - 0x40, - 0x20, - 0x44, - 0x02, - 0x02, - 0x40, - 0xFE, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x05, - 0xFB, - 0xFD, - 0xFB, - 0xFB, - 0xFD, - 0x00, - 0x09, - 0xFB, - 0x00, - 0x06, - 0xD9, - 0xE3, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0x05, - 0xE3, - 0x01, - 0xE4, - 0x0C, - 0xE3, - 0x00, - 0x07, - 0xC3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xF0, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x04, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0x0C, - 0xE4, - 0x00, - 0x0B, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE0, - 0xE4, - 0xEC, - 0xF0, - 0xF9, - 0xE4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x78, - 0x80, - 0x80, - 0x78, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x8D, - 0x78, - 0x7D, - 0x8A, - 0x7F, - 0x8D, - 0x8D, - 0x7F, - 0x00, - 0x04, - 0x8D, - 0x00, - 0xC9, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0x86, - 0x86, - 0x5B, - 0x5D, - 0x29, - 0x29, - 0x4A, - 0x35, - 0x4D, - 0x2A, - 0x62, - 0x1E, - 0x1E, - 0x14, - 0x1C, - 0x1E, - 0x2A, - 0x16, - 0x1E, - 0x4A, - 0x2A, - 0x14, - 0x2A, - 0x14, - 0x2A, - 0x1B, - 0x4A, - 0x2A, - 0x35, - 0x35, - 0x4A, - 0x16, - 0x22, - 0x3C, - 0x4A, - 0x1E, - 0x1C, - 0x0F, - 0x1B, - 0x14, - 0x09, - 0x10, - 0x0E, - 0x09, - 0x0B, - 0x09, - 0x39, - 0x14, - 0x11, - 0x1C, - 0x11, - 0x1C, - 0x11, - 0x05, - 0x2A, - 0x62, - 0x4A, - 0x29, - 0x14, - 0x14, - 0x10, - 0x1C, - 0x19, - 0x22, - 0x09, - 0x0E, - 0x09, - 0x09, - 0x06, - 0x06, - 0x22, - 0x0F, - 0x06, - 0x4A, - 0x10, - 0x9A, - 0x6D, - 0x6D, - 0x7A, - 0x6D, - 0xA9, - 0xBD, - 0xE8, - 0xFF, - 0xE8, - 0xBE, - 0xD0, - 0x96, - 0xA3, - 0xBE, - 0xFC, - 0xFC, - 0xD0, - 0xC0, - 0xF1, - 0xC0, - 0xBD, - 0x96, - 0x62, - 0x96, - 0x7A, - 0x6D, - 0xA8, - 0x96, - 0xC0, - 0x96, - 0xC0, - 0x96, - 0x7A, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xA9, - 0xD0, - 0xFF, - 0xFC, - 0xA9, - 0xF1, - 0xFC, - 0xD0, - 0xFC, - 0xBD, - 0x89, - 0xC0, - 0xA9, - 0x6F, - 0xA9, - 0x86, - 0x6F, - 0x39, - 0x5B, - 0x32, - 0x09, - 0x11, - 0x1C, - 0x0E, - 0x11, - 0x11, - 0x16, - 0x1E, - 0x16, - 0x2A, - 0x29, - 0x1C, - 0x0F, - 0x0A, - 0x26, - 0x36, - 0x46, - 0x68, - 0x88, - 0x90, - 0xA4, - 0xAD, - 0xAD, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x93, - 0x91, - 0x92, - 0x87, - 0x83, - 0x69, - 0x69, - 0x64, - 0x56, - 0x5C, - 0x56, - 0x56, - 0x67, - 0x57, - 0x67, - 0x52, - 0x52, - 0x52, - 0x59, - 0x48, - 0x42, - 0x3D, - 0x44, - 0x44, - 0x23, - 0x54, - 0x07, - 0x01, - 0x07, - 0xA3, - 0xFD, - 0xFE, - 0x00, - 0x04, - 0xFD, - 0x09, - 0xFB, - 0x00, - 0x2B, - 0xF5, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xFB, - 0xD9, - 0xD9, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xD9, - 0xFB, - 0xD9, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xD9, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xC3, - 0xE4, - 0xE4, - 0xD4, - 0xC3, - 0xE4, - 0xD9, - 0xE4, - 0xE4, - 0xD4, - 0xC3, - 0xE4, - 0xE4, - 0xC3, - 0x00, - 0x0A, - 0xE4, - 0x01, - 0xE3, - 0x01, - 0xF9, - 0x04, - 0xE4, - 0x00, - 0x03, - 0xF0, - 0xF0, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0x01, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x6D, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x7F, - 0x8A, - 0x7D, - 0x8A, - 0x78, - 0x8D, - 0x7F, - 0x7F, - 0x8D, - 0x7D, - 0x8A, - 0x9A, - 0x7D, - 0x8D, - 0x8A, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0xAF, - 0x71, - 0x65, - 0x4D, - 0x4E, - 0x3C, - 0x1B, - 0x4E, - 0x16, - 0x5B, - 0x35, - 0x76, - 0x29, - 0x16, - 0x29, - 0x1C, - 0x1E, - 0x29, - 0x1C, - 0x1B, - 0x1C, - 0x1E, - 0x14, - 0x39, - 0x16, - 0x4D, - 0x4E, - 0x4D, - 0x29, - 0x35, - 0x1B, - 0x3C, - 0x1E, - 0x10, - 0x35, - 0x35, - 0x39, - 0x4D, - 0x16, - 0x14, - 0x2A, - 0x05, - 0x09, - 0x10, - 0x09, - 0x14, - 0x05, - 0x1E, - 0x1B, - 0x09, - 0x0F, - 0x2A, - 0x0F, - 0x0F, - 0x1C, - 0x0F, - 0xA3, - 0x29, - 0x1E, - 0x35, - 0x10, - 0x29, - 0x1E, - 0x5D, - 0x35, - 0x14, - 0x14, - 0x0E, - 0x09, - 0x09, - 0x05, - 0x0E, - 0x09, - 0x0E, - 0x2A, - 0x7D, - 0x6D, - 0x8A, - 0xA9, - 0xA9, - 0xFC, - 0xE8, - 0xFC, - 0xF1, - 0xFC, - 0xBD, - 0xC0, - 0xC0, - 0x78, - 0xA5, - 0xD0, - 0xC0, - 0xD0, - 0xA8, - 0xD0, - 0xD0, - 0x7A, - 0xD0, - 0xC0, - 0x7A, - 0x86, - 0xC0, - 0x62, - 0xA8, - 0xD0, - 0xA8, - 0x6F, - 0x96, - 0xA9, - 0xA9, - 0x96, - 0xF1, - 0x7A, - 0xD0, - 0xD0, - 0xD0, - 0xFC, - 0xFC, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xFC, - 0xD0, - 0xD0, - 0xBD, - 0xC0, - 0x96, - 0x96, - 0xC0, - 0x6F, - 0x39, - 0x62, - 0x1F, - 0x11, - 0x11, - 0x09, - 0x0F, - 0x0E, - 0x0E, - 0x0E, - 0x11, - 0x1C, - 0x11, - 0x1F, - 0x11, - 0x12, - 0x12, - 0x24, - 0x24, - 0x51, - 0x6E, - 0x85, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x90, - 0xA4, - 0x90, - 0x9E, - 0x91, - 0x83, - 0x68, - 0x69, - 0x74, - 0xB6, - 0x51, - 0x5C, - 0x41, - 0x56, - 0x2A, - 0x56, - 0x67, - 0x4E, - 0x59, - 0x59, - 0x5A, - 0x3D, - 0x3D, - 0x44, - 0x40, - 0x20, - 0x23, - 0x42, - 0x23, - 0x02, - 0x00, - 0x5F, - 0x7B, - 0xE4, - 0xFB, - 0xFD, - 0xFB, - 0xFE, - 0xF8, - 0x05, - 0xFB, - 0x00, - 0x13, - 0xF5, - 0xFB, - 0xD3, - 0xFB, - 0xF5, - 0xFB, - 0xD3, - 0xF5, - 0xD9, - 0xFB, - 0xD3, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xD9, - 0xFB, - 0x00, - 0x08, - 0xE3, - 0x00, - 0x2C, - 0xD9, - 0xE4, - 0xD9, - 0xD9, - 0xE4, - 0xD4, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xC3, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xCE, - 0xCE, - 0xE3, - 0xD4, - 0xF0, - 0xE4, - 0xE4, - 0xE0, - 0xF0, - 0xE4, - 0xF9, - 0xE4, - 0xE4, - 0xF9, - 0xF0, - 0xF0, - 0xE0, - 0xF0, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x80, - 0x80, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x6D, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x00, - 0x04, - 0x7F, - 0x00, - 0xDD, - 0x7D, - 0x80, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x8D, - 0x8A, - 0x7D, - 0x8D, - 0x7F, - 0x7F, - 0x8D, - 0x8A, - 0x7F, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0xA5, - 0x8D, - 0x8D, - 0x97, - 0x6F, - 0x5B, - 0x5D, - 0x4E, - 0x4E, - 0x29, - 0x35, - 0x39, - 0x60, - 0x5B, - 0x39, - 0x1E, - 0x1E, - 0x1E, - 0x1B, - 0x35, - 0x35, - 0x1B, - 0x09, - 0x14, - 0x14, - 0x11, - 0x5B, - 0x19, - 0x16, - 0x2A, - 0x4A, - 0x2A, - 0x1C, - 0x3C, - 0x29, - 0x10, - 0x35, - 0x1E, - 0x4E, - 0x16, - 0x4A, - 0x1B, - 0x0E, - 0x29, - 0x05, - 0x03, - 0x0E, - 0x09, - 0x05, - 0x06, - 0x0F, - 0x0B, - 0x2A, - 0x0B, - 0x0F, - 0x0E, - 0x11, - 0x19, - 0x09, - 0xA8, - 0x5D, - 0x35, - 0x16, - 0x29, - 0x09, - 0x1B, - 0x09, - 0x0E, - 0x0E, - 0x10, - 0x0E, - 0x09, - 0x09, - 0x11, - 0x0E, - 0x1C, - 0x14, - 0x7F, - 0xAF, - 0xA9, - 0xD0, - 0xF1, - 0xFC, - 0xE8, - 0xC0, - 0xD0, - 0xC0, - 0xD0, - 0xA8, - 0x89, - 0x7A, - 0xAF, - 0xA8, - 0xD0, - 0xC0, - 0xA8, - 0x89, - 0xA9, - 0x89, - 0xA8, - 0xD0, - 0xA8, - 0x86, - 0x96, - 0xC0, - 0x86, - 0xC0, - 0xF1, - 0xFC, - 0x86, - 0x96, - 0xBD, - 0xBD, - 0x89, - 0xFC, - 0x89, - 0xA9, - 0xF1, - 0xA9, - 0xD0, - 0xFF, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xF1, - 0xF1, - 0xD0, - 0xF1, - 0xD0, - 0x6F, - 0xC0, - 0xA9, - 0x5B, - 0x39, - 0x1C, - 0x0F, - 0x11, - 0x11, - 0x16, - 0x1C, - 0x11, - 0x0E, - 0x0E, - 0x11, - 0x11, - 0x19, - 0x24, - 0x26, - 0x15, - 0x15, - 0x46, - 0x51, - 0x7C, - 0x8B, - 0x90, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x93, - 0xA0, - 0x87, - 0x83, - 0x92, - 0x83, - 0x83, - 0x73, - 0x69, - 0x41, - 0x64, - 0x28, - 0x57, - 0x4C, - 0x4F, - 0x4E, - 0x40, - 0x44, - 0x38, - 0x44, - 0x44, - 0x40, - 0x23, - 0x40, - 0x42, - 0x42, - 0x02, - 0x00, - 0x34, - 0x63, - 0x4E, - 0x7B, - 0xB1, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x38, - 0xF5, - 0xFB, - 0xF8, - 0xFD, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xF5, - 0xF2, - 0xFB, - 0xD3, - 0xF5, - 0xF5, - 0xD9, - 0xD9, - 0xF5, - 0xD9, - 0xFB, - 0xD9, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xC3, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0x04, - 0xE4, - 0x00, - 0x10, - 0xF0, - 0xE3, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF9, - 0xE4, - 0xF0, - 0xE0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x00, - 0x01, - 0x78, - 0x01, - 0x78, - 0x09, - 0x80, - 0x01, - 0x78, - 0x06, - 0x7F, - 0x01, - 0x78, - 0x06, - 0x7F, - 0x00, - 0xE3, - 0x78, - 0x7F, - 0x8A, - 0x7F, - 0x7F, - 0x8D, - 0x7F, - 0x8D, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xA5, - 0x86, - 0x3C, - 0x5B, - 0x5D, - 0x29, - 0x3C, - 0x4D, - 0x4A, - 0x6C, - 0x39, - 0x4D, - 0x29, - 0x29, - 0x1E, - 0x14, - 0x10, - 0x0E, - 0x1E, - 0x14, - 0x11, - 0x29, - 0x1E, - 0x1C, - 0x2A, - 0x19, - 0x1E, - 0x35, - 0x29, - 0x2A, - 0x4A, - 0x14, - 0x10, - 0x1B, - 0x29, - 0x1B, - 0x29, - 0x5D, - 0x2A, - 0x10, - 0x0F, - 0x1C, - 0x03, - 0x00, - 0x0B, - 0x09, - 0x0B, - 0x05, - 0x06, - 0x0B, - 0x0B, - 0x06, - 0x0F, - 0x09, - 0x0B, - 0x09, - 0x5D, - 0x71, - 0x5D, - 0x5D, - 0x29, - 0x4E, - 0x1E, - 0x10, - 0x10, - 0x1C, - 0x04, - 0x16, - 0x16, - 0x1B, - 0x29, - 0x11, - 0x39, - 0xA3, - 0xC0, - 0xF1, - 0xE8, - 0xC0, - 0xC0, - 0xC0, - 0xBD, - 0xF1, - 0xC0, - 0xC0, - 0xC0, - 0x7A, - 0x97, - 0xA8, - 0x89, - 0xD0, - 0x86, - 0x7A, - 0xA9, - 0xF1, - 0xFC, - 0xBD, - 0xD0, - 0x96, - 0x96, - 0xA8, - 0x6F, - 0xA8, - 0x86, - 0x89, - 0x86, - 0xC0, - 0x86, - 0xA8, - 0xFC, - 0xA8, - 0x7A, - 0xFF, - 0xF1, - 0xA9, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xFC, - 0xFF, - 0xA9, - 0xA9, - 0xF1, - 0xFF, - 0xF1, - 0xD0, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xC0, - 0x86, - 0x1C, - 0x11, - 0x0E, - 0x1E, - 0x1E, - 0x1E, - 0x29, - 0x16, - 0x1C, - 0x11, - 0x11, - 0x0F, - 0x26, - 0x24, - 0x41, - 0x15, - 0x24, - 0x46, - 0x6E, - 0x8B, - 0x90, - 0x9D, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x91, - 0x88, - 0x83, - 0x77, - 0x74, - 0x83, - 0x69, - 0x64, - 0x69, - 0x56, - 0x70, - 0x3E, - 0x4F, - 0x4E, - 0x55, - 0x3F, - 0x33, - 0x40, - 0x40, - 0x40, - 0x13, - 0x23, - 0x58, - 0x54, - 0x13, - 0x00, - 0x18, - 0x66, - 0x33, - 0x21, - 0x8D, - 0xA5, - 0xFB, - 0xFB, - 0xFB, - 0xF8, - 0xFB, - 0xF8, - 0xFE, - 0xF5, - 0xF5, - 0xF5, - 0xCF, - 0xFB, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x06, - 0xD3, - 0xFB, - 0xF5, - 0xD9, - 0xD9, - 0xF5, - 0x06, - 0xD9, - 0x00, - 0x2A, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xC3, - 0xE3, - 0xC3, - 0xE3, - 0xD4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE3, - 0xF0, - 0x06, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x12, - 0x78, - 0x82, - 0x82, - 0x6D, - 0x80, - 0x78, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x80, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x04, - 0x7F, - 0x00, - 0x83, - 0x78, - 0x7D, - 0x7D, - 0x8A, - 0x7F, - 0x7F, - 0x7F, - 0x8A, - 0x7D, - 0x8A, - 0x7F, - 0x8A, - 0x7F, - 0x8D, - 0x8A, - 0x8D, - 0x8D, - 0x8A, - 0x9A, - 0x9B, - 0x8D, - 0x97, - 0x86, - 0x4E, - 0x5D, - 0x5D, - 0x1E, - 0x3C, - 0x4A, - 0x4A, - 0x6C, - 0x10, - 0x4A, - 0x35, - 0x1E, - 0x4A, - 0x14, - 0x10, - 0x4E, - 0x10, - 0x11, - 0x14, - 0x35, - 0x1E, - 0x1C, - 0x14, - 0x1B, - 0x2A, - 0x4A, - 0x39, - 0x5D, - 0x1B, - 0x16, - 0x3C, - 0x1B, - 0x4A, - 0x29, - 0x1E, - 0x5D, - 0x35, - 0x1B, - 0x16, - 0x14, - 0x06, - 0x01, - 0x03, - 0x03, - 0x06, - 0x0B, - 0x06, - 0x03, - 0x05, - 0x05, - 0x0B, - 0x0F, - 0x06, - 0x05, - 0x1F, - 0x86, - 0x5D, - 0x3C, - 0x3C, - 0x65, - 0x1B, - 0x1B, - 0x04, - 0x1B, - 0x29, - 0x1B, - 0x35, - 0x4A, - 0x2A, - 0xA3, - 0xE8, - 0xFC, - 0xE8, - 0xF1, - 0xF1, - 0xC0, - 0xA8, - 0xA8, - 0x97, - 0xA3, - 0xA8, - 0xBE, - 0xD0, - 0xFC, - 0xFC, - 0xA9, - 0x8A, - 0x89, - 0x89, - 0xBD, - 0xC0, - 0xC0, - 0xD0, - 0xF1, - 0xBD, - 0xD0, - 0xE8, - 0xF1, - 0xC0, - 0xC0, - 0x86, - 0xA8, - 0x89, - 0xF1, - 0x86, - 0x86, - 0xD0, - 0xF1, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x2C, - 0xF1, - 0xF1, - 0xFC, - 0xA9, - 0xA9, - 0xFC, - 0xF1, - 0x7A, - 0xA9, - 0xA9, - 0xF1, - 0xA9, - 0xF1, - 0xFC, - 0xA9, - 0x86, - 0xD0, - 0xA9, - 0x1C, - 0x09, - 0x11, - 0x2A, - 0x2A, - 0x1E, - 0x1C, - 0x1C, - 0x0E, - 0x0E, - 0x09, - 0x11, - 0x12, - 0x15, - 0x24, - 0x4B, - 0x36, - 0x61, - 0x88, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x04, - 0xA4, - 0x00, - 0x42, - 0x9D, - 0x90, - 0x90, - 0xA0, - 0x91, - 0x92, - 0x77, - 0x83, - 0x5C, - 0x69, - 0xA2, - 0x56, - 0x4B, - 0x4C, - 0x4F, - 0x33, - 0x52, - 0x2E, - 0x33, - 0x13, - 0x40, - 0x23, - 0x33, - 0x23, - 0x54, - 0x45, - 0x33, - 0x02, - 0x07, - 0x66, - 0x44, - 0x0C, - 0x23, - 0x7B, - 0x8D, - 0xFE, - 0xF8, - 0xFB, - 0xFD, - 0xFD, - 0xF8, - 0xF8, - 0xFB, - 0xF5, - 0xF8, - 0xF5, - 0xF8, - 0xF8, - 0xFB, - 0xD3, - 0xF5, - 0xF5, - 0xD3, - 0xF5, - 0xD9, - 0xD9, - 0xD3, - 0xFB, - 0xF5, - 0xF5, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xD9, - 0xFB, - 0x05, - 0xD9, - 0x00, - 0x22, - 0xE3, - 0xD4, - 0xD9, - 0xD4, - 0xE3, - 0xE3, - 0xD9, - 0xE3, - 0xE3, - 0xC3, - 0xE3, - 0xD9, - 0xE4, - 0xC3, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xD4, - 0xCE, - 0xE4, - 0xE4, - 0xE0, - 0x04, - 0xE4, - 0x00, - 0x06, - 0xF0, - 0xE4, - 0xF0, - 0xE0, - 0xE4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x03, - 0x80, - 0x78, - 0x78, - 0x00, - 0x08, - 0x80, - 0x00, - 0xFF, - 0x7F, - 0x7F, - 0x7F, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x7D, - 0x7F, - 0x8A, - 0x7F, - 0x7F, - 0x7D, - 0x8A, - 0x8A, - 0x7D, - 0x8A, - 0x8D, - 0x8A, - 0x8D, - 0x9A, - 0x7F, - 0x8D, - 0x9B, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0x7B, - 0x5B, - 0x4E, - 0x3C, - 0x29, - 0x1B, - 0x4A, - 0x5B, - 0x6C, - 0x10, - 0x16, - 0x1E, - 0x29, - 0x29, - 0x1B, - 0x1B, - 0x1E, - 0x29, - 0x10, - 0x1C, - 0x5B, - 0x35, - 0x1B, - 0x1C, - 0x1C, - 0x1C, - 0x5B, - 0x22, - 0x5D, - 0x29, - 0x29, - 0x22, - 0x22, - 0x29, - 0x1B, - 0x16, - 0x5D, - 0x4E, - 0x14, - 0x14, - 0x2A, - 0x4A, - 0x10, - 0x03, - 0x03, - 0x05, - 0x03, - 0x06, - 0x03, - 0x0A, - 0x03, - 0x0B, - 0x06, - 0x05, - 0x03, - 0x00, - 0x86, - 0x5D, - 0x4A, - 0x4A, - 0x3C, - 0x1B, - 0x29, - 0x4A, - 0x10, - 0x35, - 0x1C, - 0x39, - 0x6C, - 0xF1, - 0xE8, - 0xFC, - 0xE8, - 0xBD, - 0xF1, - 0xE8, - 0xA8, - 0xE8, - 0xC0, - 0x84, - 0xA8, - 0xC0, - 0xE8, - 0xFC, - 0xA9, - 0xA8, - 0xD0, - 0xBD, - 0xC0, - 0xBD, - 0xD0, - 0xC0, - 0xD0, - 0xD0, - 0xF1, - 0xF1, - 0xBD, - 0xD0, - 0xA8, - 0x86, - 0x86, - 0x7A, - 0x97, - 0x89, - 0xA8, - 0x7A, - 0xA8, - 0x96, - 0xF1, - 0xD0, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xFF, - 0xF1, - 0xFF, - 0xA9, - 0xF1, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0x96, - 0x6F, - 0x96, - 0xA9, - 0x10, - 0x0E, - 0x0E, - 0x16, - 0x16, - 0x1C, - 0x16, - 0x1C, - 0x09, - 0x11, - 0x09, - 0x0F, - 0x12, - 0x24, - 0x4B, - 0x36, - 0x5C, - 0x68, - 0x6E, - 0x85, - 0x8B, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x88, - 0x88, - 0x91, - 0xA0, - 0x69, - 0x74, - 0x74, - 0x83, - 0x36, - 0x69, - 0x64, - 0x4F, - 0x29, - 0x13, - 0x33, - 0x2F, - 0x22, - 0x33, - 0x38, - 0x13, - 0x23, - 0x5F, - 0x5F, - 0x23, - 0x04, - 0x07, - 0x66, - 0x42, - 0x07, - 0x18, - 0x1A, - 0x55, - 0x8D, - 0xFB, - 0xFB, - 0xF8, - 0xFD, - 0xF8, - 0xFD, - 0xFB, - 0xF5, - 0xF5, - 0xFB, - 0xD3, - 0xFB, - 0xF5, - 0xD3, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD3, - 0xF5, - 0xF5, - 0xD9, - 0xD3, - 0xD9, - 0xF5, - 0xD9, - 0x00, - 0x00, - 0x30, - 0xD3, - 0xD9, - 0xD9, - 0xFB, - 0xD9, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xD4, - 0xD9, - 0xE3, - 0xE3, - 0xC3, - 0xE4, - 0xC3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE0, - 0x04, - 0xE4, - 0x02, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x03, - 0x80, - 0x9B, - 0x60, - 0x00, - 0x05, - 0x80, - 0x00, - 0x0B, - 0x78, - 0x80, - 0x80, - 0x78, - 0x80, - 0x7F, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x80, - 0x00, - 0x06, - 0x7F, - 0x00, - 0x40, - 0x8A, - 0x7D, - 0x8A, - 0x7F, - 0x8A, - 0x7D, - 0x7F, - 0x7F, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x9A, - 0x8D, - 0x9A, - 0x8D, - 0x86, - 0x4E, - 0x4E, - 0x4A, - 0x35, - 0x1E, - 0x1E, - 0x29, - 0x5B, - 0x09, - 0x1E, - 0x29, - 0x35, - 0x35, - 0x1B, - 0x29, - 0x3C, - 0x22, - 0x0E, - 0x1E, - 0x39, - 0x1E, - 0x35, - 0x1C, - 0x16, - 0x29, - 0x3C, - 0x2A, - 0x1E, - 0x29, - 0x39, - 0x29, - 0x1B, - 0x16, - 0x22, - 0x10, - 0x5D, - 0x5D, - 0x16, - 0x0E, - 0x2A, - 0x0F, - 0x05, - 0x11, - 0x00, - 0x04, - 0x03, - 0x00, - 0x56, - 0x0A, - 0x00, - 0x03, - 0x03, - 0x03, - 0x00, - 0x03, - 0xA3, - 0xC0, - 0x3C, - 0x2A, - 0x16, - 0x29, - 0x1E, - 0x39, - 0x19, - 0x2A, - 0x2A, - 0xAF, - 0xAF, - 0xC0, - 0xF1, - 0xE8, - 0xD0, - 0xF1, - 0xFC, - 0xA3, - 0xA3, - 0xC0, - 0x7A, - 0x89, - 0xC6, - 0xD0, - 0xA9, - 0xA8, - 0xBD, - 0xD0, - 0xF1, - 0xF1, - 0xA9, - 0xBD, - 0xBD, - 0xC0, - 0xC0, - 0xA9, - 0xF1, - 0xA9, - 0xA8, - 0xF1, - 0x89, - 0x86, - 0x96, - 0xA8, - 0xC0, - 0x96, - 0xA8, - 0x86, - 0x86, - 0x86, - 0x89, - 0xD0, - 0x96, - 0xF1, - 0xA9, - 0xA9, - 0xFF, - 0xD0, - 0xFF, - 0xD0, - 0xA9, - 0xFC, - 0xF1, - 0xD0, - 0xD0, - 0xA9, - 0x89, - 0xF1, - 0xF1, - 0xF1, - 0x86, - 0x62, - 0x96, - 0x09, - 0x09, - 0x0F, - 0x10, - 0x05, - 0x11, - 0x00, - 0x53, - 0x0E, - 0x0F, - 0x0F, - 0x15, - 0x46, - 0x36, - 0x46, - 0x5C, - 0x7E, - 0x91, - 0x9E, - 0x9E, - 0x8B, - 0x93, - 0x9D, - 0x90, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0xA4, - 0xA0, - 0x77, - 0x68, - 0x83, - 0x74, - 0x92, - 0x69, - 0x69, - 0x5C, - 0x67, - 0x82, - 0x07, - 0x33, - 0x22, - 0x55, - 0x13, - 0x52, - 0x13, - 0x23, - 0x42, - 0x58, - 0x20, - 0x07, - 0x08, - 0x66, - 0x42, - 0x13, - 0x07, - 0x0C, - 0x21, - 0x43, - 0x9B, - 0xFD, - 0xF8, - 0xFD, - 0xF8, - 0xF5, - 0xF5, - 0xF5, - 0xF8, - 0xF8, - 0xD3, - 0xF5, - 0xCF, - 0xD3, - 0xF2, - 0xD3, - 0xF5, - 0xD3, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xF5, - 0xD3, - 0x00, - 0x0A, - 0xD9, - 0x00, - 0x0F, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xD9, - 0xD4, - 0xD4, - 0xE3, - 0xD9, - 0xE3, - 0xE3, - 0xE3, - 0xD4, - 0x00, - 0x05, - 0xE3, - 0x00, - 0x17, - 0xD4, - 0xE3, - 0xC3, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xD4, - 0xE4, - 0xE3, - 0xE4, - 0xCE, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xE0, - 0xE4, - 0xF0, - 0xF0, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x80, - 0x00, - 0x0A, - 0x78, - 0x80, - 0x80, - 0x7F, - 0x78, - 0x80, - 0x78, - 0x8A, - 0x7F, - 0x8A, - 0x04, - 0x7F, - 0x00, - 0x32, - 0x80, - 0x7F, - 0x8A, - 0x7F, - 0x8A, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0x9A, - 0x8A, - 0x8D, - 0x9A, - 0x8A, - 0x9B, - 0x8D, - 0xA5, - 0x86, - 0x4A, - 0x5D, - 0x4E, - 0x29, - 0x16, - 0x29, - 0x1E, - 0x5B, - 0x22, - 0x29, - 0x4A, - 0x35, - 0x39, - 0x16, - 0x35, - 0x1E, - 0x16, - 0x10, - 0x4D, - 0x39, - 0x1C, - 0x1E, - 0x3C, - 0x6C, - 0x6C, - 0x35, - 0x29, - 0x3C, - 0x5D, - 0x65, - 0x2A, - 0x04, - 0x10, - 0x00, - 0x1F, - 0x4A, - 0x4A, - 0x1B, - 0x0E, - 0x16, - 0x0F, - 0x0F, - 0x05, - 0x03, - 0x03, - 0x03, - 0x00, - 0x03, - 0x01, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xFF, - 0xE8, - 0x86, - 0x2A, - 0x39, - 0x11, - 0x1C, - 0x32, - 0x62, - 0xA8, - 0x00, - 0x04, - 0xE8, - 0x00, - 0x2A, - 0xD0, - 0xF1, - 0xE8, - 0xF1, - 0xBD, - 0xA8, - 0xA8, - 0x89, - 0xC6, - 0xBD, - 0xD0, - 0xE8, - 0xFC, - 0xFC, - 0xF1, - 0xD0, - 0xFC, - 0x7A, - 0x96, - 0xBD, - 0xC0, - 0xBD, - 0x96, - 0xBD, - 0xC0, - 0xC0, - 0xC0, - 0xAF, - 0x96, - 0xA8, - 0xA8, - 0xA8, - 0xBD, - 0x86, - 0x62, - 0x6F, - 0x7A, - 0xA8, - 0xC0, - 0x89, - 0xF1, - 0xA9, - 0x04, - 0xD0, - 0x00, - 0x26, - 0xFC, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0x89, - 0xA9, - 0xA9, - 0xFC, - 0xA9, - 0x6F, - 0x39, - 0x05, - 0x09, - 0x11, - 0x11, - 0x11, - 0x0E, - 0x0E, - 0x11, - 0x09, - 0x0F, - 0x0D, - 0x15, - 0x68, - 0x15, - 0x5C, - 0x68, - 0x88, - 0x93, - 0x8B, - 0x9E, - 0x9D, - 0x93, - 0x9E, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0x43, - 0x8B, - 0x9D, - 0xA4, - 0x93, - 0x93, - 0x72, - 0x87, - 0x92, - 0x92, - 0x73, - 0xB6, - 0x77, - 0x56, - 0x64, - 0x49, - 0x2F, - 0x22, - 0x52, - 0x33, - 0x33, - 0x13, - 0x23, - 0x54, - 0x58, - 0x23, - 0x13, - 0x08, - 0x45, - 0x5F, - 0x20, - 0x02, - 0x07, - 0x1A, - 0x31, - 0x65, - 0xB1, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0xFB, - 0xF5, - 0xF8, - 0xF5, - 0xF2, - 0xF2, - 0xF2, - 0xD3, - 0xD3, - 0xF5, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD3, - 0xF5, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xF5, - 0xD3, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xE3, - 0x06, - 0xD9, - 0x00, - 0x26, - 0xD4, - 0xD9, - 0xD9, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xC3, - 0xC3, - 0xE3, - 0xE4, - 0xC3, - 0xC3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE3, - 0xE4, - 0xCE, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0x00, - 0x00, - 0x01, - 0x8C, - 0x0B, - 0x80, - 0x00, - 0x07, - 0x78, - 0x80, - 0x78, - 0x80, - 0x7F, - 0x7F, - 0x80, - 0x00, - 0x06, - 0x7F, - 0x00, - 0xED, - 0x8A, - 0x8D, - 0x7F, - 0x7F, - 0x8A, - 0x8A, - 0x8A, - 0x8D, - 0x7F, - 0x7F, - 0x9B, - 0x8D, - 0x8A, - 0x8A, - 0x9A, - 0x9A, - 0x9A, - 0x8D, - 0x9A, - 0x96, - 0x5D, - 0x3C, - 0x5B, - 0x29, - 0x16, - 0x1B, - 0x29, - 0x3C, - 0x2A, - 0x29, - 0x16, - 0x35, - 0x4A, - 0x1B, - 0x1E, - 0x16, - 0x16, - 0x09, - 0x35, - 0x3C, - 0x5D, - 0x86, - 0x7B, - 0x1B, - 0x3C, - 0x29, - 0x1B, - 0x4E, - 0x29, - 0x3C, - 0x29, - 0x1B, - 0x10, - 0x10, - 0x1B, - 0x5D, - 0x29, - 0x10, - 0x0E, - 0x14, - 0x0E, - 0x0B, - 0x06, - 0x03, - 0x01, - 0x03, - 0x00, - 0x03, - 0x03, - 0x03, - 0x00, - 0x06, - 0x06, - 0x09, - 0x03, - 0x16, - 0xE8, - 0xFF, - 0xE8, - 0xC0, - 0x86, - 0x6D, - 0x62, - 0xC0, - 0xF1, - 0xF1, - 0xE8, - 0xE8, - 0xFC, - 0xFC, - 0xFC, - 0xE8, - 0xF1, - 0xC0, - 0xA8, - 0xA5, - 0xC0, - 0xBE, - 0xBD, - 0xF1, - 0xE8, - 0xE8, - 0xFF, - 0xE8, - 0xD0, - 0xF1, - 0xFC, - 0xA9, - 0x89, - 0xBD, - 0xD0, - 0x89, - 0xD0, - 0xBD, - 0x96, - 0xA9, - 0xFC, - 0xA9, - 0x86, - 0xA8, - 0xC0, - 0xF1, - 0xC0, - 0xBD, - 0x6F, - 0x71, - 0xA9, - 0x96, - 0xD0, - 0xA8, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0x89, - 0xFC, - 0xC0, - 0x62, - 0x4A, - 0x09, - 0x11, - 0x1C, - 0x16, - 0x2A, - 0x11, - 0x0E, - 0x09, - 0x0B, - 0x0E, - 0x36, - 0x5C, - 0x24, - 0x74, - 0x68, - 0x68, - 0x88, - 0x93, - 0x7E, - 0x93, - 0x91, - 0x93, - 0x9E, - 0x88, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x93, - 0x9E, - 0xA0, - 0x91, - 0x83, - 0xA2, - 0x69, - 0x69, - 0x5C, - 0x4B, - 0x67, - 0x2A, - 0x55, - 0x33, - 0x40, - 0x40, - 0x23, - 0x3D, - 0x38, - 0x3D, - 0x23, - 0x13, - 0x5F, - 0x5F, - 0x45, - 0x02, - 0x02, - 0x13, - 0x1D, - 0x25, - 0x59, - 0xD3, - 0xF8, - 0xFB, - 0xFB, - 0xF8, - 0xF5, - 0xF8, - 0xF8, - 0xF5, - 0xF8, - 0xD3, - 0xD3, - 0xF8, - 0xF8, - 0xD9, - 0xCF, - 0xF5, - 0xF5, - 0xCF, - 0xCF, - 0xF5, - 0xCF, - 0xF5, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x07, - 0xD9, - 0xD3, - 0xD3, - 0xD9, - 0xD9, - 0xD9, - 0xD3, - 0x00, - 0x0C, - 0xD9, - 0x00, - 0x1D, - 0xD4, - 0xD9, - 0xE3, - 0xD9, - 0xC3, - 0xD4, - 0xD9, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE4, - 0xE3, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xD4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0x00, - 0x06, - 0xE4, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x04, - 0x80, - 0x01, - 0x82, - 0x01, - 0x6D, - 0x07, - 0x80, - 0x01, - 0x78, - 0x01, - 0x80, - 0x04, - 0x7F, - 0x00, - 0x44, - 0x80, - 0x7F, - 0x8A, - 0x7F, - 0x80, - 0x7F, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x8A, - 0x8A, - 0x8A, - 0x9B, - 0x7F, - 0x8D, - 0x9B, - 0x8D, - 0x8A, - 0x8A, - 0x9A, - 0x8A, - 0x9A, - 0x9A, - 0x7B, - 0x4E, - 0x5D, - 0x71, - 0x35, - 0x29, - 0x29, - 0x35, - 0x16, - 0x5D, - 0x1E, - 0x29, - 0x5B, - 0x3C, - 0x1E, - 0x16, - 0x14, - 0x1E, - 0x10, - 0x4A, - 0x4E, - 0x5D, - 0x5D, - 0x4E, - 0x1B, - 0x3C, - 0x4E, - 0x4E, - 0x1B, - 0x29, - 0x1B, - 0x3C, - 0x1B, - 0x10, - 0x10, - 0x14, - 0x5D, - 0x14, - 0x1B, - 0x0E, - 0x14, - 0x11, - 0x09, - 0x06, - 0x04, - 0x03, - 0x00, - 0xA8, - 0x00, - 0x03, - 0x03, - 0x1C, - 0x0F, - 0x0F, - 0x11, - 0x0B, - 0x39, - 0xFC, - 0xD0, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xF1, - 0xFC, - 0xE8, - 0xFC, - 0xC0, - 0xF1, - 0xF1, - 0xE8, - 0xE8, - 0xD0, - 0xA8, - 0xA8, - 0xC0, - 0xD0, - 0xD8, - 0xF1, - 0xE8, - 0xF1, - 0xE8, - 0xFC, - 0xC0, - 0xD0, - 0xA8, - 0xD0, - 0xFC, - 0xF1, - 0xF1, - 0xC0, - 0xBD, - 0x7A, - 0xA9, - 0xA8, - 0x86, - 0xA9, - 0xFC, - 0xD0, - 0x7A, - 0x86, - 0xA8, - 0x96, - 0xA9, - 0xFC, - 0xA9, - 0x96, - 0x86, - 0x89, - 0xD0, - 0x96, - 0x6F, - 0xF1, - 0x89, - 0xD0, - 0xF1, - 0xA9, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0x6F, - 0x1E, - 0x09, - 0x16, - 0x16, - 0x1E, - 0x10, - 0x11, - 0x0E, - 0x06, - 0x0B, - 0x5E, - 0x69, - 0x72, - 0x83, - 0x72, - 0x77, - 0x93, - 0x9E, - 0x77, - 0x88, - 0x92, - 0x88, - 0x91, - 0x9E, - 0x90, - 0x9D, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x90, - 0xA4, - 0x88, - 0x88, - 0x91, - 0x83, - 0x68, - 0x36, - 0x69, - 0x69, - 0x64, - 0x49, - 0x3C, - 0x67, - 0x52, - 0x22, - 0x22, - 0x13, - 0x23, - 0x3D, - 0x2E, - 0x23, - 0x23, - 0x38, - 0x5F, - 0x45, - 0x13, - 0x00, - 0x04, - 0x13, - 0x20, - 0x1D, - 0x9A, - 0xF8, - 0xFB, - 0xF8, - 0xF8, - 0xFB, - 0xF8, - 0xF8, - 0xF5, - 0xF8, - 0xD3, - 0xF8, - 0xF8, - 0xF5, - 0xCF, - 0xF8, - 0xD3, - 0xCF, - 0xCF, - 0xCF, - 0xF5, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x08, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD9, - 0xD3, - 0xD3, - 0xD3, - 0x04, - 0xD9, - 0x01, - 0xD3, - 0x0A, - 0xD9, - 0x00, - 0x21, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE4, - 0xE3, - 0xE3, - 0xCE, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE0, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x04, - 0x80, - 0x01, - 0x82, - 0x08, - 0x80, - 0x00, - 0x10, - 0x7F, - 0x80, - 0x80, - 0x80, - 0x7F, - 0x7F, - 0x7F, - 0x8A, - 0x7F, - 0x8A, - 0x80, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x7F, - 0x04, - 0x8A, - 0x00, - 0x44, - 0x80, - 0x7F, - 0x8A, - 0x9B, - 0x8A, - 0x8D, - 0x8A, - 0x8D, - 0x9B, - 0x8D, - 0xA8, - 0x4E, - 0x5D, - 0x5D, - 0x29, - 0x29, - 0x1E, - 0x35, - 0x16, - 0x5B, - 0x2A, - 0x29, - 0x4E, - 0x5D, - 0x16, - 0x16, - 0x29, - 0x2A, - 0x29, - 0x6C, - 0x3C, - 0x3C, - 0x1E, - 0x04, - 0x3C, - 0x35, - 0x4E, - 0x6C, - 0x4E, - 0x5D, - 0x29, - 0x29, - 0x29, - 0x16, - 0x10, - 0x35, - 0x5D, - 0x6C, - 0x16, - 0x10, - 0x1E, - 0x11, - 0x11, - 0x0B, - 0x0F, - 0x03, - 0x01, - 0x03, - 0x03, - 0x03, - 0x0F, - 0x11, - 0x11, - 0x14, - 0x0E, - 0x10, - 0x05, - 0xC0, - 0x06, - 0xFF, - 0x00, - 0x9D, - 0xE8, - 0xFF, - 0xE8, - 0xE8, - 0xF1, - 0xE8, - 0xFC, - 0xC0, - 0xBD, - 0xBE, - 0xBD, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xF1, - 0xD0, - 0xE8, - 0xD0, - 0xD0, - 0xBD, - 0xA8, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xA9, - 0xBD, - 0x89, - 0xA9, - 0x96, - 0xA9, - 0xC0, - 0xBD, - 0xFC, - 0xA8, - 0xA8, - 0xC0, - 0xC0, - 0xC0, - 0xD0, - 0x96, - 0x86, - 0xF1, - 0xA8, - 0xF1, - 0xA9, - 0x7A, - 0xF1, - 0xA9, - 0x89, - 0xFF, - 0xF1, - 0xA9, - 0xFF, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xD0, - 0xF1, - 0x89, - 0x96, - 0xF1, - 0x7A, - 0x10, - 0x10, - 0x0E, - 0x0E, - 0x09, - 0x09, - 0x0F, - 0x06, - 0x0A, - 0x46, - 0x83, - 0x83, - 0x74, - 0x77, - 0x77, - 0x88, - 0xA0, - 0x72, - 0x87, - 0x7E, - 0x92, - 0x7E, - 0x9E, - 0x88, - 0x93, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0xAD, - 0x90, - 0x9E, - 0x88, - 0xA0, - 0x87, - 0x83, - 0x83, - 0x83, - 0x64, - 0x49, - 0x64, - 0x4C, - 0x65, - 0x35, - 0x4F, - 0x13, - 0x40, - 0x30, - 0x40, - 0x20, - 0x23, - 0x30, - 0x45, - 0x20, - 0x44, - 0x00, - 0x02, - 0x08, - 0x1D, - 0x21, - 0x59, - 0xFB, - 0xF8, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF8, - 0xD3, - 0xF8, - 0xD3, - 0xF8, - 0xD3, - 0xF8, - 0xCF, - 0xCF, - 0xF2, - 0xCF, - 0xF2, - 0xD3, - 0xF2, - 0xD3, - 0xCF, - 0xD3, - 0xF5, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x0A, - 0xD9, - 0xD3, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD9, - 0xD3, - 0x06, - 0xD9, - 0x00, - 0x23, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xE3, - 0xD9, - 0xE4, - 0xD9, - 0xE4, - 0xD9, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0xD4, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xCE, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x80, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x78, - 0x0A, - 0x80, - 0x00, - 0x20, - 0x7F, - 0x7F, - 0x8A, - 0x80, - 0x80, - 0x7F, - 0x80, - 0x7F, - 0x7F, - 0x8A, - 0x7F, - 0x8A, - 0x7F, - 0x9B, - 0x8A, - 0x7F, - 0x8A, - 0x9B, - 0x8D, - 0x9B, - 0x8A, - 0x8D, - 0x9B, - 0x9A, - 0x9B, - 0x9A, - 0x8A, - 0xA5, - 0xA3, - 0x5B, - 0x5D, - 0x5B, - 0x04, - 0x29, - 0x00, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x1E, - 0x35, - 0x4A, - 0x35, - 0x2A, - 0x1E, - 0x35, - 0x29, - 0x1E, - 0x4A, - 0x29, - 0x29, - 0x4E, - 0x4A, - 0x3C, - 0x5D, - 0x4E, - 0x29, - 0x29, - 0x5D, - 0x29, - 0x5D, - 0x5D, - 0x1B, - 0x10, - 0x4E, - 0x10, - 0x3C, - 0x1E, - 0x16, - 0x0E, - 0x2A, - 0x05, - 0x0B, - 0x06, - 0x03, - 0x00, - 0x03, - 0x03, - 0x06, - 0x0A, - 0x09, - 0x09, - 0x0B, - 0x05, - 0x03, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x94, - 0xFC, - 0xF1, - 0xFC, - 0xD0, - 0xFC, - 0xF1, - 0xBD, - 0xA8, - 0x7A, - 0xA9, - 0xBE, - 0xD0, - 0xFC, - 0xF1, - 0xFC, - 0xC0, - 0xF1, - 0xBE, - 0xC0, - 0xD0, - 0x89, - 0xBD, - 0xBD, - 0x96, - 0x96, - 0xD0, - 0xFC, - 0xFC, - 0xBD, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xD0, - 0xFC, - 0xF1, - 0x96, - 0x7A, - 0x89, - 0x96, - 0xF1, - 0xA8, - 0x7A, - 0xA8, - 0x96, - 0xA8, - 0xD0, - 0x96, - 0xA9, - 0xF1, - 0xA9, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xFC, - 0xF1, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xF1, - 0xC0, - 0x96, - 0x09, - 0x09, - 0x0E, - 0x09, - 0x09, - 0x0B, - 0x06, - 0x0D, - 0x5C, - 0x85, - 0x68, - 0x68, - 0x74, - 0x77, - 0x87, - 0x92, - 0x77, - 0x87, - 0x72, - 0x87, - 0x88, - 0x91, - 0x7E, - 0x93, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x90, - 0x9D, - 0xAD, - 0xAD, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0x87, - 0x92, - 0x83, - 0x73, - 0x73, - 0x73, - 0x74, - 0x69, - 0x99, - 0x3E, - 0x4F, - 0x33, - 0x21, - 0x23, - 0x40, - 0x20, - 0x23, - 0x20, - 0x30, - 0x42, - 0x45, - 0x07, - 0x02, - 0x02, - 0x18, - 0x25, - 0x40, - 0x8D, - 0xF2, - 0xF8, - 0xFB, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF2, - 0xCF, - 0xF8, - 0xF8, - 0xCF, - 0xF8, - 0xCF, - 0xF8, - 0xD3, - 0xD1, - 0xF2, - 0x06, - 0xCF, - 0x04, - 0xD3, - 0x01, - 0xF2, - 0x04, - 0xD3, - 0x00, - 0x0C, - 0xD9, - 0xD9, - 0xD3, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0x07, - 0xD9, - 0x00, - 0x1E, - 0xD4, - 0xC3, - 0xD4, - 0xC3, - 0xD9, - 0xD4, - 0xD4, - 0xD4, - 0xD9, - 0xD4, - 0xE3, - 0xD4, - 0xD4, - 0xD9, - 0xE3, - 0xE4, - 0xD9, - 0xD4, - 0xC3, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x05, - 0x78, - 0x8C, - 0x6D, - 0x80, - 0x8F, - 0x00, - 0x04, - 0x80, - 0x01, - 0x8C, - 0x05, - 0x80, - 0x00, - 0xF6, - 0x7F, - 0x80, - 0x7F, - 0x80, - 0x7F, - 0x8A, - 0x80, - 0x80, - 0x8A, - 0x80, - 0x9B, - 0x80, - 0x80, - 0x7F, - 0x9B, - 0x8A, - 0x80, - 0x8A, - 0x7F, - 0x7F, - 0x8A, - 0x8A, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x9B, - 0x9A, - 0x9A, - 0x96, - 0x5D, - 0x5D, - 0x65, - 0x3C, - 0x29, - 0x3C, - 0x2A, - 0x1E, - 0x39, - 0x1E, - 0x2A, - 0x6C, - 0x5B, - 0x39, - 0x29, - 0x29, - 0x16, - 0x10, - 0x5D, - 0x5B, - 0x5D, - 0x10, - 0x3C, - 0x35, - 0x4E, - 0x4E, - 0x3C, - 0x5D, - 0x5D, - 0x5D, - 0x5B, - 0x3C, - 0x5D, - 0x5D, - 0x1B, - 0x35, - 0x1B, - 0x10, - 0x3C, - 0x10, - 0x09, - 0x14, - 0x11, - 0x0B, - 0x19, - 0x0B, - 0x06, - 0x03, - 0x03, - 0x06, - 0x06, - 0x03, - 0x06, - 0x06, - 0x03, - 0x11, - 0x6D, - 0x6C, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xFC, - 0xFF, - 0xC0, - 0x96, - 0xF1, - 0xD0, - 0xA9, - 0x7A, - 0xAF, - 0xBE, - 0xD0, - 0xE8, - 0xD0, - 0xF1, - 0xFC, - 0xFC, - 0xBD, - 0xD0, - 0xF1, - 0xF1, - 0xA8, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xD0, - 0xD0, - 0xFF, - 0xA9, - 0xFF, - 0xF1, - 0xD0, - 0xC0, - 0xBD, - 0xD0, - 0x96, - 0xD0, - 0xD0, - 0xC0, - 0xC0, - 0xA8, - 0xFF, - 0xA8, - 0x96, - 0xC0, - 0xA9, - 0x96, - 0xFC, - 0xD0, - 0xA9, - 0xF1, - 0xA9, - 0xA9, - 0xFC, - 0xA9, - 0xA9, - 0xFF, - 0xFC, - 0xBD, - 0xD0, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xFC, - 0xD0, - 0x6F, - 0x05, - 0x19, - 0x11, - 0x12, - 0x0D, - 0x0D, - 0x15, - 0x46, - 0x88, - 0x88, - 0x72, - 0x74, - 0x72, - 0x87, - 0x77, - 0x77, - 0x72, - 0x77, - 0x87, - 0x93, - 0x91, - 0x9E, - 0x93, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x93, - 0xA0, - 0x92, - 0xA0, - 0x7E, - 0x74, - 0xA2, - 0x64, - 0x82, - 0x67, - 0x4A, - 0x4C, - 0x52, - 0x23, - 0x21, - 0x23, - 0x23, - 0x23, - 0x44, - 0x20, - 0x42, - 0x40, - 0x00, - 0x02, - 0x07, - 0x20, - 0x25, - 0x7B, - 0xF8, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF8, - 0xF2, - 0xD1, - 0xF8, - 0xF8, - 0xF8, - 0xCF, - 0xF8, - 0xCF, - 0xCF, - 0xF8, - 0xCF, - 0xCF, - 0xD1, - 0xD3, - 0xF8, - 0xCF, - 0xF2, - 0xF2, - 0x04, - 0xCF, - 0x08, - 0xD3, - 0x00, - 0x0A, - 0xD9, - 0xD3, - 0xD3, - 0xD3, - 0xD9, - 0xD9, - 0xD3, - 0xCC, - 0xD9, - 0xD3, - 0x0A, - 0xD9, - 0x01, - 0xD4, - 0x01, - 0xE3, - 0x04, - 0xD9, - 0x00, - 0x15, - 0xE3, - 0xD9, - 0xD4, - 0xD9, - 0xE4, - 0xE3, - 0xC3, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE4, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x82, - 0x80, - 0x82, - 0x80, - 0x6D, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x00, - 0x06, - 0x80, - 0x01, - 0x8A, - 0x04, - 0x80, - 0x00, - 0x08, - 0x7F, - 0x8A, - 0x8A, - 0x78, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x04, - 0x8A, - 0x00, - 0x45, - 0x9B, - 0x8A, - 0x8A, - 0x9B, - 0x9B, - 0x8A, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0xA3, - 0x5D, - 0x3C, - 0x71, - 0x4E, - 0x29, - 0x35, - 0x29, - 0x29, - 0x16, - 0x16, - 0x29, - 0x5B, - 0x5D, - 0x35, - 0x29, - 0x1E, - 0x35, - 0x16, - 0x2A, - 0x3C, - 0x01, - 0x3C, - 0x1B, - 0x4E, - 0x86, - 0x65, - 0x6C, - 0x5D, - 0x5D, - 0x3C, - 0x5D, - 0x29, - 0x4A, - 0x35, - 0x35, - 0x10, - 0x35, - 0x10, - 0x10, - 0x10, - 0x14, - 0x05, - 0x19, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x06, - 0x05, - 0x03, - 0x06, - 0x06, - 0x03, - 0x00, - 0x06, - 0x7F, - 0x86, - 0xE8, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x0F, - 0xFC, - 0xC0, - 0x96, - 0x6F, - 0x7A, - 0x6D, - 0x89, - 0x89, - 0xC0, - 0xD0, - 0xF1, - 0xFC, - 0xE8, - 0xFC, - 0xA8, - 0x00, - 0x04, - 0xFC, - 0x00, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x89, - 0xD0, - 0xA9, - 0xBD, - 0xFC, - 0xD0, - 0xA9, - 0xBD, - 0xD0, - 0xC0, - 0xF1, - 0xFC, - 0xBD, - 0xF1, - 0xF1, - 0xBD, - 0xA8, - 0x96, - 0xFC, - 0xC0, - 0x96, - 0xBD, - 0xC0, - 0x96, - 0xFC, - 0xE8, - 0xA9, - 0xFC, - 0xF1, - 0xA9, - 0xFC, - 0xFC, - 0xA9, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xFF, - 0xA9, - 0xFC, - 0xD0, - 0x39, - 0x0D, - 0x0D, - 0x12, - 0x15, - 0x26, - 0x24, - 0x24, - 0x77, - 0x7E, - 0x68, - 0x72, - 0x72, - 0x77, - 0x83, - 0x74, - 0x7E, - 0x74, - 0x87, - 0x88, - 0x93, - 0x85, - 0x93, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x91, - 0x87, - 0x87, - 0x83, - 0x83, - 0xA2, - 0x69, - 0x69, - 0x5C, - 0x64, - 0x4C, - 0x67, - 0x21, - 0x21, - 0x23, - 0x33, - 0x23, - 0x23, - 0x38, - 0x27, - 0x30, - 0x42, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x27, - 0x52, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0x00, - 0x06, - 0xF8, - 0x00, - 0x0D, - 0xCF, - 0xCF, - 0xF8, - 0xD1, - 0xD1, - 0xF8, - 0xD1, - 0xCF, - 0xF8, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x05, - 0xF2, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0x00, - 0x05, - 0xD3, - 0x01, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x0C, - 0xCC, - 0xD9, - 0xD9, - 0xD3, - 0xD9, - 0xD9, - 0xCC, - 0xD9, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0x07, - 0xD9, - 0x00, - 0x17, - 0xD4, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xD4, - 0xE3, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x80, - 0x80, - 0x82, - 0x6D, - 0x82, - 0x8F, - 0x80, - 0x80, - 0x80, - 0x8C, - 0x06, - 0x80, - 0x00, - 0x9E, - 0x7F, - 0x80, - 0x80, - 0x7F, - 0x80, - 0x8A, - 0x7F, - 0x80, - 0x80, - 0x8A, - 0x7F, - 0x80, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x7F, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x9A, - 0x8A, - 0x9B, - 0xA5, - 0x84, - 0x86, - 0x5D, - 0x4E, - 0x71, - 0x4E, - 0x3C, - 0x3C, - 0x29, - 0x16, - 0x14, - 0x16, - 0x39, - 0x29, - 0x5B, - 0x35, - 0x22, - 0x29, - 0x35, - 0x10, - 0x16, - 0x10, - 0x6C, - 0x29, - 0x3C, - 0x6C, - 0x4E, - 0x29, - 0x16, - 0x10, - 0x16, - 0x35, - 0x3C, - 0x1B, - 0x29, - 0x10, - 0x10, - 0x1B, - 0x3C, - 0x10, - 0x29, - 0x10, - 0x0B, - 0x1C, - 0x1C, - 0x14, - 0x0F, - 0x0A, - 0x19, - 0x19, - 0x19, - 0x0A, - 0x0B, - 0x06, - 0x03, - 0x03, - 0x84, - 0xAF, - 0xA9, - 0xBE, - 0x7A, - 0x89, - 0xFF, - 0xFF, - 0xF1, - 0xA9, - 0xA3, - 0x6F, - 0x57, - 0x60, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xE8, - 0xFC, - 0xBD, - 0xFC, - 0xC0, - 0xFC, - 0xD0, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xD0, - 0xD0, - 0xD0, - 0xBD, - 0xA9, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0xBD, - 0xA8, - 0xD0, - 0xBD, - 0xF1, - 0xFC, - 0xA9, - 0xF1, - 0xBD, - 0xBD, - 0xC0, - 0xD0, - 0xF1, - 0x96, - 0xBD, - 0xF1, - 0xA9, - 0xA9, - 0xFF, - 0xA9, - 0xF1, - 0xF1, - 0xFC, - 0xA9, - 0xFC, - 0xA9, - 0xA9, - 0xFF, - 0xF1, - 0xA9, - 0xD0, - 0x89, - 0xF1, - 0xD0, - 0xFC, - 0xA9, - 0x0D, - 0x05, - 0x15, - 0x00, - 0x10, - 0x36, - 0x77, - 0x75, - 0x72, - 0x87, - 0x72, - 0x7E, - 0x7E, - 0x77, - 0x87, - 0x72, - 0x7E, - 0x87, - 0x91, - 0x7C, - 0x93, - 0x04, - 0x9D, - 0x00, - 0x26, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x8B, - 0x90, - 0x9E, - 0xB4, - 0x92, - 0x92, - 0x74, - 0x83, - 0x83, - 0xB6, - 0x99, - 0x56, - 0x07, - 0x40, - 0x52, - 0x33, - 0x13, - 0x18, - 0x20, - 0x42, - 0x38, - 0x42, - 0x38, - 0x23, - 0x00, - 0x02, - 0x08, - 0x2E, - 0x44, - 0xE3, - 0xFD, - 0x05, - 0xF8, - 0x00, - 0x0F, - 0xD1, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xD1, - 0xF8, - 0xF8, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xF8, - 0x00, - 0x04, - 0xCF, - 0x01, - 0xD1, - 0x06, - 0xCF, - 0x00, - 0x16, - 0xD3, - 0xCF, - 0xD3, - 0xD3, - 0xD3, - 0xCF, - 0xD3, - 0xD3, - 0xD3, - 0xD9, - 0xD3, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0x05, - 0xD9, - 0x00, - 0x19, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xD9, - 0xE3, - 0xC3, - 0xD4, - 0xD9, - 0xE4, - 0xC3, - 0xD4, - 0xC3, - 0xE3, - 0xD4, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x82, - 0x8C, - 0x80, - 0x8F, - 0x80, - 0x80, - 0x80, - 0x8C, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x8A, - 0x80, - 0x80, - 0x8A, - 0x80, - 0x80, - 0x8C, - 0x7F, - 0x80, - 0x80, - 0x9B, - 0x8A, - 0x9B, - 0x80, - 0x8A, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x8A, - 0x8A, - 0x7F, - 0x9B, - 0x8A, - 0x8A, - 0x9A, - 0x8A, - 0x9A, - 0x71, - 0x5D, - 0x5D, - 0x65, - 0x4E, - 0x3C, - 0x1B, - 0x4E, - 0x35, - 0x35, - 0x1B, - 0x35, - 0x4E, - 0x5B, - 0x4E, - 0x39, - 0x1E, - 0x4A, - 0x35, - 0x10, - 0x10, - 0x29, - 0x5B, - 0x4A, - 0x3C, - 0x2A, - 0x16, - 0x10, - 0x16, - 0x35, - 0x71, - 0x5D, - 0x2A, - 0x3C, - 0x1B, - 0x3C, - 0x3C, - 0x7B, - 0x5B, - 0x3C, - 0x35, - 0x29, - 0x2A, - 0x0E, - 0x19, - 0x0F, - 0x11, - 0x19, - 0x11, - 0x1F, - 0x0F, - 0x0A, - 0x06, - 0x03, - 0x05, - 0xC0, - 0xD0, - 0x89, - 0xD0, - 0xA9, - 0xA9, - 0x89, - 0x7A, - 0x6D, - 0x6D, - 0x73, - 0x6D, - 0xA9, - 0xA9, - 0xC6, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0xD0, - 0xC0, - 0xAF, - 0xFC, - 0xFC, - 0xD0, - 0xA8, - 0xF1, - 0xFC, - 0xA9, - 0xFC, - 0xBD, - 0xF1, - 0xF1, - 0xBD, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xA9, - 0xBD, - 0xD0, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xA9, - 0xF1, - 0x96, - 0xA8, - 0xBD, - 0xFC, - 0xF1, - 0xD0, - 0xD0, - 0xC0, - 0xD0, - 0xFF, - 0xF1, - 0xA9, - 0xFC, - 0xF1, - 0xD0, - 0xD0, - 0xF1, - 0xF1, - 0xF1, - 0xFF, - 0xFC, - 0xA9, - 0x7A, - 0x89, - 0xA9, - 0xD0, - 0x6D, - 0x15, - 0x15, - 0x15, - 0x24, - 0x36, - 0x36, - 0x61, - 0x72, - 0x68, - 0x68, - 0x68, - 0x72, - 0x7E, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x88, - 0x85, - 0x8B, - 0x93, - 0x8B, - 0x00, - 0x07, - 0x9D, - 0x00, - 0x21, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xAD, - 0xB7, - 0xAD, - 0x91, - 0x87, - 0x83, - 0x83, - 0xA2, - 0x56, - 0x24, - 0x26, - 0x67, - 0x67, - 0x4E, - 0x2A, - 0x22, - 0x13, - 0x2E, - 0x38, - 0x45, - 0x42, - 0x38, - 0x38, - 0x23, - 0x00, - 0x02, - 0x18, - 0x38, - 0xB1, - 0x00, - 0x0A, - 0xF8, - 0x00, - 0x1E, - 0xD1, - 0xCF, - 0xF3, - 0xF8, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xF8, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0x08, - 0xD3, - 0x00, - 0x0A, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0x07, - 0xD9, - 0x00, - 0x0B, - 0xD4, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xD4, - 0xD9, - 0x00, - 0x04, - 0xE3, - 0x00, - 0x05, - 0xD4, - 0xE4, - 0xC3, - 0xE3, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x8C, - 0x8C, - 0x00, - 0x07, - 0x80, - 0x00, - 0xD6, - 0x8A, - 0x80, - 0x78, - 0x8A, - 0x8A, - 0x80, - 0x9B, - 0x80, - 0x8A, - 0x80, - 0x80, - 0x8A, - 0x8A, - 0x7F, - 0x80, - 0x8A, - 0x9B, - 0x80, - 0x8A, - 0x9B, - 0x9B, - 0xA5, - 0x8A, - 0xA5, - 0x86, - 0x5D, - 0x71, - 0x7B, - 0x3C, - 0x35, - 0x29, - 0x29, - 0x35, - 0x16, - 0x2A, - 0x4A, - 0x4A, - 0x3C, - 0x5B, - 0x3C, - 0x29, - 0x39, - 0x16, - 0x16, - 0x1E, - 0x29, - 0x1B, - 0x4A, - 0x16, - 0x10, - 0x35, - 0x4E, - 0x35, - 0x5D, - 0x71, - 0x4E, - 0x3C, - 0x3C, - 0x3C, - 0x35, - 0x86, - 0x71, - 0x5D, - 0x3C, - 0x35, - 0x35, - 0x0E, - 0x0E, - 0x09, - 0x19, - 0x19, - 0x1F, - 0x32, - 0x14, - 0x19, - 0x09, - 0x06, - 0x03, - 0x00, - 0x6C, - 0xF1, - 0xBD, - 0x89, - 0xF1, - 0xF1, - 0xFC, - 0xD8, - 0x7A, - 0x89, - 0x89, - 0xD8, - 0xA9, - 0xC0, - 0xFC, - 0xF1, - 0xA9, - 0xC0, - 0xF1, - 0xC0, - 0x96, - 0xFA, - 0xE8, - 0xFC, - 0xD0, - 0xBD, - 0xFC, - 0xD0, - 0xA9, - 0xD0, - 0xBD, - 0x96, - 0xF1, - 0xD0, - 0xF1, - 0xFC, - 0xBD, - 0xF1, - 0xD0, - 0xA9, - 0x96, - 0xBD, - 0xC0, - 0xF1, - 0xF1, - 0xA9, - 0xFC, - 0xD0, - 0xA9, - 0x89, - 0xFC, - 0xF1, - 0xD0, - 0xE8, - 0x96, - 0x96, - 0xF1, - 0xFC, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xA9, - 0xFC, - 0xFC, - 0xF1, - 0x7A, - 0x6F, - 0x62, - 0x7A, - 0x62, - 0x15, - 0x15, - 0x15, - 0x36, - 0x51, - 0x5E, - 0x72, - 0x77, - 0x5E, - 0x72, - 0x68, - 0x83, - 0x77, - 0x75, - 0x72, - 0x6A, - 0x75, - 0x75, - 0x85, - 0x85, - 0x8B, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0x90, - 0x93, - 0x93, - 0xA4, - 0x92, - 0x83, - 0x74, - 0x74, - 0xAC, - 0x36, - 0x5C, - 0x70, - 0x26, - 0x2F, - 0x33, - 0x23, - 0x2E, - 0x3D, - 0x42, - 0x42, - 0x45, - 0x38, - 0x20, - 0x23, - 0x02, - 0x08, - 0x2E, - 0x7B, - 0x06, - 0xF8, - 0x00, - 0x16, - 0xF3, - 0xF3, - 0xF8, - 0xF8, - 0xF8, - 0xD1, - 0xF8, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xF3, - 0xD1, - 0xF8, - 0xF8, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0x07, - 0xCF, - 0x00, - 0x06, - 0xC7, - 0xCF, - 0xCF, - 0xD3, - 0xCF, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x0E, - 0xCC, - 0xD3, - 0xCC, - 0xD3, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xCC, - 0x08, - 0xD9, - 0x00, - 0x13, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xE4, - 0xD9, - 0xE3, - 0xD9, - 0xD4, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0x6D, - 0x95, - 0x80, - 0x82, - 0x80, - 0x80, - 0x8F, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x7F, - 0x80, - 0x80, - 0x8A, - 0x80, - 0x7F, - 0x8C, - 0x9B, - 0x80, - 0x80, - 0x9B, - 0x7F, - 0x8C, - 0x8A, - 0x9B, - 0x80, - 0x9B, - 0x9B, - 0x7F, - 0x9B, - 0x9B, - 0x8A, - 0x9B, - 0x9B, - 0x8A, - 0x8A, - 0x9B, - 0x9B, - 0x9A, - 0xA3, - 0x5D, - 0x5D, - 0x65, - 0x31, - 0x39, - 0x3C, - 0x29, - 0x29, - 0x10, - 0x2A, - 0x4E, - 0x29, - 0x3C, - 0x5D, - 0x4E, - 0x29, - 0x1E, - 0x1E, - 0x1E, - 0x29, - 0x1E, - 0x0E, - 0x0E, - 0x0E, - 0x1B, - 0x29, - 0x4A, - 0x3C, - 0x5D, - 0x5B, - 0x29, - 0x3C, - 0x3C, - 0x1B, - 0x3C, - 0x5D, - 0x5D, - 0x35, - 0x1C, - 0x14, - 0x0F, - 0x14, - 0x0F, - 0x05, - 0x14, - 0x0B, - 0x19, - 0x32, - 0x1C, - 0x19, - 0x12, - 0x06, - 0x03, - 0x32, - 0x32, - 0xA5, - 0xD0, - 0xA9, - 0xA9, - 0x7A, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x57, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xC0, - 0xF1, - 0xF1, - 0xF1, - 0x7A, - 0xD0, - 0xE8, - 0xFF, - 0xD0, - 0xC0, - 0xBD, - 0xF1, - 0xFF, - 0xD0, - 0xF1, - 0xF1, - 0x96, - 0xF1, - 0xBD, - 0xD0, - 0xD0, - 0x96, - 0xF1, - 0xFC, - 0xBD, - 0xA9, - 0x96, - 0xBD, - 0xBD, - 0xF1, - 0xA9, - 0xFC, - 0xF1, - 0xC0, - 0xBD, - 0x96, - 0xFC, - 0xD0, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0xF1, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xF1, - 0xD0, - 0xF1, - 0x89, - 0x62, - 0x57, - 0x15, - 0x36, - 0x15, - 0x0D, - 0x15, - 0x51, - 0x51, - 0x6E, - 0x6A, - 0x61, - 0x72, - 0x6A, - 0x72, - 0x6A, - 0x6E, - 0x6E, - 0x75, - 0x75, - 0x85, - 0x7E, - 0x8B, - 0x88, - 0x93, - 0x8B, - 0x93, - 0x00, - 0x04, - 0x90, - 0x01, - 0x9D, - 0x06, - 0x90, - 0x00, - 0x1A, - 0xA4, - 0xA4, - 0xAD, - 0xA0, - 0x83, - 0x83, - 0x83, - 0x64, - 0x49, - 0x28, - 0x0D, - 0x70, - 0x12, - 0x23, - 0x23, - 0x23, - 0x42, - 0x58, - 0x45, - 0x38, - 0x38, - 0x20, - 0x23, - 0x02, - 0x20, - 0x65, - 0x0A, - 0xF8, - 0x00, - 0x0B, - 0xD1, - 0xD1, - 0xF3, - 0xD1, - 0xF8, - 0xCF, - 0xF3, - 0xD1, - 0xF3, - 0xCF, - 0xBF, - 0x00, - 0x07, - 0xD1, - 0x00, - 0x07, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xC7, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x07, - 0xC5, - 0xCF, - 0xD3, - 0xC5, - 0xCF, - 0xD3, - 0xCF, - 0x00, - 0x05, - 0xD3, - 0x00, - 0x0F, - 0xD9, - 0xD3, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xD9, - 0xCA, - 0x00, - 0x06, - 0xD9, - 0x00, - 0x0E, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xC3, - 0xD9, - 0xC3, - 0xE3, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x13, - 0x82, - 0x82, - 0x80, - 0x8C, - 0x82, - 0x80, - 0x8F, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x80, - 0x9B, - 0x00, - 0x04, - 0x80, - 0x00, - 0x0F, - 0x8A, - 0x80, - 0x8A, - 0x80, - 0x8A, - 0x80, - 0x9B, - 0x8A, - 0x80, - 0x9B, - 0x8A, - 0x8C, - 0x80, - 0x9B, - 0x8A, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x9B, - 0xA5, - 0x9B, - 0xA3, - 0x65, - 0x71, - 0x7B, - 0x4E, - 0x3C, - 0x29, - 0x3C, - 0x35, - 0x1E, - 0x35, - 0x4A, - 0x29, - 0x35, - 0x71, - 0x5D, - 0x4A, - 0x4E, - 0x10, - 0x5D, - 0x71, - 0x1B, - 0x10, - 0x29, - 0x16, - 0x71, - 0x5D, - 0x7B, - 0x71, - 0x71, - 0x5D, - 0x3C, - 0x3C, - 0x29, - 0x1B, - 0x65, - 0x5D, - 0x3C, - 0x35, - 0x35, - 0x11, - 0x10, - 0x11, - 0x09, - 0x0B, - 0x09, - 0x12, - 0x22, - 0x4C, - 0x39, - 0x19, - 0x1C, - 0x06, - 0x1F, - 0x57, - 0x4A, - 0x51, - 0x6D, - 0xC6, - 0xA9, - 0xF1, - 0xFF, - 0xFF, - 0xF1, - 0xFC, - 0xFF, - 0xFF, - 0xFC, - 0xFC, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0x96, - 0xA9, - 0xF1, - 0xD0, - 0xBD, - 0x96, - 0xA8, - 0x89, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xD0, - 0xA8, - 0x89, - 0xF1, - 0xD0, - 0xBD, - 0xA8, - 0xA9, - 0xD0, - 0xFC, - 0xBD, - 0xA9, - 0xBD, - 0xC0, - 0xF1, - 0x89, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xA9, - 0x89, - 0xA9, - 0xF1, - 0xA9, - 0x89, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xD0, - 0xD0, - 0xA9, - 0x57, - 0x1F, - 0x36, - 0x15, - 0x15, - 0x15, - 0x24, - 0x51, - 0x77, - 0x5E, - 0x88, - 0x6A, - 0x5E, - 0x87, - 0x6E, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x7C, - 0x7C, - 0x6E, - 0x7C, - 0x75, - 0x7C, - 0x6A, - 0x61, - 0x6E, - 0x7C, - 0x00, - 0x06, - 0x8B, - 0x00, - 0x1D, - 0xA4, - 0x90, - 0xA4, - 0xA4, - 0xA4, - 0x92, - 0x83, - 0x87, - 0x74, - 0x69, - 0x83, - 0x64, - 0x36, - 0x41, - 0x41, - 0x2F, - 0x33, - 0x44, - 0x42, - 0x38, - 0x54, - 0x42, - 0x45, - 0x38, - 0x38, - 0x20, - 0x08, - 0x13, - 0x7B, - 0x00, - 0x08, - 0xF8, - 0x00, - 0x0E, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xD1, - 0xF8, - 0xF3, - 0xD1, - 0xF3, - 0xD1, - 0xF8, - 0xD1, - 0xD1, - 0xF3, - 0x07, - 0xD1, - 0x00, - 0x08, - 0xCF, - 0xCF, - 0xD1, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0x09, - 0xCF, - 0x00, - 0x13, - 0xD3, - 0xCF, - 0xD3, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD3, - 0xCC, - 0xD9, - 0xD3, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xD3, - 0x05, - 0xD9, - 0x00, - 0x0D, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xC3, - 0xE3, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xD9, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x8C, - 0x8C, - 0x82, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x82, - 0x8C, - 0x80, - 0x82, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x05, - 0x80, - 0x00, - 0xD2, - 0x9B, - 0x80, - 0x80, - 0x9B, - 0x80, - 0x9B, - 0x80, - 0x9B, - 0x80, - 0x7F, - 0x9B, - 0x80, - 0x9B, - 0x8A, - 0x9B, - 0x80, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x8A, - 0x9B, - 0x8A, - 0x97, - 0xA3, - 0x5D, - 0x65, - 0x5D, - 0x3C, - 0x3C, - 0x1B, - 0x29, - 0x3C, - 0x39, - 0x3C, - 0x35, - 0x4A, - 0x71, - 0x5D, - 0x1B, - 0x4E, - 0x3C, - 0x3C, - 0x3C, - 0x16, - 0x2A, - 0x16, - 0x5B, - 0x4E, - 0x6C, - 0x5D, - 0x4E, - 0x5D, - 0x1B, - 0x4A, - 0x4E, - 0x10, - 0x4E, - 0x4A, - 0x1E, - 0x29, - 0x1E, - 0x10, - 0x10, - 0x1E, - 0x1E, - 0x09, - 0x05, - 0x0B, - 0x09, - 0x11, - 0x39, - 0x32, - 0x14, - 0x4D, - 0x89, - 0x6D, - 0x7A, - 0x62, - 0x57, - 0x57, - 0x7A, - 0xD0, - 0xD0, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xFF, - 0xF1, - 0xA9, - 0x7A, - 0x7A, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0xBD, - 0xBE, - 0xD0, - 0xFC, - 0xBD, - 0xBD, - 0xA9, - 0xC6, - 0xBD, - 0xF1, - 0xFC, - 0xBD, - 0xA9, - 0x7A, - 0xD0, - 0xD0, - 0xBD, - 0xBD, - 0xBD, - 0x96, - 0xA9, - 0xF1, - 0xBD, - 0x96, - 0xA8, - 0xFC, - 0x89, - 0xA9, - 0xD0, - 0xE8, - 0xD0, - 0xE8, - 0xD0, - 0xD0, - 0xFC, - 0xF1, - 0xA9, - 0x89, - 0xFC, - 0xBD, - 0x89, - 0xD0, - 0xFC, - 0xBD, - 0x89, - 0xA9, - 0xD0, - 0xFC, - 0xA9, - 0x6F, - 0x1F, - 0x1F, - 0x09, - 0x15, - 0x0D, - 0x46, - 0x5E, - 0x68, - 0x77, - 0x7E, - 0x68, - 0x61, - 0x75, - 0x6E, - 0x68, - 0x6E, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x85, - 0x75, - 0x6E, - 0x6E, - 0x7C, - 0x7C, - 0x7C, - 0x8B, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x93, - 0x90, - 0x85, - 0x7E, - 0x7E, - 0x72, - 0x83, - 0x74, - 0xA2, - 0x69, - 0x4B, - 0x2D, - 0x4B, - 0x55, - 0x23, - 0x44, - 0x44, - 0x42, - 0x44, - 0x45, - 0x54, - 0x42, - 0x38, - 0x42, - 0x23, - 0x13, - 0x63, - 0x05, - 0xF8, - 0x00, - 0x12, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xD1, - 0xF8, - 0xF3, - 0xF3, - 0xD1, - 0xF3, - 0xF3, - 0xD1, - 0xCB, - 0xD1, - 0xCB, - 0xCF, - 0x06, - 0xD1, - 0x00, - 0x0A, - 0xCF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xD1, - 0xCF, - 0xC7, - 0x05, - 0xCF, - 0x00, - 0x08, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x21, - 0xC5, - 0xD3, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xCC, - 0xD3, - 0xD9, - 0xCC, - 0xCC, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x6D, - 0x9F, - 0x8C, - 0x80, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8C, - 0x80, - 0x05, - 0x8C, - 0x00, - 0x19, - 0x80, - 0x8C, - 0x8A, - 0x80, - 0x80, - 0x8C, - 0x8A, - 0x8A, - 0x8C, - 0x80, - 0x8C, - 0x8A, - 0x9B, - 0x9B, - 0x80, - 0x9B, - 0x8C, - 0x9B, - 0x80, - 0x8A, - 0x9B, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x00, - 0x04, - 0x9B, - 0x00, - 0xBB, - 0xA8, - 0x86, - 0x5D, - 0x7B, - 0x7B, - 0x3C, - 0x3C, - 0x3C, - 0x29, - 0x35, - 0x2A, - 0x35, - 0x39, - 0x5D, - 0x65, - 0x86, - 0x29, - 0x5D, - 0x1B, - 0x1B, - 0x5D, - 0x71, - 0x4E, - 0x29, - 0x5D, - 0x39, - 0x4A, - 0x86, - 0x7B, - 0x39, - 0x29, - 0x3C, - 0x3C, - 0x5D, - 0x29, - 0x3C, - 0x29, - 0x3C, - 0x35, - 0x10, - 0x1E, - 0x2A, - 0x39, - 0x11, - 0x05, - 0x06, - 0x09, - 0x0F, - 0x32, - 0x4A, - 0x2A, - 0x76, - 0xA9, - 0x8F, - 0xA9, - 0x89, - 0x62, - 0x6D, - 0x57, - 0x89, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xD0, - 0xD0, - 0xC0, - 0xF1, - 0xA9, - 0xF1, - 0xFC, - 0xE8, - 0xFC, - 0xE8, - 0xBD, - 0xF1, - 0xFC, - 0xA9, - 0xC0, - 0xF1, - 0xD0, - 0xBD, - 0xBD, - 0x89, - 0x7A, - 0xA8, - 0xBD, - 0xBD, - 0xBD, - 0xA9, - 0x89, - 0x96, - 0xFC, - 0x96, - 0x89, - 0xF1, - 0xA9, - 0xBD, - 0xA9, - 0xBD, - 0xA9, - 0xC0, - 0xBD, - 0xA9, - 0xFC, - 0xF1, - 0xA9, - 0x6F, - 0xD0, - 0xF1, - 0x89, - 0xA9, - 0xFF, - 0xA9, - 0x89, - 0x89, - 0xA9, - 0x89, - 0x6D, - 0x32, - 0x0D, - 0x12, - 0x0D, - 0x24, - 0x46, - 0x5E, - 0x6E, - 0x61, - 0x75, - 0x77, - 0x61, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x8B, - 0x85, - 0x8B, - 0x7C, - 0x8B, - 0x6E, - 0x75, - 0x7C, - 0x7C, - 0x8B, - 0x7C, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x90, - 0xAB, - 0xAB, - 0x92, - 0x92, - 0x83, - 0x74, - 0x56, - 0x33, - 0x33, - 0x18, - 0x44, - 0x59, - 0x44, - 0x3D, - 0x58, - 0x3D, - 0x42, - 0x48, - 0x45, - 0x20, - 0x13, - 0x20, - 0xD9, - 0x00, - 0x05, - 0xF8, - 0x00, - 0x11, - 0xF3, - 0xF8, - 0xE7, - 0xF8, - 0xF3, - 0xF3, - 0xF8, - 0xCB, - 0xD1, - 0xF3, - 0xF3, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xF3, - 0x00, - 0x07, - 0xD1, - 0x00, - 0x1B, - 0xBF, - 0xC7, - 0xD1, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xCF, - 0xC5, - 0xD3, - 0xCF, - 0xC5, - 0xC5, - 0x00, - 0x06, - 0xD3, - 0x00, - 0x11, - 0xCC, - 0xD9, - 0xD3, - 0xCC, - 0xD9, - 0xD9, - 0xCC, - 0xCC, - 0xD9, - 0xD9, - 0xCA, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD3, - 0xE3, - 0x00, - 0x0A, - 0xD9, - 0x00, - 0x00, - 0x00, - 0xBA, - 0x8F, - 0x80, - 0x8C, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x82, - 0x8F, - 0x80, - 0x8C, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x9B, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x8A, - 0x8C, - 0x80, - 0x80, - 0x9B, - 0x8C, - 0x8A, - 0x80, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x8A, - 0x8C, - 0x9B, - 0x9B, - 0x9A, - 0xA3, - 0x71, - 0x65, - 0x7B, - 0x3C, - 0x3C, - 0x29, - 0x4E, - 0x1E, - 0x16, - 0x1E, - 0x5D, - 0x3C, - 0x4E, - 0x5D, - 0x4E, - 0x5D, - 0x35, - 0x3C, - 0x4E, - 0x5D, - 0x16, - 0x1B, - 0x1E, - 0x35, - 0x4A, - 0x65, - 0x5B, - 0x7B, - 0x10, - 0x5D, - 0x3C, - 0x3C, - 0x39, - 0x29, - 0x3C, - 0x71, - 0x10, - 0x3C, - 0x39, - 0x16, - 0x0E, - 0x35, - 0x09, - 0x0B, - 0x0B, - 0x0B, - 0x14, - 0x2A, - 0x39, - 0xFC, - 0x89, - 0xD8, - 0xBD, - 0xBE, - 0x6D, - 0xA9, - 0x89, - 0x57, - 0xA9, - 0xF1, - 0xFF, - 0xF1, - 0xD0, - 0xBD, - 0xC0, - 0xFC, - 0xF1, - 0xF1, - 0xF1, - 0xE8, - 0xD0, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xFC, - 0xBD, - 0xE8, - 0xE8, - 0xD0, - 0xA8, - 0xA8, - 0xA8, - 0xC0, - 0xA8, - 0xA8, - 0x6F, - 0x7A, - 0xAF, - 0xA9, - 0xA8, - 0xA8, - 0xA8, - 0x89, - 0xC0, - 0xD0, - 0x86, - 0xD0, - 0xC0, - 0x96, - 0xC0, - 0xA9, - 0x96, - 0x7A, - 0x89, - 0xA9, - 0xD0, - 0xFC, - 0xA9, - 0x89, - 0xA9, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xBD, - 0x89, - 0x32, - 0x12, - 0x12, - 0x0D, - 0x36, - 0x36, - 0x68, - 0x72, - 0x5E, - 0x88, - 0x72, - 0x6A, - 0x61, - 0x6E, - 0x77, - 0x6E, - 0x6A, - 0x75, - 0x7C, - 0x8B, - 0x05, - 0x7C, - 0x00, - 0x0B, - 0x85, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x00, - 0x04, - 0x90, - 0x00, - 0x11, - 0x9E, - 0xA4, - 0x92, - 0x87, - 0x74, - 0x41, - 0x2D, - 0x0A, - 0x33, - 0x23, - 0x23, - 0x2E, - 0x44, - 0x3D, - 0x44, - 0x54, - 0x44, - 0x00, - 0x04, - 0x42, - 0x00, - 0x04, - 0x23, - 0x23, - 0x8D, - 0xF3, - 0x04, - 0xF8, - 0x00, - 0x18, - 0xE7, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF3, - 0xD1, - 0xF3, - 0xD1, - 0xF3, - 0xF3, - 0xD1, - 0xF3, - 0xD1, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xD1, - 0xBF, - 0x06, - 0xD1, - 0x00, - 0x09, - 0xC7, - 0xD1, - 0xCF, - 0xBF, - 0xCF, - 0xCF, - 0xD1, - 0xC7, - 0xC7, - 0x00, - 0x06, - 0xCF, - 0x00, - 0x28, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xC5, - 0xD3, - 0xD3, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xCC, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x8C, - 0x82, - 0x82, - 0x8C, - 0x8F, - 0x80, - 0x8F, - 0x80, - 0x80, - 0x8F, - 0x8C, - 0x8F, - 0x80, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x2C, - 0x80, - 0x8C, - 0x80, - 0x8A, - 0x8C, - 0x80, - 0x80, - 0x8A, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x80, - 0x9B, - 0x8C, - 0x8A, - 0x8A, - 0x8C, - 0x8C, - 0x9B, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0x84, - 0xA3, - 0xA3, - 0x5D, - 0x89, - 0x43, - 0x3C, - 0x35, - 0x3C, - 0x1B, - 0x1B, - 0x29, - 0x4E, - 0x71, - 0x4E, - 0x65, - 0x71, - 0x04, - 0x3C, - 0x00, - 0xAF, - 0x29, - 0x1B, - 0x10, - 0x16, - 0x4A, - 0x4A, - 0x4A, - 0x3C, - 0x5D, - 0x4A, - 0x4E, - 0x71, - 0x71, - 0x5D, - 0x71, - 0x5B, - 0x5D, - 0x5D, - 0x29, - 0x1E, - 0x1E, - 0x29, - 0x09, - 0x0E, - 0x10, - 0x09, - 0x0F, - 0x0F, - 0x2A, - 0x76, - 0xD0, - 0x89, - 0xB1, - 0xA9, - 0xA9, - 0x7A, - 0xFC, - 0xC0, - 0xBD, - 0x6D, - 0x6D, - 0x89, - 0xA9, - 0xF1, - 0xD0, - 0xBD, - 0xFF, - 0xFF, - 0xF1, - 0xD0, - 0xF1, - 0xE8, - 0xFC, - 0xFC, - 0xF1, - 0xC0, - 0x6F, - 0x84, - 0x6F, - 0xA3, - 0x62, - 0x39, - 0x09, - 0x19, - 0x4D, - 0x60, - 0x62, - 0x62, - 0x62, - 0xA8, - 0xBD, - 0xD0, - 0xC0, - 0xBD, - 0x96, - 0x6F, - 0xC0, - 0x7A, - 0x6D, - 0xA8, - 0x7A, - 0xA9, - 0x86, - 0x86, - 0x89, - 0xA9, - 0x96, - 0x7A, - 0xF1, - 0xF1, - 0xA9, - 0x89, - 0xA9, - 0xF1, - 0x89, - 0xD0, - 0x89, - 0xA9, - 0xD0, - 0xBD, - 0x7A, - 0x1F, - 0x0D, - 0x12, - 0x46, - 0x68, - 0x72, - 0x77, - 0x72, - 0x6A, - 0x7E, - 0x77, - 0x6A, - 0x7E, - 0x77, - 0x6E, - 0x7E, - 0x7C, - 0x88, - 0x7C, - 0x8B, - 0x8B, - 0x8B, - 0x85, - 0x8B, - 0x90, - 0x9D, - 0x8B, - 0x8B, - 0x85, - 0x9E, - 0x92, - 0x93, - 0x93, - 0x8B, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA0, - 0x87, - 0x74, - 0x69, - 0x72, - 0x5C, - 0x15, - 0x0B, - 0x40, - 0x2E, - 0x40, - 0x2E, - 0x48, - 0x44, - 0x44, - 0x59, - 0x48, - 0x54, - 0x44, - 0x54, - 0x42, - 0x23, - 0x23, - 0x7B, - 0xF8, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0xE7, - 0x00, - 0x06, - 0xF3, - 0x00, - 0x4A, - 0xD1, - 0xD1, - 0xF3, - 0xD1, - 0xF3, - 0xCB, - 0xBF, - 0xCB, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xC7, - 0xD1, - 0xC5, - 0xD1, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xD1, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xC5, - 0xD9, - 0xC5, - 0xD9, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xC3, - 0xD9, - 0xCC, - 0xD9, - 0xD9, - 0xD9, - 0xD3, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x08, - 0x8F, - 0x80, - 0x80, - 0x8F, - 0x8C, - 0x82, - 0x8C, - 0x82, - 0x06, - 0x8C, - 0x00, - 0x64, - 0x80, - 0x8F, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x9B, - 0x8C, - 0x8C, - 0x8A, - 0x9B, - 0x9B, - 0x80, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0x9B, - 0x8A, - 0x9B, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0xC0, - 0x7B, - 0xA3, - 0xA3, - 0x65, - 0x3C, - 0x4E, - 0x29, - 0x4E, - 0x1B, - 0x5B, - 0x65, - 0x29, - 0x4A, - 0x6F, - 0x5D, - 0x3C, - 0x5D, - 0x3C, - 0x13, - 0x4A, - 0x29, - 0x10, - 0x10, - 0x35, - 0x35, - 0x39, - 0x4A, - 0x5D, - 0x1B, - 0x3C, - 0x5D, - 0x5D, - 0x3C, - 0x3C, - 0x5D, - 0x3C, - 0x4A, - 0x35, - 0x5D, - 0x16, - 0x2A, - 0x35, - 0x1E, - 0x0E, - 0x0B, - 0x0F, - 0x06, - 0x0B, - 0xAF, - 0xD0, - 0xBD, - 0x89, - 0xA9, - 0xA9, - 0xC0, - 0xD0, - 0xFC, - 0xA8, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0xF1, - 0xE8, - 0x04, - 0xC0, - 0x00, - 0x16, - 0xA3, - 0x96, - 0x2A, - 0x0B, - 0x39, - 0x2A, - 0x0B, - 0x00, - 0x03, - 0x05, - 0x05, - 0x03, - 0x09, - 0x2A, - 0x5D, - 0x6F, - 0xC0, - 0x86, - 0xC0, - 0xC0, - 0x6C, - 0x71, - 0x05, - 0x6F, - 0x00, - 0x26, - 0x62, - 0x89, - 0x6F, - 0x7A, - 0x6F, - 0x7A, - 0xA9, - 0x96, - 0xA9, - 0xF1, - 0xD0, - 0x89, - 0x89, - 0xBD, - 0xA9, - 0xFC, - 0xD0, - 0x7A, - 0x7A, - 0xD0, - 0x6F, - 0x10, - 0x36, - 0x4B, - 0x72, - 0x68, - 0x85, - 0x8B, - 0x7E, - 0x72, - 0x75, - 0x77, - 0x6A, - 0x6A, - 0x7E, - 0x88, - 0x8B, - 0x8B, - 0x04, - 0x7C, - 0x00, - 0x32, - 0x85, - 0x90, - 0x9D, - 0x90, - 0x88, - 0x8B, - 0x93, - 0x9E, - 0x8B, - 0x85, - 0x85, - 0x8B, - 0x90, - 0x90, - 0x9D, - 0x93, - 0x93, - 0x74, - 0x74, - 0x74, - 0x83, - 0x74, - 0x5C, - 0x4B, - 0x49, - 0x55, - 0x23, - 0x40, - 0x2E, - 0x44, - 0x44, - 0x44, - 0x42, - 0x42, - 0x3D, - 0x3D, - 0x42, - 0x42, - 0x44, - 0x13, - 0x45, - 0x9B, - 0xF8, - 0xE7, - 0xF8, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0x04, - 0xF3, - 0x00, - 0x0C, - 0xD1, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xD1, - 0xF3, - 0x04, - 0xD1, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x07, - 0xD1, - 0x00, - 0x0D, - 0xCB, - 0xCF, - 0xD1, - 0xC7, - 0xBF, - 0xCF, - 0xCF, - 0xD1, - 0xCF, - 0xC7, - 0xD1, - 0xCF, - 0xC7, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x25, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xD3, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xD9, - 0xC5, - 0xC5, - 0xD3, - 0xCC, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xC3, - 0xD9, - 0xCC, - 0xCC, - 0xC3, - 0xD3, - 0xD9, - 0xD9, - 0xD3, - 0xD9, - 0xD9, - 0xCC, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x8C, - 0x8F, - 0x82, - 0x80, - 0x8C, - 0x82, - 0x80, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x82, - 0x82, - 0x8F, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x9B, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x00, - 0x07, - 0x8C, - 0x00, - 0x03, - 0x80, - 0x9B, - 0x9B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x04, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x04, - 0x9B, - 0x00, - 0x4F, - 0xA3, - 0xA3, - 0x7B, - 0x7B, - 0x7B, - 0x4E, - 0x29, - 0x3C, - 0x29, - 0x3C, - 0x4E, - 0x29, - 0x4A, - 0x4E, - 0x5D, - 0x3C, - 0x7B, - 0x4E, - 0x3C, - 0x3C, - 0x3C, - 0x1B, - 0x10, - 0x0E, - 0x1B, - 0x1E, - 0x29, - 0x3C, - 0x39, - 0x5D, - 0x5D, - 0x65, - 0x5D, - 0x71, - 0x29, - 0x4A, - 0x35, - 0x3C, - 0x1E, - 0x39, - 0x1C, - 0x2A, - 0x35, - 0x0E, - 0x0E, - 0x0E, - 0x09, - 0x09, - 0x6C, - 0xF1, - 0xF1, - 0xA9, - 0x89, - 0xBD, - 0xBD, - 0x89, - 0x7A, - 0xFC, - 0xFC, - 0xD0, - 0xBD, - 0xFC, - 0xFC, - 0xF1, - 0xC0, - 0xF1, - 0xE8, - 0xE8, - 0xE8, - 0x86, - 0xA3, - 0x62, - 0x1C, - 0x1F, - 0x03, - 0x09, - 0x09, - 0x03, - 0x05, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x6C, - 0x09, - 0x06, - 0x06, - 0x0F, - 0x32, - 0x4D, - 0x62, - 0x7A, - 0xC0, - 0x4D, - 0x4D, - 0x32, - 0x11, - 0x32, - 0x4D, - 0x6F, - 0x89, - 0x60, - 0x89, - 0x6F, - 0x60, - 0x6D, - 0x6D, - 0x7A, - 0x89, - 0x7A, - 0xBD, - 0xD0, - 0xBD, - 0x6D, - 0xA9, - 0x96, - 0x89, - 0xBD, - 0x7A, - 0x60, - 0x89, - 0x62, - 0x0D, - 0x51, - 0x72, - 0x87, - 0x88, - 0x88, - 0x75, - 0x75, - 0x77, - 0x6E, - 0x77, - 0x7E, - 0x8B, - 0x8B, - 0x75, - 0x8B, - 0x85, - 0x85, - 0x7C, - 0x75, - 0x8B, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9E, - 0x9E, - 0x91, - 0x91, - 0x9E, - 0x90, - 0x9D, - 0x9D, - 0x9E, - 0x9D, - 0x93, - 0x83, - 0x74, - 0x74, - 0x68, - 0x69, - 0x68, - 0x74, - 0x73, - 0x57, - 0x55, - 0x31, - 0x2E, - 0x44, - 0x3D, - 0x3D, - 0x42, - 0x54, - 0x44, - 0x44, - 0x44, - 0x3D, - 0x42, - 0x20, - 0x2E, - 0x59, - 0xCF, - 0xF8, - 0xF8, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xE7, - 0x07, - 0xF3, - 0x00, - 0x13, - 0xCB, - 0xF3, - 0xD1, - 0xF3, - 0xCB, - 0xF3, - 0xD1, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0x00, - 0x06, - 0xD1, - 0x00, - 0x07, - 0xBF, - 0xD1, - 0xBF, - 0xCF, - 0xBF, - 0xC7, - 0xD1, - 0x00, - 0x06, - 0xC7, - 0x00, - 0x08, - 0xCF, - 0xCF, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xCF, - 0xCF, - 0x04, - 0xC5, - 0x00, - 0x14, - 0xD3, - 0xD3, - 0xD3, - 0xC5, - 0xD3, - 0xCC, - 0xC5, - 0xD9, - 0xC5, - 0xC5, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0xD3, - 0xD3, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0x04, - 0xCC, - 0x00, - 0x03, - 0xD9, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x82, - 0x8C, - 0x80, - 0x95, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x82, - 0x00, - 0x05, - 0x8C, - 0x01, - 0x8F, - 0x04, - 0x8C, - 0x00, - 0x0B, - 0x80, - 0x8C, - 0x9B, - 0x8C, - 0x8C, - 0x8C, - 0x8A, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0xAA, - 0x9B, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0x8F, - 0x9B, - 0x9B, - 0x9A, - 0xE8, - 0x7B, - 0x71, - 0x7B, - 0x5D, - 0x5D, - 0x4A, - 0x3C, - 0x3C, - 0x29, - 0x29, - 0x4A, - 0x29, - 0x3C, - 0x3C, - 0x3C, - 0x4E, - 0x29, - 0x29, - 0x1B, - 0x29, - 0x3C, - 0x5D, - 0x5D, - 0x5B, - 0x65, - 0x4E, - 0x3C, - 0x3C, - 0x1E, - 0x62, - 0x3C, - 0x2A, - 0x4E, - 0x3C, - 0x16, - 0x5D, - 0x29, - 0x1B, - 0x35, - 0x16, - 0x14, - 0x10, - 0x2A, - 0x11, - 0x0E, - 0x1C, - 0xFC, - 0xD0, - 0xF1, - 0xD0, - 0x89, - 0xBD, - 0xF1, - 0xA8, - 0x62, - 0xC0, - 0xF1, - 0xC0, - 0xFC, - 0xF1, - 0xA3, - 0xE8, - 0x86, - 0xC0, - 0x86, - 0x8D, - 0x5B, - 0x32, - 0x06, - 0x00, - 0x0B, - 0x05, - 0x1C, - 0x09, - 0x09, - 0x1C, - 0x11, - 0x0B, - 0x1E, - 0x39, - 0x19, - 0x1F, - 0x5B, - 0x4A, - 0x0E, - 0x05, - 0x09, - 0x5B, - 0x6C, - 0x32, - 0x1C, - 0x05, - 0x06, - 0x05, - 0x05, - 0x03, - 0x05, - 0x29, - 0x32, - 0x4D, - 0x62, - 0x4D, - 0x62, - 0x4D, - 0x60, - 0x4D, - 0x32, - 0x32, - 0x4D, - 0x62, - 0x62, - 0x1F, - 0x4D, - 0x1F, - 0x60, - 0x1F, - 0x4D, - 0x89, - 0x57, - 0x36, - 0x5C, - 0x7E, - 0x75, - 0x85, - 0x75, - 0x85, - 0x77, - 0x77, - 0x88, - 0x88, - 0x85, - 0x90, - 0x85, - 0x93, - 0x9D, - 0x88, - 0x7C, - 0x7C, - 0x8B, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x93, - 0x9D, - 0x9E, - 0x90, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0x91, - 0x83, - 0x83, - 0x06, - 0x74, - 0x00, - 0x1A, - 0xB0, - 0x8E, - 0x4E, - 0x52, - 0x31, - 0x3D, - 0x48, - 0x44, - 0x58, - 0x44, - 0x44, - 0x20, - 0x3D, - 0x42, - 0x38, - 0x48, - 0x63, - 0x65, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0x05, - 0xF3, - 0x00, - 0x07, - 0xCB, - 0xF3, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x0F, - 0xD1, - 0xBF, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xBF, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0x00, - 0x07, - 0xD1, - 0x00, - 0x2E, - 0xC7, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xD9, - 0xC5, - 0xD9, - 0xD9, - 0xC5, - 0xD9, - 0xC5, - 0xCC, - 0xC3, - 0xD3, - 0xD3, - 0xD9, - 0xC5, - 0xCC, - 0xCC, - 0xD9, - 0xD9, - 0xC3, - 0xD3, - 0xD3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x8F, - 0x8F, - 0x8F, - 0x82, - 0x82, - 0x8F, - 0x82, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x04, - 0x8C, - 0x01, - 0x80, - 0x05, - 0x8C, - 0x00, - 0x06, - 0x80, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x04, - 0x8C, - 0x00, - 0xCA, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x8C, - 0xA5, - 0x9B, - 0x8C, - 0xB1, - 0x9B, - 0x79, - 0xE8, - 0xA3, - 0x7B, - 0x7B, - 0x65, - 0x65, - 0x29, - 0x3C, - 0x3C, - 0x29, - 0x3C, - 0x65, - 0x29, - 0x1B, - 0x1B, - 0x1B, - 0x29, - 0x3C, - 0x3C, - 0x3C, - 0x35, - 0x5D, - 0x71, - 0x4E, - 0x4E, - 0x5D, - 0x1B, - 0x5D, - 0x3C, - 0x4A, - 0x5D, - 0x4A, - 0x35, - 0x4A, - 0x4A, - 0x4A, - 0x35, - 0x5D, - 0x3C, - 0x4A, - 0x10, - 0x1E, - 0x11, - 0x1C, - 0x11, - 0x0E, - 0xBE, - 0xD0, - 0xBD, - 0xFC, - 0xFC, - 0xA9, - 0x96, - 0xBD, - 0xE8, - 0xC0, - 0x62, - 0x89, - 0xF1, - 0xE8, - 0x89, - 0xA3, - 0xA3, - 0x62, - 0x6D, - 0x4D, - 0x06, - 0x00, - 0x03, - 0x05, - 0x05, - 0x2A, - 0x5D, - 0x19, - 0x1F, - 0x60, - 0xA3, - 0x7A, - 0x96, - 0x7A, - 0x86, - 0x84, - 0x86, - 0xC0, - 0xA8, - 0x6F, - 0x5B, - 0xBD, - 0x4D, - 0x11, - 0x0F, - 0x16, - 0x09, - 0x09, - 0x11, - 0x05, - 0x05, - 0x05, - 0x03, - 0x05, - 0x03, - 0x0B, - 0x06, - 0x00, - 0x03, - 0x06, - 0x03, - 0x06, - 0x03, - 0x06, - 0x01, - 0x03, - 0x05, - 0x03, - 0x05, - 0x09, - 0x86, - 0x51, - 0x6D, - 0x57, - 0x51, - 0x68, - 0x77, - 0x75, - 0x7C, - 0x6A, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x6E, - 0x93, - 0x75, - 0x7E, - 0x8B, - 0x88, - 0x7C, - 0x7C, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0x93, - 0x91, - 0x9E, - 0x87, - 0x8B, - 0x92, - 0x77, - 0x68, - 0x74, - 0x69, - 0x83, - 0x73, - 0x74, - 0x74, - 0x67, - 0x5B, - 0x21, - 0x31, - 0x2E, - 0x44, - 0x3D, - 0x48, - 0x44, - 0x54, - 0x44, - 0x30, - 0x2E, - 0x2E, - 0x3D, - 0x3D, - 0x42, - 0x42, - 0x65, - 0x9B, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xE7, - 0xF8, - 0x06, - 0xF3, - 0x00, - 0x0C, - 0xE7, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xD1, - 0x04, - 0xCB, - 0x00, - 0x30, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xBF, - 0xC7, - 0xD1, - 0xD1, - 0xC7, - 0xD1, - 0xC5, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xD1, - 0xC5, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xC5, - 0xD3, - 0xD3, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xD3, - 0xCC, - 0xC5, - 0xD9, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0x06, - 0xCC, - 0x00, - 0x08, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xD3, - 0xC3, - 0xCC, - 0x00, - 0x00, - 0x01, - 0x8C, - 0x01, - 0x82, - 0x04, - 0x8C, - 0x00, - 0x13, - 0x8F, - 0x8F, - 0x8C, - 0x82, - 0x8C, - 0x8F, - 0x82, - 0x8C, - 0x8F, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x7E, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0x9B, - 0x8F, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8F, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0xBC, - 0x80, - 0xA3, - 0xE8, - 0x96, - 0xA3, - 0x7B, - 0x5D, - 0x4E, - 0x3C, - 0x3C, - 0x21, - 0x3C, - 0x29, - 0x29, - 0x21, - 0x7B, - 0x7B, - 0x7B, - 0x4E, - 0x3C, - 0x07, - 0x39, - 0x35, - 0x4A, - 0x35, - 0x29, - 0x16, - 0x5D, - 0x86, - 0x3C, - 0x16, - 0x16, - 0x1E, - 0x1E, - 0x3C, - 0x10, - 0x16, - 0x35, - 0x5B, - 0x5D, - 0x1E, - 0x29, - 0x2A, - 0x10, - 0x11, - 0x0F, - 0x11, - 0xF1, - 0xF1, - 0xBD, - 0xD0, - 0xE8, - 0xFC, - 0xC0, - 0x96, - 0xE8, - 0xFC, - 0x96, - 0x4D, - 0x32, - 0x4D, - 0x62, - 0x32, - 0x0F, - 0x12, - 0x03, - 0x00, - 0x0B, - 0x11, - 0x09, - 0x11, - 0x1C, - 0x32, - 0x96, - 0x62, - 0x62, - 0xA8, - 0xF1, - 0xD0, - 0xBD, - 0xF1, - 0x96, - 0x89, - 0x96, - 0xA8, - 0xF1, - 0xC0, - 0x86, - 0xD0, - 0xA8, - 0x86, - 0x7A, - 0xA9, - 0x7A, - 0x4D, - 0x39, - 0x1F, - 0x11, - 0x06, - 0x0B, - 0x06, - 0x09, - 0x06, - 0x05, - 0x09, - 0x05, - 0x06, - 0x06, - 0x09, - 0x09, - 0x05, - 0x05, - 0x00, - 0x58, - 0x0E, - 0x57, - 0x0B, - 0x0D, - 0x57, - 0x57, - 0x73, - 0x6E, - 0x77, - 0x85, - 0x77, - 0x7E, - 0x75, - 0x77, - 0x75, - 0x75, - 0x85, - 0x85, - 0x7E, - 0x75, - 0x91, - 0x93, - 0xA4, - 0xA4, - 0xB7, - 0x9D, - 0x9E, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x7E, - 0x93, - 0x88, - 0x90, - 0x88, - 0x88, - 0x8B, - 0x7E, - 0x83, - 0x77, - 0x74, - 0x74, - 0x74, - 0x69, - 0x69, - 0x69, - 0x70, - 0x29, - 0x55, - 0x40, - 0x40, - 0x3F, - 0x3D, - 0x48, - 0x47, - 0x54, - 0x44, - 0x44, - 0x2E, - 0x2E, - 0x44, - 0x3D, - 0x42, - 0x54, - 0x54, - 0x65, - 0xAE, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xF3, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xC4, - 0xF3, - 0x0F, - 0xCB, - 0x00, - 0x07, - 0xBF, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xCB, - 0x00, - 0x05, - 0xD1, - 0x00, - 0x1F, - 0xBF, - 0xC7, - 0xD1, - 0xC7, - 0xD1, - 0xD1, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xCC, - 0xC5, - 0xD9, - 0x00, - 0x04, - 0xCC, - 0x00, - 0x0A, - 0xC5, - 0xC3, - 0xCC, - 0xCC, - 0xC3, - 0xD3, - 0xC5, - 0xD9, - 0xCC, - 0xCC, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x82, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x82, - 0x8C, - 0x82, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x00, - 0x07, - 0x8C, - 0x00, - 0x03, - 0x9B, - 0x8C, - 0x8F, - 0x00, - 0x06, - 0x8C, - 0x00, - 0x7C, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0x9B, - 0x9B, - 0x9B, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x9B, - 0xA3, - 0xE8, - 0x81, - 0xA3, - 0x96, - 0x43, - 0x5D, - 0x3C, - 0x4E, - 0x4D, - 0x1B, - 0x1B, - 0x35, - 0x6F, - 0x4E, - 0x5D, - 0x29, - 0x1B, - 0x29, - 0x4E, - 0x29, - 0x1B, - 0x3C, - 0x09, - 0x10, - 0x10, - 0x5D, - 0x3C, - 0x65, - 0x29, - 0x3C, - 0x39, - 0x35, - 0x2A, - 0x16, - 0x35, - 0x29, - 0x4A, - 0x35, - 0x29, - 0x1B, - 0x2A, - 0x11, - 0x05, - 0x62, - 0xA9, - 0xF1, - 0xD0, - 0x96, - 0xD0, - 0xC0, - 0xC0, - 0xE8, - 0x86, - 0xA9, - 0xE8, - 0xA3, - 0x96, - 0x4D, - 0x62, - 0x05, - 0x05, - 0x00, - 0x05, - 0x09, - 0x0F, - 0x09, - 0x2A, - 0x62, - 0x60, - 0x60, - 0x6F, - 0x86, - 0x89, - 0x7A, - 0x96, - 0xA8, - 0xF1, - 0xF1, - 0xF1, - 0xFC, - 0xD0, - 0xBD, - 0xA9, - 0xF1, - 0x96, - 0x96, - 0xFC, - 0xF1, - 0xA8, - 0xA9, - 0xC0, - 0x96, - 0x6F, - 0x6F, - 0x6F, - 0x4D, - 0x62, - 0x3C, - 0x11, - 0x11, - 0x11, - 0x09, - 0x09, - 0x09, - 0x0E, - 0x1C, - 0x16, - 0x01, - 0x04, - 0x09, - 0x00, - 0x73, - 0x1C, - 0x1F, - 0x05, - 0x0D, - 0x05, - 0x36, - 0x60, - 0x51, - 0x77, - 0x77, - 0x72, - 0x7E, - 0x91, - 0x9E, - 0x7E, - 0x7E, - 0x77, - 0x72, - 0x77, - 0x8B, - 0x9E, - 0x9E, - 0xB4, - 0xAB, - 0x92, - 0x83, - 0x88, - 0x88, - 0x72, - 0x88, - 0x87, - 0x75, - 0x88, - 0x91, - 0x88, - 0x7E, - 0x93, - 0x88, - 0x87, - 0x87, - 0x87, - 0x74, - 0x83, - 0x73, - 0x69, - 0x69, - 0x74, - 0x64, - 0x41, - 0x67, - 0x4A, - 0x52, - 0x31, - 0x3F, - 0x42, - 0x48, - 0x54, - 0x48, - 0x2E, - 0x2E, - 0x23, - 0x2E, - 0x20, - 0x44, - 0x53, - 0x42, - 0x6B, - 0x82, - 0xF3, - 0xE7, - 0xF8, - 0xF8, - 0xE7, - 0xE7, - 0xF3, - 0xF3, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xE7, - 0xF3, - 0xCB, - 0xF3, - 0xF3, - 0xF3, - 0xC4, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xCB, - 0xCB, - 0xC7, - 0xBF, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0x00, - 0x05, - 0xD1, - 0x00, - 0x29, - 0xB8, - 0xC7, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xCC, - 0xD3, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xCC, - 0xCC, - 0xCF, - 0xD3, - 0xC5, - 0xC5, - 0xD9, - 0xC3, - 0xC5, - 0xCC, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x82, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x0C, - 0x8C, - 0x00, - 0x20, - 0x8F, - 0x9B, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0x8C, - 0x8F, - 0x9B, - 0x8F, - 0xB1, - 0x9B, - 0xBC, - 0x9A, - 0xE8, - 0xFC, - 0x7B, - 0xA3, - 0x65, - 0x31, - 0x39, - 0x4E, - 0x3C, - 0x1B, - 0x29, - 0x4E, - 0x65, - 0x4E, - 0x7B, - 0x04, - 0x3C, - 0x00, - 0x3B, - 0x35, - 0x29, - 0x1B, - 0x16, - 0x16, - 0x1B, - 0x3C, - 0x5B, - 0x35, - 0x3C, - 0x35, - 0x29, - 0x10, - 0x16, - 0x29, - 0x4A, - 0x3C, - 0x4E, - 0x4E, - 0x29, - 0x35, - 0x10, - 0x09, - 0x4A, - 0xD8, - 0xD0, - 0xFF, - 0xD0, - 0x96, - 0xE8, - 0xC0, - 0x86, - 0xA9, - 0xA9, - 0x6F, - 0x62, - 0x6F, - 0x86, - 0x39, - 0x00, - 0x01, - 0x06, - 0x0F, - 0x1F, - 0x6C, - 0x62, - 0x7A, - 0x96, - 0x96, - 0xA8, - 0xC0, - 0x96, - 0xD0, - 0xD0, - 0xA9, - 0x96, - 0x89, - 0x89, - 0x89, - 0x00, - 0x04, - 0xFC, - 0x00, - 0x7D, - 0x96, - 0xC0, - 0xC0, - 0xA9, - 0xD0, - 0xF1, - 0xD0, - 0xFC, - 0xBD, - 0x96, - 0xA8, - 0xC0, - 0x96, - 0x5B, - 0x6F, - 0x6F, - 0x60, - 0x6C, - 0x96, - 0x4D, - 0x39, - 0x62, - 0x32, - 0x19, - 0x09, - 0x10, - 0x39, - 0x39, - 0x0B, - 0x0F, - 0x09, - 0x10, - 0x09, - 0x32, - 0x7A, - 0x8F, - 0x6E, - 0x7C, - 0x7E, - 0x77, - 0x92, - 0x6A, - 0x77, - 0x6A, - 0x68, - 0x7E, - 0x88, - 0x93, - 0x9D, - 0x9D, - 0xA0, - 0xB4, - 0x87, - 0x87, - 0x77, - 0x72, - 0x7E, - 0x68, - 0x7E, - 0x91, - 0x7E, - 0x72, - 0x91, - 0x93, - 0x88, - 0x88, - 0x91, - 0x87, - 0x87, - 0x88, - 0x83, - 0x83, - 0x74, - 0x83, - 0x73, - 0xA2, - 0x99, - 0x5C, - 0x49, - 0x4B, - 0x4A, - 0x40, - 0x48, - 0x48, - 0x48, - 0x54, - 0x44, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x23, - 0x3D, - 0x45, - 0x54, - 0x58, - 0x55, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0xE7, - 0xF8, - 0xF8, - 0xE7, - 0xE7, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xE7, - 0xE7, - 0xE7, - 0xF3, - 0xC4, - 0xCB, - 0xE7, - 0xCB, - 0xC4, - 0xF3, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x3A, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xD1, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC1, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xC5, - 0xD9, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xD9, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8C, - 0x95, - 0x8C, - 0x95, - 0x8C, - 0x95, - 0x8C, - 0x00, - 0x06, - 0x8F, - 0x00, - 0x04, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x06, - 0x8C, - 0x00, - 0x09, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0x8C, - 0x8F, - 0x9B, - 0x8F, - 0x9B, - 0x00, - 0x04, - 0x8F, - 0x00, - 0xD7, - 0x9B, - 0x8F, - 0xBC, - 0x8F, - 0x9B, - 0x95, - 0xA5, - 0xE8, - 0x81, - 0x7B, - 0xA3, - 0x65, - 0x4E, - 0x4E, - 0x3C, - 0x29, - 0x29, - 0x3C, - 0x4E, - 0x4E, - 0x5D, - 0x7B, - 0x5D, - 0x21, - 0x65, - 0x29, - 0x29, - 0x29, - 0x4A, - 0x10, - 0x1B, - 0x1B, - 0x1B, - 0x22, - 0x29, - 0x29, - 0x65, - 0x3C, - 0x35, - 0x1B, - 0x3C, - 0x35, - 0x35, - 0x4E, - 0x35, - 0x3C, - 0x0E, - 0x0F, - 0x57, - 0xA9, - 0xD0, - 0xA9, - 0xFC, - 0xC0, - 0xC0, - 0xA9, - 0x96, - 0x62, - 0x6F, - 0x4E, - 0x6F, - 0x5B, - 0x39, - 0x1F, - 0x06, - 0x00, - 0x0A, - 0x0A, - 0x5B, - 0x7A, - 0x6F, - 0x62, - 0xA9, - 0xA9, - 0xA8, - 0xA9, - 0xE8, - 0xD0, - 0xA9, - 0xA8, - 0x6F, - 0xA9, - 0xA9, - 0x6D, - 0x60, - 0x96, - 0x89, - 0x96, - 0xA9, - 0x96, - 0x86, - 0xC0, - 0x97, - 0x89, - 0xD0, - 0xA9, - 0xFC, - 0xC0, - 0xA9, - 0x96, - 0xD0, - 0x96, - 0x6D, - 0xBD, - 0xBD, - 0x62, - 0x7A, - 0xA8, - 0x96, - 0x62, - 0x86, - 0x62, - 0x39, - 0x6C, - 0x6F, - 0x4D, - 0x0F, - 0x1C, - 0x0E, - 0x11, - 0x35, - 0x6F, - 0x73, - 0x89, - 0xC9, - 0x87, - 0x83, - 0x83, - 0x77, - 0x72, - 0x72, - 0x77, - 0x77, - 0x7C, - 0x88, - 0x93, - 0x72, - 0x87, - 0xA0, - 0x92, - 0x87, - 0x87, - 0x77, - 0x72, - 0x77, - 0x74, - 0x87, - 0x92, - 0x68, - 0x92, - 0x92, - 0x92, - 0x77, - 0x88, - 0x91, - 0x88, - 0x77, - 0x92, - 0x87, - 0x72, - 0x83, - 0x83, - 0x73, - 0x83, - 0x69, - 0x69, - 0x64, - 0x4C, - 0x3C, - 0x4F, - 0x31, - 0x3F, - 0x50, - 0x3F, - 0x30, - 0x2E, - 0x25, - 0x40, - 0x2E, - 0x23, - 0x2E, - 0x54, - 0x54, - 0x54, - 0x59, - 0xD1, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xE7, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xC4, - 0xF3, - 0xCB, - 0xCB, - 0xE7, - 0xC4, - 0xE7, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xE7, - 0xCB, - 0xC4, - 0xCB, - 0xBF, - 0xE7, - 0x00, - 0x0E, - 0xCB, - 0x00, - 0x19, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xD1, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xC5, - 0xCD, - 0xCF, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x15, - 0xD3, - 0xC5, - 0xCC, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xC3, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xC5, - 0xCC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x95, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x8C, - 0x82, - 0x8C, - 0x82, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0x9B, - 0x9B, - 0x8F, - 0x9B, - 0x8C, - 0x8C, - 0x8F, - 0x9B, - 0x9B, - 0xE8, - 0xE8, - 0xE8, - 0x81, - 0x96, - 0x65, - 0x3C, - 0x3C, - 0x3C, - 0x4E, - 0x10, - 0x3C, - 0x3C, - 0x3C, - 0x5D, - 0x5D, - 0x2A, - 0x4E, - 0x1B, - 0x4E, - 0x1B, - 0x29, - 0x29, - 0x1E, - 0x16, - 0x10, - 0x09, - 0x10, - 0x1B, - 0x35, - 0x4E, - 0x1B, - 0x29, - 0x29, - 0x4E, - 0x1B, - 0x29, - 0x29, - 0x1C, - 0x39, - 0x7A, - 0xA9, - 0xFC, - 0xF1, - 0xD0, - 0xFC, - 0xBD, - 0x86, - 0x6F, - 0xA3, - 0x6F, - 0x05, - 0x11, - 0x11, - 0x4A, - 0x62, - 0x11, - 0x12, - 0x4D, - 0x89, - 0x6C, - 0x97, - 0xD0, - 0xFC, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0x96, - 0x89, - 0x6F, - 0x6D, - 0x39, - 0x62, - 0x4D, - 0x4D, - 0x12, - 0x12, - 0x0A, - 0x0A, - 0x1F, - 0x39, - 0x5B, - 0x6F, - 0x7A, - 0x6F, - 0x62, - 0x62, - 0x60, - 0x96, - 0xA8, - 0x7A, - 0x89, - 0xBD, - 0x96, - 0x86, - 0xA8, - 0xF1, - 0x96, - 0x89, - 0xF1, - 0x7A, - 0x62, - 0xA8, - 0xA8, - 0x89, - 0x7A, - 0x7A, - 0x1F, - 0x39, - 0x6F, - 0x86, - 0x62, - 0x5B, - 0x86, - 0x8F, - 0x7C, - 0x92, - 0x83, - 0x83, - 0x74, - 0x74, - 0x87, - 0x87, - 0x92, - 0x87, - 0x87, - 0x88, - 0x77, - 0xA0, - 0x92, - 0x87, - 0x77, - 0x87, - 0x87, - 0x77, - 0x83, - 0x83, - 0x77, - 0x92, - 0x83, - 0x87, - 0x7E, - 0x77, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x91, - 0x6A, - 0x87, - 0x74, - 0x74, - 0x83, - 0x69, - 0xA2, - 0x5C, - 0x56, - 0x3E, - 0x4F, - 0x4F, - 0x4E, - 0x52, - 0x3F, - 0x2E, - 0x31, - 0x40, - 0x2E, - 0x2E, - 0x21, - 0x23, - 0x2E, - 0x2E, - 0x42, - 0x54, - 0x54, - 0x65, - 0xCF, - 0xE7, - 0xF8, - 0x04, - 0xE7, - 0x00, - 0x10, - 0xF3, - 0xE7, - 0xF3, - 0xE7, - 0xE7, - 0xF3, - 0xE7, - 0xE7, - 0xC4, - 0xF3, - 0xF3, - 0xCB, - 0xCB, - 0xC4, - 0xC4, - 0xF3, - 0x05, - 0xCB, - 0x00, - 0x05, - 0xC4, - 0xCB, - 0xCB, - 0xF3, - 0xBB, - 0x00, - 0x0B, - 0xCB, - 0x00, - 0x33, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xD1, - 0xCB, - 0xBF, - 0xD1, - 0xBF, - 0xC7, - 0xCB, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xD1, - 0xC7, - 0xC7, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xD9, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x00, - 0x0C, - 0x8F, - 0x00, - 0xD7, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x95, - 0x9B, - 0x9B, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x9B, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x8C, - 0xBC, - 0xB1, - 0x8F, - 0x8C, - 0x9B, - 0xE8, - 0xE8, - 0x7B, - 0xA3, - 0x65, - 0x4E, - 0x1B, - 0x4E, - 0x4E, - 0x3C, - 0x3C, - 0x4E, - 0x4E, - 0x3C, - 0x65, - 0x65, - 0x29, - 0x3C, - 0x29, - 0x2A, - 0x5B, - 0x29, - 0x10, - 0x1B, - 0x10, - 0x10, - 0x16, - 0x1B, - 0x29, - 0x29, - 0x35, - 0x35, - 0x3C, - 0x1E, - 0x1B, - 0x35, - 0x10, - 0x4C, - 0xD0, - 0xA9, - 0xF1, - 0xD0, - 0xF1, - 0xA9, - 0xFC, - 0xD0, - 0x96, - 0x86, - 0x86, - 0x05, - 0x09, - 0x11, - 0x0E, - 0x89, - 0x7A, - 0x62, - 0x4D, - 0x86, - 0x96, - 0x89, - 0xF1, - 0xF1, - 0xC0, - 0xFC, - 0xF1, - 0xF1, - 0xC0, - 0x7A, - 0x62, - 0x0F, - 0x06, - 0x03, - 0x03, - 0x03, - 0x06, - 0x00, - 0x01, - 0x03, - 0x05, - 0x05, - 0x11, - 0x4D, - 0x11, - 0x01, - 0x00, - 0x03, - 0x03, - 0x06, - 0x0D, - 0x4D, - 0x60, - 0x62, - 0xA9, - 0x6F, - 0x97, - 0x89, - 0xC0, - 0xA9, - 0x6F, - 0xD0, - 0xD0, - 0x96, - 0x7A, - 0xC0, - 0x6F, - 0xC0, - 0xA9, - 0x6F, - 0x6F, - 0xD0, - 0xF1, - 0x86, - 0x6F, - 0x86, - 0x89, - 0x7C, - 0x92, - 0x83, - 0x73, - 0x83, - 0x87, - 0x87, - 0x87, - 0x7E, - 0x88, - 0x88, - 0x92, - 0x77, - 0x83, - 0x92, - 0x92, - 0x92, - 0x83, - 0x87, - 0x83, - 0x83, - 0x92, - 0x87, - 0x72, - 0x77, - 0x88, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x87, - 0x87, - 0x92, - 0x73, - 0x74, - 0x69, - 0x69, - 0x69, - 0x24, - 0x55, - 0x4F, - 0x55, - 0x4D, - 0x4F, - 0x52, - 0x40, - 0x3A, - 0x52, - 0x23, - 0x40, - 0x21, - 0x23, - 0x23, - 0x23, - 0x2E, - 0x42, - 0x50, - 0x50, - 0x59, - 0x82, - 0xD3, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xE7, - 0xF8, - 0x00, - 0x07, - 0xE7, - 0x00, - 0x10, - 0xCB, - 0xE7, - 0xE7, - 0xC4, - 0xE7, - 0xE7, - 0xC4, - 0xCB, - 0xBB, - 0xC4, - 0xCB, - 0xE7, - 0xCB, - 0xF3, - 0xBB, - 0xC4, - 0x04, - 0xCB, - 0x01, - 0xC4, - 0x0A, - 0xCB, - 0x00, - 0x22, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xCB, - 0xC7, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0xBF, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xCF, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xD3, - 0x05, - 0xC5, - 0x00, - 0x0B, - 0xD3, - 0xCC, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x82, - 0x95, - 0x82, - 0x8F, - 0x8C, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x95, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x95, - 0x8F, - 0x8C, - 0x9B, - 0x95, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0xB1, - 0x8F, - 0x8C, - 0x95, - 0x9B, - 0xBC, - 0x9B, - 0xE8, - 0xE8, - 0x81, - 0xA3, - 0x7B, - 0x43, - 0x62, - 0x3C, - 0x3C, - 0x3C, - 0x4E, - 0x3C, - 0x4E, - 0x5D, - 0x86, - 0x4E, - 0x1B, - 0x1B, - 0x29, - 0x13, - 0x29, - 0x3C, - 0x35, - 0x16, - 0x10, - 0x14, - 0x29, - 0x4A, - 0x4E, - 0x3C, - 0x1B, - 0x35, - 0x3C, - 0x1B, - 0x29, - 0x39, - 0x32, - 0xBD, - 0xF1, - 0xFF, - 0xF1, - 0xF1, - 0xF1, - 0x89, - 0xFC, - 0xF1, - 0xD0, - 0xA8, - 0x16, - 0x05, - 0x1C, - 0x62, - 0x39, - 0x4D, - 0x6F, - 0x6F, - 0x4C, - 0x7A, - 0x8A, - 0x7A, - 0xA8, - 0x96, - 0x97, - 0x89, - 0x6D, - 0x62, - 0x4A, - 0x19, - 0x00, - 0x03, - 0x05, - 0x06, - 0x05, - 0x05, - 0x05, - 0x09, - 0x39, - 0x5D, - 0x4D, - 0x6F, - 0x62, - 0x39, - 0x4D, - 0x32, - 0x19, - 0x0A, - 0x05, - 0x06, - 0x06, - 0x06, - 0x0B, - 0x12, - 0x6D, - 0x62, - 0x62, - 0x89, - 0xA9, - 0xA8, - 0x6F, - 0x96, - 0xD0, - 0xBD, - 0x96, - 0x7A, - 0x89, - 0xA9, - 0xA9, - 0x86, - 0x89, - 0xC0, - 0xFC, - 0xC0, - 0x89, - 0x86, - 0x95, - 0x61, - 0x69, - 0x73, - 0x92, - 0x92, - 0x92, - 0x83, - 0x87, - 0xA0, - 0x87, - 0x92, - 0x77, - 0x92, - 0x68, - 0x87, - 0x83, - 0x92, - 0x83, - 0x83, - 0x87, - 0x83, - 0x87, - 0x83, - 0x87, - 0x92, - 0x91, - 0x92, - 0x91, - 0x87, - 0x87, - 0x87, - 0x92, - 0x88, - 0x74, - 0x74, - 0x83, - 0x69, - 0x64, - 0x4C, - 0x55, - 0x40, - 0x3C, - 0x40, - 0x4F, - 0x40, - 0x31, - 0x40, - 0x3A, - 0x3D, - 0x2E, - 0x44, - 0x23, - 0x21, - 0x21, - 0x2E, - 0x30, - 0x44, - 0x48, - 0x54, - 0x53, - 0x52, - 0x7D, - 0xF3, - 0xE7, - 0xF3, - 0x05, - 0xE7, - 0x00, - 0x04, - 0xF3, - 0xE7, - 0xE7, - 0xCB, - 0x04, - 0xE7, - 0x00, - 0x10, - 0xCB, - 0xF3, - 0xC4, - 0xCB, - 0xE7, - 0xCB, - 0xE7, - 0xCB, - 0xE7, - 0xBB, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0x0E, - 0xCB, - 0x00, - 0x1A, - 0xBF, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0xCB, - 0xCB, - 0xC7, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xCF, - 0xBF, - 0xC7, - 0xC5, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xC7, - 0x09, - 0xC5, - 0x01, - 0xCF, - 0x0D, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x82, - 0x95, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x0B, - 0x8F, - 0x00, - 0x30, - 0x95, - 0x8F, - 0x8F, - 0xBC, - 0x8C, - 0x8C, - 0x8F, - 0xB9, - 0x8F, - 0xE8, - 0xE8, - 0xF1, - 0x81, - 0x7B, - 0x65, - 0x5D, - 0x39, - 0x29, - 0x5D, - 0x3C, - 0x4E, - 0x4E, - 0x5D, - 0x6F, - 0x5D, - 0x5D, - 0x29, - 0x22, - 0x3C, - 0x10, - 0x1B, - 0x29, - 0x16, - 0x0E, - 0x0E, - 0x22, - 0x1B, - 0x29, - 0x3C, - 0x4A, - 0x5D, - 0x35, - 0x1B, - 0x1B, - 0x0E, - 0xFC, - 0xFA, - 0xD0, - 0x04, - 0xF1, - 0x00, - 0x8A, - 0xA9, - 0xF1, - 0xFC, - 0xA9, - 0x4A, - 0x39, - 0x62, - 0xA3, - 0x96, - 0x09, - 0x1F, - 0x1F, - 0x1C, - 0x4D, - 0x57, - 0x1F, - 0x26, - 0x1F, - 0x12, - 0x0A, - 0x03, - 0x00, - 0x03, - 0x01, - 0x09, - 0x35, - 0x6F, - 0x4D, - 0x4D, - 0x5B, - 0x4A, - 0x86, - 0xA3, - 0xC0, - 0x96, - 0x96, - 0xFC, - 0xA9, - 0x7A, - 0x6F, - 0x62, - 0x4D, - 0x5B, - 0x1E, - 0x09, - 0x05, - 0x05, - 0x03, - 0x03, - 0x03, - 0x09, - 0x26, - 0x60, - 0x6F, - 0x96, - 0x6F, - 0x6F, - 0x96, - 0xC0, - 0xD0, - 0x62, - 0x62, - 0x89, - 0xC0, - 0xBD, - 0x89, - 0xC0, - 0xF1, - 0xF1, - 0x7A, - 0x62, - 0x57, - 0x46, - 0x69, - 0x51, - 0x68, - 0x68, - 0x5E, - 0x74, - 0x72, - 0x68, - 0x77, - 0x68, - 0x77, - 0x74, - 0x87, - 0x92, - 0x92, - 0x87, - 0x83, - 0x87, - 0x87, - 0x93, - 0x92, - 0x87, - 0x87, - 0x88, - 0x88, - 0x87, - 0x91, - 0x88, - 0x92, - 0x92, - 0x83, - 0x83, - 0x83, - 0x74, - 0x64, - 0x4C, - 0x35, - 0x52, - 0x33, - 0x52, - 0x44, - 0x44, - 0x40, - 0x44, - 0x23, - 0x42, - 0x3D, - 0x3D, - 0x42, - 0x23, - 0x23, - 0x18, - 0x2E, - 0x2E, - 0x2E, - 0x42, - 0x48, - 0x48, - 0x3D, - 0x40, - 0xF3, - 0xE7, - 0xE7, - 0xE7, - 0xF8, - 0x06, - 0xE7, - 0x00, - 0x1F, - 0xD2, - 0xF3, - 0xE7, - 0xF3, - 0xD2, - 0xF3, - 0xC4, - 0xE7, - 0xCB, - 0xE7, - 0xCB, - 0xC4, - 0xE7, - 0xBB, - 0xE7, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xE7, - 0xCB, - 0xCB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xCB, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x04, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0x04, - 0xCB, - 0x00, - 0x15, - 0xBF, - 0xCB, - 0xBF, - 0xD1, - 0xBF, - 0xBF, - 0xD1, - 0xC7, - 0xBF, - 0xC7, - 0xD1, - 0xC5, - 0xC5, - 0xC7, - 0xCF, - 0xC5, - 0xC7, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x04, - 0xC7, - 0xC5, - 0xC5, - 0xC7, - 0x07, - 0xC5, - 0x00, - 0x06, - 0xD3, - 0xB8, - 0xB8, - 0xD3, - 0xD3, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x10, - 0x95, - 0x82, - 0x82, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x82, - 0x8F, - 0x8F, - 0x95, - 0x05, - 0x8F, - 0x01, - 0x8C, - 0x0F, - 0x8F, - 0x00, - 0xBD, - 0xBC, - 0x8F, - 0x8F, - 0x8F, - 0x9B, - 0x95, - 0x8F, - 0xBC, - 0x9B, - 0x95, - 0x8C, - 0x7F, - 0xE8, - 0xE8, - 0x81, - 0xA3, - 0x65, - 0x5D, - 0x17, - 0x4E, - 0x3C, - 0x39, - 0x3C, - 0x5D, - 0x3C, - 0x3C, - 0x7B, - 0x5D, - 0x3C, - 0x4E, - 0x1B, - 0x3C, - 0x29, - 0x3C, - 0x3C, - 0x10, - 0x09, - 0x10, - 0x0E, - 0x3C, - 0x3C, - 0x3C, - 0x29, - 0x16, - 0x0E, - 0x4D, - 0xD0, - 0xF1, - 0xFC, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0xD0, - 0xA9, - 0xF1, - 0xC0, - 0x39, - 0x86, - 0x7A, - 0x5D, - 0xA9, - 0x1E, - 0x09, - 0x06, - 0x11, - 0x1F, - 0x09, - 0x01, - 0x03, - 0x05, - 0x03, - 0x03, - 0x05, - 0x05, - 0x0E, - 0x0E, - 0x2A, - 0x6F, - 0x96, - 0xE8, - 0x96, - 0xA8, - 0xA9, - 0xC0, - 0xC0, - 0xD0, - 0xD0, - 0xD0, - 0xF1, - 0xFC, - 0xFF, - 0xFC, - 0xA9, - 0xA9, - 0x6F, - 0x7A, - 0xA9, - 0x86, - 0x6F, - 0x4D, - 0x1C, - 0x05, - 0x03, - 0x03, - 0x00, - 0x06, - 0x26, - 0x7A, - 0x7A, - 0x6F, - 0x89, - 0x89, - 0xA9, - 0xA9, - 0x7A, - 0x4D, - 0x89, - 0xD0, - 0x86, - 0xA8, - 0x86, - 0x6C, - 0x62, - 0x60, - 0x5E, - 0x57, - 0x36, - 0x4B, - 0x24, - 0x24, - 0x36, - 0x36, - 0x46, - 0x51, - 0x5C, - 0x6A, - 0x74, - 0x72, - 0x83, - 0x74, - 0x83, - 0x74, - 0x83, - 0x87, - 0x91, - 0x92, - 0x87, - 0x87, - 0x91, - 0x92, - 0x92, - 0x88, - 0x92, - 0x87, - 0x83, - 0x83, - 0x83, - 0x69, - 0x64, - 0x67, - 0x4C, - 0x3C, - 0x40, - 0x40, - 0x3F, - 0x52, - 0x40, - 0x44, - 0x23, - 0x40, - 0x42, - 0x44, - 0x42, - 0x42, - 0x38, - 0x23, - 0x23, - 0x21, - 0x2E, - 0x2E, - 0x44, - 0x44, - 0x42, - 0x42, - 0x23, - 0x80, - 0xE7, - 0xF8, - 0x00, - 0x08, - 0xE7, - 0x00, - 0x17, - 0xF3, - 0xE7, - 0xE7, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xCB, - 0xCB, - 0xCB, - 0xC4, - 0xCB, - 0xE7, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0x00, - 0x04, - 0xCB, - 0x01, - 0xC4, - 0x06, - 0xCB, - 0x01, - 0xBB, - 0x05, - 0xCB, - 0x00, - 0x17, - 0xBF, - 0xCB, - 0xBF, - 0xD1, - 0xBF, - 0xD1, - 0xCB, - 0xC7, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xC7, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x08, - 0xCF, - 0xC5, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0x04, - 0xC5, - 0x00, - 0x07, - 0xCF, - 0xB8, - 0xD3, - 0xD3, - 0xC5, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9C, - 0x04, - 0x95, - 0x00, - 0x04, - 0x82, - 0x82, - 0x95, - 0x8F, - 0x05, - 0x95, - 0x00, - 0x03, - 0x8F, - 0x8F, - 0x95, - 0x00, - 0x05, - 0x8F, - 0x01, - 0x8C, - 0x0E, - 0x8F, - 0x00, - 0x04, - 0x95, - 0x8F, - 0xBC, - 0x8C, - 0x05, - 0x8F, - 0x00, - 0x60, - 0xBC, - 0x8F, - 0xBC, - 0xE8, - 0xE8, - 0xF1, - 0x7B, - 0xA3, - 0x65, - 0x62, - 0x3C, - 0x3C, - 0x21, - 0x2A, - 0x3C, - 0x65, - 0x5D, - 0x5D, - 0x5D, - 0x3C, - 0x4E, - 0x29, - 0x3C, - 0x10, - 0x3C, - 0x1B, - 0x0E, - 0x09, - 0x35, - 0x4E, - 0x09, - 0x5D, - 0x1B, - 0x10, - 0x29, - 0x89, - 0xD0, - 0xFF, - 0xFF, - 0xFC, - 0xF1, - 0xFF, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0x86, - 0xA9, - 0xA9, - 0xE8, - 0x86, - 0x62, - 0x39, - 0x09, - 0x06, - 0x1F, - 0x09, - 0x00, - 0x05, - 0x06, - 0x09, - 0x1C, - 0x39, - 0x3C, - 0x4A, - 0x62, - 0x2A, - 0x62, - 0x6F, - 0x6F, - 0x6D, - 0x96, - 0xA8, - 0xBD, - 0xBD, - 0xF1, - 0xD0, - 0x89, - 0x89, - 0xD0, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0x86, - 0x96, - 0x96, - 0x5D, - 0x39, - 0x0F, - 0x04, - 0x05, - 0x00, - 0x1D, - 0x1F, - 0x32, - 0x62, - 0x60, - 0x89, - 0x89, - 0x6F, - 0x62, - 0x32, - 0x6F, - 0x4D, - 0x1C, - 0x19, - 0x1F, - 0x0D, - 0x15, - 0x26, - 0x15, - 0x15, - 0x24, - 0x15, - 0x24, - 0x24, - 0x24, - 0x36, - 0x46, - 0x68, - 0x74, - 0x74, - 0x00, - 0x05, - 0x68, - 0x00, - 0x1B, - 0x72, - 0x93, - 0x87, - 0x68, - 0x92, - 0x92, - 0x87, - 0x87, - 0x92, - 0xAB, - 0x92, - 0x92, - 0x83, - 0x74, - 0x64, - 0x64, - 0x4C, - 0x4D, - 0x33, - 0x52, - 0x52, - 0x52, - 0x59, - 0x3D, - 0x44, - 0x23, - 0x44, - 0x00, - 0x04, - 0x42, - 0x00, - 0x10, - 0x20, - 0x2E, - 0x3A, - 0x23, - 0x33, - 0x2E, - 0x44, - 0x48, - 0x3D, - 0x3A, - 0x42, - 0x76, - 0xE7, - 0xE7, - 0xE7, - 0xF8, - 0x0C, - 0xE7, - 0x00, - 0x07, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xE7, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x10, - 0xCB, - 0xBB, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0x04, - 0xCB, - 0x01, - 0xBF, - 0x09, - 0xCB, - 0x00, - 0x0B, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xBF, - 0xBF, - 0xD1, - 0xC7, - 0xB8, - 0xD1, - 0xD1, - 0x00, - 0x06, - 0xC7, - 0x00, - 0x17, - 0xC5, - 0xCF, - 0xC7, - 0xC7, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xB8, - 0xCF, - 0xB8, - 0xC5, - 0xCF, - 0xB8, - 0xC5, - 0xB8, - 0xCF, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x82, - 0x95, - 0x82, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x82, - 0x8F, - 0x95, - 0x82, - 0x04, - 0x95, - 0x00, - 0x08, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8C, - 0x82, - 0x95, - 0x8C, - 0x04, - 0x8F, - 0x01, - 0x95, - 0x04, - 0x8F, - 0x00, - 0x03, - 0x95, - 0x8F, - 0x95, - 0x00, - 0x05, - 0x8F, - 0x00, - 0x54, - 0xBC, - 0x8F, - 0xBC, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x9B, - 0xA3, - 0xE8, - 0xE8, - 0xC0, - 0x5A, - 0x96, - 0x43, - 0x31, - 0x62, - 0x3C, - 0x3C, - 0x4E, - 0x5D, - 0x5B, - 0x4E, - 0x65, - 0x3C, - 0x3C, - 0x4E, - 0x29, - 0x3C, - 0x10, - 0x1B, - 0x10, - 0x10, - 0x16, - 0x5D, - 0x5D, - 0x29, - 0x4A, - 0x71, - 0xBD, - 0xFF, - 0xFC, - 0xFF, - 0xFF, - 0xFC, - 0xD0, - 0xFC, - 0xFC, - 0xFF, - 0xF1, - 0x86, - 0x96, - 0xA9, - 0x86, - 0x6C, - 0x0E, - 0x11, - 0x1C, - 0x1F, - 0x4D, - 0x32, - 0x1C, - 0x57, - 0x32, - 0x1F, - 0x32, - 0x7A, - 0xA9, - 0xA8, - 0xA9, - 0x6F, - 0x6F, - 0x7A, - 0x86, - 0x7A, - 0x62, - 0x60, - 0x7A, - 0x7A, - 0x62, - 0x89, - 0x6D, - 0x7A, - 0x8A, - 0x04, - 0xA9, - 0x00, - 0x5F, - 0xBE, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xD0, - 0xD0, - 0xD0, - 0xBD, - 0xD0, - 0x96, - 0x7A, - 0x6F, - 0x29, - 0x11, - 0x01, - 0x03, - 0x01, - 0x03, - 0x03, - 0x0D, - 0x0A, - 0x03, - 0x03, - 0x03, - 0x06, - 0x12, - 0x06, - 0x06, - 0x06, - 0x05, - 0x03, - 0x05, - 0x01, - 0x06, - 0x06, - 0x0D, - 0x0D, - 0x15, - 0x24, - 0x46, - 0x61, - 0x68, - 0x5E, - 0x69, - 0x5E, - 0x68, - 0x83, - 0x83, - 0x83, - 0x88, - 0x85, - 0x88, - 0x72, - 0x92, - 0x87, - 0x87, - 0x77, - 0xAB, - 0xAB, - 0x87, - 0x92, - 0x83, - 0x83, - 0x64, - 0x64, - 0x35, - 0x29, - 0x4F, - 0x4A, - 0x4F, - 0x4E, - 0x44, - 0x30, - 0x40, - 0x20, - 0x42, - 0x44, - 0x42, - 0x42, - 0x44, - 0x20, - 0x20, - 0x27, - 0x2E, - 0x3F, - 0x25, - 0x44, - 0x3F, - 0x2E, - 0x3D, - 0x30, - 0x55, - 0xC4, - 0xF3, - 0x00, - 0x0A, - 0xE7, - 0x00, - 0x10, - 0xD2, - 0xD2, - 0xE7, - 0xC4, - 0xC4, - 0xE7, - 0xE7, - 0xC4, - 0xF3, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xD2, - 0xBB, - 0xE7, - 0x04, - 0xC4, - 0x00, - 0x08, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xF3, - 0xC4, - 0x04, - 0xCB, - 0x01, - 0xBB, - 0x06, - 0xCB, - 0x00, - 0x0F, - 0xBB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xC7, - 0xBF, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x1C, - 0xCF, - 0xC7, - 0xC7, - 0xC5, - 0xC5, - 0xC7, - 0xC7, - 0xC5, - 0xC5, - 0xC7, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xD3, - 0xB8, - 0xC5, - 0xCF, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xCF, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x82, - 0x8F, - 0x95, - 0x82, - 0x82, - 0x95, - 0x95, - 0x8F, - 0x06, - 0x95, - 0x00, - 0x1A, - 0x8F, - 0x82, - 0x8C, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8C, - 0x04, - 0x8F, - 0x00, - 0x09, - 0xBC, - 0x8F, - 0xE8, - 0xE8, - 0x81, - 0xA3, - 0x7B, - 0x7B, - 0x31, - 0x00, - 0x05, - 0x3C, - 0x00, - 0x1C, - 0x65, - 0x3C, - 0x4E, - 0x7B, - 0x4E, - 0x29, - 0x39, - 0x1B, - 0x29, - 0x29, - 0x1E, - 0x04, - 0x05, - 0x4A, - 0x1B, - 0x3C, - 0x5D, - 0x79, - 0xF1, - 0xD0, - 0xD0, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0xFC, - 0x04, - 0xD0, - 0x00, - 0x80, - 0x39, - 0x1F, - 0x1E, - 0x4A, - 0x6C, - 0xA9, - 0xA9, - 0x86, - 0x6D, - 0x7A, - 0x6F, - 0x7A, - 0x62, - 0x62, - 0x89, - 0xA8, - 0xD0, - 0xBD, - 0xA9, - 0xA8, - 0x96, - 0x96, - 0x6F, - 0x57, - 0x6D, - 0x7A, - 0x4C, - 0x60, - 0x57, - 0x80, - 0x7A, - 0x6D, - 0x62, - 0x89, - 0xA9, - 0x7A, - 0xA9, - 0x89, - 0x7A, - 0xBD, - 0xF1, - 0xD0, - 0xBD, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xC0, - 0xC0, - 0x86, - 0x71, - 0x39, - 0x10, - 0x05, - 0x09, - 0x01, - 0x01, - 0x03, - 0x00, - 0x05, - 0x05, - 0x05, - 0x01, - 0x01, - 0x05, - 0x05, - 0x09, - 0x10, - 0x12, - 0x15, - 0x24, - 0x4B, - 0x5C, - 0x5E, - 0x69, - 0x5E, - 0x61, - 0x69, - 0x72, - 0x74, - 0x69, - 0x74, - 0x72, - 0x83, - 0x83, - 0x92, - 0x92, - 0x87, - 0x77, - 0x92, - 0xA0, - 0x92, - 0x92, - 0xB4, - 0x83, - 0xB4, - 0x83, - 0x74, - 0x4B, - 0x4C, - 0x49, - 0x4B, - 0x67, - 0x64, - 0x69, - 0x4E, - 0x4F, - 0x40, - 0x20, - 0x44, - 0x40, - 0x30, - 0x44, - 0x42, - 0x38, - 0x44, - 0x20, - 0x44, - 0x23, - 0x20, - 0x31, - 0x44, - 0x23, - 0x23, - 0x20, - 0x3D, - 0x59, - 0xF8, - 0x07, - 0xE7, - 0x00, - 0x1B, - 0xD2, - 0xE7, - 0xE7, - 0xE7, - 0xD2, - 0xE7, - 0xE7, - 0xE7, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xCB, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x05, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xBB, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x14, - 0xC4, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBF, - 0xBF, - 0xBF, - 0xCB, - 0xCB, - 0xCB, - 0xC7, - 0xCB, - 0xBF, - 0xBF, - 0xC7, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0x04, - 0xC7, - 0x00, - 0x1A, - 0xCF, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC5, - 0xC7, - 0xC5, - 0xCF, - 0xB8, - 0xC5, - 0xC7, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xCF, - 0xB8, - 0xCF, - 0xB8, - 0xC5, - 0xC7, - 0xC5, - 0xCF, - 0xB8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x03, - 0x82, - 0x95, - 0x82, - 0x00, - 0x0B, - 0x95, - 0x00, - 0x0A, - 0x8F, - 0x95, - 0x9C, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x0A, - 0x8F, - 0x00, - 0xBC, - 0x82, - 0xBC, - 0x8F, - 0x95, - 0xBC, - 0x8F, - 0x95, - 0x8F, - 0x82, - 0xBC, - 0xBC, - 0x95, - 0x8F, - 0xBC, - 0x8F, - 0x95, - 0xA8, - 0xE8, - 0xE8, - 0x7B, - 0x7B, - 0x7B, - 0x6C, - 0x3C, - 0x4E, - 0x3C, - 0x3C, - 0x4E, - 0x65, - 0x4E, - 0x65, - 0x5D, - 0x3C, - 0x0C, - 0x13, - 0x29, - 0x1B, - 0x10, - 0x14, - 0x09, - 0x16, - 0x29, - 0x39, - 0x39, - 0x10, - 0x96, - 0xF1, - 0xFA, - 0xD8, - 0xA9, - 0xD8, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0x6F, - 0x16, - 0x2A, - 0x62, - 0x89, - 0x6F, - 0x6F, - 0x4D, - 0x62, - 0x86, - 0x89, - 0xA8, - 0xA9, - 0xBD, - 0x89, - 0x62, - 0x62, - 0x60, - 0x89, - 0xC0, - 0xBD, - 0x86, - 0x96, - 0x96, - 0x86, - 0x60, - 0x60, - 0x06, - 0x06, - 0x1F, - 0x4C, - 0x60, - 0x6F, - 0x6D, - 0x32, - 0x0B, - 0x0B, - 0x2A, - 0x32, - 0x86, - 0x7A, - 0xA9, - 0x89, - 0xD0, - 0xD0, - 0xA9, - 0xF1, - 0xFC, - 0xBD, - 0xBD, - 0xFC, - 0xBD, - 0x89, - 0x86, - 0xBD, - 0x86, - 0x71, - 0x6F, - 0x4D, - 0x4A, - 0x10, - 0x10, - 0x16, - 0x16, - 0x10, - 0x86, - 0x86, - 0x96, - 0x62, - 0x5B, - 0x6F, - 0x57, - 0x57, - 0x7E, - 0x74, - 0x83, - 0x83, - 0x88, - 0x83, - 0x72, - 0x72, - 0x68, - 0x6E, - 0x83, - 0x77, - 0x83, - 0x92, - 0x83, - 0x87, - 0x92, - 0xA0, - 0x87, - 0xB4, - 0xB4, - 0xB4, - 0x83, - 0x83, - 0x74, - 0x64, - 0x5C, - 0x4B, - 0x5C, - 0x4B, - 0x56, - 0x73, - 0x5C, - 0x4D, - 0x67, - 0x55, - 0x4E, - 0x44, - 0x2E, - 0x38, - 0x33, - 0x40, - 0x40, - 0x20, - 0x42, - 0x3D, - 0x30, - 0x30, - 0x33, - 0x1A, - 0x18, - 0x21, - 0x23, - 0x23, - 0x52, - 0x82, - 0xF3, - 0x08, - 0xE7, - 0x00, - 0x0D, - 0xD2, - 0xE7, - 0xE7, - 0xD2, - 0xE7, - 0xC4, - 0xC4, - 0xD2, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x1B, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xD2, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xBB, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x0C, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xCB, - 0xC7, - 0xBF, - 0xD1, - 0xBF, - 0xBF, - 0xD1, - 0xD1, - 0x06, - 0xC7, - 0x00, - 0x17, - 0xC5, - 0xBF, - 0xC7, - 0xCF, - 0xB8, - 0xB8, - 0xCF, - 0xB8, - 0xCF, - 0xBF, - 0xC5, - 0xC7, - 0xCF, - 0xB8, - 0xB8, - 0xB8, - 0xCF, - 0xCF, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x95, - 0x95, - 0x9C, - 0x82, - 0x82, - 0x9C, - 0x9C, - 0x82, - 0x04, - 0x95, - 0x00, - 0x07, - 0x9C, - 0x82, - 0x9C, - 0x82, - 0x95, - 0x95, - 0x95, - 0x00, - 0x04, - 0x8F, - 0x00, - 0x14, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0xBC, - 0x04, - 0x8F, - 0x00, - 0xAE, - 0x95, - 0x8F, - 0x95, - 0xA5, - 0xE8, - 0xE8, - 0x81, - 0x7B, - 0x7B, - 0x7B, - 0x4E, - 0x31, - 0x4A, - 0x4A, - 0x21, - 0x17, - 0x7B, - 0x5D, - 0x4E, - 0x5D, - 0x6C, - 0x29, - 0x21, - 0x4E, - 0x4E, - 0x3C, - 0x29, - 0x4A, - 0x5B, - 0x10, - 0x39, - 0xBD, - 0xD0, - 0xA9, - 0xD0, - 0xD0, - 0xD0, - 0xF1, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0x7A, - 0xA9, - 0x6F, - 0x7A, - 0x6F, - 0x6F, - 0x6F, - 0x62, - 0x4D, - 0x39, - 0x09, - 0x05, - 0x32, - 0x60, - 0x6C, - 0xBD, - 0xD0, - 0x7A, - 0x39, - 0x06, - 0x06, - 0x06, - 0x0B, - 0x1F, - 0x60, - 0x9A, - 0x6C, - 0x32, - 0x0B, - 0x06, - 0x05, - 0x03, - 0x05, - 0x09, - 0x06, - 0x12, - 0x09, - 0x06, - 0x06, - 0x0E, - 0x1F, - 0x12, - 0x06, - 0x06, - 0x0D, - 0x32, - 0x7A, - 0x7A, - 0xA9, - 0xD0, - 0xFC, - 0xBD, - 0x6F, - 0xA9, - 0xF1, - 0xC0, - 0xC0, - 0xA8, - 0xF1, - 0xA9, - 0xA9, - 0x86, - 0xD0, - 0xC0, - 0x6F, - 0x71, - 0x96, - 0x86, - 0x86, - 0xA9, - 0xA3, - 0x86, - 0x89, - 0x6F, - 0xD8, - 0x85, - 0xA0, - 0x91, - 0x87, - 0x7E, - 0x77, - 0x72, - 0x77, - 0x68, - 0x72, - 0x72, - 0x72, - 0x74, - 0x83, - 0x77, - 0x92, - 0x83, - 0x73, - 0xB4, - 0xB4, - 0x83, - 0x92, - 0x83, - 0x83, - 0x74, - 0x5C, - 0x36, - 0x4B, - 0x4B, - 0x4B, - 0x69, - 0x64, - 0x46, - 0x70, - 0x5C, - 0x4B, - 0x2A, - 0x33, - 0x23, - 0x55, - 0x33, - 0x33, - 0x40, - 0x33, - 0x40, - 0x44, - 0x42, - 0x33, - 0x23, - 0x44, - 0x3D, - 0x23, - 0x23, - 0x20, - 0x59, - 0x55, - 0xD1, - 0x0A, - 0xE7, - 0x00, - 0x0F, - 0xD2, - 0xD2, - 0xE7, - 0xE7, - 0xC4, - 0xE7, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xE7, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x14, - 0xBB, - 0xD2, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xC4, - 0x05, - 0xCB, - 0x00, - 0x10, - 0xBB, - 0xBF, - 0xCB, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xC7, - 0xBF, - 0xD1, - 0xBF, - 0x04, - 0xC7, - 0x00, - 0x19, - 0xD1, - 0xCF, - 0xB8, - 0xD1, - 0xB8, - 0xC7, - 0xC5, - 0xCF, - 0xB8, - 0xC7, - 0xB8, - 0xB8, - 0xC7, - 0xBF, - 0xCF, - 0xB8, - 0xCF, - 0xBF, - 0xC5, - 0xB8, - 0xCF, - 0xCF, - 0xB8, - 0xB8, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x95, - 0x98, - 0x95, - 0x9C, - 0x05, - 0x95, - 0x01, - 0x82, - 0x01, - 0x9C, - 0x09, - 0x95, - 0x01, - 0x82, - 0x01, - 0x95, - 0x05, - 0x8F, - 0x00, - 0x8E, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x9C, - 0x8F, - 0x95, - 0xBC, - 0x95, - 0x95, - 0x9C, - 0x8F, - 0xBC, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0xBC, - 0x95, - 0x8F, - 0xBC, - 0x8F, - 0xBC, - 0x8D, - 0xE8, - 0xE8, - 0x7B, - 0x7B, - 0x43, - 0x6F, - 0x29, - 0x5D, - 0x3C, - 0x3C, - 0x4D, - 0x65, - 0x4E, - 0x65, - 0x4E, - 0x65, - 0x3C, - 0x39, - 0x71, - 0x5D, - 0x4E, - 0x4E, - 0x1E, - 0x16, - 0x89, - 0xA9, - 0xF1, - 0xD0, - 0xFA, - 0xD0, - 0xD0, - 0xA9, - 0xF1, - 0xA9, - 0xA9, - 0x7A, - 0xA9, - 0x89, - 0xBD, - 0xD0, - 0xD0, - 0xBD, - 0x6C, - 0x89, - 0x6F, - 0xA9, - 0x86, - 0x6F, - 0x6F, - 0x5B, - 0x3C, - 0x1E, - 0x62, - 0xD0, - 0xC0, - 0x7A, - 0x4D, - 0x11, - 0x05, - 0x05, - 0x05, - 0x00, - 0x06, - 0x06, - 0x03, - 0x06, - 0x09, - 0x39, - 0x11, - 0x2A, - 0x5D, - 0x05, - 0x09, - 0x1C, - 0x19, - 0x1C, - 0x1F, - 0x32, - 0x32, - 0x32, - 0x0F, - 0x03, - 0x03, - 0x00, - 0x0A, - 0x60, - 0x6F, - 0x96, - 0xFC, - 0xC0, - 0x96, - 0xA8, - 0xC0, - 0xA9, - 0xA9, - 0xF1, - 0xC0, - 0xF1, - 0xA9, - 0x96, - 0xA9, - 0xC0, - 0x6F, - 0x96, - 0xC0, - 0x6F, - 0x86, - 0xBD, - 0x96, - 0x7A, - 0x6D, - 0x6D, - 0xA9, - 0x95, - 0x73, - 0x74, - 0x83, - 0x08, - 0x74, - 0x06, - 0x83, - 0x00, - 0x11, - 0x74, - 0x83, - 0x73, - 0x69, - 0x5C, - 0x5E, - 0x4B, - 0x4B, - 0x4B, - 0x56, - 0x64, - 0x69, - 0x46, - 0x64, - 0x4B, - 0x28, - 0x0F, - 0x00, - 0x04, - 0x33, - 0x00, - 0x10, - 0x40, - 0x40, - 0x33, - 0x33, - 0x54, - 0x23, - 0x23, - 0x20, - 0x20, - 0x20, - 0x42, - 0x30, - 0x42, - 0x38, - 0x44, - 0x8D, - 0x09, - 0xE7, - 0x00, - 0x0D, - 0xD2, - 0xE7, - 0xD2, - 0xE7, - 0xD2, - 0xD2, - 0xE7, - 0xD2, - 0xC4, - 0xE7, - 0xC4, - 0xD2, - 0xE7, - 0x00, - 0x05, - 0xC4, - 0x01, - 0xE7, - 0x01, - 0xBB, - 0x04, - 0xC4, - 0x00, - 0x43, - 0xD2, - 0xBB, - 0xC4, - 0xC4, - 0xCB, - 0xC2, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xCB, - 0xBB, - 0xC4, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xD1, - 0xBF, - 0xBF, - 0xCB, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xBF, - 0xBF, - 0xC7, - 0xC7, - 0xB8, - 0xC7, - 0xD1, - 0xC7, - 0xB8, - 0xC7, - 0xB8, - 0xC7, - 0xC7, - 0xB8, - 0xC7, - 0xC7, - 0xB8, - 0xCF, - 0xAE, - 0xB8, - 0xCF, - 0xB8, - 0xB8, - 0xCF, - 0xAE, - 0xB8, - 0xB8, - 0xCF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x11, - 0x95, - 0x9C, - 0x95, - 0xAA, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x00, - 0x06, - 0x95, - 0x00, - 0x7F, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x9C, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0xBC, - 0x95, - 0x95, - 0xBC, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0xBC, - 0x8F, - 0x95, - 0xBC, - 0xE8, - 0xE8, - 0xC0, - 0x7A, - 0x5A, - 0xA3, - 0x4E, - 0x5D, - 0x5D, - 0x5B, - 0x0C, - 0x4E, - 0x7B, - 0x65, - 0x65, - 0x5D, - 0xA3, - 0x65, - 0x5D, - 0x4A, - 0x65, - 0x4A, - 0x6F, - 0xD0, - 0xD0, - 0xBD, - 0xD0, - 0xD0, - 0xF1, - 0xF1, - 0xF1, - 0xD0, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0xBD, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0x89, - 0x62, - 0xA3, - 0xA9, - 0x6F, - 0xA9, - 0xA9, - 0xA8, - 0x7A, - 0x4D, - 0x4D, - 0x62, - 0x6C, - 0xA8, - 0xA9, - 0x62, - 0x6F, - 0x60, - 0x39, - 0x39, - 0x1F, - 0x0E, - 0x0E, - 0x1C, - 0x4A, - 0x6F, - 0x7A, - 0x6C, - 0x84, - 0x7A, - 0x76, - 0x62, - 0x5B, - 0x60, - 0x4D, - 0x60, - 0x62, - 0x60, - 0x4D, - 0x4D, - 0x57, - 0x39, - 0x03, - 0x05, - 0x00, - 0x11, - 0x62, - 0x6D, - 0xF1, - 0xF1, - 0x86, - 0x96, - 0xD0, - 0xA9, - 0xBD, - 0xA9, - 0xF1, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x42, - 0x86, - 0x86, - 0xC0, - 0x96, - 0x6F, - 0x89, - 0xC0, - 0x86, - 0x6F, - 0x6D, - 0x57, - 0x7A, - 0x69, - 0x5E, - 0x5C, - 0x83, - 0x87, - 0x83, - 0x83, - 0x74, - 0x73, - 0x74, - 0x83, - 0x83, - 0x87, - 0x83, - 0x83, - 0x74, - 0x83, - 0x74, - 0x68, - 0x74, - 0x69, - 0x46, - 0x36, - 0x41, - 0x24, - 0x4B, - 0x5C, - 0x46, - 0x4B, - 0x2D, - 0x28, - 0x07, - 0x2F, - 0x33, - 0x33, - 0x33, - 0x40, - 0x52, - 0x33, - 0x33, - 0x40, - 0x33, - 0x23, - 0x44, - 0x20, - 0x44, - 0x20, - 0x38, - 0x42, - 0x3D, - 0x44, - 0x59, - 0x59, - 0xCF, - 0x05, - 0xE7, - 0x00, - 0x13, - 0xD2, - 0xE7, - 0xD2, - 0xE7, - 0xE7, - 0xD2, - 0xE7, - 0xD2, - 0xD2, - 0xC4, - 0xE7, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xD2, - 0x00, - 0x11, - 0xC4, - 0x00, - 0x1A, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xCB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBF, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xCB, - 0xBF, - 0xD1, - 0x04, - 0xBF, - 0x00, - 0x1D, - 0xC7, - 0xBF, - 0xC7, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xC7, - 0xB8, - 0xB8, - 0xD1, - 0xB8, - 0xB8, - 0xD1, - 0xD1, - 0xB8, - 0xB8, - 0xCF, - 0xAE, - 0xCF, - 0xB8, - 0xCF, - 0xB8, - 0xCF, - 0xAE, - 0xC5, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x9F, - 0x82, - 0x95, - 0x82, - 0x98, - 0x8F, - 0x98, - 0x95, - 0x9C, - 0x82, - 0x82, - 0x9F, - 0x04, - 0x95, - 0x00, - 0x0E, - 0x82, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x9C, - 0x9C, - 0x8F, - 0x05, - 0x95, - 0x00, - 0x03, - 0xBC, - 0x9C, - 0x82, - 0x00, - 0x04, - 0x95, - 0x00, - 0xB2, - 0x9C, - 0x8F, - 0x82, - 0xBC, - 0x95, - 0x8F, - 0x9C, - 0x95, - 0x95, - 0x8F, - 0x7B, - 0xE8, - 0x81, - 0xA3, - 0x5D, - 0x7B, - 0x5A, - 0x4D, - 0x4E, - 0x3C, - 0x3C, - 0x4E, - 0x5D, - 0x43, - 0x65, - 0xA3, - 0x7B, - 0x71, - 0x3C, - 0x4E, - 0x39, - 0xA3, - 0xD0, - 0xBD, - 0x89, - 0xA9, - 0xD0, - 0xD0, - 0xA9, - 0xC6, - 0xA9, - 0x89, - 0xF1, - 0xF1, - 0xD0, - 0xF1, - 0x86, - 0x89, - 0x6F, - 0xA9, - 0x96, - 0x89, - 0xBD, - 0xBD, - 0x89, - 0x62, - 0x06, - 0x1F, - 0x96, - 0xA8, - 0x96, - 0x96, - 0x96, - 0x7A, - 0x89, - 0xA9, - 0x7A, - 0x89, - 0x89, - 0x97, - 0x89, - 0x6F, - 0x7A, - 0x7A, - 0x6C, - 0x60, - 0x6C, - 0xA8, - 0xA8, - 0x96, - 0x96, - 0xC0, - 0xA8, - 0x6F, - 0x6F, - 0x6D, - 0x6F, - 0x6F, - 0x6D, - 0x6D, - 0x6F, - 0x86, - 0x96, - 0x7A, - 0x4A, - 0x1C, - 0x03, - 0x00, - 0x1C, - 0x5B, - 0x96, - 0xA8, - 0x62, - 0x96, - 0xC0, - 0x96, - 0xF1, - 0x96, - 0xD0, - 0xF1, - 0x86, - 0xF1, - 0x96, - 0x86, - 0xA9, - 0xA8, - 0x6C, - 0x96, - 0x6F, - 0x62, - 0x86, - 0x6D, - 0x60, - 0x46, - 0x46, - 0x64, - 0x51, - 0x5C, - 0x69, - 0x73, - 0x73, - 0x74, - 0x83, - 0x74, - 0x74, - 0x69, - 0x74, - 0x74, - 0x69, - 0x69, - 0x5E, - 0x69, - 0x69, - 0x46, - 0x4B, - 0x41, - 0x41, - 0x41, - 0x4B, - 0x56, - 0x24, - 0x2D, - 0x28, - 0x0D, - 0x28, - 0x02, - 0x33, - 0x44, - 0x44, - 0x44, - 0x40, - 0x40, - 0x40, - 0x33, - 0x33, - 0x33, - 0x44, - 0x44, - 0x38, - 0x20, - 0x38, - 0x42, - 0x44, - 0x38, - 0x52, - 0x59, - 0x6B, - 0xD2, - 0x06, - 0xE7, - 0x01, - 0xD2, - 0x01, - 0xE7, - 0x04, - 0xD2, - 0x00, - 0x0B, - 0xE7, - 0xD2, - 0xE7, - 0xC2, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC2, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x05, - 0xD2, - 0xC4, - 0xC4, - 0xD2, - 0xBB, - 0x00, - 0x0A, - 0xC4, - 0x01, - 0xCB, - 0x04, - 0xC4, - 0x00, - 0x12, - 0xCB, - 0xC4, - 0xBB, - 0xBB, - 0xC4, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xCB, - 0xBF, - 0xBB, - 0xCB, - 0xCB, - 0xB3, - 0xBF, - 0xCB, - 0xCB, - 0x04, - 0xBF, - 0x00, - 0x1F, - 0xC7, - 0xC7, - 0xBF, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0xBF, - 0xCF, - 0xD1, - 0xB8, - 0xB8, - 0xCF, - 0xC7, - 0xB8, - 0xCF, - 0xBF, - 0xB8, - 0xB8, - 0xAE, - 0xD1, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xBF, - 0xB8, - 0xC5, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x95, - 0x9C, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x82, - 0x95, - 0x82, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x82, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x9C, - 0x04, - 0x95, - 0x00, - 0x9C, - 0x9C, - 0x95, - 0x95, - 0xBC, - 0x9C, - 0x95, - 0x8F, - 0x9C, - 0xBC, - 0x95, - 0x95, - 0xBC, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x9C, - 0xE8, - 0x81, - 0xC0, - 0xA3, - 0x65, - 0x65, - 0x65, - 0x37, - 0x4A, - 0x4D, - 0x21, - 0x4E, - 0x62, - 0xA3, - 0x65, - 0x7B, - 0x7B, - 0x71, - 0x3C, - 0x71, - 0xA9, - 0x96, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xA9, - 0x7A, - 0xA9, - 0x89, - 0x89, - 0x89, - 0x62, - 0x62, - 0xBD, - 0xD0, - 0xBD, - 0xF1, - 0xD0, - 0xA9, - 0x7A, - 0x6F, - 0x11, - 0x03, - 0x26, - 0xA8, - 0x96, - 0xC0, - 0xAF, - 0xA9, - 0xA9, - 0xBD, - 0xA9, - 0xC0, - 0xA8, - 0xA9, - 0xA8, - 0x96, - 0xD0, - 0xC0, - 0xC0, - 0x6F, - 0x62, - 0x7A, - 0x7A, - 0x80, - 0x9A, - 0x7A, - 0x7A, - 0x6D, - 0x7D, - 0x7A, - 0x84, - 0xA8, - 0x86, - 0x89, - 0x96, - 0x96, - 0x86, - 0x96, - 0x96, - 0xA8, - 0x62, - 0x09, - 0x03, - 0x0E, - 0x5B, - 0x86, - 0x86, - 0x89, - 0x7A, - 0xA8, - 0xBD, - 0xC0, - 0x96, - 0xF1, - 0x96, - 0x96, - 0xC0, - 0x7A, - 0xA3, - 0x96, - 0x62, - 0x62, - 0x6F, - 0x6F, - 0x4D, - 0x60, - 0x32, - 0x36, - 0x46, - 0x36, - 0x46, - 0x61, - 0x74, - 0x74, - 0x83, - 0x68, - 0x69, - 0x5C, - 0x46, - 0x5C, - 0x5E, - 0x5C, - 0x51, - 0x69, - 0x46, - 0x46, - 0x36, - 0x36, - 0x4B, - 0x2D, - 0x41, - 0x2D, - 0x41, - 0x15, - 0x04, - 0x28, - 0x00, - 0x18, - 0x4F, - 0x55, - 0x33, - 0x33, - 0x40, - 0x52, - 0x33, - 0x55, - 0x33, - 0x4F, - 0x33, - 0x40, - 0x38, - 0x30, - 0x2E, - 0x38, - 0x38, - 0x44, - 0x42, - 0x44, - 0x59, - 0x7B, - 0xA7, - 0xAE, - 0x06, - 0xE7, - 0x0C, - 0xD2, - 0x00, - 0x03, - 0xC4, - 0xC4, - 0xD2, - 0x00, - 0x04, - 0xC4, - 0x01, - 0xD2, - 0x01, - 0xC2, - 0x09, - 0xC4, - 0x00, - 0x1C, - 0xC2, - 0xCB, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xBB, - 0x05, - 0xBF, - 0x01, - 0xB8, - 0x05, - 0xBF, - 0x00, - 0x06, - 0xC7, - 0xB8, - 0xBF, - 0xCF, - 0xC7, - 0xC7, - 0x04, - 0xBF, - 0x00, - 0x0F, - 0xB8, - 0xBF, - 0xBF, - 0xCF, - 0xB8, - 0xC7, - 0xBF, - 0xBF, - 0xB8, - 0xC5, - 0xB8, - 0xCF, - 0xAE, - 0xAE, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x9F, - 0x9F, - 0x82, - 0x9F, - 0x82, - 0x9C, - 0x95, - 0x9F, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x9F, - 0x9C, - 0x00, - 0x07, - 0x95, - 0x00, - 0x0F, - 0x9C, - 0x8F, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x00, - 0x04, - 0x95, - 0x00, - 0x82, - 0x9C, - 0xBC, - 0x95, - 0x9C, - 0xBC, - 0x8F, - 0xB1, - 0xE8, - 0xA3, - 0x7B, - 0x7B, - 0x7B, - 0x65, - 0x4E, - 0x4E, - 0x4E, - 0x3C, - 0x3C, - 0x65, - 0x65, - 0x71, - 0x65, - 0xA3, - 0x5D, - 0x5B, - 0xBE, - 0xAF, - 0xD0, - 0xA9, - 0xBD, - 0xA9, - 0xA9, - 0xFF, - 0xF1, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0xD0, - 0x89, - 0x89, - 0x89, - 0x7A, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xBD, - 0xBD, - 0xBD, - 0xA9, - 0xBD, - 0x3C, - 0x05, - 0x6F, - 0x6F, - 0x4D, - 0xD0, - 0xF1, - 0xC0, - 0x96, - 0x6F, - 0x86, - 0xBD, - 0xA9, - 0x7A, - 0x96, - 0xA8, - 0xF1, - 0xC0, - 0x5B, - 0x7A, - 0x97, - 0x97, - 0x62, - 0x7A, - 0x7A, - 0xA8, - 0xA8, - 0x86, - 0x86, - 0x7A, - 0x6C, - 0x84, - 0x4D, - 0x32, - 0x1F, - 0x1F, - 0x32, - 0x60, - 0x6F, - 0xA8, - 0x86, - 0x10, - 0x01, - 0x00, - 0x4D, - 0x6F, - 0x86, - 0xA9, - 0x86, - 0x96, - 0xD0, - 0x96, - 0xF1, - 0xA8, - 0x6F, - 0xBD, - 0xA8, - 0x86, - 0xA9, - 0x86, - 0x6F, - 0x6F, - 0x4A, - 0x26, - 0x1F, - 0x06, - 0x06, - 0x06, - 0x26, - 0x46, - 0x6D, - 0x73, - 0xA9, - 0x61, - 0x46, - 0x46, - 0x46, - 0x5C, - 0x04, - 0x46, - 0x00, - 0x04, - 0x36, - 0x36, - 0x36, - 0x24, - 0x05, - 0x2D, - 0x01, - 0x28, - 0x01, - 0x2D, - 0x04, - 0x28, - 0x00, - 0x18, - 0x2F, - 0x2F, - 0x2F, - 0x40, - 0x40, - 0x40, - 0x52, - 0x33, - 0x52, - 0x44, - 0x42, - 0x44, - 0x44, - 0x30, - 0x30, - 0x23, - 0x44, - 0x42, - 0x42, - 0x42, - 0x59, - 0x65, - 0x8D, - 0xAE, - 0x04, - 0xE7, - 0x00, - 0x06, - 0xD2, - 0xD2, - 0xD2, - 0xE7, - 0xD2, - 0xE7, - 0x04, - 0xD2, - 0x00, - 0x12, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xD2, - 0xC2, - 0xC4, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC2, - 0x05, - 0xC4, - 0x01, - 0xBB, - 0x09, - 0xC4, - 0x00, - 0x10, - 0xCB, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBF, - 0xBF, - 0xBB, - 0xBF, - 0xBB, - 0xBF, - 0xCB, - 0x0A, - 0xBF, - 0x00, - 0x1B, - 0xC7, - 0xBF, - 0xBF, - 0xD1, - 0xB8, - 0xB8, - 0xBF, - 0xBF, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xBF, - 0xBF, - 0xBF, - 0xB8, - 0xB8, - 0xB8, - 0xC7, - 0xB8, - 0xB8, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x82, - 0x9F, - 0x82, - 0x9F, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x9F, - 0x95, - 0x95, - 0x98, - 0x9C, - 0x95, - 0xAA, - 0x95, - 0x95, - 0x9C, - 0x0A, - 0x95, - 0x00, - 0x31, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9F, - 0xBC, - 0x95, - 0x9C, - 0x95, - 0x95, - 0xBC, - 0x95, - 0x9C, - 0x8F, - 0x9C, - 0x9C, - 0x8F, - 0xAA, - 0x82, - 0xBC, - 0x9C, - 0xF1, - 0x81, - 0xA3, - 0x7B, - 0x71, - 0x7B, - 0x65, - 0x31, - 0x4E, - 0x3C, - 0x3C, - 0x5D, - 0x65, - 0x65, - 0x65, - 0x71, - 0x7A, - 0x96, - 0xA9, - 0xA9, - 0xD0, - 0xD0, - 0xA9, - 0x89, - 0xBE, - 0xD0, - 0xF1, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x8A, - 0xF1, - 0x89, - 0x62, - 0xBD, - 0xC0, - 0x89, - 0xD0, - 0x62, - 0xBD, - 0xD0, - 0xD0, - 0xBD, - 0x89, - 0x96, - 0xFC, - 0x5D, - 0x6F, - 0x89, - 0x11, - 0x1F, - 0xF1, - 0xFC, - 0xA9, - 0x09, - 0x78, - 0xD0, - 0x96, - 0x6D, - 0x6D, - 0x7A, - 0x7D, - 0x97, - 0x96, - 0x96, - 0x96, - 0xA9, - 0x86, - 0x76, - 0xA8, - 0x6F, - 0x6F, - 0x79, - 0x5B, - 0x4D, - 0x4D, - 0x4A, - 0x60, - 0x5B, - 0x60, - 0x32, - 0x60, - 0x32, - 0x32, - 0x5B, - 0xA8, - 0x86, - 0x10, - 0x05, - 0x03, - 0x5B, - 0x86, - 0x86, - 0xC0, - 0x86, - 0xC0, - 0xA9, - 0x96, - 0xD0, - 0x6F, - 0x86, - 0x6F, - 0x6F, - 0x6F, - 0x7A, - 0x62, - 0x7A, - 0x5D, - 0x1E, - 0x10, - 0x16, - 0x4A, - 0x86, - 0x89, - 0x57, - 0x6D, - 0x6D, - 0x57, - 0x46, - 0x5C, - 0x5C, - 0x5C, - 0x36, - 0x5C, - 0x46, - 0x46, - 0x46, - 0x4B, - 0x36, - 0x24, - 0x2D, - 0x2D, - 0x28, - 0x2D, - 0x49, - 0x28, - 0x2F, - 0x28, - 0x3E, - 0x2F, - 0x4F, - 0x2F, - 0x2F, - 0x2F, - 0x55, - 0x44, - 0x44, - 0x52, - 0x52, - 0x44, - 0x44, - 0x44, - 0x38, - 0x44, - 0x44, - 0x20, - 0x23, - 0x38, - 0x3D, - 0x42, - 0x42, - 0x59, - 0x59, - 0x59, - 0x78, - 0xD2, - 0xE7, - 0xE7, - 0xE7, - 0x0E, - 0xD2, - 0x00, - 0x10, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0x0A, - 0xC4, - 0x00, - 0x14, - 0xBB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBF, - 0xBB, - 0xCB, - 0xCB, - 0xB3, - 0xCB, - 0x0A, - 0xBF, - 0x00, - 0x1B, - 0xB3, - 0xB8, - 0xBF, - 0xC7, - 0xBF, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xC7, - 0xB8, - 0xC7, - 0xB8, - 0xB8, - 0xC5, - 0xAE, - 0xA7, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x9F, - 0x9C, - 0xAA, - 0x95, - 0x95, - 0x98, - 0x9F, - 0x82, - 0x98, - 0x9F, - 0x82, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x82, - 0x9C, - 0x95, - 0x82, - 0x9C, - 0x00, - 0x05, - 0x95, - 0x00, - 0x9A, - 0x8F, - 0x9C, - 0x9C, - 0xBC, - 0x95, - 0x9C, - 0x95, - 0xBC, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0xBC, - 0x95, - 0x9C, - 0x9C, - 0x8F, - 0xAA, - 0x8F, - 0x9C, - 0xC3, - 0x82, - 0xA7, - 0xE8, - 0x81, - 0x7B, - 0x7B, - 0x7B, - 0x71, - 0x5D, - 0x31, - 0x5B, - 0x4E, - 0x65, - 0x86, - 0x7B, - 0x8D, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xBD, - 0xD0, - 0xA9, - 0xA9, - 0x6F, - 0x96, - 0xD0, - 0xF1, - 0xA9, - 0xD8, - 0xA9, - 0x96, - 0xF1, - 0x96, - 0x89, - 0xA9, - 0xA8, - 0x89, - 0x6F, - 0x05, - 0xD0, - 0xD0, - 0xA9, - 0x6F, - 0x09, - 0x6F, - 0xF1, - 0xF1, - 0xA8, - 0x7A, - 0x5B, - 0x00, - 0x62, - 0x6F, - 0x7A, - 0x11, - 0x03, - 0xA8, - 0xC0, - 0x89, - 0x89, - 0x7A, - 0xA9, - 0xA8, - 0xA9, - 0xAF, - 0xA8, - 0xBD, - 0x6F, - 0x89, - 0x84, - 0x76, - 0x6C, - 0x62, - 0x4D, - 0x32, - 0x39, - 0x09, - 0x03, - 0x0B, - 0x0E, - 0x10, - 0x0E, - 0x39, - 0x32, - 0x4D, - 0x5B, - 0xA3, - 0xA3, - 0x35, - 0x03, - 0x0E, - 0x6F, - 0x86, - 0xA9, - 0x89, - 0x6F, - 0xBD, - 0x7A, - 0xA8, - 0x86, - 0x6F, - 0x62, - 0x4C, - 0x60, - 0x12, - 0x03, - 0x06, - 0x11, - 0x09, - 0x32, - 0x62, - 0x62, - 0x62, - 0x96, - 0xA9, - 0x57, - 0x57, - 0x4C, - 0x2D, - 0x46, - 0x4B, - 0x46, - 0x36, - 0x4B, - 0x5C, - 0x36, - 0x24, - 0x41, - 0x04, - 0x2D, - 0x00, - 0x25, - 0x49, - 0x49, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x4F, - 0x33, - 0x33, - 0x4F, - 0x40, - 0x33, - 0x40, - 0x40, - 0x52, - 0x42, - 0x59, - 0x42, - 0x44, - 0x44, - 0x44, - 0x23, - 0x23, - 0x30, - 0x3D, - 0x42, - 0x54, - 0x54, - 0x59, - 0x48, - 0x59, - 0x7B, - 0xCB, - 0xE7, - 0xD2, - 0xE7, - 0xE7, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x13, - 0xC2, - 0xD2, - 0xC4, - 0xD2, - 0xC2, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC4, - 0xD2, - 0xC2, - 0xC4, - 0xC4, - 0xD2, - 0xC2, - 0xC4, - 0xC2, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x03, - 0xB5, - 0xC4, - 0xB5, - 0x00, - 0x08, - 0xC4, - 0x00, - 0x16, - 0xBB, - 0xBB, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xBF, - 0xB3, - 0xCB, - 0xBF, - 0xBB, - 0xBB, - 0xBF, - 0xB3, - 0x06, - 0xBF, - 0x01, - 0xB8, - 0x05, - 0xBF, - 0x00, - 0x03, - 0xC7, - 0xB8, - 0xD1, - 0x00, - 0x09, - 0xBF, - 0x00, - 0x09, - 0xB8, - 0xCF, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xCF, - 0xCF, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x82, - 0x82, - 0x9C, - 0x98, - 0x9F, - 0x8E, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9F, - 0x82, - 0xAA, - 0x9F, - 0x95, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9F, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x82, - 0x9C, - 0x95, - 0x95, - 0x98, - 0x95, - 0xC3, - 0x04, - 0x9C, - 0x00, - 0x90, - 0x9F, - 0x95, - 0x95, - 0x9C, - 0xBC, - 0x9C, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x8F, - 0x9C, - 0x95, - 0x9A, - 0xE8, - 0xA3, - 0x7B, - 0x65, - 0x5A, - 0x6F, - 0x4E, - 0x4E, - 0x5D, - 0x65, - 0x7B, - 0x96, - 0xD0, - 0xA9, - 0xD0, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xBD, - 0xA9, - 0x97, - 0x86, - 0x4A, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0x96, - 0xD0, - 0xBD, - 0xC0, - 0xD0, - 0xD0, - 0x96, - 0x6F, - 0x0D, - 0xD0, - 0xF1, - 0xA9, - 0x86, - 0x00, - 0x4D, - 0x96, - 0xA9, - 0xFC, - 0xC0, - 0xA9, - 0x09, - 0x1C, - 0x7A, - 0xA8, - 0x62, - 0x01, - 0x12, - 0xA9, - 0xA9, - 0xD0, - 0x7A, - 0x86, - 0xBD, - 0xA9, - 0xF1, - 0xBD, - 0x62, - 0xA8, - 0x97, - 0x7A, - 0x6F, - 0x86, - 0x4D, - 0x11, - 0x09, - 0x03, - 0x12, - 0x26, - 0x57, - 0x26, - 0x41, - 0x12, - 0x11, - 0x14, - 0x1F, - 0x4A, - 0x5B, - 0x86, - 0xA3, - 0x5D, - 0x01, - 0x16, - 0x5D, - 0x6F, - 0x89, - 0x62, - 0x60, - 0x62, - 0x60, - 0x60, - 0x26, - 0x11, - 0x06, - 0x00, - 0x01, - 0x09, - 0x09, - 0x09, - 0x05, - 0x05, - 0x10, - 0x2A, - 0x71, - 0x60, - 0x89, - 0x60, - 0x26, - 0x2D, - 0x36, - 0x56, - 0x4B, - 0x24, - 0x41, - 0x24, - 0x24, - 0x0D, - 0x2D, - 0x28, - 0x2D, - 0x2D, - 0x28, - 0x49, - 0x04, - 0x2F, - 0x00, - 0x20, - 0x33, - 0x2F, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x2F, - 0x2F, - 0x33, - 0x44, - 0x38, - 0x44, - 0x44, - 0x44, - 0x23, - 0x40, - 0x42, - 0x23, - 0x30, - 0x44, - 0x44, - 0x44, - 0x42, - 0x59, - 0x48, - 0x54, - 0x6B, - 0xB8, - 0xD2, - 0xD2, - 0xE7, - 0xE7, - 0x0A, - 0xD2, - 0x00, - 0x10, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0x0A, - 0xC4, - 0x00, - 0x0C, - 0xBB, - 0xC2, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xC4, - 0xCB, - 0x04, - 0xBB, - 0x00, - 0x0C, - 0xCB, - 0xBB, - 0xCB, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xBF, - 0xB3, - 0x04, - 0xBF, - 0x01, - 0xB3, - 0x05, - 0xBF, - 0x01, - 0xAE, - 0x06, - 0xBF, - 0x00, - 0x0B, - 0xB8, - 0xB8, - 0xBF, - 0xBF, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xB8, - 0xB8, - 0xBF, - 0x00, - 0x04, - 0xB8, - 0x01, - 0xA7, - 0x01, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x13, - 0x9F, - 0xAA, - 0x9F, - 0x95, - 0x9C, - 0x95, - 0x9F, - 0x9C, - 0x98, - 0x95, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9F, - 0x9F, - 0x95, - 0x9F, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x09, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x95, - 0xAA, - 0x00, - 0x05, - 0x9C, - 0x00, - 0x9B, - 0x95, - 0x9F, - 0x9C, - 0x9C, - 0xC3, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9C, - 0x9F, - 0xBC, - 0x9C, - 0x9C, - 0x9C, - 0xBC, - 0xE8, - 0xA3, - 0x7B, - 0x7B, - 0x5D, - 0x5D, - 0x43, - 0x62, - 0xA3, - 0x7B, - 0x86, - 0xE8, - 0xD0, - 0xD0, - 0xD8, - 0xBD, - 0xFC, - 0xD0, - 0xA8, - 0xA9, - 0x6F, - 0x05, - 0x4D, - 0x86, - 0xA9, - 0xA9, - 0xA9, - 0xBD, - 0xBD, - 0xA9, - 0xF1, - 0x89, - 0xBD, - 0xD0, - 0xBD, - 0x89, - 0x10, - 0xFC, - 0xD0, - 0xC0, - 0x6F, - 0x03, - 0x5B, - 0xF1, - 0xA9, - 0x89, - 0x96, - 0x6F, - 0x96, - 0x09, - 0xA8, - 0xBD, - 0xA8, - 0x10, - 0x03, - 0x6F, - 0x96, - 0xAF, - 0x86, - 0x16, - 0x97, - 0xBD, - 0xBD, - 0xD0, - 0x7D, - 0xA8, - 0x6F, - 0xA8, - 0x76, - 0x86, - 0x39, - 0x03, - 0x05, - 0x26, - 0x57, - 0x60, - 0x62, - 0x7D, - 0x76, - 0x62, - 0x4C, - 0x12, - 0x1C, - 0x32, - 0x4A, - 0x4A, - 0xA9, - 0xC0, - 0x71, - 0x16, - 0x10, - 0x39, - 0x10, - 0x01, - 0x09, - 0x06, - 0x06, - 0x01, - 0x03, - 0x05, - 0x09, - 0x05, - 0x10, - 0x09, - 0x04, - 0x16, - 0x39, - 0x62, - 0x7A, - 0x86, - 0x96, - 0x6F, - 0x6F, - 0x70, - 0x15, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x24, - 0x0D, - 0x15, - 0x49, - 0x28, - 0x28, - 0x2D, - 0x28, - 0x28, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x22, - 0x2F, - 0x33, - 0x40, - 0x00, - 0x05, - 0x33, - 0x00, - 0x16, - 0x52, - 0x44, - 0x44, - 0x44, - 0x38, - 0x3D, - 0x23, - 0x20, - 0x38, - 0x44, - 0x23, - 0x42, - 0x42, - 0x42, - 0x58, - 0x3D, - 0x42, - 0x54, - 0x6B, - 0xBF, - 0xE7, - 0xE7, - 0x0B, - 0xD2, - 0x00, - 0x1D, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x0A, - 0xBB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xCB, - 0x04, - 0xBB, - 0x00, - 0x0B, - 0xCB, - 0xB3, - 0xBF, - 0xBB, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0x00, - 0x04, - 0xBF, - 0x01, - 0xB8, - 0x01, - 0xAE, - 0x04, - 0xBF, - 0x01, - 0xB3, - 0x07, - 0xBF, - 0x00, - 0x05, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xBF, - 0x00, - 0x06, - 0xB8, - 0x01, - 0xC5, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x13, - 0x95, - 0x8E, - 0x9F, - 0x95, - 0x95, - 0x8E, - 0x9C, - 0x82, - 0x95, - 0xAA, - 0xAA, - 0x82, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9F, - 0x95, - 0x00, - 0x06, - 0x9C, - 0x00, - 0x05, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x00, - 0x04, - 0x9C, - 0x01, - 0xC3, - 0x04, - 0x9C, - 0x01, - 0xC3, - 0x09, - 0x9C, - 0x00, - 0x7E, - 0xBC, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0xD0, - 0xC0, - 0xE8, - 0x65, - 0x62, - 0x5D, - 0x65, - 0x7B, - 0x7B, - 0x86, - 0xFC, - 0xD0, - 0xD0, - 0xD0, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xC0, - 0x86, - 0x05, - 0x06, - 0x05, - 0xA9, - 0xD0, - 0xA9, - 0x6D, - 0x6D, - 0x89, - 0x6F, - 0xA8, - 0xA9, - 0x96, - 0xF1, - 0xD0, - 0x89, - 0x1E, - 0xFF, - 0xD0, - 0xA8, - 0x6F, - 0x01, - 0x86, - 0xF1, - 0xF1, - 0xA9, - 0x7A, - 0x89, - 0x89, - 0x4D, - 0xC0, - 0xF1, - 0xC0, - 0x5B, - 0x05, - 0x6F, - 0xC0, - 0x7A, - 0x6F, - 0x05, - 0x1C, - 0xD0, - 0xA8, - 0xD0, - 0xA8, - 0x5B, - 0x86, - 0x86, - 0x62, - 0x84, - 0x6C, - 0x05, - 0x26, - 0x67, - 0x82, - 0x65, - 0x76, - 0x7B, - 0x76, - 0x7B, - 0x79, - 0x57, - 0x12, - 0x09, - 0x4D, - 0x4E, - 0x6F, - 0xA3, - 0x86, - 0x6F, - 0x39, - 0x0E, - 0x09, - 0x1C, - 0x04, - 0x05, - 0x05, - 0x05, - 0x09, - 0x17, - 0x86, - 0xA3, - 0x86, - 0x6F, - 0xA9, - 0xA9, - 0xC0, - 0xF1, - 0xA3, - 0x6D, - 0xA3, - 0x60, - 0x49, - 0x15, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x07, - 0x28, - 0x00, - 0x25, - 0x3E, - 0x3E, - 0x28, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x40, - 0x40, - 0x23, - 0x44, - 0x23, - 0x20, - 0x20, - 0x30, - 0x20, - 0x23, - 0x44, - 0x23, - 0x44, - 0x3D, - 0x42, - 0x54, - 0x42, - 0x42, - 0x54, - 0x5F, - 0x7B, - 0xE7, - 0xD2, - 0xD2, - 0xE7, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x0F, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x39, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xB5, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xCB, - 0xB3, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xB3, - 0xCB, - 0xAE, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xBF, - 0xB3, - 0xB8, - 0xB3, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xB3, - 0xAE, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x0E, - 0xB8, - 0xBF, - 0xBF, - 0xB8, - 0xB8, - 0xB8, - 0xC7, - 0xB8, - 0xCF, - 0xAE, - 0xCF, - 0xAE, - 0xC5, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x15, - 0x9F, - 0x95, - 0x9F, - 0x8E, - 0x9F, - 0x95, - 0x9F, - 0xAA, - 0x9C, - 0x82, - 0x95, - 0x9F, - 0x9C, - 0x9F, - 0x95, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x00, - 0x0D, - 0x9C, - 0x00, - 0x06, - 0xAA, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9F, - 0x09, - 0x9C, - 0x00, - 0x97, - 0x98, - 0x95, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x95, - 0xFA, - 0xFF, - 0x81, - 0xA9, - 0x43, - 0x4E, - 0x5D, - 0x86, - 0x86, - 0xC0, - 0xD0, - 0xFA, - 0xD0, - 0xFF, - 0xFF, - 0xFC, - 0xF1, - 0xBD, - 0xA9, - 0x1E, - 0x05, - 0x06, - 0x06, - 0xA9, - 0xA9, - 0xA9, - 0x6D, - 0x6D, - 0x7A, - 0x7A, - 0x7A, - 0xA9, - 0xA9, - 0xA9, - 0x89, - 0x39, - 0x32, - 0xF1, - 0xBD, - 0x86, - 0x4D, - 0x05, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xA8, - 0x96, - 0xA8, - 0xF1, - 0xF1, - 0x39, - 0x86, - 0x71, - 0xD0, - 0xBD, - 0x89, - 0x1C, - 0x03, - 0xBD, - 0xD0, - 0x84, - 0xA8, - 0x11, - 0xA9, - 0x86, - 0x86, - 0x71, - 0xA3, - 0x05, - 0x26, - 0x60, - 0x65, - 0x5D, - 0x65, - 0x76, - 0x79, - 0x79, - 0x71, - 0x79, - 0x57, - 0x09, - 0x39, - 0x6F, - 0x3C, - 0x86, - 0xE8, - 0x6F, - 0x6F, - 0x6F, - 0x09, - 0x09, - 0x86, - 0x86, - 0x5B, - 0x29, - 0x10, - 0x62, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xE8, - 0xD0, - 0xFC, - 0xC0, - 0x7A, - 0x78, - 0x6D, - 0x26, - 0x4C, - 0x15, - 0x56, - 0x28, - 0x19, - 0x3E, - 0x0A, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x3E, - 0x28, - 0x2F, - 0x09, - 0x2F, - 0x22, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x33, - 0x40, - 0x23, - 0x23, - 0x23, - 0x18, - 0x20, - 0x00, - 0x05, - 0x23, - 0x00, - 0x0A, - 0x40, - 0x2E, - 0x48, - 0x44, - 0x42, - 0x54, - 0x63, - 0x66, - 0xA5, - 0xE7, - 0x0B, - 0xD2, - 0x00, - 0x05, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0x00, - 0x05, - 0xC2, - 0x01, - 0xC4, - 0x05, - 0xC2, - 0x00, - 0x18, - 0xC4, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0x07, - 0xBB, - 0x00, - 0x09, - 0xB0, - 0xC4, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0xBF, - 0xBB, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x04, - 0xBB, - 0xBF, - 0xB3, - 0xB8, - 0x05, - 0xBF, - 0x00, - 0x04, - 0xB3, - 0xB3, - 0xCB, - 0xB3, - 0x08, - 0xBF, - 0x00, - 0x0D, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xA7, - 0xB8, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x07, - 0x9F, - 0x00, - 0x0B, - 0x95, - 0x8E, - 0x95, - 0x9F, - 0x9C, - 0x98, - 0x95, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x00, - 0x0E, - 0x9C, - 0x00, - 0x95, - 0x95, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x9C, - 0x9C, - 0x95, - 0xAA, - 0xC3, - 0x9C, - 0x9C, - 0xBC, - 0xF1, - 0xD8, - 0xA9, - 0xE8, - 0xE8, - 0x3C, - 0x3C, - 0x71, - 0x6F, - 0xD0, - 0xFC, - 0xFC, - 0xF1, - 0xD0, - 0xFC, - 0xFF, - 0xF1, - 0xA9, - 0x62, - 0x09, - 0x0D, - 0x09, - 0x4D, - 0xD0, - 0xF1, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0x1C, - 0xA9, - 0xA9, - 0xD0, - 0xA9, - 0x96, - 0x05, - 0x5B, - 0xFC, - 0xC0, - 0x7A, - 0x09, - 0x05, - 0x89, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xFC, - 0xF1, - 0xBD, - 0x89, - 0xC0, - 0xBD, - 0x09, - 0x96, - 0xA3, - 0xF1, - 0xC0, - 0xA8, - 0x6C, - 0x01, - 0x84, - 0xBD, - 0x5B, - 0x6F, - 0x6C, - 0xC0, - 0x62, - 0x86, - 0x86, - 0x71, - 0x05, - 0x4C, - 0x4A, - 0x4E, - 0x5D, - 0x1B, - 0x03, - 0x0B, - 0x5B, - 0x65, - 0x79, - 0x78, - 0x2D, - 0x09, - 0x6F, - 0x5D, - 0x3C, - 0x86, - 0xC0, - 0x86, - 0xA9, - 0x86, - 0x39, - 0x2A, - 0xC0, - 0xF1, - 0xD0, - 0xF1, - 0x86, - 0xA3, - 0xC0, - 0xFC, - 0xC0, - 0xFC, - 0xFC, - 0xE8, - 0xC0, - 0x97, - 0x78, - 0x4C, - 0x49, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x28, - 0x2F, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x28, - 0x2F, - 0x3E, - 0x00, - 0x00, - 0x04, - 0x2F, - 0x00, - 0x19, - 0x33, - 0x22, - 0x22, - 0x22, - 0x2F, - 0x33, - 0x33, - 0x23, - 0x13, - 0x23, - 0x44, - 0x23, - 0x23, - 0x23, - 0x44, - 0x44, - 0x20, - 0x44, - 0x42, - 0x50, - 0x58, - 0x6B, - 0x81, - 0xCF, - 0xE7, - 0x00, - 0x0F, - 0xD2, - 0x00, - 0x28, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xB5, - 0xC2, - 0xC4, - 0xB6, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xB6, - 0xC4, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xB5, - 0xB5, - 0x06, - 0xBB, - 0x00, - 0x13, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBF, - 0xBB, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xBF, - 0xB3, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x10, - 0xB3, - 0xB3, - 0xB3, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xB8, - 0xBF, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xC7, - 0xC7, - 0xAE, - 0x04, - 0xB8, - 0x01, - 0xAE, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x18, - 0x95, - 0x8E, - 0x9F, - 0x9F, - 0x82, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0x82, - 0x9C, - 0x98, - 0x95, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x09, - 0x9C, - 0x00, - 0x12, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x04, - 0x9C, - 0x00, - 0x84, - 0x95, - 0xFF, - 0xFC, - 0x7A, - 0x86, - 0xC0, - 0xA3, - 0x86, - 0xC0, - 0xF1, - 0xF1, - 0xF1, - 0xFA, - 0xF1, - 0xD0, - 0xBD, - 0xFC, - 0xF1, - 0x96, - 0x09, - 0x06, - 0x06, - 0x11, - 0xD0, - 0xA9, - 0xF1, - 0xA9, - 0x89, - 0xA9, - 0xBD, - 0x86, - 0x6F, - 0xBD, - 0xF1, - 0xBD, - 0x6F, - 0x0E, - 0x62, - 0xFC, - 0xA8, - 0x6F, - 0x00, - 0x39, - 0xC0, - 0xA8, - 0xA9, - 0xBD, - 0xA9, - 0xC0, - 0xBD, - 0xF1, - 0xBD, - 0xBD, - 0xC0, - 0x10, - 0x1C, - 0xBD, - 0xF1, - 0xA8, - 0xA8, - 0xBD, - 0x2A, - 0x6C, - 0xC0, - 0x6F, - 0x05, - 0x96, - 0xC0, - 0x71, - 0xA3, - 0x5B, - 0x71, - 0x09, - 0x56, - 0x4A, - 0x5D, - 0x67, - 0x00, - 0x03, - 0x01, - 0x00, - 0x9B, - 0x65, - 0x78, - 0x4C, - 0x10, - 0x16, - 0x5D, - 0x62, - 0x6F, - 0x86, - 0x86, - 0xA3, - 0xC0, - 0xF1, - 0x96, - 0x86, - 0xF1, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xE8, - 0xFC, - 0xFC, - 0xF1, - 0xE8, - 0x4C, - 0x49, - 0x26, - 0x49, - 0x28, - 0x28, - 0x3E, - 0x1F, - 0x2F, - 0x22, - 0x3E, - 0x2F, - 0x3E, - 0x33, - 0x02, - 0x2F, - 0x07, - 0x2F, - 0x13, - 0x2F, - 0x4F, - 0x4F, - 0x4F, - 0x05, - 0x2F, - 0x00, - 0x13, - 0x3E, - 0x08, - 0x2F, - 0x23, - 0x40, - 0x23, - 0x20, - 0x20, - 0x20, - 0x44, - 0x44, - 0x40, - 0x40, - 0x42, - 0x59, - 0x42, - 0x54, - 0x5F, - 0x7B, - 0x00, - 0x0B, - 0xD2, - 0x00, - 0x08, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x0A, - 0xC2, - 0x01, - 0xC4, - 0x04, - 0xC2, - 0x00, - 0x0C, - 0xB5, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0x04, - 0xC4, - 0x00, - 0x0D, - 0xB5, - 0xB5, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x05, - 0xB3, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0x00, - 0x06, - 0xB3, - 0x00, - 0x05, - 0xB8, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x0F, - 0xBB, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0x00, - 0x05, - 0xB8, - 0x01, - 0xC5, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x98, - 0x8E, - 0x95, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x07, - 0x8E, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x00, - 0x06, - 0x9F, - 0x00, - 0x04, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x09, - 0x9C, - 0x00, - 0xB1, - 0xAA, - 0x9F, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x98, - 0xC3, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0xFA, - 0xFF, - 0xBD, - 0x60, - 0x7A, - 0xF1, - 0xFA, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0xFF, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xC0, - 0x6F, - 0x06, - 0x06, - 0x32, - 0xF1, - 0xFA, - 0xFC, - 0xF1, - 0xD0, - 0xBD, - 0xA9, - 0xC0, - 0xA8, - 0x89, - 0xF1, - 0xFC, - 0xBD, - 0xBD, - 0x06, - 0x6F, - 0xFF, - 0xE8, - 0x6F, - 0x05, - 0x2A, - 0xF1, - 0xA8, - 0xA8, - 0xF1, - 0xBD, - 0xBD, - 0xF1, - 0xF1, - 0xFC, - 0xD0, - 0xC0, - 0x1C, - 0x05, - 0xA8, - 0xF1, - 0xF1, - 0xA9, - 0xA8, - 0xAF, - 0x86, - 0xF1, - 0x86, - 0x05, - 0x62, - 0xE8, - 0x86, - 0xA3, - 0x86, - 0x7B, - 0x06, - 0x32, - 0x4D, - 0x5B, - 0x2F, - 0x00, - 0x01, - 0x00, - 0x00, - 0x19, - 0x76, - 0x76, - 0x4C, - 0x0D, - 0x1C, - 0x65, - 0x5D, - 0x39, - 0xA9, - 0x86, - 0x6F, - 0xC0, - 0xA9, - 0xF1, - 0xD0, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0xA9, - 0xE8, - 0xF1, - 0xA9, - 0xD0, - 0xC0, - 0xC0, - 0x8D, - 0x2D, - 0x2D, - 0x28, - 0x26, - 0x49, - 0x19, - 0x3E, - 0x2F, - 0x3E, - 0x3E, - 0x4F, - 0x22, - 0x2F, - 0x2F, - 0x2F, - 0x33, - 0x4F, - 0x13, - 0x4F, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x13, - 0x4F, - 0x2F, - 0x14, - 0x2F, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x40, - 0x23, - 0x20, - 0x44, - 0x3D, - 0x40, - 0x40, - 0x2E, - 0x38, - 0x30, - 0x3D, - 0x59, - 0x6B, - 0xB8, - 0x00, - 0x0C, - 0xD2, - 0x00, - 0x0C, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x08, - 0xC2, - 0x00, - 0x1B, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xBB, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xB0, - 0xC4, - 0xB5, - 0x00, - 0x08, - 0xBB, - 0x00, - 0x2B, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBF, - 0xB0, - 0xBF, - 0xB3, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0xBB, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xB8, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xB8, - 0xB8, - 0xA7, - 0xB8, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x84, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0x8E, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x8E, - 0x9F, - 0x9F, - 0x9F, - 0x98, - 0x95, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xB9, - 0xFC, - 0xBD, - 0xBD, - 0xFF, - 0xFC, - 0xFF, - 0xFC, - 0xFC, - 0xFF, - 0xFC, - 0xFC, - 0xD0, - 0xFC, - 0xF1, - 0x89, - 0xA9, - 0x32, - 0x05, - 0x1F, - 0xA9, - 0xF1, - 0xFF, - 0xF1, - 0xFC, - 0xF1, - 0xF1, - 0xF1, - 0xA8, - 0xA8, - 0xD0, - 0xF1, - 0xFF, - 0xBD, - 0x96, - 0x03, - 0x6D, - 0xF1, - 0xA9, - 0x86, - 0x06, - 0x5B, - 0xFC, - 0xBD, - 0xA9, - 0xBD, - 0xC0, - 0xF1, - 0xFC, - 0xBD, - 0xFC, - 0xFF, - 0xF1, - 0x62, - 0x05, - 0xA3, - 0xC0, - 0xD0, - 0xC0, - 0xA9, - 0xF1, - 0xC0, - 0xFC, - 0xC0, - 0x1C, - 0x5D, - 0xA3, - 0xA8, - 0x86, - 0x86, - 0xA3, - 0x06, - 0x15, - 0x32, - 0x39, - 0x1F, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x1E, - 0x5B, - 0x78, - 0x4C, - 0x06, - 0x4E, - 0x71, - 0x6F, - 0x4D, - 0x86, - 0xA3, - 0x86, - 0x96, - 0xC0, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0x89, - 0x96, - 0xE8, - 0xC0, - 0x6F, - 0x57, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x2B, - 0x28, - 0x28, - 0x2F, - 0x2F, - 0x3E, - 0x3E, - 0x28, - 0x04, - 0x2F, - 0x22, - 0x22, - 0x22, - 0x4F, - 0x55, - 0x4F, - 0x40, - 0x52, - 0x44, - 0x52, - 0x55, - 0x33, - 0x40, - 0x33, - 0x55, - 0x22, - 0x2F, - 0x33, - 0x40, - 0x33, - 0x23, - 0x40, - 0x44, - 0x23, - 0x40, - 0x23, - 0x40, - 0x42, - 0x42, - 0x54, - 0x45, - 0x6B, - 0xC4, - 0xE7, - 0x00, - 0x09, - 0xD2, - 0x00, - 0x0B, - 0xC2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0x00, - 0x0E, - 0xC2, - 0x00, - 0x1F, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xBB, - 0xC4, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xBB, - 0xC4, - 0xB5, - 0xBB, - 0xBB, - 0xB0, - 0xB0, - 0x00, - 0x04, - 0xBB, - 0x01, - 0xB3, - 0x01, - 0xBB, - 0x0A, - 0xB3, - 0x00, - 0x12, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBF, - 0xB3, - 0xAE, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0x05, - 0xB8, - 0x00, - 0x06, - 0xC5, - 0xAE, - 0xCF, - 0xAE, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x06, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x95, - 0x08, - 0x9F, - 0x01, - 0x9C, - 0x05, - 0x9F, - 0x00, - 0x09, - 0xAA, - 0x9C, - 0x9F, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x1A, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xC3, - 0xFF, - 0xD0, - 0x06, - 0xFF, - 0x00, - 0x64, - 0xF1, - 0xD0, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0x89, - 0x89, - 0x60, - 0x0D, - 0x06, - 0xFC, - 0xFA, - 0xFC, - 0xFF, - 0xF1, - 0x7A, - 0xD0, - 0xA9, - 0x6F, - 0xA9, - 0xBD, - 0xC0, - 0xFC, - 0xD0, - 0x7A, - 0x05, - 0x86, - 0xF1, - 0x96, - 0x62, - 0x05, - 0x39, - 0xFC, - 0xFC, - 0xD0, - 0xC0, - 0xD0, - 0xC0, - 0xF1, - 0xBD, - 0xF1, - 0xA9, - 0xC0, - 0x97, - 0x05, - 0x86, - 0xFC, - 0xD0, - 0xD0, - 0xC0, - 0xD0, - 0xD0, - 0xC0, - 0x7B, - 0x86, - 0x5B, - 0xE8, - 0x96, - 0x7B, - 0xC0, - 0xA3, - 0x3C, - 0x12, - 0x15, - 0x4D, - 0x32, - 0x02, - 0x03, - 0x00, - 0x00, - 0x4D, - 0x78, - 0x60, - 0x49, - 0x03, - 0x3C, - 0x5D, - 0x3C, - 0x3C, - 0x86, - 0x86, - 0x89, - 0x6F, - 0xA3, - 0xA9, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xD0, - 0xC0, - 0xBD, - 0x89, - 0x89, - 0x78, - 0x41, - 0x2D, - 0x0D, - 0x15, - 0x05, - 0x28, - 0x00, - 0x15, - 0x3E, - 0x28, - 0x00, - 0x28, - 0x28, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x33, - 0x33, - 0x55, - 0x44, - 0x40, - 0x23, - 0x40, - 0x40, - 0x33, - 0x33, - 0x40, - 0x55, - 0x00, - 0x04, - 0x33, - 0x00, - 0x0D, - 0x40, - 0x23, - 0x23, - 0x23, - 0x2E, - 0x2E, - 0x44, - 0x52, - 0x42, - 0x3D, - 0x58, - 0x81, - 0xA7, - 0x00, - 0x09, - 0xD2, - 0x00, - 0x0B, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0x00, - 0x0E, - 0xC2, - 0x00, - 0x29, - 0xB5, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xB6, - 0xC4, - 0xC4, - 0xC2, - 0xB5, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xC4, - 0xBB, - 0xC4, - 0xB0, - 0xC4, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB3, - 0xB0, - 0xB0, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0x00, - 0x05, - 0xB3, - 0x01, - 0xBF, - 0x0A, - 0xB3, - 0x00, - 0x15, - 0xAE, - 0xB3, - 0xB8, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x9F, - 0x98, - 0x95, - 0x8E, - 0x04, - 0x9F, - 0x00, - 0x05, - 0x8E, - 0x9C, - 0x95, - 0x8E, - 0x9C, - 0x00, - 0x04, - 0x9F, - 0x01, - 0x9C, - 0x04, - 0x9F, - 0x00, - 0x23, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x64, - 0xFA, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xD0, - 0xA9, - 0x7A, - 0x6D, - 0x60, - 0x1F, - 0x7A, - 0xD0, - 0x89, - 0xD0, - 0xF1, - 0xFC, - 0xF1, - 0xFC, - 0xBD, - 0xBD, - 0x6C, - 0xD0, - 0xD0, - 0xFC, - 0xBD, - 0x6F, - 0x03, - 0x96, - 0xC0, - 0xBD, - 0x5B, - 0x00, - 0x62, - 0xD0, - 0xFC, - 0xF1, - 0x96, - 0xE8, - 0xF1, - 0xF1, - 0xC0, - 0xF1, - 0xD0, - 0xBD, - 0x5B, - 0x09, - 0x96, - 0xFC, - 0xF1, - 0x79, - 0xF1, - 0xD0, - 0xF1, - 0xFC, - 0x62, - 0xA3, - 0x5D, - 0xD0, - 0xA3, - 0xA3, - 0xF1, - 0x86, - 0x86, - 0x09, - 0x12, - 0x4A, - 0x1F, - 0x4C, - 0x1F, - 0x12, - 0x4D, - 0x67, - 0x62, - 0x4C, - 0x0D, - 0x05, - 0x4E, - 0x71, - 0x3C, - 0x62, - 0x86, - 0x86, - 0x96, - 0x96, - 0xA9, - 0x96, - 0xD0, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0x86, - 0x62, - 0x62, - 0x60, - 0x2D, - 0x2D, - 0x28, - 0x12, - 0x0A, - 0x28, - 0x00, - 0x11, - 0x2F, - 0x28, - 0x3E, - 0x2F, - 0x33, - 0x4F, - 0x55, - 0x18, - 0x40, - 0x21, - 0x59, - 0x44, - 0x44, - 0x44, - 0x40, - 0x40, - 0x40, - 0x00, - 0x06, - 0x33, - 0x00, - 0x0A, - 0x23, - 0x44, - 0x44, - 0x54, - 0x44, - 0x3D, - 0x45, - 0x58, - 0x6B, - 0xCB, - 0x08, - 0xD2, - 0x00, - 0x0A, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x0C, - 0xC2, - 0x00, - 0x2F, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC4, - 0xB6, - 0xC2, - 0xC4, - 0xB5, - 0xC2, - 0xB6, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xC4, - 0xB0, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0xB0, - 0x00, - 0x09, - 0xB3, - 0x00, - 0x1B, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xB3, - 0xBF, - 0xB8, - 0xAE, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xB8, - 0xAE, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9C, - 0x01, - 0x8E, - 0x05, - 0x9F, - 0x00, - 0x04, - 0xA7, - 0x9F, - 0x9F, - 0x98, - 0x0B, - 0x9F, - 0x00, - 0x0E, - 0x9C, - 0xAA, - 0x9F, - 0x9F, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x9F, - 0x9C, - 0xAA, - 0x9F, - 0x05, - 0xAA, - 0x00, - 0x11, - 0x9F, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9B, - 0x00, - 0x05, - 0xFF, - 0x01, - 0xFC, - 0x04, - 0xFF, - 0x00, - 0x81, - 0xFC, - 0xFF, - 0xD0, - 0x89, - 0x6D, - 0x7A, - 0x89, - 0xFA, - 0xD0, - 0xFC, - 0xF1, - 0x89, - 0xD0, - 0xF1, - 0xA9, - 0x96, - 0xA9, - 0xA9, - 0xAF, - 0xA9, - 0xD0, - 0xD0, - 0x60, - 0x00, - 0xAF, - 0xF1, - 0xC0, - 0x39, - 0x06, - 0x86, - 0xC0, - 0xFC, - 0xFC, - 0xA8, - 0x86, - 0xE8, - 0xF1, - 0xBD, - 0xF1, - 0xF1, - 0xA9, - 0x4A, - 0x0E, - 0xC0, - 0xF1, - 0xF1, - 0x1C, - 0xBD, - 0xD0, - 0xD0, - 0xF1, - 0xA8, - 0xC0, - 0xA3, - 0xFF, - 0x86, - 0x86, - 0xC0, - 0xA3, - 0xE8, - 0x5D, - 0x05, - 0x32, - 0x1F, - 0x1F, - 0x32, - 0x5B, - 0x57, - 0x32, - 0x32, - 0x60, - 0x03, - 0x1F, - 0x43, - 0x86, - 0x5B, - 0x7B, - 0x96, - 0x62, - 0xBD, - 0x6F, - 0x89, - 0xBD, - 0xF1, - 0xA9, - 0xA8, - 0x96, - 0x7F, - 0x67, - 0x60, - 0x60, - 0x49, - 0x2D, - 0x28, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x33, - 0x55, - 0x55, - 0x44, - 0x42, - 0x42, - 0x40, - 0x44, - 0x40, - 0x59, - 0x40, - 0x44, - 0x59, - 0x52, - 0x33, - 0x40, - 0x40, - 0x44, - 0x00, - 0x04, - 0x42, - 0x00, - 0x04, - 0x30, - 0x59, - 0x5F, - 0x7B, - 0x09, - 0xD2, - 0x00, - 0x06, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xD2, - 0x0E, - 0xC2, - 0x00, - 0x31, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xB0, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xB5, - 0xBB, - 0xB0, - 0xB0, - 0xB0, - 0xBB, - 0xBB, - 0xB0, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x06, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0x0A, - 0xB3, - 0x00, - 0x10, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xC5, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x06, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0xAA, - 0x8E, - 0x0A, - 0x9F, - 0x00, - 0x0F, - 0xAA, - 0x9F, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0x9F, - 0x9F, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x04, - 0x9F, - 0x9C, - 0xAA, - 0x9F, - 0x06, - 0xAA, - 0x01, - 0x9C, - 0x04, - 0xAA, - 0x00, - 0x07, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x8E, - 0x95, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x5A, - 0xFC, - 0xFF, - 0xFF, - 0xFC, - 0xFF, - 0xFC, - 0xF1, - 0xD0, - 0xA9, - 0xBD, - 0xBD, - 0xFC, - 0xF1, - 0xFF, - 0xFC, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0x1C, - 0xA9, - 0xBD, - 0xA9, - 0xD0, - 0xBD, - 0xF1, - 0x39, - 0x0F, - 0xD0, - 0xFF, - 0xA8, - 0x1E, - 0x09, - 0xC0, - 0xD0, - 0xFC, - 0xBD, - 0xC0, - 0x2A, - 0xBD, - 0xC0, - 0xBD, - 0xC0, - 0xF1, - 0xC0, - 0x4D, - 0x39, - 0xA8, - 0xF1, - 0x96, - 0x05, - 0x7A, - 0xD0, - 0xD0, - 0xFC, - 0xE8, - 0xE8, - 0xA3, - 0xE8, - 0x96, - 0x6F, - 0xA3, - 0xFC, - 0xA8, - 0xE8, - 0x6F, - 0x10, - 0x06, - 0x19, - 0x4A, - 0x4A, - 0x39, - 0x29, - 0x32, - 0x03, - 0x03, - 0x43, - 0xA9, - 0x5D, - 0xA3, - 0x62, - 0x86, - 0x6F, - 0x86, - 0xA8, - 0xC0, - 0xF1, - 0xF1, - 0xE8, - 0x96, - 0x04, - 0x4C, - 0x00, - 0x0D, - 0x28, - 0x2D, - 0x28, - 0x28, - 0x28, - 0x2F, - 0x28, - 0x2F, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x28, - 0x00, - 0x05, - 0x3E, - 0x00, - 0x29, - 0x2F, - 0x2F, - 0x01, - 0x2F, - 0x2F, - 0x07, - 0x33, - 0x22, - 0x33, - 0x33, - 0x33, - 0x23, - 0x33, - 0x40, - 0x40, - 0x33, - 0x23, - 0x44, - 0x40, - 0x42, - 0x42, - 0x44, - 0x54, - 0x42, - 0x38, - 0x42, - 0x59, - 0x59, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x06, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xB6, - 0x05, - 0xC2, - 0x01, - 0xB6, - 0x08, - 0xC2, - 0x00, - 0x0C, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB6, - 0x05, - 0xB5, - 0x00, - 0x0E, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xB0, - 0xBB, - 0xBB, - 0xB5, - 0x04, - 0xB0, - 0x00, - 0x11, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x16, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xB3, - 0xB8, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xAE, - 0xC5, - 0xAE, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x07, - 0x98, - 0xAA, - 0x8E, - 0x9F, - 0x9F, - 0x8E, - 0xAA, - 0x00, - 0x06, - 0x9F, - 0x00, - 0x12, - 0xAA, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x06, - 0xAA, - 0x00, - 0x11, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9F, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x95, - 0x82, - 0xB2, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x5F, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xD0, - 0xF1, - 0xA9, - 0xA9, - 0xBD, - 0xF1, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xD0, - 0x96, - 0xA9, - 0x32, - 0xB1, - 0xBD, - 0xD0, - 0xD0, - 0xBD, - 0xA9, - 0x39, - 0x0A, - 0xA9, - 0xFF, - 0xF1, - 0x11, - 0x0E, - 0xC0, - 0xFC, - 0xF1, - 0xFC, - 0x6F, - 0x00, - 0x6F, - 0xF1, - 0xBD, - 0xBD, - 0xC0, - 0x6F, - 0x39, - 0x5B, - 0xC0, - 0xFC, - 0xBD, - 0x09, - 0x5B, - 0xD0, - 0xD0, - 0xFC, - 0xC0, - 0x86, - 0xD0, - 0xE8, - 0xF1, - 0xC0, - 0x86, - 0xA3, - 0xE8, - 0xE8, - 0xE8, - 0xA3, - 0x5D, - 0x09, - 0x0A, - 0x09, - 0x06, - 0x10, - 0x32, - 0x17, - 0xA3, - 0x5A, - 0xF1, - 0x5D, - 0x6F, - 0x39, - 0x6F, - 0x86, - 0xA9, - 0xBD, - 0xC0, - 0xFC, - 0xC0, - 0x4C, - 0x3E, - 0x49, - 0x19, - 0x26, - 0x28, - 0x49, - 0x00, - 0x05, - 0x28, - 0x00, - 0x35, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x4F, - 0x3E, - 0x33, - 0x3E, - 0x4F, - 0x33, - 0x2F, - 0x13, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x2F, - 0x13, - 0x33, - 0x33, - 0x33, - 0x40, - 0x40, - 0x23, - 0x40, - 0x42, - 0x63, - 0x44, - 0x42, - 0x58, - 0x42, - 0x58, - 0x5F, - 0x5F, - 0x6B, - 0xCB, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0x00, - 0x06, - 0xC2, - 0x01, - 0xB6, - 0x05, - 0xC2, - 0x00, - 0x1A, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xC4, - 0x04, - 0xB5, - 0x00, - 0x10, - 0xBB, - 0xB5, - 0xB5, - 0xBB, - 0xBB, - 0xB0, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xBB, - 0x04, - 0xB0, - 0x00, - 0x12, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xAE, - 0x05, - 0xB3, - 0x00, - 0x12, - 0xB8, - 0xAE, - 0xAE, - 0xB3, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x10, - 0x9C, - 0x8E, - 0x9F, - 0x8E, - 0xAA, - 0xAA, - 0x9F, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0xA7, - 0x04, - 0x9F, - 0x00, - 0x0D, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9F, - 0x00, - 0x18, - 0xAA, - 0x00, - 0x65, - 0xB2, - 0xC9, - 0xEA, - 0xB9, - 0xD0, - 0xD0, - 0xFF, - 0xFF, - 0xF1, - 0xFF, - 0xFF, - 0xFF, - 0xF1, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xFF, - 0xBD, - 0xFF, - 0xFC, - 0xD0, - 0xFC, - 0xA9, - 0x4D, - 0x6D, - 0x57, - 0x57, - 0x95, - 0xCE, - 0xA9, - 0xD0, - 0x7A, - 0x32, - 0x09, - 0x89, - 0xD0, - 0xFC, - 0x29, - 0x0B, - 0xA8, - 0xFC, - 0xFC, - 0xE8, - 0x86, - 0x01, - 0x5B, - 0xC0, - 0xF1, - 0xBD, - 0xF1, - 0x86, - 0x09, - 0x4A, - 0xA8, - 0xFC, - 0xF1, - 0x10, - 0x39, - 0xFF, - 0xFF, - 0xD0, - 0xD0, - 0x5D, - 0x86, - 0xC0, - 0xFF, - 0xC0, - 0x96, - 0x6F, - 0xC0, - 0xFC, - 0xC0, - 0xE8, - 0xE8, - 0xC0, - 0xA3, - 0x71, - 0x89, - 0xE8, - 0xA9, - 0xA3, - 0xE8, - 0xE8, - 0x71, - 0xA3, - 0xA3, - 0x6F, - 0xBD, - 0xF1, - 0xC0, - 0xA3, - 0x96, - 0x6C, - 0x0F, - 0x0A, - 0x0D, - 0x12, - 0x28, - 0x28, - 0x49, - 0x00, - 0x05, - 0x28, - 0x00, - 0x06, - 0x2F, - 0x3E, - 0x2F, - 0x3E, - 0x3E, - 0x2F, - 0x04, - 0x3E, - 0x00, - 0x0D, - 0x4F, - 0x33, - 0x33, - 0x33, - 0x13, - 0x33, - 0x33, - 0x33, - 0x23, - 0x33, - 0x13, - 0x40, - 0x23, - 0x00, - 0x05, - 0x33, - 0x00, - 0x0D, - 0x40, - 0x58, - 0x54, - 0x42, - 0x54, - 0x54, - 0x54, - 0x5F, - 0x5F, - 0x5F, - 0x81, - 0xAE, - 0xC2, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x04, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0x0B, - 0xC2, - 0x00, - 0x03, - 0xB6, - 0xC2, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x1E, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB5, - 0xC2, - 0xB6, - 0xC2, - 0xC4, - 0xB6, - 0xB5, - 0xB5, - 0xC4, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xBB, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xBB, - 0xB5, - 0xB0, - 0xB0, - 0xB0, - 0xBB, - 0xB5, - 0xBB, - 0xB0, - 0xA6, - 0x08, - 0xB0, - 0x00, - 0x04, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0x04, - 0xB3, - 0x00, - 0x1D, - 0xB0, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xBF, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xBF, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xB3, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xAE, - 0xB8, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x9F, - 0x98, - 0x98, - 0xAA, - 0x98, - 0x9F, - 0xAA, - 0x8E, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0xAA, - 0x98, - 0x9F, - 0x9F, - 0xAA, - 0x9F, - 0xA7, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9F, - 0x00, - 0x14, - 0xAA, - 0x00, - 0x10, - 0x9F, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0xB2, - 0x8E, - 0xC9, - 0x1F, - 0x19, - 0x4A, - 0x97, - 0xFC, - 0xFC, - 0x6F, - 0x06, - 0xFF, - 0x00, - 0x3B, - 0xFC, - 0xD0, - 0xFF, - 0xF1, - 0xBD, - 0x96, - 0xAF, - 0x6D, - 0x15, - 0x26, - 0x2D, - 0x56, - 0x26, - 0x64, - 0x8F, - 0xBD, - 0xBD, - 0x4D, - 0x06, - 0x6F, - 0xC0, - 0xF1, - 0xA9, - 0x05, - 0x96, - 0xFC, - 0xD0, - 0xFC, - 0x71, - 0x05, - 0x4D, - 0xA9, - 0xFC, - 0xA8, - 0xA3, - 0xA3, - 0x09, - 0x39, - 0xBD, - 0xD0, - 0xF1, - 0x39, - 0x39, - 0xE8, - 0xFC, - 0xFF, - 0xF1, - 0x96, - 0x16, - 0x86, - 0xA3, - 0xFF, - 0xC0, - 0x86, - 0x6F, - 0x86, - 0xE8, - 0xFC, - 0xFC, - 0x00, - 0x06, - 0xE8, - 0x00, - 0x2E, - 0xF1, - 0xA3, - 0x6F, - 0xE8, - 0xA3, - 0x86, - 0xA9, - 0x86, - 0x86, - 0xA3, - 0x2A, - 0x12, - 0x0B, - 0x28, - 0x28, - 0x0A, - 0x28, - 0x0D, - 0x28, - 0x28, - 0x00, - 0x28, - 0x28, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x4F, - 0x2F, - 0x33, - 0x33, - 0x13, - 0x4F, - 0x33, - 0x33, - 0x23, - 0x33, - 0x33, - 0x33, - 0x23, - 0x33, - 0x40, - 0x04, - 0x33, - 0x00, - 0x0E, - 0x40, - 0x33, - 0x44, - 0x44, - 0x59, - 0x54, - 0x58, - 0x58, - 0x66, - 0x66, - 0x81, - 0x81, - 0x81, - 0x9C, - 0x05, - 0xD2, - 0x04, - 0xC2, - 0x00, - 0x05, - 0xD2, - 0xB6, - 0xC2, - 0xB6, - 0xD2, - 0x00, - 0x07, - 0xC2, - 0x00, - 0x1D, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x0C, - 0xBB, - 0xB6, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xBB, - 0x0B, - 0xB0, - 0x00, - 0x0F, - 0xAE, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x15, - 0xAE, - 0xB3, - 0xAE, - 0xB8, - 0xB3, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9C, - 0x04, - 0x9F, - 0x00, - 0x15, - 0xA7, - 0xA7, - 0x9F, - 0x9F, - 0xB2, - 0x9F, - 0xA7, - 0x9F, - 0xAA, - 0x9F, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0xA7, - 0xAA, - 0xAA, - 0x9F, - 0x00, - 0x16, - 0xAA, - 0x01, - 0xB2, - 0x0A, - 0xAA, - 0x00, - 0x41, - 0x80, - 0x4A, - 0x2A, - 0x32, - 0x11, - 0x0F, - 0x35, - 0xAF, - 0xF1, - 0xFF, - 0xFF, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xFC, - 0xFC, - 0x97, - 0x6D, - 0x41, - 0x32, - 0x12, - 0x2D, - 0x28, - 0x4B, - 0x4B, - 0x41, - 0x4B, - 0x24, - 0x8C, - 0xD8, - 0xA9, - 0x11, - 0x12, - 0x7F, - 0x86, - 0x86, - 0x09, - 0x96, - 0xFC, - 0xE8, - 0x7B, - 0x71, - 0x09, - 0x5B, - 0xF1, - 0xE8, - 0xC0, - 0x4D, - 0x86, - 0x11, - 0x39, - 0xFC, - 0xFF, - 0xD0, - 0x6C, - 0x16, - 0x96, - 0xF1, - 0xFF, - 0xFF, - 0xF1, - 0x6F, - 0x10, - 0xC0, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x18, - 0x86, - 0x6F, - 0xE8, - 0xE8, - 0xFC, - 0xE8, - 0xFC, - 0xFC, - 0xE8, - 0xE8, - 0x81, - 0x86, - 0xC0, - 0xA3, - 0x6F, - 0x6F, - 0x6F, - 0xA3, - 0x6F, - 0x05, - 0x06, - 0x05, - 0x09, - 0x05, - 0x05, - 0x28, - 0x00, - 0x03, - 0x00, - 0x28, - 0x28, - 0x00, - 0x05, - 0x3E, - 0x00, - 0x27, - 0x2F, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x33, - 0x13, - 0x33, - 0x40, - 0x23, - 0x40, - 0x40, - 0x23, - 0x33, - 0x40, - 0x33, - 0x33, - 0x2F, - 0x52, - 0x40, - 0x54, - 0x63, - 0x5F, - 0x63, - 0x81, - 0x81, - 0x66, - 0x81, - 0x81, - 0xAE, - 0xD2, - 0xC2, - 0xD2, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x09, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x23, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB5, - 0xC2, - 0xB6, - 0xB5, - 0xC2, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xC4, - 0x00, - 0x04, - 0xB5, - 0x01, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x0C, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x06, - 0xA1, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xA6, - 0x06, - 0xB3, - 0x00, - 0x12, - 0xB0, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xB8, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xBF, - 0xB8, - 0x05, - 0xAE, - 0x00, - 0x04, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x15, - 0x8E, - 0x9F, - 0xAA, - 0x98, - 0x8E, - 0xAA, - 0x9F, - 0xA7, - 0xAA, - 0x8E, - 0x8E, - 0xAA, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0xA7, - 0x00, - 0x10, - 0xAA, - 0x01, - 0xB2, - 0x01, - 0xB2, - 0x04, - 0xAA, - 0x00, - 0x05, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0x00, - 0x0B, - 0xAA, - 0x00, - 0x62, - 0x82, - 0x4C, - 0x4A, - 0x4F, - 0x19, - 0x2F, - 0x32, - 0x1C, - 0x12, - 0x62, - 0xAF, - 0xBD, - 0xD0, - 0xFC, - 0xA8, - 0xC0, - 0x79, - 0x32, - 0x41, - 0x12, - 0x26, - 0x12, - 0x15, - 0x15, - 0x15, - 0x0D, - 0x41, - 0x41, - 0x56, - 0x15, - 0x41, - 0x64, - 0x82, - 0x0D, - 0x4C, - 0x60, - 0x39, - 0x11, - 0xA3, - 0xF1, - 0xD0, - 0xA8, - 0x35, - 0x09, - 0x7A, - 0xFC, - 0xD0, - 0x96, - 0x5B, - 0x62, - 0x32, - 0x09, - 0xF1, - 0xD0, - 0xFC, - 0xA9, - 0x05, - 0xA9, - 0xE8, - 0xF1, - 0xFF, - 0xFF, - 0xC0, - 0x6F, - 0x35, - 0xE8, - 0xFF, - 0xD0, - 0x89, - 0xA9, - 0xA9, - 0x86, - 0x6F, - 0x86, - 0x86, - 0xA3, - 0xA3, - 0xA3, - 0xE8, - 0xA3, - 0xE8, - 0xA3, - 0x86, - 0x86, - 0xA9, - 0xA3, - 0x6F, - 0x05, - 0x03, - 0x0E, - 0x05, - 0x0B, - 0x3E, - 0x28, - 0x28, - 0x28, - 0x0A, - 0x28, - 0x07, - 0x3E, - 0x00, - 0x2E, - 0x2F, - 0x33, - 0x4F, - 0x2F, - 0x2F, - 0x33, - 0x2F, - 0x4F, - 0x33, - 0x33, - 0x52, - 0x33, - 0x23, - 0x40, - 0x33, - 0x21, - 0x40, - 0x44, - 0x44, - 0x40, - 0x44, - 0x52, - 0x33, - 0x52, - 0x52, - 0x52, - 0x42, - 0x63, - 0x66, - 0x66, - 0x81, - 0x66, - 0x81, - 0x81, - 0x9B, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xB6, - 0xD2, - 0x05, - 0xC2, - 0x00, - 0x24, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB6, - 0xB6, - 0x09, - 0xB5, - 0x00, - 0x0E, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xAC, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xA6, - 0x07, - 0xB0, - 0x00, - 0x21, - 0xA1, - 0xA1, - 0xB0, - 0xB3, - 0xA6, - 0xB0, - 0xB3, - 0xA6, - 0xB3, - 0xB3, - 0xA1, - 0xA1, - 0xB3, - 0xB3, - 0xB0, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xBF, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB8, - 0xB3, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x05, - 0xAE, - 0x01, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x11, - 0x9F, - 0x9F, - 0x98, - 0x9F, - 0xAA, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0xAA, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0x00, - 0x0D, - 0xAA, - 0x00, - 0x0C, - 0x9C, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x08, - 0xAA, - 0x01, - 0xB2, - 0x08, - 0xAA, - 0x00, - 0x5A, - 0x82, - 0x80, - 0x67, - 0x4D, - 0x12, - 0x32, - 0x0E, - 0x19, - 0x12, - 0x2D, - 0x03, - 0x12, - 0x03, - 0x12, - 0x12, - 0x26, - 0x12, - 0x0A, - 0x0A, - 0x2D, - 0x56, - 0x49, - 0x56, - 0x56, - 0x49, - 0x15, - 0x0D, - 0x2D, - 0x41, - 0x56, - 0x24, - 0x2D, - 0x64, - 0x64, - 0x60, - 0x80, - 0x6F, - 0x0E, - 0x62, - 0xC0, - 0xC0, - 0x86, - 0x5D, - 0x2A, - 0x96, - 0xFC, - 0xFC, - 0xFC, - 0x86, - 0x10, - 0x32, - 0x11, - 0xD0, - 0xF1, - 0xF1, - 0xC0, - 0x4A, - 0x10, - 0xA9, - 0xFC, - 0xF1, - 0xFF, - 0xFF, - 0xF1, - 0x6F, - 0x96, - 0xD0, - 0xFC, - 0xFF, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0xFC, - 0xE8, - 0xE8, - 0xE8, - 0xA3, - 0xC0, - 0xE8, - 0xC0, - 0xE8, - 0x86, - 0xF1, - 0xA3, - 0x62, - 0x0E, - 0x03, - 0x0F, - 0x06, - 0x07, - 0x28, - 0x0A, - 0x3E, - 0x04, - 0x4F, - 0x00, - 0x17, - 0x33, - 0x33, - 0x23, - 0x40, - 0x23, - 0x2E, - 0x40, - 0x2E, - 0x44, - 0x44, - 0x48, - 0x44, - 0x44, - 0x63, - 0x54, - 0x59, - 0x63, - 0x59, - 0x59, - 0x54, - 0x63, - 0x6B, - 0x66, - 0x00, - 0x04, - 0x81, - 0x00, - 0x04, - 0xFE, - 0xD2, - 0xD2, - 0xD2, - 0x05, - 0xC2, - 0x01, - 0xB6, - 0x01, - 0xD2, - 0x0A, - 0xC2, - 0x00, - 0x0B, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x0E, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB6, - 0x06, - 0xB5, - 0x01, - 0xB6, - 0x06, - 0xB5, - 0x00, - 0x07, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x0A, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA1, - 0xB0, - 0xA6, - 0x04, - 0xB0, - 0x00, - 0x04, - 0xA6, - 0xB3, - 0xA1, - 0xB0, - 0x06, - 0xB3, - 0x00, - 0x0A, - 0xAE, - 0xB3, - 0xA1, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xB8, - 0x09, - 0xAE, - 0x00, - 0x06, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0x00, - 0x00, - 0x00, - 0x10, - 0x98, - 0xAA, - 0x98, - 0xAA, - 0xAA, - 0x8E, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0xA7, - 0x9F, - 0xA7, - 0xAA, - 0xAA, - 0xB2, - 0x0B, - 0xAA, - 0x00, - 0x03, - 0xB2, - 0xAA, - 0xB2, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x0A, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x05, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0x07, - 0xAA, - 0x00, - 0x5F, - 0x9F, - 0x82, - 0x4C, - 0x32, - 0x1F, - 0x3E, - 0x12, - 0x24, - 0x2D, - 0x03, - 0x2D, - 0x0D, - 0x2D, - 0x06, - 0x2D, - 0x0D, - 0x0D, - 0x2D, - 0x24, - 0x49, - 0x56, - 0x0D, - 0x15, - 0x2D, - 0x2D, - 0x2D, - 0x24, - 0x41, - 0x15, - 0x2D, - 0x2D, - 0x15, - 0x15, - 0x2D, - 0x26, - 0x82, - 0x19, - 0x06, - 0x32, - 0xD0, - 0xC0, - 0x39, - 0x1F, - 0x89, - 0xBE, - 0xA8, - 0xBD, - 0xBD, - 0x39, - 0x09, - 0x1C, - 0xE8, - 0xFC, - 0xFC, - 0xBD, - 0xD0, - 0x10, - 0x6F, - 0xC0, - 0xF1, - 0xF1, - 0xFC, - 0xFF, - 0xFC, - 0xA9, - 0xFC, - 0xF1, - 0xF1, - 0xD0, - 0xF1, - 0xC0, - 0xA9, - 0xC0, - 0x86, - 0xC0, - 0xE8, - 0xE8, - 0xC0, - 0x86, - 0x86, - 0x86, - 0xBD, - 0xA3, - 0x4D, - 0x28, - 0x03, - 0x0D, - 0x28, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x2A, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x44, - 0x40, - 0x44, - 0x40, - 0x44, - 0x44, - 0x40, - 0x2E, - 0x44, - 0x30, - 0x40, - 0x30, - 0x42, - 0x44, - 0x59, - 0x58, - 0x59, - 0x5F, - 0x5F, - 0x54, - 0x63, - 0x6B, - 0x81, - 0x81, - 0x81, - 0x9B, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x06, - 0xC2, - 0x00, - 0x03, - 0xB6, - 0xC2, - 0xB6, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x16, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0x08, - 0xB6, - 0x00, - 0x0A, - 0xB5, - 0xB6, - 0xB5, - 0xB6, - 0xAC, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x09, - 0xB0, - 0xB5, - 0xB5, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0xA6, - 0x00, - 0x04, - 0xB0, - 0x01, - 0xA6, - 0x06, - 0xB0, - 0x00, - 0x1E, - 0xA6, - 0xA6, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA6, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xAE, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0x04, - 0xAE, - 0x01, - 0xBF, - 0x04, - 0xAE, - 0x01, - 0xB8, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x19, - 0xAA, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0xA7, - 0xA7, - 0xA7, - 0xB2, - 0x8E, - 0xA7, - 0xA7, - 0xAA, - 0xA7, - 0x98, - 0xAA, - 0xA7, - 0xAA, - 0xAA, - 0xA7, - 0xAA, - 0xB2, - 0xA7, - 0xAA, - 0xB2, - 0x00, - 0x08, - 0xAA, - 0x00, - 0x0F, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0x00, - 0x0D, - 0xAA, - 0x00, - 0x12, - 0x9C, - 0x82, - 0x26, - 0x2D, - 0x26, - 0x4C, - 0x2D, - 0x41, - 0x0A, - 0x0D, - 0x49, - 0x15, - 0x0D, - 0x26, - 0x41, - 0x41, - 0x41, - 0x4C, - 0x04, - 0x56, - 0x00, - 0x06, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x04, - 0x41, - 0x00, - 0x21, - 0x24, - 0x2D, - 0x15, - 0x2D, - 0x15, - 0x15, - 0x28, - 0x4C, - 0x4C, - 0x41, - 0x4C, - 0x60, - 0x9B, - 0xAF, - 0x89, - 0x6F, - 0x1C, - 0x1C, - 0x96, - 0xFC, - 0xFF, - 0xFF, - 0xC0, - 0xC0, - 0x4D, - 0x89, - 0x84, - 0xA8, - 0xBD, - 0xD0, - 0xE8, - 0xFC, - 0xE8, - 0x00, - 0x06, - 0xFC, - 0x00, - 0x3F, - 0xFF, - 0xE8, - 0xC0, - 0xA3, - 0x86, - 0xA3, - 0xE8, - 0xF1, - 0xC0, - 0xA3, - 0x2A, - 0x28, - 0x2D, - 0x28, - 0x49, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x49, - 0x3E, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x3E, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x33, - 0x33, - 0x40, - 0x40, - 0x44, - 0x42, - 0x44, - 0x42, - 0x42, - 0x2E, - 0x42, - 0x44, - 0x42, - 0x44, - 0x44, - 0x63, - 0x59, - 0x63, - 0x63, - 0x58, - 0x42, - 0x66, - 0x6B, - 0x5F, - 0x81, - 0x81, - 0xE8, - 0xC4, - 0x00, - 0x09, - 0xC2, - 0x00, - 0x13, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0x00, - 0x11, - 0xB6, - 0x00, - 0x06, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0x06, - 0xB5, - 0x00, - 0x03, - 0xAC, - 0xB5, - 0xAC, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x27, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xAC, - 0xA1, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xB3, - 0xAE, - 0xA6, - 0xA1, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xA1, - 0xB3, - 0x00, - 0x0C, - 0xAE, - 0x01, - 0xB3, - 0x06, - 0xAE, - 0x00, - 0x03, - 0xB8, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0xA7, - 0x98, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0xA7, - 0xAA, - 0xAA, - 0xA7, - 0xA7, - 0xAA, - 0x9F, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x20, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x07, - 0xAA, - 0x00, - 0x3E, - 0x8E, - 0x32, - 0x56, - 0x2D, - 0x64, - 0x4C, - 0x2D, - 0x2D, - 0x15, - 0x41, - 0x56, - 0x15, - 0x15, - 0x41, - 0x56, - 0x56, - 0x15, - 0x0D, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x4B, - 0x0D, - 0x15, - 0x4B, - 0x15, - 0x56, - 0x41, - 0x0A, - 0x2D, - 0x56, - 0x4B, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x15, - 0x03, - 0x41, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x4C, - 0x78, - 0x6F, - 0x0B, - 0x32, - 0x8D, - 0xAF, - 0xBD, - 0xA5, - 0x96, - 0x4D, - 0x62, - 0x4C, - 0x4C, - 0x60, - 0x6C, - 0x97, - 0x04, - 0xC0, - 0x00, - 0x0D, - 0xA3, - 0xF1, - 0xFC, - 0xE8, - 0xE8, - 0xFC, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xE8, - 0x86, - 0x35, - 0x00, - 0x06, - 0x49, - 0x00, - 0x08, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x28, - 0x28, - 0x28, - 0x49, - 0x04, - 0x3E, - 0x00, - 0x1D, - 0x28, - 0x3E, - 0x3E, - 0x4F, - 0x2F, - 0x2F, - 0x55, - 0x33, - 0x33, - 0x40, - 0x44, - 0x44, - 0x3D, - 0x23, - 0x20, - 0x59, - 0x44, - 0x40, - 0x44, - 0x40, - 0x42, - 0x63, - 0x50, - 0x59, - 0x54, - 0x63, - 0x59, - 0x42, - 0x6B, - 0x00, - 0x04, - 0x81, - 0x00, - 0x03, - 0xAE, - 0xE7, - 0xC4, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0E, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0x18, - 0xB6, - 0x00, - 0x09, - 0xB5, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0x00, - 0x05, - 0xB5, - 0x01, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x28, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA2, - 0xA6, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xB0, - 0xB0, - 0xA1, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0x07, - 0xAE, - 0x00, - 0x10, - 0xB8, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x23, - 0x9F, - 0xAA, - 0x98, - 0xAA, - 0xA7, - 0xAA, - 0xA7, - 0xA7, - 0xAA, - 0xA1, - 0xAA, - 0xAA, - 0xAA, - 0xA7, - 0xB2, - 0xAA, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0x01, - 0xAA, - 0x01, - 0xAA, - 0x05, - 0xB2, - 0x00, - 0x0B, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x00, - 0x06, - 0xAA, - 0x00, - 0x70, - 0x82, - 0x57, - 0x64, - 0x56, - 0x64, - 0x70, - 0x4B, - 0x56, - 0x15, - 0x70, - 0x2D, - 0x49, - 0x0D, - 0x2D, - 0x41, - 0x49, - 0x24, - 0x15, - 0x2D, - 0x64, - 0x56, - 0x56, - 0x49, - 0x41, - 0x2D, - 0x2D, - 0x2D, - 0x4B, - 0x41, - 0x49, - 0x15, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x41, - 0x2D, - 0x0D, - 0x0D, - 0x15, - 0x15, - 0x15, - 0x28, - 0x15, - 0x0D, - 0x0A, - 0x0D, - 0x2D, - 0x0D, - 0x0A, - 0x28, - 0x15, - 0x2D, - 0x26, - 0x28, - 0x12, - 0x5B, - 0x39, - 0x62, - 0x6C, - 0x4C, - 0x4D, - 0x6D, - 0x7D, - 0x7A, - 0x8A, - 0x7A, - 0xA9, - 0xA8, - 0xD0, - 0xFC, - 0xE8, - 0xE8, - 0xA3, - 0x80, - 0x4D, - 0x56, - 0x26, - 0x67, - 0x2D, - 0x49, - 0x28, - 0x28, - 0x2D, - 0x3E, - 0x49, - 0x28, - 0x67, - 0x3E, - 0x67, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x4F, - 0x4F, - 0x33, - 0x4F, - 0x4F, - 0x4F, - 0x55, - 0x55, - 0x55, - 0x52, - 0x58, - 0x44, - 0x42, - 0x42, - 0x59, - 0x42, - 0x33, - 0x04, - 0x44, - 0x00, - 0x13, - 0x42, - 0x42, - 0x54, - 0x63, - 0x59, - 0x59, - 0x63, - 0x6B, - 0x81, - 0x81, - 0x81, - 0xF5, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0D, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0x00, - 0x1B, - 0xB6, - 0x00, - 0x27, - 0xAC, - 0xB6, - 0xB5, - 0xB6, - 0xB5, - 0xAC, - 0xB6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xB5, - 0xB0, - 0xAC, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xA6, - 0xB5, - 0xB0, - 0xB0, - 0xA6, - 0xAC, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x09, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0x00, - 0x04, - 0xAE, - 0x01, - 0xA1, - 0x07, - 0xAE, - 0x00, - 0x03, - 0xB3, - 0xAE, - 0xB8, - 0x00, - 0x0A, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x25, - 0xAA, - 0x8E, - 0xA7, - 0x9F, - 0xB2, - 0x8E, - 0x8E, - 0xAA, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xAA, - 0x05, - 0xB2, - 0x00, - 0x05, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x2B, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0x8F, - 0x70, - 0x64, - 0x64, - 0x41, - 0x41, - 0x8E, - 0x4B, - 0x4B, - 0x64, - 0x56, - 0x41, - 0x2D, - 0x41, - 0x41, - 0x56, - 0x4B, - 0x15, - 0x2D, - 0x41, - 0x41, - 0x56, - 0x56, - 0x41, - 0x24, - 0x2D, - 0x2D, - 0x56, - 0x56, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x2D, - 0x4B, - 0x56, - 0x41, - 0x28, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x26, - 0x0D, - 0x28, - 0x2D, - 0x2D, - 0x15, - 0x28, - 0x2D, - 0x56, - 0x26, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x26, - 0x2D, - 0x0A, - 0x0F, - 0x26, - 0x49, - 0x4C, - 0x57, - 0x57, - 0x8D, - 0xAF, - 0xD0, - 0xE8, - 0xF1, - 0xE8, - 0xA3, - 0x60, - 0x41, - 0x4C, - 0x28, - 0x2D, - 0x49, - 0x28, - 0x05, - 0x49, - 0x00, - 0x23, - 0x3E, - 0x4F, - 0x67, - 0x3E, - 0x67, - 0x4F, - 0x3E, - 0x4F, - 0x4F, - 0x55, - 0x4F, - 0x2F, - 0x4F, - 0x55, - 0x55, - 0x33, - 0x44, - 0x40, - 0x6B, - 0x63, - 0x44, - 0x42, - 0x59, - 0x42, - 0x44, - 0x40, - 0x44, - 0x40, - 0x44, - 0x40, - 0x44, - 0x54, - 0x54, - 0x59, - 0x63, - 0x00, - 0x04, - 0x81, - 0x01, - 0xC5, - 0x01, - 0xC4, - 0x06, - 0xC2, - 0x00, - 0x07, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0x00, - 0x25, - 0xB6, - 0x00, - 0x21, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB5, - 0xA6, - 0xB0, - 0xAC, - 0xB0, - 0xA6, - 0xAC, - 0xB0, - 0x00, - 0x05, - 0xA6, - 0x00, - 0x11, - 0xB0, - 0x99, - 0xA6, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA6, - 0xA1, - 0xB0, - 0xB3, - 0xA1, - 0xB3, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x00, - 0x07, - 0xAE, - 0x01, - 0xB3, - 0x04, - 0xAE, - 0x01, - 0xB3, - 0x09, - 0xAE, - 0x00, - 0x03, - 0xA7, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0xA7, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0xAA, - 0xB2, - 0xAA, - 0x8E, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xBA, - 0x00, - 0x07, - 0xB2, - 0x00, - 0x10, - 0xAA, - 0xBA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0x07, - 0xAA, - 0x00, - 0x5E, - 0x9C, - 0x95, - 0x56, - 0x64, - 0x56, - 0x64, - 0x99, - 0x2D, - 0x64, - 0x64, - 0x41, - 0x24, - 0x41, - 0x56, - 0x4B, - 0x2D, - 0x56, - 0x41, - 0x2D, - 0x49, - 0x4B, - 0x56, - 0x64, - 0x56, - 0x56, - 0x41, - 0x2D, - 0x15, - 0x41, - 0x2D, - 0x0D, - 0x15, - 0x56, - 0x2D, - 0x56, - 0x56, - 0x64, - 0x56, - 0x56, - 0x41, - 0x2D, - 0x41, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x28, - 0x2D, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x49, - 0x2D, - 0x28, - 0x49, - 0x2D, - 0x28, - 0x2D, - 0x0A, - 0x19, - 0x19, - 0x49, - 0x3E, - 0x82, - 0x78, - 0x97, - 0x97, - 0xA3, - 0x7B, - 0x86, - 0x4C, - 0x28, - 0x28, - 0x28, - 0x49, - 0x2D, - 0x28, - 0x2D, - 0x28, - 0x49, - 0x49, - 0x28, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x4F, - 0x3E, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x4F, - 0x04, - 0x33, - 0x00, - 0x06, - 0x59, - 0x59, - 0x52, - 0x44, - 0x59, - 0x63, - 0x05, - 0x44, - 0x00, - 0x1B, - 0x59, - 0x54, - 0x59, - 0x59, - 0x59, - 0x42, - 0x5F, - 0x6B, - 0x66, - 0x81, - 0x81, - 0x81, - 0xAE, - 0xF3, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0x00, - 0x0C, - 0xB6, - 0x01, - 0xAC, - 0x17, - 0xB6, - 0x00, - 0x10, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xB5, - 0xAC, - 0xAC, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xAC, - 0xA6, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0xB0, - 0xA6, - 0xB0, - 0x04, - 0xA6, - 0x00, - 0x0C, - 0xB0, - 0xAC, - 0xA6, - 0xA6, - 0xAC, - 0xA6, - 0xA6, - 0x99, - 0xB0, - 0x99, - 0xB0, - 0x99, - 0x05, - 0xA1, - 0x00, - 0x0B, - 0xB3, - 0xA1, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xB3, - 0xAE, - 0xA1, - 0xA1, - 0x00, - 0x0A, - 0xAE, - 0x01, - 0xB3, - 0x01, - 0xB3, - 0x08, - 0xAE, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x9F, - 0x9F, - 0xA7, - 0xAE, - 0xAA, - 0xAA, - 0xA7, - 0xA7, - 0xAA, - 0xA7, - 0xAA, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xA7, - 0xB2, - 0x04, - 0xAA, - 0x00, - 0x0D, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xBA, - 0xB2, - 0xC1, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xAA, - 0x07, - 0xB2, - 0x00, - 0x84, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0x9F, - 0x4C, - 0x64, - 0x64, - 0x41, - 0x4C, - 0x56, - 0x4B, - 0x70, - 0x41, - 0x41, - 0x41, - 0x56, - 0x56, - 0x24, - 0x4B, - 0x2D, - 0x2D, - 0x2D, - 0x41, - 0x56, - 0x4B, - 0x56, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x64, - 0x56, - 0x56, - 0x41, - 0x56, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x49, - 0x41, - 0x56, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x41, - 0x49, - 0x41, - 0x49, - 0x56, - 0x41, - 0x56, - 0x67, - 0x49, - 0x2D, - 0x28, - 0x12, - 0x49, - 0x41, - 0x49, - 0x57, - 0x67, - 0x78, - 0x82, - 0x4C, - 0x3E, - 0x12, - 0x28, - 0x2D, - 0x28, - 0x2D, - 0x28, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x28, - 0x2F, - 0x2F, - 0x2F, - 0x4F, - 0x33, - 0x33, - 0x40, - 0x33, - 0x40, - 0x33, - 0x52, - 0x33, - 0x44, - 0x52, - 0x44, - 0x42, - 0x40, - 0x40, - 0x42, - 0x59, - 0x54, - 0x59, - 0x54, - 0x58, - 0x63, - 0x5F, - 0x81, - 0x81, - 0x81, - 0x9B, - 0x05, - 0xC4, - 0x00, - 0x0A, - 0xC2, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xB5, - 0xB6, - 0xC2, - 0xB5, - 0x25, - 0xB6, - 0x00, - 0x06, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0x05, - 0xAC, - 0x00, - 0x17, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB5, - 0xA2, - 0xB0, - 0xA6, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB0, - 0xA6, - 0xA2, - 0x00, - 0x06, - 0xA6, - 0x00, - 0x08, - 0xA2, - 0xB0, - 0x99, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0x08, - 0xA1, - 0x01, - 0xAE, - 0x01, - 0xA1, - 0x0C, - 0xAE, - 0x01, - 0xB3, - 0x0C, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x16, - 0xAA, - 0xA1, - 0xB2, - 0x9F, - 0xAA, - 0xA1, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xBA, - 0x8E, - 0xAA, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0x04, - 0xB2, - 0x00, - 0x05, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0x00, - 0x0D, - 0xB2, - 0x01, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x3E, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0x64, - 0x56, - 0x4B, - 0x56, - 0x64, - 0x64, - 0x64, - 0x41, - 0x56, - 0x4B, - 0x41, - 0x56, - 0x2D, - 0x28, - 0x4B, - 0x41, - 0x56, - 0x24, - 0x56, - 0x56, - 0x56, - 0x64, - 0x41, - 0x24, - 0x56, - 0x2D, - 0x56, - 0x49, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x56, - 0x41, - 0x41, - 0x2D, - 0x2D, - 0x56, - 0x2D, - 0x49, - 0x41, - 0x49, - 0x49, - 0x04, - 0x2D, - 0x00, - 0x12, - 0x49, - 0x2D, - 0x41, - 0x56, - 0x49, - 0x56, - 0x56, - 0x49, - 0x56, - 0x49, - 0x41, - 0x26, - 0x49, - 0x49, - 0x41, - 0x26, - 0x28, - 0x26, - 0x06, - 0x2D, - 0x01, - 0x41, - 0x05, - 0x49, - 0x00, - 0x26, - 0x2D, - 0x49, - 0x49, - 0x28, - 0x3E, - 0x2F, - 0x28, - 0x2F, - 0x28, - 0x28, - 0x3E, - 0x4F, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x33, - 0x44, - 0x44, - 0x40, - 0x44, - 0x40, - 0x40, - 0x44, - 0x63, - 0x59, - 0x59, - 0x59, - 0x63, - 0x59, - 0x42, - 0x63, - 0x54, - 0x66, - 0x81, - 0x81, - 0x7B, - 0xF8, - 0x04, - 0xC4, - 0x00, - 0x10, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB5, - 0x04, - 0xB6, - 0x01, - 0xAC, - 0x07, - 0xB6, - 0x00, - 0x06, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0x05, - 0xB6, - 0x00, - 0x24, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB5, - 0xB5, - 0xAC, - 0xB6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xA2, - 0xAC, - 0xB5, - 0xA6, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0x05, - 0xA6, - 0x00, - 0x05, - 0xA2, - 0xA6, - 0xB0, - 0xB0, - 0xA2, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x07, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0xA6, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x11, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xAE, - 0xA6, - 0x00, - 0x0E, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x17, - 0xA7, - 0xA7, - 0xB2, - 0x8E, - 0xB2, - 0xA7, - 0x8E, - 0xB2, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xA7, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x06, - 0xAA, - 0xB2, - 0xAA, - 0xBA, - 0xAA, - 0xAA, - 0x04, - 0xB2, - 0x01, - 0xBA, - 0x04, - 0xB2, - 0x01, - 0xBA, - 0x0B, - 0xB2, - 0x00, - 0x27, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0x70, - 0x94, - 0x4B, - 0x64, - 0x70, - 0x64, - 0x64, - 0x4B, - 0x56, - 0x4B, - 0x56, - 0x64, - 0x41, - 0x0D, - 0x2D, - 0x56, - 0x64, - 0x24, - 0x15, - 0x4C, - 0x49, - 0x56, - 0x64, - 0x00, - 0x05, - 0x41, - 0x00, - 0x1F, - 0x2D, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x56, - 0x56, - 0x56, - 0x41, - 0x41, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x41, - 0x2D, - 0x28, - 0x41, - 0x56, - 0x2D, - 0x56, - 0x49, - 0x49, - 0x56, - 0x56, - 0x56, - 0x4C, - 0x67, - 0x4C, - 0x00, - 0x05, - 0x49, - 0x00, - 0x06, - 0x2D, - 0x26, - 0x49, - 0x56, - 0x49, - 0x67, - 0x07, - 0x49, - 0x00, - 0x23, - 0x3E, - 0x3E, - 0x3E, - 0x4F, - 0x4F, - 0x2F, - 0x2F, - 0x3E, - 0x4F, - 0x3E, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x52, - 0x44, - 0x44, - 0x59, - 0x42, - 0x44, - 0x59, - 0x52, - 0x59, - 0x54, - 0x59, - 0x63, - 0x5F, - 0x6B, - 0x6B, - 0x6B, - 0x63, - 0x81, - 0x81, - 0xA3, - 0xC7, - 0x00, - 0x06, - 0xC4, - 0x00, - 0x1F, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x07, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x0B, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x07, - 0xAC, - 0x00, - 0x20, - 0xB5, - 0xA6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xA6, - 0xA2, - 0xB0, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0x04, - 0xA1, - 0x00, - 0x0C, - 0xAE, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x04, - 0xAE, - 0x00, - 0x04, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x0C, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xAA, - 0xA7, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xA7, - 0x09, - 0xB2, - 0x00, - 0x06, - 0xA7, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0x04, - 0xB2, - 0x00, - 0x07, - 0xBA, - 0xAA, - 0xB2, - 0xBA, - 0xAA, - 0xAA, - 0xBA, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x04, - 0xBA, - 0xAA, - 0xB3, - 0xBA, - 0x0D, - 0xB2, - 0x00, - 0x2B, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xC1, - 0xAA, - 0xCA, - 0x8E, - 0x9F, - 0x70, - 0x94, - 0x64, - 0x64, - 0xA2, - 0x70, - 0x64, - 0x41, - 0x56, - 0x56, - 0x4B, - 0x41, - 0x2D, - 0x2D, - 0x56, - 0x56, - 0x49, - 0x41, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x56, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x1F, - 0x49, - 0x49, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x28, - 0x0F, - 0x2F, - 0x19, - 0x3E, - 0x2A, - 0x1F, - 0x3E, - 0x26, - 0x2D, - 0x26, - 0x49, - 0x32, - 0x00, - 0x06, - 0x3E, - 0x00, - 0x25, - 0x49, - 0x49, - 0x56, - 0x67, - 0x67, - 0x49, - 0x3E, - 0x4F, - 0x40, - 0x55, - 0x4F, - 0x4F, - 0x2F, - 0x2F, - 0x4F, - 0x52, - 0x55, - 0x52, - 0x59, - 0x54, - 0x59, - 0x63, - 0x54, - 0x54, - 0x50, - 0x59, - 0x44, - 0x59, - 0x58, - 0x58, - 0x63, - 0x63, - 0x58, - 0x81, - 0x6B, - 0x7B, - 0xE7, - 0x00, - 0x06, - 0xC4, - 0x00, - 0x03, - 0xBB, - 0xC4, - 0xBB, - 0x00, - 0x09, - 0xB5, - 0x00, - 0x23, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x0D, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xA2, - 0xB5, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x1D, - 0xB0, - 0xAC, - 0xA6, - 0xAC, - 0xA6, - 0xB0, - 0xA2, - 0xB0, - 0xB0, - 0xA2, - 0xA2, - 0xA6, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xB0, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA1, - 0xA1, - 0xA6, - 0x99, - 0x00, - 0x07, - 0xA1, - 0x00, - 0x0E, - 0xAE, - 0xAE, - 0xAE, - 0xA1, - 0x98, - 0xAE, - 0xA7, - 0xA1, - 0xAE, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xA1, - 0x0E, - 0xAE, - 0x01, - 0xA7, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x10, - 0x98, - 0xB2, - 0xB2, - 0xA7, - 0x8E, - 0xB2, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xB2, - 0xAA, - 0x0D, - 0xB2, - 0x00, - 0x15, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB3, - 0xB2, - 0xB3, - 0x00, - 0x06, - 0xB2, - 0x00, - 0x37, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0xC1, - 0x8E, - 0x94, - 0x69, - 0x56, - 0x64, - 0x70, - 0x99, - 0x41, - 0x64, - 0x56, - 0x56, - 0x56, - 0x4B, - 0x49, - 0x56, - 0x4B, - 0x56, - 0x41, - 0x24, - 0x41, - 0x41, - 0x49, - 0x70, - 0x56, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x56, - 0x41, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x27, - 0x28, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x28, - 0x2D, - 0x49, - 0x28, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x4F, - 0x49, - 0x4C, - 0x67, - 0x49, - 0x3E, - 0x2D, - 0x3E, - 0x49, - 0x4C, - 0x4F, - 0x4F, - 0x3E, - 0x4F, - 0x67, - 0x4F, - 0x67, - 0x3E, - 0x67, - 0x55, - 0x67, - 0x55, - 0x6B, - 0x52, - 0x59, - 0x00, - 0x05, - 0x55, - 0x00, - 0x13, - 0x52, - 0x59, - 0x6B, - 0x52, - 0x63, - 0x42, - 0x54, - 0x63, - 0x63, - 0x59, - 0x48, - 0x48, - 0x58, - 0x6B, - 0x6B, - 0x81, - 0x81, - 0x7B, - 0xCB, - 0x00, - 0x07, - 0xC4, - 0x00, - 0x08, - 0xBB, - 0xBB, - 0xC4, - 0xC4, - 0xB5, - 0xBB, - 0xC4, - 0xC4, - 0x08, - 0xB5, - 0x00, - 0x22, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0x09, - 0xAC, - 0x00, - 0x16, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xA2, - 0xAC, - 0xB0, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0x04, - 0xA6, - 0x00, - 0x0F, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0xA1, - 0xA6, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x00, - 0x08, - 0xA1, - 0x00, - 0x09, - 0x8E, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0x8E, - 0xAE, - 0xA1, - 0xA7, - 0x00, - 0x10, - 0xAE, - 0x01, - 0xA7, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xA7, - 0xA7, - 0x98, - 0xB2, - 0xA7, - 0xA7, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0x05, - 0xB2, - 0x00, - 0x08, - 0xA7, - 0xA7, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0x0B, - 0xB2, - 0x00, - 0x09, - 0xAA, - 0xBA, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0x00, - 0x06, - 0xB2, - 0x00, - 0x03, - 0xAA, - 0xB2, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xAA, - 0x04, - 0xB2, - 0x00, - 0x2B, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xBA, - 0xAA, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xAA, - 0xA2, - 0x64, - 0x64, - 0x69, - 0x64, - 0x64, - 0x56, - 0x56, - 0x41, - 0x41, - 0x56, - 0x64, - 0x56, - 0x70, - 0x41, - 0x56, - 0x70, - 0x56, - 0x56, - 0x64, - 0x70, - 0x56, - 0x64, - 0x67, - 0x41, - 0x56, - 0x56, - 0x49, - 0x49, - 0x49, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x4F, - 0x49, - 0x41, - 0x56, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x56, - 0x41, - 0x56, - 0x49, - 0x49, - 0x56, - 0x49, - 0x56, - 0x2D, - 0x3E, - 0x3E, - 0x49, - 0x3E, - 0x67, - 0x3E, - 0x49, - 0x4F, - 0x49, - 0x3E, - 0x4F, - 0x4F, - 0x55, - 0x33, - 0x55, - 0x55, - 0x55, - 0x4F, - 0x3E, - 0x55, - 0x4F, - 0x67, - 0x4F, - 0x4F, - 0x52, - 0x59, - 0x52, - 0x52, - 0x55, - 0x55, - 0x81, - 0x55, - 0x81, - 0x59, - 0x55, - 0x59, - 0x59, - 0x6B, - 0x5F, - 0x54, - 0x50, - 0x63, - 0x6B, - 0x63, - 0x5A, - 0x58, - 0x81, - 0x81, - 0xC5, - 0xB8, - 0xC4, - 0xE7, - 0xAE, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xBB, - 0x00, - 0x08, - 0xB5, - 0x00, - 0x2C, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xA2, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0x04, - 0xAC, - 0x01, - 0xA2, - 0x04, - 0xAC, - 0x00, - 0x0A, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xB0, - 0xAC, - 0xA6, - 0xA6, - 0xA2, - 0x06, - 0xA6, - 0x00, - 0x0F, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0x99, - 0xB0, - 0xA1, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0x99, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x16, - 0x8E, - 0xA1, - 0xA1, - 0x8E, - 0xA1, - 0x8E, - 0xAE, - 0xA1, - 0x8E, - 0xAE, - 0xAE, - 0xA1, - 0xB3, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x08, - 0xAE, - 0x00, - 0x04, - 0xA7, - 0xAE, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xA7, - 0x8E, - 0xB2, - 0xA7, - 0xB2, - 0x8E, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xAA, - 0xAE, - 0xB2, - 0xAE, - 0x07, - 0xB2, - 0x01, - 0xAA, - 0x0C, - 0xB2, - 0x00, - 0x0F, - 0xC1, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0x00, - 0x04, - 0xB2, - 0x01, - 0xBA, - 0x01, - 0xA1, - 0x08, - 0xB2, - 0x00, - 0x3D, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xAE, - 0x70, - 0x64, - 0x8E, - 0x64, - 0x64, - 0x64, - 0x56, - 0x56, - 0x4B, - 0x56, - 0x70, - 0x64, - 0x64, - 0x41, - 0x56, - 0x56, - 0x56, - 0x49, - 0x56, - 0x56, - 0x56, - 0x70, - 0x41, - 0x70, - 0x56, - 0x70, - 0x49, - 0x56, - 0x2D, - 0x2D, - 0x41, - 0x49, - 0x2D, - 0x56, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x2D, - 0x41, - 0x49, - 0x41, - 0x56, - 0x49, - 0x56, - 0x00, - 0x04, - 0x49, - 0x00, - 0x51, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x67, - 0x67, - 0x9B, - 0x67, - 0x67, - 0x67, - 0x4F, - 0x2F, - 0x33, - 0x22, - 0x4F, - 0x2F, - 0x4F, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x59, - 0x59, - 0x59, - 0x52, - 0x55, - 0x55, - 0x2F, - 0x4F, - 0x55, - 0x55, - 0x33, - 0x52, - 0x63, - 0x58, - 0x54, - 0x42, - 0x54, - 0x59, - 0x58, - 0x81, - 0x81, - 0x7B, - 0xBC, - 0xC7, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xAC, - 0xB0, - 0xB5, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x05, - 0xAC, - 0x01, - 0xB6, - 0x04, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0x07, - 0xAC, - 0x00, - 0x03, - 0xB6, - 0xAC, - 0xB6, - 0x00, - 0x05, - 0xAC, - 0x00, - 0x05, - 0xA2, - 0xB6, - 0xAC, - 0xAC, - 0xB5, - 0x00, - 0x07, - 0xAC, - 0x00, - 0x07, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA6, - 0xAC, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x2A, - 0xA2, - 0xA6, - 0xA2, - 0x99, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0xA1, - 0xA1, - 0x99, - 0xA1, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0xA1, - 0xA1, - 0x8E, - 0xAE, - 0xAE, - 0xA1, - 0xA1, - 0xA1, - 0x8E, - 0xA1, - 0xA7, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x04, - 0xAE, - 0x00, - 0x04, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x09, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA7, - 0xB2, - 0xA1, - 0xAA, - 0xB2, - 0xA7, - 0xA7, - 0x00, - 0x15, - 0xB2, - 0x00, - 0x1C, - 0xAA, - 0xC1, - 0xB2, - 0xB2, - 0xAA, - 0xBA, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xAA, - 0x09, - 0xB2, - 0x01, - 0xAA, - 0x05, - 0xB2, - 0x00, - 0x24, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xAA, - 0xCC, - 0xB2, - 0xB2, - 0xAA, - 0x8E, - 0x64, - 0x70, - 0x70, - 0x70, - 0x64, - 0x56, - 0x56, - 0x56, - 0x64, - 0x70, - 0x70, - 0x56, - 0x56, - 0x64, - 0x41, - 0x64, - 0x41, - 0x56, - 0x67, - 0x56, - 0x67, - 0x41, - 0x67, - 0x49, - 0x56, - 0x49, - 0x06, - 0x56, - 0x01, - 0x49, - 0x04, - 0x56, - 0x00, - 0x0B, - 0x49, - 0x41, - 0x49, - 0x49, - 0x49, - 0x56, - 0x49, - 0x67, - 0x49, - 0x49, - 0x67, - 0x00, - 0x04, - 0x56, - 0x00, - 0x28, - 0x4F, - 0x3E, - 0x3E, - 0x33, - 0x55, - 0x52, - 0x44, - 0x55, - 0x40, - 0x55, - 0x2F, - 0x4F, - 0x4F, - 0x2F, - 0x4F, - 0x4F, - 0x4F, - 0x2F, - 0x55, - 0x55, - 0x55, - 0x33, - 0x55, - 0x55, - 0x4F, - 0x55, - 0x4F, - 0x55, - 0x52, - 0x40, - 0x52, - 0x42, - 0x42, - 0x58, - 0x5F, - 0x81, - 0x81, - 0x7B, - 0xD9, - 0xB3, - 0x04, - 0xCB, - 0x00, - 0x10, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0xB5, - 0xBB, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xBB, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xB0, - 0xB5, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB6, - 0x09, - 0xAC, - 0x01, - 0xB6, - 0x04, - 0xAC, - 0x00, - 0x05, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x09, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0x06, - 0xAC, - 0x00, - 0x3D, - 0xA2, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xA6, - 0xA6, - 0xAC, - 0xA6, - 0xAC, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA1, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0x99, - 0xA1, - 0xA1, - 0x94, - 0xA1, - 0xA1, - 0xA1, - 0x94, - 0x8E, - 0xA1, - 0xAE, - 0x94, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0x94, - 0xAE, - 0xA7, - 0xA1, - 0xA7, - 0xA1, - 0x00, - 0x05, - 0xAE, - 0x01, - 0x98, - 0x01, - 0x98, - 0x05, - 0xAE, - 0x01, - 0xA7, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA7, - 0xAA, - 0xAA, - 0xAE, - 0xB2, - 0xA7, - 0x0C, - 0xB2, - 0x01, - 0xA7, - 0x0B, - 0xB2, - 0x00, - 0x15, - 0xBA, - 0xAA, - 0xC1, - 0xB2, - 0xAA, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x0E, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x25, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xB2, - 0xBA, - 0x64, - 0x99, - 0x64, - 0x99, - 0xA2, - 0x64, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x99, - 0x4B, - 0x56, - 0x41, - 0x56, - 0x64, - 0x56, - 0x49, - 0x4B, - 0x67, - 0x64, - 0x4C, - 0x56, - 0x70, - 0x56, - 0x56, - 0x49, - 0x49, - 0x49, - 0x00, - 0x07, - 0x56, - 0x00, - 0x0B, - 0x49, - 0x56, - 0x41, - 0x49, - 0x56, - 0x56, - 0x3E, - 0x67, - 0x49, - 0x49, - 0x67, - 0x00, - 0x04, - 0x49, - 0x00, - 0x0F, - 0x67, - 0x3E, - 0x4C, - 0x52, - 0x40, - 0x40, - 0x59, - 0x52, - 0x59, - 0x52, - 0x55, - 0x79, - 0x55, - 0x3E, - 0x3E, - 0x00, - 0x04, - 0x4F, - 0x01, - 0x55, - 0x01, - 0x33, - 0x05, - 0x55, - 0x00, - 0x18, - 0x59, - 0x6B, - 0x5F, - 0x6B, - 0x66, - 0x81, - 0x81, - 0x81, - 0x7B, - 0xCF, - 0xCB, - 0xAE, - 0xDA, - 0xCB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0x05, - 0xBB, - 0x00, - 0x0E, - 0xB0, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB5, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0x08, - 0xAC, - 0x00, - 0x05, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x08, - 0xAC, - 0x00, - 0x06, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0x06, - 0xAC, - 0x00, - 0x15, - 0xA2, - 0xB6, - 0xB6, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x01, - 0xA6, - 0x01, - 0xA6, - 0x04, - 0xA2, - 0x00, - 0x2B, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0x99, - 0xA1, - 0x99, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0x8E, - 0xA1, - 0xA1, - 0x94, - 0x8E, - 0xA1, - 0xA7, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xA1, - 0x98, - 0xA1, - 0xAE, - 0x8E, - 0x98, - 0xAE, - 0xAE, - 0xA1, - 0x98, - 0xAE, - 0xAE, - 0x98, - 0x00, - 0x0A, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xA7, - 0xA1, - 0xAA, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xAE, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAE, - 0x00, - 0x07, - 0xB2, - 0x00, - 0x04, - 0xAE, - 0xB2, - 0xB2, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x19, - 0xBA, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0x00, - 0x09, - 0xB2, - 0x00, - 0x1B, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xB2, - 0xC1, - 0xAA, - 0xAA, - 0xC1, - 0xC1, - 0xCA, - 0xF2, - 0xBA, - 0x94, - 0x64, - 0xA2, - 0x64, - 0x64, - 0x56, - 0x70, - 0xA2, - 0x00, - 0x04, - 0x56, - 0x00, - 0x0D, - 0x70, - 0x56, - 0x67, - 0x41, - 0x70, - 0x67, - 0x64, - 0x70, - 0x70, - 0x70, - 0x56, - 0x41, - 0x49, - 0x00, - 0x04, - 0x56, - 0x01, - 0x49, - 0x06, - 0x56, - 0x00, - 0x3E, - 0x49, - 0x49, - 0x49, - 0x56, - 0x56, - 0x56, - 0x49, - 0x67, - 0x67, - 0x3E, - 0x49, - 0x67, - 0x49, - 0x49, - 0x3E, - 0x49, - 0x4F, - 0x4F, - 0x21, - 0x52, - 0x65, - 0x47, - 0x59, - 0x55, - 0x52, - 0x55, - 0x55, - 0x55, - 0x4F, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x4F, - 0x40, - 0x55, - 0x52, - 0x59, - 0x59, - 0x6B, - 0x6B, - 0x81, - 0x66, - 0x81, - 0x66, - 0x81, - 0xAF, - 0xD3, - 0xCB, - 0xD1, - 0xCB, - 0xF3, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xBB, - 0xC4, - 0x04, - 0xBB, - 0x00, - 0x13, - 0xB5, - 0xB0, - 0xBB, - 0xB5, - 0xBB, - 0xAC, - 0xB0, - 0xB5, - 0xA6, - 0xB5, - 0xAC, - 0xB0, - 0xB5, - 0xA6, - 0xB5, - 0xB5, - 0xAC, - 0xB0, - 0xB5, - 0x00, - 0x0E, - 0xAC, - 0x01, - 0xB6, - 0x12, - 0xAC, - 0x01, - 0xA2, - 0x06, - 0xAC, - 0x00, - 0x4B, - 0xA2, - 0xA6, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA2, - 0xA1, - 0x99, - 0x99, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0xA1, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0x94, - 0x98, - 0xA1, - 0x8E, - 0xAE, - 0xA7, - 0x94, - 0xAE, - 0xA1, - 0xA7, - 0xA1, - 0xA1, - 0xA7, - 0xA7, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0xA7, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xAE, - 0xA7, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xAE, - 0xAA, - 0x06, - 0xB2, - 0x01, - 0xB8, - 0x07, - 0xB2, - 0x00, - 0x03, - 0xB8, - 0xB2, - 0xBA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x09, - 0xC1, - 0xBA, - 0xB2, - 0xAA, - 0xB2, - 0xBA, - 0xAA, - 0xBA, - 0xB2, - 0x00, - 0x06, - 0xBA, - 0x00, - 0x11, - 0xB3, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB3, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x39, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xAA, - 0xC1, - 0xC1, - 0xB2, - 0xB2, - 0xC1, - 0xBA, - 0xCA, - 0xC1, - 0xC1, - 0xBA, - 0xB3, - 0x64, - 0x70, - 0x56, - 0x70, - 0x99, - 0x70, - 0x70, - 0x70, - 0x56, - 0x70, - 0x49, - 0x56, - 0x56, - 0x56, - 0x70, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x56, - 0x70, - 0x56, - 0x56, - 0x49, - 0x28, - 0x56, - 0x49, - 0x70, - 0x56, - 0x49, - 0x67, - 0x56, - 0x49, - 0x00, - 0x04, - 0x56, - 0x00, - 0x50, - 0x67, - 0x56, - 0x49, - 0x67, - 0x67, - 0x56, - 0x67, - 0x67, - 0x4F, - 0x55, - 0x67, - 0x55, - 0x55, - 0x59, - 0x59, - 0x55, - 0x59, - 0x59, - 0x55, - 0x55, - 0x55, - 0x67, - 0x67, - 0x4F, - 0x67, - 0x4F, - 0x67, - 0x59, - 0x81, - 0x55, - 0x55, - 0x67, - 0x59, - 0x59, - 0x6B, - 0x5F, - 0x81, - 0x81, - 0xC3, - 0xCB, - 0xF3, - 0xAE, - 0xCB, - 0xDA, - 0xD1, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xB5, - 0xA6, - 0xB5, - 0xB0, - 0xAC, - 0xB5, - 0xA2, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0x06, - 0xAC, - 0x00, - 0x06, - 0xA2, - 0xB6, - 0xA2, - 0xB6, - 0xAC, - 0xB6, - 0x04, - 0xAC, - 0x01, - 0xA2, - 0x01, - 0xB6, - 0x0B, - 0xAC, - 0x01, - 0xA2, - 0x05, - 0xAC, - 0x00, - 0x4A, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA1, - 0x99, - 0xA6, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0xA1, - 0x99, - 0x8E, - 0xA1, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0x8E, - 0xAE, - 0xA1, - 0xAE, - 0x8E, - 0xA1, - 0xAE, - 0x8E, - 0xA7, - 0xAE, - 0xA7, - 0xA1, - 0xA7, - 0xAE, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0xA7, - 0xAE, - 0xAE, - 0x98, - 0x04, - 0xAE, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x13, - 0xAE, - 0xAA, - 0xA7, - 0xAE, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xA7, - 0xB2, - 0xB2, - 0xAE, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xAE, - 0xB8, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xB8, - 0x01, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x0C, - 0xC1, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0x09, - 0xBA, - 0x00, - 0x0A, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x2F, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xB2, - 0xC1, - 0xCC, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCC, - 0xC1, - 0xCC, - 0xE1, - 0xC4, - 0x94, - 0x4B, - 0x56, - 0x64, - 0x70, - 0x70, - 0x56, - 0x56, - 0x56, - 0x70, - 0x49, - 0x56, - 0x56, - 0x70, - 0x99, - 0x56, - 0x70, - 0x70, - 0x70, - 0x56, - 0x56, - 0x56, - 0x70, - 0x70, - 0x70, - 0x00, - 0x04, - 0x49, - 0x00, - 0x0D, - 0x56, - 0x56, - 0x67, - 0x49, - 0x67, - 0x70, - 0x49, - 0x49, - 0x49, - 0x56, - 0x3E, - 0x67, - 0x56, - 0x00, - 0x04, - 0x67, - 0x00, - 0x2A, - 0x55, - 0x67, - 0x55, - 0x55, - 0x55, - 0x52, - 0x52, - 0x55, - 0x59, - 0x55, - 0x55, - 0x81, - 0x55, - 0x55, - 0x81, - 0x6B, - 0x81, - 0x7B, - 0x55, - 0xA3, - 0x55, - 0x81, - 0x81, - 0x6B, - 0x81, - 0x7B, - 0xD9, - 0xE7, - 0xD1, - 0xD7, - 0xD1, - 0xCB, - 0xC7, - 0xBB, - 0xCB, - 0xCB, - 0xDA, - 0xBB, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0x08, - 0xBB, - 0x00, - 0x20, - 0xB0, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xB5, - 0xA6, - 0xB0, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xB6, - 0x08, - 0xAC, - 0x00, - 0x28, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x08, - 0x99, - 0x00, - 0x08, - 0xA6, - 0x94, - 0x94, - 0xA1, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0x04, - 0x94, - 0x00, - 0x16, - 0x8E, - 0xA1, - 0x8E, - 0xA1, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0xA1, - 0x8E, - 0x8E, - 0xAE, - 0x98, - 0xA1, - 0xAE, - 0xA1, - 0x98, - 0xA1, - 0xA7, - 0xA1, - 0xAE, - 0x98, - 0x09, - 0xAE, - 0x00, - 0x03, - 0x98, - 0xAE, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xAA, - 0xAE, - 0xB2, - 0xB2, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xAE, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0x00, - 0x0B, - 0xBA, - 0x00, - 0x09, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB3, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x19, - 0xC1, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xCD, - 0xBA, - 0xB2, - 0xD6, - 0xCC, - 0xB2, - 0xD6, - 0xC1, - 0xCA, - 0xC1, - 0xD6, - 0xAA, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x56, - 0x28, - 0x00, - 0x05, - 0x56, - 0x08, - 0x70, - 0x00, - 0x0C, - 0x56, - 0x70, - 0x70, - 0x49, - 0x49, - 0x56, - 0x70, - 0x67, - 0x56, - 0x56, - 0x49, - 0x49, - 0x05, - 0x67, - 0x00, - 0x19, - 0x49, - 0x67, - 0x67, - 0x3E, - 0x3E, - 0x67, - 0x4F, - 0x4F, - 0x55, - 0x55, - 0x4F, - 0x7B, - 0x55, - 0x7B, - 0x67, - 0x7B, - 0x55, - 0x67, - 0x7B, - 0x55, - 0x81, - 0x55, - 0x55, - 0x81, - 0x7B, - 0x00, - 0x05, - 0x81, - 0x01, - 0xE4, - 0x01, - 0xF3, - 0x04, - 0xD1, - 0x00, - 0x11, - 0xCB, - 0xD1, - 0xBB, - 0xD7, - 0xCB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xBB, - 0xB0, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x18, - 0xB3, - 0xBB, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xA2, - 0xB5, - 0xAC, - 0xB5, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA6, - 0x06, - 0xAC, - 0x00, - 0x03, - 0xA2, - 0xB6, - 0xA2, - 0x00, - 0x0F, - 0xAC, - 0x00, - 0x0A, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0x07, - 0xA2, - 0x00, - 0x11, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x00, - 0x20, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0xA1, - 0x8E, - 0x98, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0xAE, - 0x8E, - 0x98, - 0xAE, - 0x8E, - 0xAE, - 0x98, - 0xA7, - 0xAE, - 0x98, - 0x05, - 0xAE, - 0x00, - 0x09, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xAE, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x28, - 0xAE, - 0xAA, - 0xA7, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xAA, - 0xC1, - 0xBA, - 0xB2, - 0x04, - 0xBA, - 0x01, - 0xB2, - 0x06, - 0xBA, - 0x00, - 0x36, - 0xB2, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xAA, - 0xCA, - 0xC1, - 0xCD, - 0xC1, - 0xD6, - 0xF5, - 0x57, - 0x70, - 0x56, - 0x64, - 0x70, - 0x70, - 0x64, - 0x56, - 0x49, - 0x56, - 0x67, - 0x56, - 0x05, - 0x70, - 0x00, - 0x0A, - 0x56, - 0x70, - 0x56, - 0xA2, - 0x70, - 0x70, - 0x67, - 0x70, - 0xA2, - 0x56, - 0x04, - 0x70, - 0x00, - 0x03, - 0x56, - 0x67, - 0x56, - 0x00, - 0x05, - 0x67, - 0x00, - 0x1D, - 0x3E, - 0x70, - 0x67, - 0x4F, - 0x67, - 0x4F, - 0x3E, - 0x67, - 0x67, - 0x4F, - 0x67, - 0x67, - 0x55, - 0x55, - 0x7B, - 0x6B, - 0x81, - 0x81, - 0x55, - 0x81, - 0x81, - 0x6B, - 0x6B, - 0x81, - 0x7B, - 0xF7, - 0x9B, - 0xF3, - 0xBF, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x08, - 0xBF, - 0xD1, - 0xCB, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xBB, - 0x04, - 0xCB, - 0x07, - 0xBB, - 0x00, - 0x06, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB0, - 0xB3, - 0x06, - 0xB0, - 0x00, - 0x0D, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xA6, - 0xA6, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0x00, - 0x04, - 0xAC, - 0x01, - 0xA6, - 0x04, - 0xAC, - 0x00, - 0x21, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0x99, - 0xA6, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x06, - 0x99, - 0xA2, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0x04, - 0x99, - 0x00, - 0x0D, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0xA1, - 0x99, - 0x99, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x99, - 0x00, - 0x06, - 0x94, - 0x00, - 0x04, - 0x8E, - 0x94, - 0xA1, - 0xA1, - 0x04, - 0x94, - 0x00, - 0x12, - 0xA1, - 0x8E, - 0xA1, - 0x98, - 0x8E, - 0x98, - 0xA1, - 0x8E, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0x06, - 0xAE, - 0x00, - 0x04, - 0xA7, - 0xAE, - 0x98, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x06, - 0xB8, - 0xB2, - 0xB2, - 0xAE, - 0xA7, - 0xB8, - 0x06, - 0xB2, - 0x00, - 0x04, - 0xB8, - 0xB8, - 0xB2, - 0xB8, - 0x04, - 0xB2, - 0x00, - 0x10, - 0xB8, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xB8, - 0xBA, - 0xC1, - 0xB2, - 0xC1, - 0xB2, - 0x12, - 0xBA, - 0x00, - 0x54, - 0xB3, - 0xBA, - 0xB3, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xAA, - 0xC1, - 0xC1, - 0xD6, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xCC, - 0xC1, - 0xCD, - 0xCD, - 0xD5, - 0x95, - 0x56, - 0x4B, - 0x56, - 0x64, - 0x56, - 0x56, - 0x70, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x99, - 0x70, - 0xA2, - 0x70, - 0x70, - 0x70, - 0xA2, - 0x67, - 0xAC, - 0x70, - 0x67, - 0x99, - 0x70, - 0x70, - 0x70, - 0x56, - 0x67, - 0x67, - 0x67, - 0x70, - 0x67, - 0xAE, - 0x9B, - 0x67, - 0x67, - 0x67, - 0x55, - 0x67, - 0x67, - 0x7B, - 0x05, - 0x67, - 0x00, - 0x2F, - 0x55, - 0x7B, - 0x55, - 0x7B, - 0x81, - 0x81, - 0x7B, - 0x81, - 0xF0, - 0xAF, - 0xBC, - 0xD3, - 0xCF, - 0xD7, - 0xD1, - 0xC7, - 0xD1, - 0xBF, - 0xD7, - 0xD1, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xD7, - 0xBF, - 0xBA, - 0xCB, - 0xCB, - 0xBB, - 0xBF, - 0xCB, - 0xBB, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xB0, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0x00, - 0x06, - 0xB0, - 0x00, - 0x2B, - 0xA6, - 0xB5, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB5, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x04, - 0xAC, - 0xA2, - 0xA2, - 0xA6, - 0x07, - 0xA2, - 0x00, - 0x09, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA6, - 0x00, - 0x07, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x06, - 0x94, - 0x00, - 0x09, - 0xA1, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x98, - 0x94, - 0xA1, - 0x00, - 0x05, - 0x8E, - 0x00, - 0x18, - 0x98, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0x98, - 0xA7, - 0xA7, - 0xAE, - 0xAE, - 0xA7, - 0xAE, - 0xAE, - 0xAE, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0x98, - 0x00, - 0x00, - 0x00, - 0x18, - 0xA7, - 0xA7, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB8, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x0E, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0x09, - 0xBA, - 0x00, - 0x04, - 0xBF, - 0xBA, - 0xB2, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x12, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0x04, - 0xC1, - 0x00, - 0x12, - 0xB2, - 0xB2, - 0xC1, - 0xCC, - 0xBA, - 0xC1, - 0xCA, - 0xCA, - 0xBA, - 0xCD, - 0xC1, - 0xC1, - 0xD6, - 0xC1, - 0xC1, - 0x82, - 0x70, - 0x70, - 0x05, - 0x56, - 0x00, - 0x16, - 0x70, - 0x56, - 0x64, - 0x70, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x67, - 0xA2, - 0x67, - 0xAE, - 0x99, - 0x67, - 0xAC, - 0x67, - 0x70, - 0x70, - 0xAE, - 0x70, - 0x06, - 0x67, - 0x00, - 0x2E, - 0x55, - 0x67, - 0x9B, - 0x55, - 0x81, - 0x67, - 0x55, - 0xAE, - 0x98, - 0x55, - 0x55, - 0x81, - 0x67, - 0x81, - 0xA3, - 0x9B, - 0xD1, - 0xF8, - 0xCF, - 0xD3, - 0xC5, - 0xCF, - 0xCF, - 0xD1, - 0xC7, - 0xD5, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD1, - 0xC7, - 0xD7, - 0xD1, - 0xBF, - 0xBF, - 0xD7, - 0xC4, - 0xBF, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xBF, - 0xBB, - 0xCB, - 0x05, - 0xBB, - 0x00, - 0x2E, - 0xB3, - 0xBB, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB0, - 0xB3, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xA6, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xA6, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0x04, - 0xA2, - 0x01, - 0xAC, - 0x0E, - 0xA2, - 0x00, - 0x05, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x04, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x08, - 0x99, - 0x00, - 0x07, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x00, - 0x07, - 0x94, - 0x00, - 0x1C, - 0x8E, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x94, - 0x94, - 0x98, - 0x94, - 0x8E, - 0xAE, - 0x98, - 0xAE, - 0xA7, - 0x8E, - 0x98, - 0xA7, - 0x98, - 0x98, - 0xA7, - 0xA1, - 0xA7, - 0xA7, - 0xAE, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0x04, - 0xA7, - 0x00, - 0x05, - 0xAE, - 0xA7, - 0x98, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0xB2, - 0xB8, - 0xB8, - 0xB2, - 0xB2, - 0xA7, - 0x04, - 0xB2, - 0x00, - 0x1E, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB8, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xB2, - 0x0F, - 0xBA, - 0x00, - 0x03, - 0xB2, - 0xBA, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0x04, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x22, - 0xB2, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC1, - 0xB2, - 0xB2, - 0xCA, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCA, - 0xCD, - 0xCD, - 0xC1, - 0xD6, - 0xD6, - 0xAA, - 0x70, - 0xA2, - 0x64, - 0x70, - 0x70, - 0x70, - 0x99, - 0x70, - 0x70, - 0x56, - 0x94, - 0x70, - 0xA2, - 0x04, - 0x70, - 0x00, - 0x6F, - 0x67, - 0x67, - 0x99, - 0x67, - 0xAE, - 0x70, - 0x67, - 0x70, - 0x67, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x67, - 0x9B, - 0x67, - 0x67, - 0x67, - 0x7B, - 0x67, - 0x9B, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x67, - 0x67, - 0xD3, - 0xD2, - 0xD6, - 0xD5, - 0xD5, - 0xD3, - 0xF8, - 0xD3, - 0xD3, - 0xCF, - 0xD7, - 0xCF, - 0xCF, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD1, - 0xC7, - 0xD7, - 0xC7, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xCB, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0xB0, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xAC, - 0xA6, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0x00, - 0x05, - 0xA2, - 0x00, - 0x04, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0x0E, - 0xA2, - 0x00, - 0x19, - 0x99, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x94, - 0x99, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x99, - 0x00, - 0x0C, - 0x94, - 0x00, - 0x0D, - 0x98, - 0x8E, - 0xA1, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0xA7, - 0x98, - 0x00, - 0x04, - 0xA7, - 0x01, - 0x9F, - 0x09, - 0xA7, - 0x00, - 0x07, - 0xAE, - 0xA7, - 0x98, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0xB8, - 0xA7, - 0xB2, - 0xB8, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xBA, - 0xB8, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xB2, - 0x06, - 0xBA, - 0x00, - 0x0A, - 0xC1, - 0xB2, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xC1, - 0x0F, - 0xBA, - 0x00, - 0x1D, - 0xB3, - 0xBA, - 0xBA, - 0xB3, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xAA, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x37, - 0xCC, - 0xCD, - 0xBA, - 0xC1, - 0xCD, - 0xDC, - 0xC1, - 0xCD, - 0xCD, - 0xDA, - 0xB2, - 0x8E, - 0x70, - 0xA2, - 0x70, - 0x70, - 0xB3, - 0xBA, - 0xEF, - 0xCD, - 0xBA, - 0xA2, - 0x70, - 0xAE, - 0xC5, - 0xC4, - 0xCF, - 0x98, - 0x67, - 0xCF, - 0x67, - 0x67, - 0xA2, - 0x67, - 0xAC, - 0x67, - 0x99, - 0x67, - 0x9B, - 0xAE, - 0xAE, - 0xAE, - 0xCF, - 0xD3, - 0xC2, - 0xD3, - 0xAE, - 0xD3, - 0xFB, - 0xD3, - 0xF8, - 0xF8, - 0xE4, - 0xD3, - 0xF8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1D, - 0xD3, - 0xF8, - 0xD3, - 0xD1, - 0xD3, - 0xC7, - 0xD1, - 0xCF, - 0xC7, - 0xD5, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xBF, - 0xCB, - 0xC7, - 0xD7, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xBB, - 0xCB, - 0xB3, - 0xBF, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x28, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xA6, - 0xA1, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0xAC, - 0xA6, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0x05, - 0xA2, - 0x00, - 0x03, - 0xAC, - 0xA2, - 0xAC, - 0x00, - 0x11, - 0xA2, - 0x00, - 0x18, - 0x99, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0x99, - 0x94, - 0x99, - 0x05, - 0x94, - 0x01, - 0x99, - 0x04, - 0x94, - 0x00, - 0x28, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x98, - 0x94, - 0x94, - 0x8E, - 0xAE, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x8E, - 0xA7, - 0xA7, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x17, - 0xB2, - 0xB8, - 0xC5, - 0xA7, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0x00, - 0x06, - 0xBA, - 0x01, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x04, - 0xC1, - 0xBA, - 0xC1, - 0xB2, - 0x04, - 0xBA, - 0x01, - 0xC1, - 0x05, - 0xBA, - 0x01, - 0xBF, - 0x0B, - 0xBA, - 0x00, - 0x16, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB3, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xC1, - 0xC1, - 0xB2, - 0x04, - 0xC1, - 0x00, - 0x31, - 0xAA, - 0xD6, - 0xC1, - 0xC1, - 0xCC, - 0xC1, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xBA, - 0xB2, - 0x8E, - 0x99, - 0x98, - 0xC1, - 0xCD, - 0xD6, - 0xD6, - 0xD5, - 0xCC, - 0xD6, - 0xD6, - 0xD6, - 0xD3, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0xCF, - 0xD3, - 0xD9, - 0xD1, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0x00, - 0x05, - 0xCD, - 0x01, - 0xD5, - 0x07, - 0xCD, - 0x00, - 0x2C, - 0xC7, - 0xCD, - 0xD5, - 0xD5, - 0xD5, - 0xC7, - 0xC1, - 0xD1, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xD1, - 0xBA, - 0xC7, - 0xCB, - 0xC7, - 0xBA, - 0xCB, - 0xBF, - 0xBF, - 0xBB, - 0xD7, - 0xCB, - 0xBF, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0xB3, - 0xBB, - 0xBB, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xA1, - 0xB3, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x1D, - 0xA1, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xAC, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xAC, - 0xA2, - 0xB0, - 0xB0, - 0xA2, - 0xA6, - 0xAC, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0x00, - 0x14, - 0xA2, - 0x00, - 0x1B, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x00, - 0x06, - 0x94, - 0x00, - 0x1B, - 0xA1, - 0x8E, - 0x94, - 0x98, - 0x94, - 0x98, - 0x98, - 0x94, - 0x98, - 0xA1, - 0x8E, - 0x98, - 0xAE, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x00, - 0x0B, - 0xA7, - 0x00, - 0x04, - 0x98, - 0xA7, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x27, - 0xB2, - 0xB2, - 0xB2, - 0xC5, - 0xC5, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xB8, - 0xB8, - 0xBA, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xC1, - 0xBA, - 0xB8, - 0xC1, - 0xB8, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xC1, - 0x00, - 0x05, - 0xBA, - 0x01, - 0xC1, - 0x08, - 0xBA, - 0x00, - 0x14, - 0xB3, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xB3, - 0xC1, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x0C, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCC, - 0x05, - 0xC1, - 0x00, - 0x13, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x56, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD5, - 0xD3, - 0xD6, - 0xD3, - 0xF2, - 0xF8, - 0xCF, - 0xCD, - 0xD5, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD5, - 0xD3, - 0xCD, - 0xCD, - 0xCD, - 0xCF, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xD7, - 0xC1, - 0xD5, - 0xC7, - 0xC7, - 0xD1, - 0xCB, - 0xC1, - 0xD7, - 0xBF, - 0xBF, - 0xBF, - 0xD7, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xCB, - 0xBB, - 0xBA, - 0xCB, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xBB, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0x04, - 0xA6, - 0x00, - 0x0D, - 0xAC, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xAC, - 0xA6, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xA6, - 0x00, - 0x17, - 0xA2, - 0x00, - 0x0D, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x01, - 0x94, - 0x05, - 0x99, - 0x06, - 0x94, - 0x00, - 0x1C, - 0x99, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x98, - 0xA7, - 0x8E, - 0xA7, - 0x8E, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x98, - 0xA7, - 0x98, - 0x0D, - 0xA7, - 0x01, - 0xAE, - 0x05, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x10, - 0xA7, - 0xC5, - 0xB8, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xC5, - 0xBA, - 0xBA, - 0xB8, - 0x05, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0xBA, - 0xB8, - 0xBA, - 0xBA, - 0xC1, - 0x06, - 0xBA, - 0x00, - 0x10, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xCB, - 0xBA, - 0xBA, - 0xBA, - 0xB3, - 0x04, - 0xBA, - 0x01, - 0xC1, - 0x05, - 0xBA, - 0x01, - 0xB2, - 0x0A, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0x05, - 0xBA, - 0x00, - 0x12, - 0xC1, - 0xBA, - 0xC1, - 0xCD, - 0xAA, - 0xAA, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0x07, - 0xCD, - 0x00, - 0x22, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD3, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xD3, - 0xCD, - 0xCD, - 0xD3, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xC5, - 0xD5, - 0xCD, - 0xD5, - 0xC1, - 0xCF, - 0xC7, - 0xD5, - 0xD5, - 0xCD, - 0x06, - 0xC7, - 0x00, - 0x2E, - 0xBA, - 0xD1, - 0xBF, - 0xD7, - 0xD7, - 0xC7, - 0xCB, - 0xBA, - 0xBA, - 0xCB, - 0xBF, - 0xB3, - 0xBB, - 0xBA, - 0xBA, - 0xBB, - 0xB3, - 0xBB, - 0xB3, - 0xBB, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0xBB, - 0xA1, - 0xA6, - 0xB3, - 0xB0, - 0xA6, - 0xA1, - 0xB0, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0x06, - 0xA6, - 0x00, - 0x0C, - 0xA2, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0x0E, - 0xA2, - 0x01, - 0x99, - 0x0B, - 0xA2, - 0x05, - 0x99, - 0x01, - 0xA6, - 0x06, - 0x99, - 0x00, - 0x08, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x94, - 0x99, - 0x94, - 0x99, - 0x04, - 0x94, - 0x00, - 0x2E, - 0x8E, - 0x94, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x94, - 0x98, - 0x98, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0xA7, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x9F, - 0x98, - 0xA7, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x24, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xB8, - 0xC5, - 0xB2, - 0xB2, - 0xC5, - 0xB2, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0xC5, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0x07, - 0xBA, - 0x00, - 0x06, - 0xC7, - 0xBA, - 0xBA, - 0xD7, - 0xB2, - 0xD7, - 0x11, - 0xBA, - 0x00, - 0x08, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB3, - 0xBA, - 0xBA, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x17, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xCC, - 0xC1, - 0xCC, - 0xC1, - 0xC1, - 0xC1, - 0xCC, - 0xBA, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x07, - 0xCD, - 0x00, - 0x11, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0x00, - 0x05, - 0xCD, - 0x01, - 0xD6, - 0x10, - 0xCD, - 0x01, - 0xC5, - 0x04, - 0xCD, - 0x00, - 0x39, - 0xC7, - 0xC7, - 0xCD, - 0xD1, - 0xD5, - 0xC7, - 0xC7, - 0xD7, - 0xD1, - 0xBA, - 0xD1, - 0xBA, - 0xBF, - 0xC7, - 0xBF, - 0xBF, - 0xBB, - 0xB3, - 0xBA, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xA1, - 0xB3, - 0xA6, - 0xA1, - 0xB0, - 0xB3, - 0xA6, - 0xA1, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0x00, - 0x05, - 0xA6, - 0x00, - 0x05, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0x00, - 0x0F, - 0xA2, - 0x00, - 0x10, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0x04, - 0xA2, - 0x00, - 0x0C, - 0x99, - 0x99, - 0xA1, - 0x99, - 0x99, - 0x94, - 0x94, - 0x99, - 0x99, - 0x94, - 0x99, - 0x99, - 0x04, - 0x94, - 0x00, - 0x14, - 0x99, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x04, - 0x98, - 0x00, - 0x0E, - 0xA7, - 0x9F, - 0x98, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x98, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0xA7, - 0x9F, - 0x05, - 0xA7, - 0x01, - 0x9C, - 0x05, - 0xA7, - 0x01, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x25, - 0xAA, - 0xC5, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB2, - 0xB2, - 0xC5, - 0xB8, - 0xC1, - 0xBA, - 0xB2, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xC1, - 0xB2, - 0xC1, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xC1, - 0x00, - 0x08, - 0xBA, - 0x01, - 0xC7, - 0x04, - 0xBA, - 0x01, - 0xBF, - 0x0C, - 0xBA, - 0x00, - 0x0D, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x17, - 0xC1, - 0xBA, - 0xBA, - 0xB2, - 0xC1, - 0xCD, - 0xB2, - 0xB2, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xCD, - 0xBA, - 0xC1, - 0xD5, - 0xC1, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC1, - 0xD5, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x03, - 0xD6, - 0xCD, - 0xD6, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0C, - 0xCC, - 0xCD, - 0xD6, - 0xD5, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0x13, - 0xCD, - 0x00, - 0x3A, - 0xCF, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xD5, - 0xC7, - 0xC7, - 0xC7, - 0xBA, - 0xD7, - 0xD1, - 0xBA, - 0xBF, - 0xBF, - 0xCB, - 0xBA, - 0xBA, - 0xBF, - 0xBF, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xBA, - 0xBA, - 0xB3, - 0xBA, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0xB3, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0x06, - 0xA6, - 0x00, - 0x09, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x01, - 0x99, - 0x08, - 0xA2, - 0x00, - 0x03, - 0x99, - 0xA2, - 0x99, - 0x00, - 0x07, - 0xA2, - 0x00, - 0x0B, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA1, - 0x00, - 0x08, - 0x99, - 0x00, - 0x2C, - 0x94, - 0x94, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x98, - 0x94, - 0x98, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x9F, - 0x8E, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x98, - 0x9F, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x9C, - 0x05, - 0xA7, - 0x00, - 0x03, - 0x9C, - 0xA7, - 0x9C, - 0x00, - 0x05, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xAA, - 0xC5, - 0xC5, - 0xB2, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB2, - 0xBA, - 0xC1, - 0xBA, - 0xC7, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x0F, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x0A, - 0xC1, - 0xBA, - 0xC7, - 0xD7, - 0xB2, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xC1, - 0x1D, - 0xBA, - 0x00, - 0x0C, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xAA, - 0xCD, - 0xC1, - 0xD6, - 0x04, - 0xC1, - 0x00, - 0x0A, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0x06, - 0xCD, - 0x00, - 0x0E, - 0xD6, - 0xCD, - 0xC1, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0xCD, - 0xD6, - 0x07, - 0xCD, - 0x00, - 0x07, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xD5, - 0xC5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0C, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0x06, - 0xC7, - 0x00, - 0x15, - 0xC1, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xBA, - 0xCB, - 0xC7, - 0xBF, - 0xBF, - 0xB3, - 0xBA, - 0xB3, - 0xBB, - 0xBB, - 0xBF, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x17, - 0xB0, - 0xA1, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xA6, - 0xA6, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA6, - 0xA6, - 0xA6, - 0xA1, - 0x00, - 0x04, - 0xA6, - 0x01, - 0xA1, - 0x06, - 0xA6, - 0x00, - 0x16, - 0xA2, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x06, - 0xA2, - 0x01, - 0x99, - 0x01, - 0xA2, - 0x09, - 0x99, - 0x00, - 0x07, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x99, - 0x99, - 0x00, - 0x09, - 0x94, - 0x00, - 0x12, - 0x98, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x04, - 0x98, - 0x00, - 0x05, - 0x8E, - 0x98, - 0xA7, - 0x9F, - 0x98, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x0F, - 0xA7, - 0xA7, - 0x9F, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x06, - 0xC5, - 0x00, - 0x0C, - 0xB2, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0x05, - 0xC1, - 0x00, - 0x0A, - 0xC5, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC7, - 0x04, - 0xBA, - 0x01, - 0xC1, - 0x07, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xBF, - 0x0C, - 0xBA, - 0x01, - 0xB2, - 0x0A, - 0xBA, - 0x00, - 0x0F, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xC1, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xCD, - 0x00, - 0x0D, - 0xC1, - 0x00, - 0x04, - 0xD5, - 0xD5, - 0xC1, - 0xD5, - 0x09, - 0xCD, - 0x00, - 0x0C, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xC1, - 0xD6, - 0x09, - 0xCD, - 0x01, - 0xC1, - 0x05, - 0xCD, - 0x01, - 0xC5, - 0x01, - 0xD5, - 0x06, - 0xCD, - 0x00, - 0x22, - 0xC1, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xBA, - 0xD1, - 0xC7, - 0xBF, - 0xBA, - 0xC7, - 0xD7, - 0xB3, - 0xBA, - 0xBF, - 0xBF, - 0xB3, - 0xBA, - 0xBF, - 0xB3, - 0xBB, - 0xB3, - 0xBB, - 0xCB, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB0, - 0x06, - 0xB3, - 0x00, - 0x13, - 0xA1, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xB0, - 0x99, - 0xA1, - 0x00, - 0x09, - 0xA6, - 0x00, - 0x15, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x0A, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA6, - 0x04, - 0x99, - 0x00, - 0x04, - 0x94, - 0x94, - 0x99, - 0x99, - 0x0A, - 0x94, - 0x00, - 0x10, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x07, - 0x98, - 0x00, - 0x14, - 0x8E, - 0x98, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x9C, - 0xA7, - 0x9F, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x06, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x32, - 0xC5, - 0xAA, - 0xB2, - 0xC5, - 0xC5, - 0xB2, - 0xC5, - 0xC1, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC7, - 0xC5, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xBA, - 0xD7, - 0xB2, - 0xC7, - 0xBA, - 0xC7, - 0xD7, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xD7, - 0x04, - 0xBA, - 0x01, - 0xCB, - 0x08, - 0xBA, - 0x01, - 0xD7, - 0x12, - 0xBA, - 0x00, - 0x07, - 0xC1, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xAA, - 0x00, - 0x07, - 0xC1, - 0x00, - 0x0A, - 0xC7, - 0xCD, - 0xC1, - 0xD5, - 0xCD, - 0xC1, - 0xC1, - 0xC1, - 0xD5, - 0xC1, - 0x09, - 0xCD, - 0x00, - 0x13, - 0xC1, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0x00, - 0x0D, - 0xCD, - 0x00, - 0x21, - 0xC7, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xCD, - 0xBA, - 0xC7, - 0xC7, - 0xD7, - 0xBA, - 0xC7, - 0xC7, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xBB, - 0xBA, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xB3, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xB0, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x3F, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xA1, - 0xB3, - 0xA6, - 0xB3, - 0xB3, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xB0, - 0xA6, - 0xA6, - 0xA1, - 0xB0, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA2, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0A, - 0x94, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x05, - 0x94, - 0x00, - 0x34, - 0x99, - 0x98, - 0x94, - 0x94, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x98, - 0xA7, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0x9F, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0x9F, - 0x9F, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x34, - 0xB2, - 0xC5, - 0xAA, - 0xD3, - 0xAA, - 0xC5, - 0xC5, - 0xAA, - 0xC5, - 0xB2, - 0xC1, - 0xAA, - 0xC5, - 0xC1, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xC5, - 0xC7, - 0xC1, - 0xC1, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xC1, - 0xBA, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xD7, - 0xD7, - 0xBA, - 0xBF, - 0xBA, - 0xD7, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x06, - 0xBF, - 0xB2, - 0xBA, - 0xC7, - 0xBA, - 0xC7, - 0x12, - 0xBA, - 0x00, - 0x0A, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xB2, - 0x08, - 0xC1, - 0x00, - 0x09, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x0D, - 0xD6, - 0xC1, - 0xCD, - 0xD6, - 0xC1, - 0xD6, - 0xD6, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xD6, - 0x00, - 0x18, - 0xCD, - 0x00, - 0x20, - 0xC7, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xBA, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xBB, - 0xBA, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xB0, - 0xBA, - 0xBB, - 0x08, - 0xB3, - 0x01, - 0xA1, - 0x01, - 0xA1, - 0x04, - 0xB3, - 0x00, - 0x36, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0x04, - 0x99, - 0x01, - 0x94, - 0x04, - 0x99, - 0x00, - 0x26, - 0x94, - 0x94, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x82, - 0xA1, - 0x8E, - 0x98, - 0x98, - 0x9F, - 0x04, - 0x98, - 0x00, - 0x14, - 0x9C, - 0x9F, - 0x98, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x01, - 0xCC, - 0x05, - 0xC5, - 0x01, - 0xC1, - 0x01, - 0xCD, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xC1, - 0xC5, - 0xC1, - 0xC5, - 0xCD, - 0x00, - 0x0C, - 0xC1, - 0x00, - 0x0A, - 0xC7, - 0xC7, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0x06, - 0xBA, - 0x01, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x07, - 0xBF, - 0xB2, - 0xBA, - 0xCB, - 0xBA, - 0xBA, - 0xD7, - 0x00, - 0x16, - 0xBA, - 0x00, - 0x07, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xC1, - 0xC1, - 0xB2, - 0x00, - 0x09, - 0xC1, - 0x00, - 0x11, - 0xCD, - 0xC7, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC7, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC1, - 0x00, - 0x0A, - 0xCD, - 0x00, - 0x06, - 0xC1, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0x07, - 0xCD, - 0x01, - 0xC1, - 0x08, - 0xCD, - 0x00, - 0x23, - 0xC7, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xBA, - 0xC7, - 0xC7, - 0xC7, - 0xD5, - 0xBF, - 0xC7, - 0xBF, - 0xBA, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xBA, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xBF, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x2A, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xA1, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0x99, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA2, - 0x04, - 0x99, - 0x01, - 0xA2, - 0x05, - 0x99, - 0x00, - 0x06, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x0B, - 0x99, - 0x00, - 0x05, - 0x94, - 0x99, - 0x94, - 0x99, - 0x99, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x32, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x8E, - 0x98, - 0x9F, - 0x9F, - 0x98, - 0x98, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xAA, - 0x06, - 0xC5, - 0x00, - 0x0D, - 0xC1, - 0xC1, - 0xC5, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xCD, - 0xC5, - 0xC1, - 0xCD, - 0xC5, - 0xCD, - 0x00, - 0x05, - 0xC1, - 0x01, - 0xC7, - 0x05, - 0xC1, - 0x00, - 0x22, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xC7, - 0xB2, - 0xB2, - 0xD7, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBF, - 0xBF, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xB2, - 0xD7, - 0xBA, - 0xD7, - 0xBA, - 0xD7, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xD7, - 0x07, - 0xBA, - 0x01, - 0xC7, - 0x09, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xB2, - 0x04, - 0xC1, - 0x00, - 0x11, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC1, - 0xC1, - 0xC7, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0x00, - 0x04, - 0xCD, - 0x01, - 0xC1, - 0x01, - 0xD6, - 0x07, - 0xCD, - 0x00, - 0x0B, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xC1, - 0xD5, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0x00, - 0x08, - 0xCD, - 0x01, - 0xC1, - 0x01, - 0xC1, - 0x04, - 0xCD, - 0x00, - 0x1D, - 0xC1, - 0xCD, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xBF, - 0xBF, - 0xBF, - 0xBA, - 0xBB, - 0xBF, - 0xBF, - 0xBA, - 0x00, - 0x0B, - 0xB3, - 0x01, - 0xBA, - 0x06, - 0xB3, - 0x00, - 0x10, - 0xA1, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0xB3, - 0x99, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0x06, - 0xA6, - 0x00, - 0x1E, - 0xA1, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x0A, - 0x99, - 0x0A, - 0x94, - 0x00, - 0x35, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x9F, - 0x98, - 0x98, - 0x9F, - 0x9F, - 0x98, - 0x9C, - 0x98, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0xC5, - 0xCC, - 0xAA, - 0xD3, - 0xC5, - 0xC5, - 0xAA, - 0xD3, - 0xCC, - 0xAA, - 0xC1, - 0xC5, - 0xC1, - 0xCC, - 0xC1, - 0xC5, - 0xCD, - 0xC5, - 0xC1, - 0xC1, - 0xC1, - 0xCF, - 0xC5, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xC1, - 0xC7, - 0xCD, - 0xBA, - 0xBA, - 0xCD, - 0xC1, - 0xC1, - 0xBA, - 0xD7, - 0xC7, - 0xBA, - 0xC7, - 0xB2, - 0xBA, - 0xD7, - 0xB2, - 0xD7, - 0xD7, - 0xB2, - 0xD7, - 0xB2, - 0xBA, - 0xBF, - 0xBA, - 0xCB, - 0xC7, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0x0A, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xB2, - 0x0B, - 0xC1, - 0x00, - 0x10, - 0xC7, - 0xBA, - 0xC1, - 0xCD, - 0xBA, - 0xC7, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xC1, - 0xC1, - 0x07, - 0xCD, - 0x00, - 0x05, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xC1, - 0x00, - 0x08, - 0xCD, - 0x01, - 0xD5, - 0x09, - 0xCD, - 0x00, - 0x24, - 0xD6, - 0xC1, - 0xCD, - 0xC1, - 0xCF, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC1, - 0xBA, - 0xD1, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xC7, - 0xC7, - 0xC7, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xB3, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0xB3, - 0xBF, - 0xBF, - 0x05, - 0xB3, - 0x00, - 0x0D, - 0xB2, - 0xB0, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xA1, - 0xA1, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x09, - 0xB3, - 0xA1, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x09, - 0x99, - 0x94, - 0xA6, - 0xA6, - 0xA1, - 0x99, - 0xA6, - 0x99, - 0xA1, - 0x00, - 0x0A, - 0x99, - 0x00, - 0x06, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x05, - 0x99, - 0x01, - 0xA2, - 0x07, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x99, - 0x05, - 0x94, - 0x00, - 0x18, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x08, - 0x98, - 0x00, - 0x0B, - 0x9F, - 0x98, - 0x98, - 0xA7, - 0x9F, - 0x98, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x98, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x09, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x06, - 0xC5, - 0x00, - 0x29, - 0xC1, - 0xC5, - 0xCC, - 0xC1, - 0xC1, - 0xC5, - 0xC5, - 0xCD, - 0xC5, - 0xC1, - 0xC5, - 0xCD, - 0xC5, - 0xCD, - 0xCD, - 0xC5, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC5, - 0xCD, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xBA, - 0xC1, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xD7, - 0xBA, - 0xD7, - 0x00, - 0x04, - 0xBA, - 0x01, - 0xD7, - 0x06, - 0xBA, - 0x00, - 0x0B, - 0xC7, - 0xBA, - 0xB2, - 0xBA, - 0xC7, - 0xBA, - 0xD7, - 0xBA, - 0xC7, - 0xD7, - 0xB2, - 0x00, - 0x08, - 0xBA, - 0x01, - 0xC7, - 0x04, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0x0D, - 0xC1, - 0x00, - 0x14, - 0xC7, - 0xCD, - 0xBA, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC7, - 0xC1, - 0xD5, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xD5, - 0xCD, - 0xCD, - 0xC1, - 0x0A, - 0xCD, - 0x01, - 0xC1, - 0x0A, - 0xCD, - 0x01, - 0xD6, - 0x04, - 0xCD, - 0x00, - 0x24, - 0xC5, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC7, - 0xC1, - 0xD5, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xB8, - 0xD7, - 0xBA, - 0xC1, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xBF, - 0xBF, - 0xB3, - 0xBA, - 0xCB, - 0xBF, - 0xBA, - 0xB3, - 0xB3, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0x04, - 0xB3, - 0x00, - 0x0F, - 0xA1, - 0xB3, - 0xB3, - 0xB0, - 0xAE, - 0xAE, - 0xA1, - 0xB3, - 0xA1, - 0xAE, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0x00, - 0x05, - 0xA1, - 0x01, - 0xA6, - 0x01, - 0xA6, - 0x04, - 0xA1, - 0x00, - 0x0E, - 0x99, - 0xA1, - 0xA6, - 0xA6, - 0x94, - 0xA6, - 0xA1, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA1, - 0x99, - 0xA6, - 0x04, - 0x99, - 0x01, - 0xA2, - 0x05, - 0x99, - 0x00, - 0x08, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x07, - 0x99, - 0x00, - 0x03, - 0x94, - 0x94, - 0x99, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x10, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x94, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x08, - 0x8E, - 0x00, - 0x1E, - 0x98, - 0x98, - 0x82, - 0x8E, - 0x9F, - 0x9F, - 0x9F, - 0x98, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x95, - 0x98, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x98, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC5, - 0xC3, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x04, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0x04, - 0xCD, - 0x00, - 0x03, - 0xC1, - 0xC7, - 0xCD, - 0x00, - 0x07, - 0xC1, - 0x00, - 0x2F, - 0xC7, - 0xCD, - 0xBA, - 0xC7, - 0xCD, - 0xBA, - 0xCD, - 0xBA, - 0xCD, - 0xBA, - 0xC1, - 0xBA, - 0xD7, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBF, - 0xBA, - 0xC7, - 0xBF, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xD7, - 0xC1, - 0xD7, - 0xBA, - 0xC7, - 0xD7, - 0xD7, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xD7, - 0xBA, - 0xC7, - 0xBA, - 0xB2, - 0xD7, - 0xB2, - 0xBF, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x1F, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xC7, - 0xC1, - 0xBA, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x04, - 0xCD, - 0x01, - 0xD5, - 0x0F, - 0xCD, - 0x01, - 0xD6, - 0x0A, - 0xCD, - 0x00, - 0x0E, - 0xC1, - 0xCD, - 0xD5, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xCF, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xCD, - 0x04, - 0xC7, - 0x00, - 0x13, - 0xC1, - 0xBA, - 0xBA, - 0xC7, - 0xBF, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0x00, - 0x07, - 0xB3, - 0x00, - 0x0B, - 0xB0, - 0xBA, - 0xAE, - 0xB3, - 0xB2, - 0xB3, - 0xB0, - 0xB2, - 0xA1, - 0xB3, - 0xB3, - 0x00, - 0x06, - 0xA1, - 0x01, - 0xB3, - 0x07, - 0xA1, - 0x00, - 0x0C, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0x99, - 0xA6, - 0x0C, - 0x99, - 0x01, - 0xA2, - 0x0D, - 0x99, - 0x00, - 0x04, - 0x94, - 0x99, - 0x94, - 0x99, - 0x09, - 0x94, - 0x00, - 0x0D, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x94, - 0x00, - 0x06, - 0x8E, - 0x00, - 0x1C, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x9F, - 0x8E, - 0x8E, - 0xA1, - 0x98, - 0x98, - 0x98, - 0xA7, - 0x98, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x9F, - 0x9F, - 0x98, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x05, - 0x9C, - 0x00, - 0x06, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xBC, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x06, - 0xC5, - 0xCC, - 0xCA, - 0xC5, - 0xC5, - 0xCC, - 0x05, - 0xC5, - 0x00, - 0x25, - 0xC1, - 0xCD, - 0xC5, - 0xC1, - 0xCF, - 0xCD, - 0xC5, - 0xCD, - 0xCD, - 0xCC, - 0xC7, - 0xC1, - 0xCF, - 0xC5, - 0xCD, - 0xCD, - 0xC5, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xBA, - 0xC1, - 0xC7, - 0xC1, - 0xD7, - 0xC1, - 0xBA, - 0xB2, - 0xC1, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x0D, - 0xC7, - 0xC7, - 0xC1, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xC7, - 0xD7, - 0xBA, - 0xC7, - 0xC7, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x07, - 0xB2, - 0xD7, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xC7, - 0x00, - 0x06, - 0xBA, - 0x00, - 0x0C, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xC7, - 0x06, - 0xC1, - 0x00, - 0x0E, - 0xC7, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xD5, - 0xC1, - 0xC1, - 0x06, - 0xCD, - 0x00, - 0x07, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xD6, - 0x00, - 0x08, - 0xCD, - 0x01, - 0xD6, - 0x09, - 0xCD, - 0x00, - 0x0D, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x08, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xBA, - 0x05, - 0xBF, - 0x00, - 0x1D, - 0xB3, - 0xBF, - 0xB3, - 0xBA, - 0xB3, - 0xB3, - 0xB3, - 0xBF, - 0xB2, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xBA, - 0xA1, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xA1, - 0xAE, - 0x00, - 0x08, - 0xA1, - 0x00, - 0x0B, - 0xA6, - 0xA1, - 0x99, - 0x94, - 0xA6, - 0x99, - 0xA6, - 0x94, - 0xA6, - 0x94, - 0xA6, - 0x00, - 0x09, - 0x99, - 0x01, - 0xA2, - 0x0F, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x99, - 0x06, - 0x94, - 0x00, - 0x3B, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x82, - 0x8E, - 0x82, - 0x98, - 0x98, - 0x98, - 0x9C, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4F, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0xC1, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0xCD, - 0xCC, - 0xCC, - 0xCD, - 0xC5, - 0xC5, - 0xCD, - 0xCC, - 0xCD, - 0xCD, - 0xC5, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xBA, - 0xBA, - 0xD1, - 0xBA, - 0xD7, - 0xC7, - 0xBA, - 0xD7, - 0xD7, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xC7, - 0xC7, - 0xBA, - 0xD7, - 0xBA, - 0xC7, - 0xBA, - 0xCB, - 0xBF, - 0xBA, - 0xD5, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xD7, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x05, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0x00, - 0x13, - 0xBA, - 0xC1, - 0xC7, - 0xC1, - 0xD7, - 0xCD, - 0xBA, - 0xC7, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0xC7, - 0xD5, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0xD5, - 0x00, - 0x07, - 0xCD, - 0x00, - 0x0B, - 0xDC, - 0xC1, - 0xD6, - 0xD6, - 0xC1, - 0xD6, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xD5, - 0x00, - 0x0B, - 0xCD, - 0x00, - 0x27, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC7, - 0xCD, - 0xC1, - 0xC7, - 0xC7, - 0xC7, - 0xC1, - 0xC1, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xC7, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0xBA, - 0xB3, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xBA, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x0E, - 0xBA, - 0xA1, - 0xB3, - 0xB3, - 0xBA, - 0xA1, - 0xB0, - 0xB2, - 0xA1, - 0xA1, - 0xB2, - 0xA1, - 0xA1, - 0xB3, - 0x0E, - 0xA1, - 0x00, - 0x0E, - 0xA6, - 0xA1, - 0xA1, - 0x99, - 0xA1, - 0xA6, - 0x94, - 0xA6, - 0x99, - 0x94, - 0xA6, - 0x99, - 0x99, - 0xA1, - 0x13, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x05, - 0x94, - 0x00, - 0x1C, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x05, - 0x98, - 0x00, - 0x1C, - 0x8E, - 0x98, - 0x9F, - 0xA1, - 0x9F, - 0x98, - 0x9C, - 0x8E, - 0x9C, - 0x98, - 0x9F, - 0x82, - 0x98, - 0x95, - 0x98, - 0x9F, - 0x9C, - 0xA7, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9C, - 0x9F, - 0x8F, - 0xA7, - 0x9C, - 0xC5, - 0x00, - 0x01, - 0xF6, - 0x02, - 0x00, - 0x00, - 0x10, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x80, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x03, - 0x3A, - 0x88, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA2, - 0x22, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0xA6, - 0x79, - 0x52, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x38, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA9, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x66, - 0x25, - 0x16, - 0x14, - 0x36, - 0x22, - 0x55, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x91, - 0x35, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x3A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x69, - 0x62, - 0x00, - 0x00, - 0x00, - 0x40, - 0x13, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x34, - 0x1D, - 0x07, - 0x19, - 0x24, - 0x5C, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x55, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x22, - 0x13, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0xAC, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x17, - 0x4B, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x69, - 0x31, - 0x00, - 0x87, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x53, - 0x03, - 0x1D, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x45, - 0x00, - 0x00, - 0x0E, - 0x25, - 0x3A, - 0x66, - 0x15, - 0x17, - 0x00, - 0x05, - 0x4B, - 0x9C, - 0x5E, - 0x38, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x72, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xE0, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x8F, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x15, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x35, - 0x69, - 0x69, - 0xCD, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x31, - 0x22, - 0x77, - 0x55, - 0x88, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x81, - 0x80, - 0x69, - 0xA3, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x88, - 0x69, - 0x3A, - 0xA3, - 0x91, - 0x00, - 0x0E, - 0x3A, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x23, - 0x7A, - 0x5E, - 0x34, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x7A, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x67, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0x8F, - 0x1E, - 0x1E, - 0x67, - 0x15, - 0x08, - 0x00, - 0x00, - 0x22, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE0, - 0x4B, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x3A, - 0x9B, - 0x57, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0x67, - 0x1E, - 0x55, - 0x67, - 0x45, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x33, - 0xA4, - 0x4A, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x79, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x23, - 0x9B, - 0x69, - 0x1E, - 0x67, - 0x45, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x21, - 0xA3, - 0x69, - 0x13, - 0x54, - 0x04, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x52, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x33, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x22, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x45, - 0x67, - 0x1E, - 0x69, - 0x35, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x45, - 0x67, - 0x1E, - 0x69, - 0x9B, - 0x4A, - 0x2C, - 0x41, - 0x69, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x66, - 0x4B, - 0x00, - 0x2D, - 0x65, - 0x13, - 0x1E, - 0x9B, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x9B, - 0x55, - 0x13, - 0x5C, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x00, - 0x72, - 0x24, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x05, - 0x66, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x27, - 0x00, - 0x00, - 0x25, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x82, - 0x03, - 0x38, - 0x23, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x68, - 0x82, - 0x1E, - 0x38, - 0x15, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x68, - 0x38, - 0x5E, - 0x82, - 0x22, - 0x08, - 0x00, - 0x00, - 0x00, - 0x37, - 0x54, - 0xAF, - 0x03, - 0x7A, - 0x57, - 0x91, - 0x03, - 0x00, - 0x00, - 0x08, - 0x52, - 0x82, - 0x1E, - 0x9C, - 0x57, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x52, - 0x82, - 0x1E, - 0x34, - 0x4A, - 0x79, - 0x66, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x91, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x19, - 0x13, - 0xAE, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x08, - 0x52, - 0x7A, - 0x5E, - 0xC5, - 0x68, - 0x0E, - 0x00, - 0x2C, - 0x03, - 0x31, - 0x68, - 0x82, - 0x1E, - 0x34, - 0xBB, - 0x07, - 0x00, - 0x00, - 0x00, - 0x08, - 0x52, - 0x82, - 0x1E, - 0x34, - 0x57, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x67, - 0x55, - 0xCD, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x67, - 0x1E, - 0x1E, - 0x53, - 0x87, - 0x03, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x7A, - 0x05, - 0x00, - 0x00, - 0xA6, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x15, - 0x35, - 0x05, - 0x00, - 0x00, - 0x2D, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x54, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x40, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0x62, - 0x00, - 0x08, - 0x69, - 0x05, - 0x00, - 0x00, - 0x21, - 0x3A, - 0xBB, - 0x40, - 0x39, - 0x33, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x0E, - 0x00, - 0xA9, - 0xA3, - 0x2D, - 0x36, - 0x67, - 0x54, - 0x00, - 0x45, - 0x82, - 0x39, - 0x21, - 0x39, - 0x13, - 0x23, - 0x05, - 0x54, - 0x33, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x82, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x5E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x27, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x1E, - 0xD1, - 0x2E, - 0x19, - 0x23, - 0x1E, - 0x87, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x07, - 0x88, - 0x35, - 0x14, - 0x08, - 0x08, - 0x08, - 0x08, - 0x07, - 0x67, - 0x5C, - 0x36, - 0x2E, - 0x23, - 0x80, - 0x40, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x79, - 0x03, - 0x19, - 0x00, - 0x2D, - 0xA2, - 0x15, - 0x19, - 0x19, - 0x68, - 0x3A, - 0x40, - 0x00, - 0x00, - 0x79, - 0x1E, - 0x23, - 0x19, - 0x19, - 0x15, - 0x3A, - 0x91, - 0x00, - 0x68, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x34, - 0x6E, - 0x21, - 0x2B, - 0x13, - 0x58, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0xAE, - 0x67, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xA3, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0xA2, - 0x9B, - 0x51, - 0x19, - 0x14, - 0x27, - 0x57, - 0x67, - 0x2D, - 0x00, - 0x91, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x3A, - 0x0E, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x19, - 0xAE, - 0x82, - 0x45, - 0x00, - 0x00, - 0x7B, - 0x13, - 0x88, - 0xAC, - 0x2E, - 0x63, - 0xAC, - 0x89, - 0x38, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x21, - 0x36, - 0x58, - 0xCD, - 0x9C, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x08, - 0x08, - 0x08, - 0x0B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x38, - 0x88, - 0xAC, - 0x2E, - 0x2E, - 0x39, - 0x9B, - 0x34, - 0x2E, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x9B, - 0xA1, - 0x19, - 0x27, - 0x34, - 0x23, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x25, - 0x46, - 0x0B, - 0x2C, - 0x03, - 0x08, - 0x18, - 0x18, - 0x18, - 0x31, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x69, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x1E, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x7A, - 0x88, - 0x1A, - 0x63, - 0x19, - 0xAE, - 0x24, - 0x9B, - 0x37, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x82, - 0x88, - 0x1A, - 0x21, - 0x19, - 0xAE, - 0x33, - 0x03, - 0xE5, - 0x63, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x05, - 0xCD, - 0x65, - 0x00, - 0x21, - 0x13, - 0xA4, - 0x27, - 0x14, - 0x51, - 0x13, - 0xAE, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x69, - 0xD1, - 0x2E, - 0x19, - 0x15, - 0x3A, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x82, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7A, - 0x80, - 0x23, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0x3A, - 0x16, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x05, - 0x89, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x22, - 0x08, - 0x08, - 0x08, - 0x08, - 0x08, - 0x19, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x46, - 0x00, - 0x00, - 0x00, - 0x79, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x82, - 0x5C, - 0x16, - 0x14, - 0x62, - 0x46, - 0xCD, - 0x03, - 0x2C, - 0x03, - 0x9B, - 0xA3, - 0x16, - 0x14, - 0x87, - 0x35, - 0x67, - 0x2F, - 0x00, - 0x14, - 0x38, - 0x41, - 0x7B, - 0x14, - 0x16, - 0xA4, - 0x82, - 0x14, - 0x00, - 0x14, - 0x38, - 0x81, - 0x16, - 0x14, - 0x6E, - 0x46, - 0x88, - 0x03, - 0x00, - 0x14, - 0x38, - 0x52, - 0x36, - 0x14, - 0x79, - 0x9B, - 0x5C, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x21, - 0xC5, - 0x53, - 0xB1, - 0x14, - 0x6E, - 0x9B, - 0xA1, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x17, - 0x00, - 0x0E, - 0x34, - 0x72, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x63, - 0x82, - 0x65, - 0x16, - 0x14, - 0x16, - 0xA4, - 0x34, - 0x31, - 0x2C, - 0x03, - 0x35, - 0xA1, - 0x27, - 0x14, - 0x87, - 0x46, - 0x46, - 0x07, - 0x00, - 0x14, - 0xAF, - 0x53, - 0x27, - 0x14, - 0x6E, - 0x35, - 0x35, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x45, - 0x21, - 0x1D, - 0x88, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x23, - 0x13, - 0x26, - 0x63, - 0x2D, - 0x72, - 0x38, - 0x03, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x38, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x55, - 0x66, - 0x36, - 0x00, - 0x05, - 0x13, - 0x82, - 0x51, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x57, - 0x00, - 0x05, - 0x46, - 0x72, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x03, - 0x87, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x81, - 0x08, - 0x08, - 0x08, - 0x08, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x4B, - 0x00, - 0x00, - 0x77, - 0x19, - 0x00, - 0x00, - 0x23, - 0x89, - 0x00, - 0x00, - 0x00, - 0x26, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x23, - 0x63, - 0x03, - 0x37, - 0x00, - 0x00, - 0x79, - 0xA2, - 0x07, - 0x1E, - 0x16, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x1E, - 0x53, - 0x38, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x38, - 0x36, - 0x00, - 0x00, - 0x00, - 0x05, - 0x33, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0xA9, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x07, - 0x88, - 0x5C, - 0x04, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x04, - 0x00, - 0x00, - 0x00, - 0x68, - 0x5C, - 0x03, - 0x55, - 0x3A, - 0x3A, - 0x3A, - 0x1E, - 0x03, - 0x3A, - 0x00, - 0xA3, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x41, - 0x00, - 0x05, - 0x7A, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA3, - 0x00, - 0x21, - 0x1E, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x69, - 0x1A, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x35, - 0x3A, - 0x72, - 0x14, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x14, - 0x68, - 0x69, - 0xCD, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x55, - 0x9B, - 0x67, - 0xE0, - 0x15, - 0x4A, - 0x38, - 0x9B, - 0x4A, - 0x05, - 0x00, - 0x00, - 0xCD, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x22, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x51, - 0xAF, - 0x00, - 0x2E, - 0x13, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x54, - 0x34, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x7A, - 0x0E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x82, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xA1, - 0x8F, - 0x0B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x21, - 0x03, - 0x08, - 0x00, - 0x00, - 0xAE, - 0x34, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x58, - 0xA2, - 0x63, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x1D, - 0x35, - 0x4B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0xA3, - 0x03, - 0x00, - 0x08, - 0x66, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x25, - 0x9B, - 0x04, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x13, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE5, - 0x13, - 0xA4, - 0x46, - 0x04, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x15, - 0x7A, - 0x0E, - 0x00, - 0x15, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x58, - 0x9C, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x05, - 0x33, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x62, - 0x80, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x1E, - 0x45, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x26, - 0x67, - 0x25, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x55, - 0x40, - 0x00, - 0x00, - 0x4A, - 0x82, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x1E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x26, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x2C, - 0x03, - 0x5C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x15, - 0x00, - 0x65, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x54, - 0x23, - 0x00, - 0xA3, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x00, - 0x81, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x88, - 0x39, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0xBB, - 0x05, - 0x5C, - 0xA4, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x41, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xCD, - 0x54, - 0x2C, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x15, - 0x00, - 0x5C, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x14, - 0x88, - 0x07, - 0x00, - 0x27, - 0x55, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x05, - 0x13, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x27, - 0xA2, - 0x36, - 0x1E, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x81, - 0x52, - 0x15, - 0x00, - 0x87, - 0x9C, - 0x4A, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x3A, - 0x19, - 0x4B, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x79, - 0x13, - 0x52, - 0x81, - 0x00, - 0x00, - 0x00, - 0x14, - 0x13, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x45, - 0xA1, - 0x19, - 0x19, - 0x35, - 0x58, - 0x19, - 0x31, - 0x6E, - 0x79, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x82, - 0x2D, - 0x03, - 0x14, - 0x00, - 0x00, - 0x79, - 0x13, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x13, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x15, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x13, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x07, - 0x35, - 0x81, - 0x04, - 0x00, - 0x00, - 0x1D, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x13, - 0x53, - 0x25, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0xA9, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x00, - 0x2E, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x00, - 0x00, - 0xA6, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x27, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x17, - 0x14, - 0x57, - 0x77, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x26, - 0x34, - 0x13, - 0x45, - 0x31, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x18, - 0xBB, - 0xA2, - 0xE0, - 0xAE, - 0x17, - 0x00, - 0x00, - 0x00, - 0x63, - 0x33, - 0x07, - 0x00, - 0x00, - 0x00, - 0x88, - 0x88, - 0x66, - 0x1A, - 0x05, - 0x52, - 0x03, - 0x15, - 0x31, - 0x41, - 0x22, - 0x00, - 0x00, - 0x2B, - 0xA2, - 0x19, - 0x21, - 0x21, - 0x21, - 0x21, - 0x62, - 0x03, - 0x2D, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x00, - 0x25, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7B, - 0x37, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x15, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x4B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x2C, - 0x03, - 0x27, - 0x00, - 0x36, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x0E, - 0x1E, - 0x36, - 0xAE, - 0x34, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x34, - 0x27, - 0x03, - 0x00, - 0x22, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x4A, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x82, - 0x16, - 0x19, - 0x27, - 0x23, - 0x38, - 0x35, - 0x2E, - 0x0B, - 0x34, - 0x4B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x79, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x1A, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x55, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x63, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x66, - 0x00, - 0x00, - 0x00, - 0x26, - 0x67, - 0x00, - 0x52, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x5D, - 0x91, - 0x1E, - 0x0B, - 0x00, - 0x00, - 0x25, - 0x72, - 0x26, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x9B, - 0x05, - 0x14, - 0x80, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x45, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x2C, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x38, - 0x0E, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x0E, - 0x03, - 0x36, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x14, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x66, - 0xA3, - 0x34, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x0E, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0xAF, - 0x2C, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x38, - 0x0E, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x22, - 0x67, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x00, - 0x00, - 0x1D, - 0x68, - 0x00, - 0xA9, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0xAC, - 0x87, - 0xE0, - 0x00, - 0x52, - 0x15, - 0x31, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x9B, - 0x80, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x52, - 0x19, - 0x5E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x33, - 0x31, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2E, - 0x03, - 0x31, - 0x00, - 0x00, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0x69, - 0x03, - 0x3A, - 0x3A, - 0x1E, - 0x1E, - 0x3A, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x57, - 0x41, - 0xA4, - 0x36, - 0x62, - 0x34, - 0xBB, - 0x0E, - 0x5E, - 0x87, - 0x00, - 0x00, - 0x14, - 0x67, - 0x67, - 0x69, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x79, - 0x03, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x9B, - 0x65, - 0x17, - 0x00, - 0x14, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x1E, - 0x14, - 0x13, - 0x87, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x1E, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x3A, - 0x00, - 0x00, - 0x2C, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x07, - 0x80, - 0x16, - 0x00, - 0x00, - 0x00, - 0x58, - 0x82, - 0x00, - 0x00, - 0x4B, - 0xA2, - 0x1E, - 0x3A, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x82, - 0x69, - 0x4B, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x23, - 0x3A, - 0xAF, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x4A, - 0x00, - 0x00, - 0x31, - 0x03, - 0x4A, - 0x03, - 0x05, - 0x00, - 0x04, - 0x34, - 0xCD, - 0x00, - 0x07, - 0x34, - 0xAE, - 0x00, - 0x17, - 0x33, - 0x1E, - 0x13, - 0x13, - 0x13, - 0x13, - 0x03, - 0x88, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x82, - 0x0B, - 0x1E, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x8F, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x3A, - 0x7B, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x68, - 0x46, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0xC5, - 0x19, - 0x34, - 0x72, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x4B, - 0x9B, - 0x00, - 0x0B, - 0x66, - 0x62, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x21, - 0x3A, - 0x16, - 0x2C, - 0x03, - 0x05, - 0x3A, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x35, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x2E, - 0x14, - 0x05, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x53, - 0x34, - 0x13, - 0x38, - 0x53, - 0x39, - 0x05, - 0x00, - 0x00, - 0x4B, - 0x46, - 0x2C, - 0x03, - 0x05, - 0x14, - 0x13, - 0x46, - 0x6E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x9B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x00, - 0x00, - 0x00, - 0x46, - 0x4A, - 0x00, - 0x91, - 0x3A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x57, - 0x05, - 0x66, - 0x7B, - 0x00, - 0x05, - 0x77, - 0x87, - 0x14, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x57, - 0x41, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0xA2, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x68, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x08, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x2D, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x55, - 0x35, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x6E, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x2D, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x2C, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x18, - 0x15, - 0x77, - 0x67, - 0x40, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x40, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x00, - 0x0E, - 0x1E, - 0x19, - 0x00, - 0x39, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x27, - 0x13, - 0x04, - 0x05, - 0x13, - 0x2D, - 0x82, - 0x27, - 0x00, - 0xA1, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x3A, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x5E, - 0x36, - 0x00, - 0xA3, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x25, - 0x00, - 0x00, - 0x4A, - 0x38, - 0x23, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x67, - 0x40, - 0x07, - 0xAF, - 0x39, - 0x27, - 0x15, - 0x38, - 0x03, - 0x38, - 0x40, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x69, - 0x0B, - 0x00, - 0x26, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x62, - 0xD8, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x33, - 0x08, - 0x52, - 0x7A, - 0x34, - 0x23, - 0x05, - 0x00, - 0x54, - 0x33, - 0x16, - 0x36, - 0x82, - 0x41, - 0x2F, - 0x15, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x1E, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x36, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x9B, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0xA3, - 0x00, - 0x4A, - 0x9C, - 0x0B, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x07, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xA3, - 0x00, - 0x05, - 0x66, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x81, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x15, - 0x00, - 0x00, - 0x00, - 0x51, - 0x34, - 0xAC, - 0x2D, - 0x58, - 0x80, - 0x15, - 0x00, - 0x4B, - 0x13, - 0x1A, - 0x05, - 0x07, - 0x4B, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x9B, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x88, - 0x55, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1E, - 0x87, - 0x00, - 0x2D, - 0x03, - 0x2D, - 0x03, - 0x08, - 0x00, - 0x00, - 0x57, - 0x03, - 0x14, - 0x00, - 0xC0, - 0x9B, - 0x00, - 0x00, - 0x45, - 0x67, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0x39, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x36, - 0x58, - 0x13, - 0x68, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x05, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x19, - 0x19, - 0x08, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x66, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x79, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0xA1, - 0x1E, - 0xCD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x34, - 0xAE, - 0x00, - 0x00, - 0x15, - 0xA1, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0xA4, - 0x52, - 0x00, - 0x2C, - 0x03, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x69, - 0x03, - 0x80, - 0x54, - 0x04, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x2C, - 0x03, - 0x05, - 0x62, - 0x23, - 0x68, - 0x34, - 0x24, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x39, - 0xA4, - 0x3A, - 0xB1, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x46, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0x40, - 0x00, - 0x25, - 0xBB, - 0x00, - 0x2C, - 0x1E, - 0x07, - 0x00, - 0x67, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x77, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x33, - 0x5D, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x34, - 0x17, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x1D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x2C, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x7A, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x1D, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x31, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x80, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0xBB, - 0x34, - 0x2F, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x04, - 0x00, - 0x00, - 0x00, - 0x27, - 0x5E, - 0x2C, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x38, - 0x2C, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x7A, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x2C, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x05, - 0xE0, - 0x88, - 0x16, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x4B, - 0x88, - 0x00, - 0x00, - 0x05, - 0x82, - 0x1A, - 0x00, - 0x00, - 0x52, - 0x52, - 0x00, - 0x00, - 0xA6, - 0x5C, - 0xAF, - 0x05, - 0x00, - 0x79, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x57, - 0x38, - 0x13, - 0x19, - 0x00, - 0x00, - 0x00, - 0x23, - 0x9B, - 0x00, - 0x00, - 0x79, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x82, - 0x39, - 0x00, - 0x4B, - 0x7A, - 0x57, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x22, - 0x24, - 0x40, - 0x00, - 0x36, - 0xE0, - 0x82, - 0x1D, - 0x7B, - 0x05, - 0x26, - 0x25, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x16, - 0x00, - 0x19, - 0x77, - 0x00, - 0x00, - 0x00, - 0x91, - 0x34, - 0x03, - 0xA3, - 0x16, - 0x00, - 0x00, - 0x00, - 0x04, - 0x14, - 0x05, - 0x00, - 0x81, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x72, - 0x03, - 0x55, - 0x67, - 0x0B, - 0x00, - 0x0E, - 0xA2, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x15, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x82, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x14, - 0x36, - 0x22, - 0x66, - 0x19, - 0x00, - 0x05, - 0x46, - 0x45, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x52, - 0x36, - 0x36, - 0x22, - 0x13, - 0x2D, - 0x00, - 0x00, - 0x23, - 0x03, - 0x45, - 0x40, - 0x91, - 0x54, - 0xA2, - 0x19, - 0x00, - 0x00, - 0x00, - 0x87, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x03, - 0x03, - 0x38, - 0x0E, - 0x17, - 0x13, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x88, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x08, - 0x15, - 0x13, - 0xE0, - 0xAE, - 0x05, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x05, - 0x51, - 0x24, - 0x13, - 0x15, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x1E, - 0x16, - 0x2E, - 0x03, - 0x0E, - 0x38, - 0xAE, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x4B, - 0x00, - 0x27, - 0x69, - 0x00, - 0x00, - 0x08, - 0x1E, - 0x16, - 0x00, - 0x00, - 0x4B, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x03, - 0x03, - 0x66, - 0x18, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x5E, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x14, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x1D, - 0x2D, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x1E, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x67, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x62, - 0x66, - 0x0B, - 0x00, - 0x00, - 0x2E, - 0x1E, - 0x14, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0xAE, - 0xC5, - 0x2F, - 0x00, - 0x2C, - 0x03, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x69, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x04, - 0x7B, - 0x38, - 0x72, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x17, - 0x41, - 0xA1, - 0x00, - 0x14, - 0x53, - 0x1E, - 0x9B, - 0x45, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x22, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x58, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x82, - 0x00, - 0x00, - 0x26, - 0x46, - 0x00, - 0x57, - 0xA4, - 0x00, - 0x00, - 0x72, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x55, - 0x67, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x46, - 0x2F, - 0x13, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x8F, - 0x4B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x26, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x36, - 0x1E, - 0x37, - 0x00, - 0x00, - 0xAE, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x46, - 0x03, - 0x2C, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x15, - 0x00, - 0x5C, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA6, - 0x15, - 0x00, - 0x41, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x24, - 0x03, - 0x00, - 0xA4, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA2, - 0x87, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x03, - 0x2C, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x88, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x88, - 0xA1, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x2C, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x67, - 0x00, - 0xA4, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x46, - 0x72, - 0x2C, - 0x03, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x15, - 0x00, - 0xA4, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x2C, - 0x03, - 0x16, - 0x00, - 0x00, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x19, - 0x16, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x34, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x45, - 0xA3, - 0x00, - 0x0B, - 0x13, - 0x27, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x54, - 0x00, - 0x00, - 0x05, - 0x82, - 0x16, - 0x00, - 0x00, - 0x40, - 0x3A, - 0x36, - 0x45, - 0x9B, - 0x05, - 0x00, - 0x05, - 0x34, - 0x4A, - 0x00, - 0x00, - 0x05, - 0x38, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x77, - 0x37, - 0x00, - 0x87, - 0x69, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x19, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x55, - 0x03, - 0x5E, - 0x55, - 0x55, - 0x03, - 0x55, - 0x88, - 0x05, - 0x7A, - 0x53, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x13, - 0x5E, - 0x38, - 0x40, - 0x16, - 0x82, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x5E, - 0x22, - 0x34, - 0xE0, - 0x19, - 0x00, - 0xC0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x15, - 0x00, - 0x07, - 0x41, - 0x14, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x34, - 0x00, - 0x00, - 0x40, - 0x03, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x55, - 0x40, - 0x00, - 0x00, - 0x00, - 0x36, - 0x3A, - 0x2E, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x14, - 0x03, - 0xA6, - 0x7A, - 0x66, - 0xA1, - 0x19, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x67, - 0x55, - 0x67, - 0x82, - 0x53, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x4B, - 0x00, - 0x00, - 0x05, - 0x67, - 0x1D, - 0x07, - 0x31, - 0x89, - 0x25, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x1E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x57, - 0x82, - 0x38, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x82, - 0x57, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x35, - 0x05, - 0xA2, - 0x6E, - 0x4A, - 0x34, - 0x07, - 0x00, - 0x07, - 0x03, - 0x35, - 0x00, - 0x6E, - 0x13, - 0x00, - 0x00, - 0x00, - 0x25, - 0xA6, - 0x00, - 0x00, - 0xE0, - 0x23, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x05, - 0x2D, - 0x88, - 0x1D, - 0x0B, - 0x1E, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xE0, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x19, - 0xA2, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0xA1, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x45, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x37, - 0x13, - 0x1A, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x0B, - 0x3A, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x35, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x33, - 0x0B, - 0x1E, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x67, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x13, - 0x05, - 0x67, - 0xA1, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x0E, - 0x3A, - 0x16, - 0x00, - 0x00, - 0x00, - 0x07, - 0x3A, - 0x16, - 0x00, - 0x00, - 0x00, - 0x54, - 0x1D, - 0x00, - 0x00, - 0x14, - 0x5E, - 0x2F, - 0x41, - 0x57, - 0x00, - 0x00, - 0x87, - 0x77, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x65, - 0x38, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x66, - 0x6E, - 0x00, - 0x23, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x13, - 0x37, - 0x00, - 0x40, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x05, - 0x00, - 0x00, - 0x35, - 0x23, - 0x00, - 0x00, - 0x35, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x33, - 0x5C, - 0x16, - 0x14, - 0x6E, - 0x35, - 0x88, - 0x03, - 0x2C, - 0x03, - 0x35, - 0x65, - 0x16, - 0x14, - 0x87, - 0xCD, - 0x9B, - 0x07, - 0x00, - 0x14, - 0x38, - 0xA3, - 0x16, - 0x21, - 0x7B, - 0x41, - 0x7A, - 0x14, - 0x00, - 0x21, - 0x82, - 0x53, - 0xB1, - 0x14, - 0x79, - 0x9B, - 0x24, - 0x03, - 0x00, - 0x2E, - 0x33, - 0x25, - 0x27, - 0x21, - 0x39, - 0x7A, - 0x22, - 0x00, - 0x08, - 0x62, - 0x03, - 0x08, - 0x08, - 0x00, - 0x19, - 0x66, - 0xA6, - 0x27, - 0x14, - 0x6E, - 0x46, - 0xA4, - 0x03, - 0x2C, - 0x03, - 0x66, - 0x4A, - 0x2E, - 0x2E, - 0x57, - 0x55, - 0x6E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x14, - 0x77, - 0x4A, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x34, - 0x87, - 0x14, - 0x2B, - 0x13, - 0xA6, - 0x7A, - 0x6E, - 0x14, - 0x1A, - 0x77, - 0x4A, - 0x2C, - 0x03, - 0xC5, - 0x58, - 0x2E, - 0x19, - 0x45, - 0x1E, - 0x39, - 0x00, - 0x2E, - 0x33, - 0xA1, - 0x16, - 0x14, - 0x6E, - 0x35, - 0x67, - 0x2F, - 0x2C, - 0x03, - 0x35, - 0x65, - 0x16, - 0x14, - 0x6E, - 0x35, - 0x9B, - 0x07, - 0x00, - 0x2E, - 0x33, - 0xA1, - 0xB1, - 0x14, - 0x6E, - 0x35, - 0x35, - 0x03, - 0x2C, - 0x03, - 0x67, - 0x16, - 0x05, - 0x07, - 0x3A, - 0x4A, - 0x19, - 0x88, - 0x54, - 0x08, - 0x62, - 0x03, - 0x08, - 0x08, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x62, - 0x66, - 0x04, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1E, - 0x63, - 0x39, - 0x34, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x16, - 0x00, - 0x00, - 0x00, - 0x15, - 0x1D, - 0x00, - 0x04, - 0x67, - 0x45, - 0x00, - 0x17, - 0x9B, - 0x45, - 0x00, - 0x62, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x57, - 0x9B, - 0x00, - 0x08, - 0x08, - 0x08, - 0x08, - 0x25, - 0xA1, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x4A, - 0x22, - 0x00, - 0x00, - 0x46, - 0x6E, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x0B, - 0x2E, - 0x07, - 0x13, - 0x58, - 0x05, - 0x68, - 0x9B, - 0x00, - 0x35, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xD1, - 0x00, - 0x05, - 0x1D, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x79, - 0x13, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x3A, - 0x14, - 0x00, - 0x2E, - 0x1D, - 0x38, - 0x23, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x33, - 0x36, - 0x00, - 0x63, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1D, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x41, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x1E, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0xAF, - 0x05, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x87, - 0x3A, - 0x21, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x13, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x26, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x26, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x54, - 0x88, - 0x05, - 0xA3, - 0xA4, - 0x36, - 0x57, - 0x13, - 0x69, - 0x14, - 0xA6, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x37, - 0x16, - 0x55, - 0x37, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x3A, - 0x00, - 0x25, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x16, - 0x31, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x67, - 0xE5, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x2E, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x79, - 0x69, - 0x36, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x1E, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0xC5, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x25, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x22, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x7A, - 0x4A, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x00, - 0x25, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x8F, - 0x23, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x69, - 0x19, - 0x03, - 0x18, - 0x00, - 0x00, - 0x0B, - 0x19, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x4A, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x34, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x67, - 0x39, - 0x69, - 0x40, - 0x00, - 0x00, - 0x0B, - 0x69, - 0x27, - 0x00, - 0x00, - 0x00, - 0x26, - 0x13, - 0x08, - 0x87, - 0x1E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x46, - 0x00, - 0x00, - 0x07, - 0x66, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x81, - 0x22, - 0x00, - 0x37, - 0x03, - 0x19, - 0x00, - 0x00, - 0x27, - 0x82, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x39, - 0xC5, - 0x05, - 0x36, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x1E, - 0xE0, - 0x4B, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x15, - 0x38, - 0x1E, - 0x34, - 0xBB, - 0x07, - 0x00, - 0x00, - 0x00, - 0x18, - 0x54, - 0xAF, - 0x1E, - 0xAF, - 0x54, - 0x18, - 0x00, - 0x00, - 0x00, - 0x08, - 0x22, - 0x82, - 0x1E, - 0x34, - 0x57, - 0x36, - 0x03, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x55, - 0x67, - 0x58, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x55, - 0x67, - 0x58, - 0x91, - 0x03, - 0x2C, - 0x03, - 0x27, - 0x5D, - 0x69, - 0x3A, - 0x88, - 0x62, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x6E, - 0x55, - 0x36, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x79, - 0x8F, - 0x5E, - 0xE0, - 0x2B, - 0x00, - 0x4A, - 0x38, - 0x5E, - 0x34, - 0x4A, - 0x00, - 0x2C, - 0x03, - 0x2D, - 0x65, - 0x13, - 0x69, - 0xCD, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x08, - 0x22, - 0x82, - 0x1E, - 0x7A, - 0x15, - 0x2F, - 0x00, - 0x2C, - 0x03, - 0x0E, - 0x15, - 0x38, - 0x1E, - 0x34, - 0x15, - 0x07, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x82, - 0x1E, - 0x9C, - 0x23, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x58, - 0x1E, - 0x45, - 0x00, - 0x79, - 0x34, - 0x55, - 0xA3, - 0x31, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0xA1, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x15, - 0x5C, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x3A, - 0x07, - 0x15, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x2D, - 0x69, - 0x27, - 0x25, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0xB1, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x16, - 0x46, - 0x00, - 0x00, - 0x22, - 0x4B, - 0x00, - 0x14, - 0x03, - 0x14, - 0x00, - 0x00, - 0x79, - 0x35, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x39, - 0x38, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0x07, - 0x00, - 0x00, - 0xB1, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x65, - 0x5C, - 0x05, - 0x00, - 0x00, - 0x2E, - 0xC5, - 0x4A, - 0x00, - 0x00, - 0x66, - 0x1E, - 0x03, - 0x69, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x15, - 0x00, - 0x05, - 0x77, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x46, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x0B, - 0x69, - 0x79, - 0x00, - 0x00, - 0x00, - 0x4A, - 0xE0, - 0x00, - 0x1D, - 0x27, - 0x00, - 0x00, - 0x27, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x82, - 0xE5, - 0x03, - 0x00, - 0x00, - 0x00, - 0x88, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x77, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x38, - 0x51, - 0x00, - 0x14, - 0x03, - 0x08, - 0x00, - 0x00, - 0x6E, - 0x13, - 0x00, - 0x7A, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x5E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x26, - 0x34, - 0x00, - 0x31, - 0x34, - 0x54, - 0x07, - 0x15, - 0xC5, - 0x34, - 0xAC, - 0x00, - 0x26, - 0x1E, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x23, - 0xD8, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6E, - 0xA2, - 0x00, - 0x19, - 0x13, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0xAF, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x22, - 0x7A, - 0x31, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x33, - 0x0E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x45, - 0xAF, - 0x37, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0xBB, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x45, - 0x03, - 0x2C, - 0x03, - 0x1A, - 0x13, - 0x08, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x08, - 0x82, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x81, - 0x9B, - 0x17, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x33, - 0x00, - 0x2E, - 0x13, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1D, - 0x34, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0xCD, - 0x14, - 0x03, - 0x63, - 0x00, - 0x00, - 0x79, - 0x13, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x67, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x37, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x68, - 0x67, - 0x33, - 0x05, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x45, - 0x00, - 0x00, - 0x08, - 0xA2, - 0xAE, - 0x00, - 0x00, - 0x1D, - 0x88, - 0x05, - 0x00, - 0x00, - 0x0E, - 0xA2, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x8F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x91, - 0x00, - 0x9B, - 0xBB, - 0x00, - 0x00, - 0x1D, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x5D, - 0x65, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x39, - 0x1D, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x18, - 0x13, - 0x00, - 0x00, - 0x57, - 0x22, - 0x00, - 0x00, - 0x46, - 0xA4, - 0x27, - 0x7B, - 0x67, - 0xAC, - 0x04, - 0x33, - 0x15, - 0x2E, - 0xA1, - 0xA4, - 0x00, - 0x05, - 0x34, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x22, - 0x19, - 0x91, - 0xA9, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x9B, - 0x5C, - 0x31, - 0x62, - 0x82, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x46, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x34, - 0x00, - 0x00, - 0x4A, - 0x3A, - 0x4A, - 0x2E, - 0x19, - 0x45, - 0x55, - 0x87, - 0x05, - 0x08, - 0x62, - 0x03, - 0x05, - 0x00, - 0xBB, - 0xAF, - 0x6E, - 0x21, - 0x26, - 0x13, - 0x51, - 0x00, - 0x22, - 0x88, - 0x40, - 0x19, - 0x81, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x1E, - 0x03, - 0x00, - 0x00, - 0x00, - 0x52, - 0x52, - 0x08, - 0x08, - 0x08, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x9B, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x08, - 0x08, - 0x08, - 0x08, - 0x08, - 0x45, - 0x67, - 0x00, - 0x00, - 0x5D, - 0x65, - 0x19, - 0x27, - 0x67, - 0x68, - 0x00, - 0x1A, - 0x1E, - 0x4B, - 0x2E, - 0x40, - 0x22, - 0x13, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x34, - 0x6E, - 0x21, - 0x51, - 0xA2, - 0x26, - 0x00, - 0x00, - 0x2E, - 0xE0, - 0x46, - 0xAE, - 0x19, - 0x21, - 0x87, - 0x25, - 0x69, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x7A, - 0x55, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x2E, - 0x79, - 0x67, - 0x52, - 0x00, - 0x00, - 0x7B, - 0x13, - 0xA4, - 0x1A, - 0x2E, - 0x2E, - 0x1A, - 0xA4, - 0x38, - 0x2D, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x21, - 0x27, - 0x4B, - 0x67, - 0x34, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x08, - 0x08, - 0x08, - 0x0B, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x08, - 0x08, - 0x31, - 0x00, - 0x00, - 0x58, - 0x03, - 0xA9, - 0xAC, - 0x19, - 0x21, - 0x1A, - 0xA3, - 0x38, - 0x2C, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x05, - 0x81, - 0x88, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x33, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x03, - 0x2C, - 0x03, - 0x82, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x19, - 0x38, - 0x5D, - 0x1A, - 0x63, - 0x19, - 0x26, - 0x34, - 0x35, - 0x08, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x14, - 0x40, - 0x4A, - 0x13, - 0xBB, - 0x00, - 0x00, - 0x16, - 0x13, - 0xA4, - 0x1A, - 0x2E, - 0x19, - 0x51, - 0x9B, - 0x38, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x21, - 0x16, - 0x72, - 0x1E, - 0x7B, - 0x00, - 0x88, - 0x41, - 0x2D, - 0x27, - 0x67, - 0x54, - 0x00, - 0x08, - 0x08, - 0x62, - 0x03, - 0x08, - 0x08, - 0x08, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x16, - 0x55, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x57, - 0x00, - 0x4A, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x46, - 0x00, - 0x00, - 0xA1, - 0x41, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x33, - 0x58, - 0x00, - 0x00, - 0xBB, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x82, - 0xAE, - 0x00, - 0x08, - 0x08, - 0x08, - 0x08, - 0x08, - 0x22, - 0x89, - 0x00, - 0x16, - 0x1E, - 0x23, - 0x31, - 0x80, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x5D, - 0x77, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x9B, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x54, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x6E, - 0x17, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x4A, - 0x80, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x00, - 0x66, - 0x14, - 0x00, - 0x79, - 0x46, - 0x00, - 0x00, - 0x08, - 0x65, - 0x03, - 0x25, - 0x62, - 0x00, - 0x00, - 0x36, - 0x67, - 0x1E, - 0xA4, - 0x08, - 0x00, - 0x00, - 0x4A, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xA6, - 0x80, - 0x13, - 0xA6, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x45, - 0x7B, - 0xBB, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x22, - 0x07, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x77, - 0x91, - 0x00, - 0x00, - 0x51, - 0x46, - 0x1E, - 0x80, - 0x5D, - 0x16, - 0x00, - 0x36, - 0x03, - 0x03, - 0x03, - 0x05, - 0x00, - 0x05, - 0x57, - 0x7A, - 0x1E, - 0xE0, - 0x51, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x13, - 0x3A, - 0x65, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x79, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x31, - 0x25, - 0x3A, - 0x13, - 0x54, - 0x04, - 0x00, - 0x00, - 0x87, - 0xCD, - 0x1E, - 0xA2, - 0xA1, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x54, - 0x77, - 0x5E, - 0xE0, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x4A, - 0x88, - 0x13, - 0x1E, - 0x34, - 0x54, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x67, - 0x45, - 0x17, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0xE0, - 0x1E, - 0x3A, - 0x9B, - 0x23, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x7A, - 0x41, - 0x4A, - 0x0B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x79, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x36, - 0xA1, - 0x66, - 0x03, - 0x13, - 0x35, - 0x57, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x34, - 0x54, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x38, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x55, - 0x03, - 0x2C, - 0x03, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x23, - 0x24, - 0x1E, - 0x80, - 0x35, - 0x58, - 0x17, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA2, - 0x46, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x68, - 0x34, - 0x55, - 0x3A, - 0x9B, - 0x23, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x1E, - 0xAF, - 0xA1, - 0x36, - 0x00, - 0x00, - 0x37, - 0xA1, - 0x69, - 0x13, - 0x52, - 0x0B, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0xD8, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x05, - 0x5C, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x31, - 0x1A, - 0x3A, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x13, - 0x14, - 0x31, - 0x80, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x34, - 0x05, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0xB1, - 0x52, - 0x4B, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1D, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x13, - 0x23, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x88, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x55, - 0x62, - 0x2C, - 0x03, - 0x05, - 0x40, - 0x3A, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x49, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x06, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB8, - 0x5D, - 0x17, - 0x17, - 0x5D, - 0xF7, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDC, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x5D, - 0x54, - 0x5D, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD9, - 0xDF, - 0xB8, - 0x55, - 0xF7, - 0x5A, - 0xD2, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0xD9, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDC, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x5B, - 0x00, - 0x5B, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xDE, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD3, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD9, - 0x58, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDA, - 0x60, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDD, - 0x5A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0xDB, - 0xD8, - 0xD7, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xD0, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD8, - 0xD8, - 0xD7, - 0x12, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xD3, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x16, - 0xF2, - 0xD9, - 0xD9, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xD2, - 0xD9, - 0xD9, - 0xDE, - 0xFA, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xDC, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x03, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDB, - 0xD2, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xFA, - 0xD0, - 0xDC, - 0xDA, - 0xD9, - 0xD3, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD3, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xE1, - 0xD7, - 0xD9, - 0xDA, - 0xD5, - 0xDE, - 0x60, - 0xF6, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xDA, - 0xDD, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x5D, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xD0, - 0xDC, - 0xD8, - 0xD8, - 0xD3, - 0xE1, - 0x5A, - 0xF3, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x59, - 0xE1, - 0xF1, - 0xD8, - 0xD9, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0xF5, - 0xDF, - 0xD7, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xEF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDF, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD8, - 0xD9, - 0xD7, - 0xDF, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x09, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x58, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xF1, - 0xD8, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD7, - 0xD9, - 0xD8, - 0xD2, - 0x17, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xE1, - 0xB8, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xDD, - 0xDA, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0xD0, - 0xD5, - 0xDA, - 0xDD, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xD5, - 0xDA, - 0xD5, - 0xD0, - 0x56, - 0xC6, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xDE, - 0xDB, - 0x04, - 0xD5, - 0xD6, - 0xF5, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD9, - 0x55, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD8, - 0xD0, - 0xE1, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xDB, - 0xE1, - 0xD6, - 0xF1, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x53, - 0x59, - 0xD8, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0xD7, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDA, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x60, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDC, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xE1, - 0xD2, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD6, - 0xDE, - 0xD5, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD7, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDB, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDC, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD7, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x16, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD5, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xF2, - 0xD6, - 0xD6, - 0xD3, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0xD2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xEF, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x16, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xE1, - 0xF1, - 0x04, - 0xDC, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD8, - 0x59, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x60, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x16, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD8, - 0xD9, - 0xE1, - 0xD6, - 0xDB, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0x54, - 0xEF, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0xE1, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3E, - 0x54, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xF2, - 0xB8, - 0xF3, - 0xB8, - 0xD7, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xDF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xFC, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x12, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0xD8, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xD5, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD9, - 0x04, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0x04, - 0xDB, - 0xEF, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD5, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD0, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDB, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xDB, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xDA, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD3, - 0xDA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x53, - 0x60, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0x04, - 0x04, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0xD9, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD6, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7D, - 0x3B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDB, - 0xF5, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0xEF, - 0xDA, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD2, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x54, - 0xDF, - 0x04, - 0x16, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x56, - 0xD0, - 0xDA, - 0x04, - 0xD2, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD2, - 0x04, - 0xDA, - 0xE1, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDA, - 0xFA, - 0x00, - 0xF4, - 0xF7, - 0xF5, - 0x54, - 0x54, - 0xF3, - 0xF7, - 0x04, - 0x04, - 0x0A, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x60, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0xDA, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD9, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x5B, - 0x53, - 0xF5, - 0xD7, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDD, - 0xDE, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0x00, - 0xD2, - 0xD2, - 0xB8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x54, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xFF, - 0xAD, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x60, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xDB, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0xDB, - 0x04, - 0xD6, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0xE1, - 0xD4, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xD7, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xF2, - 0x04, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xFA, - 0x00, - 0x60, - 0xD9, - 0x04, - 0xDA, - 0xD6, - 0xB8, - 0xDD, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD6, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x09, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0xF5, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF4, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0D, - 0x04, - 0xFD, - 0xF7, - 0x57, - 0xDA, - 0xF1, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDD, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0xB3, - 0xDC, - 0xF2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xDF, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x54, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x54, - 0xE1, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x5E, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xD0, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0x04, - 0x5A, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF4, - 0x59, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x17, - 0x00, - 0xD2, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD9, - 0xB8, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x60, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD7, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x04, - 0xDE, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0xD5, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x59, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDC, - 0xF3, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD0, - 0x00, - 0xDB, - 0xD2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x60, - 0x0D, - 0x5E, - 0x04, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xF1, - 0x04, - 0xD9, - 0xD6, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xF1, - 0x60, - 0x17, - 0xF1, - 0x04, - 0x04, - 0x56, - 0x55, - 0xEF, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x17, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0xC6, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x56, - 0xF5, - 0x53, - 0xF5, - 0x56, - 0xDF, - 0xD5, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x53, - 0xDE, - 0xDA, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDE, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD5, - 0xF3, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0xD6, - 0x00, - 0xF4, - 0xD9, - 0xEF, - 0x00, - 0x5E, - 0x04, - 0xF7, - 0x00, - 0x60, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0xF7, - 0xC6, - 0x00, - 0x0A, - 0xE1, - 0x00, - 0x54, - 0x53, - 0x53, - 0x57, - 0xDE, - 0xD9, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0xD0, - 0xDA, - 0xB8, - 0x53, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0x0A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xF1, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x58, - 0x00, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x59, - 0x54, - 0x00, - 0xFA, - 0xD7, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xDF, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x55, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xB3, - 0x00, - 0x03, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x54, - 0xDD, - 0xF2, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xDA, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD2, - 0x04, - 0xD8, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x57, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0xDE, - 0xD7, - 0x00, - 0x00, - 0x55, - 0xD8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDA, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0xFA, - 0x00, - 0x5A, - 0x04, - 0xFA, - 0xF3, - 0x57, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x4D, - 0xF9, - 0x69, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD0, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x53, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x56, - 0xD4, - 0xDC, - 0xB8, - 0x54, - 0xB3, - 0xE1, - 0x04, - 0xD0, - 0xF3, - 0x17, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xD0, - 0xB8, - 0xF3, - 0xF5, - 0x59, - 0xD3, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x56, - 0xC6, - 0x00, - 0x00, - 0xDB, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x16, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD0, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xF7, - 0xF1, - 0xD9, - 0xF7, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x00, - 0xDC, - 0xF1, - 0x55, - 0x5A, - 0x17, - 0xEF, - 0xDF, - 0x5D, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD0, - 0xDE, - 0xD7, - 0xD8, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x54, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0xD3, - 0x60, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x57, - 0xD4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0x56, - 0xF4, - 0x5A, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x0A, - 0xDB, - 0x04, - 0xFC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0xD8, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x53, - 0x00, - 0xF4, - 0xDC, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0xDA, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xD8, - 0x17, - 0x55, - 0xB3, - 0xF7, - 0xE1, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x5B, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD7, - 0x04, - 0xDA, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0x53, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x56, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xF2, - 0xDA, - 0xDB, - 0x57, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xD8, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD2, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xDA, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x60, - 0xDE, - 0xDA, - 0x04, - 0xB6, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDC, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xF1, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD5, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD8, - 0x5A, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x53, - 0x16, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDF, - 0x5D, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x56, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDA, - 0xD9, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDF, - 0xDF, - 0x57, - 0x00, - 0x54, - 0xDE, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD6, - 0xD2, - 0x04, - 0xF1, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x53, - 0xD2, - 0xD8, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x59, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xD9, - 0xF7, - 0x00, - 0xD9, - 0xF6, - 0x00, - 0x58, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xE1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xD9, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xF1, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDF, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x04, - 0xD2, - 0xDF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD3, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xF2, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x12, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD8, - 0xF4, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD0, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF4, - 0x5B, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x16, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x0A, - 0x54, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEC, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x58, - 0xFA, - 0x04, - 0xDF, - 0x58, - 0x58, - 0x58, - 0x04, - 0xF2, - 0x58, - 0x58, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0xD2, - 0xFA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x57, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xDB, - 0xDA, - 0xDF, - 0x53, - 0x00, - 0x53, - 0xD2, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD3, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0x04, - 0xD2, - 0xD6, - 0xD6, - 0xF1, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD0, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD2, - 0x5C, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xD2, - 0x04, - 0xD4, - 0xE1, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xE1, - 0x00, - 0xD2, - 0x59, - 0x54, - 0x53, - 0xD7, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD3, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0x55, - 0x5A, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD9, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0xD7, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD0, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0xF3, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x54, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xF1, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD5, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xEF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0x04, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x53, - 0x00, - 0x5A, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF2, - 0xDD, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x54, - 0x53, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDA, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x54, - 0xF2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x74, - 0xEC, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x60, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0xF6, - 0xF6, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x58, - 0x00, - 0x57, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xD2, - 0xD8, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0xDE, - 0xDB, - 0xD9, - 0xF2, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDC, - 0xD9, - 0xD2, - 0x17, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xDB, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x04, - 0xDB, - 0x0D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xEE, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDF, - 0xDE, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x57, - 0x00, - 0x57, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDD, - 0xF3, - 0x54, - 0x53, - 0xD3, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xD7, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x0A, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x55, - 0xD9, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xB6, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD8, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0xD8, - 0xDE, - 0xD6, - 0xE1, - 0xD7, - 0x04, - 0xD5, - 0x56, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD9, - 0x59, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x17, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x12, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0x60, - 0xB8, - 0xDB, - 0xD9, - 0xD0, - 0xD6, - 0xF2, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD0, - 0xF4, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0x60, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xD6, - 0x56, - 0x00, - 0xF7, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xD5, - 0x55, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF5, - 0x00, - 0x57, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xF9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF3, - 0x00, - 0xB8, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x56, - 0x94, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x53, - 0xF6, - 0x55, - 0x55, - 0xDE, - 0xDE, - 0x55, - 0x55, - 0x55, - 0x17, - 0x04, - 0xB8, - 0x55, - 0x00, - 0xD0, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDD, - 0x55, - 0xDC, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x00, - 0xF4, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF1, - 0xD7, - 0xF4, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x16, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x55, - 0xD9, - 0x60, - 0x00, - 0x00, - 0x58, - 0xD9, - 0xD8, - 0xD0, - 0xD6, - 0xDD, - 0xDE, - 0xD7, - 0xE1, - 0x53, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5B, - 0x00, - 0x58, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x56, - 0xD6, - 0x58, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD3, - 0x53, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xF1, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDC, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD8, - 0x00, - 0xF7, - 0xDA, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xF1, - 0x53, - 0x00, - 0xD7, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xDC, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD0, - 0xD5, - 0xD8, - 0xDC, - 0xD6, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xF5, - 0xDF, - 0xD3, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x55, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xD0, - 0x56, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xB8, - 0xD7, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xFA, - 0x00, - 0xE1, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD7, - 0x00, - 0x00, - 0x60, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x0D, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x8C, - 0x3B, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xEF, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0x00, - 0xF3, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDD, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x5B, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xD9, - 0xD0, - 0x55, - 0x00, - 0xF3, - 0x04, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDD, - 0xD2, - 0x00, - 0xDE, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB8, - 0xD5, - 0xDB, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x16, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xD8, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xDA, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF1, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF2, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xF2, - 0x04, - 0x16, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC8, - 0xE3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x54, - 0x00, - 0xB8, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x16, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDD, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0xD4, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDB, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD7, - 0xD8, - 0x5A, - 0x54, - 0x00, - 0x54, - 0xF5, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD7, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD6, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDD, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x60, - 0xD9, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB3, - 0x58, - 0xD2, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xDB, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xD8, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xDC, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0xDD, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD8, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x0D, - 0x53, - 0x00, - 0x54, - 0xF5, - 0xDE, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0xF5, - 0xD4, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xFA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD2, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xC0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD3, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xF1, - 0xD3, - 0x56, - 0xF3, - 0x55, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0xB8, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0xF4, - 0xDB, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xDB, - 0xE1, - 0xE1, - 0xD9, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDC, - 0x56, - 0x00, - 0x57, - 0xDB, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x5E, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD4, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x55, - 0xF1, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDD, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDD, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xDE, - 0xDB, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x00, - 0x00, - 0xB3, - 0xEF, - 0x04, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD7, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xD2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xDB, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5A, - 0x54, - 0x59, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0xF1, - 0xF3, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDA, - 0x5A, - 0x00, - 0x00, - 0x16, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD4, - 0xD8, - 0xD0, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0xD7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x3B, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x17, - 0x00, - 0x17, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xDC, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD6, - 0xD5, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x12, - 0xDC, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xDD, - 0x04, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xF1, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xDE, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xD0, - 0xDD, - 0xD8, - 0xD9, - 0xD7, - 0xE1, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDB, - 0xD7, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x0A, - 0xD7, - 0xD9, - 0x04, - 0xD9, - 0xD7, - 0xD6, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x58, - 0xE1, - 0xD3, - 0xD8, - 0xD8, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xD0, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x60, - 0xDE, - 0xDD, - 0xDA, - 0xD8, - 0xDC, - 0xD0, - 0xFA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD9, - 0xD3, - 0xD0, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xD2, - 0x00, - 0xF7, - 0xD8, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDE, - 0x17, - 0x00, - 0x00, - 0xD7, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xF1, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF2, - 0xD8, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0xDC, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD2, - 0x53, - 0xD0, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x16, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x3B, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0xF6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0xAB, - 0x03, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x74, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x6F, - 0xBD, - 0xC4, - 0xBD, - 0x3B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x30, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x12, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x30, - 0x74, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xBD, - 0x6F, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x64, - 0x6F, - 0x05, - 0x00, - 0x6C, - 0x74, - 0x02, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x5A, - 0x02, - 0x71, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x12, - 0x29, - 0x60, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x5A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x44, - 0x29, - 0xDF, - 0x02, - 0xB4, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x30, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x5A, - 0x6A, - 0x00, - 0x00, - 0x3B, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x29, - 0x12, - 0x98, - 0x00, - 0xDA, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x0A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x0A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xE8, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x50, - 0x0C, - 0x29, - 0x29, - 0x0C, - 0x70, - 0x00, - 0x00, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x12, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x71, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x59, - 0x30, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x6C, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x71, - 0x29, - 0x02, - 0x30, - 0xB4, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x59, - 0x5A, - 0x44, - 0x02, - 0x30, - 0x5A, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0xE8, - 0x0A, - 0x02, - 0x64, - 0xC4, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0xE8, - 0x0A, - 0x02, - 0x64, - 0x74, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x71, - 0x29, - 0x29, - 0x12, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x05, - 0x64, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xB7, - 0xE8, - 0x30, - 0x02, - 0x29, - 0x64, - 0x5A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x30, - 0x71, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x5A, - 0x64, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x0D, - 0x5A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xC4, - 0x71, - 0x29, - 0x02, - 0x29, - 0x64, - 0x5A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x50, - 0x94, - 0x29, - 0x02, - 0x64, - 0xBD, - 0x05, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xC4, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x74, - 0x0D, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xBD, - 0x71, - 0x29, - 0x02, - 0x29, - 0x12, - 0xC4, - 0x98, - 0x05, - 0xBD, - 0x0D, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x30, - 0x59, - 0x00, - 0x00, - 0x3B, - 0x94, - 0x29, - 0x02, - 0x64, - 0xC4, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x71, - 0x29, - 0x02, - 0x64, - 0x74, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0xE8, - 0x00, - 0x05, - 0x12, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x94, - 0x0A, - 0x02, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0xBD, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x0D, - 0x29, - 0x02, - 0x12, - 0xDA, - 0x00, - 0xE8, - 0x30, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x0D, - 0x20, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x12, - 0x29, - 0x02, - 0x64, - 0xC4, - 0xDC, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x05, - 0xBD, - 0x0D, - 0x02, - 0x29, - 0x12, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x30, - 0xB4, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x64, - 0x02, - 0x44, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x64, - 0x02, - 0x02, - 0x71, - 0x50, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x71, - 0x02, - 0x02, - 0x02, - 0x29, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x0D, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x30, - 0xC4, - 0xC4, - 0x44, - 0x02, - 0x60, - 0x05, - 0xE8, - 0x02, - 0x12, - 0xC4, - 0xC4, - 0x44, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x6C, - 0x44, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x64, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x64, - 0x02, - 0xE4, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x6C, - 0x30, - 0x02, - 0xE4, - 0xBD, - 0x5A, - 0x29, - 0x0A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x44, - 0x74, - 0xC4, - 0x94, - 0x02, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x30, - 0x5A, - 0xBD, - 0xB4, - 0x02, - 0x44, - 0x98, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x0D, - 0xC4, - 0xC4, - 0x12, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x12, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xDF, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x74, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xC4, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x12, - 0x02, - 0x29, - 0xB4, - 0xC4, - 0xBD, - 0x74, - 0x71, - 0x02, - 0x5A, - 0x05, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x5A, - 0x71, - 0x02, - 0x44, - 0x59, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x29, - 0xE8, - 0xC4, - 0xBD, - 0x5A, - 0x64, - 0x02, - 0x64, - 0x50, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x74, - 0xE8, - 0x29, - 0x02, - 0x71, - 0x98, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x6F, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x5A, - 0x02, - 0x02, - 0x71, - 0x74, - 0xBD, - 0xC4, - 0xE8, - 0x29, - 0x02, - 0x0C, - 0x59, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x70, - 0x02, - 0x0A, - 0x74, - 0xBD, - 0x71, - 0x02, - 0x5A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x0C, - 0x05, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x0A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x02, - 0x02, - 0x94, - 0xC4, - 0xBD, - 0x5A, - 0x64, - 0x02, - 0x44, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x29, - 0x02, - 0x12, - 0x74, - 0xBD, - 0x74, - 0x12, - 0x02, - 0x29, - 0x64, - 0x02, - 0x0C, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x60, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x29, - 0x5A, - 0xBD, - 0xB4, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x44, - 0x74, - 0xBD, - 0xB4, - 0x02, - 0x30, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x29, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x02, - 0xC4, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x44, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0x60, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x12, - 0x02, - 0x0D, - 0x74, - 0xBD, - 0x5A, - 0x30, - 0x29, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x94, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x6C, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x12, - 0xC4, - 0xBD, - 0xE4, - 0x29, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x71, - 0x02, - 0x0D, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x29, - 0x60, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x0D, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x0C, - 0x02, - 0x12, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x64, - 0x02, - 0x0C, - 0xC4, - 0xC4, - 0x0C, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x0A, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x6A, - 0x64, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0xE8, - 0x02, - 0x30, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x71, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x6A, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x12, - 0xC4, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x71, - 0xBD, - 0x71, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x0D, - 0x29, - 0x94, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x30, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x02, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x94, - 0x00, - 0x00, - 0x00, - 0x71, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x30, - 0x6F, - 0x05, - 0x6C, - 0x94, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x3B, - 0x00, - 0x12, - 0x44, - 0xDC, - 0x00, - 0x00, - 0x59, - 0x30, - 0x12, - 0xDF, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x20, - 0x94, - 0x02, - 0xB7, - 0x8D, - 0x30, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x44, - 0x0A, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x59, - 0x64, - 0x29, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x29, - 0x50, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x30, - 0x64, - 0x05, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x02, - 0x0C, - 0xB7, - 0x00, - 0x70, - 0x02, - 0x94, - 0x20, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x94, - 0x00, - 0x50, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x71, - 0x00, - 0x00, - 0x05, - 0x30, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x20, - 0x5A, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x5A, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x02, - 0x02, - 0x5A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x02, - 0x74, - 0x6C, - 0x1B, - 0x00, - 0x00, - 0x20, - 0x98, - 0x6C, - 0xE4, - 0x60, - 0x00, - 0x00, - 0x00, - 0x94, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xC4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x30, - 0x29, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x30, - 0x44, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x12, - 0x02, - 0xE8, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xC4, - 0x02, - 0x44, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x94, - 0x29, - 0x98, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x6C, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x30, - 0x44, - 0x59, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x64, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x05, - 0xE8, - 0x02, - 0xE4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x64, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x0D, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0xDC, - 0x29, - 0x44, - 0x98, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xE8, - 0x05, - 0x00, - 0x00, - 0x00, - 0x50, - 0x29, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x71, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x71, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x64, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x29, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x12, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x05, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE8, - 0x29, - 0x02, - 0x5A, - 0x05, - 0x0D, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x20, - 0x64, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x29, - 0x44, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x05, - 0x94, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x20, - 0x64, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x30, - 0x30, - 0x1B, - 0x02, - 0x02, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x12, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x05, - 0x00, - 0x05, - 0x64, - 0x64, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE4, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x5A, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x02, - 0x98, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x5A, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x29, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x00, - 0x00, - 0x00, - 0x74, - 0x44, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x94, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x0D, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x44, - 0x30, - 0x0A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x0D, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x94, - 0x0A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x50, - 0xB4, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x71, - 0x02, - 0x02, - 0x5A, - 0x8D, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x8D, - 0x5A, - 0x02, - 0x02, - 0x0C, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x02, - 0xBD, - 0x71, - 0x02, - 0x02, - 0xB4, - 0x6F, - 0x29, - 0x02, - 0x29, - 0xBD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x59, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x00, - 0xB4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x44, - 0x44, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x30, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x29, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xDF, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x0D, - 0x70, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x74, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x0D, - 0x29, - 0x8D, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x30, - 0x29, - 0x71, - 0x02, - 0xC4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x29, - 0x71, - 0x05, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x44, - 0x05, - 0x30, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xB7, - 0x30, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xDA, - 0x64, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xBD, - 0xDF, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x5A, - 0x5A, - 0x00, - 0xDF, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x12, - 0x02, - 0x5A, - 0xBD, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xDA, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xBD, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xC4, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xBD, - 0xDF, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x70, - 0xBD, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x64, - 0x59, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x71, - 0x71, - 0x8D, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x60, - 0x59, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6F, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xC4, - 0x02, - 0xDA, - 0xB7, - 0xB7, - 0x5A, - 0x02, - 0xB7, - 0xB7, - 0xB7, - 0xC4, - 0x02, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6C, - 0x64, - 0x64, - 0x05, - 0x00, - 0x00, - 0x05, - 0x64, - 0x64, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x30, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x1B, - 0x12, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xC4, - 0x71, - 0x02, - 0x3B, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x02, - 0xE4, - 0x6A, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xBD, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x59, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x00, - 0x00, - 0x00, - 0x59, - 0x60, - 0x3B, - 0x0C, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x0D, - 0x02, - 0x29, - 0xC4, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x98, - 0x74, - 0x29, - 0x02, - 0x0D, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x5A, - 0x5A, - 0x29, - 0x50, - 0x05, - 0xC4, - 0x02, - 0x0D, - 0x05, - 0x6F, - 0x29, - 0xB4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xDA, - 0x6A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x74, - 0x02, - 0x71, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDA, - 0x00, - 0x12, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x0A, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x8D, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x71, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x29, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x74, - 0x02, - 0x44, - 0x50, - 0x20, - 0x0D, - 0x02, - 0x8D, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x5A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xC4, - 0x00, - 0xC4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x1B, - 0x5A, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x98, - 0x5A, - 0x02, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x64, - 0x30, - 0x1B, - 0x00, - 0x1B, - 0x30, - 0x64, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x5A, - 0x12, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x6A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x64, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x00, - 0x00, - 0x71, - 0x12, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x71, - 0x71, - 0x00, - 0x59, - 0x02, - 0xDF, - 0x00, - 0x12, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x44, - 0x94, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x00, - 0x5A, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x64, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x3B, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x3B, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x5A, - 0xB7, - 0x02, - 0x71, - 0xDA, - 0xDA, - 0x12, - 0x02, - 0xB7, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x29, - 0x02, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x0C, - 0x02, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x6C, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x20, - 0x6F, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x05, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x30, - 0x02, - 0x44, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xBD, - 0x30, - 0x02, - 0x30, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x59, - 0x30, - 0xB4, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x29, - 0x05, - 0x00, - 0x3B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x74, - 0x02, - 0x70, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0xE8, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x02, - 0x71, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x6F, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x29, - 0x20, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x83, - 0x00, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x44, - 0xC4, - 0xDA, - 0xB7, - 0xBD, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x1B, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x98, - 0x00, - 0x6A, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x71, - 0x00, - 0xDA, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x6F, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x00, - 0x5A, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x20, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x29, - 0x71, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x12, - 0x02, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xBD, - 0x30, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x83, - 0x02, - 0xDA, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6A, - 0x00, - 0xDF, - 0x02, - 0x1B, - 0xDA, - 0x02, - 0x98, - 0x00, - 0xDF, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xBD, - 0x00, - 0x8D, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xB4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xC4, - 0x6C, - 0x71, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x64, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x6A, - 0x30, - 0x5A, - 0x6A, - 0x6A, - 0x6C, - 0x02, - 0xC4, - 0x6A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x0A, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0xDC, - 0x6F, - 0x64, - 0x02, - 0x02, - 0x64, - 0x6F, - 0x00, - 0x5A, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x64, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDF, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xC4, - 0x30, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x00, - 0xE8, - 0x02, - 0x5A, - 0x70, - 0x6C, - 0xDA, - 0x64, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x12, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x12, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x29, - 0x71, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x59, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x44, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0xDF, - 0x29, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0x00, - 0x00, - 0x05, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0x6F, - 0x3B, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x12, - 0x30, - 0x71, - 0x29, - 0x02, - 0x02, - 0x02, - 0x64, - 0x5A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x02, - 0x5A, - 0x00, - 0x6F, - 0x02, - 0x02, - 0x29, - 0xE8, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xBD, - 0x00, - 0x59, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x00, - 0x20, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x74, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x74, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x6C, - 0x29, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x02, - 0x71, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x71, - 0x00, - 0x00, - 0x98, - 0x02, - 0xDA, - 0x94, - 0x12, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x29, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0xE8, - 0x02, - 0xC4, - 0x60, - 0x02, - 0x74, - 0xDA, - 0x0D, - 0x02, - 0x02, - 0x71, - 0x44, - 0x02, - 0xB7, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x12, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x1B, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x74, - 0x1B, - 0xDA, - 0x02, - 0x0D, - 0x59, - 0x00, - 0xE8, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0xE4, - 0x02, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x64, - 0x29, - 0x59, - 0x00, - 0x05, - 0x12, - 0x30, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x60, - 0x5A, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x30, - 0x05, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0xC4, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x0D, - 0x02, - 0x29, - 0x5A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x74, - 0x29, - 0x02, - 0x0D, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x02, - 0xE4, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x5A, - 0x00, - 0x00, - 0x70, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x8D, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xDA, - 0xDF, - 0x5A, - 0x02, - 0x12, - 0x1B, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x6A, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x3B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x0D, - 0x02, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x59, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x05, - 0x59, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x50, - 0x60, - 0xDA, - 0xC4, - 0x44, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDF, - 0x12, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x50, - 0x00, - 0x00, - 0x0D, - 0x71, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x44, - 0x02, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0x5A, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x0D, - 0x71, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x71, - 0x0D, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x0D, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x29, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x71, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x20, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x12, - 0x71, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x12, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x64, - 0x20, - 0x00, - 0x00, - 0x50, - 0x0C, - 0x02, - 0x50, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x74, - 0x8D, - 0x00, - 0xDA, - 0x29, - 0x02, - 0x0D, - 0xBD, - 0x1B, - 0x00, - 0x20, - 0x71, - 0xE4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x64, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x64, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x59, - 0x6F, - 0x3B, - 0x05, - 0x00, - 0x5A, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x5A, - 0x02, - 0x29, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x83, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x12, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0xB7, - 0xC4, - 0x30, - 0x29, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x74, - 0x05, - 0x00, - 0x00, - 0x00, - 0x50, - 0x29, - 0x0D, - 0x00, - 0x50, - 0x02, - 0xE8, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x64, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xB4, - 0xDA, - 0xDA, - 0xE4, - 0x02, - 0xB4, - 0x05, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x3B, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x60, - 0x0C, - 0x02, - 0x02, - 0xB4, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x5A, - 0x02, - 0x02, - 0x71, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x02, - 0xE4, - 0x00, - 0xB4, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x05, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x05, - 0x00, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x6A, - 0x29, - 0x64, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x1B, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x8D, - 0x6F, - 0x5A, - 0x02, - 0x0D, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x70, - 0x71, - 0x02, - 0x02, - 0x0D, - 0xDF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x74, - 0x29, - 0x20, - 0x00, - 0x74, - 0x02, - 0x20, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x59, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xE8, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xBD, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE8, - 0xE4, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0xBD, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDF, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x64, - 0xC4, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xBD, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xBD, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x59, - 0x00, - 0x00, - 0x59, - 0xDC, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0xDA, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x50, - 0x00, - 0x00, - 0x74, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0xDA, - 0x6C, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x20, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x3B, - 0x74, - 0x02, - 0x3B, - 0x3B, - 0x3B, - 0x5A, - 0x29, - 0x3B, - 0x3B, - 0x00, - 0x59, - 0x64, - 0x02, - 0x30, - 0x74, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x02, - 0x02, - 0x44, - 0x3B, - 0x50, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x1B, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x60, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x02, - 0x12, - 0xDF, - 0xDA, - 0x74, - 0x29, - 0x30, - 0x6C, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x0D, - 0xDF, - 0xB7, - 0xC4, - 0x29, - 0x29, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x5A, - 0x02, - 0x02, - 0x0C, - 0x3B, - 0x00, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x3B, - 0x94, - 0x02, - 0x02, - 0x5A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x12, - 0x29, - 0x98, - 0x64, - 0x12, - 0x00, - 0x60, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xB7, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x8D, - 0xB7, - 0x71, - 0x02, - 0x6F, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x1B, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x59, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x60, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xDF, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x1B, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xDF, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xBD, - 0x00, - 0x3B, - 0x02, - 0x30, - 0xC4, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x60, - 0x00, - 0x0D, - 0x71, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x30, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0x00, - 0x20, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x0A, - 0x64, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x64, - 0x29, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x12, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x05, - 0x12, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x94, - 0x02, - 0x02, - 0x5A, - 0x20, - 0x64, - 0x44, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x44, - 0x30, - 0xDC, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x0A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x29, - 0x02, - 0x02, - 0x02, - 0xE4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x98, - 0x44, - 0x30, - 0x20, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x29, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x6A, - 0x02, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0xBD, - 0x1B, - 0x64, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x29, - 0x44, - 0x1B, - 0x02, - 0x02, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x0D, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x0D, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x5A, - 0x00, - 0x05, - 0x30, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0xE4, - 0x00, - 0x00, - 0x6C, - 0x29, - 0xE8, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x5A, - 0x02, - 0xBD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x5A, - 0x83, - 0x60, - 0x64, - 0x29, - 0x98, - 0x71, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x94, - 0x59, - 0xC4, - 0x02, - 0x0D, - 0x20, - 0x00, - 0x59, - 0xB7, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x12, - 0x00, - 0x00, - 0xC4, - 0x6C, - 0x98, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xDA, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x6C, - 0xB7, - 0x64, - 0x0A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x44, - 0x20, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x44, - 0x64, - 0x71, - 0x02, - 0x02, - 0x29, - 0xB4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x02, - 0x30, - 0x02, - 0x02, - 0x0C, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x70, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x5A, - 0x50, - 0x83, - 0x5A, - 0x02, - 0xDF, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xC4, - 0x29, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x02, - 0x29, - 0xC4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x5A, - 0x02, - 0x98, - 0x00, - 0x94, - 0x02, - 0x50, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xE4, - 0x00, - 0x70, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x60, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x12, - 0x00, - 0xE4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xE8, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDF, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x8D, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x94, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x71, - 0x30, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0xC4, - 0x59, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x64, - 0x59, - 0x44, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x59, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x05, - 0x00, - 0x05, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x12, - 0x02, - 0x12, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x29, - 0x6F, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x94, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x6A, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x71, - 0xC4, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x12, - 0xC4, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x00, - 0x6A, - 0x64, - 0x02, - 0xE8, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x8D, - 0x00, - 0xBD, - 0xBD, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0x00, - 0x6C, - 0x44, - 0x02, - 0x94, - 0xC4, - 0xC4, - 0x71, - 0x02, - 0xE4, - 0x5A, - 0x02, - 0x02, - 0x12, - 0x29, - 0x64, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x29, - 0x60, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x0D, - 0x05, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x02, - 0x94, - 0xC4, - 0x74, - 0x44, - 0x02, - 0x60, - 0x5A, - 0x02, - 0x0C, - 0xC4, - 0xC4, - 0x64, - 0x02, - 0xBD, - 0x00, - 0x02, - 0x71, - 0x29, - 0x12, - 0xC4, - 0xC4, - 0x12, - 0x02, - 0x71, - 0x20, - 0x00, - 0x6A, - 0x64, - 0x02, - 0x0C, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x44, - 0x8D, - 0x00, - 0x02, - 0x5A, - 0x94, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x71, - 0x02, - 0x64, - 0x6C, - 0x00, - 0x00, - 0x59, - 0x12, - 0x02, - 0x12, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x02, - 0xE8, - 0xDA, - 0x8D, - 0x02, - 0x64, - 0xC4, - 0x71, - 0x02, - 0x3B, - 0xBD, - 0xBD, - 0x71, - 0x02, - 0xBD, - 0xBD, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x70, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x1B, - 0x6F, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x29, - 0x1B, - 0x05, - 0x12, - 0x30, - 0x59, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x59, - 0x00, - 0x3B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x29, - 0x64, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x1B, - 0x1B, - 0x59, - 0x02, - 0xDA, - 0x1B, - 0x1B, - 0x83, - 0x02, - 0xB7, - 0x1B, - 0x00, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0xB7, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x30, - 0x1B, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x71, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x5A, - 0xB4, - 0x5A, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x30, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x74, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x64, - 0x00, - 0x20, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xDF, - 0x59, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0A, - 0xB4, - 0x00, - 0x00, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x44, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x6C, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x64, - 0x29, - 0xC4, - 0xDA, - 0x44, - 0x12, - 0x29, - 0x20, - 0x5A, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x94, - 0x00, - 0x05, - 0x0A, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6F, - 0x59, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xBD, - 0xC4, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x3B, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0xE8, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x8D, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x71, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x20, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x12, - 0xDA, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x60, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x20, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x6C, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6F, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x8D, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x1B, - 0xC4, - 0x64, - 0x29, - 0x29, - 0x71, - 0xDA, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x8D, - 0xB4, - 0x30, - 0x02, - 0x30, - 0x5A, - 0x8D, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x5A, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x3B, - 0x71, - 0x02, - 0x29, - 0x94, - 0x50, - 0x00, - 0x00, - 0xDF, - 0x64, - 0x02, - 0x29, - 0x71, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x6C, - 0xE4, - 0x0A, - 0x29, - 0x64, - 0xBD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xC4, - 0x1B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x30, - 0xB4, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0xDF, - 0x29, - 0x02, - 0x00, - 0x60, - 0x0D, - 0x02, - 0x64, - 0xDA, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x5A, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xBD, - 0xB4, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xDA, - 0xC4, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x94, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x1B, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x64, - 0x74, - 0x00, - 0x00, - 0x05, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xE4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x05, - 0x44, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x8D, - 0x02, - 0x94, - 0x05, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xB4, - 0x00, - 0x00, - 0xB7, - 0xDA, - 0x02, - 0x02, - 0xDF, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x6F, - 0x00, - 0x94, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x71, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x00, - 0xB7, - 0x29, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x5A, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x59, - 0xB4, - 0x02, - 0x02, - 0x71, - 0x20, - 0x00, - 0xB7, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6C, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x00, - 0x00, - 0xE8, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x44, - 0x30, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x74, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xE8, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x64, - 0x29, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xC4, - 0x00, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xDA, - 0x00, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x12, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xE8, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x71, - 0x00, - 0x74, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x71, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x0C, - 0x00, - 0x71, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x12, - 0xE4, - 0x00, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x64, - 0x12, - 0x30, - 0xDC, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0xBD, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x05, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xE4, - 0x05, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x1B, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDF, - 0x00, - 0x83, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x44, - 0x0D, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x74, - 0x00, - 0x12, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x12, - 0x00, - 0x8D, - 0x02, - 0x71, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0x6A, - 0x00, - 0x05, - 0xE8, - 0x02, - 0x74, - 0x1B, - 0x00, - 0x20, - 0x59, - 0x00, - 0x05, - 0xBD, - 0x02, - 0x64, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x94, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x74, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x44, - 0x29, - 0x3B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x29, - 0x44, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0xB4, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x5A, - 0x02, - 0x94, - 0x05, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x0D, - 0x1B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x94, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0A, - 0xE8, - 0x02, - 0x5A, - 0x02, - 0xE8, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x05, - 0xE4, - 0x02, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x44, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0C, - 0x02, - 0x3B, - 0x00, - 0x59, - 0x64, - 0x02, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x5A, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x44, - 0x30, - 0x1B, - 0x00, - 0xB4, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x71, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x20, - 0x44, - 0x30, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x64, - 0x20, - 0x00, - 0x00, - 0x50, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x98, - 0x29, - 0x64, - 0x6A, - 0x00, - 0x83, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x5A, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xB7, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x94, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x64, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x30, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x0D, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xC4, - 0xDC, - 0x1B, - 0xC4, - 0x02, - 0xDA, - 0x60, - 0x02, - 0x64, - 0xC4, - 0x5A, - 0x02, - 0x12, - 0x05, - 0x00, - 0x1B, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x0D, - 0xC4, - 0x5A, - 0x29, - 0x64, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x0D, - 0xDA, - 0x02, - 0x71, - 0x59, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x60, - 0x02, - 0x29, - 0x6F, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x5A, - 0x02, - 0x64, - 0x74, - 0xBD, - 0xE4, - 0x29, - 0x29, - 0x60, - 0x00, - 0xB7, - 0xBD, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0xE4, - 0x02, - 0x12, - 0xC4, - 0xC4, - 0x71, - 0x02, - 0xB4, - 0x05, - 0x00, - 0x00, - 0xE8, - 0x02, - 0xB4, - 0xBD, - 0x5A, - 0x02, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xE4, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x64, - 0x29, - 0x00, - 0x60, - 0x02, - 0x64, - 0xC4, - 0xC4, - 0x44, - 0x02, - 0x60, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x44, - 0x74, - 0xBD, - 0xE8, - 0x02, - 0x64, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x94, - 0xC4, - 0x74, - 0x44, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x02, - 0x29, - 0xB4, - 0xC4, - 0xC4, - 0x5A, - 0x30, - 0x02, - 0x94, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xC4, - 0xE4, - 0x29, - 0x29, - 0x50, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE8, - 0x02, - 0x29, - 0xE8, - 0xC4, - 0xBD, - 0x5A, - 0x0D, - 0x02, - 0x64, - 0x50, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xC4, - 0x74, - 0x94, - 0x29, - 0x02, - 0x71, - 0x98, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x6F, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x20, - 0xE4, - 0x02, - 0x02, - 0x71, - 0x74, - 0xBD, - 0xC4, - 0x94, - 0x02, - 0x02, - 0xC4, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xB4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x29, - 0x94, - 0xC4, - 0xBD, - 0x5A, - 0x64, - 0x02, - 0x64, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xC4, - 0x5A, - 0x30, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x02, - 0x71, - 0x74, - 0xBD, - 0x74, - 0x71, - 0x02, - 0x02, - 0x5A, - 0x20, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x74, - 0x71, - 0x02, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x29, - 0x5A, - 0xBD, - 0x71, - 0x02, - 0xE8, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0x71, - 0x02, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x83, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6C, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xC4, - 0x00, - 0x00, - 0xE8, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xC4, - 0x02, - 0x30, - 0x00, - 0x6F, - 0x29, - 0x29, - 0x00, - 0x5A, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x02, - 0xB4, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x29, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xB4, - 0x02, - 0x0D, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x12, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x74, - 0x98, - 0x02, - 0x5A, - 0x3B, - 0x94, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x59, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x05, - 0x00, - 0x05, - 0x74, - 0x02, - 0x02, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x3B, - 0x71, - 0x02, - 0x0A, - 0x5A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x12, - 0x02, - 0x0A, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0xE4, - 0xDA, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0xB4, - 0x74, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x6F, - 0x00, - 0x00, - 0xB7, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x6C, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x71, - 0x29, - 0x29, - 0x12, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x44, - 0x02, - 0x30, - 0x5A, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x3B, - 0x71, - 0x29, - 0x29, - 0x71, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xE8, - 0x29, - 0x29, - 0x64, - 0xC4, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x5A, - 0x30, - 0x02, - 0x29, - 0x0C, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x74, - 0x0D, - 0x29, - 0x02, - 0x44, - 0xB4, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x64, - 0x5A, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x5A, - 0x64, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x30, - 0x12, - 0x5A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x5A, - 0x44, - 0x02, - 0x02, - 0x30, - 0x71, - 0xC4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0xC4, - 0x71, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x64, - 0xE8, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x5A, - 0x64, - 0x29, - 0x02, - 0x29, - 0x0D, - 0x5A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x71, - 0xC4, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0xE4, - 0x0A, - 0x02, - 0x64, - 0xBD, - 0x05, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0xB4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6A, - 0x3B, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x50, - 0x50, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x0D, - 0x05, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x8D, - 0xB4, - 0x1B, - 0x29, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x30, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x0D, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x64, - 0x02, - 0x60, - 0x02, - 0x5A, - 0xC4, - 0x29, - 0xB4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xE8, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x6A, - 0x1B, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAB, - 0x03, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x74, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x79, - 0x57, - 0x45, - 0x4B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x33, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x46, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0xC5, - 0x68, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA2, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x79, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x45, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x67, - 0x6E, - 0x04, - 0x05, - 0x2E, - 0x15, - 0x03, - 0x38, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x22, - 0x5E, - 0xCD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x68, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x35, - 0x1E, - 0x62, - 0x00, - 0x00, - 0x45, - 0x13, - 0x22, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xAF, - 0x13, - 0x4A, - 0x03, - 0x53, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x33, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1E, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x13, - 0x9B, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x5E, - 0x22, - 0x63, - 0x00, - 0x00, - 0x16, - 0xA4, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x69, - 0x46, - 0x14, - 0x00, - 0xAE, - 0x55, - 0x35, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x67, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x13, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x80, - 0x77, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x35, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x77, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x77, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0xA1, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x5E, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x36, - 0x41, - 0x3A, - 0x3A, - 0x41, - 0x27, - 0x00, - 0x00, - 0x05, - 0x58, - 0x9B, - 0x1E, - 0x1E, - 0x35, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x88, - 0x19, - 0x00, - 0x00, - 0x00, - 0x18, - 0x33, - 0x67, - 0x07, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x19, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0xA9, - 0x13, - 0x5E, - 0x82, - 0x25, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x37, - 0x54, - 0x38, - 0x1E, - 0x82, - 0x22, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0xA1, - 0x77, - 0x1E, - 0xE0, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xA1, - 0x77, - 0x1E, - 0x34, - 0x15, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x67, - 0x8F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x89, - 0x3A, - 0x1E, - 0x9B, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x05, - 0x34, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xAC, - 0x53, - 0x82, - 0x03, - 0x1E, - 0x67, - 0x68, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x39, - 0x03, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x33, - 0x88, - 0x57, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x52, - 0x8F, - 0x1E, - 0x5E, - 0x33, - 0xA3, - 0x26, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x13, - 0x9B, - 0x52, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1D, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0xBB, - 0x46, - 0xA2, - 0x03, - 0x1E, - 0xE0, - 0x22, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x36, - 0xA3, - 0x13, - 0x03, - 0x34, - 0x23, - 0x05, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x45, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x14, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x15, - 0x67, - 0x69, - 0x03, - 0x33, - 0xA3, - 0x26, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x23, - 0xCD, - 0x13, - 0x03, - 0xA2, - 0x35, - 0x45, - 0x14, - 0x04, - 0x57, - 0x24, - 0x55, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xAF, - 0x33, - 0x37, - 0x00, - 0x00, - 0x16, - 0x5C, - 0x13, - 0x1E, - 0x34, - 0x23, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0xA4, - 0xA2, - 0x1E, - 0xE0, - 0x15, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x82, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x03, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x53, - 0x00, - 0x0B, - 0x35, - 0x13, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x03, - 0x33, - 0x1D, - 0x19, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x05, - 0x4A, - 0x9B, - 0x3A, - 0x1E, - 0x67, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x1E, - 0xAF, - 0x22, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x2B, - 0xA3, - 0x77, - 0x03, - 0x82, - 0x1D, - 0x19, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0B, - 0x4B, - 0x35, - 0x3A, - 0x1E, - 0x67, - 0x4B, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x9B, - 0x3A, - 0x55, - 0x9B, - 0x58, - 0x05, - 0x81, - 0x33, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x13, - 0x67, - 0x07, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x07, - 0x57, - 0x35, - 0x13, - 0x1E, - 0x34, - 0x15, - 0x31, - 0x00, - 0x00, - 0x03, - 0x52, - 0x17, - 0x4B, - 0x67, - 0x55, - 0x69, - 0x9B, - 0x57, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x03, - 0x82, - 0xD8, - 0x40, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x1E, - 0x7A, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x23, - 0x8F, - 0x55, - 0x1E, - 0x88, - 0x91, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x66, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x3A, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0x45, - 0x00, - 0x00, - 0x00, - 0xA2, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0xA4, - 0x03, - 0x03, - 0x03, - 0x3A, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x9B, - 0x00, - 0x00, - 0x16, - 0x1E, - 0xC5, - 0x15, - 0xE5, - 0x38, - 0x1E, - 0x62, - 0x05, - 0x65, - 0x03, - 0x35, - 0x45, - 0x15, - 0x7A, - 0x03, - 0x45, - 0x00, - 0x00, - 0x2E, - 0x7A, - 0x69, - 0x62, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x67, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x34, - 0x72, - 0x23, - 0x22, - 0x13, - 0x1E, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x34, - 0x03, - 0x1D, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x00, - 0x19, - 0x82, - 0x55, - 0x1D, - 0x23, - 0x52, - 0x13, - 0x77, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x38, - 0x15, - 0x23, - 0x5C, - 0x03, - 0x9B, - 0x0E, - 0x00, - 0x00, - 0x26, - 0x03, - 0x66, - 0x68, - 0x23, - 0x25, - 0x5E, - 0x7A, - 0x14, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x9B, - 0x45, - 0x45, - 0x35, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x9B, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x4A, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x15, - 0xA2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x15, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x35, - 0x03, - 0x13, - 0x53, - 0x45, - 0x23, - 0x68, - 0xCD, - 0x03, - 0x54, - 0x17, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0xC5, - 0x05, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x68, - 0x46, - 0x03, - 0x38, - 0x37, - 0x00, - 0x00, - 0x0E, - 0x25, - 0x03, - 0x69, - 0x65, - 0xBB, - 0x23, - 0x54, - 0x8F, - 0x03, - 0x34, - 0x2C, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x15, - 0x65, - 0x66, - 0x03, - 0xA4, - 0x14, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x6E, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x54, - 0x03, - 0x03, - 0x88, - 0x72, - 0x23, - 0xBB, - 0xA1, - 0x13, - 0x03, - 0x41, - 0x08, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x27, - 0x55, - 0x77, - 0x72, - 0x23, - 0x5D, - 0x03, - 0x22, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0x41, - 0x05, - 0x03, - 0xCD, - 0x4B, - 0x4B, - 0x4B, - 0x4B, - 0x4B, - 0x4B, - 0x07, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x77, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x15, - 0x5E, - 0x55, - 0xA3, - 0x15, - 0x23, - 0x54, - 0x67, - 0x03, - 0x38, - 0x16, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x80, - 0x03, - 0x35, - 0x72, - 0x23, - 0x15, - 0x35, - 0x03, - 0x69, - 0xE0, - 0x03, - 0x41, - 0x23, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x03, - 0x62, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x13, - 0x54, - 0x23, - 0xA1, - 0x03, - 0xCD, - 0x07, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x7A, - 0x68, - 0x23, - 0xD8, - 0x1E, - 0x33, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x03, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x03, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x03, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x67, - 0x66, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x66, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x33, - 0x03, - 0x45, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x38, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x87, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x9B, - 0x03, - 0x67, - 0x15, - 0x23, - 0x52, - 0x33, - 0x3A, - 0x6E, - 0x03, - 0x52, - 0x03, - 0x1D, - 0xA3, - 0x03, - 0xA9, - 0x45, - 0x45, - 0xA3, - 0x03, - 0x34, - 0x19, - 0x00, - 0x00, - 0x18, - 0xCD, - 0x03, - 0x9B, - 0x15, - 0x23, - 0x1D, - 0x3A, - 0x5E, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x31, - 0xA9, - 0x03, - 0x24, - 0x15, - 0x23, - 0x22, - 0x66, - 0x80, - 0x62, - 0x03, - 0x52, - 0x00, - 0x08, - 0x67, - 0x03, - 0x5D, - 0x45, - 0x45, - 0x41, - 0x03, - 0x9B, - 0x37, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x63, - 0x34, - 0x03, - 0x41, - 0x45, - 0x45, - 0x41, - 0x03, - 0x22, - 0x22, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x34, - 0x77, - 0x21, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x63, - 0x34, - 0x03, - 0xA4, - 0x45, - 0x23, - 0xA1, - 0x5E, - 0x33, - 0x2C, - 0x00, - 0x03, - 0x1D, - 0xA4, - 0x03, - 0xA4, - 0x45, - 0x45, - 0xA3, - 0x03, - 0xE0, - 0x63, - 0x00, - 0x00, - 0x18, - 0xCD, - 0x03, - 0x35, - 0x15, - 0x23, - 0x22, - 0x66, - 0x1E, - 0x2B, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x88, - 0x23, - 0xA4, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x88, - 0x03, - 0xA9, - 0x45, - 0xBB, - 0x67, - 0x13, - 0x5C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x66, - 0x03, - 0x35, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x67, - 0xC5, - 0x0E, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x80, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x82, - 0x55, - 0x23, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0xA3, - 0x00, - 0x00, - 0x00, - 0xA9, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9C, - 0x33, - 0x79, - 0x0B, - 0x2E, - 0xA3, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x03, - 0x7B, - 0x00, - 0x46, - 0xAF, - 0x31, - 0x00, - 0x00, - 0x18, - 0x33, - 0x9B, - 0x4A, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA3, - 0x03, - 0x1A, - 0x19, - 0xC5, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x13, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x45, - 0x13, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x00, - 0x14, - 0x7A, - 0x77, - 0x07, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x08, - 0x67, - 0x13, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x67, - 0x13, - 0x91, - 0x00, - 0x00, - 0x00, - 0x63, - 0x82, - 0x9C, - 0x04, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x03, - 0x41, - 0x1A, - 0x00, - 0x27, - 0x03, - 0x5C, - 0x07, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x5E, - 0xA3, - 0x00, - 0x36, - 0x5E, - 0x35, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x89, - 0x00, - 0x00, - 0x04, - 0x33, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x54, - 0x05, - 0x00, - 0x00, - 0x05, - 0x54, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x3A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x07, - 0x54, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA6, - 0x1E, - 0x03, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x03, - 0x1E, - 0x1D, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x33, - 0x03, - 0x72, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x0B, - 0x14, - 0x19, - 0x1D, - 0x62, - 0x00, - 0x00, - 0x00, - 0xA3, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x23, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x54, - 0x00, - 0x0E, - 0x67, - 0x03, - 0x22, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x82, - 0x13, - 0x36, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x51, - 0x33, - 0xAF, - 0x21, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x9B, - 0x03, - 0x65, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x45, - 0x5E, - 0x38, - 0x14, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0xA3, - 0xA2, - 0x14, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x03, - 0x19, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x33, - 0x7A, - 0x18, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0xE0, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x05, - 0x65, - 0x03, - 0xA6, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x34, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x67, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x03, - 0x81, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x15, - 0x00, - 0x00, - 0x31, - 0x3A, - 0xAF, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0xA1, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x13, - 0x67, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x52, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x3A, - 0xCD, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA2, - 0xCD, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x34, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x24, - 0x1E, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x25, - 0x3A, - 0x03, - 0x52, - 0x03, - 0x1E, - 0x3A, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x13, - 0x34, - 0x07, - 0x17, - 0x35, - 0x55, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xCD, - 0x03, - 0x39, - 0x00, - 0x17, - 0x46, - 0x1E, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x53, - 0x13, - 0x03, - 0x52, - 0x0B, - 0x9B, - 0x13, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x13, - 0x35, - 0x05, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x07, - 0xE0, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x3A, - 0xAF, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x81, - 0x00, - 0x00, - 0x05, - 0xA3, - 0x5E, - 0x7B, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x07, - 0x34, - 0x13, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x33, - 0x82, - 0x0E, - 0x03, - 0x1E, - 0x13, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA2, - 0x34, - 0x07, - 0x04, - 0x35, - 0x1E, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x25, - 0x55, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x8F, - 0xE0, - 0x05, - 0x00, - 0x05, - 0x67, - 0x34, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1D, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x77, - 0xA6, - 0xAF, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x1D, - 0x03, - 0x14, - 0x00, - 0x00, - 0x4A, - 0x03, - 0xA6, - 0x80, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x5E, - 0x22, - 0x00, - 0x00, - 0x26, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x66, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x66, - 0x00, - 0x00, - 0x00, - 0x72, - 0x38, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x07, - 0x77, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x5C, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x55, - 0x24, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x7A, - 0x7A, - 0x66, - 0x77, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x3A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x18, - 0x67, - 0x80, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0xAC, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0xA3, - 0x77, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x36, - 0x25, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0xB1, - 0x00, - 0x00, - 0x23, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0xC5, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0xA4, - 0x03, - 0x55, - 0x22, - 0x19, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x19, - 0x22, - 0x1E, - 0x03, - 0x41, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x8F, - 0x03, - 0x57, - 0x88, - 0x03, - 0x1E, - 0xA1, - 0x79, - 0x13, - 0x5E, - 0x13, - 0x57, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x37, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x38, - 0x00, - 0xA1, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x7A, - 0x7A, - 0x2F, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x33, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x1E, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x80, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x4A, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x5E, - 0x16, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x67, - 0x27, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x23, - 0x03, - 0x52, - 0x00, - 0x72, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x67, - 0x1E, - 0x2D, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0xA4, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x33, - 0x80, - 0x88, - 0x03, - 0x23, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x19, - 0x69, - 0x35, - 0x05, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCD, - 0x34, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x7A, - 0x04, - 0x82, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0xAC, - 0x82, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x26, - 0xE0, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x5E, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x52, - 0x03, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x23, - 0x4A, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1D, - 0x54, - 0x00, - 0x4A, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0x03, - 0x52, - 0xD1, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x58, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x23, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0xC0, - 0x00, - 0x15, - 0x03, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x57, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x03, - 0xBB, - 0x03, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x23, - 0x4A, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x25, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x22, - 0x55, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0xCD, - 0x38, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x3A, - 0x03, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x27, - 0x23, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x34, - 0x37, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x88, - 0x88, - 0x2D, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x87, - 0x08, - 0xA2, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x79, - 0x80, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x5E, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0xBB, - 0x03, - 0x26, - 0x1A, - 0x1A, - 0x54, - 0x03, - 0x39, - 0x1A, - 0x1A, - 0xE5, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x19, - 0x8F, - 0x34, - 0x04, - 0x00, - 0x00, - 0x0B, - 0xE0, - 0xE0, - 0x55, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x33, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x33, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0E, - 0x9B, - 0x1E, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x03, - 0x15, - 0x88, - 0x1E, - 0x16, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x03, - 0xA6, - 0x21, - 0x04, - 0x55, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x23, - 0x33, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x03, - 0x23, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x13, - 0x00, - 0x00, - 0x00, - 0x18, - 0x62, - 0x16, - 0x41, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x26, - 0x67, - 0x03, - 0xA2, - 0x15, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x14, - 0x15, - 0x13, - 0x03, - 0x67, - 0xAE, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x22, - 0x52, - 0x3A, - 0x36, - 0x04, - 0x45, - 0x03, - 0x24, - 0x05, - 0x79, - 0x66, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x05, - 0x34, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x1D, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x5E, - 0x16, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x2B, - 0x63, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x26, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x72, - 0x03, - 0xA9, - 0x05, - 0x00, - 0x00, - 0x15, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x58, - 0x00, - 0x35, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x77, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x2D, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x3A, - 0x88, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x69, - 0x7A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x15, - 0x5E, - 0x38, - 0x40, - 0x0B, - 0x67, - 0x03, - 0x19, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0B, - 0x24, - 0xA2, - 0x21, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x52, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x66, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x03, - 0x23, - 0x00, - 0xE5, - 0x1E, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x5E, - 0x2F, - 0x1D, - 0xA2, - 0x05, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x14, - 0x68, - 0x55, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x82, - 0x0E, - 0x00, - 0x0E, - 0x33, - 0x67, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x1E, - 0xCD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xC0, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x52, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x9B, - 0x35, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x38, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x52, - 0x35, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x21, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x67, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x55, - 0x55, - 0xE5, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x46, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x9B, - 0x9B, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x38, - 0xE0, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x03, - 0x00, - 0x00, - 0x00, - 0x88, - 0x9B, - 0x00, - 0x08, - 0x1E, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x45, - 0x00, - 0x88, - 0xA4, - 0x00, - 0x18, - 0x03, - 0x4A, - 0x00, - 0x9B, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x67, - 0x38, - 0x5C, - 0x3A, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x34, - 0x00, - 0x54, - 0x1E, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x67, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x15, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0xA2, - 0xA1, - 0x00, - 0x00, - 0xB1, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x16, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x0E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x52, - 0xAC, - 0x03, - 0xCD, - 0xAE, - 0x26, - 0x9B, - 0x03, - 0x1A, - 0x33, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x1E, - 0x03, - 0x66, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA2, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x41, - 0x03, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x13, - 0x17, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x35, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x19, - 0x79, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x54, - 0x19, - 0x1E, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x0B, - 0x6E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0x54, - 0x5E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x22, - 0x69, - 0x31, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x03, - 0x00, - 0x0B, - 0x54, - 0x5E, - 0x03, - 0x03, - 0x1E, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x03, - 0x38, - 0x4B, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x57, - 0x82, - 0x03, - 0xC5, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x89, - 0x03, - 0x08, - 0x66, - 0x25, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x13, - 0x17, - 0x00, - 0xB1, - 0x1E, - 0x45, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0xAE, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x15, - 0x03, - 0x27, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA9, - 0x82, - 0x1D, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x82, - 0xA1, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x39, - 0x1E, - 0x88, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0x45, - 0x00, - 0x79, - 0x03, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x41, - 0x13, - 0x07, - 0x00, - 0x51, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x1E, - 0x40, - 0x00, - 0x03, - 0x52, - 0x54, - 0x03, - 0x63, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x40, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x7A, - 0x45, - 0x51, - 0x39, - 0xD1, - 0x25, - 0x69, - 0x03, - 0x22, - 0x0E, - 0x00, - 0x00, - 0x27, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCD, - 0xAF, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x14, - 0x00, - 0x63, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x89, - 0x00, - 0x51, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x88, - 0xE0, - 0x00, - 0x6E, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x22, - 0x00, - 0x1D, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x07, - 0x13, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x24, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x03, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x3A, - 0x3A, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x3A, - 0xA9, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x69, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x22, - 0x46, - 0x03, - 0x35, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x3A, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x3A, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x3A, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x57, - 0x33, - 0x03, - 0x39, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x58, - 0x00, - 0x00, - 0x25, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x03, - 0x63, - 0x00, - 0x4A, - 0x5E, - 0x0E, - 0x26, - 0x03, - 0x14, - 0x00, - 0x4A, - 0x03, - 0x63, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x57, - 0x00, - 0x2D, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xA1, - 0x5E, - 0x16, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x1E, - 0x45, - 0x19, - 0xA9, - 0x22, - 0x00, - 0x00, - 0x05, - 0x2B, - 0x34, - 0x03, - 0x03, - 0x15, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x21, - 0x33, - 0x54, - 0x21, - 0x21, - 0x19, - 0x03, - 0x45, - 0x21, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x77, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x69, - 0x31, - 0x6E, - 0x67, - 0x03, - 0x03, - 0xE0, - 0x79, - 0x00, - 0x54, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x39, - 0x1E, - 0x34, - 0x2B, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x88, - 0x5E, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x58, - 0x00, - 0x57, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x45, - 0x82, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x34, - 0x00, - 0xA1, - 0x03, - 0x22, - 0x27, - 0x19, - 0x51, - 0x34, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x9B, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x35, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x13, - 0xCD, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x37, - 0x00, - 0x00, - 0x0E, - 0x3A, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x54, - 0x38, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0xAF, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA2, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x5E, - 0x03, - 0x4A, - 0x66, - 0x38, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x19, - 0x03, - 0x72, - 0x00, - 0x00, - 0x04, - 0x33, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x23, - 0x00, - 0x00, - 0x03, - 0x52, - 0x34, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x4B, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x79, - 0x16, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x46, - 0x66, - 0x88, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x34, - 0x54, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0xE0, - 0x03, - 0x52, - 0x00, - 0x79, - 0x03, - 0x03, - 0x80, - 0x81, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x17, - 0x66, - 0x81, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x38, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x23, - 0x00, - 0x08, - 0x03, - 0x23, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x68, - 0x00, - 0x07, - 0x1E, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x15, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x03, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE0, - 0x13, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x15, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x3A, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x3A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x03, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x2E, - 0x13, - 0x9B, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x3A, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x3A, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x3A, - 0x03, - 0xA4, - 0x16, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x54, - 0x80, - 0x07, - 0x00, - 0x00, - 0x16, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x89, - 0x00, - 0x00, - 0x14, - 0x03, - 0x51, - 0x5C, - 0x35, - 0x00, - 0x00, - 0x0E, - 0x55, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x13, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x08, - 0x00, - 0x00, - 0xA9, - 0x82, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x45, - 0x1E, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x65, - 0x03, - 0x45, - 0x62, - 0x03, - 0x15, - 0x58, - 0x67, - 0x03, - 0x55, - 0x88, - 0x7A, - 0x03, - 0x39, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x53, - 0x00, - 0x00, - 0x00, - 0x34, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x9B, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x55, - 0x23, - 0x00, - 0x00, - 0x0E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x67, - 0x03, - 0x15, - 0x07, - 0x26, - 0x03, - 0x9B, - 0x37, - 0x00, - 0x81, - 0x69, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA2, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x21, - 0x21, - 0x21, - 0xA6, - 0x03, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8F, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x5D, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x34, - 0x13, - 0x18, - 0x00, - 0x05, - 0x46, - 0x66, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x87, - 0xA6, - 0x80, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x26, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x23, - 0x2B, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x38, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x67, - 0x03, - 0x3A, - 0x68, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x15, - 0x13, - 0x03, - 0x67, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x5E, - 0x39, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x00, - 0xAF, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x27, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x52, - 0x3A, - 0x19, - 0x21, - 0x21, - 0x21, - 0x21, - 0x51, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x2B, - 0x4A, - 0x1D, - 0x1E, - 0x9B, - 0x0E, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x1E, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x21, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x16, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x67, - 0x03, - 0x55, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x63, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x19, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x08, - 0x66, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x03, - 0x52, - 0x1E, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x54, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA1, - 0x37, - 0x00, - 0x1E, - 0x25, - 0x00, - 0x05, - 0x37, - 0x08, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x2C, - 0x6E, - 0x2B, - 0xBB, - 0x7A, - 0x03, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x4A, - 0x9B, - 0x03, - 0x46, - 0x07, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x36, - 0x00, - 0x00, - 0x24, - 0xA4, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x79, - 0x00, - 0x00, - 0xA4, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x7A, - 0x03, - 0x34, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x1E, - 0x22, - 0x66, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x14, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x52, - 0x03, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x9B, - 0x46, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x52, - 0x24, - 0x35, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x88, - 0x67, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x67, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x03, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x03, - 0x45, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x68, - 0x03, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x1E, - 0x67, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8F, - 0x9B, - 0x03, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8F, - 0x46, - 0x46, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x88, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x07, - 0x13, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x46, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x35, - 0xA4, - 0x55, - 0x57, - 0x00, - 0x00, - 0x00, - 0x53, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA4, - 0x13, - 0x9B, - 0xAF, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x67, - 0xE0, - 0x0B, - 0x00, - 0x00, - 0x40, - 0x41, - 0x1E, - 0x36, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x72, - 0x19, - 0x00, - 0x58, - 0x1E, - 0x03, - 0x67, - 0x4B, - 0x0E, - 0x00, - 0x0B, - 0xA9, - 0x1D, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x68, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x34, - 0x03, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x08, - 0x6E, - 0x16, - 0x17, - 0x00, - 0x1D, - 0x82, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x03, - 0xA2, - 0x03, - 0x9B, - 0x0E, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0xA2, - 0x04, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9B, - 0x69, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x39, - 0x45, - 0x33, - 0x1E, - 0x79, - 0x00, - 0x00, - 0x00, - 0x40, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x19, - 0x66, - 0x15, - 0x05, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA2, - 0x9B, - 0x05, - 0x2C, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x33, - 0xE0, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0xA1, - 0xAE, - 0x51, - 0x1D, - 0x03, - 0x25, - 0x05, - 0xA9, - 0x33, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0xB1, - 0x34, - 0x45, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x87, - 0x41, - 0x03, - 0x5E, - 0xD8, - 0x40, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x1D, - 0x1E, - 0x03, - 0xA4, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x89, - 0x03, - 0x2B, - 0x00, - 0x55, - 0x1D, - 0x00, - 0x25, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x23, - 0x13, - 0x0B, - 0x00, - 0x07, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x77, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA1, - 0x04, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x26, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x35, - 0x00, - 0x1E, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x63, - 0x13, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x07, - 0x13, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1E, - 0x54, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x5E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x15, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x19, - 0x6E, - 0x22, - 0x03, - 0x67, - 0x05, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x89, - 0x1E, - 0x21, - 0x00, - 0x00, - 0x27, - 0xA4, - 0x03, - 0x03, - 0x67, - 0x4A, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xA9, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x00, - 0x17, - 0x66, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x77, - 0x05, - 0x00, - 0x00, - 0x15, - 0x1E, - 0x0B, - 0x00, - 0x72, - 0x1E, - 0x07, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x69, - 0x37, - 0x57, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0xA1, - 0x3A, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x5D, - 0x03, - 0x52, - 0x03, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x57, - 0x4B, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x81, - 0xA6, - 0x00, - 0x4B, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x46, - 0x03, - 0x52, - 0x23, - 0x03, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x5E, - 0x45, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x23, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x03, - 0x03, - 0x77, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0xAC, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x4A, - 0x03, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x66, - 0x67, - 0x23, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x23, - 0x03, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x57, - 0x4B, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x52, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x68, - 0x03, - 0x37, - 0x00, - 0x00, - 0x08, - 0x31, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x58, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x36, - 0x00, - 0x00, - 0x15, - 0x1E, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x51, - 0x19, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x55, - 0x72, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x15, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x13, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x16, - 0x72, - 0x1E, - 0x16, - 0x16, - 0x16, - 0xA6, - 0x13, - 0x16, - 0x16, - 0x00, - 0x37, - 0x34, - 0x03, - 0x66, - 0x72, - 0x19, - 0x00, - 0x00, - 0x05, - 0x72, - 0x03, - 0x03, - 0x03, - 0x7A, - 0x16, - 0x91, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x5E, - 0x52, - 0x0E, - 0x00, - 0x00, - 0x1D, - 0x5E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE5, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x79, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x03, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x62, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x03, - 0x35, - 0x4A, - 0x2B, - 0x68, - 0x69, - 0x33, - 0x19, - 0x00, - 0x00, - 0x22, - 0x03, - 0x67, - 0x4A, - 0x39, - 0xE5, - 0xA2, - 0x13, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x13, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x23, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x1D, - 0x1E, - 0x03, - 0x41, - 0x7B, - 0x00, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x00, - 0x7B, - 0xA3, - 0x03, - 0x1E, - 0xA6, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9B, - 0x69, - 0x14, - 0xE0, - 0x35, - 0x00, - 0x87, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x1A, - 0x00, - 0x07, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x67, - 0x00, - 0x00, - 0x00, - 0x14, - 0x5E, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x2D, - 0x1A, - 0x5D, - 0x03, - 0x79, - 0x00, - 0x38, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x82, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x07, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x08, - 0x00, - 0xE0, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x87, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x58, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x13, - 0x07, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x34, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x4A, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x1A, - 0x77, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA9, - 0x38, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x4B, - 0x00, - 0x16, - 0x1E, - 0x82, - 0x23, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x19, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x13, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x62, - 0x00, - 0x24, - 0x88, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x03, - 0xC5, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x5E, - 0x72, - 0x00, - 0x07, - 0x66, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x77, - 0x34, - 0x04, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE5, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x16, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x1E, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x25, - 0x1E, - 0x03, - 0x52, - 0x03, - 0x55, - 0x80, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x13, - 0x8F, - 0x07, - 0x04, - 0x9B, - 0x69, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0xA4, - 0x03, - 0x39, - 0x00, - 0x04, - 0x9B, - 0x69, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x5C, - 0x03, - 0x03, - 0x52, - 0x07, - 0x34, - 0x7A, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x7A, - 0xC5, - 0x31, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x07, - 0x7A, - 0x77, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA2, - 0x3A, - 0x03, - 0x03, - 0x03, - 0x1D, - 0x17, - 0x00, - 0x00, - 0x00, - 0x14, - 0x38, - 0x66, - 0x07, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x80, - 0x19, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x46, - 0x3A, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xA4, - 0x5E, - 0x21, - 0x03, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x23, - 0x07, - 0x34, - 0xA2, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x13, - 0x7A, - 0x2F, - 0x03, - 0x55, - 0x13, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x13, - 0x34, - 0x07, - 0x0B, - 0x67, - 0x1E, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x25, - 0x55, - 0x03, - 0x52, - 0x03, - 0x03, - 0x58, - 0x00, - 0x00, - 0x45, - 0x03, - 0x19, - 0x00, - 0x07, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x9B, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x22, - 0x00, - 0x05, - 0x33, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x82, - 0x1D, - 0x00, - 0x00, - 0x19, - 0x69, - 0xA1, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x67, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x22, - 0x03, - 0x57, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x52, - 0x40, - 0x62, - 0x9C, - 0x3A, - 0x14, - 0x89, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x5C, - 0x08, - 0xBB, - 0x1E, - 0x24, - 0x07, - 0x00, - 0x37, - 0x1A, - 0x19, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x66, - 0x35, - 0x00, - 0x00, - 0x45, - 0x2E, - 0x14, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x1D, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xAE, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x19, - 0x39, - 0x34, - 0x77, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x8F, - 0x38, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x7A, - 0xE0, - 0x89, - 0x03, - 0x03, - 0x1E, - 0xD8, - 0x14, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x82, - 0x03, - 0x82, - 0x03, - 0x03, - 0x41, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x03, - 0x27, - 0x00, - 0x00, - 0x58, - 0x03, - 0x1D, - 0x36, - 0x40, - 0x22, - 0x03, - 0x58, - 0x00, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0x13, - 0x03, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x03, - 0xA2, - 0x15, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x57, - 0x54, - 0x03, - 0x14, - 0x00, - 0xA3, - 0x55, - 0x36, - 0x00, - 0x00, - 0x51, - 0x03, - 0xA6, - 0x00, - 0x27, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x62, - 0x00, - 0x00, - 0xBB, - 0x5E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x34, - 0x35, - 0x00, - 0x1D, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0xA1, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x23, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x67, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x4A, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x08, - 0x66, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x52, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x19, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x03, - 0x15, - 0x5C, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x55, - 0xA6, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x54, - 0x00, - 0x35, - 0x66, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x72, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0x15, - 0x37, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7A, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x33, - 0x34, - 0x37, - 0x38, - 0x38, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x69, - 0x37, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x45, - 0x00, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x34, - 0x05, - 0x00, - 0x17, - 0x82, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x46, - 0x03, - 0x9B, - 0x15, - 0x23, - 0x22, - 0x66, - 0x69, - 0x79, - 0x03, - 0x52, - 0x03, - 0x22, - 0xA3, - 0x03, - 0xA4, - 0x45, - 0x45, - 0xA3, - 0x03, - 0x34, - 0x63, - 0x00, - 0x00, - 0x37, - 0x46, - 0x03, - 0x35, - 0x15, - 0x23, - 0x1D, - 0x13, - 0x5E, - 0x58, - 0x00, - 0x00, - 0x00, - 0x37, - 0xCD, - 0x03, - 0x35, - 0x15, - 0x23, - 0x1D, - 0x13, - 0x1E, - 0x26, - 0x03, - 0x52, - 0x00, - 0x63, - 0xE0, - 0x1E, - 0x53, - 0x45, - 0x45, - 0xA3, - 0x03, - 0x34, - 0x2D, - 0x00, - 0x57, - 0x57, - 0x03, - 0x46, - 0x57, - 0x57, - 0x00, - 0x19, - 0x38, - 0x03, - 0x5C, - 0x45, - 0x45, - 0xA4, - 0x03, - 0x1D, - 0x22, - 0x03, - 0x03, - 0x9B, - 0x69, - 0x34, - 0x15, - 0x57, - 0x52, - 0x13, - 0x69, - 0x6E, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x19, - 0x80, - 0x67, - 0x0B, - 0x00, - 0x03, - 0x52, - 0x03, - 0x67, - 0x1E, - 0xA3, - 0x45, - 0x72, - 0x38, - 0x1E, - 0x62, - 0x22, - 0x03, - 0x41, - 0x23, - 0x15, - 0x34, - 0x03, - 0x4B, - 0x00, - 0x03, - 0xCD, - 0xA2, - 0x35, - 0x45, - 0x45, - 0x9B, - 0x03, - 0x89, - 0x07, - 0x00, - 0x63, - 0xE0, - 0x03, - 0x41, - 0x45, - 0x45, - 0xA3, - 0x03, - 0xAF, - 0x19, - 0x00, - 0x03, - 0x22, - 0xA3, - 0x03, - 0xA4, - 0x45, - 0x45, - 0xA4, - 0x03, - 0x34, - 0x2E, - 0x00, - 0x00, - 0x08, - 0x35, - 0x03, - 0x35, - 0x15, - 0x23, - 0x22, - 0x66, - 0x1E, - 0x51, - 0x03, - 0x52, - 0x03, - 0x8F, - 0x03, - 0x65, - 0xC0, - 0x19, - 0x1E, - 0x34, - 0x23, - 0x88, - 0x03, - 0x16, - 0x57, - 0x57, - 0x46, - 0x03, - 0x57, - 0x57, - 0x57, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x27, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x69, - 0x0E, - 0x6E, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x69, - 0x07, - 0x05, - 0x35, - 0x33, - 0x18, - 0x00, - 0x00, - 0x05, - 0x88, - 0x66, - 0x08, - 0x00, - 0x27, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1E, - 0x22, - 0x00, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x80, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x07, - 0x07, - 0x18, - 0x03, - 0xC0, - 0x07, - 0x07, - 0x40, - 0x03, - 0xAC, - 0x07, - 0x00, - 0x77, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAF, - 0x35, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x23, - 0xAC, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x33, - 0x2F, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x88, - 0x13, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x79, - 0x00, - 0x00, - 0x22, - 0x25, - 0x1D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE5, - 0xA2, - 0x04, - 0x00, - 0x66, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x13, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x03, - 0x72, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x53, - 0x34, - 0x00, - 0x07, - 0x08, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x58, - 0x08, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0x53, - 0x00, - 0x00, - 0xAF, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x7A, - 0x00, - 0x38, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xD1, - 0x38, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0xD1, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x54, - 0x19, - 0x03, - 0xA6, - 0x00, - 0x08, - 0x34, - 0x13, - 0x23, - 0xAE, - 0x7A, - 0x46, - 0x3A, - 0x07, - 0x22, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x5C, - 0x00, - 0x0B, - 0x77, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x69, - 0x00, - 0x7B, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x79, - 0x08, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x23, - 0x45, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x7B, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xE0, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x53, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x2D, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x69, - 0xA4, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x52, - 0x39, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x16, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x72, - 0x00, - 0x55, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x21, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x0B, - 0x13, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA9, - 0x33, - 0x17, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x9B, - 0x2B, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x69, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x62, - 0x00, - 0x62, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x82, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x1E, - 0x19, - 0x00, - 0xE0, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x79, - 0x00, - 0x39, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x58, - 0x88, - 0xA2, - 0x5E, - 0x38, - 0x22, - 0x2E, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x05, - 0x58, - 0x9B, - 0x1E, - 0x3A, - 0x67, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0x88, - 0xA2, - 0x55, - 0x38, - 0x22, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x5E, - 0x7A, - 0x1D, - 0x2D, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x07, - 0x57, - 0x9B, - 0x3A, - 0x3A, - 0x9B, - 0x23, - 0x07, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x0E, - 0x45, - 0x67, - 0x1E, - 0x3A, - 0x88, - 0x51, - 0x00, - 0x52, - 0x03, - 0x03, - 0x52, - 0x2D, - 0x25, - 0x66, - 0x1E, - 0xC5, - 0xA6, - 0x19, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x52, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x7B, - 0xCD, - 0x1E, - 0x13, - 0xA3, - 0x36, - 0x00, - 0x05, - 0x4A, - 0xE0, - 0x03, - 0x80, - 0x89, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x2E, - 0xA6, - 0x77, - 0x1E, - 0xE0, - 0x23, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x46, - 0x3A, - 0x3A, - 0x24, - 0x45, - 0x2F, - 0x00, - 0x00, - 0x03, - 0x52, - 0x05, - 0x58, - 0x9B, - 0x1E, - 0x3A, - 0x67, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x26, - 0x88, - 0x13, - 0x5E, - 0xC5, - 0xD8, - 0x40, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x58, - 0x13, - 0x03, - 0x00, - 0x62, - 0x67, - 0x1E, - 0x9C, - 0x51, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x1D, - 0x13, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x4B, - 0x25, - 0x33, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x26, - 0x23, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x3A, - 0xA3, - 0x00, - 0x22, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x69, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x34, - 0x15, - 0x00, - 0x00, - 0x05, - 0x69, - 0x57, - 0x00, - 0x00, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x1D, - 0x1E, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x54, - 0x05, - 0x38, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x2D, - 0x1E, - 0xA3, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x1A, - 0x26, - 0x5E, - 0x03, - 0x58, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x79, - 0x00, - 0xA3, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x89, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x00, - 0x39, - 0x66, - 0x19, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x36, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x3A, - 0x63, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x14, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x00, - 0x22, - 0x55, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x57, - 0x00, - 0x15, - 0x03, - 0x58, - 0x00, - 0x37, - 0x53, - 0x03, - 0x03, - 0xA4, - 0x07, - 0x00, - 0xAC, - 0x03, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x19, - 0xAE, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x13, - 0x00, - 0x00, - 0x65, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x38, - 0x82, - 0x07, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x15, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x07, - 0xE0, - 0xA2, - 0x2E, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xA1, - 0xA2, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x62, - 0x03, - 0x52, - 0x03, - 0x52, - 0x51, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x15, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0xE0, - 0x3A, - 0x19, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0xBB, - 0x05, - 0xA9, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x03, - 0x25, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0xAE, - 0x00, - 0xA2, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0xAE, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x39, - 0x00, - 0x00, - 0x46, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0xA1, - 0x66, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x87, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x69, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0xA4, - 0x00, - 0x72, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x89, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0x41, - 0x00, - 0x88, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x25, - 0x41, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x1D, - 0x00, - 0x00, - 0x34, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x67, - 0x9B, - 0x33, - 0x31, - 0x00, - 0x00, - 0x51, - 0x03, - 0xAE, - 0x00, - 0x57, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x34, - 0x0B, - 0x00, - 0x00, - 0x79, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x26, - 0x03, - 0x1D, - 0x04, - 0x00, - 0x16, - 0x13, - 0x67, - 0x0E, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0xA6, - 0x00, - 0xAC, - 0x03, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x82, - 0x13, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xAE, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x4A, - 0x00, - 0x40, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x24, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x33, - 0x88, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1E, - 0x15, - 0x00, - 0x9B, - 0x7A, - 0x0E, - 0x00, - 0x00, - 0x0E, - 0xAF, - 0x9B, - 0x00, - 0x19, - 0x1E, - 0x88, - 0x07, - 0x00, - 0x00, - 0x00, - 0x79, - 0x1E, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA9, - 0x1E, - 0x21, - 0x00, - 0x05, - 0xA1, - 0x03, - 0x72, - 0x0E, - 0x00, - 0x07, - 0x37, - 0x00, - 0x04, - 0x57, - 0x1E, - 0x9C, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x55, - 0x54, - 0x46, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x80, - 0xA3, - 0x00, - 0x00, - 0x0E, - 0x67, - 0x03, - 0x68, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x7A, - 0x1E, - 0x27, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x4B, - 0x69, - 0x7A, - 0x21, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x88, - 0x03, - 0x53, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x22, - 0x03, - 0x5C, - 0x17, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x13, - 0x67, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x5C, - 0x5E, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0xA1, - 0x03, - 0x52, - 0x03, - 0x65, - 0x13, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x05, - 0x1D, - 0x03, - 0x22, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0xAF, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x41, - 0x03, - 0x7B, - 0x00, - 0x37, - 0x67, - 0x03, - 0x52, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x22, - 0x03, - 0x9B, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x38, - 0x66, - 0x07, - 0x00, - 0x53, - 0x1E, - 0x91, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0xCD, - 0x33, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x77, - 0xA9, - 0x00, - 0x37, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x72, - 0x00, - 0x00, - 0x07, - 0x38, - 0xC5, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x82, - 0x34, - 0x0B, - 0x00, - 0x00, - 0x40, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x38, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x2B, - 0x14, - 0x13, - 0x8F, - 0x21, - 0x00, - 0x2D, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x39, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xA3, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x25, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x0E, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x67, - 0x00, - 0x00, - 0x4B, - 0x03, - 0xE5, - 0x31, - 0x07, - 0x45, - 0x03, - 0x26, - 0x62, - 0x1E, - 0x34, - 0x45, - 0x22, - 0x1E, - 0x35, - 0x04, - 0x00, - 0x0E, - 0x69, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x67, - 0x23, - 0x52, - 0x1E, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x58, - 0x1E, - 0x67, - 0x51, - 0x03, - 0x89, - 0x37, - 0x00, - 0x00, - 0x00, - 0x19, - 0x62, - 0x5E, - 0x1E, - 0x6E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x13, - 0x04, - 0x00, - 0x22, - 0x03, - 0x34, - 0x15, - 0x23, - 0x1D, - 0x1E, - 0x1E, - 0x62, - 0x00, - 0x1A, - 0x57, - 0x57, - 0x03, - 0x52, - 0x05, - 0xA6, - 0x03, - 0x35, - 0x45, - 0x45, - 0x46, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0xA1, - 0x03, - 0xA1, - 0x23, - 0x1D, - 0x5E, - 0x67, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0xA6, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x9C, - 0xA2, - 0x00, - 0x62, - 0x1E, - 0x34, - 0xBB, - 0x15, - 0x38, - 0x5E, - 0x87, - 0x00, - 0x00, - 0xAE, - 0x03, - 0xAF, - 0x72, - 0x23, - 0x81, - 0x03, - 0x9C, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x8F, - 0x03, - 0xA3, - 0x23, - 0x15, - 0x38, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE5, - 0x5E, - 0x13, - 0x53, - 0x45, - 0x23, - 0x22, - 0x82, - 0x03, - 0xA3, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x45, - 0xA6, - 0x13, - 0x3A, - 0x91, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xA1, - 0x03, - 0x3A, - 0xA1, - 0xE5, - 0x23, - 0x54, - 0x67, - 0x03, - 0x34, - 0x36, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x68, - 0xA3, - 0x3A, - 0x03, - 0xA4, - 0x14, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x6E, - 0x03, - 0x46, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x05, - 0x00, - 0x00, - 0x07, - 0x1D, - 0x03, - 0x5E, - 0x88, - 0x72, - 0x23, - 0xBB, - 0xA3, - 0x55, - 0x1E, - 0x45, - 0x05, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0xA1, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x52, - 0x03, - 0x03, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x23, - 0x1E, - 0x1E, - 0x5C, - 0x15, - 0x23, - 0x54, - 0x34, - 0x03, - 0x34, - 0x16, - 0x00, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0xBB, - 0xA6, - 0x82, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x25, - 0x03, - 0x55, - 0xA4, - 0x15, - 0x23, - 0x15, - 0xA4, - 0x55, - 0x03, - 0x22, - 0x07, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x68, - 0x88, - 0x03, - 0xA2, - 0x16, - 0x00, - 0x00, - 0x2E, - 0x33, - 0x3A, - 0x52, - 0x23, - 0xA4, - 0x03, - 0xA1, - 0x00, - 0x57, - 0x57, - 0x57, - 0x46, - 0x03, - 0x57, - 0x57, - 0x57, - 0x57, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x40, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x19, - 0x51, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x77, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0xE0, - 0x00, - 0x00, - 0x68, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x15, - 0x00, - 0x00, - 0x53, - 0x69, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x03, - 0x1A, - 0x00, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x23, - 0x5E, - 0x33, - 0x00, - 0x79, - 0x1E, - 0x3A, - 0x00, - 0x52, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x03, - 0xA1, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x5E, - 0x1E, - 0x3A, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xA1, - 0x03, - 0x24, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x9B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCD, - 0x1E, - 0x15, - 0x14, - 0x03, - 0x52, - 0x16, - 0xA3, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x18, - 0x00, - 0x00, - 0x4B, - 0x55, - 0x05, - 0x00, - 0x05, - 0x68, - 0x03, - 0x03, - 0x03, - 0x55, - 0x45, - 0x00, - 0x00, - 0x16, - 0x89, - 0x55, - 0x77, - 0x52, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x35, - 0x1E, - 0x77, - 0x1D, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1D, - 0xAE, - 0x26, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD8, - 0x15, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x79, - 0x00, - 0x00, - 0x39, - 0xA4, - 0x13, - 0x1E, - 0x38, - 0x22, - 0x19, - 0x00, - 0x00, - 0x65, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0xAE, - 0xCD, - 0x69, - 0x3A, - 0x35, - 0x58, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x45, - 0x38, - 0x5E, - 0x82, - 0x54, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA2, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x1E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0xB1, - 0xA4, - 0x3A, - 0x3A, - 0x88, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x65, - 0x13, - 0x1E, - 0xE0, - 0xBB, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x52, - 0x33, - 0x03, - 0xA2, - 0x41, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x15, - 0x67, - 0x3A, - 0x1E, - 0x38, - 0x25, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0xA2, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x69, - 0x34, - 0x22, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x22, - 0x34, - 0x1E, - 0x03, - 0x82, - 0xA3, - 0x26, - 0x04, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x33, - 0x35, - 0x54, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1D, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA6, - 0x7A, - 0x1E, - 0x5E, - 0x66, - 0x89, - 0x45, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x23, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x03, - 0x52, - 0x03, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x45, - 0x46, - 0x3A, - 0x03, - 0x66, - 0xA3, - 0x26, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x34, - 0xA1, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x52, - 0x67, - 0x69, - 0x03, - 0x3A, - 0x67, - 0x68, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x77, - 0x46, - 0xBB, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1D, - 0x77, - 0x55, - 0xE0, - 0x23, - 0x17, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x54, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x68, - 0xD8, - 0x80, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x21, - 0x27, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x5E, - 0x91, - 0x36, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0x67, - 0x05, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x19, - 0x25, - 0x07, - 0x80, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x82, - 0x26, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x67, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0xE0, - 0x03, - 0x62, - 0x03, - 0x52, - 0x45, - 0x13, - 0x53, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x65, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x14, - 0x0E, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x4A, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bitmap.h b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bitmap.h deleted file mode 100644 index 6cc2028b8af..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bitmap.h +++ /dev/null @@ -1,151 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_RESOURCES_BITMAP_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_RESOURCES_BITMAP_H_ - -// bitmaps id -#define arrow_left_bmp 0 -#define arrow_right_bmp 1 -#define check_bmp 2 -#define home_bmp 3 -#define information_bmp 4 -#define integrated_only_small_bmp 5 -#define keypad_large_bmp 6 -#define keypad_bmp 7 -#define key_0_bg_white_bmp 8 -#define key_00_bg_white_bmp 9 -#define key_1_bg_white_bmp 10 -#define key_2_bg_white_bmp 11 -#define key_3_bg_white_bmp 12 -#define key_4_bg_white_bmp 13 -#define key_5_bg_white_bmp 14 -#define key_6_bg_white_bmp 15 -#define key_7_bg_white_bmp 16 -#define key_8_bg_white_bmp 17 -#define key_9_bg_white_bmp 18 -#define key_cancel_bg_white_bmp 19 -#define key_clear_bg_white_bmp 20 -#define key_enter_bg_white_bmp 21 -#define logo_white_bg_white_bmp 22 -#define magstripe_large_bmp 23 -#define magstripe_bmp 24 -#define maxim_integrated_large_bmp 25 -#define maxim_logo_only_small_000_bmp 26 -#define maxim_logo_only_small_001_bmp 27 -#define maxim_logo_only_small_002_bmp 28 -#define maxim_logo_only_small_003_bmp 29 -#define maxim_logo_only_small_004_bmp 30 -#define maxim_logo_only_small_005_bmp 31 -#define maxim_logo_only_small_006_bmp 32 -#define maxim_logo_only_small_007_bmp 33 -#define maxim_logo_only_small_008_bmp 34 -#define maxim_logo_only_small_009_bmp 35 -#define maxim_logo_only_small_010_bmp 36 -#define maxim_logo_only_small_011_bmp 37 -#define maxim_logo_only_small_012_bmp 38 -#define maxim_logo_only_small_013_bmp 39 -#define maxim_logo_only_small_014_bmp 40 -#define maxim_logo_only_small_015_bmp 41 -#define maxim_logo_only_small_016_bmp 42 -#define maxim_logo_only_small_017_bmp 43 -#define maxim_logo_only_small_018_bmp 44 -#define maxim_logo_only_small_019_bmp 45 -#define maxim_logo_only_small_020_bmp 46 -#define maxim_logo_only_small_021_bmp 47 -#define maxim_logo_only_small_022_bmp 48 -#define maxim_logo_only_small_023_bmp 49 -#define maxim_logo_only_small_024_bmp 50 -#define maxim_logo_only_small_025_bmp 51 -#define maxim_logo_only_small_026_bmp 52 -#define maxim_logo_only_small_027_bmp 53 -#define maxim_logo_only_small_028_bmp 54 -#define maxim_logo_only_small_029_bmp 55 -#define maxim_logo_only_small_030_bmp 56 -#define maxim_logo_only_small_031_bmp 57 -#define maxim_logo_only_small_bmp 58 -#define medium_logo_000_bmp 59 -#define medium_logo_001_bmp 60 -#define medium_logo_002_bmp 61 -#define medium_logo_003_bmp 62 -#define medium_logo_004_bmp 63 -#define medium_logo_005_bmp 64 -#define medium_logo_006_bmp 65 -#define medium_logo_007_bmp 66 -#define medium_logo_008_bmp 67 -#define medium_logo_009_bmp 68 -#define medium_logo_010_bmp 69 -#define medium_logo_011_bmp 70 -#define medium_logo_012_bmp 71 -#define medium_logo_013_bmp 72 -#define medium_logo_014_bmp 73 -#define medium_logo_015_bmp 74 -#define medium_logo_016_bmp 75 -#define medium_logo_017_bmp 76 -#define medium_logo_018_bmp 77 -#define medium_logo_019_bmp 78 -#define medium_logo_020_bmp 79 -#define medium_logo_021_bmp 80 -#define medium_logo_022_bmp 81 -#define medium_logo_023_bmp 82 -#define medium_logo_024_bmp 83 -#define medium_logo_025_bmp 84 -#define medium_logo_026_bmp 85 -#define medium_logo_027_bmp 86 -#define medium_logo_028_bmp 87 -#define medium_logo_029_bmp 88 -#define medium_logo_030_bmp 89 -#define medium_logo_031_bmp 90 -#define medium_logo_032_bmp 91 -#define medium_logo_033_bmp 92 -#define medium_logo_034_bmp 93 -#define medium_logo_035_bmp 94 -#define nfc_large_bmp 95 -#define nfc_bmp 96 -#define slideshow_large_bmp 97 -#define slideshow_bmp 98 -#define smartcard_large_bmp 99 -#define smartcard_bmp 100 -#define mpos_bmp 101 -#define parrot_bmp 102 - -// fonts id -#define urw_gothic_12_white_bg_grey 0 -#define urw_gothic_13_grey_bg_white 1 -#define urw_gothic_16_bleu_bg_grey 2 -#define urw_gothic_16_white_bg_grey 3 - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_BAREMETAL_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/arrow-left.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/arrow-left.bmp deleted file mode 100644 index 8dabbf77a13..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/arrow-left.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/arrow-right.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/arrow-right.bmp deleted file mode 100644 index c6a795f0393..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/arrow-right.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/check.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/check.bmp deleted file mode 100644 index 92a29ff4412..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/check.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/home.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/home.bmp deleted file mode 100644 index a1d1dc036c8..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/home.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/information.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/information.bmp deleted file mode 100644 index 481d276a3e6..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/information.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/integrated-only-small.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/integrated-only-small.bmp deleted file mode 100644 index ce091ed78fb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/integrated-only-small.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_0-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_0-bg_white.bmp deleted file mode 100644 index 94112162413..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_0-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_00-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_00-bg_white.bmp deleted file mode 100644 index ed64f42e65c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_00-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_1-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_1-bg_white.bmp deleted file mode 100644 index 399bb1ca33c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_1-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_2-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_2-bg_white.bmp deleted file mode 100644 index 5c15ca628c3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_2-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_3-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_3-bg_white.bmp deleted file mode 100644 index 747e5400b51..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_3-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_4-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_4-bg_white.bmp deleted file mode 100644 index 7ee8c9f2de3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_4-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_5-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_5-bg_white.bmp deleted file mode 100644 index 5672c282701..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_5-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_6-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_6-bg_white.bmp deleted file mode 100644 index dcf162672cd..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_6-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_7-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_7-bg_white.bmp deleted file mode 100644 index a9edd0c2442..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_7-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_8-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_8-bg_white.bmp deleted file mode 100644 index 6994618efbc..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_8-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_9-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_9-bg_white.bmp deleted file mode 100644 index 82bfb850ffc..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_9-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_cancel-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_cancel-bg_white.bmp deleted file mode 100644 index 11becd098b9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_cancel-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_clear-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_clear-bg_white.bmp deleted file mode 100644 index 8fe4aed2c2f..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_clear-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_enter-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_enter-bg_white.bmp deleted file mode 100644 index aa09594dd50..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/key_enter-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/keypad-large.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/keypad-large.bmp deleted file mode 100644 index c71ce12419d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/keypad-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/keypad.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/keypad.bmp deleted file mode 100644 index d29fdbbc79f..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/keypad.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/logo_white-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/logo_white-bg_white.bmp deleted file mode 100644 index 43362ab9476..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/logo_white-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/magstripe-large.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/magstripe-large.bmp deleted file mode 100644 index 0bc833ab177..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/magstripe-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/magstripe.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/magstripe.bmp deleted file mode 100644 index 9621569071a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/magstripe.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-integrated-large.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-integrated-large.bmp deleted file mode 100644 index b8455ec9f86..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-integrated-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-000.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-000.bmp deleted file mode 100644 index 88397bdd12b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-000.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-001.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-001.bmp deleted file mode 100644 index 88397bdd12b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-001.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-002.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-002.bmp deleted file mode 100644 index 45a58713f81..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-002.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-003.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-003.bmp deleted file mode 100644 index e5733d5024a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-003.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-004.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-004.bmp deleted file mode 100644 index f89f47033d2..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-004.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-005.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-005.bmp deleted file mode 100644 index 554cffce2c0..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-005.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-006.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-006.bmp deleted file mode 100644 index f2fde0d887c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-006.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-007.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-007.bmp deleted file mode 100644 index cfbaf90fcac..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-007.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-008.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-008.bmp deleted file mode 100644 index 842a1251c89..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-008.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-009.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-009.bmp deleted file mode 100644 index 5006286d1d3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-009.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-010.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-010.bmp deleted file mode 100644 index 38c2aecbac1..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-010.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-011.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-011.bmp deleted file mode 100644 index 519616a2a40..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-011.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-012.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-012.bmp deleted file mode 100644 index a95736ffe4b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-012.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-013.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-013.bmp deleted file mode 100644 index 1158b9d5fe9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-013.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-014.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-014.bmp deleted file mode 100644 index 389df252859..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-014.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-015.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-015.bmp deleted file mode 100644 index 42cab536455..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-015.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-016.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-016.bmp deleted file mode 100644 index 42cab536455..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-016.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-017.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-017.bmp deleted file mode 100644 index 42cab536455..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-017.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-018.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-018.bmp deleted file mode 100644 index 389df252859..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-018.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-019.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-019.bmp deleted file mode 100644 index 1158b9d5fe9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-019.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-020.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-020.bmp deleted file mode 100644 index a95736ffe4b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-020.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-021.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-021.bmp deleted file mode 100644 index 519616a2a40..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-021.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-022.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-022.bmp deleted file mode 100644 index 38c2aecbac1..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-022.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-023.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-023.bmp deleted file mode 100644 index 5006286d1d3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-023.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-024.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-024.bmp deleted file mode 100644 index 842a1251c89..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-024.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-025.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-025.bmp deleted file mode 100644 index cfbaf90fcac..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-025.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-026.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-026.bmp deleted file mode 100644 index f2fde0d887c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-026.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-027.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-027.bmp deleted file mode 100644 index 554cffce2c0..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-027.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-028.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-028.bmp deleted file mode 100644 index f89f47033d2..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-028.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-029.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-029.bmp deleted file mode 100644 index e5733d5024a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-029.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-030.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-030.bmp deleted file mode 100644 index 45a58713f81..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-030.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-031.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-031.bmp deleted file mode 100644 index 88397bdd12b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small-031.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small.bmp deleted file mode 100644 index 609c71fac5e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/maxim-logo-only-small.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-000.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-000.bmp deleted file mode 100644 index aba0232ed4d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-000.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-001.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-001.bmp deleted file mode 100644 index e788197b8ea..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-001.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-002.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-002.bmp deleted file mode 100644 index 5210a096dae..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-002.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-003.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-003.bmp deleted file mode 100644 index f263afd1398..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-003.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-004.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-004.bmp deleted file mode 100644 index 73a4f821bdb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-004.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-005.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-005.bmp deleted file mode 100644 index b88c4a21e5e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-005.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-006.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-006.bmp deleted file mode 100644 index 077a0aed8df..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-006.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-007.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-007.bmp deleted file mode 100644 index 8e84d4fe492..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-007.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-008.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-008.bmp deleted file mode 100644 index a58c831a639..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-008.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-009.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-009.bmp deleted file mode 100644 index 000fa364bcf..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-009.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-010.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-010.bmp deleted file mode 100644 index 632b469c7a9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-010.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-011.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-011.bmp deleted file mode 100644 index df943505e10..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-011.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-012.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-012.bmp deleted file mode 100644 index d8ab0309254..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-012.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-013.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-013.bmp deleted file mode 100644 index 9b968c122d7..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-013.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-014.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-014.bmp deleted file mode 100644 index fa9f81498f8..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-014.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-015.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-015.bmp deleted file mode 100644 index 4bf3908aecb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-015.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-016.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-016.bmp deleted file mode 100644 index 3b2929bd4fe..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-016.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-017.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-017.bmp deleted file mode 100644 index 69763a2127d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-017.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-018.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-018.bmp deleted file mode 100644 index dabd403fb05..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-018.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-019.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-019.bmp deleted file mode 100644 index 69763a2127d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-019.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-020.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-020.bmp deleted file mode 100644 index 3b2929bd4fe..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-020.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-021.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-021.bmp deleted file mode 100644 index 4bf3908aecb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-021.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-022.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-022.bmp deleted file mode 100644 index fa9f81498f8..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-022.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-023.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-023.bmp deleted file mode 100644 index 9b968c122d7..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-023.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-024.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-024.bmp deleted file mode 100644 index d8ab0309254..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-024.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-025.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-025.bmp deleted file mode 100644 index df943505e10..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-025.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-026.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-026.bmp deleted file mode 100644 index 632b469c7a9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-026.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-027.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-027.bmp deleted file mode 100644 index 000fa364bcf..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-027.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-028.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-028.bmp deleted file mode 100644 index a58c831a639..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-028.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-029.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-029.bmp deleted file mode 100644 index 8e84d4fe492..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-029.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-030.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-030.bmp deleted file mode 100644 index 077a0aed8df..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-030.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-031.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-031.bmp deleted file mode 100644 index b88c4a21e5e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-031.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-032.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-032.bmp deleted file mode 100644 index 73a4f821bdb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-032.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-033.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-033.bmp deleted file mode 100644 index f263afd1398..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-033.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-034.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-034.bmp deleted file mode 100644 index 5210a096dae..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-034.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-035.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-035.bmp deleted file mode 100644 index e788197b8ea..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/medium-logo-035.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/nfc-large.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/nfc-large.bmp deleted file mode 100644 index 096a5f4f76b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/nfc-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/nfc.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/nfc.bmp deleted file mode 100644 index 0a64d7a376b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/nfc.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/slideshow-large.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/slideshow-large.bmp deleted file mode 100644 index 3be008b4db6..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/slideshow-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/slideshow.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/slideshow.bmp deleted file mode 100644 index 4201b3cff2b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/slideshow.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/smartcard-large.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/smartcard-large.bmp deleted file mode 100644 index db3389a5d83..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/smartcard-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/smartcard.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/smartcard.bmp deleted file mode 100644 index 6780a837b48..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_rle/smartcard.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_slides/mpos.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_slides/mpos.bmp deleted file mode 100644 index 11983171e7e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_slides/mpos.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_slides/parrot.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_slides/parrot.bmp deleted file mode 100644 index e946a206329..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/bmp_slides/parrot.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_12-white_bg-grey.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_12-white_bg-grey.bmp deleted file mode 100644 index 83a10d4604a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_12-white_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_12-white_bg-grey.mff b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_12-white_bg-grey.mff deleted file mode 100644 index e50ef9bf446..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_12-white_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_13-grey_bg-white.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_13-grey_bg-white.bmp deleted file mode 100644 index 9030c466136..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_13-grey_bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_13-grey_bg-white.mff b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_13-grey_bg-white.mff deleted file mode 100644 index d854b3a9fe5..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_13-grey_bg-white.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-bleu_bg-grey.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-bleu_bg-grey.bmp deleted file mode 100644 index 18c544b4804..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-bleu_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-bleu_bg-grey.mff b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-bleu_bg-grey.mff deleted file mode 100644 index 58f915fabec..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-bleu_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-white_bg-grey.bmp b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-white_bg-grey.bmp deleted file mode 100644 index 2d4f9653c35..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-white_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-white_bg-grey.mff b/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-white_bg-grey.mff deleted file mode 100644 index 58f915fabec..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_BareMetal/resources/fonts/urw_gothic_16-white_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/ST8034.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/ST8034.c deleted file mode 100644 index 8b6b5c177ff..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/ST8034.c +++ /dev/null @@ -1,536 +0,0 @@ -/* - * ST8034.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include -#include "mxc_device.h" -#include "mxc_delay.h" -#include "sc.h" -#include "gpio.h" - -#include "MAX325xx_bypass_afe.h" -#include "sc_errors.h" -#include "sc_states.h" -#include "sc_config.h" -#include "sc_regs.h" -#include "iccabstract.h" -#include "OSWrapper.h" -#include "MAX325xx_afe.h" -#include "MAX325xx_afe_private.h" -#include "MAX325xx_uart.h" -#include "MAX325xx_uart_private.h" -#include "slot.h" - -#include "demo_config.h" - -/**** NOTE: this AFE driver is intented to be connected on bypass mode ****/ -extern mxc_sc_context_t sc_context; - -#define MAX325XX_EVKIT_EXT_AFE_PORT (MXC_GPIO0) /* Port 0 */ - -#define MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN (MXC_GPIO_PIN_21) /* CMDVCC pin mask */ -#define MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS (21) /* CMDVCC pin pos */ -#define MAX325XX_EVKIT_EXT_AFE_OFF_PIN (MXC_GPIO_PIN_23) /* OFF pin mask */ -#define MAX325XX_EVKIT_EXT_AFE_OFF_POS (23) /* OFF pin pos */ -#define MAX325XX_EVKIT_EXT_AFE_5V3V_PIN (MXC_GPIO_PIN_22) /* 5V3V pin mask */ -#define MAX325XX_EVKIT_EXT_AFE_5V3V_POS (22) /* 5V3V pin pos */ - -#define MAX325XX_EVKIT_EXT_AFE_OFFLINE (1) /* when CMDVCC = 1, SAM is off */ -#define MAX325XX_EVKIT_EXT_AFE_CARD_ABSENT (0) /* OFF pin is low when no card */ - -#define ST8034_NOT_SELECTED (0) -#define ST8034_SELECTED (1) - -#if SMARTCARD_EXT_AFE_Voltage == SMARTCARD_EXT_AFE_5V -#define MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE (1) // Means configure sc gpio to 5V -#else -#define MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE (0) // Means configure sc gpio to 3V -#endif - -static IccVoltage_t icc_voltage = VCC_5V; - -IccReturn_t bypassSelect(SlotContext_t *SlotCtx, boolean_t Selected) -{ - //uint32_t ChipSelect = ST8034_NOT_SELECTED; - SCControl_t sccr = { .word = 0 }; /* control register value */ - UartState_t *UartState = NULL; - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == UartState->UartAddress)) { - return ICC_ERR_NULL_PTR; - } - - /* check if the requested slot is available on our target */ - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - sccr.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR; - -#if !defined(__MAX32590) && !defined(__MAX32591) && !defined(__MAX32565) && !defined(__MAX32572) -#if defined(__MAX32510) - /* Always select bypass AFE, since there is no internal. - * Otherwise, clock is getting lost after RX and Test Suite fails. - */ - sccr.bits.BYP_PHY = 1; -#else - if (bTRUE == Selected) { - //ChipSelect = ST8034_SELECTED; - sccr.bits.BYP_PHY = 1; - } else { - //ChipSelect = ST8034_NOT_SELECTED; - sccr.bits.BYP_PHY = 0; - } -#endif -#endif - sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR = sccr.word; - MXC_Delay(2); - - UartState->ActiveSlot = SlotCtx->SlotId; - - return ICC_OK; -} - -IccReturn_t bypassSetVoltage(SlotContext_t *SlotCtx, IccVoltage_t Voltage) -{ - uint32_t CurrentVoltage = 0; - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - /* check if the card is already powered */ - CurrentVoltage = - MXC_GPIO_OutGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN) >> - MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS; - - if (MAX325XX_EVKIT_EXT_AFE_OFFLINE != CurrentVoltage) { - /* if the card is already powered, we cannot change the voltage ! */ - return ICC_ERR_POWERED; - } - - switch (Voltage) { - case VCC_5V: - case VCC_3V: - case VCC_1V8: - icc_voltage = Voltage; - break; - - default: - return ICC_ERR_BAD_PARAMETER; - } - - return ICC_OK; -} - -IccReturn_t bypassApplyVoltage(SlotContext_t *SlotCtx) -{ - uint32_t CurrentVoltage = 0; - - if (NULL == SlotCtx) - return ICC_ERR_NULL_PTR; - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) - return ICC_ERR_BAD_SLOT; - - /* check if the card is already powered */ - CurrentVoltage = - MXC_GPIO_OutGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN) >> - MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS; - - if (MAX325XX_EVKIT_EXT_AFE_OFFLINE != CurrentVoltage) { - /* if the card is already powered, we cannot change the voltage ! */ - return ICC_ERR_POWERED; - } - - switch (icc_voltage) { - case VCC_5V: - case VCC_3V: - case VCC_1V8: - CurrentVoltage = 0; - break; - - default: - return ICC_ERR_BAD_PARAMETER; - } - - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN, - (CurrentVoltage << MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS)); - //MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_OFF_PIN, (0 << MAX325XX_EVKIT_EXT_AFE_OFF_POS)); - - return ICC_OK; -} - -IccReturn_t bypassPower(SlotContext_t *SlotCtx, CardPowerState_t PowerUp) -{ - IccReturn_t retval = ICC_OK; - SCPin_t scpin = { .word = 0 }; - UartData_t *UartData = NULL; - UartState_t *UartState = NULL; - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - UartData = SlotCtx->UartData; - if (NULL == UartData) { - return ICC_ERR_NULL_PTR; - } - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == UartState->UartAddress)) { - return ICC_ERR_NULL_PTR; - } - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - switch (PowerUp) { - case POWER_DOWN: - scpin.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN; - scpin.bits.CRDRST = RESET_ACTIVE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - - /* - * wait CWT to help the test tool - * (if we deactivate too fast, the Lab test tool crashes) - */ - IccWait(SlotCtx, SlotCtx->IccProtocolConfig.IccCharWaitingTime); - - /* set CMDVCC input to be high to keep card power down */ - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN, - (MAX325XX_EVKIT_EXT_AFE_OFFLINE << MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS)); - break; - - case POWER_UP: - /* - * here we do not set the isPowering flag, - * this will be done when we release the RST signal - */ - retval = bypassApplyVoltage(SlotCtx); - if (ICC_OK != retval) { - return retval; - } - break; - - case RESET_DO: - scpin.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN; - scpin.bits.CRDRST = RESET_ACTIVE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - break; - - case RESET_RELEASE: - /* Set the Powering bit - * this will indicates to the UART driver that the next - * data are the ATR - */ - SlotCtx->isPoweringUp = bTRUE; - - scpin.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN; - scpin.bits.CRDRST = !RESET_ACTIVE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - break; - - default: - return ICC_ERR_BAD_PARAMETER; - } - - return ICC_OK; -} - -/** @fn teridian_73S8009rInterrupt_Handler - * @brief Manage PHY Interrupts - * - */ -void bypassInterrupt_Handler(void *param) -{ - (void)(param); - return; -} - -/** @fn AfeEnable IRQ - * @brief enable or disable AFE interrupts - * @param [in] SlotId slot number, cf #MAX325xxSlots_t - * - * @return return an #IccReturn_t error code - * @retval ICC_OK if the AFE is now selected (enabled) - * - */ -IccReturn_t bypassEnableIrq(SlotContext_t *SlotCtx, int32_t enable) -{ - (void)enable; - - UartState_t *UartState = NULL; - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == (void *)UartState->UartAddress) || (NULL == SlotCtx) || - (NULL == SlotCtx->UartData)) { - return ICC_ERR_NULL_PTR; - } - - return ICC_OK; -} - -/** @fn teridian_73S8009rGetCardStatus - * @brief Return the slot state - * @param [in] SlotCtx AFE slot configuration context pointer (cf #SlotContext_t) - * - * @return return an #IccReturn_t error code - * @retval ICC_OK if the card is inserted and powered. - * @retval ICC_ERR_REMOVED if the card is not present. - * @retval ICC_ERR_PRESENT_INACTIVE if the card is present but not powered. - * - */ -IccReturn_t bypassGetCardStatus(SlotContext_t *SlotCtx) -{ - uint32_t PinValue = 0; - - if (NULL == SlotCtx) - return ICC_ERR_NULL_PTR; - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - // Read OFF PIN - PinValue = MXC_GPIO_InGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_OFF_PIN) >> - MAX325XX_EVKIT_EXT_AFE_OFF_POS; - - /* Is a card present in the slot ? */ - if (MAX325XX_EVKIT_EXT_AFE_CARD_ABSENT == PinValue) { - return ICC_ERR_REMOVED; - } - - /* check if the card is powered */ - PinValue = MXC_GPIO_OutGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN) >> - MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS; - - /* SAM present but not powered */ - if (MAX325XX_EVKIT_EXT_AFE_OFFLINE == PinValue) { - return ICC_ERR_PRESENT_INACTIVE; - } - - /* SAM present and powered */ - return ICC_OK; -} - -/** @var bypass_AfeOps - * @brief Analog Front End supported operations - */ -static const SlotOps_t bypass_AfeOps = { - .select = bypassSelect, - .setvoltage = bypassSetVoltage, - .power = bypassPower, - .getcardstatus = bypassGetCardStatus, - .enableinterrupt = bypassEnableIrq, -}; - -/** @fn teridian_73S8009rInit - * @brief Initialize the Analog Front End for the SAM slot - * - * @return return an #IccReturn_t error code - * @retval ICC_OK if the AFE is now selected (enabled) - * - * @note The AFE init must be done *AFTER* the UART init. - * @note As this driver is only for bare-metal, we can directly access to - * the GPIOs to configure/drive/ - */ -IccReturn_t bypassInit(UartId_t UartId, MAX325xxSlots_t SlotId) -{ - SlotContext_t *SlotCtx = NULL; - SCPin_t scpin = { .word = 0 }; - SCControl_t sccr = { .word = 0 }; - mxc_gpio_cfg_t config; - UartState_t *UartState = NULL; - - if (UartId >= MAX325xx_INTERFACE_NUMBER) { - return ICC_ERR_BAD_INTERFACE; - } - - if ((SlotId != SCI_0_BYPASS_SLOT) && (SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - SlotCtx = IccRegisterAfe(SlotId, UartId, (SlotOps_t *)&bypass_AfeOps, NULL); - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == UartState->UartAddress)) { - return ICC_ERR_NULL_PTR; - } - - /* set the DUAL MODE bit and select the on-chip PHY*/ - sccr.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR; -#if !defined(__MAX32590) && !defined(__MAX32591) && !defined(__MAX32565) && !defined(__MAX32572) - sccr.bits.DUAL_MODE = 1; - sccr.bits.BYP_PHY = 1; -#endif - sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR = sccr.word; - MXC_Delay(2); - - scpin.bits.CLKSEL = bTRUE; - scpin.bits.CRDC4 = bTRUE; - scpin.bits.CRDC8 = bTRUE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - - /* Initialize CMDVCC */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_OUT; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* deactivate the card */ - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN, - (MAX325XX_EVKIT_EXT_AFE_OFFLINE << MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS)); - - /* Initialize OFF */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_OFF_PIN; - config.pad = MXC_GPIO_PAD_PULL_UP; - config.func = MXC_GPIO_FUNC_IN; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* Configure GPIO pin corresponding to the correct smart card interfaces(SC0 or SC1) */ - switch (UartId) { - case SCI_0: - /* Initialize GPIOs */ - /* Out - SC UART GPIOs ***************************************************/ - /* RST */ - config.port = MAX325xx_SC0_BYP_RST_PORT; - config.mask = MAX325xx_SC0_BYP_RST; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* CLK */ - config.port = MAX325xx_SC0_BYP_CLK_PORT; - config.mask = MAX325xx_SC0_BYP_CLK; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* In - SC UART GPIOs ***************************************************/ - /* IO */ - config.port = MAX325xx_SC0_BYP_IO_PORT; - config.mask = MAX325xx_SC0_BYP_IO; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* 5V3V_PIN */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_5V3V_PIN; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_OUT; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_5V3V_PIN, - (MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE << MAX325XX_EVKIT_EXT_AFE_5V3V_POS)); - break; -#if defined(__MAX32552) || defined(__MAX32560) || defined(__MAX32565) || defined(__MAX32572) - case SCI_1: - /* Initialize GPIOs */ - /* Out - SC UART GPIOs ***************************************************/ - /* RST */ - config.port = MAX325xx_SC1_BYP_RST_PORT; - config.mask = MAX325xx_SC1_BYP_RST; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* CLK */ - config.port = MAX325xx_SC1_BYP_CLK_PORT; - config.mask = MAX325xx_SC1_BYP_CLK; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* In - SC UART GPIOs ***************************************************/ - /* IO */ - config.port = MAX325xx_SC1_BYP_IO_PORT; - config.mask = MAX325xx_SC1_BYP_IO; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* 5V3V_PIN */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_5V3V_PIN; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_OUT; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_5V3V_PIN, - (MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE << MAX325XX_EVKIT_EXT_AFE_5V3V_POS)); -#endif - } - - SlotCtx->isCardInserted = bTRUE; - - /* Enable AFE interrupt */ - bypassEnableIrq(SlotCtx, bTRUE); - - return ICC_OK; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/keypad.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/keypad.c deleted file mode 100644 index bc7a10beaae..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/keypad.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * @file keypad.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include - -#include "MAX32xxx.h" -#include "keypad.h" - -/********************************* Variables **************************/ -static volatile int is_pressed = 0; - -/* keys mapping on the keyboard */ -static unsigned char keyboard_map[16] = { KEY_F, KEY_E, KEY_D, KEY_C, KEY_3, KEY_6, KEY_9, KEY_B, - KEY_2, KEY_5, KEY_8, KEY_0, KEY_1, KEY_4, KEY_7, KEY_A }; - -/********************************* Static Functions **************************/ -static void keypadHandler(void) -{ - unsigned int status; - - MXC_SKBD_InterruptStatus(&status); - - if (MXC_F_SKBD_ISR_OVERIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_OVERIS); - } - if (MXC_F_SKBD_ISR_PUSHIS & status) { - is_pressed = 1; - /* Clear interruption */ - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_PUSHIS); - } - if (MXC_F_SKBD_ISR_RELEASEIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_RELEASEIS); - } - - return; -} - -/********************************* Public Functions *************************/ -int keypad_init(void) -{ - int rv = 0; - mxc_skbd_config_t skb_cfg; - - skb_cfg.inputs = MXC_SKBD_KBDIO4 | MXC_SKBD_KBDIO5 | MXC_SKBD_KBDIO6 | MXC_SKBD_KBDIO7; - skb_cfg.outputs = MXC_SKBD_KBDIO0 | MXC_SKBD_KBDIO1 | MXC_SKBD_KBDIO2 | MXC_SKBD_KBDIO3; - skb_cfg.debounce = MXC_V_SKBD_CR1_DBTM_TIME10MS; - skb_cfg.ioselect = 0; - skb_cfg.irq_handler = (irq_handler_t)keypadHandler; - skb_cfg.reg_erase = 1; - - MXC_SKBD_PreInit(); - - rv = MXC_SKBD_Init(skb_cfg); - if (rv) { - return E_UNINITIALIZED; - } - - rv = MXC_SKBD_EnableInterruptEvents(MXC_SKBD_INTERRUPT_STATUS_PUSHIS); - if (rv) { - return E_UNINITIALIZED; - } - - return 0; -} - -int keypad_getkey(void) -{ - volatile unsigned int in; - volatile unsigned int out; - volatile unsigned int i; - uint16_t *key; - mxc_skbd_keys_t keys = { 0, 0, 0, 0 }; - int pressed_key = 0; - - if (is_pressed == 1) { - MXC_SKBD_ReadKeys(&keys); - key = &keys.key0; - for (i = 0; i < 4; i++) { - in = 0x0f & *key; - out = (0xf0 & *key) >> 4; - if (*key) { - pressed_key = keyboard_map[(in - 4) * 4 + out]; - } - *key = 0; - key++; - } - is_pressed = 0; - } - - return pressed_key; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/msr/msr_sdma.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/msr/msr_sdma.c deleted file mode 100644 index 1cc4da0a080..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/msr/msr_sdma.c +++ /dev/null @@ -1,764 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".msr_sdma_code"))) volatile unsigned char msr_sdma_code[] = { - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x08, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x0B, 0x00, 0x0B, 0x11, 0x0B, 0x9F, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x0B, 0x00, 0x0B, 0x11, 0x0B, 0xA8, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x0B, 0x00, 0x0B, 0xA0, 0x0B, 0x00, 0x1D, 0x07, 0xD8, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, - 0x43, 0x3F, 0x64, 0x0B, 0x61, 0x6D, 0x01, 0x7D, 0x00, 0x1F, 0xFE, 0x4D, 0xFD, 0x5D, 0x20, 0x0B, - 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x3F, 0x04, 0x0B, 0x94, 0x6D, 0x01, 0x7D, 0x00, 0x1F, 0xFE, 0x4D, - 0xFD, 0x5D, 0x07, 0x08, 0x88, 0xF9, 0x02, 0x0B, 0x00, 0x2A, 0x00, 0x2B, 0x79, 0x88, 0x00, 0x18, - 0x00, 0x30, 0xB7, 0x0B, 0x1B, 0x00, 0x02, 0x0B, 0x06, 0x20, 0x10, 0x0B, 0x00, 0x0B, 0x01, 0x6B, - 0x08, 0x01, 0x00, 0x6B, 0x20, 0x11, 0x00, 0x6B, 0x01, 0x21, 0x87, 0xD8, 0x2C, 0x0C, 0x21, 0x02, - 0x79, 0x92, 0x69, 0xA2, 0x3A, 0xDA, 0x32, 0xF9, 0x0D, 0x8C, 0x79, 0x8D, 0x40, 0x0B, 0x04, 0x0B, - 0x20, 0x0B, 0x08, 0x3F, 0x9F, 0xF7, 0xFA, 0x2C, 0x40, 0x0B, 0x04, 0x0B, 0x20, 0x0B, 0x1C, 0x3F, - 0x0D, 0x8F, 0x0D, 0x8C, 0x0F, 0x8A, 0x0D, 0x8C, 0x8F, 0x8A, 0x0D, 0x8C, 0x9F, 0x8A, 0x0D, 0x8C, - 0x18, 0x8D, 0x07, 0x18, 0x6F, 0x8A, 0x00, 0x18, 0x6F, 0x8A, 0x0D, 0x98, 0x0D, 0x8C, 0x07, 0xD8, - 0x0D, 0x8C, 0x87, 0xD8, 0x0D, 0x8C, 0x01, 0x60, 0x0D, 0x8C, 0x01, 0x2B, 0x00, 0x50, 0x0D, 0x8C, - 0x00, 0x2B, 0x87, 0xD0, 0x0D, 0x8C, 0x0D, 0x3D, 0xF6, 0x3D, 0x09, 0x0C, 0x10, 0x0B, 0x00, 0x0B, - 0x14, 0x0B, 0xDD, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x8A, 0x3D, 0xEC, 0x3D, 0xF6, 0x0C, - 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x98, 0x79, 0x79, 0xA9, - 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x3F, 0x01, 0x0B, 0x00, 0x0B, 0x01, 0x6F, 0x20, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x04, 0x3F, 0xFF, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x08, 0x3F, - 0x6F, 0xF9, 0x8F, 0x0B, 0x0D, 0x0B, 0x18, 0x69, 0xAA, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x24, 0x3F, 0x79, 0xEF, 0x08, 0x79, 0x02, 0x78, 0x0A, 0x3C, 0x08, 0x78, 0x0A, 0x3C, 0x20, 0x78, - 0x0A, 0x3C, 0x80, 0x78, 0x0A, 0x3C, 0x02, 0x0B, 0x00, 0x78, 0x09, 0x3C, 0x02, 0x0C, 0x01, 0x39, - 0x08, 0x0C, 0x02, 0x39, 0x06, 0x0C, 0x03, 0x39, 0x04, 0x0C, 0x04, 0x39, 0x02, 0x0C, 0x05, 0x39, - 0x00, 0x0C, 0x39, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, 0x48, 0x3D, 0x29, 0x8E, 0x07, 0x3E, - 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x79, 0xB9, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x06, 0x3E, - 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, - 0x05, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, - 0x29, 0x8E, 0x04, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, - 0x2A, 0x8A, 0x29, 0x8E, 0x03, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, - 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, - 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x01, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, - 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0xBF, 0x1F, 0xF9, 0x30, 0x5A, 0x03, 0x1A, - 0x03, 0x08, 0x79, 0xAA, 0x6A, 0x8A, 0x6A, 0x8A, 0x0B, 0x2A, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, - 0x00, 0x3F, 0x39, 0xEF, 0x05, 0x79, 0x03, 0x78, 0x0F, 0x3C, 0x04, 0x78, 0x11, 0x3C, 0x05, 0x78, - 0x0D, 0x3C, 0x08, 0x78, 0x0F, 0x3C, 0x10, 0x78, 0x0F, 0x3C, 0x20, 0x78, 0x0F, 0x3C, 0x40, 0x78, - 0x0F, 0x3C, 0x80, 0x78, 0x0F, 0x3C, 0x00, 0x0C, 0x00, 0x39, 0x0E, 0x0C, 0x01, 0x39, 0x0C, 0x0C, - 0x02, 0x39, 0x0A, 0x0C, 0x03, 0x39, 0x08, 0x0C, 0x04, 0x39, 0x06, 0x0C, 0x05, 0x39, 0x04, 0x0C, - 0x06, 0x39, 0x02, 0x0C, 0x07, 0x39, 0x00, 0x0C, 0x39, 0xF9, 0x6A, 0x8A, 0x6A, 0x8A, 0x07, 0x0B, - 0x00, 0x1A, 0x70, 0x4A, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x79, 0xEF, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x2B, 0x00, 0x0A, - 0x79, 0xFF, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x07, 0x2A, 0x79, 0xFF, - 0x40, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x00, 0x3F, 0x01, 0x6F, 0x40, 0x0B, 0x00, 0x0B, 0x04, 0x0B, - 0x28, 0x3F, 0x9F, 0xF9, 0x15, 0x0B, 0x00, 0x0B, 0x00, 0x2A, 0x79, 0xFF, 0x40, 0x0B, 0x00, 0x0B, - 0x0C, 0x0B, 0x00, 0x3F, 0x00, 0x6F, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, - 0x19, 0x8D, 0x79, 0xA9, 0x69, 0xB9, 0x29, 0xF9, 0x00, 0x69, 0x01, 0x0B, 0x68, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0xBF, 0x6F, 0xF9, 0x29, 0xBF, 0x79, 0xEF, 0x39, 0x8E, - 0x01, 0x3E, 0x6E, 0xF9, 0x29, 0x8E, 0x01, 0x3E, 0x79, 0xEE, 0x39, 0x8E, 0x02, 0x3E, 0x6E, 0xF9, - 0x29, 0x8E, 0x4B, 0x3E, 0x79, 0xEE, 0x39, 0x8E, 0x03, 0x3E, 0x6E, 0xF9, 0x29, 0x8E, 0x4C, 0x3E, - 0x79, 0xEE, 0x00, 0x19, 0x19, 0xF9, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x08, 0x3E, 0x4E, 0xF9, - 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, 0xA8, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, - 0x39, 0xCA, 0x79, 0x8E, 0x0C, 0x3E, 0x4E, 0xF9, 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, - 0x8C, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x10, 0x3E, 0x4E, 0xF9, - 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, 0x90, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, - 0x39, 0xCA, 0x79, 0x8E, 0x14, 0x3E, 0x4E, 0xF9, 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, - 0xAC, 0x3E, 0x79, 0xCE, 0x01, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0xCC, 0x4C, 0x04, 0x5A, 0xCA, 0x2C, - 0x39, 0x8E, 0x1D, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0x8A, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1D, 0x3E, - 0x4E, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x08, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, - 0x9E, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1D, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xCA, - 0x79, 0x8E, 0x0C, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0x89, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1C, 0x3E, - 0x4E, 0xF9, 0x29, 0x8E, 0x8B, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x18, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, - 0xB0, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x19, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0xB1, 0x3E, 0x79, 0xCE, - 0x39, 0x8E, 0x1A, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0xB2, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1B, 0x3E, - 0x4E, 0xF9, 0x29, 0x8E, 0xB3, 0x3E, 0x79, 0xCE, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, - 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x74, 0x79, 0x20, 0x0B, 0x00, 0x0B, 0x2D, 0x0B, 0xC4, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x95, 0x0B, 0x0C, 0x79, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x00, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, - 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x79, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x3C, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, 0x0D, 0x8C, 0x00, 0x0D, 0x00, 0x0D, 0x00, 0x0D, - 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, - 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x00, 0x2B, 0x79, 0xA9, 0x1D, 0x8E, 0x0D, 0x3E, 0x69, 0xEE, - 0x0C, 0x3E, 0x59, 0xEE, 0x0B, 0x3E, 0x49, 0xEE, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x79, 0x79, 0x89, - 0x79, 0x99, 0x00, 0x2B, 0x00, 0x39, 0x00, 0x79, 0x00, 0x2B, 0x79, 0xE9, 0x00, 0x2B, 0x00, 0x59, - 0x00, 0x29, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0xD9, 0x0C, 0x29, 0xF9, 0x3A, 0x8A, 0xA9, 0xCA, - 0x79, 0xBF, 0x6F, 0xF9, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x3A, 0x8A, 0xA9, 0xCA, - 0x79, 0xBF, 0x6F, 0xF9, 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, 0x79, 0xB9, 0x0E, 0x08, 0x07, 0x5C, - 0x39, 0xF9, 0x26, 0x0B, 0x6D, 0x5A, 0x03, 0x2C, 0x00, 0x2B, 0x01, 0x69, 0x39, 0x99, 0x0B, 0x08, - 0x09, 0x5C, 0x0E, 0x08, 0x07, 0x1C, 0x39, 0xF9, 0x29, 0x0B, 0x8D, 0x5A, 0x03, 0x6C, 0x00, 0x2B, - 0x01, 0x39, 0x39, 0x89, 0x0E, 0x08, 0x7B, 0x1C, 0x0B, 0x08, 0x79, 0x1C, 0x02, 0x08, 0x77, 0x1C, - 0x29, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xE9, 0x01, 0x5A, 0x07, 0x08, 0x69, 0xDA, 0x6F, 0x6C, - 0x19, 0xF9, 0x09, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x1D, 0x8E, 0x0C, 0x3E, - 0x6E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0xEA, 0x8A, - 0xFA, 0x8A, 0x00, 0x2B, 0x79, 0x99, 0x39, 0xF9, 0x29, 0xE9, 0x3A, 0x8A, 0xA9, 0xCA, 0xFF, 0x0B, - 0xFF, 0x0B, 0xFF, 0x0B, 0xFC, 0x4A, 0x69, 0xBF, 0x6F, 0xE9, 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x07, 0x08, 0x99, 0xDA, - 0x13, 0x2C, 0x39, 0xF9, 0x29, 0xE9, 0x3A, 0x8A, 0xA9, 0xCA, 0x69, 0x8E, 0x01, 0x3E, 0x6E, 0xE9, - 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xB9, 0x3D, 0x07, 0x08, 0x99, 0xDA, 0x03, 0x6C, 0x0F, 0x08, 0xC9, 0xCA, 0x30, 0x0C, 0x19, 0xF9, - 0x09, 0xCA, 0xAA, 0x8A, 0x39, 0xDA, 0x16, 0x6C, 0x19, 0xF9, 0x39, 0xCA, 0xAA, 0x8A, 0x79, 0x99, - 0xC9, 0xF9, 0xF9, 0xCA, 0xD9, 0xD9, 0x59, 0xE9, 0x05, 0x08, 0x01, 0x4A, 0x00, 0x2B, 0x59, 0xD9, - 0x06, 0x08, 0x3A, 0x8A, 0x1D, 0x8E, 0x0B, 0x3E, 0xAE, 0xCA, 0x69, 0xBF, 0x79, 0xEF, 0x00, 0x2B, - 0x00, 0x79, 0x15, 0x0C, 0x09, 0xF9, 0x39, 0xCA, 0xAA, 0x8A, 0x79, 0x89, 0xC9, 0xF9, 0xF9, 0xCA, - 0xD9, 0xD9, 0x59, 0xE9, 0x05, 0x08, 0x01, 0x4A, 0x00, 0x2B, 0x59, 0xD9, 0x06, 0x08, 0x3A, 0x8A, - 0x1D, 0x8E, 0x0B, 0x3E, 0xAE, 0xCA, 0x69, 0xBF, 0x79, 0xEF, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x08, - 0x01, 0x4A, 0x29, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, - 0x35, 0x2C, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xBF, 0xD9, 0xEF, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, - 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, - 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0xA8, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, - 0xE9, 0x8D, 0x1D, 0x8E, 0x07, 0x3E, 0x6E, 0x89, 0x04, 0x08, 0x2F, 0x5C, 0x00, 0x2B, 0x59, 0xF9, - 0xAA, 0x8A, 0xEA, 0x8A, 0xF9, 0x99, 0x00, 0x2B, 0x79, 0xF9, 0x19, 0xCA, 0xF9, 0x8E, 0x01, 0x3E, - 0x00, 0x2B, 0x1E, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x6A, 0x8A, 0x6A, 0x8A, 0x00, 0x2B, 0x79, 0xE9, - 0x19, 0xCA, 0xE9, 0xBF, 0x00, 0x2B, 0x1F, 0xE9, 0xF9, 0xCA, 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, - 0x59, 0xF9, 0x07, 0x1A, 0x00, 0x2B, 0x39, 0xE9, 0x4A, 0xCA, 0x0F, 0x08, 0x04, 0x1C, 0xF9, 0xED, - 0x0E, 0x08, 0xFA, 0x8A, 0xFD, 0x4D, 0x0E, 0x08, 0xFF, 0x1A, 0x09, 0x9A, 0xFF, 0x1A, 0xFF, 0x1A, - 0xE9, 0xA9, 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xD7, 0x0C, 0x00, 0x2B, 0x69, 0xF9, 0x59, 0xDA, - 0xAA, 0x8A, 0xEA, 0x8A, 0xF9, 0x99, 0x00, 0x2B, 0x79, 0xF9, 0x19, 0xCA, 0xF9, 0xBF, 0x00, 0x2B, - 0x1F, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x6A, 0x8A, 0x6A, 0x8A, 0x00, 0x2B, 0x79, 0xE9, 0x19, 0xCA, - 0xFF, 0x0B, 0xFF, 0x0B, 0xFF, 0x0B, 0xFF, 0x4A, 0xE9, 0xBF, 0x00, 0x2B, 0x1F, 0xE9, 0xF9, 0xCA, - 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, 0x69, 0xF9, 0x59, 0xDA, 0x07, 0x1A, 0x01, 0x4A, 0x00, 0x2B, - 0x39, 0xE9, 0x4A, 0xCA, 0x0F, 0x08, 0x04, 0x1C, 0xF9, 0xED, 0x0E, 0x08, 0xFA, 0x8A, 0xFD, 0x4D, - 0x0E, 0x08, 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xF7, 0x03, 0x2C, - 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, 0xF9, 0xA9, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xE7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xD7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x3A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xC7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x3A, 0x8A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, - 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xB7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, - 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, - 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xA7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, - 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, - 0x00, 0x2B, 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0x97, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, - 0x00, 0x2B, 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x3A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, - 0xFF, 0x1A, 0x00, 0x2B, 0x29, 0xF9, 0x09, 0x9A, 0xFF, 0x1A, 0xFF, 0x1A, 0xF9, 0xA9, 0x29, 0xF9, - 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, - 0x0D, 0x8C, 0x00, 0x0D, 0x00, 0x0D, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, - 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x00, 0x2B, 0x79, 0x99, - 0x00, 0x2B, 0x69, 0xD9, 0x59, 0x89, 0x1D, 0x8E, 0x0B, 0x3E, 0x49, 0xEE, 0x0E, 0x3E, 0x6E, 0xB9, - 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, - 0x02, 0x3E, 0xFF, 0x1E, 0x39, 0xBF, 0x06, 0x1F, 0x0D, 0x08, 0x04, 0x1C, 0xD9, 0xF9, 0x02, 0x0B, - 0xC5, 0x5A, 0x09, 0x2C, 0x39, 0xBF, 0x0F, 0xF9, 0x01, 0x2A, 0x79, 0xAF, 0x00, 0x79, 0x10, 0x0B, - 0x00, 0x0B, 0x07, 0x0B, 0x26, 0x0C, 0x00, 0x2B, 0x00, 0x69, 0x00, 0x79, 0xFF, 0x1A, 0x00, 0x2B, - 0x79, 0xC9, 0x79, 0xA9, 0x00, 0x2B, 0x00, 0x29, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x01, 0x69, - 0x07, 0x08, 0x04, 0x1C, 0x79, 0xED, 0x06, 0x08, 0x2A, 0x8A, 0xFD, 0x4D, 0x06, 0x08, 0x01, 0x5A, - 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xB9, 0x00, 0x2B, 0x00, 0x79, 0x4E, 0x0C, 0x09, 0x8E, 0x02, 0x3E, - 0x1E, 0xF9, 0x29, 0xCA, 0xD9, 0xDA, 0x05, 0x2C, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, - 0x26, 0x0C, 0xB9, 0x8D, 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, - 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0x33, 0x1C, 0x0A, 0x08, - 0x05, 0x5C, 0x00, 0x2B, 0x01, 0x29, 0x1D, 0x8E, 0x0C, 0x3E, 0x29, 0xEE, 0x19, 0xF9, 0xFF, 0x1A, - 0x09, 0xBF, 0x1F, 0xE9, 0x07, 0x08, 0x69, 0xF8, 0x15, 0x7C, 0x39, 0xBF, 0x0F, 0xF9, 0x00, 0x2B, - 0x02, 0x0A, 0x79, 0xAF, 0x0F, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xE9, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, - 0x79, 0xCA, 0x13, 0x0C, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x29, 0xE9, 0x1D, 0x8E, - 0x0C, 0x3E, 0xAE, 0xDA, 0x07, 0x08, 0x69, 0xDA, 0x05, 0x6C, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, - 0x07, 0x0B, 0x26, 0x0C, 0x02, 0x08, 0x01, 0x4A, 0xB1, 0x0C, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, - 0x04, 0x0C, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x29, 0xCA, 0xD9, 0xDA, 0x07, 0x2C, - 0x39, 0xBF, 0x04, 0x1F, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, 0x26, 0x0C, 0xB9, 0x8D, - 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, 0x10, 0x0B, 0x00, 0x0B, - 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xE9, 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, - 0x1E, 0xE9, 0x07, 0x08, 0x69, 0xF8, 0x1F, 0x3C, 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, - 0xAE, 0xCA, 0x79, 0xBF, 0x1F, 0xF9, 0x39, 0x8E, 0x02, 0x3E, 0x9E, 0xD9, 0x59, 0xE9, 0x05, 0x08, - 0x01, 0x4A, 0x00, 0x2B, 0x59, 0x9E, 0x06, 0x08, 0x4A, 0xCA, 0x39, 0xCA, 0x69, 0x8E, 0x08, 0x3E, - 0x79, 0x9E, 0x07, 0x08, 0xFF, 0x1A, 0x7E, 0x78, 0x03, 0x7C, 0x0C, 0x08, 0x01, 0x4A, 0x02, 0x0C, - 0x0F, 0x08, 0x01, 0x4A, 0x34, 0x0C, 0x39, 0xBF, 0x0F, 0xF9, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xAF, - 0x0F, 0x08, 0x01, 0x4A, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, 0x79, 0xCA, 0xB9, 0x8D, - 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, 0x10, 0x0B, 0x00, 0x0B, - 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xB9, 0xF9, 0xFF, 0x1A, 0xFA, 0x8A, 0x69, 0x9A, 0xFF, 0x1A, 0x00, 0x2B, 0x79, 0xE9, - 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, 0xAE, 0xCA, 0x79, 0xBF, 0x1F, 0xF9, 0x7E, 0x78, - 0x03, 0x7C, 0x0C, 0x08, 0x01, 0x4A, 0x02, 0x0C, 0x0F, 0x08, 0x01, 0x4A, 0x12, 0x0C, 0x09, 0x8E, - 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, 0x79, 0xCA, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, - 0x10, 0x0B, 0x00, 0x0B, 0x06, 0x0B, 0x81, 0x4C, 0x8C, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x06, 0x0B, - 0x81, 0x2C, 0x0C, 0x08, 0x04, 0x1C, 0x39, 0xBF, 0x0F, 0xF9, 0x80, 0x2A, 0x79, 0xAF, 0x0E, 0x08, - 0x04, 0x1C, 0x39, 0xBF, 0x0F, 0xF9, 0x40, 0x2A, 0x79, 0xAF, 0x39, 0x8E, 0x02, 0x3E, 0xE9, 0x9E, - 0xC9, 0xF9, 0xFF, 0x1A, 0x39, 0x8E, 0x01, 0x3E, 0x79, 0x9E, 0xF9, 0xF9, 0x00, 0x2B, 0x0D, 0x99, - 0x00, 0x2B, 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, - 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0x8C, 0x09, 0xBE, 0x1D, 0x89, 0x4C, 0x5A, 0x09, 0x9D, 0x3E, 0x89, - 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, - 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x1D, 0x8E, 0x0E, 0x3E, 0x79, 0xEE, 0x0D, 0x3E, 0x69, 0xEE, - 0x0C, 0x3E, 0x59, 0xEE, 0x0B, 0x3E, 0x49, 0xEE, 0x1D, 0x8E, 0x11, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, - 0x10, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x0F, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, - 0x06, 0x5A, 0x06, 0x2C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x05, 0x0B, 0x89, 0x5A, 0x05, 0x2C, - 0x01, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0x1D, 0x8E, 0x1F, 0x3E, 0x6E, 0xF9, - 0x00, 0x69, 0x59, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0x8E, 0x20, 0x3E, - 0xAE, 0xBF, 0x00, 0x6F, 0x00, 0x39, 0x1D, 0x8E, 0x13, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x12, 0x3E, - 0x00, 0x6E, 0x1D, 0x8E, 0x1A, 0x3E, 0x00, 0x6E, 0x00, 0x2B, 0x00, 0x79, 0x1D, 0x8E, 0x18, 0x3E, - 0x00, 0x6E, 0x00, 0x2B, 0x00, 0x69, 0x72, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, - 0x02, 0x3C, 0xE9, 0xF9, 0x05, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xDA, - 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x1B, 0x3E, - 0x6E, 0xE9, 0x3A, 0x8A, 0x79, 0xCA, 0x69, 0xBF, 0x6F, 0xF9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, - 0x4A, 0xCA, 0x79, 0xA9, 0x1D, 0x8E, 0x10, 0x3E, 0x6E, 0xF9, 0x09, 0x5C, 0x1D, 0x8E, 0x10, 0x3E, - 0x01, 0x6E, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, 0x79, 0xEE, 0x45, 0x0C, 0x1D, 0x8E, - 0x11, 0x3E, 0x6E, 0xF9, 0x41, 0x5C, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x00, 0x2B, 0x79, 0x99, 0x1D, 0x8E, 0x0F, 0x3E, - 0x6E, 0xF9, 0x4B, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, - 0xAA, 0x8A, 0xBA, 0x8A, 0xEA, 0x8A, 0xFA, 0x8A, 0x09, 0x08, 0x79, 0xDA, 0x12, 0x6C, 0x1D, 0x8E, - 0x10, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, - 0xAE, 0xDA, 0x02, 0x4A, 0xEA, 0x8A, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xFE, - 0x08, 0x0C, 0x1D, 0x8E, 0x10, 0x3E, 0x01, 0x6E, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, - 0x79, 0xEE, 0x1D, 0x8E, 0x10, 0x3E, 0x6E, 0xF9, 0x05, 0x5A, 0x06, 0x2C, 0xE9, 0xF9, 0x03, 0x5A, - 0x1D, 0x8E, 0x11, 0x3E, 0x79, 0xEE, 0x07, 0x0C, 0x0E, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0x1D, 0x8E, - 0x0D, 0x3E, 0xAE, 0xDA, 0x89, 0x2C, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x05, 0x5C, 0x01, 0x79, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x1B, 0x0C, 0x00, 0x2B, 0x03, 0x39, 0x1D, 0x8E, - 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x02, 0x3C, 0xE9, 0xF9, 0x05, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, - 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x0E, 0x3E, - 0x6E, 0xF9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xE9, 0x3A, 0x8A, 0x79, 0xCA, 0x69, 0xBF, 0x6F, 0xF9, - 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x4A, 0xCA, 0x79, 0xA9, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, - 0x04, 0x4A, 0xE9, 0xF8, 0x08, 0x7C, 0x1D, 0x8E, 0x13, 0x3E, 0x6E, 0xF9, 0x02, 0x4A, 0xAA, 0x8A, - 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0xB9, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x03, 0x4A, 0xE9, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x0C, 0x6C, 0x39, 0xF9, 0x4A, 0xCA, 0x01, 0x0B, 0x80, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, - 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x05, 0x6C, - 0x08, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7A, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x07, 0x2C, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x10, 0x0B, - 0x00, 0x0B, 0x0D, 0x0B, 0x87, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0x99, 0x39, 0xF9, - 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x79, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x09, 0x08, 0x79, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x07, 0x2C, 0x1D, 0x8E, 0x14, 0x3E, 0x00, 0x6E, 0x10, 0x0B, - 0x00, 0x0B, 0x0D, 0x0B, 0x87, 0x0C, 0x1D, 0x8E, 0x3A, 0x3E, 0x39, 0xCE, 0x1D, 0x8E, 0x38, 0x3E, - 0x29, 0xCE, 0x1D, 0x8E, 0x19, 0x3E, 0xF9, 0xEE, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x00, 0x2B, 0x79, 0xC9, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, - 0x00, 0x2B, 0x19, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x09, 0x0B, 0xB5, 0x0C, - 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, - 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, - 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, - 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, - 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, - 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, - 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, - 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, - 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, - 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x08, 0x0B, 0xF0, 0x2C, 0x1D, 0x8E, 0x17, 0x3E, 0xC9, 0xEE, - 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, - 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x0A, 0x0B, 0xE7, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, - 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, - 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, - 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, - 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, - 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, - 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, - 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, - 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, - 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, - 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, - 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, - 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, - 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x22, 0x2C, 0x1D, 0x8E, - 0x16, 0x3E, 0xC9, 0xEE, 0x00, 0x2B, 0x01, 0x39, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, - 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, - 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, - 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x00, 0x2B, - 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x0A, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, - 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, - 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, - 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, - 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, - 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, - 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, - 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, - 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, - 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, - 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, - 0x0B, 0x0B, 0x45, 0x2C, 0x1D, 0x8E, 0x15, 0x3E, 0xC9, 0xEE, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, - 0x79, 0xB9, 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, - 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, - 0x79, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x0D, 0x0B, 0x3C, 0x0C, 0x1D, 0x8E, - 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, - 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, - 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, - 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, - 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, - 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, - 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, - 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, - 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x77, 0x2C, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, - 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xF9, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x1D, 0x8E, 0x15, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, - 0x08, 0x6C, 0x1D, 0x8E, 0x15, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, - 0x00, 0x6E, 0x1D, 0x8E, 0x16, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, 0x0A, 0x6C, 0x1D, 0x8E, 0x16, 0x3E, - 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x00, 0x2B, 0x03, 0x39, - 0x1D, 0x8E, 0x17, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, 0x0A, 0x6C, 0x1D, 0x8E, 0x17, 0x3E, 0x6E, 0xF9, - 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, 0x00, 0x6E, 0x00, 0x2B, 0x03, 0x39, 0x1D, 0x8E, - 0x14, 0x3E, 0x6E, 0xF9, 0x56, 0x1C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xB9, - 0xF9, 0x87, 0x26, 0x6C, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xF9, 0x07, 0x1A, 0x01, 0x69, - 0x07, 0x08, 0x04, 0x1C, 0x79, 0xED, 0x06, 0x08, 0x2A, 0x8A, 0xFD, 0x4D, 0x1D, 0x8E, 0x14, 0x3E, - 0x69, 0xEE, 0x1D, 0x8E, 0x14, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x1F, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, - 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xD9, 0xAA, 0x8A, 0xEA, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x0F, 0xE9, - 0x79, 0xAA, 0x69, 0xAF, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x9F, 0xF9, 0x01, 0x4A, 0x79, 0xFF, - 0x0F, 0x08, 0x01, 0x4A, 0x1D, 0x8E, 0x18, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x1A, 0x3E, 0x01, 0x6E, - 0x2A, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, - 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xB9, 0x1D, 0x8E, 0x20, 0x3E, - 0xAE, 0xBF, 0x9F, 0xF9, 0x01, 0x4A, 0x79, 0xFF, 0x00, 0x2B, 0x00, 0x79, 0x1D, 0x8E, 0x18, 0x3E, - 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x01, 0x0C, 0x29, 0xB9, 0x39, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, - 0x13, 0x3E, 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xFE, 0x1D, 0x8E, 0x12, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, - 0x79, 0xFE, 0x0E, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x19, 0x6C, - 0x1D, 0x8E, 0x0C, 0x3E, 0xAE, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x02, 0x5A, 0x1D, 0x8E, - 0x18, 0x3E, 0xAE, 0xDA, 0x04, 0x6C, 0x1D, 0x8E, 0x1A, 0x3E, 0x6E, 0xF9, 0x0A, 0x5C, 0x1D, 0x8E, - 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xF9, 0x02, 0x0B, 0xBC, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x08, 0x0B, - 0x15, 0x2C, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x9F, 0xF9, 0x08, 0x4A, 0x79, 0xFF, 0x1D, 0x8E, - 0x13, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x12, 0x3E, 0x6E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x79, 0xE9, 0x09, 0x0B, 0x89, 0x0B, 0x68, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x50, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x1D, 0x8E, 0x0C, 0x3E, - 0xAE, 0x8E, 0x03, 0x3E, 0x1E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x1D, 0x8E, - 0x21, 0x3E, 0xAE, 0xBF, 0x79, 0xEF, 0x00, 0x79, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, 0x0D, 0xA9, - 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, 0x0D, 0xE9, - 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x09, 0xBE, 0x1D, 0x89, - 0x4C, 0x4A, 0x09, 0x9D, 0x3E, 0x89, 0x0D, 0x8C, 0x09, 0xBE, 0x1D, 0x89, 0x17, 0x0B, 0xC4, 0x5A, - 0x09, 0x9D, 0x3E, 0x89, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, - 0xD9, 0x8D, 0xC9, 0x8D, 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, - 0x79, 0xEE, 0x05, 0x0B, 0xF7, 0x3E, 0x69, 0xEE, 0x05, 0x0B, 0xF6, 0x3E, 0x59, 0xEE, 0x49, 0xB9, - 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, 0x6E, 0xF9, 0x06, 0x1C, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, - 0x6E, 0xF9, 0x04, 0x5A, 0x11, 0x2C, 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0xFF, 0x1E, 0x39, 0xBF, 0x10, 0x1F, 0x00, 0x79, - 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x71, 0x0C, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, 0x6E, 0xF9, - 0x01, 0x5A, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x05, 0x0B, 0xF6, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, - 0x05, 0x0B, 0xFB, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x05, 0x0B, 0xF7, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0x99, 0x1D, 0x8E, 0x05, 0x0B, 0xF7, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xA9, 0x1D, 0x8E, - 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xF9, 0x1B, 0x5C, 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x01, 0x0B, 0xCE, 0x79, 0x00, 0x69, - 0x32, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0xFF, 0x1E, - 0x39, 0xBF, 0x01, 0x1F, 0x00, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x71, 0x0C, 0x00, 0x2B, - 0x00, 0x69, 0x1D, 0xF9, 0x16, 0x0B, 0xE4, 0x4A, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0xF9, 0x16, 0x0B, 0xE6, 0x4A, 0x79, 0xBF, 0xFF, 0x1F, 0x1D, 0xF9, - 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0xBF, 0x06, 0x1F, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x00, 0x69, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0xF9, 0x16, 0x0B, 0x4E, 0x4A, - 0x79, 0xBF, 0xFF, 0x1F, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x06, 0x1F, 0x39, 0xF9, - 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, - 0x00, 0x2B, 0x00, 0x39, 0x0B, 0x08, 0x06, 0x5C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, - 0x05, 0x1F, 0x05, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x0B, 0x1F, 0x00, 0x2B, - 0x00, 0x79, 0x0F, 0x08, 0x01, 0x78, 0x16, 0x7C, 0x1D, 0xF9, 0x17, 0x0B, 0xEC, 0x4A, 0x79, 0x8D, - 0x99, 0xF9, 0x1D, 0x8E, 0x05, 0x0B, 0xFC, 0x3E, 0x6E, 0xE9, 0x04, 0x59, 0x1D, 0xC9, 0x30, 0x4A, - 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0x0D, 0x3D, 0x0D, 0xA8, 0x1D, 0xF9, 0x2C, 0x4A, 0x00, 0x2B, - 0x79, 0xA9, 0x18, 0x0C, 0x0F, 0x08, 0x02, 0x78, 0x15, 0x7C, 0x1D, 0xF9, 0x17, 0x0B, 0xEC, 0x4A, - 0x79, 0x8D, 0x99, 0xF9, 0x1D, 0x8E, 0x05, 0x0B, 0xFC, 0x3E, 0x6E, 0xE9, 0x06, 0x59, 0x1D, 0xC9, - 0x30, 0x4A, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0x0D, 0x3D, 0x0D, 0xA8, 0x1D, 0xF9, 0x2C, 0x4A, - 0x00, 0x2B, 0x79, 0xA9, 0x00, 0x29, 0x1D, 0xF9, 0x17, 0x0B, 0xE4, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, - 0x17, 0x0B, 0xEC, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x84, 0x4A, 0x79, 0x8D, 0xA9, 0xF9, - 0x1D, 0x8E, 0x05, 0x0B, 0xFE, 0x3E, 0x6E, 0xE9, 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x29, 0xC9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, 0x3B, 0x3D, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0xA8, 0x07, 0x08, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x55, 0x5C, - 0x00, 0x19, 0x1D, 0xF9, 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x80, 0x4A, - 0x1D, 0x8E, 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xE9, 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x19, 0xC9, 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xE1, 0x3D, - 0x0D, 0xA8, 0x00, 0x2B, 0x79, 0xD9, 0x29, 0xF9, 0x19, 0xBA, 0xFF, 0x1A, 0x1D, 0xE9, 0x16, 0x0B, - 0xE7, 0x4A, 0x69, 0xBF, 0x79, 0x9F, 0x1D, 0x8E, 0x05, 0x0B, 0xF9, 0x3E, 0x6E, 0xF9, 0x4A, 0xCA, - 0x1D, 0x8E, 0x0B, 0x0B, 0x75, 0x3E, 0x79, 0xCE, 0x01, 0x19, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, - 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x80, 0x4A, 0x1D, 0x8E, 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xE9, - 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x19, 0xC9, - 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xE1, 0x3D, 0x0D, 0xA8, 0x79, 0x89, 0x29, 0xF9, 0x19, 0xBA, - 0xFF, 0x1A, 0x1D, 0xE9, 0x16, 0x0B, 0x4F, 0x4A, 0x69, 0xBF, 0x79, 0x9F, 0x1D, 0x8E, 0x05, 0x0B, - 0xF9, 0x3E, 0x6E, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0B, 0x0B, 0x29, 0x3E, 0x79, 0xCE, 0x1D, 0xF9, - 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x3C, 0x5C, 0xD9, 0xF9, 0x03, 0x5A, 0x39, 0x2C, - 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x24, 0x5C, 0x09, 0xF9, 0x03, 0x5A, - 0x21, 0x2C, 0xD9, 0xF9, 0x09, 0xDA, 0x0F, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, - 0x4A, 0xCA, 0x6F, 0x0C, 0x0E, 0x0C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, - 0x60, 0x0C, 0x0E, 0x0C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x51, 0x0C, - 0x34, 0x0C, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x12, 0x5C, 0x09, 0xF9, - 0x03, 0x5A, 0x0F, 0x2C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x39, 0x0C, - 0x1C, 0x0C, 0xE9, 0xF9, 0x09, 0xDA, 0x0B, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x00, 0x2B, 0x09, 0xE9, 0xE9, 0xF9, - 0xD9, 0xDA, 0x0B, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x00, 0x2B, 0xD9, 0xE9, 0x02, 0x08, 0x01, 0x4A, 0x29, 0xF9, - 0x02, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x63, 0x2C, 0x0F, 0x08, 0x01, 0x4A, 0xF9, 0xF9, - 0x03, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x31, 0x2C, 0x0B, 0x08, 0x01, 0x4A, 0xB9, 0xF9, - 0x02, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x22, 0x2C, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, - 0x4A, 0xCA, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, - 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, - 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x09, 0xBE, 0x1D, 0x89, 0x17, 0x0B, 0xC4, 0x4A, 0x09, 0x9D, - 0x3E, 0x89, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x10, 0x0B, 0x00, 0x0B, - 0x11, 0x0B, 0x84, 0x7C, 0x00, 0x39, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x00, 0x69, 0x96, 0x59, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0E, 0x4A, 0x79, 0xBF, - 0xFF, 0x1F, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, - 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x79, 0xBF, 0x10, 0x1F, 0x20, 0x0B, 0x00, 0x0B, - 0x2F, 0x0B, 0x44, 0x79, 0x00, 0x69, 0x16, 0x0B, 0x24, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xC2, 0x3D, 0x03, 0x08, 0x10, 0x1C, 0x01, 0x78, 0x07, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, - 0xEE, 0x3F, 0x4F, 0xF9, 0x4A, 0xCA, 0x06, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x56, 0x3F, - 0x4F, 0xF9, 0x4A, 0xCA, 0x06, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xBE, 0x3F, 0x4F, 0xF9, - 0x4A, 0xCA, 0x79, 0x99, 0x03, 0x08, 0x0C, 0x1C, 0x01, 0x78, 0x05, 0x3C, 0x20, 0x0B, 0x00, 0x0B, - 0x45, 0x0B, 0x68, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x5B, 0x0B, 0x88, 0x79, 0x04, 0x0C, - 0x20, 0x0B, 0x00, 0x0B, 0x63, 0x0B, 0x70, 0x79, 0x79, 0x89, 0x03, 0x08, 0x0C, 0x1C, 0x01, 0x78, - 0x05, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x79, 0x0B, 0x90, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, - 0x84, 0x0B, 0xA0, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x79, 0x00, 0x2B, - 0x79, 0xE9, 0x19, 0xF9, 0x10, 0x5A, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x49, 0x2C, 0x00, 0x29, - 0x36, 0x0C, 0x29, 0xF9, 0x3A, 0x8A, 0x09, 0xCA, 0x79, 0x8E, 0x01, 0x3E, 0x6E, 0xF9, 0x29, 0xE9, - 0x3A, 0x8A, 0x09, 0xCA, 0x69, 0xBF, 0x07, 0x08, 0x9F, 0xDA, 0x02, 0x0B, 0x71, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x12, 0x0B, 0x4F, 0x4A, 0x24, 0x0B, 0x9F, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x2A, 0x8A, - 0xE9, 0xCA, 0x79, 0x8E, 0x01, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x8A, 0xCA, 0xFF, 0x2B, - 0xFF, 0x0A, 0xF9, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x29, 0xE9, 0x3A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2F, 0x0B, 0x48, 0x4A, 0x69, 0xBF, 0x79, 0xEF, 0x02, 0x08, 0x01, 0x4A, 0x29, 0xF9, - 0x19, 0xE9, 0x01, 0x5A, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0xC1, 0x2C, - 0x19, 0xF9, 0x01, 0x5A, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, 0x44, 0x3F, 0x79, 0xCF, - 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x79, 0xC9, 0x39, 0xF9, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, - 0x2F, 0x0B, 0x48, 0x69, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, 0x44, 0x3F, 0x4F, 0xD9, 0x4A, 0xCA, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x7C, 0x3D, 0x03, 0x08, 0x01, 0x4A, 0x39, 0xF9, 0x03, 0x5A, - 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x9B, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, - 0x6F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x6F, 0xE9, 0x4A, 0xCA, 0x8A, 0xCA, - 0x79, 0xAA, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x04, 0x3F, 0x69, 0xEF, 0x00, 0x2B, 0x0D, 0xE9, - 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, 0x77, 0xA0, - 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, 0x9F, 0x89, 0x00, 0xCA, 0x09, 0xEF, 0x8D, 0x8C, - 0x3E, 0x8D, 0x0E, 0x8D, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x08, 0x3F, 0x20, 0x0B, 0x00, 0x0B, - 0x97, 0x0B, 0xEC, 0x0E, 0x00, 0x3E, 0x9F, 0xCE, 0x9F, 0xCE, 0x9F, 0xCE, 0x9F, 0x99, 0x9F, 0xCE, - 0x9F, 0xCE, 0x9F, 0xCE, 0x6F, 0xA9, 0x6F, 0xA8, 0x9F, 0xB9, 0x01, 0x0B, 0xC0, 0x2A, 0x39, 0xEF, - 0x00, 0x3E, 0x6E, 0xB9, 0x6E, 0xAA, 0x6E, 0xAA, 0xAE, 0xAA, 0x39, 0xEE, 0x19, 0xB9, 0x29, 0xAA, - 0xAE, 0xAA, 0x39, 0xEE, 0x00, 0x3E, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xE2, 0x3F, 0x8F, 0xB9, - 0x09, 0x5C, 0x01, 0x4F, 0x6E, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, 0x39, 0xEF, 0x19, 0xB9, 0x29, 0xCA, - 0x39, 0xCF, 0x6B, 0x0C, 0x01, 0x78, 0x16, 0x7C, 0x02, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, - 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x00, 0x5A, 0x6E, 0xEF, 0x8F, 0x89, 0x19, 0xCA, 0x29, 0xCA, - 0x09, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x00, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, - 0x39, 0xCF, 0x53, 0x0C, 0x02, 0x78, 0x12, 0x7C, 0x03, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, - 0x6E, 0xCA, 0x39, 0xEF, 0x8F, 0xB9, 0x19, 0xCA, 0x14, 0x0B, 0x00, 0x5A, 0x29, 0xCF, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x06, 0x3F, 0x00, 0x2B, 0x39, 0x8F, 0x3F, 0x0C, 0x03, 0x78, 0x18, 0x7C, - 0x04, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x00, 0x5A, 0x6E, 0x89, - 0x6E, 0xCA, 0x09, 0xEF, 0x8F, 0x89, 0x19, 0xCA, 0x29, 0xCA, 0x09, 0xCF, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x04, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, 0x4F, 0xA8, 0x39, 0xCF, 0x25, 0x0C, - 0x00, 0x4F, 0x6F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, 0x6E, 0xCA, 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, - 0x00, 0x5A, 0x4F, 0x89, 0x19, 0xCA, 0x29, 0xCA, 0x14, 0x0B, 0x00, 0x5A, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x0A, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, 0x39, 0xCF, 0x09, 0xCF, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x9F, 0xB9, 0x01, 0x6F, 0x07, 0x1C, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x18, 0x3F, 0x9F, 0xB9, 0x01, 0x2A, 0x39, 0xEF, 0x0D, 0x8E, 0x0D, 0xBE, 0x8D, 0x8C, - 0x27, 0xA0, 0x20, 0xE9, 0x07, 0x2B, 0x00, 0x0A, 0x07, 0x08, 0x07, 0x1A, 0x8A, 0x8A, 0x69, 0xAA, - 0x79, 0xA0, 0xA7, 0xA0, 0x0D, 0x8C, 0x00, 0x30, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, - 0x00, 0x6F, 0x0D, 0x8C, 0x30, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, 0x9F, 0xE9, - 0x30, 0xD9, 0x79, 0xF8, 0xFD, 0x3C, 0x02, 0x6C, 0x30, 0xF9, 0x9F, 0xE9, 0x07, 0x08, 0x69, 0xCA, - 0x0D, 0x8C, 0x79, 0x8D, 0xEF, 0x3D, 0x0D, 0xC9, 0x79, 0xCA, 0xEC, 0x3D, 0x49, 0xDA, 0xFD, 0x4C, - 0x0D, 0x8C, 0x29, 0x8D, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x9F, 0xF9, 0x01, 0x4A, - 0x79, 0xEF, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x80, 0x0A, 0x79, 0xCE, 0x79, 0xD7, 0x07, 0x2C, - 0x20, 0x2A, 0xA7, 0x3E, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x0C, 0x4C, 0x3E, - 0xAE, 0xBF, 0x7F, 0xA8, 0x7F, 0xF9, 0x6F, 0xDA, 0x79, 0xA9, 0xA7, 0x3E, 0x9E, 0xE7, 0x09, 0x2C, - 0x9E, 0xF9, 0x40, 0x2A, 0x79, 0xCE, 0x4E, 0x3E, 0x29, 0xEE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, - 0x9D, 0x0C, 0x9E, 0xB7, 0x76, 0x2C, 0x4E, 0x3E, 0xAE, 0xE9, 0x29, 0xCA, 0x2A, 0x8A, 0x29, 0xF9, - 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x21, 0x02, 0x79, 0x92, 0x0D, 0x22, 0x06, 0x08, - 0x32, 0xDA, 0x34, 0x2C, 0xA6, 0x3E, 0x9E, 0xF9, 0x01, 0x4A, 0x79, 0xDE, 0x29, 0xF9, 0x4E, 0x3E, - 0xAE, 0xDA, 0x02, 0x4A, 0xEA, 0x8A, 0xAE, 0xCA, 0x79, 0xFE, 0x4B, 0x3E, 0x6E, 0xBF, 0x5F, 0xA8, - 0x5F, 0xF9, 0x4F, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x9E, 0x3E, 0x21, 0x02, 0x4E, 0x92, - 0x79, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x9E, 0xCA, 0x9E, 0xCA, - 0x9E, 0xCA, 0x02, 0x4A, 0xEA, 0x8A, 0x79, 0xCE, 0x9E, 0xF8, 0x02, 0x6C, 0x5E, 0xF9, 0x79, 0xCE, - 0xA6, 0x3E, 0x4E, 0xF9, 0x08, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x4C, 0x9E, 0xF9, - 0x08, 0x2A, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x0C, 0xA6, 0x3E, 0x4E, 0xC9, - 0x01, 0x4A, 0x4B, 0x3E, 0xAE, 0xD9, 0x04, 0x5A, 0x59, 0xBF, 0x59, 0xF9, 0x49, 0xDA, 0x49, 0xDA, - 0x4F, 0xD9, 0x4F, 0xE9, 0x79, 0xBF, 0x59, 0xCF, 0x69, 0xCF, 0x3F, 0xEE, 0xAE, 0xD9, 0x08, 0x5A, - 0x59, 0xBF, 0x59, 0xF9, 0x49, 0xDA, 0x49, 0xDA, 0x49, 0xDA, 0x49, 0xDA, 0x6F, 0xD9, 0x6F, 0xE9, - 0x79, 0xBF, 0x59, 0xEF, 0x69, 0xEF, 0x3F, 0xEE, 0xA6, 0x3E, 0x00, 0x4E, 0x4E, 0x3E, 0x29, 0xEE, - 0xA4, 0x3E, 0x5E, 0xF9, 0x4E, 0xDA, 0xB0, 0x3E, 0x21, 0x02, 0x79, 0x92, 0x9E, 0xA2, 0x80, 0x79, - 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, - 0x9D, 0x0C, 0x4E, 0x3E, 0xAE, 0xE9, 0x29, 0xCA, 0x29, 0xF9, 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, - 0x9A, 0x8A, 0x3A, 0x8A, 0x2A, 0x8A, 0x69, 0xDA, 0x07, 0x6C, 0x29, 0xF9, 0xAE, 0xDA, 0x02, 0x4A, - 0xEA, 0x8A, 0xAE, 0xCA, 0x79, 0xEE, 0x15, 0x0C, 0x29, 0xE9, 0x2A, 0x8A, 0xAE, 0xCA, 0x29, 0xF9, - 0x2A, 0x8A, 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x3A, 0x8A, 0x2A, 0x8A, 0x69, 0xDA, - 0x08, 0x6C, 0x29, 0xF9, 0x2A, 0x8A, 0xAE, 0xDA, 0x04, 0x4A, 0xEA, 0x8A, 0xFA, 0x8A, 0xAE, 0xCA, - 0x79, 0xEE, 0x4E, 0x3E, 0xAE, 0xF9, 0xAE, 0x3E, 0x5E, 0xF8, 0x02, 0x6C, 0x00, 0x49, 0x09, 0x0C, - 0x5E, 0xF8, 0x02, 0x6C, 0x01, 0x49, 0x05, 0x0C, 0x5E, 0xF8, 0x02, 0x6C, 0x02, 0x49, 0x01, 0x0C, - 0x03, 0x49, 0x8A, 0x3E, 0x9E, 0xF9, 0x49, 0xF8, 0x13, 0x6C, 0x01, 0x4A, 0x79, 0xC9, 0xA1, 0x3E, - 0x21, 0x02, 0xC6, 0x12, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, - 0xC6, 0x12, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x14, 0x0C, - 0x13, 0x3C, 0x01, 0x5A, 0x79, 0xC9, 0xA1, 0x3E, 0x21, 0x02, 0x01, 0x0B, 0x4B, 0x12, 0x9E, 0xA2, - 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x12, 0x92, 0x9E, 0xA2, 0x80, 0x79, - 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x8A, 0x3E, 0x49, 0xCE, 0x49, 0xF9, 0x8C, 0x4A, - 0x79, 0xBE, 0x4E, 0xF9, 0x89, 0x3E, 0x79, 0xCE, 0x49, 0xF9, 0xA8, 0x4A, 0x79, 0xBE, 0x4E, 0xF9, - 0x9E, 0x3E, 0x79, 0xCE, 0x4B, 0x3E, 0xAE, 0xBF, 0x5F, 0xA8, 0x5F, 0xF9, 0x4F, 0xDA, 0x48, 0xE7, - 0x01, 0x6C, 0x9A, 0x8A, 0x9E, 0x3E, 0x21, 0x02, 0x79, 0x92, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, - 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x9E, 0xCA, 0x9E, 0xCA, 0x9E, 0xCA, 0x02, 0x4A, 0xEA, 0x8A, - 0x79, 0xCE, 0x9E, 0xF8, 0x02, 0x6C, 0x5E, 0xE9, 0x69, 0xCE, 0x0D, 0xA9, 0x0D, 0x8C, 0x79, 0xD9, - 0xA7, 0x3E, 0x9E, 0xA7, 0x3A, 0x6C, 0xA0, 0x3E, 0x5E, 0xF9, 0x59, 0xF8, 0x2A, 0x2C, 0x9E, 0xF9, - 0x4B, 0x3E, 0xAE, 0xBF, 0x79, 0xCF, 0x3F, 0xEE, 0x4D, 0x3E, 0x7E, 0xF9, 0xAE, 0xBF, 0x79, 0xEF, - 0x3F, 0xEE, 0x4A, 0x3E, 0x79, 0xEE, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xDE, - 0x4D, 0x3E, 0x69, 0xEE, 0x9F, 0x3E, 0x59, 0xCE, 0xA1, 0x3E, 0x5E, 0xF9, 0x59, 0xCA, 0x79, 0xCE, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x05, 0x6C, 0x10, 0x0B, - 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x49, 0x0C, 0xA7, 0x3E, 0x9E, 0xF9, 0x80, 0x2A, 0x79, 0xDE, - 0x44, 0x0C, 0x9F, 0x3E, 0x9E, 0xF9, 0x59, 0xF8, 0x40, 0x6C, 0x59, 0xCE, 0x4D, 0x3E, 0x69, 0xEE, - 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xDA, 0x79, 0xCE, 0x38, 0x0C, 0x59, 0xF9, 0xA0, 0x3E, 0x5E, 0xF8, - 0x29, 0x2C, 0x9E, 0xF9, 0x4B, 0x3E, 0xAE, 0xBF, 0x79, 0xCF, 0x3F, 0xEE, 0x4D, 0x3E, 0x7E, 0xF9, - 0xAE, 0xBF, 0x79, 0xEF, 0x3F, 0xEE, 0x4A, 0x3E, 0x79, 0xEE, 0xA7, 0x3E, 0x9E, 0xF9, 0x04, 0x2A, - 0x79, 0xDE, 0x4D, 0x3E, 0x69, 0xEE, 0x9F, 0x3E, 0x59, 0xCE, 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xDA, - 0x79, 0xCE, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x05, 0x6C, - 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x10, 0x0C, 0xA7, 0x3E, 0x9E, 0xF9, 0x80, 0x2A, - 0x79, 0xDE, 0x0B, 0x0C, 0x59, 0xF9, 0x9F, 0x3E, 0x9E, 0xF8, 0x07, 0x6C, 0x59, 0xCE, 0x4D, 0x3E, - 0x69, 0xEE, 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xCA, 0x79, 0xCE, 0xA7, 0x3E, 0x9E, 0xF7, 0x0B, 0x6C, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x04, 0x6C, 0x10, 0x0B, - 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x0D, 0x8C, 0x09, 0x8D, 0x69, 0x89, 0x59, 0x8E, 0x03, 0x3E, - 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xEE, 0x88, 0x3E, 0x9E, 0xD9, 0x01, 0x4A, 0x3F, 0x1A, 0x9E, 0xF9, - 0x04, 0x4A, 0x79, 0xBE, 0xAE, 0xF9, 0x69, 0xCA, 0x59, 0xE9, 0x04, 0x4A, 0x69, 0xBE, 0x79, 0xEE, - 0x88, 0x3E, 0x59, 0xCE, 0x59, 0xF9, 0x20, 0x5A, 0x3F, 0x1A, 0x79, 0xC9, 0x79, 0xD9, 0x9E, 0xCA, - 0x3F, 0x1A, 0x49, 0xF9, 0x9E, 0xDA, 0x3F, 0x1A, 0x04, 0x4A, 0x79, 0xBE, 0xAE, 0xE9, 0x59, 0xF9, - 0x04, 0x4A, 0x79, 0xBE, 0x06, 0x08, 0xAE, 0xCA, 0x49, 0xF9, 0x04, 0x4A, 0x79, 0xBE, 0x06, 0x08, - 0xAE, 0xDA, 0xAE, 0xDA, 0x8A, 0x3E, 0x9E, 0xF9, 0x90, 0x4A, 0x79, 0xBE, 0x21, 0x02, 0x69, 0x92, - 0x9E, 0xA2, 0x3A, 0xDA, 0x32, 0xF9, 0xBA, 0x8A, 0xBA, 0x8A, 0xBA, 0x8A, 0xFA, 0x8A, 0x79, 0xC9, - 0xA7, 0x3E, 0x9E, 0x87, 0x15, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x00, 0x6F, - 0x02, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x42, 0x78, 0x6D, 0x2C, 0xA7, 0x3E, 0x9E, 0xF9, - 0x03, 0x2A, 0x79, 0xDE, 0x4A, 0x3E, 0x09, 0xEE, 0xA3, 0x3E, 0x49, 0xCE, 0x49, 0xCE, 0x63, 0x0C, - 0xA7, 0x3E, 0x9E, 0x97, 0x41, 0x6C, 0xA4, 0x3E, 0x9E, 0xF9, 0x49, 0xF8, 0x01, 0x6C, 0x49, 0xCE, - 0xA3, 0x3E, 0x49, 0xF9, 0x9E, 0xF8, 0x01, 0x6C, 0x49, 0xCE, 0x09, 0xE9, 0x4A, 0x3E, 0xAE, 0xDA, - 0x00, 0x3E, 0x9E, 0xF9, 0x69, 0xF8, 0x4F, 0x6C, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x02, 0x0A, - 0x79, 0xDE, 0xA4, 0x3E, 0x5E, 0xF9, 0x9E, 0xDA, 0xB2, 0x3E, 0x9E, 0xE9, 0x79, 0xF8, 0x05, 0x6C, - 0xA7, 0x3E, 0x9E, 0xF9, 0x10, 0x2A, 0x79, 0xDE, 0x3E, 0x0C, 0xB0, 0x3E, 0x21, 0x02, 0x79, 0x92, - 0x4E, 0xA2, 0x80, 0x69, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x69, 0xD9, 0x12, 0x92, 0x4E, 0xA2, - 0x80, 0x69, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x59, 0xCE, 0x69, 0xCE, 0xA6, 0x3E, - 0x00, 0x4E, 0x9F, 0x3E, 0x49, 0xCE, 0x4D, 0x3E, 0x09, 0xEE, 0x4A, 0x3E, 0x09, 0xEE, 0xA4, 0x3E, - 0x9E, 0xF9, 0xA0, 0x3E, 0x79, 0xCE, 0x1F, 0x0C, 0xA7, 0x3E, 0x9E, 0xC7, 0x1C, 0x2C, 0x49, 0xF9, - 0x09, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9F, 0x3D, 0xA7, 0x3E, 0x9E, 0xB7, 0x13, 0x6C, - 0x21, 0x02, 0x4E, 0x3E, 0xAE, 0x92, 0xB3, 0x3E, 0x9E, 0xA2, 0x4A, 0x3E, 0x09, 0xF9, 0xAE, 0xDA, - 0x32, 0xE9, 0x79, 0xF8, 0x04, 0x2C, 0x01, 0x3E, 0xAE, 0xE9, 0x79, 0xF8, 0x04, 0x6C, 0xA7, 0x3E, - 0x9E, 0xF9, 0x10, 0x2A, 0x79, 0xDE, 0x0D, 0x89, 0x0D, 0x8C, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, - 0x04, 0x3F, 0x8F, 0xF9, 0xFE, 0x5C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x00, 0x6F, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, - 0xE8, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0x52, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, - 0x53, 0x3D, 0x99, 0x8D, 0x89, 0x8D, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x6F, 0xF9, 0xFA, 0x1C, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, - 0x5A, 0x3D, 0x00, 0x2B, 0x79, 0x89, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xF8, 0x3F, 0x6F, 0xF9, - 0x8A, 0x8A, 0x0E, 0x0B, 0x00, 0x0B, 0x0E, 0x1A, 0x06, 0x0B, 0x00, 0x0B, 0x02, 0x78, 0x05, 0x7C, - 0x4F, 0xF9, 0x8A, 0x8A, 0x0E, 0x1A, 0x04, 0x78, 0x07, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x18, 0x3F, 0x9F, 0xF9, 0x02, 0x2A, 0x79, 0xFF, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xF8, 0x3F, - 0x4F, 0xF9, 0x4F, 0xAA, 0x4F, 0xAA, 0xCA, 0xEA, 0x07, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x18, 0x3F, 0x9F, 0xF9, 0x04, 0x2A, 0x79, 0xFF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, - 0x6F, 0xF9, 0x09, 0x1C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x02, 0x6F, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0x1B, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x00, 0x0E, 0x00, 0x3E, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x28, 0x3F, 0x3F, 0x89, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, - 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x20, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x74, 0x19, 0x20, 0x0B, 0x00, 0x0B, - 0x95, 0x0B, 0x0C, 0x29, 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x39, 0x10, 0x0B, 0x00, 0x0B, - 0x14, 0x2B, 0x24, 0x19, 0x09, 0x8E, 0x03, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0xBC, 0x5A, 0x29, 0xD9, - 0x99, 0xBD, 0x09, 0x8E, 0x07, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x29, 0xD9, 0x99, 0xBD, 0x09, 0x8E, - 0x00, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0xFC, 0x5A, 0x19, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x01, 0x3E, - 0x9E, 0xF9, 0x89, 0xE9, 0xFC, 0x5A, 0x39, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x02, 0x3E, 0x9E, 0xF9, - 0x89, 0xE9, 0x7E, 0x5A, 0x19, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x04, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, - 0x7E, 0x5A, 0x39, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x05, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x19, 0xD9, - 0x99, 0xBD, 0x09, 0x8E, 0x06, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x39, 0xD9, 0x99, 0xBD, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xC2, 0x19, - 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x5A, 0x29, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xF2, 0x39, - 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xA0, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, - 0xA4, 0x78, 0x04, 0x2C, 0x19, 0xBF, 0x8F, 0xF9, 0x10, 0x2A, 0x79, 0xDF, 0x20, 0x0B, 0x00, 0x0B, - 0x96, 0x0B, 0x38, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x78, 0x04, 0x2C, - 0x29, 0xBF, 0x8F, 0xF9, 0x10, 0x2A, 0x79, 0xDF, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xD0, 0x3F, - 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x84, 0x0B, 0xA0, 0x78, 0x04, 0x2C, 0x39, 0xBF, 0x8F, 0xF9, - 0x10, 0x2A, 0x79, 0xDF, 0x00, 0x49, 0x19, 0xBF, 0x8F, 0xB7, 0x0A, 0xFA, 0x8F, 0xC7, 0x1A, 0xFA, - 0x29, 0xBF, 0x8F, 0xB7, 0x2A, 0xFA, 0x8F, 0xC7, 0x3A, 0xFA, 0x39, 0xBF, 0x8F, 0xB7, 0x4A, 0xFA, - 0x8F, 0xC7, 0x5A, 0xFA, 0x49, 0xF9, 0x2A, 0x1A, 0x2A, 0x78, 0x28, 0x3C, 0x49, 0xF9, 0x1A, 0x1A, - 0x0A, 0x78, 0x24, 0x3C, 0x49, 0xF9, 0x26, 0x1A, 0x22, 0x78, 0x20, 0x3C, 0x49, 0xF9, 0x29, 0x1A, - 0x28, 0x78, 0x1C, 0x3C, 0x49, 0xF9, 0x16, 0x1A, 0x02, 0x78, 0x18, 0x3C, 0x49, 0xF9, 0x19, 0x1A, - 0x08, 0x78, 0x14, 0x3C, 0x49, 0xF9, 0x25, 0x1A, 0x20, 0x78, 0x89, 0xF9, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x24, 0x3F, 0x9F, 0xF8, 0x06, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, - 0x03, 0x6F, 0x09, 0x0C, 0x10, 0x0B, 0x00, 0x0B, 0x14, 0x0B, 0xFF, 0x0C, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x1C, 0x3F, 0x01, 0x6F, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x00, 0x2B, - 0x0D, 0x89, 0x00, 0x2B, 0x0D, 0x99, 0x68, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xA0, 0x3F, - 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, - 0x97, 0x0B, 0xBE, 0x3F, 0x79, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x38, 0x3F, 0x9F, 0xF9, - 0x20, 0x0B, 0x00, 0x0B, 0x84, 0x0B, 0xA0, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, - 0x56, 0x3F, 0x79, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xD0, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, - 0x00, 0x0B, 0x79, 0x0B, 0x90, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xEE, 0x3F, - 0x79, 0xCF, 0x0D, 0x8C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x2B, 0x00, 0x0A, - 0x79, 0xFF, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x01, 0x2A, 0x00, 0x2B, - 0x79, 0x9F, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x04, 0x2A, 0x79, 0xEF, - 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x03, 0x0B, 0x00, 0x2A, 0x79, 0xFF, - 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x00, 0x2B, 0x01, 0x0A, 0x79, 0xFF, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, - 0xF8, 0x3F, 0x00, 0x6F, 0x00, 0x4F, 0x0D, 0x8C, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, - 0x9F, 0xF9, 0x01, 0x2A, 0x00, 0x2B, 0x79, 0x9F, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xEF, 0x40, 0x0B, - 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x03, 0x2B, 0x00, 0x0A, 0x79, 0xFF, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x2A, - 0x79, 0xFF, 0x0D, 0x8C, 0x00, 0x59, 0x20, 0x6D, 0x07, 0x08, 0x2A, 0x8A, 0x05, 0x08, 0x5A, 0x8A, - 0x69, 0xDA, 0x03, 0x6C, 0x69, 0xCA, 0xF8, 0x4D, 0x0D, 0x8C, 0x07, 0x08, 0x01, 0x4A, 0xF5, 0x4D, - 0x0D, 0x8C, 0x07, 0x08, 0xFB, 0xF8, 0x04, 0x2C, 0x79, 0xE9, 0x9A, 0x8A, 0x69, 0xF9, 0x00, 0x0C, - 0x0D, 0x8C, 0x00, 0x00, 0x05, 0x08, 0x0D, 0x9C, 0x79, 0xBF, 0xFF, 0x0B, 0xFF, 0x78, 0x04, 0x6C, - 0x59, 0xED, 0x69, 0x9F, 0xFE, 0x4D, 0x0D, 0x8C, 0x69, 0x9F, 0x01, 0x5A, 0xFD, 0x5C, 0x0D, 0x8C, - 0x05, 0x08, 0x0D, 0x9C, 0x00, 0x2B, 0x79, 0xDF, 0x69, 0xBF, 0xFF, 0x0B, 0xFF, 0x78, 0x05, 0x6C, - 0x59, 0xED, 0x00, 0x2B, 0x1F, 0xBF, 0xFD, 0x4D, 0x0D, 0x8C, 0x00, 0x2B, 0x1F, 0xBF, 0x01, 0x5A, - 0xFC, 0x5C, 0x0D, 0x8C, 0x87, 0x93, 0x03, 0x00, 0x46, 0xC3, 0x23, 0x00, 0x94, 0x88, 0x00, 0x20, - 0x70, 0x63, 0x00, 0x20, 0x70, 0x00, 0x70, 0x00, 0x88, 0x00, 0xA0, 0x00, 0x01, 0x00, 0x02, 0x00, - 0x06, 0x00, 0x0C, 0x00, 0xF0, 0xFF, 0xFC, 0x3F, 0x1C, 0x07, 0xC7, 0x01, 0x40, 0x17, 0xA0, 0x0B, - 0xA2, 0x03, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x00, 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, - 0x87, 0x93, 0x03, 0x00, 0x46, 0xC3, 0x23, 0x00, 0xA0, 0x84, 0x00, 0x20, 0x88, 0x5B, 0x00, 0x20, - 0x70, 0x00, 0x70, 0x00, 0x80, 0x00, 0x90, 0x00, 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, - 0xF0, 0xFF, 0xFC, 0x3F, 0x1C, 0x07, 0xC7, 0x01, 0xE1, 0x22, 0x70, 0x11, 0x23, 0x08, 0x00, 0x00, - 0x80, 0x01, 0xC0, 0x00, 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, 0x87, 0x93, 0x03, 0x00, - 0x46, 0xC3, 0x23, 0x00, 0x90, 0x79, 0x00, 0x20, 0x68, 0x45, 0x00, 0x20, 0x70, 0x00, 0x70, 0x00, - 0x88, 0x00, 0xA0, 0x00, 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, 0xF0, 0xFF, 0xFC, 0x3F, - 0x1C, 0x07, 0xC7, 0x01, 0x40, 0x17, 0xA0, 0x0B, 0xA2, 0x03, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x00, - 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, 0xB8, 0xD7, 0x9D, 0x05, 0x01, 0x00, 0x00, 0x00, - 0x45, 0x1F, 0x07, 0xD2, 0xC2, 0x2E, 0x00, 0x20, 0x0B, 0x1F, 0x05, 0x4B, 0xA1, 0x2E, 0x00, 0x20, - 0x0B, 0x1F, 0x05, 0xD2, 0xA1, 0x2E, 0x00, 0x20, 0x31, 0x33, 0x31, 0x32, 0x33, 0x31, 0x33, 0x32, - 0x00, 0x7E, 0x31, 0x32, 0x7E, 0x34, 0x7E, 0x7E, 0x37, 0x38, 0x7E, 0x7E, 0x3B, 0x7E, 0x3D, 0x3E, - 0x7E, 0x30, 0x7E, 0x7E, 0x33, 0x7E, 0x35, 0x36, 0x7E, 0x7E, 0x39, 0x3A, 0x7E, 0x3C, 0x7E, 0x7E, - 0x3F, 0x00, 0x7E, 0x21, 0x22, 0x7E, 0x24, 0x7E, 0x7E, 0x60, 0x28, 0x7E, 0x7E, 0x2B, 0x7E, 0x2D, - 0x2E, 0x7E, 0x30, 0x7E, 0x7E, 0x33, 0x7E, 0x35, 0x36, 0x7E, 0x7E, 0x39, 0x3A, 0x7E, 0x3C, 0x7E, - 0x7E, 0x3F, 0x40, 0x7E, 0x7E, 0x43, 0x7E, 0x45, 0x46, 0x7E, 0x7E, 0x49, 0x4A, 0x7E, 0x4C, 0x7E, - 0x7E, 0x4F, 0x7E, 0x51, 0x52, 0x7E, 0x54, 0x7E, 0x7E, 0x57, 0x58, 0x7E, 0x7E, 0x5B, 0x7E, 0x5D, - 0x5E, 0x7E, 0x20, 0x7E, 0x7E, 0x23, 0x7E, 0x25, 0x26, 0x7E, 0x7E, 0x29, 0x2A, 0x7E, 0x2C, 0x7E, - 0x7E, 0x2F, 0x7E, 0x31, 0x32, 0x7E, 0x34, 0x7E, 0x7E, 0x37, 0x38, 0x7E, 0x7E, 0x3B, 0x7E, 0x3D, - 0x3E, 0x7E, 0x7E, 0x41, 0x42, 0x7E, 0x44, 0x7E, 0x7E, 0x47, 0x48, 0x7E, 0x7E, 0x4B, 0x7E, 0x4D, - 0x4E, 0x7E, 0x50, 0x7E, 0x7E, 0x53, 0x7E, 0x55, 0x56, 0x7E, 0x7E, 0x59, 0x5A, 0x7E, 0x5C, 0x7E, - 0x7E, 0x5F, 0x00, - /* Below byte added to align 4 bytes */ - 0xFF -}; diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/contactless_l1_app/EMV_polling_and_loopback.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/contactless_l1_app/EMV_polling_and_loopback.c deleted file mode 100644 index 4a12014dd9a..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/contactless_l1_app/EMV_polling_and_loopback.c +++ /dev/null @@ -1,970 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include "mml_nfc_pcd_port.h" -#include "EMV_polling_and_loopback.h" - -#include "logging.h" -#include "mxc_device.h" -#include "gpio.h" - -#define KEYPRESS_RETURN_DELAY_MS 25 - -uint8_t rapdu[261]; /**< Shared RAPDU buffer */ -int32_t rapdulen; /**< Length of current RAPDU in the shared buffer */ -int32_t rapdu_displayed; /**< Display flag, used to satisfy required EMV DTE logging */ - -/* - * uid_resp Buffer to save anticollision response: UID. - */ -uid_storage_t uid_store; - -uid_storage_t get_stored_uid(void) -{ - return uid_store; -} - -#define BEEPER_PORT MXC_GPIO3 -#define BEEPER_PIN MXC_GPIO_PIN_3 -#define BEEP_PASS_TIME_MS 150 -#define BEEP_FAIL_TIME_MS 150 - -// NOTE: Volume is set as a % of Duty cycle. DTE ships with volume at 10% duty cycle -// 8470 * .1 = 847. -#define BEEP_FAIL_TONE 2500 //8470 -#define BEEP_FAIL_VOL 2000 //847 -#define BEEP_PASS_TONE 250 //847 -#define BEEP_PASS_VOL 25 //84 - -#define PASS_LED_GPIO_PORT MXC_GPIO3 -#define PASS_LED_GPIO_PIN MXC_GPIO_PIN_4 -#define FAIL_LED_GPIO_PORT MXC_GPIO3 -#define FAIL_LED_GPIO_PIN MXC_GPIO_PIN_5 - -uint32_t indicator_setup = 0; - -mxc_gpio_cfg_t pass_led; -mxc_gpio_cfg_t fail_led; -mxc_gpio_cfg_t buzzer_out; - -static void do_beep(uint32_t tone, uint32_t vol, uint32_t duration_ms) -{ - uint32_t beep_time = 0; - uint32_t beep_loop_cnt = 0; - - if (tone == 0) { - return; - } - - if (duration_ms == 0) { - return; - } - - if (tone < vol) { - return; - } - - // No timer or pulse train on the buzzer gpio, got to bit bang it - // 4Khz is maximum tone volume, as the buzzer resonates here - // Tone set the period, in us - - // Volumes sets the duty cycle us - beep_time = (duration_ms * 1000) / tone; - - // Correct tone for the requested volume - tone = tone - vol; - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - - while (beep_loop_cnt++ < beep_time) { - MXC_GPIO_OutSet(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(vol); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(tone); - } - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); -} - -static void setup_indicator(void) -{ - pass_led.port = PASS_LED_GPIO_PORT; - pass_led.mask = PASS_LED_GPIO_PIN; - pass_led.pad = MXC_GPIO_PAD_NONE; - pass_led.func = MXC_GPIO_FUNC_OUT; - - MXC_GPIO_Config(&pass_led); - MXC_GPIO_OutSet(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - - fail_led.port = FAIL_LED_GPIO_PORT; - fail_led.mask = FAIL_LED_GPIO_PIN; - fail_led.pad = MXC_GPIO_PAD_NONE; - fail_led.func = MXC_GPIO_FUNC_OUT; - - MXC_GPIO_Config(&fail_led); - MXC_GPIO_OutSet(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); - - buzzer_out.port = BEEPER_PORT; - buzzer_out.mask = BEEPER_PIN; - buzzer_out.pad = MXC_GPIO_PAD_NONE; - buzzer_out.func = MXC_GPIO_FUNC_OUT; - // Use 3.3V for louder Buzz - buzzer_out.vssel = MXC_GPIO_VSSEL_VDDIOH; - - MXC_GPIO_Config(&buzzer_out); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - - indicator_setup = 1; -} - -static void indicate_success(void) -{ - MXC_GPIO_OutClr(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - MXC_GPIO_OutSet(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); - - do_beep(BEEP_PASS_TONE, BEEP_PASS_VOL, BEEP_PASS_TIME_MS); -} - -static void indicate_failure(void) -{ - MXC_GPIO_OutSet(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - MXC_GPIO_OutClr(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); - - do_beep(BEEP_FAIL_TONE, BEEP_FAIL_VOL, BEEP_FAIL_TIME_MS); -} - -static void clear_indications(void) -{ - MXC_GPIO_OutSet(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - MXC_GPIO_OutSet(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); -} - -static int32_t emvl1interopapduloop(void) -{ - int32_t ret; - // NOTE: need to have a large enough buffer here to handle loopback commands as large as 256 bytes, - // plus some header/footer bytes. - uint8_t capdu[261] = { 0x00, 0xA4, 0x04, 0x00, 0x0E, '2', 'P', 'A', 'Y', '.', - 'S', 'Y', 'S', '.', 'D', 'D', 'F', '0', '1', 0x00 }; - int32_t capdulen = 20; - - //do apdu. - do { - logging("CAPDU "); - hexdump(DBG_LVL_LOG, capdu, capdulen, 1); - - ret = SendAPDU(capdu, capdulen, rapdu, &rapdulen); - rapdu_displayed = 2; - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret) { - switch (ret) { - case ISO14443_3_ERR_PROTOCOL: - case ISO14443_3_ERR_TIMEOUT: - case ISO14443_3_ERR_TRANSMISSION: - return RESETPROCEDURE; - } - } - - if (rapdulen <= 2) { - // 2 bytes should be wrong case. - warning("Short APDU: %ld\n", rapdulen); - return RESETPROCEDURE; - } - - // This appears to be a valid RAPDU, allow it to be displayed - // To comply with logging requirement by EMVCo, we use this - // mechanic to only display the rapdu once. Sometimes we do here in the - // loop-back, other times at the end of the exchange loop below. - rapdu_displayed = 0; - - if (rapdu[1] == REMOVALPROCEDURE) { - info("Removal procedure\n"); - return REMOVALPROCEDURE; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - //pre next capdu,no status - memcpy(capdu, rapdu, rapdulen - 2); - capdulen = rapdulen - 2; - } while (1); - - return ret; -} - -/** - * @brief Implements EMV APDU Loopback for EMV L1 testing and verification - * - * Implements EMV APDU Loopback for EMV L1 testing and verification - * - * Called by @ref singleemvl1exchange - * - * @return #LOOPBACK_RAPDUS - */ -static int32_t emvl1apduloop(void) -{ - int32_t ret; - // NOTE: need to have a large enough buffer here to handle loopback commands as large as 256 bytes, - // plus some header/footer bytes. - uint8_t capdu[261] = { 0x00, 0xA4, 0x04, 0x00, 0x0E, '2', 'P', 'A', 'Y', '.', - 'S', 'Y', 'S', '.', 'D', 'D', 'F', '0', '1', 0x00 }; - int32_t capdulen = 20; - - //do apdu. - do { - logging("CAPDU "); - hexdump(DBG_LVL_LOG, capdu, capdulen, 1); - - ret = SendAPDU(capdu, capdulen, rapdu, &rapdulen); - rapdu_displayed = 2; - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret) { - switch (ret) { - case ISO14443_3_ERR_PROTOCOL: - case ISO14443_3_ERR_TIMEOUT: - case ISO14443_3_ERR_TRANSMISSION: - return RESETPROCEDURE; - } - } - - if (rapdulen <= 2) { - // 2 bytes should be wrong case. - warning("Short APDU: %ld\n", rapdulen); - return RESETPROCEDURE; - } - - // This appears to be a valid RAPDU, allow it to be displayed - // To comply with logging requirement by EMVCo, we use this - // mechanic to only display the rapdu once. Sometimes we do here in the - // loop-back, other times at the end of the exchange loop below. - rapdu_displayed = 0; - - if (rapdu[1] == REMOVALPROCEDURE) { - info("Removal procedure\n"); - return REMOVALPROCEDURE; - } else if (rapdu[1] == POWEROFFPROCEDURE) { - info("Power-Off procedure\n"); - return POWEROFFPROCEDURE; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - //pre next capdu,no status - memcpy(capdu, rapdu, rapdulen - 2); - capdulen = rapdulen - 2; - } while (1); - - return ret; -} - -/** - * @brief Implements EMV card polling for use in application/demo environment - * - * Implements EMV card polling for use in application/demo environment - * - * @param loop_num how many times through the loop before returning - * - * @return @ref POLLING_RESPONSES - */ -#ifdef LOG_ACTIVATION_RESPONSES -int32_t emvl1_poll_for_card(uint32_t loop_num) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - uint32_t count = 0; - - uint8_t atqa_buff[2]; - int32_t atqa_response_len; - - uint8_t resp_buff[256]; - int32_t resp_buff_len = 0; - - uint8_t sak_response; - - for (count = 0; count < loop_num; count++) { - type_a = 0; - type_b = 0; - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - return COLLISION_DETECTED; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_reset(); // NOTE: This is not done for EMV loopback - return NO_CARD_FOUND; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect_response(atqa_buff, &atqa_response_len, resp_buff, - &resp_buff_len, &sak_response); - - if (ret == ISO14443_3_ERR_SUCCESS) { - logging("ATQA "); - hexdump(DBG_LVL_LOG, atqa_buff, atqa_response_len, 0); - logging("UID "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - memcpy(uid_store.uid, resp_buff, resp_buff_len); - uid_store.uid_length = resp_buff_len; - logging("SAK "); - hexdump(DBG_LVL_LOG, &sak_response, 1, 0); - - ret = iso_14443_3a_active_response(resp_buff, &resp_buff_len); - - if (ret == ISO14443_3_ERR_SUCCESS) { - logging("ATS "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - - // Got a Type A Card ready for APDUs - return TYPE_A_READY; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - logging("UID "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - memcpy(uid_store.uid, resp_buff, resp_buff_len); - uid_store.uid_length = resp_buff_len; - return TYPE_A_NON_ISO14443_4_READY; - } - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - return COLLISION_DETECTED; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect_response(resp_buff, &resp_buff_len); - - if (ret == ISO14443_3_ERR_SUCCESS) { - logging("ATQB "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - - ret = iso_14443_3b_active_response(resp_buff, &resp_buff_len); -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - // Got a Type B Card ready for APDUs - - logging("ATTRIB_RESP "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - return TYPE_B_READY; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - return TYPE_B_NON_ISO14443_4_READY; - } - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } - } - - return 0; -} - -#else -// Don't log activation responses -int32_t emvl1_poll_for_card(uint32_t loop_num) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - uint32_t count = 0; - - for (count = 0; count < loop_num; count++) { - type_a = 0; - type_b = 0; - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - return COLLISION_DETECTED; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_reset(); // NOTE: This is not done for EMV loopback - return NO_CARD_FOUND; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3a_active(); - if (ret == ISO14443_3_ERR_SUCCESS) { - // Got a Type A Card ready for APDUs - return TYPE_A_READY; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - return TYPE_A_NON_ISO14443_4_READY; - } - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - return COLLISION_DETECTED; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect(); - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3b_active(); -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - // Got a Type B Card ready for APDUs - return TYPE_B_READY; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - return TYPE_B_NON_ISO14443_4_READY; - } - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } - } - - return 0; -} -#endif // LOG_ACTIVATION_RESPONSES - -/** - * @brief Implements EMV card polling for use in Level 1 loop-back testing environment - * - * Implements EMV card polling for use in Level 1 loop-back testing environment - * - * @param callback @ref callback_check_for_loop_termination_t - * Callback to check if this polling loop should be terminated. - * For instance the operator desires to switch to a different test mode. - * - * @note If @ref callback_check_for_loop_termination_t is NULL, loop will - * not return until a card is found and one exchange is completed. - * - * @retval #POLLING_TERMINATED - * @retval #EXCHANGE_COMPLETE - */ -int32_t singleemvl1exchange(callback_check_for_loop_termination_t callback) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - - while (1) { - type_a = 0; - type_b = 0; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A polling aborted\n"); - return 1; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling aborted\n"); - return 1; - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - break; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - continue; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3a_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A activate aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - //APDU - ret = emvl1apduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("A: Removal\n"); - iso_14443_3a_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("A: Reset\n"); - nfc_reset(); - break; - case POWEROFFPROCEDURE: - info("A: Power Off\n"); - poweroff_operatingfield(); - mml_nfc_pcd_task_sleep(TIMEOUT_POWEROFF_MS); - poweron_operatingfield(); - break; - } - break; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else { - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling 2 aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - break; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3b_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B activate aborted\n"); - return 1; - } - -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - //APDU - ret = emvl1apduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("B: Removal\n"); - iso_14443_3b_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("B: Reset\n"); - nfc_reset(); - break; - case POWEROFFPROCEDURE: - info("B: Power Off\n"); - poweroff_operatingfield(); - mml_nfc_pcd_task_sleep(TIMEOUT_POWEROFF_MS); - poweron_operatingfield(); - break; - } - - break; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - break; - } - } else { - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } - break; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - return 0; -} - -int32_t singleemvl1interopexchange(callback_check_for_loop_termination_t callback) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - - if (!indicator_setup) { - setup_indicator(); - } - - clear_indications(); - - while (1) { - type_a = 0; - type_b = 0; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A polling aborted\n"); - return 1; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling aborted\n"); - return 1; - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - break; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - continue; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3a_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A activate aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - //APDU - ret = emvl1interopapduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("A: Removal\n"); - logging("Success\n"); - indicate_success(); - iso_14443_3a_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("A: Reset\n"); - logging("Failure\n"); - indicate_failure(); - iso_14443_3a_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - } - break; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else { - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling 2 aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - break; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3b_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B activate aborted\n"); - return 1; - } - -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - //APDU - ret = emvl1apduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("B: Removal\n"); - logging("Success\n"); - indicate_success(); - iso_14443_3b_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("B: Reset\n"); - logging("Failure\n"); - indicate_failure(); - iso_14443_3b_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - } - - break; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - break; - } - } else { - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } - break; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - return 0; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/contactless_l1_app/emvl1_app.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/contactless_l1_app/emvl1_app.c deleted file mode 100644 index 29328dfb90c..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/contactless_l1_app/emvl1_app.c +++ /dev/null @@ -1,3126 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "mxc_device.h" -#include "mml_nfc_pcd_port.h" -#include "EMV_polling_and_loopback.h" -#include "emvl1_app.h" -#include "logging.h" -#include "pbm_commands.h" - -#include "uart.h" -#include "mml_nfc_pcd_rf_driver.h" - -#define FIELD_LOAD_DELAY_MS 100 -#define KEYPRESS_RETURN_DELAY_MS 25 - -#define TIMEOUT_TRANSAC_US 509 -#define PAUSE_TRANSAC_MS 95 - -#define REMOVALPROCEDURE 0x70 -#define POWEROFFPROCEDURE 0x72 - -#define RESETPROCEDURE 0x80 - -#define TYPE_A_READY 0x0A -#define TYPE_B_READY 0x0B - -#define MATRIX_HORIZONTAL_NUM_TICKS 27 - -#define PCD_HW_VER "2.0" -#define PCD_SW_VER "4.0.0" -#define PCD_FW_SUM "4b49c1cbf6e10d37d7559940246a7b9b1993a8dc" - -// Per Sony Whitepaper: Card Technical Note for Software Development -// the Guard Time after transmission of Command Packet Data to when the Reader should -// be ready to receive preamble is (42 x 64 - 16)/fc ~197us -#define FDT_F_PICC_MIN_TOLERANCE_EARLY ((42 * 64) - 16) - -mml_nfc_pcd_analog_params_matrix_t evkit_antenna_112x76_matrix = { - .fd_thresholds = { 180, 170, 140 }, - .fd_dyn_trigger_a = { 125, 125, 125 }, - .fd_dyn_math_a = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_b = { 125, 125, 125 }, - .fd_dyn_math_b = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_f = { 100, 100, 100 }, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I }, - .fd_dyn_trigger_v = { 125, 125, 125 }, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000 }, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000 }, - .fd_dyn_sttm_bfv = { 0x06060606, 0x06060606, 0x06060606 }, - .fd_dyn_stfm_bfv = { 0x7F060606, 0x7F060606, 0x7F060606 }, - .fd_dyn_gain = { 12, 12, 12 }, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F } -}; - -mml_nfc_pcd_analog_params_matrix_t custom_antenna_65x65_matrix = { - .fd_thresholds = { 220, 195, 180, 160, 120, 50 }, - .fd_dyn_trigger_a = { 45, 45, 50, 85, 100, 120 }, - .fd_dyn_math_a = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, - IQ_MATH_CH_I }, - .fd_dyn_trigger_b = { 60, 60, 60, 20, 20, 20 }, - .fd_dyn_math_b = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, - IQ_MATH_CH_I }, - .fd_dyn_trigger_f = { 40, 35, 25 }, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I }, - .fd_dyn_trigger_v = { 40, 35, 25 }, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000, 0x7F000000, 0x7F000000, 0x7F000000 }, - .fd_dyn_sttm_bfv = { 0x0D0D0D0D, 0x0B0B0B0B, 0x0B0B0B0B, 0x0B0B0B0B, 0x08080808, 0x06060606 }, - .fd_dyn_stfm_bfv = { 0x7F0D0D0D, 0x7F0B0B0B, 0x7F0B0B0B, 0x7F0B0B0B, 0x7F080808, 0x7F5A5550 }, - .fd_dyn_gain = { 12, 12, 12, 12, 12, 12 }, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F } -}; - -/* -mml_nfc_pcd_analog_params_matrix_t custom_antenna_65x65_matrix = { - .fd_thresholds = {255, 170, 160, 125}, - .fd_dyn_trigger_a = { 45, 45, 45}, - .fd_dyn_math_a = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I}, - .fd_dyn_trigger_b = { 125, 125, 125}, - .fd_dyn_trigger_b = { 35, 35, 35}, - .fd_dyn_math_b = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I}, - .fd_dyn_trigger_f = { 40, 35, 25}, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I}, - .fd_dyn_trigger_v = { 40, 35, 25}, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I}, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000}, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000}, - .fd_dyn_sttm_bfv = { 0x06060606, 0x06060606, 0x06060606}, - .fd_dyn_stfm_bfv = { 0x7F060606, 0x7F060606, 0x7F060606}, - .fd_dyn_gain = { 12, 12, 12}, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F} -}; -*/ - -uint8_t dte_buffer[280]; - -// Character buffer for data input -char input_buffer[32]; - -int32_t key_has_been_pressed(void); -uint8_t get_key_press_no_echo(void); - -// FIXME: remove when replaced by mxc_sys subroutine -int32_t trim_ro_to_rtc(void) -{ -#define NBB_BASE 0x40000800 -#define NBBFCR1_OFF 0x04 -#define AC_EN_POS 0 -#define AC_RUNNING_POS 1 - - volatile uint32_t *nbbfcr1_reg = (volatile uint32_t *)(NBB_BASE + NBBFCR1_OFF); - - // Need the 32Khz crystal enabled to do this trim - int ret_val = MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_ERTCO); - - if (ret_val != E_SUCCESS) { - return ret_val; - } - - // Bits: [9:8] MU[1:0] - How quickly it allowed to tune, provides some hysteresis - // 2 LDTRM - Allows it to actually use the trim? unclear - // 1 ACRUN - Runs the autocal - // 0 ACEN - Enabled the autocal block. Unclear why need this and run - *nbbfcr1_reg = 0x307; - - // At this point it should run until disabled. - - // Wait a bit to let autocal run, see if it did anything. - mml_nfc_pcd_task_sleep(100); - - if ((*nbbfcr1_reg & 0xFF80000) == 0) { - return E_BAD_STATE; - } - - return E_SUCCESS; -} - -void clear_screen(void) -{ - printf("\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n"); -} - -uint8_t get_key_press(void) -{ - int32_t status = 0; - uint8_t key_press = 0; - - // Wait for available char - do { - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - status = MXC_UART_GetRXFIFOAvailable(MXC_UART0); - } while (status < 1); - - key_press = MXC_UART_ReadCharacter(MXC_UART0); - - // Echo the key back - MXC_UART_WriteCharacter(MXC_UART0, key_press); - - return key_press; -} - -uint8_t get_key_press_no_echo(void) -{ - int32_t status = 0; - uint8_t key_press = 0; - - // Wait for available char - do { - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - status = MXC_UART_GetRXFIFOAvailable(MXC_UART0); - } while (status < 1); - - key_press = MXC_UART_ReadCharacter(MXC_UART0); - - return key_press; -} - -int32_t key_has_been_pressed(void) -{ - int32_t status = 0; - - status = MXC_UART_GetRXFIFOAvailable(MXC_UART0); - - // Eat random keypresses, to avoid bad menu interactions - MXC_UART_ClearRXFIFO(MXC_UART0); - - // If we have any available then a key has been pressed - if (status > 0) { - return 1; - } - return 0; -} - -int32_t dte_get_input_string(char *input_string) -{ - uint8_t key_press = 0; - int32_t char_count = 0; - - while (1) { - key_press = get_key_press(); - - if ((key_press == '\n') || (key_press == '\r')) { - break; - } - - if ((key_press == ' ') && (char_count == 0)) { - continue; // ignore leading spaces - } - - if ((key_press == '\b') && (char_count > 0)) { - // backspace, back up one character - // NOTE: we sent the terminal one backspace already - // but now we want to clear out the character, so put ' ' and then another '\b' - printf(" \b"); - char_count--; - continue; - } - - input_string[char_count++] = key_press; - } - - // Null terminate the string - input_string[char_count] = 0x00; - - return char_count; -} - -int32_t dte_get_int_val_raw(int32_t exp_char_count, int32_t min_val) -{ - int32_t char_count = 0; - int32_t input_int = 0; - - while (1) { - char_count = dte_get_input_string(input_buffer); - - if (char_count > exp_char_count) { - printf("\nMax characters allowed %ld try again\n", exp_char_count); - return -1; - } - - if (char_count > 0) { - break; - } - } - - // Get actual data - sscanf(input_buffer, "%d", &input_int); - - if (char_count > exp_char_count) { - printf("\nMax characters allowed %ld try again\n", exp_char_count); - return -1; - } - - return input_int; -} - -int32_t dte_get_int_val(char name[], int32_t exp_char_count, int32_t min_val, int32_t max_val) -{ - int32_t new_value = 0; - - printf("Enter an new %s value from %ld to %ld\n", name, min_val, max_val); - printf("=> "); - - new_value = dte_get_int_val_raw(exp_char_count, min_val); - - if ((new_value < min_val) || (new_value > max_val)) { - printf("Value not in allowed range try again\n"); - return -1; - } - - printf("New %s value: %ld\n", name, new_value); - - return new_value; -} - -int32_t dte_get_math_val(char name[]) -{ - int32_t new_value = 0; - - while (1) { - printf("Select a combiner math from these options:\n"); - printf("1. IQ_MATH_CH_I\n"); - printf("2. IQ_MATH_CH_Q\n"); - printf("3. IQ_MATH_I_MINUS_Q\n"); - printf("4. IQ_MATH_Q_MINUS_I\n"); - printf("5. IQ_MATH_I_PLUS_Q\n"); - printf("=> "); - - new_value = dte_get_int_val_raw(1, 1); - - if ((new_value < 1) || (new_value > 5)) { - printf("Selection not in allowed range try again\n"); - } else { - break; - } - } - - printf("New %s selection: ", name); - - switch (new_value) { - case 1: - printf("IQ_MATH_CH_I\n"); - return IQ_MATH_CH_I; - case 2: - printf("IQ_MATH_CH_Q\n"); - return IQ_MATH_CH_Q; - case 3: - printf("IQ_MATH_I_MINUS_Q\n"); - return IQ_MATH_I_MINUS_Q; - case 4: - printf("IQ_MATH_Q_MINUS_I\n"); - return IQ_MATH_Q_MINUS_I; - case 5: - printf("IQ_MATH_I_PLUS_Q\n"); - return IQ_MATH_I_PLUS_Q; - - default: - info("IQ_MATH_I_MINUS_Q\n"); - return IQ_MATH_I_MINUS_Q; - } -} - -void show_current_field_loading_level(void) -{ - // Displays both the current sensed field level, and the current threshold - uint8_t sensed_threshold = 0; - uint32_t field_sensed = 0; - uint8_t current_field_level = 0; - - poweroff_operatingfield(); - poweron_operatingfield(); - - printf("\nField Load Level: "); - - while (1) { - if (key_has_been_pressed()) { - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - logging("\n\n"); - poweroff_operatingfield(); - return; - } - - // Sweep through and identify the requested level - for (sensed_threshold = 0; sensed_threshold < FD_THRESH_NUM_STEPS;) { - mml_nfc_pcd_detect_loading( - mml_nfc_pcd_analog_parameters_matrix.fd_thresholds[sensed_threshold], - &field_sensed); - - if (field_sensed) { - break; - } - - sensed_threshold++; - } - - // Bounds check - if (sensed_threshold > (FD_THRESH_NUM_STEPS - 1)) { - sensed_threshold = FD_THRESH_NUM_STEPS - 1; - } - - mml_nfc_pcd_find_current_field_loading(¤t_field_level); - - printf("\b\b\b\b\b\b\b\b\b\b\b\b%3d index: %d", current_field_level, sensed_threshold); - - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - } -} - -void dte_antenna_selection(void) -{ - while (1) { - clear_screen(); - - printf("Antenna Selection Menu\n"); - printf("L. Load Analog Settings for 112x76 Antenna\n"); - printf("C. Load Analog Settings for Custom 65x65 Antenna\n"); - printf("E. Exit back to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - // Load Analog Settings for 112x76 Antenna - case 'L': - case 'l': - mml_nfc_pcd_analog_parameters_matrix = evkit_antenna_112x76_matrix; - poweroff_operatingfield(); - poweron_operatingfield(); - printf("\nEVKIT Antenna 112x76 Settings Loaded\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - // Load Analog Settings for 65x65 Antenna - case 'C': - case 'c': - mml_nfc_pcd_analog_parameters_matrix = custom_antenna_65x65_matrix; - poweroff_operatingfield(); - poweron_operatingfield(); - printf("\nCustom antenna 65x65 Settings Loaded\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - // Exit - case 'E': - case 'e': - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void print_comb_math(uint8_t iq_math) -{ - switch (iq_math) { - case IQ_MATH_CH_I: - printf(" I | "); - break; - case IQ_MATH_CH_Q: - printf(" Q | "); - break; - case IQ_MATH_I_MINUS_Q: - printf(" I-Q | "); - break; - case IQ_MATH_Q_MINUS_I: - printf(" Q-I | "); - break; - case IQ_MATH_I_PLUS_Q: - printf(" I+Q | "); - break; - - default: - printf(" ??? | "); - break; - } -} - -void print_matrix_header(void) -{ - int i; - printf("\nStep Index: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", i); - } - printf("\n"); - for (i = 0; i < MATRIX_HORIZONTAL_NUM_TICKS; i++) { - printf("-"); - } - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("-----------"); - } - printf("\n"); -} - -void get_analog_math_value(uint8_t val_array[], char name[]) -{ - int i, j; - int new_val = 0; - char val_string[64]; - uint8_t key_press = 0; - - printf("Enter index to change, or 'A' for all\n"); - printf("=> "); - - while (1) { - key_press = get_key_press(); - if (((key_press >= '0') && (key_press <= ((FD_THRESH_NUM_STEPS - 1) + '0'))) || - (key_press == 'A') || (key_press == 'a')) { - break; - } - - printf("Invalid selection try again\n"); - printf("=> "); - } - - if ((key_press == 'A') || (key_press == 'a')) { - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - print_comb_math(val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - new_val = dte_get_math_val(val_string); - - val_array[i] = new_val; - } - } else { - i = key_press - '0'; - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - print_comb_math(val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - new_val = dte_get_math_val(val_string); - - val_array[i] = new_val; - } -} - -void get_hex_analog_matrix_value(uint32_t val_array[], char name[]) -{ - int i, j; - uint32_t new_val = 0; - char val_string[64]; - uint8_t key_press = 0; - int scan_status = 0; - - printf("Enter index to change, or 'A' for all\n"); - printf("=> "); - - while (1) { - key_press = get_key_press(); - if (((key_press >= '0') && (key_press <= ((FD_THRESH_NUM_STEPS - 1) + '0'))) || - (key_press == 'A') || (key_press == 'a')) { - break; - } - - printf("Invalid selection try again\n"); - printf("=> "); - } - - if ((key_press == 'A') || (key_press == 'a')) { - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf("%08X | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - printf("Enter an new value in HEX with no 0x\n"); - printf("=> "); - dte_get_input_string(input_buffer); - scan_status = sscanf(input_buffer, "%X", &new_val); - } while (scan_status != 1); - - val_array[i] = new_val; - } - } else { - i = key_press - '0'; - - print_matrix_header(); - - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf("%08X | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - printf("Enter an new value in HEX with no 0x\n"); - printf("=> "); - dte_get_input_string(input_buffer); - scan_status = sscanf(input_buffer, "%X", &new_val); - } while (scan_status != 1); - - val_array[i] = new_val; - } -} - -void get_analog_matrix_value(uint8_t val_array[], char name[], int32_t exp_char_count, - int32_t min_val, int32_t max_val) -{ - int i, j; - int new_val = 0; - char val_string[64]; - uint8_t key_press = 0; - - printf("Enter index to change, or 'A' for all\n"); - printf("=> "); - - while (1) { - key_press = get_key_press(); - if (((key_press >= '0') && (key_press <= ((FD_THRESH_NUM_STEPS - 1) + '0'))) || - (key_press == 'A') || (key_press == 'a')) { - break; - } - - printf("Invalid selection try again\n"); - printf("=> "); - } - - if ((key_press == 'A') || (key_press == 'a')) { - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf(" %3d | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - new_val = dte_get_int_val(val_string, exp_char_count, min_val, max_val); - } while (new_val == -1); - - val_array[i] = new_val; - } - } else { - i = key_press - '0'; - - print_matrix_header(); - - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf(" %3d | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - new_val = dte_get_int_val(val_string, exp_char_count, min_val, max_val); - } while (new_val == -1); - - val_array[i] = new_val; - } -} - -void force_rf_settings_update(void) -{ - // We will use a dummy transaction to force the actual config update - int32_t tx_buffer_len = 1; - uint8_t tx_buffer[1] = { 0x00 }; - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - int32_t status = MML_NFC_PCD_E_SUCCESS; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = tx_buffer; - trans_params.tx_len = tx_buffer_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.early_limit = 4000; - trans_params.timeout = 5000; - trans_params.delay_till_send = 3000; - - while (1) { - printf("\n\nUpdate and set RF config for which protocol?\n\n"); - - printf("1. PROTOCOL_ISO14443A\n"); - printf("2. PROTOCOL_ISO14443B\n"); - printf("3. PROTOCOL_TYPE_F\n"); - printf("4. PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH\n"); - printf("5. PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW\n"); - printf("6. PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH\n"); - printf("7. PROTOCOL_ISO15693_100_1OF4_DUAL_LOW\n"); - printf("8. PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH\n"); - printf("9. PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW\n"); - printf("A. PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH\n"); - printf("B. PROTOCOL_ISO15693_100_1OF256_DUAL_LOW\n"); - printf("C. PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH\n"); - printf("D. PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW\n"); - printf("E. PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH\n"); - printf("F. PROTOCOL_ISO15693_10_1OF4_DUAL_LOW\n"); - printf("G. PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH\n"); - printf("H. PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW\n"); - printf("I. PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH\n"); - printf("J. PROTOCOL_ISO15693_10_1OF256_DUAL_LOW\n"); - - switch (get_key_press()) { - case '1': - trans_params.protocol = PROTOCOL_ISO14443A; - break; - case '2': - trans_params.protocol = PROTOCOL_ISO14443B; - break; - case '3': - trans_params.protocol = PROTOCOL_TYPE_F; - break; - case '4': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH; - break; - case '5': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW; - break; - case '6': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH; - break; - case '7': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_LOW; - break; - case '8': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH; - break; - case '9': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW; - break; - case 'A': - case 'a': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH; - break; - case 'B': - case 'b': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_LOW; - break; - case 'C': - case 'c': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH; - break; - case 'D': - case 'd': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW; - break; - case 'E': - case 'e': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH; - break; - case 'F': - case 'f': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_LOW; - break; - case 'G': - case 'g': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH; - break; - case 'H': - case 'h': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW; - break; - case 'I': - case 'i': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH; - break; - case 'J': - case 'j': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_LOW; - break; - - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - continue; - } - - status = mml_nfc_pcd_transceive(trans_params); - - if ((status != MML_NFC_PCD_E_SUCCESS) && (status != MML_NFC_PCD_E_TIMEOUT)) { - printf("Error during attempt to set RF for protocol: %d\n", status); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - } else { - printf("RF config set\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - } - - return; - } -} - -void print_matrix_spacer(void) -{ - int i = 0; - - for (i = 0; i < 27; i++) { - printf("-"); - } - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("-----------"); - } - printf("\n"); -} - -void dte_analog_settings() -{ - int i = 0; - - while (1) { - clear_screen(); - - printf("Maxim Analog Settings Menu\n"); - print_matrix_header(); - - printf("FD Thresholds: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_thresholds[i]); - } - printf("\n"); - - print_matrix_spacer(); - - printf("FD Dynamic Combiner Math A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a[i]); - } - printf("\n"); - printf("FD Dynamic Combiner Math B: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_b[i]); - } - printf("\n"); - printf("FD Dynamic Combiner Math F: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_f[i]); - } - printf("\n"); - printf("FD Dynamic Combiner Math V: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_v[i]); - } - - printf("\n"); - - printf("\n"); - printf("FD Dynamic STTM_A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a[i]); - } - printf("\n"); - printf("FD Dynamic STFM_A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a[i]); - } - printf("\n"); - printf("FD Dynamic STTM_BFV: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[i]); - } - printf("\n"); - printf("FD Dynamic STFM_BFV: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[i]); - } - - printf("\n"); - - printf("\n"); - printf("FD Dynamic Trigger Level A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a[i]); - } - printf("\n"); - printf("FD Dynamic Trigger Level B: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_b[i]); - } - printf("\n"); - printf("FD Dynamic Trigger Level F: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_f[i]); - } - - printf("\n"); - - printf("\n"); - printf("FD Dynamic Trigger Level V: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_v[i]); - } - printf("\n"); - printf("FD Dynamic Gain: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_gain[i]); - } - printf("\n"); - printf("FD Dynamic Attenuation: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_atten[i]); - } - printf("\n"); - print_matrix_spacer(); - - printf("1. Change FD Thresholds\n"); - - printf("\n"); - - printf("2. Change FD Dynamic Combiner Math A\n"); - printf("3. Change FD Dynamic Combiner Math B\n"); - printf("4. Change FD Dynamic Combiner Math F\n"); - printf("5. Change FD Dynamic Combiner Math V\n"); - - printf("\n"); - - printf("6. Change FD Dynamic STTM_A\n"); - printf("7. Change FD Dynamic STFM_A\n"); - printf("8. Change FD Dynamic STTM_BFV\n"); - printf("9. Change FD Dynamic STFM_BFV\n"); - - printf("\n"); - - printf("A. Change FD Dynamic Trigger A\n"); - printf("B. Change FD Dynamic Trigger B\n"); - printf("F. Change FD Dynamic Trigger F\n"); - printf("V. Change FD Dynamic Trigger V\n"); - - printf("\n"); - - printf("G. Change FD Dynamic Gain\n"); - printf("R. Change FD Dynamic Attenuation\n"); - - printf("\n"); - - printf("T. Test/Display Field Detect Level\n"); - printf("U. Update actual RF settings\n"); - printf("E. Exit back to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - // FD Thresholds - case '1': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_thresholds, - "FD Thresholds ", 3, 0, 255); - break; - // FD Dynamic STTM_A - case '6': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a, - "FD Dynamic STTM_A: "); - break; - // FD Dynamic STFM_A - case '7': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a, - "FD Dynamic STFM_A "); - break; - // FD Dynamic STTM_BFV - case '8': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv, - "FD Dynamic STTM_BVF "); - break; - // FD Dynamic STFM_BFV - case '9': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv, - "FD Dynamic STFM_BVF "); - break; - // FD Dynamic Trigger A - case 'A': - case 'a': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a, - "FD Dynamic Trigger A ", 3, 0, 127); - break; - // FD Dynamic Math A - case '2': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a, - "FD Dynamic Combiner Math A "); - break; - // FD Dynamic Trigger B - case 'B': - case 'b': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_b, - "FD Dynamic Trigger B ", 3, 0, 127); - break; - // FD Dynamic Math B - case '3': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_b, - "FD Dynamic Combiner Math B "); - break; - // FD Dynamic Trigger F - case 'F': - case 'f': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_f, - "FD Dynamic Trigger F ", 3, 0, 127); - break; - // FD Dynamic Math F - case '4': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_f, - "FD Dynamic Combiner Math F "); - break; - // FD Dynamic Trigger V - case 'V': - case 'v': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_v, - "FD Dynamic Trigger V ", 3, 0, 127); - break; - // FD Dynamic Math V - case '5': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_v, - "FD Dynamic Combiner Math V "); - break; - // FD Dynamic Gain - case 'G': - case 'g': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_gain, - "FD Dynamic Gain ", 2, 0, 12); - break; - // FD Dynamic Attenuation - case 'R': - case 'r': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_atten, - "FD Dynamic Attenuation ", 2, 0, 0x1F); - break; - // FD Display - case 'T': - case 't': - printf("\n\nPress any key to quit.\n"); - show_current_field_loading_level(); - break; - // Update RF Settings - case 'U': - case 'u': - force_rf_settings_update(); - break; - // Exit - case 'E': - case 'e': - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } // End of while 1 -} - -void dte_settings(void) -{ - while (1) { - clear_screen(); - - printf("Maxim Settings Menu\n"); - printf("Logging Level: %ld\n", g_logging_level); - - printf("A. View or Change Analog Settings\n"); - printf("N. Select Antenna and Set Analog Defaults\n"); - printf("L. Change Logging Level\n"); - printf("E. Exit back to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - // Analog Settings - case 'A': - case 'a': - dte_analog_settings(); - break; - case 'N': - case 'n': - dte_antenna_selection(); - break; - // Logging level change - case 'L': - case 'l': - printf("\nSelect Logging Level:\n"); - printf("0. None\n"); - printf("1. Logging (Default)\n"); - printf("2. Errors\n"); - printf("3. Warnings\n"); - printf("4. Informational\n"); - printf("5. Debug\n"); - printf("6. Full Debug\n"); - switch (get_key_press()) { - case '0': - g_logging_level = DBG_LVL_NON; - break; - case '1': - g_logging_level = DBG_LVL_LOG; - break; - case '2': - g_logging_level = DBG_LVL_ERR; - break; - case '3': - g_logging_level = DBG_LVL_WRN; - break; - case '4': - g_logging_level = DBG_LVL_INF; - break; - case '5': - g_logging_level = DBG_LVL_DBG; - break; - case '6': - g_logging_level = DBG_LVL_FDB; - break; - default: - printf("\n**Invalid selection no change made**\n\n"); - break; - } - - logging("\nshowing logging messages\n"); - error("showing error messages\n"); - warning("showing warn messages\n"); - info("showing info messages\n"); - debug("showing debug messages\n"); - full_debug("showing full_debug messages\n"); - - printf("\nPress any key to continue...\n"); - get_key_press_no_echo(); - - break; - // Exit - case 'E': - case 'e': - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte_get_loop_params(int32_t *num_loops) -{ - uint8_t key_press = 0; - int32_t char_count = 0; - int32_t temp_count = 0; - int32_t i; - uint8_t loop_input[5]; - - while (1) { - clear_screen(); - printf("Loop Setting: Num Loops: %ld\n", *num_loops); - printf("Enter an new number of loops (1-9999), then press enter\n"); - printf("=> "); - - while (char_count < 5) { - key_press = get_key_press(); - - if ((key_press == '\n') || (key_press == '\r')) { - break; - } - - if ((key_press < '0') || (key_press > '9')) { - printf("\nInvalid digit, only 0-9 allowed.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - return; - } - - loop_input[char_count++] = key_press; - } - - if (char_count > 4) { - printf("\nMax Allowed 9999. Try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - return; - } - - if (char_count > 0) { - break; - } - } - - // Back up to last actual digit - char_count--; - - for (i = 1; char_count >= 0; char_count--, i *= 10) { - temp_count += (loop_input[char_count] - '0') * i; - } - - if ((temp_count < 0) || (temp_count > 9999)) { - printf("Not an allowed number of loops, not changing\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - return; - } - - *num_loops = temp_count; - - printf("New Number of Loops: %ld\n", *num_loops); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - - return; -} - -void dte_do_analog_polling(int32_t num_loops) -{ - int32_t i; - - printf("\nAnalog Loop Back Mode\n"); - printf("\n!Test will loop for %ld times or until any key is pressed to stop test!\n\n", - num_loops); - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - printf("\nAnalogue %ld\n", i); - - if (singleemvl1exchange(key_has_been_pressed)) { - nfc_reset(); - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_reset(int32_t num_loops) -{ - int32_t i; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nReset Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - nfc_reset(); - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_wupa(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nWUPA Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - printf("WUPA ->\n"); - ret = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, dte_buffer, WAKEUP_NOTRETRY); - if (ret == ISO14443_3_ERR_SUCCESS) { - printf("ATQA <-\n"); - } - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_rats(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nRATS Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - - printf("ANTICOLISION ->\n"); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ANTICOLISION RESP <-\n"); - - printf("RATS ->\n"); - ret = iso_14443_3a_active(); - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ATS <-\n"); - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_wupb(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - int32_t atq_len = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nWUPB Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - printf("WUPB ->\n"); - ret = iso_14443_3b_cmd_req_wup(dte_buffer, &atq_len, WAKEUP_NOTRETRY); - if (ret == ISO14443_3_ERR_SUCCESS) { - printf("ATQB <-\n"); - } - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_attrib(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nATTRIB Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - - printf("ANTICOLISION ->\n"); - ret = iso_14443_3b_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ANTICOLISION RESP <-\n"); - - printf("ATTRIB ->\n"); - ret = iso_14443_3b_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ATTRIB RESP <-\n"); - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -uint32_t decode_pbm_type(uint8_t sak) -{ - if (sak & 0x08) { - // Bit 4 == 1 - if (sak & 0x10) { - // Bit 5 == 1 - return PBM_4K; - } else { - // Bit 5 == 0 - if (sak & 0x01) { - // Bit 1 == 1 - return PBM_MINI; - } else { - // Bit 1 == 0 - return PBM_1K; - } - } - } else { - // Bit 4 == 0 - if (sak & 0x10) { - // Bit 5 == 1 - if (sak & 0x01) { - // Bit 1 == 1 - return PBM_PLUS_4K_SL2; - } else { - // Bit 1 == 0 - return PBM_PLUS_2K_SL2; - } - } else { - // Bit 5 == 0 - if (sak & 0x20) { - // Bit 6 == 1 - // This version requires RATS etc - // Is must therefore be compliant, so we should not be here - // Do nothing - return PBM_TYPE_UNKNOWN; - } else { - // Bit 6 == 0 - return PBM_UL; - } - } - } -} - -// This function assumes a PBM card has been found and identified, and the requested block authenticated -// This function only supports PBM Classic cards -int32_t pbm_create_value_block(uint8_t block_num, uint32_t value) -{ - uint8_t val_blk_buffer[16]; - - val_blk_buffer[0] = (value >> 0) & 0xFF; - val_blk_buffer[1] = (value >> 8) & 0xFF; - val_blk_buffer[2] = (value >> 16) & 0xFF; - val_blk_buffer[3] = (value >> 24) & 0xFF; - val_blk_buffer[4] = ~val_blk_buffer[0]; - val_blk_buffer[5] = ~val_blk_buffer[1]; - val_blk_buffer[6] = ~val_blk_buffer[2]; - val_blk_buffer[7] = ~val_blk_buffer[3]; - val_blk_buffer[8] = val_blk_buffer[0]; - val_blk_buffer[9] = val_blk_buffer[1]; - val_blk_buffer[10] = val_blk_buffer[2]; - val_blk_buffer[11] = val_blk_buffer[3]; - - // Address Section - val_blk_buffer[12] = block_num; - val_blk_buffer[13] = ~block_num; - val_blk_buffer[14] = block_num; - val_blk_buffer[15] = ~block_num; - - return pbm_write_block(block_num, val_blk_buffer); -} - -// Decode working time specified by ATQC -void show_response_time(uint8_t PMm_val, int32_t n) -{ - int32_t T_us = 302; - int32_t A = PMm_val & 0x7; - int32_t B = (PMm_val >> 3) & 0x7; - int32_t E = (PMm_val >> 6) & 0x3; - int32_t time = 0; - - time = T_us * ((B + 1) * n + (A + 1)) * pow(4, E); - - printf("%ldus\n", time); -} - -void raw_loop_test(mml_nfc_pcd_transceive_params_t trans_params, int32_t do_reset) -{ - int32_t response = 0; - - int32_t sent = 0; - int32_t passed = 0; - int32_t num_loops = 1000; - int32_t row_passed = 0; - - poweron_operatingfield(); - mml_nfc_pcd_task_sleep(10); - - while (1) { - if (key_has_been_pressed()) { - poweroff_operatingfield(); - break; - } - - response = mml_nfc_pcd_transceive(trans_params); - sent++; - - if (response == MML_NFC_PCD_E_SUCCESS) { - printf("o"); - passed++; - row_passed++; - } else { - printf("."); - } - - if (do_reset) { - nfc_reset(); - } - - if (sent % 50 == 0) { - printf(" [ %2ld/ 50] %3ld%%\n", row_passed, ((row_passed * 100) / 50)); - row_passed = 0; - } - - if (sent >= num_loops) { - break; - } - } - - nfc_reset(); - printf("\n\n(TOTAL) [%4ld/%4ld].... %3ld.%02ld%%\n\n", passed, sent, ((passed * 100) / sent), - (((passed * 10000) / sent) - (((passed * 100) / sent) * 100))); - poweroff_operatingfield(); -} - -void type_a_loop_test(void) -{ - uint8_t send_buffer_wupa[1] = { 0x52 }; - int32_t send_len_wupa = 1; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - - // Loop test resets after every command, so we must enforce our powerup delay (5ms) - // 5ms / (1/13560000) => 5ms / 73.746ns = 67,800fc - trans_params.delay_till_send = 67800; - - // Using same timeout as Type F loop test: 200ms instead of the normal ISO14443_FWT_ATQB - // 200ms / (1/13560000) => 200ms / 73.746ns = 2,712,000fc - trans_params.timeout = 2712000; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - - printf("\n\nSending 1000 WUPA, with 200ms timeout\n\n"); - raw_loop_test(trans_params, 1); -} - -void type_b_loop_test(void) -{ - uint8_t send_buffer_wupb[3] = { 0x05, 0x00, 0x08 }; - int32_t send_len_wupb = 3; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - - // Loop test resets after every command, so we must enforce our powerup delay (5ms) - // 5ms / (1/13560000) => 5ms / 73.746ns = 67,800fc - trans_params.delay_till_send = 67800; - - // Using same timeout as Type F loop test: 200ms instead of the normal ISO14443_FWT_ATQB - // 200ms / (1/13560000) => 200ms / 73.746ns = 2,712,000 - trans_params.timeout = 2712000; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - - printf("\n\nSending 1000 WUPB, with 200ms timeout\n\n"); - raw_loop_test(trans_params, 1); -} - -void type_f_loop_test(void) -{ - int32_t reqc_buf_len = 6; - uint8_t reqc_buf[6] = { 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00 }; - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_TYPE_F; - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = reqc_buf; - trans_params.tx_len = reqc_buf_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - - // ATQC should start in Slot 0, This should happen by the time detailed below. Currently using Trfw - // from ISO18092 section 11.1.1, RF Waiting Time, as the margin for detection of ATQC. Alternatively, - // we could delay till the very end of Slot 0, but this does not seem strict enough. - // NOTE: RF driver times from end of TX to end of SYNC code, start of LEN byte. So we need to add - // this additional time to the timeout. 8 bytes at 64fc per bit. - // - // Td = (512 * 64fc = 32768), Time to LEN (T2len) = (8 * 8 * 64fc = 4096), Trfw = (512fc) - // Td + T2len + Trfw => 32768 + 4096 + 512 => 37367 - // - // For RW_RW_Kiteisyo polling loop test, timeout desired is 200ms - // 200ms / (1/13560000) => 200ms / 73.746ns = 2,712,000 - trans_params.timeout = 2712000; - - // Per Sony Whitepaper: Card Technical Note for Software Development - // the Guard Time after transmission of Command Packet Data to when the Reader should - // be ready to receive preamble is (42 x 64 - 16)/fc ~197us - trans_params.early_limit = FDT_F_PICC_MIN_TOLERANCE_EARLY; - - printf("\n\nSending 1000 REQC, with 200ms timeout\n\n"); - raw_loop_test(trans_params, 0); -} - -#define ATQC_LEN 18 -#define ATQC_LEN_OFFSET 0 -#define ATQC_COMMAND_CODE 1 -#define ATQC_COMMAND_CODE_OFFSET 1 -#define ATQC_NFCID2_OFFSET 2 -#define ATQC_NFCID2_LEN 8 -#define ATQC_PAD_OFFSET 10 -#define ATQC_PAD_LEN 8 -#define ATQC_ID_COD_BYTE_1_OFFSET 10 -#define ATQC_ID_COD_BYTE_2_OFFSET 11 -#define ATQC_RESPONSE_TIME_OFFSET 12 - -void type_f_commands(void) -{ - int32_t response = 0; - - int32_t reqc_buf_len = 6; - uint8_t reqc_buf[6] = { 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00 }; - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_TYPE_F; - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = reqc_buf; - trans_params.tx_len = reqc_buf_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - - // ATQC should start in Slot 0, This should happen by the time detailed below. Currently using Trfw - // from ISO18092 section 11.1.1, RF Waiting Time, as the margin for detection of ATQC. Alternatively, - // we could delay till the very end of Slot 0, but this does not seem strict enough. - // NOTE: RF driver times from end of TX to end of SYNC code, start of LEN byte. So we need to add - // this additional time to the timeout. 8 bytes at 64fc per bit. - // - // Td = (512 * 64fc = 32768), Time to LEN (T2len) = (8 * 8 * 64fc = 4096), Trfw = (512fc) - // Td + T2len + Trfw => 32768 + 4096 + 512 => 37367 - trans_params.timeout = 37367; - - // Per Sony Whitepaper: Card Technical Note for Software Development - // the Guard Time after transmission of Command Packet Data to when the Reader should - // be ready to receive preamble is (42 x 64 - 16)/fc ~197us - trans_params.early_limit = FDT_F_PICC_MIN_TOLERANCE_EARLY; - - while (1) { - clear_screen(); - - printf("Type F Commands\n"); - printf("1. Poll for Type F Card (REQC)\n"); - printf("2. Loop Test for Type F Card (REQC)\n"); - printf("E. Exit to previous menu\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - case '1': - poweron_operatingfield(); - // Allow card to wake up - mml_nfc_pcd_task_sleep(10); - - response = mml_nfc_pcd_transceive(trans_params); - printf("\n\n"); - - if (response == MML_NFC_PCD_E_SUCCESS) { - printf("Got a response, length in bytes: %ld\n", receive_len); - - hexdump(DBG_LVL_NON, receive_buffer, receive_len, 1); - - printf("ATQC breakdown:\n\n"); - - if (receive_buffer[ATQC_LEN_OFFSET] != ATQC_LEN) { - printf("ATQC length invalid, expected: %d got: %d\n", ATQC_LEN, - receive_buffer[ATQC_LEN_OFFSET]); - } else { - printf("ATQC Length valid\n"); - } - - if (receive_buffer[ATQC_COMMAND_CODE_OFFSET] != ATQC_COMMAND_CODE) { - printf("ATQC Command Code invalid, expected: %d got: %d\n", ATQC_COMMAND_CODE, - receive_buffer[ATQC_COMMAND_CODE_OFFSET]); - } else { - printf("ATQC Command Code valid\n"); - } - - printf("NFCID2: "); - hexdump(DBG_LVL_NON, &receive_buffer[ATQC_NFCID2_OFFSET], ATQC_NFCID2_LEN, 1); - - printf("PAD (PMm): "); - hexdump(DBG_LVL_NON, &receive_buffer[ATQC_PAD_OFFSET], ATQC_PAD_LEN, 1); - - printf(" IC Code: 0x%02X%02X\n", receive_buffer[ATQC_ID_COD_BYTE_1_OFFSET], - receive_buffer[ATQC_ID_COD_BYTE_2_OFFSET]); - printf("Request Service Command (Per Service [n]): "); - show_response_time(receive_buffer[ATQC_RESPONSE_TIME_OFFSET], 1); - } else { // (response != MML_NFC_PCD_E_SUCCESS) - printf("Invalid Response: "); - - if (response == MML_NFC_PCD_E_TIMEOUT) { - printf("Timeout (No card found)\n"); - } else if (response == MML_NFC_PCD_E_COLLISION) { - printf("Collision Error\n"); - } else if (response == MML_NFC_PCD_E_PROTOCOL) { - printf("Protocol Error\n"); - } else if (response == MML_NFC_PCD_E_BAD_PARAM) { - printf("Bad Parameter\n"); - } else { - printf("Un-Decoded error code: %ld\n", response); - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case '2': - type_f_loop_test(); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case 'M': - case 'm': - dte_settings(); - break; - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press(); - break; - } - } -} - -void type_v_inventory_test(mml_nfc_pcd_transceive_params_t trans_params) -{ - int32_t response = 0; - - uint8_t v_uid[8]; - - poweron_operatingfield(); - // Allow card to wake up - mml_nfc_pcd_task_sleep(20); - - response = mml_nfc_pcd_transceive(trans_params); - printf("\n\n"); - - if (response == MML_NFC_PCD_E_SUCCESS) { - if (*trans_params.rx_len == 10) { - printf("Got a response, length in bytes: %ld\n", *trans_params.rx_len); - - hexdump(DBG_LVL_NON, trans_params.rx_buf, *trans_params.rx_len, 1); - - if (trans_params.rx_buf[0] & 0x1) { - printf("Card Reported Error\n"); - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); - return; - } - if (trans_params.rx_buf[0] & 0xFE) { - printf("Unsupported Flags\n"); - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); - return; - } - printf("DSFID: 0x%02x\n", trans_params.rx_buf[1]); - printf("UID Is : "); - for (int i = 0; i < 8; i++) { - v_uid[i] = trans_params.rx_buf[i + 2]; - printf("0x%02x ", v_uid[i]); - } - - printf("\n"); - } else { - printf("Apparently, we have success. However, expect 10 bytes but only got: %d\n", - *trans_params.rx_len); - printf("Received data"); - hexdump(DBG_LVL_NON, trans_params.rx_buf, *trans_params.rx_len, 1); - } - - } else { - printf("Invalid Response: "); - - if (response == MML_NFC_PCD_E_TIMEOUT) { - printf("Timeout (No card found)\n"); - } else if (response == MML_NFC_PCD_E_COLLISION) { - printf("Collision Error\n"); - } else if (response == MML_NFC_PCD_E_PROTOCOL) { - printf("Protocol Error\n"); - } else if (response == MML_NFC_PCD_E_BAD_PARAM) { - printf("Bad Parameter\n"); - } else if (response == MML_NFC_PCD_E_INVALID_CRC) { - printf("Bad CRC\n"); - } else { - printf("Un-Decoded error code: %ld\n", response); - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); -} - -void type_v_commands(void) -{ - int32_t inventory_buf_len = 3; - uint8_t inventory_buf[3] = { 0x26, 0x01, 0x00 }; // Flags, Inventory OpCode, Optional AFI - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = inventory_buf; - trans_params.tx_len = inventory_buf_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - trans_params.early_limit = ISO15693_FDT_VICC_MIN; - trans_params.timeout = ISO15693_FWT_ACTIVATION; - - while (1) { - clear_screen(); - - printf("Type V Commands\n"); - printf("1. Inventory 100% Mod, 1of4, Single Sub, High Data Rate\n"); - printf("2. Inventory 100% Mod, 1of4, Single Sub, Low Data Rate\n"); - printf("3. Inventory 100% Mod, 1of4, Dual Sub, High Data Rate\n"); - printf("4. Inventory 100% Mod, 1of4, Dual Sub, Low Data Rate\n"); - printf("\n"); - printf("5. Inventory 100% Mod, 1of256, Single Sub, High Data Rate\n"); - printf("6. Inventory 100% Mod, 1of256, Single Sub, Low Data Rate\n"); - printf("7. Inventory 100% Mod, 1of256, Dual Sub, High Data Rate\n"); - printf("8. Inventory 100% Mod, 1of256, Dual Sub, Low Data Rate\n"); - - printf("\n\n"); - - printf("9. Inventory 10% Mod, 1of4, Single Sub, High Data Rate\n"); - printf("A. Inventory 10% Mod, 1of4, Single Sub, Low Data Rate\n"); - printf("B. Inventory 10% Mod, 1of4, Dual Sub, High Data Rate\n"); - printf("C. Inventory 10% Mod, 1of4, Dual Sub, Low Data Rate\n"); - printf("\n"); - printf("D. Inventory 10% Mod, 1of256, Single Sub, High Data Rate\n"); - printf("E. Inventory 10% Mod, 1of256, Single Sub, Low Data Rate\n"); - printf("F. Inventory 10% Mod, 1of256, Dual Sub, High Data Rate\n"); - printf("G. Inventory 10% Mod, 1of256, Dual Sub, Low Data Rate\n"); - - printf("\n"); - - printf("L. Loop Test for Type V Card (Inventory)\n"); - printf("T. CRC Test\n"); - printf("M. Maxim DTE settings\n"); - printf("X. Exit to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - case '1': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '2': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '3': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '4': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '5': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '6': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '7': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '8': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - - case '9': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'A': - case 'a': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'B': - case 'b': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'C': - case 'c': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'D': - case 'd': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'E': - case 'e': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'F': - case 'f': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'G': - case 'g': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'L': - case 'l': - // TODO(ADI): Implement - // type_v_loop_test(); - printf("TBD....\n"); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case 'T': - case 't': - printf("\nCRC Test\n"); - uint8_t crc_test_buf[4] = { 0x01, 0x02, 0x03, 0x04 }; - uint8_t crc1 = 0; - uint8_t crc2 = 0; - mml_nfc_pcd_compute_crc(PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH, crc_test_buf, 4, &crc2, - &crc1); - printf("Input: 1,2,3,4\n"); - printf("CRC: 0x%0X%0X\n", crc1, crc2); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case 'M': - case 'm': - dte_settings(); - break; - case 'X': - case 'x': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press(); - break; - } - } -} - -void pbm_commands(void) -{ - int32_t i = 0; - int32_t uid_start = 0; - int32_t uid_end = 0; - int32_t status = 0; - uid_storage_t uid_store = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 0 }; - uint32_t uid = 0; - // Default PBM Key - uint64_t current_key = 0xFFFFFFFFFFFFll; - uint64_t current_key_b = 0x000000000000ll; - int32_t new_val = 0; - uint8_t current_block_num = 12; - uint32_t current_value_num = 0x100; - uint8_t data_buffer[64]; - uint32_t pbm_type = 0; - - while (1) { - clear_screen(); - - printf("PBM Command Menu\n\n"); - printf("Current UID: 0x%08lX, Current Block: %d, INC/DEC Value: %ld\n", uid, - current_block_num, current_value_num); - printf("\nPOLLING AND AUTHENTICATE COMMANDS\n"); - printf("(P) Poll for PBM Cards (H) Halt\n"); - printf("(A) Authenticate Block (X) Re-Authenticate Block\n"); - printf("\nGENERIC BLOCK COMMANDS [%d]\n", current_block_num); - printf("(B) Change Current Block (F) Erase Block (Fill with 0x00s)\n"); - printf("(R) Read Block (W) Write Block\n"); - printf("\nVALUE BLOCK COMMANDS\n"); - printf("(V) Create Value Block (C) Change Value amount [%ld]\n", - current_value_num); - printf("(D) Decrement Value Block (I) Increment Value Block\n"); - printf("(S) Restore Value Block (T) Transfer Value Block\n"); - printf("\nKEY COMMANDS\n"); - printf("(K) Write trailer to use KEY_B (L) Authenticate with B\n"); - printf("(M) Re-Authenticate with B\n"); - printf("\n(E) Exit back to main menu\n"); - printf("(Z) Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Polling - case 'P': - case 'p': - // This will poll for a card and store the UID for later use - printf("\nPBM Polling\n"); - printf("\nTest will loop forever until a card is found,\n"); - printf("Or any key is pressed to stop test.\n\n"); - - uid = 0; - status = 0; - - poweron_operatingfield(); - while (status != TYPE_A_NON_ISO14443_4_READY) { - status = emvl1_poll_for_card(1); - - if (key_has_been_pressed()) { - nfc_pcd_reset_wait(); - printf("\nStopping Test\n"); - break; - } - } - - if (status == TYPE_A_NON_ISO14443_4_READY) { - // NOTE: The stored UID contains the BCC as well - uid_store = get_stored_uid(); - - // Is this a valid UID - if (uid_store.uid_length == 5) { - uid_start = 0; - uid_end = 4; - } else if (uid_store.uid_length == 10) { - uid_start = 5; - uid_end = 9; - } else if (uid_store.uid_length == 15) { - uid_start = 10; - uid_end = 14; - } else { - printf("Invalid UID detected, should be length of 5, 10, or 15 including " - "the BCC\n"); - break; - } - - // Convert UID to a uint32_t - for (i = uid_start; i < uid_end; i++) { - uid <<= 8; - uid |= uid_store.uid[i]; - } - printf("\nFound potential Transport Classic card\n"); - - pbm_type = decode_pbm_type(get_last_sak()); - - if (pbm_type == PBM_UL) { - printf("Found Transport Classic UL\n"); - } else if (pbm_type == PBM_MINI) { - printf("Found Transport Classic MINI\n"); - } else if (pbm_type == PBM_1K) { - printf("Found Transport Classic 1K\n"); - } else if (pbm_type == PBM_4K) { - printf("Found Transport Classic 4K\n"); - } else if (pbm_type == PBM_PLUS_2K_SL2) { - printf("Found Transport Classic PLUS 2K SL2\n"); - } else if (pbm_type == PBM_PLUS_4K_SL2) { - printf("Found Transport Classic PLUS 4K SL2\n"); - } - } else { - printf("No potential cards found\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'A': - case 'a': - // once a card has been polled, we can authenticate for a block with it's key, - // which gets us into the encrypted communication process so we can do other commands - // this uses current_block_num (set by 'B') and the current_key - printf("\nBlock Authenticate\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key, PBM_KEY_A, - FIRST_TIME_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to authenticate. Error: %ld\n", status); - } else { - printf("Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'B': - case 'b': - // switch to another block on the card, this only changes the block we are pointing at - // NOTE: you need to re-authenticate to actually send commands to the new block - printf("\nCurrent KEY: 0x%012llX\n", current_key); - printf("\nEnter new block to use\n"); - - new_val = dte_get_int_val("Pbm Block", 3, 0, 256); - - if ((new_val < 0) || (new_val > 256)) { - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - } else { - current_block_num = (uint8_t)new_val; - } - break; - case 'R': - case 'r': - // read the data for a block, this requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nRead Block: %d\n", current_block_num); - - status = pbm_read_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to read block. Error: %ld\n", status); - } else { - printf("Successful read block. Data:"); - - hexdump(DBG_LVL_NON, data_buffer, 16, 1); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'W': - case 'w': - // write data to a block, this requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nWrite Block: %d\n", current_block_num); - - for (i = 0; i < 8; i++) { - data_buffer[i] = 0; - } - - data_buffer[8] = 0xDE; - data_buffer[9] = 0xAD; - data_buffer[10] = 0xBE; - data_buffer[11] = 0xEF; - data_buffer[12] = 0x01; - data_buffer[13] = 0x23; - data_buffer[14] = 0x45; - data_buffer[15] = 0x67; - - status = pbm_write_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to Write block. Error: %ld\n", status); - } else { - printf("Successfully wrote block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'H': - case 'h': - // send the HALT command to a card, it should ignore us until we re-poll it - printf("\nHALT\n"); - - status = pbm_halt(); - - if (status != PBM_SUCCESS) { - printf("Failed to Halt. Error: %ld\n", status); - } else { - printf("Successfully Halted.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'V': - case 'v': - // create a formatted value block, uses PBM formatting - // NOTE: you need to be authenticated for the block to use this command - // this uses the current_block_num (set by 'B') and the current_value_num (set by 'C') - printf("\nCreate Value Block\n"); - - status = pbm_create_value_block(current_block_num, current_value_num); - - if (status != PBM_SUCCESS) { - printf("Failed to create value block. Error: %ld\n", status); - } else { - printf("Successfully Created Value Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'X': - case 'x': - // re-authenticate to a new block, requires the correct key to be in 'current_key' - // the uses current_block_num (set by 'B') - printf("\nBlock Re-Authenticate\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key, PBM_KEY_A, - ALREADY_AUTHORIZED_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to re-authenticate. Error: %ld\n", status); - } else { - printf("Re-Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'D': - case 'd': - // send the decrement command for the current block, requires that you are authenticated. - // this uses the current_block_num (set by 'B') and the current_value_num (set by 'C') - printf("\nDecrement Value Block\n"); - - status = pbm_decrement_block(current_block_num, current_value_num); - - if (status != PBM_SUCCESS) { - printf("Failed to decrement block. Error: %ld\n", status); - } else { - printf("Successfully decremented Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'I': - case 'i': - // send the increment command for the current block, requires that you are authenticated. - // this uses the current_block_num (set by 'B') and the current_value_num (set by 'C') - printf("\nIncrement Value Block\n"); - - status = pbm_increment_block(current_block_num, current_value_num); - - if (status != PBM_SUCCESS) { - printf("Failed to increment block. Error: %ld\n", status); - } else { - printf("Successfully incremented Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'S': - case 's': - // send the restore command for the current block, requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nRestore Value Block\n"); - - status = pbm_restore_block(current_block_num); - - if (status != PBM_SUCCESS) { - printf("Failed to restore block. Error: %ld\n", status); - } else { - printf("Successfully restored Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'T': - case 't': - // send the transfer command for the current block, requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nTransfer Value Block\n"); - - status = pbm_transfer_block(current_block_num); - - if (status != PBM_SUCCESS) { - printf("Failed to transfer block. Error: %ld\n", status); - } else { - printf("Successfully transfered Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'C': - case 'c': - // change the value (current_value_num) used by the value block command for increment, decrement - printf("\nChange Value\n"); - printf("\nCurrent Value: %ld\n", current_value_num); - - new_val = dte_get_int_val("Pbm Value", 10, 0, 0x7FFFFFF); - - if ((new_val < 0) || (new_val > 0x7FFFFFFF)) { - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - } else { - current_value_num = new_val; - } - - break; - case 'K': - case 'k': - printf("\nWrite Trailer for Key B: %d\n", current_block_num); - - for (i = 0; i < 8; i++) { - data_buffer[i] = 0; - } - - // Key A - data_buffer[0] = (current_key >> 40) & 0xFF; - data_buffer[1] = (current_key >> 32) & 0xFF; - data_buffer[2] = (current_key >> 24) & 0xFF; - data_buffer[3] = (current_key >> 16) & 0xFF; - data_buffer[4] = (current_key >> 8) & 0xFF; - data_buffer[5] = (current_key >> 0) & 0xFF; - - // KEY A will remain the only key to write trailer C1-3 of b001 - // DISALLOWED. If B can be read it CANNOT serve for auth. Auth will pass but all memory accesses will fail - // So, we need to use another mode, so use b100, Key B can write both a and b, but A and B can write Access - // KEY B will have SOLE Write permission for block 2 of current sector (where trailer is block 3) C1-3 of b100 - // C10, C11, C20, C21, C30, C31 will remain 0, so Transport Configuration (Key A or B has full access) - // /C2 /C1 - // C1 /C3 - // C3 C2 - // 7654 3210 BITS - // 1111 0011 0xF3 - // 1100 1111 0xCF - // 0000 0000 0x00 - // -#define KEYB_TEST -#ifdef KEYB_TEST - data_buffer[6] = 0xF3; - data_buffer[7] = 0xCF; - data_buffer[8] = 0x00; -#else - data_buffer[6] = 0xFF; - data_buffer[7] = 0x07; - data_buffer[8] = 0x80; -#endif - - data_buffer[9] = 0xAD; // User data - - // Key B - data_buffer[10] = (current_key_b >> 40) & 0xFF; - data_buffer[11] = (current_key_b >> 32) & 0xFF; - data_buffer[12] = (current_key_b >> 24) & 0xFF; - data_buffer[13] = (current_key_b >> 16) & 0xFF; - data_buffer[14] = (current_key_b >> 8) & 0xFF; - data_buffer[15] = (current_key_b >> 0) & 0xFF; - - status = pbm_write_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to Write block. Error: %ld\n", status); - } else { - printf("Successfully wrote block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'L': - case 'l': - // perform block authentication using key B instead of key A - printf("\nBlock Authenticate with B\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key_b, PBM_KEY_B, - FIRST_TIME_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to authenticate. Error: %ld\n", status); - } else { - printf("Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'M': - case 'm': - // re-authenticate using key B - printf("\nBlock Re-Authenticate Key B\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key_b, PBM_KEY_B, - ALREADY_AUTHORIZED_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to re-authenticate. Error: %ld\n", status); - } else { - printf("Re-Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'F': - case 'f': - // erase a block by filling with all 0 - printf("\nErase Block (Fill with 0x00s)\n: %d\n", current_block_num); - - for (i = 0; i < 16; i++) { - data_buffer[i] = 0; - } - - status = pbm_write_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to Erase block. Error: %ld\n", status); - } else { - printf("Successfully Erased block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'Z': - case 'z': - // go to dte settings menu - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -int32_t singleemvl1transac_a(callback_check_for_loop_termination_t callback) -{ - uint8_t send_buffer_wupa[1] = { 0x52 }; - int32_t send_len_wupa = 1; - uint8_t send_buffer_hlta[2] = { 0x50, 0x00 }; - int32_t send_len_hlta = 2; - uint8_t send_buffer_wupb[3] = { 0x05, 0x00, 0x08 }; - int32_t send_len_wupb = 3; - uint8_t send_buffer_anticol[2] = { 0x93, 0x20 }; - int32_t send_len_anticol = 2; - uint8_t send_buffer_sel[7] = { 0x93, 0x70, 0x27, 0xe9, 0x3b, 0x11, 0xe4 }; - int32_t send_len_sel = 7; - uint8_t send_buffer_rats[2] = { 0xe0, 0x80 }; - int32_t send_len_rats = 2; - uint8_t send_buffer_iblock1[21] = { 0x02, 0x00, 0xA4, 0x04, 0x00, 0x0E, 0x32, - 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, - 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00 }; - int32_t send_len_iblock1 = 21; - uint8_t send_buffer_iblock2[19] = { 0x03, 0x00, 0xA4, 0x04, 0x00, 0x0C, 0x01, 0x02, 0x03, 0x04, - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00 }; - int32_t send_len_iblock2 = 19; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - trans_params.timeout = ISO14443_FWT_A_ACT; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - - // WUPA - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // HALTA - trans_params.tx_buf = send_buffer_hlta; - trans_params.tx_len = send_len_hlta; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPB - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.timeout = ISO14443_FWT_ATQB; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPA - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.timeout = ISO14443_FWT_A_ACT; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Anticollision - trans_params.frametype = FT_STANDARD_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_anticol; - trans_params.tx_len = send_len_anticol; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Select - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_sel; - trans_params.tx_len = send_len_sel; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // RATS - trans_params.tx_buf = send_buffer_rats; - trans_params.tx_len = send_len_rats; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 1 - trans_params.tx_buf = send_buffer_iblock1; - trans_params.tx_len = send_len_iblock1; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 2 - trans_params.tx_buf = send_buffer_iblock2; - trans_params.tx_len = send_len_iblock2; - mml_nfc_pcd_transceive(trans_params); - - return 0; -} - -int32_t singleemvl1transac_b(callback_check_for_loop_termination_t callback) -{ - uint8_t send_buffer_wupa[1] = { 0x52 }; - int32_t send_len_wupa = 1; - uint8_t send_buffer_wupb[3] = { 0x05, 0x00, 0x08 }; - int32_t send_len_wupb = 3; - uint8_t send_buffer_attrib[9] = { 0x1D, 0x46, 0xB5, 0xC7, 0xA0, 0x00, 0x08, 0x01, 0x00 }; - int32_t send_len_attrib = 9; - uint8_t send_buffer_iblock1[21] = { 0x02, 0x00, 0xA4, 0x04, 0x00, 0x0E, 0x32, - 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, - 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00 }; - int32_t send_len_iblock1 = 21; - uint8_t send_buffer_iblock2[19] = { 0x03, 0x00, 0xA4, 0x04, 0x00, 0x0C, 0x01, 0x02, 0x03, 0x04, - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00 }; - int32_t send_len_iblock2 = 19; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - trans_params.timeout = ISO14443_FWT_ATQB; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - - // WUPB - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPA - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.timeout = ISO14443_FWT_A_ACT; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPB - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.timeout = ISO14443_FWT_ATQB; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Attrib - trans_params.tx_buf = send_buffer_attrib; - trans_params.tx_len = send_len_attrib; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 1 - trans_params.tx_buf = send_buffer_iblock1; - trans_params.tx_len = send_len_iblock1; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 2 - trans_params.tx_buf = send_buffer_iblock2; - trans_params.tx_len = send_len_iblock2; - mml_nfc_pcd_transceive(trans_params); - - return 0; -} - -void dte_do_transac_a(void) -{ - int32_t i = 0; - - printf("\nAnalog TRANSAC_A Mode\n"); - printf("\n!Test will continue to send TRANSAC_A sequence until any key is pressed to stop " - "test!\n\n"); - - while (1) { - mml_nfc_pcd_task_sleep(PAUSE_TRANSAC_MS); - printf("\nTransaction A Send Count: %ld\n", i++); - - if (singleemvl1transac_a(key_has_been_pressed)) { - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_transac_b(void) -{ - int32_t i = 0; - - printf("\nAnalog TRANSAC_B Mode\n"); - printf("\n!Test will continue to send TRANSAC_B sequence until any key is pressed to stop " - "test!\n\n"); - - while (1) { - mml_nfc_pcd_task_sleep(PAUSE_TRANSAC_MS); - printf("\nTransaction B Send Count: %ld\n", i++); - - if (singleemvl1transac_b(key_has_been_pressed)) { - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_analogue(void) -{ - int32_t carrier_on = 0; - int32_t num_loops = 0; - - while (1) { - clear_screen(); - printf("TTA L1: Analogue Menu\n"); - printf("Loop Setting: Num Loops: %ld\n", num_loops); - printf("\n! NOTE: by Default Num Loops is 0, Which is Infinite Looping !\n\n"); - printf("Halt test sequences by pressing any key\n"); - printf("Carrier Status: "); - if (carrier_on) { - printf("On\n"); - } else { - printf("Off\n"); - } - printf("\nSelect Test to continue:\n"); - printf("1. Carrier On/Off\n"); - printf("2. Polling\n"); - printf("3. Reset\n"); - printf("4. WUPA\n"); - printf("5. WUPB\n"); - printf("6. RATS\n"); - printf("7. ATTRIB\n"); - printf("8. TRANSAC_A\n"); - printf("9. TRANSAC_B\n"); - printf("Y. WUPA LOOP TEST\n"); - printf("T. WUPB LOOP TEST\n"); - printf("L. Change Loop Settings\n"); - printf("E. Exit Analogue Tests\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Carrier On/Off - case '1': - if (carrier_on) { - poweroff_operatingfield(); - printf("Carrier OFF\n"); - carrier_on = 0; - } else { - poweron_operatingfield(); - printf("Carrier On\n"); - carrier_on = 1; - } - break; - // Polling specified number of loops - case '2': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_analog_polling(num_loops); - break; - // Reset - case '3': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_reset(num_loops); - break; - // WUPA - case '4': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_wupa(num_loops); - break; - // WUPB - case '5': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_wupb(num_loops); - break; - // RATS - case '6': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_rats(num_loops); - break; - // ATTRIB - case '7': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_attrib(num_loops); - break; - // TRANSAC_A - case '8': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_transac_a(); - break; - // TRANSAC_B - case '9': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_transac_b(); - break; - // WUPA LOOP TEST - case 'Y': - case 'y': - type_a_loop_test(); - break; - // WUPB LOOP TEST - case 'T': - case 't': - type_b_loop_test(); - break; - // Change Loop Count - case 'L': - case 'l': - dte_get_loop_params(&num_loops); - break; - case 'M': - case 'm': - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte_digital(void) -{ - int32_t i = 0; - - while (1) { - clear_screen(); - - printf("TTA L1: Digital Menu\n"); - printf("1. Begin Digital Loop Back Mode\n"); - printf("E. Exit back to main menu\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Polling - case '1': - printf("\nDigital Loop Back Mode\n"); - printf("\n!Test will loop forever until any key is pressed to stop test!\n\n"); - poweron_operatingfield(); - while (1) { - printf("\n\nDig %ld\n", i++); - - if (singleemvl1exchange(key_has_been_pressed)) { - break; - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'M': - case 'm': - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte_interop(void) -{ - int32_t i = 0; - - while (1) { - clear_screen(); - - printf("TTA L1: Interoperability Testing Loopback Menu\n"); - printf("1. Begin Interoperability Loop Back Mode\n"); - printf("E. Exit back to main menu\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Polling - case '1': - printf("\nInteroperability Loop Back Mode\n"); - printf("\n!Test will loop forever until any key is pressed to stop test!\n\n"); - poweron_operatingfield(); - while (1) { - printf("\n\nInterop %ld\n", i++); - - if (singleemvl1interopexchange(key_has_been_pressed)) { - break; - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'M': - case 'm': - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte(void) -{ - clear_screen(); - - // Setup the abort callback - set_abort_check_callback(key_has_been_pressed); - - while (1) { - clear_screen(); - - poweron_operatingfield(); - poweroff_operatingfield(); - - printf("Maxim Integrated MAX32572 EMV L1 DTE Main Menu\n\n"); - printf("HW Version: %s\n", PCD_HW_VER); - printf("SW Version: %s\n", PCD_SW_VER); - printf("FW Checksum: %s\n", PCD_FW_SUM); - - printf("\nSelect Application to continue:\n"); - printf("1. TTA L1: Analogue\n"); - printf("2. TTA L1: Digital\n"); - printf("3. TTA L1: Interoperability Testing Loopback\n"); - printf("P. Transport Classic (PBM)\n"); - printf("F. Type F\n"); - printf("V. Type V\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - case '1': - dte_analogue(); - break; - case '2': - dte_digital(); - break; - case '3': - dte_interop(); - break; - case 'P': - case 'p': - pbm_commands(); - break; - case 'F': - case 'f': - type_f_commands(); - break; - case 'V': - case 'v': - type_v_commands(); - break; - case 'M': - case 'm': - dte_settings(); - break; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press(); - break; - } - } -} - -void emvl1_main_loop(void) -{ - g_logging_level = DBG_LVL_LOG; - - // Disable line buffering for this serial menu driven DTE - // avoid may calls to fflush(); - setvbuf(stdout, NULL, _IONBF, 0); - - if (trim_ro_to_rtc() != E_SUCCESS) { - printf("Failed to trim Ring Oscillator.\n"); - printf("Timing accuracy suspect, may result in communications failures.\n"); - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - } - // ******************************************************************** - // Set the desired default antenna analog configuration - // ******************************************************************** - // FIXME: Restore to EVKIT antenna before release: - // mml_nfc_pcd_analog_parameters_matrix = evkit_antenna_112x76_matrix; - mml_nfc_pcd_analog_parameters_matrix = custom_antenna_65x65_matrix; - - dte(); -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3_common.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3_common.c deleted file mode 100644 index 9545b5f6b12..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3_common.c +++ /dev/null @@ -1,293 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include "mml_nfc_pcd_port.h" -#include "logging.h" - -uint8_t gcommonbuffer[MAX_BUFFER_LEN]; //use for read data from picc. - -// The default delay between a reception from PICC and a new transmit from PCD -uint32_t g_delay_till_send = ISO14443_FDT_MIN; - -static abort_check_callback_t abort_callback_function = NULL; - -static ATSConfig_t ATScfg = { - .Pro_Type = PROTOCOL_ISO14443A, - .FSCI = FSCI_DEFAULT_VALUE, - .FWI = FWI_DEFAULT_VALUE, - .SFGI = SFGI_DEFAULT_VALUE, -}; - -void get_ats(ATSConfig_t *cfg) -{ - memcpy((uint8_t *)cfg, (uint8_t *)&ATScfg, sizeof(ATSConfig_t)); -} - -void set_ats(uint8_t pro_type, uint8_t fsci, uint8_t fwi, uint8_t sfgi, uint8_t nad, uint8_t cid) -{ - ATScfg.Pro_Type = pro_type; - ATScfg.FSCI = fsci; - ATScfg.FWI = fwi; - ATScfg.SFGI = sfgi; - - ATScfg.NAD_support = nad; - ATScfg.CID_support = cid; -} - -void nfc_yield_ms(uint32_t yield_ms) -{ - mml_nfc_pcd_task_sleep(yield_ms); -} - -void nfc_set_delay_till_next_send_fc(uint32_t delay) -{ - g_delay_till_send = delay; -} - -void nfc_block_for_us(uint32_t block_us) -{ - mml_nfc_pcd_block_for_us(block_us); -} - -void poweron_operatingfield(void) -{ - mml_nfc_pcd_field_on(); -} - -void poweroff_operatingfield(void) -{ - mml_nfc_pcd_field_off(); -} - -void nfc_pcd_reset_wait(void) -{ - mml_nfc_pcd_smart_yield_us(TRESET_US); -} - -int32_t nfc_reset(void) -{ - // Wait at least ISO14443_FDT_MIN to avoid any violations of the EOS - // HOWEVER, we can't use mml_nfc_pcd_delay_for_FDT_PCD(ISO14443_FDT_MIN); - // because we don't have the receive done time stamp. If we only base it off - // the end of TX we will be too short. - mml_nfc_pcd_block_for_us(ISO14443_FDT_MIN_US); - - mml_nfc_pcd_field_off(); - nfc_pcd_reset_wait(); - - mml_nfc_pcd_field_on(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - return 0; -} - -void hexdump(int32_t dbg_level, uint8_t *buf, int32_t len, int32_t send) -{ - int i; - - do_log(dbg_level, "[%03d]%s\n ", len, send ? "-->" : "<--"); - for (i = 0; i < len; i++) { - do_log(dbg_level, "%02X ", buf[i]); - if (((i + 1) % 16 == 0) && (i < (len - 1))) - do_log(dbg_level, "\n "); - } - do_log(dbg_level, "\n"); -} - -static int32_t check_for_requested_abort(int32_t status) -{ - // If the callback exists, call it - if (abort_callback_function) { - if (abort_callback_function()) { - info("Transaction Aborted\n"); - return ISO14443_3_ERR_ABORTED; - } - } - - return status; -} - -void set_abort_check_callback(abort_check_callback_t abort_callback) -{ - abort_callback_function = abort_callback; -} - -static int32_t convert_status_codes(int32_t rf_status) -{ - switch (rf_status) { - case MML_NFC_PCD_E_SUCCESS: - return ISO14443_3_ERR_SUCCESS; - - case MML_NFC_PCD_E_TIMEOUT: - case MML_NFC_PCD_E_TX_TIMEOUT: - case MML_NFC_PCD_E_TO_EMD: - case MML_NFC_PCD_E_TO_PART_RX: - case MML_NFC_PCD_E_HARD_TO: - return ISO14443_3_ERR_TIMEOUT; - - case MML_NFC_PCD_E_PARITY: - case MML_NFC_PCD_E_INVALID_CRC: - case MML_NFC_PCD_E_PROTOCOL: - case MML_NFC_PCD_E_RX_EGT: - case MML_NFC_PCD_E_A_INV_BIT_LEN: - case MML_NFC_PCD_E_B_NOT_ENF_SAMP: - case MML_NFC_PCD_E_B_TR1_INVALID: - case MML_NFC_PCD_E_B_SOS_0S_INVALID: - case MML_NFC_PCD_E_B_SOS_1S_INVALID: - case MML_NFC_PCD_E_B_START_BIT: - case MML_NFC_PCD_E_B_STOP_BIT: - case MML_NFC_PCD_E_B_INCOMPLETE_BYTE: - case MML_NFC_PCD_E_B_EGT_EXCEEDED: - case MML_NFC_PCD_E_F_INV_BIT_LEN: - case MML_NFC_PCD_E_NO_RX_DATA: - case MML_NFC_PCD_E_B_NO_SOS: - case MML_NFC_PCD_E_B_BAD_SOS: - case MML_NFC_PCD_E_B_SUB_DROP_DATA: - case MML_NFC_PCD_E_B_SUB_DROP_SOS: - case MML_NFC_PCD_E_B_ILL_PHZ_CHANGE: - case MML_NFC_PCD_E_B_NON_01_PATTERN: - case MML_NFC_PCD_E_A_BAD_SOF: - case MML_NFC_PCD_E_B_BAD_EOF: - case MML_NFC_PCD_E_NOT_ENF_BITS: - return ISO14443_3_ERR_TRANSMISSION; - - case MML_NFC_PCD_E_COLLISION: - case MML_NFC_PCD_E_A_CONT_MOD_COL: - case MML_NFC_PCD_E_F_SOF_COL: - case MML_NFC_PCD_E_F_PART_SYNC_COL: - return ISO14443_3_ERR_COLLISION; - - case MML_NFC_PCD_E_EARLY_RESPONSE: - return ISO14443_3_ERR_EARLY_RESPONSE; - - default: - return ISO14443_3_ERR_OTHER; - } -} - -static uint32_t pad_for_crystal_margin(uint32_t counts_to_pad) -{ - uint32_t count_margin = 0; - - // Here we only pad the fc count, we depend on the RF driver - // enforce this using what ever time mechanism it has, which - // already accounts for tick length conversion between fc and us. - - // Per ARM Data book, unsigned divide instruction takes 2-12 cycles. - // This is probably fast enough for our purposes. - if (counts_to_pad > CRYSTAL_PPM_MARGIN_DIVISOR) { - count_margin = counts_to_pad / CRYSTAL_PPM_MARGIN_DIVISOR; - } - - return counts_to_pad + (count_margin * CRYSTAL_PPM_MARGIN_MULTIPLIER); -} - -int32_t nfc_pcd_transceive(uint8_t protocol, uint8_t frametype, uint8_t *tx_buf, uint32_t tx_len, - uint8_t *rx_buf, uint32_t *rx_len, uint32_t timeout) - -{ - int32_t status = MML_NFC_PCD_E_SUCCESS; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = protocol; - trans_params.frametype = frametype; - trans_params.tx_buf = tx_buf; - trans_params.tx_len = tx_len; - trans_params.rx_buf = rx_buf; - trans_params.rx_len = rx_len; - trans_params.timeout = timeout; - - if ((trans_params.timeout != ISO14443_FWT_A_ACT) && - (trans_params.timeout != ISO14443_FWT_ATQB)) { - debug("RF_TO: %d\n", trans_params.timeout); - debug("RF_FT: %d\n", frametype); - } - - // New for CSP3.3.0 RF Driver requires us to specify the early limit time - switch (protocol) { - case PROTOCOL_ISO14443A: - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - if (trans_params.early_limit > ISO14443_FDT_A_EXTRA_MARGIN) { - trans_params.early_limit -= ISO14443_FDT_A_EXTRA_MARGIN; - } - trans_params.timeout += ISO14443_FDT_A_EXTRA_MARGIN; - break; - - case PROTOCOL_ISO14443B: - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - if (trans_params.early_limit > ISO14443_FDT_B_EXTRA_MARGIN) { - trans_params.early_limit -= ISO14443_FDT_B_EXTRA_MARGIN; - } - trans_params.timeout += ISO14443_FDT_B_EXTRA_MARGIN; - break; - - default: - return ISO14443_3_ERR_OTHER; - } - - // New in CSP 3.3.0 - // Need to provide extra margin for potential crystal oscillator PPM drift - // Due to temperature, improper loading, and normal crystal variances, the accuracy - // of the system clock can be off by 100 ppm or even more. - // - // This is normally not an issue, as for most times we are so small that the 100ppm - // only amounts to a small number of nanoseconds. However, some of the negotiated delays - // and wait times can be several million counts. Therefore, it is safer to pad with - // extra margin on these times as they grow large. - trans_params.delay_till_send = pad_for_crystal_margin(g_delay_till_send); - trans_params.timeout = pad_for_crystal_margin(trans_params.timeout); - - // FDT PCD min delay is 6780fc this works out to 500us - // The RF driver now handles these inter-packet delays via the delay_till_send parameter - - status = mml_nfc_pcd_transceive(trans_params); - - // Reset the delay_till_send for next transaction, unless overridden before - // This simplifies inter packet delay handling, as usually, we only need to - // wait for this minimum time. Longer delay are special cases. - g_delay_till_send = ISO14443_FDT_MIN; - - if ((status != MML_NFC_PCD_E_SUCCESS) && (status != MML_NFC_PCD_E_TIMEOUT)) { - debug("RF_ST: %d, 0x%X\n", status, status); - } - - status = convert_status_codes(status); - - // Check if application wants to abort this transaction - return check_for_requested_abort(status); -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3a_cmd.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3a_cmd.c deleted file mode 100644 index 6b108cc27a1..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3a_cmd.c +++ /dev/null @@ -1,221 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include - -#define SAK_LEN 1 - -int32_t iso_14443_3a_cmd_req_wupa(uint8_t req, uint8_t *atq, uint8_t doretry) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len; - int32_t ret; - uint8_t retry = doretry ? 3 : 1; - - tx_buf[0] = req; - tx_len = 1; - - rx_buf = atq; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_SHORT_NO_CRC_NO_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - /*ATQA should be 2 bytes*/ - if (rx_len != ATQA_LEN) - ret = ISO14443_3_ERR_PROTOCOL; - } - - // EMV 2.6b case TA311, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3a_cmd_anticoll(uint8_t sel, uint8_t *uid) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len = UID_EACH_LEN; - int32_t ret; - - int32_t i; - uint8_t bcc = 0; - uint8_t retry = 3; - - tx_buf[0] = sel; - tx_buf[1] = 0x20; - tx_len = 2; - - rx_buf = uid; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_NO_CRC_NO_EMD, tx_buf, tx_len, - rx_buf, &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - /*each uid should be 5 bytes*/ - if (rx_len != UID_EACH_LEN) { - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - //Check BCC - for (i = 0, bcc = 0; i < 4; i++) { - bcc ^= uid[i]; - } - - if (bcc != uid[4]) { - ret = ISO14443_3_ERR_TRANSMISSION; - } - } - - // EMV 2.6b case TA310, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3a_cmd_select(uint8_t sel, uint8_t *uid, uint8_t *sak) -{ - uint8_t tx_buf[10]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len = 1; //SAK should be one byte. - int32_t ret; - uint8_t retry = 3; - - tx_buf[0] = sel; - tx_buf[1] = 0x70; - memcpy(tx_buf + 2, uid, UID_EACH_LEN); - tx_len = 7; - - rx_buf = sak; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_CRC_NO_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - if (rx_len != SAK_LEN) - ret = ISO14443_3_ERR_PROTOCOL; - } - - // EMV 2.6b case TA312, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3a_cmd_rats(uint8_t fsdi, uint8_t cid, uint8_t *ats, uint32_t *ats_len) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - int32_t ret; - uint8_t retry = 3; - - tx_buf[0] = 0xe0; - - tx_buf[1] = (fsdi << 4) + (cid & 0x0f); - - tx_len = 2; - - rx_buf = ats; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - ats_len, ISO14443_FWT_ACTIVATION); - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = ISO14443_3_ERR_SUCCESS; - } - - // EMV 2.6b case TA307 and TA313, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_ACTIVATION); - } - - /*debug for case TA306.05*/ - } while (--retry && (ret == ISO14443_3_ERR_TIMEOUT)); - - return ret; -} - -int32_t iso_14443_3a_cmd_halt(void) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len; - int32_t ret; - - uint8_t tmp[100]; - - tx_buf[0] = 0x50; - tx_buf[1] = 0x00; - tx_len = 2; - - rx_buf = tmp; - - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_TIMEOUT) { - //HALT no response. - ret = ISO14443_3_ERR_SUCCESS; - } else { - ret = ISO14443_3_ERR_OTHER; - } - - return ret; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3a_flow.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3a_flow.c deleted file mode 100644 index 6219b894631..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3a_flow.c +++ /dev/null @@ -1,421 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include - -#include -#include "logging.h" - -#define UID_LEVEL_1 1 -#define UID_LEVEL_2 2 -#define UID_LEVEL_3 3 - -#define TL_MAX_VALUE (20) -#define TL_MIN_VALUE (1) - -#define TA_RESERVE_MAKE (0x08) - -#define TA_DEFAULT_VALUE (0x00) - -#define ISO14443_3A_ANTICOLLISION_CT_VALUE 0x88 -#define TYPE_A_SAK_14443_4_SUPPORT 0x20 - -#define ATQA_LEN 2 - -typedef struct { - uint8_t fsci : 4; - uint8_t has_ta : 1; - uint8_t has_tb : 1; - uint8_t has_tc : 1; - uint8_t reserve : 1; -} T0_t; - -typedef struct { - uint8_t sfgi : 4; - uint8_t fwi : 4; -} TB_t; - -typedef struct { - uint8_t TL; - T0_t T0; - uint8_t TA; - TB_t TB; - uint8_t TC; - uint8_t *PTk; -} ATS_t; - -/** - * Last received SAK - * - Can be used to decipher MIFARE card type - */ -static uint8_t sak; - -uint8_t get_last_sak() -{ - return sak; -} - -/* - new version the PCD shall not examine the ATQ RFU bits,only check b5~b8 of byte2 - */ -static int32_t check_atq(uint8_t *atq, uint32_t *uid_level) -{ - if ((atq[0] & 0xC0) == 0x00) { - *uid_level = UID_LEVEL_1; // single size UID - } else if ((atq[0] & 0xC0) == 0x40) { - *uid_level = UID_LEVEL_2; // double size UID - } else if ((atq[0] & 0xC0) == 0x80) { - *uid_level = UID_LEVEL_3; // triple size UID - } else { - *uid_level = UID_LEVEL_1; // default to use single size UID - } - - /*for Bit1~5 RFU*/ - if ((atq[0] & 0x1F) != 0x01 && (atq[0] & 0x1F) != 0x02 && (atq[0] & 0x1F) != 0x04 && - (atq[0] & 0x1F) != 0x08 && (atq[0] & 0x1F) != 0x10) { - *uid_level = UID_LEVEL_1; - } - - /*b5~b8 should be 0.*/ - if (atq[1] & 0xF0) - return ISO14443_3_ERR_PROTOCOL; - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3a_polling() -{ - int32_t void_len = 0; - - return iso_14443_3a_polling_response(NULL, &void_len); -} - -int32_t iso_14443_3a_polling_response(uint8_t *atqa_resp, int32_t *atqa_resp_len) -{ - int32_t ret; - uint8_t *atq = GetCommonBuffer(); - - ret = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, atq, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret != ISO14443_3_ERR_TIMEOUT) { - iso_14443_3a_cmd_halt(); - - // If atqa_resp exits, then save off the ATQA - if (atqa_resp) { - memcpy(atqa_resp, atq, ATQA_LEN); - *atqa_resp_len = ATQA_LEN; - } - - return ISO14443_3_ERR_SUCCESS; - } - - return ISO14443_3_ERR_TIMEOUT; -} - -int32_t iso_14443_3a_collision_detect() -{ - int32_t void_len = 0; - - return iso_14443_3a_collision_detect_response(NULL, &void_len, NULL, &void_len, NULL); -} - -int32_t iso_14443_3a_collision_detect_response(uint8_t *atqa_resp, int32_t *atqa_resp_len, - uint8_t *uid_resp, int32_t *uid_resp_len, - uint8_t *sak_resp) -{ - uint8_t *atq = GetCommonBuffer(); - uint8_t *uid = GetCommonBuffer(); - uint32_t uid_level; - int32_t status = ISO14443_3_ERR_OTHER; - - status = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, atq, WAKEUP_DORETRY); - - if (status != ISO14443_3_ERR_SUCCESS) - return status; - - // If atqa_resp exits, then save off the ATQA - if (atqa_resp) { - memcpy(atqa_resp, atq, ATQA_LEN); - *atqa_resp_len = ATQA_LEN; - } - - if (check_atq(atq, &uid_level) != ISO14443_3_ERR_SUCCESS) { - return ISO14443_3_ERR_CMD; - } - info("uid_level is = %d, atq = %02x%02x\n", uid_level, atq[0], atq[1]); - - /*UID CL1*/ - status = iso_14443_3a_cmd_anticoll(ISO_14443_3A_CMD_ANTICOLL_SEL_L1, uid); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed anticoll l1\n"); - return ISO14443_3_ERR_CMD; - } - info("uid = [%02x%02x%02x%02x%02x]\n", uid[0], uid[1], uid[2], uid[3], uid[4]); - - /*UID CL1 uid0 should not be CT value when 1-level uid*/ - if ((uid_level == UID_LEVEL_1) && uid[0] == ISO14443_3A_ANTICOLLISION_CT_VALUE) - return ISO14443_3_ERR_PROTOCOL; - - if (uid_level >= UID_LEVEL_1) { - // If anticol_resp exists, fill it in - if (uid_resp) { - memcpy(uid_resp, uid, UID_EACH_LEN); - *uid_resp_len = UID_EACH_LEN; - } - - status = iso_14443_3a_cmd_select(ISO_14443_3A_CMD_SELECT_SEL_L1, uid, &sak); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != 0) { - error("Failed select l1\n"); - return ISO14443_3_ERR_CMD; - } - - // If sak_resp exists, fill it in - if (sak_resp) { - *sak_resp = sak; - } - } - - if (uid_level >= UID_LEVEL_2) { - status = iso_14443_3a_cmd_anticoll(ISO_14443_3A_CMD_ANTICOLL_SEL_L2, uid + UID_EACH_LEN); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed anticoll l2\n"); - return ISO14443_3_ERR_CMD; - } - - /*UID CL2 uid3 should not be CT value when 2-level uid*/ - if ((uid_level == UID_LEVEL_2) && uid[UID_EACH_LEN] == ISO14443_3A_ANTICOLLISION_CT_VALUE) - return ISO14443_3_ERR_PROTOCOL; - - // If uid_resp exists, fill it in - if (uid_resp) { - memcpy(uid_resp, uid, UID_EACH_LEN * 2); - *uid_resp_len = UID_EACH_LEN * 2; - } - - status = iso_14443_3a_cmd_select(ISO_14443_3A_CMD_SELECT_SEL_L2, uid + UID_EACH_LEN, &sak); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed select l2\n"); - return ISO14443_3_ERR_CMD; - } - - // If sak_resp exists, fill it in - if (sak_resp) { - *sak_resp = sak; - } - } - - if (uid_level == UID_LEVEL_3) { - status = - iso_14443_3a_cmd_anticoll(ISO_14443_3A_CMD_ANTICOLL_SEL_L3, uid + (2 * UID_EACH_LEN)); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed anticoll l3\n"); - return ISO14443_3_ERR_CMD; - } - - // If uid_resp exists, fill it in - if (uid_resp) { - memcpy(uid_resp, uid, UID_EACH_LEN * 3); - *uid_resp_len = UID_EACH_LEN * 3; - } - - status = - iso_14443_3a_cmd_select(ISO_14443_3A_CMD_SELECT_SEL_L3, uid + (2 * UID_EACH_LEN), &sak); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed select l3\n"); - return ISO14443_3_ERR_CMD; - } - - // If sak_resp exists, fill it in - if (sak_resp) { - *sak_resp = sak; - } - } - - // Check to see if this card supports ISO_14443_4 - if ((sak & TYPE_A_SAK_14443_4_SUPPORT) != TYPE_A_SAK_14443_4_SUPPORT) { - return ISO14443_3_ERR_NON_ISO14443_4_CARD; - } - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3a_active() -{ - int32_t void_len = 0; - - return iso_14443_3a_active_response(NULL, &void_len); -} - -int32_t iso_14443_3a_active_response(uint8_t *ats_resp, int32_t *ats_resp_len) -{ - int32_t status = ISO14443_3_ERR_OTHER; - uint8_t fsci = FSCI_DEFAULT_VALUE; - uint8_t cid = 0, nad = 0; - uint8_t *ats = GetCommonBuffer(); - uint32_t ats_len; - uint8_t fwi = FWI_DEFAULT_VALUE, sfgi = SFGI_DEFAULT_VALUE; - uint32_t sfgi_fc = 0; - ATS_t *pats = (ATS_t *)ats; - - status = iso_14443_3a_cmd_rats(FSDI_DEFAULT_VALUE, cid, ats, &ats_len); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - return ISO14443_3_ERR_CMD; - } - - // If ats_resp exists, fill it in - if (ats_resp) { - memcpy(ats_resp, ats, ats_len); - *ats_resp_len = ats_len; - } - - //check TL and ats len - if (!ats_len || pats->TL != ats_len) - return ISO14443_3_ERR_PROTOCOL; - - if (pats->TL > TL_MAX_VALUE) - return ISO14443_3_ERR_CMD; - - //for debug ta104.14/15 - if (pats->TL == 0x13 || pats->TL == 0x14) { - info("Case TA102.14/15.\n"); - } - - if (pats->TL > TL_MIN_VALUE) { - fsci = pats->T0.fsci <= FSCI_MAX_VALUE ? pats->T0.fsci : FSCI_MAX_VALUE; - - if (pats->T0.has_ta && pats->TA != TA_DEFAULT_VALUE && !(pats->TA & TA_RESERVE_MAKE)) { - warning("warn TA %x\n", pats->TA); - //return ISO14443_3_ERR_CMD; - } - - if (pats->T0.has_tb) { - fwi = pats->TB.fwi <= FWI_MAX_VALUE ? pats->TB.fwi : FWI_DEFAULT_VALUE; - sfgi = pats->TB.sfgi <= SFGI_MAX_VALUE ? pats->TB.sfgi : SFGI_DEFAULT_VALUE; - } - - //for emv we just ignore the tc value. - - } else if (!pats->TL) { - return ISO14443_3_ERR_PROTOCOL; - } - - info("fsci %d\n", fsci); - set_ats(PROTOCOL_ISO14443A, fsci, fwi, sfgi, nad, cid); - seqnuminit(); - - //SFGI delay = 256x16x2^sfgi + 384x2^sfgi /fc - if (sfgi) { - sfgi_fc = 4480 * (1 << sfgi); - - nfc_set_delay_till_next_send_fc(sfgi_fc); - - info("sfgi=%d, time(fc)=%d \n", sfgi, sfgi_fc); - } - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3a_remove() -{ - int32_t loop = 0; - int32_t ret; - uint8_t *atq = GetCommonBuffer(); - - nfc_reset(); - - while (loop < 3) { - ret = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, atq, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret != ISO14443_3_ERR_TIMEOUT) { - iso_14443_3a_cmd_halt(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - loop = 0; - } else { - loop++; - - // EMV 2.6b case TA311, now enforces a minimum retransmission time of 3ms - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } - - return ISO14443_3_ERR_SUCCESS; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3b_cmd.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3b_cmd.c deleted file mode 100644 index b8dfab8bc94..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3b_cmd.c +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include - -int32_t iso_14443_3b_cmd_req_wup(uint8_t *atq, int32_t *atq_len, uint8_t doretry) -{ - uint8_t tx_buf[100]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len; - int32_t ret; - uint8_t retry = doretry ? 3 : 1; - - tx_buf[0] = 0x05; - tx_buf[1] = 0x00; - tx_buf[2] = 0x08; - tx_len = 3; - - rx_buf = atq; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443B, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_ATQB); - - if (ret == ISO14443_3_ERR_SUCCESS) { - if ((rx_len != ISO3B_ATQB_MINLEN && rx_len != ISO3B_ATQB_MAXLEN) || - rx_buf[0] != ISO3B_ATQB_BYTE1) { - ret = ISO14443_3_ERR_PROTOCOL; - } else { - ret = ISO14443_3_ERR_SUCCESS; - *atq_len = rx_len; - } - } - - // EMV 2.6b case TB311, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_ATQB); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3b_cmd_attrib(uint8_t *pupi, uint8_t para1, uint8_t para2, uint8_t para3, - uint8_t para4, uint8_t *inf, uint32_t *inf_len, uint32_t timeout, - uint8_t *attrib_resp, int32_t *attrib_resp_len) -{ - uint8_t tx_buf[256]; - int32_t tx_len = 0; - uint8_t rx_buf[256]; - uint32_t rx_len; - int32_t ret; - uint8_t retry = 3; - - tx_buf[tx_len++] = 0x1d; - memcpy(tx_buf + tx_len, pupi, PUPI_SIZE); - tx_len += PUPI_SIZE; - - tx_buf[tx_len++] = para1; - tx_buf[tx_len++] = para2; - tx_buf[tx_len++] = para3; - tx_buf[tx_len++] = para4; - - if ((inf != NULL) && (inf_len != NULL)) { - memcpy(tx_buf + tx_len, inf, *inf_len); - tx_len += (*inf_len); - } - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443B, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, timeout); - - if (ret == ISO14443_3_ERR_SUCCESS) { - // If we have a non NULL buffer to save it, copy in the raw ATTRIB_RESPONSE - if (attrib_resp) { - memcpy(attrib_resp, rx_buf, rx_len); - *attrib_resp_len = rx_len; - } - - /*CID value should be 0*/ - if ((rx_buf[0] & 0x0f) != para4) - ret = ISO14443_3_ERR_PROTOCOL; - - /*disregard MBLI*/ - - /*high-inf should be empty*/ - if (rx_len != 1) - ret = ISO14443_3_ERR_CONTAINS_HIGH_INF; - } - - // EMV 2.6b case TB305, TB3012, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && (ret == ISO14443_3_ERR_TIMEOUT || ret == ISO14443_3_ERR_COLLISION)) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + timeout); - } - } while (--retry && (ret == ISO14443_3_ERR_TIMEOUT || ret == ISO14443_3_ERR_COLLISION)); - - return ret; -} - -int32_t iso_14443_3b_cmd_halt(uint8_t *pupi) -{ - uint8_t tx_buf[20]; - int32_t tx_len; - uint8_t rx_buf[10]; - uint32_t rx_len; - int32_t ret; - - tx_buf[0] = 0x50; - memcpy(tx_buf + 1, pupi, 4); - tx_len = 5; - - ret = nfc_pcd_transceive(PROTOCOL_ISO14443B, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_DEFAULT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - if (rx_len != 1 || rx_buf[0] != 0x00) { - ret = ISO14443_3_ERR_PROTOCOL; - } else { - ret = ISO14443_3_ERR_SUCCESS; - } - } - return ret; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3b_flow.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3b_flow.c deleted file mode 100644 index 251d85f2c6e..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_3b_flow.c +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include - -#include -#include "logging.h" - -typedef struct { - uint8_t bit_rate; - - uint8_t pro_type : 4; - uint8_t fsci : 4; - - uint8_t fo : 2; - uint8_t adc : 2; - uint8_t fwi : 4; - - uint8_t rfu : 4; - uint8_t sfgi : 4; -} PROINFO_t; - -typedef struct { - uint8_t atqb_f; - uint8_t pupi[PUPI_SIZE]; - uint8_t appdata[4]; - PROINFO_t proinfo; -} ATQB_t; - -static ATQB_t GAtqb; - -int32_t iso_14443_3b_polling(void) -{ - int32_t void_len = 0; - - return iso_14443_3b_polling_response(NULL, &void_len); -} - -int32_t iso_14443_3b_polling_response(uint8_t *atqb_resp, int32_t *atqb_resp_len) -{ - uint8_t *atq = GetCommonBuffer(); - int32_t atq_len; - int32_t ret; - - ret = iso_14443_3b_cmd_req_wup(atq, &atq_len, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret == ISO14443_3_ERR_TIMEOUT) { - //Timeout - return ISO14443_3_ERR_OTHER; - } - - // If atqb_resp exists, copy in the ATQB - if (atqb_resp) { - memcpy(atqb_resp, atq, atq_len); - *atqb_resp_len = atq_len; - } - - return 0; -} - -static void set_atqb(ATQB_t *patqb) -{ - memcpy(&GAtqb, patqb, sizeof(ATQB_t)); -} - -static void get_atqb(ATQB_t *patqb) -{ - memcpy(patqb, &GAtqb, sizeof(ATQB_t)); -} - -int32_t iso_14443_3b_collision_detect(void) -{ - int32_t void_len = 0; - - return iso_14443_3b_collision_detect_response(NULL, &void_len); -} - -int32_t iso_14443_3b_collision_detect_response(uint8_t *atqb_resp, int32_t *atqb_resp_len) -{ - uint8_t *atqb = GetCommonBuffer(); - int32_t atqb_len; - - uint8_t fsci = FSCI_DEFAULT_VALUE; - uint8_t fwi = FWI_DEFAULT_VALUE; - uint8_t sfgi = SFGI_DEFAULT_VALUE; - uint8_t nad = 0, cid = 0; /*we don't support nad&cid in default*/ - - ATQB_t *patqb = (ATQB_t *)atqb; - int32_t ret; - - ret = iso_14443_3b_cmd_req_wup(atqb, &atqb_len, WAKEUP_DORETRY); - - if (ret != ISO14443_3_ERR_SUCCESS) - return ret; - - // If atqb_resp exists, copy in the ATQB - if (atqb_resp) { - memcpy(atqb_resp, atqb, atqb_len); - *atqb_resp_len = atqb_len; - } - - fsci = patqb->proinfo.fsci <= FSCI_MAX_VALUE ? patqb->proinfo.fsci : FSCI_MAX_VALUE; - fwi = patqb->proinfo.fwi <= FWI_MAX_VALUE ? patqb->proinfo.fwi : FWI_DEFAULT_VALUE; - - if (atqb_len == ISO3B_ATQB_MAXLEN) - sfgi = patqb->proinfo.sfgi <= SFGI_MAX_VALUE ? patqb->proinfo.sfgi : SFGI_DEFAULT_VALUE; - - /**check protocol type B4 must be 0*/ - if (patqb->proinfo.pro_type & 0x08) - return ISO14443_3_ERR_PROTOCOL; - - /*FO,CID NAD support*/ - if (patqb->proinfo.fo & 0x01) - cid = 1; - if (patqb->proinfo.fo & 0x02) - nad = 1; - - set_atqb(patqb); - set_ats(PROTOCOL_ISO14443B, fsci, fwi, sfgi, nad, cid); - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3b_active(void) -{ - int32_t void_len = 0; - - return iso_14443_3b_active_response(NULL, &void_len); -} - -int32_t iso_14443_3b_active_response(uint8_t *attrib_resp, int32_t *attrib_resp_len) -{ - int32_t ret; - uint32_t sfgi_fc = 0; - ATQB_t atqb; - ATSConfig_t ats; - - get_atqb(&atqb); - get_ats(&ats); - - /* 6.3.2.10 PCD must disregard the value of bits b4-b2 of Protocol_Type */ - ret = iso_14443_3b_cmd_attrib(atqb.pupi, 0x00, FSDI_DEFAULT_VALUE, - (atqb.proinfo.pro_type & PROTOCOL_DISREGARD_BITS), 0x00, NULL, - NULL, (4096 * (1 << ats.FWI) + ISO14443_FWT_DELTA), attrib_resp, - attrib_resp_len); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if ((ret != ISO14443_3_ERR_SUCCESS) && (ret != ISO14443_3_ERR_CONTAINS_HIGH_INF)) { - return ISO14443_3_ERR_CMD; - } - - seqnuminit(); - - //SFGI delay = 256x16x2^sfgi + 384x2^sfgi - if (ats.SFGI) { - sfgi_fc = 4480 * (1 << ats.SFGI); - - nfc_set_delay_till_next_send_fc(sfgi_fc); - - info("sfgi=%d, time(fc)=%d \n", ats.SFGI, sfgi_fc); - } - return ret; -} - -int32_t iso_14443_3b_remove(void) -{ - int32_t loop = 0; - int32_t ret; - uint8_t *atq = GetCommonBuffer(); - int32_t atq_len; - - nfc_reset(); - - while (loop < 3) { - ret = iso_14443_3b_cmd_req_wup(atq, &atq_len, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret != ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - loop = 0; - } else { - loop++; - - // EMV 2.6b case TB311, now enforces a minimum retransmission time of 3ms - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_ATQB); - } - } - - return ISO14443_3_ERR_SUCCESS; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_4_transitive.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_4_transitive.c deleted file mode 100644 index 21a5e3b740c..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/emv_l1_stack/iso14443_4_transitive.c +++ /dev/null @@ -1,524 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include - -#include -#include "logging.h" - -#define RSEQNUM(pcb) (pcb & 1) -#define ISEQNUM(pcb) (pcb & 1) - -#define ISRNAK(pcb) (pcb & 0x10) /*is R(NAK) or not*/ - -#define CHAINING(pcb) ((pcb >> 4) & 1) // Retrieves More data bit info from pcb - -#define MAXRETRY_SENDBLOCK 3 -#define MAXRESENDIBLOCK 2 - -#define BLOCKTYPE(p) (p & 0xC2) -#define BLOCK_I (0x02) -#define BLOCK_R (0x82) -#define BLOCK_S (0xC2) - -#define PCBS 0xF2 -#define WTXM_MAX_VALUE (59) - -#define ACK 0 -#define NAK 1 -#define PCB_I(b5, b1) (0x2 | b1 | (b5 << 4)) -#define PCB_R(nak, b1) (0xA2 | b1 | (nak << 4)) -#define PCB_S(b56) (0xC0 | (b56 << 4)) - -typedef enum { False = 0, True } Bool; - -#define PCBLEN 1 -#define CRCLEN 2 - -const uint16_t FSCTable[9] = { 16, 24, 32, 40, 48, 64, 96, 128, 256 }; -const uint16_t *FSDTable = FSCTable; - -static uint8_t gPCDSeqNum = 0; - -/** - * @brief Reset block number - * - * Resets the block number for block transmission to 0 - */ -void seqnuminit(void) -{ - gPCDSeqNum = 0; -} - -static int32_t nfc_pcd_transceive_withpcb(uint8_t SPCB, uint8_t *RPCB, uint8_t protocol, - uint8_t frametype, uint8_t *tx_buf, int32_t tx_len, - uint8_t *rx_buf, int32_t *rx_len, uint32_t timeout) -{ - int32_t ret, slen = 0; - uint8_t sbuf[MAX_BUFFER_LEN], rbuf[MAX_BUFFER_LEN]; - uint32_t rlen = MAX_BUFFER_LEN; - - sbuf[slen++] = SPCB; - if (tx_len > 0) { - memcpy(sbuf + 1, tx_buf, tx_len); - slen += tx_len; - } - - debug("trans TX: "); - hexdump(DBG_LVL_DBG, sbuf, slen, 1); - - ret = nfc_pcd_transceive(protocol, frametype, sbuf, slen, rbuf, &rlen, timeout); - - if (ret != ISO14443_3_ERR_SUCCESS) { - return ret; - } - - full_debug("trans RX: "); - hexdump(DBG_LVL_FDB, rbuf, (rlen + CRCLEN), 0); - - /*4.7.3.1 (protocol error) if it receives a frame with more than FSD data bytes,2 bytes crc not include of rx_buf*/ - if (rlen > (uint32_t)(FSDTable[FSDI_DEFAULT_VALUE] - CRCLEN)) - return ISO14443_3_ERR_PROTOCOL; - - if (rlen == 0) - return ISO14443_3_ERR_PROTOCOL; - - *RPCB = rbuf[0]; - memcpy(rx_buf, (rbuf + 1), rlen - 1); - *rx_len = rlen - 1; - - return ISO14443_3_ERR_SUCCESS; -} - -/**************************************************************** - - - ________________Send______________________ - 012345 789ABCD EF - ------------------- - |PCB | INF |EDC | - ------------------- - | 12 | 012345 |xxxx | - ------------------- - I(0) | ^ - | | - v |R(ACK) - ---------- - |PCB |EDC| - ---------- - - ****************************************************************/ -/**************************************************************** - Transmit and Receive APDU to and from a PICC (Card). - -Pres: -capdu(out): -capdu_len(out): -rapdu(in): -rapdu_len(in): -Return: -Status of excute. - ****************************************************************/ -int32_t SendAPDU(uint8_t *capdu, int32_t capdu_len, uint8_t *rapdu, int32_t *rapdu_len) -{ - int32_t sendiblocklen; /*send length of one I-Block*/ - - uint8_t readPCB; /*one byte PCB from PICC*/ - int32_t readLen; /*read length of bytes from PICC*/ - int8_t retry; /*for all type of the blocks*/ - int8_t iblockresend; /*i block resend times*/ - - uint8_t rSINF; /*one byte INF of S-Block*/ - int8_t morechain; /*more chain for I-Block*/ - - uint32_t fwt, fwttmp; /*frame wait time*/ - uint8_t WTXM = 0; /*10.2.2 1~59*/ - uint8_t rbuf[MAX_BUFFER_LEN]; /*receive buffer*/ - uint16_t fsc; /*Table 5.17,get from FSCI 16~256(FSCI 0~8)bytes*/ - int32_t ret = 0; - - Bool ApduDone = False; /*apdu done.*/ - ATSConfig_t ATS; /*answer to select*/ - Bool getSblock = False; - - get_ats(&ATS); - - fwt = (4096 * (1 << ATS.FWI) + ISO14443_FWT_DELTA) + 1 + 54; - fsc = (FSCTable[ATS.FSCI] - PCBLEN - CRCLEN); - - *rapdu_len = 0; - - /*start to send command.*/ - while (capdu_len) { - sendiblocklen = (capdu_len < fsc) ? capdu_len : fsc; - capdu_len -= sendiblocklen; - morechain = capdu_len ? 1 : 0; - - //10.3.4.1 The first block shall be sent by the PCD. - ret = nfc_pcd_transceive_withpcb(PCB_I(morechain, gPCDSeqNum), &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, capdu, sendiblocklen, rbuf, &readLen, - fwt); - - retry = MAXRETRY_SENDBLOCK; - iblockresend = 0; - while (retry--) { - /*10.3.2.1 When an I-block indicating chaining is received, the block shall be acknowledged by an R(ACK) block.*/ - if (ret == ISO14443_3_ERR_SUCCESS) { - switch (BLOCKTYPE(readPCB)) { - /*I Block*/ - case BLOCK_I: - if ((readPCB & 0x2E) != 0x02) { - error("Bad I block: 10.3.2.1\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /* already send all cmd,start get response from here*/ - if (((ISEQNUM(readPCB) == gPCDSeqNum) && (!morechain))) { - /*10.3.3.3 */ - - break; - } - error("10.3.2.1 readPCB %x %d\n", ISEQNUM(readPCB), readPCB); - ret = ISO14443_3_ERR_PROTOCOL; - break; - - /*R Block*/ - case BLOCK_R: - if (ISRNAK(readPCB)) { - /*10.3.4.6 reject R(NAK)*/ - error("Get RNAK 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*update B6 b4 B3must be*/ - if (!(readPCB & 0x20) || (readPCB & 0x08) || (readPCB & 0x04) || - !(readPCB & 0x02)) { - error("ERR RACK 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - if (RSEQNUM(readPCB) == gPCDSeqNum) { - if (morechain) { - /*10.3.3.3 last block is chaining block 10.3.4.5 */ - gPCDSeqNum ^= 1; - - break; - } else { - /*10.3.4.5 if last block is not chaining block,protocol error*/ - error("Last block not a chaining block\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } else { - /*10.3.4.3 received block number is different.*/ - ret = ISO14443_3_ERR_PROTOCOL; - /*PCD shall re-transmit the last I-block if this R(ACK) block is received in response to an R(NAK) block sent by the PCD to notify a time-out.*/ - - if (iblockresend > MAXRESENDIBLOCK) { - /*10.3.4.4 max resend 2 time.*/ - while (1) {} - error("IBlock resend max 2 times %d\n", retry); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } else { - warning("IBlock resend R(ACK) #%d\n", iblockresend); - /*resend last i block.*/ - iblockresend++; - retry++; - ret = nfc_pcd_transceive_withpcb(PCB_I(morechain, gPCDSeqNum), &readPCB, - ATS.Pro_Type, FT_STANDARD_CRC_EMD, - capdu, sendiblocklen, rbuf, &readLen, - fwt); - continue; - } - } - break; - - /*S Block*/ - case BLOCK_S: - - /*10.3.4.2*/ - do { - if (readPCB == PCBS) { - rSINF = *rbuf; - - if (!rSINF || (rSINF > WTXM_MAX_VALUE)) { - error("WTX 00 or more than 59\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - //10.2.2.1 - WTXM = (rSINF < WTXM_MAX_VALUE) ? rSINF : WTXM_MAX_VALUE; - /*wtx=fwt*wtxm+deltafwt*/ - fwttmp = ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) <= - ISO14443_FWT_MAX ? - ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) : - ISO14443_FWT_MAX; - - //send back same 1 byte INF to comfirm picc. - ret = nfc_pcd_transceive_withpcb(readPCB, &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, &rSINF, 1, rbuf, - &readLen, fwttmp); - - if (ret != ISO14443_3_ERR_SUCCESS) - break; - - getSblock = True; - - //check if is next s block. - if (BLOCKTYPE(readPCB) != BLOCK_S) - break; - - } else { - //maybe DESELECT something,DO NOT support. - error("ERR SBLOCK: 10.3.4.2\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } while (1); - - if (getSblock) { - full_debug("getout from s\n"); - retry += 1; - continue; - } - break; - default: - // its a protocol error block - error("Unknown block type.\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } - - //no need retry and error handle. - if (ret == ISO14443_3_ERR_SUCCESS) - break; - - /*power of pcd for protocol error.*/ - if (ret == ISO14443_3_ERR_PROTOCOL) { - //9.6.12 - error("Protocol Error: 9.6.12\n"); - return ISO14443_3_ERR_PROTOCOL; - } - - /* Return to application if they aborted this transaction */ - if (ret == ISO14443_3_ERR_ABORTED) { - info("Transaction Aborted\n"); - return ret; - } - - debug("iblock tx retry: %d, iblockresend: %d\n", retry, iblockresend); - - if ((retry) || (iblockresend == MAXRESENDIBLOCK)) { - if (ret == ISO14443_3_ERR_TIMEOUT) { - warning("ISO14443_3_ERR_TIMEOUT\n"); - } else if (ret == ISO14443_3_ERR_TRANSMISSION) { - warning("ISO14443_3_ERR_TRANSMISSION\n"); - } else if (ret == ISO14443_3_ERR_COLLISION) { - warning("ISO14443_3_ERR_COLLISION\n"); - } else if (ret == ISO14443_3_ERR_EARLY_RESPONSE) { - warning("ISO14443_3_ERR_EARLY_RESPONSE\n"); - } else if (ret == ISO14443_3_ERR_PROTOCOL) { - /*9.6.1.2 return to polling*/ - error("Protocol Error: 9.6.1.2\n"); - return ISO14443_3_ERR_PROTOCOL; - } else { - error("ISO14443_3_ERR_OTHER unexpected in retry check\n"); - return ISO14443_3_ERR_OTHER; - } - - //send nak for timeout - debug("RNAK %d\n", retry); - /*10.3.5.3 send RNAK to picc*/ - ret = nfc_pcd_transceive_withpcb(PCB_R(NAK, gPCDSeqNum), &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, NULL, 0, rbuf, &readLen, fwt); - } - } - - /* MAX 3 time for one same block*/ - if (retry < 0) { - error("retried 3 times\n"); - if (ret == ISO14443_3_ERR_TIMEOUT) { - return ISO14443_3_ERR_TIMEOUT; - } - return ISO14443_3_ERR_PROTOCOL; - } - capdu += sendiblocklen; - } - - /*start to receive response.*/ - while (1) { - if (readLen > 0) { - memcpy(rapdu + *rapdu_len, rbuf, readLen); - *rapdu_len += readLen; - debug("*rapdu_len: %d\n", *rapdu_len); - } - - /*10.3.3.3 */ - gPCDSeqNum ^= 1; - - // Check whether there are morechain chained APDU responses blocks - if (CHAINING(readPCB)) { - //10.3.2.1 When an I-block indicating chaining is received, the block shall be acknowledged by an R(ACK) block. - ret = nfc_pcd_transceive_withpcb(PCB_R(ACK, gPCDSeqNum), &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, NULL, 0, rbuf, &readLen, fwt); - - /*you have 3 chances to retry one block. */ - retry = MAXRETRY_SENDBLOCK; - ApduDone = False; - while (retry && !ApduDone) { - /*receive next chaining i block.*/ - if (ret == ISO14443_3_ERR_SUCCESS) { - switch (BLOCKTYPE(readPCB)) { - case BLOCK_I: - /*update RFU to must be*/ - if ((readPCB & 0x20) || (readPCB & 0x08) || (readPCB & 0x04) || - !(readPCB & 0x02)) { - error("ERR IBLOCK 10.3.2.1\n"); - return ISO14443_3_ERR_PROTOCOL; - } - - if (ISEQNUM(readPCB) == gPCDSeqNum) { - /* A valid I-Block,break retry loop */ - ApduDone = True; - } else { - /*error block num*/ - ret = ISO14443_3_ERR_PROTOCOL; - } - - break; - case BLOCK_R: - if (ISRNAK(readPCB)) { - /*10.3.4.6 reject R(NAK)*/ - error("R(NAK) reject: 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*update B6 b4 B3must be*/ - if (!(readPCB & 0x20) || (readPCB & 0x08) || (readPCB & 0x04) || - !(readPCB & 0x02)) { - error("ERR RACK bad PCB bits: 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - /*do not retranmit because R block only has 3 bytes,less than 4 bytes.*/ - if (RSEQNUM(readPCB) == gPCDSeqNum) { - /*10.3.4.5*/ - ret = ISO14443_3_ERR_PROTOCOL; - } else { - /*10.3.4.3 need more test*/ - ret = ISO14443_3_ERR_PROTOCOL; - } - break; - case BLOCK_S: - if (readPCB != PCBS) { - error("ERR SBLOCK not allowed during chaining\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*10.3.4.2 get wtxm*/ - rSINF = *rbuf; - if (!rSINF || (rSINF > WTXM_MAX_VALUE)) { - error("WTX 00 or more than 59 during chaining\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*10.2.2.1 10.3.5.8*/ - WTXM = (rSINF < WTXM_MAX_VALUE) ? rSINF : WTXM_MAX_VALUE; - - /*wtx=fwt*wtxm+deltafwt*/ - fwttmp = ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) <= - ISO14443_FWT_MAX ? - ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) : - ISO14443_FWT_MAX; - - /*send back same 1 byte INF to comfirm picc.*/ - ret = nfc_pcd_transceive_withpcb(readPCB, &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, &rSINF, 1, rbuf, - &readLen, fwttmp); - - break; - default: - // its a protocol error block - error("Bad Block Type during chaining\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } else if ((ret == ISO14443_3_ERR_TIMEOUT) || - (ret == ISO14443_3_ERR_TRANSMISSION) || - (ret == ISO14443_3_ERR_COLLISION) || - (ret == ISO14443_3_ERR_EARLY_RESPONSE)) { - /*10.3.5.8 ReSend last RACK */ - /*10.3.5.6 this transmission error block*/ - - if (--retry) { - /*send RACK block*/ - ret = nfc_pcd_transceive_withpcb(PCB_R(ACK, gPCDSeqNum), &readPCB, - ATS.Pro_Type, FT_STANDARD_CRC_EMD, NULL, 0, - rbuf, &readLen, fwt); - } - } else { - error("protocol or other error during chaining\n"); - return ret; - } - } - - /*10.3.5.6 max resend RACK twice. total 3 time.*/ - if (!retry) { - if (ret == ISO14443_3_ERR_TIMEOUT) { - return ISO14443_3_ERR_TIMEOUT; - } - return ISO14443_3_ERR_PROTOCOL; - } - } else { - /*10.3.5.3 response i block is no-link block Done!*/ - info("apdu done!\n"); - break; - } - } - return ret; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/logging.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/logging.c deleted file mode 100644 index e7ddfbb960a..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/logging.c +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include "logging.h" - -/** - * @brief Controls the logging level for the L1 Stack - * - * Stack Logging Level - * - * Defaults to output logging level messages only - */ -int32_t g_logging_level = DBG_LVL_LOG; - -/** - * @brief Conditionally print some logging information - * - * This function is called by @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS to implement multilevel debugging messages - * - * @param[in] req_level Level for this logging message, use one of @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS - * @param[in] ... printf style formating string and variables to print etc. - */ -void do_log(int32_t req_level, ...) -{ - va_list ap; - - if (req_level <= g_logging_level) { - va_start(ap, req_level); - const char *fmt = va_arg(ap, const char *); - vprintf(fmt, ap); - va_end(ap); - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/mml_nfc_port.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/mml_nfc_port.c deleted file mode 100644 index 0ace6bd4d13..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/nfc/mml_nfc_port.c +++ /dev/null @@ -1,291 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include - -#include "mxc_device.h" - -/** - * @page NFC_EMV_CONTACTLESS_RF_DRIVER_PORT NFC EMV Contactless PCD RF Driver Porting Functions - * - * @remarks This file provides various methods required for the NFC PCD RF driver - * which integrators may wish to modify for specific porting requirements, - * including RTOS integrations etc. - * - * @see @ref APIOverviewAndUsage - * @see @ref NFC_EMV_CONTACTLESS_RF_DRIVER - */ - -// In single process/thread applications, we may set the NFC interrupt to max priority: 0 -#define NFC_INTERRUPT_PRIORITY 0 -// Typically, the FWT (timeout) timer is set to one less priority from the NFC interrupt -//#define FWT_TIMER_INTERRUPT_PRIORITY (NFC_INTERRUPT_PRIORITY + 1) -#define FWT_TIMER_INTERRUPT_PRIORITY 0 - -// Fake semaphore used in single process/thread applications -static volatile uint32_t g_fake_semaphore = 0; - -// Enable dump of analog settings before setting for the RF driver -#define DUMP_SELECTED_ANALOG_SETTINGS 0 - -/** Capture array used for Type B SW based receiver */ -// Not needed as of now for the MAX32572, size is 0 -uint16_t mml_nfc_pcd_maj_sel_capture_data[CAPTURE_DATA_BUFFER_SIZE]; - -/** Packing buffer used for internal framing */ -uint8_t mml_nfc_pcd_packing_buffer[MAX_PACKING_BUFFER_LEN]; - -/** - * Default NFC Analog Configuration values - */ -mml_nfc_pcd_analog_params_matrix_t mml_nfc_pcd_analog_parameters_matrix = { - .fd_thresholds = { 180, 170, 140 }, - .fd_dyn_trigger_a = { 125, 125, 125 }, - .fd_dyn_math_a = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_b = { 125, 125, 125 }, - .fd_dyn_math_b = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_f = { 100, 100, 100 }, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I }, - .fd_dyn_trigger_v = { 125, 125, 125 }, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000 }, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000 }, - .fd_dyn_sttm_bfv = { 0x06060606, 0x06060606, 0x06060606 }, - .fd_dyn_stfm_bfv = { 0x7F060606, 0x7F060606, 0x7F060606 }, - .fd_dyn_gain = { 12, 12, 12 }, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F } -}; - -/** - * NFC Analog Configuration values to use for current transaction - */ -mml_nfc_pcd_analog_params_t current_analog_parameters = { .trigger_level = 125, - .sttm = 0x00000000, - .stfm = 0x7F000000, - .gain = 12, - .iq_math = IQ_MATH_Q_MINUS_I, - .atten = 0x1F }; - -void mml_nfc_pcd_enter_critical(void) -{ - __disable_irq(); -} - -void mml_nfc_pcd_leave_critical(void) -{ - __enable_irq(); -} - -void mml_nfc_pcd_task_sleep(uint32_t delay_ms) -{ - nfc_block_for_us(1000 * (delay_ms)); -} - -void mml_nfc_pcd_set_nfc_interrupt_priority(int32_t nfc_irq_num) -{ - NVIC_SetPriority(nfc_irq_num, NFC_INTERRUPT_PRIORITY); -} - -void mml_nfc_pcd_set_FWT_timer_interrupt_priority(int32_t fwt_timer_irq_num) -{ - NVIC_SetPriority(fwt_timer_irq_num, FWT_TIMER_INTERRUPT_PRIORITY); -} - -void mml_nfc_pcd_create_semaphore() -{ - // We are single threaded, no need for a real semaphore - g_fake_semaphore = 0; -} - -void mml_nfc_pcd_take_semaphore() -{ - while (1) { - if (g_fake_semaphore) { - // Need to reset our semaphore - mml_nfc_pcd_enter_critical(); - g_fake_semaphore = 0; - mml_nfc_pcd_leave_critical(); - - return; - } - } -} - -void mml_nfc_pcd_give_semaphore_from_isr() -{ - g_fake_semaphore = 1; -} - -void mml_nfc_pcd_field_level_detection_callback(uint8_t protocol) -{ - uint8_t sensed_threshold = 0; - uint32_t field_sensed = 0; - int32_t return_status = 0; - - // Sweep through and identify the requested level - for (sensed_threshold = 0; sensed_threshold < FD_THRESH_NUM_STEPS;) { - return_status = mml_nfc_pcd_detect_loading( - mml_nfc_pcd_analog_parameters_matrix.fd_thresholds[sensed_threshold], &field_sensed); - - if (return_status != MML_NFC_PCD_E_SUCCESS) { - error("Failed to detect_loading: %d\n", return_status); - } - - if (field_sensed) { - break; - } - - sensed_threshold++; - } - - // Bounds check - if (sensed_threshold > (FD_THRESH_NUM_STEPS - 1)) { - sensed_threshold = FD_THRESH_NUM_STEPS - 1; - } - - switch (protocol) { - case PROTOCOL_ISO14443A: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a[sensed_threshold]; - break; - - case PROTOCOL_ISO14443B: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_b[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_b[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[sensed_threshold]; - break; - - case PROTOCOL_TYPE_F: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_f[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_f[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[sensed_threshold]; - break; - - case PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH: - case PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW: - case PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH: - case PROTOCOL_ISO15693_100_1OF4_DUAL_LOW: - case PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH: - case PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW: - case PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH: - case PROTOCOL_ISO15693_100_1OF256_DUAL_LOW: - case PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH: - case PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW: - case PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH: - case PROTOCOL_ISO15693_10_1OF4_DUAL_LOW: - case PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH: - case PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW: - case PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH: - case PROTOCOL_ISO15693_10_1OF256_DUAL_LOW: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_v[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_v[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[sensed_threshold]; - break; - - default: - error("Error when setting analog configuration, MML_NFC_PCD_E_UNKNOWN_PROTOCOL\n"); - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a[sensed_threshold]; - return; - } - - // Implement dynamic gain - current_analog_parameters.gain = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_gain[sensed_threshold]; - - if (DUMP_SELECTED_ANALOG_SETTINGS) { - info("Detected Loading Index: %d\n", sensed_threshold); - info("Selected Trigger %3d\n", current_analog_parameters.trigger_level); - info("Selected STTM %8X\n", current_analog_parameters.sttm); - info("Selected STFM %8X\n", current_analog_parameters.stfm); - info("Selected Gain %3d\n", current_analog_parameters.gain); - info("Selected Atten %3d\n", current_analog_parameters.atten); - - switch (current_analog_parameters.iq_math) { - case IQ_MATH_CH_I: - info("Selected IQ Math IQ_MATH_CH_I\n"); - break; - case IQ_MATH_CH_Q: - info("Selected IQ Math IQ_MATH_CH_Q\n"); - break; - case IQ_MATH_I_MINUS_Q: - info("Selected IQ Math IQ_MATH_I_MINUS_Q\n"); - break; - case IQ_MATH_Q_MINUS_I: - info("Selected IQ Math IQ_MATH_Q_MINUS_I\n"); - break; - case IQ_MATH_I_PLUS_Q: - info("Selected IQ Math IQ_MATH_I_PLUS_Q\n"); - break; - - default: - info("Selected IQ Math IQ_MATH_CH_In"); - break; - } - } - - if (mml_nfc_pcd_set_analog_config(current_analog_parameters) != MML_NFC_PCD_E_SUCCESS) { - error("Error when setting analog configuration\n"); - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state.c deleted file mode 100644 index 3e09909c612..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include - -#include "state.h" -#include "utils.h" - -/********************************* VARIABLES *************************/ -static State *g_state = NULL; - -/********************************* Public Functions **************************/ -void state_init(void) -{ - MXC_TFT_SetBackGroundColor(0); - MXC_TFT_ShowImage(52, 87, maxim_integrated_large_bmp); - - utils_delay_ms(1000); // 1 second - - state_set_current(get_home_state()); -} - -int state_set_current(State *state) -{ - if (state != g_state) { - g_state = state; - g_state->init(); - } - - return 0; -} - -State *state_get_current(void) -{ - return g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_home.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_home.c deleted file mode 100644 index c5f5b96eabf..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_home.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ - -/********************************* VARIABLES *************************/ -static text_t text_msg[] = { - { (char *)"MAX32572", 8 }, - { (char *)"Select an activity", 18 }, -}; - -/********************************* Static Functions **************************/ -static int init(void) -{ - MXC_TFT_SetPalette(integrated_only_small_bmp); - MXC_TFT_SetBackGroundColor(0); - - MXC_TFT_ShowImage(33, 12, integrated_only_small_bmp); - MXC_TFT_ShowImage(7, 72, smartcard_bmp); - MXC_TFT_ShowImage(113, 72, magstripe_bmp); - MXC_TFT_ShowImage(219, 72, keypad_bmp); - MXC_TFT_ShowImage(7, 155, nfc_bmp); - MXC_TFT_ShowImage(113, 155, slideshow_bmp); - MXC_TFT_ShowImage(219, 155, information_bmp); - - MXC_TFT_PrintFont(104, 12, urw_gothic_16_white_bg_grey, &text_msg[0], NULL); // - MXC_TFT_PrintFont(89, 40, urw_gothic_12_white_bg_grey, &text_msg[1], NULL); //Select an activity - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(7, 72, (7 + 93), (72 + 70), '1'); - MXC_TS_AddButton(113, 72, (113 + 93), (72 + 70), '2'); - MXC_TS_AddButton(219, 72, (219 + 93), (72 + 70), '3'); - MXC_TS_AddButton(6, 155, (6 + 94), (155 + 70), '4'); - MXC_TS_AddButton(113, 155, (113 + 93), (155 + 70), '5'); - MXC_TS_AddButton(219, 155, (219 + 93), (155 + 70), '6'); - - // - logo_animation_start(); - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_0: - break; - case KEY_1: - state_set_current(get_smartcard_state()); - break; - case KEY_2: - state_set_current(get_msr_state()); - break; - case KEY_3: - state_set_current(get_keypad_state()); - break; - case KEY_4: - state_set_current(get_nfc_state()); - break; - case KEY_5: - state_set_current(get_slide_state()); - break; - case KEY_6: - state_set_current(get_info_state()); - break; - case KEY_7: - break; - case KEY_8: - break; - case KEY_9: - break; - case KEY_A: - break; - case KEY_B: - break; - case KEY_C: - break; - case KEY_D: - break; - case KEY_E: - break; - case KEY_F: - break; - default: - break; - } - return 0; -} - -static State g_state = { "home", init, key_process, NULL, 0 }; - -/********************************* Public Functions **************************/ -State *get_home_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_idle.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_idle.c deleted file mode 100644 index c9bac70bd19..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_idle.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "task_logo_animation.h" -#include "utils.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 60 - -/********************************* VARIABLES *************************/ -static const int screensaver_data[] = { - medium_logo_000_bmp, medium_logo_001_bmp, medium_logo_002_bmp, medium_logo_001_bmp, - medium_logo_003_bmp, medium_logo_004_bmp, medium_logo_005_bmp, medium_logo_006_bmp, - medium_logo_007_bmp, medium_logo_008_bmp, medium_logo_009_bmp, medium_logo_010_bmp, - medium_logo_011_bmp, medium_logo_012_bmp, medium_logo_011_bmp, medium_logo_013_bmp, - medium_logo_014_bmp, medium_logo_015_bmp, medium_logo_016_bmp, medium_logo_017_bmp, - medium_logo_018_bmp, medium_logo_019_bmp, medium_logo_020_bmp, medium_logo_021_bmp, - medium_logo_022_bmp, medium_logo_021_bmp, medium_logo_023_bmp, medium_logo_024_bmp, - medium_logo_025_bmp, medium_logo_026_bmp, medium_logo_027_bmp, medium_logo_028_bmp, - medium_logo_029_bmp, medium_logo_030_bmp, medium_logo_031_bmp, medium_logo_032_bmp, - medium_logo_031_bmp, medium_logo_033_bmp, medium_logo_034_bmp, medium_logo_035_bmp -}; - -static unsigned int image_index = 0; -static unsigned int max_loop = ARRAY_SIZE(screensaver_data); - -/********************************* Static Functions **************************/ -static int init(void) -{ - MXC_TFT_SetPalette(maxim_integrated_large_bmp); - MXC_TFT_SetBackGroundColor(0); - MXC_TFT_ShowImage(52, 87, maxim_integrated_large_bmp); - - image_index = 0; - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(0, 0, 320, 240, 'C'); //Home - - logo_animation_stop(); - - return 0; -} - -static int time_tick(void) -{ - MXC_TFT_ShowImage(52, 87, screensaver_data[image_index]); - image_index = (image_index + 1) % max_loop; - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_C: - state_set_current(get_home_state()); - break; - default: - break; - } - return 0; -} - -static State g_state = { "idle", init, key_process, time_tick, TICK_TIMEOUT }; - -/********************************* Public Functions **************************/ -State *get_idle_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_info.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_info.c deleted file mode 100644 index a0f4858462c..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_info.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "utils.h" - -/********************************** Type Defines *****************************/ -typedef void (*ScreenFunc)(void); - -/************************************ VARIABLES ******************************/ -static void display_page1(void); -static void display_page2(void); -static void display_page3(void); - -static ScreenFunc info_screens[] = { display_page1, display_page2, display_page3 }; -static int screen_index = 0; - -static text_t text_msg[] = { - { (char *)"INFORMATION", 11 }, - { (char *)"Scroll through pages", 20 }, - // pages 1 - { (char *)"Cortex M4 @ 150MHz", 18 }, - { (char *)"1MB Flash, 760KB SRAM", 21 }, - { (char *)"TFT, ISO7816 PHY, MSR", 21 }, - // pages 2 - { (char *)"6 dynamic sensor pairs", 22 }, - { (char *)"Hardware crypto blocks", 22 }, - { (char *)"ECDSA Bootloader", 16 }, - // pages 3 - { (char *)"EMV-L1 stack", 12 }, - { (char *)"Cryptographic library", 21 }, - { (char *)"FreeRTOS OS", 11 }, -}; - -static area_t area_cleanMSG = { 0, 70, 320, 115 }; - -/********************************* Static Functions **************************/ -static void display_page1(void) -{ - MXC_TFT_ClearArea(&area_cleanMSG, 0); - - MXC_TFT_ShowImage(13, 74, check_bmp); - MXC_TFT_ShowImage(13, 108, check_bmp); - MXC_TFT_ShowImage(13, 143, check_bmp); - MXC_TFT_PrintFont(47, 75, urw_gothic_16_white_bg_grey, &text_msg[2], - NULL); // "Cortex M3 @ 150MHz",18 - MXC_TFT_PrintFont(47, 109, urw_gothic_16_white_bg_grey, &text_msg[3], - NULL); // "1MB Flash, 760KB SRAM",20 - MXC_TFT_PrintFont(47, 145, urw_gothic_16_white_bg_grey, &text_msg[4], - NULL); // "TFT, ISO7817 PHY, MSR",19 -} - -static void display_page2(void) -{ - MXC_TFT_ClearArea(&area_cleanMSG, 0); - - MXC_TFT_ShowImage(13, 74, check_bmp); - MXC_TFT_ShowImage(13, 108, check_bmp); - MXC_TFT_ShowImage(13, 143, check_bmp); - MXC_TFT_PrintFont(47, 75, urw_gothic_16_white_bg_grey, &text_msg[5], - NULL); // "6 dynamic sensor pairs",22 - MXC_TFT_PrintFont(47, 109, urw_gothic_16_white_bg_grey, &text_msg[6], - NULL); // "Hardware crypto blocks",22 - MXC_TFT_PrintFont(47, 145, urw_gothic_16_white_bg_grey, &text_msg[7], - NULL); //"ECDSA Bootloader",16 -} - -static void display_page3(void) -{ - MXC_TFT_ClearArea(&area_cleanMSG, 0); - - MXC_TFT_ShowImage(13, 74, check_bmp); - MXC_TFT_ShowImage(13, 108, check_bmp); - MXC_TFT_ShowImage(13, 143, check_bmp); - MXC_TFT_PrintFont(47, 75, urw_gothic_16_white_bg_grey, &text_msg[8], NULL); //"EMV-L1 stack",12 - MXC_TFT_PrintFont(47, 109, urw_gothic_16_white_bg_grey, &text_msg[9], - NULL); //"Cryptographic library",21 - MXC_TFT_PrintFont(47, 145, urw_gothic_16_white_bg_grey, &text_msg[10], - NULL); // "FreeRTOS OS",11 -} - -static int init(void) -{ - MXC_TFT_SetBackGroundColor(0); - - MXC_TFT_PrintFont(96, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); // "INFORMATION" - MXC_TFT_PrintFont(79, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - NULL); // "Scroll through pages",20 - MXC_TFT_ShowImage(33, 12, integrated_only_small_bmp); - MXC_TFT_ShowImage(12, 191, arrow_left_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - MXC_TFT_ShowImage(259, 191, arrow_right_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), KEY_C); //Home - MXC_TS_AddButton(12, 191, (12 + 48), (191 + 39), KEY_A); - MXC_TS_AddButton(259, 191, (259 + 48), (191 + 39), KEY_B); - - // - screen_index = 0; - display_page1(); - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_A: - if (--screen_index < 0) { - screen_index = (ARRAY_SIZE(info_screens) - 1); - } - info_screens[screen_index](); - break; - case KEY_B: - if (++screen_index >= (int)ARRAY_SIZE(info_screens)) { - screen_index = 0; - } - info_screens[screen_index](); - break; - case KEY_C: - state_set_current(get_home_state()); - break; - default: - break; - } - - return 0; -} - -static State g_state = { "info", init, key_process, NULL, 0 }; - -/********************************* Public Functions **************************/ -State *get_info_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_keypad.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_keypad.c deleted file mode 100644 index 72805eb745b..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_keypad.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ -#define MAX_CHAR_ON_SCREEN 8 - -#define BUTTON_SIZE_X 42 + 4 // 6 for free space -#define BUTTON_SIZE_Y 41 + 6 // 6 for free space - -/********************************* VARIABLES *************************/ -static unsigned char input_buf[MAX_CHAR_ON_SCREEN + 1] = { 0 }; - -static text_t text_msg[] = { - { (char *)"Pressed", 7 }, - { (char *)input_buf, 0 }, -}; - -static text_t *input_text = &text_msg[1]; - -/********************************* Static Functions **************************/ -static int init(void) -{ - int x, y; - int x0 = 120; - int y0 = 40; - - logo_animation_stop(); - - MXC_TS_RemoveAllButton(); - MXC_TFT_SetPalette(logo_white_bg_white_bmp); - MXC_TFT_SetBackGroundColor(0); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_white_bmp); - - x = x0; - y = y0; - MXC_TFT_ShowImage(x, y, key_1_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_1); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_2_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_2); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_3_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_3); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_clear_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_F); - - // - x = x0; - y += BUTTON_SIZE_Y; - MXC_TFT_ShowImage(x, y, key_4_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_4); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_5_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_5); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_6_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_6); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_cancel_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_E); - - // - x = x0; - y += BUTTON_SIZE_Y; - MXC_TFT_ShowImage(x, y, key_7_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_7); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_8_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_8); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_9_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_9); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_enter_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_D); - - // - x = x0; - x += BUTTON_SIZE_X; - y += BUTTON_SIZE_Y; - MXC_TFT_ShowImage(x, y, key_0_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_0); - - MXC_TFT_PrintFont(11, 80, urw_gothic_13_grey_bg_white, &text_msg[0], NULL); - input_text->len = 0; - - return 0; -} - -static void print_inputs(int key) -{ - static area_t area; - - if (key == 0) { // means clear screen - MXC_TFT_ClearArea(&area, 0); - input_text->len = 0; - } else if (key == -1) { // means clear last key - if (input_text->len > 0) { - input_text->len--; - MXC_TFT_ClearArea(&area, 0); - MXC_TFT_PrintFont(11, 120, urw_gothic_13_grey_bg_white, input_text, &area); - } - } else if (input_text->len < MAX_CHAR_ON_SCREEN) { - input_text->data[input_text->len++] = key; - MXC_TFT_PrintFont(11, 120, urw_gothic_13_grey_bg_white, input_text, &area); - } -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_0: - case KEY_1: - case KEY_2: - case KEY_3: - case KEY_4: - case KEY_5: - case KEY_6: - case KEY_7: - case KEY_8: - case KEY_9: - case KEY_A: - case KEY_B: - print_inputs(key); - break; - case KEY_C: // exit - state_set_current(get_home_state()); - break; - case KEY_D: // enter - state_set_current(get_home_state()); - break; - case KEY_E: // cancel - print_inputs(-1); - break; - case KEY_F: // clear - print_inputs(0); - break; - default: - break; - } - - return 0; -} - -static State g_state = { "keypad", init, key_process, NULL, 0 }; - -/********************************* Public Functions **************************/ -State *get_keypad_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_msr.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_msr.c deleted file mode 100644 index 285ade9a5c6..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_msr.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "utils.h" -#include "task_msr.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 10 -#define DISPLAY_MSG_TIMEOUT 1000 - -/********************************* VARIABLES *************************/ -static text_t text_msg[] = { - { (char *)"MAG STRIPE", 10 }, -#ifndef MN_EvKit_V1 - { (char *)"Swipe a card", 12 }, - { (char *)"Track:", 6 }, -#else - { (char *)"This EvKit does not support MSR", 31 } -#endif -}; - -#ifndef MN_EvKit_V1 -static area_t area_clean = { 0, 0, 0, 0 }; -static area_t area_cleanMSG = { 0, 0, 0, 0 }; - -static int g_tick_counter = 0; -#endif - -/********************************* Static Functions **************************/ -static int init(void) -{ - MXC_TFT_SetBackGroundColor(0); - MXC_TFT_PrintFont(101, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); // "MAG STRIPE" - MXC_TFT_ShowImage(33, 12, integrated_only_small_bmp); - MXC_TFT_ShowImage(98, 69, magstripe_large_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - -#ifndef MN_EvKit_V1 - MXC_TFT_PrintFont(101, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &area_clean); //"Swipe a card", 12 -#else - MXC_TFT_PrintFont(23, 40, urw_gothic_12_white_bg_grey, &text_msg[1], NULL); // -#endif - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), 'C'); //Home - -#ifndef MN_EvKit_V1 - g_tick_counter = 0; - msr_start(); -#endif - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_C: // exit -#ifndef MN_EvKit_V1 - msr_stop(); -#endif - state_set_current(get_home_state()); - break; - default: - break; - } - - return 0; -} - -#ifndef MN_EvKit_V1 -static int time_tick(void) -{ - char msg[64]; - int msg_len = 0; - - msr_tick(msg, &msg_len); - if (msg_len > 0) { - text_t msg_var; - - MXC_TFT_ClearArea(&area_clean, 0); - msg_var.data = (char *)msg; - msg_var.len = msg_len; - if (msg_var.len > 18) { - msg_var.len = 18; - } - MXC_TFT_PrintFont(82, 162, urw_gothic_16_white_bg_grey, &msg_var, &area_clean); - MXC_TFT_PrintFont(17, 162, urw_gothic_16_bleu_bg_grey, &text_msg[2], - &area_cleanMSG); // "Track:", - - g_tick_counter = 1; // means enable timeout - } - - if (g_tick_counter > 0) { - if (++g_tick_counter > (DISPLAY_MSG_TIMEOUT / TICK_TIMEOUT)) { - g_tick_counter = 0; // stop counter - - // Swipe again - MXC_TFT_ClearArea(&area_clean, 0); - MXC_TFT_ClearArea(&area_cleanMSG, 0); - MXC_TFT_PrintFont(101, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &area_clean); //"Swipe a card", - } - } - - return 0; -} -#endif // for #ifndef MN_EvKit_V1 - -#ifndef MN_EvKit_V1 -static State g_state = { "msr", init, key_process, time_tick, TICK_TIMEOUT }; -#else -static State g_state = { "msr", init, key_process, NULL, 0 }; -#endif - -/********************************* Public Functions **************************/ -State *get_msr_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_nfc.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_nfc.c deleted file mode 100644 index 9c02eb39027..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_nfc.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "utils.h" -#include "task_nfc.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 10 -#define DISPLAY_MSG_TIMEOUT 1000 -// -#define MAX_CHAR_ON_SCREEN 24 - -/********************************* TYPE DEF *************************/ - -/******************************* Function Prototypes ********************/ - -/********************************* VARIABLES *************************/ -static text_t text_msg[] = { - { (char *)"NFC", 3 }, -#ifndef MN_EvKit_V1 - { (char *)"Place card near target", 22 }, -#else - { (char *)"This EvKit does not support NFC", 31 } -#endif -}; - -#ifndef MN_EvKit_V1 -static area_t area_clean = { 0, 0, 0, 0 }; -static area_t area_clean_1 = { 0, 0, 0, 0 }; -static int g_tick_counter = 0; -#endif - -/********************************* Static Functions **************************/ -static int init(void) -{ - MXC_TFT_SetBackGroundColor(0); - - MXC_TFT_PrintFont(140, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); //"NFC" -#ifndef MN_EvKit_V1 - MXC_TFT_PrintFont(58, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - NULL); //"Place card near target" -#else - MXC_TFT_PrintFont(23, 40, urw_gothic_12_white_bg_grey, &text_msg[1], NULL); // -#endif - // - MXC_TFT_ShowImage(33, 12, integrated_only_small_bmp); - MXC_TFT_ShowImage(106, 72, nfc_large_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), 'C'); //Home - -#ifndef MN_EvKit_V1 - g_tick_counter = 0; -#endif - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_C: // exit - state_set_current(get_home_state()); - break; - default: - break; - } - - return 0; -} - -#ifndef MN_EvKit_V1 -static int time_tick(void) -{ - char msg[64]; - int msg_len = 0; - - nfc_tick(msg, &msg_len); - - if (msg_len > 0) { - text_t msg_var; - text_t msg_var_1; - unsigned int k; - - // NFC info Display - MXC_TFT_ClearArea(&area_clean, 0); - MXC_TFT_ClearArea(&area_clean_1, 0); - - // Parse message looking for "\n" signaling a new line - for (k = 0; k < msg_len; k++) { - if (msg[k] == '\n') { - break; - } - } - - if (k == msg_len) { - // Single line to show - msg_var.data = (char *)msg; - msg_var.len = msg_len; - - if (msg_var.len > 24) { - msg_var.len = 24; - } - MXC_TFT_PrintFont(17, 150, urw_gothic_16_white_bg_grey, &msg_var, &area_clean); - - } else { - // Show 2 lines, MAX - msg_var.data = (char *)msg; - msg_var.len = k; - - k++; // skip past \n - msg_var_1.data = (char *)(msg + k); - msg_var_1.len = msg_len - k; - - if (msg_var.len > 24) { - msg_var.len = 24; - } - - if (msg_var_1.len > 24) { - msg_var_1.len = 24; - } - MXC_TFT_PrintFont(17, 150, urw_gothic_16_white_bg_grey, &msg_var, &area_clean); - MXC_TFT_PrintFont(17, 168, urw_gothic_16_white_bg_grey, &msg_var_1, &area_clean_1); - } - - g_tick_counter = 1; // means enable timeout - } - - if (g_tick_counter > 0) { - if (++g_tick_counter > (DISPLAY_MSG_TIMEOUT / TICK_TIMEOUT)) { - g_tick_counter = 0; // stop counter - - // timeout clear screen - MXC_TFT_ClearArea(&area_clean, 0); - MXC_TFT_ClearArea(&area_clean_1, 0); - } - } - - return 0; -} -#endif // for #ifndef MN_EvKit_V1 - -#ifndef MN_EvKit_V1 -static State g_state = { "nfc", init, key_process, time_tick, 10 }; -#else -static State g_state = { "nfc", init, key_process, NULL, 0 }; -#endif - -/********************************* Public Functions **************************/ -State *get_nfc_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_slide.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_slide.c deleted file mode 100644 index 725f16d4307..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_slide.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include - -#include "state.h" -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 2000 - -/********************************* VARIABLES *************************/ -static int img_number = 0; - -static text_t text_msg[] = { { (char *)"SLIDESHOW", 9 }, { (char *)"Press Play to start", 19 } }; - -/********************************* Static Functions **************************/ -static int init(void) -{ - MXC_TFT_SetBackGroundColor(0); - MXC_TFT_PrintFont(104, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); // "SLIDESHOW" - MXC_TFT_PrintFont(89, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - NULL); // "Press Play to start" - MXC_TFT_ShowImage(33, 12, integrated_only_small_bmp); - MXC_TFT_ShowImage(119, 82, slideshow_large_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - - img_number = 0; - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(119, 82, (119 + 78), (82 + 78), '1'); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), KEY_C); //Home - - return 0; -} - -static int time_tick(void) -{ - if (img_number <= 0) { - return 1; - } - - switch (img_number) { - case 1: - MXC_TFT_ShowImage(0, 0, mpos_bmp); - break; - case 2: - MXC_TFT_ShowImage(0, 0, parrot_bmp); - break; - case 3: - MXC_TFT_SetBackGroundColor(0); - MXC_TFT_ShowImage(52, 87, maxim_integrated_large_bmp); - break; - default: - break; - } - - if (++img_number > 4) { - img_number = 1; // go first slide - } - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_1: - logo_animation_stop(); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(0, 0, 320, 240, KEY_C); //Home - - // start slide - img_number = 1; - time_tick(); - break; - case KEY_C: - state_set_current(get_home_state()); - break; - default: - break; - } - return 0; -} - -static State g_state = { "slide", init, key_process, time_tick, TICK_TIMEOUT }; - -/********************************* Public Functions **************************/ -State *get_slide_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_smartcard.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_smartcard.c deleted file mode 100644 index eba32e573ed..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/state_smartcard.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "MAX32xxx.h" - -#include "state.h" -#include "utils.h" -#include "task_smartcard.h" - -/********************************* DEFINES *************************/ -#define MAX_CHAR_ON_SCREEN 24 - -/********************************* TYPE DEF *************************/ - -/******************************* Function Prototypes ********************/ - -/********************************* VARIABLES *************************/ -static unsigned char input_buf[MAX_CHAR_ON_SCREEN + 1] = { 0 }; - -static text_t text_msg[] = { - { (char *)input_buf, 0 }, { (char *)"Insert a card", 13 }, { (char *)"SMARTCARD", 9 }, - { (char *)"Smart", 5 }, { (char *)"card", 4 }, { (char *)"ATR:", 4 }, -}; - -static text_t *text_line = &text_msg[0]; - -area_t sm_area_clean = { 0, 0, 0, 0 }; -area_t sm_area_cleanMSG = { 0, 0, 0, 0 }; - -// -static uint32_t g_card_last_status = ICC_ERR_REMOVED; - -/********************************* Static Functions **************************/ -static void read_atr(void) -{ - sc_read_atr(text_msg->data, &text_msg->len); - if (text_msg->len > 0) { - MXC_TFT_ClearArea(&sm_area_clean, 0); - - text_line->len = 18; - MXC_TFT_PrintFont(24, 162, urw_gothic_16_bleu_bg_grey, &text_msg[5], - &sm_area_cleanMSG); //"ATR:", 4 - MXC_TFT_PrintFont(77, 162, urw_gothic_16_white_bg_grey, &text_msg[0], &sm_area_clean); - } -} - -/********************************* State Functions **************************/ -static int init(void) -{ - MXC_TFT_SetBackGroundColor(0); - MXC_TFT_PrintFont(105, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &sm_area_clean); //"Insert a card", 13 - - // Test ATR - MXC_TFT_PrintFont(94, 12, urw_gothic_16_bleu_bg_grey, &text_msg[2], NULL); //"SMARTCARD" - MXC_TFT_ShowImage(33, 12, integrated_only_small_bmp); - MXC_TFT_ShowImage(98, 69, smartcard_large_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - - // TS keys - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), 'C'); //Home - - g_card_last_status = ICC_ERR_REMOVED; - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_A: - break; - case KEY_B: - break; - case KEY_C: // exit - state_set_current(get_home_state()); - break; - case KEY_CARD_INSERTED: - break; - case KEY_CARD_REMOVED: - break; - default: - break; - } - - return 0; -} - -static int time_tick(void) -{ - uint32_t status; - - status = sc_get_card_status(); - if (status != g_card_last_status) { - g_card_last_status = status; - - if (!((IccReturn_t)g_card_last_status == ICC_ERR_REMOVED)) { - read_atr(); - } else { - // - MXC_TFT_ClearArea(&sm_area_clean, 0); - MXC_TFT_ClearArea(&sm_area_cleanMSG, 0); - MXC_TFT_PrintFont(105, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &sm_area_clean); //"Insert a card", 13 - } - } - - return 0; -} - -static State g_state = { "smartcard", init, key_process, time_tick, 10 }; - -/********************************* Public Functions **************************/ -State *get_smartcard_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_animation.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_animation.c deleted file mode 100644 index ffcdbde0df8..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_animation.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include - -#include "MAX32xxx.h" -#include "bitmap.h" -#include "utils.h" - -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ -#define NB_SPRITE (32) - -#define ANIMATION_PERIOD 30 //as ms - -/********************************* TYPE DEF ************************/ - -/********************************* VARIABLES *************************/ -static const int logo_maxim_data[] = { - maxim_logo_only_small_000_bmp, maxim_logo_only_small_001_bmp, maxim_logo_only_small_002_bmp, - maxim_logo_only_small_003_bmp, maxim_logo_only_small_004_bmp, maxim_logo_only_small_005_bmp, - maxim_logo_only_small_006_bmp, maxim_logo_only_small_007_bmp, maxim_logo_only_small_008_bmp, - maxim_logo_only_small_009_bmp, maxim_logo_only_small_010_bmp, maxim_logo_only_small_011_bmp, - maxim_logo_only_small_012_bmp, maxim_logo_only_small_013_bmp, maxim_logo_only_small_014_bmp, - maxim_logo_only_small_015_bmp, maxim_logo_only_small_016_bmp, maxim_logo_only_small_017_bmp, - maxim_logo_only_small_018_bmp, maxim_logo_only_small_019_bmp, maxim_logo_only_small_020_bmp, - maxim_logo_only_small_021_bmp, maxim_logo_only_small_022_bmp, maxim_logo_only_small_023_bmp, - maxim_logo_only_small_024_bmp, maxim_logo_only_small_025_bmp, maxim_logo_only_small_026_bmp, - maxim_logo_only_small_027_bmp, maxim_logo_only_small_028_bmp, maxim_logo_only_small_029_bmp, - maxim_logo_only_small_030_bmp, maxim_logo_only_small_031_bmp -}; - -static int g_index = 0; -static volatile int g_animation_status = 0; - -/****************************** STATIC FUNCTIONS **************************/ - -/****************************** PUBLIC FUNCTIONS **************************/ -void logo_animation_start(void) -{ - g_animation_status = 1; -} - -void logo_animation_stop(void) -{ - g_animation_status = 0; -} - -void logo_animation_tick(void) -{ - static unsigned int last_time = 0; - unsigned int crr_time; - - if (g_animation_status) { - crr_time = utils_get_time_ms(); - if (crr_time >= (last_time + ANIMATION_PERIOD)) { - // update display - MXC_TFT_ShowImage(4, 10, logo_maxim_data[g_index]); - g_index = (g_index + 1) % NB_SPRITE; - - // update last time - last_time = (crr_time + ANIMATION_PERIOD); - } - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_msr.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_msr.c deleted file mode 100644 index 054325ee321..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_msr.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include - -#include "MAX32xxx.h" -#include "sdma_regs.h" -#include "task_msr.h" - -/********************************* DEFINES *************************/ -/* Select SDMA instance to run MSR on {0,1} */ -#define MSR_SDMA_INSTANCE (0) - -#if MSR_SDMA_INSTANCE == 0 -#define MSR_SDMA MXC_SDMA0 -#define MSR_SDMA_IRQn HA0_IRQn -#define SDMAx_IRQHandler HA0_IRQHandler -#define CLK_DIS_SDMAxD MXC_SYS_PERIPH_CLOCK_HA0 -#else -#define MSR_SDMA MXC_SDMA1 -#define MSR_SDMA_IRQn HA1_IRQn //SDMA1_IRQn -#define SDMAx_IRQHandler HA1_IRQHandler -#define CLK_DIS_SDMAxD MXC_SYS_PERIPH_CLOCK_HA1 -#endif - -// -#define COPY_MESSAGE(str, dst, len) \ - { \ - *len = strlen(str), memcpy(dst, str, (*len) + 1); \ - } - -/********************************* VARIABLES *************************/ -/* SDMA Code */ -extern unsigned char msr_sdma_code[]; - -/* MSR SDMA ISR */ -static volatile uint32_t sdma_irq_flag; - -/* SHARED section layout */ -//static uint32_t *msr_version = (uint32_t *)0x20000000; -static uint16_t *msr_ctrl_ptr = (uint16_t *)0x20000004; -//static uint16_t *adc9_err_ptr = (uint16_t *)0x20000006; -static uint32_t *swipe_timeout_sec_ptr = (uint32_t *)0x20000008; -static mcr_decoded_track_t *decoded_track = (mcr_decoded_track_t *)0x2000000C; - -#define msr_version (*msr_version) -#define msr_ctrl (*msr_ctrl_ptr) -#define adc9_err (*adc9_err_ptr) -#define swipe_timeout_sec (*swipe_timeout_sec_ptr) - -/********************************* Static Functions **************************/ -void SDMAx_IRQHandler(void) -{ - MSR_SDMA->irq_flag = 1; /* Clear irq_flag */ - sdma_irq_flag = 1; // set int flag -} - -/* This will print decoded swipe data */ -static void process_swipe(int tidx, char *msg, int *msg_len) -{ - if (decoded_track[tidx].error_code != MCR_ERR_OK) { - printf("Error: 0x%02x", decoded_track[tidx].error_code); - if (decoded_track[tidx].error_code & MCR_ERR_BAD_LEN) { - COPY_MESSAGE("Err = BAD LENGHT", msg, msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_START_SEN) { - COPY_MESSAGE("Err = START Sentinel", msg, msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_END_SEN) { - COPY_MESSAGE("Err = END Sentinel", msg, msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_OUTLIER) { - COPY_MESSAGE("Err = OUTLIER", msg, msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_PARITY) { - COPY_MESSAGE("Err = PARITY", msg, msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_LRC) { - COPY_MESSAGE("Err = LRC", msg, msg_len); - return; - } - } - - if (decoded_track[tidx].lrc != 0) { - COPY_MESSAGE("Err = LRC check failed", msg, msg_len); - return; - } - - if (decoded_track[tidx].direction == MCR_FORWARD) { - printf("Forward, "); - memcpy(msg, ">>> ", 4); - } else { - memcpy(msg, "<<< ", 4); - } - memcpy(&msg[4], decoded_track[tidx].data, decoded_track[tidx].len); - *msg_len = decoded_track[tidx].len + 4; - - return; -} - -/********************************* Public Functions **************************/ -int msr_init(void) -{ - /* Set swipe timeout */ - swipe_timeout_sec = 30; /* sec*/ - - return 0; -} - -void msr_start(void) -{ - /* Enable SDMA clock */ - MXC_SYS_ClockEnable(CLK_DIS_SDMAxD); - - /* Disable interrupt from SDMA */ - /* will wait for irq_flag=1 but dont want IRQHandler() to run */ - NVIC_DisableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie = 0; - -#define ADC9_IRQ_VECTOR 22 - - /* Enable interrupt mux */ - MSR_SDMA->int_mux_ctrl0 = (ADC9_IRQ_VECTOR << MXC_F_SDMA_INT_MUX_CTRL0_INTSEL16_POS); - MSR_SDMA->int_mux_ctrl1 = 0; - MSR_SDMA->int_mux_ctrl2 = 0; - MSR_SDMA->int_mux_ctrl3 = 0; - /* Set org address and enable sdma */ - MSR_SDMA->ip_addr = (uint32_t)&msr_sdma_code; - MSR_SDMA->ctrl |= MXC_F_SDMA_CTRL_EN; - /* Wait for the SDMA to finish re-initialization */ - while (!MSR_SDMA->irq_flag) { - { - } - } - /* Clear irq_flag */ - MSR_SDMA->irq_flag = 1; - NVIC_ClearPendingIRQ(MSR_SDMA_IRQn); - /* Re-Enable interrupt from SDMA */ - NVIC_EnableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie |= MXC_F_SDMA_IRQ_IE_IRQ_EN; - MSR_SDMA->int_in_ie = 1; - - // clear flag - sdma_irq_flag = 0; - /* signal to SDMA to get swipe data */ - msr_ctrl = GETSWIPE_BUSY; -} - -void msr_stop(void) -{ - /* Disable interrupt from SDMA */ - NVIC_DisableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie = 0; - - /* stop SDMA */ - MSR_SDMA->ctrl &= ~(MXC_F_SDMA_CTRL_EN); - - /* Disable interrupt mux */ - MSR_SDMA->int_mux_ctrl0 = 0; - MSR_SDMA->int_mux_ctrl1 = 0; - MSR_SDMA->int_mux_ctrl2 = 0; - MSR_SDMA->int_mux_ctrl3 = 0; - - /* Disable SDMA clock */ - MXC_SYS_ClockDisable(CLK_DIS_SDMAxD); -} - -int msr_tick(char *msg, int *msg_len) -{ - // no message yet - *msg_len = 0; - - if (sdma_irq_flag) { - sdma_irq_flag = 0; - - /* check exit code */ - switch (msr_ctrl) { - case GETSWIPE_OK: - process_swipe(1, msg, msg_len); /* Print Swipe results */ - break; - case GETSWIPE_ADCERR: -/* ADC errors */ -#if 0 - if (adc9_err & ADCERR_OVERRUN) { - COPY_MESSAGE("Err = ADC9 overrun", msg, msg_len); - } else if (adc9_err & ADCERR_SHIFT) { - COPY_MESSAGE("Err = ADC9 channels shifted", msg, msg_len); - } else if (adc9_err & ADCERR_INCOMPLETE) { - COPY_MESSAGE("Err = ADC9 conversion incomplete", msg, msg_len); - } -#endif - break; - case GETSWIPE_TIMO: - /* Timeout: no swipe */ - break; - } - - /* signal to SDMA to get swipe data */ - msr_ctrl = GETSWIPE_BUSY; - } - - return 0; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_nfc.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_nfc.c deleted file mode 100644 index 1da6d3ab015..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_nfc.c +++ /dev/null @@ -1,721 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -/* Global includes */ -#include -#include - -#include "MAX32xxx.h" -#include "utils.h" - -#include "mml_nfc_pcd_port.h" -#include "mml_nfc_pcd_rf_driver.h" -#include "iso14443_3a_flow.h" -#include "iso14443_3a_cmd.h" -#include "iso14443_3b_flow.h" -#include "iso14443_3b_cmd.h" -#include "iso14443_3_common.h" -#include "iso14443_4_transitive.h" -#include "logging.h" -#include "EMV_polling_and_loopback.h" - -/****************************** DEFINES **************************/ -#define BEEPER_PORT MXC_GPIO3 -#define BEEPER_PIN MXC_GPIO_PIN_3 -#define BEEP_PASS_TIME_MS 150 -#define BEEP_FAIL_TIME_MS 150 - -#define BEEP_PASS_TONE 250 //847 -#define BEEP_PASS_VOL 25 //84 - -/****************************** TYPE DEFINES **************************/ -typedef struct { - uint8_t rapdu[261]; - int32_t rapdu_len; - uint8_t aid_bin[50]; - int32_t aid_bin_len; - char application_label[50]; - int32_t application_label_len; -} ppse_response_t; - -/********************************* VARIABLES *************************/ -extern mml_nfc_pcd_analog_params_t current_analog_parameters; - -/****************************** STATIC FUNCTIONS **************************/ -static void beep_for_success(void) -{ - uint32_t beep_time = 0; - uint32_t beep_loop_cnt = 0; - - uint32_t tone = BEEP_PASS_TONE; - uint32_t vol = BEEP_PASS_VOL; - uint32_t duration_ms = BEEP_PASS_TIME_MS; - - // No timer or pulse train on the buzzer gpio, got to bit bang it - // 4Khz is maximum tone volume, as the buzzer resonates here - // Tone set the period, in us - - // Volumes sets the duty cycle us - beep_time = (duration_ms * 1000) / tone; - - // Correct tone for the requested volume - tone = tone - vol; - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - - while (beep_loop_cnt++ < beep_time) { - MXC_GPIO_OutSet(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(vol); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(tone); - } - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); -} - -static void setup_beeper(void) -{ - mxc_gpio_cfg_t buzzer_out; - - buzzer_out.port = BEEPER_PORT; - buzzer_out.mask = BEEPER_PIN; - buzzer_out.pad = MXC_GPIO_PAD_NONE; - buzzer_out.func = MXC_GPIO_FUNC_OUT; - // Use 3.3V for louder Buzz - buzzer_out.vssel = MXC_GPIO_VSSEL_VDDIOH; - - MXC_GPIO_Config(&buzzer_out); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); -} - -static int32_t do_ppse(ppse_response_t *resp) -{ - int32_t ret; - uint8_t capdu[261] = { 0x00, 0xA4, 0x04, 0x00, 0x0E, '2', 'P', 'A', 'Y', '.', - 'S', 'Y', 'S', '.', 'D', 'D', 'F', '0', '1', 0x00 }; - int32_t capdulen = 20; - - logging("CAPDU "); - hexdump(DBG_LVL_LOG, capdu, capdulen, 1); - - ret = SendAPDU(capdu, capdulen, resp->rapdu, &resp->rapdu_len); - - if (ret) { - switch (ret) { - case ISO14443_3_ERR_PROTOCOL: - case ISO14443_3_ERR_TIMEOUT: - case ISO14443_3_ERR_TRANSMISSION: - return RESETPROCEDURE; - } - } - - if (resp->rapdu_len <= 2) { - // 2 bytes should be wrong case. - warning("Short APDU: %d\n", resp->rapdu_len); - return RESETPROCEDURE; - } - - logging("RAPDU "); - hexdump(DBG_LVL_LOG, resp->rapdu, resp->rapdu_len, 0); - - return ret; -} - -// Decode AIDs and figure out card vendor -static int32_t aid_lookup(ppse_response_t *resp) -{ - // VISA - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x03 }, 5) == 0) { - strncpy(resp->application_label, "VISA", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x03, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "VISA", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x98, 0x08, 0x48 }, 7) == 0) { - strncpy(resp->application_label, "VISA", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - - // Master card - if (memcmp(resp->aid_bin, (uint8_t[]){ 0xA0, 0x00, 0x00, 0x00, 0x04 }, 5) == 0) { - strncpy(resp->application_label, "Master Card", 50); - resp->application_label_len = 11; - return ISO14443_3_ERR_SUCCESS; - } - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x05 }, 5) == 0) { - strncpy(resp->application_label, "Master Card", 50); - resp->application_label_len = 11; - return ISO14443_3_ERR_SUCCESS; - } - - // American express - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x25 }, 5) == 0) { - strncpy(resp->application_label, "American Express", 50); - resp->application_label_len = 16; - return ISO14443_3_ERR_SUCCESS; - } - - // CB - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x42 }, 5) == 0) { - strncpy(resp->application_label, "CB", 50); - resp->application_label_len = 3; - return ISO14443_3_ERR_SUCCESS; - } - - // LINK - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x29 }, 5) == 0) { - strncpy(resp->application_label, "LINK", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - - // JCB - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x65 }, 5) == 0) { - strncpy(resp->application_label, "JCB", 50); - resp->application_label_len = 4; - return ISO14443_3_ERR_SUCCESS; - } - - // Dankort - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x21, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Dankort", 50); - resp->application_label_len = 8; - return ISO14443_3_ERR_SUCCESS; - } - - // CoGeBan - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x41, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "Banrisul", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Discover - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x52, 0x30, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Discover", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Banrisul - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x54 }, 5) == 0) { - strncpy(resp->application_label, "Banrisul", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Saudi Payments Network - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x02, 0x28 }, 5) == 0) { - strncpy(resp->application_label, "Saudi Payments Network", 50); - resp->application_label_len = 22; - return ISO14443_3_ERR_SUCCESS; - } - - // Interac - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x02, 0x77 }, 5) == 0) { - strncpy(resp->application_label, "Interac", 50); - resp->application_label_len = 8; - return ISO14443_3_ERR_SUCCESS; - } - - // Discover Card - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x24 }, 5) == 0) { - strncpy(resp->application_label, "Discover Card", 50); - resp->application_label_len = 14; - return ISO14443_3_ERR_SUCCESS; - } - - // UnionPay - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x33 }, 5) == 0) { - strncpy(resp->application_label, "UnionPay", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Euro Alliance of Payment Schemes - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x59 }, 5) == 0) { - strncpy(resp->application_label, "Euro Alliance", 50); - resp->application_label_len = 13; - return ISO14443_3_ERR_SUCCESS; - } - - // Verve - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x71 }, 5) == 0) { - strncpy(resp->application_label, "Verve", 50); - resp->application_label_len = 6; - return ISO14443_3_ERR_SUCCESS; - } - - // The Exchange Network ATM Network - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x39 }, 5) == 0) { - strncpy(resp->application_label, "Exchange Network ATM", 50); - resp->application_label_len = 20; - return ISO14443_3_ERR_SUCCESS; - } - - // Rupay - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x05, 0x24, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Rupay", 50); - resp->application_label_len = 6; - return ISO14443_3_ERR_SUCCESS; - } - - // ???100 - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x32, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "???100", 50); - resp->application_label_len = 7; - return ISO14443_3_ERR_SUCCESS; - } - - // ZKA - if (memcmp(resp->aid_bin, (char[]){ 0xD2, 0x76, 0x00, 0x00, 0x25, 0x45, 0x50, 0x01, 0x00 }, - 9) == 0) { - strncpy(resp->application_label, "ZKA", 50); - resp->application_label_len = 4; - return ISO14443_3_ERR_SUCCESS; - } - - // Bankaxept - if (memcmp(resp->aid_bin, (char[]){ 0xD5, 0x78, 0x00, 0x00, 0x02, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Bankaxept", 50); - resp->application_label_len = 10; - return ISO14443_3_ERR_SUCCESS; - } - - // BRADESCO - if (memcmp(resp->aid_bin, (char[]){ 0xF0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "BRADESCO", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Midland - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x24, 0x01 }, 6) == 0) { - strncpy(resp->application_label, "Midland", 50); - resp->application_label_len = 8; - return ISO14443_3_ERR_SUCCESS; - } - - // PBS - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x21, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "PBS", 50); - resp->application_label_len = 4; - return ISO14443_3_ERR_SUCCESS; - } - - // eTranzact - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x54 }, 5) == 0) { - strncpy(resp->application_label, "eTranzact", 50); - resp->application_label_len = 10; - return ISO14443_3_ERR_SUCCESS; - } - - // Google - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x76, 0x6C }, 6) == 0) { - strncpy(resp->application_label, "Google", 50); - resp->application_label_len = 7; - return ISO14443_3_ERR_SUCCESS; - } - - // InterSwitch - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x71, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "InterSwitch", 50); - resp->application_label_len = 12; - return ISO14443_3_ERR_SUCCESS; - } - - return -1; -} - -#define FCI_TEMPLATE 0x6F -#define DEDICATED_FILE_TEMPLATE 0x84 -#define FCI_PROPRIETARY_TEMPLATE 0xA5 -#define FCI_ISSUER_DISCRETIONARY_B0 0xBF -#define FCI_ISSUER_DISCRETIONARY_B1 0x0C -#define APPLICATION_TEMPLATE 0x61 -#define APPLICATION_IDENTIFIER 0x4F -#define APPLICATION_LABEL 0x50 - -// Inspect ppse response, if valid, lookup Application ID -static int32_t parse_ppse_response(ppse_response_t *resp) -{ - int32_t index = 0; - int32_t i = 0; - int32_t fci_prop_len = 0; - - if (resp->rapdu_len < 2) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Check for SW success 0x9000 - if ((resp->rapdu[resp->rapdu_len - 1] != 0x00) || (resp->rapdu[resp->rapdu_len - 2] != 0x90)) { - return ISO14443_3_ERR_PROTOCOL; - } - - // First comes File Control Information (FCI) Template - if (resp->rapdu[index++] != FCI_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - // This is followed by the length of the FCI - // Verify we have good length - if (resp->rapdu[index++] >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next is Dedicated File Name (DF) - if (resp->rapdu[index++] != DEDICATED_FILE_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - // This is followed by the length of the Dedicated File (DF) Name - // Skip the DF for now - index += resp->rapdu[index]; - index++; - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next comes File Control Information (FCI) Proprietary Template - if (resp->rapdu[index++] != FCI_PROPRIETARY_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - fci_prop_len = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // If we have enough data for this we are good to go to get our data - if (((index - 1) + fci_prop_len) >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (resp->rapdu[index++] != FCI_ISSUER_DISCRETIONARY_B0) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (resp->rapdu[index++] != FCI_ISSUER_DISCRETIONARY_B1) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Skip FCI_ISSUER_DISCRETIONARY length - index++; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next is APPLICATION_TEMPLATE - if (resp->rapdu[index++] != APPLICATION_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Skip APPLICATION_TEMPLATE len - index++; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next is Application Identifier (AID) - card - if (resp->rapdu[index++] != APPLICATION_IDENTIFIER) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Get Application Identifier (AID) len - resp->aid_bin_len = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Also need binary version to match to card AID - for (i = 0; i < resp->aid_bin_len; i++) { - resp->aid_bin[i] = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - } - - // Finally we get to Application Label - if (resp->rapdu[index++] != APPLICATION_LABEL) { - // Some cards don't have this - // In this case we have to do a AID lookup - - info("No App Label, using lookup of AID\n"); - return aid_lookup(resp); - } - - info("Got a valid App Label!\n"); - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Get Application Label len - resp->application_label_len = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // OK. Copy the Label into the buffer - for (i = 0; i < resp->application_label_len; i++) { - resp->application_label[i] = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - } - - return ISO14443_3_ERR_SUCCESS; -} - -static void decode_MIFARE_type(char *response) -{ - // ************************************************** - // If SAK bit 6 is cleared, this is a non ISO14443-4 Type A - // card such as MIFARE Classic 1K. - // Used http://www.nxp.com/documents/application_note/130830.pdf - // for this decoding - // ************************************************** - - uint8_t sak = get_last_sak(); - - if (sak & 0x08) { - // Bit 4 == 1 - if (sak & 0x10) { - // Bit 5 == 1 - strncpy(response, "MIFARE 4K\n", 11); - } else { - // Bit 5 == 0 - if (sak & 0x01) { - // Bit 1 == 1 - strncpy(response, "MIFARE Mini\n", 13); - } else { - // Bit 1 == 0 - strncpy(response, "MIFARE 1K\n", 11); - } - } - } else { - // Bit 4 == 0 - if (sak & 0x10) { - // Bit 5 == 1 - if (sak & 0x01) { - // Bit 1 == 1 - strncpy(response, "MIFARE Plus 4K SL2\n", 20); - } else { - // Bit 1 == 0 - strncpy(response, "MIFARE Plus 2K SL2\n", 20); - } - } else { - // Bit 5 == 0 - if (sak & 0x20) { - // Bit 6 == 1 - // This version requires RATS etc - // Is must therfore be compliant, so we should not be here - // Do nothing - strncpy(response, "MIFARE ?\n", 10); - } else { - // Bit 6 == 0 - strncpy(response, "MIFARE UL\n", 11); - } - } - } -} - -/****************************** PUBLIC FUNCTIONS **************************/ -int nfc_init(void) -{ - mml_nfc_pcd_init(); - setup_beeper(); - - // ******************************************************************** - // Set the desired default antenna analog configuration - // ******************************************************************** - if (mml_nfc_pcd_set_analog_config(current_analog_parameters) != MML_NFC_PCD_E_SUCCESS) { - debug("Failed to get current analog config, possible RF driver version problem\n"); - } - - poweron_operatingfield(); - poweroff_operatingfield(); - - return 0; -} - -int nfc_tick(char *msg, int *msg_len) -{ - int status = 0; - int i = 0; - int k = 0; - char mifare_strn[50] = { 0x00 }; - ppse_response_t card_response; - - // no message yet. - *msg_len = 0; - - poweron_operatingfield(); - - status = emvl1_poll_for_card(1); - - if ((status == TYPE_A_READY) || (status == TYPE_B_READY)) { - if (do_ppse(&card_response) == ISO14443_3_ERR_SUCCESS) { - debug("Got a valid ppse response\n"); - - beep_for_success(); - - status = parse_ppse_response(&card_response); - - if (status == ISO14443_3_ERR_SUCCESS) { - debug("parse ppse success\n"); - - // pcMessage buffer is only 50 bytes. - i = 0; - msg[i++] = 'A'; - msg[i++] = 'I'; - msg[i++] = 'D'; - msg[i++] = ':'; - msg[i++] = ' '; - - // print in the AID (convert from HEX to ASCII) - for (k = 0; ((k < card_response.aid_bin_len) && (i < 50)); k++, i += 2) { - // Note, using pointer math for offset here - snprintf(msg + i, 50 - i, "%02X ", card_response.aid_bin[k]); - } - - // Insert Carriage return - if (i < 50) { - msg[i++] = '\n'; - } - - // Now insert Application Label - for (k = 0; ((k < card_response.application_label_len) && (i < 50)); i++, k++) { - msg[i] = card_response.application_label[k]; - } - - *msg_len = i; - - debug("Message cnt: %d\n%s\n\n", i, msg); - } else { - debug("Unknown Card\n"); - - // pcMessage buffer is only 50 bytes. - strncpy(msg, "Unknown Card Type", 50); - - *msg_len = 50; - } - } else { - beep_for_success(); - - debug("Card does not handle PPSE\n"); - - // pcMessage buffer is only 50 bytes. - strncpy(msg, "Card doesn't handle PPSE", 50); - - *msg_len = 50; - - // Forge success for this card to display message. - // It's a success but just doesn't support PPSE - status = ISO14443_3_ERR_SUCCESS; - } - } else if (status == TYPE_A_NON_ISO14443_4_READY) { - beep_for_success(); - decode_MIFARE_type(mifare_strn); - - debug("Possible MIFARE Card %s\n", mifare_strn); - strncpy(msg, mifare_strn, 50); - - // Set len to null termination of string - for (i = 0; i < 50; i++) { - if (msg[i] == 0) { - break; - } - } - - *msg_len = i; - } else if (status == TYPE_B_NON_ISO14443_4_READY) { - beep_for_success(); - - debug("Type B Non ISO14443 Card found.\n"); - memcpy(msg, "Non ISO14443 Type B card found", 31); - - // Set len to null termination of string - for (i = 0; i < 50; i++) { - if (msg[i] == 0) { - break; - } - } - - *msg_len = i; - } else if ((status != ISO14443_3_ERR_SUCCESS) || (status == NO_CARD_FOUND)) { - // No supported card detected - // or card does not support ppse - // or application id is not recognizable - // or NO CARD in the field - - // Keep Trying - } - - return 0; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_smartcard.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_smartcard.c deleted file mode 100644 index c91c6c1fe22..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/task_smartcard.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "MAX32xxx.h" -#include "keypad.h" -#include "utils.h" -#include "task_smartcard.h" - -#include "MAX325xx_afe.h" -#include "OSWrapper.h" -#include "sc_errors.h" -#include "sc_types.h" -#include "smartcard_api.h" - -#include "demo_config.h" - -/********************************* DEFINES *************************/ - -/********************************* TYPE DEF *************************/ - -/********************************* VARIABLES *************************/ -mxc_sc_context_t sc_context = { 0 }; - -static UartId_t g_uartId = SCI_1; -static MAX325xxSlots_t g_card_slot = SCI_1_BYPASS_SLOT; - -ActivationParams_t ActivationParams = { -#if SMARTCARD_EXT_AFE_Voltage == SMARTCARD_EXT_AFE_5V - .IccVCC = VCC_5V, -#else - .IccVCC = VCC_3V, -#endif - .IccResetDuration = 108, /* 108*372 clock cycles*/ - .IccATR_Timeout = 20160, /* 20160 etus*/ - .IccTS_Timeout = 114, /* 114*372 clock cycles*/ - .IccWarmReset = 0, -}; - -/********************************* Static Functions **************************/ -int mxc_sc_init(mxc_sc_id_t id) -{ - /* For the first time initialization */ - if (!sc_context.first_init) { - /* Initialize the smart card context information to zero's */ - sc_context.sc[MXC_SC_DEV0].reg_sc = MXC_SC0; - sc_context.sc[MXC_SC_DEV1].reg_sc = MXC_SC1; - sc_context.first_init = 1; - } - - /* Check input parameter */ - if (id > MXC_SC_DEV_MAX) { - return E_INVALID; - } - - /* Enable the timer clock */ - /* Clear the bit position to enable clock to timer device */ - switch (id) { - case MXC_SC_DEV0: - MXC_SYS_Reset_Periph(MXC_SYS_PERIPH_CLOCK_SC0); - while (MXC_GCR->rst1 & MXC_F_GCR_RST1_SC0) {} - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SC0); - break; - case MXC_SC_DEV1: - MXC_SYS_Reset_Periph(MXC_SYS_PERIPH_CLOCK_SC1); - while (MXC_GCR->rst1 & MXC_F_GCR_RST1_SC1) {} - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SC1); - break; - default: - return E_INVALID; - } - - return E_NO_ERROR; -} - -static void smart_card_inserted_interrupt(CardState_t cardstate) -{ - if (cardstate == ICC_INSERTION) { - //... - } - if (cardstate == ICC_REMOVAL) { - //... - } - NVIC_ClearPendingIRQ(SC1_IRQn); -} - -void sc_set_afe_intterrupt(unsigned int status) -{ - if (status == 1) { - status = bTRUE; - } else { - status = bFALSE; - } - SCAPI_ioctl(g_card_slot, IOCTL_ENABLE_AFE_INTERRUPT, &status); -} - -int sc_read_atr(char *msg, int *msg_len) -{ - unsigned char atr[256]; - unsigned int i; - IccReturn_t retval; - uint32_t status = 0; - - // no messages yet - *msg_len = 0; - - retval = SCAPI_ioctl(g_card_slot, IOCTL_GET_CARD_STATE, &status); - - if (!((IccReturn_t)status == ICC_ERR_REMOVED)) { - /*power up the card */ - status = POWER_UP; - ActivationParams.IccWarmReset = bFALSE; - retval = SCAPI_ioctl(g_card_slot, IOCTL_POWER_CARD, &status); - if (ICC_OK != retval) { - goto read_atr_out; - } - - /* - * Read the ATR and save into the atr buffer - * as output, status will contains the exact ATR length - */ - status = sizeof(atr); - retval = SCAPI_read(g_card_slot, atr, &status); - if (retval) { - memcpy(msg, "Smartcard Error", 15); - *msg_len = 15; - } else { - memset(msg, ' ', 24); - switch (status) { - case 1: - *msg_len = 2; - utils_hex2char(atr[0], &msg[0]); - break; - case 2: - *msg_len = 5; - utils_hex2char(atr[0], &msg[0]); - utils_hex2char(atr[1], &msg[3]); - break; - default: - utils_hex2char(atr[0], &msg[0]); - utils_hex2char(atr[1], &msg[3]); - if (status < 6) { - for (i = 2; i < status; i++) { - utils_hex2char(atr[i], &msg[3 * i]); - } - *msg_len = 3 * status - 1; - } else { - utils_hex2char(atr[2], &msg[6]); - msg[9] = '.'; - msg[10] = '.'; - msg[11] = '.'; - utils_hex2char(atr[status - 2], &msg[13]); - utils_hex2char(atr[status - 1], &msg[16]); - *msg_len = 18; - } - break; - } - } - } - -read_atr_out: - /*power off the card */ - status = POWER_DOWN; - SCAPI_ioctl(g_card_slot, IOCTL_POWER_CARD, &status); - - return retval; -} - -int sc_init(void) -{ - uint32_t status = 0; - IccReturn_t retval = ICC_OK; - - /* enable interrupts*/ - OSWrapper_Interrupt_enable(); - - /* open slot INTERNAL_AFE for SC0 interfaces */ - SCAPI_open(g_uartId, g_card_slot); - - /* Set the card frequency */ - status = 3200000; //3.2MHz - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_CLOCK_FREQ, &status); - if (ICC_OK != retval) { - return retval; - } - - /* as the card has been powered off, we must reset - * the initparams, emv mode and working buffer - */ - - /* Set the ATR timings + card voltage */ - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_INITPARAMS, (void *)&ActivationParams); - if (ICC_OK != retval && retval != ICC_ERR_REMOVED) { - return retval; - } - - /* Attach AFE user interrupt */ - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_PRESENCE_IRQ, smart_card_inserted_interrupt); - if (retval) { - return retval; - } - - /* Switch the stack to EMV mode*/ - status = 1; - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_EMVMODE, &status); - if (ICC_OK != retval) { - return retval; - } - - return 0; // ICC_OK -} - -IccReturn_t sc_get_card_status(void) -{ - uint32_t status = ICC_ERR_REMOVED; - - SCAPI_ioctl(g_card_slot, IOCTL_GET_CARD_STATE, &status); - - return (IccReturn_t)status; -} diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/utils.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/utils.c deleted file mode 100644 index 14c48cb271e..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/utils.c +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ -#include - -#include "MAX32xxx.h" -#include "utils.h" - -/***************************** VARIABLES *************************************/ - -/************************ STATIC FUNCTIONS *******************************/ - -/************************ PUBLIC FUNCTIONS *******************************/ -unsigned int utils_get_time_ms(void) -{ - uint32_t sec, ssec; - double subsec; - uint32_t ms; - - MXC_RTC_GetSubSeconds(&ssec); - subsec = (double)ssec / (double)(4096.0); - - MXC_RTC_GetSeconds(&sec); - - ms = (sec * 1000) + (int)(subsec * 1000); - - return ms; -} - -void utils_delay_ms(unsigned int ms) -{ - MXC_Delay(ms * 1000UL); -} - -void utils_hex2char(char chr, char *msg) -{ - int i; - char c; - - c = chr >> 4; - for (i = 0; i < 2; i++) { - if (c < 10) { - *msg = '0' + c; - } else { - *msg = 'A' + c - 10; - } - c = chr & 0x0F; - msg++; - } -} - -/************************** Timer Functions *************************/ -#define TICK_TIMER MXC_TMR0 -static TimerCb timer_cb = NULL; - -// Toggles GPIO when continuous timer repeats -static void timer0_irq_handler(void) -{ - TICK_TIMER->intr = MXC_F_TMR_INTR_IRQ; - if (timer_cb) { - timer_cb(); - } -} - -void timer_init(TimerCb cb) -{ - MXC_SYS_Reset_Periph(MXC_SYS_RESET0_TMR0); - while (MXC_GCR->rst0 & MXC_F_GCR_RST0_TMR0) {} - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_TMR0); - - NVIC_SetVector(TMR0_IRQn, timer0_irq_handler); - NVIC_EnableIRQ(TMR0_IRQn); - - timer_cb = cb; -} - -void timer_stop(void) -{ - TICK_TIMER->cn &= ~MXC_F_TMR_CN_TEN; -} - -void timer_start(unsigned int timeout) -{ - timer_stop(); - - TICK_TIMER->intr = MXC_F_TMR_INTR_IRQ; - TICK_TIMER->cn |= (MXC_S_TMR_CN_PRES_DIV4); - - TICK_TIMER->cn |= TMR_MODE_ONESHOT << MXC_F_TMR_CN_TMODE_POS; - TICK_TIMER->cn |= (0) << MXC_F_TMR_CN_TPOL_POS; - //enable timer interrupt if needed - TICK_TIMER->cnt = 0x1; - // set timeout - TICK_TIMER->cmp = (PeripheralClock / 4000) * timeout; - - // start - TICK_TIMER->cn |= MXC_F_TMR_CN_TEN; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.cproject b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.cproject deleted file mode 100644 index e3bd69915df..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.cproject +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.project b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.project deleted file mode 100644 index 9ab3933f8de..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - MAX32572_Demo_FreeRTOS - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/c_cpp_properties.json b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/launch.json b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/settings.json b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/settings.json deleted file mode 100755 index fc62ccfaa22..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/settings.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/include", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM4F", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/RISC-V" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM4F", - "${config:MAXIM_PATH}/Libraries/FreeRTOS/Source/portable/GCC/RISC-V" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/tasks.json b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/FreeRTOSConfig.h deleted file mode 100644 index 61dadc3993b..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/FreeRTOSConfig.h +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_FREERTOSCONFIG_H_ - -#include "max32572.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)150000000) - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -//#define configUSE_TICKLESS_IDLE 1 -#if defined(configUSE_TICKLESS_IDLE) && (configUSE_TICKLESS_IDLE > 0) -#define configSYSTICK_CLK_HZ ((uint32_t)32768) -#define configTICK_RATE_HZ ((portTickType)256) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#define configTICK_RATE_10ms ((portTickType)10) -#endif - -#define configTOTAL_HEAP_SIZE ((size_t)(26 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configMAX_PRIORITIES 5 -#define configUSE_PREEMPTION 0 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 0 - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -/* Priority 7, or 255 as only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY ((unsigned char)7 << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -#define configRTC_TICK_RATE_HZ ((portTickType)4096) -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/MAX32570_Demo_FreeRTOS.launch b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/MAX32570_Demo_FreeRTOS.launch deleted file mode 100644 index c52a9a53998..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/MAX32570_Demo_FreeRTOS.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/Makefile b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/Makefile deleted file mode 100644 index ebadb31fd4a..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/Makefile +++ /dev/null @@ -1,229 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -ifeq ("$(wildcard $(LIBS_DIR)/NFC)","") -$(error This demo example requires NFC package, Please install NFC package.) -endif - -ifeq ("$(wildcard $(LIBS_DIR)/EMV)","") -$(error This demo example requires EMV package, Please install EMV package.) -endif - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += resources/all_imgs.c -SRCS += src/wrapper_tft.c -SRCS += src/utils.c -# states -SRCS += src/state.c -SRCS += src/state_home.c -SRCS += src/state_idle.c -SRCS += src/state_slide.c -SRCS += src/state_keypad.c -SRCS += src/state_info.c -SRCS += src/state_nfc.c -SRCS += src/state_msr.c -SRCS += src/state_smartcard.c -# tasks -SRCS += src/task_touchscreen.c -SRCS += src/task_keypad.c -SRCS += src/task_animation.c -SRCS += src/task_smartcard.c -SRCS += src/task_nfc.c -SRCS += src/task_msr.c -# smartcard -SRCS += src/ST8034.c -# msr -SRCS += src/msr/msr_sdma.c -# nfc -SRCS += src/nfc/mml_nfc_port.c -SRCS += src/nfc/logging.c -SRCS += src/nfc/emv_l1_stack/iso14443_3b_flow.c -SRCS += src/nfc/emv_l1_stack/iso14443_3a_cmd.c -SRCS += src/nfc/emv_l1_stack/iso14443_3a_flow.c -SRCS += src/nfc/emv_l1_stack/iso14443_3_common.c -SRCS += src/nfc/emv_l1_stack/iso14443_4_transitive.c -SRCS += src/nfc/emv_l1_stack/iso14443_3b_cmd.c -SRCS += src/nfc/contactless_l1_app/EMV_polling_and_loopback.c - - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += resources -VPATH += src -VPATH += ./src/msr -VPATH += ./src/nfc -VPATH += ./src/nfc/emv_l1_stack -VPATH += ./src/nfc/contactless_l1_app - -# Where to find header files for this test -IPATH = . -IPATH += include -IPATH += resources -IPATH += include/nfc -IPATH += include/nfc/contactless_l1_app -IPATH += include/nfc/emv_l1_stack -IPATH += $(LIBS_DIR)/NFC/lib_nfc_pcd_rf_driver_MAX32572/include/nfc -IPATH += $(LIBS_DIR)/NFC/lib_nfc_pcd_pbm/include - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -PROJ_AFLAGS+=-D__MSR_SDMA_SIZE=0xA000 - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - -PROJ_LIBS += nfc_pcd_pbm_softfp -PROJ_LIBS += nfc_pcd_rf_driver_MAX32572_softfp - -# Use these variables to add project specific tool options -PROJ_CFLAGS += -D__$(TARGET_UC) -PROJ_CFLAGS += -D$(BOARD) -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs -PROJ_LDFLAGS += -L$(LIBS_DIR)/NFC/lib_nfc_pcd_pbm -PROJ_LDFLAGS += -L$(LIBS_DIR)/NFC/lib_nfc_pcd_rf_driver_MAX32572 - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O0 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -# Convert bitmap and font files to all_imgs.c file -$(shell $(LIBS_DIR)/../Tools/BitmapConverter/maxim_bitmap_converter ./resources) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -RTOS_CONFIG_DIR=. -RTOS_DIR=$(LIBS_DIR)/FreeRTOS -include $(RTOS_DIR)/freertos.mk - -EMV_DIR=$(LIBS_DIR)/EMV -include $(EMV_DIR)/emv.mk - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/README.md b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/demo_config.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/demo_config.h deleted file mode 100644 index ef4ae873d15..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/demo_config.h +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_DEMO_CONFIG_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_DEMO_CONFIG_H_ - -/***************************** DEFINES *********************************/ -#define SMARTCARD_EXT_AFE_3V (0) -#define SMARTCARD_EXT_AFE_5V (1) - -/* - * To select 5V or 3V working mode - * Class A (5V) and Class B (3V) mode selection - */ -#define SMARTCARD_EXT_AFE_Voltage (SMARTCARD_EXT_AFE_5V) - -/***************************** TYPE DEF *********************************/ - -/***************************** FUNCTIONS *********************************/ - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_DEMO_CONFIG_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/keypad.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/keypad.h deleted file mode 100644 index b2d6a3c2c3f..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/keypad.h +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_KEYPAD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_KEYPAD_H_ - -/***************************** DEFINES *********************************/ -#define KEY_0 '0' -#define KEY_1 '1' -#define KEY_2 '2' -#define KEY_3 '3' -#define KEY_4 '4' -#define KEY_5 '5' -#define KEY_6 '6' -#define KEY_7 '7' -#define KEY_8 '8' -#define KEY_9 '9' -#define KEY_A 'A' -#define KEY_B 'B' -#define KEY_C 'C' -#define KEY_D 'D' -#define KEY_E 'E' -#define KEY_F 'F' -// Contact EMV keys -#define KEY_CARD_INSERTED 0xE0 -#define KEY_CARD_REMOVED 0xE1 - -/***************************** FUNCTIONS *********************************/ -int keypad_init(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_KEYPAD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/message.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/message.h deleted file mode 100644 index 4d196d7ced9..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/message.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_MESSAGE_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_MESSAGE_H_ - -/***************************** TYPE DEF *********************************/ -typedef struct _message { - unsigned char pcType; - int len; - unsigned char pcMessage[50]; -} message_t; - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_MESSAGE_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/contactless_l1_app/EMV_polling_and_loopback.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/contactless_l1_app/EMV_polling_and_loopback.h deleted file mode 100644 index 1d6834f7bd3..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/contactless_l1_app/EMV_polling_and_loopback.h +++ /dev/null @@ -1,216 +0,0 @@ -/** - * @file - * @brief Provides reference polling routines for NFC EMV activation - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_CONTACTLESS_L1_APP_EMV_POLLING_AND_LOOPBACK_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_CONTACTLESS_L1_APP_EMV_POLLING_AND_LOOPBACK_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** @defgroup EMV_POLLING_AND_LOOPBACK Polling and Loopback - * - * @ingroup MML - * - * @{ - */ - -/** - * @defgroup POLLING_CONFIG EMV Polling Configuration Switches - * - * Enable different behaviors in the EMV L1 Polling and Loopback routines - * - * @{ - */ - -/** - * Treat a ATTRIB Response with High INF set as not and error - * - * @note This is incompatible with EMV L1 testing, some digital tests - * will fail. - */ -// Use this wrapper to force Doxygen to document this disabled option -#ifdef _DOXYGEN_ -#define IGNORE_HIGH_INF -#endif - -// Use this define to actually enable the feature -#undef IGNORE_HIGH_INF - -/** - * Display all activation responses from cards: - * ATQ, Anticollision, ATTRIB, Selection, ATS etc. - */ -#define LOG_ACTIVATION_RESPONSES -/** @} */ /* @defgroup POLLING_CONFIG */ - -/** - * @defgroup POLLING_DELAYS EMV Polling Timeout Values - * - * Used for various loopback requests and polling procedures - * - * @{ - */ -#define TIMEOUT_POWEROFF_MS 15 /**< Milliseconds to delay for a power off procedure */ -/** @} */ /* @defgroup POLLING_DELAYS */ - -/** - * @defgroup LOOPBACK_RAPDUS EMV Loopback Procedure Requests - * - * Procedure Requests from the L1 Tester - * - * @{ - */ -#define REMOVALPROCEDURE 0x70 /**< RAPDU signaling a request for removal procedure */ -#define POWEROFFPROCEDURE 0x72 /**< RAPDU signaling a request for poweroff procedure */ -#define RESETPROCEDURE 0x80 /**< RAPDU signaling a request for reset procedure */ -/** @} */ /* @defgroup LOOPBACK_RAPDUS */ - -/** - * @defgroup POLLING_RESPONSES EMV Polling Return Values - * - * Results of the requested polling - * - * @{ - */ -#define TYPE_A_READY 0x0A /**< Type A card found and activated */ -#define TYPE_B_READY 0x0B /**< Type B card found and activated */ -#define TYPE_A_NON_ISO14443_4_READY \ - 0x1A /**< Type A card found but not compliant with Half Duplex Block Transport */ -#define TYPE_B_NON_ISO14443_4_READY \ - 0x1B /**< Type B card found but not compliant with Half Duplex Block Transport */ -#define NO_CARD_FOUND 0xFF /**< Polled for all supported technologies, but no support card found */ -#define CARD_FOUND_WITH_ERROR \ - 0xFE /**< Found a card but failed to activate due communications error or unsupported card */ -#define COLLISION_DETECTED 0xFD /**< Card or cards found, but failed to activate due to collision */ -#define POLLING_TERMINATED \ - 0x01 /**< Polling terminated by call back function @ref callback_check_for_loop_termination_t */ -#define EXCHANGE_COMPLETE 0x00 /**< EMV L1 Exchange finished, Card found */ -/** @} */ /* @defgroup POLLING_RESPONSES */ - -/** uid of last card found during polling */ -typedef struct { - uint8_t uid[15]; /**< uid of last card found during polling */ - uint32_t uid_length; /**< Length of last uid found during polling */ -} uid_storage_t; - -/** - * @defgroup GLOBAL_RAPDU_VARS Global RAPDU Variables - * - * Global RAPDU Variables utilized by polling functions - * - * @{ - */ -extern uint8_t rapdu[261]; /**< Shared RAPDU buffer */ -extern int32_t rapdulen; /**< Length of current RAPDU in the shared buffer */ -extern int32_t rapdu_displayed; /**< Display flag, used to satisfy required EMV DTE logging */ -/** @} */ /* @defgroup GLOBAL_RAPDU_VARS */ - -/** - * Polling termination callback function definition - * - * Passed to @ref singleemvl1exchange to determine if it should exit the - * loopback test mode. - */ -typedef int32_t (*callback_check_for_loop_termination_t)(void); - -/** - * @brief Implements EMV card polling for use in application/demo environment - * - * Implements EMV card polling for use in application/demo environment - * - * @param loop_num how many times through the loop before returning - * - * @return @ref POLLING_RESPONSES - */ -int32_t emvl1_poll_for_card(uint32_t loop_num); - -/** - * @brief Implements EMV card polling for use in Level 1 loop-back testing environment - * - * Implements EMV card polling for use in Level 1 loop-back testing environment - * - * @param callback @ref callback_check_for_loop_termination_t - * Callback to check if this polling loop should be terminated. - * For instance the operator desires to switch to a different test mode. - * - * @note If @ref callback_check_for_loop_termination_t is NULL, loop will - * not return until a card is found and one exchange is completed. - * - * @retval #POLLING_TERMINATED - * @retval #EXCHANGE_COMPLETE - */ -int32_t singleemvl1exchange(callback_check_for_loop_termination_t callback); - -/** - * @brief Implements EMV card polling for use in Level 1 interoperability loop-back testing environment - * - * Implements EMV card polling for use in Level 1 interoperability loop-back testing environment. - * Indicates failure with red led, and low pitched buzz, indicates pass with green led, and high - * pitched buzz. - * - * @param callback @ref callback_check_for_loop_termination_t - * Callback to check if this polling loop should be terminated. - * For instance the operator desires to switch to a different test mode. - * - * @note If @ref callback_check_for_loop_termination_t is NULL, loop will - * not return until a card is found and one exchange is completed. - * - * @retval #POLLING_TERMINATED - * @retval #EXCHANGE_COMPLETE - */ -int32_t singleemvl1interopexchange(callback_check_for_loop_termination_t callback); - -/** - * @brief Get last UID found during polling - * - * Get last UID found during polling. Per EMV Book D, UID has a max length of 15 bytes. - * - * @return @ref uid_storage_t Structure containing the UID of the last card found during polling - */ -uid_storage_t get_stored_uid(void); - -/** @} */ /* @defgroup EMV_POLLING_AND_LOOPBACK */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_CONTACTLESS_L1_APP_EMV_POLLING_AND_LOOPBACK_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/contactless_l1_app/emvl1_app.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/contactless_l1_app/emvl1_app.h deleted file mode 100644 index f659dfbff9a..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/contactless_l1_app/emvl1_app.h +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_CONTACTLESS_L1_APP_EMVL1_APP_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_CONTACTLESS_L1_APP_EMVL1_APP_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -void emvl1_main_loop(void); - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_CONTACTLESS_L1_APP_EMVL1_APP_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3_common.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3_common.h deleted file mode 100644 index e3a50a25e40..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3_common.h +++ /dev/null @@ -1,468 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3_COMMON_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3_COMMON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_STACK EMV Contactless PCD L1 Stack - * - * @ingroup MML - * - * This library implements a EMV Contactless PCD L1 Stack - * as detailed by - * [EMV Book D: Contactless Communication Protocol](https://www.emvco.com/specifications.aspx?id=21) - * - * It can also be used to handle applications outside the scope of EMV including - * Proprietary, access control, transport, card applications, etc. - * - * Its primary interfaces functions support: - * - Polling for cards in the field - * - Activating cards, handling collision detection - * - APDU Transport - * - * @{ - * - */ - -#include -#include "mml_nfc_pcd_rf_driver.h" - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_VER_HIST EMV L1 Stack Version History - * - * L1 Stack Version, Release History, and Change Log - * - * @{ - * - * @par 4.0.0 - 05/12/2020 - * - Initial release supporting MAX32572. - * - * Primarily targeted to support EMV Types A and B. - * Also includes basic "as is" support for Type F and V (ISO15693) - * - * @par 3.4.0 - 10/25/2019 - * - Slight modification to SendAPDU to return ISO14443_3_ERR_TIMEOUT in cases - * where three retries fail, and the last error is ISO14443_3_ERR_TIMEOUT - * instead of returning ISO14443_3_ERR_PROTOCOL. Change should only effect - * EMV Level 2 behavior. - * - * @par 3.3.0 - 06/28/2019 - * - EMV L1 Stack now released as source with in the DTE. PBM library - * and RF Driver library are still binary only. - * - Fixed issues with TB311 where invalid retransmission time was used. - * - Updated to support new RF driver features: Configurable Early Limit, - * and new error codes. - * - Added Interoperability Loop-back with Success and Failure indications - * - Added addition margin of 200ppm to long counts in the L1 stack to - * account for crystal and temperature variations of the source clock - * - * @par 3.2.0 - 05/03/2019 - * - Added ability to abort current transactions @ref set_abort_check_callback - * This callback is called after every @ref mml_nfc_pcd_transceive and it - * allows the application to regain control and stop the current transaction. - * - * @par 3.1.1 - 04/05/2019 - * - Version increment to match updated RF driver - * - * @par 3.1.0 - 02/22/2019 - * - Version increment to match updated RF driver - * - Small modifications to use new RF driver functions and parameter structures. - * - * @par 3.0.0 - 01/25/2019 - * - CRC functions moved into RF driver - * - Update to use new structure for transceive parameters - * - * @par 2.1.0 - 08/23/2018 - * - Significant throughput performance enhancements, now utilizes the new `delay_till_send` - * parameter of the @ref mml_nfc_pcd_transceive to time each packet to transmit. This allows upper - * stack PCD processing during the inter-packet delay with minimal increases in inter-packet - * latency. - * - New function @ref nfc_set_delay_till_next_send_fc may be used to set `delay_till_send` for the - * immediately following transceive. After every transceive it is reset to @ref ISO14443_FDT_MIN - * - Renamed `nfc_delay_ms` to `nfc_yield_ms` to better represent its actual behavior. - * - Renamed `nfc_delay_us` to `nfc_block_for_us` to better represent its actual behavior. - * - @ref nfc_pcd_reset_wait added for better precision of reset timing - * - Some unnecessary delays removed from polling routines - * - * @par 2.0.0 - 07/18/2018 - * - Use dedicated NFC timers - * - Modify handling of Early Response Errors from RF Driver - * - Remove double reset delay on card removal EMV test cases TA002, and TB002 - * - * @par 1.4.1 - 01/10/2018 - * - Version increment, refer to @ref MML_NFC_PCD_DRIVER_VER_HIST - * - * @par 1.4.0 - 09/01/2017 - * - L1 stack documentation using Doxygen - * - API function details - * - Porting file details - * - Usage and Interactions guide - * - Addition of dedicated Polling and Loop-Back Routines - * - Added support to retrieve activation responses - * - Dedicated error code for some Type B ATTRIB Responses with High INF set - * - Reworked L1 stack delays to use portable functions in RF Driver Porting File - * - * @par 1.3.1 - 06/23/2017 - * - Updated to latest MML SDK release version 3.0.0 - * - * @par 1.3.0 - 05/05/2017 - * - Support for MAX32560 EVKIT Version 3 - * - Additional changes for improved compatability with CMSIS system backend - * - * @par 1.2.0 - 03/16/2017 - * - Updates to support EMV Contactless version 2.6b - * - Added minimum retransmission time of 3ms to the following commands: - * - WUPA - * - ANTICOLLISION - * - RATS - * - WUPB - * - ATTRIB - * - Updated Copyright headers - * - Ported from Cobra SDK to new MML CMSIS SDK - * - Supporting only A2 silicon - * - * @par 1.1.0 - 10/12/2016 - * - First public release - * - Supporting only A1 silicon - * - Built as binary library for release - * - Added structure and method to get and set current analog configuration - * - Tuned for MAX32560 EVKIT Version 2 - * - * @par 1.0.0 - 09/13/2016 - * - Used in EMV L1 Certification - * - Supporting only A1 silicon - */ -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_VER_HIST */ - -/** - * @defgroup NFC_PCD_EMV_LVL1_COMMON Common Routines - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * @{ - */ - -/** - * @defgroup NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES ERROR_CODES - * - * EMV Level 1 Error Codes from library routines - * - * @{ - */ -#define ISO14443_3_ERR_SUCCESS (0x0000) /**< No Errors, Success */ -//Command error - -#define ISO14443_3_ERR_TIMEOUT (0x0001) /**< Transmit or Receive operation timeout */ -#define ISO14443_3_ERR_TRANSMISSION (0x0005) /**< Error during transmission */ - -//Flow error -#define ISO14443_3_ERR_CMD (0x0020) /**< Cmd execute error */ -#define ISO14443_3_ERR_SEQ (0x0021) /**< Flow sequence error */ - -#define ISO14443_3_ERR_PROTOCOL (0x0022) /**< Protocol error */ -#define ISO14443_3_ERR_COLLISION (0x0023) /**< Data Collision */ -#define ISO14443_3_ERR_EARLY_RESPONSE (0x0024) /**< Response from Card came too soon */ -#define ISO14443_3_ERR_NON_ISO14443_4_CARD (0x0025) /**< Non ISO14443 Card type detected */ -#define ISO14443_3_ERR_CONTAINS_HIGH_INF \ - (0x0026) /**< ATTRIB Response received with HIGH INF set (Not allowed by EMV) */ -#define ISO14443_3_ERR_ABORTED \ - (0x0027) /**< Current transaction has been aborted by application request */ - -#define ISO14443_3_ERR_OTHER (0x00ff) /**< Other, unspecified error */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES */ - -/** - * @defgroup NFC_PCD_EMV_LVL1_DRIVER_STD_VALUES STANDARD CONSTANTS - * - * EMV L1 (ISO14443) Constants - * - * @{ - */ -#define FSDI_DEFAULT_VALUE (8) /**< FSDI nominal value */ - -#define FSCI_DEFAULT_VALUE (2) /**< FSCI nominal value */ -#define FSCI_MAX_VALUE (8) /**< FSCI maximum value */ - -#define FWI_DEFAULT_VALUE (4) /**< FWI nominal value */ -#define FWI_MAX_VALUE (14) /**< FWI maximum value */ - -#define SFGI_DEFAULT_VALUE (0) /**< SFGI nominal value */ -#define SFGI_MAX_VALUE (14) /**< SFGI maximum value */ - -#define WAKEUP_NOTRETRY 0 /**< value for NO retry on Wake */ -#define WAKEUP_DORETRY 1 /**< value for retry on Wake */ - -#define TPDELAY_US 5100 /**< TP (Pause) time in microseconds, 5.1~10ms per spec */ -#define TPDELAY_IN_FC US2FC(TPDELAY_US) /**< TP (Pause) Delay of 5.1ms per spec in fc */ - -#define TRESET_US 5100 /**< Reset time in microseconds, 5.1~10ms per spec */ - -#define TMIN_RETRANSMISSION_US 3000 /**< New for EMV 2.6b Minimum retransmission time FDT in us */ -#define TMIN_RETRANSMISSION_FC \ - US2FC(TMIN_RETRANSMISSION_US) /**< New for EMV 2.6b Minimum retransmission time FDT in fc */ - -#define PROTOCOL_DISREGARD_BITS 0xF1 /**< Mask off bits b4-b2 per 6.3.2.10 */ - -// time unit all fc -#define ISO14443_FWT_MAX 67108864UL /**< maximum FWT = 4096 x 2^14 */ -#define ISO14443_FWT_DEFAULT \ - 114688 /**< nominal FWT in 'fc' units =FWTmax+ AFWT = 4096 * 2^4 + 49152 = 114688 */ -#define ISO14443_FWT_DELTA 49152 /**< delta FWT, use for attrib & apdu */ - -#define ISO14443_FDT_A_EXTRA_MARGIN \ - 16 /**< Provide a bit of allowed margin on reception timing. Relaxes early limit, and timeout. Units are fc */ -#define ISO14443_FDT_A_PICC_MIN \ - (1172) /**< Time when PICC is to respond during activation to PCD command. EMV spec 4.21. @note we don't care about last bit value, timestamp happens the same regardless. */ -#define ISO14443_FDT_A_EARLY_LIMIT \ - (ISO14443_FDT_A_PICC_MIN - \ - 128) /**< Defines the Deaf Time before which any response from PICC is ignored. EMV spec 4.8.1.3 as FDTa,picc,min - 128fc */ -#define ISO14443_FWT_A_ACT \ - (ISO14443_FDT_A_PICC_MIN + 1 + \ - 6) /**< FWT max during activation = FDTa,picc,min + 1fc + .4us (5.424fc, round up to 6) */ - -#define ISO14443_FDT_B_EXTRA_MARGIN \ - 0 /**< Provide a bit of allowed margin on reception timing. Relaxes early limit, and timeout. Units are fc */ -#define ISO14443_FDT_B_PICC_MIN \ - (1008 + \ - 1264) /**< FDTmin Type B, defines the deaf time: TR0min (1008fc) + TR1min (1264fc) => 1008+1264 = 2272 */ -#define ISO14443_FWT_ATQB (7680) /**< typeB FWT */ - -// TODO(ADI): Probably need a new include file for vicinity maybe ISO as well -// TODO(ADI): timing values for vicinity need more work as well -#define ISO15693_FDT_VICC_MIN (3320) /**< FDTmin Type V, */ -#define ISO15693_FWT_ACTIVATION (8800) /**< FWTmax Type V, */ - -#define ISO14443_FWT_ACTIVATION (71680) /**< typeA FWT during activation */ -#define ISO14443_FDT_MIN \ - (6780) /**< minimum FDT in 'fc' units, (frame delay time) between PICC and pcd new command */ - -// This is added to long timings in excess of 100,000 -#define CRYSTAL_PPM_MARGIN_MULTIPLIER 20 -#define CRYSTAL_PPM_MARGIN_DIVISOR 1000000 - -#define ISO14443_FDT_MIN_US \ - FC2US( \ - ISO14443_FDT_MIN) /**< minimum FDT in microseconds, (frame delay time) between PICC and pcd new command */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_DRIVER_STD_VALUES */ - -/* Defines *********************************************************************/ -#define MAX_BUFFER_LEN 511 /**< Max length of @ref gcommonbuffer */ -extern uint8_t gcommonbuffer[]; /**< Buffer used by all internal routines */ -/** - * @brief GetCommonBuffer - * Get a pointer to a shared common buffer of MAX_BUFFER_LEN bytes - */ -/* Macros *********************************************************************/ -#define GetCommonBuffer() gcommonbuffer - -/* Structures *****************************************************************/ -typedef struct { - uint8_t Pro_Type; - uint8_t FSCI; - uint8_t FWI; - uint8_t SFGI; - - uint8_t NAD_support; - uint8_t CID_support; -} ATSConfig_t; - -/** - * Abort transaction callback function definition - * - * @note The abort function should return 1 (TRUE) if abort is desired - */ -typedef int32_t (*abort_check_callback_t)(void); - -/** - * @brief Setup abort callback - * - * Sets the callback function used to determine if the application needs to - * abort the current transaction. This is required for some Level 2 test cases - * to ensure responsiveness for user access. - * - * In the case that the call back returns 1 (TRUE), the current polling will - * stop and return @ref ISO14443_3_ERR_ABORTED. - * - * @param[in] abort_callback Function to call for abort check - * - * @note The abort function should return 1 (TRUE) if abort is desired - */ -void set_abort_check_callback(abort_check_callback_t abort_callback); - -/** - * @brief Gets the current ATS - * - * Gets the current ATS configuration values - * - * @param[in, out] cfg - * @return pointer to ATSConfig_t structure with ATS values - */ -void get_ats(ATSConfig_t *cfg); - -/** - * @brief Set the current ATS - * - * Sets the current ATS configuration values - * - * @param[in] pro_type Protocol to use for ATS - * @param[in] fsci FSC time (integer) - * @param[in] fwi Frame wait time (integer 0-14) FWT is calculated from this value - * @param[in] sfgi SFG (integer) - * @param[in] nad 1 for NAD supported, 0 for not supported - * @param[in] cid 1 for CID supported, 0 for not supported - */ -void set_ats(uint8_t pro_type, uint8_t fsci, uint8_t fwi, uint8_t sfgi, uint8_t nad, uint8_t cid); - -/** - * @brief Yield (Delay) for X milliseconds - * - * Yield (Delay) for a specified number of milliseconds. - * - * @param yield_ms Number of milliseconds to yield before returning - * - * @note This function calls out to mml_nfc_pcd_task_sleep for improved portability - */ -void nfc_yield_ms(uint32_t yield_ms); - -/** - * @brief Set the inter-packet delay (FDTpcd) to use for the next packet - * - * Set the amount of time the RF driver should delay sending the next requested - * packet out. This defaults to @ref ISO14443_FDT_MIN - * - * @param delay Number of fc to delay before sending next packet - * - * @note This function does not actually wait. The RF driver will enforce - * the exact timing based on end of previous TX or RX as required. - */ -void nfc_set_delay_till_next_send_fc(uint32_t delay); - -/** - * @brief Block (Delay) for X microseconds - * - * Block (Delay) for a specified number of microseconds. - * - * @param block_us Number of microseconds to delay before returning - */ -void nfc_block_for_us(uint32_t block_us); - -/** - * @brief Wait for minimum duration required for EMV PCD Reset - * - * Minimum duration as of 2.6b is 5.1ms. We will task yield for 5ms, and block for another - * 100us. - */ -void nfc_pcd_reset_wait(void); - -/** - * @brief Enable EMV field - * - * Turns on the 13.56 MHz field, and performs any calibration needed to be ready to communicate - */ -void poweron_operatingfield(void); - -/** - * @brief Disables EMV field - * - * Turns off the 13.56 MHz field - */ -void poweroff_operatingfield(void); - -/** - * @brief Perform EMV Reset - * - * Perform an NFC reset action to cause PICCs to reset. - * Turns off the 13.56Mhz field, waits 5 mSec, turns the field back on and waits another 5 mSec - * - * @note The field is on and the PICC should be reset and ready to communicate after this routine returns - * @return Always returns 0 - */ -int32_t nfc_reset(void); - -/** - * @brief Dump hex data - * - * prints data in a hex format according to the debug level - * - * @param[in] dbg_level Debug level indicating level of debug output needed for this to be printed out - * @param[in] buf Buffer with data to print out - * @param[in] len Length of data to print out - * @param[in] send Binary value: 1 means data send out, 0 is incoming data - */ -void hexdump(int32_t dbg_level, uint8_t *buf, int32_t len, int32_t send); - -/** - * @brief Send and Receive EMV/NFC Data - * - * PCD will transmit a buffer and then wait for a response from the PICC - * This function handles the low level control of the NFC peripherial. - * Including: - * - Timing error checking for FDT - Frame Delay Time (EMV default values used) - * - Timing error checking for FWT - Frame Wait Time (value supplied by caller) - * - Communications errors - * - Loading and Unloading the FIFO - * - AFE configuration for card type (A or B) - * - Frame setup for NFC uart - * - * @param[in] protocol @ref NFC_PCD_ISO_EMV_PROTOCOL_TYPES - * @param[in] frametype @ref NFC_PCD_ISO_EMV_FRAMETYPES - * @param[in] tx_buf Pointer to buffer with data to transmit (up to 511 bytes) - * @param[in] tx_len Length of data (number of bytes) to transmit - * @param[in, out] rx_buf Pointer to buffer to put receive data in (up to 511 bytes including CRC) - * @param[in, out] rx_len Length of received data - * @param[in] timeout Timeout in 1/Fc clocks before returning timeout error - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Transmit and receive are successful - * @retval #ISO14443_3_ERR_TIMEOUT Timeout occurred while waiting on receive data - * @retval #ISO14443_3_ERR_TRANSMISSION Transmission protocol error - * @retval #ISO14443_3_ERR_COLLISION Data collision error - * @retval #ISO14443_3_ERR_EARLY_RESPONSE PICC responded too early - * @retval #ISO14443_3_ERR_OTHER All other types of error - */ -int32_t nfc_pcd_transceive(uint8_t protocol, uint8_t frametype, uint8_t *tx_buf, uint32_t tx_len, - uint8_t *rx_buf, uint32_t *rx_len, uint32_t timeout); -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_STACK */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_COMMON */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3_COMMON_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3a_cmd.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3a_cmd.h deleted file mode 100644 index ee6b44f3a81..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3a_cmd.h +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_CMD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_CMD_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** @defgroup NFC_PCD_EMV_LVL1_PART3AC ISO14443-3A Low Level Commands - * - * @ingroup NFC_PCD_EMV_LVL1_PART3AF - * - * Implements basic Type A Low Level commands used primarily for Activation. Typically - * the routines detailed in @ref NFC_PCD_EMV_LVL1_PART3AF are used during activate. These - * low level commands can be called directly for Non EMV applications. - * - * @{ - */ - -#include - -/** - * @defgroup NFC_PCD_EMV_LVL1_TYPEA_INIT_DEFINES Type A Initialization Defines - * - * EMV Level 1 Type A defines for initialization and anticollision - * - * @{ - */ -#define ISO_14443_3A_CMD_WUPA 0x52 /**< WUPA - Wake A command */ -#define ISO_14443_3A_CMD_SEQA 0x26 /**< SEQA - SEQ A command */ - -#define ISO_14443_3A_CMD_ANTICOLL_SEL_L1 0x93 /**< ANTI-collision Level 1 */ -#define ISO_14443_3A_CMD_ANTICOLL_SEL_L2 0x95 /**< ANTI-collision Level 2 */ -#define ISO_14443_3A_CMD_ANTICOLL_SEL_L3 0x97 /**< ANTI-collision Level 3 */ - -#define ISO_14443_3A_CMD_SELECT_SEL_L1 0x93 /**< ANTI-collision Select Level 1 */ -#define ISO_14443_3A_CMD_SELECT_SEL_L2 0x95 /**< ANTI-collision Select Level 2 */ -#define ISO_14443_3A_CMD_SELECT_SEL_L3 0x97 /**< ANTI-collision Select Level 3 */ - -#define ATQA_LEN 2 /**< Length of ATQA command */ -#define UID_EACH_LEN 5 /**< UID Length, includes bcc and ct value */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_TYPEA_ENUM_DEFINES */ - -/** - * @brief Send WUPA - * - * Send a WUPA command to the PICC and listen for a REQA from the PICC - * - * @param[in] req The one byte WUPA command to send - * @param[out] atq The response received from the PICC (should be ATQA) if successful - * @param[in] doretry Binary value, 1=do up to 3 tries, 0=no retries - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received ATQA - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_req_wupa(uint8_t req, uint8_t *atq, uint8_t doretry); - -/** - * @brief Send 1 step of the anti-collision - * - * Send one step of the anti-collision protocol, look for response from PICC - * - * Retry a max of 3 times if response timesout - * - * @param[in] sel The first byte of the anti-collision step (typically 0x93 for first step, 0x95 for second, or 0x97 for third) - * @note 0x20 is appended to sel by this routine - * @param[in, out] uid The UID response received from the PICC if successful - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received UID - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_anticoll(uint8_t sel, uint8_t *uid); - -/** - * @brief Attempt to Select the PICC - * - * Send the Select command to the PICC, look for response from PICC - * - * Retry a max of 3 times if response timesout - * - * @param[in] sel The first byte of the anti-collision step (typically 0x93 for first step, 0x95 for second, or 0x97 for third) - * @note 0x70 and the UID received in previous anti-collision steps are appended to sel by this routine - * @param[in] uid This is appended to the select command, use the UID parameter returned by @ref iso_14443_3a_cmd_anticoll - * @param[in, out] sak Response from the PICC if successful (should be a SAK response) - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received SAK - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_select(uint8_t sel, uint8_t *uid, uint8_t *sak); - -/** - * @brief Send Request for ATS - * - * Send a RATS command to the PICC and receive the ATS response - * This routine builds the RATS command using the FSDI and CID supplied by the calling routine - * - * Retry a max of 3 times if response timesout or responds early - * - * @param[in] fsdi fsdi used in the RATS command - * @param[in] cid cid used in the RATS command - * @param[in, out] ats Pointer to the ATS data received from the PICC - * @param[in, out] ats_len Number of bytes in the ATS data received from the PICC - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received ATS - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_EARLY_RESPONSE Response received too soon after tranmission by the PCD - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3a_cmd_rats(uint8_t fsdi, uint8_t cid, uint8_t *ats, uint32_t *ats_len); - -/** - * @brief Halt PICC - * - * Sends the HALT command to the PICC, and looks for a response from the PICC - * The PICC should NOT send a response - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS (No response seen from PICC within timeout) - * @retval #ISO14443_3_ERR_OTHER Failure of any kind - */ -int32_t iso_14443_3a_cmd_halt(void); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3A */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_CMD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3a_flow.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3a_flow.h deleted file mode 100644 index ac8f18bd529..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3a_flow.h +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_FLOW_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_FLOW_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART3AF ISO14443-3A Activation - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * Implements Type A Activation proceedures - * - * @see @ref NFC_PCD_EMV_LVL1_PART3AC - * - * @{ - */ - -/** - * Get the last received SAK - * - Can be used to decipher MIFARE card type - * - * @return Last received SAK value - */ -uint8_t get_last_sak(); - -/** - * @brief Check for presence of Type A PICC (Card) - * - * PCD will execute ISO14443-3A POLLING procedure with PICC. - * - * PCD will send WUPA command and if there is a response, send HALT command - * otherwise return ISO_14443_ERR_TIMEOUT. - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card found and HALT sent - * @retval #ISO14443_3_ERR_TIMEOUT No card found - */ -int32_t iso_14443_3a_polling(); - -/** - * @brief Check for presence of Type A PICC (Card) and capture response - * - * PCD will execute ISO14443-3A polling procedure with PICC. - * - * Copies raw ATQA response into atqa_resp. - * - * @param atqa_resp Buffer to save polling response: ATQA No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQA has a - * length of 2 bytes. - * - * @param atqa_resp_len Number of bytes written to atqa_resp - * - * @note If atqa_resp is NULL, no data will be saved - * - * @return The following or other @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card found and HALT sent - * @retval #ISO14443_3_ERR_TIMEOUT No card found - */ -int32_t iso_14443_3a_polling_response(uint8_t *atqa_resp, int32_t *atqa_resp_len); - -/** - * @brief Perform required anticollision checks - * - * PCD will execute ISO14443-3A COLLISON DETECTION procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.3.2 Type A Collision Detection". - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * - * @note Do not call this function without first calling iso_14443_3a_polling and getting a #ISO14443_3_ERR_SUCCESS indicating at least one Type A card found - */ -int32_t iso_14443_3a_collision_detect(); - -/** - * @brief Perform required anticollision checks and capture response - * - * PCD will execute ISO14443-3A collision detection procedure with PICC. - * - * Implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.3.2 Type A Collision Detection". - * - * - Copy raw ATQA response into atqa_resp - * - Copy raw UID responses into uid_resp - * - * @param atqa_resp Buffer to save polling response: ATQA. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQA has a - * length of 2 bytes. - * - * @param atqa_resp_len Number of bytes written to atqa_resp - * - * @param uid_resp Buffer to save anticollision response: UID. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, UID has a - * max length of 15 bytes. - * - * @param uid_resp_len Number of bytes written to uid_resp - * - * @param sak_resp SAK received from select command Per EMV Book D, SAK is one byte - * - * @note If atqa_resp, uid_resp, or sak_resp is NULL, no data will be saved respectively - * - * @return The following or other @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * - * @note Do not call this function without first calling iso_14443_3a_polling and getting a #ISO14443_3_ERR_SUCCESS indicating at least one Type A card found - */ -int32_t iso_14443_3a_collision_detect_response(uint8_t *atqa_resp, int32_t *atqa_resp_len, - uint8_t *uid_resp, int32_t *uid_resp_len, - uint8_t *sak_resp); - -/** - * @brief Activate a Type A PICC (Card) - * - * PCD will execute ISO14443-3A ACTIVATION procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.4.1 Type A ACTIVATION". - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * - * @note Only use this function after a successful call to iso_14443_3a_collision_detect - */ -int32_t iso_14443_3a_active(); - -/** - * @brief Activate a Type A PICC (Card) and capture response - * - * PCD will execute ISO14443-3A ACTIVATION procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.4.1 Type A ACTIVATION". - * - * - Copy raw ATS response into ats_resp - * - * @param ats_resp Buffer to save Answer To Select response. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, PICC are not - * to reply with an ATS having a length more than 20 bytes. - * - * @param ats_resp_len Number of bytes written to ats_resp - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * @note Only use this function after a successful call to iso_14443_3a_collision_detect - */ -int32_t iso_14443_3a_active_response(uint8_t *ats_resp, int32_t *ats_resp_len); - -/** - * @brief Remove a Type A PICC (Card) - * - * PCD will execute ISO14443-3A REMOVAL procedure with PICC. - * - * Implements "D_EMV_Contactless_Communication_Protocol" chapter "9.5 Removal". - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Successful removal - */ -int32_t iso_14443_3a_remove(); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3AF */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3A_FLOW_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3b_cmd.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3b_cmd.h deleted file mode 100644 index 4495c07e47a..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3b_cmd.h +++ /dev/null @@ -1,150 +0,0 @@ -/** - * @file - * @brief Provides ISO14443 Type B activation commands - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_CMD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_CMD_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART3BC ISO14443-3B Low Level Commands - * - * @ingroup NFC_PCD_EMV_LVL1_PART3BF - * - * Implements basic Type B Low Level commands used primarily for Activation. Typically - * the routines detailed in @ref NFC_PCD_EMV_LVL1_PART3BF are used for activation. These - * low level commands may be called directly for Non EMV applications. - * - * @{ - */ - -#include -#include "iso14443_3_common.h" - -/** - * @defgroup NFC_PCD_EMV_LVL1_TYPEB_INIT_DEFINES Type B Initialization Defines - * - * EMV Level 1 Type B defines for initialization and anticollision - * - * @{ - */ -#define PUPI_SIZE (4) /**< Length of PUPI Pseudo-Unique PICC Identifier */ - -#define ISO3B_ATQB_MINLEN 12 /**< Min allowed number of bytes in ATQB response */ -#define ISO3B_ATQB_MAXLEN 13 /**< Max allowed number of bytes in ATQB response */ - -#define ISO3B_ATQB_BYTE1 0x50 /**< ATQB byte 1 should always be this, used for error checks */ -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_TYPEB_ENUM_DEFINES */ - -/** - * @brief Send WUPB - * - * Creates and sends the WUPB command to the PICC and looks for a correct response - * - * @param[in] atq Pointer to the ATQB data received from the PICC if successful - * @param[in] atq_len Number of bytes in the ATQ data - * @param[in] doretry Binary value, 1=3 tries, 0=single try - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Received ATQA - * @retval #ISO14443_3_ERR_PROTOCOL - * @retval #ISO14443_3_ERR_TIMEOUT No proper response seen within the timeout - */ -int32_t iso_14443_3b_cmd_req_wup(uint8_t *atq, int32_t *atq_len, uint8_t doretry); - -/** - * @brief Sends ATTRIB command, and captures response - * - * Creates and sends the ATTRIB command to the PICC and looks for the correct response - * Creates the ATTRIB command starting with 0x1D, then adds 4 bytes of PUPI, then adds the 4 parameters - * and finally adds the info supplied in *inf - * - * @param[in] pupi Pointer to 4 bytes of PUPI used to create the ATTRIB command - * @param[in] para1 First of 4 parameter bytes used to create the ATTRIB command - * @param[in] para2 Second of 4 parameter bytes used to create the ATTRIB command - * @param[in] para3 Third of 4 parameter bytes used to create the ATTRIB command - * @param[in] para4 Fourth of 4 parameter bytes used to create the ATTRIB command - * @param[in] inf Pointer to INF data used to create the ATTRIB command - * @param[in] inf_len Number of bytes in the INF data to be used - * @param[in] timeout Timeout for receiving the response from the PICC - * @param[in,out] attrib_resp Buffer to save attrib response. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, - * ATTRIB_RESP has a basic length of 1 byte, but may optionally contain - * a higher layer response of indeterminate length. For maximal saftey - * a buffer of 256 bytes is recommended. - * @param[in,out] attrib_resp_len Number of bytes written to attrib_resp - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_PROTOCOL Incorrect response from PICC - * @retval #ISO14443_3_ERR_COLLISION - * @retval #ISO14443_3_ERR_CONTAINS_HIGH_INF ATTRIB response received containing HIGH INF data - * @retval #ISO14443_3_ERR_TIMEOUT No response seen within timeout - * @retval #ISO14443_3_ERR_EARLY_RESPONSE Response from PICC comes too soon after the ATTRIB command is sent - */ -int32_t iso_14443_3b_cmd_attrib(uint8_t *pupi, uint8_t para1, uint8_t para2, uint8_t para3, - uint8_t para4, uint8_t *inf, uint32_t *inf_len, uint32_t timeout, - uint8_t *attrib_resp, int32_t *attrib_resp_len); - -/** - * @brief Halt PICC - * - * Sends the HALT command to the PICC, and looks for a response from the PICC - * The response from the PICC should be 0x00 followed by 2 bytes of CRC_B - * This routine builds the HALT B command using the PUPI supplied by the calling routine, - * it appends the PUPI to 0x50 to create the HALT B command - * - * @param[in] pupi Pointer to 4 bytes of PUPI to append to create the HALT B command - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_PROTOCOL Incorrect response from PICC - */ -int32_t iso_14443_3b_cmd_halt(uint8_t *pupi); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3BC */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_CMD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3b_flow.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3b_flow.h deleted file mode 100644 index 460451ed85f..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_3b_flow.h +++ /dev/null @@ -1,178 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_FLOW_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_FLOW_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART3BF ISO14443-3B Activation - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * Implements Type B Activation procedures - * - * @see @ref NFC_PCD_EMV_LVL1_PART3BC - * - * @{ - */ - -/** - * @brief Check for presence of Type B PICC (Card) - * - * PCD will execute ISO14443-3B polling procedure with PICC - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card is found - * @retval #ISO14443_3_ERR_TIMEOUT No card detected - */ -int32_t iso_14443_3b_polling(void); - -/** - * @brief Check for presence of Type B PICC (Card) and capture response - * - * PCD will execute ISO14443-3B polling procedure with PICC - * - * Copy raw ATQB response into atqb_resp - * - * @param atqb_resp Buffer to save polling response: ATQB No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQB has a - * max length of 13 bytes without CRCB. - * @param atqb_resp_len Number of bytes written to atqb - * - * @note If atqb_resp is NULL, no data will be saved - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Card is found - * @retval #ISO14443_3_ERR_TIMEOUT No card detected - */ -int32_t iso_14443_3b_polling_response(uint8_t *atqb_resp, int32_t *atqb_resp_len); - -/** - * @brief Perform required anticollision checks - * - * PCD will execute ISO14443-3B collision detection procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.3.3 Type B Collision Detection" - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - */ -int32_t iso_14443_3b_collision_detect(void); - -/** - * @brief Perform required anticollision checks and capture response - * - * PCD will execute ISO14443-3B collision detection procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.3.3 Type B Collision Detection" - * - * - Copy raw ATQB response into atqb_resp - * - * @param atqb_resp Buffer to save polling response: ATQB No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, ATQB has a - * max length of 13 bytes without CRCB. - * @param atqb_resp_len Number of bytes written to atqb - * - * @note If atqb_resp is NULL, no data will be saved - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS No collision - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - */ -int32_t iso_14443_3b_collision_detect_response(uint8_t *atqb_resp, int32_t *atqb_resp_len); - -/** - * @brief Activate a Type B PICC (Card) - * - * PCD will execute ISO14443-3B activation procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.4.2 Type B Activation" - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * @note Only use this function after a successful call to iso_14443_3b_collision_detect - */ -int32_t iso_14443_3b_active(void); - -/** - * @brief Activate a Type B PICC (Card) and capture response - * - * - Copy raw ATTRIB response into attrib_resp - * - * @param attrib_resp Buffer to save attrib response. No bounds checking is done on this - * buffer other than verifying it is not NULL. Per EMV Book D, - * ATTRIB_RESP has a basic length of 1 byte, but may optionally contain - * a higher layer response of indeterminate length. For maximal safety - * a buffer of 256 bytes is recommended. - * @param attrib_resp_len Number of bytes written to attrib_resp - * - * PCD will execute ISO14443-3B activation procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.4.2 Type B Activation" - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS - * @retval #ISO14443_3_ERR_CMD - * @retval #ISO14443_3_ERR_CONTAINS_HIGH_INF ATTRIB response received containing HIGH INF data - * @retval #ISO14443_3_ERR_PROTOCOL Format error - * @retval #ISO14443_3_ERR_OTHER - * @note Only use this function after a successful call to iso_14443_3b_collision_detect - */ -int32_t iso_14443_3b_active_response(uint8_t *attrib_resp, int32_t *attrib_resp_len); - -/** - * @brief Remove a Type B PICC (Card) - * - * PCD will execute ISO14443-3B removal procedure with PICC - * implements "D_EMV_Contactless_Communicaton_Protocol" chapter "9.5 Removal" for Type B - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS Successful removal - */ -int32_t iso_14443_3b_remove(void); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART3BF */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_3B_FLOW_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_4_transitive.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_4_transitive.h deleted file mode 100644 index 7630d026b10..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/iso14443_4_transitive.h +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_4_TRANSITIVE_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_4_TRANSITIVE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup NFC_PCD_EMV_LVL1_PART4 ISO14443-4 APDU Transport - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * @ref SendAPDU is the primary interface between EMV Level 2 and Level 1. - * - * @{ - */ - -/** - * @brief Reset block number - * - * Resets the block number for block transmission to 0 - */ -void seqnuminit(void); - -/** - * @brief Sends and Receives an APDU - * - * Primary interface to EMV Level 2 Stack - * - * Transmit and Receive APDU to and from a PICC (Card). - * Implements [EMV Book D: Contactless Communication Protocol](https://www.emvco.com/specifications.aspx?id=21) - * chapter "10 Half-Duplex Block Transmission Protocol" - * - * @param[in] capdu data buffer to send to Card (up to 256 bytes) - * @param[in] capdu_len number of bytes in buffer to send to Card - * @param[in, out] rapdu data buffer received from Card (up to 256 bytes) - * @param[in, out] rapdu_len number of bytes in buffer from Card - * - * @return The following @ref NFC_PCD_EMV_LVL1_DRIVER_ERROR_CODES - * @retval #ISO14443_3_ERR_SUCCESS for a successful transmission or other error code for a failure - * @retval #ISO14443_3_ERR_PROTOCOL for a protocol error. - */ -int32_t SendAPDU(uint8_t *capdu, int32_t capdu_len, uint8_t *rapdu, int32_t *rapdu_len); - -/** @} */ /* End of @defgroup NFC_PCD_EMV_LVL1_PART4 */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_ISO14443_4_TRANSITIVE_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/logging.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/logging.h deleted file mode 100644 index 26de8c30013..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/nfc/emv_l1_stack/logging.h +++ /dev/null @@ -1,134 +0,0 @@ -/** - * @file - * @brief Provides logging facilaties for the NFC Contactless PCD L1 Stack - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_LOGGING_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_LOGGING_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING Logging - * - * @ingroup NFC_PCD_EMV_LVL1_STACK - * - * Provides routines to facilitate required DTE logging, and for Stack/PICC interaction - * debugging. - * - * @{ - */ - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS Logging Levels - * - * Available levels for EMV Contactless L1 Stack logging. - * - * @ref g_logging_level can be changed on the fly to any of these values for debugging - * - * @note Use of @ref DBG_LVL_FDB will delay some operations long enough to fail certain Level 1 Digital test cases - * - * @{ - */ -#define DBG_LVL_NON 0 /**< No Stack logging or debugging, quite mode used for applications */ -#define DBG_LVL_LOG 1 /**< Basic logging, this level is used to comply with DTE requirements */ -#define DBG_LVL_ERR 2 /**< Same as @ref DBG_LVL_LOG plus various errors encountered */ -#define DBG_LVL_WRN 3 /**< Same as @ref DBG_LVL_ERR plus various warning encountered */ -#define DBG_LVL_INF \ - 4 /**< Same as @ref DBG_LVL_WRN plus useful details about the flow in the stack */ -/**< including uid level, uid, sfgi, and other interface details */ -#define DBG_LVL_DBG \ - 5 /**< Same as @ref DBG_LVL_INF plus TX buffer contents, and RF Driver response status */ -#define DBG_LVL_FDB 6 /**< Same as @ref DBG_LVL_DBG plus RX buffer contents */ - -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS */ - -/** @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS Logging Macros - * - * Convenience functions to assist with stack logging, these can be used similar to printf - * - * @note Use of @ref full_debug will delay some operations long enough to fail certain Level 1 Digital test cases - * - * @{ - */ -#define logging(x...) \ - do_log(DBG_LVL_LOG, x) /**< Basic logging, this level is used to comply with DTE requirements */ -#define error(x...) \ - do_log(DBG_LVL_ERR, x) /**< Same as @ref DBG_LVL_LOG plus various errors encountered */ -#define warning(x...) \ - do_log(DBG_LVL_WRN, x) /**< Same as @ref DBG_LVL_ERR plus various warning encountered */ -#define info(x...) \ - do_log(DBG_LVL_INF, \ - x) /**< Same as @ref DBG_LVL_WRN plus useful details about the flow in the */ -/**< stack including uid level, uid, sfgi, and other interface details */ -#define debug(x...) \ - do_log( \ - DBG_LVL_DBG, \ - x) /**< Same as @ref DBG_LVL_INF plus TX buffer contents, and RF Driver response status */ -#define full_debug(x...) \ - do_log(DBG_LVL_FDB, x) /**< Same as @ref DBG_LVL_DBG plus RX buffer contents */ -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS */ - -/** - * @brief Controls the logging level for the L1 Stack - * - * Stack Logging Level - * - * Defaults to output logging level messages only - */ -extern int32_t g_logging_level; - -/** - * @brief Conditionally print some logging information - * - * This function is called by @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS to implement multilevel debugging messages - * - * @param[in] req_level Level for this logging message, use one of @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS - * @param[in] ... printf style formating string and variables to print etc. - */ -void do_log(int32_t req_level, ...); - -/** @} */ /* @defgroup NFC_PCD_EMV_LVL1_STACK_LOGGING */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_NFC_EMV_L1_STACK_LOGGING_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/state.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/state.h deleted file mode 100644 index 7d692387e14..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/state.h +++ /dev/null @@ -1,87 +0,0 @@ -/* -******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_STATE_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_STATE_H_ - -/********************************* INCLUDES *************************/ -#include -#include -#include -#include -#include - -#include "MAX32xxx.h" - -#include "bitmap.h" -#include "keypad.h" -#include "wrapper_tft.h" - -/********************************* DEFINES *************************/ - -/********************************* TYPE DEF ************************/ -typedef int (*Init_func)(void); -typedef int (*Keypad_process)(unsigned int key); -typedef int (*MSR_process)(unsigned char *msg, unsigned int msg_len); -typedef int (*NFC_process)(unsigned char *msg, unsigned int msg_len); -typedef int (*Time_Tick)(void); - -typedef struct _State { - char *name; - Init_func init; - Keypad_process prcss_key; - Time_Tick tick; - unsigned int timeout; - MSR_process prcss_msr; - NFC_process prcss_nfc; -} State; - -/****************************** PUBLIC FUNCTIONS **************************/ -void state_init(void); -State *state_get_current(void); -int state_set_current(State *state); - -// states -State *get_home_state(void); -State *get_smartcard_state(void); -State *get_msr_state(void); -State *get_keypad_state(void); -State *get_nfc_state(void); -State *get_slide_state(void); -State *get_info_state(void); -State *get_idle_state(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_STATE_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_logo_animation.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_logo_animation.h deleted file mode 100644 index f2a88b29d41..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_logo_animation.h +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_LOGO_ANIMATION_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_LOGO_ANIMATION_H_ - -/***************************** DEFINES *********************************/ - -/***************************** FUNCTIONS *********************************/ -void logo_animation_start(void); -void logo_animation_stop(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_LOGO_ANIMATION_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_msr.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_msr.h deleted file mode 100644 index 37d87825c0c..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_msr.h +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_MSR_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_MSR_H_ - -/********************************* DEFINES *************************/ -/* Number of tracks on magstripe */ -#define MCR_NUM_TRACKS 3 - -/* Maximum number of bits on a 3.375 inch, 210 bpi magstripe */ -#define MCR_MAX_RAW_LEN_BITS (3375 * 210 / 1000) -/* Maximum number of characters decoded from any track */ -#define MCR_MAX_DEC_LEN (MCR_MAX_RAW_LEN_BITS / 5) - -/* Swipe direction: Forward */ -#define MCR_FORWARD 0 -/* Swipe direction: Reverse */ -#define MCR_REVERSE 1 - -/* Errors generated by decoding functions */ -#define MCR_ERR_OK 0x00 /// No error -#define MCR_ERR_BAD_LEN 0x01 /// invalid length parameter -#define MCR_ERR_START_SEN 0x02 /// start sentinel was not found -#define MCR_ERR_END_SEN 0x04 /// end sentinel was not found -#define MCR_ERR_OUTLIER 0x08 /// invalid sample value -#define MCR_ERR_PARAM 0x10 /// invalid parameter -#define MCR_ERR_LRC 0x40 /// invalid LRC (LRC != 0) -#define MCR_ERR_PARITY 0x80 /// parity error - -/* ADC errors */ -#define ADCERR_OVERRUN (1 << 0) -#define ADCERR_SHIFT (1 << 1) -#define ADCERR_INCOMPLETE (1 << 2) - -/* swipe termination exit code */ -#define GETSWIPE_BUSY (0x00) -#define GETSWIPE_OK (0x01) -#define GETSWIPE_ADCERR (0x02) -#define GETSWIPE_TIMO (0x03) - -/***************************** TYPE DEF *********************************/ -/* Structure to contain result of a track decode */ -typedef struct { - uint8_t error_code; /**< Error code value */ - uint8_t parity_errs; /**< Number of characters with parity errors */ - uint8_t lrc; /**< LRC check value. A value of '0' indicates a */ - /**< successful LRC check. Any other value should be */ - /**< considered a failure. */ - uint8_t direction; /**< Swipe direction determined from decode */ - uint16_t len; /**< Number or decoded characters. This does not include */ - /**< the sentinels or the LRC. */ - uint16_t speed; /**< Approximate swipe rate, LSB = 0.1 in/sec */ - uint8_t data[MCR_MAX_DEC_LEN]; /**< The decoded data */ -} mcr_decoded_track_t; - -/***************************** FUNCTIONS *********************************/ -void msr_start(void); -void msr_stop(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_MSR_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_nfc.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_nfc.h deleted file mode 100644 index 6de312e5e81..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_nfc.h +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_NFC_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_NFC_H_ - -/***************************** DEFINES *********************************/ - -/***************************** FUNCTIONS *********************************/ -void nfc_enable_polling(void); -void nfc_disable_polling(void); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_NFC_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_smartcard.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_smartcard.h deleted file mode 100644 index d1e6d920a3f..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/task_smartcard.h +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_SMARTCARD_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_SMARTCARD_H_ - -#include "smartcard_api.h" -#include "MAX325xx_afe.h" - -/***************************** DEFINES *********************************/ -#define SC_SLOT_NUMBER SCI_1_BYPASS_SLOT - -/***************************** FUNCTIONS *********************************/ -int sc_init(void); -void sc_set_afe_intterrupt(unsigned int status); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_TASK_SMARTCARD_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/utils.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/utils.h deleted file mode 100644 index 39a5fa68dc1..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/utils.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_UTILS_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_UTILS_H_ - -/***************************** DEFINES *********************************/ -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) - -/***************************** FUNCTIONS *********************************/ -unsigned int utils_get_time_ms(void); -unsigned int utils_get_time_tick(void); -void utils_delay_ms(unsigned int ms); -void utils_hex2char(char chr, char *msg); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_UTILS_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/wrapper_tft.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/wrapper_tft.h deleted file mode 100644 index 265a8c6a11e..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/include/wrapper_tft.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_WRAPPER_TFT_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_WRAPPER_TFT_H_ - -#include "MAX32xxx.h" - -/*************************************** DEFINES *****************************/ - -/************************************** TYPE DEF *****************************/ -void TFT_Init(void); -void TFT_SetBackGroundColor(unsigned char index_color); -void TFT_ShowImage(int x0, int y0, int id); -void TFT_PrintFont(int x0, int y0, int id, text_t *str, area_t *area); -void TFT_ClearArea(area_t *area, int color); -void TFT_SetPalette(int img_id); - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_INCLUDE_WRAPPER_TFT_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/main.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/main.c deleted file mode 100644 index 1f1fa05bf99..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/main.c +++ /dev/null @@ -1,230 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ -/** - * @file main.c - * @brief MAX32572 FreeRTOS Demo Example! - * - * @details - */ - -#include -#include -#include -#include -#include -#include - -#include "MAX32xxx.h" - -#include "state.h" -#include "message.h" - -// -#define mainQUEUE_SIZE (4) - -/********************************* VARIABLES *************************/ -// -extern void vAnimTask(void *pvParameter); -extern void vGetATRTask(void *pvParameter); -extern void vGetMSRTask(void *pvParameter); -extern void vGetTSTask(void *pvParameter); -extern void vGetKEYTask(void *pvParameter); -extern void vGetNFCTask(void *pvParameter); - -/* The queue used to send strings to the print task for display on the LCD. */ -xQueueHandle xQueueMain; - -/****************************** STATIC FUNCTIONS **************************/ -void vApplicationStackOverflowHook(xTaskHandle xTask, signed char *pcTaskName) -{ - (void)xTask; - (void)pcTaskName; - - while (1) {} -} - -static int system_init(void) -{ - int ret = 0; - - TFT_Init(); - - TFT_SetBackGroundColor(0); - TFT_ShowImage(52, 87, maxim_integrated_large_bmp); - - // - MXC_TS_Init(); - MXC_TS_Start(); - - return ret; -} - -static void vMainTask(void *pvParameters) -{ - (void)pvParameters; - - message_t mMessage; - State *state; - int ret; - unsigned int wait_time = 0; - unsigned int total_idle_time = 0; - unsigned int max_idle_time = 15000; - - ret = xTaskCreate(vGetTSTask, "GetTS", 500, NULL, 4, NULL); - if (ret != pdPASS) { - while (1) {} - } - - ret = xTaskCreate(vGetATRTask, "GetATR", 1000, NULL, 4, NULL); - if (ret != pdPASS) { - while (1) {} - } - -#ifndef MN_EvKit_V1 - ret = xTaskCreate(vGetKEYTask, "GetKey", 500, NULL, 4, NULL); - if (ret != pdPASS) { - while (1) {} - } - - ret = xTaskCreate(vGetNFCTask, "GetNFC", 1000, NULL, 4, NULL); - if (ret != pdPASS) { - while (1) {} - } - - ret = xTaskCreate(vGetMSRTask, "GetMSR", 1000, NULL, 4, NULL); - if (ret != pdPASS) { - while (1) {} - } -#endif - - state_init(); - - while (1) { - state = state_get_current(); - - wait_time = state->timeout / 10; - if (wait_time == 0) { - wait_time = 100; //100 * 10ms - } - - if (xQueueReceive(xQueueMain, &mMessage, (wait_time * configTICK_RATE_10ms))) { - switch (mMessage.pcType) { - case 'T': // Touch screen - if (state->prcss_key) - state->prcss_key(mMessage.pcMessage[0]); // process touch screen keys - break; - case 'K': // Keyboard - if (state->prcss_key) - state->prcss_key(mMessage.pcMessage[0]); // process keypad keys - break; - case 'M': // MSR - if (state->prcss_msr) - state->prcss_msr(mMessage.pcMessage, mMessage.len); - break; - case 'N': // NFC - if (state->prcss_nfc) - state->prcss_nfc(mMessage.pcMessage, mMessage.len); - break; - default: - break; - } - // reset total idle time - total_idle_time = 0; - } else { - // check tick function - if (state->tick) { - ret = state->tick(); - if (ret == 0) { // means tick function is used, do not switch idle state - total_idle_time = 0; - } - } - - // check total idle time - total_idle_time += (wait_time * 10); - if (total_idle_time >= max_idle_time) { - state_set_current(get_idle_state()); - total_idle_time = 0; - } - } - } -} - -/****************************** PUBLIC FUNCTIONS **************************/ -int main(void) -{ - int32_t ret; - - printf("\n************************** MAX32572 Demo Example **************************\n\n"); - printf("This example interact with user\n"); - printf( - "Depend on the user selection on TFT display, some functionality of EvKit can be tested\n"); - printf("Please follow instruction on TFT Display\n"); - printf("Note:\n" - "\tMSR: VBAT_SEL need to be connected to 3.3V, VDD_MSR need to be connected\n" - "\tSmartCard can be configured to 5V mode (Class A) or 3V mode (Class B),\n" - "\t To configure 5V mode:\n" - "\t 1- On EvKit connect SC_PWR_SEL jumper to 5V\n" - "\t 2- In demo_config_h file update SMARTCARD_EXT_AFE_Voltage to 5V\n" - "\t 3- Rebuild project and load it\n" - "\t To configure 3V mode:\n" - "\t 1- On EvKit connect SC_PWR_SEL jumper to 3V\n" - "\t 2- In demo_config_h file update SMARTCARD_EXT_AFE_Voltage to 3V\n" - "\t 3- Rebuild project and load it\n"); - - /* Configure the clocks, UART and GPIO. */ - ret = system_init(); - if (ret) { - while (1) {} - } - - /* Initialize SKBD port with default configurations */ - xQueueMain = xQueueCreate(mainQUEUE_SIZE, sizeof(message_t)); - - /* Start the tasks defined within the 5000. */ - ret = xTaskCreate(vMainTask, "Main", 1000, NULL, 2, NULL); - if (ret != pdPASS) { - while (1) {} - } - - /* Start the tasks defined within the file. */ - ret = xTaskCreate(vAnimTask, "Logo_Anim", 500, NULL, 1, NULL); - if (ret != pdPASS) { - while (1) {} - } - - /* Start the scheduler. */ - vTaskStartScheduler(); - - /* Will only get here if there was insufficient heap to start the scheduler.*/ - return 0; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/all_imgs.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/all_imgs.c deleted file mode 100644 index 28d114e1fc4..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/all_imgs.c +++ /dev/null @@ -1,370503 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".bin_storage_img"))) __attribute__((__used__)) -const unsigned char imgs_arr[] = { - /* - Header - */ - 0x18, - 0x00, - 0x00, - 0x00, - 0x31, - 0x18, - 0x00, - 0x00, - 0xB2, - 0x1C, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x6B, - 0x00, - 0x00, - 0x00, - - /* - Palette - */ - 0x06, - 0x31, - 0x00, - 0x00, - 0x00, - 0x31, - 0x04, - 0x00, - 0x00, - 0x31, - 0x08, - 0x00, - 0x00, - 0x31, - 0x0C, - 0x00, - 0x00, - 0x31, - 0x10, - 0x00, - 0x00, - 0x31, - 0x14, - 0x00, - 0x00, - 0x34, - 0x35, - 0x3A, - 0x00, - 0x49, - 0x4B, - 0x4A, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x39, - 0x3A, - 0x3E, - 0x00, - 0x35, - 0x36, - 0x3B, - 0x00, - 0x43, - 0x46, - 0x44, - 0x00, - 0x3D, - 0x3E, - 0x43, - 0x00, - 0x46, - 0x47, - 0x4C, - 0x00, - 0x80, - 0x8A, - 0x37, - 0x00, - 0x9C, - 0xAB, - 0x31, - 0x00, - 0x3A, - 0x3C, - 0x40, - 0x00, - 0x86, - 0x92, - 0x32, - 0x00, - 0x90, - 0x9E, - 0x31, - 0x00, - 0x41, - 0x42, - 0x47, - 0x00, - 0x84, - 0x8F, - 0x3C, - 0x00, - 0x9E, - 0xB4, - 0x35, - 0x00, - 0x5D, - 0x5F, - 0x46, - 0x00, - 0x8F, - 0x9C, - 0x2F, - 0x00, - 0xF0, - 0xF3, - 0xF1, - 0x00, - 0x4A, - 0x4B, - 0x50, - 0x00, - 0xA0, - 0xA1, - 0xA7, - 0x00, - 0x64, - 0x65, - 0x6A, - 0x00, - 0x36, - 0x37, - 0x3B, - 0x00, - 0x44, - 0x45, - 0x4A, - 0x00, - 0x52, - 0x53, - 0x58, - 0x00, - 0x72, - 0x73, - 0x78, - 0x00, - 0x39, - 0x3C, - 0x3A, - 0x00, - 0x4A, - 0x4D, - 0x4B, - 0x00, - 0xB2, - 0xB3, - 0xB9, - 0x00, - 0xF6, - 0xFA, - 0xF8, - 0x00, - 0xFA, - 0xFD, - 0xFB, - 0x00, - 0x38, - 0x3A, - 0x39, - 0x00, - 0x4D, - 0x4E, - 0x53, - 0x00, - 0xAF, - 0xB0, - 0xB6, - 0x00, - 0x94, - 0x96, - 0x9B, - 0x00, - 0xD7, - 0xDB, - 0xD9, - 0x00, - 0xB8, - 0xB9, - 0xBF, - 0x00, - 0x7F, - 0x81, - 0x86, - 0x00, - 0x60, - 0x61, - 0x66, - 0x00, - 0xCA, - 0xCE, - 0xCB, - 0x00, - 0x9F, - 0xB0, - 0x22, - 0x00, - 0x55, - 0x54, - 0x49, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0x59, - 0x5A, - 0x5F, - 0x00, - 0x56, - 0x57, - 0x5C, - 0x00, - 0x50, - 0x51, - 0x56, - 0x00, - 0x3F, - 0x40, - 0x45, - 0x00, - 0x99, - 0xA8, - 0x2D, - 0x00, - 0x43, - 0x44, - 0x49, - 0x00, - 0xB8, - 0xC7, - 0x60, - 0x00, - 0xEA, - 0xED, - 0xEB, - 0x00, - 0xDF, - 0xE1, - 0xE6, - 0x00, - 0xD1, - 0xD2, - 0xD8, - 0x00, - 0x5D, - 0x5E, - 0x63, - 0x00, - 0x45, - 0x46, - 0x4B, - 0x00, - 0xE4, - 0xE5, - 0xEB, - 0x00, - 0x76, - 0x78, - 0x7D, - 0x00, - 0xF3, - 0xF4, - 0xFA, - 0x00, - 0x4C, - 0x54, - 0x37, - 0x00, - 0x68, - 0x76, - 0x34, - 0x00, - 0xC4, - 0xD0, - 0x7F, - 0x00, - 0xB2, - 0xC1, - 0x4D, - 0x00, - 0x6D, - 0x74, - 0x40, - 0x00, - 0x58, - 0x59, - 0x5E, - 0x00, - 0xC5, - 0xC8, - 0xC6, - 0x00, - 0x6B, - 0x71, - 0x3E, - 0x00, - 0x63, - 0x70, - 0x38, - 0x00, - 0x97, - 0xA6, - 0x2A, - 0x00, - 0x99, - 0x9A, - 0x9F, - 0x00, - 0xD3, - 0xD7, - 0xD4, - 0x00, - 0xD1, - 0xDA, - 0x9B, - 0x00, - 0x5B, - 0x5C, - 0x61, - 0x00, - 0x8B, - 0x97, - 0x39, - 0x00, - 0x88, - 0x89, - 0x8E, - 0x00, - 0x8D, - 0x8F, - 0x94, - 0x00, - 0x84, - 0x97, - 0x32, - 0x00, - 0xAD, - 0xBC, - 0x47, - 0x00, - 0x7C, - 0x85, - 0x3D, - 0x00, - 0x5A, - 0x65, - 0x37, - 0x00, - 0x47, - 0x4E, - 0x39, - 0x00, - 0x7B, - 0x7C, - 0x81, - 0x00, - 0xAC, - 0xAD, - 0xB2, - 0x00, - 0xBC, - 0xBF, - 0xBD, - 0x00, - 0xA7, - 0xA8, - 0xAE, - 0x00, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x81, - 0x92, - 0x3A, - 0x00, - 0x8F, - 0x91, - 0x96, - 0x00, - 0x85, - 0x86, - 0x8B, - 0x00, - 0x3C, - 0x40, - 0x38, - 0x00, - 0x77, - 0x81, - 0x2D, - 0x00, - 0x72, - 0x7A, - 0x3D, - 0x00, - 0xC1, - 0xC4, - 0xC2, - 0x00, - 0xC7, - 0xCA, - 0xC8, - 0x00, - 0xF8, - 0xFC, - 0xF9, - 0x00, - 0x57, - 0x58, - 0x46, - 0x00, - 0x50, - 0x58, - 0x3B, - 0x00, - 0x88, - 0x9B, - 0x37, - 0x00, - 0x69, - 0x6A, - 0x6F, - 0x00, - 0x4E, - 0x4F, - 0x54, - 0x00, - 0x95, - 0xA4, - 0x27, - 0x00, - 0xBE, - 0xBF, - 0xC4, - 0x00, - 0xED, - 0xF0, - 0xEE, - 0x00, - 0xD9, - 0xDA, - 0xE0, - 0x00, - 0xA5, - 0xA6, - 0xAC, - 0x00, - 0xF4, - 0xF8, - 0xF6, - 0x00, - 0x3F, - 0x45, - 0x36, - 0x00, - 0x7C, - 0x8D, - 0x35, - 0x00, - 0x41, - 0x47, - 0x38, - 0x00, - 0x68, - 0x6D, - 0x43, - 0x00, - 0x6C, - 0x6E, - 0x72, - 0x00, - 0x52, - 0x5C, - 0x37, - 0x00, - 0x49, - 0x50, - 0x3A, - 0x00, - 0x89, - 0x96, - 0x27, - 0x00, - 0xA3, - 0xA4, - 0xAA, - 0x00, - 0x37, - 0x39, - 0x37, - 0x00, - 0x71, - 0x7A, - 0x32, - 0x00, - 0xAA, - 0xBB, - 0x34, - 0x00, - 0x66, - 0x6B, - 0x41, - 0x00, - 0xEC, - 0xEE, - 0xF3, - 0x00, - 0x59, - 0x5A, - 0x48, - 0x00, - 0x6E, - 0x70, - 0x74, - 0x00, - 0xE5, - 0xE8, - 0xE6, - 0x00, - 0x66, - 0x68, - 0x6C, - 0x00, - 0x97, - 0xAC, - 0x3C, - 0x00, - 0x6C, - 0x73, - 0x3F, - 0x00, - 0x94, - 0xA9, - 0x38, - 0x00, - 0x9E, - 0xAD, - 0x34, - 0x00, - 0xF2, - 0xF5, - 0xF3, - 0x00, - 0xC0, - 0xC1, - 0xC6, - 0x00, - 0xE8, - 0xEA, - 0xEF, - 0x00, - 0x45, - 0x4C, - 0x36, - 0x00, - 0x75, - 0x7D, - 0x40, - 0x00, - 0x8A, - 0x96, - 0x37, - 0x00, - 0x4C, - 0x4F, - 0x4D, - 0x00, - 0x6A, - 0x6C, - 0x70, - 0x00, - 0xCB, - 0xCD, - 0xD2, - 0x00, - 0xCB, - 0xCF, - 0xCD, - 0x00, - 0x9C, - 0xB2, - 0x33, - 0x00, - 0x6F, - 0x7D, - 0x3C, - 0x00, - 0x6A, - 0x78, - 0x36, - 0x00, - 0x43, - 0x49, - 0x3A, - 0x00, - 0x61, - 0x65, - 0x43, - 0x00, - 0xDC, - 0xDF, - 0xDD, - 0x00, - 0x72, - 0x82, - 0x35, - 0x00, - 0x5A, - 0x5B, - 0x60, - 0x00, - 0xED, - 0xF0, - 0xD3, - 0x00, - 0x63, - 0x67, - 0x45, - 0x00, - 0x84, - 0x90, - 0x30, - 0x00, - 0x5D, - 0x68, - 0x3A, - 0x00, - 0x6D, - 0x7B, - 0x39, - 0x00, - 0x3A, - 0x3E, - 0x36, - 0x00, - 0x3E, - 0x42, - 0x3A, - 0x00, - 0xD8, - 0xE0, - 0xAA, - 0x00, - 0xFD, - 0xFC, - 0xEF, - 0x00, - 0xD5, - 0xD6, - 0xDC, - 0x00, - 0xDF, - 0xE2, - 0xE0, - 0x00, - 0x91, - 0xA5, - 0x33, - 0x00, - 0x8E, - 0xA2, - 0x2F, - 0x00, - 0x60, - 0x6D, - 0x35, - 0x00, - 0x75, - 0x85, - 0x38, - 0x00, - 0xBA, - 0xBC, - 0xC1, - 0x00, - 0xF0, - 0xF1, - 0xF7, - 0x00, - 0xC2, - 0xC4, - 0xC9, - 0x00, - 0xC6, - 0xC7, - 0xCD, - 0x00, - 0x78, - 0x81, - 0x3A, - 0x00, - 0xB4, - 0xB7, - 0xB5, - 0x00, - 0x55, - 0x5F, - 0x3A, - 0x00, - 0xC2, - 0xCF, - 0x74, - 0x00, - 0xC9, - 0xCC, - 0xCA, - 0x00, - 0x74, - 0x72, - 0x6D, - 0x00, - 0x53, - 0x52, - 0x47, - 0x00, - 0x74, - 0x75, - 0x7A, - 0x00, - 0xC4, - 0xC7, - 0xC5, - 0x00, - 0x7D, - 0x7E, - 0x83, - 0x00, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xCC, - 0xD7, - 0x8F, - 0x00, - 0x61, - 0x63, - 0x67, - 0x00, - 0x4F, - 0x53, - 0x4B, - 0x00, - 0xCE, - 0xD1, - 0xCF, - 0x00, - 0x7F, - 0x8A, - 0x29, - 0x00, - 0x6E, - 0x6A, - 0x6C, - 0x00, - 0xE5, - 0xE9, - 0xC4, - 0x00, - 0x58, - 0x61, - 0x3C, - 0x00, - 0x5B, - 0x5E, - 0x44, - 0x00, - 0xD0, - 0xD3, - 0xD1, - 0x00, - 0xE3, - 0xE6, - 0xE4, - 0x00, - 0x9C, - 0x9D, - 0xA2, - 0x00, - 0x73, - 0x6F, - 0x71, - 0x00, - 0x6A, - 0x72, - 0x34, - 0x00, - 0x4F, - 0x4D, - 0x49, - 0x00, - 0x97, - 0x98, - 0x9D, - 0x00, - 0x82, - 0x83, - 0x88, - 0x00, - 0x79, - 0x8A, - 0x31, - 0x00, - 0x60, - 0x63, - 0x61, - 0x00, - 0x70, - 0x6D, - 0x69, - 0x00, - 0x6F, - 0x78, - 0x30, - 0x00, - 0xE7, - 0xEA, - 0xE8, - 0x00, - 0x93, - 0xA0, - 0x34, - 0x00, - 0x86, - 0x99, - 0x34, - 0x00, - 0x65, - 0x68, - 0x66, - 0x00, - 0xF0, - 0xF1, - 0xDC, - 0x00, - 0x8C, - 0x9F, - 0x3B, - 0x00, - 0xE1, - 0xE7, - 0xB9, - 0x00, - 0x66, - 0x72, - 0x3B, - 0x00, - 0xCE, - 0xCF, - 0xD5, - 0x00, - 0xF6, - 0xF7, - 0xE1, - 0x00, - 0x95, - 0xA2, - 0x37, - 0x00, - 0x69, - 0x65, - 0x67, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x00, - 0x98, - 0xAE, - 0x2D, - 0x00, - 0x78, - 0x88, - 0x3B, - 0x00, - 0xBD, - 0xCA, - 0x6F, - 0x00, - 0xF8, - 0xF8, - 0xEA, - 0x00, - 0x4B, - 0x52, - 0x3C, - 0x00, - 0xB6, - 0xC5, - 0x5D, - 0x00, - 0xB5, - 0xB6, - 0xBB, - 0x00, - 0x8D, - 0x99, - 0x3B, - 0x00, - 0x60, - 0x66, - 0x33, - 0x00, - 0x69, - 0x6C, - 0x6A, - 0x00, - 0x3B, - 0x3E, - 0x3C, - 0x00, - 0xF6, - 0xF5, - 0xE8, - 0x00, - 0xD5, - 0xDE, - 0x9F, - 0x00, - 0x65, - 0x6B, - 0x38, - 0x00, - 0xDD, - 0xDE, - 0xE4, - 0x00, - 0xA2, - 0xB8, - 0x3B, - 0x00, - 0x50, - 0x4E, - 0x4A, - 0x00, - 0x6F, - 0x75, - 0x42, - 0x00, - 0x7E, - 0x89, - 0x35, - 0x00, - 0x9E, - 0xA0, - 0xA5, - 0x00, - 0x30, - 0x35, - 0x3C, - 0x00, - 0x5A, - 0x5D, - 0x5B, - 0x00, - 0x81, - 0x8D, - 0x2C, - 0x00, - 0xF1, - 0xF6, - 0xEC, - 0x00, - 0xFF, - 0xFE, - 0xF8, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xA5, - 0x18, - 0x00, - 0x70, - 0x73, - 0x71, - 0x00, - 0x33, - 0x35, - 0x3B, - 0x00, - 0x20, - 0xE8, - 0xD9, - 0x00, - 0x03, - 0x02, - 0xD5, - 0x00, - 0x00, - 0xA9, - 0x00, - 0x00, - 0x6F, - 0x6E, - 0x7A, - 0x00, - 0xFF, - 0xFD, - 0xFF, - 0x00, - 0x76, - 0x75, - 0x76, - 0x00, - 0x95, - 0x94, - 0x95, - 0x00, - 0x6A, - 0x66, - 0x69, - 0x00, - 0x7A, - 0x76, - 0x78, - 0x00, - 0x76, - 0x72, - 0x74, - 0x00, - 0x75, - 0x71, - 0x73, - 0x00, - 0x71, - 0x6F, - 0x6F, - 0x00, - 0x76, - 0x75, - 0x75, - 0x00, - 0x75, - 0x74, - 0x74, - 0x00, - 0x74, - 0x73, - 0x73, - 0x00, - 0x73, - 0x72, - 0x72, - 0x00, - 0x72, - 0x71, - 0x71, - 0x00, - 0x91, - 0x90, - 0x90, - 0x00, - 0x86, - 0x85, - 0x85, - 0x00, - 0x67, - 0x65, - 0x64, - 0x00, - 0x63, - 0x61, - 0x60, - 0x00, - 0x70, - 0x6E, - 0x6D, - 0x00, - 0x6A, - 0x68, - 0x66, - 0x00, - 0x77, - 0x76, - 0x75, - 0x00, - 0x71, - 0x70, - 0x6F, - 0x00, - 0x6E, - 0x6D, - 0x6C, - 0x00, - 0x6D, - 0x6C, - 0x6B, - 0x00, - 0x6C, - 0x6B, - 0x6A, - 0x00, - 0x90, - 0x8F, - 0x8E, - 0x00, - 0x88, - 0x87, - 0x86, - 0x00, - 0x77, - 0x74, - 0x70, - 0x00, - 0x76, - 0x73, - 0x6F, - 0x00, - 0x75, - 0x72, - 0x6E, - 0x00, - 0x4F, - 0x4D, - 0x4A, - 0x00, - 0x5A, - 0x58, - 0x55, - 0x00, - 0x58, - 0x56, - 0x53, - 0x00, - 0x56, - 0x54, - 0x51, - 0x00, - 0x3F, - 0x3D, - 0x39, - 0x00, - 0x44, - 0x42, - 0x3E, - 0x00, - 0x47, - 0x45, - 0x41, - 0x00, - 0x4C, - 0x4A, - 0x46, - 0x00, - 0x4B, - 0x49, - 0x45, - 0x00, - 0x4A, - 0x48, - 0x44, - 0x00, - 0x4E, - 0x4C, - 0x48, - 0x00, - 0x4D, - 0x4B, - 0x47, - 0x00, - 0x6B, - 0x6A, - 0x68, - 0x00, - 0x68, - 0x67, - 0x65, - 0x00, - 0x66, - 0x65, - 0x63, - 0x00, - 0x64, - 0x63, - 0x61, - 0x00, - 0x74, - 0x73, - 0x71, - 0x00, - 0x73, - 0x72, - 0x70, - 0x00, - 0x42, - 0x40, - 0x3B, - 0x00, - 0x41, - 0x3F, - 0x3A, - 0x00, - 0x43, - 0x41, - 0x3C, - 0x00, - 0x46, - 0x44, - 0x3F, - 0x00, - 0x5D, - 0x5C, - 0x59, - 0x00, - 0x5B, - 0x5A, - 0x57, - 0x00, - 0x61, - 0x60, - 0x5D, - 0x00, - 0x5F, - 0x5E, - 0x5B, - 0x00, - 0x76, - 0x75, - 0x72, - 0x00, - 0x72, - 0x71, - 0x6E, - 0x00, - 0x53, - 0x52, - 0x4E, - 0x00, - 0x51, - 0x50, - 0x4C, - 0x00, - 0x79, - 0x78, - 0x74, - 0x00, - 0x48, - 0x47, - 0x42, - 0x00, - 0xFD, - 0xFC, - 0xF7, - 0x00, - 0x77, - 0x76, - 0x6B, - 0x00, - 0x80, - 0x7F, - 0x71, - 0x00, - 0x9D, - 0xA0, - 0x19, - 0x00, - 0x93, - 0x95, - 0x1E, - 0x00, - 0xA3, - 0xA6, - 0x25, - 0x00, - 0xF9, - 0xF9, - 0xED, - 0x00, - 0x76, - 0x76, - 0x73, - 0x00, - 0x79, - 0x79, - 0x77, - 0x00, - 0x89, - 0x89, - 0x87, - 0x00, - 0x81, - 0x81, - 0x7F, - 0x00, - 0x4C, - 0x4C, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x49, - 0x00, - 0xFE, - 0xFE, - 0xFC, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0xE2, - 0xE2, - 0xE1, - 0x00, - 0xC2, - 0xC2, - 0xC1, - 0x00, - 0xB7, - 0xB7, - 0xB6, - 0x00, - 0xAE, - 0xAE, - 0xAD, - 0x00, - 0xA7, - 0xA7, - 0xA6, - 0x00, - 0xA1, - 0xA1, - 0xA0, - 0x00, - 0x9C, - 0x9C, - 0x9B, - 0x00, - 0x9A, - 0x9A, - 0x99, - 0x00, - 0x97, - 0x97, - 0x96, - 0x00, - 0x8E, - 0x8E, - 0x8D, - 0x00, - 0x8D, - 0x8D, - 0x8C, - 0x00, - 0x8A, - 0x8A, - 0x89, - 0x00, - 0x83, - 0x83, - 0x82, - 0x00, - 0xA6, - 0xAE, - 0x00, - 0x00, - 0xA5, - 0xAB, - 0x00, - 0x00, - 0xA2, - 0xA6, - 0x00, - 0x00, - 0xA0, - 0xA4, - 0x00, - 0x00, - 0x95, - 0x9C, - 0x01, - 0x00, - 0xA6, - 0xAA, - 0x0A, - 0x00, - 0x9F, - 0xA6, - 0x0B, - 0x00, - 0x89, - 0x8F, - 0x0E, - 0x00, - 0xA9, - 0xAD, - 0x13, - 0x00, - 0xAD, - 0xB1, - 0x1D, - 0x00, - 0x9C, - 0xA2, - 0x1F, - 0x00, - 0xB1, - 0xB5, - 0x25, - 0x00, - 0xBD, - 0xC3, - 0x41, - 0x00, - 0xB5, - 0xB9, - 0x44, - 0x00, - 0xC3, - 0xC8, - 0x59, - 0x00, - 0x83, - 0x85, - 0x4B, - 0x00, - 0xCB, - 0xCF, - 0x79, - 0x00, - 0x8B, - 0x8D, - 0x56, - 0x00, - 0x7D, - 0x7E, - 0x59, - 0x00, - 0xDB, - 0xDE, - 0x9D, - 0x00, - 0xE4, - 0xE6, - 0xB7, - 0x00, - 0xA9, - 0xB2, - 0x00, - 0x00, - 0xAF, - 0xB8, - 0x14, - 0x00, - 0x9D, - 0xA6, - 0x13, - 0x00, - 0x9C, - 0xA5, - 0x15, - 0x00, - 0x9B, - 0xA5, - 0x16, - 0x00, - 0x99, - 0xA2, - 0x17, - 0x00, - 0x9A, - 0xA3, - 0x19, - 0x00, - 0x9E, - 0xA7, - 0x1D, - 0x00, - 0xA0, - 0xA9, - 0x20, - 0x00, - 0x74, - 0x7A, - 0x1A, - 0x00, - 0xB5, - 0xBC, - 0x2B, - 0x00, - 0xAE, - 0xB4, - 0x36, - 0x00, - 0x9A, - 0xA0, - 0x31, - 0x00, - 0x93, - 0x97, - 0x46, - 0x00, - 0x97, - 0x9A, - 0x67, - 0x00, - 0xA8, - 0xAB, - 0x77, - 0x00, - 0x84, - 0x86, - 0x65, - 0x00, - 0xEC, - 0xEE, - 0xCC, - 0x00, - 0xF4, - 0xF5, - 0xE0, - 0x00, - 0x9C, - 0xA6, - 0x18, - 0x00, - 0x91, - 0x99, - 0x2C, - 0x00, - 0x60, - 0x65, - 0x24, - 0x00, - 0x6A, - 0x6C, - 0x56, - 0x00, - 0x77, - 0x79, - 0x62, - 0x00, - 0x9C, - 0xAB, - 0x15, - 0x00, - 0xA5, - 0xB5, - 0x2B, - 0x00, - 0x9E, - 0xAD, - 0x2C, - 0x00, - 0x8A, - 0x93, - 0x37, - 0x00, - 0x7C, - 0x84, - 0x3D, - 0x00, - 0x51, - 0x55, - 0x2F, - 0x00, - 0x4C, - 0x4F, - 0x2F, - 0x00, - 0x9C, - 0x9F, - 0x81, - 0x00, - 0x8F, - 0xA2, - 0x15, - 0x00, - 0xAF, - 0xC1, - 0x29, - 0x00, - 0xAA, - 0xBC, - 0x2A, - 0x00, - 0xA7, - 0xB8, - 0x2B, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xA3, - 0xB3, - 0x2C, - 0x00, - 0x99, - 0xA9, - 0x35, - 0x00, - 0x45, - 0x48, - 0x32, - 0x00, - 0xA6, - 0xBA, - 0x32, - 0x00, - 0xA2, - 0xB5, - 0x33, - 0x00, - 0x9D, - 0xAF, - 0x34, - 0x00, - 0x6A, - 0x72, - 0x40, - 0x00, - 0x65, - 0x6B, - 0x42, - 0x00, - 0x5F, - 0x65, - 0x40, - 0x00, - 0x48, - 0x4C, - 0x31, - 0x00, - 0x58, - 0x5C, - 0x40, - 0x00, - 0x59, - 0x5C, - 0x47, - 0x00, - 0x53, - 0x56, - 0x44, - 0x00, - 0x4F, - 0x51, - 0x45, - 0x00, - 0x53, - 0x55, - 0x49, - 0x00, - 0x41, - 0x44, - 0x34, - 0x00, - 0x76, - 0x7A, - 0x66, - 0x00, - 0x48, - 0x4D, - 0x38, - 0x00, - 0x73, - 0x76, - 0x6B, - 0x00, - 0x4B, - 0x4D, - 0x46, - 0x00, - 0x41, - 0x45, - 0x39, - 0x00, - 0x73, - 0x76, - 0x6D, - 0x00, - 0x7C, - 0x7D, - 0x7B, - 0x00, - 0xFC, - 0xFD, - 0xFB, - 0x00, - 0x3A, - 0x3D, - 0x39, - 0x00, - 0x6D, - 0x71, - 0x6C, - 0x00, - 0x56, - 0x59, - 0x56, - 0x00, - 0x75, - 0x78, - 0x75, - 0x00, - 0xCC, - 0xCD, - 0xCC, - 0x00, - 0x50, - 0xCD, - 0x59, - 0x00, - 0x32, - 0xC6, - 0x3E, - 0x00, - 0x81, - 0xDC, - 0x89, - 0x00, - 0xA8, - 0xE8, - 0xAE, - 0x00, - 0xC3, - 0xEF, - 0xC7, - 0x00, - 0x02, - 0xC0, - 0x19, - 0x00, - 0xE9, - 0xF9, - 0xEB, - 0x00, - 0x02, - 0xD4, - 0x2E, - 0x00, - 0x6A, - 0x6D, - 0x6B, - 0x00, - 0x74, - 0x77, - 0x75, - 0x00, - 0x73, - 0x76, - 0x74, - 0x00, - 0x71, - 0x74, - 0x72, - 0x00, - 0x6C, - 0x6F, - 0x6D, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x26, - 0xE2, - 0xD3, - 0x00, - 0x2E, - 0xD8, - 0xC9, - 0x00, - 0x34, - 0xD0, - 0xC1, - 0x00, - 0x57, - 0xE1, - 0xD5, - 0x00, - 0x88, - 0xE9, - 0xE1, - 0x00, - 0xBC, - 0xF3, - 0xEE, - 0x00, - 0xE0, - 0xF9, - 0xF7, - 0x00, - 0xF1, - 0xFD, - 0xFC, - 0x00, - 0x1F, - 0xE9, - 0xDA, - 0x00, - 0x63, - 0x65, - 0x65, - 0x00, - 0x51, - 0x52, - 0x52, - 0x00, - 0x55, - 0x56, - 0x56, - 0x00, - 0x4B, - 0x4D, - 0x4E, - 0x00, - 0x36, - 0x38, - 0x3A, - 0x00, - 0x42, - 0x44, - 0x47, - 0x00, - 0x6F, - 0x71, - 0x75, - 0x00, - 0x4E, - 0x4F, - 0x51, - 0x00, - 0x37, - 0x39, - 0x3E, - 0x00, - 0x3A, - 0x3C, - 0x41, - 0x00, - 0x34, - 0x36, - 0x3C, - 0x00, - 0x3F, - 0x40, - 0x44, - 0x00, - 0x46, - 0x47, - 0x4B, - 0x00, - 0x44, - 0x45, - 0x49, - 0x00, - 0x5A, - 0x5B, - 0x5F, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0xF9, - 0xFA, - 0xFF, - 0x00, - 0x69, - 0x6A, - 0x70, - 0x00, - 0x12, - 0x25, - 0xF6, - 0x00, - 0x0D, - 0x1A, - 0xEB, - 0x00, - 0xEE, - 0xEF, - 0xFD, - 0x00, - 0x09, - 0x0F, - 0xE1, - 0x00, - 0x27, - 0x2A, - 0xE1, - 0x00, - 0x38, - 0x3A, - 0xE3, - 0x00, - 0x48, - 0x4A, - 0xE4, - 0x00, - 0x72, - 0x73, - 0xEA, - 0x00, - 0x7F, - 0x80, - 0xEC, - 0x00, - 0xA6, - 0xA6, - 0xF1, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - 0x34, - 0x35, - 0x3A, - 0x00, - 0x49, - 0x4B, - 0x4A, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x39, - 0x3A, - 0x3E, - 0x00, - 0x35, - 0x36, - 0x3B, - 0x00, - 0x43, - 0x46, - 0x44, - 0x00, - 0x3D, - 0x3E, - 0x43, - 0x00, - 0x46, - 0x47, - 0x4C, - 0x00, - 0x80, - 0x8A, - 0x37, - 0x00, - 0x9C, - 0xAB, - 0x31, - 0x00, - 0x3A, - 0x3C, - 0x40, - 0x00, - 0x86, - 0x92, - 0x32, - 0x00, - 0x90, - 0x9E, - 0x31, - 0x00, - 0x41, - 0x42, - 0x47, - 0x00, - 0x84, - 0x8F, - 0x3C, - 0x00, - 0x9E, - 0xB4, - 0x35, - 0x00, - 0x5D, - 0x5F, - 0x46, - 0x00, - 0x8F, - 0x9C, - 0x2F, - 0x00, - 0xF0, - 0xF3, - 0xF1, - 0x00, - 0x4A, - 0x4B, - 0x50, - 0x00, - 0xA0, - 0xA1, - 0xA7, - 0x00, - 0x64, - 0x65, - 0x6A, - 0x00, - 0x36, - 0x37, - 0x3B, - 0x00, - 0x44, - 0x45, - 0x4A, - 0x00, - 0x52, - 0x53, - 0x58, - 0x00, - 0x72, - 0x73, - 0x78, - 0x00, - 0x39, - 0x3C, - 0x3A, - 0x00, - 0x4A, - 0x4D, - 0x4B, - 0x00, - 0xB2, - 0xB3, - 0xB9, - 0x00, - 0xF6, - 0xFA, - 0xF8, - 0x00, - 0xFA, - 0xFD, - 0xFB, - 0x00, - 0x38, - 0x3A, - 0x39, - 0x00, - 0x4D, - 0x4E, - 0x53, - 0x00, - 0xAF, - 0xB0, - 0xB6, - 0x00, - 0x94, - 0x96, - 0x9B, - 0x00, - 0xD7, - 0xDB, - 0xD9, - 0x00, - 0xB8, - 0xB9, - 0xBF, - 0x00, - 0x7F, - 0x81, - 0x86, - 0x00, - 0x60, - 0x61, - 0x66, - 0x00, - 0xCA, - 0xCE, - 0xCB, - 0x00, - 0x9F, - 0xB0, - 0x22, - 0x00, - 0x55, - 0x54, - 0x49, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0x59, - 0x5A, - 0x5F, - 0x00, - 0x56, - 0x57, - 0x5C, - 0x00, - 0x50, - 0x51, - 0x56, - 0x00, - 0x3F, - 0x40, - 0x45, - 0x00, - 0x99, - 0xA8, - 0x2D, - 0x00, - 0x43, - 0x44, - 0x49, - 0x00, - 0xB8, - 0xC7, - 0x60, - 0x00, - 0xEA, - 0xED, - 0xEB, - 0x00, - 0xDF, - 0xE1, - 0xE6, - 0x00, - 0xD1, - 0xD2, - 0xD8, - 0x00, - 0x5D, - 0x5E, - 0x63, - 0x00, - 0x45, - 0x46, - 0x4B, - 0x00, - 0xE4, - 0xE5, - 0xEB, - 0x00, - 0x76, - 0x78, - 0x7D, - 0x00, - 0xF3, - 0xF4, - 0xFA, - 0x00, - 0x4C, - 0x54, - 0x37, - 0x00, - 0x68, - 0x76, - 0x34, - 0x00, - 0xC4, - 0xD0, - 0x7F, - 0x00, - 0xB2, - 0xC1, - 0x4D, - 0x00, - 0x6D, - 0x74, - 0x40, - 0x00, - 0x58, - 0x59, - 0x5E, - 0x00, - 0xC5, - 0xC8, - 0xC6, - 0x00, - 0x6B, - 0x71, - 0x3E, - 0x00, - 0x63, - 0x70, - 0x38, - 0x00, - 0x97, - 0xA6, - 0x2A, - 0x00, - 0x99, - 0x9A, - 0x9F, - 0x00, - 0xD3, - 0xD7, - 0xD4, - 0x00, - 0xD1, - 0xDA, - 0x9B, - 0x00, - 0x5B, - 0x5C, - 0x61, - 0x00, - 0x8B, - 0x97, - 0x39, - 0x00, - 0x88, - 0x89, - 0x8E, - 0x00, - 0x8D, - 0x8F, - 0x94, - 0x00, - 0x84, - 0x97, - 0x32, - 0x00, - 0xAD, - 0xBC, - 0x47, - 0x00, - 0x7C, - 0x85, - 0x3D, - 0x00, - 0x5A, - 0x65, - 0x37, - 0x00, - 0x47, - 0x4E, - 0x39, - 0x00, - 0x7B, - 0x7C, - 0x81, - 0x00, - 0xAC, - 0xAD, - 0xB2, - 0x00, - 0xBC, - 0xBF, - 0xBD, - 0x00, - 0xA7, - 0xA8, - 0xAE, - 0x00, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x81, - 0x92, - 0x3A, - 0x00, - 0x8F, - 0x91, - 0x96, - 0x00, - 0x85, - 0x86, - 0x8B, - 0x00, - 0x3C, - 0x40, - 0x38, - 0x00, - 0x77, - 0x81, - 0x2D, - 0x00, - 0x72, - 0x7A, - 0x3D, - 0x00, - 0xC1, - 0xC4, - 0xC2, - 0x00, - 0xC7, - 0xCA, - 0xC8, - 0x00, - 0xF8, - 0xFC, - 0xF9, - 0x00, - 0x57, - 0x58, - 0x46, - 0x00, - 0x50, - 0x58, - 0x3B, - 0x00, - 0x88, - 0x9B, - 0x37, - 0x00, - 0x69, - 0x6A, - 0x6F, - 0x00, - 0x4E, - 0x4F, - 0x54, - 0x00, - 0x95, - 0xA4, - 0x27, - 0x00, - 0xBE, - 0xBF, - 0xC4, - 0x00, - 0xED, - 0xF0, - 0xEE, - 0x00, - 0xD9, - 0xDA, - 0xE0, - 0x00, - 0xA5, - 0xA6, - 0xAC, - 0x00, - 0xF4, - 0xF8, - 0xF6, - 0x00, - 0x3F, - 0x45, - 0x36, - 0x00, - 0x7C, - 0x8D, - 0x35, - 0x00, - 0x41, - 0x47, - 0x38, - 0x00, - 0x68, - 0x6D, - 0x43, - 0x00, - 0x6C, - 0x6E, - 0x72, - 0x00, - 0x52, - 0x5C, - 0x37, - 0x00, - 0x49, - 0x50, - 0x3A, - 0x00, - 0x89, - 0x96, - 0x27, - 0x00, - 0xA3, - 0xA4, - 0xAA, - 0x00, - 0x37, - 0x39, - 0x37, - 0x00, - 0x71, - 0x7A, - 0x32, - 0x00, - 0xAA, - 0xBB, - 0x34, - 0x00, - 0x66, - 0x6B, - 0x41, - 0x00, - 0xEC, - 0xEE, - 0xF3, - 0x00, - 0x59, - 0x5A, - 0x48, - 0x00, - 0x6E, - 0x70, - 0x74, - 0x00, - 0xE5, - 0xE8, - 0xE6, - 0x00, - 0x66, - 0x68, - 0x6C, - 0x00, - 0x97, - 0xAC, - 0x3C, - 0x00, - 0x6C, - 0x73, - 0x3F, - 0x00, - 0x94, - 0xA9, - 0x38, - 0x00, - 0x9E, - 0xAD, - 0x34, - 0x00, - 0xF2, - 0xF5, - 0xF3, - 0x00, - 0xC0, - 0xC1, - 0xC6, - 0x00, - 0xE8, - 0xEA, - 0xEF, - 0x00, - 0x45, - 0x4C, - 0x36, - 0x00, - 0x75, - 0x7D, - 0x40, - 0x00, - 0x8A, - 0x96, - 0x37, - 0x00, - 0x4C, - 0x4F, - 0x4D, - 0x00, - 0x6A, - 0x6C, - 0x70, - 0x00, - 0xCB, - 0xCD, - 0xD2, - 0x00, - 0xCB, - 0xCF, - 0xCD, - 0x00, - 0x9C, - 0xB2, - 0x33, - 0x00, - 0x6F, - 0x7D, - 0x3C, - 0x00, - 0x6A, - 0x78, - 0x36, - 0x00, - 0x43, - 0x49, - 0x3A, - 0x00, - 0x61, - 0x65, - 0x43, - 0x00, - 0xDC, - 0xDF, - 0xDD, - 0x00, - 0x72, - 0x82, - 0x35, - 0x00, - 0x5A, - 0x5B, - 0x60, - 0x00, - 0xED, - 0xF0, - 0xD3, - 0x00, - 0x63, - 0x67, - 0x45, - 0x00, - 0x84, - 0x90, - 0x30, - 0x00, - 0x5D, - 0x68, - 0x3A, - 0x00, - 0x6D, - 0x7B, - 0x39, - 0x00, - 0x3A, - 0x3E, - 0x36, - 0x00, - 0x3E, - 0x42, - 0x3A, - 0x00, - 0xD8, - 0xE0, - 0xAA, - 0x00, - 0xFD, - 0xFC, - 0xEF, - 0x00, - 0xD5, - 0xD6, - 0xDC, - 0x00, - 0xDF, - 0xE2, - 0xE0, - 0x00, - 0x91, - 0xA5, - 0x33, - 0x00, - 0x8E, - 0xA2, - 0x2F, - 0x00, - 0x60, - 0x6D, - 0x35, - 0x00, - 0x75, - 0x85, - 0x38, - 0x00, - 0xBA, - 0xBC, - 0xC1, - 0x00, - 0xF0, - 0xF1, - 0xF7, - 0x00, - 0xC2, - 0xC4, - 0xC9, - 0x00, - 0xC6, - 0xC7, - 0xCD, - 0x00, - 0x78, - 0x81, - 0x3A, - 0x00, - 0xB4, - 0xB7, - 0xB5, - 0x00, - 0x55, - 0x5F, - 0x3A, - 0x00, - 0xC2, - 0xCF, - 0x74, - 0x00, - 0xC9, - 0xCC, - 0xCA, - 0x00, - 0x74, - 0x72, - 0x6D, - 0x00, - 0x53, - 0x52, - 0x47, - 0x00, - 0x74, - 0x75, - 0x7A, - 0x00, - 0xC4, - 0xC7, - 0xC5, - 0x00, - 0x7D, - 0x7E, - 0x83, - 0x00, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xCC, - 0xD7, - 0x8F, - 0x00, - 0x61, - 0x63, - 0x67, - 0x00, - 0x4F, - 0x53, - 0x4B, - 0x00, - 0xCE, - 0xD1, - 0xCF, - 0x00, - 0x7F, - 0x8A, - 0x29, - 0x00, - 0x6E, - 0x6A, - 0x6C, - 0x00, - 0xE5, - 0xE9, - 0xC4, - 0x00, - 0x58, - 0x61, - 0x3C, - 0x00, - 0x5B, - 0x5E, - 0x44, - 0x00, - 0xD0, - 0xD3, - 0xD1, - 0x00, - 0xE3, - 0xE6, - 0xE4, - 0x00, - 0x9C, - 0x9D, - 0xA2, - 0x00, - 0x73, - 0x6F, - 0x71, - 0x00, - 0x6A, - 0x72, - 0x34, - 0x00, - 0x4F, - 0x4D, - 0x49, - 0x00, - 0x97, - 0x98, - 0x9D, - 0x00, - 0x82, - 0x83, - 0x88, - 0x00, - 0x79, - 0x8A, - 0x31, - 0x00, - 0x60, - 0x63, - 0x61, - 0x00, - 0x70, - 0x6D, - 0x69, - 0x00, - 0x6F, - 0x78, - 0x30, - 0x00, - 0xE7, - 0xEA, - 0xE8, - 0x00, - 0x93, - 0xA0, - 0x34, - 0x00, - 0x86, - 0x99, - 0x34, - 0x00, - 0x65, - 0x68, - 0x66, - 0x00, - 0xF0, - 0xF1, - 0xDC, - 0x00, - 0x8C, - 0x9F, - 0x3B, - 0x00, - 0xE1, - 0xE7, - 0xB9, - 0x00, - 0x66, - 0x72, - 0x3B, - 0x00, - 0xCE, - 0xCF, - 0xD5, - 0x00, - 0xF6, - 0xF7, - 0xE1, - 0x00, - 0x95, - 0xA2, - 0x37, - 0x00, - 0x69, - 0x65, - 0x67, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x00, - 0x98, - 0xAE, - 0x2D, - 0x00, - 0x78, - 0x88, - 0x3B, - 0x00, - 0xBD, - 0xCA, - 0x6F, - 0x00, - 0xF8, - 0xF8, - 0xEA, - 0x00, - 0x4B, - 0x52, - 0x3C, - 0x00, - 0xB6, - 0xC5, - 0x5D, - 0x00, - 0xB5, - 0xB6, - 0xBB, - 0x00, - 0x8D, - 0x99, - 0x3B, - 0x00, - 0x60, - 0x66, - 0x33, - 0x00, - 0x69, - 0x6C, - 0x6A, - 0x00, - 0x3B, - 0x3E, - 0x3C, - 0x00, - 0xF6, - 0xF5, - 0xE8, - 0x00, - 0xD5, - 0xDE, - 0x9F, - 0x00, - 0x65, - 0x6B, - 0x38, - 0x00, - 0xDD, - 0xDE, - 0xE4, - 0x00, - 0xA2, - 0xB8, - 0x3B, - 0x00, - 0x50, - 0x4E, - 0x4A, - 0x00, - 0x6F, - 0x75, - 0x42, - 0x00, - 0x7E, - 0x89, - 0x35, - 0x00, - 0x9E, - 0xA0, - 0xA5, - 0x00, - 0x30, - 0x35, - 0x3C, - 0x00, - 0x5A, - 0x5D, - 0x5B, - 0x00, - 0x81, - 0x8D, - 0x2C, - 0x00, - 0xF1, - 0xF6, - 0xEC, - 0x00, - 0xFF, - 0xFE, - 0xF8, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - 0x22, - 0x22, - 0x31, - 0x00, - 0x2D, - 0x2D, - 0x45, - 0x00, - 0x36, - 0x36, - 0x4F, - 0x00, - 0x5B, - 0x5B, - 0x77, - 0x00, - 0x72, - 0x72, - 0x9B, - 0x00, - 0x99, - 0x99, - 0xCB, - 0x00, - 0xAA, - 0xAA, - 0xD5, - 0x00, - 0xB5, - 0xB5, - 0xCD, - 0x00, - 0xBE, - 0xBE, - 0xD6, - 0x00, - 0xFE, - 0xFE, - 0xFE, - 0x00, - 0x8C, - 0x8D, - 0xBD, - 0x00, - 0x79, - 0x7A, - 0xA7, - 0x00, - 0x83, - 0x84, - 0xAC, - 0x00, - 0x63, - 0x64, - 0x87, - 0x00, - 0x5F, - 0x60, - 0x7F, - 0x00, - 0xAA, - 0xAB, - 0xC8, - 0x00, - 0x6B, - 0x6D, - 0x91, - 0x00, - 0x50, - 0x52, - 0x73, - 0x00, - 0x3A, - 0x3C, - 0x59, - 0x00, - 0x43, - 0x45, - 0x62, - 0x00, - 0xC1, - 0xC3, - 0xDF, - 0x00, - 0xA0, - 0xA5, - 0x01, - 0x00, - 0x9D, - 0xA1, - 0x01, - 0x00, - 0xA4, - 0xA6, - 0x09, - 0x00, - 0xFE, - 0xFE, - 0xFD, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0x97, - 0x7E, - 0x09, - 0x00, - 0xBB, - 0x99, - 0x33, - 0x00, - 0xE8, - 0xCD, - 0x89, - 0x00, - 0xE8, - 0xBE, - 0x6E, - 0x00, - 0xDB, - 0xA6, - 0x4D, - 0x00, - 0xE6, - 0xAE, - 0x5A, - 0x00, - 0xFB, - 0xF9, - 0xF6, - 0x00, - 0xC7, - 0x90, - 0x40, - 0x00, - 0x65, - 0x45, - 0x17, - 0x00, - 0xD8, - 0xAB, - 0x6E, - 0x00, - 0xB1, - 0x7B, - 0x33, - 0x00, - 0xA0, - 0x67, - 0x2C, - 0x00, - 0xF3, - 0xC8, - 0x9E, - 0x00, - 0x87, - 0x5A, - 0x2F, - 0x00, - 0xD3, - 0x92, - 0x55, - 0x00, - 0x8A, - 0x5E, - 0x35, - 0x00, - 0xED, - 0xBB, - 0x8E, - 0x00, - 0xEB, - 0xB0, - 0x7B, - 0x00, - 0xE3, - 0xB4, - 0x8B, - 0x00, - 0xF2, - 0xD4, - 0xBA, - 0x00, - 0x7A, - 0x55, - 0x35, - 0x00, - 0xDF, - 0xAA, - 0x7D, - 0x00, - 0xE3, - 0x91, - 0x4C, - 0x00, - 0x6A, - 0x4C, - 0x33, - 0x00, - 0xEF, - 0xCB, - 0xAD, - 0x00, - 0x6A, - 0x47, - 0x2A, - 0x00, - 0x60, - 0x43, - 0x2B, - 0x00, - 0x43, - 0x33, - 0x26, - 0x00, - 0xC4, - 0x8F, - 0x64, - 0x00, - 0x91, - 0x52, - 0x1F, - 0x00, - 0x7D, - 0x4E, - 0x28, - 0x00, - 0x87, - 0x54, - 0x2B, - 0x00, - 0x97, - 0x5F, - 0x32, - 0x00, - 0x53, - 0x3F, - 0x2F, - 0x00, - 0x67, - 0x3F, - 0x1F, - 0x00, - 0x8F, - 0x49, - 0x11, - 0x00, - 0xA2, - 0x57, - 0x1B, - 0x00, - 0xB0, - 0x5B, - 0x17, - 0x00, - 0xA5, - 0x53, - 0x12, - 0x00, - 0xEF, - 0xA2, - 0x65, - 0x00, - 0x5E, - 0x46, - 0x33, - 0x00, - 0x75, - 0x45, - 0x1F, - 0x00, - 0xA6, - 0x69, - 0x39, - 0x00, - 0xB0, - 0x82, - 0x5E, - 0x00, - 0x71, - 0x51, - 0x38, - 0x00, - 0x96, - 0x4D, - 0x14, - 0x00, - 0xC8, - 0x69, - 0x1F, - 0x00, - 0x46, - 0x34, - 0x26, - 0x00, - 0x4C, - 0x3A, - 0x2C, - 0x00, - 0x84, - 0x45, - 0x14, - 0x00, - 0xD6, - 0x82, - 0x41, - 0x00, - 0x9F, - 0x6A, - 0x41, - 0x00, - 0x75, - 0x49, - 0x27, - 0x00, - 0xD8, - 0x96, - 0x63, - 0x00, - 0x6F, - 0x40, - 0x1C, - 0x00, - 0xB9, - 0x68, - 0x2A, - 0x00, - 0x41, - 0x30, - 0x23, - 0x00, - 0x54, - 0x32, - 0x18, - 0x00, - 0xCD, - 0x79, - 0x39, - 0x00, - 0xE4, - 0xBA, - 0x9A, - 0x00, - 0x53, - 0x3A, - 0x27, - 0x00, - 0x5A, - 0x39, - 0x20, - 0x00, - 0x9B, - 0x59, - 0x27, - 0x00, - 0x7F, - 0x5E, - 0x45, - 0x00, - 0x8E, - 0x61, - 0x3F, - 0x00, - 0x95, - 0x68, - 0x46, - 0x00, - 0xD3, - 0x72, - 0x29, - 0x00, - 0x49, - 0x35, - 0x26, - 0x00, - 0x78, - 0x58, - 0x40, - 0x00, - 0xCD, - 0x95, - 0x6B, - 0x00, - 0xFD, - 0xE9, - 0xDA, - 0x00, - 0x4E, - 0x3E, - 0x32, - 0x00, - 0x7F, - 0x48, - 0x1F, - 0x00, - 0xAF, - 0x71, - 0x43, - 0x00, - 0xB9, - 0x7B, - 0x4D, - 0x00, - 0x77, - 0x41, - 0x19, - 0x00, - 0x98, - 0x6E, - 0x4F, - 0x00, - 0x86, - 0x4D, - 0x23, - 0x00, - 0x48, - 0x2A, - 0x14, - 0x00, - 0x60, - 0x3B, - 0x20, - 0x00, - 0x6B, - 0x3B, - 0x18, - 0x00, - 0x4D, - 0x37, - 0x27, - 0x00, - 0x51, - 0x3B, - 0x2B, - 0x00, - 0x4F, - 0x3D, - 0x30, - 0x00, - 0x52, - 0x40, - 0x33, - 0x00, - 0x65, - 0x4C, - 0x3A, - 0x00, - 0xF8, - 0xD8, - 0xC1, - 0x00, - 0x25, - 0x17, - 0x0D, - 0x00, - 0x6D, - 0x43, - 0x25, - 0x00, - 0xF1, - 0xEA, - 0xE5, - 0x00, - 0x59, - 0x41, - 0x30, - 0x00, - 0xA2, - 0x72, - 0x50, - 0x00, - 0xCD, - 0x9D, - 0x7B, - 0x00, - 0x5E, - 0x35, - 0x18, - 0x00, - 0x2C, - 0x1B, - 0x0F, - 0x00, - 0x44, - 0x33, - 0x27, - 0x00, - 0xDB, - 0x9E, - 0x73, - 0x00, - 0xF7, - 0xDC, - 0xC9, - 0x00, - 0xC6, - 0x83, - 0x54, - 0x00, - 0x57, - 0x39, - 0x24, - 0x00, - 0x3E, - 0x2A, - 0x1C, - 0x00, - 0xD3, - 0xA8, - 0x8A, - 0x00, - 0x28, - 0x1B, - 0x12, - 0x00, - 0x59, - 0x32, - 0x17, - 0x00, - 0x51, - 0x34, - 0x20, - 0x00, - 0x64, - 0x37, - 0x18, - 0x00, - 0x90, - 0x53, - 0x29, - 0x00, - 0xEC, - 0xCC, - 0xB6, - 0x00, - 0x42, - 0x32, - 0x27, - 0x00, - 0x51, - 0x2E, - 0x16, - 0x00, - 0x65, - 0x3F, - 0x25, - 0x00, - 0xBF, - 0x86, - 0x5F, - 0x00, - 0x4F, - 0x36, - 0x25, - 0x00, - 0x8A, - 0x68, - 0x51, - 0x00, - 0xE1, - 0xBF, - 0xA8, - 0x00, - 0x26, - 0x1A, - 0x12, - 0x00, - 0x30, - 0x24, - 0x1C, - 0x00, - 0x42, - 0x2A, - 0x1A, - 0x00, - 0x83, - 0x62, - 0x4C, - 0x00, - 0xAD, - 0x77, - 0x53, - 0x00, - 0xFD, - 0xE5, - 0xD5, - 0x00, - 0xF9, - 0xF3, - 0xEF, - 0x00, - 0x48, - 0x2E, - 0x1D, - 0x00, - 0xFA, - 0xE0, - 0xCF, - 0x00, - 0x38, - 0x21, - 0x12, - 0x00, - 0x2F, - 0x1E, - 0x13, - 0x00, - 0x4F, - 0x30, - 0x1C, - 0x00, - 0x42, - 0x26, - 0x14, - 0x00, - 0x6D, - 0x52, - 0x41, - 0x00, - 0x35, - 0x25, - 0x1B, - 0x00, - 0x49, - 0x31, - 0x22, - 0x00, - 0x4E, - 0x3E, - 0x34, - 0x00, - 0x4B, - 0x2C, - 0x19, - 0x00, - 0xD9, - 0xB5, - 0x9F, - 0x00, - 0xC5, - 0x9F, - 0x88, - 0x00, - 0x20, - 0x16, - 0x10, - 0x00, - 0x3C, - 0x23, - 0x14, - 0x00, - 0x41, - 0x2D, - 0x21, - 0x00, - 0x3F, - 0x30, - 0x27, - 0x00, - 0xBB, - 0x8F, - 0x75, - 0x00, - 0x4C, - 0x3B, - 0x31, - 0x00, - 0xB1, - 0x88, - 0x70, - 0x00, - 0x9C, - 0x76, - 0x60, - 0x00, - 0x26, - 0x18, - 0x10, - 0x00, - 0x2A, - 0x1C, - 0x14, - 0x00, - 0xD5, - 0xAE, - 0x98, - 0x00, - 0x30, - 0x20, - 0x17, - 0x00, - 0x35, - 0x21, - 0x16, - 0x00, - 0x39, - 0x25, - 0x1A, - 0x00, - 0xBF, - 0x95, - 0x7E, - 0x00, - 0x22, - 0x17, - 0x11, - 0x00, - 0x35, - 0x26, - 0x1E, - 0x00, - 0x3C, - 0x2B, - 0x22, - 0x00, - 0x76, - 0x5B, - 0x4D, - 0x00, - 0xCE, - 0xA7, - 0x93, - 0x00, - 0x1E, - 0x14, - 0x0F, - 0x00, - 0x20, - 0x14, - 0x0E, - 0x00, - 0x2B, - 0x1B, - 0x13, - 0x00, - 0x30, - 0x1E, - 0x15, - 0x00, - 0x47, - 0x35, - 0x2C, - 0x00, - 0x5E, - 0x46, - 0x3A, - 0x00, - 0x82, - 0x66, - 0x58, - 0x00, - 0x91, - 0x6F, - 0x5E, - 0x00, - 0xC2, - 0xA2, - 0x92, - 0x00, - 0xA6, - 0x7D, - 0x69, - 0x00, - 0x3A, - 0x27, - 0x1E, - 0x00, - 0xE4, - 0xC4, - 0xB5, - 0x00, - 0x28, - 0x19, - 0x12, - 0x00, - 0x20, - 0x15, - 0x10, - 0x00, - 0x2C, - 0x1C, - 0x15, - 0x00, - 0x17, - 0x10, - 0x0D, - 0x00, - 0x34, - 0x21, - 0x19, - 0x00, - 0x24, - 0x18, - 0x13, - 0x00, - 0x0E, - 0x09, - 0x07, - 0x00, - 0x18, - 0x0E, - 0x0A, - 0x00, - 0x1C, - 0x12, - 0x0E, - 0x00, - 0x21, - 0x17, - 0x13, - 0x00, - 0x29, - 0x1F, - 0x1B, - 0x00, - 0xE9, - 0xD0, - 0xC6, - 0x00, - 0x1C, - 0x11, - 0x0D, - 0x00, - 0x2D, - 0x22, - 0x1E, - 0x00, - 0x16, - 0x0D, - 0x0A, - 0x00, - 0xB1, - 0x8F, - 0x84, - 0x00, - 0x19, - 0x0F, - 0x0C, - 0x00, - 0x1A, - 0x10, - 0x0D, - 0x00, - 0x23, - 0x1C, - 0x1A, - 0x00, - 0x36, - 0x27, - 0x23, - 0x00, - 0xD9, - 0xB8, - 0xB0, - 0x00, - 0x6A, - 0x51, - 0x4C, - 0x00, - 0x10, - 0x0A, - 0x09, - 0x00, - 0xA1, - 0x7F, - 0x7A, - 0x00, - 0x12, - 0x0B, - 0x0A, - 0x00, - 0x14, - 0x0C, - 0x0B, - 0x00, - 0x80, - 0x6A, - 0x69, - 0x00, - 0x50, - 0x3D, - 0x3E, - 0x00, - 0x5F, - 0x49, - 0x4B, - 0x00, - 0xCB, - 0xAF, - 0xB3, - 0x00, - 0xDD, - 0xCD, - 0xD0, - 0x00, - 0x18, - 0x13, - 0x14, - 0x00, - 0x71, - 0x5D, - 0x61, - 0x00, - 0xA1, - 0x8A, - 0x90, - 0x00, - 0x3E, - 0x2E, - 0x33, - 0x00, - 0x55, - 0x4D, - 0x50, - 0x00, - 0xB9, - 0xB0, - 0xB4, - 0x00, - 0x63, - 0x59, - 0x5F, - 0x00, - 0x42, - 0x35, - 0x3D, - 0x00, - 0x84, - 0x74, - 0x7E, - 0x00, - 0xAA, - 0x9B, - 0xA7, - 0x00, - 0xD0, - 0xC3, - 0xCF, - 0x00, - 0x8D, - 0x7F, - 0x8C, - 0x00, - 0x9D, - 0x91, - 0x9E, - 0x00, - 0x6B, - 0x60, - 0x6E, - 0x00, - 0xC1, - 0xBB, - 0xCA, - 0x00, - 0x40, - 0x3C, - 0x4A, - 0x00, - 0x30, - 0x2C, - 0x3B, - 0x00, - 0x2A, - 0x27, - 0x35, - 0x00, - 0xAD, - 0xA9, - 0xBE, - 0x00, - 0x77, - 0x73, - 0x90, - 0x00, - 0x19, - 0x18, - 0x21, - 0x00, - 0x35, - 0x33, - 0x45, - 0x00, - 0x49, - 0x47, - 0x5A, - 0x00, - 0x1F, - 0x1E, - 0x28, - 0x00, - 0x80, - 0x7D, - 0x9B, - 0x00, - 0x8F, - 0x8C, - 0xAA, - 0x00, - 0x57, - 0x55, - 0x6B, - 0x00, - 0x6A, - 0x68, - 0x87, - 0x00, - 0x41, - 0x40, - 0x53, - 0x00, - 0xC8, - 0xC7, - 0xDB, - 0x00, - 0x4E, - 0x4D, - 0x65, - 0x00, - 0x9C, - 0x9B, - 0xB9, - 0x00, - 0x16, - 0x1C, - 0x19, - 0x00, - 0x20, - 0x1F, - 0x17, - 0x00, - 0x2E, - 0x27, - 0x0E, - 0x00, - 0x19, - 0x26, - 0x24, - 0x00, - 0x3D, - 0x2C, - 0x12, - 0x00, - 0x25, - 0x2B, - 0x28, - 0x00, - 0x1E, - 0x2D, - 0x2D, - 0x00, - 0x4E, - 0x34, - 0x10, - 0x00, - 0x5F, - 0x37, - 0x10, - 0x00, - 0x2E, - 0x33, - 0x2F, - 0x00, - 0x17, - 0x34, - 0x35, - 0x00, - 0x26, - 0x35, - 0x32, - 0x00, - 0x7A, - 0x3B, - 0x12, - 0x00, - 0x11, - 0x39, - 0x43, - 0x00, - 0x35, - 0x3A, - 0x34, - 0x00, - 0x2B, - 0x3C, - 0x39, - 0x00, - 0x40, - 0x3C, - 0x33, - 0x00, - 0x35, - 0x40, - 0x3D, - 0x00, - 0x1F, - 0x40, - 0x45, - 0x00, - 0x67, - 0x49, - 0x12, - 0x00, - 0x3B, - 0x44, - 0x39, - 0x00, - 0x0B, - 0x42, - 0x55, - 0x00, - 0x44, - 0x44, - 0x3B, - 0x00, - 0x93, - 0x46, - 0x1A, - 0x00, - 0x7C, - 0x4B, - 0x14, - 0x00, - 0x31, - 0x47, - 0x46, - 0x00, - 0x8D, - 0x4E, - 0x14, - 0x00, - 0x4C, - 0x4A, - 0x3B, - 0x00, - 0x3F, - 0x49, - 0x46, - 0x00, - 0x9A, - 0x4E, - 0x18, - 0x00, - 0x4A, - 0x4D, - 0x44, - 0x00, - 0x34, - 0x4D, - 0x52, - 0x00, - 0x96, - 0x58, - 0x0F, - 0x00, - 0x89, - 0x55, - 0x1E, - 0x00, - 0x4D, - 0x56, - 0x31, - 0x00, - 0x81, - 0x5A, - 0x12, - 0x00, - 0x09, - 0x4D, - 0x68, - 0x00, - 0x99, - 0x57, - 0x18, - 0x00, - 0x21, - 0x51, - 0x5A, - 0x00, - 0xA6, - 0x59, - 0x12, - 0x00, - 0x11, - 0x5E, - 0x36, - 0x00, - 0x55, - 0x53, - 0x44, - 0x00, - 0x4A, - 0x52, - 0x4D, - 0x00, - 0xA2, - 0x57, - 0x1F, - 0x00, - 0xAE, - 0x5D, - 0x17, - 0x00, - 0x0C, - 0x5C, - 0x52, - 0x00, - 0x92, - 0x60, - 0x19, - 0x00, - 0x36, - 0x66, - 0x28, - 0x00, - 0xA1, - 0x61, - 0x16, - 0x00, - 0x97, - 0x5F, - 0x23, - 0x00, - 0x3F, - 0x57, - 0x5D, - 0x00, - 0x6A, - 0x67, - 0x1B, - 0x00, - 0xA1, - 0x60, - 0x20, - 0x00, - 0x59, - 0x5A, - 0x4D, - 0x00, - 0x05, - 0x54, - 0x84, - 0x00, - 0xAD, - 0x60, - 0x26, - 0x00, - 0xAD, - 0x66, - 0x13, - 0x00, - 0x53, - 0x5B, - 0x59, - 0x00, - 0xAC, - 0x65, - 0x1D, - 0x00, - 0xB8, - 0x66, - 0x19, - 0x00, - 0x66, - 0x5F, - 0x4D, - 0x00, - 0xA5, - 0x6B, - 0x1A, - 0x00, - 0x1F, - 0x70, - 0x37, - 0x00, - 0xA2, - 0x69, - 0x23, - 0x00, - 0x82, - 0x6E, - 0x1F, - 0x00, - 0x0F, - 0x67, - 0x66, - 0x00, - 0xB0, - 0x6F, - 0x17, - 0x00, - 0xB1, - 0x69, - 0x2E, - 0x00, - 0x9A, - 0x71, - 0x1D, - 0x00, - 0xC3, - 0x6E, - 0x1A, - 0x00, - 0x04, - 0x5D, - 0x98, - 0x00, - 0xB6, - 0x6F, - 0x1F, - 0x00, - 0xAB, - 0x71, - 0x22, - 0x00, - 0x13, - 0x72, - 0x54, - 0x00, - 0x63, - 0x68, - 0x5D, - 0x00, - 0x0C, - 0x68, - 0x7D, - 0x00, - 0x36, - 0x69, - 0x6C, - 0x00, - 0x57, - 0x67, - 0x69, - 0x00, - 0x72, - 0x6C, - 0x54, - 0x00, - 0x4E, - 0x79, - 0x35, - 0x00, - 0xB4, - 0x74, - 0x26, - 0x00, - 0x03, - 0x5D, - 0xB1, - 0x00, - 0x8F, - 0x79, - 0x27, - 0x00, - 0xC3, - 0x75, - 0x23, - 0x00, - 0xBA, - 0x7A, - 0x22, - 0x00, - 0x6F, - 0x7D, - 0x32, - 0x00, - 0x0D, - 0x7C, - 0x6B, - 0x00, - 0x3C, - 0x70, - 0x84, - 0x00, - 0xC4, - 0x7F, - 0x26, - 0x00, - 0xA7, - 0x81, - 0x2A, - 0x00, - 0xB9, - 0x7C, - 0x35, - 0x00, - 0x6C, - 0x73, - 0x6E, - 0x00, - 0x04, - 0x70, - 0xA0, - 0x00, - 0x7B, - 0x76, - 0x65, - 0x00, - 0x02, - 0x69, - 0xBC, - 0x00, - 0xD2, - 0x81, - 0x26, - 0x00, - 0x54, - 0x73, - 0x81, - 0x00, - 0x02, - 0x69, - 0xC9, - 0x00, - 0x68, - 0x76, - 0x83, - 0x00, - 0xC1, - 0x88, - 0x2D, - 0x00, - 0x11, - 0x80, - 0x8C, - 0x00, - 0x8B, - 0x84, - 0x61, - 0x00, - 0xE5, - 0x8B, - 0x2F, - 0x00, - 0x2C, - 0x91, - 0x5F, - 0x00, - 0x03, - 0x78, - 0xC5, - 0x00, - 0x04, - 0x7F, - 0xB0, - 0x00, - 0x02, - 0x76, - 0xD2, - 0x00, - 0xCB, - 0x93, - 0x35, - 0x00, - 0x7C, - 0x85, - 0x80, - 0x00, - 0x6A, - 0x82, - 0x91, - 0x00, - 0x02, - 0x78, - 0xDC, - 0x00, - 0x7E, - 0x83, - 0x91, - 0x00, - 0x1A, - 0x95, - 0x7C, - 0x00, - 0x88, - 0x8A, - 0x7C, - 0x00, - 0x02, - 0x81, - 0xD0, - 0x00, - 0x0F, - 0x89, - 0xBB, - 0x00, - 0x04, - 0x87, - 0xC7, - 0x00, - 0x02, - 0x80, - 0xE2, - 0x00, - 0x73, - 0x91, - 0x84, - 0x00, - 0x03, - 0x85, - 0xD9, - 0x00, - 0x6A, - 0x93, - 0x8B, - 0x00, - 0x7F, - 0x94, - 0x84, - 0x00, - 0x81, - 0x8D, - 0x9D, - 0x00, - 0x9D, - 0x97, - 0x74, - 0x00, - 0x02, - 0x84, - 0xEA, - 0x00, - 0x77, - 0x97, - 0x8A, - 0x00, - 0x02, - 0x89, - 0xE3, - 0x00, - 0x6B, - 0x98, - 0x90, - 0x00, - 0x61, - 0x99, - 0x93, - 0x00, - 0xE0, - 0xA5, - 0x41, - 0x00, - 0x44, - 0x9D, - 0x91, - 0x00, - 0x04, - 0x91, - 0xD4, - 0x00, - 0x84, - 0x9A, - 0x8D, - 0x00, - 0x02, - 0x8A, - 0xEF, - 0x00, - 0x95, - 0x96, - 0x98, - 0x00, - 0x02, - 0x90, - 0xE0, - 0x00, - 0x02, - 0x8F, - 0xEA, - 0x00, - 0x8B, - 0x96, - 0xA7, - 0x00, - 0x6D, - 0x9E, - 0x97, - 0x00, - 0x01, - 0x8D, - 0xF5, - 0x00, - 0x5B, - 0xA0, - 0x9A, - 0x00, - 0x7C, - 0xA1, - 0x92, - 0x00, - 0x2A, - 0xA8, - 0x9F, - 0x00, - 0x53, - 0xA4, - 0x9F, - 0x00, - 0x01, - 0x92, - 0xFB, - 0x00, - 0x02, - 0x96, - 0xEE, - 0x00, - 0x03, - 0x98, - 0xE7, - 0x00, - 0x01, - 0x95, - 0xF3, - 0x00, - 0x20, - 0xAB, - 0x9F, - 0x00, - 0x4A, - 0xA6, - 0xA2, - 0x00, - 0x97, - 0x9D, - 0xAA, - 0x00, - 0x89, - 0xA3, - 0x9E, - 0x00, - 0x31, - 0xAC, - 0x9E, - 0x00, - 0x18, - 0xAE, - 0xA1, - 0x00, - 0x7A, - 0xA7, - 0x9C, - 0x00, - 0x68, - 0xA9, - 0x9C, - 0x00, - 0x44, - 0xAB, - 0xA5, - 0x00, - 0x01, - 0x98, - 0xFD, - 0x00, - 0x01, - 0x9A, - 0xF7, - 0x00, - 0x3C, - 0xAD, - 0xA6, - 0x00, - 0x01, - 0x9E, - 0xF1, - 0x00, - 0x22, - 0xB1, - 0xA6, - 0x00, - 0x12, - 0xB3, - 0xA6, - 0x00, - 0xAE, - 0xA8, - 0x97, - 0x00, - 0x01, - 0x9D, - 0xFD, - 0x00, - 0x76, - 0xAD, - 0xA2, - 0x00, - 0x18, - 0xB5, - 0xA8, - 0x00, - 0x34, - 0xB3, - 0xA7, - 0x00, - 0xA0, - 0xA7, - 0xAC, - 0x00, - 0x9E, - 0xA4, - 0xB8, - 0x00, - 0x3B, - 0xB1, - 0xAE, - 0x00, - 0x01, - 0xA2, - 0xF7, - 0x00, - 0x0E, - 0xB9, - 0xAB, - 0x00, - 0x01, - 0xA3, - 0xFD, - 0x00, - 0x2A, - 0xB8, - 0xA9, - 0x00, - 0x86, - 0xAF, - 0xA9, - 0x00, - 0x1A, - 0xB9, - 0xAE, - 0x00, - 0x6F, - 0xB2, - 0xAB, - 0x00, - 0x35, - 0xB6, - 0xB2, - 0x00, - 0x24, - 0xBA, - 0xB0, - 0x00, - 0x04, - 0xAB, - 0xF4, - 0x00, - 0x11, - 0xBE, - 0xB0, - 0x00, - 0x08, - 0xBF, - 0xB0, - 0x00, - 0x01, - 0xA9, - 0xFD, - 0x00, - 0x31, - 0xBC, - 0xB2, - 0x00, - 0x68, - 0xB7, - 0xB2, - 0x00, - 0x32, - 0xBB, - 0xB8, - 0x00, - 0x1C, - 0xBF, - 0xB4, - 0x00, - 0x5D, - 0xB9, - 0xB3, - 0x00, - 0xA9, - 0xB0, - 0xB9, - 0x00, - 0x80, - 0xB7, - 0xB3, - 0x00, - 0x2A, - 0xC0, - 0xB5, - 0x00, - 0xB4, - 0xB4, - 0xB1, - 0x00, - 0x38, - 0xBE, - 0xBB, - 0x00, - 0x0A, - 0xC5, - 0xB6, - 0x00, - 0x53, - 0xBD, - 0xBA, - 0x00, - 0x15, - 0xC5, - 0xB7, - 0x00, - 0x3B, - 0xC1, - 0xB8, - 0x00, - 0x76, - 0xBB, - 0xBA, - 0x00, - 0x32, - 0xC2, - 0xBA, - 0x00, - 0x65, - 0xBD, - 0xBC, - 0x00, - 0x1E, - 0xBB, - 0xDE, - 0x00, - 0x4A, - 0xC0, - 0xBF, - 0x00, - 0x23, - 0xC6, - 0xBA, - 0x00, - 0x44, - 0xC3, - 0xBD, - 0x00, - 0x3A, - 0xC4, - 0xC1, - 0x00, - 0x5E, - 0xC1, - 0xC5, - 0x00, - 0x38, - 0xC8, - 0xBC, - 0x00, - 0xB4, - 0xBA, - 0xC1, - 0x00, - 0x2D, - 0xC9, - 0xBD, - 0x00, - 0x0B, - 0xCD, - 0xBE, - 0x00, - 0x41, - 0xC8, - 0xBD, - 0x00, - 0x53, - 0xC5, - 0xC1, - 0x00, - 0x37, - 0xC7, - 0xC5, - 0x00, - 0x40, - 0xC6, - 0xC6, - 0x00, - 0x2E, - 0xC7, - 0xC9, - 0x00, - 0x7B, - 0xC2, - 0xC2, - 0x00, - 0x4D, - 0xC8, - 0xBF, - 0x00, - 0x27, - 0xC9, - 0xCE, - 0x00, - 0x2F, - 0xC8, - 0xCF, - 0x00, - 0x37, - 0xC8, - 0xCD, - 0x00, - 0x28, - 0xC7, - 0xD6, - 0x00, - 0x2D, - 0xC7, - 0xD5, - 0x00, - 0x6D, - 0xC5, - 0xC6, - 0x00, - 0x5C, - 0xC5, - 0xCC, - 0x00, - 0x49, - 0xC7, - 0xCC, - 0x00, - 0x50, - 0xC6, - 0xD0, - 0x00, - 0x56, - 0xCA, - 0xC2, - 0x00, - 0x5E, - 0xCA, - 0xC1, - 0x00, - 0x29, - 0xCA, - 0xD3, - 0x00, - 0x35, - 0xC8, - 0xD6, - 0x00, - 0x14, - 0xD2, - 0xC3, - 0x00, - 0xD0, - 0xC5, - 0xB0, - 0x00, - 0x3A, - 0xC9, - 0xD6, - 0x00, - 0x25, - 0xCA, - 0xDA, - 0x00, - 0x31, - 0xCA, - 0xD7, - 0x00, - 0x6A, - 0xCA, - 0xC5, - 0x00, - 0x3E, - 0xCA, - 0xD4, - 0x00, - 0x2B, - 0xCB, - 0xD8, - 0x00, - 0x45, - 0xCA, - 0xD4, - 0x00, - 0x64, - 0xCC, - 0xC3, - 0x00, - 0xC1, - 0xC2, - 0xC6, - 0x00, - 0x3B, - 0xCF, - 0xC9, - 0x00, - 0x20, - 0xD3, - 0xC5, - 0x00, - 0x6F, - 0xCC, - 0xC5, - 0x00, - 0x46, - 0xD1, - 0xCA, - 0x00, - 0x4E, - 0xCF, - 0xD5, - 0x00, - 0x75, - 0xD0, - 0xC8, - 0x00, - 0x2B, - 0xD7, - 0xCA, - 0x00, - 0x62, - 0xD3, - 0xCB, - 0x00, - 0x7F, - 0xD2, - 0xCB, - 0x00, - 0x50, - 0xD6, - 0xCE, - 0x00, - 0xCD, - 0xCC, - 0xCC, - 0x00, - 0x5A, - 0xDB, - 0xD5, - 0x00, - 0x69, - 0xDF, - 0xD7, - 0x00, - 0xDC, - 0xDE, - 0xDA, - 0x00, - 0x34, - 0x35, - 0x3A, - 0x00, - 0x49, - 0x4B, - 0x4A, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x39, - 0x3A, - 0x3E, - 0x00, - 0x35, - 0x36, - 0x3B, - 0x00, - 0x43, - 0x46, - 0x44, - 0x00, - 0x3D, - 0x3E, - 0x43, - 0x00, - 0x46, - 0x47, - 0x4C, - 0x00, - 0x80, - 0x8A, - 0x37, - 0x00, - 0x9C, - 0xAB, - 0x31, - 0x00, - 0x3A, - 0x3C, - 0x40, - 0x00, - 0x86, - 0x92, - 0x32, - 0x00, - 0x90, - 0x9E, - 0x31, - 0x00, - 0x41, - 0x42, - 0x47, - 0x00, - 0x84, - 0x8F, - 0x3C, - 0x00, - 0x9E, - 0xB4, - 0x35, - 0x00, - 0x5D, - 0x5F, - 0x46, - 0x00, - 0x8F, - 0x9C, - 0x2F, - 0x00, - 0xF0, - 0xF3, - 0xF1, - 0x00, - 0x4A, - 0x4B, - 0x50, - 0x00, - 0xA0, - 0xA1, - 0xA7, - 0x00, - 0x64, - 0x65, - 0x6A, - 0x00, - 0x36, - 0x37, - 0x3B, - 0x00, - 0x44, - 0x45, - 0x4A, - 0x00, - 0x52, - 0x53, - 0x58, - 0x00, - 0x72, - 0x73, - 0x78, - 0x00, - 0x39, - 0x3C, - 0x3A, - 0x00, - 0x4A, - 0x4D, - 0x4B, - 0x00, - 0xB2, - 0xB3, - 0xB9, - 0x00, - 0xF6, - 0xFA, - 0xF8, - 0x00, - 0xFA, - 0xFD, - 0xFB, - 0x00, - 0x38, - 0x3A, - 0x39, - 0x00, - 0x4D, - 0x4E, - 0x53, - 0x00, - 0xAF, - 0xB0, - 0xB6, - 0x00, - 0x94, - 0x96, - 0x9B, - 0x00, - 0xD7, - 0xDB, - 0xD9, - 0x00, - 0xB8, - 0xB9, - 0xBF, - 0x00, - 0x7F, - 0x81, - 0x86, - 0x00, - 0x60, - 0x61, - 0x66, - 0x00, - 0xCA, - 0xCE, - 0xCB, - 0x00, - 0x9F, - 0xB0, - 0x22, - 0x00, - 0x55, - 0x54, - 0x49, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0x59, - 0x5A, - 0x5F, - 0x00, - 0x56, - 0x57, - 0x5C, - 0x00, - 0x50, - 0x51, - 0x56, - 0x00, - 0x3F, - 0x40, - 0x45, - 0x00, - 0x99, - 0xA8, - 0x2D, - 0x00, - 0x43, - 0x44, - 0x49, - 0x00, - 0xB8, - 0xC7, - 0x60, - 0x00, - 0xEA, - 0xED, - 0xEB, - 0x00, - 0xDF, - 0xE1, - 0xE6, - 0x00, - 0xD1, - 0xD2, - 0xD8, - 0x00, - 0x5D, - 0x5E, - 0x63, - 0x00, - 0x45, - 0x46, - 0x4B, - 0x00, - 0xE4, - 0xE5, - 0xEB, - 0x00, - 0x76, - 0x78, - 0x7D, - 0x00, - 0xF3, - 0xF4, - 0xFA, - 0x00, - 0x4C, - 0x54, - 0x37, - 0x00, - 0x68, - 0x76, - 0x34, - 0x00, - 0xC4, - 0xD0, - 0x7F, - 0x00, - 0xB2, - 0xC1, - 0x4D, - 0x00, - 0x6D, - 0x74, - 0x40, - 0x00, - 0x58, - 0x59, - 0x5E, - 0x00, - 0xC5, - 0xC8, - 0xC6, - 0x00, - 0x6B, - 0x71, - 0x3E, - 0x00, - 0x63, - 0x70, - 0x38, - 0x00, - 0x97, - 0xA6, - 0x2A, - 0x00, - 0x99, - 0x9A, - 0x9F, - 0x00, - 0xD3, - 0xD7, - 0xD4, - 0x00, - 0xD1, - 0xDA, - 0x9B, - 0x00, - 0x5B, - 0x5C, - 0x61, - 0x00, - 0x8B, - 0x97, - 0x39, - 0x00, - 0x88, - 0x89, - 0x8E, - 0x00, - 0x8D, - 0x8F, - 0x94, - 0x00, - 0x84, - 0x97, - 0x32, - 0x00, - 0xAD, - 0xBC, - 0x47, - 0x00, - 0x7C, - 0x85, - 0x3D, - 0x00, - 0x5A, - 0x65, - 0x37, - 0x00, - 0x47, - 0x4E, - 0x39, - 0x00, - 0x7B, - 0x7C, - 0x81, - 0x00, - 0xAC, - 0xAD, - 0xB2, - 0x00, - 0xBC, - 0xBF, - 0xBD, - 0x00, - 0xA7, - 0xA8, - 0xAE, - 0x00, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x81, - 0x92, - 0x3A, - 0x00, - 0x8F, - 0x91, - 0x96, - 0x00, - 0x85, - 0x86, - 0x8B, - 0x00, - 0x3C, - 0x40, - 0x38, - 0x00, - 0x77, - 0x81, - 0x2D, - 0x00, - 0x72, - 0x7A, - 0x3D, - 0x00, - 0xC1, - 0xC4, - 0xC2, - 0x00, - 0xC7, - 0xCA, - 0xC8, - 0x00, - 0xF8, - 0xFC, - 0xF9, - 0x00, - 0x57, - 0x58, - 0x46, - 0x00, - 0x50, - 0x58, - 0x3B, - 0x00, - 0x88, - 0x9B, - 0x37, - 0x00, - 0x69, - 0x6A, - 0x6F, - 0x00, - 0x4E, - 0x4F, - 0x54, - 0x00, - 0x95, - 0xA4, - 0x27, - 0x00, - 0xBE, - 0xBF, - 0xC4, - 0x00, - 0xED, - 0xF0, - 0xEE, - 0x00, - 0xD9, - 0xDA, - 0xE0, - 0x00, - 0xA5, - 0xA6, - 0xAC, - 0x00, - 0xF4, - 0xF8, - 0xF6, - 0x00, - 0x3F, - 0x45, - 0x36, - 0x00, - 0x7C, - 0x8D, - 0x35, - 0x00, - 0x41, - 0x47, - 0x38, - 0x00, - 0x68, - 0x6D, - 0x43, - 0x00, - 0x6C, - 0x6E, - 0x72, - 0x00, - 0x52, - 0x5C, - 0x37, - 0x00, - 0x49, - 0x50, - 0x3A, - 0x00, - 0x89, - 0x96, - 0x27, - 0x00, - 0xA3, - 0xA4, - 0xAA, - 0x00, - 0x37, - 0x39, - 0x37, - 0x00, - 0x71, - 0x7A, - 0x32, - 0x00, - 0xAA, - 0xBB, - 0x34, - 0x00, - 0x66, - 0x6B, - 0x41, - 0x00, - 0xEC, - 0xEE, - 0xF3, - 0x00, - 0x59, - 0x5A, - 0x48, - 0x00, - 0x6E, - 0x70, - 0x74, - 0x00, - 0xE5, - 0xE8, - 0xE6, - 0x00, - 0x66, - 0x68, - 0x6C, - 0x00, - 0x97, - 0xAC, - 0x3C, - 0x00, - 0x6C, - 0x73, - 0x3F, - 0x00, - 0x94, - 0xA9, - 0x38, - 0x00, - 0x9E, - 0xAD, - 0x34, - 0x00, - 0xF2, - 0xF5, - 0xF3, - 0x00, - 0xC0, - 0xC1, - 0xC6, - 0x00, - 0xE8, - 0xEA, - 0xEF, - 0x00, - 0x45, - 0x4C, - 0x36, - 0x00, - 0x75, - 0x7D, - 0x40, - 0x00, - 0x8A, - 0x96, - 0x37, - 0x00, - 0x4C, - 0x4F, - 0x4D, - 0x00, - 0x6A, - 0x6C, - 0x70, - 0x00, - 0xCB, - 0xCD, - 0xD2, - 0x00, - 0xCB, - 0xCF, - 0xCD, - 0x00, - 0x9C, - 0xB2, - 0x33, - 0x00, - 0x6F, - 0x7D, - 0x3C, - 0x00, - 0x6A, - 0x78, - 0x36, - 0x00, - 0x43, - 0x49, - 0x3A, - 0x00, - 0x61, - 0x65, - 0x43, - 0x00, - 0xDC, - 0xDF, - 0xDD, - 0x00, - 0x72, - 0x82, - 0x35, - 0x00, - 0x5A, - 0x5B, - 0x60, - 0x00, - 0xED, - 0xF0, - 0xD3, - 0x00, - 0x63, - 0x67, - 0x45, - 0x00, - 0x84, - 0x90, - 0x30, - 0x00, - 0x5D, - 0x68, - 0x3A, - 0x00, - 0x6D, - 0x7B, - 0x39, - 0x00, - 0x3A, - 0x3E, - 0x36, - 0x00, - 0x3E, - 0x42, - 0x3A, - 0x00, - 0xD8, - 0xE0, - 0xAA, - 0x00, - 0xFD, - 0xFC, - 0xEF, - 0x00, - 0xD5, - 0xD6, - 0xDC, - 0x00, - 0xDF, - 0xE2, - 0xE0, - 0x00, - 0x91, - 0xA5, - 0x33, - 0x00, - 0x8E, - 0xA2, - 0x2F, - 0x00, - 0x60, - 0x6D, - 0x35, - 0x00, - 0x75, - 0x85, - 0x38, - 0x00, - 0xBA, - 0xBC, - 0xC1, - 0x00, - 0xF0, - 0xF1, - 0xF7, - 0x00, - 0xC2, - 0xC4, - 0xC9, - 0x00, - 0xC6, - 0xC7, - 0xCD, - 0x00, - 0x78, - 0x81, - 0x3A, - 0x00, - 0xB4, - 0xB7, - 0xB5, - 0x00, - 0x55, - 0x5F, - 0x3A, - 0x00, - 0xC2, - 0xCF, - 0x74, - 0x00, - 0xC9, - 0xCC, - 0xCA, - 0x00, - 0x74, - 0x72, - 0x6D, - 0x00, - 0x53, - 0x52, - 0x47, - 0x00, - 0x74, - 0x75, - 0x7A, - 0x00, - 0xC4, - 0xC7, - 0xC5, - 0x00, - 0x7D, - 0x7E, - 0x83, - 0x00, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xCC, - 0xD7, - 0x8F, - 0x00, - 0x61, - 0x63, - 0x67, - 0x00, - 0x4F, - 0x53, - 0x4B, - 0x00, - 0xCE, - 0xD1, - 0xCF, - 0x00, - 0x7F, - 0x8A, - 0x29, - 0x00, - 0x6E, - 0x6A, - 0x6C, - 0x00, - 0xE5, - 0xE9, - 0xC4, - 0x00, - 0x58, - 0x61, - 0x3C, - 0x00, - 0x5B, - 0x5E, - 0x44, - 0x00, - 0xD0, - 0xD3, - 0xD1, - 0x00, - 0xE3, - 0xE6, - 0xE4, - 0x00, - 0x9C, - 0x9D, - 0xA2, - 0x00, - 0x73, - 0x6F, - 0x71, - 0x00, - 0x6A, - 0x72, - 0x34, - 0x00, - 0x4F, - 0x4D, - 0x49, - 0x00, - 0x97, - 0x98, - 0x9D, - 0x00, - 0x82, - 0x83, - 0x88, - 0x00, - 0x79, - 0x8A, - 0x31, - 0x00, - 0x60, - 0x63, - 0x61, - 0x00, - 0x70, - 0x6D, - 0x69, - 0x00, - 0x6F, - 0x78, - 0x30, - 0x00, - 0xE7, - 0xEA, - 0xE8, - 0x00, - 0x93, - 0xA0, - 0x34, - 0x00, - 0x86, - 0x99, - 0x34, - 0x00, - 0x65, - 0x68, - 0x66, - 0x00, - 0xF0, - 0xF1, - 0xDC, - 0x00, - 0x8C, - 0x9F, - 0x3B, - 0x00, - 0xE1, - 0xE7, - 0xB9, - 0x00, - 0x66, - 0x72, - 0x3B, - 0x00, - 0xCE, - 0xCF, - 0xD5, - 0x00, - 0xF6, - 0xF7, - 0xE1, - 0x00, - 0x95, - 0xA2, - 0x37, - 0x00, - 0x69, - 0x65, - 0x67, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x00, - 0x98, - 0xAE, - 0x2D, - 0x00, - 0x78, - 0x88, - 0x3B, - 0x00, - 0xBD, - 0xCA, - 0x6F, - 0x00, - 0xF8, - 0xF8, - 0xEA, - 0x00, - 0x4B, - 0x52, - 0x3C, - 0x00, - 0xB6, - 0xC5, - 0x5D, - 0x00, - 0xB5, - 0xB6, - 0xBB, - 0x00, - 0x8D, - 0x99, - 0x3B, - 0x00, - 0x60, - 0x66, - 0x33, - 0x00, - 0x69, - 0x6C, - 0x6A, - 0x00, - 0x3B, - 0x3E, - 0x3C, - 0x00, - 0xF6, - 0xF5, - 0xE8, - 0x00, - 0xD5, - 0xDE, - 0x9F, - 0x00, - 0x65, - 0x6B, - 0x38, - 0x00, - 0xDD, - 0xDE, - 0xE4, - 0x00, - 0xA2, - 0xB8, - 0x3B, - 0x00, - 0x50, - 0x4E, - 0x4A, - 0x00, - 0x6F, - 0x75, - 0x42, - 0x00, - 0x7E, - 0x89, - 0x35, - 0x00, - 0x9E, - 0xA0, - 0xA5, - 0x00, - 0x30, - 0x35, - 0x3C, - 0x00, - 0x5A, - 0x5D, - 0x5B, - 0x00, - 0x81, - 0x8D, - 0x2C, - 0x00, - 0xF1, - 0xF6, - 0xEC, - 0x00, - 0xFF, - 0xFE, - 0xF8, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - - /* - Fonts - */ - 0x04, - 0x42, - 0x18, - 0x00, - 0x00, - 0x5E, - 0x19, - 0x00, - 0x00, - 0x7A, - 0x1A, - 0x00, - 0x00, - 0x96, - 0x1B, - 0x00, - 0x00, - 0x5E, - 0x67, - 0x00, - 0x00, - 0x03, - 0x03, - 0x00, - 0x04, - 0x07, - 0x00, - 0x09, - 0x10, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0D, - 0x24, - 0x00, - 0x0C, - 0x30, - 0x00, - 0x03, - 0x33, - 0x00, - 0x06, - 0x39, - 0x00, - 0x06, - 0x3F, - 0x00, - 0x05, - 0x44, - 0x00, - 0x08, - 0x4C, - 0x00, - 0x04, - 0x50, - 0x00, - 0x04, - 0x54, - 0x00, - 0x03, - 0x57, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x09, - 0x67, - 0x00, - 0x05, - 0x6C, - 0x00, - 0x08, - 0x74, - 0x00, - 0x08, - 0x7C, - 0x00, - 0x08, - 0x84, - 0x00, - 0x0A, - 0x8E, - 0x00, - 0x09, - 0x97, - 0x00, - 0x07, - 0x9E, - 0x00, - 0x08, - 0xA6, - 0x00, - 0x09, - 0xAF, - 0x00, - 0x03, - 0xB2, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x08, - 0xBE, - 0x00, - 0x08, - 0xC6, - 0x00, - 0x08, - 0xCE, - 0x00, - 0x08, - 0xD6, - 0x00, - 0x0D, - 0xE3, - 0x00, - 0x0C, - 0xEF, - 0x00, - 0x08, - 0xF7, - 0x00, - 0x0D, - 0x04, - 0x01, - 0x0B, - 0x0F, - 0x01, - 0x08, - 0x17, - 0x01, - 0x07, - 0x1E, - 0x01, - 0x0D, - 0x2B, - 0x01, - 0x09, - 0x34, - 0x01, - 0x03, - 0x37, - 0x01, - 0x07, - 0x3E, - 0x01, - 0x09, - 0x47, - 0x01, - 0x07, - 0x4E, - 0x01, - 0x0D, - 0x5B, - 0x01, - 0x0A, - 0x65, - 0x01, - 0x0D, - 0x72, - 0x01, - 0x09, - 0x7B, - 0x01, - 0x0D, - 0x88, - 0x01, - 0x09, - 0x91, - 0x01, - 0x08, - 0x99, - 0x01, - 0x07, - 0xA0, - 0x01, - 0x09, - 0xA9, - 0x01, - 0x0C, - 0xB5, - 0x01, - 0x10, - 0xC5, - 0x01, - 0x0A, - 0xCF, - 0x01, - 0x0B, - 0xDA, - 0x01, - 0x07, - 0xE1, - 0x01, - 0x04, - 0xE5, - 0x01, - 0x07, - 0xEC, - 0x01, - 0x05, - 0xF1, - 0x01, - 0x0A, - 0xFB, - 0x01, - 0x08, - 0x03, - 0x02, - 0x04, - 0x07, - 0x02, - 0x0A, - 0x11, - 0x02, - 0x0A, - 0x1B, - 0x02, - 0x0A, - 0x25, - 0x02, - 0x0A, - 0x2F, - 0x02, - 0x0A, - 0x39, - 0x02, - 0x05, - 0x3E, - 0x02, - 0x0A, - 0x48, - 0x02, - 0x09, - 0x51, - 0x02, - 0x03, - 0x54, - 0x02, - 0x05, - 0x59, - 0x02, - 0x08, - 0x61, - 0x02, - 0x03, - 0x64, - 0x02, - 0x0E, - 0x72, - 0x02, - 0x09, - 0x7B, - 0x02, - 0x0A, - 0x85, - 0x02, - 0x0A, - 0x8F, - 0x02, - 0x0A, - 0x99, - 0x02, - 0x05, - 0x9E, - 0x02, - 0x06, - 0xA4, - 0x02, - 0x05, - 0xA9, - 0x02, - 0x09, - 0xB2, - 0x02, - 0x09, - 0xBB, - 0x02, - 0x0E, - 0xC9, - 0x02, - 0x08, - 0xD1, - 0x02, - 0x09, - 0xDA, - 0x02, - 0x06, - 0xE0, - 0x02, - 0x05, - 0xE5, - 0x02, - 0x03, - 0xE8, - 0x02, - 0x05, - 0xED, - 0x02, - 0x09, - 0x5E, - 0x68, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0C, - 0x16, - 0x00, - 0x09, - 0x20, - 0x00, - 0x11, - 0x32, - 0x00, - 0x10, - 0x43, - 0x00, - 0x02, - 0x46, - 0x00, - 0x07, - 0x4E, - 0x00, - 0x07, - 0x56, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x0C, - 0x6B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x77, - 0x00, - 0x02, - 0x7A, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x0C, - 0x92, - 0x00, - 0x05, - 0x98, - 0x00, - 0x0B, - 0xA4, - 0x00, - 0x0B, - 0xB0, - 0x00, - 0x0C, - 0xBD, - 0x00, - 0x0C, - 0xCA, - 0x00, - 0x0C, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x0C, - 0xFB, - 0x00, - 0x02, - 0xFE, - 0x00, - 0x04, - 0x03, - 0x01, - 0x0C, - 0x10, - 0x01, - 0x0C, - 0x1D, - 0x01, - 0x0C, - 0x2A, - 0x01, - 0x0B, - 0x36, - 0x01, - 0x11, - 0x48, - 0x01, - 0x11, - 0x5A, - 0x01, - 0x0B, - 0x66, - 0x01, - 0x11, - 0x78, - 0x01, - 0x0E, - 0x87, - 0x01, - 0x0A, - 0x92, - 0x01, - 0x09, - 0x9C, - 0x01, - 0x12, - 0xAF, - 0x01, - 0x0C, - 0xBC, - 0x01, - 0x02, - 0xBF, - 0x01, - 0x09, - 0xC9, - 0x01, - 0x0C, - 0xD6, - 0x01, - 0x09, - 0xE0, - 0x01, - 0x12, - 0xF3, - 0x01, - 0x0E, - 0x02, - 0x02, - 0x12, - 0x15, - 0x02, - 0x0B, - 0x21, - 0x02, - 0x12, - 0x34, - 0x02, - 0x0C, - 0x41, - 0x02, - 0x0B, - 0x4D, - 0x02, - 0x0A, - 0x58, - 0x02, - 0x0C, - 0x65, - 0x02, - 0x10, - 0x76, - 0x02, - 0x16, - 0x8D, - 0x02, - 0x0E, - 0x9C, - 0x02, - 0x0E, - 0xAB, - 0x02, - 0x0B, - 0xB7, - 0x02, - 0x05, - 0xBD, - 0x02, - 0x0A, - 0xC8, - 0x02, - 0x05, - 0xCE, - 0x02, - 0x0E, - 0xDD, - 0x02, - 0x0C, - 0xEA, - 0x02, - 0x07, - 0xF2, - 0x02, - 0x0E, - 0x01, - 0x03, - 0x0D, - 0x0F, - 0x03, - 0x0E, - 0x1E, - 0x03, - 0x0E, - 0x2D, - 0x03, - 0x0D, - 0x3B, - 0x03, - 0x07, - 0x43, - 0x03, - 0x0D, - 0x51, - 0x03, - 0x0B, - 0x5D, - 0x03, - 0x02, - 0x60, - 0x03, - 0x05, - 0x66, - 0x03, - 0x0B, - 0x72, - 0x03, - 0x02, - 0x75, - 0x03, - 0x13, - 0x89, - 0x03, - 0x0B, - 0x95, - 0x03, - 0x0D, - 0xA3, - 0x03, - 0x0D, - 0xB1, - 0x03, - 0x0D, - 0xBF, - 0x03, - 0x06, - 0xC6, - 0x03, - 0x08, - 0xCF, - 0x03, - 0x07, - 0xD7, - 0x03, - 0x0B, - 0xE3, - 0x03, - 0x0D, - 0xF1, - 0x03, - 0x14, - 0x06, - 0x04, - 0x0B, - 0x12, - 0x04, - 0x0D, - 0x20, - 0x04, - 0x09, - 0x2A, - 0x04, - 0x06, - 0x31, - 0x04, - 0x02, - 0x34, - 0x04, - 0x06, - 0x3B, - 0x04, - 0x0C, - 0x5E, - 0x69, - 0x00, - 0x00, - 0x02, - 0x02, - 0x00, - 0x04, - 0x06, - 0x00, - 0x0B, - 0x11, - 0x00, - 0x09, - 0x1A, - 0x00, - 0x10, - 0x2A, - 0x00, - 0x0F, - 0x39, - 0x00, - 0x02, - 0x3B, - 0x00, - 0x06, - 0x41, - 0x00, - 0x07, - 0x48, - 0x00, - 0x06, - 0x4E, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x05, - 0x5E, - 0x00, - 0x06, - 0x64, - 0x00, - 0x02, - 0x66, - 0x00, - 0x09, - 0x6F, - 0x00, - 0x0B, - 0x7A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x0A, - 0x89, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x0B, - 0x9F, - 0x00, - 0x0C, - 0xAB, - 0x00, - 0x0B, - 0xB6, - 0x00, - 0x09, - 0xBF, - 0x00, - 0x0A, - 0xC9, - 0x00, - 0x0B, - 0xD4, - 0x00, - 0x02, - 0xD6, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x0B, - 0xE5, - 0x00, - 0x0B, - 0xF0, - 0x00, - 0x0B, - 0xFB, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x10, - 0x15, - 0x01, - 0x10, - 0x25, - 0x01, - 0x0A, - 0x2F, - 0x01, - 0x10, - 0x3F, - 0x01, - 0x0D, - 0x4C, - 0x01, - 0x09, - 0x55, - 0x01, - 0x09, - 0x5E, - 0x01, - 0x11, - 0x6F, - 0x01, - 0x0C, - 0x7B, - 0x01, - 0x02, - 0x7D, - 0x01, - 0x09, - 0x86, - 0x01, - 0x0B, - 0x91, - 0x01, - 0x09, - 0x9A, - 0x01, - 0x11, - 0xAB, - 0x01, - 0x0D, - 0xB8, - 0x01, - 0x11, - 0xC9, - 0x01, - 0x0B, - 0xD4, - 0x01, - 0x11, - 0xE5, - 0x01, - 0x0B, - 0xF0, - 0x01, - 0x0A, - 0xFA, - 0x01, - 0x09, - 0x03, - 0x02, - 0x0B, - 0x0E, - 0x02, - 0x0F, - 0x1D, - 0x02, - 0x15, - 0x32, - 0x02, - 0x0D, - 0x3F, - 0x02, - 0x0E, - 0x4D, - 0x02, - 0x0A, - 0x57, - 0x02, - 0x04, - 0x5B, - 0x02, - 0x09, - 0x64, - 0x02, - 0x05, - 0x69, - 0x02, - 0x0D, - 0x76, - 0x02, - 0x0B, - 0x81, - 0x02, - 0x06, - 0x87, - 0x02, - 0x0D, - 0x94, - 0x02, - 0x0C, - 0xA0, - 0x02, - 0x0D, - 0xAD, - 0x02, - 0x0D, - 0xBA, - 0x02, - 0x0C, - 0xC6, - 0x02, - 0x06, - 0xCC, - 0x02, - 0x0C, - 0xD8, - 0x02, - 0x0B, - 0xE3, - 0x02, - 0x02, - 0xE5, - 0x02, - 0x05, - 0xEA, - 0x02, - 0x0A, - 0xF4, - 0x02, - 0x02, - 0xF6, - 0x02, - 0x12, - 0x08, - 0x03, - 0x0A, - 0x12, - 0x03, - 0x0C, - 0x1E, - 0x03, - 0x0C, - 0x2A, - 0x03, - 0x0D, - 0x37, - 0x03, - 0x05, - 0x3C, - 0x03, - 0x07, - 0x43, - 0x03, - 0x07, - 0x4A, - 0x03, - 0x0A, - 0x54, - 0x03, - 0x0C, - 0x60, - 0x03, - 0x12, - 0x72, - 0x03, - 0x0B, - 0x7D, - 0x03, - 0x0C, - 0x89, - 0x03, - 0x09, - 0x92, - 0x03, - 0x06, - 0x98, - 0x03, - 0x02, - 0x9A, - 0x03, - 0x06, - 0xA0, - 0x03, - 0x0B, - 0x5E, - 0x6A, - 0x00, - 0x00, - 0x02, - 0x02, - 0x00, - 0x04, - 0x06, - 0x00, - 0x0B, - 0x11, - 0x00, - 0x09, - 0x1A, - 0x00, - 0x10, - 0x2A, - 0x00, - 0x0F, - 0x39, - 0x00, - 0x02, - 0x3B, - 0x00, - 0x06, - 0x41, - 0x00, - 0x07, - 0x48, - 0x00, - 0x06, - 0x4E, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x05, - 0x5E, - 0x00, - 0x06, - 0x64, - 0x00, - 0x02, - 0x66, - 0x00, - 0x09, - 0x6F, - 0x00, - 0x0B, - 0x7A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x0A, - 0x89, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x0B, - 0x9F, - 0x00, - 0x0C, - 0xAB, - 0x00, - 0x0B, - 0xB6, - 0x00, - 0x09, - 0xBF, - 0x00, - 0x0A, - 0xC9, - 0x00, - 0x0B, - 0xD4, - 0x00, - 0x02, - 0xD6, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x0B, - 0xE5, - 0x00, - 0x0B, - 0xF0, - 0x00, - 0x0B, - 0xFB, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x10, - 0x15, - 0x01, - 0x10, - 0x25, - 0x01, - 0x0A, - 0x2F, - 0x01, - 0x10, - 0x3F, - 0x01, - 0x0D, - 0x4C, - 0x01, - 0x09, - 0x55, - 0x01, - 0x09, - 0x5E, - 0x01, - 0x11, - 0x6F, - 0x01, - 0x0C, - 0x7B, - 0x01, - 0x02, - 0x7D, - 0x01, - 0x09, - 0x86, - 0x01, - 0x0B, - 0x91, - 0x01, - 0x09, - 0x9A, - 0x01, - 0x11, - 0xAB, - 0x01, - 0x0D, - 0xB8, - 0x01, - 0x11, - 0xC9, - 0x01, - 0x0B, - 0xD4, - 0x01, - 0x11, - 0xE5, - 0x01, - 0x0B, - 0xF0, - 0x01, - 0x0A, - 0xFA, - 0x01, - 0x09, - 0x03, - 0x02, - 0x0B, - 0x0E, - 0x02, - 0x0F, - 0x1D, - 0x02, - 0x15, - 0x32, - 0x02, - 0x0D, - 0x3F, - 0x02, - 0x0E, - 0x4D, - 0x02, - 0x0A, - 0x57, - 0x02, - 0x04, - 0x5B, - 0x02, - 0x09, - 0x64, - 0x02, - 0x05, - 0x69, - 0x02, - 0x0D, - 0x76, - 0x02, - 0x0B, - 0x81, - 0x02, - 0x06, - 0x87, - 0x02, - 0x0D, - 0x94, - 0x02, - 0x0C, - 0xA0, - 0x02, - 0x0D, - 0xAD, - 0x02, - 0x0D, - 0xBA, - 0x02, - 0x0C, - 0xC6, - 0x02, - 0x06, - 0xCC, - 0x02, - 0x0C, - 0xD8, - 0x02, - 0x0B, - 0xE3, - 0x02, - 0x02, - 0xE5, - 0x02, - 0x05, - 0xEA, - 0x02, - 0x0A, - 0xF4, - 0x02, - 0x02, - 0xF6, - 0x02, - 0x12, - 0x08, - 0x03, - 0x0A, - 0x12, - 0x03, - 0x0C, - 0x1E, - 0x03, - 0x0C, - 0x2A, - 0x03, - 0x0D, - 0x37, - 0x03, - 0x05, - 0x3C, - 0x03, - 0x07, - 0x43, - 0x03, - 0x07, - 0x4A, - 0x03, - 0x0A, - 0x54, - 0x03, - 0x0C, - 0x60, - 0x03, - 0x12, - 0x72, - 0x03, - 0x0B, - 0x7D, - 0x03, - 0x0C, - 0x89, - 0x03, - 0x09, - 0x92, - 0x03, - 0x06, - 0x98, - 0x03, - 0x02, - 0x9A, - 0x03, - 0x06, - 0xA0, - 0x03, - 0x0B, - - /* - Bitmaps - */ - 0x6B, - 0x5F, - 0x1E, - 0x00, - 0x00, - 0x3B, - 0x20, - 0x00, - 0x00, - 0x1B, - 0x22, - 0x00, - 0x00, - 0xF3, - 0x23, - 0x00, - 0x00, - 0x2F, - 0x26, - 0x00, - 0x00, - 0xD3, - 0x2B, - 0x00, - 0x00, - 0x4F, - 0x2E, - 0x00, - 0x00, - 0xB7, - 0x35, - 0x00, - 0x00, - 0xD7, - 0x3C, - 0x00, - 0x00, - 0xFB, - 0x40, - 0x00, - 0x00, - 0x9F, - 0x45, - 0x00, - 0x00, - 0x8B, - 0x49, - 0x00, - 0x00, - 0x73, - 0x4D, - 0x00, - 0x00, - 0x97, - 0x51, - 0x00, - 0x00, - 0xB7, - 0x55, - 0x00, - 0x00, - 0xEF, - 0x59, - 0x00, - 0x00, - 0x73, - 0x5E, - 0x00, - 0x00, - 0x4B, - 0x62, - 0x00, - 0x00, - 0x57, - 0x66, - 0x00, - 0x00, - 0x77, - 0x6A, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x00, - 0xB3, - 0x71, - 0x00, - 0x00, - 0x53, - 0x75, - 0x00, - 0x00, - 0xAB, - 0x7A, - 0x00, - 0x00, - 0x77, - 0x7D, - 0x00, - 0x00, - 0xEF, - 0x81, - 0x00, - 0x00, - 0x7F, - 0x97, - 0x00, - 0x00, - 0x7B, - 0x99, - 0x00, - 0x00, - 0x77, - 0x9B, - 0x00, - 0x00, - 0x6B, - 0x9D, - 0x00, - 0x00, - 0x5B, - 0x9F, - 0x00, - 0x00, - 0x37, - 0xA1, - 0x00, - 0x00, - 0xB7, - 0xA2, - 0x00, - 0x00, - 0x03, - 0xA4, - 0x00, - 0x00, - 0x13, - 0xA5, - 0x00, - 0x00, - 0xCF, - 0xA5, - 0x00, - 0x00, - 0xDF, - 0xA6, - 0x00, - 0x00, - 0x2B, - 0xA8, - 0x00, - 0x00, - 0xAF, - 0xA9, - 0x00, - 0x00, - 0x8B, - 0xAB, - 0x00, - 0x00, - 0x7B, - 0xAD, - 0x00, - 0x00, - 0x6F, - 0xAF, - 0x00, - 0x00, - 0x6F, - 0xB1, - 0x00, - 0x00, - 0x6F, - 0xB3, - 0x00, - 0x00, - 0x6F, - 0xB5, - 0x00, - 0x00, - 0x63, - 0xB7, - 0x00, - 0x00, - 0x53, - 0xB9, - 0x00, - 0x00, - 0x2F, - 0xBB, - 0x00, - 0x00, - 0xB3, - 0xBC, - 0x00, - 0x00, - 0xFF, - 0xBD, - 0x00, - 0x00, - 0x0F, - 0xBF, - 0x00, - 0x00, - 0xCB, - 0xBF, - 0x00, - 0x00, - 0xDB, - 0xC0, - 0x00, - 0x00, - 0x27, - 0xC2, - 0x00, - 0x00, - 0xA7, - 0xC3, - 0x00, - 0x00, - 0x83, - 0xC5, - 0x00, - 0x00, - 0x73, - 0xC7, - 0x00, - 0x00, - 0x67, - 0xC9, - 0x00, - 0x00, - 0x63, - 0xCB, - 0x00, - 0x00, - 0x3B, - 0xCD, - 0x00, - 0x00, - 0xB3, - 0xD8, - 0x00, - 0x00, - 0x6B, - 0xE5, - 0x00, - 0x00, - 0x97, - 0xEE, - 0x00, - 0x00, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x5B, - 0xFE, - 0x00, - 0x00, - 0x8F, - 0x05, - 0x01, - 0x00, - 0x83, - 0x0B, - 0x01, - 0x00, - 0xDB, - 0x10, - 0x01, - 0x00, - 0xE7, - 0x14, - 0x01, - 0x00, - 0xF3, - 0x16, - 0x01, - 0x00, - 0x03, - 0x1B, - 0x01, - 0x00, - 0x5B, - 0x20, - 0x01, - 0x00, - 0x47, - 0x26, - 0x01, - 0x00, - 0x7B, - 0x2D, - 0x01, - 0x00, - 0xF7, - 0x34, - 0x01, - 0x00, - 0x5B, - 0x3D, - 0x01, - 0x00, - 0x8F, - 0x46, - 0x01, - 0x00, - 0xFB, - 0x52, - 0x01, - 0x00, - 0x4B, - 0x5E, - 0x01, - 0x00, - 0xB7, - 0x6A, - 0x01, - 0x00, - 0xEB, - 0x73, - 0x01, - 0x00, - 0x4F, - 0x7C, - 0x01, - 0x00, - 0xCB, - 0x83, - 0x01, - 0x00, - 0xFF, - 0x8A, - 0x01, - 0x00, - 0xEB, - 0x90, - 0x01, - 0x00, - 0x43, - 0x96, - 0x01, - 0x00, - 0x53, - 0x9A, - 0x01, - 0x00, - 0x5F, - 0x9C, - 0x01, - 0x00, - 0x6B, - 0xA0, - 0x01, - 0x00, - 0xC3, - 0xA5, - 0x01, - 0x00, - 0xB7, - 0xAB, - 0x01, - 0x00, - 0xEB, - 0xB2, - 0x01, - 0x00, - 0x67, - 0xBA, - 0x01, - 0x00, - 0xAF, - 0xC2, - 0x01, - 0x00, - 0xDB, - 0xCB, - 0x01, - 0x00, - 0x93, - 0xD8, - 0x01, - 0x00, - 0xA7, - 0xE8, - 0x01, - 0x00, - 0xBB, - 0xF4, - 0x01, - 0x00, - 0x87, - 0xFA, - 0x01, - 0x00, - 0x5F, - 0x02, - 0x02, - 0x00, - 0x93, - 0x09, - 0x02, - 0x00, - 0xF3, - 0x10, - 0x02, - 0x00, - 0x23, - 0x37, - 0x03, - 0x00, - 0x6B, - 0x5A, - 0x04, - 0x00, - 0xF9, - 0x89, - 0x04, - 0x00, - 0x0D, - 0xFE, - 0x04, - 0x00, - 0x8F, - 0x52, - 0x05, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x12, - 0x01, - 0x00, - 0x03, - 0x1C, - 0xA5, - 0x7D, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x12, - 0x01, - 0x00, - 0x03, - 0x4E, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x11, - 0x01, - 0x00, - 0x04, - 0x84, - 0x02, - 0x02, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x10, - 0x01, - 0x00, - 0x05, - 0x3F, - 0x02, - 0x02, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0F, - 0x01, - 0x01, - 0x6D, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0E, - 0x01, - 0x01, - 0x76, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0D, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x85, - 0x09, - 0x6D, - 0x01, - 0x8E, - 0x10, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0C, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x7F, - 0x11, - 0x02, - 0x01, - 0x0C, - 0x0F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0B, - 0x01, - 0x01, - 0x5F, - 0x01, - 0x0A, - 0x13, - 0x02, - 0x01, - 0x86, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0A, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x30, - 0x14, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x09, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xCF, - 0x15, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x09, - 0x01, - 0x01, - 0x76, - 0x16, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x09, - 0x01, - 0x01, - 0x11, - 0x16, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0A, - 0x01, - 0x01, - 0x09, - 0x15, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0A, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x85, - 0x14, - 0x02, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0B, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x10, - 0x01, - 0x1C, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0C, - 0x01, - 0x01, - 0xAB, - 0x01, - 0xC6, - 0x11, - 0x02, - 0x01, - 0x09, - 0x0F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0D, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x09, - 0x8E, - 0x01, - 0x5F, - 0x10, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0E, - 0x01, - 0x01, - 0x5F, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x0F, - 0x01, - 0x00, - 0x06, - 0x11, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x10, - 0x01, - 0x00, - 0x05, - 0x93, - 0x10, - 0x02, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x11, - 0x01, - 0x00, - 0x04, - 0x6D, - 0x02, - 0x02, - 0x4E, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x12, - 0x01, - 0x00, - 0x03, - 0x5B, - 0x02, - 0x4E, - 0x00, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x13, - 0x01, - 0x01, - 0x3F, - 0x01, - 0x76, - 0x1A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x2F, - 0x08, - 0x00, - 0x01, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x01, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x4E, - 0x01, - 0x8E, - 0x14, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x03, - 0x30, - 0x29, - 0x11, - 0x00, - 0x13, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x04, - 0x30, - 0x02, - 0x0A, - 0x5F, - 0x12, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x44, - 0xB2, - 0x00, - 0x11, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x86, - 0x10, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x30, - 0x04, - 0x02, - 0x01, - 0x49, - 0x01, - 0x1C, - 0x0F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0E, - 0x01, - 0x01, - 0x1C, - 0x0A, - 0x8E, - 0x01, - 0x7C, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x1C, - 0x0E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x11, - 0x02, - 0x01, - 0x4E, - 0x0E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x6D, - 0x13, - 0x02, - 0x01, - 0x5B, - 0x0D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x13, - 0x02, - 0x01, - 0x10, - 0x01, - 0x7D, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x93, - 0x0B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x30, - 0x01, - 0x1C, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x29, - 0x01, - 0x86, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x84, - 0x0B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x3F, - 0x14, - 0x02, - 0x01, - 0x09, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x6D, - 0x13, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1C, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0D, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x7F, - 0x11, - 0x02, - 0x01, - 0xD9, - 0x01, - 0xBE, - 0x0D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x0E, - 0x01, - 0x01, - 0x86, - 0x01, - 0x76, - 0x09, - 0x6D, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0xAB, - 0x0E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x30, - 0x04, - 0x02, - 0x01, - 0xCF, - 0x01, - 0xAB, - 0x0F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x30, - 0x5F, - 0x10, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x0A, - 0x5F, - 0x00, - 0x11, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x04, - 0x30, - 0x02, - 0x29, - 0x11, - 0x12, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x00, - 0x03, - 0x30, - 0x8A, - 0x8E, - 0x00, - 0x13, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x19, - 0x01, - 0x01, - 0x09, - 0x01, - 0x93, - 0x14, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x2F, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x37, - 0x2E, - 0x01, - 0x01, - 0x31, - 0x00, - 0x01, - 0x00, - 0x00, - 0x19, - 0x00, - 0x00, - 0x00, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCA, - 0x01, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x60, - 0x01, - 0xBD, - 0x0C, - 0x3C, - 0x01, - 0x95, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x59, - 0x4C, - 0x0F, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0xC1, - 0x00, - 0x12, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x20, - 0x10, - 0x02, - 0x94, - 0x1B, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x50, - 0x7F, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x50, - 0x02, - 0x02, - 0xA7, - 0x00, - 0x04, - 0x00, - 0x01, - 0x59, - 0x01, - 0x50, - 0x08, - 0x00, - 0x00, - 0x03, - 0xB4, - 0x02, - 0x9E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x50, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x30, - 0x10, - 0x4F, - 0x07, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x50, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x59, - 0x9E, - 0x02, - 0x02, - 0x10, - 0xA7, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x50, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x1B, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x60, - 0x05, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x50, - 0x02, - 0x0A, - 0x6C, - 0x1B, - 0xC7, - 0x00, - 0x07, - 0x02, - 0x01, - 0x3B, - 0x04, - 0x00, - 0x00, - 0x03, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x50, - 0x29, - 0x70, - 0x20, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x08, - 0x29, - 0x70, - 0x00, - 0x00, - 0x00, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x6C, - 0x3B, - 0x73, - 0x94, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xD2, - 0x50, - 0x00, - 0x00, - 0x09, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x09, - 0x04, - 0x02, - 0x00, - 0x04, - 0x64, - 0x3B, - 0x3B, - 0x7E, - 0x04, - 0x02, - 0x00, - 0x06, - 0x7E, - 0x8D, - 0x00, - 0xA0, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x00, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x10, - 0x8B, - 0x20, - 0x00, - 0x00, - 0x59, - 0x56, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6A, - 0x1B, - 0xCA, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x8B, - 0x02, - 0x02, - 0x02, - 0x64, - 0x3B, - 0x00, - 0x06, - 0x00, - 0x00, - 0x09, - 0xCC, - 0x10, - 0x02, - 0x02, - 0x02, - 0x64, - 0x98, - 0x59, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x3B, - 0x02, - 0x02, - 0x10, - 0x8B, - 0x20, - 0x08, - 0x00, - 0x00, - 0x08, - 0x3B, - 0x7E, - 0x02, - 0x02, - 0x02, - 0xCA, - 0x59, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6A, - 0x0A, - 0x64, - 0x3B, - 0x0B, - 0x00, - 0x00, - 0x07, - 0x59, - 0x56, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x20, - 0x73, - 0x1B, - 0x6C, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x06, - 0xCC, - 0x10, - 0x02, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x74, - 0x7E, - 0x6B, - 0x1B, - 0x0C, - 0x00, - 0x00, - 0x06, - 0x3B, - 0x7E, - 0x02, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x96, - 0x02, - 0x02, - 0x10, - 0x0B, - 0x02, - 0x00, - 0x07, - 0x09, - 0x1B, - 0x59, - 0x0C, - 0x02, - 0x02, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x4C, - 0x0E, - 0x02, - 0x00, - 0x07, - 0x0D, - 0x50, - 0x00, - 0x3C, - 0x10, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x6C, - 0x01, - 0xCC, - 0x0C, - 0x96, - 0x00, - 0x07, - 0x9F, - 0x8D, - 0x00, - 0x00, - 0x3B, - 0xC4, - 0x20, - 0x00, - 0x00, - 0x01, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x2E, - 0x02, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xD9, - 0x05, - 0x7C, - 0x01, - 0xD9, - 0x05, - 0x01, - 0x01, - 0xA5, - 0x05, - 0x7C, - 0x01, - 0xCF, - 0x01, - 0x78, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x7D, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x06, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x11, - 0x04, - 0x78, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0x5F, - 0x13, - 0x02, - 0x01, - 0x3F, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0A, - 0x01, - 0x00, - 0x04, - 0x8E, - 0x7D, - 0x7D, - 0x5B, - 0x13, - 0x02, - 0x00, - 0x04, - 0x09, - 0x7D, - 0x7D, - 0x6D, - 0x0A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0A, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x29, - 0x18, - 0x02, - 0x01, - 0x5B, - 0x0A, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0B, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x30, - 0x15, - 0x02, - 0x01, - 0x29, - 0x01, - 0x76, - 0x0B, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0C, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x0D, - 0x13, - 0x02, - 0x01, - 0x30, - 0x01, - 0x11, - 0x0C, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0D, - 0x01, - 0x01, - 0xE2, - 0x01, - 0x0C, - 0x11, - 0x02, - 0x01, - 0xCF, - 0x01, - 0xB2, - 0x0D, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0F, - 0x01, - 0x01, - 0x4E, - 0x10, - 0x02, - 0x01, - 0x0F, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x10, - 0x01, - 0x01, - 0x3F, - 0x01, - 0x10, - 0x0E, - 0x02, - 0x01, - 0x0F, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x11, - 0x01, - 0x01, - 0x93, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x12, - 0x01, - 0x01, - 0x11, - 0x01, - 0x30, - 0x07, - 0x02, - 0x00, - 0x06, - 0x7C, - 0x11, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x13, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0D, - 0x2A, - 0x01, - 0x29, - 0x02, - 0x02, - 0x09, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x14, - 0x01, - 0x00, - 0x0D, - 0x86, - 0x85, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x1C, - 0x01, - 0x01, - 0x11, - 0x6D, - 0x6D, - 0x2A, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x16, - 0x01, - 0x00, - 0x04, - 0x4E, - 0x0A, - 0xA5, - 0x1C, - 0x15, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2F, - 0x01, - 0x00, - 0x00, - 0x01, - 0x06, - 0x2E, - 0x01, - 0x01, - 0x06, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x07, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x2C, - 0x01, - 0x00, - 0x06, - 0x2A, - 0x11, - 0x76, - 0x8E, - 0x5F, - 0x1C, - 0x29, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x26, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x8E, - 0x4E, - 0x0D, - 0x30, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x7F, - 0xC6, - 0x0F, - 0x6D, - 0xAB, - 0x00, - 0x24, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x23, - 0x01, - 0x00, - 0x04, - 0x1C, - 0x76, - 0x09, - 0x0A, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x10, - 0x49, - 0x3F, - 0x2A, - 0x21, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x22, - 0x01, - 0x01, - 0x76, - 0x01, - 0x44, - 0x15, - 0x02, - 0x00, - 0x03, - 0x29, - 0xA5, - 0x86, - 0x00, - 0x1F, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x20, - 0x01, - 0x01, - 0x11, - 0x01, - 0x0D, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x5B, - 0x1C, - 0x00, - 0x1D, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1E, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0F, - 0x1D, - 0x02, - 0x01, - 0x44, - 0x01, - 0x11, - 0x1C, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1D, - 0x01, - 0x01, - 0x5F, - 0x01, - 0xC6, - 0x20, - 0x02, - 0x01, - 0x6D, - 0x1B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1C, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x7C, - 0x22, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x1C, - 0x19, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1B, - 0x01, - 0x01, - 0x7D, - 0x01, - 0x10, - 0x24, - 0x02, - 0x01, - 0x85, - 0x01, - 0x1C, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x01, - 0x76, - 0x01, - 0x10, - 0x26, - 0x02, - 0x01, - 0x0C, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x29, - 0x28, - 0x02, - 0x01, - 0x84, - 0x17, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x30, - 0x12, - 0x02, - 0x00, - 0x04, - 0x44, - 0x49, - 0x30, - 0x10, - 0x14, - 0x02, - 0x01, - 0x6D, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xD9, - 0x11, - 0x02, - 0x00, - 0x09, - 0x0D, - 0x78, - 0x01, - 0x01, - 0x01, - 0x86, - 0x42, - 0x85, - 0x10, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x01, - 0xB8, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x7D, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xAB, - 0x07, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x30, - 0x11, - 0x02, - 0x01, - 0xD9, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0xBE, - 0x01, - 0x30, - 0x11, - 0x02, - 0x01, - 0x4E, - 0x09, - 0x01, - 0x01, - 0x09, - 0x12, - 0x02, - 0x01, - 0x76, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0x5B, - 0x12, - 0x02, - 0x01, - 0x3F, - 0x05, - 0x01, - 0x00, - 0x05, - 0x1C, - 0x5F, - 0x1C, - 0x01, - 0x7D, - 0x00, - 0x12, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x1C, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x12, - 0x02, - 0x01, - 0x5B, - 0x05, - 0x01, - 0x00, - 0x05, - 0x0C, - 0x02, - 0x10, - 0x0D, - 0x09, - 0x00, - 0x13, - 0x02, - 0x01, - 0x7D, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x84, - 0x13, - 0x02, - 0x01, - 0x0F, - 0x05, - 0x01, - 0x01, - 0x85, - 0x17, - 0x02, - 0x01, - 0x30, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x0D, - 0x13, - 0x02, - 0x01, - 0x44, - 0x05, - 0x01, - 0x01, - 0xA5, - 0x18, - 0x02, - 0x01, - 0x11, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x2A, - 0x15, - 0x02, - 0x01, - 0x2A, - 0x04, - 0x01, - 0x01, - 0x76, - 0x18, - 0x02, - 0x01, - 0xA5, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x3F, - 0x15, - 0x02, - 0x01, - 0x6D, - 0x04, - 0x01, - 0x01, - 0x86, - 0x01, - 0x10, - 0x17, - 0x02, - 0x01, - 0xC6, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x49, - 0x15, - 0x02, - 0x01, - 0x09, - 0x05, - 0x01, - 0x01, - 0x0D, - 0x18, - 0x02, - 0x01, - 0x5F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x10, - 0x15, - 0x02, - 0x01, - 0x44, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x18, - 0x02, - 0x01, - 0x5B, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5F, - 0x17, - 0x02, - 0x01, - 0xB2, - 0x04, - 0x01, - 0x01, - 0x76, - 0x18, - 0x02, - 0x01, - 0x4E, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x8E, - 0x17, - 0x02, - 0x01, - 0x6D, - 0x04, - 0x01, - 0x01, - 0x86, - 0x18, - 0x02, - 0x01, - 0x0F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x6D, - 0x17, - 0x02, - 0x01, - 0x09, - 0x05, - 0x01, - 0x01, - 0x0D, - 0x17, - 0x02, - 0x01, - 0x49, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5B, - 0x17, - 0x02, - 0x01, - 0xC6, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x17, - 0x02, - 0x01, - 0xC6, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x4E, - 0x17, - 0x02, - 0x01, - 0x10, - 0x01, - 0x86, - 0x04, - 0x01, - 0x01, - 0x76, - 0x17, - 0x02, - 0x01, - 0x7C, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x4E, - 0x18, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0xB2, - 0x17, - 0x02, - 0x01, - 0x7C, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5B, - 0x13, - 0x02, - 0x00, - 0x06, - 0x29, - 0x5B, - 0x85, - 0x30, - 0x8A, - 0xB8, - 0x05, - 0x01, - 0x01, - 0x0A, - 0x16, - 0x02, - 0x01, - 0xC6, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x6D, - 0x14, - 0x02, - 0x01, - 0xAB, - 0x09, - 0x01, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0x49, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x8E, - 0x14, - 0x02, - 0x01, - 0x76, - 0x08, - 0x01, - 0x01, - 0x86, - 0x17, - 0x02, - 0x01, - 0x0F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x5F, - 0x14, - 0x02, - 0x01, - 0x49, - 0x01, - 0x2A, - 0x07, - 0x01, - 0x01, - 0x84, - 0x17, - 0x02, - 0x01, - 0x4E, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x1C, - 0x15, - 0x02, - 0x00, - 0x09, - 0x10, - 0x49, - 0x7D, - 0x5F, - 0x01, - 0x01, - 0x86, - 0x84, - 0x10, - 0x00, - 0x17, - 0x02, - 0x01, - 0x3F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x85, - 0x18, - 0x02, - 0x01, - 0x29, - 0x01, - 0x7C, - 0x1A, - 0x02, - 0x01, - 0x5F, - 0x11, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x3F, - 0x33, - 0x02, - 0x01, - 0xC6, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x2A, - 0x33, - 0x02, - 0x01, - 0x84, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x0D, - 0x19, - 0x02, - 0x00, - 0x05, - 0x85, - 0xB8, - 0x1C, - 0x11, - 0x0D, - 0x00, - 0x14, - 0x02, - 0x01, - 0x11, - 0x12, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x5B, - 0x18, - 0x02, - 0x01, - 0x49, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x30, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x15, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x17, - 0x02, - 0x01, - 0x11, - 0x05, - 0x01, - 0x01, - 0x76, - 0x12, - 0x02, - 0x01, - 0x42, - 0x13, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0x5B, - 0x17, - 0x02, - 0x01, - 0x86, - 0x05, - 0x01, - 0x01, - 0x2A, - 0x11, - 0x02, - 0x01, - 0x0D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x16, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0xB8, - 0x05, - 0x01, - 0x01, - 0xB8, - 0x11, - 0x02, - 0x01, - 0x93, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x6D, - 0x16, - 0x02, - 0x01, - 0x09, - 0x05, - 0x01, - 0x01, - 0x4E, - 0x10, - 0x02, - 0x01, - 0x49, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x49, - 0x15, - 0x02, - 0x00, - 0x07, - 0x10, - 0x84, - 0x1C, - 0x01, - 0x1C, - 0x84, - 0x10, - 0x00, - 0x0F, - 0x02, - 0x01, - 0x29, - 0x01, - 0x78, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x44, - 0x16, - 0x02, - 0x00, - 0x03, - 0x29, - 0x0D, - 0x7F, - 0x00, - 0x10, - 0x02, - 0x01, - 0x10, - 0x01, - 0x76, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0x78, - 0x01, - 0x7F, - 0x28, - 0x02, - 0x01, - 0x84, - 0x17, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x01, - 0x93, - 0x27, - 0x02, - 0x01, - 0x0F, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1B, - 0x01, - 0x01, - 0x42, - 0x01, - 0x8A, - 0x24, - 0x02, - 0x01, - 0x0C, - 0x01, - 0xE2, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1C, - 0x01, - 0x01, - 0x11, - 0x01, - 0x0A, - 0x22, - 0x02, - 0x01, - 0xA5, - 0x1A, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1D, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x0D, - 0x1F, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6D, - 0x1B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1E, - 0x01, - 0x00, - 0x03, - 0xE2, - 0x09, - 0x10, - 0x00, - 0x1C, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x11, - 0x1C, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x20, - 0x01, - 0x01, - 0x11, - 0x01, - 0x49, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3F, - 0x1C, - 0x00, - 0x1D, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x22, - 0x01, - 0x01, - 0x93, - 0x01, - 0xC6, - 0x15, - 0x02, - 0x00, - 0x03, - 0x29, - 0x84, - 0x1C, - 0x00, - 0x1F, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x24, - 0x01, - 0x00, - 0x03, - 0x93, - 0x09, - 0x30, - 0x00, - 0x10, - 0x02, - 0x00, - 0x03, - 0x85, - 0x3F, - 0xAB, - 0x00, - 0x21, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x27, - 0x01, - 0x00, - 0x05, - 0x11, - 0xA5, - 0x12, - 0x44, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x10, - 0x30, - 0x0D, - 0x0F, - 0x6D, - 0x1C, - 0x24, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x2C, - 0x01, - 0x00, - 0x05, - 0x1C, - 0x5F, - 0x11, - 0xB8, - 0xB2, - 0x00, - 0x2A, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x04, - 0x5B, - 0x0B, - 0x01, - 0x17, - 0x00, - 0x01, - 0x00, - 0x00, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x05, - 0x05, - 0x14, - 0x19, - 0x21, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x06, - 0x19, - 0x40, - 0x2F, - 0x31, - 0xB1, - 0x04, - 0x00, - 0x00, - 0x00, - 0x32, - 0x08, - 0x31, - 0x05, - 0x2D, - 0x00, - 0x00, - 0x14, - 0x2F, - 0x00, - 0x0E, - 0x40, - 0x37, - 0x05, - 0x18, - 0x2D, - 0x14, - 0x05, - 0x14, - 0xB1, - 0x31, - 0x2E, - 0xC3, - 0x07, - 0x14, - 0x0E, - 0x00, - 0x05, - 0x2E, - 0x2D, - 0x0E, - 0x19, - 0x00, - 0x00, - 0x63, - 0x91, - 0x00, - 0x04, - 0x63, - 0x19, - 0x0E, - 0x00, - 0x05, - 0x14, - 0x2D, - 0x2F, - 0x2E, - 0x00, - 0x07, - 0x31, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x32, - 0x2D, - 0x63, - 0x05, - 0xBC, - 0x00, - 0x00, - 0x36, - 0x08, - 0x00, - 0x16, - 0x21, - 0x0B, - 0x14, - 0x27, - 0x37, - 0x2D, - 0x19, - 0x00, - 0x27, - 0x27, - 0x21, - 0x07, - 0x00, - 0x48, - 0x14, - 0x00, - 0x14, - 0x27, - 0x37, - 0x27, - 0xDB, - 0x00, - 0x0E, - 0xD0, - 0x18, - 0x00, - 0xC8, - 0x2E, - 0x08, - 0x27, - 0x07, - 0x63, - 0x27, - 0x14, - 0xB5, - 0x7B, - 0x00, - 0x08, - 0x14, - 0x14, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x2D, - 0x63, - 0x05, - 0xBC, - 0x00, - 0x00, - 0x36, - 0x08, - 0x00, - 0xC3, - 0x17, - 0x00, - 0xC2, - 0x0E, - 0x04, - 0x00, - 0x00, - 0x13, - 0x91, - 0xD0, - 0x2D, - 0x17, - 0x00, - 0x48, - 0x14, - 0x00, - 0x37, - 0xC8, - 0x0E, - 0x07, - 0xB5, - 0x00, - 0x14, - 0x91, - 0x00, - 0x07, - 0x16, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0xC2, - 0x0E, - 0x00, - 0x2F, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x2D, - 0x63, - 0x05, - 0xBC, - 0x00, - 0x00, - 0x36, - 0x08, - 0x00, - 0xC3, - 0x17, - 0x00, - 0xC8, - 0xD0, - 0x27, - 0x7B, - 0x40, - 0x0E, - 0x16, - 0x05, - 0x2E, - 0x19, - 0x00, - 0x48, - 0x21, - 0x00, - 0x00, - 0x18, - 0x2D, - 0xC2, - 0xB5, - 0x00, - 0x14, - 0x91, - 0x00, - 0x31, - 0xC3, - 0x27, - 0x27, - 0xBC, - 0x07, - 0x27, - 0x0E, - 0x00, - 0x07, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x2D, - 0x63, - 0x05, - 0xAA, - 0x2D, - 0x07, - 0xD0, - 0x31, - 0x05, - 0xDB, - 0x07, - 0x05, - 0x19, - 0x19, - 0x05, - 0x48, - 0x08, - 0x07, - 0xD0, - 0x05, - 0x14, - 0x36, - 0x05, - 0x48, - 0xB5, - 0x14, - 0x05, - 0x37, - 0x17, - 0x08, - 0x27, - 0x05, - 0x14, - 0x91, - 0x17, - 0x00, - 0xB5, - 0x0B, - 0x07, - 0x7B, - 0x00, - 0x14, - 0x48, - 0x0B, - 0x08, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x63, - 0x14, - 0x05, - 0x91, - 0x37, - 0xC2, - 0x40, - 0x00, - 0x2C, - 0xAA, - 0x16, - 0x08, - 0x17, - 0x19, - 0x27, - 0x14, - 0x05, - 0x00, - 0x14, - 0x27, - 0x40, - 0x2D, - 0x14, - 0x19, - 0x31, - 0x91, - 0x31, - 0x2D, - 0xB1, - 0xC2, - 0x31, - 0x0E, - 0xB5, - 0xBC, - 0xC2, - 0x00, - 0x0E, - 0x36, - 0x91, - 0x2F, - 0x00, - 0x05, - 0x21, - 0xB1, - 0xC2, - 0x7B, - 0x00, - 0x00, - 0x01, - 0x05, - 0x08, - 0x00, - 0x01, - 0xC3, - 0x01, - 0x17, - 0x15, - 0x00, - 0x01, - 0x14, - 0x01, - 0x91, - 0x0A, - 0x00, - 0x01, - 0x07, - 0x01, - 0x7B, - 0x00, - 0x00, - 0x01, - 0x2E, - 0x01, - 0x08, - 0x07, - 0x00, - 0x01, - 0x14, - 0x01, - 0x05, - 0x15, - 0x00, - 0x01, - 0x07, - 0x01, - 0x18, - 0x0A, - 0x00, - 0x01, - 0x07, - 0x01, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x2C, - 0x00, - 0x01, - 0x05, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x18, - 0x0E, - 0x00, - 0x07, - 0x08, - 0x00, - 0x00, - 0x2E, - 0x00, - 0x07, - 0x19, - 0x21, - 0x2F, - 0x31, - 0x18, - 0x31, - 0x00, - 0x05, - 0x63, - 0x05, - 0x2E, - 0x00, - 0x0E, - 0x31, - 0x00, - 0x04, - 0x14, - 0x00, - 0x00, - 0x21, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x63, - 0x00, - 0x37, - 0x27, - 0x00, - 0x00, - 0xBC, - 0x00, - 0x36, - 0x19, - 0x19, - 0xDB, - 0x2D, - 0x0B, - 0xC8, - 0x04, - 0x40, - 0x19, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x2D, - 0x00, - 0x2F, - 0x16, - 0x00, - 0x00, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x63, - 0x00, - 0x37, - 0x27, - 0x00, - 0x00, - 0xBC, - 0x00, - 0x36, - 0x2D, - 0x05, - 0x2E, - 0x2D, - 0x00, - 0x08, - 0xC8, - 0x16, - 0x05, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x2D, - 0x00, - 0x2F, - 0x16, - 0x00, - 0x00, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x63, - 0x00, - 0x37, - 0x27, - 0x00, - 0x00, - 0xBC, - 0x00, - 0x17, - 0x19, - 0x27, - 0x62, - 0x2D, - 0x00, - 0x04, - 0xBC, - 0x2E, - 0x00, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x2D, - 0x00, - 0x2F, - 0x16, - 0x00, - 0x00, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x2D, - 0x16, - 0x2F, - 0x21, - 0xBC, - 0x08, - 0x07, - 0xBC, - 0x00, - 0x07, - 0x07, - 0x00, - 0x40, - 0x21, - 0x00, - 0x36, - 0x19, - 0xC8, - 0x07, - 0x00, - 0xAA, - 0x00, - 0x2E, - 0x16, - 0x0E, - 0x08, - 0xAA, - 0x14, - 0x17, - 0xBC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x19, - 0x21, - 0x2C, - 0x62, - 0x14, - 0x19, - 0x7B, - 0x2E, - 0x00, - 0x31, - 0x27, - 0x7B, - 0x27, - 0x04, - 0x08, - 0x36, - 0x00, - 0x08, - 0x91, - 0x00, - 0xB5, - 0x00, - 0x21, - 0x2E, - 0x40, - 0xB5, - 0x21, - 0x2E, - 0xC8, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x01, - 0x00, - 0x03, - 0x05, - 0x36, - 0x05, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x45, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x5A, - 0x07, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x20, - 0x01, - 0x70, - 0x31, - 0x60, - 0x01, - 0x3B, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x20, - 0x8C, - 0x0D, - 0x00, - 0x35, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x90, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x39, - 0x02, - 0x01, - 0x30, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x50, - 0x3D, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x3D, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x8C, - 0x00, - 0x3F, - 0x02, - 0x01, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x3F, - 0x02, - 0x01, - 0x29, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x20, - 0x41, - 0x02, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x70, - 0x41, - 0x02, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xD3, - 0x05, - 0x8D, - 0x01, - 0x83, - 0x01, - 0x61, - 0x05, - 0x02, - 0x01, - 0x64, - 0x01, - 0x50, - 0x05, - 0x8D, - 0x01, - 0x74, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x05, - 0x8D, - 0x01, - 0xA7, - 0x06, - 0x02, - 0x01, - 0x8B, - 0x05, - 0x8D, - 0x01, - 0x50, - 0x01, - 0x9E, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x8B, - 0x05, - 0x1B, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x98, - 0x05, - 0x1B, - 0x01, - 0x43, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3B, - 0x05, - 0x1B, - 0x01, - 0x3B, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xCC, - 0x05, - 0x1B, - 0x01, - 0x98, - 0x01, - 0x12, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x3C, - 0x05, - 0x00, - 0x01, - 0x05, - 0x01, - 0xE8, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x1B, - 0x05, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x83, - 0x05, - 0x00, - 0x01, - 0x83, - 0x01, - 0x7C, - 0x05, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x20, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x0C, - 0x05, - 0x3B, - 0x01, - 0x60, - 0x01, - 0x9E, - 0x05, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6F, - 0x05, - 0x3B, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x9F, - 0x05, - 0x3B, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0x09, - 0x05, - 0x3B, - 0x01, - 0x60, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x10, - 0x06, - 0x0D, - 0x07, - 0x02, - 0x01, - 0x64, - 0x05, - 0x0D, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x30, - 0x05, - 0x0D, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x8A, - 0x05, - 0x0D, - 0x01, - 0x9E, - 0x09, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x4F, - 0x06, - 0x00, - 0x01, - 0x8B, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x06, - 0x00, - 0x01, - 0x60, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x59, - 0x05, - 0x00, - 0x01, - 0x59, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x60, - 0x05, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x09, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x70, - 0x06, - 0x00, - 0x01, - 0x95, - 0x05, - 0x02, - 0x01, - 0x74, - 0x06, - 0x00, - 0x01, - 0x59, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x00, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x6A, - 0x06, - 0x00, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x9E, - 0x05, - 0x9F, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xCC, - 0x05, - 0x9F, - 0x01, - 0x12, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x05, - 0x9F, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x12, - 0x05, - 0x9F, - 0x01, - 0xBD, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x05, - 0xA0, - 0x01, - 0x09, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0xE8, - 0x05, - 0xA0, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x05, - 0xA0, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x01, - 0x30, - 0x05, - 0xA0, - 0x01, - 0xB4, - 0x09, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x60, - 0x06, - 0x00, - 0x01, - 0x43, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x06, - 0x00, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x01, - 0x64, - 0x01, - 0x73, - 0x05, - 0x00, - 0x01, - 0x73, - 0x01, - 0x64, - 0x05, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x8B, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x01, - 0x12, - 0x07, - 0x00, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x59, - 0x06, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x60, - 0x06, - 0x00, - 0x01, - 0x43, - 0x05, - 0x02, - 0x01, - 0x90, - 0x06, - 0x00, - 0x01, - 0x6C, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x05, - 0x00, - 0x01, - 0x05, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x50, - 0x06, - 0x00, - 0x01, - 0x8B, - 0x08, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x06, - 0x5A, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0x09, - 0x05, - 0x5A, - 0x01, - 0x9D, - 0x06, - 0x02, - 0x01, - 0x4C, - 0x05, - 0x5A, - 0x01, - 0x4C, - 0x06, - 0x02, - 0x01, - 0x30, - 0x05, - 0x5A, - 0x01, - 0xA0, - 0x09, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x41, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x07, - 0x02, - 0x01, - 0x94, - 0x01, - 0x3B, - 0x2F, - 0x20, - 0x01, - 0x50, - 0x01, - 0xA0, - 0x07, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x20, - 0x31, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x09, - 0x33, - 0x00, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x5A, - 0x33, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x61, - 0x33, - 0x00, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x60, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x31, - 0x00, - 0x01, - 0x50, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x70, - 0x08, - 0x02, - 0x01, - 0x61, - 0x2F, - 0x5A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x20, - 0x10, - 0x00, - 0x40, - 0x02, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x3F, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x3C, - 0x00, - 0x3F, - 0x02, - 0x01, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x73, - 0x0D, - 0x3D, - 0x02, - 0x01, - 0x30, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x50, - 0x3C, - 0x02, - 0x01, - 0x10, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x39, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x73, - 0xCC, - 0x61, - 0x00, - 0x34, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0D, - 0x96, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x73, - 0x01, - 0x50, - 0x31, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x20, - 0x00, - 0x01, - 0x00, - 0x00, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x12, - 0x07, - 0x00, - 0x00, - 0x5D, - 0x05, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1D, - 0x01, - 0x01, - 0xAB, - 0x23, - 0x5F, - 0x01, - 0x86, - 0x19, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x00, - 0x03, - 0x2A, - 0x0F, - 0x30, - 0x00, - 0x24, - 0x02, - 0x00, - 0x04, - 0x10, - 0x44, - 0xA5, - 0x1C, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0x93, - 0x01, - 0x7C, - 0x29, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x5F, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x0A, - 0x2B, - 0x02, - 0x01, - 0x12, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x4E, - 0x2D, - 0x02, - 0x01, - 0x6D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x0D, - 0x2D, - 0x02, - 0x01, - 0x09, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x10, - 0x2D, - 0x02, - 0x01, - 0x0D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0x0D, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xC6, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x7C, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x84, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x7C, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x84, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x07, - 0x02, - 0x00, - 0x05, - 0x0C, - 0x09, - 0x09, - 0x09, - 0xD9, - 0x00, - 0x04, - 0x02, - 0x01, - 0x44, - 0x04, - 0x09, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x0F, - 0x09, - 0x09, - 0x09, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x09, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x10, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x00, - 0x05, - 0xA5, - 0x02, - 0x02, - 0x02, - 0x85, - 0x00, - 0x05, - 0x01, - 0x04, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x06, - 0x02, - 0x00, - 0x06, - 0x7F, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x00, - 0x0A, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x7C, - 0x6D, - 0x76, - 0x76, - 0x76, - 0x84, - 0x04, - 0x02, - 0x01, - 0x09, - 0x04, - 0x76, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x2E, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x05, - 0x02, - 0x01, - 0x85, - 0x01, - 0x8E, - 0x21, - 0xB8, - 0x01, - 0x76, - 0x01, - 0xC6, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x05, - 0x02, - 0x01, - 0xB2, - 0x23, - 0x01, - 0x01, - 0x93, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x04, - 0x02, - 0x01, - 0x30, - 0x24, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0xE2, - 0x05, - 0x02, - 0x01, - 0xB2, - 0x23, - 0x01, - 0x01, - 0x93, - 0x04, - 0x02, - 0x01, - 0xC6, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x17, - 0x01, - 0x01, - 0x1C, - 0x05, - 0x02, - 0x01, - 0x85, - 0x01, - 0x8E, - 0x21, - 0xB8, - 0x01, - 0x76, - 0x01, - 0xC6, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x30, - 0x2D, - 0x02, - 0x01, - 0x0F, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x0C, - 0x2D, - 0x02, - 0x01, - 0x5B, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x18, - 0x01, - 0x01, - 0x11, - 0x01, - 0x10, - 0x2B, - 0x02, - 0x01, - 0x30, - 0x01, - 0xAB, - 0x14, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x19, - 0x01, - 0x01, - 0x84, - 0x2B, - 0x02, - 0x01, - 0x93, - 0x15, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1A, - 0x01, - 0x01, - 0x76, - 0x01, - 0x0A, - 0x27, - 0x02, - 0x01, - 0x0D, - 0x01, - 0xB8, - 0x16, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x1B, - 0x01, - 0x00, - 0x03, - 0x1C, - 0x11, - 0x3F, - 0x00, - 0x23, - 0x5B, - 0x01, - 0x42, - 0x01, - 0x5F, - 0x18, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x18, - 0x5B, - 0x01, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x2F, - 0x5B, - 0x0E, - 0x01, - 0x07, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x16, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x0A, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x05, - 0x2E, - 0x00, - 0x14, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x05, - 0x31, - 0x00, - 0x04, - 0x30, - 0x31, - 0x30, - 0x30, - 0x0C, - 0x31, - 0x00, - 0x03, - 0x30, - 0x31, - 0x30, - 0x00, - 0x06, - 0x31, - 0x01, - 0x30, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x03, - 0x26, - 0x43, - 0x26, - 0x00, - 0x04, - 0x43, - 0x00, - 0x0F, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x26, - 0x00, - 0x09, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x04, - 0x43, - 0x42, - 0x42, - 0x43, - 0x05, - 0x42, - 0x01, - 0x3C, - 0x01, - 0xF6, - 0x05, - 0x00, - 0x00, - 0x09, - 0xF7, - 0x3C, - 0x43, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x00, - 0x04, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0B, - 0x42, - 0x00, - 0x0D, - 0x29, - 0x42, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x00, - 0x07, - 0x42, - 0x01, - 0x29, - 0x01, - 0x29, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0E, - 0x29, - 0x00, - 0x0B, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x28, - 0x00, - 0x0B, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x00, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x27, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3D, - 0x00, - 0x0B, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x00, - 0x0D, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x0B, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x00, - 0x0D, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x34, - 0x01, - 0x34, - 0x05, - 0x35, - 0x00, - 0x0A, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x0D, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x05, - 0x18, - 0x00, - 0x03, - 0x34, - 0x34, - 0x34, - 0x00, - 0x05, - 0x18, - 0x01, - 0x61, - 0x01, - 0xF4, - 0x05, - 0x00, - 0x00, - 0x12, - 0x55, - 0x1A, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x10, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x18, - 0x1B, - 0x00, - 0x0D, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x20, - 0x00, - 0x05, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x0D, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x96, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x03, - 0x2E, - 0x2E, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x07, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x0F, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x0E, - 0x31, - 0x00, - 0x03, - 0x30, - 0x31, - 0x30, - 0x00, - 0x09, - 0x31, - 0x00, - 0x05, - 0x30, - 0x31, - 0x30, - 0x31, - 0x30, - 0x00, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x05, - 0x26, - 0x01, - 0x30, - 0x20, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x11, - 0x41, - 0x21, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x00, - 0x04, - 0x43, - 0x00, - 0x0B, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x43, - 0x43, - 0x26, - 0x00, - 0x08, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x08, - 0x42, - 0x01, - 0x3C, - 0x01, - 0xF6, - 0x05, - 0x00, - 0x00, - 0x07, - 0xF7, - 0x3C, - 0x43, - 0x42, - 0x42, - 0x3C, - 0xF6, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0xF7, - 0x3C, - 0x43, - 0x00, - 0x05, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x1B, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x42, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x42, - 0x42, - 0x29, - 0x29, - 0x00, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x07, - 0x29, - 0x00, - 0x17, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x29, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x08, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x28, - 0x00, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x28, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x00, - 0x08, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x27, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x27, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3D, - 0x00, - 0x17, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x00, - 0x08, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x07, - 0x3C, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x3C, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3F, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x3F, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3E, - 0x00, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x3E, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x00, - 0x08, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x07, - 0x19, - 0x00, - 0x17, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x00, - 0x08, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x00, - 0x16, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x35, - 0x35, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x08, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x06, - 0x18, - 0x01, - 0x61, - 0x01, - 0xF4, - 0x05, - 0x00, - 0x00, - 0x07, - 0x55, - 0x1A, - 0x18, - 0x18, - 0x18, - 0x61, - 0xF4, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x55, - 0x1A, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x09, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x06, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x0B, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x1C, - 0x1B, - 0x00, - 0x09, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x00, - 0x07, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x08, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xDE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x09, - 0x3A, - 0x00, - 0x04, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x05, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x2B, - 0x09, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x1B, - 0x2B, - 0x01, - 0x3B, - 0x0A, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x0F, - 0x2C, - 0x01, - 0x45, - 0x05, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x01, - 0x2F, - 0x04, - 0x45, - 0x00, - 0x0E, - 0x2F, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x0D, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x00, - 0x09, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x2D, - 0x00, - 0x04, - 0x31, - 0x00, - 0x1B, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x00, - 0x06, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x10, - 0x26, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x30, - 0x04, - 0x26, - 0x04, - 0x30, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x26, - 0x43, - 0x04, - 0x26, - 0x01, - 0x43, - 0x0A, - 0x26, - 0x00, - 0x05, - 0x43, - 0x26, - 0xF7, - 0x00, - 0x41, - 0x00, - 0x06, - 0x26, - 0x01, - 0x43, - 0x09, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x01, - 0x42, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x33, - 0x00, - 0x00, - 0x5A, - 0x0D, - 0x43, - 0x00, - 0x05, - 0x42, - 0x43, - 0x43, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x29, - 0x00, - 0x04, - 0x32, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x28, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x54, - 0x59, - 0x10, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x12, - 0x27, - 0x00, - 0x04, - 0x1A, - 0x00, - 0x00, - 0x59, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x04, - 0x41, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x00, - 0x04, - 0x37, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x08, - 0x4F, - 0x09, - 0xB8, - 0x13, - 0x13, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x08, - 0x5A, - 0x54, - 0x00, - 0xF5, - 0x59, - 0x00, - 0x00, - 0x59, - 0x0E, - 0x3E, - 0x00, - 0x04, - 0x19, - 0x3E, - 0x60, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x01, - 0x50, - 0x01, - 0xB8, - 0x04, - 0x00, - 0x01, - 0x58, - 0x10, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1A, - 0x0B, - 0x35, - 0x34, - 0x34, - 0x35, - 0x0B, - 0x34, - 0x00, - 0x13, - 0x35, - 0x34, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x00, - 0x04, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x12, - 0x18, - 0x00, - 0x04, - 0x21, - 0x00, - 0x00, - 0x58, - 0x10, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x0B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x0A, - 0x33, - 0x58, - 0x00, - 0x5C, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x05, - 0x1B, - 0x00, - 0x07, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x08, - 0x1E, - 0x00, - 0x0C, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x05, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x06, - 0x1E, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x06, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0B, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x00, - 0x03, - 0x1D, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x24, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xDA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x0B, - 0x3A, - 0x00, - 0x08, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x06, - 0x3A, - 0x01, - 0x2B, - 0x0C, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2C, - 0x45, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x13, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x45, - 0x2F, - 0x00, - 0x05, - 0x45, - 0x00, - 0x06, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x2F, - 0x0B, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0D, - 0x2E, - 0x00, - 0x06, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x0A, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x09, - 0x31, - 0x00, - 0x1F, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x08, - 0x30, - 0x01, - 0x26, - 0x04, - 0x30, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x30, - 0x00, - 0x0B, - 0x26, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x41, - 0x21, - 0x26, - 0x26, - 0x43, - 0x26, - 0x43, - 0x26, - 0x43, - 0x00, - 0x07, - 0x26, - 0x01, - 0x4F, - 0x09, - 0x00, - 0x01, - 0x37, - 0x04, - 0x26, - 0x01, - 0x43, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x01, - 0x58, - 0x09, - 0x00, - 0x01, - 0x36, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x42, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x00, - 0xF5, - 0x1B, - 0x00, - 0x13, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x05, - 0x50, - 0x00, - 0x00, - 0xF6, - 0x1C, - 0x00, - 0x12, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x28, - 0x00, - 0x05, - 0x61, - 0xF5, - 0x00, - 0xF5, - 0x61, - 0x00, - 0x11, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x11, - 0x27, - 0x00, - 0x05, - 0x4E, - 0xF5, - 0x09, - 0x00, - 0x59, - 0x00, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x05, - 0x41, - 0xF7, - 0xB3, - 0x54, - 0x58, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x14, - 0x3C, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF9, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x01, - 0x1B, - 0x04, - 0x3F, - 0x00, - 0x04, - 0x32, - 0xF5, - 0x00, - 0xF6, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x03, - 0x59, - 0x00, - 0x56, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x04, - 0x56, - 0x00, - 0x00, - 0x40, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x57, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x19, - 0x19, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x06, - 0x34, - 0x01, - 0x35, - 0x04, - 0x34, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x34, - 0x5F, - 0x00, - 0x00, - 0xF7, - 0x1E, - 0x34, - 0x58, - 0x00, - 0x00, - 0x55, - 0x00, - 0x04, - 0x34, - 0x00, - 0x04, - 0x35, - 0x35, - 0x34, - 0x35, - 0x06, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x0F, - 0x18, - 0x01, - 0x57, - 0x07, - 0x00, - 0x01, - 0x17, - 0x0E, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5C, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x17, - 0x1B, - 0x33, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x06, - 0x1E, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x06, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x08, - 0x1E, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x04, - 0x1E, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x06, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x0E, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x14, - 0x01, - 0x36, - 0x14, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x1C, - 0x11, - 0x01, - 0x0A, - 0x07, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x18, - 0x11, - 0x01, - 0xFB, - 0x07, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x16, - 0x04, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x37, - 0x5F, - 0x3A, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x00, - 0x0A, - 0x3A, - 0x00, - 0x05, - 0x2B, - 0x3A, - 0x3A, - 0x3A, - 0x2B, - 0x00, - 0x12, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x04, - 0x2C, - 0x01, - 0x45, - 0x1B, - 0x2C, - 0x00, - 0x08, - 0x45, - 0x2C, - 0x2C, - 0x45, - 0x2C, - 0x2C, - 0x61, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x5E, - 0x45, - 0x45, - 0x2F, - 0x00, - 0x15, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x2F, - 0x2F, - 0x00, - 0x04, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0A, - 0x2E, - 0x00, - 0x04, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x08, - 0x37, - 0x21, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x04, - 0x31, - 0x00, - 0x1E, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x37, - 0x21, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x00, - 0x06, - 0x30, - 0x00, - 0x0D, - 0x26, - 0x30, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x26, - 0x30, - 0x26, - 0x00, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x06, - 0x26, - 0x01, - 0x43, - 0x05, - 0x26, - 0x00, - 0x0D, - 0x43, - 0x26, - 0x26, - 0x43, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x56, - 0xB2, - 0x43, - 0x00, - 0x0B, - 0x26, - 0x00, - 0x04, - 0x43, - 0x26, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x00, - 0x04, - 0x42, - 0x43, - 0x1B, - 0xF5, - 0x06, - 0x00, - 0x01, - 0x5D, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x42, - 0x00, - 0x0A, - 0xF7, - 0x00, - 0xF5, - 0x50, - 0x42, - 0x40, - 0xF7, - 0x00, - 0x00, - 0x1B, - 0x0C, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x0B, - 0x1C, - 0x00, - 0x00, - 0xF8, - 0x29, - 0x29, - 0x29, - 0x1C, - 0x00, - 0x00, - 0x58, - 0x00, - 0x0C, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x28, - 0x00, - 0x03, - 0x1E, - 0x00, - 0xF5, - 0x00, - 0x05, - 0x28, - 0x00, - 0x03, - 0x00, - 0x00, - 0xB8, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x10, - 0x27, - 0x01, - 0x35, - 0x05, - 0x27, - 0x00, - 0x05, - 0x19, - 0x00, - 0x00, - 0x56, - 0x3D, - 0x00, - 0x0B, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0B, - 0x3D, - 0x01, - 0x3C, - 0x09, - 0x3D, - 0x00, - 0x05, - 0x34, - 0xF7, - 0x54, - 0x00, - 0x17, - 0x00, - 0x0C, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x01, - 0x59, - 0x04, - 0x00, - 0x01, - 0x53, - 0x01, - 0xF9, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3F, - 0x00, - 0x07, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x1B, - 0x00, - 0x0D, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3E, - 0x01, - 0x19, - 0x0B, - 0x3E, - 0x00, - 0x04, - 0x60, - 0xF5, - 0x00, - 0xB8, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x19, - 0x00, - 0x09, - 0x5A, - 0x56, - 0x5A, - 0x19, - 0x19, - 0x19, - 0x56, - 0x00, - 0x00, - 0x00, - 0x08, - 0x19, - 0x01, - 0x35, - 0x04, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x08, - 0x34, - 0x00, - 0x14, - 0x35, - 0x35, - 0x35, - 0x34, - 0x34, - 0x35, - 0x35, - 0x35, - 0x55, - 0x00, - 0xF6, - 0x61, - 0x34, - 0x61, - 0xF6, - 0x00, - 0xF4, - 0x34, - 0x34, - 0x35, - 0x04, - 0x34, - 0x00, - 0x08, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x10, - 0x18, - 0x01, - 0x21, - 0x07, - 0x00, - 0x01, - 0x58, - 0x0D, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x04, - 0x1B, - 0x01, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x07, - 0x17, - 0x57, - 0x00, - 0x00, - 0x00, - 0x55, - 0x5C, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x04, - 0x1F, - 0x00, - 0x17, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x00, - 0x07, - 0x1E, - 0x00, - 0x06, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x03, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x06, - 0x10, - 0x04, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x04, - 0x10, - 0x01, - 0xFA, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x0E, - 0x15, - 0x01, - 0x1D, - 0x10, - 0x15, - 0x01, - 0x1D, - 0x06, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x1A, - 0x14, - 0x01, - 0x36, - 0x0B, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x0F, - 0x12, - 0x00, - 0x05, - 0x11, - 0x12, - 0x12, - 0x12, - 0x11, - 0x00, - 0x07, - 0x12, - 0x01, - 0x11, - 0x05, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x25, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x18, - 0x2F, - 0x01, - 0x45, - 0x0D, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x2D, - 0x2D, - 0x04, - 0x2E, - 0x04, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2E, - 0x06, - 0x2D, - 0x00, - 0x16, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x06, - 0x31, - 0x01, - 0x30, - 0x14, - 0x31, - 0x01, - 0x30, - 0x0A, - 0x31, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x11, - 0x26, - 0x00, - 0x05, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x00, - 0x10, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x09, - 0x37, - 0x21, - 0x43, - 0x26, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x00, - 0x06, - 0x43, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x43, - 0x00, - 0x08, - 0x3D, - 0xF6, - 0xF6, - 0x3C, - 0x43, - 0x26, - 0x43, - 0x26, - 0x04, - 0x43, - 0x00, - 0x09, - 0x26, - 0x43, - 0x43, - 0x26, - 0x26, - 0x26, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x05, - 0x42, - 0x01, - 0x43, - 0x0A, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x50, - 0x00, - 0x00, - 0x36, - 0x00, - 0x04, - 0x42, - 0x00, - 0x04, - 0x43, - 0x42, - 0x43, - 0x43, - 0x07, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x37, - 0x16, - 0x29, - 0x42, - 0x42, - 0x29, - 0x07, - 0x42, - 0x01, - 0x29, - 0x05, - 0x42, - 0x00, - 0x0A, - 0x29, - 0x29, - 0x50, - 0x00, - 0x00, - 0x50, - 0x42, - 0x42, - 0x42, - 0x29, - 0x04, - 0x42, - 0x01, - 0x29, - 0x06, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0D, - 0x29, - 0x01, - 0x57, - 0x09, - 0x00, - 0x01, - 0xF5, - 0x01, - 0x20, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0D, - 0x28, - 0x0B, - 0x00, - 0x01, - 0x1F, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0D, - 0x27, - 0x00, - 0x0A, - 0x58, - 0x00, - 0xF6, - 0x35, - 0x27, - 0x27, - 0x17, - 0x00, - 0x00, - 0x17, - 0x0F, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3D, - 0x00, - 0x09, - 0x55, - 0x00, - 0x58, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x17, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x09, - 0x37, - 0xF6, - 0x00, - 0xF9, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x22, - 0x00, - 0x0F, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x00, - 0x08, - 0xB2, - 0x00, - 0xF5, - 0x1B, - 0x4F, - 0x00, - 0x00, - 0x4F, - 0x0F, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x10, - 0x3E, - 0x00, - 0x07, - 0x59, - 0x00, - 0xB8, - 0x60, - 0x00, - 0x00, - 0x60, - 0x00, - 0x0F, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x11, - 0x19, - 0x00, - 0x06, - 0xB8, - 0x00, - 0xB8, - 0x00, - 0x00, - 0x5F, - 0x0F, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x04, - 0x35, - 0x01, - 0x34, - 0x0C, - 0x35, - 0x00, - 0x0B, - 0x1E, - 0x55, - 0x00, - 0x00, - 0x00, - 0x5F, - 0x35, - 0x35, - 0x35, - 0x34, - 0x34, - 0x00, - 0x0A, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0x0B, - 0x18, - 0x00, - 0x06, - 0x34, - 0x00, - 0x10, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x34, - 0x18, - 0x34, - 0x34, - 0x18, - 0x4E, - 0xF4, - 0x00, - 0x00, - 0x61, - 0x0C, - 0x18, - 0x00, - 0x05, - 0x34, - 0x34, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x13, - 0x33, - 0x00, - 0x03, - 0x21, - 0x00, - 0x55, - 0x00, - 0x10, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x13, - 0x1B, - 0x01, - 0x32, - 0x05, - 0x1B, - 0x01, - 0x32, - 0x01, - 0x32, - 0x04, - 0x1B, - 0x00, - 0x03, - 0x32, - 0x1B, - 0x32, - 0x00, - 0x04, - 0x1B, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x5D, - 0x32, - 0x20, - 0x08, - 0x32, - 0x00, - 0x0E, - 0x20, - 0x32, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x20, - 0x32, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x05, - 0x20, - 0x32, - 0x32, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x06, - 0x1F, - 0x01, - 0x20, - 0x16, - 0x1F, - 0x00, - 0x0B, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x20, - 0x16, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1A, - 0xF8, - 0x1A, - 0x10, - 0x1A, - 0x10, - 0x10, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x01, - 0x1A, - 0x04, - 0x10, - 0x00, - 0x0C, - 0x1A, - 0x10, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x10, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x09, - 0x1D, - 0x01, - 0x10, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x0B, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x12, - 0x15, - 0x01, - 0x37, - 0x13, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1B, - 0x5D, - 0x13, - 0x14, - 0x13, - 0x14, - 0x14, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x10, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x0A, - 0x13, - 0x01, - 0x12, - 0x01, - 0x12, - 0x1A, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x23, - 0x12, - 0x00, - 0x04, - 0x11, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x1B, - 0x38, - 0x01, - 0x39, - 0x09, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0x21, - 0x2E, - 0x2D, - 0x2E, - 0x00, - 0x07, - 0x2D, - 0x00, - 0x1E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x08, - 0x31, - 0x00, - 0x0F, - 0x30, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x30, - 0x30, - 0x31, - 0x30, - 0x00, - 0x04, - 0x31, - 0x01, - 0x30, - 0x04, - 0x31, - 0x00, - 0x08, - 0x30, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x21, - 0x26, - 0x26, - 0x30, - 0x00, - 0x0E, - 0x26, - 0x01, - 0x30, - 0x0B, - 0x26, - 0x01, - 0x30, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x05, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x00, - 0x04, - 0x43, - 0x00, - 0x06, - 0x5A, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0x5A, - 0x08, - 0x43, - 0x00, - 0x0A, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x06, - 0x42, - 0x00, - 0x0A, - 0x43, - 0x42, - 0x42, - 0x42, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0xB8, - 0x06, - 0x00, - 0x00, - 0x08, - 0xF7, - 0x3F, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x07, - 0x42, - 0x00, - 0x03, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x06, - 0x42, - 0x01, - 0x29, - 0x06, - 0x42, - 0x00, - 0x0B, - 0x29, - 0x5D, - 0x00, - 0x00, - 0x56, - 0x3F, - 0x42, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x00, - 0x04, - 0x42, - 0x01, - 0x29, - 0x09, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0E, - 0x29, - 0x00, - 0x03, - 0x56, - 0x54, - 0xF6, - 0x00, - 0x04, - 0x29, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0E, - 0x28, - 0x00, - 0x03, - 0x61, - 0xF5, - 0x61, - 0x00, - 0x04, - 0x28, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x54, - 0x21, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x15, - 0x27, - 0x00, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x5B, - 0x0D, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3D, - 0x01, - 0x5B, - 0x01, - 0x17, - 0x04, - 0x3D, - 0x00, - 0x04, - 0x58, - 0x00, - 0x00, - 0xB2, - 0x0D, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0A, - 0xF9, - 0x00, - 0x54, - 0x56, - 0x3C, - 0x3C, - 0xF9, - 0x00, - 0x00, - 0xF6, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0A, - 0xB2, - 0x00, - 0x00, - 0x09, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB2, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0F, - 0x3E, - 0x00, - 0x08, - 0x00, - 0x00, - 0xB8, - 0xF7, - 0x53, - 0x00, - 0xB8, - 0x50, - 0x0F, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x00, - 0x03, - 0x55, - 0x54, - 0x57, - 0x00, - 0x14, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x35, - 0x00, - 0x03, - 0x56, - 0x00, - 0x55, - 0x00, - 0x04, - 0x35, - 0x01, - 0x34, - 0x0B, - 0x35, - 0x00, - 0x06, - 0x34, - 0x35, - 0x34, - 0x35, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x41, - 0x0B, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x34, - 0x00, - 0x04, - 0x18, - 0x01, - 0x58, - 0x07, - 0x00, - 0x01, - 0x55, - 0x05, - 0x18, - 0x00, - 0x0B, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x33, - 0x01, - 0xB2, - 0x01, - 0xF4, - 0x06, - 0x00, - 0x01, - 0x55, - 0x0E, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x1C, - 0x1B, - 0x01, - 0x32, - 0x09, - 0x1B, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x5D, - 0x32, - 0x20, - 0x06, - 0x32, - 0x01, - 0x20, - 0x01, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x0A, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x06, - 0x32, - 0x00, - 0x03, - 0x20, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x1F, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x09, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x0B, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x1F, - 0x1F, - 0x16, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x0C, - 0x1E, - 0x01, - 0x1A, - 0x19, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0xF8, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x06, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x10, - 0x10, - 0x10, - 0x00, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x05, - 0x1A, - 0x00, - 0x04, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x05, - 0x1A, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x1A, - 0x5C, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x0F, - 0x1D, - 0x00, - 0x08, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x15, - 0x01, - 0x37, - 0x14, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x26, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x0D, - 0x12, - 0x01, - 0x11, - 0x08, - 0x12, - 0x01, - 0x11, - 0x0A, - 0x12, - 0x00, - 0x06, - 0x11, - 0x12, - 0x12, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x76, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x04, - 0x38, - 0x00, - 0x05, - 0x39, - 0x38, - 0x38, - 0x38, - 0x39, - 0x00, - 0x06, - 0x38, - 0x01, - 0x39, - 0x06, - 0x38, - 0x01, - 0x39, - 0x0E, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x25, - 0x2C, - 0x00, - 0x03, - 0x3B, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x41, - 0x21, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x05, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2D, - 0x07, - 0x2E, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x41, - 0x21, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x0B, - 0x31, - 0x00, - 0x08, - 0x30, - 0x31, - 0x30, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x07, - 0x31, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0A, - 0x26, - 0x01, - 0x30, - 0x1B, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x26, - 0x00, - 0x0B, - 0x43, - 0x00, - 0x0E, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x37, - 0x57, - 0x00, - 0x00, - 0x00, - 0x58, - 0x18, - 0x43, - 0x26, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x26, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x43, - 0x00, - 0x05, - 0x42, - 0x00, - 0x03, - 0x50, - 0x54, - 0x54, - 0x00, - 0x05, - 0x00, - 0x00, - 0x05, - 0x36, - 0x42, - 0x43, - 0x42, - 0x43, - 0x00, - 0x04, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x37, - 0x16, - 0x42, - 0x42, - 0x29, - 0x42, - 0x42, - 0x42, - 0x29, - 0x42, - 0x42, - 0x42, - 0x29, - 0x29, - 0x42, - 0x42, - 0x42, - 0x3F, - 0xF5, - 0x00, - 0xF6, - 0x50, - 0x42, - 0x50, - 0xF5, - 0x00, - 0xF6, - 0x00, - 0x04, - 0x42, - 0x01, - 0x29, - 0x08, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x0B, - 0x5D, - 0x54, - 0x00, - 0xF8, - 0x29, - 0x29, - 0x29, - 0x59, - 0x00, - 0x00, - 0x5F, - 0x00, - 0x0C, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0F, - 0x28, - 0x00, - 0x0B, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x28, - 0x28, - 0x28, - 0x61, - 0x00, - 0x00, - 0x5C, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x27, - 0x00, - 0x0B, - 0xB8, - 0x00, - 0x00, - 0x17, - 0x27, - 0x27, - 0x27, - 0x5B, - 0x00, - 0x00, - 0x21, - 0x00, - 0x0C, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3D, - 0x00, - 0x0B, - 0xF6, - 0x09, - 0x00, - 0xF6, - 0xB2, - 0x3D, - 0x17, - 0xF6, - 0x00, - 0xF5, - 0x34, - 0x00, - 0x0C, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x06, - 0x3D, - 0x55, - 0x54, - 0xF5, - 0xF6, - 0x09, - 0x04, - 0x00, - 0x01, - 0x5B, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0A, - 0x3C, - 0xF7, - 0x00, - 0x00, - 0x15, - 0xB8, - 0x00, - 0x00, - 0x55, - 0xF9, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0F, - 0x3E, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x50, - 0x13, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x00, - 0x0B, - 0x5F, - 0x54, - 0x00, - 0x58, - 0x19, - 0x19, - 0x19, - 0x0B, - 0x54, - 0x56, - 0x3E, - 0x00, - 0x0C, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x07, - 0x35, - 0x01, - 0x34, - 0x08, - 0x35, - 0x00, - 0x0B, - 0xF7, - 0x00, - 0x00, - 0x5D, - 0x35, - 0x61, - 0xF4, - 0x00, - 0xB8, - 0x35, - 0x34, - 0x00, - 0x0B, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x06, - 0x18, - 0x00, - 0x04, - 0x34, - 0x18, - 0x4E, - 0xF4, - 0x06, - 0x00, - 0x01, - 0x17, - 0x05, - 0x18, - 0x00, - 0x0A, - 0x34, - 0x34, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x11, - 0x33, - 0x00, - 0x07, - 0x15, - 0x58, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x17, - 0x00, - 0x0E, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x1B, - 0x01, - 0x32, - 0x0A, - 0x1B, - 0x00, - 0x05, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x09, - 0x1B, - 0x00, - 0x07, - 0x32, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x05, - 0x32, - 0x00, - 0x08, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x04, - 0x20, - 0x06, - 0x32, - 0x00, - 0x04, - 0x20, - 0x32, - 0x20, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x32, - 0x01, - 0x21, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x20, - 0x00, - 0x05, - 0x1F, - 0x01, - 0x20, - 0x09, - 0x1F, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x1F, - 0x01, - 0x20, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x05, - 0x1F, - 0x01, - 0x16, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x07, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x01, - 0x1A, - 0x08, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x1E, - 0x1A, - 0x00, - 0x0B, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1A, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x10, - 0x06, - 0x1A, - 0x00, - 0x06, - 0x10, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x05, - 0x1A, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x08, - 0x1A, - 0x00, - 0x03, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5C, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x08, - 0x1D, - 0x00, - 0x03, - 0x10, - 0x10, - 0x10, - 0x00, - 0x05, - 0x1D, - 0x00, - 0x09, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x20, - 0x15, - 0x01, - 0x37, - 0x05, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x10, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x01, - 0x13, - 0x04, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3F, - 0x5F, - 0x12, - 0x00, - 0x23, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x17, - 0x12, - 0x01, - 0x11, - 0x07, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x00, - 0x03, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xCA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x21, - 0x39, - 0x00, - 0x06, - 0x2A, - 0x39, - 0x39, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x24, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2E, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x04, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x05, - 0x2F, - 0x00, - 0x07, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x0B, - 0x2D, - 0x01, - 0x31, - 0x1A, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x30, - 0x01, - 0x31, - 0x10, - 0x30, - 0x01, - 0x31, - 0x06, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x12, - 0x43, - 0x00, - 0x03, - 0xF7, - 0x00, - 0x36, - 0x00, - 0x11, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x11, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x56, - 0x11, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x11, - 0x29, - 0x00, - 0x04, - 0x3F, - 0x53, - 0x00, - 0xF6, - 0x04, - 0x29, - 0x01, - 0x42, - 0x06, - 0x29, - 0x01, - 0xD1, - 0x05, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x41, - 0xFA, - 0x28, - 0x29, - 0x28, - 0x28, - 0x29, - 0x28, - 0x29, - 0x29, - 0x06, - 0x28, - 0x00, - 0x11, - 0x29, - 0x28, - 0x28, - 0x29, - 0x55, - 0x00, - 0x00, - 0x3E, - 0x28, - 0x29, - 0x28, - 0x29, - 0x29, - 0x28, - 0x28, - 0x29, - 0x29, - 0x00, - 0x06, - 0x28, - 0x00, - 0x03, - 0x29, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xF9, - 0x28, - 0x27, - 0x28, - 0x00, - 0x04, - 0x27, - 0x00, - 0x21, - 0x28, - 0x27, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x58, - 0x00, - 0x00, - 0x4E, - 0x28, - 0x27, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x28, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x41, - 0xF9, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x27, - 0x06, - 0x3D, - 0x00, - 0x0F, - 0x4E, - 0x09, - 0x00, - 0x58, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x27, - 0x00, - 0x05, - 0x3D, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x13, - 0x3C, - 0x00, - 0x03, - 0xF7, - 0x54, - 0xF6, - 0x00, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1D, - 0xF9, - 0x3C, - 0x3C, - 0x09, - 0x3F, - 0x00, - 0x0C, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x22, - 0x54, - 0x00, - 0x4F, - 0x04, - 0x3F, - 0x00, - 0x03, - 0x3C, - 0x3F, - 0x3C, - 0x00, - 0x04, - 0x3F, - 0x00, - 0x06, - 0x3C, - 0x3F, - 0x3F, - 0x3C, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0x3E, - 0x01, - 0x3F, - 0x0E, - 0x3E, - 0x00, - 0x05, - 0x3F, - 0xF7, - 0x00, - 0x55, - 0x3F, - 0x00, - 0x0E, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x19, - 0x00, - 0x0F, - 0x3E, - 0x19, - 0x19, - 0x19, - 0x3E, - 0x19, - 0x19, - 0x3E, - 0x19, - 0x19, - 0x19, - 0x50, - 0x00, - 0x00, - 0x58, - 0x00, - 0x0B, - 0x19, - 0x00, - 0x05, - 0x3E, - 0x3E, - 0x19, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x15, - 0x35, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x61, - 0x08, - 0x35, - 0x01, - 0x19, - 0x04, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x16, - 0x34, - 0x00, - 0x04, - 0x55, - 0x00, - 0xF6, - 0x1A, - 0x0C, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x13, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x33, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0xB2, - 0xF4, - 0x00, - 0x08, - 0x00, - 0x00, - 0x0F, - 0x57, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x33, - 0x33, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x1B, - 0x01, - 0xB2, - 0x09, - 0x00, - 0x01, - 0x59, - 0x01, - 0x33, - 0x0B, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x11, - 0x1A, - 0x5D, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x01, - 0x1F, - 0x09, - 0x20, - 0x01, - 0x1F, - 0x06, - 0x20, - 0x00, - 0x03, - 0x1F, - 0x21, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x25, - 0x1E, - 0x00, - 0x03, - 0x1F, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x09, - 0x1A, - 0x01, - 0x10, - 0x09, - 0x1A, - 0x00, - 0x03, - 0x10, - 0x1A, - 0x10, - 0x00, - 0x10, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x00, - 0x0A, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0A, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x05, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x10, - 0x1D, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1B, - 0x0B, - 0x13, - 0x13, - 0x13, - 0x12, - 0x06, - 0x13, - 0x01, - 0x12, - 0x01, - 0x12, - 0x1A, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x11, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x01, - 0x11, - 0x0E, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xFE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1C, - 0x38, - 0x01, - 0x39, - 0x07, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x21, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x37, - 0x5E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x00, - 0x10, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x03, - 0x2E, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x37, - 0x21, - 0x30, - 0x30, - 0x31, - 0x30, - 0x31, - 0x00, - 0x04, - 0x30, - 0x00, - 0x08, - 0x31, - 0x30, - 0x31, - 0x30, - 0x30, - 0x31, - 0x30, - 0x31, - 0x05, - 0x30, - 0x01, - 0x31, - 0x01, - 0x31, - 0x0E, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x10, - 0x43, - 0x00, - 0x07, - 0x5A, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x58, - 0x18, - 0x00, - 0x0F, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x42, - 0x01, - 0xF7, - 0x06, - 0x00, - 0x01, - 0xF5, - 0x01, - 0x36, - 0x0E, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x29, - 0x00, - 0x0A, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x3E, - 0x42, - 0x5A, - 0x00, - 0x00, - 0xF6, - 0x0E, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xFA, - 0x28, - 0x29, - 0x29, - 0x00, - 0x04, - 0x28, - 0x00, - 0x21, - 0x29, - 0x28, - 0x28, - 0x29, - 0x29, - 0x28, - 0x29, - 0xF7, - 0x00, - 0xF5, - 0x3E, - 0x28, - 0x28, - 0x28, - 0x57, - 0x00, - 0x00, - 0x44, - 0x28, - 0x28, - 0x28, - 0x29, - 0x28, - 0x28, - 0x28, - 0x29, - 0x28, - 0x28, - 0x28, - 0x29, - 0x29, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0x27, - 0x00, - 0x1C, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x28, - 0x27, - 0x28, - 0x27, - 0x28, - 0xF6, - 0x00, - 0xB8, - 0x27, - 0x27, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x28, - 0x28, - 0x28, - 0x27, - 0x28, - 0x27, - 0x28, - 0x06, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xF9, - 0x27, - 0x3D, - 0x27, - 0x00, - 0x08, - 0x3D, - 0x00, - 0x0E, - 0x27, - 0x3D, - 0x3D, - 0x55, - 0x54, - 0xF5, - 0x27, - 0x27, - 0x3D, - 0x3D, - 0x56, - 0xB3, - 0x53, - 0x4E, - 0x05, - 0x3D, - 0x00, - 0x0A, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0B, - 0x5B, - 0x00, - 0x00, - 0xB8, - 0x3D, - 0x3D, - 0x5B, - 0x00, - 0x09, - 0xF7, - 0x3D, - 0x00, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1D, - 0xF9, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x04, - 0x3F, - 0x00, - 0x08, - 0x3C, - 0x3F, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x59, - 0x05, - 0x00, - 0x00, - 0x13, - 0x54, - 0xF7, - 0x1B, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3E, - 0x3E, - 0x3F, - 0x3E, - 0x3E, - 0x5A, - 0xF5, - 0x05, - 0x00, - 0x00, - 0x03, - 0x59, - 0x3E, - 0x3F, - 0x00, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x19, - 0x01, - 0x3E, - 0x06, - 0x19, - 0x00, - 0x0A, - 0x0B, - 0x00, - 0x00, - 0xB8, - 0x3E, - 0x19, - 0x0B, - 0x00, - 0x00, - 0x59, - 0x0D, - 0x19, - 0x00, - 0x03, - 0x3E, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x19, - 0x05, - 0x35, - 0x00, - 0x0B, - 0x5A, - 0x00, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x35, - 0xF6, - 0x00, - 0xF7, - 0x19, - 0x00, - 0x05, - 0x35, - 0x01, - 0x19, - 0x07, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0E, - 0x34, - 0x00, - 0x0A, - 0x4E, - 0x00, - 0x00, - 0xB8, - 0x34, - 0x34, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x0E, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x12, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x33, - 0x58, - 0x06, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xB2, - 0x04, - 0x18, - 0x00, - 0x04, - 0x33, - 0x18, - 0x33, - 0x33, - 0x04, - 0x18, - 0x00, - 0x04, - 0x33, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x1B, - 0x00, - 0x07, - 0x5C, - 0x55, - 0x00, - 0x00, - 0x00, - 0x57, - 0xB2, - 0x00, - 0x0F, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x5D, - 0x20, - 0x1F, - 0x04, - 0x20, - 0x00, - 0x05, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x0E, - 0x20, - 0x00, - 0x09, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x13, - 0x1A, - 0x01, - 0x10, - 0x10, - 0x1A, - 0x00, - 0x04, - 0x10, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xF8, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x05, - 0x1D, - 0x00, - 0x05, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x01, - 0x10, - 0x09, - 0x1D, - 0x00, - 0x04, - 0x10, - 0x1D, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1B, - 0x0B, - 0x13, - 0x12, - 0x0C, - 0x13, - 0x01, - 0x12, - 0x08, - 0x13, - 0x01, - 0x12, - 0x06, - 0x13, - 0x01, - 0x12, - 0x07, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x04, - 0x12, - 0x01, - 0x11, - 0x0D, - 0x12, - 0x01, - 0x11, - 0x12, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x11, - 0x11, - 0x01, - 0x0A, - 0x12, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1C, - 0x38, - 0x01, - 0x39, - 0x07, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x37, - 0x5E, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x06, - 0x2F, - 0x01, - 0x2E, - 0x04, - 0x2F, - 0x00, - 0x13, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x21, - 0x30, - 0x30, - 0x31, - 0x00, - 0x08, - 0x30, - 0x01, - 0x31, - 0x07, - 0x30, - 0x01, - 0x31, - 0x04, - 0x30, - 0x01, - 0x31, - 0x0D, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x10, - 0x43, - 0x00, - 0x07, - 0x3C, - 0x58, - 0x00, - 0x00, - 0x00, - 0x56, - 0x37, - 0x00, - 0x0F, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x42, - 0x00, - 0x04, - 0x3F, - 0xF6, - 0x54, - 0x54, - 0x04, - 0x00, - 0x01, - 0x60, - 0x0E, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0x16, - 0x29, - 0x29, - 0x42, - 0x00, - 0x04, - 0x29, - 0x01, - 0x42, - 0x04, - 0x29, - 0x00, - 0x11, - 0x42, - 0x29, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x5F, - 0x29, - 0x32, - 0xF7, - 0x00, - 0xF5, - 0x3E, - 0x29, - 0x29, - 0x29, - 0xD1, - 0x00, - 0x09, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x41, - 0xFA, - 0x29, - 0x28, - 0x29, - 0x29, - 0x28, - 0x29, - 0x28, - 0x28, - 0x29, - 0x28, - 0x29, - 0x00, - 0x04, - 0x28, - 0x00, - 0x0F, - 0x5C, - 0x00, - 0x58, - 0x28, - 0x29, - 0x28, - 0x44, - 0x00, - 0x00, - 0x5A, - 0x28, - 0x28, - 0x28, - 0x29, - 0x29, - 0x00, - 0x08, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x04, - 0x27, - 0x00, - 0x15, - 0x28, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0xF6, - 0x54, - 0x55, - 0x00, - 0x07, - 0x27, - 0x01, - 0x28, - 0x01, - 0x28, - 0x04, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x41, - 0xF9, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x1A, - 0x56, - 0x54, - 0x00, - 0x55, - 0x61, - 0x56, - 0x00, - 0x00, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x00, - 0x09, - 0x3D, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3C, - 0x01, - 0x3D, - 0x01, - 0x3D, - 0x04, - 0x3C, - 0x01, - 0x1A, - 0x01, - 0xF5, - 0x04, - 0x00, - 0x00, - 0x05, - 0x09, - 0x55, - 0x00, - 0x00, - 0x18, - 0x00, - 0x0C, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x1D, - 0xF9, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0xF7, - 0x00, - 0x00, - 0x59, - 0x3F, - 0x33, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x36, - 0x3F, - 0x3F, - 0x04, - 0x3C, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x0B, - 0x32, - 0x00, - 0x53, - 0xB8, - 0x3E, - 0x3E, - 0x3E, - 0x32, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x09, - 0x3E, - 0x00, - 0x06, - 0x3F, - 0x3E, - 0x3E, - 0x3E, - 0x60, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0xF9, - 0x3E, - 0x00, - 0x07, - 0x19, - 0x01, - 0x3E, - 0x01, - 0x3E, - 0x04, - 0x19, - 0x00, - 0x0F, - 0x1C, - 0x00, - 0x00, - 0x58, - 0x3E, - 0x19, - 0x3E, - 0x19, - 0xF6, - 0x00, - 0xF5, - 0x19, - 0x19, - 0x19, - 0x3E, - 0x00, - 0x09, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x0B, - 0x19, - 0x00, - 0x0E, - 0x35, - 0x00, - 0x0D, - 0xF5, - 0x00, - 0xB8, - 0x35, - 0x35, - 0x35, - 0x1E, - 0x00, - 0x00, - 0x56, - 0x35, - 0x35, - 0x19, - 0x00, - 0x06, - 0x35, - 0x00, - 0x06, - 0x19, - 0x35, - 0x19, - 0x19, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x34, - 0x00, - 0x0A, - 0x56, - 0x00, - 0x00, - 0x58, - 0x34, - 0x4E, - 0xF7, - 0x00, - 0x00, - 0x5E, - 0x0D, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x41, - 0x0B, - 0x33, - 0x18, - 0x18, - 0x33, - 0x05, - 0x18, - 0x00, - 0x08, - 0x33, - 0x33, - 0x33, - 0x18, - 0x33, - 0x18, - 0x1D, - 0x55, - 0x06, - 0x00, - 0x00, - 0x07, - 0x58, - 0x18, - 0x18, - 0x33, - 0x18, - 0x33, - 0x33, - 0x00, - 0x04, - 0x18, - 0x04, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x11, - 0x1B, - 0x00, - 0x06, - 0x58, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x5C, - 0x0F, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x21, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x07, - 0x20, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x07, - 0x1A, - 0x01, - 0x10, - 0x06, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x10, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xF8, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x08, - 0x1D, - 0x00, - 0x05, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x0B, - 0x1D, - 0x00, - 0x04, - 0x10, - 0x10, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1F, - 0x5C, - 0x36, - 0x14, - 0x14, - 0x36, - 0x10, - 0x14, - 0x01, - 0x36, - 0x11, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x21, - 0x13, - 0x01, - 0x12, - 0x04, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x1D, - 0x12, - 0x01, - 0x11, - 0x07, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x1A, - 0x11, - 0x01, - 0x0A, - 0x05, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x82, - 0x03, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x06, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x06, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x25, - 0x06, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x06, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x05, - 0x06, - 0x00, - 0x23, - 0xE9, - 0x09, - 0x53, - 0xE4, - 0xE9, - 0x06, - 0xEB, - 0x54, - 0xED, - 0xEB, - 0xEC, - 0xE9, - 0xED, - 0x06, - 0xEA, - 0xE4, - 0x06, - 0xEA, - 0x09, - 0x53, - 0xED, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xE4, - 0xE7, - 0xE7, - 0x53, - 0xE6, - 0x06, - 0x06, - 0x06, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0x06, - 0x06, - 0xE5, - 0x06, - 0xE8, - 0xC6, - 0xEA, - 0x06, - 0xEA, - 0x53, - 0xE7, - 0xE4, - 0xEB, - 0xE5, - 0xE4, - 0xEB, - 0xEA, - 0xED, - 0x06, - 0xE9, - 0x54, - 0xE5, - 0x53, - 0xEA, - 0xE5, - 0xED, - 0xE9, - 0xED, - 0xEB, - 0x06, - 0xE9, - 0xEA, - 0xE8, - 0x54, - 0xE8, - 0x06, - 0x06, - 0x06, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xE5, - 0x06, - 0x06, - 0x06, - 0xEA, - 0xE0, - 0x06, - 0xE5, - 0xE5, - 0xED, - 0xE6, - 0xE5, - 0xEB, - 0xED, - 0xE0, - 0xEB, - 0xE9, - 0xED, - 0xE5, - 0xEA, - 0x54, - 0xE8, - 0x00, - 0xE8, - 0x06, - 0x06, - 0x06, - 0xC6, - 0x00, - 0x54, - 0x00, - 0xEC, - 0xE8, - 0x00, - 0xE8, - 0x06, - 0xE5, - 0x06, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0x06, - 0x06, - 0x06, - 0xE5, - 0xEB, - 0xED, - 0x06, - 0x06, - 0x06, - 0xE5, - 0xE5, - 0xEC, - 0xEA, - 0xE5, - 0xE4, - 0xEB, - 0xE9, - 0x00, - 0xE6, - 0xEA, - 0xE4, - 0xE5, - 0x54, - 0xEA, - 0xE3, - 0xED, - 0xEA, - 0xED, - 0xEB, - 0xE5, - 0xEC, - 0xEB, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0x06, - 0x06, - 0x4F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x04, - 0xE5, - 0x00, - 0x24, - 0xEA, - 0xE4, - 0xE5, - 0xE5, - 0xE5, - 0xEA, - 0xE6, - 0xE8, - 0x00, - 0x00, - 0xE4, - 0xE7, - 0xEA, - 0xED, - 0xED, - 0x09, - 0xEA, - 0xE5, - 0xE9, - 0x00, - 0xE0, - 0xED, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xED, - 0xE6, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0xE5, - 0xE5, - 0x4F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0xE5, - 0x00, - 0x07, - 0xE7, - 0xC6, - 0xEA, - 0xE5, - 0xEA, - 0xC6, - 0xE6, - 0x00, - 0x15, - 0xE5, - 0x00, - 0x08, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0xE5, - 0xE5, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x05, - 0xE5, - 0x00, - 0x05, - 0xE9, - 0xE4, - 0x00, - 0xE4, - 0xE9, - 0x00, - 0x16, - 0xE5, - 0x00, - 0x08, - 0xE7, - 0x00, - 0xE6, - 0xE5, - 0xE5, - 0xE5, - 0x60, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE5, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xE3, - 0xE3, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x0B, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0x21, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0xE2, - 0x01, - 0x16, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xE2, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x24, - 0xE2, - 0x00, - 0x03, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x17, - 0x22, - 0xE2, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x9E, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0B, - 0x61, - 0x00, - 0x08, - 0x50, - 0x61, - 0x50, - 0x61, - 0x61, - 0x50, - 0x4D, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x4E, - 0x00, - 0x1D, - 0x44, - 0x00, - 0x06, - 0x4D, - 0x40, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x22, - 0x1A, - 0x00, - 0x20, - 0xC9, - 0x00, - 0x04, - 0x33, - 0x61, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x29, - 0x22, - 0xC9, - 0x00, - 0x04, - 0x28, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1F, - 0x00, - 0x25, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0xC9, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x60, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0xC9, - 0x01, - 0x50, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x16, - 0xC9, - 0x01, - 0xC8, - 0x05, - 0xC9, - 0x01, - 0xC8, - 0x05, - 0xC9, - 0x00, - 0x06, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x16, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x22, - 0x41, - 0x16, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xCA, - 0xCD, - 0xF3, - 0x53, - 0xCC, - 0xC9, - 0xCA, - 0x00, - 0xC9, - 0xCB, - 0x00, - 0x53, - 0xCD, - 0xCA, - 0xCB, - 0x00, - 0x00, - 0xCC, - 0x53, - 0xCA, - 0xC6, - 0xC9, - 0xC8, - 0xC9, - 0x04, - 0xC8, - 0x00, - 0x04, - 0xC9, - 0xC8, - 0x22, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x08, - 0xC8, - 0x00, - 0x16, - 0xCC, - 0xCD, - 0xCA, - 0xCA, - 0xCD, - 0xCC, - 0xCA, - 0x00, - 0xCB, - 0xC6, - 0xCB, - 0xC8, - 0xCB, - 0xCA, - 0xCC, - 0xCD, - 0xC8, - 0xCC, - 0xCE, - 0xCA, - 0x00, - 0xCA, - 0x08, - 0xC8, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x08, - 0xC8, - 0x00, - 0x09, - 0x00, - 0xCB, - 0xC8, - 0xC8, - 0xCB, - 0xCC, - 0xCA, - 0x00, - 0xCA, - 0x00, - 0x04, - 0x00, - 0x00, - 0x09, - 0xCB, - 0xC8, - 0xCB, - 0xCC, - 0xC6, - 0xCD, - 0xCA, - 0x00, - 0xCA, - 0x00, - 0x08, - 0xC8, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0x00, - 0xCB, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x12, - 0xCA, - 0xC6, - 0xCB, - 0x00, - 0xCB, - 0xC8, - 0xCE, - 0xCB, - 0xCB, - 0xCD, - 0xC8, - 0xCC, - 0xCD, - 0xCA, - 0xC6, - 0xCB, - 0xC8, - 0xC7, - 0x06, - 0xC8, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0xCB, - 0xC8, - 0xC7, - 0xCA, - 0xCB, - 0xCA, - 0x00, - 0xCA, - 0xCB, - 0xC6, - 0x00, - 0xCC, - 0xC7, - 0xCA, - 0xCD, - 0xC6, - 0xC6, - 0xCB, - 0xCA, - 0xC6, - 0xCD, - 0xE0, - 0xCA, - 0xC8, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC8, - 0x4F, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x06, - 0xC8, - 0x00, - 0x0F, - 0xC7, - 0xC8, - 0xCC, - 0xCD, - 0xCA, - 0xCA, - 0xCD, - 0xCC, - 0xCA, - 0xC6, - 0xCA, - 0xC7, - 0xC8, - 0xC8, - 0xC7, - 0x00, - 0x0C, - 0xC8, - 0x00, - 0x07, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0x4F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x08, - 0xC7, - 0x00, - 0x09, - 0xC8, - 0xCC, - 0x00, - 0x00, - 0xCC, - 0xC7, - 0xCA, - 0xC6, - 0xCA, - 0x00, - 0x15, - 0xC7, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x26, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x11, - 0xC7, - 0x01, - 0x05, - 0x08, - 0xC7, - 0x01, - 0x05, - 0x0B, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x05, - 0x05, - 0x00, - 0x23, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x05, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x15, - 0x05, - 0x01, - 0xCF, - 0x10, - 0x05, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0xCF, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x26, - 0xCF, - 0x01, - 0xFA, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0xCF, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x05, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x26, - 0x05, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x05, - 0x05, - 0x01, - 0xC7, - 0x04, - 0x05, - 0x00, - 0x14, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x08, - 0x05, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x04, - 0xC7, - 0x01, - 0x05, - 0x04, - 0xC7, - 0x00, - 0x15, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x00, - 0x06, - 0xC7, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0xC7, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x92, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x07, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x07, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x24, - 0x07, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x07, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x07, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0xFA, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xFA, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x23, - 0x07, - 0x00, - 0x05, - 0xBE, - 0x07, - 0x07, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x04, - 0x07, - 0x00, - 0x1D, - 0xBF, - 0x00, - 0x00, - 0x53, - 0x53, - 0x00, - 0xBB, - 0xBA, - 0x09, - 0xB9, - 0x07, - 0xBE, - 0xF5, - 0xBB, - 0x07, - 0xB9, - 0x09, - 0x09, - 0xBC, - 0x07, - 0xBC, - 0xC6, - 0xC6, - 0xBD, - 0xB9, - 0x07, - 0xBB, - 0x53, - 0xBA, - 0x00, - 0x05, - 0x07, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0x07, - 0xBE, - 0x07, - 0xBA, - 0x00, - 0xBC, - 0x07, - 0xBE, - 0xBE, - 0x07, - 0x07, - 0xB9, - 0xC6, - 0xBB, - 0x07, - 0xBA, - 0x00, - 0xBB, - 0xBE, - 0xBC, - 0x09, - 0xBE, - 0xBE, - 0xBC, - 0xB3, - 0xB9, - 0x07, - 0xBC, - 0xBF, - 0x07, - 0xBB, - 0x00, - 0xBA, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x21, - 0xBE, - 0x07, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x07, - 0x07, - 0x07, - 0xBE, - 0xBE, - 0xB9, - 0xF3, - 0xBB, - 0x07, - 0xBA, - 0x00, - 0xBB, - 0x07, - 0xBC, - 0x09, - 0xBE, - 0x07, - 0xBF, - 0xBD, - 0x07, - 0xBE, - 0x07, - 0xB9, - 0xBE, - 0xBB, - 0x00, - 0xBA, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0xBE, - 0x07, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0xBE, - 0xBE, - 0xBE, - 0x07, - 0xBE, - 0xB9, - 0x00, - 0xBB, - 0xBE, - 0xBA, - 0x53, - 0xBB, - 0xBE, - 0xBC, - 0x00, - 0xBE, - 0xBE, - 0xBF, - 0x09, - 0x00, - 0x09, - 0xC6, - 0xBF, - 0xBE, - 0xBB, - 0x00, - 0xB9, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x41, - 0xF9, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x06, - 0x00, - 0x00, - 0x17, - 0xBA, - 0xB9, - 0xC6, - 0xBD, - 0xBE, - 0xBB, - 0xB3, - 0xBB, - 0xBE, - 0xBC, - 0x00, - 0xBE, - 0xBE, - 0xBC, - 0xBF, - 0xBE, - 0xBE, - 0xBD, - 0xBF, - 0xBE, - 0xBB, - 0x00, - 0xBB, - 0x00, - 0x05, - 0xBE, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0xF9, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x05, - 0xBE, - 0x00, - 0x1D, - 0xB9, - 0x00, - 0xBB, - 0xBF, - 0xC6, - 0xBD, - 0xBE, - 0xBC, - 0x00, - 0x00, - 0x09, - 0xB9, - 0xC0, - 0xBC, - 0x00, - 0x00, - 0xBD, - 0xBA, - 0xBE, - 0xBB, - 0xC6, - 0xBD, - 0x00, - 0xBD, - 0xBE, - 0xBE, - 0xBE, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0x0B, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x0D, - 0xBE, - 0x00, - 0x03, - 0xBC, - 0x00, - 0xC0, - 0x00, - 0x10, - 0xBE, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x41, - 0x0B, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0xC6, - 0xBC, - 0x05, - 0xBE, - 0x00, - 0x0A, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBC, - 0x4C, - 0x11, - 0xBE, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x1D, - 0x0B, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBF, - 0xC6, - 0x00, - 0x00, - 0x53, - 0x00, - 0xBB, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBB, - 0xCC, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x41, - 0x0B, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0x00, - 0x0F, - 0xBE, - 0x00, - 0x08, - 0xC0, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x41, - 0x0B, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x07, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x10, - 0xC0, - 0x00, - 0x08, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0xC0, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0xC0, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0x0B, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x25, - 0xC0, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x1A, - 0xF9, - 0xC0, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x0B, - 0xC0, - 0x00, - 0x07, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x05, - 0xBE, - 0xC0, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x17, - 0x00, - 0x20, - 0xC0, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x00, - 0x04, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x0A, - 0x89, - 0x75, - 0x6E, - 0x78, - 0x77, - 0x77, - 0x78, - 0x81, - 0x72, - 0x76, - 0x1E, - 0x00, - 0x00, - 0x04, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x46, - 0x72, - 0x78, - 0x09, - 0x77, - 0x00, - 0x03, - 0x6E, - 0x76, - 0x53, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x05, - 0xF4, - 0x56, - 0x58, - 0x57, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x53, - 0x89, - 0x81, - 0x0D, - 0x77, - 0x00, - 0x03, - 0x75, - 0x53, - 0x54, - 0x00, - 0x07, - 0x00, - 0x01, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x0A, - 0x53, - 0x54, - 0x00, - 0x00, - 0xF9, - 0x5A, - 0xB8, - 0xB8, - 0x4F, - 0x56, - 0x06, - 0x00, - 0x01, - 0x53, - 0x11, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x53, - 0x89, - 0x6D, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x72, - 0x07, - 0x00, - 0x00, - 0x38, - 0x54, - 0xF7, - 0xF6, - 0xB3, - 0xB8, - 0xF4, - 0x00, - 0x55, - 0xF7, - 0x00, - 0xF3, - 0x56, - 0x57, - 0x53, - 0xF4, - 0x56, - 0x58, - 0xB8, - 0xF4, - 0x5D, - 0x56, - 0xF5, - 0xF7, - 0x22, - 0x57, - 0x55, - 0xF7, - 0x00, - 0x00, - 0x55, - 0x58, - 0xB8, - 0x55, - 0x55, - 0x00, - 0xF4, - 0x56, - 0x57, - 0x00, - 0xF5, - 0x57, - 0x58, - 0xB8, - 0xF3, - 0x00, - 0xF7, - 0x58, - 0xB8, - 0x55, - 0xF6, - 0x00, - 0xF6, - 0xF6, - 0x55, - 0x55, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x53, - 0x46, - 0x81, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x77, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x75, - 0x54, - 0x06, - 0x00, - 0x00, - 0x37, - 0x60, - 0x56, - 0xF5, - 0x44, - 0xF6, - 0x00, - 0x58, - 0x5B, - 0x00, - 0x57, - 0xB2, - 0x57, - 0xF5, - 0x60, - 0x0B, - 0x57, - 0x21, - 0xB8, - 0xF4, - 0xB2, - 0x21, - 0x5A, - 0x57, - 0xF3, - 0x58, - 0x0B, - 0x00, - 0xF5, - 0xB2, - 0x58, - 0x58, - 0x4E, - 0x59, - 0x00, - 0x58, - 0xB2, - 0x57, - 0xF5, - 0x22, - 0x5C, - 0x57, - 0x5F, - 0xB8, - 0x55, - 0x40, - 0x59, - 0x5B, - 0x40, - 0x56, - 0x53, - 0xB8, - 0x56, - 0xF9, - 0x4F, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x54, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x6E, - 0x81, - 0x81, - 0x70, - 0x6E, - 0x77, - 0x77, - 0x78, - 0x70, - 0x6E, - 0x81, - 0x6E, - 0x70, - 0x78, - 0x77, - 0x78, - 0x89, - 0x54, - 0x05, - 0x00, - 0x00, - 0x32, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF6, - 0x00, - 0x58, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x54, - 0xB8, - 0x61, - 0x54, - 0x00, - 0x54, - 0xF4, - 0x54, - 0x5F, - 0x5C, - 0x56, - 0x00, - 0x54, - 0x58, - 0x5C, - 0x00, - 0xF6, - 0x4D, - 0x55, - 0x00, - 0x59, - 0x59, - 0x00, - 0x5B, - 0x57, - 0x53, - 0x56, - 0x22, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0x59, - 0x00, - 0x54, - 0x22, - 0x56, - 0x54, - 0x04, - 0x57, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x89, - 0x78, - 0x77, - 0x77, - 0x88, - 0x00, - 0x75, - 0x72, - 0x54, - 0x53, - 0x81, - 0x64, - 0x75, - 0x00, - 0x89, - 0x6E, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x72, - 0x53, - 0x05, - 0x00, - 0x00, - 0x34, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF5, - 0x53, - 0x58, - 0x5A, - 0x00, - 0x58, - 0x59, - 0x00, - 0x56, - 0xB2, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0xF7, - 0x4F, - 0xB8, - 0x5C, - 0x5A, - 0x00, - 0x57, - 0x5C, - 0x00, - 0x00, - 0x56, - 0x60, - 0x5A, - 0x4F, - 0x58, - 0x00, - 0x5A, - 0x57, - 0x53, - 0x57, - 0x50, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0x5C, - 0x57, - 0x00, - 0x00, - 0xF9, - 0x56, - 0x53, - 0xF3, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x72, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x53, - 0x00, - 0x70, - 0x78, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x78, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x31, - 0x21, - 0x56, - 0xF4, - 0x4E, - 0xF7, - 0x54, - 0x58, - 0x5B, - 0x53, - 0x58, - 0x58, - 0x00, - 0xB8, - 0x4E, - 0xF7, - 0x55, - 0x50, - 0x56, - 0x57, - 0x5A, - 0x00, - 0x55, - 0x50, - 0x00, - 0x57, - 0x44, - 0x55, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x16, - 0x59, - 0x00, - 0x5A, - 0x57, - 0x54, - 0xB8, - 0xB2, - 0x55, - 0x55, - 0x4E, - 0xB8, - 0x57, - 0x5D, - 0x00, - 0x54, - 0xF9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x53, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x64, - 0x70, - 0x00, - 0x46, - 0x89, - 0x00, - 0x88, - 0x62, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x76, - 0x05, - 0x00, - 0x00, - 0x31, - 0x5F, - 0x56, - 0xF5, - 0xB2, - 0x5F, - 0x5A, - 0x44, - 0x56, - 0xF7, - 0x50, - 0x50, - 0x58, - 0xF3, - 0x5D, - 0x5A, - 0x58, - 0x4F, - 0xF5, - 0x55, - 0x50, - 0x57, - 0x0B, - 0xB2, - 0x56, - 0x57, - 0x60, - 0x61, - 0x57, - 0x57, - 0x5B, - 0x58, - 0x4E, - 0xB8, - 0xB8, - 0xB2, - 0x17, - 0x58, - 0xF4, - 0xF9, - 0x5A, - 0x59, - 0x5F, - 0xF4, - 0xF5, - 0x17, - 0x5C, - 0x5A, - 0x4D, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0x54, - 0x6E, - 0x63, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x05, - 0x00, - 0x00, - 0x31, - 0x55, - 0xF5, - 0xF3, - 0x55, - 0xF5, - 0x56, - 0xB8, - 0x00, - 0xF6, - 0x16, - 0xF9, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x57, - 0xB8, - 0xF6, - 0x55, - 0xF6, - 0xF6, - 0xF6, - 0xF7, - 0xF5, - 0xB8, - 0x57, - 0xF7, - 0x00, - 0x55, - 0x60, - 0xF8, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x56, - 0xB8, - 0x22, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x54, - 0x75, - 0x62, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x76, - 0x62, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x56, - 0xF7, - 0x54, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x01, - 0x58, - 0x17, - 0x00, - 0x01, - 0x59, - 0x01, - 0x57, - 0x0B, - 0x00, - 0x01, - 0x16, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x88, - 0x53, - 0x75, - 0x63, - 0x77, - 0x62, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xB8, - 0x07, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xF4, - 0x17, - 0x00, - 0x01, - 0xF5, - 0x01, - 0xF4, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x54, - 0x5A, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x78, - 0x75, - 0x81, - 0x46, - 0x54, - 0x72, - 0x64, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x0D, - 0x54, - 0x54, - 0x54, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x54, - 0x00, - 0x1A, - 0x00, - 0x01, - 0xF3, - 0x01, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x19, - 0x54, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x72, - 0x00, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x78, - 0x78, - 0x53, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x75, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x58, - 0xB8, - 0x00, - 0x55, - 0x5A, - 0x53, - 0x00, - 0x59, - 0xF7, - 0xF5, - 0x0B, - 0x5F, - 0x58, - 0x59, - 0x55, - 0x59, - 0xB8, - 0x00, - 0xF7, - 0x5B, - 0xF6, - 0x5A, - 0xF5, - 0xF7, - 0x59, - 0x00, - 0x54, - 0x5A, - 0x55, - 0x54, - 0xB8, - 0x58, - 0x00, - 0x00, - 0x00, - 0x19, - 0x00, - 0x70, - 0x77, - 0x77, - 0x77, - 0x88, - 0x00, - 0x88, - 0x72, - 0x46, - 0x54, - 0x72, - 0x67, - 0x89, - 0x54, - 0x76, - 0x72, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x88, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x60, - 0x56, - 0x00, - 0xF7, - 0x50, - 0xB3, - 0x00, - 0x4F, - 0xB8, - 0x57, - 0x60, - 0xF5, - 0x56, - 0x1A, - 0x55, - 0xF7, - 0x50, - 0x55, - 0x50, - 0xB8, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x4F, - 0x00, - 0x53, - 0x50, - 0xF7, - 0x53, - 0x56, - 0x60, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x75, - 0x77, - 0x77, - 0x62, - 0x88, - 0x04, - 0x00, - 0x00, - 0x05, - 0x89, - 0x78, - 0x63, - 0x72, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x70, - 0x62, - 0x77, - 0x81, - 0xB3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0xB3, - 0x00, - 0x5E, - 0xB8, - 0xF7, - 0x50, - 0xB8, - 0xF5, - 0x61, - 0xF7, - 0x00, - 0x57, - 0x24, - 0x58, - 0x00, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x53, - 0x17, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x4C, - 0x81, - 0x77, - 0x62, - 0x70, - 0x04, - 0x76, - 0x00, - 0x0D, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x75, - 0x76, - 0x76, - 0x76, - 0x75, - 0x78, - 0x77, - 0x77, - 0x75, - 0x00, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0x00, - 0x00, - 0x21, - 0x56, - 0x54, - 0xF7, - 0x5A, - 0x5D, - 0x40, - 0xF7, - 0x00, - 0xB8, - 0x41, - 0x56, - 0x53, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x00, - 0x22, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x76, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x6E, - 0x46, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x60, - 0xF6, - 0x56, - 0x1A, - 0x56, - 0xF6, - 0x50, - 0xB8, - 0xB3, - 0x55, - 0xF4, - 0x55, - 0x40, - 0x55, - 0xF6, - 0x50, - 0x57, - 0x50, - 0xF6, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x25, - 0xB8, - 0xF6, - 0x44, - 0x5C, - 0xF6, - 0x58, - 0x21, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x72, - 0x10, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x07, - 0x00, - 0x00, - 0x20, - 0x59, - 0x58, - 0xF9, - 0x50, - 0x57, - 0x59, - 0x17, - 0x60, - 0xF5, - 0xF4, - 0x5D, - 0x60, - 0x22, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x00, - 0x57, - 0x59, - 0xF4, - 0xF9, - 0xF5, - 0xF7, - 0x5B, - 0x5A, - 0x61, - 0x5D, - 0x57, - 0x5F, - 0xB2, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x54, - 0x70, - 0x00, - 0x0E, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x08, - 0x00, - 0x00, - 0x1F, - 0xF3, - 0x00, - 0xF3, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x53, - 0xF5, - 0x54, - 0xB3, - 0x00, - 0x54, - 0xF5, - 0x53, - 0x00, - 0xF4, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x72, - 0x01, - 0x78, - 0x0B, - 0x77, - 0x01, - 0x6E, - 0x01, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x03, - 0xF6, - 0x50, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x88, - 0x70, - 0x78, - 0x00, - 0x07, - 0x77, - 0x00, - 0x03, - 0x81, - 0x75, - 0x46, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x03, - 0xF3, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x09, - 0x89, - 0x75, - 0x70, - 0x6E, - 0x6E, - 0x70, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x77, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x02, - 0x01, - 0xBE, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x1B, - 0x60, - 0x43, - 0x00, - 0x5E, - 0x74, - 0x00, - 0x03, - 0x9F, - 0x3B, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x03, - 0x6C, - 0x09, - 0x64, - 0x00, - 0x63, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0D, - 0x8B, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x9F, - 0x29, - 0x00, - 0x68, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x6C, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x9D, - 0x00, - 0x6E, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x70, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x60, - 0x00, - 0x71, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x20, - 0x30, - 0x00, - 0x72, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x3B, - 0x73, - 0x02, - 0x01, - 0x10, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x9F, - 0x74, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xA0, - 0x74, - 0x02, - 0x01, - 0x9F, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x0D, - 0x74, - 0x02, - 0x01, - 0xA0, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x29, - 0x74, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x43, - 0x28, - 0x4F, - 0x01, - 0xCC, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0x6A, - 0x28, - 0x00, - 0x01, - 0x8D, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x11, - 0x02, - 0x01, - 0xA0, - 0x28, - 0x8B, - 0x01, - 0xA0, - 0x3A, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x9F, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x01, - 0x0F, - 0x75, - 0x59, - 0x01, - 0x97, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x75, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x7E, - 0x74, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x56, - 0x74, - 0x02, - 0x01, - 0x74, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8C, - 0x74, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xA7, - 0x74, - 0x02, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6A, - 0x73, - 0x02, - 0x01, - 0x7C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x5A, - 0x00, - 0x72, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x9D, - 0x70, - 0x02, - 0x01, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x10, - 0x00, - 0x6E, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0xCC, - 0x01, - 0x10, - 0x6C, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x64, - 0x6A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x20, - 0x8B, - 0x10, - 0x00, - 0x67, - 0x02, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x05, - 0x6A, - 0xA7, - 0x74, - 0x56, - 0xD2, - 0x00, - 0x5E, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6B, - 0x3C, - 0x6F, - 0xDC, - 0x00, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x18, - 0x01, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x0B, - 0x01, - 0x01, - 0xAB, - 0x43, - 0x5F, - 0x01, - 0x1C, - 0x0B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x07, - 0x01, - 0x00, - 0x04, - 0x1C, - 0x3F, - 0x0C, - 0x30, - 0x44, - 0x02, - 0x00, - 0x04, - 0x10, - 0xC6, - 0x09, - 0x93, - 0x08, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x06, - 0x01, - 0x01, - 0x78, - 0x01, - 0x0D, - 0x4B, - 0x02, - 0x01, - 0x09, - 0x01, - 0x1C, - 0x06, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x05, - 0x01, - 0x01, - 0x93, - 0x4E, - 0x02, - 0x01, - 0x44, - 0x01, - 0xAB, - 0x05, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x30, - 0x4F, - 0x02, - 0x01, - 0x0F, - 0x05, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0x0F, - 0x51, - 0x02, - 0x01, - 0x6D, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0xAB, - 0x00, - 0x52, - 0x02, - 0x01, - 0x0D, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x93, - 0x00, - 0x52, - 0x02, - 0x00, - 0x06, - 0x29, - 0x1C, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x84, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0xB8, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x76, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x1D, - 0x29, - 0x2A, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0x01, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x09, - 0x1D, - 0xE2, - 0x01, - 0x49, - 0x29, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x84, - 0x00, - 0x53, - 0x0D, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x76, - 0x00, - 0x53, - 0x84, - 0x00, - 0x05, - 0x5F, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0xA5, - 0x00, - 0x53, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x6D, - 0x00, - 0x52, - 0x02, - 0x00, - 0x06, - 0x10, - 0x86, - 0x01, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x00, - 0x05, - 0x31, - 0x01, - 0x01, - 0x01, - 0x5F, - 0x00, - 0x52, - 0x02, - 0x01, - 0xC6, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0xC6, - 0x51, - 0x02, - 0x01, - 0xA5, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x04, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x10, - 0x4F, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x1C, - 0x04, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x05, - 0x01, - 0x01, - 0x84, - 0x4E, - 0x02, - 0x01, - 0x10, - 0x01, - 0x11, - 0x05, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x05, - 0x01, - 0x00, - 0x03, - 0x1C, - 0x3F, - 0x29, - 0x00, - 0x4B, - 0x02, - 0x01, - 0x44, - 0x01, - 0x11, - 0x06, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x07, - 0x01, - 0x00, - 0x03, - 0x5F, - 0x85, - 0x29, - 0x00, - 0x47, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x4E, - 0x86, - 0x00, - 0x07, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x0A, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x3F, - 0x43, - 0x5B, - 0x01, - 0x6D, - 0x01, - 0x2A, - 0x0A, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x31, - 0x5B, - 0x01, - 0x01, - 0x31, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x0E, - 0x01, - 0x07, - 0x00, - 0x01, - 0x00, - 0x00, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x15, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x01, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0x59, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x05, - 0x20, - 0x6F, - 0x90, - 0x30, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x12, - 0xBD, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x14, - 0x00, - 0x00, - 0x04, - 0x1B, - 0x4F, - 0xC1, - 0x29, - 0x12, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x8B, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x00, - 0x03, - 0x20, - 0xCC, - 0x29, - 0x00, - 0x18, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x50, - 0x54, - 0x00, - 0x00, - 0x06, - 0x08, - 0x2C, - 0x62, - 0x87, - 0x40, - 0x37, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x60, - 0x01, - 0x0D, - 0x1F, - 0x02, - 0x00, - 0x03, - 0x10, - 0xA0, - 0x98, - 0x00, - 0x4F, - 0x00, - 0x00, - 0x03, - 0x37, - 0xBB, - 0xE0, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x34, - 0x45, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x8C, - 0x23, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x3B, - 0x4D, - 0x00, - 0x01, - 0x40, - 0x01, - 0x38, - 0x04, - 0x03, - 0x00, - 0x08, - 0xAF, - 0x24, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x6B, - 0x25, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x95, - 0x4C, - 0x00, - 0x00, - 0x0F, - 0x28, - 0x03, - 0x03, - 0xA6, - 0x7B, - 0x0E, - 0x00, - 0x00, - 0x17, - 0x91, - 0x58, - 0x77, - 0x03, - 0x1E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x0D, - 0x28, - 0x02, - 0x01, - 0x8B, - 0x4A, - 0x00, - 0x00, - 0x04, - 0x07, - 0x03, - 0x03, - 0x46, - 0x08, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0x70, - 0x01, - 0x7C, - 0x2A, - 0x02, - 0x01, - 0x56, - 0x01, - 0x20, - 0x49, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0xBA, - 0x05, - 0x07, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x7E, - 0x2C, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x00, - 0x00, - 0x04, - 0x37, - 0x58, - 0x58, - 0x62, - 0x04, - 0x00, - 0x00, - 0x04, - 0x51, - 0x58, - 0x58, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x07, - 0x58, - 0x58, - 0x39, - 0x06, - 0x00, - 0x00, - 0x06, - 0x05, - 0x39, - 0x15, - 0xA6, - 0x54, - 0x45, - 0x05, - 0x00, - 0x00, - 0x08, - 0x07, - 0x39, - 0x45, - 0x25, - 0x22, - 0x4B, - 0x6E, - 0x0E, - 0x04, - 0x00, - 0x00, - 0x04, - 0xD1, - 0x03, - 0x03, - 0x57, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x31, - 0x58, - 0x34, - 0x03, - 0x03, - 0x23, - 0x00, - 0x00, - 0x2C, - 0x58, - 0x58, - 0x40, - 0x07, - 0x00, - 0x00, - 0x0C, - 0x05, - 0xAE, - 0x54, - 0x25, - 0x57, - 0x16, - 0x07, - 0x00, - 0x00, - 0xAE, - 0x58, - 0x2C, - 0x06, - 0x00, - 0x00, - 0x06, - 0x37, - 0x4B, - 0x54, - 0xA6, - 0x68, - 0xAC, - 0x05, - 0x00, - 0x00, - 0x08, - 0x19, - 0x26, - 0x72, - 0xA1, - 0x72, - 0x26, - 0x16, - 0x05, - 0x07, - 0x00, - 0x00, - 0x17, - 0x07, - 0x2B, - 0x72, - 0x25, - 0x4A, - 0x2D, - 0x05, - 0x00, - 0x14, - 0x58, - 0x58, - 0x07, - 0x00, - 0x00, - 0x00, - 0x14, - 0x19, - 0x05, - 0x16, - 0x0E, - 0x2D, - 0x19, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x1B, - 0x01, - 0xCA, - 0x2E, - 0x02, - 0x01, - 0x3C, - 0x16, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x01, - 0x0E, - 0x01, - 0x9C, - 0x04, - 0x03, - 0x01, - 0x7A, - 0x04, - 0x00, - 0x01, - 0x6E, - 0x01, - 0x38, - 0x06, - 0x03, - 0x00, - 0x1A, - 0x80, - 0x23, - 0x07, - 0x00, - 0x00, - 0x05, - 0x4B, - 0x1E, - 0x03, - 0x41, - 0x62, - 0x4A, - 0x22, - 0x9B, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x8F, - 0x31, - 0x00, - 0x00, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x01, - 0x08, - 0x01, - 0x24, - 0x05, - 0x03, - 0x00, - 0x06, - 0x13, - 0x79, - 0x04, - 0x03, - 0x03, - 0x23, - 0x05, - 0x00, - 0x01, - 0x87, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x07, - 0x15, - 0x00, - 0x00, - 0x00, - 0x04, - 0x45, - 0x1E, - 0x00, - 0x06, - 0x03, - 0x01, - 0xE0, - 0x01, - 0x79, - 0x05, - 0x00, - 0x01, - 0x48, - 0x01, - 0x9C, - 0x05, - 0x03, - 0x00, - 0x11, - 0xB3, - 0x31, - 0xAE, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x26, - 0x0B, - 0x25, - 0xD1, - 0x25, - 0x58, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x6B, - 0x2F, - 0x02, - 0x01, - 0x10, - 0x01, - 0xA7, - 0x15, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x01, - 0x52, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1E, - 0xA3, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x04, - 0x03, - 0x01, - 0x9C, - 0x01, - 0xE0, - 0x04, - 0x03, - 0x00, - 0x07, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x1E, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0A, - 0x35, - 0x4B, - 0x37, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x00, - 0x0D, - 0x53, - 0x03, - 0x03, - 0x03, - 0x8F, - 0x67, - 0x03, - 0x03, - 0x03, - 0x25, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x12, - 0x17, - 0x33, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x5E, - 0x26, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x9B, - 0x66, - 0x04, - 0x03, - 0x00, - 0x1D, - 0x68, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x66, - 0x03, - 0x03, - 0x03, - 0x34, - 0xA1, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x26, - 0x0B, - 0x25, - 0x22, - 0x15, - 0x45, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0x3C, - 0x31, - 0x02, - 0x01, - 0x29, - 0x01, - 0x50, - 0x14, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x16, - 0x24, - 0x03, - 0x03, - 0xBB, - 0x08, - 0x00, - 0x05, - 0x00, - 0x00, - 0x14, - 0x3A, - 0x03, - 0x03, - 0x52, - 0x0E, - 0x00, - 0x00, - 0x2F, - 0x62, - 0xA6, - 0x03, - 0x7A, - 0x04, - 0x00, - 0x01, - 0x15, - 0x04, - 0x03, - 0x00, - 0x04, - 0x38, - 0xA1, - 0x4B, - 0x21, - 0x06, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x07, - 0x03, - 0x03, - 0x03, - 0x16, - 0x00, - 0x00, - 0x0E, - 0x26, - 0x80, - 0x03, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x23, - 0x19, - 0x03, - 0x03, - 0x3A, - 0x1A, - 0x0B, - 0x00, - 0x05, - 0x00, - 0x00, - 0x58, - 0x03, - 0x03, - 0x13, - 0x26, - 0x05, - 0x00, - 0x00, - 0x21, - 0x2B, - 0x8F, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x03, - 0x34, - 0x40, - 0x00, - 0x31, - 0x26, - 0x8F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x08, - 0x00, - 0x00, - 0x0B, - 0x51, - 0x4A, - 0x0E, - 0x34, - 0x4A, - 0x2D, - 0x34, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x32, - 0x02, - 0x01, - 0x44, - 0x01, - 0x20, - 0x13, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x04, - 0x3A, - 0x03, - 0x3A, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0xA6, - 0x03, - 0x03, - 0x54, - 0x07, - 0x00, - 0x01, - 0x87, - 0x01, - 0x68, - 0x04, - 0x00, - 0x00, - 0x05, - 0xA3, - 0x03, - 0x03, - 0x4B, - 0x08, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x2D, - 0x03, - 0x03, - 0x89, - 0x05, - 0x00, - 0x00, - 0x05, - 0x19, - 0x24, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x79, - 0x03, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x13, - 0x03, - 0x03, - 0x7B, - 0x00, - 0x06, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x23, - 0x2B, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x1E, - 0x08, - 0x04, - 0x00, - 0x00, - 0x11, - 0x37, - 0x67, - 0x03, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x7B, - 0x45, - 0x45, - 0x79, - 0x45, - 0x0E, - 0x00, - 0x4B, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x61, - 0x34, - 0x02, - 0x01, - 0x43, - 0x13, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x13, - 0x03, - 0x69, - 0x31, - 0x0D, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x1E, - 0x03, - 0x15, - 0x16, - 0x40, - 0x0B, - 0x00, - 0x08, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x1E, - 0x03, - 0x46, - 0x06, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x62, - 0x03, - 0x03, - 0x5C, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x4A, - 0x03, - 0x03, - 0x52, - 0x06, - 0x00, - 0x00, - 0x05, - 0x37, - 0x33, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x4F, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x06, - 0x99, - 0x01, - 0x02, - 0x01, - 0x3E, - 0x06, - 0x99, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x75, - 0x06, - 0x99, - 0x00, - 0x03, - 0x47, - 0x02, - 0xD7, - 0x00, - 0x06, - 0x99, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x31, - 0x03, - 0x03, - 0x46, - 0x0F, - 0x00, - 0x01, - 0x23, - 0x05, - 0x03, - 0x01, - 0x41, - 0x01, - 0x40, - 0x06, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x00, - 0x04, - 0xCD, - 0x03, - 0x03, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x58, - 0x03, - 0x03, - 0x4B, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x54, - 0x03, - 0x03, - 0x2B, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x20, - 0x01, - 0x44, - 0x07, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x03, - 0x02, - 0x02, - 0x92, - 0x00, - 0x06, - 0x03, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x00, - 0x03, - 0xB0, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x07, - 0x02, - 0x01, - 0x74, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x16, - 0x03, - 0x03, - 0x1D, - 0x0E, - 0x00, - 0x00, - 0x0A, - 0x58, - 0x03, - 0x03, - 0x03, - 0x34, - 0x82, - 0x03, - 0x03, - 0x03, - 0x51, - 0x05, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x06, - 0x00, - 0x00, - 0x0D, - 0x16, - 0x80, - 0x03, - 0x03, - 0x88, - 0x39, - 0x0B, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x72, - 0x03, - 0x03, - 0x6E, - 0x0C, - 0x00, - 0x00, - 0x04, - 0xAD, - 0x03, - 0x03, - 0xB1, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x03, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCE, - 0x02, - 0x02, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x6A, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x39, - 0x03, - 0x03, - 0x55, - 0x0A, - 0xA2, - 0x00, - 0x0F, - 0x31, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x03, - 0x35, - 0x21, - 0x00, - 0x00, - 0x16, - 0x77, - 0x03, - 0x69, - 0x2D, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x07, - 0x00, - 0x01, - 0x27, - 0x01, - 0x77, - 0x04, - 0x03, - 0x00, - 0x06, - 0x9C, - 0x53, - 0xA9, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x3A, - 0x09, - 0x13, - 0x00, - 0x07, - 0x81, - 0x00, - 0x00, - 0x65, - 0x03, - 0x03, - 0x36, - 0x00, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x06, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x90, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x01, - 0x36, - 0x0C, - 0x03, - 0x00, - 0x08, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x03, - 0x03, - 0x62, - 0x04, - 0x00, - 0x00, - 0x04, - 0x45, - 0x03, - 0x03, - 0x72, - 0x04, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x4B, - 0x08, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x39, - 0x5C, - 0x5E, - 0x06, - 0x03, - 0x01, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x01, - 0x15, - 0x0C, - 0x03, - 0x00, - 0x07, - 0xD8, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x39, - 0x00, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xA7, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x06, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x00, - 0x06, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x05, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x07, - 0x03, - 0x03, - 0x67, - 0x06, - 0x7B, - 0x00, - 0x0B, - 0x87, - 0x55, - 0x03, - 0x9C, - 0x00, - 0x00, - 0x05, - 0x77, - 0x03, - 0xAF, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x21, - 0x03, - 0x03, - 0x46, - 0x04, - 0x00, - 0x00, - 0x05, - 0x23, - 0x03, - 0x03, - 0x66, - 0x63, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x08, - 0x07, - 0x48, - 0xAE, - 0x15, - 0x24, - 0x03, - 0x03, - 0x23, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x26, - 0x03, - 0x03, - 0x54, - 0x06, - 0x7B, - 0x00, - 0x0A, - 0x45, - 0x03, - 0x03, - 0x45, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x03, - 0x23, - 0x07, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xA0, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0x99, - 0x06, - 0x03, - 0x00, - 0x04, - 0x3D, - 0x02, - 0x02, - 0xB6, - 0x06, - 0x03, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x3B, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x03, - 0x62, - 0x05, - 0x00, - 0x00, - 0x04, - 0x2C, - 0x03, - 0x03, - 0x24, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x38, - 0x03, - 0x1E, - 0x2F, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x39, - 0x03, - 0x03, - 0x5C, - 0x00, - 0x00, - 0x04, - 0x55, - 0x03, - 0x82, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x03, - 0x46, - 0x04, - 0x00, - 0x00, - 0x06, - 0x23, - 0x03, - 0x03, - 0x03, - 0x9C, - 0x31, - 0x0D, - 0x00, - 0x00, - 0x04, - 0x57, - 0x03, - 0x03, - 0x4B, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0xA3, - 0x06, - 0x00, - 0x00, - 0x0B, - 0xA1, - 0x03, - 0x03, - 0x51, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x38, - 0x05, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x7C, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0x9A, - 0x05, - 0x03, - 0x00, - 0x03, - 0xDD, - 0x02, - 0xD4, - 0x00, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x8B, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x05, - 0x38, - 0x03, - 0x03, - 0x5E, - 0x58, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x23, - 0x03, - 0x03, - 0x41, - 0x05, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x15, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x5D, - 0x03, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x46, - 0x03, - 0x03, - 0x7B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x4B, - 0x03, - 0x03, - 0x15, - 0x04, - 0x00, - 0x01, - 0x23, - 0x04, - 0x03, - 0x01, - 0x35, - 0x01, - 0x19, - 0x04, - 0x00, - 0x01, - 0x19, - 0x01, - 0x05, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x1A, - 0x04, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x06, - 0x00, - 0x00, - 0x04, - 0xB9, - 0x03, - 0x03, - 0x16, - 0x04, - 0x00, - 0x00, - 0x0C, - 0x37, - 0x1E, - 0x03, - 0x66, - 0x07, - 0x00, - 0x00, - 0x00, - 0x81, - 0x03, - 0x03, - 0x23, - 0x06, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x06, - 0x03, - 0x01, - 0xB0, - 0x01, - 0xC9, - 0x06, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x9D, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x01, - 0x38, - 0x04, - 0x03, - 0x00, - 0x22, - 0x5D, - 0xD1, - 0x27, - 0x15, - 0x13, - 0x03, - 0x03, - 0x54, - 0x00, - 0x00, - 0x40, - 0x6E, - 0x6E, - 0x1E, - 0x03, - 0x7A, - 0x6E, - 0x6E, - 0x6E, - 0x40, - 0x00, - 0x00, - 0x17, - 0x34, - 0x03, - 0x03, - 0x23, - 0x05, - 0x00, - 0x17, - 0x23, - 0x03, - 0x03, - 0x9B, - 0x04, - 0x00, - 0x00, - 0x41, - 0x4B, - 0x03, - 0x03, - 0xA9, - 0x0E, - 0x00, - 0x00, - 0x2E, - 0xBA, - 0x03, - 0x03, - 0x53, - 0x58, - 0x79, - 0x07, - 0x00, - 0x23, - 0x03, - 0x03, - 0x23, - 0x69, - 0x03, - 0x03, - 0x53, - 0x4B, - 0x0E, - 0x00, - 0xAF, - 0x7A, - 0x45, - 0x6E, - 0x19, - 0x07, - 0x16, - 0x15, - 0x03, - 0x03, - 0x03, - 0x19, - 0x00, - 0x00, - 0x62, - 0x6E, - 0x45, - 0x03, - 0x03, - 0x25, - 0x6E, - 0x6E, - 0x6E, - 0x37, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x82, - 0x7B, - 0x00, - 0x00, - 0x08, - 0x41, - 0x03, - 0x03, - 0x23, - 0x00, - 0x04, - 0x00, - 0x00, - 0x0E, - 0x2E, - 0x55, - 0x03, - 0x03, - 0x25, - 0x6E, - 0x21, - 0x27, - 0x51, - 0xA3, - 0x03, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x8B, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x06, - 0x02, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x50, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x05, - 0x38, - 0x03, - 0xA3, - 0x58, - 0x1E, - 0x00, - 0x06, - 0x03, - 0x00, - 0x05, - 0x55, - 0x19, - 0x00, - 0x00, - 0x1D, - 0x00, - 0x08, - 0x03, - 0x00, - 0x0F, - 0x25, - 0x00, - 0x00, - 0x00, - 0x27, - 0x82, - 0x03, - 0x03, - 0x1E, - 0x34, - 0x1E, - 0x03, - 0x03, - 0x7A, - 0x40, - 0x00, - 0x04, - 0x00, - 0x00, - 0x08, - 0x05, - 0xA3, - 0x03, - 0x03, - 0x13, - 0xA3, - 0xA9, - 0x1E, - 0x06, - 0x03, - 0x00, - 0x0D, - 0x21, - 0x00, - 0x23, - 0x03, - 0x03, - 0x14, - 0x6E, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x14, - 0x07, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x05, - 0x22, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x08, - 0x03, - 0x00, - 0x0F, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x03, - 0x03, - 0x66, - 0x38, - 0x03, - 0x03, - 0x03, - 0xA3, - 0x07, - 0x00, - 0x05, - 0x00, - 0x01, - 0x51, - 0x01, - 0x3A, - 0x0A, - 0x03, - 0x01, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0D, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x0B, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x43, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x10, - 0x38, - 0x03, - 0x15, - 0x00, - 0x19, - 0x41, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x77, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x08, - 0x03, - 0x01, - 0x25, - 0x04, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5C, - 0x05, - 0x03, - 0x01, - 0x88, - 0x01, - 0x08, - 0x06, - 0x00, - 0x00, - 0x03, - 0x07, - 0x23, - 0x3A, - 0x00, - 0x04, - 0x03, - 0x00, - 0x16, - 0x7A, - 0x26, - 0x26, - 0xA1, - 0x3A, - 0x3A, - 0x05, - 0x00, - 0x23, - 0x03, - 0x80, - 0x00, - 0x00, - 0x87, - 0x8F, - 0x03, - 0x13, - 0x00, - 0x0B, - 0x58, - 0x41, - 0x1E, - 0x05, - 0x03, - 0x00, - 0x07, - 0x1E, - 0x52, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x08, - 0x03, - 0x01, - 0x1A, - 0x04, - 0x00, - 0x01, - 0x16, - 0x01, - 0xBA, - 0x04, - 0x03, - 0x00, - 0x03, - 0x55, - 0x15, - 0x05, - 0x00, - 0x07, - 0x00, - 0x01, - 0x19, - 0x01, - 0x88, - 0x04, - 0x03, - 0x00, - 0x06, - 0x80, - 0xB9, - 0x13, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x29, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x01, - 0x92, - 0x0A, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x19, - 0x19, - 0x14, - 0x04, - 0x00, - 0x00, - 0x0B, - 0x2E, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x62, - 0x4A, - 0x87, - 0x0E, - 0x00, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x08, - 0x19, - 0x19, - 0x1E, - 0x03, - 0xBA, - 0x19, - 0x19, - 0x19, - 0x14, - 0x06, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x62, - 0x4A, - 0x62, - 0x0E, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x16, - 0x0E, - 0x16, - 0x58, - 0x26, - 0x16, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x27, - 0x00, - 0x00, - 0x0E, - 0x19, - 0x63, - 0x00, - 0x00, - 0x00, - 0x05, - 0x27, - 0xAC, - 0x04, - 0x00, - 0x00, - 0x07, - 0x07, - 0x91, - 0x1A, - 0x4A, - 0xC0, - 0x6E, - 0x14, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x19, - 0x19, - 0x4A, - 0x03, - 0x03, - 0x22, - 0x19, - 0x19, - 0x19, - 0x07, - 0x06, - 0x00, - 0x00, - 0x05, - 0x21, - 0x39, - 0x26, - 0x48, - 0x17, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x0A, - 0x0B, - 0x48, - 0x79, - 0x21, - 0x05, - 0x00, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x73, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x01, - 0x32, - 0x09, - 0x03, - 0x01, - 0xCE, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x6B, - 0x29, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x97, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x08, - 0x03, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x12, - 0x29, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6A, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x07, - 0x03, - 0x01, - 0x92, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x7E, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x17, - 0x4A, - 0x52, - 0x2D, - 0x16, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8D, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x09, - 0x02, - 0x01, - 0x99, - 0x06, - 0x03, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x0F, - 0x00, - 0x00, - 0x04, - 0xAE, - 0x03, - 0x03, - 0x24, - 0x16, - 0x00, - 0x00, - 0x03, - 0x55, - 0x03, - 0x34, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x03, - 0x03, - 0x15, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x09, - 0x02, - 0x01, - 0x75, - 0x01, - 0x1E, - 0x05, - 0x03, - 0x01, - 0xCE, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0B, - 0x02, - 0x01, - 0x59, - 0x0E, - 0x00, - 0x00, - 0x05, - 0x4B, - 0x03, - 0x03, - 0xAF, - 0x05, - 0x00, - 0x15, - 0x00, - 0x00, - 0x03, - 0x0B, - 0x0B, - 0x04, - 0x00, - 0x41, - 0x00, - 0x00, - 0x04, - 0x05, - 0x0B, - 0x0B, - 0x05, - 0x20, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x0A, - 0x02, - 0x01, - 0xB0, - 0x06, - 0x03, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0B, - 0x02, - 0x01, - 0x1B, - 0x0E, - 0x00, - 0x00, - 0x04, - 0x0E, - 0xA6, - 0x8F, - 0x1A, - 0x7E, - 0x00, - 0x00, - 0x04, - 0x24, - 0x03, - 0x03, - 0x08, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6C, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0xDD, - 0x00, - 0x05, - 0x03, - 0x01, - 0xD5, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x29, - 0x91, - 0x00, - 0x00, - 0x04, - 0x26, - 0x23, - 0x23, - 0x07, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x59, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x07, - 0x02, - 0x00, - 0x05, - 0xCE, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x00, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x9E, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x1B, - 0x0B, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x06, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x03, - 0xE9, - 0x75, - 0x02, - 0x02, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x05, - 0x02, - 0x00, - 0x08, - 0x75, - 0xD5, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x32, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0xA0, - 0x2C, - 0x00, - 0x00, - 0x03, - 0x04, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x30, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x05, - 0x02, - 0x00, - 0x09, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0x3E, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0x8C, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x48, - 0x33, - 0x33, - 0x52, - 0x06, - 0x00, - 0x00, - 0x04, - 0x52, - 0x33, - 0x33, - 0xB1, - 0x05, - 0x00, - 0x00, - 0x04, - 0x2F, - 0x33, - 0x33, - 0x88, - 0x04, - 0x00, - 0x00, - 0x12, - 0x21, - 0x53, - 0x5E, - 0x03, - 0x03, - 0x8F, - 0x22, - 0x2D, - 0x00, - 0x57, - 0x33, - 0x67, - 0x00, - 0x00, - 0x45, - 0x33, - 0x33, - 0x54, - 0x06, - 0x00, - 0x00, - 0x0A, - 0x40, - 0x82, - 0x33, - 0x38, - 0x63, - 0x00, - 0x48, - 0x33, - 0x33, - 0x1D, - 0x04, - 0x00, - 0x00, - 0x04, - 0x88, - 0x33, - 0x33, - 0x2F, - 0x05, - 0x00, - 0x00, - 0x04, - 0x7B, - 0x33, - 0x33, - 0x54, - 0x06, - 0x00, - 0x00, - 0x04, - 0x1D, - 0x33, - 0x33, - 0x48, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x94, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x32, - 0x0A, - 0x02, - 0x01, - 0xA7, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0C, - 0x69, - 0xAE, - 0xA6, - 0x03, - 0x33, - 0x00, - 0x00, - 0x07, - 0x34, - 0x03, - 0x03, - 0x62, - 0x04, - 0x00, - 0x00, - 0x0B, - 0x17, - 0x24, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x95, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x4D, - 0x02, - 0x02, - 0x99, - 0x06, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x1B, - 0x0F, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x2A, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x03, - 0xC5, - 0x23, - 0x62, - 0x57, - 0x5C, - 0x03, - 0x03, - 0x1E, - 0x03, - 0x33, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x03, - 0x03, - 0x7A, - 0x07, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x03, - 0xA9, - 0x05, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x98, - 0x10, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0xA8, - 0xA8, - 0xA8, - 0x3D, - 0x06, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x1E, - 0x05, - 0x03, - 0x00, - 0x05, - 0xC9, - 0xA8, - 0xA8, - 0xA8, - 0xDE, - 0x00, - 0x06, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x56, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x03, - 0x03, - 0x26, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x87, - 0x66, - 0x03, - 0x03, - 0x33, - 0x00, - 0x04, - 0x00, - 0x00, - 0x12, - 0x15, - 0x03, - 0x03, - 0x54, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0xA2, - 0x14, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x12, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x10, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x10, - 0x03, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x95, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x53, - 0x03, - 0x03, - 0x19, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x33, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x24, - 0x03, - 0x03, - 0x16, - 0x07, - 0x34, - 0x03, - 0x03, - 0x2B, - 0x04, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xCC, - 0x09, - 0x02, - 0x01, - 0xCB, - 0x0F, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0xE1, - 0x01, - 0xD5, - 0x0F, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x98, - 0x10, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x03, - 0x23, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x33, - 0x00, - 0x05, - 0x00, - 0x00, - 0x08, - 0x2D, - 0x55, - 0x03, - 0x9C, - 0x52, - 0x03, - 0x03, - 0xA6, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x09, - 0x02, - 0x01, - 0x99, - 0x0E, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x3D, - 0x0F, - 0x03, - 0x01, - 0x32, - 0x08, - 0x02, - 0x01, - 0x61, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x55, - 0x03, - 0x03, - 0x23, - 0x2F, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x33, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x04, - 0x03, - 0x01, - 0x38, - 0x01, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0x3D, - 0x0E, - 0x03, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x92, - 0x0D, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x75, - 0x08, - 0x02, - 0x01, - 0xB7, - 0x11, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x04, - 0x00, - 0x00, - 0x0C, - 0x62, - 0x3A, - 0x03, - 0x03, - 0x3A, - 0x1D, - 0xD1, - 0x87, - 0x14, - 0x03, - 0x03, - 0x33, - 0x06, - 0x00, - 0x00, - 0x06, - 0x05, - 0x89, - 0x03, - 0x03, - 0x03, - 0x7B, - 0x06, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x50, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x92, - 0x0C, - 0x03, - 0x01, - 0xB6, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xD5, - 0x0C, - 0x03, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x61, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x05, - 0x00, - 0x00, - 0x03, - 0x2C, - 0x25, - 0x1E, - 0x00, - 0x07, - 0x03, - 0x01, - 0x33, - 0x07, - 0x00, - 0x00, - 0x05, - 0x53, - 0x03, - 0x03, - 0x13, - 0x08, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0xA0, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x0B, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB0, - 0x09, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x09, - 0x02, - 0x01, - 0x60, - 0x12, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x25, - 0x06, - 0x00, - 0x00, - 0x04, - 0x25, - 0x03, - 0x03, - 0x7B, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x03, - 0x03, - 0x34, - 0x07, - 0x00, - 0x00, - 0x09, - 0x0E, - 0x58, - 0x1D, - 0x35, - 0x13, - 0x03, - 0x03, - 0x03, - 0x33, - 0x00, - 0x06, - 0x00, - 0x01, - 0x26, - 0x04, - 0x03, - 0x01, - 0x5C, - 0x06, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x65, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x6A, - 0x35, - 0x02, - 0x01, - 0x0C, - 0x13, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0xA1, - 0x06, - 0x00, - 0x00, - 0x04, - 0xA1, - 0x03, - 0x03, - 0x62, - 0x05, - 0x00, - 0x00, - 0x04, - 0x31, - 0x03, - 0x03, - 0x34, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x14, - 0x03, - 0x03, - 0x33, - 0x05, - 0x00, - 0x00, - 0x08, - 0x21, - 0x80, - 0x03, - 0x3A, - 0x89, - 0x03, - 0x03, - 0x26, - 0x05, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x04, - 0x34, - 0x03, - 0x03, - 0x31, - 0x05, - 0x00, - 0x00, - 0x04, - 0x79, - 0x03, - 0x03, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x04, - 0x5C, - 0x03, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x96, - 0x33, - 0x02, - 0x01, - 0x10, - 0x01, - 0x50, - 0x13, - 0x00, - 0x00, - 0x05, - 0x27, - 0x03, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x05, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0x03, - 0x34, - 0x2D, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x87, - 0x03, - 0x03, - 0x24, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x08, - 0x03, - 0x03, - 0x67, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x05, - 0xCD, - 0x03, - 0x03, - 0x58, - 0x14, - 0xA2, - 0x03, - 0x3A, - 0x21, - 0x04, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0x03, - 0x88, - 0x31, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x23, - 0x03, - 0x03, - 0x03, - 0x4A, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x82, - 0x03, - 0x03, - 0x91, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x9D, - 0x32, - 0x02, - 0x01, - 0x8B, - 0x14, - 0x00, - 0x01, - 0x27, - 0x04, - 0x03, - 0x00, - 0x05, - 0x22, - 0x21, - 0x00, - 0x00, - 0x87, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x13, - 0x51, - 0x07, - 0x00, - 0x07, - 0x1D, - 0x03, - 0x03, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0xAC, - 0x15, - 0x40, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0xBB, - 0x03, - 0x03, - 0xA1, - 0x04, - 0x00, - 0x00, - 0x12, - 0x23, - 0x03, - 0x03, - 0x5D, - 0x05, - 0x00, - 0xAE, - 0x03, - 0x03, - 0x89, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x34, - 0x03, - 0x03, - 0x03, - 0xBA, - 0x62, - 0x05, - 0x00, - 0x08, - 0x9B, - 0x04, - 0x03, - 0x00, - 0x09, - 0x52, - 0x14, - 0x00, - 0x00, - 0x79, - 0x03, - 0x03, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0x8D, - 0x01, - 0x7F, - 0x30, - 0x02, - 0x01, - 0x0C, - 0x15, - 0x00, - 0x00, - 0x17, - 0x27, - 0x03, - 0x03, - 0x89, - 0x1E, - 0x03, - 0x03, - 0x9B, - 0x24, - 0x03, - 0x03, - 0x03, - 0x34, - 0xB9, - 0x03, - 0x03, - 0x69, - 0xAD, - 0xA2, - 0x03, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x22, - 0x15, - 0x03, - 0x03, - 0x38, - 0xA4, - 0x54, - 0x1D, - 0x82, - 0x03, - 0x03, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x48, - 0x1E, - 0x03, - 0x80, - 0x21, - 0x00, - 0x00, - 0x00, - 0x65, - 0x03, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x04, - 0x00, - 0x00, - 0x16, - 0x34, - 0x03, - 0x7A, - 0x34, - 0x03, - 0x03, - 0x77, - 0x41, - 0x1E, - 0x03, - 0x03, - 0x03, - 0xD8, - 0x03, - 0x03, - 0x03, - 0x46, - 0x67, - 0x03, - 0x03, - 0x03, - 0x24, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x60, - 0x01, - 0x10, - 0x2E, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x15, - 0x00, - 0x00, - 0x06, - 0x27, - 0x03, - 0x03, - 0x87, - 0x36, - 0x34, - 0x05, - 0x03, - 0x00, - 0x04, - 0x69, - 0x2D, - 0x05, - 0x15, - 0x06, - 0x03, - 0x01, - 0x8F, - 0x01, - 0x04, - 0x04, - 0x00, - 0x01, - 0x15, - 0x01, - 0x5E, - 0x08, - 0x03, - 0x00, - 0x09, - 0x53, - 0x00, - 0x00, - 0x00, - 0x07, - 0xE0, - 0x03, - 0x03, - 0x58, - 0x00, - 0x04, - 0x00, - 0x00, - 0x0B, - 0x08, - 0x13, - 0x03, - 0x55, - 0x2D, - 0x00, - 0x00, - 0x27, - 0x03, - 0x03, - 0x65, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0xA6, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x03, - 0x00, - 0x04, - 0x15, - 0x00, - 0x62, - 0x82, - 0x05, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x62, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x43, - 0x2D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x16, - 0x00, - 0x00, - 0x16, - 0x19, - 0x25, - 0x25, - 0x08, - 0x00, - 0x07, - 0x2B, - 0x22, - 0x7A, - 0x9B, - 0x15, - 0x27, - 0x00, - 0x00, - 0x00, - 0x40, - 0x23, - 0xA4, - 0x77, - 0x46, - 0x15, - 0x07, - 0x06, - 0x00, - 0x00, - 0x09, - 0x31, - 0xC0, - 0x1D, - 0x89, - 0x7A, - 0xA2, - 0x8F, - 0xA3, - 0x1A, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x79, - 0x25, - 0x25, - 0x72, - 0x06, - 0x00, - 0x00, - 0x0A, - 0x1A, - 0x25, - 0x25, - 0x57, - 0x00, - 0x00, - 0x19, - 0x25, - 0x25, - 0x4B, - 0x04, - 0x00, - 0x00, - 0x15, - 0x72, - 0x25, - 0x39, - 0x00, - 0x00, - 0x16, - 0xBB, - 0x46, - 0xAF, - 0xA6, - 0x26, - 0x05, - 0x00, - 0x00, - 0x0E, - 0xAE, - 0xA6, - 0x38, - 0x34, - 0x53, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0xA0, - 0x2C, - 0x02, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x74, - 0x29, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x01, - 0x4F, - 0x01, - 0x8A, - 0x26, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x53, - 0x00, - 0x01, - 0x05, - 0x01, - 0x08, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x24, - 0x02, - 0x01, - 0x56, - 0x01, - 0x1B, - 0x53, - 0x00, - 0x00, - 0x04, - 0x19, - 0x82, - 0x03, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x21, - 0x02, - 0x01, - 0x10, - 0x01, - 0x74, - 0x55, - 0x00, - 0x00, - 0x05, - 0x23, - 0x03, - 0x03, - 0x80, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x01, - 0x4F, - 0x01, - 0x44, - 0x1E, - 0x02, - 0x01, - 0x94, - 0x01, - 0x83, - 0x56, - 0x00, - 0x00, - 0x04, - 0x27, - 0x03, - 0x03, - 0x53, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x03, - 0x20, - 0x43, - 0x7C, - 0x00, - 0x1A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x59, - 0x00, - 0x00, - 0x03, - 0x2E, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x00, - 0x00, - 0x03, - 0x1B, - 0xC4, - 0x64, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x10, - 0x4C, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x16, - 0x00, - 0x00, - 0x04, - 0x83, - 0xBD, - 0x61, - 0x10, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x29, - 0xC1, - 0x4F, - 0x97, - 0x00, - 0x00, - 0x00, - 0x02, - 0x19, - 0x00, - 0x00, - 0x10, - 0x98, - 0x4F, - 0xC4, - 0x5A, - 0x56, - 0x0D, - 0x0A, - 0x02, - 0x10, - 0x7E, - 0x12, - 0x6B, - 0x8B, - 0x43, - 0x6F, - 0x20, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xEE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0x10, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xCA, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x10, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x50, - 0x10, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x73, - 0x9E, - 0x02, - 0xD7, - 0xDE, - 0x47, - 0xD7, - 0x99, - 0x47, - 0x02, - 0x10, - 0xD7, - 0x99, - 0x47, - 0x3E, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3C, - 0x02, - 0x10, - 0xA8, - 0x03, - 0xD5, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x8A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x10, - 0x3D, - 0x03, - 0x5E, - 0xB0, - 0x03, - 0x5E, - 0x4D, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x29, - 0x02, - 0x29, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x47, - 0x10, - 0xD7, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x10, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x8A, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x10, - 0x32, - 0x03, - 0x03, - 0x02, - 0x29, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x5E, - 0xD7, - 0xB6, - 0x5E, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0xE4, - 0x10, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x3E, - 0x10, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0x92, - 0x92, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0x92, - 0x92, - 0x47, - 0x02, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x09, - 0x05, - 0x05, - 0x43, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x6A, - 0xC7, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x43, - 0x8A, - 0x02, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x64, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x83, - 0x6B, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x3B, - 0x4F, - 0x83, - 0x73, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xEE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0x10, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xCA, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x10, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x50, - 0x10, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x73, - 0x9E, - 0x02, - 0xD7, - 0xDE, - 0x47, - 0xD7, - 0x99, - 0x47, - 0x02, - 0x10, - 0xD7, - 0x99, - 0x47, - 0x3E, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3C, - 0x02, - 0x10, - 0xA8, - 0x03, - 0xD5, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x8A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x10, - 0x3D, - 0x03, - 0x5E, - 0xB0, - 0x03, - 0x5E, - 0x4D, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x29, - 0x02, - 0x29, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x47, - 0x10, - 0xD7, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x10, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x8A, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x10, - 0x32, - 0x03, - 0x03, - 0x02, - 0x29, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x5E, - 0xD7, - 0xB6, - 0x5E, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0xE4, - 0x10, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x3E, - 0x10, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0x92, - 0x92, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0x92, - 0x92, - 0x47, - 0x02, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x09, - 0x05, - 0x05, - 0x43, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x6A, - 0xC7, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x43, - 0x8A, - 0x02, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x64, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x83, - 0x6B, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x3B, - 0x4F, - 0x83, - 0x73, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x8D, - 0x95, - 0xE4, - 0x64, - 0x02, - 0xC7, - 0x96, - 0x6F, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x0A, - 0x00, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x7E, - 0x43, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x6B, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xDF, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x75, - 0x3D, - 0xDE, - 0xD4, - 0x47, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x99, - 0x3D, - 0xA8, - 0x99, - 0xD7, - 0x02, - 0xA0, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0x90, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0xCB, - 0x1F, - 0x47, - 0x75, - 0xC9, - 0xDD, - 0xB0, - 0x99, - 0x1F, - 0xA8, - 0x02, - 0x10, - 0xD6, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xDC, - 0x12, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0xD4, - 0xDD, - 0x5E, - 0x47, - 0x1F, - 0xB6, - 0x3E, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x29, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0xCB, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xD3, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD7, - 0xD5, - 0x1F, - 0xB6, - 0x02, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x95, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x1F, - 0x99, - 0x02, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD4, - 0x3E, - 0x03, - 0xCE, - 0x3E, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x4D, - 0xC9, - 0x3D, - 0xCB, - 0x5E, - 0x99, - 0x4D, - 0x99, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x9D, - 0x02, - 0x4D, - 0xCB, - 0x5E, - 0x47, - 0x99, - 0x9A, - 0xB6, - 0x3E, - 0x9A, - 0xC9, - 0xB0, - 0xB6, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0xDC, - 0x0C, - 0x02, - 0x4D, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x4F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xA7, - 0x02, - 0x02, - 0xA8, - 0x92, - 0xC9, - 0x92, - 0xB0, - 0x75, - 0x02, - 0x4D, - 0xCB, - 0xC9, - 0xC9, - 0xCB, - 0x3E, - 0x02, - 0x0D, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0x9E, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x20, - 0x4F, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0xD2, - 0xC4, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x59, - 0xBD, - 0x12, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x6B, - 0xA7, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x60, - 0x4F, - 0x8D, - 0x20, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x1B, - 0xA7, - 0x90, - 0x12, - 0x02, - 0x56, - 0xBD, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8C, - 0x20, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x44, - 0x08, - 0x02, - 0x00, - 0x07, - 0x29, - 0xD3, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x30, - 0x3E, - 0xDE, - 0xB0, - 0x3D, - 0xDE, - 0x4D, - 0x75, - 0xA8, - 0xDE, - 0x32, - 0xDE, - 0xB0, - 0x02, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x59, - 0x6B, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3D, - 0x9A, - 0xDE, - 0x3E, - 0xCE, - 0x92, - 0xA8, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x9E, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3E, - 0x92, - 0x5E, - 0xDE, - 0x1F, - 0x47, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x83, - 0x29, - 0x02, - 0x32, - 0x9A, - 0xCB, - 0x02, - 0x47, - 0x5E, - 0x03, - 0xC9, - 0xD7, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x3E, - 0xCE, - 0x1F, - 0x99, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0xC6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x9A, - 0xB0, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x8A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0xD7, - 0xD7, - 0x03, - 0xB6, - 0x4D, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x3B, - 0x8A, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x75, - 0xCB, - 0xB0, - 0xCB, - 0xD5, - 0xA8, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x32, - 0x9A, - 0x92, - 0xB0, - 0xDD, - 0xB6, - 0xD7, - 0xEA, - 0xB6, - 0xB0, - 0x5E, - 0xB6, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x12, - 0x02, - 0x32, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0xD4, - 0x75, - 0xCB, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x02, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x02, - 0x75, - 0xCB, - 0xC9, - 0xC9, - 0xDE, - 0x75, - 0x02, - 0xD7, - 0xB6, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0x4C, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x90, - 0x29, - 0x00, - 0x09, - 0x02, - 0x00, - 0x06, - 0x9D, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x6F, - 0x4C, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x90, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x20, - 0x3B, - 0x4F, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x3B, - 0x8B, - 0x12, - 0x0A, - 0x6B, - 0xDA, - 0x59, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x61, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x08, - 0x02, - 0x01, - 0x7E, - 0x01, - 0xD6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x43, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x12, - 0x3C, - 0x02, - 0xA8, - 0x47, - 0xD4, - 0xDE, - 0x3E, - 0x75, - 0xB0, - 0x47, - 0xD4, - 0x99, - 0x75, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6C, - 0xC7, - 0x75, - 0x99, - 0xEA, - 0x32, - 0x9A, - 0x99, - 0xD7, - 0xD5, - 0xCB, - 0x47, - 0x03, - 0x75, - 0x10, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x50, - 0x30, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xCB, - 0x1F, - 0x99, - 0x1F, - 0xD4, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x96, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0xA8, - 0x9A, - 0x03, - 0xB6, - 0x4D, - 0x47, - 0x03, - 0x75, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x4D, - 0x92, - 0x1F, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x30, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x02, - 0x47, - 0xD5, - 0xD4, - 0x75, - 0x47, - 0x03, - 0x75, - 0x02, - 0x02, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x43, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x3E, - 0xD7, - 0x03, - 0x99, - 0x75, - 0x47, - 0x03, - 0x4D, - 0x02, - 0xD2, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x10, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xDE, - 0x47, - 0xB6, - 0xDD, - 0x3E, - 0x47, - 0x03, - 0x75, - 0x02, - 0xC7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0xD2, - 0x75, - 0x99, - 0x1F, - 0xA8, - 0xC9, - 0x92, - 0xD4, - 0x1F, - 0xDE, - 0xCB, - 0xEA, - 0x4D, - 0x02, - 0xC1, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0xC6, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x1B, - 0xC1, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xC1, - 0x17, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x17, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6A, - 0x09, - 0x30, - 0x02, - 0x02, - 0x02, - 0x61, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA7, - 0x98, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x72, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x1B, - 0x95, - 0x12, - 0x30, - 0x96, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x20, - 0x01, - 0xA0, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0xD4, - 0x47, - 0xB0, - 0x32, - 0x4D, - 0xDE, - 0xA8, - 0xB0, - 0x0A, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x3B, - 0x0A, - 0xB0, - 0x92, - 0xDE, - 0xB6, - 0xA8, - 0xC9, - 0x47, - 0xC9, - 0x10, - 0x96, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0xB0, - 0x92, - 0xD4, - 0x1F, - 0xB6, - 0xCB, - 0xB0, - 0x92, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x9F, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD5, - 0x03, - 0x3D, - 0x3D, - 0x92, - 0x02, - 0x61, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x74, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xCB, - 0x5E, - 0x75, - 0x3D, - 0xC9, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xE4, - 0x02, - 0xB0, - 0x92, - 0x02, - 0x3D, - 0xDD, - 0x75, - 0x3D, - 0x92, - 0x02, - 0x02, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x90, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD7, - 0x03, - 0xD7, - 0x3D, - 0xC9, - 0x02, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xCC, - 0x02, - 0xB0, - 0x92, - 0x3E, - 0x99, - 0x92, - 0x47, - 0x3D, - 0xC9, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDA, - 0x02, - 0xB0, - 0xC9, - 0x99, - 0x92, - 0xB0, - 0x92, - 0x99, - 0x92, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA7, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xDE, - 0xD7, - 0x5E, - 0x03, - 0x92, - 0x02, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDC, - 0x30, - 0xD7, - 0x92, - 0x92, - 0x3E, - 0x02, - 0x99, - 0xC9, - 0x47, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x08, - 0x02, - 0x01, - 0x30, - 0x01, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x0D, - 0x02, - 0x02, - 0x30, - 0x43, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x94, - 0x0D, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0C, - 0x02, - 0x02, - 0x0A, - 0x98, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x04, - 0x02, - 0x01, - 0x8B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x3E, - 0xB0, - 0x3D, - 0x32, - 0x3D, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xD4, - 0x99, - 0x92, - 0xDE, - 0x99, - 0xDE, - 0x6B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xD4, - 0xDE, - 0x92, - 0x92, - 0x3D, - 0xDE, - 0x12, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x5A, - 0xD4, - 0x47, - 0xCB, - 0xCE, - 0xD4, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x94, - 0xD4, - 0x47, - 0xB0, - 0xCB, - 0x32, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xA8, - 0x47, - 0x32, - 0x99, - 0x32, - 0xDE, - 0x02, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xD4, - 0x47, - 0x3E, - 0x92, - 0xD4, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xE4, - 0xD4, - 0xDE, - 0x47, - 0x92, - 0xA8, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x90, - 0xA8, - 0xCB, - 0x92, - 0x99, - 0x99, - 0x47, - 0x0D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x8C, - 0xD4, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0xDE, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xA7, - 0x3E, - 0x92, - 0xA8, - 0x3E, - 0x92, - 0xA8, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8C, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x95, - 0x02, - 0x02, - 0x90, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x70, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x44, - 0x0A, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x02, - 0x02, - 0x60, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x3D, - 0xA8, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xCB, - 0xDE, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xCB, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x99, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xB0, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0x3D, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xA8, - 0x47, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x47, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB6, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xC9, - 0xB6, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x99, - 0xB0, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xE4, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xDA, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x0A, - 0x02, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE4, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x98, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8C, - 0x01, - 0xDA, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x0A, - 0x44, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x60, - 0x02, - 0x02, - 0x8D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xC1, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xA8, - 0x3D, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0x99, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0xB0, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0x3D, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x47, - 0xA8, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x99, - 0x47, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xB6, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0xB6, - 0xC9, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB0, - 0x99, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xE4, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x02, - 0x0A, - 0x1B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x61, - 0x01, - 0xE4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x0D, - 0x94, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x0A, - 0x02, - 0x02, - 0x0C, - 0x20, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8B, - 0x04, - 0x02, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xA8, - 0x3D, - 0x32, - 0xA8, - 0xB0, - 0x3E, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6B, - 0xDE, - 0x99, - 0xDE, - 0x92, - 0x99, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x12, - 0xDE, - 0x3D, - 0x92, - 0x92, - 0xDE, - 0xD4, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0xDE, - 0xD4, - 0xCE, - 0xCB, - 0x47, - 0xA8, - 0x5A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0x32, - 0xCB, - 0xB0, - 0x47, - 0xD4, - 0x94, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x02, - 0xDE, - 0x32, - 0x99, - 0x32, - 0x47, - 0xD4, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0xD4, - 0x92, - 0x3E, - 0x47, - 0xA8, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0x47, - 0xA8, - 0x92, - 0x47, - 0xDE, - 0xD4, - 0xE4, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0D, - 0xDE, - 0x99, - 0x99, - 0x92, - 0xCB, - 0xD4, - 0x90, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xDE, - 0x03, - 0xB0, - 0xCB, - 0x03, - 0xD4, - 0x8C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xA8, - 0x92, - 0x3E, - 0xA8, - 0x92, - 0x3E, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x30, - 0xDC, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8B, - 0x02, - 0x02, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x70, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x76, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x96, - 0x30, - 0x12, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x20, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x85, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x0D, - 0x08, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x60, - 0x0A, - 0xB0, - 0xA8, - 0xDE, - 0x4D, - 0x32, - 0xB0, - 0x47, - 0xD4, - 0x0D, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x96, - 0x02, - 0x92, - 0x47, - 0xC9, - 0x3D, - 0xB6, - 0x99, - 0x92, - 0xB0, - 0x0A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x92, - 0xB0, - 0xCB, - 0xB6, - 0x1F, - 0xD4, - 0x92, - 0xB0, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x61, - 0x02, - 0xC9, - 0x3D, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x30, - 0x02, - 0xC9, - 0x3D, - 0x75, - 0x5E, - 0xCB, - 0x02, - 0x92, - 0xB0, - 0x02, - 0x74, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x02, - 0x02, - 0x92, - 0x3D, - 0x75, - 0xDD, - 0x3D, - 0x02, - 0x92, - 0xB0, - 0x02, - 0xE4, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0A, - 0x02, - 0xC9, - 0x3D, - 0xD7, - 0x03, - 0xD7, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0D, - 0x02, - 0x92, - 0x3D, - 0x47, - 0x92, - 0x99, - 0x3E, - 0x92, - 0xB0, - 0x02, - 0xCC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0C, - 0x02, - 0x92, - 0x99, - 0x92, - 0xB0, - 0xC9, - 0x99, - 0xC9, - 0xB0, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA0, - 0x02, - 0xC9, - 0x03, - 0x5E, - 0x3E, - 0xDE, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0xA7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0x47, - 0xC9, - 0x99, - 0x02, - 0x3E, - 0x92, - 0x92, - 0xD7, - 0x30, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x43, - 0x30, - 0x02, - 0x02, - 0x0D, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x8D, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x07, - 0x59, - 0xDA, - 0x6B, - 0x0A, - 0x12, - 0x8B, - 0x3B, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x70, - 0x01, - 0x61, - 0x06, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xD6, - 0x01, - 0x7E, - 0x08, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3C, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x12, - 0x75, - 0x99, - 0xD4, - 0x47, - 0xB0, - 0x75, - 0x4D, - 0xDE, - 0xD4, - 0x47, - 0xA8, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x10, - 0x4D, - 0x03, - 0x47, - 0xCB, - 0xD5, - 0xD7, - 0x99, - 0x9A, - 0x32, - 0xEA, - 0xDE, - 0x75, - 0xC7, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x03, - 0x47, - 0xD4, - 0x1F, - 0x99, - 0x1F, - 0xCB, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x30, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x0C, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x9A, - 0xA8, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x3D, - 0x1F, - 0x92, - 0x4D, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x02, - 0xA8, - 0xD5, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x99, - 0x03, - 0xD7, - 0x3E, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x3E, - 0xDD, - 0xB6, - 0x47, - 0x47, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x10, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC1, - 0x02, - 0x4D, - 0x03, - 0xCB, - 0xDE, - 0x1F, - 0xD4, - 0x92, - 0xC9, - 0x3D, - 0x1F, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x75, - 0xC6, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0x30, - 0x75, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0xC1, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0xC1, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0A, - 0x02, - 0x01, - 0xC1, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x8C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x17, - 0x4F, - 0x61, - 0x02, - 0x02, - 0x02, - 0x30, - 0xC1, - 0x6A, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0xA7, - 0x70, - 0x17, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x50, - 0xBD, - 0x56, - 0x02, - 0x12, - 0x90, - 0xA7, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD3, - 0x09, - 0x02, - 0x01, - 0x44, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x4F, - 0xD2, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x98, - 0x6B, - 0x02, - 0xB0, - 0xDE, - 0x32, - 0xDE, - 0xA8, - 0x75, - 0x4D, - 0xDE, - 0x3D, - 0xB0, - 0xDE, - 0x3E, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x8A, - 0x02, - 0xB6, - 0xD5, - 0xA8, - 0x92, - 0xCE, - 0x3E, - 0xDE, - 0x9A, - 0x3D, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x6B, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8C, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x47, - 0x1F, - 0xDE, - 0x5E, - 0x92, - 0x3E, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x32, - 0xC9, - 0x1F, - 0x5E, - 0x47, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x02, - 0x99, - 0x1F, - 0xCE, - 0x3E, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x10, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x02, - 0xB0, - 0x9A, - 0x99, - 0x02, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x02, - 0xBD, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x30, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x4D, - 0xB6, - 0x03, - 0xD7, - 0xD7, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xB6, - 0xDD, - 0x3E, - 0xA8, - 0xD5, - 0xCB, - 0xB0, - 0xCB, - 0x75, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x90, - 0x02, - 0x02, - 0xB6, - 0x5E, - 0xB0, - 0xCB, - 0xEA, - 0xD7, - 0xB6, - 0xDD, - 0xB0, - 0x92, - 0xD5, - 0x32, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9F, - 0x02, - 0x02, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x32, - 0x02, - 0x12, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0xB6, - 0xD7, - 0x02, - 0x75, - 0xDE, - 0xC9, - 0xC9, - 0xCB, - 0x75, - 0x02, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x9F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x29, - 0x90, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x90, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4C, - 0x6F, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x4F, - 0x3B, - 0x20, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x6F, - 0x96, - 0xC7, - 0x02, - 0x64, - 0xE4, - 0x95, - 0x8D, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x43, - 0x7E, - 0x0A, - 0x02, - 0x00, - 0x06, - 0xC1, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x6B, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0xA0, - 0x02, - 0xD7, - 0x99, - 0xA8, - 0x3D, - 0xDE, - 0xD4, - 0x02, - 0x75, - 0xDE, - 0x47, - 0xD4, - 0xDE, - 0x3D, - 0x4D, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD6, - 0x02, - 0x02, - 0xA8, - 0x03, - 0xDE, - 0xB0, - 0xDD, - 0xC9, - 0x75, - 0x47, - 0x1F, - 0xCB, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x43, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x3E, - 0xB6, - 0x1F, - 0x47, - 0x5E, - 0xCE, - 0xD4, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD3, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x3D, - 0xD5, - 0x03, - 0x1F, - 0xCB, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x29, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x0D, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x02, - 0xB6, - 0x1F, - 0x9A, - 0xD7, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x3B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x02, - 0x99, - 0x1F, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x30, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x3E, - 0xCE, - 0x03, - 0x3E, - 0xD4, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x56, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x99, - 0x4D, - 0x99, - 0x1F, - 0xCB, - 0xA8, - 0xC9, - 0x4D, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x02, - 0x3D, - 0x03, - 0xB6, - 0xB0, - 0xC9, - 0x9A, - 0x3E, - 0xB6, - 0x9A, - 0x99, - 0x47, - 0x5E, - 0xCB, - 0x4D, - 0x02, - 0x9D, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x4F, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCB, - 0x4D, - 0x02, - 0x0C, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x0D, - 0x02, - 0xD7, - 0xCB, - 0x92, - 0xC9, - 0xCB, - 0x4D, - 0x02, - 0x75, - 0xB0, - 0x92, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x02, - 0xA7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6F, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x9E, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x4F, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x59, - 0xC4, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x01, - 0x56, - 0x01, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x20, - 0x6F, - 0x6B, - 0x7E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x12, - 0xBD, - 0x98, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x20, - 0x8D, - 0x4F, - 0x60, - 0x20, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x6C, - 0xDA, - 0x90, - 0x61, - 0x02, - 0x64, - 0x09, - 0x43, - 0x3B, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x29, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x70, - 0x8A, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x1B, - 0x9E, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x10, - 0x99, - 0xDE, - 0x3E, - 0xDE, - 0x99, - 0xD7, - 0x02, - 0x10, - 0x47, - 0xDE, - 0xD7, - 0x47, - 0x99, - 0xD7, - 0x02, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x8A, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x99, - 0x03, - 0x92, - 0x02, - 0xB0, - 0x03, - 0xCE, - 0x10, - 0xD5, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x3C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x95, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x4D, - 0x5E, - 0x03, - 0xB0, - 0x5E, - 0x03, - 0x3D, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA0, - 0x02, - 0x02, - 0x10, - 0x03, - 0x5E, - 0x32, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x12, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0xD5, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x10, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x10, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x44, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x32, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x3E, - 0xA8, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6B, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x92, - 0x03, - 0x99, - 0xD4, - 0x03, - 0x3E, - 0x29, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x8A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x10, - 0x02, - 0x03, - 0x5E, - 0xB0, - 0xB0, - 0x5E, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x32, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x10, - 0x3E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x12, - 0x02, - 0x02, - 0x47, - 0x92, - 0x92, - 0xC9, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0x92, - 0xB6, - 0x75, - 0x29, - 0x02, - 0x83, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x43, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x10, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x90, - 0x8A, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0xC7, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x64, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x8A, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x96, - 0x61, - 0x8A, - 0x04, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x6B, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x73, - 0x50, - 0x4F, - 0x3B, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x6C, - 0xDA, - 0x90, - 0x61, - 0x02, - 0x64, - 0x09, - 0x43, - 0x3B, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x29, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x70, - 0x8A, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x1B, - 0x9E, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x10, - 0x99, - 0xDE, - 0x3E, - 0xDE, - 0x99, - 0xD7, - 0x02, - 0x10, - 0x47, - 0xDE, - 0xD7, - 0x47, - 0x99, - 0xD7, - 0x02, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x8A, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x99, - 0x03, - 0x92, - 0x02, - 0xB0, - 0x03, - 0xCE, - 0x10, - 0xD5, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x3C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x95, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x4D, - 0x5E, - 0x03, - 0xB0, - 0x5E, - 0x03, - 0x3D, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA0, - 0x02, - 0x02, - 0x10, - 0x03, - 0x5E, - 0x32, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x12, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0xD5, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x10, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x10, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x44, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x32, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x3E, - 0xA8, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6B, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x92, - 0x03, - 0x99, - 0xD4, - 0x03, - 0x3E, - 0x29, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x8A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x10, - 0x02, - 0x03, - 0x5E, - 0xB0, - 0xB0, - 0x5E, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x32, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x10, - 0x3E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x12, - 0x02, - 0x02, - 0x47, - 0x92, - 0x92, - 0xC9, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0x92, - 0xB6, - 0x75, - 0x29, - 0x02, - 0x83, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x43, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x10, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x90, - 0x8A, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0xC7, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x64, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x8A, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x96, - 0x61, - 0x8A, - 0x04, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x6B, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x73, - 0x50, - 0x4F, - 0x3B, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x6C, - 0xDA, - 0x90, - 0x61, - 0x02, - 0x64, - 0x09, - 0x43, - 0x3B, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x29, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x70, - 0x8A, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x1B, - 0x9E, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x10, - 0x99, - 0xDE, - 0x3E, - 0xDE, - 0x99, - 0xD7, - 0x02, - 0x10, - 0x47, - 0xDE, - 0xD7, - 0x47, - 0x99, - 0xD7, - 0x02, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x8A, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x99, - 0x03, - 0x92, - 0x02, - 0xB0, - 0x03, - 0xCE, - 0x10, - 0xD5, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x3C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x95, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x4D, - 0x5E, - 0x03, - 0xB0, - 0x5E, - 0x03, - 0x3D, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA0, - 0x02, - 0x02, - 0x10, - 0x03, - 0x5E, - 0x32, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x12, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0xD5, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x10, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x10, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x44, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x32, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x3E, - 0xA8, - 0x02, - 0x02, - 0x9A, - 0x03, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6B, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x32, - 0x02, - 0x92, - 0x03, - 0x99, - 0xD4, - 0x03, - 0x3E, - 0x29, - 0x9A, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x8A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x10, - 0x02, - 0x03, - 0x5E, - 0xB0, - 0xB0, - 0x5E, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x32, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x10, - 0x3E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x12, - 0x02, - 0x02, - 0x47, - 0x92, - 0x92, - 0xC9, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0x92, - 0xB6, - 0x75, - 0x29, - 0x02, - 0x83, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x43, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x10, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x90, - 0x8A, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0xC7, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x64, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x8A, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x96, - 0x61, - 0x8A, - 0x04, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x6B, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x73, - 0x50, - 0x4F, - 0x3B, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x6F, - 0x96, - 0xC7, - 0x02, - 0x64, - 0xE4, - 0x95, - 0x8D, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x43, - 0x7E, - 0x0A, - 0x02, - 0x00, - 0x06, - 0xC1, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x6B, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0xA0, - 0x02, - 0xD7, - 0x99, - 0xA8, - 0x3D, - 0xDE, - 0xD4, - 0x02, - 0x75, - 0xDE, - 0x47, - 0xD4, - 0xDE, - 0x3D, - 0x4D, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD6, - 0x02, - 0x02, - 0xA8, - 0x03, - 0xDE, - 0xB0, - 0xDD, - 0xC9, - 0x75, - 0x47, - 0x1F, - 0xCB, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x43, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x3E, - 0xB6, - 0x1F, - 0x47, - 0x5E, - 0xCE, - 0xD4, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xD3, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x3D, - 0xD5, - 0x03, - 0x1F, - 0xCB, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x29, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x0D, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x02, - 0xB6, - 0x1F, - 0x9A, - 0xD7, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x3B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x4D, - 0x02, - 0x99, - 0x1F, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x30, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x99, - 0x75, - 0x3E, - 0xCE, - 0x03, - 0x3E, - 0xD4, - 0x02, - 0xA8, - 0x1F, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x56, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x99, - 0x4D, - 0x99, - 0x1F, - 0xCB, - 0xA8, - 0xC9, - 0x4D, - 0xA8, - 0x9A, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x96, - 0x02, - 0x02, - 0x3D, - 0x03, - 0xB6, - 0xB0, - 0xC9, - 0x9A, - 0x3E, - 0xB6, - 0x9A, - 0x99, - 0x47, - 0x5E, - 0xCB, - 0x4D, - 0x02, - 0x9D, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x4F, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCB, - 0x4D, - 0x02, - 0x0C, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x0D, - 0x02, - 0xD7, - 0xCB, - 0x92, - 0xC9, - 0xCB, - 0x4D, - 0x02, - 0x75, - 0xB0, - 0x92, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x02, - 0xA7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6F, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x9E, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x4F, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x59, - 0xC4, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x01, - 0x56, - 0x01, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x20, - 0x6F, - 0x6B, - 0x7E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x12, - 0xBD, - 0x98, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x05, - 0x20, - 0x8D, - 0x4F, - 0x60, - 0x20, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x50, - 0xBD, - 0x56, - 0x02, - 0x12, - 0x90, - 0xA7, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD3, - 0x09, - 0x02, - 0x01, - 0x44, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x4F, - 0xD2, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x98, - 0x6B, - 0x02, - 0xB0, - 0xDE, - 0x32, - 0xDE, - 0xA8, - 0x75, - 0x4D, - 0xDE, - 0x3D, - 0xB0, - 0xDE, - 0x3E, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x8A, - 0x02, - 0xB6, - 0xD5, - 0xA8, - 0x92, - 0xCE, - 0x3E, - 0xDE, - 0x9A, - 0x3D, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x6B, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8C, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x47, - 0x1F, - 0xDE, - 0x5E, - 0x92, - 0x3E, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x32, - 0xC9, - 0x1F, - 0x5E, - 0x47, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x02, - 0x99, - 0x1F, - 0xCE, - 0x3E, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x10, - 0x02, - 0x02, - 0xB6, - 0xD5, - 0x3E, - 0x02, - 0xB0, - 0x9A, - 0x99, - 0x02, - 0x02, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x02, - 0xBD, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x30, - 0x02, - 0x02, - 0xB6, - 0x9A, - 0x3E, - 0x4D, - 0xB6, - 0x03, - 0xD7, - 0xD7, - 0x02, - 0xCB, - 0x9A, - 0x32, - 0x02, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xB6, - 0xDD, - 0x3E, - 0xA8, - 0xD5, - 0xCB, - 0xB0, - 0xCB, - 0x75, - 0xCB, - 0xD5, - 0x32, - 0x02, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x90, - 0x02, - 0x02, - 0xB6, - 0x5E, - 0xB0, - 0xCB, - 0xEA, - 0xD7, - 0xB6, - 0xDD, - 0xB0, - 0x92, - 0xD5, - 0x32, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x9F, - 0x02, - 0x02, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x32, - 0x02, - 0x12, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x3D, - 0x92, - 0xC9, - 0xB6, - 0xD7, - 0x02, - 0x75, - 0xDE, - 0xC9, - 0xC9, - 0xCB, - 0x75, - 0x02, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x4C, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x9F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x29, - 0x90, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x59, - 0x90, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4C, - 0x6F, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x4F, - 0x3B, - 0x20, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x07, - 0x59, - 0xDA, - 0x6B, - 0x0A, - 0x12, - 0x8B, - 0x3B, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x70, - 0x01, - 0x61, - 0x06, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xD6, - 0x01, - 0x7E, - 0x08, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3C, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0x12, - 0x75, - 0x99, - 0xD4, - 0x47, - 0xB0, - 0x75, - 0x4D, - 0xDE, - 0xD4, - 0x47, - 0xA8, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x10, - 0x4D, - 0x03, - 0x47, - 0xCB, - 0xD5, - 0xD7, - 0x99, - 0x9A, - 0x32, - 0xEA, - 0xDE, - 0x75, - 0xC7, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x03, - 0x47, - 0xD4, - 0x1F, - 0x99, - 0x1F, - 0xCB, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x30, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x0C, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x9A, - 0xA8, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x3D, - 0x1F, - 0x92, - 0x4D, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x02, - 0xA8, - 0xD5, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x4D, - 0x03, - 0x47, - 0x75, - 0x99, - 0x03, - 0xD7, - 0x3E, - 0x75, - 0xEA, - 0x99, - 0x75, - 0x02, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x02, - 0x75, - 0x1F, - 0x47, - 0x3E, - 0xDD, - 0xB6, - 0x47, - 0x47, - 0x4D, - 0xEA, - 0x99, - 0x75, - 0x10, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xC1, - 0x02, - 0x4D, - 0x03, - 0xCB, - 0xDE, - 0x1F, - 0xD4, - 0x92, - 0xC9, - 0x3D, - 0x1F, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x75, - 0xC6, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0x30, - 0x75, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xC9, - 0x92, - 0xD4, - 0x02, - 0xC1, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0xC1, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0A, - 0x02, - 0x01, - 0xC1, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x8C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x17, - 0x4F, - 0x61, - 0x02, - 0x02, - 0x02, - 0x30, - 0xC1, - 0x6A, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0xA7, - 0x70, - 0x17, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x76, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x96, - 0x30, - 0x12, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x20, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x85, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x0D, - 0x08, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x60, - 0x0A, - 0xB0, - 0xA8, - 0xDE, - 0x4D, - 0x32, - 0xB0, - 0x47, - 0xD4, - 0x0D, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x96, - 0x02, - 0x92, - 0x47, - 0xC9, - 0x3D, - 0xB6, - 0x99, - 0x92, - 0xB0, - 0x0A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x92, - 0xB0, - 0xCB, - 0xB6, - 0x1F, - 0xD4, - 0x92, - 0xB0, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x61, - 0x02, - 0xC9, - 0x3D, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x30, - 0x02, - 0xC9, - 0x3D, - 0x75, - 0x5E, - 0xCB, - 0x02, - 0x92, - 0xB0, - 0x02, - 0x74, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x02, - 0x02, - 0x92, - 0x3D, - 0x75, - 0xDD, - 0x3D, - 0x02, - 0x92, - 0xB0, - 0x02, - 0xE4, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0A, - 0x02, - 0xC9, - 0x3D, - 0xD7, - 0x03, - 0xD7, - 0x75, - 0x92, - 0xB0, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0D, - 0x02, - 0x92, - 0x3D, - 0x47, - 0x92, - 0x99, - 0x3E, - 0x92, - 0xB0, - 0x02, - 0xCC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x0C, - 0x02, - 0x92, - 0x99, - 0x92, - 0xB0, - 0xC9, - 0x99, - 0xC9, - 0xB0, - 0x02, - 0xDA, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA0, - 0x02, - 0xC9, - 0x03, - 0x5E, - 0x3E, - 0xDE, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0xA7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0x47, - 0xC9, - 0x99, - 0x02, - 0x3E, - 0x92, - 0x92, - 0xD7, - 0x30, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x43, - 0x30, - 0x02, - 0x02, - 0x0D, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x8D, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x0D, - 0x94, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x0A, - 0x02, - 0x02, - 0x0C, - 0x20, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8B, - 0x04, - 0x02, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xA8, - 0x3D, - 0x32, - 0xA8, - 0xB0, - 0x3E, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6B, - 0xDE, - 0x99, - 0xDE, - 0x92, - 0x99, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x12, - 0xDE, - 0x3D, - 0x92, - 0x92, - 0xDE, - 0xD4, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0xDE, - 0xD4, - 0xCE, - 0xCB, - 0x47, - 0xA8, - 0x5A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0x32, - 0xCB, - 0xB0, - 0x47, - 0xD4, - 0x94, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x02, - 0xDE, - 0x32, - 0x99, - 0x32, - 0x47, - 0xD4, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0A, - 0xDE, - 0xD4, - 0x92, - 0x3E, - 0x47, - 0xA8, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x9D, - 0x47, - 0xA8, - 0x92, - 0x47, - 0xDE, - 0xD4, - 0xE4, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0D, - 0xDE, - 0x99, - 0x99, - 0x92, - 0xCB, - 0xD4, - 0x90, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xDE, - 0x03, - 0xB0, - 0xCB, - 0x03, - 0xD4, - 0x8C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xA8, - 0x92, - 0x3E, - 0xA8, - 0x92, - 0x3E, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x30, - 0xDC, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8B, - 0x02, - 0x02, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x70, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8C, - 0x01, - 0xDA, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x0A, - 0x44, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x60, - 0x02, - 0x02, - 0x8D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xC1, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xA8, - 0x3D, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xCB, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0x99, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0xB0, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0xB0, - 0x3D, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x47, - 0xA8, - 0x4D, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x32, - 0x99, - 0x47, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0x99, - 0xB6, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xD7, - 0xB6, - 0xC9, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB0, - 0x99, - 0x0F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xE4, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x98, - 0x02, - 0x0A, - 0x1B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x61, - 0x01, - 0xE4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA8, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x3D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xD4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x44, - 0x0A, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x02, - 0x02, - 0x60, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x02, - 0x02, - 0x3C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3C, - 0x02, - 0x02, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x3D, - 0xA8, - 0xCA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xCA, - 0xCB, - 0xDE, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xCB, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x99, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xB0, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0x3D, - 0xB0, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x4D, - 0xA8, - 0x47, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0x47, - 0x99, - 0x32, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xB6, - 0x99, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x7C, - 0xC9, - 0xB6, - 0xD7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x0F, - 0x99, - 0xB0, - 0x7C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x8C, - 0x02, - 0x02, - 0xE4, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xDA, - 0x02, - 0x02, - 0x8C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x3B, - 0x02, - 0x02, - 0x4F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x0A, - 0x02, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE4, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x98, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x94, - 0x0D, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0C, - 0x02, - 0x02, - 0x0A, - 0x98, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x04, - 0x02, - 0x01, - 0x8B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0C, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x3E, - 0xB0, - 0x3D, - 0x32, - 0x3D, - 0xD4, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x43, - 0xD4, - 0x99, - 0x92, - 0xDE, - 0x99, - 0xDE, - 0x6B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x74, - 0xD4, - 0xDE, - 0x92, - 0x92, - 0x3D, - 0xDE, - 0x12, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x5A, - 0xD4, - 0x47, - 0xCB, - 0xCE, - 0xD4, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x94, - 0xD4, - 0x47, - 0xB0, - 0xCB, - 0x32, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xA8, - 0x47, - 0x32, - 0x99, - 0x32, - 0xDE, - 0x02, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x0C, - 0xD4, - 0x47, - 0x3E, - 0x92, - 0xD4, - 0xDE, - 0x0A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xE4, - 0xD4, - 0xDE, - 0x47, - 0x92, - 0xA8, - 0xDE, - 0x9D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x90, - 0xA8, - 0xCB, - 0x92, - 0x99, - 0x99, - 0x47, - 0x0D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x8C, - 0xD4, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0xDE, - 0x0C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0xA7, - 0x3E, - 0x92, - 0xA8, - 0x3E, - 0x92, - 0xA8, - 0x74, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8C, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x98, - 0x9D, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x95, - 0x02, - 0x02, - 0x90, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x98, - 0x01, - 0x70, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x72, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x1B, - 0x95, - 0x12, - 0x30, - 0x96, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x20, - 0x01, - 0xA0, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x43, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0xD4, - 0x47, - 0xB0, - 0x32, - 0x4D, - 0xDE, - 0xA8, - 0xB0, - 0x0A, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x3B, - 0x0A, - 0xB0, - 0x92, - 0xDE, - 0xB6, - 0xA8, - 0xC9, - 0x47, - 0xC9, - 0x10, - 0x96, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x4F, - 0x02, - 0xB0, - 0x92, - 0xD4, - 0x1F, - 0xB6, - 0xCB, - 0xB0, - 0x92, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x9F, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD5, - 0x03, - 0x3D, - 0x3D, - 0x92, - 0x02, - 0x61, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x74, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xCB, - 0x5E, - 0x75, - 0x3D, - 0xC9, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xE4, - 0x02, - 0xB0, - 0x92, - 0x02, - 0x3D, - 0xDD, - 0x75, - 0x3D, - 0x92, - 0x02, - 0x02, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0x90, - 0x02, - 0xB0, - 0x92, - 0x75, - 0xD7, - 0x03, - 0xD7, - 0x3D, - 0xC9, - 0x02, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xCC, - 0x02, - 0xB0, - 0x92, - 0x3E, - 0x99, - 0x92, - 0x47, - 0x3D, - 0xC9, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDA, - 0x02, - 0xB0, - 0xC9, - 0x99, - 0x92, - 0xB0, - 0x92, - 0x99, - 0x92, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xA7, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xDE, - 0xD7, - 0x5E, - 0x03, - 0x92, - 0x02, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0C, - 0xDC, - 0x30, - 0xD7, - 0x92, - 0x92, - 0x3E, - 0x02, - 0x99, - 0xC9, - 0x47, - 0x02, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xA0, - 0x08, - 0x02, - 0x01, - 0x30, - 0x01, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xA0, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0x3B, - 0x0D, - 0x02, - 0x02, - 0x30, - 0x43, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x3B, - 0x8B, - 0x12, - 0x0A, - 0x6B, - 0xDA, - 0x59, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x61, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x08, - 0x02, - 0x01, - 0x7E, - 0x01, - 0xD6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x43, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x9D, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x12, - 0x3C, - 0x02, - 0xA8, - 0x47, - 0xD4, - 0xDE, - 0x3E, - 0x75, - 0xB0, - 0x47, - 0xD4, - 0x99, - 0x75, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6C, - 0xC7, - 0x75, - 0x99, - 0xEA, - 0x32, - 0x9A, - 0x99, - 0xD7, - 0xD5, - 0xCB, - 0x47, - 0x03, - 0x75, - 0x10, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x50, - 0x30, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xCB, - 0x1F, - 0x99, - 0x1F, - 0xD4, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x96, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0xA8, - 0x9A, - 0x03, - 0xB6, - 0x4D, - 0x47, - 0x03, - 0x75, - 0x02, - 0x0C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x4D, - 0x92, - 0x1F, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x4D, - 0x02, - 0x30, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x96, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x02, - 0x47, - 0xD5, - 0xD4, - 0x75, - 0x47, - 0x03, - 0x75, - 0x02, - 0x02, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x43, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x75, - 0x3E, - 0xD7, - 0x03, - 0x99, - 0x75, - 0x47, - 0x03, - 0x4D, - 0x02, - 0xD2, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x10, - 0x75, - 0x99, - 0xEA, - 0x4D, - 0xDE, - 0x47, - 0xB6, - 0xDD, - 0x3E, - 0x47, - 0x03, - 0x75, - 0x02, - 0xC7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x3B, - 0xD2, - 0x75, - 0x99, - 0x1F, - 0xA8, - 0xC9, - 0x92, - 0xD4, - 0x1F, - 0xDE, - 0xCB, - 0xEA, - 0x4D, - 0x02, - 0xC1, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x8D, - 0xC6, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x1B, - 0xC1, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x02, - 0xD4, - 0x92, - 0xC9, - 0x99, - 0x75, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xC1, - 0x17, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x30, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x01, - 0x9D, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x17, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x6A, - 0x09, - 0x30, - 0x02, - 0x02, - 0x02, - 0x61, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA7, - 0x98, - 0x00, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x08, - 0x1B, - 0xA7, - 0x90, - 0x12, - 0x02, - 0x56, - 0xBD, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8C, - 0x20, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x44, - 0x08, - 0x02, - 0x00, - 0x07, - 0x29, - 0xD3, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xA0, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xA0, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x05, - 0x4F, - 0x30, - 0x3E, - 0xDE, - 0xB0, - 0x3D, - 0xDE, - 0x4D, - 0x75, - 0xA8, - 0xDE, - 0x32, - 0xDE, - 0xB0, - 0x02, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x59, - 0x6B, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3D, - 0x9A, - 0xDE, - 0x3E, - 0xCE, - 0x92, - 0xA8, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x9E, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x3E, - 0x92, - 0x5E, - 0xDE, - 0x1F, - 0x47, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x83, - 0x29, - 0x02, - 0x32, - 0x9A, - 0xCB, - 0x02, - 0x47, - 0x5E, - 0x03, - 0xC9, - 0xD7, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x6B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x3E, - 0xCE, - 0x1F, - 0x99, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0xC6, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x9A, - 0xB0, - 0x02, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x8A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x02, - 0xD7, - 0xD7, - 0x03, - 0xB6, - 0x4D, - 0x3E, - 0xD5, - 0xB6, - 0x02, - 0x02, - 0x30, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x3B, - 0x8A, - 0x02, - 0x32, - 0xD5, - 0xCB, - 0x75, - 0xCB, - 0xB0, - 0xCB, - 0xD5, - 0xA8, - 0x3E, - 0x9A, - 0xB6, - 0x02, - 0x02, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x02, - 0x32, - 0x9A, - 0x92, - 0xB0, - 0xDD, - 0xB6, - 0xD7, - 0xEA, - 0xB6, - 0xB0, - 0x5E, - 0xB6, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x6C, - 0x12, - 0x02, - 0x32, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0xD4, - 0x75, - 0xCB, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x02, - 0x02, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x02, - 0x75, - 0xCB, - 0xC9, - 0xC9, - 0xDE, - 0x75, - 0x02, - 0xD7, - 0xB6, - 0xC9, - 0x92, - 0xA8, - 0x02, - 0x30, - 0x8D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0x4C, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x90, - 0x29, - 0x00, - 0x09, - 0x02, - 0x00, - 0x06, - 0x9D, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x6F, - 0x4C, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x90, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x20, - 0x3B, - 0x4F, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x8D, - 0x95, - 0xE4, - 0x64, - 0x02, - 0xC7, - 0x96, - 0x6F, - 0x59, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x0A, - 0x00, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x0A, - 0x02, - 0x00, - 0x06, - 0x7E, - 0x43, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x6B, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0xDF, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDF, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0x8D, - 0x30, - 0x75, - 0x3D, - 0xDE, - 0xD4, - 0x47, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x99, - 0x3D, - 0xA8, - 0x99, - 0xD7, - 0x02, - 0xA0, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x1B, - 0x90, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0xCB, - 0x1F, - 0x47, - 0x75, - 0xC9, - 0xDD, - 0xB0, - 0x99, - 0x1F, - 0xA8, - 0x02, - 0x10, - 0xD6, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0xDC, - 0x12, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0xD4, - 0xDD, - 0x5E, - 0x47, - 0x1F, - 0xB6, - 0x3E, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x29, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0xCB, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xD3, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD7, - 0xD5, - 0x1F, - 0xB6, - 0x02, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x95, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x1F, - 0x99, - 0x02, - 0x4D, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6F, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x9A, - 0xA8, - 0x02, - 0xD4, - 0x3E, - 0x03, - 0xCE, - 0x3E, - 0x75, - 0x99, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x1F, - 0xA8, - 0x4D, - 0xC9, - 0x3D, - 0xCB, - 0x5E, - 0x99, - 0x4D, - 0x99, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x59, - 0x9D, - 0x02, - 0x4D, - 0xCB, - 0x5E, - 0x47, - 0x99, - 0x9A, - 0xB6, - 0x3E, - 0x9A, - 0xC9, - 0xB0, - 0xB6, - 0x03, - 0xA8, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0xDC, - 0x0C, - 0x02, - 0x4D, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x4F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x05, - 0xA7, - 0x02, - 0x02, - 0xA8, - 0x92, - 0xC9, - 0x92, - 0xB0, - 0x75, - 0x02, - 0x4D, - 0xCB, - 0xC9, - 0xC9, - 0xCB, - 0x3E, - 0x02, - 0x0D, - 0xDC, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x59, - 0x90, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x70, - 0x9E, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0x90, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x20, - 0x4F, - 0x9D, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x4C, - 0x8D, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0xD2, - 0xC4, - 0x59, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x59, - 0xBD, - 0x12, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x6B, - 0xA7, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x60, - 0x4F, - 0x8D, - 0x20, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xEE, - 0x01, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x07, - 0x10, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x00, - 0x05, - 0xCA, - 0x50, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x10, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x50, - 0x10, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x73, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x73, - 0x9E, - 0x02, - 0xD7, - 0xDE, - 0x47, - 0xD7, - 0x99, - 0x47, - 0x02, - 0x10, - 0xD7, - 0x99, - 0x47, - 0x3E, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x3C, - 0x02, - 0x10, - 0xA8, - 0x03, - 0xD5, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x8A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x10, - 0x3D, - 0x03, - 0x5E, - 0xB0, - 0x03, - 0x5E, - 0x4D, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x29, - 0x02, - 0x29, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x47, - 0x10, - 0xD7, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x10, - 0x02, - 0x02, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x10, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x8A, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x10, - 0x32, - 0x03, - 0x03, - 0x02, - 0x29, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x5E, - 0xD7, - 0xB6, - 0x5E, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0xE4, - 0x10, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x3E, - 0x10, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x16, - 0x05, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0x92, - 0x92, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0x92, - 0x92, - 0x47, - 0x02, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x09, - 0x05, - 0x05, - 0x43, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x6A, - 0xC7, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x43, - 0x8A, - 0x02, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x64, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x83, - 0x6B, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x3B, - 0x4F, - 0x83, - 0x73, - 0x00, - 0x08, - 0x05, - 0x00, - 0x01, - 0x16, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCA, - 0x01, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x09, - 0x3B, - 0x43, - 0x09, - 0x64, - 0x02, - 0x61, - 0x90, - 0xDA, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8C, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x95, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x8C, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x70, - 0x10, - 0x0F, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x15, - 0x00, - 0x20, - 0x9E, - 0x02, - 0xD7, - 0x99, - 0x47, - 0xD7, - 0x99, - 0xDE, - 0x02, - 0x02, - 0x32, - 0x99, - 0xDE, - 0x3E, - 0x99, - 0x99, - 0x02, - 0x02, - 0x96, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x3C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0xCE, - 0x03, - 0xB0, - 0x02, - 0x92, - 0x03, - 0x99, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x10, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x4C, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3D, - 0x03, - 0x1E, - 0xB0, - 0x03, - 0x1E, - 0x4D, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x95, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x03, - 0x47, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x16, - 0x8D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x02, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0x32, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1B, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x9A, - 0x02, - 0x3E, - 0x03, - 0xD4, - 0x99, - 0x03, - 0x92, - 0x02, - 0x32, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x16, - 0x00, - 0x9E, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x1E, - 0x32, - 0xB6, - 0x03, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0xB0, - 0xB0, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0xE4, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x05, - 0x03, - 0x00, - 0x03, - 0x3E, - 0x02, - 0xB0, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x15, - 0x00, - 0x83, - 0x02, - 0x02, - 0x75, - 0xB6, - 0xC9, - 0xC9, - 0x92, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x99, - 0xC9, - 0xC9, - 0x92, - 0x47, - 0x02, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x43, - 0x00, - 0x11, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x4C, - 0x0F, - 0x02, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6A, - 0xC7, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x10, - 0x01, - 0x90, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x43, - 0x01, - 0x8A, - 0x09, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x83, - 0x09, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x61, - 0x96, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x00, - 0x05, - 0x1B, - 0x60, - 0x4F, - 0x50, - 0x73, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x0B, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0x59, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x6F, - 0x90, - 0x30, - 0x8A, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x12, - 0xBD, - 0x83, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x4F, - 0xC1, - 0x29, - 0x12, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x8B, - 0x3B, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x29, - 0x00, - 0x18, - 0x02, - 0x01, - 0x12, - 0x01, - 0x60, - 0x12, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1D, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x8A, - 0xA0, - 0x59, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3C, - 0x09, - 0x02, - 0x01, - 0x29, - 0x10, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x3B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0xC1, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x11, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0xD2, - 0x95, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x12, - 0x0D, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x50, - 0x01, - 0x7C, - 0x29, - 0x02, - 0x00, - 0x03, - 0x29, - 0x56, - 0x73, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x04, - 0x6A, - 0x9D, - 0x02, - 0x10, - 0x09, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0xC1, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x73, - 0x01, - 0xCA, - 0x06, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x10, - 0x02, - 0x02, - 0x29, - 0x00, - 0x09, - 0x02, - 0x01, - 0x29, - 0x0D, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x29, - 0x83, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x07, - 0x50, - 0x8A, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x17, - 0x02, - 0x00, - 0x03, - 0x29, - 0x64, - 0x73, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xC7, - 0x2A, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xE1, - 0x29, - 0x43, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x13, - 0x4F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x10, - 0x3E, - 0xDE, - 0x99, - 0x00, - 0x04, - 0xDE, - 0x01, - 0x3D, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x12, - 0x10, - 0x75, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0xDE, - 0x99, - 0x47, - 0x10, - 0xD7, - 0xDE, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0xDE, - 0x3E, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x73, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x73, - 0x64, - 0x00, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0xCB, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x00, - 0x13, - 0x02, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x47, - 0x5E, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0D, - 0xB0, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x3C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x05, - 0x05, - 0x43, - 0x29, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x0C, - 0x4D, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x02, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x73, - 0xD2, - 0x08, - 0x02, - 0x01, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x13, - 0x5E, - 0x03, - 0x02, - 0x10, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0F, - 0x5E, - 0xA8, - 0x02, - 0x10, - 0xA8, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x90, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x6F, - 0x10, - 0x08, - 0x02, - 0x00, - 0x0B, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x12, - 0x5E, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x92, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xA0, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x23, - 0x5E, - 0x02, - 0x02, - 0x02, - 0x10, - 0x99, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x04, - 0x29, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x7E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x02, - 0x00, - 0x11, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xE9, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0xCB, - 0x00, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0x96, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x05, - 0x03, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0xB0, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x16, - 0x5E, - 0xB0, - 0x92, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0x10, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x96, - 0x02, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x10, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0xCE, - 0x03, - 0x5E, - 0x00, - 0x0A, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x02, - 0x29, - 0x08, - 0x02, - 0x01, - 0x83, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x9E, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x03, - 0x5E, - 0x9A, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x29, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x07, - 0x02, - 0x01, - 0x92, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x10, - 0xB0, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x10, - 0x09, - 0x02, - 0x01, - 0x90, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x73, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x15, - 0x29, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCE, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x06, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x10, - 0xC1, - 0x05, - 0x00, - 0x00, - 0x01, - 0x59, - 0x06, - 0x02, - 0x00, - 0x0E, - 0x29, - 0x02, - 0x02, - 0xE1, - 0x02, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x3D, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x12, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6A, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x3E, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x92, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x8D, - 0x0B, - 0x02, - 0x00, - 0x0B, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xDE, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x06, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x50, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0xCB, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x02, - 0x02, - 0x75, - 0x5E, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x04, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x59, - 0x00, - 0x00, - 0x01, - 0x50, - 0x06, - 0x02, - 0x00, - 0x0F, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0xCB, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x10, - 0x02, - 0x10, - 0xB0, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0xB0, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x6C, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0xCB, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x07, - 0x02, - 0x00, - 0x05, - 0xD7, - 0x02, - 0x02, - 0x02, - 0xE9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x11, - 0x5E, - 0xD5, - 0x75, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x59, - 0x06, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x07, - 0x02, - 0x00, - 0x06, - 0xCE, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x08, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x32, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x9E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x1D, - 0x29, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0xB0, - 0x5E, - 0xE9, - 0x75, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0x56, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x8A, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x05, - 0x02, - 0x00, - 0x09, - 0x75, - 0xCE, - 0x5E, - 0x5E, - 0xDE, - 0x02, - 0x10, - 0xD7, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0x32, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x90, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0xD2, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0xCB, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x05, - 0x02, - 0x00, - 0x09, - 0xDE, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x13, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x0C, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x1C, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x02, - 0x02, - 0x02, - 0x10, - 0x3E, - 0x5E, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0xA7, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x95, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x10, - 0x5E, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x4D, - 0x10, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x12, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x59, - 0x10, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x07, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x11, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x5E, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x92, - 0xA8, - 0xA8, - 0xA8, - 0xDE, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0C, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x10, - 0xB0, - 0x06, - 0x03, - 0x05, - 0x5E, - 0x00, - 0x0A, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x43, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0xCB, - 0x5E, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x99, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0xE1, - 0xE9, - 0x03, - 0x5E, - 0x0D, - 0x03, - 0x01, - 0x32, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x10, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x83, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x20, - 0x99, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x9A, - 0x75, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x08, - 0x5E, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0xC7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x4C, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x0A, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x03, - 0x03, - 0xB0, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x92, - 0x00, - 0x08, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x75, - 0x08, - 0x02, - 0x00, - 0x04, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x50, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB6, - 0x00, - 0x09, - 0x02, - 0x00, - 0x0F, - 0x3E, - 0xD5, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xB0, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x90, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x05, - 0x99, - 0x3D, - 0x02, - 0x02, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB0, - 0x09, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x05, - 0x6A, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x56, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x8C, - 0x06, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x02, - 0x10, - 0x09, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x05, - 0x59, - 0x9D, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x10, - 0x02, - 0x01, - 0x10, - 0x11, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x01, - 0x96, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0xD2, - 0x1B, - 0x02, - 0x01, - 0x10, - 0x12, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x4C, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x0C, - 0x10, - 0x02, - 0x02, - 0x29, - 0x10, - 0x02, - 0x02, - 0x10, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x9E, - 0x73, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x43, - 0x29, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x12, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0xC1, - 0x02, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x29, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x0F, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x06, - 0x73, - 0x4F, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x0F, - 0x02, - 0x01, - 0x10, - 0x0D, - 0x02, - 0x00, - 0x03, - 0x29, - 0x9E, - 0x6A, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x3B, - 0xD2, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0x56, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x29, - 0x05, - 0x02, - 0x00, - 0x04, - 0xE1, - 0x02, - 0x02, - 0x29, - 0x09, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x10, - 0xC4, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x04, - 0x4F, - 0x64, - 0x02, - 0x29, - 0x09, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0xE1, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x83, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x43, - 0xD2, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x03, - 0x29, - 0x4C, - 0x3B, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x64, - 0x00, - 0x15, - 0x02, - 0x00, - 0x04, - 0x10, - 0x4C, - 0xA7, - 0x73, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x83, - 0x3C, - 0x61, - 0x8A, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x10, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0xC1, - 0x4F, - 0x59, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x6A, - 0x4F, - 0x8C, - 0x90, - 0x4C, - 0x9E, - 0xD2, - 0x02, - 0x10, - 0xD2, - 0x12, - 0xC1, - 0x90, - 0x43, - 0x6F, - 0x1B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAA, - 0x0C, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x17, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x95, - 0x94, - 0x0A, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x04, - 0x30, - 0x5A, - 0x6F, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0x4C, - 0x29, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0xDC, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0x8D, - 0xA0, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x9D, - 0xDF, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x59, - 0x8C, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x15, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x12, - 0xA7, - 0x1B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x24, - 0x1B, - 0x95, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x6B, - 0x3B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x04, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x7F, - 0x4F, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x83, - 0x4C, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x8A, - 0x3C, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x9E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x15, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0xA0, - 0x59, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6F, - 0x7C, - 0x02, - 0x02, - 0x29, - 0x08, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x71, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x0C, - 0x83, - 0x7E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x16, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x94, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x74, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x56, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x14, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x10, - 0x95, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x74, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x21, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x29, - 0x60, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x13, - 0x6F, - 0x8A, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x12, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x9E, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x09, - 0x95, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x03, - 0x3D, - 0x75, - 0xD4, - 0x00, - 0x05, - 0x99, - 0x01, - 0x47, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xA8, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x3E, - 0xB0, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0x32, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x59, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x10, - 0x32, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x09, - 0xCB, - 0x75, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x3E, - 0x32, - 0x92, - 0x05, - 0x03, - 0x01, - 0x3D, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x90, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x1A, - 0x43, - 0x29, - 0x29, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x99, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD4, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x05, - 0x03, - 0x00, - 0x17, - 0xCB, - 0x4D, - 0x02, - 0x10, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x99, - 0x4D, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCE, - 0xD4, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3E, - 0x02, - 0xA8, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x7F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x08, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x16, - 0x3D, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1E, - 0xB0, - 0x3E, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x18, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xCB, - 0xDD, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x29, - 0x9D, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x05, - 0x90, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0xA8, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x70, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x1B, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x1A, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xDE, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0xDC, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0x03, - 0xCB, - 0x3E, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x6C, - 0x02, - 0x29, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x19, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xDD, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x7E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x32, - 0x92, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0xB6, - 0xD7, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x83, - 0x02, - 0x10, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0x10, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x3E, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x1E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x06, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x59, - 0x0A, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xB6, - 0x32, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x21, - 0x05, - 0xDC, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xEA, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x1E, - 0x47, - 0x75, - 0x02, - 0xA8, - 0xD5, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0x3D, - 0x9A, - 0x03, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x30, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0C, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xB7, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0x92, - 0xA8, - 0xA8, - 0xA8, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x10, - 0x02, - 0x75, - 0xDE, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x47, - 0xA8, - 0xA8, - 0xB0, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x07, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x10, - 0x10, - 0x47, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x83, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0xDE, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x12, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x61, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0x0C, - 0x00, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x47, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xB6, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB0, - 0xD5, - 0x00, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x32, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0F, - 0x3B, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x08, - 0x02, - 0x00, - 0x1C, - 0x75, - 0x99, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x4D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xB0, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x0F, - 0x47, - 0xD7, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x07, - 0x99, - 0xA8, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x08, - 0x83, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x0C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8B, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x10, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x06, - 0x17, - 0x4F, - 0x10, - 0x29, - 0x02, - 0x10, - 0x08, - 0x02, - 0x00, - 0x18, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0xC6, - 0x6C, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x96, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x59, - 0x6B, - 0x02, - 0x29, - 0x09, - 0x02, - 0x00, - 0x17, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x0B, - 0xDC, - 0xC1, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4F, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x95, - 0x0A, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x10, - 0x02, - 0x61, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9E, - 0x06, - 0x02, - 0x00, - 0x1D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0xC1, - 0x6C, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x06, - 0x59, - 0x3C, - 0x30, - 0x29, - 0x02, - 0x29, - 0x11, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x04, - 0x29, - 0x12, - 0x6F, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1F, - 0x8D, - 0x8B, - 0x7C, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9E, - 0x95, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x83, - 0xC1, - 0x30, - 0x00, - 0x10, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x9E, - 0x43, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x1B, - 0x60, - 0x90, - 0x9D, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x71, - 0x43, - 0x83, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x17, - 0x70, - 0xDF, - 0x74, - 0xC1, - 0x85, - 0x9D, - 0x02, - 0x10, - 0x7C, - 0x9E, - 0x4C, - 0xA0, - 0x3C, - 0x4F, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x50, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0xC7, - 0xD2, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xE4, - 0xA7, - 0xDC, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xBD, - 0x71, - 0x00, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x98, - 0x90, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x4F, - 0x20, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x1D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x90, - 0xDC, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDA, - 0x01, - 0xD2, - 0x20, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0xD2, - 0x00, - 0x22, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0xD2, - 0x00, - 0x24, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x95, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x27, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x96, - 0xD2, - 0x00, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9E, - 0x2C, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x2E, - 0x02, - 0x01, - 0xC4, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9D, - 0x30, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x06, - 0x02, - 0x00, - 0x10, - 0x32, - 0x47, - 0x99, - 0x99, - 0x99, - 0xDE, - 0xB0, - 0x75, - 0x32, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xB0, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x10, - 0xD7, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0xEA, - 0x00, - 0x0A, - 0x92, - 0x02, - 0x32, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x99, - 0xEA, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xCB, - 0x3E, - 0x32, - 0xDD, - 0x00, - 0x04, - 0xEA, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x75, - 0x47, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xA8, - 0x02, - 0x32, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x70, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x16, - 0x47, - 0x80, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x92, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xEA, - 0x99, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x00, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x20, - 0x92, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x4D, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xE9, - 0xA8, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0x6B, - 0x00, - 0x08, - 0x02, - 0x00, - 0x15, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xB0, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x47, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0x75, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xA0, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x07, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8C, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x56, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0A, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x83, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0x99, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x7E, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x70, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xA8, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x10, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x75, - 0x92, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xCB, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3D, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x50, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0x75, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x75, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0xDE, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x32, - 0x92, - 0x80, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x47, - 0x5E, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x30, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x32, - 0x92, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x90, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0xDA, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x09, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x16, - 0xEA, - 0xD7, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x10, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x70, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0xD4, - 0xA8, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x71, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x44, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x90, - 0x00, - 0x08, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xD7, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0x6F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x80, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x05, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x07, - 0x02, - 0x00, - 0x10, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x07, - 0x02, - 0x00, - 0x06, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x20, - 0x01, - 0x95, - 0x08, - 0x02, - 0x00, - 0x0E, - 0xCB, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x07, - 0x02, - 0x00, - 0x06, - 0x75, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x04, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xDA, - 0x31, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x56, - 0x30, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2E, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x2D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0xA0, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDF, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x90, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x44, - 0x26, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9E, - 0x24, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x22, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xBD, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x18, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x6F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x6C, - 0x5A, - 0x30, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x43, - 0x1B, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xA0, - 0x7E, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x12, - 0x8C, - 0x83, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x1B, - 0x3B, - 0xBD, - 0x5A, - 0x56, - 0x12, - 0x0A, - 0x02, - 0x10, - 0x7E, - 0x71, - 0x6B, - 0x8C, - 0xDA, - 0x83, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3A, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x98, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x17, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x6A, - 0x9F, - 0x4C, - 0x8A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0A, - 0xC1, - 0x6F, - 0x1B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x17, - 0x6F, - 0x6B, - 0x29, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x30, - 0x8B, - 0x50, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x12, - 0x15, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x90, - 0x8A, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x17, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x1A, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x6C, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x1E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x29, - 0x00, - 0x21, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x61, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x56, - 0x29, - 0x02, - 0x01, - 0x9F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x2A, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x2B, - 0x02, - 0x01, - 0x71, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x90, - 0x01, - 0x29, - 0x2B, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDE, - 0x04, - 0x99, - 0x00, - 0x03, - 0x3E, - 0x4D, - 0xDE, - 0x00, - 0x04, - 0x99, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x05, - 0x99, - 0x00, - 0x03, - 0x47, - 0x75, - 0xA8, - 0x00, - 0x04, - 0x99, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3C, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x47, - 0x05, - 0x03, - 0x00, - 0x03, - 0x47, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0xD4, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x04, - 0xD5, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x47, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x05, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x3E, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x29, - 0x01, - 0x95, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x32, - 0x02, - 0xB0, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x47, - 0x75, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x74, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x99, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x06, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0xCB, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x75, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x01, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x47, - 0x01, - 0x5E, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x71, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xD4, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x44, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x1E, - 0x05, - 0x03, - 0x01, - 0x92, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0A, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x99, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x3E, - 0x75, - 0x02, - 0x3E, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x99, - 0xDE, - 0x75, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x12, - 0x32, - 0xC9, - 0x80, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x61, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x07, - 0x47, - 0x1F, - 0x03, - 0xDE, - 0x02, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0xC1, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xDE, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCE, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x3C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x74, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x3D, - 0x80, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xDE, - 0x02, - 0x02, - 0x75, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0xB0, - 0xA8, - 0x3D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x9A, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0xE1, - 0x01, - 0xC9, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xCC, - 0x01, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x80, - 0x0B, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDD, - 0x0B, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x07, - 0x02, - 0x01, - 0xCB, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x9A, - 0x0A, - 0x03, - 0x01, - 0x3D, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0C, - 0x2D, - 0x02, - 0x01, - 0xC4, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x2B, - 0x02, - 0x01, - 0x43, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x29, - 0x02, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xB7, - 0x01, - 0x10, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x25, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x70, - 0x01, - 0x12, - 0x22, - 0x02, - 0x00, - 0x03, - 0x10, - 0xC1, - 0x98, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x61, - 0x21, - 0x02, - 0x01, - 0xA0, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x3C, - 0x30, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x6F, - 0x17, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x50, - 0x56, - 0x8A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0xDA, - 0x12, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6B, - 0x70, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x50, - 0x74, - 0x9D, - 0x10, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x71, - 0x9F, - 0x98, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x0E, - 0x17, - 0xD6, - 0xBD, - 0x5A, - 0x56, - 0xC6, - 0x0A, - 0x10, - 0x7F, - 0x0D, - 0x09, - 0x96, - 0x95, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x59, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x3C, - 0x9D, - 0x10, - 0x08, - 0x02, - 0x00, - 0x03, - 0x12, - 0x4F, - 0xDC, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x17, - 0x60, - 0xE8, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x8D, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xE8, - 0x12, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0x1B, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x7C, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x96, - 0x0A, - 0x00, - 0x17, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x1A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x74, - 0xD2, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xA7, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x7C, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x3C, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x96, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x75, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x47, - 0x75, - 0x3D, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x17, - 0x01, - 0x64, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0x47, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6F, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x4D, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x4D, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x09, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0xD7, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x75, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x59, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xCB, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x60, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xC9, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x08, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDA, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x00, - 0x05, - 0x75, - 0xB6, - 0xD7, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x5E, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0xEA, - 0xA8, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x00, - 0x1A, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE8, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x47, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0xA8, - 0xA8, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x02, - 0x02, - 0x4D, - 0x69, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x47, - 0xA8, - 0x3D, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x4F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x92, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x9A, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0x47, - 0x0B, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x96, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x74, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xD5, - 0x09, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x09, - 0x03, - 0x01, - 0x99, - 0x06, - 0x02, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x06, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6F, - 0x28, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x27, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x43, - 0x22, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC7, - 0x21, - 0x02, - 0x01, - 0x74, - 0x01, - 0x17, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x01, - 0x64, - 0x1D, - 0x02, - 0x01, - 0x94, - 0x01, - 0xDC, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x1B, - 0x02, - 0x01, - 0x61, - 0x01, - 0xDC, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x19, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x17, - 0x02, - 0x01, - 0x90, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0x96, - 0xD2, - 0x00, - 0x13, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x71, - 0x10, - 0x02, - 0x00, - 0x03, - 0x8A, - 0xA0, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA0, - 0x30, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x64, - 0x3C, - 0x6A, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0xDC, - 0x4F, - 0x74, - 0xE8, - 0x12, - 0x0A, - 0x02, - 0x7C, - 0x12, - 0xA0, - 0x3C, - 0x60, - 0x17, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0x50, - 0x98, - 0x17, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x04, - 0x98, - 0x3C, - 0x0A, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x30, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x29, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x20, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x44, - 0x0F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x8A, - 0x11, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xCC, - 0x01, - 0x0A, - 0x13, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4F, - 0x16, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x17, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x98, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x64, - 0x19, - 0x02, - 0x01, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x1B, - 0x02, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x60, - 0x01, - 0xD2, - 0x1B, - 0x02, - 0x01, - 0x44, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x1D, - 0x02, - 0x01, - 0x96, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1D, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x1F, - 0x02, - 0x01, - 0x5A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6F, - 0x20, - 0x02, - 0x01, - 0x29, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6B, - 0x21, - 0x02, - 0x01, - 0x9F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x10, - 0x8D, - 0x44, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x99, - 0x99, - 0x99, - 0x4D, - 0x3D, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x10, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x99, - 0xD4, - 0x32, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x9F, - 0x04, - 0x02, - 0x00, - 0x20, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x44, - 0x3B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC4, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x20, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x3E, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xCC, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xE9, - 0xCB, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x32, - 0x9A, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x04, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x43, - 0x06, - 0x02, - 0x00, - 0x11, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x75, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xDE, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0xDD, - 0x75, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x5E, - 0xD4, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0xCB, - 0x75, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x20, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xA8, - 0x47, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0xB0, - 0xA8, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x09, - 0x03, - 0x00, - 0x05, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x95, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x08, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x00, - 0x07, - 0xD5, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x00, - 0x08, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x07, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x05, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xA8, - 0x06, - 0xCB, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x12, - 0x21, - 0x02, - 0x01, - 0xE4, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8C, - 0x20, - 0x02, - 0x01, - 0x10, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x61, - 0x01, - 0x98, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x02, - 0x01, - 0xDA, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x7E, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x17, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8C, - 0x1D, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x1B, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x1B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x1A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x96, - 0x18, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x17, - 0x02, - 0x01, - 0x96, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x15, - 0x02, - 0x01, - 0x0C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x13, - 0x02, - 0x01, - 0x5A, - 0x01, - 0xDC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x11, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x17, - 0x15, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x17, - 0xC4, - 0xD2, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x98, - 0x74, - 0x7E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x64, - 0x9F, - 0x17, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x9F, - 0x5A, - 0x85, - 0x0A, - 0x10, - 0x7E, - 0x0C, - 0x96, - 0x4F, - 0x17, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6C, - 0xD6, - 0x70, - 0x6A, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x4C, - 0x06, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x59, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x17, - 0x01, - 0x94, - 0x0C, - 0x02, - 0x01, - 0x74, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xD3, - 0x0E, - 0x02, - 0x01, - 0x43, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x74, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x43, - 0x14, - 0x02, - 0x01, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x7F, - 0x14, - 0x02, - 0x01, - 0x9D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x3C, - 0x16, - 0x02, - 0x01, - 0xA7, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6F, - 0x18, - 0x02, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4C, - 0x18, - 0x02, - 0x01, - 0x5A, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6A, - 0x19, - 0x02, - 0x01, - 0xD2, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x95, - 0x1A, - 0x02, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x6B, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1D, - 0x20, - 0xD2, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x1F, - 0x03, - 0x47, - 0x4D, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3C, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0xEA, - 0x47, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xCB, - 0x03, - 0xEA, - 0x99, - 0x04, - 0x02, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x7F, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0xB0, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x12, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0x59, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB6, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x08, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x43, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x92, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x1E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x32, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x17, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x1F, - 0x03, - 0x03, - 0x99, - 0xA8, - 0x92, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0xD4, - 0x02, - 0x02, - 0xB0, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x74, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x5A, - 0x04, - 0x02, - 0x01, - 0x92, - 0x01, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xD7, - 0x00, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x95, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xD5, - 0x06, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6A, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x06, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0xCB, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x5A, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x60, - 0x1A, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x12, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x74, - 0x18, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x17, - 0x02, - 0x01, - 0xD2, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x74, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6F, - 0x16, - 0x02, - 0x01, - 0x6A, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x12, - 0x14, - 0x02, - 0x01, - 0x90, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x50, - 0x13, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x5A, - 0x12, - 0x02, - 0x01, - 0x95, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x30, - 0x10, - 0x02, - 0x01, - 0x4C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x3B, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x0A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x5A, - 0x12, - 0xD2, - 0x8A, - 0x4C, - 0x8C, - 0x8D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xD6, - 0x50, - 0x1B, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x74, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xC1, - 0x08, - 0x02, - 0x01, - 0x3C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x0A, - 0x02, - 0x01, - 0x94, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x4F, - 0x0C, - 0x02, - 0x01, - 0x3B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0xC7, - 0x0C, - 0x02, - 0x01, - 0x6B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x70, - 0x0D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x5A, - 0x0E, - 0x02, - 0x01, - 0xBD, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0x12, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x0F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xBD, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC7, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8A, - 0x10, - 0x02, - 0x01, - 0x44, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xDA, - 0x02, - 0x02, - 0xB0, - 0x99, - 0xA8, - 0xB0, - 0x99, - 0xD4, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0x3D, - 0x99, - 0x3D, - 0x02, - 0x02, - 0x60, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x5A, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x92, - 0x03, - 0x99, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xBD, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC7, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x47, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x5E, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xE8, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xD2, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0xA8, - 0x03, - 0x5E, - 0x75, - 0xD7, - 0x1F, - 0x03, - 0xD7, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x15, - 0x59, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x3E, - 0x03, - 0x03, - 0x32, - 0x3D, - 0x03, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xD2, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x50, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x75, - 0xDD, - 0x03, - 0xB0, - 0xDE, - 0x03, - 0x92, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x59, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x92, - 0x1F, - 0x47, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x92, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xDA, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xDE, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x32, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0xC9, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x3D, - 0xB0, - 0x03, - 0xCE, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0xD7, - 0x99, - 0x32, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x92, - 0x75, - 0x03, - 0x03, - 0xD4, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x99, - 0x5E, - 0x75, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x75, - 0x92, - 0x03, - 0xD7, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x9F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x43, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x47, - 0x75, - 0xD5, - 0x03, - 0xA8, - 0x47, - 0x03, - 0xC9, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x03, - 0xD7, - 0xA8, - 0x03, - 0x5E, - 0x3D, - 0x92, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xD6, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x75, - 0x3E, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xC9, - 0x02, - 0x02, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x8A, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x9D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0x0C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0xD4, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0x74, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x3C, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x4F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xA7, - 0x12, - 0x02, - 0x01, - 0x70, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x8D, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x9D, - 0x10, - 0x02, - 0x01, - 0xC7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0x3B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0xC1, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xDA, - 0x0E, - 0x02, - 0x01, - 0x6F, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0C, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x5A, - 0x0C, - 0x02, - 0x01, - 0x43, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x02, - 0x01, - 0xBD, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x6F, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x04, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x50, - 0xC1, - 0x30, - 0x7E, - 0x90, - 0x8D, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x03, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x70, - 0x20, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x20, - 0x0D, - 0x02, - 0x4C, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x4F, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x12, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6C, - 0x05, - 0x02, - 0x01, - 0x98, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x98, - 0x07, - 0x02, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0x3B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x70, - 0x02, - 0x47, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0x6C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xDD, - 0x99, - 0xC9, - 0x02, - 0xE9, - 0x99, - 0x92, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDA, - 0x02, - 0xDD, - 0x47, - 0x9A, - 0x02, - 0x1F, - 0x47, - 0x92, - 0x02, - 0xA7, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0xCE, - 0xB0, - 0x03, - 0x4D, - 0x03, - 0xB0, - 0x92, - 0x02, - 0x9F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xDD, - 0xA8, - 0x03, - 0xD4, - 0x1F, - 0xA8, - 0x92, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0xDD, - 0xD4, - 0x9A, - 0x47, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xCB, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xDD, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0xCE, - 0x32, - 0xCB, - 0x03, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x99, - 0x03, - 0x47, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0x47, - 0x03, - 0xB0, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x3D, - 0x03, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0xD4, - 0x03, - 0x32, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0x03, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xDD, - 0x32, - 0x4D, - 0x03, - 0x4D, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x02, - 0x1F, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x44, - 0x02, - 0xDD, - 0x32, - 0x02, - 0xD5, - 0x32, - 0xA8, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x75, - 0xC9, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0xB6, - 0xB0, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x3D, - 0xCB, - 0xDE, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x99, - 0xDE, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xB0, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xB0, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0xD4, - 0x5E, - 0xB0, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x6B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xE4, - 0x02, - 0xCE, - 0xDE, - 0x03, - 0xD4, - 0x1F, - 0x99, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xDD, - 0x03, - 0x1F, - 0x4D, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xCE, - 0x03, - 0xD5, - 0x02, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x3C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x3C, - 0x02, - 0xCE, - 0x03, - 0x92, - 0x02, - 0xDD, - 0x03, - 0x92, - 0x02, - 0x43, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDF, - 0x02, - 0xC9, - 0x03, - 0xB6, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0xA8, - 0xCB, - 0x32, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x50, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xA7, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x07, - 0x02, - 0x01, - 0x6C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x0C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x30, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x0A, - 0x02, - 0xD2, - 0x98, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x9F, - 0x0A, - 0x4F, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x01, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x17, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3B, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x90, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x47, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xDA, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x6F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x8D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x04, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x20, - 0x70, - 0x17, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x04, - 0x12, - 0x02, - 0x0D, - 0x20, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x4F, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x0C, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0x6C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0xDF, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x07, - 0x02, - 0x01, - 0x98, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x3B, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6C, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0x47, - 0x02, - 0x70, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0x92, - 0x99, - 0xE9, - 0x02, - 0xC9, - 0x99, - 0xCE, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x47, - 0x1F, - 0x02, - 0x9A, - 0x47, - 0xCE, - 0x02, - 0xDA, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9F, - 0x02, - 0x92, - 0x3D, - 0x03, - 0x4D, - 0x1F, - 0x3D, - 0xDD, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0x92, - 0xA8, - 0x1F, - 0xA8, - 0x03, - 0xA8, - 0xCE, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC4, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0x47, - 0x9A, - 0xD4, - 0xDD, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xCB, - 0xCE, - 0x32, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xCE, - 0x92, - 0x32, - 0xDD, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0x03, - 0xCB, - 0x32, - 0xCE, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0x47, - 0x03, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0x03, - 0xB0, - 0x32, - 0xCE, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x03, - 0x3D, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0x03, - 0xD4, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x03, - 0xD7, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x4D, - 0x03, - 0x4D, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x1F, - 0x02, - 0x32, - 0xCE, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0xD5, - 0x02, - 0x32, - 0xDD, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x92, - 0x75, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0xB6, - 0xD7, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xDE, - 0xCB, - 0x3D, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0xDE, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xB0, - 0x92, - 0x32, - 0xCE, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xB0, - 0xDD, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6B, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0xB0, - 0x5E, - 0xD4, - 0xCE, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xDE, - 0x1F, - 0xD4, - 0x03, - 0xDE, - 0xDD, - 0x02, - 0xE4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0x92, - 0x03, - 0x03, - 0x4D, - 0x1F, - 0x03, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3C, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x02, - 0xD5, - 0x03, - 0xDD, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x43, - 0x02, - 0x92, - 0x03, - 0xDD, - 0x02, - 0x92, - 0x03, - 0xCE, - 0x02, - 0xC4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0xB6, - 0x03, - 0x92, - 0x02, - 0xDF, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x50, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x32, - 0xCB, - 0xA8, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0x83, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6C, - 0x07, - 0x02, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x94, - 0x05, - 0x02, - 0x01, - 0x12, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xC4, - 0x05, - 0x02, - 0x01, - 0x90, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x20, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x90, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x98, - 0xD2, - 0x02, - 0x8A, - 0x6C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x0A, - 0xDA, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x50, - 0xD6, - 0xDC, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xC1, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x09, - 0x02, - 0x01, - 0x60, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x94, - 0x0A, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x3B, - 0x0C, - 0x02, - 0x01, - 0x4F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6B, - 0x0C, - 0x02, - 0x01, - 0xC7, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0D, - 0x02, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xBD, - 0x0E, - 0x02, - 0x01, - 0x5A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x0F, - 0x02, - 0x01, - 0x70, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0xBD, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x94, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x44, - 0x10, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x59, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6C, - 0x12, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x60, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0xB0, - 0x99, - 0x3D, - 0x02, - 0x02, - 0xD4, - 0x99, - 0xB0, - 0xA8, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x9F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xBD, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC1, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x5E, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x47, - 0xDE, - 0x03, - 0x92, - 0x02, - 0x02, - 0xC7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x0D, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0xD7, - 0x03, - 0x1F, - 0xD7, - 0x75, - 0x5E, - 0x03, - 0xA8, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0xD2, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x15, - 0xD2, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0x3D, - 0x32, - 0x03, - 0x03, - 0x3E, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x59, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x59, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB0, - 0x03, - 0xDD, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x92, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x60, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x4F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0xBD, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xC9, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xCE, - 0x03, - 0xB0, - 0x3D, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x32, - 0x99, - 0xD7, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x75, - 0x92, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0x75, - 0x5E, - 0x99, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x9F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0xD7, - 0x03, - 0x92, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0xC9, - 0x03, - 0x47, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x43, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x92, - 0x3D, - 0x5E, - 0x03, - 0xA8, - 0xD7, - 0x1F, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB7, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x3E, - 0x75, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x17, - 0x8A, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x9A, - 0x02, - 0x02, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x0C, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x02, - 0x02, - 0x30, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x74, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xD4, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x4F, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x3C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x70, - 0x12, - 0x02, - 0x01, - 0xA7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD2, - 0x11, - 0x02, - 0x01, - 0x8D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x61, - 0x10, - 0x02, - 0x01, - 0x30, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3C, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x10, - 0x02, - 0x01, - 0xB7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xE4, - 0x0E, - 0x02, - 0x01, - 0xC7, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x60, - 0x0E, - 0x02, - 0x01, - 0xDA, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x0C, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x43, - 0x0C, - 0x02, - 0x01, - 0x90, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0B, - 0x02, - 0x01, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x02, - 0x01, - 0x5A, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0xC7, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x74, - 0x7E, - 0x0A, - 0xC1, - 0x50, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6A, - 0x70, - 0xD6, - 0x6C, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x06, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x8D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x95, - 0x01, - 0x0A, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x74, - 0x0C, - 0x02, - 0x01, - 0x94, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x43, - 0x0E, - 0x02, - 0x01, - 0xD3, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4F, - 0x10, - 0x02, - 0x01, - 0x74, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x0A, - 0x11, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6B, - 0x12, - 0x02, - 0x01, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x60, - 0x14, - 0x02, - 0x01, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x9D, - 0x14, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x59, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0xA7, - 0x16, - 0x02, - 0x01, - 0x8C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x30, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x18, - 0x02, - 0x01, - 0xA7, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x5A, - 0x18, - 0x02, - 0x01, - 0x4C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xD2, - 0x19, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x3B, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x3C, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x12, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x32, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0x3D, - 0xB0, - 0x03, - 0x1F, - 0xC9, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xBD, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x47, - 0x03, - 0xEA, - 0x92, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xB0, - 0x03, - 0x03, - 0xEA, - 0x75, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0xEA, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x6A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x59, - 0x05, - 0x02, - 0x00, - 0x07, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3E, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x08, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x08, - 0x99, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x04, - 0x03, - 0x00, - 0x08, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0xEA, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x0C, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0xB6, - 0x03, - 0x03, - 0x92, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0x9A, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x0C, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x32, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0x99, - 0x02, - 0xC9, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x47, - 0x03, - 0xEA, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x75, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x70, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0x92, - 0xA8, - 0xDE, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x94, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x02, - 0x02, - 0x99, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x05, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x00, - 0x06, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x5A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x04, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0xD5, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x04, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x4F, - 0x1A, - 0x02, - 0x01, - 0x5A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x59, - 0x1A, - 0x02, - 0x01, - 0x60, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x0D, - 0x18, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x20, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x18, - 0x02, - 0x01, - 0x74, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x0A, - 0x17, - 0x02, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x74, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x16, - 0x02, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x5A, - 0x14, - 0x02, - 0x01, - 0x12, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD2, - 0x13, - 0x02, - 0x01, - 0x8D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x12, - 0x02, - 0x01, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4C, - 0x10, - 0x02, - 0x01, - 0x30, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x30, - 0x0C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0x8C, - 0x08, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x8D, - 0x8C, - 0x4C, - 0x8A, - 0x02, - 0x4C, - 0x5A, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x17, - 0x98, - 0x50, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x4F, - 0x30, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0A, - 0x3C, - 0x98, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x9D, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x98, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x0F, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x11, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x4F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x7E, - 0x13, - 0x02, - 0x01, - 0x29, - 0x01, - 0xCC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x8A, - 0x16, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x17, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6B, - 0x19, - 0x02, - 0x01, - 0x64, - 0x01, - 0x1B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x1B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x64, - 0x1B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x96, - 0x1D, - 0x02, - 0x01, - 0x4C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x1D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x20, - 0x01, - 0x5A, - 0x1F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x29, - 0x1F, - 0x02, - 0x01, - 0x10, - 0x01, - 0x6F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x21, - 0x02, - 0x01, - 0x6B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x10, - 0x4C, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x32, - 0xD4, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x75, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x3D, - 0x4D, - 0x99, - 0x99, - 0x99, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x64, - 0x8D, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x20, - 0x3B, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x32, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x04, - 0x02, - 0x01, - 0xDA, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xC4, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xE9, - 0x3E, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xCB, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x9F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x11, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xDE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x75, - 0xC9, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0xD4, - 0x1F, - 0x9A, - 0x75, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x75, - 0x99, - 0x03, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xB0, - 0xD5, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xDE, - 0xA8, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x01, - 0x17, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x00, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0xE4, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x08, - 0x03, - 0x01, - 0x92, - 0x05, - 0x02, - 0x01, - 0x99, - 0x08, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x07, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xD5, - 0x07, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x06, - 0xCB, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x05, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xE4, - 0x21, - 0x02, - 0x01, - 0x12, - 0x01, - 0x20, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x20, - 0x02, - 0x01, - 0x8C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x98, - 0x01, - 0x61, - 0x1F, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x02, - 0x01, - 0x74, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x01, - 0xC7, - 0x1D, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x1D, - 0x02, - 0x01, - 0x8C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x1B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x96, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8C, - 0x17, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x0C, - 0x15, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x5A, - 0x13, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x17, - 0x01, - 0x3C, - 0x11, - 0x02, - 0x01, - 0xD3, - 0x01, - 0xDC, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x0D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xC4, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x64, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x74, - 0x98, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x17, - 0xA7, - 0x8C, - 0x0C, - 0x9D, - 0x10, - 0x30, - 0x85, - 0x5A, - 0x9F, - 0x1B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x59, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x4F, - 0x12, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x3C, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x90, - 0x0A, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0xE8, - 0x60, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x74, - 0x0A, - 0x00, - 0x12, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x6C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x15, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1C, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x1E, - 0x02, - 0x01, - 0x96, - 0x01, - 0x17, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x43, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x71, - 0x21, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x3C, - 0x23, - 0x02, - 0x01, - 0xC7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x27, - 0x02, - 0x01, - 0x96, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x27, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x4D, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x3D, - 0x75, - 0x47, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x32, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x3E, - 0x47, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x75, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x00, - 0x05, - 0x02, - 0x01, - 0x43, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x08, - 0xD7, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xB6, - 0x75, - 0x47, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x47, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x64, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x13, - 0xD7, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x4D, - 0x4D, - 0x9A, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x4D, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xE8, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3E, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x47, - 0x02, - 0x32, - 0x04, - 0x03, - 0x00, - 0x05, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x60, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD4, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xEA, - 0x00, - 0x08, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0D, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x9A, - 0x06, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x92, - 0x75, - 0x00, - 0x06, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x04, - 0x03, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x09, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0xD7, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x10, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x5E, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x03, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x64, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x1A, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x4D, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x98, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x3D, - 0xA8, - 0x47, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x69, - 0x4D, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0xA8, - 0xA8, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x9A, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x96, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0xEA, - 0x0A, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xD6, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xEA, - 0x09, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x74, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xC7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x08, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x99, - 0x06, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x64, - 0x28, - 0x02, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x27, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x59, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xBD, - 0x25, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x22, - 0x02, - 0x01, - 0x43, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x17, - 0x01, - 0x74, - 0x21, - 0x02, - 0x01, - 0x4C, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x1F, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x1D, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x61, - 0x1B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x19, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x59, - 0x01, - 0x90, - 0x17, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x30, - 0x13, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xA0, - 0xD2, - 0x00, - 0x10, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x3C, - 0x64, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x5A, - 0x50, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0x17, - 0x6F, - 0x3C, - 0xA0, - 0x12, - 0x7C, - 0x02, - 0x0A, - 0x12, - 0x6B, - 0x74, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x56, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x17, - 0x98, - 0x8D, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x98, - 0x1B, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xC1, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x4C, - 0x9F, - 0x6A, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x50, - 0x8B, - 0x30, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x29, - 0x6B, - 0x6F, - 0x17, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x60, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x17, - 0x9F, - 0x9D, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x6A, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x56, - 0x8A, - 0x00, - 0x1A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x1E, - 0x02, - 0x01, - 0x9F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x21, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3C, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x23, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x3C, - 0x1B, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x25, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x01, - 0x8A, - 0x28, - 0x02, - 0x01, - 0x56, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x29, - 0x02, - 0x01, - 0x29, - 0x01, - 0x9F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x71, - 0x01, - 0x29, - 0x2A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6B, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x04, - 0x99, - 0x00, - 0x03, - 0xA8, - 0x75, - 0x47, - 0x00, - 0x05, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x01, - 0x4D, - 0x01, - 0x3E, - 0x04, - 0x99, - 0x01, - 0xDE, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x47, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x05, - 0x03, - 0x00, - 0x03, - 0x92, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0xD5, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x03, - 0xD4, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0x47, - 0x04, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x75, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x3E, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xB0, - 0x02, - 0x32, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x03, - 0x9A, - 0xCB, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x9F, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x00, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0x92, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x71, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x44, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x8A, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0x99, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x4D, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD7, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x75, - 0xDE, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x70, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0x32, - 0x02, - 0x4D, - 0x80, - 0xC9, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0xDE, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE4, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xDD, - 0xA8, - 0x02, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xDE, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x75, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x12, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0x3D, - 0x02, - 0x75, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x74, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0xC6, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3D, - 0xA8, - 0xB0, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x75, - 0x02, - 0x02, - 0x99, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x98, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x9A, - 0x00, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x17, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xE1, - 0x04, - 0x02, - 0x01, - 0x99, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x9A, - 0x0B, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x0B, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xCB, - 0x07, - 0x02, - 0x01, - 0xC1, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x74, - 0x2D, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC6, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xCC, - 0x2B, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x29, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x10, - 0x01, - 0xB7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x26, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x23, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xA0, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x1F, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x01, - 0x10, - 0x1C, - 0x02, - 0x01, - 0x61, - 0x01, - 0x6A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x6F, - 0x12, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x0A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x50, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x70, - 0x6B, - 0x10, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x12, - 0xDA, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x98, - 0x9F, - 0x71, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x74, - 0x50, - 0x16, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0E, - 0x8D, - 0x95, - 0x96, - 0x6B, - 0x0D, - 0x7F, - 0x10, - 0x0A, - 0xC6, - 0x56, - 0x5A, - 0xBD, - 0xD6, - 0x17, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x20, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0xE4, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xC7, - 0x43, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x1B, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x03, - 0x71, - 0xBD, - 0x6C, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x20, - 0x4F, - 0x9D, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x29, - 0x90, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x01, - 0xC7, - 0x1A, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0x10, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x83, - 0x01, - 0xCA, - 0x20, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x22, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x20, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x7E, - 0x24, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x90, - 0xDC, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x26, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x6B, - 0x6A, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0xDC, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x2C, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xC4, - 0x2E, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x2F, - 0x02, - 0x01, - 0x8C, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x30, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x10, - 0x4D, - 0x47, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD4, - 0x75, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x47, - 0x32, - 0x06, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0xEA, - 0x00, - 0x04, - 0xDD, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0xEA, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x3D, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x02, - 0x92, - 0x04, - 0xEA, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x00, - 0x0B, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0xA8, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x03, - 0x4D, - 0x92, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x07, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x16, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x75, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x9A, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x83, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x20, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x47, - 0x75, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xB0, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x9A, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0xA0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x75, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x80, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x7E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x47, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x09, - 0x02, - 0x00, - 0x08, - 0xD7, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0xD4, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA0, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x8C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x99, - 0xEA, - 0x1F, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xD4, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x99, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x12, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x32, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x09, - 0x99, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x4D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xA8, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xCB, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0xD4, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x80, - 0x3D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x03, - 0x75, - 0xCB, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xA8, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x4C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xCB, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xB6, - 0x02, - 0x02, - 0x32, - 0x80, - 0x92, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x5E, - 0xDE, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x90, - 0x09, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x09, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x75, - 0xB6, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x71, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x00, - 0x16, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0xD7, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x61, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xA8, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x70, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x8C, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x12, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x0D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x60, - 0x08, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x03, - 0x1F, - 0x9A, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x11, - 0x3E, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x47, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x10, - 0x32, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x00, - 0x10, - 0x75, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x07, - 0x02, - 0x00, - 0x06, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0x80, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x75, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0E, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x08, - 0x02, - 0x00, - 0x06, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD4, - 0x08, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x31, - 0x02, - 0x01, - 0xDA, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x30, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x2D, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x20, - 0xDF, - 0xD2, - 0x00, - 0x2B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0C, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x26, - 0x02, - 0x01, - 0x44, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x98, - 0xE4, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x90, - 0x22, - 0x02, - 0x01, - 0x12, - 0x01, - 0x83, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xCC, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x56, - 0x01, - 0x6A, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x1C, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x9E, - 0x00, - 0x18, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x9E, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x20, - 0x83, - 0x3C, - 0x12, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x7E, - 0xA0, - 0x6F, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x20, - 0x83, - 0xDA, - 0x8C, - 0x6B, - 0x71, - 0x7E, - 0x10, - 0x02, - 0x30, - 0x12, - 0x56, - 0x5A, - 0xBD, - 0x60, - 0x1B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x5E, - 0x0C, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0x5A, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x05, - 0x10, - 0x0A, - 0x94, - 0x95, - 0x6C, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x04, - 0x29, - 0x4C, - 0x43, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0xDC, - 0x43, - 0x9D, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x8D, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x17, - 0xA7, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x16, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x56, - 0x8A, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x95, - 0x1B, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x09, - 0x17, - 0x95, - 0x7F, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x04, - 0x59, - 0x8C, - 0x8A, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x4C, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x09, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x18, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x9E, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x61, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x6F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x09, - 0xDC, - 0x94, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x1A, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x7F, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0xDC, - 0x90, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x9E, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x8A, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x1C, - 0x02, - 0x00, - 0x0E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x56, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x24, - 0x60, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x74, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x04, - 0x59, - 0x30, - 0x29, - 0x29, - 0x22, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x8A, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x26, - 0x1B, - 0x8C, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x02, - 0x71, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x32, - 0x05, - 0x99, - 0x00, - 0x04, - 0xB0, - 0x3E, - 0x3E, - 0xDE, - 0x05, - 0x99, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x00, - 0x03, - 0xD4, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0A, - 0x17, - 0x90, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x04, - 0x92, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x09, - 0x92, - 0xD4, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCE, - 0x32, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x83, - 0x29, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x05, - 0x92, - 0x32, - 0x02, - 0xD4, - 0xD5, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x01, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x75, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x3C, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x10, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x10, - 0x02, - 0x10, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0xD2, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x17, - 0xD2, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x32, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x10, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x75, - 0x02, - 0x10, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0xB7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x29, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0xA8, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0xD7, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x74, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0A, - 0xCB, - 0x3E, - 0xB0, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x5E, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x05, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xCB, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0E, - 0xCB, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x60, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x3B, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x29, - 0x02, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0x9A, - 0xA8, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0x8B, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0xA0, - 0x29, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0D, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3E, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0A, - 0x92, - 0xD4, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x05, - 0x7E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x07, - 0x02, - 0x00, - 0x08, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x25, - 0x05, - 0x98, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x1B, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0xD7, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x29, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1E, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x4D, - 0x00, - 0x06, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xCB, - 0x3E, - 0x02, - 0x32, - 0xB6, - 0xA8, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x56, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x1E, - 0xCB, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xA0, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x92, - 0x03, - 0x9A, - 0x3D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x29, - 0x05, - 0x05, - 0x96, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xB7, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x32, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x23, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xD4, - 0x02, - 0x75, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x18, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x56, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x1B, - 0xC9, - 0xB0, - 0xA8, - 0xA8, - 0x47, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x75, - 0x02, - 0x10, - 0x3D, - 0xCE, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xA8, - 0xA8, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0xB6, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x00, - 0x0F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x92, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x3C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x61, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x03, - 0xB6, - 0xD7, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0x32, - 0x01, - 0xEA, - 0x07, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x01, - 0x75, - 0x07, - 0x02, - 0x00, - 0x04, - 0x0C, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x11, - 0x1B, - 0x61, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x10, - 0x5E, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x3D, - 0xDD, - 0x1F, - 0x03, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xA8, - 0x4D, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x47, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD3, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x4C, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x09, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x20, - 0x1B, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x9D, - 0x6C, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x1E, - 0x8D, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x8A, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x96, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x1D, - 0x1B, - 0x95, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x6B, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x17, - 0x4F, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x59, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x1B, - 0x17, - 0x60, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x29, - 0x8A, - 0x43, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x05, - 0x83, - 0x61, - 0x02, - 0x02, - 0x10, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x0A, - 0x95, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x18, - 0x98, - 0xC1, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x0B, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x6F, - 0x71, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x30, - 0x3C, - 0x59, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x15, - 0x1B, - 0x95, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x03, - 0x7C, - 0x90, - 0x8D, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x04, - 0x59, - 0x43, - 0x9E, - 0x10, - 0x10, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x30, - 0xC1, - 0x83, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x16, - 0x83, - 0x43, - 0x71, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9D, - 0x90, - 0x60, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x10, - 0x6C, - 0x4F, - 0x3C, - 0xA0, - 0x4C, - 0x9D, - 0x7C, - 0x10, - 0x02, - 0x9D, - 0x85, - 0xC1, - 0x74, - 0xDF, - 0x70, - 0x17, - 0x17, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x42, - 0x0B, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x59, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x83, - 0xBD, - 0x12, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x10, - 0x30, - 0x90, - 0x6F, - 0x1B, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x3B, - 0x8B, - 0x9D, - 0x00, - 0x12, - 0x02, - 0x00, - 0x04, - 0x29, - 0xC1, - 0x4F, - 0x1B, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x60, - 0x01, - 0x12, - 0x18, - 0x02, - 0x00, - 0x03, - 0x29, - 0xCC, - 0x73, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x1C, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x95, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x24, - 0x59, - 0xA0, - 0x8A, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x12, - 0x3B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x08, - 0x95, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0xC1, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x96, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6A, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x73, - 0x01, - 0x56, - 0x07, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0x10, - 0x12, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x03, - 0x29, - 0x7C, - 0x50, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x29, - 0x10, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x10, - 0x61, - 0x73, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0x6F, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x00, - 0x13, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x04, - 0x83, - 0x29, - 0x02, - 0x29, - 0x15, - 0x02, - 0x01, - 0x10, - 0x14, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x3C, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x73, - 0x64, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x29, - 0x14, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x05, - 0x43, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x02, - 0x10, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x10, - 0x01, - 0x4C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x73, - 0xD2, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x28, - 0x3E, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xDE, - 0xD7, - 0x02, - 0x47, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x75, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x3E, - 0x02, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x3D, - 0x07, - 0x02, - 0x00, - 0x05, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x09, - 0x8C, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x32, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0D, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0xB0, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x5E, - 0x47, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x3E, - 0x5E, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0D, - 0x92, - 0x02, - 0x02, - 0x5E, - 0x5E, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0x9E, - 0x73, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0xCE, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x00, - 0x04, - 0x32, - 0x02, - 0x02, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x02, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x90, - 0x08, - 0x02, - 0x01, - 0x32, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x02, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x08, - 0xE1, - 0x02, - 0x02, - 0x29, - 0xD2, - 0x73, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x05, - 0x05, - 0x30, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x32, - 0x5E, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x1B, - 0xA8, - 0x02, - 0x10, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x92, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0xA7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x3B, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x17, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB6, - 0x02, - 0x29, - 0x3D, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x99, - 0x04, - 0x02, - 0x00, - 0x09, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x96, - 0x29, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x32, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x16, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xD4, - 0x02, - 0xE9, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x10, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x32, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x10, - 0x3E, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x92, - 0xB0, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x08, - 0x10, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x70, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x83, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x04, - 0xDE, - 0x03, - 0x03, - 0x5E, - 0x06, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x03, - 0x03, - 0xCE, - 0x06, - 0x02, - 0x00, - 0x09, - 0x5E, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x90, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x43, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x16, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0x05, - 0x02, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x90, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0xB0, - 0x5E, - 0x00, - 0x07, - 0x03, - 0x00, - 0x15, - 0x5E, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0xC1, - 0x09, - 0x02, - 0x00, - 0x09, - 0x10, - 0x32, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0B, - 0xCE, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x04, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x5E, - 0xCB, - 0x10, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x73, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x12, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x5E, - 0x07, - 0x03, - 0x00, - 0x03, - 0xCB, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x5E, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x08, - 0x29, - 0xE1, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x59, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x7E, - 0x06, - 0x02, - 0x00, - 0x0D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x3E, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x02, - 0x02, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x8A, - 0x02, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x32, - 0x5E, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x06, - 0x03, - 0x01, - 0x99, - 0x09, - 0x02, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x83, - 0x00, - 0x00, - 0x01, - 0x59, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0xA8, - 0x07, - 0x02, - 0x00, - 0x1A, - 0x10, - 0xCE, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x75, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xCB, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x0B, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x0A, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x29, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x32, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0xA8, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x75, - 0xD5, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xDD, - 0x10, - 0x02, - 0x02, - 0xD7, - 0x07, - 0x02, - 0x00, - 0x07, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x9E, - 0x29, - 0x00, - 0x09, - 0x02, - 0x01, - 0x32, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0xDE, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x29, - 0xB0, - 0xCE, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x5E, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x56, - 0x06, - 0x02, - 0x00, - 0x1F, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x3E, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x92, - 0x02, - 0x02, - 0x75, - 0xE9, - 0x5E, - 0xB0, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x32, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x08, - 0x32, - 0x10, - 0x02, - 0xDE, - 0x5E, - 0x03, - 0xE9, - 0x75, - 0x05, - 0x02, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x3C, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x2C, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x29, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xB6, - 0x02, - 0x02, - 0x3E, - 0xEA, - 0x03, - 0x03, - 0x5E, - 0xDE, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x6F, - 0x07, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0x3E, - 0x02, - 0x29, - 0xCB, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x3E, - 0x04, - 0x02, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x59, - 0x8A, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x16, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x99, - 0x10, - 0x02, - 0x4D, - 0x05, - 0x03, - 0x00, - 0x11, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x29, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x56, - 0x29, - 0x04, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x05, - 0x03, - 0x00, - 0x06, - 0xDE, - 0xA8, - 0xA8, - 0xA8, - 0x92, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x12, - 0x5E, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x5E, - 0x3D, - 0xA8, - 0xA8, - 0xA8, - 0x5E, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x10, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x10, - 0x02, - 0x10, - 0x6A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x05, - 0x95, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x32, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x06, - 0x03, - 0x04, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xCB, - 0x09, - 0x02, - 0x00, - 0x03, - 0x12, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x59, - 0x10, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x32, - 0x5E, - 0x5E, - 0x0A, - 0x03, - 0x00, - 0x0F, - 0x5E, - 0x03, - 0x03, - 0xD5, - 0xE1, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x99, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x03, - 0x3C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x61, - 0x04, - 0x02, - 0x00, - 0x0B, - 0x10, - 0x02, - 0x02, - 0x02, - 0x32, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x3D, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0x9A, - 0x07, - 0x03, - 0x01, - 0x5E, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x04, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x08, - 0x02, - 0x00, - 0x04, - 0x75, - 0x5E, - 0x03, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x11, - 0x5E, - 0x03, - 0x92, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x10, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x73, - 0x61, - 0x02, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x0A, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xD5, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0xB6, - 0x00, - 0x06, - 0x03, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x92, - 0x08, - 0x02, - 0x00, - 0x05, - 0x8A, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x3B, - 0x04, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x09, - 0xCB, - 0x00, - 0x06, - 0xB0, - 0x3E, - 0x10, - 0x02, - 0x02, - 0x29, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x10, - 0x99, - 0x3D, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0xC1, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x4C, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x10, - 0x29, - 0x02, - 0x02, - 0x10, - 0x00, - 0x09, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x01, - 0x10, - 0x0A, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x00, - 0x0D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0x90, - 0x02, - 0x29, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x20, - 0x02, - 0x00, - 0x03, - 0x10, - 0x9E, - 0x73, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x56, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x29, - 0x0D, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9E, - 0x12, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x02, - 0x10, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x11, - 0x6A, - 0xD2, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x12, - 0x02, - 0x01, - 0x10, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x43, - 0x73, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x01, - 0x90, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0x10, - 0x0B, - 0x02, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x10, - 0x0C, - 0x02, - 0x01, - 0x90, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x05, - 0x6A, - 0x9E, - 0x02, - 0x02, - 0x10, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x73, - 0x01, - 0x56, - 0x11, - 0x02, - 0x01, - 0x29, - 0x01, - 0xE1, - 0x11, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x10, - 0xC4, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6A, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x04, - 0x83, - 0x0C, - 0x29, - 0xE1, - 0x13, - 0x02, - 0x01, - 0xE1, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x64, - 0x95, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xC7, - 0x05, - 0x02, - 0x01, - 0x29, - 0x13, - 0x02, - 0x00, - 0x04, - 0x10, - 0xD2, - 0x43, - 0x73, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x6F, - 0x4C, - 0x8A, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x64, - 0xC4, - 0x59, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x59, - 0x4F, - 0xC1, - 0x29, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x8A, - 0xC7, - 0x3C, - 0x83, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x73, - 0x6F, - 0x43, - 0x90, - 0xC1, - 0x9E, - 0x7E, - 0x10, - 0x02, - 0xD2, - 0x9E, - 0x56, - 0x90, - 0xC4, - 0x4F, - 0x6A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x5E, - 0x0C, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x70, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0x5A, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x05, - 0x10, - 0x0A, - 0x94, - 0x95, - 0x6C, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x04, - 0x29, - 0x4C, - 0x43, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0xDC, - 0x43, - 0x9D, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x8D, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x17, - 0xA7, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x16, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x56, - 0x8A, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x95, - 0x1B, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x09, - 0x17, - 0x95, - 0x7F, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x04, - 0x59, - 0x8C, - 0x8A, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x4C, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x09, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x18, - 0x02, - 0x00, - 0x0A, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x9E, - 0x3B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x61, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x7C, - 0x01, - 0x6F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x09, - 0xDC, - 0x94, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x1A, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x7F, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x06, - 0xDC, - 0x90, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x9E, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x8A, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x1C, - 0x02, - 0x00, - 0x0E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x56, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x24, - 0x60, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x74, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x04, - 0x59, - 0x30, - 0x29, - 0x29, - 0x22, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x8A, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x26, - 0x1B, - 0x8C, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x06, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x02, - 0x71, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x04, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x32, - 0x05, - 0x99, - 0x00, - 0x04, - 0xB0, - 0x3E, - 0x3E, - 0xDE, - 0x05, - 0x99, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x00, - 0x03, - 0xD4, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x95, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0A, - 0x17, - 0x90, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x04, - 0x92, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x09, - 0x92, - 0xD4, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCE, - 0x32, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x83, - 0x29, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x05, - 0x92, - 0x32, - 0x02, - 0xD4, - 0xD5, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x01, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x75, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x43, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x3C, - 0xA0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x10, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x10, - 0x02, - 0x10, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0xD2, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x17, - 0xD2, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x32, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x10, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x75, - 0x02, - 0x10, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0xB7, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x19, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x29, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0xA8, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0xD7, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x74, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x3D, - 0x05, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0A, - 0xCB, - 0x3E, - 0xB0, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x5E, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x05, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x75, - 0x3D, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xCB, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x0E, - 0xCB, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x60, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x3B, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x29, - 0x02, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0x9A, - 0xA8, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x01, - 0x8B, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x43, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0xA0, - 0x29, - 0x09, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x02, - 0x10, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x6B, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0D, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3E, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0A, - 0x92, - 0xD4, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x29, - 0x06, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x05, - 0x7E, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x07, - 0x02, - 0x00, - 0x08, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x08, - 0x02, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x25, - 0x05, - 0x98, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x1B, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0x32, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x10, - 0x3E, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0xD7, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x27, - 0x05, - 0x05, - 0x29, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3D, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1E, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x4D, - 0x00, - 0x06, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x9E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xCB, - 0x3E, - 0x02, - 0x32, - 0xB6, - 0xA8, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x0A, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x56, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x1E, - 0xCB, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xA0, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x08, - 0x92, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x92, - 0x03, - 0x9A, - 0x3D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x29, - 0x05, - 0x05, - 0x96, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0xEA, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0xB7, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x32, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0F, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0xB0, - 0x75, - 0x29, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x09, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x23, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xD4, - 0x02, - 0x75, - 0x99, - 0x00, - 0x05, - 0x03, - 0x00, - 0x18, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x95, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x56, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x3D, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x1B, - 0xC9, - 0xB0, - 0xA8, - 0xA8, - 0x47, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xDE, - 0x75, - 0x02, - 0x10, - 0x3D, - 0xCE, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xA8, - 0xA8, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0xB6, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x0D, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x00, - 0x0F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x47, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0xA8, - 0x92, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x3C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x61, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x75, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x07, - 0x03, - 0x00, - 0x03, - 0xB6, - 0xD7, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x11, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0x32, - 0x01, - 0xEA, - 0x07, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xD5, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x01, - 0x75, - 0x07, - 0x02, - 0x00, - 0x04, - 0x0C, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x11, - 0x1B, - 0x61, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x10, - 0x5E, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x3D, - 0xDD, - 0x1F, - 0x03, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x10, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xA8, - 0x4D, - 0x00, - 0x0A, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x47, - 0x08, - 0xCB, - 0x00, - 0x03, - 0x99, - 0xB0, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD3, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x4C, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x0C, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x09, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x20, - 0x1B, - 0xA0, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x9D, - 0x6C, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x08, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x1E, - 0x8D, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x02, - 0x8A, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x96, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x1D, - 0x1B, - 0x95, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x04, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x6B, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x03, - 0x17, - 0x4F, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x29, - 0x15, - 0x02, - 0x00, - 0x0A, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x59, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x1B, - 0x17, - 0x60, - 0xC6, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x29, - 0x8A, - 0x43, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x05, - 0x83, - 0x61, - 0x02, - 0x02, - 0x10, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x0A, - 0x95, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x18, - 0x98, - 0xC1, - 0x10, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x0B, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x6F, - 0x71, - 0x00, - 0x15, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x30, - 0x3C, - 0x59, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x15, - 0x1B, - 0x95, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x07, - 0x02, - 0x00, - 0x03, - 0x7C, - 0x90, - 0x8D, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x04, - 0x59, - 0x43, - 0x9E, - 0x10, - 0x10, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x30, - 0xC1, - 0x83, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x16, - 0x83, - 0x43, - 0x71, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9D, - 0x90, - 0x60, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x10, - 0x6C, - 0x4F, - 0x3C, - 0xA0, - 0x4C, - 0x9D, - 0x7C, - 0x10, - 0x02, - 0x9D, - 0x85, - 0xC1, - 0x74, - 0xDF, - 0x70, - 0x17, - 0x17, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x20, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xA7, - 0xE4, - 0x30, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xC7, - 0x43, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x1B, - 0xA7, - 0x6B, - 0x0A, - 0x11, - 0x02, - 0x00, - 0x03, - 0x71, - 0xBD, - 0x6C, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x20, - 0x4F, - 0x9D, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x29, - 0x90, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x01, - 0xC7, - 0x1A, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0x10, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x83, - 0x01, - 0xCA, - 0x20, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x22, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x20, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x7E, - 0x24, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x90, - 0xDC, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x26, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x6B, - 0x6A, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0xDC, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x2C, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xC4, - 0x2E, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x2F, - 0x02, - 0x01, - 0x8C, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x30, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x70, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x10, - 0x4D, - 0x47, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0xD4, - 0x75, - 0xB0, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x47, - 0x32, - 0x06, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0xEA, - 0x00, - 0x04, - 0xDD, - 0x32, - 0x3E, - 0xCB, - 0x05, - 0xEA, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x3D, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x02, - 0x92, - 0x04, - 0xEA, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x00, - 0x0B, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0xA8, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x32, - 0x04, - 0x02, - 0x00, - 0x03, - 0x4D, - 0x92, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x07, - 0x02, - 0x00, - 0x06, - 0x90, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x07, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x16, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x75, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x9A, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x83, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x20, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x47, - 0x75, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xB0, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x9A, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0xA0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x75, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x80, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0xD2, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x7E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x47, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x6F, - 0x09, - 0x02, - 0x00, - 0x08, - 0xD7, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0xD4, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0xA0, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x8C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x99, - 0xEA, - 0x1F, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xD4, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x80, - 0x47, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x99, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x12, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x0A, - 0x32, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x09, - 0x99, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x4D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xA8, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x70, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x07, - 0x02, - 0x00, - 0x08, - 0xCB, - 0x5E, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x08, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0xD4, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x80, - 0x3D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x03, - 0x75, - 0xCB, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xA8, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x4C, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xCB, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xB6, - 0x02, - 0x02, - 0x32, - 0x80, - 0x92, - 0x32, - 0x05, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x6B, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x5E, - 0xDE, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0x90, - 0x09, - 0x02, - 0x00, - 0x1B, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x32, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xDA, - 0x09, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x75, - 0xB6, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x71, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x83, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x00, - 0x16, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0xD7, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x04, - 0xBD, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x61, - 0x00, - 0x08, - 0x02, - 0x00, - 0x26, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xA8, - 0xA8, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x09, - 0x02, - 0x00, - 0x04, - 0x70, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x8C, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x12, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xB0, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x0D, - 0x98, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x60, - 0x08, - 0x02, - 0x00, - 0x08, - 0x3E, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x05, - 0x5E, - 0x03, - 0x1F, - 0x9A, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0x47, - 0x08, - 0x02, - 0x00, - 0x05, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x11, - 0x3E, - 0xC9, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x47, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x10, - 0x32, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x00, - 0x10, - 0x75, - 0x92, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x10, - 0x4D, - 0xCB, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0xD4, - 0x07, - 0x02, - 0x00, - 0x06, - 0x12, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x07, - 0x02, - 0x00, - 0x0F, - 0x3D, - 0x80, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x75, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0E, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x08, - 0x02, - 0x00, - 0x06, - 0x95, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD4, - 0x08, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x31, - 0x02, - 0x01, - 0xDA, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x30, - 0x02, - 0x01, - 0x56, - 0x01, - 0x83, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x2D, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x03, - 0x20, - 0xDF, - 0xD2, - 0x00, - 0x2B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x6A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0C, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x26, - 0x02, - 0x01, - 0x44, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x98, - 0xE4, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x90, - 0x22, - 0x02, - 0x01, - 0x12, - 0x01, - 0x83, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xCC, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x56, - 0x01, - 0x6A, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x1C, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x20, - 0x6F, - 0x9E, - 0x00, - 0x18, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x9E, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x20, - 0x83, - 0x3C, - 0x12, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x7E, - 0xA0, - 0x6F, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x20, - 0x83, - 0xDA, - 0x8C, - 0x6B, - 0x71, - 0x7E, - 0x10, - 0x02, - 0x30, - 0x12, - 0x56, - 0x5A, - 0xBD, - 0x60, - 0x1B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x56, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x17, - 0x98, - 0x8D, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x98, - 0x1B, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xC1, - 0x0A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8A, - 0x4C, - 0x9F, - 0x6A, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x50, - 0x8B, - 0x30, - 0x00, - 0x0F, - 0x02, - 0x00, - 0x04, - 0x29, - 0x6B, - 0x6F, - 0x17, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC1, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x60, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x17, - 0x9F, - 0x9D, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x6A, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x56, - 0x8A, - 0x00, - 0x1A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x1E, - 0x02, - 0x01, - 0x9F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x21, - 0x02, - 0x00, - 0x03, - 0x29, - 0x3C, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x23, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x3C, - 0x1B, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x25, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x01, - 0x8A, - 0x28, - 0x02, - 0x01, - 0x56, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x29, - 0x02, - 0x01, - 0x29, - 0x01, - 0x9F, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x71, - 0x01, - 0x29, - 0x2A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6B, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x04, - 0x99, - 0x00, - 0x03, - 0xA8, - 0x75, - 0x47, - 0x00, - 0x05, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x05, - 0x99, - 0x01, - 0x4D, - 0x01, - 0x3E, - 0x04, - 0x99, - 0x01, - 0xDE, - 0x01, - 0x32, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x75, - 0x47, - 0x00, - 0x05, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x05, - 0x03, - 0x00, - 0x03, - 0x92, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0xD5, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x03, - 0xD4, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x75, - 0x75, - 0x47, - 0x04, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x75, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x3E, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xB0, - 0x02, - 0x32, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x03, - 0x9A, - 0xCB, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x9F, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xCE, - 0x00, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0x92, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x71, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x44, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x5E, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x3B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x8A, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0x99, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x70, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0xC9, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x4D, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD7, - 0x02, - 0x75, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x30, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x75, - 0xDE, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x70, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0x32, - 0x02, - 0x4D, - 0x80, - 0xC9, - 0x32, - 0x00, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0xDE, - 0x03, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE4, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xDD, - 0xA8, - 0x02, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x92, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x32, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xDE, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x75, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x12, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0x3D, - 0x02, - 0x75, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x00, - 0x06, - 0x74, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0xC6, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3D, - 0xA8, - 0xB0, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x92, - 0x75, - 0x02, - 0x02, - 0x99, - 0x5E, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0xA8, - 0xA8, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x98, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x9A, - 0x00, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x17, - 0x01, - 0xCC, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xE1, - 0x04, - 0x02, - 0x01, - 0x99, - 0x0C, - 0x03, - 0x01, - 0x1E, - 0x01, - 0xB0, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x0C, - 0x03, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x9A, - 0x0B, - 0x03, - 0x01, - 0x1E, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x0B, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x09, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x07, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xCB, - 0x07, - 0x02, - 0x01, - 0xC1, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x00, - 0x03, - 0xDE, - 0x32, - 0x75, - 0x00, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x74, - 0x2D, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC6, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xCC, - 0x2B, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x0C, - 0x29, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x10, - 0x01, - 0xB7, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0xD2, - 0x26, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x23, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xA0, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x1F, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x01, - 0x10, - 0x1C, - 0x02, - 0x01, - 0x61, - 0x01, - 0x6A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x6F, - 0x12, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x3C, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x0A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x50, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x70, - 0x6B, - 0x10, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x12, - 0xDA, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x98, - 0x9F, - 0x71, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x74, - 0x50, - 0x16, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0E, - 0x8D, - 0x95, - 0x96, - 0x6B, - 0x0D, - 0x7F, - 0x10, - 0x0A, - 0xC6, - 0x56, - 0x5A, - 0xBD, - 0xD6, - 0x17, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0xD6, - 0x8D, - 0x59, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x4F, - 0x12, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x10, - 0x9D, - 0x3C, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x8D, - 0x90, - 0x0A, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0xE8, - 0x60, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x74, - 0x0A, - 0x00, - 0x12, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x6C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x15, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x6F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x17, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1C, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x1E, - 0x02, - 0x01, - 0x96, - 0x01, - 0x17, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x43, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x71, - 0x21, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x3C, - 0x23, - 0x02, - 0x01, - 0xC7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x27, - 0x02, - 0x01, - 0x96, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xE8, - 0x27, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x4D, - 0x99, - 0xDE, - 0x99, - 0x99, - 0x3D, - 0x75, - 0x47, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0x32, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x3E, - 0x47, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x75, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x00, - 0x05, - 0x02, - 0x01, - 0x43, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x08, - 0xD7, - 0x03, - 0x03, - 0xEA, - 0x03, - 0xB6, - 0x75, - 0x47, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x47, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x92, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x64, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xDC, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x13, - 0xD7, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x4D, - 0x4D, - 0x9A, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x4D, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xE8, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x4D, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x3E, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x8D, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x47, - 0x02, - 0x32, - 0x04, - 0x03, - 0x00, - 0x05, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x60, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD4, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x5A, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x94, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xEA, - 0x00, - 0x08, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0D, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x9A, - 0x06, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x92, - 0x75, - 0x00, - 0x06, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x04, - 0x03, - 0x01, - 0x3D, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0xDA, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x00, - 0x09, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0xD7, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x47, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x10, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x5E, - 0xB0, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x06, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x03, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x15, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0xB0, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x64, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x1A, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x4D, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x02, - 0x02, - 0xDE, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x98, - 0x07, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x3D, - 0xA8, - 0x47, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x69, - 0x4D, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0xA8, - 0xA8, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x8C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x9A, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xDE, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x96, - 0x06, - 0x02, - 0x01, - 0xD7, - 0x0B, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0xEA, - 0x0A, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xD6, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xEA, - 0x09, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x0A, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x74, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xC7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x08, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xCB, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x95, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x99, - 0x06, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x64, - 0x28, - 0x02, - 0x01, - 0x6F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x27, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x59, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xBD, - 0x25, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x22, - 0x02, - 0x01, - 0x43, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x17, - 0x01, - 0x74, - 0x21, - 0x02, - 0x01, - 0x4C, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x1F, - 0x02, - 0x01, - 0x12, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x94, - 0x1D, - 0x02, - 0x01, - 0x64, - 0x01, - 0x70, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x61, - 0x1B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x19, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x59, - 0x01, - 0x90, - 0x17, - 0x02, - 0x01, - 0x71, - 0x01, - 0x50, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x30, - 0x13, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x96, - 0x17, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xA0, - 0xD2, - 0x00, - 0x10, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x3C, - 0x64, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x5A, - 0x50, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0x17, - 0x6F, - 0x3C, - 0xA0, - 0x12, - 0x7C, - 0x02, - 0x0A, - 0x12, - 0x6B, - 0x74, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x17, - 0x98, - 0x50, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x4F, - 0x30, - 0x00, - 0x06, - 0x02, - 0x00, - 0x04, - 0x10, - 0x0A, - 0x3C, - 0x98, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x9D, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0xD2, - 0x8C, - 0x98, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x0F, - 0x02, - 0x01, - 0x44, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x50, - 0x01, - 0x9D, - 0x11, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x4F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x7E, - 0x13, - 0x02, - 0x01, - 0x29, - 0x01, - 0xCC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x8A, - 0x16, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x4C, - 0x17, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6B, - 0x19, - 0x02, - 0x01, - 0x64, - 0x01, - 0x1B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x9F, - 0x1B, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x64, - 0x1B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x96, - 0x1D, - 0x02, - 0x01, - 0x4C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x1D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x20, - 0x01, - 0x5A, - 0x1F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x29, - 0x1F, - 0x02, - 0x01, - 0x10, - 0x01, - 0x6F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x21, - 0x02, - 0x01, - 0x6B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x10, - 0x4C, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x32, - 0xD4, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x75, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x99, - 0x99, - 0x99, - 0x3D, - 0x4D, - 0x99, - 0x99, - 0x99, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x64, - 0x8D, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x20, - 0x3B, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x32, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x1E, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x04, - 0x02, - 0x01, - 0xDA, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xC4, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xE9, - 0x3E, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xCB, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x4C, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x0A, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x05, - 0x03, - 0x00, - 0x0B, - 0x92, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xD4, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDD, - 0x04, - 0x03, - 0x01, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x9F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x06, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xBD, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x06, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x11, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x75, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xDE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x75, - 0xC9, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0x03, - 0x99, - 0x75, - 0xD4, - 0x1F, - 0x9A, - 0x75, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x75, - 0x99, - 0x03, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x00, - 0x1B, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x99, - 0xA8, - 0xB0, - 0xD5, - 0x03, - 0x03, - 0x1F, - 0xD4, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xDE, - 0xA8, - 0xB0, - 0x03, - 0x03, - 0x03, - 0xDD, - 0xD7, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x01, - 0x17, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x75, - 0xCB, - 0x00, - 0x09, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x08, - 0x03, - 0x01, - 0xDD, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x08, - 0x03, - 0x00, - 0x07, - 0x5E, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x00, - 0x08, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x17, - 0x01, - 0xE4, - 0x05, - 0x02, - 0x01, - 0xCB, - 0x08, - 0x03, - 0x01, - 0x92, - 0x05, - 0x02, - 0x01, - 0x99, - 0x08, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x07, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xD5, - 0x07, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x06, - 0xCB, - 0x01, - 0xA8, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0x99, - 0x05, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0xE4, - 0x21, - 0x02, - 0x01, - 0x12, - 0x01, - 0x20, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x60, - 0x01, - 0x10, - 0x20, - 0x02, - 0x01, - 0x8C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x98, - 0x01, - 0x61, - 0x1F, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x02, - 0x01, - 0x74, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x01, - 0xC7, - 0x1D, - 0x02, - 0x01, - 0x7E, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x1D, - 0x02, - 0x01, - 0x8C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x1B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1A, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x96, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x8C, - 0x17, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x0C, - 0x15, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x5A, - 0x13, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x17, - 0x01, - 0x3C, - 0x11, - 0x02, - 0x01, - 0xD3, - 0x01, - 0xDC, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x0D, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xC4, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x20, - 0x9F, - 0x64, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7E, - 0x74, - 0x98, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x17, - 0xA7, - 0x8C, - 0x0C, - 0x9D, - 0x10, - 0x30, - 0x85, - 0x5A, - 0x9F, - 0x1B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6A, - 0x70, - 0xD6, - 0x6C, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE4, - 0x06, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x8D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x95, - 0x01, - 0x0A, - 0x09, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x74, - 0x0C, - 0x02, - 0x01, - 0x94, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x43, - 0x0E, - 0x02, - 0x01, - 0xD3, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4F, - 0x10, - 0x02, - 0x01, - 0x74, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x0A, - 0x11, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6B, - 0x12, - 0x02, - 0x01, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x60, - 0x14, - 0x02, - 0x01, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x9D, - 0x14, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x59, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0xA7, - 0x16, - 0x02, - 0x01, - 0x8C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x30, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x18, - 0x02, - 0x01, - 0xA7, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x5A, - 0x18, - 0x02, - 0x01, - 0x4C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xD2, - 0x19, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x3B, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x3C, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x3D, - 0x32, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x12, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x32, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0x3D, - 0xB0, - 0x03, - 0x1F, - 0xC9, - 0x02, - 0x02, - 0x02, - 0xD2, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6F, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x3C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xBD, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x47, - 0x03, - 0xEA, - 0x92, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xB0, - 0x03, - 0x03, - 0xEA, - 0x75, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0xEA, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x6A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x59, - 0x05, - 0x02, - 0x00, - 0x07, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3E, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x08, - 0xD5, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x08, - 0x99, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x00, - 0x08, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x3E, - 0x04, - 0x03, - 0x00, - 0x08, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x47, - 0xEA, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x0C, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0xB6, - 0x03, - 0x03, - 0x92, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x04, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x04, - 0x02, - 0x00, - 0x04, - 0x9A, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x0C, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x5A, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0x1E, - 0x32, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x32, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0x99, - 0x02, - 0xC9, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x47, - 0x03, - 0xEA, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x17, - 0x05, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x75, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x70, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x9D, - 0x04, - 0x02, - 0x00, - 0x14, - 0x99, - 0x03, - 0x03, - 0x92, - 0xA8, - 0xDE, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xC9, - 0x05, - 0x02, - 0x01, - 0x20, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x94, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x02, - 0x02, - 0x99, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x07, - 0x03, - 0x01, - 0xC9, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x04, - 0x02, - 0x01, - 0x99, - 0x07, - 0x03, - 0x00, - 0x05, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xEA, - 0x00, - 0x06, - 0x03, - 0x01, - 0x92, - 0x04, - 0x02, - 0x01, - 0x5A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x04, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0xD5, - 0x04, - 0x02, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x05, - 0x30, - 0x02, - 0x02, - 0x02, - 0x32, - 0x00, - 0x06, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x06, - 0x03, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x04, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x4F, - 0x1A, - 0x02, - 0x01, - 0x5A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x59, - 0x1A, - 0x02, - 0x01, - 0x60, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x0D, - 0x18, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x20, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4F, - 0x18, - 0x02, - 0x01, - 0x74, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x0A, - 0x17, - 0x02, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x74, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6C, - 0x16, - 0x02, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x5A, - 0x14, - 0x02, - 0x01, - 0x12, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD2, - 0x13, - 0x02, - 0x01, - 0x8D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x12, - 0x02, - 0x01, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x4C, - 0x10, - 0x02, - 0x01, - 0x30, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x30, - 0x0C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x0A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0x8C, - 0x08, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x8D, - 0x8C, - 0x4C, - 0x8A, - 0x02, - 0x4C, - 0x5A, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x50, - 0xD6, - 0xDC, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x74, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x3C, - 0x08, - 0x02, - 0x01, - 0xC1, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x09, - 0x02, - 0x01, - 0x60, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x94, - 0x0A, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x1B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x3B, - 0x0C, - 0x02, - 0x01, - 0x4F, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6B, - 0x0C, - 0x02, - 0x01, - 0xC7, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0D, - 0x02, - 0x01, - 0x3B, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xBD, - 0x0E, - 0x02, - 0x01, - 0x5A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x0F, - 0x02, - 0x01, - 0x70, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0xBD, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x94, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x44, - 0x10, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x59, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6C, - 0x12, - 0x02, - 0x01, - 0x3B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x60, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0xB0, - 0x99, - 0x3D, - 0x02, - 0x02, - 0xD4, - 0x99, - 0xB0, - 0xA8, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x9F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xBD, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x99, - 0x03, - 0x92, - 0x02, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x5A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC1, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x5E, - 0x75, - 0x02, - 0xCE, - 0x03, - 0x47, - 0xDE, - 0x03, - 0x92, - 0x02, - 0x02, - 0xC7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x0D, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0xD7, - 0x03, - 0x1F, - 0xD7, - 0x75, - 0x5E, - 0x03, - 0xA8, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0xD2, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x15, - 0xD2, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0x9A, - 0x03, - 0x3D, - 0x32, - 0x03, - 0x03, - 0x3E, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x59, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x59, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB0, - 0x03, - 0xDD, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x92, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x60, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x4F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x32, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0xA8, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0xBD, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xC9, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x3E, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xA8, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0x02, - 0x02, - 0x02, - 0x47, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x94, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x75, - 0xCE, - 0x03, - 0xB0, - 0x3D, - 0x75, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0x4D, - 0x03, - 0x03, - 0x32, - 0x99, - 0xD7, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x8C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x75, - 0x92, - 0x3D, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xB0, - 0x03, - 0xD5, - 0x75, - 0x5E, - 0x99, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x9F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0xB6, - 0xD7, - 0x03, - 0x92, - 0x02, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0xCB, - 0x75, - 0xC9, - 0x03, - 0x47, - 0xA8, - 0x03, - 0xD5, - 0x75, - 0x47, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x43, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x3B, - 0x02, - 0x02, - 0x02, - 0x99, - 0x03, - 0x92, - 0x3D, - 0x5E, - 0x03, - 0xA8, - 0xD7, - 0x1F, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xB7, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x3E, - 0x75, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x17, - 0x8A, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x9A, - 0x02, - 0x02, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x04, - 0x92, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x0C, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x02, - 0x02, - 0x30, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x74, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xD4, - 0x02, - 0x02, - 0xD7, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x4F, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0xDE, - 0x75, - 0x02, - 0x02, - 0x02, - 0x47, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x3C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x70, - 0x12, - 0x02, - 0x01, - 0xA7, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD2, - 0x11, - 0x02, - 0x01, - 0x8D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x61, - 0x10, - 0x02, - 0x01, - 0x30, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3C, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x10, - 0x02, - 0x01, - 0xB7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x0E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xE4, - 0x0E, - 0x02, - 0x01, - 0xC7, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x60, - 0x0E, - 0x02, - 0x01, - 0xDA, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x0C, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x43, - 0x0C, - 0x02, - 0x01, - 0x90, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0B, - 0x02, - 0x01, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0xBD, - 0x0A, - 0x02, - 0x01, - 0x5A, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x20, - 0x01, - 0xC7, - 0x08, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x8D, - 0x74, - 0x7E, - 0x0A, - 0xC1, - 0x50, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x04, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x20, - 0x70, - 0x17, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x04, - 0x12, - 0x02, - 0x0D, - 0x20, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x4F, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x0C, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0x6C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x01, - 0xDF, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x07, - 0x02, - 0x01, - 0x98, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x3B, - 0x07, - 0x02, - 0x01, - 0x6F, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6C, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0x47, - 0x02, - 0x70, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0x92, - 0x99, - 0xE9, - 0x02, - 0xC9, - 0x99, - 0xCE, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x47, - 0x1F, - 0x02, - 0x9A, - 0x47, - 0xCE, - 0x02, - 0xDA, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9F, - 0x02, - 0x92, - 0x3D, - 0x03, - 0x4D, - 0x1F, - 0x3D, - 0xDD, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0x92, - 0xA8, - 0x1F, - 0xA8, - 0x03, - 0xA8, - 0xCE, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC4, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0x47, - 0x9A, - 0xD4, - 0xDD, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xCB, - 0xCE, - 0x32, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xCE, - 0x92, - 0x32, - 0xDD, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0x03, - 0xCB, - 0x32, - 0xCE, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0x47, - 0x03, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0x03, - 0xB0, - 0x32, - 0xCE, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x03, - 0x3D, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0x03, - 0xD4, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x03, - 0xD7, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x4D, - 0x03, - 0x4D, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0x92, - 0xA8, - 0x3E, - 0x1F, - 0x02, - 0x32, - 0xCE, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0x32, - 0xD5, - 0x02, - 0x32, - 0xDD, - 0x02, - 0x44, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xA8, - 0x92, - 0x75, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xD4, - 0xB0, - 0xB6, - 0xD7, - 0x32, - 0xDD, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0x92, - 0xA8, - 0xDE, - 0xCB, - 0x3D, - 0x32, - 0xCE, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4C, - 0x02, - 0x92, - 0xD4, - 0xCB, - 0xDE, - 0x99, - 0x32, - 0xDD, - 0x02, - 0x0D, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0x92, - 0xD4, - 0xB6, - 0xB0, - 0x92, - 0x32, - 0xCE, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0x92, - 0xD4, - 0x92, - 0xB0, - 0xDD, - 0x32, - 0xDD, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6B, - 0x02, - 0x92, - 0xA8, - 0xD5, - 0xB0, - 0x5E, - 0xD4, - 0xCE, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0x92, - 0xDE, - 0x1F, - 0xD4, - 0x03, - 0xDE, - 0xDD, - 0x02, - 0xE4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0x92, - 0x03, - 0x03, - 0x4D, - 0x1F, - 0x03, - 0xCE, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3C, - 0x02, - 0x92, - 0x03, - 0x5E, - 0x02, - 0xD5, - 0x03, - 0xDD, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x43, - 0x02, - 0x92, - 0x03, - 0xDD, - 0x02, - 0x92, - 0x03, - 0xCE, - 0x02, - 0xC4, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0xB6, - 0x03, - 0x92, - 0x02, - 0xDF, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x99, - 0x03, - 0xB6, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x50, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x32, - 0xCB, - 0xA8, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0x83, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6C, - 0x07, - 0x02, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x94, - 0x05, - 0x02, - 0x01, - 0x12, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xC4, - 0x05, - 0x02, - 0x01, - 0x90, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x3B, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x06, - 0x30, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x20, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x90, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x98, - 0xD2, - 0x02, - 0x8A, - 0x6C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x4F, - 0x0A, - 0xDA, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x01, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x17, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3B, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x4F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x90, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD4, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xA8, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x47, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xB0, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x3D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xD7, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x9E, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x12, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x0C, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x94, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xC1, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x5A, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xBD, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0xDA, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x6F, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x20, - 0x05, - 0x01, - 0x8D, - 0x1F, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x03, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x70, - 0x20, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0x20, - 0x0D, - 0x02, - 0x4C, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x4F, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x12, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6C, - 0x05, - 0x02, - 0x01, - 0x98, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0xDF, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x0D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x98, - 0x07, - 0x02, - 0x01, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xA7, - 0x07, - 0x02, - 0x01, - 0x3B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xBD, - 0x07, - 0x02, - 0x01, - 0xDA, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x74, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0C, - 0x07, - 0x02, - 0x01, - 0x6B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x12, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x01, - 0xD2, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x98, - 0x09, - 0x02, - 0x01, - 0xDC, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x70, - 0x02, - 0x47, - 0x3D, - 0xB0, - 0x02, - 0xB0, - 0x3D, - 0xB0, - 0x02, - 0x6C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x6F, - 0x02, - 0xDD, - 0x99, - 0xC9, - 0x02, - 0xE9, - 0x99, - 0x92, - 0x02, - 0x3B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDA, - 0x02, - 0xDD, - 0x47, - 0x9A, - 0x02, - 0x1F, - 0x47, - 0x92, - 0x02, - 0xA7, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xBD, - 0x02, - 0xCE, - 0xB0, - 0x03, - 0x4D, - 0x03, - 0xB0, - 0x92, - 0x02, - 0x9F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xDD, - 0xA8, - 0x03, - 0xD4, - 0x1F, - 0xA8, - 0x92, - 0x02, - 0xBD, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x90, - 0x02, - 0xDD, - 0xD4, - 0x9A, - 0x47, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xCB, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xDD, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0xC1, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0C, - 0x02, - 0xCE, - 0x32, - 0xCB, - 0x03, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x99, - 0x03, - 0x47, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0x47, - 0x03, - 0xB0, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x3D, - 0x03, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0xD4, - 0x03, - 0x32, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0x03, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xDD, - 0x32, - 0x4D, - 0x03, - 0x4D, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x02, - 0x1F, - 0x3E, - 0xD4, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x44, - 0x02, - 0xDD, - 0x32, - 0x02, - 0xD5, - 0x32, - 0xA8, - 0x92, - 0x02, - 0x9E, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xCE, - 0x32, - 0x75, - 0xC9, - 0xA8, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x9E, - 0x02, - 0xDD, - 0x32, - 0xD7, - 0xB6, - 0xB0, - 0xA8, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x3D, - 0xCB, - 0xDE, - 0xD4, - 0x92, - 0x02, - 0x12, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x0D, - 0x02, - 0xCE, - 0x32, - 0x99, - 0xDE, - 0xCB, - 0xD4, - 0x92, - 0x02, - 0x4C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xDD, - 0x32, - 0x92, - 0xB0, - 0xB6, - 0xD4, - 0x92, - 0x02, - 0x0C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x12, - 0x02, - 0xCE, - 0x32, - 0xDD, - 0xB0, - 0x92, - 0xA8, - 0x92, - 0x02, - 0x94, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x94, - 0x02, - 0xDD, - 0xD4, - 0x5E, - 0xB0, - 0xD5, - 0xA8, - 0x92, - 0x02, - 0x6B, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xE4, - 0x02, - 0xCE, - 0xDE, - 0x03, - 0xD4, - 0x1F, - 0x99, - 0x92, - 0x02, - 0x90, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xC1, - 0x02, - 0xDD, - 0x03, - 0x1F, - 0x4D, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x74, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x74, - 0x02, - 0xCE, - 0x03, - 0xD5, - 0x02, - 0x1F, - 0x03, - 0x92, - 0x02, - 0x3C, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0C, - 0x17, - 0x3C, - 0x02, - 0xCE, - 0x03, - 0x92, - 0x02, - 0xDD, - 0x03, - 0x92, - 0x02, - 0x43, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0xDF, - 0x02, - 0xC9, - 0x03, - 0xB6, - 0x02, - 0x92, - 0x03, - 0x92, - 0x02, - 0x4F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x4F, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0xCB, - 0x02, - 0x6F, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x02, - 0xA8, - 0xCB, - 0x32, - 0x02, - 0xD4, - 0xCB, - 0xD4, - 0x02, - 0x50, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x09, - 0x02, - 0x01, - 0x98, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xDC, - 0x09, - 0x02, - 0x01, - 0x17, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0x30, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x12, - 0x07, - 0x02, - 0x01, - 0x0C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xE4, - 0x07, - 0x02, - 0x01, - 0x90, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x74, - 0x07, - 0x02, - 0x01, - 0xBD, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0xDA, - 0x07, - 0x02, - 0x01, - 0xA7, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x70, - 0x07, - 0x02, - 0x01, - 0x6C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0x30, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x0C, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xC4, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x01, - 0x6F, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x20, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x30, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x90, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x0A, - 0x02, - 0xD2, - 0x98, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1F, - 0x05, - 0x00, - 0x03, - 0x9F, - 0x0A, - 0x4F, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x1E, - 0x05, - 0x00, - 0x04, - 0xDC, - 0xD6, - 0x50, - 0x1B, - 0x1E, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC1, - 0x04, - 0x02, - 0x01, - 0x74, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x01, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0xC1, - 0x08, - 0x02, - 0x01, - 0x3C, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x0A, - 0x02, - 0x01, - 0x94, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x4F, - 0x0C, - 0x02, - 0x01, - 0x3B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0xC7, - 0x0C, - 0x02, - 0x01, - 0x6B, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x70, - 0x0D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x5A, - 0x0E, - 0x02, - 0x01, - 0xBD, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x9D, - 0x0E, - 0x02, - 0x01, - 0x12, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x0F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x98, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xBD, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC7, - 0x10, - 0x02, - 0x01, - 0xC1, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x8A, - 0x10, - 0x02, - 0x01, - 0x44, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xDA, - 0x02, - 0x02, - 0xB0, - 0x99, - 0xA8, - 0xB0, - 0x99, - 0xD4, - 0x02, - 0x02, - 0x3D, - 0x99, - 0x3D, - 0x3D, - 0x99, - 0x3D, - 0x02, - 0x02, - 0x60, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x5A, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0x02, - 0x92, - 0x03, - 0x99, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xBD, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xC7, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x47, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x5E, - 0x03, - 0x3D, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xE8, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0xD2, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0xA8, - 0x03, - 0x5E, - 0x75, - 0xD7, - 0x1F, - 0x03, - 0xD7, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x0D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x15, - 0x59, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x3E, - 0x03, - 0x03, - 0x32, - 0x3D, - 0x03, - 0x9A, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0xD2, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x50, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x75, - 0xDD, - 0x03, - 0xB0, - 0xDE, - 0x03, - 0x92, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x59, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x92, - 0x1F, - 0x47, - 0x02, - 0xB6, - 0x03, - 0x99, - 0x92, - 0x03, - 0x99, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x50, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xDA, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0xDE, - 0x02, - 0xDE, - 0x03, - 0xC9, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x09, - 0x3C, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x00, - 0x04, - 0x03, - 0x00, - 0x09, - 0x32, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x90, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3E, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0xC9, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0x03, - 0xCB, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xA0, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0xD7, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xC1, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0x1F, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0xDE, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x94, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xB4, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x75, - 0x3D, - 0xB0, - 0x03, - 0xCE, - 0x75, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0xD7, - 0x99, - 0x32, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x74, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xE4, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x3D, - 0x92, - 0x75, - 0x03, - 0x03, - 0xD4, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x8C, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xC1, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x02, - 0x99, - 0x5E, - 0x75, - 0xD5, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xBD, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x74, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0x47, - 0x75, - 0x92, - 0x03, - 0xD7, - 0xB6, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x9F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x43, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x47, - 0x75, - 0xD5, - 0x03, - 0xA8, - 0x47, - 0x03, - 0xC9, - 0x75, - 0xCB, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6F, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x92, - 0x03, - 0xCB, - 0x3D, - 0x03, - 0x03, - 0xD7, - 0xA8, - 0x03, - 0x5E, - 0x3D, - 0x92, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0xD6, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x5E, - 0x75, - 0x3E, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x8D, - 0x02, - 0x02, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xC9, - 0x02, - 0x02, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x8A, - 0x17, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x92, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0x9D, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x04, - 0x30, - 0x02, - 0x02, - 0xCB, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB0, - 0x02, - 0x02, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0x02, - 0x02, - 0x0C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x0C, - 0x6B, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0xD4, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0x74, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x14, - 0x3C, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0xCB, - 0xCB, - 0x99, - 0x75, - 0x02, - 0x02, - 0x4F, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xA7, - 0x12, - 0x02, - 0x01, - 0x70, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x8D, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x9D, - 0x10, - 0x02, - 0x01, - 0xC7, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xC1, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0xB7, - 0x10, - 0x02, - 0x01, - 0x3B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x98, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x20, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xC7, - 0x0E, - 0x02, - 0x01, - 0xC1, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xDA, - 0x0E, - 0x02, - 0x01, - 0x6F, - 0x18, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0A, - 0x0C, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x5A, - 0x0C, - 0x02, - 0x01, - 0x43, - 0x19, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x50, - 0x0B, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x59, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x5A, - 0x0A, - 0x02, - 0x01, - 0xBD, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x6F, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x70, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x8A, - 0x04, - 0x02, - 0x01, - 0x44, - 0x01, - 0x70, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x50, - 0xC1, - 0x30, - 0x7E, - 0x90, - 0x8D, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6C, - 0xD6, - 0x70, - 0x6A, - 0x17, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x4C, - 0x06, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x59, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x09, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x95, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x17, - 0x01, - 0x94, - 0x0C, - 0x02, - 0x01, - 0x74, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0xD3, - 0x0E, - 0x02, - 0x01, - 0x43, - 0x18, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x74, - 0x10, - 0x02, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x3B, - 0x11, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6A, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x12, - 0x02, - 0x01, - 0x6B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x43, - 0x14, - 0x02, - 0x01, - 0x60, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x7F, - 0x14, - 0x02, - 0x01, - 0x9D, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x3C, - 0x16, - 0x02, - 0x01, - 0xA7, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x20, - 0x01, - 0x30, - 0x16, - 0x02, - 0x01, - 0x4C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6F, - 0x18, - 0x02, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x4C, - 0x18, - 0x02, - 0x01, - 0x5A, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6A, - 0x19, - 0x02, - 0x01, - 0xD2, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x95, - 0x1A, - 0x02, - 0x01, - 0x3B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1C, - 0x6B, - 0x02, - 0x02, - 0x02, - 0xB0, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x32, - 0x3D, - 0x99, - 0x99, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3C, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1D, - 0x20, - 0xD2, - 0x02, - 0x02, - 0x02, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x75, - 0x02, - 0x02, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x70, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x1F, - 0x03, - 0x47, - 0x4D, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x59, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3C, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCE, - 0x03, - 0x03, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0xEA, - 0x47, - 0x02, - 0x99, - 0x03, - 0x03, - 0xD5, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0x3D, - 0x02, - 0xCB, - 0x03, - 0xEA, - 0x99, - 0x04, - 0x02, - 0x01, - 0x43, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x3D, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x7F, - 0x04, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0xEA, - 0x03, - 0x03, - 0xB0, - 0xCB, - 0xEA, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x12, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x03, - 0xB6, - 0xD5, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x00, - 0x06, - 0x03, - 0x00, - 0x07, - 0xD4, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x00, - 0x05, - 0x02, - 0x01, - 0x59, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x07, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x3E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xBD, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB6, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x99, - 0x04, - 0x03, - 0x00, - 0x08, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x08, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x04, - 0x03, - 0x00, - 0x08, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x0C, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0x75, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x43, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x92, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x3C, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xC1, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x04, - 0x47, - 0x03, - 0x03, - 0x9A, - 0x04, - 0x02, - 0x00, - 0x04, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x00, - 0x04, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x32, - 0x03, - 0x03, - 0x03, - 0x32, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x74, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x5A, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x02, - 0x9A, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0xBD, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x32, - 0x1E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x1F, - 0x75, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x4F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x3C, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0xB0, - 0x03, - 0x32, - 0x4D, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x43, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x02, - 0x92, - 0x03, - 0xDE, - 0x02, - 0xC9, - 0x03, - 0x03, - 0x99, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x60, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0x47, - 0x02, - 0x75, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x99, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0x03, - 0x47, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x75, - 0xD4, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x99, - 0x05, - 0x02, - 0x01, - 0x17, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x1B, - 0x05, - 0x02, - 0x00, - 0x14, - 0xC9, - 0x03, - 0x03, - 0xCB, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x02, - 0x75, - 0x1F, - 0x03, - 0x03, - 0x99, - 0xA8, - 0x92, - 0x03, - 0x03, - 0x99, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xD2, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0x99, - 0x02, - 0x02, - 0xB6, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x6B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x04, - 0x02, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x00, - 0x04, - 0xD4, - 0x02, - 0x02, - 0xB0, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x74, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x5A, - 0x04, - 0x02, - 0x01, - 0x92, - 0x01, - 0xEA, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x75, - 0x02, - 0x02, - 0xD7, - 0x00, - 0x07, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0x95, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4F, - 0x04, - 0x02, - 0x01, - 0xCB, - 0x06, - 0x03, - 0x01, - 0xB6, - 0x04, - 0x02, - 0x01, - 0xD5, - 0x06, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x6A, - 0x04, - 0x02, - 0x01, - 0x3D, - 0x06, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x05, - 0x32, - 0x02, - 0x02, - 0x02, - 0x9D, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x04, - 0xCB, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0xCB, - 0x01, - 0x3D, - 0x04, - 0x02, - 0x01, - 0xC1, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x5A, - 0x1A, - 0x02, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x60, - 0x1A, - 0x02, - 0x01, - 0x6A, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0A, - 0x18, - 0x02, - 0x01, - 0x12, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x74, - 0x18, - 0x02, - 0x01, - 0x4F, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x6C, - 0x17, - 0x02, - 0x01, - 0xD2, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4C, - 0x16, - 0x02, - 0x01, - 0x74, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x6F, - 0x16, - 0x02, - 0x01, - 0x6A, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x12, - 0x14, - 0x02, - 0x01, - 0x90, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x50, - 0x13, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x1B, - 0x15, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x5A, - 0x12, - 0x02, - 0x01, - 0x95, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x30, - 0x10, - 0x02, - 0x01, - 0x4C, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x50, - 0x01, - 0xD2, - 0x0E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x59, - 0x17, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x01, - 0x3B, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6A, - 0x18, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x01, - 0x6F, - 0x01, - 0xD2, - 0x0A, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x19, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x01, - 0x59, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x20, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x08, - 0x3B, - 0x5A, - 0x12, - 0xD2, - 0x8A, - 0x4C, - 0x8C, - 0x8D, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x1B, - 0x6C, - 0x70, - 0x60, - 0x50, - 0x98, - 0x17, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x04, - 0x98, - 0x3C, - 0x0A, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x30, - 0x4F, - 0x1B, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x98, - 0x8C, - 0x29, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x20, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x44, - 0x0F, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x16, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x8A, - 0x11, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x15, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0xCC, - 0x01, - 0x0A, - 0x13, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x4F, - 0x16, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x17, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x98, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x64, - 0x19, - 0x02, - 0x01, - 0x6B, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x20, - 0x01, - 0xD3, - 0x1B, - 0x02, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x60, - 0x01, - 0xD2, - 0x1B, - 0x02, - 0x01, - 0x44, - 0x01, - 0x8D, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x4C, - 0x1D, - 0x02, - 0x01, - 0x96, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x1D, - 0x02, - 0x01, - 0x30, - 0x01, - 0x8D, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x1F, - 0x02, - 0x01, - 0x5A, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6F, - 0x20, - 0x02, - 0x01, - 0x29, - 0x01, - 0x8D, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x6B, - 0x21, - 0x02, - 0x01, - 0x9F, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x10, - 0x8D, - 0x44, - 0x02, - 0x02, - 0x02, - 0x4D, - 0x47, - 0x99, - 0x99, - 0x99, - 0x4D, - 0x3D, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x04, - 0x02, - 0x00, - 0x10, - 0x75, - 0xDE, - 0x99, - 0x99, - 0x99, - 0xD4, - 0x32, - 0x99, - 0x99, - 0x99, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4C, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x9F, - 0x04, - 0x02, - 0x00, - 0x20, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x5E, - 0x32, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x44, - 0x3B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x6B, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xC9, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0xC4, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x98, - 0x01, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0xCE, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x20, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x60, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x3E, - 0x02, - 0xA8, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xD7, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xDC, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0xCC, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x6B, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0x92, - 0x4D, - 0xE9, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xD4, - 0x03, - 0x03, - 0x03, - 0xE9, - 0xCB, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x70, - 0x01, - 0x44, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD5, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x0A, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x06, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x32, - 0x9A, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0B, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x0B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x05, - 0x03, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x04, - 0x03, - 0x01, - 0xDD, - 0x01, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xA7, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x04, - 0x02, - 0x00, - 0x07, - 0x75, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x75, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xBD, - 0x06, - 0x02, - 0x00, - 0x06, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x05, - 0x02, - 0x00, - 0x06, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x43, - 0x06, - 0x02, - 0x00, - 0x11, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x75, - 0x75, - 0x02, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x00, - 0x04, - 0x02, - 0x00, - 0x06, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xDE, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x06, - 0x02, - 0x01, - 0x6F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xCB, - 0xDD, - 0x75, - 0x4D, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0x75, - 0xD5, - 0x5E, - 0xD4, - 0x75, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x4F, - 0x06, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x02, - 0xA8, - 0x1F, - 0x03, - 0xCB, - 0x75, - 0xA8, - 0x5E, - 0x03, - 0x03, - 0x03, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0xCE, - 0x4D, - 0x75, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0x02, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x12, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x3E, - 0x02, - 0x3E, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xD4, - 0x02, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0x3D, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x56, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x20, - 0x01, - 0x56, - 0x05, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0xDD, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xA8, - 0x47, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x3E, - 0x02, - 0xD4, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0xB0, - 0xA8, - 0x99, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x00, - 0x05, - 0x02, - 0x01, - 0x96, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x90, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x09, - 0x03, - 0x00, - 0x05, - 0xCB, - 0x75, - 0x02, - 0x4D, - 0x92, - 0x00, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x95, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xDD, - 0x08, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x09, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x8D, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x50, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x00, - 0x07, - 0xD5, - 0x75, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x00, - 0x08, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x1B, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x20, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0x99, - 0x05, - 0x02, - 0x01, - 0x92, - 0x08, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x96, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x07, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x1F, - 0x07, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0xA7, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x0A, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x05, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xA8, - 0x06, - 0xCB, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x98, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x12, - 0x21, - 0x02, - 0x01, - 0xE4, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8C, - 0x20, - 0x02, - 0x01, - 0x10, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x61, - 0x01, - 0x98, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x74, - 0x1F, - 0x02, - 0x01, - 0xDA, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x7E, - 0x1D, - 0x02, - 0x01, - 0x71, - 0x01, - 0x17, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8C, - 0x1D, - 0x02, - 0x01, - 0x6F, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x9D, - 0x1B, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x1B, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x1A, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x96, - 0x18, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x17, - 0x02, - 0x01, - 0x96, - 0x13, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x98, - 0x01, - 0x9D, - 0x15, - 0x02, - 0x01, - 0x0C, - 0x14, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x71, - 0x13, - 0x02, - 0x01, - 0x5A, - 0x01, - 0xDC, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x11, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x17, - 0x15, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x03, - 0x17, - 0xC4, - 0xD2, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x17, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x03, - 0x98, - 0x74, - 0x7E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x64, - 0x9F, - 0x17, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0B, - 0x1B, - 0x9F, - 0x5A, - 0x85, - 0x0A, - 0x10, - 0x7E, - 0x0C, - 0x96, - 0x4F, - 0x17, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x07, - 0x00, - 0x00, - 0x1D, - 0x05, - 0x00, - 0x07, - 0x59, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x6C, - 0x1B, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x04, - 0x6C, - 0x3C, - 0x9D, - 0x10, - 0x08, - 0x02, - 0x00, - 0x03, - 0x12, - 0x4F, - 0xDC, - 0x00, - 0x18, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x00, - 0x03, - 0x17, - 0x60, - 0xE8, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x90, - 0x8D, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xE8, - 0x12, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x96, - 0x1B, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x7C, - 0x15, - 0x02, - 0x01, - 0x12, - 0x01, - 0x6C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x96, - 0x0A, - 0x00, - 0x17, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0xC1, - 0x1A, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x90, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0xA7, - 0x10, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x03, - 0x17, - 0x74, - 0xD2, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xA7, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x43, - 0x01, - 0xD2, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x7C, - 0x21, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x0C, - 0x23, - 0x02, - 0x01, - 0x3C, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x9F, - 0x01, - 0xD2, - 0x23, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0D, - 0x25, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x96, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDA, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0xE8, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x9F, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xD4, - 0x75, - 0xDE, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD4, - 0xDE, - 0x99, - 0x99, - 0xDE, - 0x47, - 0x75, - 0x3D, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x17, - 0x01, - 0x64, - 0x05, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0x47, - 0x02, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x0E, - 0x75, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x47, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x90, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6F, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x03, - 0xDE, - 0x02, - 0xA8, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0xC9, - 0x3E, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x9A, - 0x4D, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0xE8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x02, - 0x4D, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x02, - 0x02, - 0x02, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x99, - 0x75, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xDA, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x06, - 0x02, - 0x00, - 0x09, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x92, - 0x02, - 0x02, - 0x3E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xD5, - 0xA8, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0xD7, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x32, - 0x02, - 0x47, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x75, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x71, - 0x01, - 0x59, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x8A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xCB, - 0x3E, - 0xC9, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x64, - 0x01, - 0x60, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0xDE, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xC9, - 0xCB, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xCE, - 0x75, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x9F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xC7, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x06, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x90, - 0x01, - 0x17, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x01, - 0xA8, - 0x08, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x07, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x47, - 0x06, - 0x03, - 0x01, - 0x9A, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x01, - 0xD7, - 0x01, - 0xC9, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xB0, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x00, - 0x06, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x06, - 0x02, - 0x00, - 0x07, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x32, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDA, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x06, - 0x02, - 0x00, - 0x07, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB0, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x95, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x4F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x05, - 0x02, - 0x00, - 0x09, - 0x3E, - 0x02, - 0x75, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x3B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xDE, - 0x04, - 0x02, - 0x00, - 0x05, - 0x75, - 0xB6, - 0xD7, - 0x02, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xB6, - 0x75, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0x47, - 0x04, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x5E, - 0x3D, - 0x02, - 0xD7, - 0xD5, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xD7, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3B, - 0x08, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xDE, - 0x02, - 0x02, - 0x02, - 0x75, - 0x92, - 0x03, - 0xB6, - 0x4D, - 0x75, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x70, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x15, - 0x47, - 0x02, - 0x02, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0xEA, - 0xA8, - 0x02, - 0xA8, - 0xD5, - 0x03, - 0x03, - 0x03, - 0xDD, - 0x4D, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x6C, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x64, - 0x07, - 0x02, - 0x00, - 0x1A, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xDE, - 0x02, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x92, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xB0, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x59, - 0x01, - 0xE8, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x47, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x4D, - 0x02, - 0xB0, - 0x04, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x4D, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x07, - 0x02, - 0x01, - 0x3C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8C, - 0x07, - 0x02, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB6, - 0xA8, - 0xA8, - 0x99, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xB6, - 0x02, - 0x02, - 0x4D, - 0x69, - 0x03, - 0x03, - 0x03, - 0xD5, - 0x47, - 0xA8, - 0x3D, - 0x92, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x4F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0C, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xDE, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x50, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x0B, - 0x03, - 0x00, - 0x07, - 0x92, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x9A, - 0x00, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0x47, - 0x0B, - 0x03, - 0x01, - 0xB0, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x0B, - 0x03, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x01, - 0x96, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x74, - 0x06, - 0x02, - 0x01, - 0xA8, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0xA8, - 0x01, - 0xD5, - 0x09, - 0x03, - 0x01, - 0x1F, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCE, - 0x08, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xCB, - 0x09, - 0x03, - 0x01, - 0x99, - 0x06, - 0x02, - 0x01, - 0x61, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xA0, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x47, - 0x06, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x3D, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB0, - 0x07, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6F, - 0x28, - 0x02, - 0x01, - 0x64, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x59, - 0x01, - 0x0C, - 0x27, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x17, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xDA, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x70, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xE8, - 0x25, - 0x02, - 0x01, - 0xBD, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x8D, - 0x01, - 0x30, - 0x23, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x17, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x43, - 0x22, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x50, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xC7, - 0x21, - 0x02, - 0x01, - 0x74, - 0x01, - 0x17, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xE4, - 0x01, - 0xDC, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x70, - 0x01, - 0x64, - 0x1D, - 0x02, - 0x01, - 0x94, - 0x01, - 0xDC, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x0A, - 0x1B, - 0x02, - 0x01, - 0x61, - 0x01, - 0xDC, - 0x10, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x19, - 0x02, - 0x01, - 0x71, - 0x01, - 0x8D, - 0x11, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x17, - 0x02, - 0x01, - 0x90, - 0x01, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0x96, - 0xD2, - 0x00, - 0x13, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x14, - 0x05, - 0x00, - 0x00, - 0x16, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x71, - 0x10, - 0x02, - 0x00, - 0x03, - 0x8A, - 0xA0, - 0x8D, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x03, - 0x70, - 0xA0, - 0x30, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x64, - 0x3C, - 0x6A, - 0x00, - 0x17, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x05, - 0x00, - 0x0D, - 0xDC, - 0x4F, - 0x74, - 0xE8, - 0x12, - 0x0A, - 0x02, - 0x7C, - 0x12, - 0xA0, - 0x3C, - 0x60, - 0x17, - 0x00, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3A, - 0x08, - 0x00, - 0x00, - 0x1C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x98, - 0x8D, - 0xD6, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x17, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x04, - 0x6A, - 0x9F, - 0x4C, - 0x8A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0A, - 0xC1, - 0x6F, - 0x1B, - 0x17, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x17, - 0x6F, - 0x6B, - 0x29, - 0x0F, - 0x02, - 0x00, - 0x03, - 0x30, - 0x8B, - 0x50, - 0x00, - 0x15, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x01, - 0x60, - 0x01, - 0x12, - 0x15, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x8D, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x6A, - 0x90, - 0x8A, - 0x00, - 0x17, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x9F, - 0x17, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x1A, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x56, - 0x6C, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x9F, - 0x1E, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3C, - 0x01, - 0x0A, - 0x1F, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x60, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x29, - 0x00, - 0x21, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0xD2, - 0x00, - 0x23, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x0A, - 0x25, - 0x02, - 0x01, - 0x61, - 0x01, - 0x50, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x27, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x56, - 0x29, - 0x02, - 0x01, - 0x9F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x9F, - 0x2A, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x2B, - 0x02, - 0x01, - 0x71, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x90, - 0x01, - 0x29, - 0x2B, - 0x02, - 0x01, - 0x30, - 0x01, - 0x6F, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x50, - 0x01, - 0x12, - 0x05, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDE, - 0x04, - 0x99, - 0x00, - 0x03, - 0x3E, - 0x4D, - 0xDE, - 0x00, - 0x04, - 0x99, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x05, - 0x99, - 0x00, - 0x03, - 0x47, - 0x75, - 0xA8, - 0x00, - 0x04, - 0x99, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x6B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x3C, - 0x01, - 0xD2, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0x92, - 0x00, - 0x05, - 0x03, - 0x01, - 0xD7, - 0x05, - 0x02, - 0x01, - 0x47, - 0x05, - 0x03, - 0x00, - 0x03, - 0x47, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x05, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x03, - 0xA8, - 0x02, - 0xD4, - 0x00, - 0x05, - 0x03, - 0x01, - 0xCB, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xD5, - 0x04, - 0x03, - 0x00, - 0x04, - 0xD5, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x9F, - 0x01, - 0x29, - 0x06, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1E, - 0x3E, - 0x02, - 0x02, - 0x02, - 0x47, - 0x5E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x47, - 0x75, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xA8, - 0x02, - 0x02, - 0xA8, - 0x05, - 0x03, - 0x00, - 0x05, - 0x99, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x3E, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x29, - 0x01, - 0x95, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x50, - 0x01, - 0x71, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0xCE, - 0x32, - 0x02, - 0xB0, - 0x1E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x47, - 0x75, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x74, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x8A, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3D, - 0xEA, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x99, - 0x3E, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xC9, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x71, - 0x01, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x43, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x06, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x3E, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x03, - 0x92, - 0xCB, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x75, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x30, - 0x01, - 0x3B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x6B, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCE, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x01, - 0x9F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x9D, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x3E, - 0x01, - 0x92, - 0x09, - 0x03, - 0x00, - 0x07, - 0xCB, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x90, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x47, - 0x01, - 0x5E, - 0x07, - 0x03, - 0x01, - 0xCE, - 0x01, - 0xD4, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x83, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x01, - 0x3E, - 0x01, - 0xC9, - 0x07, - 0x03, - 0x01, - 0xCB, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x71, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0xDE, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x5E, - 0x01, - 0xD4, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x44, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x1E, - 0x05, - 0x03, - 0x01, - 0x92, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0A, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x99, - 0x05, - 0x03, - 0x01, - 0xB0, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x4D, - 0x01, - 0x5E, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x06, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x99, - 0x04, - 0x03, - 0x01, - 0x5E, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x05, - 0x50, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x60, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x3E, - 0x75, - 0x02, - 0x3E, - 0x9A, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCB, - 0x01, - 0x75, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x05, - 0x99, - 0xDE, - 0x75, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x01, - 0xD5, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x01, - 0x75, - 0x01, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x30, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x50, - 0x09, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x12, - 0x32, - 0xC9, - 0x80, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x03, - 0x1F, - 0xB6, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x61, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x10, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x01, - 0xA8, - 0x04, - 0x02, - 0x00, - 0x07, - 0x47, - 0x1F, - 0x03, - 0xDE, - 0x02, - 0x4D, - 0x99, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0xDD, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0C, - 0x98, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x03, - 0x03, - 0xD5, - 0x4D, - 0x02, - 0xA8, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0xC1, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x98, - 0x01, - 0x12, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x0D, - 0xA8, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xDE, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x06, - 0xCE, - 0x32, - 0x02, - 0x02, - 0x75, - 0xDE, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x06, - 0x3C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x74, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x05, - 0xA8, - 0x02, - 0x02, - 0x3E, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x75, - 0x02, - 0x3D, - 0x80, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x99, - 0x4D, - 0x02, - 0x75, - 0xDE, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x6F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x10, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x04, - 0x03, - 0x00, - 0x04, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0x04, - 0x03, - 0x00, - 0x06, - 0x1F, - 0xDE, - 0x02, - 0x02, - 0x75, - 0x92, - 0x04, - 0x03, - 0x00, - 0x05, - 0xDD, - 0xB0, - 0xA8, - 0x3D, - 0xB6, - 0x00, - 0x04, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x00, - 0x07, - 0x9A, - 0x4D, - 0x02, - 0x02, - 0x02, - 0xA8, - 0x5E, - 0x00, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xE4, - 0x01, - 0x98, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x07, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x1E, - 0x0C, - 0x03, - 0x01, - 0x99, - 0x04, - 0x02, - 0x01, - 0xE1, - 0x01, - 0xC9, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xCC, - 0x01, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x80, - 0x0B, - 0x03, - 0x01, - 0x9A, - 0x01, - 0x4D, - 0x05, - 0x02, - 0x01, - 0x3D, - 0x0C, - 0x03, - 0x01, - 0xCE, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x30, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x32, - 0x01, - 0xDD, - 0x0B, - 0x03, - 0x01, - 0x99, - 0x01, - 0x75, - 0x05, - 0x02, - 0x01, - 0x75, - 0x01, - 0xC9, - 0x0B, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x75, - 0x06, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x98, - 0x01, - 0xC1, - 0x07, - 0x02, - 0x01, - 0xCB, - 0x0A, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0xA8, - 0x01, - 0x9A, - 0x0A, - 0x03, - 0x01, - 0x3D, - 0x06, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x07, - 0x02, - 0x01, - 0x3D, - 0x01, - 0x99, - 0x07, - 0xCB, - 0x01, - 0x47, - 0x01, - 0x4D, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x07, - 0xCB, - 0x01, - 0x99, - 0x01, - 0x32, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x8D, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x0C, - 0x2D, - 0x02, - 0x01, - 0xC4, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2B, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x4C, - 0x2B, - 0x02, - 0x01, - 0x43, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6C, - 0x01, - 0xD2, - 0x29, - 0x02, - 0x01, - 0x0C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0xB7, - 0x01, - 0x10, - 0x27, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x90, - 0x26, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x25, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x70, - 0x01, - 0x12, - 0x22, - 0x02, - 0x00, - 0x03, - 0x10, - 0xC1, - 0x98, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x50, - 0x01, - 0x61, - 0x21, - 0x02, - 0x01, - 0xA0, - 0x01, - 0xDC, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x1F, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x61, - 0x1C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x90, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0x17, - 0x3C, - 0x30, - 0x00, - 0x19, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x6F, - 0x17, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x50, - 0x56, - 0x8A, - 0x00, - 0x15, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x8C, - 0x98, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x17, - 0xDA, - 0x12, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x10, - 0x6B, - 0x70, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x50, - 0x74, - 0x9D, - 0x10, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x71, - 0x9F, - 0x98, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x19, - 0x05, - 0x00, - 0x0E, - 0x17, - 0xD6, - 0xBD, - 0x5A, - 0x56, - 0xC6, - 0x0A, - 0x10, - 0x7F, - 0x0D, - 0x09, - 0x96, - 0x95, - 0x50, - 0x19, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x09, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x1B, - 0x98, - 0x8D, - 0x50, - 0x60, - 0x3B, - 0x50, - 0x6C, - 0xDC, - 0x20, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0xC7, - 0xD2, - 0x0A, - 0x02, - 0x00, - 0x04, - 0xD2, - 0xE4, - 0xA7, - 0xDC, - 0x17, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x03, - 0x6C, - 0xBD, - 0x71, - 0x00, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0x1B, - 0x14, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x03, - 0x98, - 0x90, - 0x29, - 0x00, - 0x16, - 0x02, - 0x00, - 0x03, - 0x9D, - 0x4F, - 0x20, - 0x00, - 0x12, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x1A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x11, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x1D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x90, - 0xDC, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0xDA, - 0x01, - 0xD2, - 0x20, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x50, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x20, - 0x8C, - 0xD2, - 0x00, - 0x22, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x6F, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x90, - 0xD2, - 0x00, - 0x24, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x95, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x27, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x43, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x03, - 0x20, - 0x96, - 0xD2, - 0x00, - 0x28, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x4F, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x43, - 0x01, - 0x0A, - 0x2A, - 0x02, - 0x01, - 0x71, - 0x01, - 0x3B, - 0x09, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6F, - 0x01, - 0x9E, - 0x2C, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x08, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x83, - 0x01, - 0x0C, - 0x2E, - 0x02, - 0x01, - 0xC4, - 0x01, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x2E, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x4F, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9D, - 0x30, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x06, - 0x02, - 0x00, - 0x10, - 0x32, - 0x47, - 0x99, - 0x99, - 0x99, - 0xDE, - 0xB0, - 0x75, - 0x32, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xB0, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x10, - 0xD7, - 0xDE, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x3E, - 0x3E, - 0x47, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x47, - 0x4D, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xA7, - 0x06, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0xEA, - 0x00, - 0x0A, - 0x92, - 0x02, - 0x32, - 0xDD, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x99, - 0xEA, - 0xEA, - 0x03, - 0xEA, - 0xEA, - 0xCB, - 0x3E, - 0x32, - 0xDD, - 0x00, - 0x04, - 0xEA, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x06, - 0x02, - 0x01, - 0x94, - 0x01, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0xDC, - 0x01, - 0x90, - 0x07, - 0x02, - 0x01, - 0x47, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x05, - 0x92, - 0x02, - 0x75, - 0x47, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x01, - 0x92, - 0x01, - 0x4D, - 0x04, - 0x02, - 0x01, - 0x32, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xA8, - 0x02, - 0x32, - 0xDD, - 0x00, - 0x04, - 0x03, - 0x01, - 0xC9, - 0x01, - 0x3E, - 0x07, - 0x02, - 0x01, - 0x4F, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x70, - 0x01, - 0xD2, - 0x07, - 0x02, - 0x00, - 0x16, - 0x47, - 0x80, - 0x03, - 0xEA, - 0x03, - 0xEA, - 0x92, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0x3D, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB6, - 0x04, - 0x03, - 0x00, - 0x0C, - 0xEA, - 0x99, - 0x4D, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x6B, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x00, - 0x08, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x04, - 0x03, - 0x00, - 0x20, - 0x92, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0x4D, - 0x02, - 0x02, - 0xD4, - 0xEA, - 0x03, - 0xEA, - 0x03, - 0x03, - 0xE9, - 0xA8, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0xD2, - 0x83, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0xDC, - 0x6B, - 0x00, - 0x08, - 0x02, - 0x00, - 0x15, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xB0, - 0x02, - 0x75, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x4F, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x6A, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x47, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xD5, - 0x75, - 0xA8, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x6B, - 0xDC, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0xD7, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB0, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x08, - 0x02, - 0x00, - 0x05, - 0x7E, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xA0, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x01, - 0xB0, - 0x01, - 0x9A, - 0x07, - 0x03, - 0x00, - 0x05, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6F, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x9D, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0D, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x8C, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x29, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xC9, - 0xD4, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x99, - 0x00, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x56, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x0A, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x0D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x83, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x4D, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x5E, - 0x99, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x7E, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x70, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0xB0, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xE9, - 0xA8, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x10, - 0xDC, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x75, - 0x92, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xCB, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x3B, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x00, - 0x09, - 0x02, - 0x00, - 0x08, - 0x3D, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xD4, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x0A, - 0x02, - 0x00, - 0x03, - 0x6A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x50, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0x3E, - 0x75, - 0x02, - 0x02, - 0x92, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x5E, - 0xCB, - 0x75, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x06, - 0x02, - 0x00, - 0x0C, - 0xDE, - 0x99, - 0x4D, - 0x02, - 0xD4, - 0x5E, - 0x03, - 0x03, - 0x03, - 0xEA, - 0xC9, - 0xA8, - 0x05, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x32, - 0x92, - 0x80, - 0x32, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x5E, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x75, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x10, - 0x09, - 0x02, - 0x00, - 0x07, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x47, - 0x5E, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0x6B, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x30, - 0x09, - 0x02, - 0x00, - 0x07, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x92, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x32, - 0x92, - 0x03, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xEA, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x00, - 0x09, - 0x02, - 0x00, - 0x04, - 0x90, - 0x20, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x1B, - 0x0C, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0x75, - 0xDE, - 0xEA, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x75, - 0x02, - 0xD7, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x02, - 0x02, - 0x32, - 0xC9, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x04, - 0xDA, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x20, - 0xBD, - 0x09, - 0x02, - 0x00, - 0x0C, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x02, - 0x02, - 0x02, - 0xD4, - 0xC9, - 0x04, - 0x03, - 0x00, - 0x16, - 0xEA, - 0xD7, - 0x02, - 0x75, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCB, - 0x4D, - 0x02, - 0x02, - 0x32, - 0xDD, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x10, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x70, - 0x09, - 0x02, - 0x00, - 0x26, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xDD, - 0xD4, - 0xA8, - 0xA8, - 0xCB, - 0x03, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x92, - 0x4D, - 0x02, - 0x02, - 0xD7, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xE9, - 0xDE, - 0xA8, - 0xA8, - 0x47, - 0xE9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x71, - 0x6A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x98, - 0x44, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x47, - 0x9A, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x04, - 0x03, - 0x00, - 0x0B, - 0x1F, - 0x03, - 0xEA, - 0xD4, - 0x02, - 0x02, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x08, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x1B, - 0x90, - 0x00, - 0x08, - 0x02, - 0x00, - 0x06, - 0xB0, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x07, - 0xEA, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xCB, - 0x4D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xD7, - 0x80, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x3E, - 0x08, - 0x02, - 0x00, - 0x05, - 0x60, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x20, - 0x6F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x10, - 0xB0, - 0x80, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0x32, - 0x05, - 0x02, - 0x00, - 0x06, - 0x75, - 0x47, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x05, - 0x1F, - 0x00, - 0x06, - 0x03, - 0x1F, - 0x03, - 0xEA, - 0xC9, - 0x3E, - 0x07, - 0x02, - 0x00, - 0x06, - 0x9E, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x12, - 0x07, - 0x02, - 0x00, - 0x10, - 0x32, - 0xDD, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCB, - 0x4D, - 0x06, - 0x02, - 0x00, - 0x05, - 0x3E, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x75, - 0x07, - 0x02, - 0x00, - 0x06, - 0x8C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x20, - 0x01, - 0x95, - 0x08, - 0x02, - 0x00, - 0x0E, - 0xCB, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0xD7, - 0x07, - 0x02, - 0x00, - 0x06, - 0x75, - 0x3D, - 0x9A, - 0x03, - 0x1F, - 0x03, - 0x04, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x1F, - 0x03, - 0x9A, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x50, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x6C, - 0x01, - 0x0C, - 0x08, - 0x02, - 0x01, - 0xD4, - 0x01, - 0x99, - 0x08, - 0xCB, - 0x01, - 0xB0, - 0x01, - 0x3E, - 0x09, - 0x02, - 0x00, - 0x03, - 0x75, - 0x32, - 0xDE, - 0x00, - 0x08, - 0xCB, - 0x01, - 0x99, - 0x01, - 0xD7, - 0x08, - 0x02, - 0x01, - 0x8C, - 0x01, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xDA, - 0x31, - 0x02, - 0x01, - 0x12, - 0x01, - 0x3B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x01, - 0x83, - 0x01, - 0x56, - 0x30, - 0x02, - 0x01, - 0x3C, - 0x01, - 0x1B, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x4F, - 0x01, - 0xD2, - 0x2E, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x70, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x3C, - 0x2D, - 0x02, - 0x01, - 0x9D, - 0x01, - 0xA7, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x6A, - 0x01, - 0xA0, - 0x2B, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xDF, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x71, - 0x2A, - 0x02, - 0x01, - 0x90, - 0x01, - 0xDC, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x9D, - 0x28, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x6C, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x01, - 0x4F, - 0x01, - 0x44, - 0x26, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x8D, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x9E, - 0x24, - 0x02, - 0x01, - 0x6B, - 0x01, - 0x6A, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x01, - 0x83, - 0x01, - 0x12, - 0x22, - 0x02, - 0x01, - 0x90, - 0x01, - 0x1B, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x6A, - 0x01, - 0x56, - 0x1F, - 0x02, - 0x01, - 0xD2, - 0x01, - 0xBD, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x01, - 0xA7, - 0x01, - 0x30, - 0x1C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x83, - 0x10, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x03, - 0xDC, - 0x8C, - 0xD2, - 0x00, - 0x18, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x6F, - 0x12, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x6C, - 0x5A, - 0x30, - 0x00, - 0x14, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x43, - 0x1B, - 0x00, - 0x13, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x04, - 0x1B, - 0x6F, - 0xA0, - 0x7E, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x12, - 0x8C, - 0x83, - 0x00, - 0x16, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x1B, - 0x3B, - 0xBD, - 0x5A, - 0x56, - 0x12, - 0x0A, - 0x02, - 0x10, - 0x7E, - 0x71, - 0x6B, - 0x8C, - 0xDA, - 0x83, - 0x20, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAA, - 0x0C, - 0x00, - 0x00, - 0x1B, - 0x05, - 0x00, - 0x0A, - 0x17, - 0xDC, - 0x6C, - 0x50, - 0x3B, - 0x60, - 0x70, - 0x8D, - 0x98, - 0x1B, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x05, - 0x00, - 0x05, - 0x6C, - 0x95, - 0x94, - 0x0A, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x04, - 0x30, - 0x5A, - 0x6F, - 0x1B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x04, - 0x8D, - 0x43, - 0x4C, - 0x29, - 0x11, - 0x02, - 0x00, - 0x04, - 0x0A, - 0x6B, - 0xA7, - 0xDC, - 0x13, - 0x05, - 0x00, - 0x00, - 0x12, - 0x05, - 0x00, - 0x1D, - 0x8D, - 0xA0, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x9D, - 0xDF, - 0xDC, - 0x00, - 0x11, - 0x05, - 0x00, - 0x00, - 0x10, - 0x05, - 0x00, - 0x06, - 0x59, - 0x8C, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x15, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x12, - 0xA7, - 0x1B, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x00, - 0x24, - 0x1B, - 0x95, - 0x9D, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x6B, - 0x3B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x04, - 0x59, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x01, - 0x10, - 0x15, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x7F, - 0x4F, - 0x1B, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x03, - 0x83, - 0x4C, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x8A, - 0x3C, - 0xDC, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x0B, - 0x3B, - 0x9E, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x15, - 0x02, - 0x01, - 0x29, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x02, - 0xA0, - 0x59, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x06, - 0x17, - 0x6F, - 0x7C, - 0x02, - 0x02, - 0x29, - 0x08, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x71, - 0x6C, - 0x09, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x0C, - 0x83, - 0x7E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x16, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x03, - 0x10, - 0x94, - 0x59, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9E, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x00, - 0x08, - 0x02, - 0x00, - 0x22, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x74, - 0x1B, - 0x07, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x05, - 0x1B, - 0x56, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x14, - 0x02, - 0x01, - 0x10, - 0x09, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x10, - 0x95, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x74, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x21, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x29, - 0x60, - 0x00, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x13, - 0x6F, - 0x8A, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x12, - 0x02, - 0x01, - 0x29, - 0x09, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x02, - 0x29, - 0x30, - 0x59, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x9E, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x00, - 0x20, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x8C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x09, - 0x95, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x75, - 0x3D, - 0x00, - 0x05, - 0x99, - 0x00, - 0x03, - 0x3D, - 0x75, - 0xD4, - 0x00, - 0x05, - 0x99, - 0x01, - 0x47, - 0x01, - 0xD7, - 0x06, - 0x02, - 0x00, - 0x0B, - 0x75, - 0xA8, - 0x99, - 0x99, - 0x99, - 0xDE, - 0x99, - 0xDE, - 0x3E, - 0x3E, - 0xB0, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0D, - 0x32, - 0x02, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0xD2, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x59, - 0x01, - 0x30, - 0x06, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x10, - 0x32, - 0xCE, - 0x05, - 0x03, - 0x00, - 0x09, - 0xCB, - 0x75, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xCB, - 0x3E, - 0x32, - 0x92, - 0x05, - 0x03, - 0x01, - 0x3D, - 0x01, - 0x75, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x90, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x1A, - 0x43, - 0x29, - 0x29, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x04, - 0x02, - 0x00, - 0x03, - 0x75, - 0x99, - 0xEA, - 0x00, - 0x04, - 0x03, - 0x00, - 0x05, - 0x9A, - 0xD4, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x83, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x59, - 0xD2, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0E, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0xD7, - 0x92, - 0x05, - 0x03, - 0x00, - 0x17, - 0xCB, - 0x4D, - 0x02, - 0x10, - 0x02, - 0xA8, - 0xC9, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x99, - 0x4D, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x05, - 0x29, - 0xA0, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x05, - 0x05, - 0x05, - 0xA7, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xD5, - 0x3D, - 0x02, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xCE, - 0xD4, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x30, - 0x1B, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0xA0, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x0F, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xB6, - 0x3E, - 0x02, - 0xA8, - 0xCE, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x47, - 0x75, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x06, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x60, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x05, - 0x7F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x08, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x04, - 0x02, - 0x00, - 0x16, - 0x3D, - 0x5E, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x1E, - 0xB0, - 0x3E, - 0xCB, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x92, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x0D, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x90, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x3B, - 0x02, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x18, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0xCB, - 0xDD, - 0x05, - 0x03, - 0x00, - 0x0D, - 0xB0, - 0x75, - 0x02, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0x29, - 0x9D, - 0x17, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x05, - 0x90, - 0x10, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0xA8, - 0x9A, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x07, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x01, - 0x70, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x0D, - 0x02, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x15, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0xEA, - 0x01, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xCE, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xB6, - 0x3E, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x1B, - 0x02, - 0x29, - 0x02, - 0x10, - 0x06, - 0x02, - 0x00, - 0x1A, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xDE, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x5E, - 0xA8, - 0x06, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x6B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0xDC, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0x03, - 0xCB, - 0x3E, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x6C, - 0x02, - 0x29, - 0x02, - 0x29, - 0x06, - 0x02, - 0x00, - 0x19, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x75, - 0x47, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xDD, - 0xA8, - 0x00, - 0x07, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x7E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x8D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x4D, - 0xB6, - 0x00, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x04, - 0x29, - 0x02, - 0x32, - 0x92, - 0x04, - 0x03, - 0x00, - 0x0C, - 0x1F, - 0xB6, - 0xD7, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x05, - 0x83, - 0x02, - 0x10, - 0x02, - 0x29, - 0x04, - 0x02, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x9A, - 0x3D, - 0x00, - 0x07, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x70, - 0x05, - 0x02, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0x10, - 0x02, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x3E, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x26, - 0x05, - 0x8D, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0x4D, - 0x02, - 0x02, - 0x3D, - 0x1E, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x9A, - 0xB0, - 0x06, - 0x02, - 0x00, - 0x09, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x01, - 0x05, - 0x01, - 0x59, - 0x0A, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x01, - 0xB6, - 0x06, - 0x02, - 0x00, - 0x14, - 0xA8, - 0xB6, - 0x32, - 0x02, - 0x3E, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x32, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x32, - 0x92, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x21, - 0x05, - 0xDC, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0xEA, - 0xB6, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x3E, - 0xCB, - 0x1E, - 0x47, - 0x75, - 0x02, - 0xA8, - 0xD5, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0x1F, - 0xB0, - 0x75, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x02, - 0x56, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x8A, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x01, - 0xB6, - 0x05, - 0x02, - 0x00, - 0x15, - 0x3D, - 0x9A, - 0x03, - 0x92, - 0xD4, - 0x02, - 0x4D, - 0x99, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x92, - 0x32, - 0x02, - 0x29, - 0x02, - 0x29, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x22, - 0x05, - 0x05, - 0x30, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x10, - 0x02, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0xEA, - 0x99, - 0x75, - 0x02, - 0xA8, - 0xC9, - 0x05, - 0x03, - 0x00, - 0x0E, - 0x47, - 0x4D, - 0x02, - 0x02, - 0x02, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x96, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x05, - 0x05, - 0x0C, - 0x00, - 0x09, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0xB6, - 0x02, - 0x02, - 0x02, - 0x75, - 0xB0, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0xA8, - 0x02, - 0x75, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xC9, - 0x32, - 0x02, - 0x10, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x01, - 0xB7, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x05, - 0x05, - 0x95, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xB6, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xB6, - 0x29, - 0x02, - 0x02, - 0x32, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0xDE, - 0x75, - 0x02, - 0xD4, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x0C, - 0x99, - 0x4D, - 0x02, - 0x29, - 0x32, - 0x92, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x06, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x10, - 0x8A, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x6C, - 0x10, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x05, - 0x03, - 0x00, - 0x1B, - 0x92, - 0xA8, - 0xA8, - 0xA8, - 0x99, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xCE, - 0x3D, - 0x10, - 0x02, - 0x75, - 0xDE, - 0x1F, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0xDD, - 0x47, - 0xA8, - 0xA8, - 0xB0, - 0xC9, - 0x00, - 0x05, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x03, - 0x56, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x4D, - 0xB6, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x07, - 0x99, - 0x75, - 0x02, - 0x02, - 0x02, - 0x32, - 0xB6, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x06, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x29, - 0x02, - 0x29, - 0x02, - 0x43, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x05, - 0x05, - 0x05, - 0x3C, - 0x08, - 0x02, - 0x01, - 0x4D, - 0x01, - 0xB6, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x1F, - 0x03, - 0x1F, - 0x92, - 0xA8, - 0x10, - 0x02, - 0x02, - 0x10, - 0x10, - 0x47, - 0x1F, - 0x03, - 0x1F, - 0x05, - 0x03, - 0x01, - 0x1F, - 0x06, - 0x03, - 0x00, - 0x05, - 0x3D, - 0x75, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x04, - 0x10, - 0x6C, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x13, - 0x05, - 0x05, - 0x05, - 0x83, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x4D, - 0xCB, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x07, - 0x1F, - 0x03, - 0x03, - 0x1F, - 0xEA, - 0xDE, - 0x75, - 0x00, - 0x05, - 0x02, - 0x00, - 0x12, - 0xD7, - 0xB6, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x3D, - 0x75, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x61, - 0x17, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x05, - 0x17, - 0x0C, - 0x00, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x47, - 0x06, - 0x03, - 0x00, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xB6, - 0x32, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0xB0, - 0xD5, - 0x00, - 0x06, - 0x03, - 0x01, - 0x1F, - 0x05, - 0x03, - 0x00, - 0x05, - 0xEA, - 0x32, - 0x02, - 0x02, - 0x10, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x95, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x00, - 0x0F, - 0x3B, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x3E, - 0xC9, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0x1F, - 0x03, - 0xDD, - 0x3D, - 0x08, - 0x02, - 0x00, - 0x1C, - 0x75, - 0x99, - 0x1E, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x03, - 0x03, - 0x1F, - 0x03, - 0x1F, - 0x03, - 0x99, - 0x4D, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x61, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x04, - 0x05, - 0x01, - 0x1B, - 0x01, - 0xD3, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0xB0, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x0F, - 0x47, - 0xD7, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x4D, - 0xA8, - 0x99, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x07, - 0x99, - 0xA8, - 0x75, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x05, - 0xA7, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x08, - 0x83, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x0E, - 0x02, - 0x01, - 0x10, - 0x06, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0D, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x29, - 0x0C, - 0x1B, - 0x05, - 0x05, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x05, - 0x01, - 0x17, - 0x01, - 0x8B, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x05, - 0x10, - 0x02, - 0x02, - 0x10, - 0x60, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x07, - 0x6C, - 0x9D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x06, - 0x02, - 0x00, - 0x09, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0D, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x29, - 0x02, - 0xA0, - 0x1B, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x01, - 0x3B, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x05, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x29, - 0x08, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x03, - 0x29, - 0x02, - 0x29, - 0x00, - 0x07, - 0x02, - 0x01, - 0x85, - 0x01, - 0xDC, - 0x06, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x06, - 0x17, - 0x4F, - 0x10, - 0x29, - 0x02, - 0x10, - 0x08, - 0x02, - 0x00, - 0x18, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x05, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0xC6, - 0x6C, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x01, - 0x1B, - 0x01, - 0x96, - 0x04, - 0x02, - 0x00, - 0x07, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x03, - 0x10, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD2, - 0x01, - 0x3B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x04, - 0x59, - 0x6B, - 0x02, - 0x29, - 0x09, - 0x02, - 0x00, - 0x17, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x29, - 0x02, - 0x29, - 0x02, - 0x95, - 0x1B, - 0x08, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x0B, - 0xDC, - 0xC1, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x09, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x4F, - 0x1B, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x03, - 0x1B, - 0x43, - 0x8A, - 0x00, - 0x08, - 0x02, - 0x00, - 0x17, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x00, - 0x06, - 0x02, - 0x01, - 0xC6, - 0x01, - 0x60, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x05, - 0x00, - 0x09, - 0x1B, - 0x95, - 0x0A, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x00, - 0x11, - 0x02, - 0x01, - 0x29, - 0x07, - 0x02, - 0x00, - 0x06, - 0x10, - 0x02, - 0x10, - 0x02, - 0x61, - 0x50, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x05, - 0x01, - 0x60, - 0x01, - 0x9E, - 0x06, - 0x02, - 0x00, - 0x1D, - 0x29, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0xC1, - 0x6C, - 0x00, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0x06, - 0x59, - 0x3C, - 0x30, - 0x29, - 0x02, - 0x29, - 0x11, - 0x02, - 0x01, - 0x10, - 0x07, - 0x02, - 0x00, - 0x04, - 0x29, - 0x12, - 0x6F, - 0x1B, - 0x0E, - 0x05, - 0x00, - 0x00, - 0x11, - 0x05, - 0x00, - 0x1F, - 0x8D, - 0x8B, - 0x7C, - 0x02, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x10, - 0x02, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x9E, - 0x95, - 0x1B, - 0x00, - 0x10, - 0x05, - 0x00, - 0x00, - 0x13, - 0x05, - 0x00, - 0x03, - 0x83, - 0xC1, - 0x30, - 0x00, - 0x10, - 0x02, - 0x00, - 0x08, - 0x29, - 0x02, - 0x02, - 0x02, - 0x10, - 0x9E, - 0x43, - 0x59, - 0x12, - 0x05, - 0x00, - 0x00, - 0x15, - 0x05, - 0x00, - 0x16, - 0x1B, - 0x60, - 0x90, - 0x9D, - 0x10, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x29, - 0x02, - 0x10, - 0x02, - 0x02, - 0x29, - 0x71, - 0x43, - 0x83, - 0x15, - 0x05, - 0x00, - 0x00, - 0x18, - 0x05, - 0x00, - 0x10, - 0x17, - 0x70, - 0xDF, - 0x74, - 0xC1, - 0x85, - 0x9D, - 0x02, - 0x10, - 0x7C, - 0x9E, - 0x4C, - 0xA0, - 0x3C, - 0x4F, - 0x6C, - 0x18, - 0x05, - 0x00, - 0x00, - 0x40, - 0x05, - 0x00, - 0x01, - 0x00, - 0x00, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x06, - 0x10, - 0x00, - 0x00, - 0x00, - 0x02, - 0x2B, - 0x01, - 0x00, - 0x14, - 0x04, - 0x98, - 0x83, - 0x78, - 0xC2, - 0x93, - 0x6D, - 0x6D, - 0xE3, - 0x42, - 0x42, - 0xE3, - 0x6D, - 0x6D, - 0x93, - 0xC2, - 0xAB, - 0x83, - 0x98, - 0x04, - 0x00, - 0x00, - 0x00, - 0x02, - 0x26, - 0x00, - 0x00, - 0x07, - 0x07, - 0xBE, - 0x5F, - 0x42, - 0x0F, - 0xD9, - 0x64, - 0x00, - 0x05, - 0x29, - 0x07, - 0x02, - 0x00, - 0x0B, - 0x29, - 0x29, - 0x64, - 0x64, - 0x64, - 0xD9, - 0x0F, - 0xBD, - 0xB8, - 0xE2, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x22, - 0x00, - 0x00, - 0x10, - 0x04, - 0x78, - 0xAA, - 0x0F, - 0x12, - 0x02, - 0x0A, - 0x29, - 0x29, - 0xC6, - 0xD9, - 0x0F, - 0x5B, - 0xBD, - 0xDA, - 0xB8, - 0x06, - 0x5F, - 0x00, - 0x10, - 0xB8, - 0xDA, - 0xDA, - 0x84, - 0x0F, - 0x0F, - 0x12, - 0x64, - 0x29, - 0x0A, - 0x29, - 0x64, - 0x0F, - 0xAA, - 0xAB, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1F, - 0x00, - 0x00, - 0x0D, - 0x98, - 0x5F, - 0x4E, - 0x30, - 0x29, - 0x29, - 0x30, - 0xCF, - 0x4E, - 0x76, - 0xAB, - 0x6A, - 0x1B, - 0x00, - 0x12, - 0x00, - 0x00, - 0x0D, - 0x1B, - 0x6A, - 0x70, - 0x93, - 0x4E, - 0xCF, - 0x30, - 0x64, - 0x30, - 0x64, - 0x4E, - 0x11, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x00, - 0x00, - 0x0B, - 0x20, - 0x2A, - 0xA5, - 0x0A, - 0x29, - 0x02, - 0x7C, - 0x4E, - 0x11, - 0x06, - 0x17, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x6C, - 0x11, - 0x84, - 0xCF, - 0x0A, - 0x64, - 0x7F, - 0x4E, - 0x11, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x09, - 0x06, - 0x76, - 0x85, - 0x29, - 0x02, - 0x85, - 0xE3, - 0xAB, - 0x04, - 0x00, - 0x24, - 0x00, - 0x00, - 0x09, - 0x04, - 0xD6, - 0xE3, - 0x85, - 0x29, - 0x64, - 0xD9, - 0x6D, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x18, - 0x00, - 0x00, - 0x08, - 0x01, - 0x84, - 0x30, - 0x29, - 0x30, - 0x4E, - 0x78, - 0x17, - 0x2A, - 0x00, - 0x00, - 0x08, - 0x17, - 0x5F, - 0x4E, - 0x64, - 0x29, - 0x64, - 0xE3, - 0x06, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x01, - 0x05, - 0x05, - 0x00, - 0x00, - 0x07, - 0x06, - 0xBD, - 0x0A, - 0x64, - 0x49, - 0xBD, - 0x98, - 0x00, - 0x28, - 0x00, - 0x01, - 0x05, - 0x07, - 0x00, - 0x00, - 0x07, - 0x06, - 0x6D, - 0xD9, - 0x29, - 0x30, - 0xE3, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x7F, - 0x29, - 0x12, - 0x8E, - 0x04, - 0x00, - 0x34, - 0x00, - 0x00, - 0x07, - 0x04, - 0x93, - 0xC6, - 0x29, - 0x64, - 0x6D, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x00, - 0x00, - 0x0A, - 0x78, - 0x0F, - 0x29, - 0x0A, - 0x76, - 0x04, - 0x00, - 0x00, - 0x05, - 0x05, - 0x31, - 0x00, - 0x00, - 0x09, - 0x17, - 0x00, - 0x00, - 0x0B, - 0x93, - 0x12, - 0x29, - 0xD9, - 0x78, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x06, - 0x07, - 0x4E, - 0x29, - 0x29, - 0x4E, - 0x06, - 0x37, - 0x00, - 0x01, - 0x05, - 0x04, - 0x00, - 0x00, - 0x06, - 0x2F, - 0x84, - 0x29, - 0x30, - 0x7D, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x05, - 0xBE, - 0x49, - 0x29, - 0xCF, - 0x5F, - 0x00, - 0x3D, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x2A, - 0x0C, - 0x29, - 0xD9, - 0xE2, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0xA7, - 0x64, - 0x29, - 0xE3, - 0x04, - 0x23, - 0x00, - 0x01, - 0x05, - 0x01, - 0x05, - 0x1D, - 0x00, - 0x00, - 0x05, - 0x04, - 0xAA, - 0x29, - 0x64, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x08, - 0x05, - 0x17, - 0x00, - 0x00, - 0x42, - 0x64, - 0x64, - 0xC2, - 0x46, - 0x00, - 0x00, - 0x09, - 0x11, - 0x30, - 0x29, - 0x6D, - 0x05, - 0x00, - 0x05, - 0x17, - 0x05, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x05, - 0x04, - 0xE2, - 0x5F, - 0x84, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x00, - 0x05, - 0x17, - 0x4E, - 0x64, - 0x12, - 0x50, - 0x00, - 0x48, - 0x00, - 0x00, - 0x07, - 0xE7, - 0x7C, - 0x29, - 0x4E, - 0x04, - 0x00, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0x84, - 0x12, - 0x02, - 0x29, - 0x64, - 0x84, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x00, - 0x05, - 0x04, - 0x4E, - 0x71, - 0xD9, - 0x06, - 0x00, - 0x29, - 0x00, - 0x00, - 0x03, - 0xD6, - 0xC2, - 0x06, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x05, - 0x08, - 0xE8, - 0x29, - 0xA5, - 0x04, - 0x00, - 0x08, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x6D, - 0x12, - 0x02, - 0x0F, - 0xC8, - 0xBE, - 0x59, - 0x05, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x4E, - 0x64, - 0x0F, - 0x07, - 0x29, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x44, - 0x29, - 0x49, - 0x98, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x0F, - 0x29, - 0x74, - 0x17, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0x04, - 0x84, - 0x29, - 0x09, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x06, - 0x05, - 0x05, - 0x84, - 0x64, - 0xD9, - 0x07, - 0x29, - 0x00, - 0x00, - 0x06, - 0x17, - 0x71, - 0x29, - 0x02, - 0x29, - 0xA5, - 0x1F, - 0x00, - 0x00, - 0x05, - 0x04, - 0x0F, - 0x29, - 0x3F, - 0x17, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x84, - 0x29, - 0xAA, - 0x00, - 0x0F, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x64, - 0xD9, - 0x07, - 0x2A, - 0x00, - 0x00, - 0x07, - 0x17, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x64, - 0xE7, - 0x00, - 0x1F, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xD9, - 0x29, - 0xE3, - 0x04, - 0x00, - 0x00, - 0x03, - 0x2A, - 0x29, - 0x4E, - 0x00, - 0x14, - 0x00, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x04, - 0x78, - 0x64, - 0x64, - 0xE7, - 0x2C, - 0x00, - 0x01, - 0x5F, - 0x04, - 0x29, - 0x00, - 0x03, - 0x4E, - 0x05, - 0x05, - 0x00, - 0x17, - 0x00, - 0x01, - 0x05, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x01, - 0xD9, - 0x29, - 0x02, - 0xD9, - 0x84, - 0xB8, - 0x98, - 0x4E, - 0x0A, - 0x2F, - 0x00, - 0x13, - 0x00, - 0x01, - 0xE3, - 0x01, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x04, - 0x37, - 0xCF, - 0x64, - 0xE7, - 0x23, - 0x00, - 0x00, - 0x05, - 0x17, - 0xE3, - 0xD9, - 0x4E, - 0x0B, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x05, - 0x4E, - 0x29, - 0x02, - 0x02, - 0x64, - 0xE7, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x0C, - 0x98, - 0x84, - 0x29, - 0x29, - 0xCF, - 0xB4, - 0x12, - 0x02, - 0x29, - 0x0A, - 0x30, - 0x0F, - 0x11, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0xC3, - 0x64, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x04, - 0x05, - 0x4E, - 0x64, - 0x6D, - 0x24, - 0x00, - 0x00, - 0x05, - 0x93, - 0x29, - 0x29, - 0x29, - 0xD9, - 0x00, - 0x06, - 0x00, - 0x00, - 0x07, - 0x2A, - 0x44, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x05, - 0x00, - 0x1A, - 0x00, - 0x00, - 0x0D, - 0x8E, - 0x12, - 0x29, - 0x49, - 0x8E, - 0x06, - 0x00, - 0x00, - 0xBE, - 0xB7, - 0xD9, - 0x29, - 0xC2, - 0x00, - 0x11, - 0x00, - 0x00, - 0x05, - 0x05, - 0xB2, - 0x64, - 0xB4, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x04, - 0xC2, - 0x64, - 0x0F, - 0x17, - 0x24, - 0x00, - 0x00, - 0x06, - 0x42, - 0x02, - 0x02, - 0x02, - 0x29, - 0x11, - 0x06, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x30, - 0x2A, - 0x18, - 0x00, - 0x00, - 0x06, - 0xBE, - 0xD9, - 0x29, - 0x12, - 0x11, - 0x04, - 0x06, - 0x00, - 0x00, - 0x03, - 0x84, - 0x0A, - 0x2F, - 0x00, - 0x11, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD9, - 0x30, - 0x06, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x04, - 0x07, - 0xC6, - 0x64, - 0x01, - 0x25, - 0x00, - 0x00, - 0x07, - 0x78, - 0x29, - 0x02, - 0x02, - 0x29, - 0xC6, - 0x0B, - 0x00, - 0x05, - 0x00, - 0x01, - 0x11, - 0x04, - 0x29, - 0x01, - 0x84, - 0x17, - 0x00, - 0x00, - 0x05, - 0x93, - 0x64, - 0x29, - 0x4E, - 0x06, - 0x00, - 0x07, - 0x00, - 0x00, - 0x03, - 0x17, - 0x7F, - 0x4E, - 0x00, - 0x12, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x29, - 0x11, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x64, - 0xE3, - 0x00, - 0x1D, - 0x00, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x08, - 0x00, - 0x00, - 0x06, - 0x4E, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x07, - 0x04, - 0x0F, - 0x29, - 0x29, - 0x29, - 0x49, - 0x04, - 0x00, - 0x15, - 0x00, - 0x00, - 0x04, - 0xBE, - 0x30, - 0x12, - 0x60, - 0x04, - 0x00, - 0x00, - 0x08, - 0x06, - 0x93, - 0x74, - 0x74, - 0x78, - 0xC3, - 0x29, - 0x5F, - 0x11, - 0x00, - 0x00, - 0x03, - 0xAB, - 0x64, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xCF, - 0xCF, - 0x07, - 0x1C, - 0x00, - 0x00, - 0x05, - 0xE2, - 0xD9, - 0x49, - 0x6D, - 0x05, - 0x00, - 0x06, - 0x00, - 0x00, - 0x07, - 0x01, - 0x30, - 0x02, - 0x02, - 0x29, - 0xCF, - 0xDC, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x8E, - 0x29, - 0x29, - 0x29, - 0x02, - 0x11, - 0x15, - 0x00, - 0x00, - 0x10, - 0x4E, - 0x29, - 0x11, - 0x00, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x12, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x10, - 0x00, - 0x00, - 0x04, - 0x0B, - 0x49, - 0x71, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x64, - 0xC3, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x06, - 0x0B, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xE3, - 0x07, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x93, - 0x05, - 0x00, - 0x00, - 0x06, - 0x07, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x15, - 0x00, - 0x00, - 0x0F, - 0xD9, - 0x29, - 0xC2, - 0x00, - 0x05, - 0xB8, - 0xCF, - 0x29, - 0xCF, - 0x6D, - 0xE2, - 0x11, - 0x44, - 0x29, - 0xE3, - 0x00, - 0x0F, - 0x00, - 0x00, - 0x05, - 0x17, - 0x00, - 0x6D, - 0x29, - 0x93, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x85, - 0x44, - 0x06, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x07, - 0x0E, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x30, - 0x11, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0x06, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x09, - 0x06, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x14, - 0x00, - 0x00, - 0x0F, - 0x5F, - 0x30, - 0x30, - 0x5B, - 0x0F, - 0x29, - 0x0A, - 0xE3, - 0x2F, - 0x00, - 0x00, - 0x06, - 0x44, - 0x30, - 0x06, - 0x00, - 0x10, - 0x00, - 0x00, - 0x03, - 0xE2, - 0x29, - 0x0F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x11, - 0x64, - 0x84, - 0x1D, - 0x00, - 0x00, - 0x08, - 0x05, - 0x84, - 0x29, - 0x02, - 0x02, - 0x02, - 0x12, - 0x07, - 0x04, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x84, - 0x29, - 0x02, - 0x02, - 0x30, - 0xAB, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x2A, - 0x13, - 0x00, - 0x00, - 0x0F, - 0x05, - 0x00, - 0xB8, - 0x02, - 0x29, - 0x29, - 0x4E, - 0x06, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x49, - 0x29, - 0x11, - 0x00, - 0x11, - 0x00, - 0x00, - 0x03, - 0x0F, - 0x64, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x29, - 0x2A, - 0x15, - 0x00, - 0x00, - 0x04, - 0x07, - 0x5B, - 0x0F, - 0xAA, - 0x05, - 0x00, - 0x00, - 0x07, - 0x0B, - 0x09, - 0x29, - 0x02, - 0x02, - 0x29, - 0x84, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0x50, - 0x30, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x30, - 0x29, - 0x02, - 0x02, - 0x6D, - 0x14, - 0x00, - 0x00, - 0x0D, - 0x04, - 0x84, - 0x29, - 0xCF, - 0x11, - 0x00, - 0x00, - 0x05, - 0x00, - 0x8D, - 0x0C, - 0x7F, - 0x8E, - 0x00, - 0x11, - 0x00, - 0x00, - 0x03, - 0x11, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x04, - 0xCF, - 0x64, - 0x0B, - 0x00, - 0x05, - 0x13, - 0x00, - 0x00, - 0x05, - 0xC3, - 0x29, - 0x29, - 0x29, - 0xE3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x06, - 0xC6, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x37, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x04, - 0xD9, - 0x29, - 0x02, - 0x29, - 0x0F, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x12, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x5B, - 0x29, - 0x0C, - 0x98, - 0x04, - 0x00, - 0x00, - 0x04, - 0x78, - 0x12, - 0x64, - 0x78, - 0x11, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xC6, - 0xD9, - 0x04, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0xE2, - 0x64, - 0x4E, - 0x00, - 0x16, - 0x00, - 0x00, - 0x06, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x64, - 0x78, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x06, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x29, - 0x02, - 0x29, - 0x7F, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x84, - 0x29, - 0x02, - 0x29, - 0x7C, - 0x17, - 0x12, - 0x00, - 0x00, - 0x04, - 0xE7, - 0x29, - 0xE8, - 0x59, - 0x04, - 0x00, - 0x00, - 0x04, - 0xC2, - 0x29, - 0x71, - 0x2A, - 0x12, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x29, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0xC8, - 0x64, - 0xC3, - 0x00, - 0x16, - 0x00, - 0x00, - 0x07, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x02, - 0xCF, - 0x0B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x07, - 0x0B, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x49, - 0x04, - 0x00, - 0x05, - 0x00, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0xB7, - 0x05, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x29, - 0x02, - 0x29, - 0xCF, - 0x06, - 0x10, - 0x00, - 0x00, - 0x0D, - 0x17, - 0x00, - 0xD9, - 0x29, - 0x2A, - 0x00, - 0x05, - 0x00, - 0x00, - 0x8E, - 0x29, - 0xD9, - 0x31, - 0x00, - 0x12, - 0x00, - 0x00, - 0x03, - 0x01, - 0x64, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x5B, - 0x30, - 0xBE, - 0x00, - 0x16, - 0x00, - 0x00, - 0x07, - 0x0B, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x00, - 0x05, - 0x00, - 0x01, - 0x93, - 0x04, - 0x02, - 0x01, - 0x11, - 0x05, - 0x00, - 0x00, - 0x06, - 0x98, - 0x44, - 0x02, - 0x02, - 0x29, - 0xAA, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC2, - 0x29, - 0x02, - 0x02, - 0x0A, - 0x50, - 0x11, - 0x00, - 0x00, - 0x0D, - 0x04, - 0x7C, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDF, - 0x29, - 0x4E, - 0x07, - 0x00, - 0x05, - 0x00, - 0x10, - 0x00, - 0x00, - 0x04, - 0x17, - 0x0F, - 0x64, - 0x01, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x5A, - 0x0A, - 0x06, - 0x00, - 0x17, - 0x00, - 0x00, - 0x07, - 0x01, - 0x12, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x06, - 0x06, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x44, - 0x02, - 0x02, - 0x29, - 0xB8, - 0x12, - 0x00, - 0x00, - 0x0C, - 0xD9, - 0x29, - 0x11, - 0x00, - 0x06, - 0x4E, - 0x29, - 0x4E, - 0x17, - 0x00, - 0x00, - 0x05, - 0x10, - 0x00, - 0x00, - 0x03, - 0x78, - 0x29, - 0x6D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x71, - 0xCF, - 0x17, - 0x00, - 0x16, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x2A, - 0x04, - 0x00, - 0x00, - 0x06, - 0x05, - 0x0F, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x05, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x98, - 0xC6, - 0x02, - 0x02, - 0x29, - 0xC3, - 0x10, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x98, - 0x84, - 0x29, - 0x30, - 0xD9, - 0x0A, - 0x29, - 0xC3, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x03, - 0xDC, - 0x5F, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x04, - 0x04, - 0x12, - 0xD9, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xD9, - 0x71, - 0x19, - 0x00, - 0x00, - 0x06, - 0xE2, - 0x44, - 0x02, - 0x02, - 0x29, - 0x6D, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAA, - 0x29, - 0x02, - 0x02, - 0xD9, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAA, - 0x29, - 0x02, - 0x02, - 0x09, - 0x17, - 0x04, - 0x00, - 0x00, - 0x06, - 0xDC, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x0B, - 0x00, - 0x00, - 0x0D, - 0x17, - 0x59, - 0xAB, - 0x76, - 0x5A, - 0xD9, - 0x64, - 0x29, - 0x02, - 0x02, - 0x29, - 0x30, - 0xB8, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x03, - 0x60, - 0xC6, - 0x64, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x29, - 0xE7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xCF, - 0x71, - 0x19, - 0x00, - 0x00, - 0x06, - 0x0B, - 0xCF, - 0x29, - 0x02, - 0x02, - 0x6D, - 0x05, - 0x00, - 0x00, - 0x06, - 0x93, - 0x29, - 0x02, - 0x02, - 0x64, - 0x98, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDF, - 0x02, - 0x02, - 0x02, - 0x12, - 0x20, - 0x04, - 0x00, - 0x00, - 0x06, - 0x04, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x07, - 0x00, - 0x00, - 0x12, - 0x04, - 0xBE, - 0x4F, - 0x84, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x02, - 0xC6, - 0x0F, - 0x84, - 0x02, - 0x29, - 0xC6, - 0xAB, - 0x00, - 0x05, - 0x05, - 0x00, - 0x00, - 0x09, - 0x05, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA5, - 0x29, - 0x49, - 0xE7, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x7F, - 0x0F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xCF, - 0x71, - 0x19, - 0x00, - 0x00, - 0x06, - 0x17, - 0xCF, - 0x29, - 0x02, - 0x02, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x6F, - 0x02, - 0x02, - 0x02, - 0x30, - 0x98, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x12, - 0x1B, - 0x04, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x00, - 0x11, - 0x93, - 0x0F, - 0x7F, - 0x02, - 0x02, - 0x29, - 0x7C, - 0x0F, - 0x76, - 0xE2, - 0x08, - 0x0B, - 0x00, - 0xC8, - 0x29, - 0xCF, - 0x2A, - 0x00, - 0x08, - 0x00, - 0x00, - 0x08, - 0x17, - 0x00, - 0x00, - 0xC2, - 0xC6, - 0x29, - 0xE3, - 0x04, - 0x06, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x64, - 0x86, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xCF, - 0xC6, - 0x19, - 0x00, - 0x00, - 0x06, - 0x0B, - 0xCF, - 0x29, - 0x02, - 0x02, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x8E, - 0x29, - 0x02, - 0x02, - 0x64, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x12, - 0x20, - 0x04, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x09, - 0x02, - 0x84, - 0x93, - 0xD6, - 0x6C, - 0x06, - 0x00, - 0x00, - 0x07, - 0xE3, - 0x29, - 0x5A, - 0x07, - 0x00, - 0x00, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0xE2, - 0x0F, - 0x29, - 0x0F, - 0xBE, - 0x07, - 0x00, - 0x00, - 0x03, - 0x08, - 0x44, - 0x84, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0C, - 0x7F, - 0x0B, - 0x00, - 0x18, - 0x00, - 0x00, - 0x06, - 0xD6, - 0x30, - 0x02, - 0x02, - 0x29, - 0xC2, - 0x05, - 0x00, - 0x00, - 0x06, - 0xAA, - 0x29, - 0x02, - 0x02, - 0xC6, - 0x07, - 0x05, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x0C, - 0x20, - 0x04, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x01, - 0x4E, - 0x01, - 0x7C, - 0x08, - 0x00, - 0x00, - 0x05, - 0x07, - 0x0F, - 0x29, - 0x84, - 0x17, - 0x00, - 0x07, - 0x00, - 0x00, - 0x07, - 0x05, - 0x00, - 0x04, - 0x42, - 0x29, - 0x64, - 0x93, - 0x00, - 0x09, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x64, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x5A, - 0x7F, - 0x06, - 0x00, - 0x17, - 0x00, - 0x00, - 0x07, - 0x17, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x30, - 0x86, - 0x00, - 0x04, - 0x00, - 0x00, - 0x06, - 0x05, - 0x0F, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x09, - 0x05, - 0x04, - 0x00, - 0x00, - 0x06, - 0xDC, - 0xCF, - 0x29, - 0x02, - 0x29, - 0xC3, - 0x05, - 0x00, - 0x00, - 0x03, - 0xC3, - 0x29, - 0x70, - 0x00, - 0x06, - 0x00, - 0x00, - 0x04, - 0x0B, - 0xD9, - 0x29, - 0x84, - 0x07, - 0x00, - 0x00, - 0x08, - 0x17, - 0x00, - 0x00, - 0x78, - 0x0D, - 0x64, - 0x0F, - 0x06, - 0x09, - 0x00, - 0x00, - 0x03, - 0xE7, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x74, - 0x0A, - 0xBE, - 0x00, - 0x17, - 0x00, - 0x00, - 0x07, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x0F, - 0x05, - 0x00, - 0x04, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x0A, - 0x02, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0x17, - 0xD9, - 0x29, - 0x02, - 0x29, - 0x84, - 0x05, - 0x00, - 0x00, - 0x06, - 0x6C, - 0x30, - 0x02, - 0x02, - 0x29, - 0xC8, - 0x05, - 0x00, - 0x00, - 0x03, - 0x78, - 0x64, - 0x6D, - 0x00, - 0x06, - 0x00, - 0x00, - 0x03, - 0xE3, - 0x29, - 0xC3, - 0x00, - 0x09, - 0x00, - 0x00, - 0x06, - 0x06, - 0x84, - 0x64, - 0xD9, - 0x78, - 0x05, - 0x09, - 0x00, - 0x00, - 0x04, - 0x17, - 0xD9, - 0x12, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x6D, - 0x64, - 0x11, - 0x00, - 0x16, - 0x00, - 0x00, - 0x07, - 0x11, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0x2A, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x02, - 0x02, - 0x78, - 0x05, - 0x00, - 0x00, - 0x06, - 0xDC, - 0x64, - 0x02, - 0x02, - 0x29, - 0xAA, - 0x05, - 0x00, - 0x00, - 0x06, - 0x50, - 0x29, - 0x02, - 0x02, - 0x29, - 0x11, - 0x05, - 0x00, - 0x00, - 0x03, - 0x07, - 0x7F, - 0x84, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x05, - 0x7C, - 0x49, - 0x00, - 0x09, - 0x00, - 0x00, - 0x08, - 0x11, - 0x71, - 0x29, - 0x29, - 0xBE, - 0x00, - 0x05, - 0x05, - 0x08, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x29, - 0x93, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x78, - 0x64, - 0x84, - 0x00, - 0x16, - 0x00, - 0x00, - 0x12, - 0xD9, - 0x29, - 0x02, - 0x02, - 0x29, - 0x84, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0xBE, - 0x0A, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x05, - 0x00, - 0x00, - 0x06, - 0xB2, - 0x29, - 0x02, - 0x02, - 0x29, - 0x8E, - 0x05, - 0x00, - 0x00, - 0x06, - 0x11, - 0x29, - 0x02, - 0x02, - 0x64, - 0x19, - 0x06, - 0x00, - 0x01, - 0xD9, - 0x01, - 0x0C, - 0x05, - 0x00, - 0x00, - 0x03, - 0x0B, - 0x7F, - 0x84, - 0x00, - 0x07, - 0x00, - 0x00, - 0x07, - 0xD6, - 0x0F, - 0x29, - 0x0F, - 0xAA, - 0x02, - 0x93, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x06, - 0x64, - 0x71, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0xDC, - 0x0A, - 0x49, - 0x17, - 0x15, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x29, - 0x0F, - 0x04, - 0x04, - 0x00, - 0x00, - 0x07, - 0x05, - 0x09, - 0x29, - 0x02, - 0x02, - 0x29, - 0x93, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x29, - 0x7F, - 0xBE, - 0x05, - 0x00, - 0x00, - 0x06, - 0xE3, - 0x29, - 0x02, - 0x29, - 0xCF, - 0x07, - 0x06, - 0x00, - 0x00, - 0x03, - 0x74, - 0x7F, - 0x0B, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0x04, - 0x7C, - 0x4E, - 0x00, - 0x05, - 0x00, - 0x00, - 0x09, - 0x0B, - 0x84, - 0x30, - 0x44, - 0xE3, - 0x00, - 0x04, - 0x0A, - 0x84, - 0x00, - 0x09, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xC6, - 0xC6, - 0x06, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x29, - 0xE2, - 0x15, - 0x00, - 0x00, - 0x05, - 0xBE, - 0xD9, - 0xC6, - 0x0F, - 0x04, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x84, - 0x29, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x04, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x04, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x05, - 0xD9, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x00, - 0x07, - 0x00, - 0x00, - 0x24, - 0x6D, - 0x02, - 0xBE, - 0x00, - 0x00, - 0x05, - 0x05, - 0x00, - 0x0F, - 0x64, - 0xAB, - 0x00, - 0x00, - 0x04, - 0x93, - 0xC6, - 0x29, - 0x4E, - 0x06, - 0x00, - 0x00, - 0x17, - 0x71, - 0xCA, - 0x2F, - 0xDC, - 0x07, - 0x07, - 0xDC, - 0x98, - 0x06, - 0xAB, - 0xE3, - 0x64, - 0x7F, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x93, - 0x64, - 0xE3, - 0x17, - 0x00, - 0x00, - 0x0E, - 0xDC, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6D, - 0x29, - 0x02, - 0x02, - 0x02, - 0x29, - 0xC2, - 0x06, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x05, - 0x00, - 0x00, - 0x06, - 0x06, - 0x7F, - 0x29, - 0x02, - 0x29, - 0xE3, - 0x07, - 0x00, - 0x00, - 0x11, - 0xE7, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x05, - 0x05, - 0x05, - 0x07, - 0x85, - 0x30, - 0xD9, - 0x4E, - 0xCF, - 0x64, - 0xD9, - 0x60, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x4E, - 0x29, - 0x30, - 0x0A, - 0x7F, - 0xCF, - 0xCF, - 0x0A, - 0x44, - 0x64, - 0x7F, - 0x4E, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x05, - 0x05, - 0x00, - 0x06, - 0x12, - 0xC6, - 0x07, - 0x00, - 0x15, - 0x00, - 0x01, - 0x05, - 0x06, - 0x00, - 0x00, - 0x14, - 0x0E, - 0x0A, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x17, - 0x00, - 0x4E, - 0x29, - 0x02, - 0x02, - 0x44, - 0xB2, - 0x05, - 0x00, - 0x00, - 0x06, - 0xB8, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE7, - 0x07, - 0x00, - 0x00, - 0x21, - 0x06, - 0x30, - 0x84, - 0x00, - 0x05, - 0x00, - 0x00, - 0x17, - 0x00, - 0x07, - 0x93, - 0x4E, - 0x0F, - 0x4E, - 0x93, - 0x17, - 0x00, - 0x00, - 0x00, - 0x17, - 0x17, - 0x00, - 0xC3, - 0x29, - 0xD9, - 0xAA, - 0x4E, - 0x29, - 0x64, - 0x4E, - 0xAA, - 0xB7, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x64, - 0xE7, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x07, - 0x2F, - 0x0A, - 0x29, - 0x02, - 0x29, - 0x4E, - 0x05, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x44, - 0x02, - 0x02, - 0x29, - 0x0F, - 0x06, - 0x00, - 0x00, - 0x06, - 0x4E, - 0x29, - 0x02, - 0x02, - 0xD9, - 0x07, - 0x08, - 0x00, - 0x01, - 0xD9, - 0x01, - 0x0F, - 0x10, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x05, - 0x00, - 0xE7, - 0x29, - 0xC3, - 0x00, - 0xAB, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x04, - 0x06, - 0x12, - 0x0F, - 0x17, - 0x1C, - 0x00, - 0x00, - 0x05, - 0x93, - 0x44, - 0x29, - 0x0F, - 0x07, - 0x00, - 0x07, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x78, - 0x05, - 0x00, - 0x00, - 0x06, - 0x06, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x0F, - 0x09, - 0x00, - 0x00, - 0x03, - 0x4E, - 0x0D, - 0x04, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x05, - 0x07, - 0x00, - 0x00, - 0x07, - 0xBE, - 0x7F, - 0x4E, - 0x05, - 0x85, - 0x44, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x64, - 0xE7, - 0x00, - 0x1D, - 0x00, - 0x00, - 0x03, - 0x06, - 0xD6, - 0x05, - 0x00, - 0x07, - 0x00, - 0x00, - 0x07, - 0x11, - 0x02, - 0x02, - 0x02, - 0x29, - 0x0F, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x11, - 0x09, - 0x00, - 0x00, - 0x03, - 0xDF, - 0x30, - 0x86, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x0C, - 0x04, - 0x83, - 0xAB, - 0xC8, - 0xB4, - 0xC6, - 0x0A, - 0x29, - 0xCF, - 0xD9, - 0x29, - 0x0F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x12, - 0xCF, - 0x07, - 0x25, - 0x00, - 0x00, - 0x07, - 0x06, - 0x85, - 0x02, - 0x02, - 0x02, - 0x44, - 0xE2, - 0x00, - 0x05, - 0x00, - 0x00, - 0x07, - 0x07, - 0xCF, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x0B, - 0x00, - 0x09, - 0x00, - 0x00, - 0x03, - 0x78, - 0x02, - 0x11, - 0x00, - 0x07, - 0x00, - 0x00, - 0x11, - 0x20, - 0x06, - 0x2A, - 0xB8, - 0x5B, - 0xD9, - 0x29, - 0x02, - 0x7F, - 0x30, - 0x0C, - 0x84, - 0xB8, - 0x06, - 0xCF, - 0x44, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x84, - 0x29, - 0x42, - 0x00, - 0x25, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x02, - 0x02, - 0x02, - 0x29, - 0x84, - 0x06, - 0x00, - 0x00, - 0x06, - 0xC3, - 0x29, - 0x02, - 0x02, - 0x29, - 0x84, - 0x0A, - 0x00, - 0x00, - 0x1A, - 0x37, - 0x30, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x06, - 0x60, - 0xDF, - 0x4E, - 0x12, - 0x30, - 0x7F, - 0x12, - 0x85, - 0x0F, - 0x84, - 0xB7, - 0x37, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x84, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x04, - 0x0E, - 0x0C, - 0x29, - 0x2A, - 0x24, - 0x00, - 0x00, - 0x06, - 0x93, - 0x02, - 0x02, - 0x29, - 0xD9, - 0x0B, - 0x05, - 0x00, - 0x00, - 0x07, - 0x2F, - 0xCF, - 0x29, - 0x02, - 0x29, - 0x0D, - 0x06, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x0F, - 0x17, - 0x49, - 0x7C, - 0xC3, - 0x09, - 0xCF, - 0x7F, - 0x30, - 0x30, - 0xCF, - 0xD9, - 0x42, - 0x11, - 0x06, - 0x20, - 0x00, - 0x07, - 0x00, - 0x00, - 0x04, - 0x5F, - 0x29, - 0xCF, - 0x07, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0xAB, - 0x44, - 0xD9, - 0x06, - 0x00, - 0x05, - 0x21, - 0x00, - 0x00, - 0x05, - 0x07, - 0x5B, - 0xC6, - 0x0F, - 0xD6, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0x84, - 0x29, - 0x02, - 0x02, - 0x29, - 0xE3, - 0x0C, - 0x00, - 0x00, - 0x09, - 0x4E, - 0x64, - 0x0A, - 0x0D, - 0x5A, - 0xE3, - 0x78, - 0x6C, - 0x17, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x31, - 0x30, - 0x64, - 0x78, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x06, - 0x05, - 0x00, - 0x6D, - 0x29, - 0x0F, - 0x04, - 0x24, - 0x00, - 0x01, - 0x06, - 0x01, - 0x05, - 0x06, - 0x00, - 0x00, - 0x07, - 0x2A, - 0x0A, - 0x02, - 0x02, - 0x29, - 0xC6, - 0x2F, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x03, - 0x1C, - 0x60, - 0x06, - 0x00, - 0x10, - 0x00, - 0x00, - 0x04, - 0x17, - 0x0F, - 0x29, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x04, - 0x05, - 0x0F, - 0x29, - 0x0F, - 0x2B, - 0x00, - 0x00, - 0x07, - 0x05, - 0x0F, - 0x29, - 0x02, - 0x02, - 0x29, - 0x6D, - 0x00, - 0x20, - 0x00, - 0x00, - 0x04, - 0x42, - 0x29, - 0x4E, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x00, - 0x04, - 0x07, - 0xD9, - 0x29, - 0x42, - 0x05, - 0x00, - 0x01, - 0x05, - 0x24, - 0x00, - 0x00, - 0x07, - 0x0B, - 0xCF, - 0x29, - 0x02, - 0x29, - 0xD9, - 0x17, - 0x00, - 0x1F, - 0x00, - 0x00, - 0x04, - 0x42, - 0x29, - 0xB4, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x06, - 0x49, - 0x29, - 0xC3, - 0x04, - 0x00, - 0x01, - 0x05, - 0x24, - 0x00, - 0x00, - 0x06, - 0x05, - 0x84, - 0x29, - 0x29, - 0x0A, - 0x2A, - 0x1B, - 0x00, - 0x00, - 0x08, - 0x05, - 0x05, - 0x00, - 0x00, - 0x6D, - 0x64, - 0xD9, - 0x06, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x8D, - 0x12, - 0x64, - 0x6D, - 0x29, - 0x00, - 0x00, - 0x04, - 0x04, - 0xB7, - 0x4E, - 0xE7, - 0x1F, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x64, - 0xCF, - 0x37, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x00, - 0x05, - 0x06, - 0xD9, - 0x29, - 0x0F, - 0x0B, - 0x00, - 0x2B, - 0x00, - 0x01, - 0x05, - 0x1C, - 0x00, - 0x00, - 0x05, - 0x2F, - 0xC4, - 0x44, - 0xB4, - 0xBE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x05, - 0x07, - 0xD9, - 0x29, - 0xB4, - 0x06, - 0x00, - 0x46, - 0x00, - 0x00, - 0x05, - 0x8D, - 0xD9, - 0x64, - 0xB4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x00, - 0x09, - 0x0B, - 0x4E, - 0x64, - 0x7F, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3D, - 0x00, - 0x00, - 0x08, - 0x05, - 0x00, - 0x00, - 0x93, - 0x71, - 0x64, - 0x4E, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x07, - 0x8E, - 0x30, - 0x64, - 0xE3, - 0x07, - 0x00, - 0x05, - 0x00, - 0x3E, - 0x00, - 0x00, - 0x05, - 0x07, - 0x84, - 0x64, - 0x64, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x05, - 0x2A, - 0xD9, - 0x29, - 0xD9, - 0x93, - 0x00, - 0x3E, - 0x00, - 0x00, - 0x05, - 0x11, - 0x12, - 0x64, - 0x0F, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x00, - 0x06, - 0x04, - 0x6D, - 0x44, - 0x29, - 0x09, - 0x01, - 0x3A, - 0x00, - 0x00, - 0x06, - 0xAB, - 0x0F, - 0x64, - 0x64, - 0x6D, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x14, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x4E, - 0x64, - 0x30, - 0x4E, - 0xBE, - 0x36, - 0x00, - 0x00, - 0x06, - 0x8D, - 0x84, - 0x64, - 0x71, - 0x84, - 0xBE, - 0x00, - 0x00, - 0x00, - 0x02, - 0x16, - 0x00, - 0x00, - 0x06, - 0x93, - 0x0F, - 0x64, - 0x64, - 0x0F, - 0x2A, - 0x2E, - 0x00, - 0x00, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x0F, - 0x29, - 0x64, - 0x0F, - 0x11, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x08, - 0x17, - 0xB8, - 0x0F, - 0x64, - 0x29, - 0x0F, - 0x93, - 0xDC, - 0x2C, - 0x00, - 0x00, - 0x08, - 0x2F, - 0x11, - 0x0F, - 0x29, - 0x64, - 0x0F, - 0x11, - 0x17, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x08, - 0x5F, - 0x0F, - 0x29, - 0x64, - 0xC6, - 0x84, - 0x5F, - 0xDC, - 0x26, - 0x00, - 0x00, - 0x09, - 0x0B, - 0xD6, - 0x84, - 0xC6, - 0x29, - 0x30, - 0xE4, - 0x11, - 0x17, - 0x00, - 0x06, - 0x00, - 0x01, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x00, - 0x00, - 0x0A, - 0xBE, - 0xE3, - 0xC6, - 0x64, - 0x64, - 0xCF, - 0x5B, - 0x11, - 0x06, - 0x17, - 0x1E, - 0x00, - 0x00, - 0x0A, - 0x17, - 0x8D, - 0x11, - 0x84, - 0xCF, - 0x64, - 0x29, - 0x12, - 0x84, - 0x01, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1E, - 0x00, - 0x00, - 0x0D, - 0x04, - 0x78, - 0x4E, - 0x12, - 0x02, - 0x29, - 0x29, - 0xD9, - 0x5B, - 0xDA, - 0x2A, - 0x0B, - 0x05, - 0x00, - 0x14, - 0x00, - 0x00, - 0x0D, - 0x17, - 0xDC, - 0xE2, - 0xB7, - 0x84, - 0xD9, - 0x29, - 0x29, - 0x29, - 0x71, - 0x4E, - 0x5F, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x21, - 0x00, - 0x00, - 0x12, - 0x04, - 0x2A, - 0xDF, - 0x0F, - 0x44, - 0x29, - 0x29, - 0x02, - 0x30, - 0x94, - 0x4E, - 0xC3, - 0xAA, - 0xB8, - 0x3B, - 0x70, - 0x06, - 0x2F, - 0x04, - 0x07, - 0x00, - 0x12, - 0x06, - 0x06, - 0x06, - 0xD6, - 0x60, - 0xC3, - 0xAA, - 0x4E, - 0x0C, - 0x64, - 0x7F, - 0x30, - 0x64, - 0x64, - 0xD9, - 0x6D, - 0x2A, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x25, - 0x00, - 0x00, - 0x07, - 0x98, - 0xE7, - 0x93, - 0x74, - 0xD9, - 0xCF, - 0x30, - 0x00, - 0x04, - 0x29, - 0x01, - 0x02, - 0x08, - 0x7F, - 0x01, - 0x02, - 0x04, - 0x29, - 0x00, - 0x07, - 0x30, - 0xCF, - 0xD9, - 0xA5, - 0x93, - 0x78, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x2A, - 0x00, - 0x00, - 0x08, - 0x0B, - 0x8D, - 0x3B, - 0xC2, - 0xC3, - 0xE3, - 0x84, - 0xA5, - 0x06, - 0xE4, - 0x00, - 0x08, - 0xA5, - 0x84, - 0xE3, - 0xC3, - 0x6F, - 0x3B, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x06, - 0x0C, - 0x00, - 0x00, - 0x01, - 0x0B, - 0x5C, - 0x07, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x18, - 0x01, - 0x00, - 0x03, - 0x1C, - 0x1C, - 0x1C, - 0x00, - 0x07, - 0x01, - 0x04, - 0x1C, - 0x00, - 0x03, - 0x01, - 0x01, - 0x01, - 0x00, - 0x04, - 0x1C, - 0x0D, - 0x01, - 0x00, - 0x0A, - 0x08, - 0x37, - 0x1C, - 0x86, - 0x2A, - 0x78, - 0xB2, - 0x86, - 0x01, - 0x08, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x05, - 0x08, - 0x4E, - 0x0A, - 0x30, - 0x85, - 0x00, - 0x05, - 0x01, - 0x00, - 0x0F, - 0x37, - 0x84, - 0x0A, - 0x9D, - 0x30, - 0x0F, - 0x08, - 0x01, - 0x08, - 0x09, - 0x0A, - 0x30, - 0xC6, - 0x2A, - 0x08, - 0x00, - 0x0A, - 0x01, - 0x00, - 0x0C, - 0x37, - 0x78, - 0x4E, - 0xCF, - 0x0A, - 0x02, - 0x02, - 0x8A, - 0x0A, - 0xCF, - 0x6D, - 0x08, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x05, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x00, - 0x04, - 0x01, - 0x00, - 0x10, - 0x08, - 0x2A, - 0x10, - 0x02, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0x2A, - 0x08, - 0x09, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x4E, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x4E, - 0x18, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x05, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x00, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x08, - 0x01, - 0x00, - 0x03, - 0x08, - 0x49, - 0x75, - 0x00, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x6D, - 0x18, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x0A, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x84, - 0x04, - 0x02, - 0x00, - 0x08, - 0x0A, - 0x84, - 0x11, - 0x5F, - 0x5F, - 0x93, - 0x4E, - 0x78, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x0A, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x01, - 0x08, - 0xD9, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x06, - 0x01, - 0x00, - 0x0E, - 0x08, - 0x2A, - 0x7F, - 0x02, - 0x02, - 0x02, - 0xCF, - 0xB2, - 0x31, - 0x37, - 0x08, - 0x08, - 0x37, - 0x18, - 0x18, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x19, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x00, - 0x06, - 0x01, - 0x00, - 0x08, - 0x18, - 0x84, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x78, - 0x18, - 0x1E, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x26, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x01, - 0x08, - 0xC6, - 0x02, - 0x02, - 0xCF, - 0x0F, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x01, - 0x01, - 0x01, - 0x08, - 0x01, - 0x01, - 0x08, - 0x49, - 0x02, - 0x02, - 0x02, - 0x4E, - 0x18, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x17, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x01, - 0x18, - 0x6D, - 0x02, - 0x02, - 0x02, - 0xE3, - 0x0F, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x0A, - 0x7E, - 0x6D, - 0x18, - 0x1C, - 0xCF, - 0x02, - 0x02, - 0x02, - 0x6D, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x14, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x08, - 0x86, - 0x7E, - 0x02, - 0x02, - 0x0A, - 0x86, - 0x49, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x75, - 0x5B, - 0x31, - 0xB2, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x11, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x14, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x31, - 0x84, - 0x02, - 0x02, - 0x02, - 0xE3, - 0x31, - 0x0D, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x75, - 0x5B, - 0x31, - 0x86, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x8E, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x18, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0x86, - 0x7F, - 0x02, - 0x02, - 0x7E, - 0x86, - 0x08, - 0x0D, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0xE3, - 0x04, - 0x76, - 0x00, - 0x0A, - 0x6D, - 0x5F, - 0x08, - 0x08, - 0xD9, - 0x02, - 0x02, - 0x02, - 0x6D, - 0x18, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x26, - 0x37, - 0x49, - 0x02, - 0x02, - 0x49, - 0xE3, - 0x02, - 0x02, - 0x02, - 0x6D, - 0x18, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0xB2, - 0x31, - 0x37, - 0x37, - 0x37, - 0x18, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x37, - 0x1F, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x19, - 0x37, - 0x49, - 0x02, - 0x02, - 0xC6, - 0xCF, - 0x02, - 0x02, - 0xD9, - 0x08, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0x2A, - 0x08, - 0x00, - 0x06, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x04, - 0x02, - 0x01, - 0x93, - 0x01, - 0x31, - 0x1E, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x01, - 0x37, - 0x01, - 0x49, - 0x05, - 0x02, - 0x00, - 0x12, - 0x75, - 0x93, - 0x18, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x8A, - 0xB2, - 0x31, - 0x05, - 0x37, - 0x00, - 0x0F, - 0x01, - 0x01, - 0x08, - 0x49, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x93, - 0x37, - 0x18, - 0x37, - 0x18, - 0x18, - 0x08, - 0x00, - 0x18, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x01, - 0x37, - 0x01, - 0x49, - 0x05, - 0x02, - 0x00, - 0x11, - 0x49, - 0x08, - 0x01, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x02, - 0x02, - 0x02, - 0x49, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x07, - 0x49, - 0x4E, - 0x01, - 0x01, - 0x08, - 0x2A, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x00, - 0x08, - 0xD9, - 0xE3, - 0x76, - 0x6D, - 0x84, - 0xCF, - 0x93, - 0x37, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x01, - 0x37, - 0x01, - 0x49, - 0x05, - 0x02, - 0x00, - 0x0D, - 0x78, - 0x37, - 0x01, - 0x01, - 0x01, - 0xC6, - 0x02, - 0x02, - 0x0D, - 0x08, - 0x01, - 0x08, - 0x85, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x75, - 0x9D, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x7F, - 0x08, - 0x02, - 0x00, - 0x03, - 0x75, - 0x84, - 0x18, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x08, - 0x37, - 0x49, - 0x75, - 0x02, - 0x02, - 0x75, - 0x4E, - 0x18, - 0x04, - 0x01, - 0x00, - 0x09, - 0x9D, - 0x75, - 0x75, - 0xC6, - 0x08, - 0x01, - 0x08, - 0x49, - 0x75, - 0x00, - 0x07, - 0x02, - 0x01, - 0x75, - 0x01, - 0x9D, - 0x04, - 0x01, - 0x00, - 0x03, - 0x37, - 0x2A, - 0x0F, - 0x00, - 0x07, - 0x02, - 0x00, - 0x03, - 0x75, - 0x49, - 0x37, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x16, - 0x01, - 0x00, - 0x08, - 0x08, - 0xE3, - 0x0F, - 0x09, - 0x09, - 0x0F, - 0xB2, - 0x08, - 0x04, - 0x01, - 0x00, - 0x09, - 0x84, - 0x0F, - 0x0F, - 0x84, - 0x01, - 0x01, - 0x08, - 0xE3, - 0x0F, - 0x00, - 0x07, - 0x09, - 0x01, - 0x0F, - 0x01, - 0x84, - 0x05, - 0x01, - 0x00, - 0x0B, - 0x08, - 0x08, - 0x78, - 0x84, - 0x49, - 0xC6, - 0xC6, - 0xC6, - 0xD9, - 0x0F, - 0x93, - 0x00, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x17, - 0x01, - 0x01, - 0x08, - 0x04, - 0x37, - 0x06, - 0x01, - 0x04, - 0x37, - 0x00, - 0x03, - 0x01, - 0x01, - 0x01, - 0x00, - 0x0B, - 0x37, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x37, - 0x05, - 0x08, - 0x01, - 0x37, - 0x01, - 0x37, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3E, - 0x01, - 0x00, - 0x07, - 0x1C, - 0xD9, - 0x75, - 0x02, - 0x75, - 0x49, - 0x08, - 0x00, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x00, - 0x09, - 0x37, - 0x6D, - 0x75, - 0x02, - 0x02, - 0x02, - 0x75, - 0x93, - 0x37, - 0x00, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x01, - 0x18, - 0x01, - 0xE3, - 0x05, - 0x02, - 0x01, - 0x49, - 0x01, - 0x37, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x35, - 0x01, - 0x00, - 0x04, - 0x08, - 0xB2, - 0x1C, - 0x37, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x06, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x34, - 0x01, - 0x00, - 0x06, - 0xB2, - 0x0F, - 0x0A, - 0x0A, - 0xE3, - 0x08, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x00, - 0x0D, - 0x08, - 0x0F, - 0x75, - 0x02, - 0x02, - 0x75, - 0x93, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x93, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x32, - 0x01, - 0x01, - 0x08, - 0x01, - 0x2A, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x86, - 0x01, - 0x7E, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x11, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x2B, - 0x01, - 0x01, - 0x08, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x29, - 0x01, - 0x00, - 0x03, - 0x37, - 0x86, - 0x78, - 0x00, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xB2, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x27, - 0x01, - 0x00, - 0x07, - 0x08, - 0x08, - 0xE3, - 0x7F, - 0x02, - 0xD9, - 0xB2, - 0x00, - 0x06, - 0x01, - 0x01, - 0x08, - 0x01, - 0xCA, - 0x04, - 0x02, - 0x00, - 0x08, - 0x75, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x18, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x15, - 0x01, - 0x00, - 0x03, - 0x37, - 0x08, - 0x08, - 0x00, - 0x0E, - 0x01, - 0x00, - 0x09, - 0x37, - 0x86, - 0x0F, - 0x75, - 0x02, - 0x02, - 0x02, - 0x0F, - 0x37, - 0x00, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x14, - 0x01, - 0x00, - 0x05, - 0x08, - 0xE3, - 0xC6, - 0x0F, - 0xB2, - 0x00, - 0x0C, - 0x01, - 0x00, - 0x03, - 0x18, - 0x11, - 0x7E, - 0x00, - 0x06, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0A, - 0x1C, - 0x01, - 0x01, - 0x01, - 0x08, - 0x78, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCA, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x00, - 0x07, - 0x37, - 0x84, - 0x75, - 0x02, - 0x75, - 0x0F, - 0x08, - 0x00, - 0x0A, - 0x01, - 0x01, - 0x37, - 0x01, - 0x6D, - 0x08, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x06, - 0x01, - 0x01, - 0xC6, - 0x05, - 0x02, - 0x01, - 0x5F, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x86, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x08, - 0x01, - 0x00, - 0x03, - 0x37, - 0x01, - 0x4E, - 0x00, - 0x09, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xB2, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x37, - 0x01, - 0x4E, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x07, - 0x01, - 0x00, - 0x03, - 0x18, - 0x2A, - 0xCA, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x6D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x4E, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x06, - 0x01, - 0x00, - 0x03, - 0x18, - 0x93, - 0x7F, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x18, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x5F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3F, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x04, - 0x01, - 0x00, - 0x03, - 0x08, - 0x08, - 0x84, - 0x00, - 0x0E, - 0x02, - 0x01, - 0xCF, - 0x06, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0xCF, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x08, - 0x01, - 0xB8, - 0x05, - 0x02, - 0x00, - 0x08, - 0x84, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0xB2, - 0xD9, - 0x07, - 0x02, - 0x00, - 0x04, - 0x75, - 0x4E, - 0x93, - 0x10, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0xB2, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x00, - 0x07, - 0x7F, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x08, - 0x78, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0x6D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x18, - 0x11, - 0x7F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x04, - 0xE3, - 0x37, - 0x37, - 0xC6, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x49, - 0x04, - 0x02, - 0x00, - 0x08, - 0x8A, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x08, - 0x2A, - 0x7F, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x08, - 0x08, - 0x08, - 0x84, - 0x00, - 0x08, - 0x02, - 0x00, - 0x06, - 0x0A, - 0x11, - 0x18, - 0x01, - 0x37, - 0x85, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0x2A, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0x84, - 0x04, - 0x02, - 0x00, - 0x06, - 0x8A, - 0xB2, - 0x31, - 0xB2, - 0x49, - 0x75, - 0x07, - 0x02, - 0x00, - 0x07, - 0xD9, - 0xB2, - 0x37, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x93, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0xB2, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0xA5, - 0x05, - 0x02, - 0x00, - 0x03, - 0x11, - 0x6D, - 0x7F, - 0x00, - 0x08, - 0x02, - 0x00, - 0x08, - 0x84, - 0x08, - 0x08, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x18, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x78, - 0x08, - 0x01, - 0x01, - 0x01, - 0xB2, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0xA5, - 0x05, - 0x02, - 0x01, - 0x10, - 0x08, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x93, - 0x18, - 0x00, - 0x05, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0xB2, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x0D, - 0x02, - 0x00, - 0x03, - 0xCF, - 0x78, - 0x18, - 0x00, - 0x06, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0x2A, - 0x7F, - 0x00, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x00, - 0x03, - 0x18, - 0xE3, - 0x75, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x0F, - 0x1C, - 0x37, - 0x00, - 0x07, - 0x01, - 0x01, - 0x08, - 0x01, - 0xD9, - 0x04, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x2A, - 0x05, - 0x01, - 0x01, - 0x08, - 0x01, - 0x0F, - 0x04, - 0x02, - 0x00, - 0x07, - 0x8A, - 0x2A, - 0x08, - 0x01, - 0x01, - 0x08, - 0x2A, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x37, - 0x01, - 0x8E, - 0x0B, - 0x02, - 0x01, - 0xE3, - 0x01, - 0x37, - 0x09, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x86, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x00, - 0x07, - 0x0A, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x11, - 0x01, - 0x01, - 0x08, - 0x01, - 0x5F, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7F, - 0x93, - 0x18, - 0x00, - 0x09, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x37, - 0x05, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x01, - 0xCF, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x11, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x86, - 0x01, - 0x0A, - 0x07, - 0x02, - 0x00, - 0x03, - 0x0F, - 0x86, - 0x37, - 0x00, - 0x0A, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x01, - 0xE3, - 0x01, - 0x18, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x3F, - 0x01, - 0x18, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x01, - 0x08, - 0x01, - 0xD9, - 0x06, - 0x02, - 0x00, - 0x03, - 0x84, - 0x08, - 0x08, - 0x00, - 0x0C, - 0x01, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0x18, - 0x01, - 0x6D, - 0x05, - 0x02, - 0x00, - 0x07, - 0x4E, - 0x18, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x12, - 0x01, - 0x00, - 0x09, - 0x18, - 0xE3, - 0x75, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x93, - 0x18, - 0x00, - 0x0C, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x37, - 0x11, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x00, - 0x07, - 0x1C, - 0xCF, - 0x75, - 0x75, - 0xD9, - 0x2A, - 0x18, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x37, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0xE3, - 0x01, - 0x18, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x00, - 0x07, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x01, - 0x1C, - 0xCF, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1C, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x13, - 0x01, - 0x00, - 0x06, - 0x08, - 0xB2, - 0x4E, - 0xE3, - 0x01, - 0x37, - 0x0F, - 0x01, - 0x01, - 0xCF, - 0x04, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x86, - 0x05, - 0x01, - 0x01, - 0x37, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x07, - 0x30, - 0x1C, - 0x01, - 0x01, - 0x01, - 0x08, - 0x78, - 0x00, - 0x05, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x15, - 0x01, - 0x01, - 0x18, - 0x01, - 0x18, - 0x10, - 0x01, - 0x00, - 0x08, - 0x1C, - 0x7E, - 0x02, - 0x02, - 0x02, - 0x75, - 0xE3, - 0x18, - 0x05, - 0x01, - 0x01, - 0x18, - 0x01, - 0x84, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x37, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x27, - 0x01, - 0x00, - 0x06, - 0x37, - 0x4E, - 0x75, - 0x02, - 0x02, - 0xD9, - 0x08, - 0x01, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x00, - 0x07, - 0x6D, - 0x18, - 0x01, - 0x01, - 0x01, - 0x37, - 0x0F, - 0x00, - 0x05, - 0x02, - 0x01, - 0x6D, - 0x01, - 0x18, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x28, - 0x01, - 0x00, - 0x06, - 0xB2, - 0x49, - 0x7F, - 0x0F, - 0xB2, - 0x08, - 0x05, - 0x01, - 0x01, - 0x37, - 0x01, - 0x93, - 0x05, - 0x02, - 0x01, - 0x7F, - 0x01, - 0xB2, - 0x04, - 0x01, - 0x01, - 0x1C, - 0x01, - 0xCF, - 0x05, - 0x02, - 0x01, - 0x78, - 0x01, - 0x08, - 0x12, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x29, - 0x01, - 0x00, - 0x03, - 0x08, - 0x86, - 0x08, - 0x00, - 0x07, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x0F, - 0x37, - 0x01, - 0x01, - 0x01, - 0x37, - 0x11, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x00, - 0x07, - 0x11, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x4E, - 0x00, - 0x05, - 0x02, - 0x01, - 0x4E, - 0x01, - 0x18, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x10, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x01, - 0x08, - 0x04, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x7F, - 0x05, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x13, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x33, - 0x01, - 0x00, - 0x0D, - 0x37, - 0x0F, - 0x75, - 0x02, - 0x02, - 0x75, - 0x93, - 0x37, - 0x01, - 0x01, - 0x01, - 0x18, - 0x6D, - 0x00, - 0x05, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x34, - 0x01, - 0x00, - 0x06, - 0xB2, - 0x4E, - 0xCF, - 0xC6, - 0x6D, - 0x08, - 0x04, - 0x01, - 0x01, - 0x37, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x01, - 0x84, - 0x01, - 0x18, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x35, - 0x01, - 0x00, - 0x04, - 0x37, - 0x01, - 0x08, - 0x37, - 0x04, - 0x01, - 0x01, - 0x08, - 0x01, - 0x78, - 0x05, - 0x02, - 0x00, - 0x03, - 0x10, - 0x2A, - 0x08, - 0x00, - 0x14, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x01, - 0x37, - 0x01, - 0xE3, - 0x05, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x37, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3D, - 0x01, - 0x00, - 0x03, - 0x37, - 0x6D, - 0x75, - 0x00, - 0x04, - 0x02, - 0x01, - 0x11, - 0x01, - 0x37, - 0x15, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3F, - 0x01, - 0x00, - 0x06, - 0xD9, - 0x75, - 0x02, - 0x75, - 0x0F, - 0x08, - 0x16, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x3F, - 0x01, - 0x00, - 0x05, - 0x86, - 0x84, - 0x0F, - 0xE3, - 0x1C, - 0x00, - 0x17, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x40, - 0x01, - 0x00, - 0x03, - 0x08, - 0x08, - 0x37, - 0x00, - 0x18, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x17, - 0x5B, - 0x0B, - 0x01, - 0x04, - 0x00, - 0x01, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xBE, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x23, - 0x00, - 0x00, - 0x08, - 0x20, - 0x6A, - 0x3B, - 0xA7, - 0xA7, - 0x3B, - 0x6C, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1D, - 0x00, - 0x00, - 0x06, - 0x97, - 0x4F, - 0xA0, - 0x0C, - 0x0D, - 0x0A, - 0x08, - 0x02, - 0x00, - 0x06, - 0x29, - 0x0D, - 0x4C, - 0xD3, - 0x95, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x04, - 0x98, - 0x9F, - 0x0C, - 0x10, - 0x13, - 0x02, - 0x00, - 0x03, - 0x12, - 0x43, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x03, - 0x59, - 0xBD, - 0x61, - 0x00, - 0x1A, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x8C, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x15, - 0x00, - 0x00, - 0x03, - 0x20, - 0xCC, - 0x7F, - 0x00, - 0x1E, - 0x02, - 0x00, - 0x03, - 0x8A, - 0x96, - 0x97, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x13, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x95, - 0x30, - 0x00, - 0x22, - 0x02, - 0x00, - 0x03, - 0x0A, - 0x43, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x01, - 0x6F, - 0x01, - 0x0D, - 0x26, - 0x02, - 0x01, - 0x30, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x94, - 0x2A, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x0D, - 0x2C, - 0x02, - 0x01, - 0x30, - 0x01, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x60, - 0x01, - 0x7C, - 0x2E, - 0x02, - 0x01, - 0x8A, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x01, - 0x9F, - 0x01, - 0x10, - 0x31, - 0x02, - 0x01, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x90, - 0x34, - 0x02, - 0x01, - 0x94, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x8B, - 0x36, - 0x02, - 0x01, - 0x6B, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0x95, - 0x38, - 0x02, - 0x01, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x3B, - 0x3A, - 0x02, - 0x01, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x0A, - 0x3A, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x3C, - 0x02, - 0x01, - 0x30, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0xE8, - 0x3E, - 0x02, - 0x01, - 0x61, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x3B, - 0x40, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x61, - 0x40, - 0x02, - 0x01, - 0x44, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0xA7, - 0x14, - 0x02, - 0x00, - 0x05, - 0x10, - 0xCC, - 0x70, - 0xA7, - 0xC1, - 0x00, - 0x29, - 0x02, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x73, - 0x01, - 0x9D, - 0x14, - 0x02, - 0x01, - 0x43, - 0x04, - 0x00, - 0x01, - 0x8D, - 0x01, - 0x0C, - 0x27, - 0x02, - 0x01, - 0x0A, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x9F, - 0x15, - 0x02, - 0x01, - 0x98, - 0x06, - 0x00, - 0x01, - 0x60, - 0x01, - 0x0D, - 0x26, - 0x02, - 0x01, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x7E, - 0x00, - 0x14, - 0x02, - 0x01, - 0x0A, - 0x09, - 0x00, - 0x01, - 0x95, - 0x01, - 0x7E, - 0x24, - 0x02, - 0x01, - 0x29, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x4F, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x1B, - 0x8C, - 0x29, - 0x00, - 0x23, - 0x02, - 0x01, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x94, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0C, - 0x00, - 0x01, - 0x98, - 0x01, - 0xA0, - 0x22, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x29, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0E, - 0x00, - 0x01, - 0x50, - 0x01, - 0x71, - 0x21, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x6F, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x10, - 0x00, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x1F, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0xA0, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x11, - 0x00, - 0x00, - 0x03, - 0x73, - 0x9F, - 0x7C, - 0x00, - 0x1D, - 0x02, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x0A, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x13, - 0x00, - 0x01, - 0x97, - 0x01, - 0x8B, - 0x1D, - 0x02, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x3B, - 0x17, - 0x02, - 0x01, - 0x44, - 0x15, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x6B, - 0x1B, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x43, - 0x17, - 0x02, - 0x01, - 0x44, - 0x17, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x61, - 0x19, - 0x02, - 0x01, - 0x5A, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8B, - 0x17, - 0x02, - 0x01, - 0x44, - 0x18, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x4F, - 0x30, - 0x00, - 0x17, - 0x02, - 0x01, - 0x94, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xE8, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x20, - 0xCC, - 0x29, - 0x00, - 0x15, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x12, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1C, - 0x00, - 0x01, - 0x59, - 0x01, - 0x5A, - 0x14, - 0x02, - 0x01, - 0x30, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x44, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1E, - 0x00, - 0x01, - 0x50, - 0x01, - 0x56, - 0x12, - 0x02, - 0x01, - 0x10, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x8A, - 0x17, - 0x02, - 0x01, - 0x44, - 0x20, - 0x00, - 0x01, - 0xA7, - 0x01, - 0x29, - 0x11, - 0x02, - 0x01, - 0x98, - 0x00, - 0x00, - 0x01, - 0x59, - 0x18, - 0x02, - 0x01, - 0x44, - 0x21, - 0x00, - 0x01, - 0x50, - 0x11, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x50, - 0x18, - 0x02, - 0x01, - 0x44, - 0x22, - 0x00, - 0x01, - 0x56, - 0x10, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x01, - 0x8D, - 0x18, - 0x02, - 0x01, - 0x44, - 0x22, - 0x00, - 0x01, - 0x56, - 0x10, - 0x02, - 0x01, - 0x60, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x18, - 0x02, - 0x01, - 0x44, - 0x21, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x10, - 0x10, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x29, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1F, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x95, - 0x8A, - 0x00, - 0x11, - 0x02, - 0x01, - 0x59, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x64, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1E, - 0x00, - 0x01, - 0x60, - 0x01, - 0x61, - 0x12, - 0x02, - 0x01, - 0x8A, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x4C, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1C, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x14, - 0x02, - 0x01, - 0x44, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x09, - 0x17, - 0x02, - 0x01, - 0x44, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x98, - 0xA0, - 0x10, - 0x00, - 0x15, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x96, - 0x17, - 0x02, - 0x01, - 0x44, - 0x18, - 0x00, - 0x00, - 0x03, - 0x1B, - 0xC4, - 0x29, - 0x00, - 0x17, - 0x02, - 0x01, - 0xE8, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x9F, - 0x17, - 0x02, - 0x01, - 0x44, - 0x16, - 0x00, - 0x00, - 0x03, - 0x73, - 0x9F, - 0x7C, - 0x00, - 0x19, - 0x02, - 0x01, - 0x8B, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x8D, - 0x17, - 0x02, - 0x01, - 0x44, - 0x15, - 0x00, - 0x01, - 0xA7, - 0x01, - 0x64, - 0x1B, - 0x02, - 0x01, - 0x60, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x9E, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x13, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x12, - 0x1C, - 0x02, - 0x01, - 0x29, - 0x01, - 0x73, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x74, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x11, - 0x00, - 0x01, - 0x8D, - 0x01, - 0x6B, - 0x1E, - 0x02, - 0x01, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x3B, - 0x00, - 0x16, - 0x02, - 0x01, - 0x44, - 0x0F, - 0x00, - 0x00, - 0x03, - 0x59, - 0x5A, - 0x10, - 0x00, - 0x1F, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x7E, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0D, - 0x00, - 0x00, - 0x03, - 0x1B, - 0x3C, - 0x29, - 0x00, - 0x20, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xA0, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0B, - 0x00, - 0x00, - 0x03, - 0xE6, - 0x95, - 0x7E, - 0x00, - 0x22, - 0x02, - 0x01, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x15, - 0x02, - 0x01, - 0x44, - 0x0A, - 0x00, - 0x01, - 0x6F, - 0x01, - 0x0D, - 0x24, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x0D, - 0x14, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x73, - 0x07, - 0x00, - 0x01, - 0x70, - 0x01, - 0x71, - 0x25, - 0x02, - 0x01, - 0x30, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x60, - 0x15, - 0x02, - 0x01, - 0x70, - 0x05, - 0x00, - 0x01, - 0x6C, - 0x01, - 0xC1, - 0x27, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x56, - 0x14, - 0x02, - 0x00, - 0x07, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x98, - 0x8B, - 0x8A, - 0x00, - 0x27, - 0x02, - 0x01, - 0x0D, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x50, - 0x15, - 0x02, - 0x00, - 0x03, - 0x30, - 0x6B, - 0xC7, - 0x00, - 0x2A, - 0x02, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0xC1, - 0x40, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x01, - 0x6C, - 0x01, - 0x8A, - 0x3F, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0xCC, - 0x3E, - 0x02, - 0x01, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x01, - 0xE6, - 0x01, - 0xE8, - 0x3C, - 0x02, - 0x01, - 0x12, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x20, - 0x01, - 0x61, - 0x3A, - 0x02, - 0x01, - 0x30, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x09, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x7E, - 0x38, - 0x02, - 0x01, - 0x29, - 0x01, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x01, - 0x70, - 0x38, - 0x02, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x4F, - 0x36, - 0x02, - 0x01, - 0xCC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x00, - 0x01, - 0xB7, - 0x01, - 0x8A, - 0x32, - 0x02, - 0x01, - 0x10, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0D, - 0x00, - 0x01, - 0x70, - 0x01, - 0x30, - 0x30, - 0x02, - 0x01, - 0x29, - 0x01, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0E, - 0x00, - 0x01, - 0x98, - 0x01, - 0x12, - 0x2E, - 0x02, - 0x01, - 0x9D, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x20, - 0x01, - 0xC1, - 0x2C, - 0x02, - 0x01, - 0x4C, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x10, - 0x00, - 0x00, - 0x03, - 0xE6, - 0xBD, - 0x8A, - 0x00, - 0x29, - 0x02, - 0x01, - 0x8B, - 0x01, - 0x73, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x00, - 0x03, - 0x6A, - 0xA0, - 0x10, - 0x00, - 0x25, - 0x02, - 0x01, - 0x94, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x14, - 0x00, - 0x01, - 0x50, - 0x01, - 0x0C, - 0x22, - 0x02, - 0x01, - 0xC7, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x16, - 0x00, - 0x01, - 0x60, - 0x01, - 0x61, - 0x1E, - 0x02, - 0x01, - 0x9E, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x04, - 0xE6, - 0x60, - 0x8B, - 0x44, - 0x18, - 0x02, - 0x00, - 0x04, - 0x30, - 0x5A, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1B, - 0x00, - 0x00, - 0x03, - 0x50, - 0x3C, - 0x61, - 0x00, - 0x12, - 0x02, - 0x00, - 0x03, - 0x0D, - 0x96, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1E, - 0x00, - 0x00, - 0x12, - 0x6A, - 0x4F, - 0xCC, - 0x90, - 0x94, - 0x61, - 0x30, - 0x02, - 0x02, - 0x02, - 0x10, - 0x30, - 0x61, - 0x56, - 0x90, - 0x3C, - 0x95, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x25, - 0x00, - 0x00, - 0x04, - 0xE6, - 0x98, - 0x98, - 0x05, - 0x00, - 0x01, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCA, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x17, - 0x5C, - 0x07, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x19, - 0x01, - 0x01, - 0x78, - 0x01, - 0x76, - 0x32, - 0x6D, - 0x01, - 0x11, - 0x01, - 0x1C, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x17, - 0x01, - 0x01, - 0xB8, - 0x01, - 0xC6, - 0x36, - 0x02, - 0x01, - 0x5B, - 0x0B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x0A, - 0x38, - 0x02, - 0x01, - 0x7D, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0xA5, - 0x39, - 0x02, - 0x01, - 0x0A, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x85, - 0x3A, - 0x02, - 0x01, - 0x5F, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x3A, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x11, - 0x01, - 0x84, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x16, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0E, - 0x01, - 0x00, - 0x09, - 0xB2, - 0x6D, - 0xA5, - 0x4E, - 0x5F, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x11, - 0x14, - 0x7D, - 0x0D, - 0x3F, - 0x01, - 0x6D, - 0x06, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0D, - 0x01, - 0x00, - 0x0A, - 0x8E, - 0x0A, - 0x02, - 0x02, - 0x02, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x6D, - 0x21, - 0x02, - 0x01, - 0x49, - 0x06, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x0A, - 0x04, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x01, - 0x0F, - 0x1F, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0xE3, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x30, - 0x1E, - 0x02, - 0x01, - 0x7D, - 0x07, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0F, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x01, - 0x01, - 0x93, - 0x1D, - 0x02, - 0x01, - 0x0C, - 0x08, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x09, - 0x01, - 0x01, - 0x09, - 0x1B, - 0x02, - 0x01, - 0x7C, - 0x01, - 0xB2, - 0x08, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x09, - 0x01, - 0x01, - 0x86, - 0x01, - 0x30, - 0x1A, - 0x02, - 0x01, - 0x6D, - 0x09, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0A, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x10, - 0x18, - 0x02, - 0x01, - 0x0F, - 0x0A, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0B, - 0x01, - 0x01, - 0x4E, - 0x17, - 0x02, - 0x01, - 0x30, - 0x01, - 0xAB, - 0x0A, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0B, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x44, - 0x07, - 0x02, - 0x01, - 0x0F, - 0x01, - 0x10, - 0x0D, - 0x02, - 0x01, - 0x93, - 0x0B, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0C, - 0x01, - 0x01, - 0x11, - 0x06, - 0x02, - 0x00, - 0x03, - 0xA5, - 0x01, - 0xA5, - 0x00, - 0x0C, - 0x02, - 0x01, - 0x09, - 0x0C, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0D, - 0x01, - 0x01, - 0xA5, - 0x04, - 0x02, - 0x00, - 0x05, - 0xC6, - 0x1C, - 0x01, - 0xBE, - 0xCF, - 0x00, - 0x0A, - 0x02, - 0x01, - 0x30, - 0x01, - 0x86, - 0x0C, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0D, - 0x01, - 0x00, - 0x0B, - 0x1C, - 0x0D, - 0x02, - 0x02, - 0x10, - 0xB8, - 0x01, - 0x01, - 0x01, - 0x11, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x10, - 0x01, - 0x8E, - 0x0D, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0E, - 0x01, - 0x00, - 0x04, - 0xB8, - 0x02, - 0x02, - 0x84, - 0x05, - 0x01, - 0x01, - 0x84, - 0x08, - 0x02, - 0x01, - 0x4E, - 0x0E, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x0F, - 0x01, - 0x00, - 0x03, - 0x5B, - 0x85, - 0x1C, - 0x00, - 0x05, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0xCF, - 0x01, - 0x1C, - 0x0E, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x18, - 0x01, - 0x01, - 0xB8, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x11, - 0x0F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x09, - 0x01, - 0x00, - 0x03, - 0xAB, - 0x8E, - 0xAB, - 0x00, - 0x0D, - 0x01, - 0x01, - 0x5B, - 0x04, - 0x02, - 0x01, - 0x84, - 0x10, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x00, - 0x07, - 0x5F, - 0x85, - 0x10, - 0x02, - 0x10, - 0x85, - 0x5F, - 0x00, - 0x0B, - 0x01, - 0x00, - 0x06, - 0x1C, - 0x0D, - 0x02, - 0x02, - 0x0D, - 0x1C, - 0x10, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x30, - 0x05, - 0x02, - 0x01, - 0x30, - 0x01, - 0xAB, - 0x0B, - 0x01, - 0x00, - 0x04, - 0x78, - 0x29, - 0x8A, - 0xB8, - 0x11, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xA5, - 0x07, - 0x02, - 0x01, - 0xA5, - 0x0C, - 0x01, - 0x01, - 0x6D, - 0x01, - 0x6D, - 0x12, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x0D, - 0x07, - 0x02, - 0x01, - 0x0D, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xCF, - 0x07, - 0x02, - 0x01, - 0xCF, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0x0F, - 0x07, - 0x02, - 0x01, - 0x0F, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x06, - 0x01, - 0x01, - 0xB8, - 0x01, - 0x10, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0xB8, - 0x20, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x07, - 0x01, - 0x00, - 0x07, - 0x6D, - 0x7F, - 0x02, - 0x02, - 0x02, - 0x7F, - 0x6D, - 0x00, - 0x21, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x08, - 0x01, - 0x00, - 0x05, - 0x2A, - 0x7D, - 0xA5, - 0x7D, - 0x2A, - 0x00, - 0x22, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0x01, - 0x01, - 0x42, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x0D, - 0x2F, - 0xE2, - 0x01, - 0x7D, - 0x05, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x3A, - 0x02, - 0x01, - 0x11, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0xD9, - 0x00, - 0x3A, - 0x02, - 0x01, - 0x78, - 0x09, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x4E, - 0x00, - 0x39, - 0x02, - 0x01, - 0x7F, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x00, - 0x06, - 0x11, - 0x01, - 0x01, - 0x01, - 0x5F, - 0x29, - 0x38, - 0x02, - 0x01, - 0x84, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x76, - 0x01, - 0x7C, - 0x36, - 0x02, - 0x01, - 0x09, - 0x01, - 0x1C, - 0x0A, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x11, - 0x05, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x6D, - 0x33, - 0xA5, - 0x01, - 0x3F, - 0x01, - 0xB8, - 0x0C, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x11, - 0x48, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x7D, - 0x48, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x05, - 0x02, - 0x01, - 0x85, - 0x48, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x29, - 0x3F, - 0x01, - 0x5F, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x0C, - 0x30, - 0x02, - 0x01, - 0x6D, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x09, - 0x30, - 0x02, - 0x01, - 0x8E, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x42, - 0x30, - 0x02, - 0x01, - 0x1C, - 0x1D, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0C, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x0D, - 0x2E, - 0x02, - 0x01, - 0x84, - 0x1E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0D, - 0x01, - 0x01, - 0x2A, - 0x01, - 0x85, - 0x2C, - 0x02, - 0x01, - 0x84, - 0x01, - 0x1C, - 0x1E, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x0F, - 0x01, - 0x01, - 0xB2, - 0x01, - 0x8E, - 0x28, - 0x93, - 0x01, - 0x11, - 0x01, - 0x1C, - 0x20, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x01, - 0x01, - 0x08, - 0x00, - 0x00, - 0x01, - 0x05, - 0x5C, - 0x0B, - 0x00, - 0x01, - 0x77, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x26, - 0x07, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0B, - 0x00, - 0x01, - 0x59, - 0x5F, - 0x3B, - 0x01, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x04, - 0x8D, - 0x43, - 0xC1, - 0x44, - 0x61, - 0x02, - 0x00, - 0x04, - 0x9D, - 0x09, - 0x43, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x43, - 0x68, - 0x02, - 0x00, - 0x03, - 0x29, - 0x9F, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x8D, - 0x01, - 0xC7, - 0x6B, - 0x02, - 0x01, - 0x56, - 0x01, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x50, - 0x29, - 0x00, - 0x6D, - 0x02, - 0x01, - 0x29, - 0x01, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x6F, - 0x02, - 0x01, - 0x61, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0x74, - 0x00, - 0x71, - 0x02, - 0x01, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x3B, - 0x10, - 0x00, - 0x08, - 0x02, - 0x01, - 0x8A, - 0x5F, - 0x0D, - 0x09, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x09, - 0x07, - 0x02, - 0x00, - 0x03, - 0x9E, - 0x3B, - 0x05, - 0x00, - 0x5F, - 0x00, - 0x00, - 0x03, - 0x73, - 0x60, - 0x44, - 0x00, - 0x07, - 0x02, - 0x01, - 0x90, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0x61, - 0x01, - 0x20, - 0x63, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0D, - 0x06, - 0x02, - 0x01, - 0x12, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x06, - 0x02, - 0x01, - 0x10, - 0x01, - 0x83, - 0x65, - 0x00, - 0x01, - 0x50, - 0x06, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x73, - 0x00, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x67, - 0x00, - 0x01, - 0x44, - 0x06, - 0x02, - 0x01, - 0x50, - 0x00, - 0x00, - 0x01, - 0x9F, - 0x06, - 0x02, - 0x01, - 0xC1, - 0x67, - 0x00, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0xDC, - 0x10, - 0x43, - 0x01, - 0x50, - 0x05, - 0x00, - 0x01, - 0x4F, - 0x0F, - 0x43, - 0x01, - 0x4F, - 0x05, - 0x00, - 0x01, - 0x50, - 0x10, - 0x43, - 0x01, - 0xDC, - 0x04, - 0x00, - 0x01, - 0xE6, - 0x10, - 0x43, - 0x01, - 0x3B, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0x95, - 0x05, - 0x00, - 0x01, - 0x12, - 0x0F, - 0x02, - 0x01, - 0x12, - 0x05, - 0x00, - 0x01, - 0x95, - 0x10, - 0x02, - 0x01, - 0x8D, - 0x04, - 0x00, - 0x01, - 0x20, - 0x10, - 0x02, - 0x01, - 0x74, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x20, - 0x10, - 0x70, - 0x01, - 0x59, - 0x05, - 0x00, - 0x01, - 0x83, - 0x0F, - 0x70, - 0x01, - 0x83, - 0x05, - 0x00, - 0x01, - 0x59, - 0x10, - 0x70, - 0x01, - 0x20, - 0x04, - 0x00, - 0x01, - 0xE6, - 0x10, - 0x70, - 0x01, - 0x6A, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0B, - 0x00, - 0x01, - 0x1B, - 0x0C, - 0x70, - 0x01, - 0x59, - 0x4E, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0A, - 0x00, - 0x01, - 0x43, - 0x01, - 0x29, - 0x0C, - 0x02, - 0x01, - 0x8A, - 0x01, - 0x5A, - 0x4D, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x59, - 0x10, - 0x02, - 0x01, - 0xD6, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x6F, - 0x10, - 0x02, - 0x01, - 0x3C, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x09, - 0x00, - 0x01, - 0x8D, - 0x10, - 0x02, - 0x01, - 0xA7, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0A, - 0x00, - 0x01, - 0x6B, - 0x0E, - 0x02, - 0x01, - 0x0D, - 0x01, - 0x05, - 0x4C, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x0B, - 0x00, - 0x01, - 0x60, - 0x0C, - 0x3C, - 0x01, - 0xA7, - 0x01, - 0x05, - 0x4D, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x18, - 0x20, - 0x70, - 0x70, - 0x6A, - 0x00, - 0x1B, - 0x70, - 0x73, - 0x00, - 0x1B, - 0x70, - 0x97, - 0x70, - 0x20, - 0x00, - 0x50, - 0x6C, - 0x00, - 0x50, - 0x98, - 0x00, - 0xDC, - 0x70, - 0x20, - 0x09, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x02, - 0x7E, - 0x29, - 0x64, - 0x8D, - 0x10, - 0x60, - 0x00, - 0x9F, - 0x29, - 0x50, - 0x02, - 0x50, - 0x6C, - 0x10, - 0x6B, - 0x00, - 0x44, - 0x3C, - 0x00, - 0x6B, - 0x0D, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x02, - 0x60, - 0x73, - 0x7C, - 0x43, - 0x4C, - 0x64, - 0x71, - 0x7E, - 0x6B, - 0x8D, - 0x02, - 0x50, - 0x09, - 0x7F, - 0x6B, - 0x00, - 0x44, - 0xA0, - 0x60, - 0x10, - 0x70, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x16, - 0x6A, - 0x02, - 0xC1, - 0x09, - 0x44, - 0x50, - 0x43, - 0x7E, - 0xA7, - 0x10, - 0x4F, - 0x8D, - 0x02, - 0x6F, - 0x29, - 0xE4, - 0x6B, - 0x00, - 0x44, - 0x02, - 0x7E, - 0x5A, - 0x0B, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x16, - 0x6A, - 0x02, - 0x5A, - 0x6B, - 0x4C, - 0x73, - 0x6C, - 0x10, - 0x60, - 0x10, - 0x1B, - 0x8D, - 0x02, - 0x94, - 0x74, - 0xE4, - 0x6B, - 0x00, - 0x44, - 0x9D, - 0x02, - 0x50, - 0x0B, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x02, - 0x95, - 0x95, - 0x10, - 0x6A, - 0x00, - 0x0D, - 0xC7, - 0x56, - 0x00, - 0x8D, - 0x02, - 0x7F, - 0x59, - 0x09, - 0x6B, - 0x00, - 0x44, - 0x3C, - 0xB4, - 0x61, - 0x73, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x46, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x7F, - 0x7F, - 0x0D, - 0xBD, - 0x00, - 0x00, - 0x3C, - 0x7F, - 0x95, - 0x00, - 0x6C, - 0x7F, - 0x3C, - 0x00, - 0x5A, - 0x09, - 0x00, - 0x0D, - 0x43, - 0x1B, - 0x0D, - 0x8C, - 0x00, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xA0, - 0x67, - 0x00, - 0x01, - 0x09, - 0x06, - 0x02, - 0x01, - 0x95, - 0x00, - 0x00, - 0x01, - 0x43, - 0x06, - 0x02, - 0x01, - 0xD3, - 0x67, - 0x00, - 0x01, - 0x6B, - 0x06, - 0x02, - 0x01, - 0x4F, - 0x00, - 0x00, - 0x01, - 0x60, - 0x06, - 0x02, - 0x01, - 0x0D, - 0x67, - 0x00, - 0x01, - 0x9E, - 0x06, - 0x02, - 0x01, - 0x70, - 0x00, - 0x00, - 0x01, - 0x59, - 0x07, - 0x02, - 0x01, - 0x6C, - 0x65, - 0x00, - 0x01, - 0x8D, - 0x07, - 0x02, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x44, - 0x06, - 0x02, - 0x01, - 0x56, - 0x64, - 0x00, - 0x01, - 0x73, - 0x01, - 0x61, - 0x06, - 0x02, - 0x01, - 0x61, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0xB4, - 0x07, - 0x02, - 0x01, - 0x12, - 0x01, - 0x8D, - 0x61, - 0x00, - 0x01, - 0x50, - 0x01, - 0x61, - 0x07, - 0x02, - 0x01, - 0x5A, - 0x00, - 0x00, - 0x01, - 0x00, - 0x01, - 0x6F, - 0x09, - 0x02, - 0x01, - 0x30, - 0x01, - 0x56, - 0x5D, - 0x0C, - 0x01, - 0x56, - 0x01, - 0x30, - 0x09, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x00, - 0xA0, - 0x00, - 0x71, - 0x02, - 0x01, - 0x8B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x6F, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x60, - 0x6F, - 0x02, - 0x01, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x01, - 0x3B, - 0x01, - 0x44, - 0x6B, - 0x02, - 0x01, - 0x9E, - 0x01, - 0x70, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5A, - 0x68, - 0x02, - 0x00, - 0x03, - 0x10, - 0x8B, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x04, - 0x60, - 0x90, - 0x12, - 0x29, - 0x61, - 0x02, - 0x00, - 0x04, - 0x29, - 0x12, - 0x8B, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x05, - 0x50, - 0xA7, - 0x00, - 0x5D, - 0xB7, - 0x00, - 0x03, - 0xA7, - 0x83, - 0xE6, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x52, - 0x07, - 0x00, - 0x00, - 0x5D, - 0x05, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x0B, - 0x01, - 0x01, - 0x2A, - 0x43, - 0x5F, - 0x0C, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x07, - 0x01, - 0x00, - 0x04, - 0xB2, - 0xA5, - 0x49, - 0x7F, - 0x44, - 0x02, - 0x00, - 0x04, - 0x29, - 0x0D, - 0x4E, - 0x5F, - 0x08, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x06, - 0x01, - 0x01, - 0x76, - 0x01, - 0x0A, - 0x4A, - 0x02, - 0x01, - 0x29, - 0x01, - 0x3F, - 0x07, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x05, - 0x01, - 0x01, - 0xA5, - 0x4E, - 0x02, - 0x01, - 0x0F, - 0x06, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x04, - 0x01, - 0x01, - 0x8E, - 0x01, - 0x10, - 0x4F, - 0x02, - 0x01, - 0x42, - 0x05, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x06, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x86, - 0x30, - 0x06, - 0x02, - 0x01, - 0x7F, - 0x43, - 0x0A, - 0x06, - 0x02, - 0x01, - 0x7F, - 0x01, - 0x2A, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x42, - 0x00, - 0x05, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x5F, - 0x44, - 0x01, - 0x01, - 0xAB, - 0x01, - 0x4E, - 0x05, - 0x02, - 0x01, - 0x84, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x4E, - 0x00, - 0x04, - 0x02, - 0x01, - 0x49, - 0x48, - 0x01, - 0x01, - 0x09, - 0x04, - 0x02, - 0x01, - 0x0C, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x04, - 0x02, - 0x01, - 0x76, - 0x48, - 0x01, - 0x01, - 0x78, - 0x04, - 0x02, - 0x01, - 0x30, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x7C, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xBE, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x93, - 0x0B, - 0x84, - 0x00, - 0x05, - 0x2A, - 0x01, - 0x01, - 0x01, - 0x76, - 0x00, - 0x0B, - 0x84, - 0x00, - 0x05, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x6D, - 0x00, - 0x0B, - 0x84, - 0x00, - 0x05, - 0x86, - 0x01, - 0x01, - 0x01, - 0x7D, - 0x00, - 0x0B, - 0x84, - 0x01, - 0x1C, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x09, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x78, - 0x01, - 0x01, - 0x01, - 0x49, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x2A, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x86, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x09, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x78, - 0x01, - 0x01, - 0x01, - 0x49, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x2A, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x86, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0xA5, - 0x0B, - 0x30, - 0x00, - 0x05, - 0x11, - 0x01, - 0x01, - 0x01, - 0x09, - 0x00, - 0x0B, - 0x30, - 0x00, - 0x05, - 0x78, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x0B, - 0x30, - 0x00, - 0x05, - 0xB2, - 0x01, - 0x01, - 0x01, - 0x85, - 0x00, - 0x0B, - 0x30, - 0x01, - 0x1C, - 0x06, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x5F, - 0x01, - 0x85, - 0x08, - 0x7C, - 0x01, - 0x30, - 0x01, - 0x84, - 0x37, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x09, - 0x0B, - 0x02, - 0x01, - 0x78, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0x85, - 0x0B, - 0x02, - 0x01, - 0x76, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0xA5, - 0x0A, - 0x02, - 0x01, - 0x10, - 0x01, - 0x2A, - 0x36, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x06, - 0x01, - 0x01, - 0xAB, - 0x01, - 0xA5, - 0x08, - 0x49, - 0x01, - 0x85, - 0x01, - 0x6D, - 0x37, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x11, - 0xAB, - 0x3F, - 0x42, - 0x5F, - 0x8E, - 0x5F, - 0x01, - 0x6D, - 0xB8, - 0x8E, - 0x1C, - 0x7D, - 0xAB, - 0x6D, - 0xAB, - 0x5F, - 0x93, - 0x00, - 0x07, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x11, - 0x5F, - 0x7F, - 0xA5, - 0x0A, - 0x84, - 0x0F, - 0x6D, - 0x7F, - 0x76, - 0x0F, - 0x6D, - 0x02, - 0x5F, - 0x44, - 0xB8, - 0x0D, - 0x76, - 0x00, - 0x07, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x10, - 0x5F, - 0x7F, - 0x4E, - 0x0D, - 0x5F, - 0x7C, - 0x0F, - 0x0C, - 0x76, - 0x0F, - 0x0D, - 0xC6, - 0x5F, - 0x44, - 0x7E, - 0x85, - 0x08, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x10, - 0x5F, - 0x7C, - 0x5B, - 0x0F, - 0x01, - 0x0D, - 0x09, - 0x6D, - 0x76, - 0x30, - 0xA5, - 0xC6, - 0x5F, - 0x44, - 0x0D, - 0x84, - 0x08, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x31, - 0x01, - 0x00, - 0x11, - 0x5F, - 0x02, - 0xCF, - 0x0F, - 0x01, - 0x84, - 0x29, - 0xAB, - 0x76, - 0x7F, - 0xAB, - 0xC6, - 0x5F, - 0x44, - 0x11, - 0xC6, - 0x11, - 0x00, - 0x07, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x01, - 0x5F, - 0x49, - 0x01, - 0x05, - 0x02, - 0x00, - 0x05, - 0xE2, - 0x01, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0xC6, - 0x00, - 0x04, - 0x02, - 0x01, - 0x8E, - 0x48, - 0x01, - 0x01, - 0x2A, - 0x04, - 0x02, - 0x01, - 0x7F, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x0F, - 0x00, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x48, - 0x01, - 0x01, - 0x3F, - 0x04, - 0x02, - 0x01, - 0xD9, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x3F, - 0x00, - 0x04, - 0x02, - 0x01, - 0x10, - 0x01, - 0x7D, - 0x46, - 0x01, - 0x01, - 0x93, - 0x01, - 0x29, - 0x04, - 0x02, - 0x01, - 0x4E, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x01, - 0x01, - 0x5F, - 0x00, - 0x06, - 0x02, - 0x01, - 0xCF, - 0x44, - 0x0F, - 0x01, - 0x0D, - 0x05, - 0x02, - 0x01, - 0x10, - 0x01, - 0x11, - 0x04, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x04, - 0x01, - 0x01, - 0x5B, - 0x50, - 0x02, - 0x01, - 0x4E, - 0x05, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x05, - 0x01, - 0x01, - 0x12, - 0x4E, - 0x02, - 0x01, - 0x44, - 0x01, - 0xE2, - 0x05, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x05, - 0x01, - 0x01, - 0x86, - 0x01, - 0x09, - 0x4C, - 0x02, - 0x01, - 0x0C, - 0x01, - 0x2A, - 0x06, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x07, - 0x01, - 0x01, - 0x93, - 0x01, - 0x0D, - 0x47, - 0x02, - 0x00, - 0x03, - 0x10, - 0x44, - 0x6D, - 0x00, - 0x08, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x09, - 0x01, - 0x01, - 0x1C, - 0x01, - 0x8E, - 0x44, - 0x5B, - 0x01, - 0x93, - 0x01, - 0xAB, - 0x0A, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x0E, - 0x5B, - 0x01, - 0x01, - 0x18, - 0x00, - 0x00, - 0x01, - 0x07, - 0x5B, - 0x0E, - 0x01, - 0x2F, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x03, - 0x01, - 0x22, - 0x26, - 0x01, - 0x00, - 0x00, - 0x7C, - 0xB5, - 0xD2, - 0xCD, - 0xC9, - 0xD2, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xC6, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC2, - 0xC6, - 0xC1, - 0xA9, - 0xA9, - 0xC6, - 0xB7, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xB2, - 0xB9, - 0xA6, - 0x4A, - 0x35, - 0x35, - 0x42, - 0xD6, - 0x8B, - 0xD8, - 0xAF, - 0x7F, - 0xD5, - 0x55, - 0x32, - 0x8C, - 0x70, - 0x85, - 0x70, - 0x7B, - 0xCC, - 0x9F, - 0x8B, - 0xB9, - 0xC5, - 0xC3, - 0xC1, - 0xB6, - 0xB6, - 0xB6, - 0xC6, - 0xAE, - 0xD4, - 0xBF, - 0xBF, - 0xD3, - 0xCD, - 0xDA, - 0xCF, - 0xD1, - 0xB6, - 0xD2, - 0xDA, - 0xD9, - 0xDA, - 0xC7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x2B, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0x01, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x1A, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xCF, - 0xD9, - 0xDA, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xD1, - 0xCD, - 0xC8, - 0xD2, - 0xCD, - 0xCD, - 0xD2, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0x05, - 0xB5, - 0x00, - 0x04, - 0xCA, - 0xB5, - 0xB5, - 0xA1, - 0x04, - 0xB5, - 0x00, - 0x07, - 0xC9, - 0xD2, - 0xCD, - 0xD1, - 0xD2, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x2F, - 0xC8, - 0xC8, - 0xC8, - 0xD2, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xCD, - 0xD1, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xB5, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0B, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xCF, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xD1, - 0x04, - 0xCF, - 0x00, - 0x07, - 0xD9, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xDA, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0xC9, - 0xD2, - 0xD2, - 0xD2, - 0xCD, - 0xD2, - 0xCD, - 0xB5, - 0xCD, - 0xB6, - 0xCD, - 0xB5, - 0xB6, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0x04, - 0xC2, - 0x00, - 0x3F, - 0xC6, - 0xC6, - 0xC6, - 0xC2, - 0xB6, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xB0, - 0xC6, - 0xA9, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xB0, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC5, - 0xC3, - 0xAC, - 0x86, - 0xA6, - 0xA6, - 0xA4, - 0xD4, - 0xA6, - 0x6F, - 0xB3, - 0xDB, - 0xD8, - 0xA7, - 0xA0, - 0x2C, - 0x26, - 0x55, - 0x32, - 0x32, - 0x00, - 0x04, - 0x70, - 0x00, - 0x1F, - 0xC0, - 0xD8, - 0x3B, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xD3, - 0xC3, - 0x8E, - 0xBF, - 0xB2, - 0xBF, - 0xC5, - 0xB0, - 0xC8, - 0xD9, - 0xD1, - 0xCD, - 0xB6, - 0xCD, - 0xD9, - 0xDA, - 0xD7, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x09, - 0xC7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xC7, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x08, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xC7, - 0xD7, - 0x04, - 0xD9, - 0x01, - 0xC7, - 0x01, - 0xD7, - 0x09, - 0xD9, - 0x01, - 0xD7, - 0x0A, - 0xD9, - 0x00, - 0x1B, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xC8, - 0xCF, - 0xD9, - 0xC8, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xE0, - 0xC2, - 0xC9, - 0xCD, - 0xC2, - 0xC2, - 0xC9, - 0x00, - 0x08, - 0xB5, - 0x00, - 0x12, - 0xC2, - 0xE0, - 0xB5, - 0xC4, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC4, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x39, - 0xD1, - 0xE0, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xCD, - 0xCD, - 0xB6, - 0xCD, - 0xD2, - 0xCD, - 0xC9, - 0xB6, - 0xCD, - 0xC9, - 0xB6, - 0xB5, - 0xB5, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xD2, - 0xD1, - 0x00, - 0x04, - 0xC8, - 0x01, - 0xCF, - 0x06, - 0xC8, - 0x00, - 0x06, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0x04, - 0xCF, - 0x00, - 0x03, - 0xD9, - 0xC7, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x24, - 0xCD, - 0xCD, - 0xD2, - 0xD2, - 0xC9, - 0xD2, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xB0, - 0xC2, - 0xC6, - 0xCA, - 0xC6, - 0xC6, - 0xC6, - 0x05, - 0xC1, - 0x00, - 0x03, - 0xC6, - 0xC6, - 0xC3, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x41, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xCA, - 0xC6, - 0xCA, - 0xCA, - 0xC1, - 0xC2, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC5, - 0xB8, - 0xD4, - 0xB9, - 0x9D, - 0x5D, - 0xA4, - 0xA4, - 0x9D, - 0xE4, - 0xDB, - 0xE8, - 0xBE, - 0xD8, - 0xBD, - 0xAB, - 0x55, - 0x32, - 0x2D, - 0x70, - 0x85, - 0x70, - 0x70, - 0x70, - 0x85, - 0xA7, - 0xBA, - 0xB2, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xB1, - 0xD4, - 0xA4, - 0xA4, - 0xA4, - 0xD4, - 0xB1, - 0xC3, - 0xA1, - 0xDA, - 0xD7, - 0xD1, - 0xB6, - 0xCD, - 0xD1, - 0xD9, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x01, - 0xC7, - 0x07, - 0xD7, - 0x00, - 0x04, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x17, - 0xD9, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x4B, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0xC2, - 0xCD, - 0xC9, - 0xC2, - 0xB5, - 0xCA, - 0xB5, - 0xCA, - 0xB5, - 0xB5, - 0xD2, - 0xCA, - 0x71, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xC4, - 0xC9, - 0xD1, - 0xD2, - 0xC4, - 0xC4, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xD1, - 0xD1, - 0xB6, - 0xC8, - 0xC8, - 0xD2, - 0xB5, - 0xD2, - 0xA1, - 0xA1, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0A, - 0xB5, - 0xC8, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x10, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xB6, - 0xC9, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0x0A, - 0xCD, - 0x00, - 0x04, - 0xC8, - 0xCD, - 0xD1, - 0xD1, - 0x09, - 0xC8, - 0x01, - 0xCF, - 0x05, - 0xC8, - 0x00, - 0x0C, - 0xD1, - 0xC8, - 0xC8, - 0xD9, - 0xC7, - 0xD9, - 0xCF, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x28, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xCA, - 0xCD, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xCA, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xAA, - 0x04, - 0xC1, - 0x00, - 0x08, - 0xB7, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0x06, - 0xC6, - 0x00, - 0x3B, - 0xC1, - 0xC2, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xB8, - 0xB8, - 0xC3, - 0xAE, - 0xE3, - 0xA6, - 0xE3, - 0xB2, - 0xA4, - 0xDC, - 0xB3, - 0xDB, - 0xA8, - 0xEB, - 0xAF, - 0xBD, - 0xAB, - 0x32, - 0x32, - 0x85, - 0x70, - 0x70, - 0x2D, - 0x70, - 0x70, - 0xC0, - 0xD0, - 0xBA, - 0xD4, - 0xB1, - 0xC5, - 0xC5, - 0xD4, - 0xD4, - 0xE3, - 0xDC, - 0xDC, - 0xB9, - 0xE3, - 0xD4, - 0xCE, - 0xC6, - 0xCD, - 0xC7, - 0xD9, - 0xD2, - 0xCD, - 0xD2, - 0xDA, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0x00, - 0x07, - 0xC7, - 0x01, - 0xD7, - 0x01, - 0xC7, - 0x05, - 0xD7, - 0x01, - 0xC7, - 0x06, - 0xD7, - 0x00, - 0x0C, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0x05, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x22, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0x04, - 0xD1, - 0x00, - 0x43, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC2, - 0xC9, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xCA, - 0xCA, - 0xB5, - 0xC4, - 0x71, - 0xC4, - 0x71, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xD2, - 0xD2, - 0xC8, - 0xD2, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC4, - 0xB5, - 0xB5, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xCA, - 0xCA, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x00, - 0x08, - 0xCD, - 0x00, - 0x12, - 0xC9, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0x07, - 0xC8, - 0x01, - 0xCF, - 0x01, - 0xCF, - 0x05, - 0xC8, - 0x00, - 0x0B, - 0xCF, - 0xCF, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCF, - 0x01, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xB6, - 0xB5, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xCA, - 0xC6, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xB7, - 0xC1, - 0xB7, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x14, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xBF, - 0xB9, - 0xB9, - 0xA4, - 0xA3, - 0x61, - 0xE4, - 0xDB, - 0xA8, - 0xE2, - 0xD0, - 0xBD, - 0x7F, - 0x55, - 0x32, - 0x85, - 0x06, - 0x70, - 0x00, - 0x18, - 0xC0, - 0xD0, - 0x9A, - 0xE3, - 0xC5, - 0xBF, - 0xD4, - 0xC5, - 0xBF, - 0xE3, - 0xA6, - 0xDC, - 0xDC, - 0xE7, - 0xD4, - 0xB1, - 0xD3, - 0xCA, - 0xCF, - 0xC7, - 0xD9, - 0xD1, - 0xCD, - 0xD1, - 0x09, - 0xC7, - 0x00, - 0x0D, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x01, - 0xC7, - 0x04, - 0xD7, - 0x00, - 0x52, - 0xD9, - 0xD7, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xA1, - 0xC4, - 0xA1, - 0xA1, - 0x8D, - 0xA1, - 0xA1, - 0xA1, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xC4, - 0xC4, - 0xC8, - 0xC8, - 0xC4, - 0xC8, - 0x04, - 0xCF, - 0x00, - 0x35, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xC9, - 0xB6, - 0xA1, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0xB0, - 0xA1, - 0xB5, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xD1, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xB6, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x04, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0x07, - 0xC8, - 0x00, - 0x03, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x08, - 0xC8, - 0x00, - 0x0B, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xD9, - 0xC8, - 0xD9, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xCD, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xC2, - 0xC9, - 0xB6, - 0xCA, - 0xCD, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC6, - 0xCA, - 0xC6, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xB6, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC2, - 0xC1, - 0xC2, - 0xC2, - 0xCA, - 0xC6, - 0xCA, - 0xCA, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC3, - 0xC3, - 0xB2, - 0xB9, - 0xE3, - 0xA3, - 0xD4, - 0x86, - 0xE4, - 0xE1, - 0xD8, - 0xE2, - 0xD0, - 0xD0, - 0x8C, - 0x32, - 0x32, - 0x85, - 0x00, - 0x05, - 0x70, - 0x00, - 0x1A, - 0xCC, - 0x85, - 0xD0, - 0x6F, - 0xAE, - 0xB2, - 0xD4, - 0xC5, - 0xC5, - 0xD4, - 0xB2, - 0xB9, - 0xB9, - 0xB9, - 0xE3, - 0xA4, - 0xD4, - 0xC6, - 0xC2, - 0xD2, - 0xD7, - 0xC7, - 0xDA, - 0xCD, - 0xD1, - 0xDA, - 0x06, - 0xC7, - 0x00, - 0x07, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x1C, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0x0B, - 0xD7, - 0x00, - 0x06, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x35, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xCF, - 0xDA, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC4, - 0x71, - 0x71, - 0x7E, - 0x8E, - 0x22, - 0x22, - 0x7E, - 0x68, - 0x97, - 0xB5, - 0xC4, - 0xC7, - 0xC4, - 0xC4, - 0xC4, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1B, - 0xC8, - 0xCD, - 0xD1, - 0xB5, - 0xB0, - 0x80, - 0xB7, - 0xB7, - 0xB8, - 0xC3, - 0xAC, - 0x80, - 0xC6, - 0xA1, - 0xB5, - 0xD2, - 0xCF, - 0xDA, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0F, - 0xC8, - 0xC9, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x04, - 0xD1, - 0xC8, - 0xC8, - 0xD2, - 0x05, - 0xC8, - 0x00, - 0x11, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xB6, - 0x05, - 0xC2, - 0x00, - 0x41, - 0xC6, - 0xC6, - 0xCA, - 0xC1, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB7, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xC1, - 0xC2, - 0xC1, - 0xC2, - 0xC6, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xB2, - 0xE3, - 0x86, - 0xB2, - 0xE3, - 0x61, - 0xE4, - 0xBB, - 0xA8, - 0xD8, - 0xD0, - 0x7F, - 0x9F, - 0x32, - 0x85, - 0x70, - 0x7B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x1A, - 0xCC, - 0x85, - 0xD0, - 0xDD, - 0xB2, - 0xB2, - 0xB2, - 0xE3, - 0xE3, - 0x98, - 0x9C, - 0xA4, - 0xA3, - 0x86, - 0xD4, - 0xD4, - 0xCB, - 0xC6, - 0xC2, - 0xCD, - 0xD1, - 0xD9, - 0xC7, - 0xDA, - 0xD1, - 0xD1, - 0x08, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0x04, - 0xD7, - 0x00, - 0x16, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0x07, - 0xD7, - 0x00, - 0x10, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xDA, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x0A, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x11, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xC9, - 0xC9, - 0xC2, - 0xB5, - 0xA1, - 0xB5, - 0x96, - 0x22, - 0x16, - 0x00, - 0x09, - 0x15, - 0x00, - 0x0A, - 0x1A, - 0x22, - 0xC7, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x32, - 0xCD, - 0xCD, - 0xD1, - 0xD1, - 0xCD, - 0xCD, - 0xB5, - 0xA1, - 0xA9, - 0x97, - 0x97, - 0xAD, - 0xAD, - 0xAE, - 0xB8, - 0xAA, - 0x8D, - 0xB0, - 0xB5, - 0xB5, - 0xD2, - 0xCF, - 0xD9, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xD1, - 0xD2, - 0xA1, - 0xCD, - 0x71, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xC4, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC2, - 0xCD, - 0xC9, - 0xB5, - 0xB6, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xB6, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xD2, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0x08, - 0xC8, - 0x00, - 0x0F, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xDA, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xC2, - 0xC9, - 0xC2, - 0xCD, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC1, - 0x00, - 0x07, - 0xC6, - 0x00, - 0x14, - 0xB6, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC6, - 0x00, - 0x1B, - 0xC1, - 0xC2, - 0xC6, - 0xC2, - 0xCA, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xB2, - 0xE3, - 0xA3, - 0xB1, - 0xA4, - 0x4A, - 0xE4, - 0xB3, - 0xEB, - 0xD0, - 0xBD, - 0xDE, - 0x1C, - 0x32, - 0x00, - 0x08, - 0x70, - 0x00, - 0x1B, - 0xD5, - 0xD0, - 0x74, - 0xA3, - 0xE3, - 0x9C, - 0x8A, - 0x6C, - 0xDC, - 0xBA, - 0x6D, - 0x6D, - 0xB9, - 0xA3, - 0x9B, - 0xC3, - 0xCA, - 0xC6, - 0xC6, - 0xC2, - 0xDA, - 0xC7, - 0xC7, - 0xC7, - 0xDA, - 0xD9, - 0xD7, - 0x00, - 0x08, - 0xC7, - 0x00, - 0x0B, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x0E, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0x04, - 0xD7, - 0x01, - 0xD9, - 0x04, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0x0A, - 0xD9, - 0x00, - 0x1D, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0xD1, - 0xCD, - 0xC2, - 0xD2, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xAA, - 0x22, - 0x00, - 0x0C, - 0x15, - 0x00, - 0x4A, - 0x16, - 0x16, - 0x16, - 0x22, - 0xC7, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC8, - 0xB6, - 0xB0, - 0x78, - 0x97, - 0xAD, - 0x96, - 0xA2, - 0x7E, - 0x8F, - 0xAE, - 0x8E, - 0x78, - 0xC6, - 0xA1, - 0xB5, - 0xB5, - 0xC8, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xE0, - 0xB9, - 0xED, - 0xDC, - 0xC6, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xB5, - 0xC9, - 0xCD, - 0xC9, - 0xB6, - 0xC9, - 0xCD, - 0xB5, - 0xD2, - 0xC9, - 0xC9, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0x09, - 0xC8, - 0x01, - 0xCF, - 0x01, - 0xCF, - 0x06, - 0xC8, - 0x00, - 0x0A, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x74, - 0xC9, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xCA, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xB0, - 0xB0, - 0xCA, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC2, - 0xC1, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xAA, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xC6, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xE3, - 0xA3, - 0xD4, - 0xCE, - 0xA4, - 0xB9, - 0xDD, - 0xBB, - 0xD8, - 0xD0, - 0x7F, - 0x55, - 0x32, - 0x70, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x7B, - 0xD5, - 0xBE, - 0x7D, - 0xE3, - 0x9C, - 0x9C, - 0xDC, - 0xBA, - 0xD6, - 0x5E, - 0xD6, - 0x46, - 0xDD, - 0x6C, - 0xB9, - 0x9C, - 0xC5, - 0xB8, - 0xC1, - 0xC6, - 0xB6, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xDA, - 0xD9, - 0x09, - 0xC7, - 0x00, - 0x0A, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0x05, - 0xD7, - 0x00, - 0x11, - 0xD9, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xC7, - 0xD9, - 0xD7, - 0xC7, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x1E, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xCF, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xD2, - 0xC4, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xC4, - 0xA1, - 0x22, - 0x12, - 0x15, - 0x00, - 0x46, - 0x1A, - 0x71, - 0xC4, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xB5, - 0xB6, - 0x78, - 0x97, - 0x96, - 0xA2, - 0x8F, - 0x7E, - 0x8F, - 0x8F, - 0x8F, - 0x96, - 0x8E, - 0x8D, - 0xA1, - 0xB0, - 0xB6, - 0xCD, - 0xC8, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xCF, - 0xD7, - 0xC8, - 0xC8, - 0xC4, - 0xE8, - 0x20, - 0x73, - 0xEE, - 0xCC, - 0x20, - 0xEE, - 0x8E, - 0xC4, - 0xCD, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xB6, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xC8, - 0xC4, - 0xD1, - 0x05, - 0xC8, - 0x00, - 0x16, - 0xD7, - 0xC4, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xB5, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xC7, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x1E, - 0xCD, - 0xCA, - 0xB6, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xCA, - 0xC6, - 0xC2, - 0xB6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0x04, - 0xC1, - 0x00, - 0x2A, - 0xC3, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xA2, - 0xD4, - 0xBF, - 0xC5, - 0xD4, - 0xA6, - 0x9A, - 0xBB, - 0xA7, - 0x76, - 0xAB, - 0x26, - 0x85, - 0x07, - 0x70, - 0x00, - 0x18, - 0x7B, - 0xCC, - 0x8C, - 0xBC, - 0x6E, - 0x9E, - 0xE3, - 0xA6, - 0xBA, - 0xD6, - 0x59, - 0x8B, - 0xBB, - 0x90, - 0xBB, - 0xB3, - 0x9A, - 0xBA, - 0xA6, - 0x9C, - 0xD4, - 0xAC, - 0xC1, - 0xB5, - 0x0F, - 0xC7, - 0x00, - 0x12, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0x07, - 0xD9, - 0x00, - 0x05, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x07, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0x00, - 0x0F, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xCF, - 0xCF, - 0xDA, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x0D, - 0xCD, - 0xD1, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xA1, - 0xC4, - 0xC4, - 0xA1, - 0xC7, - 0x22, - 0x00, - 0x13, - 0x15, - 0x00, - 0x04, - 0x16, - 0x16, - 0x71, - 0xCF, - 0x04, - 0xC8, - 0x00, - 0x1A, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xB6, - 0x78, - 0x9B, - 0x99, - 0x7E, - 0x68, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x96, - 0xAA, - 0x8D, - 0xA1, - 0xA1, - 0xD3, - 0xC4, - 0xCF, - 0x04, - 0xC7, - 0x00, - 0x14, - 0xCF, - 0xDA, - 0xCF, - 0xCA, - 0x20, - 0xE9, - 0xE0, - 0xC4, - 0xE0, - 0xA4, - 0x73, - 0xEC, - 0x71, - 0xB6, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0x04, - 0xB5, - 0x00, - 0x08, - 0xC4, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0x71, - 0xB5, - 0xCD, - 0x04, - 0xC8, - 0x00, - 0x05, - 0xCD, - 0xC4, - 0xC4, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0E, - 0xC4, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xC8, - 0xC4, - 0xCF, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0x00, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x03, - 0xB6, - 0xB6, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x06, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0x05, - 0xC6, - 0x00, - 0x0D, - 0xC1, - 0xC6, - 0xB6, - 0xC6, - 0xC6, - 0xC6, - 0xCA, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xAA, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x0A, - 0xA9, - 0xC6, - 0xC2, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x0D, - 0xC5, - 0xD4, - 0xBF, - 0xC5, - 0xC5, - 0xBF, - 0x6B, - 0x9A, - 0xBC, - 0xA5, - 0x7F, - 0x55, - 0x32, - 0x00, - 0x06, - 0x70, - 0x00, - 0x1C, - 0x7B, - 0x7B, - 0x7B, - 0x70, - 0xD5, - 0xBB, - 0x6C, - 0xE3, - 0xB9, - 0x74, - 0xD6, - 0x90, - 0x8B, - 0xBC, - 0xBC, - 0xBC, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0xD6, - 0x6F, - 0xDC, - 0xA4, - 0xBF, - 0xC3, - 0xB5, - 0xCF, - 0x04, - 0xC7, - 0x01, - 0xD7, - 0x0B, - 0xC7, - 0x01, - 0xD7, - 0x05, - 0xC7, - 0x00, - 0x09, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0x00, - 0x03, - 0xD7, - 0xD9, - 0xD9, - 0x00, - 0x07, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x0A, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0x04, - 0xDA, - 0x00, - 0x16, - 0xCF, - 0xDA, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xD2, - 0xD1, - 0xC8, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xA1, - 0xC4, - 0x1A, - 0x17, - 0x15, - 0x01, - 0x96, - 0x04, - 0xC8, - 0x00, - 0x59, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0x71, - 0xD6, - 0x42, - 0x8F, - 0x49, - 0xBB, - 0x31, - 0x82, - 0x98, - 0x94, - 0xE1, - 0xBA, - 0xB8, - 0xC6, - 0xD3, - 0xB2, - 0xE6, - 0xE6, - 0xCD, - 0xC8, - 0xC7, - 0xE4, - 0xED, - 0xE4, - 0x00, - 0xCF, - 0xD7, - 0xDF, - 0xE5, - 0xA1, - 0xC4, - 0xD3, - 0xE4, - 0x93, - 0xEB, - 0xE0, - 0x6E, - 0xDC, - 0xB5, - 0xCD, - 0xC9, - 0xE0, - 0xF1, - 0xDB, - 0xEF, - 0x71, - 0x52, - 0xDC, - 0xC9, - 0xCD, - 0xB5, - 0xCB, - 0xE4, - 0xED, - 0x8D, - 0xCD, - 0xC7, - 0xDC, - 0xED, - 0xE6, - 0xA4, - 0xB5, - 0xCF, - 0xCF, - 0xC7, - 0x9D, - 0xED, - 0xE4, - 0xE0, - 0xB2, - 0xDC, - 0xCF, - 0xCF, - 0xD4, - 0x8E, - 0x8E, - 0xD3, - 0xC4, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x06, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB6, - 0x07, - 0xC2, - 0x00, - 0x28, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xA9, - 0xC1, - 0xB0, - 0xC6, - 0xC2, - 0xC6, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xB7, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x07, - 0xC3, - 0x00, - 0x0F, - 0xC5, - 0xB8, - 0xAE, - 0xBF, - 0xCE, - 0xC5, - 0xB2, - 0x6C, - 0xB3, - 0x75, - 0x76, - 0x55, - 0x32, - 0x70, - 0x7B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x10, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0xCC, - 0xAB, - 0xE1, - 0xB9, - 0x98, - 0xDC, - 0xBA, - 0x5E, - 0x8B, - 0xBC, - 0xA8, - 0xA8, - 0x04, - 0xBC, - 0x00, - 0x09, - 0xBB, - 0xBB, - 0xB3, - 0x6F, - 0xBA, - 0xDC, - 0x9E, - 0xCE, - 0xC6, - 0x00, - 0x11, - 0xC7, - 0x00, - 0x17, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xDA, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x0C, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0x05, - 0xD9, - 0x00, - 0x07, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xC8, - 0xDA, - 0xCF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0F, - 0xD1, - 0xD1, - 0xCD, - 0xCD, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0x22, - 0x00, - 0x18, - 0x15, - 0x00, - 0x21, - 0x16, - 0x71, - 0xC4, - 0xC8, - 0xC8, - 0xCD, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xB5, - 0x8D, - 0x18, - 0xEC, - 0x82, - 0x42, - 0x19, - 0xD8, - 0x56, - 0x57, - 0x98, - 0x73, - 0xE5, - 0xAC, - 0xC1, - 0x42, - 0x18, - 0x18, - 0x73, - 0xCD, - 0xCB, - 0xEA, - 0x00, - 0x04, - 0x20, - 0x00, - 0x39, - 0xE2, - 0xC8, - 0x8E, - 0xEE, - 0xDF, - 0xDF, - 0x20, - 0x09, - 0xE5, - 0xCE, - 0xA1, - 0xEA, - 0xEE, - 0xB6, - 0xB5, - 0xB5, - 0xDB, - 0x20, - 0x93, - 0x93, - 0xDF, - 0xEE, - 0xEE, - 0xCD, - 0xCD, - 0xA1, - 0x20, - 0x18, - 0x20, - 0xCB, - 0xB5, - 0xE5, - 0x09, - 0x93, - 0x93, - 0x18, - 0xE5, - 0xCA, - 0xC8, - 0xEB, - 0x09, - 0x18, - 0x20, - 0xEA, - 0xE5, - 0xEE, - 0xC8, - 0xCF, - 0xED, - 0xED, - 0xE9, - 0x61, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xC2, - 0xC2, - 0xCA, - 0x00, - 0x0C, - 0xC2, - 0x00, - 0x18, - 0xC6, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xB6, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0xB0, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x0E, - 0xC1, - 0xC3, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB0, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x16, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xBF, - 0xB8, - 0xC5, - 0xB8, - 0xD4, - 0x74, - 0xB3, - 0x89, - 0x7F, - 0x26, - 0x70, - 0x70, - 0x70, - 0x7B, - 0x7B, - 0x70, - 0x05, - 0x95, - 0x00, - 0x1B, - 0xCC, - 0xBD, - 0x9A, - 0x52, - 0x4A, - 0xBA, - 0x5E, - 0x8B, - 0xA8, - 0xA8, - 0xBE, - 0xBE, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xB3, - 0xBB, - 0xB3, - 0x5E, - 0xE4, - 0xBA, - 0xB9, - 0xB1, - 0x80, - 0xB5, - 0x00, - 0x08, - 0xC7, - 0x01, - 0xD7, - 0x06, - 0xC7, - 0x00, - 0x35, - 0xD7, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xC4, - 0xDA, - 0xDA, - 0xC8, - 0xCF, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x03, - 0xC8, - 0xD1, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x08, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0x7E, - 0x16, - 0x04, - 0x17, - 0x15, - 0x15, - 0x00, - 0x58, - 0x16, - 0xC4, - 0xC8, - 0xB6, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xB6, - 0x80, - 0x20, - 0xBD, - 0x98, - 0x42, - 0x18, - 0xD8, - 0x69, - 0x57, - 0x82, - 0x93, - 0xFF, - 0x97, - 0xCB, - 0xEC, - 0x93, - 0xA4, - 0xA1, - 0x71, - 0xE9, - 0x20, - 0xED, - 0xA1, - 0xC4, - 0xE4, - 0xE5, - 0xC7, - 0xC7, - 0xEE, - 0x20, - 0xE5, - 0xE6, - 0xCB, - 0xE0, - 0xCD, - 0xB5, - 0xDF, - 0xE5, - 0xC4, - 0xB5, - 0xA1, - 0xEA, - 0xEE, - 0xCA, - 0xCA, - 0xDB, - 0x73, - 0xDF, - 0xC4, - 0xA1, - 0xE8, - 0x18, - 0xE4, - 0xC4, - 0xC4, - 0xDB, - 0x18, - 0xEB, - 0xCB, - 0xC4, - 0x6E, - 0xEE, - 0xA1, - 0xF0, - 0x20, - 0xEE, - 0xD4, - 0x8E, - 0xE9, - 0x20, - 0xEA, - 0xC7, - 0xB2, - 0xE8, - 0xE8, - 0xD4, - 0xDC, - 0x05, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x52, - 0xC2, - 0xCA, - 0xC6, - 0xB6, - 0xCA, - 0xB6, - 0xCA, - 0xC2, - 0xC6, - 0xB6, - 0xC6, - 0xC2, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xB7, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC1, - 0xB0, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0xB7, - 0xC6, - 0xC3, - 0xB7, - 0xC1, - 0xC6, - 0xC3, - 0xC6, - 0xC6, - 0xB7, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xD4, - 0xC3, - 0xCE, - 0xA3, - 0x42, - 0x75, - 0x5F, - 0x55, - 0x85, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x7B, - 0x06, - 0x95, - 0x00, - 0x43, - 0x85, - 0xD8, - 0x6E, - 0x9C, - 0x6E, - 0x5E, - 0xBC, - 0xBE, - 0xA7, - 0xA7, - 0xA7, - 0xA5, - 0xD0, - 0xD8, - 0xD0, - 0xD8, - 0xD0, - 0xD8, - 0xE8, - 0xBE, - 0xDB, - 0xBC, - 0xBB, - 0xD6, - 0x34, - 0xB9, - 0x8E, - 0xAA, - 0xA1, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xD7, - 0x01, - 0xD7, - 0x07, - 0xD9, - 0x00, - 0x05, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0x00, - 0x05, - 0xDA, - 0x01, - 0xCF, - 0x06, - 0xC8, - 0x00, - 0x70, - 0xD1, - 0xD1, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xA1, - 0x16, - 0x16, - 0x15, - 0x15, - 0x1B, - 0x17, - 0x1B, - 0x17, - 0x1B, - 0x1D, - 0x17, - 0x1D, - 0x16, - 0x15, - 0x15, - 0x15, - 0x17, - 0x1D, - 0x1B, - 0x17, - 0x17, - 0x1B, - 0x1B, - 0x17, - 0x15, - 0x15, - 0x15, - 0x16, - 0x22, - 0xC8, - 0xB6, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC9, - 0xB5, - 0x78, - 0x20, - 0xE9, - 0x8F, - 0x6F, - 0x18, - 0xD0, - 0x34, - 0x69, - 0x77, - 0x93, - 0xBD, - 0x52, - 0x97, - 0xE5, - 0xFD, - 0x8D, - 0xA1, - 0xA1, - 0x73, - 0xEE, - 0xC4, - 0xC4, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC4, - 0xE4, - 0x73, - 0xEB, - 0xD6, - 0xA1, - 0xA1, - 0xB5, - 0xCD, - 0xEA, - 0xEE, - 0xB5, - 0xB5, - 0xB5, - 0xEA, - 0x73, - 0xCA, - 0xA1, - 0xE0, - 0xFD, - 0xEE, - 0xA1, - 0xC4, - 0xE2, - 0x93, - 0xC8, - 0xC8, - 0xA1, - 0xEE, - 0x73, - 0xE0, - 0xA1, - 0x04, - 0xC4, - 0x00, - 0x13, - 0xDB, - 0x18, - 0xE6, - 0xCF, - 0xCF, - 0xA1, - 0xDF, - 0xE5, - 0x71, - 0xC4, - 0xC7, - 0xCF, - 0xCF, - 0xE0, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xC2, - 0xC2, - 0xC6, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x0A, - 0xC6, - 0xCA, - 0xC2, - 0xC6, - 0xB0, - 0xCA, - 0xC6, - 0xC6, - 0xC1, - 0xB6, - 0x07, - 0xC1, - 0x00, - 0x0B, - 0xA9, - 0xC6, - 0xC2, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x03, - 0xC1, - 0xC3, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x0C, - 0xC6, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x0E, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xCB, - 0x9C, - 0x5E, - 0x89, - 0x55, - 0x32, - 0x70, - 0x7B, - 0x7B, - 0x04, - 0x95, - 0x00, - 0x0F, - 0x92, - 0x92, - 0x95, - 0x95, - 0x95, - 0xC0, - 0xA8, - 0x4A, - 0x6E, - 0x59, - 0xA8, - 0xAF, - 0xA0, - 0xB4, - 0xDE, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x11, - 0xE2, - 0xD0, - 0xE2, - 0xEB, - 0xD8, - 0xEB, - 0xD8, - 0xE2, - 0xD8, - 0xD8, - 0xE8, - 0xBB, - 0xD6, - 0x61, - 0xD4, - 0x8D, - 0xB5, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x0A, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0x04, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0x05, - 0xD9, - 0x01, - 0xD7, - 0x04, - 0xD9, - 0x00, - 0x03, - 0xD7, - 0xD9, - 0xDA, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xD7, - 0x08, - 0xD9, - 0x00, - 0x12, - 0xDA, - 0xCF, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xC9, - 0xC9, - 0xD2, - 0xC9, - 0xB6, - 0xE0, - 0x22, - 0x00, - 0x04, - 0x15, - 0x00, - 0x15, - 0x20, - 0x20, - 0x20, - 0x1C, - 0x17, - 0x09, - 0x09, - 0x73, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x93, - 0x09, - 0x20, - 0x20, - 0x15, - 0x09, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x04, - 0x16, - 0x00, - 0x1E, - 0xC4, - 0xC4, - 0xB5, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xB5, - 0xCA, - 0x20, - 0xE9, - 0x68, - 0x42, - 0x18, - 0xE2, - 0x22, - 0x72, - 0x69, - 0x93, - 0xBD, - 0x99, - 0x9B, - 0xE5, - 0xDF, - 0x8D, - 0x8D, - 0xD4, - 0x09, - 0xE5, - 0x05, - 0xE6, - 0x00, - 0x20, - 0xC7, - 0xF4, - 0x08, - 0x73, - 0xEC, - 0x73, - 0x73, - 0xF0, - 0xC9, - 0xC8, - 0xDF, - 0xE5, - 0xC4, - 0x71, - 0xA1, - 0xE4, - 0x73, - 0x73, - 0xEC, - 0xE6, - 0xCC, - 0xEE, - 0xC8, - 0xB5, - 0xEB, - 0x18, - 0xC9, - 0xC8, - 0xC7, - 0x73, - 0xFD, - 0xE1, - 0x04, - 0xE6, - 0x00, - 0x14, - 0xA1, - 0xEB, - 0x09, - 0x8D, - 0xCF, - 0xCF, - 0xC4, - 0xFD, - 0xEA, - 0xD9, - 0xC8, - 0xC4, - 0xC8, - 0xC8, - 0xD9, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xB6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0x05, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x26, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xAA, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB8, - 0xC6, - 0xC5, - 0xB9, - 0x66, - 0x7F, - 0x32, - 0x70, - 0x7B, - 0x04, - 0x95, - 0x06, - 0x92, - 0x00, - 0x2D, - 0x70, - 0x9F, - 0xDB, - 0x42, - 0x59, - 0xD8, - 0xA0, - 0xAB, - 0xDE, - 0xDE, - 0xB4, - 0xA0, - 0xD0, - 0xA8, - 0xDB, - 0xDB, - 0xE1, - 0xB3, - 0xE6, - 0xE6, - 0xB3, - 0xE1, - 0xE1, - 0xDB, - 0xE8, - 0xD8, - 0xEB, - 0xBE, - 0xE8, - 0xB3, - 0x6E, - 0xD4, - 0xB5, - 0xC4, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xCF, - 0xC7, - 0xD9, - 0xC7, - 0x00, - 0x08, - 0xD7, - 0x00, - 0x1A, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0xDA, - 0xD9, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0x06, - 0xDA, - 0x00, - 0x05, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x12, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xB6, - 0xD2, - 0xCD, - 0xB6, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC7, - 0x16, - 0x04, - 0x15, - 0x00, - 0x74, - 0x20, - 0x09, - 0x20, - 0x1C, - 0x15, - 0x7B, - 0x20, - 0x20, - 0x20, - 0x15, - 0x15, - 0x1D, - 0x09, - 0x09, - 0x73, - 0x1E, - 0x15, - 0x18, - 0x19, - 0x19, - 0x1C, - 0x16, - 0x15, - 0x15, - 0x15, - 0x22, - 0xC4, - 0xC4, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xB6, - 0x80, - 0x20, - 0xE9, - 0x68, - 0x42, - 0x18, - 0xBD, - 0x34, - 0x72, - 0x33, - 0x93, - 0xE5, - 0x7E, - 0x7E, - 0xE5, - 0xDF, - 0xD3, - 0xA1, - 0xCB, - 0x18, - 0x73, - 0xDF, - 0xFD, - 0xDF, - 0x73, - 0x73, - 0xC7, - 0xE6, - 0x18, - 0xA6, - 0xC4, - 0xD3, - 0x93, - 0xE9, - 0xC4, - 0x71, - 0xDF, - 0xFD, - 0xA1, - 0xC4, - 0x71, - 0xB5, - 0xF1, - 0xE1, - 0xE9, - 0x73, - 0x73, - 0xFD, - 0x71, - 0xC4, - 0xEB, - 0x19, - 0xC8, - 0x71, - 0xD3, - 0xDF, - 0x93, - 0xDF, - 0xDF, - 0xDF, - 0x73, - 0x18, - 0x8D, - 0xE8, - 0x09, - 0xDC, - 0xCF, - 0xC8, - 0xC7, - 0xDF, - 0xEE, - 0xC8, - 0xC8, - 0xC7, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x2F, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xC6, - 0xB6, - 0xC6, - 0xC6, - 0xC2, - 0xCA, - 0xC6, - 0xC2, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xB7, - 0xC6, - 0xB7, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x1B, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xAC, - 0xC6, - 0xC1, - 0xC5, - 0xBA, - 0x91, - 0x2A, - 0x2D, - 0x7B, - 0x95, - 0x95, - 0x00, - 0x09, - 0x92, - 0x00, - 0x05, - 0xCC, - 0xDE, - 0xB3, - 0xDC, - 0xD6, - 0x00, - 0x04, - 0xD8, - 0x00, - 0x26, - 0xDB, - 0xBB, - 0xBA, - 0x4A, - 0xF0, - 0x8E, - 0xF4, - 0xD3, - 0xE0, - 0xD3, - 0xF4, - 0xCA, - 0xCA, - 0xCE, - 0xA4, - 0xDC, - 0xD6, - 0xDB, - 0xE8, - 0xD0, - 0xE2, - 0xD8, - 0xDB, - 0xBA, - 0xCE, - 0xCA, - 0xC4, - 0xC7, - 0xC4, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0x05, - 0xD9, - 0x00, - 0x05, - 0xD7, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0x00, - 0x04, - 0xD9, - 0x00, - 0x28, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xCF, - 0xD9, - 0xDA, - 0xC8, - 0xDA, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xB6, - 0xB5, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0x53, - 0x00, - 0x05, - 0x15, - 0x00, - 0x74, - 0x93, - 0x18, - 0x19, - 0x1C, - 0x15, - 0x17, - 0x09, - 0x09, - 0x09, - 0x1C, - 0x15, - 0x73, - 0x20, - 0x20, - 0x73, - 0x15, - 0x15, - 0x93, - 0x09, - 0x19, - 0x1C, - 0x16, - 0x15, - 0x15, - 0x16, - 0x16, - 0xC4, - 0xC4, - 0xCD, - 0xC8, - 0xC8, - 0xC4, - 0xC8, - 0xE0, - 0x8D, - 0x93, - 0xE9, - 0x7E, - 0x31, - 0x18, - 0xEE, - 0x4E, - 0x34, - 0x31, - 0x93, - 0xE5, - 0x8F, - 0x99, - 0xE5, - 0xDF, - 0x71, - 0x8E, - 0xC4, - 0x73, - 0xFD, - 0xC4, - 0xA1, - 0xC7, - 0x73, - 0xE5, - 0xC7, - 0xEB, - 0x20, - 0xCB, - 0xC7, - 0xC7, - 0x73, - 0xE5, - 0xA1, - 0xC4, - 0xFD, - 0x20, - 0xEC, - 0xB5, - 0xB5, - 0xC4, - 0xC4, - 0x71, - 0xC4, - 0xC7, - 0x73, - 0xE5, - 0xCD, - 0xB5, - 0xEB, - 0x18, - 0xE0, - 0xC4, - 0xCD, - 0xE5, - 0x73, - 0xF4, - 0xE0, - 0xC4, - 0xE5, - 0x73, - 0xC8, - 0x9D, - 0x09, - 0xEB, - 0xD9, - 0xC4, - 0xC4, - 0xEA, - 0xE5, - 0x71, - 0xC4, - 0xC8, - 0xCF, - 0xC8, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x19, - 0xC2, - 0xB0, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xCA, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xB0, - 0xA9, - 0xA9, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x0A, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0x09, - 0xC3, - 0x00, - 0x1F, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC6, - 0xC6, - 0xAE, - 0x46, - 0x7A, - 0x32, - 0x70, - 0x95, - 0x92, - 0x95, - 0x95, - 0x00, - 0x05, - 0x92, - 0x00, - 0x11, - 0x95, - 0x95, - 0x92, - 0xCC, - 0xD0, - 0xA6, - 0xD4, - 0xA4, - 0xF5, - 0xB9, - 0x86, - 0xF7, - 0xF4, - 0xE0, - 0xF4, - 0xE0, - 0xD7, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x12, - 0xD9, - 0xE0, - 0xE0, - 0xC4, - 0xD7, - 0xE0, - 0xD3, - 0xD4, - 0xDD, - 0xBB, - 0xD8, - 0xE2, - 0xD0, - 0xD8, - 0xBC, - 0xDC, - 0x9B, - 0xC4, - 0x05, - 0xC7, - 0x00, - 0x04, - 0xD9, - 0xD7, - 0xD9, - 0xD7, - 0x05, - 0xD9, - 0x00, - 0x0D, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xD7, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0x00, - 0x06, - 0xD9, - 0x00, - 0x15, - 0xDA, - 0xD7, - 0xDA, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD1, - 0xDA, - 0xDA, - 0xC8, - 0xD1, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x10, - 0xD1, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xC9, - 0xC9, - 0xC9, - 0x22, - 0x05, - 0x15, - 0x00, - 0x74, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x15, - 0x17, - 0x1C, - 0x09, - 0x09, - 0x20, - 0x2D, - 0x20, - 0x20, - 0x09, - 0x1B, - 0x15, - 0x15, - 0x20, - 0x20, - 0x19, - 0x1C, - 0x16, - 0x15, - 0x15, - 0x16, - 0x16, - 0xA1, - 0xA1, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xA1, - 0xA1, - 0x8D, - 0x20, - 0xE9, - 0xB2, - 0xE4, - 0x20, - 0x93, - 0xCC, - 0xD0, - 0xDE, - 0x18, - 0xBC, - 0x56, - 0xBC, - 0xFD, - 0x73, - 0xDB, - 0xE6, - 0x78, - 0xE1, - 0x20, - 0xE2, - 0xE4, - 0xE2, - 0x20, - 0xE4, - 0xC7, - 0xE7, - 0x20, - 0xEC, - 0xA4, - 0xE8, - 0x09, - 0xE5, - 0xE1, - 0xA1, - 0xDF, - 0xEE, - 0x93, - 0xDF, - 0xDB, - 0xE4, - 0xEA, - 0xE2, - 0xE6, - 0xEB, - 0x20, - 0xDB, - 0xA1, - 0xE6, - 0xE5, - 0x18, - 0xDB, - 0xDB, - 0xCD, - 0x9D, - 0x09, - 0xE5, - 0xDC, - 0xE8, - 0x18, - 0xE8, - 0xC8, - 0xC4, - 0xE5, - 0x20, - 0xEC, - 0xE1, - 0xEC, - 0x73, - 0xEA, - 0xC4, - 0xC7, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x27, - 0xCA, - 0xC6, - 0xC6, - 0xC2, - 0xB0, - 0xA9, - 0xB6, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xB6, - 0xC6, - 0xB0, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0x00, - 0x07, - 0xC3, - 0x00, - 0x0D, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xAA, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xB7, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x13, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xCA, - 0xA1, - 0x7E, - 0x5A, - 0x7F, - 0x85, - 0x7B, - 0x95, - 0x95, - 0x92, - 0x92, - 0x95, - 0x92, - 0x92, - 0x00, - 0x04, - 0x95, - 0x00, - 0x13, - 0x7B, - 0xC0, - 0xBC, - 0xF7, - 0xF4, - 0xE0, - 0xD7, - 0xF4, - 0xD7, - 0xD3, - 0xE0, - 0xE0, - 0xD7, - 0xF4, - 0xF4, - 0xE0, - 0xE0, - 0xF4, - 0xF4, - 0x00, - 0x06, - 0xE0, - 0x00, - 0x27, - 0xC7, - 0xD9, - 0xC4, - 0x78, - 0xE3, - 0xD6, - 0xBC, - 0xA7, - 0xE9, - 0xE2, - 0xD8, - 0xBB, - 0x4A, - 0xA1, - 0xC4, - 0xD9, - 0xD9, - 0xCF, - 0xD7, - 0xD7, - 0xC8, - 0xD9, - 0xD7, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD7, - 0xCF, - 0xCF, - 0xD7, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0x00, - 0x06, - 0xDA, - 0x00, - 0x2B, - 0xD9, - 0xDA, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xDA, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xC4, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xCF, - 0xC8, - 0xDA, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0x16, - 0x00, - 0x05, - 0x15, - 0x00, - 0x08, - 0x20, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x17, - 0x20, - 0x04, - 0x09, - 0x00, - 0x09, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x5A, - 0x22, - 0xC4, - 0xC8, - 0xC8, - 0xD2, - 0xB5, - 0xE0, - 0xD3, - 0xCE, - 0x73, - 0xEC, - 0x49, - 0xBA, - 0x93, - 0xBB, - 0xE5, - 0x73, - 0x20, - 0xE5, - 0x56, - 0x3B, - 0x93, - 0x20, - 0x20, - 0x73, - 0xEE, - 0x80, - 0xCB, - 0xDB, - 0x73, - 0x18, - 0x73, - 0xE6, - 0xC7, - 0xD9, - 0xC7, - 0xE6, - 0xE5, - 0x93, - 0xFD, - 0xEB, - 0xE5, - 0xDF, - 0x8D, - 0xE5, - 0xE8, - 0xE7, - 0xE5, - 0xE9, - 0xE7, - 0xEC, - 0xDF, - 0x20, - 0x73, - 0xE9, - 0xCB, - 0xC4, - 0xDF, - 0x20, - 0x18, - 0x73, - 0x73, - 0xB5, - 0xC4, - 0xE4, - 0xDF, - 0x09, - 0x73, - 0xEB, - 0xC4, - 0xC8, - 0xC8, - 0xA1, - 0xEC, - 0x73, - 0x93, - 0xFD, - 0x93, - 0xEE, - 0xC7, - 0xC8, - 0xC7, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xA9, - 0xC2, - 0xB6, - 0xC1, - 0xC6, - 0xB0, - 0xC1, - 0xC6, - 0xC6, - 0xA9, - 0xA9, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x0F, - 0xC2, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x04, - 0xC5, - 0xC1, - 0xC3, - 0xB8, - 0x05, - 0xC3, - 0x05, - 0xC1, - 0x01, - 0xC6, - 0x04, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x0C, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB0, - 0xB0, - 0xD4, - 0x5A, - 0x2F, - 0x2D, - 0x7B, - 0x08, - 0x92, - 0x00, - 0x3E, - 0x95, - 0x95, - 0x92, - 0x7B, - 0xD5, - 0xE6, - 0xE0, - 0xE0, - 0xE0, - 0xF4, - 0xE0, - 0xE0, - 0xE0, - 0xD7, - 0xF4, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xD3, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xE0, - 0xE0, - 0xDA, - 0xC4, - 0xC6, - 0xB2, - 0xBA, - 0xBB, - 0xBE, - 0xD0, - 0xD0, - 0xE2, - 0xBC, - 0xE6, - 0x97, - 0xC9, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xD9, - 0xCF, - 0xC7, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xD9, - 0xD7, - 0xD9, - 0xCF, - 0xD9, - 0xD9, - 0x0B, - 0xDA, - 0x00, - 0x2C, - 0xD9, - 0xDA, - 0xDA, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xDA, - 0xC8, - 0xDA, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0x16, - 0x16, - 0x04, - 0x15, - 0x00, - 0x15, - 0x93, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x17, - 0x1C, - 0x73, - 0x09, - 0x09, - 0x09, - 0x73, - 0x17, - 0x15, - 0x15, - 0x15, - 0x73, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x5A, - 0x22, - 0xA1, - 0xC8, - 0xCD, - 0xC2, - 0xD3, - 0xD3, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0x9D, - 0xE4, - 0xE4, - 0xB3, - 0xE6, - 0x9A, - 0xE4, - 0xBA, - 0x3B, - 0x35, - 0xD4, - 0xE5, - 0xDF, - 0xCB, - 0xD3, - 0x80, - 0x80, - 0xA1, - 0xE0, - 0xCB, - 0xD7, - 0xC4, - 0xC4, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xA1, - 0xD7, - 0xC4, - 0xC7, - 0xC4, - 0xC4, - 0xC4, - 0x71, - 0xB5, - 0x80, - 0xCA, - 0xB5, - 0xA1, - 0xA1, - 0xD3, - 0xC4, - 0xC9, - 0xA1, - 0xA1, - 0xB5, - 0xEB, - 0x18, - 0xE0, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC8, - 0xC6, - 0xD1, - 0xC4, - 0xC9, - 0xC8, - 0xC8, - 0xC4, - 0xC4, - 0xC8, - 0xCF, - 0xC7, - 0xDF, - 0xE5, - 0xA1, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xD9, - 0xD9, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x22, - 0xC2, - 0xB0, - 0xC6, - 0xA9, - 0xA9, - 0xC6, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xB7, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0x05, - 0xB8, - 0x00, - 0x03, - 0xC3, - 0xB8, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x01, - 0xC6, - 0x05, - 0xC1, - 0x00, - 0x1C, - 0xB7, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB0, - 0xB0, - 0x7E, - 0x66, - 0x2C, - 0x2D, - 0x95, - 0x92, - 0x92, - 0x95, - 0x92, - 0x60, - 0x60, - 0x04, - 0x92, - 0x00, - 0x04, - 0x95, - 0x70, - 0xE9, - 0xF0, - 0x04, - 0xF4, - 0x00, - 0x12, - 0xD7, - 0xD7, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xF4, - 0xD3, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xCB, - 0xF4, - 0xD3, - 0xF7, - 0x04, - 0xE0, - 0x00, - 0x29, - 0xC4, - 0xC1, - 0xC5, - 0xBA, - 0xD6, - 0xBC, - 0xD0, - 0xD0, - 0xD0, - 0xE2, - 0xB3, - 0x4A, - 0xA1, - 0xCF, - 0xC7, - 0xD7, - 0xD9, - 0xD9, - 0xD9, - 0xDA, - 0xDA, - 0xD9, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0xD7, - 0xCF, - 0xD9, - 0xD9, - 0xC4, - 0xCF, - 0xD9, - 0xDA, - 0xCF, - 0xC4, - 0xCF, - 0xDA, - 0xDA, - 0xDA, - 0xD1, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x28, - 0xD9, - 0xCF, - 0xD9, - 0xDA, - 0xD1, - 0xCF, - 0xDA, - 0xCF, - 0xC8, - 0xC8, - 0xDA, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xC2, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0x15, - 0x16, - 0x04, - 0x15, - 0x00, - 0x04, - 0x20, - 0x09, - 0x20, - 0xE5, - 0x04, - 0x15, - 0x00, - 0x05, - 0x93, - 0x19, - 0x09, - 0x09, - 0x1C, - 0x00, - 0x04, - 0x15, - 0x00, - 0x2C, - 0x20, - 0x19, - 0x19, - 0xE5, - 0x15, - 0x15, - 0x15, - 0x16, - 0x16, - 0x1A, - 0xC7, - 0xD2, - 0xD2, - 0xD3, - 0xF4, - 0xCB, - 0xCE, - 0xF1, - 0xDB, - 0xE4, - 0xE4, - 0xE4, - 0xE6, - 0xE1, - 0xED, - 0xE6, - 0xB3, - 0x6F, - 0xE4, - 0xB9, - 0xB2, - 0xE5, - 0xDF, - 0xCB, - 0x80, - 0xAA, - 0xAA, - 0x8D, - 0xCA, - 0xB0, - 0xC9, - 0xD2, - 0xCF, - 0xDA, - 0x04, - 0xD7, - 0x00, - 0x05, - 0xD9, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x16, - 0xB5, - 0xB5, - 0xA1, - 0xC9, - 0xB5, - 0xA1, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xEB, - 0x09, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xB6, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0x06, - 0xC8, - 0x00, - 0x0E, - 0xC4, - 0xEA, - 0xEE, - 0xC8, - 0xD9, - 0xC7, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x19, - 0xC2, - 0x71, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xB6, - 0xCA, - 0xCA, - 0xA9, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x03, - 0xC1, - 0xC3, - 0xB7, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x08, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC3, - 0x04, - 0xC1, - 0x00, - 0x09, - 0xC6, - 0xC6, - 0xC3, - 0xC3, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x0E, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB6, - 0xC2, - 0xA3, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x95, - 0x07, - 0x92, - 0x00, - 0x0A, - 0x95, - 0x95, - 0x92, - 0xCC, - 0xBC, - 0xA4, - 0xE0, - 0xF4, - 0xD7, - 0xE0, - 0x05, - 0xF4, - 0x00, - 0x07, - 0xD3, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xCE, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x27, - 0xCE, - 0xCB, - 0xF7, - 0xD3, - 0xF4, - 0xC9, - 0xE0, - 0xD1, - 0xC6, - 0x8F, - 0xBA, - 0xB3, - 0x8B, - 0xBE, - 0xD0, - 0xD0, - 0xD8, - 0xDB, - 0x61, - 0xD3, - 0xC4, - 0xCF, - 0xD9, - 0xDA, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xD9, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xDA, - 0xCF, - 0xC8, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x08, - 0xDA, - 0xD1, - 0xDA, - 0xDA, - 0xDA, - 0xD1, - 0xDA, - 0xDA, - 0x05, - 0xCF, - 0x00, - 0x10, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x0B, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0x00, - 0x06, - 0x15, - 0x00, - 0x04, - 0x20, - 0x20, - 0x73, - 0x1C, - 0x04, - 0x15, - 0x00, - 0x05, - 0x1E, - 0x20, - 0x09, - 0x09, - 0x1E, - 0x00, - 0x04, - 0x15, - 0x00, - 0x34, - 0x20, - 0x19, - 0x19, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x16, - 0x16, - 0x1A, - 0xC7, - 0xC9, - 0xCA, - 0xCA, - 0xCB, - 0x00, - 0xF1, - 0xE7, - 0x09, - 0xEE, - 0xE4, - 0xE6, - 0xED, - 0xDB, - 0xE6, - 0xE1, - 0xE6, - 0xE4, - 0x9D, - 0x9D, - 0xA4, - 0xBB, - 0xE8, - 0xC3, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xA1, - 0xB5, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xC8, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x2B, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xA1, - 0x71, - 0xE0, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xBA, - 0xEB, - 0xC9, - 0xC2, - 0xC9, - 0xC9, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xEA, - 0xD5, - 0xE0, - 0xCF, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x01, - 0xB7, - 0x04, - 0xC3, - 0x00, - 0x04, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0x05, - 0xC3, - 0x00, - 0x0A, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0x04, - 0xC1, - 0x00, - 0x11, - 0xC3, - 0xC1, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xC6, - 0xC2, - 0x94, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x00, - 0x04, - 0x92, - 0x00, - 0x09, - 0x60, - 0x92, - 0x92, - 0x95, - 0x92, - 0x92, - 0x95, - 0x8C, - 0xE6, - 0x00, - 0x09, - 0xF4, - 0x00, - 0x23, - 0xF7, - 0xF7, - 0xF7, - 0xCB, - 0xF1, - 0x00, - 0xD4, - 0xF1, - 0x00, - 0xD4, - 0xF1, - 0xCE, - 0xF1, - 0xF7, - 0xD4, - 0x00, - 0xCE, - 0xF7, - 0xF4, - 0xF4, - 0xE0, - 0xC3, - 0xE3, - 0xBA, - 0x5E, - 0x8B, - 0xBE, - 0xA7, - 0xD0, - 0xD8, - 0xDB, - 0x6E, - 0x8D, - 0xC4, - 0xD9, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x06, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xC4, - 0x07, - 0xCF, - 0x00, - 0x1F, - 0xC4, - 0xCF, - 0xDA, - 0xC8, - 0xDA, - 0xDA, - 0xD1, - 0xD1, - 0xDA, - 0xD1, - 0xDA, - 0xC8, - 0xDA, - 0xC8, - 0xCF, - 0xD1, - 0xD1, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x04, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0x04, - 0xB5, - 0x00, - 0x05, - 0xC9, - 0xC9, - 0xC2, - 0xB5, - 0x71, - 0x00, - 0x06, - 0x15, - 0x00, - 0x04, - 0x20, - 0x09, - 0x09, - 0x1C, - 0x05, - 0x15, - 0x00, - 0x04, - 0x73, - 0x19, - 0x19, - 0x20, - 0x04, - 0x15, - 0x00, - 0x05, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x16, - 0x00, - 0x04, - 0x15, - 0x00, - 0x0F, - 0x1A, - 0xC7, - 0xC4, - 0xCA, - 0xD3, - 0xF7, - 0xCE, - 0xF1, - 0xF0, - 0xEB, - 0xE6, - 0xE4, - 0xE6, - 0xE6, - 0xED, - 0x00, - 0x04, - 0xE6, - 0x00, - 0x11, - 0xDC, - 0xDC, - 0x86, - 0xB2, - 0xC5, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xC9, - 0xCD, - 0xC8, - 0xC4, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x05, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x1E, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xE9, - 0xE9, - 0xD7, - 0x05, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0xC8, - 0xD7, - 0xC8, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0x05, - 0xC1, - 0x00, - 0x0C, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC1, - 0xC3, - 0xB7, - 0x05, - 0xC3, - 0x01, - 0xB8, - 0x04, - 0xC3, - 0x00, - 0x09, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x08, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xB7, - 0xC3, - 0x06, - 0xC1, - 0x00, - 0x03, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x0C, - 0xC3, - 0xC1, - 0xCA, - 0x7E, - 0x75, - 0x2A, - 0x70, - 0x95, - 0x92, - 0x92, - 0x92, - 0x60, - 0x06, - 0x92, - 0x00, - 0x0F, - 0x70, - 0xD0, - 0xE7, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xE0, - 0xF4, - 0xF4, - 0xF7, - 0xCE, - 0x00, - 0xF1, - 0x00, - 0x05, - 0xF0, - 0x01, - 0xE3, - 0x04, - 0xF0, - 0x00, - 0x40, - 0xE3, - 0xF1, - 0xD4, - 0xF1, - 0xF1, - 0xD4, - 0xCE, - 0xF7, - 0xC3, - 0xBF, - 0x9C, - 0xBA, - 0xD6, - 0x5B, - 0xA8, - 0xBE, - 0xD8, - 0xA8, - 0xDB, - 0xBA, - 0x8E, - 0xC8, - 0xDA, - 0xDA, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xC4, - 0xCF, - 0xCF, - 0xC4, - 0xD1, - 0xCF, - 0xCF, - 0xC8, - 0xDA, - 0xC8, - 0xD1, - 0xD9, - 0xCF, - 0xCF, - 0xDA, - 0xD2, - 0xC8, - 0xD1, - 0xD2, - 0xC8, - 0xC8, - 0xD1, - 0xD1, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xC8, - 0x04, - 0xCD, - 0x01, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x0F, - 0xB6, - 0xB6, - 0xD2, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xC9, - 0xC2, - 0xB5, - 0xA1, - 0x00, - 0x06, - 0x15, - 0x00, - 0x16, - 0x20, - 0x20, - 0x09, - 0x1C, - 0x15, - 0x15, - 0x15, - 0x7B, - 0x17, - 0x17, - 0x19, - 0x19, - 0x19, - 0x1D, - 0x15, - 0x15, - 0x15, - 0x93, - 0x18, - 0x19, - 0x1C, - 0x16, - 0x04, - 0x15, - 0x00, - 0x25, - 0x1A, - 0xC7, - 0xD2, - 0xCA, - 0xD3, - 0xCE, - 0xF1, - 0xA4, - 0xA4, - 0xFC, - 0xE4, - 0xFA, - 0xED, - 0xED, - 0xE6, - 0xED, - 0xE6, - 0xE6, - 0xE4, - 0xE4, - 0xE7, - 0x49, - 0xBF, - 0xAC, - 0xAC, - 0xC3, - 0xC1, - 0x8D, - 0xC3, - 0xAA, - 0xC6, - 0xB0, - 0xC2, - 0xC9, - 0xC8, - 0xC8, - 0xCF, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x1B, - 0xD7, - 0xC7, - 0xC9, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xB6, - 0xC9, - 0xC9, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x06, - 0xC8, - 0x00, - 0x0C, - 0xC7, - 0xC4, - 0xCF, - 0xC7, - 0xC8, - 0xD7, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x14, - 0xC1, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x10, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB7, - 0xC5, - 0x06, - 0xC3, - 0x00, - 0x2A, - 0xC1, - 0xC3, - 0xB7, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0x9B, - 0xC5, - 0x8D, - 0xB5, - 0x7E, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x92, - 0x92, - 0x60, - 0x60, - 0x92, - 0x60, - 0x60, - 0x92, - 0x95, - 0x7B, - 0xDF, - 0xBC, - 0xF7, - 0x06, - 0xF4, - 0x00, - 0x42, - 0xF7, - 0xF7, - 0x00, - 0xF1, - 0xE3, - 0xF0, - 0xEF, - 0xE7, - 0xF5, - 0xE7, - 0xF5, - 0xE7, - 0xF5, - 0xF5, - 0xE7, - 0xF0, - 0xE7, - 0xF5, - 0xF5, - 0xE7, - 0xE3, - 0xF0, - 0xE3, - 0xF0, - 0x8E, - 0xF1, - 0xE3, - 0x7D, - 0xDC, - 0xD6, - 0x90, - 0x8B, - 0xBC, - 0xD8, - 0xD8, - 0xE1, - 0xDD, - 0xA2, - 0xD2, - 0xDA, - 0xD9, - 0xC8, - 0xCF, - 0xC4, - 0xDA, - 0xC4, - 0xD1, - 0xCF, - 0xD1, - 0xC8, - 0xC4, - 0xD2, - 0xCF, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xC4, - 0xC4, - 0xCF, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0x04, - 0xD1, - 0x00, - 0x1C, - 0xC8, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xD2, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xCD, - 0xB5, - 0xC2, - 0xC9, - 0xCD, - 0xC2, - 0x04, - 0xB5, - 0x00, - 0x04, - 0xA1, - 0xC7, - 0x16, - 0x16, - 0x04, - 0x15, - 0x00, - 0x15, - 0x20, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0x1C, - 0x20, - 0x7B, - 0x15, - 0x2D, - 0x09, - 0x20, - 0x73, - 0x15, - 0x15, - 0x15, - 0x20, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x4A, - 0x22, - 0xD2, - 0xCD, - 0xB0, - 0xF4, - 0xCE, - 0xD4, - 0xF0, - 0x35, - 0xE8, - 0xED, - 0xE6, - 0xE6, - 0xED, - 0xEC, - 0xE8, - 0xE4, - 0xE6, - 0xE4, - 0xE8, - 0xED, - 0xA4, - 0xD4, - 0xA4, - 0xDB, - 0xED, - 0x35, - 0x8E, - 0xED, - 0xCE, - 0xBA, - 0xE6, - 0xCB, - 0xB5, - 0xD7, - 0xC4, - 0xE6, - 0x9D, - 0xC7, - 0xE4, - 0xF5, - 0xC7, - 0xE0, - 0xE6, - 0xA4, - 0xC4, - 0xC4, - 0xA1, - 0xE6, - 0xE7, - 0xCD, - 0xC9, - 0xCD, - 0xE6, - 0xE7, - 0xC9, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xD2, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xB7, - 0xC6, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC3, - 0xC6, - 0xB7, - 0xB7, - 0x05, - 0xC3, - 0x00, - 0x35, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xAE, - 0xC5, - 0xAA, - 0xA1, - 0x7E, - 0x66, - 0x2A, - 0x70, - 0x95, - 0x92, - 0x92, - 0x92, - 0x60, - 0x60, - 0x00, - 0x04, - 0x92, - 0x00, - 0x16, - 0x95, - 0xD5, - 0xDD, - 0xCB, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xF0, - 0xE7, - 0xEF, - 0xEF, - 0xEF, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xFC, - 0x04, - 0xEF, - 0x00, - 0x2C, - 0xF5, - 0xEF, - 0xEF, - 0xE7, - 0xEF, - 0xE7, - 0xF5, - 0xE3, - 0xE7, - 0xE3, - 0xF1, - 0xE3, - 0x7D, - 0xDC, - 0xBA, - 0x59, - 0x90, - 0xBC, - 0xBC, - 0xBC, - 0xD6, - 0xDC, - 0xA2, - 0xE0, - 0xC8, - 0xDA, - 0xCF, - 0xD2, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xC4, - 0xC8, - 0xD1, - 0xD1, - 0xC8, - 0xD1, - 0xCF, - 0xD2, - 0xD2, - 0xC8, - 0xD1, - 0xC4, - 0x04, - 0xD1, - 0x00, - 0x06, - 0xC8, - 0xD1, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0x05, - 0xCD, - 0x01, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x0D, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xC9, - 0x00, - 0x07, - 0xB5, - 0x00, - 0x05, - 0xA1, - 0xA1, - 0xE0, - 0x16, - 0x16, - 0x00, - 0x04, - 0x15, - 0x00, - 0x15, - 0x93, - 0x18, - 0x20, - 0x1C, - 0x15, - 0x15, - 0xDF, - 0x20, - 0x09, - 0x17, - 0x17, - 0x20, - 0x09, - 0x09, - 0x1C, - 0x15, - 0x15, - 0x93, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x40, - 0x53, - 0xD1, - 0xC8, - 0xC9, - 0xCA, - 0xCB, - 0xF1, - 0xA4, - 0xF5, - 0x20, - 0xF2, - 0xE6, - 0xFA, - 0xE6, - 0x20, - 0xE5, - 0xE6, - 0xE4, - 0xE4, - 0x73, - 0xE5, - 0xB9, - 0xA6, - 0x20, - 0x20, - 0x73, - 0x20, - 0xE9, - 0x09, - 0xB9, - 0x9D, - 0x18, - 0xEB, - 0x80, - 0xD3, - 0xEB, - 0x93, - 0xE4, - 0xC7, - 0x93, - 0xEC, - 0xC7, - 0xD3, - 0x20, - 0xE8, - 0xA1, - 0xC8, - 0xCD, - 0x20, - 0xE2, - 0xCD, - 0xB5, - 0xC9, - 0x20, - 0xEC, - 0x71, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0x04, - 0xCD, - 0x00, - 0x03, - 0xB6, - 0xCD, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0x00, - 0x06, - 0xCF, - 0x01, - 0xD9, - 0x01, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x27, - 0xC1, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xC6, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x07, - 0xC3, - 0x00, - 0x21, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xAC, - 0xB8, - 0xC5, - 0xD4, - 0xAA, - 0x80, - 0x9B, - 0x4D, - 0x26, - 0x70, - 0x95, - 0x92, - 0x92, - 0x92, - 0x60, - 0x00, - 0x05, - 0x92, - 0x00, - 0x03, - 0xCC, - 0xD0, - 0xE3, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x09, - 0xF7, - 0xF7, - 0xF0, - 0xF0, - 0xEF, - 0xEF, - 0xFC, - 0xF6, - 0xE4, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x07, - 0xE4, - 0xE4, - 0xFC, - 0x13, - 0xF6, - 0xEF, - 0xFC, - 0x00, - 0x06, - 0xEF, - 0x00, - 0x34, - 0xF5, - 0xE7, - 0xE7, - 0xE3, - 0xF0, - 0xE7, - 0xDC, - 0xDD, - 0x46, - 0x5E, - 0x90, - 0x8B, - 0xBB, - 0xD6, - 0xDC, - 0xC5, - 0xC9, - 0xDA, - 0xCF, - 0xC4, - 0xC8, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xC4, - 0xCF, - 0xD2, - 0xD2, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xD2, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xD2, - 0xCD, - 0xD2, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0x06, - 0xCD, - 0x00, - 0x17, - 0xB6, - 0xCD, - 0xCD, - 0xD2, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xCA, - 0xC2, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xA1, - 0xB5, - 0x22, - 0x00, - 0x05, - 0x15, - 0x00, - 0x15, - 0x20, - 0x09, - 0x09, - 0xFD, - 0x1C, - 0x2D, - 0x09, - 0x20, - 0x73, - 0x17, - 0x15, - 0x2D, - 0x09, - 0x09, - 0x20, - 0x1C, - 0x1D, - 0x18, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x05, - 0x15, - 0x00, - 0x44, - 0xC4, - 0xA1, - 0xC8, - 0xC8, - 0xE0, - 0x8D, - 0x8E, - 0xF1, - 0xF0, - 0x20, - 0xE5, - 0xE4, - 0xE6, - 0xE6, - 0x20, - 0xE5, - 0xE4, - 0xFC, - 0xEF, - 0x73, - 0xEE, - 0xD4, - 0xEB, - 0x93, - 0x35, - 0xAA, - 0xE4, - 0xDF, - 0x20, - 0x9D, - 0x80, - 0xEB, - 0x93, - 0xDC, - 0x9D, - 0x20, - 0xEC, - 0xC7, - 0xC7, - 0x93, - 0xEC, - 0xCF, - 0xE0, - 0x09, - 0xE8, - 0xC8, - 0xC8, - 0xCD, - 0x19, - 0xE2, - 0xCD, - 0xCD, - 0xC9, - 0x20, - 0xEC, - 0xB5, - 0xC4, - 0xA1, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xC9, - 0xC9, - 0x06, - 0xCD, - 0x00, - 0x10, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0xD9, - 0xC8, - 0xD7, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xC6, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x53, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xB7, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0x97, - 0xA1, - 0x35, - 0x75, - 0x26, - 0x7B, - 0x92, - 0x92, - 0x92, - 0x60, - 0x92, - 0x92, - 0x60, - 0x92, - 0x92, - 0x95, - 0xC0, - 0xDB, - 0xCE, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x00, - 0xF0, - 0xE3, - 0xEF, - 0xFC, - 0xE4, - 0xFE, - 0xE4, - 0xFE, - 0xFE, - 0xFA, - 0xE4, - 0xFE, - 0xF6, - 0xFE, - 0xFE, - 0xE4, - 0xFC, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0x00, - 0x04, - 0xEF, - 0x01, - 0x02, - 0x04, - 0xE7, - 0x00, - 0x29, - 0xE3, - 0xDC, - 0xDC, - 0xDD, - 0x9A, - 0xB3, - 0xD6, - 0xD6, - 0xDC, - 0xAC, - 0xC4, - 0xDA, - 0xC4, - 0xC8, - 0xC4, - 0xD2, - 0xC4, - 0xCF, - 0xC8, - 0xD2, - 0xD1, - 0xD1, - 0xD2, - 0xCD, - 0xD1, - 0xD2, - 0xD2, - 0xC4, - 0xD2, - 0xD1, - 0xD1, - 0xD2, - 0xD1, - 0xD2, - 0xCD, - 0xD2, - 0xD2, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1D, - 0xD1, - 0xB6, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xB6, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xB5, - 0xB6, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0x96, - 0x00, - 0x05, - 0x15, - 0x00, - 0x15, - 0x20, - 0x09, - 0x09, - 0x93, - 0x09, - 0x93, - 0x09, - 0x09, - 0x2D, - 0x17, - 0x17, - 0x17, - 0x20, - 0x09, - 0x09, - 0x73, - 0x09, - 0x09, - 0x19, - 0x19, - 0x1C, - 0x00, - 0x04, - 0x15, - 0x00, - 0x5B, - 0x1A, - 0xC7, - 0xC4, - 0xCF, - 0xCF, - 0xC4, - 0xA1, - 0xCB, - 0xD4, - 0xA4, - 0x20, - 0xE5, - 0x9D, - 0xE4, - 0xE6, - 0x93, - 0x07, - 0xE4, - 0xE4, - 0xF0, - 0x73, - 0xE5, - 0xD4, - 0xE8, - 0x18, - 0xBB, - 0xD3, - 0x71, - 0xE8, - 0x20, - 0xA6, - 0x80, - 0x97, - 0xFD, - 0xDF, - 0xDF, - 0xFD, - 0xC4, - 0xC4, - 0xC7, - 0x93, - 0xEC, - 0xC4, - 0xD3, - 0x09, - 0xEB, - 0xC7, - 0xC8, - 0xC8, - 0x19, - 0xEB, - 0xCD, - 0xCD, - 0xB5, - 0x20, - 0xE2, - 0xA1, - 0xA1, - 0xB5, - 0xC2, - 0xCD, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xC9, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD7, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xB7, - 0xB7, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x16, - 0xC1, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x06, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0x05, - 0xC3, - 0x00, - 0x0C, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC3, - 0xB8, - 0xCE, - 0x04, - 0xB8, - 0x00, - 0x31, - 0xC5, - 0xC5, - 0xC3, - 0xC6, - 0x7E, - 0x91, - 0x2D, - 0x95, - 0x92, - 0x92, - 0x60, - 0x92, - 0x60, - 0x60, - 0x92, - 0x92, - 0x92, - 0x95, - 0xE5, - 0x6F, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0xF1, - 0xE7, - 0xEF, - 0xF6, - 0xF6, - 0xFE, - 0xE6, - 0xFA, - 0xFA, - 0xFA, - 0x11, - 0xE6, - 0xFA, - 0xFA, - 0x13, - 0xFE, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xF6, - 0x00, - 0x05, - 0xFC, - 0x00, - 0x15, - 0xEF, - 0xF5, - 0xE7, - 0xE7, - 0xEF, - 0xF0, - 0x86, - 0xE7, - 0x8A, - 0xDC, - 0xBA, - 0xBA, - 0x6F, - 0xDD, - 0xE3, - 0x8E, - 0xC4, - 0xC8, - 0xE0, - 0xB5, - 0xE0, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x1F, - 0xF7, - 0xCB, - 0xF7, - 0xCE, - 0xF7, - 0xF4, - 0xD3, - 0xD3, - 0xD3, - 0xCA, - 0xB0, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xB6, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xB0, - 0xCD, - 0x00, - 0x06, - 0xB5, - 0x00, - 0x07, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCA, - 0xC9, - 0xC2, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x07, - 0xC2, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xC4, - 0x1A, - 0x00, - 0x04, - 0x15, - 0x00, - 0x15, - 0x73, - 0x20, - 0x73, - 0x18, - 0x20, - 0x09, - 0x20, - 0x20, - 0x17, - 0x15, - 0x15, - 0x15, - 0x1C, - 0x20, - 0x73, - 0x09, - 0x20, - 0x09, - 0x73, - 0x09, - 0x1E, - 0x00, - 0x04, - 0x15, - 0x00, - 0x54, - 0x68, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0xCF, - 0xE0, - 0xA1, - 0x8E, - 0xD4, - 0x20, - 0xE9, - 0xE7, - 0x9D, - 0xE4, - 0x20, - 0xE5, - 0x6F, - 0x9D, - 0xE7, - 0x73, - 0xE5, - 0xD3, - 0xB1, - 0xDF, - 0x73, - 0xEE, - 0xEB, - 0xEC, - 0x09, - 0xE7, - 0x80, - 0xAA, - 0xE7, - 0x93, - 0x20, - 0xA6, - 0xB5, - 0xC4, - 0xA1, - 0x73, - 0xEC, - 0xC7, - 0xD3, - 0x18, - 0xE8, - 0xCF, - 0xC8, - 0xC8, - 0x20, - 0xEC, - 0xC9, - 0xC4, - 0x8D, - 0x93, - 0xEC, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xC9, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0x05, - 0xCF, - 0x01, - 0xC8, - 0x01, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x12, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0x04, - 0xC1, - 0x05, - 0xC3, - 0x00, - 0x06, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xC3, - 0xAC, - 0x04, - 0xC3, - 0x00, - 0x0C, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0x07, - 0xC3, - 0x00, - 0x59, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC6, - 0x7E, - 0x45, - 0x26, - 0x95, - 0x92, - 0x92, - 0x60, - 0x92, - 0x60, - 0x92, - 0x92, - 0x60, - 0x92, - 0x7B, - 0xD0, - 0xEF, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0x00, - 0xF1, - 0xF5, - 0xEF, - 0xE4, - 0xFE, - 0xE6, - 0xFA, - 0xFA, - 0xFA, - 0x03, - 0xE6, - 0xFA, - 0x03, - 0xFA, - 0xFE, - 0xE6, - 0xFE, - 0xFE, - 0xFE, - 0xF6, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0xE4, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xE7, - 0xF0, - 0xF0, - 0xF0, - 0xC5, - 0x52, - 0xB9, - 0xDC, - 0xDC, - 0xDC, - 0xA4, - 0xCE, - 0xF7, - 0xCE, - 0xF1, - 0xF0, - 0xF0, - 0xF5, - 0xF0, - 0x01, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x10, - 0xF1, - 0xF1, - 0xF1, - 0xF7, - 0xF7, - 0xCE, - 0xF4, - 0xCA, - 0xC2, - 0xCD, - 0xC4, - 0xD2, - 0xB6, - 0xCD, - 0xD1, - 0xB6, - 0x04, - 0xCD, - 0x00, - 0x11, - 0xC2, - 0xCD, - 0xC9, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xCD, - 0xB6, - 0xCD, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xC9, - 0xCA, - 0xB5, - 0xA1, - 0xE0, - 0xC2, - 0x99, - 0x00, - 0x04, - 0x15, - 0x00, - 0x08, - 0x17, - 0x1C, - 0x73, - 0x7B, - 0x2D, - 0x2D, - 0x1C, - 0x17, - 0x05, - 0x15, - 0x00, - 0x07, - 0x1B, - 0x2D, - 0x7B, - 0x2D, - 0x7B, - 0x2D, - 0x1C, - 0x00, - 0x04, - 0x15, - 0x00, - 0x3F, - 0x16, - 0xC7, - 0x71, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xC4, - 0xC4, - 0x8D, - 0xCB, - 0x20, - 0xE9, - 0x35, - 0xA6, - 0x61, - 0x20, - 0xF2, - 0xEF, - 0x9D, - 0x35, - 0x73, - 0xE5, - 0x97, - 0xCB, - 0xCB, - 0xE4, - 0xD8, - 0xE5, - 0x20, - 0x09, - 0x35, - 0xD3, - 0xAA, - 0xD6, - 0x18, - 0x18, - 0xE4, - 0xA1, - 0xC4, - 0xC4, - 0x73, - 0xEC, - 0xC7, - 0xE0, - 0x18, - 0xE8, - 0xC7, - 0xC4, - 0xC4, - 0x18, - 0xEC, - 0xB5, - 0xC4, - 0xC4, - 0x20, - 0xEC, - 0xA1, - 0xC9, - 0xB6, - 0xCD, - 0xCD, - 0xC9, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x19, - 0xC9, - 0xCD, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xC1, - 0xC3, - 0xC3, - 0xC6, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0x09, - 0xC1, - 0x00, - 0x06, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0x05, - 0xC5, - 0x00, - 0x2F, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC1, - 0x7E, - 0x36, - 0x2D, - 0x95, - 0x60, - 0x92, - 0x60, - 0x92, - 0x60, - 0x00, - 0x04, - 0x92, - 0x00, - 0x18, - 0x7B, - 0xD8, - 0xD4, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF1, - 0xE7, - 0xEF, - 0xF6, - 0xFE, - 0xFA, - 0xFA, - 0x03, - 0x03, - 0x03, - 0xED, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0x04, - 0xF6, - 0x04, - 0xFC, - 0x01, - 0xF6, - 0x04, - 0xFC, - 0x00, - 0x1A, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xE7, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0xCE, - 0xE3, - 0xDC, - 0xE4, - 0xE7, - 0xFC, - 0xFC, - 0xFC, - 0xF6, - 0x13, - 0xF6, - 0x13, - 0xF6, - 0xF6, - 0xF6, - 0x04, - 0xFC, - 0x00, - 0x0E, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xCE, - 0xF7, - 0xCB, - 0xCA, - 0xB5, - 0x05, - 0xCD, - 0x00, - 0x04, - 0xB6, - 0xC2, - 0xCD, - 0xB6, - 0x06, - 0xC2, - 0x00, - 0x0B, - 0xD2, - 0xCA, - 0xC9, - 0xCA, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xC2, - 0x1A, - 0x00, - 0x09, - 0x15, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x15, - 0x01, - 0x17, - 0x07, - 0x15, - 0x00, - 0x54, - 0x16, - 0x16, - 0x15, - 0x68, - 0xC9, - 0xCD, - 0xC9, - 0xC8, - 0xC4, - 0xD9, - 0xCF, - 0xB5, - 0xB6, - 0xD3, - 0x20, - 0xEA, - 0x35, - 0xA4, - 0x35, - 0x93, - 0xDF, - 0xEF, - 0x52, - 0xA4, - 0x20, - 0xE5, - 0x97, - 0x78, - 0x8D, - 0x8D, - 0x8E, - 0x80, - 0xE2, - 0x93, - 0x35, - 0x97, - 0x8E, - 0x73, - 0xEE, - 0xEE, - 0x73, - 0xD3, - 0xA1, - 0xC7, - 0x20, - 0xEC, - 0xC4, - 0xD3, - 0x09, - 0xE5, - 0xE0, - 0xC7, - 0xCE, - 0x09, - 0xE5, - 0xD3, - 0xC9, - 0xB5, - 0x18, - 0xE2, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xCD, - 0xC2, - 0xC2, - 0xCD, - 0xD2, - 0xCD, - 0xB5, - 0xD1, - 0xCD, - 0xC9, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0x07, - 0xC8, - 0x00, - 0x04, - 0xCF, - 0xC8, - 0xD9, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC1, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x04, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x3A, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC6, - 0x52, - 0x36, - 0x2D, - 0x95, - 0x60, - 0x92, - 0x92, - 0x60, - 0x92, - 0x60, - 0x60, - 0x60, - 0x73, - 0xC0, - 0xDB, - 0xF7, - 0xF4, - 0xF7, - 0xD3, - 0xF1, - 0xF5, - 0xEF, - 0xF6, - 0xE6, - 0xED, - 0xFA, - 0xED, - 0x05, - 0x03, - 0x00, - 0x17, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0x12, - 0xFC, - 0xFC, - 0x12, - 0xFC, - 0x02, - 0xFC, - 0xFC, - 0xEF, - 0x02, - 0xFC, - 0xF5, - 0xEF, - 0x02, - 0x02, - 0xEF, - 0xF5, - 0xF0, - 0xF5, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x0D, - 0xF1, - 0xF0, - 0xE7, - 0xE7, - 0xF6, - 0xFE, - 0xFA, - 0xFA, - 0x11, - 0x03, - 0x11, - 0xFA, - 0x03, - 0x00, - 0x06, - 0xFA, - 0x04, - 0xFE, - 0x00, - 0x17, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0x02, - 0xF0, - 0x01, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xC6, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xB6, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xC2, - 0x01, - 0xB5, - 0x0A, - 0xC2, - 0x00, - 0x0C, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC4, - 0x16, - 0x17, - 0x15, - 0x00, - 0x3F, - 0x16, - 0x16, - 0x1A, - 0xC9, - 0xC9, - 0xCD, - 0xC4, - 0xC4, - 0xC8, - 0xB5, - 0xC4, - 0xC4, - 0xC9, - 0xD3, - 0x20, - 0x93, - 0x73, - 0xE8, - 0xE5, - 0x18, - 0x73, - 0x73, - 0xE2, - 0xE5, - 0x93, - 0xDB, - 0x8E, - 0x8E, - 0xEA, - 0xE5, - 0xDB, - 0xE8, - 0x73, - 0xEE, - 0xD3, - 0x80, - 0xE5, - 0x73, - 0xA4, - 0xE3, - 0x73, - 0xE9, - 0xC4, - 0xA1, - 0x93, - 0xEC, - 0xC7, - 0xF4, - 0x09, - 0x73, - 0xDF, - 0xE8, - 0xE5, - 0x20, - 0x93, - 0xDF, - 0xE8, - 0xE5, - 0x18, - 0xE4, - 0xCD, - 0xB5, - 0xC9, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x13, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xDA, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x0F, - 0xB7, - 0xC6, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x06, - 0xC3, - 0x00, - 0x0D, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x12, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xCB, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xAC, - 0x80, - 0x94, - 0x4F, - 0x2D, - 0x92, - 0x07, - 0x60, - 0x00, - 0x36, - 0x92, - 0x92, - 0xD5, - 0xE4, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0xF0, - 0xFC, - 0xFE, - 0xFA, - 0xED, - 0xED, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x03, - 0xFE, - 0x11, - 0xF6, - 0x13, - 0xFC, - 0x12, - 0x02, - 0x12, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0xFC, - 0x02, - 0x12, - 0xF5, - 0x02, - 0xF5, - 0xF5, - 0x01, - 0x01, - 0xF0, - 0x01, - 0xF0, - 0xF0, - 0xF0, - 0xF5, - 0xEF, - 0x12, - 0xFC, - 0xFE, - 0xFA, - 0x03, - 0x03, - 0x06, - 0x0E, - 0x00, - 0x21, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x0E, - 0x0E, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0xF1, - 0xF1, - 0xF7, - 0xF7, - 0xCA, - 0xB6, - 0xC2, - 0xCD, - 0xC2, - 0xC2, - 0xC9, - 0xB6, - 0x00, - 0x05, - 0xC2, - 0x01, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB5, - 0xA1, - 0xC9, - 0xA1, - 0xA1, - 0xC4, - 0x68, - 0x00, - 0x16, - 0x15, - 0x00, - 0x4C, - 0x16, - 0x16, - 0x1A, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0xC4, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xCA, - 0xB5, - 0xCA, - 0xDF, - 0xE6, - 0xEB, - 0xDF, - 0x20, - 0xE5, - 0x49, - 0xEB, - 0xDF, - 0x20, - 0xE9, - 0x35, - 0x52, - 0x9B, - 0xE8, - 0xE5, - 0x73, - 0x73, - 0xE5, - 0xDD, - 0xCB, - 0xE4, - 0x73, - 0xDB, - 0x80, - 0x8D, - 0xE8, - 0xDF, - 0xE4, - 0xA1, - 0xDF, - 0xEB, - 0xC4, - 0xCA, - 0x73, - 0xF5, - 0xEB, - 0xDF, - 0x20, - 0xE9, - 0xE0, - 0xEB, - 0xDF, - 0x73, - 0xEC, - 0xB0, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xD1, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0x05, - 0xCD, - 0x00, - 0x0F, - 0xD1, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD9, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB7, - 0xC6, - 0xC1, - 0xAA, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x07, - 0xB7, - 0xC1, - 0xC3, - 0xC6, - 0xC3, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x18, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC1, - 0xB7, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0x05, - 0xC5, - 0x00, - 0x0A, - 0xC3, - 0xC5, - 0xAD, - 0xAA, - 0x52, - 0x36, - 0x70, - 0x92, - 0x60, - 0x92, - 0x06, - 0x60, - 0x00, - 0x13, - 0x92, - 0xDE, - 0x9D, - 0xF4, - 0xF4, - 0xF7, - 0xCE, - 0xEF, - 0xE4, - 0xE6, - 0xED, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0x03, - 0x11, - 0xFE, - 0x00, - 0x04, - 0x13, - 0x00, - 0x0E, - 0xFC, - 0xFC, - 0x12, - 0x12, - 0xFC, - 0xFC, - 0x12, - 0x02, - 0x12, - 0x12, - 0x02, - 0x12, - 0x02, - 0x02, - 0x05, - 0x01, - 0x00, - 0x35, - 0xF5, - 0xF5, - 0x02, - 0xFC, - 0xFE, - 0xFE, - 0x11, - 0x03, - 0x03, - 0xFB, - 0x0D, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0xF3, - 0xFB, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0xF0, - 0x00, - 0xF7, - 0xF7, - 0xCA, - 0xE0, - 0xB5, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB0, - 0x00, - 0x08, - 0xC2, - 0x01, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xCA, - 0xB6, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xB5, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x03, - 0xB5, - 0x22, - 0x16, - 0x00, - 0x14, - 0x15, - 0x00, - 0x4A, - 0x16, - 0x16, - 0xC4, - 0xE0, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xA1, - 0xB0, - 0x80, - 0xAA, - 0x80, - 0xAA, - 0xAA, - 0x8E, - 0x80, - 0x8E, - 0xAC, - 0x8E, - 0x7E, - 0xD4, - 0xA4, - 0x86, - 0xB2, - 0xA3, - 0xA4, - 0xB2, - 0x7E, - 0x8E, - 0xAA, - 0x80, - 0xD3, - 0x80, - 0x80, - 0xB7, - 0xAA, - 0xAA, - 0xD3, - 0x80, - 0x8D, - 0xB5, - 0xC6, - 0xCA, - 0xC4, - 0xA1, - 0xB5, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xC4, - 0xC4, - 0xC8, - 0xC4, - 0xC9, - 0xC4, - 0xC8, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xD2, - 0x04, - 0xCD, - 0x00, - 0x04, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xD1, - 0xD1, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC1, - 0xC6, - 0xAA, - 0xC1, - 0xAA, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x06, - 0xC3, - 0x08, - 0xC5, - 0x05, - 0xC3, - 0x00, - 0x0E, - 0xB8, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC1, - 0x04, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC1, - 0xC1, - 0xB8, - 0x05, - 0xC5, - 0x00, - 0x0A, - 0xB8, - 0xC5, - 0xB8, - 0x8E, - 0x78, - 0x52, - 0x23, - 0x2D, - 0x95, - 0x92, - 0x07, - 0x60, - 0x00, - 0x19, - 0x73, - 0xBD, - 0xE3, - 0xF4, - 0xF4, - 0xF7, - 0xF5, - 0xF6, - 0xFA, - 0xFB, - 0xFB, - 0xF3, - 0xF3, - 0x10, - 0xFB, - 0x0E, - 0x03, - 0xFE, - 0xFE, - 0x11, - 0x13, - 0xFE, - 0x13, - 0xFC, - 0x13, - 0x00, - 0x0D, - 0x12, - 0x00, - 0x13, - 0x01, - 0x12, - 0x01, - 0x02, - 0x12, - 0x12, - 0x12, - 0x11, - 0x11, - 0x11, - 0x03, - 0x0E, - 0x0D, - 0xFB, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0x10, - 0x00, - 0x05, - 0xF3, - 0x00, - 0x03, - 0x10, - 0xF3, - 0x10, - 0x00, - 0x06, - 0xFB, - 0x00, - 0x15, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0x03, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xCB, - 0xC6, - 0xC2, - 0xC9, - 0xB6, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x07, - 0xB6, - 0xC2, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0C, - 0xA1, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xC2, - 0xB5, - 0xA1, - 0xA1, - 0x96, - 0x14, - 0x15, - 0x00, - 0x31, - 0x1A, - 0x8D, - 0xA1, - 0xA1, - 0xC4, - 0xB5, - 0xB5, - 0xB0, - 0xA9, - 0x97, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0xCB, - 0x8E, - 0xAA, - 0x8E, - 0x8E, - 0xAC, - 0xB1, - 0xB1, - 0xB2, - 0xB2, - 0x86, - 0xB2, - 0xA3, - 0x52, - 0xA3, - 0xBF, - 0xC5, - 0xAA, - 0xAA, - 0x80, - 0x8D, - 0xCB, - 0x8D, - 0x80, - 0xAA, - 0x80, - 0x8D, - 0xC6, - 0xA9, - 0xC2, - 0xA1, - 0xE6, - 0x35, - 0xE0, - 0xCF, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0xC7, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0x07, - 0xCD, - 0x00, - 0x0E, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x0C, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC3, - 0x00, - 0x38, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xAD, - 0xAC, - 0x35, - 0xA5, - 0x70, - 0x92, - 0x92, - 0x05, - 0x60, - 0x00, - 0x17, - 0x92, - 0x60, - 0xCC, - 0xD0, - 0xF0, - 0xF4, - 0xF7, - 0xF1, - 0xEF, - 0xE6, - 0xE8, - 0xFB, - 0xF8, - 0xF8, - 0xF8, - 0xFB, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x11, - 0x11, - 0xFE, - 0x00, - 0x04, - 0x13, - 0x0C, - 0x12, - 0x00, - 0x18, - 0x02, - 0x02, - 0x01, - 0x12, - 0x12, - 0xFC, - 0x13, - 0x11, - 0x11, - 0x03, - 0x0E, - 0x0D, - 0xFB, - 0xFB, - 0x10, - 0xF3, - 0xFB, - 0xF3, - 0x10, - 0xF3, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x04, - 0x00, - 0x35, - 0xF3, - 0xF3, - 0x04, - 0xFB, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0xED, - 0x03, - 0x03, - 0x03, - 0xFA, - 0xFE, - 0x13, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xF5, - 0xF0, - 0x00, - 0xF7, - 0xD3, - 0xCA, - 0xB6, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xB0, - 0xCA, - 0xB0, - 0xB0, - 0xB6, - 0xC2, - 0xC2, - 0x71, - 0xC2, - 0xA9, - 0x71, - 0xA1, - 0xB6, - 0xC2, - 0xA1, - 0xA1, - 0xC2, - 0xC2, - 0xA1, - 0xCA, - 0xB5, - 0xB5, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x03, - 0x97, - 0x1A, - 0x16, - 0x00, - 0x10, - 0x15, - 0x00, - 0x11, - 0x22, - 0xC2, - 0xC2, - 0xA1, - 0xC9, - 0xC4, - 0xB5, - 0xB6, - 0x80, - 0xAC, - 0xAC, - 0xAE, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0xB1, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x1E, - 0xAC, - 0xB1, - 0xB1, - 0xB2, - 0xD4, - 0xA3, - 0xA4, - 0xA3, - 0xA3, - 0xA3, - 0xB2, - 0xC5, - 0xAA, - 0xAA, - 0x80, - 0xC1, - 0xAA, - 0xAA, - 0x80, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0xC2, - 0x8E, - 0x20, - 0xEE, - 0xCF, - 0xCF, - 0xD7, - 0x04, - 0xC7, - 0x00, - 0x21, - 0xCF, - 0xD9, - 0xD1, - 0xC8, - 0xC9, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xB6, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xD1, - 0x00, - 0x07, - 0xC8, - 0x01, - 0xCF, - 0x01, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xC6, - 0xAA, - 0xC3, - 0xC1, - 0xC1, - 0xB7, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xB7, - 0x00, - 0x0A, - 0xC3, - 0x00, - 0x12, - 0xB8, - 0xC5, - 0xAE, - 0xC5, - 0xBF, - 0xBF, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xAC, - 0xB8, - 0xC5, - 0x04, - 0xC3, - 0x00, - 0x05, - 0xC1, - 0xC6, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x12, - 0xC6, - 0xB7, - 0xC1, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0x49, - 0x23, - 0x70, - 0x92, - 0x08, - 0x60, - 0x00, - 0x1C, - 0x70, - 0xE8, - 0x00, - 0xF4, - 0xCB, - 0xF0, - 0xFA, - 0xFB, - 0xE8, - 0x0C, - 0xF8, - 0xF9, - 0xF3, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x11, - 0x11, - 0x13, - 0x13, - 0x13, - 0x12, - 0x13, - 0x13, - 0x0B, - 0x12, - 0x00, - 0x21, - 0x02, - 0x12, - 0x12, - 0x11, - 0x13, - 0x03, - 0x0E, - 0x0E, - 0x0E, - 0x0D, - 0x10, - 0x10, - 0x10, - 0xF3, - 0xF3, - 0x10, - 0xF3, - 0x04, - 0x04, - 0xF8, - 0x04, - 0xF8, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x04, - 0x0B, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x35, - 0x0D, - 0xED, - 0x0E, - 0xFA, - 0xFA, - 0xFE, - 0x13, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xF0, - 0xF1, - 0x00, - 0xD3, - 0xD3, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xA9, - 0xC2, - 0xB0, - 0xB6, - 0xB0, - 0xA9, - 0xB6, - 0xB0, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0x71, - 0xC6, - 0xA1, - 0xB6, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xB5, - 0xB5, - 0x8D, - 0x68, - 0x1A, - 0x15, - 0x16, - 0x16, - 0x00, - 0x07, - 0x15, - 0x00, - 0x44, - 0x16, - 0x16, - 0x16, - 0x1A, - 0x97, - 0xA1, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xC4, - 0xB6, - 0xB0, - 0x78, - 0x97, - 0xAD, - 0x7E, - 0xA3, - 0xA3, - 0x52, - 0x5D, - 0x35, - 0xB2, - 0xB2, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xC5, - 0xD4, - 0xB2, - 0xBF, - 0xA3, - 0xB2, - 0xB2, - 0xB2, - 0xA3, - 0xBF, - 0xAC, - 0xCB, - 0x80, - 0x80, - 0xAA, - 0xC6, - 0xAA, - 0x8D, - 0xC1, - 0x8D, - 0xB0, - 0xB0, - 0x80, - 0xE4, - 0x86, - 0xC4, - 0xCF, - 0xD7, - 0xCF, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xD1, - 0x04, - 0xCD, - 0x00, - 0x1E, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xDA, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x03, - 0xC1, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x07, - 0xB8, - 0xAC, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x07, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xB7, - 0xC3, - 0xB8, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x0B, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xC5, - 0xC5, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x03, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x09, - 0xC3, - 0x00, - 0x11, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xC3, - 0xB8, - 0x5D, - 0xA5, - 0x70, - 0x92, - 0x00, - 0x07, - 0x60, - 0x00, - 0x0D, - 0x92, - 0xDF, - 0xDB, - 0xD3, - 0xF7, - 0xF1, - 0xFC, - 0xE6, - 0xF3, - 0xF8, - 0xEC, - 0xF9, - 0xF8, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x06, - 0x0D, - 0x0E, - 0x03, - 0x03, - 0x11, - 0x11, - 0x04, - 0x13, - 0x00, - 0x07, - 0x12, - 0x12, - 0x12, - 0x13, - 0x13, - 0x02, - 0x02, - 0x00, - 0x09, - 0x12, - 0x00, - 0x57, - 0x13, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0xF3, - 0x10, - 0xF3, - 0x10, - 0xF3, - 0x04, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0xF8, - 0x0B, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0x04, - 0xF3, - 0xF3, - 0x04, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0xED, - 0x0E, - 0x03, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0x13, - 0x02, - 0x01, - 0xF0, - 0xF1, - 0xF7, - 0xD3, - 0xB6, - 0xA1, - 0xC2, - 0xC2, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xA1, - 0xB0, - 0xC2, - 0x71, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xB5, - 0xC2, - 0x99, - 0x22, - 0x16, - 0x00, - 0x07, - 0x15, - 0x00, - 0x39, - 0x1A, - 0x7E, - 0x97, - 0xB5, - 0xA1, - 0xA1, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xCD, - 0xC9, - 0xA1, - 0x97, - 0xAE, - 0x7E, - 0xA3, - 0x94, - 0x8A, - 0x3B, - 0x56, - 0x6C, - 0x6B, - 0x49, - 0x52, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xC5, - 0xB1, - 0xB2, - 0xD4, - 0xB2, - 0xB2, - 0xA3, - 0xA3, - 0xB2, - 0xBF, - 0xAC, - 0x80, - 0xC1, - 0xC1, - 0xC1, - 0x80, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xB0, - 0xB6, - 0xE0, - 0xB5, - 0xC8, - 0xC8, - 0xD7, - 0x00, - 0x05, - 0xC7, - 0x00, - 0x28, - 0xD7, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xB5, - 0xD2, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x21, - 0xC6, - 0xB7, - 0xC6, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xCE, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xB7, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x0C, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x12, - 0xC1, - 0xC3, - 0xC1, - 0xC1, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xC3, - 0xC5, - 0xC5, - 0x35, - 0x23, - 0x70, - 0x06, - 0x60, - 0x00, - 0x0E, - 0x92, - 0x60, - 0x92, - 0xC0, - 0xE1, - 0xF7, - 0xF4, - 0xF0, - 0xFE, - 0xE8, - 0xF8, - 0xF9, - 0xEC, - 0xEB, - 0x05, - 0x10, - 0x00, - 0x09, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x11, - 0x11, - 0x13, - 0x13, - 0x00, - 0x08, - 0x12, - 0x00, - 0x04, - 0x02, - 0x02, - 0x12, - 0x02, - 0x05, - 0x12, - 0x00, - 0x09, - 0x13, - 0x11, - 0x0E, - 0x0D, - 0x0D, - 0x10, - 0xFB, - 0x10, - 0xF3, - 0x00, - 0x04, - 0x10, - 0x00, - 0x35, - 0xF3, - 0xF3, - 0x0B, - 0xF8, - 0x04, - 0x04, - 0xF8, - 0xF8, - 0x04, - 0xF8, - 0x0B, - 0x0C, - 0xEB, - 0xF8, - 0xF8, - 0xF8, - 0x0B, - 0xF3, - 0xF3, - 0xF3, - 0x04, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x03, - 0xFA, - 0xFA, - 0x11, - 0xFE, - 0xF6, - 0x02, - 0x01, - 0x01, - 0xF1, - 0x00, - 0xD3, - 0xB0, - 0xB6, - 0xC6, - 0xC2, - 0xC6, - 0xB0, - 0xA9, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x12, - 0xC2, - 0xA1, - 0xC2, - 0xC2, - 0xB0, - 0xB0, - 0xC2, - 0x71, - 0xC2, - 0xC2, - 0xB5, - 0xB0, - 0xB5, - 0xC2, - 0xC4, - 0x80, - 0xC4, - 0xC4, - 0x05, - 0x71, - 0x00, - 0x44, - 0xC4, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0x71, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xA9, - 0x97, - 0x7E, - 0x7E, - 0x8A, - 0x6C, - 0x74, - 0x33, - 0x31, - 0x42, - 0x74, - 0x6C, - 0x4A, - 0xA4, - 0x8E, - 0xB1, - 0xCB, - 0xCE, - 0x8E, - 0x9B, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0xA3, - 0xB2, - 0xBF, - 0xB8, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xAA, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xD1, - 0xC8, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xB5, - 0xCD, - 0xCD, - 0xC2, - 0xD2, - 0x00, - 0x09, - 0xCD, - 0x00, - 0x08, - 0xD1, - 0xD1, - 0xCD, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x33, - 0xAA, - 0xC1, - 0xC3, - 0xC6, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xAC, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xAE, - 0xBF, - 0xBF, - 0xBF, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0x00, - 0x0A, - 0xC3, - 0x00, - 0x0C, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xB8, - 0x49, - 0x23, - 0x70, - 0x07, - 0x60, - 0x00, - 0x29, - 0x92, - 0x92, - 0xD5, - 0xE4, - 0xF4, - 0xF7, - 0xEF, - 0xED, - 0xF3, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x10, - 0x10, - 0x10, - 0xFB, - 0x10, - 0xFB, - 0x10, - 0x10, - 0x0E, - 0x0E, - 0x11, - 0x11, - 0xFE, - 0x13, - 0x13, - 0x12, - 0x02, - 0x12, - 0x02, - 0xFC, - 0x02, - 0x12, - 0x12, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0x00, - 0x04, - 0x12, - 0x00, - 0x10, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0x10, - 0xFB, - 0xF3, - 0x10, - 0x04, - 0x10, - 0xF3, - 0x04, - 0x06, - 0xF8, - 0x00, - 0x8B, - 0xF9, - 0xF3, - 0x0B, - 0xF9, - 0xF8, - 0xF8, - 0xF8, - 0x0C, - 0x0B, - 0xF3, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0xF3, - 0xED, - 0x0D, - 0x0D, - 0x0D, - 0xED, - 0x03, - 0xFE, - 0x13, - 0xF6, - 0xFC, - 0x02, - 0xF5, - 0xF0, - 0x00, - 0xF7, - 0xCA, - 0xB6, - 0xC2, - 0xB6, - 0x71, - 0xC2, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xC6, - 0x71, - 0xB0, - 0x71, - 0xB0, - 0xB6, - 0xB0, - 0xB0, - 0xB6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xA1, - 0xC4, - 0x71, - 0x71, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xC4, - 0xB5, - 0xC4, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xCA, - 0xCA, - 0xD2, - 0xC9, - 0xC4, - 0xA1, - 0xA9, - 0xAD, - 0xA2, - 0x9C, - 0x8A, - 0x33, - 0x46, - 0x46, - 0x46, - 0x5E, - 0x46, - 0x42, - 0x3B, - 0x35, - 0x52, - 0xB1, - 0x8E, - 0xAC, - 0xCB, - 0x8E, - 0x8E, - 0xB1, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xB0, - 0xA1, - 0xB5, - 0xCD, - 0xD1, - 0xC8, - 0xD9, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x1D, - 0xC9, - 0xD2, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xB6, - 0xD1, - 0xCD, - 0xCD, - 0xD2, - 0xD1, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x29, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xAC, - 0xB8, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xAC, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x18, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xAC, - 0xAD, - 0x35, - 0x36, - 0x70, - 0x92, - 0x07, - 0x60, - 0x00, - 0x1D, - 0x92, - 0xD5, - 0xDC, - 0xF4, - 0x00, - 0xFC, - 0xE8, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x04, - 0x10, - 0x10, - 0x10, - 0xF3, - 0x10, - 0xFB, - 0x10, - 0x0D, - 0x0D, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0x12, - 0x13, - 0x12, - 0x00, - 0x05, - 0x02, - 0x00, - 0x06, - 0x01, - 0x12, - 0x01, - 0x02, - 0x02, - 0x01, - 0x04, - 0x12, - 0x00, - 0x4F, - 0x11, - 0x0D, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0x10, - 0x10, - 0xFB, - 0xFB, - 0x10, - 0xFB, - 0x10, - 0x10, - 0x04, - 0xF3, - 0x04, - 0x04, - 0xF8, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0x0C, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0xF8, - 0x04, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0x02, - 0xF5, - 0xF1, - 0x00, - 0xCA, - 0xB5, - 0xB6, - 0xB0, - 0xB6, - 0xB0, - 0xC6, - 0xC2, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xC2, - 0xA9, - 0xC2, - 0xA9, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xB6, - 0xB0, - 0xB6, - 0xB0, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x63, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xB6, - 0xC2, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0x71, - 0x80, - 0x97, - 0xA2, - 0x9C, - 0x6C, - 0x72, - 0xB3, - 0x39, - 0x5A, - 0x5E, - 0x5E, - 0x46, - 0xBA, - 0x34, - 0xB9, - 0xB2, - 0x8E, - 0x8E, - 0x97, - 0xCB, - 0xC5, - 0x8E, - 0xC5, - 0xAE, - 0xD4, - 0xBF, - 0xBF, - 0xBF, - 0xB1, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xB5, - 0xCD, - 0xD2, - 0xD1, - 0xC8, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD2, - 0xD2, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x08, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x10, - 0xC6, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xB8, - 0xAC, - 0x05, - 0xC5, - 0x00, - 0x09, - 0xB8, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0x00, - 0x05, - 0xBF, - 0x00, - 0x07, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0x00, - 0x04, - 0xC5, - 0x0B, - 0xC3, - 0x00, - 0x04, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x09, - 0xB8, - 0xB8, - 0xAC, - 0x97, - 0x8E, - 0x35, - 0x23, - 0x2D, - 0x92, - 0x00, - 0x07, - 0x60, - 0x00, - 0x0E, - 0x95, - 0xE5, - 0xBA, - 0xF7, - 0xF0, - 0xE6, - 0xF8, - 0xEC, - 0xF9, - 0xF3, - 0x10, - 0x10, - 0x10, - 0xF3, - 0x04, - 0x10, - 0x00, - 0x0C, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x11, - 0x11, - 0x11, - 0x13, - 0x12, - 0x02, - 0xF5, - 0x04, - 0x01, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x02, - 0x02, - 0x01, - 0x12, - 0x12, - 0x02, - 0x12, - 0x12, - 0x13, - 0x11, - 0x0E, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x56, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0xF3, - 0x10, - 0x10, - 0xF3, - 0x04, - 0x04, - 0xF8, - 0x04, - 0x0B, - 0xEB, - 0xF8, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0xF9, - 0xF8, - 0xF8, - 0x0B, - 0xF8, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xFB, - 0xF3, - 0xFB, - 0xF3, - 0xFB, - 0xFB, - 0x0E, - 0x03, - 0x11, - 0x03, - 0xFA, - 0xFE, - 0x13, - 0x12, - 0xF5, - 0xF0, - 0xF1, - 0xF7, - 0xCB, - 0xC6, - 0xC2, - 0xA9, - 0xB6, - 0xC2, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xC2, - 0xB0, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xC6, - 0xB0, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xB6, - 0xC2, - 0xB5, - 0x05, - 0xC2, - 0x00, - 0x4A, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xA1, - 0x80, - 0xAD, - 0xAE, - 0x9C, - 0x88, - 0x46, - 0x5A, - 0x59, - 0x5A, - 0x5B, - 0x90, - 0x5E, - 0x2E, - 0xBA, - 0x74, - 0x5D, - 0xB2, - 0xB1, - 0x8E, - 0x80, - 0xD3, - 0xB8, - 0xC3, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xAE, - 0xC5, - 0xC3, - 0xC1, - 0x8D, - 0xA9, - 0xC1, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xC9, - 0xC8, - 0xC8, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0xD7, - 0xD7, - 0xDA, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xCD, - 0xCD, - 0xC2, - 0xB5, - 0xC9, - 0xCD, - 0xC9, - 0x05, - 0xCD, - 0x01, - 0xC9, - 0x01, - 0xC2, - 0x05, - 0xCD, - 0x00, - 0x0B, - 0xC9, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xAA, - 0xC3, - 0xB7, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x18, - 0xC3, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xC5, - 0xAE, - 0xBF, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x03, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC3, - 0x00, - 0x11, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC3, - 0xAC, - 0x78, - 0x52, - 0x45, - 0x70, - 0x00, - 0x06, - 0x60, - 0x00, - 0x40, - 0x92, - 0x60, - 0x73, - 0xBD, - 0xEF, - 0xF7, - 0xE7, - 0x0E, - 0xEC, - 0xF9, - 0xF8, - 0x10, - 0x04, - 0xF8, - 0x04, - 0xF8, - 0x04, - 0x04, - 0x10, - 0x10, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x11, - 0x11, - 0xFE, - 0xF6, - 0x13, - 0xFC, - 0x12, - 0x02, - 0xF5, - 0xF5, - 0x01, - 0xF5, - 0xF0, - 0xF5, - 0x01, - 0x00, - 0x02, - 0x01, - 0x01, - 0x02, - 0x12, - 0x12, - 0x13, - 0x11, - 0x11, - 0x0D, - 0x0E, - 0x0E, - 0x0D, - 0x0E, - 0x0E, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0x10, - 0xFB, - 0xF3, - 0x10, - 0xF3, - 0x04, - 0xF8, - 0x00, - 0x08, - 0x0C, - 0x0C, - 0xEB, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0xF9, - 0x04, - 0xF8, - 0x00, - 0xA1, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0xFB, - 0xF3, - 0xFB, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x0E, - 0xED, - 0x11, - 0xFE, - 0x13, - 0x13, - 0xEF, - 0xF5, - 0x01, - 0xF1, - 0xF7, - 0xD3, - 0xA9, - 0xB6, - 0xC2, - 0xA9, - 0x71, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xB0, - 0xC2, - 0xA9, - 0xB6, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xCA, - 0xB5, - 0xC2, - 0xCD, - 0xD2, - 0xCD, - 0xC8, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xC2, - 0xB5, - 0xCA, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xC9, - 0xD2, - 0xD2, - 0xA1, - 0x80, - 0xAC, - 0xBF, - 0x94, - 0x34, - 0x31, - 0x5E, - 0x8B, - 0x5B, - 0x66, - 0x4D, - 0x90, - 0x59, - 0x2E, - 0x31, - 0x3B, - 0x35, - 0x52, - 0x8E, - 0x8E, - 0x8D, - 0xC6, - 0xCB, - 0x9B, - 0xB1, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0x9B, - 0xAC, - 0xAA, - 0xC6, - 0xC1, - 0xA9, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xC2, - 0xC2, - 0xB5, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0xD7, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0xCD, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xD1, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0xB0, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x0B, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xC5, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xC5, - 0x06, - 0xC3, - 0x00, - 0x15, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xC5, - 0x78, - 0x9B, - 0x9B, - 0xA8, - 0x32, - 0x92, - 0x00, - 0x07, - 0x60, - 0x00, - 0x87, - 0x95, - 0xE5, - 0x9D, - 0x00, - 0xF6, - 0xE8, - 0x0C, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0x04, - 0x0B, - 0x04, - 0x04, - 0x10, - 0x10, - 0x10, - 0xFB, - 0x0E, - 0x0D, - 0x03, - 0x11, - 0xFA, - 0x11, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0x02, - 0xF5, - 0xF5, - 0x01, - 0xF5, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0x12, - 0x01, - 0x12, - 0x02, - 0x12, - 0x11, - 0x11, - 0x11, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0xFB, - 0xFB, - 0x0D, - 0x10, - 0x10, - 0x10, - 0x04, - 0x04, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0x0B, - 0xF9, - 0xF8, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0xF8, - 0x04, - 0x04, - 0xF8, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0xFB, - 0xF3, - 0x0D, - 0x0E, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0xFE, - 0xFE, - 0x13, - 0x12, - 0xF5, - 0xF0, - 0xF1, - 0x00, - 0xF7, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0xA9, - 0xC6, - 0xB0, - 0xC2, - 0xC1, - 0xB0, - 0xCA, - 0x71, - 0xB6, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x57, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0xC9, - 0xB5, - 0x80, - 0xAC, - 0xAE, - 0xA3, - 0x7D, - 0x31, - 0x5A, - 0x5A, - 0x75, - 0x75, - 0x66, - 0x4D, - 0x5B, - 0x59, - 0x2E, - 0x31, - 0x42, - 0x49, - 0x52, - 0x8E, - 0xCE, - 0xAA, - 0x80, - 0xAC, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0x7E, - 0xA3, - 0xA3, - 0x9B, - 0xAA, - 0xAA, - 0xAA, - 0xD3, - 0xC6, - 0xA9, - 0xC1, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xD2, - 0xB6, - 0xB5, - 0xC9, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xC9, - 0xC9, - 0xB6, - 0xCD, - 0xC9, - 0xC9, - 0x00, - 0x06, - 0xCD, - 0x01, - 0xD1, - 0x06, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xCA, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xC5, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x01, - 0xAC, - 0x06, - 0xC5, - 0x00, - 0x30, - 0xAC, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xBF, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xCE, - 0xB8, - 0x9B, - 0x66, - 0x32, - 0x06, - 0x60, - 0x00, - 0x19, - 0x92, - 0x92, - 0x95, - 0xAB, - 0xF5, - 0xF1, - 0xE4, - 0xF8, - 0xF8, - 0xF8, - 0xF3, - 0x0C, - 0x0B, - 0x0B, - 0x04, - 0x0B, - 0x04, - 0x0B, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x03, - 0x03, - 0x0E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x1A, - 0xFA, - 0xFA, - 0xF6, - 0xF6, - 0x02, - 0xEF, - 0x01, - 0x01, - 0x01, - 0xF0, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x02, - 0x12, - 0x13, - 0x11, - 0x11, - 0x11, - 0x03, - 0x11, - 0x11, - 0x03, - 0xFA, - 0x04, - 0x0E, - 0x00, - 0xAC, - 0xFB, - 0xFB, - 0xFB, - 0x10, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0xF8, - 0xF8, - 0xF9, - 0xF8, - 0xF9, - 0xF8, - 0x0C, - 0xF8, - 0x0B, - 0xEB, - 0x04, - 0xF8, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0x10, - 0x0D, - 0x0D, - 0x0D, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0xFC, - 0x02, - 0xF0, - 0xF1, - 0xF1, - 0xF7, - 0xC6, - 0xC2, - 0x71, - 0xB0, - 0xC1, - 0xB6, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0x71, - 0xB0, - 0xC2, - 0xB0, - 0xA9, - 0xC2, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xB6, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xCD, - 0xCD, - 0xD2, - 0xC4, - 0xC8, - 0xB5, - 0x8D, - 0xAA, - 0xAE, - 0xA3, - 0x6C, - 0x31, - 0x2E, - 0x90, - 0x66, - 0x75, - 0x91, - 0x75, - 0x66, - 0x5B, - 0x59, - 0x2E, - 0x31, - 0x74, - 0x5D, - 0xB2, - 0x8E, - 0x80, - 0x8D, - 0xAC, - 0xB2, - 0xB2, - 0xA3, - 0xA4, - 0x9C, - 0xA3, - 0xA3, - 0xBF, - 0xC5, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0xA1, - 0xC2, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0x08, - 0xCD, - 0x01, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x06, - 0xB6, - 0xC6, - 0xC1, - 0xB7, - 0xC3, - 0xC1, - 0x04, - 0xC3, - 0x05, - 0xC5, - 0x01, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x17, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x1A, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0x5E, - 0x26, - 0x95, - 0x07, - 0x60, - 0x00, - 0x6D, - 0x95, - 0xE9, - 0xEF, - 0xF0, - 0x03, - 0xF3, - 0xF8, - 0x04, - 0x0C, - 0x0B, - 0x0C, - 0x0C, - 0x0C, - 0x04, - 0x04, - 0x10, - 0xF3, - 0x10, - 0x0D, - 0x0E, - 0xFA, - 0x0E, - 0x03, - 0x03, - 0xED, - 0x03, - 0x03, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0xF5, - 0xF5, - 0xF0, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0x01, - 0x12, - 0x13, - 0x13, - 0x11, - 0x13, - 0x11, - 0x11, - 0xFE, - 0x11, - 0x03, - 0x0E, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x10, - 0xF3, - 0xFB, - 0xF8, - 0xF8, - 0xF3, - 0x0C, - 0xF8, - 0xF9, - 0xEB, - 0x0C, - 0xF8, - 0x0C, - 0xF3, - 0xF3, - 0xF8, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x10, - 0xFB, - 0x0D, - 0x04, - 0xF3, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0xFA, - 0x13, - 0xF6, - 0xEF, - 0x01, - 0xF1, - 0xF1, - 0xF7, - 0xD3, - 0xC2, - 0xC6, - 0xA9, - 0xC6, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x63, - 0xB0, - 0xC6, - 0xCA, - 0xA9, - 0xA9, - 0xC2, - 0xC2, - 0xB6, - 0xA9, - 0xB6, - 0xB6, - 0xCA, - 0xC2, - 0xC9, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xCD, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC6, - 0xB6, - 0xC1, - 0xB6, - 0xA9, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xC4, - 0xC9, - 0xA1, - 0x97, - 0xB8, - 0xA3, - 0x6B, - 0x34, - 0x46, - 0x5A, - 0x5A, - 0x75, - 0x75, - 0x91, - 0x75, - 0x75, - 0x5B, - 0x5A, - 0x5E, - 0x33, - 0x74, - 0x5D, - 0xB2, - 0x8E, - 0x8E, - 0x8E, - 0xB2, - 0x52, - 0xB9, - 0x5D, - 0xB9, - 0xB9, - 0x9C, - 0xA3, - 0xBF, - 0xAA, - 0xC1, - 0xC6, - 0xAA, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xCF, - 0xCF, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC8, - 0xC8, - 0xD2, - 0xB6, - 0xCD, - 0xCA, - 0xC2, - 0xB5, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x15, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xC2, - 0xB5, - 0xCD, - 0xD2, - 0xB6, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xB5, - 0xC2, - 0xC6, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0x00, - 0x08, - 0xC5, - 0x00, - 0x29, - 0xAC, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xC5, - 0xBF, - 0xC5, - 0xAC, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x42, - 0x7F, - 0x95, - 0x07, - 0x60, - 0x00, - 0x1B, - 0x95, - 0xE5, - 0x9D, - 0xEF, - 0x03, - 0xF8, - 0xF3, - 0xF8, - 0x0C, - 0x0C, - 0x0C, - 0x0B, - 0x0C, - 0x0B, - 0xF8, - 0xF8, - 0x04, - 0x0D, - 0x03, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x11, - 0x0E, - 0xE6, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0B, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0xF5, - 0x01, - 0xF1, - 0x01, - 0x01, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x01, - 0x05, - 0x12, - 0x00, - 0xB5, - 0x13, - 0xFE, - 0xFE, - 0x11, - 0x11, - 0x11, - 0x03, - 0x03, - 0x0D, - 0xFB, - 0xFB, - 0x0D, - 0xF3, - 0xF3, - 0xF3, - 0xF8, - 0xEB, - 0xF9, - 0xEB, - 0x0B, - 0xEB, - 0xEB, - 0xF3, - 0xF8, - 0xF3, - 0x04, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0xFB, - 0x04, - 0x04, - 0x0D, - 0x0D, - 0x10, - 0xF3, - 0xFB, - 0xF3, - 0xFB, - 0x10, - 0x0D, - 0x0D, - 0x0E, - 0x03, - 0x11, - 0xFE, - 0x13, - 0xEF, - 0xF5, - 0xF1, - 0xF1, - 0xF7, - 0xCB, - 0xA9, - 0xC1, - 0xB0, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xC6, - 0xC1, - 0xB6, - 0xC6, - 0xC2, - 0xB6, - 0xB5, - 0xC9, - 0xD2, - 0xD1, - 0xC8, - 0xC8, - 0xC9, - 0xA1, - 0x8D, - 0xAC, - 0xB1, - 0x49, - 0x74, - 0x31, - 0x5E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x2E, - 0x33, - 0x74, - 0x35, - 0x7E, - 0x8E, - 0x7E, - 0x35, - 0x35, - 0x4A, - 0x3B, - 0x6C, - 0x6C, - 0x6D, - 0x9C, - 0xA3, - 0xAC, - 0x8D, - 0x8D, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0xB0, - 0xC1, - 0xB0, - 0xB0, - 0xC2, - 0xC9, - 0xD1, - 0xC8, - 0xC8, - 0xD9, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC8, - 0xCD, - 0xCD, - 0xCD, - 0xC9, - 0xC2, - 0xCA, - 0xB5, - 0xC2, - 0xCA, - 0xB5, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0x00, - 0x05, - 0xCD, - 0x01, - 0xC8, - 0x01, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xC9, - 0xB6, - 0xB0, - 0xC1, - 0xB7, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x01, - 0x8E, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xAC, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xAE, - 0xBF, - 0xC5, - 0xAE, - 0xBF, - 0x00, - 0x04, - 0xC5, - 0x01, - 0xAC, - 0x01, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x0C, - 0xC3, - 0xB8, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0x07, - 0xC5, - 0x00, - 0x08, - 0xAC, - 0xAC, - 0x97, - 0x4A, - 0x23, - 0x70, - 0x60, - 0x92, - 0x05, - 0x60, - 0x00, - 0x0A, - 0x92, - 0xDE, - 0x9D, - 0xF6, - 0xF3, - 0xF8, - 0x0C, - 0x0C, - 0x0C, - 0xF9, - 0x04, - 0x0C, - 0x00, - 0x70, - 0xF8, - 0x04, - 0x0D, - 0x10, - 0x0E, - 0x03, - 0x11, - 0x11, - 0xFE, - 0x11, - 0xFE, - 0xFE, - 0x11, - 0xFA, - 0xFA, - 0xED, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0xFC, - 0x02, - 0xF5, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x01, - 0x01, - 0x12, - 0x02, - 0x02, - 0x12, - 0x12, - 0x12, - 0x13, - 0xFE, - 0xFE, - 0xFE, - 0xFA, - 0xFA, - 0x03, - 0x03, - 0xED, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0xF8, - 0xF3, - 0x04, - 0xEB, - 0x0C, - 0xEB, - 0xF8, - 0x0B, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0x04, - 0xF3, - 0xFB, - 0xFB, - 0x10, - 0xF3, - 0x0D, - 0x04, - 0x10, - 0x0D, - 0x0D, - 0xF3, - 0xF3, - 0x10, - 0x04, - 0x0D, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x11, - 0xFE, - 0xF6, - 0x12, - 0x02, - 0x01, - 0xF1, - 0x00, - 0xF7, - 0xC6, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0xB6, - 0xC2, - 0xA9, - 0xB0, - 0xA9, - 0x71, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0x04, - 0xCD, - 0x00, - 0x54, - 0xB5, - 0xC2, - 0xB6, - 0xCA, - 0xB6, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xC2, - 0xB6, - 0xB0, - 0xB5, - 0xC9, - 0xD2, - 0xCF, - 0xC4, - 0xCD, - 0xD2, - 0xA1, - 0xB0, - 0xC3, - 0x8E, - 0x52, - 0x6C, - 0x42, - 0x46, - 0x59, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x91, - 0x75, - 0x75, - 0x4D, - 0x5A, - 0x46, - 0x31, - 0x74, - 0x49, - 0x52, - 0x35, - 0x4A, - 0x4A, - 0x74, - 0x74, - 0xBA, - 0xBA, - 0x34, - 0x6C, - 0xA3, - 0x9B, - 0x80, - 0xAA, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC9, - 0xCD, - 0xD1, - 0xC8, - 0xD9, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xC8, - 0xB6, - 0xC9, - 0xC2, - 0xCD, - 0xC9, - 0xCA, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x0D, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCD, - 0xC2, - 0xCD, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x04, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC9, - 0xB5, - 0xC2, - 0xB0, - 0xB7, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x05, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0x00, - 0x07, - 0xC5, - 0x01, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x07, - 0xAC, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0x00, - 0x06, - 0xBF, - 0x00, - 0x06, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0x04, - 0xC5, - 0x00, - 0x19, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xAC, - 0xB2, - 0x36, - 0x2D, - 0x92, - 0x00, - 0x05, - 0x60, - 0x00, - 0x14, - 0x95, - 0x95, - 0xE5, - 0xE6, - 0xED, - 0xF8, - 0x0B, - 0xF9, - 0x0A, - 0xF9, - 0x0A, - 0x0C, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0x04, - 0x04, - 0x10, - 0x0D, - 0x04, - 0x11, - 0x00, - 0x05, - 0x13, - 0x11, - 0x13, - 0x13, - 0x11, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x0F, - 0xFE, - 0x13, - 0x12, - 0x12, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x04, - 0x01, - 0x00, - 0x1A, - 0x02, - 0x12, - 0x13, - 0x13, - 0xF6, - 0x11, - 0xFE, - 0x11, - 0x03, - 0xED, - 0xFA, - 0x03, - 0xFA, - 0xF6, - 0x12, - 0xE7, - 0xFE, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0x10, - 0xFB, - 0xF3, - 0x05, - 0xFB, - 0x00, - 0x2C, - 0x04, - 0x0D, - 0x04, - 0x11, - 0x0D, - 0x10, - 0x04, - 0x10, - 0xFB, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x03, - 0x03, - 0x11, - 0xF6, - 0xFE, - 0xFC, - 0xF5, - 0xF1, - 0xF1, - 0xF1, - 0xF7, - 0xCA, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xA9, - 0xC1, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0x04, - 0xCD, - 0x00, - 0x1F, - 0xB6, - 0xB6, - 0xB0, - 0xB6, - 0xA9, - 0xB0, - 0xC2, - 0xC1, - 0xA9, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xCD, - 0xD1, - 0xC4, - 0xC9, - 0xD2, - 0xA1, - 0xA1, - 0x8D, - 0xAA, - 0x8E, - 0xB2, - 0xB9, - 0x74, - 0x6F, - 0x46, - 0x59, - 0x5B, - 0x5B, - 0x00, - 0x04, - 0x91, - 0x00, - 0x33, - 0x75, - 0x5B, - 0x90, - 0x39, - 0x33, - 0x3B, - 0x4A, - 0x3B, - 0x6E, - 0xBA, - 0x6F, - 0xBA, - 0x31, - 0x6F, - 0x6F, - 0x42, - 0x5D, - 0x7E, - 0xAA, - 0x8D, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xA9, - 0xC2, - 0xCA, - 0xC2, - 0xC9, - 0xCD, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xCF, - 0xD1, - 0xD2, - 0xC9, - 0xCD, - 0xB6, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0x00, - 0x06, - 0xC2, - 0x00, - 0x0B, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCD, - 0xCD, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x11, - 0xC2, - 0xC2, - 0xB0, - 0xC6, - 0xC6, - 0xAA, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x0A, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x0C, - 0xAE, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xC5, - 0xC5, - 0xC3, - 0xC5, - 0xC3, - 0x04, - 0xC5, - 0x00, - 0x08, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xB8, - 0xC3, - 0x04, - 0xC5, - 0x01, - 0xBF, - 0x08, - 0xC5, - 0x00, - 0x03, - 0x66, - 0x32, - 0x92, - 0x00, - 0x06, - 0x60, - 0x00, - 0x08, - 0x92, - 0xE5, - 0xDB, - 0xFB, - 0xF9, - 0xFF, - 0xF9, - 0x0A, - 0x04, - 0xF9, - 0x00, - 0x1B, - 0x0C, - 0xF8, - 0x0C, - 0x0C, - 0x04, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0x11, - 0xFE, - 0xFE, - 0xFE, - 0xFA, - 0xFA, - 0x13, - 0xF6, - 0x12, - 0x02, - 0x01, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF4, - 0x04, - 0x00, - 0x00, - 0x17, - 0xF1, - 0x01, - 0x01, - 0x01, - 0x02, - 0x12, - 0xFC, - 0xF6, - 0x13, - 0x13, - 0xF6, - 0xFE, - 0xFE, - 0x13, - 0x03, - 0xED, - 0x11, - 0x11, - 0xF6, - 0x13, - 0xFC, - 0xE7, - 0x12, - 0x00, - 0x04, - 0xF3, - 0x00, - 0x04, - 0xFB, - 0xFB, - 0x0D, - 0xFB, - 0x04, - 0x0D, - 0x00, - 0x9D, - 0x0E, - 0x04, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0x10, - 0x0D, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x11, - 0xFA, - 0x11, - 0xF6, - 0x13, - 0xEF, - 0x02, - 0x01, - 0x00, - 0x00, - 0xCE, - 0xC6, - 0x71, - 0xA9, - 0xA9, - 0xA9, - 0xC6, - 0xA9, - 0x71, - 0xCA, - 0xC1, - 0xC2, - 0xA9, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB0, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xA1, - 0xB0, - 0xB5, - 0xC9, - 0xCD, - 0xD2, - 0xD2, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xAA, - 0xC3, - 0x8E, - 0xB1, - 0x52, - 0x6C, - 0x42, - 0x46, - 0x5E, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x64, - 0x91, - 0x75, - 0x63, - 0x4D, - 0x5E, - 0x2E, - 0x31, - 0x34, - 0x42, - 0x6F, - 0x6F, - 0x6F, - 0xD6, - 0xD6, - 0x5E, - 0xD6, - 0x46, - 0x42, - 0xA3, - 0xCB, - 0xAA, - 0x8D, - 0x8D, - 0xAA, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xCD, - 0xCF, - 0xD9, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xC8, - 0xD1, - 0xCD, - 0xCD, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB6, - 0xCA, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xCA, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0xCD, - 0xC2, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC1, - 0xC1, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0x05, - 0xC5, - 0x00, - 0x10, - 0x9B, - 0xAE, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAE, - 0xC5, - 0xC5, - 0x05, - 0xBF, - 0x00, - 0x09, - 0xA3, - 0xAE, - 0xBF, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0x00, - 0x05, - 0xC5, - 0x01, - 0xAC, - 0x01, - 0xB8, - 0x04, - 0xC5, - 0x00, - 0x08, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xB1, - 0xC5, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x04, - 0x6F, - 0x1C, - 0x95, - 0x92, - 0x05, - 0x60, - 0x00, - 0x04, - 0x92, - 0xCC, - 0xEB, - 0xF8, - 0x04, - 0xFF, - 0x00, - 0x0E, - 0x0A, - 0xF9, - 0x0A, - 0x0C, - 0x0C, - 0xF9, - 0x0A, - 0x0C, - 0x0C, - 0x04, - 0x0B, - 0x10, - 0x10, - 0x0D, - 0x05, - 0x11, - 0x05, - 0xFE, - 0x00, - 0x06, - 0xFC, - 0x13, - 0xFC, - 0x12, - 0x01, - 0x01, - 0x05, - 0xF4, - 0x04, - 0x00, - 0x06, - 0x01, - 0x00, - 0xA8, - 0x02, - 0x02, - 0xFC, - 0x12, - 0x12, - 0xFE, - 0xFE, - 0x11, - 0x0E, - 0x11, - 0x11, - 0xFE, - 0x13, - 0x13, - 0x12, - 0xFC, - 0xF5, - 0xF0, - 0x0E, - 0xFB, - 0xFB, - 0xFB, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x0D, - 0x03, - 0x11, - 0x0D, - 0x0D, - 0x11, - 0x10, - 0x0D, - 0x10, - 0xFB, - 0x0D, - 0xFB, - 0x0D, - 0x0D, - 0xED, - 0x0E, - 0x03, - 0xFA, - 0xFE, - 0xF6, - 0xFC, - 0x02, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xC6, - 0xA9, - 0xC2, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0x71, - 0xA9, - 0xC6, - 0xC2, - 0xA9, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xCD, - 0xCD, - 0xC9, - 0xB6, - 0xB5, - 0xC2, - 0x71, - 0xC2, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0xC9, - 0xC2, - 0xD2, - 0xCD, - 0xC9, - 0xC9, - 0xC2, - 0x8D, - 0xAA, - 0xAA, - 0xAC, - 0xC5, - 0xB1, - 0x52, - 0xB9, - 0x3B, - 0x42, - 0x46, - 0x59, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x45, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x29, - 0x46, - 0x46, - 0x31, - 0x46, - 0xB3, - 0xB3, - 0x59, - 0xB3, - 0x90, - 0x59, - 0x5E, - 0x31, - 0x6B, - 0x9B, - 0x80, - 0x8D, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xA9, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xC9, - 0xD1, - 0xC8, - 0xD9, - 0xC8, - 0xD9, - 0xC7, - 0xCF, - 0xC7, - 0xD9, - 0xDA, - 0xD1, - 0xCD, - 0xB5, - 0xC9, - 0xB5, - 0xCA, - 0xC2, - 0xCA, - 0xC6, - 0xC6, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x0E, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xCD, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x26, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xAE, - 0xAE, - 0xA3, - 0x04, - 0xBF, - 0x01, - 0xAE, - 0x0A, - 0xC5, - 0x01, - 0xB8, - 0x04, - 0xC5, - 0x01, - 0xAC, - 0x01, - 0xB8, - 0x09, - 0xC5, - 0x00, - 0x06, - 0xCE, - 0xB8, - 0xC5, - 0x61, - 0x76, - 0x7B, - 0x06, - 0x60, - 0x00, - 0x2F, - 0x92, - 0xCC, - 0xE5, - 0xFF, - 0xFF, - 0xF9, - 0x0C, - 0xF9, - 0xF9, - 0x0C, - 0xF9, - 0xF9, - 0x0C, - 0xFF, - 0xF9, - 0xF9, - 0x0C, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x11, - 0xFE, - 0x11, - 0x11, - 0x13, - 0x13, - 0x12, - 0x02, - 0x01, - 0x00, - 0x00, - 0xF4, - 0xF4, - 0xF4, - 0x01, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0x00, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x01, - 0xF5, - 0x01, - 0x01, - 0x01, - 0x02, - 0x11, - 0xFE, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0x13, - 0xF6, - 0x12, - 0xFC, - 0x12, - 0xE7, - 0xF1, - 0x0E, - 0x0D, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x00, - 0x08, - 0x11, - 0x01, - 0x0E, - 0x05, - 0x0D, - 0x00, - 0x13, - 0x10, - 0x03, - 0x0E, - 0x0E, - 0x03, - 0x11, - 0x11, - 0xFE, - 0x13, - 0x02, - 0x01, - 0x01, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x71, - 0xC1, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x7B, - 0xC2, - 0xC1, - 0x71, - 0xA9, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC9, - 0xC9, - 0xC2, - 0xCD, - 0xB6, - 0xB6, - 0xB6, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xB6, - 0xB6, - 0xD2, - 0xC9, - 0xD2, - 0xC9, - 0xA1, - 0xB0, - 0x8D, - 0xAA, - 0xAC, - 0xAC, - 0x9B, - 0xBF, - 0xA4, - 0x79, - 0x6B, - 0x42, - 0xBA, - 0x9A, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x91, - 0x64, - 0x89, - 0x91, - 0x75, - 0x5B, - 0x29, - 0x46, - 0x5E, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0x90, - 0xBB, - 0x8B, - 0x90, - 0x9A, - 0x74, - 0x52, - 0xAA, - 0x80, - 0x8D, - 0xC6, - 0xAA, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xCF, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xCD, - 0xB6, - 0xB5, - 0xCA, - 0xC2, - 0xC6, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC9, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xC1, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x08, - 0xC5, - 0x01, - 0xBF, - 0x01, - 0xAE, - 0x06, - 0xC5, - 0x00, - 0x0A, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xBF, - 0xBF, - 0xAE, - 0x04, - 0xBF, - 0x00, - 0x05, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xB1, - 0x00, - 0x08, - 0xC5, - 0x01, - 0xAC, - 0x06, - 0xC5, - 0x00, - 0x0D, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0x7E, - 0x45, - 0x32, - 0x92, - 0x00, - 0x05, - 0x60, - 0x00, - 0x0C, - 0x92, - 0xCC, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xFF, - 0x0A, - 0x07, - 0xFF, - 0x00, - 0x1D, - 0x0A, - 0x0B, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0x12, - 0x12, - 0x01, - 0x00, - 0xF4, - 0xF4, - 0xF4, - 0x02, - 0xFE, - 0x11, - 0x11, - 0x11, - 0xFA, - 0x13, - 0xFC, - 0x01, - 0x00, - 0x05, - 0x00, - 0x00, - 0x17, - 0xF1, - 0x01, - 0x01, - 0xF1, - 0xFE, - 0x11, - 0x13, - 0xFE, - 0x11, - 0x11, - 0xFE, - 0xF6, - 0x13, - 0x12, - 0xFC, - 0x02, - 0xEF, - 0x12, - 0xF5, - 0x12, - 0x11, - 0x03, - 0x03, - 0x00, - 0x09, - 0x11, - 0x00, - 0x04, - 0x13, - 0x11, - 0x0D, - 0x0E, - 0x04, - 0x0D, - 0x00, - 0x47, - 0x03, - 0x0D, - 0x0D, - 0x0D, - 0x11, - 0x0E, - 0x11, - 0x13, - 0x11, - 0xFE, - 0x13, - 0x12, - 0x12, - 0x01, - 0x01, - 0x00, - 0xF7, - 0xD3, - 0xC1, - 0xB6, - 0xA9, - 0xA9, - 0xC1, - 0x71, - 0xB6, - 0xC6, - 0xB6, - 0xA9, - 0xB6, - 0xB6, - 0xC2, - 0xC9, - 0xB6, - 0xCD, - 0xC2, - 0xCD, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xB0, - 0xB6, - 0xB6, - 0xCD, - 0xB5, - 0xCD, - 0xCD, - 0xC9, - 0xA1, - 0x8D, - 0xC3, - 0xCB, - 0xAC, - 0x9B, - 0x9B, - 0xB2, - 0x52, - 0x49, - 0x49, - 0x6C, - 0x42, - 0x6F, - 0x2E, - 0x5E, - 0x5B, - 0x5B, - 0x00, - 0x04, - 0x91, - 0x00, - 0x47, - 0x64, - 0x75, - 0x3A, - 0x5A, - 0x5A, - 0x90, - 0x8B, - 0x66, - 0x8B, - 0xBC, - 0x8B, - 0xBC, - 0x5B, - 0x59, - 0x31, - 0x9C, - 0x8E, - 0x8D, - 0xC1, - 0xC6, - 0xA9, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xC2, - 0xB0, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD7, - 0xC7, - 0xC7, - 0xCF, - 0xD9, - 0xC8, - 0xD2, - 0xCD, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB6, - 0xCA, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xCD, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC3, - 0x04, - 0xAA, - 0x00, - 0x0D, - 0x8D, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xC5, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x09, - 0xB1, - 0xC5, - 0xAE, - 0xB1, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0x00, - 0x06, - 0xC5, - 0x07, - 0xBF, - 0x00, - 0x03, - 0xAE, - 0xAE, - 0xBF, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x03, - 0xCE, - 0xB8, - 0xB8, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xC3, - 0xC5, - 0xB8, - 0xC5, - 0xBF, - 0x00, - 0x06, - 0xC5, - 0x00, - 0x0C, - 0xAC, - 0x9B, - 0x5A, - 0x26, - 0x92, - 0x60, - 0x92, - 0x60, - 0x92, - 0x60, - 0x92, - 0x73, - 0x04, - 0xFF, - 0x00, - 0x21, - 0x0A, - 0xFF, - 0xFF, - 0x0F, - 0xFF, - 0xFF, - 0xFF, - 0xF2, - 0x0A, - 0x0A, - 0x0F, - 0x05, - 0x0F, - 0xFF, - 0x05, - 0x0C, - 0x0B, - 0xF8, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x11, - 0xFE, - 0xFE, - 0x13, - 0x12, - 0x12, - 0x01, - 0x00, - 0x00, - 0xF4, - 0x01, - 0x00, - 0x04, - 0x11, - 0x00, - 0x2D, - 0xFA, - 0x0E, - 0xED, - 0x03, - 0x12, - 0x12, - 0x01, - 0x00, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x01, - 0x12, - 0x11, - 0x13, - 0x12, - 0xFE, - 0xDD, - 0xFE, - 0xFE, - 0x13, - 0xFC, - 0xF6, - 0x12, - 0xEF, - 0x02, - 0xF5, - 0x02, - 0xF0, - 0x11, - 0xFA, - 0xFE, - 0x11, - 0x11, - 0xFE, - 0x11, - 0x13, - 0x11, - 0x13, - 0x13, - 0x11, - 0x12, - 0x11, - 0x11, - 0x00, - 0x04, - 0x0D, - 0x05, - 0x0E, - 0x00, - 0x11, - 0x0D, - 0x11, - 0x0E, - 0x03, - 0x03, - 0x11, - 0x11, - 0x13, - 0x13, - 0x12, - 0x01, - 0x01, - 0xF1, - 0x00, - 0xF7, - 0xC1, - 0x71, - 0x00, - 0x04, - 0xC1, - 0x01, - 0xA9, - 0x01, - 0xA9, - 0x04, - 0xB6, - 0x00, - 0x09, - 0xCD, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xA9, - 0xC1, - 0xA9, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x1C, - 0xA9, - 0xC2, - 0xB0, - 0xB6, - 0xC2, - 0xD2, - 0xC8, - 0xD2, - 0xC9, - 0xA1, - 0xA9, - 0xAA, - 0xC3, - 0xC5, - 0xC5, - 0xB1, - 0xB2, - 0x35, - 0xB9, - 0xB9, - 0xB9, - 0x6D, - 0x42, - 0x6F, - 0x5E, - 0x5A, - 0x5A, - 0x75, - 0x05, - 0x91, - 0x00, - 0x05, - 0x75, - 0x5B, - 0x5A, - 0x5B, - 0x8B, - 0x00, - 0x04, - 0xA8, - 0x00, - 0x3C, - 0xBC, - 0xBC, - 0x90, - 0x9A, - 0x6D, - 0x9B, - 0xAA, - 0xC6, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xB5, - 0xCD, - 0xD1, - 0xC8, - 0xD9, - 0xD9, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xCF, - 0xCF, - 0xD1, - 0xCD, - 0xB5, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xCA, - 0xC6, - 0xCA, - 0xC2, - 0xB6, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0xCD, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCD, - 0xB5, - 0xB6, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x12, - 0x9B, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xAC, - 0x04, - 0xC5, - 0x00, - 0x06, - 0xB1, - 0xAE, - 0xC5, - 0xB1, - 0xB1, - 0xAE, - 0x09, - 0xC5, - 0x00, - 0x06, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xB2, - 0xC5, - 0x06, - 0xBF, - 0x07, - 0xC5, - 0x00, - 0x04, - 0xAC, - 0xC5, - 0xC5, - 0xC3, - 0x0C, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x42, - 0x2F, - 0x7B, - 0x05, - 0x60, - 0x01, - 0x73, - 0x01, - 0x85, - 0x04, - 0xFF, - 0x00, - 0x6E, - 0xF2, - 0x0F, - 0xFF, - 0xFF, - 0x05, - 0x0F, - 0xFF, - 0x05, - 0x0F, - 0x0F, - 0x05, - 0x06, - 0x0F, - 0x0F, - 0x05, - 0x0F, - 0x05, - 0x0A, - 0x0B, - 0x0C, - 0x10, - 0x0D, - 0x0E, - 0x13, - 0x13, - 0x12, - 0x12, - 0x01, - 0x00, - 0xF4, - 0xF4, - 0x12, - 0x11, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0x13, - 0xF6, - 0xFC, - 0xF6, - 0xF6, - 0xFC, - 0x01, - 0xF1, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x01, - 0x13, - 0xFE, - 0x12, - 0x12, - 0xEF, - 0x02, - 0xEF, - 0x12, - 0xE4, - 0xF6, - 0xEF, - 0x02, - 0x01, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0x12, - 0xFE, - 0x11, - 0x13, - 0x13, - 0xFE, - 0x13, - 0x13, - 0x13, - 0xFE, - 0x12, - 0x12, - 0x01, - 0x13, - 0x11, - 0x0D, - 0x11, - 0x0D, - 0x0D, - 0x03, - 0x0E, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0x0D, - 0x11, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0x01, - 0x01, - 0x00, - 0xF7, - 0xC6, - 0xA9, - 0x71, - 0x05, - 0xA9, - 0x01, - 0x71, - 0x04, - 0xB6, - 0x01, - 0xCD, - 0x01, - 0xB6, - 0x04, - 0xA9, - 0x04, - 0xC1, - 0x00, - 0x67, - 0xA9, - 0xC6, - 0xB6, - 0xC2, - 0xB5, - 0xB6, - 0xCD, - 0xCD, - 0xC8, - 0xC9, - 0xB0, - 0x80, - 0xAA, - 0xAC, - 0xC5, - 0xB1, - 0xBF, - 0xA4, - 0x86, - 0xB9, - 0xB9, - 0xB9, - 0x4A, - 0x6E, - 0x42, - 0x46, - 0x9A, - 0x5A, - 0x8B, - 0x63, - 0x91, - 0x91, - 0x89, - 0x64, - 0x75, - 0x5B, - 0x66, - 0x66, - 0x75, - 0x75, - 0xBE, - 0xBE, - 0xA8, - 0xBE, - 0x75, - 0x66, - 0x59, - 0x34, - 0xB2, - 0xAC, - 0xC1, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0x8D, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xD2, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xDA, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0xC2, - 0xC2, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xC2, - 0xCD, - 0xB5, - 0xCD, - 0xD2, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xBF, - 0xAC, - 0x8E, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0x00, - 0x04, - 0xAC, - 0x06, - 0xC5, - 0x00, - 0x1A, - 0xBF, - 0xAE, - 0xB1, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0x9B, - 0x9B, - 0xC5, - 0xBF, - 0xC5, - 0xBF, - 0xBF, - 0xA3, - 0xBF, - 0xD4, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0x04, - 0xC5, - 0x01, - 0xB1, - 0x05, - 0xC5, - 0x00, - 0x04, - 0xB8, - 0xC5, - 0xC5, - 0xB1, - 0x07, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x49, - 0x45, - 0x2D, - 0x05, - 0x60, - 0x00, - 0x0D, - 0x95, - 0xEE, - 0xFF, - 0xF2, - 0xFF, - 0x0F, - 0xFF, - 0x0F, - 0x0F, - 0x07, - 0xFF, - 0x07, - 0x07, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x33, - 0x07, - 0x07, - 0x06, - 0x0F, - 0x05, - 0x0F, - 0x05, - 0x05, - 0x0B, - 0x0B, - 0x0D, - 0x0E, - 0x11, - 0x11, - 0x12, - 0x01, - 0x01, - 0xF4, - 0xF4, - 0x01, - 0x11, - 0x0D, - 0x03, - 0x11, - 0x13, - 0x13, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0x01, - 0x02, - 0x01, - 0x01, - 0xF4, - 0xF4, - 0xF4, - 0x13, - 0x11, - 0x03, - 0x11, - 0x13, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0xF5, - 0xEF, - 0xE7, - 0x00, - 0x04, - 0x01, - 0x00, - 0x17, - 0xF1, - 0x12, - 0x13, - 0xF6, - 0x13, - 0x13, - 0x13, - 0xFE, - 0x13, - 0x13, - 0x12, - 0x13, - 0x12, - 0x12, - 0x13, - 0x11, - 0x11, - 0x11, - 0x0D, - 0x03, - 0x0E, - 0x0D, - 0x0E, - 0x00, - 0x05, - 0x0D, - 0x00, - 0x5E, - 0x10, - 0x10, - 0x04, - 0x10, - 0x04, - 0x0D, - 0x0D, - 0x0D, - 0x13, - 0x11, - 0x12, - 0x01, - 0x00, - 0xD3, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0xB6, - 0xB6, - 0xCD, - 0xB6, - 0xCD, - 0x71, - 0xB6, - 0xB6, - 0xB0, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xB0, - 0xA9, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xC9, - 0xA1, - 0xC6, - 0xAA, - 0xCB, - 0x9B, - 0x9B, - 0xB2, - 0xA3, - 0x49, - 0xB9, - 0x4A, - 0x4A, - 0x61, - 0xB9, - 0x74, - 0xBA, - 0x46, - 0x5E, - 0x5A, - 0x5A, - 0x75, - 0x63, - 0x91, - 0x91, - 0x91, - 0x63, - 0x4D, - 0x75, - 0xA8, - 0xBE, - 0x45, - 0xBE, - 0xA7, - 0xBE, - 0xBE, - 0xA8, - 0x90, - 0x9A, - 0x6B, - 0xC5, - 0xAA, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0x04, - 0xC2, - 0x00, - 0x0F, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xDA, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xCF, - 0xD7, - 0xCF, - 0xD1, - 0xCD, - 0xC9, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x07, - 0xB0, - 0xC2, - 0xC6, - 0xC6, - 0xB0, - 0xCA, - 0xCA, - 0x00, - 0x07, - 0xC2, - 0x00, - 0x08, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xB6, - 0xB5, - 0xC9, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0xAE, - 0xB1, - 0xC5, - 0xB1, - 0xAE, - 0x00, - 0x07, - 0xC5, - 0x00, - 0x0F, - 0x9B, - 0xC5, - 0xB1, - 0xBF, - 0xBF, - 0xB1, - 0xD4, - 0xBF, - 0xBF, - 0xB2, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0x00, - 0x08, - 0xC5, - 0x01, - 0xAC, - 0x09, - 0xC5, - 0x00, - 0x08, - 0x9B, - 0xC5, - 0xAD, - 0xAC, - 0xB1, - 0x5B, - 0x8C, - 0x95, - 0x04, - 0x60, - 0x00, - 0x4E, - 0x95, - 0xE5, - 0xFF, - 0xF2, - 0xFF, - 0x0F, - 0x0F, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0x07, - 0x06, - 0x07, - 0x07, - 0x06, - 0x08, - 0x07, - 0x07, - 0x06, - 0x07, - 0x06, - 0x0F, - 0x0F, - 0x0A, - 0xFF, - 0x0C, - 0x0B, - 0x0D, - 0x11, - 0x11, - 0x12, - 0x01, - 0xF4, - 0xF4, - 0xF5, - 0x0D, - 0x10, - 0xFB, - 0x0E, - 0x11, - 0xFA, - 0x13, - 0xF6, - 0x13, - 0xFC, - 0xFC, - 0x02, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0xF4, - 0x01, - 0x0E, - 0x11, - 0x0E, - 0x03, - 0x11, - 0x13, - 0x13, - 0x12, - 0x02, - 0x01, - 0x01, - 0x00, - 0xF1, - 0xF1, - 0x01, - 0x00, - 0x00, - 0xF1, - 0x02, - 0x12, - 0x13, - 0x12, - 0x13, - 0x06, - 0x12, - 0x00, - 0x11, - 0x01, - 0x12, - 0x12, - 0x13, - 0x11, - 0x03, - 0x0E, - 0x03, - 0x0D, - 0xFB, - 0x0D, - 0x10, - 0x0D, - 0x0D, - 0x0D, - 0x04, - 0x10, - 0x00, - 0x04, - 0x04, - 0x00, - 0x03, - 0x10, - 0x0D, - 0x04, - 0x00, - 0x04, - 0x11, - 0x00, - 0x3B, - 0x01, - 0x01, - 0x00, - 0xF4, - 0xDA, - 0xC1, - 0xA9, - 0xC1, - 0xB6, - 0x71, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0x71, - 0xC2, - 0xCD, - 0xB6, - 0xC9, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xA1, - 0xCA, - 0xAA, - 0xAC, - 0xC5, - 0xC5, - 0xBF, - 0xA4, - 0x86, - 0xB9, - 0xA6, - 0x4A, - 0x4A, - 0xA6, - 0x6D, - 0x74, - 0x6F, - 0x5E, - 0x5E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x91, - 0x00, - 0x04, - 0x75, - 0x00, - 0x40, - 0xBE, - 0x45, - 0xA7, - 0xA7, - 0xA7, - 0x45, - 0xA8, - 0xA8, - 0x5E, - 0x34, - 0x7E, - 0xAA, - 0xD3, - 0xA9, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC9, - 0xCD, - 0xC8, - 0xD1, - 0xD9, - 0xCF, - 0xD7, - 0xD7, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB0, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xCD, - 0xB5, - 0xC2, - 0xCD, - 0xB5, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x07, - 0xB2, - 0x7E, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xAC, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x14, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0x8E, - 0x97, - 0x9B, - 0xC5, - 0x9B, - 0xC5, - 0xBF, - 0xB1, - 0xAE, - 0xC5, - 0xB1, - 0x9B, - 0x04, - 0xC5, - 0x00, - 0x10, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xBF, - 0xA3, - 0xB2, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xB1, - 0x07, - 0xC5, - 0x01, - 0xB8, - 0x04, - 0xC5, - 0x01, - 0xAE, - 0x01, - 0xB1, - 0x04, - 0xC5, - 0x00, - 0x58, - 0xAC, - 0x9B, - 0x9B, - 0x46, - 0x1C, - 0x95, - 0x60, - 0x60, - 0x92, - 0x92, - 0x7B, - 0x0F, - 0x0F, - 0xFF, - 0xF2, - 0x07, - 0xEE, - 0x08, - 0x07, - 0xFF, - 0x07, - 0x08, - 0xEE, - 0x07, - 0x08, - 0x07, - 0x08, - 0x06, - 0x08, - 0x06, - 0x08, - 0x07, - 0x0F, - 0x05, - 0xFF, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x11, - 0x12, - 0x01, - 0x01, - 0xF4, - 0x01, - 0x04, - 0xF8, - 0xF3, - 0xFB, - 0xFB, - 0x0E, - 0x03, - 0xFA, - 0x13, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0xFC, - 0x01, - 0x00, - 0x01, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x02, - 0x12, - 0x02, - 0x07, - 0x12, - 0x00, - 0x09, - 0x01, - 0x01, - 0x13, - 0x11, - 0x11, - 0x0E, - 0x03, - 0x0D, - 0x0E, - 0x00, - 0x04, - 0x0D, - 0x01, - 0x0B, - 0x01, - 0x04, - 0x07, - 0x0B, - 0x00, - 0x78, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x11, - 0x11, - 0x13, - 0x01, - 0x00, - 0xD3, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xA9, - 0xC2, - 0xC1, - 0xC1, - 0x78, - 0xB7, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0xC6, - 0xA9, - 0xC2, - 0xB6, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xC8, - 0xC4, - 0xB0, - 0xAA, - 0xC3, - 0xCE, - 0xB1, - 0xBF, - 0xA3, - 0xB9, - 0xB9, - 0x4A, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x4A, - 0x6E, - 0x42, - 0x46, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x91, - 0x63, - 0x63, - 0x91, - 0x91, - 0x91, - 0x64, - 0xA7, - 0xA5, - 0xA7, - 0xD0, - 0xA7, - 0x45, - 0xA8, - 0x8B, - 0x6F, - 0x52, - 0xAC, - 0x8D, - 0xAA, - 0x80, - 0xC6, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB6, - 0xCD, - 0xD1, - 0xC8, - 0xC8, - 0xC7, - 0xD9, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xB0, - 0xC2, - 0xB0, - 0xC2, - 0xC2, - 0xB0, - 0xC6, - 0xC2, - 0xC2, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x08, - 0xC9, - 0xC9, - 0xC2, - 0xC2, - 0xCD, - 0xC2, - 0xCD, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x09, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0xB1, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x51, - 0xAC, - 0xC3, - 0xC5, - 0xC5, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xC5, - 0x9B, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0x9B, - 0xBF, - 0xC5, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0xB1, - 0xAD, - 0xD4, - 0xC5, - 0xAE, - 0xB1, - 0xAE, - 0xBF, - 0xD4, - 0xBF, - 0xBF, - 0xA3, - 0xBF, - 0xBF, - 0xB2, - 0xC5, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0x35, - 0x36, - 0x70, - 0x92, - 0x60, - 0x60, - 0x73, - 0x7B, - 0xF2, - 0xF2, - 0x07, - 0x07, - 0xFD, - 0x08, - 0x07, - 0xF2, - 0x0F, - 0x08, - 0x08, - 0xEE, - 0x00, - 0x05, - 0x08, - 0x00, - 0x37, - 0x07, - 0x08, - 0x08, - 0x07, - 0x07, - 0x0F, - 0x05, - 0xFF, - 0x0A, - 0x0B, - 0x10, - 0x11, - 0x13, - 0x01, - 0x00, - 0x00, - 0x04, - 0xF8, - 0x04, - 0xF8, - 0xF3, - 0x10, - 0xF3, - 0x0E, - 0x03, - 0xFE, - 0xFE, - 0xF6, - 0x13, - 0xFC, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0x13, - 0x0D, - 0x0D, - 0x10, - 0x0D, - 0x11, - 0x11, - 0x11, - 0xFE, - 0x12, - 0x12, - 0x12, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF7, - 0x01, - 0x00, - 0x05, - 0x02, - 0x06, - 0x12, - 0x00, - 0x0F, - 0x01, - 0x01, - 0x12, - 0x12, - 0x13, - 0x11, - 0x11, - 0x03, - 0x0D, - 0x0E, - 0x0D, - 0x04, - 0x11, - 0x04, - 0x04, - 0x00, - 0x08, - 0x0B, - 0x01, - 0x0A, - 0x04, - 0x0B, - 0x00, - 0x1E, - 0x0D, - 0x11, - 0x11, - 0x12, - 0x01, - 0xC6, - 0xA9, - 0xA9, - 0xC1, - 0xB6, - 0x71, - 0xB6, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xB7, - 0xC1, - 0xB7, - 0xC1, - 0xA9, - 0xA9, - 0xB0, - 0xB6, - 0xC2, - 0xC9, - 0xCD, - 0x04, - 0xD2, - 0x00, - 0x0C, - 0xB5, - 0xB5, - 0x8D, - 0x80, - 0x8E, - 0x97, - 0xD4, - 0xA4, - 0x86, - 0xB9, - 0xB9, - 0xA6, - 0x05, - 0x6D, - 0x00, - 0x0E, - 0x42, - 0x6F, - 0x46, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x75, - 0x75, - 0x4D, - 0x75, - 0x91, - 0x45, - 0x45, - 0x04, - 0xA5, - 0x00, - 0x3A, - 0xA7, - 0xBE, - 0x8B, - 0x46, - 0x3B, - 0x8E, - 0x80, - 0x8D, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xA9, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xD1, - 0xCF, - 0xC8, - 0xD9, - 0xD9, - 0xC7, - 0xC8, - 0xC7, - 0xCF, - 0xC8, - 0xCD, - 0xC2, - 0xC9, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB0, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC9, - 0xB5, - 0xCA, - 0xC9, - 0xB5, - 0xB5, - 0xCA, - 0xC9, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x52, - 0xA3, - 0xA3, - 0xB2, - 0xAE, - 0xB1, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0x04, - 0xC3, - 0x00, - 0x1D, - 0xC5, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0xB1, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0xB1, - 0xBF, - 0xC5, - 0xAE, - 0xAE, - 0xC5, - 0xC5, - 0xAE, - 0xC5, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x0A, - 0xA3, - 0xA3, - 0xA3, - 0xBF, - 0xA3, - 0xBF, - 0xBF, - 0xC5, - 0xB1, - 0xAE, - 0x0A, - 0xC5, - 0x00, - 0x5B, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0x9B, - 0x5A, - 0x26, - 0x95, - 0x92, - 0x60, - 0x92, - 0xCC, - 0xF2, - 0x07, - 0x07, - 0xEE, - 0xEE, - 0x07, - 0x0F, - 0xFF, - 0x07, - 0x07, - 0x08, - 0xFD, - 0x08, - 0x08, - 0x14, - 0x08, - 0x14, - 0x14, - 0x08, - 0x08, - 0x08, - 0x06, - 0x06, - 0x0F, - 0xFF, - 0x0A, - 0x0C, - 0x10, - 0x0D, - 0x12, - 0x01, - 0x00, - 0x11, - 0x0A, - 0xF9, - 0x0C, - 0x0C, - 0x0C, - 0xF8, - 0x10, - 0xF3, - 0x0D, - 0x0E, - 0xFA, - 0x13, - 0xF6, - 0x12, - 0x02, - 0x01, - 0x01, - 0xF1, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x10, - 0x0D, - 0x0D, - 0x0E, - 0x11, - 0x13, - 0xFE, - 0x12, - 0x02, - 0x01, - 0x01, - 0xF1, - 0x01, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x02, - 0x01, - 0x00, - 0x04, - 0x02, - 0x00, - 0x14, - 0x12, - 0x02, - 0x12, - 0x12, - 0x01, - 0x01, - 0x12, - 0x13, - 0x11, - 0x11, - 0x0E, - 0x0E, - 0x0D, - 0xFB, - 0x11, - 0x04, - 0x0D, - 0x0B, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x00, - 0x80, - 0x0B, - 0x0B, - 0x0B, - 0x11, - 0x0D, - 0x12, - 0x01, - 0xF4, - 0xA9, - 0xB6, - 0xA9, - 0xB6, - 0x71, - 0xA9, - 0xB6, - 0xC1, - 0xC1, - 0xC1, - 0x78, - 0xB7, - 0xB7, - 0xB7, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0x71, - 0xC2, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xCD, - 0xB6, - 0xB5, - 0xA1, - 0xB5, - 0xA1, - 0xCB, - 0x97, - 0x8E, - 0xB1, - 0x52, - 0xA4, - 0x4A, - 0xB9, - 0x4A, - 0x6D, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x74, - 0x31, - 0x46, - 0x5E, - 0x5A, - 0x5B, - 0x5B, - 0x5B, - 0x75, - 0x66, - 0x91, - 0x45, - 0xA7, - 0xA7, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA7, - 0xA8, - 0x59, - 0x34, - 0xB2, - 0x80, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xCF, - 0xD7, - 0xC7, - 0xD7, - 0xCF, - 0xD9, - 0xC8, - 0xD2, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x52, - 0x86, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xAC, - 0x06, - 0xC3, - 0x00, - 0x03, - 0xB8, - 0xAC, - 0xB8, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x03, - 0xC5, - 0xC5, - 0xAC, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x0E, - 0x9B, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0xAE, - 0x05, - 0xBF, - 0x01, - 0xB2, - 0x01, - 0xA3, - 0x04, - 0xBF, - 0x00, - 0x03, - 0xC5, - 0xC5, - 0xBF, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x07, - 0xAE, - 0xAE, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xAE, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x28, - 0x9B, - 0x6E, - 0x23, - 0x70, - 0x92, - 0x60, - 0x60, - 0xDF, - 0x0F, - 0x07, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0xFF, - 0x07, - 0x07, - 0x07, - 0x08, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x14, - 0xEA, - 0x08, - 0xFD, - 0x14, - 0x08, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0xFF, - 0x0B, - 0x0B, - 0x11, - 0x12, - 0x00, - 0x0E, - 0x05, - 0xF9, - 0x00, - 0x10, - 0xF8, - 0xF8, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0x03, - 0x03, - 0x13, - 0x13, - 0x02, - 0x01, - 0x01, - 0x00, - 0x13, - 0x04, - 0x04, - 0x0B, - 0x00, - 0x07, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x11, - 0x11, - 0x12, - 0x00, - 0x04, - 0x01, - 0x00, - 0x64, - 0x00, - 0xF7, - 0x00, - 0xF1, - 0x01, - 0x02, - 0x02, - 0x01, - 0x02, - 0x01, - 0x02, - 0x02, - 0x02, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0x12, - 0x12, - 0x13, - 0x11, - 0x03, - 0x0E, - 0x0D, - 0xFB, - 0x0D, - 0x0D, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x0B, - 0x05, - 0x0A, - 0x0A, - 0x05, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0x0D, - 0x11, - 0x12, - 0xF0, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0x78, - 0xB7, - 0xB8, - 0x78, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xC2, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB0, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0x80, - 0x80, - 0xCB, - 0x8E, - 0x9B, - 0xBF, - 0xA4, - 0x79, - 0xB9, - 0x4A, - 0x6D, - 0x3B, - 0x6E, - 0x6E, - 0xA6, - 0x6D, - 0x3B, - 0x42, - 0x6F, - 0x2E, - 0x59, - 0x04, - 0x5A, - 0x00, - 0x05, - 0x66, - 0x75, - 0x45, - 0x89, - 0xA7, - 0x00, - 0x04, - 0xAF, - 0x00, - 0x39, - 0xA7, - 0xA8, - 0x8B, - 0x31, - 0x5D, - 0xAC, - 0xC6, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xD2, - 0xC8, - 0xC8, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xCF, - 0xD9, - 0xC8, - 0xD1, - 0xCD, - 0xC9, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC6, - 0xB0, - 0xCA, - 0xC2, - 0xB0, - 0xCA, - 0xC2, - 0xCA, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x79, - 0x79, - 0x52, - 0xA4, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xB1, - 0xC5, - 0xC5, - 0xB1, - 0xC5, - 0x00, - 0x08, - 0xBF, - 0x00, - 0x25, - 0xA3, - 0xBF, - 0xBF, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xBF, - 0xB1, - 0xC5, - 0xC5, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0x9B, - 0x7E, - 0x75, - 0x32, - 0x92, - 0x92, - 0x60, - 0xCC, - 0xE5, - 0x07, - 0x07, - 0x07, - 0xEE, - 0x07, - 0x0F, - 0x07, - 0x00, - 0x04, - 0x08, - 0x00, - 0x19, - 0xFD, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0xFD, - 0xFD, - 0xEE, - 0xFD, - 0x08, - 0x07, - 0x0F, - 0xFF, - 0x0A, - 0x0B, - 0x0D, - 0x12, - 0x12, - 0x13, - 0x0C, - 0x0A, - 0xF9, - 0xFF, - 0xF9, - 0xFF, - 0x00, - 0x04, - 0xF8, - 0x00, - 0x3D, - 0xF3, - 0xFB, - 0xFB, - 0x03, - 0xFE, - 0x13, - 0xFC, - 0x01, - 0x00, - 0x00, - 0x10, - 0x0C, - 0xF9, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0x04, - 0x10, - 0x0E, - 0x0E, - 0x11, - 0x13, - 0x12, - 0x02, - 0x01, - 0x01, - 0x00, - 0x01, - 0x00, - 0xF1, - 0x02, - 0x01, - 0x01, - 0x02, - 0x01, - 0x12, - 0x02, - 0x12, - 0x02, - 0x02, - 0x01, - 0x12, - 0x00, - 0x01, - 0x02, - 0x12, - 0x13, - 0x13, - 0x03, - 0x03, - 0x0D, - 0xFB, - 0x0D, - 0x10, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x08, - 0x05, - 0x00, - 0x80, - 0x0A, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x11, - 0x13, - 0x02, - 0x00, - 0xCD, - 0xC1, - 0xB7, - 0x71, - 0xC1, - 0x71, - 0xB7, - 0xC3, - 0xB7, - 0xB7, - 0xB7, - 0xB8, - 0xB7, - 0xC1, - 0xA9, - 0xA9, - 0x71, - 0xC2, - 0xB6, - 0xC9, - 0xB6, - 0xB5, - 0xA9, - 0x78, - 0xAA, - 0x8E, - 0xB8, - 0xAC, - 0xAC, - 0x8E, - 0x97, - 0x9B, - 0x9B, - 0xD4, - 0xB2, - 0xA4, - 0x79, - 0xB9, - 0x6D, - 0x9D, - 0x3B, - 0x3B, - 0x6E, - 0x6D, - 0x6D, - 0x6C, - 0xBA, - 0x6F, - 0x46, - 0x59, - 0x5E, - 0x5A, - 0x90, - 0x8B, - 0x66, - 0xA8, - 0x89, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0x76, - 0xA5, - 0xA7, - 0x66, - 0x5E, - 0x9D, - 0x9B, - 0x80, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xA9, - 0xC6, - 0xB0, - 0xB6, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xCD, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xCF, - 0xD1, - 0xC9, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xCA, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x15, - 0x49, - 0x79, - 0x35, - 0x52, - 0xA3, - 0x7E, - 0xB2, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xC3, - 0xAA, - 0xAA, - 0xC3, - 0xAA, - 0x80, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0x00, - 0x06, - 0xC3, - 0x04, - 0xAC, - 0x00, - 0x0C, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0x05, - 0xC5, - 0x05, - 0xBF, - 0x01, - 0xA3, - 0x04, - 0xBF, - 0x04, - 0xC5, - 0x00, - 0x5B, - 0xAE, - 0xBF, - 0xBF, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xC5, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0xAD, - 0x34, - 0x7A, - 0x2D, - 0x60, - 0x92, - 0xCC, - 0x0F, - 0xF2, - 0xEE, - 0xFD, - 0x08, - 0xF2, - 0x0F, - 0x08, - 0x08, - 0x14, - 0x08, - 0x08, - 0x08, - 0xFD, - 0x08, - 0xFD, - 0xFD, - 0xEA, - 0xEE, - 0xFD, - 0x08, - 0x07, - 0x08, - 0x0F, - 0xF2, - 0x0A, - 0x0B, - 0x11, - 0x12, - 0x01, - 0x0C, - 0xF9, - 0xF9, - 0xFF, - 0xF9, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0xF3, - 0xF3, - 0x10, - 0x0E, - 0x11, - 0xFE, - 0x12, - 0x01, - 0x01, - 0x13, - 0x0C, - 0x0A, - 0xFF, - 0x0A, - 0x05, - 0xFF, - 0x0C, - 0x0C, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x11, - 0x12, - 0x12, - 0x01, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x05, - 0x01, - 0x00, - 0x18, - 0x02, - 0x01, - 0x02, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0x01, - 0x01, - 0x02, - 0x02, - 0x12, - 0x13, - 0xFA, - 0x11, - 0x0E, - 0x0E, - 0x11, - 0x10, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x04, - 0x05, - 0x00, - 0x04, - 0x06, - 0x05, - 0x05, - 0x06, - 0x04, - 0x05, - 0x00, - 0x22, - 0x0A, - 0x0B, - 0x04, - 0x04, - 0x11, - 0x12, - 0xF4, - 0xF4, - 0xC1, - 0xA9, - 0xC1, - 0x78, - 0xB8, - 0xB7, - 0xB7, - 0xB8, - 0xB8, - 0xB7, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0x71, - 0x71, - 0xB6, - 0xB5, - 0xB6, - 0x71, - 0x80, - 0xAC, - 0xAD, - 0xAE, - 0xBF, - 0x04, - 0x7E, - 0x00, - 0x58, - 0x8E, - 0xB2, - 0xB1, - 0xBF, - 0xA3, - 0x52, - 0xB9, - 0x4A, - 0x4A, - 0x6D, - 0x6E, - 0x6E, - 0x6E, - 0x6D, - 0x4A, - 0x3B, - 0x74, - 0x31, - 0x5E, - 0x46, - 0x9A, - 0x2E, - 0x59, - 0x66, - 0x75, - 0xBE, - 0xA5, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0x59, - 0x42, - 0x7E, - 0xCB, - 0x8D, - 0x80, - 0xB7, - 0xC1, - 0xC6, - 0xA1, - 0xB0, - 0xB0, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0xCF, - 0xD9, - 0xC7, - 0xD9, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xCA, - 0xC6, - 0xC2, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xCA, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x52, - 0x79, - 0x35, - 0x35, - 0xA4, - 0x52, - 0xA3, - 0xB2, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0xC3, - 0xC1, - 0xC1, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xC6, - 0xC1, - 0xC1, - 0xC3, - 0xC1, - 0x06, - 0xC3, - 0x00, - 0x0E, - 0xAA, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0x05, - 0xC5, - 0x00, - 0x2C, - 0xBF, - 0xAE, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0xB1, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0x9B, - 0xAD, - 0xAD, - 0x8E, - 0x52, - 0x90, - 0x26, - 0x70, - 0x92, - 0xDF, - 0x0F, - 0xFD, - 0xFD, - 0xFD, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x07, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x0E, - 0x14, - 0xFD, - 0x08, - 0xEA, - 0x08, - 0x0F, - 0x07, - 0xFF, - 0x0A, - 0x0B, - 0x13, - 0x12, - 0x0B, - 0x0A, - 0x04, - 0xFF, - 0x00, - 0x24, - 0xF9, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0xF8, - 0xFB, - 0x0E, - 0xFA, - 0x13, - 0x12, - 0x01, - 0x00, - 0x04, - 0xFF, - 0xFF, - 0x0A, - 0x05, - 0xF9, - 0x0A, - 0x05, - 0xF9, - 0xF9, - 0x0B, - 0x10, - 0x0D, - 0x11, - 0x13, - 0x13, - 0x12, - 0x01, - 0x00, - 0x01, - 0xF1, - 0x06, - 0x01, - 0x00, - 0x18, - 0xF5, - 0x02, - 0x02, - 0x02, - 0x12, - 0x02, - 0x02, - 0x01, - 0x00, - 0x02, - 0x02, - 0x12, - 0x12, - 0x11, - 0x11, - 0x0E, - 0x03, - 0x0D, - 0x10, - 0x0B, - 0x0B, - 0x0A, - 0x05, - 0x0A, - 0x05, - 0x05, - 0x00, - 0x84, - 0x06, - 0x05, - 0x06, - 0x05, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x11, - 0x11, - 0x01, - 0x00, - 0xC1, - 0x71, - 0xB7, - 0xC1, - 0xC1, - 0x78, - 0xB8, - 0xC1, - 0xB8, - 0x78, - 0xB7, - 0xB7, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xB6, - 0xCD, - 0xB6, - 0xB6, - 0x80, - 0xAC, - 0x9B, - 0x7E, - 0x7E, - 0x9C, - 0x6B, - 0x4A, - 0x4A, - 0x5D, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xB2, - 0xA4, - 0x52, - 0xB9, - 0x6D, - 0x6C, - 0x9D, - 0x6E, - 0x6E, - 0x6E, - 0x6D, - 0x6D, - 0x6C, - 0x42, - 0x34, - 0x6F, - 0x46, - 0x9A, - 0x5E, - 0x90, - 0xA8, - 0x45, - 0xA7, - 0xAF, - 0xA0, - 0xB4, - 0xA0, - 0x76, - 0xA5, - 0xBE, - 0x8B, - 0x46, - 0x5D, - 0x8E, - 0x80, - 0x8D, - 0xC6, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xCD, - 0xC8, - 0xD9, - 0xCF, - 0xD7, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xB5, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xB0, - 0xB0, - 0xC2, - 0xC6, - 0xCA, - 0xB0, - 0xCA, - 0xC9, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x22, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0xB1, - 0x8E, - 0x97, - 0x80, - 0x8D, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xB6, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0x80, - 0x80, - 0x80, - 0xAA, - 0xAA, - 0x04, - 0x8D, - 0x00, - 0x12, - 0xC6, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0x80, - 0xC1, - 0xAA, - 0x80, - 0xAA, - 0xAC, - 0xC3, - 0xAC, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0xAE, - 0x05, - 0xBF, - 0x00, - 0x22, - 0xAE, - 0xC5, - 0xBF, - 0xBF, - 0xC5, - 0xAE, - 0xAE, - 0xBF, - 0xBF, - 0xD4, - 0xBF, - 0xAE, - 0xAE, - 0xC5, - 0xAE, - 0xC5, - 0x8A, - 0x45, - 0x32, - 0x92, - 0xDF, - 0xEE, - 0xFD, - 0xFD, - 0x08, - 0xFF, - 0x07, - 0x08, - 0xFD, - 0x08, - 0xFD, - 0xFD, - 0x08, - 0x14, - 0x06, - 0xFD, - 0x00, - 0x3A, - 0x08, - 0x08, - 0x08, - 0x07, - 0x0F, - 0x05, - 0x0B, - 0x0D, - 0x12, - 0x0D, - 0x0A, - 0xFF, - 0x0A, - 0xFF, - 0xEC, - 0xF9, - 0xF9, - 0xFF, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0x10, - 0x0E, - 0x03, - 0x11, - 0x12, - 0x01, - 0x02, - 0xF9, - 0x0F, - 0xFF, - 0x0F, - 0xFF, - 0x0A, - 0x0A, - 0xFF, - 0x0C, - 0xF8, - 0xF8, - 0xF8, - 0x04, - 0xFB, - 0x11, - 0x13, - 0x12, - 0x01, - 0x00, - 0x01, - 0xF1, - 0x01, - 0x01, - 0xF0, - 0x01, - 0x01, - 0x01, - 0x05, - 0x02, - 0x00, - 0x15, - 0x12, - 0x02, - 0x01, - 0x00, - 0x02, - 0xFC, - 0x02, - 0x12, - 0xFE, - 0x11, - 0x03, - 0x11, - 0x0D, - 0x0D, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x00, - 0x08, - 0x06, - 0x00, - 0x77, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x0B, - 0x11, - 0x11, - 0x01, - 0xC1, - 0x78, - 0xC1, - 0xB7, - 0xB7, - 0xB7, - 0xB8, - 0x78, - 0xB7, - 0xB7, - 0xB8, - 0xB7, - 0x78, - 0xC1, - 0xC1, - 0xA9, - 0x71, - 0xB6, - 0xB6, - 0xB5, - 0x71, - 0x80, - 0x96, - 0x7E, - 0x94, - 0x56, - 0x74, - 0x34, - 0x74, - 0xBA, - 0x88, - 0x6C, - 0xB9, - 0xA4, - 0xB2, - 0xB2, - 0xB1, - 0x35, - 0x35, - 0xB9, - 0x6C, - 0xA6, - 0x3B, - 0x74, - 0x6E, - 0x9D, - 0x6D, - 0x3B, - 0x6C, - 0x42, - 0x74, - 0x42, - 0x6F, - 0x9A, - 0x90, - 0x66, - 0xBE, - 0xA7, - 0xAF, - 0x7F, - 0xB4, - 0x7F, - 0xA0, - 0xAF, - 0xA7, - 0xBC, - 0x2E, - 0x3B, - 0x9B, - 0x8D, - 0xC6, - 0x8D, - 0xC1, - 0xC1, - 0xC6, - 0x71, - 0xCA, - 0xC2, - 0xB0, - 0xC2, - 0xCA, - 0xB5, - 0xC9, - 0xCD, - 0xD2, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xC7, - 0xD9, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xCA, - 0xB0, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x04, - 0xB5, - 0xB6, - 0xB5, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x52, - 0xA3, - 0xB2, - 0x7E, - 0xBF, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xD2, - 0xCD, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB0, - 0xCA, - 0xB0, - 0xB0, - 0xCA, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0xB7, - 0xAC, - 0xAC, - 0xC5, - 0xAE, - 0xAE, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x1C, - 0xC5, - 0xAE, - 0xBF, - 0xC5, - 0xB1, - 0xAE, - 0xBF, - 0x8F, - 0xBF, - 0xBF, - 0xC5, - 0xBF, - 0xC5, - 0xB1, - 0x9B, - 0x31, - 0x23, - 0x8C, - 0xCC, - 0xEE, - 0xFD, - 0xFD, - 0x0F, - 0x0F, - 0x08, - 0x08, - 0xFD, - 0x14, - 0x0A, - 0xFD, - 0x00, - 0x0B, - 0xEA, - 0x08, - 0xEE, - 0x07, - 0xFF, - 0x0A, - 0x10, - 0x13, - 0x13, - 0x0A, - 0x0A, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x2C, - 0xF9, - 0xF9, - 0xFF, - 0xF9, - 0xF8, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0x0E, - 0x11, - 0x13, - 0x02, - 0x01, - 0x0E, - 0xFF, - 0x0F, - 0xF2, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0x04, - 0x10, - 0x0E, - 0x0E, - 0x11, - 0xFA, - 0x13, - 0x01, - 0x01, - 0xF1, - 0xF1, - 0xF0, - 0xF0, - 0x01, - 0xE3, - 0x01, - 0x01, - 0x01, - 0xF5, - 0x05, - 0x02, - 0x00, - 0x11, - 0x01, - 0xF1, - 0x02, - 0x02, - 0x12, - 0xFC, - 0xFC, - 0x13, - 0x11, - 0x03, - 0x0D, - 0x04, - 0x0B, - 0x0B, - 0x0B, - 0x05, - 0x05, - 0x00, - 0x0B, - 0x06, - 0x00, - 0x0D, - 0x0A, - 0x05, - 0x0B, - 0x0B, - 0x0D, - 0x11, - 0x02, - 0xA9, - 0xC1, - 0x78, - 0xB7, - 0x78, - 0xB7, - 0x00, - 0x04, - 0xB8, - 0x00, - 0x44, - 0xB7, - 0xB7, - 0xB7, - 0x78, - 0xA9, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0x71, - 0xB0, - 0x97, - 0x99, - 0x94, - 0x56, - 0x34, - 0x33, - 0x2E, - 0x5E, - 0x2E, - 0x9A, - 0x31, - 0x56, - 0x6B, - 0x52, - 0x52, - 0x52, - 0xB1, - 0xA4, - 0xB9, - 0xB9, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x74, - 0x6E, - 0x3B, - 0x6C, - 0x56, - 0x6C, - 0x74, - 0x74, - 0x46, - 0x5E, - 0x8B, - 0xBE, - 0xA7, - 0xAF, - 0xB4, - 0xB4, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0x42, - 0xB2, - 0xAC, - 0x8D, - 0x8D, - 0xC1, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xCA, - 0x04, - 0xB5, - 0x00, - 0x12, - 0xCA, - 0xB5, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xCF, - 0xC8, - 0xD1, - 0xC9, - 0xC9, - 0xB5, - 0x06, - 0xC2, - 0x01, - 0xC6, - 0x04, - 0xC2, - 0x00, - 0x08, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xCD, - 0xCA, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x15, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x79, - 0x52, - 0x52, - 0xB2, - 0xAE, - 0xC5, - 0x8E, - 0xAC, - 0x80, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x06, - 0xC9, - 0xC4, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0x06, - 0xA1, - 0x00, - 0x1F, - 0xC2, - 0xB5, - 0xC2, - 0xA1, - 0xB5, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xCA, - 0x8D, - 0xB0, - 0xC6, - 0xAA, - 0xC3, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0x00, - 0x06, - 0xBF, - 0x00, - 0x15, - 0xAE, - 0xD4, - 0xC5, - 0xC5, - 0x8E, - 0x46, - 0x23, - 0xE9, - 0x07, - 0xFD, - 0x07, - 0x0F, - 0x0F, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x08, - 0x14, - 0x00, - 0x07, - 0xFD, - 0x00, - 0x23, - 0x08, - 0x07, - 0x0F, - 0xFF, - 0x0C, - 0x0D, - 0x13, - 0x0B, - 0x05, - 0x0A, - 0xFF, - 0xF9, - 0xFF, - 0xF9, - 0xF9, - 0xFF, - 0xF9, - 0xF8, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0x11, - 0x13, - 0x02, - 0xF0, - 0x0C, - 0x0F, - 0x0F, - 0x07, - 0xF2, - 0x0F, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x2C, - 0xF8, - 0xF8, - 0x10, - 0x10, - 0x0E, - 0x11, - 0x13, - 0x12, - 0x02, - 0xF1, - 0xF1, - 0xF0, - 0xF0, - 0x01, - 0xF0, - 0x01, - 0x01, - 0x01, - 0xF5, - 0xF5, - 0x02, - 0x01, - 0x02, - 0x12, - 0x01, - 0x02, - 0xF1, - 0x01, - 0xFC, - 0x02, - 0x02, - 0x12, - 0xF6, - 0xFE, - 0x11, - 0x0D, - 0x0D, - 0x04, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x08, - 0x06, - 0x00, - 0x0D, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x11, - 0x02, - 0x78, - 0xC3, - 0x78, - 0x78, - 0xB7, - 0x00, - 0x07, - 0xB8, - 0x00, - 0x57, - 0xC1, - 0xC1, - 0xC1, - 0xA9, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0x78, - 0xAC, - 0x7E, - 0x98, - 0x42, - 0x4E, - 0x59, - 0x90, - 0x5A, - 0x5A, - 0x59, - 0x46, - 0x46, - 0x74, - 0x6B, - 0x52, - 0x52, - 0xB1, - 0x52, - 0x52, - 0x49, - 0xB9, - 0xA6, - 0x3B, - 0x6E, - 0x74, - 0xDC, - 0x6E, - 0x6D, - 0x6B, - 0x8A, - 0x56, - 0x3B, - 0xBA, - 0x5E, - 0x90, - 0xA8, - 0xA7, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0xAF, - 0xBE, - 0x90, - 0x6F, - 0x5D, - 0x9B, - 0x80, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0xC2, - 0xC6, - 0xCA, - 0xC2, - 0xC2, - 0xCA, - 0xB5, - 0xCD, - 0xC2, - 0xC9, - 0xCD, - 0xD1, - 0xCF, - 0xCF, - 0xD7, - 0xD9, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xDA, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x10, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xCA, - 0xB5, - 0xB5, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x79, - 0x79, - 0x49, - 0x86, - 0x79, - 0x79, - 0x86, - 0x52, - 0x52, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xB0, - 0xA1, - 0xB5, - 0xB5, - 0xCD, - 0xC9, - 0xC4, - 0xC4, - 0xC4, - 0xDA, - 0xC4, - 0xCF, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x24, - 0xC9, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0x8D, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0x9B, - 0xB1, - 0xC5, - 0x04, - 0xBF, - 0x00, - 0x10, - 0x8F, - 0xB2, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xC5, - 0x9B, - 0x7E, - 0x31, - 0xD8, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x07, - 0x04, - 0x08, - 0x00, - 0x03, - 0xFD, - 0x14, - 0x08, - 0x00, - 0x07, - 0xFD, - 0x00, - 0x0D, - 0x08, - 0x07, - 0x08, - 0x0F, - 0x0A, - 0x0B, - 0x11, - 0x04, - 0x0A, - 0x0A, - 0xFF, - 0x0A, - 0xFF, - 0x00, - 0x05, - 0xF9, - 0x05, - 0xF8, - 0x00, - 0x26, - 0xF3, - 0x10, - 0x03, - 0x03, - 0x13, - 0x02, - 0x13, - 0x05, - 0x0F, - 0x07, - 0xF2, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0x10, - 0x0E, - 0x03, - 0x13, - 0x02, - 0x01, - 0x01, - 0xF1, - 0xF0, - 0x01, - 0xF0, - 0x01, - 0xF0, - 0xF0, - 0x01, - 0xF5, - 0x02, - 0xF5, - 0x04, - 0x02, - 0x00, - 0x12, - 0x01, - 0xF1, - 0xF0, - 0x02, - 0xFC, - 0xFC, - 0x02, - 0xFC, - 0x13, - 0x11, - 0x0D, - 0x04, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x05, - 0x05, - 0x08, - 0x06, - 0x00, - 0x60, - 0x05, - 0x06, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x10, - 0x11, - 0xF5, - 0xB7, - 0x78, - 0xC3, - 0xB8, - 0xB8, - 0x78, - 0xB8, - 0xB8, - 0xC3, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0x71, - 0xB0, - 0xB6, - 0xB6, - 0xA1, - 0x78, - 0x96, - 0x99, - 0x7D, - 0x72, - 0x59, - 0x5A, - 0x4D, - 0x75, - 0x66, - 0x4D, - 0x90, - 0x2E, - 0x31, - 0x42, - 0x49, - 0x52, - 0xB2, - 0x7E, - 0x35, - 0x86, - 0xB9, - 0x4A, - 0xA6, - 0x3B, - 0x9D, - 0x74, - 0x6E, - 0x3B, - 0x6C, - 0xB9, - 0x49, - 0x6C, - 0xBA, - 0x9A, - 0x8B, - 0xA8, - 0xBE, - 0xAF, - 0xB4, - 0xAB, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xA7, - 0xA8, - 0x5E, - 0x6E, - 0x9B, - 0x80, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xCD, - 0xD1, - 0x04, - 0xCF, - 0x00, - 0x10, - 0xC7, - 0xC7, - 0xD7, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xCA, - 0xB5, - 0xC2, - 0xCA, - 0xCA, - 0x04, - 0xC2, - 0x00, - 0x08, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xCA, - 0xC2, - 0xB5, - 0x00, - 0x00, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x19, - 0x79, - 0x79, - 0x52, - 0xB2, - 0xB2, - 0x7E, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0x80, - 0xB0, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC4, - 0xC8, - 0xC4, - 0xDA, - 0xCF, - 0xDA, - 0xDA, - 0xCF, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x14, - 0xC9, - 0xD2, - 0xC4, - 0xC9, - 0xC4, - 0xB5, - 0xD2, - 0xCD, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0x04, - 0xA1, - 0x00, - 0x07, - 0xC6, - 0xB0, - 0xC1, - 0xAA, - 0xC3, - 0xB8, - 0xB8, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x03, - 0xAE, - 0xD4, - 0xAE, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x0B, - 0xAE, - 0x9B, - 0x8E, - 0x52, - 0xE4, - 0x0F, - 0x08, - 0x0F, - 0x06, - 0x08, - 0x14, - 0x00, - 0x0D, - 0xFD, - 0x00, - 0x0C, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0x0C, - 0x04, - 0x11, - 0xFF, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0x06, - 0xF9, - 0x00, - 0x2A, - 0x0C, - 0xF9, - 0xF8, - 0x0C, - 0xF3, - 0x04, - 0x10, - 0x0E, - 0x11, - 0x13, - 0x01, - 0xFB, - 0x0F, - 0xF2, - 0x07, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF9, - 0xF8, - 0xF3, - 0x0D, - 0x11, - 0xFE, - 0x12, - 0xF5, - 0xF1, - 0x01, - 0xF0, - 0xF0, - 0xF1, - 0x01, - 0xF0, - 0xF0, - 0xF0, - 0x01, - 0x01, - 0x04, - 0x02, - 0x00, - 0x17, - 0xE7, - 0x02, - 0xF1, - 0xF0, - 0xEF, - 0xFC, - 0x02, - 0x01, - 0x02, - 0xFC, - 0xFE, - 0x0D, - 0x0D, - 0x04, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x06, - 0x06, - 0x05, - 0x00, - 0x05, - 0x06, - 0x00, - 0x6C, - 0x05, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x10, - 0x11, - 0xE3, - 0xC1, - 0xB8, - 0xB8, - 0xB8, - 0x97, - 0xB7, - 0xB8, - 0xB8, - 0xB8, - 0x97, - 0xB7, - 0xC3, - 0x78, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0x71, - 0xB6, - 0x71, - 0x78, - 0xAE, - 0x68, - 0x57, - 0x4E, - 0x5A, - 0x5B, - 0x91, - 0x45, - 0x91, - 0x91, - 0x91, - 0x5B, - 0x5E, - 0x31, - 0x74, - 0x49, - 0x35, - 0xB2, - 0x8E, - 0xA4, - 0x79, - 0xB9, - 0x4A, - 0x6D, - 0x6D, - 0x3B, - 0x74, - 0xDC, - 0x3B, - 0x6B, - 0x35, - 0x6B, - 0xBA, - 0x6F, - 0x90, - 0xA8, - 0xD8, - 0xAF, - 0xAB, - 0xAB, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xBE, - 0xB3, - 0x42, - 0x7E, - 0x8E, - 0xC6, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xB0, - 0xCA, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xCD, - 0xC9, - 0xB6, - 0xCD, - 0xC8, - 0xC8, - 0xDA, - 0xDA, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xDA, - 0xCF, - 0xC8, - 0xD1, - 0xCD, - 0x06, - 0xC2, - 0x00, - 0x04, - 0xCA, - 0xC2, - 0xB5, - 0xCA, - 0x06, - 0xC2, - 0x00, - 0x03, - 0xB5, - 0xC2, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x13, - 0x79, - 0xA4, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0xA9, - 0xB0, - 0xB5, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x09, - 0xDA, - 0xC4, - 0xD9, - 0xDA, - 0xCF, - 0xDA, - 0xCF, - 0xC4, - 0xCF, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x08, - 0xD2, - 0xD2, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0x06, - 0xB0, - 0x00, - 0x23, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xC6, - 0xC6, - 0x8D, - 0x80, - 0xB7, - 0xC3, - 0xB8, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xAE, - 0x7E, - 0xBF, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0x97, - 0x6F, - 0x07, - 0x07, - 0x07, - 0x08, - 0x08, - 0x08, - 0x14, - 0xFD, - 0x14, - 0x14, - 0x00, - 0x08, - 0xFD, - 0x00, - 0x12, - 0xEE, - 0x08, - 0x07, - 0x0F, - 0xFF, - 0x0C, - 0x0D, - 0x0A, - 0x05, - 0xFF, - 0x05, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x0C, - 0x06, - 0xF8, - 0x00, - 0xAA, - 0xF3, - 0x10, - 0x03, - 0xFE, - 0x12, - 0x01, - 0xFF, - 0x0F, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x05, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0x10, - 0xFB, - 0x03, - 0x13, - 0x02, - 0xF5, - 0xF0, - 0xF1, - 0xF0, - 0x01, - 0x01, - 0xF1, - 0x01, - 0xF0, - 0xF5, - 0xF0, - 0x01, - 0xE7, - 0x01, - 0x02, - 0x02, - 0x02, - 0xF5, - 0x01, - 0xF0, - 0x02, - 0xEF, - 0xE7, - 0xE7, - 0xF5, - 0xFC, - 0xFC, - 0x11, - 0x0D, - 0x0B, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x06, - 0x05, - 0x06, - 0x06, - 0x06, - 0x05, - 0x05, - 0x06, - 0x05, - 0x05, - 0x0A, - 0x04, - 0x0D, - 0x11, - 0xD3, - 0xB8, - 0x78, - 0xB8, - 0xB8, - 0xB8, - 0x96, - 0xB8, - 0x97, - 0x97, - 0xB7, - 0x97, - 0x78, - 0xC1, - 0xA9, - 0xC1, - 0x71, - 0xC2, - 0xCD, - 0xB6, - 0xA9, - 0x78, - 0xAD, - 0x7E, - 0x57, - 0x46, - 0x5A, - 0x75, - 0x91, - 0x89, - 0x89, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x59, - 0x31, - 0x42, - 0x35, - 0x35, - 0xA4, - 0x7E, - 0xA3, - 0x86, - 0xB9, - 0x4A, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x6D, - 0x6D, - 0x6B, - 0x4A, - 0x42, - 0x9A, - 0x90, - 0xA8, - 0xA7, - 0xA0, - 0xBD, - 0x9F, - 0x9F, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xBE, - 0x8B, - 0x9A, - 0x4A, - 0x8E, - 0xAA, - 0xC1, - 0xC1, - 0xC6, - 0xA9, - 0xB0, - 0xC2, - 0xB0, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0x04, - 0xD9, - 0x00, - 0x16, - 0xC8, - 0xCD, - 0xCD, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x03, - 0x35, - 0x79, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x20, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0xC1, - 0xB0, - 0xB6, - 0xB5, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xDA, - 0xC4, - 0xDA, - 0xDA, - 0xCF, - 0xC4, - 0xDA, - 0xD9, - 0xC4, - 0xD9, - 0xC4, - 0xC4, - 0xCF, - 0x04, - 0xC4, - 0x00, - 0x2B, - 0xC9, - 0xCD, - 0xC9, - 0xC9, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0x8D, - 0xAA, - 0xC3, - 0xB8, - 0xAC, - 0xC5, - 0xAE, - 0xC5, - 0xC5, - 0xC5, - 0x8E, - 0xE4, - 0x0F, - 0x0F, - 0x07, - 0x08, - 0x14, - 0x00, - 0x0E, - 0xFD, - 0x00, - 0x10, - 0x08, - 0x07, - 0x0F, - 0x0A, - 0x04, - 0x0B, - 0x0A, - 0xFF, - 0x0F, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0xF9, - 0x07, - 0xF8, - 0x00, - 0x07, - 0x10, - 0xFB, - 0x0E, - 0x13, - 0x12, - 0x11, - 0xF2, - 0x00, - 0x05, - 0x07, - 0x00, - 0x13, - 0xF2, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0xF3, - 0x0D, - 0x03, - 0x13, - 0xFC, - 0x01, - 0xF0, - 0xF1, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x1E, - 0xF5, - 0xF5, - 0x01, - 0xE7, - 0xE7, - 0xEF, - 0x02, - 0x02, - 0xE3, - 0x01, - 0xE7, - 0xEF, - 0x12, - 0xF5, - 0xE7, - 0xEF, - 0xFC, - 0x13, - 0x0D, - 0x04, - 0x0B, - 0x0A, - 0x0B, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x06, - 0x06, - 0x05, - 0x04, - 0x06, - 0x00, - 0x25, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x0B, - 0x0E, - 0x13, - 0x78, - 0xB7, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xB8, - 0x97, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0x71, - 0x71, - 0xB6, - 0xB6, - 0xA1, - 0xB7, - 0x96, - 0x8F, - 0x69, - 0x46, - 0x5A, - 0x63, - 0x91, - 0x5F, - 0x00, - 0x04, - 0x89, - 0x00, - 0x30, - 0x91, - 0x90, - 0x5E, - 0x31, - 0x74, - 0x49, - 0x35, - 0xA4, - 0x7E, - 0xA4, - 0xB9, - 0xB9, - 0xA6, - 0x6D, - 0x9D, - 0x74, - 0x6E, - 0x3B, - 0x74, - 0x6E, - 0x74, - 0x9A, - 0xBB, - 0xBC, - 0xD0, - 0xAF, - 0xB4, - 0x9F, - 0x9F, - 0xD5, - 0x9F, - 0xAB, - 0xAF, - 0xA7, - 0x8B, - 0x9A, - 0x3B, - 0xAE, - 0xAC, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xC1, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0x06, - 0xB5, - 0x00, - 0x20, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xD9, - 0xC7, - 0xD9, - 0xCF, - 0xC8, - 0xCD, - 0xB6, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xCD, - 0xC9, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x58, - 0x79, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x52, - 0x52, - 0xB2, - 0xA3, - 0xB2, - 0x9B, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xC3, - 0xC3, - 0x8D, - 0xB0, - 0xA1, - 0xC9, - 0xCD, - 0xC9, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xCF, - 0xD9, - 0xC4, - 0xCF, - 0xCF, - 0xC4, - 0xDA, - 0xC4, - 0xDA, - 0xCF, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC9, - 0xC9, - 0xB6, - 0xB6, - 0xA1, - 0xB0, - 0xA9, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xC1, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0x96, - 0xE4, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x08, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x3F, - 0x14, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0xDF, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0x0C, - 0x0B, - 0x0A, - 0x0F, - 0x0F, - 0x05, - 0xFF, - 0x0A, - 0x0A, - 0x0C, - 0x0C, - 0x0C, - 0xF8, - 0x0B, - 0xF8, - 0xF8, - 0x04, - 0xF3, - 0x04, - 0xF3, - 0xF3, - 0x0E, - 0x03, - 0x13, - 0x01, - 0x0C, - 0x0F, - 0x07, - 0xEE, - 0x07, - 0xEE, - 0xF2, - 0xF2, - 0x0F, - 0xE9, - 0xFF, - 0xFF, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0x0D, - 0x03, - 0xFE, - 0x02, - 0xF5, - 0xF0, - 0xE3, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x19, - 0xF5, - 0xF0, - 0x02, - 0x01, - 0x02, - 0x02, - 0xE7, - 0xE7, - 0x01, - 0xF0, - 0xEF, - 0xDC, - 0x02, - 0xE7, - 0xF5, - 0xF5, - 0xEF, - 0x12, - 0x11, - 0x0D, - 0x04, - 0x0B, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x0B, - 0x05, - 0x00, - 0x16, - 0x0A, - 0x0A, - 0x04, - 0x11, - 0xC5, - 0xB8, - 0x96, - 0xC3, - 0xB7, - 0x96, - 0xB8, - 0xB8, - 0x96, - 0x78, - 0xC3, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0xA9, - 0x04, - 0xB6, - 0x00, - 0x41, - 0x78, - 0x96, - 0x8F, - 0x7D, - 0x33, - 0x5A, - 0x75, - 0x89, - 0x89, - 0x5F, - 0x4F, - 0x89, - 0x89, - 0x91, - 0x91, - 0x5B, - 0x5E, - 0x42, - 0x3B, - 0x35, - 0x52, - 0xA4, - 0xB2, - 0xA3, - 0x86, - 0x8A, - 0xA6, - 0xA6, - 0x6D, - 0x3B, - 0x3B, - 0x6E, - 0xBA, - 0xBA, - 0x9A, - 0xBB, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x9F, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xBC, - 0x59, - 0x74, - 0x52, - 0xAA, - 0xCA, - 0x80, - 0x8D, - 0xA9, - 0xC1, - 0xCA, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1E, - 0xD1, - 0xCF, - 0xD9, - 0xD9, - 0xD9, - 0xC7, - 0xD9, - 0xD7, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xD2, - 0xCD, - 0xB5, - 0xCD, - 0xB5, - 0xC9, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xB5, - 0xCD, - 0xD2, - 0xCD, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x52, - 0x52, - 0xB2, - 0xBF, - 0x7E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x0D, - 0x8E, - 0x97, - 0xAA, - 0xC6, - 0xB0, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xD2, - 0xD2, - 0xC4, - 0xD2, - 0x00, - 0x08, - 0xC4, - 0x04, - 0xD2, - 0x00, - 0x2E, - 0xC9, - 0xB5, - 0xB6, - 0xB6, - 0xB0, - 0xC6, - 0xC1, - 0xC6, - 0xC6, - 0xAA, - 0x8D, - 0xC1, - 0x8D, - 0xC6, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB6, - 0xC9, - 0xB6, - 0xB5, - 0xC9, - 0xC9, - 0xE0, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0x71, - 0xC6, - 0xC1, - 0xCB, - 0xE4, - 0x07, - 0x0F, - 0x08, - 0x14, - 0x14, - 0x14, - 0xFD, - 0x14, - 0x14, - 0x08, - 0xFD, - 0x00, - 0x34, - 0x14, - 0x14, - 0x07, - 0x07, - 0x0A, - 0x0B, - 0x0A, - 0x05, - 0x0F, - 0x06, - 0x05, - 0x0F, - 0xFF, - 0x0A, - 0x0C, - 0x0C, - 0x0B, - 0x04, - 0xF8, - 0xF8, - 0xF8, - 0x04, - 0xF8, - 0xF3, - 0x10, - 0x10, - 0x0E, - 0x11, - 0x13, - 0x12, - 0xFF, - 0x06, - 0xEE, - 0xEE, - 0xEE, - 0x08, - 0x07, - 0x0F, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF8, - 0xF3, - 0xFB, - 0x03, - 0x13, - 0xFC, - 0xF5, - 0xF0, - 0x05, - 0xF1, - 0x00, - 0x1D, - 0xF0, - 0xF0, - 0xF0, - 0x01, - 0xE7, - 0x01, - 0xE7, - 0x02, - 0xE7, - 0x02, - 0x02, - 0xE3, - 0xF0, - 0xE7, - 0xEF, - 0xEF, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE3, - 0xD4, - 0x11, - 0xFB, - 0x0B, - 0x0B, - 0x0B, - 0x0A, - 0x0A, - 0x00, - 0x09, - 0x05, - 0x00, - 0x6C, - 0x0A, - 0x0C, - 0x04, - 0x03, - 0xE7, - 0x78, - 0x96, - 0xB8, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xB7, - 0x96, - 0x78, - 0xB7, - 0xB8, - 0x78, - 0xC1, - 0xB7, - 0xC1, - 0xB0, - 0x71, - 0xCD, - 0xB6, - 0x71, - 0xAA, - 0x97, - 0x7E, - 0x6C, - 0x4E, - 0x39, - 0x75, - 0x91, - 0x89, - 0x89, - 0x5F, - 0x5F, - 0x4F, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x2E, - 0x42, - 0x3B, - 0x79, - 0x52, - 0xA4, - 0xB1, - 0x35, - 0x35, - 0x4A, - 0x6C, - 0x6D, - 0x6E, - 0x6E, - 0xBA, - 0x6F, - 0x6F, - 0xB3, - 0xBB, - 0xBE, - 0xA7, - 0xA0, - 0xB4, - 0x9F, - 0x8C, - 0x8C, - 0x8C, - 0xAB, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0x6F, - 0x5D, - 0x9B, - 0x80, - 0xC6, - 0xAA, - 0xC1, - 0xC1, - 0xB0, - 0xC6, - 0xC2, - 0xB5, - 0xCA, - 0xC9, - 0xC2, - 0xC9, - 0xC2, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xC7, - 0xD7, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0x05, - 0xCD, - 0x00, - 0x08, - 0xB5, - 0xB5, - 0xC9, - 0xCD, - 0xCD, - 0xB5, - 0xCD, - 0xC9, - 0x05, - 0xCD, - 0x00, - 0x00, - 0x07, - 0x35, - 0x00, - 0x18, - 0x79, - 0x79, - 0x79, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xB2, - 0x52, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xAC, - 0xC3, - 0xC1, - 0xC6, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xCD, - 0x04, - 0xC9, - 0x00, - 0x1E, - 0xD2, - 0xD2, - 0xD1, - 0xD2, - 0xD1, - 0xD2, - 0xC9, - 0xC4, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xB6, - 0x71, - 0xB0, - 0xC6, - 0xC1, - 0x8D, - 0xAA, - 0xAA, - 0xC1, - 0xC1, - 0xC6, - 0xB0, - 0x8D, - 0x71, - 0xB5, - 0xA1, - 0xB6, - 0xC9, - 0x04, - 0xB5, - 0x00, - 0x15, - 0xB6, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xA1, - 0xE4, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0x00, - 0x0A, - 0xFD, - 0x00, - 0x06, - 0x08, - 0x07, - 0x0F, - 0x0A, - 0x0B, - 0x05, - 0x04, - 0x0F, - 0x00, - 0x14, - 0x05, - 0x0A, - 0x05, - 0x0A, - 0x0C, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x0B, - 0xF8, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x0D, - 0x11, - 0x12, - 0x0E, - 0x07, - 0x04, - 0x08, - 0x00, - 0x33, - 0xEE, - 0x07, - 0xF2, - 0x0F, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0x0C, - 0xF8, - 0xF3, - 0xFB, - 0x03, - 0xFE, - 0xFC, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF0, - 0xF1, - 0xE3, - 0xF0, - 0xF0, - 0xF0, - 0xE3, - 0xF0, - 0xE7, - 0x01, - 0xF5, - 0xEF, - 0xE7, - 0xEF, - 0xF5, - 0xF0, - 0xE7, - 0xE7, - 0xEF, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0x96, - 0x96, - 0xA2, - 0x11, - 0xFB, - 0x0B, - 0x0A, - 0x0B, - 0x0C, - 0x00, - 0x05, - 0x0A, - 0x00, - 0x19, - 0x05, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x10, - 0x03, - 0xA4, - 0x78, - 0xAD, - 0xB8, - 0x96, - 0xAD, - 0xB8, - 0x96, - 0xAD, - 0xB8, - 0x96, - 0xB8, - 0xB8, - 0xB8, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x65, - 0xCD, - 0xC9, - 0x71, - 0xAC, - 0xA2, - 0x8A, - 0x42, - 0xB3, - 0x5B, - 0x91, - 0x89, - 0x89, - 0x5F, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x66, - 0x59, - 0x2E, - 0x34, - 0x6C, - 0x52, - 0x52, - 0xB2, - 0x52, - 0xA4, - 0x49, - 0xB9, - 0x6D, - 0x6D, - 0x3B, - 0x6E, - 0x6F, - 0x9A, - 0xBB, - 0xBC, - 0xA8, - 0xAF, - 0xBD, - 0xAB, - 0xD5, - 0x8C, - 0xD5, - 0x9F, - 0xAB, - 0xB4, - 0xA0, - 0xA7, - 0xBB, - 0x9A, - 0x6C, - 0x9B, - 0xAA, - 0xC1, - 0xC1, - 0x8D, - 0xC1, - 0xC6, - 0xC6, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xC2, - 0xC9, - 0xB5, - 0xB6, - 0xCD, - 0xD1, - 0xCF, - 0xCF, - 0xD9, - 0xD9, - 0xD7, - 0xC7, - 0xD9, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xD2, - 0xCD, - 0xC9, - 0xB6, - 0xD2, - 0xB5, - 0xCD, - 0xCD, - 0xD2, - 0xCD, - 0xCD, - 0xC9, - 0xC9, - 0xD1, - 0xD1, - 0xD2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x35, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x1E, - 0x79, - 0x35, - 0x35, - 0x49, - 0x86, - 0x86, - 0x52, - 0xA4, - 0xB2, - 0xA3, - 0xB2, - 0x7E, - 0xB1, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0x80, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0x04, - 0xC9, - 0x00, - 0x15, - 0xCD, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0x8D, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xA1, - 0xB6, - 0x00, - 0x04, - 0xB5, - 0x01, - 0xA1, - 0x04, - 0xB5, - 0x00, - 0x05, - 0xC9, - 0xC9, - 0xB5, - 0xA1, - 0xC9, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x0C, - 0x80, - 0xE4, - 0x0F, - 0x07, - 0x08, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x39, - 0xDF, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x07, - 0x05, - 0x0C, - 0x04, - 0x0F, - 0x06, - 0x06, - 0x06, - 0x07, - 0x06, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x0C, - 0x0C, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x10, - 0x04, - 0x10, - 0x0E, - 0x11, - 0x11, - 0x01, - 0x05, - 0x07, - 0x08, - 0x08, - 0x08, - 0xEA, - 0xEE, - 0xEE, - 0x08, - 0x0F, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0xFB, - 0x0E, - 0xFE, - 0x02, - 0xF5, - 0xF0, - 0xD4, - 0xD4, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x91, - 0xE3, - 0xE3, - 0xF5, - 0xF0, - 0xE7, - 0xF5, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xE7, - 0xE7, - 0xDC, - 0xE7, - 0xE7, - 0xE3, - 0xBF, - 0x78, - 0x96, - 0x96, - 0x96, - 0xFC, - 0x0E, - 0x04, - 0x0B, - 0x0A, - 0x0C, - 0x0B, - 0x0A, - 0x0A, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x0D, - 0xFA, - 0xE7, - 0xB8, - 0xB8, - 0xB8, - 0x96, - 0x96, - 0xB8, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xAD, - 0x78, - 0x97, - 0x97, - 0x78, - 0xC3, - 0x78, - 0x71, - 0xA9, - 0xB6, - 0xB6, - 0xB6, - 0x71, - 0x8D, - 0x97, - 0x9B, - 0x9C, - 0x88, - 0x46, - 0x5A, - 0x4D, - 0xBE, - 0x89, - 0x36, - 0x89, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x4D, - 0x5A, - 0x46, - 0x34, - 0x4A, - 0x52, - 0x52, - 0x52, - 0xB2, - 0x86, - 0x79, - 0xB9, - 0x6C, - 0xA6, - 0x42, - 0xBA, - 0xB3, - 0xBB, - 0xA8, - 0xD8, - 0xAF, - 0xBD, - 0xAB, - 0x8C, - 0xD5, - 0x8C, - 0x8C, - 0xAB, - 0xAB, - 0xAF, - 0xBE, - 0xBC, - 0x5E, - 0x3B, - 0x52, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0x8D, - 0xA9, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xCD, - 0xD2, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x0D, - 0xCD, - 0xC9, - 0xD2, - 0xCD, - 0xC8, - 0xD2, - 0xD1, - 0xCD, - 0xD1, - 0xC8, - 0xD1, - 0xD1, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x86, - 0x35, - 0x52, - 0x00, - 0x05, - 0x35, - 0x00, - 0x05, - 0x49, - 0x35, - 0x79, - 0x35, - 0x35, - 0x00, - 0x04, - 0x52, - 0x00, - 0x63, - 0xB2, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0xC3, - 0xAA, - 0xC1, - 0xC6, - 0xC6, - 0xA1, - 0x71, - 0xB5, - 0xB5, - 0xA1, - 0xC2, - 0xB5, - 0xB5, - 0xCD, - 0xB5, - 0xB5, - 0xB5, - 0xA1, - 0xC9, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0xAA, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xB6, - 0xA1, - 0xE4, - 0x0F, - 0x0F, - 0x08, - 0x14, - 0x08, - 0x14, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x0F, - 0x0A, - 0x0A, - 0x0A, - 0x07, - 0x07, - 0x07, - 0x06, - 0x06, - 0x0F, - 0x06, - 0x05, - 0x0A, - 0x0A, - 0x0C, - 0x00, - 0x05, - 0x0B, - 0x00, - 0xC7, - 0x04, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x12, - 0x0E, - 0x0F, - 0x08, - 0x08, - 0xEA, - 0xFD, - 0x08, - 0x08, - 0xEE, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0x0A, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0xFB, - 0xFA, - 0xF6, - 0xFC, - 0xE7, - 0xE7, - 0xF1, - 0x00, - 0xF1, - 0xF1, - 0xF1, - 0xE3, - 0x01, - 0xF0, - 0xF0, - 0xE3, - 0x01, - 0xE3, - 0x02, - 0xE7, - 0xEF, - 0x02, - 0xE7, - 0xF5, - 0xE3, - 0xF5, - 0xE7, - 0xE7, - 0xE3, - 0xA4, - 0x9B, - 0xA2, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x99, - 0x02, - 0x0D, - 0xFB, - 0x04, - 0x0B, - 0x04, - 0x04, - 0x10, - 0x04, - 0x0E, - 0xF6, - 0xE7, - 0xC5, - 0x96, - 0x96, - 0xB8, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0xB8, - 0xB7, - 0xB8, - 0x97, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0xC1, - 0x71, - 0xB6, - 0x71, - 0xB6, - 0x71, - 0x8D, - 0xAA, - 0xAD, - 0x99, - 0xDC, - 0x31, - 0x5E, - 0x5B, - 0x63, - 0x91, - 0x89, - 0x4F, - 0x89, - 0x5F, - 0x5F, - 0x7C, - 0x45, - 0x75, - 0x5B, - 0x59, - 0x46, - 0x34, - 0x4A, - 0x52, - 0x52, - 0x7E, - 0x52, - 0xA3, - 0xB9, - 0xB9, - 0x6C, - 0x6E, - 0x6F, - 0xB3, - 0xBB, - 0xA8, - 0xA7, - 0xD0, - 0xB4, - 0x9F, - 0x9F, - 0x8C, - 0x8C, - 0xD5, - 0x8C, - 0xAB, - 0xA0, - 0xA7, - 0xA8, - 0x90, - 0xBA, - 0x49, - 0x8E, - 0xAA, - 0xC6, - 0xC3, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xCA, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xCD, - 0xD2, - 0xC8, - 0xC8, - 0xC8, - 0xD7, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xD9, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xC8, - 0xD1, - 0xD2, - 0xC4, - 0xC8, - 0xC4, - 0xD2, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x08, - 0x35, - 0x00, - 0x25, - 0x49, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xAC, - 0x80, - 0xAA, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB6, - 0xC2, - 0xA1, - 0xA1, - 0xB5, - 0xB6, - 0x00, - 0x05, - 0xB0, - 0x00, - 0x2A, - 0xC6, - 0xC6, - 0x8D, - 0xA9, - 0x8D, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB6, - 0xB6, - 0xA1, - 0x71, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0x71, - 0xEF, - 0x0F, - 0x07, - 0x08, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x14, - 0xFD, - 0x14, - 0x06, - 0xFD, - 0x00, - 0x4D, - 0x14, - 0x14, - 0x08, - 0x05, - 0x0A, - 0x0B, - 0x05, - 0x06, - 0x08, - 0x07, - 0x14, - 0x07, - 0x06, - 0x05, - 0x06, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x0C, - 0x0C, - 0x0C, - 0x04, - 0x0B, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x12, - 0x0B, - 0x07, - 0x08, - 0xFD, - 0x14, - 0xEA, - 0xFD, - 0xFD, - 0x08, - 0xEE, - 0x07, - 0xF2, - 0xF2, - 0xE9, - 0xF9, - 0xF9, - 0xF8, - 0xF3, - 0x0E, - 0x03, - 0xFA, - 0xFC, - 0xE7, - 0xE3, - 0xF1, - 0xE3, - 0xF1, - 0xF1, - 0xE3, - 0xF1, - 0xE3, - 0xF0, - 0xF0, - 0xF0, - 0x01, - 0xE7, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xF0, - 0xE3, - 0xF5, - 0xE7, - 0xE7, - 0xB2, - 0x00, - 0x06, - 0x96, - 0x00, - 0x7A, - 0xA2, - 0xA2, - 0x96, - 0xAE, - 0xE7, - 0xDC, - 0xDC, - 0xDC, - 0xE3, - 0xB8, - 0xC3, - 0x78, - 0x96, - 0xB8, - 0x96, - 0x96, - 0xAD, - 0xB8, - 0x96, - 0x96, - 0xAD, - 0xAD, - 0xA2, - 0xAD, - 0x96, - 0xB8, - 0x96, - 0x96, - 0x78, - 0x78, - 0xB8, - 0xB7, - 0x78, - 0x78, - 0xA9, - 0x71, - 0xC2, - 0x71, - 0x8D, - 0x71, - 0x97, - 0x97, - 0x97, - 0xA3, - 0x8A, - 0x42, - 0x46, - 0x90, - 0x66, - 0x91, - 0x91, - 0x64, - 0x5F, - 0x89, - 0x7C, - 0x89, - 0x7C, - 0x89, - 0x75, - 0x5B, - 0x59, - 0x31, - 0x34, - 0x49, - 0x52, - 0x52, - 0xB1, - 0x7E, - 0xA4, - 0x35, - 0x49, - 0x3B, - 0x6F, - 0xD6, - 0xBC, - 0xA8, - 0xA7, - 0xA0, - 0xB4, - 0xAB, - 0x8C, - 0x8C, - 0xC0, - 0x8C, - 0x8C, - 0xAB, - 0xB4, - 0xAF, - 0xBE, - 0x90, - 0x9A, - 0x6C, - 0xB2, - 0xAC, - 0x80, - 0x8D, - 0xAA, - 0x8D, - 0xA9, - 0xCA, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xC9, - 0xB6, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD9, - 0xD9, - 0x04, - 0xC8, - 0x00, - 0x0D, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0x00, - 0x58, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x86, - 0x52, - 0x52, - 0x52, - 0xB1, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xC6, - 0xAA, - 0x8D, - 0x80, - 0x80, - 0xC1, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0x71, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xA9, - 0xA9, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xE0, - 0x61, - 0x0F, - 0x0F, - 0x08, - 0x08, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x06, - 0xFD, - 0x00, - 0x10, - 0x07, - 0x06, - 0x05, - 0x0A, - 0x0B, - 0x06, - 0x14, - 0x14, - 0x08, - 0x06, - 0x14, - 0x08, - 0x08, - 0x06, - 0x05, - 0x05, - 0x04, - 0x0A, - 0x00, - 0x3B, - 0x0C, - 0x0B, - 0x0A, - 0x04, - 0x10, - 0x0D, - 0x11, - 0x12, - 0x06, - 0x08, - 0xFD, - 0xFD, - 0xDF, - 0x08, - 0xFD, - 0xEA, - 0xEE, - 0x08, - 0xEE, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0xF9, - 0xF8, - 0xF3, - 0xFB, - 0xED, - 0xF6, - 0xFC, - 0xE7, - 0xF1, - 0xCE, - 0x00, - 0xD4, - 0xF1, - 0xF1, - 0xF0, - 0xE3, - 0xF0, - 0xE3, - 0xF0, - 0xE3, - 0xE3, - 0x02, - 0xE7, - 0xEF, - 0xEF, - 0xE7, - 0xE7, - 0xE3, - 0xE7, - 0xE7, - 0xE3, - 0xE3, - 0xB2, - 0xA2, - 0x96, - 0x96, - 0x00, - 0x04, - 0xA2, - 0x01, - 0x96, - 0x04, - 0xA2, - 0x04, - 0x96, - 0x00, - 0x5A, - 0xA2, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x96, - 0x96, - 0xA2, - 0x96, - 0xAD, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0xB8, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0xB8, - 0x78, - 0x78, - 0xB7, - 0xC1, - 0x71, - 0x71, - 0x71, - 0xA9, - 0x80, - 0xAA, - 0x97, - 0xAD, - 0xAE, - 0xB2, - 0x4A, - 0x74, - 0x6F, - 0x5E, - 0x59, - 0x5B, - 0x91, - 0x45, - 0x7C, - 0x89, - 0x5F, - 0x5F, - 0x5F, - 0x64, - 0x91, - 0x63, - 0x5A, - 0x2E, - 0x31, - 0x74, - 0x5D, - 0x52, - 0x35, - 0xB2, - 0xB1, - 0x52, - 0x35, - 0x61, - 0xBA, - 0x9A, - 0xBB, - 0xD8, - 0xD0, - 0xBD, - 0xB4, - 0xD5, - 0xD5, - 0x8C, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xAF, - 0xBE, - 0xBC, - 0x9A, - 0x74, - 0x35, - 0xC5, - 0xAA, - 0x8D, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0x04, - 0xC2, - 0x00, - 0x23, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xCA, - 0xB5, - 0xC9, - 0xCD, - 0xC8, - 0xC8, - 0xD9, - 0xD7, - 0xD7, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x35, - 0x00, - 0x2C, - 0x79, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x79, - 0x49, - 0x35, - 0x52, - 0x7E, - 0xB2, - 0xB1, - 0xC5, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0xA9, - 0xC1, - 0xAA, - 0xC1, - 0x80, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0xC6, - 0x8D, - 0xA9, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0xA1, - 0x05, - 0xB0, - 0x00, - 0x1A, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xA1, - 0x71, - 0xB0, - 0xA1, - 0xB0, - 0xB6, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xA1, - 0xA1, - 0xB0, - 0xB1, - 0xFF, - 0x07, - 0x07, - 0x05, - 0x14, - 0x00, - 0x1B, - 0xFD, - 0x14, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x06, - 0x0A, - 0x0B, - 0x0A, - 0x14, - 0x14, - 0x08, - 0x14, - 0x08, - 0x08, - 0x08, - 0x14, - 0x06, - 0x06, - 0x05, - 0x05, - 0x05, - 0x00, - 0x04, - 0x0A, - 0x00, - 0x08, - 0x0B, - 0x0B, - 0x04, - 0x0D, - 0x11, - 0x04, - 0x06, - 0x08, - 0x04, - 0xFD, - 0x00, - 0x1E, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0x07, - 0x07, - 0x0F, - 0xFF, - 0xFF, - 0x0A, - 0xEB, - 0xF3, - 0xFB, - 0x03, - 0xFE, - 0xEF, - 0xE7, - 0xE3, - 0xF1, - 0xCE, - 0xF1, - 0xD4, - 0x00, - 0xF0, - 0xF1, - 0xF0, - 0xE3, - 0xF0, - 0xE3, - 0xF5, - 0x05, - 0xE7, - 0x00, - 0x11, - 0xE3, - 0xF5, - 0xE7, - 0xE3, - 0xE3, - 0xE7, - 0x8F, - 0x96, - 0x96, - 0x99, - 0xA2, - 0x96, - 0x96, - 0x96, - 0x99, - 0x96, - 0xA2, - 0x00, - 0x06, - 0x96, - 0x01, - 0x78, - 0x01, - 0x78, - 0x04, - 0x96, - 0x04, - 0xA2, - 0x00, - 0x61, - 0x96, - 0xA2, - 0xC5, - 0x96, - 0xB8, - 0x96, - 0x96, - 0xB8, - 0x96, - 0x78, - 0x96, - 0xC3, - 0x78, - 0xC1, - 0x71, - 0x71, - 0x71, - 0xA9, - 0x78, - 0x97, - 0xAD, - 0x9B, - 0xAE, - 0x9C, - 0x6C, - 0x42, - 0xBA, - 0x31, - 0x5E, - 0x90, - 0x66, - 0x75, - 0x91, - 0x89, - 0x7C, - 0x89, - 0x4F, - 0x89, - 0x7C, - 0x63, - 0x75, - 0x5B, - 0x46, - 0x31, - 0x3B, - 0x35, - 0x35, - 0x52, - 0xB1, - 0x9B, - 0x52, - 0x4A, - 0xBA, - 0xB3, - 0xBC, - 0xD8, - 0xA5, - 0xBD, - 0x9F, - 0x9F, - 0x8C, - 0x8C, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xBC, - 0xB3, - 0x6F, - 0x4A, - 0x7E, - 0xCB, - 0x80, - 0xAA, - 0x8D, - 0xC6, - 0xB0, - 0xC2, - 0xCA, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xC9, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x12, - 0xD9, - 0xC7, - 0xCF, - 0xCF, - 0xD7, - 0xD9, - 0xCF, - 0xD9, - 0xC8, - 0xD9, - 0xC7, - 0xC8, - 0xD7, - 0xD9, - 0xD9, - 0xCF, - 0xD7, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x52, - 0x52, - 0xB2, - 0xB1, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xD3, - 0x00, - 0x07, - 0x8D, - 0x00, - 0x31, - 0xAA, - 0x80, - 0x80, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xB6, - 0xB0, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0x71, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0x71, - 0xA1, - 0xB0, - 0x8D, - 0xF9, - 0xF2, - 0x07, - 0x00, - 0x0A, - 0x14, - 0x00, - 0x58, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x07, - 0x06, - 0x0A, - 0x0A, - 0x05, - 0x06, - 0x14, - 0x14, - 0x08, - 0x14, - 0x06, - 0x14, - 0x07, - 0x06, - 0x07, - 0x05, - 0x06, - 0x0A, - 0x05, - 0x05, - 0xFF, - 0x0A, - 0x0B, - 0x0B, - 0x04, - 0x0D, - 0x13, - 0x0A, - 0x07, - 0xFD, - 0xFD, - 0xFD, - 0xEA, - 0xFD, - 0xEA, - 0xFD, - 0x08, - 0xEE, - 0xEE, - 0xF2, - 0xF2, - 0xF2, - 0xFF, - 0xF9, - 0xF8, - 0xF3, - 0xE8, - 0x11, - 0xE4, - 0xFC, - 0xE7, - 0xCE, - 0xCE, - 0xF1, - 0xD4, - 0xF1, - 0xE3, - 0xE3, - 0xF1, - 0xE3, - 0xF1, - 0xE3, - 0x01, - 0xE3, - 0xE7, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xE3, - 0xE7, - 0xE3, - 0xE3, - 0x8F, - 0xA2, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x04, - 0xA2, - 0x00, - 0x0C, - 0x96, - 0x78, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xA2, - 0x96, - 0x05, - 0xA2, - 0x00, - 0x07, - 0xAD, - 0xA2, - 0x96, - 0xB8, - 0x96, - 0xB8, - 0xB8, - 0x00, - 0x04, - 0x78, - 0x00, - 0x60, - 0x71, - 0x71, - 0xA9, - 0xC1, - 0x78, - 0x97, - 0xAD, - 0xA2, - 0xA3, - 0x9C, - 0x6D, - 0x74, - 0x42, - 0x6F, - 0x46, - 0x5E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x89, - 0x89, - 0x7C, - 0x89, - 0x89, - 0x91, - 0x4D, - 0x5B, - 0x2E, - 0x31, - 0x56, - 0x52, - 0x52, - 0x7E, - 0xB1, - 0x7E, - 0xB9, - 0xBA, - 0xB3, - 0xBB, - 0xA8, - 0xAF, - 0xBD, - 0xB4, - 0xD5, - 0x8C, - 0xC0, - 0x8C, - 0xC0, - 0xD5, - 0x55, - 0xAB, - 0xA0, - 0xA7, - 0xA8, - 0x8B, - 0x6F, - 0x74, - 0x7E, - 0x8E, - 0x71, - 0x8D, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xB6, - 0xC2, - 0xC9, - 0xB5, - 0xC9, - 0xCA, - 0xC9, - 0xB5, - 0xC2, - 0xB5, - 0xCD, - 0xCD, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD7, - 0xC7, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xD9, - 0x06, - 0xCF, - 0x00, - 0x03, - 0xD7, - 0xCF, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x01, - 0x79, - 0x06, - 0x35, - 0x00, - 0x2D, - 0x49, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0xA4, - 0x52, - 0xBF, - 0xBF, - 0xB1, - 0xC5, - 0xC3, - 0xAA, - 0xC1, - 0xC6, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0x8D, - 0x8D, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xC6, - 0x71, - 0xA1, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x0E, - 0xB6, - 0xB0, - 0xA1, - 0xB6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB0, - 0xB6, - 0x04, - 0xB0, - 0x00, - 0x0C, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0xB0, - 0x8D, - 0xD3, - 0xED, - 0x07, - 0x06, - 0x08, - 0x08, - 0x14, - 0x00, - 0x22, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x06, - 0x06, - 0x0A, - 0x06, - 0x07, - 0xEE, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x14, - 0x06, - 0x08, - 0x08, - 0x06, - 0x06, - 0x06, - 0x05, - 0x06, - 0x05, - 0x05, - 0x05, - 0x0B, - 0x0B, - 0x04, - 0x0D, - 0x11, - 0x06, - 0x14, - 0x05, - 0xFD, - 0x00, - 0x35, - 0xEE, - 0xFD, - 0xEE, - 0xEE, - 0x08, - 0xE5, - 0x07, - 0xFF, - 0xE9, - 0xF9, - 0xF9, - 0x04, - 0xFB, - 0xED, - 0xFE, - 0xFC, - 0xE7, - 0xCB, - 0xCE, - 0xC5, - 0x00, - 0xCE, - 0xE3, - 0xE3, - 0xE3, - 0xF0, - 0xE3, - 0xE3, - 0xF5, - 0xE3, - 0xE7, - 0xE7, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xE3, - 0xE7, - 0xE7, - 0xB9, - 0xE3, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x99, - 0xA2, - 0xA2, - 0x00, - 0x07, - 0x96, - 0x00, - 0x05, - 0xA2, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x00, - 0x06, - 0xA2, - 0x00, - 0x5F, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0x96, - 0x96, - 0x78, - 0x78, - 0x78, - 0xA9, - 0x71, - 0x71, - 0x71, - 0x78, - 0x78, - 0x9B, - 0xAE, - 0x7E, - 0xA3, - 0x6B, - 0x6C, - 0x74, - 0x6F, - 0x6F, - 0x31, - 0x46, - 0x5E, - 0x5A, - 0x5A, - 0x91, - 0x91, - 0x64, - 0x89, - 0x7C, - 0x89, - 0x89, - 0x64, - 0x91, - 0x4D, - 0x29, - 0x2E, - 0x31, - 0x56, - 0x52, - 0x52, - 0xB2, - 0xB1, - 0x4A, - 0x6E, - 0xB3, - 0xBC, - 0xA7, - 0xD0, - 0xB4, - 0x9F, - 0x9F, - 0xC0, - 0xC0, - 0x8C, - 0xC0, - 0xD5, - 0x8C, - 0xAB, - 0xA0, - 0xAF, - 0xBE, - 0xBB, - 0x5E, - 0xBA, - 0x5D, - 0x8E, - 0xAA, - 0x8D, - 0xA9, - 0x8D, - 0xC6, - 0xA1, - 0xCA, - 0xCA, - 0xC2, - 0xC9, - 0xB5, - 0xD2, - 0xC2, - 0xE0, - 0xC2, - 0xCA, - 0xB6, - 0xC9, - 0xCD, - 0xD2, - 0xC8, - 0xD9, - 0xD9, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0xD7, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0x05, - 0xCF, - 0x00, - 0x06, - 0xD9, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x07, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x00, - 0x05, - 0x35, - 0x00, - 0x18, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0x8E, - 0xAC, - 0xAC, - 0xAA, - 0x80, - 0xAA, - 0xC6, - 0x8D, - 0xAA, - 0x8D, - 0xC6, - 0x80, - 0xC6, - 0x06, - 0x8D, - 0x01, - 0xC6, - 0x01, - 0xC6, - 0x08, - 0xB0, - 0x00, - 0x0A, - 0x71, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0x71, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x14, - 0xB6, - 0xA9, - 0xB0, - 0xB6, - 0xA1, - 0x71, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0xC6, - 0xA9, - 0x8D, - 0xB0, - 0xA1, - 0x71, - 0xE4, - 0x07, - 0x07, - 0x08, - 0x0C, - 0x14, - 0x00, - 0x53, - 0x06, - 0x14, - 0x05, - 0x06, - 0x06, - 0x07, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x14, - 0x14, - 0x06, - 0x14, - 0x06, - 0x06, - 0x07, - 0x0F, - 0x0F, - 0x07, - 0x06, - 0x05, - 0x05, - 0x0A, - 0x0A, - 0x04, - 0x0D, - 0x0B, - 0x07, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0xEA, - 0xEA, - 0xFD, - 0xEA, - 0x08, - 0x07, - 0xEE, - 0x07, - 0xF2, - 0xFF, - 0xFF, - 0xF9, - 0xF9, - 0xE8, - 0xFB, - 0x03, - 0xF6, - 0xDC, - 0xF5, - 0xC5, - 0xF7, - 0xC5, - 0xD4, - 0xF1, - 0xD4, - 0xF1, - 0xE3, - 0xE3, - 0xF0, - 0xF0, - 0xE3, - 0xE7, - 0xE7, - 0xE7, - 0xDC, - 0xDC, - 0xF5, - 0xE7, - 0xE3, - 0xE3, - 0xE3, - 0xE7, - 0xB9, - 0x99, - 0x99, - 0x96, - 0x99, - 0x99, - 0x96, - 0x99, - 0x00, - 0x04, - 0x96, - 0x01, - 0x99, - 0x08, - 0x96, - 0x04, - 0xA2, - 0x01, - 0x99, - 0x06, - 0xA2, - 0x00, - 0x3A, - 0xAD, - 0xA2, - 0xAD, - 0x96, - 0xB8, - 0x97, - 0xB8, - 0x78, - 0x78, - 0x78, - 0x71, - 0x71, - 0x71, - 0x78, - 0x97, - 0x96, - 0xAE, - 0x7E, - 0x9C, - 0x6D, - 0x74, - 0xBA, - 0x6F, - 0x6F, - 0x6F, - 0x31, - 0x31, - 0x5E, - 0x5A, - 0x5A, - 0x75, - 0x91, - 0x64, - 0x89, - 0x89, - 0x7C, - 0x89, - 0x91, - 0x91, - 0x66, - 0x29, - 0x31, - 0x31, - 0x4A, - 0x52, - 0x52, - 0x52, - 0x35, - 0x42, - 0xB3, - 0xBB, - 0xD8, - 0xAF, - 0xBD, - 0x9F, - 0x8C, - 0x8C, - 0xC0, - 0x04, - 0x8C, - 0x00, - 0x20, - 0x9F, - 0xB4, - 0xAF, - 0xBE, - 0xBC, - 0x90, - 0x6F, - 0x6C, - 0xB1, - 0xAA, - 0xAA, - 0xAA, - 0xC6, - 0xA9, - 0xA1, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xCF, - 0xD9, - 0x06, - 0xC7, - 0x00, - 0x06, - 0xD7, - 0xCF, - 0xD9, - 0xCF, - 0xD9, - 0xC8, - 0x05, - 0xCF, - 0x00, - 0x04, - 0xD9, - 0xC7, - 0xC8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x03, - 0x35, - 0x35, - 0x86, - 0x00, - 0x05, - 0x35, - 0x01, - 0x79, - 0x06, - 0x35, - 0x00, - 0x22, - 0x79, - 0x79, - 0x35, - 0x52, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xC3, - 0xCB, - 0x8D, - 0xAA, - 0x8D, - 0xAA, - 0xC1, - 0x80, - 0xAA, - 0x80, - 0x80, - 0xAA, - 0x80, - 0x8D, - 0x80, - 0xC6, - 0x8D, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0x07, - 0xB0, - 0x00, - 0x1F, - 0xC2, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xB6, - 0xB0, - 0xC2, - 0xB0, - 0xA9, - 0x71, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0x8D, - 0xC1, - 0xB0, - 0xA9, - 0x8D, - 0xA1, - 0xB1, - 0xFF, - 0x08, - 0x14, - 0x06, - 0x00, - 0x0D, - 0x14, - 0x00, - 0x1C, - 0x06, - 0x14, - 0x14, - 0x06, - 0x08, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x14, - 0x08, - 0x06, - 0x06, - 0x08, - 0x06, - 0x07, - 0x06, - 0x0F, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x0D, - 0x0A, - 0x14, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x18, - 0xEE, - 0xFD, - 0xEE, - 0x08, - 0x07, - 0xEE, - 0x07, - 0xF2, - 0xF2, - 0xE9, - 0xFF, - 0xEB, - 0xF3, - 0xFB, - 0xE6, - 0xFE, - 0xDC, - 0xE3, - 0xF7, - 0xC5, - 0xF7, - 0xF7, - 0xD4, - 0xD4, - 0x04, - 0xE3, - 0x00, - 0x12, - 0xE7, - 0xE3, - 0xF5, - 0xE7, - 0xE7, - 0xE7, - 0xDC, - 0xDC, - 0xDC, - 0xE3, - 0xDC, - 0xE7, - 0xA6, - 0xE3, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x05, - 0x99, - 0x00, - 0x12, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0xA2, - 0x96, - 0xA2, - 0xA2, - 0x96, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x8F, - 0x04, - 0xA2, - 0x00, - 0x06, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xB8, - 0x96, - 0x04, - 0x78, - 0x00, - 0x49, - 0x71, - 0x71, - 0x71, - 0x78, - 0x97, - 0xB8, - 0x7E, - 0xA3, - 0x6B, - 0x6C, - 0x74, - 0xBA, - 0x42, - 0x6F, - 0x6F, - 0x6F, - 0x31, - 0x46, - 0x2E, - 0x5A, - 0x5B, - 0x75, - 0x91, - 0x64, - 0x7C, - 0x89, - 0x89, - 0x64, - 0x89, - 0x63, - 0x5B, - 0x5A, - 0x31, - 0x74, - 0x6B, - 0x52, - 0x52, - 0x61, - 0x42, - 0x5E, - 0xBC, - 0xA7, - 0xD0, - 0xB4, - 0x9F, - 0xD5, - 0x8C, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xAF, - 0xBE, - 0xA8, - 0xB3, - 0x9A, - 0x74, - 0x7E, - 0xAC, - 0x80, - 0xC1, - 0xC6, - 0xC6, - 0xC6, - 0xB6, - 0xA1, - 0xCA, - 0xB5, - 0xB6, - 0xC9, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x11, - 0xCA, - 0xC2, - 0xCD, - 0xCD, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xD9, - 0xC8, - 0xD9, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x07, - 0xC8, - 0xCF, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x24, - 0x79, - 0x35, - 0x35, - 0x35, - 0x49, - 0x49, - 0x79, - 0x35, - 0xA4, - 0xB2, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0x8D, - 0xC1, - 0x80, - 0x8D, - 0xAA, - 0x80, - 0x80, - 0xAA, - 0xC6, - 0x8D, - 0x80, - 0xAA, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0x06, - 0xB0, - 0x00, - 0x0E, - 0xA1, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0x71, - 0xC2, - 0xC6, - 0xA1, - 0x71, - 0xB0, - 0xB0, - 0xA9, - 0xC2, - 0x04, - 0xB0, - 0x00, - 0x0E, - 0xC6, - 0xA9, - 0x8D, - 0xA9, - 0x80, - 0x8D, - 0xC6, - 0xA9, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0xE8, - 0x06, - 0x10, - 0x14, - 0x00, - 0x0A, - 0x06, - 0x14, - 0x14, - 0xEA, - 0xFD, - 0xEA, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x05, - 0x06, - 0x00, - 0x2A, - 0x0F, - 0x06, - 0x0F, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x0B, - 0x0D, - 0x05, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0xEA, - 0x07, - 0xEE, - 0x07, - 0x07, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0xF9, - 0xF9, - 0xF8, - 0xFB, - 0xED, - 0xE4, - 0xFC, - 0xE3, - 0xD4, - 0xF1, - 0xD4, - 0xC5, - 0xC5, - 0xF1, - 0xD4, - 0xF1, - 0x04, - 0xE3, - 0x00, - 0x03, - 0xE7, - 0xE7, - 0xEF, - 0x00, - 0x06, - 0xE7, - 0x00, - 0x03, - 0xB9, - 0xE7, - 0x8A, - 0x00, - 0x04, - 0x99, - 0x00, - 0x06, - 0xA2, - 0x99, - 0x96, - 0x96, - 0x99, - 0x99, - 0x07, - 0x96, - 0x00, - 0x23, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xAE, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x96, - 0xA2, - 0x96, - 0x96, - 0x96, - 0x78, - 0xB8, - 0x78, - 0x71, - 0x71, - 0xCD, - 0x71, - 0xA9, - 0x97, - 0xAD, - 0xAD, - 0xA3, - 0x6B, - 0x6E, - 0x74, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x46, - 0x9A, - 0x6F, - 0x6F, - 0x31, - 0x2E, - 0x5A, - 0x5A, - 0x75, - 0x91, - 0x91, - 0x7C, - 0x7C, - 0x89, - 0x64, - 0x91, - 0x63, - 0x5A, - 0x29, - 0x2E, - 0x34, - 0x3B, - 0x61, - 0x6E, - 0x6F, - 0xB3, - 0xDB, - 0xD8, - 0xA0, - 0xB4, - 0xD5, - 0x8C, - 0x85, - 0xC0, - 0xC0, - 0xC0, - 0x8C, - 0xD5, - 0x9F, - 0xAB, - 0xAF, - 0xD0, - 0xA8, - 0x8B, - 0x9A, - 0x74, - 0x52, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB5, - 0xC9, - 0xE0, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xC2, - 0xCA, - 0xC9, - 0xC2, - 0xD2, - 0xC4, - 0xC8, - 0xCF, - 0xD7, - 0x05, - 0xC7, - 0x00, - 0x05, - 0xCF, - 0xD9, - 0xC8, - 0xCF, - 0xCF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x05, - 0xCF, - 0xC8, - 0xC8, - 0xCF, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x35, - 0x35, - 0x35, - 0x79, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x79, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x52, - 0x7E, - 0x52, - 0xB1, - 0xBF, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0xC1, - 0xAA, - 0xC6, - 0xAA, - 0xC6, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0x00, - 0x06, - 0xB0, - 0x00, - 0x23, - 0x71, - 0xB0, - 0xB0, - 0xB0, - 0xC2, - 0xB0, - 0xC2, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0xB0, - 0xB0, - 0xCA, - 0x71, - 0xB0, - 0xA9, - 0x8D, - 0xC1, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0x71, - 0xA1, - 0xA1, - 0x9D, - 0xF2, - 0x08, - 0x00, - 0x11, - 0x14, - 0x00, - 0x47, - 0x08, - 0xEE, - 0xFD, - 0xFD, - 0xEE, - 0x08, - 0x14, - 0x08, - 0x07, - 0x06, - 0x14, - 0x07, - 0x05, - 0x06, - 0x06, - 0x05, - 0x0F, - 0x0A, - 0x0A, - 0x0B, - 0x04, - 0x04, - 0x08, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0xEA, - 0x08, - 0xEA, - 0xEE, - 0x07, - 0xEE, - 0x07, - 0xEE, - 0xF2, - 0xF2, - 0xE9, - 0xFF, - 0xF9, - 0xF9, - 0xE8, - 0xF3, - 0xE6, - 0xFE, - 0xE7, - 0xE3, - 0xD4, - 0xD4, - 0xF1, - 0xC5, - 0xF1, - 0xD4, - 0xF1, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xE7, - 0xE3, - 0xE3, - 0xE7, - 0xDC, - 0xEF, - 0xE7, - 0xA6, - 0xE7, - 0xA6, - 0xE7, - 0xDC, - 0x98, - 0x00, - 0x08, - 0x99, - 0x00, - 0x0B, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x00, - 0x09, - 0x8F, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x00, - 0x04, - 0x96, - 0x00, - 0x0F, - 0x78, - 0xB8, - 0x78, - 0x71, - 0x71, - 0x71, - 0xB6, - 0x71, - 0x97, - 0xB8, - 0x8F, - 0xA3, - 0xB9, - 0x3B, - 0x42, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x4D, - 0x9A, - 0x6F, - 0x42, - 0x6F, - 0x31, - 0x46, - 0x5A, - 0x5B, - 0x75, - 0x63, - 0x91, - 0x7C, - 0x89, - 0x7C, - 0x45, - 0x63, - 0x4D, - 0x5A, - 0x2E, - 0x31, - 0x31, - 0xBA, - 0xBA, - 0x6F, - 0xBB, - 0xBC, - 0xD0, - 0xD0, - 0x9F, - 0x9F, - 0xC0, - 0x8C, - 0xC0, - 0xC0, - 0x8C, - 0xD5, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0xBC, - 0x5E, - 0x42, - 0x9C, - 0xAC, - 0xCB, - 0xAA, - 0x8D, - 0xC1, - 0xC6, - 0xB0, - 0xA1, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xCA, - 0xCA, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xC7, - 0xC7, - 0xD9, - 0xC7, - 0xC7, - 0xCF, - 0x00, - 0x0D, - 0xC8, - 0x00, - 0x00, - 0x01, - 0x35, - 0x01, - 0x52, - 0x0A, - 0x35, - 0x00, - 0x2E, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x35, - 0x52, - 0xA4, - 0x7E, - 0x7E, - 0x8E, - 0x8E, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0x8D, - 0xAA, - 0xC1, - 0xC6, - 0x80, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0x8D, - 0x8D, - 0xC6, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0x71, - 0xB0, - 0xB0, - 0xC2, - 0xA9, - 0x04, - 0xB0, - 0x01, - 0xA9, - 0x01, - 0xC2, - 0x05, - 0xB0, - 0x00, - 0x13, - 0xC6, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0x80, - 0xA9, - 0xA9, - 0x80, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xD3, - 0xF3, - 0x08, - 0x08, - 0x08, - 0x00, - 0x09, - 0x14, - 0x01, - 0xFD, - 0x04, - 0x14, - 0x01, - 0x08, - 0x01, - 0x06, - 0x05, - 0xFD, - 0x00, - 0x11, - 0x08, - 0xFD, - 0x08, - 0x06, - 0x07, - 0x06, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0x05, - 0x0A, - 0x0A, - 0x0A, - 0x10, - 0x0A, - 0x08, - 0x00, - 0x06, - 0xFD, - 0x00, - 0x06, - 0x08, - 0xEE, - 0x07, - 0x07, - 0xE5, - 0x0F, - 0x04, - 0xF2, - 0x00, - 0x1F, - 0xEC, - 0xEB, - 0xF3, - 0xED, - 0xFA, - 0xDD, - 0xDC, - 0xE3, - 0xF1, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xF1, - 0xE3, - 0xE3, - 0xE3, - 0xE7, - 0xDC, - 0xDC, - 0xE7, - 0xDC, - 0xDC, - 0xDC, - 0xE7, - 0xE7, - 0xA6, - 0xDC, - 0x00, - 0x09, - 0x99, - 0x00, - 0x09, - 0x68, - 0x96, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0x99, - 0x96, - 0x00, - 0x05, - 0x99, - 0x00, - 0x06, - 0x8F, - 0x99, - 0x99, - 0x99, - 0x8F, - 0x99, - 0x04, - 0xA2, - 0x00, - 0x09, - 0x96, - 0xA2, - 0xA2, - 0xB8, - 0x78, - 0x96, - 0x78, - 0x78, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x2A, - 0x78, - 0xAD, - 0x7E, - 0x79, - 0x8A, - 0x3B, - 0x74, - 0xBA, - 0x6F, - 0x6F, - 0x9A, - 0x9A, - 0x6F, - 0x6F, - 0x31, - 0x31, - 0x31, - 0x2E, - 0x5A, - 0x5A, - 0x75, - 0x91, - 0x64, - 0x64, - 0x89, - 0x64, - 0x89, - 0x91, - 0x63, - 0x5A, - 0x29, - 0x6F, - 0x6F, - 0x9A, - 0xBB, - 0xBB, - 0xA8, - 0xA7, - 0xBD, - 0xB4, - 0x8C, - 0x8C, - 0x04, - 0xC0, - 0x00, - 0x2E, - 0x8C, - 0x8C, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0xBB, - 0xB3, - 0x6F, - 0xB9, - 0x9B, - 0xB7, - 0x8D, - 0x80, - 0xC1, - 0xB0, - 0xA1, - 0xA1, - 0xC2, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xC9, - 0xD2, - 0xC8, - 0xCF, - 0xD7, - 0xD9, - 0xD9, - 0xC7, - 0xC7, - 0xD9, - 0xCF, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x04, - 0xC8, - 0x00, - 0x05, - 0xD1, - 0xD1, - 0xD1, - 0xC8, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x35, - 0x00, - 0x20, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0xA3, - 0xB2, - 0xB1, - 0x9B, - 0xAD, - 0xAC, - 0xC3, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0x8D, - 0x05, - 0xB0, - 0x00, - 0x08, - 0xA1, - 0xA1, - 0xB6, - 0xA9, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0x06, - 0xB0, - 0x00, - 0x05, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x11, - 0xB0, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0xA9, - 0xC1, - 0x8D, - 0x71, - 0x8D, - 0xB0, - 0xA4, - 0xF2, - 0x08, - 0x00, - 0x09, - 0x14, - 0x00, - 0x28, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x08, - 0x14, - 0x07, - 0x08, - 0xFD, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0x08, - 0x07, - 0x08, - 0x06, - 0x0F, - 0x0F, - 0x06, - 0x0F, - 0x05, - 0x0A, - 0x0B, - 0x0A, - 0x04, - 0x06, - 0x14, - 0xFD, - 0xFD, - 0x08, - 0xEA, - 0xFD, - 0xEE, - 0xEE, - 0x07, - 0xEE, - 0x0F, - 0x05, - 0xF2, - 0x00, - 0x10, - 0xFF, - 0xE9, - 0xF9, - 0xF3, - 0xFB, - 0xE6, - 0xF6, - 0xE7, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xBF, - 0xE3, - 0xD4, - 0xD4, - 0x06, - 0xE3, - 0x00, - 0x0A, - 0xDC, - 0xE7, - 0xDC, - 0xE7, - 0xDC, - 0xA6, - 0xE7, - 0xA6, - 0xDC, - 0xB9, - 0x04, - 0x68, - 0x00, - 0x06, - 0x99, - 0x68, - 0x99, - 0x68, - 0x99, - 0x96, - 0x0D, - 0x99, - 0x00, - 0x03, - 0x9E, - 0x99, - 0x8F, - 0x00, - 0x06, - 0x99, - 0x00, - 0x06, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0x96, - 0x96, - 0x08, - 0x78, - 0x00, - 0x29, - 0xC1, - 0x97, - 0xAE, - 0x49, - 0x5D, - 0x6D, - 0x42, - 0xBA, - 0x6F, - 0x6F, - 0x9A, - 0x6F, - 0x9A, - 0x6F, - 0x6F, - 0x42, - 0x42, - 0x31, - 0x5E, - 0x5A, - 0x5A, - 0x5B, - 0x63, - 0x91, - 0x64, - 0x7C, - 0x7C, - 0x91, - 0x75, - 0x4D, - 0x5A, - 0x2E, - 0x59, - 0xB3, - 0x8B, - 0xBC, - 0xD8, - 0xD0, - 0xA0, - 0xAB, - 0xD5, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x2C, - 0x8C, - 0x8C, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0x66, - 0xB3, - 0x9A, - 0x6B, - 0x9B, - 0xAC, - 0xAA, - 0x80, - 0x8D, - 0x8D, - 0xB0, - 0xA1, - 0xCA, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xCA, - 0xC9, - 0xC9, - 0xD2, - 0xC8, - 0xD9, - 0xCF, - 0xD9, - 0xC7, - 0xC7, - 0xCF, - 0xD9, - 0xCF, - 0x05, - 0xD1, - 0x00, - 0x07, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x05, - 0x35, - 0x00, - 0x51, - 0x52, - 0x86, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0xA4, - 0xB2, - 0xB2, - 0x7E, - 0xB1, - 0xC5, - 0xC3, - 0xAA, - 0xC1, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0xB0, - 0xA1, - 0xA9, - 0xB0, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0xA9, - 0xC1, - 0x8D, - 0xA9, - 0x8D, - 0xC1, - 0xC1, - 0xA9, - 0x8D, - 0x8D, - 0x71, - 0x8D, - 0xA9, - 0x71, - 0xE4, - 0x06, - 0x00, - 0x09, - 0x14, - 0x01, - 0xFD, - 0x05, - 0x14, - 0x00, - 0x20, - 0xFD, - 0x07, - 0x08, - 0x08, - 0xEE, - 0x08, - 0xFD, - 0xFD, - 0xEE, - 0x08, - 0x07, - 0x07, - 0x08, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0x05, - 0x05, - 0x0A, - 0x0B, - 0x0B, - 0x08, - 0x08, - 0x14, - 0xFD, - 0x14, - 0x14, - 0xEE, - 0x08, - 0x07, - 0x07, - 0x04, - 0xF2, - 0x00, - 0x0D, - 0xFF, - 0xE9, - 0xFF, - 0xE9, - 0xF9, - 0xF9, - 0xEB, - 0xED, - 0xFE, - 0xDD, - 0xDC, - 0xF0, - 0xD4, - 0x00, - 0x0C, - 0xE3, - 0x00, - 0x03, - 0xE7, - 0xDC, - 0xE7, - 0x00, - 0x05, - 0xDC, - 0x00, - 0x07, - 0xA6, - 0x81, - 0x99, - 0x68, - 0x99, - 0x99, - 0x68, - 0x00, - 0x07, - 0x99, - 0x00, - 0x1B, - 0x96, - 0x99, - 0x96, - 0x68, - 0x99, - 0x68, - 0x99, - 0x99, - 0x68, - 0x68, - 0x9E, - 0x99, - 0x9E, - 0x99, - 0x99, - 0x8F, - 0x99, - 0x99, - 0xAE, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x97, - 0x96, - 0x00, - 0x05, - 0x78, - 0x00, - 0x67, - 0x97, - 0xB8, - 0x96, - 0x96, - 0x7E, - 0x35, - 0x6B, - 0x6C, - 0x3B, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0x9A, - 0x6F, - 0x6F, - 0x9A, - 0x6F, - 0x42, - 0x31, - 0x31, - 0x2E, - 0x59, - 0x5B, - 0x4D, - 0x91, - 0x64, - 0x91, - 0x89, - 0x7C, - 0x63, - 0x4D, - 0x4D, - 0x5B, - 0x5A, - 0x8B, - 0xBC, - 0xBE, - 0xA7, - 0xA0, - 0xBD, - 0x9F, - 0x8C, - 0x8C, - 0xC0, - 0x32, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0xD5, - 0xAB, - 0xA0, - 0xA5, - 0xD8, - 0x66, - 0xBB, - 0x46, - 0x6D, - 0xBF, - 0xB8, - 0xAA, - 0x8D, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xC2, - 0xC9, - 0xC9, - 0xE0, - 0xC9, - 0xB6, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xD2, - 0xD1, - 0xC8, - 0xCF, - 0xD9, - 0xCF, - 0xCF, - 0xD9, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0xC8, - 0xD1, - 0xCD, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xD1, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x00, - 0x05, - 0x35, - 0x00, - 0x14, - 0x79, - 0x49, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x52, - 0xB2, - 0xB1, - 0xB1, - 0xAC, - 0xC3, - 0xAA, - 0xAA, - 0xCA, - 0xB0, - 0xA9, - 0x04, - 0xB0, - 0x00, - 0x0D, - 0xA1, - 0xB0, - 0x8D, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA9, - 0xB6, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x25, - 0xA9, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xC6, - 0x71, - 0xB0, - 0xA9, - 0x80, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x80, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0x80, - 0xA9, - 0x8D, - 0x71, - 0x8D, - 0xED, - 0x07, - 0x00, - 0x08, - 0x14, - 0x01, - 0x73, - 0x04, - 0x14, - 0x00, - 0x32, - 0xFD, - 0xFD, - 0x14, - 0x0F, - 0x07, - 0xFD, - 0xEE, - 0x08, - 0xFD, - 0xEE, - 0x08, - 0x08, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0xFF, - 0xFF, - 0x0A, - 0xF9, - 0x0B, - 0x0A, - 0xFD, - 0x14, - 0xFD, - 0xFD, - 0xEA, - 0x08, - 0xEE, - 0xEA, - 0x07, - 0xF2, - 0x0F, - 0xFF, - 0x0F, - 0xFF, - 0xFF, - 0xE9, - 0xFF, - 0xE9, - 0xF9, - 0xEB, - 0xFB, - 0xED, - 0xE6, - 0xF6, - 0xDC, - 0xE3, - 0xD4, - 0x0B, - 0xE3, - 0x01, - 0xB9, - 0x01, - 0xE3, - 0x06, - 0xDC, - 0x00, - 0x04, - 0x74, - 0xDC, - 0x87, - 0x99, - 0x04, - 0x68, - 0x00, - 0x04, - 0x99, - 0x68, - 0x99, - 0x68, - 0x07, - 0x99, - 0x00, - 0x04, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x04, - 0x68, - 0x00, - 0x23, - 0x99, - 0x99, - 0x9E, - 0x9E, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x78, - 0x96, - 0x78, - 0x78, - 0x97, - 0x97, - 0x96, - 0x96, - 0x7E, - 0xAE, - 0x8F, - 0x9C, - 0x5D, - 0x3B, - 0x3B, - 0x42, - 0x6E, - 0x42, - 0x6F, - 0xBA, - 0x9A, - 0x9A, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x54, - 0x42, - 0x34, - 0x46, - 0x2E, - 0x29, - 0x5B, - 0x75, - 0x63, - 0x64, - 0x7C, - 0x91, - 0x7C, - 0x91, - 0x63, - 0x5B, - 0x75, - 0x66, - 0xBE, - 0xD8, - 0xA7, - 0xA0, - 0xB4, - 0xD5, - 0xC0, - 0x8C, - 0xC0, - 0x85, - 0xD5, - 0xC0, - 0x8C, - 0xD5, - 0x9F, - 0xB4, - 0xA0, - 0xD0, - 0xBE, - 0xBC, - 0x90, - 0x9A, - 0xBA, - 0xB2, - 0x9B, - 0xC3, - 0xC1, - 0xA9, - 0xA9, - 0xB0, - 0xA1, - 0xCA, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB0, - 0xA1, - 0xA1, - 0xC2, - 0xB5, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xD7, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xD2, - 0xD1, - 0xCD, - 0xCD, - 0xCD, - 0xC8, - 0xCD, - 0xD1, - 0xD2, - 0xCD, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x79, - 0x00, - 0x04, - 0x35, - 0x00, - 0x0C, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xBF, - 0xC5, - 0xB8, - 0x8D, - 0x8D, - 0x04, - 0xB0, - 0x00, - 0x0E, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0x08, - 0xB0, - 0x00, - 0x36, - 0xC6, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0x8D, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0xA9, - 0x8D, - 0x8D, - 0xC1, - 0x80, - 0xC1, - 0xB7, - 0xC1, - 0xC1, - 0xC1, - 0x80, - 0xA9, - 0x8D, - 0x71, - 0x8D, - 0x80, - 0xE6, - 0x07, - 0x08, - 0x14, - 0x08, - 0x14, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x07, - 0xF2, - 0x07, - 0x04, - 0x08, - 0x05, - 0x07, - 0x00, - 0x0A, - 0x0F, - 0x0F, - 0x0F, - 0xFF, - 0x05, - 0x0C, - 0x04, - 0x0F, - 0x08, - 0xFD, - 0x04, - 0x08, - 0x00, - 0x12, - 0xEE, - 0x06, - 0x07, - 0x07, - 0xF2, - 0xF2, - 0xE9, - 0xFF, - 0xEC, - 0xFF, - 0xEC, - 0xF9, - 0xEC, - 0xF8, - 0xE8, - 0xED, - 0xE4, - 0xDC, - 0x09, - 0xE3, - 0x00, - 0x12, - 0xDC, - 0xE3, - 0xE7, - 0xDC, - 0xE3, - 0xE3, - 0xE3, - 0xE7, - 0xDC, - 0xDC, - 0xDD, - 0xDC, - 0x3B, - 0xDC, - 0x7D, - 0x68, - 0x87, - 0x99, - 0x04, - 0x68, - 0x00, - 0x04, - 0x99, - 0x68, - 0x99, - 0x68, - 0x04, - 0x99, - 0x00, - 0x0C, - 0x68, - 0x99, - 0x68, - 0x99, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x68, - 0x06, - 0x99, - 0x00, - 0x19, - 0x8F, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x96, - 0x78, - 0x96, - 0x96, - 0x96, - 0x8F, - 0x8F, - 0x94, - 0x8A, - 0x8A, - 0x8A, - 0x56, - 0x3B, - 0x6E, - 0x6E, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0x00, - 0x06, - 0x6F, - 0x00, - 0x18, - 0xBA, - 0x42, - 0xBA, - 0x31, - 0x46, - 0x29, - 0x5A, - 0x4D, - 0x4D, - 0x91, - 0x64, - 0x91, - 0x91, - 0x64, - 0x75, - 0x63, - 0xA8, - 0x45, - 0xA7, - 0xA0, - 0xBD, - 0xAB, - 0x9F, - 0x8C, - 0x04, - 0xC0, - 0x00, - 0x17, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0xB3, - 0x34, - 0x5D, - 0xB1, - 0xAC, - 0xAA, - 0x8D, - 0x8D, - 0xC6, - 0xB0, - 0xB5, - 0xC2, - 0xC9, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x18, - 0xC2, - 0xCA, - 0xC2, - 0xA1, - 0xCA, - 0xC2, - 0xB5, - 0xC9, - 0xD2, - 0xD2, - 0xC8, - 0xC8, - 0xD9, - 0xCF, - 0xD7, - 0xDA, - 0xCF, - 0xCD, - 0xD1, - 0xCD, - 0xCD, - 0xC9, - 0xCD, - 0xB6, - 0x04, - 0xCD, - 0x01, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x08, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x0A, - 0x35, - 0x00, - 0x15, - 0xA4, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0x8E, - 0x97, - 0xCB, - 0x8D, - 0xC6, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x0A, - 0xB0, - 0xB6, - 0xA1, - 0x71, - 0xB0, - 0x71, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0x04, - 0xB0, - 0x01, - 0xC6, - 0x01, - 0xC1, - 0x06, - 0xB0, - 0x00, - 0x19, - 0xA1, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xC1, - 0xA9, - 0xC1, - 0x80, - 0x80, - 0xC1, - 0xC1, - 0x80, - 0x80, - 0x8D, - 0x8D, - 0x8E, - 0x6E, - 0xFF, - 0x06, - 0x00, - 0x04, - 0x14, - 0x00, - 0x2C, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0x73, - 0x14, - 0x14, - 0xFD, - 0xFD, - 0xFD, - 0x07, - 0x07, - 0xEE, - 0x08, - 0x07, - 0x08, - 0x07, - 0x08, - 0x07, - 0x07, - 0x07, - 0x0F, - 0xFF, - 0xF2, - 0x0A, - 0x0C, - 0x0C, - 0x0B, - 0x07, - 0x14, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0xEE, - 0x07, - 0xEE, - 0x0F, - 0xF2, - 0x0F, - 0xFF, - 0x05, - 0xE9, - 0xFF, - 0x04, - 0xEC, - 0x00, - 0x06, - 0xF3, - 0xFB, - 0xE1, - 0xE6, - 0xDC, - 0xDC, - 0x08, - 0xE3, - 0x00, - 0x08, - 0xDC, - 0xDC, - 0xE3, - 0xE3, - 0xDC, - 0xDC, - 0xE3, - 0x8A, - 0x04, - 0xDC, - 0x00, - 0x09, - 0xBA, - 0xBA, - 0x98, - 0x87, - 0x99, - 0x87, - 0x68, - 0x68, - 0x87, - 0x00, - 0x05, - 0x68, - 0x00, - 0x13, - 0x99, - 0x99, - 0x68, - 0x68, - 0x68, - 0x87, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x99, - 0x9E, - 0x00, - 0x06, - 0x99, - 0x00, - 0x17, - 0xA2, - 0x96, - 0x96, - 0x78, - 0x78, - 0x78, - 0xA2, - 0x8F, - 0x9E, - 0x8A, - 0x7D, - 0x74, - 0x42, - 0x42, - 0x42, - 0x34, - 0x42, - 0x42, - 0x3B, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0x00, - 0x06, - 0x6F, - 0x00, - 0x17, - 0x42, - 0x6E, - 0x42, - 0x31, - 0x2E, - 0x29, - 0x5A, - 0x4D, - 0x63, - 0x91, - 0x7C, - 0x64, - 0x91, - 0x64, - 0x45, - 0xA7, - 0x45, - 0xA5, - 0xA0, - 0xB4, - 0x9F, - 0xD5, - 0x8C, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x1E, - 0x8C, - 0xD5, - 0x8C, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xA7, - 0xBE, - 0x8B, - 0x59, - 0x6F, - 0x6C, - 0x7E, - 0xAD, - 0x80, - 0x8D, - 0xC6, - 0xB0, - 0xA1, - 0xC2, - 0xB5, - 0xB6, - 0xC9, - 0xC2, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0x04, - 0xA1, - 0x00, - 0x0C, - 0xB5, - 0xB5, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xD9, - 0xC8, - 0xC8, - 0xC8, - 0xD2, - 0x05, - 0xCD, - 0x00, - 0x05, - 0xD2, - 0xD1, - 0xCD, - 0xD1, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x03, - 0x79, - 0x35, - 0x79, - 0x00, - 0x06, - 0x35, - 0x00, - 0x11, - 0x52, - 0x52, - 0x52, - 0xB1, - 0xBF, - 0xAD, - 0xAC, - 0xC3, - 0x80, - 0xC6, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0x71, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x09, - 0x71, - 0x71, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0x00, - 0x08, - 0xB0, - 0x00, - 0x25, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0x80, - 0xC1, - 0xC1, - 0xA9, - 0x80, - 0xA9, - 0xC1, - 0x80, - 0xA1, - 0x71, - 0x71, - 0xB6, - 0x9B, - 0xED, - 0x07, - 0x07, - 0x00, - 0x05, - 0xFD, - 0x00, - 0x3C, - 0x14, - 0x14, - 0x73, - 0x14, - 0xFD, - 0xFD, - 0x07, - 0x07, - 0x0F, - 0x07, - 0x07, - 0x08, - 0x0F, - 0x07, - 0x07, - 0x0F, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0x05, - 0xFF, - 0xF9, - 0x04, - 0x0A, - 0x14, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x06, - 0xEE, - 0x06, - 0xF2, - 0x06, - 0xE9, - 0xE9, - 0xEC, - 0xF9, - 0xEC, - 0x0A, - 0xF9, - 0xEC, - 0xF8, - 0xE8, - 0xFB, - 0xE6, - 0xDD, - 0xDC, - 0xE3, - 0xE3, - 0xB9, - 0xE7, - 0xE3, - 0xDC, - 0xE3, - 0xDC, - 0xE3, - 0xE3, - 0x04, - 0xDC, - 0x00, - 0x15, - 0xE7, - 0xDC, - 0xE7, - 0xB9, - 0xDC, - 0xDC, - 0xBA, - 0xDC, - 0x6C, - 0x87, - 0x87, - 0x87, - 0x68, - 0x87, - 0x68, - 0x68, - 0x68, - 0x87, - 0x68, - 0x68, - 0x99, - 0x00, - 0x05, - 0x68, - 0x00, - 0x84, - 0x99, - 0x87, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x68, - 0x9E, - 0x99, - 0x9E, - 0x99, - 0x68, - 0x9E, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x78, - 0x96, - 0x96, - 0x96, - 0x99, - 0x68, - 0x82, - 0x34, - 0x31, - 0x31, - 0x46, - 0x2E, - 0x46, - 0x6F, - 0x42, - 0x42, - 0x6E, - 0x42, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0x6F, - 0x6F, - 0xBA, - 0x6F, - 0x6F, - 0x42, - 0xBA, - 0x34, - 0x42, - 0x31, - 0x46, - 0x29, - 0x5A, - 0x4D, - 0x63, - 0x63, - 0x64, - 0x64, - 0x64, - 0x45, - 0x45, - 0xA5, - 0xAF, - 0xA0, - 0xB4, - 0x9F, - 0xD5, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xBD, - 0xA0, - 0xAF, - 0xBE, - 0xA8, - 0xBC, - 0x8B, - 0x46, - 0x74, - 0x35, - 0x9B, - 0xCB, - 0x8D, - 0xC1, - 0xB0, - 0xB0, - 0xC2, - 0xB5, - 0xE0, - 0xB5, - 0xC9, - 0xE0, - 0xC2, - 0xC9, - 0xC2, - 0xC2, - 0xCA, - 0xB0, - 0xA1, - 0xB0, - 0xC2, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xDA, - 0xC8, - 0xCF, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0xC9, - 0xCD, - 0xCD, - 0xD1, - 0xCD, - 0xD1, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x35, - 0x52, - 0x00, - 0x08, - 0x35, - 0x04, - 0x79, - 0x00, - 0x1D, - 0x35, - 0x35, - 0x79, - 0x52, - 0xA4, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0xC6, - 0xA1, - 0x71, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0x00, - 0x09, - 0xB0, - 0x00, - 0x13, - 0xA9, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0x8D, - 0xA9, - 0xA9, - 0xC6, - 0x8D, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x16, - 0xB7, - 0xC1, - 0xC1, - 0x80, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0x71, - 0xA9, - 0x71, - 0x71, - 0x71, - 0xA3, - 0xE8, - 0x07, - 0x08, - 0x14, - 0x14, - 0x73, - 0x07, - 0xFD, - 0x00, - 0x15, - 0xEE, - 0xEE, - 0x0F, - 0xE5, - 0x07, - 0xF2, - 0x0F, - 0x0F, - 0xF2, - 0x07, - 0x0F, - 0x07, - 0x0F, - 0xFF, - 0xFF, - 0x0B, - 0x10, - 0x07, - 0xFD, - 0xFD, - 0xFD, - 0x00, - 0x04, - 0x08, - 0x00, - 0x19, - 0x06, - 0x06, - 0xF2, - 0xF2, - 0xFF, - 0x05, - 0x0A, - 0xE9, - 0xF9, - 0xEC, - 0xF8, - 0xEC, - 0xEB, - 0xF3, - 0xE1, - 0xED, - 0xDC, - 0xE4, - 0x98, - 0xE3, - 0xE3, - 0xE3, - 0xDC, - 0xE3, - 0xE3, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x28, - 0xE7, - 0xDC, - 0xDC, - 0xE7, - 0x8A, - 0xDC, - 0xE3, - 0xE3, - 0x74, - 0xBA, - 0xBA, - 0x81, - 0x87, - 0x87, - 0x87, - 0x68, - 0x87, - 0x87, - 0x68, - 0x87, - 0x68, - 0x68, - 0x87, - 0x68, - 0x68, - 0x68, - 0x87, - 0x87, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x68, - 0x68, - 0x9E, - 0x04, - 0x68, - 0x00, - 0x38, - 0x99, - 0x9E, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x96, - 0x96, - 0x78, - 0x78, - 0x96, - 0x8F, - 0x53, - 0x34, - 0x4E, - 0x2E, - 0x29, - 0x59, - 0x5A, - 0x59, - 0x5E, - 0x46, - 0x6F, - 0x42, - 0x42, - 0x6E, - 0x3B, - 0x74, - 0xBA, - 0xBA, - 0x6F, - 0x6F, - 0x42, - 0x6F, - 0xBA, - 0x6F, - 0x74, - 0x74, - 0x74, - 0x31, - 0x2E, - 0x2E, - 0x5A, - 0x44, - 0x75, - 0x91, - 0x64, - 0x64, - 0x89, - 0x36, - 0xAF, - 0xAF, - 0xB4, - 0xAB, - 0x9F, - 0x8C, - 0x06, - 0xC0, - 0x00, - 0x37, - 0xD5, - 0x9F, - 0x9F, - 0xBD, - 0xA0, - 0xAF, - 0xA5, - 0xBE, - 0x75, - 0x8B, - 0x59, - 0x42, - 0x8A, - 0x7E, - 0xAD, - 0x8D, - 0xA9, - 0xCA, - 0xA1, - 0xA1, - 0xC2, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xC2, - 0xC2, - 0xB5, - 0xD2, - 0xD2, - 0xD1, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xC8, - 0xD1, - 0xCD, - 0xC8, - 0xCD, - 0xD2, - 0xC9, - 0xCD, - 0xC4, - 0xD2, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x04, - 0x35, - 0x01, - 0x79, - 0x06, - 0x35, - 0x00, - 0x8D, - 0x49, - 0x35, - 0x52, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0x8E, - 0xAC, - 0xAA, - 0xAA, - 0xB0, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0x8D, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xB0, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0x80, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0x8D, - 0xC1, - 0xA9, - 0xC1, - 0xC1, - 0x80, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xA1, - 0xA9, - 0xB0, - 0x71, - 0xB6, - 0x71, - 0x71, - 0xA1, - 0x61, - 0xEB, - 0x14, - 0x14, - 0x14, - 0xFD, - 0xDF, - 0x73, - 0x14, - 0xDF, - 0xFD, - 0xFD, - 0xFD, - 0x07, - 0xEE, - 0x07, - 0x0F, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x0F, - 0x0F, - 0xFF, - 0xFF, - 0x0A, - 0x0C, - 0x0B, - 0x10, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0x14, - 0x08, - 0x14, - 0x06, - 0xF2, - 0x06, - 0xF2, - 0x05, - 0xFF, - 0xEC, - 0xFF, - 0xF9, - 0xF9, - 0xEC, - 0xEC, - 0xF8, - 0xF3, - 0xE8, - 0xFB, - 0xDD, - 0xDC, - 0xDC, - 0xE7, - 0xE3, - 0xDC, - 0xDC, - 0xE3, - 0xDC, - 0xDC, - 0xE7, - 0xDC, - 0xE7, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x09, - 0xDD, - 0xDC, - 0xDC, - 0xBA, - 0xDC, - 0xDC, - 0xDC, - 0xBA, - 0x81, - 0x00, - 0x07, - 0x87, - 0x00, - 0x09, - 0x68, - 0x87, - 0x68, - 0x68, - 0x87, - 0x68, - 0x87, - 0x68, - 0x68, - 0x00, - 0x0A, - 0x87, - 0x00, - 0x0B, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x99, - 0x9E, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x00, - 0x06, - 0x96, - 0x00, - 0x4E, - 0x68, - 0x57, - 0x4E, - 0x2E, - 0x5A, - 0x8B, - 0x75, - 0x66, - 0x66, - 0x5B, - 0x59, - 0x5E, - 0x6F, - 0x42, - 0x6E, - 0x3B, - 0x6E, - 0x42, - 0xBA, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0x6F, - 0xBA, - 0x42, - 0x74, - 0x74, - 0x34, - 0x31, - 0x38, - 0x5A, - 0x5A, - 0x44, - 0x63, - 0x63, - 0x91, - 0x89, - 0xA5, - 0x5F, - 0xA0, - 0x7F, - 0x9F, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0x7F, - 0xA0, - 0xAF, - 0xA7, - 0xA7, - 0xA8, - 0x66, - 0xB3, - 0x9A, - 0x74, - 0x49, - 0x9B, - 0x80, - 0xC6, - 0xA9, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xA1, - 0xC2, - 0x06, - 0xA1, - 0x00, - 0x16, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0xC8, - 0xD1, - 0xD1, - 0xD1, - 0xD2, - 0xC9, - 0xD2, - 0xD2, - 0xD1, - 0xD1, - 0xD1, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x03, - 0x86, - 0x52, - 0x86, - 0x00, - 0x04, - 0x35, - 0x01, - 0x52, - 0x05, - 0x35, - 0x00, - 0x54, - 0x79, - 0x35, - 0x35, - 0x79, - 0x79, - 0x86, - 0x35, - 0xA4, - 0xA3, - 0x7E, - 0xB2, - 0xB1, - 0xAC, - 0xAC, - 0x97, - 0xAA, - 0xB0, - 0xCA, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0x8D, - 0xC6, - 0xC6, - 0xB0, - 0xC6, - 0xB0, - 0xC2, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0xA9, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xA9, - 0xB6, - 0x71, - 0x71, - 0xB6, - 0x71, - 0x71, - 0x8D, - 0xA1, - 0x78, - 0xE4, - 0xF2, - 0x04, - 0xFD, - 0x01, - 0x14, - 0x04, - 0xFD, - 0x00, - 0x2E, - 0x08, - 0x07, - 0xEE, - 0x07, - 0x07, - 0xF2, - 0xFF, - 0xF2, - 0xFF, - 0xF2, - 0x0F, - 0xF9, - 0xF9, - 0x0C, - 0x04, - 0xF8, - 0x14, - 0xFD, - 0xEA, - 0x14, - 0x08, - 0x08, - 0x06, - 0x06, - 0x06, - 0x07, - 0x05, - 0x05, - 0xFF, - 0x05, - 0xF9, - 0xF9, - 0xF9, - 0x0C, - 0xF8, - 0xEB, - 0xF3, - 0xFB, - 0xE1, - 0xE6, - 0xDD, - 0xDC, - 0xE3, - 0xDC, - 0xDC, - 0xE3, - 0x04, - 0xDC, - 0x01, - 0xE7, - 0x04, - 0xDC, - 0x00, - 0x0D, - 0xDD, - 0xDD, - 0xDC, - 0xBA, - 0xDC, - 0xDC, - 0x7D, - 0x88, - 0xDC, - 0x87, - 0x87, - 0x87, - 0x81, - 0x00, - 0x07, - 0x87, - 0x00, - 0x05, - 0x68, - 0x87, - 0x87, - 0x68, - 0x68, - 0x00, - 0x07, - 0x87, - 0x00, - 0x7F, - 0x9E, - 0x87, - 0x87, - 0x68, - 0x87, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x99, - 0x68, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x96, - 0x78, - 0x96, - 0x96, - 0x99, - 0x9E, - 0x69, - 0x38, - 0x5A, - 0x5B, - 0x63, - 0x91, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x9A, - 0x42, - 0x42, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0xBA, - 0x42, - 0x6F, - 0x6F, - 0x42, - 0x42, - 0xBA, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x31, - 0x39, - 0x5A, - 0x5A, - 0x63, - 0x91, - 0x89, - 0xAF, - 0x76, - 0x7F, - 0xAB, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xAB, - 0xBD, - 0xAF, - 0xAF, - 0xA5, - 0xBE, - 0xBE, - 0x75, - 0x5B, - 0x46, - 0x42, - 0x6C, - 0xAE, - 0xAA, - 0xC1, - 0xC6, - 0xA1, - 0xB0, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xC2, - 0xE0, - 0xB5, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC8, - 0xC8, - 0xD1, - 0xC8, - 0xCF, - 0xC8, - 0xC8, - 0xCD, - 0xCD, - 0xC9, - 0xC4, - 0xC9, - 0xD1, - 0xD2, - 0xC4, - 0xC4, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x79, - 0x79, - 0x00, - 0x08, - 0x35, - 0x00, - 0x14, - 0x79, - 0x49, - 0x86, - 0x86, - 0x52, - 0xB2, - 0x52, - 0x9B, - 0x9B, - 0x8E, - 0xAC, - 0xAA, - 0x80, - 0x80, - 0x8D, - 0xC6, - 0x8D, - 0xC1, - 0xAA, - 0x80, - 0x04, - 0xAA, - 0x04, - 0x8D, - 0x00, - 0x0B, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xB0, - 0xC6, - 0xC6, - 0xC1, - 0x00, - 0x05, - 0x8D, - 0x00, - 0x25, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0x8D, - 0x8D, - 0xC1, - 0x80, - 0xA9, - 0x80, - 0x8D, - 0x8D, - 0xA9, - 0xC1, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0xA9, - 0xB6, - 0x71, - 0x71, - 0xA9, - 0xA9, - 0x71, - 0x78, - 0x71, - 0x71, - 0x8F, - 0xEB, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x2D, - 0xDF, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x0F, - 0x0F, - 0x07, - 0xF2, - 0x0F, - 0xF2, - 0x0F, - 0x0F, - 0xFF, - 0xFF, - 0xF9, - 0x0C, - 0x0D, - 0xF9, - 0xFD, - 0xFD, - 0x14, - 0x14, - 0x14, - 0x08, - 0xEA, - 0x06, - 0xEE, - 0x05, - 0x06, - 0xE9, - 0xFF, - 0xF9, - 0xFF, - 0xF9, - 0x0C, - 0xE2, - 0xEB, - 0xF8, - 0xE8, - 0xDB, - 0xE1, - 0xDD, - 0xDD, - 0x00, - 0x04, - 0xDC, - 0x01, - 0xDD, - 0x04, - 0xDC, - 0x00, - 0x14, - 0xDD, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xBA, - 0xDC, - 0xBA, - 0xDD, - 0x7D, - 0xDD, - 0x83, - 0x81, - 0x81, - 0x87, - 0x81, - 0x87, - 0x81, - 0x09, - 0x87, - 0x00, - 0x6E, - 0x81, - 0x81, - 0x87, - 0x87, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x87, - 0x99, - 0x68, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x96, - 0x96, - 0x99, - 0x68, - 0x50, - 0x4E, - 0x5B, - 0x91, - 0x45, - 0x89, - 0x89, - 0x89, - 0x45, - 0xA8, - 0x5B, - 0x59, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x74, - 0xBA, - 0x42, - 0xBA, - 0xBA, - 0xBA, - 0x42, - 0x42, - 0x3B, - 0x3B, - 0x42, - 0x33, - 0x2E, - 0x27, - 0x5A, - 0x3A, - 0x75, - 0x45, - 0x36, - 0x76, - 0x7F, - 0x7F, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0x85, - 0xC0, - 0xD5, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA0, - 0xAF, - 0xA5, - 0xA5, - 0xBE, - 0xA8, - 0xBC, - 0x59, - 0x46, - 0x7D, - 0x52, - 0xAC, - 0x8D, - 0xA9, - 0xB0, - 0xCA, - 0xC2, - 0xB5, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xB5, - 0xC2, - 0xC2, - 0xA1, - 0x05, - 0xB0, - 0x00, - 0x14, - 0xA1, - 0xB5, - 0xD2, - 0xD2, - 0xC4, - 0xC8, - 0xCF, - 0xCF, - 0xCF, - 0xC8, - 0xD2, - 0xD1, - 0xCD, - 0xD2, - 0xCD, - 0xC9, - 0xD2, - 0xC9, - 0xC9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x4C, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x86, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xB1, - 0x9B, - 0xAD, - 0xCB, - 0xC3, - 0x80, - 0x8D, - 0xAA, - 0x8D, - 0x80, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0x8D, - 0xC6, - 0xAA, - 0x8D, - 0x8D, - 0xA9, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xC6, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0x80, - 0xC1, - 0x8D, - 0x8D, - 0x80, - 0xA9, - 0x8D, - 0xC1, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x80, - 0xA9, - 0x8D, - 0x05, - 0xA9, - 0x00, - 0x0C, - 0xB0, - 0x71, - 0xB0, - 0x71, - 0x71, - 0xB0, - 0x71, - 0x71, - 0x71, - 0xC1, - 0x78, - 0xC1, - 0x04, - 0x71, - 0x00, - 0x04, - 0x78, - 0xDB, - 0x08, - 0xEE, - 0x05, - 0xFD, - 0x00, - 0x29, - 0x08, - 0x08, - 0x07, - 0x07, - 0xF2, - 0x07, - 0x0F, - 0xF2, - 0xF2, - 0xF2, - 0xFF, - 0xFF, - 0x0C, - 0x0B, - 0xF8, - 0x07, - 0xFD, - 0x14, - 0xFD, - 0x08, - 0x06, - 0x08, - 0x08, - 0x06, - 0x06, - 0x06, - 0x05, - 0xF2, - 0xFF, - 0x0A, - 0xFF, - 0xF9, - 0x0A, - 0xEB, - 0xF8, - 0xE8, - 0xFB, - 0xDB, - 0xFA, - 0xD6, - 0xDD, - 0x00, - 0x04, - 0xDC, - 0x01, - 0xDD, - 0x04, - 0xDC, - 0x00, - 0x09, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xDD, - 0xBA, - 0xDD, - 0xDC, - 0xDD, - 0x00, - 0x04, - 0xBA, - 0x05, - 0x81, - 0x00, - 0x04, - 0x87, - 0x87, - 0x87, - 0x81, - 0x04, - 0x87, - 0x00, - 0x08, - 0x81, - 0x87, - 0x87, - 0x81, - 0x87, - 0x81, - 0x81, - 0x98, - 0x04, - 0x81, - 0x05, - 0x87, - 0x00, - 0x09, - 0x9E, - 0x68, - 0x87, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x99, - 0x99, - 0x00, - 0x05, - 0x96, - 0x00, - 0x6B, - 0x99, - 0x98, - 0x6A, - 0x46, - 0x3A, - 0x91, - 0x89, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x45, - 0x91, - 0x8B, - 0x59, - 0x9A, - 0x42, - 0x42, - 0x61, - 0x4A, - 0x3B, - 0x74, - 0x42, - 0xBA, - 0x74, - 0xBA, - 0x42, - 0xBA, - 0xBA, - 0x74, - 0x74, - 0x7D, - 0x42, - 0x33, - 0x38, - 0x2E, - 0x29, - 0x4D, - 0x45, - 0xA7, - 0xAF, - 0x2F, - 0xAB, - 0x55, - 0xD5, - 0x32, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA7, - 0x91, - 0xBC, - 0x5A, - 0xD6, - 0x88, - 0xA3, - 0xAD, - 0x80, - 0x8D, - 0xA1, - 0xB0, - 0xB5, - 0xA1, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xA9, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0xA1, - 0xA1, - 0xC9, - 0xC9, - 0xD2, - 0xCD, - 0xC4, - 0xC8, - 0xC8, - 0xC8, - 0xD1, - 0xC9, - 0xC9, - 0xCD, - 0xB6, - 0xE0, - 0xC9, - 0xB5, - 0xC4, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x01, - 0x52, - 0x05, - 0x35, - 0x00, - 0x3B, - 0x52, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x86, - 0x52, - 0xA3, - 0x7E, - 0xB2, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xCB, - 0xB7, - 0xAA, - 0xAA, - 0xAA, - 0x80, - 0x80, - 0x8D, - 0xAA, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0xB0, - 0xC6, - 0xC6, - 0xC6, - 0xC1, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0xA9, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x20, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x8D, - 0xA9, - 0xB0, - 0xA9, - 0xB0, - 0x71, - 0xB0, - 0x71, - 0xA9, - 0xB0, - 0x71, - 0xC2, - 0x71, - 0xA9, - 0xC1, - 0x71, - 0xC1, - 0x71, - 0x71, - 0x78, - 0x78, - 0x71, - 0x71, - 0x78, - 0xA1, - 0xE6, - 0x07, - 0xEA, - 0x05, - 0xFD, - 0x01, - 0x08, - 0x01, - 0x08, - 0x04, - 0x07, - 0x00, - 0x27, - 0xF2, - 0xF2, - 0xFF, - 0xFF, - 0xFF, - 0x0C, - 0xF9, - 0x0F, - 0x07, - 0x14, - 0xEA, - 0x08, - 0xFD, - 0xFD, - 0x08, - 0x08, - 0x06, - 0x07, - 0x05, - 0xF2, - 0x05, - 0xFF, - 0xE9, - 0xF9, - 0x0A, - 0xE2, - 0x0C, - 0xEB, - 0xFB, - 0xE8, - 0xED, - 0xE1, - 0xDD, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0x00, - 0x0A, - 0xDD, - 0x01, - 0xBA, - 0x01, - 0xDD, - 0x04, - 0xBA, - 0x00, - 0x03, - 0x83, - 0x81, - 0x77, - 0x00, - 0x06, - 0x81, - 0x01, - 0x87, - 0x04, - 0x81, - 0x01, - 0x87, - 0x0A, - 0x81, - 0x01, - 0x98, - 0x01, - 0x81, - 0x06, - 0x87, - 0x00, - 0x08, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x99, - 0x99, - 0x99, - 0x04, - 0x96, - 0x00, - 0x4E, - 0x68, - 0x82, - 0x88, - 0x39, - 0x5B, - 0x91, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0x5F, - 0x89, - 0xBE, - 0x91, - 0x5A, - 0x2E, - 0x6F, - 0x42, - 0x74, - 0x3B, - 0x6B, - 0x3B, - 0x3B, - 0x42, - 0xBA, - 0x42, - 0xBA, - 0x42, - 0x42, - 0x74, - 0x74, - 0x6C, - 0x56, - 0x88, - 0x31, - 0x2E, - 0x39, - 0x5B, - 0x75, - 0x89, - 0x76, - 0x76, - 0x9F, - 0x8C, - 0xD5, - 0xC0, - 0xCC, - 0xC0, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA7, - 0xBE, - 0xA8, - 0x8B, - 0x39, - 0xDD, - 0x8A, - 0x9B, - 0x80, - 0x8D, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC9, - 0xB6, - 0xC2, - 0x05, - 0xA1, - 0x00, - 0x18, - 0xB0, - 0xC6, - 0xB0, - 0xA9, - 0xB5, - 0xCA, - 0xC9, - 0xB5, - 0xCD, - 0xCD, - 0xC8, - 0xC4, - 0xD2, - 0xC4, - 0xD1, - 0xD1, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0xB5, - 0xC9, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x06, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x08, - 0x35, - 0x01, - 0x79, - 0x08, - 0x35, - 0x00, - 0x0D, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x16, - 0xB8, - 0xC3, - 0xAA, - 0xC3, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0xAA, - 0x80, - 0xC6, - 0xC6, - 0xA9, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0xA9, - 0x04, - 0x8D, - 0x00, - 0x05, - 0xA9, - 0xC6, - 0xC6, - 0xA9, - 0x8D, - 0x00, - 0x07, - 0xA9, - 0x00, - 0x43, - 0x71, - 0xA9, - 0x71, - 0xB6, - 0xB0, - 0xB6, - 0x71, - 0x71, - 0x71, - 0xC1, - 0xA9, - 0x78, - 0x78, - 0xA9, - 0x78, - 0x78, - 0x71, - 0x71, - 0x71, - 0x78, - 0x71, - 0x78, - 0x6E, - 0xF2, - 0xFD, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0xFD, - 0x08, - 0x07, - 0xEE, - 0x0F, - 0x0F, - 0x07, - 0xF2, - 0x07, - 0xFF, - 0x0F, - 0xFF, - 0x0F, - 0x07, - 0xEE, - 0xFD, - 0xEA, - 0x14, - 0x08, - 0x14, - 0x08, - 0xEE, - 0x06, - 0x07, - 0xF2, - 0xFF, - 0x05, - 0xFF, - 0x0A, - 0xFF, - 0xF9, - 0x0C, - 0xEB, - 0xF3, - 0xE8, - 0xDB, - 0xED, - 0xED, - 0x00, - 0x11, - 0xDD, - 0x00, - 0x0A, - 0xBA, - 0xDD, - 0xBA, - 0xBA, - 0xBA, - 0x88, - 0x83, - 0x77, - 0x81, - 0x77, - 0x07, - 0x81, - 0x01, - 0x87, - 0x0C, - 0x81, - 0x00, - 0x79, - 0x98, - 0x81, - 0x98, - 0x81, - 0x81, - 0x87, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x99, - 0x68, - 0x99, - 0x96, - 0x99, - 0x96, - 0x96, - 0xA2, - 0x68, - 0x82, - 0x88, - 0x2E, - 0x5B, - 0x63, - 0x89, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x5F, - 0x89, - 0x64, - 0xA8, - 0x8B, - 0x5E, - 0x6F, - 0x42, - 0x3B, - 0x3B, - 0x56, - 0x6D, - 0x3B, - 0x74, - 0x74, - 0x42, - 0xBA, - 0x74, - 0xBA, - 0x74, - 0x74, - 0x56, - 0x57, - 0x34, - 0x33, - 0x38, - 0x5A, - 0x75, - 0x45, - 0xA5, - 0x7F, - 0xAB, - 0x8C, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0xAB, - 0xB4, - 0xB4, - 0xAF, - 0xAF, - 0xAF, - 0xD0, - 0xA5, - 0x45, - 0xA8, - 0x8B, - 0x5A, - 0x31, - 0x6C, - 0x9B, - 0x97, - 0x8D, - 0xB0, - 0xA1, - 0xA1, - 0xCD, - 0xE0, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xC2, - 0xB5, - 0xA1, - 0xC4, - 0xC9, - 0xC4, - 0xD2, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x05, - 0xB5, - 0x02, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x09, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x79, - 0x35, - 0x86, - 0x52, - 0x00, - 0x04, - 0x35, - 0x01, - 0x49, - 0x01, - 0x52, - 0x07, - 0x35, - 0x00, - 0x0F, - 0x86, - 0x86, - 0x52, - 0xB2, - 0xB2, - 0x7E, - 0x9B, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x03, - 0xAC, - 0xC3, - 0xAC, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x63, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xA9, - 0x8D, - 0x80, - 0x8D, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0xC1, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0xB0, - 0xB6, - 0xA9, - 0x71, - 0x71, - 0x71, - 0xA9, - 0xB0, - 0xC1, - 0xA9, - 0xC1, - 0x78, - 0xC1, - 0x78, - 0x71, - 0x78, - 0x78, - 0x71, - 0x71, - 0x71, - 0x78, - 0x78, - 0x97, - 0x61, - 0xE9, - 0x14, - 0xFD, - 0x08, - 0x08, - 0x08, - 0x07, - 0x08, - 0x07, - 0x07, - 0x07, - 0xF2, - 0x0F, - 0xF2, - 0xF2, - 0x0F, - 0x07, - 0xFD, - 0x08, - 0xEE, - 0x08, - 0x08, - 0xEA, - 0x08, - 0xEA, - 0x06, - 0x06, - 0x08, - 0x06, - 0x0F, - 0xFF, - 0xF2, - 0xFF, - 0xE9, - 0xE9, - 0x0C, - 0xEC, - 0x04, - 0xE8, - 0xFB, - 0xFB, - 0xE1, - 0xDD, - 0xD6, - 0xDD, - 0xFA, - 0x00, - 0x05, - 0xDD, - 0x00, - 0x18, - 0xD6, - 0xDD, - 0xDD, - 0xD6, - 0xDD, - 0xE1, - 0xDD, - 0xDD, - 0xD6, - 0xDD, - 0x46, - 0xDD, - 0xBA, - 0x31, - 0xDD, - 0x77, - 0x77, - 0x83, - 0x81, - 0x83, - 0x81, - 0x81, - 0x81, - 0x87, - 0x07, - 0x81, - 0x00, - 0x0E, - 0x77, - 0x81, - 0x77, - 0x77, - 0x81, - 0x77, - 0x81, - 0x57, - 0x81, - 0x81, - 0x81, - 0x87, - 0x98, - 0x81, - 0x05, - 0x87, - 0x00, - 0x06, - 0x68, - 0x99, - 0x87, - 0x99, - 0x99, - 0x99, - 0x04, - 0x96, - 0x00, - 0x08, - 0x68, - 0x82, - 0x88, - 0x4E, - 0x5A, - 0x63, - 0x89, - 0x89, - 0x04, - 0x7A, - 0x00, - 0x5F, - 0x5F, - 0xA5, - 0x64, - 0x66, - 0x8B, - 0x46, - 0x6F, - 0x3B, - 0x74, - 0x4A, - 0x6B, - 0x3B, - 0x3B, - 0x6E, - 0xBA, - 0x42, - 0xBA, - 0x74, - 0x74, - 0x3B, - 0x3B, - 0x56, - 0x57, - 0x69, - 0x31, - 0x5E, - 0x5B, - 0x45, - 0xAF, - 0x7F, - 0xAB, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0x9F, - 0xBD, - 0xA0, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xA7, - 0xBE, - 0x66, - 0x59, - 0x46, - 0x6C, - 0x9B, - 0xAC, - 0xB0, - 0xC6, - 0xA1, - 0xA1, - 0xA1, - 0xC9, - 0xB5, - 0xE0, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xB5, - 0xC9, - 0xC4, - 0xC9, - 0xC9, - 0xD2, - 0xD1, - 0xD2, - 0xC9, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xC2, - 0xB5, - 0xC9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x35, - 0x86, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x00, - 0x08, - 0x35, - 0x00, - 0x1D, - 0x79, - 0x35, - 0x35, - 0xB9, - 0x79, - 0x35, - 0x49, - 0x52, - 0x52, - 0xB2, - 0xB1, - 0xAE, - 0xC5, - 0x8E, - 0x97, - 0xC3, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xB7, - 0xCB, - 0xC3, - 0xAA, - 0xAC, - 0xC3, - 0xAC, - 0xC3, - 0xAC, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x2C, - 0xC1, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0x8D, - 0x80, - 0x8D, - 0xC1, - 0x8D, - 0x8D, - 0x8D, - 0xC6, - 0xA9, - 0x8D, - 0xB0, - 0xA9, - 0xC1, - 0xC2, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0xA1, - 0xA9, - 0x71, - 0x71, - 0xB6, - 0x71, - 0xB6, - 0xB0, - 0xA9, - 0xB6, - 0x71, - 0xA9, - 0xC1, - 0x78, - 0xC1, - 0x78, - 0xC1, - 0xC1, - 0x78, - 0x78, - 0x04, - 0x71, - 0x00, - 0x3B, - 0x78, - 0x97, - 0xAC, - 0xB9, - 0xE9, - 0x08, - 0x08, - 0x14, - 0x08, - 0x08, - 0x07, - 0x07, - 0x0F, - 0xF2, - 0x07, - 0x0F, - 0x07, - 0x08, - 0x08, - 0x08, - 0xFD, - 0xFD, - 0x07, - 0xEE, - 0xFD, - 0xEE, - 0x08, - 0x08, - 0xEE, - 0xEE, - 0x07, - 0x0F, - 0x0F, - 0xF2, - 0x05, - 0xE9, - 0x05, - 0xF9, - 0x0A, - 0xEB, - 0xF8, - 0xFB, - 0xE8, - 0xED, - 0xE1, - 0xE1, - 0xDD, - 0xDD, - 0xE1, - 0xDD, - 0xE1, - 0xDD, - 0xE1, - 0xD6, - 0xD6, - 0xDD, - 0xE1, - 0xDD, - 0xDD, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x1F, - 0xDD, - 0xDD, - 0xD6, - 0x88, - 0x46, - 0x88, - 0x83, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x81, - 0x77, - 0x81, - 0x81, - 0x83, - 0x81, - 0x83, - 0x81, - 0x83, - 0x81, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x77, - 0x00, - 0x04, - 0x81, - 0x00, - 0x3C, - 0x98, - 0x81, - 0x87, - 0x87, - 0x81, - 0x9E, - 0x87, - 0x87, - 0x68, - 0x99, - 0x68, - 0x96, - 0x96, - 0x96, - 0x78, - 0x96, - 0x68, - 0x53, - 0x34, - 0x46, - 0x5A, - 0x63, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x5F, - 0x89, - 0x45, - 0x66, - 0x5A, - 0x5E, - 0x6F, - 0x42, - 0x3B, - 0x4A, - 0x6B, - 0x6C, - 0x74, - 0x3B, - 0x6E, - 0xBA, - 0x74, - 0x42, - 0x74, - 0x6C, - 0x56, - 0x6B, - 0x6B, - 0x34, - 0x2E, - 0x8B, - 0x45, - 0xA5, - 0x76, - 0x9F, - 0x9F, - 0x04, - 0xC0, - 0x00, - 0x09, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x00, - 0x04, - 0xAF, - 0x00, - 0x16, - 0xA7, - 0xBE, - 0x75, - 0x90, - 0x9A, - 0x6C, - 0x7E, - 0xAC, - 0x80, - 0xB0, - 0xA1, - 0xA1, - 0xC2, - 0xA1, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0x8D, - 0x04, - 0xB0, - 0x00, - 0x06, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xE0, - 0xB5, - 0x06, - 0xC9, - 0x00, - 0x08, - 0xB5, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x35, - 0x35, - 0x52, - 0x52, - 0x35, - 0x79, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x7F, - 0x52, - 0x79, - 0x79, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0x79, - 0xA4, - 0xB2, - 0x52, - 0x9B, - 0xB1, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAA, - 0xAC, - 0xAC, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0x8D, - 0x80, - 0xAA, - 0x8D, - 0xC1, - 0xAA, - 0x80, - 0x8D, - 0xA9, - 0x8D, - 0xA9, - 0xA9, - 0xB0, - 0xB0, - 0x71, - 0xA9, - 0x71, - 0x71, - 0xA1, - 0x71, - 0xA1, - 0xB6, - 0xB5, - 0xB6, - 0xC2, - 0xB6, - 0x71, - 0x71, - 0xA9, - 0x78, - 0xA9, - 0xC1, - 0x78, - 0xB7, - 0x78, - 0xC1, - 0x78, - 0x78, - 0xC1, - 0xC1, - 0x71, - 0x71, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0xA2, - 0x9C, - 0xEB, - 0x08, - 0x07, - 0x08, - 0x08, - 0x07, - 0x08, - 0x08, - 0x07, - 0x07, - 0xEE, - 0xEE, - 0xEE, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0xEE, - 0xEE, - 0xEE, - 0xFD, - 0xEE, - 0x08, - 0x08, - 0xEE, - 0x06, - 0x0F, - 0xF2, - 0xE9, - 0x05, - 0x05, - 0xEC, - 0x0A, - 0xE2, - 0x0C, - 0xE8, - 0xE8, - 0xDB, - 0x00, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xED, - 0xE1, - 0xE1, - 0xD6, - 0x05, - 0xE1, - 0x00, - 0x0D, - 0xD6, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0xDD, - 0xDD, - 0xD6, - 0xBA, - 0x72, - 0x00, - 0x04, - 0x83, - 0x00, - 0x15, - 0x81, - 0x83, - 0x83, - 0x83, - 0x81, - 0x83, - 0x81, - 0x83, - 0x83, - 0x81, - 0x83, - 0x81, - 0x83, - 0x77, - 0x69, - 0x77, - 0x83, - 0x77, - 0x77, - 0x81, - 0x77, - 0x00, - 0x06, - 0x81, - 0x00, - 0x18, - 0x98, - 0x87, - 0x98, - 0x87, - 0x87, - 0x68, - 0x87, - 0x68, - 0x99, - 0x68, - 0x96, - 0x96, - 0x99, - 0x96, - 0x96, - 0x87, - 0x57, - 0x33, - 0x5A, - 0x66, - 0x91, - 0x89, - 0x5F, - 0x76, - 0x04, - 0x7A, - 0x00, - 0x2C, - 0x36, - 0x89, - 0x91, - 0x75, - 0x59, - 0x46, - 0x42, - 0x42, - 0x3B, - 0x6B, - 0x5D, - 0x6C, - 0x6C, - 0x74, - 0x74, - 0x74, - 0x6E, - 0x74, - 0x3B, - 0x3B, - 0x8A, - 0x82, - 0x57, - 0x31, - 0x5A, - 0xA8, - 0xA5, - 0xA0, - 0xAB, - 0x8C, - 0xC0, - 0x32, - 0xCC, - 0x85, - 0xC0, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xAF, - 0xAF, - 0x04, - 0xA5, - 0x00, - 0x2D, - 0xBE, - 0xA8, - 0x8B, - 0x5E, - 0x74, - 0x52, - 0xAC, - 0x8D, - 0xCA, - 0xB0, - 0xB0, - 0xB5, - 0xC9, - 0xB5, - 0xC9, - 0xE0, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0x8D, - 0xB6, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xCA, - 0xC2, - 0xB6, - 0xC2, - 0xCA, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x01, - 0x52, - 0x05, - 0x35, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x06, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x79, - 0x04, - 0x35, - 0x00, - 0x2A, - 0x79, - 0x79, - 0x79, - 0x49, - 0x52, - 0xA3, - 0xB2, - 0xB1, - 0x9B, - 0x8E, - 0xC3, - 0xAA, - 0xAA, - 0x8D, - 0xC6, - 0x8D, - 0x8D, - 0x80, - 0xAA, - 0xC3, - 0xAA, - 0xC3, - 0xCB, - 0xC3, - 0xC3, - 0xAA, - 0xAC, - 0xAC, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xC3, - 0xAA, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0x8D, - 0x80, - 0x8D, - 0x04, - 0xA9, - 0x00, - 0x53, - 0x71, - 0xA9, - 0x71, - 0xB6, - 0xB0, - 0x71, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xB0, - 0x71, - 0xA9, - 0xA9, - 0x71, - 0x78, - 0xC1, - 0x78, - 0x78, - 0xC1, - 0xB7, - 0x78, - 0x78, - 0xC1, - 0x71, - 0x78, - 0x71, - 0x71, - 0x71, - 0x96, - 0x96, - 0x96, - 0x99, - 0xA2, - 0x94, - 0xED, - 0xFF, - 0x07, - 0x0F, - 0xF2, - 0x0F, - 0xF2, - 0x07, - 0xF2, - 0x07, - 0x07, - 0xEE, - 0xFD, - 0xFD, - 0xFD, - 0x08, - 0xEE, - 0x07, - 0xEE, - 0xEE, - 0xEE, - 0x07, - 0x07, - 0x07, - 0x0F, - 0x07, - 0xFF, - 0xE9, - 0xF2, - 0x05, - 0xE9, - 0xF9, - 0xEC, - 0xEB, - 0xE8, - 0xE8, - 0xED, - 0xDB, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xED, - 0xFB, - 0xED, - 0x00, - 0x09, - 0xE1, - 0x04, - 0xD6, - 0x00, - 0x0A, - 0x4E, - 0x4E, - 0xDD, - 0xD6, - 0x88, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x04, - 0x83, - 0x01, - 0x77, - 0x0A, - 0x83, - 0x00, - 0x22, - 0x77, - 0x77, - 0x77, - 0x81, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x87, - 0x81, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x68, - 0x99, - 0x99, - 0x96, - 0x96, - 0x99, - 0x99, - 0x96, - 0x82, - 0x7D, - 0x31, - 0x5E, - 0x5B, - 0x91, - 0x45, - 0x89, - 0x06, - 0x7A, - 0x00, - 0x44, - 0x5F, - 0x89, - 0x91, - 0x66, - 0x29, - 0x9A, - 0x42, - 0x74, - 0x3B, - 0x6B, - 0x5D, - 0x6C, - 0x6C, - 0x6C, - 0x74, - 0x74, - 0x3B, - 0x56, - 0x3B, - 0x6C, - 0x6B, - 0x56, - 0x42, - 0x90, - 0xBC, - 0xA5, - 0xA0, - 0xAB, - 0x9F, - 0xC0, - 0xC0, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0xC0, - 0x8C, - 0x9F, - 0xB4, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xD0, - 0xAF, - 0xD0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0x5E, - 0x74, - 0x86, - 0xAD, - 0x80, - 0xB0, - 0xB0, - 0xB5, - 0xA1, - 0xB5, - 0xB5, - 0xE0, - 0xB5, - 0xC2, - 0xC2, - 0xA1, - 0xA1, - 0xA1, - 0x05, - 0xB0, - 0x00, - 0x13, - 0xC6, - 0xA1, - 0xA1, - 0xC2, - 0xA1, - 0xB5, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB0, - 0xA1, - 0xA1, - 0xCA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x06, - 0x35, - 0x00, - 0x4F, - 0x49, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x52, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0xB8, - 0xC3, - 0x80, - 0x8D, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xC1, - 0x80, - 0xAA, - 0xAA, - 0xAA, - 0x97, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0x80, - 0x8D, - 0xA9, - 0xC6, - 0xC6, - 0xB0, - 0x71, - 0xC2, - 0xC2, - 0xC2, - 0x71, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xA9, - 0x71, - 0xA9, - 0xC1, - 0xB7, - 0xC1, - 0x78, - 0x78, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x1D, - 0x96, - 0x96, - 0x96, - 0x99, - 0x99, - 0x68, - 0x8F, - 0x6F, - 0xF8, - 0xFF, - 0xFF, - 0xFF, - 0x0F, - 0x07, - 0xF2, - 0xEE, - 0x07, - 0xEE, - 0x08, - 0xFD, - 0xFD, - 0xFD, - 0xEE, - 0xEE, - 0xEE, - 0x07, - 0xEE, - 0xEE, - 0x07, - 0x00, - 0x05, - 0xF2, - 0x00, - 0x12, - 0xFF, - 0xE9, - 0xF9, - 0xEC, - 0xF9, - 0xE8, - 0xF3, - 0xFB, - 0xDB, - 0xE1, - 0xED, - 0xED, - 0xDB, - 0xE8, - 0xE8, - 0xDB, - 0xE8, - 0xDB, - 0x05, - 0xE1, - 0x00, - 0x10, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xE1, - 0xD6, - 0xD6, - 0xDD, - 0xD6, - 0x46, - 0x4E, - 0x72, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x04, - 0x83, - 0x01, - 0x6A, - 0x0C, - 0x83, - 0x00, - 0x0C, - 0x69, - 0x83, - 0x83, - 0x81, - 0x57, - 0x81, - 0x77, - 0x81, - 0x77, - 0x81, - 0x81, - 0x81, - 0x05, - 0x87, - 0x00, - 0x3E, - 0x99, - 0x68, - 0x99, - 0x99, - 0x96, - 0x96, - 0x99, - 0x68, - 0x98, - 0x56, - 0x31, - 0x2E, - 0x90, - 0x75, - 0x89, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x7A, - 0x5F, - 0x5F, - 0x89, - 0x91, - 0x66, - 0x59, - 0x31, - 0x42, - 0x3B, - 0x6C, - 0x5D, - 0x5D, - 0x6C, - 0x3B, - 0x6C, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x56, - 0x6C, - 0x56, - 0x42, - 0x5E, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0xC0, - 0x85, - 0x85, - 0x8C, - 0x9F, - 0xAB, - 0xAB, - 0xA0, - 0x04, - 0xAF, - 0x00, - 0x1C, - 0xA5, - 0xAF, - 0xA5, - 0xA7, - 0x45, - 0xBC, - 0x59, - 0x6F, - 0x6B, - 0xC5, - 0xAA, - 0xB0, - 0xB0, - 0xA1, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xC9, - 0xB5, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0xA1, - 0x04, - 0xB0, - 0x01, - 0xA1, - 0x01, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xC9, - 0xC2, - 0xB5, - 0xB0, - 0xC6, - 0xC2, - 0xC2, - 0xB0, - 0xA1, - 0xC2, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x52, - 0x35, - 0x86, - 0x0B, - 0x35, - 0x00, - 0x1C, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x52, - 0x86, - 0xA4, - 0x7E, - 0xB2, - 0xBF, - 0x9B, - 0xC3, - 0xC3, - 0xAA, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xC6, - 0xC6, - 0xAA, - 0xAA, - 0xAA, - 0x04, - 0xC3, - 0x00, - 0x2F, - 0xAC, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xC3, - 0xB7, - 0xB7, - 0xB7, - 0x8D, - 0x8D, - 0x8D, - 0xA9, - 0xA9, - 0x71, - 0xB0, - 0xB0, - 0x71, - 0xB6, - 0x71, - 0xB6, - 0xB0, - 0xB6, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0xB6, - 0xA9, - 0x71, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0x78, - 0xC1, - 0x78, - 0x78, - 0x78, - 0x97, - 0x71, - 0x78, - 0x00, - 0x04, - 0x71, - 0x00, - 0x36, - 0x78, - 0x96, - 0xAD, - 0xA2, - 0x99, - 0x8F, - 0x99, - 0x9E, - 0x94, - 0x98, - 0x42, - 0xE6, - 0xE8, - 0xEC, - 0xFF, - 0xF2, - 0xF2, - 0xEE, - 0xEE, - 0xEE, - 0x08, - 0xFD, - 0x08, - 0xEE, - 0xEE, - 0x07, - 0x07, - 0xEE, - 0x07, - 0xE5, - 0x07, - 0xF2, - 0xFF, - 0xE9, - 0xFF, - 0xFF, - 0xEC, - 0xF9, - 0xEC, - 0xEB, - 0xF3, - 0xE8, - 0xE8, - 0xDB, - 0xE1, - 0xE1, - 0xFB, - 0xE8, - 0xE8, - 0xEB, - 0xD8, - 0xF3, - 0xED, - 0xDB, - 0x06, - 0xE1, - 0x00, - 0x23, - 0xD6, - 0xE1, - 0xB3, - 0xD6, - 0xDD, - 0xD6, - 0x72, - 0xD6, - 0x5E, - 0x6A, - 0x65, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x69, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x83, - 0x77, - 0x83, - 0x00, - 0x04, - 0x77, - 0x00, - 0x08, - 0x81, - 0x77, - 0x53, - 0x87, - 0x81, - 0x87, - 0x87, - 0x87, - 0x04, - 0x68, - 0x00, - 0x55, - 0x96, - 0x99, - 0x99, - 0x99, - 0x9E, - 0x53, - 0x74, - 0x42, - 0x5E, - 0x59, - 0x66, - 0xA8, - 0x89, - 0x36, - 0x5F, - 0x5F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x5F, - 0x89, - 0x91, - 0x5B, - 0x59, - 0x46, - 0x74, - 0x74, - 0x6B, - 0x5D, - 0x82, - 0x5D, - 0x4A, - 0x56, - 0x6C, - 0x6C, - 0x3B, - 0x56, - 0x6C, - 0x6E, - 0x42, - 0x5E, - 0xBC, - 0xA7, - 0xBD, - 0xB4, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x8C, - 0xB4, - 0xB4, - 0xA0, - 0xD0, - 0xAF, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xAF, - 0xA7, - 0xBE, - 0xA8, - 0x90, - 0x9A, - 0x4A, - 0xAE, - 0xAC, - 0x8D, - 0xB0, - 0xB0, - 0xB5, - 0xB5, - 0xC9, - 0xB5, - 0xB5, - 0xA1, - 0xC2, - 0xC2, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x11, - 0x8D, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xB5, - 0xC2, - 0xB5, - 0xA1, - 0xA1, - 0x71, - 0x00, - 0x05, - 0xB0, - 0x00, - 0x00, - 0x0B, - 0x35, - 0x00, - 0x05, - 0x86, - 0x35, - 0x79, - 0x79, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x15, - 0x79, - 0x79, - 0x35, - 0x35, - 0x86, - 0x52, - 0xA3, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0x80, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xC6, - 0xC1, - 0x8D, - 0x8D, - 0x00, - 0x04, - 0xAA, - 0x04, - 0xC3, - 0x00, - 0x28, - 0xAC, - 0xC5, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC1, - 0xC1, - 0xA9, - 0xA9, - 0xC6, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0xA9, - 0xB6, - 0xB6, - 0x71, - 0xB6, - 0x71, - 0xB0, - 0x71, - 0xA9, - 0x71, - 0x71, - 0xC1, - 0x71, - 0x78, - 0x78, - 0xC1, - 0xB7, - 0x78, - 0xB8, - 0x05, - 0x78, - 0x00, - 0x09, - 0x71, - 0x71, - 0x71, - 0x78, - 0x96, - 0x78, - 0xA2, - 0xA2, - 0xA2, - 0x00, - 0x04, - 0x9E, - 0x00, - 0x0A, - 0x98, - 0x94, - 0x87, - 0x82, - 0x61, - 0x9A, - 0xE8, - 0xEC, - 0xF2, - 0x07, - 0x06, - 0xEE, - 0x00, - 0x30, - 0xE5, - 0xE5, - 0xF2, - 0xE5, - 0x0F, - 0xF2, - 0xF2, - 0xF2, - 0xE9, - 0xE9, - 0xE9, - 0xEC, - 0xEC, - 0xF9, - 0xEB, - 0xEB, - 0xE8, - 0xDB, - 0xE8, - 0xE1, - 0xED, - 0xD8, - 0xEB, - 0xE2, - 0xF9, - 0x0B, - 0xE8, - 0xD8, - 0xE8, - 0xE1, - 0xDB, - 0xE1, - 0xE1, - 0x90, - 0xE1, - 0xED, - 0xD6, - 0xD6, - 0xD6, - 0x46, - 0xD6, - 0xD6, - 0x4E, - 0x4E, - 0x72, - 0x6A, - 0x6A, - 0x65, - 0x0C, - 0x6A, - 0x00, - 0x0F, - 0x88, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x3C, - 0x83, - 0x83, - 0x83, - 0x77, - 0x83, - 0x77, - 0x81, - 0x77, - 0x00, - 0x05, - 0x81, - 0x00, - 0x28, - 0x87, - 0x87, - 0x87, - 0x68, - 0x99, - 0x99, - 0x96, - 0x99, - 0x99, - 0x68, - 0x98, - 0x82, - 0x34, - 0x31, - 0x9A, - 0x59, - 0x90, - 0x75, - 0x91, - 0x45, - 0x36, - 0x5F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x7A, - 0x7A, - 0x36, - 0x89, - 0x75, - 0x5B, - 0x5E, - 0x46, - 0x3B, - 0x3B, - 0x56, - 0x35, - 0x49, - 0x8A, - 0x05, - 0x6C, - 0x00, - 0x48, - 0x4A, - 0x34, - 0x9A, - 0x59, - 0xBC, - 0xA7, - 0xA0, - 0x9F, - 0xD5, - 0xC0, - 0xC0, - 0x85, - 0xC0, - 0x32, - 0xC0, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xD0, - 0xAF, - 0xD0, - 0xD0, - 0xA5, - 0xA7, - 0xA8, - 0x8B, - 0x9A, - 0x3B, - 0x52, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xB5, - 0xA1, - 0xE0, - 0xA1, - 0xB5, - 0xC2, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0xA1, - 0xB6, - 0xCA, - 0xC9, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xB0, - 0xC1, - 0xB0, - 0xB0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x35, - 0x52, - 0x79, - 0x35, - 0x35, - 0x49, - 0x00, - 0x07, - 0x35, - 0x00, - 0x18, - 0x49, - 0x35, - 0x35, - 0x35, - 0x52, - 0xA3, - 0xB2, - 0xBF, - 0xB1, - 0xC5, - 0xC3, - 0xC3, - 0x8D, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0xA9, - 0xC1, - 0xC6, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0x04, - 0xC3, - 0x00, - 0x23, - 0xAC, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xC1, - 0xC1, - 0xC1, - 0x8D, - 0xA9, - 0xC2, - 0xA9, - 0xA9, - 0xA9, - 0xB6, - 0xA9, - 0xA9, - 0xA9, - 0xB0, - 0x71, - 0x71, - 0xA9, - 0xA9, - 0xA9, - 0xC1, - 0x00, - 0x0A, - 0x78, - 0x00, - 0x0A, - 0x71, - 0x71, - 0x71, - 0x78, - 0x71, - 0x78, - 0x96, - 0xA2, - 0x99, - 0x99, - 0x05, - 0x9E, - 0x00, - 0x41, - 0x68, - 0x94, - 0x9E, - 0x9E, - 0x9E, - 0x98, - 0x74, - 0xDB, - 0xEC, - 0xE5, - 0xF2, - 0x07, - 0x08, - 0xEE, - 0x08, - 0xE5, - 0xE5, - 0xF2, - 0xE9, - 0x0F, - 0xF2, - 0x07, - 0xE9, - 0xF2, - 0xFF, - 0xE9, - 0xEC, - 0xEC, - 0xE2, - 0xE2, - 0xEB, - 0xE8, - 0xE8, - 0xED, - 0xE1, - 0xE8, - 0x0C, - 0xE2, - 0xE9, - 0xE2, - 0xE2, - 0xE2, - 0xE8, - 0xE8, - 0xDB, - 0xDB, - 0xE1, - 0x90, - 0xE1, - 0xE1, - 0x84, - 0xE1, - 0xD6, - 0x5E, - 0xDD, - 0x72, - 0x46, - 0x46, - 0x9A, - 0x6A, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x65, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x51, - 0x83, - 0x65, - 0x6A, - 0x83, - 0x72, - 0x6A, - 0x50, - 0x6A, - 0x50, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x69, - 0x83, - 0x69, - 0x69, - 0x77, - 0x77, - 0x77, - 0x81, - 0x77, - 0x81, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x68, - 0x99, - 0x68, - 0x99, - 0x68, - 0x9E, - 0x98, - 0x7D, - 0x34, - 0x31, - 0x9A, - 0x59, - 0x8B, - 0x8B, - 0x75, - 0x45, - 0x89, - 0x36, - 0x5F, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x36, - 0x7C, - 0x75, - 0x5A, - 0x2E, - 0x42, - 0x42, - 0x3B, - 0x4A, - 0x8F, - 0x9C, - 0x49, - 0x6B, - 0x6B, - 0x6C, - 0x6B, - 0x3B, - 0x42, - 0x6F, - 0xBB, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x8C, - 0xC0, - 0x00, - 0x04, - 0x85, - 0x00, - 0x08, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xAF, - 0xA5, - 0x04, - 0xAF, - 0x00, - 0x0D, - 0xA0, - 0xAF, - 0xA5, - 0xBE, - 0xBC, - 0x5E, - 0x42, - 0x52, - 0xAC, - 0x80, - 0xA9, - 0xC6, - 0xA1, - 0x00, - 0x06, - 0xB5, - 0x04, - 0xB0, - 0x00, - 0x17, - 0xC6, - 0xB0, - 0xC6, - 0xC6, - 0x8D, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xCA, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0xB0, - 0xB0, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x01, - 0x79, - 0x05, - 0x35, - 0x00, - 0x03, - 0x79, - 0x49, - 0x86, - 0x00, - 0x0A, - 0x35, - 0x00, - 0x51, - 0x86, - 0x52, - 0xA4, - 0xA3, - 0xBF, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xAA, - 0xC6, - 0xB0, - 0xA9, - 0xC6, - 0xA9, - 0xC1, - 0xC1, - 0xAA, - 0xAA, - 0x80, - 0x80, - 0xAA, - 0xCB, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xAC, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xC3, - 0x97, - 0xB7, - 0xAA, - 0xC1, - 0x80, - 0xB7, - 0xC1, - 0xA9, - 0xC6, - 0xC1, - 0xA9, - 0xC1, - 0x71, - 0xC1, - 0xA9, - 0xA9, - 0xA9, - 0x71, - 0x78, - 0xC1, - 0xA9, - 0xB7, - 0x78, - 0xB8, - 0x78, - 0x97, - 0x96, - 0xC1, - 0x78, - 0x71, - 0x78, - 0x71, - 0x71, - 0x71, - 0x96, - 0x78, - 0x96, - 0xA2, - 0xA2, - 0x9E, - 0x8F, - 0x00, - 0x05, - 0x98, - 0x00, - 0x16, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x42, - 0xE8, - 0xE5, - 0xF2, - 0xE5, - 0x07, - 0xEE, - 0xF2, - 0xF2, - 0xE9, - 0xF2, - 0xE5, - 0xE9, - 0xE9, - 0xF2, - 0x04, - 0xE9, - 0x00, - 0x20, - 0xF9, - 0xF9, - 0xE2, - 0xEB, - 0xEB, - 0xEB, - 0xED, - 0xED, - 0xE2, - 0xE9, - 0xE9, - 0x0A, - 0xE9, - 0xE2, - 0xF9, - 0xE2, - 0x04, - 0xE8, - 0xE8, - 0xDB, - 0xDB, - 0xDB, - 0x5A, - 0xE1, - 0xE1, - 0xE1, - 0x84, - 0xE1, - 0xD6, - 0x46, - 0x46, - 0x62, - 0x04, - 0x65, - 0x00, - 0x14, - 0x50, - 0x6A, - 0x65, - 0x65, - 0x6A, - 0x50, - 0x65, - 0x6A, - 0x50, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x3C, - 0x50, - 0x6A, - 0x3C, - 0x83, - 0x6A, - 0x6A, - 0x04, - 0x83, - 0x00, - 0x5A, - 0x77, - 0x77, - 0x83, - 0x77, - 0x77, - 0x81, - 0x81, - 0x81, - 0x87, - 0x87, - 0x87, - 0x68, - 0x99, - 0x99, - 0x68, - 0x99, - 0x68, - 0x87, - 0x7D, - 0x88, - 0x34, - 0x31, - 0x5E, - 0x59, - 0x90, - 0x8B, - 0x66, - 0x75, - 0x45, - 0x89, - 0x5F, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x5F, - 0x89, - 0x89, - 0x75, - 0x90, - 0x2E, - 0x34, - 0x3B, - 0x3B, - 0x49, - 0xA3, - 0x9C, - 0x5D, - 0x49, - 0x6B, - 0x6B, - 0x3B, - 0x42, - 0xB3, - 0x8B, - 0xBE, - 0xD0, - 0xA0, - 0x8C, - 0x8C, - 0xC0, - 0x85, - 0xC0, - 0x85, - 0xC0, - 0xC0, - 0x9F, - 0x9F, - 0x7F, - 0xBD, - 0xA0, - 0xA5, - 0xAF, - 0xA5, - 0xD0, - 0xAF, - 0xBD, - 0xA0, - 0xD0, - 0xD0, - 0xBE, - 0xA8, - 0xBB, - 0x6F, - 0x6B, - 0x9B, - 0x8D, - 0xB0, - 0x04, - 0xA1, - 0x01, - 0xC9, - 0x01, - 0xE0, - 0x04, - 0xA1, - 0x00, - 0x0B, - 0xB0, - 0xC6, - 0xC6, - 0xB0, - 0xA9, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0x71, - 0xB5, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x09, - 0xC2, - 0xA1, - 0xA9, - 0xC1, - 0x8D, - 0x8D, - 0xC1, - 0xC1, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x01, - 0x35, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x0E, - 0x79, - 0x79, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x35, - 0x49, - 0x04, - 0x35, - 0x00, - 0x1E, - 0xA4, - 0x52, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xC3, - 0xC3, - 0xC6, - 0xA9, - 0xC6, - 0xC1, - 0xC6, - 0x80, - 0xAA, - 0x80, - 0xAA, - 0xC3, - 0xAA, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xB8, - 0x06, - 0xAC, - 0x00, - 0x47, - 0xB8, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB7, - 0x97, - 0xB7, - 0x80, - 0xB7, - 0xB7, - 0xB7, - 0x78, - 0xC1, - 0xA9, - 0xC1, - 0xA9, - 0xA9, - 0xC1, - 0xC1, - 0xC1, - 0xB7, - 0xB7, - 0x78, - 0x97, - 0x78, - 0x78, - 0xB8, - 0xB8, - 0x78, - 0x78, - 0x71, - 0x78, - 0x71, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x99, - 0x9E, - 0x9E, - 0x9E, - 0x98, - 0x87, - 0x82, - 0x9E, - 0x98, - 0x87, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x57, - 0xD6, - 0xE2, - 0x07, - 0x0F, - 0x07, - 0x07, - 0xE5, - 0xFF, - 0xFF, - 0xEC, - 0xEC, - 0xE9, - 0xE9, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x2F, - 0xEB, - 0xEB, - 0xE8, - 0xEB, - 0xEB, - 0xF8, - 0xE8, - 0xE8, - 0xEC, - 0xFF, - 0xDE, - 0xE9, - 0xFF, - 0xE2, - 0xE9, - 0xF9, - 0xD8, - 0xD8, - 0xE8, - 0xD8, - 0xE1, - 0xDB, - 0xBC, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0x84, - 0x84, - 0xD6, - 0x84, - 0x4E, - 0x65, - 0x72, - 0x62, - 0x65, - 0x6A, - 0x65, - 0x50, - 0x65, - 0x65, - 0x65, - 0x6A, - 0x65, - 0x50, - 0x50, - 0x65, - 0x00, - 0x05, - 0x50, - 0x00, - 0x12, - 0x6A, - 0x6A, - 0x88, - 0x6A, - 0x83, - 0x83, - 0x3C, - 0x83, - 0x83, - 0x77, - 0x83, - 0x77, - 0x77, - 0x81, - 0x77, - 0x81, - 0x87, - 0x81, - 0x04, - 0x68, - 0x00, - 0x6F, - 0x99, - 0x68, - 0x87, - 0x53, - 0x7D, - 0x34, - 0x31, - 0x46, - 0x5E, - 0x59, - 0x90, - 0x8B, - 0x8B, - 0x66, - 0x91, - 0x45, - 0x89, - 0x36, - 0x4F, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x89, - 0x91, - 0x5B, - 0x5A, - 0x4E, - 0xBA, - 0x56, - 0x56, - 0x35, - 0x68, - 0x8F, - 0xB9, - 0x94, - 0x6B, - 0x6B, - 0x42, - 0x5E, - 0xBC, - 0xD8, - 0xAF, - 0xBD, - 0x9F, - 0x8C, - 0x32, - 0xCC, - 0x2D, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xA5, - 0xAF, - 0xA0, - 0xAF, - 0xBD, - 0xA0, - 0xBD, - 0xA5, - 0xA7, - 0xA8, - 0xBC, - 0x9A, - 0x6C, - 0xB2, - 0xAA, - 0xB0, - 0x8D, - 0xA1, - 0xA1, - 0xC9, - 0xB5, - 0xA1, - 0xE0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0x8D, - 0x8D, - 0xA9, - 0x8D, - 0xB0, - 0xC6, - 0xA1, - 0x8D, - 0xA1, - 0xB6, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0xC1, - 0x80, - 0x80, - 0xC1, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x79, - 0x35, - 0x35, - 0x79, - 0x11, - 0x35, - 0x00, - 0x43, - 0x52, - 0x35, - 0x86, - 0x35, - 0x52, - 0x52, - 0x7E, - 0xB2, - 0x9B, - 0x9B, - 0xAC, - 0xAA, - 0x8D, - 0xAA, - 0xC6, - 0xC1, - 0xAA, - 0x8D, - 0xAA, - 0xAA, - 0xB7, - 0xAA, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xC1, - 0xB7, - 0xC1, - 0xB7, - 0xB7, - 0xC1, - 0xB7, - 0x78, - 0x78, - 0xC1, - 0x78, - 0x78, - 0xB7, - 0x97, - 0x97, - 0x97, - 0xAD, - 0x97, - 0x00, - 0x05, - 0x78, - 0x00, - 0x0A, - 0x71, - 0x71, - 0x78, - 0x78, - 0x78, - 0x96, - 0x96, - 0x99, - 0x8F, - 0x9E, - 0x04, - 0x98, - 0x00, - 0x51, - 0x9E, - 0x98, - 0x87, - 0x98, - 0x98, - 0x98, - 0x87, - 0x81, - 0x87, - 0x87, - 0x87, - 0x53, - 0x69, - 0xE8, - 0xE5, - 0xF2, - 0xF2, - 0x07, - 0xF2, - 0xE9, - 0xFF, - 0xEC, - 0xEC, - 0xEC, - 0xF9, - 0xEC, - 0xEB, - 0xEB, - 0xE2, - 0xEB, - 0xEB, - 0xE2, - 0xEB, - 0xEB, - 0xE8, - 0xEC, - 0xF2, - 0xDE, - 0x06, - 0x06, - 0xDE, - 0x05, - 0xDE, - 0xD0, - 0x0A, - 0x0B, - 0xD8, - 0x04, - 0xD8, - 0xDB, - 0xDB, - 0xDB, - 0xBC, - 0xDB, - 0x5A, - 0xE1, - 0xDD, - 0xD6, - 0xDD, - 0x3D, - 0x62, - 0x65, - 0x65, - 0x65, - 0x62, - 0x65, - 0x43, - 0x43, - 0x65, - 0x65, - 0x65, - 0x43, - 0x65, - 0x65, - 0x50, - 0x72, - 0x65, - 0x50, - 0x6A, - 0x6A, - 0x50, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x24, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x69, - 0x69, - 0x77, - 0x77, - 0x81, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x99, - 0x99, - 0x68, - 0x68, - 0x98, - 0x57, - 0x34, - 0x31, - 0x46, - 0x59, - 0x59, - 0xBB, - 0x8B, - 0x66, - 0x5B, - 0x75, - 0x64, - 0x89, - 0x89, - 0x36, - 0x4F, - 0x04, - 0x7A, - 0x00, - 0x3A, - 0x4F, - 0x5F, - 0x7C, - 0x64, - 0x5B, - 0x59, - 0x46, - 0x42, - 0x4A, - 0x6B, - 0x52, - 0xA3, - 0x8F, - 0x86, - 0x9C, - 0x6C, - 0x6F, - 0xB3, - 0xBC, - 0xBE, - 0xA0, - 0xBD, - 0x8C, - 0xC0, - 0xC0, - 0xC0, - 0x85, - 0x85, - 0x32, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xAF, - 0xA5, - 0xD0, - 0xD0, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xA0, - 0xA0, - 0xD0, - 0xA7, - 0x8B, - 0x59, - 0x6E, - 0x7E, - 0x8E, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x09, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0xC6, - 0xA9, - 0xB0, - 0x8D, - 0x00, - 0x07, - 0xA1, - 0x00, - 0x09, - 0xB6, - 0xC2, - 0xA1, - 0x8D, - 0x80, - 0x80, - 0x8D, - 0x8D, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x35, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x46, - 0x79, - 0x35, - 0x49, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xB2, - 0xBF, - 0xB1, - 0xC5, - 0xAC, - 0xC3, - 0xAA, - 0xAA, - 0xC1, - 0xC6, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xAC, - 0xC3, - 0xAA, - 0xC3, - 0xAC, - 0xC3, - 0xB8, - 0xC5, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xB8, - 0xC3, - 0x97, - 0xB8, - 0xB8, - 0x97, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB7, - 0xB7, - 0xB7, - 0x97, - 0x78, - 0x06, - 0x97, - 0x00, - 0x1F, - 0xB8, - 0xB8, - 0x97, - 0x96, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0xA2, - 0x99, - 0x8F, - 0x9E, - 0x9E, - 0x98, - 0x9E, - 0x82, - 0x98, - 0x98, - 0x98, - 0x9E, - 0x87, - 0x53, - 0x87, - 0x87, - 0x98, - 0x00, - 0x04, - 0x53, - 0x00, - 0x6F, - 0x57, - 0xDB, - 0xF2, - 0x0F, - 0xE9, - 0xF2, - 0xF2, - 0xE9, - 0xE9, - 0xF9, - 0xF8, - 0xD8, - 0xE2, - 0xEB, - 0xEB, - 0xE2, - 0xE2, - 0xEC, - 0xE9, - 0xEC, - 0xE9, - 0xEB, - 0xE9, - 0xEE, - 0xDE, - 0x06, - 0xDE, - 0xF2, - 0xF2, - 0xE9, - 0xE2, - 0x05, - 0xE2, - 0xEB, - 0xD8, - 0xE8, - 0xE8, - 0xDB, - 0xDB, - 0xBC, - 0xBB, - 0xE1, - 0x84, - 0xE1, - 0x84, - 0xD6, - 0x62, - 0x62, - 0x65, - 0x62, - 0x62, - 0x65, - 0x65, - 0x62, - 0x62, - 0x65, - 0x43, - 0x65, - 0x4E, - 0x65, - 0x43, - 0x65, - 0x65, - 0x65, - 0x43, - 0x65, - 0x65, - 0x6A, - 0x50, - 0x50, - 0x50, - 0x3C, - 0x6A, - 0x69, - 0x83, - 0x88, - 0x83, - 0x83, - 0x69, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x99, - 0x99, - 0x68, - 0x68, - 0x68, - 0x7D, - 0x69, - 0x33, - 0x31, - 0x5E, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0xBC, - 0x66, - 0x66, - 0x66, - 0x64, - 0x89, - 0x89, - 0x36, - 0x4F, - 0x4F, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x16, - 0x89, - 0x45, - 0x91, - 0x5B, - 0x2E, - 0x31, - 0x34, - 0x3B, - 0x5D, - 0x52, - 0xBF, - 0x7E, - 0x94, - 0x4A, - 0x6F, - 0xB3, - 0xBC, - 0xD0, - 0xAF, - 0x9F, - 0x9F, - 0xC0, - 0x04, - 0x85, - 0x00, - 0x21, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x7F, - 0x76, - 0xA0, - 0xAF, - 0xA5, - 0xD0, - 0xA0, - 0xBD, - 0xA0, - 0xB4, - 0xB4, - 0xA0, - 0xAF, - 0xBE, - 0xA8, - 0x59, - 0x6F, - 0xB9, - 0xAC, - 0x8D, - 0x8D, - 0xCA, - 0x71, - 0xA1, - 0xB5, - 0xA1, - 0xB5, - 0xB5, - 0x71, - 0x00, - 0x05, - 0xB0, - 0x00, - 0x15, - 0x8D, - 0xC6, - 0x8D, - 0x8D, - 0xC6, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xCA, - 0xA1, - 0xB0, - 0x8D, - 0xAA, - 0xAA, - 0x8D, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x79, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x14, - 0xB9, - 0x79, - 0x35, - 0x35, - 0xA4, - 0x52, - 0xB2, - 0xB2, - 0x7E, - 0xBF, - 0xB1, - 0xC5, - 0xB8, - 0xC3, - 0xC1, - 0xAA, - 0xC1, - 0xAA, - 0xB7, - 0xAA, - 0x06, - 0xC3, - 0x00, - 0x15, - 0xB8, - 0xC3, - 0xAC, - 0xAA, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xB8, - 0xC5, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xB8, - 0xAC, - 0x00, - 0x05, - 0xB8, - 0x00, - 0x0F, - 0x97, - 0x97, - 0xB8, - 0x97, - 0x97, - 0xB7, - 0x97, - 0xB8, - 0x97, - 0x97, - 0xB8, - 0x97, - 0x96, - 0xB8, - 0x96, - 0x00, - 0x05, - 0x78, - 0x00, - 0x4D, - 0x71, - 0x78, - 0x78, - 0x78, - 0x96, - 0x97, - 0x96, - 0x99, - 0x99, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x82, - 0x98, - 0x81, - 0x98, - 0x53, - 0x87, - 0x53, - 0x9E, - 0x81, - 0x81, - 0x87, - 0x87, - 0x81, - 0x81, - 0x53, - 0x81, - 0x87, - 0xB3, - 0xEC, - 0xF2, - 0xFF, - 0xFF, - 0xEC, - 0xE9, - 0xEC, - 0xE9, - 0xEB, - 0xEC, - 0xE2, - 0xEC, - 0xE2, - 0xEC, - 0xE9, - 0xE9, - 0xE9, - 0xE5, - 0xE9, - 0xF2, - 0xEE, - 0xEA, - 0xEA, - 0xDE, - 0xF2, - 0xDE, - 0x05, - 0xDE, - 0xE2, - 0xE9, - 0xE2, - 0x0B, - 0xD8, - 0xD8, - 0xD8, - 0xDB, - 0xDB, - 0xDB, - 0x8B, - 0xE1, - 0x5A, - 0xD6, - 0x84, - 0x38, - 0x62, - 0x67, - 0x00, - 0x05, - 0x62, - 0x00, - 0x2D, - 0x65, - 0x62, - 0x62, - 0x62, - 0x65, - 0x62, - 0x65, - 0x62, - 0x72, - 0x62, - 0x65, - 0x72, - 0x65, - 0x72, - 0x65, - 0x6A, - 0x6A, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x50, - 0x83, - 0x83, - 0x83, - 0x77, - 0x77, - 0x81, - 0x81, - 0x87, - 0x87, - 0x68, - 0x68, - 0x99, - 0x99, - 0x68, - 0x87, - 0x77, - 0x69, - 0x34, - 0x46, - 0x5E, - 0x59, - 0x90, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x54, - 0x5B, - 0x66, - 0x75, - 0x91, - 0x64, - 0x36, - 0x36, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x4F, - 0x4F, - 0x36, - 0x64, - 0x75, - 0x5A, - 0x2E, - 0x31, - 0x56, - 0x6C, - 0x5D, - 0x7E, - 0x7E, - 0x7E, - 0x5D, - 0x42, - 0x59, - 0xBC, - 0xA7, - 0xBD, - 0xAB, - 0x8C, - 0x8C, - 0x85, - 0xCC, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xA5, - 0xA7, - 0xAF, - 0xAF, - 0xAF, - 0xBD, - 0xB4, - 0xB4, - 0xB4, - 0xBD, - 0xA0, - 0xD8, - 0xBE, - 0xBB, - 0x46, - 0x5D, - 0x9B, - 0x71, - 0x8D, - 0xB0, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0x8D, - 0xA9, - 0xC6, - 0x8D, - 0xB0, - 0xB0, - 0x71, - 0xB0, - 0xB0, - 0xB0, - 0x04, - 0xA1, - 0x00, - 0x09, - 0x71, - 0xA1, - 0xB0, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x79, - 0x35, - 0x86, - 0x35, - 0x35, - 0x79, - 0x86, - 0x35, - 0x35, - 0x79, - 0x79, - 0x00, - 0x04, - 0x35, - 0x00, - 0x2B, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x52, - 0xB2, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xAC, - 0xB8, - 0xC3, - 0xC3, - 0xC1, - 0xC3, - 0xB7, - 0xB7, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x1F, - 0xB8, - 0xAC, - 0xAD, - 0xAC, - 0xB8, - 0xC5, - 0xB8, - 0xAC, - 0xB8, - 0xB8, - 0xAD, - 0xB8, - 0xAC, - 0x97, - 0xB8, - 0xAD, - 0x97, - 0x97, - 0xB8, - 0xAD, - 0x97, - 0x96, - 0xB8, - 0xAD, - 0x78, - 0x96, - 0x71, - 0x78, - 0x78, - 0x78, - 0x71, - 0x00, - 0x04, - 0x78, - 0x00, - 0x08, - 0xA2, - 0xA2, - 0x99, - 0x8F, - 0x9E, - 0x98, - 0x98, - 0x82, - 0x04, - 0x98, - 0x00, - 0x11, - 0x81, - 0x98, - 0x87, - 0x87, - 0x81, - 0x87, - 0x81, - 0x81, - 0x87, - 0x81, - 0x81, - 0x81, - 0x77, - 0x81, - 0x34, - 0xE1, - 0xE8, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x28, - 0xF8, - 0xA8, - 0xE8, - 0xD8, - 0xE8, - 0xD8, - 0xD0, - 0xEC, - 0xE9, - 0xE9, - 0xE5, - 0xDE, - 0xF2, - 0xEA, - 0xEA, - 0x08, - 0xDE, - 0x07, - 0xDE, - 0xDE, - 0x05, - 0xDE, - 0xD0, - 0x0A, - 0x0C, - 0xD8, - 0xEB, - 0xE8, - 0xD8, - 0xBC, - 0xBC, - 0xE1, - 0xBC, - 0xE1, - 0x84, - 0xE1, - 0x84, - 0x62, - 0x62, - 0x67, - 0x04, - 0x62, - 0x01, - 0x67, - 0x05, - 0x62, - 0x00, - 0x5D, - 0x43, - 0x62, - 0x43, - 0x62, - 0x4E, - 0x65, - 0x43, - 0x65, - 0x50, - 0x65, - 0x50, - 0x65, - 0x6A, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x3C, - 0x83, - 0x83, - 0x77, - 0x81, - 0x81, - 0x87, - 0x87, - 0x87, - 0x68, - 0x68, - 0x99, - 0x68, - 0x53, - 0x7D, - 0x33, - 0x31, - 0x31, - 0x5E, - 0x59, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0xBC, - 0x66, - 0x66, - 0x5B, - 0x4D, - 0x91, - 0x89, - 0x89, - 0x36, - 0x28, - 0x4F, - 0x7A, - 0x7A, - 0x5F, - 0x4F, - 0x36, - 0x64, - 0x75, - 0x5A, - 0x46, - 0x33, - 0x6C, - 0x56, - 0x52, - 0x7E, - 0x9B, - 0x35, - 0x31, - 0x59, - 0xBC, - 0xD0, - 0xBD, - 0x9F, - 0xD5, - 0xC0, - 0x32, - 0xCC, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x7F, - 0xBD, - 0x76, - 0xAF, - 0xA5, - 0xD0, - 0xAF, - 0xAF, - 0xBD, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x0C, - 0xA0, - 0xD0, - 0xBE, - 0x8B, - 0x46, - 0x3B, - 0xB1, - 0x80, - 0x8D, - 0x71, - 0xA1, - 0xB5, - 0x05, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x16, - 0x8D, - 0xA9, - 0x8D, - 0xB0, - 0xB0, - 0x8D, - 0xA1, - 0xA9, - 0xB0, - 0xA1, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xC6, - 0x8D, - 0x80, - 0x80, - 0x80, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x28, - 0x49, - 0x79, - 0x49, - 0x35, - 0x49, - 0x49, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x52, - 0x52, - 0xB2, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0xAC, - 0xB8, - 0xC3, - 0xB7, - 0xC1, - 0xC3, - 0xB7, - 0x05, - 0xC3, - 0x00, - 0x17, - 0xB8, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xAD, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xAD, - 0xAC, - 0x00, - 0x09, - 0xAD, - 0x01, - 0xB8, - 0x06, - 0xAD, - 0x00, - 0x05, - 0x96, - 0x97, - 0x97, - 0x78, - 0x96, - 0x00, - 0x06, - 0x78, - 0x00, - 0x18, - 0x96, - 0x96, - 0x96, - 0x99, - 0x9E, - 0x98, - 0x9E, - 0x98, - 0x82, - 0x98, - 0x98, - 0x81, - 0x98, - 0x98, - 0x9E, - 0x53, - 0x81, - 0x98, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x81, - 0x04, - 0x77, - 0x00, - 0x20, - 0x83, - 0x77, - 0x6A, - 0x83, - 0x33, - 0x3C, - 0x3C, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x3C, - 0x43, - 0x27, - 0x8B, - 0xD8, - 0xEC, - 0xDE, - 0x07, - 0xFD, - 0xDE, - 0xDE, - 0x08, - 0x06, - 0xDE, - 0xDE, - 0x0A, - 0xF9, - 0xD0, - 0xD0, - 0x04, - 0xD8, - 0x00, - 0x12, - 0xE8, - 0xD8, - 0xE1, - 0xBB, - 0x5B, - 0xB3, - 0x84, - 0x39, - 0x67, - 0x84, - 0x4B, - 0x62, - 0x67, - 0x67, - 0x67, - 0x4B, - 0x67, - 0x67, - 0x06, - 0x62, - 0x00, - 0x18, - 0x65, - 0x65, - 0x62, - 0x65, - 0x43, - 0x65, - 0x72, - 0x50, - 0x50, - 0x72, - 0x6A, - 0x6A, - 0x88, - 0x3C, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x77, - 0x83, - 0x87, - 0x81, - 0x87, - 0x87, - 0x04, - 0x68, - 0x00, - 0x08, - 0x87, - 0x57, - 0x34, - 0x31, - 0x31, - 0x5E, - 0x5E, - 0xB3, - 0x06, - 0x8B, - 0x00, - 0x1F, - 0x5B, - 0x5B, - 0x75, - 0x91, - 0x91, - 0x89, - 0x36, - 0x36, - 0x4F, - 0x5F, - 0x4F, - 0x5F, - 0x7C, - 0x45, - 0x63, - 0x5B, - 0x5A, - 0x2E, - 0x34, - 0x56, - 0x49, - 0x52, - 0x7E, - 0x5D, - 0x42, - 0xB3, - 0xA8, - 0xA5, - 0xA0, - 0x9F, - 0x8C, - 0x00, - 0x04, - 0x85, - 0x00, - 0x1C, - 0xC0, - 0x85, - 0x8C, - 0x9F, - 0x9F, - 0x7F, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xA0, - 0xAF, - 0xBE, - 0xBC, - 0x5E, - 0x6E, - 0x7E, - 0x80, - 0x8D, - 0xCA, - 0x8D, - 0x06, - 0xA1, - 0x00, - 0x1A, - 0xB0, - 0xA1, - 0xB0, - 0xA9, - 0xB0, - 0x8D, - 0xB0, - 0x8D, - 0xB0, - 0xC6, - 0x8D, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xC6, - 0xC6, - 0x8D, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x30, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x86, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xBF, - 0xBF, - 0xBF, - 0x9B, - 0xAD, - 0xAC, - 0xC3, - 0xC3, - 0xAA, - 0xC1, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xAC, - 0xC5, - 0xC3, - 0x04, - 0xAC, - 0x00, - 0x31, - 0xB8, - 0xC5, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0x97, - 0xC5, - 0xAD, - 0xAD, - 0xAC, - 0xAD, - 0xC5, - 0xAD, - 0xAC, - 0xAD, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xAD, - 0xC5, - 0xA2, - 0xAD, - 0xC5, - 0x96, - 0xAD, - 0xB8, - 0x97, - 0x97, - 0xB8, - 0xB7, - 0x78, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x96, - 0x78, - 0x96, - 0xA2, - 0x9E, - 0x99, - 0x9E, - 0x00, - 0x06, - 0x98, - 0x00, - 0x09, - 0x87, - 0x87, - 0x98, - 0x81, - 0x98, - 0x87, - 0x81, - 0x81, - 0x98, - 0x00, - 0x05, - 0x81, - 0x04, - 0x77, - 0x04, - 0x83, - 0x00, - 0x04, - 0x3C, - 0x83, - 0x6A, - 0x6A, - 0x04, - 0x50, - 0x00, - 0x24, - 0x43, - 0x43, - 0x65, - 0x62, - 0x62, - 0x39, - 0xBD, - 0xEA, - 0x06, - 0x08, - 0xDE, - 0xD5, - 0x06, - 0xDE, - 0x05, - 0xDE, - 0xE9, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xD8, - 0xEB, - 0xD8, - 0xBE, - 0xE1, - 0x63, - 0x5A, - 0xB3, - 0x84, - 0x67, - 0x37, - 0x67, - 0x37, - 0x67, - 0x62, - 0x05, - 0x67, - 0x00, - 0x03, - 0x62, - 0x67, - 0x67, - 0x00, - 0x04, - 0x62, - 0x00, - 0x87, - 0x43, - 0x62, - 0x65, - 0x43, - 0x72, - 0x65, - 0x50, - 0x65, - 0x50, - 0x50, - 0x50, - 0x88, - 0x6A, - 0x3C, - 0x83, - 0x83, - 0x83, - 0x81, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x87, - 0x81, - 0x81, - 0x53, - 0x57, - 0x34, - 0x46, - 0x46, - 0x46, - 0x59, - 0x59, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x8B, - 0x66, - 0x8B, - 0x5B, - 0x5B, - 0x4D, - 0x91, - 0x91, - 0x89, - 0x7C, - 0x36, - 0x5F, - 0x4F, - 0x4F, - 0x5F, - 0x7C, - 0x89, - 0x75, - 0x4D, - 0x2E, - 0x2E, - 0x22, - 0x56, - 0x5D, - 0x94, - 0x49, - 0x6F, - 0x59, - 0xA8, - 0xA5, - 0xBD, - 0x9F, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x8C, - 0x55, - 0xAB, - 0xA0, - 0xA0, - 0xA5, - 0xA5, - 0xD0, - 0xD0, - 0xA0, - 0xBD, - 0x7F, - 0xDE, - 0x9F, - 0xB4, - 0xBD, - 0xA0, - 0xBE, - 0xBC, - 0x5E, - 0x42, - 0xB2, - 0xAC, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB6, - 0xB0, - 0x8D, - 0xB0, - 0xC6, - 0xB0, - 0xCA, - 0xB0, - 0x8D, - 0xB0, - 0x71, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xA1, - 0xA1, - 0xA1, - 0x71, - 0xA1, - 0x8D, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x79, - 0x86, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0x9B, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0xC3, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xB8, - 0xAC, - 0xAC, - 0xAD, - 0xC5, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAE, - 0xAD, - 0xAE, - 0xAD, - 0xAE, - 0xAD, - 0xAE, - 0xAE, - 0xA2, - 0xC5, - 0xA2, - 0xC5, - 0xAE, - 0xAD, - 0xAD, - 0xAD, - 0x97, - 0x96, - 0xB7, - 0x78, - 0x96, - 0x07, - 0x78, - 0x00, - 0x1D, - 0x96, - 0xC5, - 0x99, - 0x99, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x87, - 0x98, - 0x81, - 0x87, - 0x81, - 0x87, - 0x81, - 0x77, - 0x77, - 0x81, - 0x81, - 0x77, - 0x77, - 0x77, - 0x00, - 0x04, - 0x83, - 0x00, - 0x1A, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x65, - 0x65, - 0x50, - 0x65, - 0x43, - 0x65, - 0x43, - 0x65, - 0xD8, - 0xEA, - 0xC0, - 0x08, - 0xEA, - 0xEA, - 0x06, - 0xDE, - 0xDE, - 0xE9, - 0xE9, - 0x04, - 0xE2, - 0x00, - 0x11, - 0xD8, - 0xD8, - 0xD8, - 0xDB, - 0xBE, - 0xE1, - 0x90, - 0x5A, - 0x5A, - 0x84, - 0x67, - 0x67, - 0x84, - 0x67, - 0x84, - 0x67, - 0x37, - 0x00, - 0x06, - 0x67, - 0x00, - 0x12, - 0x62, - 0x67, - 0x62, - 0x62, - 0x62, - 0x43, - 0x4E, - 0x65, - 0x62, - 0x43, - 0x65, - 0x72, - 0x50, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x04, - 0x83, - 0x00, - 0x11, - 0x81, - 0x81, - 0x81, - 0x87, - 0x81, - 0x81, - 0x83, - 0x77, - 0x22, - 0x22, - 0x33, - 0x2E, - 0x5E, - 0x59, - 0x5E, - 0x59, - 0x90, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x44, - 0xBB, - 0x5B, - 0x8B, - 0x5A, - 0x5B, - 0x66, - 0x75, - 0x64, - 0x89, - 0x89, - 0x28, - 0x5F, - 0x5F, - 0x4F, - 0x36, - 0x7C, - 0x64, - 0x4D, - 0x5B, - 0x2E, - 0x6F, - 0x34, - 0x6B, - 0x49, - 0x61, - 0x6F, - 0xBB, - 0xA8, - 0xD0, - 0xB4, - 0x9F, - 0xC0, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xA0, - 0xA0, - 0xA0, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0xB4, - 0xAF, - 0xA5, - 0xA8, - 0x59, - 0x42, - 0x52, - 0xAC, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x18, - 0xB0, - 0xB0, - 0xA1, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xB6, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x00, - 0x01, - 0x35, - 0x01, - 0x79, - 0x05, - 0x35, - 0x00, - 0x27, - 0x79, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0xA4, - 0x52, - 0x7E, - 0x7E, - 0x9B, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0xAA, - 0x8D, - 0xAA, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x04, - 0xB8, - 0x00, - 0x33, - 0xC3, - 0xB8, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAD, - 0xAD, - 0xAC, - 0xAD, - 0xAE, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xA2, - 0xAE, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0xB8, - 0xB8, - 0x97, - 0xB8, - 0x78, - 0xA9, - 0x78, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x96, - 0x96, - 0x99, - 0x8F, - 0x9E, - 0x9E, - 0x9E, - 0x00, - 0x04, - 0x98, - 0x00, - 0x0A, - 0x82, - 0x87, - 0x98, - 0x87, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x98, - 0x05, - 0x81, - 0x00, - 0x13, - 0x77, - 0x77, - 0x83, - 0x77, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x6A, - 0x83, - 0x6A, - 0x50, - 0x50, - 0x6A, - 0x50, - 0x65, - 0x65, - 0x43, - 0x65, - 0x00, - 0x04, - 0x62, - 0x00, - 0x17, - 0x5B, - 0xEA, - 0xEE, - 0xEA, - 0xDE, - 0x14, - 0xDE, - 0x06, - 0xDE, - 0x06, - 0xD0, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xD0, - 0xE2, - 0xD8, - 0xD8, - 0xBC, - 0x91, - 0x84, - 0xDB, - 0x00, - 0x05, - 0x84, - 0x00, - 0x0D, - 0x37, - 0x84, - 0x84, - 0x67, - 0x84, - 0x67, - 0x37, - 0x84, - 0x67, - 0x62, - 0x67, - 0x62, - 0x67, - 0x00, - 0x04, - 0x62, - 0x00, - 0x22, - 0x43, - 0x62, - 0x43, - 0x43, - 0x65, - 0x65, - 0x50, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x81, - 0x81, - 0x77, - 0x81, - 0x77, - 0x3C, - 0x88, - 0x72, - 0x33, - 0x31, - 0x38, - 0x2E, - 0x59, - 0x5E, - 0x59, - 0x59, - 0x59, - 0x90, - 0x90, - 0x04, - 0x8B, - 0x00, - 0x5E, - 0x90, - 0x8B, - 0x59, - 0x5B, - 0x5B, - 0x66, - 0x91, - 0x64, - 0x89, - 0x7C, - 0x4F, - 0x36, - 0x7C, - 0x5F, - 0x89, - 0x63, - 0x4D, - 0x5A, - 0x2E, - 0x33, - 0x22, - 0x56, - 0x42, - 0x9A, - 0x8B, - 0xA8, - 0xAF, - 0xBD, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0xCC, - 0x85, - 0xC0, - 0x8C, - 0x55, - 0x9F, - 0x7F, - 0x7F, - 0xA0, - 0xA5, - 0xAF, - 0xA5, - 0xAF, - 0xAF, - 0x7F, - 0xB4, - 0xB4, - 0xDE, - 0xAB, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0x90, - 0x6F, - 0x35, - 0x97, - 0x80, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xB0, - 0xA9, - 0xA1, - 0x8D, - 0xB0, - 0xA9, - 0xB0, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0x71, - 0xB0, - 0xA1, - 0xA1, - 0x8D, - 0x8D, - 0xB7, - 0xC3, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x26, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x86, - 0x79, - 0x35, - 0x79, - 0x35, - 0xB9, - 0x79, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x52, - 0x52, - 0xB2, - 0xB2, - 0xBF, - 0x9B, - 0xAC, - 0xAC, - 0xC3, - 0x8D, - 0x05, - 0xC1, - 0x06, - 0xC3, - 0x01, - 0xAC, - 0x01, - 0xB8, - 0x05, - 0xAC, - 0x00, - 0x1B, - 0xC5, - 0xAC, - 0xAD, - 0xAC, - 0xAD, - 0x9B, - 0x9B, - 0xAD, - 0xAD, - 0x9B, - 0x9B, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xAE, - 0xBF, - 0xA2, - 0xA2, - 0xAE, - 0xC5, - 0xAE, - 0xAE, - 0xAD, - 0xAD, - 0xAD, - 0x96, - 0x00, - 0x0A, - 0x78, - 0x00, - 0x06, - 0x96, - 0x96, - 0xA2, - 0x99, - 0x99, - 0x9E, - 0x04, - 0x98, - 0x00, - 0x0C, - 0x82, - 0x98, - 0x81, - 0x87, - 0x81, - 0x81, - 0x98, - 0x87, - 0x87, - 0x81, - 0x81, - 0x53, - 0x04, - 0x81, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x04, - 0x83, - 0x00, - 0x12, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x50, - 0x65, - 0x65, - 0x43, - 0x43, - 0x43, - 0x62, - 0x65, - 0x62, - 0x62, - 0x67, - 0x84, - 0x04, - 0xEA, - 0x00, - 0x15, - 0x14, - 0xEA, - 0xDE, - 0xDE, - 0xE2, - 0xDE, - 0xE2, - 0xE2, - 0xE2, - 0xD8, - 0xE2, - 0xD8, - 0xE2, - 0xD8, - 0xA8, - 0xDB, - 0xBC, - 0x84, - 0xBC, - 0x84, - 0x58, - 0x00, - 0x09, - 0x84, - 0x00, - 0x03, - 0x67, - 0x67, - 0x84, - 0x00, - 0x04, - 0x67, - 0x04, - 0x62, - 0x00, - 0x43, - 0x43, - 0x62, - 0x65, - 0x65, - 0x72, - 0x43, - 0x50, - 0x50, - 0x50, - 0x3C, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x77, - 0x81, - 0x81, - 0x22, - 0x3C, - 0x4E, - 0x4E, - 0x2E, - 0x27, - 0x27, - 0x59, - 0x27, - 0x59, - 0x29, - 0x90, - 0x5E, - 0x59, - 0x59, - 0xBB, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x5A, - 0x59, - 0x5A, - 0x66, - 0x75, - 0x91, - 0x64, - 0x89, - 0x89, - 0x28, - 0x36, - 0x7C, - 0x36, - 0x7C, - 0x91, - 0x44, - 0x27, - 0x46, - 0x42, - 0x42, - 0x6F, - 0x5E, - 0xBB, - 0xA8, - 0xA5, - 0xB4, - 0x9F, - 0xC0, - 0x00, - 0x04, - 0x85, - 0x00, - 0x3C, - 0x32, - 0xC0, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xAF, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0xAB, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0x31, - 0x49, - 0x9B, - 0x80, - 0x8D, - 0xB0, - 0xC6, - 0xA1, - 0xB6, - 0xA1, - 0xA1, - 0xB6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xC6, - 0xA1, - 0xB0, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0xAA, - 0xAA, - 0xC3, - 0x00, - 0x00, - 0x06, - 0x35, - 0x01, - 0x49, - 0x01, - 0x86, - 0x05, - 0x79, - 0x00, - 0x1F, - 0x49, - 0x35, - 0x79, - 0xB9, - 0x35, - 0x49, - 0x35, - 0x86, - 0x49, - 0x79, - 0x49, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x52, - 0x52, - 0xBF, - 0xB2, - 0x9B, - 0x8E, - 0x97, - 0xAA, - 0xAA, - 0x8D, - 0xC1, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0x00, - 0x05, - 0xC3, - 0x00, - 0x24, - 0xB8, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xB8, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xC5, - 0xAD, - 0xAE, - 0xAE, - 0xAE, - 0xA2, - 0xAE, - 0xA2, - 0xAE, - 0xAE, - 0xAE, - 0xC5, - 0xA2, - 0xAD, - 0xA2, - 0xB8, - 0x97, - 0x78, - 0x97, - 0x97, - 0x08, - 0x78, - 0x00, - 0x14, - 0x96, - 0x96, - 0x99, - 0x9E, - 0x99, - 0x9E, - 0x98, - 0x9C, - 0x81, - 0x98, - 0x98, - 0x82, - 0x98, - 0x82, - 0x87, - 0x98, - 0x81, - 0x81, - 0x87, - 0x53, - 0x05, - 0x81, - 0x05, - 0x77, - 0x00, - 0x35, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x50, - 0x50, - 0x50, - 0x65, - 0x50, - 0x50, - 0x62, - 0x65, - 0x62, - 0x62, - 0x62, - 0x67, - 0x62, - 0x67, - 0x62, - 0x08, - 0xEA, - 0xEA, - 0xEA, - 0xDE, - 0xEA, - 0xDE, - 0x06, - 0xDE, - 0xE9, - 0xD0, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xD0, - 0xD0, - 0xD8, - 0xBE, - 0xBC, - 0x5B, - 0xBC, - 0xBC, - 0x58, - 0x84, - 0x84, - 0x58, - 0x58, - 0x84, - 0x84, - 0x84, - 0x58, - 0x00, - 0x04, - 0x84, - 0x01, - 0x67, - 0x01, - 0x37, - 0x05, - 0x67, - 0x00, - 0x44, - 0x62, - 0x62, - 0x62, - 0x4E, - 0x62, - 0x62, - 0x43, - 0x65, - 0x65, - 0x65, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x81, - 0x83, - 0x6A, - 0x33, - 0x38, - 0x27, - 0x5A, - 0x5A, - 0x5B, - 0x5B, - 0x4D, - 0x5A, - 0x8B, - 0x8B, - 0x59, - 0x5E, - 0x59, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x59, - 0x59, - 0x29, - 0x5B, - 0x4D, - 0x91, - 0x63, - 0x64, - 0x89, - 0x7C, - 0x5F, - 0x89, - 0x7C, - 0x91, - 0x75, - 0x4D, - 0x27, - 0x2E, - 0x31, - 0x2E, - 0x59, - 0xBC, - 0xA7, - 0xAF, - 0xBD, - 0x9F, - 0x05, - 0x85, - 0x00, - 0x1F, - 0xC0, - 0x32, - 0x55, - 0x9F, - 0x7F, - 0xA0, - 0xAF, - 0xA5, - 0xD0, - 0xAF, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0xAB, - 0xAB, - 0xDE, - 0x7F, - 0xAF, - 0xD0, - 0xA8, - 0x8B, - 0x9A, - 0x79, - 0x9B, - 0x80, - 0x8D, - 0x8D, - 0xA1, - 0xA1, - 0x71, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x0E, - 0x8D, - 0xB0, - 0xB0, - 0xA9, - 0xA1, - 0xB0, - 0xA1, - 0xA9, - 0xCA, - 0x71, - 0xB0, - 0xB6, - 0xA1, - 0xB6, - 0x04, - 0xA1, - 0x00, - 0x06, - 0xB0, - 0xB0, - 0xC6, - 0x80, - 0xAA, - 0xC3, - 0x00, - 0x00, - 0x01, - 0x35, - 0x04, - 0x79, - 0x00, - 0x3E, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x49, - 0x35, - 0x79, - 0x35, - 0x49, - 0x49, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x49, - 0x35, - 0x52, - 0xA4, - 0xB2, - 0xB1, - 0x9B, - 0x9B, - 0xAC, - 0xAA, - 0xAA, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xAA, - 0x80, - 0xC3, - 0xC3, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAD, - 0xC5, - 0xAD, - 0xAD, - 0x9B, - 0xAE, - 0xAD, - 0xAE, - 0xAD, - 0x08, - 0xAE, - 0x00, - 0x07, - 0xA2, - 0xA2, - 0xC5, - 0xAD, - 0xB8, - 0x97, - 0x97, - 0x00, - 0x0B, - 0x78, - 0x00, - 0x12, - 0x96, - 0x99, - 0xA2, - 0x99, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x87, - 0x81, - 0x98, - 0x87, - 0x81, - 0x98, - 0x06, - 0x81, - 0x00, - 0x05, - 0x77, - 0x81, - 0x81, - 0x77, - 0x77, - 0x00, - 0x04, - 0x83, - 0x05, - 0x6A, - 0x00, - 0x05, - 0x65, - 0x50, - 0x65, - 0x43, - 0x65, - 0x00, - 0x04, - 0x62, - 0x00, - 0x04, - 0x67, - 0x67, - 0x67, - 0x84, - 0x04, - 0xEA, - 0x00, - 0x1E, - 0xCC, - 0x06, - 0xDE, - 0xDE, - 0xDE, - 0xE9, - 0xE9, - 0xD8, - 0xD8, - 0xD8, - 0xE2, - 0xD0, - 0xD8, - 0xD0, - 0xD8, - 0xBC, - 0x91, - 0x5A, - 0x44, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x84, - 0x58, - 0x04, - 0x84, - 0x00, - 0x06, - 0x67, - 0x84, - 0x84, - 0x62, - 0x67, - 0x67, - 0x04, - 0x62, - 0x00, - 0x80, - 0x4E, - 0x65, - 0x62, - 0x72, - 0x72, - 0x50, - 0x65, - 0x88, - 0x6A, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x6A, - 0x62, - 0x27, - 0x5A, - 0x4D, - 0x63, - 0x91, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x5B, - 0x8B, - 0x59, - 0x5E, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x59, - 0x59, - 0x59, - 0x5E, - 0x5E, - 0x5B, - 0x5B, - 0x75, - 0x64, - 0x64, - 0x7C, - 0x89, - 0x7C, - 0x89, - 0x7C, - 0x63, - 0x4D, - 0x5A, - 0x2E, - 0x27, - 0x59, - 0x8B, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x9F, - 0x8C, - 0x85, - 0x85, - 0xCC, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0xAB, - 0x7F, - 0x7F, - 0xA0, - 0xA5, - 0xA5, - 0xA5, - 0xD0, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x9F, - 0xAB, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0x8B, - 0x5E, - 0x6B, - 0xBF, - 0xAA, - 0x8D, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xA9, - 0xB0, - 0xB0, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xB5, - 0xB6, - 0xB6, - 0xB0, - 0xA1, - 0xA9, - 0xA1, - 0xAA, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x51, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x49, - 0xB9, - 0x49, - 0x79, - 0xB9, - 0x79, - 0x35, - 0x49, - 0x49, - 0xB9, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0xB9, - 0x79, - 0x49, - 0x79, - 0x52, - 0x52, - 0x52, - 0x7E, - 0xBF, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC1, - 0x8D, - 0xC1, - 0xC6, - 0xAA, - 0xAA, - 0x8D, - 0xB7, - 0xB7, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0xC5, - 0xAC, - 0xAD, - 0xB8, - 0x9B, - 0x9B, - 0xAD, - 0x9B, - 0xAD, - 0xAE, - 0xAE, - 0xAE, - 0xC5, - 0xBF, - 0xA2, - 0x7E, - 0xAE, - 0xAE, - 0xAE, - 0xA2, - 0xAD, - 0xC5, - 0x96, - 0xB8, - 0x97, - 0x97, - 0xB8, - 0x00, - 0x07, - 0x78, - 0x00, - 0x09, - 0x71, - 0x96, - 0x78, - 0xB8, - 0x96, - 0x96, - 0x99, - 0x99, - 0x8F, - 0x00, - 0x04, - 0x98, - 0x00, - 0x0C, - 0x82, - 0x81, - 0x98, - 0x87, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x87, - 0x04, - 0x81, - 0x00, - 0x25, - 0x77, - 0x81, - 0x77, - 0x77, - 0x77, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x50, - 0x6A, - 0x65, - 0x50, - 0x65, - 0x43, - 0x65, - 0x65, - 0x62, - 0x62, - 0x4B, - 0x67, - 0x62, - 0x84, - 0x67, - 0x67, - 0xDE, - 0xFD, - 0x14, - 0xDF, - 0xEA, - 0xEA, - 0xDE, - 0x06, - 0xE2, - 0xDE, - 0x00, - 0x07, - 0xD8, - 0x00, - 0x0B, - 0xBE, - 0xD8, - 0x91, - 0xD8, - 0x84, - 0x4D, - 0x75, - 0x44, - 0x84, - 0x58, - 0x44, - 0x00, - 0x04, - 0x58, - 0x00, - 0x04, - 0x84, - 0x58, - 0x84, - 0x58, - 0x04, - 0x84, - 0x00, - 0x48, - 0x67, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x62, - 0x62, - 0x62, - 0x65, - 0x4E, - 0x65, - 0x72, - 0x50, - 0x50, - 0x83, - 0x83, - 0x83, - 0x77, - 0x83, - 0x50, - 0x22, - 0x67, - 0x5A, - 0x44, - 0x91, - 0x7C, - 0x89, - 0x36, - 0x89, - 0x45, - 0x91, - 0x75, - 0x5B, - 0x8B, - 0x59, - 0x5E, - 0x5E, - 0x59, - 0x59, - 0x8B, - 0x59, - 0xBB, - 0x90, - 0x90, - 0x90, - 0x5E, - 0x2E, - 0x59, - 0x5A, - 0x5B, - 0x75, - 0x63, - 0x64, - 0x64, - 0x7C, - 0x7C, - 0x64, - 0x64, - 0x63, - 0x5B, - 0x5A, - 0x29, - 0x5B, - 0x66, - 0x45, - 0xA5, - 0xA0, - 0xAB, - 0x8C, - 0x8C, - 0x05, - 0x85, - 0x00, - 0x3B, - 0x8C, - 0x55, - 0x9F, - 0xAB, - 0x76, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xB4, - 0xAB, - 0xAB, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xD0, - 0xBE, - 0x8B, - 0x9A, - 0x56, - 0x7E, - 0x80, - 0x8D, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0x71, - 0xB0, - 0xA1, - 0x8D, - 0xCA, - 0x8D, - 0xB0, - 0xB0, - 0xB0, - 0xCA, - 0x8D, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xA1, - 0x71, - 0xB0, - 0xC1, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0xB9, - 0x35, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x49, - 0x35, - 0x49, - 0x49, - 0x35, - 0x79, - 0x86, - 0xB2, - 0xA3, - 0xB2, - 0xB1, - 0x8E, - 0xC5, - 0xC3, - 0xC3, - 0x80, - 0x8D, - 0xC1, - 0xC6, - 0x8D, - 0xC1, - 0x80, - 0xAA, - 0xC1, - 0xC3, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0x04, - 0xAD, - 0x08, - 0xAE, - 0x00, - 0x1D, - 0xAD, - 0xA2, - 0xAE, - 0xAE, - 0xAD, - 0xAD, - 0xB8, - 0x97, - 0x78, - 0x97, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x78, - 0x71, - 0x78, - 0x78, - 0x78, - 0x96, - 0x78, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x9E, - 0x99, - 0x9E, - 0x9E, - 0x00, - 0x06, - 0x98, - 0x00, - 0x07, - 0x81, - 0x98, - 0x87, - 0x87, - 0x87, - 0x81, - 0x87, - 0x00, - 0x04, - 0x81, - 0x00, - 0x05, - 0x77, - 0x81, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x83, - 0x00, - 0x56, - 0x6A, - 0x50, - 0x6A, - 0x50, - 0x50, - 0x65, - 0x65, - 0x43, - 0x62, - 0x62, - 0x62, - 0x67, - 0x67, - 0x67, - 0x37, - 0x67, - 0x84, - 0x84, - 0xDE, - 0xEA, - 0xDF, - 0xEA, - 0xDE, - 0xDE, - 0xEA, - 0xDE, - 0xE9, - 0xD0, - 0xE2, - 0xD8, - 0x91, - 0xD8, - 0x91, - 0xD8, - 0xD8, - 0x91, - 0x91, - 0xBC, - 0x5A, - 0xBE, - 0xBC, - 0x58, - 0x58, - 0x51, - 0x84, - 0x84, - 0x58, - 0x44, - 0x84, - 0x3A, - 0x44, - 0x84, - 0x58, - 0x84, - 0x84, - 0x58, - 0x84, - 0x84, - 0x84, - 0x67, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x65, - 0x4E, - 0x62, - 0x65, - 0x65, - 0x65, - 0x50, - 0x50, - 0x50, - 0x6A, - 0x83, - 0x77, - 0x77, - 0x6A, - 0x43, - 0x27, - 0x25, - 0x91, - 0x89, - 0x89, - 0x04, - 0x5F, - 0x00, - 0x4D, - 0x89, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x5E, - 0x5E, - 0x59, - 0xB3, - 0x59, - 0x90, - 0x59, - 0x59, - 0x90, - 0x59, - 0x59, - 0x5E, - 0x5E, - 0x5E, - 0x5A, - 0x5A, - 0x4D, - 0x75, - 0x63, - 0x64, - 0x64, - 0x89, - 0x64, - 0x64, - 0x63, - 0x5B, - 0x5A, - 0x4D, - 0x75, - 0xA7, - 0xA5, - 0xB4, - 0xAB, - 0x8C, - 0xC0, - 0x85, - 0x2D, - 0x2D, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA5, - 0xA5, - 0xD0, - 0xAF, - 0xAF, - 0xBD, - 0xB4, - 0xDE, - 0x7F, - 0xAB, - 0xB4, - 0xB4, - 0xA5, - 0x45, - 0xBC, - 0x5E, - 0x6D, - 0xB1, - 0xAA, - 0x80, - 0x8D, - 0x8D, - 0xB0, - 0xB0, - 0xA1, - 0x71, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x06, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0xA1, - 0xA9, - 0x04, - 0xB0, - 0x00, - 0x0D, - 0xA1, - 0xA1, - 0xA1, - 0xB6, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xC6, - 0x8D, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x5D, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x49, - 0xB9, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x35, - 0xB9, - 0x49, - 0x35, - 0x35, - 0x35, - 0xB9, - 0xB9, - 0x79, - 0x49, - 0x79, - 0x49, - 0x35, - 0x52, - 0x52, - 0x52, - 0xBF, - 0xB1, - 0x9B, - 0xAC, - 0xC3, - 0x8D, - 0xC1, - 0xC6, - 0xC1, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0x80, - 0xB7, - 0xC3, - 0xC3, - 0xB8, - 0xAC, - 0xB8, - 0xAC, - 0xAC, - 0xAD, - 0x9B, - 0xAD, - 0x9B, - 0xAE, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xAE, - 0xAD, - 0xAE, - 0xA2, - 0xAE, - 0xAE, - 0xAE, - 0xAD, - 0x96, - 0xB8, - 0x97, - 0x97, - 0xB7, - 0xB7, - 0x97, - 0xC1, - 0xB7, - 0x78, - 0xA9, - 0x78, - 0x78, - 0x78, - 0xC1, - 0x96, - 0x78, - 0x78, - 0x78, - 0xA2, - 0xA2, - 0xA2, - 0x8F, - 0x99, - 0x9E, - 0x9E, - 0x00, - 0x04, - 0x98, - 0x00, - 0x0B, - 0x81, - 0x98, - 0x87, - 0x98, - 0x87, - 0x98, - 0x81, - 0x87, - 0x53, - 0x81, - 0x87, - 0x00, - 0x05, - 0x81, - 0x00, - 0x06, - 0x77, - 0x77, - 0x77, - 0x83, - 0x83, - 0x83, - 0x04, - 0x6A, - 0x00, - 0x11, - 0x65, - 0x6A, - 0x65, - 0x43, - 0x62, - 0x65, - 0x62, - 0x62, - 0x67, - 0x62, - 0x67, - 0x67, - 0x67, - 0x84, - 0x84, - 0x84, - 0xDE, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x20, - 0xDE, - 0xDE, - 0xD0, - 0xE9, - 0xD0, - 0xD0, - 0xD8, - 0x91, - 0xD8, - 0xD8, - 0xBE, - 0x91, - 0xD8, - 0x91, - 0x75, - 0x91, - 0x5B, - 0x63, - 0x91, - 0x44, - 0x3A, - 0x58, - 0x44, - 0x44, - 0x58, - 0x58, - 0x44, - 0x58, - 0x58, - 0x3A, - 0x58, - 0x58, - 0x05, - 0x84, - 0x00, - 0x46, - 0x67, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x4E, - 0x62, - 0x62, - 0x4E, - 0x65, - 0x50, - 0x50, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x6A, - 0x4E, - 0x84, - 0x44, - 0x64, - 0x36, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x5F, - 0x36, - 0x1B, - 0x66, - 0x8B, - 0x59, - 0x5E, - 0x9A, - 0x59, - 0x5E, - 0x59, - 0x59, - 0x90, - 0xB3, - 0x90, - 0x5E, - 0xB3, - 0x46, - 0x2E, - 0x5E, - 0x29, - 0x5B, - 0x4D, - 0x4D, - 0x75, - 0x64, - 0x64, - 0x64, - 0x63, - 0x91, - 0x4D, - 0x4D, - 0x75, - 0xA8, - 0x36, - 0xA0, - 0xB4, - 0x9F, - 0x8C, - 0xC0, - 0x04, - 0x85, - 0x00, - 0x0E, - 0x32, - 0x8C, - 0x8C, - 0xAB, - 0x2C, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0x04, - 0xAB, - 0x00, - 0x22, - 0xA0, - 0xAF, - 0xBE, - 0xBC, - 0x5E, - 0x6C, - 0x7E, - 0x97, - 0x8D, - 0x80, - 0x8D, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xA1, - 0x8D, - 0xB0, - 0xA1, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB0, - 0x71, - 0xB5, - 0xB5, - 0x04, - 0xA1, - 0x00, - 0x04, - 0xB0, - 0x8D, - 0xAA, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x3F, - 0x49, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0xB9, - 0x79, - 0x49, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0xB9, - 0x35, - 0x49, - 0x49, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x79, - 0xA4, - 0x52, - 0x7E, - 0xB2, - 0xBF, - 0xC5, - 0xAC, - 0xAC, - 0xAA, - 0x8D, - 0xC6, - 0xC1, - 0xC6, - 0xA9, - 0x8D, - 0xC1, - 0xAA, - 0xAA, - 0xAA, - 0xB8, - 0xC3, - 0xAC, - 0xB8, - 0xAC, - 0xC5, - 0xC5, - 0xAC, - 0xAE, - 0xAD, - 0xAD, - 0xAE, - 0xAD, - 0xAD, - 0x00, - 0x04, - 0xAE, - 0x00, - 0x0E, - 0x9B, - 0xAD, - 0xAE, - 0xAD, - 0xAD, - 0xB8, - 0xB8, - 0xB8, - 0xB7, - 0x97, - 0x78, - 0xC1, - 0x78, - 0xB7, - 0x04, - 0x78, - 0x00, - 0x03, - 0x96, - 0x78, - 0x78, - 0x00, - 0x04, - 0x96, - 0x00, - 0x14, - 0xA2, - 0x99, - 0xA2, - 0x9E, - 0x9E, - 0x9E, - 0x87, - 0x82, - 0x98, - 0x98, - 0x81, - 0x98, - 0x53, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x81, - 0x87, - 0x05, - 0x81, - 0x00, - 0x08, - 0x83, - 0x81, - 0x77, - 0x83, - 0x77, - 0x83, - 0x83, - 0x83, - 0x04, - 0x6A, - 0x00, - 0x0A, - 0x65, - 0x43, - 0x65, - 0x65, - 0x62, - 0x62, - 0x62, - 0x4B, - 0x84, - 0x62, - 0x04, - 0x84, - 0x00, - 0xB1, - 0x58, - 0xBD, - 0x14, - 0xEA, - 0xEA, - 0xDE, - 0xEA, - 0xDE, - 0x06, - 0xB4, - 0xE9, - 0xE2, - 0xA5, - 0xD8, - 0xD8, - 0x91, - 0xD8, - 0xD8, - 0x91, - 0xD8, - 0xBC, - 0x5B, - 0x75, - 0x5B, - 0x63, - 0x5A, - 0x51, - 0x51, - 0x4D, - 0x58, - 0x44, - 0x58, - 0x63, - 0x44, - 0x44, - 0x84, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x67, - 0x84, - 0x84, - 0x67, - 0x67, - 0x67, - 0x62, - 0x67, - 0x4E, - 0x62, - 0x65, - 0x43, - 0x65, - 0x72, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x6A, - 0x50, - 0x4E, - 0x27, - 0x4D, - 0x64, - 0x4F, - 0x7A, - 0x2F, - 0x2F, - 0x2B, - 0x2F, - 0x7A, - 0x5F, - 0xA7, - 0x91, - 0x5B, - 0x5B, - 0x5E, - 0x5E, - 0x46, - 0x5E, - 0x5E, - 0xB3, - 0x59, - 0x59, - 0x5E, - 0xB3, - 0x59, - 0x5E, - 0x46, - 0x46, - 0x5E, - 0x27, - 0x5A, - 0x4D, - 0x63, - 0x44, - 0x91, - 0x63, - 0x64, - 0x63, - 0x63, - 0x75, - 0x66, - 0x36, - 0xA5, - 0x76, - 0x7F, - 0x55, - 0x8C, - 0xC0, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x55, - 0x9F, - 0xAB, - 0xA0, - 0x76, - 0xA5, - 0xA5, - 0xD0, - 0xAF, - 0xA0, - 0x7F, - 0xAB, - 0xAB, - 0xAB, - 0xDE, - 0x7F, - 0xB4, - 0xAF, - 0xA7, - 0x66, - 0xB3, - 0x74, - 0xB2, - 0x97, - 0x8D, - 0x8D, - 0xB0, - 0x8D, - 0x71, - 0xA1, - 0xCA, - 0xA1, - 0x71, - 0xCA, - 0xB0, - 0xA1, - 0xC6, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0x8D, - 0xB0, - 0x71, - 0xB0, - 0xA9, - 0xB0, - 0xB5, - 0xA1, - 0xB6, - 0xB6, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0x71, - 0x8D, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x01, - 0x49, - 0x01, - 0x79, - 0x04, - 0x35, - 0x00, - 0x2E, - 0x49, - 0x35, - 0x35, - 0xB9, - 0x49, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x79, - 0xB9, - 0x35, - 0xB9, - 0x79, - 0x49, - 0xB9, - 0x49, - 0x49, - 0x79, - 0x35, - 0x35, - 0x49, - 0x49, - 0x86, - 0x52, - 0xB2, - 0xB2, - 0xB1, - 0xB1, - 0xAC, - 0xAC, - 0xC3, - 0xAA, - 0xC6, - 0xC1, - 0xC6, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0xB8, - 0xC3, - 0xB8, - 0xB8, - 0x04, - 0xC5, - 0x00, - 0x29, - 0x9B, - 0xAD, - 0xAE, - 0x9B, - 0xAE, - 0xAE, - 0xAE, - 0x9B, - 0xAD, - 0xAD, - 0x9B, - 0xAD, - 0xAD, - 0xAD, - 0xB8, - 0xB8, - 0xB8, - 0x78, - 0xB7, - 0x78, - 0x78, - 0xB7, - 0xB7, - 0x78, - 0xB7, - 0x78, - 0x78, - 0x78, - 0xC1, - 0xB8, - 0x96, - 0xB8, - 0x96, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0x9E, - 0x9E, - 0x00, - 0x04, - 0x98, - 0x00, - 0x04, - 0x82, - 0x9E, - 0x81, - 0x98, - 0x04, - 0x87, - 0x01, - 0x81, - 0x01, - 0x98, - 0x05, - 0x81, - 0x00, - 0x07, - 0x77, - 0x81, - 0x77, - 0x77, - 0x83, - 0x83, - 0x83, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x38, - 0x65, - 0x50, - 0x65, - 0x65, - 0x65, - 0x62, - 0x62, - 0x67, - 0x62, - 0x67, - 0x67, - 0x67, - 0x84, - 0x84, - 0x58, - 0x84, - 0x58, - 0xAF, - 0xEA, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xEA, - 0xB4, - 0xE9, - 0xDE, - 0xD0, - 0xD0, - 0xD0, - 0x89, - 0xD8, - 0xD8, - 0xD8, - 0x91, - 0xD8, - 0x91, - 0xBC, - 0x91, - 0x51, - 0xBC, - 0x51, - 0x51, - 0x44, - 0x44, - 0x63, - 0x58, - 0x4D, - 0x58, - 0x58, - 0x44, - 0x58, - 0x44, - 0x58, - 0x84, - 0x3A, - 0x05, - 0x84, - 0x00, - 0x70, - 0x67, - 0x84, - 0x84, - 0x67, - 0x67, - 0x62, - 0x67, - 0x4E, - 0x65, - 0x4E, - 0x65, - 0x65, - 0x65, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x50, - 0x38, - 0x27, - 0x44, - 0x64, - 0x36, - 0x23, - 0x2C, - 0x2B, - 0x2B, - 0x2A, - 0x2C, - 0x2F, - 0x5F, - 0x7C, - 0x1B, - 0x66, - 0x90, - 0x5E, - 0x46, - 0x5E, - 0x2E, - 0xB3, - 0x5E, - 0x5E, - 0x5E, - 0x59, - 0x9A, - 0x5E, - 0x9A, - 0x31, - 0x46, - 0x46, - 0x5E, - 0x29, - 0x5A, - 0x4D, - 0x63, - 0x63, - 0x64, - 0x63, - 0x75, - 0x63, - 0x45, - 0x89, - 0x76, - 0x76, - 0xAB, - 0x8C, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0x85, - 0x32, - 0x32, - 0x8C, - 0x8C, - 0xAB, - 0x7F, - 0xA0, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA0, - 0xBD, - 0xAB, - 0xAB, - 0x9F, - 0x9F, - 0xB4, - 0xBD, - 0xAF, - 0xA7, - 0x66, - 0x59, - 0x3B, - 0x52, - 0x8E, - 0x8D, - 0x8D, - 0x8D, - 0xA1, - 0x8D, - 0xA1, - 0xA1, - 0xA1, - 0xB6, - 0xA1, - 0xB5, - 0xA1, - 0x8D, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x06, - 0xC6, - 0xB0, - 0xA9, - 0xB0, - 0xB0, - 0xB6, - 0x06, - 0xA1, - 0x00, - 0x04, - 0xB0, - 0xC6, - 0x8D, - 0xAA, - 0x00, - 0x00, - 0x00, - 0x48, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0xB9, - 0xB9, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x79, - 0x49, - 0xB9, - 0x49, - 0x5D, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0xB9, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0xA4, - 0x52, - 0xB2, - 0x7E, - 0x9B, - 0x9B, - 0xAC, - 0xC3, - 0xAA, - 0x80, - 0xC6, - 0xC1, - 0xC6, - 0x8D, - 0x8D, - 0xC3, - 0xC3, - 0xC3, - 0xB8, - 0xB8, - 0xAC, - 0xAC, - 0xB8, - 0xC5, - 0xC5, - 0xAD, - 0xAD, - 0xC5, - 0xAD, - 0xB8, - 0xC5, - 0xAD, - 0x96, - 0xC5, - 0xAD, - 0xAD, - 0xB8, - 0xB8, - 0xB8, - 0xAC, - 0x97, - 0x05, - 0xB7, - 0x00, - 0x24, - 0x78, - 0xB7, - 0x78, - 0x78, - 0xC3, - 0x97, - 0x96, - 0x96, - 0x96, - 0xAD, - 0xA2, - 0x96, - 0x96, - 0xA2, - 0xA2, - 0x99, - 0x8F, - 0x99, - 0x8F, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x81, - 0x9E, - 0x98, - 0x87, - 0x81, - 0x53, - 0x87, - 0x81, - 0x87, - 0x81, - 0x87, - 0x87, - 0x04, - 0x81, - 0x00, - 0x03, - 0x77, - 0x83, - 0x77, - 0x00, - 0x04, - 0x83, - 0x00, - 0x15, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x65, - 0x65, - 0x43, - 0x62, - 0x65, - 0x62, - 0x62, - 0x67, - 0x84, - 0x67, - 0x84, - 0x37, - 0x84, - 0x84, - 0x58, - 0x58, - 0xD0, - 0x00, - 0x05, - 0xEA, - 0x00, - 0x24, - 0xDE, - 0xDE, - 0xDE, - 0xD0, - 0xDE, - 0xD0, - 0xD0, - 0xE2, - 0xD8, - 0x89, - 0x7C, - 0xD8, - 0x91, - 0xBE, - 0x54, - 0x63, - 0xBC, - 0x63, - 0x63, - 0x44, - 0x51, - 0x63, - 0x51, - 0x44, - 0x51, - 0x44, - 0x51, - 0x3A, - 0x58, - 0x44, - 0x58, - 0x44, - 0x58, - 0x58, - 0x84, - 0x58, - 0x04, - 0x84, - 0x04, - 0x67, - 0x04, - 0x62, - 0x01, - 0x65, - 0x01, - 0x50, - 0x04, - 0x6A, - 0x00, - 0x17, - 0x3C, - 0x50, - 0x67, - 0x29, - 0x63, - 0x64, - 0x4F, - 0x2F, - 0x2F, - 0x2A, - 0x26, - 0x2A, - 0x2A, - 0x2F, - 0x7A, - 0x5F, - 0xA8, - 0x63, - 0x5B, - 0x59, - 0x5E, - 0x6F, - 0x9A, - 0x00, - 0x08, - 0x5E, - 0x00, - 0x55, - 0x9A, - 0x31, - 0x31, - 0x2E, - 0x2E, - 0x27, - 0x29, - 0x25, - 0x4D, - 0x63, - 0x4D, - 0x63, - 0x91, - 0x45, - 0x36, - 0xAF, - 0x7F, - 0xAB, - 0x55, - 0xC0, - 0x32, - 0x85, - 0x2D, - 0x2D, - 0xC0, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x7F, - 0x7F, - 0x76, - 0xA5, - 0xA5, - 0xAF, - 0xD0, - 0xA0, - 0xBD, - 0xB4, - 0xAB, - 0xDE, - 0x9F, - 0xAB, - 0xB4, - 0xAF, - 0xA7, - 0xBC, - 0x5E, - 0x3B, - 0xB2, - 0x97, - 0xD3, - 0x71, - 0x80, - 0x8D, - 0xD3, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0x8D, - 0xB0, - 0xA1, - 0x71, - 0xB0, - 0xA9, - 0xCA, - 0xB0, - 0xB0, - 0xC6, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xB0, - 0xA9, - 0xC6, - 0x80, - 0x00, - 0x00, - 0x00, - 0x04, - 0x61, - 0x01, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x21, - 0x6E, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0xA6, - 0xB9, - 0xB9, - 0x79, - 0xA4, - 0xA4, - 0xD4, - 0xB1, - 0xB1, - 0x8E, - 0xCE, - 0x00, - 0x04, - 0xB1, - 0x01, - 0xD4, - 0x01, - 0xB1, - 0x04, - 0xB2, - 0x00, - 0x32, - 0xA3, - 0xB2, - 0xA4, - 0xB2, - 0xA4, - 0xA4, - 0xB2, - 0xA4, - 0xB2, - 0xB2, - 0xB2, - 0xA3, - 0xD4, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0x7E, - 0xBF, - 0xB2, - 0x94, - 0x9C, - 0xA3, - 0x94, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x7D, - 0x7D, - 0x88, - 0x7D, - 0x74, - 0x69, - 0x88, - 0x04, - 0x7D, - 0x00, - 0x3F, - 0x69, - 0x7D, - 0x69, - 0x69, - 0x69, - 0x88, - 0x69, - 0x69, - 0x3C, - 0x3C, - 0x88, - 0x88, - 0x88, - 0x72, - 0x6A, - 0x72, - 0x72, - 0x72, - 0x43, - 0x62, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0x67, - 0x84, - 0x67, - 0x29, - 0x84, - 0x84, - 0x3A, - 0x3A, - 0x84, - 0x4D, - 0x3A, - 0x44, - 0x4D, - 0xBE, - 0xDF, - 0xEA, - 0xEA, - 0xEA, - 0xDE, - 0xEA, - 0xDE, - 0xDE, - 0xB4, - 0xE9, - 0xDE, - 0xDE, - 0xD8, - 0xAF, - 0xD0, - 0xE2, - 0x89, - 0xD8, - 0x7C, - 0xD8, - 0x91, - 0x7C, - 0xBE, - 0x63, - 0x64, - 0x00, - 0x06, - 0x63, - 0x00, - 0x09, - 0x44, - 0x63, - 0x44, - 0x44, - 0x4D, - 0x44, - 0x44, - 0x4D, - 0x44, - 0x00, - 0x05, - 0x3A, - 0x00, - 0x61, - 0x84, - 0x3A, - 0x84, - 0x84, - 0x84, - 0x2E, - 0x39, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x2E, - 0x5A, - 0x4D, - 0x89, - 0x76, - 0x23, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x7A, - 0x5F, - 0x45, - 0x75, - 0x66, - 0x59, - 0xB3, - 0x5E, - 0x9A, - 0xB3, - 0xB3, - 0x59, - 0xB3, - 0x59, - 0xB3, - 0x5E, - 0x5E, - 0xB3, - 0x46, - 0x9A, - 0x2E, - 0x29, - 0x59, - 0x5A, - 0x4D, - 0x4D, - 0x91, - 0x91, - 0x64, - 0x45, - 0x76, - 0x7F, - 0x7F, - 0x55, - 0x8C, - 0xC0, - 0x85, - 0x85, - 0xCC, - 0xCC, - 0x85, - 0x32, - 0xC0, - 0x9F, - 0x55, - 0x9F, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0xA0, - 0xB4, - 0xB4, - 0x9F, - 0xAB, - 0xAB, - 0x9F, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0x90, - 0x6F, - 0x4A, - 0xA4, - 0xB1, - 0x00, - 0x06, - 0x8E, - 0x00, - 0x1B, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0x8E, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x61, - 0x00, - 0x09, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x04, - 0x61, - 0x01, - 0x6E, - 0x06, - 0x61, - 0x00, - 0x14, - 0xA6, - 0xA6, - 0x4A, - 0xB9, - 0x86, - 0xA4, - 0xA4, - 0xD4, - 0xB2, - 0xD4, - 0xB1, - 0x8E, - 0xB1, - 0xD4, - 0xB1, - 0xB2, - 0xB1, - 0xB2, - 0xD4, - 0xD4, - 0x05, - 0xB2, - 0x00, - 0x05, - 0x52, - 0xB2, - 0xB2, - 0xB2, - 0xA3, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x03, - 0xBF, - 0xD4, - 0x9B, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x1B, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xA3, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x94, - 0x98, - 0x9C, - 0x9C, - 0x8A, - 0x82, - 0x7D, - 0x8A, - 0x8A, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x46, - 0x69, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x7D, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x3C, - 0x88, - 0x6A, - 0x72, - 0x50, - 0x72, - 0x43, - 0x72, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x67, - 0x2E, - 0x2E, - 0x84, - 0x84, - 0x84, - 0x5A, - 0x84, - 0x84, - 0x44, - 0x84, - 0x44, - 0x3A, - 0x44, - 0x75, - 0xEA, - 0xEA, - 0xDF, - 0xEA, - 0xDF, - 0xDE, - 0xDE, - 0xEA, - 0xDE, - 0xDE, - 0xB4, - 0xD0, - 0xB4, - 0xAF, - 0xD0, - 0xA5, - 0xA5, - 0xA5, - 0xD8, - 0x7C, - 0xA5, - 0x91, - 0xBE, - 0x7C, - 0x63, - 0x7C, - 0x63, - 0x63, - 0x64, - 0x04, - 0x63, - 0x00, - 0x17, - 0x44, - 0x63, - 0x44, - 0x44, - 0x3A, - 0x44, - 0x3A, - 0x4D, - 0x44, - 0x3A, - 0x3A, - 0x3A, - 0x5A, - 0x84, - 0x5A, - 0x29, - 0x39, - 0x84, - 0x39, - 0x38, - 0x39, - 0x4E, - 0x38, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x08, - 0x38, - 0x2E, - 0x5A, - 0x75, - 0x45, - 0x28, - 0x2F, - 0x2B, - 0x04, - 0x26, - 0x00, - 0x5D, - 0x55, - 0x2A, - 0x2A, - 0x23, - 0x5F, - 0x45, - 0x66, - 0x66, - 0x59, - 0x9A, - 0x5E, - 0x5E, - 0x5E, - 0xB3, - 0x90, - 0xB3, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x6F, - 0x9A, - 0x46, - 0x2E, - 0x5A, - 0x5A, - 0x4D, - 0x4D, - 0x75, - 0x45, - 0x45, - 0x76, - 0xA0, - 0x2C, - 0x9F, - 0xC0, - 0xC0, - 0x32, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x8C, - 0x7F, - 0x7F, - 0xA0, - 0xA0, - 0xA0, - 0xD0, - 0xA0, - 0xA0, - 0x7F, - 0xDE, - 0x9F, - 0x9F, - 0xD5, - 0xAB, - 0xB4, - 0xBD, - 0xD0, - 0xBE, - 0x90, - 0x9A, - 0x61, - 0xB2, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x05, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x00, - 0x03, - 0x6E, - 0x61, - 0x9D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x1A, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0xB9, - 0xB9, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xB1, - 0x8E, - 0xD4, - 0xB1, - 0xBF, - 0xD4, - 0xD4, - 0xB2, - 0xBF, - 0xA4, - 0x0A, - 0xB2, - 0x00, - 0x08, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xD4, - 0xBF, - 0xB1, - 0xD4, - 0x04, - 0xB1, - 0x00, - 0x44, - 0xBF, - 0xBF, - 0xD4, - 0xBF, - 0xB2, - 0xBF, - 0x7E, - 0xA3, - 0xA3, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x8A, - 0x7D, - 0x7D, - 0x57, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x69, - 0x69, - 0x88, - 0x69, - 0x69, - 0x69, - 0x88, - 0x88, - 0x72, - 0x88, - 0x50, - 0x43, - 0x72, - 0x72, - 0x72, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x67, - 0x38, - 0x84, - 0x84, - 0x39, - 0x84, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x04, - 0x44, - 0x00, - 0x35, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xEA, - 0xD5, - 0xEA, - 0xD5, - 0xDE, - 0xDE, - 0xDE, - 0xB4, - 0xDE, - 0xD0, - 0xD0, - 0xAF, - 0xD8, - 0x7A, - 0xD8, - 0x4F, - 0xD8, - 0x89, - 0x7C, - 0xBE, - 0x64, - 0x64, - 0x64, - 0x63, - 0x64, - 0x63, - 0x63, - 0x63, - 0x54, - 0x51, - 0x75, - 0x44, - 0x44, - 0x63, - 0x3A, - 0x44, - 0x3A, - 0x58, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x58, - 0x84, - 0x84, - 0x67, - 0x5A, - 0x39, - 0x84, - 0x00, - 0x04, - 0x38, - 0x00, - 0x0C, - 0x4E, - 0x4E, - 0x38, - 0x4E, - 0x2E, - 0x5A, - 0x4D, - 0x45, - 0x36, - 0x7A, - 0x2B, - 0x2A, - 0x05, - 0x26, - 0x00, - 0x5B, - 0x55, - 0x2B, - 0x76, - 0x36, - 0x45, - 0x66, - 0x8B, - 0x59, - 0x9A, - 0x5E, - 0x9A, - 0xB3, - 0x5E, - 0x5E, - 0xB3, - 0xB3, - 0x5E, - 0xD6, - 0x9A, - 0x9A, - 0x6F, - 0x6F, - 0x46, - 0x5E, - 0x29, - 0x5A, - 0x5A, - 0x75, - 0x45, - 0x45, - 0x76, - 0x2F, - 0xAB, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0x2D, - 0xCC, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x8C, - 0x55, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xAF, - 0xA0, - 0xBD, - 0xB4, - 0x9F, - 0xAB, - 0x9F, - 0x9F, - 0x9F, - 0xB4, - 0xBD, - 0xA7, - 0xBE, - 0x90, - 0x9A, - 0x6D, - 0x52, - 0xB1, - 0xB1, - 0xB1, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x06, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xD4, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0x6E, - 0x08, - 0x61, - 0x00, - 0x0B, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x01, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x13, - 0xA6, - 0x4A, - 0x4A, - 0xB9, - 0x86, - 0x86, - 0xA4, - 0xB2, - 0xD4, - 0xD4, - 0xD4, - 0xB1, - 0xB1, - 0xB2, - 0xBF, - 0xB2, - 0xD4, - 0xB2, - 0xD4, - 0x00, - 0x08, - 0xB2, - 0x00, - 0x04, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0x05, - 0xB1, - 0x00, - 0x06, - 0x9B, - 0xB1, - 0xB1, - 0xBF, - 0xBF, - 0xD4, - 0x05, - 0xBF, - 0x00, - 0x08, - 0xA3, - 0xA3, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x8A, - 0x04, - 0x9C, - 0x00, - 0x1C, - 0x98, - 0x98, - 0x8A, - 0x8A, - 0x8A, - 0x7D, - 0x7D, - 0x7D, - 0x74, - 0x74, - 0x82, - 0x7D, - 0x7D, - 0x69, - 0x7D, - 0x57, - 0x57, - 0x57, - 0x69, - 0x7D, - 0x69, - 0x69, - 0x69, - 0x3C, - 0x88, - 0x88, - 0x6A, - 0x3C, - 0x04, - 0x72, - 0x00, - 0x1C, - 0x43, - 0x62, - 0x72, - 0x4E, - 0x67, - 0x84, - 0x38, - 0x39, - 0x39, - 0x39, - 0x84, - 0x5A, - 0x3A, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x4D, - 0x63, - 0xB4, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xEA, - 0x04, - 0xDE, - 0x00, - 0x0C, - 0xB4, - 0xDE, - 0xAF, - 0xAF, - 0xB4, - 0xB4, - 0xAF, - 0xD8, - 0x7A, - 0xA5, - 0x7C, - 0xD8, - 0x04, - 0x7C, - 0x00, - 0x1A, - 0x64, - 0x7C, - 0x63, - 0x91, - 0x54, - 0x63, - 0x75, - 0x63, - 0x63, - 0x91, - 0x63, - 0x44, - 0x63, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x4D, - 0x44, - 0x84, - 0x5A, - 0x84, - 0x5A, - 0x84, - 0x5A, - 0x39, - 0x06, - 0x38, - 0x00, - 0x61, - 0x2E, - 0x2E, - 0x38, - 0x27, - 0x59, - 0x66, - 0x91, - 0x36, - 0x76, - 0x7A, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x2B, - 0x23, - 0x89, - 0x64, - 0x5B, - 0x90, - 0x59, - 0x6F, - 0x9A, - 0x9A, - 0x9A, - 0xB3, - 0x5E, - 0x9A, - 0x9A, - 0x5E, - 0xB3, - 0x6F, - 0x6F, - 0x6F, - 0x31, - 0x31, - 0x2E, - 0x27, - 0x5A, - 0x5B, - 0x66, - 0xA7, - 0x76, - 0x7F, - 0xAB, - 0x55, - 0xC0, - 0xC0, - 0x85, - 0x85, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xA0, - 0xAF, - 0xA0, - 0xB4, - 0xB4, - 0xB4, - 0xD5, - 0xD5, - 0x9F, - 0x9F, - 0xB4, - 0xA0, - 0xD0, - 0xA8, - 0xBB, - 0x6F, - 0x4A, - 0xA4, - 0x8E, - 0xD4, - 0x8E, - 0xD4, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x10, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x09, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x00, - 0x07, - 0x61, - 0x00, - 0x04, - 0x6E, - 0x9D, - 0x6E, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x13, - 0x6E, - 0x61, - 0xA6, - 0x6D, - 0xB9, - 0x4A, - 0xB9, - 0xB9, - 0xA4, - 0xA4, - 0xB2, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0xB1, - 0xD4, - 0xD4, - 0xD4, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x08, - 0xD4, - 0xA3, - 0xD4, - 0xB2, - 0xD4, - 0xD4, - 0xB1, - 0xD4, - 0x04, - 0xB1, - 0x00, - 0x19, - 0x8E, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0xA3, - 0xA3, - 0x9C, - 0x9C, - 0xB9, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x00, - 0x05, - 0x9C, - 0x01, - 0x82, - 0x05, - 0x7D, - 0x00, - 0x08, - 0x69, - 0x7D, - 0x7D, - 0x82, - 0x57, - 0x7D, - 0x57, - 0x7D, - 0x04, - 0x69, - 0x00, - 0x74, - 0x88, - 0x69, - 0x88, - 0x69, - 0x83, - 0x72, - 0x3C, - 0x72, - 0x50, - 0x43, - 0x72, - 0x4E, - 0x38, - 0x4E, - 0x67, - 0x4E, - 0x39, - 0x39, - 0x39, - 0x84, - 0x84, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x84, - 0x44, - 0x3A, - 0x63, - 0x63, - 0x44, - 0x63, - 0xAF, - 0xDF, - 0xDF, - 0xDF, - 0xEA, - 0xD5, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xDE, - 0xB4, - 0xB4, - 0xB4, - 0xAF, - 0xB4, - 0xAF, - 0xD0, - 0x7A, - 0xD0, - 0x7A, - 0xD8, - 0x89, - 0x4F, - 0x7C, - 0x64, - 0x7C, - 0x64, - 0x7C, - 0x63, - 0x7C, - 0x63, - 0x64, - 0x63, - 0x63, - 0x51, - 0x63, - 0x63, - 0x44, - 0x4D, - 0x44, - 0x44, - 0x44, - 0x84, - 0x44, - 0x3A, - 0x58, - 0x3A, - 0x5A, - 0x84, - 0x67, - 0x39, - 0x38, - 0x39, - 0x38, - 0x39, - 0x38, - 0x2E, - 0x38, - 0x39, - 0x2E, - 0x29, - 0x5A, - 0x5B, - 0x91, - 0x89, - 0x36, - 0x7A, - 0x2C, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x26, - 0x2C, - 0x7A, - 0x5F, - 0x45, - 0x64, - 0x8B, - 0x59, - 0x5E, - 0x04, - 0x9A, - 0x00, - 0x22, - 0x5E, - 0x9A, - 0xB3, - 0x9A, - 0x9A, - 0x9A, - 0x6F, - 0xBA, - 0x6F, - 0x31, - 0x46, - 0x2E, - 0x5E, - 0x5A, - 0xA8, - 0x45, - 0xAF, - 0x7F, - 0x55, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0x76, - 0x04, - 0xA0, - 0x00, - 0x31, - 0xBD, - 0x7F, - 0xDE, - 0x9F, - 0x9F, - 0xDE, - 0x9F, - 0xB4, - 0xA0, - 0xA5, - 0xA8, - 0x90, - 0xD6, - 0x6D, - 0xA4, - 0xB1, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x0A, - 0x61, - 0x00, - 0x12, - 0x9D, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x17, - 0xA6, - 0xA6, - 0xB9, - 0xB9, - 0x86, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xB2, - 0xB1, - 0xD4, - 0xD4, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xD4, - 0xD4, - 0xBF, - 0xB2, - 0xD4, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x17, - 0x8E, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0xB1, - 0xD4, - 0xD4, - 0x9B, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xB2, - 0xB2, - 0x7E, - 0xA3, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x94, - 0x00, - 0x08, - 0x9C, - 0x01, - 0x82, - 0x01, - 0x9C, - 0x09, - 0x7D, - 0x00, - 0x07, - 0x57, - 0x7D, - 0x57, - 0x69, - 0x7D, - 0x57, - 0x57, - 0x00, - 0x05, - 0x69, - 0x00, - 0x26, - 0x3C, - 0x88, - 0x72, - 0x3C, - 0x72, - 0x72, - 0x72, - 0x43, - 0x4E, - 0x43, - 0x4E, - 0x67, - 0x4E, - 0x38, - 0x67, - 0x39, - 0x84, - 0x84, - 0x5A, - 0x3A, - 0x3A, - 0x84, - 0x44, - 0x63, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x63, - 0x63, - 0x63, - 0xDF, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xD5, - 0xD5, - 0x05, - 0xDE, - 0x00, - 0x0B, - 0x7A, - 0xDE, - 0xAF, - 0xDE, - 0x7A, - 0xD0, - 0x7A, - 0xA5, - 0x4F, - 0xAF, - 0xD8, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x3B, - 0x64, - 0x7C, - 0x63, - 0x7C, - 0x63, - 0x54, - 0x75, - 0x63, - 0x63, - 0x63, - 0x44, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x44, - 0x3A, - 0x4D, - 0x84, - 0x3A, - 0x84, - 0x84, - 0x5A, - 0x29, - 0x84, - 0x39, - 0x38, - 0x38, - 0x2E, - 0x84, - 0x29, - 0x2E, - 0x29, - 0x2E, - 0x5A, - 0x5B, - 0x75, - 0x64, - 0x36, - 0x7A, - 0x7A, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x2F, - 0x5F, - 0x45, - 0x66, - 0x5B, - 0x59, - 0x46, - 0x46, - 0x6F, - 0x00, - 0x07, - 0x9A, - 0x00, - 0x51, - 0x6F, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x31, - 0x46, - 0x59, - 0x66, - 0xBE, - 0x5F, - 0x7F, - 0xAB, - 0x55, - 0xC0, - 0x85, - 0x2D, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x55, - 0x8C, - 0xB4, - 0x7F, - 0xA0, - 0xA0, - 0xAF, - 0xA0, - 0xA0, - 0xAB, - 0xB4, - 0x9F, - 0x9F, - 0xD5, - 0x9F, - 0x9F, - 0xAB, - 0xBD, - 0xA5, - 0xD8, - 0xBB, - 0x9A, - 0x6D, - 0x52, - 0xD4, - 0x8E, - 0x8E, - 0xD4, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x08, - 0x61, - 0x00, - 0x2F, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x9D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0xA6, - 0xB9, - 0xA6, - 0x86, - 0xB9, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xB2, - 0xB2, - 0xBF, - 0xD4, - 0xB2, - 0xB2, - 0xBF, - 0xB2, - 0xB2, - 0xB2, - 0xD4, - 0xB2, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x11, - 0x8E, - 0x8E, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0xD4, - 0xBF, - 0xB1, - 0xB2, - 0xBF, - 0xB2, - 0xB2, - 0xBF, - 0x00, - 0x04, - 0xA3, - 0x00, - 0x11, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x9C, - 0x9C, - 0x82, - 0x9C, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x26, - 0x57, - 0x7D, - 0x57, - 0x7D, - 0x57, - 0x57, - 0x69, - 0x69, - 0x88, - 0x83, - 0x88, - 0x69, - 0x88, - 0x6A, - 0x72, - 0x50, - 0x72, - 0x65, - 0x72, - 0x4E, - 0x4E, - 0x62, - 0x38, - 0x67, - 0x39, - 0x39, - 0x84, - 0x39, - 0x84, - 0x3A, - 0x84, - 0x3A, - 0x4D, - 0x58, - 0x4D, - 0x44, - 0x44, - 0x44, - 0x04, - 0x63, - 0x00, - 0x0C, - 0xD5, - 0xDF, - 0xDF, - 0xDF, - 0xEA, - 0xEA, - 0xD5, - 0xD5, - 0xD5, - 0xDE, - 0xDE, - 0xDE, - 0x07, - 0xB4, - 0x00, - 0x0F, - 0x7A, - 0x7A, - 0xA5, - 0x7A, - 0x7C, - 0x7C, - 0x89, - 0x7C, - 0x7C, - 0x64, - 0x7C, - 0x63, - 0x91, - 0x54, - 0x64, - 0x00, - 0x05, - 0x63, - 0x00, - 0x87, - 0x4D, - 0x44, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x84, - 0x84, - 0x84, - 0x38, - 0x39, - 0x2E, - 0x84, - 0x2E, - 0x2E, - 0x29, - 0x5A, - 0x5A, - 0x5A, - 0x5B, - 0x75, - 0x45, - 0x21, - 0x36, - 0x7A, - 0x2C, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x32, - 0x26, - 0x26, - 0x26, - 0x2B, - 0x7A, - 0x36, - 0x64, - 0x5B, - 0x90, - 0x5E, - 0x9A, - 0x6F, - 0x6F, - 0x6F, - 0x9A, - 0x9A, - 0x9A, - 0x6F, - 0x9A, - 0x6F, - 0x6F, - 0x6F, - 0x42, - 0x3B, - 0x31, - 0x6F, - 0x59, - 0x8B, - 0x45, - 0xA5, - 0x7F, - 0x9F, - 0x8C, - 0xC0, - 0x32, - 0xCC, - 0xCC, - 0x85, - 0x2D, - 0x85, - 0xC0, - 0x8C, - 0x55, - 0x9F, - 0x1C, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0xAF, - 0xA0, - 0xBD, - 0x9F, - 0x9F, - 0x9F, - 0xD5, - 0xD5, - 0x9F, - 0xB4, - 0xA0, - 0xA7, - 0xA8, - 0xBB, - 0x9A, - 0x4A, - 0x35, - 0x8E, - 0xD4, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0xB1, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x08, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x6E, - 0x05, - 0x61, - 0x04, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x00, - 0x08, - 0x61, - 0x00, - 0x11, - 0xA6, - 0xB9, - 0x4A, - 0xB9, - 0xA4, - 0xA4, - 0xA4, - 0xB2, - 0xB2, - 0xBF, - 0xD4, - 0xB2, - 0xD4, - 0xD4, - 0xB2, - 0xD4, - 0xBF, - 0x00, - 0x06, - 0xB1, - 0x00, - 0x1A, - 0xD4, - 0xB1, - 0xB1, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0xD4, - 0xBF, - 0xBF, - 0xD4, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xA3, - 0x7E, - 0xB2, - 0xA3, - 0xA3, - 0xB2, - 0x9C, - 0x94, - 0xB9, - 0x07, - 0x9C, - 0x00, - 0x06, - 0x82, - 0x9C, - 0x8A, - 0x98, - 0x8A, - 0x8A, - 0x04, - 0x7D, - 0x00, - 0x04, - 0x57, - 0x57, - 0x7D, - 0x82, - 0x04, - 0x57, - 0x00, - 0x40, - 0x69, - 0x7D, - 0x69, - 0x69, - 0x88, - 0x69, - 0x3C, - 0x3C, - 0x72, - 0x88, - 0x72, - 0x72, - 0x72, - 0x62, - 0x72, - 0x4E, - 0x38, - 0x38, - 0x67, - 0x38, - 0x39, - 0x84, - 0x84, - 0x5A, - 0x84, - 0x3A, - 0x3A, - 0x58, - 0x4D, - 0x44, - 0x44, - 0x63, - 0x44, - 0x44, - 0x63, - 0x91, - 0x63, - 0x5F, - 0xEA, - 0xDF, - 0xEA, - 0xEA, - 0xD5, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xDE, - 0x7A, - 0xB4, - 0xB4, - 0xAF, - 0xDE, - 0xAF, - 0xB4, - 0x7A, - 0xAF, - 0xB4, - 0x7A, - 0xAF, - 0x4F, - 0x4F, - 0x89, - 0x4F, - 0x04, - 0x7C, - 0x00, - 0x29, - 0x64, - 0x64, - 0x63, - 0x63, - 0x64, - 0x63, - 0x63, - 0x44, - 0x63, - 0x4D, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x84, - 0x3A, - 0x3A, - 0x84, - 0x3A, - 0x84, - 0x2E, - 0x38, - 0x39, - 0x84, - 0x5A, - 0x3A, - 0x5A, - 0x29, - 0x5A, - 0x5B, - 0x5B, - 0x66, - 0x66, - 0x75, - 0xBE, - 0x36, - 0x5F, - 0x7A, - 0x2C, - 0x2A, - 0x2A, - 0x00, - 0x04, - 0x26, - 0x00, - 0x0C, - 0x2A, - 0x2A, - 0x2F, - 0x76, - 0x36, - 0x91, - 0x5B, - 0x59, - 0x5E, - 0x46, - 0x6F, - 0x42, - 0x07, - 0x6F, - 0x00, - 0x1A, - 0x42, - 0x42, - 0x42, - 0x3B, - 0x31, - 0x5E, - 0x66, - 0xBE, - 0xAF, - 0x7F, - 0xAB, - 0x8C, - 0x85, - 0x2D, - 0x85, - 0x2D, - 0x85, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x8C, - 0x9F, - 0x2C, - 0xAB, - 0x7F, - 0x04, - 0xA0, - 0x01, - 0xAB, - 0x01, - 0xB4, - 0x05, - 0x9F, - 0x00, - 0x22, - 0xB4, - 0xA0, - 0xD0, - 0xBE, - 0xBB, - 0x6F, - 0x61, - 0xB2, - 0xD4, - 0x8E, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x04, - 0xCB, - 0x00, - 0x04, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x0C, - 0x61, - 0x00, - 0x30, - 0x9D, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x6D, - 0x61, - 0x61, - 0x4A, - 0x4A, - 0xB9, - 0xB9, - 0x79, - 0x86, - 0xA4, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xD4, - 0xBF, - 0xB2, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0x8E, - 0x04, - 0xB1, - 0x00, - 0x15, - 0xBF, - 0xB1, - 0xD4, - 0xD4, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xB2, - 0xBF, - 0xBF, - 0x7E, - 0xB2, - 0x7E, - 0xA3, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x8A, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x15, - 0x98, - 0x9C, - 0x9C, - 0x82, - 0x8A, - 0x98, - 0x8A, - 0x7D, - 0x7D, - 0x7D, - 0x82, - 0x7D, - 0x57, - 0x82, - 0x82, - 0x57, - 0x7D, - 0x57, - 0x57, - 0x77, - 0x7D, - 0x00, - 0x04, - 0x69, - 0x00, - 0x22, - 0x88, - 0x88, - 0x88, - 0x3C, - 0x72, - 0x3C, - 0x4E, - 0x72, - 0x4E, - 0x38, - 0x62, - 0x38, - 0x38, - 0x2E, - 0x39, - 0x39, - 0x29, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x3A, - 0x63, - 0x44, - 0x63, - 0x63, - 0x63, - 0x54, - 0x64, - 0x63, - 0xD5, - 0x04, - 0xDF, - 0x00, - 0x0A, - 0xD5, - 0xEA, - 0xD5, - 0xD5, - 0xD5, - 0xDE, - 0xDE, - 0x7A, - 0xDE, - 0x7A, - 0x05, - 0xB4, - 0x00, - 0x58, - 0xAF, - 0x7A, - 0x5F, - 0x4F, - 0x4F, - 0x7C, - 0x4F, - 0x89, - 0x7C, - 0x7C, - 0x7C, - 0x64, - 0x64, - 0x64, - 0x63, - 0x63, - 0x64, - 0x63, - 0x44, - 0x44, - 0x44, - 0x63, - 0x3A, - 0x3A, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x84, - 0x84, - 0x2E, - 0x84, - 0x2E, - 0x27, - 0x29, - 0x3A, - 0x5B, - 0x5B, - 0x66, - 0x5B, - 0x66, - 0x66, - 0x75, - 0x75, - 0x45, - 0x45, - 0x5F, - 0x23, - 0x7F, - 0x2B, - 0x26, - 0x26, - 0x26, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2F, - 0x2F, - 0x36, - 0x89, - 0x45, - 0x29, - 0x59, - 0x9A, - 0x6F, - 0x6F, - 0x42, - 0x31, - 0x6F, - 0x6F, - 0x42, - 0x6F, - 0xBA, - 0x6F, - 0x42, - 0x6F, - 0x42, - 0x42, - 0x5E, - 0x8B, - 0x45, - 0xAF, - 0x7F, - 0x9F, - 0x8C, - 0xC0, - 0xC0, - 0x04, - 0x2D, - 0x00, - 0x3D, - 0x85, - 0xC0, - 0x32, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0x7F, - 0xA0, - 0xA0, - 0xB4, - 0x9F, - 0xDE, - 0xD5, - 0x9F, - 0xD5, - 0xAB, - 0xB4, - 0xBD, - 0xA5, - 0xA8, - 0x8B, - 0x6F, - 0x4A, - 0x52, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xAC, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x61, - 0x61, - 0x9D, - 0x00, - 0x05, - 0x61, - 0x00, - 0x05, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x05, - 0x61, - 0x01, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x05, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x06, - 0x61, - 0x00, - 0x17, - 0xA6, - 0x61, - 0xA6, - 0x4A, - 0xB9, - 0xB9, - 0xA4, - 0x86, - 0xA4, - 0xD4, - 0xB2, - 0xB2, - 0xB1, - 0xD4, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xD4, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x17, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xBF, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xD4, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0xBF, - 0xBF, - 0xA3, - 0xB2, - 0xB2, - 0xA3, - 0x9C, - 0x9C, - 0x5D, - 0x00, - 0x09, - 0x9C, - 0x00, - 0x0B, - 0x8A, - 0x82, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x7D, - 0x57, - 0x7D, - 0x00, - 0x04, - 0x57, - 0x00, - 0x1F, - 0x69, - 0x57, - 0x69, - 0x69, - 0x88, - 0x83, - 0x69, - 0x3C, - 0x72, - 0x72, - 0x50, - 0x72, - 0x65, - 0x43, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0x67, - 0x39, - 0x84, - 0x29, - 0x84, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x00, - 0x05, - 0x63, - 0x00, - 0x25, - 0x64, - 0x7C, - 0xB4, - 0xDF, - 0xDF, - 0xD5, - 0xEA, - 0xDF, - 0xD5, - 0xEA, - 0xDE, - 0xD5, - 0xAB, - 0xDE, - 0xD5, - 0x7A, - 0xDE, - 0xB4, - 0x7A, - 0xDE, - 0x7A, - 0xB4, - 0x7A, - 0xB4, - 0x7A, - 0x5F, - 0x5F, - 0x5F, - 0x7C, - 0x7C, - 0x7C, - 0x64, - 0x64, - 0x7C, - 0x64, - 0x54, - 0x91, - 0x00, - 0x05, - 0x63, - 0x00, - 0x20, - 0x44, - 0x3A, - 0x63, - 0x3A, - 0x58, - 0x3A, - 0x3A, - 0x84, - 0x3A, - 0x84, - 0x84, - 0x39, - 0x84, - 0x29, - 0x5A, - 0x5A, - 0x5B, - 0x5B, - 0x4D, - 0x75, - 0x75, - 0x75, - 0x66, - 0x66, - 0x45, - 0x45, - 0x36, - 0x5F, - 0x2F, - 0x2B, - 0x55, - 0x2A, - 0x05, - 0x26, - 0x00, - 0x42, - 0x2A, - 0x2C, - 0x7A, - 0x5F, - 0x24, - 0xA8, - 0x29, - 0x5E, - 0x46, - 0x42, - 0x42, - 0x42, - 0xBA, - 0x42, - 0x6F, - 0xBA, - 0x42, - 0x42, - 0x42, - 0x74, - 0x42, - 0x6F, - 0x5E, - 0x8B, - 0xA8, - 0xAF, - 0xBD, - 0x55, - 0x8C, - 0x85, - 0x85, - 0x85, - 0xCC, - 0x85, - 0x85, - 0x85, - 0xC0, - 0x8C, - 0x8C, - 0x55, - 0x9F, - 0x7F, - 0xB4, - 0x76, - 0xA0, - 0xA0, - 0xB4, - 0xB4, - 0xB4, - 0x9F, - 0x9F, - 0x8C, - 0x9F, - 0xAB, - 0xAB, - 0xAF, - 0xD0, - 0xBE, - 0xBB, - 0xBA, - 0x4A, - 0xA4, - 0x8E, - 0xB1, - 0x8E, - 0xD4, - 0x04, - 0x8E, - 0x00, - 0x13, - 0xCB, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x03, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x61, - 0x00, - 0x13, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x00, - 0x09, - 0x61, - 0x00, - 0x2F, - 0xA6, - 0x61, - 0x4A, - 0xB9, - 0xB9, - 0xB9, - 0x86, - 0x86, - 0xB2, - 0xB2, - 0xD4, - 0xBF, - 0xD4, - 0xD4, - 0xBF, - 0xD4, - 0xD4, - 0xB1, - 0xB1, - 0xBF, - 0xB1, - 0xD4, - 0xB1, - 0xD4, - 0xB1, - 0xB1, - 0xBF, - 0xBF, - 0xD4, - 0xD4, - 0xB2, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xB1, - 0xBF, - 0xB1, - 0xB2, - 0x7E, - 0xB2, - 0xB1, - 0xB2, - 0x7E, - 0x52, - 0x94, - 0xA3, - 0x00, - 0x04, - 0x9C, - 0x01, - 0xB9, - 0x01, - 0x98, - 0x04, - 0x9C, - 0x00, - 0x05, - 0x82, - 0x9C, - 0x82, - 0x8A, - 0x82, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x1F, - 0x57, - 0x57, - 0x57, - 0x69, - 0x57, - 0x88, - 0x69, - 0x69, - 0x88, - 0x3C, - 0x69, - 0x3C, - 0x3C, - 0x72, - 0x43, - 0x72, - 0x43, - 0x4E, - 0x38, - 0x4E, - 0x38, - 0x39, - 0x39, - 0x39, - 0x84, - 0x39, - 0x84, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x00, - 0x04, - 0x44, - 0x00, - 0x11, - 0x91, - 0x51, - 0x63, - 0x54, - 0x64, - 0x64, - 0x64, - 0x7C, - 0x7C, - 0xC0, - 0xDF, - 0xEA, - 0xC0, - 0xD5, - 0xEA, - 0xD5, - 0xDF, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x09, - 0xAB, - 0xD5, - 0x55, - 0xAB, - 0xD5, - 0x2C, - 0x7A, - 0xDE, - 0x7F, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x07, - 0x4F, - 0x7C, - 0x4F, - 0x4F, - 0x7C, - 0x7C, - 0x7C, - 0x00, - 0x04, - 0x64, - 0x00, - 0x13, - 0x63, - 0x63, - 0x63, - 0x44, - 0x63, - 0x44, - 0x44, - 0x4D, - 0x3A, - 0x3A, - 0x5A, - 0x58, - 0x3A, - 0x39, - 0x27, - 0x3A, - 0x29, - 0x5B, - 0x4D, - 0x00, - 0x04, - 0x75, - 0x00, - 0x71, - 0x91, - 0x75, - 0xA8, - 0x66, - 0x45, - 0x91, - 0xA5, - 0x36, - 0x76, - 0x2F, - 0x2F, - 0x2A, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x26, - 0x2B, - 0x2F, - 0x23, - 0x36, - 0x91, - 0x4D, - 0x59, - 0x46, - 0x9A, - 0x42, - 0x34, - 0x42, - 0x74, - 0x42, - 0x42, - 0x6F, - 0x74, - 0x42, - 0x42, - 0x31, - 0x6F, - 0x5E, - 0xBB, - 0x45, - 0xD0, - 0xB4, - 0x9F, - 0x8C, - 0xC0, - 0x32, - 0xCC, - 0x2D, - 0x85, - 0xCC, - 0x32, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0x7F, - 0xA0, - 0x7F, - 0x7F, - 0xA0, - 0xB4, - 0xB4, - 0x9F, - 0x9F, - 0xD5, - 0x9F, - 0xD5, - 0xAB, - 0xB4, - 0xBD, - 0xD0, - 0xA8, - 0x90, - 0x6F, - 0x4A, - 0xB2, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x15, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x9D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x00, - 0x04, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x1C, - 0x6D, - 0x61, - 0xA6, - 0xA6, - 0x4A, - 0xB9, - 0xB9, - 0x79, - 0x86, - 0xA4, - 0xA4, - 0xB2, - 0xBF, - 0xD4, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xD4, - 0xB1, - 0xB1, - 0xD4, - 0xB1, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xD4, - 0x04, - 0xBF, - 0x00, - 0x46, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0xB2, - 0xBF, - 0x7E, - 0xB1, - 0xB1, - 0x7E, - 0x7E, - 0xB2, - 0x52, - 0x7E, - 0x86, - 0x9C, - 0x9C, - 0x8A, - 0x8A, - 0x8A, - 0x82, - 0x9C, - 0x82, - 0x8A, - 0x82, - 0x82, - 0x8A, - 0x8A, - 0x7D, - 0x7D, - 0x34, - 0x7D, - 0x57, - 0x69, - 0x57, - 0x57, - 0x69, - 0x69, - 0x34, - 0x69, - 0x88, - 0x69, - 0x88, - 0x69, - 0x22, - 0x88, - 0x72, - 0x3C, - 0x72, - 0x4E, - 0x43, - 0x4E, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x39, - 0x39, - 0x39, - 0x84, - 0x27, - 0x27, - 0x25, - 0x3A, - 0x4D, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x04, - 0x63, - 0x00, - 0x04, - 0x64, - 0x64, - 0x91, - 0x64, - 0x04, - 0x7C, - 0x00, - 0x16, - 0xAB, - 0xDF, - 0xCC, - 0xDF, - 0xDF, - 0xCC, - 0xDF, - 0xDF, - 0xC0, - 0xCC, - 0xD5, - 0xC0, - 0xD5, - 0xC0, - 0xD5, - 0xD5, - 0x55, - 0xD5, - 0xDE, - 0xAB, - 0x2A, - 0x2C, - 0x04, - 0x7A, - 0x00, - 0x1F, - 0x5F, - 0x5F, - 0x36, - 0x7C, - 0x7C, - 0x7C, - 0x89, - 0x54, - 0x64, - 0x64, - 0x64, - 0x63, - 0x64, - 0x63, - 0x63, - 0x63, - 0x44, - 0x63, - 0x44, - 0x44, - 0x3A, - 0x4D, - 0x3A, - 0x29, - 0x25, - 0x5A, - 0x4D, - 0x4D, - 0x24, - 0xA8, - 0x91, - 0x00, - 0x05, - 0x45, - 0x00, - 0x5F, - 0x1B, - 0xDB, - 0xBE, - 0x45, - 0x36, - 0x5F, - 0x76, - 0x2F, - 0x2C, - 0x2C, - 0x26, - 0x2A, - 0x26, - 0x32, - 0x2A, - 0x26, - 0x2C, - 0x7A, - 0x5F, - 0x36, - 0x64, - 0x5A, - 0x59, - 0x2E, - 0x46, - 0x42, - 0x74, - 0x42, - 0x34, - 0xBA, - 0x42, - 0x42, - 0x42, - 0x6F, - 0x6F, - 0xB3, - 0x59, - 0xA8, - 0xBE, - 0xA0, - 0xAB, - 0x9F, - 0x8C, - 0x85, - 0x85, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x85, - 0x32, - 0xC0, - 0x55, - 0x9F, - 0x7F, - 0xAB, - 0x7F, - 0xA0, - 0xA0, - 0xBD, - 0x7F, - 0xAB, - 0x9F, - 0x9F, - 0x9F, - 0x8C, - 0x9F, - 0x9F, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0xBB, - 0x6F, - 0x4A, - 0xB2, - 0xD4, - 0xB1, - 0xD4, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x03, - 0xCE, - 0xCB, - 0x8E, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x03, - 0x8E, - 0xCB, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0x6E, - 0x09, - 0x61, - 0x00, - 0x06, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x0B, - 0x9D, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x4A, - 0x4A, - 0xA6, - 0xB9, - 0xB9, - 0x86, - 0xA4, - 0xA4, - 0xB2, - 0xD4, - 0xBF, - 0x00, - 0x06, - 0xB1, - 0x00, - 0x0F, - 0xD4, - 0xB1, - 0xBF, - 0xD4, - 0xB1, - 0xB1, - 0xD4, - 0xB1, - 0xBF, - 0xD4, - 0xBF, - 0xD4, - 0xBF, - 0xBF, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x08, - 0x7E, - 0xB1, - 0x7E, - 0xB2, - 0x8F, - 0x52, - 0x9C, - 0x9C, - 0x05, - 0x8A, - 0x01, - 0x7D, - 0x04, - 0x8A, - 0x00, - 0x15, - 0x82, - 0x56, - 0x7D, - 0x7D, - 0x7D, - 0x34, - 0x7D, - 0x34, - 0x34, - 0x69, - 0x69, - 0x34, - 0x34, - 0x88, - 0x88, - 0x33, - 0x31, - 0x22, - 0x33, - 0x4E, - 0x33, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x19, - 0x38, - 0x4E, - 0x38, - 0x38, - 0x39, - 0x39, - 0x39, - 0x27, - 0x27, - 0x3A, - 0x3A, - 0x4D, - 0x3A, - 0x44, - 0x44, - 0x4D, - 0x44, - 0x4D, - 0x24, - 0x63, - 0x63, - 0x63, - 0x64, - 0x91, - 0x64, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x09, - 0x4F, - 0x5F, - 0xCC, - 0xCC, - 0xDF, - 0xCC, - 0xDF, - 0xDF, - 0xDF, - 0x00, - 0x05, - 0xCC, - 0x05, - 0xC0, - 0x00, - 0x63, - 0x55, - 0xD5, - 0xD5, - 0x2A, - 0x7A, - 0x55, - 0x7F, - 0x41, - 0x7A, - 0x4F, - 0x4F, - 0x4F, - 0x36, - 0x7C, - 0x28, - 0x7C, - 0x7C, - 0x7C, - 0x64, - 0x7C, - 0x64, - 0x64, - 0x24, - 0x63, - 0x63, - 0x44, - 0x24, - 0x4D, - 0x44, - 0x4D, - 0x3A, - 0x25, - 0x3A, - 0x4D, - 0x63, - 0x75, - 0x91, - 0xD8, - 0x45, - 0x45, - 0x1B, - 0xD0, - 0x45, - 0x45, - 0xA8, - 0x45, - 0x45, - 0x45, - 0x36, - 0x36, - 0x23, - 0xA0, - 0x2F, - 0x2C, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x2C, - 0x2F, - 0x5F, - 0x45, - 0x75, - 0x29, - 0x59, - 0x46, - 0x46, - 0x42, - 0x74, - 0x74, - 0x34, - 0x34, - 0x42, - 0x42, - 0x42, - 0x6F, - 0xB3, - 0x8B, - 0xBC, - 0xA7, - 0xAF, - 0xAB, - 0x8C, - 0xC0, - 0x32, - 0x85, - 0x2D, - 0xCC, - 0x2D, - 0x85, - 0x85, - 0xC0, - 0x32, - 0x8C, - 0x9F, - 0x9F, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x2C, - 0xBD, - 0xBD, - 0xAB, - 0xB4, - 0x9F, - 0x8C, - 0x9F, - 0xAB, - 0x9F, - 0xB4, - 0xAF, - 0xA7, - 0xA8, - 0xBB, - 0xBA, - 0x4A, - 0xA4, - 0xD4, - 0x8E, - 0xD4, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x06, - 0xCB, - 0x01, - 0x8E, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x12, - 0x6E, - 0x61, - 0x9D, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x9D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x05, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x00, - 0x06, - 0x61, - 0x00, - 0x11, - 0xA6, - 0xB9, - 0xB9, - 0xB9, - 0x79, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xD4, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x04, - 0xD4, - 0xBF, - 0xBF, - 0xD4, - 0x08, - 0xB1, - 0x00, - 0x2F, - 0x9B, - 0xB1, - 0x9B, - 0xB2, - 0xB2, - 0x52, - 0x52, - 0x9C, - 0x9C, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x7D, - 0x7D, - 0x7D, - 0x56, - 0x57, - 0x34, - 0x57, - 0x34, - 0x69, - 0x34, - 0x88, - 0x34, - 0x33, - 0x33, - 0x33, - 0x22, - 0x33, - 0x72, - 0x33, - 0x22, - 0x4E, - 0x4E, - 0x33, - 0x4E, - 0x38, - 0x4E, - 0x2E, - 0x2E, - 0x38, - 0x39, - 0x00, - 0x04, - 0x27, - 0x00, - 0x1B, - 0x3A, - 0x29, - 0x25, - 0x3A, - 0x4D, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x24, - 0x63, - 0x24, - 0x91, - 0x64, - 0x24, - 0x7C, - 0x7C, - 0x4C, - 0x7C, - 0x7C, - 0x7C, - 0x21, - 0x5F, - 0x4F, - 0x5F, - 0x4F, - 0xC0, - 0x00, - 0x06, - 0xDF, - 0x01, - 0xCC, - 0x01, - 0xDF, - 0x07, - 0xCC, - 0x00, - 0x15, - 0xC0, - 0xC0, - 0xD5, - 0xC0, - 0x2A, - 0x55, - 0x2A, - 0x2B, - 0x7F, - 0x7A, - 0x7A, - 0x7A, - 0x4F, - 0x28, - 0x7A, - 0x36, - 0x7C, - 0x28, - 0x7C, - 0x7C, - 0x21, - 0x00, - 0x04, - 0x64, - 0x00, - 0x12, - 0x63, - 0x64, - 0x63, - 0x63, - 0x63, - 0x25, - 0x4D, - 0x44, - 0x44, - 0x75, - 0xA8, - 0x64, - 0x45, - 0x1B, - 0x36, - 0x36, - 0xA7, - 0x36, - 0x05, - 0x45, - 0x00, - 0x58, - 0xBE, - 0xA7, - 0xAF, - 0xA7, - 0x23, - 0x76, - 0x2F, - 0x2B, - 0x2A, - 0x55, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x23, - 0x5F, - 0x5F, - 0x64, - 0x75, - 0x5A, - 0x5E, - 0x9A, - 0x46, - 0x34, - 0x34, - 0x42, - 0x42, - 0x42, - 0x6F, - 0x31, - 0x6F, - 0x90, - 0x8B, - 0x45, - 0xA7, - 0xA0, - 0xAB, - 0x9F, - 0xC0, - 0x85, - 0x85, - 0xCC, - 0x2D, - 0x85, - 0x2D, - 0x85, - 0x85, - 0x8C, - 0x9F, - 0x8C, - 0x55, - 0xB4, - 0xA0, - 0x7F, - 0xBD, - 0x7F, - 0xAB, - 0xAB, - 0xD5, - 0xAB, - 0x9F, - 0xD5, - 0xD5, - 0xAB, - 0xA0, - 0xD0, - 0xA7, - 0xBC, - 0x90, - 0x6F, - 0x4A, - 0xB2, - 0x8E, - 0xD4, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0x04, - 0x8E, - 0x00, - 0x0F, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xAC, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x04, - 0x61, - 0x00, - 0x07, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x00, - 0x04, - 0x61, - 0x00, - 0x24, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x4A, - 0xB9, - 0xA6, - 0xB9, - 0x35, - 0x86, - 0xA4, - 0xB2, - 0xB2, - 0xB1, - 0xD4, - 0x8E, - 0x05, - 0xB1, - 0x00, - 0x03, - 0x8E, - 0xB1, - 0xBF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0xF3, - 0x8E, - 0xB1, - 0xB1, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0x9B, - 0xB1, - 0xAE, - 0x7E, - 0x52, - 0x94, - 0x49, - 0x8A, - 0x6B, - 0x82, - 0x74, - 0x56, - 0x56, - 0x57, - 0x34, - 0x82, - 0x4A, - 0x56, - 0x57, - 0x56, - 0x34, - 0x3B, - 0x22, - 0x34, - 0x31, - 0x42, - 0x22, - 0x34, - 0x33, - 0x31, - 0x22, - 0x33, - 0x2E, - 0x22, - 0x31, - 0x4E, - 0x4E, - 0x22, - 0x2E, - 0x4E, - 0x38, - 0x38, - 0x27, - 0x38, - 0x39, - 0x27, - 0x38, - 0x29, - 0x29, - 0x29, - 0x25, - 0x29, - 0x5A, - 0x25, - 0x5A, - 0x25, - 0x75, - 0x44, - 0x24, - 0x4D, - 0x64, - 0x24, - 0x63, - 0x64, - 0x64, - 0x64, - 0x21, - 0x21, - 0x21, - 0x7C, - 0x36, - 0x28, - 0x5F, - 0x4F, - 0x4F, - 0x4F, - 0x41, - 0x55, - 0xDF, - 0xDF, - 0x95, - 0xDF, - 0xDF, - 0x73, - 0x73, - 0xDF, - 0x95, - 0x95, - 0xDF, - 0x95, - 0x95, - 0x7B, - 0x7B, - 0x70, - 0x70, - 0xC0, - 0x32, - 0x26, - 0x55, - 0x2A, - 0x2A, - 0x2C, - 0x2F, - 0x2B, - 0x7A, - 0x7A, - 0x41, - 0x5F, - 0x28, - 0x28, - 0x36, - 0x28, - 0x7C, - 0x36, - 0x21, - 0x21, - 0x1B, - 0x64, - 0x64, - 0x63, - 0x63, - 0x24, - 0x24, - 0x4D, - 0x24, - 0x66, - 0x75, - 0x24, - 0x1B, - 0x45, - 0xAF, - 0x1B, - 0x36, - 0xA7, - 0x36, - 0xA5, - 0x23, - 0xA7, - 0x1B, - 0xE2, - 0x1B, - 0xA7, - 0xA7, - 0x36, - 0x23, - 0xA5, - 0x76, - 0x23, - 0x2F, - 0x55, - 0x2A, - 0x2A, - 0x26, - 0x2A, - 0x26, - 0x2A, - 0x2C, - 0x23, - 0x5F, - 0x89, - 0x45, - 0x5B, - 0x59, - 0x2E, - 0x2E, - 0x42, - 0x42, - 0x22, - 0x34, - 0x42, - 0x42, - 0x31, - 0x9A, - 0x90, - 0xBC, - 0xD8, - 0xAF, - 0xBD, - 0xAB, - 0x8C, - 0xC0, - 0x85, - 0x2D, - 0x2D, - 0x2D, - 0xCC, - 0x85, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x55, - 0x7F, - 0xAB, - 0x7F, - 0xA0, - 0x7F, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0xD5, - 0xD5, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xD0, - 0xD8, - 0xA8, - 0x90, - 0x6F, - 0x4A, - 0x52, - 0xB1, - 0x8E, - 0xB1, - 0xB1, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x09, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x6E, - 0x6E, - 0x6D, - 0x3B, - 0x61, - 0x3B, - 0x6E, - 0x61, - 0x6E, - 0x3B, - 0x6E, - 0x6E, - 0x3B, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x28, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x61, - 0x3B, - 0x6D, - 0x6E, - 0x6E, - 0x3B, - 0x61, - 0x61, - 0x4A, - 0xB9, - 0x4A, - 0xB9, - 0x79, - 0x52, - 0x52, - 0xA3, - 0x52, - 0xD4, - 0xB2, - 0xBF, - 0xB1, - 0xB2, - 0xB1, - 0xBF, - 0xB2, - 0xBF, - 0x7E, - 0xB1, - 0x04, - 0xBF, - 0x00, - 0x2F, - 0x7E, - 0xB1, - 0x7E, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x7E, - 0x7E, - 0x7E, - 0x52, - 0x35, - 0x94, - 0x9C, - 0x82, - 0x56, - 0x56, - 0x34, - 0x7D, - 0x34, - 0x3B, - 0x34, - 0x56, - 0x34, - 0x22, - 0x34, - 0x22, - 0x6E, - 0x69, - 0x34, - 0x34, - 0x33, - 0x22, - 0x31, - 0x22, - 0x2E, - 0x4E, - 0x33, - 0x31, - 0x4E, - 0x22, - 0x2E, - 0x38, - 0x38, - 0x2E, - 0x27, - 0x4E, - 0x00, - 0x05, - 0x27, - 0x00, - 0x2D, - 0x59, - 0x29, - 0x25, - 0x25, - 0x29, - 0x25, - 0x5B, - 0x25, - 0x24, - 0x4D, - 0x24, - 0x63, - 0x24, - 0x24, - 0x64, - 0x64, - 0x24, - 0x89, - 0x64, - 0x21, - 0x21, - 0x89, - 0x7C, - 0x7C, - 0x36, - 0x4F, - 0x28, - 0x28, - 0x4F, - 0x4F, - 0x7A, - 0x23, - 0x2B, - 0x2F, - 0x95, - 0xCC, - 0xDF, - 0x73, - 0x95, - 0xDF, - 0x95, - 0x73, - 0x95, - 0x60, - 0x73, - 0x00, - 0x04, - 0x92, - 0x00, - 0x81, - 0x7B, - 0x7B, - 0x70, - 0x2D, - 0x2D, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x2C, - 0x2B, - 0x23, - 0x7A, - 0x23, - 0x23, - 0x4F, - 0x36, - 0x28, - 0x28, - 0x28, - 0x7C, - 0x7C, - 0x36, - 0x89, - 0x21, - 0x21, - 0x64, - 0x64, - 0x64, - 0x24, - 0x24, - 0x24, - 0x1B, - 0x91, - 0x1B, - 0xAF, - 0x36, - 0x36, - 0xA7, - 0x23, - 0x23, - 0xAF, - 0x23, - 0x45, - 0xD0, - 0x45, - 0xA7, - 0x45, - 0x45, - 0xA5, - 0xA7, - 0x23, - 0x76, - 0x23, - 0x7F, - 0x23, - 0x2B, - 0x2C, - 0x2A, - 0x2A, - 0x2A, - 0x2C, - 0x2C, - 0x2B, - 0x7A, - 0x5F, - 0x1B, - 0xA8, - 0x24, - 0x59, - 0x59, - 0x2E, - 0x31, - 0x42, - 0x34, - 0x31, - 0x42, - 0x46, - 0x59, - 0x90, - 0xA8, - 0xA7, - 0xAF, - 0x7F, - 0x8C, - 0x8C, - 0x85, - 0x85, - 0x2D, - 0xCC, - 0x2D, - 0x85, - 0x2D, - 0x85, - 0x85, - 0x8C, - 0x8C, - 0x9F, - 0x9F, - 0x7F, - 0xBD, - 0x7F, - 0xB4, - 0xB4, - 0xB4, - 0xAB, - 0x9F, - 0xAB, - 0x9F, - 0x9F, - 0x9F, - 0xAB, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x90, - 0x6F, - 0x6B, - 0xB2, - 0xB1, - 0xB2, - 0x7E, - 0x8E, - 0xB2, - 0x8E, - 0x8E, - 0xB1, - 0x00, - 0x08, - 0x8E, - 0x00, - 0x09, - 0xB1, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xB1, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x05, - 0xCB, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3B, - 0x0F, - 0x42, - 0x01, - 0x6F, - 0x04, - 0x42, - 0x01, - 0x31, - 0x01, - 0x6F, - 0x09, - 0x42, - 0x00, - 0x03, - 0x74, - 0x42, - 0x31, - 0x00, - 0x05, - 0x42, - 0x00, - 0x3F, - 0x34, - 0x42, - 0x34, - 0x74, - 0x56, - 0x7D, - 0x56, - 0x82, - 0x6B, - 0x98, - 0x9C, - 0x9C, - 0x94, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x9C, - 0x52, - 0x94, - 0x94, - 0x9C, - 0x9C, - 0x8F, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x53, - 0x52, - 0x98, - 0x6B, - 0x82, - 0x57, - 0x34, - 0x57, - 0x34, - 0x34, - 0x33, - 0x33, - 0x4E, - 0x33, - 0x38, - 0x33, - 0x31, - 0x22, - 0x22, - 0x2E, - 0x2E, - 0x22, - 0x33, - 0x38, - 0x22, - 0x27, - 0x27, - 0x22, - 0x38, - 0x27, - 0x27, - 0x27, - 0x38, - 0x00, - 0x06, - 0x27, - 0x00, - 0x0D, - 0x29, - 0x25, - 0x29, - 0x1A, - 0x27, - 0x3A, - 0x25, - 0x1A, - 0x5B, - 0x4D, - 0x25, - 0x24, - 0x5B, - 0x00, - 0x05, - 0x24, - 0x00, - 0x1D, - 0x63, - 0x63, - 0x21, - 0x7C, - 0x1B, - 0x21, - 0x21, - 0x21, - 0x36, - 0x28, - 0x21, - 0x1E, - 0x28, - 0x1E, - 0x5F, - 0x1E, - 0x23, - 0x41, - 0x23, - 0x1F, - 0x2F, - 0x2B, - 0x2B, - 0x70, - 0x95, - 0x73, - 0x92, - 0x95, - 0x93, - 0x00, - 0x06, - 0x73, - 0x00, - 0x28, - 0x60, - 0x93, - 0x60, - 0x92, - 0x95, - 0x7B, - 0x70, - 0x70, - 0x70, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x1D, - 0x2B, - 0x1D, - 0x2F, - 0x1F, - 0x23, - 0x23, - 0x1F, - 0x4F, - 0x23, - 0x28, - 0x28, - 0x1E, - 0x21, - 0x28, - 0x21, - 0x7C, - 0x1B, - 0x21, - 0x24, - 0x64, - 0x64, - 0x1B, - 0x45, - 0x21, - 0x36, - 0x36, - 0x06, - 0x23, - 0x00, - 0x54, - 0xAF, - 0x45, - 0x23, - 0x36, - 0xA7, - 0x1B, - 0xA7, - 0x23, - 0x23, - 0x36, - 0x76, - 0x76, - 0x23, - 0x23, - 0x2A, - 0x2B, - 0x2B, - 0x1C, - 0x2A, - 0x2A, - 0x2A, - 0x1D, - 0x2F, - 0x23, - 0x36, - 0x7C, - 0x75, - 0x75, - 0x29, - 0x59, - 0x59, - 0x2E, - 0x2E, - 0x33, - 0x2E, - 0x5E, - 0x29, - 0xA8, - 0x45, - 0xA5, - 0x7F, - 0xDE, - 0x8C, - 0x8C, - 0x85, - 0x2D, - 0x85, - 0x7B, - 0xCC, - 0x2D, - 0x2D, - 0x85, - 0x8C, - 0x32, - 0x8C, - 0x55, - 0xAB, - 0x2C, - 0x2C, - 0x7F, - 0xAB, - 0x7F, - 0xB4, - 0x9F, - 0x9F, - 0x55, - 0x9F, - 0x8C, - 0x9F, - 0xAB, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0x46, - 0x74, - 0x56, - 0x94, - 0x52, - 0x52, - 0x52, - 0x94, - 0x94, - 0x05, - 0x7E, - 0x00, - 0x0C, - 0x52, - 0x8F, - 0x7E, - 0x7E, - 0x7E, - 0x52, - 0x94, - 0x8F, - 0x52, - 0x7E, - 0x52, - 0x52, - 0x07, - 0x7E, - 0x00, - 0x04, - 0xB1, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x00, - 0x0D, - 0x31, - 0x01, - 0x46, - 0x0B, - 0x31, - 0x00, - 0x24, - 0x46, - 0x31, - 0x31, - 0x31, - 0x46, - 0x31, - 0x31, - 0x2E, - 0x31, - 0x46, - 0x31, - 0x31, - 0x46, - 0x33, - 0x31, - 0x31, - 0x33, - 0x34, - 0x33, - 0x34, - 0x34, - 0x88, - 0x34, - 0x57, - 0x69, - 0x57, - 0x57, - 0x57, - 0x53, - 0x57, - 0x53, - 0x57, - 0x57, - 0x53, - 0x57, - 0x57, - 0x05, - 0x53, - 0x00, - 0x1A, - 0x82, - 0x53, - 0x53, - 0x57, - 0x53, - 0x22, - 0x53, - 0x22, - 0x22, - 0x33, - 0x22, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x2E, - 0x38, - 0x27, - 0x4E, - 0x39, - 0x38, - 0x38, - 0x38, - 0x27, - 0x38, - 0x05, - 0x27, - 0x00, - 0x14, - 0x25, - 0x29, - 0x27, - 0x27, - 0x1A, - 0x5A, - 0x25, - 0x29, - 0x25, - 0x1A, - 0x5B, - 0x25, - 0x1A, - 0x4D, - 0x44, - 0x66, - 0x25, - 0x24, - 0x24, - 0x25, - 0x04, - 0x24, - 0x00, - 0x05, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x64, - 0x00, - 0x06, - 0x21, - 0x00, - 0x15, - 0x28, - 0x28, - 0x21, - 0x1E, - 0x1E, - 0x1E, - 0x5F, - 0x1E, - 0x23, - 0x1E, - 0x23, - 0x1F, - 0x23, - 0x1F, - 0x2B, - 0x1D, - 0x2C, - 0x2B, - 0x70, - 0x73, - 0x95, - 0x00, - 0x07, - 0x73, - 0x00, - 0x0B, - 0x93, - 0x73, - 0x93, - 0x73, - 0x93, - 0x60, - 0x60, - 0x92, - 0x95, - 0x70, - 0x2D, - 0x00, - 0x04, - 0x26, - 0x00, - 0x4D, - 0x2A, - 0x1C, - 0x2B, - 0x1D, - 0x2B, - 0x1F, - 0x1F, - 0x23, - 0x1F, - 0x1E, - 0x1E, - 0x23, - 0x28, - 0x1E, - 0x28, - 0x1E, - 0x36, - 0x1E, - 0x36, - 0x1E, - 0x21, - 0x21, - 0x21, - 0x1E, - 0x5F, - 0x1E, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x7F, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x36, - 0x23, - 0x1E, - 0xBD, - 0x23, - 0x45, - 0xAF, - 0x23, - 0x23, - 0x23, - 0x2F, - 0x23, - 0x23, - 0x2C, - 0x2C, - 0x2B, - 0x1D, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x23, - 0x23, - 0x28, - 0x21, - 0x1B, - 0x5B, - 0x25, - 0x1A, - 0xB3, - 0x29, - 0x27, - 0x27, - 0x29, - 0x66, - 0x1B, - 0xEB, - 0x23, - 0xBD, - 0x1C, - 0x32, - 0x8C, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x22, - 0x70, - 0x2D, - 0x2D, - 0x2D, - 0x32, - 0xC0, - 0x8C, - 0x1C, - 0x9F, - 0x7F, - 0xAB, - 0x7F, - 0x7F, - 0x2C, - 0x9F, - 0x9F, - 0x55, - 0x9F, - 0x8C, - 0x55, - 0x9F, - 0x7F, - 0xB4, - 0xA5, - 0x45, - 0xBE, - 0x5B, - 0x5E, - 0x33, - 0x69, - 0x57, - 0x82, - 0x57, - 0x53, - 0x04, - 0x82, - 0x00, - 0x0F, - 0x53, - 0x9C, - 0x94, - 0x53, - 0x94, - 0x82, - 0x82, - 0x98, - 0x98, - 0x82, - 0x82, - 0x53, - 0x82, - 0x53, - 0x53, - 0x00, - 0x04, - 0x82, - 0x00, - 0x07, - 0x94, - 0x53, - 0x94, - 0x53, - 0x94, - 0x94, - 0x82, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x46, - 0x2E, - 0x31, - 0x2E, - 0x2E, - 0x46, - 0x11, - 0x2E, - 0x00, - 0x20, - 0x38, - 0x46, - 0x2E, - 0x38, - 0x2E, - 0x46, - 0x2E, - 0x46, - 0x4E, - 0x38, - 0x33, - 0x4E, - 0x4E, - 0x33, - 0x22, - 0x88, - 0x69, - 0x22, - 0x22, - 0x57, - 0x22, - 0x22, - 0x83, - 0x3C, - 0x3C, - 0x77, - 0x22, - 0x69, - 0x22, - 0x77, - 0x6A, - 0x77, - 0x04, - 0x22, - 0x00, - 0x1C, - 0x38, - 0x72, - 0x43, - 0x62, - 0x43, - 0x38, - 0x39, - 0x37, - 0x27, - 0x29, - 0x37, - 0x27, - 0x27, - 0x37, - 0x27, - 0x27, - 0x1A, - 0x27, - 0x27, - 0x25, - 0x27, - 0x3A, - 0x27, - 0x25, - 0x25, - 0x25, - 0x5B, - 0x1A, - 0x04, - 0x25, - 0x00, - 0x1C, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x24, - 0x24, - 0x24, - 0x51, - 0x24, - 0x1B, - 0x24, - 0x24, - 0x21, - 0x1B, - 0x1B, - 0x54, - 0x1B, - 0x21, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x1B, - 0x1E, - 0x1B, - 0x06, - 0x1E, - 0x05, - 0x1F, - 0x01, - 0x1D, - 0x01, - 0x1F, - 0x04, - 0x1D, - 0x00, - 0x1E, - 0x1C, - 0x1C, - 0x2D, - 0x60, - 0x92, - 0x93, - 0x60, - 0x93, - 0x93, - 0x60, - 0x93, - 0x93, - 0x93, - 0x20, - 0x93, - 0x20, - 0x93, - 0x93, - 0x93, - 0x92, - 0x92, - 0x70, - 0x70, - 0x70, - 0x1C, - 0x70, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x05, - 0x1D, - 0x05, - 0x1F, - 0x06, - 0x1E, - 0x00, - 0x3E, - 0x1B, - 0x1E, - 0x1B, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x23, - 0x23, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x2C, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x23, - 0x36, - 0xA5, - 0x23, - 0x23, - 0x36, - 0xAF, - 0x1D, - 0x23, - 0x23, - 0x23, - 0x7F, - 0x1D, - 0x2C, - 0x2A, - 0x1D, - 0x2A, - 0x1C, - 0x2B, - 0x2B, - 0x1F, - 0x23, - 0x36, - 0x64, - 0x1B, - 0x75, - 0x1A, - 0x5B, - 0x25, - 0x1A, - 0x29, - 0x5B, - 0x24, - 0x45, - 0xA5, - 0x76, - 0x9F, - 0x1C, - 0x32, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x04, - 0x2D, - 0x00, - 0x3C, - 0xCC, - 0x1C, - 0x32, - 0x55, - 0x2C, - 0xAB, - 0x2C, - 0x7F, - 0x2C, - 0xAB, - 0x9F, - 0x2C, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x55, - 0xAB, - 0x76, - 0xA5, - 0x45, - 0x45, - 0x4D, - 0x29, - 0x31, - 0x43, - 0x88, - 0x22, - 0x43, - 0x22, - 0x3C, - 0x69, - 0x22, - 0x57, - 0x77, - 0x57, - 0x22, - 0x57, - 0x57, - 0x57, - 0x22, - 0x57, - 0x57, - 0x22, - 0x57, - 0x22, - 0x3C, - 0x57, - 0x69, - 0x57, - 0x69, - 0x77, - 0x57, - 0x22, - 0x57, - 0x81, - 0x69, - 0x57, - 0x57, - 0x77, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x2E, - 0x27, - 0x38, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x29, - 0x2E, - 0x38, - 0x2E, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x00, - 0x05, - 0x27, - 0x00, - 0x31, - 0x2E, - 0x29, - 0x29, - 0x27, - 0x2E, - 0x29, - 0x27, - 0x39, - 0x27, - 0x27, - 0x2E, - 0x38, - 0x38, - 0x4E, - 0x4E, - 0x43, - 0x43, - 0x4E, - 0x43, - 0x4E, - 0x22, - 0x4B, - 0x72, - 0x43, - 0x43, - 0x22, - 0x22, - 0x62, - 0x50, - 0x50, - 0x50, - 0x22, - 0x50, - 0x65, - 0x43, - 0x43, - 0x4B, - 0x22, - 0x62, - 0x39, - 0x46, - 0x1A, - 0x37, - 0x27, - 0x27, - 0x1A, - 0x29, - 0x25, - 0x27, - 0x00, - 0x04, - 0x25, - 0x00, - 0x0C, - 0x2E, - 0x3E, - 0x25, - 0x1A, - 0x5A, - 0x4D, - 0x1A, - 0x25, - 0x25, - 0x25, - 0x24, - 0x25, - 0x04, - 0x24, - 0x00, - 0x18, - 0x1A, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x21, - 0x54, - 0x1B, - 0x5C, - 0x1B, - 0x21, - 0x21, - 0x1E, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x08, - 0x1E, - 0x04, - 0x1F, - 0x01, - 0x1D, - 0x01, - 0x1F, - 0x06, - 0x1D, - 0x00, - 0x20, - 0x1C, - 0x1C, - 0x1C, - 0x26, - 0x60, - 0x93, - 0x60, - 0x20, - 0x60, - 0x93, - 0x93, - 0x93, - 0x20, - 0x20, - 0x20, - 0x18, - 0x20, - 0x20, - 0x93, - 0x60, - 0x60, - 0x60, - 0x92, - 0x70, - 0x2D, - 0x70, - 0x1C, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x04, - 0x1D, - 0x01, - 0x1F, - 0x01, - 0x1D, - 0x06, - 0x1F, - 0x01, - 0x1E, - 0x01, - 0x1F, - 0x05, - 0x1E, - 0x00, - 0x14, - 0x1F, - 0x1D, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x2A, - 0x1D, - 0x1D, - 0x1D, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x04, - 0x23, - 0x00, - 0x44, - 0x1D, - 0x1D, - 0x23, - 0x1D, - 0x1D, - 0x2B, - 0x1D, - 0x2B, - 0x2B, - 0x1D, - 0x23, - 0x23, - 0x1E, - 0x28, - 0x21, - 0x24, - 0x45, - 0x25, - 0x44, - 0x66, - 0x5A, - 0x24, - 0x45, - 0x36, - 0x23, - 0x7F, - 0x8C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x2D, - 0x70, - 0x2D, - 0x7B, - 0x2D, - 0x2D, - 0x2D, - 0x26, - 0x2D, - 0x26, - 0x55, - 0xAB, - 0x1C, - 0x2C, - 0x2C, - 0x2C, - 0x9F, - 0x2C, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x9F, - 0x2C, - 0x76, - 0x76, - 0xA5, - 0x64, - 0x75, - 0x5A, - 0x2E, - 0x43, - 0x22, - 0x4E, - 0x22, - 0x33, - 0x04, - 0x22, - 0x00, - 0x0C, - 0x72, - 0x22, - 0x22, - 0x22, - 0x3C, - 0x22, - 0x22, - 0x3C, - 0x50, - 0x69, - 0x4E, - 0x69, - 0x04, - 0x22, - 0x00, - 0x04, - 0x72, - 0x22, - 0x72, - 0x57, - 0x04, - 0x22, - 0x01, - 0x69, - 0x01, - 0x22, - 0x00, - 0x00, - 0x00, - 0x09, - 0x29, - 0x27, - 0x29, - 0x29, - 0x27, - 0x29, - 0x29, - 0x2E, - 0x27, - 0x00, - 0x05, - 0x29, - 0x00, - 0x03, - 0x2E, - 0x29, - 0x27, - 0x00, - 0x05, - 0x29, - 0x00, - 0x08, - 0x5A, - 0x29, - 0x29, - 0x3A, - 0x27, - 0x29, - 0x29, - 0x25, - 0x07, - 0x29, - 0x00, - 0x38, - 0x3A, - 0x29, - 0x29, - 0x27, - 0x3A, - 0x27, - 0x27, - 0x37, - 0x27, - 0x27, - 0x37, - 0x37, - 0x62, - 0x27, - 0x67, - 0x4B, - 0x38, - 0x38, - 0x62, - 0x4B, - 0x62, - 0x43, - 0x67, - 0x43, - 0x62, - 0x43, - 0x4B, - 0x62, - 0x4B, - 0x38, - 0x4B, - 0x38, - 0x67, - 0x27, - 0x4B, - 0x1A, - 0x37, - 0x3A, - 0x58, - 0x25, - 0x25, - 0x25, - 0x5B, - 0x25, - 0x24, - 0x24, - 0x25, - 0x25, - 0x25, - 0x51, - 0x25, - 0x24, - 0x25, - 0x51, - 0x51, - 0x25, - 0x05, - 0x24, - 0x00, - 0x1A, - 0x1B, - 0x51, - 0x24, - 0x1B, - 0x5C, - 0x7C, - 0x54, - 0x1B, - 0x1B, - 0x48, - 0x1B, - 0x24, - 0x5C, - 0x1B, - 0x1B, - 0x5C, - 0x1B, - 0x1B, - 0x1B, - 0x30, - 0x1E, - 0x1B, - 0x1E, - 0x21, - 0x1E, - 0x1B, - 0x06, - 0x1E, - 0x00, - 0x2D, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1D, - 0x1E, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x1C, - 0x26, - 0x95, - 0x60, - 0x20, - 0x60, - 0x20, - 0x93, - 0x93, - 0x93, - 0x20, - 0x20, - 0x18, - 0x19, - 0x09, - 0x20, - 0x20, - 0x93, - 0x60, - 0x92, - 0x92, - 0x70, - 0x1C, - 0x1C, - 0x70, - 0x70, - 0x00, - 0x04, - 0x1C, - 0x00, - 0x08, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x04, - 0x1F, - 0x00, - 0x23, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x1D, - 0x23, - 0x1D, - 0x1D, - 0x1D, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x1D, - 0x23, - 0x1D, - 0x2F, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x3C, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x21, - 0x21, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x45, - 0x1B, - 0x36, - 0xA0, - 0x1C, - 0x1C, - 0x1C, - 0x2D, - 0x2D, - 0x2D, - 0x7B, - 0x70, - 0x70, - 0x70, - 0x2D, - 0x70, - 0x2D, - 0x2D, - 0x32, - 0x26, - 0x1C, - 0x55, - 0x1C, - 0x2A, - 0xAB, - 0xAB, - 0x1C, - 0x26, - 0x9F, - 0x55, - 0x8C, - 0x1C, - 0x8C, - 0x55, - 0x2C, - 0x76, - 0x23, - 0x36, - 0x45, - 0x24, - 0x5B, - 0x84, - 0x27, - 0x62, - 0x62, - 0x62, - 0x38, - 0x62, - 0x62, - 0x62, - 0x06, - 0x43, - 0x00, - 0x15, - 0x62, - 0x22, - 0x38, - 0x62, - 0x43, - 0x22, - 0x4B, - 0x62, - 0x43, - 0x62, - 0x22, - 0x43, - 0x4E, - 0x22, - 0x4B, - 0x50, - 0x43, - 0x22, - 0x43, - 0x43, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4F, - 0x4D, - 0x25, - 0x4D, - 0x25, - 0x4D, - 0x25, - 0x4D, - 0x24, - 0x44, - 0x25, - 0x4D, - 0x24, - 0x3A, - 0x24, - 0x24, - 0x4D, - 0x4D, - 0x24, - 0x4D, - 0x25, - 0x24, - 0x4D, - 0x25, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x24, - 0x4D, - 0x24, - 0x25, - 0x24, - 0x24, - 0x24, - 0x4D, - 0x24, - 0x24, - 0x25, - 0x44, - 0x25, - 0x25, - 0x25, - 0x3E, - 0x25, - 0x25, - 0x25, - 0x3E, - 0x58, - 0x25, - 0x58, - 0x3E, - 0x1A, - 0x3E, - 0x58, - 0x1A, - 0x58, - 0x84, - 0x1A, - 0x3E, - 0x25, - 0x1A, - 0x25, - 0x3F, - 0x24, - 0x3A, - 0x24, - 0x51, - 0x24, - 0x24, - 0x24, - 0x54, - 0x00, - 0x04, - 0x24, - 0x00, - 0x1B, - 0x54, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x1B, - 0x1B, - 0x5C, - 0x1B, - 0x1B, - 0x21, - 0x54, - 0x1B, - 0x21, - 0x1B, - 0x21, - 0x1B, - 0x1B, - 0x21, - 0x21, - 0x1E, - 0x30, - 0x1B, - 0x00, - 0x07, - 0x1E, - 0x01, - 0x1B, - 0x01, - 0x1F, - 0x04, - 0x1E, - 0x00, - 0x0C, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x07, - 0x1D, - 0x00, - 0x03, - 0x1C, - 0x1D, - 0x1D, - 0x00, - 0x06, - 0x1C, - 0x00, - 0x04, - 0x2D, - 0x60, - 0x93, - 0x60, - 0x05, - 0x20, - 0x00, - 0x0F, - 0x18, - 0x18, - 0x09, - 0x09, - 0x20, - 0x20, - 0x20, - 0x93, - 0x60, - 0x92, - 0x70, - 0x60, - 0x95, - 0x1C, - 0x70, - 0x00, - 0x06, - 0x1C, - 0x06, - 0x1D, - 0x00, - 0x04, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x06, - 0x1F, - 0x00, - 0x16, - 0x1D, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x1D, - 0x1D, - 0x1C, - 0x1C, - 0x23, - 0x1C, - 0x04, - 0x1D, - 0x01, - 0x1F, - 0x05, - 0x1D, - 0x00, - 0x5B, - 0x2B, - 0x1D, - 0x1C, - 0x1D, - 0x2B, - 0x1D, - 0x23, - 0x1E, - 0x28, - 0x21, - 0x21, - 0x24, - 0x21, - 0x28, - 0x21, - 0x7F, - 0x23, - 0x1D, - 0x2C, - 0x26, - 0x2D, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x70, - 0x7B, - 0x70, - 0x2D, - 0x2D, - 0x32, - 0x2D, - 0x32, - 0x8C, - 0x55, - 0x2C, - 0x2A, - 0x1C, - 0x2A, - 0x26, - 0x55, - 0x26, - 0x8C, - 0x26, - 0x8C, - 0x26, - 0x55, - 0x55, - 0x23, - 0x76, - 0x36, - 0x28, - 0x45, - 0x24, - 0x44, - 0x1A, - 0x58, - 0x25, - 0x25, - 0x37, - 0x25, - 0x37, - 0x25, - 0x37, - 0x25, - 0x37, - 0x58, - 0x37, - 0x37, - 0x25, - 0x37, - 0x37, - 0x37, - 0x25, - 0x58, - 0x27, - 0x37, - 0x3A, - 0x37, - 0x25, - 0x58, - 0x37, - 0x37, - 0x27, - 0x37, - 0x27, - 0x37, - 0x37, - 0x37, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x29, - 0x2E, - 0x27, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x27, - 0x27, - 0x29, - 0x27, - 0x2E, - 0x27, - 0x29, - 0x27, - 0x29, - 0x29, - 0x27, - 0x27, - 0x29, - 0x29, - 0x27, - 0x29, - 0x27, - 0x29, - 0x29, - 0x29, - 0x27, - 0x29, - 0x29, - 0x29, - 0x27, - 0x0A, - 0x29, - 0x00, - 0x25, - 0x27, - 0x29, - 0x27, - 0x39, - 0x38, - 0x27, - 0x39, - 0x62, - 0x39, - 0x62, - 0x62, - 0x43, - 0x62, - 0x62, - 0x65, - 0x62, - 0x43, - 0x50, - 0x65, - 0x62, - 0x4B, - 0x22, - 0x65, - 0x4B, - 0x62, - 0x4B, - 0x37, - 0x4B, - 0x27, - 0x37, - 0x37, - 0x27, - 0x25, - 0x58, - 0x25, - 0x25, - 0x58, - 0x00, - 0x05, - 0x25, - 0x01, - 0x44, - 0x01, - 0x1A, - 0x04, - 0x25, - 0x00, - 0x04, - 0x1A, - 0x44, - 0x24, - 0x25, - 0x06, - 0x24, - 0x00, - 0x17, - 0x21, - 0x24, - 0x1B, - 0x24, - 0x24, - 0x24, - 0x54, - 0x1B, - 0x24, - 0x1B, - 0x5C, - 0x1B, - 0x21, - 0x24, - 0x1B, - 0x21, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x1B, - 0x30, - 0x1B, - 0x00, - 0x08, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1E, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1D, - 0x1F, - 0x1F, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x1D, - 0x1C, - 0x1C, - 0x1D, - 0x26, - 0x1C, - 0x2D, - 0x60, - 0x60, - 0x93, - 0x93, - 0x20, - 0x93, - 0x20, - 0x20, - 0x20, - 0x09, - 0x18, - 0x18, - 0x20, - 0x20, - 0x93, - 0x60, - 0x60, - 0x92, - 0x70, - 0x70, - 0x1C, - 0x2D, - 0x26, - 0x00, - 0x05, - 0x1C, - 0x00, - 0x05, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1E, - 0x1F, - 0x1F, - 0x00, - 0x06, - 0x1E, - 0x00, - 0x15, - 0x1D, - 0x1D, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x1C, - 0x1D, - 0x1C, - 0x1D, - 0x1C, - 0x23, - 0x1C, - 0x23, - 0x23, - 0x23, - 0x1D, - 0x00, - 0x06, - 0x23, - 0x00, - 0x18, - 0x1E, - 0x23, - 0x23, - 0x1D, - 0x1F, - 0x1D, - 0x23, - 0x23, - 0x1F, - 0x23, - 0x1E, - 0x1E, - 0x21, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0xA5, - 0x1B, - 0xAF, - 0xA0, - 0x1C, - 0x55, - 0x05, - 0x2D, - 0x01, - 0x7B, - 0x05, - 0x2D, - 0x00, - 0x05, - 0x32, - 0x32, - 0x26, - 0x55, - 0x1C, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x1E, - 0x9F, - 0x55, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x55, - 0x2C, - 0x7F, - 0x76, - 0x36, - 0x45, - 0x64, - 0x75, - 0x5B, - 0x27, - 0x67, - 0x62, - 0x38, - 0x62, - 0x38, - 0x43, - 0x62, - 0x43, - 0x43, - 0x43, - 0x22, - 0x43, - 0x43, - 0x50, - 0x04, - 0x43, - 0x01, - 0x22, - 0x04, - 0x43, - 0x00, - 0x0C, - 0x22, - 0x43, - 0x43, - 0x4E, - 0x43, - 0x43, - 0x43, - 0x22, - 0x50, - 0x50, - 0x22, - 0x22, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x38, - 0x27, - 0x2E, - 0x46, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x00, - 0x04, - 0x27, - 0x00, - 0x06, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x04, - 0x27, - 0x00, - 0x30, - 0x2E, - 0x27, - 0x27, - 0x38, - 0x27, - 0x38, - 0x38, - 0x62, - 0x38, - 0x22, - 0x43, - 0x43, - 0x22, - 0x83, - 0x22, - 0x22, - 0x50, - 0x50, - 0x6A, - 0x77, - 0x22, - 0x22, - 0x65, - 0x22, - 0x22, - 0x50, - 0x22, - 0x22, - 0x62, - 0x43, - 0x38, - 0x38, - 0x1A, - 0x37, - 0x27, - 0x29, - 0x27, - 0x25, - 0x27, - 0x1A, - 0x5A, - 0x25, - 0x27, - 0x25, - 0x27, - 0x58, - 0x1A, - 0x2E, - 0x05, - 0x25, - 0x00, - 0x22, - 0x1A, - 0x4D, - 0x1A, - 0x63, - 0x25, - 0x24, - 0x1A, - 0x24, - 0x25, - 0x24, - 0x25, - 0x1B, - 0x24, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x24, - 0x1B, - 0x1B, - 0x54, - 0x1B, - 0x1B, - 0x54, - 0x21, - 0x1B, - 0x1E, - 0x1B, - 0x1E, - 0x1B, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x07, - 0x1E, - 0x00, - 0x09, - 0x1F, - 0x1F, - 0x1E, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x00, - 0x04, - 0x1D, - 0x04, - 0x1C, - 0x00, - 0x1A, - 0x2D, - 0x60, - 0x93, - 0x93, - 0x93, - 0x20, - 0x93, - 0x20, - 0x20, - 0x20, - 0x18, - 0x20, - 0x20, - 0x93, - 0x93, - 0x60, - 0x92, - 0x70, - 0x70, - 0x1C, - 0x70, - 0x1C, - 0x26, - 0x1C, - 0x1C, - 0x1C, - 0x05, - 0x1D, - 0x05, - 0x1F, - 0x04, - 0x1E, - 0x01, - 0x30, - 0x04, - 0x1E, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1D, - 0x1D, - 0x2A, - 0x00, - 0x06, - 0x1C, - 0x00, - 0x0B, - 0x2F, - 0x1C, - 0x1D, - 0x2C, - 0x1D, - 0x7F, - 0x23, - 0x1D, - 0x23, - 0x23, - 0x36, - 0x00, - 0x06, - 0x23, - 0x00, - 0x42, - 0x36, - 0x1E, - 0x1E, - 0x28, - 0x4F, - 0x23, - 0x1E, - 0x41, - 0x1E, - 0x1E, - 0x28, - 0x36, - 0x21, - 0x64, - 0x21, - 0x24, - 0x45, - 0x45, - 0x21, - 0x36, - 0x23, - 0x2F, - 0x55, - 0x26, - 0x32, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x2D, - 0x7B, - 0x70, - 0x2D, - 0x7B, - 0x26, - 0x32, - 0x1C, - 0xC0, - 0x1C, - 0xB4, - 0x2C, - 0x2C, - 0x7F, - 0xAB, - 0x1C, - 0x55, - 0x9F, - 0x55, - 0x55, - 0x8C, - 0x55, - 0xAB, - 0x2C, - 0x76, - 0x36, - 0x45, - 0x91, - 0x4D, - 0x29, - 0x38, - 0x38, - 0x22, - 0x22, - 0x43, - 0x22, - 0x50, - 0x04, - 0x22, - 0x01, - 0x43, - 0x01, - 0x3C, - 0x04, - 0x22, - 0x00, - 0x13, - 0x3C, - 0x3C, - 0x22, - 0x3C, - 0x22, - 0x22, - 0x22, - 0x43, - 0x22, - 0x22, - 0x22, - 0x69, - 0x22, - 0x22, - 0x69, - 0x22, - 0x69, - 0x6A, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x31, - 0x31, - 0x2E, - 0x46, - 0x2E, - 0x46, - 0x46, - 0x2E, - 0x46, - 0x2E, - 0x46, - 0x2E, - 0x2E, - 0x2E, - 0x46, - 0x04, - 0x2E, - 0x00, - 0x52, - 0x38, - 0x2E, - 0x2E, - 0x2E, - 0x38, - 0x2E, - 0x46, - 0x2E, - 0x2E, - 0x38, - 0x2E, - 0x46, - 0x2E, - 0x4E, - 0x4E, - 0x33, - 0x33, - 0x72, - 0x34, - 0x22, - 0x69, - 0x77, - 0x22, - 0x57, - 0x81, - 0x22, - 0x77, - 0x53, - 0x22, - 0x53, - 0x77, - 0x81, - 0x77, - 0x69, - 0x22, - 0x22, - 0x3C, - 0x72, - 0x4E, - 0x43, - 0x38, - 0x34, - 0x38, - 0x39, - 0x38, - 0x27, - 0x27, - 0x27, - 0x38, - 0x37, - 0x27, - 0x27, - 0x38, - 0x39, - 0x39, - 0x46, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x1A, - 0x5E, - 0x27, - 0x25, - 0x25, - 0x3A, - 0x1A, - 0x5A, - 0x29, - 0x25, - 0x25, - 0x25, - 0x24, - 0x66, - 0x1A, - 0x25, - 0x25, - 0x24, - 0x24, - 0x25, - 0x25, - 0x1B, - 0x05, - 0x24, - 0x00, - 0x18, - 0x21, - 0x1B, - 0x5C, - 0x21, - 0x1B, - 0x21, - 0x21, - 0x1B, - 0x1E, - 0x21, - 0x1E, - 0x21, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1F, - 0x04, - 0x1D, - 0x00, - 0x08, - 0x2B, - 0x1C, - 0x1D, - 0x1C, - 0x1C, - 0x26, - 0x95, - 0x73, - 0x04, - 0x93, - 0x00, - 0x19, - 0x20, - 0x20, - 0x20, - 0x93, - 0x20, - 0x93, - 0x20, - 0x60, - 0x60, - 0x92, - 0x70, - 0x2D, - 0x95, - 0x2D, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x1D, - 0x2B, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x00, - 0x05, - 0x1E, - 0x01, - 0x30, - 0x04, - 0x1E, - 0x00, - 0x16, - 0x21, - 0x30, - 0x1E, - 0x1E, - 0x23, - 0x1F, - 0x2C, - 0x1C, - 0x2A, - 0x1C, - 0x1C, - 0x26, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x23, - 0x23, - 0x1C, - 0x1D, - 0x7F, - 0x05, - 0x23, - 0x00, - 0x2D, - 0x36, - 0x23, - 0xA7, - 0x21, - 0xA0, - 0x1E, - 0x45, - 0x36, - 0x1B, - 0x21, - 0x28, - 0x1E, - 0x36, - 0x28, - 0x21, - 0x21, - 0x21, - 0x1B, - 0x44, - 0x24, - 0x64, - 0xA8, - 0x45, - 0x36, - 0x23, - 0x7F, - 0x55, - 0x8C, - 0x32, - 0x2D, - 0x2D, - 0x2D, - 0x70, - 0x2D, - 0x7B, - 0x2D, - 0x2D, - 0x2D, - 0x85, - 0x85, - 0x26, - 0x8C, - 0x9F, - 0x1C, - 0x7F, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x32, - 0x9F, - 0x55, - 0x9F, - 0x55, - 0x55, - 0x9F, - 0x55, - 0x76, - 0xAF, - 0x45, - 0x45, - 0x66, - 0x5A, - 0x29, - 0x46, - 0x22, - 0x88, - 0x22, - 0x22, - 0x69, - 0x7D, - 0x22, - 0x69, - 0x69, - 0x57, - 0x77, - 0x22, - 0x53, - 0x77, - 0x57, - 0x53, - 0x69, - 0x22, - 0x82, - 0x57, - 0x53, - 0x57, - 0x57, - 0x57, - 0x7D, - 0x22, - 0x82, - 0x57, - 0x77, - 0x53, - 0x57, - 0x53, - 0x57, - 0x57, - 0x53, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x42, - 0x31, - 0x31, - 0x33, - 0x42, - 0x31, - 0x31, - 0x42, - 0x31, - 0x42, - 0x31, - 0x33, - 0x05, - 0x31, - 0x00, - 0x05, - 0x33, - 0x31, - 0x31, - 0x31, - 0x33, - 0x00, - 0x07, - 0x31, - 0x01, - 0x33, - 0x08, - 0x31, - 0x00, - 0x30, - 0x33, - 0x46, - 0x31, - 0x31, - 0x31, - 0x33, - 0x33, - 0x42, - 0x42, - 0x22, - 0x69, - 0x7D, - 0x57, - 0x53, - 0x57, - 0x53, - 0x94, - 0x53, - 0x87, - 0x94, - 0x87, - 0x53, - 0x68, - 0x53, - 0x87, - 0x53, - 0x53, - 0x53, - 0x82, - 0x77, - 0x57, - 0x22, - 0x69, - 0x33, - 0x72, - 0x72, - 0x4E, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x27, - 0x33, - 0x38, - 0x43, - 0x27, - 0x22, - 0x04, - 0x38, - 0x00, - 0x0F, - 0x67, - 0x38, - 0x27, - 0x84, - 0x27, - 0x39, - 0x27, - 0x27, - 0x27, - 0x58, - 0x27, - 0x25, - 0x27, - 0x25, - 0x27, - 0x00, - 0x05, - 0x25, - 0x00, - 0x06, - 0x29, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x04, - 0x24, - 0x00, - 0x24, - 0x63, - 0x1B, - 0x63, - 0x54, - 0x24, - 0x21, - 0x21, - 0x64, - 0x7C, - 0x1B, - 0x28, - 0x1B, - 0x28, - 0x21, - 0x1B, - 0x1E, - 0x1E, - 0x4F, - 0x1E, - 0x1E, - 0x23, - 0x23, - 0x1E, - 0x41, - 0x1F, - 0x41, - 0x1D, - 0x1D, - 0x2B, - 0x2A, - 0x1C, - 0x26, - 0x26, - 0x32, - 0x60, - 0x60, - 0x09, - 0x93, - 0x00, - 0x56, - 0x60, - 0x60, - 0x60, - 0x95, - 0x2D, - 0x1C, - 0x70, - 0x1C, - 0x1C, - 0x26, - 0x1D, - 0x1D, - 0x2B, - 0x1D, - 0x41, - 0x1D, - 0x41, - 0x1F, - 0x30, - 0x1F, - 0x30, - 0x1E, - 0x30, - 0x1F, - 0x5C, - 0x1E, - 0x5C, - 0x5C, - 0x5C, - 0x1E, - 0x1B, - 0x21, - 0x1E, - 0x23, - 0x23, - 0x1D, - 0x23, - 0x1C, - 0x2A, - 0x26, - 0x1C, - 0x26, - 0x26, - 0x1C, - 0x2C, - 0x2C, - 0x1C, - 0x1C, - 0x2C, - 0x7F, - 0x1D, - 0x76, - 0xA5, - 0x23, - 0x45, - 0x45, - 0x36, - 0x36, - 0x1B, - 0x45, - 0x1B, - 0xA8, - 0x1B, - 0x45, - 0x45, - 0x21, - 0x45, - 0x64, - 0x21, - 0x89, - 0x36, - 0x21, - 0x63, - 0x63, - 0x63, - 0x75, - 0x24, - 0x1B, - 0xA7, - 0xA5, - 0xAF, - 0x7F, - 0x55, - 0x32, - 0xC0, - 0x32, - 0x07, - 0x2D, - 0x00, - 0x3E, - 0x32, - 0x32, - 0x8C, - 0x8C, - 0x55, - 0x2C, - 0xB4, - 0x2C, - 0x7F, - 0x7F, - 0xAB, - 0x9F, - 0x55, - 0x9F, - 0x9F, - 0xAB, - 0xAB, - 0xAB, - 0x7F, - 0xA0, - 0xA5, - 0x45, - 0x66, - 0x66, - 0x90, - 0x46, - 0x33, - 0x69, - 0x57, - 0x82, - 0x82, - 0x57, - 0x82, - 0x53, - 0x53, - 0x82, - 0x53, - 0x82, - 0x94, - 0x82, - 0x98, - 0x98, - 0x82, - 0x53, - 0x9C, - 0x53, - 0x53, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x9C, - 0x98, - 0x94, - 0x94, - 0x82, - 0x8F, - 0x94, - 0x9C, - 0x94, - 0x94, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x42, - 0x42, - 0x74, - 0x74, - 0x42, - 0x74, - 0x42, - 0x3B, - 0x42, - 0x42, - 0x74, - 0x00, - 0x0D, - 0x42, - 0x00, - 0x50, - 0x34, - 0x42, - 0x33, - 0x42, - 0x42, - 0x31, - 0x42, - 0x42, - 0x42, - 0x34, - 0x42, - 0x31, - 0x42, - 0x42, - 0x42, - 0x34, - 0x42, - 0x34, - 0x42, - 0x34, - 0x34, - 0x56, - 0x74, - 0x7D, - 0x56, - 0x8A, - 0x82, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x7E, - 0x99, - 0x8F, - 0x99, - 0x8F, - 0xAE, - 0x68, - 0x8F, - 0x7E, - 0x8F, - 0x94, - 0x94, - 0x98, - 0x82, - 0x82, - 0x7D, - 0x7D, - 0x69, - 0x88, - 0x72, - 0x34, - 0x72, - 0x31, - 0x22, - 0x22, - 0x22, - 0x33, - 0x33, - 0x22, - 0x22, - 0x34, - 0x33, - 0x22, - 0x33, - 0x22, - 0x33, - 0x43, - 0x31, - 0x38, - 0x4E, - 0x38, - 0x22, - 0x2E, - 0x38, - 0x38, - 0x38, - 0x27, - 0x27, - 0x38, - 0x05, - 0x27, - 0x00, - 0x32, - 0x25, - 0x27, - 0x1A, - 0x25, - 0x25, - 0x25, - 0x27, - 0x29, - 0x24, - 0x25, - 0x24, - 0x4D, - 0x63, - 0x24, - 0x24, - 0x24, - 0x64, - 0x24, - 0x24, - 0x64, - 0x1B, - 0x21, - 0x64, - 0x21, - 0x89, - 0x7C, - 0x21, - 0x21, - 0x28, - 0x28, - 0x28, - 0x4F, - 0x1E, - 0x4F, - 0x1E, - 0x4F, - 0x41, - 0x23, - 0x1D, - 0x23, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x26, - 0x2D, - 0x60, - 0x73, - 0x93, - 0x93, - 0x06, - 0x73, - 0x00, - 0x7C, - 0x92, - 0x95, - 0x7B, - 0x32, - 0x2D, - 0x26, - 0x26, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x2B, - 0x23, - 0x2B, - 0x4F, - 0x41, - 0x1E, - 0x30, - 0x1F, - 0x30, - 0x21, - 0x2D, - 0x20, - 0x19, - 0x09, - 0x2D, - 0x23, - 0x21, - 0x4C, - 0x4C, - 0x21, - 0x21, - 0x36, - 0x1E, - 0x23, - 0x23, - 0x2C, - 0x2F, - 0x2C, - 0x26, - 0x1C, - 0x26, - 0x1C, - 0x2A, - 0x2A, - 0x2C, - 0x1C, - 0x2C, - 0xAB, - 0x1D, - 0x7F, - 0x23, - 0x36, - 0xBD, - 0x36, - 0x45, - 0x45, - 0x45, - 0xD0, - 0x45, - 0x45, - 0xBC, - 0x1B, - 0x4D, - 0xA8, - 0x24, - 0x91, - 0x24, - 0x91, - 0x24, - 0x91, - 0x24, - 0x4D, - 0x24, - 0x4D, - 0x24, - 0x75, - 0x64, - 0x36, - 0x36, - 0xA0, - 0x7F, - 0x55, - 0x8C, - 0x8C, - 0xC0, - 0x2D, - 0x85, - 0x70, - 0x85, - 0x2D, - 0x85, - 0x32, - 0x85, - 0x32, - 0x8C, - 0x8C, - 0x9F, - 0xAB, - 0x7F, - 0x7F, - 0x2F, - 0xB4, - 0xAB, - 0x2C, - 0xAB, - 0xAB, - 0x2C, - 0xAB, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0x89, - 0xA8, - 0xBC, - 0x5A, - 0xB3, - 0x4E, - 0x34, - 0x8A, - 0x98, - 0x98, - 0x82, - 0x05, - 0x94, - 0x00, - 0x1A, - 0x8F, - 0x8F, - 0x94, - 0x8F, - 0x8F, - 0x94, - 0x7E, - 0x94, - 0x52, - 0x7E, - 0x52, - 0x8F, - 0x8F, - 0x52, - 0x7E, - 0x7E, - 0x52, - 0x7E, - 0x7E, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x13, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x6E, - 0x00, - 0x07, - 0x74, - 0x00, - 0x33, - 0x6E, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x42, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x42, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x6C, - 0x6B, - 0x5D, - 0x9C, - 0x52, - 0x52, - 0x7E, - 0x7E, - 0xAD, - 0x9B, - 0x96, - 0x9B, - 0xAD, - 0x96, - 0x9B, - 0xA2, - 0x9B, - 0x96, - 0x9B, - 0xAE, - 0xAE, - 0x7E, - 0xA3, - 0x9C, - 0x94, - 0x82, - 0x56, - 0x7D, - 0x7D, - 0x7D, - 0x88, - 0x69, - 0x00, - 0x04, - 0x34, - 0x00, - 0x17, - 0x69, - 0x7D, - 0x7D, - 0x57, - 0x57, - 0x69, - 0x3B, - 0x57, - 0x34, - 0x22, - 0x34, - 0x22, - 0x34, - 0x33, - 0x72, - 0x27, - 0x22, - 0x4E, - 0x4E, - 0x4E, - 0x33, - 0x22, - 0x27, - 0x00, - 0x05, - 0x38, - 0x00, - 0x2F, - 0x4E, - 0x27, - 0x5E, - 0x27, - 0x27, - 0x29, - 0x25, - 0x25, - 0x29, - 0x25, - 0x27, - 0x25, - 0x25, - 0x44, - 0x25, - 0x25, - 0x24, - 0x63, - 0x24, - 0x24, - 0x63, - 0x63, - 0x24, - 0x24, - 0x1B, - 0x64, - 0x7C, - 0x21, - 0x64, - 0x21, - 0x89, - 0x21, - 0x36, - 0x28, - 0x28, - 0x1E, - 0x5F, - 0x4F, - 0x4F, - 0x41, - 0x2F, - 0x2B, - 0x2B, - 0x2A, - 0x2A, - 0x8C, - 0x95, - 0x00, - 0x08, - 0x73, - 0x00, - 0x38, - 0x92, - 0x95, - 0x7B, - 0x85, - 0x32, - 0x2A, - 0x26, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x41, - 0x23, - 0x30, - 0x23, - 0x28, - 0x4F, - 0x28, - 0x28, - 0x28, - 0x30, - 0x20, - 0x18, - 0x19, - 0x09, - 0x19, - 0x09, - 0x95, - 0x24, - 0x24, - 0x4C, - 0x21, - 0x28, - 0x23, - 0x4F, - 0x2F, - 0x2F, - 0x1C, - 0x2C, - 0x2A, - 0x55, - 0x2A, - 0x55, - 0x1C, - 0x55, - 0x55, - 0x2C, - 0x2C, - 0x2C, - 0x7F, - 0x23, - 0xA0, - 0x1E, - 0x1B, - 0xA7, - 0x05, - 0x45, - 0x00, - 0x1D, - 0xA8, - 0x66, - 0x66, - 0x66, - 0x29, - 0x5A, - 0x5B, - 0x5B, - 0x25, - 0x4D, - 0x24, - 0x75, - 0x4D, - 0x5B, - 0x24, - 0x66, - 0x91, - 0x45, - 0xA7, - 0xA5, - 0x76, - 0xAB, - 0x9F, - 0x8C, - 0x32, - 0x32, - 0x85, - 0x85, - 0x32, - 0x00, - 0x04, - 0x85, - 0x00, - 0x0B, - 0x32, - 0x8C, - 0x8C, - 0x55, - 0x2C, - 0xAB, - 0x76, - 0x7F, - 0xA0, - 0x7F, - 0x7F, - 0x00, - 0x06, - 0xAB, - 0x00, - 0x0C, - 0xB4, - 0xB4, - 0xA5, - 0xA7, - 0xA8, - 0x66, - 0xB3, - 0x5E, - 0xBA, - 0x8A, - 0x94, - 0xA3, - 0x05, - 0x7E, - 0x00, - 0x15, - 0xAE, - 0x7E, - 0xA2, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0xAE, - 0xA2, - 0xB1, - 0xAE, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xB1, - 0x00, - 0x07, - 0x8E, - 0x00, - 0x00, - 0x09, - 0x61, - 0x01, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x0F, - 0x3B, - 0x61, - 0x6E, - 0x3B, - 0x74, - 0x3B, - 0x74, - 0x6E, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x3B, - 0x74, - 0x42, - 0x00, - 0x06, - 0x74, - 0x00, - 0x48, - 0x42, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x6C, - 0x3B, - 0x6B, - 0x8A, - 0x9C, - 0x9C, - 0x94, - 0x7E, - 0xAE, - 0x7E, - 0xAE, - 0x7E, - 0x7E, - 0xA2, - 0x7E, - 0xA2, - 0x7E, - 0x99, - 0x7E, - 0x99, - 0xBF, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x82, - 0x82, - 0x7D, - 0x7D, - 0x57, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x88, - 0x57, - 0x69, - 0x69, - 0x69, - 0x57, - 0x57, - 0x7D, - 0x57, - 0x57, - 0x57, - 0x7D, - 0x69, - 0x57, - 0x88, - 0x3C, - 0x69, - 0x33, - 0x33, - 0x33, - 0x72, - 0x4E, - 0x72, - 0x2E, - 0x22, - 0x22, - 0x4E, - 0x4E, - 0x22, - 0x04, - 0x38, - 0x00, - 0x2F, - 0x67, - 0x39, - 0x39, - 0x37, - 0x27, - 0x39, - 0x25, - 0x25, - 0x27, - 0x25, - 0x3A, - 0x3A, - 0x25, - 0x25, - 0x4D, - 0x25, - 0x44, - 0x63, - 0x44, - 0x24, - 0x63, - 0x63, - 0x64, - 0x64, - 0x24, - 0x64, - 0x64, - 0x21, - 0x21, - 0x7C, - 0x21, - 0x7C, - 0x28, - 0x28, - 0x28, - 0x4F, - 0x4F, - 0x4F, - 0x7A, - 0x2F, - 0x2B, - 0x2B, - 0x55, - 0x26, - 0x55, - 0xCC, - 0x95, - 0x00, - 0x04, - 0x73, - 0x00, - 0x18, - 0x95, - 0x95, - 0x95, - 0x85, - 0x32, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x7A, - 0x41, - 0x41, - 0x4F, - 0x4F, - 0x4F, - 0x28, - 0x28, - 0x28, - 0x4C, - 0x4C, - 0x54, - 0x06, - 0x19, - 0x00, - 0x80, - 0x09, - 0x55, - 0x5C, - 0x54, - 0x21, - 0x7C, - 0x4F, - 0x4F, - 0x23, - 0x2C, - 0x2F, - 0x1C, - 0x2C, - 0x2C, - 0x26, - 0x1C, - 0x55, - 0x2A, - 0x26, - 0x26, - 0x55, - 0x2A, - 0x2C, - 0x2F, - 0x23, - 0xAF, - 0x36, - 0x45, - 0xE8, - 0x45, - 0xA8, - 0xA8, - 0x66, - 0xA8, - 0x66, - 0x5B, - 0x5B, - 0x5B, - 0x59, - 0x27, - 0x29, - 0x3A, - 0x5A, - 0x25, - 0x5A, - 0x25, - 0x4D, - 0x4D, - 0x24, - 0x45, - 0x45, - 0x36, - 0x76, - 0x76, - 0xAB, - 0x2C, - 0x55, - 0x26, - 0xC0, - 0x32, - 0x32, - 0x32, - 0x85, - 0x32, - 0xC0, - 0x32, - 0x8C, - 0x32, - 0x55, - 0x2C, - 0xAB, - 0x7F, - 0x7F, - 0xA0, - 0x7F, - 0xA0, - 0x7F, - 0xAB, - 0x7F, - 0xAB, - 0xAB, - 0x7F, - 0xB4, - 0xB4, - 0xA0, - 0xA5, - 0xBE, - 0xA8, - 0x8B, - 0x59, - 0x2E, - 0xBA, - 0x57, - 0x5D, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x8F, - 0x8F, - 0x52, - 0x99, - 0x7E, - 0x7E, - 0xA2, - 0x7E, - 0x7E, - 0xA2, - 0x7E, - 0x7E, - 0xAE, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x06, - 0x61, - 0x01, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x14, - 0x3B, - 0x61, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0x74, - 0x74, - 0x34, - 0x34, - 0x42, - 0x42, - 0x34, - 0x34, - 0x42, - 0x34, - 0x34, - 0x34, - 0x42, - 0x06, - 0x34, - 0x00, - 0x46, - 0x42, - 0x34, - 0x42, - 0x34, - 0x74, - 0x34, - 0x3B, - 0x7D, - 0x56, - 0x56, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x8F, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x94, - 0x8F, - 0x9E, - 0x98, - 0x94, - 0x82, - 0x82, - 0x82, - 0x7D, - 0x7D, - 0x69, - 0x69, - 0x88, - 0x69, - 0x3C, - 0x88, - 0x3C, - 0x3C, - 0x69, - 0x69, - 0x57, - 0x69, - 0x57, - 0x77, - 0x57, - 0x53, - 0x57, - 0x57, - 0x7D, - 0x22, - 0x69, - 0x69, - 0x72, - 0x22, - 0x22, - 0x33, - 0x3C, - 0x22, - 0x4E, - 0x22, - 0x4E, - 0x4E, - 0x4E, - 0x43, - 0x27, - 0x22, - 0x05, - 0x38, - 0x00, - 0x49, - 0x37, - 0x27, - 0x67, - 0x37, - 0x25, - 0x67, - 0x25, - 0x58, - 0x25, - 0x58, - 0x25, - 0x25, - 0x25, - 0x4D, - 0x44, - 0x25, - 0x44, - 0x4D, - 0x63, - 0x44, - 0x24, - 0x24, - 0x91, - 0x64, - 0x24, - 0x64, - 0x64, - 0x64, - 0x7C, - 0x54, - 0x7C, - 0x7C, - 0x4C, - 0x28, - 0x28, - 0x4F, - 0x4F, - 0x7A, - 0x41, - 0x2B, - 0x7A, - 0x2F, - 0x2A, - 0x55, - 0x85, - 0xC0, - 0xCC, - 0x95, - 0xCC, - 0x95, - 0xCC, - 0xC0, - 0x26, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x7A, - 0x7A, - 0x41, - 0x4F, - 0x4F, - 0x28, - 0x30, - 0x28, - 0x28, - 0x4C, - 0x4C, - 0x21, - 0x54, - 0x21, - 0x00, - 0x06, - 0x19, - 0x00, - 0x5F, - 0x09, - 0x09, - 0x4F, - 0x24, - 0x7C, - 0x30, - 0x36, - 0x23, - 0x23, - 0x2F, - 0x2C, - 0x2C, - 0x55, - 0x1C, - 0x2A, - 0x55, - 0x2A, - 0x26, - 0x55, - 0x2A, - 0x2A, - 0x2C, - 0x2C, - 0x7A, - 0x76, - 0x5F, - 0x36, - 0x45, - 0x1B, - 0x66, - 0x75, - 0x66, - 0x75, - 0x4D, - 0x66, - 0x5B, - 0x59, - 0x29, - 0x29, - 0x27, - 0x2E, - 0x29, - 0x29, - 0x27, - 0x25, - 0x29, - 0x4D, - 0x44, - 0x63, - 0x64, - 0x21, - 0xA5, - 0x5F, - 0x7F, - 0x2F, - 0x9F, - 0x55, - 0x8C, - 0x26, - 0x8C, - 0xC0, - 0xC0, - 0x32, - 0x32, - 0x32, - 0x26, - 0x8C, - 0x55, - 0x55, - 0x9F, - 0x2C, - 0x7F, - 0x7F, - 0x76, - 0x76, - 0x7F, - 0x76, - 0xAB, - 0xAB, - 0x2C, - 0xB4, - 0x7F, - 0xAB, - 0x7A, - 0x76, - 0xA5, - 0x45, - 0x75, - 0x5A, - 0x5A, - 0x9A, - 0x72, - 0x56, - 0x57, - 0x8F, - 0x00, - 0x04, - 0x94, - 0x00, - 0x11, - 0x68, - 0x68, - 0x8F, - 0x94, - 0x68, - 0x68, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0x9B, - 0x7E, - 0x9B, - 0xB1, - 0x00, - 0x05, - 0x8E, - 0x00, - 0x07, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x0F, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x3B, - 0x6E, - 0x74, - 0x74, - 0x74, - 0x42, - 0x34, - 0x34, - 0x42, - 0x00, - 0x04, - 0x34, - 0x00, - 0x10, - 0x42, - 0x33, - 0x34, - 0x31, - 0x34, - 0x33, - 0x33, - 0x34, - 0x33, - 0x34, - 0x33, - 0x34, - 0x34, - 0x42, - 0x34, - 0x33, - 0x04, - 0x34, - 0x04, - 0x7D, - 0x00, - 0x17, - 0x82, - 0x53, - 0x98, - 0x98, - 0x87, - 0x9E, - 0x87, - 0x53, - 0x81, - 0x87, - 0x81, - 0x87, - 0x53, - 0x53, - 0x81, - 0x82, - 0x82, - 0x53, - 0x7D, - 0x57, - 0x57, - 0x69, - 0x69, - 0x00, - 0x04, - 0x3C, - 0x00, - 0x18, - 0x50, - 0x50, - 0x3C, - 0x6A, - 0x3C, - 0x77, - 0x22, - 0x83, - 0x57, - 0x77, - 0x22, - 0x77, - 0x69, - 0x69, - 0x83, - 0x3C, - 0x3C, - 0x3C, - 0x50, - 0x22, - 0x72, - 0x50, - 0x72, - 0x50, - 0x08, - 0x43, - 0x00, - 0x9E, - 0x62, - 0x38, - 0x67, - 0x67, - 0x67, - 0x37, - 0x39, - 0x37, - 0x58, - 0x58, - 0x37, - 0x58, - 0x58, - 0x58, - 0x25, - 0x58, - 0x25, - 0x25, - 0x25, - 0x44, - 0x3A, - 0x44, - 0x44, - 0x44, - 0x63, - 0x44, - 0x24, - 0x63, - 0x63, - 0x63, - 0x54, - 0x54, - 0x64, - 0x54, - 0x7C, - 0x7C, - 0x4C, - 0x7C, - 0x28, - 0x4F, - 0x7C, - 0x4F, - 0x7A, - 0x7A, - 0x7A, - 0x2F, - 0x2C, - 0x2A, - 0x2C, - 0x55, - 0xC0, - 0x55, - 0x32, - 0x55, - 0xD5, - 0x2A, - 0x55, - 0x2B, - 0x2A, - 0x2C, - 0x41, - 0x7A, - 0x41, - 0x41, - 0x30, - 0x41, - 0x4F, - 0x4F, - 0x4C, - 0x28, - 0x4C, - 0x7C, - 0x4C, - 0x4C, - 0x54, - 0x54, - 0x54, - 0x28, - 0x54, - 0x54, - 0x85, - 0x09, - 0x19, - 0x19, - 0x19, - 0xC0, - 0x5C, - 0x54, - 0x28, - 0x28, - 0x23, - 0x7A, - 0x2F, - 0x2C, - 0x2C, - 0x2C, - 0x2A, - 0x2C, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x55, - 0x2B, - 0x2F, - 0x23, - 0x5F, - 0x5F, - 0x36, - 0x91, - 0x75, - 0x4D, - 0x66, - 0x5B, - 0x4D, - 0x5A, - 0x5B, - 0x29, - 0x5A, - 0x27, - 0x2E, - 0x27, - 0x38, - 0x27, - 0x39, - 0x3A, - 0x27, - 0x5A, - 0x24, - 0x63, - 0x64, - 0x7C, - 0x5F, - 0x5F, - 0x2F, - 0x2F, - 0x2C, - 0x2C, - 0x55, - 0x26, - 0x8C, - 0x26, - 0x32, - 0x32, - 0x55, - 0x32, - 0x55, - 0x8C, - 0x55, - 0x2A, - 0xAB, - 0x7F, - 0x2F, - 0x76, - 0x76, - 0x76, - 0x05, - 0x7F, - 0x00, - 0x0F, - 0x2F, - 0xB4, - 0x7F, - 0xA0, - 0x7A, - 0xA5, - 0xBE, - 0x75, - 0x90, - 0x5A, - 0x2E, - 0x33, - 0x88, - 0x53, - 0x98, - 0x00, - 0x04, - 0x53, - 0x00, - 0x03, - 0x9E, - 0x87, - 0x98, - 0x00, - 0x04, - 0x87, - 0x00, - 0x16, - 0x53, - 0x68, - 0x68, - 0x98, - 0x94, - 0x8F, - 0x7E, - 0x7E, - 0x7E, - 0x9B, - 0xB1, - 0x8E, - 0x8E, - 0x8E, - 0xAC, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x15, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x3B, - 0x74, - 0x74, - 0x34, - 0x42, - 0x34, - 0x34, - 0x00, - 0x0A, - 0x33, - 0x01, - 0x72, - 0x07, - 0x33, - 0x00, - 0x11, - 0x4E, - 0x33, - 0x34, - 0x34, - 0x33, - 0x88, - 0x33, - 0x34, - 0x69, - 0x57, - 0x7D, - 0x57, - 0x81, - 0x57, - 0x81, - 0x77, - 0x81, - 0x00, - 0x04, - 0x77, - 0x00, - 0x0E, - 0x83, - 0x77, - 0x77, - 0x77, - 0x57, - 0x77, - 0x83, - 0x57, - 0x69, - 0x83, - 0x3C, - 0x83, - 0x3C, - 0x3C, - 0x06, - 0x50, - 0x00, - 0x1B, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x22, - 0x77, - 0x83, - 0x57, - 0x77, - 0x83, - 0x22, - 0x3C, - 0x3C, - 0x50, - 0x50, - 0x3C, - 0x50, - 0x50, - 0x50, - 0x43, - 0x50, - 0x43, - 0x50, - 0x43, - 0x43, - 0x43, - 0x65, - 0x00, - 0x05, - 0x62, - 0x00, - 0x03, - 0x67, - 0x67, - 0x67, - 0x00, - 0x04, - 0x37, - 0x01, - 0x3E, - 0x06, - 0x58, - 0x00, - 0x1A, - 0x3A, - 0x58, - 0x25, - 0x3A, - 0x3A, - 0x44, - 0x25, - 0x44, - 0x44, - 0x44, - 0x63, - 0x51, - 0x63, - 0x63, - 0x64, - 0x51, - 0x63, - 0x54, - 0x54, - 0x7C, - 0x54, - 0x7C, - 0x7C, - 0x30, - 0x4F, - 0x7C, - 0x05, - 0x7A, - 0x00, - 0x0A, - 0x55, - 0x2A, - 0x2B, - 0x55, - 0x2B, - 0x55, - 0x2B, - 0x2B, - 0x2C, - 0x2B, - 0x04, - 0x41, - 0x00, - 0x23, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x4C, - 0x4C, - 0x30, - 0x4C, - 0x4C, - 0x54, - 0x4C, - 0x54, - 0x64, - 0x54, - 0x54, - 0x54, - 0x5C, - 0x5C, - 0x48, - 0x7B, - 0x19, - 0x19, - 0x19, - 0x09, - 0x21, - 0x21, - 0x4C, - 0x4F, - 0x4F, - 0x23, - 0x7A, - 0x2B, - 0x2F, - 0x2C, - 0x2B, - 0x00, - 0x05, - 0x2A, - 0x00, - 0x62, - 0x26, - 0x2A, - 0x2A, - 0x2B, - 0x7A, - 0x5F, - 0x28, - 0x21, - 0x45, - 0x75, - 0x4D, - 0x66, - 0x5B, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x29, - 0x2E, - 0x2E, - 0x27, - 0x38, - 0x4E, - 0x4E, - 0x67, - 0x27, - 0x3A, - 0x4D, - 0x44, - 0x63, - 0x7C, - 0x7C, - 0x5F, - 0x7A, - 0x7A, - 0x2F, - 0x2C, - 0x2A, - 0x2A, - 0x55, - 0x2A, - 0x26, - 0x55, - 0x55, - 0x32, - 0x2A, - 0x8C, - 0x2A, - 0x55, - 0xAB, - 0x2F, - 0x2C, - 0x76, - 0x7A, - 0x76, - 0x7A, - 0x76, - 0x7A, - 0xAB, - 0x2F, - 0x7F, - 0x7F, - 0x7A, - 0x7A, - 0x76, - 0xA5, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x29, - 0x39, - 0x4E, - 0x34, - 0x22, - 0x77, - 0x57, - 0x87, - 0x53, - 0x81, - 0x81, - 0x81, - 0x53, - 0x87, - 0x81, - 0x53, - 0x81, - 0x53, - 0x81, - 0x53, - 0x53, - 0x68, - 0x87, - 0x94, - 0x99, - 0x9B, - 0x9B, - 0xAE, - 0x04, - 0x8E, - 0x00, - 0x07, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x61, - 0x00, - 0x2F, - 0x6E, - 0x3B, - 0x6E, - 0x74, - 0x3B, - 0x74, - 0x42, - 0x34, - 0x33, - 0x33, - 0x33, - 0x4E, - 0x31, - 0x22, - 0x4E, - 0x33, - 0x4E, - 0x33, - 0x4E, - 0x4E, - 0x38, - 0x31, - 0x4E, - 0x38, - 0x22, - 0x38, - 0x4E, - 0x33, - 0x4E, - 0x33, - 0x4E, - 0x33, - 0x4E, - 0x34, - 0x33, - 0x88, - 0x72, - 0x72, - 0x72, - 0x3C, - 0x69, - 0x3C, - 0x6A, - 0x83, - 0x6A, - 0x6A, - 0x77, - 0x00, - 0x06, - 0x6A, - 0x00, - 0x19, - 0x3C, - 0x6A, - 0x6A, - 0x3C, - 0x6A, - 0x3C, - 0x3C, - 0x50, - 0x50, - 0x22, - 0x50, - 0x50, - 0x65, - 0x65, - 0x4B, - 0x22, - 0x65, - 0x65, - 0x6A, - 0x65, - 0x22, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x20, - 0x50, - 0x50, - 0x65, - 0x22, - 0x50, - 0x65, - 0x50, - 0x65, - 0x65, - 0x43, - 0x65, - 0x65, - 0x22, - 0x4B, - 0x62, - 0x65, - 0x65, - 0x62, - 0x62, - 0x4B, - 0x67, - 0x62, - 0x37, - 0x3D, - 0x37, - 0x37, - 0x47, - 0x37, - 0x3E, - 0x37, - 0x3E, - 0x3E, - 0x05, - 0x58, - 0x00, - 0x18, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x3A, - 0x44, - 0x3A, - 0x3A, - 0x51, - 0x51, - 0x44, - 0x51, - 0x63, - 0x54, - 0x51, - 0x51, - 0x54, - 0x54, - 0x7C, - 0x4C, - 0x7C, - 0x7C, - 0x4F, - 0x7C, - 0x08, - 0x7A, - 0x00, - 0x2F, - 0x2F, - 0x7A, - 0x7A, - 0x7A, - 0x41, - 0x41, - 0x4F, - 0x30, - 0x41, - 0x41, - 0x30, - 0x30, - 0x4C, - 0x30, - 0x4C, - 0x4C, - 0x54, - 0x54, - 0x4C, - 0x54, - 0x54, - 0x54, - 0x5C, - 0x51, - 0x54, - 0x51, - 0x5C, - 0x51, - 0x5C, - 0x54, - 0x20, - 0x19, - 0x19, - 0x20, - 0x55, - 0x4C, - 0x4C, - 0x30, - 0x4F, - 0x41, - 0x2F, - 0x2B, - 0x2B, - 0x2C, - 0x2B, - 0x2B, - 0x2C, - 0x00, - 0x07, - 0x2A, - 0x00, - 0x69, - 0x41, - 0x4F, - 0x5F, - 0x28, - 0x64, - 0x64, - 0x4D, - 0x8B, - 0x25, - 0x5A, - 0x5A, - 0x29, - 0x3A, - 0x29, - 0x27, - 0x27, - 0x38, - 0x38, - 0x62, - 0x43, - 0x39, - 0x39, - 0x3A, - 0x3A, - 0x44, - 0x54, - 0x64, - 0x7C, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x2C, - 0x2C, - 0x2C, - 0x2A, - 0x55, - 0x55, - 0x26, - 0x26, - 0x2A, - 0x2A, - 0x2A, - 0x2C, - 0x55, - 0x2B, - 0x7F, - 0x76, - 0x2F, - 0x7A, - 0x76, - 0x76, - 0x76, - 0x2F, - 0x7A, - 0x7A, - 0x7F, - 0x2F, - 0x7F, - 0x7A, - 0x7A, - 0x7A, - 0x89, - 0x64, - 0x4D, - 0x4D, - 0x29, - 0x27, - 0x38, - 0x4B, - 0x6A, - 0x22, - 0x22, - 0x22, - 0x83, - 0x77, - 0x83, - 0x77, - 0x83, - 0x22, - 0x53, - 0x77, - 0x22, - 0x22, - 0x81, - 0x77, - 0x77, - 0x81, - 0x94, - 0x68, - 0x94, - 0x99, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x74, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x33, - 0xBC, - 0xBD, - 0xE9, - 0xA0, - 0xBD, - 0x2E, - 0x43, - 0x4E, - 0x38, - 0x38, - 0x38, - 0xAF, - 0xBD, - 0xBD, - 0xBD, - 0xD0, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x6F, - 0xBC, - 0x4E, - 0x72, - 0x50, - 0x72, - 0x50, - 0x50, - 0x6A, - 0x65, - 0x2E, - 0xD0, - 0xA0, - 0x73, - 0x18, - 0x93, - 0xE5, - 0xAF, - 0x5A, - 0x65, - 0x65, - 0x50, - 0x50, - 0x50, - 0x65, - 0x50, - 0x65, - 0xA8, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0x4B, - 0x62, - 0xA0, - 0xD5, - 0x09, - 0x20, - 0xD5, - 0xD0, - 0x6A, - 0x65, - 0x6A, - 0x6A, - 0x65, - 0x6A, - 0x50, - 0x65, - 0xBE, - 0xBD, - 0xD0, - 0xBD, - 0xA0, - 0x50, - 0x4B, - 0x65, - 0x4B, - 0x66, - 0xBD, - 0xA0, - 0xBD, - 0xBD, - 0x66, - 0x62, - 0x4B, - 0x67, - 0x4B, - 0x67, - 0x3D, - 0x47, - 0x47, - 0x91, - 0xA0, - 0x8C, - 0x20, - 0x19, - 0x73, - 0xAB, - 0xB4, - 0x63, - 0x37, - 0x3E, - 0x58, - 0x58, - 0x58, - 0x3A, - 0x58, - 0x58, - 0x58, - 0x3A, - 0x3A, - 0x44, - 0x58, - 0x44, - 0x44, - 0x51, - 0x44, - 0x51, - 0x5F, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x4C, - 0x64, - 0x4C, - 0x4C, - 0x7C, - 0x4F, - 0x7C, - 0x7A, - 0x4F, - 0x00, - 0x08, - 0x7A, - 0x00, - 0x9C, - 0x41, - 0x41, - 0x4F, - 0x7A, - 0xC0, - 0x70, - 0x73, - 0x20, - 0x92, - 0xC0, - 0x2B, - 0x4C, - 0x4C, - 0x7A, - 0x26, - 0x55, - 0x55, - 0x55, - 0x54, - 0x51, - 0x54, - 0x51, - 0x5C, - 0x51, - 0x48, - 0x48, - 0x48, - 0x95, - 0x19, - 0x19, - 0x09, - 0x93, - 0x54, - 0x28, - 0x28, - 0x4F, - 0x5F, - 0x2B, - 0x2F, - 0x2F, - 0x2B, - 0x70, - 0x7B, - 0x2D, - 0x7B, - 0x70, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x32, - 0x8C, - 0x8C, - 0x8C, - 0x9F, - 0x75, - 0x25, - 0x5A, - 0x3A, - 0x3A, - 0x84, - 0xBE, - 0xB4, - 0xBD, - 0xBD, - 0xBD, - 0x67, - 0x38, - 0x67, - 0x62, - 0x84, - 0x84, - 0x44, - 0x24, - 0x64, - 0xAB, - 0x8C, - 0x95, - 0x20, - 0x09, - 0x60, - 0x2D, - 0x70, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x2A, - 0x2C, - 0x2A, - 0x2A, - 0x32, - 0x70, - 0x70, - 0x85, - 0x70, - 0x2C, - 0x7A, - 0x5F, - 0x7A, - 0x5F, - 0x7A, - 0x76, - 0x55, - 0x70, - 0x70, - 0x85, - 0x85, - 0x5F, - 0x7A, - 0x7C, - 0x89, - 0x91, - 0x63, - 0x3A, - 0xA7, - 0xA0, - 0xDE, - 0xE5, - 0xBD, - 0xD0, - 0x83, - 0x6A, - 0x83, - 0x22, - 0x6A, - 0xBE, - 0xD0, - 0x9F, - 0x93, - 0x20, - 0x20, - 0xD5, - 0xD0, - 0xA7, - 0x57, - 0x77, - 0x53, - 0x53, - 0x68, - 0x7E, - 0x7E, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x18, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x34, - 0x34, - 0x33, - 0x33, - 0xBD, - 0x19, - 0x19, - 0x19, - 0x18, - 0x38, - 0x62, - 0x38, - 0x67, - 0x67, - 0x39, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x04, - 0x67, - 0x00, - 0x11, - 0x38, - 0x67, - 0x19, - 0x19, - 0x19, - 0x18, - 0xA0, - 0x38, - 0x62, - 0x43, - 0x62, - 0x65, - 0x43, - 0x62, - 0xD5, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x09, - 0x09, - 0x09, - 0xDF, - 0x5A, - 0x65, - 0x65, - 0x62, - 0x65, - 0x65, - 0x65, - 0x9F, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x20, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x18, - 0xA8, - 0x06, - 0x65, - 0x00, - 0x1A, - 0xCC, - 0x19, - 0x19, - 0x09, - 0x18, - 0x4B, - 0x62, - 0x4B, - 0x4B, - 0xBD, - 0x19, - 0x19, - 0x19, - 0x09, - 0xA0, - 0x4B, - 0x67, - 0x3D, - 0x4B, - 0x3D, - 0x47, - 0x91, - 0xCC, - 0x19, - 0x09, - 0x09, - 0x05, - 0x19, - 0x00, - 0x03, - 0x09, - 0xCC, - 0x44, - 0x00, - 0x05, - 0x58, - 0x00, - 0x1A, - 0x3A, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x58, - 0x44, - 0x44, - 0x51, - 0x63, - 0x51, - 0x8C, - 0x19, - 0x19, - 0x19, - 0x20, - 0x89, - 0x54, - 0x54, - 0x7C, - 0x54, - 0x7C, - 0x7C, - 0x4F, - 0x4F, - 0x4F, - 0x04, - 0x7A, - 0x00, - 0x06, - 0x4F, - 0x4F, - 0x4F, - 0x41, - 0x30, - 0x2D, - 0x05, - 0x19, - 0x00, - 0x14, - 0x09, - 0x09, - 0x09, - 0x20, - 0x7A, - 0x2D, - 0x19, - 0x19, - 0x19, - 0x09, - 0x51, - 0x54, - 0x5C, - 0x51, - 0x5C, - 0x51, - 0x48, - 0x48, - 0x48, - 0x09, - 0x04, - 0x19, - 0x00, - 0x09, - 0x4F, - 0x28, - 0x30, - 0x4F, - 0x41, - 0x2F, - 0x2F, - 0x2B, - 0x2B, - 0x00, - 0x05, - 0x19, - 0x00, - 0x1F, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x2F, - 0x92, - 0x19, - 0x19, - 0x19, - 0x20, - 0x63, - 0x44, - 0x25, - 0x27, - 0x3A, - 0x58, - 0xBD, - 0x09, - 0x19, - 0x19, - 0x19, - 0x84, - 0x37, - 0x67, - 0x37, - 0x37, - 0x58, - 0x25, - 0x76, - 0x09, - 0x00, - 0x08, - 0x19, - 0x00, - 0x09, - 0x09, - 0x7B, - 0x2B, - 0x2A, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x7B, - 0x00, - 0x04, - 0x19, - 0x00, - 0x15, - 0x2C, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x4F, - 0x7A, - 0x70, - 0x09, - 0x20, - 0x19, - 0x19, - 0x7A, - 0x4F, - 0x7C, - 0x7C, - 0x54, - 0x4D, - 0xCC, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x05, - 0x6A, - 0x65, - 0x6A, - 0x66, - 0x09, - 0x00, - 0x05, - 0x19, - 0x00, - 0x17, - 0x18, - 0x19, - 0x19, - 0x19, - 0x20, - 0x8B, - 0x69, - 0x53, - 0x87, - 0x68, - 0x99, - 0x7E, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x61, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x31, - 0x6D, - 0x61, - 0x6E, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x33, - 0x4E, - 0xBD, - 0x19, - 0x19, - 0x09, - 0x09, - 0x39, - 0x37, - 0x67, - 0x37, - 0x84, - 0x45, - 0x09, - 0x19, - 0x09, - 0x19, - 0x18, - 0xA5, - 0x37, - 0x67, - 0x67, - 0x37, - 0x39, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x62, - 0x67, - 0x38, - 0x62, - 0x62, - 0x3A, - 0x73, - 0x09, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x09, - 0x19, - 0x19, - 0x18, - 0x18, - 0x75, - 0x05, - 0x4B, - 0x01, - 0xE5, - 0x04, - 0x19, - 0x01, - 0x09, - 0x05, - 0x19, - 0x00, - 0x05, - 0x09, - 0x09, - 0x18, - 0x19, - 0x91, - 0x00, - 0x05, - 0x4B, - 0x00, - 0x0A, - 0xDF, - 0x19, - 0x09, - 0x19, - 0x09, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x0F, - 0xA0, - 0x37, - 0x47, - 0x47, - 0x3E, - 0x47, - 0x91, - 0x18, - 0x19, - 0x19, - 0x18, - 0x19, - 0x19, - 0x19, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x21, - 0x93, - 0x63, - 0x3E, - 0x58, - 0x37, - 0x58, - 0x84, - 0x58, - 0x3A, - 0x3A, - 0x58, - 0x58, - 0x44, - 0x51, - 0x58, - 0x51, - 0x51, - 0x2C, - 0x09, - 0x09, - 0x19, - 0x20, - 0x41, - 0x5C, - 0x7C, - 0x4C, - 0x7C, - 0x4C, - 0x7C, - 0x7C, - 0x7C, - 0x4F, - 0x7C, - 0x00, - 0x05, - 0x4F, - 0x00, - 0x05, - 0x30, - 0x4C, - 0x32, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x14, - 0x09, - 0x09, - 0x19, - 0x19, - 0x09, - 0x20, - 0x19, - 0x19, - 0x09, - 0x09, - 0x54, - 0x48, - 0x51, - 0x54, - 0x51, - 0x5C, - 0x48, - 0x48, - 0x2F, - 0x09, - 0x04, - 0x19, - 0x00, - 0x09, - 0x26, - 0x30, - 0x30, - 0x4F, - 0x4F, - 0x41, - 0x41, - 0x2B, - 0x2B, - 0x00, - 0x05, - 0x19, - 0x01, - 0x2A, - 0x04, - 0x2B, - 0x00, - 0x18, - 0x41, - 0x60, - 0x19, - 0x19, - 0x19, - 0x09, - 0x63, - 0x44, - 0x4D, - 0x25, - 0x84, - 0x84, - 0xB4, - 0x09, - 0x19, - 0x19, - 0x19, - 0x67, - 0x37, - 0x37, - 0x37, - 0x58, - 0x25, - 0xCC, - 0x09, - 0x19, - 0x00, - 0x04, - 0x09, - 0x09, - 0x20, - 0x73, - 0x04, - 0x2B, - 0x01, - 0x2C, - 0x01, - 0x2D, - 0x04, - 0x19, - 0x00, - 0x1D, - 0x2F, - 0x7A, - 0x7A, - 0x4F, - 0x4F, - 0x7A, - 0x7A, - 0x85, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4F, - 0x28, - 0x4F, - 0x7C, - 0x63, - 0xA0, - 0x09, - 0x09, - 0x19, - 0x19, - 0x18, - 0x19, - 0x19, - 0x4B, - 0x65, - 0x66, - 0x09, - 0x00, - 0x05, - 0x19, - 0x01, - 0x20, - 0x01, - 0x18, - 0x04, - 0x19, - 0x00, - 0x09, - 0x09, - 0x8B, - 0x77, - 0x53, - 0x98, - 0x8F, - 0xA2, - 0x7E, - 0x9B, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x05, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x07, - 0x61, - 0x00, - 0x09, - 0x3B, - 0x74, - 0x74, - 0x42, - 0x33, - 0x33, - 0x4E, - 0x4E, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x01, - 0x67, - 0x04, - 0x37, - 0x00, - 0x08, - 0x7F, - 0x19, - 0x09, - 0x19, - 0x19, - 0x19, - 0x9F, - 0x58, - 0x04, - 0x37, - 0x00, - 0x1F, - 0x09, - 0x19, - 0x19, - 0x20, - 0xA0, - 0x37, - 0x37, - 0x3D, - 0x67, - 0x4B, - 0x73, - 0x19, - 0x19, - 0x09, - 0x09, - 0x19, - 0x20, - 0xD5, - 0x93, - 0x09, - 0x09, - 0x18, - 0x18, - 0x19, - 0x19, - 0x3D, - 0x4B, - 0x3D, - 0x67, - 0x4B, - 0x2C, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x09, - 0x09, - 0x20, - 0xCC, - 0x85, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x75, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0xCC, - 0x20, - 0x09, - 0x09, - 0x09, - 0x47, - 0x47, - 0x3D, - 0x47, - 0xB4, - 0x04, - 0x19, - 0x01, - 0x7F, - 0x04, - 0x47, - 0x01, - 0x64, - 0x04, - 0x19, - 0x00, - 0x06, - 0x18, - 0x8C, - 0x7A, - 0x63, - 0x76, - 0x85, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x7B, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x51, - 0x58, - 0x44, - 0x3F, - 0x51, - 0x48, - 0xAB, - 0x09, - 0x19, - 0x09, - 0x09, - 0x7C, - 0x51, - 0x4C, - 0x54, - 0x64, - 0x04, - 0x7C, - 0x00, - 0x15, - 0x89, - 0x4F, - 0x7C, - 0x7C, - 0x4F, - 0x4F, - 0x30, - 0x30, - 0x30, - 0x20, - 0x09, - 0x09, - 0x19, - 0x19, - 0x92, - 0x2A, - 0x30, - 0x41, - 0x26, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x09, - 0x5C, - 0x51, - 0x51, - 0x48, - 0x48, - 0x51, - 0x51, - 0x48, - 0x7B, - 0x09, - 0x00, - 0x05, - 0x19, - 0x01, - 0x4C, - 0x01, - 0x30, - 0x04, - 0x41, - 0x00, - 0x03, - 0x2B, - 0x2B, - 0x18, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1C, - 0x2B, - 0x2B, - 0x2A, - 0x2B, - 0x2B, - 0x41, - 0x60, - 0x18, - 0x19, - 0x19, - 0x19, - 0x24, - 0x24, - 0x44, - 0x3A, - 0x58, - 0x37, - 0xBD, - 0x09, - 0x09, - 0x19, - 0x19, - 0x3E, - 0x37, - 0x37, - 0x3E, - 0x58, - 0x2C, - 0x04, - 0x19, - 0x00, - 0x06, - 0x20, - 0xC0, - 0x2A, - 0x2B, - 0x26, - 0x60, - 0x04, - 0x09, - 0x00, - 0x06, - 0x95, - 0x2B, - 0x2C, - 0x41, - 0x41, - 0x2D, - 0x04, - 0x09, - 0x00, - 0x12, - 0x2B, - 0x4F, - 0x4F, - 0x4F, - 0x5F, - 0x41, - 0x7A, - 0x2D, - 0x09, - 0x09, - 0x19, - 0x09, - 0x4F, - 0x28, - 0x4C, - 0x64, - 0x54, - 0xCC, - 0x04, - 0x19, - 0x00, - 0x10, - 0x18, - 0x18, - 0x20, - 0x65, - 0x4B, - 0x20, - 0x19, - 0x09, - 0x19, - 0x09, - 0x45, - 0x4B, - 0x4B, - 0x4B, - 0x91, - 0xCC, - 0x04, - 0x19, - 0x00, - 0x10, - 0x22, - 0x81, - 0x87, - 0x68, - 0x7E, - 0xAE, - 0xAD, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x33, - 0x4E, - 0x38, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x26, - 0x3E, - 0x37, - 0x37, - 0x3E, - 0x58, - 0x18, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x37, - 0x3E, - 0x3E, - 0x37, - 0x58, - 0x09, - 0x09, - 0x19, - 0x09, - 0xBD, - 0x37, - 0x37, - 0x37, - 0x47, - 0xA0, - 0x18, - 0x09, - 0x09, - 0x19, - 0x93, - 0x75, - 0x3D, - 0x4B, - 0x3D, - 0x44, - 0xCC, - 0x04, - 0x19, - 0x00, - 0x06, - 0xD5, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x9F, - 0x04, - 0x19, - 0x01, - 0x73, - 0x01, - 0x63, - 0x04, - 0x3D, - 0x00, - 0x0B, - 0xCC, - 0x20, - 0x19, - 0x19, - 0x19, - 0x85, - 0x3D, - 0x47, - 0x47, - 0x3D, - 0xCC, - 0x00, - 0x04, - 0x09, - 0x04, - 0x47, - 0x01, - 0xA0, - 0x04, - 0x19, - 0x01, - 0xB4, - 0x04, - 0x40, - 0x00, - 0x25, - 0x93, - 0x19, - 0x19, - 0x19, - 0x09, - 0x7C, - 0x3F, - 0x3F, - 0x40, - 0x3F, - 0x3F, - 0x89, - 0x18, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x58, - 0x3E, - 0x58, - 0x84, - 0x84, - 0x84, - 0x58, - 0x3A, - 0x84, - 0x58, - 0x51, - 0x44, - 0x51, - 0x51, - 0x55, - 0x09, - 0x09, - 0x09, - 0x20, - 0x4C, - 0x00, - 0x04, - 0x54, - 0x00, - 0x19, - 0x4C, - 0x54, - 0x7C, - 0x4C, - 0x4C, - 0x7C, - 0x7C, - 0x30, - 0x4C, - 0x7C, - 0x4C, - 0x7C, - 0x55, - 0x09, - 0x09, - 0x09, - 0x19, - 0x92, - 0x5C, - 0x5C, - 0x5C, - 0x4C, - 0x5C, - 0x5C, - 0x95, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x09, - 0x5C, - 0x5C, - 0x5C, - 0x51, - 0x48, - 0x5C, - 0x48, - 0x48, - 0x09, - 0x09, - 0x00, - 0x05, - 0x19, - 0x00, - 0x09, - 0x2A, - 0x30, - 0x4F, - 0x41, - 0x2F, - 0x2B, - 0x41, - 0x41, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x27, - 0x2B, - 0x2B, - 0x41, - 0x2B, - 0x41, - 0x2B, - 0x92, - 0x18, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x63, - 0x44, - 0x44, - 0x25, - 0x58, - 0x7F, - 0x20, - 0x09, - 0x19, - 0x19, - 0x3E, - 0x3E, - 0x3E, - 0x3F, - 0x45, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x41, - 0x30, - 0x30, - 0x4F, - 0x41, - 0x41, - 0x60, - 0x00, - 0x04, - 0x09, - 0x00, - 0x05, - 0x2A, - 0x41, - 0x2B, - 0x2B, - 0x2D, - 0x00, - 0x04, - 0x09, - 0x01, - 0x2B, - 0x06, - 0x4F, - 0x00, - 0x33, - 0x2D, - 0x18, - 0x09, - 0x09, - 0x09, - 0x4C, - 0x30, - 0x7C, - 0x4C, - 0x44, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x45, - 0x4B, - 0x4B, - 0x4B, - 0xA7, - 0x09, - 0x09, - 0x09, - 0x19, - 0x75, - 0x4B, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0x84, - 0x09, - 0x19, - 0x19, - 0x19, - 0xD0, - 0x69, - 0x87, - 0x94, - 0x8F, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x09, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x61, - 0x3B, - 0x3B, - 0x74, - 0x33, - 0x34, - 0x4E, - 0x4E, - 0x38, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0D, - 0x3E, - 0x37, - 0x58, - 0x3E, - 0x64, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x89, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x0A, - 0x19, - 0x09, - 0x09, - 0x09, - 0x7F, - 0x58, - 0x47, - 0x3E, - 0x47, - 0x18, - 0x04, - 0x19, - 0x01, - 0x91, - 0x04, - 0x3D, - 0x00, - 0x07, - 0x4B, - 0x63, - 0x20, - 0x19, - 0x19, - 0x19, - 0x20, - 0x00, - 0x04, - 0x47, - 0x01, - 0x9F, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x40, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x58, - 0x3D, - 0x3D, - 0x40, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x18, - 0x47, - 0x47, - 0x47, - 0x40, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x0A, - 0x2F, - 0x40, - 0x40, - 0x40, - 0x7C, - 0x18, - 0x19, - 0x19, - 0x19, - 0x9F, - 0x07, - 0x3F, - 0x00, - 0x1F, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x7B, - 0x58, - 0x47, - 0x37, - 0x84, - 0x58, - 0x84, - 0x58, - 0x84, - 0x58, - 0x44, - 0x3E, - 0x51, - 0x51, - 0x51, - 0x2A, - 0x20, - 0x19, - 0x19, - 0x19, - 0x28, - 0x5C, - 0x4C, - 0x51, - 0x54, - 0x54, - 0x54, - 0x00, - 0x07, - 0x7C, - 0x00, - 0x0A, - 0x4C, - 0x7C, - 0x4C, - 0x55, - 0x19, - 0x19, - 0x09, - 0x18, - 0x2B, - 0x30, - 0x06, - 0x5C, - 0x00, - 0x06, - 0x60, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x06, - 0x48, - 0x00, - 0x10, - 0x7F, - 0x18, - 0x19, - 0x20, - 0x93, - 0x19, - 0x09, - 0x09, - 0x2D, - 0x41, - 0x30, - 0x41, - 0x41, - 0x41, - 0x2B, - 0x2B, - 0x04, - 0x19, - 0x00, - 0x13, - 0x20, - 0x2B, - 0x2B, - 0x41, - 0x2B, - 0x2B, - 0x41, - 0x92, - 0x19, - 0x09, - 0x18, - 0x18, - 0x4C, - 0x54, - 0x54, - 0x51, - 0x25, - 0x58, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x05, - 0x3E, - 0x3F, - 0x58, - 0x3F, - 0x9F, - 0x00, - 0x04, - 0x19, - 0x01, - 0x41, - 0x05, - 0x30, - 0x00, - 0x2E, - 0x41, - 0x41, - 0x19, - 0x20, - 0x09, - 0x09, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x19, - 0x09, - 0x19, - 0x19, - 0x2F, - 0x4F, - 0x4F, - 0x4F, - 0x28, - 0x4F, - 0x41, - 0x85, - 0x19, - 0x19, - 0x09, - 0x09, - 0x30, - 0x4C, - 0x54, - 0x4C, - 0x44, - 0x18, - 0x19, - 0x19, - 0x09, - 0x20, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0xA0, - 0x20, - 0x18, - 0x18, - 0x93, - 0x07, - 0x3D, - 0x04, - 0x19, - 0x00, - 0x10, - 0xD0, - 0x77, - 0x53, - 0x68, - 0x99, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x3B, - 0x6E, - 0x74, - 0x74, - 0x34, - 0x33, - 0x4E, - 0x38, - 0x67, - 0xBD, - 0x04, - 0x19, - 0x00, - 0x05, - 0x3E, - 0x3E, - 0x3F, - 0x40, - 0xAB, - 0x00, - 0x04, - 0x09, - 0x00, - 0x11, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x3E, - 0x40, - 0x3E, - 0x40, - 0x19, - 0x09, - 0x09, - 0x19, - 0x7F, - 0x3E, - 0x3E, - 0x37, - 0x89, - 0x00, - 0x04, - 0x19, - 0x00, - 0x12, - 0xCC, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0xB4, - 0x19, - 0x19, - 0x19, - 0x09, - 0xA0, - 0x40, - 0x47, - 0x47, - 0xAB, - 0x04, - 0x19, - 0x01, - 0x47, - 0x01, - 0x47, - 0x05, - 0x3D, - 0x00, - 0x0E, - 0xA0, - 0x19, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x40, - 0x40, - 0x47, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x18, - 0x04, - 0x40, - 0x00, - 0x0F, - 0x7F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x40, - 0x3F, - 0x40, - 0x8C, - 0x09, - 0x19, - 0x19, - 0x18, - 0x54, - 0x00, - 0x08, - 0x3F, - 0x00, - 0x1E, - 0x40, - 0x40, - 0x40, - 0x47, - 0x3E, - 0x58, - 0x58, - 0x58, - 0x84, - 0x84, - 0x84, - 0x58, - 0x58, - 0x58, - 0x44, - 0x3F, - 0x51, - 0x48, - 0xAB, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x5C, - 0x5C, - 0x54, - 0x54, - 0x54, - 0x63, - 0x04, - 0x54, - 0x00, - 0x0C, - 0x4C, - 0x54, - 0x54, - 0x4C, - 0x4C, - 0x4C, - 0x26, - 0x19, - 0x09, - 0x09, - 0x09, - 0x2A, - 0x07, - 0x5C, - 0x00, - 0x11, - 0x60, - 0x18, - 0x19, - 0x09, - 0x09, - 0x5C, - 0x48, - 0x5C, - 0x51, - 0x51, - 0x48, - 0x48, - 0x93, - 0x18, - 0x19, - 0x19, - 0x41, - 0x00, - 0x04, - 0x19, - 0x01, - 0x30, - 0x06, - 0x41, - 0x05, - 0x19, - 0x00, - 0x07, - 0x2B, - 0x41, - 0x1D, - 0x41, - 0x41, - 0x41, - 0x92, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0x30, - 0x54, - 0x54, - 0x24, - 0x51, - 0x25, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x11, - 0x3E, - 0x40, - 0x3F, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x20, - 0x4C, - 0x4C, - 0x30, - 0x30, - 0x41, - 0x41, - 0x30, - 0x30, - 0x00, - 0x08, - 0x41, - 0x00, - 0x1E, - 0x32, - 0x09, - 0x09, - 0x19, - 0x19, - 0x2B, - 0x30, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x41, - 0x32, - 0x19, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x30, - 0x4C, - 0x54, - 0x5C, - 0x18, - 0x19, - 0x19, - 0x09, - 0x73, - 0x47, - 0x3D, - 0x3D, - 0x04, - 0x4B, - 0x00, - 0x09, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x47, - 0x47, - 0x3D, - 0x63, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0xD0, - 0x22, - 0x81, - 0x9E, - 0x8F, - 0x7E, - 0x9B, - 0x00, - 0x06, - 0x8E, - 0x00, - 0x03, - 0xCB, - 0xCB, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x0A, - 0x3B, - 0x6E, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x38, - 0x67, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x1F, - 0x3E, - 0x3F, - 0x3F, - 0x3E, - 0x20, - 0x09, - 0x09, - 0x09, - 0x24, - 0x09, - 0x09, - 0x19, - 0x09, - 0x3E, - 0x3F, - 0x3E, - 0x25, - 0x19, - 0x09, - 0x09, - 0x19, - 0x7F, - 0x3E, - 0x3E, - 0x3E, - 0x7F, - 0x19, - 0x09, - 0x19, - 0x19, - 0x7F, - 0x00, - 0x06, - 0x3D, - 0x00, - 0x0B, - 0x47, - 0xA5, - 0x09, - 0x19, - 0x19, - 0x09, - 0x76, - 0x3D, - 0x40, - 0x3D, - 0x2C, - 0x00, - 0x04, - 0x19, - 0x00, - 0x2A, - 0x47, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x36, - 0x19, - 0x19, - 0x19, - 0x09, - 0x76, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x20, - 0x19, - 0x19, - 0x18, - 0x40, - 0x40, - 0x47, - 0x40, - 0xA0, - 0x19, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x40, - 0x40, - 0x3F, - 0x09, - 0x09, - 0x19, - 0x19, - 0x18, - 0x40, - 0x40, - 0x48, - 0x08, - 0x3F, - 0x00, - 0x09, - 0x3E, - 0x3E, - 0x3E, - 0x37, - 0x84, - 0x47, - 0x84, - 0x37, - 0x84, - 0x00, - 0x04, - 0x58, - 0x00, - 0x09, - 0x51, - 0x3F, - 0x48, - 0x55, - 0x09, - 0x19, - 0x19, - 0x20, - 0x30, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x0E, - 0x54, - 0x5C, - 0x54, - 0x63, - 0x54, - 0x64, - 0x54, - 0x4C, - 0x7C, - 0x54, - 0x4C, - 0x5C, - 0x4C, - 0x93, - 0x04, - 0x09, - 0x01, - 0x30, - 0x06, - 0x5C, - 0x01, - 0x92, - 0x04, - 0x19, - 0x01, - 0x5C, - 0x05, - 0x48, - 0x00, - 0x0C, - 0x30, - 0x19, - 0x19, - 0x19, - 0x20, - 0x5C, - 0x7B, - 0x19, - 0x19, - 0x19, - 0x26, - 0x30, - 0x05, - 0x41, - 0x01, - 0x20, - 0x04, - 0x19, - 0x01, - 0x2B, - 0x05, - 0x41, - 0x00, - 0x0C, - 0x92, - 0x19, - 0x09, - 0x19, - 0x19, - 0x30, - 0x4C, - 0x4C, - 0x48, - 0x24, - 0x51, - 0x7F, - 0x04, - 0x19, - 0x04, - 0x3F, - 0x04, - 0x19, - 0x01, - 0x2D, - 0x04, - 0x4C, - 0x01, - 0x30, - 0x0B, - 0x41, - 0x00, - 0x0D, - 0x32, - 0x09, - 0x09, - 0x19, - 0x19, - 0x2B, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x4F, - 0x4F, - 0x2D, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0F, - 0x30, - 0x4C, - 0x54, - 0x54, - 0x51, - 0x09, - 0x19, - 0x19, - 0x09, - 0x60, - 0x47, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x00, - 0x04, - 0x4B, - 0x00, - 0x1B, - 0x3D, - 0x47, - 0x3D, - 0x3E, - 0xA0, - 0x85, - 0x18, - 0x09, - 0x09, - 0x19, - 0x19, - 0xD0, - 0x81, - 0x53, - 0x68, - 0x8F, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x3B, - 0x3B, - 0x34, - 0x34, - 0x33, - 0x43, - 0x38, - 0x67, - 0xBD, - 0x04, - 0x19, - 0x00, - 0x35, - 0x3F, - 0x3E, - 0x3F, - 0x24, - 0x09, - 0x19, - 0x19, - 0x95, - 0x3F, - 0x20, - 0x09, - 0x19, - 0x19, - 0x54, - 0x3F, - 0x3E, - 0x3F, - 0x19, - 0x19, - 0x09, - 0x20, - 0x7F, - 0x3E, - 0x40, - 0x3E, - 0x7F, - 0x20, - 0x09, - 0x19, - 0x19, - 0xA5, - 0x47, - 0x47, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x3D, - 0x3E, - 0x09, - 0x19, - 0x19, - 0x19, - 0x9F, - 0x40, - 0x40, - 0x40, - 0x9F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x47, - 0x00, - 0x06, - 0x3D, - 0x00, - 0x0E, - 0x37, - 0x19, - 0x19, - 0x19, - 0x09, - 0x8C, - 0x40, - 0x40, - 0x40, - 0x85, - 0x09, - 0x09, - 0x19, - 0x09, - 0x04, - 0x40, - 0x01, - 0x2F, - 0x04, - 0x19, - 0x00, - 0x04, - 0x2F, - 0x3F, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x2E, - 0x09, - 0x54, - 0x48, - 0x5C, - 0x51, - 0x5C, - 0x51, - 0x54, - 0x51, - 0x24, - 0x51, - 0x63, - 0x51, - 0x63, - 0x58, - 0x3E, - 0x37, - 0x84, - 0x37, - 0x84, - 0x84, - 0x84, - 0x58, - 0x58, - 0x51, - 0x3F, - 0x51, - 0x51, - 0x2C, - 0x09, - 0x19, - 0x19, - 0x09, - 0x30, - 0x48, - 0x5C, - 0x48, - 0x54, - 0x54, - 0x5C, - 0x54, - 0x5C, - 0x54, - 0x54, - 0x64, - 0x5C, - 0x05, - 0x54, - 0x00, - 0x08, - 0x85, - 0x20, - 0x09, - 0x19, - 0x09, - 0x09, - 0x2A, - 0x30, - 0x04, - 0x5C, - 0x00, - 0x06, - 0x92, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x05, - 0x48, - 0x00, - 0x11, - 0xAB, - 0x18, - 0x19, - 0x19, - 0x2D, - 0x5C, - 0x26, - 0x19, - 0x19, - 0x19, - 0x95, - 0x41, - 0x1F, - 0x41, - 0x41, - 0x41, - 0x1D, - 0x00, - 0x05, - 0x19, - 0x05, - 0x41, - 0x00, - 0x0D, - 0x30, - 0x92, - 0x19, - 0x19, - 0x19, - 0x93, - 0x30, - 0x30, - 0x4C, - 0x30, - 0x5C, - 0x51, - 0xB4, - 0x00, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3E, - 0x40, - 0x3F, - 0x4F, - 0x04, - 0x19, - 0x00, - 0x03, - 0x26, - 0x30, - 0x30, - 0x00, - 0x06, - 0x41, - 0x00, - 0x04, - 0x2B, - 0x41, - 0x2B, - 0x2B, - 0x04, - 0x41, - 0x00, - 0x0D, - 0x26, - 0x09, - 0x19, - 0x19, - 0x19, - 0x41, - 0x4F, - 0x4F, - 0x30, - 0x4F, - 0x30, - 0x30, - 0x32, - 0x00, - 0x04, - 0x19, - 0x00, - 0x18, - 0x30, - 0x4C, - 0x54, - 0x54, - 0x51, - 0x09, - 0x09, - 0x19, - 0x19, - 0x73, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x45, - 0xA0, - 0x60, - 0x19, - 0x19, - 0x06, - 0x09, - 0x00, - 0x10, - 0x29, - 0x53, - 0x53, - 0x87, - 0x7E, - 0xA2, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x29, - 0xA6, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x34, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0xBD, - 0x09, - 0x19, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x3F, - 0x2C, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x3F, - 0x7F, - 0x19, - 0x19, - 0x18, - 0xB4, - 0x3F, - 0x3F, - 0x3F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x7F, - 0x3F, - 0x3E, - 0x3E, - 0x7F, - 0x19, - 0x19, - 0x19, - 0x09, - 0x44, - 0x47, - 0x00, - 0x06, - 0x3D, - 0x01, - 0x47, - 0x04, - 0x19, - 0x00, - 0x0A, - 0x9F, - 0x40, - 0x47, - 0x40, - 0x55, - 0x19, - 0x19, - 0x19, - 0x93, - 0x40, - 0x07, - 0x3D, - 0x04, - 0x19, - 0x00, - 0x0E, - 0xCC, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x20, - 0x40, - 0x40, - 0x40, - 0x47, - 0x2F, - 0x04, - 0x19, - 0x00, - 0x04, - 0x7F, - 0x3F, - 0x3F, - 0x3F, - 0x08, - 0x19, - 0x01, - 0x09, - 0x01, - 0x09, - 0x06, - 0x19, - 0x00, - 0x17, - 0x18, - 0x18, - 0x36, - 0x58, - 0x47, - 0x37, - 0x67, - 0x37, - 0x84, - 0x58, - 0x84, - 0x58, - 0x51, - 0x58, - 0x3F, - 0x48, - 0x55, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x48, - 0x00, - 0x05, - 0x5C, - 0x00, - 0x04, - 0x54, - 0x5C, - 0x54, - 0x51, - 0x07, - 0x54, - 0x00, - 0x0B, - 0x5C, - 0x7B, - 0x09, - 0x09, - 0x19, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x60, - 0x00, - 0x05, - 0x19, - 0x01, - 0x20, - 0x01, - 0x5C, - 0x05, - 0x48, - 0x00, - 0x0B, - 0x09, - 0x19, - 0x19, - 0x19, - 0x2B, - 0x30, - 0x30, - 0x20, - 0x19, - 0x19, - 0x19, - 0x00, - 0x06, - 0x41, - 0x00, - 0x12, - 0x19, - 0x19, - 0x19, - 0x18, - 0x20, - 0x41, - 0x41, - 0x30, - 0x41, - 0x41, - 0x1F, - 0x95, - 0x18, - 0x19, - 0x19, - 0x19, - 0x30, - 0x30, - 0x04, - 0x5C, - 0x01, - 0xAB, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3F, - 0x3F, - 0x3F, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x06, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x07, - 0x19, - 0x00, - 0x05, - 0x18, - 0x41, - 0x30, - 0x41, - 0x32, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1F, - 0x41, - 0x30, - 0x30, - 0x4F, - 0x30, - 0x4F, - 0x41, - 0x8C, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4C, - 0x4C, - 0x4C, - 0x5C, - 0x51, - 0x19, - 0x19, - 0x09, - 0x09, - 0x60, - 0x47, - 0x3D, - 0x4B, - 0x3D, - 0x4B, - 0x3D, - 0x4B, - 0xA0, - 0x09, - 0x00, - 0x05, - 0x19, - 0x00, - 0x16, - 0x09, - 0x09, - 0x09, - 0x18, - 0x18, - 0x66, - 0x83, - 0x77, - 0x87, - 0x68, - 0x8F, - 0x7E, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x05, - 0x61, - 0x00, - 0x24, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x6E, - 0x74, - 0x34, - 0x34, - 0x4E, - 0x4E, - 0x62, - 0x37, - 0x7F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x3F, - 0x93, - 0x19, - 0x09, - 0x09, - 0x24, - 0x3F, - 0x21, - 0x19, - 0x19, - 0x19, - 0x95, - 0x3F, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x05, - 0x7F, - 0x40, - 0x3F, - 0x3F, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x12, - 0x63, - 0x47, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x47, - 0x37, - 0x18, - 0x19, - 0x19, - 0x19, - 0x8C, - 0x40, - 0x40, - 0x40, - 0xAB, - 0x04, - 0x19, - 0x08, - 0x3D, - 0x04, - 0x19, - 0x00, - 0x05, - 0xCC, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x00, - 0x04, - 0x19, - 0x04, - 0x40, - 0x01, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x05, - 0x7F, - 0x3F, - 0x3F, - 0x3F, - 0x60, - 0x00, - 0x07, - 0x19, - 0x01, - 0x09, - 0x01, - 0x09, - 0x08, - 0x19, - 0x00, - 0x10, - 0x91, - 0x47, - 0x37, - 0x67, - 0x84, - 0x67, - 0x37, - 0x84, - 0x58, - 0x58, - 0x40, - 0x51, - 0x51, - 0x51, - 0x2C, - 0x09, - 0x04, - 0x19, - 0x04, - 0x09, - 0x00, - 0x18, - 0x20, - 0x73, - 0x26, - 0x9F, - 0x4F, - 0x54, - 0x5C, - 0x54, - 0x54, - 0x48, - 0x54, - 0x5C, - 0x5C, - 0x54, - 0x5C, - 0x2F, - 0x60, - 0x19, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x20, - 0x05, - 0x19, - 0x00, - 0x13, - 0x09, - 0x48, - 0x48, - 0x5C, - 0x3F, - 0x48, - 0x4F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x5C, - 0x5C, - 0x30, - 0x20, - 0x19, - 0x19, - 0x19, - 0x2D, - 0x00, - 0x05, - 0x41, - 0x05, - 0x19, - 0x00, - 0x07, - 0x41, - 0x1F, - 0x41, - 0x41, - 0x30, - 0x41, - 0x95, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0x30, - 0x30, - 0x30, - 0x5C, - 0x30, - 0x48, - 0x55, - 0x00, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3F, - 0x3F, - 0x3F, - 0x7A, - 0x04, - 0x19, - 0x00, - 0x09, - 0x18, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x19, - 0x19, - 0x18, - 0x00, - 0x05, - 0x19, - 0x00, - 0x09, - 0x41, - 0x41, - 0x30, - 0x32, - 0x19, - 0x19, - 0x09, - 0x19, - 0x2F, - 0x00, - 0x06, - 0x30, - 0x00, - 0x0F, - 0x32, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4C, - 0x4C, - 0x51, - 0x54, - 0x51, - 0x09, - 0x19, - 0x19, - 0x20, - 0x73, - 0x00, - 0x06, - 0x3D, - 0x01, - 0xCC, - 0x01, - 0x20, - 0x06, - 0x19, - 0x00, - 0x16, - 0x09, - 0x19, - 0x20, - 0xD5, - 0x25, - 0x83, - 0x83, - 0x81, - 0x53, - 0x8F, - 0x7E, - 0xAE, - 0x9B, - 0x9B, - 0xCE, - 0x8E, - 0x8E, - 0x8E, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA6, - 0x61, - 0xA6, - 0x00, - 0x07, - 0x61, - 0x00, - 0x28, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x38, - 0x62, - 0x37, - 0xBD, - 0x09, - 0x09, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x51, - 0x09, - 0x09, - 0x19, - 0x20, - 0x3F, - 0x3F, - 0x3E, - 0x18, - 0x19, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x3F, - 0x3E, - 0x40, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x03, - 0x7F, - 0x47, - 0x47, - 0x00, - 0x05, - 0x3D, - 0x00, - 0x0A, - 0x63, - 0x18, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x40, - 0x40, - 0x40, - 0x9F, - 0x04, - 0x19, - 0x01, - 0x40, - 0x01, - 0x40, - 0x05, - 0x3D, - 0x01, - 0x40, - 0x04, - 0x19, - 0x00, - 0x09, - 0x55, - 0x47, - 0x40, - 0x40, - 0xCC, - 0x20, - 0x19, - 0x19, - 0x18, - 0x00, - 0x04, - 0x40, - 0x01, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x04, - 0x2F, - 0x40, - 0x3F, - 0x3F, - 0x05, - 0x19, - 0x00, - 0x09, - 0x7F, - 0x30, - 0x7F, - 0x7F, - 0x41, - 0x7A, - 0x7F, - 0x7A, - 0xCC, - 0x00, - 0x04, - 0x19, - 0x00, - 0x10, - 0x3E, - 0x47, - 0x47, - 0x84, - 0x67, - 0x37, - 0x37, - 0x84, - 0x37, - 0x58, - 0x44, - 0x3E, - 0x3F, - 0x48, - 0x2C, - 0x09, - 0x0C, - 0x19, - 0x00, - 0x08, - 0x20, - 0x73, - 0x2F, - 0x5C, - 0x54, - 0x48, - 0x5C, - 0x54, - 0x05, - 0x5C, - 0x00, - 0x1F, - 0x4C, - 0x55, - 0x2B, - 0x95, - 0x18, - 0x60, - 0x19, - 0x20, - 0x18, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x48, - 0x48, - 0x3F, - 0x48, - 0x2D, - 0x19, - 0x19, - 0x19, - 0x92, - 0x30, - 0x5C, - 0x30, - 0x26, - 0x19, - 0x19, - 0x18, - 0x93, - 0x00, - 0x05, - 0x41, - 0x01, - 0x20, - 0x04, - 0x19, - 0x00, - 0x12, - 0x41, - 0x30, - 0x30, - 0x41, - 0x30, - 0x30, - 0x92, - 0x19, - 0x19, - 0x19, - 0x20, - 0x30, - 0x5C, - 0x30, - 0x30, - 0x5C, - 0x5C, - 0x2C, - 0x04, - 0x19, - 0x00, - 0x04, - 0x3F, - 0x40, - 0x3F, - 0x5C, - 0x04, - 0x19, - 0x00, - 0x32, - 0x70, - 0x2A, - 0x2A, - 0x26, - 0x2A, - 0x2A, - 0x26, - 0x26, - 0x32, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x30, - 0x41, - 0x41, - 0x32, - 0x19, - 0x19, - 0x19, - 0x09, - 0x7A, - 0x30, - 0x30, - 0x30, - 0x4C, - 0x30, - 0x30, - 0x32, - 0x09, - 0x19, - 0x19, - 0x20, - 0x4C, - 0x5C, - 0x54, - 0x51, - 0x48, - 0x18, - 0x19, - 0x19, - 0x19, - 0x73, - 0x40, - 0x3D, - 0x3D, - 0x3D, - 0x67, - 0x8C, - 0x06, - 0x19, - 0x00, - 0x18, - 0x20, - 0x20, - 0xAB, - 0xA0, - 0x4B, - 0x4B, - 0x65, - 0x6A, - 0x83, - 0x87, - 0x87, - 0x68, - 0x99, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0xAC, - 0xAC, - 0xCB, - 0x00, - 0x00, - 0x01, - 0x61, - 0x01, - 0x4A, - 0x05, - 0x61, - 0x00, - 0x2B, - 0xA6, - 0x6D, - 0x61, - 0x6E, - 0x3B, - 0x74, - 0x74, - 0x88, - 0x31, - 0x38, - 0x38, - 0x39, - 0x7F, - 0x20, - 0x09, - 0x19, - 0x19, - 0x3F, - 0x3F, - 0x7F, - 0x09, - 0x09, - 0x19, - 0xAB, - 0x3F, - 0x3F, - 0x3F, - 0xAB, - 0x19, - 0x19, - 0x19, - 0x2C, - 0x3F, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x3E, - 0x40, - 0x3E, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x12, - 0xB4, - 0x47, - 0x3D, - 0x37, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0x7F, - 0x19, - 0x19, - 0x19, - 0x18, - 0xA0, - 0x47, - 0x40, - 0x47, - 0x2C, - 0x04, - 0x19, - 0x07, - 0x3D, - 0x01, - 0x36, - 0x04, - 0x19, - 0x00, - 0x09, - 0x5F, - 0x40, - 0x40, - 0x40, - 0xCC, - 0x09, - 0x09, - 0x19, - 0x18, - 0x00, - 0x04, - 0x40, - 0x00, - 0x0E, - 0x7F, - 0x19, - 0x19, - 0x09, - 0x19, - 0x2F, - 0x40, - 0x3F, - 0x40, - 0x93, - 0x19, - 0x19, - 0x19, - 0x20, - 0x08, - 0x3F, - 0x00, - 0x15, - 0x8C, - 0x19, - 0x19, - 0x19, - 0x09, - 0x37, - 0x37, - 0x47, - 0x67, - 0x84, - 0x67, - 0x84, - 0x84, - 0x58, - 0x58, - 0x3E, - 0x51, - 0x51, - 0x3F, - 0x2A, - 0x09, - 0x00, - 0x0C, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x09, - 0x09, - 0x7B, - 0x5C, - 0x54, - 0x5C, - 0x51, - 0x51, - 0x5C, - 0x54, - 0x48, - 0x09, - 0x5C, - 0x00, - 0x05, - 0x60, - 0x19, - 0x19, - 0x19, - 0x09, - 0x00, - 0x05, - 0x48, - 0x00, - 0x12, - 0x18, - 0x19, - 0x19, - 0x19, - 0x55, - 0x5C, - 0x30, - 0x30, - 0x41, - 0x19, - 0x19, - 0x18, - 0x19, - 0x2B, - 0x41, - 0x1F, - 0x41, - 0x41, - 0x05, - 0x19, - 0x00, - 0x07, - 0x41, - 0x41, - 0x1F, - 0x30, - 0x1F, - 0x30, - 0x95, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0x30, - 0x30, - 0x30, - 0x5C, - 0x4C, - 0x5C, - 0x2C, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x3F, - 0x3F, - 0x25, - 0x51, - 0x09, - 0x19, - 0x19, - 0x19, - 0x92, - 0x4C, - 0x4C, - 0x00, - 0x04, - 0x30, - 0x00, - 0x10, - 0x41, - 0x30, - 0x19, - 0x19, - 0x19, - 0x09, - 0x60, - 0x41, - 0x30, - 0x30, - 0x26, - 0x19, - 0x19, - 0x19, - 0x09, - 0x41, - 0x06, - 0x30, - 0x00, - 0x33, - 0x32, - 0x19, - 0x19, - 0x19, - 0x18, - 0x4C, - 0x4C, - 0x5C, - 0x5C, - 0x51, - 0x18, - 0x19, - 0x19, - 0x19, - 0x73, - 0x47, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x20, - 0x19, - 0x19, - 0x19, - 0x09, - 0xCC, - 0xB4, - 0x37, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x65, - 0x6A, - 0x6A, - 0x77, - 0x87, - 0x68, - 0x68, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xAC, - 0xAC, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x6D, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x3B, - 0x6E, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x38, - 0x37, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x27, - 0x40, - 0x3F, - 0x2D, - 0x09, - 0x09, - 0x09, - 0x21, - 0x3E, - 0x3E, - 0x3F, - 0x76, - 0x09, - 0x19, - 0x19, - 0xCC, - 0x3F, - 0x48, - 0x19, - 0x19, - 0x19, - 0x20, - 0x7F, - 0x3E, - 0x3E, - 0x3E, - 0x25, - 0x18, - 0x18, - 0x19, - 0x19, - 0x20, - 0x37, - 0x47, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0xCC, - 0x00, - 0x04, - 0x09, - 0x00, - 0x05, - 0x63, - 0x40, - 0x47, - 0x40, - 0x9F, - 0x00, - 0x04, - 0x19, - 0x01, - 0x91, - 0x01, - 0x40, - 0x05, - 0x3D, - 0x01, - 0x9F, - 0x04, - 0x19, - 0x00, - 0x09, - 0x76, - 0x40, - 0x40, - 0x47, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x93, - 0x00, - 0x04, - 0x40, - 0x00, - 0x16, - 0x7F, - 0x19, - 0x19, - 0x09, - 0x09, - 0x2F, - 0x40, - 0x3F, - 0x40, - 0xAB, - 0x19, - 0x09, - 0x09, - 0x09, - 0x5F, - 0x3F, - 0x3F, - 0x40, - 0x3F, - 0x40, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x1B, - 0x7B, - 0x47, - 0x37, - 0x47, - 0x67, - 0x67, - 0x84, - 0x67, - 0x37, - 0x84, - 0x58, - 0x3F, - 0x25, - 0x3F, - 0x48, - 0x55, - 0x09, - 0x19, - 0x19, - 0x19, - 0x18, - 0x18, - 0x60, - 0x19, - 0x19, - 0x19, - 0x18, - 0x00, - 0x04, - 0x19, - 0x00, - 0x18, - 0x09, - 0x09, - 0xC0, - 0x5C, - 0x5C, - 0x51, - 0x5C, - 0x28, - 0x2C, - 0x2F, - 0x2F, - 0x30, - 0x48, - 0x5C, - 0x5C, - 0x48, - 0x48, - 0x5C, - 0x48, - 0x20, - 0x19, - 0x09, - 0x09, - 0x18, - 0x04, - 0x48, - 0x01, - 0x55, - 0x04, - 0x19, - 0x01, - 0x4C, - 0x04, - 0x30, - 0x04, - 0x19, - 0x01, - 0x70, - 0x04, - 0x41, - 0x05, - 0x19, - 0x00, - 0x1B, - 0x2B, - 0x30, - 0x30, - 0x41, - 0x30, - 0x30, - 0x18, - 0x19, - 0x19, - 0x19, - 0x18, - 0x1D, - 0x5C, - 0x5C, - 0x5C, - 0x4C, - 0x5C, - 0x26, - 0x19, - 0x19, - 0x19, - 0x09, - 0x3E, - 0x40, - 0x51, - 0x3F, - 0x95, - 0x00, - 0x04, - 0x09, - 0x00, - 0x03, - 0x5C, - 0x30, - 0x4C, - 0x00, - 0x04, - 0x30, - 0x00, - 0x0A, - 0x2B, - 0x09, - 0x09, - 0x19, - 0x09, - 0x2D, - 0x30, - 0x41, - 0x41, - 0x2D, - 0x04, - 0x19, - 0x01, - 0x2A, - 0x04, - 0x30, - 0x00, - 0x12, - 0x4C, - 0x30, - 0x95, - 0x19, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x54, - 0x54, - 0x5C, - 0x51, - 0x19, - 0x19, - 0x19, - 0x09, - 0x60, - 0x40, - 0x04, - 0x3D, - 0x00, - 0x05, - 0x19, - 0x19, - 0x19, - 0x09, - 0x2C, - 0x00, - 0x05, - 0x3D, - 0x00, - 0x15, - 0x4B, - 0x4B, - 0x65, - 0x83, - 0x22, - 0x81, - 0x53, - 0x8F, - 0x7E, - 0x7E, - 0xAD, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x61, - 0x00, - 0x0D, - 0xA6, - 0x61, - 0x6E, - 0x61, - 0x74, - 0x74, - 0x74, - 0x33, - 0x4E, - 0x62, - 0x38, - 0x37, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x48, - 0x48, - 0x93, - 0x09, - 0x09, - 0x09, - 0x05, - 0x3E, - 0x00, - 0x06, - 0x09, - 0x19, - 0x19, - 0x09, - 0x3F, - 0x3F, - 0x04, - 0x19, - 0x00, - 0x11, - 0x7F, - 0x3F, - 0x3E, - 0x3E, - 0x47, - 0xCC, - 0x09, - 0x19, - 0x19, - 0x09, - 0xC0, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x3D, - 0xA5, - 0x00, - 0x04, - 0x09, - 0x00, - 0x06, - 0x93, - 0x47, - 0x3D, - 0x40, - 0x40, - 0xAB, - 0x05, - 0x19, - 0x00, - 0x07, - 0x63, - 0x47, - 0x47, - 0x47, - 0x3D, - 0x63, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1C, - 0x58, - 0x47, - 0x47, - 0x47, - 0xCC, - 0x19, - 0x09, - 0x19, - 0x19, - 0x40, - 0x40, - 0x47, - 0x40, - 0x76, - 0x09, - 0x19, - 0x09, - 0x09, - 0x7F, - 0x40, - 0x40, - 0x40, - 0x51, - 0x19, - 0x09, - 0x09, - 0x09, - 0x85, - 0x06, - 0x3F, - 0x00, - 0x15, - 0x5F, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x37, - 0x3D, - 0x67, - 0x4B, - 0x67, - 0x67, - 0x84, - 0x67, - 0x37, - 0x58, - 0x58, - 0x51, - 0x3F, - 0x51, - 0x7F, - 0x00, - 0x04, - 0x19, - 0x01, - 0x30, - 0x04, - 0x48, - 0x00, - 0x31, - 0x5C, - 0x4C, - 0x55, - 0x93, - 0x09, - 0x19, - 0x09, - 0x09, - 0x09, - 0x28, - 0x5C, - 0x51, - 0x5C, - 0xAB, - 0x20, - 0x09, - 0x19, - 0x73, - 0x5C, - 0x48, - 0x5C, - 0x48, - 0x5C, - 0x48, - 0x48, - 0x20, - 0x19, - 0x19, - 0x09, - 0x09, - 0x48, - 0x3F, - 0x48, - 0x3F, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x20, - 0x4C, - 0x4C, - 0x30, - 0x41, - 0x41, - 0x92, - 0x18, - 0x19, - 0x19, - 0x19, - 0x00, - 0x04, - 0x41, - 0x05, - 0x19, - 0x00, - 0x06, - 0x60, - 0x1D, - 0x41, - 0x30, - 0x30, - 0x1F, - 0x04, - 0x19, - 0x00, - 0x17, - 0x18, - 0x18, - 0x1F, - 0x30, - 0x4C, - 0x5C, - 0x5C, - 0x09, - 0x09, - 0x19, - 0x09, - 0x09, - 0x3E, - 0x3E, - 0x3E, - 0x51, - 0xAB, - 0x09, - 0x09, - 0x19, - 0x09, - 0x26, - 0x4C, - 0x00, - 0x05, - 0x30, - 0x00, - 0x0A, - 0x92, - 0x09, - 0x09, - 0x19, - 0x20, - 0x2B, - 0x30, - 0x41, - 0x30, - 0x32, - 0x05, - 0x19, - 0x01, - 0x2A, - 0x01, - 0x4C, - 0x04, - 0x30, - 0x00, - 0x33, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x4C, - 0x5C, - 0x51, - 0x3F, - 0x19, - 0x19, - 0x19, - 0x20, - 0x73, - 0x3D, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x19, - 0x19, - 0x19, - 0x09, - 0xBD, - 0x3D, - 0x47, - 0x3D, - 0x3D, - 0x4B, - 0x36, - 0x18, - 0x18, - 0x09, - 0x09, - 0x87, - 0x87, - 0x68, - 0x8F, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x61, - 0x61, - 0xA6, - 0x00, - 0x08, - 0x61, - 0x00, - 0x09, - 0x3B, - 0x3B, - 0x34, - 0x34, - 0x33, - 0x38, - 0x67, - 0x37, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x3F, - 0x7F, - 0x09, - 0x09, - 0x19, - 0x9F, - 0x05, - 0x3E, - 0x00, - 0x1B, - 0xC0, - 0x19, - 0x19, - 0x18, - 0x23, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x3E, - 0x3E, - 0x3E, - 0x47, - 0x91, - 0x09, - 0x09, - 0x09, - 0x19, - 0x09, - 0xCC, - 0xA5, - 0x3D, - 0x45, - 0xC0, - 0x19, - 0x00, - 0x04, - 0x09, - 0x00, - 0x06, - 0x45, - 0x3D, - 0x3D, - 0x47, - 0x47, - 0x9F, - 0x06, - 0x19, - 0x00, - 0x18, - 0xA0, - 0x40, - 0x3D, - 0x36, - 0x18, - 0x09, - 0x19, - 0x19, - 0x19, - 0xC0, - 0x3D, - 0x3D, - 0x3D, - 0x47, - 0xC0, - 0x09, - 0x19, - 0x19, - 0x09, - 0x47, - 0x40, - 0x47, - 0x40, - 0x7F, - 0x04, - 0x19, - 0x01, - 0x7F, - 0x04, - 0x40, - 0x01, - 0xC0, - 0x04, - 0x09, - 0x01, - 0xCC, - 0x04, - 0x40, - 0x01, - 0x54, - 0x04, - 0x19, - 0x00, - 0x19, - 0x73, - 0x47, - 0x3D, - 0x67, - 0x3D, - 0x67, - 0x62, - 0x67, - 0x67, - 0x84, - 0x84, - 0x58, - 0x58, - 0x58, - 0x51, - 0x51, - 0x2C, - 0x19, - 0x19, - 0x19, - 0x09, - 0x5C, - 0x48, - 0x48, - 0x5C, - 0x00, - 0x05, - 0x48, - 0x00, - 0x0F, - 0x7B, - 0x19, - 0x19, - 0x09, - 0x09, - 0x2A, - 0x51, - 0x5C, - 0x48, - 0x5F, - 0x09, - 0x09, - 0x19, - 0x20, - 0x2A, - 0x00, - 0x05, - 0x48, - 0x00, - 0x1D, - 0x7B, - 0x19, - 0x19, - 0x19, - 0x09, - 0xAB, - 0x48, - 0x48, - 0x51, - 0x7C, - 0x19, - 0x19, - 0x09, - 0x09, - 0x2A, - 0x4C, - 0x30, - 0x4F, - 0x30, - 0x2F, - 0x32, - 0x19, - 0x18, - 0x19, - 0x19, - 0x26, - 0x41, - 0x41, - 0x41, - 0x00, - 0x05, - 0x19, - 0x00, - 0x06, - 0x09, - 0x19, - 0x26, - 0x41, - 0x2B, - 0x70, - 0x05, - 0x19, - 0x00, - 0x20, - 0x18, - 0x09, - 0x26, - 0x30, - 0x30, - 0x7B, - 0x09, - 0x09, - 0x09, - 0x18, - 0x93, - 0x3E, - 0x3E, - 0x25, - 0x25, - 0x51, - 0x73, - 0x09, - 0x19, - 0x19, - 0x19, - 0x7A, - 0x30, - 0x4C, - 0x30, - 0x30, - 0x95, - 0x09, - 0x09, - 0x19, - 0x19, - 0x95, - 0x04, - 0x41, - 0x00, - 0x34, - 0x32, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x60, - 0x32, - 0x2C, - 0x26, - 0x92, - 0x09, - 0x19, - 0x19, - 0x20, - 0x92, - 0x4C, - 0x5C, - 0x4F, - 0x55, - 0x55, - 0x09, - 0x19, - 0x19, - 0x19, - 0x20, - 0x7F, - 0xB4, - 0x36, - 0x3D, - 0x3D, - 0x93, - 0x09, - 0x09, - 0x20, - 0xCC, - 0x3D, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0xDF, - 0x09, - 0x09, - 0x09, - 0x20, - 0x81, - 0x68, - 0x8F, - 0x8F, - 0xAE, - 0x05, - 0x8E, - 0x00, - 0x06, - 0xCB, - 0x8E, - 0xAC, - 0xD3, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0x33, - 0x33, - 0x4E, - 0x38, - 0x37, - 0x7F, - 0x04, - 0x19, - 0x00, - 0x25, - 0x3F, - 0x2D, - 0x09, - 0x09, - 0x19, - 0x76, - 0x37, - 0x3E, - 0x37, - 0x3E, - 0x3E, - 0xB4, - 0x20, - 0x09, - 0x18, - 0x32, - 0x3F, - 0x18, - 0x19, - 0x19, - 0x18, - 0x7F, - 0x3E, - 0x3E, - 0x37, - 0x37, - 0x37, - 0xB4, - 0x20, - 0x19, - 0x19, - 0x19, - 0x20, - 0x09, - 0x09, - 0x18, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x07, - 0xCC, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x47, - 0xAB, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x19, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x09, - 0x66, - 0x04, - 0x3D, - 0x01, - 0xCC, - 0x04, - 0x09, - 0x00, - 0x05, - 0x47, - 0x47, - 0x40, - 0x47, - 0x76, - 0x00, - 0x04, - 0x19, - 0x00, - 0x2A, - 0xB4, - 0x40, - 0x47, - 0x47, - 0x40, - 0x47, - 0x7B, - 0x09, - 0x09, - 0x09, - 0x19, - 0x18, - 0x2C, - 0xB4, - 0x73, - 0x20, - 0x19, - 0x19, - 0x19, - 0x09, - 0x91, - 0x3D, - 0x37, - 0x4B, - 0x62, - 0x67, - 0x67, - 0x62, - 0x67, - 0x84, - 0x84, - 0x58, - 0x58, - 0x3F, - 0x3F, - 0x3F, - 0x2C, - 0x19, - 0x19, - 0x09, - 0x20, - 0x30, - 0x05, - 0x48, - 0x00, - 0x17, - 0x5C, - 0x5C, - 0x48, - 0x4F, - 0x19, - 0x19, - 0x09, - 0x09, - 0x20, - 0x48, - 0x48, - 0x51, - 0x5C, - 0x7B, - 0x09, - 0x19, - 0x09, - 0x18, - 0x20, - 0x8C, - 0x2B, - 0x26, - 0x93, - 0x00, - 0x04, - 0x19, - 0x00, - 0x19, - 0x18, - 0x28, - 0x3F, - 0x48, - 0x3F, - 0x2C, - 0x19, - 0x19, - 0x09, - 0x09, - 0x23, - 0x4C, - 0x30, - 0x41, - 0x41, - 0x41, - 0x2B, - 0x18, - 0x18, - 0x19, - 0x19, - 0x92, - 0x1D, - 0x41, - 0x41, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x93, - 0x18, - 0x19, - 0x19, - 0x19, - 0x20, - 0x05, - 0x19, - 0x01, - 0x26, - 0x0A, - 0x09, - 0x00, - 0x07, - 0xB4, - 0x37, - 0x58, - 0x3E, - 0x3F, - 0x44, - 0x5F, - 0x00, - 0x05, - 0x19, - 0x00, - 0x03, - 0x93, - 0x26, - 0x32, - 0x00, - 0x04, - 0x09, - 0x00, - 0x10, - 0x19, - 0x73, - 0x41, - 0x4F, - 0x41, - 0x7A, - 0x41, - 0x32, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x18, - 0x05, - 0x09, - 0x00, - 0x13, - 0x19, - 0x09, - 0x2B, - 0x4C, - 0x54, - 0x55, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x95, - 0x65, - 0x3D, - 0x45, - 0x00, - 0x04, - 0x09, - 0x00, - 0x1A, - 0x19, - 0xAB, - 0xBD, - 0xBD, - 0x20, - 0x20, - 0x09, - 0x19, - 0x19, - 0xD0, - 0x87, - 0x68, - 0x8F, - 0xA2, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x06, - 0x61, - 0x00, - 0x18, - 0xA6, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x3B, - 0x3B, - 0x34, - 0x34, - 0x4E, - 0x4E, - 0x67, - 0x37, - 0xB4, - 0x19, - 0x19, - 0x18, - 0x18, - 0x3F, - 0x19, - 0x19, - 0x19, - 0x09, - 0x3E, - 0x04, - 0x37, - 0x00, - 0x15, - 0x3E, - 0x58, - 0x18, - 0x19, - 0x19, - 0x09, - 0x48, - 0x19, - 0x09, - 0x18, - 0x18, - 0x7F, - 0x37, - 0x3E, - 0x37, - 0x37, - 0x62, - 0x37, - 0xBD, - 0x09, - 0x09, - 0x00, - 0x06, - 0x19, - 0x00, - 0x0B, - 0x09, - 0x18, - 0x18, - 0x8C, - 0x65, - 0x3D, - 0x4B, - 0x4B, - 0x3D, - 0x3D, - 0x9F, - 0x00, - 0x04, - 0x19, - 0x00, - 0x06, - 0x64, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x04, - 0x09, - 0x01, - 0x4D, - 0x05, - 0x4B, - 0x00, - 0x0A, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x09, - 0x3D, - 0x47, - 0x47, - 0x47, - 0xB4, - 0x04, - 0x19, - 0x01, - 0x7F, - 0x04, - 0x47, - 0x00, - 0x04, - 0x3D, - 0x25, - 0xCC, - 0x18, - 0x09, - 0x19, - 0x00, - 0x06, - 0x18, - 0x75, - 0x47, - 0x67, - 0x4B, - 0x67, - 0x04, - 0x62, - 0x00, - 0x0E, - 0x67, - 0x67, - 0x84, - 0x58, - 0x58, - 0x3F, - 0x51, - 0x3F, - 0x2C, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x09, - 0x48, - 0x00, - 0x0E, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x48, - 0x48, - 0x48, - 0x51, - 0x54, - 0x95, - 0x09, - 0x09, - 0x09, - 0x07, - 0x19, - 0x00, - 0x1B, - 0x09, - 0x09, - 0x5F, - 0x3F, - 0x51, - 0x3F, - 0x51, - 0x20, - 0x09, - 0x09, - 0x19, - 0x19, - 0x4C, - 0x28, - 0x7A, - 0x2F, - 0x41, - 0x2B, - 0x2B, - 0x93, - 0x19, - 0x19, - 0x19, - 0x09, - 0x2B, - 0x41, - 0x41, - 0x00, - 0x04, - 0x09, - 0x00, - 0x10, - 0x70, - 0x2A, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x95, - 0x5C, - 0x23, - 0x18, - 0x19, - 0x19, - 0x05, - 0x09, - 0x00, - 0x0E, - 0xCC, - 0x37, - 0x37, - 0x84, - 0x58, - 0x25, - 0x44, - 0x44, - 0x5F, - 0x18, - 0x19, - 0x09, - 0x09, - 0x09, - 0x05, - 0x19, - 0x00, - 0x0F, - 0x09, - 0x92, - 0x7F, - 0x41, - 0x41, - 0x7A, - 0x41, - 0x41, - 0x2D, - 0x19, - 0x19, - 0x09, - 0x19, - 0x2B, - 0x93, - 0x00, - 0x07, - 0x09, - 0x00, - 0x06, - 0x20, - 0x95, - 0x30, - 0x7C, - 0x54, - 0x55, - 0x09, - 0x19, - 0x00, - 0x06, - 0xCC, - 0x4B, - 0x4B, - 0x4B, - 0xDE, - 0x09, - 0x06, - 0x19, - 0x00, - 0x16, - 0x18, - 0x18, - 0x20, - 0x20, - 0xEA, - 0x53, - 0x87, - 0x99, - 0x7E, - 0x7E, - 0x9B, - 0xC5, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x42, - 0x34, - 0x33, - 0x38, - 0x62, - 0x37, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x07, - 0x76, - 0x19, - 0x19, - 0x19, - 0xC0, - 0x37, - 0x3E, - 0x00, - 0x04, - 0x37, - 0x00, - 0x15, - 0x3E, - 0x20, - 0x19, - 0x19, - 0x19, - 0x36, - 0x18, - 0x09, - 0x09, - 0x19, - 0x7F, - 0x3E, - 0x37, - 0x67, - 0x37, - 0x62, - 0x67, - 0x39, - 0x66, - 0xD5, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x18, - 0xCC, - 0x66, - 0x50, - 0x65, - 0x6A, - 0x4B, - 0x65, - 0x4B, - 0x4B, - 0x9F, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x3D, - 0x44, - 0xCC, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0xCC, - 0x66, - 0x4B, - 0x65, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0xDF, - 0x20, - 0x19, - 0x19, - 0x18, - 0x3D, - 0x3D, - 0x47, - 0x40, - 0xA0, - 0x04, - 0x19, - 0x01, - 0xA0, - 0x01, - 0x47, - 0x05, - 0x3D, - 0x00, - 0x03, - 0x4B, - 0xA7, - 0x73, - 0x00, - 0x06, - 0x19, - 0x00, - 0x1A, - 0x09, - 0xBD, - 0x3D, - 0x4B, - 0x4B, - 0x4B, - 0x62, - 0x65, - 0x62, - 0x65, - 0x4E, - 0x62, - 0x38, - 0x67, - 0x67, - 0x37, - 0x58, - 0x58, - 0x3F, - 0x51, - 0x7F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x09, - 0x48, - 0x00, - 0x05, - 0x18, - 0x18, - 0x19, - 0x09, - 0x19, - 0x00, - 0x05, - 0x51, - 0x00, - 0x05, - 0x25, - 0xB4, - 0x20, - 0x09, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x30, - 0x09, - 0x09, - 0xCC, - 0x7C, - 0x51, - 0x51, - 0x3F, - 0x3E, - 0x89, - 0x09, - 0x09, - 0x19, - 0x18, - 0x32, - 0x28, - 0x4F, - 0x7A, - 0x41, - 0x2B, - 0x2A, - 0x2A, - 0x70, - 0x19, - 0x19, - 0x09, - 0x09, - 0x70, - 0x41, - 0x2B, - 0x19, - 0x20, - 0x09, - 0x09, - 0x95, - 0x41, - 0x2A, - 0x92, - 0x20, - 0x19, - 0x19, - 0x09, - 0x09, - 0xCC, - 0x54, - 0x4C, - 0x24, - 0x64, - 0xCC, - 0x04, - 0x09, - 0x00, - 0x10, - 0x20, - 0xCC, - 0x37, - 0x67, - 0x67, - 0x39, - 0x84, - 0x3A, - 0x44, - 0x44, - 0x63, - 0x64, - 0x8C, - 0x09, - 0x09, - 0x09, - 0x04, - 0x19, - 0x00, - 0x11, - 0x93, - 0x55, - 0x4F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x7A, - 0x7A, - 0x2D, - 0x19, - 0x19, - 0x09, - 0x09, - 0x28, - 0x30, - 0x85, - 0x00, - 0x05, - 0x09, - 0x00, - 0x0A, - 0x20, - 0xCC, - 0x7C, - 0x30, - 0x4C, - 0x4C, - 0x55, - 0x19, - 0x19, - 0x09, - 0x04, - 0x19, - 0x00, - 0x24, - 0x20, - 0x19, - 0x73, - 0x6A, - 0x4B, - 0x22, - 0x6A, - 0x25, - 0xDF, - 0x19, - 0x19, - 0x19, - 0x09, - 0x19, - 0x09, - 0x09, - 0x73, - 0xBC, - 0x53, - 0x87, - 0x68, - 0x8F, - 0x7E, - 0xAD, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x05, - 0x61, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x00, - 0x05, - 0x61, - 0x00, - 0x3E, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x4E, - 0x38, - 0x38, - 0x37, - 0x7F, - 0x19, - 0x19, - 0x19, - 0x18, - 0xC0, - 0x19, - 0x19, - 0x19, - 0x7F, - 0x37, - 0x37, - 0x39, - 0x37, - 0x67, - 0x37, - 0x37, - 0x7F, - 0x09, - 0x09, - 0x09, - 0x2C, - 0x18, - 0x09, - 0x19, - 0x19, - 0x7F, - 0x37, - 0x37, - 0x37, - 0x38, - 0x38, - 0x62, - 0x62, - 0x43, - 0x62, - 0x65, - 0x5B, - 0xD0, - 0xA0, - 0xBD, - 0xA8, - 0x6A, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x4B, - 0x6A, - 0x4B, - 0xB4, - 0x04, - 0x19, - 0x00, - 0x25, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0xA5, - 0xA0, - 0xAF, - 0x62, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x4B, - 0x6A, - 0x4B, - 0x4B, - 0x3D, - 0x3D, - 0x4B, - 0x3D, - 0x3D, - 0x47, - 0x47, - 0xA0, - 0x18, - 0x19, - 0x19, - 0x09, - 0xA0, - 0x3D, - 0x3D, - 0x4B, - 0x4B, - 0x62, - 0x67, - 0x00, - 0x04, - 0x4B, - 0x00, - 0x1F, - 0xA5, - 0xA0, - 0xBD, - 0xAF, - 0x84, - 0x3D, - 0x4B, - 0x67, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x43, - 0x43, - 0x62, - 0x62, - 0x43, - 0x38, - 0x67, - 0x84, - 0x37, - 0x58, - 0x3E, - 0x3E, - 0x3F, - 0x7F, - 0x09, - 0x19, - 0x19, - 0x19, - 0x54, - 0x00, - 0x08, - 0x48, - 0x00, - 0x07, - 0x4C, - 0x19, - 0x19, - 0x19, - 0x09, - 0x09, - 0x48, - 0x00, - 0x08, - 0x51, - 0x00, - 0x18, - 0x5F, - 0x7F, - 0xAB, - 0xAB, - 0x7F, - 0x51, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x51, - 0x3F, - 0x25, - 0x3F, - 0x58, - 0x25, - 0x63, - 0x63, - 0x7C, - 0x28, - 0x7A, - 0x7A, - 0x2B, - 0x2B, - 0x04, - 0x2A, - 0x07, - 0x2B, - 0x00, - 0x2B, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x41, - 0x4F, - 0x41, - 0x7A, - 0x32, - 0x32, - 0x2C, - 0x4C, - 0x4C, - 0x24, - 0x51, - 0x44, - 0x44, - 0x58, - 0x44, - 0xBD, - 0xAB, - 0xBD, - 0x39, - 0x84, - 0x39, - 0x62, - 0x62, - 0x38, - 0x39, - 0x29, - 0x3A, - 0x4D, - 0x63, - 0x63, - 0x64, - 0x7C, - 0x4F, - 0x8C, - 0x8C, - 0x85, - 0x9F, - 0x4F, - 0x4F, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x07, - 0x2F, - 0x2F, - 0x7A, - 0x7A, - 0x2F, - 0x7A, - 0x41, - 0x00, - 0x04, - 0x4F, - 0x00, - 0x14, - 0x28, - 0x7C, - 0x2C, - 0x32, - 0x32, - 0x2C, - 0x4F, - 0x4F, - 0x4F, - 0x28, - 0x7C, - 0x64, - 0x54, - 0x25, - 0x58, - 0x09, - 0x19, - 0x19, - 0x19, - 0x73, - 0x04, - 0x4B, - 0x00, - 0x15, - 0x65, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x6A, - 0x75, - 0xD0, - 0xD0, - 0xD0, - 0x66, - 0x77, - 0x81, - 0x81, - 0x53, - 0x68, - 0x68, - 0x7E, - 0xAE, - 0xAD, - 0xC5, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x07, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x4E, - 0x67, - 0x67, - 0xBD, - 0x19, - 0x19, - 0x19, - 0x20, - 0x04, - 0x19, - 0x00, - 0x2C, - 0x58, - 0x37, - 0x67, - 0x67, - 0x39, - 0x67, - 0x37, - 0x37, - 0x63, - 0x09, - 0x09, - 0x09, - 0x20, - 0x09, - 0x09, - 0x19, - 0x18, - 0xA0, - 0x37, - 0x37, - 0x38, - 0x62, - 0x4E, - 0x4E, - 0x4E, - 0x22, - 0x4E, - 0x43, - 0x22, - 0x4E, - 0x43, - 0x83, - 0x6A, - 0x6A, - 0x22, - 0x83, - 0x83, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x4B, - 0x4B, - 0xDE, - 0x04, - 0x19, - 0x00, - 0x06, - 0x3D, - 0x4B, - 0x4B, - 0x4B, - 0x65, - 0x22, - 0x09, - 0x6A, - 0x04, - 0x65, - 0x00, - 0x1E, - 0x62, - 0x4B, - 0x4B, - 0x3D, - 0x4B, - 0x47, - 0xA0, - 0x18, - 0x19, - 0x19, - 0x09, - 0x7F, - 0x4B, - 0x4B, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0x65, - 0x4B, - 0x62, - 0x4B, - 0x4B, - 0x4B, - 0x62, - 0x4B, - 0x4B, - 0x04, - 0x65, - 0x00, - 0x17, - 0x50, - 0x72, - 0x65, - 0x72, - 0x62, - 0x62, - 0x62, - 0x67, - 0x84, - 0x84, - 0x3E, - 0x3E, - 0x51, - 0x2C, - 0x09, - 0x19, - 0x19, - 0x19, - 0x54, - 0x48, - 0x48, - 0x48, - 0x3F, - 0x00, - 0x04, - 0x48, - 0x00, - 0x19, - 0x26, - 0x20, - 0x19, - 0x19, - 0x09, - 0x92, - 0x51, - 0x3F, - 0x51, - 0x51, - 0x3F, - 0x44, - 0x58, - 0x51, - 0x3F, - 0x44, - 0x3F, - 0x51, - 0x3F, - 0x51, - 0x51, - 0x3E, - 0x51, - 0x58, - 0x3E, - 0x00, - 0x04, - 0x58, - 0x00, - 0x0B, - 0x25, - 0x51, - 0x44, - 0x64, - 0x28, - 0x5F, - 0x7A, - 0x2C, - 0x2A, - 0x2A, - 0x55, - 0x00, - 0x04, - 0x2A, - 0x00, - 0x78, - 0x2C, - 0x2A, - 0x2B, - 0x2C, - 0x2F, - 0x7A, - 0x2B, - 0x2B, - 0x41, - 0x2F, - 0x2B, - 0x41, - 0x4F, - 0x41, - 0x4F, - 0x28, - 0x28, - 0x64, - 0x64, - 0x63, - 0x4D, - 0x25, - 0x3A, - 0x3A, - 0x29, - 0x25, - 0x84, - 0x27, - 0x84, - 0x38, - 0x62, - 0x4E, - 0x4E, - 0x38, - 0x2E, - 0x29, - 0x5A, - 0x4D, - 0x4D, - 0x63, - 0x64, - 0x64, - 0x89, - 0x7C, - 0x36, - 0x28, - 0x5F, - 0x4F, - 0x5F, - 0x5F, - 0x5F, - 0x7A, - 0x7A, - 0x76, - 0x7A, - 0x7F, - 0x2F, - 0x7A, - 0x7F, - 0x76, - 0x7A, - 0x7A, - 0x4F, - 0x5F, - 0x5F, - 0x4F, - 0x4F, - 0x7C, - 0x5F, - 0x28, - 0x4F, - 0x7C, - 0x4F, - 0x7C, - 0x54, - 0x64, - 0x44, - 0x44, - 0x3E, - 0x09, - 0x19, - 0x19, - 0x19, - 0x73, - 0x4B, - 0x65, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x81, - 0x83, - 0x83, - 0x77, - 0x77, - 0x22, - 0x53, - 0x22, - 0x53, - 0x81, - 0x53, - 0x87, - 0x68, - 0x8F, - 0x7E, - 0xAE, - 0xAE, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x14, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x74, - 0x74, - 0x34, - 0x33, - 0x4E, - 0x4E, - 0x37, - 0xBD, - 0x06, - 0x19, - 0x00, - 0x0C, - 0x18, - 0x73, - 0x37, - 0x37, - 0x67, - 0x62, - 0x62, - 0x38, - 0x39, - 0x37, - 0x37, - 0x09, - 0x06, - 0x19, - 0x00, - 0x26, - 0x09, - 0xA0, - 0x37, - 0x38, - 0x62, - 0x38, - 0x4E, - 0x33, - 0x72, - 0x72, - 0x33, - 0x72, - 0x72, - 0x3C, - 0x3C, - 0x3C, - 0x83, - 0x83, - 0x69, - 0x77, - 0x77, - 0x81, - 0x77, - 0x77, - 0x6A, - 0x6A, - 0x65, - 0x7F, - 0x19, - 0x19, - 0x18, - 0x93, - 0x4B, - 0x4B, - 0x4B, - 0x6A, - 0x6A, - 0x6A, - 0x07, - 0x83, - 0x00, - 0x07, - 0x6A, - 0x6A, - 0x6A, - 0x22, - 0x6A, - 0x4B, - 0x65, - 0x00, - 0x04, - 0x4B, - 0x01, - 0x3D, - 0x01, - 0xA0, - 0x04, - 0x19, - 0x01, - 0xA0, - 0x01, - 0x4B, - 0x05, - 0x65, - 0x00, - 0x03, - 0x6A, - 0x65, - 0x50, - 0x00, - 0x08, - 0x65, - 0x01, - 0x6A, - 0x01, - 0x65, - 0x04, - 0x50, - 0x00, - 0x12, - 0x65, - 0x72, - 0x72, - 0x4E, - 0x62, - 0x38, - 0x62, - 0x67, - 0x84, - 0x3E, - 0x3E, - 0x3F, - 0x7F, - 0x09, - 0x19, - 0x09, - 0x09, - 0x4C, - 0x05, - 0x48, - 0x00, - 0x03, - 0x3F, - 0x48, - 0x55, - 0x00, - 0x04, - 0x19, - 0x00, - 0x0A, - 0x09, - 0x2C, - 0x51, - 0x58, - 0x58, - 0x51, - 0x58, - 0x3F, - 0x51, - 0x51, - 0x04, - 0x58, - 0x00, - 0x04, - 0x51, - 0x58, - 0x58, - 0x51, - 0x07, - 0x58, - 0x00, - 0x6A, - 0x25, - 0x44, - 0x63, - 0x64, - 0x36, - 0x7A, - 0x2F, - 0x2F, - 0x55, - 0x2A, - 0x55, - 0x2A, - 0x26, - 0x55, - 0x2A, - 0x2A, - 0x2C, - 0x2C, - 0x2C, - 0x2B, - 0x2F, - 0x2C, - 0x2B, - 0x2C, - 0x7A, - 0x2F, - 0x7A, - 0x4F, - 0x7A, - 0x7C, - 0x4F, - 0x64, - 0x64, - 0x4D, - 0x4D, - 0x3A, - 0x5A, - 0x3A, - 0x5A, - 0x3A, - 0x29, - 0x2E, - 0x84, - 0x38, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x2E, - 0x2E, - 0x59, - 0x5A, - 0x5B, - 0x4D, - 0x91, - 0x91, - 0x7C, - 0x89, - 0x89, - 0x36, - 0x5F, - 0x36, - 0x5F, - 0x76, - 0x76, - 0x5F, - 0xAF, - 0x7F, - 0x7A, - 0x7F, - 0x7A, - 0x7F, - 0x7A, - 0x7A, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x4F, - 0x36, - 0x89, - 0x5F, - 0x4F, - 0x5F, - 0x5F, - 0x7A, - 0x5F, - 0x89, - 0x7C, - 0x64, - 0x44, - 0x3A, - 0x58, - 0x18, - 0x09, - 0x09, - 0x09, - 0x73, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x77, - 0x53, - 0x81, - 0x04, - 0x53, - 0x00, - 0x19, - 0x94, - 0x53, - 0x87, - 0x53, - 0x68, - 0x68, - 0x94, - 0x99, - 0x8F, - 0x7E, - 0xAE, - 0xAC, - 0x8E, - 0x8E, - 0xCE, - 0xAC, - 0xCB, - 0xAC, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x6D, - 0x61, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0x3B, - 0x6E, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x4E, - 0x38, - 0x7F, - 0x05, - 0x19, - 0x00, - 0x0D, - 0x09, - 0x18, - 0xB4, - 0x37, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x38, - 0x62, - 0x62, - 0x67, - 0xAB, - 0x00, - 0x06, - 0x19, - 0x00, - 0x0B, - 0x18, - 0xBD, - 0x37, - 0x67, - 0x38, - 0x33, - 0x33, - 0x72, - 0x33, - 0x34, - 0x88, - 0x00, - 0x05, - 0x69, - 0x00, - 0x25, - 0x57, - 0x57, - 0x57, - 0x87, - 0x53, - 0x53, - 0x81, - 0x81, - 0x77, - 0x83, - 0x6A, - 0xE5, - 0x19, - 0x19, - 0x18, - 0x19, - 0x4B, - 0x6A, - 0x83, - 0x6A, - 0x83, - 0x83, - 0x77, - 0x77, - 0x57, - 0x81, - 0x77, - 0x57, - 0x77, - 0x83, - 0x83, - 0x6A, - 0xCC, - 0x18, - 0x18, - 0x18, - 0x19, - 0x00, - 0x04, - 0x4B, - 0x01, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x07, - 0xBD, - 0x65, - 0x4B, - 0x6A, - 0x50, - 0x6A, - 0x83, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x27, - 0x50, - 0x6A, - 0x65, - 0x6A, - 0x65, - 0x65, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x88, - 0x88, - 0x50, - 0x65, - 0x72, - 0x72, - 0x62, - 0x67, - 0x67, - 0x67, - 0x37, - 0x58, - 0x3E, - 0xAB, - 0x09, - 0x09, - 0x09, - 0x19, - 0x19, - 0x93, - 0x19, - 0x18, - 0x93, - 0x19, - 0x18, - 0x19, - 0x09, - 0x00, - 0x04, - 0x19, - 0x00, - 0x2A, - 0x20, - 0x3F, - 0x3F, - 0x51, - 0x51, - 0x58, - 0x51, - 0x3A, - 0x58, - 0x58, - 0x58, - 0x51, - 0x51, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x58, - 0x58, - 0x58, - 0x84, - 0x84, - 0x58, - 0x58, - 0x4D, - 0x63, - 0x64, - 0x89, - 0x5F, - 0x76, - 0x2F, - 0x2F, - 0x55, - 0x8C, - 0x2A, - 0x55, - 0x55, - 0x26, - 0x2C, - 0x55, - 0x2A, - 0x05, - 0x2C, - 0x01, - 0x7F, - 0x01, - 0x2F, - 0x04, - 0x7A, - 0x00, - 0x33, - 0x36, - 0x4F, - 0x64, - 0x64, - 0x75, - 0x4D, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x5B, - 0x5A, - 0x5A, - 0x29, - 0x59, - 0x2E, - 0x38, - 0x4E, - 0x33, - 0x72, - 0x31, - 0x31, - 0x2E, - 0x29, - 0x5A, - 0x5A, - 0x66, - 0x75, - 0x91, - 0xBE, - 0x7C, - 0x89, - 0x89, - 0x89, - 0xA5, - 0xA5, - 0x5F, - 0xA5, - 0xAF, - 0x7A, - 0xAF, - 0x76, - 0x76, - 0xB4, - 0x76, - 0x7F, - 0x76, - 0x76, - 0x76, - 0x5F, - 0x89, - 0x00, - 0x05, - 0x5F, - 0x00, - 0x33, - 0x36, - 0x5F, - 0x89, - 0x89, - 0x7C, - 0x91, - 0x63, - 0x4D, - 0x3A, - 0x84, - 0x18, - 0x19, - 0x19, - 0x93, - 0x73, - 0x22, - 0x6A, - 0x81, - 0x81, - 0x53, - 0x53, - 0x87, - 0x94, - 0x68, - 0x9E, - 0x68, - 0x98, - 0x9E, - 0x9E, - 0x68, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0xAC, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x28, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x38, - 0x62, - 0xBD, - 0x19, - 0x09, - 0x19, - 0x19, - 0x09, - 0x09, - 0x09, - 0x5A, - 0x67, - 0x38, - 0x4E, - 0x43, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x67, - 0xA5, - 0x09, - 0x09, - 0x04, - 0x19, - 0x00, - 0x0D, - 0x18, - 0xBD, - 0x67, - 0x4E, - 0x4E, - 0x33, - 0x33, - 0x34, - 0x34, - 0x57, - 0x34, - 0x34, - 0x88, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0B, - 0x82, - 0x82, - 0x53, - 0x98, - 0x98, - 0x53, - 0x98, - 0x81, - 0x77, - 0x22, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x1A, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x77, - 0x81, - 0x81, - 0x53, - 0x53, - 0x98, - 0x53, - 0x53, - 0x57, - 0x81, - 0x77, - 0x69, - 0xDF, - 0x18, - 0x19, - 0x19, - 0x19, - 0x6A, - 0x4B, - 0x4B, - 0x4B, - 0xBD, - 0x04, - 0x19, - 0x00, - 0x05, - 0xA0, - 0x65, - 0x6A, - 0x65, - 0x6A, - 0x00, - 0x06, - 0x83, - 0x00, - 0x1D, - 0x3C, - 0x83, - 0x6A, - 0x6A, - 0x3C, - 0x6A, - 0x6A, - 0x3C, - 0x83, - 0x6A, - 0x88, - 0x83, - 0x88, - 0x50, - 0x3C, - 0x50, - 0x72, - 0x43, - 0x4E, - 0x62, - 0x67, - 0x84, - 0x47, - 0x3E, - 0x3E, - 0x7F, - 0x19, - 0x09, - 0x09, - 0x00, - 0x0D, - 0x19, - 0x00, - 0x0C, - 0x09, - 0x7C, - 0x3E, - 0x58, - 0x51, - 0x51, - 0x58, - 0x44, - 0x58, - 0x58, - 0x3A, - 0x3A, - 0x04, - 0x58, - 0x07, - 0x84, - 0x00, - 0x0F, - 0x58, - 0x3A, - 0x5A, - 0x63, - 0x63, - 0x45, - 0x36, - 0x5F, - 0x7A, - 0x76, - 0x2C, - 0x55, - 0x55, - 0x8C, - 0x26, - 0x00, - 0x04, - 0x55, - 0x00, - 0x4E, - 0x2C, - 0xAB, - 0x2C, - 0x55, - 0x7F, - 0x2C, - 0x2C, - 0x7F, - 0x2C, - 0x7A, - 0x76, - 0x5F, - 0x89, - 0x89, - 0x45, - 0x75, - 0x4D, - 0x90, - 0x5A, - 0x5A, - 0x5B, - 0x5B, - 0x8B, - 0x8B, - 0x5A, - 0x5A, - 0x39, - 0x2E, - 0x39, - 0x4E, - 0x33, - 0x72, - 0x33, - 0x4E, - 0x6F, - 0x46, - 0x59, - 0x5A, - 0x90, - 0x5B, - 0xBC, - 0x91, - 0xBE, - 0xA7, - 0x45, - 0xA5, - 0xA5, - 0x36, - 0xA5, - 0xA5, - 0x76, - 0xAF, - 0x76, - 0xA0, - 0x76, - 0x76, - 0x7F, - 0x7F, - 0x76, - 0x76, - 0xAF, - 0xAF, - 0x76, - 0x5F, - 0x5F, - 0xA5, - 0x5F, - 0x5F, - 0x5F, - 0xA5, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x5B, - 0x5A, - 0x84, - 0x38, - 0x04, - 0xD0, - 0x00, - 0x17, - 0xD8, - 0x77, - 0x53, - 0x81, - 0x68, - 0x68, - 0x68, - 0x8F, - 0x68, - 0x8F, - 0x68, - 0x8F, - 0x99, - 0x8F, - 0x99, - 0x99, - 0x7E, - 0x7E, - 0x7E, - 0xAE, - 0x9B, - 0x8E, - 0x9B, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x0A, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x28, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x38, - 0xBD, - 0x18, - 0x18, - 0x19, - 0x19, - 0x09, - 0x09, - 0x20, - 0x37, - 0x38, - 0x4E, - 0x4E, - 0x33, - 0x33, - 0x33, - 0x4E, - 0x4E, - 0x38, - 0x67, - 0x20, - 0x09, - 0x05, - 0x19, - 0x00, - 0x1B, - 0xBD, - 0x38, - 0x43, - 0x33, - 0x33, - 0x34, - 0x34, - 0x34, - 0x74, - 0x74, - 0x56, - 0x74, - 0x7D, - 0x7D, - 0x56, - 0x8A, - 0x82, - 0x8A, - 0x9C, - 0x94, - 0x82, - 0x9E, - 0x53, - 0x53, - 0x81, - 0x77, - 0xBD, - 0x00, - 0x04, - 0x19, - 0x00, - 0x08, - 0x83, - 0x83, - 0x77, - 0x81, - 0x53, - 0x53, - 0x87, - 0x94, - 0x04, - 0x98, - 0x00, - 0x0E, - 0x53, - 0x53, - 0x81, - 0x83, - 0xDF, - 0x20, - 0x19, - 0x19, - 0x20, - 0x65, - 0x65, - 0x50, - 0x65, - 0xA0, - 0x04, - 0x19, - 0x00, - 0x27, - 0xBD, - 0x83, - 0x6A, - 0x83, - 0x77, - 0x77, - 0x57, - 0x77, - 0x77, - 0x57, - 0x77, - 0x77, - 0x69, - 0x83, - 0x69, - 0x83, - 0x83, - 0x69, - 0x83, - 0x3C, - 0x69, - 0x83, - 0x88, - 0x6A, - 0x88, - 0x3C, - 0x72, - 0x6A, - 0x72, - 0x65, - 0x4E, - 0x62, - 0x67, - 0x67, - 0x37, - 0x37, - 0x7F, - 0x19, - 0x09, - 0x00, - 0x0E, - 0x19, - 0x00, - 0x11, - 0x89, - 0x51, - 0x51, - 0x58, - 0x58, - 0x84, - 0x58, - 0x84, - 0x84, - 0x58, - 0x84, - 0x58, - 0x84, - 0x84, - 0x84, - 0x3A, - 0x58, - 0x00, - 0x05, - 0x84, - 0x00, - 0x43, - 0x3A, - 0x5A, - 0x5B, - 0x44, - 0x75, - 0x64, - 0x89, - 0x36, - 0x76, - 0x76, - 0x7F, - 0x7F, - 0x55, - 0x55, - 0x55, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x9F, - 0x55, - 0x2A, - 0x9F, - 0x2C, - 0x55, - 0x2C, - 0x7F, - 0x7A, - 0x7F, - 0x76, - 0x5F, - 0xA5, - 0x89, - 0x91, - 0xA8, - 0x66, - 0x8B, - 0x5B, - 0x8B, - 0x66, - 0x8B, - 0x66, - 0x5B, - 0x5B, - 0x5A, - 0x29, - 0x5A, - 0x27, - 0x2E, - 0x2E, - 0x4E, - 0x33, - 0x34, - 0x42, - 0x31, - 0x31, - 0x46, - 0x46, - 0x59, - 0x90, - 0x5B, - 0x66, - 0x75, - 0x91, - 0xBE, - 0xBE, - 0x89, - 0x00, - 0x06, - 0xA5, - 0x00, - 0x42, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0x76, - 0xA0, - 0xAF, - 0x7A, - 0x5F, - 0x76, - 0xA5, - 0x76, - 0x36, - 0xA5, - 0xAF, - 0x89, - 0x36, - 0xA7, - 0x89, - 0xBE, - 0x91, - 0x5B, - 0x5A, - 0x2E, - 0x72, - 0x88, - 0x22, - 0x82, - 0x77, - 0x87, - 0x53, - 0x53, - 0x87, - 0x8F, - 0x94, - 0x7E, - 0x8F, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0xBF, - 0x7E, - 0x9B, - 0x9B, - 0x7E, - 0x9B, - 0xAD, - 0x9B, - 0x9B, - 0x9B, - 0xAC, - 0xCB, - 0x8E, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x04, - 0x61, - 0x00, - 0x12, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x3B, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x33, - 0x33, - 0x4E, - 0xBD, - 0x09, - 0x09, - 0x04, - 0x19, - 0x00, - 0x03, - 0xBD, - 0x38, - 0x38, - 0x00, - 0x06, - 0x33, - 0x00, - 0x31, - 0x4E, - 0x38, - 0x43, - 0xD5, - 0x18, - 0x18, - 0x09, - 0x18, - 0x18, - 0x20, - 0xBD, - 0x4E, - 0x33, - 0x33, - 0x34, - 0x34, - 0x42, - 0x74, - 0x3B, - 0x3B, - 0x7D, - 0x56, - 0x6C, - 0x6C, - 0x8A, - 0x6B, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x98, - 0x98, - 0x53, - 0x81, - 0xE5, - 0x09, - 0x09, - 0x20, - 0x19, - 0x77, - 0x81, - 0x53, - 0x53, - 0x98, - 0x98, - 0x94, - 0x8F, - 0x00, - 0x04, - 0x94, - 0x00, - 0x38, - 0x98, - 0x98, - 0x81, - 0x57, - 0xDF, - 0x09, - 0x09, - 0x19, - 0x20, - 0x65, - 0x6A, - 0x6A, - 0x65, - 0xD0, - 0x20, - 0x19, - 0x19, - 0x20, - 0xBD, - 0x6A, - 0x83, - 0x83, - 0x81, - 0x57, - 0x81, - 0x82, - 0x81, - 0x81, - 0x7D, - 0x81, - 0x57, - 0x81, - 0x83, - 0x77, - 0x77, - 0x69, - 0x77, - 0x69, - 0x69, - 0x69, - 0x83, - 0x69, - 0x69, - 0x72, - 0x83, - 0x6A, - 0x72, - 0x50, - 0x43, - 0x43, - 0x62, - 0x67, - 0x37, - 0x37, - 0xB4, - 0x19, - 0x07, - 0x09, - 0x00, - 0x0F, - 0x20, - 0x19, - 0x09, - 0x09, - 0x09, - 0x55, - 0xAB, - 0x58, - 0x3F, - 0x58, - 0x3E, - 0x58, - 0x84, - 0x58, - 0x3A, - 0x00, - 0x09, - 0x84, - 0x00, - 0x29, - 0x39, - 0x84, - 0x84, - 0x39, - 0x39, - 0x29, - 0x5A, - 0x4D, - 0x4D, - 0x75, - 0x45, - 0x89, - 0x36, - 0x76, - 0x5F, - 0xA0, - 0x7A, - 0x7F, - 0x7F, - 0x55, - 0xAB, - 0x55, - 0x55, - 0x55, - 0x9F, - 0x55, - 0x55, - 0x55, - 0xAB, - 0x55, - 0x7F, - 0x55, - 0x7F, - 0x7F, - 0x76, - 0xAF, - 0x5F, - 0x45, - 0xA7, - 0xBE, - 0x91, - 0x00, - 0x06, - 0x66, - 0x04, - 0x75, - 0x00, - 0x5E, - 0x5B, - 0x4D, - 0x5A, - 0x29, - 0x2E, - 0x46, - 0x72, - 0x34, - 0x34, - 0x34, - 0x42, - 0x6F, - 0x46, - 0x5E, - 0x5E, - 0x8B, - 0x8B, - 0x75, - 0x75, - 0xBE, - 0x91, - 0xD8, - 0xBE, - 0xA5, - 0xA7, - 0xA5, - 0xD0, - 0xAF, - 0xA5, - 0xAF, - 0xAF, - 0xAF, - 0x76, - 0xAF, - 0x76, - 0xA5, - 0xAF, - 0xA5, - 0x5F, - 0xA5, - 0x5F, - 0xA5, - 0xA5, - 0xA7, - 0xA7, - 0x36, - 0x45, - 0x91, - 0x75, - 0x5B, - 0x59, - 0x4E, - 0x34, - 0x57, - 0x57, - 0x53, - 0x98, - 0x87, - 0x68, - 0x94, - 0x68, - 0x8F, - 0x7E, - 0x9B, - 0xAE, - 0xAE, - 0xAD, - 0x9B, - 0x9B, - 0x9B, - 0xAD, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xAC, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xAC, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x1C, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x4E, - 0x33, - 0x43, - 0x62, - 0x38, - 0x62, - 0x43, - 0x62, - 0x43, - 0x4E, - 0x33, - 0x33, - 0x33, - 0x34, - 0x33, - 0x34, - 0x34, - 0x33, - 0x33, - 0x4E, - 0x4E, - 0x05, - 0x62, - 0x00, - 0x73, - 0x4E, - 0x72, - 0x4E, - 0x33, - 0x34, - 0x34, - 0x74, - 0x74, - 0x74, - 0x3B, - 0x3B, - 0x6E, - 0x6C, - 0x6C, - 0x4A, - 0x8A, - 0x6B, - 0x5D, - 0x5D, - 0x9C, - 0x52, - 0x98, - 0x82, - 0x94, - 0x82, - 0x53, - 0x81, - 0x53, - 0x81, - 0x81, - 0x87, - 0x81, - 0x53, - 0x53, - 0x87, - 0x9E, - 0x68, - 0x94, - 0x8F, - 0x94, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x81, - 0x34, - 0x33, - 0x4E, - 0x46, - 0x46, - 0x83, - 0x6A, - 0x6A, - 0x6A, - 0x50, - 0x6A, - 0x6A, - 0x83, - 0x83, - 0x81, - 0x83, - 0x77, - 0x81, - 0x81, - 0x53, - 0x98, - 0x53, - 0x87, - 0x98, - 0x53, - 0x53, - 0x87, - 0x81, - 0x82, - 0x7D, - 0x81, - 0x81, - 0x57, - 0x69, - 0x77, - 0x83, - 0x69, - 0x69, - 0x83, - 0x88, - 0x88, - 0x72, - 0x50, - 0x72, - 0x43, - 0x43, - 0x62, - 0x62, - 0x67, - 0x3D, - 0x47, - 0x47, - 0x47, - 0x40, - 0x3E, - 0x40, - 0x40, - 0x3F, - 0x40, - 0x3F, - 0x3E, - 0x3F, - 0x3F, - 0x3E, - 0x3E, - 0x3E, - 0x3F, - 0x00, - 0x05, - 0x58, - 0x04, - 0x84, - 0x01, - 0x39, - 0x01, - 0x84, - 0x04, - 0x39, - 0x00, - 0x16, - 0x67, - 0x39, - 0x39, - 0x38, - 0x67, - 0x27, - 0x3A, - 0x4D, - 0x75, - 0x91, - 0x45, - 0x89, - 0x5F, - 0xA5, - 0x76, - 0x76, - 0x7A, - 0xA0, - 0x7F, - 0x2C, - 0xAB, - 0x55, - 0x06, - 0x9F, - 0x00, - 0x12, - 0xAB, - 0x55, - 0xAB, - 0x55, - 0x2F, - 0xB4, - 0x76, - 0x76, - 0x5F, - 0xA7, - 0x45, - 0x89, - 0x91, - 0xA8, - 0x75, - 0x66, - 0x75, - 0x75, - 0x05, - 0x91, - 0x00, - 0x15, - 0x63, - 0x91, - 0x4D, - 0x5B, - 0x5A, - 0x2E, - 0x38, - 0x31, - 0x34, - 0x34, - 0x56, - 0x74, - 0x74, - 0xBA, - 0x6F, - 0x9A, - 0x59, - 0x90, - 0xBB, - 0xBC, - 0xBC, - 0x00, - 0x04, - 0xBE, - 0x05, - 0xA7, - 0x01, - 0xA5, - 0x06, - 0xAF, - 0x00, - 0x20, - 0x5F, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xA7, - 0x89, - 0x89, - 0xA7, - 0xBE, - 0x45, - 0xA8, - 0x66, - 0x59, - 0x46, - 0x33, - 0x57, - 0x82, - 0x98, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0x9B, - 0xAE, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x9B, - 0x05, - 0x8E, - 0x00, - 0x15, - 0xC5, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA6, - 0x61, - 0x6D, - 0xA6, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x3B, - 0x3B, - 0x3B, - 0x74, - 0x34, - 0x34, - 0x33, - 0x33, - 0x06, - 0x4E, - 0x00, - 0x03, - 0x33, - 0x33, - 0x33, - 0x00, - 0x06, - 0x34, - 0x04, - 0x33, - 0x04, - 0x4E, - 0x00, - 0x08, - 0x38, - 0x33, - 0x4E, - 0x33, - 0x34, - 0x34, - 0x34, - 0x74, - 0x05, - 0x3B, - 0x00, - 0x2A, - 0x6D, - 0x6D, - 0x4A, - 0x4A, - 0x5D, - 0x4A, - 0x4A, - 0x5D, - 0x9C, - 0x35, - 0x9C, - 0x9C, - 0x94, - 0x98, - 0x98, - 0x53, - 0x53, - 0x81, - 0x81, - 0x87, - 0x53, - 0x9E, - 0x9E, - 0x94, - 0x8F, - 0x94, - 0x7E, - 0x8F, - 0x8F, - 0xA3, - 0xA3, - 0x8F, - 0x8F, - 0x98, - 0x98, - 0x98, - 0x87, - 0x57, - 0x81, - 0x57, - 0x81, - 0x69, - 0x07, - 0x83, - 0x00, - 0x17, - 0x69, - 0x77, - 0x81, - 0x77, - 0x53, - 0x98, - 0x87, - 0x98, - 0x9E, - 0x98, - 0x87, - 0x9E, - 0x98, - 0x98, - 0x82, - 0x81, - 0x82, - 0x82, - 0x57, - 0x81, - 0x57, - 0x69, - 0x7D, - 0x00, - 0x04, - 0x69, - 0x00, - 0x1D, - 0x88, - 0x6A, - 0x88, - 0x72, - 0x65, - 0x72, - 0x43, - 0x62, - 0x62, - 0x67, - 0x67, - 0x37, - 0x47, - 0x47, - 0x58, - 0x3E, - 0x3E, - 0x3E, - 0x58, - 0x3E, - 0x58, - 0x3E, - 0x3E, - 0x58, - 0x3E, - 0x3E, - 0x58, - 0x58, - 0x58, - 0x00, - 0x04, - 0x84, - 0x07, - 0x39, - 0x00, - 0x94, - 0x84, - 0x38, - 0x39, - 0x39, - 0x39, - 0x38, - 0x39, - 0x29, - 0x4D, - 0x75, - 0x64, - 0xA7, - 0xA7, - 0x5F, - 0x5F, - 0x76, - 0x76, - 0x7F, - 0x76, - 0x76, - 0x76, - 0xA0, - 0xB4, - 0x7F, - 0xAB, - 0xAB, - 0xAB, - 0x9F, - 0xAB, - 0x55, - 0x7F, - 0xAB, - 0xAB, - 0x2C, - 0xAB, - 0x7F, - 0x76, - 0x76, - 0x5F, - 0xA7, - 0xA7, - 0x45, - 0x45, - 0x91, - 0x91, - 0xA8, - 0x91, - 0x45, - 0x45, - 0x89, - 0x45, - 0x89, - 0x89, - 0x91, - 0x91, - 0x75, - 0x4D, - 0x5B, - 0x59, - 0x4E, - 0x33, - 0x34, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x74, - 0x74, - 0x9A, - 0x9A, - 0xB3, - 0x90, - 0x90, - 0xBC, - 0xA8, - 0xA8, - 0xD8, - 0xD8, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xD0, - 0xA7, - 0xD0, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xA7, - 0xA5, - 0xA7, - 0xA7, - 0xBE, - 0x45, - 0xA8, - 0x75, - 0x8B, - 0x5E, - 0x31, - 0x74, - 0x8A, - 0x9C, - 0x94, - 0xA3, - 0x8F, - 0x7E, - 0x7E, - 0x7E, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xAC, - 0x8E, - 0x8E, - 0xCB, - 0xAC, - 0xCB, - 0x8E, - 0x80, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x13, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x34, - 0x34, - 0x00, - 0x04, - 0x33, - 0x00, - 0x0E, - 0x72, - 0x4E, - 0x33, - 0x33, - 0x33, - 0x34, - 0x34, - 0x42, - 0x74, - 0x74, - 0x74, - 0x34, - 0x74, - 0x34, - 0x04, - 0x33, - 0x01, - 0x4E, - 0x04, - 0x33, - 0x00, - 0x71, - 0x34, - 0x34, - 0x74, - 0x74, - 0x3B, - 0x3B, - 0x74, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0xA6, - 0xA6, - 0xB9, - 0x6B, - 0xB9, - 0x5D, - 0x49, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x53, - 0x98, - 0x82, - 0x82, - 0x53, - 0x98, - 0x82, - 0x94, - 0x94, - 0x8F, - 0x7E, - 0x7E, - 0xB2, - 0xBF, - 0xA3, - 0x8F, - 0x94, - 0x94, - 0xA3, - 0x9E, - 0x98, - 0x98, - 0x53, - 0x53, - 0x81, - 0x77, - 0x81, - 0x77, - 0x53, - 0x77, - 0x57, - 0x77, - 0x77, - 0x77, - 0x81, - 0x81, - 0x53, - 0x98, - 0x98, - 0x98, - 0x9E, - 0x9E, - 0x9E, - 0x94, - 0x94, - 0x98, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x53, - 0x81, - 0x82, - 0x81, - 0x57, - 0x81, - 0x69, - 0x69, - 0x83, - 0x69, - 0x69, - 0x69, - 0x88, - 0x69, - 0x50, - 0x88, - 0x50, - 0x43, - 0x50, - 0x43, - 0x4B, - 0x4B, - 0x62, - 0x67, - 0x37, - 0x47, - 0x37, - 0x47, - 0x58, - 0x37, - 0x3E, - 0x3E, - 0x58, - 0x37, - 0x3E, - 0x58, - 0x84, - 0x58, - 0x00, - 0x04, - 0x84, - 0x00, - 0x0B, - 0x39, - 0x39, - 0x67, - 0x39, - 0x39, - 0x38, - 0x39, - 0x38, - 0x38, - 0x38, - 0x39, - 0x00, - 0x04, - 0x38, - 0x00, - 0x0B, - 0x39, - 0x5A, - 0x4D, - 0x45, - 0x36, - 0x36, - 0x23, - 0xAF, - 0x7F, - 0x7F, - 0x7F, - 0x00, - 0x04, - 0x76, - 0x00, - 0x16, - 0x5F, - 0x76, - 0xA0, - 0x7F, - 0xA0, - 0x7F, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xAB, - 0xAB, - 0xB4, - 0x2F, - 0x76, - 0x5F, - 0xAF, - 0x36, - 0x89, - 0x89, - 0x89, - 0x45, - 0x05, - 0x89, - 0x00, - 0x29, - 0x36, - 0x36, - 0x89, - 0x4F, - 0x7C, - 0x89, - 0x7C, - 0x91, - 0x75, - 0x5A, - 0x84, - 0x46, - 0x34, - 0x7D, - 0x8A, - 0xA3, - 0xA3, - 0x86, - 0xB9, - 0x3B, - 0xBA, - 0x6F, - 0x5E, - 0xD6, - 0x8B, - 0x8B, - 0x8B, - 0xBC, - 0xA8, - 0x91, - 0xBE, - 0xA7, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xA7, - 0xA5, - 0xA7, - 0xA5, - 0xAF, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x37, - 0xA7, - 0x36, - 0xA7, - 0xBE, - 0x45, - 0x45, - 0xBE, - 0x66, - 0x8B, - 0x59, - 0x46, - 0x74, - 0x6B, - 0x9C, - 0xA3, - 0x7E, - 0x7E, - 0xAE, - 0xAE, - 0x9B, - 0x9B, - 0x8E, - 0xB1, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xD3, - 0xCB, - 0xCB, - 0xAA, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x61, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x05, - 0x34, - 0x01, - 0x33, - 0x04, - 0x34, - 0x00, - 0x03, - 0x74, - 0x74, - 0x34, - 0x00, - 0x05, - 0x74, - 0x00, - 0x39, - 0x34, - 0x34, - 0x34, - 0x33, - 0x33, - 0x34, - 0x34, - 0x33, - 0x34, - 0x34, - 0x34, - 0x74, - 0x74, - 0x3B, - 0x6E, - 0x3B, - 0x6D, - 0x6D, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0xA6, - 0x4A, - 0xB9, - 0x4A, - 0x4A, - 0x5D, - 0xB9, - 0x5D, - 0x5D, - 0x9C, - 0x8A, - 0x9C, - 0x82, - 0x82, - 0x82, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x94, - 0xA3, - 0xA3, - 0x7E, - 0xBF, - 0xA3, - 0x7E, - 0x8F, - 0xBF, - 0x7E, - 0x94, - 0x94, - 0x9E, - 0x94, - 0x00, - 0x04, - 0x98, - 0x00, - 0x49, - 0x82, - 0x53, - 0x53, - 0x87, - 0x57, - 0x81, - 0x53, - 0x53, - 0x53, - 0x98, - 0x87, - 0x9E, - 0x98, - 0x9E, - 0x8F, - 0x8F, - 0x94, - 0x68, - 0x9E, - 0x94, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x53, - 0x82, - 0x81, - 0x82, - 0x81, - 0x7D, - 0x69, - 0x69, - 0x69, - 0x88, - 0x88, - 0x83, - 0x88, - 0x72, - 0x88, - 0x50, - 0x72, - 0x72, - 0x43, - 0x43, - 0x65, - 0x62, - 0x62, - 0x67, - 0x37, - 0x67, - 0x84, - 0x84, - 0x37, - 0x37, - 0x37, - 0x84, - 0x37, - 0x84, - 0x67, - 0x84, - 0x84, - 0x67, - 0x67, - 0x39, - 0x84, - 0x38, - 0x84, - 0x67, - 0x2E, - 0x67, - 0x38, - 0x39, - 0x00, - 0x08, - 0x38, - 0x00, - 0x22, - 0x84, - 0x66, - 0x45, - 0x36, - 0xAF, - 0x76, - 0x76, - 0x7F, - 0x2C, - 0x7F, - 0x2F, - 0x7F, - 0x76, - 0x5F, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0x7F, - 0xB4, - 0xB4, - 0xB4, - 0x7F, - 0x76, - 0x7F, - 0x7A, - 0x76, - 0x5F, - 0x76, - 0x89, - 0x36, - 0x04, - 0x89, - 0x00, - 0x68, - 0x7C, - 0x5F, - 0x89, - 0x5F, - 0x5F, - 0x5F, - 0x7A, - 0x89, - 0x5F, - 0x89, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x5E, - 0x4E, - 0x34, - 0x56, - 0x9C, - 0xA3, - 0xBF, - 0xB2, - 0xA3, - 0xB9, - 0x6C, - 0xBA, - 0x6F, - 0xD6, - 0x5E, - 0xBB, - 0x90, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0xA8, - 0xBE, - 0xBE, - 0xBE, - 0xA7, - 0xD8, - 0x89, - 0xA7, - 0xA7, - 0xA5, - 0xA5, - 0xD0, - 0xA5, - 0xA5, - 0xA7, - 0xA7, - 0xA7, - 0x45, - 0xBE, - 0x45, - 0x66, - 0x66, - 0x90, - 0x5E, - 0x6F, - 0x74, - 0x5D, - 0x49, - 0x7E, - 0xBF, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x13, - 0xA6, - 0x61, - 0x6D, - 0x6D, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x34, - 0x34, - 0x34, - 0x42, - 0x42, - 0x34, - 0x34, - 0x3B, - 0x74, - 0x74, - 0x00, - 0x06, - 0x3B, - 0x00, - 0x03, - 0x74, - 0x74, - 0x74, - 0x00, - 0x04, - 0x34, - 0x01, - 0x42, - 0x01, - 0x34, - 0x04, - 0x74, - 0x00, - 0x20, - 0x3B, - 0x3B, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x6D, - 0x61, - 0x4A, - 0xB9, - 0x4A, - 0xB9, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x8A, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0x9C, - 0x04, - 0xA3, - 0x00, - 0x0C, - 0xB2, - 0xA3, - 0x7E, - 0x7E, - 0x8F, - 0xA3, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x9E, - 0x9E, - 0x0A, - 0x98, - 0x00, - 0x24, - 0x9E, - 0x9E, - 0x9E, - 0x8F, - 0x9E, - 0x8F, - 0x9E, - 0x94, - 0x8F, - 0x9E, - 0x9E, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x53, - 0x82, - 0x82, - 0x7D, - 0x77, - 0x7D, - 0x69, - 0x57, - 0x83, - 0x69, - 0x88, - 0x88, - 0x83, - 0x6A, - 0x88, - 0x6A, - 0x50, - 0x6A, - 0x43, - 0x43, - 0x04, - 0x62, - 0x00, - 0x37, - 0x4B, - 0x4B, - 0x67, - 0x67, - 0x67, - 0x84, - 0x67, - 0x67, - 0x84, - 0x84, - 0x84, - 0x67, - 0x84, - 0x84, - 0x67, - 0x38, - 0x39, - 0x4E, - 0x39, - 0x38, - 0x38, - 0x4E, - 0x84, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x4E, - 0x2E, - 0x5A, - 0x75, - 0x45, - 0x76, - 0x7F, - 0x2C, - 0x55, - 0x9F, - 0xAB, - 0x55, - 0xAB, - 0x2C, - 0xA0, - 0xAF, - 0xA7, - 0x45, - 0x45, - 0xA7, - 0xA5, - 0xA7, - 0xAF, - 0xAF, - 0xAF, - 0xA0, - 0x00, - 0x04, - 0x76, - 0x00, - 0x4D, - 0x5F, - 0x76, - 0x5F, - 0x5F, - 0x5F, - 0x89, - 0x89, - 0x5F, - 0x7C, - 0x5F, - 0x5F, - 0x5F, - 0x76, - 0x4F, - 0x4F, - 0x7A, - 0x89, - 0x7A, - 0x89, - 0x36, - 0x91, - 0x91, - 0x4D, - 0x5A, - 0x2E, - 0x33, - 0x34, - 0x5D, - 0xA3, - 0xB1, - 0xB1, - 0xB1, - 0xBF, - 0xA4, - 0xB9, - 0x74, - 0xBA, - 0x6F, - 0xD6, - 0x59, - 0xBB, - 0x90, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0xD8, - 0xA8, - 0xA7, - 0xBE, - 0xA7, - 0xA7, - 0xD8, - 0xBE, - 0x89, - 0xBE, - 0xA7, - 0x45, - 0xA7, - 0x45, - 0xBE, - 0xA8, - 0xA8, - 0xBC, - 0x90, - 0xB3, - 0x6F, - 0x6F, - 0x6C, - 0x79, - 0xA3, - 0xBF, - 0xD4, - 0x9B, - 0x9B, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x07, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x03, - 0xD3, - 0xCB, - 0xCB, - 0x00, - 0x07, - 0xD3, - 0x00, - 0x0C, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x00, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x3B, - 0x74, - 0x74, - 0x3B, - 0x00, - 0x05, - 0x74, - 0x04, - 0x3B, - 0x00, - 0x0B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x74, - 0x3B, - 0x74, - 0x74, - 0x74, - 0x56, - 0x00, - 0x04, - 0x74, - 0x00, - 0x0A, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x03, - 0xA6, - 0x6D, - 0xA6, - 0x00, - 0x06, - 0x4A, - 0x00, - 0x0B, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x9C, - 0x00, - 0x04, - 0xA3, - 0x01, - 0xB2, - 0x04, - 0xA3, - 0x00, - 0x16, - 0x8F, - 0xA3, - 0x8F, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x9E, - 0x9E, - 0x94, - 0x9E, - 0x98, - 0x94, - 0x94, - 0x9E, - 0x8F, - 0x9E, - 0x07, - 0x8F, - 0x00, - 0x20, - 0x9E, - 0x94, - 0x98, - 0x9E, - 0x98, - 0x82, - 0x98, - 0x57, - 0x7D, - 0x81, - 0x81, - 0x69, - 0x7D, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x6A, - 0x88, - 0x83, - 0x72, - 0x72, - 0x50, - 0x50, - 0x72, - 0x50, - 0x62, - 0x43, - 0x67, - 0x62, - 0x62, - 0x05, - 0x67, - 0x00, - 0x31, - 0x38, - 0x38, - 0x67, - 0x67, - 0x38, - 0x38, - 0x67, - 0x67, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x2E, - 0x72, - 0x38, - 0x4E, - 0x38, - 0x4E, - 0x4E, - 0x38, - 0x2E, - 0x39, - 0x4D, - 0x91, - 0xAF, - 0x76, - 0x7F, - 0x8C, - 0x8C, - 0x55, - 0x8C, - 0x55, - 0x55, - 0x7F, - 0x76, - 0x36, - 0xBE, - 0x91, - 0xBC, - 0x45, - 0xA8, - 0xA7, - 0xA7, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0x00, - 0x06, - 0x5F, - 0x00, - 0x27, - 0x7A, - 0x89, - 0x4F, - 0x5F, - 0x5F, - 0x4F, - 0x5F, - 0x7A, - 0x4F, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x89, - 0x36, - 0x89, - 0x91, - 0x75, - 0x5A, - 0x2E, - 0x46, - 0xBA, - 0x6C, - 0x5D, - 0xB2, - 0xB1, - 0x8E, - 0xC5, - 0xB1, - 0xB2, - 0xB9, - 0xB9, - 0x74, - 0xBA, - 0x46, - 0xD6, - 0x59, - 0xB3, - 0x90, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x25, - 0xBE, - 0xA8, - 0x91, - 0xBE, - 0x45, - 0xBE, - 0xA7, - 0x89, - 0xA7, - 0xD8, - 0x89, - 0xA7, - 0xBE, - 0xBE, - 0x45, - 0xA8, - 0x45, - 0x66, - 0x8B, - 0x90, - 0x5E, - 0x6F, - 0x74, - 0x4A, - 0x86, - 0xB2, - 0xB2, - 0xB1, - 0x8E, - 0xAC, - 0x8E, - 0xAC, - 0xAC, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x07, - 0xD3, - 0xAA, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xCA, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x0B, - 0xCB, - 0xCB, - 0xCB, - 0xAC, - 0xCE, - 0xCE, - 0xAC, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x11, - 0xA6, - 0x61, - 0x4A, - 0x9D, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x3B, - 0x00, - 0x0E, - 0x74, - 0x6C, - 0x74, - 0x3B, - 0x74, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x05, - 0x3B, - 0x00, - 0x2D, - 0x74, - 0x74, - 0x3B, - 0x74, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x4A, - 0x4A, - 0x6C, - 0x6B, - 0x4A, - 0x6B, - 0x4A, - 0x8A, - 0x5D, - 0x6B, - 0x5D, - 0x9C, - 0x86, - 0x79, - 0x9C, - 0x35, - 0x52, - 0x9C, - 0x00, - 0x04, - 0xA3, - 0x00, - 0x12, - 0x9C, - 0xA3, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x8F, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x07, - 0x8F, - 0x00, - 0x2A, - 0x99, - 0x8F, - 0x8F, - 0x9E, - 0x8F, - 0x9E, - 0x94, - 0x94, - 0x98, - 0x98, - 0x98, - 0x82, - 0x81, - 0x7D, - 0x7D, - 0x57, - 0x69, - 0x69, - 0x69, - 0x83, - 0x88, - 0x69, - 0x88, - 0x69, - 0x72, - 0x72, - 0x6A, - 0x72, - 0x72, - 0x50, - 0x43, - 0x72, - 0x4E, - 0x65, - 0x38, - 0x4E, - 0x67, - 0x4E, - 0x62, - 0x38, - 0x62, - 0x67, - 0x05, - 0x38, - 0x00, - 0x80, - 0x4E, - 0x4E, - 0x38, - 0x38, - 0x38, - 0x4E, - 0x4E, - 0x62, - 0x4E, - 0x4E, - 0x4E, - 0x38, - 0x4E, - 0x46, - 0x62, - 0x2E, - 0x5A, - 0x75, - 0x45, - 0x23, - 0x2C, - 0x8C, - 0x26, - 0x32, - 0x32, - 0x8C, - 0x32, - 0x55, - 0x2C, - 0x7F, - 0x45, - 0x45, - 0xBC, - 0x5B, - 0x8B, - 0xA8, - 0xA8, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xA5, - 0x89, - 0xA7, - 0xA5, - 0x89, - 0x36, - 0x89, - 0x5F, - 0x89, - 0x4F, - 0x5F, - 0x5F, - 0x5F, - 0x7A, - 0x5F, - 0x5F, - 0x7A, - 0x5F, - 0x7A, - 0x5F, - 0x89, - 0x5F, - 0x89, - 0x91, - 0x91, - 0x5A, - 0x59, - 0x5E, - 0x6F, - 0x34, - 0x6B, - 0x52, - 0xBF, - 0x8E, - 0xAC, - 0xCE, - 0xB1, - 0xB2, - 0x86, - 0x8A, - 0xA6, - 0x74, - 0xBA, - 0x46, - 0xD6, - 0x90, - 0xB3, - 0x90, - 0x8B, - 0xBC, - 0x5B, - 0x8B, - 0xA8, - 0xBC, - 0x75, - 0xBE, - 0xBE, - 0x45, - 0xBE, - 0xBE, - 0x45, - 0xA7, - 0xBE, - 0x45, - 0xBE, - 0xBE, - 0xA8, - 0x66, - 0xBC, - 0x8B, - 0x59, - 0x9A, - 0x6F, - 0x6E, - 0xB9, - 0x52, - 0xB2, - 0xB1, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0x07, - 0xCB, - 0x00, - 0x06, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0x8D, - 0x06, - 0xD3, - 0x00, - 0x0C, - 0xCB, - 0x8D, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0xAC, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x21, - 0x61, - 0x4A, - 0xA6, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x3B, - 0x6E, - 0x6E, - 0x3B, - 0x6D, - 0x3B, - 0x6E, - 0x3B, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x0D, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x6D, - 0x3B, - 0x61, - 0x3B, - 0x61, - 0x6D, - 0x00, - 0x05, - 0x61, - 0x00, - 0x0A, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x6E, - 0x61, - 0x61, - 0x05, - 0x6D, - 0x00, - 0x14, - 0x6C, - 0x4A, - 0x6C, - 0x4A, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0xB9, - 0xB9, - 0x5D, - 0x79, - 0x52, - 0x79, - 0x9C, - 0x52, - 0x86, - 0xA3, - 0xA3, - 0x9C, - 0x04, - 0xA3, - 0x00, - 0x0C, - 0x94, - 0x8F, - 0x94, - 0x7E, - 0xA3, - 0x8F, - 0xA3, - 0x9E, - 0x8F, - 0xA3, - 0x8F, - 0x94, - 0x08, - 0x8F, - 0x00, - 0x2F, - 0x7E, - 0x99, - 0x8F, - 0x8F, - 0x8F, - 0x94, - 0x9E, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x82, - 0x98, - 0x57, - 0x77, - 0x82, - 0x57, - 0x69, - 0x69, - 0x69, - 0x57, - 0x83, - 0x88, - 0x69, - 0x88, - 0x88, - 0x6A, - 0x88, - 0x50, - 0x72, - 0x72, - 0x43, - 0x72, - 0x72, - 0x72, - 0x62, - 0x62, - 0x4E, - 0x4E, - 0x62, - 0x4E, - 0x38, - 0x4E, - 0x67, - 0x4E, - 0x4E, - 0x38, - 0x00, - 0x0F, - 0x4E, - 0x00, - 0x1F, - 0x27, - 0x66, - 0x64, - 0x36, - 0x7F, - 0x2C, - 0x32, - 0x32, - 0x85, - 0x85, - 0x32, - 0x32, - 0x8C, - 0x2C, - 0x76, - 0x36, - 0x75, - 0x8B, - 0x59, - 0x59, - 0x5B, - 0x8B, - 0xA8, - 0x66, - 0xBE, - 0xA8, - 0x45, - 0x45, - 0x45, - 0x89, - 0xA5, - 0x00, - 0x04, - 0x89, - 0x00, - 0x4F, - 0x5F, - 0x5F, - 0x4F, - 0x5F, - 0x7A, - 0x5F, - 0x7A, - 0x5F, - 0x36, - 0x4F, - 0x36, - 0x5F, - 0x91, - 0x91, - 0x75, - 0x5B, - 0x90, - 0x5E, - 0x9A, - 0x42, - 0x3B, - 0x49, - 0xB2, - 0xB1, - 0x8E, - 0x8E, - 0x9B, - 0xBF, - 0xBF, - 0xA3, - 0x9C, - 0xB9, - 0x74, - 0x88, - 0xBA, - 0x9A, - 0x9A, - 0xB3, - 0xB3, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0xBC, - 0x5B, - 0x66, - 0xA8, - 0xBE, - 0xBE, - 0xA8, - 0x45, - 0xA7, - 0xA8, - 0xBE, - 0xA8, - 0x45, - 0xA8, - 0xA8, - 0x8B, - 0x8B, - 0x59, - 0xB3, - 0x46, - 0xBA, - 0x6E, - 0x49, - 0xA4, - 0xBF, - 0xB1, - 0x8E, - 0xAC, - 0xCE, - 0xAC, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0xCE, - 0xD3, - 0x00, - 0x06, - 0xCB, - 0x04, - 0xD3, - 0x00, - 0x04, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0x04, - 0xD3, - 0x04, - 0xCB, - 0x00, - 0x08, - 0xCE, - 0xCB, - 0xAC, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x38, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x9D, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x6D, - 0x6D, - 0x6E, - 0x6E, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0xA6, - 0x6E, - 0x07, - 0x61, - 0x00, - 0x03, - 0x6D, - 0x6D, - 0x61, - 0x00, - 0x07, - 0x6D, - 0x06, - 0x4A, - 0x00, - 0x0B, - 0x6B, - 0x49, - 0xB9, - 0x6B, - 0x5D, - 0x49, - 0xB9, - 0x9C, - 0x9C, - 0x9C, - 0x86, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x39, - 0xA3, - 0xA3, - 0xA3, - 0x94, - 0x94, - 0x7E, - 0x8F, - 0xA3, - 0x7E, - 0x8F, - 0x8F, - 0xA3, - 0x7E, - 0x94, - 0x8F, - 0x8F, - 0xAE, - 0x8F, - 0x7E, - 0xA2, - 0x8F, - 0x8F, - 0x7E, - 0x9E, - 0x9E, - 0x8F, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x82, - 0x7D, - 0x81, - 0x82, - 0x69, - 0x57, - 0x57, - 0x69, - 0x7D, - 0x88, - 0x88, - 0x69, - 0x88, - 0x88, - 0x6A, - 0x88, - 0x72, - 0x88, - 0x72, - 0x72, - 0x50, - 0x72, - 0x43, - 0x72, - 0x4E, - 0x72, - 0x00, - 0x05, - 0x4E, - 0x01, - 0x72, - 0x05, - 0x4E, - 0x00, - 0x06, - 0x72, - 0x38, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x05, - 0x4E, - 0x00, - 0x56, - 0x72, - 0x4E, - 0x2E, - 0x29, - 0x66, - 0xA7, - 0x76, - 0x2C, - 0x8C, - 0x32, - 0x85, - 0x2D, - 0x2D, - 0x32, - 0x2D, - 0x55, - 0x55, - 0x76, - 0xA7, - 0xA8, - 0x5A, - 0x5E, - 0x2E, - 0x59, - 0x59, - 0x5A, - 0xBC, - 0x8B, - 0x66, - 0x66, - 0xA8, - 0x91, - 0xBE, - 0x91, - 0x89, - 0x45, - 0x89, - 0x89, - 0x4F, - 0x4F, - 0x89, - 0x4F, - 0x89, - 0x89, - 0x4F, - 0x5F, - 0x89, - 0x89, - 0x45, - 0x91, - 0xA8, - 0x66, - 0x8B, - 0x90, - 0x5E, - 0x6F, - 0x6E, - 0x3B, - 0x49, - 0xB2, - 0xB1, - 0x8E, - 0x8E, - 0x9B, - 0xBF, - 0xB2, - 0x52, - 0xA3, - 0x9C, - 0x8A, - 0x6C, - 0xDC, - 0xBA, - 0xBA, - 0x46, - 0x46, - 0x5E, - 0xD6, - 0x5A, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0xA8, - 0x75, - 0x06, - 0xA8, - 0x00, - 0x37, - 0x45, - 0xA8, - 0xA8, - 0x66, - 0x8B, - 0xBB, - 0x59, - 0x9A, - 0x6F, - 0x42, - 0x4A, - 0x52, - 0xB2, - 0xD4, - 0xB1, - 0xCE, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xD3, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCE, - 0x8E, - 0xCB, - 0x8E, - 0xAC, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x00, - 0x06, - 0x61, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x0B, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x04, - 0x61, - 0x01, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x06, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x04, - 0x61, - 0x00, - 0x40, - 0x6D, - 0xA6, - 0x61, - 0x6E, - 0x4A, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x6D, - 0x6C, - 0xA6, - 0x4A, - 0x4A, - 0xA6, - 0x6B, - 0x6C, - 0xB9, - 0xB9, - 0x5D, - 0x5D, - 0xB9, - 0xB9, - 0x9C, - 0x79, - 0x9C, - 0x9C, - 0x86, - 0xA3, - 0x9C, - 0xA3, - 0x94, - 0xA3, - 0xA3, - 0x7E, - 0xA3, - 0x94, - 0xBF, - 0xBF, - 0x8F, - 0x8F, - 0xBF, - 0xBF, - 0x8F, - 0x7E, - 0x99, - 0x8F, - 0x7E, - 0x99, - 0x06, - 0x8F, - 0x00, - 0x17, - 0x94, - 0x94, - 0x98, - 0x98, - 0x81, - 0x82, - 0x8A, - 0x82, - 0x77, - 0x57, - 0x57, - 0x69, - 0x69, - 0x88, - 0x77, - 0x88, - 0x88, - 0x69, - 0x88, - 0x88, - 0x88, - 0x72, - 0x6A, - 0x00, - 0x04, - 0x72, - 0x00, - 0x0D, - 0x4E, - 0x72, - 0x4E, - 0x72, - 0x4E, - 0x4E, - 0x72, - 0x4E, - 0x4E, - 0x4E, - 0x72, - 0x4E, - 0x72, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x12, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x38, - 0x2E, - 0x5B, - 0x45, - 0x36, - 0x7F, - 0x55, - 0x32, - 0x32, - 0x04, - 0x70, - 0x00, - 0x47, - 0x32, - 0x8C, - 0x2C, - 0xA0, - 0x45, - 0x66, - 0x59, - 0x2E, - 0x46, - 0x46, - 0x5E, - 0xB3, - 0x5A, - 0x5A, - 0x8B, - 0x5B, - 0x66, - 0x75, - 0x91, - 0x75, - 0x91, - 0x7C, - 0x89, - 0x89, - 0x89, - 0x5F, - 0x36, - 0x5F, - 0x36, - 0x89, - 0xA7, - 0x89, - 0x45, - 0xBE, - 0x75, - 0xA8, - 0x66, - 0x8B, - 0xB3, - 0xB3, - 0x6F, - 0x6F, - 0x6E, - 0x4A, - 0x86, - 0x7E, - 0xD4, - 0xB1, - 0xBF, - 0xB2, - 0xA3, - 0xA3, - 0x9C, - 0x9C, - 0x9C, - 0xB9, - 0x56, - 0xDC, - 0x88, - 0xBA, - 0x42, - 0xBA, - 0x4E, - 0xD6, - 0xD6, - 0x5E, - 0xB3, - 0x5E, - 0x90, - 0xBB, - 0x5A, - 0x00, - 0x04, - 0xBC, - 0x05, - 0xA8, - 0x00, - 0x15, - 0xBC, - 0x8B, - 0x8B, - 0x59, - 0xB3, - 0x5E, - 0x6F, - 0x74, - 0x4A, - 0x35, - 0xB2, - 0xD4, - 0xCE, - 0xCB, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCE, - 0xCE, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x04, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0x05, - 0xD3, - 0x00, - 0x08, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0x04, - 0xCB, - 0x01, - 0xCE, - 0x04, - 0x8E, - 0x01, - 0xCB, - 0x01, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x61, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0x4A, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x00, - 0x06, - 0x61, - 0x01, - 0x6E, - 0x07, - 0x61, - 0x01, - 0x6D, - 0x08, - 0x61, - 0x01, - 0x6D, - 0x04, - 0x61, - 0x00, - 0x3B, - 0x6D, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x6D, - 0xA6, - 0x6D, - 0x4A, - 0x6D, - 0x4A, - 0x6D, - 0x4A, - 0xB9, - 0x4A, - 0x4A, - 0x6B, - 0xB9, - 0xB9, - 0x6B, - 0xB9, - 0x9C, - 0x5D, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0xA3, - 0xA3, - 0x94, - 0xA3, - 0x94, - 0xB2, - 0x94, - 0x8F, - 0xA3, - 0x7E, - 0x8F, - 0x8F, - 0xAE, - 0x8F, - 0xBF, - 0x7E, - 0xA2, - 0x8F, - 0xAE, - 0x00, - 0x04, - 0x8F, - 0x00, - 0x12, - 0x9E, - 0x8F, - 0x9E, - 0x9E, - 0x98, - 0x9C, - 0x82, - 0x98, - 0x98, - 0x8A, - 0x81, - 0x7D, - 0x7D, - 0x77, - 0x7D, - 0x88, - 0x69, - 0x69, - 0x04, - 0x88, - 0x00, - 0x03, - 0x72, - 0x88, - 0x88, - 0x00, - 0x06, - 0x72, - 0x00, - 0x87, - 0x4E, - 0x72, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x72, - 0x72, - 0x4E, - 0x72, - 0x4E, - 0x4E, - 0x72, - 0x72, - 0x4E, - 0x4E, - 0x4E, - 0x46, - 0x29, - 0x4D, - 0x36, - 0xAF, - 0x1C, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x70, - 0x2D, - 0x32, - 0xAB, - 0x23, - 0xA7, - 0x75, - 0x59, - 0x46, - 0x72, - 0x46, - 0x2E, - 0x46, - 0x5E, - 0x5E, - 0x59, - 0x59, - 0x90, - 0x90, - 0x66, - 0xA8, - 0x91, - 0xBE, - 0x89, - 0x89, - 0x5F, - 0x36, - 0x36, - 0x89, - 0xA7, - 0x89, - 0xBE, - 0x45, - 0xA8, - 0x75, - 0xBC, - 0x8B, - 0xB3, - 0x9A, - 0xB3, - 0x6F, - 0xBA, - 0x6E, - 0x61, - 0x35, - 0x52, - 0xA3, - 0x52, - 0x35, - 0x52, - 0x49, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0xB9, - 0x8A, - 0x6C, - 0x34, - 0x74, - 0xBA, - 0xBA, - 0xBA, - 0xDD, - 0x6F, - 0x6F, - 0x9A, - 0x46, - 0x9A, - 0x5E, - 0x90, - 0x90, - 0x5B, - 0x66, - 0x66, - 0xA8, - 0x66, - 0xA8, - 0xA8, - 0xA8, - 0x8B, - 0x66, - 0x8B, - 0x90, - 0x59, - 0x5E, - 0x9A, - 0x42, - 0x6E, - 0x5D, - 0xA4, - 0xB2, - 0xB1, - 0x8E, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0x00, - 0x07, - 0xCB, - 0x00, - 0x1B, - 0xD3, - 0xAA, - 0xD3, - 0xCB, - 0xD3, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xE0, - 0xD3, - 0xD3, - 0xCA, - 0xD3, - 0xCB, - 0xC6, - 0xCB, - 0xCB, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x4A, - 0x61, - 0xA6, - 0x4A, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x00, - 0x04, - 0x61, - 0x00, - 0x0A, - 0x4A, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x08, - 0x61, - 0x00, - 0x04, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x0D, - 0x61, - 0x01, - 0x6D, - 0x05, - 0x61, - 0x00, - 0x19, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x3B, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x6D, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x08, - 0x8A, - 0xB9, - 0x8A, - 0xB9, - 0x9C, - 0xB9, - 0x8A, - 0xB9, - 0x06, - 0x9C, - 0x00, - 0x23, - 0x8F, - 0xA3, - 0xA3, - 0x8F, - 0xA3, - 0xBF, - 0x7E, - 0xBF, - 0xBF, - 0x8F, - 0xAE, - 0x8F, - 0x8F, - 0x7E, - 0x8F, - 0x7E, - 0x8F, - 0x9E, - 0x9E, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x82, - 0x98, - 0x82, - 0x57, - 0x98, - 0x98, - 0x7D, - 0x7D, - 0x81, - 0x77, - 0x7D, - 0x57, - 0x00, - 0x05, - 0x88, - 0x00, - 0x05, - 0x72, - 0x88, - 0x72, - 0x72, - 0x88, - 0x00, - 0x0C, - 0x72, - 0x01, - 0x4E, - 0x01, - 0x4E, - 0x0B, - 0x72, - 0x00, - 0x4D, - 0x33, - 0x33, - 0x27, - 0x5B, - 0x91, - 0xA5, - 0x7F, - 0xAB, - 0x26, - 0x85, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x70, - 0x2D, - 0x8C, - 0x55, - 0xA0, - 0x36, - 0x66, - 0x59, - 0x31, - 0x33, - 0x4E, - 0x4E, - 0x31, - 0x31, - 0x46, - 0x46, - 0x2E, - 0x59, - 0x5A, - 0x8B, - 0x66, - 0x91, - 0x45, - 0xA7, - 0x89, - 0xA5, - 0x36, - 0x45, - 0xA7, - 0x45, - 0xA7, - 0xA8, - 0xBE, - 0x75, - 0xBC, - 0x8B, - 0xBB, - 0x9A, - 0xB3, - 0x9A, - 0x6F, - 0xDC, - 0x6E, - 0x6C, - 0xB9, - 0x5D, - 0xB9, - 0x49, - 0xB9, - 0x6B, - 0x6B, - 0x8A, - 0x6C, - 0x6B, - 0x6B, - 0x8A, - 0xA6, - 0x6C, - 0x6C, - 0x74, - 0x3B, - 0x74, - 0x6E, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x2A, - 0x46, - 0x9A, - 0x5E, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x66, - 0x66, - 0xBC, - 0xBC, - 0xBC, - 0x8B, - 0x8B, - 0x8B, - 0xB3, - 0x59, - 0x9A, - 0x6F, - 0x42, - 0x6D, - 0x49, - 0xB2, - 0xB2, - 0x8E, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0x04, - 0xD3, - 0x00, - 0x03, - 0xCA, - 0xD3, - 0xCA, - 0x00, - 0x05, - 0xD3, - 0x04, - 0xCB, - 0x00, - 0x08, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0x8E, - 0xCB, - 0xCB, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xA6, - 0x4A, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x00, - 0x05, - 0x61, - 0x00, - 0x05, - 0x4A, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x00, - 0x04, - 0x61, - 0x00, - 0x05, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x01, - 0xA6, - 0x12, - 0x61, - 0x00, - 0x10, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x3B, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x6D, - 0x04, - 0x6E, - 0x00, - 0x3F, - 0x61, - 0x6E, - 0x6D, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x4A, - 0x6D, - 0xA6, - 0x6C, - 0xA6, - 0x6C, - 0x4A, - 0x6B, - 0x4A, - 0x6B, - 0xB9, - 0x9C, - 0xB9, - 0xB9, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0xA3, - 0xA3, - 0x94, - 0xA3, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0xAE, - 0x7E, - 0x8F, - 0xA2, - 0x7E, - 0x7E, - 0x99, - 0x8F, - 0x8F, - 0x8F, - 0x94, - 0x94, - 0x94, - 0x98, - 0x94, - 0x82, - 0x98, - 0x82, - 0x82, - 0x57, - 0x82, - 0x57, - 0x57, - 0x7D, - 0x69, - 0x88, - 0x69, - 0x69, - 0x7D, - 0x00, - 0x05, - 0x88, - 0x00, - 0x04, - 0x72, - 0x33, - 0x72, - 0x33, - 0x0A, - 0x72, - 0x01, - 0x88, - 0x0A, - 0x72, - 0x00, - 0x4E, - 0x33, - 0x72, - 0x88, - 0x2E, - 0x59, - 0x75, - 0x36, - 0xAF, - 0x2C, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x7B, - 0x95, - 0x70, - 0x70, - 0x2D, - 0x32, - 0x55, - 0x2F, - 0xA5, - 0x45, - 0x5A, - 0x2E, - 0x33, - 0x72, - 0xBA, - 0x33, - 0x31, - 0x31, - 0x31, - 0x5E, - 0x59, - 0x8B, - 0x66, - 0xA8, - 0xBE, - 0x45, - 0x89, - 0xA7, - 0x89, - 0xA7, - 0xA5, - 0xBE, - 0xD8, - 0xA8, - 0xBE, - 0xA8, - 0xBC, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0x6F, - 0xE4, - 0x6F, - 0xBA, - 0xBA, - 0x74, - 0x74, - 0x6E, - 0x3B, - 0x6D, - 0x61, - 0x6D, - 0x6D, - 0x6C, - 0x8A, - 0x6C, - 0x6D, - 0x6C, - 0x7D, - 0xDC, - 0x6C, - 0x6D, - 0xA6, - 0x8A, - 0x04, - 0x6C, - 0x00, - 0x22, - 0x7D, - 0xBA, - 0x42, - 0x46, - 0xB3, - 0x5E, - 0x90, - 0x90, - 0xBB, - 0xBC, - 0xBB, - 0x8B, - 0xBC, - 0x8B, - 0x8B, - 0x8B, - 0x90, - 0x59, - 0xB3, - 0x6F, - 0x6F, - 0x3B, - 0x4A, - 0x35, - 0xB2, - 0xB1, - 0x8E, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCB, - 0xCE, - 0x06, - 0xCB, - 0x01, - 0xD3, - 0x01, - 0xCB, - 0x05, - 0xD3, - 0x00, - 0x05, - 0xCA, - 0xD3, - 0xD3, - 0xCA, - 0xE0, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x0C, - 0xCB, - 0xD3, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0xCE, - 0xCB, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x6D, - 0x61, - 0x6D, - 0x09, - 0x61, - 0x00, - 0x08, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x07, - 0x61, - 0x01, - 0x6E, - 0x06, - 0x61, - 0x00, - 0x0A, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x04, - 0x6E, - 0x00, - 0x0C, - 0x6D, - 0x61, - 0x6E, - 0x6D, - 0x6E, - 0x6D, - 0x6D, - 0x3B, - 0x6D, - 0x3B, - 0x6D, - 0x3B, - 0x04, - 0x6D, - 0x00, - 0x07, - 0x6C, - 0x6C, - 0x4A, - 0x6C, - 0x4A, - 0xB9, - 0x8A, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x07, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x9C, - 0xA3, - 0x9C, - 0x00, - 0x04, - 0xA3, - 0x00, - 0x0A, - 0x8F, - 0x7E, - 0x8F, - 0x7E, - 0x99, - 0x8F, - 0x8F, - 0x8F, - 0x7E, - 0x8F, - 0x05, - 0x94, - 0x00, - 0x07, - 0x82, - 0x98, - 0x98, - 0x82, - 0x98, - 0x82, - 0x8A, - 0x00, - 0x04, - 0x7D, - 0x01, - 0x69, - 0x04, - 0x88, - 0x00, - 0x0E, - 0x33, - 0x88, - 0x88, - 0x33, - 0x72, - 0x88, - 0x88, - 0x72, - 0x31, - 0x88, - 0x72, - 0x33, - 0x72, - 0x88, - 0x04, - 0x72, - 0x00, - 0x07, - 0x88, - 0x72, - 0x72, - 0x72, - 0x88, - 0x72, - 0x88, - 0x00, - 0x04, - 0x72, - 0x00, - 0x6D, - 0x33, - 0x72, - 0x29, - 0x5B, - 0x45, - 0xAF, - 0x23, - 0x55, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x70, - 0x2D, - 0x85, - 0x8C, - 0x2C, - 0x76, - 0x45, - 0x90, - 0x2E, - 0x33, - 0x88, - 0x34, - 0x33, - 0x34, - 0x31, - 0x46, - 0x5E, - 0x59, - 0xBB, - 0x66, - 0xBC, - 0x45, - 0x45, - 0xA7, - 0xA7, - 0xA5, - 0xA7, - 0xA7, - 0xA7, - 0xBE, - 0xA8, - 0xD8, - 0xE8, - 0x66, - 0xBB, - 0xB3, - 0xB3, - 0xD6, - 0x6F, - 0xDD, - 0xDD, - 0xBA, - 0xDD, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0xBA, - 0xBA, - 0x6E, - 0x6E, - 0x74, - 0x74, - 0x74, - 0x34, - 0x74, - 0x74, - 0x74, - 0x9D, - 0xB9, - 0xB9, - 0xE3, - 0xB9, - 0x49, - 0xB9, - 0x8A, - 0x8A, - 0x3B, - 0xBA, - 0x6F, - 0x46, - 0xB3, - 0x59, - 0x90, - 0x8B, - 0x8B, - 0x8B, - 0xBC, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x59, - 0x9A, - 0x9A, - 0xBA, - 0x3B, - 0xB9, - 0xB2, - 0xB2, - 0xB1, - 0xCE, - 0xCE, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x0A, - 0xAA, - 0xCB, - 0xCB, - 0xD3, - 0xD3, - 0xAA, - 0xD3, - 0xD3, - 0xD3, - 0xC6, - 0x06, - 0xD3, - 0x00, - 0x05, - 0xCA, - 0xD3, - 0x8D, - 0xCB, - 0xD3, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x07, - 0x8E, - 0xCE, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x4A, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x6D, - 0x4A, - 0x04, - 0x61, - 0x00, - 0x0C, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x06, - 0x61, - 0x01, - 0xA6, - 0x08, - 0x61, - 0x00, - 0x32, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x6D, - 0x61, - 0x6D, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x6E, - 0x6D, - 0x3B, - 0x6D, - 0x3B, - 0x6D, - 0x6D, - 0x6C, - 0x3B, - 0x6C, - 0xA6, - 0x56, - 0x6B, - 0x4A, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x9C, - 0x5D, - 0x04, - 0x9C, - 0x00, - 0x1E, - 0x94, - 0xA3, - 0x94, - 0x94, - 0x8F, - 0xA3, - 0x8F, - 0xA3, - 0x8F, - 0x8F, - 0xA3, - 0x8F, - 0x9E, - 0x8F, - 0x94, - 0x8F, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x82, - 0x98, - 0x8A, - 0x81, - 0x81, - 0x82, - 0x81, - 0x7D, - 0x57, - 0x04, - 0x69, - 0x07, - 0x88, - 0x00, - 0x08, - 0x33, - 0x88, - 0x88, - 0x72, - 0x88, - 0x88, - 0x88, - 0x72, - 0x04, - 0x88, - 0x00, - 0x77, - 0x72, - 0x88, - 0x88, - 0x88, - 0x72, - 0x88, - 0x72, - 0x88, - 0x33, - 0x88, - 0x72, - 0x33, - 0x46, - 0x59, - 0x75, - 0x89, - 0x76, - 0x2C, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x70, - 0x70, - 0x85, - 0x26, - 0x9F, - 0x76, - 0xA7, - 0x45, - 0x59, - 0x31, - 0x69, - 0x88, - 0x88, - 0x31, - 0x31, - 0x5E, - 0x59, - 0x90, - 0x8B, - 0xBC, - 0xA8, - 0x45, - 0xBE, - 0xA7, - 0xA7, - 0xA5, - 0xA7, - 0xA7, - 0xD8, - 0xBE, - 0xD8, - 0xA8, - 0xBC, - 0xDB, - 0x90, - 0xE1, - 0xE6, - 0xB3, - 0xE1, - 0xD6, - 0xE6, - 0xDD, - 0xDD, - 0xD6, - 0xD6, - 0xD6, - 0x9A, - 0x9A, - 0x6F, - 0xBA, - 0x6F, - 0xBA, - 0xBA, - 0x6F, - 0xBA, - 0xBA, - 0xBA, - 0x42, - 0x74, - 0x6D, - 0xB9, - 0x8A, - 0xA4, - 0xA4, - 0xA3, - 0xB2, - 0x79, - 0x8A, - 0xBA, - 0x6F, - 0xD6, - 0x5E, - 0xB3, - 0xB3, - 0x8B, - 0xBB, - 0x8B, - 0xBB, - 0x8B, - 0x8B, - 0xBB, - 0x90, - 0x5E, - 0xB3, - 0x46, - 0x6F, - 0x42, - 0x61, - 0x5D, - 0x52, - 0xD4, - 0x8E, - 0x8E, - 0x00, - 0x04, - 0xCB, - 0x01, - 0xCE, - 0x05, - 0xCB, - 0x00, - 0x03, - 0xD3, - 0xD3, - 0xCB, - 0x00, - 0x06, - 0xD3, - 0x01, - 0xCA, - 0x01, - 0xCA, - 0x07, - 0xD3, - 0x07, - 0xCB, - 0x00, - 0x06, - 0xAC, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x00, - 0x00, - 0x16, - 0x61, - 0x61, - 0x61, - 0x4A, - 0x61, - 0x61, - 0x4A, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x16, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0xA6, - 0x61, - 0xA6, - 0x0B, - 0x61, - 0x00, - 0x3C, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x61, - 0x3B, - 0x3B, - 0x6C, - 0x3B, - 0x4A, - 0x6C, - 0xA6, - 0x6C, - 0x6B, - 0x6C, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x9C, - 0x94, - 0x94, - 0xA3, - 0x8F, - 0xA3, - 0x94, - 0x94, - 0xA3, - 0x04, - 0x94, - 0x00, - 0x15, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x98, - 0x82, - 0x82, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x69, - 0x88, - 0x7D, - 0x69, - 0x88, - 0x88, - 0x88, - 0x34, - 0x00, - 0x09, - 0x88, - 0x01, - 0x72, - 0x08, - 0x88, - 0x00, - 0x74, - 0x72, - 0x88, - 0x88, - 0x88, - 0x72, - 0x88, - 0x72, - 0x22, - 0x31, - 0x2E, - 0x5A, - 0x45, - 0xA5, - 0x2F, - 0x9F, - 0x26, - 0x26, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x95, - 0x70, - 0x70, - 0x2D, - 0x32, - 0x8C, - 0x2C, - 0x76, - 0x45, - 0x8B, - 0x2E, - 0x88, - 0x88, - 0x34, - 0x31, - 0x46, - 0x5E, - 0x90, - 0x8B, - 0xBC, - 0x66, - 0xBE, - 0xBE, - 0xA7, - 0xA7, - 0xD0, - 0xA5, - 0xD0, - 0xA7, - 0xA7, - 0xBE, - 0xD8, - 0xD8, - 0xBC, - 0xBC, - 0xBB, - 0xE1, - 0xDB, - 0xE1, - 0xE6, - 0xB3, - 0xE6, - 0xE6, - 0xD6, - 0xD6, - 0xE6, - 0xB3, - 0xD6, - 0xB3, - 0x9A, - 0x9A, - 0xD6, - 0x6F, - 0x6F, - 0x9A, - 0xD6, - 0x6F, - 0xBA, - 0x6F, - 0xBA, - 0x9D, - 0xB9, - 0x79, - 0xA4, - 0xB2, - 0xB1, - 0xD4, - 0x35, - 0x6E, - 0x6E, - 0x6F, - 0x9A, - 0xB3, - 0xB3, - 0x90, - 0x90, - 0xBB, - 0x8B, - 0x8B, - 0xBB, - 0x8B, - 0x90, - 0x59, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x74, - 0x4A, - 0x35, - 0xB2, - 0xB1, - 0xAC, - 0xCE, - 0x08, - 0xCB, - 0x00, - 0x03, - 0xD3, - 0xD3, - 0xCB, - 0x00, - 0x07, - 0xD3, - 0x00, - 0x17, - 0xCA, - 0xD3, - 0xCA, - 0xD3, - 0xD3, - 0xD3, - 0x8D, - 0xD3, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCE, - 0xCE, - 0xD4, - 0x8E, - 0x8E, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x08, - 0xA6, - 0x00, - 0x09, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x61, - 0x4A, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x16, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0xA6, - 0x05, - 0x61, - 0x00, - 0x05, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6D, - 0x00, - 0x05, - 0x61, - 0x01, - 0x6D, - 0x05, - 0x61, - 0x00, - 0x05, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x00, - 0x05, - 0x6E, - 0x00, - 0x03, - 0x61, - 0x6E, - 0x61, - 0x00, - 0x04, - 0x6E, - 0x01, - 0x3B, - 0x04, - 0x6E, - 0x00, - 0x15, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x74, - 0x6E, - 0x3B, - 0x74, - 0x3B, - 0x6C, - 0x6C, - 0x6D, - 0x6C, - 0x6C, - 0x6B, - 0x6C, - 0x6B, - 0x6C, - 0x6B, - 0x6B, - 0x8A, - 0x00, - 0x07, - 0x9C, - 0x01, - 0x94, - 0x01, - 0x9C, - 0x07, - 0x94, - 0x00, - 0x14, - 0x9C, - 0x94, - 0x98, - 0x9E, - 0x9C, - 0x98, - 0x82, - 0x98, - 0x98, - 0x98, - 0x82, - 0x81, - 0x7D, - 0x77, - 0x8A, - 0x7D, - 0x69, - 0x69, - 0x7D, - 0x7D, - 0x0E, - 0x88, - 0x01, - 0x72, - 0x0C, - 0x88, - 0x00, - 0x41, - 0x31, - 0x4E, - 0x5B, - 0x75, - 0x36, - 0x76, - 0xAB, - 0x55, - 0x32, - 0x70, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x7B, - 0x70, - 0x92, - 0x70, - 0x2D, - 0x85, - 0x8C, - 0x9F, - 0x7F, - 0xAF, - 0xA8, - 0x90, - 0x9A, - 0x88, - 0x72, - 0x46, - 0x5E, - 0x59, - 0x90, - 0xBC, - 0xA8, - 0xA8, - 0xBE, - 0xA7, - 0xA5, - 0xA5, - 0xD0, - 0xA5, - 0xA7, - 0xD0, - 0xA7, - 0xD0, - 0xBE, - 0xD8, - 0xD8, - 0xDB, - 0xDB, - 0xDB, - 0xE1, - 0xDB, - 0xED, - 0xE1, - 0xE6, - 0xE1, - 0xE6, - 0xE1, - 0xE6, - 0xB3, - 0xE1, - 0xB3, - 0xE1, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x29, - 0xD6, - 0x9A, - 0x9A, - 0x9A, - 0xDD, - 0x6E, - 0x9D, - 0xA6, - 0xB9, - 0xA4, - 0xB2, - 0xB2, - 0xB2, - 0x5D, - 0x6E, - 0xBA, - 0x9A, - 0x5E, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0x8B, - 0xBC, - 0x90, - 0x59, - 0x59, - 0xB3, - 0xB3, - 0x5E, - 0x5E, - 0x6F, - 0x6F, - 0x74, - 0xB9, - 0x52, - 0xB2, - 0xB1, - 0xCE, - 0xCB, - 0xCE, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x05, - 0xCE, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x04, - 0xCA, - 0xD3, - 0xCA, - 0xCA, - 0x07, - 0xD3, - 0x00, - 0x10, - 0xAA, - 0xD3, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0x8E, - 0xCB, - 0x8E, - 0x8E, - 0x8E, - 0xD4, - 0xCE, - 0x8E, - 0xD4, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x10, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x4A, - 0x61, - 0x4A, - 0x61, - 0x4A, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0x04, - 0x61, - 0x00, - 0x03, - 0xA6, - 0x6D, - 0x61, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x15, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x61, - 0x61, - 0xA6, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x6D, - 0x00, - 0x09, - 0x61, - 0x01, - 0x6D, - 0x05, - 0x61, - 0x00, - 0x20, - 0x6D, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x3B, - 0x6D, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x6E, - 0x74, - 0x6E, - 0x04, - 0x3B, - 0x04, - 0x6C, - 0x00, - 0x2C, - 0x6B, - 0x6C, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0x98, - 0x82, - 0x98, - 0x82, - 0x98, - 0x82, - 0x82, - 0x69, - 0x7D, - 0x7D, - 0x88, - 0x88, - 0x57, - 0x7D, - 0x88, - 0x7D, - 0x04, - 0x88, - 0x00, - 0x03, - 0x72, - 0x72, - 0x7D, - 0x00, - 0x08, - 0x88, - 0x01, - 0x69, - 0x06, - 0x88, - 0x00, - 0x3C, - 0x34, - 0x4E, - 0x59, - 0x66, - 0x45, - 0xA5, - 0x7F, - 0x55, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x92, - 0x70, - 0x95, - 0x95, - 0x95, - 0x7B, - 0x70, - 0x70, - 0x32, - 0x8C, - 0xAB, - 0x7F, - 0xA5, - 0x66, - 0x59, - 0x5E, - 0x46, - 0x46, - 0x5E, - 0x59, - 0x8B, - 0xBC, - 0xA8, - 0xBE, - 0xA7, - 0xA7, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xAF, - 0xAF, - 0xAF, - 0xD0, - 0xD0, - 0xD8, - 0xD8, - 0xDB, - 0xE8, - 0xDB, - 0xED, - 0xDB, - 0xE1, - 0xE1, - 0xED, - 0xE6, - 0xE6, - 0x06, - 0xE1, - 0x00, - 0x37, - 0x90, - 0xBB, - 0xE1, - 0x90, - 0xBB, - 0xB3, - 0xB3, - 0xD6, - 0x6F, - 0xBA, - 0x74, - 0x9D, - 0xB9, - 0xB9, - 0x35, - 0x61, - 0x4A, - 0x6E, - 0x6F, - 0x9A, - 0x9A, - 0xB3, - 0xB3, - 0x90, - 0xBB, - 0x8B, - 0x8B, - 0x8B, - 0xBB, - 0xBB, - 0x90, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x6D, - 0x49, - 0xB2, - 0xB1, - 0x8E, - 0x8E, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xAA, - 0xD3, - 0xD3, - 0xAA, - 0x00, - 0x07, - 0xD3, - 0x00, - 0x08, - 0xCA, - 0xD3, - 0xCA, - 0x8D, - 0xD3, - 0xD3, - 0xD3, - 0xAA, - 0x04, - 0xCB, - 0x00, - 0x03, - 0x8E, - 0x8E, - 0xCE, - 0x00, - 0x05, - 0x8E, - 0x03, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x61, - 0x4A, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0x6D, - 0x61, - 0x4A, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0x61, - 0xA6, - 0x05, - 0x61, - 0x01, - 0xA6, - 0x01, - 0xA6, - 0x0A, - 0x61, - 0x00, - 0x15, - 0x6D, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x61, - 0x6D, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x61, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x6D, - 0x61, - 0x6E, - 0x6E, - 0x6D, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x09, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x6E, - 0x74, - 0x00, - 0x07, - 0x3B, - 0x05, - 0x6C, - 0x00, - 0x27, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x9C, - 0x9C, - 0x8A, - 0x9C, - 0x8A, - 0x9C, - 0x8A, - 0x9C, - 0x82, - 0x8A, - 0x9C, - 0x98, - 0x9C, - 0x9C, - 0x82, - 0x82, - 0x98, - 0x9C, - 0x82, - 0x98, - 0x82, - 0x82, - 0x7D, - 0x82, - 0x7D, - 0x69, - 0x7D, - 0x7D, - 0x88, - 0x88, - 0x69, - 0x00, - 0x05, - 0x88, - 0x01, - 0x74, - 0x07, - 0x88, - 0x00, - 0x36, - 0x69, - 0x88, - 0x69, - 0x88, - 0x88, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x88, - 0x31, - 0x5A, - 0x75, - 0xA7, - 0x23, - 0xAB, - 0x8C, - 0x32, - 0x32, - 0x2D, - 0x7B, - 0x70, - 0x70, - 0x92, - 0x70, - 0x92, - 0x7B, - 0x95, - 0x70, - 0x70, - 0x2D, - 0x85, - 0x8C, - 0x7F, - 0xA0, - 0xA7, - 0xA8, - 0x8B, - 0x90, - 0x59, - 0x90, - 0x90, - 0x8B, - 0xBC, - 0xA8, - 0xBE, - 0xA5, - 0xA5, - 0xAF, - 0xAF, - 0xA0, - 0xD0, - 0xBD, - 0x04, - 0xD0, - 0x00, - 0x09, - 0xD8, - 0xEB, - 0xD8, - 0xE8, - 0xBC, - 0xE8, - 0xDB, - 0xDB, - 0xED, - 0x00, - 0x04, - 0xE1, - 0x00, - 0x2F, - 0xED, - 0xE1, - 0xE1, - 0xDB, - 0xE1, - 0xE1, - 0xE1, - 0xBB, - 0xE1, - 0xB3, - 0xE1, - 0xB3, - 0xB3, - 0xD6, - 0x6F, - 0xE4, - 0xBA, - 0xDC, - 0xBA, - 0x6E, - 0x6E, - 0xBA, - 0x6F, - 0xD6, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0x8B, - 0xBB, - 0xBC, - 0xBB, - 0x8B, - 0xB3, - 0x90, - 0xB3, - 0x59, - 0xB3, - 0x6F, - 0x6F, - 0x6E, - 0x61, - 0x35, - 0x52, - 0xB1, - 0xCE, - 0x00, - 0x09, - 0xCB, - 0x01, - 0xD3, - 0x01, - 0xCB, - 0x06, - 0xD3, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xD3, - 0x00, - 0x12, - 0xCB, - 0xCB, - 0xCE, - 0xCB, - 0xCB, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0x8E, - 0xB1, - 0x8E, - 0xD4, - 0xD4, - 0xD4, - 0xB2, - 0xB1, - 0xB2, - 0x00, - 0x00, - 0x00, - 0x28, - 0x4A, - 0xA6, - 0xA6, - 0x6D, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0x6D, - 0xA6, - 0xA6, - 0x61, - 0x61, - 0x4A, - 0x4A, - 0xA6, - 0xA6, - 0x6D, - 0xA6, - 0x61, - 0x4A, - 0xA6, - 0xA6, - 0xA6, - 0x6D, - 0xA6, - 0x61, - 0x61, - 0xA6, - 0xA6, - 0x61, - 0xA6, - 0x4A, - 0x61, - 0x6D, - 0xA6, - 0x61, - 0xA6, - 0x06, - 0x61, - 0x00, - 0x03, - 0xA6, - 0x6D, - 0x6D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x3E, - 0xA6, - 0x6E, - 0x6E, - 0x61, - 0x6D, - 0x61, - 0x61, - 0x9D, - 0x61, - 0x61, - 0x61, - 0x6D, - 0x6E, - 0x9D, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x9D, - 0x6E, - 0x6E, - 0x6D, - 0x6E, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x6E, - 0x3B, - 0x3B, - 0x3B, - 0x6E, - 0x6E, - 0x74, - 0x3B, - 0x6E, - 0x6D, - 0x74, - 0x3B, - 0x3B, - 0x74, - 0x3B, - 0x6C, - 0x74, - 0x6C, - 0x6C, - 0x6C, - 0x56, - 0x6C, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x07, - 0x8A, - 0x00, - 0x03, - 0x82, - 0x8A, - 0x9C, - 0x00, - 0x05, - 0x82, - 0x00, - 0x10, - 0x98, - 0x9C, - 0x82, - 0x9C, - 0x81, - 0x82, - 0x98, - 0x82, - 0x98, - 0x57, - 0x82, - 0x7D, - 0x69, - 0x7D, - 0x69, - 0x57, - 0x05, - 0x88, - 0x00, - 0x06, - 0x69, - 0x88, - 0x7D, - 0x88, - 0x88, - 0x69, - 0x04, - 0x88, - 0x00, - 0x42, - 0x69, - 0x88, - 0x69, - 0x88, - 0x69, - 0x88, - 0x88, - 0x69, - 0x33, - 0x29, - 0x8B, - 0xA7, - 0x76, - 0x7F, - 0x9F, - 0x32, - 0x32, - 0x2D, - 0x70, - 0x7B, - 0x7B, - 0x92, - 0x7B, - 0x92, - 0x95, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x2D, - 0x85, - 0x32, - 0x8C, - 0x7F, - 0xA0, - 0xA5, - 0xA8, - 0xBC, - 0xBC, - 0x8B, - 0xBB, - 0xBC, - 0x75, - 0xBE, - 0xBE, - 0xA7, - 0xA5, - 0xAF, - 0xAF, - 0xBD, - 0xD0, - 0xBD, - 0xD0, - 0xD0, - 0xE2, - 0xE2, - 0xD8, - 0xD8, - 0xEB, - 0xE8, - 0xE8, - 0xE8, - 0xED, - 0xED, - 0xDB, - 0xE6, - 0x04, - 0xED, - 0x00, - 0x37, - 0xE1, - 0xE1, - 0xDB, - 0xED, - 0xDB, - 0xDB, - 0xE1, - 0xDB, - 0xE1, - 0xB3, - 0xE1, - 0xB3, - 0xE1, - 0xB3, - 0xD6, - 0xD6, - 0x9A, - 0xD6, - 0x9A, - 0x9A, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0x8B, - 0xDB, - 0xBC, - 0xBC, - 0xBC, - 0xBB, - 0xBB, - 0xBB, - 0x90, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x42, - 0x4A, - 0x35, - 0xA4, - 0x8E, - 0x8E, - 0xCB, - 0xD3, - 0xCB, - 0xCB, - 0xD3, - 0xCB, - 0xD3, - 0xD3, - 0xCB, - 0x00, - 0x06, - 0xD3, - 0x01, - 0xCA, - 0x05, - 0xD3, - 0x00, - 0x03, - 0xC6, - 0xD3, - 0xD3, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x0F, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xCE, - 0x8E, - 0xB1, - 0xD4, - 0xD4, - 0xD4, - 0xB2, - 0xD4, - 0xB2, - 0xD4, - 0xB2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x35, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x79, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x00, - 0x08, - 0x35, - 0x00, - 0x05, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x00, - 0x06, - 0x79, - 0x00, - 0x37, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x79, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x49, - 0x79, - 0x79, - 0x49, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x79, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x5D, - 0x8A, - 0x9C, - 0x6B, - 0x6B, - 0x9C, - 0x8A, - 0x00, - 0x05, - 0x9C, - 0x00, - 0x0C, - 0x98, - 0x94, - 0x94, - 0x94, - 0x9E, - 0x94, - 0x9E, - 0x94, - 0x94, - 0x9E, - 0x9E, - 0x94, - 0x04, - 0x9E, - 0x00, - 0x12, - 0x99, - 0x9E, - 0x68, - 0x68, - 0x99, - 0x99, - 0x99, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x98, - 0x81, - 0x04, - 0x98, - 0x00, - 0x3D, - 0x81, - 0x7D, - 0x81, - 0x57, - 0x77, - 0x81, - 0x82, - 0x77, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x77, - 0x98, - 0x81, - 0x81, - 0x98, - 0x7D, - 0x33, - 0x2E, - 0x75, - 0x45, - 0x5F, - 0x2C, - 0x55, - 0x32, - 0x32, - 0x70, - 0x70, - 0x70, - 0x95, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x95, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x70, - 0x85, - 0x8C, - 0x9F, - 0x7F, - 0xAF, - 0xA7, - 0x45, - 0xBC, - 0xBC, - 0x66, - 0x8B, - 0xA8, - 0xBE, - 0xA8, - 0xBE, - 0xA5, - 0xA7, - 0xD0, - 0xAF, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x12, - 0xE2, - 0xE2, - 0xEB, - 0xE8, - 0xD8, - 0xE8, - 0xDB, - 0xED, - 0xED, - 0xED, - 0xFA, - 0xED, - 0xED, - 0xED, - 0xE1, - 0xE1, - 0xED, - 0xED, - 0x05, - 0xE1, - 0x00, - 0x03, - 0xB3, - 0xB3, - 0xE1, - 0x00, - 0x07, - 0xB3, - 0x01, - 0x9A, - 0x04, - 0xB3, - 0x00, - 0x03, - 0xBB, - 0xDB, - 0x8B, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x3C, - 0x8B, - 0xBC, - 0x59, - 0x5E, - 0xB3, - 0x5E, - 0x5E, - 0x6F, - 0x6F, - 0x6F, - 0x3B, - 0x4A, - 0x52, - 0x9B, - 0x97, - 0x8D, - 0xB5, - 0xB5, - 0xCD, - 0xCD, - 0xC4, - 0xCD, - 0xC9, - 0xCD, - 0xCD, - 0xC4, - 0xD2, - 0xCD, - 0xC4, - 0xC4, - 0xC4, - 0xCF, - 0xC4, - 0xD9, - 0xD9, - 0xC4, - 0xC4, - 0xC9, - 0xE0, - 0xCD, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xAA, - 0x8D, - 0x80, - 0xAA, - 0xCB, - 0xB7, - 0xC3, - 0xC3, - 0xCB, - 0x97, - 0xAC, - 0xAC, - 0x8E, - 0xAD, - 0x00, - 0x00, - 0x01, - 0x86, - 0x04, - 0x35, - 0x00, - 0x22, - 0x86, - 0x52, - 0xA4, - 0x86, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x86, - 0x35, - 0x86, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x04, - 0x35, - 0x01, - 0x86, - 0x05, - 0x35, - 0x00, - 0x1F, - 0x79, - 0x52, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x49, - 0x49, - 0x79, - 0x79, - 0x35, - 0x79, - 0x49, - 0x35, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x35, - 0xB9, - 0xB9, - 0x35, - 0x49, - 0x49, - 0x5D, - 0xB9, - 0x49, - 0x5D, - 0x00, - 0x05, - 0x49, - 0x00, - 0x28, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x6C, - 0x8A, - 0x5D, - 0x8A, - 0x8A, - 0x8A, - 0x9C, - 0x8A, - 0x6B, - 0x9C, - 0x8A, - 0x82, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x9C, - 0x9C, - 0x98, - 0x94, - 0x9E, - 0x94, - 0x94, - 0x9E, - 0x94, - 0x04, - 0x9E, - 0x00, - 0x1A, - 0x8F, - 0x68, - 0x68, - 0x99, - 0x68, - 0x99, - 0x68, - 0x68, - 0x99, - 0x68, - 0x68, - 0x68, - 0x87, - 0x87, - 0x9E, - 0x81, - 0x9E, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x81, - 0x98, - 0x98, - 0x05, - 0x81, - 0x01, - 0x87, - 0x05, - 0x81, - 0x00, - 0x22, - 0x98, - 0x81, - 0x69, - 0x38, - 0x5A, - 0x91, - 0xA5, - 0x2F, - 0xAB, - 0x26, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x70, - 0x95, - 0x70, - 0x60, - 0x95, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x70, - 0x2D, - 0xC0, - 0x8C, - 0x9F, - 0x7F, - 0xD0, - 0xA7, - 0xBE, - 0x05, - 0xA8, - 0x00, - 0x1F, - 0xBE, - 0xA7, - 0xBE, - 0xD0, - 0xD8, - 0xD0, - 0xE2, - 0xE2, - 0xE2, - 0xEB, - 0xEB, - 0xD8, - 0xEB, - 0xE8, - 0xF3, - 0xE8, - 0xFB, - 0xED, - 0xED, - 0xFA, - 0xED, - 0xED, - 0xFA, - 0xE1, - 0xED, - 0xE6, - 0xED, - 0xE1, - 0xE6, - 0xED, - 0xE6, - 0x00, - 0x07, - 0xE1, - 0x00, - 0x2C, - 0xB3, - 0xE1, - 0xBB, - 0x90, - 0xBB, - 0xBB, - 0xBB, - 0x8B, - 0xDB, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0x8B, - 0xB3, - 0x59, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x31, - 0x74, - 0x56, - 0x6B, - 0x7E, - 0x9B, - 0x97, - 0x8D, - 0xC9, - 0xC9, - 0xC4, - 0xD1, - 0xC9, - 0xD2, - 0xC4, - 0xC9, - 0xD2, - 0xD1, - 0xD2, - 0x04, - 0xC4, - 0x00, - 0x1D, - 0xDA, - 0xC4, - 0xCF, - 0xC4, - 0xC4, - 0xC4, - 0xC9, - 0xCD, - 0xB5, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0xC1, - 0xAA, - 0xAA, - 0xC3, - 0xB8, - 0xC3, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x35, - 0x35, - 0x86, - 0x52, - 0x52, - 0x79, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x52, - 0x79, - 0x35, - 0x86, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x04, - 0x35, - 0x00, - 0x14, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0xB9, - 0x05, - 0x49, - 0x01, - 0xB9, - 0x04, - 0x49, - 0x00, - 0x07, - 0xB9, - 0x5D, - 0x5D, - 0x49, - 0x9C, - 0x5D, - 0x49, - 0x00, - 0x08, - 0x5D, - 0x00, - 0x0C, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x9C, - 0x6C, - 0x56, - 0x07, - 0x8A, - 0x00, - 0x0D, - 0x9C, - 0x82, - 0x9C, - 0x82, - 0x9C, - 0x82, - 0x9C, - 0x98, - 0x98, - 0x9C, - 0x94, - 0x9E, - 0x94, - 0x00, - 0x04, - 0x9E, - 0x00, - 0x63, - 0x68, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x68, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x87, - 0x87, - 0x81, - 0x81, - 0x98, - 0x81, - 0x81, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x87, - 0x81, - 0x9E, - 0x98, - 0x87, - 0x81, - 0x57, - 0x72, - 0x59, - 0x66, - 0x45, - 0x76, - 0x7F, - 0x8C, - 0x32, - 0x85, - 0x70, - 0x70, - 0x70, - 0x95, - 0x70, - 0x92, - 0x7B, - 0x92, - 0x95, - 0x92, - 0x95, - 0x92, - 0x95, - 0x95, - 0x7B, - 0xCC, - 0x2D, - 0x85, - 0x9F, - 0xAB, - 0xA0, - 0xA0, - 0xA7, - 0xD8, - 0xBE, - 0xBE, - 0xA8, - 0xBE, - 0xBE, - 0xD8, - 0xD8, - 0xD8, - 0xD0, - 0xE2, - 0xD8, - 0xD8, - 0xE2, - 0xD8, - 0xE2, - 0xEB, - 0xE8, - 0xEB, - 0xDB, - 0xFB, - 0xDB, - 0xED, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xED, - 0xFA, - 0xFA, - 0x00, - 0x05, - 0xE6, - 0x00, - 0x30, - 0xE1, - 0xE6, - 0xE6, - 0xE6, - 0xE1, - 0xE1, - 0xBB, - 0xE1, - 0xDB, - 0xBB, - 0xBB, - 0xDB, - 0xBC, - 0xDB, - 0xA8, - 0xA8, - 0xA8, - 0xE8, - 0xA8, - 0xD8, - 0xBE, - 0xD8, - 0xA8, - 0xD8, - 0xA8, - 0x8B, - 0xBB, - 0x8B, - 0xB3, - 0x5E, - 0x5E, - 0x9A, - 0x9A, - 0x42, - 0x42, - 0x6D, - 0x35, - 0x7E, - 0x9B, - 0x97, - 0xB0, - 0xB5, - 0xC4, - 0xC9, - 0xC4, - 0xC4, - 0xC4, - 0xCD, - 0x09, - 0xC4, - 0x00, - 0x11, - 0xC9, - 0xC4, - 0xC9, - 0xB5, - 0xB5, - 0xB5, - 0xA1, - 0xA1, - 0xB0, - 0xC6, - 0xA9, - 0x80, - 0x80, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x06, - 0xAC, - 0x00, - 0x05, - 0x9B, - 0x9B, - 0xAD, - 0x9B, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x79, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x52, - 0x79, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x35, - 0x79, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0xB9, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x05, - 0x5D, - 0x00, - 0x70, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x56, - 0x6C, - 0x8A, - 0x6B, - 0x82, - 0x8A, - 0x8A, - 0x8A, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x98, - 0x82, - 0x9C, - 0x82, - 0x98, - 0x94, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x9E, - 0x8F, - 0x9E, - 0x68, - 0x9E, - 0x9E, - 0x99, - 0x9E, - 0x68, - 0x9E, - 0x68, - 0x68, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x98, - 0x98, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x98, - 0x98, - 0x81, - 0x98, - 0x81, - 0x98, - 0x87, - 0x87, - 0x87, - 0x53, - 0x87, - 0x34, - 0x38, - 0x5B, - 0xA8, - 0x36, - 0xA0, - 0x55, - 0x55, - 0x26, - 0x2D, - 0x70, - 0x70, - 0x70, - 0x92, - 0x70, - 0x95, - 0x95, - 0x92, - 0x95, - 0x92, - 0x95, - 0x92, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x2D, - 0x85, - 0xC0, - 0x9F, - 0xAB, - 0xBD, - 0xAF, - 0xD0, - 0xBE, - 0xA8, - 0xD8, - 0xA8, - 0x04, - 0xD8, - 0x00, - 0x03, - 0xEB, - 0xEB, - 0xD8, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x43, - 0xE8, - 0xF3, - 0xE8, - 0xFB, - 0xED, - 0xFB, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0xE6, - 0xFE, - 0xE6, - 0xFA, - 0xE6, - 0xE6, - 0xFA, - 0xE6, - 0xE6, - 0xED, - 0xE1, - 0xE6, - 0xE1, - 0xE1, - 0xE1, - 0xDB, - 0xBC, - 0xDB, - 0xDB, - 0xE8, - 0xA8, - 0xA8, - 0xD8, - 0xA7, - 0xD8, - 0xD8, - 0xA7, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xA8, - 0xBC, - 0x8B, - 0x90, - 0xB3, - 0x59, - 0x9A, - 0x5E, - 0x6F, - 0x42, - 0x74, - 0x6C, - 0x35, - 0x7E, - 0xAD, - 0x78, - 0xA1, - 0xC9, - 0xC4, - 0xC4, - 0xC4, - 0xC9, - 0xC4, - 0xD2, - 0x00, - 0x06, - 0xC4, - 0x00, - 0x12, - 0xC9, - 0xD2, - 0xC9, - 0xD2, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xB0, - 0xC6, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0xB8, - 0xC3, - 0x05, - 0xAC, - 0x00, - 0x08, - 0xAD, - 0xC5, - 0x9B, - 0xC5, - 0x9B, - 0xBF, - 0xAE, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x18, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x86, - 0x79, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x79, - 0x86, - 0x86, - 0x35, - 0x04, - 0x86, - 0x00, - 0x08, - 0x52, - 0x52, - 0x79, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x04, - 0x35, - 0x00, - 0x27, - 0x86, - 0x35, - 0x79, - 0x86, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x52, - 0x79, - 0x52, - 0x79, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x79, - 0x5D, - 0x79, - 0x49, - 0x79, - 0xB9, - 0x00, - 0x04, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x00, - 0x07, - 0x5D, - 0x00, - 0x0D, - 0x6B, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x6C, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x12, - 0x56, - 0x6B, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x82, - 0x8A, - 0x8A, - 0x8A, - 0x82, - 0x9C, - 0x82, - 0x82, - 0x82, - 0x98, - 0x94, - 0x05, - 0x9E, - 0x00, - 0x05, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x87, - 0x00, - 0x05, - 0x9E, - 0x00, - 0x26, - 0x87, - 0x87, - 0x98, - 0x9E, - 0x87, - 0x98, - 0x87, - 0x98, - 0x81, - 0x81, - 0x98, - 0x87, - 0x81, - 0x87, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x53, - 0x87, - 0x9E, - 0x53, - 0x33, - 0x59, - 0x5B, - 0xBE, - 0x76, - 0x2C, - 0x55, - 0x32, - 0x70, - 0x70, - 0x70, - 0x95, - 0x70, - 0x70, - 0x92, - 0x92, - 0x04, - 0x95, - 0x00, - 0x1B, - 0x92, - 0x92, - 0x95, - 0x92, - 0x7B, - 0x7B, - 0xCC, - 0x2D, - 0xC0, - 0xD5, - 0x9F, - 0xBD, - 0xBD, - 0xD0, - 0xD0, - 0xD8, - 0xD8, - 0xD8, - 0xE8, - 0xD8, - 0xE8, - 0xE8, - 0xD8, - 0xEB, - 0xF3, - 0xEB, - 0xEB, - 0x00, - 0x04, - 0xE8, - 0x00, - 0x09, - 0xFB, - 0xFB, - 0x0E, - 0xED, - 0x0E, - 0xED, - 0xED, - 0x11, - 0xFA, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x49, - 0xE4, - 0xFE, - 0xE4, - 0xDD, - 0xFE, - 0xE6, - 0xDD, - 0xE6, - 0xE6, - 0xE1, - 0xED, - 0xE1, - 0xDB, - 0xDB, - 0xDB, - 0xA8, - 0xA8, - 0xA8, - 0xE2, - 0xBE, - 0xD0, - 0xA7, - 0xD0, - 0xD0, - 0xA7, - 0xD0, - 0xBE, - 0xBE, - 0xA8, - 0xBC, - 0x8B, - 0x90, - 0xB3, - 0xB3, - 0x5E, - 0x6F, - 0x9A, - 0x42, - 0x42, - 0x6B, - 0x49, - 0x7E, - 0x8E, - 0xAA, - 0x8D, - 0xD2, - 0xD2, - 0xC4, - 0xCF, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xCF, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xB5, - 0xB5, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0xC6, - 0x80, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0x00, - 0x05, - 0xAC, - 0x00, - 0x0B, - 0xC5, - 0x9B, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xBF, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x00, - 0x04, - 0x86, - 0x00, - 0x17, - 0x52, - 0x86, - 0x79, - 0x35, - 0x86, - 0x79, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0x79, - 0x35, - 0x86, - 0x79, - 0x49, - 0x00, - 0x04, - 0x79, - 0x00, - 0x20, - 0x35, - 0x79, - 0x52, - 0x49, - 0x79, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x79, - 0x49, - 0x79, - 0x79, - 0x35, - 0x35, - 0x35, - 0xB9, - 0x79, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x07, - 0x5D, - 0x00, - 0x16, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x05, - 0x8A, - 0x05, - 0x82, - 0x00, - 0x06, - 0x9C, - 0x82, - 0x82, - 0x98, - 0x98, - 0x98, - 0x0A, - 0x9E, - 0x00, - 0x2C, - 0x98, - 0x9E, - 0x98, - 0x87, - 0x9E, - 0x87, - 0x98, - 0x98, - 0x9E, - 0x87, - 0x98, - 0x98, - 0x87, - 0x98, - 0x87, - 0x9E, - 0x87, - 0x9E, - 0x87, - 0x87, - 0x98, - 0x69, - 0x46, - 0x5A, - 0xA8, - 0x36, - 0x76, - 0x2C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x95, - 0x70, - 0x92, - 0x70, - 0x92, - 0x70, - 0x92, - 0x92, - 0x95, - 0x95, - 0x92, - 0x92, - 0x04, - 0x95, - 0x00, - 0x0C, - 0xCC, - 0xCC, - 0x85, - 0x8C, - 0xD5, - 0xAB, - 0xD0, - 0xD0, - 0xA7, - 0xD8, - 0xD8, - 0xD8, - 0x06, - 0xE8, - 0x00, - 0x13, - 0xEB, - 0xE8, - 0xFB, - 0xE8, - 0x04, - 0xFB, - 0xFB, - 0xFB, - 0xED, - 0x0E, - 0x0E, - 0x03, - 0x11, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0x13, - 0x00, - 0x06, - 0xF6, - 0x00, - 0x2B, - 0xFE, - 0xFE, - 0xE6, - 0xE6, - 0xED, - 0xE6, - 0xED, - 0xDB, - 0xBC, - 0xE8, - 0xD8, - 0xE8, - 0xD8, - 0xD8, - 0xD0, - 0xD0, - 0xA0, - 0xA7, - 0xAF, - 0xD0, - 0xD0, - 0xA7, - 0xA8, - 0xE8, - 0xBC, - 0xBB, - 0x59, - 0x59, - 0xB3, - 0x5E, - 0x9A, - 0x9A, - 0x42, - 0x74, - 0x4A, - 0x52, - 0x9B, - 0x8E, - 0x80, - 0xA1, - 0xC4, - 0xC4, - 0xCF, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x25, - 0xD1, - 0xC4, - 0xC4, - 0xC4, - 0xC9, - 0xCD, - 0xB5, - 0xA1, - 0xB5, - 0xB0, - 0xA1, - 0xC6, - 0x8D, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xC3, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0x7E, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x79, - 0x86, - 0x35, - 0x86, - 0x79, - 0x86, - 0x52, - 0x79, - 0x52, - 0x79, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x79, - 0x86, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x49, - 0x49, - 0x52, - 0x35, - 0x49, - 0x35, - 0x79, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x79, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x04, - 0x5D, - 0x00, - 0x1B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x5D, - 0x6B, - 0x6B, - 0x56, - 0x6B, - 0x6B, - 0x8A, - 0x6C, - 0x56, - 0x6C, - 0x8A, - 0x8A, - 0x56, - 0x6C, - 0x8A, - 0x8A, - 0x7D, - 0x7D, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x4D, - 0x82, - 0x82, - 0x82, - 0x98, - 0x82, - 0x82, - 0x98, - 0x94, - 0x98, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x9E, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x9E, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x9E, - 0x87, - 0x98, - 0x87, - 0x87, - 0x9E, - 0x98, - 0x87, - 0x87, - 0x98, - 0x87, - 0x98, - 0x53, - 0x82, - 0x33, - 0x2E, - 0x5B, - 0x45, - 0x76, - 0x7F, - 0x8C, - 0x8C, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x70, - 0x95, - 0x7B, - 0x92, - 0x7B, - 0x95, - 0x95, - 0x92, - 0x95, - 0x95, - 0x92, - 0x95, - 0x7B, - 0x95, - 0x70, - 0x2D, - 0xCC, - 0xD5, - 0x9F, - 0xBD, - 0xBD, - 0xD0, - 0xEC, - 0xEB, - 0xD8, - 0x00, - 0x07, - 0xE8, - 0x00, - 0x10, - 0xFB, - 0xFB, - 0xE8, - 0x0E, - 0xFB, - 0xFB, - 0x0D, - 0x0D, - 0x0E, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0x04, - 0xF6, - 0x00, - 0x59, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xF6, - 0xF6, - 0xE4, - 0xE4, - 0xFE, - 0xD6, - 0xE6, - 0xED, - 0xE1, - 0xED, - 0xE8, - 0xBC, - 0xA8, - 0xBE, - 0xD0, - 0xA7, - 0xD0, - 0xD0, - 0xBD, - 0xD0, - 0xA7, - 0xA7, - 0xD8, - 0x45, - 0x45, - 0xBC, - 0xBC, - 0xBB, - 0x90, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x42, - 0x74, - 0x5D, - 0xA3, - 0x7E, - 0x97, - 0x80, - 0xB5, - 0xC4, - 0xC8, - 0xC4, - 0xDA, - 0xC4, - 0xC4, - 0xD2, - 0xD2, - 0xC9, - 0xC9, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xC6, - 0xA9, - 0x8D, - 0xAA, - 0xC3, - 0xAC, - 0xC3, - 0x8E, - 0xB8, - 0xAC, - 0x9B, - 0xAC, - 0x9B, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xAE, - 0x7E, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0xAE, - 0x8E, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x04, - 0x86, - 0x00, - 0x47, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x52, - 0x79, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x79, - 0x35, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x79, - 0x52, - 0x79, - 0x86, - 0x79, - 0x79, - 0x79, - 0x52, - 0x35, - 0x35, - 0x52, - 0x49, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x49, - 0x35, - 0x35, - 0x52, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x35, - 0x79, - 0x49, - 0x35, - 0x00, - 0x06, - 0x49, - 0x00, - 0x36, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x56, - 0x6B, - 0x56, - 0x6C, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x7D, - 0x8A, - 0x8A, - 0x7D, - 0x82, - 0x82, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x94, - 0x98, - 0x82, - 0x94, - 0x04, - 0x98, - 0x00, - 0x24, - 0x9E, - 0x9E, - 0x98, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x98, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x68, - 0x87, - 0x9E, - 0x98, - 0x57, - 0x46, - 0x5A, - 0xA8, - 0x36, - 0xA0, - 0x2C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x7B, - 0x95, - 0x92, - 0x09, - 0x95, - 0x00, - 0x0D, - 0x7B, - 0x7B, - 0xCC, - 0x2D, - 0xCC, - 0xC0, - 0xC0, - 0xDE, - 0xB4, - 0xE5, - 0xD0, - 0xD8, - 0xE2, - 0x00, - 0x04, - 0xE8, - 0x00, - 0x12, - 0xDB, - 0xFB, - 0xED, - 0xFB, - 0x0E, - 0x0E, - 0xFB, - 0x0E, - 0x0D, - 0x0D, - 0x0D, - 0xED, - 0x03, - 0x03, - 0xFA, - 0xFA, - 0x11, - 0xFE, - 0x04, - 0xF6, - 0x00, - 0x49, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xFC, - 0xF6, - 0xE4, - 0xFE, - 0xE6, - 0xE6, - 0xDB, - 0xED, - 0xDB, - 0xDB, - 0xD8, - 0xE2, - 0xBE, - 0xD0, - 0xA7, - 0xD0, - 0xA5, - 0xD0, - 0xD0, - 0xA7, - 0xD8, - 0xA7, - 0xA8, - 0xBC, - 0x8B, - 0x90, - 0x90, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x74, - 0x6B, - 0x52, - 0x9B, - 0xAC, - 0x8D, - 0xB5, - 0xC4, - 0xC4, - 0xC8, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xB5, - 0xC9, - 0xB6, - 0xA1, - 0xA1, - 0xCA, - 0xB0, - 0x8D, - 0xA9, - 0xCB, - 0x80, - 0xAA, - 0xAC, - 0xC3, - 0xAC, - 0xAC, - 0xC5, - 0x9B, - 0xC5, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x0D, - 0xBF, - 0x9B, - 0xBF, - 0xB1, - 0xBF, - 0x9B, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x35, - 0x04, - 0x86, - 0x00, - 0x14, - 0x35, - 0x79, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x79, - 0x86, - 0x86, - 0x79, - 0x04, - 0x86, - 0x00, - 0x17, - 0x79, - 0x86, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x86, - 0x79, - 0x35, - 0x79, - 0x00, - 0x04, - 0x49, - 0x00, - 0x0E, - 0x79, - 0x49, - 0x79, - 0x79, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x9C, - 0x04, - 0x5D, - 0x01, - 0x6B, - 0x05, - 0x5D, - 0x00, - 0x12, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6C, - 0x5D, - 0x56, - 0x6B, - 0x6B, - 0x8A, - 0x56, - 0x56, - 0x6C, - 0x56, - 0x56, - 0x8A, - 0x04, - 0x56, - 0x00, - 0x19, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x7D, - 0x56, - 0x82, - 0x8A, - 0x82, - 0x82, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x82, - 0x98, - 0x94, - 0x9E, - 0x98, - 0x98, - 0x98, - 0x9E, - 0x98, - 0x00, - 0x09, - 0x9E, - 0x00, - 0x16, - 0x87, - 0x87, - 0x9E, - 0x9E, - 0x9E, - 0x98, - 0x34, - 0x2E, - 0x66, - 0x45, - 0xAF, - 0x7F, - 0x55, - 0xC0, - 0x32, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x7B, - 0x70, - 0x04, - 0x95, - 0x00, - 0x6D, - 0x92, - 0x92, - 0x95, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0x70, - 0xCC, - 0xCC, - 0xC0, - 0xD5, - 0x9F, - 0xDE, - 0xD0, - 0xE2, - 0xEC, - 0xD8, - 0xE8, - 0xE8, - 0xFB, - 0xED, - 0x0D, - 0xED, - 0xFB, - 0x0E, - 0x0E, - 0xED, - 0x0D, - 0x0E, - 0xED, - 0xED, - 0x11, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xFC, - 0xEF, - 0x02, - 0x02, - 0xEF, - 0x02, - 0xEF, - 0xFC, - 0xFC, - 0x02, - 0xFC, - 0xFC, - 0xE4, - 0xE4, - 0xED, - 0xED, - 0xDB, - 0xE8, - 0xDB, - 0xBC, - 0xD8, - 0xD8, - 0xD0, - 0xA7, - 0xD0, - 0xD0, - 0xA7, - 0xA7, - 0xD8, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xBB, - 0xB3, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x74, - 0x6C, - 0x4A, - 0xA3, - 0x9B, - 0x97, - 0x80, - 0xB5, - 0xC4, - 0xDA, - 0xC4, - 0xC4, - 0xC9, - 0xC9, - 0xC9, - 0xB5, - 0xC2, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0x8D, - 0x80, - 0xCB, - 0xC3, - 0xC3, - 0x00, - 0x04, - 0xAC, - 0x01, - 0xC5, - 0x01, - 0xAC, - 0x05, - 0x9B, - 0x00, - 0x09, - 0xBF, - 0xBF, - 0x9B, - 0x7E, - 0xB1, - 0x7E, - 0x9B, - 0xB1, - 0xAE, - 0x00, - 0x04, - 0x9B, - 0x01, - 0xAE, - 0x01, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x23, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x79, - 0x00, - 0x04, - 0x86, - 0x00, - 0x6F, - 0x35, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x79, - 0x52, - 0x79, - 0x35, - 0x86, - 0x52, - 0x79, - 0x35, - 0x79, - 0x52, - 0x79, - 0x52, - 0x35, - 0x35, - 0x79, - 0x49, - 0x79, - 0x79, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0x5D, - 0x35, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x6C, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x6C, - 0x56, - 0x8A, - 0x56, - 0x7D, - 0x56, - 0x82, - 0x56, - 0x8A, - 0x7D, - 0x8A, - 0x82, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x98, - 0x82, - 0x98, - 0x82, - 0x82, - 0x98, - 0x94, - 0x98, - 0x98, - 0x98, - 0x00, - 0x06, - 0x9E, - 0x01, - 0x68, - 0x04, - 0x9E, - 0x00, - 0x12, - 0x68, - 0x9E, - 0x9E, - 0x57, - 0x31, - 0x59, - 0x75, - 0xA7, - 0x76, - 0xAB, - 0x55, - 0x32, - 0x32, - 0x70, - 0x70, - 0x70, - 0x92, - 0x7B, - 0x07, - 0x95, - 0x01, - 0x7B, - 0x01, - 0x95, - 0x04, - 0x7B, - 0x00, - 0x27, - 0xCC, - 0xC0, - 0xD5, - 0xC0, - 0xDE, - 0xDE, - 0xBD, - 0xE9, - 0xE2, - 0xEB, - 0xEB, - 0xF3, - 0xFB, - 0xDB, - 0x0E, - 0xED, - 0x0E, - 0xED, - 0xED, - 0x03, - 0xED, - 0x11, - 0xED, - 0x11, - 0xED, - 0x11, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xF6, - 0xFE, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0x02, - 0xEF, - 0xEF, - 0x00, - 0x06, - 0xF5, - 0x00, - 0x53, - 0x02, - 0xEF, - 0x02, - 0xEF, - 0xF6, - 0xE4, - 0xE4, - 0xE4, - 0xED, - 0xE1, - 0xDB, - 0xE8, - 0xA8, - 0xEB, - 0xA8, - 0x45, - 0xD8, - 0xBE, - 0xD0, - 0xA7, - 0xBE, - 0xA8, - 0xA8, - 0xBC, - 0x8B, - 0xBB, - 0x90, - 0xB3, - 0x9A, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x5D, - 0x7E, - 0x9B, - 0xAA, - 0xA1, - 0xB5, - 0xD7, - 0xC4, - 0xC4, - 0xC4, - 0xB5, - 0xB5, - 0xB6, - 0xA1, - 0xB0, - 0xC6, - 0x8D, - 0x8D, - 0xAA, - 0xAA, - 0xAA, - 0x97, - 0xAA, - 0xAC, - 0xC5, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0xBF, - 0xB1, - 0xBF, - 0xBF, - 0xBF, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0x7E, - 0xB1, - 0x8E, - 0xBF, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x86, - 0x86, - 0x79, - 0x52, - 0x86, - 0x79, - 0x79, - 0x35, - 0x79, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x79, - 0x52, - 0x35, - 0x35, - 0x35, - 0x79, - 0x79, - 0x49, - 0x06, - 0x35, - 0x00, - 0x25, - 0x49, - 0xB9, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x79, - 0xB9, - 0x49, - 0x49, - 0x5D, - 0x79, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x9C, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x06, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x09, - 0x56, - 0x00, - 0x05, - 0x7D, - 0x8A, - 0x56, - 0x82, - 0x8A, - 0x00, - 0x08, - 0x82, - 0x05, - 0x98, - 0x01, - 0x9E, - 0x01, - 0x98, - 0x06, - 0x9E, - 0x00, - 0x17, - 0x68, - 0x9E, - 0x9E, - 0x9E, - 0x68, - 0x9E, - 0x88, - 0x46, - 0x5B, - 0xA8, - 0x36, - 0x7F, - 0x55, - 0x8C, - 0x32, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x00, - 0x06, - 0x95, - 0x00, - 0x16, - 0x7B, - 0x7B, - 0x7B, - 0xCC, - 0xCC, - 0xC0, - 0xC0, - 0xD5, - 0xDE, - 0xB4, - 0xE5, - 0xE2, - 0xE2, - 0xE2, - 0xEB, - 0xEB, - 0xDB, - 0xE8, - 0x03, - 0xED, - 0x03, - 0x11, - 0x04, - 0x03, - 0x00, - 0x06, - 0xFA, - 0x11, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0x04, - 0xF6, - 0x00, - 0x0A, - 0xEF, - 0xFC, - 0xEF, - 0xEF, - 0x02, - 0xE7, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0x04, - 0xF5, - 0x00, - 0x3A, - 0xF0, - 0x01, - 0xF5, - 0xEF, - 0xF5, - 0xEF, - 0xF6, - 0xE6, - 0xE4, - 0xE6, - 0xDB, - 0xDB, - 0xDB, - 0xBC, - 0xA8, - 0xEB, - 0xD8, - 0xBE, - 0xBE, - 0xD8, - 0xA8, - 0xBE, - 0xE8, - 0x66, - 0xBC, - 0x90, - 0xBB, - 0x5E, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x35, - 0x52, - 0xAD, - 0x97, - 0x8D, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xA1, - 0xB5, - 0xA1, - 0xB0, - 0xB0, - 0x8D, - 0x8D, - 0xC3, - 0xC3, - 0xC3, - 0xAC, - 0xCB, - 0xC5, - 0xC5, - 0x9B, - 0xAC, - 0x05, - 0x9B, - 0x00, - 0x14, - 0xB1, - 0xBF, - 0x7E, - 0xBF, - 0xBF, - 0xB1, - 0xBF, - 0xB1, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x3F, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x86, - 0x35, - 0x79, - 0x52, - 0x52, - 0x52, - 0x86, - 0x79, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x00, - 0x04, - 0x79, - 0x00, - 0x3A, - 0x35, - 0x35, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x52, - 0x49, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x79, - 0x9C, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x49, - 0x6B, - 0x49, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x8A, - 0x8A, - 0x6B, - 0x04, - 0x56, - 0x00, - 0x05, - 0x7D, - 0x6C, - 0x8A, - 0x56, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x00, - 0x03, - 0x82, - 0x56, - 0x8A, - 0x00, - 0x06, - 0x82, - 0x00, - 0x22, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x9E, - 0x94, - 0x9E, - 0x9E, - 0x99, - 0x68, - 0x68, - 0x9E, - 0x68, - 0x8F, - 0x68, - 0x82, - 0x33, - 0x5E, - 0x75, - 0x45, - 0x76, - 0x7F, - 0x55, - 0xC0, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x04, - 0x95, - 0x04, - 0x7B, - 0x00, - 0x2C, - 0xCC, - 0xCC, - 0xC0, - 0xC0, - 0xC0, - 0xDE, - 0xBD, - 0xE5, - 0xE9, - 0xEC, - 0xD8, - 0xE8, - 0xE8, - 0xF3, - 0xFB, - 0xED, - 0x03, - 0xED, - 0x03, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0x11, - 0xFA, - 0xFE, - 0xFA, - 0xFE, - 0x13, - 0xE4, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF1, - 0x04, - 0xF0, - 0x01, - 0x01, - 0x01, - 0xF0, - 0x04, - 0xF5, - 0x00, - 0x4D, - 0xEF, - 0xFC, - 0xE4, - 0xE4, - 0xE6, - 0xE6, - 0xBB, - 0xDB, - 0xDB, - 0xA8, - 0xE8, - 0xBC, - 0xA7, - 0xA8, - 0xD8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xBB, - 0x59, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x74, - 0x6D, - 0x49, - 0xA3, - 0x9B, - 0x80, - 0x8D, - 0xC4, - 0xD2, - 0xD2, - 0xB5, - 0xB5, - 0xA1, - 0xCA, - 0xA9, - 0x8D, - 0xCB, - 0xAA, - 0xC3, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x7E, - 0x8E, - 0x7E, - 0x7E, - 0xB1, - 0xBF, - 0xBF, - 0xB1, - 0x8E, - 0x7E, - 0xBF, - 0xB1, - 0xBF, - 0xAE, - 0xB1, - 0xAE, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x79, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x04, - 0x35, - 0x00, - 0x06, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x04, - 0x35, - 0x00, - 0x15, - 0x49, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x79, - 0x79, - 0x79, - 0x49, - 0x35, - 0x49, - 0x79, - 0x79, - 0x49, - 0x79, - 0x00, - 0x04, - 0x49, - 0x00, - 0x14, - 0x9C, - 0x9C, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x0F, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x6C, - 0x00, - 0x07, - 0x56, - 0x00, - 0x2A, - 0x82, - 0x56, - 0x82, - 0x7D, - 0x82, - 0x8A, - 0x82, - 0x8A, - 0x98, - 0x82, - 0x98, - 0x82, - 0x98, - 0x98, - 0x9E, - 0x98, - 0x9E, - 0x8F, - 0x9E, - 0x8F, - 0x9E, - 0x9E, - 0x8F, - 0x68, - 0x94, - 0x98, - 0x7D, - 0x31, - 0x5A, - 0xA8, - 0x36, - 0x76, - 0x55, - 0x8C, - 0x32, - 0x2D, - 0x2D, - 0x7B, - 0x7B, - 0x95, - 0x70, - 0x7B, - 0x04, - 0x95, - 0x00, - 0x19, - 0x7B, - 0x95, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0x85, - 0xC0, - 0xC0, - 0xC0, - 0xE5, - 0xDE, - 0xE9, - 0xD0, - 0xE2, - 0xEB, - 0xEB, - 0xEB, - 0xED, - 0xED, - 0xED, - 0x11, - 0xED, - 0x11, - 0x03, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x15, - 0xE6, - 0xFE, - 0xFE, - 0xE4, - 0xE4, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xEF, - 0xDC, - 0x12, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF0, - 0xF0, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x34, - 0xF0, - 0xF0, - 0xF1, - 0x01, - 0xF0, - 0x01, - 0xF5, - 0xE7, - 0xEF, - 0xE4, - 0xE4, - 0xE6, - 0xE6, - 0xED, - 0xBB, - 0xBB, - 0xBC, - 0xA8, - 0xDB, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBB, - 0xBB, - 0x5E, - 0x5E, - 0x5E, - 0x6F, - 0x42, - 0x74, - 0x6C, - 0x5D, - 0xB1, - 0x8E, - 0xAA, - 0xA1, - 0xA1, - 0xC9, - 0xC9, - 0xA1, - 0xA1, - 0x8D, - 0x80, - 0x8D, - 0xCB, - 0x97, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0x04, - 0x9B, - 0x00, - 0x1B, - 0xBF, - 0x7E, - 0x8E, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x7E, - 0xB1, - 0xB1, - 0xBF, - 0xBF, - 0x9B, - 0x9B, - 0xBF, - 0xAE, - 0xB1, - 0x8E, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0xBF, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x05, - 0x86, - 0x00, - 0x25, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x79, - 0x52, - 0x35, - 0x86, - 0x00, - 0x04, - 0x35, - 0x00, - 0x1C, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x49, - 0x35, - 0x52, - 0x79, - 0x49, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x35, - 0x79, - 0x49, - 0x86, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0xB9, - 0x5D, - 0x05, - 0x49, - 0x00, - 0x14, - 0x9C, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x08, - 0x8A, - 0x6B, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x08, - 0x56, - 0x00, - 0x09, - 0x7D, - 0x56, - 0x56, - 0x56, - 0x82, - 0x82, - 0x56, - 0x7D, - 0x8A, - 0x00, - 0x05, - 0x82, - 0x00, - 0x3C, - 0x98, - 0x9C, - 0x98, - 0x94, - 0x9E, - 0x8F, - 0x8F, - 0x99, - 0x9E, - 0x99, - 0x8F, - 0x8F, - 0x99, - 0x98, - 0x34, - 0x5E, - 0x66, - 0x45, - 0xAF, - 0xA0, - 0x55, - 0x8C, - 0x2D, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0x95, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0xC0, - 0xDF, - 0xC0, - 0xD5, - 0xDE, - 0xDE, - 0xE9, - 0xBD, - 0xE2, - 0xE2, - 0xEB, - 0xE8, - 0xE8, - 0xFB, - 0xED, - 0x03, - 0xED, - 0x11, - 0xED, - 0xFA, - 0xFA, - 0x05, - 0xFE, - 0x00, - 0x45, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xF6, - 0xEF, - 0xFC, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0xF1, - 0xF1, - 0xF1, - 0xF0, - 0xF0, - 0xF0, - 0xF5, - 0xF5, - 0xEF, - 0xEF, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xBB, - 0xE1, - 0xBB, - 0xDB, - 0x8B, - 0xE8, - 0xA8, - 0x8B, - 0x8B, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0x6F, - 0x6F, - 0x42, - 0x4A, - 0x35, - 0x7E, - 0x96, - 0x8D, - 0x80, - 0xC4, - 0xC9, - 0xB5, - 0xB0, - 0x8D, - 0xC6, - 0xAA, - 0xAA, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x21, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x7E, - 0x9B, - 0x8E, - 0x7E, - 0x9B, - 0x7E, - 0x9B, - 0x7E, - 0x9B, - 0xB1, - 0xBF, - 0xAE, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x00, - 0x05, - 0x86, - 0x00, - 0x45, - 0x35, - 0x86, - 0x86, - 0x79, - 0x35, - 0x52, - 0xA4, - 0x86, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x79, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x49, - 0x35, - 0x79, - 0x35, - 0x52, - 0x52, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x52, - 0x49, - 0x79, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x79, - 0x79, - 0x49, - 0x35, - 0x9C, - 0x49, - 0x9C, - 0x00, - 0x04, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x00, - 0x06, - 0x5D, - 0x00, - 0x0A, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x04, - 0x6B, - 0x00, - 0x0F, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x6C, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x56, - 0x6C, - 0x6C, - 0x8A, - 0x00, - 0x05, - 0x56, - 0x00, - 0x27, - 0x8A, - 0x7D, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x82, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x94, - 0x9E, - 0x68, - 0x8F, - 0x8F, - 0x99, - 0x9E, - 0x68, - 0x8F, - 0x7D, - 0x33, - 0x5E, - 0x66, - 0x45, - 0xAF, - 0xAB, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x95, - 0x7B, - 0x95, - 0x7B, - 0x95, - 0x95, - 0x00, - 0x05, - 0x7B, - 0x00, - 0x13, - 0xCC, - 0xC0, - 0xC0, - 0xD5, - 0xEE, - 0xDE, - 0xBD, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xF3, - 0xE8, - 0xFB, - 0xED, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x1D, - 0xE6, - 0xFE, - 0xFE, - 0xE4, - 0xFE, - 0xF6, - 0xE4, - 0xFC, - 0xF6, - 0xEF, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF0, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x4D, - 0xF0, - 0xF1, - 0x01, - 0xE7, - 0xEF, - 0xEF, - 0xDC, - 0xE4, - 0xE6, - 0xE4, - 0xBB, - 0xE1, - 0xBB, - 0xBC, - 0xBB, - 0xDB, - 0xBC, - 0xBB, - 0x8B, - 0x90, - 0xB3, - 0x59, - 0x9A, - 0x9A, - 0x6F, - 0x61, - 0x4A, - 0x35, - 0xBF, - 0x8E, - 0xAA, - 0x8D, - 0xA1, - 0xC9, - 0xA1, - 0xB0, - 0x8D, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0x8E, - 0xC5, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0xB1, - 0x9B, - 0x7E, - 0xBF, - 0xB1, - 0xB1, - 0x9B, - 0xBF, - 0x9B, - 0xAE, - 0xB1, - 0x9B, - 0xAE, - 0xAE, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xA4, - 0x35, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x00, - 0x06, - 0x86, - 0x00, - 0x04, - 0x52, - 0x86, - 0x52, - 0x35, - 0x05, - 0x86, - 0x00, - 0xB3, - 0x35, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x86, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x49, - 0x52, - 0x35, - 0x35, - 0x79, - 0x79, - 0x35, - 0x49, - 0x49, - 0x49, - 0x79, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x6B, - 0x6C, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x6C, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x7D, - 0x8A, - 0x56, - 0x56, - 0x6B, - 0x8A, - 0x8A, - 0x82, - 0x8A, - 0x82, - 0x98, - 0x9C, - 0x98, - 0x94, - 0x98, - 0x94, - 0x8F, - 0x68, - 0x99, - 0x8F, - 0x99, - 0x8F, - 0x98, - 0x7D, - 0x6F, - 0x5A, - 0xA8, - 0x36, - 0xA0, - 0x2C, - 0x8C, - 0x32, - 0x2D, - 0x70, - 0x70, - 0x95, - 0x70, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0xCC, - 0xCC, - 0xC0, - 0xCC, - 0xDE, - 0xD5, - 0xDE, - 0xE9, - 0xE9, - 0xE2, - 0xE2, - 0xEB, - 0xEB, - 0xF3, - 0xED, - 0xFB, - 0x0E, - 0xED, - 0x03, - 0xED, - 0x03, - 0x00, - 0x04, - 0xFA, - 0x04, - 0xFE, - 0x00, - 0x1D, - 0xF6, - 0xF6, - 0xF6, - 0xE4, - 0xFC, - 0xF6, - 0xF6, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF5, - 0xF1, - 0xF1, - 0xCE, - 0xF1, - 0xF1, - 0xF7, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x0C, - 0xF0, - 0xF0, - 0xE7, - 0xEF, - 0xE4, - 0xE4, - 0xE6, - 0xE6, - 0xB3, - 0xE1, - 0xBB, - 0xE1, - 0x04, - 0xBB, - 0x00, - 0x25, - 0xB3, - 0xBB, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x6E, - 0x5D, - 0x35, - 0x9B, - 0x8E, - 0x97, - 0x8D, - 0xA1, - 0xB5, - 0xB0, - 0xC6, - 0xAA, - 0xC3, - 0xAC, - 0xAC, - 0xAD, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0xBF, - 0x7E, - 0x8E, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0x7E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x10, - 0xBF, - 0x9B, - 0xAE, - 0x9B, - 0x9B, - 0x7E, - 0x9B, - 0xAE, - 0xAE, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x79, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x79, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x35, - 0x04, - 0x86, - 0x00, - 0x0B, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x86, - 0x86, - 0x35, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x1E, - 0x52, - 0x35, - 0x35, - 0x79, - 0x79, - 0x52, - 0x35, - 0x49, - 0x49, - 0x52, - 0x52, - 0x86, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x79, - 0x49, - 0x79, - 0x05, - 0x49, - 0x00, - 0x07, - 0x35, - 0x5D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x00, - 0x04, - 0x5D, - 0x01, - 0x6B, - 0x08, - 0x5D, - 0x04, - 0x6B, - 0x01, - 0x8A, - 0x04, - 0x6B, - 0x00, - 0x71, - 0x8A, - 0x8A, - 0x6B, - 0x56, - 0x56, - 0x6C, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x6C, - 0x6C, - 0x8A, - 0x56, - 0x6C, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x5D, - 0x82, - 0x82, - 0x9C, - 0x94, - 0x94, - 0x8F, - 0x9E, - 0x8F, - 0x8F, - 0x99, - 0x8F, - 0x8F, - 0x98, - 0x42, - 0x2E, - 0x8B, - 0x45, - 0xA5, - 0x7F, - 0x9F, - 0x32, - 0x85, - 0x2D, - 0x70, - 0x7B, - 0x70, - 0x95, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0xCC, - 0xDF, - 0xC0, - 0xEA, - 0xD5, - 0xE5, - 0xDE, - 0xE5, - 0xE2, - 0xEC, - 0xEC, - 0xEB, - 0xF3, - 0xF3, - 0xED, - 0xED, - 0x0E, - 0x03, - 0xED, - 0x03, - 0xFA, - 0xFA, - 0xE6, - 0x11, - 0xFA, - 0xFE, - 0xFA, - 0xE4, - 0xFE, - 0xE4, - 0xFE, - 0xE4, - 0x13, - 0xF6, - 0xF6, - 0xF6, - 0xEF, - 0xFC, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xCE, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x06, - 0x00, - 0x00, - 0x4B, - 0xF1, - 0xF1, - 0xF1, - 0xF0, - 0xE7, - 0xF5, - 0xE7, - 0xDC, - 0xE4, - 0xE4, - 0xD6, - 0xB3, - 0xE6, - 0xB3, - 0xBB, - 0xBB, - 0xB3, - 0x90, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x42, - 0x3B, - 0x4A, - 0x35, - 0x7E, - 0x9B, - 0x80, - 0x8D, - 0xA1, - 0xB0, - 0xB0, - 0xAA, - 0xC3, - 0xB8, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xBF, - 0x9B, - 0xBF, - 0xB1, - 0x7E, - 0xBF, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0x8E, - 0x7E, - 0x7E, - 0x9B, - 0x7E, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0xC5, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x86, - 0x52, - 0x00, - 0x06, - 0x86, - 0x01, - 0xA4, - 0x01, - 0x35, - 0x04, - 0x86, - 0x00, - 0x0E, - 0x35, - 0xA4, - 0x79, - 0x35, - 0x35, - 0x79, - 0xA4, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x35, - 0x04, - 0x86, - 0x00, - 0x30, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0x79, - 0x52, - 0x52, - 0x35, - 0x49, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x49, - 0x52, - 0x49, - 0x49, - 0x35, - 0x52, - 0x35, - 0x35, - 0x49, - 0x79, - 0x35, - 0x79, - 0x52, - 0x35, - 0x35, - 0x52, - 0x49, - 0x79, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x05, - 0x49, - 0x00, - 0x03, - 0x5D, - 0x5D, - 0x49, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x19, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x5D, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x6C, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x6C, - 0x00, - 0x05, - 0x56, - 0x01, - 0x6C, - 0x05, - 0x8A, - 0x00, - 0x08, - 0x82, - 0x8A, - 0x8A, - 0x82, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x04, - 0x8F, - 0x00, - 0x28, - 0x99, - 0x8F, - 0x8A, - 0x33, - 0x5E, - 0x66, - 0x45, - 0xAF, - 0x7F, - 0x8C, - 0x32, - 0x2D, - 0x2D, - 0x70, - 0x7B, - 0x7B, - 0x7B, - 0x95, - 0x7B, - 0x7B, - 0xCC, - 0x70, - 0xCC, - 0x2D, - 0xCC, - 0xC0, - 0xD5, - 0xD5, - 0xDE, - 0xE5, - 0xE9, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xF3, - 0xE8, - 0xFB, - 0x0E, - 0x0E, - 0x05, - 0x03, - 0x04, - 0xFA, - 0x00, - 0x31, - 0xFE, - 0xE6, - 0xE4, - 0xFA, - 0xE4, - 0xFA, - 0xFE, - 0xF6, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0x02, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF1, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0xF0, - 0xE3, - 0xEF, - 0xEF, - 0xE4, - 0xE4, - 0x9A, - 0xE4, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x30, - 0x90, - 0xB3, - 0x9A, - 0xB3, - 0x9A, - 0x6E, - 0x3B, - 0x6B, - 0x52, - 0xBF, - 0xAC, - 0xAA, - 0x80, - 0xB0, - 0xB0, - 0x80, - 0xC3, - 0xC3, - 0xAC, - 0xC5, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x7E, - 0xB1, - 0xB2, - 0x8E, - 0xBF, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0xBF, - 0x9B, - 0x7E, - 0x9B, - 0xBF, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x0A, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x67, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x79, - 0x35, - 0x35, - 0x86, - 0x79, - 0x35, - 0x86, - 0x49, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x49, - 0x79, - 0x79, - 0x79, - 0x35, - 0x52, - 0x86, - 0x86, - 0x49, - 0x49, - 0x79, - 0x35, - 0x35, - 0x49, - 0x52, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x35, - 0x79, - 0x9C, - 0x79, - 0x49, - 0x52, - 0x5D, - 0x9C, - 0x49, - 0x9C, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x10, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x9C, - 0x07, - 0x6B, - 0x01, - 0x56, - 0x01, - 0x6B, - 0x05, - 0x56, - 0x00, - 0x04, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x04, - 0x56, - 0x00, - 0x3C, - 0x8A, - 0x56, - 0x8A, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x82, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x8F, - 0x99, - 0x8F, - 0x94, - 0x56, - 0x31, - 0x59, - 0x66, - 0xA7, - 0x76, - 0xAB, - 0x55, - 0xC0, - 0x2D, - 0x2D, - 0x7B, - 0x70, - 0x7B, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0x7B, - 0xCC, - 0xCC, - 0xEA, - 0xC0, - 0xC0, - 0xEE, - 0xE5, - 0xE5, - 0xBD, - 0xE9, - 0xEC, - 0xEB, - 0xEB, - 0xF3, - 0xFB, - 0xFB, - 0xED, - 0xED, - 0x0D, - 0xED, - 0x03, - 0xED, - 0xFA, - 0xFA, - 0xED, - 0x04, - 0xFA, - 0x00, - 0x03, - 0xFE, - 0x11, - 0xFA, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x16, - 0xF6, - 0xF6, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0x01, - 0xF0, - 0xF0, - 0x00, - 0xF1, - 0x00, - 0xCE, - 0x00, - 0x05, - 0xF7, - 0x05, - 0x00, - 0x00, - 0x31, - 0xF1, - 0x00, - 0xF0, - 0xF0, - 0x9D, - 0xE7, - 0xEF, - 0xE4, - 0xD6, - 0xD6, - 0xE4, - 0xB3, - 0xE6, - 0x5E, - 0xB3, - 0xB3, - 0xB3, - 0x9A, - 0x6F, - 0x42, - 0x3B, - 0x5D, - 0x86, - 0xB2, - 0x9B, - 0xCB, - 0x80, - 0x8D, - 0x8D, - 0xAA, - 0x97, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x7E, - 0x9B, - 0x9B, - 0xBF, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0x7E, - 0xB1, - 0x7E, - 0x8E, - 0xB1, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x13, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xAE, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0xC5, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3D, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x86, - 0x35, - 0x86, - 0x86, - 0x79, - 0xA4, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x79, - 0x35, - 0x52, - 0x35, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x52, - 0x00, - 0x04, - 0x35, - 0x00, - 0x23, - 0x52, - 0x35, - 0x52, - 0x49, - 0x35, - 0x49, - 0x52, - 0x79, - 0x52, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x49, - 0x35, - 0x49, - 0x86, - 0x35, - 0x35, - 0x5D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x15, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x3D, - 0x6C, - 0x6B, - 0x6C, - 0x56, - 0x8A, - 0x8A, - 0x6C, - 0x56, - 0x6B, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x6B, - 0x82, - 0x5D, - 0x9C, - 0x94, - 0x9C, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x99, - 0x8F, - 0x94, - 0x3B, - 0x31, - 0x90, - 0x75, - 0xA7, - 0x76, - 0xAB, - 0x8C, - 0xC0, - 0x2D, - 0x70, - 0x70, - 0x7B, - 0x7B, - 0x7B, - 0xCC, - 0x7B, - 0x85, - 0xCC, - 0x85, - 0xC0, - 0xC0, - 0xEE, - 0xDE, - 0xE5, - 0xBD, - 0xE9, - 0xEC, - 0xEC, - 0xF8, - 0xEB, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x0B, - 0x0D, - 0xED, - 0x0E, - 0x03, - 0x0E, - 0xFA, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0x03, - 0x00, - 0x06, - 0xFA, - 0x00, - 0x05, - 0xFE, - 0x13, - 0xE6, - 0xFE, - 0xFE, - 0x00, - 0x05, - 0xF6, - 0x00, - 0x16, - 0xFC, - 0xFC, - 0xEF, - 0x02, - 0xEF, - 0x02, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0x00, - 0xF7, - 0xF7, - 0x05, - 0x00, - 0x00, - 0x2C, - 0xF1, - 0xF1, - 0xF0, - 0xF5, - 0xDC, - 0xEF, - 0xE4, - 0xE4, - 0x6F, - 0x6F, - 0xB3, - 0xE4, - 0xB3, - 0xB3, - 0x9A, - 0x9A, - 0x6F, - 0x6F, - 0x4A, - 0x4A, - 0x35, - 0x7E, - 0x9B, - 0x97, - 0x80, - 0xD3, - 0xAA, - 0xCB, - 0x97, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x7E, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x8E, - 0x7E, - 0x06, - 0x9B, - 0x00, - 0x09, - 0xB1, - 0xB1, - 0x9B, - 0xAE, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x06, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0xC5, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x86, - 0x35, - 0x35, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x52, - 0x79, - 0x35, - 0x49, - 0x35, - 0x52, - 0x35, - 0x35, - 0x49, - 0x52, - 0x49, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x35, - 0x79, - 0x52, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x35, - 0x49, - 0x79, - 0x5D, - 0xB9, - 0x49, - 0x49, - 0x9C, - 0x9C, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x49, - 0x09, - 0x5D, - 0x00, - 0x1D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x56, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x6B, - 0x6C, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x6B, - 0x8A, - 0x56, - 0x6B, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x29, - 0x82, - 0x8A, - 0x9C, - 0x98, - 0x9C, - 0x94, - 0x94, - 0x8F, - 0x99, - 0x94, - 0x82, - 0x74, - 0x2E, - 0x59, - 0x45, - 0xA7, - 0xA0, - 0x55, - 0x8C, - 0x32, - 0xCC, - 0x70, - 0x7B, - 0x2D, - 0x70, - 0xCC, - 0x7B, - 0xCC, - 0xCC, - 0xCC, - 0xEA, - 0xEA, - 0xDE, - 0xDE, - 0xE5, - 0xE9, - 0xE9, - 0xF9, - 0xEB, - 0xF3, - 0xE8, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x0F, - 0xED, - 0x0E, - 0xED, - 0x03, - 0xED, - 0xED, - 0x03, - 0x03, - 0xED, - 0xED, - 0x03, - 0xED, - 0xFA, - 0xFA, - 0x03, - 0x00, - 0x05, - 0xFA, - 0x04, - 0xFE, - 0x00, - 0x12, - 0xF6, - 0x13, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0x12, - 0xEF, - 0x02, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0xF1, - 0x00, - 0x06, - 0xF7, - 0x01, - 0xF4, - 0x04, - 0xF7, - 0x04, - 0x00, - 0x00, - 0x2C, - 0xF0, - 0xA4, - 0xF5, - 0x9D, - 0xDC, - 0xDC, - 0xDD, - 0xE4, - 0x9A, - 0x9A, - 0x6F, - 0xD6, - 0xD6, - 0x9A, - 0x6F, - 0x6E, - 0x3B, - 0x4A, - 0x52, - 0xB2, - 0x9B, - 0xAC, - 0x80, - 0x80, - 0x80, - 0x97, - 0x8E, - 0x9B, - 0xAE, - 0xBF, - 0xB1, - 0xAE, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x7E, - 0x9B, - 0x7E, - 0xB1, - 0x9B, - 0x8E, - 0x7E, - 0x06, - 0x9B, - 0x00, - 0x03, - 0x8E, - 0x9B, - 0xB1, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x0B, - 0xB1, - 0xB1, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x01, - 0x86, - 0x05, - 0x52, - 0x00, - 0x14, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x04, - 0x86, - 0x00, - 0x42, - 0x35, - 0x86, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x52, - 0x52, - 0x79, - 0x52, - 0x35, - 0x79, - 0x35, - 0x52, - 0x52, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x52, - 0x35, - 0x35, - 0x49, - 0x52, - 0x35, - 0x35, - 0x49, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x35, - 0x79, - 0x79, - 0x79, - 0x04, - 0x49, - 0x00, - 0x0A, - 0x5D, - 0x49, - 0x9C, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x08, - 0x5D, - 0x00, - 0x1C, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x56, - 0x6C, - 0x8A, - 0x6B, - 0x56, - 0x6B, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x04, - 0x8A, - 0x00, - 0x3A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0xA3, - 0x94, - 0x34, - 0x5E, - 0x5A, - 0xA8, - 0xA7, - 0xA0, - 0xAB, - 0x8C, - 0x85, - 0x2D, - 0x2D, - 0x7B, - 0xCC, - 0x85, - 0xCC, - 0xC0, - 0xCC, - 0xCC, - 0xDE, - 0xD5, - 0xDE, - 0xE5, - 0xE5, - 0xE9, - 0xE2, - 0xEC, - 0xEB, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0xED, - 0x10, - 0xFB, - 0x0E, - 0xED, - 0x0D, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x03, - 0x03, - 0x03, - 0xED, - 0x03, - 0x03, - 0x03, - 0x05, - 0xFA, - 0x00, - 0x18, - 0xFE, - 0xFA, - 0xFE, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0xCE, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x03, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x2C, - 0x00, - 0x00, - 0x00, - 0xF0, - 0xE3, - 0xF5, - 0x9D, - 0xFC, - 0xE4, - 0x6E, - 0xE4, - 0xE4, - 0x6F, - 0xD6, - 0x9A, - 0x6F, - 0x6F, - 0x6E, - 0x3B, - 0x5D, - 0x35, - 0x7E, - 0x9B, - 0xAC, - 0xAC, - 0x80, - 0xAC, - 0x97, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0x7E, - 0xB1, - 0x7E, - 0x8E, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x05, - 0x9B, - 0x00, - 0x15, - 0x7E, - 0xBF, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0xC5, - 0xC5, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x35, - 0x52, - 0x86, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x86, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x35, - 0x52, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x35, - 0x86, - 0x86, - 0x52, - 0x79, - 0x35, - 0x52, - 0x86, - 0x35, - 0x35, - 0x00, - 0x04, - 0x86, - 0x00, - 0x1F, - 0x52, - 0x35, - 0x79, - 0x79, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x52, - 0x35, - 0x52, - 0x49, - 0x52, - 0x79, - 0x35, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x79, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x00, - 0x06, - 0x49, - 0x00, - 0x12, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x0D, - 0x4A, - 0x8A, - 0x6B, - 0x8A, - 0x6B, - 0x6C, - 0x6C, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x00, - 0x05, - 0x8A, - 0x01, - 0x6C, - 0x05, - 0x8A, - 0x00, - 0x33, - 0x82, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x8F, - 0x56, - 0x34, - 0x46, - 0x8B, - 0x91, - 0xA5, - 0x7F, - 0xAB, - 0x8C, - 0x32, - 0x2D, - 0xCC, - 0x2D, - 0xCC, - 0xCC, - 0xCC, - 0xEA, - 0xC0, - 0xD5, - 0xEA, - 0xE5, - 0xDE, - 0xBD, - 0xEC, - 0xEC, - 0xF9, - 0xF8, - 0xF3, - 0xE8, - 0x0D, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0xED, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x00, - 0x05, - 0x03, - 0x00, - 0x04, - 0xED, - 0x11, - 0x03, - 0x03, - 0x04, - 0xFA, - 0x00, - 0x1D, - 0xFE, - 0xFE, - 0xE4, - 0x11, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF5, - 0x01, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x33, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0x00, - 0xF1, - 0xA4, - 0xE7, - 0xF5, - 0xDC, - 0xDC, - 0xDC, - 0x6F, - 0xE4, - 0x6F, - 0x6F, - 0xBA, - 0xBA, - 0xBA, - 0x3B, - 0x4A, - 0x35, - 0xB2, - 0x7E, - 0xCB, - 0xAA, - 0xCB, - 0xAC, - 0x9B, - 0x9B, - 0xB1, - 0xBF, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xBF, - 0x8E, - 0x7E, - 0x9B, - 0x7E, - 0x8E, - 0x9B, - 0xB1, - 0x7E, - 0x8E, - 0x9B, - 0x8E, - 0x7E, - 0x8E, - 0x8E, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x10, - 0xB1, - 0x9B, - 0xBF, - 0xB1, - 0xBF, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x17, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x52, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x00, - 0x04, - 0x86, - 0x00, - 0x4F, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x35, - 0xA4, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x86, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x52, - 0x49, - 0x52, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x79, - 0x49, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x79, - 0x49, - 0x79, - 0x49, - 0x49, - 0x52, - 0x79, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x00, - 0x04, - 0x49, - 0x00, - 0x06, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x9C, - 0x09, - 0x5D, - 0x04, - 0x6B, - 0x00, - 0x05, - 0x6C, - 0x6B, - 0x6B, - 0x6C, - 0x8A, - 0x00, - 0x07, - 0x6B, - 0x00, - 0x2F, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x56, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x94, - 0x94, - 0x94, - 0x8F, - 0x94, - 0x56, - 0x34, - 0x9A, - 0x8B, - 0xA8, - 0xA7, - 0xA0, - 0x55, - 0x8C, - 0x85, - 0xC0, - 0x2D, - 0xCC, - 0xC0, - 0xDF, - 0xC0, - 0xC0, - 0xEE, - 0xDE, - 0xDE, - 0xE5, - 0xE9, - 0xE2, - 0xF9, - 0xEB, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0x05, - 0xFB, - 0x01, - 0x0E, - 0x01, - 0xED, - 0x04, - 0x0E, - 0x00, - 0x60, - 0xED, - 0xED, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x03, - 0x03, - 0xE6, - 0x03, - 0xFA, - 0x03, - 0xFE, - 0xFA, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0xF6, - 0xFC, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xD3, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0x00, - 0xF1, - 0xF0, - 0xE7, - 0xE7, - 0xDC, - 0x6E, - 0xBA, - 0xDD, - 0xBA, - 0xE4, - 0xBA, - 0x42, - 0x6E, - 0x6E, - 0x6B, - 0x35, - 0x52, - 0xB1, - 0x9B, - 0xCB, - 0x97, - 0xC5, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x7E, - 0x05, - 0x9B, - 0x00, - 0x09, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x00, - 0x07, - 0x9B, - 0x00, - 0x04, - 0xC5, - 0x9B, - 0x9B, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x71, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x79, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x35, - 0x35, - 0x35, - 0x52, - 0x49, - 0x79, - 0x35, - 0x49, - 0x49, - 0x9C, - 0x5D, - 0x49, - 0x49, - 0x9C, - 0x5D, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x1E, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x6B, - 0x6B, - 0x56, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x04, - 0x8A, - 0x00, - 0x23, - 0x9C, - 0x8A, - 0x82, - 0x9C, - 0x9C, - 0x94, - 0xA3, - 0x8F, - 0x94, - 0x8A, - 0x34, - 0x5E, - 0x5A, - 0x45, - 0xA5, - 0xA0, - 0xB4, - 0xD5, - 0x8C, - 0xCC, - 0xC0, - 0x8C, - 0xCC, - 0xD5, - 0xD5, - 0xDE, - 0xD5, - 0xE5, - 0xE5, - 0xE9, - 0xEC, - 0xF9, - 0xEB, - 0xF3, - 0xF3, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x08, - 0x0D, - 0xED, - 0xFB, - 0x0E, - 0x0D, - 0x0E, - 0x0E, - 0xED, - 0x05, - 0x0E, - 0x00, - 0x2E, - 0xED, - 0x0E, - 0xED, - 0xED, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x03, - 0xFA, - 0x03, - 0x11, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xFE, - 0xF6, - 0xF6, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0x04, - 0xF7, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0xD4, - 0xF0, - 0xE3, - 0xEF, - 0xEF, - 0xDC, - 0xDC, - 0xBA, - 0xBA, - 0xBA, - 0x6E, - 0xBA, - 0x3B, - 0x4A, - 0x35, - 0xB2, - 0x7E, - 0x8E, - 0x8E, - 0xAC, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0xBF, - 0x8E, - 0xB1, - 0xB1, - 0x9B, - 0xBF, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x7E, - 0x8E, - 0x8E, - 0x04, - 0x9B, - 0x00, - 0x06, - 0x8E, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xBF, - 0x05, - 0x9B, - 0x00, - 0x0A, - 0x8E, - 0x8E, - 0x8E, - 0xC5, - 0xAC, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x6B, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x35, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x86, - 0x86, - 0xA4, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0x49, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x79, - 0x52, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x52, - 0x52, - 0x52, - 0x35, - 0x35, - 0x49, - 0x79, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x35, - 0x49, - 0x79, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x12, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x07, - 0x6B, - 0x01, - 0x5D, - 0x06, - 0x6B, - 0x00, - 0x34, - 0x8A, - 0x5D, - 0x6B, - 0x8A, - 0x5D, - 0x5D, - 0x8A, - 0x5D, - 0x6B, - 0x9C, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x8A, - 0x42, - 0x9A, - 0x8B, - 0xA8, - 0xA7, - 0xAF, - 0xAB, - 0x9F, - 0xD5, - 0xC0, - 0xC0, - 0xEA, - 0xD5, - 0xD5, - 0xEE, - 0xE5, - 0xE5, - 0xE9, - 0xE9, - 0xE2, - 0xF9, - 0xF8, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0D, - 0x0E, - 0xED, - 0x0D, - 0xED, - 0x07, - 0x0E, - 0x00, - 0x1B, - 0x0D, - 0x0E, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0xFA, - 0xFA, - 0x03, - 0xFA, - 0xFA, - 0xFE, - 0xF6, - 0xF6, - 0x13, - 0xF6, - 0xFC, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x05, - 0xF5, - 0x00, - 0x0D, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0x00, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x23, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0xF1, - 0xF1, - 0xA4, - 0xF5, - 0x9D, - 0xE7, - 0x9D, - 0xDC, - 0xDC, - 0xBA, - 0x6E, - 0x61, - 0x3B, - 0x4A, - 0x35, - 0x52, - 0xB2, - 0x8E, - 0xAC, - 0x8E, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x00, - 0x07, - 0xB1, - 0x09, - 0x9B, - 0x01, - 0xB1, - 0x05, - 0x9B, - 0x00, - 0x0B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x52, - 0x35, - 0x00, - 0x05, - 0x86, - 0x00, - 0x30, - 0x35, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0x35, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0x86, - 0x52, - 0x35, - 0x79, - 0x52, - 0x05, - 0x35, - 0x00, - 0x09, - 0x49, - 0x35, - 0x35, - 0x52, - 0x52, - 0x35, - 0x35, - 0x79, - 0x79, - 0x00, - 0x05, - 0x35, - 0x01, - 0x52, - 0x01, - 0x52, - 0x04, - 0x35, - 0x00, - 0x12, - 0x49, - 0x49, - 0x9C, - 0x49, - 0xB9, - 0x9C, - 0x49, - 0x9C, - 0x35, - 0x5D, - 0x5D, - 0x49, - 0x9C, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x6B, - 0x04, - 0x5D, - 0x00, - 0x06, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x0D, - 0x6B, - 0x00, - 0x09, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x8A, - 0x6B, - 0x6B, - 0x8A, - 0x5D, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x1A, - 0x94, - 0xA3, - 0x8F, - 0x8A, - 0x34, - 0x46, - 0x5A, - 0xA8, - 0xA7, - 0xAF, - 0xBD, - 0xB4, - 0xD5, - 0xD5, - 0xD5, - 0xC0, - 0xDE, - 0xE5, - 0xDE, - 0xE5, - 0xEC, - 0xE9, - 0xEB, - 0xF8, - 0xF3, - 0xF3, - 0x06, - 0xFB, - 0x00, - 0x23, - 0xED, - 0x0E, - 0xED, - 0x0E, - 0x0E, - 0x0E, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x0D, - 0x0E, - 0x0D, - 0x0E, - 0x0E, - 0x0E, - 0xFB, - 0x0D, - 0x0D, - 0x0E, - 0xFB, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0xFA, - 0x11, - 0xFA, - 0x11, - 0xFE, - 0xFE, - 0xF6, - 0x00, - 0x04, - 0xFC, - 0x00, - 0x0F, - 0x02, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x08, - 0xF4, - 0x00, - 0x16, - 0x00, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0xCE, - 0x00, - 0xF1, - 0xA4, - 0xF5, - 0xA6, - 0xDC, - 0x9D, - 0x6E, - 0xA6, - 0x6D, - 0x4A, - 0x6D, - 0x5D, - 0x35, - 0x52, - 0x7E, - 0x04, - 0x9B, - 0x00, - 0x0A, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x08, - 0x9B, - 0x00, - 0x03, - 0xB1, - 0x9B, - 0x8E, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x12, - 0x8E, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xAC, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x9B, - 0xC5, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x58, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x35, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x35, - 0x35, - 0x79, - 0x49, - 0x49, - 0x52, - 0x52, - 0x04, - 0x35, - 0x00, - 0x0D, - 0x52, - 0x79, - 0xA4, - 0x9C, - 0x35, - 0x35, - 0x35, - 0x79, - 0x35, - 0x79, - 0x49, - 0x79, - 0x79, - 0x00, - 0x04, - 0x49, - 0x00, - 0x1D, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x4A, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x59, - 0x5D, - 0x8A, - 0x5D, - 0x8A, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x82, - 0x9C, - 0x5D, - 0x9C, - 0x94, - 0xA3, - 0x94, - 0x6B, - 0x3B, - 0x46, - 0x59, - 0xBC, - 0xA7, - 0xD0, - 0xA0, - 0xBD, - 0xDE, - 0xAB, - 0xDE, - 0xD5, - 0xE5, - 0xE5, - 0xE9, - 0xEC, - 0xE9, - 0xEC, - 0xF8, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0x0D, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x0D, - 0x0E, - 0x0D, - 0x0E, - 0x0D, - 0x0E, - 0xFB, - 0x0D, - 0x0E, - 0xFB, - 0x0E, - 0x0D, - 0x0E, - 0xFB, - 0x0D, - 0xFB, - 0x0E, - 0xFB, - 0x10, - 0x10, - 0x0D, - 0xFB, - 0xFB, - 0x0D, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x11, - 0xFA, - 0xFE, - 0xFE, - 0x13, - 0xF6, - 0xFC, - 0xFC, - 0xEF, - 0xEF, - 0xF5, - 0xEF, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x08, - 0xF1, - 0xF1, - 0xF0, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x1C, - 0xF7, - 0xF7, - 0xF4, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0xF1, - 0xA4, - 0xF0, - 0xE3, - 0xE7, - 0x9D, - 0xE7, - 0x3B, - 0xA6, - 0x4A, - 0x4A, - 0x49, - 0x35, - 0x52, - 0xB2, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x04, - 0x9B, - 0x00, - 0x27, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x7E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xAC, - 0x8E, - 0xB1, - 0xC5, - 0x9B, - 0x8E, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xAC, - 0x8E, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x05, - 0x86, - 0x00, - 0x25, - 0x52, - 0x52, - 0x86, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x86, - 0xA4, - 0x52, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x86, - 0x35, - 0x35, - 0xA4, - 0x52, - 0x00, - 0x05, - 0x35, - 0x00, - 0x29, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x52, - 0x79, - 0x52, - 0x49, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x9C, - 0x86, - 0x52, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x35, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x00, - 0x77, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x8A, - 0x82, - 0x5D, - 0x8A, - 0x8A, - 0x5D, - 0x5D, - 0x8A, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0xA3, - 0x9C, - 0x34, - 0x46, - 0x90, - 0xBC, - 0xA8, - 0xBE, - 0xBD, - 0xBD, - 0xBD, - 0xE5, - 0xDE, - 0xE5, - 0xE5, - 0xE9, - 0xE9, - 0xEC, - 0xF8, - 0xF3, - 0xF8, - 0xFB, - 0x10, - 0xFB, - 0xFB, - 0xFB, - 0x03, - 0xED, - 0x0E, - 0x0E, - 0xED, - 0x0E, - 0xFB, - 0x0D, - 0x0E, - 0xFB, - 0x0D, - 0x0D, - 0x10, - 0x0E, - 0xFB, - 0x0D, - 0x10, - 0x0D, - 0xFB, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0xFB, - 0x10, - 0x10, - 0xFB, - 0x10, - 0x0D, - 0xFB, - 0x0E, - 0x0D, - 0x0D, - 0x03, - 0x03, - 0x03, - 0x11, - 0x11, - 0xF6, - 0xFE, - 0x13, - 0x13, - 0xF6, - 0x12, - 0xFC, - 0xEF, - 0x02, - 0xF5, - 0xEF, - 0xF5, - 0xF0, - 0xF5, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x01, - 0xF7, - 0x01, - 0xF4, - 0x06, - 0xF7, - 0x00, - 0x07, - 0xF1, - 0xF1, - 0xE7, - 0xE7, - 0xB9, - 0xA6, - 0xA6, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x05, - 0x35, - 0xA3, - 0xB2, - 0x9B, - 0x8E, - 0x00, - 0x07, - 0x9B, - 0x00, - 0x03, - 0xB1, - 0x9B, - 0xB1, - 0x00, - 0x08, - 0x9B, - 0x00, - 0x1B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0xAE, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x8E, - 0x8E, - 0xAC, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x43, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x86, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x86, - 0x52, - 0x35, - 0x35, - 0x86, - 0x52, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x79, - 0x52, - 0x86, - 0x00, - 0x05, - 0x52, - 0x00, - 0x19, - 0x35, - 0x52, - 0x52, - 0x35, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x79, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x79, - 0x00, - 0x05, - 0x35, - 0x00, - 0x10, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x52, - 0x49, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x49, - 0x5D, - 0x04, - 0x49, - 0x08, - 0x5D, - 0x00, - 0x28, - 0x6B, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x8A, - 0x5D, - 0x9C, - 0x5D, - 0x52, - 0x94, - 0x94, - 0x3B, - 0x31, - 0x59, - 0xBB, - 0xBC, - 0xD8, - 0xD8, - 0xE2, - 0xBD, - 0x04, - 0xE9, - 0x00, - 0x1D, - 0xF9, - 0xE2, - 0xF8, - 0xF3, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0xFB, - 0x0E, - 0x0E, - 0x10, - 0x10, - 0xFB, - 0x0D, - 0x10, - 0x0D, - 0x10, - 0x0D, - 0x10, - 0x0D, - 0x00, - 0x05, - 0x10, - 0x01, - 0xF3, - 0x07, - 0x10, - 0x00, - 0x20, - 0x0D, - 0x0D, - 0x0D, - 0x0E, - 0x0E, - 0x11, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0x13, - 0xFC, - 0xFC, - 0xFC, - 0x12, - 0xEF, - 0xF5, - 0xF5, - 0x01, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0x04, - 0xF4, - 0x04, - 0xF7, - 0x00, - 0x08, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0xA4, - 0xF1, - 0xA6, - 0xE7, - 0x05, - 0xB9, - 0x00, - 0x0F, - 0x79, - 0x52, - 0xB2, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x00, - 0x09, - 0x9B, - 0x00, - 0x05, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x11, - 0xB1, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xC5, - 0xAC, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x35, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0xA4, - 0x35, - 0x86, - 0x00, - 0x04, - 0x52, - 0x00, - 0x0E, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x86, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x86, - 0x52, - 0xA4, - 0x86, - 0xA4, - 0x04, - 0x52, - 0x00, - 0x1F, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x35, - 0x86, - 0x35, - 0x86, - 0x35, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x52, - 0x35, - 0x00, - 0x04, - 0x52, - 0x00, - 0x16, - 0x35, - 0x52, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x49, - 0x52, - 0x35, - 0x49, - 0x52, - 0x52, - 0x49, - 0x79, - 0x52, - 0x79, - 0x79, - 0x35, - 0x49, - 0x49, - 0x35, - 0x07, - 0x49, - 0x00, - 0x1A, - 0x9C, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x6B, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x6B, - 0x05, - 0x5D, - 0x00, - 0x27, - 0x6B, - 0x5D, - 0x8A, - 0x49, - 0x9C, - 0x5D, - 0x5D, - 0x9C, - 0x9C, - 0x9C, - 0x94, - 0x52, - 0x5D, - 0x3B, - 0x31, - 0x9A, - 0xBB, - 0xBC, - 0xA8, - 0xEB, - 0xD0, - 0xEC, - 0xBD, - 0xEC, - 0xE9, - 0xEC, - 0xEC, - 0xF3, - 0xF3, - 0x04, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x0E, - 0x03, - 0x0E, - 0xED, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x09, - 0xFB, - 0x0D, - 0x0D, - 0x0D, - 0x10, - 0x0D, - 0x10, - 0x10, - 0x0D, - 0x00, - 0x07, - 0x10, - 0x06, - 0x04, - 0x00, - 0x29, - 0x10, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x0D, - 0x0E, - 0x11, - 0x03, - 0x11, - 0xFE, - 0xFE, - 0x13, - 0x13, - 0xFC, - 0xFC, - 0x12, - 0xFC, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0x00, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x16, - 0x00, - 0x00, - 0xE3, - 0xF0, - 0xA4, - 0xE3, - 0xB9, - 0xB9, - 0x86, - 0x86, - 0x86, - 0x35, - 0xB2, - 0x7E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x04, - 0x9B, - 0x00, - 0x23, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x7E, - 0x8E, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0x8E, - 0xC5, - 0xC5, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x48, - 0x52, - 0x35, - 0x52, - 0xA4, - 0x35, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x04, - 0x52, - 0x00, - 0x3E, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0x79, - 0x52, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x79, - 0x52, - 0x35, - 0x79, - 0x49, - 0x52, - 0x49, - 0x49, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x49, - 0x5D, - 0x35, - 0x49, - 0x49, - 0x9C, - 0x49, - 0x9C, - 0x49, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x6B, - 0x5D, - 0x4A, - 0x5D, - 0x6B, - 0x09, - 0x5D, - 0x00, - 0x32, - 0x6B, - 0x49, - 0x82, - 0x5D, - 0x9C, - 0x5D, - 0x9C, - 0x9C, - 0x6B, - 0x5D, - 0x9C, - 0x5D, - 0x94, - 0x49, - 0x56, - 0x6F, - 0x9A, - 0xBB, - 0xE1, - 0xE8, - 0xD8, - 0xEB, - 0xEB, - 0xEC, - 0xEC, - 0xF9, - 0xEC, - 0xF8, - 0xF8, - 0x10, - 0xFB, - 0x0D, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0x0D, - 0x0D, - 0xFB, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x06, - 0x10, - 0x00, - 0x09, - 0x04, - 0x04, - 0x04, - 0x10, - 0x0B, - 0xF8, - 0x04, - 0x0B, - 0xF8, - 0x00, - 0x04, - 0x04, - 0x00, - 0x12, - 0x10, - 0x04, - 0x0D, - 0x10, - 0x0D, - 0x0D, - 0x03, - 0x03, - 0x11, - 0x11, - 0x11, - 0x13, - 0xFE, - 0x13, - 0xFC, - 0xFC, - 0xFC, - 0x02, - 0x04, - 0xF5, - 0x00, - 0x24, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xCE, - 0xF1, - 0xF1, - 0xA4, - 0xF0, - 0xD4, - 0x35, - 0xE3, - 0x86, - 0x35, - 0x52, - 0xA4, - 0x7E, - 0xB2, - 0x8E, - 0x05, - 0x9B, - 0x00, - 0x04, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0x07, - 0x9B, - 0x00, - 0x09, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x00, - 0x06, - 0x9B, - 0x00, - 0x0F, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0xA4, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x86, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x86, - 0x35, - 0xA4, - 0x52, - 0x86, - 0x86, - 0x86, - 0x35, - 0x52, - 0x52, - 0x86, - 0x86, - 0x52, - 0x52, - 0x79, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x35, - 0x04, - 0x52, - 0x00, - 0x2D, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x86, - 0x52, - 0x52, - 0x35, - 0x52, - 0x52, - 0x35, - 0xA3, - 0x86, - 0x86, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x49, - 0x52, - 0x52, - 0x49, - 0x35, - 0x52, - 0x35, - 0x79, - 0x52, - 0x35, - 0x79, - 0x52, - 0x52, - 0x35, - 0x79, - 0x35, - 0x49, - 0x79, - 0x9C, - 0x49, - 0x5D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x05, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x07, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x6B, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x07, - 0x9C, - 0x6B, - 0x6B, - 0x6B, - 0x9C, - 0x5D, - 0x9C, - 0x00, - 0x08, - 0x5D, - 0x00, - 0x19, - 0x9C, - 0x49, - 0x94, - 0x52, - 0x94, - 0x4A, - 0x6E, - 0x9A, - 0xD6, - 0xBB, - 0xDB, - 0xE8, - 0xE8, - 0xE2, - 0xEB, - 0xEC, - 0xEB, - 0xF8, - 0xF3, - 0x10, - 0x10, - 0xFB, - 0xFB, - 0x0E, - 0x0E, - 0x00, - 0x04, - 0x03, - 0x04, - 0x0E, - 0x00, - 0x04, - 0x0D, - 0xFB, - 0x10, - 0x0D, - 0x05, - 0x10, - 0x00, - 0x10, - 0x04, - 0x10, - 0x10, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0B, - 0x04, - 0xF8, - 0x04, - 0x0B, - 0x0B, - 0x04, - 0x0B, - 0x0B, - 0x04, - 0x04, - 0x00, - 0x03, - 0x10, - 0x10, - 0x10, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x0B, - 0x11, - 0x11, - 0x11, - 0x13, - 0x13, - 0xF6, - 0x12, - 0xFC, - 0x02, - 0x02, - 0xEF, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x19, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0x00, - 0xF7, - 0xF7, - 0xCE, - 0xD4, - 0xF0, - 0xA4, - 0xE3, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x0C, - 0x52, - 0x52, - 0xB1, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x05, - 0x9B, - 0x00, - 0x0B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x03, - 0x8E, - 0x9B, - 0x8E, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x0B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0x9B, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x52, - 0x86, - 0x52, - 0x86, - 0x86, - 0x00, - 0x04, - 0x52, - 0x00, - 0x0D, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x00, - 0x05, - 0x52, - 0x00, - 0x2F, - 0x86, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x35, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x35, - 0xA4, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x86, - 0x52, - 0x35, - 0xA4, - 0x35, - 0xA4, - 0x52, - 0x86, - 0xA4, - 0x86, - 0x35, - 0x52, - 0x35, - 0x52, - 0x86, - 0x86, - 0x00, - 0x06, - 0x52, - 0x00, - 0x17, - 0x35, - 0x35, - 0x35, - 0x52, - 0x49, - 0x52, - 0x35, - 0x52, - 0x35, - 0x35, - 0x52, - 0x49, - 0x49, - 0x52, - 0x35, - 0x79, - 0x79, - 0x49, - 0x35, - 0x35, - 0x49, - 0x52, - 0x79, - 0x00, - 0x07, - 0x49, - 0x00, - 0x10, - 0x5D, - 0x49, - 0x49, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x5D, - 0x49, - 0x0B, - 0x5D, - 0x00, - 0x21, - 0x9C, - 0x5D, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x9C, - 0x49, - 0x5D, - 0x52, - 0x6C, - 0x74, - 0xBA, - 0xD6, - 0xE1, - 0xED, - 0xDB, - 0xF3, - 0xE8, - 0xEB, - 0xEB, - 0xF8, - 0xF3, - 0x10, - 0xFB, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0x00, - 0x04, - 0x03, - 0x00, - 0x08, - 0x0E, - 0x03, - 0x0E, - 0x0E, - 0x10, - 0x0D, - 0x10, - 0x0D, - 0x04, - 0x10, - 0x00, - 0x09, - 0x04, - 0x10, - 0x04, - 0x10, - 0x10, - 0x04, - 0x10, - 0x0B, - 0x04, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x2F, - 0x0C, - 0x0B, - 0x0B, - 0xF8, - 0x0B, - 0x0B, - 0x0B, - 0xF8, - 0x04, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x0D, - 0x11, - 0x0D, - 0x0E, - 0x13, - 0x13, - 0x11, - 0x12, - 0x13, - 0x12, - 0xEF, - 0x02, - 0x02, - 0x02, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0x00, - 0xF1, - 0x00, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x0D, - 0xF1, - 0xF1, - 0xA4, - 0xF1, - 0xA4, - 0xB2, - 0xB2, - 0xA4, - 0x52, - 0xB2, - 0xB2, - 0xB2, - 0x7E, - 0x00, - 0x05, - 0x9B, - 0x01, - 0x8E, - 0x07, - 0x9B, - 0x01, - 0x8E, - 0x04, - 0x9B, - 0x01, - 0x8E, - 0x01, - 0xB1, - 0x07, - 0x9B, - 0x00, - 0x14, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0xB1, - 0xC5, - 0x8E, - 0xC5, - 0x9B, - 0x8E, - 0x8E, - 0xC5, - 0xC5, - 0x8E, - 0xC5, - 0x8E, - 0xAC, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x46, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x52, - 0xA4, - 0x52, - 0x52, - 0x35, - 0x86, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x52, - 0xA4, - 0x52, - 0x86, - 0x52, - 0x86, - 0x52, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0x35, - 0x52, - 0x86, - 0x52, - 0xA4, - 0x52, - 0x52, - 0xA4, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x35, - 0x52, - 0x86, - 0x52, - 0x35, - 0x86, - 0x05, - 0x52, - 0x00, - 0x1A, - 0x86, - 0x35, - 0x52, - 0x52, - 0xA4, - 0x52, - 0x35, - 0x35, - 0x52, - 0x35, - 0xA4, - 0x52, - 0x35, - 0x52, - 0x35, - 0x52, - 0x52, - 0x52, - 0x49, - 0x35, - 0x35, - 0x52, - 0x49, - 0x35, - 0x52, - 0x86, - 0x04, - 0x35, - 0x00, - 0x0A, - 0x49, - 0x79, - 0x35, - 0x49, - 0x52, - 0x49, - 0x35, - 0x79, - 0x49, - 0x35, - 0x05, - 0x49, - 0x00, - 0x1A, - 0x5D, - 0x49, - 0x49, - 0x5D, - 0x49, - 0xB9, - 0x5D, - 0x49, - 0x9C, - 0x5D, - 0x49, - 0x5D, - 0x5D, - 0x49, - 0x5D, - 0x6B, - 0x49, - 0x5D, - 0x49, - 0x9C, - 0x5D, - 0x5D, - 0x5D, - 0x6B, - 0x9C, - 0x9C, - 0x04, - 0x5D, - 0x00, - 0x1E, - 0x9C, - 0x9C, - 0x5D, - 0x5D, - 0x82, - 0x35, - 0x5D, - 0x5D, - 0x49, - 0x94, - 0x5D, - 0x8A, - 0x3B, - 0xBA, - 0xE6, - 0xD6, - 0xDB, - 0xED, - 0xE8, - 0xE8, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0xFB, - 0xFB, - 0x0D, - 0x0E, - 0x0E, - 0xED, - 0x05, - 0x03, - 0x00, - 0x05, - 0x0E, - 0xFB, - 0xFB, - 0x10, - 0x0D, - 0x00, - 0x05, - 0x10, - 0x00, - 0x13, - 0x04, - 0x10, - 0x04, - 0x10, - 0x04, - 0x10, - 0x04, - 0x10, - 0x0B, - 0x04, - 0x04, - 0x0B, - 0x0B, - 0x0B, - 0x0C, - 0x0B, - 0x0C, - 0x0B, - 0x0C, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x07, - 0x04, - 0x0B, - 0x04, - 0x10, - 0x10, - 0x10, - 0x0D, - 0x00, - 0x04, - 0x11, - 0x00, - 0x1A, - 0x13, - 0x13, - 0x12, - 0xFC, - 0x12, - 0xEF, - 0xEF, - 0x02, - 0xF5, - 0x02, - 0xF5, - 0xF5, - 0xF0, - 0x01, - 0xF1, - 0x00, - 0xF1, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF7, - 0xF4, - 0x05, - 0xF7, - 0x00, - 0x3C, - 0x00, - 0xD4, - 0xF1, - 0xD4, - 0xF1, - 0xB2, - 0xD4, - 0xA4, - 0xB2, - 0xB2, - 0x7E, - 0xB1, - 0x9B, - 0x9B, - 0x7E, - 0x8E, - 0x8E, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0xB1, - 0x9B, - 0x8E, - 0x9B, - 0xB1, - 0x8E, - 0x9B, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0x9B, - 0x8E, - 0x9B, - 0xC5, - 0x8E, - 0x9B, - 0xC5, - 0x8E, - 0x9B, - 0x8E, - 0xC5, - 0x9B, - 0x8E, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x04, - 0x01, - 0x3A, - 0x23, - 0x01, - 0x00, - 0x00, - 0x06, - 0xDF, - 0xDF, - 0xFA, - 0xE0, - 0xE0, - 0xDF, - 0x06, - 0xE0, - 0x04, - 0xE2, - 0x00, - 0x09, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xE2, - 0x00, - 0x05, - 0xEF, - 0x00, - 0x05, - 0xE9, - 0xF6, - 0xED, - 0xE9, - 0xED, - 0x00, - 0x04, - 0xE9, - 0x00, - 0x0D, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0x00, - 0x09, - 0xEA, - 0x00, - 0x23, - 0xE7, - 0xEA, - 0xC9, - 0xE7, - 0xC9, - 0xEA, - 0xF3, - 0xC9, - 0xEA, - 0xC9, - 0xDD, - 0xDB, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xC9, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xC9, - 0xDC, - 0xDE, - 0xDE, - 0xD6, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xDC, - 0x00, - 0x06, - 0xE6, - 0x00, - 0x1A, - 0xE9, - 0xE6, - 0xE6, - 0xE1, - 0xE9, - 0xE6, - 0xEF, - 0xE2, - 0xE9, - 0xEF, - 0xE6, - 0xE2, - 0xE9, - 0xEF, - 0xEF, - 0xF5, - 0xBD, - 0x59, - 0x37, - 0x53, - 0x73, - 0xB4, - 0xB4, - 0xB4, - 0xB7, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x2C, - 0xA4, - 0xAD, - 0x9D, - 0x9E, - 0xA4, - 0xA0, - 0xAB, - 0xAD, - 0xAB, - 0xAB, - 0xB7, - 0xB7, - 0x9D, - 0x7C, - 0xAB, - 0xB7, - 0x90, - 0x9D, - 0xA4, - 0x8B, - 0x7C, - 0x90, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xB7, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0xA4, - 0x9D, - 0x9D, - 0x93, - 0x9D, - 0x07, - 0x90, - 0x00, - 0x09, - 0x8B, - 0x90, - 0x8B, - 0x88, - 0x85, - 0x91, - 0x7E, - 0x7E, - 0x92, - 0x00, - 0x04, - 0x87, - 0x00, - 0x06, - 0x91, - 0x77, - 0x87, - 0x7E, - 0x9E, - 0x7C, - 0x04, - 0x5E, - 0x00, - 0x05, - 0x6E, - 0x7A, - 0x81, - 0x37, - 0x5A, - 0x00, - 0x04, - 0x17, - 0x00, - 0x1F, - 0x27, - 0x2B, - 0x1D, - 0x17, - 0x2B, - 0x53, - 0x27, - 0x20, - 0x25, - 0x25, - 0x34, - 0x17, - 0x2B, - 0x17, - 0x1D, - 0x1D, - 0x17, - 0x27, - 0x66, - 0x45, - 0x2C, - 0x5F, - 0x63, - 0x45, - 0x42, - 0x42, - 0x38, - 0x38, - 0x38, - 0x42, - 0x42, - 0x00, - 0x05, - 0x38, - 0x00, - 0x44, - 0x20, - 0x38, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x38, - 0x38, - 0x53, - 0x3B, - 0x38, - 0x45, - 0x45, - 0x38, - 0x30, - 0x0C, - 0x20, - 0x20, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x38, - 0x38, - 0x0C, - 0x27, - 0x37, - 0x1D, - 0x17, - 0x20, - 0x27, - 0x1A, - 0x1A, - 0x20, - 0x38, - 0x3B, - 0x2C, - 0x30, - 0x1A, - 0x21, - 0x20, - 0x0C, - 0x0C, - 0x0C, - 0x20, - 0x27, - 0x38, - 0x1A, - 0x13, - 0x42, - 0x27, - 0x20, - 0x2E, - 0x20, - 0x20, - 0x20, - 0x13, - 0x0C, - 0x1A, - 0x27, - 0x27, - 0x2C, - 0x27, - 0x27, - 0x27, - 0x2C, - 0x08, - 0x08, - 0x00, - 0x00, - 0x00, - 0x24, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xF7, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xFD, - 0xE2, - 0xF9, - 0xF6, - 0xE0, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xF6, - 0xEF, - 0xF6, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xF6, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xED, - 0x05, - 0xE9, - 0x00, - 0x0A, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0x0A, - 0xEA, - 0x00, - 0x24, - 0xC9, - 0xEA, - 0xEA, - 0xEA, - 0xC9, - 0xEA, - 0xC9, - 0xC9, - 0xDA, - 0xE5, - 0xEA, - 0xC9, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDC, - 0xDD, - 0xC9, - 0xDC, - 0xDE, - 0xDE, - 0xDE, - 0xD7, - 0xDE, - 0xDE, - 0xDC, - 0xC9, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0xC9, - 0xDE, - 0x04, - 0xE6, - 0x00, - 0x17, - 0xD6, - 0xE2, - 0xE6, - 0xE6, - 0xE9, - 0xE6, - 0xEF, - 0xE2, - 0xC9, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xE2, - 0xE6, - 0xEF, - 0xFB, - 0xBE, - 0x81, - 0x43, - 0x43, - 0xCA, - 0xB4, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x22, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0x9E, - 0x91, - 0x9E, - 0xAB, - 0xB4, - 0xAB, - 0x9E, - 0xB4, - 0xB7, - 0xA4, - 0x85, - 0x93, - 0xAD, - 0xAD, - 0x90, - 0xAD, - 0xA4, - 0x8B, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0x03, - 0x9D, - 0xAD, - 0xA4, - 0x00, - 0x06, - 0x9D, - 0x01, - 0x90, - 0x01, - 0x9D, - 0x04, - 0x90, - 0x00, - 0x09, - 0x8B, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x85, - 0x93, - 0x88, - 0x00, - 0x04, - 0x87, - 0x00, - 0x6D, - 0x77, - 0x87, - 0x88, - 0x91, - 0x7E, - 0x88, - 0x75, - 0x9E, - 0x6E, - 0x51, - 0x68, - 0x61, - 0x5E, - 0x6A, - 0x75, - 0x66, - 0x37, - 0x43, - 0x31, - 0x17, - 0x17, - 0x17, - 0x34, - 0x1D, - 0x1D, - 0x1D, - 0x2B, - 0x43, - 0x2E, - 0x2B, - 0x25, - 0x1D, - 0x2B, - 0x1D, - 0x1D, - 0x27, - 0x17, - 0x1D, - 0x17, - 0x2C, - 0x45, - 0x5F, - 0x45, - 0x5F, - 0x5F, - 0x54, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x42, - 0x38, - 0x38, - 0x38, - 0x42, - 0x45, - 0x42, - 0x20, - 0x45, - 0x2C, - 0x45, - 0x27, - 0x45, - 0x27, - 0x45, - 0x2C, - 0x45, - 0x45, - 0x45, - 0x3B, - 0x27, - 0x3A, - 0x0C, - 0x2C, - 0x1A, - 0x27, - 0x20, - 0x20, - 0x27, - 0x38, - 0x38, - 0x42, - 0x17, - 0x1D, - 0x2B, - 0x1A, - 0x3B, - 0x1D, - 0x20, - 0x0C, - 0x20, - 0x2B, - 0x2C, - 0x2C, - 0x2C, - 0x30, - 0x1A, - 0x1A, - 0x13, - 0x0C, - 0x27, - 0x1A, - 0x27, - 0x20, - 0x38, - 0x08, - 0x27, - 0x27, - 0x00, - 0x05, - 0x20, - 0x00, - 0x06, - 0x0C, - 0x3B, - 0x1D, - 0x27, - 0x27, - 0x20, - 0x04, - 0x27, - 0x01, - 0x08, - 0x01, - 0x07, - 0x00, - 0x00, - 0x00, - 0x19, - 0xFA, - 0xDF, - 0xFA, - 0xDF, - 0xDF, - 0xE0, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xF6, - 0xE0, - 0xE0, - 0xF6, - 0xE0, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xE2, - 0x00, - 0x08, - 0xEF, - 0x00, - 0x14, - 0xE9, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0x0D, - 0xEA, - 0x00, - 0x06, - 0xC9, - 0xEA, - 0xEA, - 0xDD, - 0xEA, - 0xDA, - 0x04, - 0xDD, - 0x00, - 0x30, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDC, - 0xDE, - 0xDE, - 0xDE, - 0xD6, - 0xDE, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xE1, - 0xEF, - 0xCA, - 0xC9, - 0xE6, - 0xE6, - 0xE6, - 0xC9, - 0xE1, - 0xE9, - 0xE9, - 0xD6, - 0xE6, - 0xE9, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xE9, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xD0, - 0x7B, - 0x5A, - 0x43, - 0x62, - 0xB4, - 0x04, - 0xB7, - 0x06, - 0xAD, - 0x00, - 0x18, - 0x9D, - 0xA4, - 0xA0, - 0x92, - 0x91, - 0xA0, - 0xA0, - 0xAB, - 0xA0, - 0xAB, - 0xB7, - 0xB7, - 0x9E, - 0x8B, - 0xAD, - 0xB7, - 0x90, - 0x9D, - 0xAD, - 0x8B, - 0x8B, - 0xA4, - 0x90, - 0xA4, - 0x04, - 0xAD, - 0x00, - 0x07, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0x00, - 0x06, - 0x9D, - 0x00, - 0x05, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x00, - 0x07, - 0x90, - 0x00, - 0x29, - 0x85, - 0x93, - 0x88, - 0x91, - 0x88, - 0x88, - 0x77, - 0x72, - 0x91, - 0x93, - 0x88, - 0x75, - 0x7E, - 0x7C, - 0xA4, - 0x7C, - 0x51, - 0x61, - 0x61, - 0x68, - 0x68, - 0x7A, - 0x66, - 0x43, - 0x5A, - 0x31, - 0x17, - 0x17, - 0x17, - 0x2C, - 0x1D, - 0x1D, - 0x1D, - 0x2B, - 0x48, - 0x37, - 0x25, - 0x25, - 0x1D, - 0x1D, - 0x2C, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x30, - 0x17, - 0x1D, - 0x5F, - 0x5F, - 0x53, - 0x5F, - 0x5F, - 0x54, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x38, - 0x38, - 0x27, - 0x45, - 0x3B, - 0x2C, - 0x38, - 0x27, - 0x42, - 0x2C, - 0x38, - 0x54, - 0x53, - 0x3B, - 0x42, - 0x20, - 0x3B, - 0x0C, - 0x1A, - 0x20, - 0x27, - 0x20, - 0x27, - 0x38, - 0x38, - 0x08, - 0x25, - 0x2C, - 0x04, - 0x27, - 0x00, - 0x24, - 0x20, - 0x08, - 0x2B, - 0x2C, - 0x3B, - 0x3A, - 0x3B, - 0x20, - 0x0C, - 0x13, - 0x08, - 0x45, - 0x1D, - 0x3B, - 0x38, - 0x38, - 0x08, - 0x30, - 0x30, - 0x20, - 0x20, - 0x23, - 0x20, - 0x1A, - 0x27, - 0x2C, - 0x27, - 0x27, - 0x20, - 0x27, - 0x27, - 0x27, - 0x38, - 0x27, - 0x08, - 0x08, - 0x00, - 0x00, - 0x00, - 0x08, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xFE, - 0x04, - 0xE0, - 0x01, - 0xE2, - 0x01, - 0xE0, - 0x05, - 0xE2, - 0x00, - 0x08, - 0xEF, - 0xF6, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0x06, - 0xEF, - 0x00, - 0x04, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0x04, - 0xE9, - 0x06, - 0xEB, - 0x05, - 0xEE, - 0x01, - 0xEA, - 0x01, - 0xEE, - 0x08, - 0xEA, - 0x00, - 0x23, - 0xE7, - 0xC9, - 0xEA, - 0xC9, - 0xF3, - 0xEA, - 0xDA, - 0xC9, - 0xE5, - 0xC9, - 0xDD, - 0xDD, - 0xC9, - 0xDB, - 0xDE, - 0xDD, - 0xDD, - 0xC9, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDE, - 0xC9, - 0xC9, - 0xDC, - 0xE6, - 0xC9, - 0xDC, - 0xC9, - 0xD6, - 0xDE, - 0xE6, - 0xDE, - 0xC9, - 0x00, - 0x08, - 0xE6, - 0x00, - 0x12, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xEF, - 0xE2, - 0xE0, - 0xA3, - 0x59, - 0x43, - 0x6C, - 0x05, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x1F, - 0xA4, - 0x9D, - 0xA4, - 0xA0, - 0xA0, - 0x88, - 0x93, - 0xA0, - 0xAB, - 0xAB, - 0x92, - 0xAD, - 0xB7, - 0xA4, - 0x93, - 0x93, - 0xB7, - 0xA4, - 0x90, - 0xAD, - 0x8B, - 0x90, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x06, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0x04, - 0x9D, - 0x00, - 0x32, - 0x90, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9E, - 0x9D, - 0x93, - 0x85, - 0x9E, - 0x7C, - 0x92, - 0x91, - 0x87, - 0x77, - 0x87, - 0x91, - 0x88, - 0x85, - 0x88, - 0x7E, - 0x88, - 0xA4, - 0x7E, - 0x51, - 0x72, - 0x68, - 0x68, - 0x68, - 0x7C, - 0x6B, - 0x31, - 0x43, - 0x2B, - 0x21, - 0x17, - 0x17, - 0x34, - 0x2B, - 0x1D, - 0x17, - 0x1D, - 0x50, - 0x34, - 0x25, - 0x25, - 0x25, - 0x2B, - 0x2B, - 0x04, - 0x1D, - 0x00, - 0x58, - 0x17, - 0x17, - 0x53, - 0x5F, - 0x5F, - 0x5F, - 0x58, - 0x58, - 0x42, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x42, - 0x27, - 0x38, - 0x27, - 0x27, - 0x27, - 0x45, - 0x20, - 0x3A, - 0x27, - 0x45, - 0x2C, - 0x3B, - 0x38, - 0x3B, - 0x3B, - 0x27, - 0x30, - 0x1A, - 0x20, - 0x27, - 0x2E, - 0x38, - 0x27, - 0x38, - 0x38, - 0x1D, - 0x2C, - 0x2C, - 0x2C, - 0x38, - 0x27, - 0x27, - 0x20, - 0x20, - 0x2B, - 0x25, - 0x2C, - 0x3A, - 0x2C, - 0x27, - 0x1A, - 0x08, - 0x45, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x13, - 0x20, - 0x27, - 0x20, - 0x27, - 0x20, - 0x20, - 0x20, - 0x27, - 0x3B, - 0x27, - 0x27, - 0x38, - 0x27, - 0x27, - 0x38, - 0x27, - 0x38, - 0x07, - 0x08, - 0x00, - 0x00, - 0x00, - 0x25, - 0xD8, - 0xDF, - 0xFA, - 0xE0, - 0xE0, - 0xFA, - 0xE0, - 0xE0, - 0xE0, - 0xF9, - 0xE0, - 0xE0, - 0xF6, - 0xE0, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xF6, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0xE1, - 0xEF, - 0xEF, - 0xEF, - 0xED, - 0xE9, - 0xEF, - 0xE9, - 0xED, - 0x00, - 0x05, - 0xE9, - 0x05, - 0xEB, - 0x06, - 0xEE, - 0x01, - 0xEA, - 0x01, - 0xEE, - 0x0B, - 0xEA, - 0x00, - 0x14, - 0xC9, - 0xEA, - 0xEA, - 0xEA, - 0xDA, - 0xEA, - 0xDD, - 0xDA, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDC, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDC, - 0xC9, - 0x06, - 0xDE, - 0x00, - 0x04, - 0xD6, - 0xC9, - 0xE6, - 0xDE, - 0x07, - 0xE6, - 0x00, - 0xD9, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xE6, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xF9, - 0xA9, - 0x5A, - 0x53, - 0x4E, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9D, - 0xB7, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0x9E, - 0xA0, - 0x88, - 0x93, - 0xA0, - 0xA0, - 0x9E, - 0x92, - 0xAD, - 0xA4, - 0xAD, - 0x9E, - 0x85, - 0xAD, - 0xB7, - 0x9D, - 0xAD, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x9E, - 0x93, - 0x8B, - 0x9D, - 0x7E, - 0x88, - 0x88, - 0x87, - 0x92, - 0x88, - 0x88, - 0x93, - 0x85, - 0x8B, - 0x6A, - 0x93, - 0xAD, - 0x6A, - 0x51, - 0x72, - 0x68, - 0x6A, - 0x68, - 0x7C, - 0x66, - 0x37, - 0x43, - 0x31, - 0x17, - 0x17, - 0x17, - 0x3B, - 0x1D, - 0x2B, - 0x17, - 0x1D, - 0x47, - 0x2E, - 0x1D, - 0x25, - 0x2B, - 0x2B, - 0x1D, - 0x27, - 0x1D, - 0x1D, - 0x17, - 0x1D, - 0x1D, - 0x45, - 0x5F, - 0x45, - 0x5F, - 0x6B, - 0x58, - 0x58, - 0x42, - 0x44, - 0x42, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x42, - 0x45, - 0x42, - 0x45, - 0x0C, - 0x3B, - 0x27, - 0x38, - 0x27, - 0x45, - 0x27, - 0x27, - 0x38, - 0x2C, - 0x3B, - 0x53, - 0x3B, - 0x2C, - 0x45, - 0x27, - 0x47, - 0x0C, - 0x20, - 0x20, - 0x20, - 0x1D, - 0x20, - 0x27, - 0x38, - 0x1D, - 0x1D, - 0x27, - 0x2C, - 0x38, - 0x30, - 0x3A, - 0x1D, - 0x20, - 0x27, - 0x34, - 0x3A, - 0x3B, - 0x2C, - 0x20, - 0x27, - 0x08, - 0x5F, - 0x20, - 0x20, - 0x42, - 0x38, - 0x44, - 0x18, - 0x38, - 0x20, - 0x20, - 0x30, - 0x1A, - 0x20, - 0x27, - 0x27, - 0x27, - 0x20, - 0x38, - 0x27, - 0x20, - 0x38, - 0x27, - 0x38, - 0x04, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDF, - 0x00, - 0x04, - 0xE0, - 0xF7, - 0xE0, - 0xDF, - 0x05, - 0xE0, - 0x01, - 0xF6, - 0x0C, - 0xE2, - 0x07, - 0xEF, - 0x00, - 0x0A, - 0xE9, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0x05, - 0xEB, - 0x04, - 0xEE, - 0x0D, - 0xEA, - 0x00, - 0x08, - 0xF3, - 0xC9, - 0xEA, - 0xDA, - 0xC9, - 0xDD, - 0xDD, - 0xC9, - 0x08, - 0xDD, - 0x00, - 0x03, - 0xDE, - 0xDD, - 0xDD, - 0x00, - 0x07, - 0xDE, - 0x00, - 0x08, - 0xDD, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0x04, - 0xE6, - 0x00, - 0x06, - 0xE9, - 0xE6, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0x05, - 0xE9, - 0x00, - 0x09, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xBE, - 0x7B, - 0x54, - 0x43, - 0xAD, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x24, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0x9E, - 0xAB, - 0x85, - 0x92, - 0x92, - 0x93, - 0xA0, - 0xAB, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x85, - 0x9E, - 0xAD, - 0xA4, - 0x9D, - 0xB7, - 0x90, - 0xAD, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x07, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x37, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x9D, - 0x9E, - 0x85, - 0x9E, - 0x88, - 0x92, - 0x92, - 0x87, - 0x87, - 0x92, - 0x88, - 0x93, - 0x93, - 0x85, - 0x61, - 0x88, - 0x9D, - 0x6E, - 0x61, - 0x6A, - 0x68, - 0x72, - 0x68, - 0x7C, - 0x81, - 0x37, - 0x5A, - 0x2B, - 0x17, - 0x17, - 0x17, - 0x43, - 0x25, - 0x1D, - 0x1D, - 0x17, - 0x43, - 0x25, - 0x2E, - 0x1A, - 0x0C, - 0x20, - 0x17, - 0x1D, - 0x17, - 0x1D, - 0x17, - 0x17, - 0x17, - 0x5F, - 0x45, - 0x00, - 0x04, - 0x5F, - 0x00, - 0x50, - 0x54, - 0x42, - 0x42, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x45, - 0x45, - 0x27, - 0x45, - 0x27, - 0x45, - 0x27, - 0x38, - 0x38, - 0x27, - 0x45, - 0x27, - 0x47, - 0x2B, - 0x3B, - 0x37, - 0x3B, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x1D, - 0x20, - 0x20, - 0x38, - 0x38, - 0x3B, - 0x27, - 0x27, - 0x20, - 0x2C, - 0x3B, - 0x38, - 0x30, - 0x25, - 0x34, - 0x34, - 0x34, - 0x3A, - 0x34, - 0x37, - 0x20, - 0x1D, - 0x18, - 0x5F, - 0x42, - 0x20, - 0x38, - 0x38, - 0x20, - 0x20, - 0x38, - 0x27, - 0x20, - 0x20, - 0x38, - 0x20, - 0x20, - 0x38, - 0x38, - 0x27, - 0x38, - 0x38, - 0x27, - 0x27, - 0x27, - 0x38, - 0x07, - 0x0C, - 0x00, - 0x00, - 0x01, - 0xFA, - 0x04, - 0xDF, - 0x00, - 0x03, - 0xE0, - 0xE0, - 0xDF, - 0x00, - 0x07, - 0xE0, - 0x08, - 0xE2, - 0x00, - 0x05, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0x00, - 0x07, - 0xEF, - 0x00, - 0x0C, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0x06, - 0xEE, - 0x00, - 0x03, - 0xEA, - 0xEE, - 0xEE, - 0x00, - 0x0B, - 0xEA, - 0x00, - 0x08, - 0xC9, - 0xDA, - 0xC9, - 0xDA, - 0xC9, - 0xEA, - 0xDD, - 0xEB, - 0x0A, - 0xDD, - 0x04, - 0xDE, - 0x01, - 0xC9, - 0x07, - 0xDE, - 0x00, - 0x08, - 0xE6, - 0xDE, - 0xE6, - 0xE1, - 0xDE, - 0xE6, - 0xE6, - 0xE6, - 0x08, - 0xE9, - 0x00, - 0x2A, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xE2, - 0xD8, - 0x7B, - 0x50, - 0x37, - 0x88, - 0xB7, - 0xB4, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0x93, - 0x91, - 0x88, - 0x92, - 0xA0, - 0x9E, - 0xAD, - 0xAD, - 0x9D, - 0xAD, - 0x90, - 0x9E, - 0xA4, - 0xAD, - 0xA4, - 0xB7, - 0x90, - 0x04, - 0x9D, - 0x00, - 0x04, - 0xAD, - 0xAD, - 0xAD, - 0xAB, - 0x04, - 0xAD, - 0x00, - 0x3D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0xA4, - 0x9D, - 0x93, - 0x93, - 0x93, - 0x88, - 0x91, - 0x92, - 0x88, - 0x87, - 0x92, - 0x93, - 0x93, - 0x85, - 0x8B, - 0x77, - 0x7C, - 0xAD, - 0x6A, - 0x5E, - 0x72, - 0x61, - 0x72, - 0x77, - 0x61, - 0x7B, - 0x43, - 0x43, - 0x21, - 0x17, - 0x37, - 0x17, - 0x3A, - 0x1D, - 0x17, - 0x18, - 0x17, - 0x53, - 0x47, - 0x47, - 0x2C, - 0x45, - 0x0C, - 0x17, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x13, - 0x17, - 0x17, - 0x27, - 0x66, - 0x45, - 0x45, - 0x6B, - 0x58, - 0x58, - 0x54, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x42, - 0x38, - 0x38, - 0x42, - 0x00, - 0x04, - 0x45, - 0x00, - 0x41, - 0x27, - 0x42, - 0x38, - 0x27, - 0x3B, - 0x27, - 0x27, - 0x30, - 0x27, - 0x45, - 0x3B, - 0x1D, - 0x2C, - 0x45, - 0x27, - 0x27, - 0x0C, - 0x1A, - 0x20, - 0x1D, - 0x20, - 0x27, - 0x45, - 0x27, - 0x27, - 0x25, - 0x2C, - 0x3B, - 0x42, - 0x34, - 0x3A, - 0x1A, - 0x34, - 0x3A, - 0x3F, - 0x34, - 0x30, - 0x27, - 0x30, - 0x3F, - 0x3A, - 0x58, - 0x20, - 0x30, - 0x38, - 0x27, - 0x45, - 0x27, - 0x27, - 0x27, - 0x20, - 0x38, - 0x20, - 0x0C, - 0x27, - 0x27, - 0x38, - 0x38, - 0x38, - 0x20, - 0x27, - 0x27, - 0x38, - 0x02, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0xDF, - 0xD8, - 0xFA, - 0xE0, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xF9, - 0xE0, - 0xDF, - 0xE0, - 0xF6, - 0xE0, - 0xF6, - 0xE0, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xF6, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x17, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xEE, - 0xE9, - 0xEE, - 0xEB, - 0x00, - 0x06, - 0xEE, - 0x00, - 0x04, - 0xEA, - 0xEA, - 0xEA, - 0xEE, - 0x06, - 0xEA, - 0x00, - 0x1A, - 0xC9, - 0xF3, - 0xEA, - 0xEA, - 0xDA, - 0xEA, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xC9, - 0xDD, - 0xEA, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xC9, - 0xE6, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDC, - 0x05, - 0xDE, - 0x00, - 0x0A, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xE6, - 0xC9, - 0xE6, - 0xE6, - 0xE9, - 0xE6, - 0x0A, - 0xE9, - 0x00, - 0x3A, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xE0, - 0x7B, - 0x63, - 0x31, - 0x73, - 0xB4, - 0xB4, - 0xAD, - 0xB7, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0x9D, - 0xAD, - 0x9D, - 0x9E, - 0x9E, - 0x93, - 0xA0, - 0x88, - 0xA0, - 0xAB, - 0xA4, - 0xB7, - 0x90, - 0xAD, - 0x9E, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0x93, - 0xB7, - 0xAB, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x04, - 0xA4, - 0x01, - 0x9D, - 0x01, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0x88, - 0x90, - 0x9D, - 0x9E, - 0x93, - 0x91, - 0x91, - 0x92, - 0x87, - 0x7E, - 0x92, - 0x91, - 0x91, - 0x93, - 0x85, - 0x9E, - 0x7E, - 0x7E, - 0x9E, - 0x77, - 0x72, - 0x72, - 0x68, - 0x68, - 0x7E, - 0x7C, - 0x5A, - 0x37, - 0x43, - 0x17, - 0x31, - 0x17, - 0x17, - 0x30, - 0x47, - 0x2C, - 0x25, - 0x08, - 0x5F, - 0x45, - 0x45, - 0x2C, - 0x3B, - 0x38, - 0x0C, - 0x1D, - 0x1D, - 0x17, - 0x1D, - 0x17, - 0x17, - 0x17, - 0x45, - 0x45, - 0x58, - 0x5F, - 0x5F, - 0x58, - 0x45, - 0x42, - 0x42, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x38, - 0x45, - 0x45, - 0x1A, - 0x27, - 0x45, - 0x27, - 0x27, - 0x3B, - 0x20, - 0x27, - 0x3B, - 0x25, - 0x37, - 0x27, - 0x5A, - 0x3B, - 0x38, - 0x3B, - 0x1A, - 0x20, - 0x20, - 0x1A, - 0x20, - 0x1A, - 0x27, - 0x38, - 0x2C, - 0x27, - 0x25, - 0x2B, - 0x30, - 0x38, - 0x30, - 0x3A, - 0x34, - 0x3F, - 0x43, - 0x34, - 0x2B, - 0x25, - 0x1A, - 0x38, - 0x30, - 0x50, - 0x54, - 0x20, - 0x38, - 0x23, - 0x38, - 0x42, - 0x38, - 0x38, - 0x27, - 0x38, - 0x45, - 0x20, - 0x08, - 0x38, - 0x38, - 0x38, - 0x20, - 0x30, - 0x38, - 0x20, - 0x38, - 0x38, - 0x02, - 0x27, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xE0, - 0xF7, - 0xDF, - 0x04, - 0xE0, - 0x00, - 0x06, - 0xE2, - 0xE2, - 0xE0, - 0xE2, - 0xE2, - 0xE1, - 0x06, - 0xE2, - 0x00, - 0x12, - 0xEF, - 0xE2, - 0xEF, - 0xE1, - 0xEF, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0x04, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x04, - 0xEE, - 0x0B, - 0xEA, - 0x00, - 0x06, - 0xDD, - 0xEA, - 0xDA, - 0xC9, - 0xDA, - 0xEA, - 0x07, - 0xDD, - 0x00, - 0x05, - 0xEA, - 0xDE, - 0xDE, - 0xEA, - 0xC9, - 0x00, - 0x04, - 0xDE, - 0x01, - 0xDD, - 0x04, - 0xDE, - 0x00, - 0x0E, - 0xDD, - 0xDE, - 0xED, - 0xC9, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0xE6, - 0xE6, - 0xE9, - 0xE6, - 0xE6, - 0x08, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0xCA, - 0xE2, - 0xE0, - 0x84, - 0x65, - 0x17, - 0x8F, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xB7, - 0x9D, - 0xAD, - 0xA4, - 0x9E, - 0x9D, - 0xA0, - 0x93, - 0x88, - 0x93, - 0x9E, - 0xAB, - 0xAD, - 0x90, - 0xAD, - 0xA4, - 0x93, - 0x9E, - 0x90, - 0x9D, - 0xA4, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x91, - 0x93, - 0x92, - 0xA0, - 0xA0, - 0xAB, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0x93, - 0x90, - 0x93, - 0x9D, - 0x9D, - 0x90, - 0x9E, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x90, - 0x9D, - 0x93, - 0x90, - 0xA4, - 0x9E, - 0x93, - 0x91, - 0x91, - 0x92, - 0x92, - 0x91, - 0x91, - 0x91, - 0x8B, - 0x8B, - 0x93, - 0x75, - 0x7E, - 0x7E, - 0x6A, - 0x77, - 0x68, - 0x61, - 0x61, - 0x72, - 0x7C, - 0x65, - 0x31, - 0x43, - 0x21, - 0x1D, - 0x17, - 0x17, - 0x3A, - 0x37, - 0x3B, - 0x47, - 0x08, - 0x45, - 0x45, - 0x5F, - 0x3B, - 0x45, - 0x45, - 0x0C, - 0x0C, - 0x1D, - 0x1D, - 0x1D, - 0x17, - 0x1D, - 0x17, - 0x45, - 0x5F, - 0x45, - 0x58, - 0x5F, - 0x58, - 0x54, - 0x45, - 0x42, - 0x42, - 0x38, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x45, - 0x45, - 0x45, - 0x1A, - 0x38, - 0x3B, - 0x2C, - 0x27, - 0x38, - 0x2C, - 0x25, - 0x3A, - 0x2C, - 0x27, - 0x43, - 0x20, - 0x1D, - 0x2C, - 0x45, - 0x27, - 0x2B, - 0x0C, - 0x23, - 0x25, - 0x20, - 0x45, - 0x3B, - 0x3A, - 0x30, - 0x27, - 0x25, - 0x34, - 0x42, - 0x1A, - 0x3A, - 0x3F, - 0x34, - 0x25, - 0x31, - 0x34, - 0x25, - 0x1A, - 0x34, - 0x38, - 0x0C, - 0x3D, - 0x23, - 0x30, - 0x20, - 0x20, - 0x45, - 0x38, - 0x2C, - 0x20, - 0x27, - 0x3B, - 0x20, - 0x07, - 0x38, - 0x3B, - 0x38, - 0x38, - 0x20, - 0x30, - 0x38, - 0x27, - 0x27, - 0x04, - 0x27, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xFA, - 0xDF, - 0xDF, - 0xDF, - 0xFA, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xF9, - 0x00, - 0x04, - 0xE0, - 0x04, - 0xE2, - 0x01, - 0xE0, - 0x04, - 0xE2, - 0x00, - 0x16, - 0xEF, - 0xE2, - 0xE2, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xEF, - 0xED, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEE, - 0x04, - 0xEB, - 0x06, - 0xEE, - 0x00, - 0x05, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0x00, - 0x07, - 0xEA, - 0x00, - 0x09, - 0xDD, - 0xEA, - 0xDD, - 0xC9, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xEE, - 0x00, - 0x04, - 0xDD, - 0x00, - 0x04, - 0xDE, - 0xE6, - 0xDD, - 0xDD, - 0x04, - 0xDE, - 0x00, - 0x14, - 0xDD, - 0xDE, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xE6, - 0xC9, - 0xEF, - 0xE6, - 0xC9, - 0xE6, - 0xE6, - 0xE6, - 0xE9, - 0xE9, - 0xE6, - 0xE6, - 0x05, - 0xE9, - 0x00, - 0xCE, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xED, - 0xE0, - 0x7A, - 0x45, - 0x31, - 0x73, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0x9D, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9E, - 0x9E, - 0x88, - 0x93, - 0xAB, - 0x9E, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0x90, - 0x9E, - 0x8B, - 0x8B, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x93, - 0x8B, - 0x90, - 0xA0, - 0x91, - 0x87, - 0x87, - 0xA0, - 0x91, - 0xAB, - 0x88, - 0xA4, - 0x9E, - 0x91, - 0x90, - 0x9E, - 0x90, - 0x90, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x90, - 0x90, - 0x93, - 0xA0, - 0x93, - 0xA0, - 0x91, - 0x88, - 0x91, - 0x91, - 0x8B, - 0x93, - 0x85, - 0xA0, - 0x6A, - 0x91, - 0x7C, - 0x72, - 0x72, - 0x6A, - 0x72, - 0x68, - 0x75, - 0x6E, - 0x66, - 0x37, - 0x37, - 0x17, - 0x21, - 0x3F, - 0x3A, - 0x0C, - 0x2C, - 0x3B, - 0x2C, - 0x0C, - 0x37, - 0x3B, - 0x45, - 0x54, - 0x45, - 0x45, - 0x42, - 0x0C, - 0x17, - 0x0C, - 0x27, - 0x17, - 0x27, - 0x1D, - 0x37, - 0x5F, - 0x53, - 0x5F, - 0x6B, - 0x58, - 0x45, - 0x54, - 0x42, - 0x42, - 0x38, - 0x38, - 0x42, - 0x45, - 0x38, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x20, - 0x45, - 0x27, - 0x2C, - 0x27, - 0x2C, - 0x27, - 0x20, - 0x37, - 0x1D, - 0x3B, - 0x2B, - 0x43, - 0x37, - 0x37, - 0x45, - 0x1A, - 0x18, - 0x0C, - 0x18, - 0x1A, - 0x3A, - 0x38, - 0x3B, - 0x3A, - 0x25, - 0x2E, - 0x34, - 0x2C, - 0x3D, - 0x3A, - 0x43, - 0x2E, - 0x25, - 0x2B, - 0x34, - 0x2B, - 0x1A, - 0x38, - 0x20, - 0x23, - 0x3A, - 0x20, - 0x45, - 0x45, - 0x20, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x27, - 0x45, - 0x38, - 0x08, - 0x27, - 0x27, - 0x38, - 0x20, - 0x20, - 0x30, - 0x27, - 0x38, - 0x20, - 0x08, - 0x45, - 0x00, - 0x00, - 0x00, - 0x11, - 0xD8, - 0xDF, - 0xFA, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xF9, - 0xE2, - 0xE0, - 0xE0, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x05, - 0xE0, - 0xEF, - 0xF6, - 0xE2, - 0xE2, - 0x00, - 0x07, - 0xEF, - 0x00, - 0x03, - 0xED, - 0xEF, - 0xED, - 0x00, - 0x05, - 0xE9, - 0x00, - 0x03, - 0xEB, - 0xE9, - 0xEE, - 0x00, - 0x04, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x04, - 0xEE, - 0x00, - 0x05, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0x00, - 0x06, - 0xEA, - 0x00, - 0x1F, - 0xDA, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xDA, - 0xDD, - 0xEA, - 0xEA, - 0xDD, - 0xDD, - 0xEE, - 0xEA, - 0xDD, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xE6, - 0xEA, - 0xDE, - 0xDE, - 0xDE, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xEF, - 0x06, - 0xE6, - 0x01, - 0xE9, - 0x01, - 0xE6, - 0x05, - 0xE9, - 0x00, - 0x0B, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xE2, - 0x8C, - 0x3F, - 0x31, - 0x60, - 0xAD, - 0xB7, - 0x00, - 0x05, - 0xAD, - 0x00, - 0x30, - 0xA4, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9E, - 0x9E, - 0x93, - 0x91, - 0x9E, - 0x90, - 0x8B, - 0x90, - 0x91, - 0x85, - 0x91, - 0xA0, - 0x92, - 0x92, - 0x83, - 0xB4, - 0x7E, - 0xA0, - 0x7E, - 0xA0, - 0xB7, - 0x8B, - 0x93, - 0x85, - 0x93, - 0x93, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x04, - 0xA4, - 0x00, - 0x31, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x93, - 0x93, - 0x91, - 0x91, - 0x85, - 0x91, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x9E, - 0x61, - 0x9E, - 0x75, - 0x77, - 0x6E, - 0x68, - 0x6A, - 0x6A, - 0x87, - 0x6E, - 0x6F, - 0x17, - 0x43, - 0x1D, - 0x37, - 0x1D, - 0x47, - 0x08, - 0x2B, - 0x3B, - 0x3B, - 0x25, - 0x37, - 0x27, - 0x45, - 0x45, - 0x45, - 0x5F, - 0x45, - 0x27, - 0x18, - 0x0C, - 0x1A, - 0x00, - 0x04, - 0x17, - 0x00, - 0x0F, - 0x53, - 0x5F, - 0x45, - 0x5F, - 0x5F, - 0x42, - 0x45, - 0x54, - 0x38, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x00, - 0x04, - 0x45, - 0x00, - 0x41, - 0x17, - 0x45, - 0x3B, - 0x2C, - 0x27, - 0x42, - 0x27, - 0x20, - 0x47, - 0x27, - 0x1D, - 0x37, - 0x2C, - 0x2C, - 0x37, - 0x45, - 0x20, - 0x1A, - 0x08, - 0x1A, - 0x17, - 0x3B, - 0x45, - 0x47, - 0x2B, - 0x30, - 0x2B, - 0x25, - 0x34, - 0x3A, - 0x1A, - 0x48, - 0x25, - 0x25, - 0x2B, - 0x31, - 0x34, - 0x27, - 0x27, - 0x30, - 0x20, - 0x20, - 0x20, - 0x38, - 0x47, - 0x27, - 0x38, - 0x45, - 0x42, - 0x27, - 0x20, - 0x45, - 0x27, - 0x07, - 0x27, - 0x38, - 0x27, - 0x38, - 0x1A, - 0x30, - 0x30, - 0x38, - 0x0C, - 0x0C, - 0x45, - 0x00, - 0x00, - 0x00, - 0x01, - 0xD8, - 0x01, - 0xD8, - 0x06, - 0xDF, - 0x01, - 0xE0, - 0x01, - 0xDF, - 0x06, - 0xE0, - 0x00, - 0x04, - 0xE2, - 0xE2, - 0xE0, - 0xF6, - 0x06, - 0xE2, - 0x00, - 0x1A, - 0xEF, - 0xE2, - 0xE2, - 0xEF, - 0xEF, - 0xEF, - 0xED, - 0xEF, - 0xEF, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0x04, - 0xEE, - 0x00, - 0x09, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0xEE, - 0xEA, - 0xEE, - 0xDD, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x11, - 0xDD, - 0xEA, - 0xDD, - 0xC9, - 0xDA, - 0xDD, - 0xDD, - 0xDD, - 0xC9, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0x05, - 0xDE, - 0x00, - 0x0A, - 0xDD, - 0xC9, - 0xE6, - 0xDE, - 0xEE, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0x08, - 0xE6, - 0x00, - 0x0F, - 0xE9, - 0xE6, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xEF, - 0xE2, - 0x9B, - 0x59, - 0x31, - 0x62, - 0x00, - 0x06, - 0xAD, - 0x00, - 0x3D, - 0xA4, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9E, - 0x9E, - 0x8B, - 0x91, - 0x9E, - 0x9E, - 0x9E, - 0x9D, - 0x9E, - 0x9D, - 0x93, - 0x9E, - 0x8B, - 0x91, - 0x90, - 0x8B, - 0x7C, - 0x93, - 0x93, - 0x85, - 0xA0, - 0x91, - 0x92, - 0x92, - 0x87, - 0xA0, - 0x87, - 0x91, - 0x7C, - 0x9D, - 0xAB, - 0x9E, - 0x9E, - 0x85, - 0x8B, - 0x93, - 0x90, - 0xA4, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x93, - 0x93, - 0xA4, - 0x8B, - 0x00, - 0x05, - 0x93, - 0x00, - 0x7C, - 0x8B, - 0x93, - 0xAB, - 0x6A, - 0x93, - 0x7E, - 0x77, - 0x72, - 0x6E, - 0x68, - 0x6A, - 0x6E, - 0x6D, - 0x66, - 0x17, - 0x43, - 0x2B, - 0x37, - 0x2C, - 0x2B, - 0x0C, - 0x0C, - 0x2C, - 0x3B, - 0x2C, - 0x37, - 0x3A, - 0x47, - 0x53, - 0x42, - 0x45, - 0x5F, - 0x2C, - 0x45, - 0x20, - 0x08, - 0x0C, - 0x17, - 0x17, - 0x17, - 0x45, - 0x45, - 0x58, - 0x58, - 0x63, - 0x58, - 0x42, - 0x54, - 0x42, - 0x42, - 0x42, - 0x38, - 0x38, - 0x45, - 0x45, - 0x38, - 0x38, - 0x45, - 0x5F, - 0x0C, - 0x3B, - 0x38, - 0x27, - 0x27, - 0x3B, - 0x1D, - 0x20, - 0x2C, - 0x25, - 0x1D, - 0x3A, - 0x17, - 0x2B, - 0x37, - 0x37, - 0x47, - 0x1A, - 0x0C, - 0x08, - 0x1A, - 0x30, - 0x42, - 0x2C, - 0x48, - 0x34, - 0x25, - 0x25, - 0x30, - 0x30, - 0x3A, - 0x34, - 0x25, - 0x25, - 0x31, - 0x2B, - 0x25, - 0x30, - 0x38, - 0x2E, - 0x30, - 0x3D, - 0x2C, - 0x42, - 0x27, - 0x42, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x38, - 0x45, - 0x27, - 0x20, - 0x27, - 0x20, - 0x38, - 0x3B, - 0x23, - 0x20, - 0x27, - 0x38, - 0x13, - 0x0C, - 0x45, - 0x00, - 0x00, - 0x00, - 0x09, - 0xFA, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xD8, - 0xFA, - 0xE0, - 0xDF, - 0x00, - 0x06, - 0xE0, - 0x00, - 0x05, - 0xE2, - 0xE0, - 0xE2, - 0xE2, - 0xE0, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x04, - 0xE1, - 0xE2, - 0xEF, - 0xE2, - 0x05, - 0xEF, - 0x00, - 0x0B, - 0xE9, - 0xEF, - 0xEF, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0x00, - 0x05, - 0xEB, - 0x05, - 0xEE, - 0x00, - 0x1B, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0xEA, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0xDD, - 0xEB, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDE, - 0xDD, - 0xE6, - 0xDE, - 0x00, - 0x08, - 0xE6, - 0x00, - 0x13, - 0xE9, - 0xEB, - 0xE6, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xE9, - 0xE2, - 0xEF, - 0xEF, - 0xE0, - 0x8A, - 0x59, - 0x4E, - 0x43, - 0xA4, - 0xA4, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x67, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x90, - 0x9E, - 0x93, - 0x8B, - 0x9E, - 0xA4, - 0x9E, - 0x90, - 0x9E, - 0x8B, - 0x8B, - 0x88, - 0x8B, - 0x93, - 0x85, - 0x8B, - 0x91, - 0x93, - 0x85, - 0x7E, - 0x88, - 0x87, - 0x87, - 0xA0, - 0x87, - 0x91, - 0x88, - 0xA0, - 0xB7, - 0x8B, - 0x9D, - 0x88, - 0x8B, - 0x90, - 0x85, - 0xA4, - 0x9E, - 0x8B, - 0xB7, - 0x9D, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0x9E, - 0x93, - 0xA4, - 0x8B, - 0x9E, - 0x93, - 0x9D, - 0xA4, - 0x90, - 0x8B, - 0x9E, - 0xAD, - 0x61, - 0x91, - 0x85, - 0x87, - 0x6E, - 0x6A, - 0x68, - 0x6E, - 0x77, - 0x61, - 0x5A, - 0x37, - 0x37, - 0x37, - 0x45, - 0x3B, - 0x37, - 0x2C, - 0x04, - 0x3A, - 0x3B, - 0x42, - 0x1D, - 0x47, - 0x58, - 0x45, - 0x2C, - 0x53, - 0x45, - 0x38, - 0x45, - 0x45, - 0x08, - 0x08, - 0x00, - 0x04, - 0x0C, - 0x00, - 0x0E, - 0x3B, - 0x45, - 0x53, - 0x58, - 0x54, - 0x54, - 0x45, - 0x42, - 0x42, - 0x42, - 0x38, - 0x42, - 0x38, - 0x42, - 0x04, - 0x45, - 0x00, - 0x41, - 0x42, - 0x2C, - 0x3B, - 0x27, - 0x27, - 0x42, - 0x27, - 0x27, - 0x1D, - 0x37, - 0x1D, - 0x1D, - 0x30, - 0x3A, - 0x1D, - 0x27, - 0x27, - 0x1A, - 0x1A, - 0x18, - 0x0C, - 0x45, - 0x3B, - 0x50, - 0x30, - 0x34, - 0x34, - 0x25, - 0x25, - 0x2B, - 0x3D, - 0x1A, - 0x34, - 0x37, - 0x34, - 0x31, - 0x34, - 0x1A, - 0x38, - 0x2E, - 0x20, - 0x20, - 0x38, - 0x30, - 0x30, - 0x42, - 0x45, - 0x42, - 0x45, - 0x27, - 0x27, - 0x27, - 0x0C, - 0x27, - 0x3B, - 0x27, - 0x38, - 0x27, - 0x38, - 0x20, - 0x27, - 0x38, - 0x07, - 0x27, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xD8, - 0xD8, - 0xDF, - 0xFA, - 0xFA, - 0xE0, - 0xE0, - 0xDF, - 0xF7, - 0xE0, - 0xDF, - 0x00, - 0x04, - 0xE0, - 0x01, - 0xE2, - 0x01, - 0xE0, - 0x05, - 0xE2, - 0x00, - 0x0F, - 0xE0, - 0xE1, - 0xE2, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xE1, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xE9, - 0xED, - 0x00, - 0x04, - 0xE9, - 0x01, - 0xEB, - 0x01, - 0xE9, - 0x08, - 0xEB, - 0x08, - 0xEE, - 0x00, - 0x0A, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEA, - 0xDD, - 0xDE, - 0x06, - 0xDD, - 0x01, - 0xEA, - 0x06, - 0xDD, - 0x00, - 0x0F, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xEE, - 0xDE, - 0xDE, - 0xEA, - 0xDE, - 0xEE, - 0xDE, - 0xEB, - 0xDE, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xDE, - 0x04, - 0xE6, - 0x00, - 0x08, - 0xEB, - 0xE6, - 0xEB, - 0xE9, - 0xE6, - 0xE9, - 0xE9, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0x10, - 0xE2, - 0xE2, - 0xA5, - 0x5A, - 0x43, - 0x2B, - 0x9D, - 0xB4, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0x05, - 0xA4, - 0x00, - 0x2B, - 0x9D, - 0x9E, - 0x9E, - 0x93, - 0x9D, - 0x93, - 0x90, - 0xA4, - 0x90, - 0x93, - 0x9E, - 0x93, - 0x85, - 0x8B, - 0x85, - 0x93, - 0x85, - 0x88, - 0x88, - 0x93, - 0x7E, - 0x7E, - 0x88, - 0x87, - 0x7E, - 0x92, - 0x92, - 0x91, - 0x88, - 0x9E, - 0xAB, - 0x90, - 0x93, - 0x85, - 0x8B, - 0x8B, - 0x93, - 0x9D, - 0x93, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x40, - 0x9D, - 0x9D, - 0x93, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0x90, - 0x9E, - 0x85, - 0x8B, - 0xA4, - 0x6A, - 0x88, - 0x7E, - 0x87, - 0x77, - 0x6A, - 0x6A, - 0x72, - 0x7E, - 0x1E, - 0x43, - 0x2B, - 0x43, - 0x53, - 0x53, - 0x3B, - 0x3A, - 0x30, - 0x08, - 0x0C, - 0x3A, - 0x45, - 0x44, - 0x2B, - 0x45, - 0x58, - 0x2C, - 0x38, - 0x5F, - 0x5F, - 0x27, - 0x45, - 0x5F, - 0x04, - 0x08, - 0x0C, - 0x0C, - 0x0C, - 0x45, - 0x45, - 0x45, - 0x58, - 0x58, - 0x54, - 0x42, - 0x45, - 0x38, - 0x42, - 0x42, - 0x38, - 0x42, - 0x06, - 0x45, - 0x00, - 0x40, - 0x1D, - 0x2C, - 0x27, - 0x27, - 0x38, - 0x1D, - 0x1D, - 0x2B, - 0x2B, - 0x20, - 0x2C, - 0x25, - 0x27, - 0x1A, - 0x27, - 0x27, - 0x27, - 0x1A, - 0x1A, - 0x0C, - 0x17, - 0x53, - 0x37, - 0x3F, - 0x30, - 0x21, - 0x1A, - 0x31, - 0x25, - 0x2C, - 0x30, - 0x48, - 0x3F, - 0x25, - 0x25, - 0x34, - 0x25, - 0x30, - 0x20, - 0x2E, - 0x30, - 0x27, - 0x30, - 0x3A, - 0x3A, - 0x45, - 0x45, - 0x42, - 0x27, - 0x20, - 0x1A, - 0x18, - 0x1D, - 0x45, - 0x38, - 0x38, - 0x20, - 0x45, - 0x30, - 0x2E, - 0x27, - 0x04, - 0x3B, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xD8, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xF9, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x1C, - 0xE2, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xE9, - 0xEF, - 0xE2, - 0xE9, - 0xED, - 0xEF, - 0xEF, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0x05, - 0xEB, - 0x09, - 0xEE, - 0x01, - 0xEA, - 0x05, - 0xEE, - 0x00, - 0x2E, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xEE, - 0xEE, - 0xDE, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xE6, - 0xE9, - 0xEB, - 0xE6, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0x80, - 0xE2, - 0xF6, - 0xE2, - 0xE0, - 0x9B, - 0x5F, - 0x4E, - 0x4E, - 0x91, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9E, - 0x90, - 0x90, - 0x9E, - 0x90, - 0x93, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x85, - 0x93, - 0x85, - 0x88, - 0x8B, - 0x88, - 0x88, - 0x7E, - 0x91, - 0x88, - 0x7E, - 0xA0, - 0x88, - 0x88, - 0x91, - 0x93, - 0xAD, - 0x8B, - 0x90, - 0x85, - 0x90, - 0x85, - 0x90, - 0x93, - 0x9E, - 0x90, - 0x9E, - 0x9D, - 0x93, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x85, - 0xA4, - 0xA4, - 0x90, - 0x90, - 0x93, - 0x90, - 0x9D, - 0x9E, - 0x7C, - 0xA0, - 0x6E, - 0x93, - 0x88, - 0x77, - 0x7E, - 0x77, - 0x72, - 0x6A, - 0x88, - 0x09, - 0x5A, - 0x2B, - 0x37, - 0x53, - 0x53, - 0x3B, - 0x3B, - 0x2C, - 0x2C, - 0x01, - 0x50, - 0x53, - 0x25, - 0x34, - 0x2B, - 0x27, - 0x38, - 0x53, - 0x45, - 0x53, - 0x27, - 0x5F, - 0x5F, - 0x17, - 0x02, - 0x04, - 0x0C, - 0x0C, - 0x0C, - 0x53, - 0x53, - 0x58, - 0x53, - 0x54, - 0x3B, - 0x04, - 0x42, - 0x00, - 0x48, - 0x38, - 0x45, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x5F, - 0x0C, - 0x3B, - 0x27, - 0x27, - 0x2C, - 0x20, - 0x17, - 0x2C, - 0x1D, - 0x27, - 0x1D, - 0x2C, - 0x1D, - 0x27, - 0x2B, - 0x27, - 0x2C, - 0x42, - 0x20, - 0x0C, - 0x27, - 0x38, - 0x3A, - 0x3F, - 0x30, - 0x31, - 0x2E, - 0x25, - 0x20, - 0x2B, - 0x3B, - 0x1A, - 0x2B, - 0x3F, - 0x34, - 0x25, - 0x20, - 0x20, - 0x20, - 0x18, - 0x3A, - 0x30, - 0x38, - 0x30, - 0x30, - 0x45, - 0x45, - 0x20, - 0x27, - 0x27, - 0x20, - 0x20, - 0x27, - 0x3B, - 0x27, - 0x38, - 0x0C, - 0x45, - 0x45, - 0x38, - 0x27, - 0x02, - 0x45, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xF7, - 0xD8, - 0xDF, - 0xD8, - 0xDF, - 0xD8, - 0xD8, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x03, - 0xE2, - 0xE0, - 0xE0, - 0x00, - 0x08, - 0xE2, - 0x00, - 0x0C, - 0xE1, - 0xE2, - 0xEF, - 0xE1, - 0xEF, - 0xEF, - 0xEF, - 0xE1, - 0xE9, - 0xED, - 0xE9, - 0xED, - 0x04, - 0xE9, - 0x00, - 0x09, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0x00, - 0x05, - 0xEE, - 0x01, - 0xEA, - 0x05, - 0xEE, - 0x01, - 0xEA, - 0x04, - 0xEE, - 0x00, - 0x1E, - 0xEA, - 0xDE, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xEE, - 0xC9, - 0xE9, - 0xEA, - 0xEB, - 0xDE, - 0xE6, - 0xDE, - 0x06, - 0xE6, - 0x00, - 0x05, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0x00, - 0x06, - 0xE9, - 0x00, - 0x0A, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xF6, - 0x8F, - 0x7B, - 0x7A, - 0x57, - 0x73, - 0x04, - 0xA4, - 0x00, - 0x04, - 0xAD, - 0xA4, - 0x9D, - 0xB7, - 0x05, - 0xA4, - 0x00, - 0xB6, - 0xAD, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x85, - 0x93, - 0x90, - 0x9E, - 0x9D, - 0x8B, - 0x8B, - 0x90, - 0x85, - 0x8B, - 0x8B, - 0x85, - 0x88, - 0x88, - 0x85, - 0x88, - 0x7C, - 0x88, - 0x88, - 0x87, - 0xA0, - 0x88, - 0x91, - 0x92, - 0x9E, - 0xA4, - 0x93, - 0x90, - 0x7C, - 0x90, - 0x8B, - 0x8B, - 0x93, - 0x9E, - 0xA4, - 0xA4, - 0x9D, - 0x8B, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x8B, - 0x9E, - 0x9D, - 0x93, - 0x9D, - 0x85, - 0x90, - 0x93, - 0x9D, - 0x85, - 0x88, - 0x75, - 0xA0, - 0x85, - 0x75, - 0x77, - 0x6A, - 0x6A, - 0x6A, - 0x77, - 0x10, - 0x5A, - 0x43, - 0x2B, - 0x5F, - 0x53, - 0x53, - 0x3A, - 0x42, - 0x2B, - 0x08, - 0x17, - 0x2C, - 0x3D, - 0x27, - 0x42, - 0x42, - 0x3A, - 0x27, - 0x3B, - 0x45, - 0x3B, - 0x53, - 0x5F, - 0x45, - 0x27, - 0x02, - 0x02, - 0x07, - 0x08, - 0x1D, - 0x50, - 0x53, - 0x63, - 0x54, - 0x54, - 0x54, - 0x42, - 0x38, - 0x38, - 0x42, - 0x38, - 0x38, - 0x45, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x0C, - 0x27, - 0x2C, - 0x38, - 0x27, - 0x27, - 0x20, - 0x2C, - 0x30, - 0x3B, - 0x27, - 0x2B, - 0x2C, - 0x2B, - 0x1D, - 0x2B, - 0x27, - 0x2C, - 0x20, - 0x08, - 0x0C, - 0x27, - 0x3D, - 0x31, - 0x34, - 0x2E, - 0x1D, - 0x25, - 0x25, - 0x31, - 0x34, - 0x20, - 0x48, - 0x37, - 0x34, - 0x21, - 0x30, - 0x20, - 0x20, - 0x0C, - 0x3B, - 0x38, - 0x2E, - 0x25, - 0x3D, - 0x42, - 0x38, - 0x27, - 0x20, - 0x27, - 0x20, - 0x20, - 0x1A, - 0x42, - 0x3B, - 0x27, - 0x13, - 0x45, - 0x45, - 0x2C, - 0x0C, - 0x02, - 0x45, - 0x27, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD8, - 0xD8, - 0xFA, - 0x00, - 0x06, - 0xDF, - 0x00, - 0x05, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0xE2, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x03, - 0xE2, - 0xE2, - 0xE3, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x14, - 0xE1, - 0xEF, - 0xE2, - 0xE1, - 0xEF, - 0xE1, - 0xED, - 0xED, - 0xEF, - 0xED, - 0xED, - 0xED, - 0xE9, - 0xED, - 0xEB, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0x04, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x07, - 0xEE, - 0x01, - 0xEA, - 0x08, - 0xEE, - 0x00, - 0x28, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xEE, - 0xDD, - 0xDE, - 0xEE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEA, - 0xDD, - 0xEE, - 0xDD, - 0xEB, - 0xDE, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xEB, - 0xE6, - 0xE6, - 0xEB, - 0xE6, - 0xE6, - 0xEB, - 0x04, - 0xE9, - 0x00, - 0xB9, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xEF, - 0xE2, - 0xE2, - 0xCA, - 0x6D, - 0x83, - 0x73, - 0x73, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x9D, - 0x93, - 0x8B, - 0x93, - 0x90, - 0x9E, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x85, - 0x85, - 0x8B, - 0x8B, - 0x88, - 0x7C, - 0x85, - 0x91, - 0x7E, - 0x91, - 0x88, - 0x7E, - 0x91, - 0x88, - 0x88, - 0x88, - 0xA4, - 0x9E, - 0x8B, - 0x9E, - 0x8B, - 0x90, - 0x93, - 0x85, - 0x93, - 0x93, - 0x9D, - 0x9E, - 0x9D, - 0x93, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x93, - 0x91, - 0x93, - 0x9D, - 0x90, - 0x9E, - 0x8B, - 0x9E, - 0x8B, - 0xA0, - 0x8B, - 0x7C, - 0x7E, - 0x91, - 0x91, - 0x75, - 0x7E, - 0x77, - 0x72, - 0x68, - 0x83, - 0x01, - 0x43, - 0x43, - 0x17, - 0x5F, - 0x53, - 0x47, - 0x45, - 0x3A, - 0x3D, - 0x3D, - 0x04, - 0x53, - 0x47, - 0x21, - 0x58, - 0x53, - 0x27, - 0x53, - 0x2C, - 0x45, - 0x47, - 0x3B, - 0x45, - 0x58, - 0x45, - 0x07, - 0x02, - 0x02, - 0x07, - 0x08, - 0x25, - 0x58, - 0x58, - 0x45, - 0x42, - 0x54, - 0x38, - 0x54, - 0x42, - 0x38, - 0x38, - 0x38, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x42, - 0x1A, - 0x27, - 0x38, - 0x27, - 0x30, - 0x2C, - 0x38, - 0x2C, - 0x2C, - 0x43, - 0x27, - 0x25, - 0x3A, - 0x1D, - 0x2B, - 0x3A, - 0x2B, - 0x38, - 0x20, - 0x08, - 0x31, - 0x3D, - 0x31, - 0x25, - 0x25, - 0x31, - 0x25, - 0x25, - 0x27, - 0x38, - 0x48, - 0x1D, - 0x34, - 0x34, - 0x34, - 0x25, - 0x20, - 0x20, - 0x1A, - 0x27, - 0x2C, - 0x00, - 0x04, - 0x30, - 0x00, - 0x12, - 0x20, - 0x20, - 0x20, - 0x27, - 0x20, - 0x38, - 0x20, - 0x3B, - 0x47, - 0x1D, - 0x18, - 0x38, - 0x45, - 0x27, - 0x08, - 0x02, - 0x45, - 0x17, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x05, - 0xDF, - 0x07, - 0xE0, - 0x00, - 0x10, - 0xE2, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xE2, - 0xE1, - 0xE1, - 0xEF, - 0xEF, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x08, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0x05, - 0xEB, - 0x01, - 0xEE, - 0x01, - 0xEB, - 0x0C, - 0xEE, - 0x01, - 0xE5, - 0x06, - 0xEE, - 0x04, - 0xDD, - 0x00, - 0x17, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xC9, - 0xE9, - 0xEB, - 0xDE, - 0x00, - 0x05, - 0xE6, - 0x00, - 0x19, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xB4, - 0x73, - 0xB4, - 0x90, - 0x92, - 0x9D, - 0x9D, - 0x9D, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x24, - 0xB7, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x90, - 0x9E, - 0x8B, - 0x93, - 0x93, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x7C, - 0x85, - 0x88, - 0x88, - 0x7C, - 0x7E, - 0x88, - 0x7C, - 0x91, - 0x88, - 0x88, - 0x91, - 0x88, - 0x93, - 0x88, - 0x04, - 0x9E, - 0x00, - 0x09, - 0x8B, - 0x8B, - 0x9E, - 0x8B, - 0x8B, - 0x9E, - 0x90, - 0x9E, - 0x8B, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x06, - 0xA4, - 0x9E, - 0x91, - 0x8B, - 0x90, - 0x9E, - 0x04, - 0x90, - 0x00, - 0x07, - 0x8B, - 0x93, - 0x88, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x00, - 0x04, - 0x77, - 0x00, - 0x2D, - 0xC9, - 0x01, - 0x66, - 0x43, - 0x43, - 0x53, - 0x54, - 0x47, - 0x42, - 0x45, - 0x42, - 0x38, - 0x0C, - 0x17, - 0x2C, - 0x25, - 0x47, - 0x27, - 0x3B, - 0x27, - 0x42, - 0x37, - 0x38, - 0x20, - 0x3B, - 0x45, - 0x5F, - 0x38, - 0x17, - 0x18, - 0x0C, - 0x18, - 0x13, - 0x54, - 0x54, - 0x58, - 0x54, - 0x42, - 0x45, - 0x42, - 0x45, - 0x42, - 0x42, - 0x45, - 0x42, - 0x00, - 0x05, - 0x45, - 0x00, - 0x3F, - 0x1A, - 0x27, - 0x3B, - 0x2C, - 0x27, - 0x30, - 0x2C, - 0x2C, - 0x3B, - 0x37, - 0x47, - 0x1D, - 0x34, - 0x37, - 0x1A, - 0x37, - 0x25, - 0x2C, - 0x17, - 0x18, - 0x0C, - 0x25, - 0x2B, - 0x34, - 0x1A, - 0x25, - 0x1A, - 0x25, - 0x2B, - 0x34, - 0x38, - 0x18, - 0x3F, - 0x3F, - 0x25, - 0x20, - 0x18, - 0x20, - 0x1A, - 0x42, - 0x30, - 0x30, - 0x25, - 0x2E, - 0x20, - 0x1A, - 0x27, - 0x38, - 0x1A, - 0x27, - 0x20, - 0x20, - 0x2C, - 0x42, - 0x1A, - 0x23, - 0x38, - 0x45, - 0x27, - 0x01, - 0x08, - 0x27, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xFA, - 0xD8, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xD8, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xDF, - 0x04, - 0xE0, - 0x00, - 0x25, - 0xE2, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xE0, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xE2, - 0xEF, - 0xE2, - 0xEF, - 0xEF, - 0xE1, - 0xED, - 0xE1, - 0xEF, - 0xED, - 0xE9, - 0xED, - 0xED, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x0F, - 0xEE, - 0x00, - 0x06, - 0xDD, - 0xEE, - 0xE5, - 0xEE, - 0xDD, - 0xEE, - 0x07, - 0xDD, - 0x00, - 0x1C, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xE6, - 0xE6, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0x04, - 0xE9, - 0x04, - 0xEF, - 0x00, - 0xCB, - 0xE2, - 0xE2, - 0xE2, - 0xC9, - 0x83, - 0xB4, - 0x85, - 0x77, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xB7, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0x9D, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x7C, - 0x90, - 0x7C, - 0x85, - 0x8B, - 0x85, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x91, - 0x92, - 0x91, - 0x93, - 0x88, - 0x91, - 0x85, - 0x9E, - 0x8B, - 0x93, - 0x90, - 0x8B, - 0x8B, - 0x9E, - 0x91, - 0x88, - 0x93, - 0x8B, - 0x9E, - 0x8B, - 0x9E, - 0x93, - 0xA4, - 0x9E, - 0x9D, - 0xA4, - 0x9E, - 0x8B, - 0xA0, - 0x9D, - 0x9E, - 0x9E, - 0x9E, - 0x90, - 0x9E, - 0x93, - 0x93, - 0x7E, - 0x91, - 0x93, - 0x7E, - 0x7E, - 0x75, - 0x75, - 0x6A, - 0x77, - 0x61, - 0x05, - 0x81, - 0x43, - 0x37, - 0x66, - 0x5A, - 0x58, - 0x47, - 0x47, - 0x2C, - 0x3A, - 0x42, - 0x08, - 0x53, - 0x30, - 0x2C, - 0x27, - 0x53, - 0x42, - 0x3B, - 0x3A, - 0x37, - 0x1A, - 0x1D, - 0x27, - 0x38, - 0x27, - 0x17, - 0x1D, - 0x1D, - 0x1D, - 0x18, - 0x3D, - 0x54, - 0x47, - 0x42, - 0x54, - 0x42, - 0x42, - 0x38, - 0x45, - 0x38, - 0x38, - 0x45, - 0x38, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x0C, - 0x2C, - 0x2C, - 0x45, - 0x27, - 0x3A, - 0x25, - 0x38, - 0x3B, - 0x20, - 0x37, - 0x47, - 0x2B, - 0x34, - 0x2B, - 0x1D, - 0x34, - 0x2C, - 0x27, - 0x27, - 0x1A, - 0x18, - 0x2E, - 0x1A, - 0x31, - 0x2E, - 0x25, - 0x25, - 0x2B, - 0x2B, - 0x3A, - 0x42, - 0x21, - 0x3F, - 0x34, - 0x1A, - 0x13, - 0x20, - 0x1A, - 0x3B, - 0x3D, - 0x20, - 0x30, - 0x20, - 0x20, - 0x1A, - 0x20, - 0x27, - 0x27, - 0x38, - 0x27, - 0x20, - 0x27, - 0x30, - 0x0C, - 0x0C, - 0x27, - 0x45, - 0x27, - 0x02, - 0x0C, - 0x20, - 0x13, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD8, - 0x01, - 0xDF, - 0x01, - 0xD8, - 0x05, - 0xDF, - 0x01, - 0xE0, - 0x01, - 0xDF, - 0x08, - 0xE0, - 0x06, - 0xE2, - 0x00, - 0x18, - 0xE1, - 0xE2, - 0xE1, - 0xE2, - 0xED, - 0xE2, - 0xE9, - 0xED, - 0xE1, - 0xEF, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEB, - 0x0D, - 0xEE, - 0x01, - 0xEB, - 0x06, - 0xEE, - 0x07, - 0xDD, - 0x00, - 0xA6, - 0xDE, - 0xDE, - 0xEE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xEE, - 0xEA, - 0xDE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xEB, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0x92, - 0x92, - 0x9D, - 0x9E, - 0x7E, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0x9D, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0x9E, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x7C, - 0x8B, - 0x7C, - 0x8B, - 0x7C, - 0x88, - 0x88, - 0x88, - 0x87, - 0x91, - 0x88, - 0x88, - 0x91, - 0x88, - 0x93, - 0x88, - 0x93, - 0x9D, - 0x90, - 0x93, - 0x93, - 0x8B, - 0xA0, - 0x8B, - 0x7C, - 0x93, - 0x8B, - 0x93, - 0x7C, - 0x8B, - 0x88, - 0xAB, - 0x9E, - 0x93, - 0x9E, - 0x9E, - 0x91, - 0x93, - 0x9E, - 0x90, - 0x93, - 0x9D, - 0x93, - 0x9E, - 0x93, - 0x88, - 0x75, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x73, - 0x7C, - 0x39, - 0x5A, - 0x17, - 0x43, - 0x5A, - 0x5F, - 0x42, - 0x3B, - 0x3B, - 0x42, - 0x38, - 0x3D, - 0x30, - 0x21, - 0x2C, - 0x25, - 0x3B, - 0x38, - 0x3B, - 0x17, - 0x1D, - 0x17, - 0x1A, - 0x1D, - 0x0C, - 0x27, - 0x27, - 0x1A, - 0x2C, - 0x1D, - 0x27, - 0x0C, - 0x2C, - 0x47, - 0x50, - 0x54, - 0x06, - 0x42, - 0x00, - 0x1E, - 0x38, - 0x30, - 0x38, - 0x42, - 0x3B, - 0x45, - 0x45, - 0x38, - 0x1D, - 0x20, - 0x38, - 0x38, - 0x1D, - 0x20, - 0x38, - 0x38, - 0x3B, - 0x27, - 0x2B, - 0x37, - 0x1D, - 0x37, - 0x1D, - 0x43, - 0x2B, - 0x34, - 0x17, - 0x27, - 0x18, - 0x1A, - 0x06, - 0x25, - 0x00, - 0x22, - 0x30, - 0x2B, - 0x3A, - 0x1A, - 0x3D, - 0x27, - 0x20, - 0x0C, - 0x18, - 0x20, - 0x38, - 0x42, - 0x25, - 0x30, - 0x18, - 0x27, - 0x20, - 0x20, - 0x27, - 0x38, - 0x38, - 0x20, - 0x27, - 0x30, - 0x20, - 0x23, - 0x0C, - 0x27, - 0x27, - 0x3B, - 0x02, - 0x27, - 0x2C, - 0x0C, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x00, - 0x06, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0x07, - 0xE0, - 0x00, - 0x04, - 0xCE, - 0xE2, - 0xE2, - 0xE0, - 0x04, - 0xE2, - 0x00, - 0x15, - 0xE1, - 0xE2, - 0xE1, - 0xEF, - 0xE2, - 0xE2, - 0xE1, - 0xE9, - 0xEF, - 0xE9, - 0xE9, - 0xE9, - 0xE1, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x0D, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xEB, - 0xDD, - 0xEB, - 0xEE, - 0xDE, - 0x00, - 0x06, - 0xEE, - 0x00, - 0x16, - 0xDD, - 0xEE, - 0xE5, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xEA, - 0xEA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0x05, - 0xDE, - 0x00, - 0x05, - 0xE6, - 0xE6, - 0xEB, - 0xE6, - 0xDE, - 0x00, - 0x06, - 0xEB, - 0x04, - 0xE9, - 0x00, - 0x13, - 0xEF, - 0xE9, - 0xF6, - 0xF6, - 0xE0, - 0xF6, - 0xC9, - 0xA0, - 0x9E, - 0xAD, - 0xA4, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0x00, - 0x04, - 0xAD, - 0x00, - 0xB8, - 0xB7, - 0xAD, - 0xB7, - 0xA4, - 0xA4, - 0xAB, - 0x90, - 0x9E, - 0xA0, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x93, - 0x93, - 0x8B, - 0x8B, - 0x7C, - 0x85, - 0x7C, - 0x7C, - 0x88, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0x88, - 0x91, - 0x88, - 0x93, - 0x85, - 0x93, - 0x9E, - 0x93, - 0x8B, - 0x85, - 0x85, - 0x85, - 0x93, - 0x7C, - 0x88, - 0x93, - 0x93, - 0x85, - 0x91, - 0x7E, - 0x9E, - 0x8B, - 0x93, - 0x93, - 0x91, - 0x93, - 0x93, - 0x8B, - 0x9E, - 0x93, - 0x9E, - 0x8B, - 0x9E, - 0x93, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x91, - 0x7E, - 0x88, - 0x6A, - 0x7E, - 0x6A, - 0x61, - 0x5A, - 0x7B, - 0x31, - 0x2B, - 0x5F, - 0x53, - 0x47, - 0x3B, - 0x47, - 0x3B, - 0x42, - 0x42, - 0x48, - 0x20, - 0x53, - 0x25, - 0x58, - 0x3B, - 0x2C, - 0x18, - 0x1A, - 0x1D, - 0x1A, - 0x34, - 0x0C, - 0x27, - 0x1A, - 0x27, - 0x1D, - 0x2C, - 0x1D, - 0x1D, - 0x37, - 0x27, - 0x42, - 0x47, - 0x42, - 0x54, - 0x42, - 0x38, - 0x42, - 0x42, - 0x42, - 0x38, - 0x3B, - 0x27, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x08, - 0x20, - 0x27, - 0x3A, - 0x1A, - 0x1A, - 0x30, - 0x42, - 0x3D, - 0x50, - 0x3B, - 0x1A, - 0x37, - 0x1A, - 0x37, - 0x1A, - 0x43, - 0x34, - 0x18, - 0x30, - 0x27, - 0x18, - 0x25, - 0x21, - 0x25, - 0x25, - 0x2E, - 0x2B, - 0x1D, - 0x3A, - 0x2C, - 0x38, - 0x1A, - 0x38, - 0x2C, - 0x2C, - 0x20, - 0x18, - 0x2C, - 0x30, - 0x27, - 0x2E, - 0x13, - 0x27, - 0x20, - 0x20, - 0x20, - 0x27, - 0x38, - 0x30, - 0x20, - 0x27, - 0x20, - 0x18, - 0x0C, - 0x27, - 0x2C, - 0x45, - 0x08, - 0x45, - 0x45, - 0x18, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xD8, - 0xD8, - 0xD8, - 0xF7, - 0xD8, - 0xDF, - 0xDF, - 0xDF, - 0xD8, - 0xE0, - 0xE0, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0x00, - 0x07, - 0xE0, - 0x00, - 0x18, - 0xD4, - 0xE0, - 0xD4, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE1, - 0xE1, - 0xEF, - 0xE1, - 0xEF, - 0xE1, - 0xE1, - 0xED, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xE9, - 0xE6, - 0x05, - 0xEB, - 0x00, - 0x06, - 0xEE, - 0xEB, - 0xEE, - 0xEE, - 0xEE, - 0xE5, - 0x05, - 0xEE, - 0x00, - 0x26, - 0xEB, - 0xE5, - 0xEE, - 0xEE, - 0xEE, - 0xE5, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xEE, - 0xDD, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDD, - 0xEE, - 0xDD, - 0xEE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDD, - 0xEE, - 0xDE, - 0xDD, - 0xDE, - 0xDE, - 0xDE, - 0xE6, - 0xEB, - 0xDE, - 0x07, - 0xEB, - 0x04, - 0xE9, - 0x05, - 0xEF, - 0x00, - 0x0F, - 0xF6, - 0xEF, - 0xE0, - 0xC9, - 0x91, - 0x93, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x99, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x93, - 0x93, - 0x8B, - 0x8B, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x7C, - 0x88, - 0x85, - 0x7C, - 0x7C, - 0x88, - 0x7E, - 0x88, - 0x87, - 0x91, - 0x88, - 0x91, - 0x88, - 0x8B, - 0x93, - 0x85, - 0x88, - 0x85, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x93, - 0x7E, - 0x88, - 0x88, - 0x75, - 0x88, - 0x88, - 0x93, - 0x91, - 0x91, - 0x85, - 0x93, - 0x91, - 0x8B, - 0x90, - 0x93, - 0x9E, - 0x93, - 0x88, - 0x85, - 0x91, - 0x85, - 0x88, - 0x85, - 0x7E, - 0x7E, - 0x7E, - 0x6A, - 0x6A, - 0x6E, - 0x71, - 0x66, - 0x43, - 0x43, - 0x63, - 0x58, - 0x53, - 0x54, - 0x42, - 0x47, - 0x3B, - 0x47, - 0x3B, - 0x42, - 0x2B, - 0x1D, - 0x3B, - 0x17, - 0x1D, - 0x1D, - 0x17, - 0x34, - 0x1D, - 0x1D, - 0x0C, - 0x1D, - 0x1A, - 0x2B, - 0x1D, - 0x1D, - 0x37, - 0x1A, - 0x2C, - 0x1D, - 0x48, - 0x54, - 0x48, - 0x42, - 0x54, - 0x42, - 0x42, - 0x38, - 0x45, - 0x42, - 0x38, - 0x38, - 0x17, - 0x3B, - 0x45, - 0x5F, - 0x0C, - 0x45, - 0x1A, - 0x1D, - 0x17, - 0x0C, - 0x30, - 0x38, - 0x42, - 0x25, - 0x43, - 0x37, - 0x1A, - 0x43, - 0x17, - 0x2B, - 0x17, - 0x3A, - 0x43, - 0x2C, - 0x47, - 0x1A, - 0x21, - 0x25, - 0x1D, - 0x21, - 0x25, - 0x1A, - 0x34, - 0x25, - 0x00, - 0x04, - 0x27, - 0x00, - 0x1C, - 0x3B, - 0x3B, - 0x38, - 0x1A, - 0x30, - 0x38, - 0x2E, - 0x20, - 0x0C, - 0x20, - 0x20, - 0x20, - 0x27, - 0x38, - 0x27, - 0x38, - 0x30, - 0x23, - 0x20, - 0x0C, - 0x0C, - 0x20, - 0x3B, - 0x45, - 0x38, - 0x45, - 0x45, - 0x27, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x00, - 0x0A, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0x06, - 0xE0, - 0x00, - 0x03, - 0xE2, - 0xE2, - 0xE0, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x0D, - 0xE1, - 0xE2, - 0xE1, - 0xEF, - 0xE1, - 0xEF, - 0xE9, - 0xE1, - 0xE9, - 0xED, - 0xEF, - 0xE9, - 0xED, - 0x00, - 0x04, - 0xE9, - 0x01, - 0xE6, - 0x01, - 0xED, - 0x07, - 0xEB, - 0x00, - 0x16, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xEE, - 0xDE, - 0xEE, - 0xDE, - 0xEB, - 0xEE, - 0xE5, - 0xEE, - 0xDE, - 0xEE, - 0xE5, - 0xDD, - 0xDD, - 0xDE, - 0x05, - 0xDD, - 0x00, - 0x0C, - 0xDE, - 0xEE, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xEA, - 0xDE, - 0xEA, - 0xDD, - 0xEE, - 0xEE, - 0x04, - 0xDE, - 0x00, - 0x24, - 0xEB, - 0xEB, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xF6, - 0xE9, - 0xEF, - 0xF6, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xB4, - 0x93, - 0x9E, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0x04, - 0xAD, - 0x00, - 0x19, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0x9E, - 0xA0, - 0x93, - 0x90, - 0x91, - 0x93, - 0xA0, - 0x8B, - 0x93, - 0x8B, - 0x85, - 0x7C, - 0x7C, - 0x7C, - 0x85, - 0x7C, - 0x7E, - 0x88, - 0x7E, - 0x00, - 0x08, - 0x88, - 0x00, - 0x49, - 0x85, - 0x85, - 0x7C, - 0x88, - 0x88, - 0x7E, - 0x75, - 0x7C, - 0x88, - 0x7E, - 0x88, - 0x7E, - 0x75, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x7E, - 0x88, - 0x8B, - 0x88, - 0x88, - 0x93, - 0x8B, - 0x88, - 0x93, - 0x88, - 0x88, - 0x88, - 0x7C, - 0x88, - 0x88, - 0x88, - 0x75, - 0x87, - 0x6A, - 0x68, - 0x72, - 0x71, - 0x43, - 0x43, - 0x17, - 0x58, - 0x53, - 0x47, - 0x3B, - 0x47, - 0x3B, - 0x47, - 0x42, - 0x38, - 0x47, - 0x45, - 0x42, - 0x2B, - 0x1A, - 0x17, - 0x2B, - 0x1D, - 0x1A, - 0x25, - 0x2B, - 0x30, - 0x1D, - 0x25, - 0x1D, - 0x30, - 0x1D, - 0x27, - 0x1D, - 0x3A, - 0x2B, - 0x2C, - 0x00, - 0x05, - 0x42, - 0x00, - 0x43, - 0x38, - 0x42, - 0x38, - 0x38, - 0x38, - 0x45, - 0x38, - 0x45, - 0x45, - 0x45, - 0x1A, - 0x3B, - 0x1A, - 0x2E, - 0x20, - 0x1A, - 0x25, - 0x30, - 0x42, - 0x20, - 0x2C, - 0x2B, - 0x47, - 0x1A, - 0x34, - 0x17, - 0x2B, - 0x25, - 0x3F, - 0x31, - 0x2C, - 0x27, - 0x20, - 0x21, - 0x21, - 0x2B, - 0x17, - 0x2E, - 0x2B, - 0x27, - 0x2C, - 0x27, - 0x27, - 0x2C, - 0x38, - 0x3B, - 0x45, - 0x45, - 0x38, - 0x38, - 0x20, - 0x20, - 0x08, - 0x38, - 0x20, - 0x20, - 0x20, - 0x38, - 0x38, - 0x30, - 0x20, - 0x27, - 0x1A, - 0x18, - 0x18, - 0x27, - 0x38, - 0x00, - 0x05, - 0x45, - 0x00, - 0x00, - 0x01, - 0xF7, - 0x04, - 0xD8, - 0x06, - 0xDF, - 0x00, - 0x06, - 0xE0, - 0xE0, - 0xCE, - 0xE0, - 0xE0, - 0xCE, - 0x04, - 0xE0, - 0x00, - 0x0A, - 0xD4, - 0xE0, - 0xE2, - 0xD4, - 0xE0, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0x04, - 0xE1, - 0x00, - 0x1F, - 0xEF, - 0xE1, - 0xE1, - 0xE9, - 0xED, - 0xDC, - 0xED, - 0xE9, - 0xE9, - 0xE6, - 0xE9, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xDE, - 0xDE, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xEE, - 0xEB, - 0xE5, - 0x00, - 0x04, - 0xEE, - 0x00, - 0x0B, - 0xE5, - 0xEE, - 0xDE, - 0xEE, - 0xDE, - 0xDD, - 0xE5, - 0xDE, - 0xE5, - 0xDD, - 0xE5, - 0x00, - 0x05, - 0xDD, - 0x00, - 0x0C, - 0xEE, - 0xDD, - 0xDD, - 0xDD, - 0xEE, - 0xDD, - 0xDE, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0x06, - 0xEB, - 0x00, - 0x04, - 0xEE, - 0xEB, - 0xE6, - 0xE6, - 0x04, - 0xE9, - 0x00, - 0x14, - 0xF6, - 0xEF, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xC9, - 0x8B, - 0x93, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0xB7, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9E, - 0x93, - 0x90, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0xA0, - 0x93, - 0x93, - 0x85, - 0x85, - 0x85, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x7C, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x93, - 0x93, - 0x85, - 0x7C, - 0x7E, - 0x7C, - 0x7C, - 0x7E, - 0x75, - 0x77, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x7E, - 0x7E, - 0x77, - 0x75, - 0x7C, - 0x88, - 0x7E, - 0x85, - 0x88, - 0x85, - 0x85, - 0x85, - 0x88, - 0x85, - 0x93, - 0x75, - 0x88, - 0x7E, - 0x88, - 0x7C, - 0x7C, - 0x88, - 0x75, - 0x75, - 0x77, - 0x61, - 0x72, - 0x6F, - 0x6B, - 0x65, - 0x37, - 0x63, - 0x53, - 0x54, - 0x47, - 0x47, - 0x42, - 0x47, - 0x3B, - 0x47, - 0x47, - 0x58, - 0x53, - 0x2B, - 0x1D, - 0x20, - 0x17, - 0x2B, - 0x34, - 0x1D, - 0x27, - 0x2E, - 0x1A, - 0x1D, - 0x3A, - 0x27, - 0x3A, - 0x27, - 0x2B, - 0x2B, - 0x1D, - 0x1A, - 0x54, - 0x42, - 0x34, - 0x54, - 0x42, - 0x42, - 0x38, - 0x38, - 0x38, - 0x3A, - 0x27, - 0x45, - 0x3B, - 0x45, - 0x45, - 0x45, - 0x0C, - 0x2B, - 0x2B, - 0x25, - 0x31, - 0x2E, - 0x27, - 0x38, - 0x42, - 0x37, - 0x2B, - 0x34, - 0x37, - 0x1D, - 0x31, - 0x31, - 0x31, - 0x17, - 0x31, - 0x17, - 0x43, - 0x2C, - 0x20, - 0x2E, - 0x1A, - 0x21, - 0x1D, - 0x27, - 0x2C, - 0x2C, - 0x20, - 0x3B, - 0x42, - 0x38, - 0x45, - 0x38, - 0x45, - 0x3B, - 0x38, - 0x27, - 0x23, - 0x07, - 0x45, - 0x20, - 0x20, - 0x27, - 0x38, - 0x38, - 0x38, - 0x2C, - 0x3B, - 0x20, - 0x0C, - 0x20, - 0x38, - 0x38, - 0x27, - 0x45, - 0x45, - 0x45, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x28, - 0xA9, - 0xFA, - 0xD8, - 0xDF, - 0xD8, - 0xD8, - 0xDF, - 0xD8, - 0xCE, - 0xDF, - 0xDF, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xCE, - 0xE0, - 0xE0, - 0xCE, - 0xE2, - 0xE0, - 0xCE, - 0xE2, - 0xE0, - 0xE2, - 0xD4, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE2, - 0xEF, - 0xED, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xE6, - 0xEF, - 0x05, - 0xE9, - 0x00, - 0x03, - 0xE6, - 0xE9, - 0xE9, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x21, - 0xEE, - 0xEB, - 0xE5, - 0xE5, - 0xEB, - 0xE5, - 0xEB, - 0xEE, - 0xDE, - 0xEB, - 0xE5, - 0xEE, - 0xDE, - 0xEE, - 0xE5, - 0xDE, - 0xEE, - 0xEE, - 0xEE, - 0xE5, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xE5, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xEA, - 0xE5, - 0x00, - 0x04, - 0xDD, - 0x00, - 0x12, - 0xDE, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xEB, - 0xDE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xEE, - 0xE9, - 0xEB, - 0x05, - 0xE9, - 0x00, - 0x26, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xF5, - 0xA0, - 0x93, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0x9E, - 0xA4, - 0x90, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x8B, - 0xA0, - 0xAB, - 0x93, - 0x93, - 0x9E, - 0x04, - 0x85, - 0x00, - 0x21, - 0x7E, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7C, - 0x7E, - 0x7C, - 0x7E, - 0x6E, - 0x77, - 0x75, - 0x87, - 0x7E, - 0x75, - 0x77, - 0x7E, - 0x6E, - 0x77, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x80, - 0x88, - 0x85, - 0x88, - 0x85, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x7C, - 0x88, - 0x75, - 0x7E, - 0x6E, - 0x77, - 0x68, - 0x6A, - 0x61, - 0x66, - 0x43, - 0x43, - 0x47, - 0x53, - 0x54, - 0x47, - 0x42, - 0x54, - 0x47, - 0x54, - 0x42, - 0x47, - 0x58, - 0x47, - 0x2B, - 0x25, - 0x31, - 0x1D, - 0x1A, - 0x25, - 0x34, - 0x30, - 0x34, - 0x25, - 0x38, - 0x2B, - 0x3A, - 0x30, - 0x2C, - 0x27, - 0x1D, - 0x3B, - 0x27, - 0x47, - 0x3A, - 0x42, - 0x34, - 0x42, - 0x3D, - 0x38, - 0x42, - 0x27, - 0x38, - 0x38, - 0x2C, - 0x45, - 0x45, - 0x45, - 0x53, - 0x08, - 0x43, - 0x0C, - 0x3D, - 0x31, - 0x0C, - 0x30, - 0x30, - 0x42, - 0x20, - 0x47, - 0x37, - 0x1A, - 0x31, - 0x21, - 0x17, - 0x31, - 0x2B, - 0x21, - 0x2B, - 0x3B, - 0x2B, - 0x38, - 0x21, - 0x1D, - 0x1A, - 0x27, - 0x3B, - 0x3B, - 0x47, - 0x42, - 0x38, - 0x3D, - 0x38, - 0x3B, - 0x27, - 0x38, - 0x38, - 0x38, - 0x20, - 0x18, - 0x07, - 0x38, - 0x20, - 0x20, - 0x20, - 0x30, - 0x45, - 0x20, - 0x27, - 0x42, - 0x20, - 0x0C, - 0x27, - 0x3B, - 0x27, - 0x45, - 0x45, - 0x45, - 0x2C, - 0x27, - 0x00, - 0x00, - 0x01, - 0xBE, - 0x04, - 0xD8, - 0x00, - 0x04, - 0xDF, - 0xDF, - 0xDF, - 0xD8, - 0x04, - 0xDF, - 0x00, - 0x25, - 0xCE, - 0xDF, - 0xE0, - 0xE0, - 0xDF, - 0xE0, - 0xE0, - 0xCE, - 0xE2, - 0xCE, - 0xE1, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE9, - 0xE1, - 0xED, - 0xE2, - 0xDC, - 0xE9, - 0xD6, - 0xED, - 0xE9, - 0xE9, - 0xE6, - 0xEB, - 0xDC, - 0xEB, - 0xE9, - 0x00, - 0x06, - 0xEB, - 0x00, - 0x24, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xDE, - 0xDE, - 0xDE, - 0xEB, - 0xEB, - 0xE5, - 0xDE, - 0xEE, - 0xEB, - 0xEE, - 0xE5, - 0xEB, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEE, - 0xDD, - 0xDD, - 0xEE, - 0x04, - 0xDE, - 0x00, - 0x22, - 0xEB, - 0xDE, - 0xDE, - 0xEB, - 0xEB, - 0xEE, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xE9, - 0xE9, - 0xEF, - 0xE9, - 0xEF, - 0xEF, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xB4, - 0x9E, - 0x9E, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xB7, - 0x05, - 0xAD, - 0x00, - 0x37, - 0xB7, - 0xAB, - 0x90, - 0xAB, - 0x9E, - 0x9D, - 0x8B, - 0x91, - 0x9E, - 0x93, - 0x91, - 0x93, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x93, - 0x85, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x7E, - 0x88, - 0x75, - 0x6E, - 0x7E, - 0x6E, - 0x87, - 0x7E, - 0x7E, - 0x6E, - 0x6E, - 0x6A, - 0x7E, - 0x77, - 0x6E, - 0x7C, - 0x75, - 0x75, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x15, - 0x85, - 0x7E, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x75, - 0x88, - 0x7C, - 0x6E, - 0x6E, - 0x72, - 0x61, - 0x77, - 0x61, - 0x5A, - 0x43, - 0x5A, - 0x47, - 0x47, - 0x54, - 0x00, - 0x06, - 0x47, - 0x00, - 0x63, - 0x45, - 0x45, - 0x3F, - 0x43, - 0x1A, - 0x21, - 0x25, - 0x2B, - 0x25, - 0x2B, - 0x2C, - 0x0C, - 0x48, - 0x27, - 0x3A, - 0x1D, - 0x3A, - 0x3A, - 0x25, - 0x30, - 0x34, - 0x1D, - 0x47, - 0x47, - 0x42, - 0x3D, - 0x3F, - 0x38, - 0x42, - 0x38, - 0x38, - 0x38, - 0x45, - 0x27, - 0x27, - 0x3B, - 0x45, - 0x45, - 0x0C, - 0x31, - 0x18, - 0x31, - 0x21, - 0x0C, - 0x30, - 0x30, - 0x42, - 0x3D, - 0x17, - 0x37, - 0x37, - 0x1A, - 0x31, - 0x21, - 0x17, - 0x21, - 0x2B, - 0x0C, - 0x37, - 0x27, - 0x37, - 0x30, - 0x18, - 0x1D, - 0x2C, - 0x37, - 0x3A, - 0x47, - 0x45, - 0x37, - 0x42, - 0x3D, - 0x27, - 0x3B, - 0x27, - 0x45, - 0x3D, - 0x20, - 0x18, - 0x08, - 0x38, - 0x20, - 0x20, - 0x20, - 0x38, - 0x38, - 0x27, - 0x27, - 0x3B, - 0x38, - 0x23, - 0x27, - 0x38, - 0x27, - 0x1D, - 0x45, - 0x66, - 0x3B, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0xFA, - 0xD8, - 0xD8, - 0xD8, - 0xDF, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xDF, - 0xCE, - 0xDF, - 0xDF, - 0xDF, - 0xE0, - 0xE0, - 0xCE, - 0xE0, - 0xCE, - 0xCE, - 0xCE, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xD4, - 0x04, - 0xE2, - 0x00, - 0x1D, - 0xE1, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xE9, - 0xE1, - 0xED, - 0xE9, - 0xDC, - 0xE9, - 0xE9, - 0xDC, - 0xDC, - 0xEB, - 0xE9, - 0xDB, - 0xEB, - 0xDB, - 0xEB, - 0xDB, - 0xEB, - 0xEE, - 0xEB, - 0xDE, - 0xEB, - 0x00, - 0x06, - 0xDE, - 0x00, - 0x24, - 0xEE, - 0xE5, - 0xEE, - 0xE5, - 0xEE, - 0xDE, - 0xE5, - 0xEE, - 0xDB, - 0xDE, - 0xEE, - 0xE5, - 0xDD, - 0xDD, - 0xE5, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xE5, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xEA, - 0xDD, - 0xEE, - 0xEE, - 0xDE, - 0xE5, - 0xDE, - 0xDD, - 0xEB, - 0xDD, - 0xDE, - 0xEE, - 0x06, - 0xEB, - 0x00, - 0x2F, - 0xE9, - 0xE9, - 0xE9, - 0xED, - 0xF6, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xEF, - 0xB4, - 0x9E, - 0x9E, - 0x9E, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0x9D, - 0x9E, - 0x9D, - 0x8B, - 0x9E, - 0x93, - 0x91, - 0x91, - 0x8B, - 0x9E, - 0xA0, - 0xAB, - 0xA0, - 0x85, - 0x93, - 0x85, - 0x93, - 0x00, - 0x05, - 0x7C, - 0x00, - 0xA1, - 0x75, - 0x7C, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x7E, - 0x88, - 0x7E, - 0x91, - 0x75, - 0x6E, - 0x6E, - 0x87, - 0x7E, - 0x7E, - 0x92, - 0x6E, - 0x77, - 0x6A, - 0x77, - 0x7E, - 0x6A, - 0x75, - 0x6E, - 0x6E, - 0x6E, - 0x7C, - 0x6E, - 0x7E, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x6E, - 0x7E, - 0x7C, - 0x75, - 0x7C, - 0x77, - 0x6A, - 0x6E, - 0x68, - 0x6A, - 0x61, - 0x65, - 0x43, - 0x5A, - 0x43, - 0x54, - 0x54, - 0x54, - 0x42, - 0x47, - 0x47, - 0x42, - 0x47, - 0x47, - 0x47, - 0x3F, - 0x34, - 0x25, - 0x25, - 0x21, - 0x25, - 0x2B, - 0x34, - 0x42, - 0x21, - 0x30, - 0x30, - 0x30, - 0x42, - 0x3D, - 0x30, - 0x2B, - 0x3A, - 0x27, - 0x34, - 0x27, - 0x34, - 0x3D, - 0x3D, - 0x1D, - 0x48, - 0x25, - 0x42, - 0x38, - 0x3B, - 0x38, - 0x45, - 0x38, - 0x2C, - 0x45, - 0x3B, - 0x47, - 0x0C, - 0x1D, - 0x0C, - 0x2B, - 0x2E, - 0x2E, - 0x3D, - 0x30, - 0x42, - 0x25, - 0x37, - 0x31, - 0x43, - 0x1A, - 0x31, - 0x1D, - 0x31, - 0x17, - 0x18, - 0x2B, - 0x37, - 0x25, - 0x3A, - 0x2C, - 0x1D, - 0x2C, - 0x3B, - 0x34, - 0x53, - 0x47, - 0x3A, - 0x3A, - 0x38, - 0x38, - 0x27, - 0x3B, - 0x3B, - 0x45, - 0x1A, - 0x13, - 0x08, - 0x20, - 0x30, - 0x20, - 0x27, - 0x38, - 0x42, - 0x27, - 0x25, - 0x3B, - 0x38, - 0x1A, - 0x38, - 0x27, - 0x20, - 0x18, - 0x5F, - 0x5F, - 0x20, - 0x02, - 0x00, - 0x00, - 0x00, - 0x01, - 0xBE, - 0x05, - 0xD8, - 0x01, - 0xDF, - 0x01, - 0xD8, - 0x04, - 0xDF, - 0x00, - 0x44, - 0xE0, - 0xCE, - 0xDF, - 0xCE, - 0xE0, - 0xCE, - 0xE0, - 0xE0, - 0xE0, - 0xE2, - 0xD4, - 0xE0, - 0xE0, - 0xE2, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xED, - 0xE1, - 0xE6, - 0xED, - 0xD6, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xE9, - 0xE6, - 0xE9, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xDB, - 0xE5, - 0xEB, - 0xDE, - 0xDE, - 0xEE, - 0xDE, - 0xE5, - 0xEB, - 0xDE, - 0xDE, - 0xE5, - 0xEE, - 0xE5, - 0xDE, - 0xEE, - 0xDD, - 0xE5, - 0xDE, - 0xE5, - 0xDD, - 0xE5, - 0x04, - 0xDD, - 0x00, - 0x07, - 0xEA, - 0xDD, - 0xEA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0x00, - 0x07, - 0xDE, - 0x00, - 0x0A, - 0xEB, - 0xEE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0x04, - 0xE9, - 0x00, - 0x0A, - 0xEF, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xE0, - 0xF6, - 0xAB, - 0x9E, - 0xAB, - 0x05, - 0xA4, - 0x00, - 0xC1, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAB, - 0x90, - 0xA4, - 0x90, - 0xA0, - 0x91, - 0x93, - 0x9E, - 0x91, - 0xA0, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x88, - 0x7C, - 0x7C, - 0x7E, - 0x7C, - 0x75, - 0x75, - 0x6E, - 0x7C, - 0x6E, - 0x6A, - 0x75, - 0x75, - 0x7E, - 0x75, - 0x7C, - 0x87, - 0x7C, - 0x7E, - 0x75, - 0x85, - 0x7E, - 0x6E, - 0x75, - 0x87, - 0x7E, - 0x7E, - 0x88, - 0x77, - 0x6A, - 0x77, - 0x7E, - 0x72, - 0x6A, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x7C, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x6A, - 0x6A, - 0x61, - 0x61, - 0x68, - 0x51, - 0x71, - 0x5A, - 0x37, - 0x50, - 0x58, - 0x3A, - 0x54, - 0x54, - 0x38, - 0x47, - 0x47, - 0x53, - 0x3B, - 0x43, - 0x43, - 0x1A, - 0x2E, - 0x31, - 0x1D, - 0x2E, - 0x25, - 0x2B, - 0x2B, - 0x1A, - 0x3A, - 0x38, - 0x3D, - 0x30, - 0x3D, - 0x3A, - 0x25, - 0x30, - 0x30, - 0x2B, - 0x27, - 0x2C, - 0x2C, - 0x42, - 0x3D, - 0x3D, - 0x27, - 0x38, - 0x27, - 0x38, - 0x38, - 0x3B, - 0x45, - 0x42, - 0x45, - 0x38, - 0x42, - 0x0C, - 0x3F, - 0x21, - 0x34, - 0x31, - 0x18, - 0x25, - 0x3D, - 0x3D, - 0x1A, - 0x37, - 0x37, - 0x17, - 0x31, - 0x17, - 0x21, - 0x17, - 0x37, - 0x21, - 0x2B, - 0x31, - 0x1D, - 0x2B, - 0x3B, - 0x2C, - 0x2C, - 0x2B, - 0x2C, - 0x38, - 0x53, - 0x47, - 0x30, - 0x38, - 0x2C, - 0x2C, - 0x38, - 0x20, - 0x2C, - 0x3B, - 0x13, - 0x08, - 0x38, - 0x38, - 0x20, - 0x20, - 0x2C, - 0x3B, - 0x27, - 0x30, - 0x45, - 0x3B, - 0x20, - 0x42, - 0x3B, - 0x1A, - 0x23, - 0x5F, - 0x5F, - 0x07, - 0x01, - 0x00, - 0x00, - 0x00, - 0x05, - 0xD8, - 0x00, - 0x0A, - 0xC6, - 0xDF, - 0xD8, - 0xD8, - 0xDF, - 0xDF, - 0xCE, - 0xDF, - 0xCE, - 0xDF, - 0x04, - 0xE0, - 0x00, - 0x26, - 0xCE, - 0xCE, - 0xCE, - 0xE2, - 0xCE, - 0xE2, - 0xD4, - 0xE1, - 0xD4, - 0xE1, - 0xE2, - 0xE2, - 0xE2, - 0xE1, - 0xEF, - 0xE2, - 0xEF, - 0xD6, - 0xE1, - 0xE9, - 0xE1, - 0xE9, - 0xD6, - 0xED, - 0xE9, - 0xED, - 0xE6, - 0xE9, - 0xE6, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xEB, - 0xDE, - 0xEB, - 0xE6, - 0x05, - 0xDE, - 0x00, - 0x27, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xE5, - 0xEE, - 0xE5, - 0xEB, - 0xEB, - 0xE5, - 0xE5, - 0xDD, - 0xDE, - 0xE5, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xDA, - 0xEA, - 0xE5, - 0xDD, - 0xDE, - 0xDD, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xEE, - 0xDE, - 0xDE, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x10, - 0xE9, - 0xE9, - 0xE9, - 0xED, - 0xEB, - 0xF6, - 0xEF, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xB4, - 0x9E, - 0x9E, - 0x04, - 0xA4, - 0x00, - 0x44, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xA4, - 0xAB, - 0x90, - 0x9D, - 0xAB, - 0xAB, - 0x93, - 0x93, - 0x93, - 0x91, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x9E, - 0x93, - 0x7C, - 0x7C, - 0x91, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x75, - 0x77, - 0x75, - 0x7E, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x6E, - 0x75, - 0x7E, - 0x77, - 0x61, - 0x6E, - 0x87, - 0x75, - 0x61, - 0x6E, - 0x7C, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x7C, - 0x04, - 0x6E, - 0x01, - 0x6A, - 0x06, - 0x6E, - 0x00, - 0x73, - 0x61, - 0x68, - 0x61, - 0x61, - 0x62, - 0x5A, - 0x43, - 0x54, - 0x63, - 0x54, - 0x54, - 0x42, - 0x47, - 0x47, - 0x47, - 0x5F, - 0x25, - 0x43, - 0x1A, - 0x37, - 0x21, - 0x1A, - 0x31, - 0x25, - 0x25, - 0x3A, - 0x42, - 0x1A, - 0x58, - 0x27, - 0x30, - 0x42, - 0x44, - 0x2B, - 0x30, - 0x2B, - 0x50, - 0x2B, - 0x30, - 0x27, - 0x2B, - 0x48, - 0x42, - 0x38, - 0x3D, - 0x1A, - 0x42, - 0x27, - 0x38, - 0x3B, - 0x45, - 0x2C, - 0x3B, - 0x54, - 0x3D, - 0x3F, - 0x0C, - 0x34, - 0x31, - 0x30, - 0x0C, - 0x2E, - 0x3A, - 0x3D, - 0x42, - 0x1D, - 0x25, - 0x43, - 0x21, - 0x2B, - 0x21, - 0x34, - 0x17, - 0x21, - 0x31, - 0x2B, - 0x21, - 0x2B, - 0x2C, - 0x3B, - 0x1D, - 0x43, - 0x3A, - 0x48, - 0x45, - 0x42, - 0x27, - 0x27, - 0x27, - 0x38, - 0x3B, - 0x1A, - 0x38, - 0x45, - 0x23, - 0x07, - 0x2C, - 0x20, - 0x20, - 0x2E, - 0x2C, - 0x3B, - 0x20, - 0x27, - 0x3B, - 0x53, - 0x20, - 0x38, - 0x38, - 0x20, - 0x20, - 0x66, - 0x27, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xBE, - 0xBD, - 0xF4, - 0x00, - 0x04, - 0xD8, - 0x05, - 0xDF, - 0x00, - 0x15, - 0xCE, - 0xDF, - 0xCE, - 0xCE, - 0xDF, - 0xCE, - 0xCE, - 0xE0, - 0xE2, - 0xCE, - 0xCE, - 0xE2, - 0xCE, - 0xE2, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xCA, - 0xE1, - 0xE2, - 0x00, - 0x04, - 0xE1, - 0x00, - 0x5D, - 0xE9, - 0xE1, - 0xE9, - 0xEF, - 0xE9, - 0xDC, - 0xED, - 0xED, - 0xDC, - 0xDC, - 0xEB, - 0xE6, - 0xDC, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xEB, - 0xDB, - 0xDE, - 0xDB, - 0xEB, - 0xDB, - 0xDB, - 0xEE, - 0xDE, - 0xE5, - 0xEB, - 0xE5, - 0xEB, - 0xE5, - 0xEE, - 0xE5, - 0xDE, - 0xE5, - 0xDE, - 0xE5, - 0xEE, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xDD, - 0xDA, - 0xEA, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0xE5, - 0xEE, - 0xE5, - 0xDD, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xEE, - 0xEE, - 0xDE, - 0xDE, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xEB, - 0xE9, - 0xED, - 0xE9, - 0xF6, - 0xE9, - 0xEF, - 0xEF, - 0xF6, - 0xF6, - 0xE0, - 0xF6, - 0xEF, - 0x90, - 0x9E, - 0x9E, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0x9D, - 0xAD, - 0x00, - 0x06, - 0xB7, - 0x00, - 0xB8, - 0xAB, - 0xAB, - 0x9E, - 0xAD, - 0xAB, - 0x9E, - 0x93, - 0xA0, - 0x9E, - 0x93, - 0x9E, - 0xA0, - 0xAB, - 0xA0, - 0x93, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x85, - 0x91, - 0x75, - 0x88, - 0x75, - 0x7C, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x7E, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x75, - 0x7C, - 0x75, - 0x6E, - 0x75, - 0x7E, - 0x7C, - 0x6A, - 0x7E, - 0x75, - 0x75, - 0x61, - 0x77, - 0x75, - 0x6A, - 0x61, - 0x75, - 0x75, - 0x61, - 0x6A, - 0x6E, - 0x6A, - 0x6E, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x6E, - 0x6A, - 0x6A, - 0x6E, - 0x6E, - 0x61, - 0x6A, - 0x61, - 0x61, - 0x68, - 0x51, - 0x6F, - 0x45, - 0x58, - 0x50, - 0x63, - 0x54, - 0x37, - 0x50, - 0x3B, - 0x42, - 0x47, - 0x53, - 0x34, - 0x1D, - 0x3D, - 0x1D, - 0x34, - 0x2B, - 0x31, - 0x25, - 0x34, - 0x30, - 0x38, - 0x1D, - 0x27, - 0x47, - 0x30, - 0x30, - 0x2C, - 0x3D, - 0x3A, - 0x30, - 0x2E, - 0x2B, - 0x43, - 0x3B, - 0x37, - 0x34, - 0x42, - 0x42, - 0x20, - 0x48, - 0x38, - 0x42, - 0x38, - 0x3B, - 0x38, - 0x45, - 0x45, - 0x47, - 0x30, - 0x30, - 0x1D, - 0x21, - 0x1D, - 0x34, - 0x23, - 0x23, - 0x34, - 0x30, - 0x38, - 0x25, - 0x47, - 0x2B, - 0x25, - 0x1D, - 0x31, - 0x17, - 0x21, - 0x17, - 0x18, - 0x21, - 0x2B, - 0x34, - 0x2C, - 0x47, - 0x25, - 0x48, - 0x3F, - 0x3A, - 0x54, - 0x2C, - 0x3B, - 0x2C, - 0x20, - 0x38, - 0x3A, - 0x20, - 0x45, - 0x38, - 0x27, - 0x04, - 0x45, - 0x27, - 0x20, - 0x20, - 0x38, - 0x38, - 0x27, - 0x27, - 0x45, - 0x47, - 0x38, - 0x27, - 0x45, - 0x27, - 0x42, - 0x5F, - 0x02, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD8, - 0xD8, - 0xBE, - 0x00, - 0x04, - 0xD8, - 0x00, - 0x09, - 0xDF, - 0xC6, - 0xDF, - 0xCE, - 0xDF, - 0xDF, - 0xDF, - 0xCE, - 0xDF, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x2A, - 0xE0, - 0xCE, - 0xE0, - 0xD4, - 0xE0, - 0xD4, - 0xCE, - 0xE1, - 0xE2, - 0xE2, - 0xE1, - 0xE2, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xEF, - 0xEF, - 0xE1, - 0xD6, - 0xDC, - 0xE1, - 0xED, - 0xDC, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xE6, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xEB, - 0xDB, - 0xE6, - 0xE6, - 0xDB, - 0xDE, - 0xEB, - 0xDB, - 0xEB, - 0x04, - 0xDE, - 0x00, - 0x2F, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xDB, - 0xEB, - 0xE5, - 0xDE, - 0xDB, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xE5, - 0xEA, - 0xDD, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xEB, - 0xEE, - 0xEE, - 0xEB, - 0xEB, - 0xE6, - 0xE9, - 0xEB, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0xE9, - 0xF6, - 0xEF, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x0D, - 0xE0, - 0xE9, - 0xC9, - 0x93, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x00, - 0x05, - 0xB7, - 0x00, - 0x1B, - 0xB4, - 0xAB, - 0x9E, - 0xA4, - 0xAD, - 0x9E, - 0x9E, - 0x93, - 0x9E, - 0x9E, - 0xA0, - 0xA0, - 0x9E, - 0xA0, - 0xAB, - 0x9E, - 0xAB, - 0x91, - 0x85, - 0xA0, - 0x8B, - 0x88, - 0x85, - 0x6E, - 0x85, - 0x7E, - 0x75, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x9A, - 0x75, - 0x75, - 0x6E, - 0x7C, - 0x77, - 0x75, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x85, - 0x7E, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x6A, - 0x6E, - 0x7E, - 0x61, - 0x7E, - 0x75, - 0x6E, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x6E, - 0x61, - 0x6A, - 0x6A, - 0x61, - 0x6A, - 0x6A, - 0x6A, - 0x61, - 0x6A, - 0x61, - 0x68, - 0x5E, - 0x61, - 0x61, - 0x62, - 0x58, - 0x5A, - 0x58, - 0x6B, - 0x54, - 0x54, - 0x42, - 0x50, - 0x47, - 0x47, - 0x5A, - 0x25, - 0x27, - 0x20, - 0x21, - 0x25, - 0x25, - 0x25, - 0x34, - 0x25, - 0x3A, - 0x54, - 0x18, - 0x38, - 0x30, - 0x3D, - 0x3D, - 0x30, - 0x30, - 0x2B, - 0x25, - 0x3F, - 0x48, - 0x30, - 0x53, - 0x53, - 0x07, - 0x2B, - 0x42, - 0x48, - 0x1A, - 0x42, - 0x2C, - 0x42, - 0x38, - 0x3B, - 0x38, - 0x53, - 0x38, - 0x3A, - 0x34, - 0x2E, - 0x1A, - 0x31, - 0x34, - 0x3D, - 0x0C, - 0x2E, - 0x30, - 0x38, - 0x42, - 0x1D, - 0x34, - 0x3F, - 0x17, - 0x17, - 0x18, - 0x21, - 0x17, - 0x2B, - 0x1D, - 0x17, - 0x21, - 0x2C, - 0x3B, - 0x3A, - 0x34, - 0x34, - 0x47, - 0x45, - 0x2C, - 0x27, - 0x2C, - 0x3A, - 0x3B, - 0x47, - 0x42, - 0x38, - 0x38, - 0x1A, - 0x13, - 0x3B, - 0x20, - 0x30, - 0x30, - 0x3A, - 0x45, - 0x38, - 0x3A, - 0x45, - 0x45, - 0x30, - 0x27, - 0x5F, - 0x38, - 0x45, - 0x20, - 0x00, - 0x03, - 0x02, - 0x00, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xBE, - 0x04, - 0xD8, - 0x00, - 0x29, - 0xC6, - 0xD8, - 0xDF, - 0xDF, - 0xD8, - 0xDF, - 0xC8, - 0xE0, - 0xDF, - 0xCE, - 0xCE, - 0xE0, - 0xE0, - 0xCE, - 0xCE, - 0xE0, - 0xD4, - 0xE0, - 0xE2, - 0xCE, - 0xE1, - 0xE0, - 0xE1, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xEF, - 0xED, - 0xE1, - 0xE1, - 0xD6, - 0xE9, - 0xE1, - 0xE1, - 0xE6, - 0xDC, - 0xEF, - 0xDC, - 0xE6, - 0xDC, - 0x00, - 0x06, - 0xE6, - 0x00, - 0x91, - 0xDB, - 0xE6, - 0xEB, - 0xDB, - 0xE6, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xDE, - 0xDB, - 0xE5, - 0xDE, - 0xEB, - 0xEB, - 0xDB, - 0xE5, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xDE, - 0xDE, - 0xDD, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xEA, - 0xDD, - 0xE5, - 0xDD, - 0xDD, - 0xDE, - 0xEE, - 0xDE, - 0xDD, - 0xE5, - 0xEE, - 0xDE, - 0xDE, - 0xEE, - 0xEE, - 0xE5, - 0xEB, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xED, - 0xED, - 0xEF, - 0xF6, - 0xE9, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xE9, - 0xC9, - 0xA4, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xB4, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0x9E, - 0x93, - 0x9E, - 0xA0, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0x93, - 0x91, - 0xA0, - 0x85, - 0x7E, - 0x7C, - 0x87, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x6E, - 0x6E, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x7E, - 0x6E, - 0x75, - 0x7E, - 0x6E, - 0x6E, - 0x61, - 0x75, - 0x75, - 0x6A, - 0x6A, - 0x75, - 0x75, - 0x77, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x6A, - 0x61, - 0x6A, - 0x00, - 0x04, - 0x61, - 0x00, - 0x76, - 0x6A, - 0x61, - 0x61, - 0x5E, - 0x68, - 0x51, - 0x61, - 0x60, - 0x6B, - 0x43, - 0x43, - 0x58, - 0x58, - 0x47, - 0x50, - 0x47, - 0x47, - 0x3B, - 0x63, - 0x2B, - 0x37, - 0x1A, - 0x1D, - 0x31, - 0x31, - 0x25, - 0x2B, - 0x34, - 0x38, - 0x38, - 0x1D, - 0x47, - 0x38, - 0x30, - 0x27, - 0x3D, - 0x3A, - 0x3D, - 0x3A, - 0x2B, - 0x30, - 0x25, - 0x47, - 0x47, - 0x18, - 0x04, - 0x37, - 0x3B, - 0x34, - 0x25, - 0x42, - 0x38, - 0x42, - 0x27, - 0x3B, - 0x45, - 0x42, - 0x3A, - 0x34, - 0x3D, - 0x21, - 0x17, - 0x25, - 0x2E, - 0x30, - 0x18, - 0x30, - 0x30, - 0x42, - 0x1A, - 0x43, - 0x17, - 0x2B, - 0x21, - 0x37, - 0x17, - 0x37, - 0x0C, - 0x31, - 0x21, - 0x25, - 0x3B, - 0x47, - 0x48, - 0x21, - 0x3A, - 0x30, - 0x2B, - 0x3B, - 0x38, - 0x38, - 0x38, - 0x42, - 0x30, - 0x42, - 0x30, - 0x30, - 0x23, - 0x1A, - 0x27, - 0x30, - 0x2E, - 0x30, - 0x3B, - 0x3B, - 0x38, - 0x30, - 0x45, - 0x47, - 0x30, - 0x17, - 0x45, - 0x27, - 0x3B, - 0x04, - 0x01, - 0x01, - 0x09, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xBD, - 0xD8, - 0xBE, - 0xFA, - 0xD8, - 0xD8, - 0xC6, - 0xDF, - 0xC6, - 0xDF, - 0xD8, - 0xC8, - 0xDF, - 0xDF, - 0xC8, - 0xDF, - 0xDF, - 0xE0, - 0xCE, - 0xCE, - 0xE0, - 0xCE, - 0xCE, - 0xCE, - 0xE2, - 0xE2, - 0xCE, - 0xD4, - 0xD4, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x29, - 0xCA, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0xE1, - 0xE9, - 0xD6, - 0xEF, - 0xED, - 0xD6, - 0xE9, - 0xDC, - 0xE9, - 0xE6, - 0xE6, - 0xDC, - 0xE6, - 0xDB, - 0xE6, - 0xDB, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xDB, - 0xEB, - 0xDE, - 0xDE, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0x00, - 0x05, - 0xE5, - 0x00, - 0x2E, - 0xDA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xDD, - 0xDD, - 0xE5, - 0xEA, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xDD, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xE5, - 0xEE, - 0xEB, - 0xF8, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xEB, - 0xE9, - 0xE9, - 0xEF, - 0xED, - 0xED, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xDE, - 0xC9, - 0xA0, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0x04, - 0x9D, - 0x00, - 0x45, - 0xA4, - 0xB7, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xAB, - 0xA4, - 0xAB, - 0x9E, - 0x93, - 0xAB, - 0x9D, - 0x93, - 0x93, - 0xAB, - 0x9E, - 0xAB, - 0xAB, - 0xA0, - 0x93, - 0x9E, - 0x9E, - 0x88, - 0x91, - 0x88, - 0x7E, - 0x85, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x6E, - 0x7C, - 0x6E, - 0x7E, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7C, - 0x6E, - 0x85, - 0x6E, - 0x7C, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x7E, - 0x6E, - 0x7C, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x61, - 0x61, - 0x77, - 0x6A, - 0x61, - 0x6A, - 0x6A, - 0x68, - 0x00, - 0x06, - 0x61, - 0x00, - 0x74, - 0x5E, - 0x61, - 0x5E, - 0x51, - 0x5E, - 0x65, - 0x5A, - 0x54, - 0x43, - 0x50, - 0x63, - 0x53, - 0x48, - 0x47, - 0x47, - 0x58, - 0x50, - 0x43, - 0x42, - 0x2B, - 0x31, - 0x25, - 0x31, - 0x2B, - 0x30, - 0x30, - 0x38, - 0x47, - 0x20, - 0x27, - 0x42, - 0x42, - 0x3D, - 0x3D, - 0x30, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x48, - 0x27, - 0x3B, - 0x47, - 0x01, - 0x21, - 0x3B, - 0x3D, - 0x30, - 0x1D, - 0x3B, - 0x3B, - 0x3B, - 0x3A, - 0x5F, - 0x47, - 0x47, - 0x30, - 0x3D, - 0x2E, - 0x17, - 0x31, - 0x34, - 0x30, - 0x0C, - 0x20, - 0x27, - 0x38, - 0x2C, - 0x17, - 0x37, - 0x2B, - 0x25, - 0x21, - 0x17, - 0x18, - 0x21, - 0x31, - 0x17, - 0x17, - 0x31, - 0x42, - 0x3A, - 0x30, - 0x34, - 0x37, - 0x1A, - 0x38, - 0x3A, - 0x42, - 0x38, - 0x3A, - 0x48, - 0x38, - 0x21, - 0x30, - 0x18, - 0x38, - 0x1A, - 0x30, - 0x30, - 0x3A, - 0x3B, - 0x45, - 0x38, - 0x38, - 0x53, - 0x42, - 0x0C, - 0x17, - 0x45, - 0x38, - 0x20, - 0x00, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x09, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xD8, - 0xC6, - 0x00, - 0x04, - 0xDF, - 0x01, - 0xCE, - 0x01, - 0xDF, - 0x05, - 0xCE, - 0x00, - 0x55, - 0xE0, - 0xCE, - 0xD4, - 0xE0, - 0xD4, - 0xCE, - 0xCE, - 0xE2, - 0xE2, - 0xD4, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE1, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xD6, - 0xE9, - 0xD6, - 0xE9, - 0xE9, - 0xE6, - 0xED, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xE6, - 0xE6, - 0xDB, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xDB, - 0xDB, - 0xDB, - 0xDE, - 0xE5, - 0xDB, - 0xE5, - 0xDE, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0xE5, - 0xE5, - 0xE5, - 0xDB, - 0xE5, - 0xE5, - 0xE5, - 0xEA, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xE5, - 0xE5, - 0xDA, - 0xDD, - 0xDD, - 0xDE, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xEE, - 0xEE, - 0xDD, - 0xDE, - 0xE5, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x04, - 0xE9, - 0x00, - 0x17, - 0xEF, - 0xF6, - 0xED, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xEF, - 0x92, - 0xA0, - 0xC9, - 0x93, - 0x9E, - 0x9E, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0xA4, - 0xB7, - 0xB7, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x3F, - 0xAB, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0x93, - 0xAB, - 0x93, - 0x9E, - 0x93, - 0x9E, - 0x9E, - 0x9E, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x9E, - 0x91, - 0x88, - 0x8B, - 0x7C, - 0xA0, - 0x85, - 0x75, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x6E, - 0x75, - 0x88, - 0x6E, - 0x7C, - 0x7C, - 0x6E, - 0x6E, - 0x75, - 0x7C, - 0x8B, - 0x6E, - 0x7C, - 0x6A, - 0x6E, - 0x6E, - 0x75, - 0x6A, - 0x7C, - 0x6E, - 0x75, - 0x77, - 0x6E, - 0x7C, - 0x61, - 0x61, - 0x87, - 0x61, - 0x61, - 0x61, - 0x72, - 0x61, - 0x6A, - 0x00, - 0x04, - 0x61, - 0x00, - 0x75, - 0x5E, - 0x5E, - 0x5E, - 0x51, - 0x5E, - 0x60, - 0x59, - 0x58, - 0x59, - 0x3F, - 0x37, - 0x63, - 0x47, - 0x54, - 0x47, - 0x50, - 0x53, - 0x54, - 0x2B, - 0x48, - 0x31, - 0x2B, - 0x34, - 0x2B, - 0x25, - 0x34, - 0x3A, - 0x38, - 0x53, - 0x17, - 0x45, - 0x27, - 0x38, - 0x42, - 0x42, - 0x3D, - 0x30, - 0x3D, - 0x2B, - 0x2B, - 0x30, - 0x47, - 0x27, - 0x2C, - 0x07, - 0x04, - 0x2B, - 0x38, - 0x2B, - 0x5F, - 0x27, - 0x45, - 0x2C, - 0x58, - 0x53, - 0x58, - 0x30, - 0x3F, - 0x30, - 0x30, - 0x25, - 0x20, - 0x25, - 0x30, - 0x30, - 0x1A, - 0x27, - 0x38, - 0x42, - 0x17, - 0x50, - 0x17, - 0x43, - 0x1A, - 0x34, - 0x17, - 0x31, - 0x21, - 0x18, - 0x21, - 0x3B, - 0x45, - 0x48, - 0x30, - 0x18, - 0x23, - 0x21, - 0x25, - 0x38, - 0x38, - 0x42, - 0x30, - 0x42, - 0x3D, - 0x30, - 0x20, - 0x13, - 0x45, - 0x18, - 0x30, - 0x30, - 0x30, - 0x2C, - 0x53, - 0x3A, - 0x38, - 0x3B, - 0x27, - 0x13, - 0x1D, - 0x66, - 0x38, - 0x07, - 0x01, - 0x01, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0xBE, - 0xBE, - 0xBE, - 0xD8, - 0xD8, - 0xD8, - 0xC6, - 0xDF, - 0xDF, - 0xC6, - 0xDF, - 0xC8, - 0xDF, - 0xDF, - 0xE0, - 0xC8, - 0x06, - 0xCE, - 0x00, - 0x0A, - 0xE0, - 0xCE, - 0xD4, - 0xCE, - 0xE2, - 0xD4, - 0xC3, - 0xE2, - 0xE2, - 0xE2, - 0x06, - 0xE1, - 0x00, - 0x25, - 0xED, - 0xE1, - 0xE1, - 0xE9, - 0xE9, - 0xD6, - 0xD6, - 0xE6, - 0xDC, - 0xE9, - 0xD6, - 0xE6, - 0xDC, - 0xE6, - 0xDC, - 0xE6, - 0xDB, - 0xDC, - 0xDC, - 0xDB, - 0xE6, - 0xDC, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xDE, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xE5, - 0x00, - 0x15, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xEA, - 0xDA, - 0xDD, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xDE, - 0xDD, - 0xE5, - 0xEE, - 0xEE, - 0xE5, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x15, - 0xED, - 0xE9, - 0xE9, - 0xED, - 0xED, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xE2, - 0xC9, - 0xC9, - 0x90, - 0xC9, - 0xA0, - 0xA0, - 0xA4, - 0x9E, - 0xA4, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x33, - 0xB7, - 0xB7, - 0xB4, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xB7, - 0x9E, - 0xAD, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0xA4, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0x9E, - 0x9E, - 0xA0, - 0x91, - 0x88, - 0xA0, - 0x7E, - 0x7E, - 0x88, - 0x7E, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x75, - 0x6E, - 0x7C, - 0x6E, - 0x7C, - 0x6E, - 0x75, - 0x7C, - 0x6E, - 0x00, - 0x04, - 0x75, - 0x00, - 0x88, - 0x7E, - 0x75, - 0x6A, - 0x75, - 0x6E, - 0x7C, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x6A, - 0x7C, - 0x61, - 0x6A, - 0x5E, - 0x6E, - 0x51, - 0x61, - 0x5E, - 0x5E, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x60, - 0x3F, - 0x50, - 0x44, - 0x31, - 0x17, - 0x59, - 0x58, - 0x48, - 0x42, - 0x53, - 0x5A, - 0x50, - 0x34, - 0x5A, - 0x2B, - 0x31, - 0x2B, - 0x2B, - 0x34, - 0x34, - 0x3A, - 0x42, - 0x45, - 0x17, - 0x47, - 0x38, - 0x3D, - 0x38, - 0x38, - 0x38, - 0x34, - 0x2B, - 0x34, - 0x34, - 0x34, - 0x47, - 0x37, - 0x37, - 0x1A, - 0x18, - 0x04, - 0x34, - 0x38, - 0x53, - 0x43, - 0x43, - 0x3B, - 0x2B, - 0x5F, - 0x58, - 0x42, - 0x30, - 0x30, - 0x30, - 0x2E, - 0x25, - 0x20, - 0x20, - 0x30, - 0x25, - 0x20, - 0x27, - 0x42, - 0x25, - 0x2C, - 0x34, - 0x17, - 0x1D, - 0x21, - 0x21, - 0x2B, - 0x0C, - 0x31, - 0x21, - 0x3B, - 0x3B, - 0x30, - 0x27, - 0x18, - 0x0C, - 0x13, - 0x1A, - 0x30, - 0x20, - 0x3A, - 0x47, - 0x42, - 0x42, - 0x27, - 0x23, - 0x13, - 0x2B, - 0x18, - 0x48, - 0x30, - 0x25, - 0x5F, - 0x47, - 0x38, - 0x38, - 0x27, - 0x13, - 0x07, - 0x2C, - 0x66, - 0x1A, - 0x02, - 0x01, - 0x04, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x11, - 0xF4, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xD8, - 0xD8, - 0xC6, - 0xDF, - 0xD8, - 0xDF, - 0xDF, - 0xC8, - 0xDF, - 0xCE, - 0xDF, - 0x00, - 0x05, - 0xCE, - 0x00, - 0x46, - 0xD4, - 0xCE, - 0xCE, - 0xE2, - 0xC3, - 0xE0, - 0xE0, - 0xE2, - 0xCA, - 0xCA, - 0xD4, - 0xE2, - 0xCA, - 0xE2, - 0xE1, - 0xED, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE9, - 0xE9, - 0xD6, - 0xDC, - 0xED, - 0xE6, - 0xE6, - 0xDC, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xDB, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xE5, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDD, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xE5, - 0xEA, - 0xDD, - 0xE5, - 0xDD, - 0xE5, - 0xEE, - 0xDD, - 0x05, - 0xE5, - 0x00, - 0x0E, - 0xEE, - 0xE5, - 0xEB, - 0xEE, - 0xEB, - 0xEB, - 0xDC, - 0xEB, - 0xE9, - 0xE9, - 0xED, - 0xED, - 0xF6, - 0xE9, - 0x04, - 0xF6, - 0x00, - 0x13, - 0xE9, - 0xC9, - 0x85, - 0x85, - 0xC9, - 0x92, - 0x9E, - 0x9E, - 0x9E, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0xB7, - 0xB4, - 0xB4, - 0xB7, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x0C, - 0xAB, - 0xAB, - 0xA0, - 0xB7, - 0xAB, - 0x9E, - 0xAB, - 0x93, - 0x9D, - 0x9E, - 0x9E, - 0xAB, - 0x04, - 0x9E, - 0x00, - 0x47, - 0x93, - 0x93, - 0x88, - 0x9E, - 0x7C, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x75, - 0x7E, - 0x7E, - 0x7E, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x7E, - 0x75, - 0x6E, - 0x75, - 0x6E, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x61, - 0x7C, - 0x6E, - 0x51, - 0x6E, - 0x61, - 0x61, - 0x6A, - 0x6E, - 0x83, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x51, - 0x51, - 0x5E, - 0x51, - 0x6D, - 0x31, - 0x48, - 0x59, - 0x52, - 0x07, - 0x23, - 0x48, - 0x47, - 0x50, - 0x47, - 0x5F, - 0x47, - 0x2B, - 0x59, - 0x21, - 0x31, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x5B, - 0x30, - 0x3A, - 0x3B, - 0x1D, - 0x3B, - 0x42, - 0x38, - 0x42, - 0x44, - 0x30, - 0x42, - 0x30, - 0x30, - 0x34, - 0x30, - 0x30, - 0x53, - 0x50, - 0x1A, - 0x0C, - 0x2C, - 0x17, - 0x2B, - 0x53, - 0x3B, - 0x3A, - 0x47, - 0x45, - 0x5A, - 0x53, - 0x47, - 0x3D, - 0x25, - 0x34, - 0x30, - 0x25, - 0x27, - 0x31, - 0x1D, - 0x30, - 0x20, - 0x30, - 0x38, - 0x38, - 0x0C, - 0x43, - 0x1D, - 0x31, - 0x17, - 0x21, - 0x0C, - 0x18, - 0x21, - 0x1A, - 0x1D, - 0x3B, - 0x2E, - 0x20, - 0x2B, - 0x20, - 0x20, - 0x0C, - 0x25, - 0x47, - 0x38, - 0x38, - 0x48, - 0x42, - 0x20, - 0x20, - 0x13, - 0x47, - 0x30, - 0x20, - 0x30, - 0x30, - 0x53, - 0x53, - 0x3A, - 0x20, - 0x20, - 0x08, - 0x08, - 0x66, - 0x66, - 0x0C, - 0x02, - 0x04, - 0x04, - 0x03, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x11, - 0xBD, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xC6, - 0xD8, - 0xC8, - 0xDF, - 0xC8, - 0xC8, - 0xC8, - 0xDF, - 0xCE, - 0xDF, - 0x00, - 0x08, - 0xCE, - 0x00, - 0x16, - 0xE2, - 0xD4, - 0xCE, - 0xE2, - 0xC3, - 0xE1, - 0xE0, - 0xE2, - 0xCA, - 0xE2, - 0xEF, - 0xE1, - 0xE1, - 0xE1, - 0xEF, - 0xE9, - 0xED, - 0xD6, - 0xE9, - 0xDC, - 0xE6, - 0xD6, - 0x04, - 0xDC, - 0x00, - 0x17, - 0xDE, - 0xDC, - 0xE6, - 0xE6, - 0xDC, - 0xE6, - 0xDB, - 0xD7, - 0xE6, - 0xDB, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDA, - 0xE5, - 0xDB, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xE5, - 0x00, - 0x3A, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xE5, - 0xE5, - 0xE5, - 0xDD, - 0xDA, - 0xE5, - 0xE5, - 0xEA, - 0xE5, - 0xE5, - 0xEE, - 0xEE, - 0xEE, - 0xDB, - 0xEE, - 0xE9, - 0xEB, - 0xEB, - 0xED, - 0xED, - 0xED, - 0xEF, - 0xE9, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xFD, - 0xC9, - 0x92, - 0xB4, - 0x91, - 0xE6, - 0xA0, - 0xA0, - 0x9E, - 0x9E, - 0x9E, - 0x9D, - 0x9E, - 0x90, - 0x90, - 0x9E, - 0xB7, - 0xB7, - 0xA0, - 0xAB, - 0xB4, - 0xAB, - 0x04, - 0xB4, - 0x00, - 0x14, - 0xAB, - 0xAB, - 0xAB, - 0xB7, - 0x9E, - 0x9E, - 0x9D, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0x9E, - 0x9E, - 0xA0, - 0x93, - 0xA0, - 0x7C, - 0x91, - 0x88, - 0x05, - 0x7E, - 0x00, - 0x27, - 0x6E, - 0x92, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x6E, - 0x87, - 0x88, - 0x7E, - 0x75, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x61, - 0x7E, - 0x7E, - 0x51, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x77, - 0x7E, - 0x68, - 0x6A, - 0x68, - 0x61, - 0x5E, - 0x00, - 0x04, - 0x51, - 0x00, - 0x6F, - 0x62, - 0x3F, - 0x63, - 0x6B, - 0x2B, - 0x31, - 0x07, - 0x18, - 0x3F, - 0x48, - 0x43, - 0x6B, - 0x37, - 0x31, - 0x43, - 0x31, - 0x34, - 0x34, - 0x2B, - 0x34, - 0x30, - 0x3A, - 0x3A, - 0x45, - 0x17, - 0x3B, - 0x3A, - 0x42, - 0x38, - 0x38, - 0x3D, - 0x30, - 0x2B, - 0x34, - 0x34, - 0x2B, - 0x47, - 0x27, - 0x3A, - 0x31, - 0x30, - 0x37, - 0x50, - 0x07, - 0x42, - 0x3A, - 0x50, - 0x2B, - 0x50, - 0x58, - 0x54, - 0x45, - 0x38, - 0x2E, - 0x27, - 0x30, - 0x25, - 0x30, - 0x20, - 0x25, - 0x20, - 0x38, - 0x20, - 0x27, - 0x38, - 0x1A, - 0x37, - 0x21, - 0x43, - 0x21, - 0x21, - 0x17, - 0x31, - 0x31, - 0x18, - 0x2B, - 0x27, - 0x1A, - 0x25, - 0x27, - 0x27, - 0x3B, - 0x3B, - 0x18, - 0x27, - 0x30, - 0x3A, - 0x47, - 0x30, - 0x3D, - 0x20, - 0x08, - 0x3B, - 0x30, - 0x2E, - 0x25, - 0x20, - 0x45, - 0x47, - 0x30, - 0x20, - 0x13, - 0x07, - 0x1A, - 0x66, - 0x5F, - 0x00, - 0x08, - 0x01, - 0x07, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0xBE, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xC6, - 0xC6, - 0xD8, - 0xC6, - 0xDF, - 0xDF, - 0xC6, - 0xC8, - 0xDF, - 0xCE, - 0xC8, - 0xCE, - 0xDF, - 0xCE, - 0xCE, - 0xCE, - 0xE0, - 0xCE, - 0xCE, - 0xE2, - 0xC3, - 0xD4, - 0xE2, - 0xCA, - 0xE0, - 0xCA, - 0xE2, - 0xE1, - 0xCA, - 0xD6, - 0xE2, - 0xED, - 0xCA, - 0xD6, - 0xE1, - 0xE6, - 0xD6, - 0xD6, - 0xE9, - 0xE9, - 0xDC, - 0xDC, - 0xE9, - 0xDC, - 0xE9, - 0xDC, - 0xDC, - 0xDC, - 0xDB, - 0xDB, - 0xDC, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDA, - 0xDE, - 0xDA, - 0xDA, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xEA, - 0x00, - 0x04, - 0xE5, - 0x00, - 0x14, - 0xDA, - 0xDD, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDD, - 0xE5, - 0xE5, - 0xE5, - 0xEB, - 0xDB, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0x04, - 0xED, - 0x05, - 0xF6, - 0x00, - 0x48, - 0xE0, - 0xC9, - 0xC9, - 0x92, - 0x92, - 0xB4, - 0xA0, - 0x91, - 0x91, - 0x9E, - 0x9E, - 0x90, - 0x90, - 0x9E, - 0x9D, - 0xAD, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0xB4, - 0xA0, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xAD, - 0xA4, - 0x90, - 0xA0, - 0xA4, - 0x9E, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0x93, - 0x93, - 0x9E, - 0x7C, - 0x91, - 0x91, - 0x88, - 0x88, - 0x91, - 0x87, - 0x77, - 0x7E, - 0x6E, - 0x92, - 0x7E, - 0x75, - 0x7E, - 0x77, - 0x88, - 0x91, - 0x92, - 0x7C, - 0x7E, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x04, - 0x75, - 0x00, - 0x32, - 0x85, - 0x7E, - 0x61, - 0x6E, - 0x51, - 0x75, - 0x75, - 0x77, - 0x87, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x61, - 0x61, - 0x51, - 0x51, - 0x51, - 0x5B, - 0x63, - 0x43, - 0x53, - 0x43, - 0x1D, - 0x1A, - 0x13, - 0x13, - 0x3F, - 0x53, - 0x63, - 0x43, - 0x37, - 0x43, - 0x21, - 0x2B, - 0x31, - 0x2B, - 0x34, - 0x34, - 0x38, - 0x3B, - 0x3B, - 0x17, - 0x38, - 0x38, - 0x3B, - 0x3D, - 0x38, - 0x38, - 0x3D, - 0x04, - 0x30, - 0x00, - 0x4C, - 0x27, - 0x3F, - 0x3B, - 0x43, - 0x38, - 0x53, - 0x2C, - 0x17, - 0x43, - 0x48, - 0x2B, - 0x48, - 0x3A, - 0x6B, - 0x54, - 0x54, - 0x42, - 0x30, - 0x34, - 0x25, - 0x2E, - 0x25, - 0x1A, - 0x27, - 0x30, - 0x1D, - 0x38, - 0x27, - 0x42, - 0x38, - 0x0C, - 0x2B, - 0x37, - 0x18, - 0x3F, - 0x0C, - 0x21, - 0x1A, - 0x0C, - 0x1A, - 0x20, - 0x27, - 0x37, - 0x2C, - 0x2C, - 0x3B, - 0x3B, - 0x1A, - 0x1D, - 0x27, - 0x30, - 0x30, - 0x42, - 0x30, - 0x18, - 0x07, - 0x3B, - 0x3D, - 0x20, - 0x23, - 0x18, - 0x45, - 0x2E, - 0x34, - 0x18, - 0x07, - 0x04, - 0x27, - 0x66, - 0x23, - 0x01, - 0x08, - 0x04, - 0x07, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x11, - 0xBE, - 0xBE, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xDF, - 0xC6, - 0xDF, - 0xC6, - 0xC8, - 0xDF, - 0xDF, - 0xC8, - 0xDF, - 0x00, - 0x07, - 0xCE, - 0x00, - 0x1B, - 0xD4, - 0xE0, - 0xCA, - 0xE0, - 0xE0, - 0xE2, - 0xD4, - 0xCA, - 0xCA, - 0xE2, - 0xE1, - 0xE2, - 0xE2, - 0xD6, - 0xE9, - 0xE1, - 0xE1, - 0xDC, - 0xE1, - 0xD6, - 0xE6, - 0xD6, - 0xD6, - 0xE6, - 0xDC, - 0xD6, - 0xE6, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x6D, - 0xE6, - 0xDB, - 0xDC, - 0xDB, - 0xDE, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xD7, - 0xDE, - 0xDB, - 0xDE, - 0xDA, - 0xDE, - 0xDA, - 0xDE, - 0xDA, - 0xE5, - 0xDA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xDA, - 0xEA, - 0xDD, - 0xE5, - 0xE5, - 0xDD, - 0xDA, - 0xEA, - 0xEE, - 0xDD, - 0xF8, - 0xDA, - 0xEB, - 0xE9, - 0xF8, - 0xED, - 0xE9, - 0xE9, - 0xEB, - 0xF6, - 0xED, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xEF, - 0xB4, - 0x92, - 0xA0, - 0x92, - 0x92, - 0x92, - 0x91, - 0x91, - 0x91, - 0x93, - 0x93, - 0x8B, - 0x93, - 0xAB, - 0xB7, - 0xAB, - 0xAB, - 0xAD, - 0xA0, - 0xAB, - 0x9E, - 0xB4, - 0xB7, - 0xAB, - 0xAB, - 0xAB, - 0xB7, - 0xAB, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0xAB, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x93, - 0x88, - 0x85, - 0x7E, - 0xA0, - 0x7E, - 0x87, - 0x75, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x24, - 0x87, - 0x88, - 0x92, - 0x92, - 0x87, - 0x7C, - 0x88, - 0x7C, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x7C, - 0x7E, - 0x88, - 0x7C, - 0x75, - 0x7C, - 0x6A, - 0x7C, - 0x7C, - 0x6A, - 0x6E, - 0x61, - 0x61, - 0x6E, - 0x88, - 0x87, - 0x87, - 0x5E, - 0x6A, - 0x68, - 0x72, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x11, - 0x59, - 0x43, - 0x31, - 0x3F, - 0x43, - 0x2B, - 0x31, - 0x37, - 0x13, - 0x18, - 0x3F, - 0x58, - 0x43, - 0x0C, - 0x43, - 0x31, - 0x31, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x5B, - 0x3A, - 0x3A, - 0x53, - 0x17, - 0x3A, - 0x38, - 0x38, - 0x30, - 0x38, - 0x3A, - 0x30, - 0x2B, - 0x30, - 0x34, - 0x30, - 0x42, - 0x38, - 0x53, - 0x50, - 0x34, - 0x2C, - 0x43, - 0x2B, - 0x5A, - 0x31, - 0x48, - 0x48, - 0x38, - 0x5F, - 0x58, - 0x47, - 0x42, - 0x30, - 0x25, - 0x25, - 0x34, - 0x1D, - 0x30, - 0x1A, - 0x25, - 0x27, - 0x1D, - 0x30, - 0x27, - 0x42, - 0x08, - 0x43, - 0x31, - 0x17, - 0x37, - 0x18, - 0x21, - 0x18, - 0x0C, - 0x2C, - 0x27, - 0x2C, - 0x2C, - 0x47, - 0x47, - 0x2C, - 0x3B, - 0x23, - 0x17, - 0x38, - 0x2C, - 0x30, - 0x30, - 0x20, - 0x23, - 0x07, - 0x45, - 0x30, - 0x18, - 0x33, - 0x17, - 0x53, - 0x23, - 0x2C, - 0x08, - 0x04, - 0x08, - 0x3B, - 0x66, - 0x01, - 0x02, - 0x04, - 0x04, - 0x0C, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xF4, - 0xBD, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xC6, - 0xD8, - 0xC6, - 0xC6, - 0xC6, - 0xDF, - 0xC6, - 0xCE, - 0xDF, - 0xC8, - 0xCE, - 0xC8, - 0xDF, - 0x07, - 0xCE, - 0x00, - 0x34, - 0xD4, - 0xCA, - 0xCE, - 0xD4, - 0xE2, - 0xE2, - 0xCA, - 0xE2, - 0xCA, - 0xCA, - 0xEF, - 0xCA, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xE9, - 0xD6, - 0xDC, - 0xED, - 0xD6, - 0xDC, - 0xE6, - 0xDC, - 0xDC, - 0xE6, - 0xDC, - 0xDB, - 0xDC, - 0xE6, - 0xDE, - 0xDC, - 0xDE, - 0xD7, - 0xDC, - 0xDE, - 0xD7, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDB, - 0xDA, - 0xDB, - 0xDB, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xE5, - 0xDA, - 0x04, - 0xE5, - 0x00, - 0x1B, - 0xDA, - 0xE5, - 0xDA, - 0xDD, - 0xDA, - 0xEA, - 0xDA, - 0xDD, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xEB, - 0xEE, - 0xEB, - 0xE9, - 0xEB, - 0xEF, - 0xE9, - 0xF6, - 0xEB, - 0xF6, - 0xED, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x59, - 0xE2, - 0xC9, - 0x88, - 0x92, - 0x92, - 0x91, - 0xA0, - 0x91, - 0x93, - 0x91, - 0x91, - 0x93, - 0x93, - 0x9E, - 0xB7, - 0xB7, - 0xAD, - 0xAB, - 0xAB, - 0xAD, - 0xAB, - 0xAB, - 0xAB, - 0xB7, - 0xB4, - 0xA0, - 0xB4, - 0xAB, - 0xB7, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0x9E, - 0xA4, - 0x9E, - 0xAB, - 0xA4, - 0x9E, - 0x9E, - 0xA0, - 0x91, - 0x8B, - 0x91, - 0x88, - 0x91, - 0x88, - 0x92, - 0x7C, - 0x7E, - 0x77, - 0x92, - 0x7E, - 0x88, - 0x91, - 0xA0, - 0x92, - 0x92, - 0x7C, - 0x7E, - 0x87, - 0x7C, - 0x88, - 0x88, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x85, - 0x85, - 0x7C, - 0x85, - 0x75, - 0x6E, - 0x75, - 0x85, - 0x7C, - 0x77, - 0x6E, - 0x61, - 0x6E, - 0x93, - 0x77, - 0x91, - 0x61, - 0x61, - 0x51, - 0x6E, - 0x68, - 0x00, - 0x05, - 0x51, - 0x00, - 0x70, - 0x5A, - 0x31, - 0x43, - 0x48, - 0x2B, - 0x43, - 0x17, - 0x2B, - 0x18, - 0x08, - 0x2B, - 0x6B, - 0x43, - 0x04, - 0x31, - 0x21, - 0x37, - 0x31, - 0x2B, - 0x2B, - 0x30, - 0x2C, - 0x3B, - 0x45, - 0x0C, - 0x47, - 0x3B, - 0x42, - 0x38, - 0x30, - 0x30, - 0x30, - 0x34, - 0x2B, - 0x34, - 0x2C, - 0x2B, - 0x2B, - 0x37, - 0x3A, - 0x38, - 0x2B, - 0x5F, - 0x34, - 0x0C, - 0x37, - 0x42, - 0x3D, - 0x47, - 0x37, - 0x53, - 0x54, - 0x38, - 0x3D, - 0x3A, - 0x25, - 0x1A, - 0x30, - 0x25, - 0x2B, - 0x1A, - 0x25, - 0x30, - 0x20, - 0x30, - 0x38, - 0x3D, - 0x25, - 0x1D, - 0x2B, - 0x21, - 0x18, - 0x21, - 0x0C, - 0x31, - 0x2B, - 0x27, - 0x43, - 0x27, - 0x3B, - 0x2C, - 0x3A, - 0x3A, - 0x21, - 0x1A, - 0x3A, - 0x38, - 0x2B, - 0x1A, - 0x27, - 0x18, - 0x07, - 0x45, - 0x20, - 0x13, - 0x07, - 0x18, - 0x3B, - 0x1D, - 0x2E, - 0x07, - 0x04, - 0x02, - 0x66, - 0x5F, - 0x02, - 0x00, - 0x08, - 0x07, - 0x0C, - 0x03, - 0x01, - 0x00, - 0x00, - 0x00, - 0x14, - 0xBE, - 0xBE, - 0xA8, - 0xF4, - 0xBE, - 0xD8, - 0xD8, - 0xBE, - 0xC6, - 0xDF, - 0xC8, - 0xC6, - 0xDF, - 0xDF, - 0xC6, - 0xCE, - 0xC8, - 0xDF, - 0xCE, - 0xC8, - 0x05, - 0xCE, - 0x00, - 0x19, - 0xC3, - 0xD4, - 0xCE, - 0xCA, - 0xCE, - 0xE0, - 0xCA, - 0xD4, - 0xE2, - 0xE2, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xED, - 0xD6, - 0xD6, - 0xD6, - 0xE9, - 0xD6, - 0xE6, - 0xD6, - 0xE6, - 0x00, - 0x05, - 0xDC, - 0x00, - 0x11, - 0xDE, - 0xDE, - 0xC1, - 0xDC, - 0xDB, - 0xDE, - 0xDC, - 0xDE, - 0xD7, - 0xDE, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0xDA, - 0xD7, - 0xDD, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x21, - 0xDD, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xE5, - 0xE5, - 0xDA, - 0xDA, - 0xDA, - 0xEA, - 0xEA, - 0xDA, - 0xDA, - 0xDA, - 0xEA, - 0xDA, - 0xE5, - 0xE5, - 0xEE, - 0xE5, - 0xEB, - 0xDA, - 0xDB, - 0xEB, - 0xE9, - 0xE9, - 0xF8, - 0xED, - 0xF6, - 0xE9, - 0xF6, - 0xEF, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x1E, - 0xC9, - 0xB4, - 0x92, - 0xA0, - 0x91, - 0x92, - 0x92, - 0x93, - 0x91, - 0x91, - 0x91, - 0x8B, - 0x93, - 0xA0, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xAB, - 0xAD, - 0xAB, - 0xB7, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0x06, - 0x9E, - 0x00, - 0xAA, - 0xA4, - 0xAB, - 0x9E, - 0xA0, - 0x9E, - 0x91, - 0x88, - 0x93, - 0x91, - 0x7C, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x92, - 0x88, - 0x91, - 0x92, - 0x91, - 0xA0, - 0x87, - 0x7E, - 0x88, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x85, - 0x7E, - 0x7C, - 0x88, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x88, - 0x75, - 0x85, - 0x6E, - 0x6A, - 0x6A, - 0x91, - 0x75, - 0x88, - 0x6A, - 0x77, - 0x51, - 0x72, - 0x7E, - 0x51, - 0x51, - 0x61, - 0x51, - 0x51, - 0x60, - 0x43, - 0x59, - 0x3F, - 0x2B, - 0x2B, - 0x43, - 0x17, - 0x1D, - 0x1D, - 0x18, - 0x1A, - 0x58, - 0x3B, - 0x18, - 0x43, - 0x0C, - 0x31, - 0x37, - 0x34, - 0x3A, - 0x2B, - 0x2C, - 0x47, - 0x45, - 0x0C, - 0x42, - 0x38, - 0x38, - 0x3A, - 0x42, - 0x37, - 0x38, - 0x2B, - 0x25, - 0x25, - 0x2C, - 0x37, - 0x3D, - 0x47, - 0x2B, - 0x48, - 0x3A, - 0x37, - 0x3A, - 0x31, - 0x3D, - 0x3D, - 0x42, - 0x54, - 0x3B, - 0x43, - 0x54, - 0x3A, - 0x30, - 0x25, - 0x25, - 0x30, - 0x25, - 0x30, - 0x1A, - 0x30, - 0x1A, - 0x25, - 0x30, - 0x27, - 0x30, - 0x43, - 0x08, - 0x17, - 0x31, - 0x18, - 0x17, - 0x17, - 0x1A, - 0x27, - 0x1D, - 0x38, - 0x47, - 0x27, - 0x43, - 0x38, - 0x53, - 0x50, - 0x1A, - 0x0C, - 0x38, - 0x27, - 0x45, - 0x1A, - 0x20, - 0x18, - 0x08, - 0x3D, - 0x23, - 0x08, - 0x07, - 0x0C, - 0x5F, - 0x27, - 0x08, - 0x07, - 0x04, - 0x0C, - 0x66, - 0x52, - 0x07, - 0x00, - 0x07, - 0x07, - 0x17, - 0x05, - 0x01, - 0x00, - 0x00, - 0x00, - 0x57, - 0xBE, - 0xBE, - 0xFA, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xD8, - 0xC6, - 0xC6, - 0xD8, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xCE, - 0xC8, - 0xC8, - 0xCE, - 0xC8, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xCE, - 0xCA, - 0xE0, - 0xE2, - 0xC3, - 0xE2, - 0xE2, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xEF, - 0xD6, - 0xE1, - 0xE1, - 0xDC, - 0xE1, - 0xE9, - 0xD6, - 0xD6, - 0xE6, - 0xD6, - 0xE9, - 0xCD, - 0xE9, - 0xD6, - 0xDC, - 0xDC, - 0xDC, - 0xC1, - 0xDC, - 0xDE, - 0xD7, - 0xDB, - 0xD7, - 0xDB, - 0xD7, - 0xE6, - 0xDB, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDE, - 0xDA, - 0xDB, - 0xDD, - 0xDB, - 0xDD, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xEA, - 0xE5, - 0xDA, - 0xEA, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x20, - 0xEA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xDB, - 0xE5, - 0xE5, - 0xEB, - 0xEB, - 0xF2, - 0xEE, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xEF, - 0xED, - 0xF6, - 0xF6, - 0xEF, - 0xEF, - 0xE9, - 0xC9, - 0x83, - 0xA0, - 0x92, - 0xA0, - 0x92, - 0x91, - 0x91, - 0x92, - 0x04, - 0x91, - 0x00, - 0x03, - 0xA4, - 0xB7, - 0xAD, - 0x00, - 0x05, - 0xA4, - 0x00, - 0xB9, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x9E, - 0xAB, - 0xAB, - 0xAD, - 0xA0, - 0x90, - 0x9E, - 0x9E, - 0xAB, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x93, - 0x93, - 0x9E, - 0x91, - 0xA0, - 0x93, - 0x7E, - 0x91, - 0x7E, - 0x88, - 0x87, - 0x87, - 0x91, - 0x91, - 0x92, - 0x91, - 0x92, - 0x88, - 0x91, - 0xA0, - 0x75, - 0x91, - 0x7C, - 0x91, - 0x75, - 0x7E, - 0x85, - 0x85, - 0x7C, - 0x85, - 0x7C, - 0x93, - 0x6E, - 0x7C, - 0x75, - 0x75, - 0x6E, - 0x6E, - 0x7E, - 0x75, - 0x7E, - 0x77, - 0x77, - 0x5E, - 0x6E, - 0x83, - 0x51, - 0x51, - 0x61, - 0x51, - 0x51, - 0x51, - 0x62, - 0x59, - 0x34, - 0x43, - 0x25, - 0x53, - 0x2B, - 0x2B, - 0x2B, - 0x37, - 0x31, - 0x08, - 0x43, - 0x43, - 0x31, - 0x4E, - 0x0C, - 0x37, - 0x31, - 0x34, - 0x37, - 0x2C, - 0x30, - 0x42, - 0x53, - 0x0C, - 0x34, - 0x3A, - 0x38, - 0x3D, - 0x3D, - 0x38, - 0x30, - 0x27, - 0x34, - 0x3A, - 0x3D, - 0x25, - 0x3A, - 0x3D, - 0x53, - 0x27, - 0x47, - 0x34, - 0x48, - 0x3D, - 0x48, - 0x3D, - 0x42, - 0x54, - 0x47, - 0x50, - 0x47, - 0x3A, - 0x3D, - 0x30, - 0x34, - 0x1D, - 0x25, - 0x1A, - 0x20, - 0x1A, - 0x25, - 0x25, - 0x20, - 0x20, - 0x2B, - 0x42, - 0x2E, - 0x18, - 0x43, - 0x1A, - 0x31, - 0x31, - 0x1D, - 0x27, - 0x20, - 0x2C, - 0x45, - 0x3A, - 0x47, - 0x37, - 0x43, - 0x45, - 0x2E, - 0x0C, - 0x3D, - 0x30, - 0x5F, - 0x20, - 0x1A, - 0x08, - 0x18, - 0x30, - 0x13, - 0x07, - 0x04, - 0x17, - 0x66, - 0x1D, - 0x08, - 0x04, - 0x01, - 0x08, - 0x66, - 0x13, - 0x0C, - 0x02, - 0x07, - 0x08, - 0x0C, - 0x01, - 0x01, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC6, - 0x01, - 0xBD, - 0x04, - 0xBE, - 0x00, - 0x11, - 0xC6, - 0xC6, - 0xD8, - 0xC6, - 0xD8, - 0xC8, - 0xC8, - 0xC6, - 0xDF, - 0xC8, - 0xC8, - 0xDF, - 0xC8, - 0xCE, - 0xCE, - 0xCE, - 0xC8, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x33, - 0xE0, - 0xD4, - 0xCE, - 0xE0, - 0xC3, - 0xC3, - 0xCA, - 0xE2, - 0xCA, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xEF, - 0xCA, - 0xD6, - 0xE1, - 0xE9, - 0xD6, - 0xD6, - 0xDC, - 0xD6, - 0xE9, - 0xCD, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xD7, - 0xDC, - 0xDB, - 0xDC, - 0xDC, - 0xDE, - 0xDB, - 0xDB, - 0xDC, - 0xDE, - 0xDE, - 0xD7, - 0xDE, - 0xDB, - 0xDA, - 0xDA, - 0xD7, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0x00, - 0x04, - 0xE5, - 0x06, - 0xDA, - 0x00, - 0x2B, - 0xF3, - 0xEA, - 0xE7, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xE5, - 0xEE, - 0xE5, - 0xF8, - 0xDB, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xF6, - 0xF6, - 0xE9, - 0xF6, - 0xF6, - 0xE6, - 0xEB, - 0x92, - 0xB4, - 0xA0, - 0xA0, - 0xA0, - 0x91, - 0x92, - 0x91, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0xAB, - 0xB7, - 0xB7, - 0xAD, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x1B, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9E, - 0xAD, - 0xAB, - 0xAB, - 0x85, - 0x9E, - 0x9E, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0xAB, - 0x9E, - 0xAB, - 0x93, - 0x93, - 0xA0, - 0x93, - 0x9E, - 0x93, - 0x91, - 0x00, - 0x04, - 0x88, - 0x01, - 0x92, - 0x01, - 0x91, - 0x05, - 0x92, - 0x04, - 0x88, - 0x00, - 0x0A, - 0x93, - 0x91, - 0x93, - 0x85, - 0x7C, - 0x85, - 0x85, - 0x85, - 0x8B, - 0x75, - 0x04, - 0x7C, - 0x00, - 0x0C, - 0x6E, - 0x7E, - 0x7C, - 0x75, - 0x77, - 0x6E, - 0x72, - 0x6A, - 0x6E, - 0x6A, - 0x74, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x71, - 0x62, - 0x63, - 0x3F, - 0x47, - 0x37, - 0x2B, - 0x43, - 0x43, - 0x37, - 0x37, - 0x3B, - 0x08, - 0x3A, - 0x34, - 0x43, - 0x08, - 0x2B, - 0x59, - 0x3F, - 0x43, - 0x34, - 0x2B, - 0x38, - 0x3B, - 0x47, - 0x0C, - 0x3D, - 0x42, - 0x38, - 0x38, - 0x3A, - 0x27, - 0x2B, - 0x3F, - 0x34, - 0x34, - 0x2B, - 0x34, - 0x2B, - 0x3B, - 0x2B, - 0x2B, - 0x48, - 0x37, - 0x50, - 0x3D, - 0x2B, - 0x2B, - 0x42, - 0x48, - 0x45, - 0x34, - 0x58, - 0x3A, - 0x34, - 0x30, - 0x25, - 0x30, - 0x25, - 0x1A, - 0x25, - 0x34, - 0x1A, - 0x1A, - 0x25, - 0x2B, - 0x38, - 0x20, - 0x38, - 0x08, - 0x37, - 0x17, - 0x1D, - 0x1D, - 0x27, - 0x27, - 0x38, - 0x30, - 0x42, - 0x47, - 0x37, - 0x47, - 0x47, - 0x3A, - 0x3F, - 0x18, - 0x3A, - 0x30, - 0x3B, - 0x45, - 0x0C, - 0x08, - 0x18, - 0x23, - 0x08, - 0x07, - 0x02, - 0x45, - 0x66, - 0x1D, - 0x04, - 0x04, - 0x01, - 0x17, - 0x81, - 0x02, - 0x0C, - 0x01, - 0x0C, - 0x08, - 0x0C, - 0x01, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xBE, - 0xBE, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xD8, - 0x05, - 0xC6, - 0x00, - 0x08, - 0xDF, - 0xC6, - 0xC8, - 0xC8, - 0xDF, - 0xC8, - 0xC8, - 0xC8, - 0x05, - 0xCE, - 0x00, - 0x1A, - 0xC3, - 0xE0, - 0xCE, - 0xCA, - 0xD4, - 0xCA, - 0xE1, - 0xCE, - 0xCA, - 0xE1, - 0xE2, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xED, - 0xD6, - 0xDC, - 0xCA, - 0xE6, - 0xE9, - 0xD6, - 0xE9, - 0xC1, - 0xE6, - 0xCD, - 0x04, - 0xDC, - 0x00, - 0x43, - 0xE6, - 0xD7, - 0xDC, - 0xD7, - 0xD7, - 0xC1, - 0xDE, - 0xDB, - 0xD7, - 0xDE, - 0xD7, - 0xDB, - 0xD7, - 0xDA, - 0xD7, - 0xDE, - 0xDA, - 0xDA, - 0xDA, - 0xDD, - 0xDA, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xEA, - 0xDA, - 0xEA, - 0xDA, - 0xDD, - 0xDA, - 0xEA, - 0xDD, - 0xDA, - 0xEA, - 0xE5, - 0xDA, - 0xDB, - 0xE5, - 0xEB, - 0xEB, - 0xDB, - 0xE9, - 0xF2, - 0xE9, - 0xEB, - 0xF6, - 0xF5, - 0xE9, - 0xEF, - 0xF6, - 0xF6, - 0xF6, - 0xC9, - 0xE6, - 0x9D, - 0xA0, - 0xA0, - 0xAB, - 0x91, - 0xA0, - 0x91, - 0x92, - 0x91, - 0x00, - 0x04, - 0x88, - 0x00, - 0x0B, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0x9D, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x12, - 0xAB, - 0xA0, - 0x91, - 0x9E, - 0xA4, - 0xAB, - 0xAB, - 0x9E, - 0xAD, - 0xAB, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x93, - 0x9E, - 0xA0, - 0x91, - 0x04, - 0x88, - 0x00, - 0x16, - 0x91, - 0x92, - 0x91, - 0x91, - 0xA0, - 0x91, - 0x91, - 0x92, - 0x91, - 0x88, - 0x91, - 0x88, - 0x9E, - 0x93, - 0x8B, - 0x93, - 0x85, - 0x93, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x05, - 0x7C, - 0x00, - 0x06, - 0x75, - 0x75, - 0x88, - 0x7E, - 0x77, - 0x75, - 0x04, - 0x6A, - 0x01, - 0x51, - 0x01, - 0x61, - 0x04, - 0x51, - 0x00, - 0x2C, - 0x57, - 0x54, - 0x48, - 0x59, - 0x30, - 0x43, - 0x53, - 0x37, - 0x37, - 0x2C, - 0x37, - 0x31, - 0x0C, - 0x47, - 0x37, - 0x17, - 0x37, - 0x43, - 0x37, - 0x34, - 0x2C, - 0x3A, - 0x3A, - 0x3B, - 0x45, - 0x0C, - 0x37, - 0x48, - 0x38, - 0x38, - 0x2B, - 0x30, - 0x3A, - 0x2C, - 0x2B, - 0x30, - 0x25, - 0x34, - 0x3A, - 0x2B, - 0x58, - 0x3F, - 0x34, - 0x3F, - 0x04, - 0x3D, - 0x00, - 0x41, - 0x42, - 0x42, - 0x58, - 0x48, - 0x50, - 0x3A, - 0x30, - 0x34, - 0x30, - 0x3D, - 0x1D, - 0x3F, - 0x1A, - 0x1A, - 0x2E, - 0x25, - 0x30, - 0x27, - 0x1A, - 0x30, - 0x38, - 0x23, - 0x17, - 0x21, - 0x2B, - 0x27, - 0x1D, - 0x2C, - 0x30, - 0x27, - 0x3B, - 0x42, - 0x3A, - 0x3A, - 0x48, - 0x5A, - 0x30, - 0x21, - 0x42, - 0x3A, - 0x3B, - 0x38, - 0x23, - 0x08, - 0x23, - 0x0C, - 0x07, - 0x02, - 0x13, - 0x66, - 0x66, - 0x27, - 0x02, - 0x01, - 0x01, - 0x37, - 0x66, - 0x02, - 0x17, - 0x02, - 0x08, - 0x07, - 0x0C, - 0x00, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0xBE, - 0xBE, - 0xAF, - 0xD8, - 0xBE, - 0xD8, - 0xBE, - 0xC6, - 0xD8, - 0xC6, - 0xD8, - 0xC6, - 0xDF, - 0xC8, - 0xC6, - 0xDF, - 0xC6, - 0xC8, - 0xC8, - 0xCE, - 0xCE, - 0xC8, - 0xCE, - 0xC8, - 0x04, - 0xCE, - 0x00, - 0x2F, - 0xC3, - 0xE2, - 0xC3, - 0xCE, - 0xC3, - 0xE2, - 0xCA, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xCA, - 0xCA, - 0xE6, - 0xD6, - 0xDC, - 0xD6, - 0xDC, - 0xD6, - 0xDC, - 0xCD, - 0xDC, - 0xE6, - 0xD7, - 0xE6, - 0xDB, - 0xDE, - 0xDC, - 0xDB, - 0xDC, - 0xDB, - 0xD7, - 0xDE, - 0xD7, - 0xDB, - 0xD7, - 0xDE, - 0xD7, - 0xDD, - 0xD7, - 0xDA, - 0xD7, - 0xDD, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x0B, - 0xE5, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xDD, - 0xF3, - 0xEA, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x1F, - 0xE5, - 0xE5, - 0xE6, - 0xF8, - 0xE9, - 0xE9, - 0xF8, - 0xE9, - 0xED, - 0xF5, - 0xE9, - 0xF6, - 0xF6, - 0xEF, - 0xF6, - 0xF6, - 0xEB, - 0xC9, - 0x92, - 0xA0, - 0xAB, - 0xAB, - 0x9E, - 0xA0, - 0xA0, - 0x91, - 0x91, - 0x88, - 0x92, - 0x88, - 0x88, - 0x00, - 0x04, - 0xAD, - 0x04, - 0xA4, - 0x01, - 0x9D, - 0x01, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0xB2, - 0x9E, - 0xAB, - 0xAD, - 0xAB, - 0xAD, - 0xB7, - 0x9E, - 0xA0, - 0xAB, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x93, - 0xA0, - 0x9E, - 0xA0, - 0x93, - 0x93, - 0x91, - 0x92, - 0x91, - 0x88, - 0x91, - 0x91, - 0x92, - 0x91, - 0x92, - 0x92, - 0x91, - 0x92, - 0x93, - 0x91, - 0xA4, - 0x85, - 0x8B, - 0xA4, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x7C, - 0x7E, - 0x7C, - 0x7C, - 0x7C, - 0x8B, - 0x7C, - 0x6E, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x75, - 0x61, - 0x77, - 0x6A, - 0x68, - 0x68, - 0x51, - 0x51, - 0x61, - 0x61, - 0x57, - 0x51, - 0x63, - 0x54, - 0x48, - 0x37, - 0x58, - 0x2B, - 0x17, - 0x37, - 0x2B, - 0x1D, - 0x43, - 0x08, - 0x43, - 0x2B, - 0x37, - 0x4E, - 0x0C, - 0x43, - 0x37, - 0x2B, - 0x38, - 0x3A, - 0x45, - 0x42, - 0x0C, - 0x42, - 0x42, - 0x47, - 0x3A, - 0x2C, - 0x3A, - 0x3A, - 0x30, - 0x34, - 0x34, - 0x2B, - 0x2B, - 0x34, - 0x37, - 0x2B, - 0x47, - 0x21, - 0x3F, - 0x3A, - 0x3D, - 0x3D, - 0x34, - 0x2C, - 0x38, - 0x53, - 0x47, - 0x5A, - 0x3A, - 0x34, - 0x30, - 0x34, - 0x1A, - 0x30, - 0x1A, - 0x31, - 0x25, - 0x1A, - 0x21, - 0x1D, - 0x25, - 0x34, - 0x34, - 0x2C, - 0x2C, - 0x07, - 0x21, - 0x17, - 0x2B, - 0x27, - 0x34, - 0x2B, - 0x3A, - 0x34, - 0x3A, - 0x54, - 0x37, - 0x50, - 0x48, - 0x34, - 0x34, - 0x3A, - 0x3D, - 0x3D, - 0x45, - 0x20, - 0x04, - 0x13, - 0x08, - 0x04, - 0x04, - 0x45, - 0x66, - 0x66, - 0x07, - 0x02, - 0x00, - 0x01, - 0x45, - 0x53, - 0x04, - 0x1A, - 0x04, - 0x02, - 0x04, - 0x0C, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0xBD, - 0xD8, - 0xAF, - 0xBE, - 0xD8, - 0xD8, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x39, - 0xDF, - 0xB9, - 0xCE, - 0xC6, - 0xCE, - 0xC6, - 0xC8, - 0xCE, - 0xC8, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xE0, - 0xCA, - 0xE2, - 0xC3, - 0xE2, - 0xE0, - 0xE1, - 0xCA, - 0xCA, - 0xE1, - 0xD6, - 0xCA, - 0xCA, - 0xE9, - 0xE9, - 0xD6, - 0xD6, - 0xCA, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0xE6, - 0xC1, - 0xCD, - 0xDC, - 0xC1, - 0xDC, - 0xCD, - 0xD7, - 0xDC, - 0xD7, - 0xDB, - 0xDC, - 0xD7, - 0xD7, - 0xD7, - 0xDE, - 0xD7, - 0xDA, - 0xD7, - 0x00, - 0x07, - 0xDA, - 0x00, - 0x04, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0x0A, - 0xDA, - 0x00, - 0x1F, - 0xEA, - 0xDA, - 0xEA, - 0xE5, - 0xE5, - 0xDB, - 0xE5, - 0xE6, - 0xEB, - 0xE9, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xF6, - 0xED, - 0xEF, - 0xF6, - 0xE9, - 0xFD, - 0xC9, - 0xC9, - 0xA0, - 0xA0, - 0x9E, - 0xAB, - 0xAB, - 0x9E, - 0xA0, - 0x91, - 0x93, - 0x00, - 0x04, - 0x88, - 0x00, - 0x0F, - 0x9E, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0xAD, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x00, - 0x05, - 0xAB, - 0x00, - 0x15, - 0xAD, - 0x9E, - 0xA0, - 0xAB, - 0xAB, - 0xB4, - 0xA0, - 0x9E, - 0xA0, - 0xA0, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0x88, - 0x91, - 0x88, - 0x88, - 0x88, - 0x91, - 0xA0, - 0x00, - 0x05, - 0x91, - 0x00, - 0x93, - 0xA0, - 0x9E, - 0x7C, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x93, - 0x8B, - 0x7C, - 0x7C, - 0x85, - 0x85, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x6E, - 0x7E, - 0x6E, - 0x7E, - 0x88, - 0x6A, - 0x6A, - 0x77, - 0x72, - 0x83, - 0x68, - 0x5E, - 0x72, - 0x5E, - 0x51, - 0x51, - 0x51, - 0x39, - 0x6B, - 0x42, - 0x53, - 0x3F, - 0x5A, - 0x43, - 0x53, - 0x2B, - 0x2B, - 0x1D, - 0x43, - 0x18, - 0x2B, - 0x37, - 0x37, - 0x2B, - 0x31, - 0x21, - 0x37, - 0x3A, - 0x3A, - 0x2C, - 0x3A, - 0x42, - 0x08, - 0x43, - 0x3A, - 0x38, - 0x38, - 0x37, - 0x3A, - 0x34, - 0x2B, - 0x37, - 0x34, - 0x34, - 0x30, - 0x34, - 0x27, - 0x43, - 0x3F, - 0x17, - 0x3F, - 0x34, - 0x3F, - 0x3D, - 0x3D, - 0x3D, - 0x42, - 0x47, - 0x47, - 0x50, - 0x3D, - 0x34, - 0x25, - 0x2E, - 0x34, - 0x25, - 0x34, - 0x1A, - 0x1A, - 0x25, - 0x25, - 0x1A, - 0x1A, - 0x1D, - 0x27, - 0x27, - 0x2B, - 0x0C, - 0x0C, - 0x2B, - 0x2C, - 0x27, - 0x30, - 0x25, - 0x20, - 0x38, - 0x20, - 0x38, - 0x48, - 0x3A, - 0x47, - 0x47, - 0x34, - 0x20, - 0x27, - 0x30, - 0x38, - 0x20, - 0x13, - 0x13, - 0x04, - 0x04, - 0x08, - 0x66, - 0x66, - 0x66, - 0x04, - 0x01, - 0x00, - 0x0C, - 0x37, - 0x31, - 0x0C, - 0x27, - 0x07, - 0x02, - 0x07, - 0x10, - 0x01, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xBD, - 0xBE, - 0xAF, - 0x00, - 0x04, - 0xBE, - 0x05, - 0xC6, - 0x00, - 0x41, - 0xDF, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xCE, - 0xCE, - 0xC8, - 0xC8, - 0xDF, - 0xCE, - 0xC8, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCA, - 0xCE, - 0xCA, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xCA, - 0xD6, - 0xE1, - 0xD6, - 0xCA, - 0xCA, - 0xDC, - 0xD6, - 0xE6, - 0xD6, - 0xDC, - 0xE9, - 0xC1, - 0xD6, - 0xE6, - 0xCD, - 0xE6, - 0xDC, - 0xD7, - 0xD7, - 0xDC, - 0xDE, - 0xDC, - 0xD7, - 0xDC, - 0xD7, - 0xDE, - 0xD7, - 0xDE, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xDD, - 0xD7, - 0xDB, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x09, - 0xDD, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xDD, - 0xF3, - 0xE7, - 0xEA, - 0x00, - 0x05, - 0xDA, - 0x00, - 0xE1, - 0xE5, - 0xDA, - 0xEB, - 0xEB, - 0xDC, - 0xF2, - 0xEB, - 0xF2, - 0xEB, - 0xED, - 0xED, - 0xED, - 0xF6, - 0xED, - 0xF6, - 0xFD, - 0xED, - 0xE9, - 0xB7, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0x9E, - 0xAB, - 0x93, - 0x88, - 0x91, - 0x88, - 0x91, - 0x88, - 0xA4, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x9E, - 0xA0, - 0xA0, - 0x91, - 0xB7, - 0xAB, - 0xA0, - 0xAB, - 0xAB, - 0xB4, - 0xAB, - 0xB4, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x91, - 0x93, - 0x91, - 0x91, - 0x93, - 0x85, - 0x91, - 0x88, - 0xA0, - 0x91, - 0xA0, - 0x91, - 0x91, - 0x92, - 0xA0, - 0x93, - 0x85, - 0x8B, - 0x8B, - 0xA4, - 0x9E, - 0x90, - 0x8B, - 0x88, - 0x8B, - 0x93, - 0x8B, - 0x7C, - 0x7C, - 0x88, - 0x7C, - 0x7C, - 0x6E, - 0x7C, - 0x85, - 0x7C, - 0x77, - 0x75, - 0x77, - 0x6E, - 0x72, - 0x61, - 0x6A, - 0x72, - 0x5E, - 0x68, - 0x51, - 0x51, - 0x51, - 0x36, - 0x81, - 0x50, - 0x47, - 0x54, - 0x53, - 0x43, - 0x53, - 0x53, - 0x37, - 0x37, - 0x2B, - 0x2B, - 0x0C, - 0x3F, - 0x3F, - 0x37, - 0x17, - 0x2B, - 0x37, - 0x3A, - 0x2C, - 0x3B, - 0x45, - 0x47, - 0x0C, - 0x45, - 0x3B, - 0x3A, - 0x3A, - 0x37, - 0x2C, - 0x2B, - 0x37, - 0x31, - 0x31, - 0x2C, - 0x25, - 0x34, - 0x27, - 0x1D, - 0x1D, - 0x21, - 0x34, - 0x3D, - 0x34, - 0x30, - 0x3D, - 0x30, - 0x34, - 0x47, - 0x58, - 0x37, - 0x54, - 0x3A, - 0x34, - 0x25, - 0x2E, - 0x30, - 0x1A, - 0x31, - 0x2E, - 0x1A, - 0x25, - 0x21, - 0x1A, - 0x25, - 0x27, - 0x1D, - 0x2C, - 0x3A, - 0x08, - 0x31, - 0x2C, - 0x2C, - 0x2B, - 0x30, - 0x3A, - 0x45, - 0x45, - 0x25, - 0x3F, - 0x3A, - 0x48, - 0x30, - 0x3D, - 0x47, - 0x45, - 0x27, - 0x20, - 0x23, - 0x07, - 0x07, - 0x04, - 0x13, - 0x3B, - 0x66, - 0x66, - 0x66, - 0x02, - 0x00, - 0x01, - 0x17, - 0x66, - 0x40, - 0x1A, - 0x17, - 0x07, - 0x02, - 0x08, - 0x04, - 0x01, - 0x10, - 0x00, - 0x00, - 0x00, - 0x06, - 0xBE, - 0x00, - 0x03, - 0xD8, - 0xBE, - 0xD8, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x05, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC6, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x03, - 0xCE, - 0xC8, - 0xC8, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x2A, - 0xC3, - 0xCE, - 0xCA, - 0xE0, - 0xE2, - 0xC3, - 0xCA, - 0xCA, - 0xE2, - 0xCA, - 0xCA, - 0xD6, - 0xE1, - 0xE9, - 0xCA, - 0xD6, - 0xCA, - 0xDC, - 0xD6, - 0xD6, - 0xD6, - 0xDC, - 0xDC, - 0xCD, - 0xDB, - 0xCD, - 0xDC, - 0xDC, - 0xD6, - 0xDE, - 0xC1, - 0xD7, - 0xDB, - 0xD7, - 0xDC, - 0xD7, - 0xDB, - 0xD7, - 0xD7, - 0xDD, - 0xDE, - 0xD7, - 0x06, - 0xDA, - 0x01, - 0xE5, - 0x01, - 0xDB, - 0x07, - 0xDA, - 0x00, - 0x1E, - 0xEA, - 0xDD, - 0xDA, - 0xDA, - 0xEA, - 0xDA, - 0xDA, - 0xDA, - 0xDB, - 0xEE, - 0xF8, - 0xE6, - 0xE6, - 0xEB, - 0xED, - 0xED, - 0xEF, - 0xED, - 0xF5, - 0xF6, - 0xE9, - 0xFB, - 0xF6, - 0xF6, - 0xF6, - 0xE9, - 0xB7, - 0xB4, - 0x9E, - 0xAB, - 0x04, - 0x9E, - 0x00, - 0x19, - 0x91, - 0x88, - 0x9E, - 0x88, - 0x93, - 0x91, - 0x9E, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x9E, - 0xA0, - 0xAB, - 0xAD, - 0x00, - 0x04, - 0xAB, - 0x00, - 0xAA, - 0xB4, - 0xA0, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0xA0, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x88, - 0x91, - 0x93, - 0x91, - 0x91, - 0xA0, - 0x93, - 0x92, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0x8B, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x85, - 0x88, - 0x8B, - 0x7C, - 0x7C, - 0x91, - 0x7C, - 0x75, - 0x7E, - 0x6E, - 0x87, - 0x77, - 0x77, - 0x61, - 0x72, - 0x87, - 0x68, - 0x61, - 0x51, - 0x51, - 0x51, - 0x46, - 0x51, - 0x63, - 0x58, - 0x42, - 0x53, - 0x37, - 0x37, - 0x5A, - 0x53, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x0C, - 0x43, - 0x34, - 0x37, - 0x3F, - 0x2B, - 0x31, - 0x37, - 0x37, - 0x3A, - 0x3A, - 0x3B, - 0x1B, - 0x45, - 0x3B, - 0x3B, - 0x3A, - 0x3A, - 0x30, - 0x2B, - 0x34, - 0x37, - 0x1D, - 0x45, - 0x37, - 0x27, - 0x2B, - 0x42, - 0x25, - 0x34, - 0x25, - 0x34, - 0x34, - 0x30, - 0x3D, - 0x3D, - 0x42, - 0x42, - 0x54, - 0x1D, - 0x6B, - 0x34, - 0x30, - 0x21, - 0x34, - 0x21, - 0x3D, - 0x1A, - 0x1D, - 0x21, - 0x1A, - 0x1D, - 0x1D, - 0x25, - 0x2B, - 0x1D, - 0x27, - 0x30, - 0x08, - 0x17, - 0x2C, - 0x37, - 0x3B, - 0x30, - 0x1D, - 0x45, - 0x38, - 0x5F, - 0x38, - 0x20, - 0x48, - 0x30, - 0x37, - 0x3B, - 0x3B, - 0x45, - 0x27, - 0x0C, - 0x07, - 0x04, - 0x08, - 0x27, - 0x45, - 0x66, - 0x81, - 0x5F, - 0x02, - 0x00, - 0x01, - 0x2B, - 0x66, - 0x3B, - 0x08, - 0x2B, - 0x04, - 0x04, - 0x08, - 0x00, - 0x09, - 0x08, - 0x00, - 0x00, - 0x01, - 0xAF, - 0x04, - 0xBE, - 0x00, - 0x48, - 0xAF, - 0xD8, - 0xBE, - 0xC6, - 0xC6, - 0xBE, - 0xC6, - 0xC6, - 0xC6, - 0xDF, - 0xC6, - 0xC8, - 0xDF, - 0xB9, - 0xDF, - 0xC8, - 0xC8, - 0xCE, - 0xC8, - 0xCE, - 0xC8, - 0xC8, - 0xC3, - 0xCE, - 0xCE, - 0xCE, - 0xCA, - 0xCA, - 0xCE, - 0xCA, - 0xC3, - 0xCA, - 0xE2, - 0xCA, - 0xE1, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xCA, - 0xD6, - 0xCD, - 0xDC, - 0xCA, - 0xDC, - 0xD6, - 0xCD, - 0xE9, - 0xCD, - 0xDB, - 0xCD, - 0xE6, - 0xCD, - 0xDC, - 0xC1, - 0xDC, - 0xDB, - 0xDC, - 0xD7, - 0xD7, - 0xDB, - 0xD7, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDA, - 0xD7, - 0xDD, - 0xD7, - 0x09, - 0xDA, - 0x00, - 0x03, - 0xEA, - 0xF3, - 0xEA, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x23, - 0xF8, - 0xE5, - 0xDB, - 0xDB, - 0xE6, - 0xF8, - 0xEE, - 0xF2, - 0xE9, - 0xED, - 0xED, - 0xE9, - 0xF6, - 0xE9, - 0xFB, - 0xED, - 0xF6, - 0xF6, - 0xEF, - 0xFD, - 0xB4, - 0xA0, - 0x92, - 0xA0, - 0x93, - 0xA0, - 0x9E, - 0x9E, - 0x91, - 0x93, - 0x9E, - 0x88, - 0x93, - 0x88, - 0x9E, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x0F, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0xA0, - 0xA0, - 0xAB, - 0xAB, - 0x9E, - 0x00, - 0x04, - 0xAB, - 0x00, - 0x35, - 0xB4, - 0xB4, - 0xA0, - 0xAB, - 0xAB, - 0xAB, - 0xA0, - 0xAB, - 0xA0, - 0xAB, - 0x8B, - 0xA0, - 0x8B, - 0x88, - 0x91, - 0x9E, - 0x91, - 0x9E, - 0x91, - 0x88, - 0x88, - 0x91, - 0x91, - 0x85, - 0x93, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x93, - 0x93, - 0x93, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x7C, - 0x85, - 0x7C, - 0x7C, - 0x75, - 0x7E, - 0x6E, - 0x77, - 0x72, - 0x6A, - 0x77, - 0x77, - 0x72, - 0x68, - 0x51, - 0x61, - 0x00, - 0x04, - 0x51, - 0x00, - 0x70, - 0x6B, - 0x54, - 0x45, - 0x53, - 0x42, - 0x5A, - 0x5A, - 0x66, - 0x37, - 0x37, - 0x45, - 0x37, - 0x1A, - 0x21, - 0x37, - 0x34, - 0x37, - 0x27, - 0x34, - 0x3A, - 0x2B, - 0x2C, - 0x3B, - 0x43, - 0x0C, - 0x47, - 0x3A, - 0x3B, - 0x37, - 0x2B, - 0x30, - 0x2B, - 0x2B, - 0x38, - 0x3B, - 0x27, - 0x2C, - 0x37, - 0x2C, - 0x2C, - 0x1D, - 0x2C, - 0x47, - 0x2C, - 0x48, - 0x34, - 0x30, - 0x3D, - 0x3A, - 0x38, - 0x54, - 0x1D, - 0x63, - 0x3D, - 0x3D, - 0x31, - 0x1A, - 0x2E, - 0x25, - 0x25, - 0x2E, - 0x25, - 0x1A, - 0x1A, - 0x1A, - 0x17, - 0x17, - 0x2C, - 0x1D, - 0x2B, - 0x2B, - 0x08, - 0x47, - 0x27, - 0x38, - 0x30, - 0x3F, - 0x53, - 0x45, - 0x5F, - 0x5F, - 0x42, - 0x25, - 0x45, - 0x1D, - 0x2C, - 0x27, - 0x5F, - 0x42, - 0x08, - 0x02, - 0x04, - 0x27, - 0x45, - 0x66, - 0x66, - 0x66, - 0x2C, - 0x00, - 0x01, - 0x01, - 0x66, - 0x66, - 0x2C, - 0x01, - 0x45, - 0x00, - 0x07, - 0x0C, - 0x02, - 0x10, - 0x09, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xA8, - 0xBE, - 0xBE, - 0xA9, - 0xBE, - 0xBE, - 0xC6, - 0xBE, - 0xBE, - 0xD8, - 0x05, - 0xC6, - 0x00, - 0x03, - 0xB9, - 0xC6, - 0xB9, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x2D, - 0xCE, - 0xC8, - 0xCE, - 0xCE, - 0xCE, - 0xC3, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xC3, - 0xE2, - 0xCA, - 0xCA, - 0xCA, - 0xE1, - 0xE1, - 0xCA, - 0xE2, - 0xD6, - 0xD6, - 0xE1, - 0xE2, - 0xC1, - 0xD6, - 0xD6, - 0xD6, - 0xDC, - 0xC1, - 0xDC, - 0xCD, - 0xDC, - 0xC1, - 0xE6, - 0xD7, - 0xE6, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xDC, - 0xD7, - 0xDB, - 0xD7, - 0xDD, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x03, - 0xDA, - 0xDA, - 0xD7, - 0x00, - 0x10, - 0xDA, - 0x00, - 0x10, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xEB, - 0xEB, - 0xE9, - 0xED, - 0xF2, - 0xED, - 0xF2, - 0xF5, - 0xE9, - 0xF6, - 0xED, - 0x04, - 0xF6, - 0x00, - 0x13, - 0xEF, - 0xB4, - 0x92, - 0xB4, - 0x9E, - 0xA0, - 0xA0, - 0x93, - 0x93, - 0x93, - 0x88, - 0x93, - 0x88, - 0x90, - 0x88, - 0x9E, - 0xAD, - 0xB7, - 0xB7, - 0x00, - 0x04, - 0xAD, - 0x00, - 0xB9, - 0xA4, - 0xA4, - 0x9D, - 0xA4, - 0x90, - 0x90, - 0x9D, - 0x91, - 0x91, - 0xA0, - 0xA0, - 0xAB, - 0xB7, - 0xAD, - 0xAB, - 0xB4, - 0xA0, - 0xAB, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x91, - 0xA0, - 0x91, - 0x93, - 0x91, - 0x88, - 0x93, - 0x88, - 0x91, - 0x88, - 0x88, - 0x88, - 0x85, - 0x85, - 0x8B, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x85, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x8B, - 0x88, - 0x88, - 0x7C, - 0x7C, - 0x7C, - 0x6E, - 0x88, - 0x75, - 0x6E, - 0x7E, - 0x77, - 0x77, - 0x72, - 0x68, - 0x6A, - 0x61, - 0x5E, - 0x61, - 0x51, - 0x51, - 0x36, - 0x6B, - 0x6B, - 0x50, - 0x54, - 0x50, - 0x1D, - 0x43, - 0x5A, - 0x2B, - 0x37, - 0x43, - 0x43, - 0x50, - 0x08, - 0x3F, - 0x37, - 0x34, - 0x43, - 0x37, - 0x2B, - 0x2B, - 0x2C, - 0x3B, - 0x3B, - 0x1B, - 0x3B, - 0x3A, - 0x3B, - 0x37, - 0x45, - 0x2C, - 0x43, - 0x3A, - 0x27, - 0x2C, - 0x43, - 0x37, - 0x45, - 0x2C, - 0x1D, - 0x2C, - 0x2B, - 0x2B, - 0x1D, - 0x47, - 0x25, - 0x30, - 0x48, - 0x30, - 0x30, - 0x42, - 0x59, - 0x37, - 0x43, - 0x25, - 0x34, - 0x2E, - 0x1A, - 0x25, - 0x21, - 0x17, - 0x21, - 0x21, - 0x1D, - 0x1D, - 0x21, - 0x17, - 0x1D, - 0x2C, - 0x1D, - 0x27, - 0x07, - 0x27, - 0x45, - 0x34, - 0x37, - 0x2C, - 0x47, - 0x54, - 0x54, - 0x5F, - 0x53, - 0x45, - 0x3B, - 0x27, - 0x27, - 0x45, - 0x45, - 0x45, - 0x07, - 0x04, - 0x08, - 0x45, - 0x66, - 0x5F, - 0x66, - 0x66, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x66, - 0x66, - 0x08, - 0x07, - 0x2C, - 0x01, - 0x08, - 0x09, - 0x04, - 0x09, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xBE, - 0xAF, - 0xC6, - 0x05, - 0xBE, - 0x05, - 0xC6, - 0x00, - 0x41, - 0xC8, - 0xC6, - 0xC8, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xC8, - 0xC3, - 0xBC, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xD4, - 0xCA, - 0xC3, - 0xCE, - 0xC3, - 0xE2, - 0xCA, - 0xCA, - 0xE1, - 0xC1, - 0xE1, - 0xE2, - 0xC1, - 0xD6, - 0xD6, - 0xD6, - 0xC1, - 0xDC, - 0xC1, - 0xD6, - 0xDC, - 0xDC, - 0xCD, - 0xD7, - 0xCD, - 0xDC, - 0xD7, - 0xDC, - 0xC1, - 0xDE, - 0xDC, - 0xD7, - 0xBA, - 0xDD, - 0xD7, - 0xDA, - 0xD7, - 0xDD, - 0xD7, - 0xDE, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0x00, - 0x09, - 0xDA, - 0x00, - 0x0F, - 0xDD, - 0xDA, - 0xDA, - 0xE5, - 0xE5, - 0xDA, - 0xDB, - 0xDA, - 0xE5, - 0xF2, - 0xF2, - 0xEB, - 0xEB, - 0xED, - 0xE9, - 0x00, - 0x04, - 0xED, - 0x00, - 0x1E, - 0xF6, - 0xFD, - 0xED, - 0xF6, - 0xF6, - 0xF6, - 0xB4, - 0xB4, - 0xB4, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x93, - 0x91, - 0x93, - 0x91, - 0x91, - 0x90, - 0x88, - 0x93, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0x3A, - 0x93, - 0xA0, - 0xA0, - 0x9E, - 0xAB, - 0xAD, - 0xAD, - 0xB4, - 0xB4, - 0xAB, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xA0, - 0xAB, - 0xAB, - 0xA4, - 0x9E, - 0xA0, - 0xA0, - 0x93, - 0x85, - 0x7C, - 0x93, - 0x88, - 0x93, - 0x91, - 0x91, - 0x88, - 0x88, - 0x7C, - 0x85, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x9E, - 0x8B, - 0x90, - 0x85, - 0x85, - 0x8B, - 0x90, - 0x7C, - 0x8B, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x7E, - 0x7C, - 0x77, - 0x75, - 0x77, - 0x6A, - 0x72, - 0x04, - 0x68, - 0x00, - 0x74, - 0x5E, - 0x51, - 0x51, - 0x51, - 0x6B, - 0x5F, - 0x54, - 0x5A, - 0x48, - 0x17, - 0x5A, - 0x37, - 0x43, - 0x37, - 0x37, - 0x45, - 0x5A, - 0x2C, - 0x17, - 0x2B, - 0x37, - 0x37, - 0x47, - 0x2B, - 0x2B, - 0x2C, - 0x3B, - 0x2C, - 0x21, - 0x37, - 0x37, - 0x2C, - 0x2C, - 0x5A, - 0x5F, - 0x3B, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x45, - 0x37, - 0x2C, - 0x3B, - 0x2C, - 0x1D, - 0x2B, - 0x27, - 0x37, - 0x37, - 0x30, - 0x48, - 0x20, - 0x3D, - 0x38, - 0x59, - 0x18, - 0x50, - 0x3F, - 0x2E, - 0x2E, - 0x25, - 0x1A, - 0x21, - 0x21, - 0x1A, - 0x1A, - 0x17, - 0x1A, - 0x17, - 0x2B, - 0x17, - 0x1D, - 0x1D, - 0x2B, - 0x21, - 0x45, - 0x2B, - 0x25, - 0x47, - 0x48, - 0x54, - 0x47, - 0x47, - 0x53, - 0x5F, - 0x45, - 0x45, - 0x38, - 0x27, - 0x27, - 0x45, - 0x38, - 0x08, - 0x01, - 0x17, - 0x45, - 0x66, - 0x66, - 0x5F, - 0x45, - 0x2C, - 0x01, - 0x01, - 0x0C, - 0x66, - 0x5F, - 0x01, - 0x0C, - 0x13, - 0x04, - 0x07, - 0x04, - 0x05, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xA8, - 0xBE, - 0xAF, - 0x05, - 0xBE, - 0x00, - 0x03, - 0xC6, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x03, - 0xB9, - 0xDF, - 0xB9, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xCE, - 0xC8, - 0xC8, - 0xCE, - 0xCE, - 0xCE, - 0xC3, - 0xCE, - 0xCE, - 0xCA, - 0xCE, - 0xE2, - 0x06, - 0xCA, - 0x00, - 0x18, - 0xD6, - 0xCA, - 0xC1, - 0xE1, - 0xCA, - 0xC1, - 0xCD, - 0xE1, - 0xCD, - 0xE1, - 0xD7, - 0xC1, - 0xD6, - 0xDC, - 0xCD, - 0xDC, - 0xCD, - 0xCD, - 0xD5, - 0xDE, - 0xCD, - 0xD7, - 0xD7, - 0xDE, - 0x04, - 0xD7, - 0x00, - 0x08, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDB, - 0x07, - 0xDA, - 0x00, - 0xEB, - 0xF3, - 0xDD, - 0xE7, - 0xF3, - 0xE5, - 0xDA, - 0xDA, - 0xDA, - 0xF8, - 0xDE, - 0xDB, - 0xDB, - 0xDB, - 0xE9, - 0xF2, - 0xF2, - 0xED, - 0xF5, - 0xED, - 0xE9, - 0xF5, - 0xF6, - 0xEB, - 0xEB, - 0xFD, - 0xEF, - 0xF6, - 0xED, - 0xC9, - 0xAB, - 0xA0, - 0xAB, - 0x9E, - 0x91, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x93, - 0x93, - 0x88, - 0x88, - 0x88, - 0xAB, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA0, - 0x93, - 0xA0, - 0x9E, - 0x9D, - 0xA4, - 0xAD, - 0xAB, - 0xB7, - 0xAB, - 0xB7, - 0xAB, - 0xB4, - 0xB7, - 0xAB, - 0xAD, - 0xAB, - 0xAB, - 0xAB, - 0x93, - 0x9E, - 0x85, - 0x91, - 0x85, - 0x88, - 0x8B, - 0x9E, - 0x91, - 0x91, - 0x91, - 0x7E, - 0x85, - 0x85, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x85, - 0x85, - 0x7C, - 0x7C, - 0x88, - 0x7C, - 0x7E, - 0x75, - 0x77, - 0x6A, - 0x68, - 0x68, - 0x6A, - 0x77, - 0x72, - 0x68, - 0x68, - 0x68, - 0x51, - 0x5E, - 0x7B, - 0x5F, - 0x45, - 0x54, - 0x5A, - 0x37, - 0x2B, - 0x5F, - 0x5A, - 0x37, - 0x3B, - 0x43, - 0x53, - 0x53, - 0x2B, - 0x43, - 0x3A, - 0x2B, - 0x2C, - 0x2B, - 0x2C, - 0x37, - 0x2C, - 0x66, - 0x31, - 0x17, - 0x5F, - 0x2B, - 0x17, - 0x45, - 0x58, - 0x3B, - 0x5F, - 0x5F, - 0x0C, - 0x27, - 0x17, - 0x37, - 0x3B, - 0x37, - 0x27, - 0x3B, - 0x2C, - 0x17, - 0x2C, - 0x3A, - 0x30, - 0x3D, - 0x20, - 0x3D, - 0x31, - 0x42, - 0x1A, - 0x34, - 0x3A, - 0x31, - 0x31, - 0x31, - 0x2E, - 0x17, - 0x1A, - 0x1A, - 0x21, - 0x21, - 0x25, - 0x1A, - 0x2B, - 0x1D, - 0x17, - 0x2B, - 0x1D, - 0x27, - 0x37, - 0x2B, - 0x48, - 0x34, - 0x43, - 0x50, - 0x3A, - 0x53, - 0x45, - 0x3B, - 0x45, - 0x3B, - 0x45, - 0x1A, - 0x27, - 0x38, - 0x20, - 0x08, - 0x01, - 0x27, - 0x5F, - 0x66, - 0x5F, - 0x5F, - 0x66, - 0x17, - 0x01, - 0x00, - 0x5F, - 0x66, - 0x23, - 0x00, - 0x27, - 0x1A, - 0x07, - 0x08, - 0x09, - 0x03, - 0x05, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xB1, - 0xAF, - 0xBE, - 0xAF, - 0x05, - 0xBE, - 0x00, - 0x45, - 0xC6, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xCE, - 0xBC, - 0xC8, - 0xCE, - 0xC3, - 0xCE, - 0xCA, - 0xCE, - 0xC3, - 0xCA, - 0xCE, - 0xCA, - 0xCA, - 0xCA, - 0xE1, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xC1, - 0xE2, - 0xD6, - 0xD6, - 0xCA, - 0xDC, - 0xCA, - 0xDC, - 0xCD, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xDC, - 0xC1, - 0xDE, - 0xD5, - 0xD7, - 0xD7, - 0xDC, - 0xD7, - 0xD7, - 0xD7, - 0xDE, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0x00, - 0x09, - 0xDA, - 0x00, - 0x44, - 0xDD, - 0xDA, - 0xDA, - 0xDA, - 0xE5, - 0xDA, - 0xDB, - 0xDE, - 0xF8, - 0xDB, - 0xEB, - 0xDC, - 0xEB, - 0xF2, - 0xED, - 0xED, - 0xED, - 0xFB, - 0xEB, - 0xED, - 0xF6, - 0xE9, - 0xFD, - 0xEF, - 0xFD, - 0xF6, - 0xC9, - 0xAD, - 0xB7, - 0xAB, - 0xA0, - 0x91, - 0xA0, - 0xA0, - 0x9E, - 0x91, - 0x93, - 0xA0, - 0x8B, - 0xA0, - 0x88, - 0xA4, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x88, - 0x91, - 0xA0, - 0xA0, - 0x9E, - 0xA4, - 0x9E, - 0xA4, - 0xAB, - 0xB4, - 0xB7, - 0xB4, - 0xB7, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0xA1, - 0x9E, - 0xAB, - 0xA0, - 0xA0, - 0x91, - 0x8B, - 0x93, - 0x93, - 0x9E, - 0x8B, - 0x93, - 0x93, - 0x88, - 0x88, - 0x7C, - 0x90, - 0x90, - 0x90, - 0x93, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x7C, - 0x7C, - 0x7C, - 0xA4, - 0x7C, - 0x8B, - 0x7C, - 0x85, - 0x90, - 0x8B, - 0x7C, - 0x7C, - 0x75, - 0x75, - 0x77, - 0x77, - 0x6A, - 0x7E, - 0x77, - 0x6A, - 0x77, - 0x72, - 0x72, - 0x68, - 0x68, - 0x5E, - 0x65, - 0x58, - 0x5A, - 0x54, - 0x37, - 0x48, - 0x31, - 0x5A, - 0x53, - 0x43, - 0x37, - 0x43, - 0x37, - 0x37, - 0x47, - 0x2B, - 0x2C, - 0x37, - 0x3A, - 0x3A, - 0x37, - 0x45, - 0x37, - 0x45, - 0x2B, - 0x2B, - 0x3A, - 0x53, - 0x2B, - 0x53, - 0x43, - 0x5F, - 0x45, - 0x6B, - 0x53, - 0x1D, - 0x42, - 0x0C, - 0x27, - 0x45, - 0x27, - 0x45, - 0x20, - 0x3B, - 0x2B, - 0x2C, - 0x25, - 0x25, - 0x3D, - 0x25, - 0x47, - 0x20, - 0x27, - 0x20, - 0x5A, - 0x2E, - 0x25, - 0x2E, - 0x2E, - 0x21, - 0x17, - 0x21, - 0x1A, - 0x1A, - 0x21, - 0x2B, - 0x17, - 0x1D, - 0x1D, - 0x1D, - 0x27, - 0x2B, - 0x3A, - 0x34, - 0x3A, - 0x50, - 0x50, - 0x3A, - 0x58, - 0x47, - 0x1D, - 0x45, - 0x45, - 0x3B, - 0x45, - 0x13, - 0x3B, - 0x2C, - 0x23, - 0x07, - 0x01, - 0x45, - 0x5F, - 0x53, - 0x5F, - 0x45, - 0x66, - 0x08, - 0x00, - 0x01, - 0x66, - 0x66, - 0x02, - 0x02, - 0x27, - 0x08, - 0x21, - 0x07, - 0x03, - 0x06, - 0x05, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC0, - 0xAF, - 0xBD, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0x00, - 0x04, - 0xBE, - 0x04, - 0xC6, - 0x00, - 0x06, - 0xB9, - 0xC6, - 0xB9, - 0xC6, - 0xC8, - 0xB9, - 0x06, - 0xC8, - 0x00, - 0x04, - 0xC3, - 0xCE, - 0xC3, - 0xCE, - 0x06, - 0xC3, - 0x05, - 0xCA, - 0x00, - 0x16, - 0xD6, - 0xCA, - 0xCA, - 0xD6, - 0xE1, - 0xCA, - 0xCD, - 0xCA, - 0xD7, - 0xC1, - 0xD7, - 0xCA, - 0xC1, - 0xDC, - 0xDC, - 0xC1, - 0xDB, - 0xC1, - 0xDC, - 0xD5, - 0xD7, - 0xDC, - 0x07, - 0xD7, - 0x00, - 0x0E, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xF3, - 0x04, - 0xDA, - 0x00, - 0x40, - 0xF8, - 0xDA, - 0xDA, - 0xDB, - 0xDA, - 0xDB, - 0xDB, - 0xF2, - 0xEB, - 0xEB, - 0xF2, - 0xE9, - 0xED, - 0xF2, - 0xFB, - 0xE9, - 0xFB, - 0xFB, - 0xE9, - 0xFD, - 0xE9, - 0xF6, - 0xFD, - 0xFD, - 0xF6, - 0xAD, - 0xAB, - 0xAB, - 0xA0, - 0x93, - 0x91, - 0xA0, - 0xAB, - 0x93, - 0xA0, - 0x9E, - 0x93, - 0xAB, - 0x88, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0x9D, - 0x9D, - 0x88, - 0x91, - 0x91, - 0x91, - 0x93, - 0x93, - 0x9D, - 0x91, - 0xAD, - 0xAB, - 0xAD, - 0xAB, - 0xB4, - 0x04, - 0xAD, - 0x00, - 0xA3, - 0xAB, - 0xAD, - 0xAB, - 0xAD, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x93, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x85, - 0x7C, - 0x85, - 0x88, - 0x93, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x7C, - 0x85, - 0x85, - 0x90, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x85, - 0x88, - 0x85, - 0x7E, - 0x7C, - 0x75, - 0x75, - 0x75, - 0x72, - 0x6A, - 0x77, - 0x72, - 0x83, - 0x77, - 0x72, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x62, - 0x6B, - 0x50, - 0x50, - 0x53, - 0x54, - 0x21, - 0x43, - 0x43, - 0x45, - 0x2B, - 0x37, - 0x43, - 0x37, - 0x43, - 0x53, - 0x37, - 0x2B, - 0x2C, - 0x47, - 0x3B, - 0x45, - 0x2B, - 0x3B, - 0x2B, - 0x1D, - 0x37, - 0x37, - 0x25, - 0x6B, - 0x45, - 0x53, - 0x5F, - 0x5F, - 0x6B, - 0x1A, - 0x66, - 0x25, - 0x3B, - 0x3B, - 0x2C, - 0x47, - 0x2C, - 0x2C, - 0x47, - 0x45, - 0x54, - 0x31, - 0x3D, - 0x25, - 0x2C, - 0x38, - 0x38, - 0x20, - 0x48, - 0x34, - 0x30, - 0x21, - 0x25, - 0x21, - 0x21, - 0x1A, - 0x21, - 0x17, - 0x0C, - 0x17, - 0x21, - 0x1A, - 0x18, - 0x17, - 0x2C, - 0x34, - 0x2B, - 0x3F, - 0x48, - 0x43, - 0x50, - 0x50, - 0x37, - 0x53, - 0x45, - 0x2C, - 0x45, - 0x45, - 0x3B, - 0x20, - 0x38, - 0x30, - 0x0C, - 0x02, - 0x02, - 0x45, - 0x58, - 0x45, - 0x1D, - 0x5F, - 0x66, - 0x02, - 0x00, - 0x0C, - 0x66, - 0x5F, - 0x00, - 0x3B, - 0x13, - 0x0C, - 0x18, - 0x07, - 0x03, - 0x03, - 0x05, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xAF, - 0xBE, - 0xAF, - 0xAF, - 0xA8, - 0x00, - 0x04, - 0xBE, - 0x00, - 0x0E, - 0xC6, - 0xB1, - 0xC6, - 0xBE, - 0xC6, - 0xC6, - 0xC6, - 0xC8, - 0xB9, - 0xC6, - 0xB9, - 0xC8, - 0xC8, - 0xB9, - 0x05, - 0xC8, - 0x00, - 0x24, - 0xBC, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xCE, - 0xCA, - 0xC1, - 0xCE, - 0xC1, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xCD, - 0xCA, - 0xE1, - 0xC1, - 0xE1, - 0xD6, - 0xCD, - 0xE1, - 0xC1, - 0xC1, - 0xE6, - 0xDC, - 0xD5, - 0xCD, - 0xD7, - 0xE6, - 0xBA, - 0x0C, - 0xD7, - 0x00, - 0x06, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDA, - 0xCB, - 0x08, - 0xDA, - 0x00, - 0x13, - 0xDB, - 0xDA, - 0xDB, - 0xDA, - 0xD7, - 0xE9, - 0xF2, - 0xDB, - 0xF2, - 0xE6, - 0xF2, - 0xED, - 0xED, - 0xEB, - 0xF6, - 0xE9, - 0xF6, - 0xF6, - 0xED, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x2A, - 0xBA, - 0xB4, - 0xAB, - 0xB4, - 0xAB, - 0x92, - 0x91, - 0xAB, - 0xAD, - 0x9E, - 0x91, - 0xA4, - 0xA0, - 0xAB, - 0x9E, - 0xAB, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9E, - 0x90, - 0x93, - 0x93, - 0xA0, - 0x93, - 0x93, - 0x9E, - 0x8B, - 0x93, - 0xA4, - 0xAB, - 0xAB, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0xA1, - 0xA4, - 0xAD, - 0x9D, - 0x9E, - 0x9E, - 0xA4, - 0xA4, - 0x9E, - 0x9D, - 0x90, - 0x93, - 0x93, - 0x7C, - 0x91, - 0x8B, - 0x9E, - 0x8B, - 0x93, - 0x90, - 0x85, - 0x93, - 0x8B, - 0x7C, - 0x7C, - 0x7C, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x7C, - 0x7E, - 0x75, - 0x7E, - 0x77, - 0x72, - 0x7E, - 0x77, - 0x77, - 0x72, - 0x72, - 0x72, - 0x77, - 0x72, - 0x72, - 0x68, - 0x60, - 0x66, - 0x5A, - 0x50, - 0x5A, - 0x53, - 0x37, - 0x3B, - 0x37, - 0x43, - 0x43, - 0x37, - 0x5F, - 0x2B, - 0x2B, - 0x43, - 0x1D, - 0x37, - 0x43, - 0x47, - 0x2C, - 0x45, - 0x1D, - 0x2C, - 0x5A, - 0x34, - 0x08, - 0x53, - 0x37, - 0x5F, - 0x53, - 0x53, - 0x5F, - 0x5F, - 0x6B, - 0x38, - 0x53, - 0x5F, - 0x3A, - 0x3A, - 0x3B, - 0x3B, - 0x47, - 0x27, - 0x3B, - 0x3B, - 0x54, - 0x34, - 0x25, - 0x3A, - 0x42, - 0x3B, - 0x1A, - 0x20, - 0x3D, - 0x3F, - 0x31, - 0x25, - 0x21, - 0x25, - 0x25, - 0x17, - 0x18, - 0x18, - 0x21, - 0x17, - 0x17, - 0x18, - 0x17, - 0x17, - 0x3A, - 0x37, - 0x34, - 0x34, - 0x37, - 0x50, - 0x47, - 0x37, - 0x43, - 0x2C, - 0x27, - 0x38, - 0x45, - 0x42, - 0x45, - 0x30, - 0x42, - 0x20, - 0x08, - 0x01, - 0x0C, - 0x66, - 0x27, - 0x20, - 0x0C, - 0x66, - 0x5F, - 0x01, - 0x00, - 0x2C, - 0x66, - 0x07, - 0x04, - 0x2B, - 0x17, - 0x1A, - 0x0C, - 0x05, - 0x03, - 0x05, - 0x05, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xAF, - 0xA8, - 0xAF, - 0xAF, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xC6, - 0xBE, - 0xBE, - 0x06, - 0xC6, - 0x00, - 0x30, - 0xC8, - 0xC6, - 0xC6, - 0xC8, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xCE, - 0xBC, - 0xCE, - 0xBC, - 0xBC, - 0xCE, - 0xCA, - 0xC3, - 0xE2, - 0xC3, - 0xCA, - 0xCA, - 0xCE, - 0xC1, - 0xCA, - 0xE1, - 0xCA, - 0xCA, - 0xCD, - 0xCA, - 0xE1, - 0xC1, - 0xD6, - 0xD6, - 0xC1, - 0xD6, - 0xCD, - 0xDC, - 0xDC, - 0xD6, - 0xC1, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xCD, - 0xD7, - 0xCD, - 0x08, - 0xD7, - 0x00, - 0x08, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDD, - 0x07, - 0xDA, - 0x00, - 0x40, - 0xDB, - 0xDA, - 0xF8, - 0xDB, - 0xDB, - 0xDB, - 0xF8, - 0xE5, - 0xF2, - 0xE6, - 0xF2, - 0xED, - 0xF2, - 0xF5, - 0xE9, - 0xEB, - 0xFB, - 0xED, - 0xF5, - 0xF6, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xE9, - 0x83, - 0xB4, - 0xA0, - 0xAB, - 0x87, - 0x91, - 0xAB, - 0xAB, - 0x9E, - 0x9E, - 0xAD, - 0x9E, - 0x9E, - 0x9E, - 0xA4, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9E, - 0x88, - 0x93, - 0x93, - 0x88, - 0x91, - 0x91, - 0x7C, - 0x91, - 0xA4, - 0xA4, - 0xAB, - 0xAD, - 0xB7, - 0x06, - 0xAD, - 0x00, - 0x12, - 0xA4, - 0xAD, - 0xA4, - 0xAB, - 0xA4, - 0x9E, - 0xA4, - 0x9E, - 0x9E, - 0x8B, - 0x8B, - 0x85, - 0x90, - 0x85, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x04, - 0x8B, - 0x00, - 0x8B, - 0x7C, - 0x7C, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x93, - 0x93, - 0x8B, - 0x88, - 0x88, - 0x7E, - 0x75, - 0x6E, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x6A, - 0x77, - 0x72, - 0x77, - 0x72, - 0x51, - 0x4C, - 0x5A, - 0x5F, - 0x50, - 0x53, - 0x50, - 0x31, - 0x5A, - 0x37, - 0x3B, - 0x37, - 0x45, - 0x43, - 0x45, - 0x17, - 0x37, - 0x5A, - 0x37, - 0x5F, - 0x1D, - 0x5F, - 0x45, - 0x3A, - 0x0C, - 0x3B, - 0x34, - 0x21, - 0x2B, - 0x37, - 0x5F, - 0x63, - 0x53, - 0x45, - 0x43, - 0x45, - 0x53, - 0x54, - 0x66, - 0x30, - 0x3B, - 0x42, - 0x3A, - 0x2C, - 0x48, - 0x2C, - 0x3B, - 0x53, - 0x21, - 0x2E, - 0x1D, - 0x1D, - 0x27, - 0x42, - 0x20, - 0x3F, - 0x48, - 0x31, - 0x2E, - 0x31, - 0x21, - 0x21, - 0x21, - 0x17, - 0x21, - 0x18, - 0x21, - 0x21, - 0x17, - 0x21, - 0x3A, - 0x37, - 0x3F, - 0x31, - 0x3F, - 0x50, - 0x42, - 0x48, - 0x50, - 0x42, - 0x27, - 0x2C, - 0x27, - 0x45, - 0x45, - 0x45, - 0x2E, - 0x20, - 0x23, - 0x04, - 0x01, - 0x27, - 0x27, - 0x27, - 0x08, - 0x38, - 0x66, - 0x66, - 0x00, - 0x01, - 0x66, - 0x66, - 0x04, - 0x17, - 0x04, - 0x27, - 0x07, - 0x18, - 0x03, - 0x05, - 0x09, - 0x09, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAF, - 0x01, - 0xA8, - 0x04, - 0xAF, - 0x00, - 0x20, - 0xBE, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xC8, - 0xC6, - 0xC8, - 0xC8, - 0xB9, - 0xC8, - 0xC8, - 0xBC, - 0xC8, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xCE, - 0xC3, - 0xCA, - 0xCE, - 0x0A, - 0xCA, - 0x00, - 0x12, - 0xC1, - 0xCA, - 0xDC, - 0xC1, - 0xC1, - 0xD6, - 0xCD, - 0xDC, - 0xCD, - 0xDC, - 0xC1, - 0xDC, - 0xD7, - 0xCD, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0x07, - 0xD7, - 0x00, - 0x3D, - 0xDA, - 0xD7, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xDB, - 0xDB, - 0xD7, - 0xE9, - 0xE5, - 0xF2, - 0xEB, - 0xF2, - 0xE9, - 0xF2, - 0xE9, - 0xF5, - 0xF2, - 0xEF, - 0xED, - 0xF6, - 0xF6, - 0xFB, - 0xF6, - 0xF6, - 0xFE, - 0xE7, - 0x73, - 0xB4, - 0xB4, - 0xB7, - 0x87, - 0x87, - 0xB7, - 0xAD, - 0x9E, - 0xA0, - 0xAD, - 0xAB, - 0xA4, - 0xAB, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x11, - 0x9E, - 0x93, - 0x93, - 0x93, - 0x91, - 0x93, - 0x93, - 0x88, - 0x88, - 0x88, - 0x9E, - 0xA4, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0x00, - 0x05, - 0xAD, - 0x00, - 0x0F, - 0xA4, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x7C, - 0x8B, - 0x90, - 0x00, - 0x05, - 0x8B, - 0x00, - 0x8C, - 0x88, - 0x8B, - 0x85, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x9E, - 0x90, - 0x85, - 0x85, - 0x7E, - 0x7C, - 0x7E, - 0x6E, - 0x6A, - 0x6E, - 0x77, - 0x6A, - 0x6A, - 0x72, - 0x77, - 0x6A, - 0x6A, - 0x51, - 0x51, - 0x46, - 0x57, - 0x6B, - 0x63, - 0x2C, - 0x43, - 0x47, - 0x43, - 0x43, - 0x43, - 0x37, - 0x37, - 0x37, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x17, - 0x37, - 0x53, - 0x53, - 0x2C, - 0x2B, - 0x50, - 0x21, - 0x0C, - 0x43, - 0x34, - 0x34, - 0x3B, - 0x5F, - 0x5A, - 0x43, - 0x53, - 0x45, - 0x5A, - 0x66, - 0x1D, - 0x66, - 0x5F, - 0x37, - 0x3A, - 0x3B, - 0x38, - 0x3B, - 0x37, - 0x45, - 0x5A, - 0x1D, - 0x34, - 0x25, - 0x42, - 0x42, - 0x38, - 0x20, - 0x44, - 0x43, - 0x34, - 0x31, - 0x31, - 0x21, - 0x1D, - 0x21, - 0x21, - 0x21, - 0x17, - 0x21, - 0x0C, - 0x21, - 0x17, - 0x3B, - 0x3F, - 0x3F, - 0x34, - 0x43, - 0x3A, - 0x3F, - 0x54, - 0x3B, - 0x47, - 0x30, - 0x25, - 0x2C, - 0x3B, - 0x53, - 0x54, - 0x30, - 0x20, - 0x0C, - 0x01, - 0x01, - 0x2B, - 0x2B, - 0x45, - 0x45, - 0x66, - 0x66, - 0x17, - 0x00, - 0x04, - 0x66, - 0x13, - 0x07, - 0x13, - 0x08, - 0x08, - 0x07, - 0x0C, - 0x0A, - 0x05, - 0x05, - 0x10, - 0xAF, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA8, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xC6, - 0xC6, - 0xBE, - 0xC6, - 0xBE, - 0xC6, - 0xC6, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xC6, - 0xB9, - 0x05, - 0xC8, - 0x00, - 0x06, - 0xBC, - 0xCE, - 0xBC, - 0xCE, - 0xBC, - 0xC8, - 0x04, - 0xC3, - 0x01, - 0xCA, - 0x01, - 0xC3, - 0x06, - 0xCA, - 0x00, - 0x0C, - 0xE1, - 0xC1, - 0xD6, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xD6, - 0xD6, - 0xD6, - 0xC1, - 0xD6, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xDC, - 0xD7, - 0xCD, - 0xCD, - 0xD7, - 0xC1, - 0xDB, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x54, - 0xDA, - 0xD7, - 0xCB, - 0xDE, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xDA, - 0xF3, - 0xDA, - 0xF3, - 0xDB, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xD7, - 0xF8, - 0xDB, - 0xDC, - 0xF8, - 0xF2, - 0xE6, - 0xF2, - 0xE9, - 0xF2, - 0xE9, - 0xED, - 0xF5, - 0xF6, - 0xED, - 0xFB, - 0xF6, - 0xED, - 0xF6, - 0xFD, - 0xFD, - 0xF6, - 0xB2, - 0x74, - 0x83, - 0x92, - 0xB7, - 0xA0, - 0x7E, - 0xAB, - 0xAD, - 0xAB, - 0xA0, - 0xB7, - 0xAD, - 0xAB, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xAB, - 0x9E, - 0xAB, - 0xA4, - 0x9E, - 0x91, - 0x93, - 0xA0, - 0x93, - 0x88, - 0x88, - 0x88, - 0x7C, - 0x91, - 0x93, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0x0F, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x7C, - 0x8B, - 0x8B, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x8B, - 0x85, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x93, - 0x9D, - 0x90, - 0x9E, - 0x8B, - 0x93, - 0x85, - 0x7C, - 0x7C, - 0x75, - 0x6E, - 0x6A, - 0x6A, - 0x72, - 0x77, - 0x6A, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x66, - 0x54, - 0x54, - 0x43, - 0x54, - 0x3A, - 0x5A, - 0x43, - 0x43, - 0x37, - 0x17, - 0x43, - 0x45, - 0x53, - 0x2B, - 0x37, - 0x43, - 0x53, - 0x5F, - 0x17, - 0x42, - 0x37, - 0x34, - 0x08, - 0x50, - 0x30, - 0x30, - 0x37, - 0x53, - 0x53, - 0x3B, - 0x5A, - 0x63, - 0x5F, - 0x37, - 0x0C, - 0x5F, - 0x53, - 0x54, - 0x3A, - 0x3B, - 0x30, - 0x2C, - 0x3B, - 0x3B, - 0x2B, - 0x47, - 0x18, - 0x30, - 0x45, - 0x27, - 0x42, - 0x38, - 0x1A, - 0x3F, - 0x3F, - 0x31, - 0x25, - 0x17, - 0x21, - 0x31, - 0x17, - 0x17, - 0x31, - 0x17, - 0x21, - 0x0C, - 0x0C, - 0x2B, - 0x43, - 0x3F, - 0x3F, - 0x3A, - 0x2C, - 0x3D, - 0x54, - 0x50, - 0x2C, - 0x27, - 0x25, - 0x2C, - 0x42, - 0x45, - 0x45, - 0x30, - 0x23, - 0x07, - 0x01, - 0x00, - 0x3B, - 0x3B, - 0x45, - 0x5F, - 0x5F, - 0x66, - 0x02, - 0x02, - 0x45, - 0x81, - 0x02, - 0x1D, - 0x09, - 0x0C, - 0x04, - 0x07, - 0x07, - 0x05, - 0x09, - 0x04, - 0x21, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA8, - 0xAF, - 0xA8, - 0x00, - 0x04, - 0xAF, - 0x00, - 0x12, - 0xBE, - 0xBE, - 0xBE, - 0xAF, - 0xB9, - 0xB1, - 0xC6, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xB9, - 0xC8, - 0xC8, - 0xB9, - 0xC6, - 0x04, - 0xC8, - 0x00, - 0x24, - 0xBC, - 0xBC, - 0xC8, - 0xCE, - 0xC3, - 0xCE, - 0xC3, - 0xC3, - 0xCE, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xCA, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xCA, - 0xD6, - 0xD6, - 0xC1, - 0xC1, - 0xD6, - 0xCD, - 0xD6, - 0xDC, - 0xC1, - 0xDB, - 0xC1, - 0xD7, - 0xCD, - 0xD5, - 0x04, - 0xD7, - 0x00, - 0x03, - 0xC7, - 0xD7, - 0xD5, - 0x00, - 0x07, - 0xD7, - 0x00, - 0x31, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xD7, - 0xDB, - 0xDA, - 0xDB, - 0xF2, - 0xE5, - 0xF2, - 0xDB, - 0xF2, - 0xF2, - 0xE9, - 0xF2, - 0xF8, - 0xFB, - 0xED, - 0xEB, - 0xFB, - 0xFB, - 0xED, - 0xFD, - 0xEF, - 0xFD, - 0xF6, - 0xF6, - 0xE6, - 0x64, - 0x83, - 0x92, - 0xB4, - 0xB7, - 0x83, - 0xB4, - 0xAB, - 0xAB, - 0xAB, - 0xAD, - 0xB7, - 0xAD, - 0xAB, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x2A, - 0xAB, - 0xAB, - 0xA4, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0xA0, - 0x91, - 0x93, - 0x88, - 0x91, - 0x91, - 0x7E, - 0x7E, - 0x7C, - 0x8B, - 0x9E, - 0xA4, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x05, - 0x90, - 0x00, - 0x8D, - 0x8B, - 0x90, - 0x85, - 0x93, - 0x90, - 0x9E, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x93, - 0x7C, - 0x88, - 0x88, - 0x75, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x77, - 0x6A, - 0x61, - 0x72, - 0x68, - 0x51, - 0x51, - 0x68, - 0x51, - 0x57, - 0x66, - 0x63, - 0x45, - 0x43, - 0x43, - 0x58, - 0x43, - 0x5A, - 0x43, - 0x2B, - 0x43, - 0x53, - 0x43, - 0x5F, - 0x53, - 0x2B, - 0x2B, - 0x63, - 0x5F, - 0x54, - 0x1D, - 0x30, - 0x48, - 0x31, - 0x0C, - 0x3F, - 0x34, - 0x2C, - 0x43, - 0x43, - 0x3B, - 0x5F, - 0x53, - 0x3A, - 0x5F, - 0x2C, - 0x37, - 0x63, - 0x45, - 0x3A, - 0x42, - 0x38, - 0x30, - 0x3B, - 0x30, - 0x53, - 0x45, - 0x42, - 0x3A, - 0x45, - 0x58, - 0x20, - 0x30, - 0x30, - 0x34, - 0x3F, - 0x31, - 0x21, - 0x31, - 0x2B, - 0x21, - 0x21, - 0x21, - 0x1D, - 0x21, - 0x21, - 0x21, - 0x0C, - 0x43, - 0x37, - 0x31, - 0x43, - 0x30, - 0x37, - 0x50, - 0x48, - 0x48, - 0x3B, - 0x2C, - 0x25, - 0x3A, - 0x42, - 0x48, - 0x42, - 0x30, - 0x23, - 0x02, - 0x00, - 0x0C, - 0x45, - 0x45, - 0x45, - 0x5F, - 0x66, - 0x81, - 0x00, - 0x00, - 0x66, - 0x20, - 0x10, - 0x04, - 0x09, - 0x21, - 0x02, - 0x10, - 0x05, - 0x05, - 0x02, - 0x0C, - 0x84, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xAF, - 0xAF, - 0xA8, - 0xBE, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xAF, - 0xAF, - 0xC6, - 0xAF, - 0xBE, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xC8, - 0xC8, - 0xCE, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xC3, - 0x00, - 0x07, - 0xCA, - 0x00, - 0x09, - 0xC1, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xC1, - 0xCA, - 0xCD, - 0xD6, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0B, - 0xDC, - 0xCD, - 0xD5, - 0xCD, - 0xDC, - 0xDB, - 0xC1, - 0xDB, - 0xD5, - 0xD7, - 0xD5, - 0x00, - 0x06, - 0xD7, - 0x00, - 0x4C, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xDB, - 0xF8, - 0xDB, - 0xD7, - 0xE5, - 0xF2, - 0xDB, - 0xF2, - 0xEB, - 0xF2, - 0xF2, - 0xED, - 0xEF, - 0xEB, - 0xF5, - 0xF5, - 0xEF, - 0xED, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xFE, - 0xAA, - 0x69, - 0x73, - 0x72, - 0x92, - 0xB4, - 0x77, - 0xB4, - 0xB7, - 0xB4, - 0xAB, - 0xAD, - 0xB7, - 0xAD, - 0xAB, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0xB7, - 0xB7, - 0xAB, - 0x9E, - 0xAB, - 0xA0, - 0x92, - 0x91, - 0xA0, - 0x9E, - 0x92, - 0x88, - 0x88, - 0x85, - 0x88, - 0x88, - 0x88, - 0xA4, - 0xA4, - 0xAD, - 0x05, - 0xB7, - 0x04, - 0xAD, - 0x00, - 0x07, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x00, - 0x04, - 0x90, - 0x00, - 0x11, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x8B, - 0x90, - 0x8B, - 0x9E, - 0x8B, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x9D, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x7F, - 0x75, - 0x6A, - 0x6E, - 0x61, - 0x75, - 0x68, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x5E, - 0x6A, - 0x5E, - 0x5E, - 0x61, - 0x61, - 0x66, - 0x63, - 0x48, - 0x50, - 0x53, - 0x50, - 0x43, - 0x43, - 0x5A, - 0x37, - 0x43, - 0x43, - 0x37, - 0x37, - 0x37, - 0x63, - 0x37, - 0x43, - 0x66, - 0x50, - 0x30, - 0x3F, - 0x34, - 0x2C, - 0x31, - 0x37, - 0x34, - 0x3B, - 0x37, - 0x53, - 0x47, - 0x5A, - 0x43, - 0x37, - 0x43, - 0x2C, - 0x37, - 0x53, - 0x53, - 0x63, - 0x30, - 0x30, - 0x27, - 0x38, - 0x3A, - 0x53, - 0x3B, - 0x50, - 0x27, - 0x37, - 0x45, - 0x54, - 0x1A, - 0x25, - 0x30, - 0x59, - 0x31, - 0x31, - 0x31, - 0x1A, - 0x21, - 0x31, - 0x17, - 0x0C, - 0x17, - 0x21, - 0x0C, - 0x17, - 0x3F, - 0x34, - 0x31, - 0x3F, - 0x34, - 0x50, - 0x3A, - 0x25, - 0x53, - 0x3B, - 0x37, - 0x3A, - 0x31, - 0x47, - 0x42, - 0x47, - 0x20, - 0x07, - 0x02, - 0x04, - 0x37, - 0x45, - 0x5F, - 0x38, - 0x66, - 0x5F, - 0x58, - 0x00, - 0x08, - 0x66, - 0x02, - 0x0C, - 0x01, - 0x21, - 0x07, - 0x04, - 0x04, - 0x02, - 0x09, - 0x07, - 0x29, - 0xF4, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xAF, - 0xA8, - 0xA8, - 0xAF, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xBE, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB9, - 0xC6, - 0xB9, - 0x04, - 0xC8, - 0x00, - 0x09, - 0xB9, - 0xC8, - 0xBC, - 0xCE, - 0xBC, - 0xC8, - 0xC8, - 0xC3, - 0xBC, - 0x00, - 0x04, - 0xC3, - 0x01, - 0xCA, - 0x01, - 0xC3, - 0x05, - 0xCA, - 0x00, - 0x3C, - 0xC1, - 0xCA, - 0xC1, - 0xCA, - 0xD6, - 0xC1, - 0xCA, - 0xD6, - 0xC1, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD7, - 0xCD, - 0xD7, - 0xCD, - 0xC1, - 0xD7, - 0xD5, - 0xD7, - 0xCD, - 0xD7, - 0xD7, - 0xD7, - 0xDB, - 0xC7, - 0xD1, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xDA, - 0xD7, - 0xD7, - 0xF8, - 0xD7, - 0xD7, - 0xF2, - 0xDB, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xEB, - 0xF2, - 0xEB, - 0xF8, - 0xF6, - 0xF5, - 0xED, - 0xEF, - 0xF8, - 0x04, - 0xF6, - 0x00, - 0x0E, - 0xFD, - 0xFD, - 0xF6, - 0xE2, - 0x70, - 0x69, - 0x74, - 0x83, - 0xA0, - 0x92, - 0xB4, - 0xB7, - 0xB4, - 0xB4, - 0x09, - 0xB7, - 0x00, - 0x13, - 0xAD, - 0xAB, - 0xAB, - 0xB7, - 0xB4, - 0xAB, - 0xA0, - 0xA0, - 0x91, - 0x92, - 0x92, - 0x92, - 0x88, - 0x88, - 0x7C, - 0x7C, - 0x9E, - 0xA4, - 0xAD, - 0x00, - 0x08, - 0xB7, - 0x00, - 0x09, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x8B, - 0x00, - 0x08, - 0x90, - 0x00, - 0x0A, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x85, - 0x8B, - 0x05, - 0x7C, - 0x00, - 0x13, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x87, - 0x6A, - 0x61, - 0x6A, - 0x72, - 0x6A, - 0x77, - 0x72, - 0x61, - 0x61, - 0x51, - 0x46, - 0x36, - 0x81, - 0x6B, - 0x00, - 0x04, - 0x50, - 0x01, - 0x2B, - 0x04, - 0x43, - 0x00, - 0x64, - 0x37, - 0x43, - 0x43, - 0x53, - 0x5F, - 0x37, - 0x37, - 0x6B, - 0x54, - 0x3D, - 0x30, - 0x3F, - 0x44, - 0x3D, - 0x34, - 0x3A, - 0x3A, - 0x27, - 0x43, - 0x43, - 0x66, - 0x37, - 0x45, - 0x37, - 0x5A, - 0x43, - 0x37, - 0x43, - 0x5F, - 0x50, - 0x3B, - 0x37, - 0x37, - 0x45, - 0x37, - 0x58, - 0x2B, - 0x53, - 0x3B, - 0x27, - 0x54, - 0x38, - 0x20, - 0x34, - 0x3D, - 0x31, - 0x31, - 0x2B, - 0x17, - 0x21, - 0x21, - 0x21, - 0x17, - 0x3C, - 0x17, - 0x18, - 0x50, - 0x43, - 0x31, - 0x37, - 0x2B, - 0x48, - 0x3F, - 0x48, - 0x48, - 0x42, - 0x2C, - 0x38, - 0x37, - 0x3F, - 0x3A, - 0x42, - 0x27, - 0x23, - 0x02, - 0x0C, - 0x0C, - 0x5F, - 0x45, - 0x66, - 0x20, - 0x5F, - 0x66, - 0x07, - 0x02, - 0x45, - 0x52, - 0x2E, - 0x01, - 0x04, - 0x13, - 0x05, - 0x09, - 0x05, - 0x04, - 0x04, - 0x07, - 0xB1, - 0xF7, - 0xF9, - 0x00, - 0x00, - 0x01, - 0x97, - 0x08, - 0xAF, - 0x00, - 0x21, - 0xBE, - 0xAF, - 0xB1, - 0xB9, - 0xBE, - 0xC6, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xB9, - 0xB9, - 0xC8, - 0xC8, - 0xC8, - 0xB9, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xCE, - 0xCE, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0x00, - 0x06, - 0xCA, - 0x01, - 0xCD, - 0x04, - 0xCA, - 0x00, - 0x16, - 0xC1, - 0xD6, - 0xD6, - 0xD6, - 0xC1, - 0xC1, - 0xDC, - 0xD6, - 0xD5, - 0xC1, - 0xDC, - 0xD5, - 0xD5, - 0xD7, - 0xC1, - 0xD5, - 0xD7, - 0xC7, - 0xDB, - 0xD7, - 0xD7, - 0xDB, - 0x05, - 0xD7, - 0x00, - 0x27, - 0xDA, - 0xD7, - 0xD7, - 0xD7, - 0xDB, - 0xD7, - 0xD7, - 0xF8, - 0xDC, - 0xD7, - 0xDB, - 0xDB, - 0xDC, - 0xF8, - 0xDB, - 0xF2, - 0xF2, - 0xEB, - 0xDC, - 0xF5, - 0xED, - 0xF2, - 0xE9, - 0xF5, - 0xED, - 0xFD, - 0xF5, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xF6, - 0xFE, - 0xEF, - 0x64, - 0x64, - 0x73, - 0x83, - 0x92, - 0x00, - 0x06, - 0xB4, - 0x00, - 0x03, - 0xB7, - 0xB7, - 0xAD, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x14, - 0xAB, - 0xAD, - 0xAB, - 0xAD, - 0xB7, - 0xAD, - 0xAB, - 0xAB, - 0xA0, - 0xA0, - 0x91, - 0x93, - 0x91, - 0x87, - 0x93, - 0x7E, - 0x91, - 0x85, - 0x93, - 0xAD, - 0x08, - 0xB7, - 0x00, - 0x0B, - 0xAD, - 0xB7, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x00, - 0x06, - 0x90, - 0x00, - 0x13, - 0x9D, - 0x90, - 0x9D, - 0x85, - 0x90, - 0x93, - 0x8B, - 0x88, - 0x88, - 0x75, - 0x75, - 0x7C, - 0x93, - 0x88, - 0x85, - 0x8B, - 0x88, - 0x91, - 0x6A, - 0x00, - 0x04, - 0x77, - 0x00, - 0x04, - 0x72, - 0x6A, - 0x72, - 0x68, - 0x05, - 0x51, - 0x00, - 0x6F, - 0x81, - 0x47, - 0x53, - 0x50, - 0x3A, - 0x50, - 0x48, - 0x37, - 0x31, - 0x43, - 0x43, - 0x17, - 0x5A, - 0x37, - 0x2B, - 0x43, - 0x53, - 0x2B, - 0x66, - 0x50, - 0x47, - 0x3D, - 0x3A, - 0x3D, - 0x3D, - 0x30, - 0x3D, - 0x3D, - 0x50, - 0x3B, - 0x43, - 0x43, - 0x37, - 0x63, - 0x2B, - 0x43, - 0x43, - 0x2B, - 0x66, - 0x53, - 0x3B, - 0x43, - 0x3B, - 0x45, - 0x1D, - 0x2C, - 0x53, - 0x2B, - 0x3A, - 0x53, - 0x47, - 0x30, - 0x3D, - 0x3D, - 0x1A, - 0x21, - 0x43, - 0x31, - 0x21, - 0x31, - 0x21, - 0x31, - 0x21, - 0x0C, - 0x31, - 0x18, - 0x18, - 0x5F, - 0x37, - 0x43, - 0x34, - 0x31, - 0x37, - 0x34, - 0x43, - 0x43, - 0x3B, - 0x45, - 0x3A, - 0x48, - 0x48, - 0x48, - 0x3A, - 0x23, - 0x08, - 0x0C, - 0x23, - 0x08, - 0x2C, - 0x66, - 0x45, - 0x2C, - 0x58, - 0x66, - 0x00, - 0x08, - 0x43, - 0x08, - 0x02, - 0x01, - 0x17, - 0x05, - 0x04, - 0x08, - 0x05, - 0x07, - 0x10, - 0x3C, - 0xF4, - 0xF9, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xBE, - 0xAF, - 0xA8, - 0xA8, - 0x04, - 0xAF, - 0x00, - 0x25, - 0xBE, - 0xBE, - 0xAF, - 0xBE, - 0xAF, - 0xA5, - 0xC6, - 0xBE, - 0xB1, - 0xBE, - 0xC6, - 0xB1, - 0xB1, - 0xC8, - 0xB9, - 0xB9, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xC8, - 0xBC, - 0xC8, - 0xB9, - 0xBC, - 0xCE, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0x00, - 0x05, - 0xCA, - 0x00, - 0x14, - 0xC1, - 0xC1, - 0xD6, - 0xCC, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xD6, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xD7, - 0xDB, - 0xD7, - 0xCD, - 0x08, - 0xD7, - 0x00, - 0x12, - 0xDA, - 0xDA, - 0xD7, - 0xDA, - 0xDA, - 0xD7, - 0xD7, - 0xDA, - 0xD7, - 0xDC, - 0xDA, - 0xD7, - 0xF8, - 0xDB, - 0xF2, - 0xD7, - 0xF2, - 0xEB, - 0x05, - 0xF2, - 0x00, - 0x14, - 0xE9, - 0xF5, - 0xED, - 0xFB, - 0xED, - 0xF6, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xFD, - 0xE2, - 0xFE, - 0x70, - 0x56, - 0x5C, - 0x74, - 0x77, - 0xA0, - 0xA0, - 0x04, - 0xB4, - 0x09, - 0xB7, - 0x00, - 0x13, - 0xAD, - 0xAD, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x9E, - 0x92, - 0x88, - 0x88, - 0x93, - 0x87, - 0x91, - 0xAD, - 0xAD, - 0x00, - 0x08, - 0xB7, - 0x00, - 0x2C, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x85, - 0x7C, - 0x8B, - 0x93, - 0x8B, - 0x8B, - 0x9E, - 0x93, - 0x7C, - 0x75, - 0x7C, - 0x7E, - 0x77, - 0x6E, - 0x68, - 0x72, - 0x6A, - 0x72, - 0x61, - 0x68, - 0x04, - 0x51, - 0x00, - 0x3F, - 0xA3, - 0x53, - 0x53, - 0x47, - 0x5A, - 0x50, - 0x54, - 0x17, - 0x43, - 0x5A, - 0x43, - 0x31, - 0x5A, - 0x31, - 0x5A, - 0x53, - 0x50, - 0x58, - 0x6B, - 0x54, - 0x50, - 0x48, - 0x48, - 0x3D, - 0x3D, - 0x48, - 0x3D, - 0x42, - 0x50, - 0x47, - 0x37, - 0x5A, - 0x2B, - 0x5A, - 0x2C, - 0x37, - 0x2B, - 0x3B, - 0x58, - 0x2C, - 0x37, - 0x58, - 0x3B, - 0x45, - 0x37, - 0x50, - 0x58, - 0x53, - 0x2B, - 0x54, - 0x47, - 0x30, - 0x20, - 0x44, - 0x30, - 0x20, - 0x44, - 0x31, - 0x31, - 0x21, - 0x31, - 0x1D, - 0x17, - 0x00, - 0x04, - 0x21, - 0x00, - 0x2C, - 0x43, - 0x48, - 0x37, - 0x31, - 0x31, - 0x34, - 0x3F, - 0x48, - 0x54, - 0x27, - 0x3B, - 0x3A, - 0x43, - 0x3F, - 0x3F, - 0x20, - 0x08, - 0x13, - 0x20, - 0x27, - 0x30, - 0x48, - 0x5F, - 0x5F, - 0x20, - 0x5F, - 0x53, - 0x00, - 0x13, - 0x18, - 0x08, - 0x03, - 0x10, - 0x04, - 0x10, - 0x08, - 0x04, - 0x04, - 0x04, - 0x08, - 0xC6, - 0xF7, - 0xF7, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA3, - 0xAF, - 0xAF, - 0xAF, - 0xA8, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xAF, - 0xBE, - 0xAF, - 0xBE, - 0xBE, - 0xBE, - 0xB1, - 0xC6, - 0xC6, - 0xB1, - 0xC6, - 0xC6, - 0xB9, - 0xC6, - 0xC6, - 0xBC, - 0xC8, - 0xB9, - 0xC8, - 0xB9, - 0xC8, - 0xB9, - 0xC3, - 0xBC, - 0xC8, - 0x07, - 0xC3, - 0x01, - 0xCA, - 0x01, - 0xC3, - 0x0A, - 0xCA, - 0x00, - 0x43, - 0xC1, - 0xCA, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xD7, - 0xCD, - 0xC7, - 0xD5, - 0xD5, - 0xCD, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD7, - 0xD7, - 0xD1, - 0xD7, - 0xD7, - 0xD7, - 0xD1, - 0xD7, - 0xD1, - 0xD7, - 0xD7, - 0xD1, - 0xDB, - 0xF8, - 0xD7, - 0xD7, - 0xF2, - 0xD5, - 0xDC, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xDC, - 0xF2, - 0xE9, - 0xE9, - 0xF2, - 0xF5, - 0xED, - 0xF5, - 0xED, - 0xFB, - 0xF6, - 0xFB, - 0xF6, - 0xCD, - 0xE1, - 0xF6, - 0xFE, - 0xFD, - 0x98, - 0x64, - 0x64, - 0x69, - 0x74, - 0x83, - 0x00, - 0x07, - 0xB4, - 0x06, - 0xB7, - 0x00, - 0x16, - 0xAD, - 0xB7, - 0xA4, - 0xB7, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0x9E, - 0xAB, - 0x9E, - 0xA0, - 0x9E, - 0x91, - 0x7E, - 0x88, - 0x91, - 0x93, - 0x93, - 0xAD, - 0xB7, - 0xAD, - 0x07, - 0xB7, - 0x00, - 0x07, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x04, - 0x90, - 0x90, - 0x9D, - 0x90, - 0x04, - 0x9D, - 0x00, - 0x8A, - 0x8B, - 0x90, - 0x93, - 0x8B, - 0x93, - 0x93, - 0x8B, - 0x8B, - 0x93, - 0x7C, - 0x7C, - 0x8B, - 0x91, - 0x7E, - 0x75, - 0x72, - 0x77, - 0x7E, - 0x6A, - 0x83, - 0x6A, - 0x68, - 0x61, - 0x61, - 0x5E, - 0x5E, - 0x36, - 0x6F, - 0x5F, - 0x5A, - 0x54, - 0x3A, - 0x50, - 0x53, - 0x31, - 0x43, - 0x43, - 0x5A, - 0x17, - 0x5A, - 0x31, - 0x43, - 0x37, - 0x43, - 0x63, - 0x5A, - 0x50, - 0x42, - 0x44, - 0x3D, - 0x48, - 0x3D, - 0x44, - 0x42, - 0x47, - 0x47, - 0x43, - 0x37, - 0x63, - 0x37, - 0x5A, - 0x43, - 0x53, - 0x27, - 0x43, - 0x5F, - 0x5A, - 0x27, - 0x53, - 0x53, - 0x2B, - 0x47, - 0x2C, - 0x47, - 0x53, - 0x43, - 0x30, - 0x48, - 0x3A, - 0x1A, - 0x30, - 0x25, - 0x34, - 0x2B, - 0x3F, - 0x21, - 0x21, - 0x17, - 0x3C, - 0x34, - 0x2B, - 0x31, - 0x31, - 0x17, - 0x45, - 0x43, - 0x34, - 0x3F, - 0x34, - 0x31, - 0x3F, - 0x3A, - 0x43, - 0x3B, - 0x47, - 0x50, - 0x48, - 0x3F, - 0x3F, - 0x18, - 0x23, - 0x38, - 0x0C, - 0x27, - 0x3B, - 0x2C, - 0x45, - 0x5F, - 0x3B, - 0x43, - 0x23, - 0x04, - 0x2B, - 0x07, - 0x00, - 0x04, - 0x31, - 0x05, - 0x04, - 0x04, - 0x05, - 0x10, - 0x04, - 0x84, - 0xF4, - 0xF9, - 0xF9, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x97, - 0xA8, - 0xAF, - 0xA8, - 0xAF, - 0xA8, - 0x97, - 0xBE, - 0xAF, - 0xAF, - 0xBE, - 0xAF, - 0xB1, - 0xAF, - 0xBE, - 0xB1, - 0xB1, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xBC, - 0xC8, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xAA, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xCA, - 0xC1, - 0xCA, - 0xC1, - 0xD6, - 0xC1, - 0x05, - 0xCD, - 0x00, - 0x0C, - 0xD5, - 0xCD, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xDB, - 0xD5, - 0xD5, - 0x0D, - 0xD7, - 0x00, - 0x43, - 0xF2, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xDB, - 0xF2, - 0xDB, - 0xF8, - 0xE9, - 0xF2, - 0xF2, - 0xED, - 0xF5, - 0xED, - 0xF5, - 0xED, - 0xFB, - 0xEF, - 0xFB, - 0xF6, - 0xC1, - 0xD1, - 0xFE, - 0xFD, - 0xFE, - 0xAA, - 0x60, - 0x4C, - 0x69, - 0x73, - 0x74, - 0x87, - 0xB4, - 0xB4, - 0xB4, - 0x92, - 0xB4, - 0xB4, - 0xB4, - 0xB7, - 0xA0, - 0x92, - 0x88, - 0xA0, - 0x91, - 0xAB, - 0xA4, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0x9E, - 0xAB, - 0xA4, - 0xAB, - 0x9E, - 0x91, - 0x9E, - 0x77, - 0x7E, - 0x88, - 0x88, - 0x93, - 0x9E, - 0xAD, - 0xAD, - 0x00, - 0x07, - 0xB7, - 0x00, - 0x1A, - 0xAD, - 0xB7, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x04, - 0x8B, - 0x00, - 0x80, - 0x88, - 0x7C, - 0x7C, - 0x88, - 0x92, - 0x77, - 0x77, - 0x77, - 0x68, - 0x61, - 0x61, - 0x68, - 0x68, - 0x61, - 0x5E, - 0x5E, - 0x51, - 0x60, - 0x81, - 0x50, - 0x50, - 0x43, - 0x47, - 0x50, - 0x43, - 0x2B, - 0x5A, - 0x5A, - 0x21, - 0x5A, - 0x2B, - 0x43, - 0x2B, - 0x37, - 0x43, - 0x6B, - 0x54, - 0x50, - 0x42, - 0x3D, - 0x3D, - 0x3D, - 0x44, - 0x42, - 0x50, - 0x54, - 0x3A, - 0x43, - 0x43, - 0x43, - 0x63, - 0x2C, - 0x50, - 0x58, - 0x2B, - 0x1D, - 0x50, - 0x50, - 0x3B, - 0x3B, - 0x37, - 0x3A, - 0x45, - 0x47, - 0x3A, - 0x58, - 0x37, - 0x48, - 0x3A, - 0x42, - 0x25, - 0x25, - 0x2E, - 0x31, - 0x3D, - 0x31, - 0x17, - 0x47, - 0x37, - 0x43, - 0x53, - 0x27, - 0x47, - 0x53, - 0x47, - 0x43, - 0x34, - 0x34, - 0x2E, - 0x31, - 0x37, - 0x3F, - 0x31, - 0x53, - 0x47, - 0x3A, - 0x3F, - 0x3F, - 0x20, - 0x18, - 0x3B, - 0x1D, - 0x13, - 0x42, - 0x53, - 0x30, - 0x42, - 0x37, - 0x5F, - 0x43, - 0x07, - 0x04, - 0x07, - 0x00, - 0x03, - 0x31, - 0x04, - 0x04, - 0x04, - 0x05, - 0x10, - 0x07, - 0x29, - 0xEC, - 0xF7, - 0xE0, - 0xFD, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x03, - 0x97, - 0xAF, - 0x97, - 0x00, - 0x07, - 0xAF, - 0x00, - 0x1B, - 0xA5, - 0xBE, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xC6, - 0xC8, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xBC, - 0xC8, - 0xBC, - 0xC3, - 0xC8, - 0x00, - 0x06, - 0xC3, - 0x00, - 0x23, - 0xCA, - 0xCA, - 0xC3, - 0xC3, - 0xE2, - 0xCA, - 0xC1, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xCC, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xD7, - 0xCD, - 0xCD, - 0xC7, - 0xD7, - 0xD7, - 0xD1, - 0xD7, - 0xD1, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x2A, - 0xD5, - 0xD7, - 0xD5, - 0xD7, - 0xF2, - 0xD7, - 0xF2, - 0xD7, - 0xD7, - 0xF2, - 0xD7, - 0xF2, - 0xDC, - 0xF2, - 0xEF, - 0xF2, - 0xF2, - 0xED, - 0xF2, - 0xED, - 0xFB, - 0xF2, - 0xFB, - 0xEF, - 0xEF, - 0xFD, - 0xFD, - 0xEF, - 0x64, - 0xE1, - 0xFE, - 0xFD, - 0xCE, - 0x4D, - 0x64, - 0x64, - 0x69, - 0x68, - 0x74, - 0x83, - 0xB4, - 0x83, - 0x04, - 0xB4, - 0x00, - 0x1C, - 0x83, - 0x83, - 0x74, - 0x68, - 0x72, - 0x74, - 0x77, - 0x83, - 0xA0, - 0xA0, - 0xAD, - 0xAB, - 0xA0, - 0x93, - 0xA0, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0x77, - 0x88, - 0x88, - 0x77, - 0x88, - 0x91, - 0x93, - 0xA0, - 0x9E, - 0x04, - 0xB7, - 0x00, - 0x09, - 0xAD, - 0xAD, - 0xAD, - 0xB7, - 0xAD, - 0xB7, - 0xAD, - 0xA4, - 0xA4, - 0x00, - 0x05, - 0x9D, - 0x00, - 0x04, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x04, - 0xA4, - 0x00, - 0x34, - 0x9D, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x9D, - 0x93, - 0x8B, - 0x88, - 0x8B, - 0x85, - 0x93, - 0x85, - 0x88, - 0x77, - 0x6E, - 0x61, - 0x61, - 0x72, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x5E, - 0x61, - 0x5E, - 0x51, - 0x6D, - 0x6B, - 0x58, - 0x5A, - 0x54, - 0x50, - 0x48, - 0x53, - 0x17, - 0x43, - 0x43, - 0x2B, - 0x43, - 0x2B, - 0x43, - 0x31, - 0x43, - 0x5A, - 0x5A, - 0x53, - 0x48, - 0x3F, - 0x3F, - 0x3D, - 0x3D, - 0x04, - 0x42, - 0x00, - 0x52, - 0x3A, - 0x5A, - 0x2B, - 0x63, - 0x2B, - 0x53, - 0x47, - 0x37, - 0x31, - 0x43, - 0x34, - 0x5F, - 0x47, - 0x54, - 0x47, - 0x3D, - 0x3A, - 0x54, - 0x53, - 0x37, - 0x50, - 0x34, - 0x43, - 0x5F, - 0x20, - 0x2E, - 0x25, - 0x3D, - 0x21, - 0x37, - 0x50, - 0x3B, - 0x3B, - 0x45, - 0x53, - 0x53, - 0x45, - 0x45, - 0x50, - 0x37, - 0x3F, - 0x34, - 0x34, - 0x34, - 0x3F, - 0x25, - 0x2B, - 0x2B, - 0x48, - 0x3F, - 0x48, - 0x2E, - 0x18, - 0x30, - 0x3B, - 0x08, - 0x0C, - 0x45, - 0x53, - 0x47, - 0x21, - 0x5F, - 0x50, - 0x48, - 0x00, - 0x07, - 0x00, - 0x00, - 0x0C, - 0x21, - 0x04, - 0x10, - 0x04, - 0x04, - 0x04, - 0x22, - 0xF7, - 0xF9, - 0xDF, - 0xFE, - 0xDF, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x17, - 0xA8, - 0xAF, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0x97, - 0xAF, - 0xAF, - 0xAF, - 0xB1, - 0xAF, - 0xAF, - 0xBE, - 0xBE, - 0xB1, - 0xBE, - 0xB1, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xB1, - 0x00, - 0x07, - 0xB9, - 0x00, - 0x1B, - 0xC8, - 0xBC, - 0xBC, - 0xC3, - 0xC8, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xBC, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xD4, - 0xAA, - 0xCA, - 0xCA, - 0xCD, - 0xCA, - 0xC1, - 0xCA, - 0xCC, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x57, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0xD5, - 0xCD, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD7, - 0xD1, - 0xDC, - 0xF8, - 0xD5, - 0xD7, - 0xF2, - 0xF2, - 0xD7, - 0xD7, - 0xD5, - 0xF8, - 0xDB, - 0xD7, - 0xF2, - 0xF2, - 0xE6, - 0xED, - 0xF2, - 0xF2, - 0xF2, - 0xF5, - 0xF6, - 0xF2, - 0xF6, - 0xF2, - 0xFB, - 0xFD, - 0xEF, - 0xFD, - 0xF6, - 0x94, - 0xB2, - 0xF6, - 0xE0, - 0xD2, - 0x65, - 0x39, - 0x70, - 0x64, - 0x74, - 0x68, - 0x74, - 0x92, - 0x83, - 0x69, - 0x87, - 0x92, - 0x83, - 0x61, - 0x68, - 0x68, - 0x5C, - 0x74, - 0x5C, - 0x69, - 0x69, - 0x68, - 0x83, - 0x88, - 0x92, - 0x92, - 0x92, - 0x93, - 0x92, - 0x91, - 0x88, - 0x88, - 0x77, - 0x00, - 0x04, - 0x7E, - 0x00, - 0xA8, - 0x87, - 0x87, - 0x9E, - 0x92, - 0xA0, - 0xB4, - 0xAB, - 0xB4, - 0xA0, - 0xAB, - 0xAB, - 0xAD, - 0xAD, - 0xA4, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x9E, - 0x85, - 0x90, - 0x8B, - 0x88, - 0x6E, - 0x61, - 0x6A, - 0x6E, - 0x77, - 0x87, - 0x77, - 0x77, - 0x72, - 0x6A, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x5E, - 0x57, - 0x81, - 0x58, - 0x59, - 0x43, - 0x50, - 0x50, - 0x5A, - 0x43, - 0x43, - 0x43, - 0x5A, - 0x2B, - 0x37, - 0x43, - 0x2B, - 0x50, - 0x50, - 0x53, - 0x5A, - 0x50, - 0x3F, - 0x3D, - 0x48, - 0x3D, - 0x30, - 0x44, - 0x42, - 0x54, - 0x48, - 0x2B, - 0x2C, - 0x58, - 0x58, - 0x30, - 0x43, - 0x3A, - 0x37, - 0x2B, - 0x54, - 0x5F, - 0x47, - 0x47, - 0x3D, - 0x47, - 0x48, - 0x47, - 0x58, - 0x63, - 0x27, - 0x50, - 0x25, - 0x50, - 0x47, - 0x25, - 0x3D, - 0x2E, - 0x20, - 0x53, - 0x53, - 0x3B, - 0x45, - 0x37, - 0x47, - 0x47, - 0x37, - 0x2C, - 0x53, - 0x37, - 0x37, - 0x31, - 0x31, - 0x37, - 0x27, - 0x66, - 0x27, - 0x45, - 0x1A, - 0x31, - 0x31, - 0x1A, - 0x23, - 0x25, - 0x2C, - 0x18, - 0x08, - 0x54, - 0x53, - 0x47, - 0x13, - 0x5F, - 0x31, - 0x13, - 0x07, - 0x01, - 0x01, - 0x10, - 0x13, - 0x21, - 0x08, - 0x09, - 0x09, - 0x10, - 0x07, - 0xF4, - 0xF7, - 0xF9, - 0xF9, - 0xEC, - 0xF9, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA3, - 0x9A, - 0xA8, - 0x9A, - 0xAF, - 0xA8, - 0x07, - 0xAF, - 0x00, - 0x18, - 0xB1, - 0xAF, - 0xC6, - 0xB1, - 0xBE, - 0xB1, - 0xC6, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xB9, - 0xC6, - 0xB9, - 0xB9, - 0xC8, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0x07, - 0xC3, - 0x00, - 0x0F, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xC3, - 0xCC, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x1E, - 0xD6, - 0xCD, - 0xCD, - 0xDC, - 0xC1, - 0xDB, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD7, - 0xD5, - 0xD5, - 0xDC, - 0xD7, - 0xF2, - 0xF2, - 0xDC, - 0x04, - 0xF2, - 0x00, - 0x30, - 0xED, - 0xED, - 0xED, - 0xF2, - 0xFB, - 0xED, - 0xFD, - 0xF6, - 0xFB, - 0xFD, - 0xF6, - 0xFD, - 0xE6, - 0x64, - 0xCA, - 0xC9, - 0x74, - 0x71, - 0x4D, - 0x4C, - 0x4B, - 0x73, - 0x5E, - 0x74, - 0x83, - 0x83, - 0x4B, - 0x83, - 0x83, - 0x74, - 0x51, - 0x46, - 0x51, - 0x5C, - 0x5C, - 0x5C, - 0x46, - 0x46, - 0x5E, - 0x5C, - 0x5C, - 0x74, - 0x6E, - 0x77, - 0x87, - 0x77, - 0x83, - 0x7E, - 0x04, - 0x87, - 0x00, - 0x06, - 0x77, - 0x72, - 0x77, - 0x7E, - 0x87, - 0x7E, - 0x04, - 0x92, - 0x00, - 0x2B, - 0xA0, - 0x93, - 0x9E, - 0xA0, - 0xAD, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9D, - 0x8B, - 0x90, - 0x9D, - 0x9D, - 0x8B, - 0xA4, - 0x7C, - 0x93, - 0x93, - 0x88, - 0x88, - 0x6E, - 0x87, - 0x7E, - 0x77, - 0x72, - 0x72, - 0x77, - 0x00, - 0x04, - 0x68, - 0x00, - 0x71, - 0x61, - 0x5E, - 0x51, - 0x66, - 0x63, - 0x50, - 0x54, - 0x48, - 0x48, - 0x43, - 0x47, - 0x43, - 0x31, - 0x43, - 0x2B, - 0x5A, - 0x43, - 0x2B, - 0x53, - 0x31, - 0x63, - 0x50, - 0x50, - 0x44, - 0x3F, - 0x31, - 0x34, - 0x47, - 0x54, - 0x43, - 0x27, - 0x50, - 0x47, - 0x58, - 0x3A, - 0x63, - 0x47, - 0x3D, - 0x50, - 0x3F, - 0x31, - 0x43, - 0x5F, - 0x47, - 0x2B, - 0x48, - 0x3F, - 0x42, - 0x44, - 0x47, - 0x54, - 0x5A, - 0x2B, - 0x43, - 0x2B, - 0x58, - 0x30, - 0x1A, - 0x34, - 0x54, - 0x27, - 0x3B, - 0x47, - 0x47, - 0x3A, - 0x3A, - 0x47, - 0x45, - 0x34, - 0x53, - 0x31, - 0x3F, - 0x31, - 0x47, - 0x3B, - 0x53, - 0x3B, - 0x5F, - 0x5F, - 0x66, - 0x2E, - 0x1A, - 0x2C, - 0x21, - 0x1A, - 0x20, - 0x2E, - 0x25, - 0x5F, - 0x47, - 0x3A, - 0x04, - 0x5F, - 0x50, - 0x02, - 0x01, - 0x02, - 0x10, - 0x08, - 0x17, - 0x1B, - 0x04, - 0x04, - 0x09, - 0x04, - 0xB9, - 0xF7, - 0xF9, - 0xF9, - 0xEC, - 0xF9, - 0xDF, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xAF, - 0x97, - 0x97, - 0xA8, - 0x9A, - 0xA8, - 0xAF, - 0x97, - 0xAF, - 0xAF, - 0xAF, - 0x9A, - 0xAF, - 0xB1, - 0xC6, - 0xA5, - 0xBE, - 0xB1, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x04, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0x05, - 0xBC, - 0x00, - 0xFF, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xC3, - 0xD4, - 0xAA, - 0xCA, - 0xC3, - 0xC1, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCA, - 0xCA, - 0xD6, - 0xCA, - 0xC1, - 0xC1, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xDC, - 0xCD, - 0xD5, - 0xD7, - 0xCD, - 0xD5, - 0xD7, - 0xDC, - 0xD5, - 0xD7, - 0xD7, - 0xD7, - 0xD1, - 0xD5, - 0xD1, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xF2, - 0xD7, - 0xD5, - 0xF2, - 0xDC, - 0xDC, - 0xF2, - 0xDC, - 0xF2, - 0xF2, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xEF, - 0xF2, - 0xF6, - 0xED, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xFD, - 0xE2, - 0x99, - 0x8E, - 0xBB, - 0x77, - 0x6D, - 0x4E, - 0x57, - 0x4C, - 0x4B, - 0x69, - 0x5E, - 0x69, - 0x87, - 0x24, - 0x69, - 0x87, - 0x5C, - 0x36, - 0x46, - 0x36, - 0x36, - 0x41, - 0x5C, - 0x36, - 0x4B, - 0x36, - 0x5C, - 0x4B, - 0x46, - 0x5C, - 0x51, - 0x68, - 0x5E, - 0x6A, - 0x74, - 0x68, - 0x72, - 0x77, - 0x72, - 0x6A, - 0x68, - 0x72, - 0x72, - 0x77, - 0x77, - 0x7E, - 0x87, - 0x87, - 0x87, - 0x7E, - 0x88, - 0x91, - 0x92, - 0x93, - 0x92, - 0x9D, - 0x90, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x85, - 0x91, - 0x88, - 0x7E, - 0x87, - 0x77, - 0x77, - 0x72, - 0x77, - 0x6A, - 0x72, - 0x68, - 0x6A, - 0x68, - 0x5E, - 0x61, - 0x51, - 0x5A, - 0x5A, - 0x54, - 0x59, - 0x48, - 0x50, - 0x48, - 0x5A, - 0x43, - 0x43, - 0x43, - 0x37, - 0x37, - 0x2B, - 0x5A, - 0x2B, - 0x3F, - 0x63, - 0x58, - 0x34, - 0x3D, - 0x48, - 0x30, - 0x37, - 0x54, - 0x47, - 0x1D, - 0x43, - 0x3B, - 0x2B, - 0x6B, - 0x54, - 0x2C, - 0x48, - 0x34, - 0x50, - 0x34, - 0x3F, - 0x53, - 0x53, - 0x58, - 0x3A, - 0x48, - 0x48, - 0x3F, - 0x3D, - 0x48, - 0x20, - 0x43, - 0x43, - 0x1D, - 0x37, - 0x37, - 0x3A, - 0x27, - 0x38, - 0x27, - 0x42, - 0x45, - 0x47, - 0x3A, - 0x47, - 0x38, - 0x3A, - 0x50, - 0x1D, - 0x34, - 0x34, - 0x31, - 0x34, - 0x45, - 0x3B, - 0x45, - 0x47, - 0x45, - 0x27, - 0x5F, - 0x5F, - 0x20, - 0x25, - 0x42, - 0x18, - 0x00, - 0x00, - 0x1C, - 0x3D, - 0x20, - 0x43, - 0x5F, - 0x42, - 0x27, - 0x04, - 0x66, - 0x2E, - 0x00, - 0x00, - 0x02, - 0x29, - 0x17, - 0x17, - 0x04, - 0x05, - 0x0B, - 0x07, - 0xA5, - 0xF7, - 0xF9, - 0xF7, - 0xF4, - 0xEC, - 0xF9, - 0xEC, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x15, - 0x86, - 0xAF, - 0x97, - 0xAF, - 0xAF, - 0xA8, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0xBE, - 0xAF, - 0xB1, - 0x89, - 0xBE, - 0xB1, - 0xBE, - 0xAF, - 0xC6, - 0xBE, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x13, - 0xB9, - 0xC6, - 0xB9, - 0xC8, - 0xB9, - 0xB9, - 0xBC, - 0xB9, - 0xC8, - 0xC8, - 0xBC, - 0xBC, - 0xC8, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xBC, - 0x00, - 0x05, - 0xC3, - 0x04, - 0xCA, - 0x00, - 0x74, - 0xC1, - 0xCA, - 0xC1, - 0xC1, - 0xCC, - 0xCC, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0xD1, - 0xD5, - 0xD7, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0xDC, - 0xD7, - 0xD5, - 0xF2, - 0xD7, - 0xD5, - 0xD7, - 0xD5, - 0xF2, - 0xDC, - 0xF2, - 0xD7, - 0xF8, - 0xF2, - 0xDC, - 0xDC, - 0xF2, - 0xED, - 0xF2, - 0xED, - 0xF2, - 0xF2, - 0xF5, - 0xF6, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xFD, - 0xFD, - 0xBA, - 0x82, - 0x73, - 0x73, - 0x64, - 0x5D, - 0x4D, - 0x4C, - 0x4B, - 0x5C, - 0x5C, - 0x51, - 0x69, - 0x5C, - 0x4B, - 0x69, - 0x51, - 0x36, - 0x15, - 0x24, - 0x15, - 0x24, - 0x24, - 0x41, - 0x41, - 0x4C, - 0x4C, - 0x2D, - 0x26, - 0x36, - 0x36, - 0x46, - 0x51, - 0x51, - 0x5C, - 0x5E, - 0x5E, - 0x69, - 0x5E, - 0x69, - 0x68, - 0x68, - 0x68, - 0x72, - 0x68, - 0x74, - 0x77, - 0x77, - 0x72, - 0x72, - 0x77, - 0x87, - 0x87, - 0x88, - 0x8B, - 0x91, - 0x93, - 0x9D, - 0x07, - 0x90, - 0x00, - 0x31, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x9E, - 0x91, - 0x93, - 0x75, - 0x87, - 0x77, - 0x77, - 0x77, - 0x6A, - 0x77, - 0x72, - 0x72, - 0x74, - 0x61, - 0x5E, - 0x51, - 0x51, - 0x43, - 0x6B, - 0x50, - 0x5A, - 0x48, - 0x47, - 0x47, - 0x50, - 0x37, - 0x5A, - 0x2C, - 0x5F, - 0x43, - 0x43, - 0x5A, - 0x00, - 0x04, - 0x43, - 0x00, - 0x5B, - 0x63, - 0x48, - 0x2C, - 0x3D, - 0x54, - 0x43, - 0x3B, - 0x37, - 0x53, - 0x2B, - 0x53, - 0x53, - 0x63, - 0x3D, - 0x48, - 0x48, - 0x3D, - 0x30, - 0x48, - 0x50, - 0x53, - 0x48, - 0x50, - 0x31, - 0x48, - 0x42, - 0x44, - 0x3D, - 0x48, - 0x3A, - 0x3F, - 0x5A, - 0x31, - 0x17, - 0x31, - 0x58, - 0x1A, - 0x3A, - 0x42, - 0x54, - 0x50, - 0x3A, - 0x47, - 0x3A, - 0x3D, - 0x3D, - 0x47, - 0x48, - 0x2B, - 0x47, - 0x2C, - 0x3B, - 0x53, - 0x53, - 0x50, - 0x45, - 0x5F, - 0x5F, - 0x5F, - 0x45, - 0x1A, - 0x45, - 0x23, - 0x54, - 0x20, - 0x47, - 0x53, - 0x3A, - 0x23, - 0x1A, - 0x54, - 0x02, - 0x01, - 0x01, - 0x04, - 0x21, - 0x31, - 0x29, - 0x05, - 0x0B, - 0x07, - 0x9B, - 0xFE, - 0xEC, - 0xFE, - 0xF9, - 0xF4, - 0xF9, - 0xDF, - 0xF9, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x97, - 0x97, - 0x97, - 0xAF, - 0xAF, - 0x8D, - 0x97, - 0xAF, - 0x97, - 0x00, - 0x05, - 0xAF, - 0x00, - 0x04, - 0xBE, - 0xAF, - 0xBE, - 0xC6, - 0x06, - 0xB1, - 0x01, - 0xB9, - 0x01, - 0xB1, - 0x07, - 0xB9, - 0x00, - 0x20, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xD4, - 0xCA, - 0xC3, - 0xC5, - 0xCA, - 0xCA, - 0xCA, - 0xC1, - 0xCC, - 0xCA, - 0xCC, - 0xCD, - 0xCD, - 0xCA, - 0xCD, - 0xD6, - 0xD6, - 0x04, - 0xCD, - 0x04, - 0xD5, - 0x00, - 0x51, - 0xC7, - 0xCF, - 0xD7, - 0xD5, - 0xD7, - 0xD7, - 0xD5, - 0xD5, - 0xD7, - 0xD5, - 0xD5, - 0xF2, - 0xD7, - 0xF2, - 0xD1, - 0xF2, - 0xD7, - 0xDC, - 0xD6, - 0xDC, - 0xF2, - 0xF5, - 0xDC, - 0xDC, - 0xF5, - 0xF5, - 0xED, - 0xF6, - 0xF2, - 0xFB, - 0xED, - 0xF6, - 0xEF, - 0xFD, - 0xFD, - 0xFE, - 0xFD, - 0xFD, - 0xD6, - 0x70, - 0x57, - 0x73, - 0x5C, - 0x5D, - 0x39, - 0x32, - 0x4C, - 0x4B, - 0x5C, - 0x46, - 0x5E, - 0x69, - 0x24, - 0x64, - 0x5C, - 0x15, - 0x0D, - 0x0D, - 0x0D, - 0x28, - 0x41, - 0x56, - 0x4C, - 0x4C, - 0x26, - 0x26, - 0x1F, - 0x15, - 0x24, - 0x24, - 0x24, - 0x36, - 0x5C, - 0x46, - 0x5C, - 0x51, - 0x5C, - 0x5E, - 0x5C, - 0x69, - 0x5C, - 0x00, - 0x04, - 0x68, - 0x00, - 0x0C, - 0x6A, - 0x68, - 0x6A, - 0x6A, - 0x83, - 0x87, - 0x7E, - 0x7E, - 0x88, - 0x7C, - 0x85, - 0x93, - 0x06, - 0x8B, - 0x00, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xAD, - 0xA4, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x9D, - 0xA0, - 0x85, - 0x91, - 0x91, - 0x7E, - 0x88, - 0x87, - 0x77, - 0x77, - 0x87, - 0x72, - 0x72, - 0x61, - 0x72, - 0x68, - 0x5E, - 0x51, - 0x51, - 0x5B, - 0x63, - 0x5A, - 0x50, - 0x5A, - 0x47, - 0x47, - 0x50, - 0x48, - 0x5F, - 0x37, - 0x34, - 0x43, - 0x5A, - 0x5A, - 0x5A, - 0x44, - 0x43, - 0x43, - 0x47, - 0x48, - 0x3D, - 0x25, - 0x25, - 0x54, - 0x5F, - 0x63, - 0x2B, - 0x43, - 0x5A, - 0x37, - 0x50, - 0x54, - 0x30, - 0x48, - 0x48, - 0x30, - 0x54, - 0x53, - 0x54, - 0x50, - 0x3D, - 0x3F, - 0x3F, - 0x34, - 0x44, - 0x3D, - 0x48, - 0x34, - 0x5A, - 0x21, - 0x43, - 0x25, - 0x3A, - 0x53, - 0x48, - 0x25, - 0x2B, - 0x3B, - 0x47, - 0x50, - 0x50, - 0x3A, - 0x2C, - 0x3F, - 0x34, - 0x47, - 0x31, - 0x2B, - 0x3B, - 0x58, - 0x47, - 0x38, - 0x47, - 0x47, - 0x3B, - 0x3B, - 0x25, - 0x20, - 0x13, - 0x3F, - 0x3A, - 0x3A, - 0x20, - 0x47, - 0x47, - 0x30, - 0x07, - 0x53, - 0x18, - 0x00, - 0x01, - 0x10, - 0x08, - 0x31, - 0x13, - 0x04, - 0x09, - 0x07, - 0xBC, - 0xF4, - 0xF7, - 0xF4, - 0xDF, - 0xF9, - 0xF7, - 0xF4, - 0xF9, - 0xEC, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x9A, - 0x86, - 0xAF, - 0x86, - 0x97, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xB1, - 0xB9, - 0x89, - 0xAF, - 0xB1, - 0xB1, - 0xC6, - 0xB1, - 0xC6, - 0xB1, - 0xB9, - 0xB1, - 0x00, - 0x05, - 0xB9, - 0x01, - 0xBC, - 0x01, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x05, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xCA, - 0x00, - 0x04, - 0xC3, - 0x00, - 0x0C, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xCA, - 0xCC, - 0xCD, - 0xCA, - 0xCC, - 0xCC, - 0xD6, - 0x05, - 0xCD, - 0x00, - 0x0A, - 0xD6, - 0xD5, - 0xCD, - 0xD5, - 0xD5, - 0xD5, - 0xDC, - 0xD5, - 0xD5, - 0xD7, - 0x04, - 0xD5, - 0x01, - 0xF2, - 0x05, - 0xD5, - 0x00, - 0x04, - 0xDC, - 0xD5, - 0xF2, - 0xD5, - 0x06, - 0xF2, - 0x00, - 0xDF, - 0xF5, - 0xED, - 0xF5, - 0xF5, - 0xF6, - 0xF5, - 0xF6, - 0xF5, - 0xFD, - 0xFB, - 0xF6, - 0xF6, - 0xFD, - 0xFD, - 0xE2, - 0x82, - 0x70, - 0x64, - 0x51, - 0x4D, - 0x2A, - 0x32, - 0x26, - 0x36, - 0x5C, - 0x46, - 0x46, - 0x68, - 0x26, - 0x57, - 0x46, - 0x24, - 0x0D, - 0x03, - 0x0A, - 0x2D, - 0x26, - 0x4C, - 0x67, - 0x1F, - 0x1F, - 0x19, - 0x1F, - 0x19, - 0x26, - 0x0D, - 0x15, - 0x36, - 0x24, - 0x36, - 0x36, - 0x46, - 0x4B, - 0x36, - 0x46, - 0x51, - 0x51, - 0x5E, - 0x5C, - 0x5E, - 0x69, - 0x69, - 0x61, - 0x68, - 0x68, - 0x77, - 0x6A, - 0x77, - 0x75, - 0x7C, - 0x7E, - 0x7E, - 0x7C, - 0x7C, - 0x85, - 0x7C, - 0x7C, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x9E, - 0x8B, - 0x8B, - 0x8B, - 0x93, - 0x85, - 0xA0, - 0x88, - 0x88, - 0x77, - 0x87, - 0x77, - 0x87, - 0x87, - 0x72, - 0x72, - 0x5E, - 0x5E, - 0x51, - 0x51, - 0x57, - 0x5A, - 0x5F, - 0x48, - 0x50, - 0x48, - 0x43, - 0x47, - 0x3A, - 0x6B, - 0x37, - 0x34, - 0x43, - 0x50, - 0x43, - 0x5A, - 0x43, - 0x21, - 0x34, - 0x66, - 0x42, - 0x1A, - 0x47, - 0x1D, - 0x3B, - 0x43, - 0x43, - 0x37, - 0x53, - 0x53, - 0x47, - 0x50, - 0x50, - 0x3F, - 0x42, - 0x44, - 0x3D, - 0x3D, - 0x42, - 0x58, - 0x3A, - 0x48, - 0x3A, - 0x48, - 0x3F, - 0x3F, - 0x3F, - 0x3D, - 0x44, - 0x2B, - 0x37, - 0x17, - 0x50, - 0x1D, - 0x3B, - 0x25, - 0x3F, - 0x3A, - 0x3D, - 0x58, - 0x47, - 0x3B, - 0x48, - 0x3D, - 0x3F, - 0x27, - 0x3B, - 0x25, - 0x47, - 0x47, - 0x3B, - 0x50, - 0x58, - 0x3A, - 0x3B, - 0x3B, - 0x38, - 0x1A, - 0x34, - 0x31, - 0x17, - 0x47, - 0x47, - 0x20, - 0x54, - 0x48, - 0x23, - 0x04, - 0x38, - 0x01, - 0x00, - 0x02, - 0x07, - 0x18, - 0x31, - 0x10, - 0x09, - 0x13, - 0xE3, - 0xF4, - 0xF7, - 0xF9, - 0xF9, - 0xF7, - 0xDF, - 0xF9, - 0xDF, - 0xEC, - 0xEC, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA3, - 0x84, - 0x97, - 0x9A, - 0xA8, - 0x97, - 0x97, - 0xAF, - 0xAF, - 0x97, - 0xAF, - 0xAF, - 0xAF, - 0x9A, - 0xA5, - 0xAF, - 0xBE, - 0xA5, - 0xC8, - 0xAF, - 0x05, - 0xB1, - 0x00, - 0x0A, - 0xC6, - 0xB9, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0xB9, - 0xC8, - 0x04, - 0xBC, - 0x00, - 0x1F, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xAA, - 0xC3, - 0xC3, - 0xC3, - 0xAA, - 0xCA, - 0xC3, - 0xCA, - 0xC1, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xCD, - 0xCC, - 0xCA, - 0xD6, - 0xCC, - 0xCC, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0x00, - 0x0F, - 0xD5, - 0x00, - 0x57, - 0xF2, - 0xF2, - 0xD7, - 0xF2, - 0xD5, - 0xF2, - 0xF2, - 0xDC, - 0xF2, - 0xF2, - 0xDC, - 0xF2, - 0xF5, - 0xED, - 0xEF, - 0xF5, - 0xEF, - 0xED, - 0xFB, - 0xFB, - 0xFD, - 0xCC, - 0xE1, - 0xF6, - 0xF6, - 0xB2, - 0xFB, - 0xAA, - 0x4C, - 0x4C, - 0x36, - 0x24, - 0x32, - 0x1F, - 0x15, - 0x15, - 0x46, - 0x5C, - 0x46, - 0x5C, - 0x4B, - 0x4B, - 0x4C, - 0x24, - 0x26, - 0x0A, - 0x0A, - 0x2D, - 0x26, - 0x4C, - 0x26, - 0x19, - 0x1C, - 0x32, - 0x2F, - 0x19, - 0x0D, - 0x0D, - 0x0D, - 0x15, - 0x15, - 0x41, - 0x4B, - 0x24, - 0x41, - 0x24, - 0x36, - 0x36, - 0x51, - 0x36, - 0x51, - 0x46, - 0x5E, - 0x69, - 0x5E, - 0x5E, - 0x68, - 0x72, - 0x72, - 0x6A, - 0x6E, - 0x77, - 0x6E, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x03, - 0x8B, - 0x90, - 0x90, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x30, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9E, - 0x9E, - 0x8B, - 0x93, - 0xA4, - 0x9E, - 0x91, - 0x93, - 0x75, - 0x87, - 0x85, - 0x87, - 0x87, - 0x72, - 0x61, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x51, - 0x36, - 0x81, - 0x5A, - 0x48, - 0x50, - 0x53, - 0x37, - 0x66, - 0x37, - 0x58, - 0x43, - 0x48, - 0x37, - 0x50, - 0x17, - 0x43, - 0x34, - 0x38, - 0x43, - 0x45, - 0x3A, - 0x58, - 0x04, - 0x47, - 0x00, - 0x4B, - 0x6B, - 0x53, - 0x5A, - 0x43, - 0x58, - 0x34, - 0x54, - 0x30, - 0x59, - 0x42, - 0x3D, - 0x3D, - 0x63, - 0x48, - 0x50, - 0x3D, - 0x3F, - 0x31, - 0x3F, - 0x3F, - 0x3D, - 0x3F, - 0x34, - 0x21, - 0x47, - 0x2E, - 0x38, - 0x54, - 0x48, - 0x34, - 0x34, - 0x3D, - 0x42, - 0x47, - 0x3B, - 0x48, - 0x3D, - 0x48, - 0x34, - 0x3B, - 0x3B, - 0x3D, - 0x1D, - 0x42, - 0x58, - 0x47, - 0x3A, - 0x48, - 0x3B, - 0x45, - 0x38, - 0x30, - 0x30, - 0x31, - 0x3F, - 0x45, - 0x54, - 0x20, - 0x53, - 0x30, - 0x08, - 0x21, - 0x07, - 0x00, - 0x01, - 0x01, - 0x07, - 0x17, - 0x10, - 0x08, - 0x2F, - 0xDF, - 0xF7, - 0xDF, - 0xF7, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x05, - 0xF4, - 0xF9, - 0xEC, - 0xDF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x84, - 0x97, - 0x97, - 0x86, - 0x06, - 0x97, - 0x00, - 0x0C, - 0xA5, - 0x89, - 0xAF, - 0xAF, - 0xAF, - 0xA5, - 0xA5, - 0xB1, - 0x89, - 0xB1, - 0xB1, - 0xBE, - 0x05, - 0xB1, - 0x04, - 0xB9, - 0x00, - 0x29, - 0xB1, - 0xB9, - 0xB9, - 0x8F, - 0xB9, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xC8, - 0xCA, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xC3, - 0xCA, - 0xCC, - 0xCC, - 0xCA, - 0xCC, - 0xCA, - 0xCD, - 0xD6, - 0xCC, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD5, - 0xCD, - 0xD5, - 0xCD, - 0x00, - 0x06, - 0xD5, - 0x00, - 0x05, - 0xF2, - 0xD5, - 0xD5, - 0xD5, - 0xF2, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x3C, - 0xF2, - 0xDC, - 0xD5, - 0xF2, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xED, - 0xF5, - 0xF5, - 0xF5, - 0xF2, - 0xFB, - 0xFD, - 0xF5, - 0xF6, - 0xF6, - 0xEF, - 0x67, - 0xE1, - 0xFD, - 0xBA, - 0x70, - 0x95, - 0x4D, - 0x4C, - 0x26, - 0x15, - 0x32, - 0x1F, - 0x0D, - 0x15, - 0x24, - 0x46, - 0x46, - 0x36, - 0x5C, - 0x32, - 0x4C, - 0x26, - 0x1F, - 0x1F, - 0x0A, - 0x12, - 0x49, - 0x41, - 0x26, - 0x11, - 0x19, - 0x1F, - 0x2A, - 0x1E, - 0x1C, - 0x0F, - 0x0D, - 0x0D, - 0x15, - 0x26, - 0x26, - 0x04, - 0x15, - 0x00, - 0x20, - 0x24, - 0x36, - 0x36, - 0x36, - 0x46, - 0x4B, - 0x5C, - 0x5C, - 0x51, - 0x72, - 0x72, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x75, - 0x72, - 0x6E, - 0x7C, - 0x6E, - 0x7C, - 0x6E, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x8B, - 0x88, - 0x8B, - 0x9E, - 0x9D, - 0x9D, - 0x07, - 0x90, - 0x00, - 0x23, - 0x8B, - 0x85, - 0x93, - 0x8B, - 0x8B, - 0x93, - 0x88, - 0x92, - 0x75, - 0x72, - 0x6A, - 0x68, - 0x77, - 0x61, - 0x61, - 0x5E, - 0x51, - 0x51, - 0x46, - 0x51, - 0x6B, - 0x50, - 0x54, - 0x58, - 0x53, - 0x50, - 0x38, - 0x53, - 0x47, - 0x43, - 0x50, - 0x59, - 0x53, - 0x21, - 0x43, - 0x00, - 0x05, - 0x37, - 0x00, - 0x59, - 0x47, - 0x25, - 0x3A, - 0x3A, - 0x53, - 0x53, - 0x6B, - 0x53, - 0x5A, - 0x47, - 0x34, - 0x50, - 0x3F, - 0x3F, - 0x48, - 0x44, - 0x30, - 0x53, - 0x25, - 0x54, - 0x3D, - 0x48, - 0x3F, - 0x34, - 0x30, - 0x3D, - 0x3A, - 0x3D, - 0x23, - 0x31, - 0x0C, - 0x1A, - 0x53, - 0x3A, - 0x3D, - 0x3D, - 0x34, - 0x3D, - 0x3A, - 0x44, - 0x47, - 0x50, - 0x3A, - 0x50, - 0x2C, - 0x2C, - 0x42, - 0x0C, - 0x58, - 0x47, - 0x54, - 0x53, - 0x20, - 0x3D, - 0x38, - 0x42, - 0x38, - 0x3D, - 0x34, - 0x31, - 0x48, - 0x5F, - 0x20, - 0x42, - 0x13, - 0x0C, - 0x13, - 0x01, - 0x00, - 0x01, - 0x05, - 0x10, - 0x21, - 0x0C, - 0x67, - 0xFA, - 0xF7, - 0xF7, - 0xF9, - 0xF9, - 0xF7, - 0xF7, - 0xF9, - 0xF4, - 0xF9, - 0xF4, - 0xEC, - 0xF9, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x01, - 0x86, - 0x01, - 0x86, - 0x05, - 0x97, - 0x00, - 0x1C, - 0xAF, - 0x97, - 0xAF, - 0x97, - 0xAF, - 0x9A, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xBE, - 0xBE, - 0xA5, - 0xBE, - 0xB1, - 0xBE, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xB9, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x23, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xC3, - 0xC5, - 0xCA, - 0xCC, - 0xCC, - 0xCC, - 0xCA, - 0xD6, - 0xCC, - 0xD6, - 0xD6, - 0xCD, - 0xD3, - 0xCD, - 0xD6, - 0xCD, - 0xD5, - 0xD5, - 0xD5, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x5C, - 0xF2, - 0xD5, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xF2, - 0xDC, - 0xF2, - 0xF2, - 0xF2, - 0xED, - 0xF5, - 0xF2, - 0xF5, - 0xEF, - 0xF6, - 0xF6, - 0xFB, - 0xF2, - 0xF6, - 0xFB, - 0xAA, - 0x57, - 0x67, - 0xFB, - 0xE2, - 0x70, - 0x8E, - 0x67, - 0x32, - 0x12, - 0x0A, - 0x0D, - 0x12, - 0x0D, - 0x0D, - 0x2D, - 0x36, - 0x46, - 0x36, - 0x51, - 0x32, - 0x4C, - 0x15, - 0x1F, - 0x1F, - 0x0D, - 0x2D, - 0x2D, - 0x2D, - 0x12, - 0x0A, - 0x19, - 0x1C, - 0x1C, - 0x2F, - 0x32, - 0x2D, - 0x00, - 0x03, - 0x12, - 0x2D, - 0x19, - 0x19, - 0x12, - 0x12, - 0x15, - 0x15, - 0x24, - 0x24, - 0x15, - 0x24, - 0x36, - 0x5C, - 0x5C, - 0x5E, - 0x68, - 0x68, - 0x72, - 0x72, - 0x72, - 0x6A, - 0x72, - 0x6E, - 0x77, - 0x75, - 0x7C, - 0x75, - 0x75, - 0x05, - 0x6E, - 0x00, - 0x3F, - 0x7C, - 0x7C, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x9D, - 0x90, - 0x8B, - 0x8B, - 0x9E, - 0x85, - 0x8B, - 0x93, - 0x8B, - 0xAD, - 0x7E, - 0x7C, - 0x77, - 0x87, - 0x6A, - 0x7E, - 0x77, - 0x72, - 0x83, - 0x74, - 0x68, - 0x51, - 0x5E, - 0x36, - 0x6B, - 0x47, - 0x48, - 0x54, - 0x50, - 0x34, - 0x43, - 0x37, - 0x58, - 0x58, - 0x54, - 0x48, - 0x25, - 0x3F, - 0x43, - 0x5A, - 0x43, - 0x31, - 0x37, - 0x37, - 0x2B, - 0x38, - 0x3A, - 0x3B, - 0x54, - 0x5A, - 0x5F, - 0x43, - 0x47, - 0x5A, - 0x3D, - 0x00, - 0x04, - 0x3F, - 0x00, - 0x3B, - 0x48, - 0x3D, - 0x54, - 0x48, - 0x37, - 0x3F, - 0x31, - 0x30, - 0x34, - 0x44, - 0x58, - 0x47, - 0x3A, - 0x1A, - 0x18, - 0x18, - 0x37, - 0x3B, - 0x3D, - 0x3D, - 0x3D, - 0x34, - 0x34, - 0x3D, - 0x3D, - 0x25, - 0x48, - 0x50, - 0x2C, - 0x47, - 0x3A, - 0x42, - 0x48, - 0x50, - 0x58, - 0x48, - 0x38, - 0x25, - 0x45, - 0x54, - 0x47, - 0x3A, - 0x37, - 0x3D, - 0x2E, - 0x34, - 0x5F, - 0x18, - 0x20, - 0x04, - 0x42, - 0x01, - 0x01, - 0x00, - 0x01, - 0x01, - 0x04, - 0x21, - 0x8D, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x0A, - 0xF9, - 0xF7, - 0xF7, - 0xDF, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x03, - 0x97, - 0x84, - 0x84, - 0x00, - 0x06, - 0x97, - 0x00, - 0x0C, - 0x9A, - 0xAF, - 0x97, - 0x97, - 0xAF, - 0x89, - 0xB1, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xAF, - 0x05, - 0xB1, - 0x00, - 0x0B, - 0xC6, - 0xB1, - 0xB9, - 0xB9, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xBC, - 0xB1, - 0xB9, - 0x00, - 0x07, - 0xBC, - 0x07, - 0xC3, - 0x00, - 0x09, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xCC, - 0x00, - 0x20, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xD5, - 0xD6, - 0xCD, - 0xD5, - 0xD5, - 0xD6, - 0xD5, - 0xDC, - 0xCF, - 0xD5, - 0xD5, - 0xD5, - 0xF2, - 0xCD, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xD5, - 0xF2, - 0xD5, - 0xD5, - 0xF2, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xED, - 0x06, - 0xF5, - 0x00, - 0xCA, - 0x9C, - 0xCA, - 0xE2, - 0xE2, - 0x49, - 0x0F, - 0x4C, - 0xEF, - 0x8E, - 0x64, - 0x57, - 0x12, - 0x32, - 0x06, - 0x0A, - 0x0A, - 0x0D, - 0x0D, - 0x0D, - 0x36, - 0x5C, - 0x36, - 0x5C, - 0x4B, - 0x64, - 0x1F, - 0x12, - 0x12, - 0x0D, - 0x2D, - 0x15, - 0x12, - 0x0D, - 0x0B, - 0x0B, - 0x19, - 0x2F, - 0x19, - 0x1E, - 0x19, - 0x0A, - 0x03, - 0x0D, - 0x0D, - 0x0F, - 0x19, - 0x19, - 0x1F, - 0x19, - 0x26, - 0x0D, - 0x15, - 0x15, - 0x24, - 0x24, - 0x24, - 0x5C, - 0x5E, - 0x5E, - 0x69, - 0x68, - 0x72, - 0x72, - 0x6A, - 0x77, - 0x75, - 0x77, - 0x77, - 0x6E, - 0x6A, - 0x75, - 0x6E, - 0x6E, - 0x6E, - 0x61, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x85, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x85, - 0x85, - 0x8B, - 0x7C, - 0x93, - 0x85, - 0x93, - 0x9E, - 0x75, - 0x9D, - 0x7E, - 0x88, - 0x7E, - 0x91, - 0x87, - 0x87, - 0x83, - 0x6A, - 0x68, - 0x51, - 0x5E, - 0x46, - 0x46, - 0x66, - 0x58, - 0x47, - 0x58, - 0x58, - 0x58, - 0x53, - 0x50, - 0x50, - 0x63, - 0x58, - 0x43, - 0x31, - 0x43, - 0x5A, - 0x43, - 0x43, - 0x37, - 0x31, - 0x43, - 0x2B, - 0x3F, - 0x48, - 0x3A, - 0x47, - 0x53, - 0x5A, - 0x5A, - 0x43, - 0x48, - 0x43, - 0x48, - 0x3F, - 0x3D, - 0x2E, - 0x44, - 0x3D, - 0x53, - 0x3F, - 0x3F, - 0x48, - 0x3F, - 0x3F, - 0x34, - 0x54, - 0x30, - 0x3B, - 0x47, - 0x54, - 0x44, - 0x0C, - 0x25, - 0x47, - 0x47, - 0x3D, - 0x3F, - 0x31, - 0x34, - 0x31, - 0x3F, - 0x48, - 0x21, - 0x34, - 0x58, - 0x2C, - 0x3F, - 0x3F, - 0x47, - 0x47, - 0x42, - 0x47, - 0x2E, - 0x3A, - 0x3B, - 0x38, - 0x30, - 0x3D, - 0x48, - 0x3F, - 0x34, - 0x2E, - 0x38, - 0x0C, - 0x13, - 0x45, - 0x13, - 0x00, - 0x01, - 0x00, - 0x05, - 0x01, - 0x0C, - 0x71, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x0B, - 0xDF, - 0xF7, - 0xDF, - 0xF9, - 0xEC, - 0xEC, - 0xF9, - 0xF9, - 0xEC, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x79, - 0x86, - 0x97, - 0x86, - 0x84, - 0x00, - 0x06, - 0x97, - 0x00, - 0x0B, - 0x9A, - 0xAF, - 0x9A, - 0xAF, - 0x9A, - 0xA5, - 0x89, - 0xA5, - 0xB1, - 0xB1, - 0xAF, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x9F, - 0xC6, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xBC, - 0xB1, - 0xB9, - 0x95, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xBC, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0xBC, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xCC, - 0xD6, - 0xD6, - 0xCA, - 0xD6, - 0xCC, - 0xCD, - 0xD6, - 0xD5, - 0xCD, - 0xD5, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD5, - 0xD6, - 0xD5, - 0xD6, - 0xD5, - 0xD6, - 0xD5, - 0xD5, - 0xD5, - 0xF2, - 0xD5, - 0xD6, - 0xF2, - 0xF2, - 0xF2, - 0xD6, - 0xDC, - 0xF5, - 0xF2, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xF6, - 0xF5, - 0xFB, - 0xDC, - 0x67, - 0x82, - 0xF6, - 0xAA, - 0x0A, - 0x0B, - 0x32, - 0x95, - 0x64, - 0x2D, - 0x2D, - 0x12, - 0x09, - 0x03, - 0x03, - 0x0A, - 0x03, - 0x0D, - 0x24, - 0x4B, - 0x36, - 0x24, - 0x64, - 0x4B, - 0x32, - 0x26, - 0x0D, - 0x0A, - 0x2D, - 0x0D, - 0x26, - 0x0F, - 0x0A, - 0x19, - 0x0E, - 0x1C, - 0x1B, - 0x35, - 0x1E, - 0x0F, - 0x0A, - 0x0A, - 0x0B, - 0x12, - 0x0F, - 0x19, - 0x19, - 0x1C, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x15, - 0x2D, - 0x24, - 0x4B, - 0x5E, - 0x46, - 0x69, - 0x73, - 0x74, - 0x72, - 0x6A, - 0x77, - 0x83, - 0x75, - 0x6E, - 0x77, - 0x7E, - 0x6A, - 0x6A, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x6E, - 0x7C, - 0x7C, - 0x7C, - 0x6E, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x3C, - 0x85, - 0x85, - 0x7C, - 0x93, - 0x85, - 0x7C, - 0x93, - 0x88, - 0x93, - 0x7E, - 0x88, - 0x88, - 0x87, - 0x6E, - 0x74, - 0x87, - 0x83, - 0x83, - 0x46, - 0x51, - 0x46, - 0x81, - 0x54, - 0x54, - 0x54, - 0x5A, - 0x50, - 0x53, - 0x54, - 0x47, - 0x63, - 0x5F, - 0x43, - 0x43, - 0x43, - 0x54, - 0x43, - 0x43, - 0x43, - 0x2B, - 0x43, - 0x31, - 0x37, - 0x54, - 0x58, - 0x3A, - 0x54, - 0x43, - 0x6B, - 0x43, - 0x43, - 0x43, - 0x48, - 0x48, - 0x3D, - 0x3F, - 0x34, - 0x3D, - 0x3D, - 0x48, - 0x04, - 0x34, - 0x00, - 0x42, - 0x54, - 0x3A, - 0x25, - 0x54, - 0x2C, - 0x47, - 0x30, - 0x30, - 0x0C, - 0x45, - 0x42, - 0x48, - 0x30, - 0x31, - 0x31, - 0x34, - 0x31, - 0x31, - 0x2E, - 0x47, - 0x3B, - 0x47, - 0x3A, - 0x48, - 0x47, - 0x48, - 0x3D, - 0x38, - 0x2E, - 0x3D, - 0x47, - 0x45, - 0x38, - 0x47, - 0x47, - 0x3D, - 0x31, - 0x20, - 0x13, - 0x07, - 0x13, - 0x3B, - 0x02, - 0x05, - 0x03, - 0x00, - 0x05, - 0x04, - 0x40, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xDF, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x04, - 0x86, - 0x84, - 0x84, - 0x84, - 0x06, - 0x97, - 0x00, - 0x1D, - 0xAF, - 0x97, - 0x97, - 0x89, - 0xA5, - 0xA5, - 0xAF, - 0xB1, - 0xA5, - 0xAF, - 0xA5, - 0xB1, - 0xBC, - 0x89, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xBC, - 0xC6, - 0xBC, - 0x8F, - 0xC8, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x4A, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xC3, - 0xCC, - 0xCA, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xCA, - 0xCC, - 0xD6, - 0xCA, - 0xD6, - 0xD3, - 0xCD, - 0xD3, - 0xD6, - 0xD5, - 0xD6, - 0xD6, - 0xD5, - 0xF2, - 0xCD, - 0xD5, - 0xD6, - 0xD5, - 0xD3, - 0xCD, - 0xF2, - 0xD6, - 0xDC, - 0xF2, - 0xCD, - 0xD6, - 0xF2, - 0xF2, - 0xF2, - 0xD6, - 0xD6, - 0xF2, - 0xF5, - 0xD6, - 0xF5, - 0xF5, - 0xEF, - 0xEF, - 0xF5, - 0xF5, - 0xFB, - 0xF6, - 0xFB, - 0x9F, - 0x12, - 0x70, - 0xFE, - 0x70, - 0x00, - 0x12, - 0x32, - 0x26, - 0x15, - 0x0D, - 0x15, - 0x15, - 0x04, - 0x03, - 0x00, - 0x3E, - 0x0D, - 0x15, - 0x36, - 0x46, - 0x24, - 0x5C, - 0x57, - 0x64, - 0x1F, - 0x12, - 0x19, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x0B, - 0x09, - 0x1F, - 0x1B, - 0x14, - 0x29, - 0x35, - 0x14, - 0x09, - 0x0F, - 0x0A, - 0x11, - 0x0E, - 0x0F, - 0x0F, - 0x14, - 0x03, - 0x24, - 0x0A, - 0x0D, - 0x15, - 0x0D, - 0x26, - 0x4B, - 0x51, - 0x4B, - 0x51, - 0x5C, - 0x69, - 0x6A, - 0x7E, - 0x77, - 0x7E, - 0x87, - 0x77, - 0x87, - 0x6E, - 0x6A, - 0x6A, - 0x6A, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x6E, - 0x61, - 0x04, - 0x6E, - 0x00, - 0x52, - 0x61, - 0x6E, - 0x75, - 0x75, - 0x7E, - 0x75, - 0x6E, - 0x88, - 0x75, - 0x7C, - 0x7E, - 0x85, - 0x88, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x87, - 0x77, - 0x68, - 0x5E, - 0x51, - 0x51, - 0x36, - 0x5A, - 0x58, - 0x58, - 0x54, - 0x50, - 0x54, - 0x5A, - 0x50, - 0x43, - 0x58, - 0x63, - 0x5A, - 0x43, - 0x43, - 0x59, - 0x37, - 0x43, - 0x43, - 0x31, - 0x31, - 0x43, - 0x3F, - 0x48, - 0x63, - 0x6B, - 0x3A, - 0x2C, - 0x5A, - 0x3F, - 0x58, - 0x27, - 0x53, - 0x58, - 0x54, - 0x37, - 0x3D, - 0x31, - 0x50, - 0x3A, - 0x50, - 0x3D, - 0x31, - 0x42, - 0x3B, - 0x3A, - 0x38, - 0x2C, - 0x47, - 0x38, - 0x47, - 0x30, - 0x54, - 0x47, - 0x47, - 0x31, - 0x31, - 0x31, - 0x2E, - 0x04, - 0x31, - 0x00, - 0x28, - 0x3A, - 0x48, - 0x50, - 0x3A, - 0x48, - 0x3F, - 0x48, - 0x3D, - 0x25, - 0x37, - 0x30, - 0x47, - 0x54, - 0x38, - 0x50, - 0x48, - 0x3F, - 0x3F, - 0x2E, - 0x07, - 0x08, - 0x1A, - 0x45, - 0x00, - 0x0C, - 0x01, - 0x00, - 0x05, - 0x07, - 0x79, - 0xFA, - 0xFA, - 0xDF, - 0xF7, - 0xDF, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0x04, - 0xEC, - 0x00, - 0x03, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x84, - 0x84, - 0x84, - 0x00, - 0x04, - 0x97, - 0x00, - 0x14, - 0x84, - 0x97, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0xAF, - 0xAF, - 0x97, - 0x89, - 0xB1, - 0x9A, - 0xB1, - 0xA5, - 0xAF, - 0xB1, - 0xA5, - 0xC6, - 0x9B, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x09, - 0xB9, - 0xBC, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0x00, - 0x07, - 0xBC, - 0x08, - 0xC3, - 0x00, - 0x04, - 0xCC, - 0xC3, - 0xCA, - 0xC3, - 0x05, - 0xCC, - 0x00, - 0x20, - 0xD6, - 0xD3, - 0xCC, - 0xD6, - 0xD6, - 0xD3, - 0xD3, - 0xD6, - 0xD3, - 0xD6, - 0xD3, - 0xD6, - 0xD3, - 0xF2, - 0xD6, - 0xF2, - 0xCD, - 0xF2, - 0xE9, - 0xBA, - 0xB2, - 0xD5, - 0xD3, - 0xF2, - 0xD6, - 0xD5, - 0xD6, - 0xF2, - 0xF2, - 0xF5, - 0xF5, - 0xEF, - 0x05, - 0xF5, - 0x00, - 0x4C, - 0xF6, - 0xFB, - 0xF6, - 0xEF, - 0x82, - 0x0B, - 0x82, - 0xEF, - 0x28, - 0x0A, - 0x0F, - 0x1F, - 0x0F, - 0x12, - 0x0D, - 0x0D, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x00, - 0x26, - 0x57, - 0x4C, - 0x24, - 0x24, - 0x69, - 0x57, - 0x4C, - 0x1F, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x0F, - 0x0F, - 0x0A, - 0x14, - 0x1C, - 0x29, - 0x29, - 0x29, - 0x1C, - 0x16, - 0x0F, - 0x06, - 0x2A, - 0x14, - 0x19, - 0x0F, - 0x0F, - 0x0B, - 0x26, - 0x0A, - 0x0A, - 0x0A, - 0x15, - 0x15, - 0x41, - 0x51, - 0x24, - 0x4C, - 0x5C, - 0x69, - 0x72, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x77, - 0x61, - 0x77, - 0x61, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x8A, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x72, - 0x6E, - 0x72, - 0x75, - 0x7E, - 0x7E, - 0x75, - 0x7E, - 0x87, - 0x7E, - 0x77, - 0x92, - 0x68, - 0x74, - 0x77, - 0x69, - 0x51, - 0x51, - 0x36, - 0x7B, - 0x6B, - 0x54, - 0x63, - 0x58, - 0x50, - 0x3B, - 0x5A, - 0x50, - 0x6B, - 0x5A, - 0x54, - 0x5A, - 0x50, - 0x34, - 0x37, - 0x43, - 0x5A, - 0x43, - 0x43, - 0x37, - 0x31, - 0x34, - 0x5A, - 0x43, - 0x54, - 0x54, - 0x50, - 0x47, - 0x53, - 0x54, - 0x47, - 0x3A, - 0x2C, - 0x3B, - 0x3B, - 0x3A, - 0x27, - 0x58, - 0x3F, - 0x3F, - 0x34, - 0x47, - 0x30, - 0x38, - 0x47, - 0x3A, - 0x54, - 0x3A, - 0x3A, - 0x30, - 0x5F, - 0x1A, - 0x42, - 0x3F, - 0x3F, - 0x3F, - 0x25, - 0x2E, - 0x31, - 0x25, - 0x34, - 0x48, - 0x45, - 0x30, - 0x48, - 0x3D, - 0x3A, - 0x31, - 0x30, - 0x3D, - 0x31, - 0x3D, - 0x3D, - 0x47, - 0x42, - 0x47, - 0x50, - 0x48, - 0x31, - 0x23, - 0x02, - 0x0C, - 0x3F, - 0x3D, - 0x00, - 0x02, - 0x03, - 0x03, - 0x01, - 0x3C, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xD8, - 0xF7, - 0xF7, - 0xF4, - 0xDF, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x06, - 0x84, - 0x86, - 0x86, - 0x84, - 0x84, - 0x84, - 0x05, - 0x97, - 0x00, - 0x0F, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0xB1, - 0x89, - 0xB1, - 0xB1, - 0xA5, - 0xBE, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x12, - 0xB9, - 0xB1, - 0xB1, - 0xB1, - 0xBC, - 0x8F, - 0xC6, - 0xBC, - 0xB9, - 0x8F, - 0xC8, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0x04, - 0xC3, - 0x00, - 0x57, - 0xCC, - 0xC3, - 0xCC, - 0xC3, - 0xCC, - 0xCA, - 0xCC, - 0xCC, - 0xCA, - 0xD9, - 0xCA, - 0xD6, - 0xD6, - 0xCA, - 0xD6, - 0xD3, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0xD5, - 0xD6, - 0xD6, - 0xF2, - 0xCD, - 0xD6, - 0xD5, - 0xF5, - 0xD5, - 0x98, - 0x0F, - 0x06, - 0x00, - 0x64, - 0xF5, - 0xF2, - 0xD6, - 0xF5, - 0xF2, - 0xF5, - 0xD6, - 0xD6, - 0xF5, - 0xF2, - 0xF5, - 0xED, - 0xF5, - 0xF6, - 0xF5, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xC1, - 0x4F, - 0x32, - 0x57, - 0x95, - 0x03, - 0x06, - 0x19, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x0D, - 0x15, - 0x24, - 0x4C, - 0x32, - 0x32, - 0x4B, - 0x69, - 0x26, - 0x1E, - 0x1C, - 0x1C, - 0x0F, - 0x0F, - 0x19, - 0x06, - 0x0B, - 0x14, - 0x00, - 0x04, - 0x29, - 0x00, - 0x26, - 0x1B, - 0x1E, - 0x1C, - 0x00, - 0x2A, - 0x14, - 0x14, - 0x0B, - 0x1C, - 0x0B, - 0x03, - 0x0D, - 0x0A, - 0x0D, - 0x0A, - 0x15, - 0x24, - 0x36, - 0x4C, - 0x24, - 0x4B, - 0x5C, - 0x73, - 0x6A, - 0x77, - 0x87, - 0x77, - 0x88, - 0x83, - 0x77, - 0x61, - 0x6E, - 0x6A, - 0x61, - 0x6E, - 0x61, - 0x61, - 0x51, - 0x05, - 0x61, - 0x00, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x61, - 0x6E, - 0x61, - 0x6A, - 0x6E, - 0x6E, - 0x6A, - 0x6A, - 0x75, - 0x6E, - 0x87, - 0x77, - 0x6E, - 0x87, - 0x77, - 0x68, - 0x77, - 0x69, - 0x5E, - 0x51, - 0x24, - 0x15, - 0x4E, - 0x44, - 0x6B, - 0x54, - 0x54, - 0x30, - 0x6B, - 0x54, - 0x54, - 0x63, - 0x50, - 0x5A, - 0x43, - 0x43, - 0x3F, - 0x31, - 0x37, - 0x43, - 0x21, - 0x5A, - 0x2B, - 0x31, - 0x2B, - 0x43, - 0x5A, - 0x5A, - 0x3B, - 0x50, - 0x54, - 0x1D, - 0x53, - 0x30, - 0x53, - 0x2C, - 0x53, - 0x43, - 0x58, - 0x34, - 0x54, - 0x48, - 0x34, - 0x3A, - 0x53, - 0x47, - 0x38, - 0x42, - 0x38, - 0x53, - 0x47, - 0x3D, - 0x3F, - 0x1D, - 0x47, - 0x2B, - 0x3F, - 0x31, - 0x34, - 0x31, - 0x2E, - 0x31, - 0x31, - 0x34, - 0x34, - 0x25, - 0x48, - 0x3F, - 0x3F, - 0x34, - 0x3F, - 0x3D, - 0x2E, - 0x34, - 0x3F, - 0x34, - 0x20, - 0x42, - 0x63, - 0x31, - 0x48, - 0x3F, - 0x08, - 0x02, - 0x37, - 0x53, - 0x13, - 0x04, - 0x01, - 0x00, - 0x04, - 0x07, - 0x97, - 0xD8, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x0C, - 0xF4, - 0xF4, - 0xF7, - 0xEC, - 0xF4, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x07, - 0x84, - 0x86, - 0x84, - 0x84, - 0x84, - 0x97, - 0x84, - 0x00, - 0x07, - 0x97, - 0x00, - 0x06, - 0x9A, - 0x97, - 0x9A, - 0xAF, - 0xA5, - 0x89, - 0x04, - 0xA5, - 0x00, - 0x04, - 0xB9, - 0xA5, - 0xB1, - 0xA5, - 0x06, - 0xB1, - 0x00, - 0x06, - 0xB9, - 0xB9, - 0xBC, - 0x9B, - 0xBC, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x2E, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xCC, - 0xCA, - 0xC3, - 0xC3, - 0xCA, - 0xCA, - 0xD3, - 0xD9, - 0xCA, - 0xCC, - 0xCA, - 0xD3, - 0xCC, - 0xCD, - 0xD9, - 0xD3, - 0xD6, - 0xD6, - 0xF5, - 0xD3, - 0xD6, - 0xD6, - 0xD3, - 0xED, - 0xF5, - 0xEB, - 0x57, - 0x0A, - 0x0A, - 0x03, - 0x03, - 0x12, - 0xF2, - 0xD3, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xD6, - 0xD6, - 0x06, - 0xF5, - 0x00, - 0x51, - 0xF6, - 0xFB, - 0xF5, - 0xFD, - 0xFB, - 0xF6, - 0xFD, - 0xCA, - 0x1C, - 0x19, - 0x19, - 0x26, - 0x03, - 0x06, - 0x1C, - 0x1F, - 0x12, - 0x12, - 0x0A, - 0x03, - 0x0A, - 0x06, - 0x00, - 0x0D, - 0x4D, - 0x26, - 0x32, - 0x1C, - 0x1C, - 0x1F, - 0x41, - 0x1C, - 0x11, - 0x1C, - 0x11, - 0x1C, - 0x0F, - 0x0B, - 0x0B, - 0x16, - 0x1E, - 0x29, - 0x16, - 0x1E, - 0x16, - 0x1B, - 0x1C, - 0x03, - 0x35, - 0x1B, - 0x29, - 0x09, - 0x2A, - 0x11, - 0x06, - 0x0D, - 0x03, - 0x0A, - 0x0A, - 0x15, - 0x15, - 0x15, - 0x26, - 0x15, - 0x24, - 0x4B, - 0x69, - 0x72, - 0x77, - 0x87, - 0x77, - 0x88, - 0x83, - 0x61, - 0x74, - 0x61, - 0x77, - 0x6A, - 0x6A, - 0x61, - 0x51, - 0x00, - 0x0B, - 0x61, - 0x00, - 0x04, - 0x6A, - 0x61, - 0x6A, - 0x61, - 0x06, - 0x6A, - 0x00, - 0x6E, - 0x77, - 0x77, - 0x6A, - 0x74, - 0x68, - 0x5E, - 0x5C, - 0x46, - 0x5E, - 0x51, - 0x24, - 0x63, - 0x59, - 0x54, - 0x5A, - 0x59, - 0x47, - 0x48, - 0x6B, - 0x5A, - 0x50, - 0x48, - 0x3F, - 0x50, - 0x50, - 0x31, - 0x43, - 0x37, - 0x43, - 0x37, - 0x2B, - 0x31, - 0x43, - 0x31, - 0x5A, - 0x58, - 0x54, - 0x34, - 0x47, - 0x3A, - 0x50, - 0x53, - 0x50, - 0x5A, - 0x2C, - 0x43, - 0x5F, - 0x3F, - 0x58, - 0x50, - 0x58, - 0x58, - 0x2B, - 0x38, - 0x3D, - 0x38, - 0x48, - 0x42, - 0x48, - 0x3A, - 0x48, - 0x54, - 0x47, - 0x48, - 0x3F, - 0x31, - 0x2E, - 0x31, - 0x25, - 0x21, - 0x31, - 0x34, - 0x3B, - 0x54, - 0x48, - 0x34, - 0x31, - 0x2E, - 0x25, - 0x34, - 0x34, - 0x44, - 0x2E, - 0x34, - 0x3D, - 0x47, - 0x50, - 0x48, - 0x31, - 0x21, - 0x02, - 0x07, - 0x37, - 0x34, - 0x02, - 0x13, - 0x09, - 0x01, - 0x01, - 0x4A, - 0xFA, - 0xFA, - 0xF7, - 0xD8, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0x04, - 0xF4, - 0x05, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x19, - 0x7B, - 0x79, - 0x7B, - 0x7A, - 0x86, - 0x84, - 0x97, - 0x84, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0x89, - 0xA5, - 0x9A, - 0xB1, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x89, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x12, - 0x9B, - 0xB9, - 0xB1, - 0xB9, - 0xB9, - 0x9B, - 0xB9, - 0xB1, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xC3, - 0xC3, - 0xBC, - 0x08, - 0xC3, - 0x00, - 0x0F, - 0xCC, - 0xC3, - 0xCA, - 0xC3, - 0xCC, - 0xCA, - 0xCC, - 0xD9, - 0xCC, - 0xE1, - 0xCC, - 0xD6, - 0xD6, - 0xCC, - 0xCC, - 0x00, - 0x05, - 0xD6, - 0x00, - 0x04, - 0xBA, - 0x82, - 0x12, - 0x0B, - 0x04, - 0x03, - 0x00, - 0x61, - 0xF2, - 0xD3, - 0xF5, - 0xD6, - 0xF5, - 0xD6, - 0xD6, - 0xF5, - 0xF2, - 0xF5, - 0xF2, - 0xF5, - 0xF5, - 0xED, - 0xF5, - 0xF5, - 0xF5, - 0xFB, - 0xED, - 0xFD, - 0xFD, - 0xFB, - 0xF6, - 0x82, - 0x1F, - 0x1F, - 0x1F, - 0x12, - 0x03, - 0x12, - 0x11, - 0x1F, - 0x12, - 0x19, - 0x0A, - 0x0A, - 0x09, - 0x0D, - 0x1F, - 0x26, - 0x4D, - 0x1F, - 0x1F, - 0x11, - 0x11, - 0x1F, - 0x16, - 0x19, - 0x1C, - 0x1C, - 0x16, - 0x11, - 0x09, - 0x11, - 0x10, - 0x16, - 0x1B, - 0x1E, - 0x16, - 0x16, - 0x1C, - 0x1E, - 0x05, - 0x35, - 0x1B, - 0x29, - 0x03, - 0x35, - 0x1C, - 0x0B, - 0x12, - 0x03, - 0x03, - 0x0D, - 0x0D, - 0x24, - 0x1F, - 0x1F, - 0x15, - 0x26, - 0x24, - 0x5C, - 0x74, - 0x72, - 0x83, - 0x83, - 0x87, - 0x87, - 0x68, - 0x74, - 0x83, - 0x72, - 0x6A, - 0x68, - 0x61, - 0x6E, - 0x6A, - 0x00, - 0x0E, - 0x61, - 0x00, - 0x7D, - 0x6A, - 0x6A, - 0x61, - 0x6A, - 0x72, - 0x6A, - 0x6A, - 0x68, - 0x72, - 0x61, - 0x74, - 0x51, - 0x51, - 0x5E, - 0x5C, - 0x36, - 0x24, - 0x81, - 0x63, - 0x6B, - 0x54, - 0x54, - 0x50, - 0x54, - 0x6B, - 0x37, - 0x63, - 0x50, - 0x50, - 0x50, - 0x47, - 0x43, - 0x5A, - 0x31, - 0x59, - 0x2B, - 0x53, - 0x5A, - 0x37, - 0x2B, - 0x50, - 0x6B, - 0x3B, - 0x3D, - 0x3F, - 0x5A, - 0x53, - 0x58, - 0x50, - 0x3B, - 0x63, - 0x53, - 0x5A, - 0x58, - 0x58, - 0x47, - 0x3B, - 0x58, - 0x53, - 0x47, - 0x31, - 0x3F, - 0x44, - 0x42, - 0x3D, - 0x44, - 0x50, - 0x37, - 0x47, - 0x50, - 0x3D, - 0x31, - 0x3F, - 0x2E, - 0x31, - 0x31, - 0x25, - 0x31, - 0x3A, - 0x25, - 0x2E, - 0x3F, - 0x3F, - 0x25, - 0x21, - 0x3D, - 0x3A, - 0x34, - 0x34, - 0x3A, - 0x31, - 0x25, - 0x48, - 0x59, - 0x3F, - 0x13, - 0x02, - 0x2B, - 0x43, - 0x30, - 0x02, - 0x07, - 0x01, - 0x00, - 0x01, - 0x9A, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xDF, - 0xDF, - 0xF4, - 0xD8, - 0xEC, - 0xDF, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x84, - 0x84, - 0x84, - 0x79, - 0x84, - 0x84, - 0x84, - 0x97, - 0x97, - 0x97, - 0x84, - 0x97, - 0x97, - 0x8D, - 0x9A, - 0x97, - 0x97, - 0x9A, - 0x97, - 0xA5, - 0xAF, - 0xA5, - 0x9A, - 0xB1, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xB1, - 0xC6, - 0x9B, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xBC, - 0xB9, - 0x00, - 0x05, - 0xBC, - 0x00, - 0x87, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xCC, - 0xC3, - 0xCA, - 0xCC, - 0xD9, - 0xD9, - 0xCA, - 0xCA, - 0xCC, - 0xD9, - 0xCC, - 0xCC, - 0xE1, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD6, - 0xD6, - 0xED, - 0xAA, - 0x1F, - 0x0A, - 0x06, - 0x06, - 0x03, - 0x03, - 0x00, - 0xCF, - 0xD6, - 0xF5, - 0xD6, - 0xF5, - 0xF5, - 0xD6, - 0xF2, - 0xF5, - 0xD6, - 0xEF, - 0xF2, - 0xE1, - 0xF5, - 0xF6, - 0xFB, - 0xED, - 0xFB, - 0xF6, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0x80, - 0x1C, - 0x1F, - 0x2A, - 0x1F, - 0x0B, - 0x03, - 0x0A, - 0x19, - 0x1F, - 0x12, - 0x0B, - 0x0A, - 0x0F, - 0x19, - 0x11, - 0x1F, - 0x32, - 0x1C, - 0x2A, - 0x0E, - 0x11, - 0x10, - 0x11, - 0x16, - 0x16, - 0x1E, - 0x1C, - 0x1E, - 0x09, - 0x0F, - 0x0E, - 0x10, - 0x10, - 0x1B, - 0x14, - 0x1B, - 0x22, - 0x1F, - 0x0E, - 0x29, - 0x1B, - 0x35, - 0x05, - 0x22, - 0x16, - 0x11, - 0x0B, - 0x0A, - 0x03, - 0x0A, - 0x0A, - 0x15, - 0x1C, - 0x11, - 0x26, - 0x0D, - 0x24, - 0x36, - 0x5C, - 0x68, - 0x72, - 0x74, - 0x74, - 0x83, - 0x83, - 0x68, - 0x83, - 0x6A, - 0x83, - 0x72, - 0x61, - 0x61, - 0x77, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x61, - 0x01, - 0x51, - 0x06, - 0x61, - 0x00, - 0x59, - 0x51, - 0x61, - 0x61, - 0x61, - 0x5E, - 0x61, - 0x61, - 0x61, - 0x51, - 0x68, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x46, - 0x46, - 0x36, - 0x36, - 0x6B, - 0x50, - 0x59, - 0x42, - 0x47, - 0x34, - 0x63, - 0x63, - 0x58, - 0x59, - 0x48, - 0x50, - 0x50, - 0x50, - 0x2E, - 0x31, - 0x48, - 0x43, - 0x43, - 0x3B, - 0x45, - 0x34, - 0x58, - 0x50, - 0x58, - 0x48, - 0x48, - 0x43, - 0x48, - 0x6B, - 0x50, - 0x50, - 0x53, - 0x37, - 0x37, - 0x53, - 0x5F, - 0x58, - 0x45, - 0x43, - 0x63, - 0x58, - 0x47, - 0x3D, - 0x3F, - 0x30, - 0x3F, - 0x3D, - 0x1A, - 0x50, - 0x31, - 0x6B, - 0x48, - 0x42, - 0x34, - 0x31, - 0x25, - 0x31, - 0x25, - 0x21, - 0x2B, - 0x47, - 0x3F, - 0x50, - 0x3F, - 0x2E, - 0x31, - 0x2E, - 0x2E, - 0x31, - 0x2E, - 0x00, - 0x04, - 0x31, - 0x00, - 0x0F, - 0x48, - 0x3F, - 0x1A, - 0x07, - 0x07, - 0x45, - 0x53, - 0x23, - 0x07, - 0x02, - 0x00, - 0x01, - 0x2F, - 0xFA, - 0xD8, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x03, - 0xF4, - 0xF7, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x06, - 0xDF, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x09, - 0x79, - 0x71, - 0x84, - 0x86, - 0x7B, - 0x89, - 0x84, - 0x84, - 0x84, - 0x00, - 0x06, - 0x97, - 0x07, - 0x9A, - 0x00, - 0x13, - 0xB1, - 0x89, - 0xA5, - 0xA5, - 0xB1, - 0x9A, - 0x9B, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x8F, - 0xBC, - 0xB1, - 0xBC, - 0x9B, - 0x9B, - 0x00, - 0x09, - 0xBC, - 0x06, - 0xC3, - 0x00, - 0x24, - 0xD9, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xCC, - 0xD9, - 0xD6, - 0xCC, - 0xE1, - 0xCC, - 0xD3, - 0xD6, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD3, - 0x32, - 0x0F, - 0x0A, - 0x0F, - 0x0B, - 0x06, - 0x03, - 0x00, - 0xB2, - 0xD6, - 0xF5, - 0xD3, - 0xF2, - 0xD6, - 0xD6, - 0xF5, - 0xF5, - 0xD6, - 0x04, - 0xF5, - 0x00, - 0x07, - 0xF2, - 0xF5, - 0xF5, - 0xFB, - 0xED, - 0xFD, - 0xFB, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x18, - 0xD6, - 0x28, - 0x1C, - 0x1F, - 0x32, - 0x32, - 0x0A, - 0x03, - 0x06, - 0x19, - 0x32, - 0x26, - 0x03, - 0x32, - 0x0D, - 0x19, - 0x19, - 0x1F, - 0x19, - 0x1C, - 0x16, - 0x11, - 0x11, - 0x10, - 0x04, - 0x1C, - 0x00, - 0x33, - 0x14, - 0x11, - 0x11, - 0x0E, - 0x09, - 0x14, - 0x1E, - 0x22, - 0x2A, - 0x1C, - 0x29, - 0x14, - 0x2A, - 0x1C, - 0x29, - 0x03, - 0x35, - 0x1E, - 0x16, - 0x0E, - 0x03, - 0x0A, - 0x06, - 0x0D, - 0x0A, - 0x2F, - 0x2A, - 0x11, - 0x26, - 0x15, - 0x4B, - 0x5C, - 0x69, - 0x73, - 0x73, - 0x74, - 0x69, - 0x68, - 0x73, - 0x74, - 0x83, - 0x77, - 0x72, - 0x77, - 0x7E, - 0x77, - 0x87, - 0x74, - 0x61, - 0x61, - 0x51, - 0x00, - 0x04, - 0x61, - 0x00, - 0x12, - 0x51, - 0x61, - 0x51, - 0x61, - 0x61, - 0x61, - 0x5E, - 0x61, - 0x68, - 0x61, - 0x61, - 0x68, - 0x61, - 0x61, - 0x5E, - 0x5E, - 0x69, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x6C, - 0x3C, - 0x45, - 0x59, - 0x59, - 0x5A, - 0x31, - 0x47, - 0x6B, - 0x63, - 0x50, - 0x5A, - 0x50, - 0x3F, - 0x50, - 0x5A, - 0x43, - 0x48, - 0x5F, - 0x3A, - 0x47, - 0x37, - 0x2C, - 0x58, - 0x66, - 0x54, - 0x54, - 0x50, - 0x3D, - 0x50, - 0x58, - 0x58, - 0x63, - 0x63, - 0x6B, - 0x63, - 0x63, - 0x43, - 0x53, - 0x3A, - 0x3B, - 0x66, - 0x58, - 0x45, - 0x44, - 0x34, - 0x44, - 0x30, - 0x3D, - 0x48, - 0x21, - 0x44, - 0x5F, - 0x50, - 0x3F, - 0x3F, - 0x31, - 0x31, - 0x21, - 0x31, - 0x25, - 0x25, - 0x42, - 0x48, - 0x31, - 0x3F, - 0x31, - 0x21, - 0x25, - 0x42, - 0x34, - 0x34, - 0x2E, - 0x31, - 0x2E, - 0x34, - 0x50, - 0x44, - 0x13, - 0x01, - 0x0C, - 0x45, - 0x18, - 0x13, - 0x07, - 0x02, - 0x00, - 0x01, - 0xD8, - 0xFA, - 0xFA, - 0xD8, - 0xFA, - 0xFA, - 0xDF, - 0xF7, - 0xDF, - 0xF4, - 0xF4, - 0xF4, - 0xDF, - 0xF0, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x86, - 0x71, - 0x84, - 0x84, - 0x71, - 0x86, - 0x86, - 0x84, - 0x84, - 0x97, - 0x84, - 0x97, - 0x97, - 0x9A, - 0x97, - 0x8D, - 0x97, - 0x9A, - 0x9A, - 0x9A, - 0x89, - 0xA5, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xB1, - 0x8A, - 0xB1, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x08, - 0xBC, - 0xB1, - 0xB9, - 0x9B, - 0xB9, - 0xBC, - 0xBC, - 0xB9, - 0x08, - 0xBC, - 0x05, - 0xC3, - 0x00, - 0x82, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xCA, - 0xD9, - 0xD9, - 0xD4, - 0xCA, - 0xD9, - 0xD9, - 0xCC, - 0xE1, - 0xD9, - 0xD9, - 0xE1, - 0x95, - 0x19, - 0x12, - 0x0B, - 0x0F, - 0x0F, - 0x09, - 0x03, - 0x03, - 0x82, - 0xD3, - 0xF5, - 0xF2, - 0xD6, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xD3, - 0xE1, - 0xF5, - 0xF2, - 0xF5, - 0xF5, - 0xFB, - 0xEF, - 0xF8, - 0xFB, - 0xFB, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xFD, - 0xFD, - 0xFD, - 0x82, - 0x32, - 0x1F, - 0x1F, - 0x32, - 0x4C, - 0x00, - 0x03, - 0x0A, - 0x12, - 0x19, - 0x1F, - 0x12, - 0x12, - 0x1F, - 0x11, - 0x1F, - 0x0F, - 0x1C, - 0x1C, - 0x0E, - 0x16, - 0x14, - 0x11, - 0x16, - 0x1C, - 0x16, - 0x14, - 0x11, - 0x11, - 0x14, - 0x16, - 0x09, - 0x10, - 0x22, - 0x2A, - 0x2A, - 0x22, - 0x29, - 0x2A, - 0x22, - 0x29, - 0x09, - 0x29, - 0x1B, - 0x29, - 0x16, - 0x0B, - 0x06, - 0x03, - 0x0A, - 0x06, - 0x19, - 0x1B, - 0x19, - 0x2D, - 0x15, - 0x4B, - 0x36, - 0x5C, - 0x5C, - 0x5C, - 0x68, - 0x64, - 0x73, - 0x73, - 0x68, - 0x83, - 0x7E, - 0x77, - 0x87, - 0x92, - 0x77, - 0x77, - 0x72, - 0x77, - 0x6E, - 0x05, - 0x61, - 0x00, - 0x0D, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x61, - 0x51, - 0x68, - 0x5E, - 0x61, - 0x61, - 0x61, - 0x51, - 0x51, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x4C, - 0x51, - 0x51, - 0x51, - 0x46, - 0x46, - 0x24, - 0x54, - 0x58, - 0x52, - 0x48, - 0x48, - 0x43, - 0x58, - 0x6B, - 0x43, - 0x53, - 0x58, - 0x53, - 0x43, - 0x47, - 0x47, - 0x53, - 0x54, - 0x37, - 0x47, - 0x37, - 0x63, - 0x30, - 0x59, - 0x63, - 0x54, - 0x54, - 0x50, - 0x48, - 0x48, - 0x5A, - 0x43, - 0x53, - 0x43, - 0x47, - 0x50, - 0x47, - 0x47, - 0x50, - 0x30, - 0x63, - 0x63, - 0x47, - 0x48, - 0x3F, - 0x30, - 0x34, - 0x3F, - 0x3F, - 0x48, - 0x0C, - 0x43, - 0x54, - 0x48, - 0x3F, - 0x31, - 0x34, - 0x21, - 0x31, - 0x21, - 0x21, - 0x45, - 0x44, - 0x34, - 0x3F, - 0x31, - 0x2E, - 0x1D, - 0x50, - 0x3D, - 0x34, - 0x04, - 0x21, - 0x00, - 0x21, - 0x43, - 0x18, - 0x04, - 0x00, - 0x02, - 0x3F, - 0x21, - 0x13, - 0x04, - 0x00, - 0x05, - 0x22, - 0xFA, - 0xFA, - 0xF7, - 0xD8, - 0xF4, - 0xF4, - 0xD8, - 0xF7, - 0xF4, - 0xF4, - 0xD8, - 0xDF, - 0xF4, - 0xC6, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x84, - 0x84, - 0x71, - 0x84, - 0x84, - 0x84, - 0x79, - 0x84, - 0x84, - 0x84, - 0x97, - 0x8D, - 0x84, - 0x97, - 0x8D, - 0x97, - 0x8D, - 0x97, - 0xA5, - 0x89, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9A, - 0x9A, - 0xB1, - 0xB1, - 0xA5, - 0xA5, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xBC, - 0x9B, - 0xBC, - 0xB9, - 0xB9, - 0x05, - 0xBC, - 0x00, - 0x29, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xBC, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0xCA, - 0xD9, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xE1, - 0xD3, - 0xF5, - 0x57, - 0x19, - 0x19, - 0x19, - 0x11, - 0x14, - 0x09, - 0x0B, - 0x03, - 0x26, - 0xF5, - 0xF5, - 0xD6, - 0xF5, - 0xF5, - 0xD9, - 0xD6, - 0xF5, - 0xD6, - 0x00, - 0x05, - 0xF5, - 0x00, - 0x05, - 0xEF, - 0xF5, - 0xF5, - 0xFD, - 0xF6, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x55, - 0xFD, - 0xFD, - 0xFD, - 0xFE, - 0xE3, - 0x4C, - 0x1F, - 0x1F, - 0x2A, - 0x4D, - 0x1F, - 0x00, - 0x03, - 0x0B, - 0x1F, - 0x1F, - 0x12, - 0x11, - 0x11, - 0x1F, - 0x1F, - 0x0E, - 0x11, - 0x1E, - 0x16, - 0x10, - 0x11, - 0x11, - 0x1C, - 0x11, - 0x19, - 0x16, - 0x16, - 0x0E, - 0x0E, - 0x16, - 0x09, - 0x10, - 0x22, - 0x2F, - 0x22, - 0x2A, - 0x29, - 0x22, - 0x4F, - 0x29, - 0x09, - 0x29, - 0x29, - 0x1B, - 0x1B, - 0x11, - 0x06, - 0x03, - 0x03, - 0x0A, - 0x22, - 0x14, - 0x1C, - 0x0F, - 0x1F, - 0x24, - 0x4B, - 0x4B, - 0x4B, - 0x5C, - 0x5C, - 0x57, - 0x46, - 0x46, - 0x5C, - 0x73, - 0x73, - 0x83, - 0x87, - 0x87, - 0x7E, - 0x77, - 0x6A, - 0x72, - 0x61, - 0x72, - 0x61, - 0x61, - 0x5E, - 0x00, - 0x07, - 0x61, - 0x00, - 0x3E, - 0x5E, - 0x61, - 0x5E, - 0x61, - 0x6A, - 0x51, - 0x51, - 0x61, - 0x51, - 0x51, - 0x51, - 0x5E, - 0x5C, - 0x51, - 0x51, - 0x46, - 0x46, - 0x53, - 0x63, - 0x52, - 0x3F, - 0x43, - 0x3F, - 0x6B, - 0x53, - 0x5A, - 0x6B, - 0x43, - 0x3B, - 0x5F, - 0x66, - 0x47, - 0x48, - 0x53, - 0x5A, - 0x17, - 0x48, - 0x2B, - 0x54, - 0x6B, - 0x63, - 0x63, - 0x44, - 0x48, - 0x54, - 0x48, - 0x21, - 0x5A, - 0x43, - 0x48, - 0x37, - 0x47, - 0x58, - 0x3A, - 0x38, - 0x47, - 0x53, - 0x5F, - 0x54, - 0x42, - 0x3F, - 0x3F, - 0x04, - 0x31, - 0x00, - 0x2D, - 0x44, - 0x44, - 0x54, - 0x50, - 0x3F, - 0x34, - 0x31, - 0x25, - 0x17, - 0x21, - 0x18, - 0x3F, - 0x43, - 0x3F, - 0x30, - 0x31, - 0x18, - 0x08, - 0x54, - 0x47, - 0x2E, - 0x31, - 0x21, - 0x23, - 0x13, - 0x23, - 0x1A, - 0x02, - 0x01, - 0x17, - 0x07, - 0x21, - 0x13, - 0x04, - 0x0B, - 0x04, - 0xD8, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0x06, - 0xF4, - 0x00, - 0x07, - 0xEC, - 0xDF, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x71, - 0x71, - 0x84, - 0x84, - 0x71, - 0x79, - 0x86, - 0x00, - 0x04, - 0x84, - 0x01, - 0x97, - 0x01, - 0x84, - 0x04, - 0x97, - 0x00, - 0x03, - 0x9A, - 0x97, - 0x8D, - 0x00, - 0x05, - 0x9A, - 0x00, - 0x07, - 0xA5, - 0xA5, - 0x9A, - 0x9A, - 0xB1, - 0x9A, - 0xA5, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x0A, - 0xB9, - 0xB9, - 0x9B, - 0x9B, - 0xBC, - 0xB1, - 0xC8, - 0x8F, - 0x9B, - 0xC3, - 0x05, - 0xBC, - 0x00, - 0x22, - 0xC3, - 0xBC, - 0xC3, - 0xBC, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xCA, - 0xD9, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xD9, - 0xD9, - 0xE2, - 0xD9, - 0x32, - 0x19, - 0x19, - 0x1C, - 0x1E, - 0x1C, - 0x09, - 0x05, - 0x01, - 0x05, - 0xF2, - 0xF5, - 0xF5, - 0xF5, - 0xD9, - 0x07, - 0xF5, - 0x00, - 0x06, - 0xEF, - 0xF5, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0x04, - 0xFB, - 0x06, - 0xFD, - 0x00, - 0x50, - 0xFE, - 0xE9, - 0x2A, - 0x1F, - 0x2A, - 0x32, - 0x4D, - 0x0B, - 0x00, - 0x03, - 0x09, - 0x1F, - 0x1F, - 0x12, - 0x0B, - 0x11, - 0x2A, - 0x16, - 0x0F, - 0x11, - 0x1C, - 0x1B, - 0x16, - 0x1C, - 0x1F, - 0x1E, - 0x22, - 0x1C, - 0x1B, - 0x1C, - 0x09, - 0x0E, - 0x14, - 0x14, - 0x0E, - 0x1E, - 0x1C, - 0x29, - 0x4F, - 0x35, - 0x29, - 0x35, - 0x1B, - 0x22, - 0x29, - 0x16, - 0x16, - 0x1B, - 0x0E, - 0x03, - 0x00, - 0x0E, - 0x14, - 0x1E, - 0x1C, - 0x14, - 0x1C, - 0x2D, - 0x4B, - 0x41, - 0x36, - 0x36, - 0x57, - 0x64, - 0x4B, - 0x46, - 0x57, - 0x73, - 0x5E, - 0xC9, - 0x83, - 0x92, - 0x92, - 0x87, - 0x92, - 0x6A, - 0x72, - 0x77, - 0x72, - 0x5E, - 0x04, - 0x61, - 0x00, - 0x0A, - 0x68, - 0x61, - 0x51, - 0x61, - 0x5E, - 0x61, - 0x68, - 0x72, - 0x51, - 0x5E, - 0x06, - 0x51, - 0x01, - 0x5E, - 0x04, - 0x51, - 0x00, - 0x6B, - 0x59, - 0x5F, - 0x63, - 0x52, - 0x43, - 0x48, - 0x6B, - 0x58, - 0x3D, - 0x54, - 0x6B, - 0x59, - 0x66, - 0x58, - 0x47, - 0x50, - 0x53, - 0x54, - 0x34, - 0x47, - 0x54, - 0x37, - 0x3A, - 0x63, - 0x50, - 0x59, - 0x54, - 0x48, - 0x48, - 0x52, - 0x5A, - 0x5A, - 0x50, - 0x50, - 0x5F, - 0x34, - 0x3A, - 0x42, - 0x48, - 0x54, - 0x5F, - 0x53, - 0x38, - 0x3F, - 0x44, - 0x3F, - 0x31, - 0x31, - 0x25, - 0x31, - 0x21, - 0x48, - 0x3D, - 0x3F, - 0x31, - 0x21, - 0x31, - 0x18, - 0x21, - 0x34, - 0x21, - 0x25, - 0x21, - 0x31, - 0x18, - 0x18, - 0x21, - 0x50, - 0x3A, - 0x31, - 0x23, - 0x23, - 0x07, - 0x08, - 0x34, - 0x0C, - 0x00, - 0x13, - 0x20, - 0x18, - 0x40, - 0x13, - 0x10, - 0x76, - 0x9B, - 0xFA, - 0xFA, - 0xF7, - 0xD8, - 0xD8, - 0xF4, - 0xF4, - 0xD8, - 0xD8, - 0xF4, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xDF, - 0xEC, - 0xF4, - 0xC8, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x79, - 0x84, - 0x84, - 0x71, - 0x84, - 0x84, - 0x71, - 0x84, - 0x84, - 0x86, - 0x84, - 0x84, - 0x97, - 0x97, - 0x84, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x9A, - 0x97, - 0x9A, - 0x9A, - 0x9A, - 0xB1, - 0x7A, - 0x9A, - 0xA5, - 0xB1, - 0x8A, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0xB1, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x03, - 0xBC, - 0xBC, - 0xB9, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x0B, - 0xC3, - 0xBC, - 0xC3, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xD4, - 0xCA, - 0x00, - 0x04, - 0xD9, - 0x00, - 0x19, - 0xE1, - 0xD9, - 0x95, - 0x1F, - 0x12, - 0x1C, - 0x14, - 0x2A, - 0x2A, - 0x0F, - 0x0E, - 0x09, - 0x05, - 0xA7, - 0xD3, - 0xFB, - 0xD3, - 0xD9, - 0xF5, - 0xD6, - 0xD6, - 0xF5, - 0xF5, - 0xD3, - 0xE1, - 0x00, - 0x06, - 0xF5, - 0x00, - 0x06, - 0xF6, - 0xFB, - 0xF5, - 0xFB, - 0xF6, - 0xF6, - 0x04, - 0xFD, - 0x00, - 0x60, - 0xFE, - 0xFD, - 0xFD, - 0x82, - 0x1C, - 0x1F, - 0x32, - 0x39, - 0x62, - 0x00, - 0x00, - 0x03, - 0x12, - 0x1F, - 0x1F, - 0x19, - 0x0F, - 0x19, - 0x1C, - 0x11, - 0x0F, - 0x1E, - 0x1E, - 0x1C, - 0x1C, - 0x2A, - 0x14, - 0x1C, - 0x1E, - 0x16, - 0x1C, - 0x1B, - 0x0B, - 0x14, - 0x0E, - 0x0E, - 0x2F, - 0x22, - 0x29, - 0x2A, - 0x33, - 0x2A, - 0x33, - 0x22, - 0x3C, - 0x33, - 0x2A, - 0x1B, - 0x29, - 0x10, - 0x03, - 0x01, - 0x0B, - 0x14, - 0x22, - 0x14, - 0x10, - 0x16, - 0x1F, - 0x12, - 0x24, - 0x4B, - 0x41, - 0x41, - 0x4C, - 0x24, - 0x24, - 0x5C, - 0x57, - 0x73, - 0x51, - 0x83, - 0x83, - 0x87, - 0x87, - 0x68, - 0x87, - 0x83, - 0x72, - 0x87, - 0x61, - 0x68, - 0x61, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x61, - 0x51, - 0x5E, - 0x61, - 0x61, - 0x6A, - 0x5E, - 0x51, - 0x61, - 0x04, - 0x51, - 0x00, - 0x62, - 0x5E, - 0x51, - 0x46, - 0x51, - 0x36, - 0x36, - 0x15, - 0x43, - 0x53, - 0x52, - 0x31, - 0x54, - 0x54, - 0x50, - 0x59, - 0x54, - 0x63, - 0x58, - 0x63, - 0x53, - 0x54, - 0x48, - 0x54, - 0x48, - 0x50, - 0x5A, - 0x43, - 0x25, - 0x59, - 0x63, - 0x54, - 0x48, - 0x47, - 0x48, - 0x3F, - 0x31, - 0x59, - 0x5A, - 0x5A, - 0x5F, - 0x43, - 0x38, - 0x47, - 0x3A, - 0x48, - 0x42, - 0x54, - 0x50, - 0x59, - 0x3F, - 0x34, - 0x31, - 0x2E, - 0x31, - 0x2E, - 0x2E, - 0x21, - 0x48, - 0x48, - 0x34, - 0x31, - 0x25, - 0x2E, - 0x34, - 0x1A, - 0x0C, - 0x5F, - 0x58, - 0x63, - 0x50, - 0x48, - 0x25, - 0x23, - 0x50, - 0x3D, - 0x31, - 0x18, - 0x07, - 0x04, - 0x31, - 0x3A, - 0x02, - 0x00, - 0x07, - 0x18, - 0x21, - 0x40, - 0x3C, - 0x9B, - 0xFA, - 0xFA, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x0A, - 0xD8, - 0xF4, - 0xDF, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xF4, - 0xC8, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x79, - 0x71, - 0x76, - 0x79, - 0x79, - 0x79, - 0x84, - 0x84, - 0x79, - 0x84, - 0x8D, - 0x86, - 0x8D, - 0x97, - 0x84, - 0x97, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x9A, - 0x9B, - 0x89, - 0x9A, - 0x9A, - 0x8A, - 0xA5, - 0x8A, - 0xB1, - 0xA5, - 0x9B, - 0xB1, - 0x8A, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0xB9, - 0xB1, - 0x9B, - 0xBC, - 0xB9, - 0xBC, - 0x9B, - 0xB1, - 0x07, - 0xBC, - 0x04, - 0xC3, - 0x00, - 0x1E, - 0xD9, - 0xC3, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xD9, - 0xE1, - 0xC3, - 0xCA, - 0x95, - 0x19, - 0x0F, - 0x19, - 0x1C, - 0x14, - 0x1C, - 0x11, - 0x16, - 0x11, - 0x04, - 0x49, - 0xF5, - 0xD9, - 0xE1, - 0xF5, - 0xF5, - 0xF5, - 0xD9, - 0xD9, - 0x08, - 0xF5, - 0x00, - 0xC7, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xFD, - 0xFB, - 0xFD, - 0xFD, - 0xFD, - 0xFE, - 0xFE, - 0xFD, - 0xFE, - 0xFE, - 0xFE, - 0x56, - 0x1F, - 0x32, - 0x2A, - 0x4D, - 0x4D, - 0x00, - 0x00, - 0x0F, - 0x19, - 0x32, - 0x1F, - 0x1C, - 0x12, - 0x0E, - 0x2A, - 0x0F, - 0x1C, - 0x14, - 0x32, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x1E, - 0x1C, - 0x1C, - 0x16, - 0x14, - 0x09, - 0x1B, - 0x0E, - 0x09, - 0x10, - 0x14, - 0x4F, - 0x1B, - 0x29, - 0x33, - 0x29, - 0x3C, - 0x29, - 0x22, - 0x1B, - 0x29, - 0x3C, - 0x0A, - 0x02, - 0x09, - 0x14, - 0x16, - 0x1B, - 0x1B, - 0x16, - 0x16, - 0x19, - 0x1C, - 0x15, - 0x4C, - 0x41, - 0x4B, - 0x24, - 0x26, - 0x4B, - 0x4B, - 0x5C, - 0x95, - 0x73, - 0x73, - 0x83, - 0x83, - 0x88, - 0x83, - 0x77, - 0x92, - 0x83, - 0x6A, - 0x72, - 0x61, - 0x5E, - 0x61, - 0x61, - 0x51, - 0x51, - 0x5E, - 0x61, - 0x61, - 0x6A, - 0x5E, - 0x68, - 0x6A, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x5E, - 0x51, - 0x51, - 0x46, - 0x51, - 0x51, - 0x51, - 0x36, - 0x2E, - 0x47, - 0x59, - 0x48, - 0x6B, - 0x54, - 0x48, - 0x54, - 0x31, - 0x58, - 0x6B, - 0x66, - 0x54, - 0x50, - 0x50, - 0x50, - 0x2E, - 0x48, - 0x27, - 0x2B, - 0x52, - 0x6B, - 0x59, - 0x54, - 0x48, - 0x48, - 0x48, - 0x44, - 0x3F, - 0x18, - 0x5A, - 0x5A, - 0x63, - 0x3B, - 0x3A, - 0x44, - 0x3D, - 0x48, - 0x42, - 0x58, - 0x54, - 0x48, - 0x3F, - 0x3F, - 0x31, - 0x25, - 0x31, - 0x31, - 0x21, - 0x31, - 0x3F, - 0x3F, - 0x34, - 0x21, - 0x3B, - 0x47, - 0x3B, - 0x53, - 0x50, - 0x17, - 0x50, - 0x53, - 0x47, - 0x48, - 0x30, - 0x08, - 0x50, - 0x31, - 0x23, - 0x13, - 0x04, - 0x08, - 0x47, - 0x20, - 0x00, - 0x01, - 0x08, - 0x21, - 0x31, - 0x44, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x16, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xD8, - 0xF7, - 0xD8, - 0xF4, - 0xF4, - 0xEC, - 0xD8, - 0xF4, - 0xF4, - 0xC6, - 0xF4, - 0xDF, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xF4, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x76, - 0x76, - 0x71, - 0x79, - 0x76, - 0x79, - 0x71, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x84, - 0x84, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x97, - 0x8D, - 0x8D, - 0x97, - 0x97, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0x9B, - 0x9B, - 0x9B, - 0xB9, - 0xB9, - 0xB9, - 0x07, - 0xBC, - 0x00, - 0x20, - 0xC3, - 0xBC, - 0xE4, - 0xBC, - 0xE3, - 0xBC, - 0xC3, - 0xE4, - 0xC3, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xCA, - 0xE3, - 0x95, - 0x1F, - 0x19, - 0x1F, - 0x2A, - 0x16, - 0x0E, - 0x14, - 0x0E, - 0x0E, - 0x06, - 0x03, - 0xF5, - 0xD9, - 0xF5, - 0xF5, - 0xD9, - 0x06, - 0xF5, - 0x00, - 0x12, - 0xE1, - 0xF5, - 0xFB, - 0xF5, - 0xF6, - 0xF5, - 0xF5, - 0xFB, - 0xFB, - 0xFB, - 0xFD, - 0xF6, - 0xFB, - 0xFD, - 0xF6, - 0xFD, - 0xFD, - 0xFD, - 0x05, - 0xFE, - 0x00, - 0x11, - 0x19, - 0x2A, - 0x1F, - 0x2A, - 0x62, - 0x11, - 0x00, - 0x0B, - 0x1C, - 0x11, - 0x1F, - 0x19, - 0x03, - 0x11, - 0x1C, - 0x1E, - 0x19, - 0x00, - 0x06, - 0x1C, - 0x00, - 0x2B, - 0x16, - 0x16, - 0x1B, - 0x1B, - 0x1C, - 0x14, - 0x16, - 0x0E, - 0x10, - 0x09, - 0x14, - 0x29, - 0x10, - 0x22, - 0x1B, - 0x4F, - 0x33, - 0x22, - 0x29, - 0x1B, - 0x1B, - 0x29, - 0x09, - 0x05, - 0x05, - 0x10, - 0x10, - 0x16, - 0x1B, - 0x14, - 0x1B, - 0x16, - 0x1C, - 0x28, - 0x26, - 0x4C, - 0x4C, - 0x26, - 0x36, - 0x57, - 0x4B, - 0x4C, - 0x51, - 0x00, - 0x05, - 0x73, - 0x00, - 0x6E, - 0x83, - 0x83, - 0x92, - 0x72, - 0x83, - 0x72, - 0x72, - 0x61, - 0x68, - 0x51, - 0x6E, - 0x61, - 0x51, - 0x51, - 0x6A, - 0x61, - 0x68, - 0x5E, - 0x61, - 0x51, - 0x51, - 0x51, - 0x68, - 0x51, - 0x5E, - 0x51, - 0x5E, - 0x46, - 0x51, - 0x36, - 0x36, - 0x29, - 0x38, - 0x63, - 0x63, - 0x5F, - 0x59, - 0x58, - 0x6B, - 0x63, - 0x43, - 0x63, - 0x50, - 0x54, - 0x58, - 0x47, - 0x47, - 0x34, - 0x52, - 0x65, - 0x5A, - 0x3F, - 0x59, - 0x48, - 0x54, - 0x48, - 0x48, - 0x44, - 0x48, - 0x40, - 0x33, - 0x52, - 0x43, - 0x5A, - 0x42, - 0x42, - 0x48, - 0x30, - 0x48, - 0x44, - 0x50, - 0x63, - 0x3D, - 0x44, - 0x3F, - 0x31, - 0x21, - 0x31, - 0x1A, - 0x21, - 0x2E, - 0x21, - 0x48, - 0x3A, - 0x2C, - 0x3A, - 0x53, - 0x53, - 0x43, - 0x53, - 0x48, - 0x0C, - 0x47, - 0x47, - 0x30, - 0x23, - 0x08, - 0x31, - 0x2E, - 0x18, - 0x07, - 0x07, - 0x21, - 0x53, - 0x07, - 0x01, - 0x04, - 0x31, - 0x3F, - 0x40, - 0x04, - 0xFA, - 0x00, - 0x17, - 0xF7, - 0xFA, - 0xD8, - 0xD8, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xD8, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xDF, - 0xEC, - 0xEC, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x71, - 0x6C, - 0x6C, - 0x71, - 0x71, - 0x76, - 0x04, - 0x79, - 0x00, - 0x0A, - 0x84, - 0x79, - 0x79, - 0x84, - 0x84, - 0x84, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x09, - 0x9A, - 0x00, - 0x12, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xA5, - 0xBC, - 0xB9, - 0x9B, - 0xBC, - 0x9B, - 0xB1, - 0xBC, - 0xB1, - 0x07, - 0xBC, - 0x00, - 0x29, - 0xC3, - 0xBC, - 0xE4, - 0xC3, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xD4, - 0xE3, - 0xCE, - 0x82, - 0x1F, - 0x19, - 0x2A, - 0x1C, - 0x14, - 0x11, - 0x1E, - 0x1E, - 0x16, - 0x09, - 0x05, - 0x57, - 0xD3, - 0xFB, - 0xF5, - 0xE3, - 0xF5, - 0xE3, - 0xEF, - 0xF5, - 0xD9, - 0xF5, - 0xF5, - 0xE1, - 0xE1, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0x00, - 0x04, - 0xFB, - 0x01, - 0xF6, - 0x01, - 0xFB, - 0x04, - 0xFD, - 0x01, - 0xFE, - 0x01, - 0xFD, - 0x05, - 0xFE, - 0x00, - 0xB4, - 0x82, - 0x12, - 0x1F, - 0x32, - 0x39, - 0x5B, - 0x05, - 0x03, - 0x09, - 0x4D, - 0x1C, - 0x1F, - 0x0F, - 0x1F, - 0x1C, - 0x1C, - 0x19, - 0x11, - 0x11, - 0x11, - 0x1C, - 0x1C, - 0x14, - 0x16, - 0x1C, - 0x1E, - 0x16, - 0x11, - 0x14, - 0x16, - 0x1B, - 0x0F, - 0x11, - 0x10, - 0x2A, - 0x10, - 0x22, - 0x22, - 0x33, - 0x35, - 0x22, - 0x4F, - 0x29, - 0x29, - 0x29, - 0x10, - 0x0B, - 0x05, - 0x09, - 0x14, - 0x22, - 0x1C, - 0x16, - 0x1E, - 0x10, - 0x14, - 0x0E, - 0x4C, - 0x1F, - 0x1F, - 0x12, - 0x41, - 0x24, - 0x4C, - 0x57, - 0x5C, - 0x57, - 0x57, - 0x6A, - 0xAA, - 0x73, - 0x73, - 0x92, - 0x73, - 0x87, - 0x6E, - 0x77, - 0x72, - 0x6A, - 0x5E, - 0x5E, - 0x61, - 0x5E, - 0x61, - 0x5E, - 0x6A, - 0x61, - 0x68, - 0x68, - 0x5E, - 0x5E, - 0x5E, - 0x74, - 0x51, - 0x5E, - 0x46, - 0x5E, - 0x51, - 0x5C, - 0x46, - 0x36, - 0x46, - 0x24, - 0x27, - 0x44, - 0x5A, - 0x6B, - 0x58, - 0x54, - 0x58, - 0x5F, - 0x53, - 0x63, - 0x53, - 0x54, - 0x63, - 0x42, - 0x48, - 0x50, - 0x33, - 0x52, - 0x3F, - 0x40, - 0x59, - 0x63, - 0x48, - 0x48, - 0x48, - 0x3D, - 0x3F, - 0x31, - 0x23, - 0x55, - 0x43, - 0x50, - 0x58, - 0x3A, - 0x48, - 0x3D, - 0x48, - 0x34, - 0x3F, - 0x63, - 0x3F, - 0x43, - 0x3F, - 0x31, - 0x31, - 0x21, - 0x21, - 0x21, - 0x18, - 0x0C, - 0x47, - 0x53, - 0x47, - 0x20, - 0x3B, - 0x58, - 0x45, - 0x3A, - 0x54, - 0x48, - 0x3A, - 0x3D, - 0x25, - 0x1A, - 0x07, - 0x44, - 0x21, - 0x13, - 0x02, - 0x5F, - 0x5A, - 0x34, - 0x02, - 0x29, - 0x07, - 0x31, - 0x52, - 0x07, - 0xFA, - 0x00, - 0x09, - 0xF7, - 0xF7, - 0xD8, - 0xF7, - 0xF7, - 0xD8, - 0xD8, - 0xF4, - 0xEC, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x08, - 0xC6, - 0xF4, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x76, - 0x6C, - 0x79, - 0x6C, - 0x79, - 0x71, - 0x71, - 0x79, - 0x71, - 0x79, - 0x71, - 0x79, - 0x84, - 0x84, - 0x79, - 0x8D, - 0x84, - 0x8D, - 0x97, - 0x8D, - 0x8D, - 0x84, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0x8A, - 0xA5, - 0x9A, - 0x8A, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x0E, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0xB1, - 0xB1, - 0xB1, - 0xBC, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0x04, - 0xBC, - 0x00, - 0x30, - 0xE4, - 0xBC, - 0xE3, - 0xBC, - 0xE3, - 0xE4, - 0xC3, - 0xD9, - 0xE4, - 0xC3, - 0xE3, - 0x82, - 0x2A, - 0x2A, - 0x1F, - 0x1C, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x1E, - 0x14, - 0x03, - 0x00, - 0xF5, - 0xF5, - 0xD9, - 0xF5, - 0xE3, - 0xF5, - 0xF5, - 0xE3, - 0xF5, - 0xFB, - 0xF5, - 0xF5, - 0xFB, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xFB, - 0xFB, - 0xF6, - 0xFB, - 0xFD, - 0xFB, - 0x05, - 0xFD, - 0x01, - 0xFE, - 0x01, - 0xFD, - 0x04, - 0xFE, - 0x00, - 0x45, - 0xFD, - 0x67, - 0x19, - 0x39, - 0x32, - 0x4D, - 0x60, - 0x00, - 0x2A, - 0x39, - 0x1C, - 0x1C, - 0x19, - 0x0F, - 0x12, - 0x19, - 0x11, - 0x0F, - 0x19, - 0x11, - 0x11, - 0x0F, - 0x1C, - 0x1C, - 0x1C, - 0x11, - 0x1C, - 0x16, - 0x1C, - 0x1C, - 0x1C, - 0x1E, - 0x2A, - 0x10, - 0x1C, - 0x2A, - 0x04, - 0x16, - 0x22, - 0x55, - 0x22, - 0x29, - 0x22, - 0x1B, - 0x35, - 0x3C, - 0x10, - 0x03, - 0x04, - 0x19, - 0x10, - 0x29, - 0x16, - 0x1B, - 0x14, - 0x14, - 0x11, - 0x1C, - 0x2A, - 0x1F, - 0x19, - 0x41, - 0x4C, - 0x4B, - 0x41, - 0x4C, - 0x4C, - 0x73, - 0x8C, - 0x00, - 0x04, - 0x73, - 0x00, - 0x6B, - 0x87, - 0x83, - 0x73, - 0x87, - 0x72, - 0x83, - 0x61, - 0x72, - 0x61, - 0x72, - 0x68, - 0x74, - 0x68, - 0x6A, - 0x5E, - 0x68, - 0x68, - 0x61, - 0x68, - 0x5E, - 0x5E, - 0x51, - 0x61, - 0x51, - 0x69, - 0x51, - 0x51, - 0x36, - 0x36, - 0x36, - 0x10, - 0x2E, - 0x3F, - 0x81, - 0x58, - 0x5A, - 0x50, - 0x5A, - 0x54, - 0x59, - 0x54, - 0x50, - 0x50, - 0x54, - 0x50, - 0x48, - 0x21, - 0x40, - 0x33, - 0x21, - 0x5A, - 0x63, - 0x42, - 0x48, - 0x48, - 0x3D, - 0x31, - 0x52, - 0x31, - 0x33, - 0x43, - 0x63, - 0x53, - 0x48, - 0x3D, - 0x3F, - 0x44, - 0x59, - 0x3F, - 0x63, - 0x44, - 0x3F, - 0x3F, - 0x2E, - 0x31, - 0x31, - 0x1D, - 0x18, - 0x31, - 0x18, - 0x3A, - 0x38, - 0x53, - 0x3A, - 0x3A, - 0x47, - 0x54, - 0x47, - 0x37, - 0x48, - 0x3A, - 0x34, - 0x1A, - 0x13, - 0x07, - 0x1A, - 0x13, - 0x02, - 0x18, - 0x0C, - 0x5A, - 0x17, - 0x02, - 0x13, - 0x08, - 0x3F, - 0xBE, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x12, - 0xD8, - 0xFA, - 0xF7, - 0xD8, - 0xF7, - 0xF7, - 0xF4, - 0xD8, - 0xF4, - 0xF4, - 0xEC, - 0xF4, - 0xF0, - 0xDF, - 0xF4, - 0xC6, - 0xEC, - 0xF4, - 0x04, - 0xEC, - 0x01, - 0xF4, - 0x01, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x09, - 0x71, - 0x6C, - 0x76, - 0x71, - 0x76, - 0x71, - 0x79, - 0x76, - 0x6C, - 0x00, - 0x05, - 0x79, - 0x00, - 0x0A, - 0x84, - 0x79, - 0x84, - 0x84, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x9A, - 0x8A, - 0x05, - 0x9A, - 0x00, - 0x14, - 0x8A, - 0xA5, - 0xA5, - 0x9B, - 0x9B, - 0xA5, - 0x9B, - 0xB1, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0x9B, - 0xBC, - 0xB1, - 0xBC, - 0xB9, - 0xB9, - 0x04, - 0xBC, - 0x00, - 0x29, - 0xE4, - 0xE4, - 0xBC, - 0xC3, - 0xE4, - 0xC3, - 0xE4, - 0xD4, - 0xCA, - 0xCE, - 0x82, - 0x1F, - 0x2A, - 0x2A, - 0x1E, - 0x14, - 0x0F, - 0x0E, - 0x1E, - 0x2A, - 0x14, - 0x09, - 0x03, - 0x67, - 0xD9, - 0xF5, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xFB, - 0xE3, - 0xE1, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xFB, - 0xF5, - 0x00, - 0x04, - 0xFB, - 0x01, - 0xFD, - 0x01, - 0xFB, - 0x07, - 0xFD, - 0x06, - 0xFE, - 0x00, - 0x33, - 0xC3, - 0x19, - 0x1F, - 0x39, - 0x32, - 0x60, - 0x1E, - 0x4D, - 0x0F, - 0x19, - 0x19, - 0x12, - 0x19, - 0x0F, - 0x19, - 0x19, - 0x0F, - 0x0F, - 0x14, - 0x0F, - 0x14, - 0x11, - 0x16, - 0x14, - 0x16, - 0x14, - 0x1C, - 0x14, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x1E, - 0x1C, - 0x2A, - 0x09, - 0x14, - 0x13, - 0x22, - 0x29, - 0x22, - 0x22, - 0x1B, - 0x35, - 0x29, - 0x2A, - 0x01, - 0x05, - 0x09, - 0x14, - 0x14, - 0x00, - 0x04, - 0x16, - 0x00, - 0x10, - 0x09, - 0x2A, - 0x22, - 0x1C, - 0x1F, - 0x26, - 0x26, - 0x24, - 0x36, - 0x32, - 0x64, - 0x57, - 0x60, - 0x73, - 0x61, - 0xAA, - 0x04, - 0x73, - 0x00, - 0x67, - 0x77, - 0x77, - 0x83, - 0x68, - 0x6A, - 0x61, - 0x61, - 0x77, - 0x72, - 0x72, - 0x61, - 0x72, - 0x5E, - 0x68, - 0x72, - 0x74, - 0x68, - 0x68, - 0x68, - 0x51, - 0x51, - 0x5E, - 0x51, - 0x5C, - 0x46, - 0x46, - 0x36, - 0x24, - 0x1B, - 0x13, - 0x81, - 0x63, - 0x54, - 0x58, - 0x63, - 0x63, - 0x63, - 0x5F, - 0x58, - 0x53, - 0x63, - 0x42, - 0x3F, - 0x44, - 0x33, - 0x4E, - 0x52, - 0x59, - 0x54, - 0x50, - 0x54, - 0x44, - 0x44, - 0x31, - 0x2E, - 0x31, - 0x13, - 0x52, - 0x44, - 0x50, - 0x43, - 0x44, - 0x3F, - 0x3F, - 0x3F, - 0x44, - 0x63, - 0x43, - 0x34, - 0x3F, - 0x31, - 0x21, - 0x21, - 0x17, - 0x21, - 0x47, - 0x30, - 0x42, - 0x2C, - 0x3A, - 0x53, - 0x47, - 0x48, - 0x47, - 0x48, - 0x47, - 0x3D, - 0x30, - 0x2E, - 0x18, - 0x07, - 0x07, - 0x33, - 0x07, - 0x04, - 0x5A, - 0x2E, - 0x54, - 0x08, - 0x31, - 0x2F, - 0x20, - 0xA8, - 0x00, - 0x06, - 0xFA, - 0x00, - 0x17, - 0xD8, - 0xF7, - 0xF7, - 0xD8, - 0xF7, - 0xF4, - 0xD8, - 0xF4, - 0xF4, - 0xD8, - 0xEC, - 0xC6, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xDF, - 0xF4, - 0xF4, - 0xF7, - 0xEC, - 0xC8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x33, - 0x76, - 0x6C, - 0x71, - 0x76, - 0x6C, - 0x79, - 0x6C, - 0x71, - 0x79, - 0x71, - 0x79, - 0x71, - 0x79, - 0x79, - 0x84, - 0x79, - 0x84, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8A, - 0x9A, - 0x8A, - 0x9A, - 0x9A, - 0xA5, - 0x8A, - 0x9A, - 0xA5, - 0xB1, - 0xA5, - 0xA5, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0x9B, - 0xBC, - 0xB9, - 0x9B, - 0xB9, - 0xB1, - 0xBC, - 0xBC, - 0xB9, - 0xB9, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x23, - 0xE4, - 0xE4, - 0xBC, - 0xE4, - 0xC3, - 0xE4, - 0xC3, - 0x8F, - 0x2A, - 0x39, - 0x39, - 0x2A, - 0x1C, - 0x1C, - 0x1C, - 0x29, - 0x2A, - 0x35, - 0x0E, - 0x0B, - 0x01, - 0xFB, - 0xF5, - 0xF5, - 0xE3, - 0xFB, - 0xF5, - 0xFB, - 0xE1, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0x00, - 0x05, - 0xFB, - 0x00, - 0x05, - 0xF6, - 0xFB, - 0xFB, - 0xFD, - 0xFB, - 0x00, - 0x04, - 0xFD, - 0x09, - 0xFE, - 0x00, - 0xB2, - 0xFD, - 0x32, - 0x12, - 0x2A, - 0x4D, - 0x32, - 0x4D, - 0x0F, - 0x1F, - 0x1F, - 0x11, - 0x11, - 0x12, - 0x0F, - 0x12, - 0x19, - 0x0B, - 0x0F, - 0x19, - 0x11, - 0x09, - 0x1C, - 0x1B, - 0x16, - 0x14, - 0x14, - 0x14, - 0x2A, - 0x14, - 0x1C, - 0x1E, - 0x2A, - 0x1E, - 0x1C, - 0x2A, - 0x1E, - 0x05, - 0x1B, - 0x22, - 0x33, - 0x22, - 0x22, - 0x14, - 0x3C, - 0x29, - 0x35, - 0x09, - 0x05, - 0x09, - 0x0E, - 0x1B, - 0x1C, - 0x22, - 0x16, - 0x16, - 0x05, - 0x4F, - 0x29, - 0x1E, - 0x0F, - 0x2D, - 0x26, - 0x41, - 0x26, - 0x41, - 0x4C, - 0x57, - 0x60, - 0x57, - 0x6D, - 0x57, - 0x73, - 0x57, - 0x73, - 0xAA, - 0x83, - 0x74, - 0x87, - 0x83, - 0x72, - 0x6A, - 0x72, - 0x72, - 0x6E, - 0x6A, - 0x72, - 0x72, - 0x68, - 0x61, - 0x6A, - 0x5E, - 0x68, - 0x5E, - 0x51, - 0x74, - 0x69, - 0x5C, - 0x5E, - 0x5C, - 0x51, - 0x36, - 0x46, - 0x24, - 0x55, - 0x04, - 0x59, - 0x6B, - 0x3D, - 0x54, - 0x54, - 0x54, - 0x30, - 0x54, - 0x48, - 0x47, - 0x54, - 0x5A, - 0x59, - 0x44, - 0x40, - 0x33, - 0x52, - 0x52, - 0x63, - 0x48, - 0x44, - 0x48, - 0x3D, - 0x44, - 0x2B, - 0x40, - 0x33, - 0x43, - 0x43, - 0x54, - 0x48, - 0x42, - 0x44, - 0x31, - 0x3F, - 0x31, - 0x21, - 0x59, - 0x50, - 0x31, - 0x2E, - 0x31, - 0x2B, - 0x21, - 0x18, - 0x27, - 0x38, - 0x30, - 0x47, - 0x42, - 0x47, - 0x47, - 0x47, - 0x48, - 0x3A, - 0x47, - 0x48, - 0x1A, - 0x18, - 0x18, - 0x13, - 0x04, - 0x13, - 0x04, - 0x43, - 0x31, - 0x50, - 0x21, - 0x21, - 0x18, - 0x04, - 0x7B, - 0xFE, - 0x04, - 0xFA, - 0x00, - 0x07, - 0xD8, - 0xF7, - 0xFA, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x0E, - 0xDF, - 0xF4, - 0xF4, - 0xDF, - 0xF0, - 0xEC, - 0xC6, - 0xF0, - 0xF4, - 0xC8, - 0xC8, - 0xDF, - 0xF4, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x15, - 0x71, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x71, - 0x79, - 0x71, - 0x79, - 0x71, - 0x79, - 0x79, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x7D, - 0x84, - 0x84, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x51, - 0x8A, - 0x8D, - 0x9A, - 0x9A, - 0x8A, - 0x9A, - 0xA5, - 0x9A, - 0x9B, - 0x8A, - 0xA5, - 0xA5, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xB9, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0xB9, - 0xB9, - 0xBC, - 0xB9, - 0xBC, - 0xB9, - 0xBC, - 0xBC, - 0xBC, - 0xE4, - 0xBC, - 0xC3, - 0xE3, - 0xCE, - 0x8F, - 0x2A, - 0x39, - 0x1F, - 0x1B, - 0x1C, - 0x19, - 0x22, - 0x14, - 0x4F, - 0x4D, - 0x32, - 0x0F, - 0x0F, - 0x0A, - 0xD9, - 0xF5, - 0xE3, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xD4, - 0xFB, - 0xE3, - 0xE3, - 0xFB, - 0xFB, - 0xF5, - 0xF5, - 0xFB, - 0xF5, - 0xFB, - 0xF6, - 0xF6, - 0xC9, - 0x9F, - 0x8E, - 0x8E, - 0xA7, - 0xBF, - 0xE1, - 0xFD, - 0xFD, - 0xFD, - 0x00, - 0x07, - 0xFE, - 0x00, - 0xB1, - 0xE0, - 0x4D, - 0x3E, - 0x15, - 0x39, - 0x60, - 0x4D, - 0x32, - 0x0A, - 0x1F, - 0x0F, - 0x0A, - 0x11, - 0x12, - 0x12, - 0x12, - 0x0D, - 0x0B, - 0x0E, - 0x0F, - 0x11, - 0x0B, - 0x1E, - 0x1C, - 0x14, - 0x14, - 0x14, - 0x16, - 0x1C, - 0x1E, - 0x2A, - 0x1E, - 0x1C, - 0x1C, - 0x39, - 0x2A, - 0x0E, - 0x09, - 0x1B, - 0x22, - 0x22, - 0x14, - 0x29, - 0x29, - 0x1E, - 0x1E, - 0x1B, - 0x05, - 0x05, - 0x0E, - 0x14, - 0x1E, - 0x1B, - 0x16, - 0x14, - 0x14, - 0x29, - 0x2A, - 0x22, - 0x1B, - 0x32, - 0x12, - 0x2D, - 0x15, - 0x12, - 0x57, - 0x4C, - 0x4C, - 0x4B, - 0x57, - 0x73, - 0x57, - 0x5C, - 0x6D, - 0x5E, - 0x6A, - 0x73, - 0x83, - 0x6A, - 0x87, - 0x77, - 0x72, - 0x7E, - 0x6E, - 0x87, - 0x6E, - 0x68, - 0x77, - 0x68, - 0x68, - 0x68, - 0x72, - 0x51, - 0x74, - 0x51, - 0x5E, - 0x5E, - 0x5E, - 0x51, - 0x46, - 0x46, - 0x36, - 0x36, - 0x4C, - 0x26, - 0x13, - 0x6B, - 0x54, - 0x63, - 0x63, - 0x54, - 0x44, - 0x50, - 0x59, - 0x58, - 0x48, - 0x34, - 0x50, - 0x54, - 0x50, - 0x21, - 0x52, - 0x31, - 0x54, - 0x50, - 0x3D, - 0x47, - 0x47, - 0x6B, - 0x50, - 0x6B, - 0x52, - 0x59, - 0x59, - 0x63, - 0x3F, - 0x48, - 0x3F, - 0x3F, - 0x2E, - 0x31, - 0x17, - 0x52, - 0x59, - 0x3F, - 0x3F, - 0x21, - 0x21, - 0x21, - 0x18, - 0x17, - 0x42, - 0x1D, - 0x3A, - 0x54, - 0x50, - 0x42, - 0x48, - 0x48, - 0x48, - 0x34, - 0x2E, - 0x44, - 0x30, - 0x23, - 0x07, - 0x04, - 0x04, - 0x07, - 0x43, - 0x3A, - 0x31, - 0x18, - 0x31, - 0x33, - 0x5D, - 0xFE, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x19, - 0xF7, - 0xF7, - 0xF7, - 0xFA, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xD8, - 0xDF, - 0xF4, - 0xF4, - 0xC6, - 0xC6, - 0xEC, - 0xDF, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x76, - 0x6C, - 0x6C, - 0x79, - 0x6C, - 0x79, - 0x6C, - 0x76, - 0x71, - 0x76, - 0x6C, - 0x00, - 0x06, - 0x79, - 0x00, - 0x06, - 0x84, - 0x84, - 0x84, - 0x8D, - 0x79, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x3A, - 0x9A, - 0x9A, - 0x9A, - 0x8A, - 0x8A, - 0xA5, - 0x9A, - 0xA5, - 0x9B, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0xB1, - 0xA5, - 0xBC, - 0xB1, - 0xB9, - 0xBC, - 0xB9, - 0xBC, - 0xB9, - 0xE4, - 0xE4, - 0xBC, - 0xC8, - 0xE4, - 0xE4, - 0xBC, - 0x95, - 0x39, - 0x32, - 0x2A, - 0x2A, - 0x2A, - 0x19, - 0x22, - 0x1F, - 0x39, - 0x39, - 0x32, - 0x16, - 0x0B, - 0x06, - 0x67, - 0xE2, - 0xE0, - 0xFB, - 0xD9, - 0xF5, - 0xE3, - 0xFB, - 0xFB, - 0xF5, - 0x05, - 0xFB, - 0x00, - 0x07, - 0xE3, - 0xFD, - 0xCA, - 0x70, - 0x26, - 0x0D, - 0x03, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x21, - 0x24, - 0x26, - 0x15, - 0x0D, - 0x15, - 0x64, - 0x2D, - 0x70, - 0x95, - 0xB8, - 0xFE, - 0xFE, - 0xFE, - 0x9C, - 0x5B, - 0x0A, - 0x26, - 0x39, - 0x4D, - 0x60, - 0x5B, - 0x19, - 0x12, - 0x0B, - 0x19, - 0x0F, - 0x0F, - 0x19, - 0x06, - 0x0A, - 0x0F, - 0x0F, - 0x0E, - 0x00, - 0x05, - 0x14, - 0x00, - 0x97, - 0x1C, - 0x11, - 0x2A, - 0x1C, - 0x2A, - 0x1F, - 0x2A, - 0x1C, - 0x2A, - 0x35, - 0x2A, - 0x01, - 0x09, - 0x22, - 0x1B, - 0x07, - 0x39, - 0x35, - 0x29, - 0x29, - 0x1E, - 0x1B, - 0x01, - 0x0F, - 0x14, - 0x1B, - 0x1E, - 0x16, - 0x10, - 0x29, - 0x1B, - 0x1B, - 0x1E, - 0x1C, - 0x1E, - 0x1C, - 0x1F, - 0x26, - 0x26, - 0x26, - 0x32, - 0x4C, - 0x60, - 0x57, - 0x60, - 0x57, - 0x6D, - 0x73, - 0x57, - 0x82, - 0x73, - 0x74, - 0x74, - 0x83, - 0x77, - 0x75, - 0x7E, - 0x87, - 0x77, - 0x6E, - 0x77, - 0x77, - 0x72, - 0x61, - 0x6A, - 0x5E, - 0x68, - 0x68, - 0x51, - 0x5E, - 0x74, - 0x5C, - 0x46, - 0x5E, - 0x36, - 0x51, - 0x46, - 0x4B, - 0x4F, - 0x4E, - 0x6B, - 0x53, - 0x63, - 0x54, - 0x59, - 0x63, - 0x48, - 0x54, - 0x50, - 0x63, - 0x50, - 0x58, - 0x63, - 0x43, - 0x52, - 0x43, - 0x52, - 0x54, - 0x3D, - 0x54, - 0x54, - 0x54, - 0x53, - 0x3A, - 0x6B, - 0x43, - 0x6B, - 0x5F, - 0x54, - 0x5A, - 0x3F, - 0x44, - 0x31, - 0x31, - 0x31, - 0x21, - 0x2E, - 0x31, - 0x3F, - 0x21, - 0x21, - 0x25, - 0x18, - 0x21, - 0x1A, - 0x2E, - 0x2E, - 0x31, - 0x2C, - 0x42, - 0x54, - 0x42, - 0x3D, - 0x2E, - 0x1A, - 0x37, - 0x21, - 0x23, - 0x13, - 0x07, - 0x04, - 0x02, - 0x17, - 0x3A, - 0x48, - 0x31, - 0x40, - 0x13, - 0x4E, - 0xFA, - 0xF1, - 0x00, - 0x06, - 0xFA, - 0x00, - 0x08, - 0xD8, - 0xF7, - 0xF7, - 0xF7, - 0xD8, - 0xF4, - 0xF7, - 0xDF, - 0x04, - 0xF4, - 0x00, - 0x0C, - 0xDF, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xC8, - 0xF4, - 0xF7, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x18, - 0x6C, - 0x76, - 0x71, - 0x76, - 0x71, - 0x71, - 0x79, - 0x6C, - 0x79, - 0x79, - 0x6C, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x79, - 0x79, - 0x79, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x7D, - 0x04, - 0x8D, - 0x04, - 0x9A, - 0x00, - 0x0F, - 0x8A, - 0x9A, - 0x9B, - 0x9A, - 0xA5, - 0xA5, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0x9B, - 0xA5, - 0xBC, - 0x9B, - 0xB1, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x32, - 0xBC, - 0xB9, - 0xB9, - 0xE4, - 0xBC, - 0xBC, - 0xE4, - 0xCE, - 0xBC, - 0x4D, - 0x32, - 0x2A, - 0x2A, - 0x1F, - 0x22, - 0x14, - 0x1C, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x14, - 0x0A, - 0x00, - 0xE4, - 0xF5, - 0xE4, - 0xFB, - 0xE3, - 0xFB, - 0xE3, - 0xE3, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xF9, - 0xF6, - 0xCA, - 0x82, - 0x24, - 0x1F, - 0x15, - 0x0D, - 0x15, - 0x15, - 0x0D, - 0x0D, - 0x0D, - 0x24, - 0x05, - 0x15, - 0x00, - 0x71, - 0x26, - 0x12, - 0x15, - 0x12, - 0x0D, - 0x03, - 0x0A, - 0x67, - 0x57, - 0x32, - 0x32, - 0x0D, - 0x1F, - 0x60, - 0x4D, - 0x60, - 0x4D, - 0x1F, - 0x39, - 0x32, - 0x32, - 0x0B, - 0x1C, - 0x12, - 0x06, - 0x0A, - 0x0F, - 0x0F, - 0x11, - 0x11, - 0x14, - 0x14, - 0x14, - 0x22, - 0x14, - 0x16, - 0x2A, - 0x1E, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x35, - 0x39, - 0x00, - 0x05, - 0x0E, - 0x10, - 0x29, - 0x35, - 0x35, - 0x35, - 0x29, - 0x1E, - 0x10, - 0x0E, - 0x05, - 0x0F, - 0x1E, - 0x1C, - 0x1C, - 0x22, - 0x1E, - 0x16, - 0x1E, - 0x16, - 0x10, - 0x2A, - 0x2F, - 0x1F, - 0x12, - 0x12, - 0x26, - 0x32, - 0x57, - 0x4C, - 0x4C, - 0x4C, - 0x57, - 0x60, - 0x57, - 0x73, - 0x95, - 0x5E, - 0x73, - 0x73, - 0x87, - 0x77, - 0x88, - 0x91, - 0x87, - 0x7E, - 0x7E, - 0x77, - 0x77, - 0x72, - 0x83, - 0x61, - 0x72, - 0x5E, - 0x5E, - 0x68, - 0x68, - 0x6A, - 0x5C, - 0x5E, - 0x46, - 0x5E, - 0x51, - 0x46, - 0x24, - 0x26, - 0x4F, - 0x00, - 0x06, - 0x63, - 0x00, - 0x21, - 0x42, - 0x63, - 0x58, - 0x48, - 0x50, - 0x37, - 0x3F, - 0x5A, - 0x50, - 0x3F, - 0x3F, - 0x54, - 0x50, - 0x3F, - 0x43, - 0x50, - 0x43, - 0x48, - 0x63, - 0x50, - 0x63, - 0x37, - 0x63, - 0x54, - 0x3F, - 0x44, - 0x31, - 0x2E, - 0x21, - 0x21, - 0x21, - 0x40, - 0x21, - 0x00, - 0x04, - 0x18, - 0x00, - 0x1A, - 0x25, - 0x34, - 0x25, - 0x1A, - 0x31, - 0x3F, - 0x31, - 0x2E, - 0x54, - 0x3A, - 0x2E, - 0x3F, - 0x25, - 0x2E, - 0x40, - 0x0C, - 0x07, - 0x02, - 0x02, - 0x17, - 0x3F, - 0x48, - 0x3F, - 0x18, - 0x18, - 0xBE, - 0x05, - 0xFA, - 0x00, - 0x1B, - 0xF7, - 0xFA, - 0xFA, - 0xD8, - 0xF7, - 0xD8, - 0xF4, - 0xF7, - 0xF4, - 0xD8, - 0xF4, - 0xDF, - 0xF4, - 0xF4, - 0xF4, - 0xDF, - 0xEC, - 0xF4, - 0xF4, - 0xC8, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF7, - 0xC8, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x5D, - 0x7D, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x79, - 0x6C, - 0x79, - 0x79, - 0x79, - 0x71, - 0x79, - 0x79, - 0x79, - 0x84, - 0x79, - 0x84, - 0x7D, - 0x79, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8D, - 0x9B, - 0x8D, - 0x8A, - 0x9A, - 0x9B, - 0x9A, - 0x9A, - 0xA5, - 0x9B, - 0xA5, - 0x9B, - 0xA5, - 0x9B, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x22, - 0xB9, - 0x9B, - 0xBC, - 0xB9, - 0xB9, - 0xE4, - 0xBC, - 0xBC, - 0xB9, - 0xE4, - 0xE4, - 0xBC, - 0xF0, - 0x4D, - 0x2A, - 0x2A, - 0x2A, - 0x32, - 0x19, - 0x2A, - 0x39, - 0x1E, - 0x11, - 0x2F, - 0x35, - 0x1F, - 0x0F, - 0x0B, - 0x0A, - 0xFB, - 0xE1, - 0xFB, - 0xFB, - 0xE3, - 0x05, - 0xFB, - 0x00, - 0x0E, - 0xCC, - 0x57, - 0x64, - 0x15, - 0x12, - 0x15, - 0x12, - 0x0D, - 0x0D, - 0x15, - 0x24, - 0x36, - 0x24, - 0x24, - 0x04, - 0x15, - 0x00, - 0xB8, - 0x24, - 0x57, - 0x24, - 0x24, - 0x24, - 0x15, - 0x24, - 0x24, - 0x15, - 0x26, - 0x24, - 0x15, - 0x12, - 0x12, - 0x0A, - 0x12, - 0x1F, - 0x6D, - 0x5B, - 0x62, - 0x71, - 0x0A, - 0x0F, - 0x1F, - 0x0A, - 0x12, - 0x19, - 0x0A, - 0x06, - 0x0A, - 0x0B, - 0x0B, - 0x0E, - 0x14, - 0x1C, - 0x14, - 0x0F, - 0x14, - 0x14, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x2A, - 0x2A, - 0x1E, - 0x39, - 0x01, - 0x03, - 0x05, - 0x09, - 0x35, - 0x22, - 0x1E, - 0x1E, - 0x16, - 0x1E, - 0x10, - 0x0B, - 0x03, - 0x0E, - 0x16, - 0x1E, - 0x2A, - 0x1B, - 0x1E, - 0x29, - 0x22, - 0x29, - 0x1E, - 0x10, - 0x2A, - 0x0F, - 0x1E, - 0x26, - 0x19, - 0x26, - 0x41, - 0x26, - 0x4C, - 0x32, - 0x4D, - 0x57, - 0x57, - 0x60, - 0x5C, - 0x82, - 0x68, - 0x73, - 0x83, - 0x92, - 0x91, - 0x93, - 0x88, - 0x7E, - 0x7E, - 0x7E, - 0x6E, - 0x87, - 0x77, - 0x87, - 0x68, - 0x83, - 0x68, - 0x72, - 0x68, - 0x68, - 0x51, - 0x69, - 0x69, - 0x5C, - 0x5C, - 0x46, - 0x46, - 0x24, - 0x22, - 0x52, - 0x81, - 0x54, - 0x63, - 0x58, - 0x59, - 0x54, - 0x59, - 0x59, - 0x54, - 0x54, - 0x59, - 0x50, - 0x48, - 0x50, - 0x3A, - 0x5A, - 0x34, - 0x50, - 0x48, - 0x63, - 0x43, - 0x50, - 0x63, - 0x43, - 0x63, - 0x34, - 0x58, - 0x59, - 0x59, - 0x43, - 0x3F, - 0x31, - 0x31, - 0x21, - 0x21, - 0x18, - 0x21, - 0x31, - 0x21, - 0x18, - 0x07, - 0x08, - 0x1A, - 0x47, - 0x2B, - 0x3F, - 0x2B, - 0x21, - 0x31, - 0x31, - 0x13, - 0x18, - 0x31, - 0x2B, - 0x31, - 0x34, - 0x18, - 0x07, - 0x04, - 0x02, - 0x18, - 0x43, - 0x31, - 0x21, - 0x1A, - 0x33, - 0x3C, - 0x06, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x17, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xDF, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xEC, - 0xDF, - 0xEC, - 0xC8, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x76, - 0x79, - 0x71, - 0x00, - 0x07, - 0x79, - 0x00, - 0x07, - 0x84, - 0x84, - 0x8D, - 0x79, - 0x84, - 0x8D, - 0x84, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x23, - 0x9A, - 0x8A, - 0x9A, - 0x9A, - 0x9A, - 0x8A, - 0x8A, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0x9B, - 0xA5, - 0x9B, - 0xB1, - 0xB1, - 0xB9, - 0xB1, - 0xF0, - 0xB1, - 0xBC, - 0xB9, - 0xB1, - 0xB1, - 0xBC, - 0xC8, - 0xBC, - 0xC8, - 0xF0, - 0x62, - 0x39, - 0x39, - 0x35, - 0x32, - 0x14, - 0x00, - 0x04, - 0x1C, - 0x00, - 0x26, - 0x14, - 0x14, - 0x32, - 0x2A, - 0x12, - 0x03, - 0x1F, - 0xFB, - 0xF9, - 0xF5, - 0xF9, - 0xFB, - 0xE3, - 0xF6, - 0xE1, - 0x82, - 0x12, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x12, - 0x15, - 0x12, - 0x12, - 0x15, - 0x12, - 0x26, - 0x15, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x15, - 0x26, - 0x36, - 0x36, - 0x0D, - 0x05, - 0x15, - 0x01, - 0x24, - 0x04, - 0x15, - 0x00, - 0xAA, - 0x0D, - 0x12, - 0x0D, - 0x12, - 0x12, - 0x32, - 0x4D, - 0x6D, - 0x5B, - 0x12, - 0x19, - 0x1F, - 0x0A, - 0x0F, - 0x0A, - 0x0A, - 0x03, - 0x0A, - 0x0B, - 0x0F, - 0x14, - 0x1C, - 0x1C, - 0x14, - 0x0F, - 0x14, - 0x1C, - 0x2A, - 0x1E, - 0x1C, - 0x1C, - 0x2A, - 0x2A, - 0x1E, - 0x1E, - 0x00, - 0x03, - 0x1E, - 0x3C, - 0x2A, - 0x1B, - 0x1E, - 0x29, - 0x29, - 0x2A, - 0x02, - 0x05, - 0x05, - 0x22, - 0x1E, - 0x1B, - 0x1B, - 0x2A, - 0x1B, - 0x1E, - 0x29, - 0x29, - 0x16, - 0x29, - 0x14, - 0x11, - 0x0F, - 0x12, - 0x32, - 0x26, - 0x4C, - 0x57, - 0x57, - 0x4C, - 0x32, - 0x57, - 0x82, - 0x6D, - 0x51, - 0x95, - 0x77, - 0x83, - 0x92, - 0x9E, - 0x92, - 0x88, - 0x91, - 0x88, - 0x75, - 0x7E, - 0x75, - 0x87, - 0x68, - 0x6E, - 0x68, - 0x72, - 0x72, - 0x6A, - 0x69, - 0x74, - 0x68, - 0x5E, - 0x51, - 0x74, - 0x46, - 0x36, - 0x15, - 0x19, - 0x13, - 0x42, - 0x54, - 0x59, - 0x63, - 0x5F, - 0x6B, - 0x63, - 0x42, - 0x59, - 0x48, - 0x53, - 0x59, - 0x42, - 0x59, - 0x48, - 0x63, - 0x59, - 0x3F, - 0x50, - 0x50, - 0x43, - 0x5A, - 0x63, - 0x43, - 0x63, - 0x48, - 0x63, - 0x3F, - 0x3F, - 0x48, - 0x48, - 0x31, - 0x21, - 0x31, - 0x18, - 0x18, - 0x21, - 0x31, - 0x3A, - 0x47, - 0x3A, - 0x08, - 0x18, - 0x0C, - 0x3A, - 0x2B, - 0x31, - 0x34, - 0x18, - 0x31, - 0x1A, - 0x21, - 0x21, - 0x3F, - 0x31, - 0x31, - 0x23, - 0x08, - 0x04, - 0x04, - 0x2B, - 0x2E, - 0x2E, - 0x21, - 0x33, - 0x23, - 0x06, - 0xFA, - 0x01, - 0xF7, - 0x01, - 0xFA, - 0x04, - 0xF7, - 0x07, - 0xF4, - 0x00, - 0x04, - 0xDF, - 0xF4, - 0xEC, - 0xF0, - 0x04, - 0xEC, - 0x01, - 0xDF, - 0x01, - 0xEC, - 0x04, - 0xF4, - 0x01, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x71, - 0x76, - 0x79, - 0x6C, - 0x6C, - 0x71, - 0x76, - 0x71, - 0x71, - 0x76, - 0x79, - 0x76, - 0x79, - 0x79, - 0x71, - 0x00, - 0x06, - 0x79, - 0x00, - 0x04, - 0x84, - 0x84, - 0x7D, - 0x7D, - 0x05, - 0x8D, - 0x00, - 0x4D, - 0x9A, - 0x8D, - 0x8D, - 0x9B, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0xB9, - 0xB1, - 0xB9, - 0xB9, - 0xF0, - 0xE4, - 0xB1, - 0xE4, - 0xE4, - 0x78, - 0x32, - 0x39, - 0x2A, - 0x2A, - 0x35, - 0x2A, - 0x1C, - 0x22, - 0x29, - 0x1B, - 0x29, - 0x39, - 0x60, - 0x14, - 0x03, - 0x03, - 0x70, - 0xE3, - 0xFB, - 0xE4, - 0xFB, - 0xE3, - 0xC3, - 0x26, - 0x03, - 0x0D, - 0x0D, - 0x06, - 0x15, - 0x12, - 0x12, - 0x24, - 0x1F, - 0x1F, - 0x15, - 0x1F, - 0x0D, - 0x0D, - 0x03, - 0x0D, - 0x06, - 0x15, - 0x15, - 0x0D, - 0x12, - 0x4C, - 0x11, - 0x32, - 0x1F, - 0x00, - 0x05, - 0x0A, - 0x00, - 0x23, - 0x06, - 0x12, - 0x0D, - 0x0A, - 0x0A, - 0x0D, - 0x0D, - 0x12, - 0x0A, - 0x0A, - 0x0B, - 0x0A, - 0x5B, - 0x4D, - 0x2A, - 0x11, - 0x0B, - 0x0A, - 0x06, - 0x0D, - 0x05, - 0x06, - 0x0B, - 0x0F, - 0x0F, - 0x14, - 0x22, - 0x11, - 0x14, - 0x0F, - 0x0E, - 0x39, - 0x2A, - 0x2A, - 0x1C, - 0x00, - 0x04, - 0x2A, - 0x00, - 0x89, - 0x00, - 0x09, - 0x35, - 0x35, - 0x22, - 0x16, - 0x1B, - 0x1B, - 0x22, - 0x29, - 0x14, - 0x09, - 0x05, - 0x09, - 0x16, - 0x22, - 0x10, - 0x22, - 0x1B, - 0x16, - 0x1B, - 0x16, - 0x1E, - 0x16, - 0x29, - 0x16, - 0x0B, - 0x19, - 0x1F, - 0x1F, - 0x26, - 0x26, - 0x26, - 0x32, - 0x60, - 0x57, - 0x57, - 0x57, - 0x8E, - 0x61, - 0x73, - 0x92, - 0x83, - 0xA0, - 0xA0, - 0x91, - 0x91, - 0x88, - 0x87, - 0x7E, - 0x87, - 0x87, - 0x7E, - 0x83, - 0x75, - 0x72, - 0x77, - 0x68, - 0x68, - 0x72, - 0x68, - 0x69, - 0x74, - 0x36, - 0x69, - 0x15, - 0x15, - 0x15, - 0x12, - 0x33, - 0x2E, - 0x59, - 0x63, - 0x63, - 0x63, - 0x44, - 0x59, - 0x54, - 0x59, - 0x40, - 0x50, - 0x48, - 0x54, - 0x3D, - 0x50, - 0x48, - 0x3F, - 0x3F, - 0x5A, - 0x52, - 0x5A, - 0x5A, - 0x3F, - 0x5A, - 0x48, - 0x5A, - 0x3F, - 0x59, - 0x43, - 0x31, - 0x31, - 0x31, - 0x21, - 0x18, - 0x13, - 0x3D, - 0x47, - 0x3B, - 0x3B, - 0x47, - 0x2C, - 0x21, - 0x34, - 0x21, - 0x2E, - 0x31, - 0x21, - 0x31, - 0x21, - 0x2E, - 0x31, - 0x3D, - 0x2B, - 0x2E, - 0x21, - 0x1A, - 0x07, - 0x02, - 0x0C, - 0x48, - 0x25, - 0x2E, - 0x23, - 0x21, - 0x65, - 0xD0, - 0xFE, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x06, - 0xD8, - 0xFA, - 0xF7, - 0xF4, - 0xD8, - 0xF7, - 0x07, - 0xF4, - 0x00, - 0x0E, - 0xDF, - 0xC6, - 0xC6, - 0xEC, - 0xF7, - 0xC8, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x76, - 0x71, - 0x6C, - 0x76, - 0x76, - 0x76, - 0x71, - 0x79, - 0x79, - 0x79, - 0x6C, - 0x00, - 0x09, - 0x79, - 0x00, - 0x06, - 0x84, - 0x79, - 0x8D, - 0x84, - 0x7D, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x3E, - 0x9B, - 0x8D, - 0x8D, - 0xA5, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9B, - 0x9B, - 0xA5, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xA5, - 0xB9, - 0xB9, - 0xB1, - 0xB1, - 0xE4, - 0x9B, - 0xB9, - 0xC8, - 0xB9, - 0xBC, - 0x4D, - 0x39, - 0x39, - 0x1E, - 0x2A, - 0x2A, - 0x35, - 0x14, - 0x22, - 0x1B, - 0x4A, - 0x32, - 0x5B, - 0x4D, - 0x09, - 0x03, - 0x03, - 0xD9, - 0xF9, - 0xE0, - 0xFB, - 0x57, - 0x0D, - 0x0A, - 0x0A, - 0x03, - 0x0D, - 0x12, - 0x0D, - 0x12, - 0x12, - 0x12, - 0x15, - 0x12, - 0x0D, - 0x06, - 0x0A, - 0x00, - 0x4A, - 0x57, - 0x26, - 0x32, - 0x19, - 0x26, - 0x32, - 0x2A, - 0x1C, - 0x11, - 0x32, - 0x19, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x06, - 0x0B, - 0x0F, - 0x0A, - 0x0F, - 0x0A, - 0x0B, - 0x0A, - 0x03, - 0x06, - 0x0B, - 0x0A, - 0x0F, - 0x19, - 0x1F, - 0x0A, - 0x06, - 0x03, - 0x0A, - 0x03, - 0x0A, - 0x03, - 0x12, - 0x0B, - 0x0F, - 0x14, - 0x14, - 0x14, - 0x11, - 0x11, - 0x11, - 0x1F, - 0x2A, - 0x2A, - 0x1C, - 0x2A, - 0x1C, - 0x2A, - 0x1E, - 0x29, - 0x29, - 0x29, - 0x1B, - 0x14, - 0x1B, - 0x1B, - 0x1B, - 0x10, - 0x22, - 0x0E, - 0x0E, - 0x06, - 0x10, - 0x1E, - 0x10, - 0x1B, - 0x1B, - 0x16, - 0x29, - 0x04, - 0x1B, - 0x00, - 0x6D, - 0x22, - 0x14, - 0x0F, - 0x1C, - 0x32, - 0x26, - 0x4C, - 0x57, - 0x26, - 0x4C, - 0x4B, - 0x57, - 0x57, - 0x73, - 0x74, - 0x92, - 0x83, - 0x87, - 0x92, - 0x91, - 0x92, - 0xA0, - 0x91, - 0x88, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x77, - 0x77, - 0x72, - 0x6A, - 0x77, - 0x77, - 0x83, - 0x74, - 0x68, - 0x68, - 0x61, - 0x46, - 0x15, - 0x24, - 0x15, - 0x15, - 0x32, - 0x08, - 0x59, - 0x54, - 0x6B, - 0x6B, - 0x63, - 0x44, - 0x59, - 0x48, - 0x44, - 0x31, - 0x3D, - 0x2E, - 0x63, - 0x30, - 0x43, - 0x59, - 0x3F, - 0x59, - 0x31, - 0x52, - 0x3F, - 0x31, - 0x5A, - 0x34, - 0x37, - 0x47, - 0x54, - 0x3F, - 0x3F, - 0x31, - 0x21, - 0x18, - 0x18, - 0x18, - 0x3A, - 0x2C, - 0x54, - 0x47, - 0x53, - 0x47, - 0x3A, - 0x42, - 0x25, - 0x21, - 0x2B, - 0x21, - 0x31, - 0x18, - 0x25, - 0x3A, - 0x43, - 0x3F, - 0x34, - 0x21, - 0x13, - 0x07, - 0x02, - 0x1A, - 0x5A, - 0x31, - 0x23, - 0x21, - 0x43, - 0x00, - 0x07, - 0xFA, - 0x00, - 0x09, - 0xF7, - 0xF7, - 0xF7, - 0xD8, - 0xF4, - 0xF7, - 0xF4, - 0xD8, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x0F, - 0xEC, - 0xF4, - 0xF0, - 0xF4, - 0xC8, - 0xF4, - 0xC8, - 0xF9, - 0xC6, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x71, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x71, - 0x79, - 0x79, - 0x79, - 0x6C, - 0x05, - 0x79, - 0x00, - 0x3D, - 0x84, - 0x79, - 0x84, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x9B, - 0x9B, - 0x9A, - 0x9B, - 0x9A, - 0xA5, - 0xB1, - 0xA5, - 0xB1, - 0x9B, - 0xA5, - 0x9B, - 0xB9, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xA5, - 0xF0, - 0xB9, - 0xB1, - 0xF0, - 0x5B, - 0x4D, - 0x4D, - 0x2A, - 0x1F, - 0x2A, - 0x39, - 0x1C, - 0x10, - 0x1F, - 0x39, - 0x1E, - 0x4A, - 0x62, - 0x2A, - 0x0B, - 0x06, - 0x0F, - 0xFD, - 0xE3, - 0x82, - 0x11, - 0x0D, - 0x0A, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x07, - 0x0A, - 0x12, - 0x12, - 0x15, - 0x0D, - 0x06, - 0x06, - 0x00, - 0x04, - 0x03, - 0x00, - 0x32, - 0x05, - 0x14, - 0x57, - 0x4D, - 0x4D, - 0x32, - 0x4D, - 0x35, - 0x1E, - 0x1C, - 0x29, - 0x16, - 0x29, - 0x29, - 0x6C, - 0x1B, - 0x1C, - 0x14, - 0x1C, - 0x14, - 0x14, - 0x0F, - 0x0B, - 0x19, - 0x0B, - 0x06, - 0x06, - 0x0A, - 0x03, - 0x06, - 0x06, - 0x0A, - 0x0B, - 0x19, - 0x19, - 0x0A, - 0x03, - 0x03, - 0x0A, - 0x06, - 0x03, - 0x0A, - 0x0F, - 0x0F, - 0x14, - 0x11, - 0x11, - 0x0F, - 0x1C, - 0x2A, - 0x04, - 0x1C, - 0x00, - 0x31, - 0x2A, - 0x35, - 0x2A, - 0x14, - 0x1E, - 0x1E, - 0x1C, - 0x14, - 0x1B, - 0x1B, - 0x16, - 0x14, - 0x1B, - 0x1C, - 0x02, - 0x01, - 0x09, - 0x0E, - 0x16, - 0x16, - 0x14, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x29, - 0x1B, - 0x29, - 0x0E, - 0x0E, - 0x11, - 0x19, - 0x26, - 0x41, - 0x36, - 0x57, - 0x26, - 0x4C, - 0x5C, - 0x64, - 0x74, - 0x74, - 0xB4, - 0x83, - 0x92, - 0x92, - 0x92, - 0xA0, - 0x92, - 0x00, - 0x04, - 0x91, - 0x00, - 0x0E, - 0x92, - 0x87, - 0x87, - 0x6E, - 0x72, - 0x77, - 0x87, - 0x72, - 0x72, - 0x72, - 0x83, - 0x69, - 0x36, - 0x24, - 0x04, - 0x36, - 0x00, - 0x42, - 0x24, - 0x28, - 0x31, - 0x52, - 0x63, - 0x63, - 0x59, - 0x58, - 0x3F, - 0x59, - 0x48, - 0x44, - 0x52, - 0x59, - 0x63, - 0x52, - 0x3F, - 0x3F, - 0x48, - 0x52, - 0x40, - 0x59, - 0x52, - 0x5A, - 0x37, - 0x52, - 0x3F, - 0x21, - 0x37, - 0x44, - 0x21, - 0x18, - 0x13, - 0x13, - 0x21, - 0x23, - 0x3A, - 0x38, - 0x3A, - 0x53, - 0x47, - 0x3B, - 0x48, - 0x48, - 0x3D, - 0x25, - 0x21, - 0x21, - 0x18, - 0x21, - 0x48, - 0x3A, - 0x2E, - 0x3F, - 0x31, - 0x2E, - 0x23, - 0x07, - 0x02, - 0x0C, - 0x18, - 0x13, - 0x2E, - 0x23, - 0xC6, - 0xF7, - 0x04, - 0xFA, - 0x00, - 0x1E, - 0xF7, - 0xD8, - 0xD8, - 0xFA, - 0xF7, - 0xF7, - 0xD8, - 0xF4, - 0xF4, - 0xF4, - 0xF0, - 0xC6, - 0xDF, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF7, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xEC, - 0xEC, - 0xC8, - 0xDF, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x76, - 0x6C, - 0x76, - 0x79, - 0x71, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x79, - 0x6C, - 0x08, - 0x79, - 0x00, - 0x08, - 0x84, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x84, - 0x8D, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x36, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0x9B, - 0xA5, - 0xA5, - 0x9B, - 0xA5, - 0xA5, - 0xB1, - 0xB1, - 0x9B, - 0xB9, - 0xB9, - 0xB1, - 0xB9, - 0xB9, - 0xA5, - 0xF0, - 0xE4, - 0x62, - 0x4D, - 0x39, - 0x39, - 0x2A, - 0x4F, - 0x39, - 0x35, - 0x14, - 0x32, - 0x4D, - 0x60, - 0x32, - 0x4D, - 0x60, - 0x09, - 0x0B, - 0x09, - 0x49, - 0xD4, - 0x39, - 0x39, - 0x4A, - 0x0D, - 0x0A, - 0x06, - 0x0D, - 0x15, - 0x0D, - 0x0D, - 0x12, - 0x04, - 0x06, - 0x00, - 0x2B, - 0x0B, - 0x05, - 0x0B, - 0x09, - 0x1F, - 0x4C, - 0x32, - 0x1C, - 0x4C, - 0x32, - 0x0E, - 0x19, - 0x0E, - 0x11, - 0x0F, - 0x16, - 0x39, - 0x0E, - 0x1E, - 0x2A, - 0x14, - 0x1C, - 0x1C, - 0x35, - 0x1C, - 0x2A, - 0x3C, - 0x39, - 0x2A, - 0x0E, - 0x14, - 0x0B, - 0x0B, - 0x05, - 0x09, - 0x06, - 0x06, - 0x05, - 0x0A, - 0x0B, - 0x19, - 0x4D, - 0x26, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0A, - 0x0B, - 0x0B, - 0x0E, - 0x0E, - 0x0E, - 0x14, - 0x0F, - 0x1C, - 0x1C, - 0x2A, - 0x04, - 0x1C, - 0x00, - 0x2B, - 0x1B, - 0x1C, - 0x14, - 0x1B, - 0x22, - 0x16, - 0x10, - 0x14, - 0x10, - 0x0E, - 0x16, - 0x16, - 0x0E, - 0x09, - 0x0F, - 0x10, - 0x14, - 0x14, - 0x14, - 0x10, - 0x16, - 0x10, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x16, - 0x0E, - 0x14, - 0x09, - 0x1F, - 0x41, - 0x4C, - 0x24, - 0x4B, - 0x5C, - 0x4C, - 0x64, - 0x83, - 0x83, - 0x83, - 0x74, - 0x83, - 0x00, - 0x04, - 0x92, - 0x00, - 0x59, - 0x91, - 0x93, - 0x91, - 0xA0, - 0x92, - 0x92, - 0x6E, - 0x72, - 0x7E, - 0x7E, - 0x77, - 0x6A, - 0x72, - 0x83, - 0x51, - 0x69, - 0x46, - 0x46, - 0x5C, - 0x5C, - 0x5C, - 0x46, - 0x4B, - 0x24, - 0x14, - 0x6B, - 0x6B, - 0x6B, - 0x63, - 0x54, - 0x50, - 0x47, - 0x50, - 0x44, - 0x40, - 0x55, - 0x44, - 0x59, - 0x50, - 0x52, - 0x3F, - 0x43, - 0x54, - 0x44, - 0x44, - 0x40, - 0x33, - 0x21, - 0x40, - 0x21, - 0x22, - 0x18, - 0x44, - 0x44, - 0x21, - 0x0C, - 0x21, - 0x34, - 0x30, - 0x34, - 0x54, - 0x3B, - 0x47, - 0x50, - 0x44, - 0x58, - 0x54, - 0x34, - 0x21, - 0x3F, - 0x21, - 0x21, - 0x50, - 0x30, - 0x3F, - 0x31, - 0x2E, - 0x1A, - 0x13, - 0x07, - 0x08, - 0x20, - 0x20, - 0x2E, - 0x44, - 0xB9, - 0xE0, - 0xFA, - 0xF7, - 0x00, - 0x05, - 0xFA, - 0x00, - 0x03, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x06, - 0xF4, - 0x00, - 0x13, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xF4, - 0xF0, - 0xF7, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x76, - 0x71, - 0x76, - 0x76, - 0x00, - 0x04, - 0x79, - 0x01, - 0x76, - 0x07, - 0x79, - 0x00, - 0x84, - 0x7D, - 0x84, - 0x79, - 0x84, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x7D, - 0x8D, - 0x9A, - 0x8D, - 0x9B, - 0x8D, - 0x9B, - 0x9A, - 0x9A, - 0x9B, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xA5, - 0x9B, - 0xB1, - 0xB1, - 0xB1, - 0xB9, - 0xB9, - 0xB1, - 0xF0, - 0xB1, - 0x9B, - 0x5B, - 0x35, - 0x4D, - 0x35, - 0x2A, - 0x2A, - 0x35, - 0x1C, - 0x16, - 0x2A, - 0x5B, - 0x1B, - 0x39, - 0x4D, - 0x22, - 0x0B, - 0x0F, - 0x03, - 0x82, - 0x62, - 0x29, - 0x1B, - 0x16, - 0x16, - 0x12, - 0x0D, - 0x0A, - 0x06, - 0x06, - 0x06, - 0x03, - 0x09, - 0x06, - 0x05, - 0x09, - 0x05, - 0x0B, - 0x0B, - 0x0B, - 0x19, - 0x2A, - 0x19, - 0x1C, - 0x2A, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x0A, - 0x0A, - 0x19, - 0x12, - 0x0F, - 0x0A, - 0x1F, - 0x12, - 0x14, - 0x19, - 0x0F, - 0x19, - 0x0B, - 0x14, - 0x0B, - 0x0F, - 0x14, - 0x2F, - 0x0E, - 0x0F, - 0x09, - 0x05, - 0x0F, - 0x06, - 0x0B, - 0x06, - 0x1C, - 0x32, - 0x32, - 0x0A, - 0x0A, - 0x03, - 0x0A, - 0x0F, - 0x0E, - 0x14, - 0x0F, - 0x11, - 0x19, - 0x1C, - 0x1C, - 0x1F, - 0x1F, - 0x1C, - 0x2A, - 0x16, - 0x10, - 0x04, - 0x16, - 0x00, - 0x8A, - 0x1B, - 0x10, - 0x14, - 0x16, - 0x10, - 0x10, - 0x14, - 0x10, - 0x02, - 0x10, - 0x10, - 0x1B, - 0x10, - 0x22, - 0x10, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x1E, - 0x10, - 0x29, - 0x10, - 0x16, - 0x0F, - 0x1F, - 0x26, - 0x24, - 0x24, - 0x4B, - 0x4B, - 0x69, - 0x74, - 0x83, - 0x69, - 0x74, - 0x74, - 0x83, - 0x83, - 0x87, - 0xA0, - 0xA0, - 0x91, - 0xA0, - 0x91, - 0x88, - 0x6E, - 0x77, - 0x75, - 0x7E, - 0x87, - 0x6A, - 0x83, - 0x77, - 0x5E, - 0x72, - 0x5E, - 0x72, - 0x69, - 0x46, - 0x5E, - 0x36, - 0x69, - 0x36, - 0x46, - 0x59, - 0x54, - 0x5F, - 0x5F, - 0x6B, - 0x63, - 0x63, - 0x48, - 0x52, - 0x59, - 0x40, - 0x40, - 0x40, - 0x59, - 0x50, - 0x50, - 0x59, - 0x48, - 0x53, - 0x48, - 0x37, - 0x3F, - 0x3F, - 0x33, - 0x13, - 0x22, - 0x13, - 0x23, - 0x3F, - 0x34, - 0x3D, - 0x31, - 0x3D, - 0x1A, - 0x2E, - 0x2B, - 0x3D, - 0x37, - 0x30, - 0x2E, - 0x30, - 0x3D, - 0x3A, - 0x54, - 0x3F, - 0x31, - 0x31, - 0x3D, - 0x25, - 0x21, - 0x44, - 0x20, - 0x13, - 0x18, - 0x08, - 0x02, - 0x20, - 0x2E, - 0x44, - 0x48, - 0xBE, - 0xF9, - 0xE3, - 0xF7, - 0xFA, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xD8, - 0x06, - 0xF4, - 0x00, - 0x13, - 0xEC, - 0xF4, - 0xEC, - 0xC8, - 0xF7, - 0xEC, - 0xC6, - 0xF0, - 0xF4, - 0xF4, - 0xEC, - 0xDF, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x6C, - 0x76, - 0x6C, - 0x79, - 0x76, - 0x79, - 0x6C, - 0x76, - 0x79, - 0x79, - 0x79, - 0x76, - 0x0A, - 0x79, - 0x00, - 0x17, - 0x84, - 0x79, - 0x84, - 0x79, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x9B, - 0x9B, - 0x9A, - 0xA5, - 0x9A, - 0x9B, - 0xA5, - 0xB1, - 0xA5, - 0xA5, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x3D, - 0xA5, - 0xF0, - 0xB1, - 0xB9, - 0xC6, - 0x5B, - 0x39, - 0x4A, - 0x32, - 0x2A, - 0x2A, - 0x2A, - 0x1E, - 0x1E, - 0x4D, - 0x35, - 0x39, - 0x35, - 0x39, - 0x29, - 0x05, - 0x14, - 0x32, - 0x03, - 0xF9, - 0xFD, - 0xF9, - 0xD4, - 0xC8, - 0xBC, - 0x8C, - 0x2A, - 0x11, - 0x0B, - 0x0B, - 0x0B, - 0x06, - 0x0F, - 0x05, - 0x06, - 0x0B, - 0x0B, - 0x09, - 0x4C, - 0x39, - 0x19, - 0x2A, - 0x32, - 0x12, - 0x32, - 0x0F, - 0x0B, - 0x12, - 0x0A, - 0x0B, - 0x12, - 0x19, - 0x0A, - 0x12, - 0x0D, - 0x0D, - 0x00, - 0x04, - 0x12, - 0x00, - 0x2B, - 0x15, - 0x12, - 0x12, - 0x0F, - 0x0A, - 0x0A, - 0x0F, - 0x19, - 0x14, - 0x05, - 0x0F, - 0x14, - 0x06, - 0x06, - 0x0F, - 0x03, - 0x0B, - 0x06, - 0x00, - 0x12, - 0x2A, - 0x26, - 0x12, - 0x03, - 0x03, - 0x0A, - 0x0F, - 0x11, - 0x14, - 0x0E, - 0x11, - 0x1F, - 0x1C, - 0x19, - 0x16, - 0x1C, - 0x1C, - 0x2A, - 0x14, - 0x0E, - 0x16, - 0x1B, - 0x14, - 0x00, - 0x04, - 0x16, - 0x00, - 0x84, - 0x0E, - 0x10, - 0x16, - 0x10, - 0x09, - 0x16, - 0x1B, - 0x16, - 0x16, - 0x1B, - 0x1B, - 0x10, - 0x1B, - 0x1E, - 0x1B, - 0x22, - 0x10, - 0x1B, - 0x16, - 0x0F, - 0x0F, - 0x1F, - 0x0D, - 0x15, - 0x4B, - 0x15, - 0x64, - 0x69, - 0x74, - 0x69, - 0x5C, - 0x68, - 0x69, - 0x74, - 0x83, - 0x92, - 0x92, - 0xA0, - 0xA0, - 0x91, - 0x88, - 0x77, - 0x6E, - 0x87, - 0x7E, - 0x92, - 0x6A, - 0x77, - 0x87, - 0x68, - 0x83, - 0x68, - 0x74, - 0x69, - 0x51, - 0x69, - 0x5C, - 0x83, - 0x46, - 0x15, - 0x5C, - 0x36, - 0x44, - 0x6B, - 0x5F, - 0x58, - 0x81, - 0x6B, - 0x50, - 0x44, - 0x48, - 0x44, - 0x55, - 0x52, - 0x59, - 0x48, - 0x54, - 0x30, - 0x54, - 0x42, - 0x42, - 0x42, - 0x54, - 0x59, - 0x2E, - 0x2E, - 0x2E, - 0x34, - 0x42, - 0x47, - 0x47, - 0x3D, - 0x30, - 0x54, - 0x1A, - 0x3F, - 0x17, - 0x31, - 0x34, - 0x31, - 0x3F, - 0x34, - 0x3A, - 0x3D, - 0x34, - 0x31, - 0x3F, - 0x25, - 0x25, - 0x2E, - 0x31, - 0x21, - 0x21, - 0x23, - 0x23, - 0x23, - 0x08, - 0x17, - 0x40, - 0x31, - 0x82, - 0xE2, - 0xFA, - 0xF0, - 0xEC, - 0xFA, - 0xFA, - 0xFA, - 0xD8, - 0xF7, - 0xF7, - 0xF7, - 0x06, - 0xF4, - 0x00, - 0x15, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xDF, - 0xF0, - 0xF4, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x79, - 0x7D, - 0x6C, - 0x79, - 0x79, - 0x79, - 0x76, - 0x76, - 0x00, - 0x05, - 0x79, - 0x00, - 0x08, - 0x84, - 0x79, - 0x79, - 0x8D, - 0x79, - 0x8D, - 0x8D, - 0x84, - 0x05, - 0x8D, - 0x00, - 0x06, - 0x9A, - 0x9A, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0x06, - 0xA5, - 0x01, - 0xB1, - 0x01, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x3F, - 0xB9, - 0xB9, - 0x7D, - 0x4D, - 0x4D, - 0x39, - 0x35, - 0x2A, - 0x35, - 0x2A, - 0x1E, - 0x1E, - 0x39, - 0x35, - 0x2A, - 0x4D, - 0x35, - 0x1C, - 0x14, - 0x14, - 0x05, - 0x19, - 0xFB, - 0xFB, - 0xF0, - 0xF9, - 0xF9, - 0xFD, - 0xE0, - 0xFD, - 0xCE, - 0x8F, - 0x4A, - 0x14, - 0x1E, - 0x29, - 0x1C, - 0x14, - 0x0E, - 0x0F, - 0x1F, - 0x2A, - 0x4C, - 0x4D, - 0x32, - 0x1F, - 0x19, - 0x12, - 0x12, - 0x19, - 0x19, - 0x19, - 0x12, - 0x0A, - 0x12, - 0x0A, - 0x0F, - 0x0F, - 0x0D, - 0x12, - 0x0D, - 0x12, - 0x0D, - 0x00, - 0x05, - 0x12, - 0x00, - 0xAF, - 0x0A, - 0x0F, - 0x0A, - 0x0F, - 0x0A, - 0x06, - 0x03, - 0x0B, - 0x0B, - 0x19, - 0x19, - 0x0E, - 0x19, - 0x19, - 0x19, - 0x4C, - 0x22, - 0x4C, - 0x11, - 0x03, - 0x00, - 0x03, - 0x06, - 0x0F, - 0x0F, - 0x0F, - 0x0E, - 0x1C, - 0x2A, - 0x1F, - 0x1F, - 0x2A, - 0x39, - 0x16, - 0x0E, - 0x1E, - 0x16, - 0x1B, - 0x16, - 0x14, - 0x16, - 0x14, - 0x29, - 0x14, - 0x10, - 0x16, - 0x14, - 0x16, - 0x1B, - 0x10, - 0x29, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x16, - 0x22, - 0x1B, - 0x29, - 0x1B, - 0x1B, - 0x22, - 0x0F, - 0x14, - 0x0D, - 0x24, - 0x24, - 0x41, - 0x46, - 0x5C, - 0x64, - 0x36, - 0x46, - 0x5C, - 0x69, - 0x68, - 0x83, - 0x83, - 0x92, - 0x92, - 0x91, - 0x87, - 0x75, - 0x75, - 0x7E, - 0x88, - 0x7E, - 0x7E, - 0x87, - 0x88, - 0x77, - 0x87, - 0x6A, - 0x87, - 0x74, - 0x6A, - 0x74, - 0x68, - 0x72, - 0x69, - 0x36, - 0x74, - 0x46, - 0x24, - 0x4A, - 0x59, - 0x63, - 0x54, - 0x63, - 0x59, - 0x63, - 0x63, - 0x52, - 0x44, - 0x59, - 0x55, - 0x07, - 0x5A, - 0x54, - 0x54, - 0x2E, - 0x59, - 0x42, - 0x54, - 0x59, - 0x48, - 0x44, - 0x44, - 0x44, - 0x48, - 0x3B, - 0x54, - 0x54, - 0x37, - 0x44, - 0x48, - 0x3D, - 0x25, - 0x48, - 0x34, - 0x31, - 0x34, - 0x1A, - 0x48, - 0x3A, - 0x3A, - 0x48, - 0x44, - 0x3F, - 0x3A, - 0x31, - 0x21, - 0x21, - 0x21, - 0x23, - 0x23, - 0x18, - 0x13, - 0x2E, - 0x53, - 0x13, - 0x78, - 0xB3, - 0xCA, - 0xF9, - 0xF9, - 0xFA, - 0xFA, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x15, - 0xEC, - 0xF4, - 0xDF, - 0xEC, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0xF4, - 0xF7, - 0xEC, - 0xEC, - 0xEC, - 0xF7, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0x76, - 0x00, - 0x07, - 0x79, - 0x76, - 0x76, - 0x6C, - 0x6C, - 0x7D, - 0x76, - 0x00, - 0x05, - 0x79, - 0x00, - 0x0C, - 0x76, - 0x79, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x84, - 0x04, - 0x8D, - 0x00, - 0x07, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0x8D, - 0x00, - 0x05, - 0xA5, - 0x01, - 0xB1, - 0x01, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x35, - 0xA5, - 0xF0, - 0xB1, - 0x5B, - 0x39, - 0x39, - 0x39, - 0x35, - 0x2A, - 0x1E, - 0x14, - 0x14, - 0x22, - 0x60, - 0x4D, - 0x4C, - 0x2A, - 0x2A, - 0x06, - 0x22, - 0x0F, - 0x05, - 0x67, - 0xFE, - 0xF9, - 0xE0, - 0xFB, - 0xF9, - 0xF9, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xF9, - 0x7B, - 0x1B, - 0x16, - 0x05, - 0x1C, - 0x2A, - 0x5B, - 0x19, - 0x14, - 0x4C, - 0x1F, - 0x1F, - 0x39, - 0x60, - 0x1F, - 0x0F, - 0x12, - 0x0B, - 0x19, - 0x00, - 0x06, - 0x0F, - 0x00, - 0x05, - 0x0A, - 0x12, - 0x11, - 0x12, - 0x19, - 0x00, - 0x04, - 0x0A, - 0x00, - 0x7A, - 0x12, - 0x0A, - 0x0F, - 0x0A, - 0x0B, - 0x06, - 0x06, - 0x0B, - 0x0B, - 0x03, - 0x0B, - 0x1F, - 0x1F, - 0x19, - 0x1C, - 0x19, - 0x60, - 0x1F, - 0x4D, - 0x32, - 0x32, - 0x0F, - 0x00, - 0x00, - 0x03, - 0x03, - 0x0B, - 0x0F, - 0x19, - 0x1C, - 0x1C, - 0x1C, - 0x1F, - 0x2A, - 0x39, - 0x11, - 0x11, - 0x1B, - 0x1E, - 0x16, - 0x14, - 0x16, - 0x14, - 0x16, - 0x10, - 0x2A, - 0x1E, - 0x16, - 0x29, - 0x1B, - 0x16, - 0x10, - 0x1B, - 0x29, - 0x1B, - 0x10, - 0x16, - 0x11, - 0x16, - 0x1B, - 0x1B, - 0x10, - 0x16, - 0x14, - 0x0D, - 0x0D, - 0x26, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x36, - 0x36, - 0x36, - 0x5C, - 0x5C, - 0x69, - 0x74, - 0x87, - 0x92, - 0x92, - 0x6A, - 0x6A, - 0x7E, - 0x91, - 0x88, - 0x75, - 0x7E, - 0xA0, - 0x88, - 0x7E, - 0x87, - 0x87, - 0x87, - 0x6A, - 0x68, - 0x72, - 0x74, - 0x72, - 0x69, - 0x51, - 0x69, - 0x69, - 0x46, - 0x36, - 0x24, - 0x52, - 0x59, - 0x63, - 0x54, - 0x54, - 0x58, - 0x59, - 0x59, - 0x59, - 0x44, - 0x52, - 0x52, - 0x23, - 0x54, - 0x42, - 0x54, - 0x04, - 0x44, - 0x00, - 0x35, - 0x2E, - 0x44, - 0x2E, - 0x18, - 0x30, - 0x53, - 0x50, - 0x54, - 0x48, - 0x31, - 0x3A, - 0x44, - 0x3D, - 0x1A, - 0x31, - 0x31, - 0x3A, - 0x3A, - 0x3A, - 0x42, - 0x48, - 0x34, - 0x31, - 0x21, - 0x2E, - 0x2E, - 0x21, - 0x23, - 0x23, - 0x18, - 0x23, - 0x21, - 0x23, - 0x18, - 0x01, - 0x40, - 0xC9, - 0xE1, - 0xC5, - 0xEC, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x13, - 0xEC, - 0xF4, - 0xF0, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xF7, - 0xC8, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6C, - 0x76, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x04, - 0x79, - 0x00, - 0x04, - 0x76, - 0x79, - 0x79, - 0x76, - 0x08, - 0x79, - 0x00, - 0x07, - 0x84, - 0x84, - 0x8D, - 0x84, - 0x7D, - 0x8D, - 0x84, - 0x00, - 0x05, - 0x8D, - 0x04, - 0x9A, - 0x00, - 0x31, - 0xA5, - 0xA5, - 0xA5, - 0x9B, - 0xA5, - 0xA5, - 0xA5, - 0xB1, - 0xA5, - 0xA5, - 0xB1, - 0xBE, - 0xB9, - 0xB1, - 0x6F, - 0x39, - 0x4A, - 0x5B, - 0x35, - 0x2A, - 0x14, - 0x2A, - 0x10, - 0x35, - 0x4D, - 0x32, - 0x4D, - 0x4E, - 0x4D, - 0x4A, - 0x0E, - 0x14, - 0x1C, - 0x00, - 0xE4, - 0xE4, - 0xF9, - 0xF9, - 0xF0, - 0xF9, - 0xFD, - 0xF9, - 0xFD, - 0xF9, - 0xF9, - 0xFD, - 0xA9, - 0x6C, - 0x1B, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x32, - 0x39, - 0x79, - 0x4A, - 0x19, - 0x12, - 0x1F, - 0x4C, - 0x32, - 0x12, - 0x09, - 0x0B, - 0x0B, - 0x0F, - 0x12, - 0x0B, - 0x19, - 0x0B, - 0x19, - 0x1C, - 0x0A, - 0x0F, - 0x0F, - 0x0A, - 0x11, - 0x0B, - 0x0F, - 0x0A, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0A, - 0x0F, - 0x0B, - 0x06, - 0x0B, - 0x06, - 0x06, - 0x0B, - 0x0E, - 0x28, - 0x28, - 0x0F, - 0x1F, - 0x1F, - 0x4A, - 0x60, - 0x26, - 0x4C, - 0x26, - 0x05, - 0x03, - 0x00, - 0x25, - 0x05, - 0x1F, - 0x1C, - 0x1C, - 0x2A, - 0x1E, - 0x32, - 0x4A, - 0x0E, - 0x14, - 0x16, - 0x16, - 0x10, - 0x0E, - 0x29, - 0x16, - 0x1C, - 0x16, - 0x1B, - 0x1E, - 0x1B, - 0x1B, - 0x16, - 0x1B, - 0x1B, - 0x10, - 0x10, - 0x29, - 0x1B, - 0x1B, - 0x10, - 0x22, - 0x1B, - 0x1B, - 0x1B, - 0x14, - 0x03, - 0x00, - 0x04, - 0x12, - 0x00, - 0x69, - 0x1F, - 0x41, - 0x24, - 0x24, - 0x46, - 0x5C, - 0x46, - 0x5E, - 0x74, - 0x83, - 0x74, - 0x6A, - 0x77, - 0x7E, - 0x88, - 0x7C, - 0x88, - 0xAB, - 0xAB, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x87, - 0x6A, - 0x83, - 0x72, - 0x74, - 0x77, - 0x74, - 0x5E, - 0x69, - 0x72, - 0x5C, - 0x51, - 0x46, - 0x24, - 0x0D, - 0x59, - 0x54, - 0x63, - 0x48, - 0x54, - 0x54, - 0x54, - 0x3F, - 0x59, - 0x52, - 0x40, - 0x52, - 0x54, - 0x59, - 0x42, - 0x44, - 0x52, - 0x52, - 0x40, - 0x42, - 0x44, - 0x3D, - 0x58, - 0x3D, - 0x30, - 0x54, - 0x3A, - 0x48, - 0x3D, - 0x59, - 0x42, - 0x44, - 0x31, - 0x21, - 0x2E, - 0x3F, - 0x34, - 0x3A, - 0x48, - 0x3F, - 0x44, - 0x40, - 0x23, - 0x18, - 0x20, - 0x52, - 0x18, - 0x23, - 0x21, - 0x21, - 0x23, - 0x18, - 0x13, - 0x08, - 0xAA, - 0xC3, - 0xC1, - 0xCE, - 0xE0, - 0xF7, - 0xFA, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x11, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xC8, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xC8, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xDF, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0x01, - 0xF4, - 0x01, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x29, - 0x76, - 0x76, - 0x76, - 0x79, - 0x76, - 0x6C, - 0x76, - 0x76, - 0x76, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x76, - 0x79, - 0x76, - 0x79, - 0x79, - 0x79, - 0x7D, - 0x84, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x84, - 0x84, - 0x7D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xA5, - 0x8D, - 0x9A, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x20, - 0xB1, - 0xA5, - 0xB1, - 0xB1, - 0xB1, - 0xBE, - 0x9B, - 0x5B, - 0x5B, - 0x5B, - 0x39, - 0x2A, - 0x2A, - 0x35, - 0x35, - 0x39, - 0x35, - 0x29, - 0x1E, - 0x14, - 0x4D, - 0x4A, - 0x2A, - 0x14, - 0x16, - 0x1C, - 0x0A, - 0xFD, - 0xE4, - 0xF9, - 0xF0, - 0xFB, - 0x04, - 0xF9, - 0x00, - 0x57, - 0xFD, - 0xFD, - 0xF9, - 0xBE, - 0x4D, - 0x32, - 0x06, - 0x03, - 0x0B, - 0x03, - 0x06, - 0x0A, - 0x5B, - 0xC0, - 0x86, - 0x1C, - 0x11, - 0x4D, - 0x0F, - 0x0B, - 0x19, - 0x11, - 0x14, - 0x14, - 0x0F, - 0x0F, - 0x19, - 0x0F, - 0x0B, - 0x1C, - 0x19, - 0x14, - 0x19, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x09, - 0x0B, - 0x06, - 0x0B, - 0x0B, - 0x1F, - 0x0F, - 0x1C, - 0x19, - 0x1C, - 0x4C, - 0x4D, - 0x4D, - 0x4D, - 0x5B, - 0x1F, - 0x6D, - 0x26, - 0x1F, - 0x03, - 0x03, - 0x00, - 0x0A, - 0x19, - 0x19, - 0x1C, - 0x2A, - 0x2A, - 0x32, - 0x35, - 0x09, - 0x1B, - 0x1B, - 0x11, - 0x16, - 0x1B, - 0x1C, - 0x16, - 0x1C, - 0x16, - 0x1E, - 0x29, - 0x29, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x77, - 0x16, - 0x10, - 0x29, - 0x14, - 0x10, - 0x1B, - 0x16, - 0x1B, - 0x0B, - 0x0F, - 0x0A, - 0x1F, - 0x12, - 0x19, - 0x12, - 0x15, - 0x15, - 0x15, - 0x24, - 0x36, - 0x46, - 0x36, - 0x69, - 0x68, - 0x61, - 0x72, - 0x77, - 0x75, - 0x88, - 0x88, - 0x93, - 0x91, - 0x7E, - 0x88, - 0x91, - 0x75, - 0x88, - 0x87, - 0x6A, - 0x87, - 0x77, - 0x87, - 0x87, - 0x68, - 0x68, - 0x68, - 0x77, - 0x69, - 0x68, - 0x5C, - 0x46, - 0x36, - 0x4B, - 0x0A, - 0x59, - 0x5A, - 0x63, - 0x48, - 0x48, - 0x42, - 0x38, - 0x44, - 0x2E, - 0x44, - 0x33, - 0x44, - 0x23, - 0x59, - 0x59, - 0x44, - 0x33, - 0x42, - 0x42, - 0x3D, - 0x58, - 0x42, - 0x54, - 0x42, - 0x48, - 0x59, - 0x2E, - 0x2E, - 0x23, - 0x63, - 0x48, - 0x2B, - 0x23, - 0x3F, - 0x25, - 0x31, - 0x48, - 0x21, - 0x30, - 0x13, - 0x13, - 0x2E, - 0x25, - 0x3D, - 0x23, - 0x25, - 0x31, - 0x2E, - 0x21, - 0x21, - 0x40, - 0x02, - 0x8D, - 0xD3, - 0xE3, - 0xE4, - 0xF4, - 0xF7, - 0xF7, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x05, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x10, - 0xF4, - 0xC8, - 0xEC, - 0xF4, - 0xF4, - 0xF0, - 0xC8, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x6C, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x76, - 0x00, - 0x06, - 0x79, - 0x01, - 0x7D, - 0x06, - 0x79, - 0x00, - 0x03, - 0x84, - 0x7D, - 0x84, - 0x00, - 0x08, - 0x8D, - 0x00, - 0x04, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0x07, - 0xA5, - 0x00, - 0x1A, - 0xB1, - 0xA5, - 0xA5, - 0xB1, - 0xB1, - 0x5B, - 0x62, - 0x4A, - 0x4A, - 0x39, - 0x39, - 0x2A, - 0x35, - 0x39, - 0x5B, - 0x1E, - 0x2A, - 0x22, - 0x35, - 0x4A, - 0x1E, - 0x0B, - 0x1C, - 0x39, - 0x0E, - 0x82, - 0x06, - 0xF9, - 0x01, - 0xFD, - 0x04, - 0xF9, - 0x00, - 0x04, - 0xFE, - 0x4A, - 0x0A, - 0x05, - 0x06, - 0x03, - 0x00, - 0x15, - 0x06, - 0x03, - 0x79, - 0xA8, - 0x11, - 0x12, - 0x4C, - 0x0F, - 0x09, - 0x0B, - 0x14, - 0x0E, - 0x0F, - 0x1C, - 0x19, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x00, - 0x04, - 0x0F, - 0x00, - 0xA5, - 0x0B, - 0x0B, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x19, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x05, - 0x2F, - 0x1F, - 0x19, - 0x19, - 0x14, - 0x4D, - 0x7D, - 0x60, - 0x57, - 0x60, - 0x62, - 0x57, - 0x32, - 0x32, - 0x4C, - 0x12, - 0x0F, - 0x00, - 0x00, - 0x12, - 0x11, - 0x1C, - 0x2A, - 0x39, - 0x32, - 0x2A, - 0x10, - 0x1E, - 0x14, - 0x0E, - 0x16, - 0x1E, - 0x1E, - 0x16, - 0x1E, - 0x1E, - 0x3C, - 0x29, - 0x35, - 0x1B, - 0x1B, - 0x16, - 0x10, - 0x1B, - 0x1B, - 0x1B, - 0x14, - 0x0E, - 0x22, - 0x1B, - 0x22, - 0x1C, - 0x0F, - 0x19, - 0x19, - 0x26, - 0x12, - 0x19, - 0x0A, - 0x26, - 0x24, - 0x36, - 0x46, - 0x5C, - 0x5E, - 0x5E, - 0x68, - 0x74, - 0x72, - 0x7E, - 0x7E, - 0x87, - 0x7C, - 0x88, - 0x88, - 0x85, - 0x88, - 0x87, - 0x7E, - 0x77, - 0x92, - 0x77, - 0x87, - 0x87, - 0x83, - 0x77, - 0x61, - 0x74, - 0x72, - 0x68, - 0x74, - 0x5C, - 0x5C, - 0x5C, - 0x24, - 0x24, - 0x15, - 0x6B, - 0x44, - 0x63, - 0x3D, - 0x42, - 0x3D, - 0x54, - 0x5F, - 0x58, - 0x42, - 0x42, - 0x59, - 0x20, - 0x59, - 0x44, - 0x44, - 0x54, - 0x54, - 0x42, - 0x45, - 0x54, - 0x42, - 0x48, - 0x54, - 0x3D, - 0x44, - 0x59, - 0x3F, - 0x63, - 0x6B, - 0x54, - 0x3D, - 0x25, - 0x2E, - 0x25, - 0x31, - 0x3F, - 0x40, - 0x18, - 0x1A, - 0x2E, - 0x21, - 0x18, - 0x48, - 0x31, - 0x23, - 0x23, - 0x23, - 0x40, - 0x02, - 0x7B, - 0xF9, - 0xF4, - 0xF7, - 0xFA, - 0xF9, - 0x00, - 0x06, - 0xF7, - 0x01, - 0xF4, - 0x01, - 0xF7, - 0x06, - 0xF4, - 0x00, - 0x17, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xC8, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x06, - 0x76, - 0x00, - 0x05, - 0x79, - 0x79, - 0x76, - 0x79, - 0x76, - 0x00, - 0x04, - 0x79, - 0x01, - 0x7D, - 0x06, - 0x79, - 0x00, - 0x07, - 0x84, - 0x79, - 0x79, - 0x79, - 0x84, - 0x79, - 0x79, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x08, - 0x9A, - 0x8D, - 0x9A, - 0xA5, - 0x8D, - 0xA5, - 0x9A, - 0x9A, - 0x05, - 0xA5, - 0x04, - 0xB1, - 0x00, - 0x17, - 0x9A, - 0x6C, - 0x5D, - 0x39, - 0x4A, - 0x4A, - 0x35, - 0x4A, - 0x1E, - 0x35, - 0x2A, - 0x1B, - 0x35, - 0x4A, - 0x35, - 0x29, - 0x10, - 0x09, - 0x2F, - 0x2A, - 0x00, - 0x8F, - 0xF0, - 0x00, - 0x07, - 0xF9, - 0x00, - 0xD2, - 0xFD, - 0xFD, - 0xF9, - 0xA5, - 0x5B, - 0x0F, - 0x03, - 0x05, - 0x03, - 0x03, - 0x03, - 0x06, - 0x03, - 0x03, - 0x03, - 0x00, - 0x71, - 0x84, - 0x0F, - 0x2A, - 0x09, - 0x0B, - 0x0B, - 0x19, - 0x0B, - 0x11, - 0x0B, - 0x0B, - 0x14, - 0x09, - 0x0F, - 0x09, - 0x0B, - 0x0E, - 0x0F, - 0x0B, - 0x0B, - 0x11, - 0x0F, - 0x0E, - 0x0B, - 0x0E, - 0x11, - 0x14, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x06, - 0x05, - 0x4D, - 0x0B, - 0x14, - 0x1F, - 0x26, - 0x5B, - 0xA8, - 0x5B, - 0x78, - 0x6D, - 0xBE, - 0x57, - 0x26, - 0x4C, - 0x26, - 0x60, - 0x1F, - 0x12, - 0x12, - 0x03, - 0x0B, - 0x19, - 0x11, - 0x1C, - 0x2A, - 0x32, - 0x1E, - 0x16, - 0x0E, - 0x16, - 0x1C, - 0x16, - 0x1E, - 0x2A, - 0x1B, - 0x1C, - 0x29, - 0x3C, - 0x29, - 0x29, - 0x1B, - 0x22, - 0x16, - 0x1B, - 0x0E, - 0x29, - 0x10, - 0x16, - 0x1B, - 0x09, - 0x09, - 0x4A, - 0x22, - 0x26, - 0x12, - 0x19, - 0x12, - 0x26, - 0x26, - 0x15, - 0x24, - 0x24, - 0x36, - 0x51, - 0x5C, - 0x5E, - 0x5E, - 0x72, - 0x72, - 0x6E, - 0x7E, - 0x7E, - 0x75, - 0x75, - 0x88, - 0x7E, - 0x75, - 0x77, - 0x88, - 0x7E, - 0x7E, - 0x92, - 0x92, - 0x7E, - 0x77, - 0x68, - 0x6A, - 0x72, - 0x72, - 0x74, - 0x74, - 0x51, - 0x74, - 0x69, - 0x46, - 0x46, - 0x24, - 0x0D, - 0x6B, - 0x59, - 0x59, - 0x59, - 0x42, - 0x58, - 0x5F, - 0x54, - 0x54, - 0x3D, - 0x42, - 0x44, - 0x44, - 0x48, - 0x52, - 0x23, - 0x47, - 0x54, - 0x42, - 0x63, - 0x54, - 0x54, - 0x50, - 0x3F, - 0x48, - 0x48, - 0x2E, - 0x25, - 0x44, - 0x31, - 0x63, - 0x42, - 0x20, - 0x18, - 0x21, - 0x31, - 0x23, - 0x23, - 0x13, - 0x3F, - 0x23, - 0x2E, - 0x2E, - 0x23, - 0x2E, - 0x31, - 0x54, - 0x02, - 0xBD, - 0xFE, - 0xFA, - 0xFA, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xF7, - 0xF4, - 0xF4, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0x04, - 0xEC, - 0x00, - 0x11, - 0xF4, - 0xEC, - 0xEC, - 0xC8, - 0xF4, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0xF0, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x05, - 0x76, - 0x00, - 0x24, - 0x6C, - 0x76, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x79, - 0x7D, - 0x76, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x79, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x8D, - 0xA5, - 0x9A, - 0x9A, - 0x9A, - 0x07, - 0xA5, - 0x00, - 0x27, - 0xB1, - 0xAF, - 0x76, - 0x6C, - 0x4D, - 0x4A, - 0x35, - 0x2A, - 0x35, - 0x14, - 0x4A, - 0x5B, - 0x29, - 0x2A, - 0x1B, - 0x2A, - 0x16, - 0x29, - 0x0E, - 0x14, - 0x39, - 0x14, - 0x01, - 0xFE, - 0xF9, - 0xF0, - 0xF0, - 0xF9, - 0xFD, - 0xF9, - 0xF9, - 0xFB, - 0xF9, - 0xF9, - 0xFD, - 0x86, - 0x1C, - 0x06, - 0x06, - 0x00, - 0x04, - 0x03, - 0x00, - 0x4B, - 0x06, - 0x03, - 0x03, - 0x00, - 0x03, - 0x03, - 0xA3, - 0x62, - 0x1C, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x14, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x09, - 0x0F, - 0x0F, - 0x0B, - 0x11, - 0x19, - 0x0E, - 0x0F, - 0x0F, - 0x0F, - 0x0E, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x19, - 0x19, - 0x0F, - 0x14, - 0x19, - 0x39, - 0x8D, - 0x76, - 0x60, - 0x97, - 0x80, - 0x60, - 0x4C, - 0x57, - 0x4D, - 0x57, - 0x26, - 0x32, - 0x1F, - 0x1F, - 0x0A, - 0x06, - 0x19, - 0x11, - 0x1C, - 0x19, - 0x32, - 0x2A, - 0x2A, - 0x0E, - 0x16, - 0x1E, - 0x1E, - 0x1C, - 0x16, - 0x1E, - 0x00, - 0x05, - 0x29, - 0x00, - 0x24, - 0x16, - 0x29, - 0x1E, - 0x29, - 0x1B, - 0x10, - 0x10, - 0x1B, - 0x10, - 0x29, - 0x11, - 0x14, - 0x32, - 0x1F, - 0x28, - 0x19, - 0x5C, - 0x15, - 0x24, - 0x15, - 0x24, - 0x36, - 0x51, - 0x51, - 0x5E, - 0x72, - 0x6A, - 0x72, - 0x6A, - 0x77, - 0x7C, - 0x75, - 0x6E, - 0x88, - 0x92, - 0x75, - 0x05, - 0x7E, - 0x00, - 0x40, - 0x77, - 0x77, - 0x61, - 0x6A, - 0x83, - 0x83, - 0x72, - 0x74, - 0x51, - 0x74, - 0x74, - 0x46, - 0x46, - 0x4B, - 0x5C, - 0x4B, - 0x15, - 0x6B, - 0x63, - 0x59, - 0x40, - 0x54, - 0x63, - 0x58, - 0x44, - 0x54, - 0x44, - 0x44, - 0x3D, - 0x48, - 0x54, - 0x3D, - 0x23, - 0x2E, - 0x31, - 0x59, - 0x30, - 0x54, - 0x42, - 0x48, - 0x42, - 0x48, - 0x3D, - 0x3F, - 0x31, - 0x33, - 0x3A, - 0x42, - 0x50, - 0x44, - 0x2E, - 0x23, - 0x21, - 0x18, - 0x23, - 0x27, - 0x30, - 0x2E, - 0x2E, - 0x3F, - 0x48, - 0x59, - 0x33, - 0xD8, - 0x05, - 0xFA, - 0x06, - 0xF7, - 0x01, - 0xF4, - 0x01, - 0xF7, - 0x05, - 0xF4, - 0x00, - 0x04, - 0xEC, - 0xF4, - 0xF0, - 0xF4, - 0x05, - 0xEC, - 0x00, - 0x0B, - 0xC8, - 0xF0, - 0xF4, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xC8, - 0xF4, - 0xF0, - 0xDF, - 0x00, - 0x04, - 0xEC, - 0x01, - 0xF4, - 0x01, - 0xEC, - 0x00, - 0x00, - 0x06, - 0x76, - 0x00, - 0x0E, - 0x78, - 0x6C, - 0x6C, - 0x7D, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x04, - 0x79, - 0x00, - 0x06, - 0x7D, - 0x79, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x06, - 0x8D, - 0x05, - 0x9A, - 0x01, - 0xAF, - 0x04, - 0xA5, - 0x00, - 0x1B, - 0xBE, - 0xA5, - 0xB1, - 0xAF, - 0x5B, - 0x5B, - 0x35, - 0x39, - 0x39, - 0x1E, - 0x35, - 0x29, - 0x35, - 0x2A, - 0x1B, - 0x1B, - 0x22, - 0x39, - 0x1B, - 0x29, - 0x1E, - 0x4A, - 0x1B, - 0x0B, - 0x10, - 0xF9, - 0xF0, - 0x00, - 0x07, - 0xF9, - 0x00, - 0xC2, - 0xFD, - 0xF9, - 0xF9, - 0x6C, - 0x39, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x0B, - 0x06, - 0x03, - 0x05, - 0x03, - 0x01, - 0x03, - 0x03, - 0x0B, - 0x39, - 0x4D, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0A, - 0x0F, - 0x0B, - 0x14, - 0x19, - 0x06, - 0x12, - 0x14, - 0x29, - 0x19, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0E, - 0x09, - 0x0F, - 0x0B, - 0x09, - 0x0B, - 0x05, - 0x06, - 0x03, - 0x39, - 0x14, - 0x12, - 0x7B, - 0x76, - 0x78, - 0x6D, - 0xA9, - 0x80, - 0x80, - 0x4C, - 0x60, - 0x6D, - 0x60, - 0x4D, - 0x57, - 0x32, - 0x12, - 0x26, - 0x19, - 0x4C, - 0x19, - 0x11, - 0x1C, - 0x19, - 0x32, - 0x39, - 0x10, - 0x1C, - 0x16, - 0x1E, - 0x16, - 0x1C, - 0x1C, - 0x29, - 0x29, - 0x16, - 0x1B, - 0x29, - 0x16, - 0x29, - 0x1B, - 0x29, - 0x16, - 0x10, - 0x10, - 0x10, - 0x1B, - 0x16, - 0x1B, - 0x14, - 0x1C, - 0x11, - 0x1F, - 0x15, - 0x64, - 0x46, - 0x36, - 0x36, - 0x24, - 0x46, - 0x51, - 0x5E, - 0x68, - 0x6A, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x7C, - 0x75, - 0x75, - 0x88, - 0x75, - 0x77, - 0x75, - 0x75, - 0x7E, - 0x87, - 0x75, - 0x72, - 0x6A, - 0x87, - 0x87, - 0x92, - 0x77, - 0x68, - 0x74, - 0x69, - 0x72, - 0x69, - 0x5C, - 0x46, - 0x5C, - 0x69, - 0x64, - 0x5C, - 0x46, - 0x33, - 0x59, - 0x58, - 0x6B, - 0x58, - 0x18, - 0x44, - 0x38, - 0x44, - 0x30, - 0x44, - 0x42, - 0x54, - 0x54, - 0x59, - 0x42, - 0x44, - 0x23, - 0x33, - 0x40, - 0x44, - 0x3D, - 0x2E, - 0x3D, - 0x48, - 0x44, - 0x2E, - 0x3F, - 0x33, - 0x44, - 0x42, - 0x42, - 0x44, - 0x3D, - 0x2E, - 0x20, - 0x23, - 0x2E, - 0x3D, - 0x3A, - 0x50, - 0x44, - 0x59, - 0x7B, - 0x04, - 0xFA, - 0x01, - 0xF7, - 0x01, - 0xFA, - 0x04, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0x04, - 0xF4, - 0x00, - 0x1C, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF4, - 0xC8, - 0xEC, - 0xF0, - 0xF4, - 0xC8, - 0xF0, - 0xF0, - 0xC8, - 0xEC, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x25, - 0x76, - 0x62, - 0x7D, - 0x76, - 0x76, - 0x76, - 0x79, - 0x7D, - 0x7D, - 0x76, - 0x79, - 0x76, - 0x79, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x76, - 0x79, - 0x79, - 0x79, - 0x84, - 0x7D, - 0x7D, - 0x79, - 0x84, - 0x79, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x00, - 0x04, - 0x9A, - 0x08, - 0xA5, - 0x00, - 0x2A, - 0x79, - 0x6C, - 0x5B, - 0x3C, - 0x4A, - 0x35, - 0x39, - 0x29, - 0x39, - 0x3C, - 0x35, - 0x35, - 0x29, - 0x1E, - 0x4A, - 0x6C, - 0x5B, - 0x35, - 0x2A, - 0x14, - 0x05, - 0x67, - 0xF9, - 0xF9, - 0xF4, - 0xF9, - 0xF9, - 0xE4, - 0xFE, - 0xF9, - 0xD9, - 0xF9, - 0xF9, - 0xB1, - 0x2A, - 0x11, - 0x12, - 0x05, - 0x03, - 0x05, - 0x03, - 0x06, - 0x05, - 0x03, - 0x00, - 0x19, - 0x01, - 0x03, - 0x76, - 0x32, - 0x06, - 0x0B, - 0x19, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x14, - 0x0E, - 0x0F, - 0x19, - 0x14, - 0x11, - 0x14, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x09, - 0x0F, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x75, - 0x0E, - 0x0F, - 0x0F, - 0x0B, - 0x0A, - 0x03, - 0x03, - 0x0F, - 0x19, - 0x4D, - 0x84, - 0x7D, - 0x7A, - 0x6D, - 0x9A, - 0x6D, - 0x6D, - 0x4C, - 0x78, - 0x80, - 0x6D, - 0x5B, - 0x32, - 0x26, - 0x32, - 0x60, - 0x32, - 0x39, - 0x57, - 0x32, - 0x32, - 0x1C, - 0x19, - 0x1F, - 0x39, - 0x0E, - 0x1C, - 0x11, - 0x1C, - 0x1C, - 0x16, - 0x35, - 0x1E, - 0x14, - 0x29, - 0x1E, - 0x10, - 0x29, - 0x1B, - 0x10, - 0x1B, - 0x1B, - 0x16, - 0x22, - 0x10, - 0x16, - 0x16, - 0x16, - 0x14, - 0x16, - 0x1F, - 0x64, - 0x36, - 0x5C, - 0x24, - 0x24, - 0x46, - 0x46, - 0x46, - 0x51, - 0x68, - 0x72, - 0x6A, - 0x77, - 0x6E, - 0x75, - 0x77, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x75, - 0x75, - 0x77, - 0x7E, - 0x7C, - 0x72, - 0x77, - 0x77, - 0x77, - 0x7E, - 0x77, - 0x83, - 0x72, - 0x68, - 0x7E, - 0x74, - 0x5E, - 0x5C, - 0x5C, - 0x74, - 0x74, - 0x5C, - 0x5C, - 0x41, - 0x5C, - 0x41, - 0x30, - 0x54, - 0x59, - 0x54, - 0x44, - 0x40, - 0x44, - 0x30, - 0x3D, - 0x3D, - 0x00, - 0x04, - 0x42, - 0x00, - 0x1A, - 0x44, - 0x44, - 0x40, - 0x23, - 0x52, - 0x44, - 0x44, - 0x2E, - 0x3D, - 0x23, - 0x33, - 0x13, - 0x13, - 0x2E, - 0x44, - 0x2E, - 0x23, - 0x2E, - 0x30, - 0x23, - 0x23, - 0x20, - 0x40, - 0x40, - 0x40, - 0x42, - 0x05, - 0xFA, - 0x00, - 0x04, - 0xFE, - 0xF7, - 0xF7, - 0xFA, - 0x04, - 0xF7, - 0x08, - 0xF4, - 0x00, - 0x1B, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xF4, - 0xEC, - 0xC8, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xC8, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x78, - 0x04, - 0x76, - 0x00, - 0x1E, - 0x78, - 0x76, - 0x76, - 0x76, - 0x79, - 0x76, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x7D, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x84, - 0x79, - 0x79, - 0x8D, - 0x84, - 0x84, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x04, - 0x9A, - 0x00, - 0x75, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0xA5, - 0xBE, - 0xA5, - 0xA5, - 0xA5, - 0x6F, - 0x5B, - 0x4A, - 0x86, - 0x29, - 0x4D, - 0x4A, - 0x39, - 0x4D, - 0x39, - 0x16, - 0x39, - 0x29, - 0x22, - 0x5B, - 0x35, - 0x10, - 0x0E, - 0x1B, - 0x09, - 0x14, - 0x82, - 0xF9, - 0xF4, - 0xF9, - 0xF9, - 0xF9, - 0x57, - 0x12, - 0x0A, - 0x0A, - 0x0A, - 0x0D, - 0x62, - 0x39, - 0x0F, - 0x0F, - 0x03, - 0x06, - 0x06, - 0x06, - 0x05, - 0x03, - 0x03, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x05, - 0x4D, - 0x2A, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x09, - 0x09, - 0x0F, - 0x0F, - 0x14, - 0x0F, - 0x0E, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x11, - 0x0E, - 0x2A, - 0x14, - 0x14, - 0x0E, - 0x0E, - 0x0B, - 0x0E, - 0x09, - 0x06, - 0x03, - 0x14, - 0x1C, - 0x35, - 0xA3, - 0x6D, - 0x78, - 0xA9, - 0x6D, - 0x80, - 0x6D, - 0x57, - 0xA8, - 0xA3, - 0x60, - 0x32, - 0x4C, - 0x32, - 0x60, - 0x62, - 0x4C, - 0x6F, - 0x60, - 0x1F, - 0x89, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x7D, - 0x2A, - 0x16, - 0x1C, - 0x1C, - 0x10, - 0x1C, - 0x29, - 0x1E, - 0x1C, - 0x10, - 0x1E, - 0x1B, - 0x1C, - 0x1E, - 0x16, - 0x10, - 0x16, - 0x1B, - 0x29, - 0x1E, - 0x14, - 0x1B, - 0x1E, - 0x14, - 0x0F, - 0x26, - 0x4B, - 0x46, - 0x5C, - 0x4B, - 0x46, - 0x36, - 0x46, - 0x46, - 0x68, - 0x5E, - 0x6A, - 0x68, - 0x72, - 0x7E, - 0x6E, - 0x6A, - 0x77, - 0x77, - 0x6E, - 0x75, - 0x6E, - 0x75, - 0x77, - 0x75, - 0x75, - 0x77, - 0x7E, - 0x88, - 0x7E, - 0x87, - 0x92, - 0x72, - 0x72, - 0x83, - 0x83, - 0x68, - 0x74, - 0x69, - 0x74, - 0x73, - 0x74, - 0x5C, - 0x5C, - 0x69, - 0x4B, - 0x5C, - 0x64, - 0x52, - 0x63, - 0x63, - 0x63, - 0x6B, - 0x44, - 0x40, - 0x44, - 0x30, - 0x2E, - 0x42, - 0x54, - 0x59, - 0x38, - 0x44, - 0x44, - 0x40, - 0x33, - 0x23, - 0x23, - 0x3A, - 0x2E, - 0x2E, - 0x23, - 0x2E, - 0x21, - 0x18, - 0x23, - 0x3F, - 0x23, - 0x2E, - 0x23, - 0x21, - 0x21, - 0x04, - 0x04, - 0x0C, - 0x6B, - 0xFE, - 0xFE, - 0xFA, - 0xF7, - 0xFA, - 0xFE, - 0xFA, - 0xFA, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0x00, - 0x04, - 0xF4, - 0x00, - 0x1F, - 0xF0, - 0xF0, - 0xF4, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xEC, - 0xC8, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x76, - 0x76, - 0x78, - 0x76, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x76, - 0x79, - 0x76, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x79, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x04, - 0x79, - 0x8D, - 0x79, - 0x7D, - 0x06, - 0x8D, - 0x00, - 0x32, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x9A, - 0xA5, - 0xA5, - 0xBE, - 0xA5, - 0x84, - 0x6C, - 0x4A, - 0x4A, - 0x5D, - 0x39, - 0x5B, - 0x39, - 0x2A, - 0x4A, - 0x35, - 0x1E, - 0x10, - 0x1B, - 0x1E, - 0x16, - 0x29, - 0x4A, - 0x4A, - 0x35, - 0x14, - 0x06, - 0x9B, - 0xE4, - 0xF9, - 0xF0, - 0xC3, - 0x0F, - 0x12, - 0x0D, - 0x12, - 0x03, - 0x06, - 0x0A, - 0x03, - 0x06, - 0x06, - 0x04, - 0x03, - 0x00, - 0x12, - 0x06, - 0x03, - 0x05, - 0x03, - 0x03, - 0x06, - 0x03, - 0x03, - 0x03, - 0x8A, - 0x2A, - 0x0F, - 0x06, - 0x0F, - 0x0F, - 0x0A, - 0x0B, - 0x0B, - 0x05, - 0x0F, - 0x00, - 0x44, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0E, - 0x0F, - 0x0B, - 0x14, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x14, - 0x0B, - 0x0E, - 0x09, - 0x0B, - 0x05, - 0x14, - 0x14, - 0x14, - 0x19, - 0x79, - 0x97, - 0x80, - 0x6D, - 0xA5, - 0x82, - 0x80, - 0x60, - 0xA8, - 0x97, - 0xA8, - 0x84, - 0x39, - 0x60, - 0x32, - 0x4C, - 0x62, - 0x60, - 0x89, - 0x4C, - 0x4C, - 0x76, - 0x9A, - 0x1F, - 0x60, - 0x12, - 0x1F, - 0x1C, - 0x1C, - 0x11, - 0x1C, - 0x11, - 0x16, - 0x1C, - 0x16, - 0x16, - 0x11, - 0x1C, - 0x1E, - 0x1B, - 0x16, - 0x1B, - 0x1B, - 0x16, - 0x29, - 0x10, - 0x04, - 0x16, - 0x00, - 0x55, - 0x1C, - 0x32, - 0x41, - 0x64, - 0x46, - 0x46, - 0x36, - 0x36, - 0x51, - 0x5E, - 0x5E, - 0x5E, - 0x68, - 0x68, - 0x6E, - 0x77, - 0x77, - 0x88, - 0x75, - 0x75, - 0x75, - 0x6E, - 0x75, - 0x77, - 0x6E, - 0x75, - 0x77, - 0x6E, - 0x77, - 0x7E, - 0x92, - 0x7E, - 0x77, - 0x83, - 0x77, - 0x77, - 0x77, - 0x68, - 0x68, - 0x68, - 0x69, - 0x83, - 0x69, - 0x69, - 0x69, - 0x5C, - 0x64, - 0x4B, - 0x41, - 0x64, - 0x55, - 0x6B, - 0x5F, - 0x30, - 0x66, - 0x54, - 0x59, - 0x40, - 0x44, - 0x6B, - 0x44, - 0x23, - 0x23, - 0x30, - 0x2E, - 0x38, - 0x30, - 0x42, - 0x44, - 0x30, - 0x2E, - 0x40, - 0x3D, - 0x2E, - 0x38, - 0x23, - 0x2E, - 0x20, - 0x40, - 0x13, - 0x33, - 0x13, - 0x13, - 0x40, - 0x52, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x03, - 0xF7, - 0xFA, - 0xFE, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x28, - 0xF4, - 0xF7, - 0xF4, - 0xF7, - 0xF0, - 0xF7, - 0xF4, - 0xEC, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xF0, - 0xF0, - 0xC8, - 0xE4, - 0xDF, - 0xF0, - 0xEC, - 0xEC, - 0xC8, - 0xF4, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x07, - 0x78, - 0x76, - 0x76, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x00, - 0x04, - 0x76, - 0x00, - 0x0B, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x00, - 0x04, - 0x79, - 0x00, - 0xF9, - 0x7D, - 0x7D, - 0x8D, - 0x7D, - 0x84, - 0x7D, - 0x84, - 0x8D, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0xAF, - 0x8D, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0x97, - 0x6C, - 0x4A, - 0x5B, - 0x4A, - 0x39, - 0x4A, - 0x3C, - 0x4A, - 0x39, - 0x35, - 0x14, - 0x35, - 0x1B, - 0x16, - 0x1B, - 0x14, - 0x2A, - 0x4A, - 0x4A, - 0x14, - 0x09, - 0x82, - 0xF0, - 0xF0, - 0xC8, - 0x0F, - 0x0D, - 0x06, - 0x0D, - 0x0A, - 0x0D, - 0x0B, - 0x06, - 0x0A, - 0x03, - 0x03, - 0x06, - 0x03, - 0x06, - 0x06, - 0x03, - 0x06, - 0x03, - 0x03, - 0x06, - 0x03, - 0x03, - 0x06, - 0x0E, - 0x4D, - 0x19, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x14, - 0x0B, - 0x0F, - 0x14, - 0x0B, - 0x19, - 0x09, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x1C, - 0x14, - 0x14, - 0x19, - 0x14, - 0x14, - 0x0B, - 0x0E, - 0x0F, - 0x0B, - 0x4A, - 0x32, - 0x1B, - 0x09, - 0x5D, - 0x96, - 0x8A, - 0x60, - 0xBD, - 0x6D, - 0x7A, - 0xA8, - 0x76, - 0xA8, - 0x6D, - 0x6F, - 0x79, - 0x84, - 0x60, - 0x4D, - 0x4C, - 0x60, - 0x4D, - 0x89, - 0x4D, - 0x57, - 0x4D, - 0xA3, - 0x4C, - 0xA8, - 0x32, - 0x12, - 0x39, - 0x1C, - 0x1C, - 0x1E, - 0x11, - 0x2A, - 0x1C, - 0x11, - 0x1C, - 0x10, - 0x1C, - 0x1E, - 0x29, - 0x1E, - 0x1E, - 0x16, - 0x1B, - 0x16, - 0x1E, - 0x16, - 0x1B, - 0x14, - 0x16, - 0x1C, - 0x16, - 0x41, - 0x24, - 0x36, - 0x4B, - 0x36, - 0x46, - 0x5C, - 0x5C, - 0x5C, - 0x68, - 0x6A, - 0x72, - 0x77, - 0x75, - 0x75, - 0x6A, - 0x75, - 0x6E, - 0x87, - 0x6E, - 0x75, - 0x77, - 0x75, - 0x7E, - 0x75, - 0x88, - 0x85, - 0x7E, - 0x75, - 0x88, - 0x87, - 0x72, - 0x72, - 0x83, - 0x68, - 0x68, - 0x74, - 0x68, - 0x74, - 0x69, - 0x69, - 0x69, - 0x64, - 0x5C, - 0x64, - 0x4B, - 0x64, - 0x2D, - 0x28, - 0x67, - 0x4C, - 0x66, - 0x42, - 0x42, - 0x58, - 0x58, - 0x23, - 0x44, - 0x54, - 0x30, - 0x38, - 0x30, - 0x38, - 0x30, - 0x30, - 0x42, - 0x42, - 0x44, - 0x44, - 0x38, - 0x38, - 0x38, - 0x44, - 0x30, - 0x23, - 0x23, - 0x23, - 0x20, - 0x23, - 0x20, - 0x38, - 0x7B, - 0xFA, - 0xF7, - 0xFE, - 0xFA, - 0xF7, - 0xF7, - 0xFE, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x10, - 0xF9, - 0xF7, - 0xF9, - 0xF7, - 0xF0, - 0xF0, - 0xF7, - 0xF4, - 0xF4, - 0xEC, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0x04, - 0xEC, - 0x00, - 0x15, - 0xF0, - 0xEC, - 0xF0, - 0xDF, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x76, - 0x6D, - 0x78, - 0x76, - 0x6D, - 0x7D, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x7D, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x84, - 0x79, - 0x8D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x97, - 0x9A, - 0x8D, - 0xA5, - 0x8D, - 0xAF, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xBE, - 0xA5, - 0xBE, - 0x6F, - 0x5B, - 0x4E, - 0x4D, - 0x2A, - 0x3C, - 0x35, - 0x5B, - 0x4A, - 0x2A, - 0x35, - 0x3C, - 0x1B, - 0x1B, - 0x35, - 0x1C, - 0x0E, - 0x29, - 0x14, - 0x29, - 0x6C, - 0x4A, - 0x4F, - 0xF9, - 0xCE, - 0x1F, - 0x12, - 0x0F, - 0x12, - 0x03, - 0x0A, - 0x12, - 0x0A, - 0x0A, - 0x0B, - 0x03, - 0x03, - 0x03, - 0x0B, - 0x03, - 0x06, - 0x0F, - 0x0B, - 0x03, - 0x05, - 0x06, - 0x06, - 0x05, - 0x00, - 0x62, - 0x2A, - 0x0F, - 0x06, - 0x0B, - 0x14, - 0x0B, - 0x0B, - 0x19, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x11, - 0x1C, - 0x14, - 0x0F, - 0x0F, - 0x0E, - 0x0B, - 0x14, - 0x0F, - 0x0B, - 0x0E, - 0x11, - 0x09, - 0x0B, - 0x09, - 0x0B, - 0x0B, - 0x0B, - 0x14, - 0x22, - 0x1C, - 0x39, - 0x79, - 0x7F, - 0x6D, - 0x8A, - 0xD0, - 0xAF, - 0x7A, - 0xA8, - 0xA8, - 0xC0, - 0xC0, - 0x4D, - 0x62, - 0x7A, - 0x4D, - 0x57, - 0x4D, - 0x57, - 0x32, - 0xA9, - 0xAF, - 0x6D, - 0x6D, - 0x6D, - 0x86, - 0x62, - 0x86, - 0x32, - 0x32, - 0x2A, - 0x11, - 0x11, - 0x11, - 0x1C, - 0x11, - 0x1E, - 0x1C, - 0x09, - 0x2A, - 0x29, - 0x3C, - 0x29, - 0x1E, - 0x1E, - 0x1E, - 0x16, - 0x10, - 0x1B, - 0x14, - 0x14, - 0x16, - 0x1E, - 0x11, - 0x0F, - 0x57, - 0x41, - 0x36, - 0x4B, - 0x4B, - 0x46, - 0x5C, - 0x68, - 0x69, - 0x68, - 0x6A, - 0x6A, - 0x77, - 0x77, - 0x75, - 0x6A, - 0x8B, - 0x75, - 0xA0, - 0x75, - 0x7E, - 0x75, - 0x88, - 0x75, - 0x7C, - 0x8B, - 0x7E, - 0x88, - 0x7E, - 0x77, - 0x77, - 0x77, - 0x72, - 0x74, - 0x72, - 0x74, - 0x74, - 0x69, - 0x73, - 0x5C, - 0x4B, - 0x64, - 0x64, - 0x70, - 0x5C, - 0x41, - 0x4B, - 0x4B, - 0x5C, - 0x99, - 0x56, - 0x65, - 0x6B, - 0x63, - 0x54, - 0x58, - 0x42, - 0x13, - 0x3D, - 0x42, - 0x44, - 0x30, - 0x30, - 0x42, - 0x42, - 0x44, - 0x20, - 0x38, - 0x00, - 0x00, - 0x12, - 0x30, - 0x42, - 0x42, - 0x44, - 0x23, - 0x42, - 0x23, - 0x20, - 0x2E, - 0x55, - 0x3B, - 0x7B, - 0xFE, - 0xFE, - 0xFA, - 0xFA, - 0xFA, - 0xFE, - 0x04, - 0xF7, - 0x00, - 0x03, - 0xF4, - 0xF4, - 0xF7, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x19, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xF4, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xDF, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xF0, - 0x00, - 0x06, - 0xEC, - 0x00, - 0x04, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x05, - 0x76, - 0x6D, - 0x76, - 0x78, - 0x78, - 0x00, - 0x06, - 0x76, - 0x00, - 0x08, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x76, - 0x08, - 0x7D, - 0x00, - 0x04, - 0x79, - 0x7D, - 0x79, - 0x79, - 0x05, - 0x8D, - 0x00, - 0x27, - 0x9A, - 0x9A, - 0xAF, - 0x8D, - 0xAF, - 0x8D, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0x8D, - 0x71, - 0x5B, - 0x4D, - 0x35, - 0x22, - 0x5B, - 0x4A, - 0x1E, - 0x1E, - 0x39, - 0x2A, - 0x3C, - 0x35, - 0x1E, - 0x16, - 0x0E, - 0x4A, - 0x29, - 0x16, - 0x1E, - 0x2A, - 0x19, - 0x14, - 0x0F, - 0x98, - 0x09, - 0x0B, - 0x00, - 0x04, - 0x0A, - 0x00, - 0xE1, - 0x12, - 0x26, - 0x0F, - 0x12, - 0x0B, - 0x03, - 0x05, - 0x03, - 0x06, - 0x03, - 0x06, - 0x0A, - 0x02, - 0x03, - 0x0B, - 0x05, - 0x03, - 0x03, - 0x84, - 0x16, - 0x0B, - 0x0B, - 0x09, - 0x14, - 0x11, - 0x0F, - 0x14, - 0x0F, - 0x0F, - 0x0E, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x14, - 0x0F, - 0x0B, - 0x0F, - 0x2F, - 0x0E, - 0x09, - 0x0B, - 0x0B, - 0x0E, - 0x0B, - 0x03, - 0x14, - 0x14, - 0x5D, - 0x5D, - 0x7D, - 0x7A, - 0x8A, - 0x9A, - 0xBD, - 0x7A, - 0x62, - 0x78, - 0xBD, - 0x97, - 0x86, - 0x62, - 0x4D, - 0x60, - 0x60, - 0x4D, - 0x57, - 0x32, - 0x4C, - 0x60, - 0xC6, - 0x7F, - 0x7A, - 0x4D, - 0x89, - 0x7A, - 0x6D, - 0xA3, - 0x60, - 0x39, - 0x19, - 0x1C, - 0x11, - 0x1C, - 0x16, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x39, - 0x35, - 0x3C, - 0x29, - 0x1E, - 0x1E, - 0x16, - 0x16, - 0x10, - 0x16, - 0x14, - 0x10, - 0x14, - 0x10, - 0x19, - 0x26, - 0x26, - 0x4B, - 0x36, - 0x5C, - 0x5E, - 0x69, - 0x69, - 0x68, - 0x69, - 0x68, - 0x87, - 0x77, - 0x88, - 0x88, - 0x9E, - 0x92, - 0xA0, - 0x75, - 0x7E, - 0x7E, - 0x88, - 0x75, - 0x7C, - 0x7C, - 0x6E, - 0x75, - 0x7E, - 0x7E, - 0x7E, - 0x72, - 0x77, - 0x74, - 0x83, - 0x74, - 0x69, - 0x69, - 0x69, - 0x64, - 0x4B, - 0x64, - 0x67, - 0x57, - 0x57, - 0x64, - 0x41, - 0x64, - 0x5C, - 0x69, - 0x64, - 0x73, - 0x4E, - 0x2E, - 0x31, - 0x5A, - 0x63, - 0x6B, - 0x81, - 0x63, - 0x42, - 0x2E, - 0x42, - 0x42, - 0x54, - 0x42, - 0x54, - 0x44, - 0x42, - 0x30, - 0x38, - 0x44, - 0x44, - 0x42, - 0x23, - 0x38, - 0x3D, - 0x54, - 0x81, - 0xFA, - 0xF7, - 0xFA, - 0xF7, - 0xFE, - 0xF7, - 0xFE, - 0xF7, - 0xF7, - 0xF4, - 0xF7, - 0xF4, - 0xF4, - 0xF4, - 0xF7, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x09, - 0xC8, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x78, - 0x76, - 0x78, - 0x76, - 0x76, - 0x78, - 0x7D, - 0x78, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0E, - 0x79, - 0x7D, - 0x79, - 0x7D, - 0x7D, - 0x79, - 0x79, - 0x7D, - 0x7D, - 0x8D, - 0x79, - 0x8D, - 0x84, - 0x84, - 0x04, - 0x8D, - 0x00, - 0xFF, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0x84, - 0x79, - 0x4A, - 0x5B, - 0x2A, - 0x4D, - 0x29, - 0x1B, - 0x1B, - 0x4A, - 0x35, - 0x35, - 0x35, - 0x1E, - 0x22, - 0x09, - 0x10, - 0x5B, - 0x22, - 0x19, - 0x35, - 0x14, - 0x1F, - 0x14, - 0x14, - 0x0E, - 0x0A, - 0x0B, - 0x06, - 0x03, - 0x0A, - 0x0A, - 0x0B, - 0x14, - 0x19, - 0x19, - 0x0A, - 0x06, - 0x06, - 0x03, - 0x05, - 0x06, - 0x06, - 0x05, - 0x0A, - 0x0B, - 0x05, - 0x03, - 0x06, - 0x2A, - 0x8A, - 0x0E, - 0x0B, - 0x14, - 0x19, - 0x0F, - 0x19, - 0x0F, - 0x0B, - 0x39, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x09, - 0x1E, - 0x0F, - 0x11, - 0x14, - 0x0B, - 0x06, - 0x05, - 0x0B, - 0x05, - 0x0B, - 0x03, - 0x05, - 0x06, - 0x2A, - 0x35, - 0x4A, - 0xAF, - 0x7D, - 0xC0, - 0x7A, - 0x7A, - 0xBD, - 0x6D, - 0x60, - 0x78, - 0x89, - 0x78, - 0x6D, - 0x6D, - 0x26, - 0x60, - 0x6D, - 0x57, - 0x6F, - 0x57, - 0x1F, - 0x32, - 0x6D, - 0x60, - 0xBD, - 0x6D, - 0x97, - 0x60, - 0x6D, - 0x60, - 0x62, - 0x89, - 0x39, - 0x11, - 0x1C, - 0x11, - 0x1C, - 0x19, - 0x1E, - 0x1C, - 0x16, - 0x3C, - 0x3C, - 0x29, - 0x2A, - 0x1E, - 0x16, - 0x1C, - 0x10, - 0x1C, - 0x09, - 0x0E, - 0x16, - 0x14, - 0x14, - 0x19, - 0x2A, - 0x2D, - 0x26, - 0x24, - 0x5C, - 0x69, - 0x69, - 0x5E, - 0x5C, - 0x74, - 0x68, - 0x77, - 0xA0, - 0x91, - 0x9E, - 0x9E, - 0xA0, - 0x7E, - 0x7E, - 0x75, - 0x88, - 0x75, - 0x75, - 0x88, - 0x6E, - 0x6E, - 0x85, - 0x75, - 0x75, - 0x6A, - 0x77, - 0x72, - 0x87, - 0x83, - 0x69, - 0x5C, - 0x64, - 0x64, - 0x5C, - 0x69, - 0x67, - 0x60, - 0x60, - 0x67, - 0x64, - 0x69, - 0x69, - 0xAC, - 0x69, - 0xA2, - 0x2D, - 0x4F, - 0x65, - 0x31, - 0x13, - 0x04, - 0x21, - 0x59, - 0x81, - 0x6B, - 0x6B, - 0x63, - 0x63, - 0x58, - 0x63, - 0x20, - 0x42, - 0x30, - 0x42, - 0x42, - 0x48, - 0x42, - 0x2E, - 0x52, - 0x7B, - 0x8D, - 0xFA, - 0xFA, - 0xFE, - 0xFA, - 0xFE, - 0xF7, - 0xF7, - 0xF7, - 0xF4, - 0xF9, - 0xF7, - 0xF7, - 0xF9, - 0xF7, - 0xF9, - 0xF7, - 0xF0, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x1C, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF4, - 0xEC, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x14, - 0x76, - 0x78, - 0x78, - 0x76, - 0x7F, - 0x6D, - 0x76, - 0x78, - 0x7D, - 0x76, - 0x78, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x05, - 0x7D, - 0x00, - 0x06, - 0x79, - 0x7D, - 0x79, - 0x8D, - 0x79, - 0x79, - 0x05, - 0x8D, - 0x00, - 0x89, - 0x9A, - 0x8D, - 0xAF, - 0x8D, - 0x9A, - 0xAF, - 0xA5, - 0xA5, - 0xAF, - 0xA5, - 0xAF, - 0x5D, - 0x6F, - 0x4A, - 0x35, - 0x35, - 0x1E, - 0x29, - 0x1E, - 0x4A, - 0x10, - 0x2A, - 0x22, - 0x3C, - 0x5B, - 0x10, - 0x0E, - 0x14, - 0x22, - 0x0E, - 0x0E, - 0x39, - 0x14, - 0x82, - 0x4D, - 0x14, - 0x4C, - 0x19, - 0x0E, - 0x0A, - 0x06, - 0x03, - 0x03, - 0x12, - 0x19, - 0x1C, - 0x19, - 0x0F, - 0x06, - 0x0B, - 0x2F, - 0x05, - 0x06, - 0x06, - 0x06, - 0x09, - 0x0B, - 0x05, - 0x03, - 0x2F, - 0x1C, - 0x71, - 0x0E, - 0x0B, - 0x19, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x14, - 0x0F, - 0x0E, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x19, - 0x09, - 0x0F, - 0x14, - 0x0B, - 0x0E, - 0x14, - 0x0B, - 0x0B, - 0x06, - 0x0B, - 0x0E, - 0x0B, - 0x14, - 0x4D, - 0x35, - 0x84, - 0xA8, - 0xC0, - 0xF1, - 0x6D, - 0xA8, - 0x96, - 0x62, - 0x60, - 0x7A, - 0x60, - 0x78, - 0x97, - 0x26, - 0x32, - 0x57, - 0x60, - 0x57, - 0x80, - 0x84, - 0x32, - 0x32, - 0x4C, - 0x6D, - 0x6D, - 0xA8, - 0xD0, - 0x97, - 0xA8, - 0xA9, - 0x32, - 0x60, - 0x6D, - 0x0F, - 0x11, - 0x1C, - 0x16, - 0x1C, - 0x2A, - 0x1C, - 0x2A, - 0x3C, - 0x00, - 0x04, - 0x29, - 0x00, - 0x71, - 0x1B, - 0x16, - 0x1C, - 0x09, - 0x10, - 0x1B, - 0x16, - 0x10, - 0x11, - 0x16, - 0x26, - 0x1F, - 0x4B, - 0x4B, - 0x64, - 0x36, - 0x24, - 0x5C, - 0x5C, - 0x74, - 0x68, - 0x92, - 0x87, - 0xAD, - 0xAB, - 0xA0, - 0x91, - 0x88, - 0x92, - 0x6E, - 0x88, - 0x75, - 0x7C, - 0x6A, - 0x6E, - 0x7C, - 0x75, - 0x6A, - 0x6E, - 0x72, - 0x6A, - 0x7E, - 0x72, - 0x69, - 0x69, - 0x64, - 0x69, - 0x69, - 0xA2, - 0x57, - 0x5D, - 0x78, - 0x5B, - 0x64, - 0x64, - 0x73, - 0x99, - 0x64, - 0x73, - 0x64, - 0x55, - 0x48, - 0x38, - 0x20, - 0x04, - 0x07, - 0x48, - 0xFA, - 0xFE, - 0x9B, - 0x40, - 0x13, - 0x4F, - 0x23, - 0x44, - 0x63, - 0x54, - 0x63, - 0x52, - 0x20, - 0x2F, - 0x59, - 0xA3, - 0xFE, - 0xF7, - 0xFA, - 0xFE, - 0xFE, - 0xF7, - 0xF7, - 0xF9, - 0xF7, - 0xFE, - 0xF7, - 0xF9, - 0xF7, - 0xF4, - 0xF7, - 0xF9, - 0xF7, - 0xF4, - 0xF9, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xEC, - 0xF0, - 0xF4, - 0xF0, - 0xC8, - 0xF4, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x1A, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xE4, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0x00, - 0x00, - 0x04, - 0x78, - 0x00, - 0x0D, - 0x76, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x76, - 0x78, - 0x7D, - 0x7D, - 0x76, - 0x79, - 0x00, - 0x04, - 0x7D, - 0x01, - 0x79, - 0x01, - 0x76, - 0x05, - 0x7D, - 0x00, - 0x05, - 0x84, - 0x7D, - 0x8D, - 0x7D, - 0x84, - 0x00, - 0x06, - 0x8D, - 0x00, - 0xF7, - 0xA5, - 0x9A, - 0xA5, - 0x9A, - 0xAF, - 0xAF, - 0xA5, - 0xAF, - 0x6C, - 0x5B, - 0x5B, - 0x35, - 0x29, - 0x3C, - 0x35, - 0x29, - 0x35, - 0x29, - 0x1E, - 0x35, - 0x1E, - 0x5B, - 0x22, - 0x22, - 0x09, - 0x16, - 0x14, - 0x2A, - 0x22, - 0x19, - 0x3C, - 0x4C, - 0x16, - 0x10, - 0x1F, - 0x1C, - 0x19, - 0x19, - 0x12, - 0x03, - 0x0F, - 0x0F, - 0x32, - 0x1C, - 0x0F, - 0x05, - 0x06, - 0x32, - 0x05, - 0x05, - 0x06, - 0x06, - 0x03, - 0x03, - 0x06, - 0x0B, - 0x1F, - 0x1F, - 0x89, - 0x1C, - 0x0B, - 0x0B, - 0x0F, - 0x0B, - 0x0B, - 0x0B, - 0x0E, - 0x0F, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x11, - 0x0B, - 0x11, - 0x0B, - 0x0B, - 0x1C, - 0x19, - 0x14, - 0x0B, - 0x0B, - 0x0B, - 0x05, - 0x1C, - 0x5D, - 0x22, - 0x2A, - 0x14, - 0x1E, - 0x79, - 0xA8, - 0xC0, - 0xC0, - 0xC0, - 0x6D, - 0xA8, - 0x89, - 0x62, - 0x60, - 0x78, - 0xA8, - 0xC0, - 0x62, - 0x1F, - 0x32, - 0x26, - 0x60, - 0x6D, - 0x57, - 0x6D, - 0x60, - 0x32, - 0x4C, - 0x57, - 0x62, - 0x6D, - 0xA8, - 0x96, - 0xA8, - 0xBD, - 0x4D, - 0x60, - 0x6F, - 0x1F, - 0x32, - 0x11, - 0x11, - 0x11, - 0x1C, - 0x2A, - 0x1C, - 0x39, - 0x3C, - 0x39, - 0x29, - 0x1E, - 0x29, - 0x1E, - 0x10, - 0x16, - 0x10, - 0x10, - 0x10, - 0x11, - 0x16, - 0x11, - 0x1F, - 0x26, - 0x26, - 0x15, - 0x24, - 0x2D, - 0x36, - 0x4B, - 0x46, - 0x69, - 0x74, - 0x83, - 0x92, - 0x9E, - 0x88, - 0x8B, - 0x7E, - 0x93, - 0x7E, - 0x91, - 0x75, - 0x7E, - 0x7E, - 0x7C, - 0x6E, - 0x6E, - 0x6E, - 0x75, - 0x77, - 0x6A, - 0x7E, - 0x83, - 0x68, - 0x69, - 0x69, - 0x68, - 0x5C, - 0x64, - 0x5C, - 0x4A, - 0x67, - 0x4F, - 0x64, - 0x4B, - 0x82, - 0x64, - 0x57, - 0x64, - 0x4E, - 0x3F, - 0x63, - 0x54, - 0x3D, - 0x23, - 0x07, - 0x42, - 0x59, - 0xFA, - 0xFA, - 0xFA, - 0x7B, - 0xA3, - 0x81, - 0x7B, - 0xD9, - 0xF7, - 0xA5, - 0xA5, - 0xA3, - 0xFA, - 0xFE, - 0xF7, - 0xFE, - 0xF7, - 0xFE, - 0xFE, - 0xF7, - 0xF7, - 0xFE, - 0xF7, - 0xF7, - 0xF9, - 0xF4, - 0xF4, - 0xF7, - 0xF4, - 0xF9, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF4, - 0xF0, - 0xF0, - 0xF4, - 0x00, - 0x09, - 0xF0, - 0x00, - 0x0A, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xCE, - 0xF0, - 0xF0, - 0xEC, - 0xE4, - 0xEC, - 0x04, - 0xF0, - 0x00, - 0x0B, - 0xEC, - 0xF0, - 0xEC, - 0xEC, - 0xEC, - 0xF0, - 0xEC, - 0xF4, - 0xEC, - 0xF0, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x76, - 0x6D, - 0x78, - 0x76, - 0x78, - 0x6D, - 0x76, - 0x7D, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x0F, - 0x7D, - 0x00, - 0xD7, - 0x84, - 0x7D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x97, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0xAF, - 0xA5, - 0xA5, - 0xA5, - 0xAF, - 0x6F, - 0x84, - 0x4A, - 0x4A, - 0x4E, - 0x16, - 0x29, - 0x35, - 0x16, - 0x4A, - 0x35, - 0x29, - 0x35, - 0x1E, - 0x35, - 0x29, - 0x1B, - 0x10, - 0x14, - 0x14, - 0x11, - 0x1F, - 0x4D, - 0x2A, - 0x2A, - 0x39, - 0x4A, - 0x1E, - 0x32, - 0x19, - 0x2F, - 0x19, - 0x0B, - 0x0A, - 0x14, - 0x35, - 0x1F, - 0x0F, - 0x0B, - 0x0B, - 0x1C, - 0x0E, - 0x05, - 0x0A, - 0x06, - 0x0A, - 0x06, - 0x0A, - 0x11, - 0x0A, - 0x11, - 0x79, - 0x1C, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x1C, - 0x0F, - 0x0B, - 0x1C, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x32, - 0x0F, - 0x0E, - 0x0F, - 0x09, - 0x05, - 0x22, - 0x76, - 0x14, - 0x2A, - 0x39, - 0x5B, - 0x5B, - 0x96, - 0x96, - 0xC0, - 0xAF, - 0xBD, - 0x62, - 0xC0, - 0x9A, - 0x60, - 0x60, - 0x89, - 0x7D, - 0xF1, - 0x97, - 0x26, - 0x60, - 0x7A, - 0x97, - 0x96, - 0x7A, - 0x96, - 0x32, - 0x60, - 0x60, - 0x7A, - 0x6D, - 0x60, - 0xA9, - 0x97, - 0xA9, - 0x89, - 0x60, - 0x7A, - 0x6D, - 0x4D, - 0x7A, - 0x19, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x2A, - 0x3C, - 0x3C, - 0x35, - 0x2A, - 0x29, - 0x1E, - 0x16, - 0x1E, - 0x10, - 0x10, - 0x1B, - 0x16, - 0x16, - 0x1C, - 0x16, - 0x1C, - 0x19, - 0x19, - 0x0D, - 0x15, - 0x24, - 0x24, - 0x36, - 0x69, - 0x69, - 0x83, - 0x72, - 0xA0, - 0xA4, - 0x9E, - 0x93, - 0x85, - 0xA0, - 0x7E, - 0x88, - 0x87, - 0x75, - 0x7E, - 0x6E, - 0x75, - 0x6E, - 0x6E, - 0x6E, - 0x5E, - 0x77, - 0x92, - 0x5E, - 0x69, - 0x69, - 0x74, - 0x69, - 0x5C, - 0x64, - 0x56, - 0x70, - 0x4D, - 0x57, - 0x70, - 0x67, - 0x5B, - 0x5D, - 0x3C, - 0x59, - 0x50, - 0x54, - 0x54, - 0x48, - 0x3D, - 0x44, - 0x42, - 0x42, - 0x76, - 0x00, - 0x07, - 0xFE, - 0x01, - 0xF7, - 0x05, - 0xFE, - 0x00, - 0x16, - 0xF7, - 0xFE, - 0xF9, - 0xF9, - 0xF9, - 0xF7, - 0xFE, - 0xF4, - 0xFE, - 0xF7, - 0xF9, - 0xF7, - 0xF0, - 0xF0, - 0xF9, - 0xF4, - 0xF4, - 0xF9, - 0xF4, - 0xF4, - 0xF9, - 0xF4, - 0x0B, - 0xF0, - 0x01, - 0xE4, - 0x09, - 0xF0, - 0x01, - 0xF9, - 0x06, - 0xF0, - 0x00, - 0x03, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x06, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x14, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x76, - 0x7D, - 0x7F, - 0x78, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x76, - 0x7D, - 0x78, - 0x7D, - 0x7F, - 0x76, - 0x7D, - 0x76, - 0x07, - 0x7D, - 0x00, - 0x47, - 0x8D, - 0x7D, - 0x7D, - 0x8D, - 0x7D, - 0x7D, - 0x84, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x8D, - 0x97, - 0x9A, - 0xAF, - 0x9A, - 0xAF, - 0xAF, - 0xA5, - 0x86, - 0x6C, - 0x4A, - 0x4A, - 0x35, - 0x3C, - 0x35, - 0x29, - 0x35, - 0x2A, - 0x5B, - 0x4A, - 0x16, - 0x10, - 0x1B, - 0x39, - 0x1E, - 0x11, - 0x0E, - 0x0E, - 0x76, - 0x62, - 0x4A, - 0x2A, - 0x32, - 0x2A, - 0x60, - 0x4F, - 0x1F, - 0x1C, - 0x35, - 0x1E, - 0x19, - 0x05, - 0x11, - 0x2A, - 0x2A, - 0x0F, - 0x0A, - 0x0B, - 0x09, - 0x0F, - 0x0B, - 0x0B, - 0x06, - 0x0B, - 0x0A, - 0x0B, - 0x0D, - 0x03, - 0x0B, - 0x5B, - 0x00, - 0x05, - 0x0F, - 0x00, - 0x0B, - 0x0B, - 0x19, - 0x0B, - 0x19, - 0x0F, - 0x0F, - 0x0B, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x39, - 0x0F, - 0x09, - 0x06, - 0x05, - 0x35, - 0x5B, - 0x22, - 0x35, - 0x35, - 0x5B, - 0x79, - 0x97, - 0x96, - 0x86, - 0xA8, - 0xBD, - 0x97, - 0x78, - 0xD0, - 0x6D, - 0x6D, - 0x7A, - 0x62, - 0xAF, - 0xE8, - 0x86, - 0x57, - 0x6F, - 0x9A, - 0x7A, - 0x60, - 0x62, - 0x62, - 0x32, - 0x60, - 0x62, - 0x89, - 0x9A, - 0x57, - 0x96, - 0xAF, - 0x96, - 0xA9, - 0x60, - 0x6D, - 0x62, - 0x7A, - 0x62, - 0x7A, - 0x11, - 0x10, - 0x1C, - 0x1C, - 0x39, - 0x29, - 0x39, - 0x35, - 0x00, - 0x04, - 0x1E, - 0x00, - 0x2B, - 0x10, - 0x10, - 0x16, - 0x1B, - 0x16, - 0x1E, - 0x1E, - 0x16, - 0x11, - 0x1C, - 0x0F, - 0x12, - 0x12, - 0x15, - 0x36, - 0x36, - 0x5C, - 0x69, - 0x74, - 0x92, - 0xA0, - 0xAD, - 0x7E, - 0x85, - 0x93, - 0x9D, - 0x8B, - 0x88, - 0x7C, - 0x7E, - 0x7E, - 0x75, - 0x75, - 0x6A, - 0x6E, - 0x61, - 0x7E, - 0x88, - 0x68, - 0x74, - 0x74, - 0x69, - 0x74, - 0x00, - 0x04, - 0x69, - 0x00, - 0x12, - 0x70, - 0x56, - 0x4B, - 0x4C, - 0x4E, - 0x55, - 0x40, - 0x52, - 0x54, - 0x58, - 0x59, - 0x58, - 0x42, - 0x30, - 0x45, - 0x5F, - 0x40, - 0xBE, - 0x05, - 0xFE, - 0x00, - 0x19, - 0xFA, - 0xFE, - 0xFE, - 0xFE, - 0xF7, - 0xFE, - 0xF9, - 0xFE, - 0xF9, - 0xF7, - 0xFE, - 0xFE, - 0xF7, - 0xFE, - 0xF0, - 0xF7, - 0xF9, - 0xF9, - 0xF9, - 0xF7, - 0xF9, - 0xF0, - 0xF9, - 0xF9, - 0xF9, - 0x00, - 0x09, - 0xF0, - 0x01, - 0xEC, - 0x08, - 0xF0, - 0x00, - 0x0D, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xC8, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x06, - 0xF0, - 0x00, - 0x09, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x04, - 0x78, - 0x00, - 0x14, - 0x7F, - 0x78, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x76, - 0x7D, - 0x7D, - 0x76, - 0x7D, - 0x76, - 0x76, - 0x7D, - 0x7D, - 0x7F, - 0x05, - 0x7D, - 0x00, - 0xD6, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0xAF, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0x71, - 0x6C, - 0x5B, - 0x29, - 0x35, - 0x10, - 0x22, - 0x1E, - 0x2A, - 0x35, - 0x4A, - 0x1B, - 0x4A, - 0x1B, - 0x10, - 0x10, - 0x4A, - 0x1C, - 0x0E, - 0x4D, - 0x4D, - 0x39, - 0x2A, - 0x0F, - 0x4F, - 0x4D, - 0x1E, - 0x14, - 0x32, - 0x22, - 0x35, - 0x39, - 0x1E, - 0x0B, - 0x05, - 0x22, - 0x35, - 0x0F, - 0x02, - 0x0E, - 0x05, - 0x14, - 0x29, - 0x09, - 0x0B, - 0x06, - 0x05, - 0x03, - 0x0B, - 0x0A, - 0x0B, - 0x5B, - 0x11, - 0x0B, - 0x11, - 0x0F, - 0x0F, - 0x1C, - 0x11, - 0x0F, - 0x0F, - 0x09, - 0x0B, - 0x0F, - 0x14, - 0x0B, - 0x0F, - 0x14, - 0x0F, - 0x14, - 0x1C, - 0x14, - 0x05, - 0x0B, - 0x05, - 0x1C, - 0x2A, - 0x5B, - 0x35, - 0x35, - 0x76, - 0x35, - 0xA8, - 0x89, - 0x6F, - 0x9A, - 0xC0, - 0xC0, - 0x7A, - 0x6D, - 0xA8, - 0x89, - 0x7D, - 0x6D, - 0x76, - 0xBD, - 0xF1, - 0x79, - 0x60, - 0x6D, - 0xAF, - 0xBD, - 0x32, - 0x60, - 0x4D, - 0x26, - 0x4D, - 0x32, - 0x7A, - 0xA9, - 0x6D, - 0x6D, - 0xD0, - 0x8A, - 0xA9, - 0x6D, - 0x7A, - 0x6D, - 0x4D, - 0x60, - 0x96, - 0x5B, - 0x1F, - 0x16, - 0x1C, - 0x2A, - 0x29, - 0x39, - 0x29, - 0x39, - 0x1E, - 0x1E, - 0x29, - 0x10, - 0x10, - 0x16, - 0x10, - 0x1B, - 0x1E, - 0x29, - 0x1B, - 0x14, - 0x11, - 0x16, - 0x0B, - 0x15, - 0x0D, - 0x24, - 0x36, - 0x69, - 0x69, - 0x83, - 0x87, - 0x91, - 0x88, - 0x90, - 0x8B, - 0x9D, - 0x85, - 0x75, - 0x75, - 0x7C, - 0x7E, - 0x8B, - 0x61, - 0x6E, - 0x6A, - 0x77, - 0x7E, - 0x88, - 0x68, - 0x74, - 0x74, - 0x74, - 0x69, - 0x74, - 0x69, - 0x69, - 0x69, - 0x64, - 0x64, - 0x64, - 0x49, - 0x60, - 0x55, - 0x31, - 0x44, - 0x48, - 0x54, - 0x58, - 0x63, - 0x54, - 0x42, - 0x54, - 0x6B, - 0x59, - 0x55, - 0x0A, - 0xFE, - 0x00, - 0x13, - 0xF9, - 0xFE, - 0xF9, - 0xF9, - 0xF9, - 0xFE, - 0xF9, - 0xF9, - 0xF9, - 0xF7, - 0xF9, - 0xF9, - 0xF9, - 0xF0, - 0xF9, - 0xF0, - 0xF9, - 0xF0, - 0xF4, - 0x00, - 0x0D, - 0xF0, - 0x00, - 0x12, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xC8, - 0xF0, - 0xE4, - 0xF0, - 0xEC, - 0xE4, - 0x05, - 0xF0, - 0x00, - 0x0C, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF9, - 0xF0, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x06, - 0x78, - 0x00, - 0x0D, - 0x7D, - 0x78, - 0x78, - 0x7D, - 0x78, - 0x7D, - 0x76, - 0x7D, - 0x7D, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x00, - 0x08, - 0x7D, - 0x01, - 0x79, - 0x05, - 0x7D, - 0x01, - 0x8D, - 0x01, - 0x84, - 0x04, - 0x8D, - 0x00, - 0xCC, - 0x97, - 0x8D, - 0xA5, - 0x9A, - 0xAF, - 0xAF, - 0x97, - 0x79, - 0x5D, - 0x4A, - 0x3C, - 0x1E, - 0x29, - 0x10, - 0x29, - 0x39, - 0x5B, - 0x3C, - 0x3C, - 0x4E, - 0x14, - 0x0E, - 0x29, - 0x22, - 0x1C, - 0x4A, - 0x39, - 0x29, - 0x1C, - 0x11, - 0x2A, - 0x4A, - 0x62, - 0x2A, - 0x14, - 0x2A, - 0x19, - 0x22, - 0x35, - 0x4A, - 0x0E, - 0x05, - 0x14, - 0x35, - 0x11, - 0x10, - 0x09, - 0x05, - 0x0E, - 0x14, - 0x1B, - 0x05, - 0x06, - 0x03, - 0x05, - 0x03, - 0x01, - 0x09, - 0x86, - 0x14, - 0x0E, - 0x0B, - 0x0F, - 0x0B, - 0x09, - 0x0F, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x11, - 0x0E, - 0x0B, - 0x0B, - 0x0B, - 0x0E, - 0x0B, - 0x0F, - 0x14, - 0x09, - 0x09, - 0x22, - 0x2A, - 0x3C, - 0x4A, - 0x35, - 0x5B, - 0x5D, - 0xC0, - 0x96, - 0x79, - 0x97, - 0x86, - 0xD0, - 0xC0, - 0x6D, - 0x9A, - 0xA8, - 0x78, - 0x7A, - 0x7F, - 0x76, - 0x97, - 0xD0, - 0x76, - 0x8A, - 0x4D, - 0xBD, - 0xBD, - 0x62, - 0x1F, - 0x26, - 0x7A, - 0xF1, - 0xF1, - 0xA9, - 0xA9, - 0xBD, - 0x62, - 0xA9, - 0xA9, - 0xA9, - 0xA8, - 0xA8, - 0x89, - 0x96, - 0x6F, - 0x60, - 0x89, - 0x39, - 0x1C, - 0x1E, - 0x1C, - 0x39, - 0x35, - 0x2A, - 0x3C, - 0x1B, - 0x1B, - 0x16, - 0x1B, - 0x10, - 0x16, - 0x1B, - 0x29, - 0x1B, - 0x16, - 0x10, - 0x19, - 0x1F, - 0x14, - 0x11, - 0x0A, - 0x15, - 0x15, - 0x36, - 0x5C, - 0x68, - 0x74, - 0x91, - 0xAD, - 0x75, - 0x93, - 0x8B, - 0x9E, - 0x7E, - 0x8B, - 0x7E, - 0x93, - 0x7E, - 0x6A, - 0x6E, - 0x87, - 0x87, - 0x7E, - 0x77, - 0x68, - 0x74, - 0x68, - 0x72, - 0x68, - 0x83, - 0x5C, - 0x73, - 0x73, - 0x64, - 0x64, - 0x64, - 0x4B, - 0x70, - 0x18, - 0x3C, - 0x52, - 0x31, - 0x59, - 0x59, - 0x63, - 0x58, - 0x42, - 0x54, - 0x58, - 0x54, - 0x13, - 0xF7, - 0x07, - 0xFE, - 0x00, - 0x07, - 0xF9, - 0xF9, - 0xF9, - 0xFE, - 0xF9, - 0xFE, - 0xFE, - 0x00, - 0x07, - 0xF9, - 0x01, - 0xF0, - 0x04, - 0xF9, - 0x00, - 0x03, - 0xF0, - 0xF0, - 0xF9, - 0x00, - 0x05, - 0xF0, - 0x01, - 0xF9, - 0x04, - 0xF0, - 0x00, - 0x14, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xC8, - 0xC8, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0x04, - 0xF0, - 0x00, - 0x0E, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0xF4, - 0xF4, - 0xF0, - 0x00, - 0x00, - 0x0C, - 0x78, - 0x00, - 0x0C, - 0x7F, - 0x76, - 0x76, - 0x7D, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x78, - 0x7D, - 0x7D, - 0x76, - 0x05, - 0x7D, - 0x00, - 0x53, - 0x8D, - 0x8D, - 0x7D, - 0x84, - 0x7D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xAF, - 0x9A, - 0xA5, - 0x9A, - 0xA5, - 0x97, - 0x71, - 0x62, - 0x5D, - 0x29, - 0x1B, - 0x10, - 0x1B, - 0x1B, - 0x5B, - 0x71, - 0x4A, - 0x29, - 0x4E, - 0x16, - 0x22, - 0x14, - 0x29, - 0x35, - 0x32, - 0x4A, - 0x35, - 0x19, - 0x14, - 0x2A, - 0x4D, - 0x1E, - 0x2A, - 0x22, - 0x16, - 0x5B, - 0x4C, - 0x4A, - 0x3C, - 0x0F, - 0x05, - 0x09, - 0x1B, - 0x16, - 0x10, - 0x10, - 0x0E, - 0x0E, - 0x16, - 0x09, - 0x09, - 0x09, - 0x0B, - 0x05, - 0x05, - 0x06, - 0x0A, - 0xA3, - 0x29, - 0x0B, - 0x09, - 0x0F, - 0x0F, - 0x0F, - 0x0E, - 0x0F, - 0x14, - 0x14, - 0x14, - 0x0B, - 0x0F, - 0x0F, - 0x00, - 0x05, - 0x14, - 0x00, - 0x7D, - 0x0F, - 0x0F, - 0x35, - 0x1E, - 0x4A, - 0x4A, - 0x29, - 0x5B, - 0x4A, - 0x86, - 0x97, - 0x97, - 0x8D, - 0x86, - 0x84, - 0xBD, - 0xAF, - 0x6D, - 0x60, - 0x80, - 0x60, - 0x8A, - 0x6D, - 0x60, - 0xBD, - 0xC0, - 0x60, - 0x7A, - 0x57, - 0xAF, - 0xA9, - 0x89, - 0x62, - 0x86, - 0x6F, - 0xA9, - 0xF1, - 0xBD, - 0xBD, - 0xD0, - 0x7A, - 0x96, - 0xF1, - 0xA8, - 0xBD, - 0xA9, - 0xA9, - 0x96, - 0xC0, - 0x6F, - 0x6F, - 0x7A, - 0x2A, - 0x1E, - 0x1C, - 0x39, - 0x39, - 0x39, - 0x1E, - 0x1B, - 0x29, - 0x1B, - 0x14, - 0x1B, - 0x16, - 0x29, - 0x16, - 0x29, - 0x0E, - 0x1C, - 0x1F, - 0x11, - 0x19, - 0x0F, - 0x19, - 0x0D, - 0x15, - 0x36, - 0x46, - 0x68, - 0x72, - 0xA4, - 0xA4, - 0x93, - 0x8B, - 0x9E, - 0x8B, - 0x85, - 0x85, - 0x8B, - 0x92, - 0x75, - 0x6E, - 0x91, - 0x77, - 0x77, - 0x6A, - 0x77, - 0x83, - 0x74, - 0x68, - 0x69, - 0x74, - 0x5E, - 0x74, - 0x69, - 0x64, - 0x64, - 0x64, - 0x76, - 0x56, - 0x55, - 0x57, - 0x55, - 0x52, - 0x59, - 0x50, - 0x63, - 0x54, - 0x54, - 0x54, - 0x63, - 0x58, - 0x23, - 0x55, - 0x00, - 0x05, - 0xFE, - 0x00, - 0x08, - 0xFD, - 0xFE, - 0xF9, - 0xFD, - 0xFE, - 0xF9, - 0xFB, - 0xFD, - 0x0B, - 0xF9, - 0x00, - 0x11, - 0xE4, - 0xF9, - 0xF0, - 0xF9, - 0xF9, - 0xE4, - 0xF9, - 0xF0, - 0xF9, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x04, - 0xE4, - 0x00, - 0x12, - 0xC8, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xCE, - 0xE4, - 0xF0, - 0xE4, - 0xEC, - 0xEC, - 0x05, - 0xF0, - 0x00, - 0x04, - 0xEC, - 0xF0, - 0xF0, - 0xEC, - 0x04, - 0xF0, - 0x01, - 0xEC, - 0x01, - 0xF0, - 0x00, - 0x00, - 0x01, - 0x80, - 0x04, - 0x78, - 0x00, - 0x0C, - 0x7F, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x7D, - 0x78, - 0x07, - 0x7D, - 0x00, - 0x59, - 0x7F, - 0x7D, - 0x7D, - 0x7D, - 0x8D, - 0x76, - 0x79, - 0x8D, - 0x7D, - 0x8D, - 0x84, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0xAF, - 0xAF, - 0xA5, - 0xA3, - 0x86, - 0x4E, - 0x4E, - 0x2A, - 0x29, - 0x22, - 0x29, - 0x1B, - 0x1E, - 0x4D, - 0x1B, - 0x35, - 0x16, - 0x29, - 0x0E, - 0x10, - 0x1C, - 0x1E, - 0x39, - 0x4D, - 0x4D, - 0x29, - 0x2A, - 0x2A, - 0x62, - 0x35, - 0x1C, - 0x10, - 0x14, - 0x39, - 0x4C, - 0x29, - 0x39, - 0x14, - 0x0F, - 0x05, - 0x16, - 0x16, - 0x16, - 0x1B, - 0x10, - 0x10, - 0x14, - 0x10, - 0x05, - 0x02, - 0x0F, - 0x0B, - 0x0B, - 0x05, - 0x03, - 0xC0, - 0x71, - 0x11, - 0x11, - 0x0E, - 0x0B, - 0x14, - 0x0B, - 0x0F, - 0x0B, - 0x0F, - 0x0B, - 0x09, - 0x0E, - 0x0F, - 0x14, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x7D, - 0x05, - 0x05, - 0x4E, - 0x3C, - 0x4A, - 0x14, - 0x5B, - 0x5D, - 0x79, - 0xC0, - 0x97, - 0x86, - 0x7A, - 0x7A, - 0x9A, - 0x89, - 0x60, - 0x6D, - 0xBD, - 0x96, - 0xE8, - 0xC0, - 0x62, - 0x78, - 0xC0, - 0xC0, - 0x60, - 0x8A, - 0x6D, - 0x96, - 0xBD, - 0xA9, - 0x6F, - 0xA8, - 0xFC, - 0xA9, - 0xF1, - 0xD0, - 0xD0, - 0xD0, - 0x89, - 0x6D, - 0xD0, - 0xBD, - 0x60, - 0x89, - 0x86, - 0x7A, - 0xA9, - 0x7A, - 0x62, - 0x96, - 0x6F, - 0x1C, - 0x2A, - 0x4A, - 0x39, - 0x39, - 0x29, - 0x3C, - 0x10, - 0x16, - 0x16, - 0x10, - 0x16, - 0x10, - 0x29, - 0x10, - 0x4B, - 0x26, - 0x0F, - 0x0E, - 0x0F, - 0x0B, - 0x0F, - 0x0D, - 0x0D, - 0x36, - 0x46, - 0x5E, - 0xA0, - 0xA0, - 0x7E, - 0x90, - 0x9E, - 0x9D, - 0x93, - 0x8B, - 0x93, - 0x8B, - 0x75, - 0x6E, - 0x88, - 0x77, - 0x7E, - 0x6A, - 0x88, - 0x77, - 0x83, - 0x74, - 0x74, - 0x5C, - 0x69, - 0x69, - 0x5C, - 0x56, - 0x4B, - 0x64, - 0x60, - 0x4C, - 0x55, - 0x65, - 0x55, - 0x4A, - 0x59, - 0x50, - 0x59, - 0x58, - 0x63, - 0x58, - 0x54, - 0x42, - 0x38, - 0x2F, - 0xFD, - 0x00, - 0x07, - 0xFE, - 0x00, - 0x0B, - 0xFD, - 0xF9, - 0xFD, - 0xFE, - 0xFE, - 0xFB, - 0xF9, - 0xFD, - 0xF9, - 0xF9, - 0xFB, - 0x00, - 0x04, - 0xF9, - 0x00, - 0x0B, - 0xE3, - 0xF0, - 0xF9, - 0xE4, - 0xF0, - 0xF9, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x06, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0x06, - 0xE4, - 0x00, - 0x14, - 0xF0, - 0xE4, - 0xF0, - 0xE4, - 0xCE, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xEC, - 0xF0, - 0xF9, - 0x04, - 0xF0, - 0x00, - 0x05, - 0xEC, - 0xF0, - 0xF9, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x76, - 0x78, - 0x78, - 0x80, - 0x78, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x7D, - 0x78, - 0x78, - 0x76, - 0x78, - 0x7D, - 0x7D, - 0x7D, - 0x78, - 0x7D, - 0x7D, - 0x78, - 0x04, - 0x7D, - 0x00, - 0x08, - 0x78, - 0x8D, - 0x7D, - 0x7D, - 0x8D, - 0x78, - 0x8D, - 0x7D, - 0x05, - 0x8D, - 0x00, - 0xCA, - 0x97, - 0x9A, - 0x9A, - 0xAF, - 0xA5, - 0xAF, - 0x86, - 0x71, - 0x4A, - 0x3C, - 0x1B, - 0x1B, - 0x29, - 0x22, - 0x35, - 0x35, - 0x5B, - 0x2A, - 0x4A, - 0x10, - 0x22, - 0x10, - 0x2A, - 0x22, - 0x4D, - 0x4A, - 0x39, - 0x35, - 0x2A, - 0x39, - 0x5B, - 0x35, - 0x1C, - 0x22, - 0x1E, - 0x10, - 0x2F, - 0x32, - 0x32, - 0x35, - 0x1B, - 0x10, - 0x09, - 0x10, - 0x1B, - 0x10, - 0x22, - 0x29, - 0x10, - 0x1B, - 0x05, - 0x4E, - 0x3C, - 0x0F, - 0x01, - 0x0F, - 0x0B, - 0x05, - 0x6F, - 0x5B, - 0x62, - 0x0B, - 0x14, - 0x0F, - 0x14, - 0x0F, - 0x0F, - 0x2F, - 0x09, - 0x0B, - 0x0F, - 0x14, - 0x0E, - 0x14, - 0x11, - 0x1C, - 0x09, - 0x05, - 0x05, - 0x1E, - 0x5D, - 0x5B, - 0x1C, - 0x3C, - 0x6C, - 0x97, - 0xA8, - 0x86, - 0x7D, - 0x7A, - 0x8A, - 0x7A, - 0x97, - 0xAF, - 0xA9, - 0xF1, - 0xE8, - 0xC0, - 0xE8, - 0xC0, - 0x4D, - 0x62, - 0x97, - 0x7A, - 0x6D, - 0x7A, - 0x89, - 0xBD, - 0xC0, - 0xC0, - 0x6F, - 0x7A, - 0xF1, - 0xD0, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xA9, - 0x7A, - 0x89, - 0xFC, - 0x89, - 0x7A, - 0xC0, - 0x96, - 0xD0, - 0xA9, - 0x62, - 0x89, - 0x7A, - 0x4D, - 0x1F, - 0x39, - 0x39, - 0x16, - 0x1B, - 0x29, - 0x16, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x29, - 0x19, - 0x64, - 0x11, - 0x4C, - 0x0B, - 0x0F, - 0x0F, - 0x19, - 0x12, - 0x0A, - 0x15, - 0x24, - 0x36, - 0x68, - 0x91, - 0xA0, - 0x7C, - 0x9D, - 0x9D, - 0x9D, - 0x75, - 0x9E, - 0x90, - 0x88, - 0x75, - 0x93, - 0x77, - 0x7E, - 0x77, - 0x77, - 0x74, - 0x72, - 0x74, - 0x83, - 0x5C, - 0x73, - 0x46, - 0x64, - 0x56, - 0x4B, - 0x56, - 0x67, - 0x4A, - 0x4F, - 0x59, - 0x55, - 0x35, - 0x4E, - 0x52, - 0x50, - 0x63, - 0x63, - 0x54, - 0x54, - 0x44, - 0x54, - 0x02, - 0x9B, - 0x04, - 0xFE, - 0x00, - 0x21, - 0xFD, - 0xFE, - 0xFE, - 0xFB, - 0xFE, - 0xFD, - 0xF9, - 0xFD, - 0xFD, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xE4, - 0xFB, - 0xF9, - 0xE4, - 0xF9, - 0xE3, - 0xF9, - 0xE3, - 0xF9, - 0xE4, - 0xE4, - 0xF0, - 0xE3, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x0A, - 0xE4, - 0x01, - 0xC8, - 0x01, - 0xF0, - 0x04, - 0xE4, - 0x00, - 0x1A, - 0xCE, - 0xE4, - 0xE4, - 0xE4, - 0xCE, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xF9, - 0xF0, - 0xF0, - 0xF9, - 0xEC, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x05, - 0x80, - 0x6D, - 0x78, - 0x78, - 0x7F, - 0x00, - 0x06, - 0x78, - 0x00, - 0x1D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x78, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x8D, - 0x76, - 0x7D, - 0x8D, - 0x7D, - 0x8D, - 0x7D, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0xA5, - 0x8D, - 0x00, - 0x04, - 0x9A, - 0x00, - 0x56, - 0xAF, - 0x86, - 0x5D, - 0x5B, - 0x35, - 0x1B, - 0x29, - 0x1E, - 0x4A, - 0x39, - 0x39, - 0x4A, - 0x29, - 0x1E, - 0x14, - 0x09, - 0x22, - 0x1E, - 0x19, - 0x4A, - 0x35, - 0x4D, - 0x1E, - 0x4D, - 0x39, - 0x5B, - 0x10, - 0x1E, - 0x16, - 0x1B, - 0x1C, - 0x16, - 0x4A, - 0x1C, - 0x22, - 0x32, - 0x14, - 0x09, - 0x10, - 0x1B, - 0x10, - 0x10, - 0x29, - 0x22, - 0x14, - 0x11, - 0x65, - 0x71, - 0x09, - 0x14, - 0x0E, - 0x09, - 0x16, - 0x3C, - 0x5D, - 0x2A, - 0x09, - 0x0B, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x09, - 0x11, - 0x09, - 0x0F, - 0x19, - 0x0B, - 0x0E, - 0x0B, - 0x05, - 0x4F, - 0x2A, - 0x5B, - 0x29, - 0x79, - 0x1E, - 0x4A, - 0x5B, - 0x71, - 0xA3, - 0xAF, - 0x96, - 0x89, - 0x8D, - 0xA9, - 0x04, - 0xFC, - 0x00, - 0x8B, - 0xF1, - 0xBD, - 0xA8, - 0xA8, - 0x8D, - 0x78, - 0x80, - 0x89, - 0xF1, - 0xF1, - 0xE8, - 0xF1, - 0xA8, - 0xC0, - 0xA8, - 0x6F, - 0x6F, - 0xA9, - 0xD0, - 0xFC, - 0xD0, - 0xA9, - 0xFC, - 0xFF, - 0xD0, - 0x89, - 0xF1, - 0xD0, - 0xA9, - 0x62, - 0x89, - 0xD0, - 0xC0, - 0x96, - 0x6F, - 0xF1, - 0x6F, - 0x39, - 0x11, - 0x10, - 0x1E, - 0x16, - 0x10, - 0x16, - 0x10, - 0x0E, - 0x1E, - 0x1E, - 0x1F, - 0x4B, - 0x0F, - 0x12, - 0x0E, - 0x0F, - 0x0B, - 0x0F, - 0x0F, - 0x0B, - 0x0D, - 0x15, - 0x15, - 0x46, - 0x92, - 0x91, - 0x9E, - 0x9D, - 0x9D, - 0x9D, - 0x6E, - 0x90, - 0x8B, - 0x93, - 0x93, - 0x91, - 0x7E, - 0x88, - 0x72, - 0x88, - 0x72, - 0x72, - 0x68, - 0x83, - 0x5C, - 0x69, - 0x4B, - 0x5C, - 0x56, - 0x4B, - 0x67, - 0x2A, - 0x4A, - 0x4F, - 0x65, - 0x65, - 0x55, - 0x55, - 0x59, - 0x59, - 0x59, - 0x58, - 0x54, - 0x50, - 0x42, - 0x5F, - 0x07, - 0x33, - 0xFE, - 0xFD, - 0xFE, - 0xFD, - 0xFD, - 0xFE, - 0xFD, - 0xFD, - 0xFB, - 0xFD, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xF9, - 0xFB, - 0xF9, - 0xFB, - 0xFB, - 0xF9, - 0xFB, - 0xF9, - 0xFB, - 0xF0, - 0xE3, - 0xF9, - 0xE3, - 0xF9, - 0xF9, - 0xE3, - 0xF9, - 0xE4, - 0xF9, - 0x00, - 0x0B, - 0xE4, - 0x01, - 0xF0, - 0x04, - 0xE4, - 0x00, - 0x05, - 0xD4, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x09, - 0xE4, - 0x00, - 0x09, - 0xF0, - 0xE4, - 0xF0, - 0xEC, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x04, - 0xF9, - 0xEC, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x12, - 0x78, - 0x80, - 0x78, - 0x78, - 0x78, - 0x80, - 0x78, - 0x80, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x78, - 0x7F, - 0x78, - 0x76, - 0x7F, - 0x04, - 0x7D, - 0x00, - 0x0B, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x8D, - 0x7D, - 0x7D, - 0x00, - 0x06, - 0x8D, - 0x00, - 0x2E, - 0x9A, - 0x97, - 0x9A, - 0x9A, - 0xAF, - 0xAF, - 0x86, - 0x71, - 0x5B, - 0x3C, - 0x10, - 0x10, - 0x29, - 0x29, - 0x2A, - 0x5B, - 0x5B, - 0x76, - 0x10, - 0x1E, - 0x35, - 0x35, - 0x0E, - 0x2A, - 0x39, - 0x4A, - 0x2A, - 0x4A, - 0x4D, - 0x4A, - 0x79, - 0x10, - 0x35, - 0x16, - 0x29, - 0x1E, - 0x35, - 0x14, - 0x1C, - 0x32, - 0x2A, - 0x22, - 0x0E, - 0x09, - 0x10, - 0x0E, - 0x04, - 0x10, - 0x00, - 0xB1, - 0x2A, - 0x7B, - 0x71, - 0x2A, - 0x16, - 0x14, - 0x0E, - 0x09, - 0x11, - 0x5B, - 0x2A, - 0x05, - 0x0E, - 0x06, - 0x09, - 0x09, - 0x0F, - 0x0B, - 0x09, - 0x11, - 0x0E, - 0x0E, - 0x0F, - 0x0F, - 0x06, - 0x05, - 0x4F, - 0x29, - 0x10, - 0x4A, - 0x1B, - 0x6C, - 0x29, - 0x71, - 0xA8, - 0x86, - 0x89, - 0x7A, - 0xA8, - 0xF1, - 0xA8, - 0xF1, - 0xF1, - 0xF1, - 0xFC, - 0x89, - 0x8D, - 0x6D, - 0x7F, - 0x62, - 0xAF, - 0x89, - 0xBD, - 0xC0, - 0xD0, - 0xA8, - 0x86, - 0x86, - 0xBD, - 0xC0, - 0x6F, - 0x6F, - 0x89, - 0xBD, - 0xFC, - 0xF1, - 0x89, - 0xFF, - 0xF1, - 0xD0, - 0xA9, - 0xD0, - 0xFC, - 0xD0, - 0xA9, - 0x6D, - 0xC0, - 0xA9, - 0x96, - 0x7A, - 0x96, - 0xA9, - 0x6F, - 0x62, - 0x09, - 0x1E, - 0x1B, - 0x1E, - 0x16, - 0x16, - 0x10, - 0x0E, - 0x4C, - 0x24, - 0x4C, - 0x11, - 0x0E, - 0x0E, - 0x0F, - 0x14, - 0x0F, - 0x0A, - 0x12, - 0x15, - 0x0D, - 0x24, - 0x51, - 0x92, - 0xA0, - 0x9D, - 0x9D, - 0x8B, - 0x7C, - 0x9D, - 0xB7, - 0xAD, - 0x8B, - 0x8B, - 0x75, - 0x88, - 0x88, - 0x92, - 0x87, - 0x74, - 0x68, - 0x83, - 0x5C, - 0x83, - 0x4B, - 0x64, - 0x56, - 0x56, - 0x67, - 0x4C, - 0x65, - 0x4F, - 0x52, - 0x59, - 0x23, - 0x52, - 0x59, - 0x44, - 0x53, - 0x5A, - 0x47, - 0x50, - 0x48, - 0x5F, - 0x07, - 0x07, - 0x67, - 0xFE, - 0xFD, - 0xFD, - 0xFE, - 0xFE, - 0xFB, - 0xFD, - 0xFD, - 0xF9, - 0xFD, - 0xFB, - 0xFD, - 0xFB, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xF9, - 0xFB, - 0xE4, - 0xE3, - 0xFB, - 0xE3, - 0xE3, - 0xE3, - 0xF9, - 0x00, - 0x04, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0xE3, - 0xE4, - 0xE3, - 0x0A, - 0xE4, - 0x00, - 0x24, - 0xC3, - 0xE4, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xC8, - 0xE4, - 0xE4, - 0xF0, - 0xC3, - 0xE4, - 0xC8, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0xEC, - 0xE4, - 0xF0, - 0xEC, - 0xF0, - 0xEC, - 0xF0, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x78, - 0x78, - 0x78, - 0x80, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x7D, - 0x78, - 0x7F, - 0x7D, - 0x78, - 0x7D, - 0x7D, - 0x8A, - 0x7F, - 0x7D, - 0x7D, - 0x8D, - 0x7F, - 0x7D, - 0x8D, - 0x8A, - 0x8D, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xA5, - 0x9A, - 0xAF, - 0x86, - 0x5B, - 0x4E, - 0x4E, - 0x1B, - 0x1B, - 0x29, - 0x1B, - 0x5B, - 0x35, - 0x62, - 0x5B, - 0x16, - 0x2A, - 0x35, - 0x39, - 0x2A, - 0x4A, - 0x2A, - 0x4A, - 0x35, - 0x6C, - 0x4E, - 0x4D, - 0x6C, - 0x1B, - 0x35, - 0x16, - 0x1E, - 0x16, - 0x22, - 0x10, - 0x14, - 0x4A, - 0x32, - 0x1F, - 0x10, - 0x05, - 0x0E, - 0x09, - 0x10, - 0x0E, - 0x09, - 0x1E, - 0x16, - 0x7B, - 0x5D, - 0x5D, - 0x0E, - 0x1C, - 0x09, - 0x09, - 0x10, - 0x86, - 0x29, - 0x0B, - 0x05, - 0x2F, - 0x05, - 0x0B, - 0x0F, - 0x09, - 0x0F, - 0x0E, - 0x11, - 0x19, - 0x0E, - 0x09, - 0x0B, - 0x05, - 0x05, - 0x1E, - 0x1C, - 0x16, - 0x1B, - 0x35, - 0x39, - 0x96, - 0x7A, - 0x6F, - 0x7A, - 0xAF, - 0xBD, - 0xD0, - 0x96, - 0x97, - 0x89, - 0x7A, - 0x6D, - 0x60, - 0x89, - 0xBD, - 0x6D, - 0xA9, - 0xA9, - 0x89, - 0xA9, - 0x86, - 0x7A, - 0x86, - 0x86, - 0x89, - 0xC0, - 0xBD, - 0x62, - 0x89, - 0x6F, - 0x7A, - 0xFC, - 0xF1, - 0xA9, - 0xD0, - 0xFC, - 0xF1, - 0xA9, - 0x89, - 0xF1, - 0xFF, - 0xD0, - 0x89, - 0x6F, - 0xF1, - 0xBD, - 0x6F, - 0x62, - 0xD0, - 0x6F, - 0x62, - 0x3C, - 0x16, - 0x1B, - 0x10, - 0x1C, - 0x16, - 0x1E, - 0x4C, - 0x12, - 0x09, - 0x11, - 0x0F, - 0x0E, - 0x0F, - 0x0E, - 0x14, - 0x0B, - 0x19, - 0x12, - 0x0D, - 0x0D, - 0x46, - 0x74, - 0x87, - 0x9E, - 0x90, - 0x85, - 0x8B, - 0x9D, - 0x9D, - 0x8B, - 0x8B, - 0x8B, - 0x7C, - 0x90, - 0x8B, - 0x91, - 0x92, - 0x72, - 0x83, - 0x83, - 0x74, - 0x83, - 0x4B, - 0x69, - 0x56, - 0x4B, - 0x70, - 0x57, - 0x52, - 0x2F, - 0x4E, - 0x63, - 0x40, - 0x52, - 0x52, - 0x59, - 0x3F, - 0x42, - 0x48, - 0x48, - 0x3D, - 0x53, - 0x23, - 0x02, - 0x07, - 0xFE, - 0xFD, - 0xFE, - 0x04, - 0xFD, - 0x00, - 0x4A, - 0xFB, - 0xFB, - 0xFD, - 0xFB, - 0xFB, - 0xFB, - 0xFD, - 0xF9, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xE3, - 0xFB, - 0xFB, - 0xE4, - 0xE4, - 0xFB, - 0xE3, - 0xE3, - 0xE4, - 0xFB, - 0xE3, - 0xF9, - 0xD9, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xE4, - 0xCE, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xCE, - 0xCE, - 0xE4, - 0xE4, - 0xF0, - 0xE0, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF9, - 0xF0, - 0xF0, - 0xF0, - 0xF9, - 0xEC, - 0xF0, - 0xF0, - 0xF0, - 0xF9, - 0xEC, - 0x00, - 0x00, - 0x00, - 0x21, - 0x78, - 0x80, - 0x80, - 0x78, - 0x78, - 0x80, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x7D, - 0x78, - 0x7F, - 0x76, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x8A, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x00, - 0x06, - 0x8D, - 0x00, - 0xC8, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0xA5, - 0xAF, - 0x86, - 0x4E, - 0x5B, - 0x71, - 0x22, - 0x0E, - 0x2A, - 0x2A, - 0x5B, - 0x39, - 0x6C, - 0x35, - 0x29, - 0x19, - 0x76, - 0x4A, - 0x14, - 0x4D, - 0x4A, - 0x39, - 0x5B, - 0x4E, - 0x16, - 0x5B, - 0x1E, - 0x22, - 0x29, - 0x14, - 0x4E, - 0x1E, - 0x22, - 0x29, - 0x22, - 0x39, - 0x14, - 0x11, - 0x14, - 0x1C, - 0x04, - 0x22, - 0x1B, - 0x09, - 0x09, - 0x09, - 0x14, - 0x5D, - 0x7B, - 0x7B, - 0x39, - 0x39, - 0x0B, - 0x0E, - 0x03, - 0xA8, - 0x5D, - 0x12, - 0x09, - 0x09, - 0x09, - 0x0B, - 0x0E, - 0x09, - 0x0F, - 0x11, - 0x2F, - 0x0B, - 0x0E, - 0x0B, - 0x05, - 0x03, - 0x11, - 0x29, - 0x1E, - 0x39, - 0x4A, - 0x32, - 0xA9, - 0x6D, - 0x62, - 0x60, - 0xA5, - 0x97, - 0xBD, - 0x7A, - 0xAF, - 0xC0, - 0xD0, - 0xFC, - 0xE8, - 0xF1, - 0xBD, - 0xAF, - 0xBD, - 0x89, - 0xC0, - 0x7A, - 0xA8, - 0x7A, - 0x6F, - 0x6F, - 0x62, - 0x96, - 0xA8, - 0xA8, - 0x7A, - 0xA9, - 0x62, - 0x86, - 0xF1, - 0xFC, - 0xA9, - 0xD0, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0xD0, - 0xFC, - 0xA9, - 0xA9, - 0x96, - 0xFC, - 0xBD, - 0x6F, - 0x86, - 0xC0, - 0x6F, - 0x5B, - 0x16, - 0x1B, - 0x32, - 0x1C, - 0x1E, - 0x32, - 0x11, - 0x0E, - 0x14, - 0x10, - 0x10, - 0x14, - 0x11, - 0x10, - 0x11, - 0x0F, - 0x0F, - 0x2D, - 0x24, - 0x24, - 0x46, - 0x75, - 0x75, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x8B, - 0x7C, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x93, - 0x91, - 0x87, - 0x92, - 0x83, - 0x83, - 0x69, - 0x5C, - 0x5C, - 0x56, - 0x4B, - 0x56, - 0x67, - 0x60, - 0x3C, - 0x5B, - 0x59, - 0x40, - 0x52, - 0x5D, - 0x52, - 0x38, - 0x42, - 0x42, - 0x44, - 0x20, - 0x44, - 0x23, - 0x02, - 0x02, - 0x7B, - 0x07, - 0xFD, - 0x01, - 0xFB, - 0x01, - 0xFD, - 0x04, - 0xFB, - 0x00, - 0x1A, - 0xD9, - 0xFB, - 0xFB, - 0xE3, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xE3, - 0xE3, - 0xFB, - 0xE4, - 0xFB, - 0xE3, - 0xE3, - 0xE4, - 0xFB, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0x04, - 0xE4, - 0x00, - 0x0F, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xC3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xC3, - 0xE4, - 0xC8, - 0x00, - 0x06, - 0xE4, - 0x00, - 0x08, - 0xF0, - 0xE0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE0, - 0xE4, - 0x04, - 0xF0, - 0x00, - 0x05, - 0xF9, - 0xF0, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCB, - 0x76, - 0x78, - 0x78, - 0x78, - 0x80, - 0x78, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x7F, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x8D, - 0x8D, - 0x8D, - 0x7F, - 0x8D, - 0x7F, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8D, - 0x9A, - 0x97, - 0x9A, - 0xAF, - 0x96, - 0x5D, - 0x5D, - 0x6C, - 0x29, - 0x1B, - 0x35, - 0x29, - 0x4A, - 0x4D, - 0x4A, - 0x5B, - 0x14, - 0x16, - 0x1E, - 0x5B, - 0x1E, - 0x4A, - 0x1C, - 0x1E, - 0x6C, - 0x10, - 0x4D, - 0x16, - 0x22, - 0x1E, - 0x16, - 0x29, - 0x4E, - 0x14, - 0x1E, - 0x10, - 0x16, - 0x1E, - 0x5B, - 0x1C, - 0x19, - 0x1F, - 0x2A, - 0x0A, - 0x10, - 0x10, - 0x10, - 0x05, - 0x0E, - 0x0B, - 0x0E, - 0x4A, - 0x4A, - 0x35, - 0x4E, - 0x39, - 0x05, - 0x0B, - 0xA3, - 0x7B, - 0x10, - 0x1F, - 0x14, - 0x14, - 0x10, - 0x16, - 0x11, - 0x14, - 0x11, - 0x05, - 0x14, - 0x1F, - 0x14, - 0x0E, - 0x0B, - 0x29, - 0x10, - 0x39, - 0x4A, - 0x2A, - 0x89, - 0x8A, - 0x60, - 0x6D, - 0xA5, - 0x89, - 0x8A, - 0x89, - 0xAF, - 0x89, - 0xF1, - 0xC0, - 0xC0, - 0xE8, - 0xD0, - 0xFC, - 0xFC, - 0xFC, - 0xD0, - 0xD0, - 0x89, - 0xA8, - 0x6F, - 0x6F, - 0x62, - 0x62, - 0x96, - 0xBD, - 0xA9, - 0x86, - 0xA8, - 0x62, - 0x89, - 0xF1, - 0xD0, - 0xA9, - 0xFC, - 0xD0, - 0xFF, - 0xFF, - 0xA9, - 0xD0, - 0xD0, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0x96, - 0xFC, - 0x89, - 0x6F, - 0x7A, - 0x86, - 0x6F, - 0x1C, - 0x39, - 0x32, - 0x11, - 0x1F, - 0x0E, - 0x11, - 0x0E, - 0x1C, - 0x1C, - 0x1C, - 0x2A, - 0x16, - 0x1C, - 0x14, - 0x11, - 0x12, - 0x12, - 0x15, - 0x36, - 0x69, - 0x68, - 0x7C, - 0x90, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x7C, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x11, - 0x9D, - 0x9E, - 0x88, - 0x92, - 0x74, - 0x83, - 0x83, - 0x69, - 0x64, - 0x64, - 0x56, - 0x56, - 0x64, - 0x1F, - 0x4F, - 0x70, - 0x55, - 0x00, - 0x04, - 0x52, - 0x00, - 0x0B, - 0x48, - 0x42, - 0x3D, - 0x3A, - 0x40, - 0x20, - 0x44, - 0x02, - 0x02, - 0x40, - 0xFE, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x05, - 0xFB, - 0xFD, - 0xFB, - 0xFB, - 0xFD, - 0x00, - 0x09, - 0xFB, - 0x00, - 0x06, - 0xD9, - 0xE3, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0x05, - 0xE3, - 0x01, - 0xE4, - 0x0C, - 0xE3, - 0x00, - 0x07, - 0xC3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xF0, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x04, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0x0C, - 0xE4, - 0x00, - 0x0B, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xE0, - 0xE4, - 0xEC, - 0xF0, - 0xF9, - 0xE4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x78, - 0x80, - 0x80, - 0x78, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x78, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7D, - 0x7F, - 0x7D, - 0x8D, - 0x78, - 0x7D, - 0x8A, - 0x7F, - 0x8D, - 0x8D, - 0x7F, - 0x00, - 0x04, - 0x8D, - 0x00, - 0xC9, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0x86, - 0x86, - 0x5B, - 0x5D, - 0x29, - 0x29, - 0x4A, - 0x35, - 0x4D, - 0x2A, - 0x62, - 0x1E, - 0x1E, - 0x14, - 0x1C, - 0x1E, - 0x2A, - 0x16, - 0x1E, - 0x4A, - 0x2A, - 0x14, - 0x2A, - 0x14, - 0x2A, - 0x1B, - 0x4A, - 0x2A, - 0x35, - 0x35, - 0x4A, - 0x16, - 0x22, - 0x3C, - 0x4A, - 0x1E, - 0x1C, - 0x0F, - 0x1B, - 0x14, - 0x09, - 0x10, - 0x0E, - 0x09, - 0x0B, - 0x09, - 0x39, - 0x14, - 0x11, - 0x1C, - 0x11, - 0x1C, - 0x11, - 0x05, - 0x2A, - 0x62, - 0x4A, - 0x29, - 0x14, - 0x14, - 0x10, - 0x1C, - 0x19, - 0x22, - 0x09, - 0x0E, - 0x09, - 0x09, - 0x06, - 0x06, - 0x22, - 0x0F, - 0x06, - 0x4A, - 0x10, - 0x9A, - 0x6D, - 0x6D, - 0x7A, - 0x6D, - 0xA9, - 0xBD, - 0xE8, - 0xFF, - 0xE8, - 0xBE, - 0xD0, - 0x96, - 0xA3, - 0xBE, - 0xFC, - 0xFC, - 0xD0, - 0xC0, - 0xF1, - 0xC0, - 0xBD, - 0x96, - 0x62, - 0x96, - 0x7A, - 0x6D, - 0xA8, - 0x96, - 0xC0, - 0x96, - 0xC0, - 0x96, - 0x7A, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xA9, - 0xD0, - 0xFF, - 0xFC, - 0xA9, - 0xF1, - 0xFC, - 0xD0, - 0xFC, - 0xBD, - 0x89, - 0xC0, - 0xA9, - 0x6F, - 0xA9, - 0x86, - 0x6F, - 0x39, - 0x5B, - 0x32, - 0x09, - 0x11, - 0x1C, - 0x0E, - 0x11, - 0x11, - 0x16, - 0x1E, - 0x16, - 0x2A, - 0x29, - 0x1C, - 0x0F, - 0x0A, - 0x26, - 0x36, - 0x46, - 0x68, - 0x88, - 0x90, - 0xA4, - 0xAD, - 0xAD, - 0x90, - 0x90, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x9D, - 0x93, - 0x91, - 0x92, - 0x87, - 0x83, - 0x69, - 0x69, - 0x64, - 0x56, - 0x5C, - 0x56, - 0x56, - 0x67, - 0x57, - 0x67, - 0x52, - 0x52, - 0x52, - 0x59, - 0x48, - 0x42, - 0x3D, - 0x44, - 0x44, - 0x23, - 0x54, - 0x07, - 0x01, - 0x07, - 0xA3, - 0xFD, - 0xFE, - 0x00, - 0x04, - 0xFD, - 0x09, - 0xFB, - 0x00, - 0x2B, - 0xF5, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xFB, - 0xD9, - 0xD9, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xD9, - 0xFB, - 0xD9, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xD9, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xC3, - 0xE4, - 0xE4, - 0xD4, - 0xC3, - 0xE4, - 0xD9, - 0xE4, - 0xE4, - 0xD4, - 0xC3, - 0xE4, - 0xE4, - 0xC3, - 0x00, - 0x0A, - 0xE4, - 0x01, - 0xE3, - 0x01, - 0xF9, - 0x04, - 0xE4, - 0x00, - 0x03, - 0xF0, - 0xF0, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0x01, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x6D, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x7F, - 0x8A, - 0x7D, - 0x8A, - 0x78, - 0x8D, - 0x7F, - 0x7F, - 0x8D, - 0x7D, - 0x8A, - 0x9A, - 0x7D, - 0x8D, - 0x8A, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0xAF, - 0x71, - 0x65, - 0x4D, - 0x4E, - 0x3C, - 0x1B, - 0x4E, - 0x16, - 0x5B, - 0x35, - 0x76, - 0x29, - 0x16, - 0x29, - 0x1C, - 0x1E, - 0x29, - 0x1C, - 0x1B, - 0x1C, - 0x1E, - 0x14, - 0x39, - 0x16, - 0x4D, - 0x4E, - 0x4D, - 0x29, - 0x35, - 0x1B, - 0x3C, - 0x1E, - 0x10, - 0x35, - 0x35, - 0x39, - 0x4D, - 0x16, - 0x14, - 0x2A, - 0x05, - 0x09, - 0x10, - 0x09, - 0x14, - 0x05, - 0x1E, - 0x1B, - 0x09, - 0x0F, - 0x2A, - 0x0F, - 0x0F, - 0x1C, - 0x0F, - 0xA3, - 0x29, - 0x1E, - 0x35, - 0x10, - 0x29, - 0x1E, - 0x5D, - 0x35, - 0x14, - 0x14, - 0x0E, - 0x09, - 0x09, - 0x05, - 0x0E, - 0x09, - 0x0E, - 0x2A, - 0x7D, - 0x6D, - 0x8A, - 0xA9, - 0xA9, - 0xFC, - 0xE8, - 0xFC, - 0xF1, - 0xFC, - 0xBD, - 0xC0, - 0xC0, - 0x78, - 0xA5, - 0xD0, - 0xC0, - 0xD0, - 0xA8, - 0xD0, - 0xD0, - 0x7A, - 0xD0, - 0xC0, - 0x7A, - 0x86, - 0xC0, - 0x62, - 0xA8, - 0xD0, - 0xA8, - 0x6F, - 0x96, - 0xA9, - 0xA9, - 0x96, - 0xF1, - 0x7A, - 0xD0, - 0xD0, - 0xD0, - 0xFC, - 0xFC, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xFC, - 0xD0, - 0xD0, - 0xBD, - 0xC0, - 0x96, - 0x96, - 0xC0, - 0x6F, - 0x39, - 0x62, - 0x1F, - 0x11, - 0x11, - 0x09, - 0x0F, - 0x0E, - 0x0E, - 0x0E, - 0x11, - 0x1C, - 0x11, - 0x1F, - 0x11, - 0x12, - 0x12, - 0x24, - 0x24, - 0x51, - 0x6E, - 0x85, - 0x90, - 0x9D, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x8B, - 0x90, - 0x90, - 0xA4, - 0x90, - 0x9E, - 0x91, - 0x83, - 0x68, - 0x69, - 0x74, - 0xB6, - 0x51, - 0x5C, - 0x41, - 0x56, - 0x2A, - 0x56, - 0x67, - 0x4E, - 0x59, - 0x59, - 0x5A, - 0x3D, - 0x3D, - 0x44, - 0x40, - 0x20, - 0x23, - 0x42, - 0x23, - 0x02, - 0x00, - 0x5F, - 0x7B, - 0xE4, - 0xFB, - 0xFD, - 0xFB, - 0xFE, - 0xF8, - 0x05, - 0xFB, - 0x00, - 0x13, - 0xF5, - 0xFB, - 0xD3, - 0xFB, - 0xF5, - 0xFB, - 0xD3, - 0xF5, - 0xD9, - 0xFB, - 0xD3, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xD9, - 0xFB, - 0x00, - 0x08, - 0xE3, - 0x00, - 0x2C, - 0xD9, - 0xE4, - 0xD9, - 0xD9, - 0xE4, - 0xD4, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xC3, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xCE, - 0xCE, - 0xE3, - 0xD4, - 0xF0, - 0xE4, - 0xE4, - 0xE0, - 0xF0, - 0xE4, - 0xF9, - 0xE4, - 0xE4, - 0xF9, - 0xF0, - 0xF0, - 0xE0, - 0xF0, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x80, - 0x80, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x6D, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x00, - 0x04, - 0x7F, - 0x00, - 0xDD, - 0x7D, - 0x80, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0x8D, - 0x8A, - 0x7D, - 0x8D, - 0x7F, - 0x7F, - 0x8D, - 0x8A, - 0x7F, - 0x8D, - 0x8D, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0xA5, - 0x8D, - 0x8D, - 0x97, - 0x6F, - 0x5B, - 0x5D, - 0x4E, - 0x4E, - 0x29, - 0x35, - 0x39, - 0x60, - 0x5B, - 0x39, - 0x1E, - 0x1E, - 0x1E, - 0x1B, - 0x35, - 0x35, - 0x1B, - 0x09, - 0x14, - 0x14, - 0x11, - 0x5B, - 0x19, - 0x16, - 0x2A, - 0x4A, - 0x2A, - 0x1C, - 0x3C, - 0x29, - 0x10, - 0x35, - 0x1E, - 0x4E, - 0x16, - 0x4A, - 0x1B, - 0x0E, - 0x29, - 0x05, - 0x03, - 0x0E, - 0x09, - 0x05, - 0x06, - 0x0F, - 0x0B, - 0x2A, - 0x0B, - 0x0F, - 0x0E, - 0x11, - 0x19, - 0x09, - 0xA8, - 0x5D, - 0x35, - 0x16, - 0x29, - 0x09, - 0x1B, - 0x09, - 0x0E, - 0x0E, - 0x10, - 0x0E, - 0x09, - 0x09, - 0x11, - 0x0E, - 0x1C, - 0x14, - 0x7F, - 0xAF, - 0xA9, - 0xD0, - 0xF1, - 0xFC, - 0xE8, - 0xC0, - 0xD0, - 0xC0, - 0xD0, - 0xA8, - 0x89, - 0x7A, - 0xAF, - 0xA8, - 0xD0, - 0xC0, - 0xA8, - 0x89, - 0xA9, - 0x89, - 0xA8, - 0xD0, - 0xA8, - 0x86, - 0x96, - 0xC0, - 0x86, - 0xC0, - 0xF1, - 0xFC, - 0x86, - 0x96, - 0xBD, - 0xBD, - 0x89, - 0xFC, - 0x89, - 0xA9, - 0xF1, - 0xA9, - 0xD0, - 0xFF, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0xFF, - 0xF1, - 0xF1, - 0xD0, - 0xF1, - 0xD0, - 0x6F, - 0xC0, - 0xA9, - 0x5B, - 0x39, - 0x1C, - 0x0F, - 0x11, - 0x11, - 0x16, - 0x1C, - 0x11, - 0x0E, - 0x0E, - 0x11, - 0x11, - 0x19, - 0x24, - 0x26, - 0x15, - 0x15, - 0x46, - 0x51, - 0x7C, - 0x8B, - 0x90, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0xAD, - 0xAD, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x93, - 0xA0, - 0x87, - 0x83, - 0x92, - 0x83, - 0x83, - 0x73, - 0x69, - 0x41, - 0x64, - 0x28, - 0x57, - 0x4C, - 0x4F, - 0x4E, - 0x40, - 0x44, - 0x38, - 0x44, - 0x44, - 0x40, - 0x23, - 0x40, - 0x42, - 0x42, - 0x02, - 0x00, - 0x34, - 0x63, - 0x4E, - 0x7B, - 0xB1, - 0x00, - 0x04, - 0xFB, - 0x00, - 0x38, - 0xF5, - 0xFB, - 0xF8, - 0xFD, - 0xFB, - 0xF5, - 0xFB, - 0xF5, - 0xF5, - 0xF2, - 0xFB, - 0xD3, - 0xF5, - 0xF5, - 0xD9, - 0xD9, - 0xF5, - 0xD9, - 0xFB, - 0xD9, - 0xD9, - 0xFB, - 0xD9, - 0xFB, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xC3, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0x04, - 0xE4, - 0x00, - 0x10, - 0xF0, - 0xE3, - 0xE4, - 0xE4, - 0xF0, - 0xE4, - 0xE4, - 0xF9, - 0xE4, - 0xF0, - 0xE0, - 0xF0, - 0xE4, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x00, - 0x01, - 0x78, - 0x01, - 0x78, - 0x09, - 0x80, - 0x01, - 0x78, - 0x06, - 0x7F, - 0x01, - 0x78, - 0x06, - 0x7F, - 0x00, - 0xE3, - 0x78, - 0x7F, - 0x8A, - 0x7F, - 0x7F, - 0x8D, - 0x7F, - 0x8D, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0x8D, - 0x8D, - 0x9A, - 0x8D, - 0x9A, - 0x9A, - 0xA5, - 0x86, - 0x3C, - 0x5B, - 0x5D, - 0x29, - 0x3C, - 0x4D, - 0x4A, - 0x6C, - 0x39, - 0x4D, - 0x29, - 0x29, - 0x1E, - 0x14, - 0x10, - 0x0E, - 0x1E, - 0x14, - 0x11, - 0x29, - 0x1E, - 0x1C, - 0x2A, - 0x19, - 0x1E, - 0x35, - 0x29, - 0x2A, - 0x4A, - 0x14, - 0x10, - 0x1B, - 0x29, - 0x1B, - 0x29, - 0x5D, - 0x2A, - 0x10, - 0x0F, - 0x1C, - 0x03, - 0x00, - 0x0B, - 0x09, - 0x0B, - 0x05, - 0x06, - 0x0B, - 0x0B, - 0x06, - 0x0F, - 0x09, - 0x0B, - 0x09, - 0x5D, - 0x71, - 0x5D, - 0x5D, - 0x29, - 0x4E, - 0x1E, - 0x10, - 0x10, - 0x1C, - 0x04, - 0x16, - 0x16, - 0x1B, - 0x29, - 0x11, - 0x39, - 0xA3, - 0xC0, - 0xF1, - 0xE8, - 0xC0, - 0xC0, - 0xC0, - 0xBD, - 0xF1, - 0xC0, - 0xC0, - 0xC0, - 0x7A, - 0x97, - 0xA8, - 0x89, - 0xD0, - 0x86, - 0x7A, - 0xA9, - 0xF1, - 0xFC, - 0xBD, - 0xD0, - 0x96, - 0x96, - 0xA8, - 0x6F, - 0xA8, - 0x86, - 0x89, - 0x86, - 0xC0, - 0x86, - 0xA8, - 0xFC, - 0xA8, - 0x7A, - 0xFF, - 0xF1, - 0xA9, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xFC, - 0xFF, - 0xA9, - 0xA9, - 0xF1, - 0xFF, - 0xF1, - 0xD0, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xC0, - 0x86, - 0x1C, - 0x11, - 0x0E, - 0x1E, - 0x1E, - 0x1E, - 0x29, - 0x16, - 0x1C, - 0x11, - 0x11, - 0x0F, - 0x26, - 0x24, - 0x41, - 0x15, - 0x24, - 0x46, - 0x6E, - 0x8B, - 0x90, - 0x9D, - 0xAD, - 0xB7, - 0xB7, - 0xB7, - 0xAD, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x91, - 0x88, - 0x83, - 0x77, - 0x74, - 0x83, - 0x69, - 0x64, - 0x69, - 0x56, - 0x70, - 0x3E, - 0x4F, - 0x4E, - 0x55, - 0x3F, - 0x33, - 0x40, - 0x40, - 0x40, - 0x13, - 0x23, - 0x58, - 0x54, - 0x13, - 0x00, - 0x18, - 0x66, - 0x33, - 0x21, - 0x8D, - 0xA5, - 0xFB, - 0xFB, - 0xFB, - 0xF8, - 0xFB, - 0xF8, - 0xFE, - 0xF5, - 0xF5, - 0xF5, - 0xCF, - 0xFB, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x06, - 0xD3, - 0xFB, - 0xF5, - 0xD9, - 0xD9, - 0xF5, - 0x06, - 0xD9, - 0x00, - 0x2A, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xC3, - 0xE3, - 0xC3, - 0xE3, - 0xD4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE3, - 0xF0, - 0x06, - 0xE4, - 0x00, - 0x04, - 0xF0, - 0xE4, - 0xE4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x12, - 0x78, - 0x82, - 0x82, - 0x6D, - 0x80, - 0x78, - 0x78, - 0x80, - 0x78, - 0x80, - 0x78, - 0x80, - 0x80, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x04, - 0x7F, - 0x00, - 0x83, - 0x78, - 0x7D, - 0x7D, - 0x8A, - 0x7F, - 0x7F, - 0x7F, - 0x8A, - 0x7D, - 0x8A, - 0x7F, - 0x8A, - 0x7F, - 0x8D, - 0x8A, - 0x8D, - 0x8D, - 0x8A, - 0x9A, - 0x9B, - 0x8D, - 0x97, - 0x86, - 0x4E, - 0x5D, - 0x5D, - 0x1E, - 0x3C, - 0x4A, - 0x4A, - 0x6C, - 0x10, - 0x4A, - 0x35, - 0x1E, - 0x4A, - 0x14, - 0x10, - 0x4E, - 0x10, - 0x11, - 0x14, - 0x35, - 0x1E, - 0x1C, - 0x14, - 0x1B, - 0x2A, - 0x4A, - 0x39, - 0x5D, - 0x1B, - 0x16, - 0x3C, - 0x1B, - 0x4A, - 0x29, - 0x1E, - 0x5D, - 0x35, - 0x1B, - 0x16, - 0x14, - 0x06, - 0x01, - 0x03, - 0x03, - 0x06, - 0x0B, - 0x06, - 0x03, - 0x05, - 0x05, - 0x0B, - 0x0F, - 0x06, - 0x05, - 0x1F, - 0x86, - 0x5D, - 0x3C, - 0x3C, - 0x65, - 0x1B, - 0x1B, - 0x04, - 0x1B, - 0x29, - 0x1B, - 0x35, - 0x4A, - 0x2A, - 0xA3, - 0xE8, - 0xFC, - 0xE8, - 0xF1, - 0xF1, - 0xC0, - 0xA8, - 0xA8, - 0x97, - 0xA3, - 0xA8, - 0xBE, - 0xD0, - 0xFC, - 0xFC, - 0xA9, - 0x8A, - 0x89, - 0x89, - 0xBD, - 0xC0, - 0xC0, - 0xD0, - 0xF1, - 0xBD, - 0xD0, - 0xE8, - 0xF1, - 0xC0, - 0xC0, - 0x86, - 0xA8, - 0x89, - 0xF1, - 0x86, - 0x86, - 0xD0, - 0xF1, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x2C, - 0xF1, - 0xF1, - 0xFC, - 0xA9, - 0xA9, - 0xFC, - 0xF1, - 0x7A, - 0xA9, - 0xA9, - 0xF1, - 0xA9, - 0xF1, - 0xFC, - 0xA9, - 0x86, - 0xD0, - 0xA9, - 0x1C, - 0x09, - 0x11, - 0x2A, - 0x2A, - 0x1E, - 0x1C, - 0x1C, - 0x0E, - 0x0E, - 0x09, - 0x11, - 0x12, - 0x15, - 0x24, - 0x4B, - 0x36, - 0x61, - 0x88, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0x04, - 0xA4, - 0x00, - 0x42, - 0x9D, - 0x90, - 0x90, - 0xA0, - 0x91, - 0x92, - 0x77, - 0x83, - 0x5C, - 0x69, - 0xA2, - 0x56, - 0x4B, - 0x4C, - 0x4F, - 0x33, - 0x52, - 0x2E, - 0x33, - 0x13, - 0x40, - 0x23, - 0x33, - 0x23, - 0x54, - 0x45, - 0x33, - 0x02, - 0x07, - 0x66, - 0x44, - 0x0C, - 0x23, - 0x7B, - 0x8D, - 0xFE, - 0xF8, - 0xFB, - 0xFD, - 0xFD, - 0xF8, - 0xF8, - 0xFB, - 0xF5, - 0xF8, - 0xF5, - 0xF8, - 0xF8, - 0xFB, - 0xD3, - 0xF5, - 0xF5, - 0xD3, - 0xF5, - 0xD9, - 0xD9, - 0xD3, - 0xFB, - 0xF5, - 0xF5, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xD9, - 0xFB, - 0x05, - 0xD9, - 0x00, - 0x22, - 0xE3, - 0xD4, - 0xD9, - 0xD4, - 0xE3, - 0xE3, - 0xD9, - 0xE3, - 0xE3, - 0xC3, - 0xE3, - 0xD9, - 0xE4, - 0xC3, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xD4, - 0xCE, - 0xE4, - 0xE4, - 0xE0, - 0x04, - 0xE4, - 0x00, - 0x06, - 0xF0, - 0xE4, - 0xF0, - 0xE0, - 0xE4, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x03, - 0x80, - 0x78, - 0x78, - 0x00, - 0x08, - 0x80, - 0x00, - 0xFF, - 0x7F, - 0x7F, - 0x7F, - 0x78, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x7D, - 0x7F, - 0x8A, - 0x7F, - 0x7F, - 0x7D, - 0x8A, - 0x8A, - 0x7D, - 0x8A, - 0x8D, - 0x8A, - 0x8D, - 0x9A, - 0x7F, - 0x8D, - 0x9B, - 0x9A, - 0x8D, - 0x8D, - 0x9A, - 0x9A, - 0x9A, - 0x7B, - 0x5B, - 0x4E, - 0x3C, - 0x29, - 0x1B, - 0x4A, - 0x5B, - 0x6C, - 0x10, - 0x16, - 0x1E, - 0x29, - 0x29, - 0x1B, - 0x1B, - 0x1E, - 0x29, - 0x10, - 0x1C, - 0x5B, - 0x35, - 0x1B, - 0x1C, - 0x1C, - 0x1C, - 0x5B, - 0x22, - 0x5D, - 0x29, - 0x29, - 0x22, - 0x22, - 0x29, - 0x1B, - 0x16, - 0x5D, - 0x4E, - 0x14, - 0x14, - 0x2A, - 0x4A, - 0x10, - 0x03, - 0x03, - 0x05, - 0x03, - 0x06, - 0x03, - 0x0A, - 0x03, - 0x0B, - 0x06, - 0x05, - 0x03, - 0x00, - 0x86, - 0x5D, - 0x4A, - 0x4A, - 0x3C, - 0x1B, - 0x29, - 0x4A, - 0x10, - 0x35, - 0x1C, - 0x39, - 0x6C, - 0xF1, - 0xE8, - 0xFC, - 0xE8, - 0xBD, - 0xF1, - 0xE8, - 0xA8, - 0xE8, - 0xC0, - 0x84, - 0xA8, - 0xC0, - 0xE8, - 0xFC, - 0xA9, - 0xA8, - 0xD0, - 0xBD, - 0xC0, - 0xBD, - 0xD0, - 0xC0, - 0xD0, - 0xD0, - 0xF1, - 0xF1, - 0xBD, - 0xD0, - 0xA8, - 0x86, - 0x86, - 0x7A, - 0x97, - 0x89, - 0xA8, - 0x7A, - 0xA8, - 0x96, - 0xF1, - 0xD0, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xFF, - 0xF1, - 0xFF, - 0xA9, - 0xF1, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0x96, - 0x6F, - 0x96, - 0xA9, - 0x10, - 0x0E, - 0x0E, - 0x16, - 0x16, - 0x1C, - 0x16, - 0x1C, - 0x09, - 0x11, - 0x09, - 0x0F, - 0x12, - 0x24, - 0x4B, - 0x36, - 0x5C, - 0x68, - 0x6E, - 0x85, - 0x8B, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x88, - 0x88, - 0x91, - 0xA0, - 0x69, - 0x74, - 0x74, - 0x83, - 0x36, - 0x69, - 0x64, - 0x4F, - 0x29, - 0x13, - 0x33, - 0x2F, - 0x22, - 0x33, - 0x38, - 0x13, - 0x23, - 0x5F, - 0x5F, - 0x23, - 0x04, - 0x07, - 0x66, - 0x42, - 0x07, - 0x18, - 0x1A, - 0x55, - 0x8D, - 0xFB, - 0xFB, - 0xF8, - 0xFD, - 0xF8, - 0xFD, - 0xFB, - 0xF5, - 0xF5, - 0xFB, - 0xD3, - 0xFB, - 0xF5, - 0xD3, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD3, - 0xF5, - 0xF5, - 0xD9, - 0xD3, - 0xD9, - 0xF5, - 0xD9, - 0x00, - 0x00, - 0x30, - 0xD3, - 0xD9, - 0xD9, - 0xFB, - 0xD9, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xD4, - 0xD9, - 0xE3, - 0xE3, - 0xC3, - 0xE4, - 0xC3, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE3, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE0, - 0x04, - 0xE4, - 0x02, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x03, - 0x80, - 0x9B, - 0x60, - 0x00, - 0x05, - 0x80, - 0x00, - 0x0B, - 0x78, - 0x80, - 0x80, - 0x78, - 0x80, - 0x7F, - 0x80, - 0x78, - 0x7F, - 0x7F, - 0x80, - 0x00, - 0x06, - 0x7F, - 0x00, - 0x40, - 0x8A, - 0x7D, - 0x8A, - 0x7F, - 0x8A, - 0x7D, - 0x7F, - 0x7F, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x9A, - 0x8D, - 0x9A, - 0x8D, - 0x86, - 0x4E, - 0x4E, - 0x4A, - 0x35, - 0x1E, - 0x1E, - 0x29, - 0x5B, - 0x09, - 0x1E, - 0x29, - 0x35, - 0x35, - 0x1B, - 0x29, - 0x3C, - 0x22, - 0x0E, - 0x1E, - 0x39, - 0x1E, - 0x35, - 0x1C, - 0x16, - 0x29, - 0x3C, - 0x2A, - 0x1E, - 0x29, - 0x39, - 0x29, - 0x1B, - 0x16, - 0x22, - 0x10, - 0x5D, - 0x5D, - 0x16, - 0x0E, - 0x2A, - 0x0F, - 0x05, - 0x11, - 0x00, - 0x04, - 0x03, - 0x00, - 0x56, - 0x0A, - 0x00, - 0x03, - 0x03, - 0x03, - 0x00, - 0x03, - 0xA3, - 0xC0, - 0x3C, - 0x2A, - 0x16, - 0x29, - 0x1E, - 0x39, - 0x19, - 0x2A, - 0x2A, - 0xAF, - 0xAF, - 0xC0, - 0xF1, - 0xE8, - 0xD0, - 0xF1, - 0xFC, - 0xA3, - 0xA3, - 0xC0, - 0x7A, - 0x89, - 0xC6, - 0xD0, - 0xA9, - 0xA8, - 0xBD, - 0xD0, - 0xF1, - 0xF1, - 0xA9, - 0xBD, - 0xBD, - 0xC0, - 0xC0, - 0xA9, - 0xF1, - 0xA9, - 0xA8, - 0xF1, - 0x89, - 0x86, - 0x96, - 0xA8, - 0xC0, - 0x96, - 0xA8, - 0x86, - 0x86, - 0x86, - 0x89, - 0xD0, - 0x96, - 0xF1, - 0xA9, - 0xA9, - 0xFF, - 0xD0, - 0xFF, - 0xD0, - 0xA9, - 0xFC, - 0xF1, - 0xD0, - 0xD0, - 0xA9, - 0x89, - 0xF1, - 0xF1, - 0xF1, - 0x86, - 0x62, - 0x96, - 0x09, - 0x09, - 0x0F, - 0x10, - 0x05, - 0x11, - 0x00, - 0x53, - 0x0E, - 0x0F, - 0x0F, - 0x15, - 0x46, - 0x36, - 0x46, - 0x5C, - 0x7E, - 0x91, - 0x9E, - 0x9E, - 0x8B, - 0x93, - 0x9D, - 0x90, - 0xA4, - 0x9D, - 0xA4, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0xA4, - 0xA0, - 0x77, - 0x68, - 0x83, - 0x74, - 0x92, - 0x69, - 0x69, - 0x5C, - 0x67, - 0x82, - 0x07, - 0x33, - 0x22, - 0x55, - 0x13, - 0x52, - 0x13, - 0x23, - 0x42, - 0x58, - 0x20, - 0x07, - 0x08, - 0x66, - 0x42, - 0x13, - 0x07, - 0x0C, - 0x21, - 0x43, - 0x9B, - 0xFD, - 0xF8, - 0xFD, - 0xF8, - 0xF5, - 0xF5, - 0xF5, - 0xF8, - 0xF8, - 0xD3, - 0xF5, - 0xCF, - 0xD3, - 0xF2, - 0xD3, - 0xF5, - 0xD3, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xF5, - 0xD3, - 0x00, - 0x0A, - 0xD9, - 0x00, - 0x0F, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xD9, - 0xD9, - 0xD4, - 0xD4, - 0xE3, - 0xD9, - 0xE3, - 0xE3, - 0xE3, - 0xD4, - 0x00, - 0x05, - 0xE3, - 0x00, - 0x17, - 0xD4, - 0xE3, - 0xC3, - 0xE4, - 0xE3, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xD4, - 0xE4, - 0xE3, - 0xE4, - 0xCE, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xE0, - 0xE4, - 0xF0, - 0xF0, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x80, - 0x00, - 0x0A, - 0x78, - 0x80, - 0x80, - 0x7F, - 0x78, - 0x80, - 0x78, - 0x8A, - 0x7F, - 0x8A, - 0x04, - 0x7F, - 0x00, - 0x32, - 0x80, - 0x7F, - 0x8A, - 0x7F, - 0x8A, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x8D, - 0x9A, - 0x8A, - 0x8D, - 0x9A, - 0x8A, - 0x9B, - 0x8D, - 0xA5, - 0x86, - 0x4A, - 0x5D, - 0x4E, - 0x29, - 0x16, - 0x29, - 0x1E, - 0x5B, - 0x22, - 0x29, - 0x4A, - 0x35, - 0x39, - 0x16, - 0x35, - 0x1E, - 0x16, - 0x10, - 0x4D, - 0x39, - 0x1C, - 0x1E, - 0x3C, - 0x6C, - 0x6C, - 0x35, - 0x29, - 0x3C, - 0x5D, - 0x65, - 0x2A, - 0x04, - 0x10, - 0x00, - 0x1F, - 0x4A, - 0x4A, - 0x1B, - 0x0E, - 0x16, - 0x0F, - 0x0F, - 0x05, - 0x03, - 0x03, - 0x03, - 0x00, - 0x03, - 0x01, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xFF, - 0xE8, - 0x86, - 0x2A, - 0x39, - 0x11, - 0x1C, - 0x32, - 0x62, - 0xA8, - 0x00, - 0x04, - 0xE8, - 0x00, - 0x2A, - 0xD0, - 0xF1, - 0xE8, - 0xF1, - 0xBD, - 0xA8, - 0xA8, - 0x89, - 0xC6, - 0xBD, - 0xD0, - 0xE8, - 0xFC, - 0xFC, - 0xF1, - 0xD0, - 0xFC, - 0x7A, - 0x96, - 0xBD, - 0xC0, - 0xBD, - 0x96, - 0xBD, - 0xC0, - 0xC0, - 0xC0, - 0xAF, - 0x96, - 0xA8, - 0xA8, - 0xA8, - 0xBD, - 0x86, - 0x62, - 0x6F, - 0x7A, - 0xA8, - 0xC0, - 0x89, - 0xF1, - 0xA9, - 0x04, - 0xD0, - 0x00, - 0x26, - 0xFC, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0x89, - 0xA9, - 0xA9, - 0xFC, - 0xA9, - 0x6F, - 0x39, - 0x05, - 0x09, - 0x11, - 0x11, - 0x11, - 0x0E, - 0x0E, - 0x11, - 0x09, - 0x0F, - 0x0D, - 0x15, - 0x68, - 0x15, - 0x5C, - 0x68, - 0x88, - 0x93, - 0x8B, - 0x9E, - 0x9D, - 0x93, - 0x9E, - 0xA4, - 0x05, - 0x9D, - 0x00, - 0x43, - 0x8B, - 0x9D, - 0xA4, - 0x93, - 0x93, - 0x72, - 0x87, - 0x92, - 0x92, - 0x73, - 0xB6, - 0x77, - 0x56, - 0x64, - 0x49, - 0x2F, - 0x22, - 0x52, - 0x33, - 0x33, - 0x13, - 0x23, - 0x54, - 0x58, - 0x23, - 0x13, - 0x08, - 0x45, - 0x5F, - 0x20, - 0x02, - 0x07, - 0x1A, - 0x31, - 0x65, - 0xB1, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0xFB, - 0xF5, - 0xF8, - 0xF5, - 0xF2, - 0xF2, - 0xF2, - 0xD3, - 0xD3, - 0xF5, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD3, - 0xF5, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xF5, - 0xD3, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xE3, - 0x06, - 0xD9, - 0x00, - 0x26, - 0xD4, - 0xD9, - 0xD9, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xC3, - 0xC3, - 0xE3, - 0xE4, - 0xC3, - 0xC3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE3, - 0xE4, - 0xCE, - 0xE3, - 0xE3, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0xE4, - 0x00, - 0x00, - 0x01, - 0x8C, - 0x0B, - 0x80, - 0x00, - 0x07, - 0x78, - 0x80, - 0x78, - 0x80, - 0x7F, - 0x7F, - 0x80, - 0x00, - 0x06, - 0x7F, - 0x00, - 0xED, - 0x8A, - 0x8D, - 0x7F, - 0x7F, - 0x8A, - 0x8A, - 0x8A, - 0x8D, - 0x7F, - 0x7F, - 0x9B, - 0x8D, - 0x8A, - 0x8A, - 0x9A, - 0x9A, - 0x9A, - 0x8D, - 0x9A, - 0x96, - 0x5D, - 0x3C, - 0x5B, - 0x29, - 0x16, - 0x1B, - 0x29, - 0x3C, - 0x2A, - 0x29, - 0x16, - 0x35, - 0x4A, - 0x1B, - 0x1E, - 0x16, - 0x16, - 0x09, - 0x35, - 0x3C, - 0x5D, - 0x86, - 0x7B, - 0x1B, - 0x3C, - 0x29, - 0x1B, - 0x4E, - 0x29, - 0x3C, - 0x29, - 0x1B, - 0x10, - 0x10, - 0x1B, - 0x5D, - 0x29, - 0x10, - 0x0E, - 0x14, - 0x0E, - 0x0B, - 0x06, - 0x03, - 0x01, - 0x03, - 0x00, - 0x03, - 0x03, - 0x03, - 0x00, - 0x06, - 0x06, - 0x09, - 0x03, - 0x16, - 0xE8, - 0xFF, - 0xE8, - 0xC0, - 0x86, - 0x6D, - 0x62, - 0xC0, - 0xF1, - 0xF1, - 0xE8, - 0xE8, - 0xFC, - 0xFC, - 0xFC, - 0xE8, - 0xF1, - 0xC0, - 0xA8, - 0xA5, - 0xC0, - 0xBE, - 0xBD, - 0xF1, - 0xE8, - 0xE8, - 0xFF, - 0xE8, - 0xD0, - 0xF1, - 0xFC, - 0xA9, - 0x89, - 0xBD, - 0xD0, - 0x89, - 0xD0, - 0xBD, - 0x96, - 0xA9, - 0xFC, - 0xA9, - 0x86, - 0xA8, - 0xC0, - 0xF1, - 0xC0, - 0xBD, - 0x6F, - 0x71, - 0xA9, - 0x96, - 0xD0, - 0xA8, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0x89, - 0xFC, - 0xC0, - 0x62, - 0x4A, - 0x09, - 0x11, - 0x1C, - 0x16, - 0x2A, - 0x11, - 0x0E, - 0x09, - 0x0B, - 0x0E, - 0x36, - 0x5C, - 0x24, - 0x74, - 0x68, - 0x68, - 0x88, - 0x93, - 0x7E, - 0x93, - 0x91, - 0x93, - 0x9E, - 0x88, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x93, - 0x9E, - 0xA0, - 0x91, - 0x83, - 0xA2, - 0x69, - 0x69, - 0x5C, - 0x4B, - 0x67, - 0x2A, - 0x55, - 0x33, - 0x40, - 0x40, - 0x23, - 0x3D, - 0x38, - 0x3D, - 0x23, - 0x13, - 0x5F, - 0x5F, - 0x45, - 0x02, - 0x02, - 0x13, - 0x1D, - 0x25, - 0x59, - 0xD3, - 0xF8, - 0xFB, - 0xFB, - 0xF8, - 0xF5, - 0xF8, - 0xF8, - 0xF5, - 0xF8, - 0xD3, - 0xD3, - 0xF8, - 0xF8, - 0xD9, - 0xCF, - 0xF5, - 0xF5, - 0xCF, - 0xCF, - 0xF5, - 0xCF, - 0xF5, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x07, - 0xD9, - 0xD3, - 0xD3, - 0xD9, - 0xD9, - 0xD9, - 0xD3, - 0x00, - 0x0C, - 0xD9, - 0x00, - 0x1D, - 0xD4, - 0xD9, - 0xE3, - 0xD9, - 0xC3, - 0xD4, - 0xD9, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE4, - 0xE3, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xD4, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0x00, - 0x06, - 0xE4, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x04, - 0x80, - 0x01, - 0x82, - 0x01, - 0x6D, - 0x07, - 0x80, - 0x01, - 0x78, - 0x01, - 0x80, - 0x04, - 0x7F, - 0x00, - 0x44, - 0x80, - 0x7F, - 0x8A, - 0x7F, - 0x80, - 0x7F, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x8A, - 0x8A, - 0x8A, - 0x9B, - 0x7F, - 0x8D, - 0x9B, - 0x8D, - 0x8A, - 0x8A, - 0x9A, - 0x8A, - 0x9A, - 0x9A, - 0x7B, - 0x4E, - 0x5D, - 0x71, - 0x35, - 0x29, - 0x29, - 0x35, - 0x16, - 0x5D, - 0x1E, - 0x29, - 0x5B, - 0x3C, - 0x1E, - 0x16, - 0x14, - 0x1E, - 0x10, - 0x4A, - 0x4E, - 0x5D, - 0x5D, - 0x4E, - 0x1B, - 0x3C, - 0x4E, - 0x4E, - 0x1B, - 0x29, - 0x1B, - 0x3C, - 0x1B, - 0x10, - 0x10, - 0x14, - 0x5D, - 0x14, - 0x1B, - 0x0E, - 0x14, - 0x11, - 0x09, - 0x06, - 0x04, - 0x03, - 0x00, - 0xA8, - 0x00, - 0x03, - 0x03, - 0x1C, - 0x0F, - 0x0F, - 0x11, - 0x0B, - 0x39, - 0xFC, - 0xD0, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xF1, - 0xFC, - 0xE8, - 0xFC, - 0xC0, - 0xF1, - 0xF1, - 0xE8, - 0xE8, - 0xD0, - 0xA8, - 0xA8, - 0xC0, - 0xD0, - 0xD8, - 0xF1, - 0xE8, - 0xF1, - 0xE8, - 0xFC, - 0xC0, - 0xD0, - 0xA8, - 0xD0, - 0xFC, - 0xF1, - 0xF1, - 0xC0, - 0xBD, - 0x7A, - 0xA9, - 0xA8, - 0x86, - 0xA9, - 0xFC, - 0xD0, - 0x7A, - 0x86, - 0xA8, - 0x96, - 0xA9, - 0xFC, - 0xA9, - 0x96, - 0x86, - 0x89, - 0xD0, - 0x96, - 0x6F, - 0xF1, - 0x89, - 0xD0, - 0xF1, - 0xA9, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0x6F, - 0x1E, - 0x09, - 0x16, - 0x16, - 0x1E, - 0x10, - 0x11, - 0x0E, - 0x06, - 0x0B, - 0x5E, - 0x69, - 0x72, - 0x83, - 0x72, - 0x77, - 0x93, - 0x9E, - 0x77, - 0x88, - 0x92, - 0x88, - 0x91, - 0x9E, - 0x90, - 0x9D, - 0xA4, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x90, - 0xA4, - 0x88, - 0x88, - 0x91, - 0x83, - 0x68, - 0x36, - 0x69, - 0x69, - 0x64, - 0x49, - 0x3C, - 0x67, - 0x52, - 0x22, - 0x22, - 0x13, - 0x23, - 0x3D, - 0x2E, - 0x23, - 0x23, - 0x38, - 0x5F, - 0x45, - 0x13, - 0x00, - 0x04, - 0x13, - 0x20, - 0x1D, - 0x9A, - 0xF8, - 0xFB, - 0xF8, - 0xF8, - 0xFB, - 0xF8, - 0xF8, - 0xF5, - 0xF8, - 0xD3, - 0xF8, - 0xF8, - 0xF5, - 0xCF, - 0xF8, - 0xD3, - 0xCF, - 0xCF, - 0xCF, - 0xF5, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x08, - 0xF5, - 0xD3, - 0xD3, - 0xF5, - 0xD9, - 0xD3, - 0xD3, - 0xD3, - 0x04, - 0xD9, - 0x01, - 0xD3, - 0x0A, - 0xD9, - 0x00, - 0x21, - 0xE3, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE4, - 0xE3, - 0xE3, - 0xCE, - 0xE4, - 0xE3, - 0xE4, - 0xE3, - 0xE0, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x04, - 0x80, - 0x01, - 0x82, - 0x08, - 0x80, - 0x00, - 0x10, - 0x7F, - 0x80, - 0x80, - 0x80, - 0x7F, - 0x7F, - 0x7F, - 0x8A, - 0x7F, - 0x8A, - 0x80, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x7F, - 0x04, - 0x8A, - 0x00, - 0x44, - 0x80, - 0x7F, - 0x8A, - 0x9B, - 0x8A, - 0x8D, - 0x8A, - 0x8D, - 0x9B, - 0x8D, - 0xA8, - 0x4E, - 0x5D, - 0x5D, - 0x29, - 0x29, - 0x1E, - 0x35, - 0x16, - 0x5B, - 0x2A, - 0x29, - 0x4E, - 0x5D, - 0x16, - 0x16, - 0x29, - 0x2A, - 0x29, - 0x6C, - 0x3C, - 0x3C, - 0x1E, - 0x04, - 0x3C, - 0x35, - 0x4E, - 0x6C, - 0x4E, - 0x5D, - 0x29, - 0x29, - 0x29, - 0x16, - 0x10, - 0x35, - 0x5D, - 0x6C, - 0x16, - 0x10, - 0x1E, - 0x11, - 0x11, - 0x0B, - 0x0F, - 0x03, - 0x01, - 0x03, - 0x03, - 0x03, - 0x0F, - 0x11, - 0x11, - 0x14, - 0x0E, - 0x10, - 0x05, - 0xC0, - 0x06, - 0xFF, - 0x00, - 0x9D, - 0xE8, - 0xFF, - 0xE8, - 0xE8, - 0xF1, - 0xE8, - 0xFC, - 0xC0, - 0xBD, - 0xBE, - 0xBD, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xF1, - 0xD0, - 0xE8, - 0xD0, - 0xD0, - 0xBD, - 0xA8, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xA9, - 0xBD, - 0x89, - 0xA9, - 0x96, - 0xA9, - 0xC0, - 0xBD, - 0xFC, - 0xA8, - 0xA8, - 0xC0, - 0xC0, - 0xC0, - 0xD0, - 0x96, - 0x86, - 0xF1, - 0xA8, - 0xF1, - 0xA9, - 0x7A, - 0xF1, - 0xA9, - 0x89, - 0xFF, - 0xF1, - 0xA9, - 0xFF, - 0xFC, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xD0, - 0xF1, - 0x89, - 0x96, - 0xF1, - 0x7A, - 0x10, - 0x10, - 0x0E, - 0x0E, - 0x09, - 0x09, - 0x0F, - 0x06, - 0x0A, - 0x46, - 0x83, - 0x83, - 0x74, - 0x77, - 0x77, - 0x88, - 0xA0, - 0x72, - 0x87, - 0x7E, - 0x92, - 0x7E, - 0x9E, - 0x88, - 0x93, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0xAD, - 0x90, - 0x9E, - 0x88, - 0xA0, - 0x87, - 0x83, - 0x83, - 0x83, - 0x64, - 0x49, - 0x64, - 0x4C, - 0x65, - 0x35, - 0x4F, - 0x13, - 0x40, - 0x30, - 0x40, - 0x20, - 0x23, - 0x30, - 0x45, - 0x20, - 0x44, - 0x00, - 0x02, - 0x08, - 0x1D, - 0x21, - 0x59, - 0xFB, - 0xF8, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF8, - 0xD3, - 0xF8, - 0xD3, - 0xF8, - 0xD3, - 0xF8, - 0xCF, - 0xCF, - 0xF2, - 0xCF, - 0xF2, - 0xD3, - 0xF2, - 0xD3, - 0xCF, - 0xD3, - 0xF5, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x0A, - 0xD9, - 0xD3, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD9, - 0xD3, - 0x06, - 0xD9, - 0x00, - 0x23, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xE3, - 0xD9, - 0xE3, - 0xE3, - 0xD9, - 0xE4, - 0xD9, - 0xE4, - 0xD9, - 0xD4, - 0xE3, - 0xE3, - 0xE3, - 0xD4, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xE4, - 0xD4, - 0xCE, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x80, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x78, - 0x0A, - 0x80, - 0x00, - 0x20, - 0x7F, - 0x7F, - 0x8A, - 0x80, - 0x80, - 0x7F, - 0x80, - 0x7F, - 0x7F, - 0x8A, - 0x7F, - 0x8A, - 0x7F, - 0x9B, - 0x8A, - 0x7F, - 0x8A, - 0x9B, - 0x8D, - 0x9B, - 0x8A, - 0x8D, - 0x9B, - 0x9A, - 0x9B, - 0x9A, - 0x8A, - 0xA5, - 0xA3, - 0x5B, - 0x5D, - 0x5B, - 0x04, - 0x29, - 0x00, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x1E, - 0x35, - 0x4A, - 0x35, - 0x2A, - 0x1E, - 0x35, - 0x29, - 0x1E, - 0x4A, - 0x29, - 0x29, - 0x4E, - 0x4A, - 0x3C, - 0x5D, - 0x4E, - 0x29, - 0x29, - 0x5D, - 0x29, - 0x5D, - 0x5D, - 0x1B, - 0x10, - 0x4E, - 0x10, - 0x3C, - 0x1E, - 0x16, - 0x0E, - 0x2A, - 0x05, - 0x0B, - 0x06, - 0x03, - 0x00, - 0x03, - 0x03, - 0x06, - 0x0A, - 0x09, - 0x09, - 0x0B, - 0x05, - 0x03, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x94, - 0xFC, - 0xF1, - 0xFC, - 0xD0, - 0xFC, - 0xF1, - 0xBD, - 0xA8, - 0x7A, - 0xA9, - 0xBE, - 0xD0, - 0xFC, - 0xF1, - 0xFC, - 0xC0, - 0xF1, - 0xBE, - 0xC0, - 0xD0, - 0x89, - 0xBD, - 0xBD, - 0x96, - 0x96, - 0xD0, - 0xFC, - 0xFC, - 0xBD, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xD0, - 0xFC, - 0xF1, - 0x96, - 0x7A, - 0x89, - 0x96, - 0xF1, - 0xA8, - 0x7A, - 0xA8, - 0x96, - 0xA8, - 0xD0, - 0x96, - 0xA9, - 0xF1, - 0xA9, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xFC, - 0xF1, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xF1, - 0xC0, - 0x96, - 0x09, - 0x09, - 0x0E, - 0x09, - 0x09, - 0x0B, - 0x06, - 0x0D, - 0x5C, - 0x85, - 0x68, - 0x68, - 0x74, - 0x77, - 0x87, - 0x92, - 0x77, - 0x87, - 0x72, - 0x87, - 0x88, - 0x91, - 0x7E, - 0x93, - 0x9D, - 0x9D, - 0x9D, - 0xA4, - 0x90, - 0x9D, - 0xAD, - 0xAD, - 0x9D, - 0xA4, - 0xA4, - 0xAD, - 0x87, - 0x92, - 0x83, - 0x73, - 0x73, - 0x73, - 0x74, - 0x69, - 0x99, - 0x3E, - 0x4F, - 0x33, - 0x21, - 0x23, - 0x40, - 0x20, - 0x23, - 0x20, - 0x30, - 0x42, - 0x45, - 0x07, - 0x02, - 0x02, - 0x18, - 0x25, - 0x40, - 0x8D, - 0xF2, - 0xF8, - 0xFB, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF2, - 0xCF, - 0xF8, - 0xF8, - 0xCF, - 0xF8, - 0xCF, - 0xF8, - 0xD3, - 0xD1, - 0xF2, - 0x06, - 0xCF, - 0x04, - 0xD3, - 0x01, - 0xF2, - 0x04, - 0xD3, - 0x00, - 0x0C, - 0xD9, - 0xD9, - 0xD3, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0x07, - 0xD9, - 0x00, - 0x1E, - 0xD4, - 0xC3, - 0xD4, - 0xC3, - 0xD9, - 0xD4, - 0xD4, - 0xD4, - 0xD9, - 0xD4, - 0xE3, - 0xD4, - 0xD4, - 0xD9, - 0xE3, - 0xE4, - 0xD9, - 0xD4, - 0xC3, - 0xD9, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE4, - 0xE4, - 0xE4, - 0xE3, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x05, - 0x78, - 0x8C, - 0x6D, - 0x80, - 0x8F, - 0x00, - 0x04, - 0x80, - 0x01, - 0x8C, - 0x05, - 0x80, - 0x00, - 0xF6, - 0x7F, - 0x80, - 0x7F, - 0x80, - 0x7F, - 0x8A, - 0x80, - 0x80, - 0x8A, - 0x80, - 0x9B, - 0x80, - 0x80, - 0x7F, - 0x9B, - 0x8A, - 0x80, - 0x8A, - 0x7F, - 0x7F, - 0x8A, - 0x8A, - 0x8A, - 0x8D, - 0x8A, - 0x8A, - 0x9B, - 0x9A, - 0x9A, - 0x96, - 0x5D, - 0x5D, - 0x65, - 0x3C, - 0x29, - 0x3C, - 0x2A, - 0x1E, - 0x39, - 0x1E, - 0x2A, - 0x6C, - 0x5B, - 0x39, - 0x29, - 0x29, - 0x16, - 0x10, - 0x5D, - 0x5B, - 0x5D, - 0x10, - 0x3C, - 0x35, - 0x4E, - 0x4E, - 0x3C, - 0x5D, - 0x5D, - 0x5D, - 0x5B, - 0x3C, - 0x5D, - 0x5D, - 0x1B, - 0x35, - 0x1B, - 0x10, - 0x3C, - 0x10, - 0x09, - 0x14, - 0x11, - 0x0B, - 0x19, - 0x0B, - 0x06, - 0x03, - 0x03, - 0x06, - 0x06, - 0x03, - 0x06, - 0x06, - 0x03, - 0x11, - 0x6D, - 0x6C, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xFC, - 0xFF, - 0xC0, - 0x96, - 0xF1, - 0xD0, - 0xA9, - 0x7A, - 0xAF, - 0xBE, - 0xD0, - 0xE8, - 0xD0, - 0xF1, - 0xFC, - 0xFC, - 0xBD, - 0xD0, - 0xF1, - 0xF1, - 0xA8, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xD0, - 0xD0, - 0xFF, - 0xA9, - 0xFF, - 0xF1, - 0xD0, - 0xC0, - 0xBD, - 0xD0, - 0x96, - 0xD0, - 0xD0, - 0xC0, - 0xC0, - 0xA8, - 0xFF, - 0xA8, - 0x96, - 0xC0, - 0xA9, - 0x96, - 0xFC, - 0xD0, - 0xA9, - 0xF1, - 0xA9, - 0xA9, - 0xFC, - 0xA9, - 0xA9, - 0xFF, - 0xFC, - 0xBD, - 0xD0, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xFC, - 0xD0, - 0x6F, - 0x05, - 0x19, - 0x11, - 0x12, - 0x0D, - 0x0D, - 0x15, - 0x46, - 0x88, - 0x88, - 0x72, - 0x74, - 0x72, - 0x87, - 0x77, - 0x77, - 0x72, - 0x77, - 0x87, - 0x93, - 0x91, - 0x9E, - 0x93, - 0x9D, - 0xA4, - 0xA4, - 0x9D, - 0x9D, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0x93, - 0xA0, - 0x92, - 0xA0, - 0x7E, - 0x74, - 0xA2, - 0x64, - 0x82, - 0x67, - 0x4A, - 0x4C, - 0x52, - 0x23, - 0x21, - 0x23, - 0x23, - 0x23, - 0x44, - 0x20, - 0x42, - 0x40, - 0x00, - 0x02, - 0x07, - 0x20, - 0x25, - 0x7B, - 0xF8, - 0xF8, - 0xF8, - 0xF2, - 0xF8, - 0xF8, - 0xF2, - 0xD1, - 0xF8, - 0xF8, - 0xF8, - 0xCF, - 0xF8, - 0xCF, - 0xCF, - 0xF8, - 0xCF, - 0xCF, - 0xD1, - 0xD3, - 0xF8, - 0xCF, - 0xF2, - 0xF2, - 0x04, - 0xCF, - 0x08, - 0xD3, - 0x00, - 0x0A, - 0xD9, - 0xD3, - 0xD3, - 0xD3, - 0xD9, - 0xD9, - 0xD3, - 0xCC, - 0xD9, - 0xD3, - 0x0A, - 0xD9, - 0x01, - 0xD4, - 0x01, - 0xE3, - 0x04, - 0xD9, - 0x00, - 0x15, - 0xE3, - 0xD9, - 0xD4, - 0xD9, - 0xE4, - 0xE3, - 0xC3, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE4, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x82, - 0x80, - 0x82, - 0x80, - 0x6D, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x00, - 0x06, - 0x80, - 0x01, - 0x8A, - 0x04, - 0x80, - 0x00, - 0x08, - 0x7F, - 0x8A, - 0x8A, - 0x78, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x04, - 0x8A, - 0x00, - 0x45, - 0x9B, - 0x8A, - 0x8A, - 0x9B, - 0x9B, - 0x8A, - 0x9A, - 0x8D, - 0xA5, - 0x9A, - 0xA3, - 0x5D, - 0x3C, - 0x71, - 0x4E, - 0x29, - 0x35, - 0x29, - 0x29, - 0x16, - 0x16, - 0x29, - 0x5B, - 0x5D, - 0x35, - 0x29, - 0x1E, - 0x35, - 0x16, - 0x2A, - 0x3C, - 0x01, - 0x3C, - 0x1B, - 0x4E, - 0x86, - 0x65, - 0x6C, - 0x5D, - 0x5D, - 0x3C, - 0x5D, - 0x29, - 0x4A, - 0x35, - 0x35, - 0x10, - 0x35, - 0x10, - 0x10, - 0x10, - 0x14, - 0x05, - 0x19, - 0x0F, - 0x19, - 0x0F, - 0x0F, - 0x06, - 0x05, - 0x03, - 0x06, - 0x06, - 0x03, - 0x00, - 0x06, - 0x7F, - 0x86, - 0xE8, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x0F, - 0xFC, - 0xC0, - 0x96, - 0x6F, - 0x7A, - 0x6D, - 0x89, - 0x89, - 0xC0, - 0xD0, - 0xF1, - 0xFC, - 0xE8, - 0xFC, - 0xA8, - 0x00, - 0x04, - 0xFC, - 0x00, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x89, - 0xD0, - 0xA9, - 0xBD, - 0xFC, - 0xD0, - 0xA9, - 0xBD, - 0xD0, - 0xC0, - 0xF1, - 0xFC, - 0xBD, - 0xF1, - 0xF1, - 0xBD, - 0xA8, - 0x96, - 0xFC, - 0xC0, - 0x96, - 0xBD, - 0xC0, - 0x96, - 0xFC, - 0xE8, - 0xA9, - 0xFC, - 0xF1, - 0xA9, - 0xFC, - 0xFC, - 0xA9, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xFF, - 0xA9, - 0xFC, - 0xD0, - 0x39, - 0x0D, - 0x0D, - 0x12, - 0x15, - 0x26, - 0x24, - 0x24, - 0x77, - 0x7E, - 0x68, - 0x72, - 0x72, - 0x77, - 0x83, - 0x74, - 0x7E, - 0x74, - 0x87, - 0x88, - 0x93, - 0x85, - 0x93, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xA4, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x91, - 0x87, - 0x87, - 0x83, - 0x83, - 0xA2, - 0x69, - 0x69, - 0x5C, - 0x64, - 0x4C, - 0x67, - 0x21, - 0x21, - 0x23, - 0x33, - 0x23, - 0x23, - 0x38, - 0x27, - 0x30, - 0x42, - 0x02, - 0x02, - 0x02, - 0x0C, - 0x27, - 0x52, - 0xF8, - 0xFB, - 0xF8, - 0xFB, - 0x00, - 0x06, - 0xF8, - 0x00, - 0x0D, - 0xCF, - 0xCF, - 0xF8, - 0xD1, - 0xD1, - 0xF8, - 0xD1, - 0xCF, - 0xF8, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x05, - 0xF2, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0x00, - 0x05, - 0xD3, - 0x01, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x0C, - 0xCC, - 0xD9, - 0xD9, - 0xD3, - 0xD9, - 0xD9, - 0xCC, - 0xD9, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0x07, - 0xD9, - 0x00, - 0x17, - 0xD4, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xD4, - 0xE3, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xD4, - 0xE3, - 0xE3, - 0xD4, - 0xE4, - 0xD4, - 0xE3, - 0xE4, - 0xD4, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x80, - 0x80, - 0x82, - 0x6D, - 0x82, - 0x8F, - 0x80, - 0x80, - 0x80, - 0x8C, - 0x06, - 0x80, - 0x00, - 0x9E, - 0x7F, - 0x80, - 0x80, - 0x7F, - 0x80, - 0x8A, - 0x7F, - 0x80, - 0x80, - 0x8A, - 0x7F, - 0x80, - 0x7F, - 0x8A, - 0x8A, - 0x7F, - 0x7F, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x9A, - 0x8A, - 0x9B, - 0xA5, - 0x84, - 0x86, - 0x5D, - 0x4E, - 0x71, - 0x4E, - 0x3C, - 0x3C, - 0x29, - 0x16, - 0x14, - 0x16, - 0x39, - 0x29, - 0x5B, - 0x35, - 0x22, - 0x29, - 0x35, - 0x10, - 0x16, - 0x10, - 0x6C, - 0x29, - 0x3C, - 0x6C, - 0x4E, - 0x29, - 0x16, - 0x10, - 0x16, - 0x35, - 0x3C, - 0x1B, - 0x29, - 0x10, - 0x10, - 0x1B, - 0x3C, - 0x10, - 0x29, - 0x10, - 0x0B, - 0x1C, - 0x1C, - 0x14, - 0x0F, - 0x0A, - 0x19, - 0x19, - 0x19, - 0x0A, - 0x0B, - 0x06, - 0x03, - 0x03, - 0x84, - 0xAF, - 0xA9, - 0xBE, - 0x7A, - 0x89, - 0xFF, - 0xFF, - 0xF1, - 0xA9, - 0xA3, - 0x6F, - 0x57, - 0x60, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xE8, - 0xFC, - 0xBD, - 0xFC, - 0xC0, - 0xFC, - 0xD0, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xD0, - 0xD0, - 0xD0, - 0xBD, - 0xA9, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0xBD, - 0xA8, - 0xD0, - 0xBD, - 0xF1, - 0xFC, - 0xA9, - 0xF1, - 0xBD, - 0xBD, - 0xC0, - 0xD0, - 0xF1, - 0x96, - 0xBD, - 0xF1, - 0xA9, - 0xA9, - 0xFF, - 0xA9, - 0xF1, - 0xF1, - 0xFC, - 0xA9, - 0xFC, - 0xA9, - 0xA9, - 0xFF, - 0xF1, - 0xA9, - 0xD0, - 0x89, - 0xF1, - 0xD0, - 0xFC, - 0xA9, - 0x0D, - 0x05, - 0x15, - 0x00, - 0x10, - 0x36, - 0x77, - 0x75, - 0x72, - 0x87, - 0x72, - 0x7E, - 0x7E, - 0x77, - 0x87, - 0x72, - 0x7E, - 0x87, - 0x91, - 0x7C, - 0x93, - 0x04, - 0x9D, - 0x00, - 0x26, - 0xA4, - 0x9D, - 0x9D, - 0x9D, - 0x90, - 0x9D, - 0x90, - 0x8B, - 0x90, - 0x9E, - 0xB4, - 0x92, - 0x92, - 0x74, - 0x83, - 0x83, - 0xB6, - 0x99, - 0x56, - 0x07, - 0x40, - 0x52, - 0x33, - 0x13, - 0x18, - 0x20, - 0x42, - 0x38, - 0x42, - 0x38, - 0x23, - 0x00, - 0x02, - 0x08, - 0x2E, - 0x44, - 0xE3, - 0xFD, - 0x05, - 0xF8, - 0x00, - 0x0F, - 0xD1, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xD1, - 0xF8, - 0xF8, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xF8, - 0x00, - 0x04, - 0xCF, - 0x01, - 0xD1, - 0x06, - 0xCF, - 0x00, - 0x16, - 0xD3, - 0xCF, - 0xD3, - 0xD3, - 0xD3, - 0xCF, - 0xD3, - 0xD3, - 0xD3, - 0xD9, - 0xD3, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0x05, - 0xD9, - 0x00, - 0x19, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xD9, - 0xE3, - 0xC3, - 0xD4, - 0xD9, - 0xE4, - 0xC3, - 0xD4, - 0xC3, - 0xE3, - 0xD4, - 0xD4, - 0xE3, - 0xD4, - 0xE3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x82, - 0x8C, - 0x80, - 0x8F, - 0x80, - 0x80, - 0x80, - 0x8C, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x8A, - 0x80, - 0x80, - 0x8A, - 0x80, - 0x80, - 0x8C, - 0x7F, - 0x80, - 0x80, - 0x9B, - 0x8A, - 0x9B, - 0x80, - 0x8A, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x8A, - 0x8A, - 0x7F, - 0x9B, - 0x8A, - 0x8A, - 0x9A, - 0x8A, - 0x9A, - 0x71, - 0x5D, - 0x5D, - 0x65, - 0x4E, - 0x3C, - 0x1B, - 0x4E, - 0x35, - 0x35, - 0x1B, - 0x35, - 0x4E, - 0x5B, - 0x4E, - 0x39, - 0x1E, - 0x4A, - 0x35, - 0x10, - 0x10, - 0x29, - 0x5B, - 0x4A, - 0x3C, - 0x2A, - 0x16, - 0x10, - 0x16, - 0x35, - 0x71, - 0x5D, - 0x2A, - 0x3C, - 0x1B, - 0x3C, - 0x3C, - 0x7B, - 0x5B, - 0x3C, - 0x35, - 0x29, - 0x2A, - 0x0E, - 0x19, - 0x0F, - 0x11, - 0x19, - 0x11, - 0x1F, - 0x0F, - 0x0A, - 0x06, - 0x03, - 0x05, - 0xC0, - 0xD0, - 0x89, - 0xD0, - 0xA9, - 0xA9, - 0x89, - 0x7A, - 0x6D, - 0x6D, - 0x73, - 0x6D, - 0xA9, - 0xA9, - 0xC6, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0xD0, - 0xC0, - 0xAF, - 0xFC, - 0xFC, - 0xD0, - 0xA8, - 0xF1, - 0xFC, - 0xA9, - 0xFC, - 0xBD, - 0xF1, - 0xF1, - 0xBD, - 0xD0, - 0xF1, - 0xA9, - 0xFF, - 0xA9, - 0xBD, - 0xD0, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xA9, - 0xF1, - 0x96, - 0xA8, - 0xBD, - 0xFC, - 0xF1, - 0xD0, - 0xD0, - 0xC0, - 0xD0, - 0xFF, - 0xF1, - 0xA9, - 0xFC, - 0xF1, - 0xD0, - 0xD0, - 0xF1, - 0xF1, - 0xF1, - 0xFF, - 0xFC, - 0xA9, - 0x7A, - 0x89, - 0xA9, - 0xD0, - 0x6D, - 0x15, - 0x15, - 0x15, - 0x24, - 0x36, - 0x36, - 0x61, - 0x72, - 0x68, - 0x68, - 0x68, - 0x72, - 0x7E, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x88, - 0x85, - 0x8B, - 0x93, - 0x8B, - 0x00, - 0x07, - 0x9D, - 0x00, - 0x21, - 0x90, - 0x9D, - 0x9D, - 0x9D, - 0xAD, - 0xB7, - 0xAD, - 0x91, - 0x87, - 0x83, - 0x83, - 0xA2, - 0x56, - 0x24, - 0x26, - 0x67, - 0x67, - 0x4E, - 0x2A, - 0x22, - 0x13, - 0x2E, - 0x38, - 0x45, - 0x42, - 0x38, - 0x38, - 0x23, - 0x00, - 0x02, - 0x18, - 0x38, - 0xB1, - 0x00, - 0x0A, - 0xF8, - 0x00, - 0x1E, - 0xD1, - 0xCF, - 0xF3, - 0xF8, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xF8, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0xD3, - 0xCF, - 0x08, - 0xD3, - 0x00, - 0x0A, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0x07, - 0xD9, - 0x00, - 0x0B, - 0xD4, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xE3, - 0xD4, - 0xD4, - 0xD9, - 0x00, - 0x04, - 0xE3, - 0x00, - 0x05, - 0xD4, - 0xE4, - 0xC3, - 0xE3, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x8C, - 0x8C, - 0x00, - 0x07, - 0x80, - 0x00, - 0xD6, - 0x8A, - 0x80, - 0x78, - 0x8A, - 0x8A, - 0x80, - 0x9B, - 0x80, - 0x8A, - 0x80, - 0x80, - 0x8A, - 0x8A, - 0x7F, - 0x80, - 0x8A, - 0x9B, - 0x80, - 0x8A, - 0x9B, - 0x9B, - 0xA5, - 0x8A, - 0xA5, - 0x86, - 0x5D, - 0x71, - 0x7B, - 0x3C, - 0x35, - 0x29, - 0x29, - 0x35, - 0x16, - 0x2A, - 0x4A, - 0x4A, - 0x3C, - 0x5B, - 0x3C, - 0x29, - 0x39, - 0x16, - 0x16, - 0x1E, - 0x29, - 0x1B, - 0x4A, - 0x16, - 0x10, - 0x35, - 0x4E, - 0x35, - 0x5D, - 0x71, - 0x4E, - 0x3C, - 0x3C, - 0x3C, - 0x35, - 0x86, - 0x71, - 0x5D, - 0x3C, - 0x35, - 0x35, - 0x0E, - 0x0E, - 0x09, - 0x19, - 0x19, - 0x1F, - 0x32, - 0x14, - 0x19, - 0x09, - 0x06, - 0x03, - 0x00, - 0x6C, - 0xF1, - 0xBD, - 0x89, - 0xF1, - 0xF1, - 0xFC, - 0xD8, - 0x7A, - 0x89, - 0x89, - 0xD8, - 0xA9, - 0xC0, - 0xFC, - 0xF1, - 0xA9, - 0xC0, - 0xF1, - 0xC0, - 0x96, - 0xFA, - 0xE8, - 0xFC, - 0xD0, - 0xBD, - 0xFC, - 0xD0, - 0xA9, - 0xD0, - 0xBD, - 0x96, - 0xF1, - 0xD0, - 0xF1, - 0xFC, - 0xBD, - 0xF1, - 0xD0, - 0xA9, - 0x96, - 0xBD, - 0xC0, - 0xF1, - 0xF1, - 0xA9, - 0xFC, - 0xD0, - 0xA9, - 0x89, - 0xFC, - 0xF1, - 0xD0, - 0xE8, - 0x96, - 0x96, - 0xF1, - 0xFC, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xA9, - 0xFC, - 0xFC, - 0xF1, - 0x7A, - 0x6F, - 0x62, - 0x7A, - 0x62, - 0x15, - 0x15, - 0x15, - 0x36, - 0x51, - 0x5E, - 0x72, - 0x77, - 0x5E, - 0x72, - 0x68, - 0x83, - 0x77, - 0x75, - 0x72, - 0x6A, - 0x75, - 0x75, - 0x85, - 0x85, - 0x8B, - 0x90, - 0xA4, - 0x90, - 0x9D, - 0x90, - 0x9D, - 0x9D, - 0xA4, - 0xAD, - 0xAD, - 0xAD, - 0xA4, - 0x90, - 0x93, - 0x93, - 0xA4, - 0x92, - 0x83, - 0x74, - 0x74, - 0xAC, - 0x36, - 0x5C, - 0x70, - 0x26, - 0x2F, - 0x33, - 0x23, - 0x2E, - 0x3D, - 0x42, - 0x42, - 0x45, - 0x38, - 0x20, - 0x23, - 0x02, - 0x08, - 0x2E, - 0x7B, - 0x06, - 0xF8, - 0x00, - 0x16, - 0xF3, - 0xF3, - 0xF8, - 0xF8, - 0xF8, - 0xD1, - 0xF8, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xF3, - 0xD1, - 0xF8, - 0xF8, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0x07, - 0xCF, - 0x00, - 0x06, - 0xC7, - 0xCF, - 0xCF, - 0xD3, - 0xCF, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x0E, - 0xCC, - 0xD3, - 0xCC, - 0xD3, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xCC, - 0x08, - 0xD9, - 0x00, - 0x13, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD4, - 0xC3, - 0xE3, - 0xE4, - 0xD9, - 0xE3, - 0xD9, - 0xD4, - 0xD4, - 0xD9, - 0xE3, - 0xD4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0x6D, - 0x95, - 0x80, - 0x82, - 0x80, - 0x80, - 0x8F, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x7F, - 0x80, - 0x80, - 0x8A, - 0x80, - 0x7F, - 0x8C, - 0x9B, - 0x80, - 0x80, - 0x9B, - 0x7F, - 0x8C, - 0x8A, - 0x9B, - 0x80, - 0x9B, - 0x9B, - 0x7F, - 0x9B, - 0x9B, - 0x8A, - 0x9B, - 0x9B, - 0x8A, - 0x8A, - 0x9B, - 0x9B, - 0x9A, - 0xA3, - 0x5D, - 0x5D, - 0x65, - 0x31, - 0x39, - 0x3C, - 0x29, - 0x29, - 0x10, - 0x2A, - 0x4E, - 0x29, - 0x3C, - 0x5D, - 0x4E, - 0x29, - 0x1E, - 0x1E, - 0x1E, - 0x29, - 0x1E, - 0x0E, - 0x0E, - 0x0E, - 0x1B, - 0x29, - 0x4A, - 0x3C, - 0x5D, - 0x5B, - 0x29, - 0x3C, - 0x3C, - 0x1B, - 0x3C, - 0x5D, - 0x5D, - 0x35, - 0x1C, - 0x14, - 0x0F, - 0x14, - 0x0F, - 0x05, - 0x14, - 0x0B, - 0x19, - 0x32, - 0x1C, - 0x19, - 0x12, - 0x06, - 0x03, - 0x32, - 0x32, - 0xA5, - 0xD0, - 0xA9, - 0xA9, - 0x7A, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x57, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xC0, - 0xF1, - 0xF1, - 0xF1, - 0x7A, - 0xD0, - 0xE8, - 0xFF, - 0xD0, - 0xC0, - 0xBD, - 0xF1, - 0xFF, - 0xD0, - 0xF1, - 0xF1, - 0x96, - 0xF1, - 0xBD, - 0xD0, - 0xD0, - 0x96, - 0xF1, - 0xFC, - 0xBD, - 0xA9, - 0x96, - 0xBD, - 0xBD, - 0xF1, - 0xA9, - 0xFC, - 0xF1, - 0xC0, - 0xBD, - 0x96, - 0xFC, - 0xD0, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0xF1, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xF1, - 0xD0, - 0xF1, - 0x89, - 0x62, - 0x57, - 0x15, - 0x36, - 0x15, - 0x0D, - 0x15, - 0x51, - 0x51, - 0x6E, - 0x6A, - 0x61, - 0x72, - 0x6A, - 0x72, - 0x6A, - 0x6E, - 0x6E, - 0x75, - 0x75, - 0x85, - 0x7E, - 0x8B, - 0x88, - 0x93, - 0x8B, - 0x93, - 0x00, - 0x04, - 0x90, - 0x01, - 0x9D, - 0x06, - 0x90, - 0x00, - 0x1A, - 0xA4, - 0xA4, - 0xAD, - 0xA0, - 0x83, - 0x83, - 0x83, - 0x64, - 0x49, - 0x28, - 0x0D, - 0x70, - 0x12, - 0x23, - 0x23, - 0x23, - 0x42, - 0x58, - 0x45, - 0x38, - 0x38, - 0x20, - 0x23, - 0x02, - 0x20, - 0x65, - 0x0A, - 0xF8, - 0x00, - 0x0B, - 0xD1, - 0xD1, - 0xF3, - 0xD1, - 0xF8, - 0xCF, - 0xF3, - 0xD1, - 0xF3, - 0xCF, - 0xBF, - 0x00, - 0x07, - 0xD1, - 0x00, - 0x07, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xC7, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x07, - 0xC5, - 0xCF, - 0xD3, - 0xC5, - 0xCF, - 0xD3, - 0xCF, - 0x00, - 0x05, - 0xD3, - 0x00, - 0x0F, - 0xD9, - 0xD3, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xD9, - 0xCA, - 0x00, - 0x06, - 0xD9, - 0x00, - 0x0E, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xC3, - 0xD9, - 0xC3, - 0xE3, - 0xD9, - 0xD4, - 0xD9, - 0xD4, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x13, - 0x82, - 0x82, - 0x80, - 0x8C, - 0x82, - 0x80, - 0x8F, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x80, - 0x80, - 0x9B, - 0x00, - 0x04, - 0x80, - 0x00, - 0x0F, - 0x8A, - 0x80, - 0x8A, - 0x80, - 0x8A, - 0x80, - 0x9B, - 0x8A, - 0x80, - 0x9B, - 0x8A, - 0x8C, - 0x80, - 0x9B, - 0x8A, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x9B, - 0xA5, - 0x9B, - 0xA3, - 0x65, - 0x71, - 0x7B, - 0x4E, - 0x3C, - 0x29, - 0x3C, - 0x35, - 0x1E, - 0x35, - 0x4A, - 0x29, - 0x35, - 0x71, - 0x5D, - 0x4A, - 0x4E, - 0x10, - 0x5D, - 0x71, - 0x1B, - 0x10, - 0x29, - 0x16, - 0x71, - 0x5D, - 0x7B, - 0x71, - 0x71, - 0x5D, - 0x3C, - 0x3C, - 0x29, - 0x1B, - 0x65, - 0x5D, - 0x3C, - 0x35, - 0x35, - 0x11, - 0x10, - 0x11, - 0x09, - 0x0B, - 0x09, - 0x12, - 0x22, - 0x4C, - 0x39, - 0x19, - 0x1C, - 0x06, - 0x1F, - 0x57, - 0x4A, - 0x51, - 0x6D, - 0xC6, - 0xA9, - 0xF1, - 0xFF, - 0xFF, - 0xF1, - 0xFC, - 0xFF, - 0xFF, - 0xFC, - 0xFC, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0x96, - 0xA9, - 0xF1, - 0xD0, - 0xBD, - 0x96, - 0xA8, - 0x89, - 0xA9, - 0xFC, - 0xFC, - 0xD0, - 0xD0, - 0xA8, - 0x89, - 0xF1, - 0xD0, - 0xBD, - 0xA8, - 0xA9, - 0xD0, - 0xFC, - 0xBD, - 0xA9, - 0xBD, - 0xC0, - 0xF1, - 0x89, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xA9, - 0x89, - 0xA9, - 0xF1, - 0xA9, - 0x89, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xF1, - 0xFC, - 0xD0, - 0xD0, - 0xA9, - 0x57, - 0x1F, - 0x36, - 0x15, - 0x15, - 0x15, - 0x24, - 0x51, - 0x77, - 0x5E, - 0x88, - 0x6A, - 0x5E, - 0x87, - 0x6E, - 0x75, - 0x7C, - 0x6E, - 0x7C, - 0x7C, - 0x7C, - 0x6E, - 0x7C, - 0x75, - 0x7C, - 0x6A, - 0x61, - 0x6E, - 0x7C, - 0x00, - 0x06, - 0x8B, - 0x00, - 0x1D, - 0xA4, - 0x90, - 0xA4, - 0xA4, - 0xA4, - 0x92, - 0x83, - 0x87, - 0x74, - 0x69, - 0x83, - 0x64, - 0x36, - 0x41, - 0x41, - 0x2F, - 0x33, - 0x44, - 0x42, - 0x38, - 0x54, - 0x42, - 0x45, - 0x38, - 0x38, - 0x20, - 0x08, - 0x13, - 0x7B, - 0x00, - 0x08, - 0xF8, - 0x00, - 0x0E, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xD1, - 0xF8, - 0xF3, - 0xD1, - 0xF3, - 0xD1, - 0xF8, - 0xD1, - 0xD1, - 0xF3, - 0x07, - 0xD1, - 0x00, - 0x08, - 0xCF, - 0xCF, - 0xD1, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0x09, - 0xCF, - 0x00, - 0x13, - 0xD3, - 0xCF, - 0xD3, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xD9, - 0xD3, - 0xD9, - 0xCC, - 0xD3, - 0xCC, - 0xD9, - 0xD3, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xD3, - 0x05, - 0xD9, - 0x00, - 0x0D, - 0xE3, - 0xD9, - 0xD9, - 0xE3, - 0xD9, - 0xC3, - 0xE3, - 0xD9, - 0xD9, - 0xD4, - 0xD9, - 0xD9, - 0xD4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x8C, - 0x8C, - 0x82, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x82, - 0x8C, - 0x80, - 0x82, - 0x8C, - 0x80, - 0x80, - 0x8C, - 0x05, - 0x80, - 0x00, - 0xD2, - 0x9B, - 0x80, - 0x80, - 0x9B, - 0x80, - 0x9B, - 0x80, - 0x9B, - 0x80, - 0x7F, - 0x9B, - 0x80, - 0x9B, - 0x8A, - 0x9B, - 0x80, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x8A, - 0x9B, - 0x8A, - 0x97, - 0xA3, - 0x5D, - 0x65, - 0x5D, - 0x3C, - 0x3C, - 0x1B, - 0x29, - 0x3C, - 0x39, - 0x3C, - 0x35, - 0x4A, - 0x71, - 0x5D, - 0x1B, - 0x4E, - 0x3C, - 0x3C, - 0x3C, - 0x16, - 0x2A, - 0x16, - 0x5B, - 0x4E, - 0x6C, - 0x5D, - 0x4E, - 0x5D, - 0x1B, - 0x4A, - 0x4E, - 0x10, - 0x4E, - 0x4A, - 0x1E, - 0x29, - 0x1E, - 0x10, - 0x10, - 0x1E, - 0x1E, - 0x09, - 0x05, - 0x0B, - 0x09, - 0x11, - 0x39, - 0x32, - 0x14, - 0x4D, - 0x89, - 0x6D, - 0x7A, - 0x62, - 0x57, - 0x57, - 0x7A, - 0xD0, - 0xD0, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xFF, - 0xF1, - 0xA9, - 0x7A, - 0x7A, - 0x89, - 0x89, - 0x7A, - 0x7A, - 0xBD, - 0xBE, - 0xD0, - 0xFC, - 0xBD, - 0xBD, - 0xA9, - 0xC6, - 0xBD, - 0xF1, - 0xFC, - 0xBD, - 0xA9, - 0x7A, - 0xD0, - 0xD0, - 0xBD, - 0xBD, - 0xBD, - 0x96, - 0xA9, - 0xF1, - 0xBD, - 0x96, - 0xA8, - 0xFC, - 0x89, - 0xA9, - 0xD0, - 0xE8, - 0xD0, - 0xE8, - 0xD0, - 0xD0, - 0xFC, - 0xF1, - 0xA9, - 0x89, - 0xFC, - 0xBD, - 0x89, - 0xD0, - 0xFC, - 0xBD, - 0x89, - 0xA9, - 0xD0, - 0xFC, - 0xA9, - 0x6F, - 0x1F, - 0x1F, - 0x09, - 0x15, - 0x0D, - 0x46, - 0x5E, - 0x68, - 0x77, - 0x7E, - 0x68, - 0x61, - 0x75, - 0x6E, - 0x68, - 0x6E, - 0x75, - 0x7C, - 0x7C, - 0x7C, - 0x75, - 0x7C, - 0x85, - 0x75, - 0x6E, - 0x6E, - 0x7C, - 0x7C, - 0x7C, - 0x8B, - 0x8B, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x93, - 0x90, - 0x85, - 0x7E, - 0x7E, - 0x72, - 0x83, - 0x74, - 0xA2, - 0x69, - 0x4B, - 0x2D, - 0x4B, - 0x55, - 0x23, - 0x44, - 0x44, - 0x42, - 0x44, - 0x45, - 0x54, - 0x42, - 0x38, - 0x42, - 0x23, - 0x13, - 0x63, - 0x05, - 0xF8, - 0x00, - 0x12, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xD1, - 0xF8, - 0xF3, - 0xF3, - 0xD1, - 0xF3, - 0xF3, - 0xD1, - 0xCB, - 0xD1, - 0xCB, - 0xCF, - 0x06, - 0xD1, - 0x00, - 0x0A, - 0xCF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xD1, - 0xCF, - 0xC7, - 0x05, - 0xCF, - 0x00, - 0x08, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0x04, - 0xD3, - 0x00, - 0x21, - 0xC5, - 0xD3, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xCC, - 0xD3, - 0xD9, - 0xCC, - 0xCC, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x6D, - 0x9F, - 0x8C, - 0x80, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8C, - 0x80, - 0x05, - 0x8C, - 0x00, - 0x19, - 0x80, - 0x8C, - 0x8A, - 0x80, - 0x80, - 0x8C, - 0x8A, - 0x8A, - 0x8C, - 0x80, - 0x8C, - 0x8A, - 0x9B, - 0x9B, - 0x80, - 0x9B, - 0x8C, - 0x9B, - 0x80, - 0x8A, - 0x9B, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x00, - 0x04, - 0x9B, - 0x00, - 0xBB, - 0xA8, - 0x86, - 0x5D, - 0x7B, - 0x7B, - 0x3C, - 0x3C, - 0x3C, - 0x29, - 0x35, - 0x2A, - 0x35, - 0x39, - 0x5D, - 0x65, - 0x86, - 0x29, - 0x5D, - 0x1B, - 0x1B, - 0x5D, - 0x71, - 0x4E, - 0x29, - 0x5D, - 0x39, - 0x4A, - 0x86, - 0x7B, - 0x39, - 0x29, - 0x3C, - 0x3C, - 0x5D, - 0x29, - 0x3C, - 0x29, - 0x3C, - 0x35, - 0x10, - 0x1E, - 0x2A, - 0x39, - 0x11, - 0x05, - 0x06, - 0x09, - 0x0F, - 0x32, - 0x4A, - 0x2A, - 0x76, - 0xA9, - 0x8F, - 0xA9, - 0x89, - 0x62, - 0x6D, - 0x57, - 0x89, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xD0, - 0xD0, - 0xC0, - 0xF1, - 0xA9, - 0xF1, - 0xFC, - 0xE8, - 0xFC, - 0xE8, - 0xBD, - 0xF1, - 0xFC, - 0xA9, - 0xC0, - 0xF1, - 0xD0, - 0xBD, - 0xBD, - 0x89, - 0x7A, - 0xA8, - 0xBD, - 0xBD, - 0xBD, - 0xA9, - 0x89, - 0x96, - 0xFC, - 0x96, - 0x89, - 0xF1, - 0xA9, - 0xBD, - 0xA9, - 0xBD, - 0xA9, - 0xC0, - 0xBD, - 0xA9, - 0xFC, - 0xF1, - 0xA9, - 0x6F, - 0xD0, - 0xF1, - 0x89, - 0xA9, - 0xFF, - 0xA9, - 0x89, - 0x89, - 0xA9, - 0x89, - 0x6D, - 0x32, - 0x0D, - 0x12, - 0x0D, - 0x24, - 0x46, - 0x5E, - 0x6E, - 0x61, - 0x75, - 0x77, - 0x61, - 0x6A, - 0x75, - 0x6E, - 0x75, - 0x75, - 0x7C, - 0x75, - 0x8B, - 0x85, - 0x8B, - 0x7C, - 0x8B, - 0x6E, - 0x75, - 0x7C, - 0x7C, - 0x8B, - 0x7C, - 0x90, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x90, - 0x90, - 0x8B, - 0x90, - 0xAB, - 0xAB, - 0x92, - 0x92, - 0x83, - 0x74, - 0x56, - 0x33, - 0x33, - 0x18, - 0x44, - 0x59, - 0x44, - 0x3D, - 0x58, - 0x3D, - 0x42, - 0x48, - 0x45, - 0x20, - 0x13, - 0x20, - 0xD9, - 0x00, - 0x05, - 0xF8, - 0x00, - 0x11, - 0xF3, - 0xF8, - 0xE7, - 0xF8, - 0xF3, - 0xF3, - 0xF8, - 0xCB, - 0xD1, - 0xF3, - 0xF3, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xF3, - 0x00, - 0x07, - 0xD1, - 0x00, - 0x1B, - 0xBF, - 0xC7, - 0xD1, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xCF, - 0xC5, - 0xD3, - 0xCF, - 0xC5, - 0xC5, - 0x00, - 0x06, - 0xD3, - 0x00, - 0x11, - 0xCC, - 0xD9, - 0xD3, - 0xCC, - 0xD9, - 0xD9, - 0xCC, - 0xCC, - 0xD9, - 0xD9, - 0xCA, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD3, - 0xE3, - 0x00, - 0x0A, - 0xD9, - 0x00, - 0x00, - 0x00, - 0xBA, - 0x8F, - 0x80, - 0x8C, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x82, - 0x8F, - 0x80, - 0x8C, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x9B, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x8A, - 0x8C, - 0x80, - 0x80, - 0x9B, - 0x8C, - 0x8A, - 0x80, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8A, - 0x9B, - 0x8A, - 0x8A, - 0x8C, - 0x9B, - 0x9B, - 0x9A, - 0xA3, - 0x71, - 0x65, - 0x7B, - 0x3C, - 0x3C, - 0x29, - 0x4E, - 0x1E, - 0x16, - 0x1E, - 0x5D, - 0x3C, - 0x4E, - 0x5D, - 0x4E, - 0x5D, - 0x35, - 0x3C, - 0x4E, - 0x5D, - 0x16, - 0x1B, - 0x1E, - 0x35, - 0x4A, - 0x65, - 0x5B, - 0x7B, - 0x10, - 0x5D, - 0x3C, - 0x3C, - 0x39, - 0x29, - 0x3C, - 0x71, - 0x10, - 0x3C, - 0x39, - 0x16, - 0x0E, - 0x35, - 0x09, - 0x0B, - 0x0B, - 0x0B, - 0x14, - 0x2A, - 0x39, - 0xFC, - 0x89, - 0xD8, - 0xBD, - 0xBE, - 0x6D, - 0xA9, - 0x89, - 0x57, - 0xA9, - 0xF1, - 0xFF, - 0xF1, - 0xD0, - 0xBD, - 0xC0, - 0xFC, - 0xF1, - 0xF1, - 0xF1, - 0xE8, - 0xD0, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xFC, - 0xBD, - 0xE8, - 0xE8, - 0xD0, - 0xA8, - 0xA8, - 0xA8, - 0xC0, - 0xA8, - 0xA8, - 0x6F, - 0x7A, - 0xAF, - 0xA9, - 0xA8, - 0xA8, - 0xA8, - 0x89, - 0xC0, - 0xD0, - 0x86, - 0xD0, - 0xC0, - 0x96, - 0xC0, - 0xA9, - 0x96, - 0x7A, - 0x89, - 0xA9, - 0xD0, - 0xFC, - 0xA9, - 0x89, - 0xA9, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xBD, - 0x89, - 0x32, - 0x12, - 0x12, - 0x0D, - 0x36, - 0x36, - 0x68, - 0x72, - 0x5E, - 0x88, - 0x72, - 0x6A, - 0x61, - 0x6E, - 0x77, - 0x6E, - 0x6A, - 0x75, - 0x7C, - 0x8B, - 0x05, - 0x7C, - 0x00, - 0x0B, - 0x85, - 0x8B, - 0x90, - 0x8B, - 0x7C, - 0x8B, - 0x85, - 0x8B, - 0x8B, - 0x90, - 0x8B, - 0x00, - 0x04, - 0x90, - 0x00, - 0x11, - 0x9E, - 0xA4, - 0x92, - 0x87, - 0x74, - 0x41, - 0x2D, - 0x0A, - 0x33, - 0x23, - 0x23, - 0x2E, - 0x44, - 0x3D, - 0x44, - 0x54, - 0x44, - 0x00, - 0x04, - 0x42, - 0x00, - 0x04, - 0x23, - 0x23, - 0x8D, - 0xF3, - 0x04, - 0xF8, - 0x00, - 0x18, - 0xE7, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF3, - 0xD1, - 0xF3, - 0xD1, - 0xF3, - 0xF3, - 0xD1, - 0xF3, - 0xD1, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xD1, - 0xBF, - 0x06, - 0xD1, - 0x00, - 0x09, - 0xC7, - 0xD1, - 0xCF, - 0xBF, - 0xCF, - 0xCF, - 0xD1, - 0xC7, - 0xC7, - 0x00, - 0x06, - 0xCF, - 0x00, - 0x28, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xC5, - 0xD3, - 0xD3, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xCC, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0xCC, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x8C, - 0x82, - 0x82, - 0x8C, - 0x8F, - 0x80, - 0x8F, - 0x80, - 0x80, - 0x8F, - 0x8C, - 0x8F, - 0x80, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x2C, - 0x80, - 0x8C, - 0x80, - 0x8A, - 0x8C, - 0x80, - 0x80, - 0x8A, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x80, - 0x9B, - 0x8C, - 0x8A, - 0x8A, - 0x8C, - 0x8C, - 0x9B, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0x84, - 0xA3, - 0xA3, - 0x5D, - 0x89, - 0x43, - 0x3C, - 0x35, - 0x3C, - 0x1B, - 0x1B, - 0x29, - 0x4E, - 0x71, - 0x4E, - 0x65, - 0x71, - 0x04, - 0x3C, - 0x00, - 0xAF, - 0x29, - 0x1B, - 0x10, - 0x16, - 0x4A, - 0x4A, - 0x4A, - 0x3C, - 0x5D, - 0x4A, - 0x4E, - 0x71, - 0x71, - 0x5D, - 0x71, - 0x5B, - 0x5D, - 0x5D, - 0x29, - 0x1E, - 0x1E, - 0x29, - 0x09, - 0x0E, - 0x10, - 0x09, - 0x0F, - 0x0F, - 0x2A, - 0x76, - 0xD0, - 0x89, - 0xB1, - 0xA9, - 0xA9, - 0x7A, - 0xFC, - 0xC0, - 0xBD, - 0x6D, - 0x6D, - 0x89, - 0xA9, - 0xF1, - 0xD0, - 0xBD, - 0xFF, - 0xFF, - 0xF1, - 0xD0, - 0xF1, - 0xE8, - 0xFC, - 0xFC, - 0xF1, - 0xC0, - 0x6F, - 0x84, - 0x6F, - 0xA3, - 0x62, - 0x39, - 0x09, - 0x19, - 0x4D, - 0x60, - 0x62, - 0x62, - 0x62, - 0xA8, - 0xBD, - 0xD0, - 0xC0, - 0xBD, - 0x96, - 0x6F, - 0xC0, - 0x7A, - 0x6D, - 0xA8, - 0x7A, - 0xA9, - 0x86, - 0x86, - 0x89, - 0xA9, - 0x96, - 0x7A, - 0xF1, - 0xF1, - 0xA9, - 0x89, - 0xA9, - 0xF1, - 0x89, - 0xD0, - 0x89, - 0xA9, - 0xD0, - 0xBD, - 0x7A, - 0x1F, - 0x0D, - 0x12, - 0x46, - 0x68, - 0x72, - 0x77, - 0x72, - 0x6A, - 0x7E, - 0x77, - 0x6A, - 0x7E, - 0x77, - 0x6E, - 0x7E, - 0x7C, - 0x88, - 0x7C, - 0x8B, - 0x8B, - 0x8B, - 0x85, - 0x8B, - 0x90, - 0x9D, - 0x8B, - 0x8B, - 0x85, - 0x9E, - 0x92, - 0x93, - 0x93, - 0x8B, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA0, - 0x87, - 0x74, - 0x69, - 0x72, - 0x5C, - 0x15, - 0x0B, - 0x40, - 0x2E, - 0x40, - 0x2E, - 0x48, - 0x44, - 0x44, - 0x59, - 0x48, - 0x54, - 0x44, - 0x54, - 0x42, - 0x23, - 0x23, - 0x7B, - 0xF8, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF3, - 0xF8, - 0xE7, - 0x00, - 0x06, - 0xF3, - 0x00, - 0x4A, - 0xD1, - 0xD1, - 0xF3, - 0xD1, - 0xF3, - 0xCB, - 0xBF, - 0xCB, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xC7, - 0xD1, - 0xC5, - 0xD1, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xD1, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xC5, - 0xD9, - 0xC5, - 0xD9, - 0xD9, - 0xCC, - 0xD9, - 0xCC, - 0xD9, - 0xC3, - 0xD9, - 0xCC, - 0xD9, - 0xD9, - 0xD9, - 0xD3, - 0xC3, - 0xD9, - 0xD9, - 0xC3, - 0xC3, - 0xD9, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x08, - 0x8F, - 0x80, - 0x80, - 0x8F, - 0x8C, - 0x82, - 0x8C, - 0x82, - 0x06, - 0x8C, - 0x00, - 0x64, - 0x80, - 0x8F, - 0x80, - 0x8C, - 0x80, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x9B, - 0x8C, - 0x8C, - 0x8A, - 0x9B, - 0x9B, - 0x80, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0x9B, - 0x8A, - 0x9B, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0xC0, - 0x7B, - 0xA3, - 0xA3, - 0x65, - 0x3C, - 0x4E, - 0x29, - 0x4E, - 0x1B, - 0x5B, - 0x65, - 0x29, - 0x4A, - 0x6F, - 0x5D, - 0x3C, - 0x5D, - 0x3C, - 0x13, - 0x4A, - 0x29, - 0x10, - 0x10, - 0x35, - 0x35, - 0x39, - 0x4A, - 0x5D, - 0x1B, - 0x3C, - 0x5D, - 0x5D, - 0x3C, - 0x3C, - 0x5D, - 0x3C, - 0x4A, - 0x35, - 0x5D, - 0x16, - 0x2A, - 0x35, - 0x1E, - 0x0E, - 0x0B, - 0x0F, - 0x06, - 0x0B, - 0xAF, - 0xD0, - 0xBD, - 0x89, - 0xA9, - 0xA9, - 0xC0, - 0xD0, - 0xFC, - 0xA8, - 0xA9, - 0xA9, - 0xA9, - 0xFC, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0xF1, - 0xE8, - 0x04, - 0xC0, - 0x00, - 0x16, - 0xA3, - 0x96, - 0x2A, - 0x0B, - 0x39, - 0x2A, - 0x0B, - 0x00, - 0x03, - 0x05, - 0x05, - 0x03, - 0x09, - 0x2A, - 0x5D, - 0x6F, - 0xC0, - 0x86, - 0xC0, - 0xC0, - 0x6C, - 0x71, - 0x05, - 0x6F, - 0x00, - 0x26, - 0x62, - 0x89, - 0x6F, - 0x7A, - 0x6F, - 0x7A, - 0xA9, - 0x96, - 0xA9, - 0xF1, - 0xD0, - 0x89, - 0x89, - 0xBD, - 0xA9, - 0xFC, - 0xD0, - 0x7A, - 0x7A, - 0xD0, - 0x6F, - 0x10, - 0x36, - 0x4B, - 0x72, - 0x68, - 0x85, - 0x8B, - 0x7E, - 0x72, - 0x75, - 0x77, - 0x6A, - 0x6A, - 0x7E, - 0x88, - 0x8B, - 0x8B, - 0x04, - 0x7C, - 0x00, - 0x32, - 0x85, - 0x90, - 0x9D, - 0x90, - 0x88, - 0x8B, - 0x93, - 0x9E, - 0x8B, - 0x85, - 0x85, - 0x8B, - 0x90, - 0x90, - 0x9D, - 0x93, - 0x93, - 0x74, - 0x74, - 0x74, - 0x83, - 0x74, - 0x5C, - 0x4B, - 0x49, - 0x55, - 0x23, - 0x40, - 0x2E, - 0x44, - 0x44, - 0x44, - 0x42, - 0x42, - 0x3D, - 0x3D, - 0x42, - 0x42, - 0x44, - 0x13, - 0x45, - 0x9B, - 0xF8, - 0xE7, - 0xF8, - 0xF8, - 0xF8, - 0xF3, - 0xF8, - 0xF8, - 0x04, - 0xF3, - 0x00, - 0x0C, - 0xD1, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xD1, - 0xF3, - 0x04, - 0xD1, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x07, - 0xD1, - 0x00, - 0x0D, - 0xCB, - 0xCF, - 0xD1, - 0xC7, - 0xBF, - 0xCF, - 0xCF, - 0xD1, - 0xCF, - 0xC7, - 0xD1, - 0xCF, - 0xC7, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x25, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xD3, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xD9, - 0xC5, - 0xC5, - 0xD3, - 0xCC, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xC3, - 0xD9, - 0xCC, - 0xCC, - 0xC3, - 0xD3, - 0xD9, - 0xD9, - 0xD3, - 0xD9, - 0xD9, - 0xCC, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x8C, - 0x8F, - 0x82, - 0x80, - 0x8C, - 0x82, - 0x80, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x82, - 0x82, - 0x8F, - 0x80, - 0x80, - 0x8C, - 0x80, - 0x9B, - 0x8C, - 0x80, - 0x8C, - 0x80, - 0x00, - 0x07, - 0x8C, - 0x00, - 0x03, - 0x80, - 0x9B, - 0x9B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x04, - 0x9B, - 0x8C, - 0x9B, - 0x8C, - 0x04, - 0x9B, - 0x00, - 0x4F, - 0xA3, - 0xA3, - 0x7B, - 0x7B, - 0x7B, - 0x4E, - 0x29, - 0x3C, - 0x29, - 0x3C, - 0x4E, - 0x29, - 0x4A, - 0x4E, - 0x5D, - 0x3C, - 0x7B, - 0x4E, - 0x3C, - 0x3C, - 0x3C, - 0x1B, - 0x10, - 0x0E, - 0x1B, - 0x1E, - 0x29, - 0x3C, - 0x39, - 0x5D, - 0x5D, - 0x65, - 0x5D, - 0x71, - 0x29, - 0x4A, - 0x35, - 0x3C, - 0x1E, - 0x39, - 0x1C, - 0x2A, - 0x35, - 0x0E, - 0x0E, - 0x0E, - 0x09, - 0x09, - 0x6C, - 0xF1, - 0xF1, - 0xA9, - 0x89, - 0xBD, - 0xBD, - 0x89, - 0x7A, - 0xFC, - 0xFC, - 0xD0, - 0xBD, - 0xFC, - 0xFC, - 0xF1, - 0xC0, - 0xF1, - 0xE8, - 0xE8, - 0xE8, - 0x86, - 0xA3, - 0x62, - 0x1C, - 0x1F, - 0x03, - 0x09, - 0x09, - 0x03, - 0x05, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x6C, - 0x09, - 0x06, - 0x06, - 0x0F, - 0x32, - 0x4D, - 0x62, - 0x7A, - 0xC0, - 0x4D, - 0x4D, - 0x32, - 0x11, - 0x32, - 0x4D, - 0x6F, - 0x89, - 0x60, - 0x89, - 0x6F, - 0x60, - 0x6D, - 0x6D, - 0x7A, - 0x89, - 0x7A, - 0xBD, - 0xD0, - 0xBD, - 0x6D, - 0xA9, - 0x96, - 0x89, - 0xBD, - 0x7A, - 0x60, - 0x89, - 0x62, - 0x0D, - 0x51, - 0x72, - 0x87, - 0x88, - 0x88, - 0x75, - 0x75, - 0x77, - 0x6E, - 0x77, - 0x7E, - 0x8B, - 0x8B, - 0x75, - 0x8B, - 0x85, - 0x85, - 0x7C, - 0x75, - 0x8B, - 0xA4, - 0x9D, - 0x9D, - 0x90, - 0x90, - 0x9E, - 0x9E, - 0x91, - 0x91, - 0x9E, - 0x90, - 0x9D, - 0x9D, - 0x9E, - 0x9D, - 0x93, - 0x83, - 0x74, - 0x74, - 0x68, - 0x69, - 0x68, - 0x74, - 0x73, - 0x57, - 0x55, - 0x31, - 0x2E, - 0x44, - 0x3D, - 0x3D, - 0x42, - 0x54, - 0x44, - 0x44, - 0x44, - 0x3D, - 0x42, - 0x20, - 0x2E, - 0x59, - 0xCF, - 0xF8, - 0xF8, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xE7, - 0x07, - 0xF3, - 0x00, - 0x13, - 0xCB, - 0xF3, - 0xD1, - 0xF3, - 0xCB, - 0xF3, - 0xD1, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0x00, - 0x06, - 0xD1, - 0x00, - 0x07, - 0xBF, - 0xD1, - 0xBF, - 0xCF, - 0xBF, - 0xC7, - 0xD1, - 0x00, - 0x06, - 0xC7, - 0x00, - 0x08, - 0xCF, - 0xCF, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xCF, - 0xCF, - 0x04, - 0xC5, - 0x00, - 0x14, - 0xD3, - 0xD3, - 0xD3, - 0xC5, - 0xD3, - 0xCC, - 0xC5, - 0xD9, - 0xC5, - 0xC5, - 0xD9, - 0xCC, - 0xD9, - 0xD3, - 0xD3, - 0xD3, - 0xC3, - 0xD9, - 0xD9, - 0xD9, - 0x04, - 0xCC, - 0x00, - 0x03, - 0xD9, - 0xC3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x82, - 0x8C, - 0x80, - 0x95, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x82, - 0x00, - 0x05, - 0x8C, - 0x01, - 0x8F, - 0x04, - 0x8C, - 0x00, - 0x0B, - 0x80, - 0x8C, - 0x9B, - 0x8C, - 0x8C, - 0x8C, - 0x8A, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0xAA, - 0x9B, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x9B, - 0x8F, - 0x9B, - 0x9B, - 0x9A, - 0xE8, - 0x7B, - 0x71, - 0x7B, - 0x5D, - 0x5D, - 0x4A, - 0x3C, - 0x3C, - 0x29, - 0x29, - 0x4A, - 0x29, - 0x3C, - 0x3C, - 0x3C, - 0x4E, - 0x29, - 0x29, - 0x1B, - 0x29, - 0x3C, - 0x5D, - 0x5D, - 0x5B, - 0x65, - 0x4E, - 0x3C, - 0x3C, - 0x1E, - 0x62, - 0x3C, - 0x2A, - 0x4E, - 0x3C, - 0x16, - 0x5D, - 0x29, - 0x1B, - 0x35, - 0x16, - 0x14, - 0x10, - 0x2A, - 0x11, - 0x0E, - 0x1C, - 0xFC, - 0xD0, - 0xF1, - 0xD0, - 0x89, - 0xBD, - 0xF1, - 0xA8, - 0x62, - 0xC0, - 0xF1, - 0xC0, - 0xFC, - 0xF1, - 0xA3, - 0xE8, - 0x86, - 0xC0, - 0x86, - 0x8D, - 0x5B, - 0x32, - 0x06, - 0x00, - 0x0B, - 0x05, - 0x1C, - 0x09, - 0x09, - 0x1C, - 0x11, - 0x0B, - 0x1E, - 0x39, - 0x19, - 0x1F, - 0x5B, - 0x4A, - 0x0E, - 0x05, - 0x09, - 0x5B, - 0x6C, - 0x32, - 0x1C, - 0x05, - 0x06, - 0x05, - 0x05, - 0x03, - 0x05, - 0x29, - 0x32, - 0x4D, - 0x62, - 0x4D, - 0x62, - 0x4D, - 0x60, - 0x4D, - 0x32, - 0x32, - 0x4D, - 0x62, - 0x62, - 0x1F, - 0x4D, - 0x1F, - 0x60, - 0x1F, - 0x4D, - 0x89, - 0x57, - 0x36, - 0x5C, - 0x7E, - 0x75, - 0x85, - 0x75, - 0x85, - 0x77, - 0x77, - 0x88, - 0x88, - 0x85, - 0x90, - 0x85, - 0x93, - 0x9D, - 0x88, - 0x7C, - 0x7C, - 0x8B, - 0xAD, - 0xA4, - 0x9D, - 0x9D, - 0xA4, - 0x9D, - 0xA4, - 0x93, - 0x9D, - 0x9E, - 0x90, - 0x9D, - 0xA4, - 0xA4, - 0xA4, - 0x91, - 0x83, - 0x83, - 0x06, - 0x74, - 0x00, - 0x1A, - 0xB0, - 0x8E, - 0x4E, - 0x52, - 0x31, - 0x3D, - 0x48, - 0x44, - 0x58, - 0x44, - 0x44, - 0x20, - 0x3D, - 0x42, - 0x38, - 0x48, - 0x63, - 0x65, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0x05, - 0xF3, - 0x00, - 0x07, - 0xCB, - 0xF3, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x0F, - 0xD1, - 0xBF, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xBF, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0x00, - 0x07, - 0xD1, - 0x00, - 0x2E, - 0xC7, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xD9, - 0xC5, - 0xD9, - 0xD9, - 0xC5, - 0xD9, - 0xC5, - 0xCC, - 0xC3, - 0xD3, - 0xD3, - 0xD9, - 0xC5, - 0xCC, - 0xCC, - 0xD9, - 0xD9, - 0xC3, - 0xD3, - 0xD3, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x8F, - 0x8F, - 0x8F, - 0x82, - 0x82, - 0x8F, - 0x82, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x04, - 0x8C, - 0x01, - 0x80, - 0x05, - 0x8C, - 0x00, - 0x06, - 0x80, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x04, - 0x8C, - 0x00, - 0xCA, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8C, - 0x8C, - 0xA5, - 0x9B, - 0x8C, - 0xB1, - 0x9B, - 0x79, - 0xE8, - 0xA3, - 0x7B, - 0x7B, - 0x65, - 0x65, - 0x29, - 0x3C, - 0x3C, - 0x29, - 0x3C, - 0x65, - 0x29, - 0x1B, - 0x1B, - 0x1B, - 0x29, - 0x3C, - 0x3C, - 0x3C, - 0x35, - 0x5D, - 0x71, - 0x4E, - 0x4E, - 0x5D, - 0x1B, - 0x5D, - 0x3C, - 0x4A, - 0x5D, - 0x4A, - 0x35, - 0x4A, - 0x4A, - 0x4A, - 0x35, - 0x5D, - 0x3C, - 0x4A, - 0x10, - 0x1E, - 0x11, - 0x1C, - 0x11, - 0x0E, - 0xBE, - 0xD0, - 0xBD, - 0xFC, - 0xFC, - 0xA9, - 0x96, - 0xBD, - 0xE8, - 0xC0, - 0x62, - 0x89, - 0xF1, - 0xE8, - 0x89, - 0xA3, - 0xA3, - 0x62, - 0x6D, - 0x4D, - 0x06, - 0x00, - 0x03, - 0x05, - 0x05, - 0x2A, - 0x5D, - 0x19, - 0x1F, - 0x60, - 0xA3, - 0x7A, - 0x96, - 0x7A, - 0x86, - 0x84, - 0x86, - 0xC0, - 0xA8, - 0x6F, - 0x5B, - 0xBD, - 0x4D, - 0x11, - 0x0F, - 0x16, - 0x09, - 0x09, - 0x11, - 0x05, - 0x05, - 0x05, - 0x03, - 0x05, - 0x03, - 0x0B, - 0x06, - 0x00, - 0x03, - 0x06, - 0x03, - 0x06, - 0x03, - 0x06, - 0x01, - 0x03, - 0x05, - 0x03, - 0x05, - 0x09, - 0x86, - 0x51, - 0x6D, - 0x57, - 0x51, - 0x68, - 0x77, - 0x75, - 0x7C, - 0x6A, - 0x77, - 0x7E, - 0x77, - 0x7E, - 0x6E, - 0x93, - 0x75, - 0x7E, - 0x8B, - 0x88, - 0x7C, - 0x7C, - 0xA4, - 0xA4, - 0xAD, - 0xA4, - 0x9D, - 0xA4, - 0x9D, - 0xAD, - 0xA4, - 0xAD, - 0x93, - 0x91, - 0x9E, - 0x87, - 0x8B, - 0x92, - 0x77, - 0x68, - 0x74, - 0x69, - 0x83, - 0x73, - 0x74, - 0x74, - 0x67, - 0x5B, - 0x21, - 0x31, - 0x2E, - 0x44, - 0x3D, - 0x48, - 0x44, - 0x54, - 0x44, - 0x30, - 0x2E, - 0x2E, - 0x3D, - 0x3D, - 0x42, - 0x42, - 0x65, - 0x9B, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xE7, - 0xF8, - 0x06, - 0xF3, - 0x00, - 0x0C, - 0xE7, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xD1, - 0x04, - 0xCB, - 0x00, - 0x30, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xBF, - 0xC7, - 0xD1, - 0xD1, - 0xC7, - 0xD1, - 0xC5, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xD1, - 0xC5, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xC5, - 0xD3, - 0xD3, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xD3, - 0xCC, - 0xC5, - 0xD9, - 0xCC, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0x06, - 0xCC, - 0x00, - 0x08, - 0xD3, - 0xCC, - 0xCC, - 0xD3, - 0xD9, - 0xD3, - 0xC3, - 0xCC, - 0x00, - 0x00, - 0x01, - 0x8C, - 0x01, - 0x82, - 0x04, - 0x8C, - 0x00, - 0x13, - 0x8F, - 0x8F, - 0x8C, - 0x82, - 0x8C, - 0x8F, - 0x82, - 0x8C, - 0x8F, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x80, - 0x8C, - 0x9B, - 0x8C, - 0x9B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x7E, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0x9B, - 0x8F, - 0x9B, - 0x8C, - 0x8C, - 0x9B, - 0x8F, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0xBC, - 0x80, - 0xA3, - 0xE8, - 0x96, - 0xA3, - 0x7B, - 0x5D, - 0x4E, - 0x3C, - 0x3C, - 0x21, - 0x3C, - 0x29, - 0x29, - 0x21, - 0x7B, - 0x7B, - 0x7B, - 0x4E, - 0x3C, - 0x07, - 0x39, - 0x35, - 0x4A, - 0x35, - 0x29, - 0x16, - 0x5D, - 0x86, - 0x3C, - 0x16, - 0x16, - 0x1E, - 0x1E, - 0x3C, - 0x10, - 0x16, - 0x35, - 0x5B, - 0x5D, - 0x1E, - 0x29, - 0x2A, - 0x10, - 0x11, - 0x0F, - 0x11, - 0xF1, - 0xF1, - 0xBD, - 0xD0, - 0xE8, - 0xFC, - 0xC0, - 0x96, - 0xE8, - 0xFC, - 0x96, - 0x4D, - 0x32, - 0x4D, - 0x62, - 0x32, - 0x0F, - 0x12, - 0x03, - 0x00, - 0x0B, - 0x11, - 0x09, - 0x11, - 0x1C, - 0x32, - 0x96, - 0x62, - 0x62, - 0xA8, - 0xF1, - 0xD0, - 0xBD, - 0xF1, - 0x96, - 0x89, - 0x96, - 0xA8, - 0xF1, - 0xC0, - 0x86, - 0xD0, - 0xA8, - 0x86, - 0x7A, - 0xA9, - 0x7A, - 0x4D, - 0x39, - 0x1F, - 0x11, - 0x06, - 0x0B, - 0x06, - 0x09, - 0x06, - 0x05, - 0x09, - 0x05, - 0x06, - 0x06, - 0x09, - 0x09, - 0x05, - 0x05, - 0x00, - 0x58, - 0x0E, - 0x57, - 0x0B, - 0x0D, - 0x57, - 0x57, - 0x73, - 0x6E, - 0x77, - 0x85, - 0x77, - 0x7E, - 0x75, - 0x77, - 0x75, - 0x75, - 0x85, - 0x85, - 0x7E, - 0x75, - 0x91, - 0x93, - 0xA4, - 0xA4, - 0xB7, - 0x9D, - 0x9E, - 0xA4, - 0x9E, - 0x93, - 0x93, - 0x7E, - 0x93, - 0x88, - 0x90, - 0x88, - 0x88, - 0x8B, - 0x7E, - 0x83, - 0x77, - 0x74, - 0x74, - 0x74, - 0x69, - 0x69, - 0x69, - 0x70, - 0x29, - 0x55, - 0x40, - 0x40, - 0x3F, - 0x3D, - 0x48, - 0x47, - 0x54, - 0x44, - 0x44, - 0x2E, - 0x2E, - 0x44, - 0x3D, - 0x42, - 0x54, - 0x54, - 0x65, - 0xAE, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xF3, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xC4, - 0xF3, - 0x0F, - 0xCB, - 0x00, - 0x07, - 0xBF, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xCB, - 0x00, - 0x05, - 0xD1, - 0x00, - 0x1F, - 0xBF, - 0xC7, - 0xD1, - 0xC7, - 0xD1, - 0xD1, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xCC, - 0xC5, - 0xD9, - 0x00, - 0x04, - 0xCC, - 0x00, - 0x0A, - 0xC5, - 0xC3, - 0xCC, - 0xCC, - 0xC3, - 0xD3, - 0xC5, - 0xD9, - 0xCC, - 0xCC, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x82, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x82, - 0x8C, - 0x82, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x00, - 0x07, - 0x8C, - 0x00, - 0x03, - 0x9B, - 0x8C, - 0x8F, - 0x00, - 0x06, - 0x8C, - 0x00, - 0x7C, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0x9B, - 0x9B, - 0x9B, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x9B, - 0xA3, - 0xE8, - 0x81, - 0xA3, - 0x96, - 0x43, - 0x5D, - 0x3C, - 0x4E, - 0x4D, - 0x1B, - 0x1B, - 0x35, - 0x6F, - 0x4E, - 0x5D, - 0x29, - 0x1B, - 0x29, - 0x4E, - 0x29, - 0x1B, - 0x3C, - 0x09, - 0x10, - 0x10, - 0x5D, - 0x3C, - 0x65, - 0x29, - 0x3C, - 0x39, - 0x35, - 0x2A, - 0x16, - 0x35, - 0x29, - 0x4A, - 0x35, - 0x29, - 0x1B, - 0x2A, - 0x11, - 0x05, - 0x62, - 0xA9, - 0xF1, - 0xD0, - 0x96, - 0xD0, - 0xC0, - 0xC0, - 0xE8, - 0x86, - 0xA9, - 0xE8, - 0xA3, - 0x96, - 0x4D, - 0x62, - 0x05, - 0x05, - 0x00, - 0x05, - 0x09, - 0x0F, - 0x09, - 0x2A, - 0x62, - 0x60, - 0x60, - 0x6F, - 0x86, - 0x89, - 0x7A, - 0x96, - 0xA8, - 0xF1, - 0xF1, - 0xF1, - 0xFC, - 0xD0, - 0xBD, - 0xA9, - 0xF1, - 0x96, - 0x96, - 0xFC, - 0xF1, - 0xA8, - 0xA9, - 0xC0, - 0x96, - 0x6F, - 0x6F, - 0x6F, - 0x4D, - 0x62, - 0x3C, - 0x11, - 0x11, - 0x11, - 0x09, - 0x09, - 0x09, - 0x0E, - 0x1C, - 0x16, - 0x01, - 0x04, - 0x09, - 0x00, - 0x73, - 0x1C, - 0x1F, - 0x05, - 0x0D, - 0x05, - 0x36, - 0x60, - 0x51, - 0x77, - 0x77, - 0x72, - 0x7E, - 0x91, - 0x9E, - 0x7E, - 0x7E, - 0x77, - 0x72, - 0x77, - 0x8B, - 0x9E, - 0x9E, - 0xB4, - 0xAB, - 0x92, - 0x83, - 0x88, - 0x88, - 0x72, - 0x88, - 0x87, - 0x75, - 0x88, - 0x91, - 0x88, - 0x7E, - 0x93, - 0x88, - 0x87, - 0x87, - 0x87, - 0x74, - 0x83, - 0x73, - 0x69, - 0x69, - 0x74, - 0x64, - 0x41, - 0x67, - 0x4A, - 0x52, - 0x31, - 0x3F, - 0x42, - 0x48, - 0x54, - 0x48, - 0x2E, - 0x2E, - 0x23, - 0x2E, - 0x20, - 0x44, - 0x53, - 0x42, - 0x6B, - 0x82, - 0xF3, - 0xE7, - 0xF8, - 0xF8, - 0xE7, - 0xE7, - 0xF3, - 0xF3, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xE7, - 0xF3, - 0xCB, - 0xF3, - 0xF3, - 0xF3, - 0xC4, - 0xF3, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xF3, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xCB, - 0xCB, - 0xC7, - 0xBF, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0x00, - 0x05, - 0xD1, - 0x00, - 0x29, - 0xB8, - 0xC7, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xC7, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xCC, - 0xD3, - 0xC5, - 0xCC, - 0xD3, - 0xCC, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xCC, - 0xCC, - 0xCF, - 0xD3, - 0xC5, - 0xC5, - 0xD9, - 0xC3, - 0xC5, - 0xCC, - 0xC3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x82, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x0C, - 0x8C, - 0x00, - 0x20, - 0x8F, - 0x9B, - 0x8F, - 0x8C, - 0x9B, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0x8C, - 0x8F, - 0x9B, - 0x8F, - 0xB1, - 0x9B, - 0xBC, - 0x9A, - 0xE8, - 0xFC, - 0x7B, - 0xA3, - 0x65, - 0x31, - 0x39, - 0x4E, - 0x3C, - 0x1B, - 0x29, - 0x4E, - 0x65, - 0x4E, - 0x7B, - 0x04, - 0x3C, - 0x00, - 0x3B, - 0x35, - 0x29, - 0x1B, - 0x16, - 0x16, - 0x1B, - 0x3C, - 0x5B, - 0x35, - 0x3C, - 0x35, - 0x29, - 0x10, - 0x16, - 0x29, - 0x4A, - 0x3C, - 0x4E, - 0x4E, - 0x29, - 0x35, - 0x10, - 0x09, - 0x4A, - 0xD8, - 0xD0, - 0xFF, - 0xD0, - 0x96, - 0xE8, - 0xC0, - 0x86, - 0xA9, - 0xA9, - 0x6F, - 0x62, - 0x6F, - 0x86, - 0x39, - 0x00, - 0x01, - 0x06, - 0x0F, - 0x1F, - 0x6C, - 0x62, - 0x7A, - 0x96, - 0x96, - 0xA8, - 0xC0, - 0x96, - 0xD0, - 0xD0, - 0xA9, - 0x96, - 0x89, - 0x89, - 0x89, - 0x00, - 0x04, - 0xFC, - 0x00, - 0x7D, - 0x96, - 0xC0, - 0xC0, - 0xA9, - 0xD0, - 0xF1, - 0xD0, - 0xFC, - 0xBD, - 0x96, - 0xA8, - 0xC0, - 0x96, - 0x5B, - 0x6F, - 0x6F, - 0x60, - 0x6C, - 0x96, - 0x4D, - 0x39, - 0x62, - 0x32, - 0x19, - 0x09, - 0x10, - 0x39, - 0x39, - 0x0B, - 0x0F, - 0x09, - 0x10, - 0x09, - 0x32, - 0x7A, - 0x8F, - 0x6E, - 0x7C, - 0x7E, - 0x77, - 0x92, - 0x6A, - 0x77, - 0x6A, - 0x68, - 0x7E, - 0x88, - 0x93, - 0x9D, - 0x9D, - 0xA0, - 0xB4, - 0x87, - 0x87, - 0x77, - 0x72, - 0x7E, - 0x68, - 0x7E, - 0x91, - 0x7E, - 0x72, - 0x91, - 0x93, - 0x88, - 0x88, - 0x91, - 0x87, - 0x87, - 0x88, - 0x83, - 0x83, - 0x74, - 0x83, - 0x73, - 0xA2, - 0x99, - 0x5C, - 0x49, - 0x4B, - 0x4A, - 0x40, - 0x48, - 0x48, - 0x48, - 0x54, - 0x44, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x23, - 0x3D, - 0x45, - 0x54, - 0x58, - 0x55, - 0xF8, - 0xF3, - 0xF3, - 0xF3, - 0xE7, - 0xF8, - 0xF8, - 0xE7, - 0xE7, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xE7, - 0xE7, - 0xE7, - 0xF3, - 0xC4, - 0xCB, - 0xE7, - 0xCB, - 0xC4, - 0xF3, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0x00, - 0x08, - 0xCB, - 0x00, - 0x3A, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xCB, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xD1, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC1, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0xD3, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xC5, - 0xD9, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xD9, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xD3, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8C, - 0x95, - 0x8C, - 0x95, - 0x8C, - 0x95, - 0x8C, - 0x00, - 0x06, - 0x8F, - 0x00, - 0x04, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x06, - 0x8C, - 0x00, - 0x09, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0x8C, - 0x8F, - 0x9B, - 0x8F, - 0x9B, - 0x00, - 0x04, - 0x8F, - 0x00, - 0xD7, - 0x9B, - 0x8F, - 0xBC, - 0x8F, - 0x9B, - 0x95, - 0xA5, - 0xE8, - 0x81, - 0x7B, - 0xA3, - 0x65, - 0x4E, - 0x4E, - 0x3C, - 0x29, - 0x29, - 0x3C, - 0x4E, - 0x4E, - 0x5D, - 0x7B, - 0x5D, - 0x21, - 0x65, - 0x29, - 0x29, - 0x29, - 0x4A, - 0x10, - 0x1B, - 0x1B, - 0x1B, - 0x22, - 0x29, - 0x29, - 0x65, - 0x3C, - 0x35, - 0x1B, - 0x3C, - 0x35, - 0x35, - 0x4E, - 0x35, - 0x3C, - 0x0E, - 0x0F, - 0x57, - 0xA9, - 0xD0, - 0xA9, - 0xFC, - 0xC0, - 0xC0, - 0xA9, - 0x96, - 0x62, - 0x6F, - 0x4E, - 0x6F, - 0x5B, - 0x39, - 0x1F, - 0x06, - 0x00, - 0x0A, - 0x0A, - 0x5B, - 0x7A, - 0x6F, - 0x62, - 0xA9, - 0xA9, - 0xA8, - 0xA9, - 0xE8, - 0xD0, - 0xA9, - 0xA8, - 0x6F, - 0xA9, - 0xA9, - 0x6D, - 0x60, - 0x96, - 0x89, - 0x96, - 0xA9, - 0x96, - 0x86, - 0xC0, - 0x97, - 0x89, - 0xD0, - 0xA9, - 0xFC, - 0xC0, - 0xA9, - 0x96, - 0xD0, - 0x96, - 0x6D, - 0xBD, - 0xBD, - 0x62, - 0x7A, - 0xA8, - 0x96, - 0x62, - 0x86, - 0x62, - 0x39, - 0x6C, - 0x6F, - 0x4D, - 0x0F, - 0x1C, - 0x0E, - 0x11, - 0x35, - 0x6F, - 0x73, - 0x89, - 0xC9, - 0x87, - 0x83, - 0x83, - 0x77, - 0x72, - 0x72, - 0x77, - 0x77, - 0x7C, - 0x88, - 0x93, - 0x72, - 0x87, - 0xA0, - 0x92, - 0x87, - 0x87, - 0x77, - 0x72, - 0x77, - 0x74, - 0x87, - 0x92, - 0x68, - 0x92, - 0x92, - 0x92, - 0x77, - 0x88, - 0x91, - 0x88, - 0x77, - 0x92, - 0x87, - 0x72, - 0x83, - 0x83, - 0x73, - 0x83, - 0x69, - 0x69, - 0x64, - 0x4C, - 0x3C, - 0x4F, - 0x31, - 0x3F, - 0x50, - 0x3F, - 0x30, - 0x2E, - 0x25, - 0x40, - 0x2E, - 0x23, - 0x2E, - 0x54, - 0x54, - 0x54, - 0x59, - 0xD1, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xF8, - 0xE7, - 0xE7, - 0xF3, - 0xE7, - 0xF3, - 0xF3, - 0xC4, - 0xF3, - 0xCB, - 0xCB, - 0xE7, - 0xC4, - 0xE7, - 0xCB, - 0xF3, - 0xCB, - 0xF3, - 0xCB, - 0xE7, - 0xCB, - 0xC4, - 0xCB, - 0xBF, - 0xE7, - 0x00, - 0x0E, - 0xCB, - 0x00, - 0x19, - 0xD1, - 0xCB, - 0xD1, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xD1, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xCF, - 0xC7, - 0xC7, - 0xC5, - 0xCD, - 0xCF, - 0x00, - 0x05, - 0xC5, - 0x00, - 0x15, - 0xD3, - 0xC5, - 0xCC, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xCC, - 0xC3, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xC5, - 0xCC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x95, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x8C, - 0x82, - 0x8C, - 0x82, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0x9B, - 0x9B, - 0x8F, - 0x9B, - 0x8C, - 0x8C, - 0x8F, - 0x9B, - 0x9B, - 0xE8, - 0xE8, - 0xE8, - 0x81, - 0x96, - 0x65, - 0x3C, - 0x3C, - 0x3C, - 0x4E, - 0x10, - 0x3C, - 0x3C, - 0x3C, - 0x5D, - 0x5D, - 0x2A, - 0x4E, - 0x1B, - 0x4E, - 0x1B, - 0x29, - 0x29, - 0x1E, - 0x16, - 0x10, - 0x09, - 0x10, - 0x1B, - 0x35, - 0x4E, - 0x1B, - 0x29, - 0x29, - 0x4E, - 0x1B, - 0x29, - 0x29, - 0x1C, - 0x39, - 0x7A, - 0xA9, - 0xFC, - 0xF1, - 0xD0, - 0xFC, - 0xBD, - 0x86, - 0x6F, - 0xA3, - 0x6F, - 0x05, - 0x11, - 0x11, - 0x4A, - 0x62, - 0x11, - 0x12, - 0x4D, - 0x89, - 0x6C, - 0x97, - 0xD0, - 0xFC, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0x96, - 0x89, - 0x6F, - 0x6D, - 0x39, - 0x62, - 0x4D, - 0x4D, - 0x12, - 0x12, - 0x0A, - 0x0A, - 0x1F, - 0x39, - 0x5B, - 0x6F, - 0x7A, - 0x6F, - 0x62, - 0x62, - 0x60, - 0x96, - 0xA8, - 0x7A, - 0x89, - 0xBD, - 0x96, - 0x86, - 0xA8, - 0xF1, - 0x96, - 0x89, - 0xF1, - 0x7A, - 0x62, - 0xA8, - 0xA8, - 0x89, - 0x7A, - 0x7A, - 0x1F, - 0x39, - 0x6F, - 0x86, - 0x62, - 0x5B, - 0x86, - 0x8F, - 0x7C, - 0x92, - 0x83, - 0x83, - 0x74, - 0x74, - 0x87, - 0x87, - 0x92, - 0x87, - 0x87, - 0x88, - 0x77, - 0xA0, - 0x92, - 0x87, - 0x77, - 0x87, - 0x87, - 0x77, - 0x83, - 0x83, - 0x77, - 0x92, - 0x83, - 0x87, - 0x7E, - 0x77, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x91, - 0x6A, - 0x87, - 0x74, - 0x74, - 0x83, - 0x69, - 0xA2, - 0x5C, - 0x56, - 0x3E, - 0x4F, - 0x4F, - 0x4E, - 0x52, - 0x3F, - 0x2E, - 0x31, - 0x40, - 0x2E, - 0x2E, - 0x21, - 0x23, - 0x2E, - 0x2E, - 0x42, - 0x54, - 0x54, - 0x65, - 0xCF, - 0xE7, - 0xF8, - 0x04, - 0xE7, - 0x00, - 0x10, - 0xF3, - 0xE7, - 0xF3, - 0xE7, - 0xE7, - 0xF3, - 0xE7, - 0xE7, - 0xC4, - 0xF3, - 0xF3, - 0xCB, - 0xCB, - 0xC4, - 0xC4, - 0xF3, - 0x05, - 0xCB, - 0x00, - 0x05, - 0xC4, - 0xCB, - 0xCB, - 0xF3, - 0xBB, - 0x00, - 0x0B, - 0xCB, - 0x00, - 0x33, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xD1, - 0xCB, - 0xBF, - 0xD1, - 0xBF, - 0xC7, - 0xCB, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xD1, - 0xC7, - 0xC7, - 0xCF, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xC5, - 0xCC, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xD9, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x00, - 0x0C, - 0x8F, - 0x00, - 0xD7, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x95, - 0x9B, - 0x9B, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x9B, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x8C, - 0xBC, - 0xB1, - 0x8F, - 0x8C, - 0x9B, - 0xE8, - 0xE8, - 0x7B, - 0xA3, - 0x65, - 0x4E, - 0x1B, - 0x4E, - 0x4E, - 0x3C, - 0x3C, - 0x4E, - 0x4E, - 0x3C, - 0x65, - 0x65, - 0x29, - 0x3C, - 0x29, - 0x2A, - 0x5B, - 0x29, - 0x10, - 0x1B, - 0x10, - 0x10, - 0x16, - 0x1B, - 0x29, - 0x29, - 0x35, - 0x35, - 0x3C, - 0x1E, - 0x1B, - 0x35, - 0x10, - 0x4C, - 0xD0, - 0xA9, - 0xF1, - 0xD0, - 0xF1, - 0xA9, - 0xFC, - 0xD0, - 0x96, - 0x86, - 0x86, - 0x05, - 0x09, - 0x11, - 0x0E, - 0x89, - 0x7A, - 0x62, - 0x4D, - 0x86, - 0x96, - 0x89, - 0xF1, - 0xF1, - 0xC0, - 0xFC, - 0xF1, - 0xF1, - 0xC0, - 0x7A, - 0x62, - 0x0F, - 0x06, - 0x03, - 0x03, - 0x03, - 0x06, - 0x00, - 0x01, - 0x03, - 0x05, - 0x05, - 0x11, - 0x4D, - 0x11, - 0x01, - 0x00, - 0x03, - 0x03, - 0x06, - 0x0D, - 0x4D, - 0x60, - 0x62, - 0xA9, - 0x6F, - 0x97, - 0x89, - 0xC0, - 0xA9, - 0x6F, - 0xD0, - 0xD0, - 0x96, - 0x7A, - 0xC0, - 0x6F, - 0xC0, - 0xA9, - 0x6F, - 0x6F, - 0xD0, - 0xF1, - 0x86, - 0x6F, - 0x86, - 0x89, - 0x7C, - 0x92, - 0x83, - 0x73, - 0x83, - 0x87, - 0x87, - 0x87, - 0x7E, - 0x88, - 0x88, - 0x92, - 0x77, - 0x83, - 0x92, - 0x92, - 0x92, - 0x83, - 0x87, - 0x83, - 0x83, - 0x92, - 0x87, - 0x72, - 0x77, - 0x88, - 0x7E, - 0x88, - 0x88, - 0x88, - 0x7E, - 0x7E, - 0x87, - 0x87, - 0x92, - 0x73, - 0x74, - 0x69, - 0x69, - 0x69, - 0x24, - 0x55, - 0x4F, - 0x55, - 0x4D, - 0x4F, - 0x52, - 0x40, - 0x3A, - 0x52, - 0x23, - 0x40, - 0x21, - 0x23, - 0x23, - 0x23, - 0x2E, - 0x42, - 0x50, - 0x50, - 0x59, - 0x82, - 0xD3, - 0xF8, - 0xE7, - 0xE7, - 0xF8, - 0xE7, - 0xF8, - 0x00, - 0x07, - 0xE7, - 0x00, - 0x10, - 0xCB, - 0xE7, - 0xE7, - 0xC4, - 0xE7, - 0xE7, - 0xC4, - 0xCB, - 0xBB, - 0xC4, - 0xCB, - 0xE7, - 0xCB, - 0xF3, - 0xBB, - 0xC4, - 0x04, - 0xCB, - 0x01, - 0xC4, - 0x0A, - 0xCB, - 0x00, - 0x22, - 0xD1, - 0xCB, - 0xD1, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xCB, - 0xC7, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0xBF, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC7, - 0xCF, - 0xC5, - 0xCF, - 0xC5, - 0xD3, - 0xCF, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xD3, - 0x05, - 0xC5, - 0x00, - 0x0B, - 0xD3, - 0xCC, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0xC5, - 0xC5, - 0xD3, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x82, - 0x95, - 0x82, - 0x8F, - 0x8C, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x95, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x95, - 0x8F, - 0x8C, - 0x9B, - 0x95, - 0x8F, - 0x8F, - 0x9B, - 0x8F, - 0xB1, - 0x8F, - 0x8C, - 0x95, - 0x9B, - 0xBC, - 0x9B, - 0xE8, - 0xE8, - 0x81, - 0xA3, - 0x7B, - 0x43, - 0x62, - 0x3C, - 0x3C, - 0x3C, - 0x4E, - 0x3C, - 0x4E, - 0x5D, - 0x86, - 0x4E, - 0x1B, - 0x1B, - 0x29, - 0x13, - 0x29, - 0x3C, - 0x35, - 0x16, - 0x10, - 0x14, - 0x29, - 0x4A, - 0x4E, - 0x3C, - 0x1B, - 0x35, - 0x3C, - 0x1B, - 0x29, - 0x39, - 0x32, - 0xBD, - 0xF1, - 0xFF, - 0xF1, - 0xF1, - 0xF1, - 0x89, - 0xFC, - 0xF1, - 0xD0, - 0xA8, - 0x16, - 0x05, - 0x1C, - 0x62, - 0x39, - 0x4D, - 0x6F, - 0x6F, - 0x4C, - 0x7A, - 0x8A, - 0x7A, - 0xA8, - 0x96, - 0x97, - 0x89, - 0x6D, - 0x62, - 0x4A, - 0x19, - 0x00, - 0x03, - 0x05, - 0x06, - 0x05, - 0x05, - 0x05, - 0x09, - 0x39, - 0x5D, - 0x4D, - 0x6F, - 0x62, - 0x39, - 0x4D, - 0x32, - 0x19, - 0x0A, - 0x05, - 0x06, - 0x06, - 0x06, - 0x0B, - 0x12, - 0x6D, - 0x62, - 0x62, - 0x89, - 0xA9, - 0xA8, - 0x6F, - 0x96, - 0xD0, - 0xBD, - 0x96, - 0x7A, - 0x89, - 0xA9, - 0xA9, - 0x86, - 0x89, - 0xC0, - 0xFC, - 0xC0, - 0x89, - 0x86, - 0x95, - 0x61, - 0x69, - 0x73, - 0x92, - 0x92, - 0x92, - 0x83, - 0x87, - 0xA0, - 0x87, - 0x92, - 0x77, - 0x92, - 0x68, - 0x87, - 0x83, - 0x92, - 0x83, - 0x83, - 0x87, - 0x83, - 0x87, - 0x83, - 0x87, - 0x92, - 0x91, - 0x92, - 0x91, - 0x87, - 0x87, - 0x87, - 0x92, - 0x88, - 0x74, - 0x74, - 0x83, - 0x69, - 0x64, - 0x4C, - 0x55, - 0x40, - 0x3C, - 0x40, - 0x4F, - 0x40, - 0x31, - 0x40, - 0x3A, - 0x3D, - 0x2E, - 0x44, - 0x23, - 0x21, - 0x21, - 0x2E, - 0x30, - 0x44, - 0x48, - 0x54, - 0x53, - 0x52, - 0x7D, - 0xF3, - 0xE7, - 0xF3, - 0x05, - 0xE7, - 0x00, - 0x04, - 0xF3, - 0xE7, - 0xE7, - 0xCB, - 0x04, - 0xE7, - 0x00, - 0x10, - 0xCB, - 0xF3, - 0xC4, - 0xCB, - 0xE7, - 0xCB, - 0xE7, - 0xCB, - 0xE7, - 0xBB, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0x0E, - 0xCB, - 0x00, - 0x1A, - 0xBF, - 0xCB, - 0xCB, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0xCB, - 0xCB, - 0xC7, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xC7, - 0xC7, - 0xD1, - 0xCF, - 0xBF, - 0xC7, - 0xC5, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xC7, - 0x09, - 0xC5, - 0x01, - 0xCF, - 0x0D, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x82, - 0x8F, - 0x82, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x82, - 0x95, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x0B, - 0x8F, - 0x00, - 0x30, - 0x95, - 0x8F, - 0x8F, - 0xBC, - 0x8C, - 0x8C, - 0x8F, - 0xB9, - 0x8F, - 0xE8, - 0xE8, - 0xF1, - 0x81, - 0x7B, - 0x65, - 0x5D, - 0x39, - 0x29, - 0x5D, - 0x3C, - 0x4E, - 0x4E, - 0x5D, - 0x6F, - 0x5D, - 0x5D, - 0x29, - 0x22, - 0x3C, - 0x10, - 0x1B, - 0x29, - 0x16, - 0x0E, - 0x0E, - 0x22, - 0x1B, - 0x29, - 0x3C, - 0x4A, - 0x5D, - 0x35, - 0x1B, - 0x1B, - 0x0E, - 0xFC, - 0xFA, - 0xD0, - 0x04, - 0xF1, - 0x00, - 0x8A, - 0xA9, - 0xF1, - 0xFC, - 0xA9, - 0x4A, - 0x39, - 0x62, - 0xA3, - 0x96, - 0x09, - 0x1F, - 0x1F, - 0x1C, - 0x4D, - 0x57, - 0x1F, - 0x26, - 0x1F, - 0x12, - 0x0A, - 0x03, - 0x00, - 0x03, - 0x01, - 0x09, - 0x35, - 0x6F, - 0x4D, - 0x4D, - 0x5B, - 0x4A, - 0x86, - 0xA3, - 0xC0, - 0x96, - 0x96, - 0xFC, - 0xA9, - 0x7A, - 0x6F, - 0x62, - 0x4D, - 0x5B, - 0x1E, - 0x09, - 0x05, - 0x05, - 0x03, - 0x03, - 0x03, - 0x09, - 0x26, - 0x60, - 0x6F, - 0x96, - 0x6F, - 0x6F, - 0x96, - 0xC0, - 0xD0, - 0x62, - 0x62, - 0x89, - 0xC0, - 0xBD, - 0x89, - 0xC0, - 0xF1, - 0xF1, - 0x7A, - 0x62, - 0x57, - 0x46, - 0x69, - 0x51, - 0x68, - 0x68, - 0x5E, - 0x74, - 0x72, - 0x68, - 0x77, - 0x68, - 0x77, - 0x74, - 0x87, - 0x92, - 0x92, - 0x87, - 0x83, - 0x87, - 0x87, - 0x93, - 0x92, - 0x87, - 0x87, - 0x88, - 0x88, - 0x87, - 0x91, - 0x88, - 0x92, - 0x92, - 0x83, - 0x83, - 0x83, - 0x74, - 0x64, - 0x4C, - 0x35, - 0x52, - 0x33, - 0x52, - 0x44, - 0x44, - 0x40, - 0x44, - 0x23, - 0x42, - 0x3D, - 0x3D, - 0x42, - 0x23, - 0x23, - 0x18, - 0x2E, - 0x2E, - 0x2E, - 0x42, - 0x48, - 0x48, - 0x3D, - 0x40, - 0xF3, - 0xE7, - 0xE7, - 0xE7, - 0xF8, - 0x06, - 0xE7, - 0x00, - 0x1F, - 0xD2, - 0xF3, - 0xE7, - 0xF3, - 0xD2, - 0xF3, - 0xC4, - 0xE7, - 0xCB, - 0xE7, - 0xCB, - 0xC4, - 0xE7, - 0xBB, - 0xE7, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xE7, - 0xCB, - 0xCB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xCB, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x04, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0x04, - 0xCB, - 0x00, - 0x15, - 0xBF, - 0xCB, - 0xBF, - 0xD1, - 0xBF, - 0xBF, - 0xD1, - 0xC7, - 0xBF, - 0xC7, - 0xD1, - 0xC5, - 0xC5, - 0xC7, - 0xCF, - 0xC5, - 0xC7, - 0xC5, - 0xC5, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x04, - 0xC7, - 0xC5, - 0xC5, - 0xC7, - 0x07, - 0xC5, - 0x00, - 0x06, - 0xD3, - 0xB8, - 0xB8, - 0xD3, - 0xD3, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x10, - 0x95, - 0x82, - 0x82, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x82, - 0x8F, - 0x8F, - 0x82, - 0x82, - 0x8F, - 0x8F, - 0x95, - 0x05, - 0x8F, - 0x01, - 0x8C, - 0x0F, - 0x8F, - 0x00, - 0xBD, - 0xBC, - 0x8F, - 0x8F, - 0x8F, - 0x9B, - 0x95, - 0x8F, - 0xBC, - 0x9B, - 0x95, - 0x8C, - 0x7F, - 0xE8, - 0xE8, - 0x81, - 0xA3, - 0x65, - 0x5D, - 0x17, - 0x4E, - 0x3C, - 0x39, - 0x3C, - 0x5D, - 0x3C, - 0x3C, - 0x7B, - 0x5D, - 0x3C, - 0x4E, - 0x1B, - 0x3C, - 0x29, - 0x3C, - 0x3C, - 0x10, - 0x09, - 0x10, - 0x0E, - 0x3C, - 0x3C, - 0x3C, - 0x29, - 0x16, - 0x0E, - 0x4D, - 0xD0, - 0xF1, - 0xFC, - 0xD0, - 0xF1, - 0xF1, - 0xD0, - 0xD0, - 0xA9, - 0xF1, - 0xC0, - 0x39, - 0x86, - 0x7A, - 0x5D, - 0xA9, - 0x1E, - 0x09, - 0x06, - 0x11, - 0x1F, - 0x09, - 0x01, - 0x03, - 0x05, - 0x03, - 0x03, - 0x05, - 0x05, - 0x0E, - 0x0E, - 0x2A, - 0x6F, - 0x96, - 0xE8, - 0x96, - 0xA8, - 0xA9, - 0xC0, - 0xC0, - 0xD0, - 0xD0, - 0xD0, - 0xF1, - 0xFC, - 0xFF, - 0xFC, - 0xA9, - 0xA9, - 0x6F, - 0x7A, - 0xA9, - 0x86, - 0x6F, - 0x4D, - 0x1C, - 0x05, - 0x03, - 0x03, - 0x00, - 0x06, - 0x26, - 0x7A, - 0x7A, - 0x6F, - 0x89, - 0x89, - 0xA9, - 0xA9, - 0x7A, - 0x4D, - 0x89, - 0xD0, - 0x86, - 0xA8, - 0x86, - 0x6C, - 0x62, - 0x60, - 0x5E, - 0x57, - 0x36, - 0x4B, - 0x24, - 0x24, - 0x36, - 0x36, - 0x46, - 0x51, - 0x5C, - 0x6A, - 0x74, - 0x72, - 0x83, - 0x74, - 0x83, - 0x74, - 0x83, - 0x87, - 0x91, - 0x92, - 0x87, - 0x87, - 0x91, - 0x92, - 0x92, - 0x88, - 0x92, - 0x87, - 0x83, - 0x83, - 0x83, - 0x69, - 0x64, - 0x67, - 0x4C, - 0x3C, - 0x40, - 0x40, - 0x3F, - 0x52, - 0x40, - 0x44, - 0x23, - 0x40, - 0x42, - 0x44, - 0x42, - 0x42, - 0x38, - 0x23, - 0x23, - 0x21, - 0x2E, - 0x2E, - 0x44, - 0x44, - 0x42, - 0x42, - 0x23, - 0x80, - 0xE7, - 0xF8, - 0x00, - 0x08, - 0xE7, - 0x00, - 0x17, - 0xF3, - 0xE7, - 0xE7, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xCB, - 0xCB, - 0xCB, - 0xC4, - 0xCB, - 0xE7, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0x00, - 0x04, - 0xCB, - 0x01, - 0xC4, - 0x06, - 0xCB, - 0x01, - 0xBB, - 0x05, - 0xCB, - 0x00, - 0x17, - 0xBF, - 0xCB, - 0xBF, - 0xD1, - 0xBF, - 0xD1, - 0xCB, - 0xC7, - 0xCB, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xC7, - 0xC7, - 0xC7, - 0xD1, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x08, - 0xCF, - 0xC5, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xC5, - 0xCF, - 0x04, - 0xC5, - 0x00, - 0x07, - 0xCF, - 0xB8, - 0xD3, - 0xD3, - 0xC5, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9C, - 0x04, - 0x95, - 0x00, - 0x04, - 0x82, - 0x82, - 0x95, - 0x8F, - 0x05, - 0x95, - 0x00, - 0x03, - 0x8F, - 0x8F, - 0x95, - 0x00, - 0x05, - 0x8F, - 0x01, - 0x8C, - 0x0E, - 0x8F, - 0x00, - 0x04, - 0x95, - 0x8F, - 0xBC, - 0x8C, - 0x05, - 0x8F, - 0x00, - 0x60, - 0xBC, - 0x8F, - 0xBC, - 0xE8, - 0xE8, - 0xF1, - 0x7B, - 0xA3, - 0x65, - 0x62, - 0x3C, - 0x3C, - 0x21, - 0x2A, - 0x3C, - 0x65, - 0x5D, - 0x5D, - 0x5D, - 0x3C, - 0x4E, - 0x29, - 0x3C, - 0x10, - 0x3C, - 0x1B, - 0x0E, - 0x09, - 0x35, - 0x4E, - 0x09, - 0x5D, - 0x1B, - 0x10, - 0x29, - 0x89, - 0xD0, - 0xFF, - 0xFF, - 0xFC, - 0xF1, - 0xFF, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0x86, - 0xA9, - 0xA9, - 0xE8, - 0x86, - 0x62, - 0x39, - 0x09, - 0x06, - 0x1F, - 0x09, - 0x00, - 0x05, - 0x06, - 0x09, - 0x1C, - 0x39, - 0x3C, - 0x4A, - 0x62, - 0x2A, - 0x62, - 0x6F, - 0x6F, - 0x6D, - 0x96, - 0xA8, - 0xBD, - 0xBD, - 0xF1, - 0xD0, - 0x89, - 0x89, - 0xD0, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0x86, - 0x96, - 0x96, - 0x5D, - 0x39, - 0x0F, - 0x04, - 0x05, - 0x00, - 0x1D, - 0x1F, - 0x32, - 0x62, - 0x60, - 0x89, - 0x89, - 0x6F, - 0x62, - 0x32, - 0x6F, - 0x4D, - 0x1C, - 0x19, - 0x1F, - 0x0D, - 0x15, - 0x26, - 0x15, - 0x15, - 0x24, - 0x15, - 0x24, - 0x24, - 0x24, - 0x36, - 0x46, - 0x68, - 0x74, - 0x74, - 0x00, - 0x05, - 0x68, - 0x00, - 0x1B, - 0x72, - 0x93, - 0x87, - 0x68, - 0x92, - 0x92, - 0x87, - 0x87, - 0x92, - 0xAB, - 0x92, - 0x92, - 0x83, - 0x74, - 0x64, - 0x64, - 0x4C, - 0x4D, - 0x33, - 0x52, - 0x52, - 0x52, - 0x59, - 0x3D, - 0x44, - 0x23, - 0x44, - 0x00, - 0x04, - 0x42, - 0x00, - 0x10, - 0x20, - 0x2E, - 0x3A, - 0x23, - 0x33, - 0x2E, - 0x44, - 0x48, - 0x3D, - 0x3A, - 0x42, - 0x76, - 0xE7, - 0xE7, - 0xE7, - 0xF8, - 0x0C, - 0xE7, - 0x00, - 0x07, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xE7, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x10, - 0xCB, - 0xBB, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0x04, - 0xCB, - 0x01, - 0xBF, - 0x09, - 0xCB, - 0x00, - 0x0B, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xBF, - 0xBF, - 0xD1, - 0xC7, - 0xB8, - 0xD1, - 0xD1, - 0x00, - 0x06, - 0xC7, - 0x00, - 0x17, - 0xC5, - 0xCF, - 0xC7, - 0xC7, - 0xC5, - 0xC5, - 0xCF, - 0xC5, - 0xB8, - 0xCF, - 0xB8, - 0xC5, - 0xCF, - 0xB8, - 0xC5, - 0xB8, - 0xCF, - 0xC5, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x82, - 0x95, - 0x82, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x82, - 0x8F, - 0x95, - 0x82, - 0x04, - 0x95, - 0x00, - 0x08, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8C, - 0x82, - 0x95, - 0x8C, - 0x04, - 0x8F, - 0x01, - 0x95, - 0x04, - 0x8F, - 0x00, - 0x03, - 0x95, - 0x8F, - 0x95, - 0x00, - 0x05, - 0x8F, - 0x00, - 0x54, - 0xBC, - 0x8F, - 0xBC, - 0x8F, - 0x8F, - 0x8C, - 0x8F, - 0x9B, - 0xA3, - 0xE8, - 0xE8, - 0xC0, - 0x5A, - 0x96, - 0x43, - 0x31, - 0x62, - 0x3C, - 0x3C, - 0x4E, - 0x5D, - 0x5B, - 0x4E, - 0x65, - 0x3C, - 0x3C, - 0x4E, - 0x29, - 0x3C, - 0x10, - 0x1B, - 0x10, - 0x10, - 0x16, - 0x5D, - 0x5D, - 0x29, - 0x4A, - 0x71, - 0xBD, - 0xFF, - 0xFC, - 0xFF, - 0xFF, - 0xFC, - 0xD0, - 0xFC, - 0xFC, - 0xFF, - 0xF1, - 0x86, - 0x96, - 0xA9, - 0x86, - 0x6C, - 0x0E, - 0x11, - 0x1C, - 0x1F, - 0x4D, - 0x32, - 0x1C, - 0x57, - 0x32, - 0x1F, - 0x32, - 0x7A, - 0xA9, - 0xA8, - 0xA9, - 0x6F, - 0x6F, - 0x7A, - 0x86, - 0x7A, - 0x62, - 0x60, - 0x7A, - 0x7A, - 0x62, - 0x89, - 0x6D, - 0x7A, - 0x8A, - 0x04, - 0xA9, - 0x00, - 0x5F, - 0xBE, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xD0, - 0xD0, - 0xD0, - 0xBD, - 0xD0, - 0x96, - 0x7A, - 0x6F, - 0x29, - 0x11, - 0x01, - 0x03, - 0x01, - 0x03, - 0x03, - 0x0D, - 0x0A, - 0x03, - 0x03, - 0x03, - 0x06, - 0x12, - 0x06, - 0x06, - 0x06, - 0x05, - 0x03, - 0x05, - 0x01, - 0x06, - 0x06, - 0x0D, - 0x0D, - 0x15, - 0x24, - 0x46, - 0x61, - 0x68, - 0x5E, - 0x69, - 0x5E, - 0x68, - 0x83, - 0x83, - 0x83, - 0x88, - 0x85, - 0x88, - 0x72, - 0x92, - 0x87, - 0x87, - 0x77, - 0xAB, - 0xAB, - 0x87, - 0x92, - 0x83, - 0x83, - 0x64, - 0x64, - 0x35, - 0x29, - 0x4F, - 0x4A, - 0x4F, - 0x4E, - 0x44, - 0x30, - 0x40, - 0x20, - 0x42, - 0x44, - 0x42, - 0x42, - 0x44, - 0x20, - 0x20, - 0x27, - 0x2E, - 0x3F, - 0x25, - 0x44, - 0x3F, - 0x2E, - 0x3D, - 0x30, - 0x55, - 0xC4, - 0xF3, - 0x00, - 0x0A, - 0xE7, - 0x00, - 0x10, - 0xD2, - 0xD2, - 0xE7, - 0xC4, - 0xC4, - 0xE7, - 0xE7, - 0xC4, - 0xF3, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xD2, - 0xBB, - 0xE7, - 0x04, - 0xC4, - 0x00, - 0x08, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xF3, - 0xC4, - 0x04, - 0xCB, - 0x01, - 0xBB, - 0x06, - 0xCB, - 0x00, - 0x0F, - 0xBB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xD1, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xC7, - 0xBF, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x1C, - 0xCF, - 0xC7, - 0xC7, - 0xC5, - 0xC5, - 0xC7, - 0xC7, - 0xC5, - 0xC5, - 0xC7, - 0xC5, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0xD3, - 0xB8, - 0xC5, - 0xCF, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xC5, - 0xB8, - 0xCF, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x82, - 0x8F, - 0x95, - 0x82, - 0x82, - 0x95, - 0x95, - 0x8F, - 0x06, - 0x95, - 0x00, - 0x1A, - 0x8F, - 0x82, - 0x8C, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x8F, - 0x82, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8C, - 0x04, - 0x8F, - 0x00, - 0x09, - 0xBC, - 0x8F, - 0xE8, - 0xE8, - 0x81, - 0xA3, - 0x7B, - 0x7B, - 0x31, - 0x00, - 0x05, - 0x3C, - 0x00, - 0x1C, - 0x65, - 0x3C, - 0x4E, - 0x7B, - 0x4E, - 0x29, - 0x39, - 0x1B, - 0x29, - 0x29, - 0x1E, - 0x04, - 0x05, - 0x4A, - 0x1B, - 0x3C, - 0x5D, - 0x79, - 0xF1, - 0xD0, - 0xD0, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0xFC, - 0x04, - 0xD0, - 0x00, - 0x80, - 0x39, - 0x1F, - 0x1E, - 0x4A, - 0x6C, - 0xA9, - 0xA9, - 0x86, - 0x6D, - 0x7A, - 0x6F, - 0x7A, - 0x62, - 0x62, - 0x89, - 0xA8, - 0xD0, - 0xBD, - 0xA9, - 0xA8, - 0x96, - 0x96, - 0x6F, - 0x57, - 0x6D, - 0x7A, - 0x4C, - 0x60, - 0x57, - 0x80, - 0x7A, - 0x6D, - 0x62, - 0x89, - 0xA9, - 0x7A, - 0xA9, - 0x89, - 0x7A, - 0xBD, - 0xF1, - 0xD0, - 0xBD, - 0xFC, - 0xF1, - 0xF1, - 0xA9, - 0xC0, - 0xC0, - 0x86, - 0x71, - 0x39, - 0x10, - 0x05, - 0x09, - 0x01, - 0x01, - 0x03, - 0x00, - 0x05, - 0x05, - 0x05, - 0x01, - 0x01, - 0x05, - 0x05, - 0x09, - 0x10, - 0x12, - 0x15, - 0x24, - 0x4B, - 0x5C, - 0x5E, - 0x69, - 0x5E, - 0x61, - 0x69, - 0x72, - 0x74, - 0x69, - 0x74, - 0x72, - 0x83, - 0x83, - 0x92, - 0x92, - 0x87, - 0x77, - 0x92, - 0xA0, - 0x92, - 0x92, - 0xB4, - 0x83, - 0xB4, - 0x83, - 0x74, - 0x4B, - 0x4C, - 0x49, - 0x4B, - 0x67, - 0x64, - 0x69, - 0x4E, - 0x4F, - 0x40, - 0x20, - 0x44, - 0x40, - 0x30, - 0x44, - 0x42, - 0x38, - 0x44, - 0x20, - 0x44, - 0x23, - 0x20, - 0x31, - 0x44, - 0x23, - 0x23, - 0x20, - 0x3D, - 0x59, - 0xF8, - 0x07, - 0xE7, - 0x00, - 0x1B, - 0xD2, - 0xE7, - 0xE7, - 0xE7, - 0xD2, - 0xE7, - 0xE7, - 0xE7, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xE7, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xCB, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x05, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xBB, - 0x00, - 0x04, - 0xCB, - 0x00, - 0x14, - 0xC4, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBF, - 0xBF, - 0xBF, - 0xCB, - 0xCB, - 0xCB, - 0xC7, - 0xCB, - 0xBF, - 0xBF, - 0xC7, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0x04, - 0xC7, - 0x00, - 0x1A, - 0xCF, - 0xC7, - 0xC7, - 0xC7, - 0xCF, - 0xC5, - 0xC7, - 0xC5, - 0xCF, - 0xB8, - 0xC5, - 0xC7, - 0xC5, - 0xB8, - 0xC5, - 0xB8, - 0xCF, - 0xB8, - 0xCF, - 0xB8, - 0xC5, - 0xC7, - 0xC5, - 0xCF, - 0xB8, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x03, - 0x82, - 0x95, - 0x82, - 0x00, - 0x0B, - 0x95, - 0x00, - 0x0A, - 0x8F, - 0x95, - 0x9C, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x0A, - 0x8F, - 0x00, - 0xBC, - 0x82, - 0xBC, - 0x8F, - 0x95, - 0xBC, - 0x8F, - 0x95, - 0x8F, - 0x82, - 0xBC, - 0xBC, - 0x95, - 0x8F, - 0xBC, - 0x8F, - 0x95, - 0xA8, - 0xE8, - 0xE8, - 0x7B, - 0x7B, - 0x7B, - 0x6C, - 0x3C, - 0x4E, - 0x3C, - 0x3C, - 0x4E, - 0x65, - 0x4E, - 0x65, - 0x5D, - 0x3C, - 0x0C, - 0x13, - 0x29, - 0x1B, - 0x10, - 0x14, - 0x09, - 0x16, - 0x29, - 0x39, - 0x39, - 0x10, - 0x96, - 0xF1, - 0xFA, - 0xD8, - 0xA9, - 0xD8, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0x6F, - 0x16, - 0x2A, - 0x62, - 0x89, - 0x6F, - 0x6F, - 0x4D, - 0x62, - 0x86, - 0x89, - 0xA8, - 0xA9, - 0xBD, - 0x89, - 0x62, - 0x62, - 0x60, - 0x89, - 0xC0, - 0xBD, - 0x86, - 0x96, - 0x96, - 0x86, - 0x60, - 0x60, - 0x06, - 0x06, - 0x1F, - 0x4C, - 0x60, - 0x6F, - 0x6D, - 0x32, - 0x0B, - 0x0B, - 0x2A, - 0x32, - 0x86, - 0x7A, - 0xA9, - 0x89, - 0xD0, - 0xD0, - 0xA9, - 0xF1, - 0xFC, - 0xBD, - 0xBD, - 0xFC, - 0xBD, - 0x89, - 0x86, - 0xBD, - 0x86, - 0x71, - 0x6F, - 0x4D, - 0x4A, - 0x10, - 0x10, - 0x16, - 0x16, - 0x10, - 0x86, - 0x86, - 0x96, - 0x62, - 0x5B, - 0x6F, - 0x57, - 0x57, - 0x7E, - 0x74, - 0x83, - 0x83, - 0x88, - 0x83, - 0x72, - 0x72, - 0x68, - 0x6E, - 0x83, - 0x77, - 0x83, - 0x92, - 0x83, - 0x87, - 0x92, - 0xA0, - 0x87, - 0xB4, - 0xB4, - 0xB4, - 0x83, - 0x83, - 0x74, - 0x64, - 0x5C, - 0x4B, - 0x5C, - 0x4B, - 0x56, - 0x73, - 0x5C, - 0x4D, - 0x67, - 0x55, - 0x4E, - 0x44, - 0x2E, - 0x38, - 0x33, - 0x40, - 0x40, - 0x20, - 0x42, - 0x3D, - 0x30, - 0x30, - 0x33, - 0x1A, - 0x18, - 0x21, - 0x23, - 0x23, - 0x52, - 0x82, - 0xF3, - 0x08, - 0xE7, - 0x00, - 0x0D, - 0xD2, - 0xE7, - 0xE7, - 0xD2, - 0xE7, - 0xC4, - 0xC4, - 0xD2, - 0xE7, - 0xC4, - 0xE7, - 0xC4, - 0xE7, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x1B, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xE7, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xD2, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xBB, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x0C, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xCB, - 0xC7, - 0xBF, - 0xD1, - 0xBF, - 0xBF, - 0xD1, - 0xD1, - 0x06, - 0xC7, - 0x00, - 0x17, - 0xC5, - 0xBF, - 0xC7, - 0xCF, - 0xB8, - 0xB8, - 0xCF, - 0xB8, - 0xCF, - 0xBF, - 0xC5, - 0xC7, - 0xCF, - 0xB8, - 0xB8, - 0xB8, - 0xCF, - 0xCF, - 0xB8, - 0xB8, - 0xC5, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x95, - 0x95, - 0x9C, - 0x82, - 0x82, - 0x9C, - 0x9C, - 0x82, - 0x04, - 0x95, - 0x00, - 0x07, - 0x9C, - 0x82, - 0x9C, - 0x82, - 0x95, - 0x95, - 0x95, - 0x00, - 0x04, - 0x8F, - 0x00, - 0x14, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0xBC, - 0x04, - 0x8F, - 0x00, - 0xAE, - 0x95, - 0x8F, - 0x95, - 0xA5, - 0xE8, - 0xE8, - 0x81, - 0x7B, - 0x7B, - 0x7B, - 0x4E, - 0x31, - 0x4A, - 0x4A, - 0x21, - 0x17, - 0x7B, - 0x5D, - 0x4E, - 0x5D, - 0x6C, - 0x29, - 0x21, - 0x4E, - 0x4E, - 0x3C, - 0x29, - 0x4A, - 0x5B, - 0x10, - 0x39, - 0xBD, - 0xD0, - 0xA9, - 0xD0, - 0xD0, - 0xD0, - 0xF1, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0x7A, - 0xA9, - 0x6F, - 0x7A, - 0x6F, - 0x6F, - 0x6F, - 0x62, - 0x4D, - 0x39, - 0x09, - 0x05, - 0x32, - 0x60, - 0x6C, - 0xBD, - 0xD0, - 0x7A, - 0x39, - 0x06, - 0x06, - 0x06, - 0x0B, - 0x1F, - 0x60, - 0x9A, - 0x6C, - 0x32, - 0x0B, - 0x06, - 0x05, - 0x03, - 0x05, - 0x09, - 0x06, - 0x12, - 0x09, - 0x06, - 0x06, - 0x0E, - 0x1F, - 0x12, - 0x06, - 0x06, - 0x0D, - 0x32, - 0x7A, - 0x7A, - 0xA9, - 0xD0, - 0xFC, - 0xBD, - 0x6F, - 0xA9, - 0xF1, - 0xC0, - 0xC0, - 0xA8, - 0xF1, - 0xA9, - 0xA9, - 0x86, - 0xD0, - 0xC0, - 0x6F, - 0x71, - 0x96, - 0x86, - 0x86, - 0xA9, - 0xA3, - 0x86, - 0x89, - 0x6F, - 0xD8, - 0x85, - 0xA0, - 0x91, - 0x87, - 0x7E, - 0x77, - 0x72, - 0x77, - 0x68, - 0x72, - 0x72, - 0x72, - 0x74, - 0x83, - 0x77, - 0x92, - 0x83, - 0x73, - 0xB4, - 0xB4, - 0x83, - 0x92, - 0x83, - 0x83, - 0x74, - 0x5C, - 0x36, - 0x4B, - 0x4B, - 0x4B, - 0x69, - 0x64, - 0x46, - 0x70, - 0x5C, - 0x4B, - 0x2A, - 0x33, - 0x23, - 0x55, - 0x33, - 0x33, - 0x40, - 0x33, - 0x40, - 0x44, - 0x42, - 0x33, - 0x23, - 0x44, - 0x3D, - 0x23, - 0x23, - 0x20, - 0x59, - 0x55, - 0xD1, - 0x0A, - 0xE7, - 0x00, - 0x0F, - 0xD2, - 0xD2, - 0xE7, - 0xE7, - 0xC4, - 0xE7, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xE7, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x14, - 0xBB, - 0xD2, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xC4, - 0x05, - 0xCB, - 0x00, - 0x10, - 0xBB, - 0xBF, - 0xCB, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xC7, - 0xBF, - 0xD1, - 0xBF, - 0x04, - 0xC7, - 0x00, - 0x19, - 0xD1, - 0xCF, - 0xB8, - 0xD1, - 0xB8, - 0xC7, - 0xC5, - 0xCF, - 0xB8, - 0xC7, - 0xB8, - 0xB8, - 0xC7, - 0xBF, - 0xCF, - 0xB8, - 0xCF, - 0xBF, - 0xC5, - 0xB8, - 0xCF, - 0xCF, - 0xB8, - 0xB8, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x95, - 0x98, - 0x95, - 0x9C, - 0x05, - 0x95, - 0x01, - 0x82, - 0x01, - 0x9C, - 0x09, - 0x95, - 0x01, - 0x82, - 0x01, - 0x95, - 0x05, - 0x8F, - 0x00, - 0x8E, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x9C, - 0x8F, - 0x95, - 0xBC, - 0x95, - 0x95, - 0x9C, - 0x8F, - 0xBC, - 0x95, - 0x8F, - 0x95, - 0x8F, - 0xBC, - 0x95, - 0x8F, - 0xBC, - 0x8F, - 0xBC, - 0x8D, - 0xE8, - 0xE8, - 0x7B, - 0x7B, - 0x43, - 0x6F, - 0x29, - 0x5D, - 0x3C, - 0x3C, - 0x4D, - 0x65, - 0x4E, - 0x65, - 0x4E, - 0x65, - 0x3C, - 0x39, - 0x71, - 0x5D, - 0x4E, - 0x4E, - 0x1E, - 0x16, - 0x89, - 0xA9, - 0xF1, - 0xD0, - 0xFA, - 0xD0, - 0xD0, - 0xA9, - 0xF1, - 0xA9, - 0xA9, - 0x7A, - 0xA9, - 0x89, - 0xBD, - 0xD0, - 0xD0, - 0xBD, - 0x6C, - 0x89, - 0x6F, - 0xA9, - 0x86, - 0x6F, - 0x6F, - 0x5B, - 0x3C, - 0x1E, - 0x62, - 0xD0, - 0xC0, - 0x7A, - 0x4D, - 0x11, - 0x05, - 0x05, - 0x05, - 0x00, - 0x06, - 0x06, - 0x03, - 0x06, - 0x09, - 0x39, - 0x11, - 0x2A, - 0x5D, - 0x05, - 0x09, - 0x1C, - 0x19, - 0x1C, - 0x1F, - 0x32, - 0x32, - 0x32, - 0x0F, - 0x03, - 0x03, - 0x00, - 0x0A, - 0x60, - 0x6F, - 0x96, - 0xFC, - 0xC0, - 0x96, - 0xA8, - 0xC0, - 0xA9, - 0xA9, - 0xF1, - 0xC0, - 0xF1, - 0xA9, - 0x96, - 0xA9, - 0xC0, - 0x6F, - 0x96, - 0xC0, - 0x6F, - 0x86, - 0xBD, - 0x96, - 0x7A, - 0x6D, - 0x6D, - 0xA9, - 0x95, - 0x73, - 0x74, - 0x83, - 0x08, - 0x74, - 0x06, - 0x83, - 0x00, - 0x11, - 0x74, - 0x83, - 0x73, - 0x69, - 0x5C, - 0x5E, - 0x4B, - 0x4B, - 0x4B, - 0x56, - 0x64, - 0x69, - 0x46, - 0x64, - 0x4B, - 0x28, - 0x0F, - 0x00, - 0x04, - 0x33, - 0x00, - 0x10, - 0x40, - 0x40, - 0x33, - 0x33, - 0x54, - 0x23, - 0x23, - 0x20, - 0x20, - 0x20, - 0x42, - 0x30, - 0x42, - 0x38, - 0x44, - 0x8D, - 0x09, - 0xE7, - 0x00, - 0x0D, - 0xD2, - 0xE7, - 0xD2, - 0xE7, - 0xD2, - 0xD2, - 0xE7, - 0xD2, - 0xC4, - 0xE7, - 0xC4, - 0xD2, - 0xE7, - 0x00, - 0x05, - 0xC4, - 0x01, - 0xE7, - 0x01, - 0xBB, - 0x04, - 0xC4, - 0x00, - 0x43, - 0xD2, - 0xBB, - 0xC4, - 0xC4, - 0xCB, - 0xC2, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xCB, - 0xBB, - 0xC4, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xD1, - 0xBF, - 0xBF, - 0xCB, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xBF, - 0xBF, - 0xC7, - 0xC7, - 0xB8, - 0xC7, - 0xD1, - 0xC7, - 0xB8, - 0xC7, - 0xB8, - 0xC7, - 0xC7, - 0xB8, - 0xC7, - 0xC7, - 0xB8, - 0xCF, - 0xAE, - 0xB8, - 0xCF, - 0xB8, - 0xB8, - 0xCF, - 0xAE, - 0xB8, - 0xB8, - 0xCF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x11, - 0x95, - 0x9C, - 0x95, - 0xAA, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x00, - 0x06, - 0x95, - 0x00, - 0x7F, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x9C, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0xBC, - 0x95, - 0x95, - 0xBC, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0xBC, - 0x8F, - 0x95, - 0xBC, - 0xE8, - 0xE8, - 0xC0, - 0x7A, - 0x5A, - 0xA3, - 0x4E, - 0x5D, - 0x5D, - 0x5B, - 0x0C, - 0x4E, - 0x7B, - 0x65, - 0x65, - 0x5D, - 0xA3, - 0x65, - 0x5D, - 0x4A, - 0x65, - 0x4A, - 0x6F, - 0xD0, - 0xD0, - 0xBD, - 0xD0, - 0xD0, - 0xF1, - 0xF1, - 0xF1, - 0xD0, - 0xFC, - 0xFC, - 0xA9, - 0xA9, - 0xBD, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0x89, - 0x62, - 0xA3, - 0xA9, - 0x6F, - 0xA9, - 0xA9, - 0xA8, - 0x7A, - 0x4D, - 0x4D, - 0x62, - 0x6C, - 0xA8, - 0xA9, - 0x62, - 0x6F, - 0x60, - 0x39, - 0x39, - 0x1F, - 0x0E, - 0x0E, - 0x1C, - 0x4A, - 0x6F, - 0x7A, - 0x6C, - 0x84, - 0x7A, - 0x76, - 0x62, - 0x5B, - 0x60, - 0x4D, - 0x60, - 0x62, - 0x60, - 0x4D, - 0x4D, - 0x57, - 0x39, - 0x03, - 0x05, - 0x00, - 0x11, - 0x62, - 0x6D, - 0xF1, - 0xF1, - 0x86, - 0x96, - 0xD0, - 0xA9, - 0xBD, - 0xA9, - 0xF1, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x42, - 0x86, - 0x86, - 0xC0, - 0x96, - 0x6F, - 0x89, - 0xC0, - 0x86, - 0x6F, - 0x6D, - 0x57, - 0x7A, - 0x69, - 0x5E, - 0x5C, - 0x83, - 0x87, - 0x83, - 0x83, - 0x74, - 0x73, - 0x74, - 0x83, - 0x83, - 0x87, - 0x83, - 0x83, - 0x74, - 0x83, - 0x74, - 0x68, - 0x74, - 0x69, - 0x46, - 0x36, - 0x41, - 0x24, - 0x4B, - 0x5C, - 0x46, - 0x4B, - 0x2D, - 0x28, - 0x07, - 0x2F, - 0x33, - 0x33, - 0x33, - 0x40, - 0x52, - 0x33, - 0x33, - 0x40, - 0x33, - 0x23, - 0x44, - 0x20, - 0x44, - 0x20, - 0x38, - 0x42, - 0x3D, - 0x44, - 0x59, - 0x59, - 0xCF, - 0x05, - 0xE7, - 0x00, - 0x13, - 0xD2, - 0xE7, - 0xD2, - 0xE7, - 0xE7, - 0xD2, - 0xE7, - 0xD2, - 0xD2, - 0xC4, - 0xE7, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xD2, - 0x00, - 0x11, - 0xC4, - 0x00, - 0x1A, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xCB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBF, - 0xBF, - 0xCB, - 0xBF, - 0xBF, - 0xCB, - 0xBF, - 0xD1, - 0x04, - 0xBF, - 0x00, - 0x1D, - 0xC7, - 0xBF, - 0xC7, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xC7, - 0xB8, - 0xB8, - 0xD1, - 0xB8, - 0xB8, - 0xD1, - 0xD1, - 0xB8, - 0xB8, - 0xCF, - 0xAE, - 0xCF, - 0xB8, - 0xCF, - 0xB8, - 0xCF, - 0xAE, - 0xC5, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x9F, - 0x82, - 0x95, - 0x82, - 0x98, - 0x8F, - 0x98, - 0x95, - 0x9C, - 0x82, - 0x82, - 0x9F, - 0x04, - 0x95, - 0x00, - 0x0E, - 0x82, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x8F, - 0x9C, - 0x9C, - 0x8F, - 0x05, - 0x95, - 0x00, - 0x03, - 0xBC, - 0x9C, - 0x82, - 0x00, - 0x04, - 0x95, - 0x00, - 0xB2, - 0x9C, - 0x8F, - 0x82, - 0xBC, - 0x95, - 0x8F, - 0x9C, - 0x95, - 0x95, - 0x8F, - 0x7B, - 0xE8, - 0x81, - 0xA3, - 0x5D, - 0x7B, - 0x5A, - 0x4D, - 0x4E, - 0x3C, - 0x3C, - 0x4E, - 0x5D, - 0x43, - 0x65, - 0xA3, - 0x7B, - 0x71, - 0x3C, - 0x4E, - 0x39, - 0xA3, - 0xD0, - 0xBD, - 0x89, - 0xA9, - 0xD0, - 0xD0, - 0xA9, - 0xC6, - 0xA9, - 0x89, - 0xF1, - 0xF1, - 0xD0, - 0xF1, - 0x86, - 0x89, - 0x6F, - 0xA9, - 0x96, - 0x89, - 0xBD, - 0xBD, - 0x89, - 0x62, - 0x06, - 0x1F, - 0x96, - 0xA8, - 0x96, - 0x96, - 0x96, - 0x7A, - 0x89, - 0xA9, - 0x7A, - 0x89, - 0x89, - 0x97, - 0x89, - 0x6F, - 0x7A, - 0x7A, - 0x6C, - 0x60, - 0x6C, - 0xA8, - 0xA8, - 0x96, - 0x96, - 0xC0, - 0xA8, - 0x6F, - 0x6F, - 0x6D, - 0x6F, - 0x6F, - 0x6D, - 0x6D, - 0x6F, - 0x86, - 0x96, - 0x7A, - 0x4A, - 0x1C, - 0x03, - 0x00, - 0x1C, - 0x5B, - 0x96, - 0xA8, - 0x62, - 0x96, - 0xC0, - 0x96, - 0xF1, - 0x96, - 0xD0, - 0xF1, - 0x86, - 0xF1, - 0x96, - 0x86, - 0xA9, - 0xA8, - 0x6C, - 0x96, - 0x6F, - 0x62, - 0x86, - 0x6D, - 0x60, - 0x46, - 0x46, - 0x64, - 0x51, - 0x5C, - 0x69, - 0x73, - 0x73, - 0x74, - 0x83, - 0x74, - 0x74, - 0x69, - 0x74, - 0x74, - 0x69, - 0x69, - 0x5E, - 0x69, - 0x69, - 0x46, - 0x4B, - 0x41, - 0x41, - 0x41, - 0x4B, - 0x56, - 0x24, - 0x2D, - 0x28, - 0x0D, - 0x28, - 0x02, - 0x33, - 0x44, - 0x44, - 0x44, - 0x40, - 0x40, - 0x40, - 0x33, - 0x33, - 0x33, - 0x44, - 0x44, - 0x38, - 0x20, - 0x38, - 0x42, - 0x44, - 0x38, - 0x52, - 0x59, - 0x6B, - 0xD2, - 0x06, - 0xE7, - 0x01, - 0xD2, - 0x01, - 0xE7, - 0x04, - 0xD2, - 0x00, - 0x0B, - 0xE7, - 0xD2, - 0xE7, - 0xC2, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC2, - 0x00, - 0x04, - 0xC4, - 0x00, - 0x05, - 0xD2, - 0xC4, - 0xC4, - 0xD2, - 0xBB, - 0x00, - 0x0A, - 0xC4, - 0x01, - 0xCB, - 0x04, - 0xC4, - 0x00, - 0x12, - 0xCB, - 0xC4, - 0xBB, - 0xBB, - 0xC4, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xCB, - 0xBF, - 0xBB, - 0xCB, - 0xCB, - 0xB3, - 0xBF, - 0xCB, - 0xCB, - 0x04, - 0xBF, - 0x00, - 0x1F, - 0xC7, - 0xC7, - 0xBF, - 0xBF, - 0xC7, - 0xC7, - 0xBF, - 0xBF, - 0xCF, - 0xD1, - 0xB8, - 0xB8, - 0xCF, - 0xC7, - 0xB8, - 0xCF, - 0xBF, - 0xB8, - 0xB8, - 0xAE, - 0xD1, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xBF, - 0xB8, - 0xC5, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x95, - 0x9C, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x82, - 0x95, - 0x82, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x82, - 0x8F, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x95, - 0x8F, - 0x8F, - 0x95, - 0x8F, - 0x9C, - 0x04, - 0x95, - 0x00, - 0x9C, - 0x9C, - 0x95, - 0x95, - 0xBC, - 0x9C, - 0x95, - 0x8F, - 0x9C, - 0xBC, - 0x95, - 0x95, - 0xBC, - 0x95, - 0x95, - 0x8F, - 0x95, - 0x9C, - 0xE8, - 0x81, - 0xC0, - 0xA3, - 0x65, - 0x65, - 0x65, - 0x37, - 0x4A, - 0x4D, - 0x21, - 0x4E, - 0x62, - 0xA3, - 0x65, - 0x7B, - 0x7B, - 0x71, - 0x3C, - 0x71, - 0xA9, - 0x96, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xA9, - 0x7A, - 0xA9, - 0x89, - 0x89, - 0x89, - 0x62, - 0x62, - 0xBD, - 0xD0, - 0xBD, - 0xF1, - 0xD0, - 0xA9, - 0x7A, - 0x6F, - 0x11, - 0x03, - 0x26, - 0xA8, - 0x96, - 0xC0, - 0xAF, - 0xA9, - 0xA9, - 0xBD, - 0xA9, - 0xC0, - 0xA8, - 0xA9, - 0xA8, - 0x96, - 0xD0, - 0xC0, - 0xC0, - 0x6F, - 0x62, - 0x7A, - 0x7A, - 0x80, - 0x9A, - 0x7A, - 0x7A, - 0x6D, - 0x7D, - 0x7A, - 0x84, - 0xA8, - 0x86, - 0x89, - 0x96, - 0x96, - 0x86, - 0x96, - 0x96, - 0xA8, - 0x62, - 0x09, - 0x03, - 0x0E, - 0x5B, - 0x86, - 0x86, - 0x89, - 0x7A, - 0xA8, - 0xBD, - 0xC0, - 0x96, - 0xF1, - 0x96, - 0x96, - 0xC0, - 0x7A, - 0xA3, - 0x96, - 0x62, - 0x62, - 0x6F, - 0x6F, - 0x4D, - 0x60, - 0x32, - 0x36, - 0x46, - 0x36, - 0x46, - 0x61, - 0x74, - 0x74, - 0x83, - 0x68, - 0x69, - 0x5C, - 0x46, - 0x5C, - 0x5E, - 0x5C, - 0x51, - 0x69, - 0x46, - 0x46, - 0x36, - 0x36, - 0x4B, - 0x2D, - 0x41, - 0x2D, - 0x41, - 0x15, - 0x04, - 0x28, - 0x00, - 0x18, - 0x4F, - 0x55, - 0x33, - 0x33, - 0x40, - 0x52, - 0x33, - 0x55, - 0x33, - 0x4F, - 0x33, - 0x40, - 0x38, - 0x30, - 0x2E, - 0x38, - 0x38, - 0x44, - 0x42, - 0x44, - 0x59, - 0x7B, - 0xA7, - 0xAE, - 0x06, - 0xE7, - 0x0C, - 0xD2, - 0x00, - 0x03, - 0xC4, - 0xC4, - 0xD2, - 0x00, - 0x04, - 0xC4, - 0x01, - 0xD2, - 0x01, - 0xC2, - 0x09, - 0xC4, - 0x00, - 0x1C, - 0xC2, - 0xCB, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xCB, - 0xC4, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xBB, - 0x05, - 0xBF, - 0x01, - 0xB8, - 0x05, - 0xBF, - 0x00, - 0x06, - 0xC7, - 0xB8, - 0xBF, - 0xCF, - 0xC7, - 0xC7, - 0x04, - 0xBF, - 0x00, - 0x0F, - 0xB8, - 0xBF, - 0xBF, - 0xCF, - 0xB8, - 0xC7, - 0xBF, - 0xBF, - 0xB8, - 0xC5, - 0xB8, - 0xCF, - 0xAE, - 0xAE, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x9F, - 0x9F, - 0x82, - 0x9F, - 0x82, - 0x9C, - 0x95, - 0x9F, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x82, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x9F, - 0x9C, - 0x00, - 0x07, - 0x95, - 0x00, - 0x0F, - 0x9C, - 0x8F, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x00, - 0x04, - 0x95, - 0x00, - 0x82, - 0x9C, - 0xBC, - 0x95, - 0x9C, - 0xBC, - 0x8F, - 0xB1, - 0xE8, - 0xA3, - 0x7B, - 0x7B, - 0x7B, - 0x65, - 0x4E, - 0x4E, - 0x4E, - 0x3C, - 0x3C, - 0x65, - 0x65, - 0x71, - 0x65, - 0xA3, - 0x5D, - 0x5B, - 0xBE, - 0xAF, - 0xD0, - 0xA9, - 0xBD, - 0xA9, - 0xA9, - 0xFF, - 0xF1, - 0xA9, - 0xD0, - 0xA9, - 0xA9, - 0xD0, - 0x89, - 0x89, - 0x89, - 0x7A, - 0xA9, - 0xD0, - 0xA9, - 0xD0, - 0xBD, - 0xBD, - 0xBD, - 0xA9, - 0xBD, - 0x3C, - 0x05, - 0x6F, - 0x6F, - 0x4D, - 0xD0, - 0xF1, - 0xC0, - 0x96, - 0x6F, - 0x86, - 0xBD, - 0xA9, - 0x7A, - 0x96, - 0xA8, - 0xF1, - 0xC0, - 0x5B, - 0x7A, - 0x97, - 0x97, - 0x62, - 0x7A, - 0x7A, - 0xA8, - 0xA8, - 0x86, - 0x86, - 0x7A, - 0x6C, - 0x84, - 0x4D, - 0x32, - 0x1F, - 0x1F, - 0x32, - 0x60, - 0x6F, - 0xA8, - 0x86, - 0x10, - 0x01, - 0x00, - 0x4D, - 0x6F, - 0x86, - 0xA9, - 0x86, - 0x96, - 0xD0, - 0x96, - 0xF1, - 0xA8, - 0x6F, - 0xBD, - 0xA8, - 0x86, - 0xA9, - 0x86, - 0x6F, - 0x6F, - 0x4A, - 0x26, - 0x1F, - 0x06, - 0x06, - 0x06, - 0x26, - 0x46, - 0x6D, - 0x73, - 0xA9, - 0x61, - 0x46, - 0x46, - 0x46, - 0x5C, - 0x04, - 0x46, - 0x00, - 0x04, - 0x36, - 0x36, - 0x36, - 0x24, - 0x05, - 0x2D, - 0x01, - 0x28, - 0x01, - 0x2D, - 0x04, - 0x28, - 0x00, - 0x18, - 0x2F, - 0x2F, - 0x2F, - 0x40, - 0x40, - 0x40, - 0x52, - 0x33, - 0x52, - 0x44, - 0x42, - 0x44, - 0x44, - 0x30, - 0x30, - 0x23, - 0x44, - 0x42, - 0x42, - 0x42, - 0x59, - 0x65, - 0x8D, - 0xAE, - 0x04, - 0xE7, - 0x00, - 0x06, - 0xD2, - 0xD2, - 0xD2, - 0xE7, - 0xD2, - 0xE7, - 0x04, - 0xD2, - 0x00, - 0x12, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xD2, - 0xC2, - 0xC4, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC2, - 0x05, - 0xC4, - 0x01, - 0xBB, - 0x09, - 0xC4, - 0x00, - 0x10, - 0xCB, - 0xBB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBF, - 0xBF, - 0xBB, - 0xBF, - 0xBB, - 0xBF, - 0xCB, - 0x0A, - 0xBF, - 0x00, - 0x1B, - 0xC7, - 0xBF, - 0xBF, - 0xD1, - 0xB8, - 0xB8, - 0xBF, - 0xBF, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xBF, - 0xB8, - 0xC7, - 0xBF, - 0xBF, - 0xBF, - 0xB8, - 0xB8, - 0xB8, - 0xC7, - 0xB8, - 0xB8, - 0xB8, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x82, - 0x9F, - 0x82, - 0x9F, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x9F, - 0x95, - 0x95, - 0x98, - 0x9C, - 0x95, - 0xAA, - 0x95, - 0x95, - 0x9C, - 0x0A, - 0x95, - 0x00, - 0x31, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9F, - 0xBC, - 0x95, - 0x9C, - 0x95, - 0x95, - 0xBC, - 0x95, - 0x9C, - 0x8F, - 0x9C, - 0x9C, - 0x8F, - 0xAA, - 0x82, - 0xBC, - 0x9C, - 0xF1, - 0x81, - 0xA3, - 0x7B, - 0x71, - 0x7B, - 0x65, - 0x31, - 0x4E, - 0x3C, - 0x3C, - 0x5D, - 0x65, - 0x65, - 0x65, - 0x71, - 0x7A, - 0x96, - 0xA9, - 0xA9, - 0xD0, - 0xD0, - 0xA9, - 0x89, - 0xBE, - 0xD0, - 0xF1, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x8A, - 0xF1, - 0x89, - 0x62, - 0xBD, - 0xC0, - 0x89, - 0xD0, - 0x62, - 0xBD, - 0xD0, - 0xD0, - 0xBD, - 0x89, - 0x96, - 0xFC, - 0x5D, - 0x6F, - 0x89, - 0x11, - 0x1F, - 0xF1, - 0xFC, - 0xA9, - 0x09, - 0x78, - 0xD0, - 0x96, - 0x6D, - 0x6D, - 0x7A, - 0x7D, - 0x97, - 0x96, - 0x96, - 0x96, - 0xA9, - 0x86, - 0x76, - 0xA8, - 0x6F, - 0x6F, - 0x79, - 0x5B, - 0x4D, - 0x4D, - 0x4A, - 0x60, - 0x5B, - 0x60, - 0x32, - 0x60, - 0x32, - 0x32, - 0x5B, - 0xA8, - 0x86, - 0x10, - 0x05, - 0x03, - 0x5B, - 0x86, - 0x86, - 0xC0, - 0x86, - 0xC0, - 0xA9, - 0x96, - 0xD0, - 0x6F, - 0x86, - 0x6F, - 0x6F, - 0x6F, - 0x7A, - 0x62, - 0x7A, - 0x5D, - 0x1E, - 0x10, - 0x16, - 0x4A, - 0x86, - 0x89, - 0x57, - 0x6D, - 0x6D, - 0x57, - 0x46, - 0x5C, - 0x5C, - 0x5C, - 0x36, - 0x5C, - 0x46, - 0x46, - 0x46, - 0x4B, - 0x36, - 0x24, - 0x2D, - 0x2D, - 0x28, - 0x2D, - 0x49, - 0x28, - 0x2F, - 0x28, - 0x3E, - 0x2F, - 0x4F, - 0x2F, - 0x2F, - 0x2F, - 0x55, - 0x44, - 0x44, - 0x52, - 0x52, - 0x44, - 0x44, - 0x44, - 0x38, - 0x44, - 0x44, - 0x20, - 0x23, - 0x38, - 0x3D, - 0x42, - 0x42, - 0x59, - 0x59, - 0x59, - 0x78, - 0xD2, - 0xE7, - 0xE7, - 0xE7, - 0x0E, - 0xD2, - 0x00, - 0x10, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC4, - 0xC4, - 0xD2, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0x0A, - 0xC4, - 0x00, - 0x14, - 0xBB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBF, - 0xBB, - 0xCB, - 0xCB, - 0xB3, - 0xCB, - 0x0A, - 0xBF, - 0x00, - 0x1B, - 0xB3, - 0xB8, - 0xBF, - 0xC7, - 0xBF, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xC7, - 0xB8, - 0xC7, - 0xB8, - 0xB8, - 0xC5, - 0xAE, - 0xA7, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x9F, - 0x9C, - 0xAA, - 0x95, - 0x95, - 0x98, - 0x9F, - 0x82, - 0x98, - 0x9F, - 0x82, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x95, - 0x82, - 0x9C, - 0x95, - 0x82, - 0x9C, - 0x00, - 0x05, - 0x95, - 0x00, - 0x9A, - 0x8F, - 0x9C, - 0x9C, - 0xBC, - 0x95, - 0x9C, - 0x95, - 0xBC, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0xBC, - 0x95, - 0x9C, - 0x9C, - 0x8F, - 0xAA, - 0x8F, - 0x9C, - 0xC3, - 0x82, - 0xA7, - 0xE8, - 0x81, - 0x7B, - 0x7B, - 0x7B, - 0x71, - 0x5D, - 0x31, - 0x5B, - 0x4E, - 0x65, - 0x86, - 0x7B, - 0x8D, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xBD, - 0xD0, - 0xA9, - 0xA9, - 0x6F, - 0x96, - 0xD0, - 0xF1, - 0xA9, - 0xD8, - 0xA9, - 0x96, - 0xF1, - 0x96, - 0x89, - 0xA9, - 0xA8, - 0x89, - 0x6F, - 0x05, - 0xD0, - 0xD0, - 0xA9, - 0x6F, - 0x09, - 0x6F, - 0xF1, - 0xF1, - 0xA8, - 0x7A, - 0x5B, - 0x00, - 0x62, - 0x6F, - 0x7A, - 0x11, - 0x03, - 0xA8, - 0xC0, - 0x89, - 0x89, - 0x7A, - 0xA9, - 0xA8, - 0xA9, - 0xAF, - 0xA8, - 0xBD, - 0x6F, - 0x89, - 0x84, - 0x76, - 0x6C, - 0x62, - 0x4D, - 0x32, - 0x39, - 0x09, - 0x03, - 0x0B, - 0x0E, - 0x10, - 0x0E, - 0x39, - 0x32, - 0x4D, - 0x5B, - 0xA3, - 0xA3, - 0x35, - 0x03, - 0x0E, - 0x6F, - 0x86, - 0xA9, - 0x89, - 0x6F, - 0xBD, - 0x7A, - 0xA8, - 0x86, - 0x6F, - 0x62, - 0x4C, - 0x60, - 0x12, - 0x03, - 0x06, - 0x11, - 0x09, - 0x32, - 0x62, - 0x62, - 0x62, - 0x96, - 0xA9, - 0x57, - 0x57, - 0x4C, - 0x2D, - 0x46, - 0x4B, - 0x46, - 0x36, - 0x4B, - 0x5C, - 0x36, - 0x24, - 0x41, - 0x04, - 0x2D, - 0x00, - 0x25, - 0x49, - 0x49, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x4F, - 0x33, - 0x33, - 0x4F, - 0x40, - 0x33, - 0x40, - 0x40, - 0x52, - 0x42, - 0x59, - 0x42, - 0x44, - 0x44, - 0x44, - 0x23, - 0x23, - 0x30, - 0x3D, - 0x42, - 0x54, - 0x54, - 0x59, - 0x48, - 0x59, - 0x7B, - 0xCB, - 0xE7, - 0xD2, - 0xE7, - 0xE7, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x13, - 0xC2, - 0xD2, - 0xC4, - 0xD2, - 0xC2, - 0xD2, - 0xC4, - 0xD2, - 0xC4, - 0xC4, - 0xC4, - 0xD2, - 0xC2, - 0xC4, - 0xC4, - 0xD2, - 0xC2, - 0xC4, - 0xC2, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x03, - 0xB5, - 0xC4, - 0xB5, - 0x00, - 0x08, - 0xC4, - 0x00, - 0x16, - 0xBB, - 0xBB, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xBF, - 0xB3, - 0xCB, - 0xBF, - 0xBB, - 0xBB, - 0xBF, - 0xB3, - 0x06, - 0xBF, - 0x01, - 0xB8, - 0x05, - 0xBF, - 0x00, - 0x03, - 0xC7, - 0xB8, - 0xD1, - 0x00, - 0x09, - 0xBF, - 0x00, - 0x09, - 0xB8, - 0xCF, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xCF, - 0xCF, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x82, - 0x82, - 0x9C, - 0x98, - 0x9F, - 0x8E, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x9F, - 0x82, - 0xAA, - 0x9F, - 0x95, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9F, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x82, - 0x9C, - 0x95, - 0x95, - 0x98, - 0x95, - 0xC3, - 0x04, - 0x9C, - 0x00, - 0x90, - 0x9F, - 0x95, - 0x95, - 0x9C, - 0xBC, - 0x9C, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x8F, - 0x9C, - 0x95, - 0x9A, - 0xE8, - 0xA3, - 0x7B, - 0x65, - 0x5A, - 0x6F, - 0x4E, - 0x4E, - 0x5D, - 0x65, - 0x7B, - 0x96, - 0xD0, - 0xA9, - 0xD0, - 0xF1, - 0xD0, - 0xD0, - 0xBD, - 0xBD, - 0xA9, - 0x97, - 0x86, - 0x4A, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0x96, - 0xD0, - 0xBD, - 0xC0, - 0xD0, - 0xD0, - 0x96, - 0x6F, - 0x0D, - 0xD0, - 0xF1, - 0xA9, - 0x86, - 0x00, - 0x4D, - 0x96, - 0xA9, - 0xFC, - 0xC0, - 0xA9, - 0x09, - 0x1C, - 0x7A, - 0xA8, - 0x62, - 0x01, - 0x12, - 0xA9, - 0xA9, - 0xD0, - 0x7A, - 0x86, - 0xBD, - 0xA9, - 0xF1, - 0xBD, - 0x62, - 0xA8, - 0x97, - 0x7A, - 0x6F, - 0x86, - 0x4D, - 0x11, - 0x09, - 0x03, - 0x12, - 0x26, - 0x57, - 0x26, - 0x41, - 0x12, - 0x11, - 0x14, - 0x1F, - 0x4A, - 0x5B, - 0x86, - 0xA3, - 0x5D, - 0x01, - 0x16, - 0x5D, - 0x6F, - 0x89, - 0x62, - 0x60, - 0x62, - 0x60, - 0x60, - 0x26, - 0x11, - 0x06, - 0x00, - 0x01, - 0x09, - 0x09, - 0x09, - 0x05, - 0x05, - 0x10, - 0x2A, - 0x71, - 0x60, - 0x89, - 0x60, - 0x26, - 0x2D, - 0x36, - 0x56, - 0x4B, - 0x24, - 0x41, - 0x24, - 0x24, - 0x0D, - 0x2D, - 0x28, - 0x2D, - 0x2D, - 0x28, - 0x49, - 0x04, - 0x2F, - 0x00, - 0x20, - 0x33, - 0x2F, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x2F, - 0x2F, - 0x33, - 0x44, - 0x38, - 0x44, - 0x44, - 0x44, - 0x23, - 0x40, - 0x42, - 0x23, - 0x30, - 0x44, - 0x44, - 0x44, - 0x42, - 0x59, - 0x48, - 0x54, - 0x6B, - 0xB8, - 0xD2, - 0xD2, - 0xE7, - 0xE7, - 0x0A, - 0xD2, - 0x00, - 0x10, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0x0A, - 0xC4, - 0x00, - 0x0C, - 0xBB, - 0xC2, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xC4, - 0xCB, - 0x04, - 0xBB, - 0x00, - 0x0C, - 0xCB, - 0xBB, - 0xCB, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xBF, - 0xB3, - 0x04, - 0xBF, - 0x01, - 0xB3, - 0x05, - 0xBF, - 0x01, - 0xAE, - 0x06, - 0xBF, - 0x00, - 0x0B, - 0xB8, - 0xB8, - 0xBF, - 0xBF, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xB8, - 0xB8, - 0xBF, - 0x00, - 0x04, - 0xB8, - 0x01, - 0xA7, - 0x01, - 0xCF, - 0x00, - 0x00, - 0x00, - 0x13, - 0x9F, - 0xAA, - 0x9F, - 0x95, - 0x9C, - 0x95, - 0x9F, - 0x9C, - 0x98, - 0x95, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9F, - 0x9F, - 0x95, - 0x9F, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x09, - 0x95, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x95, - 0x9C, - 0x95, - 0xAA, - 0x00, - 0x05, - 0x9C, - 0x00, - 0x9B, - 0x95, - 0x9F, - 0x9C, - 0x9C, - 0xC3, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9C, - 0x9F, - 0xBC, - 0x9C, - 0x9C, - 0x9C, - 0xBC, - 0xE8, - 0xA3, - 0x7B, - 0x7B, - 0x5D, - 0x5D, - 0x43, - 0x62, - 0xA3, - 0x7B, - 0x86, - 0xE8, - 0xD0, - 0xD0, - 0xD8, - 0xBD, - 0xFC, - 0xD0, - 0xA8, - 0xA9, - 0x6F, - 0x05, - 0x4D, - 0x86, - 0xA9, - 0xA9, - 0xA9, - 0xBD, - 0xBD, - 0xA9, - 0xF1, - 0x89, - 0xBD, - 0xD0, - 0xBD, - 0x89, - 0x10, - 0xFC, - 0xD0, - 0xC0, - 0x6F, - 0x03, - 0x5B, - 0xF1, - 0xA9, - 0x89, - 0x96, - 0x6F, - 0x96, - 0x09, - 0xA8, - 0xBD, - 0xA8, - 0x10, - 0x03, - 0x6F, - 0x96, - 0xAF, - 0x86, - 0x16, - 0x97, - 0xBD, - 0xBD, - 0xD0, - 0x7D, - 0xA8, - 0x6F, - 0xA8, - 0x76, - 0x86, - 0x39, - 0x03, - 0x05, - 0x26, - 0x57, - 0x60, - 0x62, - 0x7D, - 0x76, - 0x62, - 0x4C, - 0x12, - 0x1C, - 0x32, - 0x4A, - 0x4A, - 0xA9, - 0xC0, - 0x71, - 0x16, - 0x10, - 0x39, - 0x10, - 0x01, - 0x09, - 0x06, - 0x06, - 0x01, - 0x03, - 0x05, - 0x09, - 0x05, - 0x10, - 0x09, - 0x04, - 0x16, - 0x39, - 0x62, - 0x7A, - 0x86, - 0x96, - 0x6F, - 0x6F, - 0x70, - 0x15, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x24, - 0x0D, - 0x15, - 0x49, - 0x28, - 0x28, - 0x2D, - 0x28, - 0x28, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x22, - 0x2F, - 0x33, - 0x40, - 0x00, - 0x05, - 0x33, - 0x00, - 0x16, - 0x52, - 0x44, - 0x44, - 0x44, - 0x38, - 0x3D, - 0x23, - 0x20, - 0x38, - 0x44, - 0x23, - 0x42, - 0x42, - 0x42, - 0x58, - 0x3D, - 0x42, - 0x54, - 0x6B, - 0xBF, - 0xE7, - 0xE7, - 0x0B, - 0xD2, - 0x00, - 0x1D, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0x00, - 0x05, - 0xC4, - 0x00, - 0x0A, - 0xBB, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xCB, - 0x04, - 0xBB, - 0x00, - 0x0B, - 0xCB, - 0xB3, - 0xBF, - 0xBB, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0x00, - 0x04, - 0xBF, - 0x01, - 0xB8, - 0x01, - 0xAE, - 0x04, - 0xBF, - 0x01, - 0xB3, - 0x07, - 0xBF, - 0x00, - 0x05, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xBF, - 0x00, - 0x06, - 0xB8, - 0x01, - 0xC5, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x13, - 0x95, - 0x8E, - 0x9F, - 0x95, - 0x95, - 0x8E, - 0x9C, - 0x82, - 0x95, - 0xAA, - 0xAA, - 0x82, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x9C, - 0x9F, - 0x95, - 0x00, - 0x06, - 0x9C, - 0x00, - 0x05, - 0x95, - 0x9C, - 0x95, - 0x9C, - 0x95, - 0x00, - 0x04, - 0x9C, - 0x01, - 0xC3, - 0x04, - 0x9C, - 0x01, - 0xC3, - 0x09, - 0x9C, - 0x00, - 0x7E, - 0xBC, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0xD0, - 0xC0, - 0xE8, - 0x65, - 0x62, - 0x5D, - 0x65, - 0x7B, - 0x7B, - 0x86, - 0xFC, - 0xD0, - 0xD0, - 0xD0, - 0xF1, - 0xFC, - 0xFC, - 0xA9, - 0xC0, - 0x86, - 0x05, - 0x06, - 0x05, - 0xA9, - 0xD0, - 0xA9, - 0x6D, - 0x6D, - 0x89, - 0x6F, - 0xA8, - 0xA9, - 0x96, - 0xF1, - 0xD0, - 0x89, - 0x1E, - 0xFF, - 0xD0, - 0xA8, - 0x6F, - 0x01, - 0x86, - 0xF1, - 0xF1, - 0xA9, - 0x7A, - 0x89, - 0x89, - 0x4D, - 0xC0, - 0xF1, - 0xC0, - 0x5B, - 0x05, - 0x6F, - 0xC0, - 0x7A, - 0x6F, - 0x05, - 0x1C, - 0xD0, - 0xA8, - 0xD0, - 0xA8, - 0x5B, - 0x86, - 0x86, - 0x62, - 0x84, - 0x6C, - 0x05, - 0x26, - 0x67, - 0x82, - 0x65, - 0x76, - 0x7B, - 0x76, - 0x7B, - 0x79, - 0x57, - 0x12, - 0x09, - 0x4D, - 0x4E, - 0x6F, - 0xA3, - 0x86, - 0x6F, - 0x39, - 0x0E, - 0x09, - 0x1C, - 0x04, - 0x05, - 0x05, - 0x05, - 0x09, - 0x17, - 0x86, - 0xA3, - 0x86, - 0x6F, - 0xA9, - 0xA9, - 0xC0, - 0xF1, - 0xA3, - 0x6D, - 0xA3, - 0x60, - 0x49, - 0x15, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x07, - 0x28, - 0x00, - 0x25, - 0x3E, - 0x3E, - 0x28, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x40, - 0x40, - 0x23, - 0x44, - 0x23, - 0x20, - 0x20, - 0x30, - 0x20, - 0x23, - 0x44, - 0x23, - 0x44, - 0x3D, - 0x42, - 0x54, - 0x42, - 0x42, - 0x54, - 0x5F, - 0x7B, - 0xE7, - 0xD2, - 0xD2, - 0xE7, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x0F, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x39, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xB5, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xCB, - 0xB3, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xB3, - 0xCB, - 0xAE, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xBF, - 0xB3, - 0xB8, - 0xB3, - 0xBF, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0xB3, - 0xAE, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x0E, - 0xB8, - 0xBF, - 0xBF, - 0xB8, - 0xB8, - 0xB8, - 0xC7, - 0xB8, - 0xCF, - 0xAE, - 0xCF, - 0xAE, - 0xC5, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x15, - 0x9F, - 0x95, - 0x9F, - 0x8E, - 0x9F, - 0x95, - 0x9F, - 0xAA, - 0x9C, - 0x82, - 0x95, - 0x9F, - 0x9C, - 0x9F, - 0x95, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x00, - 0x0D, - 0x9C, - 0x00, - 0x06, - 0xAA, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9F, - 0x09, - 0x9C, - 0x00, - 0x97, - 0x98, - 0x95, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x95, - 0xFA, - 0xFF, - 0x81, - 0xA9, - 0x43, - 0x4E, - 0x5D, - 0x86, - 0x86, - 0xC0, - 0xD0, - 0xFA, - 0xD0, - 0xFF, - 0xFF, - 0xFC, - 0xF1, - 0xBD, - 0xA9, - 0x1E, - 0x05, - 0x06, - 0x06, - 0xA9, - 0xA9, - 0xA9, - 0x6D, - 0x6D, - 0x7A, - 0x7A, - 0x7A, - 0xA9, - 0xA9, - 0xA9, - 0x89, - 0x39, - 0x32, - 0xF1, - 0xBD, - 0x86, - 0x4D, - 0x05, - 0xA9, - 0xF1, - 0xFC, - 0xFC, - 0xFC, - 0xF1, - 0xA8, - 0x96, - 0xA8, - 0xF1, - 0xF1, - 0x39, - 0x86, - 0x71, - 0xD0, - 0xBD, - 0x89, - 0x1C, - 0x03, - 0xBD, - 0xD0, - 0x84, - 0xA8, - 0x11, - 0xA9, - 0x86, - 0x86, - 0x71, - 0xA3, - 0x05, - 0x26, - 0x60, - 0x65, - 0x5D, - 0x65, - 0x76, - 0x79, - 0x79, - 0x71, - 0x79, - 0x57, - 0x09, - 0x39, - 0x6F, - 0x3C, - 0x86, - 0xE8, - 0x6F, - 0x6F, - 0x6F, - 0x09, - 0x09, - 0x86, - 0x86, - 0x5B, - 0x29, - 0x10, - 0x62, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xE8, - 0xD0, - 0xFC, - 0xC0, - 0x7A, - 0x78, - 0x6D, - 0x26, - 0x4C, - 0x15, - 0x56, - 0x28, - 0x19, - 0x3E, - 0x0A, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x3E, - 0x28, - 0x2F, - 0x09, - 0x2F, - 0x22, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x33, - 0x40, - 0x23, - 0x23, - 0x23, - 0x18, - 0x20, - 0x00, - 0x05, - 0x23, - 0x00, - 0x0A, - 0x40, - 0x2E, - 0x48, - 0x44, - 0x42, - 0x54, - 0x63, - 0x66, - 0xA5, - 0xE7, - 0x0B, - 0xD2, - 0x00, - 0x05, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0x00, - 0x05, - 0xC2, - 0x01, - 0xC4, - 0x05, - 0xC2, - 0x00, - 0x18, - 0xC4, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0x07, - 0xBB, - 0x00, - 0x09, - 0xB0, - 0xC4, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0xBF, - 0xBB, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x04, - 0xBB, - 0xBF, - 0xB3, - 0xB8, - 0x05, - 0xBF, - 0x00, - 0x04, - 0xB3, - 0xB3, - 0xCB, - 0xB3, - 0x08, - 0xBF, - 0x00, - 0x0D, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xA7, - 0xB8, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x07, - 0x9F, - 0x00, - 0x0B, - 0x95, - 0x8E, - 0x95, - 0x9F, - 0x9C, - 0x98, - 0x95, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x00, - 0x0E, - 0x9C, - 0x00, - 0x95, - 0x95, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x95, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0x9C, - 0x9C, - 0x95, - 0xAA, - 0xC3, - 0x9C, - 0x9C, - 0xBC, - 0xF1, - 0xD8, - 0xA9, - 0xE8, - 0xE8, - 0x3C, - 0x3C, - 0x71, - 0x6F, - 0xD0, - 0xFC, - 0xFC, - 0xF1, - 0xD0, - 0xFC, - 0xFF, - 0xF1, - 0xA9, - 0x62, - 0x09, - 0x0D, - 0x09, - 0x4D, - 0xD0, - 0xF1, - 0xD0, - 0xA9, - 0xA9, - 0xA9, - 0x1C, - 0xA9, - 0xA9, - 0xD0, - 0xA9, - 0x96, - 0x05, - 0x5B, - 0xFC, - 0xC0, - 0x7A, - 0x09, - 0x05, - 0x89, - 0xA9, - 0xA9, - 0xD0, - 0xF1, - 0xFC, - 0xF1, - 0xBD, - 0x89, - 0xC0, - 0xBD, - 0x09, - 0x96, - 0xA3, - 0xF1, - 0xC0, - 0xA8, - 0x6C, - 0x01, - 0x84, - 0xBD, - 0x5B, - 0x6F, - 0x6C, - 0xC0, - 0x62, - 0x86, - 0x86, - 0x71, - 0x05, - 0x4C, - 0x4A, - 0x4E, - 0x5D, - 0x1B, - 0x03, - 0x0B, - 0x5B, - 0x65, - 0x79, - 0x78, - 0x2D, - 0x09, - 0x6F, - 0x5D, - 0x3C, - 0x86, - 0xC0, - 0x86, - 0xA9, - 0x86, - 0x39, - 0x2A, - 0xC0, - 0xF1, - 0xD0, - 0xF1, - 0x86, - 0xA3, - 0xC0, - 0xFC, - 0xC0, - 0xFC, - 0xFC, - 0xE8, - 0xC0, - 0x97, - 0x78, - 0x4C, - 0x49, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x28, - 0x2F, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x28, - 0x2F, - 0x3E, - 0x00, - 0x00, - 0x04, - 0x2F, - 0x00, - 0x19, - 0x33, - 0x22, - 0x22, - 0x22, - 0x2F, - 0x33, - 0x33, - 0x23, - 0x13, - 0x23, - 0x44, - 0x23, - 0x23, - 0x23, - 0x44, - 0x44, - 0x20, - 0x44, - 0x42, - 0x50, - 0x58, - 0x6B, - 0x81, - 0xCF, - 0xE7, - 0x00, - 0x0F, - 0xD2, - 0x00, - 0x28, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xB5, - 0xC2, - 0xC4, - 0xB6, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xC4, - 0xB6, - 0xC4, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xB5, - 0xB5, - 0x06, - 0xBB, - 0x00, - 0x13, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBF, - 0xBB, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xBF, - 0xB3, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x10, - 0xB3, - 0xB3, - 0xB3, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xB8, - 0xBF, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xC7, - 0xC7, - 0xAE, - 0x04, - 0xB8, - 0x01, - 0xAE, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x18, - 0x95, - 0x8E, - 0x9F, - 0x9F, - 0x82, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0x82, - 0x9C, - 0x98, - 0x95, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x09, - 0x9C, - 0x00, - 0x12, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x04, - 0x9C, - 0x00, - 0x84, - 0x95, - 0xFF, - 0xFC, - 0x7A, - 0x86, - 0xC0, - 0xA3, - 0x86, - 0xC0, - 0xF1, - 0xF1, - 0xF1, - 0xFA, - 0xF1, - 0xD0, - 0xBD, - 0xFC, - 0xF1, - 0x96, - 0x09, - 0x06, - 0x06, - 0x11, - 0xD0, - 0xA9, - 0xF1, - 0xA9, - 0x89, - 0xA9, - 0xBD, - 0x86, - 0x6F, - 0xBD, - 0xF1, - 0xBD, - 0x6F, - 0x0E, - 0x62, - 0xFC, - 0xA8, - 0x6F, - 0x00, - 0x39, - 0xC0, - 0xA8, - 0xA9, - 0xBD, - 0xA9, - 0xC0, - 0xBD, - 0xF1, - 0xBD, - 0xBD, - 0xC0, - 0x10, - 0x1C, - 0xBD, - 0xF1, - 0xA8, - 0xA8, - 0xBD, - 0x2A, - 0x6C, - 0xC0, - 0x6F, - 0x05, - 0x96, - 0xC0, - 0x71, - 0xA3, - 0x5B, - 0x71, - 0x09, - 0x56, - 0x4A, - 0x5D, - 0x67, - 0x00, - 0x03, - 0x01, - 0x00, - 0x9B, - 0x65, - 0x78, - 0x4C, - 0x10, - 0x16, - 0x5D, - 0x62, - 0x6F, - 0x86, - 0x86, - 0xA3, - 0xC0, - 0xF1, - 0x96, - 0x86, - 0xF1, - 0xA9, - 0xF1, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xE8, - 0xFC, - 0xFC, - 0xF1, - 0xE8, - 0x4C, - 0x49, - 0x26, - 0x49, - 0x28, - 0x28, - 0x3E, - 0x1F, - 0x2F, - 0x22, - 0x3E, - 0x2F, - 0x3E, - 0x33, - 0x02, - 0x2F, - 0x07, - 0x2F, - 0x13, - 0x2F, - 0x4F, - 0x4F, - 0x4F, - 0x05, - 0x2F, - 0x00, - 0x13, - 0x3E, - 0x08, - 0x2F, - 0x23, - 0x40, - 0x23, - 0x20, - 0x20, - 0x20, - 0x44, - 0x44, - 0x40, - 0x40, - 0x42, - 0x59, - 0x42, - 0x54, - 0x5F, - 0x7B, - 0x00, - 0x0B, - 0xD2, - 0x00, - 0x08, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x0A, - 0xC2, - 0x01, - 0xC4, - 0x04, - 0xC2, - 0x00, - 0x0C, - 0xB5, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0x04, - 0xC4, - 0x00, - 0x0D, - 0xB5, - 0xB5, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x05, - 0xB3, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0x00, - 0x06, - 0xB3, - 0x00, - 0x05, - 0xB8, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x0F, - 0xBB, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0x00, - 0x05, - 0xB8, - 0x01, - 0xC5, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x98, - 0x8E, - 0x95, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x07, - 0x8E, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x00, - 0x06, - 0x9F, - 0x00, - 0x04, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x09, - 0x9C, - 0x00, - 0xB1, - 0xAA, - 0x9F, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x98, - 0xC3, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0x95, - 0x9C, - 0xFA, - 0xFF, - 0xBD, - 0x60, - 0x7A, - 0xF1, - 0xFA, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0xFF, - 0xFF, - 0xF1, - 0xA9, - 0xA9, - 0xC0, - 0x6F, - 0x06, - 0x06, - 0x32, - 0xF1, - 0xFA, - 0xFC, - 0xF1, - 0xD0, - 0xBD, - 0xA9, - 0xC0, - 0xA8, - 0x89, - 0xF1, - 0xFC, - 0xBD, - 0xBD, - 0x06, - 0x6F, - 0xFF, - 0xE8, - 0x6F, - 0x05, - 0x2A, - 0xF1, - 0xA8, - 0xA8, - 0xF1, - 0xBD, - 0xBD, - 0xF1, - 0xF1, - 0xFC, - 0xD0, - 0xC0, - 0x1C, - 0x05, - 0xA8, - 0xF1, - 0xF1, - 0xA9, - 0xA8, - 0xAF, - 0x86, - 0xF1, - 0x86, - 0x05, - 0x62, - 0xE8, - 0x86, - 0xA3, - 0x86, - 0x7B, - 0x06, - 0x32, - 0x4D, - 0x5B, - 0x2F, - 0x00, - 0x01, - 0x00, - 0x00, - 0x19, - 0x76, - 0x76, - 0x4C, - 0x0D, - 0x1C, - 0x65, - 0x5D, - 0x39, - 0xA9, - 0x86, - 0x6F, - 0xC0, - 0xA9, - 0xF1, - 0xD0, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0xA9, - 0xE8, - 0xF1, - 0xA9, - 0xD0, - 0xC0, - 0xC0, - 0x8D, - 0x2D, - 0x2D, - 0x28, - 0x26, - 0x49, - 0x19, - 0x3E, - 0x2F, - 0x3E, - 0x3E, - 0x4F, - 0x22, - 0x2F, - 0x2F, - 0x2F, - 0x33, - 0x4F, - 0x13, - 0x4F, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x13, - 0x4F, - 0x2F, - 0x14, - 0x2F, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x40, - 0x23, - 0x20, - 0x44, - 0x3D, - 0x40, - 0x40, - 0x2E, - 0x38, - 0x30, - 0x3D, - 0x59, - 0x6B, - 0xB8, - 0x00, - 0x0C, - 0xD2, - 0x00, - 0x0C, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x08, - 0xC2, - 0x00, - 0x1B, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xBB, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC4, - 0xB0, - 0xC4, - 0xB5, - 0x00, - 0x08, - 0xBB, - 0x00, - 0x2B, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBF, - 0xB0, - 0xBF, - 0xB3, - 0xBF, - 0xBF, - 0xBF, - 0xAE, - 0xBB, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xBF, - 0xB8, - 0xBF, - 0xBF, - 0xB8, - 0xAE, - 0xBF, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xB8, - 0xB8, - 0xA7, - 0xB8, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x84, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0x8E, - 0x9F, - 0x95, - 0x9F, - 0x95, - 0x8E, - 0x9F, - 0x9F, - 0x9F, - 0x98, - 0x95, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xB9, - 0xFC, - 0xBD, - 0xBD, - 0xFF, - 0xFC, - 0xFF, - 0xFC, - 0xFC, - 0xFF, - 0xFC, - 0xFC, - 0xD0, - 0xFC, - 0xF1, - 0x89, - 0xA9, - 0x32, - 0x05, - 0x1F, - 0xA9, - 0xF1, - 0xFF, - 0xF1, - 0xFC, - 0xF1, - 0xF1, - 0xF1, - 0xA8, - 0xA8, - 0xD0, - 0xF1, - 0xFF, - 0xBD, - 0x96, - 0x03, - 0x6D, - 0xF1, - 0xA9, - 0x86, - 0x06, - 0x5B, - 0xFC, - 0xBD, - 0xA9, - 0xBD, - 0xC0, - 0xF1, - 0xFC, - 0xBD, - 0xFC, - 0xFF, - 0xF1, - 0x62, - 0x05, - 0xA3, - 0xC0, - 0xD0, - 0xC0, - 0xA9, - 0xF1, - 0xC0, - 0xFC, - 0xC0, - 0x1C, - 0x5D, - 0xA3, - 0xA8, - 0x86, - 0x86, - 0xA3, - 0x06, - 0x15, - 0x32, - 0x39, - 0x1F, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x1E, - 0x5B, - 0x78, - 0x4C, - 0x06, - 0x4E, - 0x71, - 0x6F, - 0x4D, - 0x86, - 0xA3, - 0x86, - 0x96, - 0xC0, - 0xD0, - 0xA9, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0x96, - 0x89, - 0x96, - 0xE8, - 0xC0, - 0x6F, - 0x57, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x2B, - 0x28, - 0x28, - 0x2F, - 0x2F, - 0x3E, - 0x3E, - 0x28, - 0x04, - 0x2F, - 0x22, - 0x22, - 0x22, - 0x4F, - 0x55, - 0x4F, - 0x40, - 0x52, - 0x44, - 0x52, - 0x55, - 0x33, - 0x40, - 0x33, - 0x55, - 0x22, - 0x2F, - 0x33, - 0x40, - 0x33, - 0x23, - 0x40, - 0x44, - 0x23, - 0x40, - 0x23, - 0x40, - 0x42, - 0x42, - 0x54, - 0x45, - 0x6B, - 0xC4, - 0xE7, - 0x00, - 0x09, - 0xD2, - 0x00, - 0x0B, - 0xC2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0x00, - 0x0E, - 0xC2, - 0x00, - 0x1F, - 0xB5, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC4, - 0xC2, - 0xC2, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xBB, - 0xC4, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xBB, - 0xC4, - 0xB5, - 0xBB, - 0xBB, - 0xB0, - 0xB0, - 0x00, - 0x04, - 0xBB, - 0x01, - 0xB3, - 0x01, - 0xBB, - 0x0A, - 0xB3, - 0x00, - 0x12, - 0xBF, - 0xB3, - 0xBF, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBF, - 0xB3, - 0xAE, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xBF, - 0xBF, - 0x05, - 0xB8, - 0x00, - 0x06, - 0xC5, - 0xAE, - 0xCF, - 0xAE, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x06, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x95, - 0x08, - 0x9F, - 0x01, - 0x9C, - 0x05, - 0x9F, - 0x00, - 0x09, - 0xAA, - 0x9C, - 0x9F, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x1A, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xC3, - 0xFF, - 0xD0, - 0x06, - 0xFF, - 0x00, - 0x64, - 0xF1, - 0xD0, - 0xF1, - 0xA9, - 0xA9, - 0xA9, - 0x89, - 0x89, - 0x60, - 0x0D, - 0x06, - 0xFC, - 0xFA, - 0xFC, - 0xFF, - 0xF1, - 0x7A, - 0xD0, - 0xA9, - 0x6F, - 0xA9, - 0xBD, - 0xC0, - 0xFC, - 0xD0, - 0x7A, - 0x05, - 0x86, - 0xF1, - 0x96, - 0x62, - 0x05, - 0x39, - 0xFC, - 0xFC, - 0xD0, - 0xC0, - 0xD0, - 0xC0, - 0xF1, - 0xBD, - 0xF1, - 0xA9, - 0xC0, - 0x97, - 0x05, - 0x86, - 0xFC, - 0xD0, - 0xD0, - 0xC0, - 0xD0, - 0xD0, - 0xC0, - 0x7B, - 0x86, - 0x5B, - 0xE8, - 0x96, - 0x7B, - 0xC0, - 0xA3, - 0x3C, - 0x12, - 0x15, - 0x4D, - 0x32, - 0x02, - 0x03, - 0x00, - 0x00, - 0x4D, - 0x78, - 0x60, - 0x49, - 0x03, - 0x3C, - 0x5D, - 0x3C, - 0x3C, - 0x86, - 0x86, - 0x89, - 0x6F, - 0xA3, - 0xA9, - 0xD0, - 0xA9, - 0xF1, - 0xF1, - 0xD0, - 0xC0, - 0xBD, - 0x89, - 0x89, - 0x78, - 0x41, - 0x2D, - 0x0D, - 0x15, - 0x05, - 0x28, - 0x00, - 0x15, - 0x3E, - 0x28, - 0x00, - 0x28, - 0x28, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x33, - 0x33, - 0x55, - 0x44, - 0x40, - 0x23, - 0x40, - 0x40, - 0x33, - 0x33, - 0x40, - 0x55, - 0x00, - 0x04, - 0x33, - 0x00, - 0x0D, - 0x40, - 0x23, - 0x23, - 0x23, - 0x2E, - 0x2E, - 0x44, - 0x52, - 0x42, - 0x3D, - 0x58, - 0x81, - 0xA7, - 0x00, - 0x09, - 0xD2, - 0x00, - 0x0B, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xD2, - 0x00, - 0x0E, - 0xC2, - 0x00, - 0x29, - 0xB5, - 0xC2, - 0xC4, - 0xC2, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xB6, - 0xC4, - 0xC4, - 0xC2, - 0xB5, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xC4, - 0xBB, - 0xC4, - 0xB0, - 0xC4, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB3, - 0xB0, - 0xB0, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0x00, - 0x05, - 0xB3, - 0x01, - 0xBF, - 0x0A, - 0xB3, - 0x00, - 0x15, - 0xAE, - 0xB3, - 0xB8, - 0xBF, - 0xB3, - 0xBF, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x9F, - 0x98, - 0x95, - 0x8E, - 0x04, - 0x9F, - 0x00, - 0x05, - 0x8E, - 0x9C, - 0x95, - 0x8E, - 0x9C, - 0x00, - 0x04, - 0x9F, - 0x01, - 0x9C, - 0x04, - 0x9F, - 0x00, - 0x23, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x64, - 0xFA, - 0xFF, - 0xFF, - 0xFF, - 0xA9, - 0xD0, - 0xA9, - 0x7A, - 0x6D, - 0x60, - 0x1F, - 0x7A, - 0xD0, - 0x89, - 0xD0, - 0xF1, - 0xFC, - 0xF1, - 0xFC, - 0xBD, - 0xBD, - 0x6C, - 0xD0, - 0xD0, - 0xFC, - 0xBD, - 0x6F, - 0x03, - 0x96, - 0xC0, - 0xBD, - 0x5B, - 0x00, - 0x62, - 0xD0, - 0xFC, - 0xF1, - 0x96, - 0xE8, - 0xF1, - 0xF1, - 0xC0, - 0xF1, - 0xD0, - 0xBD, - 0x5B, - 0x09, - 0x96, - 0xFC, - 0xF1, - 0x79, - 0xF1, - 0xD0, - 0xF1, - 0xFC, - 0x62, - 0xA3, - 0x5D, - 0xD0, - 0xA3, - 0xA3, - 0xF1, - 0x86, - 0x86, - 0x09, - 0x12, - 0x4A, - 0x1F, - 0x4C, - 0x1F, - 0x12, - 0x4D, - 0x67, - 0x62, - 0x4C, - 0x0D, - 0x05, - 0x4E, - 0x71, - 0x3C, - 0x62, - 0x86, - 0x86, - 0x96, - 0x96, - 0xA9, - 0x96, - 0xD0, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0x86, - 0x62, - 0x62, - 0x60, - 0x2D, - 0x2D, - 0x28, - 0x12, - 0x0A, - 0x28, - 0x00, - 0x11, - 0x2F, - 0x28, - 0x3E, - 0x2F, - 0x33, - 0x4F, - 0x55, - 0x18, - 0x40, - 0x21, - 0x59, - 0x44, - 0x44, - 0x44, - 0x40, - 0x40, - 0x40, - 0x00, - 0x06, - 0x33, - 0x00, - 0x0A, - 0x23, - 0x44, - 0x44, - 0x54, - 0x44, - 0x3D, - 0x45, - 0x58, - 0x6B, - 0xCB, - 0x08, - 0xD2, - 0x00, - 0x0A, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x0C, - 0xC2, - 0x00, - 0x2F, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC4, - 0xB6, - 0xC2, - 0xC4, - 0xB5, - 0xC2, - 0xB6, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xC4, - 0xB0, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0xB0, - 0x00, - 0x09, - 0xB3, - 0x00, - 0x1B, - 0xBB, - 0xB3, - 0xB3, - 0xBB, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xB3, - 0xBF, - 0xB8, - 0xAE, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xB8, - 0xAE, - 0xC5, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9C, - 0x01, - 0x8E, - 0x05, - 0x9F, - 0x00, - 0x04, - 0xA7, - 0x9F, - 0x9F, - 0x98, - 0x0B, - 0x9F, - 0x00, - 0x0E, - 0x9C, - 0xAA, - 0x9F, - 0x9F, - 0x9C, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x9F, - 0x9C, - 0xAA, - 0x9F, - 0x05, - 0xAA, - 0x00, - 0x11, - 0x9F, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9F, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0xAA, - 0x9B, - 0x00, - 0x05, - 0xFF, - 0x01, - 0xFC, - 0x04, - 0xFF, - 0x00, - 0x81, - 0xFC, - 0xFF, - 0xD0, - 0x89, - 0x6D, - 0x7A, - 0x89, - 0xFA, - 0xD0, - 0xFC, - 0xF1, - 0x89, - 0xD0, - 0xF1, - 0xA9, - 0x96, - 0xA9, - 0xA9, - 0xAF, - 0xA9, - 0xD0, - 0xD0, - 0x60, - 0x00, - 0xAF, - 0xF1, - 0xC0, - 0x39, - 0x06, - 0x86, - 0xC0, - 0xFC, - 0xFC, - 0xA8, - 0x86, - 0xE8, - 0xF1, - 0xBD, - 0xF1, - 0xF1, - 0xA9, - 0x4A, - 0x0E, - 0xC0, - 0xF1, - 0xF1, - 0x1C, - 0xBD, - 0xD0, - 0xD0, - 0xF1, - 0xA8, - 0xC0, - 0xA3, - 0xFF, - 0x86, - 0x86, - 0xC0, - 0xA3, - 0xE8, - 0x5D, - 0x05, - 0x32, - 0x1F, - 0x1F, - 0x32, - 0x5B, - 0x57, - 0x32, - 0x32, - 0x60, - 0x03, - 0x1F, - 0x43, - 0x86, - 0x5B, - 0x7B, - 0x96, - 0x62, - 0xBD, - 0x6F, - 0x89, - 0xBD, - 0xF1, - 0xA9, - 0xA8, - 0x96, - 0x7F, - 0x67, - 0x60, - 0x60, - 0x49, - 0x2D, - 0x28, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x33, - 0x55, - 0x55, - 0x44, - 0x42, - 0x42, - 0x40, - 0x44, - 0x40, - 0x59, - 0x40, - 0x44, - 0x59, - 0x52, - 0x33, - 0x40, - 0x40, - 0x44, - 0x00, - 0x04, - 0x42, - 0x00, - 0x04, - 0x30, - 0x59, - 0x5F, - 0x7B, - 0x09, - 0xD2, - 0x00, - 0x06, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xD2, - 0x0E, - 0xC2, - 0x00, - 0x31, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xB0, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xB5, - 0xBB, - 0xB0, - 0xB0, - 0xB0, - 0xBB, - 0xBB, - 0xB0, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x06, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0x0A, - 0xB3, - 0x00, - 0x10, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xC5, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x06, - 0x98, - 0x9C, - 0x98, - 0x9C, - 0xAA, - 0x8E, - 0x0A, - 0x9F, - 0x00, - 0x0F, - 0xAA, - 0x9F, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0x9F, - 0x9F, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x04, - 0x9F, - 0x9C, - 0xAA, - 0x9F, - 0x06, - 0xAA, - 0x01, - 0x9C, - 0x04, - 0xAA, - 0x00, - 0x07, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x8E, - 0x95, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x5A, - 0xFC, - 0xFF, - 0xFF, - 0xFC, - 0xFF, - 0xFC, - 0xF1, - 0xD0, - 0xA9, - 0xBD, - 0xBD, - 0xFC, - 0xF1, - 0xFF, - 0xFC, - 0xA9, - 0xF1, - 0xF1, - 0xF1, - 0x1C, - 0xA9, - 0xBD, - 0xA9, - 0xD0, - 0xBD, - 0xF1, - 0x39, - 0x0F, - 0xD0, - 0xFF, - 0xA8, - 0x1E, - 0x09, - 0xC0, - 0xD0, - 0xFC, - 0xBD, - 0xC0, - 0x2A, - 0xBD, - 0xC0, - 0xBD, - 0xC0, - 0xF1, - 0xC0, - 0x4D, - 0x39, - 0xA8, - 0xF1, - 0x96, - 0x05, - 0x7A, - 0xD0, - 0xD0, - 0xFC, - 0xE8, - 0xE8, - 0xA3, - 0xE8, - 0x96, - 0x6F, - 0xA3, - 0xFC, - 0xA8, - 0xE8, - 0x6F, - 0x10, - 0x06, - 0x19, - 0x4A, - 0x4A, - 0x39, - 0x29, - 0x32, - 0x03, - 0x03, - 0x43, - 0xA9, - 0x5D, - 0xA3, - 0x62, - 0x86, - 0x6F, - 0x86, - 0xA8, - 0xC0, - 0xF1, - 0xF1, - 0xE8, - 0x96, - 0x04, - 0x4C, - 0x00, - 0x0D, - 0x28, - 0x2D, - 0x28, - 0x28, - 0x28, - 0x2F, - 0x28, - 0x2F, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x28, - 0x00, - 0x05, - 0x3E, - 0x00, - 0x29, - 0x2F, - 0x2F, - 0x01, - 0x2F, - 0x2F, - 0x07, - 0x33, - 0x22, - 0x33, - 0x33, - 0x33, - 0x23, - 0x33, - 0x40, - 0x40, - 0x33, - 0x23, - 0x44, - 0x40, - 0x42, - 0x42, - 0x44, - 0x54, - 0x42, - 0x38, - 0x42, - 0x59, - 0x59, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x06, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xB6, - 0x05, - 0xC2, - 0x01, - 0xB6, - 0x08, - 0xC2, - 0x00, - 0x0C, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xC2, - 0xB6, - 0x05, - 0xB5, - 0x00, - 0x0E, - 0xC4, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xB0, - 0xBB, - 0xBB, - 0xB5, - 0x04, - 0xB0, - 0x00, - 0x11, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x16, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xB3, - 0xB8, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xBF, - 0xB8, - 0xB8, - 0xAE, - 0xC5, - 0xAE, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x07, - 0x98, - 0xAA, - 0x8E, - 0x9F, - 0x9F, - 0x8E, - 0xAA, - 0x00, - 0x06, - 0x9F, - 0x00, - 0x12, - 0xAA, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0xAA, - 0x9C, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x06, - 0xAA, - 0x00, - 0x11, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0xAA, - 0x9F, - 0x9C, - 0xAA, - 0xAA, - 0x9C, - 0x95, - 0x82, - 0xB2, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x5F, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xD0, - 0xF1, - 0xA9, - 0xA9, - 0xBD, - 0xF1, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xD0, - 0x96, - 0xA9, - 0x32, - 0xB1, - 0xBD, - 0xD0, - 0xD0, - 0xBD, - 0xA9, - 0x39, - 0x0A, - 0xA9, - 0xFF, - 0xF1, - 0x11, - 0x0E, - 0xC0, - 0xFC, - 0xF1, - 0xFC, - 0x6F, - 0x00, - 0x6F, - 0xF1, - 0xBD, - 0xBD, - 0xC0, - 0x6F, - 0x39, - 0x5B, - 0xC0, - 0xFC, - 0xBD, - 0x09, - 0x5B, - 0xD0, - 0xD0, - 0xFC, - 0xC0, - 0x86, - 0xD0, - 0xE8, - 0xF1, - 0xC0, - 0x86, - 0xA3, - 0xE8, - 0xE8, - 0xE8, - 0xA3, - 0x5D, - 0x09, - 0x0A, - 0x09, - 0x06, - 0x10, - 0x32, - 0x17, - 0xA3, - 0x5A, - 0xF1, - 0x5D, - 0x6F, - 0x39, - 0x6F, - 0x86, - 0xA9, - 0xBD, - 0xC0, - 0xFC, - 0xC0, - 0x4C, - 0x3E, - 0x49, - 0x19, - 0x26, - 0x28, - 0x49, - 0x00, - 0x05, - 0x28, - 0x00, - 0x35, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x4F, - 0x3E, - 0x33, - 0x3E, - 0x4F, - 0x33, - 0x2F, - 0x13, - 0x33, - 0x2F, - 0x33, - 0x33, - 0x2F, - 0x13, - 0x33, - 0x33, - 0x33, - 0x40, - 0x40, - 0x23, - 0x40, - 0x42, - 0x63, - 0x44, - 0x42, - 0x58, - 0x42, - 0x58, - 0x5F, - 0x5F, - 0x6B, - 0xCB, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xD2, - 0x00, - 0x06, - 0xC2, - 0x01, - 0xB6, - 0x05, - 0xC2, - 0x00, - 0x1A, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xC4, - 0x04, - 0xB5, - 0x00, - 0x10, - 0xBB, - 0xB5, - 0xB5, - 0xBB, - 0xBB, - 0xB0, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xBB, - 0x04, - 0xB0, - 0x00, - 0x12, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xAE, - 0x05, - 0xB3, - 0x00, - 0x12, - 0xB8, - 0xAE, - 0xAE, - 0xB3, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xBF, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x10, - 0x9C, - 0x8E, - 0x9F, - 0x8E, - 0xAA, - 0xAA, - 0x9F, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9F, - 0xA7, - 0x04, - 0x9F, - 0x00, - 0x0D, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0xAA, - 0x9C, - 0xAA, - 0xAA, - 0x9F, - 0x00, - 0x18, - 0xAA, - 0x00, - 0x65, - 0xB2, - 0xC9, - 0xEA, - 0xB9, - 0xD0, - 0xD0, - 0xFF, - 0xFF, - 0xF1, - 0xFF, - 0xFF, - 0xFF, - 0xF1, - 0xFF, - 0xFF, - 0xFF, - 0xFC, - 0xFF, - 0xBD, - 0xFF, - 0xFC, - 0xD0, - 0xFC, - 0xA9, - 0x4D, - 0x6D, - 0x57, - 0x57, - 0x95, - 0xCE, - 0xA9, - 0xD0, - 0x7A, - 0x32, - 0x09, - 0x89, - 0xD0, - 0xFC, - 0x29, - 0x0B, - 0xA8, - 0xFC, - 0xFC, - 0xE8, - 0x86, - 0x01, - 0x5B, - 0xC0, - 0xF1, - 0xBD, - 0xF1, - 0x86, - 0x09, - 0x4A, - 0xA8, - 0xFC, - 0xF1, - 0x10, - 0x39, - 0xFF, - 0xFF, - 0xD0, - 0xD0, - 0x5D, - 0x86, - 0xC0, - 0xFF, - 0xC0, - 0x96, - 0x6F, - 0xC0, - 0xFC, - 0xC0, - 0xE8, - 0xE8, - 0xC0, - 0xA3, - 0x71, - 0x89, - 0xE8, - 0xA9, - 0xA3, - 0xE8, - 0xE8, - 0x71, - 0xA3, - 0xA3, - 0x6F, - 0xBD, - 0xF1, - 0xC0, - 0xA3, - 0x96, - 0x6C, - 0x0F, - 0x0A, - 0x0D, - 0x12, - 0x28, - 0x28, - 0x49, - 0x00, - 0x05, - 0x28, - 0x00, - 0x06, - 0x2F, - 0x3E, - 0x2F, - 0x3E, - 0x3E, - 0x2F, - 0x04, - 0x3E, - 0x00, - 0x0D, - 0x4F, - 0x33, - 0x33, - 0x33, - 0x13, - 0x33, - 0x33, - 0x33, - 0x23, - 0x33, - 0x13, - 0x40, - 0x23, - 0x00, - 0x05, - 0x33, - 0x00, - 0x0D, - 0x40, - 0x58, - 0x54, - 0x42, - 0x54, - 0x54, - 0x54, - 0x5F, - 0x5F, - 0x5F, - 0x81, - 0xAE, - 0xC2, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x04, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0x0B, - 0xC2, - 0x00, - 0x03, - 0xB6, - 0xC2, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x1E, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB5, - 0xC2, - 0xB6, - 0xC2, - 0xC4, - 0xB6, - 0xB5, - 0xB5, - 0xC4, - 0xC2, - 0xB5, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xBB, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xBB, - 0xB5, - 0xB0, - 0xB0, - 0xB0, - 0xBB, - 0xB5, - 0xBB, - 0xB0, - 0xA6, - 0x08, - 0xB0, - 0x00, - 0x04, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0x04, - 0xB3, - 0x00, - 0x1D, - 0xB0, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xBF, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xBF, - 0xAE, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xB3, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0xAE, - 0xB8, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x9F, - 0x98, - 0x98, - 0xAA, - 0x98, - 0x9F, - 0xAA, - 0x8E, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0xAA, - 0x98, - 0x9F, - 0x9F, - 0xAA, - 0x9F, - 0xA7, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0x9C, - 0xAA, - 0x9F, - 0x00, - 0x14, - 0xAA, - 0x00, - 0x10, - 0x9F, - 0xAA, - 0xAA, - 0x9F, - 0xAA, - 0x9C, - 0xB2, - 0x8E, - 0xC9, - 0x1F, - 0x19, - 0x4A, - 0x97, - 0xFC, - 0xFC, - 0x6F, - 0x06, - 0xFF, - 0x00, - 0x3B, - 0xFC, - 0xD0, - 0xFF, - 0xF1, - 0xBD, - 0x96, - 0xAF, - 0x6D, - 0x15, - 0x26, - 0x2D, - 0x56, - 0x26, - 0x64, - 0x8F, - 0xBD, - 0xBD, - 0x4D, - 0x06, - 0x6F, - 0xC0, - 0xF1, - 0xA9, - 0x05, - 0x96, - 0xFC, - 0xD0, - 0xFC, - 0x71, - 0x05, - 0x4D, - 0xA9, - 0xFC, - 0xA8, - 0xA3, - 0xA3, - 0x09, - 0x39, - 0xBD, - 0xD0, - 0xF1, - 0x39, - 0x39, - 0xE8, - 0xFC, - 0xFF, - 0xF1, - 0x96, - 0x16, - 0x86, - 0xA3, - 0xFF, - 0xC0, - 0x86, - 0x6F, - 0x86, - 0xE8, - 0xFC, - 0xFC, - 0x00, - 0x06, - 0xE8, - 0x00, - 0x2E, - 0xF1, - 0xA3, - 0x6F, - 0xE8, - 0xA3, - 0x86, - 0xA9, - 0x86, - 0x86, - 0xA3, - 0x2A, - 0x12, - 0x0B, - 0x28, - 0x28, - 0x0A, - 0x28, - 0x0D, - 0x28, - 0x28, - 0x00, - 0x28, - 0x28, - 0x3E, - 0x3E, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x4F, - 0x2F, - 0x33, - 0x33, - 0x13, - 0x4F, - 0x33, - 0x33, - 0x23, - 0x33, - 0x33, - 0x33, - 0x23, - 0x33, - 0x40, - 0x04, - 0x33, - 0x00, - 0x0E, - 0x40, - 0x33, - 0x44, - 0x44, - 0x59, - 0x54, - 0x58, - 0x58, - 0x66, - 0x66, - 0x81, - 0x81, - 0x81, - 0x9C, - 0x05, - 0xD2, - 0x04, - 0xC2, - 0x00, - 0x05, - 0xD2, - 0xB6, - 0xC2, - 0xB6, - 0xD2, - 0x00, - 0x07, - 0xC2, - 0x00, - 0x1D, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB5, - 0xC2, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x0C, - 0xBB, - 0xB6, - 0xBB, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xB5, - 0xBB, - 0xB5, - 0xB0, - 0xBB, - 0x0B, - 0xB0, - 0x00, - 0x0F, - 0xAE, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x15, - 0xAE, - 0xB3, - 0xAE, - 0xB8, - 0xB3, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0xB8, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9C, - 0x04, - 0x9F, - 0x00, - 0x15, - 0xA7, - 0xA7, - 0x9F, - 0x9F, - 0xB2, - 0x9F, - 0xA7, - 0x9F, - 0xAA, - 0x9F, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0xA7, - 0xAA, - 0xAA, - 0x9F, - 0x00, - 0x16, - 0xAA, - 0x01, - 0xB2, - 0x0A, - 0xAA, - 0x00, - 0x41, - 0x80, - 0x4A, - 0x2A, - 0x32, - 0x11, - 0x0F, - 0x35, - 0xAF, - 0xF1, - 0xFF, - 0xFF, - 0xFC, - 0xFC, - 0xF1, - 0xF1, - 0xFC, - 0xFC, - 0x97, - 0x6D, - 0x41, - 0x32, - 0x12, - 0x2D, - 0x28, - 0x4B, - 0x4B, - 0x41, - 0x4B, - 0x24, - 0x8C, - 0xD8, - 0xA9, - 0x11, - 0x12, - 0x7F, - 0x86, - 0x86, - 0x09, - 0x96, - 0xFC, - 0xE8, - 0x7B, - 0x71, - 0x09, - 0x5B, - 0xF1, - 0xE8, - 0xC0, - 0x4D, - 0x86, - 0x11, - 0x39, - 0xFC, - 0xFF, - 0xD0, - 0x6C, - 0x16, - 0x96, - 0xF1, - 0xFF, - 0xFF, - 0xF1, - 0x6F, - 0x10, - 0xC0, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x18, - 0x86, - 0x6F, - 0xE8, - 0xE8, - 0xFC, - 0xE8, - 0xFC, - 0xFC, - 0xE8, - 0xE8, - 0x81, - 0x86, - 0xC0, - 0xA3, - 0x6F, - 0x6F, - 0x6F, - 0xA3, - 0x6F, - 0x05, - 0x06, - 0x05, - 0x09, - 0x05, - 0x05, - 0x28, - 0x00, - 0x03, - 0x00, - 0x28, - 0x28, - 0x00, - 0x05, - 0x3E, - 0x00, - 0x27, - 0x2F, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x33, - 0x13, - 0x33, - 0x40, - 0x23, - 0x40, - 0x40, - 0x23, - 0x33, - 0x40, - 0x33, - 0x33, - 0x2F, - 0x52, - 0x40, - 0x54, - 0x63, - 0x5F, - 0x63, - 0x81, - 0x81, - 0x66, - 0x81, - 0x81, - 0xAE, - 0xD2, - 0xC2, - 0xD2, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x09, - 0xD2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x23, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB5, - 0xC2, - 0xB6, - 0xB5, - 0xC2, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xC4, - 0x00, - 0x04, - 0xB5, - 0x01, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x0C, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x06, - 0xA1, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xA6, - 0x06, - 0xB3, - 0x00, - 0x12, - 0xB0, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xB8, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xBF, - 0xB8, - 0x05, - 0xAE, - 0x00, - 0x04, - 0xB8, - 0xAE, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x15, - 0x8E, - 0x9F, - 0xAA, - 0x98, - 0x8E, - 0xAA, - 0x9F, - 0xA7, - 0xAA, - 0x8E, - 0x8E, - 0xAA, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0xAA, - 0x9F, - 0x9F, - 0xAA, - 0xA7, - 0x00, - 0x10, - 0xAA, - 0x01, - 0xB2, - 0x01, - 0xB2, - 0x04, - 0xAA, - 0x00, - 0x05, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0x00, - 0x0B, - 0xAA, - 0x00, - 0x62, - 0x82, - 0x4C, - 0x4A, - 0x4F, - 0x19, - 0x2F, - 0x32, - 0x1C, - 0x12, - 0x62, - 0xAF, - 0xBD, - 0xD0, - 0xFC, - 0xA8, - 0xC0, - 0x79, - 0x32, - 0x41, - 0x12, - 0x26, - 0x12, - 0x15, - 0x15, - 0x15, - 0x0D, - 0x41, - 0x41, - 0x56, - 0x15, - 0x41, - 0x64, - 0x82, - 0x0D, - 0x4C, - 0x60, - 0x39, - 0x11, - 0xA3, - 0xF1, - 0xD0, - 0xA8, - 0x35, - 0x09, - 0x7A, - 0xFC, - 0xD0, - 0x96, - 0x5B, - 0x62, - 0x32, - 0x09, - 0xF1, - 0xD0, - 0xFC, - 0xA9, - 0x05, - 0xA9, - 0xE8, - 0xF1, - 0xFF, - 0xFF, - 0xC0, - 0x6F, - 0x35, - 0xE8, - 0xFF, - 0xD0, - 0x89, - 0xA9, - 0xA9, - 0x86, - 0x6F, - 0x86, - 0x86, - 0xA3, - 0xA3, - 0xA3, - 0xE8, - 0xA3, - 0xE8, - 0xA3, - 0x86, - 0x86, - 0xA9, - 0xA3, - 0x6F, - 0x05, - 0x03, - 0x0E, - 0x05, - 0x0B, - 0x3E, - 0x28, - 0x28, - 0x28, - 0x0A, - 0x28, - 0x07, - 0x3E, - 0x00, - 0x2E, - 0x2F, - 0x33, - 0x4F, - 0x2F, - 0x2F, - 0x33, - 0x2F, - 0x4F, - 0x33, - 0x33, - 0x52, - 0x33, - 0x23, - 0x40, - 0x33, - 0x21, - 0x40, - 0x44, - 0x44, - 0x40, - 0x44, - 0x52, - 0x33, - 0x52, - 0x52, - 0x52, - 0x42, - 0x63, - 0x66, - 0x66, - 0x81, - 0x66, - 0x81, - 0x81, - 0x9B, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xD2, - 0xC2, - 0xB6, - 0xD2, - 0x05, - 0xC2, - 0x00, - 0x24, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xC2, - 0xB5, - 0xB6, - 0xB6, - 0x09, - 0xB5, - 0x00, - 0x0E, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xAC, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xA6, - 0x07, - 0xB0, - 0x00, - 0x21, - 0xA1, - 0xA1, - 0xB0, - 0xB3, - 0xA6, - 0xB0, - 0xB3, - 0xA6, - 0xB3, - 0xB3, - 0xA1, - 0xA1, - 0xB3, - 0xB3, - 0xB0, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xBF, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB8, - 0xB3, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0xAE, - 0xB8, - 0x00, - 0x05, - 0xAE, - 0x01, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x11, - 0x9F, - 0x9F, - 0x98, - 0x9F, - 0xAA, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0xAA, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0x00, - 0x0D, - 0xAA, - 0x00, - 0x0C, - 0x9C, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x08, - 0xAA, - 0x01, - 0xB2, - 0x08, - 0xAA, - 0x00, - 0x5A, - 0x82, - 0x80, - 0x67, - 0x4D, - 0x12, - 0x32, - 0x0E, - 0x19, - 0x12, - 0x2D, - 0x03, - 0x12, - 0x03, - 0x12, - 0x12, - 0x26, - 0x12, - 0x0A, - 0x0A, - 0x2D, - 0x56, - 0x49, - 0x56, - 0x56, - 0x49, - 0x15, - 0x0D, - 0x2D, - 0x41, - 0x56, - 0x24, - 0x2D, - 0x64, - 0x64, - 0x60, - 0x80, - 0x6F, - 0x0E, - 0x62, - 0xC0, - 0xC0, - 0x86, - 0x5D, - 0x2A, - 0x96, - 0xFC, - 0xFC, - 0xFC, - 0x86, - 0x10, - 0x32, - 0x11, - 0xD0, - 0xF1, - 0xF1, - 0xC0, - 0x4A, - 0x10, - 0xA9, - 0xFC, - 0xF1, - 0xFF, - 0xFF, - 0xF1, - 0x6F, - 0x96, - 0xD0, - 0xFC, - 0xFF, - 0xFC, - 0xF1, - 0xFC, - 0xFC, - 0xFC, - 0xE8, - 0xE8, - 0xE8, - 0xA3, - 0xC0, - 0xE8, - 0xC0, - 0xE8, - 0x86, - 0xF1, - 0xA3, - 0x62, - 0x0E, - 0x03, - 0x0F, - 0x06, - 0x07, - 0x28, - 0x0A, - 0x3E, - 0x04, - 0x4F, - 0x00, - 0x17, - 0x33, - 0x33, - 0x23, - 0x40, - 0x23, - 0x2E, - 0x40, - 0x2E, - 0x44, - 0x44, - 0x48, - 0x44, - 0x44, - 0x63, - 0x54, - 0x59, - 0x63, - 0x59, - 0x59, - 0x54, - 0x63, - 0x6B, - 0x66, - 0x00, - 0x04, - 0x81, - 0x00, - 0x04, - 0xFE, - 0xD2, - 0xD2, - 0xD2, - 0x05, - 0xC2, - 0x01, - 0xB6, - 0x01, - 0xD2, - 0x0A, - 0xC2, - 0x00, - 0x0B, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x0E, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB6, - 0x06, - 0xB5, - 0x01, - 0xB6, - 0x06, - 0xB5, - 0x00, - 0x07, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x0A, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA1, - 0xB0, - 0xA6, - 0x04, - 0xB0, - 0x00, - 0x04, - 0xA6, - 0xB3, - 0xA1, - 0xB0, - 0x06, - 0xB3, - 0x00, - 0x0A, - 0xAE, - 0xB3, - 0xA1, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xB8, - 0x09, - 0xAE, - 0x00, - 0x06, - 0xBF, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0x00, - 0x00, - 0x00, - 0x10, - 0x98, - 0xAA, - 0x98, - 0xAA, - 0xAA, - 0x8E, - 0xAA, - 0x9F, - 0xAA, - 0xAA, - 0xA7, - 0x9F, - 0xA7, - 0xAA, - 0xAA, - 0xB2, - 0x0B, - 0xAA, - 0x00, - 0x03, - 0xB2, - 0xAA, - 0xB2, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x0A, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x05, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0x07, - 0xAA, - 0x00, - 0x5F, - 0x9F, - 0x82, - 0x4C, - 0x32, - 0x1F, - 0x3E, - 0x12, - 0x24, - 0x2D, - 0x03, - 0x2D, - 0x0D, - 0x2D, - 0x06, - 0x2D, - 0x0D, - 0x0D, - 0x2D, - 0x24, - 0x49, - 0x56, - 0x0D, - 0x15, - 0x2D, - 0x2D, - 0x2D, - 0x24, - 0x41, - 0x15, - 0x2D, - 0x2D, - 0x15, - 0x15, - 0x2D, - 0x26, - 0x82, - 0x19, - 0x06, - 0x32, - 0xD0, - 0xC0, - 0x39, - 0x1F, - 0x89, - 0xBE, - 0xA8, - 0xBD, - 0xBD, - 0x39, - 0x09, - 0x1C, - 0xE8, - 0xFC, - 0xFC, - 0xBD, - 0xD0, - 0x10, - 0x6F, - 0xC0, - 0xF1, - 0xF1, - 0xFC, - 0xFF, - 0xFC, - 0xA9, - 0xFC, - 0xF1, - 0xF1, - 0xD0, - 0xF1, - 0xC0, - 0xA9, - 0xC0, - 0x86, - 0xC0, - 0xE8, - 0xE8, - 0xC0, - 0x86, - 0x86, - 0x86, - 0xBD, - 0xA3, - 0x4D, - 0x28, - 0x03, - 0x0D, - 0x28, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x2A, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x44, - 0x40, - 0x44, - 0x40, - 0x44, - 0x44, - 0x40, - 0x2E, - 0x44, - 0x30, - 0x40, - 0x30, - 0x42, - 0x44, - 0x59, - 0x58, - 0x59, - 0x5F, - 0x5F, - 0x54, - 0x63, - 0x6B, - 0x81, - 0x81, - 0x81, - 0x9B, - 0xC2, - 0xD2, - 0xC2, - 0xC2, - 0xD2, - 0x06, - 0xC2, - 0x00, - 0x03, - 0xB6, - 0xC2, - 0xB6, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x16, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0x08, - 0xB6, - 0x00, - 0x0A, - 0xB5, - 0xB6, - 0xB5, - 0xB6, - 0xAC, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x09, - 0xB0, - 0xB5, - 0xB5, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0xA6, - 0x00, - 0x04, - 0xB0, - 0x01, - 0xA6, - 0x06, - 0xB0, - 0x00, - 0x1E, - 0xA6, - 0xA6, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA6, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xAE, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xBF, - 0x04, - 0xAE, - 0x01, - 0xBF, - 0x04, - 0xAE, - 0x01, - 0xB8, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x19, - 0xAA, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0xA7, - 0xA7, - 0xA7, - 0xB2, - 0x8E, - 0xA7, - 0xA7, - 0xAA, - 0xA7, - 0x98, - 0xAA, - 0xA7, - 0xAA, - 0xAA, - 0xA7, - 0xAA, - 0xB2, - 0xA7, - 0xAA, - 0xB2, - 0x00, - 0x08, - 0xAA, - 0x00, - 0x0F, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0x00, - 0x0D, - 0xAA, - 0x00, - 0x12, - 0x9C, - 0x82, - 0x26, - 0x2D, - 0x26, - 0x4C, - 0x2D, - 0x41, - 0x0A, - 0x0D, - 0x49, - 0x15, - 0x0D, - 0x26, - 0x41, - 0x41, - 0x41, - 0x4C, - 0x04, - 0x56, - 0x00, - 0x06, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x04, - 0x41, - 0x00, - 0x21, - 0x24, - 0x2D, - 0x15, - 0x2D, - 0x15, - 0x15, - 0x28, - 0x4C, - 0x4C, - 0x41, - 0x4C, - 0x60, - 0x9B, - 0xAF, - 0x89, - 0x6F, - 0x1C, - 0x1C, - 0x96, - 0xFC, - 0xFF, - 0xFF, - 0xC0, - 0xC0, - 0x4D, - 0x89, - 0x84, - 0xA8, - 0xBD, - 0xD0, - 0xE8, - 0xFC, - 0xE8, - 0x00, - 0x06, - 0xFC, - 0x00, - 0x3F, - 0xFF, - 0xE8, - 0xC0, - 0xA3, - 0x86, - 0xA3, - 0xE8, - 0xF1, - 0xC0, - 0xA3, - 0x2A, - 0x28, - 0x2D, - 0x28, - 0x49, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x49, - 0x3E, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x28, - 0x28, - 0x3E, - 0x28, - 0x3E, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x33, - 0x33, - 0x40, - 0x40, - 0x44, - 0x42, - 0x44, - 0x42, - 0x42, - 0x2E, - 0x42, - 0x44, - 0x42, - 0x44, - 0x44, - 0x63, - 0x59, - 0x63, - 0x63, - 0x58, - 0x42, - 0x66, - 0x6B, - 0x5F, - 0x81, - 0x81, - 0xE8, - 0xC4, - 0x00, - 0x09, - 0xC2, - 0x00, - 0x13, - 0xB6, - 0xC2, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xB6, - 0xC2, - 0x00, - 0x11, - 0xB6, - 0x00, - 0x06, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB5, - 0xB6, - 0x06, - 0xB5, - 0x00, - 0x03, - 0xAC, - 0xB5, - 0xAC, - 0x00, - 0x04, - 0xB5, - 0x00, - 0x27, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xAC, - 0xA1, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xB3, - 0xAE, - 0xA6, - 0xA1, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xA1, - 0xB3, - 0x00, - 0x0C, - 0xAE, - 0x01, - 0xB3, - 0x06, - 0xAE, - 0x00, - 0x03, - 0xB8, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0xA7, - 0x98, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0xA7, - 0xAA, - 0xAA, - 0xA7, - 0xA7, - 0xAA, - 0x9F, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x20, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x07, - 0xAA, - 0x00, - 0x3E, - 0x8E, - 0x32, - 0x56, - 0x2D, - 0x64, - 0x4C, - 0x2D, - 0x2D, - 0x15, - 0x41, - 0x56, - 0x15, - 0x15, - 0x41, - 0x56, - 0x56, - 0x15, - 0x0D, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x4B, - 0x0D, - 0x15, - 0x4B, - 0x15, - 0x56, - 0x41, - 0x0A, - 0x2D, - 0x56, - 0x4B, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x15, - 0x03, - 0x41, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x4C, - 0x78, - 0x6F, - 0x0B, - 0x32, - 0x8D, - 0xAF, - 0xBD, - 0xA5, - 0x96, - 0x4D, - 0x62, - 0x4C, - 0x4C, - 0x60, - 0x6C, - 0x97, - 0x04, - 0xC0, - 0x00, - 0x0D, - 0xA3, - 0xF1, - 0xFC, - 0xE8, - 0xE8, - 0xFC, - 0xFC, - 0xFF, - 0xFF, - 0xFF, - 0xE8, - 0x86, - 0x35, - 0x00, - 0x06, - 0x49, - 0x00, - 0x08, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x28, - 0x28, - 0x28, - 0x49, - 0x04, - 0x3E, - 0x00, - 0x1D, - 0x28, - 0x3E, - 0x3E, - 0x4F, - 0x2F, - 0x2F, - 0x55, - 0x33, - 0x33, - 0x40, - 0x44, - 0x44, - 0x3D, - 0x23, - 0x20, - 0x59, - 0x44, - 0x40, - 0x44, - 0x40, - 0x42, - 0x63, - 0x50, - 0x59, - 0x54, - 0x63, - 0x59, - 0x42, - 0x6B, - 0x00, - 0x04, - 0x81, - 0x00, - 0x03, - 0xAE, - 0xE7, - 0xC4, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0E, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0x18, - 0xB6, - 0x00, - 0x09, - 0xB5, - 0xB6, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0x00, - 0x05, - 0xB5, - 0x01, - 0xB6, - 0x04, - 0xB5, - 0x00, - 0x28, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA2, - 0xA6, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xB0, - 0xB0, - 0xA1, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0x07, - 0xAE, - 0x00, - 0x10, - 0xB8, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xBF, - 0xAE, - 0xAE, - 0xAE, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x23, - 0x9F, - 0xAA, - 0x98, - 0xAA, - 0xA7, - 0xAA, - 0xA7, - 0xA7, - 0xAA, - 0xA1, - 0xAA, - 0xAA, - 0xAA, - 0xA7, - 0xB2, - 0xAA, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0x01, - 0xAA, - 0x01, - 0xAA, - 0x05, - 0xB2, - 0x00, - 0x0B, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0x00, - 0x06, - 0xAA, - 0x00, - 0x70, - 0x82, - 0x57, - 0x64, - 0x56, - 0x64, - 0x70, - 0x4B, - 0x56, - 0x15, - 0x70, - 0x2D, - 0x49, - 0x0D, - 0x2D, - 0x41, - 0x49, - 0x24, - 0x15, - 0x2D, - 0x64, - 0x56, - 0x56, - 0x49, - 0x41, - 0x2D, - 0x2D, - 0x2D, - 0x4B, - 0x41, - 0x49, - 0x15, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x2D, - 0x41, - 0x2D, - 0x0D, - 0x0D, - 0x15, - 0x15, - 0x15, - 0x28, - 0x15, - 0x0D, - 0x0A, - 0x0D, - 0x2D, - 0x0D, - 0x0A, - 0x28, - 0x15, - 0x2D, - 0x26, - 0x28, - 0x12, - 0x5B, - 0x39, - 0x62, - 0x6C, - 0x4C, - 0x4D, - 0x6D, - 0x7D, - 0x7A, - 0x8A, - 0x7A, - 0xA9, - 0xA8, - 0xD0, - 0xFC, - 0xE8, - 0xE8, - 0xA3, - 0x80, - 0x4D, - 0x56, - 0x26, - 0x67, - 0x2D, - 0x49, - 0x28, - 0x28, - 0x2D, - 0x3E, - 0x49, - 0x28, - 0x67, - 0x3E, - 0x67, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x4F, - 0x4F, - 0x33, - 0x4F, - 0x4F, - 0x4F, - 0x55, - 0x55, - 0x55, - 0x52, - 0x58, - 0x44, - 0x42, - 0x42, - 0x59, - 0x42, - 0x33, - 0x04, - 0x44, - 0x00, - 0x13, - 0x42, - 0x42, - 0x54, - 0x63, - 0x59, - 0x59, - 0x63, - 0x6B, - 0x81, - 0x81, - 0x81, - 0xF5, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xC2, - 0xC2, - 0xC4, - 0x00, - 0x05, - 0xC2, - 0x00, - 0x0D, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0x00, - 0x1B, - 0xB6, - 0x00, - 0x27, - 0xAC, - 0xB6, - 0xB5, - 0xB6, - 0xB5, - 0xAC, - 0xB6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xB5, - 0xB0, - 0xAC, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xA6, - 0xB5, - 0xB0, - 0xB0, - 0xA6, - 0xAC, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x09, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0x00, - 0x04, - 0xAE, - 0x01, - 0xA1, - 0x07, - 0xAE, - 0x00, - 0x03, - 0xB3, - 0xAE, - 0xB8, - 0x00, - 0x0A, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x25, - 0xAA, - 0x8E, - 0xA7, - 0x9F, - 0xB2, - 0x8E, - 0x8E, - 0xAA, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xAA, - 0x05, - 0xB2, - 0x00, - 0x05, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x2B, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0x8F, - 0x70, - 0x64, - 0x64, - 0x41, - 0x41, - 0x8E, - 0x4B, - 0x4B, - 0x64, - 0x56, - 0x41, - 0x2D, - 0x41, - 0x41, - 0x56, - 0x4B, - 0x15, - 0x2D, - 0x41, - 0x41, - 0x56, - 0x56, - 0x41, - 0x24, - 0x2D, - 0x2D, - 0x56, - 0x56, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x2D, - 0x4B, - 0x56, - 0x41, - 0x28, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x26, - 0x0D, - 0x28, - 0x2D, - 0x2D, - 0x15, - 0x28, - 0x2D, - 0x56, - 0x26, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x26, - 0x2D, - 0x0A, - 0x0F, - 0x26, - 0x49, - 0x4C, - 0x57, - 0x57, - 0x8D, - 0xAF, - 0xD0, - 0xE8, - 0xF1, - 0xE8, - 0xA3, - 0x60, - 0x41, - 0x4C, - 0x28, - 0x2D, - 0x49, - 0x28, - 0x05, - 0x49, - 0x00, - 0x23, - 0x3E, - 0x4F, - 0x67, - 0x3E, - 0x67, - 0x4F, - 0x3E, - 0x4F, - 0x4F, - 0x55, - 0x4F, - 0x2F, - 0x4F, - 0x55, - 0x55, - 0x33, - 0x44, - 0x40, - 0x6B, - 0x63, - 0x44, - 0x42, - 0x59, - 0x42, - 0x44, - 0x40, - 0x44, - 0x40, - 0x44, - 0x40, - 0x44, - 0x54, - 0x54, - 0x59, - 0x63, - 0x00, - 0x04, - 0x81, - 0x01, - 0xC5, - 0x01, - 0xC4, - 0x06, - 0xC2, - 0x00, - 0x07, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xC2, - 0xB6, - 0xC2, - 0x00, - 0x25, - 0xB6, - 0x00, - 0x21, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB5, - 0xA6, - 0xB0, - 0xAC, - 0xB0, - 0xA6, - 0xAC, - 0xB0, - 0x00, - 0x05, - 0xA6, - 0x00, - 0x11, - 0xB0, - 0x99, - 0xA6, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA6, - 0xA1, - 0xB0, - 0xB3, - 0xA1, - 0xB3, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x00, - 0x07, - 0xAE, - 0x01, - 0xB3, - 0x04, - 0xAE, - 0x01, - 0xB3, - 0x09, - 0xAE, - 0x00, - 0x03, - 0xA7, - 0xB8, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0xA7, - 0x9F, - 0xA7, - 0x9F, - 0xA7, - 0xAA, - 0xB2, - 0xAA, - 0x8E, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xBA, - 0x00, - 0x07, - 0xB2, - 0x00, - 0x10, - 0xAA, - 0xBA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0x07, - 0xAA, - 0x00, - 0x5E, - 0x9C, - 0x95, - 0x56, - 0x64, - 0x56, - 0x64, - 0x99, - 0x2D, - 0x64, - 0x64, - 0x41, - 0x24, - 0x41, - 0x56, - 0x4B, - 0x2D, - 0x56, - 0x41, - 0x2D, - 0x49, - 0x4B, - 0x56, - 0x64, - 0x56, - 0x56, - 0x41, - 0x2D, - 0x15, - 0x41, - 0x2D, - 0x0D, - 0x15, - 0x56, - 0x2D, - 0x56, - 0x56, - 0x64, - 0x56, - 0x56, - 0x41, - 0x2D, - 0x41, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x28, - 0x2D, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x49, - 0x2D, - 0x28, - 0x49, - 0x2D, - 0x28, - 0x2D, - 0x0A, - 0x19, - 0x19, - 0x49, - 0x3E, - 0x82, - 0x78, - 0x97, - 0x97, - 0xA3, - 0x7B, - 0x86, - 0x4C, - 0x28, - 0x28, - 0x28, - 0x49, - 0x2D, - 0x28, - 0x2D, - 0x28, - 0x49, - 0x49, - 0x28, - 0x28, - 0x49, - 0x3E, - 0x3E, - 0x4F, - 0x3E, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x4F, - 0x04, - 0x33, - 0x00, - 0x06, - 0x59, - 0x59, - 0x52, - 0x44, - 0x59, - 0x63, - 0x05, - 0x44, - 0x00, - 0x1B, - 0x59, - 0x54, - 0x59, - 0x59, - 0x59, - 0x42, - 0x5F, - 0x6B, - 0x66, - 0x81, - 0x81, - 0x81, - 0xAE, - 0xF3, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xB5, - 0xC2, - 0xC2, - 0xB6, - 0xB6, - 0xC2, - 0xC2, - 0x00, - 0x0C, - 0xB6, - 0x01, - 0xAC, - 0x17, - 0xB6, - 0x00, - 0x10, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xB5, - 0xAC, - 0xAC, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xAC, - 0xA6, - 0xB5, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0xB0, - 0xA6, - 0xB0, - 0x04, - 0xA6, - 0x00, - 0x0C, - 0xB0, - 0xAC, - 0xA6, - 0xA6, - 0xAC, - 0xA6, - 0xA6, - 0x99, - 0xB0, - 0x99, - 0xB0, - 0x99, - 0x05, - 0xA1, - 0x00, - 0x0B, - 0xB3, - 0xA1, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xB3, - 0xAE, - 0xA1, - 0xA1, - 0x00, - 0x0A, - 0xAE, - 0x01, - 0xB3, - 0x01, - 0xB3, - 0x08, - 0xAE, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x16, - 0x9F, - 0x9F, - 0xA7, - 0xAE, - 0xAA, - 0xAA, - 0xA7, - 0xA7, - 0xAA, - 0xA7, - 0xAA, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xA7, - 0xB2, - 0x04, - 0xAA, - 0x00, - 0x0D, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xBA, - 0xB2, - 0xC1, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xAA, - 0x07, - 0xB2, - 0x00, - 0x84, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0x9F, - 0x4C, - 0x64, - 0x64, - 0x41, - 0x4C, - 0x56, - 0x4B, - 0x70, - 0x41, - 0x41, - 0x41, - 0x56, - 0x56, - 0x24, - 0x4B, - 0x2D, - 0x2D, - 0x2D, - 0x41, - 0x56, - 0x4B, - 0x56, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x64, - 0x56, - 0x56, - 0x41, - 0x56, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x49, - 0x41, - 0x56, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x41, - 0x49, - 0x41, - 0x49, - 0x56, - 0x41, - 0x56, - 0x67, - 0x49, - 0x2D, - 0x28, - 0x12, - 0x49, - 0x41, - 0x49, - 0x57, - 0x67, - 0x78, - 0x82, - 0x4C, - 0x3E, - 0x12, - 0x28, - 0x2D, - 0x28, - 0x2D, - 0x28, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x28, - 0x2F, - 0x2F, - 0x2F, - 0x4F, - 0x33, - 0x33, - 0x40, - 0x33, - 0x40, - 0x33, - 0x52, - 0x33, - 0x44, - 0x52, - 0x44, - 0x42, - 0x40, - 0x40, - 0x42, - 0x59, - 0x54, - 0x59, - 0x54, - 0x58, - 0x63, - 0x5F, - 0x81, - 0x81, - 0x81, - 0x9B, - 0x05, - 0xC4, - 0x00, - 0x0A, - 0xC2, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0xC4, - 0xB5, - 0xB6, - 0xC2, - 0xB5, - 0x25, - 0xB6, - 0x00, - 0x06, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0x05, - 0xAC, - 0x00, - 0x17, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB5, - 0xA2, - 0xB0, - 0xA6, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB0, - 0xA6, - 0xA2, - 0x00, - 0x06, - 0xA6, - 0x00, - 0x08, - 0xA2, - 0xB0, - 0x99, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0x08, - 0xA1, - 0x01, - 0xAE, - 0x01, - 0xA1, - 0x0C, - 0xAE, - 0x01, - 0xB3, - 0x0C, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x16, - 0xAA, - 0xA1, - 0xB2, - 0x9F, - 0xAA, - 0xA1, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xBA, - 0x8E, - 0xAA, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0x04, - 0xB2, - 0x00, - 0x05, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0x00, - 0x0D, - 0xB2, - 0x01, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x3E, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0x64, - 0x56, - 0x4B, - 0x56, - 0x64, - 0x64, - 0x64, - 0x41, - 0x56, - 0x4B, - 0x41, - 0x56, - 0x2D, - 0x28, - 0x4B, - 0x41, - 0x56, - 0x24, - 0x56, - 0x56, - 0x56, - 0x64, - 0x41, - 0x24, - 0x56, - 0x2D, - 0x56, - 0x49, - 0x2D, - 0x2D, - 0x41, - 0x41, - 0x56, - 0x41, - 0x41, - 0x2D, - 0x2D, - 0x56, - 0x2D, - 0x49, - 0x41, - 0x49, - 0x49, - 0x04, - 0x2D, - 0x00, - 0x12, - 0x49, - 0x2D, - 0x41, - 0x56, - 0x49, - 0x56, - 0x56, - 0x49, - 0x56, - 0x49, - 0x41, - 0x26, - 0x49, - 0x49, - 0x41, - 0x26, - 0x28, - 0x26, - 0x06, - 0x2D, - 0x01, - 0x41, - 0x05, - 0x49, - 0x00, - 0x26, - 0x2D, - 0x49, - 0x49, - 0x28, - 0x3E, - 0x2F, - 0x28, - 0x2F, - 0x28, - 0x28, - 0x3E, - 0x4F, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x33, - 0x44, - 0x44, - 0x40, - 0x44, - 0x40, - 0x40, - 0x44, - 0x63, - 0x59, - 0x59, - 0x59, - 0x63, - 0x59, - 0x42, - 0x63, - 0x54, - 0x66, - 0x81, - 0x81, - 0x7B, - 0xF8, - 0x04, - 0xC4, - 0x00, - 0x10, - 0xB5, - 0xC4, - 0xC4, - 0xB5, - 0xC2, - 0xB5, - 0xB5, - 0xB6, - 0xC2, - 0xB5, - 0xB5, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xB5, - 0x04, - 0xB6, - 0x01, - 0xAC, - 0x07, - 0xB6, - 0x00, - 0x06, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0x05, - 0xB6, - 0x00, - 0x24, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB5, - 0xB5, - 0xAC, - 0xB6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xA2, - 0xAC, - 0xB5, - 0xA6, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0x05, - 0xA6, - 0x00, - 0x05, - 0xA2, - 0xA6, - 0xB0, - 0xB0, - 0xA2, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x07, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0xA6, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x11, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xAE, - 0xA6, - 0x00, - 0x0E, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x17, - 0xA7, - 0xA7, - 0xB2, - 0x8E, - 0xB2, - 0xA7, - 0x8E, - 0xB2, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xA7, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xA7, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x06, - 0xAA, - 0xB2, - 0xAA, - 0xBA, - 0xAA, - 0xAA, - 0x04, - 0xB2, - 0x01, - 0xBA, - 0x04, - 0xB2, - 0x01, - 0xBA, - 0x0B, - 0xB2, - 0x00, - 0x27, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xAA, - 0xC1, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0x70, - 0x94, - 0x4B, - 0x64, - 0x70, - 0x64, - 0x64, - 0x4B, - 0x56, - 0x4B, - 0x56, - 0x64, - 0x41, - 0x0D, - 0x2D, - 0x56, - 0x64, - 0x24, - 0x15, - 0x4C, - 0x49, - 0x56, - 0x64, - 0x00, - 0x05, - 0x41, - 0x00, - 0x1F, - 0x2D, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x56, - 0x56, - 0x56, - 0x41, - 0x41, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x41, - 0x2D, - 0x28, - 0x41, - 0x56, - 0x2D, - 0x56, - 0x49, - 0x49, - 0x56, - 0x56, - 0x56, - 0x4C, - 0x67, - 0x4C, - 0x00, - 0x05, - 0x49, - 0x00, - 0x06, - 0x2D, - 0x26, - 0x49, - 0x56, - 0x49, - 0x67, - 0x07, - 0x49, - 0x00, - 0x23, - 0x3E, - 0x3E, - 0x3E, - 0x4F, - 0x4F, - 0x2F, - 0x2F, - 0x3E, - 0x4F, - 0x3E, - 0x2F, - 0x2F, - 0x33, - 0x33, - 0x52, - 0x44, - 0x44, - 0x59, - 0x42, - 0x44, - 0x59, - 0x52, - 0x59, - 0x54, - 0x59, - 0x63, - 0x5F, - 0x6B, - 0x6B, - 0x6B, - 0x63, - 0x81, - 0x81, - 0xA3, - 0xC7, - 0x00, - 0x06, - 0xC4, - 0x00, - 0x1F, - 0xB5, - 0xC4, - 0xC4, - 0xC4, - 0xB5, - 0xC4, - 0xC2, - 0xB5, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB6, - 0xB5, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x07, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x0B, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x07, - 0xAC, - 0x00, - 0x20, - 0xB5, - 0xA6, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xA6, - 0xA2, - 0xB0, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0x04, - 0xA1, - 0x00, - 0x0C, - 0xAE, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x04, - 0xAE, - 0x00, - 0x04, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x0C, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xAA, - 0xA7, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0xB2, - 0xAA, - 0xAA, - 0xA7, - 0x09, - 0xB2, - 0x00, - 0x06, - 0xA7, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0x04, - 0xB2, - 0x00, - 0x07, - 0xBA, - 0xAA, - 0xB2, - 0xBA, - 0xAA, - 0xAA, - 0xBA, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x04, - 0xBA, - 0xAA, - 0xB3, - 0xBA, - 0x0D, - 0xB2, - 0x00, - 0x2B, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xAA, - 0xB2, - 0xAA, - 0xC1, - 0xAA, - 0xCA, - 0x8E, - 0x9F, - 0x70, - 0x94, - 0x64, - 0x64, - 0xA2, - 0x70, - 0x64, - 0x41, - 0x56, - 0x56, - 0x4B, - 0x41, - 0x2D, - 0x2D, - 0x56, - 0x56, - 0x49, - 0x41, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x56, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x1F, - 0x49, - 0x49, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x28, - 0x0F, - 0x2F, - 0x19, - 0x3E, - 0x2A, - 0x1F, - 0x3E, - 0x26, - 0x2D, - 0x26, - 0x49, - 0x32, - 0x00, - 0x06, - 0x3E, - 0x00, - 0x25, - 0x49, - 0x49, - 0x56, - 0x67, - 0x67, - 0x49, - 0x3E, - 0x4F, - 0x40, - 0x55, - 0x4F, - 0x4F, - 0x2F, - 0x2F, - 0x4F, - 0x52, - 0x55, - 0x52, - 0x59, - 0x54, - 0x59, - 0x63, - 0x54, - 0x54, - 0x50, - 0x59, - 0x44, - 0x59, - 0x58, - 0x58, - 0x63, - 0x63, - 0x58, - 0x81, - 0x6B, - 0x7B, - 0xE7, - 0x00, - 0x06, - 0xC4, - 0x00, - 0x03, - 0xBB, - 0xC4, - 0xBB, - 0x00, - 0x09, - 0xB5, - 0x00, - 0x23, - 0xB6, - 0xB5, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x0D, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xA2, - 0xB5, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x1D, - 0xB0, - 0xAC, - 0xA6, - 0xAC, - 0xA6, - 0xB0, - 0xA2, - 0xB0, - 0xB0, - 0xA2, - 0xA2, - 0xA6, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xB0, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA1, - 0xA1, - 0xA6, - 0x99, - 0x00, - 0x07, - 0xA1, - 0x00, - 0x0E, - 0xAE, - 0xAE, - 0xAE, - 0xA1, - 0x98, - 0xAE, - 0xA7, - 0xA1, - 0xAE, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0xA1, - 0x0E, - 0xAE, - 0x01, - 0xA7, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x10, - 0x98, - 0xB2, - 0xB2, - 0xA7, - 0x8E, - 0xB2, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xB2, - 0xB2, - 0xAA, - 0x0D, - 0xB2, - 0x00, - 0x15, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB3, - 0xB2, - 0xB3, - 0x00, - 0x06, - 0xB2, - 0x00, - 0x37, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xC1, - 0xAA, - 0xAA, - 0xC1, - 0x8E, - 0x94, - 0x69, - 0x56, - 0x64, - 0x70, - 0x99, - 0x41, - 0x64, - 0x56, - 0x56, - 0x56, - 0x4B, - 0x49, - 0x56, - 0x4B, - 0x56, - 0x41, - 0x24, - 0x41, - 0x41, - 0x49, - 0x70, - 0x56, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x41, - 0x2D, - 0x2D, - 0x41, - 0x56, - 0x41, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x27, - 0x28, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x28, - 0x2D, - 0x49, - 0x28, - 0x49, - 0x28, - 0x3E, - 0x3E, - 0x3E, - 0x4F, - 0x49, - 0x4C, - 0x67, - 0x49, - 0x3E, - 0x2D, - 0x3E, - 0x49, - 0x4C, - 0x4F, - 0x4F, - 0x3E, - 0x4F, - 0x67, - 0x4F, - 0x67, - 0x3E, - 0x67, - 0x55, - 0x67, - 0x55, - 0x6B, - 0x52, - 0x59, - 0x00, - 0x05, - 0x55, - 0x00, - 0x13, - 0x52, - 0x59, - 0x6B, - 0x52, - 0x63, - 0x42, - 0x54, - 0x63, - 0x63, - 0x59, - 0x48, - 0x48, - 0x58, - 0x6B, - 0x6B, - 0x81, - 0x81, - 0x7B, - 0xCB, - 0x00, - 0x07, - 0xC4, - 0x00, - 0x08, - 0xBB, - 0xBB, - 0xC4, - 0xC4, - 0xB5, - 0xBB, - 0xC4, - 0xC4, - 0x08, - 0xB5, - 0x00, - 0x22, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0x09, - 0xAC, - 0x00, - 0x16, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xA2, - 0xAC, - 0xB0, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0x04, - 0xA6, - 0x00, - 0x0F, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0xA1, - 0xA6, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x00, - 0x08, - 0xA1, - 0x00, - 0x09, - 0x8E, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0x8E, - 0xAE, - 0xA1, - 0xA7, - 0x00, - 0x10, - 0xAE, - 0x01, - 0xA7, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xA7, - 0xA7, - 0x98, - 0xB2, - 0xA7, - 0xA7, - 0xA7, - 0xB2, - 0xB2, - 0xA7, - 0x05, - 0xB2, - 0x00, - 0x08, - 0xA7, - 0xA7, - 0xB2, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0x0B, - 0xB2, - 0x00, - 0x09, - 0xAA, - 0xBA, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0x00, - 0x06, - 0xB2, - 0x00, - 0x03, - 0xAA, - 0xB2, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xAA, - 0x04, - 0xB2, - 0x00, - 0x2B, - 0xAA, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xAA, - 0xBA, - 0xAA, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xAA, - 0xA2, - 0x64, - 0x64, - 0x69, - 0x64, - 0x64, - 0x56, - 0x56, - 0x41, - 0x41, - 0x56, - 0x64, - 0x56, - 0x70, - 0x41, - 0x56, - 0x70, - 0x56, - 0x56, - 0x64, - 0x70, - 0x56, - 0x64, - 0x67, - 0x41, - 0x56, - 0x56, - 0x49, - 0x49, - 0x49, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x4F, - 0x49, - 0x41, - 0x56, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x56, - 0x41, - 0x56, - 0x49, - 0x49, - 0x56, - 0x49, - 0x56, - 0x2D, - 0x3E, - 0x3E, - 0x49, - 0x3E, - 0x67, - 0x3E, - 0x49, - 0x4F, - 0x49, - 0x3E, - 0x4F, - 0x4F, - 0x55, - 0x33, - 0x55, - 0x55, - 0x55, - 0x4F, - 0x3E, - 0x55, - 0x4F, - 0x67, - 0x4F, - 0x4F, - 0x52, - 0x59, - 0x52, - 0x52, - 0x55, - 0x55, - 0x81, - 0x55, - 0x81, - 0x59, - 0x55, - 0x59, - 0x59, - 0x6B, - 0x5F, - 0x54, - 0x50, - 0x63, - 0x6B, - 0x63, - 0x5A, - 0x58, - 0x81, - 0x81, - 0xC5, - 0xB8, - 0xC4, - 0xE7, - 0xAE, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0xC4, - 0xB5, - 0xB5, - 0xBB, - 0x00, - 0x08, - 0xB5, - 0x00, - 0x2C, - 0xB6, - 0xB5, - 0xB5, - 0xB6, - 0xB5, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xA2, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0x04, - 0xAC, - 0x01, - 0xA2, - 0x04, - 0xAC, - 0x00, - 0x0A, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xB0, - 0xAC, - 0xA6, - 0xA6, - 0xA2, - 0x06, - 0xA6, - 0x00, - 0x0F, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0x99, - 0xB0, - 0xA1, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0x99, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x16, - 0x8E, - 0xA1, - 0xA1, - 0x8E, - 0xA1, - 0x8E, - 0xAE, - 0xA1, - 0x8E, - 0xAE, - 0xAE, - 0xA1, - 0xB3, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x08, - 0xAE, - 0x00, - 0x04, - 0xA7, - 0xAE, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xA7, - 0x8E, - 0xB2, - 0xA7, - 0xB2, - 0x8E, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xAA, - 0xAE, - 0xB2, - 0xAE, - 0x07, - 0xB2, - 0x01, - 0xAA, - 0x0C, - 0xB2, - 0x00, - 0x0F, - 0xC1, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0x00, - 0x04, - 0xB2, - 0x01, - 0xBA, - 0x01, - 0xA1, - 0x08, - 0xB2, - 0x00, - 0x3D, - 0xAA, - 0xB2, - 0xB2, - 0xAA, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xAA, - 0xB2, - 0xAA, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xAE, - 0x70, - 0x64, - 0x8E, - 0x64, - 0x64, - 0x64, - 0x56, - 0x56, - 0x4B, - 0x56, - 0x70, - 0x64, - 0x64, - 0x41, - 0x56, - 0x56, - 0x56, - 0x49, - 0x56, - 0x56, - 0x56, - 0x70, - 0x41, - 0x70, - 0x56, - 0x70, - 0x49, - 0x56, - 0x2D, - 0x2D, - 0x41, - 0x49, - 0x2D, - 0x56, - 0x2D, - 0x49, - 0x56, - 0x56, - 0x2D, - 0x41, - 0x49, - 0x41, - 0x56, - 0x49, - 0x56, - 0x00, - 0x04, - 0x49, - 0x00, - 0x51, - 0x3E, - 0x28, - 0x3E, - 0x3E, - 0x67, - 0x67, - 0x9B, - 0x67, - 0x67, - 0x67, - 0x4F, - 0x2F, - 0x33, - 0x22, - 0x4F, - 0x2F, - 0x4F, - 0x2F, - 0x3E, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x59, - 0x59, - 0x59, - 0x52, - 0x55, - 0x55, - 0x2F, - 0x4F, - 0x55, - 0x55, - 0x33, - 0x52, - 0x63, - 0x58, - 0x54, - 0x42, - 0x54, - 0x59, - 0x58, - 0x81, - 0x81, - 0x7B, - 0xBC, - 0xC7, - 0xC4, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xC4, - 0xB5, - 0xB5, - 0xB5, - 0xAC, - 0xB0, - 0xB5, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x05, - 0xAC, - 0x01, - 0xB6, - 0x04, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0x07, - 0xAC, - 0x00, - 0x03, - 0xB6, - 0xAC, - 0xB6, - 0x00, - 0x05, - 0xAC, - 0x00, - 0x05, - 0xA2, - 0xB6, - 0xAC, - 0xAC, - 0xB5, - 0x00, - 0x07, - 0xAC, - 0x00, - 0x07, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA6, - 0xAC, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x2A, - 0xA2, - 0xA6, - 0xA2, - 0x99, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0xA1, - 0xA1, - 0x99, - 0xA1, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0xA1, - 0xA1, - 0x8E, - 0xAE, - 0xAE, - 0xA1, - 0xA1, - 0xA1, - 0x8E, - 0xA1, - 0xA7, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x04, - 0xAE, - 0x00, - 0x04, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0x09, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA7, - 0xB2, - 0xA1, - 0xAA, - 0xB2, - 0xA7, - 0xA7, - 0x00, - 0x15, - 0xB2, - 0x00, - 0x1C, - 0xAA, - 0xC1, - 0xB2, - 0xB2, - 0xAA, - 0xBA, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xAA, - 0x09, - 0xB2, - 0x01, - 0xAA, - 0x05, - 0xB2, - 0x00, - 0x24, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xAA, - 0xCC, - 0xB2, - 0xB2, - 0xAA, - 0x8E, - 0x64, - 0x70, - 0x70, - 0x70, - 0x64, - 0x56, - 0x56, - 0x56, - 0x64, - 0x70, - 0x70, - 0x56, - 0x56, - 0x64, - 0x41, - 0x64, - 0x41, - 0x56, - 0x67, - 0x56, - 0x67, - 0x41, - 0x67, - 0x49, - 0x56, - 0x49, - 0x06, - 0x56, - 0x01, - 0x49, - 0x04, - 0x56, - 0x00, - 0x0B, - 0x49, - 0x41, - 0x49, - 0x49, - 0x49, - 0x56, - 0x49, - 0x67, - 0x49, - 0x49, - 0x67, - 0x00, - 0x04, - 0x56, - 0x00, - 0x28, - 0x4F, - 0x3E, - 0x3E, - 0x33, - 0x55, - 0x52, - 0x44, - 0x55, - 0x40, - 0x55, - 0x2F, - 0x4F, - 0x4F, - 0x2F, - 0x4F, - 0x4F, - 0x4F, - 0x2F, - 0x55, - 0x55, - 0x55, - 0x33, - 0x55, - 0x55, - 0x4F, - 0x55, - 0x4F, - 0x55, - 0x52, - 0x40, - 0x52, - 0x42, - 0x42, - 0x58, - 0x5F, - 0x81, - 0x81, - 0x7B, - 0xD9, - 0xB3, - 0x04, - 0xCB, - 0x00, - 0x10, - 0xC4, - 0xC4, - 0xC4, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0xB5, - 0xBB, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xBB, - 0x04, - 0xB5, - 0x00, - 0x0A, - 0xB0, - 0xB5, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB6, - 0x09, - 0xAC, - 0x01, - 0xB6, - 0x04, - 0xAC, - 0x00, - 0x05, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x09, - 0xAC, - 0x00, - 0x04, - 0xB6, - 0xB6, - 0xAC, - 0xB6, - 0x06, - 0xAC, - 0x00, - 0x3D, - 0xA2, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xA6, - 0xA6, - 0xAC, - 0xA6, - 0xAC, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA1, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0x99, - 0xA1, - 0xA1, - 0x94, - 0xA1, - 0xA1, - 0xA1, - 0x94, - 0x8E, - 0xA1, - 0xAE, - 0x94, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xAE, - 0x94, - 0xAE, - 0xA7, - 0xA1, - 0xA7, - 0xA1, - 0x00, - 0x05, - 0xAE, - 0x01, - 0x98, - 0x01, - 0x98, - 0x05, - 0xAE, - 0x01, - 0xA7, - 0x01, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x06, - 0xA7, - 0xAA, - 0xAA, - 0xAE, - 0xB2, - 0xA7, - 0x0C, - 0xB2, - 0x01, - 0xA7, - 0x0B, - 0xB2, - 0x00, - 0x15, - 0xBA, - 0xAA, - 0xC1, - 0xB2, - 0xAA, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x0E, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x25, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xB2, - 0xBA, - 0x64, - 0x99, - 0x64, - 0x99, - 0xA2, - 0x64, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x99, - 0x4B, - 0x56, - 0x41, - 0x56, - 0x64, - 0x56, - 0x49, - 0x4B, - 0x67, - 0x64, - 0x4C, - 0x56, - 0x70, - 0x56, - 0x56, - 0x49, - 0x49, - 0x49, - 0x00, - 0x07, - 0x56, - 0x00, - 0x0B, - 0x49, - 0x56, - 0x41, - 0x49, - 0x56, - 0x56, - 0x3E, - 0x67, - 0x49, - 0x49, - 0x67, - 0x00, - 0x04, - 0x49, - 0x00, - 0x0F, - 0x67, - 0x3E, - 0x4C, - 0x52, - 0x40, - 0x40, - 0x59, - 0x52, - 0x59, - 0x52, - 0x55, - 0x79, - 0x55, - 0x3E, - 0x3E, - 0x00, - 0x04, - 0x4F, - 0x01, - 0x55, - 0x01, - 0x33, - 0x05, - 0x55, - 0x00, - 0x18, - 0x59, - 0x6B, - 0x5F, - 0x6B, - 0x66, - 0x81, - 0x81, - 0x81, - 0x7B, - 0xCF, - 0xCB, - 0xAE, - 0xDA, - 0xCB, - 0xCB, - 0xC4, - 0xC4, - 0xCB, - 0xBB, - 0xC4, - 0xC4, - 0xBB, - 0xBB, - 0xB5, - 0x05, - 0xBB, - 0x00, - 0x0E, - 0xB0, - 0xB0, - 0xB5, - 0xB5, - 0xB0, - 0xB5, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB5, - 0x08, - 0xAC, - 0x00, - 0x05, - 0xB6, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x08, - 0xAC, - 0x00, - 0x06, - 0xB6, - 0xAC, - 0xAC, - 0xB6, - 0xAC, - 0xB6, - 0x06, - 0xAC, - 0x00, - 0x15, - 0xA2, - 0xB6, - 0xB6, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x01, - 0xA6, - 0x01, - 0xA6, - 0x04, - 0xA2, - 0x00, - 0x2B, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0x99, - 0xA1, - 0x99, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0x8E, - 0xA1, - 0xA1, - 0x94, - 0x8E, - 0xA1, - 0xA7, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xA1, - 0x98, - 0xA1, - 0xAE, - 0x8E, - 0x98, - 0xAE, - 0xAE, - 0xA1, - 0x98, - 0xAE, - 0xAE, - 0x98, - 0x00, - 0x0A, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xA7, - 0xA1, - 0xAA, - 0xB2, - 0xA7, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xAE, - 0xAA, - 0xB2, - 0xB2, - 0xB2, - 0xAE, - 0x00, - 0x07, - 0xB2, - 0x00, - 0x04, - 0xAE, - 0xB2, - 0xB2, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x19, - 0xBA, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0x00, - 0x09, - 0xB2, - 0x00, - 0x1B, - 0xAA, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xB2, - 0xC1, - 0xAA, - 0xAA, - 0xC1, - 0xC1, - 0xCA, - 0xF2, - 0xBA, - 0x94, - 0x64, - 0xA2, - 0x64, - 0x64, - 0x56, - 0x70, - 0xA2, - 0x00, - 0x04, - 0x56, - 0x00, - 0x0D, - 0x70, - 0x56, - 0x67, - 0x41, - 0x70, - 0x67, - 0x64, - 0x70, - 0x70, - 0x70, - 0x56, - 0x41, - 0x49, - 0x00, - 0x04, - 0x56, - 0x01, - 0x49, - 0x06, - 0x56, - 0x00, - 0x3E, - 0x49, - 0x49, - 0x49, - 0x56, - 0x56, - 0x56, - 0x49, - 0x67, - 0x67, - 0x3E, - 0x49, - 0x67, - 0x49, - 0x49, - 0x3E, - 0x49, - 0x4F, - 0x4F, - 0x21, - 0x52, - 0x65, - 0x47, - 0x59, - 0x55, - 0x52, - 0x55, - 0x55, - 0x55, - 0x4F, - 0x2F, - 0x2F, - 0x4F, - 0x55, - 0x4F, - 0x40, - 0x55, - 0x52, - 0x59, - 0x59, - 0x6B, - 0x6B, - 0x81, - 0x66, - 0x81, - 0x66, - 0x81, - 0xAF, - 0xD3, - 0xCB, - 0xD1, - 0xCB, - 0xF3, - 0xC4, - 0xCB, - 0xC4, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0xCB, - 0xBB, - 0xC4, - 0x04, - 0xBB, - 0x00, - 0x13, - 0xB5, - 0xB0, - 0xBB, - 0xB5, - 0xBB, - 0xAC, - 0xB0, - 0xB5, - 0xA6, - 0xB5, - 0xAC, - 0xB0, - 0xB5, - 0xA6, - 0xB5, - 0xB5, - 0xAC, - 0xB0, - 0xB5, - 0x00, - 0x0E, - 0xAC, - 0x01, - 0xB6, - 0x12, - 0xAC, - 0x01, - 0xA2, - 0x06, - 0xAC, - 0x00, - 0x4B, - 0xA2, - 0xA6, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA2, - 0xA1, - 0x99, - 0x99, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0xA1, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0x94, - 0x98, - 0xA1, - 0x8E, - 0xAE, - 0xA7, - 0x94, - 0xAE, - 0xA1, - 0xA7, - 0xA1, - 0xA1, - 0xA7, - 0xA7, - 0xA1, - 0xAE, - 0xAE, - 0xA1, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0xA7, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xAE, - 0xA7, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xAE, - 0xAA, - 0x06, - 0xB2, - 0x01, - 0xB8, - 0x07, - 0xB2, - 0x00, - 0x03, - 0xB8, - 0xB2, - 0xBA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x09, - 0xC1, - 0xBA, - 0xB2, - 0xAA, - 0xB2, - 0xBA, - 0xAA, - 0xBA, - 0xB2, - 0x00, - 0x06, - 0xBA, - 0x00, - 0x11, - 0xB3, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB3, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xAA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x39, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xAA, - 0xC1, - 0xC1, - 0xB2, - 0xB2, - 0xC1, - 0xBA, - 0xCA, - 0xC1, - 0xC1, - 0xBA, - 0xB3, - 0x64, - 0x70, - 0x56, - 0x70, - 0x99, - 0x70, - 0x70, - 0x70, - 0x56, - 0x70, - 0x49, - 0x56, - 0x56, - 0x56, - 0x70, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x56, - 0x70, - 0x56, - 0x56, - 0x49, - 0x28, - 0x56, - 0x49, - 0x70, - 0x56, - 0x49, - 0x67, - 0x56, - 0x49, - 0x00, - 0x04, - 0x56, - 0x00, - 0x50, - 0x67, - 0x56, - 0x49, - 0x67, - 0x67, - 0x56, - 0x67, - 0x67, - 0x4F, - 0x55, - 0x67, - 0x55, - 0x55, - 0x59, - 0x59, - 0x55, - 0x59, - 0x59, - 0x55, - 0x55, - 0x55, - 0x67, - 0x67, - 0x4F, - 0x67, - 0x4F, - 0x67, - 0x59, - 0x81, - 0x55, - 0x55, - 0x67, - 0x59, - 0x59, - 0x6B, - 0x5F, - 0x81, - 0x81, - 0xC3, - 0xCB, - 0xF3, - 0xAE, - 0xCB, - 0xDA, - 0xD1, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xBB, - 0xBB, - 0xB5, - 0xBB, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xB5, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xB5, - 0xA6, - 0xB5, - 0xB0, - 0xAC, - 0xB5, - 0xA2, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0x06, - 0xAC, - 0x00, - 0x06, - 0xA2, - 0xB6, - 0xA2, - 0xB6, - 0xAC, - 0xB6, - 0x04, - 0xAC, - 0x01, - 0xA2, - 0x01, - 0xB6, - 0x0B, - 0xAC, - 0x01, - 0xA2, - 0x05, - 0xAC, - 0x00, - 0x4A, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA1, - 0x99, - 0xA6, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0xA1, - 0x99, - 0x8E, - 0xA1, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0x8E, - 0xAE, - 0xA1, - 0xAE, - 0x8E, - 0xA1, - 0xAE, - 0x8E, - 0xA7, - 0xAE, - 0xA7, - 0xA1, - 0xA7, - 0xAE, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0xA7, - 0xAE, - 0xAE, - 0x98, - 0x04, - 0xAE, - 0x01, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x13, - 0xAE, - 0xAA, - 0xA7, - 0xAE, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xA7, - 0xB2, - 0xB2, - 0xAE, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xAE, - 0xB8, - 0x00, - 0x06, - 0xB2, - 0x01, - 0xB8, - 0x01, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x0C, - 0xC1, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0x09, - 0xBA, - 0x00, - 0x0A, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0x05, - 0xB2, - 0x00, - 0x2F, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xB2, - 0xC1, - 0xCC, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCC, - 0xC1, - 0xCC, - 0xE1, - 0xC4, - 0x94, - 0x4B, - 0x56, - 0x64, - 0x70, - 0x70, - 0x56, - 0x56, - 0x56, - 0x70, - 0x49, - 0x56, - 0x56, - 0x70, - 0x99, - 0x56, - 0x70, - 0x70, - 0x70, - 0x56, - 0x56, - 0x56, - 0x70, - 0x70, - 0x70, - 0x00, - 0x04, - 0x49, - 0x00, - 0x0D, - 0x56, - 0x56, - 0x67, - 0x49, - 0x67, - 0x70, - 0x49, - 0x49, - 0x49, - 0x56, - 0x3E, - 0x67, - 0x56, - 0x00, - 0x04, - 0x67, - 0x00, - 0x2A, - 0x55, - 0x67, - 0x55, - 0x55, - 0x55, - 0x52, - 0x52, - 0x55, - 0x59, - 0x55, - 0x55, - 0x81, - 0x55, - 0x55, - 0x81, - 0x6B, - 0x81, - 0x7B, - 0x55, - 0xA3, - 0x55, - 0x81, - 0x81, - 0x6B, - 0x81, - 0x7B, - 0xD9, - 0xE7, - 0xD1, - 0xD7, - 0xD1, - 0xCB, - 0xC7, - 0xBB, - 0xCB, - 0xCB, - 0xDA, - 0xBB, - 0xCB, - 0xC4, - 0xBB, - 0xC4, - 0x08, - 0xBB, - 0x00, - 0x20, - 0xB0, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xB5, - 0xA6, - 0xB0, - 0xAC, - 0xB5, - 0xAC, - 0xAC, - 0xB0, - 0xB5, - 0xAC, - 0xAC, - 0xAC, - 0xB6, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xB6, - 0x08, - 0xAC, - 0x00, - 0x28, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x08, - 0x99, - 0x00, - 0x08, - 0xA6, - 0x94, - 0x94, - 0xA1, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0x04, - 0x94, - 0x00, - 0x16, - 0x8E, - 0xA1, - 0x8E, - 0xA1, - 0x94, - 0xA1, - 0x8E, - 0xA1, - 0xA1, - 0x8E, - 0x8E, - 0xAE, - 0x98, - 0xA1, - 0xAE, - 0xA1, - 0x98, - 0xA1, - 0xA7, - 0xA1, - 0xAE, - 0x98, - 0x09, - 0xAE, - 0x00, - 0x03, - 0x98, - 0xAE, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xAA, - 0xAE, - 0xB2, - 0xB2, - 0xB2, - 0xA7, - 0xA7, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xAE, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0x00, - 0x0B, - 0xBA, - 0x00, - 0x09, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB3, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x19, - 0xC1, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xCD, - 0xBA, - 0xB2, - 0xD6, - 0xCC, - 0xB2, - 0xD6, - 0xC1, - 0xCA, - 0xC1, - 0xD6, - 0xAA, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x56, - 0x28, - 0x00, - 0x05, - 0x56, - 0x08, - 0x70, - 0x00, - 0x0C, - 0x56, - 0x70, - 0x70, - 0x49, - 0x49, - 0x56, - 0x70, - 0x67, - 0x56, - 0x56, - 0x49, - 0x49, - 0x05, - 0x67, - 0x00, - 0x19, - 0x49, - 0x67, - 0x67, - 0x3E, - 0x3E, - 0x67, - 0x4F, - 0x4F, - 0x55, - 0x55, - 0x4F, - 0x7B, - 0x55, - 0x7B, - 0x67, - 0x7B, - 0x55, - 0x67, - 0x7B, - 0x55, - 0x81, - 0x55, - 0x55, - 0x81, - 0x7B, - 0x00, - 0x05, - 0x81, - 0x01, - 0xE4, - 0x01, - 0xF3, - 0x04, - 0xD1, - 0x00, - 0x11, - 0xCB, - 0xD1, - 0xBB, - 0xD7, - 0xCB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xCB, - 0xBB, - 0xBB, - 0xBB, - 0xB0, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x18, - 0xB3, - 0xBB, - 0xB0, - 0xB0, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xA2, - 0xB5, - 0xAC, - 0xB5, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA6, - 0x06, - 0xAC, - 0x00, - 0x03, - 0xA2, - 0xB6, - 0xA2, - 0x00, - 0x0F, - 0xAC, - 0x00, - 0x0A, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0x07, - 0xA2, - 0x00, - 0x11, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x00, - 0x20, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0xA1, - 0x94, - 0xA1, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0x94, - 0x94, - 0xA1, - 0xA1, - 0x8E, - 0x98, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0xAE, - 0x8E, - 0x98, - 0xAE, - 0x8E, - 0xAE, - 0x98, - 0xA7, - 0xAE, - 0x98, - 0x05, - 0xAE, - 0x00, - 0x09, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xAE, - 0xAE, - 0x98, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x28, - 0xAE, - 0xAA, - 0xA7, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xAA, - 0xC1, - 0xBA, - 0xB2, - 0x04, - 0xBA, - 0x01, - 0xB2, - 0x06, - 0xBA, - 0x00, - 0x36, - 0xB2, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xAA, - 0xC1, - 0xC1, - 0xAA, - 0xCA, - 0xC1, - 0xCD, - 0xC1, - 0xD6, - 0xF5, - 0x57, - 0x70, - 0x56, - 0x64, - 0x70, - 0x70, - 0x64, - 0x56, - 0x49, - 0x56, - 0x67, - 0x56, - 0x05, - 0x70, - 0x00, - 0x0A, - 0x56, - 0x70, - 0x56, - 0xA2, - 0x70, - 0x70, - 0x67, - 0x70, - 0xA2, - 0x56, - 0x04, - 0x70, - 0x00, - 0x03, - 0x56, - 0x67, - 0x56, - 0x00, - 0x05, - 0x67, - 0x00, - 0x1D, - 0x3E, - 0x70, - 0x67, - 0x4F, - 0x67, - 0x4F, - 0x3E, - 0x67, - 0x67, - 0x4F, - 0x67, - 0x67, - 0x55, - 0x55, - 0x7B, - 0x6B, - 0x81, - 0x81, - 0x55, - 0x81, - 0x81, - 0x6B, - 0x6B, - 0x81, - 0x7B, - 0xF7, - 0x9B, - 0xF3, - 0xBF, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x08, - 0xBF, - 0xD1, - 0xCB, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xBB, - 0x04, - 0xCB, - 0x07, - 0xBB, - 0x00, - 0x06, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB0, - 0xB3, - 0x06, - 0xB0, - 0x00, - 0x0D, - 0xB5, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xA6, - 0xA6, - 0xAC, - 0xB5, - 0xAC, - 0xB5, - 0x00, - 0x04, - 0xAC, - 0x01, - 0xA6, - 0x04, - 0xAC, - 0x00, - 0x21, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0x99, - 0xA6, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x06, - 0x99, - 0xA2, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0x04, - 0x99, - 0x00, - 0x0D, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0xA1, - 0x99, - 0x99, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x99, - 0x00, - 0x06, - 0x94, - 0x00, - 0x04, - 0x8E, - 0x94, - 0xA1, - 0xA1, - 0x04, - 0x94, - 0x00, - 0x12, - 0xA1, - 0x8E, - 0xA1, - 0x98, - 0x8E, - 0x98, - 0xA1, - 0x8E, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0x06, - 0xAE, - 0x00, - 0x04, - 0xA7, - 0xAE, - 0x98, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x06, - 0xB8, - 0xB2, - 0xB2, - 0xAE, - 0xA7, - 0xB8, - 0x06, - 0xB2, - 0x00, - 0x04, - 0xB8, - 0xB8, - 0xB2, - 0xB8, - 0x04, - 0xB2, - 0x00, - 0x10, - 0xB8, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xB8, - 0xBA, - 0xC1, - 0xB2, - 0xC1, - 0xB2, - 0x12, - 0xBA, - 0x00, - 0x54, - 0xB3, - 0xBA, - 0xB3, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB3, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xAA, - 0xC1, - 0xC1, - 0xD6, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xCC, - 0xC1, - 0xCD, - 0xCD, - 0xD5, - 0x95, - 0x56, - 0x4B, - 0x56, - 0x64, - 0x56, - 0x56, - 0x70, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x99, - 0x70, - 0xA2, - 0x70, - 0x70, - 0x70, - 0xA2, - 0x67, - 0xAC, - 0x70, - 0x67, - 0x99, - 0x70, - 0x70, - 0x70, - 0x56, - 0x67, - 0x67, - 0x67, - 0x70, - 0x67, - 0xAE, - 0x9B, - 0x67, - 0x67, - 0x67, - 0x55, - 0x67, - 0x67, - 0x7B, - 0x05, - 0x67, - 0x00, - 0x2F, - 0x55, - 0x7B, - 0x55, - 0x7B, - 0x81, - 0x81, - 0x7B, - 0x81, - 0xF0, - 0xAF, - 0xBC, - 0xD3, - 0xCF, - 0xD7, - 0xD1, - 0xC7, - 0xD1, - 0xBF, - 0xD7, - 0xD1, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xD7, - 0xBF, - 0xBA, - 0xCB, - 0xCB, - 0xBB, - 0xBF, - 0xCB, - 0xBB, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xB0, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0x00, - 0x06, - 0xB0, - 0x00, - 0x2B, - 0xA6, - 0xB5, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB5, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x04, - 0xAC, - 0xA2, - 0xA2, - 0xA6, - 0x07, - 0xA2, - 0x00, - 0x09, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA6, - 0x00, - 0x07, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x06, - 0x94, - 0x00, - 0x09, - 0xA1, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x98, - 0x94, - 0xA1, - 0x00, - 0x05, - 0x8E, - 0x00, - 0x18, - 0x98, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0x98, - 0xA7, - 0xA7, - 0xAE, - 0xAE, - 0xA7, - 0xAE, - 0xAE, - 0xAE, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0x98, - 0x00, - 0x00, - 0x00, - 0x18, - 0xA7, - 0xA7, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB8, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x0E, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0x09, - 0xBA, - 0x00, - 0x04, - 0xBF, - 0xBA, - 0xB2, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x12, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0x04, - 0xC1, - 0x00, - 0x12, - 0xB2, - 0xB2, - 0xC1, - 0xCC, - 0xBA, - 0xC1, - 0xCA, - 0xCA, - 0xBA, - 0xCD, - 0xC1, - 0xC1, - 0xD6, - 0xC1, - 0xC1, - 0x82, - 0x70, - 0x70, - 0x05, - 0x56, - 0x00, - 0x16, - 0x70, - 0x56, - 0x64, - 0x70, - 0x56, - 0x70, - 0x56, - 0x70, - 0x70, - 0x70, - 0x67, - 0xA2, - 0x67, - 0xAE, - 0x99, - 0x67, - 0xAC, - 0x67, - 0x70, - 0x70, - 0xAE, - 0x70, - 0x06, - 0x67, - 0x00, - 0x2E, - 0x55, - 0x67, - 0x9B, - 0x55, - 0x81, - 0x67, - 0x55, - 0xAE, - 0x98, - 0x55, - 0x55, - 0x81, - 0x67, - 0x81, - 0xA3, - 0x9B, - 0xD1, - 0xF8, - 0xCF, - 0xD3, - 0xC5, - 0xCF, - 0xCF, - 0xD1, - 0xC7, - 0xD5, - 0xC7, - 0xD7, - 0xD7, - 0xC7, - 0xD1, - 0xC7, - 0xD7, - 0xD1, - 0xBF, - 0xBF, - 0xD7, - 0xC4, - 0xBF, - 0xCB, - 0xCB, - 0xCB, - 0xBB, - 0xBF, - 0xBB, - 0xCB, - 0x05, - 0xBB, - 0x00, - 0x2E, - 0xB3, - 0xBB, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xB0, - 0xB3, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xA6, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xA6, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xA6, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0x04, - 0xA2, - 0x01, - 0xAC, - 0x0E, - 0xA2, - 0x00, - 0x05, - 0xA6, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x04, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x08, - 0x99, - 0x00, - 0x07, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x00, - 0x07, - 0x94, - 0x00, - 0x1C, - 0x8E, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x94, - 0x94, - 0x98, - 0x94, - 0x8E, - 0xAE, - 0x98, - 0xAE, - 0xA7, - 0x8E, - 0x98, - 0xA7, - 0x98, - 0x98, - 0xA7, - 0xA1, - 0xA7, - 0xA7, - 0xAE, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0x04, - 0xA7, - 0x00, - 0x05, - 0xAE, - 0xA7, - 0x98, - 0xAE, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0xB2, - 0xB8, - 0xB8, - 0xB2, - 0xB2, - 0xA7, - 0x04, - 0xB2, - 0x00, - 0x1E, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB8, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xB2, - 0x0F, - 0xBA, - 0x00, - 0x03, - 0xB2, - 0xBA, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0x04, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x22, - 0xB2, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC1, - 0xB2, - 0xB2, - 0xCA, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCA, - 0xCD, - 0xCD, - 0xC1, - 0xD6, - 0xD6, - 0xAA, - 0x70, - 0xA2, - 0x64, - 0x70, - 0x70, - 0x70, - 0x99, - 0x70, - 0x70, - 0x56, - 0x94, - 0x70, - 0xA2, - 0x04, - 0x70, - 0x00, - 0x6F, - 0x67, - 0x67, - 0x99, - 0x67, - 0xAE, - 0x70, - 0x67, - 0x70, - 0x67, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x67, - 0x9B, - 0x67, - 0x67, - 0x67, - 0x7B, - 0x67, - 0x9B, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x67, - 0x67, - 0xD3, - 0xD2, - 0xD6, - 0xD5, - 0xD5, - 0xD3, - 0xF8, - 0xD3, - 0xD3, - 0xCF, - 0xD7, - 0xCF, - 0xCF, - 0xCF, - 0xD7, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xD1, - 0xC7, - 0xD7, - 0xC7, - 0xCB, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xCB, - 0xBB, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0xB0, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xAC, - 0xB5, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xAC, - 0xA6, - 0xAC, - 0xB0, - 0xAC, - 0xA6, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0x00, - 0x05, - 0xA2, - 0x00, - 0x04, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0x0E, - 0xA2, - 0x00, - 0x19, - 0x99, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x94, - 0x99, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x99, - 0x00, - 0x0C, - 0x94, - 0x00, - 0x0D, - 0x98, - 0x8E, - 0xA1, - 0x8E, - 0xA1, - 0x98, - 0xA1, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0xA7, - 0x98, - 0x00, - 0x04, - 0xA7, - 0x01, - 0x9F, - 0x09, - 0xA7, - 0x00, - 0x07, - 0xAE, - 0xA7, - 0x98, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0xB8, - 0xA7, - 0xB2, - 0xB8, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xBA, - 0xB8, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xB2, - 0x06, - 0xBA, - 0x00, - 0x0A, - 0xC1, - 0xB2, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xC1, - 0x0F, - 0xBA, - 0x00, - 0x1D, - 0xB3, - 0xBA, - 0xBA, - 0xB3, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xAA, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x37, - 0xCC, - 0xCD, - 0xBA, - 0xC1, - 0xCD, - 0xDC, - 0xC1, - 0xCD, - 0xCD, - 0xDA, - 0xB2, - 0x8E, - 0x70, - 0xA2, - 0x70, - 0x70, - 0xB3, - 0xBA, - 0xEF, - 0xCD, - 0xBA, - 0xA2, - 0x70, - 0xAE, - 0xC5, - 0xC4, - 0xCF, - 0x98, - 0x67, - 0xCF, - 0x67, - 0x67, - 0xA2, - 0x67, - 0xAC, - 0x67, - 0x99, - 0x67, - 0x9B, - 0xAE, - 0xAE, - 0xAE, - 0xCF, - 0xD3, - 0xC2, - 0xD3, - 0xAE, - 0xD3, - 0xFB, - 0xD3, - 0xF8, - 0xF8, - 0xE4, - 0xD3, - 0xF8, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1D, - 0xD3, - 0xF8, - 0xD3, - 0xD1, - 0xD3, - 0xC7, - 0xD1, - 0xCF, - 0xC7, - 0xD5, - 0xBF, - 0xD1, - 0xD1, - 0xBF, - 0xD1, - 0xBF, - 0xCB, - 0xC7, - 0xD7, - 0xBF, - 0xCB, - 0xBF, - 0xCB, - 0xCB, - 0xBF, - 0xBB, - 0xCB, - 0xB3, - 0xBF, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x28, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB0, - 0xA6, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xA6, - 0xA1, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xAC, - 0xA6, - 0xB5, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0xAC, - 0xA6, - 0xAC, - 0xA2, - 0xA2, - 0xAC, - 0xA6, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0x05, - 0xA2, - 0x00, - 0x03, - 0xAC, - 0xA2, - 0xAC, - 0x00, - 0x11, - 0xA2, - 0x00, - 0x18, - 0x99, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA6, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA1, - 0x99, - 0x94, - 0x99, - 0x05, - 0x94, - 0x01, - 0x99, - 0x04, - 0x94, - 0x00, - 0x28, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x98, - 0x94, - 0x94, - 0x8E, - 0xAE, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x8E, - 0xA7, - 0xA7, - 0xA7, - 0x98, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0xA7, - 0xAE, - 0xA7, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x17, - 0xB2, - 0xB8, - 0xC5, - 0xA7, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0x00, - 0x06, - 0xBA, - 0x01, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x04, - 0xC1, - 0xBA, - 0xC1, - 0xB2, - 0x04, - 0xBA, - 0x01, - 0xC1, - 0x05, - 0xBA, - 0x01, - 0xBF, - 0x0B, - 0xBA, - 0x00, - 0x16, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB3, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xC1, - 0xC1, - 0xB2, - 0x04, - 0xC1, - 0x00, - 0x31, - 0xAA, - 0xD6, - 0xC1, - 0xC1, - 0xCC, - 0xC1, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xBA, - 0xB2, - 0x8E, - 0x99, - 0x98, - 0xC1, - 0xCD, - 0xD6, - 0xD6, - 0xD5, - 0xCC, - 0xD6, - 0xD6, - 0xD6, - 0xD3, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0xCF, - 0xD3, - 0xD9, - 0xD1, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0x00, - 0x05, - 0xCD, - 0x01, - 0xD5, - 0x07, - 0xCD, - 0x00, - 0x2C, - 0xC7, - 0xCD, - 0xD5, - 0xD5, - 0xD5, - 0xC7, - 0xC1, - 0xD1, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xD1, - 0xBA, - 0xC7, - 0xCB, - 0xC7, - 0xBA, - 0xCB, - 0xBF, - 0xBF, - 0xBB, - 0xD7, - 0xCB, - 0xBF, - 0xBB, - 0xBB, - 0xB3, - 0xBB, - 0xB3, - 0xBB, - 0xBB, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB0, - 0xA1, - 0xB3, - 0xA1, - 0x04, - 0xB0, - 0x00, - 0x1D, - 0xA1, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xA6, - 0xAC, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xAC, - 0xA2, - 0xB0, - 0xB0, - 0xA2, - 0xA6, - 0xAC, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xA2, - 0xAC, - 0xAC, - 0x00, - 0x14, - 0xA2, - 0x00, - 0x1B, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0xA6, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x00, - 0x06, - 0x94, - 0x00, - 0x1B, - 0xA1, - 0x8E, - 0x94, - 0x98, - 0x94, - 0x98, - 0x98, - 0x94, - 0x98, - 0xA1, - 0x8E, - 0x98, - 0xAE, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x00, - 0x0B, - 0xA7, - 0x00, - 0x04, - 0x98, - 0xA7, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x27, - 0xB2, - 0xB2, - 0xB2, - 0xC5, - 0xC5, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xB8, - 0xB8, - 0xBA, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xC1, - 0xBA, - 0xB8, - 0xC1, - 0xB8, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xC1, - 0x00, - 0x05, - 0xBA, - 0x01, - 0xC1, - 0x08, - 0xBA, - 0x00, - 0x14, - 0xB3, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xB3, - 0xC1, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x0C, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCC, - 0x05, - 0xC1, - 0x00, - 0x13, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xD5, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xD6, - 0xCD, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x56, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD5, - 0xD3, - 0xD6, - 0xD3, - 0xF2, - 0xF8, - 0xCF, - 0xCD, - 0xD5, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD5, - 0xD3, - 0xCD, - 0xCD, - 0xCD, - 0xCF, - 0xD5, - 0xCD, - 0xCD, - 0xD5, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xD7, - 0xC1, - 0xD5, - 0xC7, - 0xC7, - 0xD1, - 0xCB, - 0xC1, - 0xD7, - 0xBF, - 0xBF, - 0xBF, - 0xD7, - 0xBB, - 0xCB, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xCB, - 0xBB, - 0xBA, - 0xCB, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xBB, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xB0, - 0x04, - 0xA6, - 0x00, - 0x0D, - 0xAC, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xAC, - 0xA6, - 0xA2, - 0xAC, - 0xA2, - 0xA2, - 0xA6, - 0x00, - 0x17, - 0xA2, - 0x00, - 0x0D, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x01, - 0x94, - 0x05, - 0x99, - 0x06, - 0x94, - 0x00, - 0x1C, - 0x99, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x98, - 0xA7, - 0x8E, - 0xA7, - 0x8E, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x98, - 0xA7, - 0x98, - 0x0D, - 0xA7, - 0x01, - 0xAE, - 0x05, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x10, - 0xA7, - 0xC5, - 0xB8, - 0xB2, - 0xB8, - 0xB2, - 0xB2, - 0xB8, - 0xB2, - 0xBA, - 0xB2, - 0xB8, - 0xC5, - 0xBA, - 0xBA, - 0xB8, - 0x05, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0xBA, - 0xB8, - 0xBA, - 0xBA, - 0xC1, - 0x06, - 0xBA, - 0x00, - 0x10, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xCB, - 0xBA, - 0xBA, - 0xBA, - 0xB3, - 0x04, - 0xBA, - 0x01, - 0xC1, - 0x05, - 0xBA, - 0x01, - 0xB2, - 0x0A, - 0xBA, - 0x00, - 0x06, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xB3, - 0x05, - 0xBA, - 0x00, - 0x12, - 0xC1, - 0xBA, - 0xC1, - 0xCD, - 0xAA, - 0xAA, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0x07, - 0xCD, - 0x00, - 0x22, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD3, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xD3, - 0xCD, - 0xCD, - 0xD3, - 0x04, - 0xCD, - 0x00, - 0x0A, - 0xC5, - 0xD5, - 0xCD, - 0xD5, - 0xC1, - 0xCF, - 0xC7, - 0xD5, - 0xD5, - 0xCD, - 0x06, - 0xC7, - 0x00, - 0x2E, - 0xBA, - 0xD1, - 0xBF, - 0xD7, - 0xD7, - 0xC7, - 0xCB, - 0xBA, - 0xBA, - 0xCB, - 0xBF, - 0xB3, - 0xBB, - 0xBA, - 0xBA, - 0xBB, - 0xB3, - 0xBB, - 0xB3, - 0xBB, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB0, - 0xBB, - 0xB0, - 0xB3, - 0xBB, - 0xA1, - 0xA6, - 0xB3, - 0xB0, - 0xA6, - 0xA1, - 0xB0, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0x06, - 0xA6, - 0x00, - 0x0C, - 0xA2, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xAC, - 0x0E, - 0xA2, - 0x01, - 0x99, - 0x0B, - 0xA2, - 0x05, - 0x99, - 0x01, - 0xA6, - 0x06, - 0x99, - 0x00, - 0x08, - 0x94, - 0xA1, - 0x99, - 0x94, - 0x94, - 0x99, - 0x94, - 0x99, - 0x04, - 0x94, - 0x00, - 0x2E, - 0x8E, - 0x94, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x94, - 0x98, - 0x98, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0xA7, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x9F, - 0x98, - 0xA7, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x24, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xB8, - 0xC5, - 0xB2, - 0xB2, - 0xC5, - 0xB2, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0xC5, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0x07, - 0xBA, - 0x00, - 0x06, - 0xC7, - 0xBA, - 0xBA, - 0xD7, - 0xB2, - 0xD7, - 0x11, - 0xBA, - 0x00, - 0x08, - 0xB2, - 0xB2, - 0xB2, - 0xBA, - 0xB3, - 0xBA, - 0xBA, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x17, - 0xB2, - 0xB2, - 0xBA, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xCC, - 0xC1, - 0xCC, - 0xC1, - 0xC1, - 0xC1, - 0xCC, - 0xBA, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x07, - 0xCD, - 0x00, - 0x11, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0x00, - 0x05, - 0xCD, - 0x01, - 0xD6, - 0x10, - 0xCD, - 0x01, - 0xC5, - 0x04, - 0xCD, - 0x00, - 0x39, - 0xC7, - 0xC7, - 0xCD, - 0xD1, - 0xD5, - 0xC7, - 0xC7, - 0xD7, - 0xD1, - 0xBA, - 0xD1, - 0xBA, - 0xBF, - 0xC7, - 0xBF, - 0xBF, - 0xBB, - 0xB3, - 0xBA, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xBB, - 0xBB, - 0xB3, - 0xBF, - 0xBB, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xA1, - 0xB3, - 0xA6, - 0xA1, - 0xB0, - 0xB3, - 0xA6, - 0xA1, - 0xB0, - 0xB0, - 0xA6, - 0xA6, - 0xB0, - 0xB0, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0x00, - 0x05, - 0xA6, - 0x00, - 0x05, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0x00, - 0x0F, - 0xA2, - 0x00, - 0x10, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0x04, - 0xA2, - 0x00, - 0x0C, - 0x99, - 0x99, - 0xA1, - 0x99, - 0x99, - 0x94, - 0x94, - 0x99, - 0x99, - 0x94, - 0x99, - 0x99, - 0x04, - 0x94, - 0x00, - 0x14, - 0x99, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0xA1, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x04, - 0x98, - 0x00, - 0x0E, - 0xA7, - 0x9F, - 0x98, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x98, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0xA7, - 0x9F, - 0x05, - 0xA7, - 0x01, - 0x9C, - 0x05, - 0xA7, - 0x01, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x25, - 0xAA, - 0xC5, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB2, - 0xB2, - 0xC5, - 0xB8, - 0xC1, - 0xBA, - 0xB2, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xC1, - 0xB2, - 0xC1, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xC1, - 0x00, - 0x08, - 0xBA, - 0x01, - 0xC7, - 0x04, - 0xBA, - 0x01, - 0xBF, - 0x0C, - 0xBA, - 0x00, - 0x0D, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x17, - 0xC1, - 0xBA, - 0xBA, - 0xB2, - 0xC1, - 0xCD, - 0xB2, - 0xB2, - 0xAA, - 0xC1, - 0xC1, - 0xC1, - 0xCD, - 0xBA, - 0xC1, - 0xD5, - 0xC1, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC1, - 0xD5, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x03, - 0xD6, - 0xCD, - 0xD6, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0C, - 0xCC, - 0xCD, - 0xD6, - 0xD5, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xD6, - 0xD6, - 0x13, - 0xCD, - 0x00, - 0x3A, - 0xCF, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xD5, - 0xC7, - 0xC7, - 0xC7, - 0xBA, - 0xD7, - 0xD1, - 0xBA, - 0xBF, - 0xBF, - 0xCB, - 0xBA, - 0xBA, - 0xBF, - 0xBF, - 0xBF, - 0xCB, - 0xB3, - 0xB3, - 0xBA, - 0xBA, - 0xB3, - 0xBA, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0xB3, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xB0, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0xB0, - 0x06, - 0xA6, - 0x00, - 0x09, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0xA6, - 0xA2, - 0xA6, - 0xA2, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x01, - 0x99, - 0x08, - 0xA2, - 0x00, - 0x03, - 0x99, - 0xA2, - 0x99, - 0x00, - 0x07, - 0xA2, - 0x00, - 0x0B, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA1, - 0x00, - 0x08, - 0x99, - 0x00, - 0x2C, - 0x94, - 0x94, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x94, - 0x98, - 0x98, - 0x94, - 0x98, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x9F, - 0x8E, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x98, - 0x9F, - 0xA7, - 0xA7, - 0x98, - 0xA7, - 0xA7, - 0x9C, - 0x05, - 0xA7, - 0x00, - 0x03, - 0x9C, - 0xA7, - 0x9C, - 0x00, - 0x05, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xAA, - 0xC5, - 0xC5, - 0xB2, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB2, - 0xBA, - 0xC1, - 0xBA, - 0xC7, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x0F, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x0A, - 0xC1, - 0xBA, - 0xC7, - 0xD7, - 0xB2, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xC1, - 0x1D, - 0xBA, - 0x00, - 0x0C, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xAA, - 0xCD, - 0xC1, - 0xD6, - 0x04, - 0xC1, - 0x00, - 0x0A, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0x06, - 0xCD, - 0x00, - 0x0E, - 0xD6, - 0xCD, - 0xC1, - 0xD6, - 0xD6, - 0xCD, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0xCD, - 0xD6, - 0x07, - 0xCD, - 0x00, - 0x07, - 0xD6, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xD5, - 0xC5, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x0C, - 0xD5, - 0xCD, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0x06, - 0xC7, - 0x00, - 0x15, - 0xC1, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xBA, - 0xCB, - 0xC7, - 0xBF, - 0xBF, - 0xB3, - 0xBA, - 0xB3, - 0xBB, - 0xBB, - 0xBF, - 0xBB, - 0xB3, - 0xB3, - 0xB3, - 0xBB, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x17, - 0xB0, - 0xA1, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xA6, - 0xA6, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xB0, - 0xA6, - 0xA6, - 0xA6, - 0xA1, - 0x00, - 0x04, - 0xA6, - 0x01, - 0xA1, - 0x06, - 0xA6, - 0x00, - 0x16, - 0xA2, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x06, - 0xA2, - 0x01, - 0x99, - 0x01, - 0xA2, - 0x09, - 0x99, - 0x00, - 0x07, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x99, - 0x99, - 0x00, - 0x09, - 0x94, - 0x00, - 0x12, - 0x98, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x04, - 0x98, - 0x00, - 0x05, - 0x8E, - 0x98, - 0xA7, - 0x9F, - 0x98, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x0F, - 0xA7, - 0xA7, - 0x9F, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x06, - 0xC5, - 0x00, - 0x0C, - 0xB2, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xB8, - 0xB2, - 0xC5, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0x05, - 0xC1, - 0x00, - 0x0A, - 0xC5, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC7, - 0x04, - 0xBA, - 0x01, - 0xC1, - 0x07, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xBF, - 0x0C, - 0xBA, - 0x01, - 0xB2, - 0x0A, - 0xBA, - 0x00, - 0x0F, - 0xB3, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xC1, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xCD, - 0x00, - 0x0D, - 0xC1, - 0x00, - 0x04, - 0xD5, - 0xD5, - 0xC1, - 0xD5, - 0x09, - 0xCD, - 0x00, - 0x0C, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xC1, - 0xD6, - 0x09, - 0xCD, - 0x01, - 0xC1, - 0x05, - 0xCD, - 0x01, - 0xC5, - 0x01, - 0xD5, - 0x06, - 0xCD, - 0x00, - 0x22, - 0xC1, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xD7, - 0xC7, - 0xC7, - 0xBA, - 0xD1, - 0xC7, - 0xBF, - 0xBA, - 0xC7, - 0xD7, - 0xB3, - 0xBA, - 0xBF, - 0xBF, - 0xB3, - 0xBA, - 0xBF, - 0xB3, - 0xBB, - 0xB3, - 0xBB, - 0xCB, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xB0, - 0x06, - 0xB3, - 0x00, - 0x13, - 0xA1, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xA6, - 0xB0, - 0xA6, - 0xB0, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xB0, - 0x99, - 0xA1, - 0x00, - 0x09, - 0xA6, - 0x00, - 0x15, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x0A, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA6, - 0x04, - 0x99, - 0x00, - 0x04, - 0x94, - 0x94, - 0x99, - 0x99, - 0x0A, - 0x94, - 0x00, - 0x10, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x07, - 0x98, - 0x00, - 0x14, - 0x8E, - 0x98, - 0xA7, - 0x98, - 0xA7, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x9C, - 0xA7, - 0x9F, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x06, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x32, - 0xC5, - 0xAA, - 0xB2, - 0xC5, - 0xC5, - 0xB2, - 0xC5, - 0xC1, - 0xB2, - 0xC5, - 0xB2, - 0xC5, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC7, - 0xC5, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xBA, - 0xD7, - 0xB2, - 0xC7, - 0xBA, - 0xC7, - 0xD7, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xD7, - 0x04, - 0xBA, - 0x01, - 0xCB, - 0x08, - 0xBA, - 0x01, - 0xD7, - 0x12, - 0xBA, - 0x00, - 0x07, - 0xC1, - 0xB2, - 0xC1, - 0xB2, - 0xC1, - 0xC1, - 0xAA, - 0x00, - 0x07, - 0xC1, - 0x00, - 0x0A, - 0xC7, - 0xCD, - 0xC1, - 0xD5, - 0xCD, - 0xC1, - 0xC1, - 0xC1, - 0xD5, - 0xC1, - 0x09, - 0xCD, - 0x00, - 0x13, - 0xC1, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xD6, - 0x00, - 0x0D, - 0xCD, - 0x00, - 0x21, - 0xC7, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xCD, - 0xBA, - 0xC7, - 0xC7, - 0xD7, - 0xBA, - 0xC7, - 0xC7, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xBB, - 0xBA, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xB3, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xB0, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x3F, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xA1, - 0xB3, - 0xA6, - 0xB3, - 0xB3, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xB0, - 0xA6, - 0xA6, - 0xA1, - 0xB0, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA2, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x00, - 0x05, - 0x99, - 0x00, - 0x0A, - 0x94, - 0x99, - 0x99, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x05, - 0x94, - 0x00, - 0x34, - 0x99, - 0x98, - 0x94, - 0x94, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x98, - 0xA7, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0x9F, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0x9F, - 0x9F, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x34, - 0xB2, - 0xC5, - 0xAA, - 0xD3, - 0xAA, - 0xC5, - 0xC5, - 0xAA, - 0xC5, - 0xB2, - 0xC1, - 0xAA, - 0xC5, - 0xC1, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xC5, - 0xC7, - 0xC1, - 0xC1, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xC1, - 0xBA, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xD7, - 0xD7, - 0xBA, - 0xBF, - 0xBA, - 0xD7, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x06, - 0xBF, - 0xB2, - 0xBA, - 0xC7, - 0xBA, - 0xC7, - 0x12, - 0xBA, - 0x00, - 0x0A, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xB2, - 0xC1, - 0xC1, - 0xC1, - 0xB2, - 0x08, - 0xC1, - 0x00, - 0x09, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x0D, - 0xD6, - 0xC1, - 0xCD, - 0xD6, - 0xC1, - 0xD6, - 0xD6, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0xD6, - 0x00, - 0x18, - 0xCD, - 0x00, - 0x20, - 0xC7, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xBA, - 0xD7, - 0xC7, - 0xC7, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xBB, - 0xBA, - 0xB3, - 0xBF, - 0xB3, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0xB0, - 0xBA, - 0xBB, - 0x08, - 0xB3, - 0x01, - 0xA1, - 0x01, - 0xA1, - 0x04, - 0xB3, - 0x00, - 0x36, - 0xA1, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xB0, - 0xB0, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0x04, - 0x99, - 0x01, - 0x94, - 0x04, - 0x99, - 0x00, - 0x26, - 0x94, - 0x94, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x82, - 0xA1, - 0x8E, - 0x98, - 0x98, - 0x9F, - 0x04, - 0x98, - 0x00, - 0x14, - 0x9C, - 0x9F, - 0x98, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0x00, - 0x00, - 0x01, - 0xCC, - 0x05, - 0xC5, - 0x01, - 0xC1, - 0x01, - 0xCD, - 0x05, - 0xC5, - 0x00, - 0x05, - 0xC1, - 0xC5, - 0xC1, - 0xC5, - 0xCD, - 0x00, - 0x0C, - 0xC1, - 0x00, - 0x0A, - 0xC7, - 0xC7, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0x06, - 0xBA, - 0x01, - 0xB2, - 0x04, - 0xBA, - 0x00, - 0x07, - 0xBF, - 0xB2, - 0xBA, - 0xCB, - 0xBA, - 0xBA, - 0xD7, - 0x00, - 0x16, - 0xBA, - 0x00, - 0x07, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xC1, - 0xC1, - 0xB2, - 0x00, - 0x09, - 0xC1, - 0x00, - 0x11, - 0xCD, - 0xC7, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC7, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC1, - 0x00, - 0x0A, - 0xCD, - 0x00, - 0x06, - 0xC1, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xD6, - 0x07, - 0xCD, - 0x01, - 0xC1, - 0x08, - 0xCD, - 0x00, - 0x23, - 0xC7, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xBA, - 0xC7, - 0xC7, - 0xC7, - 0xD5, - 0xBF, - 0xC7, - 0xBF, - 0xBA, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBF, - 0xB3, - 0xBF, - 0xBA, - 0xB3, - 0xBB, - 0xB3, - 0xB3, - 0xBF, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x2A, - 0xB0, - 0xB3, - 0xB3, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xA1, - 0xB3, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xB0, - 0xA1, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA6, - 0xA1, - 0x99, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA2, - 0x04, - 0x99, - 0x01, - 0xA2, - 0x05, - 0x99, - 0x00, - 0x06, - 0xA2, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x0B, - 0x99, - 0x00, - 0x05, - 0x94, - 0x99, - 0x94, - 0x99, - 0x99, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x32, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x8E, - 0x98, - 0x9F, - 0x9F, - 0x98, - 0x98, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x9F, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xAA, - 0x06, - 0xC5, - 0x00, - 0x0D, - 0xC1, - 0xC1, - 0xC5, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xCD, - 0xC5, - 0xC1, - 0xCD, - 0xC5, - 0xCD, - 0x00, - 0x05, - 0xC1, - 0x01, - 0xC7, - 0x05, - 0xC1, - 0x00, - 0x22, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xC7, - 0xB2, - 0xB2, - 0xD7, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBF, - 0xBF, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xB2, - 0xD7, - 0xBA, - 0xD7, - 0xBA, - 0xD7, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xD7, - 0x07, - 0xBA, - 0x01, - 0xC7, - 0x09, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xB2, - 0x04, - 0xC1, - 0x00, - 0x11, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xCD, - 0xCD, - 0xC7, - 0xCD, - 0xC1, - 0xC1, - 0xC7, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0x00, - 0x04, - 0xCD, - 0x01, - 0xC1, - 0x01, - 0xD6, - 0x07, - 0xCD, - 0x00, - 0x0B, - 0xD6, - 0xCD, - 0xD6, - 0xCD, - 0xCD, - 0xC1, - 0xD5, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0x00, - 0x08, - 0xCD, - 0x01, - 0xC1, - 0x01, - 0xC1, - 0x04, - 0xCD, - 0x00, - 0x1D, - 0xC1, - 0xCD, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xBF, - 0xBF, - 0xBF, - 0xBA, - 0xBB, - 0xBF, - 0xBF, - 0xBA, - 0x00, - 0x0B, - 0xB3, - 0x01, - 0xBA, - 0x06, - 0xB3, - 0x00, - 0x10, - 0xA1, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0xB3, - 0x99, - 0xA1, - 0xB0, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0x06, - 0xA6, - 0x00, - 0x1E, - 0xA1, - 0x99, - 0xA6, - 0xA6, - 0x99, - 0xA2, - 0x99, - 0xA6, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0xA2, - 0x99, - 0xA2, - 0x0A, - 0x99, - 0x0A, - 0x94, - 0x00, - 0x35, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x9F, - 0x98, - 0x98, - 0x9F, - 0x9F, - 0x98, - 0x9C, - 0x98, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0xC5, - 0xCC, - 0xAA, - 0xD3, - 0xC5, - 0xC5, - 0xAA, - 0xD3, - 0xCC, - 0xAA, - 0xC1, - 0xC5, - 0xC1, - 0xCC, - 0xC1, - 0xC5, - 0xCD, - 0xC5, - 0xC1, - 0xC1, - 0xC1, - 0xCF, - 0xC5, - 0xC1, - 0xC5, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xC1, - 0xC7, - 0xCD, - 0xBA, - 0xBA, - 0xCD, - 0xC1, - 0xC1, - 0xBA, - 0xD7, - 0xC7, - 0xBA, - 0xC7, - 0xB2, - 0xBA, - 0xD7, - 0xB2, - 0xD7, - 0xD7, - 0xB2, - 0xD7, - 0xB2, - 0xBA, - 0xBF, - 0xBA, - 0xCB, - 0xC7, - 0xB2, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0x0A, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xB2, - 0x0B, - 0xC1, - 0x00, - 0x10, - 0xC7, - 0xBA, - 0xC1, - 0xCD, - 0xBA, - 0xC7, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xC1, - 0xC1, - 0x07, - 0xCD, - 0x00, - 0x05, - 0xD6, - 0xCD, - 0xCD, - 0xCD, - 0xC1, - 0x00, - 0x08, - 0xCD, - 0x01, - 0xD5, - 0x09, - 0xCD, - 0x00, - 0x24, - 0xD6, - 0xC1, - 0xCD, - 0xC1, - 0xCF, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC1, - 0xBA, - 0xD1, - 0xBA, - 0xC1, - 0xC7, - 0xBA, - 0xC7, - 0xC7, - 0xC7, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xB3, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0xB3, - 0xBF, - 0xBF, - 0x05, - 0xB3, - 0x00, - 0x0D, - 0xB2, - 0xB0, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB3, - 0xA1, - 0xA1, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xA1, - 0x00, - 0x09, - 0xB3, - 0xA1, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0xA1, - 0x00, - 0x09, - 0x99, - 0x94, - 0xA6, - 0xA6, - 0xA1, - 0x99, - 0xA6, - 0x99, - 0xA1, - 0x00, - 0x0A, - 0x99, - 0x00, - 0x06, - 0xA2, - 0x99, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x05, - 0x99, - 0x01, - 0xA2, - 0x07, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x99, - 0x05, - 0x94, - 0x00, - 0x18, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x08, - 0x98, - 0x00, - 0x0B, - 0x9F, - 0x98, - 0x98, - 0xA7, - 0x9F, - 0x98, - 0x9F, - 0x9F, - 0x9F, - 0x9C, - 0x98, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x09, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x06, - 0xC5, - 0x00, - 0x29, - 0xC1, - 0xC5, - 0xCC, - 0xC1, - 0xC1, - 0xC5, - 0xC5, - 0xCD, - 0xC5, - 0xC1, - 0xC5, - 0xCD, - 0xC5, - 0xCD, - 0xCD, - 0xC5, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC5, - 0xCD, - 0xCD, - 0xC1, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xBA, - 0xC1, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xD7, - 0xBA, - 0xD7, - 0x00, - 0x04, - 0xBA, - 0x01, - 0xD7, - 0x06, - 0xBA, - 0x00, - 0x0B, - 0xC7, - 0xBA, - 0xB2, - 0xBA, - 0xC7, - 0xBA, - 0xD7, - 0xBA, - 0xC7, - 0xD7, - 0xB2, - 0x00, - 0x08, - 0xBA, - 0x01, - 0xC7, - 0x04, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0x0D, - 0xC1, - 0x00, - 0x14, - 0xC7, - 0xCD, - 0xBA, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC7, - 0xC1, - 0xD5, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xD5, - 0xCD, - 0xCD, - 0xC1, - 0x0A, - 0xCD, - 0x01, - 0xC1, - 0x0A, - 0xCD, - 0x01, - 0xD6, - 0x04, - 0xCD, - 0x00, - 0x24, - 0xC5, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xC7, - 0xC1, - 0xD5, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xB8, - 0xD7, - 0xBA, - 0xC1, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xBF, - 0xBF, - 0xB3, - 0xBA, - 0xCB, - 0xBF, - 0xBA, - 0xB3, - 0xB3, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0x04, - 0xB3, - 0x00, - 0x0F, - 0xA1, - 0xB3, - 0xB3, - 0xB0, - 0xAE, - 0xAE, - 0xA1, - 0xB3, - 0xA1, - 0xAE, - 0xA1, - 0xB3, - 0xB3, - 0xA1, - 0xB0, - 0x00, - 0x05, - 0xA1, - 0x01, - 0xA6, - 0x01, - 0xA6, - 0x04, - 0xA1, - 0x00, - 0x0E, - 0x99, - 0xA1, - 0xA6, - 0xA6, - 0x94, - 0xA6, - 0xA1, - 0x99, - 0xA6, - 0x99, - 0x99, - 0xA1, - 0x99, - 0xA6, - 0x04, - 0x99, - 0x01, - 0xA2, - 0x05, - 0x99, - 0x00, - 0x08, - 0xA2, - 0x99, - 0x99, - 0xA2, - 0x99, - 0x99, - 0x99, - 0xA2, - 0x07, - 0x99, - 0x00, - 0x03, - 0x94, - 0x94, - 0x99, - 0x00, - 0x0B, - 0x94, - 0x00, - 0x10, - 0x8E, - 0x94, - 0x94, - 0x98, - 0x94, - 0x94, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x98, - 0x08, - 0x8E, - 0x00, - 0x1E, - 0x98, - 0x98, - 0x82, - 0x8E, - 0x9F, - 0x9F, - 0x9F, - 0x98, - 0x98, - 0x98, - 0x9F, - 0x98, - 0x95, - 0x98, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9F, - 0x9F, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x98, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC5, - 0xC3, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0x00, - 0x04, - 0xC5, - 0x00, - 0x04, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0x04, - 0xCD, - 0x00, - 0x03, - 0xC1, - 0xC7, - 0xCD, - 0x00, - 0x07, - 0xC1, - 0x00, - 0x2F, - 0xC7, - 0xCD, - 0xBA, - 0xC7, - 0xCD, - 0xBA, - 0xCD, - 0xBA, - 0xCD, - 0xBA, - 0xC1, - 0xBA, - 0xD7, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBF, - 0xBA, - 0xC7, - 0xBF, - 0xC7, - 0xBA, - 0xBA, - 0xC7, - 0xD7, - 0xC1, - 0xD7, - 0xBA, - 0xC7, - 0xD7, - 0xD7, - 0xBA, - 0xBA, - 0xBA, - 0xB2, - 0xBA, - 0xBA, - 0xB2, - 0xD7, - 0xBA, - 0xC7, - 0xBA, - 0xB2, - 0xD7, - 0xB2, - 0xBF, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x1F, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xB2, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC1, - 0xC7, - 0xC1, - 0xC7, - 0xC7, - 0xC1, - 0xBA, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x04, - 0xCD, - 0x01, - 0xD5, - 0x0F, - 0xCD, - 0x01, - 0xD6, - 0x0A, - 0xCD, - 0x00, - 0x0E, - 0xC1, - 0xCD, - 0xD5, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xCF, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xCD, - 0x04, - 0xC7, - 0x00, - 0x13, - 0xC1, - 0xBA, - 0xBA, - 0xC7, - 0xBF, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xB3, - 0xBF, - 0xB3, - 0xBF, - 0x00, - 0x07, - 0xB3, - 0x00, - 0x0B, - 0xB0, - 0xBA, - 0xAE, - 0xB3, - 0xB2, - 0xB3, - 0xB0, - 0xB2, - 0xA1, - 0xB3, - 0xB3, - 0x00, - 0x06, - 0xA1, - 0x01, - 0xB3, - 0x07, - 0xA1, - 0x00, - 0x0C, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0xA1, - 0xA6, - 0xA1, - 0x99, - 0xA1, - 0x99, - 0xA6, - 0x0C, - 0x99, - 0x01, - 0xA2, - 0x0D, - 0x99, - 0x00, - 0x04, - 0x94, - 0x99, - 0x94, - 0x99, - 0x09, - 0x94, - 0x00, - 0x0D, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x94, - 0x00, - 0x06, - 0x8E, - 0x00, - 0x1C, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x9F, - 0x8E, - 0x8E, - 0xA1, - 0x98, - 0x98, - 0x98, - 0xA7, - 0x98, - 0x9C, - 0x9C, - 0x98, - 0x9C, - 0x9F, - 0x9F, - 0x98, - 0x9C, - 0x9F, - 0x9C, - 0x9F, - 0x05, - 0x9C, - 0x00, - 0x06, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xBC, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x06, - 0xC5, - 0xCC, - 0xCA, - 0xC5, - 0xC5, - 0xCC, - 0x05, - 0xC5, - 0x00, - 0x25, - 0xC1, - 0xCD, - 0xC5, - 0xC1, - 0xCF, - 0xCD, - 0xC5, - 0xCD, - 0xCD, - 0xCC, - 0xC7, - 0xC1, - 0xCF, - 0xC5, - 0xCD, - 0xCD, - 0xC5, - 0xC1, - 0xCD, - 0xC7, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xBA, - 0xC1, - 0xC7, - 0xC1, - 0xD7, - 0xC1, - 0xBA, - 0xB2, - 0xC1, - 0xC7, - 0xC7, - 0xBA, - 0xC7, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x0D, - 0xC7, - 0xC7, - 0xC1, - 0xBA, - 0xC7, - 0xBA, - 0xBA, - 0xBA, - 0xC7, - 0xD7, - 0xBA, - 0xC7, - 0xC7, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x07, - 0xB2, - 0xD7, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xC7, - 0x00, - 0x06, - 0xBA, - 0x00, - 0x0C, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xBA, - 0xC7, - 0x06, - 0xC1, - 0x00, - 0x0E, - 0xC7, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xD5, - 0xC1, - 0xC1, - 0x06, - 0xCD, - 0x00, - 0x07, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xD6, - 0x00, - 0x08, - 0xCD, - 0x01, - 0xD6, - 0x09, - 0xCD, - 0x00, - 0x0D, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC1, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x08, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xBF, - 0xBA, - 0xBA, - 0xBA, - 0x05, - 0xBF, - 0x00, - 0x1D, - 0xB3, - 0xBF, - 0xB3, - 0xBA, - 0xB3, - 0xB3, - 0xB3, - 0xBF, - 0xB2, - 0xB3, - 0xB3, - 0xB3, - 0xB0, - 0xBA, - 0xA1, - 0xB2, - 0xB3, - 0xB2, - 0xB2, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xA1, - 0xAE, - 0xA1, - 0xA1, - 0xA1, - 0xAE, - 0x00, - 0x08, - 0xA1, - 0x00, - 0x0B, - 0xA6, - 0xA1, - 0x99, - 0x94, - 0xA6, - 0x99, - 0xA6, - 0x94, - 0xA6, - 0x94, - 0xA6, - 0x00, - 0x09, - 0x99, - 0x01, - 0xA2, - 0x0F, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x94, - 0x94, - 0x99, - 0x06, - 0x94, - 0x00, - 0x3B, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x94, - 0x98, - 0x8E, - 0x98, - 0x94, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x98, - 0x9F, - 0x98, - 0x9F, - 0x98, - 0x98, - 0x82, - 0x8E, - 0x82, - 0x98, - 0x98, - 0x98, - 0x9C, - 0x9F, - 0xA7, - 0x9F, - 0x9F, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4F, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0xC1, - 0xCC, - 0xCC, - 0xC5, - 0xCC, - 0xCC, - 0xCD, - 0xCC, - 0xCC, - 0xCD, - 0xC5, - 0xC5, - 0xCD, - 0xCC, - 0xCD, - 0xCD, - 0xC5, - 0xCD, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC7, - 0xC7, - 0xC1, - 0xCD, - 0xC1, - 0xC1, - 0xC7, - 0xC7, - 0xC7, - 0xD7, - 0xD7, - 0xBA, - 0xBA, - 0xD1, - 0xBA, - 0xD7, - 0xC7, - 0xBA, - 0xD7, - 0xD7, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xBA, - 0xD7, - 0xBA, - 0xBA, - 0xC7, - 0xC7, - 0xBA, - 0xD7, - 0xBA, - 0xC7, - 0xBA, - 0xCB, - 0xBF, - 0xBA, - 0xD5, - 0xBA, - 0xBA, - 0xC7, - 0xBA, - 0xD7, - 0xB2, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x05, - 0xC1, - 0xC1, - 0xBA, - 0xC1, - 0xBA, - 0x00, - 0x06, - 0xC1, - 0x00, - 0x13, - 0xBA, - 0xC1, - 0xC7, - 0xC1, - 0xD7, - 0xCD, - 0xBA, - 0xC7, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0xC7, - 0xD5, - 0xC7, - 0xCD, - 0xC7, - 0xC1, - 0xD5, - 0x00, - 0x07, - 0xCD, - 0x00, - 0x0B, - 0xDC, - 0xC1, - 0xD6, - 0xD6, - 0xC1, - 0xD6, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xD5, - 0x00, - 0x0B, - 0xCD, - 0x00, - 0x27, - 0xC1, - 0xCD, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xCD, - 0xC1, - 0xC7, - 0xCD, - 0xC1, - 0xC7, - 0xC7, - 0xC7, - 0xC1, - 0xC1, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xC7, - 0xBA, - 0xC7, - 0xBF, - 0xBF, - 0xBA, - 0xBF, - 0xBA, - 0xB3, - 0xBA, - 0xBA, - 0xB3, - 0xBA, - 0xBF, - 0xB3, - 0xBA, - 0xBA, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x0E, - 0xBA, - 0xA1, - 0xB3, - 0xB3, - 0xBA, - 0xA1, - 0xB0, - 0xB2, - 0xA1, - 0xA1, - 0xB2, - 0xA1, - 0xA1, - 0xB3, - 0x0E, - 0xA1, - 0x00, - 0x0E, - 0xA6, - 0xA1, - 0xA1, - 0x99, - 0xA1, - 0xA6, - 0x94, - 0xA6, - 0x99, - 0x94, - 0xA6, - 0x99, - 0x99, - 0xA1, - 0x13, - 0x99, - 0x00, - 0x06, - 0x94, - 0x99, - 0x94, - 0x99, - 0x94, - 0x99, - 0x05, - 0x94, - 0x00, - 0x1C, - 0x8E, - 0x94, - 0x94, - 0x8E, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x94, - 0x8E, - 0x94, - 0x98, - 0x8E, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x8E, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x05, - 0x98, - 0x00, - 0x1C, - 0x8E, - 0x98, - 0x9F, - 0xA1, - 0x9F, - 0x98, - 0x9C, - 0x8E, - 0x9C, - 0x98, - 0x9F, - 0x82, - 0x98, - 0x95, - 0x98, - 0x9F, - 0x9C, - 0xA7, - 0x9C, - 0x9F, - 0x9C, - 0x9C, - 0x9C, - 0x9F, - 0x8F, - 0xA7, - 0x9C, - 0xC5, - 0x00, - 0x01, - 0xF6, - 0x02, - 0x00, - 0x00, - 0x10, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x80, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x03, - 0x3A, - 0x88, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA2, - 0x22, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0xA6, - 0x79, - 0x52, - 0x4B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x38, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA9, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x66, - 0x25, - 0x16, - 0x14, - 0x36, - 0x22, - 0x55, - 0xB1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x91, - 0x35, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x3A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x69, - 0x62, - 0x00, - 0x00, - 0x00, - 0x40, - 0x13, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x34, - 0x1D, - 0x07, - 0x19, - 0x24, - 0x5C, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x55, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x22, - 0x13, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0xAC, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x17, - 0x4B, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x69, - 0x31, - 0x00, - 0x87, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x53, - 0x03, - 0x1D, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x45, - 0x00, - 0x00, - 0x0E, - 0x25, - 0x3A, - 0x66, - 0x15, - 0x17, - 0x00, - 0x05, - 0x4B, - 0x9C, - 0x5E, - 0x38, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x72, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xE0, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x8F, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x15, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x35, - 0x69, - 0x69, - 0xCD, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x31, - 0x22, - 0x77, - 0x55, - 0x88, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x81, - 0x80, - 0x69, - 0xA3, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x88, - 0x69, - 0x3A, - 0xA3, - 0x91, - 0x00, - 0x0E, - 0x3A, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x23, - 0x7A, - 0x5E, - 0x34, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x7A, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x67, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0x8F, - 0x1E, - 0x1E, - 0x67, - 0x15, - 0x08, - 0x00, - 0x00, - 0x22, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE0, - 0x4B, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x3A, - 0x9B, - 0x57, - 0x05, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0x67, - 0x1E, - 0x55, - 0x67, - 0x45, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x33, - 0xA4, - 0x4A, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x79, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x23, - 0x9B, - 0x69, - 0x1E, - 0x67, - 0x45, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x21, - 0xA3, - 0x69, - 0x13, - 0x54, - 0x04, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x52, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x33, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x22, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x45, - 0x67, - 0x1E, - 0x69, - 0x35, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x45, - 0x67, - 0x1E, - 0x69, - 0x9B, - 0x4A, - 0x2C, - 0x41, - 0x69, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x66, - 0x4B, - 0x00, - 0x2D, - 0x65, - 0x13, - 0x1E, - 0x9B, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x9B, - 0x55, - 0x13, - 0x5C, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9C, - 0x13, - 0x05, - 0x00, - 0x00, - 0x00, - 0x72, - 0x24, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x05, - 0x66, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x27, - 0x00, - 0x00, - 0x25, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x82, - 0x03, - 0x38, - 0x23, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x68, - 0x82, - 0x1E, - 0x38, - 0x15, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x68, - 0x38, - 0x5E, - 0x82, - 0x22, - 0x08, - 0x00, - 0x00, - 0x00, - 0x37, - 0x54, - 0xAF, - 0x03, - 0x7A, - 0x57, - 0x91, - 0x03, - 0x00, - 0x00, - 0x08, - 0x52, - 0x82, - 0x1E, - 0x9C, - 0x57, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x52, - 0x82, - 0x1E, - 0x34, - 0x4A, - 0x79, - 0x66, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x91, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x19, - 0x13, - 0xAE, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x08, - 0x52, - 0x7A, - 0x5E, - 0xC5, - 0x68, - 0x0E, - 0x00, - 0x2C, - 0x03, - 0x31, - 0x68, - 0x82, - 0x1E, - 0x34, - 0xBB, - 0x07, - 0x00, - 0x00, - 0x00, - 0x08, - 0x52, - 0x82, - 0x1E, - 0x34, - 0x57, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x67, - 0x55, - 0xCD, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x67, - 0x1E, - 0x1E, - 0x53, - 0x87, - 0x03, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x7A, - 0x05, - 0x00, - 0x00, - 0xA6, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x15, - 0x35, - 0x05, - 0x00, - 0x00, - 0x2D, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x54, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x40, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0x62, - 0x00, - 0x08, - 0x69, - 0x05, - 0x00, - 0x00, - 0x21, - 0x3A, - 0xBB, - 0x40, - 0x39, - 0x33, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x0E, - 0x00, - 0xA9, - 0xA3, - 0x2D, - 0x36, - 0x67, - 0x54, - 0x00, - 0x45, - 0x82, - 0x39, - 0x21, - 0x39, - 0x13, - 0x23, - 0x05, - 0x54, - 0x33, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x82, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x5E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x27, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x1E, - 0xD1, - 0x2E, - 0x19, - 0x23, - 0x1E, - 0x87, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x07, - 0x88, - 0x35, - 0x14, - 0x08, - 0x08, - 0x08, - 0x08, - 0x07, - 0x67, - 0x5C, - 0x36, - 0x2E, - 0x23, - 0x80, - 0x40, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x79, - 0x03, - 0x19, - 0x00, - 0x2D, - 0xA2, - 0x15, - 0x19, - 0x19, - 0x68, - 0x3A, - 0x40, - 0x00, - 0x00, - 0x79, - 0x1E, - 0x23, - 0x19, - 0x19, - 0x15, - 0x3A, - 0x91, - 0x00, - 0x68, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x34, - 0x6E, - 0x21, - 0x2B, - 0x13, - 0x58, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0xAE, - 0x67, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xA3, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0xA2, - 0x9B, - 0x51, - 0x19, - 0x14, - 0x27, - 0x57, - 0x67, - 0x2D, - 0x00, - 0x91, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x3A, - 0x0E, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x19, - 0xAE, - 0x82, - 0x45, - 0x00, - 0x00, - 0x7B, - 0x13, - 0x88, - 0xAC, - 0x2E, - 0x63, - 0xAC, - 0x89, - 0x38, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x21, - 0x36, - 0x58, - 0xCD, - 0x9C, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x08, - 0x08, - 0x08, - 0x0B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x38, - 0x88, - 0xAC, - 0x2E, - 0x2E, - 0x39, - 0x9B, - 0x34, - 0x2E, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x9B, - 0xA1, - 0x19, - 0x27, - 0x34, - 0x23, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x25, - 0x46, - 0x0B, - 0x2C, - 0x03, - 0x08, - 0x18, - 0x18, - 0x18, - 0x31, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x69, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x1E, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x7A, - 0x88, - 0x1A, - 0x63, - 0x19, - 0xAE, - 0x24, - 0x9B, - 0x37, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x82, - 0x88, - 0x1A, - 0x21, - 0x19, - 0xAE, - 0x33, - 0x03, - 0xE5, - 0x63, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x05, - 0xCD, - 0x65, - 0x00, - 0x21, - 0x13, - 0xA4, - 0x27, - 0x14, - 0x51, - 0x13, - 0xAE, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x69, - 0xD1, - 0x2E, - 0x19, - 0x15, - 0x3A, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x82, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7A, - 0x80, - 0x23, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0x3A, - 0x16, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x05, - 0x89, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x22, - 0x08, - 0x08, - 0x08, - 0x08, - 0x08, - 0x19, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x46, - 0x00, - 0x00, - 0x00, - 0x79, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x82, - 0x5C, - 0x16, - 0x14, - 0x62, - 0x46, - 0xCD, - 0x03, - 0x2C, - 0x03, - 0x9B, - 0xA3, - 0x16, - 0x14, - 0x87, - 0x35, - 0x67, - 0x2F, - 0x00, - 0x14, - 0x38, - 0x41, - 0x7B, - 0x14, - 0x16, - 0xA4, - 0x82, - 0x14, - 0x00, - 0x14, - 0x38, - 0x81, - 0x16, - 0x14, - 0x6E, - 0x46, - 0x88, - 0x03, - 0x00, - 0x14, - 0x38, - 0x52, - 0x36, - 0x14, - 0x79, - 0x9B, - 0x5C, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x21, - 0xC5, - 0x53, - 0xB1, - 0x14, - 0x6E, - 0x9B, - 0xA1, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x17, - 0x00, - 0x0E, - 0x34, - 0x72, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x63, - 0x82, - 0x65, - 0x16, - 0x14, - 0x16, - 0xA4, - 0x34, - 0x31, - 0x2C, - 0x03, - 0x35, - 0xA1, - 0x27, - 0x14, - 0x87, - 0x46, - 0x46, - 0x07, - 0x00, - 0x14, - 0xAF, - 0x53, - 0x27, - 0x14, - 0x6E, - 0x35, - 0x35, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x45, - 0x21, - 0x1D, - 0x88, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x23, - 0x13, - 0x26, - 0x63, - 0x2D, - 0x72, - 0x38, - 0x03, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x38, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x55, - 0x66, - 0x36, - 0x00, - 0x05, - 0x13, - 0x82, - 0x51, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x57, - 0x00, - 0x05, - 0x46, - 0x72, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x03, - 0x87, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x81, - 0x08, - 0x08, - 0x08, - 0x08, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x4B, - 0x00, - 0x00, - 0x77, - 0x19, - 0x00, - 0x00, - 0x23, - 0x89, - 0x00, - 0x00, - 0x00, - 0x26, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x23, - 0x63, - 0x03, - 0x37, - 0x00, - 0x00, - 0x79, - 0xA2, - 0x07, - 0x1E, - 0x16, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x1E, - 0x53, - 0x38, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x38, - 0x36, - 0x00, - 0x00, - 0x00, - 0x05, - 0x33, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0xA9, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x07, - 0x88, - 0x5C, - 0x04, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x04, - 0x00, - 0x00, - 0x00, - 0x68, - 0x5C, - 0x03, - 0x55, - 0x3A, - 0x3A, - 0x3A, - 0x1E, - 0x03, - 0x3A, - 0x00, - 0xA3, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x41, - 0x00, - 0x05, - 0x7A, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA3, - 0x00, - 0x21, - 0x1E, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x69, - 0x1A, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x35, - 0x3A, - 0x72, - 0x14, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x14, - 0x68, - 0x69, - 0xCD, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x55, - 0x9B, - 0x67, - 0xE0, - 0x15, - 0x4A, - 0x38, - 0x9B, - 0x4A, - 0x05, - 0x00, - 0x00, - 0xCD, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x22, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x51, - 0xAF, - 0x00, - 0x2E, - 0x13, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x54, - 0x34, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x7A, - 0x0E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x82, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xA1, - 0x8F, - 0x0B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x21, - 0x03, - 0x08, - 0x00, - 0x00, - 0xAE, - 0x34, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x58, - 0xA2, - 0x63, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x1D, - 0x35, - 0x4B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0xA3, - 0x03, - 0x00, - 0x08, - 0x66, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x25, - 0x9B, - 0x04, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x13, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE5, - 0x13, - 0xA4, - 0x46, - 0x04, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x15, - 0x7A, - 0x0E, - 0x00, - 0x15, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x58, - 0x9C, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x05, - 0x33, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x62, - 0x80, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x1E, - 0x45, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x26, - 0x67, - 0x25, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x55, - 0x40, - 0x00, - 0x00, - 0x4A, - 0x82, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x1E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x26, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x2C, - 0x03, - 0x5C, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x15, - 0x00, - 0x65, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x54, - 0x23, - 0x00, - 0xA3, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x00, - 0x81, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x88, - 0x39, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0xBB, - 0x05, - 0x5C, - 0xA4, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x41, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xCD, - 0x54, - 0x2C, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x15, - 0x00, - 0x5C, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x14, - 0x88, - 0x07, - 0x00, - 0x27, - 0x55, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x05, - 0x13, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x27, - 0xA2, - 0x36, - 0x1E, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x81, - 0x52, - 0x15, - 0x00, - 0x87, - 0x9C, - 0x4A, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x3A, - 0x19, - 0x4B, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x79, - 0x13, - 0x52, - 0x81, - 0x00, - 0x00, - 0x00, - 0x14, - 0x13, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x45, - 0xA1, - 0x19, - 0x19, - 0x35, - 0x58, - 0x19, - 0x31, - 0x6E, - 0x79, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x82, - 0x2D, - 0x03, - 0x14, - 0x00, - 0x00, - 0x79, - 0x13, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x13, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x15, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x13, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x07, - 0x35, - 0x81, - 0x04, - 0x00, - 0x00, - 0x1D, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x13, - 0x53, - 0x25, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0xA9, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x00, - 0x2E, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x00, - 0x00, - 0xA6, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x27, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x17, - 0x14, - 0x57, - 0x77, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x26, - 0x34, - 0x13, - 0x45, - 0x31, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x18, - 0xBB, - 0xA2, - 0xE0, - 0xAE, - 0x17, - 0x00, - 0x00, - 0x00, - 0x63, - 0x33, - 0x07, - 0x00, - 0x00, - 0x00, - 0x88, - 0x88, - 0x66, - 0x1A, - 0x05, - 0x52, - 0x03, - 0x15, - 0x31, - 0x41, - 0x22, - 0x00, - 0x00, - 0x2B, - 0xA2, - 0x19, - 0x21, - 0x21, - 0x21, - 0x21, - 0x62, - 0x03, - 0x2D, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x00, - 0x25, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7B, - 0x37, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x15, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x4B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x2C, - 0x03, - 0x27, - 0x00, - 0x36, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x0E, - 0x1E, - 0x36, - 0xAE, - 0x34, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x34, - 0x27, - 0x03, - 0x00, - 0x22, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x4A, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x82, - 0x16, - 0x19, - 0x27, - 0x23, - 0x38, - 0x35, - 0x2E, - 0x0B, - 0x34, - 0x4B, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x79, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x1A, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x55, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x63, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x66, - 0x00, - 0x00, - 0x00, - 0x26, - 0x67, - 0x00, - 0x52, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x5D, - 0x91, - 0x1E, - 0x0B, - 0x00, - 0x00, - 0x25, - 0x72, - 0x26, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x9B, - 0x05, - 0x14, - 0x80, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x45, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x2C, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x38, - 0x0E, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x0E, - 0x03, - 0x36, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x14, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x66, - 0xA3, - 0x34, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x0E, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0xAF, - 0x2C, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x38, - 0x0E, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x22, - 0x67, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x00, - 0x00, - 0x1D, - 0x68, - 0x00, - 0xA9, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0xAC, - 0x87, - 0xE0, - 0x00, - 0x52, - 0x15, - 0x31, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x9B, - 0x80, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x52, - 0x19, - 0x5E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x33, - 0x31, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2E, - 0x03, - 0x31, - 0x00, - 0x00, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0x69, - 0x03, - 0x3A, - 0x3A, - 0x1E, - 0x1E, - 0x3A, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x57, - 0x41, - 0xA4, - 0x36, - 0x62, - 0x34, - 0xBB, - 0x0E, - 0x5E, - 0x87, - 0x00, - 0x00, - 0x14, - 0x67, - 0x67, - 0x69, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x79, - 0x03, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x9B, - 0x65, - 0x17, - 0x00, - 0x14, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x1E, - 0x14, - 0x13, - 0x87, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x1E, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x3A, - 0x00, - 0x00, - 0x2C, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x07, - 0x80, - 0x16, - 0x00, - 0x00, - 0x00, - 0x58, - 0x82, - 0x00, - 0x00, - 0x4B, - 0xA2, - 0x1E, - 0x3A, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x82, - 0x69, - 0x4B, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x23, - 0x3A, - 0xAF, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x4A, - 0x00, - 0x00, - 0x31, - 0x03, - 0x4A, - 0x03, - 0x05, - 0x00, - 0x04, - 0x34, - 0xCD, - 0x00, - 0x07, - 0x34, - 0xAE, - 0x00, - 0x17, - 0x33, - 0x1E, - 0x13, - 0x13, - 0x13, - 0x13, - 0x03, - 0x88, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x82, - 0x0B, - 0x1E, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x8F, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x3A, - 0x7B, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x68, - 0x46, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0xC5, - 0x19, - 0x34, - 0x72, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x4B, - 0x9B, - 0x00, - 0x0B, - 0x66, - 0x62, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x21, - 0x3A, - 0x16, - 0x2C, - 0x03, - 0x05, - 0x3A, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x35, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x2E, - 0x14, - 0x05, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x53, - 0x34, - 0x13, - 0x38, - 0x53, - 0x39, - 0x05, - 0x00, - 0x00, - 0x4B, - 0x46, - 0x2C, - 0x03, - 0x05, - 0x14, - 0x13, - 0x46, - 0x6E, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x9B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x00, - 0x00, - 0x00, - 0x46, - 0x4A, - 0x00, - 0x91, - 0x3A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x57, - 0x05, - 0x66, - 0x7B, - 0x00, - 0x05, - 0x77, - 0x87, - 0x14, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x57, - 0x41, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0xA2, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x68, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x08, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x2D, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x55, - 0x35, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x6E, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x2D, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x2C, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x18, - 0x15, - 0x77, - 0x67, - 0x40, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x40, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x00, - 0x0E, - 0x1E, - 0x19, - 0x00, - 0x39, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x27, - 0x13, - 0x04, - 0x05, - 0x13, - 0x2D, - 0x82, - 0x27, - 0x00, - 0xA1, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x3A, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x5E, - 0x36, - 0x00, - 0xA3, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x25, - 0x00, - 0x00, - 0x4A, - 0x38, - 0x23, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x1D, - 0x67, - 0x40, - 0x07, - 0xAF, - 0x39, - 0x27, - 0x15, - 0x38, - 0x03, - 0x38, - 0x40, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x69, - 0x0B, - 0x00, - 0x26, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x62, - 0xD8, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x33, - 0x08, - 0x52, - 0x7A, - 0x34, - 0x23, - 0x05, - 0x00, - 0x54, - 0x33, - 0x16, - 0x36, - 0x82, - 0x41, - 0x2F, - 0x15, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x1E, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x36, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x9B, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0xA3, - 0x00, - 0x4A, - 0x9C, - 0x0B, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x07, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xA3, - 0x00, - 0x05, - 0x66, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x81, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x15, - 0x00, - 0x00, - 0x00, - 0x51, - 0x34, - 0xAC, - 0x2D, - 0x58, - 0x80, - 0x15, - 0x00, - 0x4B, - 0x13, - 0x1A, - 0x05, - 0x07, - 0x4B, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x9B, - 0x1A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x88, - 0x55, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1E, - 0x87, - 0x00, - 0x2D, - 0x03, - 0x2D, - 0x03, - 0x08, - 0x00, - 0x00, - 0x57, - 0x03, - 0x14, - 0x00, - 0xC0, - 0x9B, - 0x00, - 0x00, - 0x45, - 0x67, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0x39, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x36, - 0x58, - 0x13, - 0x68, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x05, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x19, - 0x19, - 0x08, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x66, - 0x2C, - 0x03, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x79, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0xA1, - 0x1E, - 0xCD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x34, - 0xAE, - 0x00, - 0x00, - 0x15, - 0xA1, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0xA4, - 0x52, - 0x00, - 0x2C, - 0x03, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x69, - 0x03, - 0x80, - 0x54, - 0x04, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x2C, - 0x03, - 0x05, - 0x62, - 0x23, - 0x68, - 0x34, - 0x24, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x39, - 0xA4, - 0x3A, - 0xB1, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x46, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0x40, - 0x00, - 0x25, - 0xBB, - 0x00, - 0x2C, - 0x1E, - 0x07, - 0x00, - 0x67, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x77, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x33, - 0x5D, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x34, - 0x17, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x1D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x2C, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x7A, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x31, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x1D, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x31, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x80, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0xBB, - 0x34, - 0x2F, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x04, - 0x00, - 0x00, - 0x00, - 0x27, - 0x5E, - 0x2C, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x38, - 0x2C, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x7A, - 0x31, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x2C, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x05, - 0xE0, - 0x88, - 0x16, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x4B, - 0x88, - 0x00, - 0x00, - 0x05, - 0x82, - 0x1A, - 0x00, - 0x00, - 0x52, - 0x52, - 0x00, - 0x00, - 0xA6, - 0x5C, - 0xAF, - 0x05, - 0x00, - 0x79, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x57, - 0x38, - 0x13, - 0x19, - 0x00, - 0x00, - 0x00, - 0x23, - 0x9B, - 0x00, - 0x00, - 0x79, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x82, - 0x39, - 0x00, - 0x4B, - 0x7A, - 0x57, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x22, - 0x24, - 0x40, - 0x00, - 0x36, - 0xE0, - 0x82, - 0x1D, - 0x7B, - 0x05, - 0x26, - 0x25, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x16, - 0x00, - 0x19, - 0x77, - 0x00, - 0x00, - 0x00, - 0x91, - 0x34, - 0x03, - 0xA3, - 0x16, - 0x00, - 0x00, - 0x00, - 0x04, - 0x14, - 0x05, - 0x00, - 0x81, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x72, - 0x03, - 0x55, - 0x67, - 0x0B, - 0x00, - 0x0E, - 0xA2, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x15, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x82, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x14, - 0x36, - 0x22, - 0x66, - 0x19, - 0x00, - 0x05, - 0x46, - 0x45, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x52, - 0x36, - 0x36, - 0x22, - 0x13, - 0x2D, - 0x00, - 0x00, - 0x23, - 0x03, - 0x45, - 0x40, - 0x91, - 0x54, - 0xA2, - 0x19, - 0x00, - 0x00, - 0x00, - 0x87, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x03, - 0x03, - 0x38, - 0x0E, - 0x17, - 0x13, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x88, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x08, - 0x15, - 0x13, - 0xE0, - 0xAE, - 0x05, - 0x00, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x05, - 0x51, - 0x24, - 0x13, - 0x15, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x1E, - 0x16, - 0x2E, - 0x03, - 0x0E, - 0x38, - 0xAE, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x4B, - 0x00, - 0x27, - 0x69, - 0x00, - 0x00, - 0x08, - 0x1E, - 0x16, - 0x00, - 0x00, - 0x4B, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x03, - 0x03, - 0x66, - 0x18, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x5E, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x14, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x1D, - 0x2D, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x3A, - 0x1E, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x67, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x62, - 0x66, - 0x0B, - 0x00, - 0x00, - 0x2E, - 0x1E, - 0x14, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0xAE, - 0xC5, - 0x2F, - 0x00, - 0x2C, - 0x03, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x69, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x04, - 0x7B, - 0x38, - 0x72, - 0x19, - 0x03, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x3A, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x17, - 0x41, - 0xA1, - 0x00, - 0x14, - 0x53, - 0x1E, - 0x9B, - 0x45, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x22, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x58, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x82, - 0x00, - 0x00, - 0x26, - 0x46, - 0x00, - 0x57, - 0xA4, - 0x00, - 0x00, - 0x72, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x55, - 0x67, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x46, - 0x2F, - 0x13, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x8F, - 0x4B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x26, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x36, - 0x1E, - 0x37, - 0x00, - 0x00, - 0xAE, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x46, - 0x03, - 0x2C, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x15, - 0x00, - 0x5C, - 0x53, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA6, - 0x15, - 0x00, - 0x41, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x07, - 0x24, - 0x03, - 0x00, - 0xA4, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xA2, - 0x87, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x03, - 0x2C, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x88, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x88, - 0xA1, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x2C, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x67, - 0x00, - 0xA4, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x46, - 0x72, - 0x2C, - 0x03, - 0x25, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x15, - 0x00, - 0xA4, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x03, - 0x2C, - 0x03, - 0x16, - 0x00, - 0x00, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x19, - 0x16, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x34, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x45, - 0xA3, - 0x00, - 0x0B, - 0x13, - 0x27, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x54, - 0x00, - 0x00, - 0x05, - 0x82, - 0x16, - 0x00, - 0x00, - 0x40, - 0x3A, - 0x36, - 0x45, - 0x9B, - 0x05, - 0x00, - 0x05, - 0x34, - 0x4A, - 0x00, - 0x00, - 0x05, - 0x38, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x77, - 0x37, - 0x00, - 0x87, - 0x69, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x19, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x55, - 0x03, - 0x5E, - 0x55, - 0x55, - 0x03, - 0x55, - 0x88, - 0x05, - 0x7A, - 0x53, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x13, - 0x5E, - 0x38, - 0x40, - 0x16, - 0x82, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x5E, - 0x22, - 0x34, - 0xE0, - 0x19, - 0x00, - 0xC0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x15, - 0x00, - 0x07, - 0x41, - 0x14, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x34, - 0x00, - 0x00, - 0x40, - 0x03, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x55, - 0x40, - 0x00, - 0x00, - 0x00, - 0x36, - 0x3A, - 0x2E, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x14, - 0x03, - 0xA6, - 0x7A, - 0x66, - 0xA1, - 0x19, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x67, - 0x55, - 0x67, - 0x82, - 0x53, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x4B, - 0x00, - 0x00, - 0x05, - 0x67, - 0x1D, - 0x07, - 0x31, - 0x89, - 0x25, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x1E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x57, - 0x82, - 0x38, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x82, - 0x57, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x35, - 0x05, - 0xA2, - 0x6E, - 0x4A, - 0x34, - 0x07, - 0x00, - 0x07, - 0x03, - 0x35, - 0x00, - 0x6E, - 0x13, - 0x00, - 0x00, - 0x00, - 0x25, - 0xA6, - 0x00, - 0x00, - 0xE0, - 0x23, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x05, - 0x2D, - 0x88, - 0x1D, - 0x0B, - 0x1E, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xE0, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x19, - 0xA2, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0xA1, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x45, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x37, - 0x13, - 0x1A, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x0B, - 0x3A, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x35, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x33, - 0x0B, - 0x1E, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x67, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x13, - 0x05, - 0x67, - 0xA1, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x0E, - 0x3A, - 0x16, - 0x00, - 0x00, - 0x00, - 0x07, - 0x3A, - 0x16, - 0x00, - 0x00, - 0x00, - 0x54, - 0x1D, - 0x00, - 0x00, - 0x14, - 0x5E, - 0x2F, - 0x41, - 0x57, - 0x00, - 0x00, - 0x87, - 0x77, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x65, - 0x38, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x66, - 0x6E, - 0x00, - 0x23, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x13, - 0x37, - 0x00, - 0x40, - 0x03, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x05, - 0x00, - 0x00, - 0x35, - 0x23, - 0x00, - 0x00, - 0x35, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x33, - 0x5C, - 0x16, - 0x14, - 0x6E, - 0x35, - 0x88, - 0x03, - 0x2C, - 0x03, - 0x35, - 0x65, - 0x16, - 0x14, - 0x87, - 0xCD, - 0x9B, - 0x07, - 0x00, - 0x14, - 0x38, - 0xA3, - 0x16, - 0x21, - 0x7B, - 0x41, - 0x7A, - 0x14, - 0x00, - 0x21, - 0x82, - 0x53, - 0xB1, - 0x14, - 0x79, - 0x9B, - 0x24, - 0x03, - 0x00, - 0x2E, - 0x33, - 0x25, - 0x27, - 0x21, - 0x39, - 0x7A, - 0x22, - 0x00, - 0x08, - 0x62, - 0x03, - 0x08, - 0x08, - 0x00, - 0x19, - 0x66, - 0xA6, - 0x27, - 0x14, - 0x6E, - 0x46, - 0xA4, - 0x03, - 0x2C, - 0x03, - 0x66, - 0x4A, - 0x2E, - 0x2E, - 0x57, - 0x55, - 0x6E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x14, - 0x77, - 0x4A, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x34, - 0x87, - 0x14, - 0x2B, - 0x13, - 0xA6, - 0x7A, - 0x6E, - 0x14, - 0x1A, - 0x77, - 0x4A, - 0x2C, - 0x03, - 0xC5, - 0x58, - 0x2E, - 0x19, - 0x45, - 0x1E, - 0x39, - 0x00, - 0x2E, - 0x33, - 0xA1, - 0x16, - 0x14, - 0x6E, - 0x35, - 0x67, - 0x2F, - 0x2C, - 0x03, - 0x35, - 0x65, - 0x16, - 0x14, - 0x6E, - 0x35, - 0x9B, - 0x07, - 0x00, - 0x2E, - 0x33, - 0xA1, - 0xB1, - 0x14, - 0x6E, - 0x35, - 0x35, - 0x03, - 0x2C, - 0x03, - 0x67, - 0x16, - 0x05, - 0x07, - 0x3A, - 0x4A, - 0x19, - 0x88, - 0x54, - 0x08, - 0x62, - 0x03, - 0x08, - 0x08, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x62, - 0x66, - 0x04, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1E, - 0x63, - 0x39, - 0x34, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x16, - 0x00, - 0x00, - 0x00, - 0x15, - 0x1D, - 0x00, - 0x04, - 0x67, - 0x45, - 0x00, - 0x17, - 0x9B, - 0x45, - 0x00, - 0x62, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x57, - 0x9B, - 0x00, - 0x08, - 0x08, - 0x08, - 0x08, - 0x25, - 0xA1, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x4A, - 0x22, - 0x00, - 0x00, - 0x46, - 0x6E, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x0B, - 0x2E, - 0x07, - 0x13, - 0x58, - 0x05, - 0x68, - 0x9B, - 0x00, - 0x35, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xD1, - 0x00, - 0x05, - 0x1D, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x79, - 0x13, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x3A, - 0x14, - 0x00, - 0x2E, - 0x1D, - 0x38, - 0x23, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x33, - 0x36, - 0x00, - 0x63, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x1E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x19, - 0x03, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1D, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x41, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x1E, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0xAF, - 0x05, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x87, - 0x3A, - 0x21, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x13, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x26, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x26, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x54, - 0x88, - 0x05, - 0xA3, - 0xA4, - 0x36, - 0x57, - 0x13, - 0x69, - 0x14, - 0xA6, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x37, - 0x16, - 0x55, - 0x37, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x3A, - 0x00, - 0x25, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x16, - 0x31, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x67, - 0xE5, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x2E, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x79, - 0x69, - 0x36, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x1E, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0xC5, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x25, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x22, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x7A, - 0x4A, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x00, - 0x25, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x8F, - 0x23, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x69, - 0x19, - 0x03, - 0x18, - 0x00, - 0x00, - 0x0B, - 0x19, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x4A, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x34, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x67, - 0x39, - 0x69, - 0x40, - 0x00, - 0x00, - 0x0B, - 0x69, - 0x27, - 0x00, - 0x00, - 0x00, - 0x26, - 0x13, - 0x08, - 0x87, - 0x1E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x46, - 0x00, - 0x00, - 0x07, - 0x66, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x81, - 0x22, - 0x00, - 0x37, - 0x03, - 0x19, - 0x00, - 0x00, - 0x27, - 0x82, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x39, - 0xC5, - 0x05, - 0x36, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x1E, - 0xE0, - 0x4B, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x0E, - 0x15, - 0x38, - 0x1E, - 0x34, - 0xBB, - 0x07, - 0x00, - 0x00, - 0x00, - 0x18, - 0x54, - 0xAF, - 0x1E, - 0xAF, - 0x54, - 0x18, - 0x00, - 0x00, - 0x00, - 0x08, - 0x22, - 0x82, - 0x1E, - 0x34, - 0x57, - 0x36, - 0x03, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x55, - 0x67, - 0x58, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x14, - 0x22, - 0x33, - 0x55, - 0x67, - 0x58, - 0x91, - 0x03, - 0x2C, - 0x03, - 0x27, - 0x5D, - 0x69, - 0x3A, - 0x88, - 0x62, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x6E, - 0x55, - 0x36, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x79, - 0x8F, - 0x5E, - 0xE0, - 0x2B, - 0x00, - 0x4A, - 0x38, - 0x5E, - 0x34, - 0x4A, - 0x00, - 0x2C, - 0x03, - 0x2D, - 0x65, - 0x13, - 0x69, - 0xCD, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x08, - 0x22, - 0x82, - 0x1E, - 0x7A, - 0x15, - 0x2F, - 0x00, - 0x2C, - 0x03, - 0x0E, - 0x15, - 0x38, - 0x1E, - 0x34, - 0x15, - 0x07, - 0x00, - 0x00, - 0x00, - 0x14, - 0x22, - 0x82, - 0x1E, - 0x9C, - 0x23, - 0x36, - 0x03, - 0x2C, - 0x03, - 0x58, - 0x1E, - 0x45, - 0x00, - 0x79, - 0x34, - 0x55, - 0xA3, - 0x31, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0xA1, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x15, - 0x5C, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x3A, - 0x07, - 0x15, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x2D, - 0x69, - 0x27, - 0x25, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0xB1, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x16, - 0x46, - 0x00, - 0x00, - 0x22, - 0x4B, - 0x00, - 0x14, - 0x03, - 0x14, - 0x00, - 0x00, - 0x79, - 0x35, - 0x2D, - 0x03, - 0x07, - 0x00, - 0x27, - 0x1E, - 0x00, - 0x39, - 0x38, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0x07, - 0x00, - 0x00, - 0xB1, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x65, - 0x5C, - 0x05, - 0x00, - 0x00, - 0x2E, - 0xC5, - 0x4A, - 0x00, - 0x00, - 0x66, - 0x1E, - 0x03, - 0x69, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x15, - 0x00, - 0x05, - 0x77, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x46, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x0B, - 0x69, - 0x79, - 0x00, - 0x00, - 0x00, - 0x4A, - 0xE0, - 0x00, - 0x1D, - 0x27, - 0x00, - 0x00, - 0x27, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x82, - 0xE5, - 0x03, - 0x00, - 0x00, - 0x00, - 0x88, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x77, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x38, - 0x51, - 0x00, - 0x14, - 0x03, - 0x08, - 0x00, - 0x00, - 0x6E, - 0x13, - 0x00, - 0x7A, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x5E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x26, - 0x34, - 0x00, - 0x31, - 0x34, - 0x54, - 0x07, - 0x15, - 0xC5, - 0x34, - 0xAC, - 0x00, - 0x26, - 0x1E, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x23, - 0xD8, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6E, - 0xA2, - 0x00, - 0x19, - 0x13, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0xAF, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x22, - 0x7A, - 0x31, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x33, - 0x0E, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x45, - 0xAF, - 0x37, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0xBB, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x45, - 0x03, - 0x2C, - 0x03, - 0x1A, - 0x13, - 0x08, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x08, - 0x82, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x81, - 0x9B, - 0x17, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x33, - 0x00, - 0x2E, - 0x13, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1D, - 0x34, - 0x07, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0xCD, - 0x14, - 0x03, - 0x63, - 0x00, - 0x00, - 0x79, - 0x13, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x67, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x37, - 0x00, - 0x19, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x68, - 0x67, - 0x33, - 0x05, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x45, - 0x00, - 0x00, - 0x08, - 0xA2, - 0xAE, - 0x00, - 0x00, - 0x1D, - 0x88, - 0x05, - 0x00, - 0x00, - 0x0E, - 0xA2, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x8F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x91, - 0x00, - 0x9B, - 0xBB, - 0x00, - 0x00, - 0x1D, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x5D, - 0x65, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x39, - 0x1D, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x18, - 0x13, - 0x00, - 0x00, - 0x57, - 0x22, - 0x00, - 0x00, - 0x46, - 0xA4, - 0x27, - 0x7B, - 0x67, - 0xAC, - 0x04, - 0x33, - 0x15, - 0x2E, - 0xA1, - 0xA4, - 0x00, - 0x05, - 0x34, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x22, - 0x19, - 0x91, - 0xA9, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x9B, - 0x5C, - 0x31, - 0x62, - 0x82, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x46, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x34, - 0x00, - 0x00, - 0x4A, - 0x3A, - 0x4A, - 0x2E, - 0x19, - 0x45, - 0x55, - 0x87, - 0x05, - 0x08, - 0x62, - 0x03, - 0x05, - 0x00, - 0xBB, - 0xAF, - 0x6E, - 0x21, - 0x26, - 0x13, - 0x51, - 0x00, - 0x22, - 0x88, - 0x40, - 0x19, - 0x81, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x1E, - 0x03, - 0x00, - 0x00, - 0x00, - 0x52, - 0x52, - 0x08, - 0x08, - 0x08, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x9B, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x08, - 0x08, - 0x08, - 0x08, - 0x08, - 0x45, - 0x67, - 0x00, - 0x00, - 0x5D, - 0x65, - 0x19, - 0x27, - 0x67, - 0x68, - 0x00, - 0x1A, - 0x1E, - 0x4B, - 0x2E, - 0x40, - 0x22, - 0x13, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x34, - 0x6E, - 0x21, - 0x51, - 0xA2, - 0x26, - 0x00, - 0x00, - 0x2E, - 0xE0, - 0x46, - 0xAE, - 0x19, - 0x21, - 0x87, - 0x25, - 0x69, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x7A, - 0x55, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x2E, - 0x79, - 0x67, - 0x52, - 0x00, - 0x00, - 0x7B, - 0x13, - 0xA4, - 0x1A, - 0x2E, - 0x2E, - 0x1A, - 0xA4, - 0x38, - 0x2D, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x21, - 0x27, - 0x4B, - 0x67, - 0x34, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x08, - 0x08, - 0x08, - 0x0B, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x08, - 0x08, - 0x31, - 0x00, - 0x00, - 0x58, - 0x03, - 0xA9, - 0xAC, - 0x19, - 0x21, - 0x1A, - 0xA3, - 0x38, - 0x2C, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x05, - 0x81, - 0x88, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x33, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x03, - 0x2C, - 0x03, - 0x82, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x19, - 0x38, - 0x5D, - 0x1A, - 0x63, - 0x19, - 0x26, - 0x34, - 0x35, - 0x08, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x14, - 0x40, - 0x4A, - 0x13, - 0xBB, - 0x00, - 0x00, - 0x16, - 0x13, - 0xA4, - 0x1A, - 0x2E, - 0x19, - 0x51, - 0x9B, - 0x38, - 0x19, - 0x00, - 0x2C, - 0x03, - 0x14, - 0x08, - 0x21, - 0x16, - 0x72, - 0x1E, - 0x7B, - 0x00, - 0x88, - 0x41, - 0x2D, - 0x27, - 0x67, - 0x54, - 0x00, - 0x08, - 0x08, - 0x62, - 0x03, - 0x08, - 0x08, - 0x08, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x16, - 0x55, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x57, - 0x00, - 0x4A, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x46, - 0x00, - 0x00, - 0xA1, - 0x41, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x33, - 0x58, - 0x00, - 0x00, - 0xBB, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x82, - 0xAE, - 0x00, - 0x08, - 0x08, - 0x08, - 0x08, - 0x08, - 0x22, - 0x89, - 0x00, - 0x16, - 0x1E, - 0x23, - 0x31, - 0x80, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x5D, - 0x77, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x9B, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x54, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x6E, - 0x17, - 0x2C, - 0x03, - 0x05, - 0x05, - 0x4A, - 0x80, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x36, - 0x03, - 0x00, - 0x00, - 0x00, - 0x66, - 0x14, - 0x00, - 0x79, - 0x46, - 0x00, - 0x00, - 0x08, - 0x65, - 0x03, - 0x25, - 0x62, - 0x00, - 0x00, - 0x36, - 0x67, - 0x1E, - 0xA4, - 0x08, - 0x00, - 0x00, - 0x4A, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xA6, - 0x80, - 0x13, - 0xA6, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x45, - 0x7B, - 0xBB, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x22, - 0x07, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x77, - 0x91, - 0x00, - 0x00, - 0x51, - 0x46, - 0x1E, - 0x80, - 0x5D, - 0x16, - 0x00, - 0x36, - 0x03, - 0x03, - 0x03, - 0x05, - 0x00, - 0x05, - 0x57, - 0x7A, - 0x1E, - 0xE0, - 0x51, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x13, - 0x3A, - 0x65, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x79, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x31, - 0x25, - 0x3A, - 0x13, - 0x54, - 0x04, - 0x00, - 0x00, - 0x87, - 0xCD, - 0x1E, - 0xA2, - 0xA1, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x54, - 0x77, - 0x5E, - 0xE0, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x4A, - 0x88, - 0x13, - 0x1E, - 0x34, - 0x54, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x67, - 0x45, - 0x17, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0xE0, - 0x1E, - 0x3A, - 0x9B, - 0x23, - 0x0E, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x7A, - 0x41, - 0x4A, - 0x0B, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x79, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x36, - 0xA1, - 0x66, - 0x03, - 0x13, - 0x35, - 0x57, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x34, - 0x54, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x38, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x55, - 0x03, - 0x2C, - 0x03, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x23, - 0x24, - 0x1E, - 0x80, - 0x35, - 0x58, - 0x17, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA2, - 0x46, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x14, - 0x68, - 0x34, - 0x55, - 0x3A, - 0x9B, - 0x23, - 0x07, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x03, - 0x03, - 0x1E, - 0xAF, - 0xA1, - 0x36, - 0x00, - 0x00, - 0x37, - 0xA1, - 0x69, - 0x13, - 0x52, - 0x0B, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0xD8, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x05, - 0x5C, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x31, - 0x1A, - 0x3A, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x13, - 0x14, - 0x31, - 0x80, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x34, - 0x05, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0xB1, - 0x52, - 0x4B, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1D, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x13, - 0x23, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x88, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x55, - 0x62, - 0x2C, - 0x03, - 0x05, - 0x40, - 0x3A, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x49, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x06, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB8, - 0x5D, - 0x17, - 0x17, - 0x5D, - 0xF7, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDC, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x5D, - 0x54, - 0x5D, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD9, - 0xDF, - 0xB8, - 0x55, - 0xF7, - 0x5A, - 0xD2, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0xD9, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDC, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x5B, - 0x00, - 0x5B, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xDE, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD3, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD9, - 0x58, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDA, - 0x60, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDD, - 0x5A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0xDB, - 0xD8, - 0xD7, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xD0, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD8, - 0xD8, - 0xD7, - 0x12, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xD3, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x16, - 0xF2, - 0xD9, - 0xD9, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xD2, - 0xD9, - 0xD9, - 0xDE, - 0xFA, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xDC, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x03, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDB, - 0xD2, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xFA, - 0xD0, - 0xDC, - 0xDA, - 0xD9, - 0xD3, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD3, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xE1, - 0xD7, - 0xD9, - 0xDA, - 0xD5, - 0xDE, - 0x60, - 0xF6, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xDA, - 0xDD, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x5D, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xD0, - 0xDC, - 0xD8, - 0xD8, - 0xD3, - 0xE1, - 0x5A, - 0xF3, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x59, - 0xE1, - 0xF1, - 0xD8, - 0xD9, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0xF5, - 0xDF, - 0xD7, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xEF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDF, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD8, - 0xD9, - 0xD7, - 0xDF, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x09, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x58, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xF1, - 0xD8, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD7, - 0xD9, - 0xD8, - 0xD2, - 0x17, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xE1, - 0xB8, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xDD, - 0xDA, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0xD0, - 0xD5, - 0xDA, - 0xDD, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xD5, - 0xDA, - 0xD5, - 0xD0, - 0x56, - 0xC6, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xDE, - 0xDB, - 0x04, - 0xD5, - 0xD6, - 0xF5, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD9, - 0x55, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD8, - 0xD0, - 0xE1, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xDB, - 0xE1, - 0xD6, - 0xF1, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x53, - 0x59, - 0xD8, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0xD7, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDA, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x60, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDC, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xE1, - 0xD2, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD6, - 0xDE, - 0xD5, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD7, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDB, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDC, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD7, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x16, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD5, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xF2, - 0xD6, - 0xD6, - 0xD3, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0xD2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xEF, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x16, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xE1, - 0xF1, - 0x04, - 0xDC, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD8, - 0x59, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x60, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x16, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD8, - 0xD9, - 0xE1, - 0xD6, - 0xDB, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0x54, - 0xEF, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0xE1, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3E, - 0x54, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xF2, - 0xB8, - 0xF3, - 0xB8, - 0xD7, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xDF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xFC, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x12, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0xD8, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xD5, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD9, - 0x04, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0x04, - 0xDB, - 0xEF, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD5, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD0, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDB, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xDB, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xDA, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD3, - 0xDA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x53, - 0x60, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0x04, - 0x04, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0xD9, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD6, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7D, - 0x3B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDB, - 0xF5, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0xEF, - 0xDA, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD2, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x54, - 0xDF, - 0x04, - 0x16, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x56, - 0xD0, - 0xDA, - 0x04, - 0xD2, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD2, - 0x04, - 0xDA, - 0xE1, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDA, - 0xFA, - 0x00, - 0xF4, - 0xF7, - 0xF5, - 0x54, - 0x54, - 0xF3, - 0xF7, - 0x04, - 0x04, - 0x0A, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x60, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0xDA, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD9, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x5B, - 0x53, - 0xF5, - 0xD7, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDD, - 0xDE, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0x00, - 0xD2, - 0xD2, - 0xB8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x54, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xFF, - 0xAD, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x60, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xDB, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0xDB, - 0x04, - 0xD6, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0xE1, - 0xD4, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xD7, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xF2, - 0x04, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xFA, - 0x00, - 0x60, - 0xD9, - 0x04, - 0xDA, - 0xD6, - 0xB8, - 0xDD, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD6, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x09, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0xF5, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF4, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0D, - 0x04, - 0xFD, - 0xF7, - 0x57, - 0xDA, - 0xF1, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDD, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0xB3, - 0xDC, - 0xF2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xDF, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x54, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x54, - 0xE1, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x5E, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xD0, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0x04, - 0x5A, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF4, - 0x59, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x17, - 0x00, - 0xD2, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD9, - 0xB8, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x60, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD7, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x04, - 0xDE, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0xD5, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x59, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDC, - 0xF3, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD0, - 0x00, - 0xDB, - 0xD2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x60, - 0x0D, - 0x5E, - 0x04, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xF1, - 0x04, - 0xD9, - 0xD6, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xF1, - 0x60, - 0x17, - 0xF1, - 0x04, - 0x04, - 0x56, - 0x55, - 0xEF, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x17, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0xC6, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x56, - 0xF5, - 0x53, - 0xF5, - 0x56, - 0xDF, - 0xD5, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x53, - 0xDE, - 0xDA, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDE, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD5, - 0xF3, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0xD6, - 0x00, - 0xF4, - 0xD9, - 0xEF, - 0x00, - 0x5E, - 0x04, - 0xF7, - 0x00, - 0x60, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0xF7, - 0xC6, - 0x00, - 0x0A, - 0xE1, - 0x00, - 0x54, - 0x53, - 0x53, - 0x57, - 0xDE, - 0xD9, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0xD0, - 0xDA, - 0xB8, - 0x53, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0x0A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xF1, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x58, - 0x00, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x59, - 0x54, - 0x00, - 0xFA, - 0xD7, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xDF, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x55, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xB3, - 0x00, - 0x03, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x54, - 0xDD, - 0xF2, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xDA, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD2, - 0x04, - 0xD8, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x57, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0xDE, - 0xD7, - 0x00, - 0x00, - 0x55, - 0xD8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDA, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0xFA, - 0x00, - 0x5A, - 0x04, - 0xFA, - 0xF3, - 0x57, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x4D, - 0xF9, - 0x69, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD0, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x53, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x56, - 0xD4, - 0xDC, - 0xB8, - 0x54, - 0xB3, - 0xE1, - 0x04, - 0xD0, - 0xF3, - 0x17, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xD0, - 0xB8, - 0xF3, - 0xF5, - 0x59, - 0xD3, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x56, - 0xC6, - 0x00, - 0x00, - 0xDB, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x16, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD0, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xF7, - 0xF1, - 0xD9, - 0xF7, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x00, - 0xDC, - 0xF1, - 0x55, - 0x5A, - 0x17, - 0xEF, - 0xDF, - 0x5D, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD0, - 0xDE, - 0xD7, - 0xD8, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x54, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0xD3, - 0x60, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x57, - 0xD4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0x56, - 0xF4, - 0x5A, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x0A, - 0xDB, - 0x04, - 0xFC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0xD8, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x53, - 0x00, - 0xF4, - 0xDC, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0xDA, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xD8, - 0x17, - 0x55, - 0xB3, - 0xF7, - 0xE1, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x5B, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD7, - 0x04, - 0xDA, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0x53, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x56, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xF2, - 0xDA, - 0xDB, - 0x57, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xD8, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD2, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xDA, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x60, - 0xDE, - 0xDA, - 0x04, - 0xB6, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDC, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xF1, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD5, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD8, - 0x5A, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x53, - 0x16, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDF, - 0x5D, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x56, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDA, - 0xD9, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDF, - 0xDF, - 0x57, - 0x00, - 0x54, - 0xDE, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD6, - 0xD2, - 0x04, - 0xF1, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x53, - 0xD2, - 0xD8, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x59, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xD9, - 0xF7, - 0x00, - 0xD9, - 0xF6, - 0x00, - 0x58, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xE1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xD9, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xF1, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDF, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x04, - 0xD2, - 0xDF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD3, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xF2, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x12, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD8, - 0xF4, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD0, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF4, - 0x5B, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x16, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x0A, - 0x54, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEC, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x58, - 0xFA, - 0x04, - 0xDF, - 0x58, - 0x58, - 0x58, - 0x04, - 0xF2, - 0x58, - 0x58, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0xD2, - 0xFA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x57, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xDB, - 0xDA, - 0xDF, - 0x53, - 0x00, - 0x53, - 0xD2, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD3, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0x04, - 0xD2, - 0xD6, - 0xD6, - 0xF1, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD0, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD2, - 0x5C, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xD2, - 0x04, - 0xD4, - 0xE1, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xE1, - 0x00, - 0xD2, - 0x59, - 0x54, - 0x53, - 0xD7, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD3, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0x55, - 0x5A, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD9, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0xD7, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD0, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0xF3, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x54, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xF1, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD5, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xEF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0x04, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x53, - 0x00, - 0x5A, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF2, - 0xDD, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x54, - 0x53, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDA, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x54, - 0xF2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x74, - 0xEC, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x60, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0xF6, - 0xF6, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x58, - 0x00, - 0x57, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xD2, - 0xD8, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0xDE, - 0xDB, - 0xD9, - 0xF2, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDC, - 0xD9, - 0xD2, - 0x17, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xDB, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x04, - 0xDB, - 0x0D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xEE, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDF, - 0xDE, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x57, - 0x00, - 0x57, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDD, - 0xF3, - 0x54, - 0x53, - 0xD3, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xD7, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x0A, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x55, - 0xD9, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xB6, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD8, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0xD8, - 0xDE, - 0xD6, - 0xE1, - 0xD7, - 0x04, - 0xD5, - 0x56, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD9, - 0x59, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x17, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x12, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0x60, - 0xB8, - 0xDB, - 0xD9, - 0xD0, - 0xD6, - 0xF2, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD0, - 0xF4, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0x60, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xD6, - 0x56, - 0x00, - 0xF7, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xD5, - 0x55, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF5, - 0x00, - 0x57, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xF9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF3, - 0x00, - 0xB8, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x56, - 0x94, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x53, - 0xF6, - 0x55, - 0x55, - 0xDE, - 0xDE, - 0x55, - 0x55, - 0x55, - 0x17, - 0x04, - 0xB8, - 0x55, - 0x00, - 0xD0, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDD, - 0x55, - 0xDC, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x00, - 0xF4, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF1, - 0xD7, - 0xF4, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x16, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x55, - 0xD9, - 0x60, - 0x00, - 0x00, - 0x58, - 0xD9, - 0xD8, - 0xD0, - 0xD6, - 0xDD, - 0xDE, - 0xD7, - 0xE1, - 0x53, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5B, - 0x00, - 0x58, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x56, - 0xD6, - 0x58, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD3, - 0x53, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xF1, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDC, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD8, - 0x00, - 0xF7, - 0xDA, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xF1, - 0x53, - 0x00, - 0xD7, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xDC, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD0, - 0xD5, - 0xD8, - 0xDC, - 0xD6, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xF5, - 0xDF, - 0xD3, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x55, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xD0, - 0x56, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xB8, - 0xD7, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xFA, - 0x00, - 0xE1, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD7, - 0x00, - 0x00, - 0x60, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x0D, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x8C, - 0x3B, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xEF, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0x00, - 0xF3, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDD, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x5B, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xD9, - 0xD0, - 0x55, - 0x00, - 0xF3, - 0x04, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDD, - 0xD2, - 0x00, - 0xDE, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB8, - 0xD5, - 0xDB, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x16, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xD8, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xDA, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF1, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF2, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xF2, - 0x04, - 0x16, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC8, - 0xE3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x54, - 0x00, - 0xB8, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x16, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDD, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0xD4, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDB, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD7, - 0xD8, - 0x5A, - 0x54, - 0x00, - 0x54, - 0xF5, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD7, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD6, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDD, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x60, - 0xD9, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB3, - 0x58, - 0xD2, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xDB, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xD8, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xDC, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0xDD, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD8, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x0D, - 0x53, - 0x00, - 0x54, - 0xF5, - 0xDE, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0xF5, - 0xD4, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xFA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD2, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xC0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD3, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xF1, - 0xD3, - 0x56, - 0xF3, - 0x55, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0xB8, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0xF4, - 0xDB, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xDB, - 0xE1, - 0xE1, - 0xD9, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDC, - 0x56, - 0x00, - 0x57, - 0xDB, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x5E, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD4, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x55, - 0xF1, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDD, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDD, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xDE, - 0xDB, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x00, - 0x00, - 0xB3, - 0xEF, - 0x04, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD7, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xD2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xDB, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5A, - 0x54, - 0x59, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0xF1, - 0xF3, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDA, - 0x5A, - 0x00, - 0x00, - 0x16, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD4, - 0xD8, - 0xD0, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0xD7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x3B, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x17, - 0x00, - 0x17, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xDC, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD6, - 0xD5, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x12, - 0xDC, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xDD, - 0x04, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xF1, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xDE, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xD0, - 0xDD, - 0xD8, - 0xD9, - 0xD7, - 0xE1, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDB, - 0xD7, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x0A, - 0xD7, - 0xD9, - 0x04, - 0xD9, - 0xD7, - 0xD6, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x58, - 0xE1, - 0xD3, - 0xD8, - 0xD8, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xD0, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x60, - 0xDE, - 0xDD, - 0xDA, - 0xD8, - 0xDC, - 0xD0, - 0xFA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD9, - 0xD3, - 0xD0, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xD2, - 0x00, - 0xF7, - 0xD8, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDE, - 0x17, - 0x00, - 0x00, - 0xD7, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xF1, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF2, - 0xD8, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0xDC, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD2, - 0x53, - 0xD0, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x16, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x3B, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0xF6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0xAB, - 0x03, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x74, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x6F, - 0xBD, - 0xC4, - 0xBD, - 0x3B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x30, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x12, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x30, - 0x74, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xBD, - 0x6F, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x64, - 0x6F, - 0x05, - 0x00, - 0x6C, - 0x74, - 0x02, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x5A, - 0x02, - 0x71, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x12, - 0x29, - 0x60, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x5A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x44, - 0x29, - 0xDF, - 0x02, - 0xB4, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x30, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x5A, - 0x6A, - 0x00, - 0x00, - 0x3B, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x29, - 0x12, - 0x98, - 0x00, - 0xDA, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x0A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x0A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xE8, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x50, - 0x0C, - 0x29, - 0x29, - 0x0C, - 0x70, - 0x00, - 0x00, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x12, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x71, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x59, - 0x30, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x6C, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x71, - 0x29, - 0x02, - 0x30, - 0xB4, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x59, - 0x5A, - 0x44, - 0x02, - 0x30, - 0x5A, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0xE8, - 0x0A, - 0x02, - 0x64, - 0xC4, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0xE8, - 0x0A, - 0x02, - 0x64, - 0x74, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x71, - 0x29, - 0x29, - 0x12, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x05, - 0x64, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xB7, - 0xE8, - 0x30, - 0x02, - 0x29, - 0x64, - 0x5A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x30, - 0x71, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x5A, - 0x64, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x0D, - 0x5A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xC4, - 0x71, - 0x29, - 0x02, - 0x29, - 0x64, - 0x5A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x50, - 0x94, - 0x29, - 0x02, - 0x64, - 0xBD, - 0x05, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xC4, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x74, - 0x0D, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xBD, - 0x71, - 0x29, - 0x02, - 0x29, - 0x12, - 0xC4, - 0x98, - 0x05, - 0xBD, - 0x0D, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x30, - 0x59, - 0x00, - 0x00, - 0x3B, - 0x94, - 0x29, - 0x02, - 0x64, - 0xC4, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x71, - 0x29, - 0x02, - 0x64, - 0x74, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0xE8, - 0x00, - 0x05, - 0x12, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x94, - 0x0A, - 0x02, - 0x30, - 0x5A, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0xBD, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x0D, - 0x29, - 0x02, - 0x12, - 0xDA, - 0x00, - 0xE8, - 0x30, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x0D, - 0x20, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x12, - 0x29, - 0x02, - 0x64, - 0xC4, - 0xDC, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x05, - 0xBD, - 0x0D, - 0x02, - 0x29, - 0x12, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x30, - 0xB4, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x64, - 0x02, - 0x44, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x64, - 0x02, - 0x02, - 0x71, - 0x50, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x71, - 0x02, - 0x02, - 0x02, - 0x29, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x0D, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x30, - 0xC4, - 0xC4, - 0x44, - 0x02, - 0x60, - 0x05, - 0xE8, - 0x02, - 0x12, - 0xC4, - 0xC4, - 0x44, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x6C, - 0x44, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x64, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x64, - 0x02, - 0xE4, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x6C, - 0x30, - 0x02, - 0xE4, - 0xBD, - 0x5A, - 0x29, - 0x0A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x44, - 0x74, - 0xC4, - 0x94, - 0x02, - 0x0D, - 0x1B, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x30, - 0x5A, - 0xBD, - 0xB4, - 0x02, - 0x44, - 0x98, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x0D, - 0xC4, - 0xC4, - 0x12, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x12, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xDF, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x74, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xC4, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x12, - 0x02, - 0x29, - 0xB4, - 0xC4, - 0xBD, - 0x74, - 0x71, - 0x02, - 0x5A, - 0x05, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x5A, - 0x71, - 0x02, - 0x44, - 0x59, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x29, - 0xE8, - 0xC4, - 0xBD, - 0x5A, - 0x64, - 0x02, - 0x64, - 0x50, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x74, - 0xE8, - 0x29, - 0x02, - 0x71, - 0x98, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x6F, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x5A, - 0x02, - 0x02, - 0x71, - 0x74, - 0xBD, - 0xC4, - 0xE8, - 0x29, - 0x02, - 0x0C, - 0x59, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x70, - 0x02, - 0x0A, - 0x74, - 0xBD, - 0x71, - 0x02, - 0x5A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x0C, - 0x05, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x0A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x02, - 0x02, - 0x94, - 0xC4, - 0xBD, - 0x5A, - 0x64, - 0x02, - 0x44, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x29, - 0x02, - 0x12, - 0x74, - 0xBD, - 0x74, - 0x12, - 0x02, - 0x29, - 0x64, - 0x02, - 0x0C, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x60, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x29, - 0x5A, - 0xBD, - 0xB4, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x44, - 0x74, - 0xBD, - 0xB4, - 0x02, - 0x30, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x29, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x02, - 0xC4, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x44, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0x60, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x12, - 0x02, - 0x0D, - 0x74, - 0xBD, - 0x5A, - 0x30, - 0x29, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x94, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x6C, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x12, - 0xC4, - 0xBD, - 0xE4, - 0x29, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x71, - 0x02, - 0x0D, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x29, - 0x60, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x0D, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x0C, - 0x02, - 0x12, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x64, - 0x02, - 0x0C, - 0xC4, - 0xC4, - 0x0C, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x0A, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x6A, - 0x64, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0xE8, - 0x02, - 0x30, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x71, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x6A, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x12, - 0xC4, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x71, - 0xBD, - 0x71, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x0D, - 0x29, - 0x94, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x30, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x02, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x94, - 0x00, - 0x00, - 0x00, - 0x71, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x30, - 0x6F, - 0x05, - 0x6C, - 0x94, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x3B, - 0x00, - 0x12, - 0x44, - 0xDC, - 0x00, - 0x00, - 0x59, - 0x30, - 0x12, - 0xDF, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x20, - 0x94, - 0x02, - 0xB7, - 0x8D, - 0x30, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x44, - 0x0A, - 0x20, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x59, - 0x64, - 0x29, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x29, - 0x50, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x30, - 0x64, - 0x05, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x02, - 0x0C, - 0xB7, - 0x00, - 0x70, - 0x02, - 0x94, - 0x20, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x94, - 0x00, - 0x50, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x71, - 0x00, - 0x00, - 0x05, - 0x30, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x20, - 0x5A, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x5A, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x02, - 0x02, - 0x5A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x02, - 0x74, - 0x6C, - 0x1B, - 0x00, - 0x00, - 0x20, - 0x98, - 0x6C, - 0xE4, - 0x60, - 0x00, - 0x00, - 0x00, - 0x94, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xC4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x30, - 0x29, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x30, - 0x44, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x12, - 0x02, - 0xE8, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xC4, - 0x02, - 0x44, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x94, - 0x29, - 0x98, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x6C, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x30, - 0x44, - 0x59, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x64, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x05, - 0xE8, - 0x02, - 0xE4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x64, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x0D, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0xDC, - 0x29, - 0x44, - 0x98, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xE8, - 0x05, - 0x00, - 0x00, - 0x00, - 0x50, - 0x29, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x71, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x71, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x64, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x29, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x12, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x05, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE8, - 0x29, - 0x02, - 0x5A, - 0x05, - 0x0D, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x20, - 0x64, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x29, - 0x44, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x05, - 0x94, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x20, - 0x64, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x30, - 0x30, - 0x1B, - 0x02, - 0x02, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x12, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x05, - 0x00, - 0x05, - 0x64, - 0x64, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE4, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x5A, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x02, - 0x98, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x5A, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x29, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x00, - 0x00, - 0x00, - 0x74, - 0x44, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x94, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x0D, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x44, - 0x30, - 0x0A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x0D, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x94, - 0x0A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x50, - 0xB4, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x71, - 0x02, - 0x02, - 0x5A, - 0x8D, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x8D, - 0x5A, - 0x02, - 0x02, - 0x0C, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x02, - 0xBD, - 0x71, - 0x02, - 0x02, - 0xB4, - 0x6F, - 0x29, - 0x02, - 0x29, - 0xBD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x59, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x00, - 0xB4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x44, - 0x44, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x30, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x29, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xDF, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x0D, - 0x70, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x74, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x0D, - 0x29, - 0x8D, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x71, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x30, - 0x29, - 0x71, - 0x02, - 0xC4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x29, - 0x71, - 0x05, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x44, - 0x05, - 0x30, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xB7, - 0x30, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xDA, - 0x64, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xBD, - 0xDF, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x5A, - 0x5A, - 0x00, - 0xDF, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x12, - 0x02, - 0x5A, - 0xBD, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xDA, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xBD, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xC4, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xBD, - 0xDF, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x70, - 0xBD, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x64, - 0x59, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x71, - 0x71, - 0x8D, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x60, - 0x59, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6F, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xC4, - 0x02, - 0xDA, - 0xB7, - 0xB7, - 0x5A, - 0x02, - 0xB7, - 0xB7, - 0xB7, - 0xC4, - 0x02, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6C, - 0x64, - 0x64, - 0x05, - 0x00, - 0x00, - 0x05, - 0x64, - 0x64, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x30, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x1B, - 0x12, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xC4, - 0x71, - 0x02, - 0x3B, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x02, - 0xE4, - 0x6A, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xBD, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x59, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x00, - 0x00, - 0x00, - 0x59, - 0x60, - 0x3B, - 0x0C, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x0D, - 0x02, - 0x29, - 0xC4, - 0x59, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x98, - 0x74, - 0x29, - 0x02, - 0x0D, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x5A, - 0x5A, - 0x29, - 0x50, - 0x05, - 0xC4, - 0x02, - 0x0D, - 0x05, - 0x6F, - 0x29, - 0xB4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xDA, - 0x6A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x74, - 0x02, - 0x71, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDA, - 0x00, - 0x12, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x0A, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x8D, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x71, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x29, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x74, - 0x02, - 0x44, - 0x50, - 0x20, - 0x0D, - 0x02, - 0x8D, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x5A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xC4, - 0x00, - 0xC4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x1B, - 0x5A, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x98, - 0x5A, - 0x02, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x64, - 0x30, - 0x1B, - 0x00, - 0x1B, - 0x30, - 0x64, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x5A, - 0x12, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x6A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x64, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x02, - 0x00, - 0x00, - 0x00, - 0x71, - 0x12, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x71, - 0x71, - 0x00, - 0x59, - 0x02, - 0xDF, - 0x00, - 0x12, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x44, - 0x94, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x00, - 0x5A, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x64, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x3B, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x3B, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x1B, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x5A, - 0xB7, - 0x02, - 0x71, - 0xDA, - 0xDA, - 0x12, - 0x02, - 0xB7, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x29, - 0x02, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x0C, - 0x02, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x6C, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x20, - 0x6F, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x05, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x30, - 0x02, - 0x44, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xBD, - 0x30, - 0x02, - 0x30, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x59, - 0x30, - 0xB4, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x29, - 0x05, - 0x00, - 0x3B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x74, - 0x02, - 0x70, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0xE8, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x02, - 0x71, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x6F, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x29, - 0x20, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x83, - 0x00, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x44, - 0xC4, - 0xDA, - 0xB7, - 0xBD, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x1B, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x98, - 0x00, - 0x6A, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x71, - 0x00, - 0xDA, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x6F, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x00, - 0x5A, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x20, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x29, - 0x71, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x12, - 0x02, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xBD, - 0x30, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x83, - 0x02, - 0xDA, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6A, - 0x00, - 0xDF, - 0x02, - 0x1B, - 0xDA, - 0x02, - 0x98, - 0x00, - 0xDF, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xBD, - 0x00, - 0x8D, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xB4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xC4, - 0x6C, - 0x71, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x64, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x6A, - 0x30, - 0x5A, - 0x6A, - 0x6A, - 0x6C, - 0x02, - 0xC4, - 0x6A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x0A, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0xDC, - 0x6F, - 0x64, - 0x02, - 0x02, - 0x64, - 0x6F, - 0x00, - 0x5A, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x64, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDF, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xC4, - 0x30, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x00, - 0xE8, - 0x02, - 0x5A, - 0x70, - 0x6C, - 0xDA, - 0x64, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x12, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x12, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x29, - 0x71, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x59, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x44, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0xDF, - 0x29, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0x00, - 0x00, - 0x05, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0x6F, - 0x3B, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x12, - 0x30, - 0x71, - 0x29, - 0x02, - 0x02, - 0x02, - 0x64, - 0x5A, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x02, - 0x5A, - 0x00, - 0x6F, - 0x02, - 0x02, - 0x29, - 0xE8, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xBD, - 0x00, - 0x59, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x00, - 0x20, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x74, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x74, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x29, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x6C, - 0x29, - 0x0D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x02, - 0x71, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x71, - 0x00, - 0x00, - 0x98, - 0x02, - 0xDA, - 0x94, - 0x12, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x29, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0xE8, - 0x02, - 0xC4, - 0x60, - 0x02, - 0x74, - 0xDA, - 0x0D, - 0x02, - 0x02, - 0x71, - 0x44, - 0x02, - 0xB7, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x12, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x1B, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x74, - 0x1B, - 0xDA, - 0x02, - 0x0D, - 0x59, - 0x00, - 0xE8, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0xE4, - 0x02, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x64, - 0x29, - 0x59, - 0x00, - 0x05, - 0x12, - 0x30, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x60, - 0x5A, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x30, - 0x05, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0xC4, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x0D, - 0x02, - 0x29, - 0x5A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x74, - 0x29, - 0x02, - 0x0D, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x02, - 0xE4, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x5A, - 0x00, - 0x00, - 0x70, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x8D, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xDA, - 0xDF, - 0x5A, - 0x02, - 0x12, - 0x1B, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x6A, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x3B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x02, - 0x0C, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0xB7, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x0D, - 0x02, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x59, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x05, - 0x59, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x00, - 0x50, - 0x60, - 0xDA, - 0xC4, - 0x44, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDF, - 0x12, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x50, - 0x00, - 0x00, - 0x0D, - 0x71, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x44, - 0x02, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0x5A, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x0D, - 0x71, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x71, - 0x0D, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x0D, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x29, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x0D, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x71, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x20, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x12, - 0x71, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x12, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x64, - 0x20, - 0x00, - 0x00, - 0x50, - 0x0C, - 0x02, - 0x50, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x74, - 0x8D, - 0x00, - 0xDA, - 0x29, - 0x02, - 0x0D, - 0xBD, - 0x1B, - 0x00, - 0x20, - 0x71, - 0xE4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x64, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x64, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x59, - 0x6F, - 0x3B, - 0x05, - 0x00, - 0x5A, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x5A, - 0x02, - 0x29, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x00, - 0x83, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x12, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0xB7, - 0xC4, - 0x30, - 0x29, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x74, - 0x05, - 0x00, - 0x00, - 0x00, - 0x50, - 0x29, - 0x0D, - 0x00, - 0x50, - 0x02, - 0xE8, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x64, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xB4, - 0xDA, - 0xDA, - 0xE4, - 0x02, - 0xB4, - 0x05, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x3B, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x60, - 0x0C, - 0x02, - 0x02, - 0xB4, - 0x50, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x5A, - 0x02, - 0x02, - 0x71, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x02, - 0xE4, - 0x00, - 0xB4, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x05, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x0A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0xE8, - 0x05, - 0x00, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x12, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x6A, - 0x29, - 0x64, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x1B, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x8D, - 0x6F, - 0x5A, - 0x02, - 0x0D, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x70, - 0x71, - 0x02, - 0x02, - 0x0D, - 0xDF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x74, - 0x29, - 0x20, - 0x00, - 0x74, - 0x02, - 0x20, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x59, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xE8, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xBD, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE8, - 0xE4, - 0x00, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0xBD, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDF, - 0x02, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0x64, - 0xC4, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xBD, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xBD, - 0xBD, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x59, - 0x00, - 0x00, - 0x59, - 0xDC, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0xDA, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x50, - 0x00, - 0x00, - 0x74, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0xDA, - 0x6C, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x20, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x3B, - 0x74, - 0x02, - 0x3B, - 0x3B, - 0x3B, - 0x5A, - 0x29, - 0x3B, - 0x3B, - 0x00, - 0x59, - 0x64, - 0x02, - 0x30, - 0x74, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x02, - 0x02, - 0x44, - 0x3B, - 0x50, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x1B, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x02, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x60, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x02, - 0x12, - 0xDF, - 0xDA, - 0x74, - 0x29, - 0x30, - 0x6C, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x0D, - 0xDF, - 0xB7, - 0xC4, - 0x29, - 0x29, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x5A, - 0x02, - 0x02, - 0x0C, - 0x3B, - 0x00, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x3B, - 0x94, - 0x02, - 0x02, - 0x5A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x12, - 0x29, - 0x98, - 0x64, - 0x12, - 0x00, - 0x60, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xB7, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x8D, - 0xB7, - 0x71, - 0x02, - 0x6F, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x1B, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x59, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xE4, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x6A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x60, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xDF, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x1B, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xDF, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x44, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xBD, - 0x00, - 0x3B, - 0x02, - 0x30, - 0xC4, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x60, - 0x00, - 0x0D, - 0x71, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x30, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0x00, - 0x20, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x0A, - 0x64, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x64, - 0x29, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x29, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x12, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x71, - 0x02, - 0xB7, - 0x00, - 0x05, - 0x12, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x94, - 0x02, - 0x02, - 0x5A, - 0x20, - 0x64, - 0x44, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x44, - 0x30, - 0xDC, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x0A, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x29, - 0x02, - 0x02, - 0x02, - 0xE4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x98, - 0x44, - 0x30, - 0x20, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x05, - 0x0D, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x71, - 0x29, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x05, - 0x71, - 0x02, - 0x6A, - 0x02, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0xBD, - 0x1B, - 0x64, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x29, - 0x44, - 0x1B, - 0x02, - 0x02, - 0x29, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x20, - 0x05, - 0x0D, - 0x29, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6C, - 0x00, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x0D, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x29, - 0x5A, - 0x00, - 0x05, - 0x30, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0xE4, - 0x00, - 0x00, - 0x6C, - 0x29, - 0xE8, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x5A, - 0x02, - 0xBD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x5A, - 0x83, - 0x60, - 0x64, - 0x29, - 0x98, - 0x71, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x94, - 0x59, - 0xC4, - 0x02, - 0x0D, - 0x20, - 0x00, - 0x59, - 0xB7, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x12, - 0x00, - 0x00, - 0xC4, - 0x6C, - 0x98, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xDA, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x6C, - 0xB7, - 0x64, - 0x0A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x44, - 0x20, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x44, - 0x64, - 0x71, - 0x02, - 0x02, - 0x29, - 0xB4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x02, - 0x30, - 0x02, - 0x02, - 0x0C, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x70, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x5A, - 0x50, - 0x83, - 0x5A, - 0x02, - 0xDF, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xC4, - 0x29, - 0x02, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x02, - 0x29, - 0xC4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x5A, - 0x02, - 0x98, - 0x00, - 0x94, - 0x02, - 0x50, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xE4, - 0x00, - 0x70, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x60, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x12, - 0x00, - 0xE4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0xE8, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDF, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x8D, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x94, - 0x29, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x71, - 0x30, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0xC4, - 0x59, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x64, - 0x59, - 0x44, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x59, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x29, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x30, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x05, - 0x00, - 0x05, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x12, - 0x02, - 0x12, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x29, - 0x6F, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x94, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x6A, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x71, - 0xC4, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x59, - 0x71, - 0x02, - 0x12, - 0xC4, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x00, - 0x6A, - 0x64, - 0x02, - 0xE8, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x64, - 0x8D, - 0x00, - 0xBD, - 0xBD, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0x00, - 0x6C, - 0x44, - 0x02, - 0x94, - 0xC4, - 0xC4, - 0x71, - 0x02, - 0xE4, - 0x5A, - 0x02, - 0x02, - 0x12, - 0x29, - 0x64, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x29, - 0x60, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x0D, - 0x05, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x02, - 0x94, - 0xC4, - 0x74, - 0x44, - 0x02, - 0x60, - 0x5A, - 0x02, - 0x0C, - 0xC4, - 0xC4, - 0x64, - 0x02, - 0xBD, - 0x00, - 0x02, - 0x71, - 0x29, - 0x12, - 0xC4, - 0xC4, - 0x12, - 0x02, - 0x71, - 0x20, - 0x00, - 0x6A, - 0x64, - 0x02, - 0x0C, - 0xC4, - 0xC4, - 0x94, - 0x02, - 0x44, - 0x8D, - 0x00, - 0x02, - 0x5A, - 0x94, - 0x02, - 0x71, - 0xC4, - 0xC4, - 0x71, - 0x02, - 0x64, - 0x6C, - 0x00, - 0x00, - 0x59, - 0x12, - 0x02, - 0x12, - 0x74, - 0xBD, - 0x5A, - 0x29, - 0x02, - 0xDA, - 0x02, - 0x5A, - 0x02, - 0x64, - 0x02, - 0xE8, - 0xDA, - 0x8D, - 0x02, - 0x64, - 0xC4, - 0x71, - 0x02, - 0x3B, - 0xBD, - 0xBD, - 0x71, - 0x02, - 0xBD, - 0xBD, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x70, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x1B, - 0x6F, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x29, - 0x1B, - 0x05, - 0x12, - 0x30, - 0x59, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x59, - 0x00, - 0x3B, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x29, - 0x64, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x1B, - 0x1B, - 0x59, - 0x02, - 0xDA, - 0x1B, - 0x1B, - 0x83, - 0x02, - 0xB7, - 0x1B, - 0x00, - 0x0A, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0xB7, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x30, - 0x1B, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x71, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x5A, - 0xB4, - 0x5A, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x30, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x74, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x64, - 0x00, - 0x20, - 0x59, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xDF, - 0x59, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0A, - 0xB4, - 0x00, - 0x00, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x44, - 0x00, - 0x44, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x6C, - 0x02, - 0x5A, - 0x00, - 0x59, - 0x64, - 0x29, - 0xC4, - 0xDA, - 0x44, - 0x12, - 0x29, - 0x20, - 0x5A, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x94, - 0x00, - 0x05, - 0x0A, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x00, - 0x3B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x6F, - 0x59, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x83, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xBD, - 0xC4, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x3B, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x64, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0xE8, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x8D, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x71, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0xB7, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x02, - 0xE4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x20, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x12, - 0xDA, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x60, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x20, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x6C, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x6F, - 0x00, - 0xB7, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x8D, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x1B, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x1B, - 0xC4, - 0x64, - 0x29, - 0x29, - 0x71, - 0xDA, - 0x00, - 0x5A, - 0x02, - 0x02, - 0x5A, - 0x8D, - 0xB4, - 0x30, - 0x02, - 0x30, - 0x5A, - 0x8D, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x5A, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x3B, - 0x71, - 0x02, - 0x29, - 0x94, - 0x50, - 0x00, - 0x00, - 0xDF, - 0x64, - 0x02, - 0x29, - 0x71, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x6C, - 0xE4, - 0x0A, - 0x29, - 0x64, - 0xBD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xC4, - 0x1B, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x05, - 0xDF, - 0x12, - 0x29, - 0x29, - 0x0D, - 0xBD, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDA, - 0x71, - 0x29, - 0x02, - 0x30, - 0xB4, - 0x50, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0xDF, - 0x29, - 0x02, - 0x00, - 0x60, - 0x0D, - 0x02, - 0x64, - 0xDA, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x5A, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xBD, - 0xB4, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0xDA, - 0xC4, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x94, - 0x00, - 0x5A, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x1B, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x64, - 0x74, - 0x00, - 0x00, - 0x05, - 0x29, - 0xBD, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xE4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x05, - 0x44, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x8D, - 0x02, - 0x94, - 0x05, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0xB4, - 0x00, - 0x00, - 0xB7, - 0xDA, - 0x02, - 0x02, - 0xDF, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x6F, - 0x00, - 0x94, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x71, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x00, - 0xB7, - 0x29, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x20, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x50, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x5A, - 0x02, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xBD, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x59, - 0xB4, - 0x02, - 0x02, - 0x71, - 0x20, - 0x00, - 0xB7, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x6C, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x00, - 0x00, - 0xE8, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x44, - 0x30, - 0x1B, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x02, - 0x12, - 0x05, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x74, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xE8, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x60, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x64, - 0x29, - 0x6C, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0xC4, - 0x00, - 0x71, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xDA, - 0x00, - 0x29, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x12, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xE8, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x02, - 0x71, - 0x00, - 0x74, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x71, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x94, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x0C, - 0x00, - 0x71, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x0C, - 0x00, - 0x00, - 0x00, - 0x12, - 0xE4, - 0x00, - 0x00, - 0x64, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x64, - 0x12, - 0x30, - 0xDC, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0xBD, - 0x02, - 0x8D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x64, - 0x05, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xE4, - 0x05, - 0x00, - 0x3B, - 0x29, - 0x64, - 0x1B, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0x5A, - 0x00, - 0xB7, - 0x02, - 0x5A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0xDA, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDF, - 0x00, - 0x83, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x44, - 0x0D, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x30, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x74, - 0x00, - 0x12, - 0x44, - 0x1B, - 0x00, - 0x00, - 0x1B, - 0x44, - 0x12, - 0x00, - 0x8D, - 0x02, - 0x71, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x71, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0x6A, - 0x00, - 0x05, - 0xE8, - 0x02, - 0x74, - 0x1B, - 0x00, - 0x20, - 0x59, - 0x00, - 0x05, - 0xBD, - 0x02, - 0x64, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x02, - 0x5A, - 0x12, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x29, - 0x94, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x74, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x44, - 0x29, - 0x3B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xBD, - 0x29, - 0x44, - 0x6A, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x71, - 0x02, - 0xB4, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x5A, - 0x02, - 0x94, - 0x05, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x29, - 0x0D, - 0x1B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x94, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0A, - 0xE8, - 0x02, - 0x5A, - 0x02, - 0xE8, - 0x29, - 0x12, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x05, - 0xE4, - 0x02, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x44, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x0C, - 0x02, - 0x3B, - 0x00, - 0x59, - 0x64, - 0x02, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x5A, - 0x02, - 0x12, - 0x1B, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0x44, - 0x30, - 0x1B, - 0x00, - 0xB4, - 0x02, - 0x50, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x60, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x71, - 0x30, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x0A, - 0x71, - 0x00, - 0x59, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x20, - 0x44, - 0x30, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x30, - 0x64, - 0x20, - 0x00, - 0x00, - 0x50, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x44, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xDA, - 0x98, - 0x29, - 0x64, - 0x6A, - 0x00, - 0x83, - 0x02, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x5A, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xB7, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x94, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x64, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x64, - 0xC4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xB4, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x1B, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x30, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x0D, - 0x00, - 0x00, - 0xBD, - 0x02, - 0xC4, - 0xDC, - 0x1B, - 0xC4, - 0x02, - 0xDA, - 0x60, - 0x02, - 0x64, - 0xC4, - 0x5A, - 0x02, - 0x12, - 0x05, - 0x00, - 0x1B, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0x0D, - 0xC4, - 0x5A, - 0x29, - 0x64, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x0D, - 0xDA, - 0x02, - 0x71, - 0x59, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x60, - 0x02, - 0x29, - 0x6F, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x29, - 0x05, - 0x00, - 0x5A, - 0x02, - 0x64, - 0x74, - 0xBD, - 0xE4, - 0x29, - 0x29, - 0x60, - 0x00, - 0xB7, - 0xBD, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0xE4, - 0x02, - 0x12, - 0xC4, - 0xC4, - 0x71, - 0x02, - 0xB4, - 0x05, - 0x00, - 0x00, - 0xE8, - 0x02, - 0xB4, - 0xBD, - 0x5A, - 0x02, - 0x64, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0xE4, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x64, - 0x29, - 0x00, - 0x60, - 0x02, - 0x64, - 0xC4, - 0xC4, - 0x44, - 0x02, - 0x60, - 0x00, - 0x00, - 0xDA, - 0x02, - 0x44, - 0x74, - 0xBD, - 0xE8, - 0x02, - 0x64, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x64, - 0x02, - 0x94, - 0xC4, - 0x74, - 0x44, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x02, - 0x29, - 0xB4, - 0xC4, - 0xC4, - 0x5A, - 0x30, - 0x02, - 0x94, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x02, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xC4, - 0xE4, - 0x29, - 0x29, - 0x50, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE8, - 0x02, - 0x29, - 0xE8, - 0xC4, - 0xBD, - 0x5A, - 0x0D, - 0x02, - 0x64, - 0x50, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xC4, - 0x74, - 0x94, - 0x29, - 0x02, - 0x71, - 0x98, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x6F, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x20, - 0xE4, - 0x02, - 0x02, - 0x71, - 0x74, - 0xBD, - 0xC4, - 0x94, - 0x02, - 0x02, - 0xC4, - 0x05, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0xB4, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xBD, - 0x29, - 0x29, - 0x94, - 0xC4, - 0xBD, - 0x5A, - 0x64, - 0x02, - 0x64, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0xC4, - 0x5A, - 0x30, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB4, - 0x02, - 0x02, - 0x71, - 0x74, - 0xBD, - 0x74, - 0x71, - 0x02, - 0x02, - 0x5A, - 0x20, - 0x00, - 0x00, - 0x02, - 0x71, - 0xBD, - 0xBD, - 0xBD, - 0x74, - 0x71, - 0x02, - 0x29, - 0x3B, - 0x00, - 0x00, - 0x6C, - 0x30, - 0x29, - 0x5A, - 0xBD, - 0x71, - 0x02, - 0xE8, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0x71, - 0x02, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x83, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x02, - 0x6C, - 0xDA, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x64, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x02, - 0xC4, - 0x00, - 0x00, - 0xE8, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x02, - 0xB7, - 0x00, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xBD, - 0xC4, - 0x02, - 0x30, - 0x00, - 0x6F, - 0x29, - 0x29, - 0x00, - 0x5A, - 0x44, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x02, - 0xB4, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x98, - 0x02, - 0x29, - 0x29, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0xB4, - 0x02, - 0x0D, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x02, - 0x12, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x71, - 0x29, - 0x74, - 0x98, - 0x02, - 0x5A, - 0x3B, - 0x94, - 0x02, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x02, - 0x59, - 0x00, - 0x00, - 0xBD, - 0x02, - 0x05, - 0x00, - 0x05, - 0x74, - 0x02, - 0x02, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x3B, - 0x71, - 0x02, - 0x0A, - 0x5A, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x29, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x12, - 0x02, - 0x0A, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8D, - 0xE4, - 0xDA, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0xB4, - 0x74, - 0x94, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x6F, - 0x00, - 0x00, - 0xB7, - 0x71, - 0x29, - 0x02, - 0x44, - 0x5A, - 0x6C, - 0x00, - 0x00, - 0xE8, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0xDA, - 0x71, - 0x29, - 0x29, - 0x12, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC4, - 0x44, - 0x02, - 0x30, - 0x5A, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE4, - 0x29, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x3B, - 0x71, - 0x29, - 0x29, - 0x71, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xE8, - 0x29, - 0x29, - 0x64, - 0xC4, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x5A, - 0x30, - 0x02, - 0x29, - 0x0C, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x74, - 0x0D, - 0x29, - 0x02, - 0x44, - 0xB4, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x02, - 0x29, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x64, - 0x5A, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x5A, - 0x64, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x30, - 0x12, - 0x5A, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x5A, - 0x44, - 0x02, - 0x02, - 0x30, - 0x71, - 0xC4, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0xBD, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0xE8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x02, - 0x02, - 0x5A, - 0x02, - 0x02, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0xC4, - 0x71, - 0x29, - 0x02, - 0x30, - 0x94, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x29, - 0x64, - 0xE8, - 0xB7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x5A, - 0x64, - 0x29, - 0x02, - 0x29, - 0x0D, - 0x5A, - 0x83, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x0A, - 0x71, - 0xC4, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6A, - 0xE4, - 0x0A, - 0x02, - 0x64, - 0xBD, - 0x05, - 0x00, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x5A, - 0x02, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0x74, - 0xB4, - 0x29, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC4, - 0x02, - 0x6A, - 0x3B, - 0x02, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x50, - 0x50, - 0x02, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x64, - 0x0D, - 0x05, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x8D, - 0xB4, - 0x1B, - 0x29, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE8, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB4, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x02, - 0x30, - 0xDA, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x0D, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x50, - 0x64, - 0x02, - 0x60, - 0x02, - 0x5A, - 0xC4, - 0x29, - 0xB4, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x02, - 0xE8, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x6A, - 0x1B, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAB, - 0x03, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x74, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x79, - 0x57, - 0x45, - 0x4B, - 0x16, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x33, - 0x03, - 0x03, - 0x5E, - 0x03, - 0x03, - 0x46, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0xC5, - 0x68, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA2, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x79, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x45, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x67, - 0x6E, - 0x04, - 0x05, - 0x2E, - 0x15, - 0x03, - 0x38, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x22, - 0x5E, - 0xCD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x68, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x35, - 0x1E, - 0x62, - 0x00, - 0x00, - 0x45, - 0x13, - 0x22, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xAF, - 0x13, - 0x4A, - 0x03, - 0x53, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x33, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1E, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x13, - 0x9B, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x5E, - 0x22, - 0x63, - 0x00, - 0x00, - 0x16, - 0xA4, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x69, - 0x46, - 0x14, - 0x00, - 0xAE, - 0x55, - 0x35, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x67, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x13, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x80, - 0x77, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x35, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x77, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x77, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0xA1, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x5E, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x36, - 0x41, - 0x3A, - 0x3A, - 0x41, - 0x27, - 0x00, - 0x00, - 0x05, - 0x58, - 0x9B, - 0x1E, - 0x1E, - 0x35, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x88, - 0x19, - 0x00, - 0x00, - 0x00, - 0x18, - 0x33, - 0x67, - 0x07, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x19, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0xA9, - 0x13, - 0x5E, - 0x82, - 0x25, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x37, - 0x54, - 0x38, - 0x1E, - 0x82, - 0x22, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0xA1, - 0x77, - 0x1E, - 0xE0, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xA1, - 0x77, - 0x1E, - 0x34, - 0x15, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x67, - 0x8F, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x89, - 0x3A, - 0x1E, - 0x9B, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x05, - 0x34, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xAC, - 0x53, - 0x82, - 0x03, - 0x1E, - 0x67, - 0x68, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x39, - 0x03, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x33, - 0x88, - 0x57, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x52, - 0x8F, - 0x1E, - 0x5E, - 0x33, - 0xA3, - 0x26, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x5E, - 0x13, - 0x9B, - 0x52, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1D, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0xBB, - 0x46, - 0xA2, - 0x03, - 0x1E, - 0xE0, - 0x22, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x36, - 0xA3, - 0x13, - 0x03, - 0x34, - 0x23, - 0x05, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x45, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x14, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x15, - 0x67, - 0x69, - 0x03, - 0x33, - 0xA3, - 0x26, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x23, - 0xCD, - 0x13, - 0x03, - 0xA2, - 0x35, - 0x45, - 0x14, - 0x04, - 0x57, - 0x24, - 0x55, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xAF, - 0x33, - 0x37, - 0x00, - 0x00, - 0x16, - 0x5C, - 0x13, - 0x1E, - 0x34, - 0x23, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0xA4, - 0xA2, - 0x1E, - 0xE0, - 0x15, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x82, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x03, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x53, - 0x00, - 0x0B, - 0x35, - 0x13, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x03, - 0x33, - 0x1D, - 0x19, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x05, - 0x4A, - 0x9B, - 0x3A, - 0x1E, - 0x67, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x1E, - 0xAF, - 0x22, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x2B, - 0xA3, - 0x77, - 0x03, - 0x82, - 0x1D, - 0x19, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0B, - 0x4B, - 0x35, - 0x3A, - 0x1E, - 0x67, - 0x4B, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x9B, - 0x3A, - 0x55, - 0x9B, - 0x58, - 0x05, - 0x81, - 0x33, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x13, - 0x67, - 0x07, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x07, - 0x57, - 0x35, - 0x13, - 0x1E, - 0x34, - 0x15, - 0x31, - 0x00, - 0x00, - 0x03, - 0x52, - 0x17, - 0x4B, - 0x67, - 0x55, - 0x69, - 0x9B, - 0x57, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x03, - 0x82, - 0xD8, - 0x40, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x1E, - 0x7A, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x23, - 0x8F, - 0x55, - 0x1E, - 0x88, - 0x91, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x66, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x3A, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0x45, - 0x00, - 0x00, - 0x00, - 0xA2, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0xA4, - 0x03, - 0x03, - 0x03, - 0x3A, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x9B, - 0x00, - 0x00, - 0x16, - 0x1E, - 0xC5, - 0x15, - 0xE5, - 0x38, - 0x1E, - 0x62, - 0x05, - 0x65, - 0x03, - 0x35, - 0x45, - 0x15, - 0x7A, - 0x03, - 0x45, - 0x00, - 0x00, - 0x2E, - 0x7A, - 0x69, - 0x62, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x67, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x34, - 0x72, - 0x23, - 0x22, - 0x13, - 0x1E, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x34, - 0x03, - 0x1D, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x00, - 0x19, - 0x82, - 0x55, - 0x1D, - 0x23, - 0x52, - 0x13, - 0x77, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x38, - 0x15, - 0x23, - 0x5C, - 0x03, - 0x9B, - 0x0E, - 0x00, - 0x00, - 0x26, - 0x03, - 0x66, - 0x68, - 0x23, - 0x25, - 0x5E, - 0x7A, - 0x14, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x9B, - 0x45, - 0x45, - 0x35, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x9B, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x4A, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x15, - 0xA2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x15, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x35, - 0x03, - 0x13, - 0x53, - 0x45, - 0x23, - 0x68, - 0xCD, - 0x03, - 0x54, - 0x17, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0xC5, - 0x05, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x68, - 0x46, - 0x03, - 0x38, - 0x37, - 0x00, - 0x00, - 0x0E, - 0x25, - 0x03, - 0x69, - 0x65, - 0xBB, - 0x23, - 0x54, - 0x8F, - 0x03, - 0x34, - 0x2C, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x15, - 0x65, - 0x66, - 0x03, - 0xA4, - 0x14, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x6E, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x54, - 0x03, - 0x03, - 0x88, - 0x72, - 0x23, - 0xBB, - 0xA1, - 0x13, - 0x03, - 0x41, - 0x08, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x27, - 0x55, - 0x77, - 0x72, - 0x23, - 0x5D, - 0x03, - 0x22, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0x41, - 0x05, - 0x03, - 0xCD, - 0x4B, - 0x4B, - 0x4B, - 0x4B, - 0x4B, - 0x4B, - 0x07, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x77, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x15, - 0x5E, - 0x55, - 0xA3, - 0x15, - 0x23, - 0x54, - 0x67, - 0x03, - 0x38, - 0x16, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x80, - 0x03, - 0x35, - 0x72, - 0x23, - 0x15, - 0x35, - 0x03, - 0x69, - 0xE0, - 0x03, - 0x41, - 0x23, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x03, - 0x62, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x13, - 0x54, - 0x23, - 0xA1, - 0x03, - 0xCD, - 0x07, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x7A, - 0x68, - 0x23, - 0xD8, - 0x1E, - 0x33, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xC5, - 0x03, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x03, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x03, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x67, - 0x66, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x66, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x33, - 0x03, - 0x45, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x38, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x87, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x9B, - 0x03, - 0x67, - 0x15, - 0x23, - 0x52, - 0x33, - 0x3A, - 0x6E, - 0x03, - 0x52, - 0x03, - 0x1D, - 0xA3, - 0x03, - 0xA9, - 0x45, - 0x45, - 0xA3, - 0x03, - 0x34, - 0x19, - 0x00, - 0x00, - 0x18, - 0xCD, - 0x03, - 0x9B, - 0x15, - 0x23, - 0x1D, - 0x3A, - 0x5E, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x31, - 0xA9, - 0x03, - 0x24, - 0x15, - 0x23, - 0x22, - 0x66, - 0x80, - 0x62, - 0x03, - 0x52, - 0x00, - 0x08, - 0x67, - 0x03, - 0x5D, - 0x45, - 0x45, - 0x41, - 0x03, - 0x9B, - 0x37, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x63, - 0x34, - 0x03, - 0x41, - 0x45, - 0x45, - 0x41, - 0x03, - 0x22, - 0x22, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x34, - 0x77, - 0x21, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x63, - 0x34, - 0x03, - 0xA4, - 0x45, - 0x23, - 0xA1, - 0x5E, - 0x33, - 0x2C, - 0x00, - 0x03, - 0x1D, - 0xA4, - 0x03, - 0xA4, - 0x45, - 0x45, - 0xA3, - 0x03, - 0xE0, - 0x63, - 0x00, - 0x00, - 0x18, - 0xCD, - 0x03, - 0x35, - 0x15, - 0x23, - 0x22, - 0x66, - 0x1E, - 0x2B, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x88, - 0x23, - 0xA4, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x88, - 0x03, - 0xA9, - 0x45, - 0xBB, - 0x67, - 0x13, - 0x5C, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x66, - 0x03, - 0x35, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x67, - 0xC5, - 0x0E, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x80, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x82, - 0x55, - 0x23, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0xA3, - 0x00, - 0x00, - 0x00, - 0xA9, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9C, - 0x33, - 0x79, - 0x0B, - 0x2E, - 0xA3, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x03, - 0x7B, - 0x00, - 0x46, - 0xAF, - 0x31, - 0x00, - 0x00, - 0x18, - 0x33, - 0x9B, - 0x4A, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA3, - 0x03, - 0x1A, - 0x19, - 0xC5, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x13, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x45, - 0x13, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x25, - 0x04, - 0x00, - 0x00, - 0x00, - 0x14, - 0x7A, - 0x77, - 0x07, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x08, - 0x67, - 0x13, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x67, - 0x13, - 0x91, - 0x00, - 0x00, - 0x00, - 0x63, - 0x82, - 0x9C, - 0x04, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x03, - 0x41, - 0x1A, - 0x00, - 0x27, - 0x03, - 0x5C, - 0x07, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x5E, - 0xA3, - 0x00, - 0x36, - 0x5E, - 0x35, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x89, - 0x00, - 0x00, - 0x04, - 0x33, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x54, - 0x05, - 0x00, - 0x00, - 0x05, - 0x54, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x3A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x07, - 0x54, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA6, - 0x1E, - 0x03, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x03, - 0x1E, - 0x1D, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x33, - 0x03, - 0x72, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x0B, - 0x14, - 0x19, - 0x1D, - 0x62, - 0x00, - 0x00, - 0x00, - 0xA3, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x23, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x54, - 0x00, - 0x0E, - 0x67, - 0x03, - 0x22, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x82, - 0x13, - 0x36, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x51, - 0x33, - 0xAF, - 0x21, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x9B, - 0x03, - 0x65, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x45, - 0x5E, - 0x38, - 0x14, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0xA3, - 0xA2, - 0x14, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x03, - 0x19, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x33, - 0x7A, - 0x18, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0xE0, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x05, - 0x65, - 0x03, - 0xA6, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x34, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x67, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x03, - 0x81, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x15, - 0x00, - 0x00, - 0x31, - 0x3A, - 0xAF, - 0x14, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0xA1, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x13, - 0x67, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x52, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x3A, - 0xCD, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA2, - 0xCD, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x34, - 0x05, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x24, - 0x1E, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x25, - 0x3A, - 0x03, - 0x52, - 0x03, - 0x1E, - 0x3A, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x13, - 0x34, - 0x07, - 0x17, - 0x35, - 0x55, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xCD, - 0x03, - 0x39, - 0x00, - 0x17, - 0x46, - 0x1E, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x53, - 0x13, - 0x03, - 0x52, - 0x0B, - 0x9B, - 0x13, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x13, - 0x35, - 0x05, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x07, - 0xE0, - 0x13, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x3A, - 0xAF, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x81, - 0x00, - 0x00, - 0x05, - 0xA3, - 0x5E, - 0x7B, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x07, - 0x34, - 0x13, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x33, - 0x82, - 0x0E, - 0x03, - 0x1E, - 0x13, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA2, - 0x34, - 0x07, - 0x04, - 0x35, - 0x1E, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x25, - 0x55, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x8F, - 0xE0, - 0x05, - 0x00, - 0x05, - 0x67, - 0x34, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1D, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x77, - 0xA6, - 0xAF, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x1D, - 0x03, - 0x14, - 0x00, - 0x00, - 0x4A, - 0x03, - 0xA6, - 0x80, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x5E, - 0x22, - 0x00, - 0x00, - 0x26, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x66, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x66, - 0x00, - 0x00, - 0x00, - 0x72, - 0x38, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x07, - 0x77, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x5C, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x55, - 0x24, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x7A, - 0x7A, - 0x66, - 0x77, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x3A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x18, - 0x67, - 0x80, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0xAC, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0xA3, - 0x77, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x36, - 0x25, - 0x1E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0xB1, - 0x00, - 0x00, - 0x23, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0xC5, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0xA4, - 0x03, - 0x55, - 0x22, - 0x19, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x19, - 0x22, - 0x1E, - 0x03, - 0x41, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x8F, - 0x03, - 0x57, - 0x88, - 0x03, - 0x1E, - 0xA1, - 0x79, - 0x13, - 0x5E, - 0x13, - 0x57, - 0x05, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x37, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x38, - 0x00, - 0xA1, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x7A, - 0x7A, - 0x2F, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x33, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x1E, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x80, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x4A, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x5E, - 0x16, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x67, - 0x27, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x23, - 0x03, - 0x52, - 0x00, - 0x72, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x67, - 0x1E, - 0x2D, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0xA4, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x33, - 0x80, - 0x88, - 0x03, - 0x23, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x19, - 0x69, - 0x35, - 0x05, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCD, - 0x34, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x7A, - 0x04, - 0x82, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0xAC, - 0x82, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x26, - 0xE0, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x5E, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1E, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x52, - 0x03, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x23, - 0x4A, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1D, - 0x54, - 0x00, - 0x4A, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x35, - 0x03, - 0x52, - 0xD1, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x58, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x23, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0xC0, - 0x00, - 0x15, - 0x03, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x57, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x03, - 0xBB, - 0x03, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x23, - 0x4A, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x25, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x22, - 0x55, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0xCD, - 0x38, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x3A, - 0x03, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x27, - 0x23, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x34, - 0x37, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x88, - 0x88, - 0x2D, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x87, - 0x08, - 0xA2, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x79, - 0x80, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x5E, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0xBB, - 0x03, - 0x26, - 0x1A, - 0x1A, - 0x54, - 0x03, - 0x39, - 0x1A, - 0x1A, - 0xE5, - 0x03, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x19, - 0x8F, - 0x34, - 0x04, - 0x00, - 0x00, - 0x0B, - 0xE0, - 0xE0, - 0x55, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x33, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x33, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0E, - 0x9B, - 0x1E, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x03, - 0x15, - 0x88, - 0x1E, - 0x16, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x03, - 0xA6, - 0x21, - 0x04, - 0x55, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x23, - 0x33, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x03, - 0x23, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x13, - 0x00, - 0x00, - 0x00, - 0x18, - 0x62, - 0x16, - 0x41, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x26, - 0x67, - 0x03, - 0xA2, - 0x15, - 0x08, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x14, - 0x15, - 0x13, - 0x03, - 0x67, - 0xAE, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x22, - 0x52, - 0x3A, - 0x36, - 0x04, - 0x45, - 0x03, - 0x24, - 0x05, - 0x79, - 0x66, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x05, - 0x34, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x1D, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x5E, - 0x16, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x2B, - 0x63, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x26, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x05, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x72, - 0x03, - 0xA9, - 0x05, - 0x00, - 0x00, - 0x15, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x58, - 0x00, - 0x35, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x77, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x2D, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x3A, - 0x88, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x69, - 0x7A, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x15, - 0x5E, - 0x38, - 0x40, - 0x0B, - 0x67, - 0x03, - 0x19, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0B, - 0x24, - 0xA2, - 0x21, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x52, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x66, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x63, - 0x03, - 0x23, - 0x00, - 0xE5, - 0x1E, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x5E, - 0x2F, - 0x1D, - 0xA2, - 0x05, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x14, - 0x68, - 0x55, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x34, - 0x82, - 0x0E, - 0x00, - 0x0E, - 0x33, - 0x67, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x1E, - 0xCD, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xC0, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x52, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x9B, - 0x35, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x38, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x52, - 0x35, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x21, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x67, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x55, - 0x55, - 0xE5, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x46, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x03, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x9B, - 0x9B, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x38, - 0xE0, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x03, - 0x00, - 0x00, - 0x00, - 0x88, - 0x9B, - 0x00, - 0x08, - 0x1E, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x1E, - 0x45, - 0x00, - 0x88, - 0xA4, - 0x00, - 0x18, - 0x03, - 0x4A, - 0x00, - 0x9B, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x67, - 0x38, - 0x5C, - 0x3A, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x34, - 0x00, - 0x54, - 0x1E, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x67, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x15, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0xA2, - 0xA1, - 0x00, - 0x00, - 0xB1, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x16, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x0E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x52, - 0xAC, - 0x03, - 0xCD, - 0xAE, - 0x26, - 0x9B, - 0x03, - 0x1A, - 0x33, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x1E, - 0x03, - 0x66, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA2, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x41, - 0x03, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x13, - 0x17, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x35, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x19, - 0x79, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x54, - 0x19, - 0x1E, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x0B, - 0x6E, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0x54, - 0x5E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x22, - 0x69, - 0x31, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x03, - 0x00, - 0x0B, - 0x54, - 0x5E, - 0x03, - 0x03, - 0x1E, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x03, - 0x38, - 0x4B, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x57, - 0x82, - 0x03, - 0xC5, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x89, - 0x03, - 0x08, - 0x66, - 0x25, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x13, - 0x17, - 0x00, - 0xB1, - 0x1E, - 0x45, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0xAE, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x15, - 0x03, - 0x27, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA9, - 0x82, - 0x1D, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x82, - 0xA1, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x39, - 0x1E, - 0x88, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0x45, - 0x00, - 0x79, - 0x03, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x41, - 0x13, - 0x07, - 0x00, - 0x51, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x1E, - 0x40, - 0x00, - 0x03, - 0x52, - 0x54, - 0x03, - 0x63, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x40, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x7A, - 0x45, - 0x51, - 0x39, - 0xD1, - 0x25, - 0x69, - 0x03, - 0x22, - 0x0E, - 0x00, - 0x00, - 0x27, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCD, - 0xAF, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x14, - 0x00, - 0x63, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x89, - 0x00, - 0x51, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x88, - 0xE0, - 0x00, - 0x6E, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x22, - 0x00, - 0x1D, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x07, - 0x13, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x24, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x03, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x3A, - 0x3A, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x3A, - 0xA9, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x69, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x22, - 0x46, - 0x03, - 0x35, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x3A, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x3A, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x3A, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x57, - 0x33, - 0x03, - 0x39, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x58, - 0x00, - 0x00, - 0x25, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x03, - 0x63, - 0x00, - 0x4A, - 0x5E, - 0x0E, - 0x26, - 0x03, - 0x14, - 0x00, - 0x4A, - 0x03, - 0x63, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x57, - 0x00, - 0x2D, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xA1, - 0x5E, - 0x16, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x1E, - 0x45, - 0x19, - 0xA9, - 0x22, - 0x00, - 0x00, - 0x05, - 0x2B, - 0x34, - 0x03, - 0x03, - 0x15, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x21, - 0x33, - 0x54, - 0x21, - 0x21, - 0x19, - 0x03, - 0x45, - 0x21, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x77, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x69, - 0x31, - 0x6E, - 0x67, - 0x03, - 0x03, - 0xE0, - 0x79, - 0x00, - 0x54, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x39, - 0x1E, - 0x34, - 0x2B, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x88, - 0x5E, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x58, - 0x00, - 0x57, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x45, - 0x82, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x34, - 0x00, - 0xA1, - 0x03, - 0x22, - 0x27, - 0x19, - 0x51, - 0x34, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x9B, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x35, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x13, - 0xCD, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x37, - 0x00, - 0x00, - 0x0E, - 0x3A, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x54, - 0x38, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0xAF, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA2, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x5E, - 0x03, - 0x4A, - 0x66, - 0x38, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x19, - 0x03, - 0x72, - 0x00, - 0x00, - 0x04, - 0x33, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x23, - 0x00, - 0x00, - 0x03, - 0x52, - 0x34, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x4B, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x79, - 0x16, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x46, - 0x66, - 0x88, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x34, - 0x54, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0xE0, - 0x03, - 0x52, - 0x00, - 0x79, - 0x03, - 0x03, - 0x80, - 0x81, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x17, - 0x66, - 0x81, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x38, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x23, - 0x00, - 0x08, - 0x03, - 0x23, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x68, - 0x00, - 0x07, - 0x1E, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x15, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x03, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE0, - 0x13, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x15, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x3A, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x52, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x3A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x03, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x2E, - 0x13, - 0x9B, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x3A, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x3A, - 0x3A, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x3A, - 0x03, - 0xA4, - 0x16, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x54, - 0x80, - 0x07, - 0x00, - 0x00, - 0x16, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x89, - 0x00, - 0x00, - 0x14, - 0x03, - 0x51, - 0x5C, - 0x35, - 0x00, - 0x00, - 0x0E, - 0x55, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x13, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x08, - 0x00, - 0x00, - 0xA9, - 0x82, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x45, - 0x1E, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x65, - 0x03, - 0x45, - 0x62, - 0x03, - 0x15, - 0x58, - 0x67, - 0x03, - 0x55, - 0x88, - 0x7A, - 0x03, - 0x39, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x53, - 0x00, - 0x00, - 0x00, - 0x34, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x9B, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x55, - 0x23, - 0x00, - 0x00, - 0x0E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x67, - 0x03, - 0x15, - 0x07, - 0x26, - 0x03, - 0x9B, - 0x37, - 0x00, - 0x81, - 0x69, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA2, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x21, - 0x21, - 0x21, - 0xA6, - 0x03, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8F, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x5D, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x34, - 0x13, - 0x18, - 0x00, - 0x05, - 0x46, - 0x66, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x87, - 0xA6, - 0x80, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x26, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x23, - 0x2B, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x38, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAE, - 0x67, - 0x03, - 0x3A, - 0x68, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x15, - 0x13, - 0x03, - 0x67, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x5E, - 0x39, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x00, - 0xAF, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x27, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x52, - 0x3A, - 0x19, - 0x21, - 0x21, - 0x21, - 0x21, - 0x51, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x2B, - 0x4A, - 0x1D, - 0x1E, - 0x9B, - 0x0E, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x1E, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x21, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x16, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x03, - 0x41, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x1A, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x67, - 0x03, - 0x55, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x63, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x19, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x08, - 0x66, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x03, - 0x52, - 0x1E, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x54, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA1, - 0x37, - 0x00, - 0x1E, - 0x25, - 0x00, - 0x05, - 0x37, - 0x08, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x2C, - 0x6E, - 0x2B, - 0xBB, - 0x7A, - 0x03, - 0xD1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x4A, - 0x9B, - 0x03, - 0x46, - 0x07, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x36, - 0x00, - 0x00, - 0x24, - 0xA4, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x79, - 0x00, - 0x00, - 0xA4, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x7A, - 0x03, - 0x34, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x1E, - 0x22, - 0x66, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x14, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x52, - 0x03, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x9B, - 0x46, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0x34, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x52, - 0x24, - 0x35, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x88, - 0x67, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x67, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x03, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x03, - 0x45, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x68, - 0x03, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x1E, - 0x67, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8F, - 0x9B, - 0x03, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8F, - 0x46, - 0x46, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x52, - 0x03, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x88, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x07, - 0x13, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x46, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x35, - 0xA4, - 0x55, - 0x57, - 0x00, - 0x00, - 0x00, - 0x53, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x05, - 0xA4, - 0x13, - 0x9B, - 0xAF, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x67, - 0xE0, - 0x0B, - 0x00, - 0x00, - 0x40, - 0x41, - 0x1E, - 0x36, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x72, - 0x19, - 0x00, - 0x58, - 0x1E, - 0x03, - 0x67, - 0x4B, - 0x0E, - 0x00, - 0x0B, - 0xA9, - 0x1D, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x68, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x34, - 0x03, - 0x03, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x08, - 0x6E, - 0x16, - 0x17, - 0x00, - 0x1D, - 0x82, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x03, - 0xA2, - 0x03, - 0x9B, - 0x0E, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0xC0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0xA2, - 0x04, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9B, - 0x69, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x39, - 0x45, - 0x33, - 0x1E, - 0x79, - 0x00, - 0x00, - 0x00, - 0x40, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x19, - 0x66, - 0x15, - 0x05, - 0x00, - 0x00, - 0x00, - 0x40, - 0xA2, - 0x9B, - 0x05, - 0x2C, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x33, - 0xE0, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0xA1, - 0xAE, - 0x51, - 0x1D, - 0x03, - 0x25, - 0x05, - 0xA9, - 0x33, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0xB1, - 0x34, - 0x45, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x87, - 0x41, - 0x03, - 0x5E, - 0xD8, - 0x40, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x1D, - 0x1E, - 0x03, - 0xA4, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x89, - 0x03, - 0x2B, - 0x00, - 0x55, - 0x1D, - 0x00, - 0x25, - 0x1E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x23, - 0x13, - 0x0B, - 0x00, - 0x07, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x77, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0xA1, - 0x04, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x26, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x35, - 0x00, - 0x1E, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x63, - 0x13, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x07, - 0x13, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1E, - 0x54, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x5E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x03, - 0x15, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x19, - 0x6E, - 0x22, - 0x03, - 0x67, - 0x05, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x1E, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x89, - 0x1E, - 0x21, - 0x00, - 0x00, - 0x27, - 0xA4, - 0x03, - 0x03, - 0x67, - 0x4A, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xA9, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x00, - 0x17, - 0x66, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x77, - 0x05, - 0x00, - 0x00, - 0x15, - 0x1E, - 0x0B, - 0x00, - 0x72, - 0x1E, - 0x07, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x65, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x69, - 0x37, - 0x57, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0xA1, - 0x3A, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x5D, - 0x03, - 0x52, - 0x03, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x57, - 0x4B, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x81, - 0xA6, - 0x00, - 0x4B, - 0x03, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x46, - 0x03, - 0x52, - 0x23, - 0x03, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x5E, - 0x45, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x23, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x03, - 0x03, - 0x77, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0xAC, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x54, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x4A, - 0x03, - 0xC5, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x66, - 0x67, - 0x23, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x23, - 0x03, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x57, - 0x4B, - 0x03, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x88, - 0x03, - 0x52, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x68, - 0x03, - 0x37, - 0x00, - 0x00, - 0x08, - 0x31, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x58, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x03, - 0x36, - 0x00, - 0x00, - 0x15, - 0x1E, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x51, - 0x19, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x55, - 0x72, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x15, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x13, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x16, - 0x72, - 0x1E, - 0x16, - 0x16, - 0x16, - 0xA6, - 0x13, - 0x16, - 0x16, - 0x00, - 0x37, - 0x34, - 0x03, - 0x66, - 0x72, - 0x19, - 0x00, - 0x00, - 0x05, - 0x72, - 0x03, - 0x03, - 0x03, - 0x7A, - 0x16, - 0x91, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x5E, - 0x52, - 0x0E, - 0x00, - 0x00, - 0x1D, - 0x5E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE5, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x79, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x03, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x62, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x03, - 0x35, - 0x4A, - 0x2B, - 0x68, - 0x69, - 0x33, - 0x19, - 0x00, - 0x00, - 0x22, - 0x03, - 0x67, - 0x4A, - 0x39, - 0xE5, - 0xA2, - 0x13, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x13, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x23, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x1D, - 0x1E, - 0x03, - 0x41, - 0x7B, - 0x00, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x00, - 0x7B, - 0xA3, - 0x03, - 0x1E, - 0xA6, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9B, - 0x69, - 0x14, - 0xE0, - 0x35, - 0x00, - 0x87, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x1A, - 0x00, - 0x07, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x67, - 0x00, - 0x00, - 0x00, - 0x14, - 0x5E, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x2D, - 0x1A, - 0x5D, - 0x03, - 0x79, - 0x00, - 0x38, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x82, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x07, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x08, - 0x00, - 0xE0, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA6, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x21, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x87, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x58, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x13, - 0x07, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x34, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x4A, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x1A, - 0x77, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA9, - 0x38, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x4B, - 0x00, - 0x16, - 0x1E, - 0x82, - 0x23, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x19, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x13, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x62, - 0x00, - 0x24, - 0x88, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAC, - 0x03, - 0xC5, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x5E, - 0x72, - 0x00, - 0x07, - 0x66, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x77, - 0x34, - 0x04, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE5, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x16, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x67, - 0x1E, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x25, - 0x1E, - 0x03, - 0x52, - 0x03, - 0x55, - 0x80, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x13, - 0x8F, - 0x07, - 0x04, - 0x9B, - 0x69, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0xA4, - 0x03, - 0x39, - 0x00, - 0x04, - 0x9B, - 0x69, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x5C, - 0x03, - 0x03, - 0x52, - 0x07, - 0x34, - 0x7A, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x7A, - 0xC5, - 0x31, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x07, - 0x7A, - 0x77, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA2, - 0x3A, - 0x03, - 0x03, - 0x03, - 0x1D, - 0x17, - 0x00, - 0x00, - 0x00, - 0x14, - 0x38, - 0x66, - 0x07, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x0B, - 0x9B, - 0x80, - 0x19, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x46, - 0x3A, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xA4, - 0x5E, - 0x21, - 0x03, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x23, - 0x07, - 0x34, - 0xA2, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x13, - 0x7A, - 0x2F, - 0x03, - 0x55, - 0x13, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x13, - 0x34, - 0x07, - 0x0B, - 0x67, - 0x1E, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x25, - 0x55, - 0x03, - 0x52, - 0x03, - 0x03, - 0x58, - 0x00, - 0x00, - 0x45, - 0x03, - 0x19, - 0x00, - 0x07, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x9B, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x13, - 0x22, - 0x00, - 0x05, - 0x33, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x82, - 0x1D, - 0x00, - 0x00, - 0x19, - 0x69, - 0xA1, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x39, - 0x00, - 0x00, - 0x00, - 0x67, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x22, - 0x03, - 0x57, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0x52, - 0x40, - 0x62, - 0x9C, - 0x3A, - 0x14, - 0x89, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x5C, - 0x08, - 0xBB, - 0x1E, - 0x24, - 0x07, - 0x00, - 0x37, - 0x1A, - 0x19, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x66, - 0x35, - 0x00, - 0x00, - 0x45, - 0x2E, - 0x14, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x1D, - 0x00, - 0x00, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xAE, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x19, - 0x39, - 0x34, - 0x77, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x8F, - 0x38, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x7A, - 0xE0, - 0x89, - 0x03, - 0x03, - 0x1E, - 0xD8, - 0x14, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x82, - 0x03, - 0x82, - 0x03, - 0x03, - 0x41, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x03, - 0x27, - 0x00, - 0x00, - 0x58, - 0x03, - 0x1D, - 0x36, - 0x40, - 0x22, - 0x03, - 0x58, - 0x00, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x54, - 0x03, - 0x52, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x15, - 0x13, - 0x03, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x03, - 0xA2, - 0x15, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x57, - 0x54, - 0x03, - 0x14, - 0x00, - 0xA3, - 0x55, - 0x36, - 0x00, - 0x00, - 0x51, - 0x03, - 0xA6, - 0x00, - 0x27, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x62, - 0x00, - 0x00, - 0xBB, - 0x5E, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x34, - 0x35, - 0x00, - 0x1D, - 0x03, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0xA1, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x23, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x67, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0x4A, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x08, - 0x66, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x52, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x19, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x03, - 0x15, - 0x5C, - 0x1E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x55, - 0xA6, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x54, - 0x00, - 0x35, - 0x66, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x72, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0xE5, - 0x00, - 0x00, - 0x00, - 0x16, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0x15, - 0x37, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7A, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x33, - 0x34, - 0x37, - 0x38, - 0x38, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x69, - 0x37, - 0x00, - 0x00, - 0x4B, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x45, - 0x00, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x34, - 0x05, - 0x00, - 0x17, - 0x82, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x46, - 0x03, - 0x9B, - 0x15, - 0x23, - 0x22, - 0x66, - 0x69, - 0x79, - 0x03, - 0x52, - 0x03, - 0x22, - 0xA3, - 0x03, - 0xA4, - 0x45, - 0x45, - 0xA3, - 0x03, - 0x34, - 0x63, - 0x00, - 0x00, - 0x37, - 0x46, - 0x03, - 0x35, - 0x15, - 0x23, - 0x1D, - 0x13, - 0x5E, - 0x58, - 0x00, - 0x00, - 0x00, - 0x37, - 0xCD, - 0x03, - 0x35, - 0x15, - 0x23, - 0x1D, - 0x13, - 0x1E, - 0x26, - 0x03, - 0x52, - 0x00, - 0x63, - 0xE0, - 0x1E, - 0x53, - 0x45, - 0x45, - 0xA3, - 0x03, - 0x34, - 0x2D, - 0x00, - 0x57, - 0x57, - 0x03, - 0x46, - 0x57, - 0x57, - 0x00, - 0x19, - 0x38, - 0x03, - 0x5C, - 0x45, - 0x45, - 0xA4, - 0x03, - 0x1D, - 0x22, - 0x03, - 0x03, - 0x9B, - 0x69, - 0x34, - 0x15, - 0x57, - 0x52, - 0x13, - 0x69, - 0x6E, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x19, - 0x80, - 0x67, - 0x0B, - 0x00, - 0x03, - 0x52, - 0x03, - 0x67, - 0x1E, - 0xA3, - 0x45, - 0x72, - 0x38, - 0x1E, - 0x62, - 0x22, - 0x03, - 0x41, - 0x23, - 0x15, - 0x34, - 0x03, - 0x4B, - 0x00, - 0x03, - 0xCD, - 0xA2, - 0x35, - 0x45, - 0x45, - 0x9B, - 0x03, - 0x89, - 0x07, - 0x00, - 0x63, - 0xE0, - 0x03, - 0x41, - 0x45, - 0x45, - 0xA3, - 0x03, - 0xAF, - 0x19, - 0x00, - 0x03, - 0x22, - 0xA3, - 0x03, - 0xA4, - 0x45, - 0x45, - 0xA4, - 0x03, - 0x34, - 0x2E, - 0x00, - 0x00, - 0x08, - 0x35, - 0x03, - 0x35, - 0x15, - 0x23, - 0x22, - 0x66, - 0x1E, - 0x51, - 0x03, - 0x52, - 0x03, - 0x8F, - 0x03, - 0x65, - 0xC0, - 0x19, - 0x1E, - 0x34, - 0x23, - 0x88, - 0x03, - 0x16, - 0x57, - 0x57, - 0x46, - 0x03, - 0x57, - 0x57, - 0x57, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x27, - 0x03, - 0xAE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x69, - 0x0E, - 0x6E, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x69, - 0x07, - 0x05, - 0x35, - 0x33, - 0x18, - 0x00, - 0x00, - 0x05, - 0x88, - 0x66, - 0x08, - 0x00, - 0x27, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1E, - 0x22, - 0x00, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x80, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x07, - 0x07, - 0x18, - 0x03, - 0xC0, - 0x07, - 0x07, - 0x40, - 0x03, - 0xAC, - 0x07, - 0x00, - 0x77, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xAF, - 0x35, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x23, - 0xAC, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x33, - 0x2F, - 0x00, - 0x00, - 0xAE, - 0x03, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x88, - 0x13, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x79, - 0x00, - 0x00, - 0x22, - 0x25, - 0x1D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE5, - 0xA2, - 0x04, - 0x00, - 0x66, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x13, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB1, - 0x03, - 0x72, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x53, - 0x34, - 0x00, - 0x07, - 0x08, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x58, - 0x08, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0x53, - 0x00, - 0x00, - 0xAF, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x7A, - 0x00, - 0x38, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xD1, - 0x38, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0xD1, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x54, - 0x19, - 0x03, - 0xA6, - 0x00, - 0x08, - 0x34, - 0x13, - 0x23, - 0xAE, - 0x7A, - 0x46, - 0x3A, - 0x07, - 0x22, - 0x03, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x7A, - 0x5C, - 0x00, - 0x0B, - 0x77, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x69, - 0x00, - 0x7B, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x79, - 0x08, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x39, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x23, - 0x45, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x7B, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xE0, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x53, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x2D, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x69, - 0xA4, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x52, - 0x39, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x16, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x72, - 0x00, - 0x55, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x21, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x0B, - 0x13, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA9, - 0x33, - 0x17, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA4, - 0x9B, - 0x2B, - 0x03, - 0x36, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x69, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x62, - 0x00, - 0x62, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x82, - 0xCD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x88, - 0x1E, - 0x19, - 0x00, - 0xE0, - 0x35, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x79, - 0x00, - 0x39, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x58, - 0x88, - 0xA2, - 0x5E, - 0x38, - 0x22, - 0x2E, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x05, - 0x58, - 0x9B, - 0x1E, - 0x3A, - 0x67, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0x88, - 0xA2, - 0x55, - 0x38, - 0x22, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x26, - 0xA9, - 0x13, - 0x5E, - 0x7A, - 0x1D, - 0x2D, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x07, - 0x57, - 0x9B, - 0x3A, - 0x3A, - 0x9B, - 0x23, - 0x07, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x0E, - 0x45, - 0x67, - 0x1E, - 0x3A, - 0x88, - 0x51, - 0x00, - 0x52, - 0x03, - 0x03, - 0x52, - 0x2D, - 0x25, - 0x66, - 0x1E, - 0xC5, - 0xA6, - 0x19, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x52, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x7B, - 0xCD, - 0x1E, - 0x13, - 0xA3, - 0x36, - 0x00, - 0x05, - 0x4A, - 0xE0, - 0x03, - 0x80, - 0x89, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x2E, - 0xA6, - 0x77, - 0x1E, - 0xE0, - 0x23, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x57, - 0x46, - 0x3A, - 0x3A, - 0x24, - 0x45, - 0x2F, - 0x00, - 0x00, - 0x03, - 0x52, - 0x05, - 0x58, - 0x9B, - 0x1E, - 0x3A, - 0x67, - 0x23, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x26, - 0x88, - 0x13, - 0x5E, - 0xC5, - 0xD8, - 0x40, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x58, - 0x13, - 0x03, - 0x00, - 0x62, - 0x67, - 0x1E, - 0x9C, - 0x51, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x1D, - 0x13, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x03, - 0x4B, - 0x25, - 0x33, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x26, - 0x23, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x3A, - 0xA3, - 0x00, - 0x22, - 0x03, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x69, - 0x0E, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x34, - 0x15, - 0x00, - 0x00, - 0x05, - 0x69, - 0x57, - 0x00, - 0x00, - 0x1E, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x1D, - 0x1E, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x54, - 0x05, - 0x38, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x2D, - 0x1E, - 0xA3, - 0x05, - 0x00, - 0x00, - 0x00, - 0x27, - 0x1E, - 0xA1, - 0x00, - 0x00, - 0x1A, - 0x26, - 0x5E, - 0x03, - 0x58, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x03, - 0x79, - 0x00, - 0xA3, - 0x13, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x89, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x67, - 0x67, - 0x00, - 0x39, - 0x66, - 0x19, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x03, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x03, - 0x36, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x3A, - 0x63, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x14, - 0x00, - 0x1E, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x00, - 0x22, - 0x55, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x03, - 0x57, - 0x00, - 0x15, - 0x03, - 0x58, - 0x00, - 0x37, - 0x53, - 0x03, - 0x03, - 0xA4, - 0x07, - 0x00, - 0xAC, - 0x03, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x03, - 0x19, - 0xAE, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x13, - 0x00, - 0x00, - 0x65, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x38, - 0x82, - 0x07, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x1E, - 0x9B, - 0x05, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x15, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x07, - 0xE0, - 0xA2, - 0x2E, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xA1, - 0xA2, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x03, - 0x62, - 0x03, - 0x52, - 0x03, - 0x52, - 0x51, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x15, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0xE0, - 0x3A, - 0x19, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0xBB, - 0x05, - 0xA9, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x03, - 0x25, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0xAE, - 0x00, - 0xA2, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0xAE, - 0x03, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x03, - 0x39, - 0x00, - 0x00, - 0x46, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x03, - 0xA1, - 0x66, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x87, - 0x00, - 0x00, - 0x00, - 0x62, - 0x03, - 0x22, - 0x00, - 0x00, - 0x00, - 0x22, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x69, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1E, - 0xA4, - 0x00, - 0x72, - 0x03, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x89, - 0xA4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA3, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0x41, - 0x00, - 0x88, - 0x7A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x25, - 0x41, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x1D, - 0x00, - 0x00, - 0x34, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0x67, - 0x9B, - 0x33, - 0x31, - 0x00, - 0x00, - 0x51, - 0x03, - 0xAE, - 0x00, - 0x57, - 0x03, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE0, - 0x34, - 0x0B, - 0x00, - 0x00, - 0x79, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x26, - 0x03, - 0x1D, - 0x04, - 0x00, - 0x16, - 0x13, - 0x67, - 0x0E, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0xA6, - 0x00, - 0xAC, - 0x03, - 0x1D, - 0x05, - 0x00, - 0x00, - 0x00, - 0x19, - 0x82, - 0x13, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0xAE, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x4A, - 0x00, - 0x40, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x51, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x24, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x33, - 0x88, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1E, - 0x15, - 0x00, - 0x9B, - 0x7A, - 0x0E, - 0x00, - 0x00, - 0x0E, - 0xAF, - 0x9B, - 0x00, - 0x19, - 0x1E, - 0x88, - 0x07, - 0x00, - 0x00, - 0x00, - 0x79, - 0x1E, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x07, - 0xA9, - 0x1E, - 0x21, - 0x00, - 0x05, - 0xA1, - 0x03, - 0x72, - 0x0E, - 0x00, - 0x07, - 0x37, - 0x00, - 0x04, - 0x57, - 0x1E, - 0x9C, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x55, - 0x54, - 0x46, - 0x67, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x80, - 0xA3, - 0x00, - 0x00, - 0x0E, - 0x67, - 0x03, - 0x68, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0x7A, - 0x1E, - 0x27, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x4B, - 0x69, - 0x7A, - 0x21, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x88, - 0x03, - 0x53, - 0x21, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x22, - 0x03, - 0x5C, - 0x17, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x13, - 0x67, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x5C, - 0x5E, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x77, - 0xA1, - 0x03, - 0x52, - 0x03, - 0x65, - 0x13, - 0x9B, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x05, - 0x1D, - 0x03, - 0x22, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0xAF, - 0x1E, - 0x1A, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x41, - 0x03, - 0x7B, - 0x00, - 0x37, - 0x67, - 0x03, - 0x52, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x22, - 0x03, - 0x9B, - 0x07, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x38, - 0x66, - 0x07, - 0x00, - 0x53, - 0x1E, - 0x91, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x62, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0xCD, - 0x33, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x77, - 0xA9, - 0x00, - 0x37, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x91, - 0x03, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x72, - 0x00, - 0x00, - 0x07, - 0x38, - 0xC5, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x82, - 0x34, - 0x0B, - 0x00, - 0x00, - 0x40, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x38, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x2B, - 0x14, - 0x13, - 0x8F, - 0x21, - 0x00, - 0x2D, - 0x03, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x03, - 0xA1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xBB, - 0x03, - 0x39, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xA3, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0x34, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x00, - 0x00, - 0x00, - 0x34, - 0x45, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x25, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x0E, - 0x03, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x23, - 0x82, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x67, - 0x00, - 0x00, - 0x4B, - 0x03, - 0xE5, - 0x31, - 0x07, - 0x45, - 0x03, - 0x26, - 0x62, - 0x1E, - 0x34, - 0x45, - 0x22, - 0x1E, - 0x35, - 0x04, - 0x00, - 0x0E, - 0x69, - 0x22, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x03, - 0x67, - 0x23, - 0x52, - 0x1E, - 0x34, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x58, - 0x1E, - 0x67, - 0x51, - 0x03, - 0x89, - 0x37, - 0x00, - 0x00, - 0x00, - 0x19, - 0x62, - 0x5E, - 0x1E, - 0x6E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x13, - 0x04, - 0x00, - 0x22, - 0x03, - 0x34, - 0x15, - 0x23, - 0x1D, - 0x1E, - 0x1E, - 0x62, - 0x00, - 0x1A, - 0x57, - 0x57, - 0x03, - 0x52, - 0x05, - 0xA6, - 0x03, - 0x35, - 0x45, - 0x45, - 0x46, - 0x03, - 0xA1, - 0x05, - 0x00, - 0x00, - 0xA1, - 0x03, - 0xA1, - 0x23, - 0x1D, - 0x5E, - 0x67, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x87, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x21, - 0x03, - 0xA6, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x9C, - 0xA2, - 0x00, - 0x62, - 0x1E, - 0x34, - 0xBB, - 0x15, - 0x38, - 0x5E, - 0x87, - 0x00, - 0x00, - 0xAE, - 0x03, - 0xAF, - 0x72, - 0x23, - 0x81, - 0x03, - 0x9C, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x8F, - 0x03, - 0xA3, - 0x23, - 0x15, - 0x38, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE5, - 0x5E, - 0x13, - 0x53, - 0x45, - 0x23, - 0x22, - 0x82, - 0x03, - 0xA3, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x1E, - 0x03, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x45, - 0xA6, - 0x13, - 0x3A, - 0x91, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xA1, - 0x03, - 0x3A, - 0xA1, - 0xE5, - 0x23, - 0x54, - 0x67, - 0x03, - 0x34, - 0x36, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x68, - 0xA3, - 0x3A, - 0x03, - 0xA4, - 0x14, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x6E, - 0x03, - 0x46, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x05, - 0x00, - 0x00, - 0x07, - 0x1D, - 0x03, - 0x5E, - 0x88, - 0x72, - 0x23, - 0xBB, - 0xA3, - 0x55, - 0x1E, - 0x45, - 0x05, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0xA1, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x03, - 0x03, - 0x52, - 0x03, - 0x03, - 0x1E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x05, - 0x23, - 0x1E, - 0x1E, - 0x5C, - 0x15, - 0x23, - 0x54, - 0x34, - 0x03, - 0x34, - 0x16, - 0x00, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0xBB, - 0xA6, - 0x82, - 0x03, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x25, - 0x03, - 0x55, - 0xA4, - 0x15, - 0x23, - 0x15, - 0xA4, - 0x55, - 0x03, - 0x22, - 0x07, - 0x00, - 0x00, - 0x03, - 0x46, - 0x57, - 0x57, - 0x23, - 0x68, - 0x88, - 0x03, - 0xA2, - 0x16, - 0x00, - 0x00, - 0x2E, - 0x33, - 0x3A, - 0x52, - 0x23, - 0xA4, - 0x03, - 0xA1, - 0x00, - 0x57, - 0x57, - 0x57, - 0x46, - 0x03, - 0x57, - 0x57, - 0x57, - 0x57, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x40, - 0x03, - 0x15, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x72, - 0x03, - 0x19, - 0x51, - 0x03, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x77, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0xE0, - 0x00, - 0x00, - 0x68, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x03, - 0x15, - 0x00, - 0x00, - 0x53, - 0x69, - 0x37, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x03, - 0x1A, - 0x00, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x57, - 0x23, - 0x5E, - 0x33, - 0x00, - 0x79, - 0x1E, - 0x3A, - 0x00, - 0x52, - 0xAF, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x03, - 0xA1, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x5E, - 0x1E, - 0x3A, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0xA1, - 0x03, - 0x24, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4A, - 0x03, - 0x9B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCD, - 0x1E, - 0x15, - 0x14, - 0x03, - 0x52, - 0x16, - 0xA3, - 0x03, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x79, - 0x03, - 0x18, - 0x00, - 0x00, - 0x4B, - 0x55, - 0x05, - 0x00, - 0x05, - 0x68, - 0x03, - 0x03, - 0x03, - 0x55, - 0x45, - 0x00, - 0x00, - 0x16, - 0x89, - 0x55, - 0x77, - 0x52, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x52, - 0x1E, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x35, - 0x1E, - 0x77, - 0x1D, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x1D, - 0xAE, - 0x26, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD8, - 0x15, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x03, - 0x79, - 0x00, - 0x00, - 0x39, - 0xA4, - 0x13, - 0x1E, - 0x38, - 0x22, - 0x19, - 0x00, - 0x00, - 0x65, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0xAE, - 0xCD, - 0x69, - 0x3A, - 0x35, - 0x58, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x45, - 0x38, - 0x5E, - 0x82, - 0x54, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA2, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA6, - 0x1E, - 0x19, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0xB1, - 0xA4, - 0x3A, - 0x3A, - 0x88, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x65, - 0x13, - 0x1E, - 0xE0, - 0xBB, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x52, - 0x33, - 0x03, - 0xA2, - 0x41, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x15, - 0x67, - 0x3A, - 0x1E, - 0x38, - 0x25, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x03, - 0xA2, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x69, - 0x34, - 0x22, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x22, - 0x34, - 0x1E, - 0x03, - 0x82, - 0xA3, - 0x26, - 0x04, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x33, - 0x35, - 0x54, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1D, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xA6, - 0x7A, - 0x1E, - 0x5E, - 0x66, - 0x89, - 0x45, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x23, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x03, - 0x52, - 0x03, - 0x03, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x45, - 0x46, - 0x3A, - 0x03, - 0x66, - 0xA3, - 0x26, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x34, - 0xA1, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x52, - 0x67, - 0x69, - 0x03, - 0x3A, - 0x67, - 0x68, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x77, - 0x46, - 0xBB, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x1D, - 0x77, - 0x55, - 0xE0, - 0x23, - 0x17, - 0x00, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x54, - 0x03, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x03, - 0x68, - 0xD8, - 0x80, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x03, - 0x21, - 0x27, - 0x03, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x5E, - 0x91, - 0x36, - 0x03, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x34, - 0x67, - 0x05, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x19, - 0x25, - 0x07, - 0x80, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA1, - 0x87, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0x1E, - 0x82, - 0x26, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC0, - 0x67, - 0x1E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x52, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0xE0, - 0x03, - 0x62, - 0x03, - 0x52, - 0x45, - 0x13, - 0x53, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x03, - 0x65, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x14, - 0x0E, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x4A, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bitmap.h b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bitmap.h deleted file mode 100644 index 6312e4ffc76..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bitmap.h +++ /dev/null @@ -1,151 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_RESOURCES_BITMAP_H_ -#define EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_RESOURCES_BITMAP_H_ - -// bitmaps id -#define arrow_left_bmp 0 -#define arrow_right_bmp 1 -#define check_bmp 2 -#define home_bmp 3 -#define information_bmp 4 -#define integrated_only_small_bmp 5 -#define keypad_large_bmp 6 -#define keypad_bmp 7 -#define key_0_bg_white_bmp 8 -#define key_00_bg_white_bmp 9 -#define key_1_bg_white_bmp 10 -#define key_2_bg_white_bmp 11 -#define key_3_bg_white_bmp 12 -#define key_4_bg_white_bmp 13 -#define key_5_bg_white_bmp 14 -#define key_6_bg_white_bmp 15 -#define key_7_bg_white_bmp 16 -#define key_8_bg_white_bmp 17 -#define key_9_bg_white_bmp 18 -#define key_cancel_bg_white_bmp 19 -#define key_clear_bg_white_bmp 20 -#define key_enter_bg_white_bmp 21 -#define logo_white_bg_white_bmp 22 -#define magstripe_large_bmp 23 -#define magstripe_bmp 24 -#define maxim_integrated_large_bmp 25 -#define maxim_logo_only_small_000_bmp 26 -#define maxim_logo_only_small_001_bmp 27 -#define maxim_logo_only_small_002_bmp 28 -#define maxim_logo_only_small_003_bmp 29 -#define maxim_logo_only_small_004_bmp 30 -#define maxim_logo_only_small_005_bmp 31 -#define maxim_logo_only_small_006_bmp 32 -#define maxim_logo_only_small_007_bmp 33 -#define maxim_logo_only_small_008_bmp 34 -#define maxim_logo_only_small_009_bmp 35 -#define maxim_logo_only_small_010_bmp 36 -#define maxim_logo_only_small_011_bmp 37 -#define maxim_logo_only_small_012_bmp 38 -#define maxim_logo_only_small_013_bmp 39 -#define maxim_logo_only_small_014_bmp 40 -#define maxim_logo_only_small_015_bmp 41 -#define maxim_logo_only_small_016_bmp 42 -#define maxim_logo_only_small_017_bmp 43 -#define maxim_logo_only_small_018_bmp 44 -#define maxim_logo_only_small_019_bmp 45 -#define maxim_logo_only_small_020_bmp 46 -#define maxim_logo_only_small_021_bmp 47 -#define maxim_logo_only_small_022_bmp 48 -#define maxim_logo_only_small_023_bmp 49 -#define maxim_logo_only_small_024_bmp 50 -#define maxim_logo_only_small_025_bmp 51 -#define maxim_logo_only_small_026_bmp 52 -#define maxim_logo_only_small_027_bmp 53 -#define maxim_logo_only_small_028_bmp 54 -#define maxim_logo_only_small_029_bmp 55 -#define maxim_logo_only_small_030_bmp 56 -#define maxim_logo_only_small_031_bmp 57 -#define maxim_logo_only_small_bmp 58 -#define medium_logo_000_bmp 59 -#define medium_logo_001_bmp 60 -#define medium_logo_002_bmp 61 -#define medium_logo_003_bmp 62 -#define medium_logo_004_bmp 63 -#define medium_logo_005_bmp 64 -#define medium_logo_006_bmp 65 -#define medium_logo_007_bmp 66 -#define medium_logo_008_bmp 67 -#define medium_logo_009_bmp 68 -#define medium_logo_010_bmp 69 -#define medium_logo_011_bmp 70 -#define medium_logo_012_bmp 71 -#define medium_logo_013_bmp 72 -#define medium_logo_014_bmp 73 -#define medium_logo_015_bmp 74 -#define medium_logo_016_bmp 75 -#define medium_logo_017_bmp 76 -#define medium_logo_018_bmp 77 -#define medium_logo_019_bmp 78 -#define medium_logo_020_bmp 79 -#define medium_logo_021_bmp 80 -#define medium_logo_022_bmp 81 -#define medium_logo_023_bmp 82 -#define medium_logo_024_bmp 83 -#define medium_logo_025_bmp 84 -#define medium_logo_026_bmp 85 -#define medium_logo_027_bmp 86 -#define medium_logo_028_bmp 87 -#define medium_logo_029_bmp 88 -#define medium_logo_030_bmp 89 -#define medium_logo_031_bmp 90 -#define medium_logo_032_bmp 91 -#define medium_logo_033_bmp 92 -#define medium_logo_034_bmp 93 -#define medium_logo_035_bmp 94 -#define nfc_large_bmp 95 -#define nfc_bmp 96 -#define slideshow_large_bmp 97 -#define slideshow_bmp 98 -#define smartcard_large_bmp 99 -#define smartcard_bmp 100 -#define mpos_bmp 101 -#define parrot_bmp 102 - -// fonts id -#define urw_gothic_12_white_bg_grey 0 -#define urw_gothic_13_grey_bg_white 1 -#define urw_gothic_16_bleu_bg_grey 2 -#define urw_gothic_16_white_bg_grey 3 - -#endif // EXAMPLES_MAX32572_MAX32572_DEMO_FREERTOS_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/arrow-left.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/arrow-left.bmp deleted file mode 100644 index 8dabbf77a13..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/arrow-left.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/arrow-right.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/arrow-right.bmp deleted file mode 100644 index c6a795f0393..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/arrow-right.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/check.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/check.bmp deleted file mode 100644 index 92a29ff4412..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/check.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/home.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/home.bmp deleted file mode 100644 index a1d1dc036c8..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/home.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/information.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/information.bmp deleted file mode 100644 index 481d276a3e6..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/information.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/integrated-only-small.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/integrated-only-small.bmp deleted file mode 100644 index ce091ed78fb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/integrated-only-small.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_0-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_0-bg_white.bmp deleted file mode 100644 index 94112162413..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_0-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_00-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_00-bg_white.bmp deleted file mode 100644 index ed64f42e65c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_00-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_1-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_1-bg_white.bmp deleted file mode 100644 index 399bb1ca33c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_1-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_2-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_2-bg_white.bmp deleted file mode 100644 index 5c15ca628c3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_2-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_3-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_3-bg_white.bmp deleted file mode 100644 index 747e5400b51..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_3-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_4-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_4-bg_white.bmp deleted file mode 100644 index 7ee8c9f2de3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_4-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_5-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_5-bg_white.bmp deleted file mode 100644 index 5672c282701..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_5-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_6-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_6-bg_white.bmp deleted file mode 100644 index dcf162672cd..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_6-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_7-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_7-bg_white.bmp deleted file mode 100644 index a9edd0c2442..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_7-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_8-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_8-bg_white.bmp deleted file mode 100644 index 6994618efbc..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_8-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_9-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_9-bg_white.bmp deleted file mode 100644 index 82bfb850ffc..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_9-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_cancel-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_cancel-bg_white.bmp deleted file mode 100644 index 11becd098b9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_cancel-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_clear-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_clear-bg_white.bmp deleted file mode 100644 index 8fe4aed2c2f..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_clear-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_enter-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_enter-bg_white.bmp deleted file mode 100644 index aa09594dd50..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/key_enter-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/keypad-large.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/keypad-large.bmp deleted file mode 100644 index c71ce12419d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/keypad-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/keypad.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/keypad.bmp deleted file mode 100644 index d29fdbbc79f..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/keypad.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/logo_white-bg_white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/logo_white-bg_white.bmp deleted file mode 100644 index 43362ab9476..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/logo_white-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/magstripe-large.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/magstripe-large.bmp deleted file mode 100644 index 0bc833ab177..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/magstripe-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/magstripe.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/magstripe.bmp deleted file mode 100644 index 9621569071a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/magstripe.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-integrated-large.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-integrated-large.bmp deleted file mode 100644 index b8455ec9f86..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-integrated-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-000.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-000.bmp deleted file mode 100644 index 88397bdd12b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-000.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-001.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-001.bmp deleted file mode 100644 index 88397bdd12b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-001.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-002.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-002.bmp deleted file mode 100644 index 45a58713f81..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-002.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-003.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-003.bmp deleted file mode 100644 index e5733d5024a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-003.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-004.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-004.bmp deleted file mode 100644 index f89f47033d2..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-004.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-005.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-005.bmp deleted file mode 100644 index 554cffce2c0..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-005.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-006.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-006.bmp deleted file mode 100644 index f2fde0d887c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-006.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-007.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-007.bmp deleted file mode 100644 index cfbaf90fcac..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-007.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-008.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-008.bmp deleted file mode 100644 index 842a1251c89..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-008.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-009.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-009.bmp deleted file mode 100644 index 5006286d1d3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-009.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-010.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-010.bmp deleted file mode 100644 index 38c2aecbac1..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-010.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-011.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-011.bmp deleted file mode 100644 index 519616a2a40..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-011.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-012.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-012.bmp deleted file mode 100644 index a95736ffe4b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-012.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-013.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-013.bmp deleted file mode 100644 index 1158b9d5fe9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-013.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-014.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-014.bmp deleted file mode 100644 index 389df252859..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-014.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-015.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-015.bmp deleted file mode 100644 index 42cab536455..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-015.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-016.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-016.bmp deleted file mode 100644 index 42cab536455..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-016.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-017.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-017.bmp deleted file mode 100644 index 42cab536455..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-017.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-018.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-018.bmp deleted file mode 100644 index 389df252859..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-018.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-019.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-019.bmp deleted file mode 100644 index 1158b9d5fe9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-019.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-020.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-020.bmp deleted file mode 100644 index a95736ffe4b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-020.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-021.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-021.bmp deleted file mode 100644 index 519616a2a40..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-021.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-022.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-022.bmp deleted file mode 100644 index 38c2aecbac1..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-022.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-023.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-023.bmp deleted file mode 100644 index 5006286d1d3..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-023.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-024.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-024.bmp deleted file mode 100644 index 842a1251c89..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-024.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-025.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-025.bmp deleted file mode 100644 index cfbaf90fcac..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-025.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-026.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-026.bmp deleted file mode 100644 index f2fde0d887c..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-026.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-027.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-027.bmp deleted file mode 100644 index 554cffce2c0..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-027.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-028.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-028.bmp deleted file mode 100644 index f89f47033d2..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-028.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-029.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-029.bmp deleted file mode 100644 index e5733d5024a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-029.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-030.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-030.bmp deleted file mode 100644 index 45a58713f81..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-030.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-031.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-031.bmp deleted file mode 100644 index 88397bdd12b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small-031.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small.bmp deleted file mode 100644 index 609c71fac5e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/maxim-logo-only-small.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-000.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-000.bmp deleted file mode 100644 index aba0232ed4d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-000.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-001.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-001.bmp deleted file mode 100644 index e788197b8ea..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-001.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-002.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-002.bmp deleted file mode 100644 index 5210a096dae..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-002.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-003.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-003.bmp deleted file mode 100644 index f263afd1398..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-003.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-004.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-004.bmp deleted file mode 100644 index 73a4f821bdb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-004.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-005.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-005.bmp deleted file mode 100644 index b88c4a21e5e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-005.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-006.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-006.bmp deleted file mode 100644 index 077a0aed8df..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-006.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-007.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-007.bmp deleted file mode 100644 index 8e84d4fe492..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-007.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-008.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-008.bmp deleted file mode 100644 index a58c831a639..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-008.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-009.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-009.bmp deleted file mode 100644 index 000fa364bcf..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-009.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-010.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-010.bmp deleted file mode 100644 index 632b469c7a9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-010.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-011.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-011.bmp deleted file mode 100644 index df943505e10..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-011.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-012.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-012.bmp deleted file mode 100644 index d8ab0309254..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-012.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-013.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-013.bmp deleted file mode 100644 index 9b968c122d7..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-013.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-014.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-014.bmp deleted file mode 100644 index fa9f81498f8..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-014.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-015.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-015.bmp deleted file mode 100644 index 4bf3908aecb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-015.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-016.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-016.bmp deleted file mode 100644 index 3b2929bd4fe..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-016.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-017.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-017.bmp deleted file mode 100644 index 69763a2127d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-017.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-018.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-018.bmp deleted file mode 100644 index dabd403fb05..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-018.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-019.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-019.bmp deleted file mode 100644 index 69763a2127d..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-019.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-020.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-020.bmp deleted file mode 100644 index 3b2929bd4fe..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-020.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-021.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-021.bmp deleted file mode 100644 index 4bf3908aecb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-021.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-022.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-022.bmp deleted file mode 100644 index fa9f81498f8..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-022.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-023.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-023.bmp deleted file mode 100644 index 9b968c122d7..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-023.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-024.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-024.bmp deleted file mode 100644 index d8ab0309254..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-024.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-025.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-025.bmp deleted file mode 100644 index df943505e10..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-025.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-026.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-026.bmp deleted file mode 100644 index 632b469c7a9..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-026.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-027.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-027.bmp deleted file mode 100644 index 000fa364bcf..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-027.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-028.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-028.bmp deleted file mode 100644 index a58c831a639..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-028.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-029.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-029.bmp deleted file mode 100644 index 8e84d4fe492..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-029.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-030.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-030.bmp deleted file mode 100644 index 077a0aed8df..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-030.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-031.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-031.bmp deleted file mode 100644 index b88c4a21e5e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-031.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-032.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-032.bmp deleted file mode 100644 index 73a4f821bdb..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-032.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-033.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-033.bmp deleted file mode 100644 index f263afd1398..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-033.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-034.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-034.bmp deleted file mode 100644 index 5210a096dae..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-034.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-035.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-035.bmp deleted file mode 100644 index e788197b8ea..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/medium-logo-035.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/nfc-large.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/nfc-large.bmp deleted file mode 100644 index 096a5f4f76b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/nfc-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/nfc.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/nfc.bmp deleted file mode 100644 index 0a64d7a376b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/nfc.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/slideshow-large.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/slideshow-large.bmp deleted file mode 100644 index 3be008b4db6..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/slideshow-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/slideshow.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/slideshow.bmp deleted file mode 100644 index 4201b3cff2b..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/slideshow.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/smartcard-large.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/smartcard-large.bmp deleted file mode 100644 index db3389a5d83..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/smartcard-large.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/smartcard.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/smartcard.bmp deleted file mode 100644 index 6780a837b48..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_rle/smartcard.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_slides/mpos.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_slides/mpos.bmp deleted file mode 100644 index 11983171e7e..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_slides/mpos.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_slides/parrot.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_slides/parrot.bmp deleted file mode 100644 index e946a206329..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/bmp_slides/parrot.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_12-white_bg-grey.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_12-white_bg-grey.bmp deleted file mode 100644 index 83a10d4604a..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_12-white_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_12-white_bg-grey.mff b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_12-white_bg-grey.mff deleted file mode 100644 index e50ef9bf446..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_12-white_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_13-grey_bg-white.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_13-grey_bg-white.bmp deleted file mode 100644 index 9030c466136..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_13-grey_bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_13-grey_bg-white.mff b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_13-grey_bg-white.mff deleted file mode 100644 index d854b3a9fe5..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_13-grey_bg-white.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-bleu_bg-grey.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-bleu_bg-grey.bmp deleted file mode 100644 index 18c544b4804..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-bleu_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-bleu_bg-grey.mff b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-bleu_bg-grey.mff deleted file mode 100644 index 58f915fabec..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-bleu_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-white_bg-grey.bmp b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-white_bg-grey.bmp deleted file mode 100644 index 2d4f9653c35..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-white_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-white_bg-grey.mff b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-white_bg-grey.mff deleted file mode 100644 index 58f915fabec..00000000000 Binary files a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/resources/fonts/urw_gothic_16-white_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/ST8034.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/ST8034.c deleted file mode 100644 index e3281ac9a41..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/ST8034.c +++ /dev/null @@ -1,535 +0,0 @@ -/* - * ST8034.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include "mxc_device.h" -#include "mxc_delay.h" -#include "sc.h" -#include "gpio.h" - -#include "MAX325xx_bypass_afe.h" -#include "sc_errors.h" -#include "sc_states.h" -#include "sc_config.h" -#include "sc_regs.h" -#include "iccabstract.h" -#include "OSWrapper.h" -#include "MAX325xx_afe.h" -#include "MAX325xx_afe_private.h" -#include "MAX325xx_uart.h" -#include "MAX325xx_uart_private.h" -#include "slot.h" - -#include "demo_config.h" - -/**** NOTE: this AFE driver is intented to be connected on bypass mode ****/ -extern mxc_sc_context_t sc_context; - -#define MAX325XX_EVKIT_EXT_AFE_PORT (MXC_GPIO0) /* Port 0 */ - -#define MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN (MXC_GPIO_PIN_21) /* CMDVCC pin mask */ -#define MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS (21) /* CMDVCC pin pos */ -#define MAX325XX_EVKIT_EXT_AFE_OFF_PIN (MXC_GPIO_PIN_23) /* OFF pin mask */ -#define MAX325XX_EVKIT_EXT_AFE_OFF_POS (23) /* OFF pin pos */ -#define MAX325XX_EVKIT_EXT_AFE_5V3V_PIN (MXC_GPIO_PIN_22) /* 5V3V pin mask */ -#define MAX325XX_EVKIT_EXT_AFE_5V3V_POS (22) /* 5V3V pin pos */ - -#define MAX325XX_EVKIT_EXT_AFE_OFFLINE (1) /* when CMDVCC = 1, SAM is off */ -#define MAX325XX_EVKIT_EXT_AFE_CARD_ABSENT (0) /* OFF pin is low when no card */ - -#define ST8034_NOT_SELECTED (0) -#define ST8034_SELECTED (1) - -#if SMARTCARD_EXT_AFE_Voltage == SMARTCARD_EXT_AFE_5V -#define MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE (1) // Means configure sc gpio to 5V -#else -#define MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE (0) // Means configure sc gpio to 3V -#endif - -static IccVoltage_t icc_voltage = VCC_5V; - -IccReturn_t bypassSelect(SlotContext_t *SlotCtx, boolean_t Selected) -{ - //uint32_t ChipSelect = ST8034_NOT_SELECTED; - SCControl_t sccr = { .word = 0 }; /* control register value */ - UartState_t *UartState = NULL; - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == UartState->UartAddress)) { - return ICC_ERR_NULL_PTR; - } - - /* check if the requested slot is available on our target */ - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - sccr.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR; - -#if !defined(__MAX32590) && !defined(__MAX32591) && !defined(__MAX32565) && !defined(__MAX32572) -#if defined(__MAX32510) - /* Always select bypass AFE, since there is no internal. - * Otherwise, clock is getting lost after RX and Test Suite fails. - */ - sccr.bits.BYP_PHY = 1; -#else - if (bTRUE == Selected) { - //ChipSelect = ST8034_SELECTED; - sccr.bits.BYP_PHY = 1; - } else { - //ChipSelect = ST8034_NOT_SELECTED; - sccr.bits.BYP_PHY = 0; - } -#endif -#endif - sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR = sccr.word; - MXC_Delay(2); - - UartState->ActiveSlot = SlotCtx->SlotId; - - return ICC_OK; -} - -IccReturn_t bypassSetVoltage(SlotContext_t *SlotCtx, IccVoltage_t Voltage) -{ - uint32_t CurrentVoltage = 0; - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - /* check if the card is already powered */ - CurrentVoltage = - MXC_GPIO_OutGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN) >> - MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS; - - if (MAX325XX_EVKIT_EXT_AFE_OFFLINE != CurrentVoltage) { - /* if the card is already powered, we cannot change the voltage ! */ - return ICC_ERR_POWERED; - } - - switch (Voltage) { - case VCC_5V: - case VCC_3V: - case VCC_1V8: - icc_voltage = Voltage; - break; - - default: - return ICC_ERR_BAD_PARAMETER; - } - - return ICC_OK; -} - -IccReturn_t bypassApplyVoltage(SlotContext_t *SlotCtx) -{ - uint32_t CurrentVoltage = 0; - - if (NULL == SlotCtx) - return ICC_ERR_NULL_PTR; - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) - return ICC_ERR_BAD_SLOT; - - /* check if the card is already powered */ - CurrentVoltage = - MXC_GPIO_OutGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN) >> - MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS; - - if (MAX325XX_EVKIT_EXT_AFE_OFFLINE != CurrentVoltage) { - /* if the card is already powered, we cannot change the voltage ! */ - return ICC_ERR_POWERED; - } - - switch (icc_voltage) { - case VCC_5V: - case VCC_3V: - case VCC_1V8: - CurrentVoltage = 0; - break; - - default: - return ICC_ERR_BAD_PARAMETER; - } - - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN, - (CurrentVoltage << MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS)); - //MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_OFF_PIN, (0 << MAX325XX_EVKIT_EXT_AFE_OFF_POS)); - - return ICC_OK; -} - -IccReturn_t bypassPower(SlotContext_t *SlotCtx, CardPowerState_t PowerUp) -{ - IccReturn_t retval = ICC_OK; - SCPin_t scpin = { .word = 0 }; - UartData_t *UartData = NULL; - UartState_t *UartState = NULL; - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - UartData = SlotCtx->UartData; - if (NULL == UartData) { - return ICC_ERR_NULL_PTR; - } - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == UartState->UartAddress)) { - return ICC_ERR_NULL_PTR; - } - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - switch (PowerUp) { - case POWER_DOWN: - scpin.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN; - scpin.bits.CRDRST = RESET_ACTIVE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - - /* - * wait CWT to help the test tool - * (if we deactivate too fast, the Lab test tool crashes) - */ - IccWait(SlotCtx, SlotCtx->IccProtocolConfig.IccCharWaitingTime); - - /* set CMDVCC input to be high to keep card power down */ - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN, - (MAX325XX_EVKIT_EXT_AFE_OFFLINE << MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS)); - break; - - case POWER_UP: - /* - * here we do not set the isPowering flag, - * this will be done when we release the RST signal - */ - retval = bypassApplyVoltage(SlotCtx); - if (ICC_OK != retval) { - return retval; - } - break; - - case RESET_DO: - scpin.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN; - scpin.bits.CRDRST = RESET_ACTIVE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - break; - - case RESET_RELEASE: - /* Set the Powering bit - * this will indicates to the UART driver that the next - * data are the ATR - */ - SlotCtx->isPoweringUp = bTRUE; - - scpin.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN; - scpin.bits.CRDRST = !RESET_ACTIVE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - break; - - default: - return ICC_ERR_BAD_PARAMETER; - } - - return ICC_OK; -} - -/** @fn teridian_73S8009rInterrupt_Handler - * @brief Manage PHY Interrupts - * - */ -void bypassInterrupt_Handler(void *param) -{ - (void)(param); - return; -} - -/** @fn AfeEnable IRQ - * @brief enable or disable AFE interrupts - * @param [in] SlotId slot number, cf #MAX325xxSlots_t - * - * @return return an #IccReturn_t error code - * @retval ICC_OK if the AFE is now selected (enabled) - * - */ -IccReturn_t bypassEnableIrq(SlotContext_t *SlotCtx, int32_t enable) -{ - (void)enable; - - UartState_t *UartState = NULL; - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == (void *)UartState->UartAddress) || (NULL == SlotCtx) || - (NULL == SlotCtx->UartData)) { - return ICC_ERR_NULL_PTR; - } - - return ICC_OK; -} - -/** @fn teridian_73S8009rGetCardStatus - * @brief Return the slot state - * @param [in] SlotCtx AFE slot configuration context pointer (cf #SlotContext_t) - * - * @return return an #IccReturn_t error code - * @retval ICC_OK if the card is inserted and powered. - * @retval ICC_ERR_REMOVED if the card is not present. - * @retval ICC_ERR_PRESENT_INACTIVE if the card is present but not powered. - * - */ -IccReturn_t bypassGetCardStatus(SlotContext_t *SlotCtx) -{ - uint32_t PinValue = 0; - - if (NULL == SlotCtx) - return ICC_ERR_NULL_PTR; - - if ((SlotCtx->SlotId != SCI_0_BYPASS_SLOT) && (SlotCtx->SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - // Read OFF PIN - PinValue = MXC_GPIO_InGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_OFF_PIN) >> - MAX325XX_EVKIT_EXT_AFE_OFF_POS; - - /* Is a card present in the slot ? */ - if (MAX325XX_EVKIT_EXT_AFE_CARD_ABSENT == PinValue) { - return ICC_ERR_REMOVED; - } - - /* check if the card is powered */ - PinValue = MXC_GPIO_OutGet(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN) >> - MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS; - - /* SAM present but not powered */ - if (MAX325XX_EVKIT_EXT_AFE_OFFLINE == PinValue) { - return ICC_ERR_PRESENT_INACTIVE; - } - - /* SAM present and powered */ - return ICC_OK; -} - -/** @var bypass_AfeOps - * @brief Analog Front End supported operations - */ -static const SlotOps_t bypass_AfeOps = { - .select = bypassSelect, - .setvoltage = bypassSetVoltage, - .power = bypassPower, - .getcardstatus = bypassGetCardStatus, - .enableinterrupt = bypassEnableIrq, -}; - -/** @fn teridian_73S8009rInit - * @brief Initialize the Analog Front End for the SAM slot - * - * @return return an #IccReturn_t error code - * @retval ICC_OK if the AFE is now selected (enabled) - * - * @note The AFE init must be done *AFTER* the UART init. - * @note As this driver is only for bare-metal, we can directly access to - * the GPIOs to configure/drive/ - */ -IccReturn_t bypassInit(UartId_t UartId, MAX325xxSlots_t SlotId) -{ - SlotContext_t *SlotCtx = NULL; - SCPin_t scpin = { .word = 0 }; - SCControl_t sccr = { .word = 0 }; - mxc_gpio_cfg_t config; - UartState_t *UartState = NULL; - - if (UartId >= MAX325xx_INTERFACE_NUMBER) { - return ICC_ERR_BAD_INTERFACE; - } - - if ((SlotId != SCI_0_BYPASS_SLOT) && (SlotId != SCI_1_BYPASS_SLOT)) { - return ICC_ERR_BAD_SLOT; - } - - SlotCtx = IccRegisterAfe(SlotId, UartId, (SlotOps_t *)&bypass_AfeOps, NULL); - - if (NULL == SlotCtx) { - return ICC_ERR_NULL_PTR; - } - - UartState = (UartState_t *)(SlotCtx->UartData->PrivateData); - if ((NULL == UartState) || (NULL == UartState->UartAddress)) { - return ICC_ERR_NULL_PTR; - } - - /* set the DUAL MODE bit and select the on-chip PHY*/ - sccr.word = sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR; -#if !defined(__MAX32590) && !defined(__MAX32591) && !defined(__MAX32565) && !defined(__MAX32572) - sccr.bits.DUAL_MODE = 1; - sccr.bits.BYP_PHY = 1; -#endif - sc_context.sc[SlotCtx->UartId].reg_sc->SC_CR = sccr.word; - MXC_Delay(2); - - scpin.bits.CLKSEL = bTRUE; - scpin.bits.CRDC4 = bTRUE; - scpin.bits.CRDC8 = bTRUE; - sc_context.sc[SlotCtx->UartId].reg_sc->SC_PN = scpin.word; - MXC_Delay(2); - - /* Initialize CMDVCC */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_OUT; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* deactivate the card */ - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_CMDVCC_PIN, - (MAX325XX_EVKIT_EXT_AFE_OFFLINE << MAX325XX_EVKIT_EXT_AFE_CMDVCC_POS)); - - /* Initialize OFF */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_OFF_PIN; - config.pad = MXC_GPIO_PAD_PULL_UP; - config.func = MXC_GPIO_FUNC_IN; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* Configure GPIO pin corresponding to the correct smart card interfaces(SC0 or SC1) */ - switch (UartId) { - case SCI_0: - /* Initialize GPIOs */ - /* Out - SC UART GPIOs ***************************************************/ - /* RST */ - config.port = MAX325xx_SC0_BYP_RST_PORT; - config.mask = MAX325xx_SC0_BYP_RST; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* CLK */ - config.port = MAX325xx_SC0_BYP_CLK_PORT; - config.mask = MAX325xx_SC0_BYP_CLK; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* In - SC UART GPIOs ***************************************************/ - /* IO */ - config.port = MAX325xx_SC0_BYP_IO_PORT; - config.mask = MAX325xx_SC0_BYP_IO; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* 5V3V_PIN */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_5V3V_PIN; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_OUT; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_5V3V_PIN, - (MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE << MAX325XX_EVKIT_EXT_AFE_5V3V_POS)); - break; -#if defined(__MAX32552) || defined(__MAX32560) || defined(__MAX32565) || defined(__MAX32572) - case SCI_1: - /* Initialize GPIOs */ - /* Out - SC UART GPIOs ***************************************************/ - /* RST */ - config.port = MAX325xx_SC1_BYP_RST_PORT; - config.mask = MAX325xx_SC1_BYP_RST; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* CLK */ - config.port = MAX325xx_SC1_BYP_CLK_PORT; - config.mask = MAX325xx_SC1_BYP_CLK; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* In - SC UART GPIOs ***************************************************/ - /* IO */ - config.port = MAX325xx_SC1_BYP_IO_PORT; - config.mask = MAX325xx_SC1_BYP_IO; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_ALT1; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - /* 5V3V_PIN */ - config.port = MAX325XX_EVKIT_EXT_AFE_PORT; - config.mask = MAX325XX_EVKIT_EXT_AFE_5V3V_PIN; - config.pad = MXC_GPIO_PAD_NONE; - config.func = MXC_GPIO_FUNC_OUT; - config.vssel = MXC_GPIO_VSSEL_VDDIOH; - MXC_GPIO_Config(&config); - - MXC_GPIO_OutPut(MAX325XX_EVKIT_EXT_AFE_PORT, MAX325XX_EVKIT_EXT_AFE_5V3V_PIN, - (MAX325XX_EVKIT_EXT_AFE_5V3V_VALUE << MAX325XX_EVKIT_EXT_AFE_5V3V_POS)); -#endif - } - - SlotCtx->isCardInserted = bTRUE; - - /* Enable AFE interrupt */ - bypassEnableIrq(SlotCtx, bTRUE); - - return ICC_OK; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/msr/msr_sdma.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/msr/msr_sdma.c deleted file mode 100644 index 1cc4da0a080..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/msr/msr_sdma.c +++ /dev/null @@ -1,764 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".msr_sdma_code"))) volatile unsigned char msr_sdma_code[] = { - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x08, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x0B, 0x00, 0x0B, 0x11, 0x0B, 0x9F, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x0B, 0x00, 0x0B, 0x11, 0x0B, 0xA8, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x0B, 0x00, 0x0B, 0xA0, 0x0B, 0x00, 0x1D, 0x07, 0xD8, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, - 0x43, 0x3F, 0x64, 0x0B, 0x61, 0x6D, 0x01, 0x7D, 0x00, 0x1F, 0xFE, 0x4D, 0xFD, 0x5D, 0x20, 0x0B, - 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x3F, 0x04, 0x0B, 0x94, 0x6D, 0x01, 0x7D, 0x00, 0x1F, 0xFE, 0x4D, - 0xFD, 0x5D, 0x07, 0x08, 0x88, 0xF9, 0x02, 0x0B, 0x00, 0x2A, 0x00, 0x2B, 0x79, 0x88, 0x00, 0x18, - 0x00, 0x30, 0xB7, 0x0B, 0x1B, 0x00, 0x02, 0x0B, 0x06, 0x20, 0x10, 0x0B, 0x00, 0x0B, 0x01, 0x6B, - 0x08, 0x01, 0x00, 0x6B, 0x20, 0x11, 0x00, 0x6B, 0x01, 0x21, 0x87, 0xD8, 0x2C, 0x0C, 0x21, 0x02, - 0x79, 0x92, 0x69, 0xA2, 0x3A, 0xDA, 0x32, 0xF9, 0x0D, 0x8C, 0x79, 0x8D, 0x40, 0x0B, 0x04, 0x0B, - 0x20, 0x0B, 0x08, 0x3F, 0x9F, 0xF7, 0xFA, 0x2C, 0x40, 0x0B, 0x04, 0x0B, 0x20, 0x0B, 0x1C, 0x3F, - 0x0D, 0x8F, 0x0D, 0x8C, 0x0F, 0x8A, 0x0D, 0x8C, 0x8F, 0x8A, 0x0D, 0x8C, 0x9F, 0x8A, 0x0D, 0x8C, - 0x18, 0x8D, 0x07, 0x18, 0x6F, 0x8A, 0x00, 0x18, 0x6F, 0x8A, 0x0D, 0x98, 0x0D, 0x8C, 0x07, 0xD8, - 0x0D, 0x8C, 0x87, 0xD8, 0x0D, 0x8C, 0x01, 0x60, 0x0D, 0x8C, 0x01, 0x2B, 0x00, 0x50, 0x0D, 0x8C, - 0x00, 0x2B, 0x87, 0xD0, 0x0D, 0x8C, 0x0D, 0x3D, 0xF6, 0x3D, 0x09, 0x0C, 0x10, 0x0B, 0x00, 0x0B, - 0x14, 0x0B, 0xDD, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x8A, 0x3D, 0xEC, 0x3D, 0xF6, 0x0C, - 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x98, 0x79, 0x79, 0xA9, - 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x3F, 0x01, 0x0B, 0x00, 0x0B, 0x01, 0x6F, 0x20, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x04, 0x3F, 0xFF, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x08, 0x3F, - 0x6F, 0xF9, 0x8F, 0x0B, 0x0D, 0x0B, 0x18, 0x69, 0xAA, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x24, 0x3F, 0x79, 0xEF, 0x08, 0x79, 0x02, 0x78, 0x0A, 0x3C, 0x08, 0x78, 0x0A, 0x3C, 0x20, 0x78, - 0x0A, 0x3C, 0x80, 0x78, 0x0A, 0x3C, 0x02, 0x0B, 0x00, 0x78, 0x09, 0x3C, 0x02, 0x0C, 0x01, 0x39, - 0x08, 0x0C, 0x02, 0x39, 0x06, 0x0C, 0x03, 0x39, 0x04, 0x0C, 0x04, 0x39, 0x02, 0x0C, 0x05, 0x39, - 0x00, 0x0C, 0x39, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, 0x48, 0x3D, 0x29, 0x8E, 0x07, 0x3E, - 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x79, 0xB9, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x06, 0x3E, - 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, - 0x05, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, - 0x29, 0x8E, 0x04, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, - 0x2A, 0x8A, 0x29, 0x8E, 0x03, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, - 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, - 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x01, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, - 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0xBF, 0x1F, 0xF9, 0x30, 0x5A, 0x03, 0x1A, - 0x03, 0x08, 0x79, 0xAA, 0x6A, 0x8A, 0x6A, 0x8A, 0x0B, 0x2A, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, - 0x00, 0x3F, 0x39, 0xEF, 0x05, 0x79, 0x03, 0x78, 0x0F, 0x3C, 0x04, 0x78, 0x11, 0x3C, 0x05, 0x78, - 0x0D, 0x3C, 0x08, 0x78, 0x0F, 0x3C, 0x10, 0x78, 0x0F, 0x3C, 0x20, 0x78, 0x0F, 0x3C, 0x40, 0x78, - 0x0F, 0x3C, 0x80, 0x78, 0x0F, 0x3C, 0x00, 0x0C, 0x00, 0x39, 0x0E, 0x0C, 0x01, 0x39, 0x0C, 0x0C, - 0x02, 0x39, 0x0A, 0x0C, 0x03, 0x39, 0x08, 0x0C, 0x04, 0x39, 0x06, 0x0C, 0x05, 0x39, 0x04, 0x0C, - 0x06, 0x39, 0x02, 0x0C, 0x07, 0x39, 0x00, 0x0C, 0x39, 0xF9, 0x6A, 0x8A, 0x6A, 0x8A, 0x07, 0x0B, - 0x00, 0x1A, 0x70, 0x4A, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x79, 0xEF, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x2B, 0x00, 0x0A, - 0x79, 0xFF, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x07, 0x2A, 0x79, 0xFF, - 0x40, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x00, 0x3F, 0x01, 0x6F, 0x40, 0x0B, 0x00, 0x0B, 0x04, 0x0B, - 0x28, 0x3F, 0x9F, 0xF9, 0x15, 0x0B, 0x00, 0x0B, 0x00, 0x2A, 0x79, 0xFF, 0x40, 0x0B, 0x00, 0x0B, - 0x0C, 0x0B, 0x00, 0x3F, 0x00, 0x6F, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, - 0x19, 0x8D, 0x79, 0xA9, 0x69, 0xB9, 0x29, 0xF9, 0x00, 0x69, 0x01, 0x0B, 0x68, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0xBF, 0x6F, 0xF9, 0x29, 0xBF, 0x79, 0xEF, 0x39, 0x8E, - 0x01, 0x3E, 0x6E, 0xF9, 0x29, 0x8E, 0x01, 0x3E, 0x79, 0xEE, 0x39, 0x8E, 0x02, 0x3E, 0x6E, 0xF9, - 0x29, 0x8E, 0x4B, 0x3E, 0x79, 0xEE, 0x39, 0x8E, 0x03, 0x3E, 0x6E, 0xF9, 0x29, 0x8E, 0x4C, 0x3E, - 0x79, 0xEE, 0x00, 0x19, 0x19, 0xF9, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x08, 0x3E, 0x4E, 0xF9, - 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, 0xA8, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, - 0x39, 0xCA, 0x79, 0x8E, 0x0C, 0x3E, 0x4E, 0xF9, 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, - 0x8C, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x10, 0x3E, 0x4E, 0xF9, - 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, 0x90, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, - 0x39, 0xCA, 0x79, 0x8E, 0x14, 0x3E, 0x4E, 0xF9, 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, - 0xAC, 0x3E, 0x79, 0xCE, 0x01, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0xCC, 0x4C, 0x04, 0x5A, 0xCA, 0x2C, - 0x39, 0x8E, 0x1D, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0x8A, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1D, 0x3E, - 0x4E, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x08, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, - 0x9E, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1D, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xCA, - 0x79, 0x8E, 0x0C, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0x89, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1C, 0x3E, - 0x4E, 0xF9, 0x29, 0x8E, 0x8B, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x18, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, - 0xB0, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x19, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0xB1, 0x3E, 0x79, 0xCE, - 0x39, 0x8E, 0x1A, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0xB2, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1B, 0x3E, - 0x4E, 0xF9, 0x29, 0x8E, 0xB3, 0x3E, 0x79, 0xCE, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, - 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x74, 0x79, 0x20, 0x0B, 0x00, 0x0B, 0x2D, 0x0B, 0xC4, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x95, 0x0B, 0x0C, 0x79, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x00, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, - 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x79, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x3C, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, 0x0D, 0x8C, 0x00, 0x0D, 0x00, 0x0D, 0x00, 0x0D, - 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, - 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x00, 0x2B, 0x79, 0xA9, 0x1D, 0x8E, 0x0D, 0x3E, 0x69, 0xEE, - 0x0C, 0x3E, 0x59, 0xEE, 0x0B, 0x3E, 0x49, 0xEE, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x79, 0x79, 0x89, - 0x79, 0x99, 0x00, 0x2B, 0x00, 0x39, 0x00, 0x79, 0x00, 0x2B, 0x79, 0xE9, 0x00, 0x2B, 0x00, 0x59, - 0x00, 0x29, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0xD9, 0x0C, 0x29, 0xF9, 0x3A, 0x8A, 0xA9, 0xCA, - 0x79, 0xBF, 0x6F, 0xF9, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x3A, 0x8A, 0xA9, 0xCA, - 0x79, 0xBF, 0x6F, 0xF9, 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, 0x79, 0xB9, 0x0E, 0x08, 0x07, 0x5C, - 0x39, 0xF9, 0x26, 0x0B, 0x6D, 0x5A, 0x03, 0x2C, 0x00, 0x2B, 0x01, 0x69, 0x39, 0x99, 0x0B, 0x08, - 0x09, 0x5C, 0x0E, 0x08, 0x07, 0x1C, 0x39, 0xF9, 0x29, 0x0B, 0x8D, 0x5A, 0x03, 0x6C, 0x00, 0x2B, - 0x01, 0x39, 0x39, 0x89, 0x0E, 0x08, 0x7B, 0x1C, 0x0B, 0x08, 0x79, 0x1C, 0x02, 0x08, 0x77, 0x1C, - 0x29, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xE9, 0x01, 0x5A, 0x07, 0x08, 0x69, 0xDA, 0x6F, 0x6C, - 0x19, 0xF9, 0x09, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x1D, 0x8E, 0x0C, 0x3E, - 0x6E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0xEA, 0x8A, - 0xFA, 0x8A, 0x00, 0x2B, 0x79, 0x99, 0x39, 0xF9, 0x29, 0xE9, 0x3A, 0x8A, 0xA9, 0xCA, 0xFF, 0x0B, - 0xFF, 0x0B, 0xFF, 0x0B, 0xFC, 0x4A, 0x69, 0xBF, 0x6F, 0xE9, 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x07, 0x08, 0x99, 0xDA, - 0x13, 0x2C, 0x39, 0xF9, 0x29, 0xE9, 0x3A, 0x8A, 0xA9, 0xCA, 0x69, 0x8E, 0x01, 0x3E, 0x6E, 0xE9, - 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xB9, 0x3D, 0x07, 0x08, 0x99, 0xDA, 0x03, 0x6C, 0x0F, 0x08, 0xC9, 0xCA, 0x30, 0x0C, 0x19, 0xF9, - 0x09, 0xCA, 0xAA, 0x8A, 0x39, 0xDA, 0x16, 0x6C, 0x19, 0xF9, 0x39, 0xCA, 0xAA, 0x8A, 0x79, 0x99, - 0xC9, 0xF9, 0xF9, 0xCA, 0xD9, 0xD9, 0x59, 0xE9, 0x05, 0x08, 0x01, 0x4A, 0x00, 0x2B, 0x59, 0xD9, - 0x06, 0x08, 0x3A, 0x8A, 0x1D, 0x8E, 0x0B, 0x3E, 0xAE, 0xCA, 0x69, 0xBF, 0x79, 0xEF, 0x00, 0x2B, - 0x00, 0x79, 0x15, 0x0C, 0x09, 0xF9, 0x39, 0xCA, 0xAA, 0x8A, 0x79, 0x89, 0xC9, 0xF9, 0xF9, 0xCA, - 0xD9, 0xD9, 0x59, 0xE9, 0x05, 0x08, 0x01, 0x4A, 0x00, 0x2B, 0x59, 0xD9, 0x06, 0x08, 0x3A, 0x8A, - 0x1D, 0x8E, 0x0B, 0x3E, 0xAE, 0xCA, 0x69, 0xBF, 0x79, 0xEF, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x08, - 0x01, 0x4A, 0x29, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, - 0x35, 0x2C, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xBF, 0xD9, 0xEF, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, - 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, - 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0xA8, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, - 0xE9, 0x8D, 0x1D, 0x8E, 0x07, 0x3E, 0x6E, 0x89, 0x04, 0x08, 0x2F, 0x5C, 0x00, 0x2B, 0x59, 0xF9, - 0xAA, 0x8A, 0xEA, 0x8A, 0xF9, 0x99, 0x00, 0x2B, 0x79, 0xF9, 0x19, 0xCA, 0xF9, 0x8E, 0x01, 0x3E, - 0x00, 0x2B, 0x1E, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x6A, 0x8A, 0x6A, 0x8A, 0x00, 0x2B, 0x79, 0xE9, - 0x19, 0xCA, 0xE9, 0xBF, 0x00, 0x2B, 0x1F, 0xE9, 0xF9, 0xCA, 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, - 0x59, 0xF9, 0x07, 0x1A, 0x00, 0x2B, 0x39, 0xE9, 0x4A, 0xCA, 0x0F, 0x08, 0x04, 0x1C, 0xF9, 0xED, - 0x0E, 0x08, 0xFA, 0x8A, 0xFD, 0x4D, 0x0E, 0x08, 0xFF, 0x1A, 0x09, 0x9A, 0xFF, 0x1A, 0xFF, 0x1A, - 0xE9, 0xA9, 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xD7, 0x0C, 0x00, 0x2B, 0x69, 0xF9, 0x59, 0xDA, - 0xAA, 0x8A, 0xEA, 0x8A, 0xF9, 0x99, 0x00, 0x2B, 0x79, 0xF9, 0x19, 0xCA, 0xF9, 0xBF, 0x00, 0x2B, - 0x1F, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x6A, 0x8A, 0x6A, 0x8A, 0x00, 0x2B, 0x79, 0xE9, 0x19, 0xCA, - 0xFF, 0x0B, 0xFF, 0x0B, 0xFF, 0x0B, 0xFF, 0x4A, 0xE9, 0xBF, 0x00, 0x2B, 0x1F, 0xE9, 0xF9, 0xCA, - 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, 0x69, 0xF9, 0x59, 0xDA, 0x07, 0x1A, 0x01, 0x4A, 0x00, 0x2B, - 0x39, 0xE9, 0x4A, 0xCA, 0x0F, 0x08, 0x04, 0x1C, 0xF9, 0xED, 0x0E, 0x08, 0xFA, 0x8A, 0xFD, 0x4D, - 0x0E, 0x08, 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xF7, 0x03, 0x2C, - 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, 0xF9, 0xA9, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xE7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xD7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x3A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xC7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x3A, 0x8A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, - 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xB7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, - 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, - 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xA7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, - 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, - 0x00, 0x2B, 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0x97, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, - 0x00, 0x2B, 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x3A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, - 0xFF, 0x1A, 0x00, 0x2B, 0x29, 0xF9, 0x09, 0x9A, 0xFF, 0x1A, 0xFF, 0x1A, 0xF9, 0xA9, 0x29, 0xF9, - 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, - 0x0D, 0x8C, 0x00, 0x0D, 0x00, 0x0D, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, - 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x00, 0x2B, 0x79, 0x99, - 0x00, 0x2B, 0x69, 0xD9, 0x59, 0x89, 0x1D, 0x8E, 0x0B, 0x3E, 0x49, 0xEE, 0x0E, 0x3E, 0x6E, 0xB9, - 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, - 0x02, 0x3E, 0xFF, 0x1E, 0x39, 0xBF, 0x06, 0x1F, 0x0D, 0x08, 0x04, 0x1C, 0xD9, 0xF9, 0x02, 0x0B, - 0xC5, 0x5A, 0x09, 0x2C, 0x39, 0xBF, 0x0F, 0xF9, 0x01, 0x2A, 0x79, 0xAF, 0x00, 0x79, 0x10, 0x0B, - 0x00, 0x0B, 0x07, 0x0B, 0x26, 0x0C, 0x00, 0x2B, 0x00, 0x69, 0x00, 0x79, 0xFF, 0x1A, 0x00, 0x2B, - 0x79, 0xC9, 0x79, 0xA9, 0x00, 0x2B, 0x00, 0x29, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x01, 0x69, - 0x07, 0x08, 0x04, 0x1C, 0x79, 0xED, 0x06, 0x08, 0x2A, 0x8A, 0xFD, 0x4D, 0x06, 0x08, 0x01, 0x5A, - 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xB9, 0x00, 0x2B, 0x00, 0x79, 0x4E, 0x0C, 0x09, 0x8E, 0x02, 0x3E, - 0x1E, 0xF9, 0x29, 0xCA, 0xD9, 0xDA, 0x05, 0x2C, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, - 0x26, 0x0C, 0xB9, 0x8D, 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, - 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0x33, 0x1C, 0x0A, 0x08, - 0x05, 0x5C, 0x00, 0x2B, 0x01, 0x29, 0x1D, 0x8E, 0x0C, 0x3E, 0x29, 0xEE, 0x19, 0xF9, 0xFF, 0x1A, - 0x09, 0xBF, 0x1F, 0xE9, 0x07, 0x08, 0x69, 0xF8, 0x15, 0x7C, 0x39, 0xBF, 0x0F, 0xF9, 0x00, 0x2B, - 0x02, 0x0A, 0x79, 0xAF, 0x0F, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xE9, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, - 0x79, 0xCA, 0x13, 0x0C, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x29, 0xE9, 0x1D, 0x8E, - 0x0C, 0x3E, 0xAE, 0xDA, 0x07, 0x08, 0x69, 0xDA, 0x05, 0x6C, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, - 0x07, 0x0B, 0x26, 0x0C, 0x02, 0x08, 0x01, 0x4A, 0xB1, 0x0C, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, - 0x04, 0x0C, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x29, 0xCA, 0xD9, 0xDA, 0x07, 0x2C, - 0x39, 0xBF, 0x04, 0x1F, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, 0x26, 0x0C, 0xB9, 0x8D, - 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, 0x10, 0x0B, 0x00, 0x0B, - 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xE9, 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, - 0x1E, 0xE9, 0x07, 0x08, 0x69, 0xF8, 0x1F, 0x3C, 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, - 0xAE, 0xCA, 0x79, 0xBF, 0x1F, 0xF9, 0x39, 0x8E, 0x02, 0x3E, 0x9E, 0xD9, 0x59, 0xE9, 0x05, 0x08, - 0x01, 0x4A, 0x00, 0x2B, 0x59, 0x9E, 0x06, 0x08, 0x4A, 0xCA, 0x39, 0xCA, 0x69, 0x8E, 0x08, 0x3E, - 0x79, 0x9E, 0x07, 0x08, 0xFF, 0x1A, 0x7E, 0x78, 0x03, 0x7C, 0x0C, 0x08, 0x01, 0x4A, 0x02, 0x0C, - 0x0F, 0x08, 0x01, 0x4A, 0x34, 0x0C, 0x39, 0xBF, 0x0F, 0xF9, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xAF, - 0x0F, 0x08, 0x01, 0x4A, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, 0x79, 0xCA, 0xB9, 0x8D, - 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, 0x10, 0x0B, 0x00, 0x0B, - 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xB9, 0xF9, 0xFF, 0x1A, 0xFA, 0x8A, 0x69, 0x9A, 0xFF, 0x1A, 0x00, 0x2B, 0x79, 0xE9, - 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, 0xAE, 0xCA, 0x79, 0xBF, 0x1F, 0xF9, 0x7E, 0x78, - 0x03, 0x7C, 0x0C, 0x08, 0x01, 0x4A, 0x02, 0x0C, 0x0F, 0x08, 0x01, 0x4A, 0x12, 0x0C, 0x09, 0x8E, - 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, 0x79, 0xCA, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, - 0x10, 0x0B, 0x00, 0x0B, 0x06, 0x0B, 0x81, 0x4C, 0x8C, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x06, 0x0B, - 0x81, 0x2C, 0x0C, 0x08, 0x04, 0x1C, 0x39, 0xBF, 0x0F, 0xF9, 0x80, 0x2A, 0x79, 0xAF, 0x0E, 0x08, - 0x04, 0x1C, 0x39, 0xBF, 0x0F, 0xF9, 0x40, 0x2A, 0x79, 0xAF, 0x39, 0x8E, 0x02, 0x3E, 0xE9, 0x9E, - 0xC9, 0xF9, 0xFF, 0x1A, 0x39, 0x8E, 0x01, 0x3E, 0x79, 0x9E, 0xF9, 0xF9, 0x00, 0x2B, 0x0D, 0x99, - 0x00, 0x2B, 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, - 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0x8C, 0x09, 0xBE, 0x1D, 0x89, 0x4C, 0x5A, 0x09, 0x9D, 0x3E, 0x89, - 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, - 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x1D, 0x8E, 0x0E, 0x3E, 0x79, 0xEE, 0x0D, 0x3E, 0x69, 0xEE, - 0x0C, 0x3E, 0x59, 0xEE, 0x0B, 0x3E, 0x49, 0xEE, 0x1D, 0x8E, 0x11, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, - 0x10, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x0F, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, - 0x06, 0x5A, 0x06, 0x2C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x05, 0x0B, 0x89, 0x5A, 0x05, 0x2C, - 0x01, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0x1D, 0x8E, 0x1F, 0x3E, 0x6E, 0xF9, - 0x00, 0x69, 0x59, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0x8E, 0x20, 0x3E, - 0xAE, 0xBF, 0x00, 0x6F, 0x00, 0x39, 0x1D, 0x8E, 0x13, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x12, 0x3E, - 0x00, 0x6E, 0x1D, 0x8E, 0x1A, 0x3E, 0x00, 0x6E, 0x00, 0x2B, 0x00, 0x79, 0x1D, 0x8E, 0x18, 0x3E, - 0x00, 0x6E, 0x00, 0x2B, 0x00, 0x69, 0x72, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, - 0x02, 0x3C, 0xE9, 0xF9, 0x05, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xDA, - 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x1B, 0x3E, - 0x6E, 0xE9, 0x3A, 0x8A, 0x79, 0xCA, 0x69, 0xBF, 0x6F, 0xF9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, - 0x4A, 0xCA, 0x79, 0xA9, 0x1D, 0x8E, 0x10, 0x3E, 0x6E, 0xF9, 0x09, 0x5C, 0x1D, 0x8E, 0x10, 0x3E, - 0x01, 0x6E, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, 0x79, 0xEE, 0x45, 0x0C, 0x1D, 0x8E, - 0x11, 0x3E, 0x6E, 0xF9, 0x41, 0x5C, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x00, 0x2B, 0x79, 0x99, 0x1D, 0x8E, 0x0F, 0x3E, - 0x6E, 0xF9, 0x4B, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, - 0xAA, 0x8A, 0xBA, 0x8A, 0xEA, 0x8A, 0xFA, 0x8A, 0x09, 0x08, 0x79, 0xDA, 0x12, 0x6C, 0x1D, 0x8E, - 0x10, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, - 0xAE, 0xDA, 0x02, 0x4A, 0xEA, 0x8A, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xFE, - 0x08, 0x0C, 0x1D, 0x8E, 0x10, 0x3E, 0x01, 0x6E, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, - 0x79, 0xEE, 0x1D, 0x8E, 0x10, 0x3E, 0x6E, 0xF9, 0x05, 0x5A, 0x06, 0x2C, 0xE9, 0xF9, 0x03, 0x5A, - 0x1D, 0x8E, 0x11, 0x3E, 0x79, 0xEE, 0x07, 0x0C, 0x0E, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0x1D, 0x8E, - 0x0D, 0x3E, 0xAE, 0xDA, 0x89, 0x2C, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x05, 0x5C, 0x01, 0x79, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x1B, 0x0C, 0x00, 0x2B, 0x03, 0x39, 0x1D, 0x8E, - 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x02, 0x3C, 0xE9, 0xF9, 0x05, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, - 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x0E, 0x3E, - 0x6E, 0xF9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xE9, 0x3A, 0x8A, 0x79, 0xCA, 0x69, 0xBF, 0x6F, 0xF9, - 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x4A, 0xCA, 0x79, 0xA9, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, - 0x04, 0x4A, 0xE9, 0xF8, 0x08, 0x7C, 0x1D, 0x8E, 0x13, 0x3E, 0x6E, 0xF9, 0x02, 0x4A, 0xAA, 0x8A, - 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0xB9, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x03, 0x4A, 0xE9, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x0C, 0x6C, 0x39, 0xF9, 0x4A, 0xCA, 0x01, 0x0B, 0x80, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, - 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x05, 0x6C, - 0x08, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7A, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x07, 0x2C, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x10, 0x0B, - 0x00, 0x0B, 0x0D, 0x0B, 0x87, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0x99, 0x39, 0xF9, - 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x79, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x09, 0x08, 0x79, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x07, 0x2C, 0x1D, 0x8E, 0x14, 0x3E, 0x00, 0x6E, 0x10, 0x0B, - 0x00, 0x0B, 0x0D, 0x0B, 0x87, 0x0C, 0x1D, 0x8E, 0x3A, 0x3E, 0x39, 0xCE, 0x1D, 0x8E, 0x38, 0x3E, - 0x29, 0xCE, 0x1D, 0x8E, 0x19, 0x3E, 0xF9, 0xEE, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x00, 0x2B, 0x79, 0xC9, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, - 0x00, 0x2B, 0x19, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x09, 0x0B, 0xB5, 0x0C, - 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, - 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, - 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, - 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, - 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, - 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, - 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, - 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, - 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, - 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x08, 0x0B, 0xF0, 0x2C, 0x1D, 0x8E, 0x17, 0x3E, 0xC9, 0xEE, - 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, - 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x0A, 0x0B, 0xE7, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, - 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, - 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, - 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, - 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, - 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, - 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, - 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, - 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, - 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, - 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, - 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, - 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, - 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x22, 0x2C, 0x1D, 0x8E, - 0x16, 0x3E, 0xC9, 0xEE, 0x00, 0x2B, 0x01, 0x39, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, - 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, - 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, - 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x00, 0x2B, - 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x0A, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, - 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, - 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, - 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, - 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, - 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, - 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, - 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, - 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, - 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, - 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, - 0x0B, 0x0B, 0x45, 0x2C, 0x1D, 0x8E, 0x15, 0x3E, 0xC9, 0xEE, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, - 0x79, 0xB9, 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, - 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, - 0x79, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x0D, 0x0B, 0x3C, 0x0C, 0x1D, 0x8E, - 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, - 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, - 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, - 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, - 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, - 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, - 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, - 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, - 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x77, 0x2C, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, - 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xF9, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x1D, 0x8E, 0x15, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, - 0x08, 0x6C, 0x1D, 0x8E, 0x15, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, - 0x00, 0x6E, 0x1D, 0x8E, 0x16, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, 0x0A, 0x6C, 0x1D, 0x8E, 0x16, 0x3E, - 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x00, 0x2B, 0x03, 0x39, - 0x1D, 0x8E, 0x17, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, 0x0A, 0x6C, 0x1D, 0x8E, 0x17, 0x3E, 0x6E, 0xF9, - 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, 0x00, 0x6E, 0x00, 0x2B, 0x03, 0x39, 0x1D, 0x8E, - 0x14, 0x3E, 0x6E, 0xF9, 0x56, 0x1C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xB9, - 0xF9, 0x87, 0x26, 0x6C, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xF9, 0x07, 0x1A, 0x01, 0x69, - 0x07, 0x08, 0x04, 0x1C, 0x79, 0xED, 0x06, 0x08, 0x2A, 0x8A, 0xFD, 0x4D, 0x1D, 0x8E, 0x14, 0x3E, - 0x69, 0xEE, 0x1D, 0x8E, 0x14, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x1F, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, - 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xD9, 0xAA, 0x8A, 0xEA, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x0F, 0xE9, - 0x79, 0xAA, 0x69, 0xAF, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x9F, 0xF9, 0x01, 0x4A, 0x79, 0xFF, - 0x0F, 0x08, 0x01, 0x4A, 0x1D, 0x8E, 0x18, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x1A, 0x3E, 0x01, 0x6E, - 0x2A, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, - 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xB9, 0x1D, 0x8E, 0x20, 0x3E, - 0xAE, 0xBF, 0x9F, 0xF9, 0x01, 0x4A, 0x79, 0xFF, 0x00, 0x2B, 0x00, 0x79, 0x1D, 0x8E, 0x18, 0x3E, - 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x01, 0x0C, 0x29, 0xB9, 0x39, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, - 0x13, 0x3E, 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xFE, 0x1D, 0x8E, 0x12, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, - 0x79, 0xFE, 0x0E, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x19, 0x6C, - 0x1D, 0x8E, 0x0C, 0x3E, 0xAE, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x02, 0x5A, 0x1D, 0x8E, - 0x18, 0x3E, 0xAE, 0xDA, 0x04, 0x6C, 0x1D, 0x8E, 0x1A, 0x3E, 0x6E, 0xF9, 0x0A, 0x5C, 0x1D, 0x8E, - 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xF9, 0x02, 0x0B, 0xBC, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x08, 0x0B, - 0x15, 0x2C, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x9F, 0xF9, 0x08, 0x4A, 0x79, 0xFF, 0x1D, 0x8E, - 0x13, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x12, 0x3E, 0x6E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x79, 0xE9, 0x09, 0x0B, 0x89, 0x0B, 0x68, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x50, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x1D, 0x8E, 0x0C, 0x3E, - 0xAE, 0x8E, 0x03, 0x3E, 0x1E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x1D, 0x8E, - 0x21, 0x3E, 0xAE, 0xBF, 0x79, 0xEF, 0x00, 0x79, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, 0x0D, 0xA9, - 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, 0x0D, 0xE9, - 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x09, 0xBE, 0x1D, 0x89, - 0x4C, 0x4A, 0x09, 0x9D, 0x3E, 0x89, 0x0D, 0x8C, 0x09, 0xBE, 0x1D, 0x89, 0x17, 0x0B, 0xC4, 0x5A, - 0x09, 0x9D, 0x3E, 0x89, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, - 0xD9, 0x8D, 0xC9, 0x8D, 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, - 0x79, 0xEE, 0x05, 0x0B, 0xF7, 0x3E, 0x69, 0xEE, 0x05, 0x0B, 0xF6, 0x3E, 0x59, 0xEE, 0x49, 0xB9, - 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, 0x6E, 0xF9, 0x06, 0x1C, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, - 0x6E, 0xF9, 0x04, 0x5A, 0x11, 0x2C, 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0xFF, 0x1E, 0x39, 0xBF, 0x10, 0x1F, 0x00, 0x79, - 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x71, 0x0C, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, 0x6E, 0xF9, - 0x01, 0x5A, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x05, 0x0B, 0xF6, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, - 0x05, 0x0B, 0xFB, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x05, 0x0B, 0xF7, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0x99, 0x1D, 0x8E, 0x05, 0x0B, 0xF7, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xA9, 0x1D, 0x8E, - 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xF9, 0x1B, 0x5C, 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x01, 0x0B, 0xCE, 0x79, 0x00, 0x69, - 0x32, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0xFF, 0x1E, - 0x39, 0xBF, 0x01, 0x1F, 0x00, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x71, 0x0C, 0x00, 0x2B, - 0x00, 0x69, 0x1D, 0xF9, 0x16, 0x0B, 0xE4, 0x4A, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0xF9, 0x16, 0x0B, 0xE6, 0x4A, 0x79, 0xBF, 0xFF, 0x1F, 0x1D, 0xF9, - 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0xBF, 0x06, 0x1F, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x00, 0x69, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0xF9, 0x16, 0x0B, 0x4E, 0x4A, - 0x79, 0xBF, 0xFF, 0x1F, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x06, 0x1F, 0x39, 0xF9, - 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, - 0x00, 0x2B, 0x00, 0x39, 0x0B, 0x08, 0x06, 0x5C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, - 0x05, 0x1F, 0x05, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x0B, 0x1F, 0x00, 0x2B, - 0x00, 0x79, 0x0F, 0x08, 0x01, 0x78, 0x16, 0x7C, 0x1D, 0xF9, 0x17, 0x0B, 0xEC, 0x4A, 0x79, 0x8D, - 0x99, 0xF9, 0x1D, 0x8E, 0x05, 0x0B, 0xFC, 0x3E, 0x6E, 0xE9, 0x04, 0x59, 0x1D, 0xC9, 0x30, 0x4A, - 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0x0D, 0x3D, 0x0D, 0xA8, 0x1D, 0xF9, 0x2C, 0x4A, 0x00, 0x2B, - 0x79, 0xA9, 0x18, 0x0C, 0x0F, 0x08, 0x02, 0x78, 0x15, 0x7C, 0x1D, 0xF9, 0x17, 0x0B, 0xEC, 0x4A, - 0x79, 0x8D, 0x99, 0xF9, 0x1D, 0x8E, 0x05, 0x0B, 0xFC, 0x3E, 0x6E, 0xE9, 0x06, 0x59, 0x1D, 0xC9, - 0x30, 0x4A, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0x0D, 0x3D, 0x0D, 0xA8, 0x1D, 0xF9, 0x2C, 0x4A, - 0x00, 0x2B, 0x79, 0xA9, 0x00, 0x29, 0x1D, 0xF9, 0x17, 0x0B, 0xE4, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, - 0x17, 0x0B, 0xEC, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x84, 0x4A, 0x79, 0x8D, 0xA9, 0xF9, - 0x1D, 0x8E, 0x05, 0x0B, 0xFE, 0x3E, 0x6E, 0xE9, 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x29, 0xC9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, 0x3B, 0x3D, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0xA8, 0x07, 0x08, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x55, 0x5C, - 0x00, 0x19, 0x1D, 0xF9, 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x80, 0x4A, - 0x1D, 0x8E, 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xE9, 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x19, 0xC9, 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xE1, 0x3D, - 0x0D, 0xA8, 0x00, 0x2B, 0x79, 0xD9, 0x29, 0xF9, 0x19, 0xBA, 0xFF, 0x1A, 0x1D, 0xE9, 0x16, 0x0B, - 0xE7, 0x4A, 0x69, 0xBF, 0x79, 0x9F, 0x1D, 0x8E, 0x05, 0x0B, 0xF9, 0x3E, 0x6E, 0xF9, 0x4A, 0xCA, - 0x1D, 0x8E, 0x0B, 0x0B, 0x75, 0x3E, 0x79, 0xCE, 0x01, 0x19, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, - 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x80, 0x4A, 0x1D, 0x8E, 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xE9, - 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x19, 0xC9, - 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xE1, 0x3D, 0x0D, 0xA8, 0x79, 0x89, 0x29, 0xF9, 0x19, 0xBA, - 0xFF, 0x1A, 0x1D, 0xE9, 0x16, 0x0B, 0x4F, 0x4A, 0x69, 0xBF, 0x79, 0x9F, 0x1D, 0x8E, 0x05, 0x0B, - 0xF9, 0x3E, 0x6E, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0B, 0x0B, 0x29, 0x3E, 0x79, 0xCE, 0x1D, 0xF9, - 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x3C, 0x5C, 0xD9, 0xF9, 0x03, 0x5A, 0x39, 0x2C, - 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x24, 0x5C, 0x09, 0xF9, 0x03, 0x5A, - 0x21, 0x2C, 0xD9, 0xF9, 0x09, 0xDA, 0x0F, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, - 0x4A, 0xCA, 0x6F, 0x0C, 0x0E, 0x0C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, - 0x60, 0x0C, 0x0E, 0x0C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x51, 0x0C, - 0x34, 0x0C, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x12, 0x5C, 0x09, 0xF9, - 0x03, 0x5A, 0x0F, 0x2C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x39, 0x0C, - 0x1C, 0x0C, 0xE9, 0xF9, 0x09, 0xDA, 0x0B, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x00, 0x2B, 0x09, 0xE9, 0xE9, 0xF9, - 0xD9, 0xDA, 0x0B, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x00, 0x2B, 0xD9, 0xE9, 0x02, 0x08, 0x01, 0x4A, 0x29, 0xF9, - 0x02, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x63, 0x2C, 0x0F, 0x08, 0x01, 0x4A, 0xF9, 0xF9, - 0x03, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x31, 0x2C, 0x0B, 0x08, 0x01, 0x4A, 0xB9, 0xF9, - 0x02, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x22, 0x2C, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, - 0x4A, 0xCA, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, - 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, - 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x09, 0xBE, 0x1D, 0x89, 0x17, 0x0B, 0xC4, 0x4A, 0x09, 0x9D, - 0x3E, 0x89, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x10, 0x0B, 0x00, 0x0B, - 0x11, 0x0B, 0x84, 0x7C, 0x00, 0x39, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x00, 0x69, 0x96, 0x59, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0E, 0x4A, 0x79, 0xBF, - 0xFF, 0x1F, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, - 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x79, 0xBF, 0x10, 0x1F, 0x20, 0x0B, 0x00, 0x0B, - 0x2F, 0x0B, 0x44, 0x79, 0x00, 0x69, 0x16, 0x0B, 0x24, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xC2, 0x3D, 0x03, 0x08, 0x10, 0x1C, 0x01, 0x78, 0x07, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, - 0xEE, 0x3F, 0x4F, 0xF9, 0x4A, 0xCA, 0x06, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x56, 0x3F, - 0x4F, 0xF9, 0x4A, 0xCA, 0x06, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xBE, 0x3F, 0x4F, 0xF9, - 0x4A, 0xCA, 0x79, 0x99, 0x03, 0x08, 0x0C, 0x1C, 0x01, 0x78, 0x05, 0x3C, 0x20, 0x0B, 0x00, 0x0B, - 0x45, 0x0B, 0x68, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x5B, 0x0B, 0x88, 0x79, 0x04, 0x0C, - 0x20, 0x0B, 0x00, 0x0B, 0x63, 0x0B, 0x70, 0x79, 0x79, 0x89, 0x03, 0x08, 0x0C, 0x1C, 0x01, 0x78, - 0x05, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x79, 0x0B, 0x90, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, - 0x84, 0x0B, 0xA0, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x79, 0x00, 0x2B, - 0x79, 0xE9, 0x19, 0xF9, 0x10, 0x5A, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x49, 0x2C, 0x00, 0x29, - 0x36, 0x0C, 0x29, 0xF9, 0x3A, 0x8A, 0x09, 0xCA, 0x79, 0x8E, 0x01, 0x3E, 0x6E, 0xF9, 0x29, 0xE9, - 0x3A, 0x8A, 0x09, 0xCA, 0x69, 0xBF, 0x07, 0x08, 0x9F, 0xDA, 0x02, 0x0B, 0x71, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x12, 0x0B, 0x4F, 0x4A, 0x24, 0x0B, 0x9F, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x2A, 0x8A, - 0xE9, 0xCA, 0x79, 0x8E, 0x01, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x8A, 0xCA, 0xFF, 0x2B, - 0xFF, 0x0A, 0xF9, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x29, 0xE9, 0x3A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2F, 0x0B, 0x48, 0x4A, 0x69, 0xBF, 0x79, 0xEF, 0x02, 0x08, 0x01, 0x4A, 0x29, 0xF9, - 0x19, 0xE9, 0x01, 0x5A, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0xC1, 0x2C, - 0x19, 0xF9, 0x01, 0x5A, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, 0x44, 0x3F, 0x79, 0xCF, - 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x79, 0xC9, 0x39, 0xF9, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, - 0x2F, 0x0B, 0x48, 0x69, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, 0x44, 0x3F, 0x4F, 0xD9, 0x4A, 0xCA, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x7C, 0x3D, 0x03, 0x08, 0x01, 0x4A, 0x39, 0xF9, 0x03, 0x5A, - 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x9B, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, - 0x6F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x6F, 0xE9, 0x4A, 0xCA, 0x8A, 0xCA, - 0x79, 0xAA, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x04, 0x3F, 0x69, 0xEF, 0x00, 0x2B, 0x0D, 0xE9, - 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, 0x77, 0xA0, - 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, 0x9F, 0x89, 0x00, 0xCA, 0x09, 0xEF, 0x8D, 0x8C, - 0x3E, 0x8D, 0x0E, 0x8D, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x08, 0x3F, 0x20, 0x0B, 0x00, 0x0B, - 0x97, 0x0B, 0xEC, 0x0E, 0x00, 0x3E, 0x9F, 0xCE, 0x9F, 0xCE, 0x9F, 0xCE, 0x9F, 0x99, 0x9F, 0xCE, - 0x9F, 0xCE, 0x9F, 0xCE, 0x6F, 0xA9, 0x6F, 0xA8, 0x9F, 0xB9, 0x01, 0x0B, 0xC0, 0x2A, 0x39, 0xEF, - 0x00, 0x3E, 0x6E, 0xB9, 0x6E, 0xAA, 0x6E, 0xAA, 0xAE, 0xAA, 0x39, 0xEE, 0x19, 0xB9, 0x29, 0xAA, - 0xAE, 0xAA, 0x39, 0xEE, 0x00, 0x3E, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xE2, 0x3F, 0x8F, 0xB9, - 0x09, 0x5C, 0x01, 0x4F, 0x6E, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, 0x39, 0xEF, 0x19, 0xB9, 0x29, 0xCA, - 0x39, 0xCF, 0x6B, 0x0C, 0x01, 0x78, 0x16, 0x7C, 0x02, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, - 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x00, 0x5A, 0x6E, 0xEF, 0x8F, 0x89, 0x19, 0xCA, 0x29, 0xCA, - 0x09, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x00, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, - 0x39, 0xCF, 0x53, 0x0C, 0x02, 0x78, 0x12, 0x7C, 0x03, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, - 0x6E, 0xCA, 0x39, 0xEF, 0x8F, 0xB9, 0x19, 0xCA, 0x14, 0x0B, 0x00, 0x5A, 0x29, 0xCF, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x06, 0x3F, 0x00, 0x2B, 0x39, 0x8F, 0x3F, 0x0C, 0x03, 0x78, 0x18, 0x7C, - 0x04, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x00, 0x5A, 0x6E, 0x89, - 0x6E, 0xCA, 0x09, 0xEF, 0x8F, 0x89, 0x19, 0xCA, 0x29, 0xCA, 0x09, 0xCF, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x04, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, 0x4F, 0xA8, 0x39, 0xCF, 0x25, 0x0C, - 0x00, 0x4F, 0x6F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, 0x6E, 0xCA, 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, - 0x00, 0x5A, 0x4F, 0x89, 0x19, 0xCA, 0x29, 0xCA, 0x14, 0x0B, 0x00, 0x5A, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x0A, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, 0x39, 0xCF, 0x09, 0xCF, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x9F, 0xB9, 0x01, 0x6F, 0x07, 0x1C, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x18, 0x3F, 0x9F, 0xB9, 0x01, 0x2A, 0x39, 0xEF, 0x0D, 0x8E, 0x0D, 0xBE, 0x8D, 0x8C, - 0x27, 0xA0, 0x20, 0xE9, 0x07, 0x2B, 0x00, 0x0A, 0x07, 0x08, 0x07, 0x1A, 0x8A, 0x8A, 0x69, 0xAA, - 0x79, 0xA0, 0xA7, 0xA0, 0x0D, 0x8C, 0x00, 0x30, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, - 0x00, 0x6F, 0x0D, 0x8C, 0x30, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, 0x9F, 0xE9, - 0x30, 0xD9, 0x79, 0xF8, 0xFD, 0x3C, 0x02, 0x6C, 0x30, 0xF9, 0x9F, 0xE9, 0x07, 0x08, 0x69, 0xCA, - 0x0D, 0x8C, 0x79, 0x8D, 0xEF, 0x3D, 0x0D, 0xC9, 0x79, 0xCA, 0xEC, 0x3D, 0x49, 0xDA, 0xFD, 0x4C, - 0x0D, 0x8C, 0x29, 0x8D, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x9F, 0xF9, 0x01, 0x4A, - 0x79, 0xEF, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x80, 0x0A, 0x79, 0xCE, 0x79, 0xD7, 0x07, 0x2C, - 0x20, 0x2A, 0xA7, 0x3E, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x0C, 0x4C, 0x3E, - 0xAE, 0xBF, 0x7F, 0xA8, 0x7F, 0xF9, 0x6F, 0xDA, 0x79, 0xA9, 0xA7, 0x3E, 0x9E, 0xE7, 0x09, 0x2C, - 0x9E, 0xF9, 0x40, 0x2A, 0x79, 0xCE, 0x4E, 0x3E, 0x29, 0xEE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, - 0x9D, 0x0C, 0x9E, 0xB7, 0x76, 0x2C, 0x4E, 0x3E, 0xAE, 0xE9, 0x29, 0xCA, 0x2A, 0x8A, 0x29, 0xF9, - 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x21, 0x02, 0x79, 0x92, 0x0D, 0x22, 0x06, 0x08, - 0x32, 0xDA, 0x34, 0x2C, 0xA6, 0x3E, 0x9E, 0xF9, 0x01, 0x4A, 0x79, 0xDE, 0x29, 0xF9, 0x4E, 0x3E, - 0xAE, 0xDA, 0x02, 0x4A, 0xEA, 0x8A, 0xAE, 0xCA, 0x79, 0xFE, 0x4B, 0x3E, 0x6E, 0xBF, 0x5F, 0xA8, - 0x5F, 0xF9, 0x4F, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x9E, 0x3E, 0x21, 0x02, 0x4E, 0x92, - 0x79, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x9E, 0xCA, 0x9E, 0xCA, - 0x9E, 0xCA, 0x02, 0x4A, 0xEA, 0x8A, 0x79, 0xCE, 0x9E, 0xF8, 0x02, 0x6C, 0x5E, 0xF9, 0x79, 0xCE, - 0xA6, 0x3E, 0x4E, 0xF9, 0x08, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x4C, 0x9E, 0xF9, - 0x08, 0x2A, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x0C, 0xA6, 0x3E, 0x4E, 0xC9, - 0x01, 0x4A, 0x4B, 0x3E, 0xAE, 0xD9, 0x04, 0x5A, 0x59, 0xBF, 0x59, 0xF9, 0x49, 0xDA, 0x49, 0xDA, - 0x4F, 0xD9, 0x4F, 0xE9, 0x79, 0xBF, 0x59, 0xCF, 0x69, 0xCF, 0x3F, 0xEE, 0xAE, 0xD9, 0x08, 0x5A, - 0x59, 0xBF, 0x59, 0xF9, 0x49, 0xDA, 0x49, 0xDA, 0x49, 0xDA, 0x49, 0xDA, 0x6F, 0xD9, 0x6F, 0xE9, - 0x79, 0xBF, 0x59, 0xEF, 0x69, 0xEF, 0x3F, 0xEE, 0xA6, 0x3E, 0x00, 0x4E, 0x4E, 0x3E, 0x29, 0xEE, - 0xA4, 0x3E, 0x5E, 0xF9, 0x4E, 0xDA, 0xB0, 0x3E, 0x21, 0x02, 0x79, 0x92, 0x9E, 0xA2, 0x80, 0x79, - 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, - 0x9D, 0x0C, 0x4E, 0x3E, 0xAE, 0xE9, 0x29, 0xCA, 0x29, 0xF9, 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, - 0x9A, 0x8A, 0x3A, 0x8A, 0x2A, 0x8A, 0x69, 0xDA, 0x07, 0x6C, 0x29, 0xF9, 0xAE, 0xDA, 0x02, 0x4A, - 0xEA, 0x8A, 0xAE, 0xCA, 0x79, 0xEE, 0x15, 0x0C, 0x29, 0xE9, 0x2A, 0x8A, 0xAE, 0xCA, 0x29, 0xF9, - 0x2A, 0x8A, 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x3A, 0x8A, 0x2A, 0x8A, 0x69, 0xDA, - 0x08, 0x6C, 0x29, 0xF9, 0x2A, 0x8A, 0xAE, 0xDA, 0x04, 0x4A, 0xEA, 0x8A, 0xFA, 0x8A, 0xAE, 0xCA, - 0x79, 0xEE, 0x4E, 0x3E, 0xAE, 0xF9, 0xAE, 0x3E, 0x5E, 0xF8, 0x02, 0x6C, 0x00, 0x49, 0x09, 0x0C, - 0x5E, 0xF8, 0x02, 0x6C, 0x01, 0x49, 0x05, 0x0C, 0x5E, 0xF8, 0x02, 0x6C, 0x02, 0x49, 0x01, 0x0C, - 0x03, 0x49, 0x8A, 0x3E, 0x9E, 0xF9, 0x49, 0xF8, 0x13, 0x6C, 0x01, 0x4A, 0x79, 0xC9, 0xA1, 0x3E, - 0x21, 0x02, 0xC6, 0x12, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, - 0xC6, 0x12, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x14, 0x0C, - 0x13, 0x3C, 0x01, 0x5A, 0x79, 0xC9, 0xA1, 0x3E, 0x21, 0x02, 0x01, 0x0B, 0x4B, 0x12, 0x9E, 0xA2, - 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x12, 0x92, 0x9E, 0xA2, 0x80, 0x79, - 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x8A, 0x3E, 0x49, 0xCE, 0x49, 0xF9, 0x8C, 0x4A, - 0x79, 0xBE, 0x4E, 0xF9, 0x89, 0x3E, 0x79, 0xCE, 0x49, 0xF9, 0xA8, 0x4A, 0x79, 0xBE, 0x4E, 0xF9, - 0x9E, 0x3E, 0x79, 0xCE, 0x4B, 0x3E, 0xAE, 0xBF, 0x5F, 0xA8, 0x5F, 0xF9, 0x4F, 0xDA, 0x48, 0xE7, - 0x01, 0x6C, 0x9A, 0x8A, 0x9E, 0x3E, 0x21, 0x02, 0x79, 0x92, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, - 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x9E, 0xCA, 0x9E, 0xCA, 0x9E, 0xCA, 0x02, 0x4A, 0xEA, 0x8A, - 0x79, 0xCE, 0x9E, 0xF8, 0x02, 0x6C, 0x5E, 0xE9, 0x69, 0xCE, 0x0D, 0xA9, 0x0D, 0x8C, 0x79, 0xD9, - 0xA7, 0x3E, 0x9E, 0xA7, 0x3A, 0x6C, 0xA0, 0x3E, 0x5E, 0xF9, 0x59, 0xF8, 0x2A, 0x2C, 0x9E, 0xF9, - 0x4B, 0x3E, 0xAE, 0xBF, 0x79, 0xCF, 0x3F, 0xEE, 0x4D, 0x3E, 0x7E, 0xF9, 0xAE, 0xBF, 0x79, 0xEF, - 0x3F, 0xEE, 0x4A, 0x3E, 0x79, 0xEE, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xDE, - 0x4D, 0x3E, 0x69, 0xEE, 0x9F, 0x3E, 0x59, 0xCE, 0xA1, 0x3E, 0x5E, 0xF9, 0x59, 0xCA, 0x79, 0xCE, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x05, 0x6C, 0x10, 0x0B, - 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x49, 0x0C, 0xA7, 0x3E, 0x9E, 0xF9, 0x80, 0x2A, 0x79, 0xDE, - 0x44, 0x0C, 0x9F, 0x3E, 0x9E, 0xF9, 0x59, 0xF8, 0x40, 0x6C, 0x59, 0xCE, 0x4D, 0x3E, 0x69, 0xEE, - 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xDA, 0x79, 0xCE, 0x38, 0x0C, 0x59, 0xF9, 0xA0, 0x3E, 0x5E, 0xF8, - 0x29, 0x2C, 0x9E, 0xF9, 0x4B, 0x3E, 0xAE, 0xBF, 0x79, 0xCF, 0x3F, 0xEE, 0x4D, 0x3E, 0x7E, 0xF9, - 0xAE, 0xBF, 0x79, 0xEF, 0x3F, 0xEE, 0x4A, 0x3E, 0x79, 0xEE, 0xA7, 0x3E, 0x9E, 0xF9, 0x04, 0x2A, - 0x79, 0xDE, 0x4D, 0x3E, 0x69, 0xEE, 0x9F, 0x3E, 0x59, 0xCE, 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xDA, - 0x79, 0xCE, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x05, 0x6C, - 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x10, 0x0C, 0xA7, 0x3E, 0x9E, 0xF9, 0x80, 0x2A, - 0x79, 0xDE, 0x0B, 0x0C, 0x59, 0xF9, 0x9F, 0x3E, 0x9E, 0xF8, 0x07, 0x6C, 0x59, 0xCE, 0x4D, 0x3E, - 0x69, 0xEE, 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xCA, 0x79, 0xCE, 0xA7, 0x3E, 0x9E, 0xF7, 0x0B, 0x6C, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x04, 0x6C, 0x10, 0x0B, - 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x0D, 0x8C, 0x09, 0x8D, 0x69, 0x89, 0x59, 0x8E, 0x03, 0x3E, - 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xEE, 0x88, 0x3E, 0x9E, 0xD9, 0x01, 0x4A, 0x3F, 0x1A, 0x9E, 0xF9, - 0x04, 0x4A, 0x79, 0xBE, 0xAE, 0xF9, 0x69, 0xCA, 0x59, 0xE9, 0x04, 0x4A, 0x69, 0xBE, 0x79, 0xEE, - 0x88, 0x3E, 0x59, 0xCE, 0x59, 0xF9, 0x20, 0x5A, 0x3F, 0x1A, 0x79, 0xC9, 0x79, 0xD9, 0x9E, 0xCA, - 0x3F, 0x1A, 0x49, 0xF9, 0x9E, 0xDA, 0x3F, 0x1A, 0x04, 0x4A, 0x79, 0xBE, 0xAE, 0xE9, 0x59, 0xF9, - 0x04, 0x4A, 0x79, 0xBE, 0x06, 0x08, 0xAE, 0xCA, 0x49, 0xF9, 0x04, 0x4A, 0x79, 0xBE, 0x06, 0x08, - 0xAE, 0xDA, 0xAE, 0xDA, 0x8A, 0x3E, 0x9E, 0xF9, 0x90, 0x4A, 0x79, 0xBE, 0x21, 0x02, 0x69, 0x92, - 0x9E, 0xA2, 0x3A, 0xDA, 0x32, 0xF9, 0xBA, 0x8A, 0xBA, 0x8A, 0xBA, 0x8A, 0xFA, 0x8A, 0x79, 0xC9, - 0xA7, 0x3E, 0x9E, 0x87, 0x15, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x00, 0x6F, - 0x02, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x42, 0x78, 0x6D, 0x2C, 0xA7, 0x3E, 0x9E, 0xF9, - 0x03, 0x2A, 0x79, 0xDE, 0x4A, 0x3E, 0x09, 0xEE, 0xA3, 0x3E, 0x49, 0xCE, 0x49, 0xCE, 0x63, 0x0C, - 0xA7, 0x3E, 0x9E, 0x97, 0x41, 0x6C, 0xA4, 0x3E, 0x9E, 0xF9, 0x49, 0xF8, 0x01, 0x6C, 0x49, 0xCE, - 0xA3, 0x3E, 0x49, 0xF9, 0x9E, 0xF8, 0x01, 0x6C, 0x49, 0xCE, 0x09, 0xE9, 0x4A, 0x3E, 0xAE, 0xDA, - 0x00, 0x3E, 0x9E, 0xF9, 0x69, 0xF8, 0x4F, 0x6C, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x02, 0x0A, - 0x79, 0xDE, 0xA4, 0x3E, 0x5E, 0xF9, 0x9E, 0xDA, 0xB2, 0x3E, 0x9E, 0xE9, 0x79, 0xF8, 0x05, 0x6C, - 0xA7, 0x3E, 0x9E, 0xF9, 0x10, 0x2A, 0x79, 0xDE, 0x3E, 0x0C, 0xB0, 0x3E, 0x21, 0x02, 0x79, 0x92, - 0x4E, 0xA2, 0x80, 0x69, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x69, 0xD9, 0x12, 0x92, 0x4E, 0xA2, - 0x80, 0x69, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x59, 0xCE, 0x69, 0xCE, 0xA6, 0x3E, - 0x00, 0x4E, 0x9F, 0x3E, 0x49, 0xCE, 0x4D, 0x3E, 0x09, 0xEE, 0x4A, 0x3E, 0x09, 0xEE, 0xA4, 0x3E, - 0x9E, 0xF9, 0xA0, 0x3E, 0x79, 0xCE, 0x1F, 0x0C, 0xA7, 0x3E, 0x9E, 0xC7, 0x1C, 0x2C, 0x49, 0xF9, - 0x09, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9F, 0x3D, 0xA7, 0x3E, 0x9E, 0xB7, 0x13, 0x6C, - 0x21, 0x02, 0x4E, 0x3E, 0xAE, 0x92, 0xB3, 0x3E, 0x9E, 0xA2, 0x4A, 0x3E, 0x09, 0xF9, 0xAE, 0xDA, - 0x32, 0xE9, 0x79, 0xF8, 0x04, 0x2C, 0x01, 0x3E, 0xAE, 0xE9, 0x79, 0xF8, 0x04, 0x6C, 0xA7, 0x3E, - 0x9E, 0xF9, 0x10, 0x2A, 0x79, 0xDE, 0x0D, 0x89, 0x0D, 0x8C, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, - 0x04, 0x3F, 0x8F, 0xF9, 0xFE, 0x5C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x00, 0x6F, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, - 0xE8, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0x52, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, - 0x53, 0x3D, 0x99, 0x8D, 0x89, 0x8D, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x6F, 0xF9, 0xFA, 0x1C, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, - 0x5A, 0x3D, 0x00, 0x2B, 0x79, 0x89, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xF8, 0x3F, 0x6F, 0xF9, - 0x8A, 0x8A, 0x0E, 0x0B, 0x00, 0x0B, 0x0E, 0x1A, 0x06, 0x0B, 0x00, 0x0B, 0x02, 0x78, 0x05, 0x7C, - 0x4F, 0xF9, 0x8A, 0x8A, 0x0E, 0x1A, 0x04, 0x78, 0x07, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x18, 0x3F, 0x9F, 0xF9, 0x02, 0x2A, 0x79, 0xFF, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xF8, 0x3F, - 0x4F, 0xF9, 0x4F, 0xAA, 0x4F, 0xAA, 0xCA, 0xEA, 0x07, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x18, 0x3F, 0x9F, 0xF9, 0x04, 0x2A, 0x79, 0xFF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, - 0x6F, 0xF9, 0x09, 0x1C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x02, 0x6F, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0x1B, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x00, 0x0E, 0x00, 0x3E, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x28, 0x3F, 0x3F, 0x89, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, - 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x20, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x74, 0x19, 0x20, 0x0B, 0x00, 0x0B, - 0x95, 0x0B, 0x0C, 0x29, 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x39, 0x10, 0x0B, 0x00, 0x0B, - 0x14, 0x2B, 0x24, 0x19, 0x09, 0x8E, 0x03, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0xBC, 0x5A, 0x29, 0xD9, - 0x99, 0xBD, 0x09, 0x8E, 0x07, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x29, 0xD9, 0x99, 0xBD, 0x09, 0x8E, - 0x00, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0xFC, 0x5A, 0x19, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x01, 0x3E, - 0x9E, 0xF9, 0x89, 0xE9, 0xFC, 0x5A, 0x39, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x02, 0x3E, 0x9E, 0xF9, - 0x89, 0xE9, 0x7E, 0x5A, 0x19, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x04, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, - 0x7E, 0x5A, 0x39, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x05, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x19, 0xD9, - 0x99, 0xBD, 0x09, 0x8E, 0x06, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x39, 0xD9, 0x99, 0xBD, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xC2, 0x19, - 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x5A, 0x29, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xF2, 0x39, - 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xA0, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, - 0xA4, 0x78, 0x04, 0x2C, 0x19, 0xBF, 0x8F, 0xF9, 0x10, 0x2A, 0x79, 0xDF, 0x20, 0x0B, 0x00, 0x0B, - 0x96, 0x0B, 0x38, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x78, 0x04, 0x2C, - 0x29, 0xBF, 0x8F, 0xF9, 0x10, 0x2A, 0x79, 0xDF, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xD0, 0x3F, - 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x84, 0x0B, 0xA0, 0x78, 0x04, 0x2C, 0x39, 0xBF, 0x8F, 0xF9, - 0x10, 0x2A, 0x79, 0xDF, 0x00, 0x49, 0x19, 0xBF, 0x8F, 0xB7, 0x0A, 0xFA, 0x8F, 0xC7, 0x1A, 0xFA, - 0x29, 0xBF, 0x8F, 0xB7, 0x2A, 0xFA, 0x8F, 0xC7, 0x3A, 0xFA, 0x39, 0xBF, 0x8F, 0xB7, 0x4A, 0xFA, - 0x8F, 0xC7, 0x5A, 0xFA, 0x49, 0xF9, 0x2A, 0x1A, 0x2A, 0x78, 0x28, 0x3C, 0x49, 0xF9, 0x1A, 0x1A, - 0x0A, 0x78, 0x24, 0x3C, 0x49, 0xF9, 0x26, 0x1A, 0x22, 0x78, 0x20, 0x3C, 0x49, 0xF9, 0x29, 0x1A, - 0x28, 0x78, 0x1C, 0x3C, 0x49, 0xF9, 0x16, 0x1A, 0x02, 0x78, 0x18, 0x3C, 0x49, 0xF9, 0x19, 0x1A, - 0x08, 0x78, 0x14, 0x3C, 0x49, 0xF9, 0x25, 0x1A, 0x20, 0x78, 0x89, 0xF9, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x24, 0x3F, 0x9F, 0xF8, 0x06, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, - 0x03, 0x6F, 0x09, 0x0C, 0x10, 0x0B, 0x00, 0x0B, 0x14, 0x0B, 0xFF, 0x0C, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x1C, 0x3F, 0x01, 0x6F, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x00, 0x2B, - 0x0D, 0x89, 0x00, 0x2B, 0x0D, 0x99, 0x68, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xA0, 0x3F, - 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, - 0x97, 0x0B, 0xBE, 0x3F, 0x79, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x38, 0x3F, 0x9F, 0xF9, - 0x20, 0x0B, 0x00, 0x0B, 0x84, 0x0B, 0xA0, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, - 0x56, 0x3F, 0x79, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xD0, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, - 0x00, 0x0B, 0x79, 0x0B, 0x90, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xEE, 0x3F, - 0x79, 0xCF, 0x0D, 0x8C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x2B, 0x00, 0x0A, - 0x79, 0xFF, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x01, 0x2A, 0x00, 0x2B, - 0x79, 0x9F, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x04, 0x2A, 0x79, 0xEF, - 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x03, 0x0B, 0x00, 0x2A, 0x79, 0xFF, - 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x00, 0x2B, 0x01, 0x0A, 0x79, 0xFF, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, - 0xF8, 0x3F, 0x00, 0x6F, 0x00, 0x4F, 0x0D, 0x8C, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, - 0x9F, 0xF9, 0x01, 0x2A, 0x00, 0x2B, 0x79, 0x9F, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xEF, 0x40, 0x0B, - 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x03, 0x2B, 0x00, 0x0A, 0x79, 0xFF, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x2A, - 0x79, 0xFF, 0x0D, 0x8C, 0x00, 0x59, 0x20, 0x6D, 0x07, 0x08, 0x2A, 0x8A, 0x05, 0x08, 0x5A, 0x8A, - 0x69, 0xDA, 0x03, 0x6C, 0x69, 0xCA, 0xF8, 0x4D, 0x0D, 0x8C, 0x07, 0x08, 0x01, 0x4A, 0xF5, 0x4D, - 0x0D, 0x8C, 0x07, 0x08, 0xFB, 0xF8, 0x04, 0x2C, 0x79, 0xE9, 0x9A, 0x8A, 0x69, 0xF9, 0x00, 0x0C, - 0x0D, 0x8C, 0x00, 0x00, 0x05, 0x08, 0x0D, 0x9C, 0x79, 0xBF, 0xFF, 0x0B, 0xFF, 0x78, 0x04, 0x6C, - 0x59, 0xED, 0x69, 0x9F, 0xFE, 0x4D, 0x0D, 0x8C, 0x69, 0x9F, 0x01, 0x5A, 0xFD, 0x5C, 0x0D, 0x8C, - 0x05, 0x08, 0x0D, 0x9C, 0x00, 0x2B, 0x79, 0xDF, 0x69, 0xBF, 0xFF, 0x0B, 0xFF, 0x78, 0x05, 0x6C, - 0x59, 0xED, 0x00, 0x2B, 0x1F, 0xBF, 0xFD, 0x4D, 0x0D, 0x8C, 0x00, 0x2B, 0x1F, 0xBF, 0x01, 0x5A, - 0xFC, 0x5C, 0x0D, 0x8C, 0x87, 0x93, 0x03, 0x00, 0x46, 0xC3, 0x23, 0x00, 0x94, 0x88, 0x00, 0x20, - 0x70, 0x63, 0x00, 0x20, 0x70, 0x00, 0x70, 0x00, 0x88, 0x00, 0xA0, 0x00, 0x01, 0x00, 0x02, 0x00, - 0x06, 0x00, 0x0C, 0x00, 0xF0, 0xFF, 0xFC, 0x3F, 0x1C, 0x07, 0xC7, 0x01, 0x40, 0x17, 0xA0, 0x0B, - 0xA2, 0x03, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x00, 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, - 0x87, 0x93, 0x03, 0x00, 0x46, 0xC3, 0x23, 0x00, 0xA0, 0x84, 0x00, 0x20, 0x88, 0x5B, 0x00, 0x20, - 0x70, 0x00, 0x70, 0x00, 0x80, 0x00, 0x90, 0x00, 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, - 0xF0, 0xFF, 0xFC, 0x3F, 0x1C, 0x07, 0xC7, 0x01, 0xE1, 0x22, 0x70, 0x11, 0x23, 0x08, 0x00, 0x00, - 0x80, 0x01, 0xC0, 0x00, 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, 0x87, 0x93, 0x03, 0x00, - 0x46, 0xC3, 0x23, 0x00, 0x90, 0x79, 0x00, 0x20, 0x68, 0x45, 0x00, 0x20, 0x70, 0x00, 0x70, 0x00, - 0x88, 0x00, 0xA0, 0x00, 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, 0xF0, 0xFF, 0xFC, 0x3F, - 0x1C, 0x07, 0xC7, 0x01, 0x40, 0x17, 0xA0, 0x0B, 0xA2, 0x03, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x00, - 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, 0xB8, 0xD7, 0x9D, 0x05, 0x01, 0x00, 0x00, 0x00, - 0x45, 0x1F, 0x07, 0xD2, 0xC2, 0x2E, 0x00, 0x20, 0x0B, 0x1F, 0x05, 0x4B, 0xA1, 0x2E, 0x00, 0x20, - 0x0B, 0x1F, 0x05, 0xD2, 0xA1, 0x2E, 0x00, 0x20, 0x31, 0x33, 0x31, 0x32, 0x33, 0x31, 0x33, 0x32, - 0x00, 0x7E, 0x31, 0x32, 0x7E, 0x34, 0x7E, 0x7E, 0x37, 0x38, 0x7E, 0x7E, 0x3B, 0x7E, 0x3D, 0x3E, - 0x7E, 0x30, 0x7E, 0x7E, 0x33, 0x7E, 0x35, 0x36, 0x7E, 0x7E, 0x39, 0x3A, 0x7E, 0x3C, 0x7E, 0x7E, - 0x3F, 0x00, 0x7E, 0x21, 0x22, 0x7E, 0x24, 0x7E, 0x7E, 0x60, 0x28, 0x7E, 0x7E, 0x2B, 0x7E, 0x2D, - 0x2E, 0x7E, 0x30, 0x7E, 0x7E, 0x33, 0x7E, 0x35, 0x36, 0x7E, 0x7E, 0x39, 0x3A, 0x7E, 0x3C, 0x7E, - 0x7E, 0x3F, 0x40, 0x7E, 0x7E, 0x43, 0x7E, 0x45, 0x46, 0x7E, 0x7E, 0x49, 0x4A, 0x7E, 0x4C, 0x7E, - 0x7E, 0x4F, 0x7E, 0x51, 0x52, 0x7E, 0x54, 0x7E, 0x7E, 0x57, 0x58, 0x7E, 0x7E, 0x5B, 0x7E, 0x5D, - 0x5E, 0x7E, 0x20, 0x7E, 0x7E, 0x23, 0x7E, 0x25, 0x26, 0x7E, 0x7E, 0x29, 0x2A, 0x7E, 0x2C, 0x7E, - 0x7E, 0x2F, 0x7E, 0x31, 0x32, 0x7E, 0x34, 0x7E, 0x7E, 0x37, 0x38, 0x7E, 0x7E, 0x3B, 0x7E, 0x3D, - 0x3E, 0x7E, 0x7E, 0x41, 0x42, 0x7E, 0x44, 0x7E, 0x7E, 0x47, 0x48, 0x7E, 0x7E, 0x4B, 0x7E, 0x4D, - 0x4E, 0x7E, 0x50, 0x7E, 0x7E, 0x53, 0x7E, 0x55, 0x56, 0x7E, 0x7E, 0x59, 0x5A, 0x7E, 0x5C, 0x7E, - 0x7E, 0x5F, 0x00, - /* Below byte added to align 4 bytes */ - 0xFF -}; diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/contactless_l1_app/EMV_polling_and_loopback.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/contactless_l1_app/EMV_polling_and_loopback.c deleted file mode 100644 index 4a12014dd9a..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/contactless_l1_app/EMV_polling_and_loopback.c +++ /dev/null @@ -1,970 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include "mml_nfc_pcd_port.h" -#include "EMV_polling_and_loopback.h" - -#include "logging.h" -#include "mxc_device.h" -#include "gpio.h" - -#define KEYPRESS_RETURN_DELAY_MS 25 - -uint8_t rapdu[261]; /**< Shared RAPDU buffer */ -int32_t rapdulen; /**< Length of current RAPDU in the shared buffer */ -int32_t rapdu_displayed; /**< Display flag, used to satisfy required EMV DTE logging */ - -/* - * uid_resp Buffer to save anticollision response: UID. - */ -uid_storage_t uid_store; - -uid_storage_t get_stored_uid(void) -{ - return uid_store; -} - -#define BEEPER_PORT MXC_GPIO3 -#define BEEPER_PIN MXC_GPIO_PIN_3 -#define BEEP_PASS_TIME_MS 150 -#define BEEP_FAIL_TIME_MS 150 - -// NOTE: Volume is set as a % of Duty cycle. DTE ships with volume at 10% duty cycle -// 8470 * .1 = 847. -#define BEEP_FAIL_TONE 2500 //8470 -#define BEEP_FAIL_VOL 2000 //847 -#define BEEP_PASS_TONE 250 //847 -#define BEEP_PASS_VOL 25 //84 - -#define PASS_LED_GPIO_PORT MXC_GPIO3 -#define PASS_LED_GPIO_PIN MXC_GPIO_PIN_4 -#define FAIL_LED_GPIO_PORT MXC_GPIO3 -#define FAIL_LED_GPIO_PIN MXC_GPIO_PIN_5 - -uint32_t indicator_setup = 0; - -mxc_gpio_cfg_t pass_led; -mxc_gpio_cfg_t fail_led; -mxc_gpio_cfg_t buzzer_out; - -static void do_beep(uint32_t tone, uint32_t vol, uint32_t duration_ms) -{ - uint32_t beep_time = 0; - uint32_t beep_loop_cnt = 0; - - if (tone == 0) { - return; - } - - if (duration_ms == 0) { - return; - } - - if (tone < vol) { - return; - } - - // No timer or pulse train on the buzzer gpio, got to bit bang it - // 4Khz is maximum tone volume, as the buzzer resonates here - // Tone set the period, in us - - // Volumes sets the duty cycle us - beep_time = (duration_ms * 1000) / tone; - - // Correct tone for the requested volume - tone = tone - vol; - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - - while (beep_loop_cnt++ < beep_time) { - MXC_GPIO_OutSet(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(vol); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(tone); - } - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); -} - -static void setup_indicator(void) -{ - pass_led.port = PASS_LED_GPIO_PORT; - pass_led.mask = PASS_LED_GPIO_PIN; - pass_led.pad = MXC_GPIO_PAD_NONE; - pass_led.func = MXC_GPIO_FUNC_OUT; - - MXC_GPIO_Config(&pass_led); - MXC_GPIO_OutSet(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - - fail_led.port = FAIL_LED_GPIO_PORT; - fail_led.mask = FAIL_LED_GPIO_PIN; - fail_led.pad = MXC_GPIO_PAD_NONE; - fail_led.func = MXC_GPIO_FUNC_OUT; - - MXC_GPIO_Config(&fail_led); - MXC_GPIO_OutSet(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); - - buzzer_out.port = BEEPER_PORT; - buzzer_out.mask = BEEPER_PIN; - buzzer_out.pad = MXC_GPIO_PAD_NONE; - buzzer_out.func = MXC_GPIO_FUNC_OUT; - // Use 3.3V for louder Buzz - buzzer_out.vssel = MXC_GPIO_VSSEL_VDDIOH; - - MXC_GPIO_Config(&buzzer_out); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - - indicator_setup = 1; -} - -static void indicate_success(void) -{ - MXC_GPIO_OutClr(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - MXC_GPIO_OutSet(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); - - do_beep(BEEP_PASS_TONE, BEEP_PASS_VOL, BEEP_PASS_TIME_MS); -} - -static void indicate_failure(void) -{ - MXC_GPIO_OutSet(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - MXC_GPIO_OutClr(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); - - do_beep(BEEP_FAIL_TONE, BEEP_FAIL_VOL, BEEP_FAIL_TIME_MS); -} - -static void clear_indications(void) -{ - MXC_GPIO_OutSet(PASS_LED_GPIO_PORT, PASS_LED_GPIO_PIN); - MXC_GPIO_OutSet(FAIL_LED_GPIO_PORT, FAIL_LED_GPIO_PIN); -} - -static int32_t emvl1interopapduloop(void) -{ - int32_t ret; - // NOTE: need to have a large enough buffer here to handle loopback commands as large as 256 bytes, - // plus some header/footer bytes. - uint8_t capdu[261] = { 0x00, 0xA4, 0x04, 0x00, 0x0E, '2', 'P', 'A', 'Y', '.', - 'S', 'Y', 'S', '.', 'D', 'D', 'F', '0', '1', 0x00 }; - int32_t capdulen = 20; - - //do apdu. - do { - logging("CAPDU "); - hexdump(DBG_LVL_LOG, capdu, capdulen, 1); - - ret = SendAPDU(capdu, capdulen, rapdu, &rapdulen); - rapdu_displayed = 2; - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret) { - switch (ret) { - case ISO14443_3_ERR_PROTOCOL: - case ISO14443_3_ERR_TIMEOUT: - case ISO14443_3_ERR_TRANSMISSION: - return RESETPROCEDURE; - } - } - - if (rapdulen <= 2) { - // 2 bytes should be wrong case. - warning("Short APDU: %ld\n", rapdulen); - return RESETPROCEDURE; - } - - // This appears to be a valid RAPDU, allow it to be displayed - // To comply with logging requirement by EMVCo, we use this - // mechanic to only display the rapdu once. Sometimes we do here in the - // loop-back, other times at the end of the exchange loop below. - rapdu_displayed = 0; - - if (rapdu[1] == REMOVALPROCEDURE) { - info("Removal procedure\n"); - return REMOVALPROCEDURE; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - //pre next capdu,no status - memcpy(capdu, rapdu, rapdulen - 2); - capdulen = rapdulen - 2; - } while (1); - - return ret; -} - -/** - * @brief Implements EMV APDU Loopback for EMV L1 testing and verification - * - * Implements EMV APDU Loopback for EMV L1 testing and verification - * - * Called by @ref singleemvl1exchange - * - * @return #LOOPBACK_RAPDUS - */ -static int32_t emvl1apduloop(void) -{ - int32_t ret; - // NOTE: need to have a large enough buffer here to handle loopback commands as large as 256 bytes, - // plus some header/footer bytes. - uint8_t capdu[261] = { 0x00, 0xA4, 0x04, 0x00, 0x0E, '2', 'P', 'A', 'Y', '.', - 'S', 'Y', 'S', '.', 'D', 'D', 'F', '0', '1', 0x00 }; - int32_t capdulen = 20; - - //do apdu. - do { - logging("CAPDU "); - hexdump(DBG_LVL_LOG, capdu, capdulen, 1); - - ret = SendAPDU(capdu, capdulen, rapdu, &rapdulen); - rapdu_displayed = 2; - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret) { - switch (ret) { - case ISO14443_3_ERR_PROTOCOL: - case ISO14443_3_ERR_TIMEOUT: - case ISO14443_3_ERR_TRANSMISSION: - return RESETPROCEDURE; - } - } - - if (rapdulen <= 2) { - // 2 bytes should be wrong case. - warning("Short APDU: %ld\n", rapdulen); - return RESETPROCEDURE; - } - - // This appears to be a valid RAPDU, allow it to be displayed - // To comply with logging requirement by EMVCo, we use this - // mechanic to only display the rapdu once. Sometimes we do here in the - // loop-back, other times at the end of the exchange loop below. - rapdu_displayed = 0; - - if (rapdu[1] == REMOVALPROCEDURE) { - info("Removal procedure\n"); - return REMOVALPROCEDURE; - } else if (rapdu[1] == POWEROFFPROCEDURE) { - info("Power-Off procedure\n"); - return POWEROFFPROCEDURE; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - //pre next capdu,no status - memcpy(capdu, rapdu, rapdulen - 2); - capdulen = rapdulen - 2; - } while (1); - - return ret; -} - -/** - * @brief Implements EMV card polling for use in application/demo environment - * - * Implements EMV card polling for use in application/demo environment - * - * @param loop_num how many times through the loop before returning - * - * @return @ref POLLING_RESPONSES - */ -#ifdef LOG_ACTIVATION_RESPONSES -int32_t emvl1_poll_for_card(uint32_t loop_num) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - uint32_t count = 0; - - uint8_t atqa_buff[2]; - int32_t atqa_response_len; - - uint8_t resp_buff[256]; - int32_t resp_buff_len = 0; - - uint8_t sak_response; - - for (count = 0; count < loop_num; count++) { - type_a = 0; - type_b = 0; - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - return COLLISION_DETECTED; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_reset(); // NOTE: This is not done for EMV loopback - return NO_CARD_FOUND; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect_response(atqa_buff, &atqa_response_len, resp_buff, - &resp_buff_len, &sak_response); - - if (ret == ISO14443_3_ERR_SUCCESS) { - logging("ATQA "); - hexdump(DBG_LVL_LOG, atqa_buff, atqa_response_len, 0); - logging("UID "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - memcpy(uid_store.uid, resp_buff, resp_buff_len); - uid_store.uid_length = resp_buff_len; - logging("SAK "); - hexdump(DBG_LVL_LOG, &sak_response, 1, 0); - - ret = iso_14443_3a_active_response(resp_buff, &resp_buff_len); - - if (ret == ISO14443_3_ERR_SUCCESS) { - logging("ATS "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - - // Got a Type A Card ready for APDUs - return TYPE_A_READY; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - logging("UID "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - memcpy(uid_store.uid, resp_buff, resp_buff_len); - uid_store.uid_length = resp_buff_len; - return TYPE_A_NON_ISO14443_4_READY; - } - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - return COLLISION_DETECTED; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect_response(resp_buff, &resp_buff_len); - - if (ret == ISO14443_3_ERR_SUCCESS) { - logging("ATQB "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - - ret = iso_14443_3b_active_response(resp_buff, &resp_buff_len); -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - // Got a Type B Card ready for APDUs - - logging("ATTRIB_RESP "); - hexdump(DBG_LVL_LOG, resp_buff, resp_buff_len, 0); - return TYPE_B_READY; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - return TYPE_B_NON_ISO14443_4_READY; - } - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } - } - - return 0; -} - -#else -// Don't log activation responses -int32_t emvl1_poll_for_card(uint32_t loop_num) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - uint32_t count = 0; - - for (count = 0; count < loop_num; count++) { - type_a = 0; - type_b = 0; - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - return COLLISION_DETECTED; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_reset(); // NOTE: This is not done for EMV loopback - return NO_CARD_FOUND; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3a_active(); - if (ret == ISO14443_3_ERR_SUCCESS) { - // Got a Type A Card ready for APDUs - return TYPE_A_READY; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - return TYPE_A_NON_ISO14443_4_READY; - } - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - return COLLISION_DETECTED; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect(); - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3b_active(); -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - // Got a Type B Card ready for APDUs - return TYPE_B_READY; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - return CARD_FOUND_WITH_ERROR; - } - } else { - // Is this a NON 14443-4 card? - if (ret == ISO14443_3_ERR_NON_ISO14443_4_CARD) { - return TYPE_B_NON_ISO14443_4_READY; - } - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - return COLLISION_DETECTED; - } - } - } - - return 0; -} -#endif // LOG_ACTIVATION_RESPONSES - -/** - * @brief Implements EMV card polling for use in Level 1 loop-back testing environment - * - * Implements EMV card polling for use in Level 1 loop-back testing environment - * - * @param callback @ref callback_check_for_loop_termination_t - * Callback to check if this polling loop should be terminated. - * For instance the operator desires to switch to a different test mode. - * - * @note If @ref callback_check_for_loop_termination_t is NULL, loop will - * not return until a card is found and one exchange is completed. - * - * @retval #POLLING_TERMINATED - * @retval #EXCHANGE_COMPLETE - */ -int32_t singleemvl1exchange(callback_check_for_loop_termination_t callback) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - - while (1) { - type_a = 0; - type_b = 0; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A polling aborted\n"); - return 1; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling aborted\n"); - return 1; - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - break; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - continue; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3a_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A activate aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - //APDU - ret = emvl1apduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("A: Removal\n"); - iso_14443_3a_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("A: Reset\n"); - nfc_reset(); - break; - case POWEROFFPROCEDURE: - info("A: Power Off\n"); - poweroff_operatingfield(); - mml_nfc_pcd_task_sleep(TIMEOUT_POWEROFF_MS); - poweron_operatingfield(); - break; - } - break; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else { - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling 2 aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - break; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3b_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B activate aborted\n"); - return 1; - } - -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - //APDU - ret = emvl1apduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("B: Removal\n"); - iso_14443_3b_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("B: Reset\n"); - nfc_reset(); - break; - case POWEROFFPROCEDURE: - info("B: Power Off\n"); - poweroff_operatingfield(); - mml_nfc_pcd_task_sleep(TIMEOUT_POWEROFF_MS); - poweron_operatingfield(); - break; - } - - break; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - break; - } - } else { - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } - break; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - return 0; -} - -int32_t singleemvl1interopexchange(callback_check_for_loop_termination_t callback) -{ - int32_t ret; - uint8_t type_a = 0; - uint8_t type_b = 0; - - if (!indicator_setup) { - setup_indicator(); - } - - clear_indications(); - - while (1) { - type_a = 0; - type_b = 0; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - ret = iso_14443_3a_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A polling aborted\n"); - return 1; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - ret = iso_14443_3b_polling(); - if (ret == ISO14443_3_ERR_SUCCESS) { - type_b = 1; - info("TYPEB\n"); - } else if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling aborted\n"); - return 1; - } - - if (type_a == 1 && type_b == 1) { - //Both type a and type b, Collision - nfc_reset(); - break; - } else if (type_a == 0 && type_b == 0) { - //No card - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - continue; - } else if (type_a == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3a_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A activate aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - //APDU - ret = emvl1interopapduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type A APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("A: Removal\n"); - logging("Success\n"); - indicate_success(); - iso_14443_3a_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("A: Reset\n"); - logging("Failure\n"); - indicate_failure(); - iso_14443_3a_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - } - break; - } else { - //Active type A failed - warning("A active fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else { - //Type A collision - warning("A coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } else if (type_b == 1) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3a_polling(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B polling 2 aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - type_a = 1; - info("TYPEA found after B, Collision\n"); - nfc_reset(); - break; - } - - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - ret = iso_14443_3b_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B collision detect aborted\n"); - return 1; - } - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = iso_14443_3b_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B activate aborted\n"); - return 1; - } - -#ifdef IGNORE_HIGH_INF - if ((ret == ISO14443_3_ERR_SUCCESS) || (ret == ISO14443_3_ERR_CONTAINS_HIGH_INF)) { -#else - if (ret == ISO14443_3_ERR_SUCCESS) { -#endif - //APDU - ret = emvl1apduloop(); - - if (ret == ISO14443_3_ERR_ABORTED) { - logging("Type B APDU loop aborted\n"); - return 1; - } - - switch (ret) { - case REMOVALPROCEDURE: - info("B: Removal\n"); - logging("Success\n"); - indicate_success(); - iso_14443_3b_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - case RESETPROCEDURE: - info("B: Reset\n"); - logging("Failure\n"); - indicate_failure(); - iso_14443_3b_remove(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - break; - } - - break; - } else { - //Active type B failed - warning("B active fail: 0x%x\n", ret); - nfc_reset(); - break; - } - } else { - //Type B collision - warning("B coll fail: 0x%X\n", ret); - nfc_reset(); - break; - } - } - break; - } - - if (rapdu_displayed == 0) { - rapdu_displayed = 1; - logging("RAPDU "); - hexdump(DBG_LVL_LOG, rapdu, rapdulen, 0); - } - - return 0; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/contactless_l1_app/emvl1_app.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/contactless_l1_app/emvl1_app.c deleted file mode 100644 index 29328dfb90c..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/contactless_l1_app/emvl1_app.c +++ /dev/null @@ -1,3126 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "mxc_device.h" -#include "mml_nfc_pcd_port.h" -#include "EMV_polling_and_loopback.h" -#include "emvl1_app.h" -#include "logging.h" -#include "pbm_commands.h" - -#include "uart.h" -#include "mml_nfc_pcd_rf_driver.h" - -#define FIELD_LOAD_DELAY_MS 100 -#define KEYPRESS_RETURN_DELAY_MS 25 - -#define TIMEOUT_TRANSAC_US 509 -#define PAUSE_TRANSAC_MS 95 - -#define REMOVALPROCEDURE 0x70 -#define POWEROFFPROCEDURE 0x72 - -#define RESETPROCEDURE 0x80 - -#define TYPE_A_READY 0x0A -#define TYPE_B_READY 0x0B - -#define MATRIX_HORIZONTAL_NUM_TICKS 27 - -#define PCD_HW_VER "2.0" -#define PCD_SW_VER "4.0.0" -#define PCD_FW_SUM "4b49c1cbf6e10d37d7559940246a7b9b1993a8dc" - -// Per Sony Whitepaper: Card Technical Note for Software Development -// the Guard Time after transmission of Command Packet Data to when the Reader should -// be ready to receive preamble is (42 x 64 - 16)/fc ~197us -#define FDT_F_PICC_MIN_TOLERANCE_EARLY ((42 * 64) - 16) - -mml_nfc_pcd_analog_params_matrix_t evkit_antenna_112x76_matrix = { - .fd_thresholds = { 180, 170, 140 }, - .fd_dyn_trigger_a = { 125, 125, 125 }, - .fd_dyn_math_a = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_b = { 125, 125, 125 }, - .fd_dyn_math_b = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_f = { 100, 100, 100 }, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I }, - .fd_dyn_trigger_v = { 125, 125, 125 }, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000 }, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000 }, - .fd_dyn_sttm_bfv = { 0x06060606, 0x06060606, 0x06060606 }, - .fd_dyn_stfm_bfv = { 0x7F060606, 0x7F060606, 0x7F060606 }, - .fd_dyn_gain = { 12, 12, 12 }, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F } -}; - -mml_nfc_pcd_analog_params_matrix_t custom_antenna_65x65_matrix = { - .fd_thresholds = { 220, 195, 180, 160, 120, 50 }, - .fd_dyn_trigger_a = { 45, 45, 50, 85, 100, 120 }, - .fd_dyn_math_a = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, - IQ_MATH_CH_I }, - .fd_dyn_trigger_b = { 60, 60, 60, 20, 20, 20 }, - .fd_dyn_math_b = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I, - IQ_MATH_CH_I }, - .fd_dyn_trigger_f = { 40, 35, 25 }, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I }, - .fd_dyn_trigger_v = { 40, 35, 25 }, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000, 0x7F000000, 0x7F000000, 0x7F000000 }, - .fd_dyn_sttm_bfv = { 0x0D0D0D0D, 0x0B0B0B0B, 0x0B0B0B0B, 0x0B0B0B0B, 0x08080808, 0x06060606 }, - .fd_dyn_stfm_bfv = { 0x7F0D0D0D, 0x7F0B0B0B, 0x7F0B0B0B, 0x7F0B0B0B, 0x7F080808, 0x7F5A5550 }, - .fd_dyn_gain = { 12, 12, 12, 12, 12, 12 }, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F } -}; - -/* -mml_nfc_pcd_analog_params_matrix_t custom_antenna_65x65_matrix = { - .fd_thresholds = {255, 170, 160, 125}, - .fd_dyn_trigger_a = { 45, 45, 45}, - .fd_dyn_math_a = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I}, - .fd_dyn_trigger_b = { 125, 125, 125}, - .fd_dyn_trigger_b = { 35, 35, 35}, - .fd_dyn_math_b = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I}, - .fd_dyn_trigger_f = { 40, 35, 25}, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I}, - .fd_dyn_trigger_v = { 40, 35, 25}, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I}, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000}, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000}, - .fd_dyn_sttm_bfv = { 0x06060606, 0x06060606, 0x06060606}, - .fd_dyn_stfm_bfv = { 0x7F060606, 0x7F060606, 0x7F060606}, - .fd_dyn_gain = { 12, 12, 12}, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F} -}; -*/ - -uint8_t dte_buffer[280]; - -// Character buffer for data input -char input_buffer[32]; - -int32_t key_has_been_pressed(void); -uint8_t get_key_press_no_echo(void); - -// FIXME: remove when replaced by mxc_sys subroutine -int32_t trim_ro_to_rtc(void) -{ -#define NBB_BASE 0x40000800 -#define NBBFCR1_OFF 0x04 -#define AC_EN_POS 0 -#define AC_RUNNING_POS 1 - - volatile uint32_t *nbbfcr1_reg = (volatile uint32_t *)(NBB_BASE + NBBFCR1_OFF); - - // Need the 32Khz crystal enabled to do this trim - int ret_val = MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_ERTCO); - - if (ret_val != E_SUCCESS) { - return ret_val; - } - - // Bits: [9:8] MU[1:0] - How quickly it allowed to tune, provides some hysteresis - // 2 LDTRM - Allows it to actually use the trim? unclear - // 1 ACRUN - Runs the autocal - // 0 ACEN - Enabled the autocal block. Unclear why need this and run - *nbbfcr1_reg = 0x307; - - // At this point it should run until disabled. - - // Wait a bit to let autocal run, see if it did anything. - mml_nfc_pcd_task_sleep(100); - - if ((*nbbfcr1_reg & 0xFF80000) == 0) { - return E_BAD_STATE; - } - - return E_SUCCESS; -} - -void clear_screen(void) -{ - printf("\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n"); -} - -uint8_t get_key_press(void) -{ - int32_t status = 0; - uint8_t key_press = 0; - - // Wait for available char - do { - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - status = MXC_UART_GetRXFIFOAvailable(MXC_UART0); - } while (status < 1); - - key_press = MXC_UART_ReadCharacter(MXC_UART0); - - // Echo the key back - MXC_UART_WriteCharacter(MXC_UART0, key_press); - - return key_press; -} - -uint8_t get_key_press_no_echo(void) -{ - int32_t status = 0; - uint8_t key_press = 0; - - // Wait for available char - do { - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - status = MXC_UART_GetRXFIFOAvailable(MXC_UART0); - } while (status < 1); - - key_press = MXC_UART_ReadCharacter(MXC_UART0); - - return key_press; -} - -int32_t key_has_been_pressed(void) -{ - int32_t status = 0; - - status = MXC_UART_GetRXFIFOAvailable(MXC_UART0); - - // Eat random keypresses, to avoid bad menu interactions - MXC_UART_ClearRXFIFO(MXC_UART0); - - // If we have any available then a key has been pressed - if (status > 0) { - return 1; - } - return 0; -} - -int32_t dte_get_input_string(char *input_string) -{ - uint8_t key_press = 0; - int32_t char_count = 0; - - while (1) { - key_press = get_key_press(); - - if ((key_press == '\n') || (key_press == '\r')) { - break; - } - - if ((key_press == ' ') && (char_count == 0)) { - continue; // ignore leading spaces - } - - if ((key_press == '\b') && (char_count > 0)) { - // backspace, back up one character - // NOTE: we sent the terminal one backspace already - // but now we want to clear out the character, so put ' ' and then another '\b' - printf(" \b"); - char_count--; - continue; - } - - input_string[char_count++] = key_press; - } - - // Null terminate the string - input_string[char_count] = 0x00; - - return char_count; -} - -int32_t dte_get_int_val_raw(int32_t exp_char_count, int32_t min_val) -{ - int32_t char_count = 0; - int32_t input_int = 0; - - while (1) { - char_count = dte_get_input_string(input_buffer); - - if (char_count > exp_char_count) { - printf("\nMax characters allowed %ld try again\n", exp_char_count); - return -1; - } - - if (char_count > 0) { - break; - } - } - - // Get actual data - sscanf(input_buffer, "%d", &input_int); - - if (char_count > exp_char_count) { - printf("\nMax characters allowed %ld try again\n", exp_char_count); - return -1; - } - - return input_int; -} - -int32_t dte_get_int_val(char name[], int32_t exp_char_count, int32_t min_val, int32_t max_val) -{ - int32_t new_value = 0; - - printf("Enter an new %s value from %ld to %ld\n", name, min_val, max_val); - printf("=> "); - - new_value = dte_get_int_val_raw(exp_char_count, min_val); - - if ((new_value < min_val) || (new_value > max_val)) { - printf("Value not in allowed range try again\n"); - return -1; - } - - printf("New %s value: %ld\n", name, new_value); - - return new_value; -} - -int32_t dte_get_math_val(char name[]) -{ - int32_t new_value = 0; - - while (1) { - printf("Select a combiner math from these options:\n"); - printf("1. IQ_MATH_CH_I\n"); - printf("2. IQ_MATH_CH_Q\n"); - printf("3. IQ_MATH_I_MINUS_Q\n"); - printf("4. IQ_MATH_Q_MINUS_I\n"); - printf("5. IQ_MATH_I_PLUS_Q\n"); - printf("=> "); - - new_value = dte_get_int_val_raw(1, 1); - - if ((new_value < 1) || (new_value > 5)) { - printf("Selection not in allowed range try again\n"); - } else { - break; - } - } - - printf("New %s selection: ", name); - - switch (new_value) { - case 1: - printf("IQ_MATH_CH_I\n"); - return IQ_MATH_CH_I; - case 2: - printf("IQ_MATH_CH_Q\n"); - return IQ_MATH_CH_Q; - case 3: - printf("IQ_MATH_I_MINUS_Q\n"); - return IQ_MATH_I_MINUS_Q; - case 4: - printf("IQ_MATH_Q_MINUS_I\n"); - return IQ_MATH_Q_MINUS_I; - case 5: - printf("IQ_MATH_I_PLUS_Q\n"); - return IQ_MATH_I_PLUS_Q; - - default: - info("IQ_MATH_I_MINUS_Q\n"); - return IQ_MATH_I_MINUS_Q; - } -} - -void show_current_field_loading_level(void) -{ - // Displays both the current sensed field level, and the current threshold - uint8_t sensed_threshold = 0; - uint32_t field_sensed = 0; - uint8_t current_field_level = 0; - - poweroff_operatingfield(); - poweron_operatingfield(); - - printf("\nField Load Level: "); - - while (1) { - if (key_has_been_pressed()) { - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - logging("\n\n"); - poweroff_operatingfield(); - return; - } - - // Sweep through and identify the requested level - for (sensed_threshold = 0; sensed_threshold < FD_THRESH_NUM_STEPS;) { - mml_nfc_pcd_detect_loading( - mml_nfc_pcd_analog_parameters_matrix.fd_thresholds[sensed_threshold], - &field_sensed); - - if (field_sensed) { - break; - } - - sensed_threshold++; - } - - // Bounds check - if (sensed_threshold > (FD_THRESH_NUM_STEPS - 1)) { - sensed_threshold = FD_THRESH_NUM_STEPS - 1; - } - - mml_nfc_pcd_find_current_field_loading(¤t_field_level); - - printf("\b\b\b\b\b\b\b\b\b\b\b\b%3d index: %d", current_field_level, sensed_threshold); - - mml_nfc_pcd_task_sleep(FIELD_LOAD_DELAY_MS); - } -} - -void dte_antenna_selection(void) -{ - while (1) { - clear_screen(); - - printf("Antenna Selection Menu\n"); - printf("L. Load Analog Settings for 112x76 Antenna\n"); - printf("C. Load Analog Settings for Custom 65x65 Antenna\n"); - printf("E. Exit back to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - // Load Analog Settings for 112x76 Antenna - case 'L': - case 'l': - mml_nfc_pcd_analog_parameters_matrix = evkit_antenna_112x76_matrix; - poweroff_operatingfield(); - poweron_operatingfield(); - printf("\nEVKIT Antenna 112x76 Settings Loaded\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - // Load Analog Settings for 65x65 Antenna - case 'C': - case 'c': - mml_nfc_pcd_analog_parameters_matrix = custom_antenna_65x65_matrix; - poweroff_operatingfield(); - poweron_operatingfield(); - printf("\nCustom antenna 65x65 Settings Loaded\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - // Exit - case 'E': - case 'e': - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void print_comb_math(uint8_t iq_math) -{ - switch (iq_math) { - case IQ_MATH_CH_I: - printf(" I | "); - break; - case IQ_MATH_CH_Q: - printf(" Q | "); - break; - case IQ_MATH_I_MINUS_Q: - printf(" I-Q | "); - break; - case IQ_MATH_Q_MINUS_I: - printf(" Q-I | "); - break; - case IQ_MATH_I_PLUS_Q: - printf(" I+Q | "); - break; - - default: - printf(" ??? | "); - break; - } -} - -void print_matrix_header(void) -{ - int i; - printf("\nStep Index: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", i); - } - printf("\n"); - for (i = 0; i < MATRIX_HORIZONTAL_NUM_TICKS; i++) { - printf("-"); - } - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("-----------"); - } - printf("\n"); -} - -void get_analog_math_value(uint8_t val_array[], char name[]) -{ - int i, j; - int new_val = 0; - char val_string[64]; - uint8_t key_press = 0; - - printf("Enter index to change, or 'A' for all\n"); - printf("=> "); - - while (1) { - key_press = get_key_press(); - if (((key_press >= '0') && (key_press <= ((FD_THRESH_NUM_STEPS - 1) + '0'))) || - (key_press == 'A') || (key_press == 'a')) { - break; - } - - printf("Invalid selection try again\n"); - printf("=> "); - } - - if ((key_press == 'A') || (key_press == 'a')) { - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - print_comb_math(val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - new_val = dte_get_math_val(val_string); - - val_array[i] = new_val; - } - } else { - i = key_press - '0'; - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - print_comb_math(val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - new_val = dte_get_math_val(val_string); - - val_array[i] = new_val; - } -} - -void get_hex_analog_matrix_value(uint32_t val_array[], char name[]) -{ - int i, j; - uint32_t new_val = 0; - char val_string[64]; - uint8_t key_press = 0; - int scan_status = 0; - - printf("Enter index to change, or 'A' for all\n"); - printf("=> "); - - while (1) { - key_press = get_key_press(); - if (((key_press >= '0') && (key_press <= ((FD_THRESH_NUM_STEPS - 1) + '0'))) || - (key_press == 'A') || (key_press == 'a')) { - break; - } - - printf("Invalid selection try again\n"); - printf("=> "); - } - - if ((key_press == 'A') || (key_press == 'a')) { - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf("%08X | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - printf("Enter an new value in HEX with no 0x\n"); - printf("=> "); - dte_get_input_string(input_buffer); - scan_status = sscanf(input_buffer, "%X", &new_val); - } while (scan_status != 1); - - val_array[i] = new_val; - } - } else { - i = key_press - '0'; - - print_matrix_header(); - - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf("%08X | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - printf("Enter an new value in HEX with no 0x\n"); - printf("=> "); - dte_get_input_string(input_buffer); - scan_status = sscanf(input_buffer, "%X", &new_val); - } while (scan_status != 1); - - val_array[i] = new_val; - } -} - -void get_analog_matrix_value(uint8_t val_array[], char name[], int32_t exp_char_count, - int32_t min_val, int32_t max_val) -{ - int i, j; - int new_val = 0; - char val_string[64]; - uint8_t key_press = 0; - - printf("Enter index to change, or 'A' for all\n"); - printf("=> "); - - while (1) { - key_press = get_key_press(); - if (((key_press >= '0') && (key_press <= ((FD_THRESH_NUM_STEPS - 1) + '0'))) || - (key_press == 'A') || (key_press == 'a')) { - break; - } - - printf("Invalid selection try again\n"); - printf("=> "); - } - - if ((key_press == 'A') || (key_press == 'a')) { - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_matrix_header(); - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf(" %3d | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - new_val = dte_get_int_val(val_string, exp_char_count, min_val, max_val); - } while (new_val == -1); - - val_array[i] = new_val; - } - } else { - i = key_press - '0'; - - print_matrix_header(); - - printf("%s", name); - for (j = 0; j < FD_THRESH_NUM_STEPS; j++) { - printf(" %3d | ", val_array[j]); - } - printf("\n"); - - snprintf(val_string, sizeof(val_string), "value for index %d", i); - - do { - new_val = dte_get_int_val(val_string, exp_char_count, min_val, max_val); - } while (new_val == -1); - - val_array[i] = new_val; - } -} - -void force_rf_settings_update(void) -{ - // We will use a dummy transaction to force the actual config update - int32_t tx_buffer_len = 1; - uint8_t tx_buffer[1] = { 0x00 }; - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - int32_t status = MML_NFC_PCD_E_SUCCESS; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = tx_buffer; - trans_params.tx_len = tx_buffer_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.early_limit = 4000; - trans_params.timeout = 5000; - trans_params.delay_till_send = 3000; - - while (1) { - printf("\n\nUpdate and set RF config for which protocol?\n\n"); - - printf("1. PROTOCOL_ISO14443A\n"); - printf("2. PROTOCOL_ISO14443B\n"); - printf("3. PROTOCOL_TYPE_F\n"); - printf("4. PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH\n"); - printf("5. PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW\n"); - printf("6. PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH\n"); - printf("7. PROTOCOL_ISO15693_100_1OF4_DUAL_LOW\n"); - printf("8. PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH\n"); - printf("9. PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW\n"); - printf("A. PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH\n"); - printf("B. PROTOCOL_ISO15693_100_1OF256_DUAL_LOW\n"); - printf("C. PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH\n"); - printf("D. PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW\n"); - printf("E. PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH\n"); - printf("F. PROTOCOL_ISO15693_10_1OF4_DUAL_LOW\n"); - printf("G. PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH\n"); - printf("H. PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW\n"); - printf("I. PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH\n"); - printf("J. PROTOCOL_ISO15693_10_1OF256_DUAL_LOW\n"); - - switch (get_key_press()) { - case '1': - trans_params.protocol = PROTOCOL_ISO14443A; - break; - case '2': - trans_params.protocol = PROTOCOL_ISO14443B; - break; - case '3': - trans_params.protocol = PROTOCOL_TYPE_F; - break; - case '4': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH; - break; - case '5': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW; - break; - case '6': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH; - break; - case '7': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_LOW; - break; - case '8': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH; - break; - case '9': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW; - break; - case 'A': - case 'a': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH; - break; - case 'B': - case 'b': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_LOW; - break; - case 'C': - case 'c': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH; - break; - case 'D': - case 'd': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW; - break; - case 'E': - case 'e': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH; - break; - case 'F': - case 'f': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_LOW; - break; - case 'G': - case 'g': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH; - break; - case 'H': - case 'h': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW; - break; - case 'I': - case 'i': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH; - break; - case 'J': - case 'j': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_LOW; - break; - - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - continue; - } - - status = mml_nfc_pcd_transceive(trans_params); - - if ((status != MML_NFC_PCD_E_SUCCESS) && (status != MML_NFC_PCD_E_TIMEOUT)) { - printf("Error during attempt to set RF for protocol: %d\n", status); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - } else { - printf("RF config set\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - } - - return; - } -} - -void print_matrix_spacer(void) -{ - int i = 0; - - for (i = 0; i < 27; i++) { - printf("-"); - } - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("-----------"); - } - printf("\n"); -} - -void dte_analog_settings() -{ - int i = 0; - - while (1) { - clear_screen(); - - printf("Maxim Analog Settings Menu\n"); - print_matrix_header(); - - printf("FD Thresholds: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_thresholds[i]); - } - printf("\n"); - - print_matrix_spacer(); - - printf("FD Dynamic Combiner Math A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a[i]); - } - printf("\n"); - printf("FD Dynamic Combiner Math B: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_b[i]); - } - printf("\n"); - printf("FD Dynamic Combiner Math F: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_f[i]); - } - printf("\n"); - printf("FD Dynamic Combiner Math V: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - print_comb_math(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_v[i]); - } - - printf("\n"); - - printf("\n"); - printf("FD Dynamic STTM_A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a[i]); - } - printf("\n"); - printf("FD Dynamic STFM_A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a[i]); - } - printf("\n"); - printf("FD Dynamic STTM_BFV: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[i]); - } - printf("\n"); - printf("FD Dynamic STFM_BFV: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%08X | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[i]); - } - - printf("\n"); - - printf("\n"); - printf("FD Dynamic Trigger Level A: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a[i]); - } - printf("\n"); - printf("FD Dynamic Trigger Level B: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_b[i]); - } - printf("\n"); - printf("FD Dynamic Trigger Level F: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_f[i]); - } - - printf("\n"); - - printf("\n"); - printf("FD Dynamic Trigger Level V: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_v[i]); - } - printf("\n"); - printf("FD Dynamic Gain: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_gain[i]); - } - printf("\n"); - printf("FD Dynamic Attenuation: "); - for (i = 0; i < FD_THRESH_NUM_STEPS; i++) { - printf("%8d | ", mml_nfc_pcd_analog_parameters_matrix.fd_dyn_atten[i]); - } - printf("\n"); - print_matrix_spacer(); - - printf("1. Change FD Thresholds\n"); - - printf("\n"); - - printf("2. Change FD Dynamic Combiner Math A\n"); - printf("3. Change FD Dynamic Combiner Math B\n"); - printf("4. Change FD Dynamic Combiner Math F\n"); - printf("5. Change FD Dynamic Combiner Math V\n"); - - printf("\n"); - - printf("6. Change FD Dynamic STTM_A\n"); - printf("7. Change FD Dynamic STFM_A\n"); - printf("8. Change FD Dynamic STTM_BFV\n"); - printf("9. Change FD Dynamic STFM_BFV\n"); - - printf("\n"); - - printf("A. Change FD Dynamic Trigger A\n"); - printf("B. Change FD Dynamic Trigger B\n"); - printf("F. Change FD Dynamic Trigger F\n"); - printf("V. Change FD Dynamic Trigger V\n"); - - printf("\n"); - - printf("G. Change FD Dynamic Gain\n"); - printf("R. Change FD Dynamic Attenuation\n"); - - printf("\n"); - - printf("T. Test/Display Field Detect Level\n"); - printf("U. Update actual RF settings\n"); - printf("E. Exit back to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - // FD Thresholds - case '1': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_thresholds, - "FD Thresholds ", 3, 0, 255); - break; - // FD Dynamic STTM_A - case '6': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a, - "FD Dynamic STTM_A: "); - break; - // FD Dynamic STFM_A - case '7': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a, - "FD Dynamic STFM_A "); - break; - // FD Dynamic STTM_BFV - case '8': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv, - "FD Dynamic STTM_BVF "); - break; - // FD Dynamic STFM_BFV - case '9': - get_hex_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv, - "FD Dynamic STFM_BVF "); - break; - // FD Dynamic Trigger A - case 'A': - case 'a': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a, - "FD Dynamic Trigger A ", 3, 0, 127); - break; - // FD Dynamic Math A - case '2': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a, - "FD Dynamic Combiner Math A "); - break; - // FD Dynamic Trigger B - case 'B': - case 'b': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_b, - "FD Dynamic Trigger B ", 3, 0, 127); - break; - // FD Dynamic Math B - case '3': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_b, - "FD Dynamic Combiner Math B "); - break; - // FD Dynamic Trigger F - case 'F': - case 'f': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_f, - "FD Dynamic Trigger F ", 3, 0, 127); - break; - // FD Dynamic Math F - case '4': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_f, - "FD Dynamic Combiner Math F "); - break; - // FD Dynamic Trigger V - case 'V': - case 'v': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_v, - "FD Dynamic Trigger V ", 3, 0, 127); - break; - // FD Dynamic Math V - case '5': - get_analog_math_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_v, - "FD Dynamic Combiner Math V "); - break; - // FD Dynamic Gain - case 'G': - case 'g': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_gain, - "FD Dynamic Gain ", 2, 0, 12); - break; - // FD Dynamic Attenuation - case 'R': - case 'r': - get_analog_matrix_value(mml_nfc_pcd_analog_parameters_matrix.fd_dyn_atten, - "FD Dynamic Attenuation ", 2, 0, 0x1F); - break; - // FD Display - case 'T': - case 't': - printf("\n\nPress any key to quit.\n"); - show_current_field_loading_level(); - break; - // Update RF Settings - case 'U': - case 'u': - force_rf_settings_update(); - break; - // Exit - case 'E': - case 'e': - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } // End of while 1 -} - -void dte_settings(void) -{ - while (1) { - clear_screen(); - - printf("Maxim Settings Menu\n"); - printf("Logging Level: %ld\n", g_logging_level); - - printf("A. View or Change Analog Settings\n"); - printf("N. Select Antenna and Set Analog Defaults\n"); - printf("L. Change Logging Level\n"); - printf("E. Exit back to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - // Analog Settings - case 'A': - case 'a': - dte_analog_settings(); - break; - case 'N': - case 'n': - dte_antenna_selection(); - break; - // Logging level change - case 'L': - case 'l': - printf("\nSelect Logging Level:\n"); - printf("0. None\n"); - printf("1. Logging (Default)\n"); - printf("2. Errors\n"); - printf("3. Warnings\n"); - printf("4. Informational\n"); - printf("5. Debug\n"); - printf("6. Full Debug\n"); - switch (get_key_press()) { - case '0': - g_logging_level = DBG_LVL_NON; - break; - case '1': - g_logging_level = DBG_LVL_LOG; - break; - case '2': - g_logging_level = DBG_LVL_ERR; - break; - case '3': - g_logging_level = DBG_LVL_WRN; - break; - case '4': - g_logging_level = DBG_LVL_INF; - break; - case '5': - g_logging_level = DBG_LVL_DBG; - break; - case '6': - g_logging_level = DBG_LVL_FDB; - break; - default: - printf("\n**Invalid selection no change made**\n\n"); - break; - } - - logging("\nshowing logging messages\n"); - error("showing error messages\n"); - warning("showing warn messages\n"); - info("showing info messages\n"); - debug("showing debug messages\n"); - full_debug("showing full_debug messages\n"); - - printf("\nPress any key to continue...\n"); - get_key_press_no_echo(); - - break; - // Exit - case 'E': - case 'e': - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte_get_loop_params(int32_t *num_loops) -{ - uint8_t key_press = 0; - int32_t char_count = 0; - int32_t temp_count = 0; - int32_t i; - uint8_t loop_input[5]; - - while (1) { - clear_screen(); - printf("Loop Setting: Num Loops: %ld\n", *num_loops); - printf("Enter an new number of loops (1-9999), then press enter\n"); - printf("=> "); - - while (char_count < 5) { - key_press = get_key_press(); - - if ((key_press == '\n') || (key_press == '\r')) { - break; - } - - if ((key_press < '0') || (key_press > '9')) { - printf("\nInvalid digit, only 0-9 allowed.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - return; - } - - loop_input[char_count++] = key_press; - } - - if (char_count > 4) { - printf("\nMax Allowed 9999. Try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - return; - } - - if (char_count > 0) { - break; - } - } - - // Back up to last actual digit - char_count--; - - for (i = 1; char_count >= 0; char_count--, i *= 10) { - temp_count += (loop_input[char_count] - '0') * i; - } - - if ((temp_count < 0) || (temp_count > 9999)) { - printf("Not an allowed number of loops, not changing\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - return; - } - - *num_loops = temp_count; - - printf("New Number of Loops: %ld\n", *num_loops); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - - return; -} - -void dte_do_analog_polling(int32_t num_loops) -{ - int32_t i; - - printf("\nAnalog Loop Back Mode\n"); - printf("\n!Test will loop for %ld times or until any key is pressed to stop test!\n\n", - num_loops); - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - printf("\nAnalogue %ld\n", i); - - if (singleemvl1exchange(key_has_been_pressed)) { - nfc_reset(); - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_reset(int32_t num_loops) -{ - int32_t i; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nReset Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - nfc_reset(); - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_wupa(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nWUPA Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - printf("WUPA ->\n"); - ret = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, dte_buffer, WAKEUP_NOTRETRY); - if (ret == ISO14443_3_ERR_SUCCESS) { - printf("ATQA <-\n"); - } - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_rats(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nRATS Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - - printf("ANTICOLISION ->\n"); - ret = iso_14443_3a_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ANTICOLISION RESP <-\n"); - - printf("RATS ->\n"); - ret = iso_14443_3a_active(); - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ATS <-\n"); - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_wupb(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - int32_t atq_len = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nWUPB Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - printf("WUPB ->\n"); - ret = iso_14443_3b_cmd_req_wup(dte_buffer, &atq_len, WAKEUP_NOTRETRY); - if (ret == ISO14443_3_ERR_SUCCESS) { - printf("ATQB <-\n"); - } - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_attrib(int32_t num_loops) -{ - int32_t i; - int32_t ret = 0; - - for (i = 0; (i < num_loops) || (num_loops == 0); i++) { - if (key_has_been_pressed()) { - break; - } - - nfc_pcd_reset_wait(); - printf("\nATTRIB Loop Status: Num Loops: %ld, Count: %ld\n", num_loops, i); - - printf("ANTICOLISION ->\n"); - ret = iso_14443_3b_collision_detect(); - - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ANTICOLISION RESP <-\n"); - - printf("ATTRIB ->\n"); - ret = iso_14443_3b_active(); - - if (ret == ISO14443_3_ERR_ABORTED) { - printf("Operation Aborted\n"); - break; - } - if (ret != ISO14443_3_ERR_SUCCESS) { - continue; - } - - printf("ATTRIB RESP <-\n"); - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -uint32_t decode_pbm_type(uint8_t sak) -{ - if (sak & 0x08) { - // Bit 4 == 1 - if (sak & 0x10) { - // Bit 5 == 1 - return PBM_4K; - } else { - // Bit 5 == 0 - if (sak & 0x01) { - // Bit 1 == 1 - return PBM_MINI; - } else { - // Bit 1 == 0 - return PBM_1K; - } - } - } else { - // Bit 4 == 0 - if (sak & 0x10) { - // Bit 5 == 1 - if (sak & 0x01) { - // Bit 1 == 1 - return PBM_PLUS_4K_SL2; - } else { - // Bit 1 == 0 - return PBM_PLUS_2K_SL2; - } - } else { - // Bit 5 == 0 - if (sak & 0x20) { - // Bit 6 == 1 - // This version requires RATS etc - // Is must therefore be compliant, so we should not be here - // Do nothing - return PBM_TYPE_UNKNOWN; - } else { - // Bit 6 == 0 - return PBM_UL; - } - } - } -} - -// This function assumes a PBM card has been found and identified, and the requested block authenticated -// This function only supports PBM Classic cards -int32_t pbm_create_value_block(uint8_t block_num, uint32_t value) -{ - uint8_t val_blk_buffer[16]; - - val_blk_buffer[0] = (value >> 0) & 0xFF; - val_blk_buffer[1] = (value >> 8) & 0xFF; - val_blk_buffer[2] = (value >> 16) & 0xFF; - val_blk_buffer[3] = (value >> 24) & 0xFF; - val_blk_buffer[4] = ~val_blk_buffer[0]; - val_blk_buffer[5] = ~val_blk_buffer[1]; - val_blk_buffer[6] = ~val_blk_buffer[2]; - val_blk_buffer[7] = ~val_blk_buffer[3]; - val_blk_buffer[8] = val_blk_buffer[0]; - val_blk_buffer[9] = val_blk_buffer[1]; - val_blk_buffer[10] = val_blk_buffer[2]; - val_blk_buffer[11] = val_blk_buffer[3]; - - // Address Section - val_blk_buffer[12] = block_num; - val_blk_buffer[13] = ~block_num; - val_blk_buffer[14] = block_num; - val_blk_buffer[15] = ~block_num; - - return pbm_write_block(block_num, val_blk_buffer); -} - -// Decode working time specified by ATQC -void show_response_time(uint8_t PMm_val, int32_t n) -{ - int32_t T_us = 302; - int32_t A = PMm_val & 0x7; - int32_t B = (PMm_val >> 3) & 0x7; - int32_t E = (PMm_val >> 6) & 0x3; - int32_t time = 0; - - time = T_us * ((B + 1) * n + (A + 1)) * pow(4, E); - - printf("%ldus\n", time); -} - -void raw_loop_test(mml_nfc_pcd_transceive_params_t trans_params, int32_t do_reset) -{ - int32_t response = 0; - - int32_t sent = 0; - int32_t passed = 0; - int32_t num_loops = 1000; - int32_t row_passed = 0; - - poweron_operatingfield(); - mml_nfc_pcd_task_sleep(10); - - while (1) { - if (key_has_been_pressed()) { - poweroff_operatingfield(); - break; - } - - response = mml_nfc_pcd_transceive(trans_params); - sent++; - - if (response == MML_NFC_PCD_E_SUCCESS) { - printf("o"); - passed++; - row_passed++; - } else { - printf("."); - } - - if (do_reset) { - nfc_reset(); - } - - if (sent % 50 == 0) { - printf(" [ %2ld/ 50] %3ld%%\n", row_passed, ((row_passed * 100) / 50)); - row_passed = 0; - } - - if (sent >= num_loops) { - break; - } - } - - nfc_reset(); - printf("\n\n(TOTAL) [%4ld/%4ld].... %3ld.%02ld%%\n\n", passed, sent, ((passed * 100) / sent), - (((passed * 10000) / sent) - (((passed * 100) / sent) * 100))); - poweroff_operatingfield(); -} - -void type_a_loop_test(void) -{ - uint8_t send_buffer_wupa[1] = { 0x52 }; - int32_t send_len_wupa = 1; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - - // Loop test resets after every command, so we must enforce our powerup delay (5ms) - // 5ms / (1/13560000) => 5ms / 73.746ns = 67,800fc - trans_params.delay_till_send = 67800; - - // Using same timeout as Type F loop test: 200ms instead of the normal ISO14443_FWT_ATQB - // 200ms / (1/13560000) => 200ms / 73.746ns = 2,712,000fc - trans_params.timeout = 2712000; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - - printf("\n\nSending 1000 WUPA, with 200ms timeout\n\n"); - raw_loop_test(trans_params, 1); -} - -void type_b_loop_test(void) -{ - uint8_t send_buffer_wupb[3] = { 0x05, 0x00, 0x08 }; - int32_t send_len_wupb = 3; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - - // Loop test resets after every command, so we must enforce our powerup delay (5ms) - // 5ms / (1/13560000) => 5ms / 73.746ns = 67,800fc - trans_params.delay_till_send = 67800; - - // Using same timeout as Type F loop test: 200ms instead of the normal ISO14443_FWT_ATQB - // 200ms / (1/13560000) => 200ms / 73.746ns = 2,712,000 - trans_params.timeout = 2712000; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - - printf("\n\nSending 1000 WUPB, with 200ms timeout\n\n"); - raw_loop_test(trans_params, 1); -} - -void type_f_loop_test(void) -{ - int32_t reqc_buf_len = 6; - uint8_t reqc_buf[6] = { 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00 }; - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_TYPE_F; - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = reqc_buf; - trans_params.tx_len = reqc_buf_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - - // ATQC should start in Slot 0, This should happen by the time detailed below. Currently using Trfw - // from ISO18092 section 11.1.1, RF Waiting Time, as the margin for detection of ATQC. Alternatively, - // we could delay till the very end of Slot 0, but this does not seem strict enough. - // NOTE: RF driver times from end of TX to end of SYNC code, start of LEN byte. So we need to add - // this additional time to the timeout. 8 bytes at 64fc per bit. - // - // Td = (512 * 64fc = 32768), Time to LEN (T2len) = (8 * 8 * 64fc = 4096), Trfw = (512fc) - // Td + T2len + Trfw => 32768 + 4096 + 512 => 37367 - // - // For RW_RW_Kiteisyo polling loop test, timeout desired is 200ms - // 200ms / (1/13560000) => 200ms / 73.746ns = 2,712,000 - trans_params.timeout = 2712000; - - // Per Sony Whitepaper: Card Technical Note for Software Development - // the Guard Time after transmission of Command Packet Data to when the Reader should - // be ready to receive preamble is (42 x 64 - 16)/fc ~197us - trans_params.early_limit = FDT_F_PICC_MIN_TOLERANCE_EARLY; - - printf("\n\nSending 1000 REQC, with 200ms timeout\n\n"); - raw_loop_test(trans_params, 0); -} - -#define ATQC_LEN 18 -#define ATQC_LEN_OFFSET 0 -#define ATQC_COMMAND_CODE 1 -#define ATQC_COMMAND_CODE_OFFSET 1 -#define ATQC_NFCID2_OFFSET 2 -#define ATQC_NFCID2_LEN 8 -#define ATQC_PAD_OFFSET 10 -#define ATQC_PAD_LEN 8 -#define ATQC_ID_COD_BYTE_1_OFFSET 10 -#define ATQC_ID_COD_BYTE_2_OFFSET 11 -#define ATQC_RESPONSE_TIME_OFFSET 12 - -void type_f_commands(void) -{ - int32_t response = 0; - - int32_t reqc_buf_len = 6; - uint8_t reqc_buf[6] = { 0x06, 0x00, 0xFF, 0xFF, 0x00, 0x00 }; - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_TYPE_F; - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = reqc_buf; - trans_params.tx_len = reqc_buf_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - - // ATQC should start in Slot 0, This should happen by the time detailed below. Currently using Trfw - // from ISO18092 section 11.1.1, RF Waiting Time, as the margin for detection of ATQC. Alternatively, - // we could delay till the very end of Slot 0, but this does not seem strict enough. - // NOTE: RF driver times from end of TX to end of SYNC code, start of LEN byte. So we need to add - // this additional time to the timeout. 8 bytes at 64fc per bit. - // - // Td = (512 * 64fc = 32768), Time to LEN (T2len) = (8 * 8 * 64fc = 4096), Trfw = (512fc) - // Td + T2len + Trfw => 32768 + 4096 + 512 => 37367 - trans_params.timeout = 37367; - - // Per Sony Whitepaper: Card Technical Note for Software Development - // the Guard Time after transmission of Command Packet Data to when the Reader should - // be ready to receive preamble is (42 x 64 - 16)/fc ~197us - trans_params.early_limit = FDT_F_PICC_MIN_TOLERANCE_EARLY; - - while (1) { - clear_screen(); - - printf("Type F Commands\n"); - printf("1. Poll for Type F Card (REQC)\n"); - printf("2. Loop Test for Type F Card (REQC)\n"); - printf("E. Exit to previous menu\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - case '1': - poweron_operatingfield(); - // Allow card to wake up - mml_nfc_pcd_task_sleep(10); - - response = mml_nfc_pcd_transceive(trans_params); - printf("\n\n"); - - if (response == MML_NFC_PCD_E_SUCCESS) { - printf("Got a response, length in bytes: %ld\n", receive_len); - - hexdump(DBG_LVL_NON, receive_buffer, receive_len, 1); - - printf("ATQC breakdown:\n\n"); - - if (receive_buffer[ATQC_LEN_OFFSET] != ATQC_LEN) { - printf("ATQC length invalid, expected: %d got: %d\n", ATQC_LEN, - receive_buffer[ATQC_LEN_OFFSET]); - } else { - printf("ATQC Length valid\n"); - } - - if (receive_buffer[ATQC_COMMAND_CODE_OFFSET] != ATQC_COMMAND_CODE) { - printf("ATQC Command Code invalid, expected: %d got: %d\n", ATQC_COMMAND_CODE, - receive_buffer[ATQC_COMMAND_CODE_OFFSET]); - } else { - printf("ATQC Command Code valid\n"); - } - - printf("NFCID2: "); - hexdump(DBG_LVL_NON, &receive_buffer[ATQC_NFCID2_OFFSET], ATQC_NFCID2_LEN, 1); - - printf("PAD (PMm): "); - hexdump(DBG_LVL_NON, &receive_buffer[ATQC_PAD_OFFSET], ATQC_PAD_LEN, 1); - - printf(" IC Code: 0x%02X%02X\n", receive_buffer[ATQC_ID_COD_BYTE_1_OFFSET], - receive_buffer[ATQC_ID_COD_BYTE_2_OFFSET]); - printf("Request Service Command (Per Service [n]): "); - show_response_time(receive_buffer[ATQC_RESPONSE_TIME_OFFSET], 1); - } else { // (response != MML_NFC_PCD_E_SUCCESS) - printf("Invalid Response: "); - - if (response == MML_NFC_PCD_E_TIMEOUT) { - printf("Timeout (No card found)\n"); - } else if (response == MML_NFC_PCD_E_COLLISION) { - printf("Collision Error\n"); - } else if (response == MML_NFC_PCD_E_PROTOCOL) { - printf("Protocol Error\n"); - } else if (response == MML_NFC_PCD_E_BAD_PARAM) { - printf("Bad Parameter\n"); - } else { - printf("Un-Decoded error code: %ld\n", response); - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case '2': - type_f_loop_test(); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case 'M': - case 'm': - dte_settings(); - break; - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press(); - break; - } - } -} - -void type_v_inventory_test(mml_nfc_pcd_transceive_params_t trans_params) -{ - int32_t response = 0; - - uint8_t v_uid[8]; - - poweron_operatingfield(); - // Allow card to wake up - mml_nfc_pcd_task_sleep(20); - - response = mml_nfc_pcd_transceive(trans_params); - printf("\n\n"); - - if (response == MML_NFC_PCD_E_SUCCESS) { - if (*trans_params.rx_len == 10) { - printf("Got a response, length in bytes: %ld\n", *trans_params.rx_len); - - hexdump(DBG_LVL_NON, trans_params.rx_buf, *trans_params.rx_len, 1); - - if (trans_params.rx_buf[0] & 0x1) { - printf("Card Reported Error\n"); - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); - return; - } - if (trans_params.rx_buf[0] & 0xFE) { - printf("Unsupported Flags\n"); - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); - return; - } - printf("DSFID: 0x%02x\n", trans_params.rx_buf[1]); - printf("UID Is : "); - for (int i = 0; i < 8; i++) { - v_uid[i] = trans_params.rx_buf[i + 2]; - printf("0x%02x ", v_uid[i]); - } - - printf("\n"); - } else { - printf("Apparently, we have success. However, expect 10 bytes but only got: %d\n", - *trans_params.rx_len); - printf("Received data"); - hexdump(DBG_LVL_NON, trans_params.rx_buf, *trans_params.rx_len, 1); - } - - } else { - printf("Invalid Response: "); - - if (response == MML_NFC_PCD_E_TIMEOUT) { - printf("Timeout (No card found)\n"); - } else if (response == MML_NFC_PCD_E_COLLISION) { - printf("Collision Error\n"); - } else if (response == MML_NFC_PCD_E_PROTOCOL) { - printf("Protocol Error\n"); - } else if (response == MML_NFC_PCD_E_BAD_PARAM) { - printf("Bad Parameter\n"); - } else if (response == MML_NFC_PCD_E_INVALID_CRC) { - printf("Bad CRC\n"); - } else { - printf("Un-Decoded error code: %ld\n", response); - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press(); -} - -void type_v_commands(void) -{ - int32_t inventory_buf_len = 3; - uint8_t inventory_buf[3] = { 0x26, 0x01, 0x00 }; // Flags, Inventory OpCode, Optional AFI - - uint8_t receive_buffer[256]; - uint32_t receive_len = 0; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.frametype = FT_STANDARD_CRC_NO_EMD; - trans_params.tx_buf = inventory_buf; - trans_params.tx_len = inventory_buf_len; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - trans_params.early_limit = ISO15693_FDT_VICC_MIN; - trans_params.timeout = ISO15693_FWT_ACTIVATION; - - while (1) { - clear_screen(); - - printf("Type V Commands\n"); - printf("1. Inventory 100% Mod, 1of4, Single Sub, High Data Rate\n"); - printf("2. Inventory 100% Mod, 1of4, Single Sub, Low Data Rate\n"); - printf("3. Inventory 100% Mod, 1of4, Dual Sub, High Data Rate\n"); - printf("4. Inventory 100% Mod, 1of4, Dual Sub, Low Data Rate\n"); - printf("\n"); - printf("5. Inventory 100% Mod, 1of256, Single Sub, High Data Rate\n"); - printf("6. Inventory 100% Mod, 1of256, Single Sub, Low Data Rate\n"); - printf("7. Inventory 100% Mod, 1of256, Dual Sub, High Data Rate\n"); - printf("8. Inventory 100% Mod, 1of256, Dual Sub, Low Data Rate\n"); - - printf("\n\n"); - - printf("9. Inventory 10% Mod, 1of4, Single Sub, High Data Rate\n"); - printf("A. Inventory 10% Mod, 1of4, Single Sub, Low Data Rate\n"); - printf("B. Inventory 10% Mod, 1of4, Dual Sub, High Data Rate\n"); - printf("C. Inventory 10% Mod, 1of4, Dual Sub, Low Data Rate\n"); - printf("\n"); - printf("D. Inventory 10% Mod, 1of256, Single Sub, High Data Rate\n"); - printf("E. Inventory 10% Mod, 1of256, Single Sub, Low Data Rate\n"); - printf("F. Inventory 10% Mod, 1of256, Dual Sub, High Data Rate\n"); - printf("G. Inventory 10% Mod, 1of256, Dual Sub, Low Data Rate\n"); - - printf("\n"); - - printf("L. Loop Test for Type V Card (Inventory)\n"); - printf("T. CRC Test\n"); - printf("M. Maxim DTE settings\n"); - printf("X. Exit to previous menu\n"); - printf("=> "); - - switch (get_key_press()) { - case '1': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '2': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '3': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '4': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF4_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '5': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '6': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '7': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case '8': - trans_params.protocol = PROTOCOL_ISO15693_100_1OF256_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - - case '9': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'A': - case 'a': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'B': - case 'b': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'C': - case 'c': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF4_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'D': - case 'd': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH; - inventory_buf[0] = 0x26; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'E': - case 'e': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW; - inventory_buf[0] = 0x24; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'F': - case 'f': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH; - inventory_buf[0] = 0x27; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'G': - case 'g': - trans_params.protocol = PROTOCOL_ISO15693_10_1OF256_DUAL_LOW; - inventory_buf[0] = 0x25; // Flags - inventory_buf[1] = 0x01; // Inventory OpCode - inventory_buf[2] = 0x00; // AFI - type_v_inventory_test(trans_params); - break; - case 'L': - case 'l': - // TODO(ADI): Implement - // type_v_loop_test(); - printf("TBD....\n"); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case 'T': - case 't': - printf("\nCRC Test\n"); - uint8_t crc_test_buf[4] = { 0x01, 0x02, 0x03, 0x04 }; - uint8_t crc1 = 0; - uint8_t crc2 = 0; - mml_nfc_pcd_compute_crc(PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH, crc_test_buf, 4, &crc2, - &crc1); - printf("Input: 1,2,3,4\n"); - printf("CRC: 0x%0X%0X\n", crc1, crc2); - printf("Press any key to continue...\n"); - get_key_press(); - break; - case 'M': - case 'm': - dte_settings(); - break; - case 'X': - case 'x': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press(); - break; - } - } -} - -void pbm_commands(void) -{ - int32_t i = 0; - int32_t uid_start = 0; - int32_t uid_end = 0; - int32_t status = 0; - uid_storage_t uid_store = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 0 }; - uint32_t uid = 0; - // Default PBM Key - uint64_t current_key = 0xFFFFFFFFFFFFll; - uint64_t current_key_b = 0x000000000000ll; - int32_t new_val = 0; - uint8_t current_block_num = 12; - uint32_t current_value_num = 0x100; - uint8_t data_buffer[64]; - uint32_t pbm_type = 0; - - while (1) { - clear_screen(); - - printf("PBM Command Menu\n\n"); - printf("Current UID: 0x%08lX, Current Block: %d, INC/DEC Value: %ld\n", uid, - current_block_num, current_value_num); - printf("\nPOLLING AND AUTHENTICATE COMMANDS\n"); - printf("(P) Poll for PBM Cards (H) Halt\n"); - printf("(A) Authenticate Block (X) Re-Authenticate Block\n"); - printf("\nGENERIC BLOCK COMMANDS [%d]\n", current_block_num); - printf("(B) Change Current Block (F) Erase Block (Fill with 0x00s)\n"); - printf("(R) Read Block (W) Write Block\n"); - printf("\nVALUE BLOCK COMMANDS\n"); - printf("(V) Create Value Block (C) Change Value amount [%ld]\n", - current_value_num); - printf("(D) Decrement Value Block (I) Increment Value Block\n"); - printf("(S) Restore Value Block (T) Transfer Value Block\n"); - printf("\nKEY COMMANDS\n"); - printf("(K) Write trailer to use KEY_B (L) Authenticate with B\n"); - printf("(M) Re-Authenticate with B\n"); - printf("\n(E) Exit back to main menu\n"); - printf("(Z) Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Polling - case 'P': - case 'p': - // This will poll for a card and store the UID for later use - printf("\nPBM Polling\n"); - printf("\nTest will loop forever until a card is found,\n"); - printf("Or any key is pressed to stop test.\n\n"); - - uid = 0; - status = 0; - - poweron_operatingfield(); - while (status != TYPE_A_NON_ISO14443_4_READY) { - status = emvl1_poll_for_card(1); - - if (key_has_been_pressed()) { - nfc_pcd_reset_wait(); - printf("\nStopping Test\n"); - break; - } - } - - if (status == TYPE_A_NON_ISO14443_4_READY) { - // NOTE: The stored UID contains the BCC as well - uid_store = get_stored_uid(); - - // Is this a valid UID - if (uid_store.uid_length == 5) { - uid_start = 0; - uid_end = 4; - } else if (uid_store.uid_length == 10) { - uid_start = 5; - uid_end = 9; - } else if (uid_store.uid_length == 15) { - uid_start = 10; - uid_end = 14; - } else { - printf("Invalid UID detected, should be length of 5, 10, or 15 including " - "the BCC\n"); - break; - } - - // Convert UID to a uint32_t - for (i = uid_start; i < uid_end; i++) { - uid <<= 8; - uid |= uid_store.uid[i]; - } - printf("\nFound potential Transport Classic card\n"); - - pbm_type = decode_pbm_type(get_last_sak()); - - if (pbm_type == PBM_UL) { - printf("Found Transport Classic UL\n"); - } else if (pbm_type == PBM_MINI) { - printf("Found Transport Classic MINI\n"); - } else if (pbm_type == PBM_1K) { - printf("Found Transport Classic 1K\n"); - } else if (pbm_type == PBM_4K) { - printf("Found Transport Classic 4K\n"); - } else if (pbm_type == PBM_PLUS_2K_SL2) { - printf("Found Transport Classic PLUS 2K SL2\n"); - } else if (pbm_type == PBM_PLUS_4K_SL2) { - printf("Found Transport Classic PLUS 4K SL2\n"); - } - } else { - printf("No potential cards found\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'A': - case 'a': - // once a card has been polled, we can authenticate for a block with it's key, - // which gets us into the encrypted communication process so we can do other commands - // this uses current_block_num (set by 'B') and the current_key - printf("\nBlock Authenticate\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key, PBM_KEY_A, - FIRST_TIME_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to authenticate. Error: %ld\n", status); - } else { - printf("Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'B': - case 'b': - // switch to another block on the card, this only changes the block we are pointing at - // NOTE: you need to re-authenticate to actually send commands to the new block - printf("\nCurrent KEY: 0x%012llX\n", current_key); - printf("\nEnter new block to use\n"); - - new_val = dte_get_int_val("Pbm Block", 3, 0, 256); - - if ((new_val < 0) || (new_val > 256)) { - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - } else { - current_block_num = (uint8_t)new_val; - } - break; - case 'R': - case 'r': - // read the data for a block, this requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nRead Block: %d\n", current_block_num); - - status = pbm_read_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to read block. Error: %ld\n", status); - } else { - printf("Successful read block. Data:"); - - hexdump(DBG_LVL_NON, data_buffer, 16, 1); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'W': - case 'w': - // write data to a block, this requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nWrite Block: %d\n", current_block_num); - - for (i = 0; i < 8; i++) { - data_buffer[i] = 0; - } - - data_buffer[8] = 0xDE; - data_buffer[9] = 0xAD; - data_buffer[10] = 0xBE; - data_buffer[11] = 0xEF; - data_buffer[12] = 0x01; - data_buffer[13] = 0x23; - data_buffer[14] = 0x45; - data_buffer[15] = 0x67; - - status = pbm_write_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to Write block. Error: %ld\n", status); - } else { - printf("Successfully wrote block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'H': - case 'h': - // send the HALT command to a card, it should ignore us until we re-poll it - printf("\nHALT\n"); - - status = pbm_halt(); - - if (status != PBM_SUCCESS) { - printf("Failed to Halt. Error: %ld\n", status); - } else { - printf("Successfully Halted.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'V': - case 'v': - // create a formatted value block, uses PBM formatting - // NOTE: you need to be authenticated for the block to use this command - // this uses the current_block_num (set by 'B') and the current_value_num (set by 'C') - printf("\nCreate Value Block\n"); - - status = pbm_create_value_block(current_block_num, current_value_num); - - if (status != PBM_SUCCESS) { - printf("Failed to create value block. Error: %ld\n", status); - } else { - printf("Successfully Created Value Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'X': - case 'x': - // re-authenticate to a new block, requires the correct key to be in 'current_key' - // the uses current_block_num (set by 'B') - printf("\nBlock Re-Authenticate\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key, PBM_KEY_A, - ALREADY_AUTHORIZED_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to re-authenticate. Error: %ld\n", status); - } else { - printf("Re-Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'D': - case 'd': - // send the decrement command for the current block, requires that you are authenticated. - // this uses the current_block_num (set by 'B') and the current_value_num (set by 'C') - printf("\nDecrement Value Block\n"); - - status = pbm_decrement_block(current_block_num, current_value_num); - - if (status != PBM_SUCCESS) { - printf("Failed to decrement block. Error: %ld\n", status); - } else { - printf("Successfully decremented Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'I': - case 'i': - // send the increment command for the current block, requires that you are authenticated. - // this uses the current_block_num (set by 'B') and the current_value_num (set by 'C') - printf("\nIncrement Value Block\n"); - - status = pbm_increment_block(current_block_num, current_value_num); - - if (status != PBM_SUCCESS) { - printf("Failed to increment block. Error: %ld\n", status); - } else { - printf("Successfully incremented Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'S': - case 's': - // send the restore command for the current block, requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nRestore Value Block\n"); - - status = pbm_restore_block(current_block_num); - - if (status != PBM_SUCCESS) { - printf("Failed to restore block. Error: %ld\n", status); - } else { - printf("Successfully restored Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'T': - case 't': - // send the transfer command for the current block, requires that you are authenticated - // this uses current_block_num (set by 'B') - printf("\nTransfer Value Block\n"); - - status = pbm_transfer_block(current_block_num); - - if (status != PBM_SUCCESS) { - printf("Failed to transfer block. Error: %ld\n", status); - } else { - printf("Successfully transfered Block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'C': - case 'c': - // change the value (current_value_num) used by the value block command for increment, decrement - printf("\nChange Value\n"); - printf("\nCurrent Value: %ld\n", current_value_num); - - new_val = dte_get_int_val("Pbm Value", 10, 0, 0x7FFFFFF); - - if ((new_val < 0) || (new_val > 0x7FFFFFFF)) { - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - } else { - current_value_num = new_val; - } - - break; - case 'K': - case 'k': - printf("\nWrite Trailer for Key B: %d\n", current_block_num); - - for (i = 0; i < 8; i++) { - data_buffer[i] = 0; - } - - // Key A - data_buffer[0] = (current_key >> 40) & 0xFF; - data_buffer[1] = (current_key >> 32) & 0xFF; - data_buffer[2] = (current_key >> 24) & 0xFF; - data_buffer[3] = (current_key >> 16) & 0xFF; - data_buffer[4] = (current_key >> 8) & 0xFF; - data_buffer[5] = (current_key >> 0) & 0xFF; - - // KEY A will remain the only key to write trailer C1-3 of b001 - // DISALLOWED. If B can be read it CANNOT serve for auth. Auth will pass but all memory accesses will fail - // So, we need to use another mode, so use b100, Key B can write both a and b, but A and B can write Access - // KEY B will have SOLE Write permission for block 2 of current sector (where trailer is block 3) C1-3 of b100 - // C10, C11, C20, C21, C30, C31 will remain 0, so Transport Configuration (Key A or B has full access) - // /C2 /C1 - // C1 /C3 - // C3 C2 - // 7654 3210 BITS - // 1111 0011 0xF3 - // 1100 1111 0xCF - // 0000 0000 0x00 - // -#define KEYB_TEST -#ifdef KEYB_TEST - data_buffer[6] = 0xF3; - data_buffer[7] = 0xCF; - data_buffer[8] = 0x00; -#else - data_buffer[6] = 0xFF; - data_buffer[7] = 0x07; - data_buffer[8] = 0x80; -#endif - - data_buffer[9] = 0xAD; // User data - - // Key B - data_buffer[10] = (current_key_b >> 40) & 0xFF; - data_buffer[11] = (current_key_b >> 32) & 0xFF; - data_buffer[12] = (current_key_b >> 24) & 0xFF; - data_buffer[13] = (current_key_b >> 16) & 0xFF; - data_buffer[14] = (current_key_b >> 8) & 0xFF; - data_buffer[15] = (current_key_b >> 0) & 0xFF; - - status = pbm_write_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to Write block. Error: %ld\n", status); - } else { - printf("Successfully wrote block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'L': - case 'l': - // perform block authentication using key B instead of key A - printf("\nBlock Authenticate with B\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key_b, PBM_KEY_B, - FIRST_TIME_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to authenticate. Error: %ld\n", status); - } else { - printf("Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'M': - case 'm': - // re-authenticate using key B - printf("\nBlock Re-Authenticate Key B\n"); - - if (uid == 0) { - printf("\nUID is 0, Poll for a valid card first\n"); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - } - - status = pbm_authenticate_block(uid, current_block_num, current_key_b, PBM_KEY_B, - ALREADY_AUTHORIZED_AUTH); - - if (status != PBM_SUCCESS) { - printf("Failed to re-authenticate. Error: %ld\n", status); - } else { - printf("Re-Authentication for block %d successful.\n", current_block_num); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'F': - case 'f': - // erase a block by filling with all 0 - printf("\nErase Block (Fill with 0x00s)\n: %d\n", current_block_num); - - for (i = 0; i < 16; i++) { - data_buffer[i] = 0; - } - - status = pbm_write_block(current_block_num, data_buffer); - - if (status != PBM_SUCCESS) { - printf("Failed to Erase block. Error: %ld\n", status); - } else { - printf("Successfully Erased block.\n"); - } - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'Z': - case 'z': - // go to dte settings menu - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -int32_t singleemvl1transac_a(callback_check_for_loop_termination_t callback) -{ - uint8_t send_buffer_wupa[1] = { 0x52 }; - int32_t send_len_wupa = 1; - uint8_t send_buffer_hlta[2] = { 0x50, 0x00 }; - int32_t send_len_hlta = 2; - uint8_t send_buffer_wupb[3] = { 0x05, 0x00, 0x08 }; - int32_t send_len_wupb = 3; - uint8_t send_buffer_anticol[2] = { 0x93, 0x20 }; - int32_t send_len_anticol = 2; - uint8_t send_buffer_sel[7] = { 0x93, 0x70, 0x27, 0xe9, 0x3b, 0x11, 0xe4 }; - int32_t send_len_sel = 7; - uint8_t send_buffer_rats[2] = { 0xe0, 0x80 }; - int32_t send_len_rats = 2; - uint8_t send_buffer_iblock1[21] = { 0x02, 0x00, 0xA4, 0x04, 0x00, 0x0E, 0x32, - 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, - 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00 }; - int32_t send_len_iblock1 = 21; - uint8_t send_buffer_iblock2[19] = { 0x03, 0x00, 0xA4, 0x04, 0x00, 0x0C, 0x01, 0x02, 0x03, 0x04, - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00 }; - int32_t send_len_iblock2 = 19; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - trans_params.timeout = ISO14443_FWT_A_ACT; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - - // WUPA - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // HALTA - trans_params.tx_buf = send_buffer_hlta; - trans_params.tx_len = send_len_hlta; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPB - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.timeout = ISO14443_FWT_ATQB; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPA - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.timeout = ISO14443_FWT_A_ACT; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Anticollision - trans_params.frametype = FT_STANDARD_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_anticol; - trans_params.tx_len = send_len_anticol; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Select - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_sel; - trans_params.tx_len = send_len_sel; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // RATS - trans_params.tx_buf = send_buffer_rats; - trans_params.tx_len = send_len_rats; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 1 - trans_params.tx_buf = send_buffer_iblock1; - trans_params.tx_len = send_len_iblock1; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 2 - trans_params.tx_buf = send_buffer_iblock2; - trans_params.tx_len = send_len_iblock2; - mml_nfc_pcd_transceive(trans_params); - - return 0; -} - -int32_t singleemvl1transac_b(callback_check_for_loop_termination_t callback) -{ - uint8_t send_buffer_wupa[1] = { 0x52 }; - int32_t send_len_wupa = 1; - uint8_t send_buffer_wupb[3] = { 0x05, 0x00, 0x08 }; - int32_t send_len_wupb = 3; - uint8_t send_buffer_attrib[9] = { 0x1D, 0x46, 0xB5, 0xC7, 0xA0, 0x00, 0x08, 0x01, 0x00 }; - int32_t send_len_attrib = 9; - uint8_t send_buffer_iblock1[21] = { 0x02, 0x00, 0xA4, 0x04, 0x00, 0x0E, 0x32, - 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, - 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00 }; - int32_t send_len_iblock1 = 21; - uint8_t send_buffer_iblock2[19] = { 0x03, 0x00, 0xA4, 0x04, 0x00, 0x0C, 0x01, 0x02, 0x03, 0x04, - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00 }; - int32_t send_len_iblock2 = 19; - - uint8_t *receive_buffer = GetCommonBuffer(); - uint32_t receive_len; - - // If callback for early termination exists, call it - if (callback) { - if (callback()) { - mml_nfc_pcd_task_sleep(KEYPRESS_RETURN_DELAY_MS); - logging("\nStopping Test\n"); - return 1; - } - } - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.rx_buf = receive_buffer; - trans_params.rx_len = &receive_len; - trans_params.delay_till_send = ISO14443_FDT_MIN; - trans_params.timeout = ISO14443_FWT_ATQB; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - - // WUPB - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPA - trans_params.protocol = PROTOCOL_ISO14443A; - trans_params.frametype = FT_SHORT_NO_CRC_NO_EMD; - trans_params.tx_buf = send_buffer_wupa; - trans_params.tx_len = send_len_wupa; - trans_params.timeout = ISO14443_FWT_A_ACT; - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // WUPB - trans_params.protocol = PROTOCOL_ISO14443B; - trans_params.frametype = FT_STANDARD_CRC_EMD; - trans_params.tx_buf = send_buffer_wupb; - trans_params.tx_len = send_len_wupb; - trans_params.timeout = ISO14443_FWT_ATQB; - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Attrib - trans_params.tx_buf = send_buffer_attrib; - trans_params.tx_len = send_len_attrib; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 1 - trans_params.tx_buf = send_buffer_iblock1; - trans_params.tx_len = send_len_iblock1; - mml_nfc_pcd_transceive(trans_params); - nfc_block_for_us(TIMEOUT_TRANSAC_US); - - // Iblock 2 - trans_params.tx_buf = send_buffer_iblock2; - trans_params.tx_len = send_len_iblock2; - mml_nfc_pcd_transceive(trans_params); - - return 0; -} - -void dte_do_transac_a(void) -{ - int32_t i = 0; - - printf("\nAnalog TRANSAC_A Mode\n"); - printf("\n!Test will continue to send TRANSAC_A sequence until any key is pressed to stop " - "test!\n\n"); - - while (1) { - mml_nfc_pcd_task_sleep(PAUSE_TRANSAC_MS); - printf("\nTransaction A Send Count: %ld\n", i++); - - if (singleemvl1transac_a(key_has_been_pressed)) { - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_do_transac_b(void) -{ - int32_t i = 0; - - printf("\nAnalog TRANSAC_B Mode\n"); - printf("\n!Test will continue to send TRANSAC_B sequence until any key is pressed to stop " - "test!\n\n"); - - while (1) { - mml_nfc_pcd_task_sleep(PAUSE_TRANSAC_MS); - printf("\nTransaction B Send Count: %ld\n", i++); - - if (singleemvl1transac_b(key_has_been_pressed)) { - break; - } - } - printf("Press any key to continue...\n"); - get_key_press_no_echo(); -} - -void dte_analogue(void) -{ - int32_t carrier_on = 0; - int32_t num_loops = 0; - - while (1) { - clear_screen(); - printf("TTA L1: Analogue Menu\n"); - printf("Loop Setting: Num Loops: %ld\n", num_loops); - printf("\n! NOTE: by Default Num Loops is 0, Which is Infinite Looping !\n\n"); - printf("Halt test sequences by pressing any key\n"); - printf("Carrier Status: "); - if (carrier_on) { - printf("On\n"); - } else { - printf("Off\n"); - } - printf("\nSelect Test to continue:\n"); - printf("1. Carrier On/Off\n"); - printf("2. Polling\n"); - printf("3. Reset\n"); - printf("4. WUPA\n"); - printf("5. WUPB\n"); - printf("6. RATS\n"); - printf("7. ATTRIB\n"); - printf("8. TRANSAC_A\n"); - printf("9. TRANSAC_B\n"); - printf("Y. WUPA LOOP TEST\n"); - printf("T. WUPB LOOP TEST\n"); - printf("L. Change Loop Settings\n"); - printf("E. Exit Analogue Tests\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Carrier On/Off - case '1': - if (carrier_on) { - poweroff_operatingfield(); - printf("Carrier OFF\n"); - carrier_on = 0; - } else { - poweron_operatingfield(); - printf("Carrier On\n"); - carrier_on = 1; - } - break; - // Polling specified number of loops - case '2': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_analog_polling(num_loops); - break; - // Reset - case '3': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_reset(num_loops); - break; - // WUPA - case '4': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_wupa(num_loops); - break; - // WUPB - case '5': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_wupb(num_loops); - break; - // RATS - case '6': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_rats(num_loops); - break; - // ATTRIB - case '7': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_attrib(num_loops); - break; - // TRANSAC_A - case '8': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_transac_a(); - break; - // TRANSAC_B - case '9': - if (!carrier_on) { - printf("\nInvalid Carrier Must be on\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - dte_do_transac_b(); - break; - // WUPA LOOP TEST - case 'Y': - case 'y': - type_a_loop_test(); - break; - // WUPB LOOP TEST - case 'T': - case 't': - type_b_loop_test(); - break; - // Change Loop Count - case 'L': - case 'l': - dte_get_loop_params(&num_loops); - break; - case 'M': - case 'm': - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte_digital(void) -{ - int32_t i = 0; - - while (1) { - clear_screen(); - - printf("TTA L1: Digital Menu\n"); - printf("1. Begin Digital Loop Back Mode\n"); - printf("E. Exit back to main menu\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Polling - case '1': - printf("\nDigital Loop Back Mode\n"); - printf("\n!Test will loop forever until any key is pressed to stop test!\n\n"); - poweron_operatingfield(); - while (1) { - printf("\n\nDig %ld\n", i++); - - if (singleemvl1exchange(key_has_been_pressed)) { - break; - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'M': - case 'm': - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte_interop(void) -{ - int32_t i = 0; - - while (1) { - clear_screen(); - - printf("TTA L1: Interoperability Testing Loopback Menu\n"); - printf("1. Begin Interoperability Loop Back Mode\n"); - printf("E. Exit back to main menu\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - // Polling - case '1': - printf("\nInteroperability Loop Back Mode\n"); - printf("\n!Test will loop forever until any key is pressed to stop test!\n\n"); - poweron_operatingfield(); - while (1) { - printf("\n\nInterop %ld\n", i++); - - if (singleemvl1interopexchange(key_has_been_pressed)) { - break; - } - } - poweroff_operatingfield(); - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - break; - case 'M': - case 'm': - dte_settings(); - break; - // Exit - case 'E': - case 'e': - poweroff_operatingfield(); - return; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press_no_echo(); - break; - } - } -} - -void dte(void) -{ - clear_screen(); - - // Setup the abort callback - set_abort_check_callback(key_has_been_pressed); - - while (1) { - clear_screen(); - - poweron_operatingfield(); - poweroff_operatingfield(); - - printf("Maxim Integrated MAX32572 EMV L1 DTE Main Menu\n\n"); - printf("HW Version: %s\n", PCD_HW_VER); - printf("SW Version: %s\n", PCD_SW_VER); - printf("FW Checksum: %s\n", PCD_FW_SUM); - - printf("\nSelect Application to continue:\n"); - printf("1. TTA L1: Analogue\n"); - printf("2. TTA L1: Digital\n"); - printf("3. TTA L1: Interoperability Testing Loopback\n"); - printf("P. Transport Classic (PBM)\n"); - printf("F. Type F\n"); - printf("V. Type V\n"); - printf("M. Maxim DTE settings\n"); - printf("=> "); - - switch (get_key_press()) { - case '1': - dte_analogue(); - break; - case '2': - dte_digital(); - break; - case '3': - dte_interop(); - break; - case 'P': - case 'p': - pbm_commands(); - break; - case 'F': - case 'f': - type_f_commands(); - break; - case 'V': - case 'v': - type_v_commands(); - break; - case 'M': - case 'm': - dte_settings(); - break; - default: - printf("\nInvalid selection try again.\n"); - printf("Press any key to retry...\n"); - get_key_press(); - break; - } - } -} - -void emvl1_main_loop(void) -{ - g_logging_level = DBG_LVL_LOG; - - // Disable line buffering for this serial menu driven DTE - // avoid may calls to fflush(); - setvbuf(stdout, NULL, _IONBF, 0); - - if (trim_ro_to_rtc() != E_SUCCESS) { - printf("Failed to trim Ring Oscillator.\n"); - printf("Timing accuracy suspect, may result in communications failures.\n"); - - printf("Press any key to continue...\n"); - get_key_press_no_echo(); - } - // ******************************************************************** - // Set the desired default antenna analog configuration - // ******************************************************************** - // FIXME: Restore to EVKIT antenna before release: - // mml_nfc_pcd_analog_parameters_matrix = evkit_antenna_112x76_matrix; - mml_nfc_pcd_analog_parameters_matrix = custom_antenna_65x65_matrix; - - dte(); -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3_common.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3_common.c deleted file mode 100644 index 9545b5f6b12..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3_common.c +++ /dev/null @@ -1,293 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include "mml_nfc_pcd_port.h" -#include "logging.h" - -uint8_t gcommonbuffer[MAX_BUFFER_LEN]; //use for read data from picc. - -// The default delay between a reception from PICC and a new transmit from PCD -uint32_t g_delay_till_send = ISO14443_FDT_MIN; - -static abort_check_callback_t abort_callback_function = NULL; - -static ATSConfig_t ATScfg = { - .Pro_Type = PROTOCOL_ISO14443A, - .FSCI = FSCI_DEFAULT_VALUE, - .FWI = FWI_DEFAULT_VALUE, - .SFGI = SFGI_DEFAULT_VALUE, -}; - -void get_ats(ATSConfig_t *cfg) -{ - memcpy((uint8_t *)cfg, (uint8_t *)&ATScfg, sizeof(ATSConfig_t)); -} - -void set_ats(uint8_t pro_type, uint8_t fsci, uint8_t fwi, uint8_t sfgi, uint8_t nad, uint8_t cid) -{ - ATScfg.Pro_Type = pro_type; - ATScfg.FSCI = fsci; - ATScfg.FWI = fwi; - ATScfg.SFGI = sfgi; - - ATScfg.NAD_support = nad; - ATScfg.CID_support = cid; -} - -void nfc_yield_ms(uint32_t yield_ms) -{ - mml_nfc_pcd_task_sleep(yield_ms); -} - -void nfc_set_delay_till_next_send_fc(uint32_t delay) -{ - g_delay_till_send = delay; -} - -void nfc_block_for_us(uint32_t block_us) -{ - mml_nfc_pcd_block_for_us(block_us); -} - -void poweron_operatingfield(void) -{ - mml_nfc_pcd_field_on(); -} - -void poweroff_operatingfield(void) -{ - mml_nfc_pcd_field_off(); -} - -void nfc_pcd_reset_wait(void) -{ - mml_nfc_pcd_smart_yield_us(TRESET_US); -} - -int32_t nfc_reset(void) -{ - // Wait at least ISO14443_FDT_MIN to avoid any violations of the EOS - // HOWEVER, we can't use mml_nfc_pcd_delay_for_FDT_PCD(ISO14443_FDT_MIN); - // because we don't have the receive done time stamp. If we only base it off - // the end of TX we will be too short. - mml_nfc_pcd_block_for_us(ISO14443_FDT_MIN_US); - - mml_nfc_pcd_field_off(); - nfc_pcd_reset_wait(); - - mml_nfc_pcd_field_on(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - return 0; -} - -void hexdump(int32_t dbg_level, uint8_t *buf, int32_t len, int32_t send) -{ - int i; - - do_log(dbg_level, "[%03d]%s\n ", len, send ? "-->" : "<--"); - for (i = 0; i < len; i++) { - do_log(dbg_level, "%02X ", buf[i]); - if (((i + 1) % 16 == 0) && (i < (len - 1))) - do_log(dbg_level, "\n "); - } - do_log(dbg_level, "\n"); -} - -static int32_t check_for_requested_abort(int32_t status) -{ - // If the callback exists, call it - if (abort_callback_function) { - if (abort_callback_function()) { - info("Transaction Aborted\n"); - return ISO14443_3_ERR_ABORTED; - } - } - - return status; -} - -void set_abort_check_callback(abort_check_callback_t abort_callback) -{ - abort_callback_function = abort_callback; -} - -static int32_t convert_status_codes(int32_t rf_status) -{ - switch (rf_status) { - case MML_NFC_PCD_E_SUCCESS: - return ISO14443_3_ERR_SUCCESS; - - case MML_NFC_PCD_E_TIMEOUT: - case MML_NFC_PCD_E_TX_TIMEOUT: - case MML_NFC_PCD_E_TO_EMD: - case MML_NFC_PCD_E_TO_PART_RX: - case MML_NFC_PCD_E_HARD_TO: - return ISO14443_3_ERR_TIMEOUT; - - case MML_NFC_PCD_E_PARITY: - case MML_NFC_PCD_E_INVALID_CRC: - case MML_NFC_PCD_E_PROTOCOL: - case MML_NFC_PCD_E_RX_EGT: - case MML_NFC_PCD_E_A_INV_BIT_LEN: - case MML_NFC_PCD_E_B_NOT_ENF_SAMP: - case MML_NFC_PCD_E_B_TR1_INVALID: - case MML_NFC_PCD_E_B_SOS_0S_INVALID: - case MML_NFC_PCD_E_B_SOS_1S_INVALID: - case MML_NFC_PCD_E_B_START_BIT: - case MML_NFC_PCD_E_B_STOP_BIT: - case MML_NFC_PCD_E_B_INCOMPLETE_BYTE: - case MML_NFC_PCD_E_B_EGT_EXCEEDED: - case MML_NFC_PCD_E_F_INV_BIT_LEN: - case MML_NFC_PCD_E_NO_RX_DATA: - case MML_NFC_PCD_E_B_NO_SOS: - case MML_NFC_PCD_E_B_BAD_SOS: - case MML_NFC_PCD_E_B_SUB_DROP_DATA: - case MML_NFC_PCD_E_B_SUB_DROP_SOS: - case MML_NFC_PCD_E_B_ILL_PHZ_CHANGE: - case MML_NFC_PCD_E_B_NON_01_PATTERN: - case MML_NFC_PCD_E_A_BAD_SOF: - case MML_NFC_PCD_E_B_BAD_EOF: - case MML_NFC_PCD_E_NOT_ENF_BITS: - return ISO14443_3_ERR_TRANSMISSION; - - case MML_NFC_PCD_E_COLLISION: - case MML_NFC_PCD_E_A_CONT_MOD_COL: - case MML_NFC_PCD_E_F_SOF_COL: - case MML_NFC_PCD_E_F_PART_SYNC_COL: - return ISO14443_3_ERR_COLLISION; - - case MML_NFC_PCD_E_EARLY_RESPONSE: - return ISO14443_3_ERR_EARLY_RESPONSE; - - default: - return ISO14443_3_ERR_OTHER; - } -} - -static uint32_t pad_for_crystal_margin(uint32_t counts_to_pad) -{ - uint32_t count_margin = 0; - - // Here we only pad the fc count, we depend on the RF driver - // enforce this using what ever time mechanism it has, which - // already accounts for tick length conversion between fc and us. - - // Per ARM Data book, unsigned divide instruction takes 2-12 cycles. - // This is probably fast enough for our purposes. - if (counts_to_pad > CRYSTAL_PPM_MARGIN_DIVISOR) { - count_margin = counts_to_pad / CRYSTAL_PPM_MARGIN_DIVISOR; - } - - return counts_to_pad + (count_margin * CRYSTAL_PPM_MARGIN_MULTIPLIER); -} - -int32_t nfc_pcd_transceive(uint8_t protocol, uint8_t frametype, uint8_t *tx_buf, uint32_t tx_len, - uint8_t *rx_buf, uint32_t *rx_len, uint32_t timeout) - -{ - int32_t status = MML_NFC_PCD_E_SUCCESS; - - mml_nfc_pcd_transceive_params_t trans_params; - - trans_params.protocol = protocol; - trans_params.frametype = frametype; - trans_params.tx_buf = tx_buf; - trans_params.tx_len = tx_len; - trans_params.rx_buf = rx_buf; - trans_params.rx_len = rx_len; - trans_params.timeout = timeout; - - if ((trans_params.timeout != ISO14443_FWT_A_ACT) && - (trans_params.timeout != ISO14443_FWT_ATQB)) { - debug("RF_TO: %d\n", trans_params.timeout); - debug("RF_FT: %d\n", frametype); - } - - // New for CSP3.3.0 RF Driver requires us to specify the early limit time - switch (protocol) { - case PROTOCOL_ISO14443A: - trans_params.early_limit = ISO14443_FDT_A_EARLY_LIMIT; - if (trans_params.early_limit > ISO14443_FDT_A_EXTRA_MARGIN) { - trans_params.early_limit -= ISO14443_FDT_A_EXTRA_MARGIN; - } - trans_params.timeout += ISO14443_FDT_A_EXTRA_MARGIN; - break; - - case PROTOCOL_ISO14443B: - trans_params.early_limit = ISO14443_FDT_B_PICC_MIN; - if (trans_params.early_limit > ISO14443_FDT_B_EXTRA_MARGIN) { - trans_params.early_limit -= ISO14443_FDT_B_EXTRA_MARGIN; - } - trans_params.timeout += ISO14443_FDT_B_EXTRA_MARGIN; - break; - - default: - return ISO14443_3_ERR_OTHER; - } - - // New in CSP 3.3.0 - // Need to provide extra margin for potential crystal oscillator PPM drift - // Due to temperature, improper loading, and normal crystal variances, the accuracy - // of the system clock can be off by 100 ppm or even more. - // - // This is normally not an issue, as for most times we are so small that the 100ppm - // only amounts to a small number of nanoseconds. However, some of the negotiated delays - // and wait times can be several million counts. Therefore, it is safer to pad with - // extra margin on these times as they grow large. - trans_params.delay_till_send = pad_for_crystal_margin(g_delay_till_send); - trans_params.timeout = pad_for_crystal_margin(trans_params.timeout); - - // FDT PCD min delay is 6780fc this works out to 500us - // The RF driver now handles these inter-packet delays via the delay_till_send parameter - - status = mml_nfc_pcd_transceive(trans_params); - - // Reset the delay_till_send for next transaction, unless overridden before - // This simplifies inter packet delay handling, as usually, we only need to - // wait for this minimum time. Longer delay are special cases. - g_delay_till_send = ISO14443_FDT_MIN; - - if ((status != MML_NFC_PCD_E_SUCCESS) && (status != MML_NFC_PCD_E_TIMEOUT)) { - debug("RF_ST: %d, 0x%X\n", status, status); - } - - status = convert_status_codes(status); - - // Check if application wants to abort this transaction - return check_for_requested_abort(status); -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3a_cmd.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3a_cmd.c deleted file mode 100644 index 6b108cc27a1..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3a_cmd.c +++ /dev/null @@ -1,221 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include - -#define SAK_LEN 1 - -int32_t iso_14443_3a_cmd_req_wupa(uint8_t req, uint8_t *atq, uint8_t doretry) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len; - int32_t ret; - uint8_t retry = doretry ? 3 : 1; - - tx_buf[0] = req; - tx_len = 1; - - rx_buf = atq; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_SHORT_NO_CRC_NO_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - /*ATQA should be 2 bytes*/ - if (rx_len != ATQA_LEN) - ret = ISO14443_3_ERR_PROTOCOL; - } - - // EMV 2.6b case TA311, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3a_cmd_anticoll(uint8_t sel, uint8_t *uid) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len = UID_EACH_LEN; - int32_t ret; - - int32_t i; - uint8_t bcc = 0; - uint8_t retry = 3; - - tx_buf[0] = sel; - tx_buf[1] = 0x20; - tx_len = 2; - - rx_buf = uid; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_NO_CRC_NO_EMD, tx_buf, tx_len, - rx_buf, &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - /*each uid should be 5 bytes*/ - if (rx_len != UID_EACH_LEN) { - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - //Check BCC - for (i = 0, bcc = 0; i < 4; i++) { - bcc ^= uid[i]; - } - - if (bcc != uid[4]) { - ret = ISO14443_3_ERR_TRANSMISSION; - } - } - - // EMV 2.6b case TA310, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3a_cmd_select(uint8_t sel, uint8_t *uid, uint8_t *sak) -{ - uint8_t tx_buf[10]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len = 1; //SAK should be one byte. - int32_t ret; - uint8_t retry = 3; - - tx_buf[0] = sel; - tx_buf[1] = 0x70; - memcpy(tx_buf + 2, uid, UID_EACH_LEN); - tx_len = 7; - - rx_buf = sak; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_CRC_NO_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - if (rx_len != SAK_LEN) - ret = ISO14443_3_ERR_PROTOCOL; - } - - // EMV 2.6b case TA312, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3a_cmd_rats(uint8_t fsdi, uint8_t cid, uint8_t *ats, uint32_t *ats_len) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - int32_t ret; - uint8_t retry = 3; - - tx_buf[0] = 0xe0; - - tx_buf[1] = (fsdi << 4) + (cid & 0x0f); - - tx_len = 2; - - rx_buf = ats; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - ats_len, ISO14443_FWT_ACTIVATION); - - if (ret == ISO14443_3_ERR_SUCCESS) { - ret = ISO14443_3_ERR_SUCCESS; - } - - // EMV 2.6b case TA307 and TA313, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_ACTIVATION); - } - - /*debug for case TA306.05*/ - } while (--retry && (ret == ISO14443_3_ERR_TIMEOUT)); - - return ret; -} - -int32_t iso_14443_3a_cmd_halt(void) -{ - uint8_t tx_buf[2]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len; - int32_t ret; - - uint8_t tmp[100]; - - tx_buf[0] = 0x50; - tx_buf[1] = 0x00; - tx_len = 2; - - rx_buf = tmp; - - ret = nfc_pcd_transceive(PROTOCOL_ISO14443A, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_A_ACT); - - if (ret == ISO14443_3_ERR_TIMEOUT) { - //HALT no response. - ret = ISO14443_3_ERR_SUCCESS; - } else { - ret = ISO14443_3_ERR_OTHER; - } - - return ret; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3a_flow.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3a_flow.c deleted file mode 100644 index 6219b894631..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3a_flow.c +++ /dev/null @@ -1,421 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include - -#include -#include "logging.h" - -#define UID_LEVEL_1 1 -#define UID_LEVEL_2 2 -#define UID_LEVEL_3 3 - -#define TL_MAX_VALUE (20) -#define TL_MIN_VALUE (1) - -#define TA_RESERVE_MAKE (0x08) - -#define TA_DEFAULT_VALUE (0x00) - -#define ISO14443_3A_ANTICOLLISION_CT_VALUE 0x88 -#define TYPE_A_SAK_14443_4_SUPPORT 0x20 - -#define ATQA_LEN 2 - -typedef struct { - uint8_t fsci : 4; - uint8_t has_ta : 1; - uint8_t has_tb : 1; - uint8_t has_tc : 1; - uint8_t reserve : 1; -} T0_t; - -typedef struct { - uint8_t sfgi : 4; - uint8_t fwi : 4; -} TB_t; - -typedef struct { - uint8_t TL; - T0_t T0; - uint8_t TA; - TB_t TB; - uint8_t TC; - uint8_t *PTk; -} ATS_t; - -/** - * Last received SAK - * - Can be used to decipher MIFARE card type - */ -static uint8_t sak; - -uint8_t get_last_sak() -{ - return sak; -} - -/* - new version the PCD shall not examine the ATQ RFU bits,only check b5~b8 of byte2 - */ -static int32_t check_atq(uint8_t *atq, uint32_t *uid_level) -{ - if ((atq[0] & 0xC0) == 0x00) { - *uid_level = UID_LEVEL_1; // single size UID - } else if ((atq[0] & 0xC0) == 0x40) { - *uid_level = UID_LEVEL_2; // double size UID - } else if ((atq[0] & 0xC0) == 0x80) { - *uid_level = UID_LEVEL_3; // triple size UID - } else { - *uid_level = UID_LEVEL_1; // default to use single size UID - } - - /*for Bit1~5 RFU*/ - if ((atq[0] & 0x1F) != 0x01 && (atq[0] & 0x1F) != 0x02 && (atq[0] & 0x1F) != 0x04 && - (atq[0] & 0x1F) != 0x08 && (atq[0] & 0x1F) != 0x10) { - *uid_level = UID_LEVEL_1; - } - - /*b5~b8 should be 0.*/ - if (atq[1] & 0xF0) - return ISO14443_3_ERR_PROTOCOL; - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3a_polling() -{ - int32_t void_len = 0; - - return iso_14443_3a_polling_response(NULL, &void_len); -} - -int32_t iso_14443_3a_polling_response(uint8_t *atqa_resp, int32_t *atqa_resp_len) -{ - int32_t ret; - uint8_t *atq = GetCommonBuffer(); - - ret = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, atq, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret != ISO14443_3_ERR_TIMEOUT) { - iso_14443_3a_cmd_halt(); - - // If atqa_resp exits, then save off the ATQA - if (atqa_resp) { - memcpy(atqa_resp, atq, ATQA_LEN); - *atqa_resp_len = ATQA_LEN; - } - - return ISO14443_3_ERR_SUCCESS; - } - - return ISO14443_3_ERR_TIMEOUT; -} - -int32_t iso_14443_3a_collision_detect() -{ - int32_t void_len = 0; - - return iso_14443_3a_collision_detect_response(NULL, &void_len, NULL, &void_len, NULL); -} - -int32_t iso_14443_3a_collision_detect_response(uint8_t *atqa_resp, int32_t *atqa_resp_len, - uint8_t *uid_resp, int32_t *uid_resp_len, - uint8_t *sak_resp) -{ - uint8_t *atq = GetCommonBuffer(); - uint8_t *uid = GetCommonBuffer(); - uint32_t uid_level; - int32_t status = ISO14443_3_ERR_OTHER; - - status = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, atq, WAKEUP_DORETRY); - - if (status != ISO14443_3_ERR_SUCCESS) - return status; - - // If atqa_resp exits, then save off the ATQA - if (atqa_resp) { - memcpy(atqa_resp, atq, ATQA_LEN); - *atqa_resp_len = ATQA_LEN; - } - - if (check_atq(atq, &uid_level) != ISO14443_3_ERR_SUCCESS) { - return ISO14443_3_ERR_CMD; - } - info("uid_level is = %d, atq = %02x%02x\n", uid_level, atq[0], atq[1]); - - /*UID CL1*/ - status = iso_14443_3a_cmd_anticoll(ISO_14443_3A_CMD_ANTICOLL_SEL_L1, uid); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed anticoll l1\n"); - return ISO14443_3_ERR_CMD; - } - info("uid = [%02x%02x%02x%02x%02x]\n", uid[0], uid[1], uid[2], uid[3], uid[4]); - - /*UID CL1 uid0 should not be CT value when 1-level uid*/ - if ((uid_level == UID_LEVEL_1) && uid[0] == ISO14443_3A_ANTICOLLISION_CT_VALUE) - return ISO14443_3_ERR_PROTOCOL; - - if (uid_level >= UID_LEVEL_1) { - // If anticol_resp exists, fill it in - if (uid_resp) { - memcpy(uid_resp, uid, UID_EACH_LEN); - *uid_resp_len = UID_EACH_LEN; - } - - status = iso_14443_3a_cmd_select(ISO_14443_3A_CMD_SELECT_SEL_L1, uid, &sak); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != 0) { - error("Failed select l1\n"); - return ISO14443_3_ERR_CMD; - } - - // If sak_resp exists, fill it in - if (sak_resp) { - *sak_resp = sak; - } - } - - if (uid_level >= UID_LEVEL_2) { - status = iso_14443_3a_cmd_anticoll(ISO_14443_3A_CMD_ANTICOLL_SEL_L2, uid + UID_EACH_LEN); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed anticoll l2\n"); - return ISO14443_3_ERR_CMD; - } - - /*UID CL2 uid3 should not be CT value when 2-level uid*/ - if ((uid_level == UID_LEVEL_2) && uid[UID_EACH_LEN] == ISO14443_3A_ANTICOLLISION_CT_VALUE) - return ISO14443_3_ERR_PROTOCOL; - - // If uid_resp exists, fill it in - if (uid_resp) { - memcpy(uid_resp, uid, UID_EACH_LEN * 2); - *uid_resp_len = UID_EACH_LEN * 2; - } - - status = iso_14443_3a_cmd_select(ISO_14443_3A_CMD_SELECT_SEL_L2, uid + UID_EACH_LEN, &sak); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed select l2\n"); - return ISO14443_3_ERR_CMD; - } - - // If sak_resp exists, fill it in - if (sak_resp) { - *sak_resp = sak; - } - } - - if (uid_level == UID_LEVEL_3) { - status = - iso_14443_3a_cmd_anticoll(ISO_14443_3A_CMD_ANTICOLL_SEL_L3, uid + (2 * UID_EACH_LEN)); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed anticoll l3\n"); - return ISO14443_3_ERR_CMD; - } - - // If uid_resp exists, fill it in - if (uid_resp) { - memcpy(uid_resp, uid, UID_EACH_LEN * 3); - *uid_resp_len = UID_EACH_LEN * 3; - } - - status = - iso_14443_3a_cmd_select(ISO_14443_3A_CMD_SELECT_SEL_L3, uid + (2 * UID_EACH_LEN), &sak); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - error("Failed select l3\n"); - return ISO14443_3_ERR_CMD; - } - - // If sak_resp exists, fill it in - if (sak_resp) { - *sak_resp = sak; - } - } - - // Check to see if this card supports ISO_14443_4 - if ((sak & TYPE_A_SAK_14443_4_SUPPORT) != TYPE_A_SAK_14443_4_SUPPORT) { - return ISO14443_3_ERR_NON_ISO14443_4_CARD; - } - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3a_active() -{ - int32_t void_len = 0; - - return iso_14443_3a_active_response(NULL, &void_len); -} - -int32_t iso_14443_3a_active_response(uint8_t *ats_resp, int32_t *ats_resp_len) -{ - int32_t status = ISO14443_3_ERR_OTHER; - uint8_t fsci = FSCI_DEFAULT_VALUE; - uint8_t cid = 0, nad = 0; - uint8_t *ats = GetCommonBuffer(); - uint32_t ats_len; - uint8_t fwi = FWI_DEFAULT_VALUE, sfgi = SFGI_DEFAULT_VALUE; - uint32_t sfgi_fc = 0; - ATS_t *pats = (ATS_t *)ats; - - status = iso_14443_3a_cmd_rats(FSDI_DEFAULT_VALUE, cid, ats, &ats_len); - - if (status == ISO14443_3_ERR_ABORTED) { - return status; - } - - if (status != ISO14443_3_ERR_SUCCESS) { - return ISO14443_3_ERR_CMD; - } - - // If ats_resp exists, fill it in - if (ats_resp) { - memcpy(ats_resp, ats, ats_len); - *ats_resp_len = ats_len; - } - - //check TL and ats len - if (!ats_len || pats->TL != ats_len) - return ISO14443_3_ERR_PROTOCOL; - - if (pats->TL > TL_MAX_VALUE) - return ISO14443_3_ERR_CMD; - - //for debug ta104.14/15 - if (pats->TL == 0x13 || pats->TL == 0x14) { - info("Case TA102.14/15.\n"); - } - - if (pats->TL > TL_MIN_VALUE) { - fsci = pats->T0.fsci <= FSCI_MAX_VALUE ? pats->T0.fsci : FSCI_MAX_VALUE; - - if (pats->T0.has_ta && pats->TA != TA_DEFAULT_VALUE && !(pats->TA & TA_RESERVE_MAKE)) { - warning("warn TA %x\n", pats->TA); - //return ISO14443_3_ERR_CMD; - } - - if (pats->T0.has_tb) { - fwi = pats->TB.fwi <= FWI_MAX_VALUE ? pats->TB.fwi : FWI_DEFAULT_VALUE; - sfgi = pats->TB.sfgi <= SFGI_MAX_VALUE ? pats->TB.sfgi : SFGI_DEFAULT_VALUE; - } - - //for emv we just ignore the tc value. - - } else if (!pats->TL) { - return ISO14443_3_ERR_PROTOCOL; - } - - info("fsci %d\n", fsci); - set_ats(PROTOCOL_ISO14443A, fsci, fwi, sfgi, nad, cid); - seqnuminit(); - - //SFGI delay = 256x16x2^sfgi + 384x2^sfgi /fc - if (sfgi) { - sfgi_fc = 4480 * (1 << sfgi); - - nfc_set_delay_till_next_send_fc(sfgi_fc); - - info("sfgi=%d, time(fc)=%d \n", sfgi, sfgi_fc); - } - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3a_remove() -{ - int32_t loop = 0; - int32_t ret; - uint8_t *atq = GetCommonBuffer(); - - nfc_reset(); - - while (loop < 3) { - ret = iso_14443_3a_cmd_req_wupa(ISO_14443_3A_CMD_WUPA, atq, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret != ISO14443_3_ERR_TIMEOUT) { - iso_14443_3a_cmd_halt(); - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - loop = 0; - } else { - loop++; - - // EMV 2.6b case TA311, now enforces a minimum retransmission time of 3ms - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_A_ACT); - } - } - - return ISO14443_3_ERR_SUCCESS; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3b_cmd.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3b_cmd.c deleted file mode 100644 index b8dfab8bc94..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3b_cmd.c +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include - -int32_t iso_14443_3b_cmd_req_wup(uint8_t *atq, int32_t *atq_len, uint8_t doretry) -{ - uint8_t tx_buf[100]; - int32_t tx_len; - uint8_t *rx_buf; - uint32_t rx_len; - int32_t ret; - uint8_t retry = doretry ? 3 : 1; - - tx_buf[0] = 0x05; - tx_buf[1] = 0x00; - tx_buf[2] = 0x08; - tx_len = 3; - - rx_buf = atq; - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443B, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_ATQB); - - if (ret == ISO14443_3_ERR_SUCCESS) { - if ((rx_len != ISO3B_ATQB_MINLEN && rx_len != ISO3B_ATQB_MAXLEN) || - rx_buf[0] != ISO3B_ATQB_BYTE1) { - ret = ISO14443_3_ERR_PROTOCOL; - } else { - ret = ISO14443_3_ERR_SUCCESS; - *atq_len = rx_len; - } - } - - // EMV 2.6b case TB311, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && ret == ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_ATQB); - } - } while (--retry && ret == ISO14443_3_ERR_TIMEOUT); - - return ret; -} - -int32_t iso_14443_3b_cmd_attrib(uint8_t *pupi, uint8_t para1, uint8_t para2, uint8_t para3, - uint8_t para4, uint8_t *inf, uint32_t *inf_len, uint32_t timeout, - uint8_t *attrib_resp, int32_t *attrib_resp_len) -{ - uint8_t tx_buf[256]; - int32_t tx_len = 0; - uint8_t rx_buf[256]; - uint32_t rx_len; - int32_t ret; - uint8_t retry = 3; - - tx_buf[tx_len++] = 0x1d; - memcpy(tx_buf + tx_len, pupi, PUPI_SIZE); - tx_len += PUPI_SIZE; - - tx_buf[tx_len++] = para1; - tx_buf[tx_len++] = para2; - tx_buf[tx_len++] = para3; - tx_buf[tx_len++] = para4; - - if ((inf != NULL) && (inf_len != NULL)) { - memcpy(tx_buf + tx_len, inf, *inf_len); - tx_len += (*inf_len); - } - - do { - ret = nfc_pcd_transceive(PROTOCOL_ISO14443B, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, timeout); - - if (ret == ISO14443_3_ERR_SUCCESS) { - // If we have a non NULL buffer to save it, copy in the raw ATTRIB_RESPONSE - if (attrib_resp) { - memcpy(attrib_resp, rx_buf, rx_len); - *attrib_resp_len = rx_len; - } - - /*CID value should be 0*/ - if ((rx_buf[0] & 0x0f) != para4) - ret = ISO14443_3_ERR_PROTOCOL; - - /*disregard MBLI*/ - - /*high-inf should be empty*/ - if (rx_len != 1) - ret = ISO14443_3_ERR_CONTAINS_HIGH_INF; - } - - // EMV 2.6b case TB305, TB3012, now enforces a minimum retransmission time of 3ms - if ((retry > 1) && (ret == ISO14443_3_ERR_TIMEOUT || ret == ISO14443_3_ERR_COLLISION)) { - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + timeout); - } - } while (--retry && (ret == ISO14443_3_ERR_TIMEOUT || ret == ISO14443_3_ERR_COLLISION)); - - return ret; -} - -int32_t iso_14443_3b_cmd_halt(uint8_t *pupi) -{ - uint8_t tx_buf[20]; - int32_t tx_len; - uint8_t rx_buf[10]; - uint32_t rx_len; - int32_t ret; - - tx_buf[0] = 0x50; - memcpy(tx_buf + 1, pupi, 4); - tx_len = 5; - - ret = nfc_pcd_transceive(PROTOCOL_ISO14443B, FT_STANDARD_CRC_EMD, tx_buf, tx_len, rx_buf, - &rx_len, ISO14443_FWT_DEFAULT); - - if (ret == ISO14443_3_ERR_SUCCESS) { - if (rx_len != 1 || rx_buf[0] != 0x00) { - ret = ISO14443_3_ERR_PROTOCOL; - } else { - ret = ISO14443_3_ERR_SUCCESS; - } - } - return ret; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3b_flow.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3b_flow.c deleted file mode 100644 index 251d85f2c6e..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_3b_flow.c +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include - -#include -#include "logging.h" - -typedef struct { - uint8_t bit_rate; - - uint8_t pro_type : 4; - uint8_t fsci : 4; - - uint8_t fo : 2; - uint8_t adc : 2; - uint8_t fwi : 4; - - uint8_t rfu : 4; - uint8_t sfgi : 4; -} PROINFO_t; - -typedef struct { - uint8_t atqb_f; - uint8_t pupi[PUPI_SIZE]; - uint8_t appdata[4]; - PROINFO_t proinfo; -} ATQB_t; - -static ATQB_t GAtqb; - -int32_t iso_14443_3b_polling(void) -{ - int32_t void_len = 0; - - return iso_14443_3b_polling_response(NULL, &void_len); -} - -int32_t iso_14443_3b_polling_response(uint8_t *atqb_resp, int32_t *atqb_resp_len) -{ - uint8_t *atq = GetCommonBuffer(); - int32_t atq_len; - int32_t ret; - - ret = iso_14443_3b_cmd_req_wup(atq, &atq_len, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret == ISO14443_3_ERR_TIMEOUT) { - //Timeout - return ISO14443_3_ERR_OTHER; - } - - // If atqb_resp exists, copy in the ATQB - if (atqb_resp) { - memcpy(atqb_resp, atq, atq_len); - *atqb_resp_len = atq_len; - } - - return 0; -} - -static void set_atqb(ATQB_t *patqb) -{ - memcpy(&GAtqb, patqb, sizeof(ATQB_t)); -} - -static void get_atqb(ATQB_t *patqb) -{ - memcpy(patqb, &GAtqb, sizeof(ATQB_t)); -} - -int32_t iso_14443_3b_collision_detect(void) -{ - int32_t void_len = 0; - - return iso_14443_3b_collision_detect_response(NULL, &void_len); -} - -int32_t iso_14443_3b_collision_detect_response(uint8_t *atqb_resp, int32_t *atqb_resp_len) -{ - uint8_t *atqb = GetCommonBuffer(); - int32_t atqb_len; - - uint8_t fsci = FSCI_DEFAULT_VALUE; - uint8_t fwi = FWI_DEFAULT_VALUE; - uint8_t sfgi = SFGI_DEFAULT_VALUE; - uint8_t nad = 0, cid = 0; /*we don't support nad&cid in default*/ - - ATQB_t *patqb = (ATQB_t *)atqb; - int32_t ret; - - ret = iso_14443_3b_cmd_req_wup(atqb, &atqb_len, WAKEUP_DORETRY); - - if (ret != ISO14443_3_ERR_SUCCESS) - return ret; - - // If atqb_resp exists, copy in the ATQB - if (atqb_resp) { - memcpy(atqb_resp, atqb, atqb_len); - *atqb_resp_len = atqb_len; - } - - fsci = patqb->proinfo.fsci <= FSCI_MAX_VALUE ? patqb->proinfo.fsci : FSCI_MAX_VALUE; - fwi = patqb->proinfo.fwi <= FWI_MAX_VALUE ? patqb->proinfo.fwi : FWI_DEFAULT_VALUE; - - if (atqb_len == ISO3B_ATQB_MAXLEN) - sfgi = patqb->proinfo.sfgi <= SFGI_MAX_VALUE ? patqb->proinfo.sfgi : SFGI_DEFAULT_VALUE; - - /**check protocol type B4 must be 0*/ - if (patqb->proinfo.pro_type & 0x08) - return ISO14443_3_ERR_PROTOCOL; - - /*FO,CID NAD support*/ - if (patqb->proinfo.fo & 0x01) - cid = 1; - if (patqb->proinfo.fo & 0x02) - nad = 1; - - set_atqb(patqb); - set_ats(PROTOCOL_ISO14443B, fsci, fwi, sfgi, nad, cid); - - return ISO14443_3_ERR_SUCCESS; -} - -int32_t iso_14443_3b_active(void) -{ - int32_t void_len = 0; - - return iso_14443_3b_active_response(NULL, &void_len); -} - -int32_t iso_14443_3b_active_response(uint8_t *attrib_resp, int32_t *attrib_resp_len) -{ - int32_t ret; - uint32_t sfgi_fc = 0; - ATQB_t atqb; - ATSConfig_t ats; - - get_atqb(&atqb); - get_ats(&ats); - - /* 6.3.2.10 PCD must disregard the value of bits b4-b2 of Protocol_Type */ - ret = iso_14443_3b_cmd_attrib(atqb.pupi, 0x00, FSDI_DEFAULT_VALUE, - (atqb.proinfo.pro_type & PROTOCOL_DISREGARD_BITS), 0x00, NULL, - NULL, (4096 * (1 << ats.FWI) + ISO14443_FWT_DELTA), attrib_resp, - attrib_resp_len); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if ((ret != ISO14443_3_ERR_SUCCESS) && (ret != ISO14443_3_ERR_CONTAINS_HIGH_INF)) { - return ISO14443_3_ERR_CMD; - } - - seqnuminit(); - - //SFGI delay = 256x16x2^sfgi + 384x2^sfgi - if (ats.SFGI) { - sfgi_fc = 4480 * (1 << ats.SFGI); - - nfc_set_delay_till_next_send_fc(sfgi_fc); - - info("sfgi=%d, time(fc)=%d \n", ats.SFGI, sfgi_fc); - } - return ret; -} - -int32_t iso_14443_3b_remove(void) -{ - int32_t loop = 0; - int32_t ret; - uint8_t *atq = GetCommonBuffer(); - int32_t atq_len; - - nfc_reset(); - - while (loop < 3) { - ret = iso_14443_3b_cmd_req_wup(atq, &atq_len, WAKEUP_NOTRETRY); - - if (ret == ISO14443_3_ERR_ABORTED) { - return ret; - } - - if (ret != ISO14443_3_ERR_TIMEOUT) { - nfc_set_delay_till_next_send_fc(TPDELAY_IN_FC); - - loop = 0; - } else { - loop++; - - // EMV 2.6b case TB311, now enforces a minimum retransmission time of 3ms - nfc_set_delay_till_next_send_fc(TMIN_RETRANSMISSION_FC + ISO14443_FWT_ATQB); - } - } - - return ISO14443_3_ERR_SUCCESS; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_4_transitive.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_4_transitive.c deleted file mode 100644 index 21a5e3b740c..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/emv_l1_stack/iso14443_4_transitive.c +++ /dev/null @@ -1,524 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include -#include - -#include -#include "logging.h" - -#define RSEQNUM(pcb) (pcb & 1) -#define ISEQNUM(pcb) (pcb & 1) - -#define ISRNAK(pcb) (pcb & 0x10) /*is R(NAK) or not*/ - -#define CHAINING(pcb) ((pcb >> 4) & 1) // Retrieves More data bit info from pcb - -#define MAXRETRY_SENDBLOCK 3 -#define MAXRESENDIBLOCK 2 - -#define BLOCKTYPE(p) (p & 0xC2) -#define BLOCK_I (0x02) -#define BLOCK_R (0x82) -#define BLOCK_S (0xC2) - -#define PCBS 0xF2 -#define WTXM_MAX_VALUE (59) - -#define ACK 0 -#define NAK 1 -#define PCB_I(b5, b1) (0x2 | b1 | (b5 << 4)) -#define PCB_R(nak, b1) (0xA2 | b1 | (nak << 4)) -#define PCB_S(b56) (0xC0 | (b56 << 4)) - -typedef enum { False = 0, True } Bool; - -#define PCBLEN 1 -#define CRCLEN 2 - -const uint16_t FSCTable[9] = { 16, 24, 32, 40, 48, 64, 96, 128, 256 }; -const uint16_t *FSDTable = FSCTable; - -static uint8_t gPCDSeqNum = 0; - -/** - * @brief Reset block number - * - * Resets the block number for block transmission to 0 - */ -void seqnuminit(void) -{ - gPCDSeqNum = 0; -} - -static int32_t nfc_pcd_transceive_withpcb(uint8_t SPCB, uint8_t *RPCB, uint8_t protocol, - uint8_t frametype, uint8_t *tx_buf, int32_t tx_len, - uint8_t *rx_buf, int32_t *rx_len, uint32_t timeout) -{ - int32_t ret, slen = 0; - uint8_t sbuf[MAX_BUFFER_LEN], rbuf[MAX_BUFFER_LEN]; - uint32_t rlen = MAX_BUFFER_LEN; - - sbuf[slen++] = SPCB; - if (tx_len > 0) { - memcpy(sbuf + 1, tx_buf, tx_len); - slen += tx_len; - } - - debug("trans TX: "); - hexdump(DBG_LVL_DBG, sbuf, slen, 1); - - ret = nfc_pcd_transceive(protocol, frametype, sbuf, slen, rbuf, &rlen, timeout); - - if (ret != ISO14443_3_ERR_SUCCESS) { - return ret; - } - - full_debug("trans RX: "); - hexdump(DBG_LVL_FDB, rbuf, (rlen + CRCLEN), 0); - - /*4.7.3.1 (protocol error) if it receives a frame with more than FSD data bytes,2 bytes crc not include of rx_buf*/ - if (rlen > (uint32_t)(FSDTable[FSDI_DEFAULT_VALUE] - CRCLEN)) - return ISO14443_3_ERR_PROTOCOL; - - if (rlen == 0) - return ISO14443_3_ERR_PROTOCOL; - - *RPCB = rbuf[0]; - memcpy(rx_buf, (rbuf + 1), rlen - 1); - *rx_len = rlen - 1; - - return ISO14443_3_ERR_SUCCESS; -} - -/**************************************************************** - - - ________________Send______________________ - 012345 789ABCD EF - ------------------- - |PCB | INF |EDC | - ------------------- - | 12 | 012345 |xxxx | - ------------------- - I(0) | ^ - | | - v |R(ACK) - ---------- - |PCB |EDC| - ---------- - - ****************************************************************/ -/**************************************************************** - Transmit and Receive APDU to and from a PICC (Card). - -Pres: -capdu(out): -capdu_len(out): -rapdu(in): -rapdu_len(in): -Return: -Status of excute. - ****************************************************************/ -int32_t SendAPDU(uint8_t *capdu, int32_t capdu_len, uint8_t *rapdu, int32_t *rapdu_len) -{ - int32_t sendiblocklen; /*send length of one I-Block*/ - - uint8_t readPCB; /*one byte PCB from PICC*/ - int32_t readLen; /*read length of bytes from PICC*/ - int8_t retry; /*for all type of the blocks*/ - int8_t iblockresend; /*i block resend times*/ - - uint8_t rSINF; /*one byte INF of S-Block*/ - int8_t morechain; /*more chain for I-Block*/ - - uint32_t fwt, fwttmp; /*frame wait time*/ - uint8_t WTXM = 0; /*10.2.2 1~59*/ - uint8_t rbuf[MAX_BUFFER_LEN]; /*receive buffer*/ - uint16_t fsc; /*Table 5.17,get from FSCI 16~256(FSCI 0~8)bytes*/ - int32_t ret = 0; - - Bool ApduDone = False; /*apdu done.*/ - ATSConfig_t ATS; /*answer to select*/ - Bool getSblock = False; - - get_ats(&ATS); - - fwt = (4096 * (1 << ATS.FWI) + ISO14443_FWT_DELTA) + 1 + 54; - fsc = (FSCTable[ATS.FSCI] - PCBLEN - CRCLEN); - - *rapdu_len = 0; - - /*start to send command.*/ - while (capdu_len) { - sendiblocklen = (capdu_len < fsc) ? capdu_len : fsc; - capdu_len -= sendiblocklen; - morechain = capdu_len ? 1 : 0; - - //10.3.4.1 The first block shall be sent by the PCD. - ret = nfc_pcd_transceive_withpcb(PCB_I(morechain, gPCDSeqNum), &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, capdu, sendiblocklen, rbuf, &readLen, - fwt); - - retry = MAXRETRY_SENDBLOCK; - iblockresend = 0; - while (retry--) { - /*10.3.2.1 When an I-block indicating chaining is received, the block shall be acknowledged by an R(ACK) block.*/ - if (ret == ISO14443_3_ERR_SUCCESS) { - switch (BLOCKTYPE(readPCB)) { - /*I Block*/ - case BLOCK_I: - if ((readPCB & 0x2E) != 0x02) { - error("Bad I block: 10.3.2.1\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /* already send all cmd,start get response from here*/ - if (((ISEQNUM(readPCB) == gPCDSeqNum) && (!morechain))) { - /*10.3.3.3 */ - - break; - } - error("10.3.2.1 readPCB %x %d\n", ISEQNUM(readPCB), readPCB); - ret = ISO14443_3_ERR_PROTOCOL; - break; - - /*R Block*/ - case BLOCK_R: - if (ISRNAK(readPCB)) { - /*10.3.4.6 reject R(NAK)*/ - error("Get RNAK 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*update B6 b4 B3must be*/ - if (!(readPCB & 0x20) || (readPCB & 0x08) || (readPCB & 0x04) || - !(readPCB & 0x02)) { - error("ERR RACK 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - if (RSEQNUM(readPCB) == gPCDSeqNum) { - if (morechain) { - /*10.3.3.3 last block is chaining block 10.3.4.5 */ - gPCDSeqNum ^= 1; - - break; - } else { - /*10.3.4.5 if last block is not chaining block,protocol error*/ - error("Last block not a chaining block\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } else { - /*10.3.4.3 received block number is different.*/ - ret = ISO14443_3_ERR_PROTOCOL; - /*PCD shall re-transmit the last I-block if this R(ACK) block is received in response to an R(NAK) block sent by the PCD to notify a time-out.*/ - - if (iblockresend > MAXRESENDIBLOCK) { - /*10.3.4.4 max resend 2 time.*/ - while (1) {} - error("IBlock resend max 2 times %d\n", retry); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } else { - warning("IBlock resend R(ACK) #%d\n", iblockresend); - /*resend last i block.*/ - iblockresend++; - retry++; - ret = nfc_pcd_transceive_withpcb(PCB_I(morechain, gPCDSeqNum), &readPCB, - ATS.Pro_Type, FT_STANDARD_CRC_EMD, - capdu, sendiblocklen, rbuf, &readLen, - fwt); - continue; - } - } - break; - - /*S Block*/ - case BLOCK_S: - - /*10.3.4.2*/ - do { - if (readPCB == PCBS) { - rSINF = *rbuf; - - if (!rSINF || (rSINF > WTXM_MAX_VALUE)) { - error("WTX 00 or more than 59\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - //10.2.2.1 - WTXM = (rSINF < WTXM_MAX_VALUE) ? rSINF : WTXM_MAX_VALUE; - /*wtx=fwt*wtxm+deltafwt*/ - fwttmp = ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) <= - ISO14443_FWT_MAX ? - ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) : - ISO14443_FWT_MAX; - - //send back same 1 byte INF to comfirm picc. - ret = nfc_pcd_transceive_withpcb(readPCB, &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, &rSINF, 1, rbuf, - &readLen, fwttmp); - - if (ret != ISO14443_3_ERR_SUCCESS) - break; - - getSblock = True; - - //check if is next s block. - if (BLOCKTYPE(readPCB) != BLOCK_S) - break; - - } else { - //maybe DESELECT something,DO NOT support. - error("ERR SBLOCK: 10.3.4.2\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } while (1); - - if (getSblock) { - full_debug("getout from s\n"); - retry += 1; - continue; - } - break; - default: - // its a protocol error block - error("Unknown block type.\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } - - //no need retry and error handle. - if (ret == ISO14443_3_ERR_SUCCESS) - break; - - /*power of pcd for protocol error.*/ - if (ret == ISO14443_3_ERR_PROTOCOL) { - //9.6.12 - error("Protocol Error: 9.6.12\n"); - return ISO14443_3_ERR_PROTOCOL; - } - - /* Return to application if they aborted this transaction */ - if (ret == ISO14443_3_ERR_ABORTED) { - info("Transaction Aborted\n"); - return ret; - } - - debug("iblock tx retry: %d, iblockresend: %d\n", retry, iblockresend); - - if ((retry) || (iblockresend == MAXRESENDIBLOCK)) { - if (ret == ISO14443_3_ERR_TIMEOUT) { - warning("ISO14443_3_ERR_TIMEOUT\n"); - } else if (ret == ISO14443_3_ERR_TRANSMISSION) { - warning("ISO14443_3_ERR_TRANSMISSION\n"); - } else if (ret == ISO14443_3_ERR_COLLISION) { - warning("ISO14443_3_ERR_COLLISION\n"); - } else if (ret == ISO14443_3_ERR_EARLY_RESPONSE) { - warning("ISO14443_3_ERR_EARLY_RESPONSE\n"); - } else if (ret == ISO14443_3_ERR_PROTOCOL) { - /*9.6.1.2 return to polling*/ - error("Protocol Error: 9.6.1.2\n"); - return ISO14443_3_ERR_PROTOCOL; - } else { - error("ISO14443_3_ERR_OTHER unexpected in retry check\n"); - return ISO14443_3_ERR_OTHER; - } - - //send nak for timeout - debug("RNAK %d\n", retry); - /*10.3.5.3 send RNAK to picc*/ - ret = nfc_pcd_transceive_withpcb(PCB_R(NAK, gPCDSeqNum), &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, NULL, 0, rbuf, &readLen, fwt); - } - } - - /* MAX 3 time for one same block*/ - if (retry < 0) { - error("retried 3 times\n"); - if (ret == ISO14443_3_ERR_TIMEOUT) { - return ISO14443_3_ERR_TIMEOUT; - } - return ISO14443_3_ERR_PROTOCOL; - } - capdu += sendiblocklen; - } - - /*start to receive response.*/ - while (1) { - if (readLen > 0) { - memcpy(rapdu + *rapdu_len, rbuf, readLen); - *rapdu_len += readLen; - debug("*rapdu_len: %d\n", *rapdu_len); - } - - /*10.3.3.3 */ - gPCDSeqNum ^= 1; - - // Check whether there are morechain chained APDU responses blocks - if (CHAINING(readPCB)) { - //10.3.2.1 When an I-block indicating chaining is received, the block shall be acknowledged by an R(ACK) block. - ret = nfc_pcd_transceive_withpcb(PCB_R(ACK, gPCDSeqNum), &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, NULL, 0, rbuf, &readLen, fwt); - - /*you have 3 chances to retry one block. */ - retry = MAXRETRY_SENDBLOCK; - ApduDone = False; - while (retry && !ApduDone) { - /*receive next chaining i block.*/ - if (ret == ISO14443_3_ERR_SUCCESS) { - switch (BLOCKTYPE(readPCB)) { - case BLOCK_I: - /*update RFU to must be*/ - if ((readPCB & 0x20) || (readPCB & 0x08) || (readPCB & 0x04) || - !(readPCB & 0x02)) { - error("ERR IBLOCK 10.3.2.1\n"); - return ISO14443_3_ERR_PROTOCOL; - } - - if (ISEQNUM(readPCB) == gPCDSeqNum) { - /* A valid I-Block,break retry loop */ - ApduDone = True; - } else { - /*error block num*/ - ret = ISO14443_3_ERR_PROTOCOL; - } - - break; - case BLOCK_R: - if (ISRNAK(readPCB)) { - /*10.3.4.6 reject R(NAK)*/ - error("R(NAK) reject: 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*update B6 b4 B3must be*/ - if (!(readPCB & 0x20) || (readPCB & 0x08) || (readPCB & 0x04) || - !(readPCB & 0x02)) { - error("ERR RACK bad PCB bits: 10.3.4.6\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - /*do not retranmit because R block only has 3 bytes,less than 4 bytes.*/ - if (RSEQNUM(readPCB) == gPCDSeqNum) { - /*10.3.4.5*/ - ret = ISO14443_3_ERR_PROTOCOL; - } else { - /*10.3.4.3 need more test*/ - ret = ISO14443_3_ERR_PROTOCOL; - } - break; - case BLOCK_S: - if (readPCB != PCBS) { - error("ERR SBLOCK not allowed during chaining\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*10.3.4.2 get wtxm*/ - rSINF = *rbuf; - if (!rSINF || (rSINF > WTXM_MAX_VALUE)) { - error("WTX 00 or more than 59 during chaining\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - - /*10.2.2.1 10.3.5.8*/ - WTXM = (rSINF < WTXM_MAX_VALUE) ? rSINF : WTXM_MAX_VALUE; - - /*wtx=fwt*wtxm+deltafwt*/ - fwttmp = ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) <= - ISO14443_FWT_MAX ? - ((fwt - ISO14443_FWT_DELTA) * WTXM + ISO14443_FWT_DELTA) : - ISO14443_FWT_MAX; - - /*send back same 1 byte INF to comfirm picc.*/ - ret = nfc_pcd_transceive_withpcb(readPCB, &readPCB, ATS.Pro_Type, - FT_STANDARD_CRC_EMD, &rSINF, 1, rbuf, - &readLen, fwttmp); - - break; - default: - // its a protocol error block - error("Bad Block Type during chaining\n"); - ret = ISO14443_3_ERR_PROTOCOL; - break; - } - } else if ((ret == ISO14443_3_ERR_TIMEOUT) || - (ret == ISO14443_3_ERR_TRANSMISSION) || - (ret == ISO14443_3_ERR_COLLISION) || - (ret == ISO14443_3_ERR_EARLY_RESPONSE)) { - /*10.3.5.8 ReSend last RACK */ - /*10.3.5.6 this transmission error block*/ - - if (--retry) { - /*send RACK block*/ - ret = nfc_pcd_transceive_withpcb(PCB_R(ACK, gPCDSeqNum), &readPCB, - ATS.Pro_Type, FT_STANDARD_CRC_EMD, NULL, 0, - rbuf, &readLen, fwt); - } - } else { - error("protocol or other error during chaining\n"); - return ret; - } - } - - /*10.3.5.6 max resend RACK twice. total 3 time.*/ - if (!retry) { - if (ret == ISO14443_3_ERR_TIMEOUT) { - return ISO14443_3_ERR_TIMEOUT; - } - return ISO14443_3_ERR_PROTOCOL; - } - } else { - /*10.3.5.3 response i block is no-link block Done!*/ - info("apdu done!\n"); - break; - } - } - return ret; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/logging.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/logging.c deleted file mode 100644 index e7ddfbb960a..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/logging.c +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include -#include "logging.h" - -/** - * @brief Controls the logging level for the L1 Stack - * - * Stack Logging Level - * - * Defaults to output logging level messages only - */ -int32_t g_logging_level = DBG_LVL_LOG; - -/** - * @brief Conditionally print some logging information - * - * This function is called by @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_MACROS to implement multilevel debugging messages - * - * @param[in] req_level Level for this logging message, use one of @ref NFC_PCD_EMV_LVL1_STACK_LOGGING_LVLS - * @param[in] ... printf style formating string and variables to print etc. - */ -void do_log(int32_t req_level, ...) -{ - va_list ap; - - if (req_level <= g_logging_level) { - va_start(ap, req_level); - const char *fmt = va_arg(ap, const char *); - vprintf(fmt, ap); - va_end(ap); - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/mml_nfc_port.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/mml_nfc_port.c deleted file mode 100644 index 0ace6bd4d13..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/nfc/mml_nfc_port.c +++ /dev/null @@ -1,291 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#include -#include -#include - -#include "mxc_device.h" - -/** - * @page NFC_EMV_CONTACTLESS_RF_DRIVER_PORT NFC EMV Contactless PCD RF Driver Porting Functions - * - * @remarks This file provides various methods required for the NFC PCD RF driver - * which integrators may wish to modify for specific porting requirements, - * including RTOS integrations etc. - * - * @see @ref APIOverviewAndUsage - * @see @ref NFC_EMV_CONTACTLESS_RF_DRIVER - */ - -// In single process/thread applications, we may set the NFC interrupt to max priority: 0 -#define NFC_INTERRUPT_PRIORITY 0 -// Typically, the FWT (timeout) timer is set to one less priority from the NFC interrupt -//#define FWT_TIMER_INTERRUPT_PRIORITY (NFC_INTERRUPT_PRIORITY + 1) -#define FWT_TIMER_INTERRUPT_PRIORITY 0 - -// Fake semaphore used in single process/thread applications -static volatile uint32_t g_fake_semaphore = 0; - -// Enable dump of analog settings before setting for the RF driver -#define DUMP_SELECTED_ANALOG_SETTINGS 0 - -/** Capture array used for Type B SW based receiver */ -// Not needed as of now for the MAX32572, size is 0 -uint16_t mml_nfc_pcd_maj_sel_capture_data[CAPTURE_DATA_BUFFER_SIZE]; - -/** Packing buffer used for internal framing */ -uint8_t mml_nfc_pcd_packing_buffer[MAX_PACKING_BUFFER_LEN]; - -/** - * Default NFC Analog Configuration values - */ -mml_nfc_pcd_analog_params_matrix_t mml_nfc_pcd_analog_parameters_matrix = { - .fd_thresholds = { 180, 170, 140 }, - .fd_dyn_trigger_a = { 125, 125, 125 }, - .fd_dyn_math_a = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_b = { 125, 125, 125 }, - .fd_dyn_math_b = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_trigger_f = { 100, 100, 100 }, - .fd_dyn_math_f = { IQ_MATH_CH_I, IQ_MATH_CH_I, IQ_MATH_CH_I }, - .fd_dyn_trigger_v = { 125, 125, 125 }, - .fd_dyn_math_v = { IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I, IQ_MATH_Q_MINUS_I }, - .fd_dyn_sttm_a = { 0x00000000, 0x00000000, 0x00000000 }, - .fd_dyn_stfm_a = { 0x7F000000, 0x7F000000, 0x7F000000 }, - .fd_dyn_sttm_bfv = { 0x06060606, 0x06060606, 0x06060606 }, - .fd_dyn_stfm_bfv = { 0x7F060606, 0x7F060606, 0x7F060606 }, - .fd_dyn_gain = { 12, 12, 12 }, - .fd_dyn_atten = { 0x1F, 0x1F, 0x1F } -}; - -/** - * NFC Analog Configuration values to use for current transaction - */ -mml_nfc_pcd_analog_params_t current_analog_parameters = { .trigger_level = 125, - .sttm = 0x00000000, - .stfm = 0x7F000000, - .gain = 12, - .iq_math = IQ_MATH_Q_MINUS_I, - .atten = 0x1F }; - -void mml_nfc_pcd_enter_critical(void) -{ - __disable_irq(); -} - -void mml_nfc_pcd_leave_critical(void) -{ - __enable_irq(); -} - -void mml_nfc_pcd_task_sleep(uint32_t delay_ms) -{ - nfc_block_for_us(1000 * (delay_ms)); -} - -void mml_nfc_pcd_set_nfc_interrupt_priority(int32_t nfc_irq_num) -{ - NVIC_SetPriority(nfc_irq_num, NFC_INTERRUPT_PRIORITY); -} - -void mml_nfc_pcd_set_FWT_timer_interrupt_priority(int32_t fwt_timer_irq_num) -{ - NVIC_SetPriority(fwt_timer_irq_num, FWT_TIMER_INTERRUPT_PRIORITY); -} - -void mml_nfc_pcd_create_semaphore() -{ - // We are single threaded, no need for a real semaphore - g_fake_semaphore = 0; -} - -void mml_nfc_pcd_take_semaphore() -{ - while (1) { - if (g_fake_semaphore) { - // Need to reset our semaphore - mml_nfc_pcd_enter_critical(); - g_fake_semaphore = 0; - mml_nfc_pcd_leave_critical(); - - return; - } - } -} - -void mml_nfc_pcd_give_semaphore_from_isr() -{ - g_fake_semaphore = 1; -} - -void mml_nfc_pcd_field_level_detection_callback(uint8_t protocol) -{ - uint8_t sensed_threshold = 0; - uint32_t field_sensed = 0; - int32_t return_status = 0; - - // Sweep through and identify the requested level - for (sensed_threshold = 0; sensed_threshold < FD_THRESH_NUM_STEPS;) { - return_status = mml_nfc_pcd_detect_loading( - mml_nfc_pcd_analog_parameters_matrix.fd_thresholds[sensed_threshold], &field_sensed); - - if (return_status != MML_NFC_PCD_E_SUCCESS) { - error("Failed to detect_loading: %d\n", return_status); - } - - if (field_sensed) { - break; - } - - sensed_threshold++; - } - - // Bounds check - if (sensed_threshold > (FD_THRESH_NUM_STEPS - 1)) { - sensed_threshold = FD_THRESH_NUM_STEPS - 1; - } - - switch (protocol) { - case PROTOCOL_ISO14443A: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a[sensed_threshold]; - break; - - case PROTOCOL_ISO14443B: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_b[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_b[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[sensed_threshold]; - break; - - case PROTOCOL_TYPE_F: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_f[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_f[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[sensed_threshold]; - break; - - case PROTOCOL_ISO15693_100_1OF4_SINGLE_HIGH: - case PROTOCOL_ISO15693_100_1OF4_SINGLE_LOW: - case PROTOCOL_ISO15693_100_1OF4_DUAL_HIGH: - case PROTOCOL_ISO15693_100_1OF4_DUAL_LOW: - case PROTOCOL_ISO15693_100_1OF256_SINGLE_HIGH: - case PROTOCOL_ISO15693_100_1OF256_SINGLE_LOW: - case PROTOCOL_ISO15693_100_1OF256_DUAL_HIGH: - case PROTOCOL_ISO15693_100_1OF256_DUAL_LOW: - case PROTOCOL_ISO15693_10_1OF4_SINGLE_HIGH: - case PROTOCOL_ISO15693_10_1OF4_SINGLE_LOW: - case PROTOCOL_ISO15693_10_1OF4_DUAL_HIGH: - case PROTOCOL_ISO15693_10_1OF4_DUAL_LOW: - case PROTOCOL_ISO15693_10_1OF256_SINGLE_HIGH: - case PROTOCOL_ISO15693_10_1OF256_SINGLE_LOW: - case PROTOCOL_ISO15693_10_1OF256_DUAL_HIGH: - case PROTOCOL_ISO15693_10_1OF256_DUAL_LOW: - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_v[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_v[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_bfv[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_bfv[sensed_threshold]; - break; - - default: - error("Error when setting analog configuration, MML_NFC_PCD_E_UNKNOWN_PROTOCOL\n"); - current_analog_parameters.trigger_level = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_trigger_a[sensed_threshold]; - current_analog_parameters.sttm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_sttm_a[sensed_threshold]; - current_analog_parameters.stfm = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_stfm_a[sensed_threshold]; - current_analog_parameters.iq_math = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_math_a[sensed_threshold]; - return; - } - - // Implement dynamic gain - current_analog_parameters.gain = - mml_nfc_pcd_analog_parameters_matrix.fd_dyn_gain[sensed_threshold]; - - if (DUMP_SELECTED_ANALOG_SETTINGS) { - info("Detected Loading Index: %d\n", sensed_threshold); - info("Selected Trigger %3d\n", current_analog_parameters.trigger_level); - info("Selected STTM %8X\n", current_analog_parameters.sttm); - info("Selected STFM %8X\n", current_analog_parameters.stfm); - info("Selected Gain %3d\n", current_analog_parameters.gain); - info("Selected Atten %3d\n", current_analog_parameters.atten); - - switch (current_analog_parameters.iq_math) { - case IQ_MATH_CH_I: - info("Selected IQ Math IQ_MATH_CH_I\n"); - break; - case IQ_MATH_CH_Q: - info("Selected IQ Math IQ_MATH_CH_Q\n"); - break; - case IQ_MATH_I_MINUS_Q: - info("Selected IQ Math IQ_MATH_I_MINUS_Q\n"); - break; - case IQ_MATH_Q_MINUS_I: - info("Selected IQ Math IQ_MATH_Q_MINUS_I\n"); - break; - case IQ_MATH_I_PLUS_Q: - info("Selected IQ Math IQ_MATH_I_PLUS_Q\n"); - break; - - default: - info("Selected IQ Math IQ_MATH_CH_In"); - break; - } - } - - if (mml_nfc_pcd_set_analog_config(current_analog_parameters) != MML_NFC_PCD_E_SUCCESS) { - error("Error when setting analog configuration\n"); - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state.c deleted file mode 100644 index b95e0b80761..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state.c +++ /dev/null @@ -1,66 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include "state.h" - -/********************************* VARIABLES *************************/ -static State *g_state = NULL; - -/********************************* Public Functions **************************/ -void state_init(void) -{ - TFT_SetBackGroundColor(0); - TFT_ShowImage(52, 87, maxim_integrated_large_bmp); - - vTaskDelay((1 * configTICK_RATE_HZ)); // 1 second - - state_set_current(get_home_state()); -} - -int state_set_current(State *state) -{ - if (state != g_state) { - g_state = state; - g_state->init(); - } - - return 0; -} - -State *state_get_current(void) -{ - return g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_home.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_home.c deleted file mode 100644 index 92fc158c89c..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_home.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ - -/********************************* VARIABLES *************************/ -static text_t text_msg[] = { - { (char *)"MAX32572 - FreeRTOS Demo", 24 }, - { (char *)"Select an activity", 18 }, -}; - -/********************************* Static Functions **************************/ -static int init(void) -{ - TFT_SetPalette(integrated_only_small_bmp); - TFT_SetBackGroundColor(0); - - TFT_ShowImage(33, 12, integrated_only_small_bmp); - TFT_ShowImage(7, 72, smartcard_bmp); - TFT_ShowImage(113, 72, magstripe_bmp); - TFT_ShowImage(219, 72, keypad_bmp); - TFT_ShowImage(7, 155, nfc_bmp); - TFT_ShowImage(113, 155, slideshow_bmp); - TFT_ShowImage(219, 155, information_bmp); - - TFT_PrintFont(50, 12, urw_gothic_12_white_bg_grey, &text_msg[0], NULL); //MAX32572 - TFT_PrintFont(89, 40, urw_gothic_12_white_bg_grey, &text_msg[1], NULL); //Select an activity - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(7, 72, (7 + 93), (72 + 70), '1'); - MXC_TS_AddButton(113, 72, (113 + 93), (72 + 70), '2'); - MXC_TS_AddButton(219, 72, (219 + 93), (72 + 70), '3'); - MXC_TS_AddButton(6, 155, (6 + 94), (155 + 70), '4'); - MXC_TS_AddButton(113, 155, (113 + 93), (155 + 70), '5'); - MXC_TS_AddButton(219, 155, (219 + 93), (155 + 70), '6'); - - logo_animation_start(); - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_0: - break; - case KEY_1: - state_set_current(get_smartcard_state()); - break; - case KEY_2: - state_set_current(get_msr_state()); - break; - case KEY_3: - state_set_current(get_keypad_state()); - break; - case KEY_4: - state_set_current(get_nfc_state()); - break; - case KEY_5: - state_set_current(get_slide_state()); - break; - case KEY_6: - state_set_current(get_info_state()); - break; - case KEY_7: - break; - case KEY_8: - break; - case KEY_9: - break; - case KEY_A: - break; - case KEY_B: - break; - case KEY_C: - break; - case KEY_D: - break; - case KEY_E: - break; - case KEY_F: - break; - default: - break; - } - return 0; -} - -static State g_state = { "home", init, key_process, NULL, 0, NULL, NULL }; - -/********************************* Public Functions **************************/ -State *get_home_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_idle.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_idle.c deleted file mode 100644 index ed634777f27..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_idle.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "utils.h" -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 60 - -/********************************* VARIABLES *************************/ -static const int screensaver_data[] = { - medium_logo_000_bmp, medium_logo_001_bmp, medium_logo_002_bmp, medium_logo_001_bmp, - medium_logo_003_bmp, medium_logo_004_bmp, medium_logo_005_bmp, medium_logo_006_bmp, - medium_logo_007_bmp, medium_logo_008_bmp, medium_logo_009_bmp, medium_logo_010_bmp, - medium_logo_011_bmp, medium_logo_012_bmp, medium_logo_011_bmp, medium_logo_013_bmp, - medium_logo_014_bmp, medium_logo_015_bmp, medium_logo_016_bmp, medium_logo_017_bmp, - medium_logo_018_bmp, medium_logo_019_bmp, medium_logo_020_bmp, medium_logo_021_bmp, - medium_logo_022_bmp, medium_logo_021_bmp, medium_logo_023_bmp, medium_logo_024_bmp, - medium_logo_025_bmp, medium_logo_026_bmp, medium_logo_027_bmp, medium_logo_028_bmp, - medium_logo_029_bmp, medium_logo_030_bmp, medium_logo_031_bmp, medium_logo_032_bmp, - medium_logo_031_bmp, medium_logo_033_bmp, medium_logo_034_bmp, medium_logo_035_bmp -}; - -static unsigned int image_index = 0; -static unsigned int max_loop = ARRAY_SIZE(screensaver_data); - -/********************************* Static Functions **************************/ -static int init(void) -{ - TFT_SetPalette(maxim_integrated_large_bmp); - TFT_SetBackGroundColor(0); - TFT_ShowImage(52, 87, maxim_integrated_large_bmp); - - image_index = 0; - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(0, 0, 320, 240, 'C'); //Home - - // stop animation - logo_animation_stop(); - - return 0; -} - -static int time_tick(void) -{ - TFT_ShowImage(52, 87, screensaver_data[image_index]); - image_index = (image_index + 1) % max_loop; - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_C: - state_set_current(get_home_state()); - break; - default: - break; - } - return 0; -} - -static State g_state = { "idle", init, key_process, time_tick, TICK_TIMEOUT, NULL, NULL }; - -/********************************* Public Functions **************************/ -State *get_idle_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_info.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_info.c deleted file mode 100644 index 4c4a7f38771..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_info.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "utils.h" - -/********************************** Type Defines *****************************/ -typedef void (*ScreenFunc)(void); - -/************************************ VARIABLES ******************************/ -static void display_page1(void); -static void display_page2(void); -static void display_page3(void); - -static ScreenFunc info_screens[] = { display_page1, display_page2, display_page3 }; -static int screen_index = 0; - -static text_t text_msg[] = { - { (char *)"INFORMATION", 11 }, - { (char *)"Scroll through pages", 20 }, - // pages 1 - { (char *)"Cortex M4 @ 150MHz", 18 }, - { (char *)"1MB Flash, 760KB SRAM", 21 }, - { (char *)"TFT, ISO7816 PHY, MSR", 21 }, - // pages 2 - { (char *)"6 dynamic sensor pairs", 22 }, - { (char *)"Hardware crypto blocks", 22 }, - { (char *)"ECDSA Bootloader", 16 }, - // pages 3 - { (char *)"EMV-L1 stack", 12 }, - { (char *)"Cryptographic library", 21 }, - { (char *)"FreeRTOS OS", 11 }, -}; - -static area_t area_cleanMSG = { 0, 70, 320, 115 }; - -/********************************* Static Functions **************************/ -static void display_page1(void) -{ - TFT_ClearArea(&area_cleanMSG, 0); - - TFT_ShowImage(13, 74, check_bmp); - TFT_ShowImage(13, 108, check_bmp); - TFT_ShowImage(13, 143, check_bmp); - TFT_PrintFont(47, 75, urw_gothic_16_white_bg_grey, &text_msg[2], - NULL); // "Cortex M3 @ 108MHz",18 - TFT_PrintFont(47, 109, urw_gothic_16_white_bg_grey, &text_msg[3], - NULL); // "1MB Flash, 256KB SRAM",20 - TFT_PrintFont(47, 145, urw_gothic_16_white_bg_grey, &text_msg[4], - NULL); // "TFT, ISO7817 PHY, MSR",19 -} - -static void display_page2(void) -{ - TFT_ClearArea(&area_cleanMSG, 0); - - TFT_ShowImage(13, 74, check_bmp); - TFT_ShowImage(13, 108, check_bmp); - TFT_ShowImage(13, 143, check_bmp); - TFT_PrintFont(47, 75, urw_gothic_16_white_bg_grey, &text_msg[5], - NULL); // "6 dynamic sensor pairs",22 - TFT_PrintFont(47, 109, urw_gothic_16_white_bg_grey, &text_msg[6], - NULL); // "Hardware crypto blocks",22 - TFT_PrintFont(47, 145, urw_gothic_16_white_bg_grey, &text_msg[7], NULL); //"ECDSA Bootloader",16 -} - -static void display_page3(void) -{ - TFT_ClearArea(&area_cleanMSG, 0); - - TFT_ShowImage(13, 74, check_bmp); - TFT_ShowImage(13, 108, check_bmp); - TFT_ShowImage(13, 143, check_bmp); - TFT_PrintFont(47, 75, urw_gothic_16_white_bg_grey, &text_msg[8], NULL); //"EMV-L1 stack",12 - TFT_PrintFont(47, 109, urw_gothic_16_white_bg_grey, &text_msg[9], - NULL); //"Cryptographic library",21 - TFT_PrintFont(47, 145, urw_gothic_16_white_bg_grey, &text_msg[10], NULL); // "FreeRTOS OS",11 -} - -static int init(void) -{ - TFT_SetBackGroundColor(0); - - TFT_PrintFont(96, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); // "INFORMATION" - TFT_PrintFont(79, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - NULL); // "Scroll through pages",20 - TFT_ShowImage(33, 12, integrated_only_small_bmp); - TFT_ShowImage(12, 191, arrow_left_bmp); - TFT_ShowImage(135, 191, home_bmp); - TFT_ShowImage(259, 191, arrow_right_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), KEY_C); //Home - MXC_TS_AddButton(12, 191, (12 + 48), (191 + 39), KEY_A); - MXC_TS_AddButton(259, 191, (259 + 48), (191 + 39), KEY_B); - - // - screen_index = 0; - display_page1(); - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_A: - if (--screen_index < 0) { - screen_index = (ARRAY_SIZE(info_screens) - 1); - } - info_screens[screen_index](); - break; - case KEY_B: - if (++screen_index >= (int)ARRAY_SIZE(info_screens)) { - screen_index = 0; - } - info_screens[screen_index](); - break; - case KEY_C: - state_set_current(get_home_state()); - break; - default: - break; - } - - return 0; -} - -static State g_state = { "info", init, key_process, NULL, 1000, NULL, NULL }; - -/********************************* Public Functions **************************/ -State *get_info_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_keypad.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_keypad.c deleted file mode 100644 index dea4e384857..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_keypad.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ -#define MAX_CHAR_ON_SCREEN 8 - -#define BUTTON_SIZE_X 42 + 4 // 6 for free space -#define BUTTON_SIZE_Y 41 + 6 // 6 for free space - -/********************************* VARIABLES *************************/ -static unsigned char input_buf[MAX_CHAR_ON_SCREEN + 1] = { 0 }; - -static text_t text_msg[] = { - { (char *)"Pressed", 7 }, - { (char *)input_buf, 0 }, -}; - -static text_t *input_text = &text_msg[1]; - -/********************************* Static Functions **************************/ -static int init(void) -{ - int x, y; - int x0 = 120; - int y0 = 40; - - logo_animation_stop(); - - MXC_TS_RemoveAllButton(); - TFT_SetPalette(logo_white_bg_white_bmp); - TFT_SetBackGroundColor(0); - - TFT_ShowImage(11, 7, logo_white_bg_white_bmp); - - x = x0; - y = y0; - TFT_ShowImage(x, y, key_1_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_1); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_2_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_2); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_3_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_3); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_clear_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_F); - - // - x = x0; - y += BUTTON_SIZE_Y; - TFT_ShowImage(x, y, key_4_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_4); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_5_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_5); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_6_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_6); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_cancel_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_E); - - // - x = x0; - y += BUTTON_SIZE_Y; - TFT_ShowImage(x, y, key_7_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_7); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_8_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_8); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_9_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_9); - - x += BUTTON_SIZE_X; - TFT_ShowImage(x, y, key_enter_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_D); - - // - x = x0; - x += BUTTON_SIZE_X; - y += BUTTON_SIZE_Y; - TFT_ShowImage(x, y, key_0_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_0); - - TFT_PrintFont(11, 80, urw_gothic_13_grey_bg_white, &text_msg[0], NULL); - input_text->len = 0; - - return 0; -} - -static void print_inputs(int key) -{ - static area_t area; - - if (key == 0) { // means clear screen - TFT_ClearArea(&area, 0); - input_text->len = 0; - } else if (key == -1) { // means clear last key - if (input_text->len > 0) { - input_text->len--; - TFT_ClearArea(&area, 0); - TFT_PrintFont(11, 120, urw_gothic_13_grey_bg_white, input_text, &area); - } - } else if (input_text->len < MAX_CHAR_ON_SCREEN) { - input_text->data[input_text->len++] = key; - TFT_PrintFont(11, 120, urw_gothic_13_grey_bg_white, input_text, &area); - } -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_0: - case KEY_1: - case KEY_2: - case KEY_3: - case KEY_4: - case KEY_5: - case KEY_6: - case KEY_7: - case KEY_8: - case KEY_9: - case KEY_A: - case KEY_B: - print_inputs(key); - break; - case KEY_C: // exit - state_set_current(get_home_state()); - break; - case KEY_D: // enter - state_set_current(get_home_state()); - break; - case KEY_E: // cancel - print_inputs(-1); - break; - case KEY_F: // clear - print_inputs(0); - break; - default: - break; - } - - return 0; -} - -static State g_state = { "keypad", init, key_process, NULL, 0, NULL, NULL }; - -/********************************* Public Functions **************************/ -State *get_keypad_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_msr.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_msr.c deleted file mode 100644 index c3973c215b0..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_msr.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "task_msr.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 2000 - -/********************************* VARIABLES *************************/ -static text_t text_msg[] = { - { (char *)"MAG STRIPE", 10 }, -#ifndef MN_EvKit_V1 - { (char *)"Swipe a card", 12 }, - { (char *)"Track:", 6 }, -#else - { (char *)"This EvKit does not support MSR", 31 } -#endif -}; - -#ifndef MN_EvKit_V1 -static area_t area_clean = { 0, 0, 0, 0 }; -static area_t area_cleanMSG = { 0, 0, 0, 0 }; - -static int after_timeout_clear_screen = 0; -#endif - -/********************************* Static Functions **************************/ -static int init(void) -{ - TFT_SetBackGroundColor(0); - TFT_PrintFont(101, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); // "MAG STRIPE" - TFT_ShowImage(33, 12, integrated_only_small_bmp); - TFT_ShowImage(98, 69, magstripe_large_bmp); - TFT_ShowImage(135, 191, home_bmp); - -#ifndef MN_EvKit_V1 - TFT_PrintFont(101, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &area_clean); //"Swipe a card", 12 -#else - TFT_PrintFont(23, 40, urw_gothic_12_white_bg_grey, &text_msg[1], NULL); // -#endif - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), 'C'); //Home - -#ifndef MN_EvKit_V1 - after_timeout_clear_screen = 0; - msr_start(); -#endif - - return 0; -} - -#ifndef MN_EvKit_V1 -static int msr_process(unsigned char *msg, unsigned int msg_len) -{ - if (msg_len > 0) { - text_t msg_var; - - TFT_ClearArea(&area_clean, 0); - msg_var.data = (char *)msg; - msg_var.len = msg_len; - if (msg_var.len > 18) { - msg_var.len = 18; - } - TFT_PrintFont(82, 162, urw_gothic_16_white_bg_grey, &msg_var, &area_clean); - TFT_PrintFont(17, 162, urw_gothic_16_bleu_bg_grey, &text_msg[2], - &area_cleanMSG); // "Track:", - - after_timeout_clear_screen = 1; - } - return 0; -} - -static int time_tick(void) -{ - if (after_timeout_clear_screen) { - // Swipe again - TFT_ClearArea(&area_clean, 0); - TFT_ClearArea(&area_cleanMSG, 0); - TFT_PrintFont(101, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &area_clean); //"Swipe a card", - - after_timeout_clear_screen = 0; - } - return 0; -} -#endif // for #ifndef MN_EvKit_V1 - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_C: // exit -#ifndef MN_EvKit_V1 - msr_stop(); -#endif - state_set_current(get_home_state()); - break; - default: - break; - } - return 0; -} - -#ifndef MN_EvKit_V1 -static State g_state = { "msr", init, key_process, time_tick, TICK_TIMEOUT, msr_process, NULL }; -#else -static State g_state = { "msr", init, key_process, NULL, 0, NULL, NULL }; -#endif - -/********************************* Public Functions **************************/ -State *get_msr_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_nfc.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_nfc.c deleted file mode 100644 index 63c58e60d17..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_nfc.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "task_nfc.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 2000 -// -#define MAX_CHAR_ON_SCREEN 24 - -/********************************* TYPE DEF *************************/ - -/******************************* Function Prototypes ********************/ - -/********************************* VARIABLES *************************/ -static text_t text_msg[] = { - { (char *)"NFC", 3 }, -#ifndef MN_EvKit_V1 - { (char *)"Place card near target", 22 }, -#else - { (char *)"This EvKit does not support NFC", 31 } -#endif -}; - -#ifndef MN_EvKit_V1 -static area_t area_clean = { 0, 0, 0, 0 }; -static area_t area_clean_1 = { 0, 0, 0, 0 }; -static int after_timeout_clear_screen = 0; -#endif - -/********************************* Static Functions **************************/ -static int init(void) -{ - TFT_SetBackGroundColor(0); - - TFT_PrintFont(140, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); //"NFC" -#ifndef MN_EvKit_V1 - MXC_TFT_PrintFont(58, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - NULL); //"Place card near target" -#else - MXC_TFT_PrintFont(23, 40, urw_gothic_12_white_bg_grey, &text_msg[1], NULL); // -#endif - // - TFT_ShowImage(33, 12, integrated_only_small_bmp); - TFT_ShowImage(106, 72, nfc_large_bmp); - TFT_ShowImage(135, 191, home_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), 'C'); //Home - -#ifndef MN_EvKit_V1 - nfc_enable_polling(); -#endif - - return 0; -} - -#ifndef MN_EvKit_V1 -static int nfc_process(unsigned char *msg, unsigned int msg_len) -{ - if (msg_len > 0) { - text_t msg_var; - text_t msg_var_1; - unsigned int k; - - // NFC info Display - TFT_ClearArea(&area_clean, 0); - TFT_ClearArea(&area_clean_1, 0); - - // Parse message looking for "\n" signaling a new line - for (k = 0; k < msg_len; k++) { - if (msg[k] == '\n') { - break; - } - } - - if (k == msg_len) { - // Single line to show - msg_var.data = (char *)msg; - msg_var.len = msg_len; - - if (msg_var.len > 24) { - msg_var.len = 24; - } - TFT_PrintFont(17, 150, urw_gothic_16_white_bg_grey, &msg_var, &area_clean); - - } else { - // Show 2 lines, MAX - msg_var.data = (char *)msg; - msg_var.len = k; - - k++; // skip past \n - msg_var_1.data = (char *)(msg + k); - msg_var_1.len = msg_len - k; - - if (msg_var.len > 24) { - msg_var.len = 24; - } - - if (msg_var_1.len > 24) { - msg_var_1.len = 24; - } - TFT_PrintFont(17, 150, urw_gothic_16_white_bg_grey, &msg_var, &area_clean); - TFT_PrintFont(17, 168, urw_gothic_16_white_bg_grey, &msg_var_1, &area_clean_1); - } - - after_timeout_clear_screen = 1; - - nfc_enable_polling(); - } - - return 0; -} - -static int time_tick(void) -{ - if (after_timeout_clear_screen) { - // clear - TFT_ClearArea(&area_clean, 0); - TFT_ClearArea(&area_clean_1, 0); - - after_timeout_clear_screen = 0; - } - return 0; -} - -#endif // for #ifndef MN_EvKit_V1 - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_C: // exit -#ifndef MN_EvKit_V1 - nfc_disable_polling(); -#endif - state_set_current(get_home_state()); - break; - default: - break; - } - - return 0; -} - -#ifndef MN_EvKit_V1 -static State g_state = { "nfc", init, key_process, time_tick, TICK_TIMEOUT, NULL, nfc_process }; -#else -static State g_state = { "nfc", init, key_process, NULL, 0, NULL, NULL }; -#endif - -/********************************* Public Functions **************************/ -State *get_nfc_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_slide.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_slide.c deleted file mode 100644 index c7d33e9d681..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_slide.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -/********************************* INCLUDES *************************/ -#include - -#include "state.h" -#include "task_logo_animation.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 2000 - -/********************************* VARIABLES *************************/ -static int img_number = 0; - -static text_t text_msg[] = { { (char *)"SLIDESHOW", 9 }, { (char *)"Press Play to start", 19 } }; - -/********************************* Static Functions **************************/ -static int init(void) -{ - TFT_SetPalette(home_bmp); - TFT_SetBackGroundColor(0); - TFT_PrintFont(104, 12, urw_gothic_16_bleu_bg_grey, &text_msg[0], NULL); // "SLIDESHOW" - TFT_PrintFont(89, 40, urw_gothic_12_white_bg_grey, &text_msg[1], NULL); // "Press Play to start" - TFT_ShowImage(33, 12, integrated_only_small_bmp); - TFT_ShowImage(119, 82, slideshow_large_bmp); - TFT_ShowImage(135, 191, home_bmp); - - img_number = 0; - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(119, 82, (119 + 78), (82 + 78), '1'); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), KEY_C); //Home - - return 0; -} - -static int time_tick(void) -{ - if (img_number <= 0) { - return 1; - } - - switch (img_number) { - case 1: - TFT_SetPalette(mpos_bmp); - TFT_ShowImage(0, 0, mpos_bmp); - break; - case 2: - TFT_SetPalette(parrot_bmp); - TFT_ShowImage(0, 0, parrot_bmp); - break; - case 3: - TFT_SetPalette(maxim_integrated_large_bmp); - TFT_SetBackGroundColor(0); - TFT_ShowImage(52, 87, maxim_integrated_large_bmp); - break; - default: - break; - } - - if (++img_number > 4) { - img_number = 1; // go first slide - } - - return 0; -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_1: - // stop animation - logo_animation_stop(); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(0, 0, 320, 240, KEY_C); //Home - - // start slide - img_number = 1; - time_tick(); - break; - case KEY_C: - state_set_current(get_home_state()); - break; - default: - break; - } - return 0; -} - -static State g_state = { "slide", init, key_process, time_tick, TICK_TIMEOUT, NULL, NULL }; - -/********************************* Public Functions **************************/ -State *get_slide_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_smartcard.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_smartcard.c deleted file mode 100644 index 0d3f3cd6869..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/state_smartcard.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "state.h" -#include "utils.h" -#include "task_smartcard.h" - -#include "sc_errors.h" -#include "sc_states.h" -#include "sc_types.h" -#include "smartcard_api.h" - -/********************************* DEFINES *************************/ -#define MAX_CHAR_ON_SCREEN 24 - -/********************************* TYPE DEF *************************/ -typedef void (*SmartCard_Test)(void); - -/******************************* Function Prototypes ********************/ -static void read_atr(void); - -/********************************* VARIABLES *************************/ -static unsigned char input_buf[MAX_CHAR_ON_SCREEN + 1] = { 0 }; - -static text_t text_msg[] = { - { (char *)input_buf, 0 }, { (char *)"Insert a card", 13 }, { (char *)"SMARTCARD", 9 }, - { (char *)"Smart", 5 }, { (char *)"card", 4 }, { (char *)"ATR:", 4 }, -}; - -static text_t *text_line = &text_msg[0]; - -area_t sm_area_clean = { 0, 0, 0, 0 }; -area_t sm_area_cleanMSG = { 0, 0, 0, 0 }; - -extern ActivationParams_t ActivationParams; - -static SmartCard_Test test_array[] = { - read_atr, - //... -}; -static unsigned int test_max = ARRAY_SIZE(test_array); -static unsigned int test_index = 0; - -/********************************* Static Functions **************************/ -static int init(void) -{ - TFT_SetBackGroundColor(0); - TFT_PrintFont(105, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &sm_area_clean); //"Insert a card", 13 - - if (test_index == 0) { - // Test ATR - TFT_PrintFont(94, 12, urw_gothic_16_bleu_bg_grey, &text_msg[2], NULL); //"SMARTCARD" - TFT_ShowImage(33, 12, integrated_only_small_bmp); - TFT_ShowImage(98, 69, smartcard_large_bmp); - TFT_ShowImage(135, 191, home_bmp); - - // TS keys - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(135, 191, (135 + 48), (191 + 39), 'C'); //Home - } - - sc_set_afe_intterrupt(1); - - return 0; -} - -static void read_atr(void) -{ - unsigned char atr[128]; - unsigned int i; - IccReturn_t retval; - uint32_t status; - - retval = SCAPI_ioctl(SC_SLOT_NUMBER, IOCTL_GET_CARD_STATE, &status); - - if (!((IccReturn_t)status == ICC_ERR_REMOVED)) { - /*power up the card */ - status = POWER_UP; - ActivationParams.IccWarmReset = bFALSE; - retval = SCAPI_ioctl(SC_SLOT_NUMBER, IOCTL_POWER_CARD, &status); - if (ICC_OK != retval) { - goto read_atr_out; - } - - /* - * Read the ATR and save into the atr buffer - * as output, status will contains the exact ATR length - */ - status = sizeof(atr); - retval = SCAPI_read(SC_SLOT_NUMBER, atr, &status); - if (retval) { - memcpy(text_line->data, "Smartcard Error", 15); - text_line->len = 15; - } else { - memset(text_line->data, ' ', MAX_CHAR_ON_SCREEN); - switch (status) { - case 1: - text_line->len = 2; - utils_hex2char(atr[0], &text_line->data[0]); - break; - case 2: - text_line->len = 5; - utils_hex2char(atr[0], &text_line->data[0]); - utils_hex2char(atr[1], &text_line->data[3]); - break; - default: - utils_hex2char(atr[0], &text_line->data[0]); - utils_hex2char(atr[1], &text_line->data[3]); - if (status < 6) { - for (i = 2; i < status; i++) { - utils_hex2char(atr[i], &text_line->data[3 * i]); - } - text_line->len = 3 * status - 1; - } else { - utils_hex2char(atr[2], &text_line->data[6]); - text_line->data[9] = '.'; - text_line->data[10] = '.'; - text_line->data[11] = '.'; - utils_hex2char(atr[status - 2], &text_line->data[13]); - utils_hex2char(atr[status - 1], &text_line->data[16]); - text_line->len = 18; - } - break; - } - - // Smartcard ATR Display - TFT_ClearArea(&sm_area_clean, 0); - - text_line->len = 18; - TFT_PrintFont(24, 162, urw_gothic_16_bleu_bg_grey, &text_msg[5], - &sm_area_cleanMSG); //"ATR:", 4 - TFT_PrintFont(77, 162, urw_gothic_16_white_bg_grey, &text_msg[0], &sm_area_clean); - - /* Enable AFE interrupt */ - sc_set_afe_intterrupt(1); - } - } -read_atr_out: - /*power off the card */ - status = POWER_DOWN; - SCAPI_ioctl(SC_SLOT_NUMBER, IOCTL_POWER_CARD, &status); -} - -static int key_process(unsigned int key) -{ - switch (key) { - case KEY_A: - if (test_index > 0) { - --test_index; - init(); - } - break; - case KEY_B: - if (test_index < (test_max - 1)) { - test_index++; - init(); - } - break; - case KEY_C: // exit - state_set_current(get_home_state()); - sc_set_afe_intterrupt(0); - break; - case KEY_CARD_INSERTED: - test_array[test_index](); - break; - case KEY_CARD_REMOVED: - // - MXC_TFT_ClearArea(&sm_area_clean, 0); - MXC_TFT_ClearArea(&sm_area_cleanMSG, 0); - MXC_TFT_PrintFont(105, 40, urw_gothic_12_white_bg_grey, &text_msg[1], - &sm_area_clean); //"Insert a card", 13 - break; - default: - break; - } - - return 0; -} - -static State g_state = { "smartcard", init, key_process, NULL, 0, NULL, NULL }; - -/********************************* Public Functions **************************/ -State *get_smartcard_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_animation.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_animation.c deleted file mode 100644 index 706dfe33b55..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_animation.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include - -#include -#include -#include -#include - -#include "bitmap.h" -#include "tft.h" -#include "touchscreen.h" - -/********************************* DEFINES *************************/ -#define NB_SPRITE (32) - -/********************************* TYPE DEF *************************/ - -/********************************* VARIABLES *************************/ -static const int logo_maxim_data[] = { - maxim_logo_only_small_000_bmp, maxim_logo_only_small_001_bmp, maxim_logo_only_small_002_bmp, - maxim_logo_only_small_003_bmp, maxim_logo_only_small_004_bmp, maxim_logo_only_small_005_bmp, - maxim_logo_only_small_006_bmp, maxim_logo_only_small_007_bmp, maxim_logo_only_small_008_bmp, - maxim_logo_only_small_009_bmp, maxim_logo_only_small_010_bmp, maxim_logo_only_small_011_bmp, - maxim_logo_only_small_012_bmp, maxim_logo_only_small_013_bmp, maxim_logo_only_small_014_bmp, - maxim_logo_only_small_015_bmp, maxim_logo_only_small_016_bmp, maxim_logo_only_small_017_bmp, - maxim_logo_only_small_018_bmp, maxim_logo_only_small_019_bmp, maxim_logo_only_small_020_bmp, - maxim_logo_only_small_021_bmp, maxim_logo_only_small_022_bmp, maxim_logo_only_small_023_bmp, - maxim_logo_only_small_024_bmp, maxim_logo_only_small_025_bmp, maxim_logo_only_small_026_bmp, - maxim_logo_only_small_027_bmp, maxim_logo_only_small_028_bmp, maxim_logo_only_small_029_bmp, - maxim_logo_only_small_030_bmp, maxim_logo_only_small_031_bmp -}; - -static volatile int g_animation_status = 0; -static xSemaphoreHandle xAnimLock; - -/****************************** STATIC FUNCTIONS **************************/ - -/****************************** PUBLIC FUNCTIONS **************************/ -void logo_animation_start(void) -{ - g_animation_status = 1; - xSemaphoreGive(xAnimLock); -} - -void logo_animation_stop(void) -{ - // stop animation - g_animation_status = 0; -} - -void vAnimTask(void *pvParameters) -{ - (void)pvParameters; - int nb = 0; - - xAnimLock = xSemaphoreCreateBinary(); - - for (;;) { - while (xSemaphoreTake(xAnimLock, 0xFFFF) != pdTRUE) { - { - } - } - - while (g_animation_status) { - MXC_TFT_ShowImage(4, 10, logo_maxim_data[nb]); - nb = (nb + 1) % NB_SPRITE; - vTaskDelay(50); - } - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_keypad.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_keypad.c deleted file mode 100644 index 56bfa08e1f4..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_keypad.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include - -#include -#include -#include -#include - -#include "MAX32xxx.h" -#include "keypad.h" -#include "message.h" - -static unsigned int is_key_pressed; -extern xQueueHandle xQueueMain; -static xSemaphoreHandle xKBDLock; - -/* keys mapping on the keyboard */ -static unsigned char keyboard_map[16] = { KEY_F, KEY_E, KEY_D, KEY_C, KEY_3, KEY_6, KEY_9, KEY_B, - KEY_2, KEY_5, KEY_8, KEY_0, KEY_1, KEY_4, KEY_7, KEY_A }; - -void keypad_stop(void) -{ - MXC_SKBD_DisableInterruptEvents(MXC_SKBD_INTERRUPT_STATUS_PUSHIS | - MXC_SKBD_INTERRUPT_STATUS_OVERIS); -} - -void keypad_start(void) -{ - MXC_SKBD_EnableInterruptEvents(MXC_SKBD_INTERRUPT_STATUS_PUSHIS | - MXC_SKBD_INTERRUPT_STATUS_OVERIS); -} - -void keypad_handler(void) -{ - unsigned int status; - - MXC_SKBD_InterruptStatus(&status); - - if (MXC_F_SKBD_ISR_OVERIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_OVERIS); - } - if (MXC_F_SKBD_ISR_PUSHIS & status) { - is_key_pressed = 1; - /* Clear interruption */ - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_PUSHIS); - } - if (MXC_F_SKBD_ISR_RELEASEIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_RELEASEIS); - } - xSemaphoreGiveFromISR(xKBDLock, NULL); - - return; -} - -int keypad_init(void) -{ - int rv = 0; - mxc_skbd_config_t skb_cfg; - - skb_cfg.inputs = MXC_SKBD_KBDIO4 | MXC_SKBD_KBDIO5 | MXC_SKBD_KBDIO6 | MXC_SKBD_KBDIO7; - skb_cfg.outputs = MXC_SKBD_KBDIO0 | MXC_SKBD_KBDIO1 | MXC_SKBD_KBDIO2 | MXC_SKBD_KBDIO3; - skb_cfg.debounce = MXC_V_SKBD_CR1_DBTM_TIME10MS; - skb_cfg.ioselect = 0; - skb_cfg.irq_handler = (irq_handler_t)keypad_handler; - skb_cfg.reg_erase = 1; - - MXC_SKBD_PreInit(); - - rv = MXC_SKBD_Init(skb_cfg); - if (rv) { - return E_UNINITIALIZED; - } - - keypad_start(); - - return 0; -} - -void vGetKEYTask(void *pvParameters) -{ - (void)pvParameters; - - uint16_t *key; - mxc_skbd_keys_t keys = { 0, 0, 0, 0 }; - volatile unsigned int in; - volatile unsigned int out; - volatile unsigned int i; - char key_press[5]; - char *key_ptr = key_press; - message_t msgKBD; - - keypad_init(); - - xKBDLock = xSemaphoreCreateBinary(); - - msgKBD.pcType = 'K'; // it is keyboard message - - for (;;) { - while (xSemaphoreTake(xKBDLock, 0xFFFF) != pdTRUE) { - { - } - } - - key_press[0] = '\0'; - - if (is_key_pressed) { - MXC_SKBD_ReadKeys(&keys); - key = &keys.key0; - for (i = 0; i < 4; i++) { - in = 0x0f & *key; - out = (0xf0 & *key) >> 4; - - if (*key) { - *key_ptr = keyboard_map[(in - 4) * 4 + out]; - key_press[i] = *key_ptr; - key_press[i + 1] = '\0'; - } - *key = 0; - key++; - } - /* Clear interruption */ - MXC_SKBD_ClearInterruptStatus(MXC_SKBD_INTERRUPT_STATUS_PUSHIS); - - // Send Key - msgKBD.pcMessage[0] = key_press[0]; - xQueueSendToFrontFromISR(xQueueMain, &msgKBD, NULL); - } - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_msr.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_msr.c deleted file mode 100644 index 1b729f324cc..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_msr.c +++ /dev/null @@ -1,271 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -/* Global includes */ -#include - -#include -#include -#include -#include - -#include "MAX32xxx.h" -#include "message.h" -#include "task_msr.h" -#include "sdma_regs.h" - -/********************************* DEFINES *************************/ -/* Select SDMA instance to run MSR on {0,1} */ -#define MSR_SDMA_INSTANCE (0) - -#if MSR_SDMA_INSTANCE == 0 -#define MSR_SDMA MXC_SDMA0 -#define MSR_SDMA_IRQn HA0_IRQn -#define SDMAx_IRQHandler HA0_IRQHandler -#define CLK_DIS_SDMAxD MXC_SYS_PERIPH_CLOCK_HA0 -#else -#define MSR_SDMA MXC_SDMA1 -#define MSR_SDMA_IRQn HA1_IRQn //SDMA1_IRQn -#define SDMAx_IRQHandler HA1_IRQHandler -#define CLK_DIS_SDMAxD MXC_SYS_PERIPH_CLOCK_HA1 -#endif - -// -#define COPY_MESSAGE(str, dst, len) \ - { \ - len = strlen(str), memcpy(dst, str, len + 1); \ - } - -/********************************* VARIABLES *************************/ -/* SDMA Code */ -extern unsigned char msr_sdma_code[]; - -/* MSR SDMA ISR */ -static volatile uint32_t sdma_irq_flag; - -/* SHARED section layout */ -//static volatile uint32_t *msr_version = (uint32_t *)0x20000000; -static volatile uint16_t *msr_ctrl_ptr = (uint16_t *)0x20000004; -//static volatile uint16_t *adc9_err_ptr = (uint16_t *)0x20000006; -static volatile uint32_t *swipe_timeout_sec_ptr = (uint32_t *)0x20000008; -static volatile mcr_decoded_track_t *decoded_track = (mcr_decoded_track_t *)0x2000000C; - -#define msr_version (*msr_version) -#define msr_ctrl (*msr_ctrl_ptr) -#define adc9_err (*adc9_err_ptr) -#define swipe_timeout_sec (*swipe_timeout_sec_ptr) - -extern xQueueHandle xQueueMain; -static xSemaphoreHandle xMSRLock; -static volatile int g_msr_active_polling = 0; - -/********************************* Static Functions **************************/ -void SDMAx_IRQHandler(void) -{ - MSR_SDMA->irq_flag = 1; /* Clear irq_flag */ - sdma_irq_flag = 1; // set int flag -} - -/* This will print decoded swipe data */ -static void process_swipe(int tidx, char *msg, int *msg_len) -{ - if (decoded_track[tidx].error_code != MCR_ERR_OK) { - if (decoded_track[tidx].error_code & MCR_ERR_BAD_LEN) { - COPY_MESSAGE("Err = BAD LENGHT", msg, *msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_START_SEN) { - COPY_MESSAGE("Err = START Sentinel", msg, *msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_END_SEN) { - COPY_MESSAGE("Err = END Sentinel", msg, *msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_OUTLIER) { - COPY_MESSAGE("Err = OUTLIER", msg, *msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_PARITY) { - COPY_MESSAGE("Err = PARITY", msg, *msg_len); - return; - } else if (decoded_track[tidx].error_code & MCR_ERR_LRC) { - COPY_MESSAGE("Err = LRC", msg, *msg_len); - return; - } - } - - if (decoded_track[tidx].lrc != 0) { - COPY_MESSAGE("Err = LRC check failed", msg, *msg_len); - return; - } - - if (decoded_track[tidx].direction == MCR_FORWARD) { - memcpy(msg, ">>> ", 4); - } else { - memcpy(msg, "<<< ", 4); - } - memcpy(&msg[4], (char *)decoded_track[tidx].data, decoded_track[tidx].len); - *msg_len = decoded_track[tidx].len + 4; - - return; -} - -static void start_msr_sdma(void) -{ - /* Enable SDMA clock */ - MXC_SYS_ClockEnable(CLK_DIS_SDMAxD); - - /* Disable interrupt from SDMA */ - /* will wait for irq_flag=1 but dont want IRQHandler() to run */ - NVIC_DisableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie = 0; - -#define ADC9_IRQ_VECTOR 22 - - /* Enable interrupt mux */ - MSR_SDMA->int_mux_ctrl0 = (ADC9_IRQ_VECTOR << MXC_F_SDMA_INT_MUX_CTRL0_INTSEL16_POS); - MSR_SDMA->int_mux_ctrl1 = 0; - MSR_SDMA->int_mux_ctrl2 = 0; - MSR_SDMA->int_mux_ctrl3 = 0; - /* Set org address and enable sdma */ - MSR_SDMA->ip_addr = (uint32_t)&msr_sdma_code; - MSR_SDMA->ctrl |= MXC_F_SDMA_CTRL_EN; - /* Wait for the SDMA to finish re-initialization */ - while (!MSR_SDMA->irq_flag) { - { - } - } - /* Clear irq_flag */ - MSR_SDMA->irq_flag = 1; - NVIC_ClearPendingIRQ(MSR_SDMA_IRQn); - /* Re-Enable interrupt from SDMA */ - NVIC_EnableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie |= MXC_F_SDMA_IRQ_IE_IRQ_EN; - MSR_SDMA->int_in_ie = 1; -} - -static void stop_msr_sdma(void) -{ - /* Disable interrupt from SDMA */ - NVIC_DisableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie = 0; - - /* stop SDMA */ - MSR_SDMA->ctrl &= ~(MXC_F_SDMA_CTRL_EN); - - /* Disable interrupt mux */ - MSR_SDMA->int_mux_ctrl0 = 0; - MSR_SDMA->int_mux_ctrl1 = 0; - MSR_SDMA->int_mux_ctrl2 = 0; - MSR_SDMA->int_mux_ctrl3 = 0; - - /* Disable SDMA clock */ - MXC_SYS_ClockDisable(CLK_DIS_SDMAxD); -} - -/********************************* Public Functions **************************/ -void msr_start(void) -{ - g_msr_active_polling = 1; - xSemaphoreGive(xMSRLock); -} - -void msr_stop(void) -{ - g_msr_active_polling = 0; - xSemaphoreTake(xMSRLock, 0); -} - -void vGetMSRTask(void *pvParameters) -{ - (void)pvParameters; - - message_t msgMSR; - - msgMSR.pcType = 'M'; // it is msr message - swipe_timeout_sec = 30; /* Set swipe timeout */ - - xMSRLock = xSemaphoreCreateBinary(); - while (1) { - while (xSemaphoreTake(xMSRLock, 0xFFFF) != pdTRUE) { - { - } - } - - start_msr_sdma(); - do { - msgMSR.len = 0; - msr_ctrl = GETSWIPE_BUSY; /* signal to SDMA to get swipe data */ - - sdma_irq_flag = 0; - while (!sdma_irq_flag) { - vTaskDelay(100); - if (g_msr_active_polling == 0) - break; - } - - if (g_msr_active_polling) { - /* check exit code */ - switch (msr_ctrl) { - case GETSWIPE_OK: - process_swipe(1, (char *)msgMSR.pcMessage, - &msgMSR.len); /* Print Swipe results */ - break; - case GETSWIPE_ADCERR: - /* ADC errors */ -#if 0 - if (adc9_err & ADCERR_OVERRUN) { - COPY_MESSAGE("Err = ADC9 overrun", msgMSR.pcMessage, msgMSR.len); - } else if (adc9_err & ADCERR_SHIFT) { - COPY_MESSAGE("Err = ADC9 channels shifted", msgMSR.pcMessage, msgMSR.len); - } else if (adc9_err & ADCERR_INCOMPLETE) { - COPY_MESSAGE("Err = ADC9 conversion incomplete", msgMSR.pcMessage, msgMSR.len); - } -#endif - break; - case GETSWIPE_TIMO: - /* Timeout: no swipe */ - break; - } - - if (msgMSR.len) { - xQueueSendToFront(xQueueMain, &msgMSR, 0); - } - } - - vTaskDelay(100); - } while (g_msr_active_polling); - - stop_msr_sdma(); - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_nfc.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_nfc.c deleted file mode 100644 index a94fcc54d2f..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_nfc.c +++ /dev/null @@ -1,797 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -/* Global includes */ -#include -#include - -/* FreeRTOS */ -#include -#include -#include -#include - -#include "MAX32xxx.h" -#include "task_nfc.h" -#include "message.h" - -#include "mml_nfc_pcd_port.h" -#include "mml_nfc_pcd_rf_driver.h" -#include "iso14443_3a_flow.h" -#include "iso14443_3a_cmd.h" -#include "iso14443_3b_flow.h" -#include "iso14443_3b_cmd.h" -#include "iso14443_3_common.h" -#include "iso14443_4_transitive.h" -#include "logging.h" -#include "EMV_polling_and_loopback.h" - -/****************************** DEFINES **************************/ -#define BEEPER_PORT MXC_GPIO3 -#define BEEPER_PIN MXC_GPIO_PIN_3 -#define BEEP_PASS_TIME_MS 150 -#define BEEP_FAIL_TIME_MS 150 - -#define BEEP_PASS_TONE 250 //847 -#define BEEP_PASS_VOL 25 //84 - -/****************************** TYPE DEFINES **************************/ -typedef struct { - uint8_t rapdu[261]; - int32_t rapdu_len; - uint8_t aid_bin[50]; - int32_t aid_bin_len; - char application_label[50]; - int32_t application_label_len; -} ppse_response_t; - -/********************************* VARIABLES *************************/ -extern mml_nfc_pcd_analog_params_t current_analog_parameters; - -extern xQueueHandle xQueueMain; -static xSemaphoreHandle xNFCLock; -static volatile int g_nfc_active_polling = 0; - -/****************************** STATIC FUNCTIONS **************************/ -static void beep_for_success(void) -{ - uint32_t beep_time = 0; - uint32_t beep_loop_cnt = 0; - - uint32_t tone = BEEP_PASS_TONE; - uint32_t vol = BEEP_PASS_VOL; - uint32_t duration_ms = BEEP_PASS_TIME_MS; - - // No timer or pulse train on the buzzer gpio, got to bit bang it - // 4Khz is maximum tone volume, as the buzzer resonates here - // Tone set the period, in us - - // Volumes sets the duty cycle us - beep_time = (duration_ms * 1000) / tone; - - // Correct tone for the requested volume - tone = tone - vol; - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - - while (beep_loop_cnt++ < beep_time) { - MXC_GPIO_OutSet(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(vol); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); - mml_nfc_pcd_block_for_us(tone); - } - - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); -} - -static void setup_beeper(void) -{ - mxc_gpio_cfg_t buzzer_out; - - buzzer_out.port = BEEPER_PORT; - buzzer_out.mask = BEEPER_PIN; - buzzer_out.pad = MXC_GPIO_PAD_NONE; - buzzer_out.func = MXC_GPIO_FUNC_OUT; - // Use 3.3V for louder Buzz - buzzer_out.vssel = MXC_GPIO_VSSEL_VDDIOH; - - MXC_GPIO_Config(&buzzer_out); - MXC_GPIO_OutClr(BEEPER_PORT, BEEPER_PIN); -} - -static int32_t do_ppse(ppse_response_t *resp) -{ - int32_t ret; - uint8_t capdu[261] = { 0x00, 0xA4, 0x04, 0x00, 0x0E, '2', 'P', 'A', 'Y', '.', - 'S', 'Y', 'S', '.', 'D', 'D', 'F', '0', '1', 0x00 }; - int32_t capdulen = 20; - - logging("CAPDU "); - hexdump(DBG_LVL_LOG, capdu, capdulen, 1); - - ret = SendAPDU(capdu, capdulen, resp->rapdu, &resp->rapdu_len); - - if (ret) { - switch (ret) { - case ISO14443_3_ERR_PROTOCOL: - case ISO14443_3_ERR_TIMEOUT: - case ISO14443_3_ERR_TRANSMISSION: - return RESETPROCEDURE; - } - } - - if (resp->rapdu_len <= 2) { - // 2 bytes should be wrong case. - warning("Short APDU: %d\n", resp->rapdu_len); - return RESETPROCEDURE; - } - - logging("RAPDU "); - hexdump(DBG_LVL_LOG, resp->rapdu, resp->rapdu_len, 0); - - return ret; -} - -// Decode AIDs and figure out card vendor -static int32_t aid_lookup(ppse_response_t *resp) -{ - // VISA - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x03 }, 5) == 0) { - strncpy(resp->application_label, "VISA", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x03, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "VISA", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x98, 0x08, 0x48 }, 7) == 0) { - strncpy(resp->application_label, "VISA", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - - // Master card - if (memcmp(resp->aid_bin, (uint8_t[]){ 0xA0, 0x00, 0x00, 0x00, 0x04 }, 5) == 0) { - strncpy(resp->application_label, "Master Card", 50); - resp->application_label_len = 11; - return ISO14443_3_ERR_SUCCESS; - } - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x05 }, 5) == 0) { - strncpy(resp->application_label, "Master Card", 50); - resp->application_label_len = 11; - return ISO14443_3_ERR_SUCCESS; - } - - // American express - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x25 }, 5) == 0) { - strncpy(resp->application_label, "American Express", 50); - resp->application_label_len = 16; - return ISO14443_3_ERR_SUCCESS; - } - - // CB - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x42 }, 5) == 0) { - strncpy(resp->application_label, "CB", 50); - resp->application_label_len = 3; - return ISO14443_3_ERR_SUCCESS; - } - - // LINK - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x29 }, 5) == 0) { - strncpy(resp->application_label, "LINK", 50); - resp->application_label_len = 5; - return ISO14443_3_ERR_SUCCESS; - } - - // JCB - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x65 }, 5) == 0) { - strncpy(resp->application_label, "JCB", 50); - resp->application_label_len = 4; - return ISO14443_3_ERR_SUCCESS; - } - - // Dankort - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x21, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Dankort", 50); - resp->application_label_len = 8; - return ISO14443_3_ERR_SUCCESS; - } - - // CoGeBan - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x41, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "Banrisul", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Discover - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x52, 0x30, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Discover", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Banrisul - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x54 }, 5) == 0) { - strncpy(resp->application_label, "Banrisul", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Saudi Payments Network - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x02, 0x28 }, 5) == 0) { - strncpy(resp->application_label, "Saudi Payments Network", 50); - resp->application_label_len = 22; - return ISO14443_3_ERR_SUCCESS; - } - - // Interac - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x02, 0x77 }, 5) == 0) { - strncpy(resp->application_label, "Interac", 50); - resp->application_label_len = 8; - return ISO14443_3_ERR_SUCCESS; - } - - // Discover Card - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x24 }, 5) == 0) { - strncpy(resp->application_label, "Discover Card", 50); - resp->application_label_len = 14; - return ISO14443_3_ERR_SUCCESS; - } - - // UnionPay - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x33 }, 5) == 0) { - strncpy(resp->application_label, "UnionPay", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Euro Alliance of Payment Schemes - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x59 }, 5) == 0) { - strncpy(resp->application_label, "Euro Alliance", 50); - resp->application_label_len = 13; - return ISO14443_3_ERR_SUCCESS; - } - - // Verve - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x71 }, 5) == 0) { - strncpy(resp->application_label, "Verve", 50); - resp->application_label_len = 6; - return ISO14443_3_ERR_SUCCESS; - } - - // The Exchange Network ATM Network - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x39 }, 5) == 0) { - strncpy(resp->application_label, "Exchange Network ATM", 50); - resp->application_label_len = 20; - return ISO14443_3_ERR_SUCCESS; - } - - // Rupay - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x05, 0x24, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Rupay", 50); - resp->application_label_len = 6; - return ISO14443_3_ERR_SUCCESS; - } - - // ???100 - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x32, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "???100", 50); - resp->application_label_len = 7; - return ISO14443_3_ERR_SUCCESS; - } - - // ZKA - if (memcmp(resp->aid_bin, (char[]){ 0xD2, 0x76, 0x00, 0x00, 0x25, 0x45, 0x50, 0x01, 0x00 }, - 9) == 0) { - strncpy(resp->application_label, "ZKA", 50); - resp->application_label_len = 4; - return ISO14443_3_ERR_SUCCESS; - } - - // Bankaxept - if (memcmp(resp->aid_bin, (char[]){ 0xD5, 0x78, 0x00, 0x00, 0x02, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "Bankaxept", 50); - resp->application_label_len = 10; - return ISO14443_3_ERR_SUCCESS; - } - - // BRADESCO - if (memcmp(resp->aid_bin, (char[]){ 0xF0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "BRADESCO", 50); - resp->application_label_len = 9; - return ISO14443_3_ERR_SUCCESS; - } - - // Midland - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x00, 0x24, 0x01 }, 6) == 0) { - strncpy(resp->application_label, "Midland", 50); - resp->application_label_len = 8; - return ISO14443_3_ERR_SUCCESS; - } - - // PBS - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x01, 0x21, 0x10, 0x10 }, 7) == 0) { - strncpy(resp->application_label, "PBS", 50); - resp->application_label_len = 4; - return ISO14443_3_ERR_SUCCESS; - } - - // eTranzact - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x54 }, 5) == 0) { - strncpy(resp->application_label, "eTranzact", 50); - resp->application_label_len = 10; - return ISO14443_3_ERR_SUCCESS; - } - - // Google - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x04, 0x76, 0x6C }, 6) == 0) { - strncpy(resp->application_label, "Google", 50); - resp->application_label_len = 7; - return ISO14443_3_ERR_SUCCESS; - } - - // InterSwitch - if (memcmp(resp->aid_bin, (char[]){ 0xA0, 0x00, 0x00, 0x03, 0x71, 0x00, 0x01 }, 7) == 0) { - strncpy(resp->application_label, "InterSwitch", 50); - resp->application_label_len = 12; - return ISO14443_3_ERR_SUCCESS; - } - - return -1; -} - -#define FCI_TEMPLATE 0x6F -#define DEDICATED_FILE_TEMPLATE 0x84 -#define FCI_PROPRIETARY_TEMPLATE 0xA5 -#define FCI_ISSUER_DISCRETIONARY_B0 0xBF -#define FCI_ISSUER_DISCRETIONARY_B1 0x0C -#define APPLICATION_TEMPLATE 0x61 -#define APPLICATION_IDENTIFIER 0x4F -#define APPLICATION_LABEL 0x50 - -// Inspect ppse response, if valid, lookup Application ID -static int32_t parse_ppse_response(ppse_response_t *resp) -{ - int32_t index = 0; - int32_t i = 0; - int32_t fci_prop_len = 0; - - if (resp->rapdu_len < 2) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Check for SW success 0x9000 - if ((resp->rapdu[resp->rapdu_len - 1] != 0x00) || (resp->rapdu[resp->rapdu_len - 2] != 0x90)) { - return ISO14443_3_ERR_PROTOCOL; - } - - // First comes File Control Information (FCI) Template - if (resp->rapdu[index++] != FCI_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - // This is followed by the length of the FCI - // Verify we have good length - if (resp->rapdu[index++] >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next is Dedicated File Name (DF) - if (resp->rapdu[index++] != DEDICATED_FILE_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - // This is followed by the length of the Dedicated File (DF) Name - // Skip the DF for now - index += resp->rapdu[index]; - index++; - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next comes File Control Information (FCI) Proprietary Template - if (resp->rapdu[index++] != FCI_PROPRIETARY_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - fci_prop_len = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // If we have enough data for this we are good to go to get our data - if (((index - 1) + fci_prop_len) >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (resp->rapdu[index++] != FCI_ISSUER_DISCRETIONARY_B0) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (resp->rapdu[index++] != FCI_ISSUER_DISCRETIONARY_B1) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Skip FCI_ISSUER_DISCRETIONARY length - index++; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next is APPLICATION_TEMPLATE - if (resp->rapdu[index++] != APPLICATION_TEMPLATE) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Skip APPLICATION_TEMPLATE len - index++; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Next is Application Identifier (AID) - card - if (resp->rapdu[index++] != APPLICATION_IDENTIFIER) { - return ISO14443_3_ERR_PROTOCOL; - } - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Get Application Identifier (AID) len - resp->aid_bin_len = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Also need binary version to match to card AID - for (i = 0; i < resp->aid_bin_len; i++) { - resp->aid_bin[i] = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - } - - // Finally we get to Application Label - if (resp->rapdu[index++] != APPLICATION_LABEL) { - // Some cards don't have this - // In this case we have to do a AID lookup - - info("No App Label, using lookup of AID\n"); - return aid_lookup(resp); - } - - info("Got a valid App Label!\n"); - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // Get Application Label len - resp->application_label_len = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - - // OK. Copy the Label into the buffer - for (i = 0; i < resp->application_label_len; i++) { - resp->application_label[i] = resp->rapdu[index++]; - - if (index >= resp->rapdu_len) { - return ISO14443_3_ERR_PROTOCOL; - } - } - - return ISO14443_3_ERR_SUCCESS; -} - -static void decode_MIFARE_type(char *response) -{ - // ************************************************** - // If SAK bit 6 is cleared, this is a non ISO14443-4 Type A - // card such as MIFARE Classic 1K. - // Used http://www.nxp.com/documents/application_note/130830.pdf - // for this decoding - // ************************************************** - - uint8_t sak = get_last_sak(); - - if (sak & 0x08) { - // Bit 4 == 1 - if (sak & 0x10) { - // Bit 5 == 1 - strncpy(response, "MIFARE 4K\n", 11); - } else { - // Bit 5 == 0 - if (sak & 0x01) { - // Bit 1 == 1 - strncpy(response, "MIFARE Mini\n", 13); - } else { - // Bit 1 == 0 - strncpy(response, "MIFARE 1K\n", 11); - } - } - } else { - // Bit 4 == 0 - if (sak & 0x10) { - // Bit 5 == 1 - if (sak & 0x01) { - // Bit 1 == 1 - strncpy(response, "MIFARE Plus 4K SL2\n", 20); - } else { - // Bit 1 == 0 - strncpy(response, "MIFARE Plus 2K SL2\n", 20); - } - } else { - // Bit 5 == 0 - if (sak & 0x20) { - // Bit 6 == 1 - // This version requires RATS etc - // Is must therfore be compliant, so we should not be here - // Do nothing - strncpy(response, "MIFARE ?\n", 10); - } else { - // Bit 6 == 0 - strncpy(response, "MIFARE UL\n", 11); - } - } - } -} - -/****************************** PUBLIC FUNCTIONS **************************/ -int nfc_init(void) -{ - mml_nfc_pcd_init(); - setup_beeper(); - - // ******************************************************************** - // Set the desired default antenna analog configuration - // ******************************************************************** - if (mml_nfc_pcd_set_analog_config(current_analog_parameters) != MML_NFC_PCD_E_SUCCESS) { - debug("Failed to get current analog config, possible RF driver version problem\n"); - } - - poweron_operatingfield(); - poweroff_operatingfield(); - - return 0; -} - -void nfc_enable_polling(void) -{ - g_nfc_active_polling = 1; - xSemaphoreGive(xNFCLock); -} - -void nfc_disable_polling(void) -{ - g_nfc_active_polling = 0; - xSemaphoreTake(xNFCLock, 0); -} - -void vGetNFCTask(void *pvParameter) -{ - (void)pvParameter; - - int status = 0; - int i = 0; - int k = 0; - char mifare_strn[50] = { 0x00 }; - message_t msgNFC; - - ppse_response_t card_response; - - //g_logging_level = DBG_LVL_NON; - - /* Initialize the NFC reader and wait before enabling */ - nfc_init(); - - xNFCLock = xSemaphoreCreateBinary(); - - for (;;) { - while (xSemaphoreTake(xNFCLock, 0xFFFF) != pdTRUE) { - { - } - } - - msgNFC.pcType = 'L'; - msgNFC.len = 0; - - // Keep looking for cards as long as we are active - while (g_nfc_active_polling) { - vTaskDelay(10); - - poweron_operatingfield(); - - status = emvl1_poll_for_card(1); - - if ((status == TYPE_A_READY) || (status == TYPE_B_READY)) { - if (do_ppse(&card_response) == ISO14443_3_ERR_SUCCESS) { - debug("Got a valid ppse response\n"); - - beep_for_success(); - - status = parse_ppse_response(&card_response); - - if (status == ISO14443_3_ERR_SUCCESS) { - debug("parse ppse success\n"); - - // Got a response, put in buffer - msgNFC.pcType = 'N'; - - // pcMessage buffer is only 50 bytes. - - i = 0; - msgNFC.pcMessage[i++] = 'A'; - msgNFC.pcMessage[i++] = 'I'; - msgNFC.pcMessage[i++] = 'D'; - msgNFC.pcMessage[i++] = ':'; - msgNFC.pcMessage[i++] = ' '; - - // print in the AID (convert from HEX to ASCII) - for (k = 0; ((k < card_response.aid_bin_len) && (i < 50)); k++, i += 2) { - // Note, using pointer math for offset here - snprintf((char *)msgNFC.pcMessage + i, 50 - i, "%02X ", - card_response.aid_bin[k]); - } - - // Insert Carriage return - if (i < 50) { - msgNFC.pcMessage[i++] = '\n'; - } - - // Now insert Application Label - for (k = 0; ((k < card_response.application_label_len) && (i < 50)); - i++, k++) { - msgNFC.pcMessage[i] = card_response.application_label[k]; - } - - msgNFC.len = i; - - debug("Message cnt: %d\n%s\n\n", i, msgNFC.pcMessage); - - xQueueSendToFront(xQueueMain, &msgNFC, 0); - break; - } else { - debug("Unknown Card\n"); - - // Got a response, put in buffer - msgNFC.pcType = 'N'; - - // pcMessage buffer is only 50 bytes. - strncpy((char *)msgNFC.pcMessage, "Unknown Card Type", 50); - - msgNFC.len = 50; - - xQueueSendToFront(xQueueMain, &msgNFC, 0); - break; - } - } else { - beep_for_success(); - - debug("Card does not handle PPSE\n"); - - // Got a response, put in buffer - msgNFC.pcType = 'N'; - - // pcMessage buffer is only 50 bytes. - strncpy((char *)msgNFC.pcMessage, "Card doesn't handle PPSE", 50); - - msgNFC.len = 50; - - // Forge success for this card to display message. - // It's a success but just doesn't support PPSE - status = ISO14443_3_ERR_SUCCESS; - - xQueueSendToFront(xQueueMain, &msgNFC, 0); - break; - } - } else if (status == TYPE_A_NON_ISO14443_4_READY) { - beep_for_success(); - decode_MIFARE_type(mifare_strn); - - msgNFC.pcType = 'N'; - - debug("Possible MIFARE Card %s\n", mifare_strn); - strncpy((char *)msgNFC.pcMessage, mifare_strn, 50); - - // Set len to null termination of string - for (i = 0; i < 50; i++) { - if (msgNFC.pcMessage[i] == 0) { - break; - } - } - - msgNFC.len = i; - xQueueSendToFront(xQueueMain, &msgNFC, 0); - break; - } else if (status == TYPE_B_NON_ISO14443_4_READY) { - beep_for_success(); - - msgNFC.pcType = 'N'; - - debug("Type B Non ISO14443 Card found.\n"); - strncpy((char *)msgNFC.pcMessage, "Non ISO14443 Type B card found", 50); - - // Set len to null termination of string - for (i = 0; i < 50; i++) { - if (msgNFC.pcMessage[i] == 0) { - break; - } - } - - msgNFC.len = i; - xQueueSendToFront(xQueueMain, &msgNFC, 0); - break; - } else if ((status != ISO14443_3_ERR_SUCCESS) || (status == NO_CARD_FOUND)) { - // No supported card detected - // or card does not support ppse - // or application id is not recognizable - // or NO CARD in the field - - // Keep Trying - continue; - } - } // End of while (1) keep looking for cards - - mml_nfc_pcd_field_off(); - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_smartcard.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_smartcard.c deleted file mode 100644 index 0029dd43720..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_smartcard.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include - -#include -#include -#include -#include - -#include "MAX32xxx.h" -#include "message.h" -#include "keypad.h" -#include "task_smartcard.h" - -#include "MAX325xx_afe.h" -#include "OSWrapper.h" -#include "sc_errors.h" -#include "sc_types.h" -#include "smartcard_api.h" - -#include "demo_config.h" - -/********************************* DEFINES *************************/ - -/********************************* TYPE DEF *************************/ - -/********************************* VARIABLES *************************/ -mxc_sc_context_t sc_context = { 0 }; - -static UartId_t g_uartId = SCI_1; -static MAX325xxSlots_t g_card_slot = SC_SLOT_NUMBER; - -ActivationParams_t ActivationParams = { -#if SMARTCARD_EXT_AFE_Voltage == SMARTCARD_EXT_AFE_5V - .IccVCC = VCC_5V, -#else - .IccVCC = VCC_3V, -#endif - .IccResetDuration = 108, /* 108*372 clock cycles*/ - .IccATR_Timeout = 20160, /* 20160 etus*/ - .IccTS_Timeout = 114, /* 114*372 clock cycles*/ - .IccWarmReset = 0, -}; - -extern xQueueHandle xQueueMain; -static xSemaphoreHandle xATRLock; -static volatile int g_sc_active_polling = 0; - -/********************************* Static Functions **************************/ -int mxc_sc_init(mxc_sc_id_t id) -{ - /* For the first time initialization */ - if (!sc_context.first_init) { - /* Initialize the smart card context information to zero's */ - sc_context.sc[MXC_SC_DEV0].reg_sc = MXC_SC0; - sc_context.sc[MXC_SC_DEV1].reg_sc = MXC_SC1; - sc_context.first_init = 1; - } - - /* Check input parameter */ - if (id > MXC_SC_DEV_MAX) { - return E_INVALID; - } - - /* Enable the timer clock */ - /* Clear the bit position to enable clock to timer device */ - switch (id) { - case MXC_SC_DEV0: - MXC_SYS_Reset_Periph(MXC_SYS_PERIPH_CLOCK_SC0); - while (MXC_GCR->rst1 & MXC_F_GCR_RST1_SC0) {} - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SC0); - break; - case MXC_SC_DEV1: - MXC_SYS_Reset_Periph(MXC_SYS_PERIPH_CLOCK_SC1); - while (MXC_GCR->rst1 & MXC_F_GCR_RST1_SC1) {} - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SC1); - break; - default: - return E_INVALID; - } - - return E_NO_ERROR; -} - -static void smart_card_inserted_interrupt(CardState_t cardstate) -{ - if (cardstate == ICC_INSERTION) { - //... - } - if (cardstate == ICC_REMOVAL) { - //... - } - NVIC_ClearPendingIRQ(SC1_IRQn); -} - -void sc_set_afe_intterrupt(unsigned int status) -{ - if (status == 1) { - status = bTRUE; - - // start polling - g_sc_active_polling = 1; - xSemaphoreGive(xATRLock); - } else { - status = bFALSE; - - // stop polling - g_sc_active_polling = 0; - } - SCAPI_ioctl(g_card_slot, IOCTL_ENABLE_AFE_INTERRUPT, &status); -} - -int sc_init(void) -{ - uint32_t status = 0; - IccReturn_t retval = ICC_OK; - - /* enable interrupts*/ - OSWrapper_Interrupt_enable(); - - /* open slot INTERNAL_AFE for SC0 interfaces */ - SCAPI_open(g_uartId, g_card_slot); - - /* Set the card frequency */ - status = 3200000; //3.2MHz - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_CLOCK_FREQ, &status); - if (ICC_OK != retval) { - return retval; - } - - /* as the card has been powered off, we must reset - * the initparams, emv mode and working buffer - */ - - /* Set the ATR timings + card voltage */ - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_INITPARAMS, (void *)&ActivationParams); - if (ICC_OK != retval && retval != ICC_ERR_REMOVED) { - return retval; - } - - /* Attach AFE user interrupt */ - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_PRESENCE_IRQ, smart_card_inserted_interrupt); - if (retval) { - return retval; - } - - /* Switch the stack to EMV mode*/ - status = 1; - retval = SCAPI_ioctl(g_card_slot, IOCTL_SET_EMVMODE, &status); - if (ICC_OK != retval) { - return retval; - } - - return 0; // ICC_OK -} - -void vGetATRTask(void *pvParameters) -{ - (void)pvParameters; - - uint32_t status = ICC_ERR_REMOVED; - uint32_t last_status = ICC_ERR_REMOVED; - message_t msgSCI; - - sc_init(); - - xATRLock = xSemaphoreCreateBinary(); - - msgSCI.pcType = 'K'; - - for (;;) { - while (xSemaphoreTake(xATRLock, 0xFFFF) != pdTRUE) { - { - } - } - - while (g_sc_active_polling) { - SCAPI_ioctl(g_card_slot, IOCTL_GET_CARD_STATE, &status); - if (status != last_status) { - last_status = status; - - if (!((IccReturn_t)last_status == ICC_ERR_REMOVED)) { - /* card present */ - msgSCI.pcMessage[0] = KEY_CARD_INSERTED; - } else { - //No CARD - msgSCI.pcMessage[0] = KEY_CARD_REMOVED; - } - xQueueSendToFront(xQueueMain, &msgSCI, 0); - } - vTaskDelay(20); - } - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_touchscreen.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_touchscreen.c deleted file mode 100644 index a4bcd6a59b8..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/task_touchscreen.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include -#include -#include - -#include "MAX32xxx.h" -#include "message.h" - -/*************************************** DEFINES *****************************/ - -/************************************* VARIABLES *****************************/ -extern xQueueHandle xQueueMain; - -/********************************** STATIC FUNCTIONS *************************/ - -/********************************** PUBLIC FUNCTIONS *************************/ -void vGetTSTask(void *pvParameters) -{ - (void)pvParameters; - - int key; - message_t msgTS; - - while (1) { - key = MXC_TS_GetKey(); - if (key > 0) { - msgTS.pcType = 'T'; - msgTS.pcMessage[0] = key; - xQueueSendToFront(xQueueMain, &msgTS, 0); - } - vTaskDelay(20); - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/utils.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/utils.c deleted file mode 100644 index 70726269e47..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/utils.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -******************************************************************************** -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ -#include - -#include "MAX32xxx.h" -#include "utils.h" - -/***************************** VARIABLES *************************************/ - -/************************ STATIC FUNCTIONS *******************************/ - -/************************ PUBLIC FUNCTIONS *******************************/ -unsigned int utils_get_time_ms(void) -{ - uint32_t sec, ssec; - double subsec; - uint32_t ms; - - MXC_RTC_GetSubSeconds(&ssec); - subsec = (double)ssec / (double)(4096.0); - - MXC_RTC_GetSeconds(&sec); - - ms = (sec * 1000) + (int)(subsec * 1000); - - return ms; -} - -void utils_delay_ms(unsigned int ms) -{ - MXC_Delay(ms * 1000UL); -} - -void utils_hex2char(char chr, char *msg) -{ - int i; - char c; - - c = chr >> 4; - for (i = 0; i < 2; i++) { - if (c < 10) { - *msg = '0' + c; - } else { - *msg = 'A' + c - 10; - } - c = chr & 0x0F; - msg++; - } -} diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/wrapper_tft.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/wrapper_tft.c deleted file mode 100644 index b32c8a0ba84..00000000000 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/wrapper_tft.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include - -#include -#include - -#include "MAX32xxx.h" -#include "wrapper_tft.h" - -/*************************************** DEFINES *****************************/ -#define TFT_LOCK_WITH_MUTEX 0 // Do not forget to enable mutex in FreeRTOSConfig.h file - -/************************************** TYPE DEF *****************************/ - -/************************************* VARIABLES *****************************/ -#if TFT_LOCK_WITH_MUTEX -static xSemaphoreHandle xLockFB = NULL; -#endif - -/********************************** STATIC FUNCTIONS *************************/ - -/********************************** PUBLIC FUNCTIONS *************************/ -void TFT_Init(void) -{ -#if TFT_LOCK_WITH_MUTEX - xLockFB = xSemaphoreCreateMutex(); - - if (xSemaphoreTake(xLockFB, 0xFFFF)) { - MXC_TFT_Init(); - xSemaphoreGive(xLockFB); - } -#else - MXC_TFT_Init(); -#endif -} - -void TFT_SetBackGroundColor(unsigned char index_color) -{ -#if TFT_LOCK_WITH_MUTEX - __disable_irq(); - if (xSemaphoreTake(xLockFB, 0xFFFF)) { - MXC_TFT_SetBackGroundColor(index_color); - xSemaphoreGive(xLockFB); - } - __enable_irq(); -#else - __disable_irq(); - MXC_TFT_SetBackGroundColor(index_color); - __enable_irq(); -#endif -} - -void TFT_ShowImage(int x0, int y0, int id) -{ -#if TFT_LOCK_WITH_MUTEX - __disable_irq(); - if (xSemaphoreTake(xLockFB, 0xFFFF)) { - MXC_TFT_ShowImage(x0, y0, id); - xSemaphoreGive(xLockFB); - } - __enable_irq(); -#else - __disable_irq(); - MXC_TFT_ShowImage(x0, y0, id); - __enable_irq(); -#endif -} - -void TFT_PrintFont(int x0, int y0, int id, text_t *str, area_t *area) -{ -#if TFT_LOCK_WITH_MUTEX - __disable_irq(); - if (xSemaphoreTake(xLockFB, 0xFFFF)) { - MXC_TFT_PrintFont(x0, y0, id, str, area); - xSemaphoreGive(xLockFB); - } - __enable_irq(); -#else - __disable_irq(); - MXC_TFT_PrintFont(x0, y0, id, str, area); - __enable_irq(); -#endif -} - -void TFT_ClearArea(area_t *area, int color) -{ -#if TFT_LOCK_WITH_MUTEX - __disable_irq(); - if (xSemaphoreTake(xLockFB, 0xFFFF)) { - MXC_TFT_ClearArea(area, color); - xSemaphoreGive(xLockFB); - } - __enable_irq(); -#else - __disable_irq(); - MXC_TFT_ClearArea(area, color); - __enable_irq(); -#endif -} - -void TFT_SetPalette(int img_id) -{ -#if TFT_LOCK_WITH_MUTEX - __disable_irq(); - if (xSemaphoreTake(xLockFB, 0xFFFF)) { - MXC_TFT_SetPalette(img_id); - xSemaphoreGive(xLockFB); - } - __enable_irq(); - -#else - __disable_irq(); - MXC_TFT_SetPalette(img_id); - __enable_irq(); -#endif -} diff --git a/Examples/MAX32572/MSR/.cproject b/Examples/MAX32572/MSR/.cproject deleted file mode 100644 index eca544ca32f..00000000000 --- a/Examples/MAX32572/MSR/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/MSR/.project b/Examples/MAX32572/MSR/.project deleted file mode 100644 index c2859a92ee5..00000000000 --- a/Examples/MAX32572/MSR/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - MSR - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/MSR/.vscode/c_cpp_properties.json b/Examples/MAX32572/MSR/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/MSR/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/MSR/.vscode/launch.json b/Examples/MAX32572/MSR/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/MSR/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/MSR/.vscode/settings.json b/Examples/MAX32572/MSR/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/MSR/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/MSR/.vscode/tasks.json b/Examples/MAX32572/MSR/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/MSR/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/MSR/MSR.launch b/Examples/MAX32572/MSR/MSR.launch deleted file mode 100644 index bcdeafa83d8..00000000000 --- a/Examples/MAX32572/MSR/MSR.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/MSR/Makefile b/Examples/MAX32572/MSR/Makefile deleted file mode 100644 index 4868ac93436..00000000000 --- a/Examples/MAX32572/MSR/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += msr_sdma.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -PROJ_AFLAGS+=-D__MSR_SDMA_SIZE=0xA000 - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/MSR/README.md b/Examples/MAX32572/MSR/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/MSR/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/MSR/main.c b/Examples/MAX32572/MSR/main.c deleted file mode 100644 index 27ba3c8fe3d..00000000000 --- a/Examples/MAX32572/MSR/main.c +++ /dev/null @@ -1,254 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -/* Global includes */ -#include - -#include "MAX32xxx.h" -#include "msr.h" - -/* Select SDMA instance to run MSR on {0,1} */ -#define MSR_SDMA_INSTANCE (0) - -#if MSR_SDMA_INSTANCE == 0 -#define MSR_SDMA MXC_SDMA0 -#define MSR_SDMA_IRQn HA0_IRQn -#define SDMAx_IRQHandler HA0_IRQHandler -#define CLK_DIS_SDMAxD MXC_SYS_PERIPH_CLOCK_HA0 -#else -#define MSR_SDMA MXC_SDMA1 -#define MSR_SDMA_IRQn HA1_IRQn //SDMA1_IRQn -#define SDMAx_IRQHandler HA1_IRQHandler -#define CLK_DIS_SDMAxD MXC_SYS_PERIPH_CLOCK_HA1 -#endif - -/* Global swipe statistics data */ -static int Processed = 0; -static int Discarded = 0; -static int Discarded_track[3] = { 0, 0, 0 }; - -/* SDMA Code */ -extern unsigned char msr_sdma_code[]; - -/* MSR SDMA ISR */ -static volatile uint32_t sdma_irq_flag; - -/* SHARED section layout */ -volatile uint32_t *msr_version = (uint32_t *)0x20000000; -volatile uint16_t *msr_ctrl_ptr = (uint16_t *)0x20000004; -volatile uint16_t *adc9_err_ptr = (uint16_t *)0x20000006; -volatile uint32_t *swipe_timeout_sec_ptr = (uint32_t *)0x20000008; -volatile mcr_decoded_track_t *decoded_track = (mcr_decoded_track_t *)0x2000000C; - -#define msr_version (*msr_version) -#define msr_ctrl (*msr_ctrl_ptr) -#define adc9_err (*adc9_err_ptr) -#define swipe_timeout_sec (*swipe_timeout_sec_ptr) - -void SDMAx_IRQHandler(void) -{ - MSR_SDMA->irq_flag = 1; - sdma_irq_flag = 1; -} - -/* This will start MSR SDMA */ -static void start_msr_sdma(void) -{ - /* Enable SDMA clock */ - MXC_SYS_ClockEnable(CLK_DIS_SDMAxD); - - /* Disable interrupt from SDMA */ - /* will wait for irq_flag=1 but dont want IRQHandler() to run */ - NVIC_DisableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie = 0; - -#define ADC9_IRQ_VECTOR 22 - - /* Enable interrupt mux */ - MSR_SDMA->int_mux_ctrl0 = (ADC9_IRQ_VECTOR << MXC_F_SDMA_INT_MUX_CTRL0_INTSEL16_POS); - MSR_SDMA->int_mux_ctrl1 = 0; - MSR_SDMA->int_mux_ctrl2 = 0; - MSR_SDMA->int_mux_ctrl3 = 0; - /* Set org address and enable sdma */ - MSR_SDMA->ip_addr = (uint32_t)&msr_sdma_code; - MSR_SDMA->ctrl |= MXC_F_SDMA_CTRL_EN; - /* Wait for the SDMA to finish re-initialization */ - while (!MSR_SDMA->irq_flag) { - { - } - } - /* Clear irq_flag */ - MSR_SDMA->irq_flag = 1; - NVIC_ClearPendingIRQ(MSR_SDMA_IRQn); - /* Re-Enable interrupt from SDMA */ - NVIC_EnableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie |= MXC_F_SDMA_IRQ_IE_IRQ_EN; - MSR_SDMA->int_in_ie = 1; -} - -/* This will stop MSR SDMA */ -static void stop_msr_sdma(void) -{ - /* Disable interrupt from SDMA */ - NVIC_DisableIRQ(MSR_SDMA_IRQn); - MSR_SDMA->irq_ie = 0; - - /* stop SDMA */ - MSR_SDMA->ctrl &= ~(MXC_F_SDMA_CTRL_EN); - - /* Disable interrupt mux */ - MSR_SDMA->int_mux_ctrl0 = 0; - MSR_SDMA->int_mux_ctrl1 = 0; - MSR_SDMA->int_mux_ctrl2 = 0; - MSR_SDMA->int_mux_ctrl3 = 0; - - /* Disable SDMA clock */ - MXC_SYS_ClockDisable(CLK_DIS_SDMAxD); -} - -/* This will print decoded swipe data */ -static void ProcessSwipe(void) -{ - unsigned int tidx; - - for (tidx = 0; tidx < MCR_NUM_TRACKS; tidx++) { - /* Display the decoding results */ - printf("\r\n--= Track %u =--\r\n", tidx + 1); - - if (decoded_track[tidx].error_code != MCR_ERR_OK) { - printf("Error: 0x%02x", decoded_track[tidx].error_code); - if (decoded_track[tidx].error_code & MCR_ERR_BAD_LEN) { - printf(" BAD_LEN"); - } - if (decoded_track[tidx].error_code & MCR_ERR_START_SEN) { - printf(" START_SEN"); - } - if (decoded_track[tidx].error_code & MCR_ERR_END_SEN) { - printf(" END_SEN"); - } - if (decoded_track[tidx].error_code & MCR_ERR_OUTLIER) { - printf(" OUTLIER"); - } - if (decoded_track[tidx].error_code & MCR_ERR_PARITY) { - printf(" PARITY"); - } - if (decoded_track[tidx].error_code & MCR_ERR_LRC) { - printf(" LRC"); - } - printf("\r\n"); - } - - if (decoded_track[tidx].lrc == 0) { - printf("LRC check passed\r\n"); - } else { - printf("LRC check failed\r\n"); - } - - printf("Decoded %d chars, ", decoded_track[tidx].len); - if (decoded_track[tidx].speed && decoded_track[tidx].len) { - if (decoded_track[tidx].direction == MCR_FORWARD) { - printf("Forward, "); - } else { - printf("Reverse, "); - } - printf("Rate %u.%u in/sec\r\n", decoded_track[tidx].speed / 10, - decoded_track[tidx].speed % 10); - } else { - printf("Direction and Rate invalid\r\n"); - } - - printf("%s\r\n", decoded_track[tidx].data); - - /* Capture Statistics */ - Processed++; - if ((decoded_track[tidx].len == 0) || (decoded_track[tidx].lrc != 0)) { - Discarded++; - Discarded_track[tidx]++; - } - } - - printf("\r\nDecode Stats:\r\n"); - printf(" Tracks %d, Discarded %d (%d %d %d)\r\n", Processed, Discarded, Discarded_track[0], - Discarded_track[1], Discarded_track[2]); -} - -int main(void) -{ - // - printf("\nWelcome to Magnetic Stripe Reader Application\n"); - - while (1) { - printf("\n\n\n---------------------------------------------------------------\n"); - - swipe_timeout_sec = 30; /* Set swipe timeout */ - - printf("Start MSR on SDMA%1d \n", MSR_SDMA_INSTANCE); - start_msr_sdma(); - printf("MSR SDMA Verion %d.%d\n", msr_version >> 16, msr_version & 0xffff); - - printf("\nWaiting for swipe ...\n"); - - msr_ctrl = GETSWIPE_BUSY; /* signal to SDMA to get swipe data */ - sdma_irq_flag = 0; - while (!sdma_irq_flag) { - { - } - } - - /* check exit code */ - switch (msr_ctrl) { - case GETSWIPE_OK: - ProcessSwipe(); /* Print Swipe results */ - break; - case GETSWIPE_ADCERR: - /* report ADC errors */ - if (adc9_err & ADCERR_OVERRUN) - printf("Error: ADC9 overrun\r\n"); - else if (adc9_err & ADCERR_SHIFT) - printf("Error: ADC9 channels shifted\r\n"); - else if (adc9_err & ADCERR_INCOMPLETE) - printf("Error: ADC9 conversion incomplete\r\n"); - break; - case GETSWIPE_TIMO: /* Timeout: no swipe */ - printf("No swipe for %d seconds\r\n", swipe_timeout_sec); - break; - } - - // - stop_msr_sdma(); - } - - return 0; -} diff --git a/Examples/MAX32572/MSR/msr.h b/Examples/MAX32572/MSR/msr.h deleted file mode 100644 index dbe08b7704b..00000000000 --- a/Examples/MAX32572/MSR/msr.h +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_MSR_MSR_H_ -#define EXAMPLES_MAX32572_MSR_MSR_H_ - -#include "mxc_sys.h" -#include "sdma_regs.h" - -/* Number of tracks on magstripe */ -#define MCR_NUM_TRACKS 3 - -/* Maximum number of bits on a 3.375 inch, 210 bpi magstripe */ -#define MCR_MAX_RAW_LEN_BITS (3375 * 210 / 1000) -/* Maximum number of characters decoded from any track */ -#define MCR_MAX_DEC_LEN (MCR_MAX_RAW_LEN_BITS / 5) - -/* Swipe direction: Forward */ -#define MCR_FORWARD 0 -/* Swipe direction: Reverse */ -#define MCR_REVERSE 1 - -/* Errors generated by decoding functions */ -#define MCR_ERR_OK 0x00 /// No error -#define MCR_ERR_BAD_LEN 0x01 /// invalid length parameter -#define MCR_ERR_START_SEN 0x02 /// start sentinel was not found -#define MCR_ERR_END_SEN 0x04 /// end sentinel was not found -#define MCR_ERR_OUTLIER 0x08 /// invalid sample value -#define MCR_ERR_PARAM 0x10 /// invalid parameter -#define MCR_ERR_LRC 0x40 /// invalid LRC (LRC != 0) -#define MCR_ERR_PARITY 0x80 /// parity error - -/* Structure to contain result of a track decode */ -typedef struct { - uint8_t error_code; /**< Error code value */ - uint8_t parity_errs; /**< Number of characters with parity errors */ - uint8_t lrc; /**< LRC check value. A value of '0' indicates a */ - /**< successful LRC check. Any other value should be */ - /**< considered a failure. */ - uint8_t direction; /**< Swipe direction determined from decode */ - uint16_t len; /**< Number or decoded characters. This does not include */ - /**< the sentinels or the LRC. */ - uint16_t speed; /**< Approximate swipe rate, LSB = 0.1 in/sec */ - uint8_t data[MCR_MAX_DEC_LEN]; /**< The decoded data */ -} mcr_decoded_track_t; - -/* ADC errors */ -#define ADCERR_OVERRUN (1 << 0) -#define ADCERR_SHIFT (1 << 1) -#define ADCERR_INCOMPLETE (1 << 2) - -/* swipe termination exit code */ -#define GETSWIPE_BUSY (0x00) -#define GETSWIPE_OK (0x01) -#define GETSWIPE_ADCERR (0x02) -#define GETSWIPE_TIMO (0x03) - -#endif // EXAMPLES_MAX32572_MSR_MSR_H_ diff --git a/Examples/MAX32572/MSR/msr_sdma.c b/Examples/MAX32572/MSR/msr_sdma.c deleted file mode 100644 index 1cc4da0a080..00000000000 --- a/Examples/MAX32572/MSR/msr_sdma.c +++ /dev/null @@ -1,764 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".msr_sdma_code"))) volatile unsigned char msr_sdma_code[] = { - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x08, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x0B, 0x00, 0x0B, 0x11, 0x0B, 0x9F, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x0B, 0x00, 0x0B, 0x11, 0x0B, 0xA8, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8D, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x0B, 0x00, 0x0B, 0xA0, 0x0B, 0x00, 0x1D, 0x07, 0xD8, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, - 0x43, 0x3F, 0x64, 0x0B, 0x61, 0x6D, 0x01, 0x7D, 0x00, 0x1F, 0xFE, 0x4D, 0xFD, 0x5D, 0x20, 0x0B, - 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x3F, 0x04, 0x0B, 0x94, 0x6D, 0x01, 0x7D, 0x00, 0x1F, 0xFE, 0x4D, - 0xFD, 0x5D, 0x07, 0x08, 0x88, 0xF9, 0x02, 0x0B, 0x00, 0x2A, 0x00, 0x2B, 0x79, 0x88, 0x00, 0x18, - 0x00, 0x30, 0xB7, 0x0B, 0x1B, 0x00, 0x02, 0x0B, 0x06, 0x20, 0x10, 0x0B, 0x00, 0x0B, 0x01, 0x6B, - 0x08, 0x01, 0x00, 0x6B, 0x20, 0x11, 0x00, 0x6B, 0x01, 0x21, 0x87, 0xD8, 0x2C, 0x0C, 0x21, 0x02, - 0x79, 0x92, 0x69, 0xA2, 0x3A, 0xDA, 0x32, 0xF9, 0x0D, 0x8C, 0x79, 0x8D, 0x40, 0x0B, 0x04, 0x0B, - 0x20, 0x0B, 0x08, 0x3F, 0x9F, 0xF7, 0xFA, 0x2C, 0x40, 0x0B, 0x04, 0x0B, 0x20, 0x0B, 0x1C, 0x3F, - 0x0D, 0x8F, 0x0D, 0x8C, 0x0F, 0x8A, 0x0D, 0x8C, 0x8F, 0x8A, 0x0D, 0x8C, 0x9F, 0x8A, 0x0D, 0x8C, - 0x18, 0x8D, 0x07, 0x18, 0x6F, 0x8A, 0x00, 0x18, 0x6F, 0x8A, 0x0D, 0x98, 0x0D, 0x8C, 0x07, 0xD8, - 0x0D, 0x8C, 0x87, 0xD8, 0x0D, 0x8C, 0x01, 0x60, 0x0D, 0x8C, 0x01, 0x2B, 0x00, 0x50, 0x0D, 0x8C, - 0x00, 0x2B, 0x87, 0xD0, 0x0D, 0x8C, 0x0D, 0x3D, 0xF6, 0x3D, 0x09, 0x0C, 0x10, 0x0B, 0x00, 0x0B, - 0x14, 0x0B, 0xDD, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x8A, 0x3D, 0xEC, 0x3D, 0xF6, 0x0C, - 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x98, 0x79, 0x79, 0xA9, - 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x3F, 0x01, 0x0B, 0x00, 0x0B, 0x01, 0x6F, 0x20, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x04, 0x3F, 0xFF, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x08, 0x3F, - 0x6F, 0xF9, 0x8F, 0x0B, 0x0D, 0x0B, 0x18, 0x69, 0xAA, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x24, 0x3F, 0x79, 0xEF, 0x08, 0x79, 0x02, 0x78, 0x0A, 0x3C, 0x08, 0x78, 0x0A, 0x3C, 0x20, 0x78, - 0x0A, 0x3C, 0x80, 0x78, 0x0A, 0x3C, 0x02, 0x0B, 0x00, 0x78, 0x09, 0x3C, 0x02, 0x0C, 0x01, 0x39, - 0x08, 0x0C, 0x02, 0x39, 0x06, 0x0C, 0x03, 0x39, 0x04, 0x0C, 0x04, 0x39, 0x02, 0x0C, 0x05, 0x39, - 0x00, 0x0C, 0x39, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, 0x48, 0x3D, 0x29, 0x8E, 0x07, 0x3E, - 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x79, 0xB9, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x06, 0x3E, - 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, - 0x05, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, - 0x29, 0x8E, 0x04, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, - 0x2A, 0x8A, 0x29, 0x8E, 0x03, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, 0x79, 0xAA, - 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, 0x03, 0x08, - 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0x8E, 0x01, 0x3E, 0x1E, 0xF9, 0x30, 0x5A, 0x03, 0x1A, - 0x03, 0x08, 0x79, 0xAA, 0x3A, 0x8A, 0x2A, 0x8A, 0x29, 0xBF, 0x1F, 0xF9, 0x30, 0x5A, 0x03, 0x1A, - 0x03, 0x08, 0x79, 0xAA, 0x6A, 0x8A, 0x6A, 0x8A, 0x0B, 0x2A, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, - 0x00, 0x3F, 0x39, 0xEF, 0x05, 0x79, 0x03, 0x78, 0x0F, 0x3C, 0x04, 0x78, 0x11, 0x3C, 0x05, 0x78, - 0x0D, 0x3C, 0x08, 0x78, 0x0F, 0x3C, 0x10, 0x78, 0x0F, 0x3C, 0x20, 0x78, 0x0F, 0x3C, 0x40, 0x78, - 0x0F, 0x3C, 0x80, 0x78, 0x0F, 0x3C, 0x00, 0x0C, 0x00, 0x39, 0x0E, 0x0C, 0x01, 0x39, 0x0C, 0x0C, - 0x02, 0x39, 0x0A, 0x0C, 0x03, 0x39, 0x08, 0x0C, 0x04, 0x39, 0x06, 0x0C, 0x05, 0x39, 0x04, 0x0C, - 0x06, 0x39, 0x02, 0x0C, 0x07, 0x39, 0x00, 0x0C, 0x39, 0xF9, 0x6A, 0x8A, 0x6A, 0x8A, 0x07, 0x0B, - 0x00, 0x1A, 0x70, 0x4A, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x79, 0xEF, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x2B, 0x00, 0x0A, - 0x79, 0xFF, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x07, 0x2A, 0x79, 0xFF, - 0x40, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x00, 0x3F, 0x01, 0x6F, 0x40, 0x0B, 0x00, 0x0B, 0x04, 0x0B, - 0x28, 0x3F, 0x9F, 0xF9, 0x15, 0x0B, 0x00, 0x0B, 0x00, 0x2A, 0x79, 0xFF, 0x40, 0x0B, 0x00, 0x0B, - 0x0C, 0x0B, 0x00, 0x3F, 0x00, 0x6F, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, - 0x19, 0x8D, 0x79, 0xA9, 0x69, 0xB9, 0x29, 0xF9, 0x00, 0x69, 0x01, 0x0B, 0x68, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0xBF, 0x6F, 0xF9, 0x29, 0xBF, 0x79, 0xEF, 0x39, 0x8E, - 0x01, 0x3E, 0x6E, 0xF9, 0x29, 0x8E, 0x01, 0x3E, 0x79, 0xEE, 0x39, 0x8E, 0x02, 0x3E, 0x6E, 0xF9, - 0x29, 0x8E, 0x4B, 0x3E, 0x79, 0xEE, 0x39, 0x8E, 0x03, 0x3E, 0x6E, 0xF9, 0x29, 0x8E, 0x4C, 0x3E, - 0x79, 0xEE, 0x00, 0x19, 0x19, 0xF9, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x08, 0x3E, 0x4E, 0xF9, - 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, 0xA8, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, - 0x39, 0xCA, 0x79, 0x8E, 0x0C, 0x3E, 0x4E, 0xF9, 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, - 0x8C, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x10, 0x3E, 0x4E, 0xF9, - 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, 0x90, 0x3E, 0x79, 0xCE, 0x19, 0xF9, 0x2A, 0x8A, - 0x39, 0xCA, 0x79, 0x8E, 0x14, 0x3E, 0x4E, 0xF9, 0x19, 0xE9, 0x2A, 0x8A, 0x29, 0xCA, 0x69, 0x8E, - 0xAC, 0x3E, 0x79, 0xCE, 0x01, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0xCC, 0x4C, 0x04, 0x5A, 0xCA, 0x2C, - 0x39, 0x8E, 0x1D, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0x8A, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1D, 0x3E, - 0x4E, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xCA, 0x79, 0x8E, 0x08, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, - 0x9E, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1D, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xCA, - 0x79, 0x8E, 0x0C, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0x89, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1C, 0x3E, - 0x4E, 0xF9, 0x29, 0x8E, 0x8B, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x18, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, - 0xB0, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x19, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0xB1, 0x3E, 0x79, 0xCE, - 0x39, 0x8E, 0x1A, 0x3E, 0x4E, 0xF9, 0x29, 0x8E, 0xB2, 0x3E, 0x79, 0xCE, 0x39, 0x8E, 0x1B, 0x3E, - 0x4E, 0xF9, 0x29, 0x8E, 0xB3, 0x3E, 0x79, 0xCE, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, - 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x74, 0x79, 0x20, 0x0B, 0x00, 0x0B, 0x2D, 0x0B, 0xC4, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x95, 0x0B, 0x0C, 0x79, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x00, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, - 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x79, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x3C, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, 0x4E, 0x3D, 0x0D, 0x8C, 0x00, 0x0D, 0x00, 0x0D, 0x00, 0x0D, - 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, - 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x00, 0x2B, 0x79, 0xA9, 0x1D, 0x8E, 0x0D, 0x3E, 0x69, 0xEE, - 0x0C, 0x3E, 0x59, 0xEE, 0x0B, 0x3E, 0x49, 0xEE, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x79, 0x79, 0x89, - 0x79, 0x99, 0x00, 0x2B, 0x00, 0x39, 0x00, 0x79, 0x00, 0x2B, 0x79, 0xE9, 0x00, 0x2B, 0x00, 0x59, - 0x00, 0x29, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0xD9, 0x0C, 0x29, 0xF9, 0x3A, 0x8A, 0xA9, 0xCA, - 0x79, 0xBF, 0x6F, 0xF9, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x3A, 0x8A, 0xA9, 0xCA, - 0x79, 0xBF, 0x6F, 0xF9, 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, 0x79, 0xB9, 0x0E, 0x08, 0x07, 0x5C, - 0x39, 0xF9, 0x26, 0x0B, 0x6D, 0x5A, 0x03, 0x2C, 0x00, 0x2B, 0x01, 0x69, 0x39, 0x99, 0x0B, 0x08, - 0x09, 0x5C, 0x0E, 0x08, 0x07, 0x1C, 0x39, 0xF9, 0x29, 0x0B, 0x8D, 0x5A, 0x03, 0x6C, 0x00, 0x2B, - 0x01, 0x39, 0x39, 0x89, 0x0E, 0x08, 0x7B, 0x1C, 0x0B, 0x08, 0x79, 0x1C, 0x02, 0x08, 0x77, 0x1C, - 0x29, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xE9, 0x01, 0x5A, 0x07, 0x08, 0x69, 0xDA, 0x6F, 0x6C, - 0x19, 0xF9, 0x09, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x1D, 0x8E, 0x0C, 0x3E, - 0x6E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0xEA, 0x8A, - 0xFA, 0x8A, 0x00, 0x2B, 0x79, 0x99, 0x39, 0xF9, 0x29, 0xE9, 0x3A, 0x8A, 0xA9, 0xCA, 0xFF, 0x0B, - 0xFF, 0x0B, 0xFF, 0x0B, 0xFC, 0x4A, 0x69, 0xBF, 0x6F, 0xE9, 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x07, 0x08, 0x99, 0xDA, - 0x13, 0x2C, 0x39, 0xF9, 0x29, 0xE9, 0x3A, 0x8A, 0xA9, 0xCA, 0x69, 0x8E, 0x01, 0x3E, 0x6E, 0xE9, - 0xFF, 0x2B, 0xFF, 0x0A, 0x5A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xB9, 0x3D, 0x07, 0x08, 0x99, 0xDA, 0x03, 0x6C, 0x0F, 0x08, 0xC9, 0xCA, 0x30, 0x0C, 0x19, 0xF9, - 0x09, 0xCA, 0xAA, 0x8A, 0x39, 0xDA, 0x16, 0x6C, 0x19, 0xF9, 0x39, 0xCA, 0xAA, 0x8A, 0x79, 0x99, - 0xC9, 0xF9, 0xF9, 0xCA, 0xD9, 0xD9, 0x59, 0xE9, 0x05, 0x08, 0x01, 0x4A, 0x00, 0x2B, 0x59, 0xD9, - 0x06, 0x08, 0x3A, 0x8A, 0x1D, 0x8E, 0x0B, 0x3E, 0xAE, 0xCA, 0x69, 0xBF, 0x79, 0xEF, 0x00, 0x2B, - 0x00, 0x79, 0x15, 0x0C, 0x09, 0xF9, 0x39, 0xCA, 0xAA, 0x8A, 0x79, 0x89, 0xC9, 0xF9, 0xF9, 0xCA, - 0xD9, 0xD9, 0x59, 0xE9, 0x05, 0x08, 0x01, 0x4A, 0x00, 0x2B, 0x59, 0xD9, 0x06, 0x08, 0x3A, 0x8A, - 0x1D, 0x8E, 0x0B, 0x3E, 0xAE, 0xCA, 0x69, 0xBF, 0x79, 0xEF, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x08, - 0x01, 0x4A, 0x29, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, - 0x35, 0x2C, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xBF, 0xD9, 0xEF, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, - 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, - 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0xA8, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, - 0xE9, 0x8D, 0x1D, 0x8E, 0x07, 0x3E, 0x6E, 0x89, 0x04, 0x08, 0x2F, 0x5C, 0x00, 0x2B, 0x59, 0xF9, - 0xAA, 0x8A, 0xEA, 0x8A, 0xF9, 0x99, 0x00, 0x2B, 0x79, 0xF9, 0x19, 0xCA, 0xF9, 0x8E, 0x01, 0x3E, - 0x00, 0x2B, 0x1E, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x6A, 0x8A, 0x6A, 0x8A, 0x00, 0x2B, 0x79, 0xE9, - 0x19, 0xCA, 0xE9, 0xBF, 0x00, 0x2B, 0x1F, 0xE9, 0xF9, 0xCA, 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, - 0x59, 0xF9, 0x07, 0x1A, 0x00, 0x2B, 0x39, 0xE9, 0x4A, 0xCA, 0x0F, 0x08, 0x04, 0x1C, 0xF9, 0xED, - 0x0E, 0x08, 0xFA, 0x8A, 0xFD, 0x4D, 0x0E, 0x08, 0xFF, 0x1A, 0x09, 0x9A, 0xFF, 0x1A, 0xFF, 0x1A, - 0xE9, 0xA9, 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xD7, 0x0C, 0x00, 0x2B, 0x69, 0xF9, 0x59, 0xDA, - 0xAA, 0x8A, 0xEA, 0x8A, 0xF9, 0x99, 0x00, 0x2B, 0x79, 0xF9, 0x19, 0xCA, 0xF9, 0xBF, 0x00, 0x2B, - 0x1F, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x6A, 0x8A, 0x6A, 0x8A, 0x00, 0x2B, 0x79, 0xE9, 0x19, 0xCA, - 0xFF, 0x0B, 0xFF, 0x0B, 0xFF, 0x0B, 0xFF, 0x4A, 0xE9, 0xBF, 0x00, 0x2B, 0x1F, 0xE9, 0xF9, 0xCA, - 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, 0x69, 0xF9, 0x59, 0xDA, 0x07, 0x1A, 0x01, 0x4A, 0x00, 0x2B, - 0x39, 0xE9, 0x4A, 0xCA, 0x0F, 0x08, 0x04, 0x1C, 0xF9, 0xED, 0x0E, 0x08, 0xFA, 0x8A, 0xFD, 0x4D, - 0x0E, 0x08, 0x4A, 0xCA, 0xE9, 0xB9, 0x00, 0x2B, 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xF7, 0x03, 0x2C, - 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, 0xF9, 0xA9, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xE7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xD7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x3A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, 0x39, 0xF9, - 0x4A, 0xCA, 0xF9, 0xC7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, 0x01, 0x79, - 0x0F, 0x08, 0xFF, 0x1A, 0x3A, 0x8A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, - 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xB7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, - 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, 0x00, 0x2B, - 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0xA7, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, 0x00, 0x2B, - 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x2A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, 0xFF, 0x1A, - 0x00, 0x2B, 0x39, 0xF9, 0x4A, 0xCA, 0xF9, 0x97, 0x03, 0x2C, 0x00, 0x2B, 0x00, 0x79, 0x02, 0x0C, - 0x00, 0x2B, 0x01, 0x79, 0x0F, 0x08, 0xFF, 0x1A, 0x6A, 0x8A, 0x3A, 0x8A, 0x02, 0x08, 0xF9, 0xCA, - 0xFF, 0x1A, 0x00, 0x2B, 0x29, 0xF9, 0x09, 0x9A, 0xFF, 0x1A, 0xFF, 0x1A, 0xF9, 0xA9, 0x29, 0xF9, - 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, - 0x0D, 0x8C, 0x00, 0x0D, 0x00, 0x0D, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, - 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x00, 0x2B, 0x79, 0x99, - 0x00, 0x2B, 0x69, 0xD9, 0x59, 0x89, 0x1D, 0x8E, 0x0B, 0x3E, 0x49, 0xEE, 0x0E, 0x3E, 0x6E, 0xB9, - 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, - 0x02, 0x3E, 0xFF, 0x1E, 0x39, 0xBF, 0x06, 0x1F, 0x0D, 0x08, 0x04, 0x1C, 0xD9, 0xF9, 0x02, 0x0B, - 0xC5, 0x5A, 0x09, 0x2C, 0x39, 0xBF, 0x0F, 0xF9, 0x01, 0x2A, 0x79, 0xAF, 0x00, 0x79, 0x10, 0x0B, - 0x00, 0x0B, 0x07, 0x0B, 0x26, 0x0C, 0x00, 0x2B, 0x00, 0x69, 0x00, 0x79, 0xFF, 0x1A, 0x00, 0x2B, - 0x79, 0xC9, 0x79, 0xA9, 0x00, 0x2B, 0x00, 0x29, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x01, 0x69, - 0x07, 0x08, 0x04, 0x1C, 0x79, 0xED, 0x06, 0x08, 0x2A, 0x8A, 0xFD, 0x4D, 0x06, 0x08, 0x01, 0x5A, - 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xB9, 0x00, 0x2B, 0x00, 0x79, 0x4E, 0x0C, 0x09, 0x8E, 0x02, 0x3E, - 0x1E, 0xF9, 0x29, 0xCA, 0xD9, 0xDA, 0x05, 0x2C, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, - 0x26, 0x0C, 0xB9, 0x8D, 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, - 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0x33, 0x1C, 0x0A, 0x08, - 0x05, 0x5C, 0x00, 0x2B, 0x01, 0x29, 0x1D, 0x8E, 0x0C, 0x3E, 0x29, 0xEE, 0x19, 0xF9, 0xFF, 0x1A, - 0x09, 0xBF, 0x1F, 0xE9, 0x07, 0x08, 0x69, 0xF8, 0x15, 0x7C, 0x39, 0xBF, 0x0F, 0xF9, 0x00, 0x2B, - 0x02, 0x0A, 0x79, 0xAF, 0x0F, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xE9, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, - 0x79, 0xCA, 0x13, 0x0C, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x29, 0xE9, 0x1D, 0x8E, - 0x0C, 0x3E, 0xAE, 0xDA, 0x07, 0x08, 0x69, 0xDA, 0x05, 0x6C, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, - 0x07, 0x0B, 0x26, 0x0C, 0x02, 0x08, 0x01, 0x4A, 0xB1, 0x0C, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, - 0x04, 0x0C, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x29, 0xCA, 0xD9, 0xDA, 0x07, 0x2C, - 0x39, 0xBF, 0x04, 0x1F, 0xF9, 0xF9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, 0x26, 0x0C, 0xB9, 0x8D, - 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, 0x10, 0x0B, 0x00, 0x0B, - 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xFF, 0x1A, 0x00, 0x2B, 0x69, 0xE9, 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, - 0x1E, 0xE9, 0x07, 0x08, 0x69, 0xF8, 0x1F, 0x3C, 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, - 0xAE, 0xCA, 0x79, 0xBF, 0x1F, 0xF9, 0x39, 0x8E, 0x02, 0x3E, 0x9E, 0xD9, 0x59, 0xE9, 0x05, 0x08, - 0x01, 0x4A, 0x00, 0x2B, 0x59, 0x9E, 0x06, 0x08, 0x4A, 0xCA, 0x39, 0xCA, 0x69, 0x8E, 0x08, 0x3E, - 0x79, 0x9E, 0x07, 0x08, 0xFF, 0x1A, 0x7E, 0x78, 0x03, 0x7C, 0x0C, 0x08, 0x01, 0x4A, 0x02, 0x0C, - 0x0F, 0x08, 0x01, 0x4A, 0x34, 0x0C, 0x39, 0xBF, 0x0F, 0xF9, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xAF, - 0x0F, 0x08, 0x01, 0x4A, 0x09, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, 0x79, 0xCA, 0xB9, 0x8D, - 0x99, 0xF9, 0xD9, 0xE9, 0x29, 0xD9, 0x1D, 0x8E, 0x0C, 0x3E, 0x6E, 0xC9, 0x10, 0x0B, 0x00, 0x0B, - 0x04, 0x0B, 0xFB, 0x3D, 0x0D, 0xA8, 0x79, 0x99, 0xE9, 0xF9, 0xFF, 0x1A, 0x19, 0xE9, 0xFF, 0x1A, - 0x79, 0xBA, 0xB9, 0xF9, 0xFF, 0x1A, 0xFA, 0x8A, 0x69, 0x9A, 0xFF, 0x1A, 0x00, 0x2B, 0x79, 0xE9, - 0x19, 0xF9, 0xFF, 0x1A, 0x09, 0x8E, 0x01, 0x3E, 0xAE, 0xCA, 0x79, 0xBF, 0x1F, 0xF9, 0x7E, 0x78, - 0x03, 0x7C, 0x0C, 0x08, 0x01, 0x4A, 0x02, 0x0C, 0x0F, 0x08, 0x01, 0x4A, 0x12, 0x0C, 0x09, 0x8E, - 0x02, 0x3E, 0x1E, 0xF9, 0x02, 0x08, 0x79, 0xCA, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, - 0x10, 0x0B, 0x00, 0x0B, 0x06, 0x0B, 0x81, 0x4C, 0x8C, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x06, 0x0B, - 0x81, 0x2C, 0x0C, 0x08, 0x04, 0x1C, 0x39, 0xBF, 0x0F, 0xF9, 0x80, 0x2A, 0x79, 0xAF, 0x0E, 0x08, - 0x04, 0x1C, 0x39, 0xBF, 0x0F, 0xF9, 0x40, 0x2A, 0x79, 0xAF, 0x39, 0x8E, 0x02, 0x3E, 0xE9, 0x9E, - 0xC9, 0xF9, 0xFF, 0x1A, 0x39, 0x8E, 0x01, 0x3E, 0x79, 0x9E, 0xF9, 0xF9, 0x00, 0x2B, 0x0D, 0x99, - 0x00, 0x2B, 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, - 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0x8C, 0x09, 0xBE, 0x1D, 0x89, 0x4C, 0x5A, 0x09, 0x9D, 0x3E, 0x89, - 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, 0xD9, 0x8D, 0xC9, 0x8D, - 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x1D, 0x8E, 0x0E, 0x3E, 0x79, 0xEE, 0x0D, 0x3E, 0x69, 0xEE, - 0x0C, 0x3E, 0x59, 0xEE, 0x0B, 0x3E, 0x49, 0xEE, 0x1D, 0x8E, 0x11, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, - 0x10, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x0F, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, - 0x06, 0x5A, 0x06, 0x2C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x05, 0x0B, 0x89, 0x5A, 0x05, 0x2C, - 0x01, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0x1D, 0x8E, 0x1F, 0x3E, 0x6E, 0xF9, - 0x00, 0x69, 0x59, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0x8E, 0x20, 0x3E, - 0xAE, 0xBF, 0x00, 0x6F, 0x00, 0x39, 0x1D, 0x8E, 0x13, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x12, 0x3E, - 0x00, 0x6E, 0x1D, 0x8E, 0x1A, 0x3E, 0x00, 0x6E, 0x00, 0x2B, 0x00, 0x79, 0x1D, 0x8E, 0x18, 0x3E, - 0x00, 0x6E, 0x00, 0x2B, 0x00, 0x69, 0x72, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, - 0x02, 0x3C, 0xE9, 0xF9, 0x05, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xDA, - 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x1B, 0x3E, - 0x6E, 0xE9, 0x3A, 0x8A, 0x79, 0xCA, 0x69, 0xBF, 0x6F, 0xF9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, - 0x4A, 0xCA, 0x79, 0xA9, 0x1D, 0x8E, 0x10, 0x3E, 0x6E, 0xF9, 0x09, 0x5C, 0x1D, 0x8E, 0x10, 0x3E, - 0x01, 0x6E, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, 0x79, 0xEE, 0x45, 0x0C, 0x1D, 0x8E, - 0x11, 0x3E, 0x6E, 0xF9, 0x41, 0x5C, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xB9, 0x3D, 0x00, 0x2B, 0x79, 0x99, 0x1D, 0x8E, 0x0F, 0x3E, - 0x6E, 0xF9, 0x4B, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, - 0xAA, 0x8A, 0xBA, 0x8A, 0xEA, 0x8A, 0xFA, 0x8A, 0x09, 0x08, 0x79, 0xDA, 0x12, 0x6C, 0x1D, 0x8E, - 0x10, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, - 0xAE, 0xDA, 0x02, 0x4A, 0xEA, 0x8A, 0x1D, 0x8E, 0x0F, 0x3E, 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xFE, - 0x08, 0x0C, 0x1D, 0x8E, 0x10, 0x3E, 0x01, 0x6E, 0x29, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0F, 0x3E, - 0x79, 0xEE, 0x1D, 0x8E, 0x10, 0x3E, 0x6E, 0xF9, 0x05, 0x5A, 0x06, 0x2C, 0xE9, 0xF9, 0x03, 0x5A, - 0x1D, 0x8E, 0x11, 0x3E, 0x79, 0xEE, 0x07, 0x0C, 0x0E, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0x1D, 0x8E, - 0x0D, 0x3E, 0xAE, 0xDA, 0x89, 0x2C, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x05, 0x5C, 0x01, 0x79, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x1B, 0x0C, 0x00, 0x2B, 0x03, 0x39, 0x1D, 0x8E, - 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x02, 0x3C, 0xE9, 0xF9, 0x05, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, - 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x0E, 0x3E, - 0x6E, 0xF9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xE9, 0x3A, 0x8A, 0x79, 0xCA, 0x69, 0xBF, 0x6F, 0xF9, - 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x4A, 0xCA, 0x79, 0xA9, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, - 0x04, 0x4A, 0xE9, 0xF8, 0x08, 0x7C, 0x1D, 0x8E, 0x13, 0x3E, 0x6E, 0xF9, 0x02, 0x4A, 0xAA, 0x8A, - 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0xB9, 0x1D, 0x8E, 0x11, 0x3E, 0x6E, 0xF9, 0x03, 0x4A, 0xE9, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x0C, 0x6C, 0x39, 0xF9, 0x4A, 0xCA, 0x01, 0x0B, 0x80, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, - 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x05, 0x6C, - 0x08, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x64, 0x0C, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7A, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x07, 0x2C, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x10, 0x0B, - 0x00, 0x0B, 0x0D, 0x0B, 0x87, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0x99, 0x39, 0xF9, - 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x79, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x09, 0x08, 0x79, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x07, 0x2C, 0x1D, 0x8E, 0x14, 0x3E, 0x00, 0x6E, 0x10, 0x0B, - 0x00, 0x0B, 0x0D, 0x0B, 0x87, 0x0C, 0x1D, 0x8E, 0x3A, 0x3E, 0x39, 0xCE, 0x1D, 0x8E, 0x38, 0x3E, - 0x29, 0xCE, 0x1D, 0x8E, 0x19, 0x3E, 0xF9, 0xEE, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x00, 0x2B, 0x79, 0xC9, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, - 0x00, 0x2B, 0x19, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x09, 0x0B, 0xB5, 0x0C, - 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, - 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, - 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, - 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, - 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, - 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, - 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, - 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, - 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, - 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, - 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x08, 0x0B, 0xF0, 0x2C, 0x1D, 0x8E, 0x17, 0x3E, 0xC9, 0xEE, - 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, - 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x0A, 0x0B, 0xE7, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, - 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, - 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, - 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, - 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, - 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, - 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, - 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, - 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, - 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, - 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, - 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, - 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, - 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, - 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, - 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x22, 0x2C, 0x1D, 0x8E, - 0x16, 0x3E, 0xC9, 0xEE, 0x00, 0x2B, 0x01, 0x39, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, - 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, - 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, - 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, 0x00, 0x2B, - 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x0A, 0x0C, 0x1D, 0x8E, 0x0B, 0x3E, 0x6E, 0xF9, - 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, 0x0D, 0x3E, 0x6E, 0xF9, - 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, 0x1B, 0x3E, 0x79, 0xEE, - 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, 0x1B, 0x3E, 0x6E, 0xD9, - 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, 0x2A, 0x8A, 0x07, 0x08, - 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, - 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x80, 0x4A, - 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, - 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, - 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, - 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, 0x00, 0x2B, 0x19, 0xA9, - 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x1F, 0xF9, 0xD9, 0xDA, - 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x10, 0x0B, 0x00, 0x0B, - 0x0B, 0x0B, 0x45, 0x2C, 0x1D, 0x8E, 0x15, 0x3E, 0xC9, 0xEE, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, - 0x79, 0xB9, 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, - 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xC9, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, - 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x4A, 0xCA, 0x00, 0x2B, - 0x79, 0xA9, 0x00, 0x2B, 0x01, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x0D, 0x0B, 0x3C, 0x0C, 0x1D, 0x8E, - 0x0B, 0x3E, 0x6E, 0xF9, 0x01, 0x78, 0x03, 0x3C, 0xE9, 0xF9, 0xD9, 0xCA, 0x08, 0x0C, 0x1D, 0x8E, - 0x0D, 0x3E, 0x6E, 0xF9, 0x01, 0x5A, 0xE9, 0xE9, 0xD9, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x1D, 0x8E, - 0x1B, 0x3E, 0x79, 0xEE, 0xA9, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0E, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, - 0x1B, 0x3E, 0x6E, 0xD9, 0x3A, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x6F, 0xE9, 0x4A, 0xCA, 0x3A, 0x8A, - 0x2A, 0x8A, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xA9, 0xF9, 0x87, 0x06, 0x6C, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x7C, 0x3F, 0x1F, 0xF9, 0x17, 0x5C, 0x39, 0xF9, 0x4A, 0xCA, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x78, 0x3F, 0x1F, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x80, 0x4A, 0xBA, 0x8A, 0xBA, 0x8A, 0x29, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, - 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x48, 0x2C, 0x29, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, 0x39, 0xD9, 0x4A, 0xCA, - 0x06, 0x08, 0x59, 0xDA, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x05, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x0C, 0x08, 0x79, 0xCA, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x2A, 0x8A, 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xAA, 0x3D, 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, - 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, - 0x07, 0x08, 0x04, 0x4A, 0xAA, 0x8A, 0xEA, 0x8A, 0x4A, 0xCA, 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, - 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x0F, 0x08, 0x01, 0x4A, 0x19, 0xF9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x4A, 0xCA, 0x00, 0x2B, 0x79, 0xA9, 0x36, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, - 0x07, 0x08, 0x69, 0xDA, 0x29, 0xE9, 0x4A, 0xCA, 0x39, 0xD9, 0x4A, 0xCA, 0x06, 0x08, 0x59, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0xAA, 0x8A, 0x0C, 0x08, 0x79, 0xCA, - 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, 0x69, 0x89, - 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, 0x4A, 0xCA, - 0x79, 0x99, 0x19, 0xF9, 0x4A, 0xCA, 0x03, 0x08, 0x79, 0xCA, 0x4A, 0xCA, 0x00, 0x2B, 0x00, 0x79, - 0x00, 0x2B, 0x19, 0xA9, 0x0D, 0x08, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, - 0x1F, 0xF9, 0xD9, 0xDA, 0x09, 0x2C, 0xE9, 0xF9, 0xD9, 0xCA, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, - 0x10, 0x0B, 0x00, 0x0B, 0x0C, 0x0B, 0x77, 0x2C, 0x1D, 0x8E, 0x3A, 0x3E, 0x4E, 0xF9, 0x79, 0xB9, - 0x1D, 0x8E, 0x38, 0x3E, 0x4E, 0xF9, 0x79, 0xA9, 0x1D, 0x8E, 0x19, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0xF9, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x1D, 0x8E, 0x15, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, - 0x08, 0x6C, 0x1D, 0x8E, 0x15, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, - 0x00, 0x6E, 0x1D, 0x8E, 0x16, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, 0x0A, 0x6C, 0x1D, 0x8E, 0x16, 0x3E, - 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, 0x01, 0x6E, 0x00, 0x2B, 0x03, 0x39, - 0x1D, 0x8E, 0x17, 0x3E, 0x6E, 0xF9, 0xC9, 0xDA, 0x0A, 0x6C, 0x1D, 0x8E, 0x17, 0x3E, 0x6E, 0xF9, - 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x14, 0x3E, 0x00, 0x6E, 0x00, 0x2B, 0x03, 0x39, 0x1D, 0x8E, - 0x14, 0x3E, 0x6E, 0xF9, 0x56, 0x1C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x2A, 0x8A, - 0x79, 0xCA, 0x2A, 0x8A, 0x69, 0xF9, 0x05, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, - 0x07, 0x08, 0x4A, 0xCA, 0x79, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, - 0x69, 0xDA, 0xB9, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x04, 0x4A, - 0xAA, 0x8A, 0xEA, 0x8A, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xB9, - 0xF9, 0x87, 0x26, 0x6C, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xF9, 0x07, 0x1A, 0x01, 0x69, - 0x07, 0x08, 0x04, 0x1C, 0x79, 0xED, 0x06, 0x08, 0x2A, 0x8A, 0xFD, 0x4D, 0x1D, 0x8E, 0x14, 0x3E, - 0x69, 0xEE, 0x1D, 0x8E, 0x14, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x1F, 0x3E, 0x6E, 0xE9, 0x1D, 0x8E, - 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xD9, 0xAA, 0x8A, 0xEA, 0x8A, 0x69, 0xCA, 0x59, 0xBF, 0x0F, 0xE9, - 0x79, 0xAA, 0x69, 0xAF, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x9F, 0xF9, 0x01, 0x4A, 0x79, 0xFF, - 0x0F, 0x08, 0x01, 0x4A, 0x1D, 0x8E, 0x18, 0x3E, 0x00, 0x6E, 0x1D, 0x8E, 0x1A, 0x3E, 0x01, 0x6E, - 0x2A, 0x0C, 0x29, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x79, 0xCA, 0xFA, 0x8A, 0x4A, 0xCA, - 0x69, 0x89, 0x09, 0xF9, 0x4A, 0xCA, 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xDA, 0xB9, 0xE9, - 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x02, 0x4A, 0xAA, 0x8A, 0xFA, 0x8A, - 0x39, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x4A, 0xCA, 0x79, 0xB9, 0x1D, 0x8E, 0x20, 0x3E, - 0xAE, 0xBF, 0x9F, 0xF9, 0x01, 0x4A, 0x79, 0xFF, 0x00, 0x2B, 0x00, 0x79, 0x1D, 0x8E, 0x18, 0x3E, - 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x01, 0x0C, 0x29, 0xB9, 0x39, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, - 0x13, 0x3E, 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xFE, 0x1D, 0x8E, 0x12, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, - 0x79, 0xFE, 0x0E, 0x08, 0x01, 0x4A, 0xE9, 0xF9, 0x1D, 0x8E, 0x0D, 0x3E, 0xAE, 0xDA, 0x19, 0x6C, - 0x1D, 0x8E, 0x0C, 0x3E, 0xAE, 0x8E, 0x02, 0x3E, 0x1E, 0xF9, 0x2A, 0x8A, 0x02, 0x5A, 0x1D, 0x8E, - 0x18, 0x3E, 0xAE, 0xDA, 0x04, 0x6C, 0x1D, 0x8E, 0x1A, 0x3E, 0x6E, 0xF9, 0x0A, 0x5C, 0x1D, 0x8E, - 0x20, 0x3E, 0xAE, 0xBF, 0x6F, 0xF9, 0x02, 0x0B, 0xBC, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x08, 0x0B, - 0x15, 0x2C, 0x1D, 0x8E, 0x20, 0x3E, 0xAE, 0xBF, 0x9F, 0xF9, 0x08, 0x4A, 0x79, 0xFF, 0x1D, 0x8E, - 0x13, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, 0x12, 0x3E, 0x6E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x79, 0xE9, 0x09, 0x0B, 0x89, 0x0B, 0x68, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xAA, 0x3D, 0x50, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x1D, 0x8E, 0x0C, 0x3E, - 0xAE, 0x8E, 0x03, 0x3E, 0x1E, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x1D, 0x8E, - 0x21, 0x3E, 0xAE, 0xBF, 0x79, 0xEF, 0x00, 0x79, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, 0x0D, 0xA9, - 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, 0x0D, 0xE9, - 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x09, 0xBE, 0x1D, 0x89, - 0x4C, 0x4A, 0x09, 0x9D, 0x3E, 0x89, 0x0D, 0x8C, 0x09, 0xBE, 0x1D, 0x89, 0x17, 0x0B, 0xC4, 0x5A, - 0x09, 0x9D, 0x3E, 0x89, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, - 0xD9, 0x8D, 0xC9, 0x8D, 0xB9, 0x8D, 0xA9, 0x8D, 0x99, 0x8D, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, - 0x79, 0xEE, 0x05, 0x0B, 0xF7, 0x3E, 0x69, 0xEE, 0x05, 0x0B, 0xF6, 0x3E, 0x59, 0xEE, 0x49, 0xB9, - 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, 0x6E, 0xF9, 0x06, 0x1C, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, - 0x6E, 0xF9, 0x04, 0x5A, 0x11, 0x2C, 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0xFF, 0x1E, 0x39, 0xBF, 0x10, 0x1F, 0x00, 0x79, - 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x71, 0x0C, 0x1D, 0x8E, 0x05, 0x0B, 0xF8, 0x3E, 0x6E, 0xF9, - 0x01, 0x5A, 0x00, 0x2B, 0x79, 0xC9, 0x1D, 0x8E, 0x05, 0x0B, 0xF6, 0x3E, 0x6E, 0xF9, 0x1D, 0x8E, - 0x05, 0x0B, 0xFB, 0x3E, 0x79, 0xEE, 0x1D, 0x8E, 0x05, 0x0B, 0xF7, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, - 0x79, 0x99, 0x1D, 0x8E, 0x05, 0x0B, 0xF7, 0x3E, 0x6E, 0xF9, 0x00, 0x2B, 0x79, 0xA9, 0x1D, 0x8E, - 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xF9, 0x1B, 0x5C, 0x39, 0xF9, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x01, 0x0B, 0xCE, 0x79, 0x00, 0x69, - 0x32, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0xFF, 0x1E, - 0x39, 0xBF, 0x01, 0x1F, 0x00, 0x79, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x71, 0x0C, 0x00, 0x2B, - 0x00, 0x69, 0x1D, 0xF9, 0x16, 0x0B, 0xE4, 0x4A, 0x00, 0x69, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, - 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0xF9, 0x16, 0x0B, 0xE6, 0x4A, 0x79, 0xBF, 0xFF, 0x1F, 0x1D, 0xF9, - 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0xBF, 0x06, 0x1F, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x00, 0x69, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x1D, 0xF9, 0x16, 0x0B, 0x4E, 0x4A, - 0x79, 0xBF, 0xFF, 0x1F, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x06, 0x1F, 0x39, 0xF9, - 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, - 0x00, 0x2B, 0x00, 0x39, 0x0B, 0x08, 0x06, 0x5C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, - 0x05, 0x1F, 0x05, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x7B, 0x3F, 0x0B, 0x1F, 0x00, 0x2B, - 0x00, 0x79, 0x0F, 0x08, 0x01, 0x78, 0x16, 0x7C, 0x1D, 0xF9, 0x17, 0x0B, 0xEC, 0x4A, 0x79, 0x8D, - 0x99, 0xF9, 0x1D, 0x8E, 0x05, 0x0B, 0xFC, 0x3E, 0x6E, 0xE9, 0x04, 0x59, 0x1D, 0xC9, 0x30, 0x4A, - 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0x0D, 0x3D, 0x0D, 0xA8, 0x1D, 0xF9, 0x2C, 0x4A, 0x00, 0x2B, - 0x79, 0xA9, 0x18, 0x0C, 0x0F, 0x08, 0x02, 0x78, 0x15, 0x7C, 0x1D, 0xF9, 0x17, 0x0B, 0xEC, 0x4A, - 0x79, 0x8D, 0x99, 0xF9, 0x1D, 0x8E, 0x05, 0x0B, 0xFC, 0x3E, 0x6E, 0xE9, 0x06, 0x59, 0x1D, 0xC9, - 0x30, 0x4A, 0x10, 0x0B, 0x00, 0x0B, 0x04, 0x0B, 0x0D, 0x3D, 0x0D, 0xA8, 0x1D, 0xF9, 0x2C, 0x4A, - 0x00, 0x2B, 0x79, 0xA9, 0x00, 0x29, 0x1D, 0xF9, 0x17, 0x0B, 0xE4, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, - 0x17, 0x0B, 0xEC, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x84, 0x4A, 0x79, 0x8D, 0xA9, 0xF9, - 0x1D, 0x8E, 0x05, 0x0B, 0xFE, 0x3E, 0x6E, 0xE9, 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x29, 0xC9, 0x10, 0x0B, 0x00, 0x0B, 0x07, 0x0B, 0x3B, 0x3D, - 0x0D, 0xA8, 0x0D, 0xA8, 0x0D, 0xA8, 0x07, 0x08, 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x55, 0x5C, - 0x00, 0x19, 0x1D, 0xF9, 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x80, 0x4A, - 0x1D, 0x8E, 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xE9, 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x19, 0xC9, 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xE1, 0x3D, - 0x0D, 0xA8, 0x00, 0x2B, 0x79, 0xD9, 0x29, 0xF9, 0x19, 0xBA, 0xFF, 0x1A, 0x1D, 0xE9, 0x16, 0x0B, - 0xE7, 0x4A, 0x69, 0xBF, 0x79, 0x9F, 0x1D, 0x8E, 0x05, 0x0B, 0xF9, 0x3E, 0x6E, 0xF9, 0x4A, 0xCA, - 0x1D, 0x8E, 0x0B, 0x0B, 0x75, 0x3E, 0x79, 0xCE, 0x01, 0x19, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, - 0x79, 0x8D, 0x1D, 0xF9, 0x17, 0x0B, 0x80, 0x4A, 0x1D, 0x8E, 0x05, 0x0B, 0xFB, 0x3E, 0x6E, 0xE9, - 0xC9, 0xD9, 0x3A, 0x8A, 0x2A, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x2E, 0x0B, 0x80, 0x4A, 0x19, 0xC9, - 0x10, 0x0B, 0x00, 0x0B, 0x05, 0x0B, 0xE1, 0x3D, 0x0D, 0xA8, 0x79, 0x89, 0x29, 0xF9, 0x19, 0xBA, - 0xFF, 0x1A, 0x1D, 0xE9, 0x16, 0x0B, 0x4F, 0x4A, 0x69, 0xBF, 0x79, 0x9F, 0x1D, 0x8E, 0x05, 0x0B, - 0xF9, 0x3E, 0x6E, 0xF9, 0x4A, 0xCA, 0x1D, 0x8E, 0x0B, 0x0B, 0x29, 0x3E, 0x79, 0xCE, 0x1D, 0xF9, - 0x16, 0x0B, 0xE4, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x3C, 0x5C, 0xD9, 0xF9, 0x03, 0x5A, 0x39, 0x2C, - 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x24, 0x5C, 0x09, 0xF9, 0x03, 0x5A, - 0x21, 0x2C, 0xD9, 0xF9, 0x09, 0xDA, 0x0F, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, - 0x4A, 0xCA, 0x6F, 0x0C, 0x0E, 0x0C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, - 0x60, 0x0C, 0x0E, 0x0C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x51, 0x0C, - 0x34, 0x0C, 0x1D, 0xF9, 0x16, 0x0B, 0x4C, 0x4A, 0x79, 0xBF, 0x1F, 0xF9, 0x12, 0x5C, 0x09, 0xF9, - 0x03, 0x5A, 0x0F, 0x2C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x39, 0x0C, - 0x1C, 0x0C, 0xE9, 0xF9, 0x09, 0xDA, 0x0B, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0x4C, 0x4A, - 0x96, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x00, 0x2B, 0x09, 0xE9, 0xE9, 0xF9, - 0xD9, 0xDA, 0x0B, 0x6C, 0x39, 0xF9, 0x1D, 0xE9, 0x16, 0x0B, 0xE4, 0x4A, 0x96, 0x59, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0xD0, 0x3D, 0x00, 0x2B, 0xD9, 0xE9, 0x02, 0x08, 0x01, 0x4A, 0x29, 0xF9, - 0x02, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x63, 0x2C, 0x0F, 0x08, 0x01, 0x4A, 0xF9, 0xF9, - 0x03, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x31, 0x2C, 0x0B, 0x08, 0x01, 0x4A, 0xB9, 0xF9, - 0x02, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x0F, 0x0B, 0x22, 0x2C, 0x39, 0x8E, 0x02, 0x3E, 0x4E, 0xF9, - 0x4A, 0xCA, 0x00, 0x2B, 0x0D, 0x99, 0x00, 0x2B, 0x0D, 0xA9, 0x00, 0x2B, 0x0D, 0xB9, 0x00, 0x2B, - 0x0D, 0xC9, 0x00, 0x2B, 0x0D, 0xD9, 0x00, 0x2B, 0x0D, 0xE9, 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, - 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x09, 0xBE, 0x1D, 0x89, 0x17, 0x0B, 0xC4, 0x4A, 0x09, 0x9D, - 0x3E, 0x89, 0x0D, 0x8C, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0xF9, 0x8D, 0xE9, 0x8D, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x10, 0x0B, 0x00, 0x0B, - 0x11, 0x0B, 0x84, 0x7C, 0x00, 0x39, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, - 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x00, 0x69, 0x96, 0x59, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xC2, 0x3D, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, - 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0E, 0x4A, 0x79, 0xBF, - 0xFF, 0x1F, 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, - 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x79, 0xBF, 0x10, 0x1F, 0x20, 0x0B, 0x00, 0x0B, - 0x2F, 0x0B, 0x44, 0x79, 0x00, 0x69, 0x16, 0x0B, 0x24, 0x59, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, - 0xC2, 0x3D, 0x03, 0x08, 0x10, 0x1C, 0x01, 0x78, 0x07, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, - 0xEE, 0x3F, 0x4F, 0xF9, 0x4A, 0xCA, 0x06, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x56, 0x3F, - 0x4F, 0xF9, 0x4A, 0xCA, 0x06, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xBE, 0x3F, 0x4F, 0xF9, - 0x4A, 0xCA, 0x79, 0x99, 0x03, 0x08, 0x0C, 0x1C, 0x01, 0x78, 0x05, 0x3C, 0x20, 0x0B, 0x00, 0x0B, - 0x45, 0x0B, 0x68, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x5B, 0x0B, 0x88, 0x79, 0x04, 0x0C, - 0x20, 0x0B, 0x00, 0x0B, 0x63, 0x0B, 0x70, 0x79, 0x79, 0x89, 0x03, 0x08, 0x0C, 0x1C, 0x01, 0x78, - 0x05, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x79, 0x0B, 0x90, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, - 0x84, 0x0B, 0xA0, 0x79, 0x04, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x79, 0x00, 0x2B, - 0x79, 0xE9, 0x19, 0xF9, 0x10, 0x5A, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0x49, 0x2C, 0x00, 0x29, - 0x36, 0x0C, 0x29, 0xF9, 0x3A, 0x8A, 0x09, 0xCA, 0x79, 0x8E, 0x01, 0x3E, 0x6E, 0xF9, 0x29, 0xE9, - 0x3A, 0x8A, 0x09, 0xCA, 0x69, 0xBF, 0x07, 0x08, 0x9F, 0xDA, 0x02, 0x0B, 0x71, 0x69, 0x10, 0x0B, - 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x12, 0x0B, 0x4F, 0x4A, 0x24, 0x0B, 0x9F, 0x69, - 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0xAA, 0x3D, 0x00, 0x2B, 0x79, 0xF9, 0x29, 0xF9, 0x2A, 0x8A, - 0xE9, 0xCA, 0x79, 0x8E, 0x01, 0x3E, 0x4E, 0xF9, 0x4A, 0xCA, 0x4A, 0xCA, 0x8A, 0xCA, 0xFF, 0x2B, - 0xFF, 0x0A, 0xF9, 0xE9, 0x4A, 0xCA, 0x07, 0x08, 0x69, 0xCA, 0x29, 0xE9, 0x3A, 0x8A, 0x20, 0x0B, - 0x00, 0x0B, 0x2F, 0x0B, 0x48, 0x4A, 0x69, 0xBF, 0x79, 0xEF, 0x02, 0x08, 0x01, 0x4A, 0x29, 0xF9, - 0x19, 0xE9, 0x01, 0x5A, 0x07, 0x08, 0x69, 0xDA, 0x48, 0xE7, 0x48, 0x8A, 0x2A, 0xBA, 0xC1, 0x2C, - 0x19, 0xF9, 0x01, 0x5A, 0x4A, 0xCA, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, 0x44, 0x3F, 0x79, 0xCF, - 0x39, 0xF9, 0x96, 0x69, 0x10, 0x0B, 0x00, 0x0B, 0x02, 0x0B, 0x37, 0x3D, 0x07, 0x08, 0x20, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x0C, 0x4A, 0x79, 0xC9, 0x39, 0xF9, 0x01, 0x4A, 0x20, 0x0B, 0x00, 0x0B, - 0x2F, 0x0B, 0x48, 0x69, 0x20, 0x0B, 0x00, 0x0B, 0x2F, 0x0B, 0x44, 0x3F, 0x4F, 0xD9, 0x4A, 0xCA, - 0x10, 0x0B, 0x00, 0x0B, 0x0E, 0x0B, 0x7C, 0x3D, 0x03, 0x08, 0x01, 0x4A, 0x39, 0xF9, 0x03, 0x5A, - 0x10, 0x0B, 0x00, 0x0B, 0x10, 0x0B, 0x9B, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, - 0x6F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x6F, 0xE9, 0x4A, 0xCA, 0x8A, 0xCA, - 0x79, 0xAA, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x04, 0x3F, 0x69, 0xEF, 0x00, 0x2B, 0x0D, 0xE9, - 0x00, 0x2B, 0x0D, 0xF9, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x0D, 0x8C, 0x77, 0xA0, - 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, 0x9F, 0x89, 0x00, 0xCA, 0x09, 0xEF, 0x8D, 0x8C, - 0x3E, 0x8D, 0x0E, 0x8D, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x08, 0x3F, 0x20, 0x0B, 0x00, 0x0B, - 0x97, 0x0B, 0xEC, 0x0E, 0x00, 0x3E, 0x9F, 0xCE, 0x9F, 0xCE, 0x9F, 0xCE, 0x9F, 0x99, 0x9F, 0xCE, - 0x9F, 0xCE, 0x9F, 0xCE, 0x6F, 0xA9, 0x6F, 0xA8, 0x9F, 0xB9, 0x01, 0x0B, 0xC0, 0x2A, 0x39, 0xEF, - 0x00, 0x3E, 0x6E, 0xB9, 0x6E, 0xAA, 0x6E, 0xAA, 0xAE, 0xAA, 0x39, 0xEE, 0x19, 0xB9, 0x29, 0xAA, - 0xAE, 0xAA, 0x39, 0xEE, 0x00, 0x3E, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xE2, 0x3F, 0x8F, 0xB9, - 0x09, 0x5C, 0x01, 0x4F, 0x6E, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, 0x39, 0xEF, 0x19, 0xB9, 0x29, 0xCA, - 0x39, 0xCF, 0x6B, 0x0C, 0x01, 0x78, 0x16, 0x7C, 0x02, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, - 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x00, 0x5A, 0x6E, 0xEF, 0x8F, 0x89, 0x19, 0xCA, 0x29, 0xCA, - 0x09, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x00, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, - 0x39, 0xCF, 0x53, 0x0C, 0x02, 0x78, 0x12, 0x7C, 0x03, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, - 0x6E, 0xCA, 0x39, 0xEF, 0x8F, 0xB9, 0x19, 0xCA, 0x14, 0x0B, 0x00, 0x5A, 0x29, 0xCF, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x06, 0x3F, 0x00, 0x2B, 0x39, 0x8F, 0x3F, 0x0C, 0x03, 0x78, 0x18, 0x7C, - 0x04, 0x4F, 0x9F, 0xB9, 0x6E, 0xCA, 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, 0x00, 0x5A, 0x6E, 0x89, - 0x6E, 0xCA, 0x09, 0xEF, 0x8F, 0x89, 0x19, 0xCA, 0x29, 0xCA, 0x09, 0xCF, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x04, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, 0x4F, 0xA8, 0x39, 0xCF, 0x25, 0x0C, - 0x00, 0x4F, 0x6F, 0xB9, 0x6E, 0xCA, 0x6E, 0xCA, 0x6E, 0xCA, 0x1E, 0x0B, 0x00, 0x0B, 0x0A, 0x0B, - 0x00, 0x5A, 0x4F, 0x89, 0x19, 0xCA, 0x29, 0xCA, 0x14, 0x0B, 0x00, 0x5A, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x0A, 0x3F, 0x03, 0x08, 0x39, 0xCF, 0x8A, 0xCA, 0x39, 0xCF, 0x09, 0xCF, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x9F, 0xB9, 0x01, 0x6F, 0x07, 0x1C, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x18, 0x3F, 0x9F, 0xB9, 0x01, 0x2A, 0x39, 0xEF, 0x0D, 0x8E, 0x0D, 0xBE, 0x8D, 0x8C, - 0x27, 0xA0, 0x20, 0xE9, 0x07, 0x2B, 0x00, 0x0A, 0x07, 0x08, 0x07, 0x1A, 0x8A, 0x8A, 0x69, 0xAA, - 0x79, 0xA0, 0xA7, 0xA0, 0x0D, 0x8C, 0x00, 0x30, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, - 0x00, 0x6F, 0x0D, 0x8C, 0x30, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xDC, 0x3F, 0x9F, 0xE9, - 0x30, 0xD9, 0x79, 0xF8, 0xFD, 0x3C, 0x02, 0x6C, 0x30, 0xF9, 0x9F, 0xE9, 0x07, 0x08, 0x69, 0xCA, - 0x0D, 0x8C, 0x79, 0x8D, 0xEF, 0x3D, 0x0D, 0xC9, 0x79, 0xCA, 0xEC, 0x3D, 0x49, 0xDA, 0xFD, 0x4C, - 0x0D, 0x8C, 0x29, 0x8D, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x9F, 0xF9, 0x01, 0x4A, - 0x79, 0xEF, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x80, 0x0A, 0x79, 0xCE, 0x79, 0xD7, 0x07, 0x2C, - 0x20, 0x2A, 0xA7, 0x3E, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x0C, 0x4C, 0x3E, - 0xAE, 0xBF, 0x7F, 0xA8, 0x7F, 0xF9, 0x6F, 0xDA, 0x79, 0xA9, 0xA7, 0x3E, 0x9E, 0xE7, 0x09, 0x2C, - 0x9E, 0xF9, 0x40, 0x2A, 0x79, 0xCE, 0x4E, 0x3E, 0x29, 0xEE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, - 0x9D, 0x0C, 0x9E, 0xB7, 0x76, 0x2C, 0x4E, 0x3E, 0xAE, 0xE9, 0x29, 0xCA, 0x2A, 0x8A, 0x29, 0xF9, - 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x21, 0x02, 0x79, 0x92, 0x0D, 0x22, 0x06, 0x08, - 0x32, 0xDA, 0x34, 0x2C, 0xA6, 0x3E, 0x9E, 0xF9, 0x01, 0x4A, 0x79, 0xDE, 0x29, 0xF9, 0x4E, 0x3E, - 0xAE, 0xDA, 0x02, 0x4A, 0xEA, 0x8A, 0xAE, 0xCA, 0x79, 0xFE, 0x4B, 0x3E, 0x6E, 0xBF, 0x5F, 0xA8, - 0x5F, 0xF9, 0x4F, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x9E, 0x3E, 0x21, 0x02, 0x4E, 0x92, - 0x79, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x9E, 0xCA, 0x9E, 0xCA, - 0x9E, 0xCA, 0x02, 0x4A, 0xEA, 0x8A, 0x79, 0xCE, 0x9E, 0xF8, 0x02, 0x6C, 0x5E, 0xF9, 0x79, 0xCE, - 0xA6, 0x3E, 0x4E, 0xF9, 0x08, 0x5A, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x4C, 0x9E, 0xF9, - 0x08, 0x2A, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9D, 0x0C, 0xA6, 0x3E, 0x4E, 0xC9, - 0x01, 0x4A, 0x4B, 0x3E, 0xAE, 0xD9, 0x04, 0x5A, 0x59, 0xBF, 0x59, 0xF9, 0x49, 0xDA, 0x49, 0xDA, - 0x4F, 0xD9, 0x4F, 0xE9, 0x79, 0xBF, 0x59, 0xCF, 0x69, 0xCF, 0x3F, 0xEE, 0xAE, 0xD9, 0x08, 0x5A, - 0x59, 0xBF, 0x59, 0xF9, 0x49, 0xDA, 0x49, 0xDA, 0x49, 0xDA, 0x49, 0xDA, 0x6F, 0xD9, 0x6F, 0xE9, - 0x79, 0xBF, 0x59, 0xEF, 0x69, 0xEF, 0x3F, 0xEE, 0xA6, 0x3E, 0x00, 0x4E, 0x4E, 0x3E, 0x29, 0xEE, - 0xA4, 0x3E, 0x5E, 0xF9, 0x4E, 0xDA, 0xB0, 0x3E, 0x21, 0x02, 0x79, 0x92, 0x9E, 0xA2, 0x80, 0x79, - 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x79, 0xCE, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, - 0x9D, 0x0C, 0x4E, 0x3E, 0xAE, 0xE9, 0x29, 0xCA, 0x29, 0xF9, 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, - 0x9A, 0x8A, 0x3A, 0x8A, 0x2A, 0x8A, 0x69, 0xDA, 0x07, 0x6C, 0x29, 0xF9, 0xAE, 0xDA, 0x02, 0x4A, - 0xEA, 0x8A, 0xAE, 0xCA, 0x79, 0xEE, 0x15, 0x0C, 0x29, 0xE9, 0x2A, 0x8A, 0xAE, 0xCA, 0x29, 0xF9, - 0x2A, 0x8A, 0xAE, 0xDA, 0x48, 0xE7, 0x01, 0x6C, 0x9A, 0x8A, 0x3A, 0x8A, 0x2A, 0x8A, 0x69, 0xDA, - 0x08, 0x6C, 0x29, 0xF9, 0x2A, 0x8A, 0xAE, 0xDA, 0x04, 0x4A, 0xEA, 0x8A, 0xFA, 0x8A, 0xAE, 0xCA, - 0x79, 0xEE, 0x4E, 0x3E, 0xAE, 0xF9, 0xAE, 0x3E, 0x5E, 0xF8, 0x02, 0x6C, 0x00, 0x49, 0x09, 0x0C, - 0x5E, 0xF8, 0x02, 0x6C, 0x01, 0x49, 0x05, 0x0C, 0x5E, 0xF8, 0x02, 0x6C, 0x02, 0x49, 0x01, 0x0C, - 0x03, 0x49, 0x8A, 0x3E, 0x9E, 0xF9, 0x49, 0xF8, 0x13, 0x6C, 0x01, 0x4A, 0x79, 0xC9, 0xA1, 0x3E, - 0x21, 0x02, 0xC6, 0x12, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, - 0xC6, 0x12, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x14, 0x0C, - 0x13, 0x3C, 0x01, 0x5A, 0x79, 0xC9, 0xA1, 0x3E, 0x21, 0x02, 0x01, 0x0B, 0x4B, 0x12, 0x9E, 0xA2, - 0x80, 0x79, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x12, 0x92, 0x9E, 0xA2, 0x80, 0x79, - 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x79, 0xCE, 0x8A, 0x3E, 0x49, 0xCE, 0x49, 0xF9, 0x8C, 0x4A, - 0x79, 0xBE, 0x4E, 0xF9, 0x89, 0x3E, 0x79, 0xCE, 0x49, 0xF9, 0xA8, 0x4A, 0x79, 0xBE, 0x4E, 0xF9, - 0x9E, 0x3E, 0x79, 0xCE, 0x4B, 0x3E, 0xAE, 0xBF, 0x5F, 0xA8, 0x5F, 0xF9, 0x4F, 0xDA, 0x48, 0xE7, - 0x01, 0x6C, 0x9A, 0x8A, 0x9E, 0x3E, 0x21, 0x02, 0x79, 0x92, 0x9E, 0xA2, 0x80, 0x79, 0x32, 0xCA, - 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x9E, 0xCA, 0x9E, 0xCA, 0x9E, 0xCA, 0x02, 0x4A, 0xEA, 0x8A, - 0x79, 0xCE, 0x9E, 0xF8, 0x02, 0x6C, 0x5E, 0xE9, 0x69, 0xCE, 0x0D, 0xA9, 0x0D, 0x8C, 0x79, 0xD9, - 0xA7, 0x3E, 0x9E, 0xA7, 0x3A, 0x6C, 0xA0, 0x3E, 0x5E, 0xF9, 0x59, 0xF8, 0x2A, 0x2C, 0x9E, 0xF9, - 0x4B, 0x3E, 0xAE, 0xBF, 0x79, 0xCF, 0x3F, 0xEE, 0x4D, 0x3E, 0x7E, 0xF9, 0xAE, 0xBF, 0x79, 0xEF, - 0x3F, 0xEE, 0x4A, 0x3E, 0x79, 0xEE, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xDE, - 0x4D, 0x3E, 0x69, 0xEE, 0x9F, 0x3E, 0x59, 0xCE, 0xA1, 0x3E, 0x5E, 0xF9, 0x59, 0xCA, 0x79, 0xCE, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x05, 0x6C, 0x10, 0x0B, - 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x49, 0x0C, 0xA7, 0x3E, 0x9E, 0xF9, 0x80, 0x2A, 0x79, 0xDE, - 0x44, 0x0C, 0x9F, 0x3E, 0x9E, 0xF9, 0x59, 0xF8, 0x40, 0x6C, 0x59, 0xCE, 0x4D, 0x3E, 0x69, 0xEE, - 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xDA, 0x79, 0xCE, 0x38, 0x0C, 0x59, 0xF9, 0xA0, 0x3E, 0x5E, 0xF8, - 0x29, 0x2C, 0x9E, 0xF9, 0x4B, 0x3E, 0xAE, 0xBF, 0x79, 0xCF, 0x3F, 0xEE, 0x4D, 0x3E, 0x7E, 0xF9, - 0xAE, 0xBF, 0x79, 0xEF, 0x3F, 0xEE, 0x4A, 0x3E, 0x79, 0xEE, 0xA7, 0x3E, 0x9E, 0xF9, 0x04, 0x2A, - 0x79, 0xDE, 0x4D, 0x3E, 0x69, 0xEE, 0x9F, 0x3E, 0x59, 0xCE, 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xDA, - 0x79, 0xCE, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x05, 0x6C, - 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x10, 0x0C, 0xA7, 0x3E, 0x9E, 0xF9, 0x80, 0x2A, - 0x79, 0xDE, 0x0B, 0x0C, 0x59, 0xF9, 0x9F, 0x3E, 0x9E, 0xF8, 0x07, 0x6C, 0x59, 0xCE, 0x4D, 0x3E, - 0x69, 0xEE, 0x59, 0xF9, 0xA1, 0x3E, 0x5E, 0xCA, 0x79, 0xCE, 0xA7, 0x3E, 0x9E, 0xF7, 0x0B, 0x6C, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x20, 0x3F, 0x6F, 0xF9, 0x01, 0x78, 0x04, 0x6C, 0x10, 0x0B, - 0x00, 0x0B, 0x12, 0x0B, 0x71, 0x3D, 0x0D, 0x8C, 0x09, 0x8D, 0x69, 0x89, 0x59, 0x8E, 0x03, 0x3E, - 0xAE, 0xE9, 0x79, 0xCA, 0x69, 0xEE, 0x88, 0x3E, 0x9E, 0xD9, 0x01, 0x4A, 0x3F, 0x1A, 0x9E, 0xF9, - 0x04, 0x4A, 0x79, 0xBE, 0xAE, 0xF9, 0x69, 0xCA, 0x59, 0xE9, 0x04, 0x4A, 0x69, 0xBE, 0x79, 0xEE, - 0x88, 0x3E, 0x59, 0xCE, 0x59, 0xF9, 0x20, 0x5A, 0x3F, 0x1A, 0x79, 0xC9, 0x79, 0xD9, 0x9E, 0xCA, - 0x3F, 0x1A, 0x49, 0xF9, 0x9E, 0xDA, 0x3F, 0x1A, 0x04, 0x4A, 0x79, 0xBE, 0xAE, 0xE9, 0x59, 0xF9, - 0x04, 0x4A, 0x79, 0xBE, 0x06, 0x08, 0xAE, 0xCA, 0x49, 0xF9, 0x04, 0x4A, 0x79, 0xBE, 0x06, 0x08, - 0xAE, 0xDA, 0xAE, 0xDA, 0x8A, 0x3E, 0x9E, 0xF9, 0x90, 0x4A, 0x79, 0xBE, 0x21, 0x02, 0x69, 0x92, - 0x9E, 0xA2, 0x3A, 0xDA, 0x32, 0xF9, 0xBA, 0x8A, 0xBA, 0x8A, 0xBA, 0x8A, 0xFA, 0x8A, 0x79, 0xC9, - 0xA7, 0x3E, 0x9E, 0x87, 0x15, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x00, 0x6F, - 0x02, 0x3E, 0xAE, 0xF9, 0x01, 0x4A, 0x79, 0xFE, 0x42, 0x78, 0x6D, 0x2C, 0xA7, 0x3E, 0x9E, 0xF9, - 0x03, 0x2A, 0x79, 0xDE, 0x4A, 0x3E, 0x09, 0xEE, 0xA3, 0x3E, 0x49, 0xCE, 0x49, 0xCE, 0x63, 0x0C, - 0xA7, 0x3E, 0x9E, 0x97, 0x41, 0x6C, 0xA4, 0x3E, 0x9E, 0xF9, 0x49, 0xF8, 0x01, 0x6C, 0x49, 0xCE, - 0xA3, 0x3E, 0x49, 0xF9, 0x9E, 0xF8, 0x01, 0x6C, 0x49, 0xCE, 0x09, 0xE9, 0x4A, 0x3E, 0xAE, 0xDA, - 0x00, 0x3E, 0x9E, 0xF9, 0x69, 0xF8, 0x4F, 0x6C, 0xA7, 0x3E, 0x9E, 0xF9, 0x00, 0x2B, 0x02, 0x0A, - 0x79, 0xDE, 0xA4, 0x3E, 0x5E, 0xF9, 0x9E, 0xDA, 0xB2, 0x3E, 0x9E, 0xE9, 0x79, 0xF8, 0x05, 0x6C, - 0xA7, 0x3E, 0x9E, 0xF9, 0x10, 0x2A, 0x79, 0xDE, 0x3E, 0x0C, 0xB0, 0x3E, 0x21, 0x02, 0x79, 0x92, - 0x4E, 0xA2, 0x80, 0x69, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0x69, 0xD9, 0x12, 0x92, 0x4E, 0xA2, - 0x80, 0x69, 0x32, 0xCA, 0xBA, 0x8A, 0xBA, 0x8A, 0xA1, 0x3E, 0x59, 0xCE, 0x69, 0xCE, 0xA6, 0x3E, - 0x00, 0x4E, 0x9F, 0x3E, 0x49, 0xCE, 0x4D, 0x3E, 0x09, 0xEE, 0x4A, 0x3E, 0x09, 0xEE, 0xA4, 0x3E, - 0x9E, 0xF9, 0xA0, 0x3E, 0x79, 0xCE, 0x1F, 0x0C, 0xA7, 0x3E, 0x9E, 0xC7, 0x1C, 0x2C, 0x49, 0xF9, - 0x09, 0xE9, 0x10, 0x0B, 0x00, 0x0B, 0x13, 0x0B, 0x9F, 0x3D, 0xA7, 0x3E, 0x9E, 0xB7, 0x13, 0x6C, - 0x21, 0x02, 0x4E, 0x3E, 0xAE, 0x92, 0xB3, 0x3E, 0x9E, 0xA2, 0x4A, 0x3E, 0x09, 0xF9, 0xAE, 0xDA, - 0x32, 0xE9, 0x79, 0xF8, 0x04, 0x2C, 0x01, 0x3E, 0xAE, 0xE9, 0x79, 0xF8, 0x04, 0x6C, 0xA7, 0x3E, - 0x9E, 0xF9, 0x10, 0x2A, 0x79, 0xDE, 0x0D, 0x89, 0x0D, 0x8C, 0x20, 0x0B, 0x00, 0x0B, 0x00, 0x0B, - 0x04, 0x3F, 0x8F, 0xF9, 0xFE, 0x5C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x00, 0x6F, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x10, 0x0B, 0x00, 0x0B, 0x03, 0x0B, - 0xE8, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x16, 0x0B, 0x52, 0x3D, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, - 0x53, 0x3D, 0x99, 0x8D, 0x89, 0x8D, 0x39, 0x8D, 0x29, 0x8D, 0x19, 0x8D, 0x09, 0x8D, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x6F, 0xF9, 0xFA, 0x1C, 0x10, 0x0B, 0x00, 0x0B, 0x12, 0x0B, - 0x5A, 0x3D, 0x00, 0x2B, 0x79, 0x89, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xF8, 0x3F, 0x6F, 0xF9, - 0x8A, 0x8A, 0x0E, 0x0B, 0x00, 0x0B, 0x0E, 0x1A, 0x06, 0x0B, 0x00, 0x0B, 0x02, 0x78, 0x05, 0x7C, - 0x4F, 0xF9, 0x8A, 0x8A, 0x0E, 0x1A, 0x04, 0x78, 0x07, 0x3C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x18, 0x3F, 0x9F, 0xF9, 0x02, 0x2A, 0x79, 0xFF, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xF8, 0x3F, - 0x4F, 0xF9, 0x4F, 0xAA, 0x4F, 0xAA, 0xCA, 0xEA, 0x07, 0x6C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x18, 0x3F, 0x9F, 0xF9, 0x04, 0x2A, 0x79, 0xFF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, - 0x6F, 0xF9, 0x09, 0x1C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, 0x02, 0x6F, 0x10, 0x0B, - 0x00, 0x0B, 0x16, 0x0B, 0x1B, 0x0C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x00, 0x0E, 0x00, 0x3E, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x28, 0x3F, 0x3F, 0x89, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, - 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x4E, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, - 0x20, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x74, 0x19, 0x20, 0x0B, 0x00, 0x0B, - 0x95, 0x0B, 0x0C, 0x29, 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, 0xA4, 0x39, 0x10, 0x0B, 0x00, 0x0B, - 0x14, 0x2B, 0x24, 0x19, 0x09, 0x8E, 0x03, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0xBC, 0x5A, 0x29, 0xD9, - 0x99, 0xBD, 0x09, 0x8E, 0x07, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x29, 0xD9, 0x99, 0xBD, 0x09, 0x8E, - 0x00, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0xFC, 0x5A, 0x19, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x01, 0x3E, - 0x9E, 0xF9, 0x89, 0xE9, 0xFC, 0x5A, 0x39, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x02, 0x3E, 0x9E, 0xF9, - 0x89, 0xE9, 0x7E, 0x5A, 0x19, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x04, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, - 0x7E, 0x5A, 0x39, 0xD9, 0x99, 0xBD, 0x09, 0x8E, 0x05, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x19, 0xD9, - 0x99, 0xBD, 0x09, 0x8E, 0x06, 0x3E, 0x9E, 0xF9, 0x89, 0xE9, 0x39, 0xD9, 0x99, 0xBD, 0x20, 0x0B, - 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xC2, 0x19, - 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x5A, 0x29, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xF2, 0x39, - 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xA0, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x93, 0x0B, - 0xA4, 0x78, 0x04, 0x2C, 0x19, 0xBF, 0x8F, 0xF9, 0x10, 0x2A, 0x79, 0xDF, 0x20, 0x0B, 0x00, 0x0B, - 0x96, 0x0B, 0x38, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x78, 0x04, 0x2C, - 0x29, 0xBF, 0x8F, 0xF9, 0x10, 0x2A, 0x79, 0xDF, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xD0, 0x3F, - 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x84, 0x0B, 0xA0, 0x78, 0x04, 0x2C, 0x39, 0xBF, 0x8F, 0xF9, - 0x10, 0x2A, 0x79, 0xDF, 0x00, 0x49, 0x19, 0xBF, 0x8F, 0xB7, 0x0A, 0xFA, 0x8F, 0xC7, 0x1A, 0xFA, - 0x29, 0xBF, 0x8F, 0xB7, 0x2A, 0xFA, 0x8F, 0xC7, 0x3A, 0xFA, 0x39, 0xBF, 0x8F, 0xB7, 0x4A, 0xFA, - 0x8F, 0xC7, 0x5A, 0xFA, 0x49, 0xF9, 0x2A, 0x1A, 0x2A, 0x78, 0x28, 0x3C, 0x49, 0xF9, 0x1A, 0x1A, - 0x0A, 0x78, 0x24, 0x3C, 0x49, 0xF9, 0x26, 0x1A, 0x22, 0x78, 0x20, 0x3C, 0x49, 0xF9, 0x29, 0x1A, - 0x28, 0x78, 0x1C, 0x3C, 0x49, 0xF9, 0x16, 0x1A, 0x02, 0x78, 0x18, 0x3C, 0x49, 0xF9, 0x19, 0x1A, - 0x08, 0x78, 0x14, 0x3C, 0x49, 0xF9, 0x25, 0x1A, 0x20, 0x78, 0x89, 0xF9, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x24, 0x3F, 0x9F, 0xF8, 0x06, 0x2C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x1C, 0x3F, - 0x03, 0x6F, 0x09, 0x0C, 0x10, 0x0B, 0x00, 0x0B, 0x14, 0x0B, 0xFF, 0x0C, 0x20, 0x0B, 0x00, 0x0B, - 0x98, 0x0B, 0x1C, 0x3F, 0x01, 0x6F, 0x0D, 0x89, 0x0D, 0x99, 0x0D, 0xA9, 0x0D, 0xB9, 0x00, 0x2B, - 0x0D, 0x89, 0x00, 0x2B, 0x0D, 0x99, 0x68, 0x3D, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, 0xA0, 0x3F, - 0x9F, 0xF9, 0x20, 0x0B, 0x00, 0x0B, 0x88, 0x0B, 0x94, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, - 0x97, 0x0B, 0xBE, 0x3F, 0x79, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, 0x38, 0x3F, 0x9F, 0xF9, - 0x20, 0x0B, 0x00, 0x0B, 0x84, 0x0B, 0xA0, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x96, 0x0B, - 0x56, 0x3F, 0x79, 0xCF, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xD0, 0x3F, 0x9F, 0xF9, 0x20, 0x0B, - 0x00, 0x0B, 0x79, 0x0B, 0x90, 0x5A, 0xAA, 0x8A, 0x20, 0x0B, 0x00, 0x0B, 0x94, 0x0B, 0xEE, 0x3F, - 0x79, 0xCF, 0x0D, 0x8C, 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x10, 0x3F, 0x00, 0x6F, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x2B, 0x00, 0x0A, - 0x79, 0xFF, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x01, 0x2A, 0x00, 0x2B, - 0x79, 0x9F, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x04, 0x2A, 0x79, 0xEF, - 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x03, 0x0B, 0x00, 0x2A, 0x79, 0xFF, - 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, 0x9F, 0xF9, 0x00, 0x2B, 0x01, 0x0A, 0x79, 0xFF, - 0x20, 0x0B, 0x00, 0x0B, 0x98, 0x0B, 0x18, 0x3F, 0x00, 0x6F, 0x20, 0x0B, 0x00, 0x0B, 0x97, 0x0B, - 0xF8, 0x3F, 0x00, 0x6F, 0x00, 0x4F, 0x0D, 0x8C, 0x40, 0x0B, 0x02, 0x0B, 0xB0, 0x0B, 0x04, 0x3F, - 0x9F, 0xF9, 0x01, 0x2A, 0x00, 0x2B, 0x79, 0x9F, 0x00, 0x2B, 0x04, 0x0A, 0x79, 0xEF, 0x40, 0x0B, - 0x02, 0x0B, 0xB0, 0x0B, 0x0C, 0x3F, 0x9F, 0xF9, 0x03, 0x2B, 0x00, 0x0A, 0x79, 0xFF, 0x40, 0x0B, - 0x00, 0x0B, 0x00, 0x0B, 0x48, 0x3F, 0x9F, 0xF9, 0x02, 0x0B, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x2A, - 0x79, 0xFF, 0x0D, 0x8C, 0x00, 0x59, 0x20, 0x6D, 0x07, 0x08, 0x2A, 0x8A, 0x05, 0x08, 0x5A, 0x8A, - 0x69, 0xDA, 0x03, 0x6C, 0x69, 0xCA, 0xF8, 0x4D, 0x0D, 0x8C, 0x07, 0x08, 0x01, 0x4A, 0xF5, 0x4D, - 0x0D, 0x8C, 0x07, 0x08, 0xFB, 0xF8, 0x04, 0x2C, 0x79, 0xE9, 0x9A, 0x8A, 0x69, 0xF9, 0x00, 0x0C, - 0x0D, 0x8C, 0x00, 0x00, 0x05, 0x08, 0x0D, 0x9C, 0x79, 0xBF, 0xFF, 0x0B, 0xFF, 0x78, 0x04, 0x6C, - 0x59, 0xED, 0x69, 0x9F, 0xFE, 0x4D, 0x0D, 0x8C, 0x69, 0x9F, 0x01, 0x5A, 0xFD, 0x5C, 0x0D, 0x8C, - 0x05, 0x08, 0x0D, 0x9C, 0x00, 0x2B, 0x79, 0xDF, 0x69, 0xBF, 0xFF, 0x0B, 0xFF, 0x78, 0x05, 0x6C, - 0x59, 0xED, 0x00, 0x2B, 0x1F, 0xBF, 0xFD, 0x4D, 0x0D, 0x8C, 0x00, 0x2B, 0x1F, 0xBF, 0x01, 0x5A, - 0xFC, 0x5C, 0x0D, 0x8C, 0x87, 0x93, 0x03, 0x00, 0x46, 0xC3, 0x23, 0x00, 0x94, 0x88, 0x00, 0x20, - 0x70, 0x63, 0x00, 0x20, 0x70, 0x00, 0x70, 0x00, 0x88, 0x00, 0xA0, 0x00, 0x01, 0x00, 0x02, 0x00, - 0x06, 0x00, 0x0C, 0x00, 0xF0, 0xFF, 0xFC, 0x3F, 0x1C, 0x07, 0xC7, 0x01, 0x40, 0x17, 0xA0, 0x0B, - 0xA2, 0x03, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x00, 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, - 0x87, 0x93, 0x03, 0x00, 0x46, 0xC3, 0x23, 0x00, 0xA0, 0x84, 0x00, 0x20, 0x88, 0x5B, 0x00, 0x20, - 0x70, 0x00, 0x70, 0x00, 0x80, 0x00, 0x90, 0x00, 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, - 0xF0, 0xFF, 0xFC, 0x3F, 0x1C, 0x07, 0xC7, 0x01, 0xE1, 0x22, 0x70, 0x11, 0x23, 0x08, 0x00, 0x00, - 0x80, 0x01, 0xC0, 0x00, 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, 0x87, 0x93, 0x03, 0x00, - 0x46, 0xC3, 0x23, 0x00, 0x90, 0x79, 0x00, 0x20, 0x68, 0x45, 0x00, 0x20, 0x70, 0x00, 0x70, 0x00, - 0x88, 0x00, 0xA0, 0x00, 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, 0xF0, 0xFF, 0xFC, 0x3F, - 0x1C, 0x07, 0xC7, 0x01, 0x40, 0x17, 0xA0, 0x0B, 0xA2, 0x03, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x00, - 0x9F, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x02, 0x00, 0xB8, 0xD7, 0x9D, 0x05, 0x01, 0x00, 0x00, 0x00, - 0x45, 0x1F, 0x07, 0xD2, 0xC2, 0x2E, 0x00, 0x20, 0x0B, 0x1F, 0x05, 0x4B, 0xA1, 0x2E, 0x00, 0x20, - 0x0B, 0x1F, 0x05, 0xD2, 0xA1, 0x2E, 0x00, 0x20, 0x31, 0x33, 0x31, 0x32, 0x33, 0x31, 0x33, 0x32, - 0x00, 0x7E, 0x31, 0x32, 0x7E, 0x34, 0x7E, 0x7E, 0x37, 0x38, 0x7E, 0x7E, 0x3B, 0x7E, 0x3D, 0x3E, - 0x7E, 0x30, 0x7E, 0x7E, 0x33, 0x7E, 0x35, 0x36, 0x7E, 0x7E, 0x39, 0x3A, 0x7E, 0x3C, 0x7E, 0x7E, - 0x3F, 0x00, 0x7E, 0x21, 0x22, 0x7E, 0x24, 0x7E, 0x7E, 0x60, 0x28, 0x7E, 0x7E, 0x2B, 0x7E, 0x2D, - 0x2E, 0x7E, 0x30, 0x7E, 0x7E, 0x33, 0x7E, 0x35, 0x36, 0x7E, 0x7E, 0x39, 0x3A, 0x7E, 0x3C, 0x7E, - 0x7E, 0x3F, 0x40, 0x7E, 0x7E, 0x43, 0x7E, 0x45, 0x46, 0x7E, 0x7E, 0x49, 0x4A, 0x7E, 0x4C, 0x7E, - 0x7E, 0x4F, 0x7E, 0x51, 0x52, 0x7E, 0x54, 0x7E, 0x7E, 0x57, 0x58, 0x7E, 0x7E, 0x5B, 0x7E, 0x5D, - 0x5E, 0x7E, 0x20, 0x7E, 0x7E, 0x23, 0x7E, 0x25, 0x26, 0x7E, 0x7E, 0x29, 0x2A, 0x7E, 0x2C, 0x7E, - 0x7E, 0x2F, 0x7E, 0x31, 0x32, 0x7E, 0x34, 0x7E, 0x7E, 0x37, 0x38, 0x7E, 0x7E, 0x3B, 0x7E, 0x3D, - 0x3E, 0x7E, 0x7E, 0x41, 0x42, 0x7E, 0x44, 0x7E, 0x7E, 0x47, 0x48, 0x7E, 0x7E, 0x4B, 0x7E, 0x4D, - 0x4E, 0x7E, 0x50, 0x7E, 0x7E, 0x53, 0x7E, 0x55, 0x56, 0x7E, 0x7E, 0x59, 0x5A, 0x7E, 0x5C, 0x7E, - 0x7E, 0x5F, 0x00, - /* Below byte added to align 4 bytes */ - 0xFF -}; diff --git a/Examples/MAX32572/Makefile b/Examples/MAX32572/Makefile deleted file mode 100644 index 96cfcbe8ab0..00000000000 --- a/Examples/MAX32572/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: - @for DIR in ./* ; do $(MAKE) -C $$DIR; cp $$DIR/build/max32572.sbin $$DIR/build/$$DIR.sbin; done -clean: - @for DIR in ./* ; do $(MAKE) -C $$DIR clean; rm -rf $$DIR/build; done diff --git a/Examples/MAX32572/OTP_Dump/.cproject b/Examples/MAX32572/OTP_Dump/.cproject deleted file mode 100644 index f07c587409d..00000000000 --- a/Examples/MAX32572/OTP_Dump/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/OTP_Dump/.project b/Examples/MAX32572/OTP_Dump/.project deleted file mode 100644 index a2d6828f40e..00000000000 --- a/Examples/MAX32572/OTP_Dump/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - OTP_Dump - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/OTP_Dump/.vscode/c_cpp_properties.json b/Examples/MAX32572/OTP_Dump/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/OTP_Dump/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/OTP_Dump/.vscode/launch.json b/Examples/MAX32572/OTP_Dump/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/OTP_Dump/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/OTP_Dump/.vscode/settings.json b/Examples/MAX32572/OTP_Dump/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/OTP_Dump/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/OTP_Dump/.vscode/tasks.json b/Examples/MAX32572/OTP_Dump/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/OTP_Dump/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/OTP_Dump/Makefile b/Examples/MAX32572/OTP_Dump/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/OTP_Dump/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/OTP_Dump/OTP_Dump.launch b/Examples/MAX32572/OTP_Dump/OTP_Dump.launch deleted file mode 100644 index 6f9a7890a24..00000000000 --- a/Examples/MAX32572/OTP_Dump/OTP_Dump.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/OTP_Dump/README.md b/Examples/MAX32572/OTP_Dump/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/OTP_Dump/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/OTP_Dump/main.c b/Examples/MAX32572/OTP_Dump/main.c deleted file mode 100644 index d41cf90de50..00000000000 --- a/Examples/MAX32572/OTP_Dump/main.c +++ /dev/null @@ -1,161 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief OTP Dump Example - * @details This example demonstrate how to read/write data from OTP memory - * - */ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Definitions *****/ -/* - * Attention if you set WITH_WRITE_TEST flag - * This example will search OTP and try to find 0xffffffff data - * If it could be found 4 test bytes will be written in that address. - */ -#define WITH_WRITE_TEST 0 // set it to test write test - -// OTP Address -#define OTP_MAXIM_AREA MXC_INFO0_MEM_BASE -#define OTP_MAXIM_AREA_SIZE MXC_INFO_MEM_SIZE - -#define OTP_USER_AREA MXC_INFO1_MEM_BASE -#define OTP_USER_AREA_SIZE MXC_INFO_MEM_SIZE - -/***** Static Functions *****/ -static void dump_section(unsigned int address, unsigned int length) -{ - unsigned int i; - volatile uint32_t *addr = (uint32_t *)address; - - // unlock otp to access it - MXC_FLC_UnlockInfoBlock((uint32_t)address); - - length /= 4; // on each loop print 4 bytes - - for (i = 0; i < length; i++) { - if (!(i % 4)) { - printf("\n0x%08x:", (unsigned int)addr); - } - - // add extra space - if (!(i % 2)) { - printf(" "); - } - - printf(" %08x", *addr); - addr++; - } - - // lock otp - MXC_FLC_LockInfoBlock((uint32_t)address); -} - -#if WITH_WRITE_TEST -static int write_test(void) -{ - int ret = 0; - uint32_t test_val = 0x11223344; - volatile uint32_t *addr = (uint32_t *)OTP_USER_AREA; - volatile uint32_t *end_addr = (uint32_t *)(OTP_USER_AREA + 1024); - - // unlock otp - MXC_FLC_UnlockInfoBlock(OTP_USER_AREA); - - // find free slot - while (addr < end_addr) { - if (*addr == 0xffffffff) { - printf("\n\nFree Addr: 0x%X\n", (uint32_t)addr); - break; - } - - addr++; - } - - if (addr >= end_addr) { - ret = -1; // means free slot not found - printf("\nFree Index Not Found in OTP\n"); - } - - if (ret == 0) { - ret = MXC_FLC_Write32((uint32_t)addr, test_val); - - if (ret) { - printf("FLC Write Error: %d\n", ret); - } - } - - // lock otp - MXC_FLC_LockInfoBlock(OTP_USER_AREA); - - if (ret == 0) { - /* Dump user section */ - printf("\n\n***** After Write OTP Section *****\n"); - dump_section((unsigned int)addr, 32); - } - - return ret; -} -#endif - -//****************************************************************************** -int main(void) -{ - printf("\n\n***** OTP Memory Read/Write Example *****\n"); - printf("***** This example demonstrates how you can read/write OTP memory *****\n"); - - /* Dump maxim section */ - printf("\n\n***** MAXIM AREA *****\n"); - dump_section(OTP_MAXIM_AREA, 1024); - - /* Dump user section */ - printf("\n\n***** USER AREA *****\n"); - dump_section(OTP_USER_AREA, 1024); - -#if WITH_WRITE_TEST - // run write test - write_test(); -#endif - - printf("\n\nExample End\n"); - - return 0; -} diff --git a/Examples/MAX32572/OWM/.cproject b/Examples/MAX32572/OWM/.cproject deleted file mode 100644 index 505b126af05..00000000000 --- a/Examples/MAX32572/OWM/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/OWM/.project b/Examples/MAX32572/OWM/.project deleted file mode 100644 index b4a0c4ebe06..00000000000 --- a/Examples/MAX32572/OWM/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - OWM - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/OWM/.vscode/c_cpp_properties.json b/Examples/MAX32572/OWM/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/OWM/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/OWM/.vscode/launch.json b/Examples/MAX32572/OWM/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/OWM/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/OWM/.vscode/settings.json b/Examples/MAX32572/OWM/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/OWM/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/OWM/.vscode/tasks.json b/Examples/MAX32572/OWM/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/OWM/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/OWM/Makefile b/Examples/MAX32572/OWM/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/OWM/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/OWM/OWM.launch b/Examples/MAX32572/OWM/OWM.launch deleted file mode 100644 index 75d11e75795..00000000000 --- a/Examples/MAX32572/OWM/OWM.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/OWM/README.md b/Examples/MAX32572/OWM/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/OWM/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/OWM/main.c b/Examples/MAX32572/OWM/main.c deleted file mode 100644 index a126ea91788..00000000000 --- a/Examples/MAX32572/OWM/main.c +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/* One wire API Test, for use with DS2401 */ - -#include -#include - -#include - -// Local global variables -uint8_t utilcrc8; -static uint8_t dscrc_table[] = { - 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, - 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, - 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, - 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, - 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, - 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, - 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, - 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, - 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, - 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, - 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, - 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, - 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, - 247, 182, 232, 10, 84, 215, 137, 107, 53 -}; - -//-------------------------------------------------------------------------- -// Reset crc8 to the value passed in -// -// 'portnum' - number 0 to MAX_PORTNUM-1. This number is provided to -// indicate the symbolic port number. -// 'reset' - data to set crc8 to -// -void setcrc8(uint8_t reset) -{ - utilcrc8 = reset; - return; -} - -//-------------------------------------------------------------------------- -// Update the Dallas Semiconductor One Wire CRC (utilcrc8) from the global -// variable utilcrc8 and the argument. -// -// 'portnum' - number 0 to MAX_PORTNUM-1. This number is provided to -// indicate the symbolic port number. -// 'x' - data byte to calculate the 8 bit crc from -// -// Returns: the updated utilcrc8. -// -uint8_t docrc8(uint8_t x) -{ - utilcrc8 = dscrc_table[utilcrc8 ^ x]; - return utilcrc8; -} - -int32_t ow_romid_test(uint8_t od) -{ - uint8_t buffer[8]; - uint8_t crc8; - int i; - - /* Set 1-Wire to standard speed */ - MXC_OWM_SetOverdrive(0); - - /* Error if presence pulse not detected. */ - if (MXC_OWM_Reset() == 0) { - return -2; - } - - if (od) { - /* Send the overdrive command */ - buffer[0] = OD_SKIP_ROM_COMMAND; - MXC_OWM_Write(buffer, 1); - MXC_OWM_SetOverdrive(1); - - /* Error if presence pulse not detected. */ - if (MXC_OWM_Reset() == 0) { - return -4; - } - } - - /* Send read ROMID command */ - buffer[0] = READ_ROM_COMMAND; - MXC_OWM_Write(buffer, 1); - /* Read the ROM ID */ - memset(buffer, 0, sizeof(buffer)); - - if (MXC_OWM_Read(buffer, 8) < 0) { - return -5; - } - - printf("Buffer: 0x%02X,0x%02X,0x%02X,0x%02X,0x%02X,0x%02X,0x%02X,0x%02X\n", buffer[0], - buffer[1], buffer[2], buffer[3], buffer[4], buffer[5], buffer[6], buffer[7]); - - /* Check for zero family code in ROM ID */ - if (buffer[0] == 0) { - return -6; - } - - /* Check CRC8 of received ROM ID */ - setcrc8(0); - - for (i = 0; i < 8; i++) { - crc8 = docrc8(buffer[i]); - } - - if (crc8 != 0x00) { - return -7; - } - - return 0; -} - -int main(void) -{ - int retval = 0; - printf("***** 1-Wire ROM (DS2401) Example *****\n"); - - /* Initialize one wire 10us timing */ - - mxc_owm_cfg_t owm_cfg; - owm_cfg.int_pu_en = 1; - owm_cfg.ext_pu_mode = MXC_OWM_EXT_PU_ACT_HIGH; - owm_cfg.long_line_mode = 0; - // owm_cfg.overdrive_spec = MXC_OWM_OVERDRIVE_10US; - MXC_OWM_Init(&owm_cfg); - - /* Test overdrive */ - if (retval = ow_romid_test(1)) { - printf("Overdrive results: %d; %08x; %08x \n", retval, MXC_OWM->cfg, MXC_OWM->intfl); - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/Pulse_Train/.cproject b/Examples/MAX32572/Pulse_Train/.cproject deleted file mode 100644 index 33cb12fbf00..00000000000 --- a/Examples/MAX32572/Pulse_Train/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Pulse_Train/.project b/Examples/MAX32572/Pulse_Train/.project deleted file mode 100644 index 860af78c97f..00000000000 --- a/Examples/MAX32572/Pulse_Train/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Pulse_Train - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Pulse_Train/.vscode/c_cpp_properties.json b/Examples/MAX32572/Pulse_Train/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Pulse_Train/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Pulse_Train/.vscode/launch.json b/Examples/MAX32572/Pulse_Train/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Pulse_Train/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Pulse_Train/.vscode/settings.json b/Examples/MAX32572/Pulse_Train/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Pulse_Train/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Pulse_Train/.vscode/tasks.json b/Examples/MAX32572/Pulse_Train/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Pulse_Train/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Pulse_Train/Makefile b/Examples/MAX32572/Pulse_Train/Makefile deleted file mode 100644 index 6865c52e2e3..00000000000 --- a/Examples/MAX32572/Pulse_Train/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Pulse_Train/Pulse_Train.launch b/Examples/MAX32572/Pulse_Train/Pulse_Train.launch deleted file mode 100644 index c826277e621..00000000000 --- a/Examples/MAX32572/Pulse_Train/Pulse_Train.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Pulse_Train/README.md b/Examples/MAX32572/Pulse_Train/README.md deleted file mode 100644 index bcf323a25c6..00000000000 --- a/Examples/MAX32572/Pulse_Train/README.md +++ /dev/null @@ -1,38 +0,0 @@ -## Description - -Two pulse trains are configured in different modes. - -The first, PT0, is set to generate a repeating bit pattern of 0x10110 (lsb first) at a rate of 2 bits per second. If you make the connections described below, you can observe the pattern on LED1. - -The second, PT1, is set to generate a 10Hz square wave. If you make the connections described below, you can observe the square wave on LED2. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Connect External LEDs to P0.13 and P0.12 - -## Expected Output - -The Console UART of the device will output these messages: - -``` -*************** Pulse Train Demo **************** -LED0 = Outputs continuous pattern of 10110b at 2bps -LED1 = Outputs 10Hz continuous square wave - -Connect external LEDS to see the demo. -LED0 to P0.13 and LED1 to P0.12 -``` \ No newline at end of file diff --git a/Examples/MAX32572/Pulse_Train/main.c b/Examples/MAX32572/Pulse_Train/main.c deleted file mode 100644 index 9a1d0e158dd..00000000000 --- a/Examples/MAX32572/Pulse_Train/main.c +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Configures and starts four different pulse trains on GPIO LEDs. - * @details LED0 - PT6 setup as 2Hz continuous signal that outputs 10110b - * LED1 - PT7 setup as 10Hz continuous square wave - * SW1 - push button setup to stop/start pulse trains - * - * @note Interrupts for pulse trains are enabled but the interrupt handler only clears the flags. - */ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ -#define ALL_PT 0x7F -/***** Globals *****/ - -/***** Functions *****/ - -// ***************************************************************************** -void PT_IRQHandler(void) -{ - printf("flags = 0x%08x\n", MXC_PT_GetFlags()); - - MXC_PT_ClearFlags(ALL_PT); -} - -// ***************************************************************************** -void ContinuousPulseTrain(void) -{ - //Setup GPIO to PT output function - //GPIO P0.13 uses PT4 - - //setup PT configuration - mxc_pt_cfg_t ptConfig; - ptConfig.channel = 4; //PT4 - ptConfig.bps = 2; //bit rate - ptConfig.ptLength = 5; //bits - ptConfig.pattern = 0x16; - ptConfig.loop = 0; //continuous loop - ptConfig.loopDelay = 0; - - MXC_PT_Config(&ptConfig); - - //start PT4 - MXC_PT_Start(MXC_F_PTG_ENABLE_PT4); -} - -// ***************************************************************************** -void SquareWave(void) -{ - //Setup GPIO to PT output function - //GPIO P0.12 uses PT3 - - uint32_t freq = 10; //Hz - MXC_PT_SqrWaveConfig(3, freq); //PT3 - - //start PT3 - MXC_PT_Start(MXC_F_PTG_ENABLE_PT3); -} - -// ***************************************************************************** -int main(void) -{ - printf("\n*************** Pulse Train Demo ****************\n"); - printf("LED0 = Outputs continuous pattern of 10110b at 2bps\n"); - printf("LED1 = Outputs 10Hz continuous square wave\n"); - - printf("\nConnect external LEDS to see the demo.\n"); - printf("LED0 to P0.13 and LED1 to P0.12"); - - NVIC_EnableIRQ(PT_IRQn); //enabled default interrupt handler - MXC_PT_EnableInt(ALL_PT); //enabled interrupts for all PT - MXC_PT_Init(MXC_PT_CLK_DIV1); //initialize pulse trains - - //configure and start pulse trains - ContinuousPulseTrain(); - SquareWave(); - - while (1) {} -} diff --git a/Examples/MAX32572/RTC/.cproject b/Examples/MAX32572/RTC/.cproject deleted file mode 100644 index f2177a9f9f3..00000000000 --- a/Examples/MAX32572/RTC/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/RTC/.project b/Examples/MAX32572/RTC/.project deleted file mode 100644 index 5a62dd7dd98..00000000000 --- a/Examples/MAX32572/RTC/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - RTC - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/RTC/.vscode/c_cpp_properties.json b/Examples/MAX32572/RTC/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/RTC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/RTC/.vscode/launch.json b/Examples/MAX32572/RTC/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/RTC/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/RTC/.vscode/settings.json b/Examples/MAX32572/RTC/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/RTC/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/RTC/.vscode/tasks.json b/Examples/MAX32572/RTC/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/RTC/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/RTC/Makefile b/Examples/MAX32572/RTC/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/RTC/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/RTC/README.md b/Examples/MAX32572/RTC/README.md deleted file mode 100644 index 8b343b862bc..00000000000 --- a/Examples/MAX32572/RTC/README.md +++ /dev/null @@ -1,49 +0,0 @@ -## Description - -This example demonstrates the use of the Real Time Clock (RTC) and its alarm functionality. - -The RTC is enabled and the sub-second alarm set to trigger every 250 ms. -(LED1) is toggled each time the sub-second alarm triggers. The time-of-day alarm is set to 10 seconds. When the time-of-day alarm triggers, the rate of the sub-second alarm is switched to 500 ms. - -The time-of-day alarm is then rearmed for another 10 sec. Pressing PB1 will output the current value of the RTC to the console UART. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -*************************** RTC Example **************************** - -The RTC is enabled and the sub-second alarm set to trigger every 250 ms. -(LED0) is toggled each time the sub-second alarm triggers. - -The time-of-day alarm is set to 10 seconds. When the time-of-day alarm -triggers, the rate of the sub-second alarm is switched to 500 ms. - -The time-of-day alarm is then rearmed for another 10 sec. Pressing PB1 -will output the current value of the RTC to the console UART. - -RTC started - -Current Time (dd:hh:mm:ss): 00:00:00:00.00 - - -Current Time (dd:hh:mm:ss): 00:00:00:04.64 -``` \ No newline at end of file diff --git a/Examples/MAX32572/RTC/RTC.launch b/Examples/MAX32572/RTC/RTC.launch deleted file mode 100644 index 8a5b9c41c50..00000000000 --- a/Examples/MAX32572/RTC/RTC.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/RTC/main.c b/Examples/MAX32572/RTC/main.c deleted file mode 100644 index f0cfaf95afe..00000000000 --- a/Examples/MAX32572/RTC/main.c +++ /dev/null @@ -1,231 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Configures and starts the RTC and demonstrates the use of the alarms. - * @details The RTC is enabled and the sub-second alarm set to trigger every 250 ms. - * P2.25 (LED0) is toggled each time the sub-second alarm triggers. The - * time-of-day alarm is set to 2 seconds. When the time-of-day alarm - * triggers, the rate of the sub-second alarm is switched to 500 ms. The - * time-of-day alarm is then rearmed for another 2 sec. Pressing SW2 will - * output the current value of the RTC to the console UART. - */ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ -#define LED_ALARM 0 - -#define TIME_OF_DAY_SEC 2 -#define SUBSECOND_MSEC_0 250 -#define SUBSECOND_MSEC_1 500 - -#define MSEC_TO_RSSA(x) \ - (0 - ((x * 4096) / \ - 1000)) /* Converts a time in milleseconds to the equivalent RSSA register value. */ - -#define SECS_PER_MIN 60 -#define SECS_PER_HR (60 * SECS_PER_MIN) -#define SECS_PER_DAY (24 * SECS_PER_HR) - -/***** Globals *****/ -int ss_interval = SUBSECOND_MSEC_0; - -/***** Functions *****/ -void RTC_IRQHandler(void) -{ - uint32_t time; - int flags = MXC_RTC_GetFlags(); - - /* Check sub-second alarm flag. */ - if (flags & MXC_RTC_INT_FL_SHORT) { - LED_Toggle(LED_ALARM); - MXC_RTC_ClearFlags(MXC_RTC_INT_FL_SHORT); - } - - /* Check time-of-day alarm flag. */ - if (flags & MXC_RTC_INT_FL_LONG) { - MXC_RTC_ClearFlags(MXC_RTC_INT_FL_LONG); - - if (MXC_RTC_DisableInt(MXC_RTC_INT_EN_LONG | MXC_RTC_INT_EN_SHORT) == E_BUSY) { - /* Handle Error */ - } - - /* Set a new alarm TIME_OF_DAY_SEC seconds from current time. */ - MXC_RTC_GetSeconds(&time); - - if (MXC_RTC_SetTimeofdayAlarm(time + TIME_OF_DAY_SEC) != E_NO_ERROR) { - /* Handle Error */ - } - - // Toggle the sub-second alarm interval. - if (ss_interval == SUBSECOND_MSEC_0) { - ss_interval = SUBSECOND_MSEC_1; - } else { - ss_interval = SUBSECOND_MSEC_0; - } - - if (MXC_RTC_SetSubsecondAlarm(MSEC_TO_RSSA(ss_interval)) != E_NO_ERROR) { - /* Handle Error */ - } - - if (MXC_RTC_EnableInt(MXC_RTC_INT_EN_LONG | MXC_RTC_INT_EN_SHORT) == E_BUSY) { - /* Handle Error */ - } - } - - return; -} - -volatile int buttonPressed = 0; -void buttonHandler() -{ - buttonPressed = 1; -} - -void printTime() -{ - int day, hr, min, err; - uint32_t sec, rtc_readout; - double subsec; - - do { - err = MXC_RTC_GetSubSeconds(&rtc_readout); - } while (err != E_NO_ERROR); - subsec = rtc_readout / 4096.0; - - do { - err = MXC_RTC_GetSeconds(&rtc_readout); - } while (err != E_NO_ERROR); - sec = rtc_readout; - - day = sec / SECS_PER_DAY; - sec -= day * SECS_PER_DAY; - - hr = sec / SECS_PER_HR; - sec -= hr * SECS_PER_HR; - - min = sec / SECS_PER_MIN; - sec -= min * SECS_PER_MIN; - - subsec += sec; - - printf("\nCurrent Time (dd:hh:mm:ss): %02d:%02d:%02d:%05.2f\n\n", day, hr, min, subsec); -} - -// ***************************************************************************** -int main(void) -{ - printf("\n*************************** RTC Example ****************************\n\n"); - printf("The RTC is enabled and the sub-second alarm set to trigger every %d ms.\n", - SUBSECOND_MSEC_0); - printf("(LED0) is toggled each time the sub-second alarm triggers.\n\n"); - printf("The time-of-day alarm is set to %d seconds. When the time-of-day alarm\n", - TIME_OF_DAY_SEC); - printf("triggers, the rate of the sub-second alarm is switched to %d ms.\n\n", - SUBSECOND_MSEC_1); - printf("The time-of-day alarm is then rearmed for another %d sec. Pressing PB1\n", - TIME_OF_DAY_SEC); - printf("will output the current value of the RTC to the console UART.\n\n"); - - NVIC_EnableIRQ(RTC_IRQn); - - /* Setup callback to receive notification of when button is pressed. */ - PB_RegisterCallback(0, (pb_callback)buttonHandler); - - /* Turn LED off initially */ - LED_On(LED_ALARM); - - if (MXC_RTC_Init(0, 0) != E_NO_ERROR) { - printf("Failed RTC Initialization\n"); - printf("Example Failed\n"); - - while (1) {} - } - - printf("RTC started\n"); - printTime(); - - if (MXC_RTC_DisableInt(MXC_RTC_INT_EN_LONG) == E_BUSY) { - return E_BUSY; - } - - if (MXC_RTC_SetTimeofdayAlarm(TIME_OF_DAY_SEC) != E_NO_ERROR) { - printf("Failed RTC_SetTimeofdayAlarm\n"); - printf("Example Failed\n"); - - while (1) {} - } - - if (MXC_RTC_EnableInt(MXC_RTC_INT_EN_LONG) == E_BUSY) { - return E_BUSY; - } - - if (MXC_RTC_DisableInt(MXC_RTC_INT_EN_SHORT) == E_BUSY) { - return E_BUSY; - } - - if (MXC_RTC_SetSubsecondAlarm(MSEC_TO_RSSA(SUBSECOND_MSEC_0)) != E_NO_ERROR) { - printf("Failed RTC_SetSubsecondAlarm\n"); - printf("Example Failed\n"); - - while (1) {} - } - - if (MXC_RTC_EnableInt(MXC_RTC_INT_EN_SHORT) == E_BUSY) { - return E_BUSY; - } - - if (MXC_RTC_Start() != E_NO_ERROR) { - printf("Failed RTC_Start\n"); - printf("Example Failed\n"); - - while (1) {} - } - - while (1) { - if (buttonPressed) { - /* Show the time elapsed. */ - printTime(); - /* Delay for switch debouncing. */ - MXC_Delay(MXC_DELAY_MSEC(100)); - /* Re-arm switch detection. */ - buttonPressed = 0; - } - } -} diff --git a/Examples/MAX32572/SDHC_FAT/.cproject b/Examples/MAX32572/SDHC_FAT/.cproject deleted file mode 100644 index 023b5bff978..00000000000 --- a/Examples/MAX32572/SDHC_FAT/.cproject +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SDHC_FAT/.project b/Examples/MAX32572/SDHC_FAT/.project deleted file mode 100644 index 790a035706a..00000000000 --- a/Examples/MAX32572/SDHC_FAT/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SDHC_FAT - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SDHC_FAT/.vscode/c_cpp_properties.json b/Examples/MAX32572/SDHC_FAT/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SDHC_FAT/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SDHC_FAT/.vscode/launch.json b/Examples/MAX32572/SDHC_FAT/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SDHC_FAT/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SDHC_FAT/.vscode/settings.json b/Examples/MAX32572/SDHC_FAT/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SDHC_FAT/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SDHC_FAT/.vscode/tasks.json b/Examples/MAX32572/SDHC_FAT/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SDHC_FAT/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SDHC_FAT/IAR/ExampleInfo.ENU.xml b/Examples/MAX32572/SDHC_FAT/IAR/ExampleInfo.ENU.xml deleted file mode 100644 index a86486d65f1..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/ExampleInfo.ENU.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Hello_World - NEED DESCRIPTION - $CUR_DIR$ - \ No newline at end of file diff --git a/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.ewd b/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.ewd deleted file mode 100644 index a600ccdd5a1..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.ewd +++ /dev/null @@ -1,3027 +0,0 @@ - - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 27 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 6 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 2 - 1 - 1 - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 4 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 27 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 6 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 2 - 1 - 0 - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 4 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.ewp b/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.ewp deleted file mode 100644 index 653a60ba2b8..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.ewp +++ /dev/null @@ -1,1994 +0,0 @@ - - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 24 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 24 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - BSP - - $PROJ_DIR$\..\..\..\..\Libraries\Boards\EvKit_V1\Source\board.c - - - $PROJ_DIR$\..\..\..\..\Libraries\Boards\Source\led.c - - - $PROJ_DIR$\..\..\..\..\Libraries\Boards\Source\max14690.c - - - $PROJ_DIR$\..\..\..\..\Libraries\Boards\Source\nhd12832.c - - - $PROJ_DIR$\..\..\..\..\Libraries\Boards\Source\stdio.c - - - - CMSIS - - $PROJ_DIR$\..\..\..\..\Libraries\CMSIS\Device\Maxim\MAX32650\Source\IAR\startup_max32650.s - - - $PROJ_DIR$\..\..\..\..\Libraries\CMSIS\Device\Maxim\MAX32650\Source\system_max32650.c - - - - HAL - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\clkman.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\gpio.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\i2cm.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\ioman.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\lp.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\mxc_sys.c - - - $PROJ_DIR$\..\..\..\..\Libraries\Boards\Source\pb.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\spim.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\tmr.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\tmr_utils.c - - - $PROJ_DIR$\..\..\..\..\Libraries\MAX32650PeriphDriver\Source\uart.c - - - - IAR - - $PROJ_DIR$\..\..\..\..\Libraries\CMSIS\Device\Maxim\MAX32650\Source\IAR\cmain.s - - - $PROJ_DIR$\..\..\..\..\Libraries\CMSIS\Device\Maxim\MAX32650\Source\IAR\low_level_init.c - - - - $PROJ_DIR$\..\main.c - - diff --git a/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.eww b/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.eww deleted file mode 100644 index ba9a6095c8b..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/Hello_World.eww +++ /dev/null @@ -1,10 +0,0 @@ - - - - - $WS_DIR$\Hello_World.ewp - - - - - diff --git a/Examples/MAX32572/SDHC_FAT/IAR/SDHC_FAT.ewd b/Examples/MAX32572/SDHC_FAT/IAR/SDHC_FAT.ewd deleted file mode 100644 index b7bc270a70f..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/SDHC_FAT.ewd +++ /dev/null @@ -1,2948 +0,0 @@ - - - 3 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 30 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - CADI_ID - 2 - - 0 - 1 - 1 - - - - - - - - - CMSISDAP_ID - 2 - - 4 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IJET_ID - 2 - - 8 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - NULINK_ID - 2 - - 0 - 1 - 1 - - - - - - - PEMICRO_ID - 2 - - 3 - 1 - 1 - - - - - - - - STLINK_ID - 2 - - 5 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - TIFET_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - XDS100_ID - 2 - - 8 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 30 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - CADI_ID - 2 - - 0 - 1 - 0 - - - - - - - - - CMSISDAP_ID - 2 - - 4 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IJET_ID - 2 - - 8 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - NULINK_ID - 2 - - 0 - 1 - 0 - - - - - - - PEMICRO_ID - 2 - - 3 - 1 - 0 - - - - - - - - STLINK_ID - 2 - - 5 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - TIFET_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - XDS100_ID - 2 - - 8 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/Examples/MAX32572/SDHC_FAT/IAR/SDHC_FAT.ewp b/Examples/MAX32572/SDHC_FAT/IAR/SDHC_FAT.ewp deleted file mode 100644 index 059d5b23bfb..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/SDHC_FAT.ewp +++ /dev/null @@ -1,2327 +0,0 @@ - - - 3 - - Debug - - ARM - - 1 - - General - 3 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 35 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 10 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 35 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 10 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - $PROJ_DIR$\..\main.c - - - CMSIS-Pack - CMSISPack.Component - - Maxim MAX32665 BSP _BSP.EvKit V1_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/EvKit_V1/Source/board.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/led.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/mx25.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/pb.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/stdio.c - - - - Maxim Maxim API _Device.GPIO_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/gpio.c - - - - Maxim Maxim API _Device.Startup_0.2.8-b - CMSISPack.Component - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\cmain.s - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\low_level_init.c - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\max32665.h - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_assert.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_delay.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_lock.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_pins.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_sys.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/nvic_table.c - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\startup_max32665.s - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\system_max32665.c - - - - Maxim Maxim API _Device.Timers_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/tmr.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/tmr_utils.c - - - - Maxim Maxim API _Device.UART_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/uart.c - - - - Maxim Maxim API _Device.XiP Flash_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/spixf.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/spixfc.c - - - - $PROJ_DIR$\RTE\RTE_Components.h - - - - <?xml version="1.0" encoding="UTF-8" standalone="no"?> - -<configuration xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"> - - <packages/> - - <device Dclock="96000000" Dcore="Cortex-M4" DcoreVersion="r0p1" Dendian="Little-endian" Dfamily="MAX32665-66" Dfpu="SP_FPU" Dmpu="NO_MPU" Dname="MAX32665" Dvendor="Maxim:23" Pname="Cortex-M4" Punits="2" info="ARM Cortex-M4 96 MHz, 512 kB RAM, 1 MB ROM" url="http://www.keil.com/dd2/maxim/max32665"> - - <package info="Maxim Integrated MAX32665 Series Device Support, Board Support Package and Examples" name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - </device> - - <toolchain Tcompiler="IAR" Toutput="exe"/> - - <components> - - <component Cbundle="MAX32665 BSP" Cclass="BSP" Cgroup="EvKit V1" Cvendor="Maxim" Cversion="0.3.0"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="include" name="Boards/Maxim/MAX32665_EVKIT/Common/EvKit_V1/Include/"/> - - <file category="include" name="Boards/Maxim/MAX32665_EVKIT/Common/Include/"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/EvKit_V1/Source/board.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/stdio.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/pb.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/led.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/mx25.c" version="0.3.0"/> - - </component> - - <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="5.1.1"> - - <package name="CMSIS" url="http://www.keil.com/pack/" vendor="ARM" version="5.3.0"/> - - <file category="doc" name="CMSIS/Documentation/Core/html/index.html"/> - - <file category="include" name="CMSIS/Include/"/> - - </component> - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="GPIO" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/gpio.c" version="0.3.0"/> - - </component> - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="Startup" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="include" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Include/" version="0.3.0"/> - - <file category="include" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Include/" version="0.3.0"/> - - <file attr="config" category="sourceAsm" condition="Startup IAR" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/IAR/startup_max32665.s" version="0.3.0"/> - - <file attr="config" category="sourceC" condition="Startup IAR" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/IAR/low_level_init.c" version="0.3.0"/> - - <file attr="config" category="sourceAsm" condition="Startup IAR" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/IAR/cmain.s" version="0.3.0"/> - - <file attr="config" category="sourceC" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/system_max32665.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/nvic_table.c" version="0.3.0"/> - - <file attr="config" category="header" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Include/max32665.h" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_assert.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_delay.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_lock.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_pins.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_sys.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/nvic_table.c" version="0.3.0"/> - - </component> - - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="UART" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/uart.c" version="0.3.0"/> - - </component> - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="XiP Flash" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/spixfc.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/spixf.c" version="0.3.0"/> - - </component> - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="SDHC" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/sdhc.c" version="0.3.0"/> - - </component> - <component Cbundle="FatFs" Cclass="File System" Cgroup="FatFs - SDHC" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" name="Libraries/SDHC/ff13/Source/diskio.c" version="0.3.0"/> - <file category="sourceC" name="Libraries/SDHC/ff13/Source/ff.c" version="0.3.0"/> - <file category="sourceC" name="Libraries/SDHC/ff13/Source/ffsystem.c" version="0.3.0"/> - <file category="sourceC" name="Libraries/SDHC/ff13/Source/ffunicode.c" version="0.3.0"/> - <file category="sourceC" name="Libraries/SDHC/Source/sdhc_lib.c" version="0.3.0"/> - <file category="include" name="Libraries/SDHC/Include/" version="0.3.0"/> - <file category="include" name="Libraries/SDHC/ff13/Source/" version="0.3.0"/> - - </component> - </components> - - <apis/> - -</configuration> - - - - diff --git a/Examples/MAX32572/SDHC_FAT/IAR/StartupScreen.ewsample b/Examples/MAX32572/SDHC_FAT/IAR/StartupScreen.ewsample deleted file mode 100644 index 3af11eb5606..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/StartupScreen.ewsample +++ /dev/null @@ -1,15 +0,0 @@ - - - - - ..\..\..\Libraries\Boards\Include\ - ..\..\..\Libraries\Boards\Source\ - ..\..\..\Libraries\Boards\EvKit_V1\ - - - ..\..\..\Libraries\CMSIS\Device\ - - - ..\..\..\Libraries\MAX32650PeriphDriver\ - - diff --git a/Examples/MAX32572/SDHC_FAT/IAR/ewinfo.ENU.html b/Examples/MAX32572/SDHC_FAT/IAR/ewinfo.ENU.html deleted file mode 100644 index afb41b7aefd..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/ewinfo.ENU.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - Information Center for ARM - - - - -
-
-

Information Center for ARM

-
- -
-

Example description

- -
  
-INSERT EXAMPLE DESCRIPTION
-  
- -
- - - - - - - diff --git a/Examples/MAX32572/SDHC_FAT/IAR/ewinfo.JPN.html b/Examples/MAX32572/SDHC_FAT/IAR/ewinfo.JPN.html deleted file mode 100644 index c57663e3e7d..00000000000 --- a/Examples/MAX32572/SDHC_FAT/IAR/ewinfo.JPN.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - Information Center for ARM - - - - -
-
-

Information Center for ARM

-
- -
-

Example description

- -
  
-NEED PROJECT DESCRIPTION 
-  
- -
- - diff --git a/Examples/MAX32572/SDHC_FAT/Makefile b/Examples/MAX32572/SDHC_FAT/Makefile deleted file mode 100644 index 71c48e5581f..00000000000 --- a/Examples/MAX32572/SDHC_FAT/Makefile +++ /dev/null @@ -1,159 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=${abspath $(LIBS_DIR)/PeriphDrivers} -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -SDHC_DRIVER_DIR=$(LIBS_DIR)/SDHC -FAT32_DRIVER_DIR=$(SDHC_DRIVER_DIR)/ff13 -include $(FAT32_DRIVER_DIR)/fat32.mk -include $(SDHC_DRIVER_DIR)/sdhc.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SDHC_FAT/README.md b/Examples/MAX32572/SDHC_FAT/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/SDHC_FAT/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/SDHC_FAT/SDHC_FAT.launch b/Examples/MAX32572/SDHC_FAT/SDHC_FAT.launch deleted file mode 100644 index 811b7573c11..00000000000 --- a/Examples/MAX32572/SDHC_FAT/SDHC_FAT.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SDHC_FAT/main.c b/Examples/MAX32572/SDHC_FAT/main.c deleted file mode 100644 index ae5befbdeb0..00000000000 --- a/Examples/MAX32572/SDHC_FAT/main.c +++ /dev/null @@ -1,656 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2019-05-30 14:18:04 -0500 (Thu, 30 May 2019) $ - * $Revision: 43593 $ - * - ******************************************************************************/ - -/** - * @file main.c - * @brief read and write sdhc - * @details This example uses the sdhc and ffat to read/write the file system on - * an SD card. The Fat library used supports long filenames (see ffconf.h) - * the max length is 256 characters. - * - * You must connect an sd card to the sd card slot. - */ - -/***** Includes *****/ -#include -#include -#include -#include - -#include - -#include "sdhc_lib.h" -#include "ff.h" - -/***** Definitions *****/ - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -#define MAXLEN 256 - -/***** Globals *****/ -FATFS *fs; //FFat Filesystem Object -FATFS fs_obj; -FIL file; //FFat File Object -FRESULT err; //FFat Result (Struct) -FILINFO fno; //FFat File Information Object -DIR dir; //FFat Directory Object -TCHAR message[MAXLEN], directory[MAXLEN], cwd[MAXLEN], filename[MAXLEN], volume_label[24], - volume = '0'; -TCHAR *FF_ERRORS[20]; -DWORD clusters_free = 0, sectors_free = 0, sectors_total = 0, volume_sn = 0; -UINT bytes_written = 0, bytes_read = 0, mounted = 0; -BYTE work[4096]; -static char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.-#'?!"; -mxc_gpio_cfg_t SDPowerEnablePin = { MXC_GPIO1, MXC_GPIO_PIN_12, MXC_GPIO_FUNC_OUT, - MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO }; - -/***** FUNCTIONS *****/ - -void generateMessage(unsigned length) -{ - for (int i = 0; i < length; i++) { - /*Generate some random data to put in file*/ - message[i] = charset[rand() % (sizeof(charset) - 1)]; - } -} - -int mount() -{ - fs = &fs_obj; - - if ((err = f_mount(fs, "", 1)) != FR_OK) { //Mount the default drive to fs now - printf("Error opening SD card: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - } else { - printf("SD card mounted.\n"); - mounted = 1; - } - - f_getcwd(cwd, sizeof(cwd)); //Set the Current working directory - - return err; -} - -int umount() -{ - if ((err = f_mount(NULL, "", 0)) != FR_OK) { //Unmount the default drive from its mount point - printf("Error unmounting volume: %s\n", FF_ERRORS[err]); - } else { - printf("SD card unmounted.\n"); - mounted = 0; - } - - return err; -} - -int formatSDHC() -{ - printf("\n\n*****THE DRIVE WILL BE FORMATTED IN 5 SECONDS*****\n"); - printf("**************PRESS ANY KEY TO ABORT**************\n\n"); - MXC_UART_ClearRXFIFO(MXC_UART0); - MXC_TMR_Delay(MXC_TMR0, MSEC(5000)); - - if (MXC_UART_GetRXFIFOAvailable(MXC_UART0) > 0) { - return E_ABORT; - } - - printf("FORMATTING DRIVE\n"); - - MKFS_PARM format_options = { .fmt = FM_ANY }; - - if ((err = f_mkfs("", &format_options, work, sizeof(work))) != - FR_OK) { //Format the default drive to FAT32 - printf("Error formatting SD card: %s\n", FF_ERRORS[err]); - } else { - printf("Drive formatted.\n"); - } - - mount(); - - if ((err = f_setlabel("MAXIM")) != FR_OK) { - printf("Error setting drive label: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - } - - umount(); - - return err; -} - -int getSize() -{ - if (!mounted) { - mount(); - } - - if ((err = f_getfree(&volume, &clusters_free, &fs)) != FR_OK) { - printf("Error finding free size of card: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - } - - sectors_total = (fs->n_fatent - 2) * fs->csize; - sectors_free = clusters_free * fs->csize; - - printf("Disk Size: %u bytes\n", sectors_total / 2); - printf("Available: %u bytes\n", sectors_free / 2); - - return err; -} - -int ls() -{ - if (!mounted) { - mount(); - } - - printf("Listing Contents of %s - \n", cwd); - - if ((err = f_opendir(&dir, cwd)) == FR_OK) { - while (1) { - err = f_readdir(&dir, &fno); - - if (err != FR_OK || fno.fname[0] == 0) { - break; - } - - printf("%s/%s", cwd, fno.fname); - - if (fno.fattrib & AM_DIR) { - printf("/"); - } - - printf("\n"); - } - - f_closedir(&dir); - } else { - printf("Error opening directory!\n"); - return err; - } - - printf("\nFinished listing contents\n"); - - return err; -} - -int createFile() -{ - unsigned int length = 128; - - if (!mounted) { - mount(); - } - - printf("Enter the name of the text file: \n"); - scanf("%255s", filename); - printf("Enter the length of the file: (256 max)\n"); - scanf("%d", &length); - printf("Creating file %s with length %d\n", filename, length); - - if ((err = f_open(&file, (const TCHAR *)filename, FA_CREATE_ALWAYS | FA_WRITE)) != FR_OK) { - printf("Error opening file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("File opened!\n"); - - generateMessage(length); - - if ((err = f_write(&file, &message, length, &bytes_written)) != FR_OK) { - printf("Error writing file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("%d bytes written to file!\n", bytes_written); - - if ((err = f_close(&file)) != FR_OK) { - printf("Error closing file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("File Closed!\n"); - return err; -} - -int appendFile() -{ - unsigned int length = 0; - - if (!mounted) { - mount(); - } - - printf("Type name of file to append: \n"); - scanf("%255s", filename); - printf("Type length of random data to append: \n"); - scanf("%d", &length); - - if ((err = f_stat((const TCHAR *)filename, &fno)) == FR_NO_FILE) { - printf("File %s doesn't exist!\n", (const TCHAR *)filename); - return err; - } - - if ((err = f_open(&file, (const TCHAR *)filename, FA_OPEN_APPEND | FA_WRITE)) != FR_OK) { - printf("Error opening file %s\n", FF_ERRORS[err]); - return err; - } - - printf("File opened!\n"); - - generateMessage(length); - - if ((err = f_write(&file, &message, length, &bytes_written)) != FR_OK) { - printf("Error writing file: %s\n", FF_ERRORS[err]); - return err; - } - - printf("%d bytes written to file\n", bytes_written); - - if ((err = f_close(&file)) != FR_OK) { - printf("Error closing file: %s\n", FF_ERRORS[err]); - return err; - } - - printf("File closed.\n"); - return err; -} - -int mkdir() -{ - if (!mounted) { - mount(); - } - - printf("Enter directory name: \n"); - scanf("%255s", directory); - - err = f_stat((const TCHAR *)directory, &fno); - - if (err == FR_NO_FILE) { - printf("Creating directory...\n"); - - if ((err = f_mkdir((const TCHAR *)directory)) != FR_OK) { - printf("Error creating directory: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } else { - printf("Directory %s created.\n", directory); - } - - } else { - printf("Directory already exists.\n"); - } - - return err; -} - -int cd() -{ - if (!mounted) { - mount(); - } - - printf("Directory to change into: \n"); - scanf("%255s", directory); - - if ((err = f_stat((const TCHAR *)directory, &fno)) == FR_NO_FILE) { - printf("Directory doesn't exist (Did you mean mkdir?)\n"); - return err; - } - - if ((err = f_chdir((const TCHAR *)directory)) != FR_OK) { - printf("Error in chdir: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("Changed to %s\n", directory); - f_getcwd(cwd, sizeof(cwd)); - - return err; -} - -int delete () -{ - if (!mounted) { - mount(); - } - - printf("File or directory to delete (always recursive!)\n"); - scanf("%255s", filename); - - if ((err = f_stat((const TCHAR *)filename, &fno)) == FR_NO_FILE) { - printf("File or directory doesn't exist\n"); - return err; - } - - if ((err = f_unlink(filename)) != FR_OK) { - printf("Error deleting file\n"); - return err; - } - - printf("Deleted file %s\n", filename); - return err; -} - -int example() -{ - unsigned int length = 256; - - if ((err = formatSDHC()) != FR_OK) { - printf("Error Formatting SD Card: %s\n", FF_ERRORS[err]); - return err; - } - - //open SD Card - if ((err = mount()) != FR_OK) { - printf("Error opening SD Card: %s\n", FF_ERRORS[err]); - return err; - } - - printf("SD Card Opened!\n"); - - if ((err = f_setlabel("MAXIM")) != FR_OK) { - printf("Error setting drive label: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - if ((err = f_getfree(&volume, &clusters_free, &fs)) != FR_OK) { - printf("Error finding free size of card: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - if ((err = f_getlabel(&volume, volume_label, &volume_sn)) != FR_OK) { - printf("Error reading drive label: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - if ((err = f_open(&file, "0:HelloWorld.txt", FA_CREATE_ALWAYS | FA_WRITE)) != FR_OK) { - printf("Error opening file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("File opened!\n"); - - generateMessage(length); - - if ((err = f_write(&file, &message, length, &bytes_written)) != FR_OK) { - printf("Error writing file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("%d bytes written to file!\n", bytes_written); - - if ((err = f_close(&file)) != FR_OK) { - printf("Error closing file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("File Closed!\n"); - - if ((err = f_chmod("HelloWorld.txt", 0, AM_RDO | AM_ARC | AM_SYS | AM_HID)) != FR_OK) { - printf("Error in chmod: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - err = f_stat("MaximSDHC", &fno); - - if (err == FR_NO_FILE) { - printf("Creating Directory...\n"); - - if ((err = f_mkdir("MaximSDHC")) != FR_OK) { - printf("Error creating directory: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - } - - printf("Renaming File...\n"); - - if ((err = f_rename("0:HelloWorld.txt", "0:MaximSDHC/HelloMaxim.txt")) != - FR_OK) { //cr: clearify 0:file notation - printf("Error moving file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - if ((err = f_chdir("/MaximSDHC")) != FR_OK) { - printf("Error in chdir: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("Attempting to read back file...\n"); - - if ((err = f_open(&file, "HelloMaxim.txt", FA_READ)) != FR_OK) { - printf("Error opening file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - if ((err = f_read(&file, &message, bytes_written, &bytes_read)) != FR_OK) { - printf("Error reading file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("Read Back %d bytes\n", bytes_read); - printf("Message: "); - printf("%s", message); - printf("\n"); - - if ((err = f_close(&file)) != FR_OK) { - printf("Error closing file: %s\n", FF_ERRORS[err]); - f_mount(NULL, "", 0); - return err; - } - - printf("File Closed!\n"); - - //unmount SD Card - //f_mount(fs, "", 0); - if ((err = f_mount(NULL, "", 0)) != FR_OK) { - printf("Error unmounting volume: %s\n", FF_ERRORS[err]); - return err; - } - - return 0; -} - -/******************************************************************************/ -int main(void) -{ - mxc_sdhc_cfg_t cfg; - - FF_ERRORS[0] = "FR_OK"; - FF_ERRORS[1] = "FR_DISK_ERR"; - FF_ERRORS[2] = "FR_INT_ERR"; - FF_ERRORS[3] = "FR_NOT_READY"; - FF_ERRORS[4] = "FR_NO_FILE"; - FF_ERRORS[5] = "FR_NO_PATH"; - FF_ERRORS[6] = "FR_INVLAID_NAME"; - FF_ERRORS[7] = "FR_DENIED"; - FF_ERRORS[8] = "FR_EXIST"; - FF_ERRORS[9] = "FR_INVALID_OBJECT"; - FF_ERRORS[10] = "FR_WRITE_PROTECTED"; - FF_ERRORS[11] = "FR_INVALID_DRIVE"; - FF_ERRORS[12] = "FR_NOT_ENABLED"; - FF_ERRORS[13] = "FR_NO_FILESYSTEM"; - FF_ERRORS[14] = "FR_MKFS_ABORTED"; - FF_ERRORS[15] = "FR_TIMEOUT"; - FF_ERRORS[16] = "FR_LOCKED"; - FF_ERRORS[17] = "FR_NOT_ENOUGH_CORE"; - FF_ERRORS[18] = "FR_TOO_MANY_OPEN_FILES"; - FF_ERRORS[19] = "FR_INVALID_PARAMETER"; - srand(12347439); - int run = 1, input = -1; - - printf("\n\n***** " TOSTRING(TARGET) " SDHC FAT Filesystem Example *****\n"); - - // Enable Power To Card - MXC_GPIO_Config(&SDPowerEnablePin); - MXC_GPIO_OutClr(MXC_GPIO1, SDPowerEnablePin.mask); - - // Initialize SDHC peripheral - cfg.bus_voltage = MXC_SDHC_Bus_Voltage_3_3; - cfg.block_gap = 0; - cfg.clk_div = - 0x0b0; // Maximum divide ratio, frequency must be >= 400 kHz during Card Identification phase - - if (MXC_SDHC_Init(&cfg) != E_NO_ERROR) { - printf("Unable to initialize SDHC driver.\n"); - return 1; - } - - // wait for card to be inserted - while (!MXC_SDHC_Card_Inserted()) {} - - printf("Card inserted.\n"); - - // set up card to get it ready for a transaction - if (MXC_SDHC_Lib_InitCard(10) == E_NO_ERROR) { - printf("Card Initialized.\n"); - } else { - printf("No card response! Remove card, reset EvKit, and try again.\n"); - - return -1; - } - - if (MXC_SDHC_Lib_Get_Card_Type() == CARD_SDHC) { - printf("Card type: SDHC\n"); - } else { - printf("Card type: MMC/eMMC\n"); - } - - while (run) { - f_getcwd(cwd, sizeof(cwd)); - - printf("\nChoose one of the following options: \n"); - printf("0. Find the Size of the SD Card and Free Space\n"); - printf("1. Format the Card\n"); - printf("2. Manually Mount Card\n"); - printf("3. List Contents of Current Directory\n"); - printf("4. Create a Directory\n"); - printf("5. Move into a Directory (cd)\n"); - printf("6. Create a File of Random Data\n"); - printf("7. Add Random Data to an Existing File\n"); - printf("8. Delete a File\n"); - printf("9. Format Card and Run Exmaple of FatFS Operations\n"); - printf("10. Unmount Card and Quit\n"); - printf("%s>>", cwd); - - input = -1; - scanf("%d", &input); - printf("%d\n", input); - - err = 0; - - switch (input) { - case 0: - getSize(); - break; - - case 1: - formatSDHC(); - break; - - case 3: - ls(); - break; - - case 6: - createFile(); - break; - - case 7: - appendFile(); - break; - - case 4: - mkdir(); - break; - - case 5: - cd(); - break; - - case 9: - example(); - break; - - case 10: - umount(); - run = 0; - break; - - case 2: - mount(); - break; - - case 8: - delete (); - break; - - default: - printf("Invalid Selection %d!\n", input); - err = -1; - break; - } - - if (err >= 0 && err <= 20) { - printf("Function Returned with code: %d\n", FF_ERRORS[err]); - } else { - printf("Function Returned with code: %d\n", err); - } - - MXC_TMR_Delay(MXC_TMR0, MSEC(500)); - } - - printf("End of example, please try to read the card.\n"); - return 0; -} diff --git a/Examples/MAX32572/SDHC_Raw/.cproject b/Examples/MAX32572/SDHC_Raw/.cproject deleted file mode 100644 index c01efda9329..00000000000 --- a/Examples/MAX32572/SDHC_Raw/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SDHC_Raw/.project b/Examples/MAX32572/SDHC_Raw/.project deleted file mode 100644 index 0e41e5cf0af..00000000000 --- a/Examples/MAX32572/SDHC_Raw/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SDHC_Raw - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SDHC_Raw/.vscode/c_cpp_properties.json b/Examples/MAX32572/SDHC_Raw/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SDHC_Raw/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SDHC_Raw/.vscode/launch.json b/Examples/MAX32572/SDHC_Raw/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SDHC_Raw/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SDHC_Raw/.vscode/settings.json b/Examples/MAX32572/SDHC_Raw/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SDHC_Raw/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SDHC_Raw/.vscode/tasks.json b/Examples/MAX32572/SDHC_Raw/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SDHC_Raw/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SDHC_Raw/IAR/SDHC_Raw.ewd b/Examples/MAX32572/SDHC_Raw/IAR/SDHC_Raw.ewd deleted file mode 100644 index b7bc270a70f..00000000000 --- a/Examples/MAX32572/SDHC_Raw/IAR/SDHC_Raw.ewd +++ /dev/null @@ -1,2948 +0,0 @@ - - - 3 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 30 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - CADI_ID - 2 - - 0 - 1 - 1 - - - - - - - - - CMSISDAP_ID - 2 - - 4 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IJET_ID - 2 - - 8 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - NULINK_ID - 2 - - 0 - 1 - 1 - - - - - - - PEMICRO_ID - 2 - - 3 - 1 - 1 - - - - - - - - STLINK_ID - 2 - - 5 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - TIFET_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - XDS100_ID - 2 - - 8 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 30 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - CADI_ID - 2 - - 0 - 1 - 0 - - - - - - - - - CMSISDAP_ID - 2 - - 4 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IJET_ID - 2 - - 8 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - NULINK_ID - 2 - - 0 - 1 - 0 - - - - - - - PEMICRO_ID - 2 - - 3 - 1 - 0 - - - - - - - - STLINK_ID - 2 - - 5 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - TIFET_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - XDS100_ID - 2 - - 8 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/Examples/MAX32572/SDHC_Raw/IAR/SDHC_Raw.ewp b/Examples/MAX32572/SDHC_Raw/IAR/SDHC_Raw.ewp deleted file mode 100644 index 7f6fba9a67e..00000000000 --- a/Examples/MAX32572/SDHC_Raw/IAR/SDHC_Raw.ewp +++ /dev/null @@ -1,2307 +0,0 @@ - - - 3 - - Debug - - ARM - - 1 - - General - 3 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 35 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 10 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 35 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 10 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - $PROJ_DIR$\..\main.c - - - CMSIS-Pack - CMSISPack.Component - - Maxim MAX32665 BSP _BSP.EvKit V1_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/EvKit_V1/Source/board.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/led.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/mx25.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/pb.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Boards/Maxim/MAX32665_EVKIT/Common/Source/stdio.c - - - - Maxim Maxim API _Device.GPIO_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/gpio.c - - - - Maxim Maxim API _Device.Startup_0.2.8-b - CMSISPack.Component - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\cmain.s - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\low_level_init.c - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\max32665.h - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_assert.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_delay.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_lock.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_pins.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/mxc_sys.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/nvic_table.c - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\startup_max32665.s - - - $PROJ_DIR$\RTE\Device\MAX32665_Cortex-M4\system_max32665.c - - - - Maxim Maxim API _Device.Timers_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/tmr.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/tmr_utils.c - - - - Maxim Maxim API _Device.UART_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/uart.c - - - - Maxim Maxim API _Device.XiP Flash_0.2.8-b - CMSISPack.Component - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/spixf.c - - - ${CMSIS_PACK_PATH_Maxim#MAX32665#0.3.0}$\Libraries/MAX32665PeriphDriver/Source/spixfc.c - - - - $PROJ_DIR$\RTE\RTE_Components.h - - - - <?xml version="1.0" encoding="UTF-8" standalone="no"?> - -<configuration xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"> - - <packages/> - - <device Dclock="96000000" Dcore="Cortex-M4" DcoreVersion="r0p1" Dendian="Little-endian" Dfamily="MAX32665-66" Dfpu="SP_FPU" Dmpu="NO_MPU" Dname="MAX32665" Dvendor="Maxim:23" Pname="Cortex-M4" Punits="2" info="ARM Cortex-M4 96 MHz, 512 kB RAM, 1 MB ROM" url="http://www.keil.com/dd2/maxim/max32665"> - - <package info="Maxim Integrated MAX32665 Series Device Support, Board Support Package and Examples" name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - </device> - - <toolchain Tcompiler="IAR" Toutput="exe"/> - - <components> - - <component Cbundle="MAX32665 BSP" Cclass="BSP" Cgroup="EvKit V1" Cvendor="Maxim" Cversion="0.3.0"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="include" name="Boards/Maxim/MAX32665_EVKIT/Common/EvKit_V1/Include/"/> - - <file category="include" name="Boards/Maxim/MAX32665_EVKIT/Common/Include/"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/EvKit_V1/Source/board.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/stdio.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/pb.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/led.c" version="0.3.0"/> - - <file category="sourceC" name="Boards/Maxim/MAX32665_EVKIT/Common/Source/mx25.c" version="0.3.0"/> - - </component> - - <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="5.1.1"> - - <package name="CMSIS" url="http://www.keil.com/pack/" vendor="ARM" version="5.3.0"/> - - <file category="doc" name="CMSIS/Documentation/Core/html/index.html"/> - - <file category="include" name="CMSIS/Include/"/> - - </component> - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="GPIO" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/gpio.c" version="0.3.0"/> - - </component> - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="Startup" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="include" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Include/" version="0.3.0"/> - - <file category="include" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Include/" version="0.3.0"/> - - <file attr="config" category="sourceAsm" condition="Startup IAR" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/IAR/startup_max32665.s" version="0.3.0"/> - - <file attr="config" category="sourceC" condition="Startup IAR" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/IAR/low_level_init.c" version="0.3.0"/> - - <file attr="config" category="sourceAsm" condition="Startup IAR" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/IAR/cmain.s" version="0.3.0"/> - - <file attr="config" category="sourceC" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Source/system_max32665.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/nvic_table.c" version="0.3.0"/> - - <file attr="config" category="header" deviceDependent="1" name="Libraries/Device/Maxim/MAX32665/Include/max32665.h" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_assert.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_delay.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_lock.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_pins.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/mxc_sys.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/nvic_table.c" version="0.3.0"/> - - </component> - - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="UART" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/uart.c" version="0.3.0"/> - - </component> - - <component Cbundle="Maxim API" Cclass="Device" Cgroup="XiP Flash" Cvendor="Maxim" Cversion="0.3.0" deviceDependent="1"> - - <package name="MAX32665" url="http://www.mxim.net/microcontroller/pack/" vendor="Maxim" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/spixfc.c" version="0.3.0"/> - - <file category="sourceC" deviceDependent="1" name="Libraries/MAX32665PeriphDriver/Source/spixf.c" version="0.3.0"/> - - </component> - - </components> - - <apis/> - -</configuration> - - - - diff --git a/Examples/MAX32572/SDHC_Raw/Makefile b/Examples/MAX32572/SDHC_Raw/Makefile deleted file mode 100644 index e7be7105e0b..00000000000 --- a/Examples/MAX32572/SDHC_Raw/Makefile +++ /dev/null @@ -1,157 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=${abspath $(LIBS_DIR)/PeriphDrivers} -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -SDHC_DRIVER_DIR=$(LIBS_DIR)/SDHC -include $(SDHC_DRIVER_DIR)/sdhc.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SDHC_Raw/README.md b/Examples/MAX32572/SDHC_Raw/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/SDHC_Raw/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/SDHC_Raw/SDHC_RAW.launch b/Examples/MAX32572/SDHC_Raw/SDHC_RAW.launch deleted file mode 100644 index 33a336893bd..00000000000 --- a/Examples/MAX32572/SDHC_Raw/SDHC_RAW.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SDHC_Raw/main.c b/Examples/MAX32572/SDHC_Raw/main.c deleted file mode 100644 index 269324dc9f0..00000000000 --- a/Examples/MAX32572/SDHC_Raw/main.c +++ /dev/null @@ -1,357 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2019-02-28 13:54:56 -0600 (Thu, 28 Feb 2019) $ - * $Revision: 41324 $ - * - ******************************************************************************/ - -/** - * @file main.c - * @brief read and write sdhc - * @details This example uses the sdhc to read and write to an sdhc card - * You must have an SD card inserted int the card slot on the bottome right corner of the board. - * Also the VDDIOH needs to have a voltage of 3.3V. To do this connect J11 and disconnect J8. - */ - -/***** Includes *****/ -#include -#include - -#include - -#include "sdhc_lib.h" - -/***** Definitions *****/ -#define BLOCK_SIZE 512 -#define BLOCK_COUNT 1024 -#define MULTI_BLOCK_COUNT 512 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Globals *****/ -__attribute__((aligned(4))) uint8_t array[BLOCK_SIZE]; //Array to hold data read and written to card -__attribute__((aligned(4))) -uint8_t marray[BLOCK_SIZE * MULTI_BLOCK_COUNT]; //Array to hold data read and written to card - -volatile int sdhc_flag = 1; -mxc_gpio_cfg_t SDPowerEnablePin = { MXC_GPIO1, MXC_GPIO_PIN_12, MXC_GPIO_FUNC_OUT, - MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO }; - -/******************************************************************************/ -//sdhc callback from async functions -void sdhc_cb(int error) -{ - sdhc_flag = error; -} - -/******************************************************************************/ -// When interrupt fires -void SDHC_IRQHandler(void) -{ - MXC_SDHC_Lib_Async_Handler(); -} - -/******************************************************************************/ -int check_data(uint8_t *x, uint8_t expected, unsigned int length) -{ - while (length--) { - if (*x++ != expected) { - return -1; - } - } - - return 0; -} - -/******************************************************************************/ -//Sends write async to card and then does a read async to see if the right data was written -int async_transactions(unsigned int width) -{ - // initialize array - memset(array, 0xfa, BLOCK_SIZE); - - sdhc_flag = 1; - - if (MXC_SDHC_Lib_WriteAsync(0, array, 1, width, sdhc_cb) != E_NO_ERROR) { - return -1; - } - - /* Wait for write to complete */ - while (sdhc_flag == 1) {} - - if (sdhc_flag == E_NO_ERROR) { - printf("non-blocking write ok\n"); - - } else { - printf("non-blocking write failed\n"); - return sdhc_flag; - } - - /* Clear data before reading back */ - memset(array, 0, BLOCK_SIZE); - - sdhc_flag = 1; - - if (MXC_SDHC_Lib_ReadAsync(array, 0, 1, width, sdhc_cb) != E_NO_ERROR) { - return -1; - } - - /* Wait for read to complete */ - while (sdhc_flag == 1) {} - - if (sdhc_flag == E_NO_ERROR) { - printf("non-blocking read ok\n"); - - } else { - printf("non-blocking read failed\n"); - return sdhc_flag; - } - - return check_data(array, 0xfa, BLOCK_SIZE); -} - -/******************************************************************************/ -//erases card with blocking functions -int erase(unsigned int width) -{ - int error; - - memset(array, 0, BLOCK_SIZE); - - //Write data from array to the card - if ((error = MXC_SDHC_Lib_Write(0, array, 1, width)) == E_NO_ERROR) { - printf("blocking erase ok\n"); - - } else { - printf("blocking erase failed\n"); - return error; - } - - memset(array, 1, BLOCK_SIZE); - - //Read data from card and store in array - if ((error = MXC_SDHC_Lib_Read(array, 0, 1, width)) == E_NO_ERROR) { - printf("blocking erase read ok\n"); - - } else { - printf("blocking erase read failed\n"); - return error; - } - - return check_data(array, 0, BLOCK_SIZE); -} - -/******************************************************************************/ -//Write and then read what was written to card using blocking methods. -int blocking_transactions(unsigned int width) -{ - unsigned int card_block; - int error; - - for (card_block = 0; card_block < BLOCK_COUNT; card_block++) { - /* Write a pattern to SD Card, read it back, check it */ - memset(array, (0xAF + card_block) % 256, BLOCK_SIZE); - - if ((error = MXC_SDHC_Lib_Write(card_block, array, 1, width)) != E_NO_ERROR) { - printf("blocking write failed %d at block %u\n", error, card_block); - - while (1) {} - - return error; - } - - memset(array, 0, BLOCK_SIZE); - - if ((error = MXC_SDHC_Lib_Read(array, card_block, 1, width)) != E_NO_ERROR) { - printf("blocking read failed %d at block %u\n", error, card_block); - return error; - } - - if (check_data(array, (0xAF + card_block) % 256, BLOCK_SIZE)) { - printf("data compare failed at block %u\n", card_block); - return -1; - } - } - - printf("blocking read/write ok\n"); - return 0; -} - -int multi_block_check(unsigned int width) -{ - int i, error; - - for (i = 0; i < MULTI_BLOCK_COUNT; i++) { - memset(marray + (i * BLOCK_SIZE), (0x88 + i) % 256, BLOCK_SIZE); - } - - if ((error = MXC_SDHC_Lib_Write(0, marray, MULTI_BLOCK_COUNT, width)) != E_NO_ERROR) { - printf("blocking write failed %d\n", error); - return error; - } - - memset(marray, 0, BLOCK_SIZE * MULTI_BLOCK_COUNT); - - if ((error = MXC_SDHC_Lib_Read(marray, 0, MULTI_BLOCK_COUNT, width)) != E_NO_ERROR) { - printf("blocking read failed %d\n", error); - return error; - } - - for (i = 0; i < MULTI_BLOCK_COUNT; i++) { - if (check_data(marray + (i * BLOCK_SIZE), (0x88 + i) % 256, BLOCK_SIZE)) { - printf("data compare failed\n"); - return -1; - } - } - - return 0; -} - -/******************************************************************************/ -int main(void) -{ - int fail = 0; - mxc_sdhc_cfg_t cfg; - int result; - - printf("\n\n***** " TOSTRING(TARGET) " SDHC Example *****\n"); - - // Turn on Power to Card - MXC_GPIO_Config(&SDPowerEnablePin); - MXC_GPIO_OutClr(SDPowerEnablePin.port, SDPowerEnablePin.mask); - // Set up Interupt - NVIC_EnableIRQ(SDHC_IRQn); - NVIC_SetVector(SDHC_IRQn, SDHC_IRQHandler); - - // Initialize SDHC peripheral - cfg.bus_voltage = MXC_SDHC_Bus_Voltage_3_3; - cfg.block_gap = 0; - cfg.clk_div = - 0x0B0; // Maximum divide ratio, frequency must be < 400 kHz during Card Identification phase (SD Specification Part 1 Ch 6.6.6) - MXC_SDHC_Init(&cfg); - - // wait for card to be inserted - printf("Waiting for card.\n"); - - while (!MXC_SDHC_Card_Inserted()) {} - - printf("Card inserted.\n"); - - // set up card to get it ready for a transaction - if (MXC_SDHC_Lib_InitCard(10) == E_NO_ERROR) { - printf("Card Initialized.\n"); - } else { - printf("No card response!\n"); - fail += 1; - } - - if (MXC_SDHC_Lib_Get_Card_Type() == CARD_SDHC) { - printf("Card type: SDHC\n"); - } else { - printf("Card type: MMC/eMMC\n"); - } - - /* Configure for fastest possible clock, must not exceed 52 MHz for eMMC */ - if (SystemCoreClock > 96000000) { - printf("SD clock ratio (at card) 4:1\n"); - MXC_SDHC_Set_Clock_Config(1); - } else { - printf("SD clock ratio (at card) 2:1\n"); - MXC_SDHC_Set_Clock_Config(0); - } - - /*** 1-bit data bus ***/ - printf("--> 1-bit data bus example <--\n"); - - if ((result = blocking_transactions(MXC_SDHC_LIB_SINGLE_DATA)) != 0) { - printf("blocking error %d\n", result); - fail += 1; - } else { - printf("Passed blocking\n"); - } - - if ((result = erase(MXC_SDHC_LIB_SINGLE_DATA)) != 0) { - printf("Erase failed %d\n", result); - fail += 1; - } else { - printf("Passed erase\n"); - } - - if ((result = async_transactions(MXC_SDHC_LIB_SINGLE_DATA)) != 0) { - printf("async error %d\n", result); - fail += 1; - } else { - printf("Passed async\n"); - } - - /*** 4-bit data bus ***/ - printf("--> 4-bit data bus example <--\n"); - - if ((result = blocking_transactions(MXC_SDHC_LIB_QUAD_DATA)) != 0) { - printf("blocking error %d\n", result); - fail += 1; - } else { - printf("Passed blocking\n"); - } - - if ((result = erase(MXC_SDHC_LIB_QUAD_DATA)) != 0) { - printf("Erase failed %d\n", result); - fail += 1; - } else { - printf("Passed erase\n"); - } - - if ((result = async_transactions(MXC_SDHC_LIB_QUAD_DATA)) != 0) { - printf("async error %d\n", result); - fail += 1; - } else { - printf("Passed async\n"); - } - - printf("--> Blocking, 4-bit data bus, multi-block example <--\n"); - - if (multi_block_check(MXC_SDHC_LIB_QUAD_DATA)) { - printf(" FAIL \n"); - fail += 1; - } else { - printf(" PASS \n"); - } - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/SKB/.cproject b/Examples/MAX32572/SKB/.cproject deleted file mode 100644 index 858595273fc..00000000000 --- a/Examples/MAX32572/SKB/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SKB/.project b/Examples/MAX32572/SKB/.project deleted file mode 100644 index bb7c1ea23bd..00000000000 --- a/Examples/MAX32572/SKB/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SKB - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SKB/.vscode/c_cpp_properties.json b/Examples/MAX32572/SKB/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SKB/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SKB/.vscode/launch.json b/Examples/MAX32572/SKB/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SKB/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SKB/.vscode/settings.json b/Examples/MAX32572/SKB/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SKB/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SKB/.vscode/tasks.json b/Examples/MAX32572/SKB/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SKB/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SKB/Makefile b/Examples/MAX32572/SKB/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/SKB/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SKB/README.md b/Examples/MAX32572/SKB/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/SKB/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/SKB/SKB.launch b/Examples/MAX32572/SKB/SKB.launch deleted file mode 100644 index 642fee69352..00000000000 --- a/Examples/MAX32572/SKB/SKB.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SKB/main.c b/Examples/MAX32572/SKB/main.c deleted file mode 100644 index 5ac92b93fc6..00000000000 --- a/Examples/MAX32572/SKB/main.c +++ /dev/null @@ -1,125 +0,0 @@ -/** - * @file main.c - * @brief Secure Keyboard Example - * @details - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Definitions *****/ - -/***** Globals *****/ -mxc_skbd_keys_t keys = { 0, 0, 0, 0 }; - -volatile int key_pressed = 0; - -/* keys mapping on the keyboard */ -const char keyboard_map[16] = { 'F', 'E', 'D', 'C', '3', '6', '9', 'B', - '2', '5', '8', '0', '1', '4', '7', 'A' }; -/***** Functions *****/ - -void keypadHandler() -{ - unsigned int status; - - /* Do what has to be done */ - MXC_SKBD_InterruptStatus(&status); - - if (MXC_F_SKBD_INTFL_PUSH & status) { - MXC_SKBD_ReadKeys(&keys); - key_pressed = 1; - /* Clear interruption */ - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_INTFL_PUSH); - } - - return; -} - -int main(void) -{ - mxc_skbd_config_t skb_cfg; - uint16_t *key; - uint8_t i, in, out; - int result; - - printf("\n********** Secure Keyboard Example **********\n"); - - skb_cfg.inputs = MXC_SKBD_KBDIO4 | MXC_SKBD_KBDIO5 | MXC_SKBD_KBDIO6 | MXC_SKBD_KBDIO7; - skb_cfg.outputs = MXC_SKBD_KBDIO0 | MXC_SKBD_KBDIO1 | MXC_SKBD_KBDIO2 | MXC_SKBD_KBDIO3; - skb_cfg.debounce = MXC_V_SKBD_CTRL1_DBTM_TIME10MS; - skb_cfg.ioselect = 0; - skb_cfg.irq_handler = (irq_handler_t)keypadHandler; - skb_cfg.reg_erase = 1; - - MXC_SKBD_PreInit(); - - if ((result = MXC_SKBD_Init(skb_cfg)) != E_NO_ERROR) { - printf("Error in Initializing Secure Keyboard: %d", result); - return E_UNINITIALIZED; - } - - if ((result = MXC_SKBD_EnableInterruptEvents(MXC_SKBD_INTERRUPT_STATUS_PUSHIS)) != E_NO_ERROR) { - printf("Error in Enabling Interrupt: %d", result); - return E_UNINITIALIZED; - } - - while (1) { - if (key_pressed == 1) { - key = &keys.key0; - - for (i = 0; i < 4; i++) { - in = 0x0f & *key; - out = (0xf0 & *key) >> 4; - - if (*key) { - printf("\n-Key Pressed: %c\n", keyboard_map[(in - 4) * 4 + out]); - } - - *key = 0; - key++; - } - - key_pressed = 0; - } - } - - return 0; -} diff --git a/Examples/MAX32572/SMON/.cproject b/Examples/MAX32572/SMON/.cproject deleted file mode 100644 index c1c6e2a9e68..00000000000 --- a/Examples/MAX32572/SMON/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SMON/.project b/Examples/MAX32572/SMON/.project deleted file mode 100644 index 1a5dceac59b..00000000000 --- a/Examples/MAX32572/SMON/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SMON - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SMON/.vscode/c_cpp_properties.json b/Examples/MAX32572/SMON/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SMON/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SMON/.vscode/launch.json b/Examples/MAX32572/SMON/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SMON/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SMON/.vscode/settings.json b/Examples/MAX32572/SMON/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SMON/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SMON/.vscode/tasks.json b/Examples/MAX32572/SMON/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SMON/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SMON/Makefile b/Examples/MAX32572/SMON/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/SMON/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SMON/README.md b/Examples/MAX32572/SMON/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/SMON/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/SMON/SMON.launch b/Examples/MAX32572/SMON/SMON.launch deleted file mode 100644 index a63b3aa5658..00000000000 --- a/Examples/MAX32572/SMON/SMON.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SMON/main.c b/Examples/MAX32572/SMON/main.c deleted file mode 100644 index b85fb5ed29d..00000000000 --- a/Examples/MAX32572/SMON/main.c +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Hello World! - * - * @details This example uses the UART to print to a terminal and flashes an LED(P2.17). - */ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ - -/***** Globals *****/ - -/***** Functions *****/ -void Test1() -{ - uint32_t flags = MXC_SMON_GetFlags(); - - flags = flags & MXC_F_SMON_SECALM_EXTSWARN1; - - printf("\n\nAlarm Flags Before Error: 0x%x", flags); - - mxc_smon_ext_cfg_t cfg; - - cfg.sensorNumber = SMON_EXTSENSOR_1; - cfg.clockDivide = SMON_CLK_DIVIDE_1; - cfg.freqDivide = SMON_FREQ_DIVIDE_4; - cfg.errorCount = 1; - - MXC_SMON_ExtSensorEnable(&cfg, 5000); - - flags = 0x00; - - while (!(flags)) { - flags = MXC_SMON_GetFlags() & MXC_F_SMON_SECALM_EXTSWARN1; - } - - printf("\nAlarm Flags After Error: 0x%x\n", flags); - - MXC_SMON_ClearFlags(MXC_F_SMON_SECALM_EXTSWARN1); -} - -void Test2() -{ - uint32_t flags = MXC_SMON_GetFlags(); - - flags = flags & MXC_F_SMON_SECALM_EXTSWARN0; - - printf("\n\nAlarm Flags Before Error: 0x%x", flags); - - mxc_smon_ext_cfg_t cfg; - - cfg.sensorNumber = SMON_EXTSENSOR_0; - cfg.clockDivide = SMON_CLK_DIVIDE_1; - cfg.freqDivide = SMON_FREQ_DIVIDE_4; - cfg.data = 0x51; - cfg.errorCount = 1; - - MXC_SMON_SelfDestructByteEnable(&cfg, 5000); - printf("\nData before Error: 0x%x\n", (MXC_SMON->sdbe & MXC_F_SMON_SDBE_DBYTE)); - - flags = 0x00; - - while (!(flags)) { - flags = MXC_SMON_GetFlags() & MXC_F_SMON_SECALM_EXTSWARN0; - } - - printf("\nAlarm Flags After Error: 0x%x", flags); - printf("\nData: 0x%x\n", MXC_SMON->sdbe & MXC_F_SMON_SDBE_DBYTE); - - MXC_SMON_ClearFlags(MXC_F_SMON_SECALM_EXTSWARN0); -} - -// ***************************************************************************** -int main(void) -{ - printf("\n***********Hello World!***********\n"); - printf("\nConnect the jumper between output and input\n"); - printf("pins of External Sensor 0 and External Sensor 1.\n"); - printf("To cause sensor error you will have to remove\n"); - printf("the jumper after initialization.\n"); - - MXC_SMON_Init(); - - printf("\nExternal Sensor 1 Enabled\n"); - printf("Remove Jumper on Sensor 1 to cause sensor 1 warning"); - Test1(); - - printf("\n\nSelf Destruct Byte Enabled for External Sensor 0\n"); - printf("Remove Jumper on Sensor 0 to destroy the byte"); - Test2(); - - printf("\nExample Completed\n\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/SPI/.cproject b/Examples/MAX32572/SPI/.cproject deleted file mode 100644 index 0060ce92908..00000000000 --- a/Examples/MAX32572/SPI/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPI/.project b/Examples/MAX32572/SPI/.project deleted file mode 100644 index f089f78abab..00000000000 --- a/Examples/MAX32572/SPI/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SPI - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SPI/.vscode/c_cpp_properties.json b/Examples/MAX32572/SPI/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SPI/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI/.vscode/launch.json b/Examples/MAX32572/SPI/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SPI/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI/.vscode/settings.json b/Examples/MAX32572/SPI/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SPI/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SPI/.vscode/tasks.json b/Examples/MAX32572/SPI/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SPI/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI/Makefile b/Examples/MAX32572/SPI/Makefile deleted file mode 100644 index 6865c52e2e3..00000000000 --- a/Examples/MAX32572/SPI/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SPI/README.md b/Examples/MAX32572/SPI/README.md deleted file mode 100644 index 6007ad7e72b..00000000000 --- a/Examples/MAX32572/SPI/README.md +++ /dev/null @@ -1,68 +0,0 @@ -## Description - -This example configures the SPI to send data between the MISO (P0.11) and MOSI (P0.10) pins. Connect these two pins together. - -Multiple word sizes (2 through 16 bits) are demonstrated. - -By default, the example performs blocking SPI transactions. To switch to non-blocking (asynchronous) transactions, reset the MASTERSYNC macro to 0 and set the MASTERASYNC macro to 1. To use DMA transactions, set the MASTERDMA macro to 1 instead. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -**************************** SPI MASTER TEST ************************* -This example configures the SPI to send data between the MISO (P0.11) and -MOSI (P0.10) pins. Connect these two pins together. This demo shows SPI -sending different bit sizes each run through. - -This demo shows Asynchronous, Synchronous and DMA transaction for SPI0 - ---> 2 Bits Transaction Successful - ---> 3 Bits Transaction Successful - ---> 4 Bits Transaction Successful - ---> 5 Bits Transaction Successful - ---> 6 Bits Transaction Successful - ---> 7 Bits Transaction Successful - ---> 8 Bits Transaction Successful - ---> 9 Bits Transaction Successful - --->10 Bits Transaction Successful - --->11 Bits Transaction Successful - --->12 Bits Transaction Successful - --->13 Bits Transaction Successful - --->14 Bits Transaction Successful - --->15 Bits Transaction Successful - --->16 Bits Transaction Successful -``` - diff --git a/Examples/MAX32572/SPI/SPI.launch b/Examples/MAX32572/SPI/SPI.launch deleted file mode 100644 index 7dd297cd74c..00000000000 --- a/Examples/MAX32572/SPI/SPI.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPI/main.c b/Examples/MAX32572/SPI/main.c deleted file mode 100644 index 19127b9eab3..00000000000 --- a/Examples/MAX32572/SPI/main.c +++ /dev/null @@ -1,222 +0,0 @@ -/** - * @file main.c - * @brief SPI Master Demo - * @details Shows Master loopback demo for QSPI0 - * Read the printf() for instructions - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Preprocessors *****/ -#define MASTERSYNC 1 -#define MASTERASYNC 0 -#define MASTERDMA 0 - -#if (!(MASTERSYNC || MASTERASYNC || MASTERDMA)) -#error "You must set either MASTERSYNC or MASTERASYNC or MASTERDMA to 1." -#endif -#if ((MASTERSYNC && MASTERASYNC) || (MASTERASYNC && MASTERDMA) || (MASTERDMA && MASTERSYNC)) -#error "You must select either MASTERSYNC or MASTERASYNC or MASTERDMA, not all 3." -#endif - -/***** Definitions *****/ -#define DATA_LEN 100 // Words -#define DATA_VALUE 0xA5A5 // This is for master mode only... -#define VALUE 0xFFFF -#define SPI_SPEED 100000 // Bit Rate - -#define SPI MXC_SPI3 -#define SPI_IRQ SPI3_IRQn - -/***** Globals *****/ -uint16_t rx_data[DATA_LEN]; -uint16_t tx_data[DATA_LEN]; -volatile int SPI_FLAG; -volatile uint8_t DMA_FLAG = 0; - -/***** Functions *****/ -void SPI3_IRQHandler(void) -{ - MXC_SPI_AsyncHandler(SPI); -} - -void DMA0_IRQHandler(void) -{ - MXC_DMA_Handler(); -} - -void DMA1_IRQHandler(void) -{ - MXC_DMA_Handler(); - DMA_FLAG = 1; -} - -void SPI_Callback(mxc_spi_req_t *req, int error) -{ - SPI_FLAG = error; -} - -int main(void) -{ - int i, j, retVal; - uint16_t temp; - mxc_spi_req_t req; - - printf("\n**************************** SPI MASTER TEST *************************\n"); - printf("This example configures the SPI to send data between the MISO (P0.11) and\n"); - printf("MOSI (P0.10) pins. Connect these two pins together. This demo shows SPI\n"); - printf("sending different bit sizes each run through. \n"); - - printf("\nThis demo shows Asynchronous, Synchronous and DMA transaction for SPI3\n"); - - for (i = 1; i < 17; i++) { - if (i == 1) { // Sending out 2 to 16 bits - continue; - } - - for (j = 0; j < DATA_LEN; j++) { - tx_data[j] = DATA_VALUE; - } - - // Configure the peripheral - retVal = MXC_SPI_Init(SPI, 1, 0, 1, 0, SPI_SPEED); - if (retVal != E_NO_ERROR) { - printf("\nSPI INITIALIZATION ERROR\n"); - return retVal; - } - - memset(rx_data, 0x0, DATA_LEN * sizeof(uint16_t)); - - //SPI Request - req.spi = SPI; - req.txData = (uint8_t *)tx_data; - req.rxData = (uint8_t *)rx_data; - req.txLen = DATA_LEN; - req.rxLen = DATA_LEN; - req.ssIdx = 0; - req.ssDeassert = 1; - req.txCnt = 0; - req.rxCnt = 0; - req.completeCB = (spi_complete_cb_t)SPI_Callback; - SPI_FLAG = 1; - - retVal = MXC_SPI_SetDataSize(SPI, i); - - if (retVal != E_NO_ERROR) { - printf("\nSPI SET DATASIZE ERROR: %d\n", retVal); - return retVal; - } - - retVal = MXC_SPI_SetWidth(SPI, SPI_WIDTH_STANDARD); - - if (retVal != E_NO_ERROR) { - printf("\nSPI SET WIDTH ERROR: %d\n", retVal); - return retVal; - } - -#if MASTERSYNC - MXC_SPI_MasterTransaction(&req); -#endif - -#if MASTERASYNC - NVIC_SetVector(SPI_IRQ, SPI3_IRQHandler); - NVIC_EnableIRQ(SPI_IRQ); - MXC_SPI_MasterTransactionAsync(&req); - - while (SPI_FLAG == 1) {} - -#endif - -#if MASTERDMA - MXC_DMA_ReleaseChannel(0); - MXC_DMA_ReleaseChannel(1); - - NVIC_EnableIRQ(DMA0_IRQn); - NVIC_EnableIRQ(DMA1_IRQn); - MXC_SPI_MasterTransactionDMA(&req); - - while (DMA_FLAG == 0) {} - - DMA_FLAG = 0; -#endif - - uint8_t bits = MXC_SPI_GetDataSize(SPI); - - for (j = 0; j < DATA_LEN; j++) { - if (bits <= 8) { - if (j < (DATA_LEN / 2)) { - temp = VALUE >> (16 - bits); - temp = (temp << 8) | temp; - temp &= DATA_VALUE; - tx_data[j] = temp; - } else if (j == (DATA_LEN / 2) && DATA_LEN % 2 == 1) { - temp = VALUE >> (16 - bits); - temp &= DATA_VALUE; - tx_data[j] = temp; - } else { - tx_data[j] = 0x0000; - } - } else { - temp = VALUE >> (16 - bits); - temp &= DATA_VALUE; - tx_data[j] = temp; - } - } - - // Compare Sent data vs Received data - // Printf needs the Uart turned on since they share the same pins - if (memcmp(rx_data, tx_data, sizeof(tx_data)) != 0) { - printf("\n-->%2d Bits Transaction Failed\n", i); - return E_BAD_STATE; - } else { - printf("\n-->%2d Bits Transaction Successful\n", i); - } - - retVal = MXC_SPI_Shutdown(SPI); - - if (retVal != E_NO_ERROR) { - printf("\n-->SPI SHUTDOWN ERROR: %d\n", retVal); - return retVal; - } - } - - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/SPIXF/.cproject b/Examples/MAX32572/SPIXF/.cproject deleted file mode 100644 index 552538405d8..00000000000 --- a/Examples/MAX32572/SPIXF/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPIXF/.project b/Examples/MAX32572/SPIXF/.project deleted file mode 100644 index 0b4ba012e52..00000000000 --- a/Examples/MAX32572/SPIXF/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SPIXF - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SPIXF/.vscode/c_cpp_properties.json b/Examples/MAX32572/SPIXF/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SPIXF/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SPIXF/.vscode/launch.json b/Examples/MAX32572/SPIXF/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SPIXF/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPIXF/.vscode/settings.json b/Examples/MAX32572/SPIXF/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SPIXF/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SPIXF/.vscode/tasks.json b/Examples/MAX32572/SPIXF/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SPIXF/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPIXF/Makefile b/Examples/MAX32572/SPIXF/Makefile deleted file mode 100644 index 7d0ce1ef81c..00000000000 --- a/Examples/MAX32572/SPIXF/Makefile +++ /dev/null @@ -1,156 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += ramfunc.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SPIXF/README.md b/Examples/MAX32572/SPIXF/README.md deleted file mode 100644 index a1a7a5df03f..00000000000 --- a/Examples/MAX32572/SPIXF/README.md +++ /dev/null @@ -1,56 +0,0 @@ -## Description - -This example communicates with the MX25 flash on the EvKit. It loads code onto it and then executes that code using the SPIX execute-in-place peripheral. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -********************* SPIX Example ********************* -This example communicates with an MX25 flash on the EvKit -loads code onto it and then executes that code using the -SPIX execute-in-place peripheral - -SPI Clock: 3000000 Hz - -MX25 Initialized. - -MX25 ID verified - -Erasing first 64k sector -Erased - -Quad mode enabled - -Programming function (120 bytes @ 0x1000956c) into external MX25 flash -Programmed - -Verifying external flash -Verified - -Jumping to external flash (@ 0x08000001), watch for blinking LED. - -Running code from external flash -Returned from external flash - -Example Succeeded -``` - diff --git a/Examples/MAX32572/SPIXF/SPIXF.launch b/Examples/MAX32572/SPIXF/SPIXF.launch deleted file mode 100644 index 16a54333b1c..00000000000 --- a/Examples/MAX32572/SPIXF/SPIXF.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPIXF/main.c b/Examples/MAX32572/SPIXF/main.c deleted file mode 100644 index 1740e449d45..00000000000 --- a/Examples/MAX32572/SPIXF/main.c +++ /dev/null @@ -1,209 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief SPIX example using the external flash. - * @details Uses the external flash on the EvKit to show the SPIX. Erases, writes, and then - * verifies the data. EXT_FLASH_BAUD, EXT_FLASH_ADDR, and EXT_FLASH_SPIXFC_WIDTH - * can be changed to alter the communication between the devices. Refer - * to the schematic for the pinout and ensure that there are no switches - * blocking the communication to the external flash. - */ - -/***** Includes *****/ -#include -#include - -#include -#include "Ext_Flash.h" - -/***** Definitions *****/ - -#define EXT_FLASH_ADDR 0 -#define EXT_FLASH_SPIXFC_WIDTH Ext_Flash_DataLine_Quad - -#define BUFF_SIZE 64 - -int fail = 0; - -/***** Functions *****/ - -// These are set in the linkerfile and give the starting and ending address of xip_section -#if defined(__GNUC__) -extern uint8_t __load_start_xip, __load_length_xip; -#endif - -#if defined(__CC_ARM) -// Note: This demo has not been tested under IAR and should be considered non-functional -extern int Image$$RW_IRAM2$$Length; -extern char Image$$RW_IRAM2$$Base[]; -uint8_t *__xip_addr; -#endif - -/******************************************************************************/ -void spixf_cfg_setup() -{ - // Disable the SPIXFC before setting the SPIXF - MXC_SPIXF_Disable(); - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - MXC_SPIXF_SetMode(MXC_SPIXF_MODE_0); - MXC_SPIXF_SetSSPolActiveLow(); - MXC_SPIXF_SetSSActiveTime(MXC_SPIXF_SYS_CLOCKS_2); - MXC_SPIXF_SetSSInactiveTime(MXC_SPIXF_SYS_CLOCKS_3); - - if (EXT_FLASH_SPIXFC_WIDTH == Ext_Flash_DataLine_Single) { - MXC_SPIXF_SetCmdValue(EXT_FLASH_CMD_READ); - MXC_SPIXF_SetCmdWidth(MXC_SPIXF_SINGLE_SDIO); - MXC_SPIXF_SetAddrWidth(MXC_SPIXF_SINGLE_SDIO); - MXC_SPIXF_SetDataWidth(MXC_SPIXF_WIDTH_1); - MXC_SPIXF_SetModeClk(EXT_FLASH_Read_DUMMY); - } else { - MXC_SPIXF_SetCmdValue(EXT_FLASH_CMD_QREAD); - MXC_SPIXF_SetCmdWidth(MXC_SPIXF_SINGLE_SDIO); - MXC_SPIXF_SetAddrWidth(MXC_SPIXF_QUAD_SDIO); - MXC_SPIXF_SetDataWidth(MXC_SPIXF_WIDTH_4); - MXC_SPIXF_SetModeClk(EXT_FLASH_QREAD_DUMMY); - } - - MXC_SPIXF_Set3ByteAddr(); - MXC_SPIXF_SCKFeedbackEnable(); - MXC_SPIXF_SetSCKNonInverted(); -} - -/******************************************************************************/ -int main(void) -{ - uint32_t id; - void (*func)(void); - uint8_t rx_buf[BUFF_SIZE]; - int rx_len = (uint32_t)(&__load_length_xip); - int remain = rx_len; - - printf("\n\n********************* SPIX Example *********************\n"); - printf("This example communicates with an %s flash on the EvKit\n", EXT_FLASH_NAME); - printf("loads code onto it and then executes that code using the \n"); - printf("SPIX execute-in-place peripheral\n\n"); - - printf("SPI Clock: %d Hz\n\n", EXT_FLASH_BAUD); - - // Initialize the SPIXFC registers and set the appropriate output pins - if (Ext_Flash_Init() != E_NO_ERROR) { - printf("Board Init Failed\n"); - printf("Example Failed\n"); - return -1; - } - printf("External flash Initialized.\n\n"); - - Ext_Flash_Reset(); - - // Get the ID of the external flash - if ((id = Ext_Flash_ID()) == EXT_FLASH_EXP_ID) { - printf("External flash ID verified\n\n"); - } else { - printf("Error verifying external flash ID: 0x%x\n", id); - printf("Example Failed\n"); - return -1; - } - - int err; - - // Erase Test Sector - printf("Erasing first 64k sector\n"); - Ext_Flash_Erase(0x00000, Ext_Flash_Erase_64K); - printf("Erased\n\n"); - - // Enable Quad mode if we are using quad - if (EXT_FLASH_SPIXFC_WIDTH == Ext_Flash_DataLine_Quad) { - if (Ext_Flash_Quad(1) != E_NO_ERROR) { - printf("Error enabling quad mode\n\n"); - fail++; - } else { - printf("Quad mode enabled\n\n"); - } - } else { - if (Ext_Flash_Quad(0) != E_NO_ERROR) { - printf("Error disabling quad mode\n\n"); - fail++; - } else { - printf("Quad mode disabled\n\n"); - } - } - - // Program the external flash - printf("Programming function (%d bytes @ 0x%08x) into external flash\n", - (uint32_t)(&__load_length_xip), &__load_start_xip); - if ((err = Ext_Flash_Program_Page(EXT_FLASH_ADDR, &__load_start_xip, - (uint32_t)(&__load_length_xip), EXT_FLASH_SPIXFC_WIDTH)) != - E_NO_ERROR) { - printf("Error Programming: %d\n", err); - fail++; - } else { - printf("Programmed\n\n"); - } - - printf("Verifying external flash\n"); - while (remain) { - int chunk = ((remain > BUFF_SIZE) ? BUFF_SIZE : remain); - if ((err = Ext_Flash_Read(EXT_FLASH_ADDR + rx_len - remain, rx_buf, chunk, - EXT_FLASH_SPIXFC_WIDTH)) != E_NO_ERROR) { - printf("Error verifying data %d\n", err); - fail++; - break; - } else if (memcmp(rx_buf, &__load_start_xip + rx_len - remain, chunk) != E_NO_ERROR) { - printf("Error invalid data\n"); - fail++; - break; - } else if (remain == chunk) { - printf("Verified\n\n"); - } - remain -= chunk; - } - - // Setup SPIX - spixf_cfg_setup(); - - printf("Jumping to external flash (@ 0x%08x), watch for blinking LED.\n\n", - (MXC_XIP_MEM_BASE | 0x1)); - func = (void (*)(void))(MXC_XIP_MEM_BASE | 0x1); - func(); - printf("Returned from external flash\n\n"); - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/SPIXF/ramfunc.c b/Examples/MAX32572/SPIXF/ramfunc.c deleted file mode 100644 index 3858ec985fb..00000000000 --- a/Examples/MAX32572/SPIXF/ramfunc.c +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2018-08-10 09:36:39 -0500 (Fri, 10 Aug 2018) $ - * $Revision: 36825 $ - * - ******************************************************************************/ - -#include "mxc_device.h" -#include "led.h" - -/******************************************************************************/ -__attribute__((section(".xip_section"))) void xip_function(void) -{ - volatile int i; - int j; - printf("Running code from external flash\n"); - - for (j = 0; j < 25; j++) { - LED_Off(0); - - for (i = 0; i < 0xFFF; i++) {} - - LED_On(0); - - for (i = 0; i < 0xFFF; i++) {} - } - - LED_Off(0); -} diff --git a/Examples/MAX32572/SPIXR/.cproject b/Examples/MAX32572/SPIXR/.cproject deleted file mode 100644 index 0112e4599cf..00000000000 --- a/Examples/MAX32572/SPIXR/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPIXR/.project b/Examples/MAX32572/SPIXR/.project deleted file mode 100644 index 0dd334c3968..00000000000 --- a/Examples/MAX32572/SPIXR/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SPIXR - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SPIXR/.vscode/c_cpp_properties.json b/Examples/MAX32572/SPIXR/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SPIXR/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SPIXR/.vscode/launch.json b/Examples/MAX32572/SPIXR/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SPIXR/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPIXR/.vscode/settings.json b/Examples/MAX32572/SPIXR/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SPIXR/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SPIXR/.vscode/tasks.json b/Examples/MAX32572/SPIXR/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SPIXR/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPIXR/Makefile b/Examples/MAX32572/SPIXR/Makefile deleted file mode 100644 index 6865c52e2e3..00000000000 --- a/Examples/MAX32572/SPIXR/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SPIXR/README.md b/Examples/MAX32572/SPIXR/README.md deleted file mode 100644 index b0f049b20bb..00000000000 --- a/Examples/MAX32572/SPIXR/README.md +++ /dev/null @@ -1,43 +0,0 @@ -## Description - -This example communicates with an MX25 SPI RAM on the EvKit using Quad SPI mode And the SPIXR peripheral - -It writes random data to the MX25 SPI RAM and reads it back. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -****************** SPIXR Example ****************** - -This example communicates with an MX25 SPI RAM on the -EvKit using Quad SPI mode And the SPIXR peripheral - -Setting up the SPIXR - -TX BUFFER: 0 2d cf 46 29 4 b4 78 d8 68 a7 ff 3f 2b f1 fc - -RX BUFFER: 0 2d cf 46 29 4 b4 78 d8 68 a7 ff 3f 2b f1 fc - -DATA IS VERIFIED. - -Example Succeeded -``` diff --git a/Examples/MAX32572/SPIXR/SPIXR.launch b/Examples/MAX32572/SPIXR/SPIXR.launch deleted file mode 100644 index a548cb7d32c..00000000000 --- a/Examples/MAX32572/SPIXR/SPIXR.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPIXR/main.c b/Examples/MAX32572/SPIXR/main.c deleted file mode 100644 index 4b89fc79415..00000000000 --- a/Examples/MAX32572/SPIXR/main.c +++ /dev/null @@ -1,172 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief SPIXR example writing to SRAM Microchip 23LC1024 - * @details Setup, Initialize, Write, and verifies the data written to SRAM. - * This example is showing how to configure the SRAM 23LC1024 and - * uses the SPIXR library to write and read data from it in Quad mode. - */ - -/***** Includes *****/ -#include -#include -#include -#include - -#include - -/***** Definitions *****/ -// RAM Vendor Specific Commands -#define A1024_READ 0x03 -#define A1024_WRITE 0x02 -#define A1024_EQIO 0x38 - -// RAM Vendor Specific Values -#define BUFFER_SIZE 16 -#define A1024_ADDRESS 0x80000000 - -/***** Globals *****/ -mxc_spixr_cfg_t init_cfg = { - 0x08, /* Number of bits per character */ - MXC_SPIXR_QUAD_SDIO, /* SPI Data Width */ - 0x04, /* num of system clocks between SS active & first serial clock edge */ - 0x08, /* num of system clocks between last serial clock edge and ss inactive */ - 0x10, /* num of system clocks between transactions (read / write) */ - 5000000 /* Baud freq */ -}; - -/***** Functions *****/ -/******************************************************************************/ -void setup(void) -{ - uint8_t quad_cmd = A1024_EQIO; /* pre-defined command to use quad mode */ - - // // Initialize the desired configuration - if (MXC_SPIXR_Init(&init_cfg) != E_NO_ERROR) { - printf("\nSPIXR was not initialized properly.\n"); - printf("\nExample Failed\n"); - return E_UNINITIALIZED; - } - - MXC_GCR->sysctrl |= MXC_F_GCR_SYSCTRL_SRCC_DIS; - - MXC_SPIXR->dma &= ~MXC_F_SPIXR_DMA_RX_DMA_EN; - MXC_SPIXR->dma |= MXC_F_SPIXR_DMA_TX_FIFO_EN; - MXC_SPIXR->ctrl3 &= ~MXC_F_SPIXR_CTRL3_DATA_WIDTH; - - // Setup to communicate in quad mode - MXC_SPIXR_SendCommand(&quad_cmd, 1, 1); - - // Wait until quad cmd is sent - while (MXC_SPIXR_Busy()) {} - - MXC_SPIXR_SetWidth(MXC_SPIXR_QUAD_SDIO); - MXC_SPIXR_ThreeWireModeDisable(); - MXC_SPIXR_DmaTXFIFODisable(); - MXC_SPIXR_DmaRXFIFODisable(); - MXC_SPIXR_TXFIFODisable(); - MXC_SPIXR_RXFIFODisable(); - - MXC_SPIXR_ExMemUseDummy(0x01); - MXC_SPIXR_ExMemSetReadCommand(A1024_READ); - MXC_SPIXR_ExMemSetWriteCommand(A1024_WRITE); - MXC_SPIXR_ExMemEnable(); - - return E_NO_ERROR; -} - -// ***************************************************************************** - -int main(void) -{ - // Defining Variable(s) to write & store data to RAM - uint8_t write_buffer[BUFFER_SIZE], read_buffer[BUFFER_SIZE]; - uint8_t *address = (uint8_t *)A1024_ADDRESS; - - /* Variable to store address of RAM */ - int temp, i; - int fail = 0; - unsigned int seed = 0; - - printf("\n****************** SPIXR Example ******************\n\n"); - printf("This example communicates with an MX25 SPI RAM on the\n"); - printf("EvKit using Quad SPI mode And the SPIXR peripheral\n"); - - // Configure the SPIXR - printf("\nSetting up the SPIXR\n"); - - if (E_NO_ERROR != setup()) { - fail += 1; - } - - // Initialize & write pseudo-random data to be written to the RAM - printf("\nTX BUFFER:\t "); - - for (i = 0; i < BUFFER_SIZE; i++) { - read_buffer[i] = 0; - temp = rand_r(&seed); - write_buffer[i] = temp; - // Write the data to the RAM - *(address + i) = write_buffer[i]; - printf("%x ", write_buffer[i]); - } - - // Read data from RAM - printf("\n\nRX BUFFER:\t "); - - for (i = 0; i < BUFFER_SIZE; i++) { - read_buffer[i] = *(address + i); - printf("%x ", read_buffer[i]); - } - - // Disable the SPIXR - MXC_SPIXR_Disable(); - - // Verify data being read from RAM - if (memcmp(write_buffer, read_buffer, BUFFER_SIZE)) { - printf("\n\nDATA IS NOT VERIFIED.\n\n"); - fail++; - } else { - printf("\n\nDATA IS VERIFIED.\n\n"); - } - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/SPI_MasterSlave/.cproject b/Examples/MAX32572/SPI_MasterSlave/.cproject deleted file mode 100644 index 7ff1be05012..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPI_MasterSlave/.project b/Examples/MAX32572/SPI_MasterSlave/.project deleted file mode 100644 index f389b9f6382..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SPI_MasterSlave - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SPI_MasterSlave/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/SPI_MasterSlave/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index a4921f4b3e7..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=SPI_MasterSlave -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32572 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/SPI_MasterSlave/.vscode/README.md b/Examples/MAX32572/SPI_MasterSlave/.vscode/README.md deleted file mode 100644 index f57d4364851..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/.vscode/README.md +++ /dev/null @@ -1,547 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) -* [Wiki](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/wiki) - * If it's not in the readme, check the wiki. - * If it's not in the wiki, open a ticket! - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX-series](https://www.maximintegrated.com/en/products/microcontrollers.html) microcontrollers. - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) -* [C/C++ VSCode Extension](https://github.com/microsoft/vscode-cpptools) -* [Maxim Micros SDK](https://www.maximintegrated.com/content/maximintegrated/en/design/software-description.html/swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.maximintegrated.com/en/products/microcontrollers/artificial-intelligence.html/tab4/vd_1_2eaktism#.YyDxHaE8U_Y.mailto). - -1. Download & install the Maxim Microcontrollers SDK for your OS from the links below. - * [Windows](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018720A) - * [MacOS](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MaximSDK installation, taking note of where the MaximSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -8. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/open_settings_json.jpg) - -9. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the MaximSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -10. Save your changes to the file with `CTRL + S` and restart VS Code. - -11. That's it! You're ready to start using Visual Studio Code to develop with Maxim's Microcontrollers. The MaximSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the SDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MaximSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for Maxim's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, Maxim's microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MaximSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MaximSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, Maxim's perpiheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MaximSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operater is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The following configuration variables are available. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MaximSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MaximSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MaximSDK. By default, the Makefile will attempt to locate the MaximSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the SDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MaximSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MaximSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.maximintegrated.com/en/design/technical-documents/userguides-and-manuals/7/7637.html). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MaximSDK will be searched. If the [SBT installer](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the Maxim test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the MaximSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the SDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/MaximIntegratedTechSupport/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/SPI_MasterSlave/.vscode/launch.json b/Examples/MAX32572/SPI_MasterSlave/.vscode/launch.json deleted file mode 100644 index 2e118bf25b0..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/.vscode/launch.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"set $pc=Reset_Handler"}, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI_MasterSlave/.vscode/settings.json b/Examples/MAX32572/SPI_MasterSlave/.vscode/settings.json deleted file mode 100644 index c9546d93a37..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"max32520.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SPI_MasterSlave/.vscode/tasks.json b/Examples/MAX32572/SPI_MasterSlave/.vscode/tasks.json deleted file mode 100644 index 81917f6f083..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI_MasterSlave/Makefile b/Examples/MAX32572/SPI_MasterSlave/Makefile deleted file mode 100644 index 875aaaf0dfd..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/Makefile +++ /dev/null @@ -1,399 +0,0 @@ -# /******************************************************************************* -# * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. -# * -# * Permission is hereby granted, free of charge, to any person obtaining a -# * copy of this software and associated documentation files (the "Software"), -# * to deal in the Software without restriction, including without limitation -# * the rights to use, copy, modify, merge, publish, distribute, sublicense, -# * and/or sell copies of the Software, and to permit persons to whom the -# * Software is furnished to do so, subject to the following conditions: -# * -# * The above copyright notice and this permission notice shall be included -# * in all copies or substantial portions of the Software. -# * -# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# * OTHER DEALINGS IN THE SOFTWARE. -# * -# * Except as contained in this notice, the name of Maxim Integrated -# * Products, Inc. shall not be used except as stated in the Maxim Integrated -# * Products, Inc. Branding Policy. -# * -# * The mere transfer of this software does not imply any licenses -# * of trade secrets, proprietary technology, copyrights, patents, -# * trademarks, maskwork rights, or any other form of intellectual -# * property whatsoever. Maxim Integrated Products, Inc. retains all -# * ownership rights. -# ******************************************************************************* -# */ - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32572 -TARGET_UC := MAX32572 -TARGET_LC := max32572 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -include ./project.mk -$(info Loaded project.mk) - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Default optimization level for debug builds (make DEBUG=1 ...) -# gcc.mk checks for this flag to add some additional debug -# info to the build, and should be used when you really need to -# debug. -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Fallback default optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles, who check this too -export MFLOAT_ABI - -ifeq "$(RISCV_CORE)" "" -# Default linkerfile is only specified for standard Arm-core projects. -# Otherwise, gcc_riscv.mk sets the appropriate riscv linkerfile. -LINKERFILE ?= $(TARGET_LC).ld -LINKERPATH ?= $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC - -# Check if linkerfile exists -ifeq ("$(wildcard $(LINKERPATH)/$(LINKERFILE))","") -# Doesn't exists, attempt to use root project folder. -LINKERPATH:=. -endif - -# Form full path to linkerfile. Works around MSYS2 edge case from (see MSDK-903). -LINKERFILE:=$(LINKERPATH)/$(LINKERFILE) -endif - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 1 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/SPI_MasterSlave/README.md b/Examples/MAX32572/SPI_MasterSlave/README.md deleted file mode 100644 index d7902ca0826..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/README.md +++ /dev/null @@ -1,42 +0,0 @@ -## Description - -This example demonstrates a SPI transaction between two distinct SPI peripherals on the MAX32572. - -SPI1 is setup as the master in this example and is configured by default to send/receive 1024 8-bit words to and from the slave. Likewise, SPI0 is setup as the slave and is also expecting to both send and receive 1024 8-bit words to and from the master. - -Once the master ends the transaction, the data received by the master and the slave is compared to the data sent by their counterpart to ensure all bytes were received properly. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Select RX SEL and TX SEL on headers JP7 and JP8. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Connect the SPI pins on headers JH1 and JH3. (P0.2-->P0.12 (MOSI), P0.3-->P0.11 (MISO), P0.4-->P0.13 (SCK), and P0.5-->P0.15 (CS)) - -## Expected Output - -The Console UART of the device will output these messages: - -``` -************************ SPI Master-Slave Example ************************ -This example sends data between two SPI peripherals in the MAX32572. -SPI0 is configured as the slave and SPI1 is configured as the master. -Each SPI peripheral sends 1024 bytes on the SPI bus. If the data received -by each SPI instance matches the data sent by the other instance, the -green LED will illuminate, otherwise the red LED will illuminate. - -Press SW2 to begin transaction. - -EXAMPLE SUCCEEDED! -``` \ No newline at end of file diff --git a/Examples/MAX32572/SPI_MasterSlave/SPI_MasterSlave.launch b/Examples/MAX32572/SPI_MasterSlave/SPI_MasterSlave.launch deleted file mode 100644 index 0237a1a6ec9..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/SPI_MasterSlave.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPI_MasterSlave/main.c b/Examples/MAX32572/SPI_MasterSlave/main.c deleted file mode 100644 index 3fecdd5ee23..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/main.c +++ /dev/null @@ -1,170 +0,0 @@ -/** - * @file main.c - * @brief SPI_MasterSlave Demo - * @details Shows Master loopback demo for QSPI0 - * Read the printf() for instructions - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include -#include - -#include "gpio.h" -#include "led.h" -#include "mxc_device.h" -#include "mxc_pins.h" -#include "nvic_table.h" -#include "pb.h" -#include "spi.h" - -/***** Definitions *****/ -#define DATA_LEN 1024 // Words -#define DATA_SIZE 8 -#define VALUE 0xFF -#define SPI_SPEED 100000 // Bit Rate (Max.: 1,850,000) - -#define SPI_MASTER MXC_SPI1 -#define SPI_MASTER_SSIDX 1 -#define SPI_SLAVE MXC_SPI0 -#define SPI_SLAVE_SSIDX 0 -#define SPI_SLAVE_IRQ SPI0_IRQn - -/***** Globals *****/ -uint8_t master_rx[DATA_LEN]; -uint8_t master_tx[DATA_LEN]; -uint8_t slave_rx[DATA_LEN]; -uint8_t slave_tx[DATA_LEN]; - -/***** Functions *****/ -void SPI_Slave_IRQHandler(void) -{ - MXC_SPI_AsyncHandler(SPI_SLAVE); -} - -int main(void) -{ - mxc_spi_req_t slave_req; - mxc_spi_req_t master_req; - - printf("\n************************ SPI Master-Slave Example ************************\n"); - printf("This example sends data between two SPI peripherals in the MAX32572.\n"); - printf("SPI%d is configured as the slave and SPI%d is configured as the master.\n", - MXC_SPI_GET_IDX(SPI_SLAVE), MXC_SPI_GET_IDX(SPI_MASTER)); - printf("Each SPI peripheral sends 1024 bytes on the SPI bus. If the data received\n", DATA_LEN); - printf("by each SPI instance matches the data sent by the other instance, the\n"); - printf("green LED will illuminate, otherwise the red LED will illuminate.\n\n"); - - printf("Press SW2 to begin transaction.\n\n"); - while (!PB_Get(0)) {} - - /***** Initialize data buffers *****/ - for (int i = 0; i < DATA_LEN; i++) { - master_tx[i] = i; - slave_tx[i] = i; - } - memset(master_rx, 0x0, DATA_LEN * sizeof(uint8_t)); - memset(slave_rx, 0x0, DATA_LEN * sizeof(uint8_t)); - - /***** Configure master *****/ - MXC_GPIO_Config(&gpio_cfg_spi1_ss1); - if (MXC_SPI_Init(SPI_MASTER, 1, 0, 1, (1 << SPI_MASTER_SSIDX), SPI_SPEED) != E_NO_ERROR) { - printf("\nSPI MASTER INITIALIZATION ERROR\n"); - while (1) {} - } - - MXC_SPI_SetDataSize(SPI_MASTER, DATA_SIZE); - MXC_SPI_SetWidth(SPI_MASTER, SPI_WIDTH_STANDARD); - - /***** Configure slave *****/ - MXC_GPIO_Config(&gpio_cfg_spi0_ss0); - if (MXC_SPI_Init(SPI_SLAVE, 0, 0, 1, (1 << SPI_SLAVE_SSIDX), SPI_SPEED) != E_NO_ERROR) { - printf("\nSPI SLAVE INITIALIZATION ERROR\n"); - while (1) {} - } - - MXC_SPI_SetDataSize(SPI_SLAVE, DATA_SIZE); - MXC_SPI_SetWidth(SPI_SLAVE, SPI_WIDTH_STANDARD); - - MXC_NVIC_SetVector(SPI_SLAVE_IRQ, SPI_Slave_IRQHandler); - NVIC_EnableIRQ(SPI_SLAVE_IRQ); - - /***** Initialize Transaction Parameters *****/ - master_req.spi = SPI_MASTER; - master_req.txData = (uint8_t *)master_tx; - master_req.rxData = (uint8_t *)master_rx; - master_req.txLen = DATA_LEN; - master_req.rxLen = DATA_LEN; - master_req.ssIdx = SPI_MASTER_SSIDX; - master_req.ssDeassert = 1; - master_req.txCnt = 0; - master_req.rxCnt = 0; - master_req.completeCB = NULL; - - slave_req.spi = SPI_SLAVE; - slave_req.txData = (uint8_t *)slave_tx; - slave_req.rxData = (uint8_t *)slave_rx; - slave_req.txLen = DATA_LEN; - slave_req.rxLen = DATA_LEN; - slave_req.ssIdx = SPI_SLAVE_SSIDX; - slave_req.ssDeassert = 1; - slave_req.txCnt = 0; - slave_req.rxCnt = 0; - slave_req.completeCB = NULL; - - /***** Perform Transaction *****/ - MXC_SPI_SlaveTransactionAsync(&slave_req); - MXC_SPI_MasterTransaction(&master_req); - - /***** Verify Results *****/ - if (memcmp(slave_rx, master_tx, sizeof(master_tx)) != 0) { // Master->Slave - printf("\nSlave failed to receive data.\n"); - LED_On(0); - return E_COMM_ERR; - } else if (memcmp(master_rx, slave_tx, sizeof(slave_tx)) != 0) { // Slave->Master - printf("\nMaster failed to receive data.\n"); - LED_On(0); - return E_COMM_ERR; - } else { - printf("EXAMPLE SUCCEEDED!\n"); - LED_On(1); - } - - MXC_SPI_Shutdown(SPI_MASTER); - MXC_SPI_Shutdown(SPI_SLAVE); - - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/SPI_MasterSlave/project.mk b/Examples/MAX32572/SPI_MasterSlave/project.mk deleted file mode 100644 index 5dece4dfe62..00000000000 --- a/Examples/MAX32572/SPI_MasterSlave/project.mk +++ /dev/null @@ -1,11 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -# ********************************************************** - -# Add your config here! - diff --git a/Examples/MAX32572/SPI_Usecase/.cproject b/Examples/MAX32572/SPI_Usecase/.cproject deleted file mode 100644 index f9e5937fb34..00000000000 --- a/Examples/MAX32572/SPI_Usecase/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPI_Usecase/.project b/Examples/MAX32572/SPI_Usecase/.project deleted file mode 100644 index 103822c0a19..00000000000 --- a/Examples/MAX32572/SPI_Usecase/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SPI_Usecase - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SPI_Usecase/.vscode/c_cpp_properties.json b/Examples/MAX32572/SPI_Usecase/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SPI_Usecase/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI_Usecase/.vscode/launch.json b/Examples/MAX32572/SPI_Usecase/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SPI_Usecase/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI_Usecase/.vscode/settings.json b/Examples/MAX32572/SPI_Usecase/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SPI_Usecase/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SPI_Usecase/.vscode/tasks.json b/Examples/MAX32572/SPI_Usecase/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SPI_Usecase/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SPI_Usecase/Makefile b/Examples/MAX32572/SPI_Usecase/Makefile deleted file mode 100644 index 2593971743d..00000000000 --- a/Examples/MAX32572/SPI_Usecase/Makefile +++ /dev/null @@ -1,157 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += spi_master -SRCS += spi_slave - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SPI_Usecase/README.md b/Examples/MAX32572/SPI_Usecase/README.md deleted file mode 100644 index e765b9aa595..00000000000 --- a/Examples/MAX32572/SPI_Usecase/README.md +++ /dev/null @@ -1,87 +0,0 @@ -## Description - -This example will send some test byte from master (SPI0) to slave (SPI1) then from slave to master -To change number of bytes please change TEST_BUFF_SIZE in spi_config.h file -Please connect SPI0 pins to SPI1 on EvKit - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Open all TS_EN jumper to access SPO0 Line -- Unplug TFT LCD Display to access SPI1 Line -- For MAX32572-QNKIT, Be sure DISP_RS_DC is connected to DISP1 socket - R53 should be assembled, to DISP_RS_DC line goes to DISP1 socket, Please check it -- Connect SPI0 pins with SPI1 with jumpers - SS : P0.2 (TS_SSEL0) <--> P1.0 (DISP_RS_DC) - MISO: P0.3 (TS_MISO) <--> P1.3 (DISP_MISO) - MOSI: P0.4 (TS_MOSI) <--> P1.4 (DISP_MOSI) - CLK : P0.5 (TS_CLK) <--> P1.5 (DISP_CLK) - -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - - -## Expected Output - -The Console UART of the device will output these messages: - -``` ------------------------------------------------------------------------------------------------ -Open all TS_EN jumper to access SPO0 Line -Unplug TFT LCD Display to access SPI1 Line -For MAX32572-QNKIT, Be sure DISP_RS_DC is connected to DISP1 socket - R53 should be assembled, to DISP_RS_DC line goes to DISP1 socket, Please check it - -SPI0 is configured as master -SPI1 is configured as slave -Please use jumper to connect these two spi ports: - SS : P0.2 (TS_SSEL0) <--> P1.0 (DISP_RS_DC) - MISO: P0.3 (TS_MISO) <--> P1.3 (DISP_MISO) - MOSI: P0.4 (TS_MOSI) <--> P1.4 (DISP_MOSI) - CLK : P0.5 (TS_CLK) <--> P1.5 (DISP_CLK) - -This example will send some test byte from master to slave then from slave to master -To change number of bytes please change TEST_BUFF_SIZE ------------------------------------------------------------------------------------------------ - -Master Send Packet -01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 -11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 -21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 -31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 - -Master Expect Packet -FF FE FD FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 -EF EE ED EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 -DF DE DD DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 -CF CE CD CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 -------------------------------------------------------- - -Master Receive: -FF FE FD FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 -EF EE ED EC EB EA E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 -DF DE DD DC DB DA D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 -CF CE CD CC CB CA C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 - -Master Send Receive Succeeded - -Slave Receive: -01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 -11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 -21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 -31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 - -Slave Send Receive Succeeded - -End of Example! -``` - diff --git a/Examples/MAX32572/SPI_Usecase/SPI_Usecase.launch b/Examples/MAX32572/SPI_Usecase/SPI_Usecase.launch deleted file mode 100644 index dcac41b3451..00000000000 --- a/Examples/MAX32572/SPI_Usecase/SPI_Usecase.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SPI_Usecase/main.c b/Examples/MAX32572/SPI_Usecase/main.c deleted file mode 100644 index 965f7859e24..00000000000 --- a/Examples/MAX32572/SPI_Usecase/main.c +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * - ******************************************************************************/ - -/** - * @file main.c - * @brief SPI Usecase! - * @details This example demonstrate how to use SPI master slave feature. - */ - -/******************************* INCLUDES ****************************/ -#include -#include -#include - -#include "spi_config.h" - -/******************************* DEFINES ****************************/ - -/******************************* Type Definitions ****************************/ - -/******************************* Variables ****************************/ - -/******************************* Static Functions ****************************/ -static void hex_dump(const char *title, unsigned char *buf, unsigned int len) -{ - unsigned int i; - - if (title) { - printf("%s", title); - } - - for (i = 0; i < len; i++) { - if (!(i % 16)) { - printf("\n"); - } - printf("%02X ", buf[i]); - } - printf("\n"); -} - -int main(void) -{ - int ret = 0; - unsigned int i; - unsigned char tx_buff[TEST_BUFF_SIZE] = { 0 }; - unsigned char rx_buff[TEST_BUFF_SIZE] = { 0 }; - unsigned char expect_packet[TEST_BUFF_SIZE] = { 0 }; - unsigned int len; - - printf("---------------------------------------------------------------------------------------" - "--------\n"); - printf("Open all TS_EN jumper to access SPO%d Line\n", MXC_SPI_GET_IDX(SPIx_MASTER)); - printf("Unplug TFT LCD Display to access SPI%d Line\n", MXC_SPI_GET_IDX(SPIx_SLAVE)); - printf("For MAX32572-QNKIT, Be sure DISP_RS_DC is connected to DISP1 socket\n" - "\tR53 should be assembled, to DISP_RS_DC line goes to DISP1 socket, Please check it\n"); - printf("\n"); - printf("SPI%d is configured as master\n", MXC_SPI_GET_IDX(SPIx_MASTER)); - printf("SPI%d is configured as slave\n", MXC_SPI_GET_IDX(SPIx_SLAVE)); - printf("Please use jumper to connect these two SPI ports:\n"); - printf("\tSS : P0.2 (TS_SSEL0) <--> P1.0 (DISP_RS_DC)\n"); - printf("\tMISO: P0.3 (TS_MISO) <--> P1.3 (DISP_MISO)\n"); - printf("\tMOSI: P0.4 (TS_MOSI) <--> P1.4 (DISP_MOSI)\n"); - printf("\tCLK : P0.5 (TS_CLK) <--> P1.5 (DISP_CLK)\n"); - printf("\n"); - printf( - "This example will send some test byte from master to slave then from slave to master\n"); - printf("To change number of bytes please change TEST_BUFF_SIZE\n"); - printf("---------------------------------------------------------------------------------------" - "--------\n\n"); - - for (i = 0; i < TEST_BUFF_SIZE; i++) { - tx_buff[i] = i + 1; - expect_packet[i] = 0xFF - i; - } - - ret = spi_slave_init(); - if (ret) { - return ret; - } - - ret = spi_master_init(); - if (ret) { - return ret; - } - - hex_dump("Master Send Packet", tx_buff, TEST_BUFF_SIZE); - hex_dump("\nMaster Expect Packet", expect_packet, TEST_BUFF_SIZE); - printf("-------------------------------------------------------\n"); - - spi_slave_send(expect_packet, TEST_BUFF_SIZE); - - ret = spi_master_send_rcv(tx_buff, TEST_BUFF_SIZE, rx_buff); - if (ret) { - printf("\nSPI Master Send Failed! (0x%X)\n", ret); - return ret; - } - hex_dump("\nMaster Receive:", rx_buff, TEST_BUFF_SIZE); - - if (memcmp(rx_buff, expect_packet, TEST_BUFF_SIZE) == 0) { - printf("\nMaster Send Receive Succeeded\n"); - } else { - printf("\nMaster Read Failed!\n"); - } - - memset(rx_buff, 0, sizeof(rx_buff)); - - spi_slave_rcv(rx_buff, TEST_BUFF_SIZE, &len); - hex_dump("\nSlave Receive:", rx_buff, len); - - if (memcmp(rx_buff, tx_buff, TEST_BUFF_SIZE) == 0) { - printf("\nSlave Send Receive Succeeded\n"); - } else { - printf("\nSlave Read Failed!\n"); - ret = -1; - } - - printf("\nEnd of Example!\n"); - - return ret; -} diff --git a/Examples/MAX32572/SPI_Usecase/spi_config.h b/Examples/MAX32572/SPI_Usecase/spi_config.h deleted file mode 100644 index 5ec910cdb65..00000000000 --- a/Examples/MAX32572/SPI_Usecase/spi_config.h +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_SPI_USECASE_SPI_CONFIG_H_ -#define EXAMPLES_MAX32572_SPI_USECASE_SPI_CONFIG_H_ - -#include "max32572.h" -#include "spi_regs.h" -#include "spi.h" - -/*** SPI Master Configuration ***/ -#define SPIx_MASTER MXC_SPI0 -#define SPI_BAUD_RATE 1000000 - -/*** SPI Slave Configuration ***/ -#define SPIx_SLAVE MXC_SPI1 -#define SPIx_IRQn SPI1_IRQn -#define SPIx_IRQHandler SPI1_IRQHandler - -// -#define TEST_BUFF_SIZE 64 - -/*** Functions ***/ -int spi_master_init(void); -int spi_master_send_rcv(unsigned char *src, unsigned int srcLen, unsigned char *dst); - -int spi_slave_init(void); -int spi_slave_send(unsigned char *src, unsigned int srcLen); -int spi_slave_rcv(unsigned char *dst, unsigned int maxLen, unsigned int *len); - -#endif // EXAMPLES_MAX32572_SPI_USECASE_SPI_CONFIG_H_ diff --git a/Examples/MAX32572/SPI_Usecase/spi_master.c b/Examples/MAX32572/SPI_Usecase/spi_master.c deleted file mode 100644 index 150dbc63e3e..00000000000 --- a/Examples/MAX32572/SPI_Usecase/spi_master.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -/******************************* INCLUDES ****************************/ -#include - -#include "spi_config.h" - -/******************************* DEFINES ****************************/ - -/******************************* Type Definitions ****************************/ - -/******************************* Variables ****************************/ - -/******************************* Static Functions ****************************/ - -/******************************* Public Functions ****************************/ -int spi_master_init(void) -{ - int ret = 0; - int masterMode = 1; - int quadModeUsed = 0; - int numSlaves = 1; - int ssPolarity = 0; - - ret = MXC_SPI_Init(SPIx_MASTER, masterMode, quadModeUsed, numSlaves, ssPolarity, SPI_BAUD_RATE); - if (ret) { - return ret; - } - - MXC_SPI_SetDataSize(SPIx_MASTER, 8); - MXC_SPI_SetWidth(SPIx_MASTER, SPI_WIDTH_STANDARD); - - return ret; -} - -int spi_master_send_rcv(unsigned char *src, unsigned int srcLen, unsigned char *dst) -{ - int ret = 0; - mxc_spi_req_t req; - - req.spi = SPIx_MASTER; - req.txData = (uint8_t *)src; - req.rxData = (uint8_t *)dst; - req.txLen = srcLen; - req.rxLen = srcLen; - req.ssIdx = 1; // SS1 is connected - req.ssDeassert = 1; - req.txCnt = 0; - req.rxCnt = 0; - req.completeCB = NULL; - - ret = MXC_SPI_MasterTransaction(&req); - - return ret; -} diff --git a/Examples/MAX32572/SPI_Usecase/spi_slave.c b/Examples/MAX32572/SPI_Usecase/spi_slave.c deleted file mode 100644 index 7033e3d8941..00000000000 --- a/Examples/MAX32572/SPI_Usecase/spi_slave.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -/******************************* INCLUDES ****************************/ -#include -#include - -#include "mxc_delay.h" - -#include "spi_config.h" - -/******************************* DEFINES ****************************/ - -/******************************* Type Definitions ****************************/ - -/******************************* Variables ****************************/ -static unsigned char g_rxBuff[256]; -static mxc_spi_req_t g_slave_req = { 0 }; - -static volatile int is_transaction_done = 0; - -/******************************* Static Functions ****************************/ -void SPIx_IRQHandler(void) -{ - MXC_SPI_AsyncHandler(SPIx_SLAVE); -} - -void spi_transaction_cb(void *req, int error_code) -{ - (void)error_code; - (void)req; - - is_transaction_done = 1; -} - -/******************************* Public Functions ****************************/ -int spi_slave_init(void) -{ - int ret = 0; - int masterMode = 0; - int quadModeUsed = 0; - int numSlaves = 1; - int ssPolarity = 0; - - ret = MXC_SPI_Init(SPIx_SLAVE, masterMode, quadModeUsed, numSlaves, ssPolarity, SPI_BAUD_RATE); - if (ret) { - return ret; - } - - MXC_SPI_SetDataSize(SPIx_SLAVE, 8); - MXC_SPI_SetWidth(SPIx_SLAVE, SPI_WIDTH_STANDARD); - - NVIC_EnableIRQ(SPIx_IRQn); - - return ret; -} - -int spi_slave_send(unsigned char *src, unsigned int srcLen) -{ - int ret = 0; - - g_slave_req.spi = SPIx_SLAVE; - g_slave_req.ssIdx = 0; // not meaning for slave - g_slave_req.ssDeassert = 1; - g_slave_req.txData = src; - g_slave_req.rxData = g_rxBuff; - g_slave_req.txLen = srcLen; - g_slave_req.rxLen = srcLen; - g_slave_req.txCnt = 0; - g_slave_req.rxCnt = 0; - g_slave_req.completeCB = spi_transaction_cb; - - ret = MXC_SPI_SlaveTransactionAsync(&g_slave_req); - - return ret; -} - -int spi_slave_rcv(unsigned char *dst, unsigned int maxLen, unsigned int *len) -{ - int ret = 0; - int counter = 100; - - while (is_transaction_done == 0) { - if (--counter == 0) { - break; - } - MXC_Delay(MXC_DELAY_MSEC(1)); - } - - memcpy(dst, g_rxBuff, g_slave_req.rxCnt); - *len = g_slave_req.rxCnt; - - return ret; -} diff --git a/Examples/MAX32572/SRCC/.cproject b/Examples/MAX32572/SRCC/.cproject deleted file mode 100644 index c77ca7c1839..00000000000 --- a/Examples/MAX32572/SRCC/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SRCC/.project b/Examples/MAX32572/SRCC/.project deleted file mode 100644 index ed3c511a6e1..00000000000 --- a/Examples/MAX32572/SRCC/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - SRCC - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/SRCC/.vscode/c_cpp_properties.json b/Examples/MAX32572/SRCC/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/SRCC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/SRCC/.vscode/launch.json b/Examples/MAX32572/SRCC/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/SRCC/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SRCC/.vscode/settings.json b/Examples/MAX32572/SRCC/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/SRCC/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/SRCC/.vscode/tasks.json b/Examples/MAX32572/SRCC/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/SRCC/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/SRCC/Makefile b/Examples/MAX32572/SRCC/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/SRCC/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/SRCC/README.md b/Examples/MAX32572/SRCC/README.md deleted file mode 100644 index aa1750be585..00000000000 --- a/Examples/MAX32572/SRCC/README.md +++ /dev/null @@ -1,32 +0,0 @@ -## Description - -The example compares the execution times required to read from MX25 RAM with the data cache enable and disabled. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** SRCC Example ***** - -Running test reads with data cache enabled. Time elapsed: 0.3587 -Running test reads with data cache disabled. Time elapsed: 4.2092 -Example Succeeded. -``` diff --git a/Examples/MAX32572/SRCC/SRCC.launch b/Examples/MAX32572/SRCC/SRCC.launch deleted file mode 100644 index 1c0e21cf50d..00000000000 --- a/Examples/MAX32572/SRCC/SRCC.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/SRCC/main.c b/Examples/MAX32572/SRCC/main.c deleted file mode 100644 index 8fdf53d2964..00000000000 --- a/Examples/MAX32572/SRCC/main.c +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief External Memory Cache Controller (SRCC) using SPIXR, writing to external SRAM - * @details Writing to External SRAM With Cache Enabled and Cache Disabled. - */ - -/***** Includes *****/ -#include -#include -#include -#include -#include - -#include - -/***** Definitions *****/ -// RAM Vendor Specific Commands -#define A1024_READ 0x03 -#define A1024_WRITE 0x02 -#define A1024_EQIO 0x38 - -// RAM Vendor Specific Values -#define BUFFER_SIZE 512 -#define A1024_ADDRESS 0x80000000 -#define ITERATIONS 5000 - -/***** Globals *****/ -int fail = 0; -int s, ss; - -mxc_spixr_cfg_t init_cfg = { - 0x08, /* Number of bits per character */ - MXC_SPIXR_QUAD_SDIO, /* SPI Data Width */ - 0x04, /* num of system clocks between SS active & first serial clock edge */ - 0x08, /* num of system clocks between last serial clock edge and ss inactive */ - 0x10, /* num of system clocks between transactions (read / write) */ - 0x800000, /* Baud freq */ -}; - -/***** Functions *****/ - -int setup(void) -{ - uint8_t quad_cmd = A1024_EQIO; /* pre-defined command to use quad mode */ - - // Initialize the desired configuration - if (MXC_SPIXR_Init(&init_cfg) != E_NO_ERROR) { - printf("FAILED: SPIXR was not initialized properly.\n"); - return E_UNINITIALIZED; - } - - /* Hide this with function in SPIXR.C later */ - MXC_SPIXR->dma &= ~MXC_F_SPIXR_DMA_RX_DMA_EN; - MXC_SPIXR->dma |= MXC_F_SPIXR_DMA_TX_FIFO_EN; - MXC_SPIXR->ctrl3 &= ~MXC_F_SPIXR_CTRL3_DATA_WIDTH; - - // Setup to communicate in quad mode - MXC_SPIXR_SendCommand(&quad_cmd, 1, 1); - - // Wait until quad cmd is sent - while (MXC_SPIXR_Busy()) {} - - MXC_SPIXR_SetWidth(MXC_SPIXR_QUAD_SDIO); - MXC_SPIXR_ThreeWireModeDisable(); - MXC_SPIXR_DmaTXFIFODisable(); - MXC_SPIXR_DmaRXFIFODisable(); - MXC_SPIXR_TXFIFODisable(); - MXC_SPIXR_RXFIFODisable(); - - MXC_SPIXR_ExMemUseDummy(0x01); - MXC_SPIXR_ExMemSetReadCommand(A1024_READ); - MXC_SPIXR_ExMemSetWriteCommand(A1024_WRITE); - MXC_SPIXR_ExMemEnable(); - - return E_NO_ERROR; -} - -void start_timer(void) -{ - if (MXC_RTC_Init(0, 0) != E_NO_ERROR) { - printf("Failed setup_timer.\n"); - return; - } - - MXC_RTC_Start(); -} - -void stop_timer(void) -{ - printf("Time elapsed: %d.%03d \n", MXC_RTC->sec, MXC_RTC->ssec); - MXC_RTC_Stop(); -} - -void test_function(void) -{ - // Defining Variable(s) to write & store data to RAM - uint8_t write_buffer[BUFFER_SIZE], read_buffer[BUFFER_SIZE]; - uint8_t *address = (uint8_t *)A1024_ADDRESS; - - /* Variable to store address of RAM */ - int temp, i; - unsigned int seed = 0; - - // Configure the SPIXR - if (E_NO_ERROR != setup()) { - fail += 1; - } - - // Initialize & write pseudo-random data to be written to the RAM - for (i = 0; i < BUFFER_SIZE; i++) { - temp = rand_r(&seed); - write_buffer[i] = temp; - // Write the data to the RAM - *(address + i) = temp; - } - - start_timer(); - - for (temp = 0; temp < ITERATIONS; temp++) { - // Read data from RAM - for (i = 0; i < BUFFER_SIZE; i++) { - read_buffer[i] = *(address + i); - } - - // Verify data being read from RAM - if (memcmp(write_buffer, read_buffer, BUFFER_SIZE)) { - printf("FAILED: Data was not read properly.\n\n"); - fail += 1; - break; - } - } - - stop_timer(); - - // Disable the SPIXR - MXC_SPIXR_Disable(); -} - -// ***************************************************************************** -int main(void) -{ - printf("***** SRCC Example *****\n\n"); - - //Instruction cache enabled - printf("Running test reads with data cache enabled. "); - MXC_SRCC_Enable(); - test_function(); - - //Instruction cache disabled - printf("Running test reads with data cache disabled. "); - MXC_SRCC_Disable(); - test_function(); - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/Security_Monitor/.cproject b/Examples/MAX32572/Security_Monitor/.cproject deleted file mode 100644 index 1f889f641ec..00000000000 --- a/Examples/MAX32572/Security_Monitor/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Security_Monitor/.project b/Examples/MAX32572/Security_Monitor/.project deleted file mode 100644 index 3f120226843..00000000000 --- a/Examples/MAX32572/Security_Monitor/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Security_Monitor - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Security_Monitor/.vscode/c_cpp_properties.json b/Examples/MAX32572/Security_Monitor/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Security_Monitor/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Security_Monitor/.vscode/launch.json b/Examples/MAX32572/Security_Monitor/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Security_Monitor/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Security_Monitor/.vscode/settings.json b/Examples/MAX32572/Security_Monitor/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Security_Monitor/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Security_Monitor/.vscode/tasks.json b/Examples/MAX32572/Security_Monitor/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Security_Monitor/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Security_Monitor/Makefile b/Examples/MAX32572/Security_Monitor/Makefile deleted file mode 100644 index 3bc3a6233ca..00000000000 --- a/Examples/MAX32572/Security_Monitor/Makefile +++ /dev/null @@ -1,160 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += keypad.c -SRCS += security_monitor.c -SRCS += utils.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . -IPATH += include -IPATH += lib - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Security_Monitor/README.md b/Examples/MAX32572/Security_Monitor/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/Security_Monitor/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/Security_Monitor/Security_Monitor.launch b/Examples/MAX32572/Security_Monitor/Security_Monitor.launch deleted file mode 100644 index 03ca4cea25e..00000000000 --- a/Examples/MAX32572/Security_Monitor/Security_Monitor.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Security_Monitor/include/keypad.h b/Examples/MAX32572/Security_Monitor/include/keypad.h deleted file mode 100644 index 7803379e173..00000000000 --- a/Examples/MAX32572/Security_Monitor/include/keypad.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * @file keypad.h - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#ifndef EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_KEYPAD_H_ -#define EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_KEYPAD_H_ - -/* Global includes */ - -int kb_init(void); -int kb_get_key(void); -int kb_read_num(unsigned int timeout); -int kb_select_from_list_xcol(const char *title, const char **items, int nb_items, int nb_col); - -#endif // EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_KEYPAD_H_ diff --git a/Examples/MAX32572/Security_Monitor/include/security_monitor.h b/Examples/MAX32572/Security_Monitor/include/security_monitor.h deleted file mode 100644 index 42e1f94889a..00000000000 --- a/Examples/MAX32572/Security_Monitor/include/security_monitor.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * security_monitor.h - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#ifndef EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_SECURITY_MONITOR_H_ -#define EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_SECURITY_MONITOR_H_ - -/* AES */ -#define AES_BASE 0x40005000 - -int smon_init(void); -int smon_check_aes_key(void); -int smon_rtc_status(void); -int smon_start_rtc(void); -int smon_clear_tamper_time(void); -int smon_check_tamper(void); -int smon_check_tamper_time(void); -int smon_clear_tamper(void); -int smon_load_aes_key(void); -int smon_set_int_sensors(void); -int smon_set_ext_sensors(void); -int smon_secalm_keywipe(void); -int smon_create_DRS(void); - -#endif // EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_SECURITY_MONITOR_H_ - -/* EOF */ diff --git a/Examples/MAX32572/Security_Monitor/include/utils.h b/Examples/MAX32572/Security_Monitor/include/utils.h deleted file mode 100644 index 71f40fef651..00000000000 --- a/Examples/MAX32572/Security_Monitor/include/utils.h +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_UTILS_H_ -#define EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_UTILS_H_ - -/***************************** DEFINES *********************************/ - -/***************************** TYPEDEF *********************************/ -typedef struct { - int year; - int mon; - int day; - int hour; - int min; - int sec; -} DateTime_t; - -/***************************** VARIABLES *********************************/ - -/***************************** FUNCTIONS *********************************/ -void utils_delay_ms(unsigned int ms); -void utils_hex_dump(const char *title, unsigned char *buf, unsigned int len); -void utils_seconds_to_date(DateTime_t *dt, unsigned int sec); - -#endif // EXAMPLES_MAX32572_SECURITY_MONITOR_INCLUDE_UTILS_H_ diff --git a/Examples/MAX32572/Security_Monitor/keypad.c b/Examples/MAX32572/Security_Monitor/keypad.c deleted file mode 100644 index a2edd43ef3e..00000000000 --- a/Examples/MAX32572/Security_Monitor/keypad.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * @file keypad.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include - -#include - -#include "keypad.h" - -// KB stand for Keyboard -#define INPUT_DEVICE_PC_KB 1 // use PC keyboard as input device -#define INPUT_DEVICE_EvKit_KB 2 // use EvKit keyboard as input device - -// -#define INPUT_DEVICE INPUT_DEVICE_PC_KB - -#if INPUT_DEVICE == INPUT_DEVICE_EvKit_KB -#define KEY_ENTER 'B' -#define KEY_ENTER2 'C' -#define KEY_CANCEL 'F' -#elif INPUT_DEVICE == INPUT_DEVICE_PC_KB -#define KEY_ENTER '\n' -#define KEY_ENTER2 '\r' -#define KEY_CANCEL 27 //ESC -#endif - -#if INPUT_DEVICE == INPUT_DEVICE_EvKit_KB - -static mxc_skbd_keys_t g_keys = { 0, 0, 0, 0 }; -static volatile int is_pressed = 0; - -/* keys mapping on the keyboard */ -static unsigned char keyboard_map[16] = { 'F', 'E', 'D', 'C', '3', '6', '9', 'B', - '2', '5', '8', '0', '1', '4', '7', 'A' }; - -static void keypadHandler(void) -{ - unsigned int status; - - MXC_SKBD_InterruptStatus(&status); - - if (MXC_F_SKBD_ISR_OVERIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_OVERIS); - } - - if (MXC_F_SKBD_ISR_PUSHIS & status) { - MXC_SKBD_ReadKeys(&g_keys); - is_pressed = 1; - /* Clear interruption */ - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_PUSHIS); - } - - if (MXC_F_SKBD_ISR_RELEASEIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_RELEASEIS); - } - - return; -} -#endif - -#if INPUT_DEVICE == INPUT_DEVICE_EvKit_KB -int kb_get_key(void) -{ - volatile unsigned int in; - volatile unsigned int out; - volatile unsigned int i; - uint16_t *key; - - int pressed_key = 0; - - if (is_pressed == 1) { - key = &g_keys.key0; - - for (i = 0; i < 4; i++) { - in = 0x0f & *key; - out = (0xf0 & *key) >> 4; - - if (*key) { - pressed_key = keyboard_map[(in - 4) * 4 + out]; - } - - *key = 0; - key++; - } - - is_pressed = 0; - } - - return pressed_key; -} -#elif INPUT_DEVICE == INPUT_DEVICE_PC_KB -int kb_get_key(void) -{ - int key; - key = MXC_UART_ReadCharacter(MXC_UART0); - return key; -} -#endif - -int kb_init(void) -{ - int rv = 0; - -#if INPUT_DEVICE == INPUT_DEVICE_EvKit_KB - mxc_skbd_config_t skb_cfg; - - skb_cfg.inputs = MXC_SKBD_KBDIO4 | MXC_SKBD_KBDIO5 | MXC_SKBD_KBDIO6 | MXC_SKBD_KBDIO7; - skb_cfg.outputs = MXC_SKBD_KBDIO0 | MXC_SKBD_KBDIO1 | MXC_SKBD_KBDIO2 | MXC_SKBD_KBDIO3; - skb_cfg.debounce = MXC_V_SKBD_CTRL1_DBTM_TIME10MS; - skb_cfg.irq_handler = (irq_handler_t)keypadHandler; - skb_cfg.reg_erase = 1; - - MXC_SKBD_PreInit(); - - rv = MXC_SKBD_Init(skb_cfg); - - if (rv) { - return E_UNINITIALIZED; - } - - rv = MXC_SKBD_EnableInterruptEvents(MXC_SKBD_INTERRUPT_STATUS_PUSHIS); - - if (rv) { - return E_UNINITIALIZED; - } - -#else - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_CTB); -#endif - - return rv; -} - -int kb_read_num(unsigned int timeout) -{ - (void)timeout; - int key; - int num = 0; - - while (1) { - key = kb_get_key(); - - if (key > 0) { - //echo - MXC_UART_WriteCharacter(MXC_UART0, (unsigned char)key); - - if ((key >= '0') && (key <= '9')) { - num = num * 10 + (key - '0'); - } - - if ((key == KEY_ENTER) || (key == KEY_ENTER2)) { - break; - } else if (key == KEY_CANCEL) { - num = -1; - break; - } - } - } - - MXC_UART_ClearRXFIFO(MXC_UART0); - - return num; -} - -int kb_select_from_list_xcol(const char *title, const char **items, int nb_items, int nb_col) -{ - int i, k; - int selected = 0; - int nb_row; - char buf[512]; - char item_data[64]; - int index; - - if (title) { - printf("\n\n%s\n", title); - } - - printf("---------------------------------------------------------\n"); - - if (nb_col == 0) { - nb_col = 1; - } - - nb_row = nb_items / nb_col; - - if (nb_items % 2) { - nb_row++; - } - - if (nb_items > 1) { - for (i = 0; i < nb_row; i++) { - buf[0] = '\0'; - - for (k = 0; k < nb_col; k++) { - index = i + (k * nb_row); - - if (index < nb_items) { - snprintf(item_data, sizeof(item_data), "%-3d- %-32s ", index + 1, items[index]); - strncat(buf, item_data, 64); - } - } - - printf("%s\n", buf); - } - - printf("\nPlease select:\n"); - - selected = kb_read_num(0); - - if (selected == -1) { - selected = 0; - } - - if (selected > nb_items) { - selected = 0; - } - } else if (nb_items == 1) { - selected = 1; - } - - return selected; -} diff --git a/Examples/MAX32572/Security_Monitor/main.c b/Examples/MAX32572/Security_Monitor/main.c deleted file mode 100644 index 27c25eab982..00000000000 --- a/Examples/MAX32572/Security_Monitor/main.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * @file main.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include - -#include "keypad.h" -#include "security_monitor.h" - -typedef struct { - const char *name; - int (*callback)(void); - const char *detail; -} list_t; - -static list_t list[] = { - { "Check AES Key", smon_check_aes_key, "Can be used to check Battery Backed key status" }, - { "Check RTC Status", smon_rtc_status, - "Is used to check whether RTC is running or not. When battery being removed RTC will stop." }, - { "Start RTC", smon_start_rtc, "To start RTC" }, - { "Set Ext Sensors", smon_set_ext_sensors, "To activated external sensors" }, - { "Set Int Sensors", smon_set_int_sensors, "To activated internal sensors" }, - { "Load AES Crypto Key", smon_load_aes_key, "To create and load Battery Backed key" }, - { "Check Tamper", smon_check_tamper, "To check tamper status" }, - { "Get Tamper Time", smon_check_tamper_time, "To read tamper time if it is exist" }, - { "Clear Tamper", smon_clear_tamper, "To clear tamper" }, - { "Clear Tamper Time", smon_clear_tamper_time, "To clear tamper time" }, - { "Set KeyWipe", smon_secalm_keywipe, "To manually remove secret keys" }, - { "Create DRS", smon_create_DRS, "To manually create DRS" } -}; - -static int system_init(void) -{ - int ret = 0; - - ret = smon_init(); - - if (ret == 0) { - ret = kb_init(); - } - - return ret; -} - -int main(void) -{ - int ret = 0; - int i; - const char *items[32]; - int nb_of_items = sizeof(list) / sizeof(list[0]); - - ret = system_init(); - - if (ret != 0) { - printf("\n\nError during initialization!!!\n"); - return ret; - } - - printf("\n\n Step by Step Security Monitor Example \n"); - printf("-------------------------------------------------\n"); - - printf("With this example you can run security monitor feature step by step" - "and the test result can be seen easily.\n"); - - for (i = 0; i < nb_of_items; i++) { - printf("\t%02d- %-20s:%s\n", (i + 1), list[i].name, list[i].detail); - } - - printf("-------------------------------------------------\n"); - printf("To activate system on t=0 time (after battery remove)\n" - " - Start RTC\n" - " - Activate Sensors\n" - " - Load AES Key\n"); - printf("\nInput device can be EvKit keypad or PC Keyboard (Default). To change it please check " - "keypad.c file\n"); - - for (i = 0; i < nb_of_items; i++) { - items[i] = list[i].name; - } - - // test loop - while (1) { - i = kb_select_from_list_xcol("Security Monitor", items, nb_of_items, 2); - - if ((i > 0) && (i <= nb_of_items)) { - --i; // index start from 0 - list[i].callback(); - } else { - printf("ERR:Invalid function number\n"); - printf("-------------------------------------\n"); - } - } - - return ret; -} diff --git a/Examples/MAX32572/Security_Monitor/security_monitor.c b/Examples/MAX32572/Security_Monitor/security_monitor.c deleted file mode 100644 index 49f972e1185..00000000000 --- a/Examples/MAX32572/Security_Monitor/security_monitor.c +++ /dev/null @@ -1,498 +0,0 @@ -/* - * security_monitor.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include -#include -#include - -#include "security_monitor.h" -#include "keypad.h" -#include "utils.h" - -/**************************** DEFINES ******************************/ -// CHIPPER Key type, BB: Battery Backed key -#define BB_KEY 0 -#define USER_KEY 1 - -static unsigned int *nvsram_region0 = (unsigned int *)0x20100000; -static unsigned int *nvsram_region1 = (unsigned int *)0x20100080; -static unsigned int *nvsram_region2 = (unsigned int *)0x20100100; -static unsigned int *nvsram_region3 = (unsigned int *)0x20100180; -static unsigned int *nvsram_region4 = (unsigned int *)0x20100200; -static unsigned int *nvsram_region5 = (unsigned int *)0x20100280; -static unsigned int *nvsram_region6 = (unsigned int *)0x20100300; -static unsigned int *nvsram_region7 = (unsigned int *)0x20100380; - -/**************************** Static Functions *******************************/ -void NMI_Handler(void) -{ - printf("\n[-----------------------------------------------]"); - printf("\n[ NMI - DRS ]"); - printf("\n[-----------------------------------------------]"); - - // Find attack source - smon_check_tamper(); - /* Perform needed action according to secalm register */ - //... - - /* Acknowledge NMI IRQ */ - NVIC->ICPR[0] = (1 << 2); - printf("\n\n/* Now restarting device...*/\n "); - utils_delay_ms(250); // wait until all UART data has been sent - - // Reset device - MXC_SYS_Reset_Periph(MXC_SYS_RESET0_SYS); -} - -void get_aes_result(unsigned int *data, int enc, int chipper_key) -{ - /* Clear CPH_DONE */ - MXC_CTB->crypto_ctrl = 0; - /* Compute AES encryption with user or secure key, 128-bit key length */ - /* Compute AES encryption with User key, 256-bit key length */ - - MXC_CTB->cipher_ctrl = 0; - - if (enc == 0) { - MXC_CTB->cipher_ctrl |= 1; // means dec - } - - MXC_CTB->cipher_ctrl |= MXC_S_CTB_CIPHER_CTRL_CIPHER_AES128; - - if (chipper_key == BB_KEY) { - // user BB key for enc/dec - MXC_CTB->cipher_ctrl |= 0x08; // USE AES key - } - - MXC_CTB->crypto_din[0] = data[0]; - MXC_CTB->crypto_din[1] = data[1]; - MXC_CTB->crypto_din[2] = data[2]; - MXC_CTB->crypto_din[3] = data[3]; - - /* Poll to wait for AES completion */ - while (!(MXC_CTB->crypto_ctrl & MXC_F_CTB_CRYPTO_CTRL_CPH_DONE)) {} - - /* Clear CPH_DONE */ - MXC_CTB->crypto_ctrl = 0; - /* Read computed data */ - data[0] = MXC_CTB->crypto_dout[0]; - data[1] = MXC_CTB->crypto_dout[1]; - data[2] = MXC_CTB->crypto_dout[2]; - data[3] = MXC_CTB->crypto_dout[3]; -} - -static void set_nvsram(void) -{ - const char *str; - - str = "TEST LINE 012345"; - memcpy(nvsram_region0, str, strlen(str)); - str = "TEST LINE 123456"; - memcpy(nvsram_region1, str, strlen(str)); - str = "TEST LINE 234567"; - memcpy(nvsram_region2, str, strlen(str)); - str = "TEST LINE 345678"; - memcpy(nvsram_region3, str, strlen(str)); - str = "TEST LINE 456789"; - memcpy(nvsram_region4, str, strlen(str)); - str = "TEST LINE 567890"; - memcpy(nvsram_region5, str, strlen(str)); - str = "TEST LINE 678901"; - memcpy(nvsram_region6, str, strlen(str)); - str = "TEST LINE 789012"; - memcpy(nvsram_region7, str, strlen(str)); - - return; -} - -static void dump_nvsram(char *title) -{ - int i, k; - unsigned char buf[16] = { 0 }; - unsigned char byt; - unsigned int nb_regions = 8; - unsigned int *regions[] = { nvsram_region0, nvsram_region1, nvsram_region2, nvsram_region3, - nvsram_region4, nvsram_region5, nvsram_region6, nvsram_region7 }; - - if (title) { - printf("%s\n", title); - } - - for (i = 0; i < nb_regions; i++) { - memcpy(buf, regions[i], sizeof(buf)); - - printf("NVSRAM Region-%d: ", i); - - for (k = 0; k < sizeof(buf); k++) { - byt = buf[k]; - if ((byt < 0x20) || (byt > 0x7E)) { - byt = ' '; - } - printf("%c", byt); - } - printf("\n"); - } - - return; -} - -/**************************** Public Functions *******************************/ -int smon_init(void) -{ - // - MXC_SMON_Init(); - - // - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_CTB); - - return 0; -} - -int smon_check_aes_key(void) -{ - unsigned int data[4]; - - /* - * check key erasing - * define AES data - */ - data[0] = 0xd44be966; - data[1] = 0x3b2c8aef; - data[2] = 0x59fa4c88; - data[3] = 0x2e2b34ca; - - utils_hex_dump("\nPlain Text:", (unsigned char *)data, 16); - - get_aes_result(data, 0, BB_KEY); - utils_hex_dump("AES DEC Result:", (unsigned char *)data, 16); - - /* if keywipe has been performed, the secure AES key is 0x0000000...000 */ - if ((data[3] == 0) && (data[2] == 0) && (data[1] == 0) && (data[0] == 0)) { - printf("\t### keywipe has been performed !!!###\n"); - } else { - printf("\tNo keywipe\n"); - } - - dump_nvsram("--------------------------------"); - - return 0; -} - -int smon_rtc_status(void) -{ - /* RTC_RTCCN */ - if (MXC_RTC->ctrl & MXC_F_RTC_CTRL_RTCE) { - /* RTC running when check occurred */ - printf("\nRTC Running.\n"); - } else { - printf("\nRTC Stopped.\n"); - } - - return 0; -} - -int smon_start_rtc(void) -{ - if (MXC_RTC->ctrl & MXC_F_RTC_CTRL_RTCE) { - printf("\nRTC Running.\n"); - return 0; // it is already running - } - - // - MXC_RTC_Init(0, 0); - // - MXC_RTC_Start(); - - /* Wait for the busy flag */ - while (((MXC_RTC->ctrl >> MXC_F_RTC_CTRL_BUSY_POS) & 0x1) == 1) {} - - /* Read back RTC control register */ - printf("\nRTC control register: 0x%08x", (unsigned int)MXC_RTC->ctrl); - - /* Wait for the busy flag */ - while (((MXC_RTC->ctrl >> MXC_F_RTC_CTRL_BUSY_POS) & 0x1) == 1) {} - - printf("\nRTC second register: 0x%08x", (unsigned int)MXC_RTC->sec); - - // check rtc status - smon_rtc_status(); - - return 0; -} - -int smon_set_ext_sensors(void) -{ -#ifdef _UNLOCK_ - printf("********************************\n"); - printf("* EXT SENSORS _UNLOCKED *\n"); - printf("********************************\n"); -#endif /* _UNLOCK_ */ - - /* External sensors configuration - * enable all the external sensors - * set external sensor number to 0 - * set external sensor frequency to the max value: EXTFREQ = 000 - * don't divide the 8kHz input clock: DIVCLK = 000 - * lock the register - */ -#ifndef _UNLOCK_ - MXC_SMON->extscn = MXC_F_SMON_EXTSCN_LOCK | MXC_F_SMON_EXTSCN_EXTS_EN0 | - MXC_F_SMON_EXTSCN_EXTS_EN1 | MXC_F_SMON_EXTSCN_EXTS_EN2 | - MXC_F_SMON_EXTSCN_EXTS_EN3 | MXC_F_SMON_EXTSCN_EXTS_EN4 | - MXC_F_SMON_EXTSCN_EXTS_EN5; -#else - MXC_SMON->extscn = MXC_F_SMON_EXTSCN_EXTS_EN0 | MXC_F_SMON_EXTSCN_EXTS_EN1 | - MXC_F_SMON_EXTSCN_EXTS_EN2 | MXC_F_SMON_EXTSCN_EXTS_EN3 | - MXC_F_SMON_EXTSCN_EXTS_EN4 | MXC_F_SMON_EXTSCN_EXTS_EN5; -#endif /* _UNLOCK_ */ - - printf("\nAll External Sensors Activated\n"); - return 0; -} - -int smon_set_int_sensors(void) -{ - /* - * Internal sensors configuration - * bit 0: Shield - * bit 1: Temp - * bit 2: Vbat - */ -#ifndef _UNLOCK_ - MXC_SMON->intscn = MXC_F_SMON_INTSCN_LOCK | MXC_F_SMON_INTSCN_SHIELD_EN | - MXC_F_SMON_INTSCN_TEMP_EN | MXC_F_SMON_INTSCN_VBAT_EN; -#else - MXC_SMON->intscn = MXC_F_SMON_INTSCN_SHIELD_EN | MXC_F_SMON_INTSCN_TEMP_EN | - MXC_F_SMON_INTSCN_VBAT_EN; -#endif - - printf("\nAll Internal Sensors Activated\n"); - - return 0; -} - -int load_user_chipper_key(void) -{ - unsigned int result = 0; - unsigned char aes_key[32] = { - 1, 2, 3, 4, 5, 6, - }; - unsigned int *ptr; - unsigned int *ptr_key_register = (unsigned int *)AES_BASE; - - /* - * - * Generate a pseudo random and store it into aes_key - * Then register it on AES register - * - */ - // generate_random() - - ptr = (unsigned int *)&aes_key[0]; - - /* Load aes_key */ - *ptr_key_register++ = ptr[0]; - *ptr_key_register++ = ptr[1]; - *ptr_key_register++ = ptr[2]; - *ptr_key_register++ = ptr[3]; - *ptr_key_register++ = ptr[4]; - *ptr_key_register++ = ptr[5]; - *ptr_key_register++ = ptr[6]; - *ptr_key_register = ptr[7]; - - return result; -} - -int load_aes_bb_key(void) -{ - // generate and transfer AES key - MXC_TRNG->cn |= MXC_F_TRNG_ST_AESKGD_MEU_S; - - while ((MXC_SMON->secdiag & MXC_F_SMON_SECDIAG_AESKT) == 0) { - // wait until it transfer to AES key register - } - - return 0; -} - -int smon_load_aes_key(void) -{ - load_aes_bb_key(); - - /* - * Configure plain/encrypted area of the backed NVSRAM. - * NVSRAM is divided in 8 regions, Each MEU_CFG bit correspond to one of the 8 regions: - * 0 --> region is in plain - * 1 --> region is encrypted - */ - MXC_SMON->meucfg |= (1 << 0); // region0: encrypted - /* - * For test purpose keep region1 as plain text - */ - //MXC_SMON->meucfg |= (1<<1); // region1: encrypted - MXC_SMON->meucfg |= (1 << 2); // region2: encrypted - MXC_SMON->meucfg |= (1 << 3); // region3: encrypted - MXC_SMON->meucfg |= (1 << 4); // region4: encrypted - MXC_SMON->meucfg |= (1 << 5); // region5: encrypted - MXC_SMON->meucfg |= (1 << 6); // region6: encrypted - MXC_SMON->meucfg |= (1 << 7); // region7: encrypted - - /* - * Lock Register. - * Once locked, the MEUCFG register can no longer be modified. - * Only a battery disconnect will clear this bit. VBAT powers this register. - * 0: Not locked. Writes to this register allowed. - * 1: Locked. Writes to this register ignored. - */ - MXC_SMON->meucfg |= (1 << 31); // LOCK it - - // reset crypto module - MXC_CTB->crypto_ctrl |= MXC_F_CTB_CRYPTO_CTRL_RST; - - // wait until ready - while (!(MXC_CTB->crypto_ctrl & MXC_F_CTB_CRYPTO_CTRL_RDY)) {} - - if (MXC_SMON->secdiag & MXC_F_SMON_SECDIAG_AESKT) { - printf("\nAES Key has been transferred to battery backed location\n"); - - // Write a test string to demonstrate ENC/Plain feature of NVSRAM - set_nvsram(); - dump_nvsram("--------------------------------"); - } else { - printf("\nERROR!, AES Key has NOT been transferred to battery backed location\n"); - } - - return 0; -} - -/* This function is used to clear security alarm registers */ -int smon_clear_tamper(void) -{ - // clear all flgas - MXC_SMON_ClearFlags((unsigned int)-1); - printf("\nTamper Flags Cleared\n"); - - return 0; -} - -int smon_check_tamper_time(void) -{ - DateTime_t dt; - unsigned int rtcLog; - - rtcLog = MXC_SMON->dlrtc; - - if (rtcLog) { - utils_seconds_to_date(&dt, rtcLog); - printf("\nTamper Time is: %u-%02u-%02u %02u:%02u:%02u\n", dt.year, dt.mon + 1, dt.day + 1, - dt.hour, dt.min, dt.sec); - } else { - printf("\nTamper Time is: 0 (MXC_SMON->DLRRTC=0)\n"); - } - - return 0; -} - -int smon_check_tamper(void) -{ - unsigned int reg; - - reg = MXC_SMON_GetFlags(); - - printf("\nSECALM register: %X\n", reg); - - printf("\nshield: %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_SHIELDF) >> MXC_F_SMON_SECALM_SHIELDF_POS); - printf("\nhtf : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_HITEMP) >> MXC_F_SMON_SECALM_HITEMP_POS); - printf("\nltf : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_LOTEMP) >> MXC_F_SMON_SECALM_LOTEMP_POS); - printf("\nhbf : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_BATHI) >> MXC_F_SMON_SECALM_BATHI_POS); - printf("\nlbf : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_BATLO) >> MXC_F_SMON_SECALM_BATLO_POS); - printf("\nexts0 : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_EXTSTAT0) >> MXC_F_SMON_SECALM_EXTSTAT0_POS); - printf("\nexts1 : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_EXTSTAT1) >> MXC_F_SMON_SECALM_EXTSTAT1_POS); - printf("\nexts2 : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_EXTSTAT2) >> MXC_F_SMON_SECALM_EXTSTAT2_POS); - printf("\nexts3 : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_EXTSTAT3) >> MXC_F_SMON_SECALM_EXTSTAT3_POS); - printf("\nexts4 : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_EXTSTAT4) >> MXC_F_SMON_SECALM_EXTSTAT4_POS); - printf("\nexts5 : %d", - (unsigned int)(reg & MXC_F_SMON_SECALM_EXTSTAT5) >> MXC_F_SMON_SECALM_EXTSTAT5_POS); - - return 0; -} - -int smon_clear_tamper_time(void) -{ - printf("\nTo Clear tamper time: Follow below steps" - " 1: Power off EvKit\n" - " 2: Remove battery\n" - " 3: Power on EvKit\n"); - - return 0; -} - -int smon_secalm_keywipe(void) -{ - MXC_SMON_isBusy(SMON_SECALARM, 0); - MXC_SMON->secalm |= MXC_F_SMON_SECALM_KEYWIPE; - MXC_SMON_isBusy(SMON_SECALARM, 0); - - printf("\nSECALM.KEYWIPE bit will be set to 1\n"); - - return 0; -} - -int smon_create_DRS(void) -{ - printf("\nManual DRS will be created\n"); - - MXC_SMON_isBusy(SMON_SECALARM, 0); - MXC_SMON->secalm |= MXC_F_SMON_SECALM_DRS; - MXC_SMON_isBusy(SMON_SECALARM, 0); - - printf("Manual DRS created\n"); - - return 0; -} diff --git a/Examples/MAX32572/Security_Monitor/utils.c b/Examples/MAX32572/Security_Monitor/utils.c deleted file mode 100644 index 61cb724a48b..00000000000 --- a/Examples/MAX32572/Security_Monitor/utils.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * utils.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include -#include -#include "utils.h" - -/**************************** DEFINES ******************************/ -#define SECONDSONEDAY (24 * 3600) -#define STARTYEAR 1970 - -/**************************** Variables ******************************/ -static unsigned char daysOfMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; - -/**************************** Static Functions *******************************/ - -/**************************** Public Functions *******************************/ -void utils_hex_dump(const char *title, unsigned char *buf, unsigned int len) -{ - unsigned int i; - - /* Print title */ - if (title) { - printf("%s", title); - } - - /* Print buffer bytes */ - for (i = 0; i < len; i++) { - if (!(i % 16)) { - printf("\n"); - } - - printf("%02X ", buf[i]); - } - - printf("\n"); -} - -void utils_seconds_to_date(DateTime_t *dt, unsigned int sec) -{ - int startYear = STARTYEAR; - unsigned int oneYearSecs = 365 * SECONDSONEDAY, oneMonthSecs; - unsigned char leapYear = 0, i, mon = 0, day, hour, min; - - while (1) { - if ((startYear % 4 == 0 && startYear % 100 != 0) || (startYear % 400 == 0)) { - leapYear = 1; - } else { - leapYear = 0; - } - - if (sec >= (oneYearSecs + (leapYear * SECONDSONEDAY))) { - startYear++; - sec -= (oneYearSecs + (leapYear * SECONDSONEDAY)); - } else { - //month - for (i = 0; i < 12; i++) { - oneMonthSecs = (unsigned int)daysOfMonth[i] * SECONDSONEDAY; - - if (leapYear && i == 1) { // february leap year error - oneMonthSecs += SECONDSONEDAY; - } - - if (sec < oneMonthSecs) { - mon = i; - break; - } else { - sec -= oneMonthSecs; - } - } - - //day - day = sec / SECONDSONEDAY; - sec = sec % SECONDSONEDAY; - - //hour - hour = sec / 3600; - sec = sec % 3600; - - //min - min = sec / 60; - sec = sec % 60; - - dt->year = startYear; - dt->mon = mon; - dt->day = day; - dt->hour = hour; - dt->min = min; - dt->sec = sec; - return; - } - } -} - -void utils_delay_ms(unsigned int ms) -{ - MXC_Delay(ms * 1000UL); -} diff --git a/Examples/MAX32572/Semaphore/.cproject b/Examples/MAX32572/Semaphore/.cproject deleted file mode 100644 index 29cdee302bc..00000000000 --- a/Examples/MAX32572/Semaphore/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Semaphore/.project b/Examples/MAX32572/Semaphore/.project deleted file mode 100644 index c2ac5876b41..00000000000 --- a/Examples/MAX32572/Semaphore/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Semaphore - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Semaphore/.vscode/c_cpp_properties.json b/Examples/MAX32572/Semaphore/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Semaphore/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Semaphore/.vscode/launch.json b/Examples/MAX32572/Semaphore/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Semaphore/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Semaphore/.vscode/settings.json b/Examples/MAX32572/Semaphore/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Semaphore/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Semaphore/.vscode/tasks.json b/Examples/MAX32572/Semaphore/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Semaphore/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Semaphore/Makefile b/Examples/MAX32572/Semaphore/Makefile deleted file mode 100644 index e58a832b891..00000000000 --- a/Examples/MAX32572/Semaphore/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += resources/all_imgs.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += resources - -# Where to find header files for this test -IPATH = . -IPATH += resources - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Semaphore/README.md b/Examples/MAX32572/Semaphore/README.md deleted file mode 100644 index c7cd46aa57b..00000000000 --- a/Examples/MAX32572/Semaphore/README.md +++ /dev/null @@ -1,39 +0,0 @@ -## Description - -The example demonstartes the use of Semaphore. - -A semaphore is shared between task A and task A and task B. Use PB1 to start task A by acquiring the semaphore. Task B cannot start unless A drops the semaphore. Use PB2 to start task B. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** Semaphore Example ***** -KEY_1 (P3.07)= A tries to write -KEY_2 (P3.06)= B tries to write - -A acquired semaphore! -A started writing... -Shared Variable = 100 - -A stopped writing. -A dropped the semaphore... -``` diff --git a/Examples/MAX32572/Semaphore/Semaphore.launch b/Examples/MAX32572/Semaphore/Semaphore.launch deleted file mode 100644 index 967347dd159..00000000000 --- a/Examples/MAX32572/Semaphore/Semaphore.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Semaphore/main.c b/Examples/MAX32572/Semaphore/main.c deleted file mode 100644 index 78774bf05d8..00000000000 --- a/Examples/MAX32572/Semaphore/main.c +++ /dev/null @@ -1,224 +0,0 @@ - -/** - * @file main.c - * @brief Semaphore example - * @details Press button to overwrite a global variable. If someone is already writing to it, deny the right - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include - -#include - -#include "bitmap.h" - -/***** Definitions *****/ -#define KEY_1 1 //P(3.07) -#define KEY_2 2 //P(3.06) - -#define BUTTON_SIZE_X 42 // -#define BUTTON_SIZE_Y 41 // - -/***** Globals *****/ -volatile int A_active = 0; -volatile int B_active = 0; - -int sharedVariable = 0; - -/***** Functions *****/ -static void PB_AWrites(void) -{ - int retval; - - //First check if A is already writing - if (!A_active) { - //Check if B is writing - retval = MXC_SEMA_CheckSema(0); - - if (retval == E_NO_ERROR) { - if ((MXC_SEMA_GetSema(0)) == E_NO_ERROR) { - printf("A acquired semaphore!\n"); - printf("A started writing...\n"); - sharedVariable = 100; - printf("Shared Variable = %d\n\n", sharedVariable); - A_active = 1; - } - } else if (retval == E_BUSY) { - printf("A can't write right now.\n"); - printf("Shared Variable = %d\n\n", sharedVariable); - return; - } - } else { - A_active = !A_active; - //Semaphore should be busy... - retval = MXC_SEMA_CheckSema(0); - - if (retval == E_BUSY) { - printf("A stopped writing.\n"); - MXC_SEMA_FreeSema(0); - printf("A dropped the semaphore...\n\n"); - } else { - printf("Something went wrong.\n\n"); - return; - } - } - - printf("\n"); - - return; -} - -static void PB_BWrites(void) -{ - int retval; - - //First check if B is already writing - if (!B_active) { - //Check if A is writing - retval = MXC_SEMA_CheckSema(0); - - if (retval == E_NO_ERROR) { - if ((MXC_SEMA_GetSema(0)) == E_NO_ERROR) { - printf("B acquired semaphore!\n"); - printf("B started writing...\n"); - sharedVariable = 200; - printf("Shared Variable = %d\n\n", sharedVariable); - B_active = 1; - } - } else if (retval == E_BUSY) { - printf("B can't write right now.\n"); - printf("Shared Variable = %d\n\n", sharedVariable); - return; - } - } else { - B_active = !B_active; - //Semaphore should be busy... - retval = MXC_SEMA_CheckSema(0); - - if (retval == E_BUSY) { - printf("B stopped writing.\n"); - MXC_SEMA_FreeSema(0); - printf("B dropped the semaphore...\n\n"); - } else { - printf("Something went wrong.\n\n"); - return; - } - } - - printf("\n"); - - return; -} - -static int setup_display(void) -{ - int x = 100; - int y = 150; - - MXC_TFT_Init(); - MXC_TS_Init(); - // - MXC_TS_Start(); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_white_bmp); - - MXC_TFT_ShowImage(x, y, key_1_bg_white_bmp); - MXC_TS_AddButton(x, y, x + BUTTON_SIZE_X, y + BUTTON_SIZE_Y, KEY_1); - - x += BUTTON_SIZE_X + 40; // add 40pixel space - MXC_TFT_ShowImage(x, y, key_2_bg_white_bmp); - MXC_TS_AddButton(x, y, x + BUTTON_SIZE_X, y + BUTTON_SIZE_Y, KEY_2); - - // set up font - MXC_TFT_SetFont(urw_gothic_13_grey_bg_white); - - return 0; -} - -// ***************************************************************************** -int main(void) -{ - int key; - printf("***** Semaphore Example *****\n"); - printf("KEY_1 (P3.07)= A tries to write\n"); - printf("KEY_2 (P3.06)= B tries to write\n"); - printf("\n"); - - setup_display(); - - MXC_SEMA_Init(); - - if ((MXC_SEMA_GetSema(0)) == E_NO_ERROR) { - printf("Semaphore acquired.\n"); - } - - if ((MXC_SEMA_CheckSema(0)) == E_NO_ERROR) { - printf("Semaphore free.\n"); - } else { - printf("Semaphore locked.\n"); - } - - MXC_SEMA_FreeSema(0); - - if ((MXC_SEMA_CheckSema(0)) == E_NO_ERROR) { - printf("Semaphore free.\n"); - } else { - printf("Semaphore locked.\n"); - } - - printf("\n\nExample running.\n\n"); - - while (1) { - // check touch screen key - key = MXC_TS_GetKey(); - - if (key > 0) { - switch (key) { - case KEY_1: - PB_AWrites(); - break; - - case KEY_2: - PB_BWrites(); - break; - - default: - break; - } - } - } -} diff --git a/Examples/MAX32572/Semaphore/resources/all_imgs.c b/Examples/MAX32572/Semaphore/resources/all_imgs.c deleted file mode 100644 index 82562770701..00000000000 --- a/Examples/MAX32572/Semaphore/resources/all_imgs.c +++ /dev/null @@ -1,34501 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".bin_storage_img"))) __attribute__((__used__)) -const unsigned char imgs_arr[] = { - /* - Header - */ - 0x18, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x04, - 0x00, - 0x00, - 0x3E, - 0x05, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - - /* - Palette - */ - 0x01, - 0x1D, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xA5, - 0x18, - 0x00, - 0x70, - 0x73, - 0x71, - 0x00, - 0x33, - 0x35, - 0x3B, - 0x00, - 0x20, - 0xE8, - 0xD9, - 0x00, - 0x03, - 0x02, - 0xD5, - 0x00, - 0x00, - 0xA9, - 0x00, - 0x00, - 0x6F, - 0x6E, - 0x7A, - 0x00, - 0xFF, - 0xFD, - 0xFF, - 0x00, - 0x76, - 0x75, - 0x76, - 0x00, - 0x95, - 0x94, - 0x95, - 0x00, - 0x6A, - 0x66, - 0x69, - 0x00, - 0x7A, - 0x76, - 0x78, - 0x00, - 0x76, - 0x72, - 0x74, - 0x00, - 0x75, - 0x71, - 0x73, - 0x00, - 0x71, - 0x6F, - 0x6F, - 0x00, - 0x76, - 0x75, - 0x75, - 0x00, - 0x75, - 0x74, - 0x74, - 0x00, - 0x74, - 0x73, - 0x73, - 0x00, - 0x73, - 0x72, - 0x72, - 0x00, - 0x72, - 0x71, - 0x71, - 0x00, - 0x91, - 0x90, - 0x90, - 0x00, - 0x86, - 0x85, - 0x85, - 0x00, - 0x67, - 0x65, - 0x64, - 0x00, - 0x63, - 0x61, - 0x60, - 0x00, - 0x70, - 0x6E, - 0x6D, - 0x00, - 0x6A, - 0x68, - 0x66, - 0x00, - 0x77, - 0x76, - 0x75, - 0x00, - 0x71, - 0x70, - 0x6F, - 0x00, - 0x6E, - 0x6D, - 0x6C, - 0x00, - 0x6D, - 0x6C, - 0x6B, - 0x00, - 0x6C, - 0x6B, - 0x6A, - 0x00, - 0x90, - 0x8F, - 0x8E, - 0x00, - 0x88, - 0x87, - 0x86, - 0x00, - 0x77, - 0x74, - 0x70, - 0x00, - 0x76, - 0x73, - 0x6F, - 0x00, - 0x75, - 0x72, - 0x6E, - 0x00, - 0x4F, - 0x4D, - 0x4A, - 0x00, - 0x5A, - 0x58, - 0x55, - 0x00, - 0x58, - 0x56, - 0x53, - 0x00, - 0x56, - 0x54, - 0x51, - 0x00, - 0x3F, - 0x3D, - 0x39, - 0x00, - 0x44, - 0x42, - 0x3E, - 0x00, - 0x47, - 0x45, - 0x41, - 0x00, - 0x4C, - 0x4A, - 0x46, - 0x00, - 0x4B, - 0x49, - 0x45, - 0x00, - 0x4A, - 0x48, - 0x44, - 0x00, - 0x4E, - 0x4C, - 0x48, - 0x00, - 0x4D, - 0x4B, - 0x47, - 0x00, - 0x6B, - 0x6A, - 0x68, - 0x00, - 0x68, - 0x67, - 0x65, - 0x00, - 0x66, - 0x65, - 0x63, - 0x00, - 0x64, - 0x63, - 0x61, - 0x00, - 0x74, - 0x73, - 0x71, - 0x00, - 0x73, - 0x72, - 0x70, - 0x00, - 0x42, - 0x40, - 0x3B, - 0x00, - 0x41, - 0x3F, - 0x3A, - 0x00, - 0x43, - 0x41, - 0x3C, - 0x00, - 0x46, - 0x44, - 0x3F, - 0x00, - 0x5D, - 0x5C, - 0x59, - 0x00, - 0x5B, - 0x5A, - 0x57, - 0x00, - 0x61, - 0x60, - 0x5D, - 0x00, - 0x5F, - 0x5E, - 0x5B, - 0x00, - 0x76, - 0x75, - 0x72, - 0x00, - 0x72, - 0x71, - 0x6E, - 0x00, - 0x53, - 0x52, - 0x4E, - 0x00, - 0x51, - 0x50, - 0x4C, - 0x00, - 0x79, - 0x78, - 0x74, - 0x00, - 0x48, - 0x47, - 0x42, - 0x00, - 0xFD, - 0xFC, - 0xF7, - 0x00, - 0x77, - 0x76, - 0x6B, - 0x00, - 0x80, - 0x7F, - 0x71, - 0x00, - 0x9D, - 0xA0, - 0x19, - 0x00, - 0x93, - 0x95, - 0x1E, - 0x00, - 0xA3, - 0xA6, - 0x25, - 0x00, - 0xF9, - 0xF9, - 0xED, - 0x00, - 0x76, - 0x76, - 0x73, - 0x00, - 0x79, - 0x79, - 0x77, - 0x00, - 0x89, - 0x89, - 0x87, - 0x00, - 0x81, - 0x81, - 0x7F, - 0x00, - 0x4C, - 0x4C, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x49, - 0x00, - 0xFE, - 0xFE, - 0xFC, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0xE2, - 0xE2, - 0xE1, - 0x00, - 0xC2, - 0xC2, - 0xC1, - 0x00, - 0xB7, - 0xB7, - 0xB6, - 0x00, - 0xAE, - 0xAE, - 0xAD, - 0x00, - 0xA7, - 0xA7, - 0xA6, - 0x00, - 0xA1, - 0xA1, - 0xA0, - 0x00, - 0x9C, - 0x9C, - 0x9B, - 0x00, - 0x9A, - 0x9A, - 0x99, - 0x00, - 0x97, - 0x97, - 0x96, - 0x00, - 0x8E, - 0x8E, - 0x8D, - 0x00, - 0x8D, - 0x8D, - 0x8C, - 0x00, - 0x8A, - 0x8A, - 0x89, - 0x00, - 0x83, - 0x83, - 0x82, - 0x00, - 0xA6, - 0xAE, - 0x00, - 0x00, - 0xA5, - 0xAB, - 0x00, - 0x00, - 0xA2, - 0xA6, - 0x00, - 0x00, - 0xA0, - 0xA4, - 0x00, - 0x00, - 0x95, - 0x9C, - 0x01, - 0x00, - 0xA6, - 0xAA, - 0x0A, - 0x00, - 0x9F, - 0xA6, - 0x0B, - 0x00, - 0x89, - 0x8F, - 0x0E, - 0x00, - 0xA9, - 0xAD, - 0x13, - 0x00, - 0xAD, - 0xB1, - 0x1D, - 0x00, - 0x9C, - 0xA2, - 0x1F, - 0x00, - 0xB1, - 0xB5, - 0x25, - 0x00, - 0xBD, - 0xC3, - 0x41, - 0x00, - 0xB5, - 0xB9, - 0x44, - 0x00, - 0xC3, - 0xC8, - 0x59, - 0x00, - 0x83, - 0x85, - 0x4B, - 0x00, - 0xCB, - 0xCF, - 0x79, - 0x00, - 0x8B, - 0x8D, - 0x56, - 0x00, - 0x7D, - 0x7E, - 0x59, - 0x00, - 0xDB, - 0xDE, - 0x9D, - 0x00, - 0xE4, - 0xE6, - 0xB7, - 0x00, - 0xA9, - 0xB2, - 0x00, - 0x00, - 0xAF, - 0xB8, - 0x14, - 0x00, - 0x9D, - 0xA6, - 0x13, - 0x00, - 0x9C, - 0xA5, - 0x15, - 0x00, - 0x9B, - 0xA5, - 0x16, - 0x00, - 0x99, - 0xA2, - 0x17, - 0x00, - 0x9A, - 0xA3, - 0x19, - 0x00, - 0x9E, - 0xA7, - 0x1D, - 0x00, - 0xA0, - 0xA9, - 0x20, - 0x00, - 0x74, - 0x7A, - 0x1A, - 0x00, - 0xB5, - 0xBC, - 0x2B, - 0x00, - 0xAE, - 0xB4, - 0x36, - 0x00, - 0x9A, - 0xA0, - 0x31, - 0x00, - 0x93, - 0x97, - 0x46, - 0x00, - 0x97, - 0x9A, - 0x67, - 0x00, - 0xA8, - 0xAB, - 0x77, - 0x00, - 0x84, - 0x86, - 0x65, - 0x00, - 0xEC, - 0xEE, - 0xCC, - 0x00, - 0xF4, - 0xF5, - 0xE0, - 0x00, - 0x9C, - 0xA6, - 0x18, - 0x00, - 0x91, - 0x99, - 0x2C, - 0x00, - 0x60, - 0x65, - 0x24, - 0x00, - 0x6A, - 0x6C, - 0x56, - 0x00, - 0x77, - 0x79, - 0x62, - 0x00, - 0x9C, - 0xAB, - 0x15, - 0x00, - 0xA5, - 0xB5, - 0x2B, - 0x00, - 0x9E, - 0xAD, - 0x2C, - 0x00, - 0x8A, - 0x93, - 0x37, - 0x00, - 0x7C, - 0x84, - 0x3D, - 0x00, - 0x51, - 0x55, - 0x2F, - 0x00, - 0x4C, - 0x4F, - 0x2F, - 0x00, - 0x9C, - 0x9F, - 0x81, - 0x00, - 0x8F, - 0xA2, - 0x15, - 0x00, - 0xAF, - 0xC1, - 0x29, - 0x00, - 0xAA, - 0xBC, - 0x2A, - 0x00, - 0xA7, - 0xB8, - 0x2B, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xA3, - 0xB3, - 0x2C, - 0x00, - 0x99, - 0xA9, - 0x35, - 0x00, - 0x45, - 0x48, - 0x32, - 0x00, - 0xA6, - 0xBA, - 0x32, - 0x00, - 0xA2, - 0xB5, - 0x33, - 0x00, - 0x9D, - 0xAF, - 0x34, - 0x00, - 0x6A, - 0x72, - 0x40, - 0x00, - 0x65, - 0x6B, - 0x42, - 0x00, - 0x5F, - 0x65, - 0x40, - 0x00, - 0x48, - 0x4C, - 0x31, - 0x00, - 0x58, - 0x5C, - 0x40, - 0x00, - 0x59, - 0x5C, - 0x47, - 0x00, - 0x53, - 0x56, - 0x44, - 0x00, - 0x4F, - 0x51, - 0x45, - 0x00, - 0x53, - 0x55, - 0x49, - 0x00, - 0x41, - 0x44, - 0x34, - 0x00, - 0x76, - 0x7A, - 0x66, - 0x00, - 0x48, - 0x4D, - 0x38, - 0x00, - 0x73, - 0x76, - 0x6B, - 0x00, - 0x4B, - 0x4D, - 0x46, - 0x00, - 0x41, - 0x45, - 0x39, - 0x00, - 0x73, - 0x76, - 0x6D, - 0x00, - 0x7C, - 0x7D, - 0x7B, - 0x00, - 0xFC, - 0xFD, - 0xFB, - 0x00, - 0x3A, - 0x3D, - 0x39, - 0x00, - 0x6D, - 0x71, - 0x6C, - 0x00, - 0x56, - 0x59, - 0x56, - 0x00, - 0x75, - 0x78, - 0x75, - 0x00, - 0xCC, - 0xCD, - 0xCC, - 0x00, - 0x50, - 0xCD, - 0x59, - 0x00, - 0x32, - 0xC6, - 0x3E, - 0x00, - 0x81, - 0xDC, - 0x89, - 0x00, - 0xA8, - 0xE8, - 0xAE, - 0x00, - 0xC3, - 0xEF, - 0xC7, - 0x00, - 0x02, - 0xC0, - 0x19, - 0x00, - 0xE9, - 0xF9, - 0xEB, - 0x00, - 0x02, - 0xD4, - 0x2E, - 0x00, - 0x6A, - 0x6D, - 0x6B, - 0x00, - 0x74, - 0x77, - 0x75, - 0x00, - 0x73, - 0x76, - 0x74, - 0x00, - 0x71, - 0x74, - 0x72, - 0x00, - 0x6C, - 0x6F, - 0x6D, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x26, - 0xE2, - 0xD3, - 0x00, - 0x2E, - 0xD8, - 0xC9, - 0x00, - 0x34, - 0xD0, - 0xC1, - 0x00, - 0x57, - 0xE1, - 0xD5, - 0x00, - 0x88, - 0xE9, - 0xE1, - 0x00, - 0xBC, - 0xF3, - 0xEE, - 0x00, - 0xE0, - 0xF9, - 0xF7, - 0x00, - 0xF1, - 0xFD, - 0xFC, - 0x00, - 0x1F, - 0xE9, - 0xDA, - 0x00, - 0x63, - 0x65, - 0x65, - 0x00, - 0x51, - 0x52, - 0x52, - 0x00, - 0x55, - 0x56, - 0x56, - 0x00, - 0x4B, - 0x4D, - 0x4E, - 0x00, - 0x36, - 0x38, - 0x3A, - 0x00, - 0x42, - 0x44, - 0x47, - 0x00, - 0x6F, - 0x71, - 0x75, - 0x00, - 0x4E, - 0x4F, - 0x51, - 0x00, - 0x37, - 0x39, - 0x3E, - 0x00, - 0x3A, - 0x3C, - 0x41, - 0x00, - 0x34, - 0x36, - 0x3C, - 0x00, - 0x3F, - 0x40, - 0x44, - 0x00, - 0x46, - 0x47, - 0x4B, - 0x00, - 0x44, - 0x45, - 0x49, - 0x00, - 0x5A, - 0x5B, - 0x5F, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0xF9, - 0xFA, - 0xFF, - 0x00, - 0x69, - 0x6A, - 0x70, - 0x00, - 0x12, - 0x25, - 0xF6, - 0x00, - 0x0D, - 0x1A, - 0xEB, - 0x00, - 0xEE, - 0xEF, - 0xFD, - 0x00, - 0x09, - 0x0F, - 0xE1, - 0x00, - 0x27, - 0x2A, - 0xE1, - 0x00, - 0x38, - 0x3A, - 0xE3, - 0x00, - 0x48, - 0x4A, - 0xE4, - 0x00, - 0x72, - 0x73, - 0xEA, - 0x00, - 0x7F, - 0x80, - 0xEC, - 0x00, - 0xA6, - 0xA6, - 0xF1, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - - /* - Fonts - */ - 0x01, - 0x22, - 0x04, - 0x00, - 0x00, - 0x5E, - 0x03, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0C, - 0x16, - 0x00, - 0x09, - 0x20, - 0x00, - 0x11, - 0x32, - 0x00, - 0x10, - 0x43, - 0x00, - 0x02, - 0x46, - 0x00, - 0x07, - 0x4E, - 0x00, - 0x07, - 0x56, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x0C, - 0x6B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x77, - 0x00, - 0x02, - 0x7A, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x0C, - 0x92, - 0x00, - 0x05, - 0x98, - 0x00, - 0x0B, - 0xA4, - 0x00, - 0x0B, - 0xB0, - 0x00, - 0x0C, - 0xBD, - 0x00, - 0x0C, - 0xCA, - 0x00, - 0x0C, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x0C, - 0xFB, - 0x00, - 0x02, - 0xFE, - 0x00, - 0x04, - 0x03, - 0x01, - 0x0C, - 0x10, - 0x01, - 0x0C, - 0x1D, - 0x01, - 0x0C, - 0x2A, - 0x01, - 0x0B, - 0x36, - 0x01, - 0x11, - 0x48, - 0x01, - 0x11, - 0x5A, - 0x01, - 0x0B, - 0x66, - 0x01, - 0x11, - 0x78, - 0x01, - 0x0E, - 0x87, - 0x01, - 0x0A, - 0x92, - 0x01, - 0x09, - 0x9C, - 0x01, - 0x12, - 0xAF, - 0x01, - 0x0C, - 0xBC, - 0x01, - 0x02, - 0xBF, - 0x01, - 0x09, - 0xC9, - 0x01, - 0x0C, - 0xD6, - 0x01, - 0x09, - 0xE0, - 0x01, - 0x12, - 0xF3, - 0x01, - 0x0E, - 0x02, - 0x02, - 0x12, - 0x15, - 0x02, - 0x0B, - 0x21, - 0x02, - 0x12, - 0x34, - 0x02, - 0x0C, - 0x41, - 0x02, - 0x0B, - 0x4D, - 0x02, - 0x0A, - 0x58, - 0x02, - 0x0C, - 0x65, - 0x02, - 0x10, - 0x76, - 0x02, - 0x16, - 0x8D, - 0x02, - 0x0E, - 0x9C, - 0x02, - 0x0E, - 0xAB, - 0x02, - 0x0B, - 0xB7, - 0x02, - 0x05, - 0xBD, - 0x02, - 0x0A, - 0xC8, - 0x02, - 0x05, - 0xCE, - 0x02, - 0x0E, - 0xDD, - 0x02, - 0x0C, - 0xEA, - 0x02, - 0x07, - 0xF2, - 0x02, - 0x0E, - 0x01, - 0x03, - 0x0D, - 0x0F, - 0x03, - 0x0E, - 0x1E, - 0x03, - 0x0E, - 0x2D, - 0x03, - 0x0D, - 0x3B, - 0x03, - 0x07, - 0x43, - 0x03, - 0x0D, - 0x51, - 0x03, - 0x0B, - 0x5D, - 0x03, - 0x02, - 0x60, - 0x03, - 0x05, - 0x66, - 0x03, - 0x0B, - 0x72, - 0x03, - 0x02, - 0x75, - 0x03, - 0x13, - 0x89, - 0x03, - 0x0B, - 0x95, - 0x03, - 0x0D, - 0xA3, - 0x03, - 0x0D, - 0xB1, - 0x03, - 0x0D, - 0xBF, - 0x03, - 0x06, - 0xC6, - 0x03, - 0x08, - 0xCF, - 0x03, - 0x07, - 0xD7, - 0x03, - 0x0B, - 0xE3, - 0x03, - 0x0D, - 0xF1, - 0x03, - 0x14, - 0x06, - 0x04, - 0x0B, - 0x12, - 0x04, - 0x0D, - 0x20, - 0x04, - 0x09, - 0x2A, - 0x04, - 0x06, - 0x31, - 0x04, - 0x02, - 0x34, - 0x04, - 0x06, - 0x3B, - 0x04, - 0x0C, - - /* - Bitmaps - */ - 0x04, - 0x4F, - 0x05, - 0x00, - 0x00, - 0x3B, - 0x09, - 0x00, - 0x00, - 0x23, - 0x0D, - 0x00, - 0x00, - 0x7B, - 0x12, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x09, - 0x3A, - 0x00, - 0x04, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x05, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x2B, - 0x09, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x1B, - 0x2B, - 0x01, - 0x3B, - 0x0A, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x0F, - 0x2C, - 0x01, - 0x45, - 0x05, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x01, - 0x2F, - 0x04, - 0x45, - 0x00, - 0x0E, - 0x2F, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x0D, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x00, - 0x09, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x2D, - 0x00, - 0x04, - 0x31, - 0x00, - 0x1B, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x00, - 0x06, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x10, - 0x26, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x30, - 0x04, - 0x26, - 0x04, - 0x30, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x26, - 0x43, - 0x04, - 0x26, - 0x01, - 0x43, - 0x0A, - 0x26, - 0x00, - 0x05, - 0x43, - 0x26, - 0xF7, - 0x00, - 0x41, - 0x00, - 0x06, - 0x26, - 0x01, - 0x43, - 0x09, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x01, - 0x42, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x33, - 0x00, - 0x00, - 0x5A, - 0x0D, - 0x43, - 0x00, - 0x05, - 0x42, - 0x43, - 0x43, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x29, - 0x00, - 0x04, - 0x32, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x28, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x54, - 0x59, - 0x10, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x12, - 0x27, - 0x00, - 0x04, - 0x1A, - 0x00, - 0x00, - 0x59, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x04, - 0x41, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x00, - 0x04, - 0x37, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x08, - 0x4F, - 0x09, - 0xB8, - 0x13, - 0x13, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x08, - 0x5A, - 0x54, - 0x00, - 0xF5, - 0x59, - 0x00, - 0x00, - 0x59, - 0x0E, - 0x3E, - 0x00, - 0x04, - 0x19, - 0x3E, - 0x60, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x01, - 0x50, - 0x01, - 0xB8, - 0x04, - 0x00, - 0x01, - 0x58, - 0x10, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1A, - 0x0B, - 0x35, - 0x34, - 0x34, - 0x35, - 0x0B, - 0x34, - 0x00, - 0x13, - 0x35, - 0x34, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x00, - 0x04, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x12, - 0x18, - 0x00, - 0x04, - 0x21, - 0x00, - 0x00, - 0x58, - 0x10, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x0B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x0A, - 0x33, - 0x58, - 0x00, - 0x5C, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x05, - 0x1B, - 0x00, - 0x07, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x08, - 0x1E, - 0x00, - 0x0C, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x05, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x06, - 0x1E, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x06, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0B, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x00, - 0x03, - 0x1D, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x24, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x0B, - 0x3A, - 0x00, - 0x08, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x06, - 0x3A, - 0x01, - 0x2B, - 0x0C, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2C, - 0x45, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x13, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x45, - 0x2F, - 0x00, - 0x05, - 0x45, - 0x00, - 0x06, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x2F, - 0x0B, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0D, - 0x2E, - 0x00, - 0x06, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x0A, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x09, - 0x31, - 0x00, - 0x1F, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x08, - 0x30, - 0x01, - 0x26, - 0x04, - 0x30, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x30, - 0x00, - 0x0B, - 0x26, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x41, - 0x21, - 0x26, - 0x26, - 0x43, - 0x26, - 0x43, - 0x26, - 0x43, - 0x00, - 0x07, - 0x26, - 0x01, - 0x4F, - 0x09, - 0x00, - 0x01, - 0x37, - 0x04, - 0x26, - 0x01, - 0x43, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x01, - 0x58, - 0x09, - 0x00, - 0x01, - 0x36, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x42, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x00, - 0xF5, - 0x1B, - 0x00, - 0x13, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x05, - 0x50, - 0x00, - 0x00, - 0xF6, - 0x1C, - 0x00, - 0x12, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x28, - 0x00, - 0x05, - 0x61, - 0xF5, - 0x00, - 0xF5, - 0x61, - 0x00, - 0x11, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x11, - 0x27, - 0x00, - 0x05, - 0x4E, - 0xF5, - 0x09, - 0x00, - 0x59, - 0x00, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x05, - 0x41, - 0xF7, - 0xB3, - 0x54, - 0x58, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x14, - 0x3C, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF9, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x01, - 0x1B, - 0x04, - 0x3F, - 0x00, - 0x04, - 0x32, - 0xF5, - 0x00, - 0xF6, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x03, - 0x59, - 0x00, - 0x56, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x04, - 0x56, - 0x00, - 0x00, - 0x40, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x57, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x19, - 0x19, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x06, - 0x34, - 0x01, - 0x35, - 0x04, - 0x34, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x34, - 0x5F, - 0x00, - 0x00, - 0xF7, - 0x1E, - 0x34, - 0x58, - 0x00, - 0x00, - 0x55, - 0x00, - 0x04, - 0x34, - 0x00, - 0x04, - 0x35, - 0x35, - 0x34, - 0x35, - 0x06, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x0F, - 0x18, - 0x01, - 0x57, - 0x07, - 0x00, - 0x01, - 0x17, - 0x0E, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5C, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x17, - 0x1B, - 0x33, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x06, - 0x1E, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x06, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x08, - 0x1E, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x04, - 0x1E, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x06, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x0E, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x14, - 0x01, - 0x36, - 0x14, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x1C, - 0x11, - 0x01, - 0x0A, - 0x07, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x18, - 0x11, - 0x01, - 0xFB, - 0x07, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x00, - 0x04, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x0A, - 0x89, - 0x75, - 0x6E, - 0x78, - 0x77, - 0x77, - 0x78, - 0x81, - 0x72, - 0x76, - 0x1E, - 0x00, - 0x00, - 0x04, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x46, - 0x72, - 0x78, - 0x09, - 0x77, - 0x00, - 0x03, - 0x6E, - 0x76, - 0x53, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x05, - 0xF4, - 0x56, - 0x58, - 0x57, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x53, - 0x89, - 0x81, - 0x0D, - 0x77, - 0x00, - 0x03, - 0x75, - 0x53, - 0x54, - 0x00, - 0x07, - 0x00, - 0x01, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x0A, - 0x53, - 0x54, - 0x00, - 0x00, - 0xF9, - 0x5A, - 0xB8, - 0xB8, - 0x4F, - 0x56, - 0x06, - 0x00, - 0x01, - 0x53, - 0x11, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x53, - 0x89, - 0x6D, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x72, - 0x07, - 0x00, - 0x00, - 0x38, - 0x54, - 0xF7, - 0xF6, - 0xB3, - 0xB8, - 0xF4, - 0x00, - 0x55, - 0xF7, - 0x00, - 0xF3, - 0x56, - 0x57, - 0x53, - 0xF4, - 0x56, - 0x58, - 0xB8, - 0xF4, - 0x5D, - 0x56, - 0xF5, - 0xF7, - 0x22, - 0x57, - 0x55, - 0xF7, - 0x00, - 0x00, - 0x55, - 0x58, - 0xB8, - 0x55, - 0x55, - 0x00, - 0xF4, - 0x56, - 0x57, - 0x00, - 0xF5, - 0x57, - 0x58, - 0xB8, - 0xF3, - 0x00, - 0xF7, - 0x58, - 0xB8, - 0x55, - 0xF6, - 0x00, - 0xF6, - 0xF6, - 0x55, - 0x55, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x53, - 0x46, - 0x81, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x77, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x75, - 0x54, - 0x06, - 0x00, - 0x00, - 0x37, - 0x60, - 0x56, - 0xF5, - 0x44, - 0xF6, - 0x00, - 0x58, - 0x5B, - 0x00, - 0x57, - 0xB2, - 0x57, - 0xF5, - 0x60, - 0x0B, - 0x57, - 0x21, - 0xB8, - 0xF4, - 0xB2, - 0x21, - 0x5A, - 0x57, - 0xF3, - 0x58, - 0x0B, - 0x00, - 0xF5, - 0xB2, - 0x58, - 0x58, - 0x4E, - 0x59, - 0x00, - 0x58, - 0xB2, - 0x57, - 0xF5, - 0x22, - 0x5C, - 0x57, - 0x5F, - 0xB8, - 0x55, - 0x40, - 0x59, - 0x5B, - 0x40, - 0x56, - 0x53, - 0xB8, - 0x56, - 0xF9, - 0x4F, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x54, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x6E, - 0x81, - 0x81, - 0x70, - 0x6E, - 0x77, - 0x77, - 0x78, - 0x70, - 0x6E, - 0x81, - 0x6E, - 0x70, - 0x78, - 0x77, - 0x78, - 0x89, - 0x54, - 0x05, - 0x00, - 0x00, - 0x32, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF6, - 0x00, - 0x58, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x54, - 0xB8, - 0x61, - 0x54, - 0x00, - 0x54, - 0xF4, - 0x54, - 0x5F, - 0x5C, - 0x56, - 0x00, - 0x54, - 0x58, - 0x5C, - 0x00, - 0xF6, - 0x4D, - 0x55, - 0x00, - 0x59, - 0x59, - 0x00, - 0x5B, - 0x57, - 0x53, - 0x56, - 0x22, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0x59, - 0x00, - 0x54, - 0x22, - 0x56, - 0x54, - 0x04, - 0x57, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x89, - 0x78, - 0x77, - 0x77, - 0x88, - 0x00, - 0x75, - 0x72, - 0x54, - 0x53, - 0x81, - 0x64, - 0x75, - 0x00, - 0x89, - 0x6E, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x72, - 0x53, - 0x05, - 0x00, - 0x00, - 0x34, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF5, - 0x53, - 0x58, - 0x5A, - 0x00, - 0x58, - 0x59, - 0x00, - 0x56, - 0xB2, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0xF7, - 0x4F, - 0xB8, - 0x5C, - 0x5A, - 0x00, - 0x57, - 0x5C, - 0x00, - 0x00, - 0x56, - 0x60, - 0x5A, - 0x4F, - 0x58, - 0x00, - 0x5A, - 0x57, - 0x53, - 0x57, - 0x50, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0x5C, - 0x57, - 0x00, - 0x00, - 0xF9, - 0x56, - 0x53, - 0xF3, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x72, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x53, - 0x00, - 0x70, - 0x78, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x78, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x31, - 0x21, - 0x56, - 0xF4, - 0x4E, - 0xF7, - 0x54, - 0x58, - 0x5B, - 0x53, - 0x58, - 0x58, - 0x00, - 0xB8, - 0x4E, - 0xF7, - 0x55, - 0x50, - 0x56, - 0x57, - 0x5A, - 0x00, - 0x55, - 0x50, - 0x00, - 0x57, - 0x44, - 0x55, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x16, - 0x59, - 0x00, - 0x5A, - 0x57, - 0x54, - 0xB8, - 0xB2, - 0x55, - 0x55, - 0x4E, - 0xB8, - 0x57, - 0x5D, - 0x00, - 0x54, - 0xF9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x53, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x64, - 0x70, - 0x00, - 0x46, - 0x89, - 0x00, - 0x88, - 0x62, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x76, - 0x05, - 0x00, - 0x00, - 0x31, - 0x5F, - 0x56, - 0xF5, - 0xB2, - 0x5F, - 0x5A, - 0x44, - 0x56, - 0xF7, - 0x50, - 0x50, - 0x58, - 0xF3, - 0x5D, - 0x5A, - 0x58, - 0x4F, - 0xF5, - 0x55, - 0x50, - 0x57, - 0x0B, - 0xB2, - 0x56, - 0x57, - 0x60, - 0x61, - 0x57, - 0x57, - 0x5B, - 0x58, - 0x4E, - 0xB8, - 0xB8, - 0xB2, - 0x17, - 0x58, - 0xF4, - 0xF9, - 0x5A, - 0x59, - 0x5F, - 0xF4, - 0xF5, - 0x17, - 0x5C, - 0x5A, - 0x4D, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0x54, - 0x6E, - 0x63, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x05, - 0x00, - 0x00, - 0x31, - 0x55, - 0xF5, - 0xF3, - 0x55, - 0xF5, - 0x56, - 0xB8, - 0x00, - 0xF6, - 0x16, - 0xF9, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x57, - 0xB8, - 0xF6, - 0x55, - 0xF6, - 0xF6, - 0xF6, - 0xF7, - 0xF5, - 0xB8, - 0x57, - 0xF7, - 0x00, - 0x55, - 0x60, - 0xF8, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x56, - 0xB8, - 0x22, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x54, - 0x75, - 0x62, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x76, - 0x62, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x56, - 0xF7, - 0x54, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x01, - 0x58, - 0x17, - 0x00, - 0x01, - 0x59, - 0x01, - 0x57, - 0x0B, - 0x00, - 0x01, - 0x16, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x88, - 0x53, - 0x75, - 0x63, - 0x77, - 0x62, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xB8, - 0x07, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xF4, - 0x17, - 0x00, - 0x01, - 0xF5, - 0x01, - 0xF4, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x54, - 0x5A, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x78, - 0x75, - 0x81, - 0x46, - 0x54, - 0x72, - 0x64, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x0D, - 0x54, - 0x54, - 0x54, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x54, - 0x00, - 0x1A, - 0x00, - 0x01, - 0xF3, - 0x01, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x19, - 0x54, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x72, - 0x00, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x78, - 0x78, - 0x53, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x75, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x58, - 0xB8, - 0x00, - 0x55, - 0x5A, - 0x53, - 0x00, - 0x59, - 0xF7, - 0xF5, - 0x0B, - 0x5F, - 0x58, - 0x59, - 0x55, - 0x59, - 0xB8, - 0x00, - 0xF7, - 0x5B, - 0xF6, - 0x5A, - 0xF5, - 0xF7, - 0x59, - 0x00, - 0x54, - 0x5A, - 0x55, - 0x54, - 0xB8, - 0x58, - 0x00, - 0x00, - 0x00, - 0x19, - 0x00, - 0x70, - 0x77, - 0x77, - 0x77, - 0x88, - 0x00, - 0x88, - 0x72, - 0x46, - 0x54, - 0x72, - 0x67, - 0x89, - 0x54, - 0x76, - 0x72, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x88, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x60, - 0x56, - 0x00, - 0xF7, - 0x50, - 0xB3, - 0x00, - 0x4F, - 0xB8, - 0x57, - 0x60, - 0xF5, - 0x56, - 0x1A, - 0x55, - 0xF7, - 0x50, - 0x55, - 0x50, - 0xB8, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x4F, - 0x00, - 0x53, - 0x50, - 0xF7, - 0x53, - 0x56, - 0x60, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x75, - 0x77, - 0x77, - 0x62, - 0x88, - 0x04, - 0x00, - 0x00, - 0x05, - 0x89, - 0x78, - 0x63, - 0x72, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x70, - 0x62, - 0x77, - 0x81, - 0xB3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0xB3, - 0x00, - 0x5E, - 0xB8, - 0xF7, - 0x50, - 0xB8, - 0xF5, - 0x61, - 0xF7, - 0x00, - 0x57, - 0x24, - 0x58, - 0x00, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x53, - 0x17, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x4C, - 0x81, - 0x77, - 0x62, - 0x70, - 0x04, - 0x76, - 0x00, - 0x0D, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x75, - 0x76, - 0x76, - 0x76, - 0x75, - 0x78, - 0x77, - 0x77, - 0x75, - 0x00, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0x00, - 0x00, - 0x21, - 0x56, - 0x54, - 0xF7, - 0x5A, - 0x5D, - 0x40, - 0xF7, - 0x00, - 0xB8, - 0x41, - 0x56, - 0x53, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x00, - 0x22, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x76, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x6E, - 0x46, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x60, - 0xF6, - 0x56, - 0x1A, - 0x56, - 0xF6, - 0x50, - 0xB8, - 0xB3, - 0x55, - 0xF4, - 0x55, - 0x40, - 0x55, - 0xF6, - 0x50, - 0x57, - 0x50, - 0xF6, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x25, - 0xB8, - 0xF6, - 0x44, - 0x5C, - 0xF6, - 0x58, - 0x21, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x72, - 0x10, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x07, - 0x00, - 0x00, - 0x20, - 0x59, - 0x58, - 0xF9, - 0x50, - 0x57, - 0x59, - 0x17, - 0x60, - 0xF5, - 0xF4, - 0x5D, - 0x60, - 0x22, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x00, - 0x57, - 0x59, - 0xF4, - 0xF9, - 0xF5, - 0xF7, - 0x5B, - 0x5A, - 0x61, - 0x5D, - 0x57, - 0x5F, - 0xB2, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x54, - 0x70, - 0x00, - 0x0E, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x08, - 0x00, - 0x00, - 0x1F, - 0xF3, - 0x00, - 0xF3, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x53, - 0xF5, - 0x54, - 0xB3, - 0x00, - 0x54, - 0xF5, - 0x53, - 0x00, - 0xF4, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x72, - 0x01, - 0x78, - 0x0B, - 0x77, - 0x01, - 0x6E, - 0x01, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x03, - 0xF6, - 0x50, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x88, - 0x70, - 0x78, - 0x00, - 0x07, - 0x77, - 0x00, - 0x03, - 0x81, - 0x75, - 0x46, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x03, - 0xF3, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x09, - 0x89, - 0x75, - 0x70, - 0x6E, - 0x6E, - 0x70, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x49, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB8, - 0x5D, - 0x17, - 0x17, - 0x5D, - 0xF7, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDC, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x5D, - 0x54, - 0x5D, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD9, - 0xDF, - 0xB8, - 0x55, - 0xF7, - 0x5A, - 0xD2, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0xD9, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDC, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x5B, - 0x00, - 0x5B, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xDE, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD3, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD9, - 0x58, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDA, - 0x60, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDD, - 0x5A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0xDB, - 0xD8, - 0xD7, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xD0, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD8, - 0xD8, - 0xD7, - 0x12, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xD3, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x16, - 0xF2, - 0xD9, - 0xD9, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xD2, - 0xD9, - 0xD9, - 0xDE, - 0xFA, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xDC, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x03, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDB, - 0xD2, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xFA, - 0xD0, - 0xDC, - 0xDA, - 0xD9, - 0xD3, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD3, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xE1, - 0xD7, - 0xD9, - 0xDA, - 0xD5, - 0xDE, - 0x60, - 0xF6, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xDA, - 0xDD, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x5D, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xD0, - 0xDC, - 0xD8, - 0xD8, - 0xD3, - 0xE1, - 0x5A, - 0xF3, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x59, - 0xE1, - 0xF1, - 0xD8, - 0xD9, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0xF5, - 0xDF, - 0xD7, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xEF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDF, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD8, - 0xD9, - 0xD7, - 0xDF, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x09, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x58, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xF1, - 0xD8, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD7, - 0xD9, - 0xD8, - 0xD2, - 0x17, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xE1, - 0xB8, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xDD, - 0xDA, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0xD0, - 0xD5, - 0xDA, - 0xDD, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xD5, - 0xDA, - 0xD5, - 0xD0, - 0x56, - 0xC6, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xDE, - 0xDB, - 0x04, - 0xD5, - 0xD6, - 0xF5, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD9, - 0x55, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD8, - 0xD0, - 0xE1, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xDB, - 0xE1, - 0xD6, - 0xF1, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x53, - 0x59, - 0xD8, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0xD7, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDA, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x60, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDC, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xE1, - 0xD2, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD6, - 0xDE, - 0xD5, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD7, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDB, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDC, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD7, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x16, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD5, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xF2, - 0xD6, - 0xD6, - 0xD3, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0xD2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xEF, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x16, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xE1, - 0xF1, - 0x04, - 0xDC, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD8, - 0x59, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x60, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x16, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD8, - 0xD9, - 0xE1, - 0xD6, - 0xDB, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0x54, - 0xEF, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0xE1, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3E, - 0x54, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xF2, - 0xB8, - 0xF3, - 0xB8, - 0xD7, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xDF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xFC, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x12, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0xD8, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xD5, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD9, - 0x04, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0x04, - 0xDB, - 0xEF, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD5, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD0, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDB, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xDB, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xDA, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD3, - 0xDA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x53, - 0x60, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0x04, - 0x04, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0xD9, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD6, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7D, - 0x3B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDB, - 0xF5, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0xEF, - 0xDA, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD2, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x54, - 0xDF, - 0x04, - 0x16, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x56, - 0xD0, - 0xDA, - 0x04, - 0xD2, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD2, - 0x04, - 0xDA, - 0xE1, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDA, - 0xFA, - 0x00, - 0xF4, - 0xF7, - 0xF5, - 0x54, - 0x54, - 0xF3, - 0xF7, - 0x04, - 0x04, - 0x0A, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x60, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0xDA, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD9, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x5B, - 0x53, - 0xF5, - 0xD7, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDD, - 0xDE, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0x00, - 0xD2, - 0xD2, - 0xB8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x54, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xFF, - 0xAD, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x60, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xDB, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0xDB, - 0x04, - 0xD6, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0xE1, - 0xD4, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xD7, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xF2, - 0x04, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xFA, - 0x00, - 0x60, - 0xD9, - 0x04, - 0xDA, - 0xD6, - 0xB8, - 0xDD, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD6, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x09, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0xF5, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF4, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0D, - 0x04, - 0xFD, - 0xF7, - 0x57, - 0xDA, - 0xF1, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDD, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0xB3, - 0xDC, - 0xF2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xDF, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x54, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x54, - 0xE1, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x5E, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xD0, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0x04, - 0x5A, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF4, - 0x59, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x17, - 0x00, - 0xD2, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD9, - 0xB8, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x60, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD7, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x04, - 0xDE, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0xD5, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x59, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDC, - 0xF3, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD0, - 0x00, - 0xDB, - 0xD2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x60, - 0x0D, - 0x5E, - 0x04, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xF1, - 0x04, - 0xD9, - 0xD6, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xF1, - 0x60, - 0x17, - 0xF1, - 0x04, - 0x04, - 0x56, - 0x55, - 0xEF, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x17, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0xC6, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x56, - 0xF5, - 0x53, - 0xF5, - 0x56, - 0xDF, - 0xD5, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x53, - 0xDE, - 0xDA, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDE, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD5, - 0xF3, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0xD6, - 0x00, - 0xF4, - 0xD9, - 0xEF, - 0x00, - 0x5E, - 0x04, - 0xF7, - 0x00, - 0x60, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0xF7, - 0xC6, - 0x00, - 0x0A, - 0xE1, - 0x00, - 0x54, - 0x53, - 0x53, - 0x57, - 0xDE, - 0xD9, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0xD0, - 0xDA, - 0xB8, - 0x53, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0x0A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xF1, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x58, - 0x00, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x59, - 0x54, - 0x00, - 0xFA, - 0xD7, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xDF, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x55, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xB3, - 0x00, - 0x03, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x54, - 0xDD, - 0xF2, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xDA, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD2, - 0x04, - 0xD8, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x57, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0xDE, - 0xD7, - 0x00, - 0x00, - 0x55, - 0xD8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDA, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0xFA, - 0x00, - 0x5A, - 0x04, - 0xFA, - 0xF3, - 0x57, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x4D, - 0xF9, - 0x69, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD0, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x53, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x56, - 0xD4, - 0xDC, - 0xB8, - 0x54, - 0xB3, - 0xE1, - 0x04, - 0xD0, - 0xF3, - 0x17, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xD0, - 0xB8, - 0xF3, - 0xF5, - 0x59, - 0xD3, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x56, - 0xC6, - 0x00, - 0x00, - 0xDB, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x16, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD0, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xF7, - 0xF1, - 0xD9, - 0xF7, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x00, - 0xDC, - 0xF1, - 0x55, - 0x5A, - 0x17, - 0xEF, - 0xDF, - 0x5D, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD0, - 0xDE, - 0xD7, - 0xD8, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x54, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0xD3, - 0x60, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x57, - 0xD4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0x56, - 0xF4, - 0x5A, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x0A, - 0xDB, - 0x04, - 0xFC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0xD8, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x53, - 0x00, - 0xF4, - 0xDC, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0xDA, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xD8, - 0x17, - 0x55, - 0xB3, - 0xF7, - 0xE1, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x5B, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD7, - 0x04, - 0xDA, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0x53, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x56, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xF2, - 0xDA, - 0xDB, - 0x57, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xD8, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD2, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xDA, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x60, - 0xDE, - 0xDA, - 0x04, - 0xB6, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDC, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xF1, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD5, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD8, - 0x5A, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x53, - 0x16, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDF, - 0x5D, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x56, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDA, - 0xD9, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDF, - 0xDF, - 0x57, - 0x00, - 0x54, - 0xDE, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD6, - 0xD2, - 0x04, - 0xF1, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x53, - 0xD2, - 0xD8, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x59, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xD9, - 0xF7, - 0x00, - 0xD9, - 0xF6, - 0x00, - 0x58, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xE1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xD9, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xF1, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDF, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x04, - 0xD2, - 0xDF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD3, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xF2, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x12, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD8, - 0xF4, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD0, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF4, - 0x5B, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x16, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x0A, - 0x54, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEC, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x58, - 0xFA, - 0x04, - 0xDF, - 0x58, - 0x58, - 0x58, - 0x04, - 0xF2, - 0x58, - 0x58, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0xD2, - 0xFA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x57, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xDB, - 0xDA, - 0xDF, - 0x53, - 0x00, - 0x53, - 0xD2, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD3, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0x04, - 0xD2, - 0xD6, - 0xD6, - 0xF1, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD0, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD2, - 0x5C, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xD2, - 0x04, - 0xD4, - 0xE1, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xE1, - 0x00, - 0xD2, - 0x59, - 0x54, - 0x53, - 0xD7, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD3, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0x55, - 0x5A, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD9, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0xD7, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD0, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0xF3, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x54, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xF1, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD5, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xEF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0x04, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x53, - 0x00, - 0x5A, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF2, - 0xDD, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x54, - 0x53, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDA, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x54, - 0xF2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x74, - 0xEC, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x60, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0xF6, - 0xF6, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x58, - 0x00, - 0x57, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xD2, - 0xD8, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0xDE, - 0xDB, - 0xD9, - 0xF2, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDC, - 0xD9, - 0xD2, - 0x17, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xDB, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x04, - 0xDB, - 0x0D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xEE, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDF, - 0xDE, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x57, - 0x00, - 0x57, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDD, - 0xF3, - 0x54, - 0x53, - 0xD3, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xD7, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x0A, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x55, - 0xD9, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xB6, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD8, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0xD8, - 0xDE, - 0xD6, - 0xE1, - 0xD7, - 0x04, - 0xD5, - 0x56, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD9, - 0x59, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x17, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x12, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0x60, - 0xB8, - 0xDB, - 0xD9, - 0xD0, - 0xD6, - 0xF2, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD0, - 0xF4, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0x60, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xD6, - 0x56, - 0x00, - 0xF7, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xD5, - 0x55, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF5, - 0x00, - 0x57, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xF9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF3, - 0x00, - 0xB8, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x56, - 0x94, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x53, - 0xF6, - 0x55, - 0x55, - 0xDE, - 0xDE, - 0x55, - 0x55, - 0x55, - 0x17, - 0x04, - 0xB8, - 0x55, - 0x00, - 0xD0, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDD, - 0x55, - 0xDC, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x00, - 0xF4, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF1, - 0xD7, - 0xF4, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x16, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x55, - 0xD9, - 0x60, - 0x00, - 0x00, - 0x58, - 0xD9, - 0xD8, - 0xD0, - 0xD6, - 0xDD, - 0xDE, - 0xD7, - 0xE1, - 0x53, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5B, - 0x00, - 0x58, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x56, - 0xD6, - 0x58, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD3, - 0x53, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xF1, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDC, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD8, - 0x00, - 0xF7, - 0xDA, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xF1, - 0x53, - 0x00, - 0xD7, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xDC, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD0, - 0xD5, - 0xD8, - 0xDC, - 0xD6, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xF5, - 0xDF, - 0xD3, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x55, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xD0, - 0x56, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xB8, - 0xD7, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xFA, - 0x00, - 0xE1, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD7, - 0x00, - 0x00, - 0x60, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x0D, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x8C, - 0x3B, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xEF, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0x00, - 0xF3, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDD, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x5B, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xD9, - 0xD0, - 0x55, - 0x00, - 0xF3, - 0x04, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDD, - 0xD2, - 0x00, - 0xDE, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB8, - 0xD5, - 0xDB, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x16, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xD8, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xDA, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF1, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF2, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xF2, - 0x04, - 0x16, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC8, - 0xE3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x54, - 0x00, - 0xB8, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x16, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDD, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0xD4, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDB, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD7, - 0xD8, - 0x5A, - 0x54, - 0x00, - 0x54, - 0xF5, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD7, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD6, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDD, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x60, - 0xD9, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB3, - 0x58, - 0xD2, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xDB, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xD8, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xDC, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0xDD, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD8, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x0D, - 0x53, - 0x00, - 0x54, - 0xF5, - 0xDE, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0xF5, - 0xD4, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xFA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD2, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xC0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD3, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xF1, - 0xD3, - 0x56, - 0xF3, - 0x55, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0xB8, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0xF4, - 0xDB, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xDB, - 0xE1, - 0xE1, - 0xD9, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDC, - 0x56, - 0x00, - 0x57, - 0xDB, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x5E, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD4, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x55, - 0xF1, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDD, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDD, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xDE, - 0xDB, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x00, - 0x00, - 0xB3, - 0xEF, - 0x04, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD7, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xD2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xDB, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5A, - 0x54, - 0x59, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0xF1, - 0xF3, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDA, - 0x5A, - 0x00, - 0x00, - 0x16, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD4, - 0xD8, - 0xD0, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0xD7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x3B, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x17, - 0x00, - 0x17, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xDC, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD6, - 0xD5, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x12, - 0xDC, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xDD, - 0x04, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xF1, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xDE, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xD0, - 0xDD, - 0xD8, - 0xD9, - 0xD7, - 0xE1, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDB, - 0xD7, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x0A, - 0xD7, - 0xD9, - 0x04, - 0xD9, - 0xD7, - 0xD6, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x58, - 0xE1, - 0xD3, - 0xD8, - 0xD8, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xD0, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x60, - 0xDE, - 0xDD, - 0xDA, - 0xD8, - 0xDC, - 0xD0, - 0xFA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD9, - 0xD3, - 0xD0, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xD2, - 0x00, - 0xF7, - 0xD8, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDE, - 0x17, - 0x00, - 0x00, - 0xD7, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xF1, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF2, - 0xD8, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0xDC, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD2, - 0x53, - 0xD0, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x16, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x3B, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0xF6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, -}; diff --git a/Examples/MAX32572/Semaphore/resources/bitmap.h b/Examples/MAX32572/Semaphore/resources/bitmap.h deleted file mode 100644 index 5277886c37e..00000000000 --- a/Examples/MAX32572/Semaphore/resources/bitmap.h +++ /dev/null @@ -1,48 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_SEMAPHORE_RESOURCES_BITMAP_H_ -#define EXAMPLES_MAX32572_SEMAPHORE_RESOURCES_BITMAP_H_ - -// bitmaps id -#define key_1_bg_white_bmp 0 -#define key_2_bg_white_bmp 1 -#define logo_white_bg_white_bmp 2 - -// fonts id -#define urw_gothic_13_grey_bg_white 0 - -#endif // EXAMPLES_MAX32572_SEMAPHORE_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32572/Semaphore/resources/bmp_rle/key_1-bg_white.bmp b/Examples/MAX32572/Semaphore/resources/bmp_rle/key_1-bg_white.bmp deleted file mode 100644 index 399bb1ca33c..00000000000 Binary files a/Examples/MAX32572/Semaphore/resources/bmp_rle/key_1-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/Semaphore/resources/bmp_rle/key_2-bg_white.bmp b/Examples/MAX32572/Semaphore/resources/bmp_rle/key_2-bg_white.bmp deleted file mode 100644 index 5c15ca628c3..00000000000 Binary files a/Examples/MAX32572/Semaphore/resources/bmp_rle/key_2-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/Semaphore/resources/bmp_rle/logo_white-bg_white.bmp b/Examples/MAX32572/Semaphore/resources/bmp_rle/logo_white-bg_white.bmp deleted file mode 100644 index 43362ab9476..00000000000 Binary files a/Examples/MAX32572/Semaphore/resources/bmp_rle/logo_white-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/Semaphore/resources/fonts/urw_gothic_13-grey_bg-white.bmp b/Examples/MAX32572/Semaphore/resources/fonts/urw_gothic_13-grey_bg-white.bmp deleted file mode 100644 index 9030c466136..00000000000 Binary files a/Examples/MAX32572/Semaphore/resources/fonts/urw_gothic_13-grey_bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/Semaphore/resources/fonts/urw_gothic_13-grey_bg-white.mff b/Examples/MAX32572/Semaphore/resources/fonts/urw_gothic_13-grey_bg-white.mff deleted file mode 100644 index d854b3a9fe5..00000000000 Binary files a/Examples/MAX32572/Semaphore/resources/fonts/urw_gothic_13-grey_bg-white.mff and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/.cproject b/Examples/MAX32572/TFT_Demo/.cproject deleted file mode 100644 index 56b3d587727..00000000000 --- a/Examples/MAX32572/TFT_Demo/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/TFT_Demo/.project b/Examples/MAX32572/TFT_Demo/.project deleted file mode 100644 index f36429072ca..00000000000 --- a/Examples/MAX32572/TFT_Demo/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - TFT_Demo - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/TFT_Demo/.vscode/c_cpp_properties.json b/Examples/MAX32572/TFT_Demo/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/TFT_Demo/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/TFT_Demo/.vscode/launch.json b/Examples/MAX32572/TFT_Demo/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/TFT_Demo/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/TFT_Demo/.vscode/settings.json b/Examples/MAX32572/TFT_Demo/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/TFT_Demo/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/TFT_Demo/.vscode/tasks.json b/Examples/MAX32572/TFT_Demo/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/TFT_Demo/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/TFT_Demo/Makefile b/Examples/MAX32572/TFT_Demo/Makefile deleted file mode 100644 index a260df01231..00000000000 --- a/Examples/MAX32572/TFT_Demo/Makefile +++ /dev/null @@ -1,167 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += src/state_keypad.c -SRCS += src/state_home.c -SRCS += src/state.c -SRCS += src/state_info.c -SRCS += src/keypad.c -SRCS += src/utils.c -SRCS += resources/all_imgs.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source -VPATH += ./src -VPATH += ./resources - -# Where to find header files for this test -IPATH = . -IPATH += include -IPATH += resources - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -PROJ_CFLAGS += -DDISABLE_EVKIT_DISPLAY -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/TFT_Demo/README.md b/Examples/MAX32572/TFT_Demo/README.md deleted file mode 100644 index c807ffdb48a..00000000000 --- a/Examples/MAX32572/TFT_Demo/README.md +++ /dev/null @@ -1,38 +0,0 @@ -## Description - -TFT Demo example demonstrates how TFT and touchscreen can be used. - -The bitmap and font files keep in resources directory. -The structure of resources directory shall be -- **bmp_rle** : Includes RLE or standard bitmap encoded image files -- **fonts** : Include fonts files - -The tool **../Tools/BitmapConverter/maxim_bitmap_converter.exe** is used to convert bitmap and font files to maxim specific file format (.mpi maxim picture information) -And **bitmap.h** file under resources/ directory will be created automatically. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -### bitmap.h file include bitmap definitions id. Like below: -#ifndef _BITMAP_H_ -#define _BITMAP_H_ - -// bitmaps id -#define check_empty_bg_white_bmp 0 -#define check_empty_bg_darkgrey_bmp 1 -#define check_empty_bg_lightgrey_bmp 2 -... - -### #endif //_BITMAP_H_ - -Restriction: - -- bitmap files has to be encoded 8 bits (256 color bitmap). \ No newline at end of file diff --git a/Examples/MAX32572/TFT_Demo/README.txt b/Examples/MAX32572/TFT_Demo/README.txt deleted file mode 100644 index 29b766eb4b0..00000000000 --- a/Examples/MAX32572/TFT_Demo/README.txt +++ /dev/null @@ -1,28 +0,0 @@ -TFT Demo example demonstrates how TFT and touchscreen can be used. - -The bitmap and font files keep in resources directory. -The structure of resources directory shall be -- bmp_rle : Includes RLE or standard bitmap encoded image files -- fonts : Include fonts files - -During build process maxim_bitmap_converter tool will be called and -it will convert bitmap and font files to maxim specific file format (.mpi maxim picture information) -And bitmap.h file under resources/ directory will be created automatically. - -bitmap.h file include bitmap definitions id. Like below: --------------------------------------------------------------------- -#ifndef _BITMAP_H_ -#define _BITMAP_H_ - -// bitmaps id -#define check_empty_bg_white_bmp 0 -#define check_empty_bg_darkgrey_bmp 1 -#define check_empty_bg_lightgrey_bmp 2 -... - -#endif //_BITMAP_H_ --------------------------------------------------------------------- - -Restriction: -- bitmap files has to be encoded 8 bits (256 color bitmap). - diff --git a/Examples/MAX32572/TFT_Demo/TFT_Demo.launch b/Examples/MAX32572/TFT_Demo/TFT_Demo.launch deleted file mode 100644 index 02d9308a990..00000000000 --- a/Examples/MAX32572/TFT_Demo/TFT_Demo.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/TFT_Demo/include/keypad.h b/Examples/MAX32572/TFT_Demo/include/keypad.h deleted file mode 100644 index 5725eb05705..00000000000 --- a/Examples/MAX32572/TFT_Demo/include/keypad.h +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_KEYPAD_H_ -#define EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_KEYPAD_H_ - -#define KEY_0 '0' -#define KEY_1 '1' -#define KEY_2 '2' -#define KEY_3 '3' -#define KEY_4 '4' -#define KEY_5 '5' -#define KEY_6 '6' -#define KEY_7 '7' -#define KEY_8 '8' -#define KEY_9 '9' -#define KEY_A 'A' -#define KEY_B 'B' -#define KEY_C 'C' -#define KEY_D 'D' -#define KEY_E 'E' -#define KEY_F 'F' - -/******************************************************************************/ -int keypad_init(void); -int keypad_getkey(void); - -#endif // EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_KEYPAD_H_ - -/******************************************************************************/ -/* EOF */ diff --git a/Examples/MAX32572/TFT_Demo/include/state.h b/Examples/MAX32572/TFT_Demo/include/state.h deleted file mode 100644 index 8fdcfcb8d37..00000000000 --- a/Examples/MAX32572/TFT_Demo/include/state.h +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_STATE_H_ -#define EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_STATE_H_ - -typedef int (*Init_func)(void); -typedef int (*Keypad_process)(int key); -typedef void (*Time_Tick)(void); - -typedef struct _State { - char *name; - Init_func init; - Keypad_process prcss_key; - Time_Tick tick; - unsigned int timeout; -} State; - -void state_init(void); - -State *state_get_current(void); -int state_set_current(State *state); - -State *get_home_state(void); -State *get_keypad_state(void); -State *get_info_state(void); - -#endif // EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_STATE_H_ diff --git a/Examples/MAX32572/TFT_Demo/include/utils.h b/Examples/MAX32572/TFT_Demo/include/utils.h deleted file mode 100644 index 6782d8ff5db..00000000000 --- a/Examples/MAX32572/TFT_Demo/include/utils.h +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_UTILS_H_ -#define EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_UTILS_H_ - -/***************************** MACROS *********************************/ -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) - -/***************************** VARIABLES *********************************/ - -/***************************** FUNCTIONS *********************************/ -unsigned int utils_get_time_ms(void); -unsigned int utils_get_time_tick(void); -void utils_delay_ms(unsigned int ms); - -#endif // EXAMPLES_MAX32572_TFT_DEMO_INCLUDE_UTILS_H_ diff --git a/Examples/MAX32572/TFT_Demo/main.c b/Examples/MAX32572/TFT_Demo/main.c deleted file mode 100644 index 4d076f918f5..00000000000 --- a/Examples/MAX32572/TFT_Demo/main.c +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief TFT Demo Example! - * - * @details - */ - -/***** Includes *****/ -#include -#include - -#include - -#include "keypad.h" -#include "utils.h" -#include "state.h" - -/***** Definitions *****/ - -/***** Globals *****/ - -/***** Functions *****/ -static int system_init(void) -{ - /* Check RTC Status */ - MXC_RTC_Init(0, 0); - MXC_RTC_Start(); - - // Initialize KBD - keypad_init(); - - // - MXC_TFT_Init(); - - // - MXC_TS_Init(); - MXC_TS_Start(); - - return 0; -} - -/*****************************************************************************/ -int main(void) -{ - int key; - unsigned int start_time; - State *state; - - system_init(); - - // - state_init(); - - /* Infinite loop */ - start_time = utils_get_time_ms(); - - while (1) { - state = state_get_current(); - - // check keyboard key - key = keypad_getkey(); - - if (key > 0) { - state->prcss_key(key); - start_time = utils_get_time_ms(); - } - - // check touch screen key - key = MXC_TS_GetKey(); - - if (key > 0) { - state->prcss_key(key); - start_time = utils_get_time_ms(); - } - - // check tick - if (utils_get_time_ms() >= (start_time + state->timeout)) { - if (state->tick) { - state->tick(); - start_time = utils_get_time_ms(); - } - } - } -} diff --git a/Examples/MAX32572/TFT_Demo/resources/all_imgs.c b/Examples/MAX32572/TFT_Demo/resources/all_imgs.c deleted file mode 100644 index 6f3932b3411..00000000000 --- a/Examples/MAX32572/TFT_Demo/resources/all_imgs.c +++ /dev/null @@ -1,437093 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -__attribute__((section(".bin_storage_img"))) __attribute__((__used__)) -const unsigned char imgs_arr[] = { - /* - Header - */ - 0x18, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x14, - 0x00, - 0x00, - 0xAE, - 0x18, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - - /* - Palette - */ - 0x05, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x04, - 0x00, - 0x00, - 0x2D, - 0x08, - 0x00, - 0x00, - 0x2D, - 0x0C, - 0x00, - 0x00, - 0x2D, - 0x10, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9B, - 0xA5, - 0x18, - 0x00, - 0x70, - 0x73, - 0x71, - 0x00, - 0x33, - 0x35, - 0x3B, - 0x00, - 0x20, - 0xE8, - 0xD9, - 0x00, - 0x03, - 0x02, - 0xD5, - 0x00, - 0x00, - 0xA9, - 0x00, - 0x00, - 0x6F, - 0x6E, - 0x7A, - 0x00, - 0xFF, - 0xFD, - 0xFF, - 0x00, - 0x76, - 0x75, - 0x76, - 0x00, - 0x95, - 0x94, - 0x95, - 0x00, - 0x6A, - 0x66, - 0x69, - 0x00, - 0x7A, - 0x76, - 0x78, - 0x00, - 0x76, - 0x72, - 0x74, - 0x00, - 0x75, - 0x71, - 0x73, - 0x00, - 0x71, - 0x6F, - 0x6F, - 0x00, - 0x76, - 0x75, - 0x75, - 0x00, - 0x75, - 0x74, - 0x74, - 0x00, - 0x74, - 0x73, - 0x73, - 0x00, - 0x73, - 0x72, - 0x72, - 0x00, - 0x72, - 0x71, - 0x71, - 0x00, - 0x91, - 0x90, - 0x90, - 0x00, - 0x86, - 0x85, - 0x85, - 0x00, - 0x67, - 0x65, - 0x64, - 0x00, - 0x63, - 0x61, - 0x60, - 0x00, - 0x70, - 0x6E, - 0x6D, - 0x00, - 0x6A, - 0x68, - 0x66, - 0x00, - 0x77, - 0x76, - 0x75, - 0x00, - 0x71, - 0x70, - 0x6F, - 0x00, - 0x6E, - 0x6D, - 0x6C, - 0x00, - 0x6D, - 0x6C, - 0x6B, - 0x00, - 0x6C, - 0x6B, - 0x6A, - 0x00, - 0x90, - 0x8F, - 0x8E, - 0x00, - 0x88, - 0x87, - 0x86, - 0x00, - 0x77, - 0x74, - 0x70, - 0x00, - 0x76, - 0x73, - 0x6F, - 0x00, - 0x75, - 0x72, - 0x6E, - 0x00, - 0x4F, - 0x4D, - 0x4A, - 0x00, - 0x5A, - 0x58, - 0x55, - 0x00, - 0x58, - 0x56, - 0x53, - 0x00, - 0x56, - 0x54, - 0x51, - 0x00, - 0x3F, - 0x3D, - 0x39, - 0x00, - 0x44, - 0x42, - 0x3E, - 0x00, - 0x47, - 0x45, - 0x41, - 0x00, - 0x4C, - 0x4A, - 0x46, - 0x00, - 0x4B, - 0x49, - 0x45, - 0x00, - 0x4A, - 0x48, - 0x44, - 0x00, - 0x4E, - 0x4C, - 0x48, - 0x00, - 0x4D, - 0x4B, - 0x47, - 0x00, - 0x6B, - 0x6A, - 0x68, - 0x00, - 0x68, - 0x67, - 0x65, - 0x00, - 0x66, - 0x65, - 0x63, - 0x00, - 0x64, - 0x63, - 0x61, - 0x00, - 0x74, - 0x73, - 0x71, - 0x00, - 0x73, - 0x72, - 0x70, - 0x00, - 0x42, - 0x40, - 0x3B, - 0x00, - 0x41, - 0x3F, - 0x3A, - 0x00, - 0x43, - 0x41, - 0x3C, - 0x00, - 0x46, - 0x44, - 0x3F, - 0x00, - 0x5D, - 0x5C, - 0x59, - 0x00, - 0x5B, - 0x5A, - 0x57, - 0x00, - 0x61, - 0x60, - 0x5D, - 0x00, - 0x5F, - 0x5E, - 0x5B, - 0x00, - 0x76, - 0x75, - 0x72, - 0x00, - 0x72, - 0x71, - 0x6E, - 0x00, - 0x53, - 0x52, - 0x4E, - 0x00, - 0x51, - 0x50, - 0x4C, - 0x00, - 0x79, - 0x78, - 0x74, - 0x00, - 0x48, - 0x47, - 0x42, - 0x00, - 0xFD, - 0xFC, - 0xF7, - 0x00, - 0x77, - 0x76, - 0x6B, - 0x00, - 0x80, - 0x7F, - 0x71, - 0x00, - 0x9D, - 0xA0, - 0x19, - 0x00, - 0x93, - 0x95, - 0x1E, - 0x00, - 0xA3, - 0xA6, - 0x25, - 0x00, - 0xF9, - 0xF9, - 0xED, - 0x00, - 0x76, - 0x76, - 0x73, - 0x00, - 0x79, - 0x79, - 0x77, - 0x00, - 0x89, - 0x89, - 0x87, - 0x00, - 0x81, - 0x81, - 0x7F, - 0x00, - 0x4C, - 0x4C, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x49, - 0x00, - 0xFE, - 0xFE, - 0xFC, - 0x00, - 0xFF, - 0xFF, - 0xFE, - 0x00, - 0xE2, - 0xE2, - 0xE1, - 0x00, - 0xC2, - 0xC2, - 0xC1, - 0x00, - 0xB7, - 0xB7, - 0xB6, - 0x00, - 0xAE, - 0xAE, - 0xAD, - 0x00, - 0xA7, - 0xA7, - 0xA6, - 0x00, - 0xA1, - 0xA1, - 0xA0, - 0x00, - 0x9C, - 0x9C, - 0x9B, - 0x00, - 0x9A, - 0x9A, - 0x99, - 0x00, - 0x97, - 0x97, - 0x96, - 0x00, - 0x8E, - 0x8E, - 0x8D, - 0x00, - 0x8D, - 0x8D, - 0x8C, - 0x00, - 0x8A, - 0x8A, - 0x89, - 0x00, - 0x83, - 0x83, - 0x82, - 0x00, - 0xA6, - 0xAE, - 0x00, - 0x00, - 0xA5, - 0xAB, - 0x00, - 0x00, - 0xA2, - 0xA6, - 0x00, - 0x00, - 0xA0, - 0xA4, - 0x00, - 0x00, - 0x95, - 0x9C, - 0x01, - 0x00, - 0xA6, - 0xAA, - 0x0A, - 0x00, - 0x9F, - 0xA6, - 0x0B, - 0x00, - 0x89, - 0x8F, - 0x0E, - 0x00, - 0xA9, - 0xAD, - 0x13, - 0x00, - 0xAD, - 0xB1, - 0x1D, - 0x00, - 0x9C, - 0xA2, - 0x1F, - 0x00, - 0xB1, - 0xB5, - 0x25, - 0x00, - 0xBD, - 0xC3, - 0x41, - 0x00, - 0xB5, - 0xB9, - 0x44, - 0x00, - 0xC3, - 0xC8, - 0x59, - 0x00, - 0x83, - 0x85, - 0x4B, - 0x00, - 0xCB, - 0xCF, - 0x79, - 0x00, - 0x8B, - 0x8D, - 0x56, - 0x00, - 0x7D, - 0x7E, - 0x59, - 0x00, - 0xDB, - 0xDE, - 0x9D, - 0x00, - 0xE4, - 0xE6, - 0xB7, - 0x00, - 0xA9, - 0xB2, - 0x00, - 0x00, - 0xAF, - 0xB8, - 0x14, - 0x00, - 0x9D, - 0xA6, - 0x13, - 0x00, - 0x9C, - 0xA5, - 0x15, - 0x00, - 0x9B, - 0xA5, - 0x16, - 0x00, - 0x99, - 0xA2, - 0x17, - 0x00, - 0x9A, - 0xA3, - 0x19, - 0x00, - 0x9E, - 0xA7, - 0x1D, - 0x00, - 0xA0, - 0xA9, - 0x20, - 0x00, - 0x74, - 0x7A, - 0x1A, - 0x00, - 0xB5, - 0xBC, - 0x2B, - 0x00, - 0xAE, - 0xB4, - 0x36, - 0x00, - 0x9A, - 0xA0, - 0x31, - 0x00, - 0x93, - 0x97, - 0x46, - 0x00, - 0x97, - 0x9A, - 0x67, - 0x00, - 0xA8, - 0xAB, - 0x77, - 0x00, - 0x84, - 0x86, - 0x65, - 0x00, - 0xEC, - 0xEE, - 0xCC, - 0x00, - 0xF4, - 0xF5, - 0xE0, - 0x00, - 0x9C, - 0xA6, - 0x18, - 0x00, - 0x91, - 0x99, - 0x2C, - 0x00, - 0x60, - 0x65, - 0x24, - 0x00, - 0x6A, - 0x6C, - 0x56, - 0x00, - 0x77, - 0x79, - 0x62, - 0x00, - 0x9C, - 0xAB, - 0x15, - 0x00, - 0xA5, - 0xB5, - 0x2B, - 0x00, - 0x9E, - 0xAD, - 0x2C, - 0x00, - 0x8A, - 0x93, - 0x37, - 0x00, - 0x7C, - 0x84, - 0x3D, - 0x00, - 0x51, - 0x55, - 0x2F, - 0x00, - 0x4C, - 0x4F, - 0x2F, - 0x00, - 0x9C, - 0x9F, - 0x81, - 0x00, - 0x8F, - 0xA2, - 0x15, - 0x00, - 0xAF, - 0xC1, - 0x29, - 0x00, - 0xAA, - 0xBC, - 0x2A, - 0x00, - 0xA7, - 0xB8, - 0x2B, - 0x00, - 0xA4, - 0xB5, - 0x2B, - 0x00, - 0xA3, - 0xB3, - 0x2C, - 0x00, - 0x99, - 0xA9, - 0x35, - 0x00, - 0x45, - 0x48, - 0x32, - 0x00, - 0xA6, - 0xBA, - 0x32, - 0x00, - 0xA2, - 0xB5, - 0x33, - 0x00, - 0x9D, - 0xAF, - 0x34, - 0x00, - 0x6A, - 0x72, - 0x40, - 0x00, - 0x65, - 0x6B, - 0x42, - 0x00, - 0x5F, - 0x65, - 0x40, - 0x00, - 0x48, - 0x4C, - 0x31, - 0x00, - 0x58, - 0x5C, - 0x40, - 0x00, - 0x59, - 0x5C, - 0x47, - 0x00, - 0x53, - 0x56, - 0x44, - 0x00, - 0x4F, - 0x51, - 0x45, - 0x00, - 0x53, - 0x55, - 0x49, - 0x00, - 0x41, - 0x44, - 0x34, - 0x00, - 0x76, - 0x7A, - 0x66, - 0x00, - 0x48, - 0x4D, - 0x38, - 0x00, - 0x73, - 0x76, - 0x6B, - 0x00, - 0x4B, - 0x4D, - 0x46, - 0x00, - 0x41, - 0x45, - 0x39, - 0x00, - 0x73, - 0x76, - 0x6D, - 0x00, - 0x7C, - 0x7D, - 0x7B, - 0x00, - 0xFC, - 0xFD, - 0xFB, - 0x00, - 0x3A, - 0x3D, - 0x39, - 0x00, - 0x6D, - 0x71, - 0x6C, - 0x00, - 0x56, - 0x59, - 0x56, - 0x00, - 0x75, - 0x78, - 0x75, - 0x00, - 0xCC, - 0xCD, - 0xCC, - 0x00, - 0x50, - 0xCD, - 0x59, - 0x00, - 0x32, - 0xC6, - 0x3E, - 0x00, - 0x81, - 0xDC, - 0x89, - 0x00, - 0xA8, - 0xE8, - 0xAE, - 0x00, - 0xC3, - 0xEF, - 0xC7, - 0x00, - 0x02, - 0xC0, - 0x19, - 0x00, - 0xE9, - 0xF9, - 0xEB, - 0x00, - 0x02, - 0xD4, - 0x2E, - 0x00, - 0x6A, - 0x6D, - 0x6B, - 0x00, - 0x74, - 0x77, - 0x75, - 0x00, - 0x73, - 0x76, - 0x74, - 0x00, - 0x71, - 0x74, - 0x72, - 0x00, - 0x6C, - 0x6F, - 0x6D, - 0x00, - 0xFC, - 0xFF, - 0xFE, - 0x00, - 0x26, - 0xE2, - 0xD3, - 0x00, - 0x2E, - 0xD8, - 0xC9, - 0x00, - 0x34, - 0xD0, - 0xC1, - 0x00, - 0x57, - 0xE1, - 0xD5, - 0x00, - 0x88, - 0xE9, - 0xE1, - 0x00, - 0xBC, - 0xF3, - 0xEE, - 0x00, - 0xE0, - 0xF9, - 0xF7, - 0x00, - 0xF1, - 0xFD, - 0xFC, - 0x00, - 0x1F, - 0xE9, - 0xDA, - 0x00, - 0x63, - 0x65, - 0x65, - 0x00, - 0x51, - 0x52, - 0x52, - 0x00, - 0x55, - 0x56, - 0x56, - 0x00, - 0x4B, - 0x4D, - 0x4E, - 0x00, - 0x36, - 0x38, - 0x3A, - 0x00, - 0x42, - 0x44, - 0x47, - 0x00, - 0x6F, - 0x71, - 0x75, - 0x00, - 0x4E, - 0x4F, - 0x51, - 0x00, - 0x37, - 0x39, - 0x3E, - 0x00, - 0x3A, - 0x3C, - 0x41, - 0x00, - 0x34, - 0x36, - 0x3C, - 0x00, - 0x3F, - 0x40, - 0x44, - 0x00, - 0x46, - 0x47, - 0x4B, - 0x00, - 0x44, - 0x45, - 0x49, - 0x00, - 0x5A, - 0x5B, - 0x5F, - 0x00, - 0x79, - 0x7A, - 0x7F, - 0x00, - 0xF9, - 0xFA, - 0xFF, - 0x00, - 0x69, - 0x6A, - 0x70, - 0x00, - 0x12, - 0x25, - 0xF6, - 0x00, - 0x0D, - 0x1A, - 0xEB, - 0x00, - 0xEE, - 0xEF, - 0xFD, - 0x00, - 0x09, - 0x0F, - 0xE1, - 0x00, - 0x27, - 0x2A, - 0xE1, - 0x00, - 0x38, - 0x3A, - 0xE3, - 0x00, - 0x48, - 0x4A, - 0xE4, - 0x00, - 0x72, - 0x73, - 0xEA, - 0x00, - 0x7F, - 0x80, - 0xEC, - 0x00, - 0xA6, - 0xA6, - 0xF1, - 0x00, - 0xBD, - 0xBD, - 0xF5, - 0x00, - 0xD8, - 0xD8, - 0xF9, - 0x00, - 0x79, - 0x79, - 0x84, - 0x00, - 0x75, - 0x75, - 0x7E, - 0x00, - 0x97, - 0x97, - 0x9E, - 0x00, - 0x49, - 0x49, - 0x4C, - 0x00, - 0x58, - 0x58, - 0x59, - 0x00, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0xF3, - 0xF3, - 0xF3, - 0x00, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0xD8, - 0xD8, - 0xD8, - 0x00, - 0x98, - 0x98, - 0x98, - 0x00, - 0x92, - 0x92, - 0x92, - 0x00, - 0x91, - 0x91, - 0x91, - 0x00, - 0x76, - 0x76, - 0x76, - 0x00, - 0x4D, - 0x4D, - 0x4D, - 0x00, - 0x4B, - 0x4B, - 0x4B, - 0x00, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x49, - 0x49, - 0x49, - 0x00, - 0x65, - 0x5B, - 0x0E, - 0x00, - 0x63, - 0x5B, - 0x0E, - 0x00, - 0x66, - 0x5E, - 0x11, - 0x00, - 0x64, - 0x5D, - 0x0D, - 0x00, - 0x66, - 0x5E, - 0x0F, - 0x00, - 0x68, - 0x61, - 0x12, - 0x00, - 0x69, - 0x63, - 0x14, - 0x00, - 0x70, - 0x69, - 0x19, - 0x00, - 0x67, - 0x62, - 0x0F, - 0x00, - 0x70, - 0x6B, - 0x12, - 0x00, - 0x67, - 0x63, - 0x12, - 0x00, - 0x6E, - 0x69, - 0x16, - 0x00, - 0x7E, - 0x79, - 0x1A, - 0x00, - 0x81, - 0x7C, - 0x1B, - 0x00, - 0x6D, - 0x67, - 0x17, - 0x00, - 0x7F, - 0x7A, - 0x1E, - 0x00, - 0x69, - 0x66, - 0x10, - 0x00, - 0x71, - 0x6E, - 0x13, - 0x00, - 0x78, - 0x75, - 0x15, - 0x00, - 0x76, - 0x73, - 0x15, - 0x00, - 0x6A, - 0x66, - 0x14, - 0x00, - 0x78, - 0x75, - 0x17, - 0x00, - 0x7B, - 0x77, - 0x1A, - 0x00, - 0x70, - 0x6C, - 0x19, - 0x00, - 0x72, - 0x6F, - 0x1E, - 0x00, - 0x77, - 0x75, - 0x13, - 0x00, - 0x6C, - 0x6B, - 0x11, - 0x00, - 0x6B, - 0x69, - 0x11, - 0x00, - 0x78, - 0x77, - 0x15, - 0x00, - 0x6B, - 0x69, - 0x13, - 0x00, - 0x6C, - 0x6B, - 0x14, - 0x00, - 0x79, - 0x77, - 0x17, - 0x00, - 0x6B, - 0x69, - 0x15, - 0x00, - 0x7E, - 0x7D, - 0x1B, - 0x00, - 0x71, - 0x6F, - 0x19, - 0x00, - 0x80, - 0x7E, - 0x1E, - 0x00, - 0x74, - 0x73, - 0x1C, - 0x00, - 0x72, - 0x71, - 0x1F, - 0x00, - 0x74, - 0x73, - 0x21, - 0x00, - 0x69, - 0x6B, - 0x11, - 0x00, - 0x73, - 0x75, - 0x13, - 0x00, - 0x69, - 0x69, - 0x11, - 0x00, - 0x73, - 0x73, - 0x13, - 0x00, - 0x71, - 0x71, - 0x13, - 0x00, - 0x6D, - 0x6D, - 0x13, - 0x00, - 0x75, - 0x77, - 0x15, - 0x00, - 0x74, - 0x75, - 0x15, - 0x00, - 0x69, - 0x6B, - 0x13, - 0x00, - 0x6D, - 0x6F, - 0x14, - 0x00, - 0x67, - 0x69, - 0x13, - 0x00, - 0x69, - 0x69, - 0x13, - 0x00, - 0x79, - 0x79, - 0x17, - 0x00, - 0x72, - 0x73, - 0x16, - 0x00, - 0x77, - 0x77, - 0x17, - 0x00, - 0x70, - 0x72, - 0x16, - 0x00, - 0x74, - 0x75, - 0x17, - 0x00, - 0x6F, - 0x6F, - 0x16, - 0x00, - 0x7F, - 0x81, - 0x1A, - 0x00, - 0x7A, - 0x7A, - 0x19, - 0x00, - 0x71, - 0x72, - 0x19, - 0x00, - 0x75, - 0x76, - 0x1B, - 0x00, - 0x80, - 0x82, - 0x1E, - 0x00, - 0x83, - 0x84, - 0x1F, - 0x00, - 0x80, - 0x81, - 0x20, - 0x00, - 0x75, - 0x76, - 0x1E, - 0x00, - 0x76, - 0x76, - 0x22, - 0x00, - 0x78, - 0x78, - 0x26, - 0x00, - 0x79, - 0x7A, - 0x29, - 0x00, - 0x87, - 0x88, - 0x38, - 0x00, - 0xF7, - 0xF7, - 0xEE, - 0x00, - 0xF9, - 0xF9, - 0xF4, - 0x00, - 0xFB, - 0xFB, - 0xF8, - 0x00, - 0xFD, - 0xFD, - 0xFB, - 0x00, - 0xAB, - 0xB3, - 0x01, - 0x00, - 0x8E, - 0x93, - 0x15, - 0x00, - 0x85, - 0x88, - 0x18, - 0x00, - 0x76, - 0x79, - 0x17, - 0x00, - 0x74, - 0x77, - 0x17, - 0x00, - 0x7A, - 0x7D, - 0x1A, - 0x00, - 0x76, - 0x7A, - 0x1A, - 0x00, - 0x72, - 0x76, - 0x1A, - 0x00, - 0x87, - 0x8B, - 0x22, - 0x00, - 0x76, - 0x7A, - 0x1E, - 0x00, - 0x73, - 0x76, - 0x1E, - 0x00, - 0x78, - 0x7C, - 0x21, - 0x00, - 0x77, - 0x7A, - 0x23, - 0x00, - 0x7E, - 0x82, - 0x2C, - 0x00, - 0x7B, - 0x7E, - 0x2B, - 0x00, - 0x86, - 0x8A, - 0x31, - 0x00, - 0x7F, - 0x81, - 0x2E, - 0x00, - 0x81, - 0x84, - 0x32, - 0x00, - 0x84, - 0x86, - 0x34, - 0x00, - 0xA9, - 0xB3, - 0x01, - 0x00, - 0xA8, - 0xB1, - 0x01, - 0x00, - 0xA5, - 0xAE, - 0x01, - 0x00, - 0xA5, - 0xAD, - 0x05, - 0x00, - 0xA0, - 0xA8, - 0x05, - 0x00, - 0xA8, - 0xB1, - 0x0A, - 0x00, - 0xAB, - 0xB4, - 0x0F, - 0x00, - 0x97, - 0x9E, - 0x10, - 0x00, - 0xAD, - 0xB6, - 0x17, - 0x00, - 0xB1, - 0xBA, - 0x20, - 0x00, - 0x71, - 0x76, - 0x17, - 0x00, - 0x7A, - 0x81, - 0x1B, - 0x00, - 0x7F, - 0x85, - 0x1D, - 0x00, - 0x7E, - 0x83, - 0x1D, - 0x00, - 0x7C, - 0x81, - 0x1D, - 0x00, - 0x7C, - 0x83, - 0x1F, - 0x00, - 0x7A, - 0x7F, - 0x1E, - 0x00, - 0x80, - 0x85, - 0x20, - 0x00, - 0x8B, - 0x91, - 0x24, - 0x00, - 0x7C, - 0x81, - 0x20, - 0x00, - 0xB6, - 0xBD, - 0x30, - 0x00, - 0x88, - 0x8D, - 0x24, - 0x00, - 0x89, - 0x8F, - 0x25, - 0x00, - 0x82, - 0x87, - 0x24, - 0x00, - 0x85, - 0x8B, - 0x26, - 0x00, - 0x84, - 0x89, - 0x25, - 0x00, - 0x8B, - 0x92, - 0x28, - 0x00, - 0x87, - 0x8D, - 0x28, - 0x00, - 0x8D, - 0x93, - 0x2B, - 0x00, - 0x88, - 0x8F, - 0x2A, - 0x00, - 0x79, - 0x7E, - 0x25, - 0x00, - 0xBA, - 0xC2, - 0x3E, - 0x00, - 0x83, - 0x88, - 0x2D, - 0x00, - 0x87, - 0x8C, - 0x33, - 0x00, - 0x8A, - 0x90, - 0x39, - 0x00, - 0x87, - 0x8C, - 0x3A, - 0x00, - 0x8A, - 0x8E, - 0x3C, - 0x00, - 0xC4, - 0xCB, - 0x57, - 0x00, - 0x8B, - 0x90, - 0x40, - 0x00, - 0x93, - 0x97, - 0x4E, - 0x00, - 0x9E, - 0xA3, - 0x5B, - 0x00, - 0xD5, - 0xDA, - 0x82, - 0x00, - 0xCC, - 0xCE, - 0xAE, - 0x00, - 0xE3, - 0xE4, - 0xD3, - 0x00, - 0xF0, - 0xF1, - 0xE0, - 0x00, - 0x73, - 0x7A, - 0x19, - 0x00, - 0x75, - 0x7D, - 0x1A, - 0x00, - 0x77, - 0x7F, - 0x1B, - 0x00, - 0x80, - 0x8A, - 0x1E, - 0x00, - 0x7D, - 0x85, - 0x1D, - 0x00, - 0x7B, - 0x83, - 0x1D, - 0x00, - 0x79, - 0x81, - 0x1D, - 0x00, - 0x7F, - 0x87, - 0x1F, - 0x00, - 0x75, - 0x7D, - 0x1D, - 0x00, - 0x77, - 0x7E, - 0x1E, - 0x00, - 0x73, - 0x7A, - 0x1D, - 0x00, - 0x7D, - 0x85, - 0x20, - 0x00, - 0x81, - 0x8A, - 0x22, - 0x00, - 0x79, - 0x81, - 0x21, - 0x00, - 0x89, - 0x91, - 0x27, - 0x00, - 0x7B, - 0x83, - 0x23, - 0x00, - 0x8D, - 0x97, - 0x2A, - 0x00, - 0x79, - 0x81, - 0x24, - 0x00, - 0x91, - 0x9B, - 0x2C, - 0x00, - 0x8A, - 0x92, - 0x2B, - 0x00, - 0x7B, - 0x82, - 0x28, - 0x00, - 0x7F, - 0x87, - 0x2B, - 0x00, - 0x83, - 0x8B, - 0x2E, - 0x00, - 0x88, - 0x90, - 0x35, - 0x00, - 0x8C, - 0x93, - 0x3A, - 0x00, - 0x8D, - 0x95, - 0x3E, - 0x00, - 0x8C, - 0x92, - 0x3D, - 0x00, - 0xAA, - 0xAF, - 0x77, - 0x00, - 0xB5, - 0xB9, - 0x89, - 0x00, - 0xDC, - 0xDE, - 0xC6, - 0x00, - 0xEA, - 0xEB, - 0xDF, - 0x00, - 0x7D, - 0x87, - 0x1F, - 0x00, - 0x7A, - 0x85, - 0x1F, - 0x00, - 0x77, - 0x81, - 0x1E, - 0x00, - 0x79, - 0x83, - 0x1F, - 0x00, - 0x82, - 0x8D, - 0x23, - 0x00, - 0x7F, - 0x8A, - 0x22, - 0x00, - 0x7D, - 0x87, - 0x22, - 0x00, - 0x7B, - 0x86, - 0x22, - 0x00, - 0x85, - 0x8F, - 0x25, - 0x00, - 0x82, - 0x8D, - 0x26, - 0x00, - 0x7B, - 0x86, - 0x25, - 0x00, - 0x8B, - 0x96, - 0x2A, - 0x00, - 0x8E, - 0x9A, - 0x2D, - 0x00, - 0x7A, - 0x83, - 0x26, - 0x00, - 0x8D, - 0x97, - 0x2D, - 0x00, - 0x83, - 0x8D, - 0x2A, - 0x00, - 0x7C, - 0x86, - 0x28, - 0x00, - 0x8A, - 0x96, - 0x2E, - 0x00, - 0x80, - 0x89, - 0x2A, - 0x00, - 0x82, - 0x8B, - 0x2B, - 0x00, - 0x84, - 0x8D, - 0x2E, - 0x00, - 0x85, - 0x8F, - 0x32, - 0x00, - 0x8A, - 0x94, - 0x36, - 0x00, - 0x8D, - 0x96, - 0x3A, - 0x00, - 0x88, - 0x91, - 0x3E, - 0x00, - 0x8F, - 0x98, - 0x42, - 0x00, - 0x97, - 0x9E, - 0x55, - 0x00, - 0x9C, - 0xA2, - 0x65, - 0x00, - 0xA2, - 0xA8, - 0x69, - 0x00, - 0xC0, - 0xC4, - 0x9E, - 0x00, - 0xD4, - 0xD7, - 0xBB, - 0x00, - 0xF2, - 0xF3, - 0xEA, - 0x00, - 0x7F, - 0x8D, - 0x23, - 0x00, - 0x7D, - 0x89, - 0x23, - 0x00, - 0x7F, - 0x8D, - 0x26, - 0x00, - 0x7D, - 0x8B, - 0x26, - 0x00, - 0x83, - 0x8F, - 0x29, - 0x00, - 0x81, - 0x8F, - 0x29, - 0x00, - 0x7F, - 0x8D, - 0x29, - 0x00, - 0x7C, - 0x89, - 0x28, - 0x00, - 0x83, - 0x91, - 0x2B, - 0x00, - 0x7F, - 0x8B, - 0x29, - 0x00, - 0x83, - 0x8F, - 0x2B, - 0x00, - 0x81, - 0x8F, - 0x2B, - 0x00, - 0x80, - 0x8D, - 0x2C, - 0x00, - 0x90, - 0x9F, - 0x32, - 0x00, - 0x8F, - 0x9D, - 0x32, - 0x00, - 0x8D, - 0x9B, - 0x32, - 0x00, - 0x83, - 0x8F, - 0x2E, - 0x00, - 0x85, - 0x91, - 0x32, - 0x00, - 0x8B, - 0x96, - 0x39, - 0x00, - 0x83, - 0x93, - 0x2A, - 0x00, - 0x86, - 0x95, - 0x2C, - 0x00, - 0x86, - 0x97, - 0x2E, - 0x00, - 0x83, - 0x92, - 0x2E, - 0x00, - 0x8A, - 0x9A, - 0x31, - 0x00, - 0x84, - 0x94, - 0x31, - 0x00, - 0x8F, - 0x9E, - 0x36, - 0x00, - 0x8A, - 0x9A, - 0x36, - 0x00, - 0x86, - 0x94, - 0x34, - 0x00, - 0x91, - 0xA2, - 0x39, - 0x00, - 0x8B, - 0x9A, - 0x3A, - 0x00, - 0x83, - 0x95, - 0x2B, - 0x00, - 0x87, - 0x99, - 0x2F, - 0x00, - 0x84, - 0x95, - 0x2E, - 0x00, - 0x8B, - 0x9D, - 0x33, - 0x00, - 0x91, - 0xA4, - 0x36, - 0x00, - 0x8F, - 0xA1, - 0x36, - 0x00, - 0x86, - 0x97, - 0x33, - 0x00, - 0x8C, - 0x9D, - 0x36, - 0x00, - 0x92, - 0xA5, - 0x3A, - 0x00, - 0x94, - 0xA7, - 0x3B, - 0x00, - 0x95, - 0xA9, - 0x3E, - 0x00, - 0x95, - 0xA7, - 0x3E, - 0x00, - 0xA1, - 0xB4, - 0x4E, - 0x00, - 0xA4, - 0xB7, - 0x51, - 0x00, - 0xA6, - 0xB9, - 0x53, - 0x00, - 0x93, - 0xA7, - 0x3D, - 0x00, - 0x8F, - 0xA4, - 0x3C, - 0x00, - 0x97, - 0xAC, - 0x41, - 0x00, - 0x9A, - 0xAE, - 0x47, - 0x00, - 0x9E, - 0xB2, - 0x4B, - 0x00, - 0xA7, - 0xBB, - 0x56, - 0x00, - 0xA9, - 0xBD, - 0x5A, - 0x00, - 0xA7, - 0xBB, - 0x59, - 0x00, - 0xF7, - 0xF8, - 0xF4, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0xFD, - 0xFD, - 0xFD, - 0x00, - 0xA2, - 0x4C, - 0x16, - 0x00, - 0x9F, - 0x54, - 0x24, - 0x00, - 0xB7, - 0x4B, - 0x04, - 0x00, - 0x8B, - 0x3B, - 0x04, - 0x00, - 0x77, - 0x32, - 0x04, - 0x00, - 0xBC, - 0x54, - 0x0C, - 0x00, - 0xBE, - 0x54, - 0x04, - 0x00, - 0xE5, - 0x63, - 0x06, - 0x00, - 0x9B, - 0x44, - 0x04, - 0x00, - 0xB4, - 0x54, - 0x0C, - 0x00, - 0x8F, - 0x44, - 0x0A, - 0x00, - 0x9B, - 0x4C, - 0x10, - 0x00, - 0xA5, - 0x54, - 0x17, - 0x00, - 0xAA, - 0x60, - 0x27, - 0x00, - 0xC0, - 0x84, - 0x57, - 0x00, - 0xE6, - 0xCB, - 0xB7, - 0x00, - 0xB4, - 0x54, - 0x04, - 0x00, - 0xA4, - 0x4C, - 0x04, - 0x00, - 0xC5, - 0x5C, - 0x06, - 0x00, - 0xCD, - 0x64, - 0x0C, - 0x00, - 0xBC, - 0x5C, - 0x0C, - 0x00, - 0xD4, - 0x6C, - 0x14, - 0x00, - 0xAD, - 0x5C, - 0x18, - 0x00, - 0xB6, - 0x65, - 0x20, - 0x00, - 0xB6, - 0x6E, - 0x32, - 0x00, - 0xBA, - 0x78, - 0x44, - 0x00, - 0xC4, - 0x8C, - 0x60, - 0x00, - 0xCD, - 0x99, - 0x6D, - 0x00, - 0xD1, - 0xA3, - 0x7C, - 0x00, - 0xDC, - 0xBD, - 0xA3, - 0x00, - 0xCC, - 0x64, - 0x04, - 0x00, - 0xBC, - 0x5C, - 0x04, - 0x00, - 0xAA, - 0x54, - 0x07, - 0x00, - 0xD6, - 0x6C, - 0x0C, - 0x00, - 0xC4, - 0x64, - 0x0D, - 0x00, - 0xB2, - 0x5C, - 0x0C, - 0x00, - 0x9B, - 0x55, - 0x15, - 0x00, - 0xC2, - 0x7C, - 0x3D, - 0x00, - 0xC6, - 0x84, - 0x4A, - 0x00, - 0xCD, - 0x8C, - 0x50, - 0x00, - 0xDB, - 0xB0, - 0x89, - 0x00, - 0xED, - 0xD4, - 0xBD, - 0x00, - 0xC4, - 0x64, - 0x04, - 0x00, - 0xB4, - 0x5C, - 0x04, - 0x00, - 0xCC, - 0x6C, - 0x0C, - 0x00, - 0xBC, - 0x64, - 0x0C, - 0x00, - 0xC5, - 0x6C, - 0x16, - 0x00, - 0xBC, - 0x69, - 0x15, - 0x00, - 0xCC, - 0x74, - 0x1D, - 0x00, - 0xC1, - 0x71, - 0x21, - 0x00, - 0xC8, - 0x7A, - 0x2F, - 0x00, - 0xCD, - 0x94, - 0x5E, - 0x00, - 0xFC, - 0xC4, - 0x8C, - 0x00, - 0xFC, - 0xFB, - 0xFA, - 0x00, - 0xCC, - 0x6C, - 0x04, - 0x00, - 0xBC, - 0x64, - 0x04, - 0x00, - 0xE6, - 0x7B, - 0x0C, - 0x00, - 0xC4, - 0x6C, - 0x0C, - 0x00, - 0xB4, - 0x64, - 0x0D, - 0x00, - 0xF6, - 0x8C, - 0x14, - 0x00, - 0xCD, - 0x74, - 0x14, - 0x00, - 0xD4, - 0x8C, - 0x3F, - 0x00, - 0xDA, - 0x9C, - 0x58, - 0x00, - 0xF4, - 0xB4, - 0x71, - 0x00, - 0xDD, - 0xAC, - 0x78, - 0x00, - 0xE8, - 0xC0, - 0x95, - 0x00, - 0xF2, - 0xE0, - 0xCC, - 0x00, - 0xD2, - 0x74, - 0x04, - 0x00, - 0xC4, - 0x6C, - 0x04, - 0x00, - 0xB4, - 0x64, - 0x04, - 0x00, - 0xF5, - 0x8B, - 0x0C, - 0x00, - 0xD8, - 0x7B, - 0x0B, - 0x00, - 0xCE, - 0x74, - 0x0C, - 0x00, - 0xBC, - 0x6C, - 0x0C, - 0x00, - 0xAC, - 0x64, - 0x0E, - 0x00, - 0xDE, - 0x84, - 0x14, - 0x00, - 0xD5, - 0x7C, - 0x14, - 0x00, - 0xC4, - 0x74, - 0x14, - 0x00, - 0xDD, - 0x84, - 0x1D, - 0x00, - 0xCE, - 0x7C, - 0x1E, - 0x00, - 0xCC, - 0x85, - 0x34, - 0x00, - 0xD9, - 0x96, - 0x46, - 0x00, - 0xFC, - 0xB4, - 0x5C, - 0x00, - 0xDF, - 0xA8, - 0x68, - 0x00, - 0xE6, - 0xB4, - 0x77, - 0x00, - 0xFB, - 0xC4, - 0x84, - 0x00, - 0xFB, - 0xCC, - 0x95, - 0x00, - 0xE5, - 0xBC, - 0x89, - 0x00, - 0xE9, - 0xC9, - 0xA4, - 0x00, - 0xFC, - 0xDC, - 0xB5, - 0x00, - 0xBC, - 0x6C, - 0x04, - 0x00, - 0xE7, - 0x88, - 0x0C, - 0x00, - 0xF8, - 0x94, - 0x0F, - 0x00, - 0xC4, - 0x74, - 0x0C, - 0x00, - 0xE6, - 0x8C, - 0x14, - 0x00, - 0xB3, - 0x6C, - 0x10, - 0x00, - 0xCC, - 0x7C, - 0x14, - 0x00, - 0xBB, - 0x74, - 0x14, - 0x00, - 0xED, - 0x94, - 0x1D, - 0x00, - 0xDE, - 0x8C, - 0x1E, - 0x00, - 0xD3, - 0x84, - 0x1F, - 0x00, - 0xD7, - 0x90, - 0x30, - 0x00, - 0xE2, - 0x9C, - 0x41, - 0x00, - 0xFC, - 0xB4, - 0x54, - 0x00, - 0xDF, - 0xA4, - 0x58, - 0x00, - 0xF4, - 0xB4, - 0x64, - 0x00, - 0xFC, - 0xBC, - 0x6C, - 0x00, - 0xFC, - 0xC4, - 0x7C, - 0x00, - 0xEF, - 0xBC, - 0x78, - 0x00, - 0xFC, - 0xCC, - 0x8C, - 0x00, - 0xFC, - 0xD8, - 0xA7, - 0x00, - 0xDA, - 0x84, - 0x0C, - 0x00, - 0xCC, - 0x7C, - 0x0C, - 0x00, - 0xBB, - 0x74, - 0x0C, - 0x00, - 0xF8, - 0x9C, - 0x14, - 0x00, - 0xEF, - 0x94, - 0x14, - 0x00, - 0xDC, - 0x8C, - 0x14, - 0x00, - 0xD4, - 0x84, - 0x14, - 0x00, - 0xC3, - 0x7C, - 0x14, - 0x00, - 0xE4, - 0x94, - 0x1C, - 0x00, - 0xFC, - 0xA4, - 0x24, - 0x00, - 0xC3, - 0x7F, - 0x21, - 0x00, - 0xF4, - 0xA4, - 0x2E, - 0x00, - 0xE4, - 0x9A, - 0x2F, - 0x00, - 0xFC, - 0xB4, - 0x4C, - 0x00, - 0xE5, - 0xA4, - 0x49, - 0x00, - 0xEC, - 0xAC, - 0x4F, - 0x00, - 0xF4, - 0xB4, - 0x54, - 0x00, - 0xFC, - 0xBC, - 0x5C, - 0x00, - 0xF4, - 0xB4, - 0x5C, - 0x00, - 0xFC, - 0xBC, - 0x64, - 0x00, - 0xE6, - 0xAC, - 0x5B, - 0x00, - 0xEA, - 0xB4, - 0x69, - 0x00, - 0xFC, - 0xC4, - 0x74, - 0x00, - 0xF4, - 0xC4, - 0x7C, - 0x00, - 0xFC, - 0xCC, - 0x84, - 0x00, - 0xEC, - 0xC1, - 0x84, - 0x00, - 0xEC, - 0xC4, - 0x8C, - 0x00, - 0xFC, - 0xD4, - 0x9C, - 0x00, - 0xE9, - 0x94, - 0x0C, - 0x00, - 0xFC, - 0xA4, - 0x14, - 0x00, - 0xE4, - 0x94, - 0x14, - 0x00, - 0xFC, - 0xA4, - 0x1C, - 0x00, - 0xCB, - 0x84, - 0x17, - 0x00, - 0xEC, - 0x9C, - 0x1C, - 0x00, - 0xD2, - 0x8C, - 0x1E, - 0x00, - 0xF4, - 0xA4, - 0x24, - 0x00, - 0xD9, - 0x94, - 0x24, - 0x00, - 0xFC, - 0xAC, - 0x2C, - 0x00, - 0xF8, - 0xAC, - 0x37, - 0x00, - 0xFC, - 0xB4, - 0x44, - 0x00, - 0xEB, - 0xAC, - 0x44, - 0x00, - 0xF4, - 0xB4, - 0x4C, - 0x00, - 0xFC, - 0xBC, - 0x54, - 0x00, - 0xF1, - 0xBC, - 0x64, - 0x00, - 0xFB, - 0xC4, - 0x6A, - 0x00, - 0xF0, - 0xBC, - 0x6C, - 0x00, - 0xFC, - 0xD4, - 0x94, - 0x00, - 0xF1, - 0xCC, - 0x8F, - 0x00, - 0xFC, - 0xA4, - 0x0C, - 0x00, - 0xCA, - 0x84, - 0x0C, - 0x00, - 0xBF, - 0x7D, - 0x0C, - 0x00, - 0xEC, - 0x9C, - 0x14, - 0x00, - 0xD3, - 0x8C, - 0x12, - 0x00, - 0xFC, - 0xAC, - 0x1C, - 0x00, - 0xF4, - 0xA4, - 0x1C, - 0x00, - 0xDA, - 0x94, - 0x19, - 0x00, - 0xE3, - 0x9C, - 0x1D, - 0x00, - 0xFC, - 0xAC, - 0x24, - 0x00, - 0xE9, - 0xA4, - 0x27, - 0x00, - 0xFC, - 0xB4, - 0x34, - 0x00, - 0xFC, - 0xB4, - 0x3C, - 0x00, - 0xE9, - 0xA8, - 0x38, - 0x00, - 0xF4, - 0xB4, - 0x44, - 0x00, - 0xFC, - 0xBC, - 0x4C, - 0x00, - 0xEB, - 0xB4, - 0x58, - 0x00, - 0xF2, - 0xBC, - 0x5C, - 0x00, - 0xF3, - 0xC4, - 0x73, - 0x00, - 0xFC, - 0xCC, - 0x7C, - 0x00, - 0xEC, - 0xC4, - 0x7C, - 0x00, - 0xF4, - 0xD4, - 0x9D, - 0x00, - 0xDC, - 0x94, - 0x0C, - 0x00, - 0xFC, - 0xAC, - 0x14, - 0x00, - 0xEF, - 0xA4, - 0x14, - 0x00, - 0xE3, - 0x9C, - 0x14, - 0x00, - 0xF4, - 0xAC, - 0x1C, - 0x00, - 0xEC, - 0xA4, - 0x1C, - 0x00, - 0xA9, - 0x76, - 0x16, - 0x00, - 0xFC, - 0xB4, - 0x24, - 0x00, - 0xF4, - 0xAC, - 0x24, - 0x00, - 0xFC, - 0xB4, - 0x2C, - 0x00, - 0xF1, - 0xAC, - 0x2C, - 0x00, - 0xF4, - 0xB4, - 0x34, - 0x00, - 0xD9, - 0xA2, - 0x32, - 0x00, - 0xFC, - 0xBC, - 0x3C, - 0x00, - 0xF4, - 0xB4, - 0x3C, - 0x00, - 0xFC, - 0xBC, - 0x44, - 0x00, - 0xEA, - 0xB4, - 0x48, - 0x00, - 0xF2, - 0xBC, - 0x54, - 0x00, - 0xFC, - 0xCC, - 0x71, - 0x00, - 0xFC, - 0xD4, - 0x89, - 0x00, - 0xF3, - 0xCC, - 0x84, - 0x00, - 0xF4, - 0xD4, - 0x94, - 0x00, - 0xFC, - 0xE5, - 0xBA, - 0x00, - 0xF1, - 0xAC, - 0x14, - 0x00, - 0xF9, - 0xB4, - 0x1C, - 0x00, - 0xF4, - 0xB4, - 0x24, - 0x00, - 0xFC, - 0xBC, - 0x2C, - 0x00, - 0xF4, - 0xB4, - 0x2C, - 0x00, - 0xFC, - 0xBC, - 0x34, - 0x00, - 0xF1, - 0xBC, - 0x44, - 0x00, - 0xF1, - 0xBC, - 0x4C, - 0x00, - 0xFB, - 0xC6, - 0x58, - 0x00, - 0xF3, - 0xCC, - 0x7C, - 0x00, - 0xFC, - 0xDE, - 0x9D, - 0x00, - 0xF4, - 0xDC, - 0xA6, - 0x00, - 0xFC, - 0xBC, - 0x23, - 0x00, - 0xEB, - 0xB4, - 0x29, - 0x00, - 0xF3, - 0xBC, - 0x33, - 0x00, - 0xEA, - 0xB4, - 0x38, - 0x00, - 0xFA, - 0xC4, - 0x46, - 0x00, - 0xC2, - 0x9E, - 0x44, - 0x00, - 0xF8, - 0xCC, - 0x60, - 0x00, - 0xF2, - 0xCC, - 0x72, - 0x00, - 0xFC, - 0xD4, - 0x78, - 0x00, - 0xFB, - 0xDD, - 0x91, - 0x00, - 0xEC, - 0xB4, - 0x1C, - 0x00, - 0xF4, - 0xBE, - 0x23, - 0x00, - 0xFC, - 0xC7, - 0x38, - 0x00, - 0xF2, - 0xBF, - 0x3C, - 0x00, - 0xFC, - 0xCC, - 0x47, - 0x00, - 0xF8, - 0xF0, - 0xDB, - 0x00, - 0xFA, - 0xC7, - 0x2B, - 0x00, - 0xEC, - 0xC6, - 0x58, - 0x00, - 0xFB, - 0xDA, - 0x66, - 0x00, - 0xFC, - 0xD9, - 0x47, - 0x00, - 0xFC, - 0xDA, - 0x58, - 0x00, - 0xFC, - 0xE4, - 0x7E, - 0x00, - 0xBC, - 0xA2, - 0x2A, - 0x00, - 0xFC, - 0xE4, - 0x61, - 0x00, - 0xB1, - 0x9F, - 0x0A, - 0x00, - 0xFC, - 0xEE, - 0x51, - 0x00, - 0xB5, - 0xAA, - 0x17, - 0x00, - 0xFC, - 0xF3, - 0x70, - 0x00, - 0xFC, - 0xF8, - 0x8F, - 0x00, - 0xFC, - 0xFA, - 0xB1, - 0x00, - 0xBA, - 0xBC, - 0x31, - 0x00, - 0xAC, - 0xB4, - 0x04, - 0x00, - 0xA5, - 0xAC, - 0x04, - 0x00, - 0xDA, - 0xDC, - 0x90, - 0x00, - 0x9C, - 0xA4, - 0x04, - 0x00, - 0xB1, - 0xBA, - 0x1C, - 0x00, - 0xBD, - 0xC4, - 0x44, - 0x00, - 0xC6, - 0xCC, - 0x60, - 0x00, - 0xCD, - 0xD4, - 0x6E, - 0x00, - 0xE1, - 0xE7, - 0xA7, - 0x00, - 0x7C, - 0x79, - 0xA9, - 0x00, - 0x55, - 0x4F, - 0x97, - 0x00, - 0x97, - 0x94, - 0xAF, - 0x00, - 0xA4, - 0x9C, - 0xD0, - 0x00, - 0xA4, - 0x9C, - 0xBC, - 0x00, - 0x0C, - 0x04, - 0x14, - 0x00, - 0x0C, - 0x04, - 0x0C, - 0x00, - 0x14, - 0x0C, - 0x14, - 0x00, - 0x0C, - 0x04, - 0x04, - 0x00, - 0x14, - 0x0C, - 0x0A, - 0x00, - 0x73, - 0x6F, - 0x6E, - 0x00, - 0x21, - 0x1C, - 0x1A, - 0x00, - 0x16, - 0x14, - 0x0C, - 0x00, - 0x0C, - 0x0C, - 0x04, - 0x00, - 0xAC, - 0xB4, - 0x04, - 0x00, - 0xBF, - 0xC4, - 0x42, - 0x00, - 0xD2, - 0xD6, - 0x7C, - 0x00, - 0xF1, - 0xF2, - 0xCF, - 0x00, - 0xA4, - 0xAC, - 0x04, - 0x00, - 0xAC, - 0xB4, - 0x0C, - 0x00, - 0xAD, - 0xB5, - 0x1A, - 0x00, - 0xC7, - 0xCE, - 0x5B, - 0x00, - 0xA4, - 0xB4, - 0x04, - 0x00, - 0xAD, - 0xB6, - 0x36, - 0x00, - 0x9C, - 0xAC, - 0x04, - 0x00, - 0xB1, - 0xBA, - 0x5B, - 0x00, - 0xDF, - 0xE6, - 0xA4, - 0x00, - 0xB2, - 0xBD, - 0x86, - 0x00, - 0xF4, - 0xFA, - 0xE4, - 0x00, - 0xB4, - 0xBC, - 0xA5, - 0x00, - 0xBA, - 0xC4, - 0xAA, - 0x00, - 0xAC, - 0xB4, - 0xA8, - 0x00, - 0x7B, - 0x7C, - 0x7B, - 0x00, - 0xB1, - 0xBC, - 0xB4, - 0x00, - 0xBC, - 0xCC, - 0xC4, - 0x00, - 0xB4, - 0xC4, - 0xC3, - 0x00, - 0x04, - 0x0C, - 0x0C, - 0x00, - 0xA4, - 0xBC, - 0xBC, - 0x00, - 0xDE, - 0xFC, - 0xFC, - 0x00, - 0xA4, - 0xB4, - 0xB4, - 0x00, - 0xAC, - 0xBC, - 0xBC, - 0x00, - 0xBC, - 0xCC, - 0xCC, - 0x00, - 0xC4, - 0xD4, - 0xD4, - 0x00, - 0xDC, - 0xEC, - 0xEC, - 0x00, - 0xD4, - 0xE4, - 0xE4, - 0x00, - 0xEC, - 0xFC, - 0xFC, - 0x00, - 0xE4, - 0xF4, - 0xF4, - 0x00, - 0xAC, - 0xB4, - 0xB4, - 0x00, - 0xC4, - 0xCC, - 0xCC, - 0x00, - 0xBC, - 0xC4, - 0xC4, - 0x00, - 0xB4, - 0xBC, - 0xBC, - 0x00, - 0xEC, - 0xF4, - 0xF4, - 0x00, - 0xE4, - 0xEC, - 0xEC, - 0x00, - 0xDC, - 0xE4, - 0xE4, - 0x00, - 0xFB, - 0xFD, - 0xFD, - 0x00, - 0xC9, - 0xF4, - 0xFC, - 0x00, - 0xD5, - 0xF4, - 0xFC, - 0x00, - 0xCF, - 0xEC, - 0xF4, - 0x00, - 0x82, - 0x9C, - 0xA4, - 0x00, - 0x93, - 0xAC, - 0xB4, - 0x00, - 0x7C, - 0x94, - 0x9C, - 0x00, - 0x8C, - 0xA4, - 0xAC, - 0x00, - 0x9C, - 0xB4, - 0xBC, - 0x00, - 0x85, - 0x88, - 0x89, - 0x00, - 0xB8, - 0xE7, - 0xFC, - 0x00, - 0xC2, - 0xE4, - 0xF3, - 0x00, - 0x8C, - 0x9C, - 0xA3, - 0x00, - 0x69, - 0x84, - 0x92, - 0x00, - 0xCC, - 0xEC, - 0xFC, - 0x00, - 0x94, - 0xA4, - 0xAC, - 0x00, - 0x9C, - 0xAC, - 0xB4, - 0x00, - 0xA4, - 0xB4, - 0xBC, - 0x00, - 0xAC, - 0xBC, - 0xC4, - 0x00, - 0xB4, - 0xC4, - 0xCC, - 0x00, - 0xBC, - 0xCC, - 0xD4, - 0x00, - 0xD4, - 0xE4, - 0xEC, - 0x00, - 0xDC, - 0xEC, - 0xF4, - 0x00, - 0xE4, - 0xF4, - 0xFC, - 0x00, - 0xA8, - 0xD4, - 0xEC, - 0x00, - 0x8C, - 0xB4, - 0xCC, - 0x00, - 0xB2, - 0xCC, - 0xDC, - 0x00, - 0x7A, - 0x84, - 0x8A, - 0x00, - 0x82, - 0x9C, - 0xAE, - 0x00, - 0x94, - 0xAC, - 0xBC, - 0x00, - 0x8A, - 0x94, - 0x9B, - 0x00, - 0x4C, - 0xAC, - 0xF4, - 0x00, - 0x0C, - 0x14, - 0x1A, - 0x00, - 0x7E, - 0xC6, - 0xFC, - 0x00, - 0xA8, - 0xD5, - 0xF6, - 0x00, - 0xC4, - 0xE4, - 0xFC, - 0x00, - 0xC5, - 0xD4, - 0xDF, - 0x00, - 0x94, - 0x98, - 0x9B, - 0x00, - 0x65, - 0xA3, - 0xD7, - 0x00, - 0x93, - 0xCD, - 0xFB, - 0x00, - 0x8C, - 0xC3, - 0xF0, - 0x00, - 0xA7, - 0xCC, - 0xEB, - 0x00, - 0x99, - 0xB4, - 0xC9, - 0x00, - 0xAA, - 0xC4, - 0xDA, - 0x00, - 0xCA, - 0xDC, - 0xEB, - 0x00, - 0x6A, - 0x94, - 0xBA, - 0x00, - 0x8B, - 0xB4, - 0xDA, - 0x00, - 0x99, - 0xC4, - 0xEC, - 0x00, - 0x68, - 0x84, - 0x9C, - 0x00, - 0x7C, - 0x94, - 0xAA, - 0x00, - 0x8B, - 0xA4, - 0xBA, - 0x00, - 0x7C, - 0x8C, - 0x9B, - 0x00, - 0x9C, - 0xA4, - 0xAB, - 0x00, - 0x04, - 0x0C, - 0x14, - 0x00, - 0x81, - 0xB5, - 0xE9, - 0x00, - 0x88, - 0xA8, - 0xC9, - 0x00, - 0xA1, - 0xC4, - 0xE6, - 0x00, - 0x9B, - 0xBC, - 0xDB, - 0x00, - 0xBA, - 0xD7, - 0xF4, - 0x00, - 0x84, - 0x94, - 0xA4, - 0x00, - 0x8C, - 0x9C, - 0xAC, - 0x00, - 0x94, - 0xA4, - 0xB4, - 0x00, - 0x9C, - 0xAC, - 0xBC, - 0x00, - 0xA4, - 0xB4, - 0xC4, - 0x00, - 0xAC, - 0xBC, - 0xCC, - 0x00, - 0xB4, - 0xC4, - 0xD4, - 0x00, - 0xBC, - 0xCC, - 0xDC, - 0x00, - 0xD4, - 0xE4, - 0xF4, - 0x00, - 0xDC, - 0xEC, - 0xFC, - 0x00, - 0x94, - 0x9C, - 0xA4, - 0x00, - 0xAC, - 0xB4, - 0xBC, - 0x00, - 0xBC, - 0xC4, - 0xCC, - 0x00, - 0xB4, - 0xBC, - 0xC4, - 0x00, - 0xC4, - 0xCC, - 0xD4, - 0x00, - 0xDC, - 0xE4, - 0xEC, - 0x00, - 0xEC, - 0xF4, - 0xFC, - 0x00, - 0xE4, - 0xEC, - 0xF4, - 0x00, - 0x25, - 0x26, - 0x27, - 0x00, - 0xA4, - 0xA8, - 0xAC, - 0x00, - 0x7F, - 0xB7, - 0xF4, - 0x00, - 0x8D, - 0xB8, - 0xE7, - 0x00, - 0x95, - 0xBC, - 0xE6, - 0x00, - 0xBD, - 0xD4, - 0xEC, - 0x00, - 0x12, - 0x75, - 0xEB, - 0x00, - 0x76, - 0xAC, - 0xEE, - 0x00, - 0x73, - 0xA7, - 0xE3, - 0x00, - 0x7F, - 0xAC, - 0xE3, - 0x00, - 0x7D, - 0xA4, - 0xD4, - 0x00, - 0x77, - 0x9C, - 0xCA, - 0x00, - 0x68, - 0x85, - 0xA9, - 0x00, - 0x87, - 0xAC, - 0xD7, - 0x00, - 0x94, - 0xB4, - 0xDA, - 0x00, - 0xB7, - 0xCC, - 0xE6, - 0x00, - 0x6F, - 0x7C, - 0x8B, - 0x00, - 0x56, - 0x88, - 0xC9, - 0x00, - 0x6D, - 0x94, - 0xC8, - 0x00, - 0x69, - 0x8B, - 0xB8, - 0x00, - 0x7A, - 0x95, - 0xB9, - 0x00, - 0xC9, - 0xDC, - 0xF4, - 0x00, - 0x6A, - 0x98, - 0xD9, - 0x00, - 0x5E, - 0x81, - 0xB5, - 0x00, - 0xAA, - 0xCA, - 0xF6, - 0x00, - 0x8A, - 0x9C, - 0xB6, - 0x00, - 0xB0, - 0xC4, - 0xE1, - 0x00, - 0x9A, - 0xAC, - 0xC5, - 0x00, - 0x77, - 0x84, - 0x97, - 0x00, - 0xA4, - 0xB4, - 0xCC, - 0x00, - 0xAB, - 0xBC, - 0xD4, - 0x00, - 0xD4, - 0xE4, - 0xFC, - 0x00, - 0x84, - 0x8C, - 0x98, - 0x00, - 0x77, - 0x9B, - 0xD6, - 0x00, - 0x62, - 0x7C, - 0xA7, - 0x00, - 0x67, - 0x74, - 0x89, - 0x00, - 0x84, - 0x94, - 0xAE, - 0x00, - 0x94, - 0xA4, - 0xBD, - 0x00, - 0xA4, - 0xAC, - 0xB9, - 0x00, - 0x6D, - 0x99, - 0xE7, - 0x00, - 0x68, - 0x8A, - 0xC8, - 0x00, - 0x4E, - 0x67, - 0x93, - 0x00, - 0x5A, - 0x70, - 0x98, - 0x00, - 0x78, - 0x89, - 0xA8, - 0x00, - 0x3D, - 0x45, - 0x53, - 0x00, - 0x46, - 0x4F, - 0x5E, - 0x00, - 0xD4, - 0xDC, - 0xEA, - 0x00, - 0x04, - 0x0C, - 0x1C, - 0x00, - 0x49, - 0x76, - 0xC9, - 0x00, - 0x55, - 0x71, - 0xA8, - 0x00, - 0x94, - 0xAB, - 0xD8, - 0x00, - 0x4E, - 0x58, - 0x6C, - 0x00, - 0x6E, - 0x7C, - 0x98, - 0x00, - 0x8C, - 0x94, - 0xA4, - 0x00, - 0x34, - 0x37, - 0x3D, - 0x00, - 0x94, - 0x9C, - 0xAC, - 0x00, - 0x9C, - 0xA4, - 0xB4, - 0x00, - 0xAC, - 0xB4, - 0xC4, - 0x00, - 0xB4, - 0xBC, - 0xCC, - 0x00, - 0xBC, - 0xC4, - 0xD4, - 0x00, - 0xC4, - 0xCC, - 0xDC, - 0x00, - 0xDC, - 0xE4, - 0xF4, - 0x00, - 0xE4, - 0xEC, - 0xFC, - 0x00, - 0x59, - 0x87, - 0xED, - 0x00, - 0x31, - 0x45, - 0x70, - 0x00, - 0x66, - 0x8B, - 0xD8, - 0x00, - 0x40, - 0x57, - 0x87, - 0x00, - 0x26, - 0x2D, - 0x3C, - 0x00, - 0x79, - 0x8C, - 0xB5, - 0x00, - 0x86, - 0x9B, - 0xC7, - 0x00, - 0x58, - 0x63, - 0x7B, - 0x00, - 0x60, - 0x6C, - 0x85, - 0x00, - 0x1B, - 0x24, - 0x3A, - 0x00, - 0x17, - 0x1C, - 0x28, - 0x00, - 0x30, - 0x3A, - 0x51, - 0x00, - 0xA6, - 0xBA, - 0xE8, - 0x00, - 0x26, - 0x42, - 0x8F, - 0x00, - 0x49, - 0x72, - 0xE7, - 0x00, - 0x0D, - 0x14, - 0x28, - 0x00, - 0x1E, - 0x2F, - 0x5B, - 0x00, - 0x45, - 0x65, - 0xBF, - 0x00, - 0x97, - 0xAD, - 0xEB, - 0x00, - 0x67, - 0x74, - 0x96, - 0x00, - 0xD4, - 0xD7, - 0xDF, - 0x00, - 0x0B, - 0x16, - 0x36, - 0x00, - 0x33, - 0x51, - 0xB0, - 0x00, - 0x84, - 0x8C, - 0xA5, - 0x00, - 0x8C, - 0x94, - 0xAC, - 0x00, - 0x94, - 0x9C, - 0xB4, - 0x00, - 0xAC, - 0xB4, - 0xCC, - 0x00, - 0xB4, - 0xBC, - 0xD4, - 0x00, - 0xC4, - 0xCC, - 0xE6, - 0x00, - 0xBC, - 0xC4, - 0xDC, - 0x00, - 0xD4, - 0xDC, - 0xF4, - 0x00, - 0xDC, - 0xE4, - 0xFC, - 0x00, - 0x05, - 0x0C, - 0x26, - 0x00, - 0x13, - 0x1C, - 0x3D, - 0x00, - 0x9D, - 0xA4, - 0xBD, - 0x00, - 0xA5, - 0xAC, - 0xC4, - 0x00, - 0x8B, - 0x9F, - 0xEF, - 0x00, - 0x31, - 0x51, - 0xDC, - 0x00, - 0x1C, - 0x31, - 0xC2, - 0x00, - 0x69, - 0x73, - 0xCF, - 0x00, - 0x13, - 0x1F, - 0x97, - 0x00, - 0x0E, - 0x15, - 0x6C, - 0x00, - 0x04, - 0x04, - 0x1C, - 0x00, - 0x04, - 0x04, - 0x14, - 0x00, - 0x04, - 0x04, - 0x0C, - 0x00, - 0x0C, - 0x0C, - 0x1C, - 0x00, - 0x0C, - 0x0C, - 0x14, - 0x00, - 0x84, - 0x84, - 0xBC, - 0x00, - 0xA9, - 0xA9, - 0xD9, - 0x00, - 0xB4, - 0xB4, - 0xCF, - 0x00, - 0x15, - 0x15, - 0x18, - 0x00, - 0xC4, - 0xC4, - 0xDC, - 0x00, - 0x94, - 0x94, - 0xA4, - 0x00, - 0x9C, - 0x9C, - 0xAC, - 0x00, - 0xBC, - 0xBC, - 0xCC, - 0x00, - 0xB4, - 0xB4, - 0xC4, - 0x00, - 0xCC, - 0xCC, - 0xDC, - 0x00, - 0xAC, - 0xAC, - 0xB6, - 0x00, - 0x9C, - 0x9C, - 0xA3, - 0x00, - 0xEC, - 0xEC, - 0xF4, - 0x00, - 0x0C, - 0x0C, - 0x0C, - 0x00, - 0x04, - 0x04, - 0x04, - 0x00, - 0x6F, - 0x65, - 0x7A, - 0x00, - 0x5D, - 0x54, - 0x5E, - 0x00, - 0x65, - 0x5C, - 0x66, - 0x00, - 0x28, - 0x1B, - 0x27, - 0x00, - 0x37, - 0x2C, - 0x36, - 0x00, - 0x49, - 0x3B, - 0x45, - 0x00, - 0x57, - 0x4C, - 0x54, - 0x00, - 0x38, - 0x24, - 0x2D, - 0x00, - 0x46, - 0x2C, - 0x35, - 0x00, - 0x64, - 0x4C, - 0x54, - 0x00, - 0x6C, - 0x54, - 0x5C, - 0x00, - 0x73, - 0x6C, - 0x6E, - 0x00, - 0x54, - 0x2C, - 0x34, - 0x00, - 0x37, - 0x1A, - 0x1F, - 0x00, - 0x6A, - 0x64, - 0x65, - 0x00, - 0x7C, - 0x64, - 0x65, - 0x00, - 0x4A, - 0x1C, - 0x1C, - 0x00, - 0x6C, - 0x54, - 0x54, - 0x00, - 0x94, - 0x74, - 0x74, - 0x00, - 0x64, - 0x54, - 0x54, - 0x00, - 0x6C, - 0x5C, - 0x5C, - 0x00, - 0x74, - 0x64, - 0x64, - 0x00, - 0x7C, - 0x6C, - 0x6C, - 0x00, - 0x63, - 0x5C, - 0x5C, - 0x00, - 0x5A, - 0x54, - 0x54, - 0x00, - 0x56, - 0x3B, - 0x39, - 0x00, - 0x47, - 0x39, - 0x38, - 0x00, - 0x59, - 0x2C, - 0x27, - 0x00, - 0x47, - 0x2B, - 0x28, - 0x00, - 0x58, - 0x49, - 0x46, - 0x00, - 0x5E, - 0x28, - 0x1C, - 0x00, - 0x65, - 0x4C, - 0x46, - 0x00, - 0x74, - 0x5C, - 0x56, - 0x00, - 0x6B, - 0x3B, - 0x2C, - 0x00, - 0x36, - 0x2C, - 0x29, - 0x00, - 0x6C, - 0x34, - 0x20, - 0x00, - 0x6C, - 0x54, - 0x4C, - 0x00, - 0x7C, - 0x64, - 0x5C, - 0x00, - 0x2E, - 0x25, - 0x22, - 0x00, - 0x84, - 0x6C, - 0x64, - 0x00, - 0x8C, - 0x74, - 0x6C, - 0x00, - 0x3C, - 0x39, - 0x38, - 0x00, - 0x76, - 0x4A, - 0x38, - 0x00, - 0x64, - 0x54, - 0x4C, - 0x00, - 0x6C, - 0x5C, - 0x54, - 0x00, - 0x74, - 0x64, - 0x5C, - 0x00, - 0x7C, - 0x6C, - 0x64, - 0x00, - 0x84, - 0x74, - 0x6C, - 0x00, - 0x80, - 0x41, - 0x1F, - 0x00, - 0x57, - 0x39, - 0x29, - 0x00, - 0x8B, - 0x59, - 0x39, - 0x00, - 0x70, - 0x54, - 0x41, - 0x00, - 0x76, - 0x5C, - 0x4A, - 0x00, - 0x7D, - 0x64, - 0x53, - 0x00, - 0x8E, - 0x74, - 0x63, - 0x00, - 0x84, - 0x6C, - 0x5C, - 0x00, - 0x79, - 0x49, - 0x26, - 0x00, - 0x5A, - 0x47, - 0x39, - 0x00, - 0x8D, - 0x50, - 0x20, - 0x00, - 0x95, - 0x7C, - 0x67, - 0x00, - 0x9A, - 0x69, - 0x3B, - 0x00, - 0x47, - 0x38, - 0x2B, - 0x00, - 0x85, - 0x7C, - 0x74, - 0x00, - 0x92, - 0x70, - 0x4F, - 0x00, - 0x7C, - 0x6C, - 0x5C, - 0x00, - 0x84, - 0x74, - 0x64, - 0x00, - 0x8C, - 0x7C, - 0x6C, - 0x00, - 0x94, - 0x84, - 0x74, - 0x00, - 0x9C, - 0x8C, - 0x7C, - 0x00, - 0xFB, - 0xFA, - 0xF9, - 0x00, - 0x9C, - 0x5F, - 0x20, - 0x00, - 0x85, - 0x59, - 0x29, - 0x00, - 0x6C, - 0x5C, - 0x4B, - 0x00, - 0x73, - 0x64, - 0x54, - 0x00, - 0x6B, - 0x64, - 0x5C, - 0x00, - 0x73, - 0x6C, - 0x64, - 0x00, - 0x8A, - 0x84, - 0x7D, - 0x00, - 0x96, - 0x66, - 0x29, - 0x00, - 0xA4, - 0x79, - 0x42, - 0x00, - 0x6E, - 0x52, - 0x2F, - 0x00, - 0x5C, - 0x47, - 0x2B, - 0x00, - 0xA8, - 0x70, - 0x21, - 0x00, - 0x7E, - 0x6C, - 0x52, - 0x00, - 0x85, - 0x74, - 0x5B, - 0x00, - 0x8C, - 0x7C, - 0x64, - 0x00, - 0x7C, - 0x74, - 0x68, - 0x00, - 0x85, - 0x6A, - 0x3E, - 0x00, - 0xA2, - 0x84, - 0x56, - 0x00, - 0x60, - 0x54, - 0x41, - 0x00, - 0x9D, - 0x8C, - 0x70, - 0x00, - 0x61, - 0x5C, - 0x54, - 0x00, - 0xA4, - 0x79, - 0x30, - 0x00, - 0x72, - 0x5C, - 0x36, - 0x00, - 0xB7, - 0x86, - 0x27, - 0x00, - 0x8E, - 0x6F, - 0x32, - 0x00, - 0x7E, - 0x65, - 0x34, - 0x00, - 0x78, - 0x67, - 0x47, - 0x00, - 0x74, - 0x6C, - 0x5C, - 0x00, - 0x84, - 0x7C, - 0x6C, - 0x00, - 0x8C, - 0x84, - 0x74, - 0x00, - 0xAC, - 0x89, - 0x3B, - 0x00, - 0x94, - 0x81, - 0x58, - 0x00, - 0x94, - 0x87, - 0x6B, - 0x00, - 0x58, - 0x54, - 0x4B, - 0x00, - 0xBA, - 0x94, - 0x37, - 0x00, - 0x92, - 0x8C, - 0x7D, - 0x00, - 0xC5, - 0x9E, - 0x35, - 0x00, - 0x93, - 0x7B, - 0x3C, - 0x00, - 0xA3, - 0x91, - 0x63, - 0x00, - 0x88, - 0x77, - 0x43, - 0x00, - 0x7C, - 0x74, - 0x5A, - 0x00, - 0x84, - 0x7C, - 0x64, - 0x00, - 0x8C, - 0x84, - 0x6C, - 0x00, - 0x94, - 0x8C, - 0x74, - 0x00, - 0xC2, - 0x9D, - 0x1E, - 0x00, - 0xD2, - 0xB1, - 0x37, - 0x00, - 0xC3, - 0xA7, - 0x43, - 0x00, - 0xB0, - 0x99, - 0x49, - 0x00, - 0x62, - 0x5D, - 0x4C, - 0x00, - 0x97, - 0x86, - 0x40, - 0x00, - 0x5E, - 0x54, - 0x2B, - 0x00, - 0x61, - 0x58, - 0x34, - 0x00, - 0xDC, - 0xBF, - 0x39, - 0x00, - 0x9E, - 0x90, - 0x50, - 0x00, - 0x8B, - 0x80, - 0x4F, - 0x00, - 0xA9, - 0x9E, - 0x69, - 0x00, - 0x72, - 0x6C, - 0x50, - 0x00, - 0xCD, - 0xB8, - 0x49, - 0x00, - 0x6D, - 0x66, - 0x3D, - 0x00, - 0x47, - 0x45, - 0x3A, - 0x00, - 0xED, - 0xE9, - 0xD3, - 0x00, - 0xCF, - 0xB9, - 0x1F, - 0x00, - 0xDC, - 0xC9, - 0x4C, - 0x00, - 0xAC, - 0xA6, - 0x7C, - 0x00, - 0x38, - 0x36, - 0x29, - 0x00, - 0x9A, - 0x96, - 0x7C, - 0x00, - 0xB5, - 0xAB, - 0x55, - 0x00, - 0x5F, - 0x5C, - 0x40, - 0x00, - 0xD2, - 0xCF, - 0xB6, - 0x00, - 0xE1, - 0xD2, - 0x31, - 0x00, - 0xE6, - 0xD8, - 0x4B, - 0x00, - 0x7A, - 0x75, - 0x44, - 0x00, - 0xB6, - 0xB0, - 0x6C, - 0x00, - 0xED, - 0xE5, - 0x4D, - 0x00, - 0xC9, - 0xC3, - 0x59, - 0x00, - 0xDD, - 0xD8, - 0x5C, - 0x00, - 0x48, - 0x47, - 0x2E, - 0x00, - 0xED, - 0xEC, - 0x58, - 0x00, - 0xC1, - 0xC0, - 0x6E, - 0x00, - 0xE4, - 0xE4, - 0x5E, - 0x00, - 0xE8, - 0xEB, - 0x68, - 0x00, - 0xCE, - 0xD0, - 0x6B, - 0x00, - 0xBA, - 0xBB, - 0x82, - 0x00, - 0xAC, - 0xB4, - 0x04, - 0x00, - 0xF2, - 0xF6, - 0x5A, - 0x00, - 0xF6, - 0xFC, - 0x79, - 0x00, - 0xA3, - 0xAB, - 0x04, - 0x00, - 0x8D, - 0x94, - 0x09, - 0x00, - 0xBA, - 0xC2, - 0x3D, - 0x00, - 0xF3, - 0xFC, - 0x6A, - 0x00, - 0xED, - 0xF4, - 0x67, - 0x00, - 0xD9, - 0xE0, - 0x73, - 0x00, - 0xF4, - 0xFC, - 0x88, - 0x00, - 0xCD, - 0xD2, - 0x81, - 0x00, - 0xE3, - 0xEC, - 0x77, - 0x00, - 0x52, - 0x54, - 0x38, - 0x00, - 0xEA, - 0xF8, - 0x79, - 0x00, - 0xDC, - 0xE5, - 0x8A, - 0x00, - 0x6F, - 0x7D, - 0x0F, - 0x00, - 0xDD, - 0xEB, - 0x9D, - 0x00, - 0xEC, - 0xFC, - 0xAA, - 0x00, - 0x53, - 0x65, - 0x15, - 0x00, - 0xEC, - 0xFC, - 0xB4, - 0x00, - 0xE1, - 0xF2, - 0xAD, - 0x00, - 0xEC, - 0xFC, - 0xBC, - 0x00, - 0x44, - 0x55, - 0x19, - 0x00, - 0xE4, - 0xFC, - 0xB4, - 0x00, - 0xE4, - 0xFC, - 0xBC, - 0x00, - 0x66, - 0x70, - 0x56, - 0x00, - 0xE5, - 0xFC, - 0xC5, - 0x00, - 0xB3, - 0xC7, - 0xA1, - 0x00, - 0xCA, - 0xEB, - 0xC4, - 0x00, - 0x28, - 0x2C, - 0x28, - 0x00, - 0x32, - 0x3C, - 0x33, - 0x00, - 0x28, - 0x34, - 0x2A, - 0x00, - 0x10, - 0x28, - 0x1C, - 0x00, - 0x1C, - 0x2C, - 0x24, - 0x00, - 0x91, - 0x9C, - 0x97, - 0x00, - 0x1A, - 0x34, - 0x2B, - 0x00, - 0x14, - 0x2C, - 0x24, - 0x00, - 0x23, - 0x3C, - 0x34, - 0x00, - 0x0C, - 0x2C, - 0x24, - 0x00, - 0x38, - 0x44, - 0x41, - 0x00, - 0x20, - 0x24, - 0x23, - 0x00, - 0xD5, - 0xED, - 0xE7, - 0x00, - 0x04, - 0x2C, - 0x23, - 0x00, - 0x48, - 0x55, - 0x52, - 0x00, - 0x0C, - 0x34, - 0x2C, - 0x00, - 0xA3, - 0xBA, - 0xB9, - 0x00, - 0x04, - 0x2C, - 0x2C, - 0x00, - 0x04, - 0x24, - 0x24, - 0x00, - 0x0C, - 0x2C, - 0x2C, - 0x00, - 0x0C, - 0x24, - 0x24, - 0x00, - 0x13, - 0x34, - 0x34, - 0x00, - 0x14, - 0x2C, - 0x2C, - 0x00, - 0x0D, - 0x1C, - 0x1C, - 0x00, - 0x14, - 0x24, - 0x24, - 0x00, - 0x1C, - 0x2C, - 0x2C, - 0x00, - 0x24, - 0x34, - 0x34, - 0x00, - 0x30, - 0x3C, - 0x3C, - 0x00, - 0xD1, - 0xFC, - 0xFC, - 0x00, - 0x30, - 0x34, - 0x34, - 0x00, - 0x9B, - 0xE1, - 0xE3, - 0x00, - 0xB3, - 0xF2, - 0xF3, - 0x00, - 0x90, - 0xCE, - 0xD2, - 0x00, - 0xB1, - 0xCD, - 0xCF, - 0x00, - 0xC3, - 0xDE, - 0xE0, - 0x00, - 0x91, - 0xA9, - 0xAC, - 0x00, - 0x7B, - 0xBA, - 0xC4, - 0x00, - 0x53, - 0x60, - 0x62, - 0x00, - 0x1B, - 0x34, - 0x39, - 0x00, - 0x22, - 0x3D, - 0x42, - 0x00, - 0x04, - 0x24, - 0x2C, - 0x00, - 0x69, - 0xA3, - 0xB6, - 0x00, - 0x0C, - 0x24, - 0x2C, - 0x00, - 0x75, - 0x84, - 0x8A, - 0x00, - 0x04, - 0x1C, - 0x27, - 0x00, - 0x4A, - 0x8D, - 0xAC, - 0x00, - 0x70, - 0x8F, - 0x9D, - 0x00, - 0x0B, - 0x27, - 0x35, - 0x00, - 0x16, - 0x2C, - 0x37, - 0x00, - 0x4C, - 0x7C, - 0x95, - 0x00, - 0x66, - 0x76, - 0x7E, - 0x00, - 0x43, - 0x68, - 0x7D, - 0x00, - 0x35, - 0x45, - 0x4E, - 0x00, - 0x34, - 0x70, - 0x94, - 0x00, - 0x24, - 0x34, - 0x3E, - 0x00, - 0x1A, - 0x74, - 0xB2, - 0x00, - 0x5C, - 0x69, - 0x72, - 0x00, - 0x24, - 0x5C, - 0x85, - 0x00, - 0x16, - 0x32, - 0x46, - 0x00, - 0x35, - 0x52, - 0x68, - 0x00, - 0x0C, - 0x1C, - 0x29, - 0x00, - 0x16, - 0x45, - 0x70, - 0x00, - 0x15, - 0x24, - 0x31, - 0x00, - 0x33, - 0x3C, - 0x45, - 0x00, - 0x04, - 0x14, - 0x25, - 0x00, - 0x09, - 0x1B, - 0x35, - 0x00, - 0x0A, - 0x24, - 0x4C, - 0x00, - 0x2F, - 0x34, - 0x3E, - 0x00, - 0x28, - 0x2C, - 0x37, - 0x00, - 0x46, - 0x4A, - 0x56, - 0x00, - 0x18, - 0x1B, - 0x26, - 0x00, - 0x06, - 0x0B, - 0x24, - 0x00, - 0x24, - 0x24, - 0x2D, - 0x00, - 0x48, - 0x48, - 0x48, - 0x00, - - /* - Fonts - */ - 0x04, - 0x3E, - 0x14, - 0x00, - 0x00, - 0x5A, - 0x15, - 0x00, - 0x00, - 0x76, - 0x16, - 0x00, - 0x00, - 0x92, - 0x17, - 0x00, - 0x00, - 0x5E, - 0x2C, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0B, - 0x15, - 0x00, - 0x09, - 0x1F, - 0x00, - 0x10, - 0x30, - 0x00, - 0x0F, - 0x40, - 0x00, - 0x02, - 0x43, - 0x00, - 0x06, - 0x4A, - 0x00, - 0x07, - 0x52, - 0x00, - 0x06, - 0x59, - 0x00, - 0x0B, - 0x65, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x06, - 0x72, - 0x00, - 0x02, - 0x75, - 0x00, - 0x09, - 0x7F, - 0x00, - 0x0B, - 0x8B, - 0x00, - 0x05, - 0x91, - 0x00, - 0x0A, - 0x9C, - 0x00, - 0x0B, - 0xA8, - 0x00, - 0x0B, - 0xB4, - 0x00, - 0x0C, - 0xC1, - 0x00, - 0x0B, - 0xCD, - 0x00, - 0x09, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x02, - 0xF1, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x0B, - 0x0E, - 0x01, - 0x0B, - 0x1A, - 0x01, - 0x0A, - 0x25, - 0x01, - 0x10, - 0x36, - 0x01, - 0x10, - 0x47, - 0x01, - 0x0A, - 0x52, - 0x01, - 0x10, - 0x63, - 0x01, - 0x0D, - 0x71, - 0x01, - 0x09, - 0x7B, - 0x01, - 0x09, - 0x85, - 0x01, - 0x11, - 0x97, - 0x01, - 0x0C, - 0xA4, - 0x01, - 0x02, - 0xA7, - 0x01, - 0x09, - 0xB1, - 0x01, - 0x0B, - 0xBD, - 0x01, - 0x09, - 0xC7, - 0x01, - 0x11, - 0xD9, - 0x01, - 0x0D, - 0xE7, - 0x01, - 0x11, - 0xF9, - 0x01, - 0x0B, - 0x05, - 0x02, - 0x11, - 0x17, - 0x02, - 0x0B, - 0x23, - 0x02, - 0x0A, - 0x2E, - 0x02, - 0x09, - 0x38, - 0x02, - 0x0B, - 0x44, - 0x02, - 0x0F, - 0x54, - 0x02, - 0x15, - 0x6A, - 0x02, - 0x0D, - 0x78, - 0x02, - 0x0E, - 0x87, - 0x02, - 0x0A, - 0x92, - 0x02, - 0x04, - 0x97, - 0x02, - 0x09, - 0xA1, - 0x02, - 0x05, - 0xA7, - 0x02, - 0x0D, - 0xB5, - 0x02, - 0x0B, - 0xC1, - 0x02, - 0x06, - 0xC8, - 0x02, - 0x0D, - 0xD6, - 0x02, - 0x0C, - 0xE3, - 0x02, - 0x0D, - 0xF1, - 0x02, - 0x0D, - 0xFF, - 0x02, - 0x0C, - 0x0C, - 0x03, - 0x06, - 0x13, - 0x03, - 0x0C, - 0x20, - 0x03, - 0x0B, - 0x2C, - 0x03, - 0x02, - 0x2F, - 0x03, - 0x05, - 0x35, - 0x03, - 0x0A, - 0x40, - 0x03, - 0x02, - 0x43, - 0x03, - 0x12, - 0x56, - 0x03, - 0x0A, - 0x61, - 0x03, - 0x0C, - 0x6E, - 0x03, - 0x0C, - 0x7B, - 0x03, - 0x0D, - 0x89, - 0x03, - 0x05, - 0x8F, - 0x03, - 0x07, - 0x97, - 0x03, - 0x07, - 0x9F, - 0x03, - 0x0A, - 0xAA, - 0x03, - 0x0C, - 0xB7, - 0x03, - 0x12, - 0xCA, - 0x03, - 0x0B, - 0xD6, - 0x03, - 0x0C, - 0xE3, - 0x03, - 0x09, - 0xED, - 0x03, - 0x06, - 0xF4, - 0x03, - 0x02, - 0xF7, - 0x03, - 0x06, - 0xFE, - 0x03, - 0x0B, - 0x5E, - 0x2D, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0B, - 0x15, - 0x00, - 0x09, - 0x1F, - 0x00, - 0x10, - 0x30, - 0x00, - 0x0F, - 0x40, - 0x00, - 0x02, - 0x43, - 0x00, - 0x06, - 0x4A, - 0x00, - 0x07, - 0x52, - 0x00, - 0x06, - 0x59, - 0x00, - 0x0B, - 0x65, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x06, - 0x72, - 0x00, - 0x02, - 0x75, - 0x00, - 0x09, - 0x7F, - 0x00, - 0x0B, - 0x8B, - 0x00, - 0x05, - 0x91, - 0x00, - 0x0A, - 0x9C, - 0x00, - 0x0B, - 0xA8, - 0x00, - 0x0B, - 0xB4, - 0x00, - 0x0C, - 0xC1, - 0x00, - 0x0B, - 0xCD, - 0x00, - 0x09, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x02, - 0xF1, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x0B, - 0x02, - 0x01, - 0x0B, - 0x0E, - 0x01, - 0x0B, - 0x1A, - 0x01, - 0x0A, - 0x25, - 0x01, - 0x10, - 0x36, - 0x01, - 0x10, - 0x47, - 0x01, - 0x0A, - 0x52, - 0x01, - 0x10, - 0x63, - 0x01, - 0x0D, - 0x71, - 0x01, - 0x09, - 0x7B, - 0x01, - 0x09, - 0x85, - 0x01, - 0x11, - 0x97, - 0x01, - 0x0C, - 0xA4, - 0x01, - 0x02, - 0xA7, - 0x01, - 0x09, - 0xB1, - 0x01, - 0x0B, - 0xBD, - 0x01, - 0x09, - 0xC7, - 0x01, - 0x11, - 0xD9, - 0x01, - 0x0D, - 0xE7, - 0x01, - 0x11, - 0xF9, - 0x01, - 0x0B, - 0x05, - 0x02, - 0x11, - 0x17, - 0x02, - 0x0B, - 0x23, - 0x02, - 0x0A, - 0x2E, - 0x02, - 0x09, - 0x38, - 0x02, - 0x0B, - 0x44, - 0x02, - 0x0F, - 0x54, - 0x02, - 0x15, - 0x6A, - 0x02, - 0x0D, - 0x78, - 0x02, - 0x0E, - 0x87, - 0x02, - 0x0A, - 0x92, - 0x02, - 0x04, - 0x97, - 0x02, - 0x09, - 0xA1, - 0x02, - 0x05, - 0xA7, - 0x02, - 0x0D, - 0xB5, - 0x02, - 0x0B, - 0xC1, - 0x02, - 0x06, - 0xC8, - 0x02, - 0x0D, - 0xD6, - 0x02, - 0x0C, - 0xE3, - 0x02, - 0x0D, - 0xF1, - 0x02, - 0x0D, - 0xFF, - 0x02, - 0x0C, - 0x0C, - 0x03, - 0x06, - 0x13, - 0x03, - 0x0C, - 0x20, - 0x03, - 0x0B, - 0x2C, - 0x03, - 0x02, - 0x2F, - 0x03, - 0x05, - 0x35, - 0x03, - 0x0A, - 0x40, - 0x03, - 0x02, - 0x43, - 0x03, - 0x12, - 0x56, - 0x03, - 0x0A, - 0x61, - 0x03, - 0x0C, - 0x6E, - 0x03, - 0x0C, - 0x7B, - 0x03, - 0x0D, - 0x89, - 0x03, - 0x05, - 0x8F, - 0x03, - 0x07, - 0x97, - 0x03, - 0x07, - 0x9F, - 0x03, - 0x0A, - 0xAA, - 0x03, - 0x0C, - 0xB7, - 0x03, - 0x12, - 0xCA, - 0x03, - 0x0B, - 0xD6, - 0x03, - 0x0C, - 0xE3, - 0x03, - 0x09, - 0xED, - 0x03, - 0x06, - 0xF4, - 0x03, - 0x02, - 0xF7, - 0x03, - 0x06, - 0xFE, - 0x03, - 0x0B, - 0x5E, - 0x2E, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0C, - 0x16, - 0x00, - 0x09, - 0x20, - 0x00, - 0x11, - 0x32, - 0x00, - 0x10, - 0x43, - 0x00, - 0x02, - 0x46, - 0x00, - 0x07, - 0x4E, - 0x00, - 0x07, - 0x56, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x0C, - 0x6B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x77, - 0x00, - 0x02, - 0x7A, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x0C, - 0x92, - 0x00, - 0x05, - 0x98, - 0x00, - 0x0B, - 0xA4, - 0x00, - 0x0B, - 0xB0, - 0x00, - 0x0C, - 0xBD, - 0x00, - 0x0C, - 0xCA, - 0x00, - 0x0C, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x0C, - 0xFB, - 0x00, - 0x02, - 0xFE, - 0x00, - 0x04, - 0x03, - 0x01, - 0x0C, - 0x10, - 0x01, - 0x0C, - 0x1D, - 0x01, - 0x0C, - 0x2A, - 0x01, - 0x0B, - 0x36, - 0x01, - 0x11, - 0x48, - 0x01, - 0x11, - 0x5A, - 0x01, - 0x0B, - 0x66, - 0x01, - 0x11, - 0x78, - 0x01, - 0x0E, - 0x87, - 0x01, - 0x0A, - 0x92, - 0x01, - 0x09, - 0x9C, - 0x01, - 0x12, - 0xAF, - 0x01, - 0x0C, - 0xBC, - 0x01, - 0x02, - 0xBF, - 0x01, - 0x09, - 0xC9, - 0x01, - 0x0C, - 0xD6, - 0x01, - 0x09, - 0xE0, - 0x01, - 0x12, - 0xF3, - 0x01, - 0x0E, - 0x02, - 0x02, - 0x12, - 0x15, - 0x02, - 0x0B, - 0x21, - 0x02, - 0x12, - 0x34, - 0x02, - 0x0C, - 0x41, - 0x02, - 0x0B, - 0x4D, - 0x02, - 0x0A, - 0x58, - 0x02, - 0x0C, - 0x65, - 0x02, - 0x10, - 0x76, - 0x02, - 0x16, - 0x8D, - 0x02, - 0x0E, - 0x9C, - 0x02, - 0x0E, - 0xAB, - 0x02, - 0x0B, - 0xB7, - 0x02, - 0x05, - 0xBD, - 0x02, - 0x0A, - 0xC8, - 0x02, - 0x05, - 0xCE, - 0x02, - 0x0E, - 0xDD, - 0x02, - 0x0C, - 0xEA, - 0x02, - 0x07, - 0xF2, - 0x02, - 0x0E, - 0x01, - 0x03, - 0x0D, - 0x0F, - 0x03, - 0x0E, - 0x1E, - 0x03, - 0x0E, - 0x2D, - 0x03, - 0x0D, - 0x3B, - 0x03, - 0x07, - 0x43, - 0x03, - 0x0D, - 0x51, - 0x03, - 0x0B, - 0x5D, - 0x03, - 0x02, - 0x60, - 0x03, - 0x05, - 0x66, - 0x03, - 0x0B, - 0x72, - 0x03, - 0x02, - 0x75, - 0x03, - 0x13, - 0x89, - 0x03, - 0x0B, - 0x95, - 0x03, - 0x0D, - 0xA3, - 0x03, - 0x0D, - 0xB1, - 0x03, - 0x0D, - 0xBF, - 0x03, - 0x06, - 0xC6, - 0x03, - 0x08, - 0xCF, - 0x03, - 0x07, - 0xD7, - 0x03, - 0x0B, - 0xE3, - 0x03, - 0x0D, - 0xF1, - 0x03, - 0x14, - 0x06, - 0x04, - 0x0B, - 0x12, - 0x04, - 0x0D, - 0x20, - 0x04, - 0x09, - 0x2A, - 0x04, - 0x06, - 0x31, - 0x04, - 0x02, - 0x34, - 0x04, - 0x06, - 0x3B, - 0x04, - 0x0C, - 0x5E, - 0x2F, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x02, - 0x09, - 0x00, - 0x0C, - 0x16, - 0x00, - 0x09, - 0x20, - 0x00, - 0x11, - 0x32, - 0x00, - 0x10, - 0x43, - 0x00, - 0x02, - 0x46, - 0x00, - 0x07, - 0x4E, - 0x00, - 0x07, - 0x56, - 0x00, - 0x07, - 0x5E, - 0x00, - 0x0C, - 0x6B, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x77, - 0x00, - 0x02, - 0x7A, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x0C, - 0x92, - 0x00, - 0x05, - 0x98, - 0x00, - 0x0B, - 0xA4, - 0x00, - 0x0B, - 0xB0, - 0x00, - 0x0C, - 0xBD, - 0x00, - 0x0C, - 0xCA, - 0x00, - 0x0C, - 0xD7, - 0x00, - 0x0A, - 0xE2, - 0x00, - 0x0B, - 0xEE, - 0x00, - 0x0C, - 0xFB, - 0x00, - 0x02, - 0xFE, - 0x00, - 0x04, - 0x03, - 0x01, - 0x0C, - 0x10, - 0x01, - 0x0C, - 0x1D, - 0x01, - 0x0C, - 0x2A, - 0x01, - 0x0B, - 0x36, - 0x01, - 0x11, - 0x48, - 0x01, - 0x11, - 0x5A, - 0x01, - 0x0B, - 0x66, - 0x01, - 0x11, - 0x78, - 0x01, - 0x0E, - 0x87, - 0x01, - 0x0A, - 0x92, - 0x01, - 0x09, - 0x9C, - 0x01, - 0x12, - 0xAF, - 0x01, - 0x0C, - 0xBC, - 0x01, - 0x02, - 0xBF, - 0x01, - 0x09, - 0xC9, - 0x01, - 0x0C, - 0xD6, - 0x01, - 0x09, - 0xE0, - 0x01, - 0x12, - 0xF3, - 0x01, - 0x0E, - 0x02, - 0x02, - 0x12, - 0x15, - 0x02, - 0x0B, - 0x21, - 0x02, - 0x12, - 0x34, - 0x02, - 0x0C, - 0x41, - 0x02, - 0x0B, - 0x4D, - 0x02, - 0x0A, - 0x58, - 0x02, - 0x0C, - 0x65, - 0x02, - 0x10, - 0x76, - 0x02, - 0x16, - 0x8D, - 0x02, - 0x0E, - 0x9C, - 0x02, - 0x0E, - 0xAB, - 0x02, - 0x0B, - 0xB7, - 0x02, - 0x05, - 0xBD, - 0x02, - 0x0A, - 0xC8, - 0x02, - 0x05, - 0xCE, - 0x02, - 0x0E, - 0xDD, - 0x02, - 0x0C, - 0xEA, - 0x02, - 0x07, - 0xF2, - 0x02, - 0x0E, - 0x01, - 0x03, - 0x0D, - 0x0F, - 0x03, - 0x0E, - 0x1E, - 0x03, - 0x0E, - 0x2D, - 0x03, - 0x0D, - 0x3B, - 0x03, - 0x07, - 0x43, - 0x03, - 0x0D, - 0x51, - 0x03, - 0x0B, - 0x5D, - 0x03, - 0x02, - 0x60, - 0x03, - 0x05, - 0x66, - 0x03, - 0x0B, - 0x72, - 0x03, - 0x02, - 0x75, - 0x03, - 0x13, - 0x89, - 0x03, - 0x0B, - 0x95, - 0x03, - 0x0D, - 0xA3, - 0x03, - 0x0D, - 0xB1, - 0x03, - 0x0D, - 0xBF, - 0x03, - 0x06, - 0xC6, - 0x03, - 0x08, - 0xCF, - 0x03, - 0x07, - 0xD7, - 0x03, - 0x0B, - 0xE3, - 0x03, - 0x0D, - 0xF1, - 0x03, - 0x14, - 0x06, - 0x04, - 0x0B, - 0x12, - 0x04, - 0x0D, - 0x20, - 0x04, - 0x09, - 0x2A, - 0x04, - 0x06, - 0x31, - 0x04, - 0x02, - 0x34, - 0x04, - 0x06, - 0x3B, - 0x04, - 0x0C, - - /* - Bitmaps - */ - 0x30, - 0x6F, - 0x19, - 0x00, - 0x00, - 0x5F, - 0x1A, - 0x00, - 0x00, - 0x53, - 0x1B, - 0x00, - 0x00, - 0x47, - 0x1C, - 0x00, - 0x00, - 0xA3, - 0x1D, - 0x00, - 0x00, - 0x2B, - 0x1F, - 0x00, - 0x00, - 0x87, - 0x20, - 0x00, - 0x00, - 0x63, - 0x22, - 0x00, - 0x00, - 0x47, - 0x24, - 0x00, - 0x00, - 0x07, - 0x26, - 0x00, - 0x00, - 0x43, - 0x49, - 0x00, - 0x00, - 0xFF, - 0x4A, - 0x00, - 0x00, - 0xEF, - 0x7B, - 0x00, - 0x00, - 0x77, - 0x7E, - 0x00, - 0x00, - 0x67, - 0x80, - 0x00, - 0x00, - 0x67, - 0x8E, - 0x00, - 0x00, - 0xB3, - 0x90, - 0x00, - 0x00, - 0xC3, - 0x96, - 0x00, - 0x00, - 0xB3, - 0x9E, - 0x00, - 0x00, - 0xD7, - 0xA2, - 0x00, - 0x00, - 0x7B, - 0xA7, - 0x00, - 0x00, - 0x67, - 0xAB, - 0x00, - 0x00, - 0x4F, - 0xAF, - 0x00, - 0x00, - 0x73, - 0xB3, - 0x00, - 0x00, - 0x93, - 0xB7, - 0x00, - 0x00, - 0xCB, - 0xBB, - 0x00, - 0x00, - 0x4F, - 0xC0, - 0x00, - 0x00, - 0x27, - 0xC4, - 0x00, - 0x00, - 0x33, - 0xC8, - 0x00, - 0x00, - 0x53, - 0xCC, - 0x00, - 0x00, - 0xE3, - 0xCF, - 0x00, - 0x00, - 0x8F, - 0xD3, - 0x00, - 0x00, - 0x13, - 0xD7, - 0x00, - 0x00, - 0xB3, - 0xDA, - 0x00, - 0x00, - 0x83, - 0xDE, - 0x00, - 0x00, - 0x6F, - 0xE0, - 0x00, - 0x00, - 0xEB, - 0xE5, - 0x00, - 0x00, - 0x63, - 0xEB, - 0x00, - 0x00, - 0xBB, - 0xF0, - 0x00, - 0x00, - 0xAF, - 0xF2, - 0x00, - 0x00, - 0x0B, - 0xFB, - 0x00, - 0x00, - 0xC7, - 0xB1, - 0x01, - 0x00, - 0x0B, - 0xC9, - 0x02, - 0x00, - 0x07, - 0xC6, - 0x03, - 0x00, - 0x77, - 0xF0, - 0x04, - 0x00, - 0xBF, - 0x59, - 0x05, - 0x00, - 0x07, - 0xC3, - 0x05, - 0x00, - 0x1B, - 0x37, - 0x06, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x53, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x9B, - 0x72, - 0x54, - 0x00, - 0x00, - 0x00, - 0x01, - 0x53, - 0x11, - 0x90, - 0x01, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x65, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0x65, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9B, - 0x9B, - 0x65, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x09, - 0x65, - 0x90, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x90, - 0x90, - 0x65, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x65, - 0x90, - 0x9B, - 0x72, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x90, - 0x9B, - 0xA0, - 0x0C, - 0x90, - 0x01, - 0x9B, - 0x01, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x01, - 0x72, - 0x01, - 0x53, - 0x00, - 0x01, - 0x13, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0x04, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x04, - 0x9B, - 0x72, - 0x04, - 0x04, - 0x00, - 0x00, - 0x01, - 0x04, - 0x11, - 0x90, - 0x01, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x65, - 0x0B, - 0x04, - 0x00, - 0x04, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0x65, - 0x00, - 0x0D, - 0x04, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9B, - 0x9B, - 0x65, - 0x00, - 0x0D, - 0x04, - 0x00, - 0x03, - 0x65, - 0x90, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x90, - 0x90, - 0x65, - 0x0B, - 0x04, - 0x00, - 0x04, - 0x65, - 0x90, - 0x9B, - 0x72, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x90, - 0x9B, - 0xA0, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x9B, - 0x90, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x72, - 0x04, - 0x04, - 0x00, - 0x00, - 0x01, - 0x13, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x1D, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x04, - 0x9B, - 0x72, - 0x03, - 0x03, - 0x00, - 0x00, - 0x01, - 0xB5, - 0x11, - 0x90, - 0x01, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x65, - 0x0B, - 0x03, - 0x00, - 0x04, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0x65, - 0x00, - 0x0D, - 0x03, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0F, - 0x03, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9B, - 0x9B, - 0x65, - 0x00, - 0x0D, - 0x03, - 0x00, - 0x03, - 0x65, - 0x90, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x90, - 0x90, - 0x65, - 0x0B, - 0x03, - 0x00, - 0x04, - 0x65, - 0x90, - 0x9B, - 0x72, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x90, - 0x9B, - 0xA0, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x9B, - 0x90, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x03, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x72, - 0x1D, - 0x03, - 0x00, - 0x00, - 0x01, - 0x13, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4E, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0x04, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x04, - 0x9B, - 0x72, - 0x04, - 0x04, - 0x00, - 0x00, - 0x01, - 0x04, - 0x11, - 0x90, - 0x01, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x69, - 0x0B, - 0x04, - 0x00, - 0x04, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x00, - 0x00, - 0x00, - 0x07, - 0x90, - 0x90, - 0x66, - 0x04, - 0x06, - 0x06, - 0x06, - 0x00, - 0x09, - 0x04, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0xD8, - 0x00, - 0x05, - 0x06, - 0x05, - 0x04, - 0x00, - 0x06, - 0x06, - 0x06, - 0x04, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x06, - 0x06, - 0x00, - 0x03, - 0x04, - 0x04, - 0x04, - 0x00, - 0x05, - 0x06, - 0x00, - 0x03, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0xD8, - 0x04, - 0x05, - 0x06, - 0x01, - 0x04, - 0x07, - 0x06, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x05, - 0x90, - 0x90, - 0x04, - 0x04, - 0x04, - 0x00, - 0x0A, - 0x06, - 0x00, - 0x04, - 0x04, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x04, - 0x07, - 0x06, - 0x04, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x04, - 0x05, - 0x06, - 0x05, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x04, - 0x06, - 0x06, - 0x05, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x05, - 0x90, - 0x90, - 0x04, - 0x04, - 0x04, - 0x00, - 0x08, - 0x06, - 0x04, - 0x04, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x04, - 0x04, - 0x05, - 0x06, - 0x01, - 0x04, - 0x05, - 0x06, - 0x00, - 0x04, - 0x04, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x04, - 0x04, - 0x04, - 0x06, - 0x01, - 0x04, - 0x01, - 0x04, - 0x06, - 0x06, - 0x00, - 0x03, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x04, - 0x04, - 0x04, - 0x06, - 0x00, - 0x03, - 0x04, - 0x04, - 0x04, - 0x00, - 0x05, - 0x06, - 0x00, - 0x03, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9B, - 0x9B, - 0x65, - 0x04, - 0x04, - 0x06, - 0x06, - 0x00, - 0x06, - 0x04, - 0x00, - 0x06, - 0x06, - 0x06, - 0x04, - 0x69, - 0x90, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x72, - 0x90, - 0x90, - 0x65, - 0x04, - 0x04, - 0x06, - 0x00, - 0x08, - 0x04, - 0x00, - 0x04, - 0x69, - 0x90, - 0x9B, - 0x72, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x90, - 0x9B, - 0xA0, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x9B, - 0x90, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x72, - 0x04, - 0x04, - 0x00, - 0x00, - 0x01, - 0x13, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x7A, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x1D, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x04, - 0x9B, - 0x72, - 0x03, - 0x03, - 0x00, - 0x00, - 0x01, - 0xB5, - 0x11, - 0x90, - 0x01, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x69, - 0x04, - 0xD0, - 0x07, - 0x03, - 0x00, - 0x04, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x90, - 0x90, - 0x66, - 0xD0, - 0x06, - 0x06, - 0x06, - 0xD0, - 0xD0, - 0x03, - 0x03, - 0x03, - 0x04, - 0xD0, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0xB5, - 0x00, - 0x05, - 0x06, - 0x00, - 0x0B, - 0xD0, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x06, - 0x06, - 0xD0, - 0xD0, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x06, - 0x06, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x05, - 0x06, - 0x00, - 0x03, - 0xD0, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0xB5, - 0xD0, - 0x05, - 0x06, - 0x01, - 0xD0, - 0x07, - 0x06, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x05, - 0x90, - 0x90, - 0x03, - 0xD0, - 0xD0, - 0x00, - 0x0A, - 0x06, - 0x00, - 0x04, - 0xD0, - 0xD0, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x06, - 0x90, - 0x90, - 0x03, - 0x03, - 0xD0, - 0xD0, - 0x07, - 0x06, - 0x00, - 0x06, - 0xD0, - 0xD0, - 0xD0, - 0x03, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x07, - 0x90, - 0x90, - 0x03, - 0x03, - 0x03, - 0xD0, - 0xD0, - 0x00, - 0x05, - 0x06, - 0x00, - 0x07, - 0xD0, - 0xD0, - 0x03, - 0x03, - 0x03, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x90, - 0x90, - 0x03, - 0x03, - 0xD0, - 0xD0, - 0x06, - 0x06, - 0x00, - 0x07, - 0xD0, - 0xD0, - 0x03, - 0x03, - 0x03, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x90, - 0x90, - 0x03, - 0xD0, - 0xD0, - 0x00, - 0x08, - 0x06, - 0x00, - 0x06, - 0xD0, - 0xD0, - 0xD0, - 0x03, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x03, - 0xD0, - 0x05, - 0x06, - 0x01, - 0xD0, - 0x05, - 0x06, - 0x00, - 0x04, - 0xD0, - 0xD0, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x03, - 0xD0, - 0x04, - 0x06, - 0x01, - 0xD0, - 0x01, - 0xD0, - 0x06, - 0x06, - 0x00, - 0x03, - 0xD0, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x03, - 0xD0, - 0x04, - 0x06, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x05, - 0x06, - 0x00, - 0x03, - 0xD0, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x9B, - 0x9B, - 0x65, - 0xD0, - 0xD0, - 0x06, - 0x06, - 0xD0, - 0xD0, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x06, - 0x06, - 0x19, - 0x69, - 0x90, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x72, - 0x90, - 0x90, - 0x65, - 0xD0, - 0xD0, - 0x06, - 0xD0, - 0x04, - 0x03, - 0x00, - 0x07, - 0xD0, - 0xD0, - 0x35, - 0x69, - 0x90, - 0x9B, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x90, - 0x9B, - 0xA0, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x9B, - 0x90, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x03, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x72, - 0x1D, - 0x03, - 0x00, - 0x00, - 0x01, - 0x13, - 0x00, - 0x00, - 0x00, - 0x13, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4E, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x53, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x9B, - 0x72, - 0x54, - 0x00, - 0x00, - 0x00, - 0x01, - 0x53, - 0x11, - 0x90, - 0x01, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x69, - 0x0B, - 0x00, - 0x00, - 0x04, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x00, - 0x00, - 0x00, - 0x07, - 0x90, - 0x90, - 0x66, - 0x00, - 0x06, - 0x06, - 0x06, - 0x00, - 0x09, - 0x00, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0x00, - 0x00, - 0x05, - 0x06, - 0x05, - 0x00, - 0x00, - 0x06, - 0x06, - 0x06, - 0x00, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x06, - 0x06, - 0x00, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x06, - 0x00, - 0x03, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x05, - 0x06, - 0x01, - 0x00, - 0x07, - 0x06, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x05, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x06, - 0x00, - 0x04, - 0x00, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x00, - 0x07, - 0x06, - 0x04, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x00, - 0x05, - 0x06, - 0x05, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x00, - 0x06, - 0x06, - 0x05, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x05, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x06, - 0x04, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x05, - 0x06, - 0x01, - 0x00, - 0x05, - 0x06, - 0x00, - 0x04, - 0x00, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x04, - 0x06, - 0x01, - 0x00, - 0x01, - 0x00, - 0x06, - 0x06, - 0x00, - 0x03, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x90, - 0x00, - 0x00, - 0x04, - 0x06, - 0x00, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x06, - 0x00, - 0x03, - 0x09, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9B, - 0x9B, - 0x65, - 0x00, - 0x00, - 0x06, - 0x06, - 0x00, - 0x06, - 0x00, - 0x00, - 0x06, - 0x06, - 0x06, - 0x53, - 0x69, - 0x90, - 0x9B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x72, - 0x90, - 0x90, - 0x65, - 0x00, - 0x00, - 0x06, - 0x00, - 0x07, - 0x00, - 0x00, - 0x05, - 0x09, - 0x69, - 0x90, - 0x9B, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x90, - 0x9B, - 0xA0, - 0x0C, - 0x90, - 0x01, - 0x9B, - 0x01, - 0x90, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x01, - 0x72, - 0x01, - 0x53, - 0x00, - 0x01, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCE, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0x04, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x01, - 0x9B, - 0x01, - 0x72, - 0x07, - 0x04, - 0x00, - 0x00, - 0x01, - 0x04, - 0x11, - 0x90, - 0x06, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x65, - 0x04, - 0x04, - 0x01, - 0xD4, - 0x06, - 0x04, - 0x00, - 0x04, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0x65, - 0x00, - 0x04, - 0x04, - 0x01, - 0x93, - 0x01, - 0x94, - 0x07, - 0x04, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x05, - 0x04, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x04, - 0x00, - 0x05, - 0xAB, - 0x90, - 0x9B, - 0x93, - 0xB4, - 0x00, - 0x06, - 0x04, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x04, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x04, - 0x00, - 0x06, - 0xA2, - 0x90, - 0x90, - 0x90, - 0x92, - 0xD4, - 0x05, - 0x04, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x04, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x04, - 0x01, - 0x83, - 0x04, - 0x90, - 0x01, - 0xAD, - 0x05, - 0x04, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x90, - 0x90, - 0x04, - 0x04, - 0x04, - 0xA4, - 0x04, - 0x90, - 0x01, - 0x9B, - 0x01, - 0x8B, - 0x05, - 0x04, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x90, - 0x90, - 0x04, - 0x04, - 0xB4, - 0x83, - 0x90, - 0x90, - 0x7F, - 0x90, - 0x90, - 0x90, - 0xA4, - 0x00, - 0x04, - 0x04, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x04, - 0xB4, - 0x92, - 0x9B, - 0x90, - 0x9B, - 0xA2, - 0x93, - 0x90, - 0x90, - 0x91, - 0xB4, - 0x04, - 0x04, - 0x04, - 0x90, - 0x90, - 0x00, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0xB4, - 0x8B, - 0x90, - 0x90, - 0x90, - 0x7F, - 0xB4, - 0xB4, - 0x83, - 0x9B, - 0x90, - 0x92, - 0x04, - 0x04, - 0x04, - 0x90, - 0x90, - 0x00, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x04, - 0xA4, - 0x90, - 0x90, - 0x90, - 0xA4, - 0x04, - 0x04, - 0x94, - 0x90, - 0x90, - 0x90, - 0xA6, - 0x04, - 0x04, - 0x90, - 0x90, - 0x00, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x90, - 0x90, - 0x04, - 0x04, - 0xAB, - 0xA2, - 0xA6, - 0x00, - 0x04, - 0x04, - 0x00, - 0x08, - 0xA2, - 0x90, - 0x90, - 0x91, - 0xB0, - 0x04, - 0x90, - 0x90, - 0x05, - 0x04, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0A, - 0x04, - 0x00, - 0x07, - 0x93, - 0x90, - 0x90, - 0x8B, - 0x04, - 0x90, - 0x90, - 0x00, - 0x05, - 0x04, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0A, - 0x04, - 0x00, - 0x07, - 0xB4, - 0x8B, - 0x90, - 0x90, - 0x93, - 0x9B, - 0x90, - 0x00, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9B, - 0x9B, - 0x65, - 0x00, - 0x0A, - 0x04, - 0x00, - 0x06, - 0xB4, - 0x8B, - 0x90, - 0x90, - 0xA4, - 0x90, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x90, - 0x90, - 0x65, - 0x0A, - 0x04, - 0x00, - 0x05, - 0xB4, - 0x8B, - 0x90, - 0x90, - 0xAD, - 0x00, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x90, - 0x9B, - 0xA0, - 0x0B, - 0x90, - 0x00, - 0x09, - 0xB4, - 0x8B, - 0x90, - 0x91, - 0xAD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x00, - 0x08, - 0xB4, - 0x8B, - 0x9B, - 0x91, - 0xB4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x11, - 0x04, - 0x00, - 0x07, - 0xB4, - 0x92, - 0x90, - 0x8B, - 0xB0, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x13, - 0x04, - 0x00, - 0x05, - 0xA2, - 0x9B, - 0x91, - 0xAD, - 0x04, - 0x00, - 0x00, - 0x00, - 0x14, - 0x04, - 0x00, - 0x04, - 0x94, - 0x83, - 0x91, - 0x94, - 0x00, - 0x00, - 0x15, - 0x04, - 0x00, - 0x03, - 0xB4, - 0xA2, - 0xB4, - 0x00, - 0x00, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xD6, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x03, - 0x1D, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x01, - 0x9B, - 0x01, - 0x72, - 0x07, - 0x03, - 0x00, - 0x00, - 0x01, - 0xB5, - 0x11, - 0x90, - 0x01, - 0xB5, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x65, - 0x04, - 0x03, - 0x01, - 0xB5, - 0x06, - 0x03, - 0x00, - 0x09, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x1D, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x90, - 0x90, - 0x65, - 0x00, - 0x04, - 0x03, - 0x01, - 0x84, - 0x01, - 0x87, - 0x07, - 0x03, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x03, - 0x00, - 0x05, - 0xAC, - 0x90, - 0x9B, - 0x84, - 0xB1, - 0x00, - 0x06, - 0x03, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x03, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x03, - 0x00, - 0x06, - 0x73, - 0x90, - 0x90, - 0x90, - 0x9D, - 0xC4, - 0x05, - 0x03, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x03, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x04, - 0x03, - 0x01, - 0xA1, - 0x04, - 0x90, - 0x01, - 0x74, - 0x01, - 0xD6, - 0x04, - 0x03, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x06, - 0x90, - 0x90, - 0x03, - 0x03, - 0x03, - 0x73, - 0x05, - 0x90, - 0x01, - 0x9D, - 0x05, - 0x03, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x90, - 0x90, - 0x03, - 0x03, - 0xAE, - 0xA1, - 0x90, - 0x90, - 0x9C, - 0x90, - 0x90, - 0x9B, - 0x73, - 0x00, - 0x04, - 0x03, - 0x01, - 0x90, - 0x01, - 0x90, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x03, - 0xB1, - 0x84, - 0x9A, - 0x90, - 0x90, - 0x73, - 0x84, - 0x90, - 0x90, - 0x9C, - 0xB1, - 0x03, - 0x03, - 0x03, - 0x90, - 0x90, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0xB1, - 0x9D, - 0x9B, - 0x90, - 0x9B, - 0x91, - 0xB1, - 0xB1, - 0xA1, - 0x90, - 0x90, - 0x84, - 0xAE, - 0x03, - 0x03, - 0x90, - 0x90, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x03, - 0x73, - 0x90, - 0x9B, - 0x9B, - 0x73, - 0x03, - 0xC4, - 0x74, - 0x90, - 0x90, - 0x90, - 0x87, - 0x03, - 0x03, - 0x90, - 0x90, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x90, - 0x90, - 0x03, - 0x03, - 0xAC, - 0x84, - 0x87, - 0x00, - 0x04, - 0x03, - 0x00, - 0x08, - 0x73, - 0x90, - 0x90, - 0x9C, - 0xAC, - 0x03, - 0x90, - 0x90, - 0x05, - 0x03, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0A, - 0x03, - 0x00, - 0x07, - 0x84, - 0x90, - 0x90, - 0x9D, - 0x03, - 0x9B, - 0x90, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0A, - 0x03, - 0x00, - 0x07, - 0xB1, - 0x9D, - 0x90, - 0x90, - 0x84, - 0x9B, - 0x9B, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9B, - 0x9B, - 0x65, - 0x00, - 0x0A, - 0x03, - 0x00, - 0x06, - 0xB1, - 0x9D, - 0x90, - 0x9B, - 0x73, - 0x90, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x90, - 0x90, - 0x65, - 0x0A, - 0x03, - 0x00, - 0x05, - 0xB1, - 0x9D, - 0x90, - 0x90, - 0xAC, - 0x00, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x90, - 0x9B, - 0xA0, - 0x0B, - 0x90, - 0x00, - 0x09, - 0xB1, - 0x9D, - 0x90, - 0x9C, - 0xAC, - 0x03, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x03, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x00, - 0x08, - 0xB1, - 0x9D, - 0x9A, - 0x9C, - 0xB1, - 0x03, - 0x03, - 0x03, - 0x00, - 0x00, - 0x11, - 0x03, - 0x00, - 0x07, - 0xAE, - 0x84, - 0x90, - 0x9D, - 0xAC, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x13, - 0x03, - 0x00, - 0x05, - 0x73, - 0x90, - 0x9C, - 0xAC, - 0xC4, - 0x00, - 0x00, - 0x00, - 0x14, - 0x03, - 0x00, - 0x04, - 0x74, - 0xA1, - 0x9C, - 0x74, - 0x00, - 0x00, - 0x15, - 0x03, - 0x00, - 0x03, - 0xB1, - 0x73, - 0xAE, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xB2, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x53, - 0x72, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x03, - 0x9B, - 0x72, - 0x54, - 0x00, - 0x00, - 0x00, - 0x01, - 0x53, - 0x11, - 0x90, - 0x01, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x9B, - 0x90, - 0x65, - 0x0B, - 0x00, - 0x00, - 0x05, - 0x65, - 0x9B, - 0x90, - 0x72, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x90, - 0x90, - 0x65, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x72, - 0x76, - 0x00, - 0x07, - 0x00, - 0x00, - 0x03, - 0x65, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x89, - 0x90, - 0x90, - 0x72, - 0xF4, - 0x00, - 0x06, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x54, - 0x75, - 0x9B, - 0x90, - 0x90, - 0x70, - 0xC6, - 0x05, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x6F, - 0x9B, - 0x90, - 0x90, - 0x90, - 0x88, - 0xC6, - 0x00, - 0x04, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x00, - 0xC6, - 0xC6, - 0x76, - 0x9B, - 0x90, - 0x90, - 0x9B, - 0x9B, - 0x70, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x90, - 0x90, - 0x54, - 0xC6, - 0x4C, - 0x6F, - 0x90, - 0x9B, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0x76, - 0x00, - 0x04, - 0x00, - 0x02, - 0x90, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x00, - 0x46, - 0x72, - 0x9B, - 0x90, - 0x90, - 0x75, - 0x72, - 0x9B, - 0x9B, - 0x9F, - 0x4C, - 0x00, - 0x00, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x4C, - 0x6F, - 0x9B, - 0x90, - 0x9B, - 0x9F, - 0x4C, - 0xF4, - 0x6F, - 0x9B, - 0x9B, - 0x72, - 0xC6, - 0x00, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0xC6, - 0x76, - 0x9B, - 0x9B, - 0x9B, - 0x76, - 0x00, - 0x00, - 0x88, - 0x9B, - 0x9B, - 0x90, - 0x76, - 0x00, - 0x54, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x90, - 0x90, - 0x00, - 0x00, - 0x89, - 0x75, - 0x76, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x75, - 0x9B, - 0x9B, - 0x9F, - 0x4C, - 0x00, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0A, - 0x00, - 0x00, - 0x07, - 0x72, - 0x9C, - 0x9B, - 0x6F, - 0xC6, - 0x9B, - 0x90, - 0x00, - 0x00, - 0x00, - 0x01, - 0x90, - 0x01, - 0x90, - 0x0A, - 0x00, - 0x00, - 0x08, - 0x4C, - 0x70, - 0x91, - 0x9B, - 0x72, - 0x9B, - 0x9B, - 0x54, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9B, - 0x9B, - 0x65, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x07, - 0x4C, - 0x70, - 0x9C, - 0x9B, - 0x76, - 0x9B, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x72, - 0x90, - 0x90, - 0x65, - 0x0A, - 0x00, - 0x00, - 0x05, - 0x4C, - 0x70, - 0x9B, - 0x9B, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x90, - 0x9B, - 0xA0, - 0x0B, - 0x90, - 0x00, - 0x05, - 0x4C, - 0x6F, - 0x9C, - 0x9F, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x72, - 0x9B, - 0x0C, - 0x90, - 0x00, - 0x06, - 0x4C, - 0x70, - 0x9C, - 0x9F, - 0x46, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x02, - 0x11, - 0x00, - 0x00, - 0x07, - 0x4C, - 0x72, - 0x9B, - 0x6F, - 0x89, - 0x09, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x12, - 0x00, - 0x00, - 0x05, - 0xC6, - 0x75, - 0x9B, - 0x9F, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x14, - 0x00, - 0x00, - 0x04, - 0x88, - 0x6F, - 0x9F, - 0x88, - 0x00, - 0x00, - 0x00, - 0x02, - 0x15, - 0x00, - 0x00, - 0x03, - 0x4C, - 0x75, - 0xF4, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x01, - 0x00, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x2E, - 0x23, - 0x00, - 0x00, - 0x00, - 0x3D, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x52, - 0x52, - 0x52, - 0xFF, - 0x52, - 0x71, - 0x7A, - 0x64, - 0x8B, - 0x65, - 0x65, - 0x64, - 0x83, - 0x73, - 0x00, - 0x05, - 0x52, - 0x00, - 0x0B, - 0x67, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x00, - 0x05, - 0x65, - 0x00, - 0x15, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x00, - 0x1A, - 0x65, - 0x00, - 0x06, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x0F, - 0x65, - 0x01, - 0x02, - 0x07, - 0x65, - 0x01, - 0x02, - 0x09, - 0x65, - 0x00, - 0x06, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x0E, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x08, - 0x65, - 0x00, - 0x0E, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x09, - 0x64, - 0x01, - 0x02, - 0x11, - 0x64, - 0x01, - 0x02, - 0x0C, - 0x64, - 0x01, - 0x65, - 0x0A, - 0x64, - 0x01, - 0x02, - 0x04, - 0x64, - 0x00, - 0x1C, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x05, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x00, - 0x05, - 0x64, - 0x01, - 0x65, - 0x06, - 0x64, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x06, - 0x64, - 0x00, - 0x03, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x01, - 0x65, - 0x06, - 0x64, - 0x00, - 0x05, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x13, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x52, - 0x52, - 0xFF, - 0x92, - 0x7A, - 0x02, - 0x7B, - 0x65, - 0x4B, - 0x65, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x10, - 0x62, - 0x87, - 0x52, - 0x52, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x06, - 0x64, - 0x00, - 0x80, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x06, - 0x64, - 0x00, - 0x18, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x3A, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x74, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x63, - 0x71, - 0x52, - 0x52, - 0x71, - 0x64, - 0x02, - 0x02, - 0x7A, - 0x7C, - 0x82, - 0x75, - 0x76, - 0x6D, - 0x66, - 0x02, - 0x02, - 0x65, - 0x6A, - 0xFE, - 0x62, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x05, - 0x02, - 0x00, - 0x25, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1F, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x02, - 0x00, - 0x40, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x05, - 0x02, - 0x00, - 0x30, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x04, - 0x64, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x50, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x52, - 0x52, - 0x52, - 0xF1, - 0x4A, - 0x64, - 0x65, - 0x6E, - 0x72, - 0x65, - 0x72, - 0xC6, - 0xC6, - 0xC6, - 0x4C, - 0x76, - 0x81, - 0x64, - 0x83, - 0x64, - 0x65, - 0x64, - 0x63, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x06, - 0x64, - 0x00, - 0x22, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x05, - 0x64, - 0x00, - 0x29, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x13, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x05, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x0F, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x04, - 0x65, - 0x00, - 0x29, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x00, - 0x06, - 0x64, - 0x00, - 0x05, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x07, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x1D, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x7C, - 0x52, - 0x52, - 0x52, - 0xFF, - 0x71, - 0x63, - 0x64, - 0x6D, - 0xC6, - 0xC6, - 0x72, - 0x6B, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x1C, - 0x66, - 0x64, - 0x65, - 0x62, - 0x84, - 0x52, - 0xFE, - 0x83, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x7D, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x05, - 0x64, - 0x00, - 0x69, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x16, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x04, - 0x64, - 0x00, - 0x1B, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x1F, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x1D, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x8B, - 0x52, - 0x52, - 0x52, - 0x92, - 0x79, - 0x7A, - 0x02, - 0x89, - 0xC6, - 0xC6, - 0xC6, - 0x65, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x06, - 0xF3, - 0x76, - 0x65, - 0x64, - 0x4B, - 0x73, - 0x04, - 0x52, - 0x00, - 0x03, - 0x64, - 0x02, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x2D, - 0x65, - 0x63, - 0x65, - 0x65, - 0x71, - 0x02, - 0x79, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x00, - 0x06, - 0x65, - 0x00, - 0x2C, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x06, - 0x65, - 0x00, - 0x2E, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x06, - 0x65, - 0x00, - 0x22, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x04, - 0x65, - 0x00, - 0x34, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x04, - 0x65, - 0x00, - 0x13, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x92, - 0xFF, - 0x52, - 0x52, - 0x64, - 0x7A, - 0x02, - 0x76, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x5F, - 0x70, - 0x4C, - 0xC6, - 0xC6, - 0xB3, - 0x88, - 0x66, - 0x6E, - 0x6F, - 0x64, - 0x65, - 0x67, - 0x52, - 0x52, - 0x52, - 0x84, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x52, - 0x4A, - 0x92, - 0x74, - 0x52, - 0x52, - 0x71, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x8C, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x16, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x01, - 0x02, - 0x01, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0B, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0xFF, - 0xDC, - 0x52, - 0x79, - 0x7A, - 0x6F, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x1F, - 0x72, - 0xC6, - 0xB3, - 0x76, - 0x67, - 0x88, - 0xC6, - 0xC6, - 0x6B, - 0x64, - 0x64, - 0x52, - 0x52, - 0x52, - 0x84, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x8B, - 0x52, - 0x7C, - 0x64, - 0x79, - 0x02, - 0x7D, - 0x52, - 0x64, - 0x65, - 0x00, - 0x05, - 0x64, - 0x00, - 0x12, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x07, - 0x64, - 0x00, - 0x15, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x01, - 0x65, - 0x06, - 0x64, - 0x00, - 0x05, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x00, - 0x05, - 0x64, - 0x00, - 0x16, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x03, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x07, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x00, - 0x09, - 0x64, - 0x01, - 0x02, - 0x01, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0E, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x26, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x0B, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x10, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x04, - 0x64, - 0x00, - 0x33, - 0x63, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x92, - 0x52, - 0x02, - 0x7A, - 0x7F, - 0xC6, - 0xC6, - 0xC6, - 0xB3, - 0xC6, - 0xB3, - 0x88, - 0xC6, - 0x75, - 0x75, - 0xC6, - 0xC6, - 0xE0, - 0xC6, - 0x6F, - 0x64, - 0x62, - 0x52, - 0x52, - 0x52, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x4A, - 0x52, - 0x7A, - 0x82, - 0x6A, - 0xC6, - 0x4C, - 0x8A, - 0x63, - 0x8B, - 0x00, - 0x05, - 0x65, - 0x00, - 0x03, - 0x64, - 0x65, - 0x64, - 0x00, - 0x09, - 0x65, - 0x01, - 0x64, - 0x04, - 0x65, - 0x01, - 0x64, - 0x06, - 0x65, - 0x00, - 0x08, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x06, - 0x65, - 0x00, - 0x06, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x05, - 0x65, - 0x00, - 0x05, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x14, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x08, - 0x65, - 0x00, - 0x12, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x04, - 0x65, - 0x00, - 0x10, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x15, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x05, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x00, - 0x05, - 0x65, - 0x01, - 0x64, - 0x07, - 0x65, - 0x01, - 0x64, - 0x04, - 0x65, - 0x00, - 0x13, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x09, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x0E, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x7A, - 0x7D, - 0x65, - 0x8B, - 0xFF, - 0x92, - 0x02, - 0x7A, - 0x00, - 0x04, - 0x64, - 0x00, - 0x0F, - 0x02, - 0x64, - 0x64, - 0x79, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x82, - 0x72, - 0x72, - 0x75, - 0x46, - 0xC6, - 0x4C, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x2F, - 0x6B, - 0x64, - 0x49, - 0x52, - 0x52, - 0x52, - 0x63, - 0x64, - 0x65, - 0x02, - 0x65, - 0x63, - 0x52, - 0x71, - 0x79, - 0xC6, - 0x89, - 0x76, - 0x88, - 0x6D, - 0x62, - 0xFF, - 0x74, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x25, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x0E, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x07, - 0x64, - 0x00, - 0x29, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x04, - 0x65, - 0x64, - 0x65, - 0x65, - 0x06, - 0x64, - 0x01, - 0x02, - 0x05, - 0x64, - 0x00, - 0x0E, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x3C, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x7A, - 0x02, - 0xF1, - 0x92, - 0x92, - 0x92, - 0x74, - 0x2E, - 0x52, - 0x63, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x63, - 0x64, - 0x4B, - 0x7C, - 0x9C, - 0x72, - 0x76, - 0x89, - 0x4C, - 0x46, - 0xB3, - 0xC6, - 0x4C, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x1E, - 0x6B, - 0x65, - 0x83, - 0x52, - 0x52, - 0x52, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x67, - 0x72, - 0x88, - 0xC6, - 0x46, - 0xC6, - 0x6D, - 0x71, - 0x92, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x04, - 0x65, - 0x00, - 0x19, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x00, - 0x06, - 0x65, - 0x00, - 0x29, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x08, - 0x65, - 0x00, - 0x4E, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x07, - 0x65, - 0x01, - 0x02, - 0x04, - 0x65, - 0x00, - 0x13, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x1C, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x03, - 0x65, - 0x65, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x13, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x14, - 0x7A, - 0x52, - 0x71, - 0x64, - 0x64, - 0x72, - 0x77, - 0x65, - 0x92, - 0x63, - 0x64, - 0x64, - 0x65, - 0x64, - 0x8B, - 0x31, - 0xEE, - 0x4B, - 0x64, - 0x70, - 0x05, - 0xC6, - 0x00, - 0x05, - 0xB3, - 0x4C, - 0xB3, - 0x88, - 0x82, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x19, - 0x6E, - 0x64, - 0x67, - 0x52, - 0x52, - 0x52, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x4A, - 0x92, - 0x6D, - 0xB3, - 0xC6, - 0x89, - 0x75, - 0x89, - 0x6D, - 0x71, - 0x71, - 0x64, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x20, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x0A, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x04, - 0x65, - 0x00, - 0x1F, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x55, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x05, - 0x65, - 0x00, - 0x09, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x18, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x04, - 0x65, - 0x00, - 0x0B, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x32, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x74, - 0xFF, - 0x7D, - 0x89, - 0x70, - 0xC6, - 0xC6, - 0x7E, - 0x67, - 0x52, - 0x83, - 0x64, - 0x02, - 0x6C, - 0x52, - 0x52, - 0x52, - 0x63, - 0x64, - 0x81, - 0x05, - 0xC6, - 0x00, - 0x87, - 0x4C, - 0x75, - 0xC6, - 0xC6, - 0x89, - 0x02, - 0x72, - 0xC6, - 0xC6, - 0x64, - 0x64, - 0x63, - 0x52, - 0x52, - 0xFF, - 0x84, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x71, - 0x52, - 0x7A, - 0x89, - 0x72, - 0x89, - 0xE0, - 0x7D, - 0x64, - 0xFF, - 0x92, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x3D, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x07, - 0x64, - 0x00, - 0x3A, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x33, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x71, - 0x92, - 0x70, - 0xC6, - 0xC6, - 0xC6, - 0x72, - 0x88, - 0x62, - 0x52, - 0x92, - 0x64, - 0x65, - 0x84, - 0x52, - 0x52, - 0x52, - 0x62, - 0x64, - 0x65, - 0x70, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x3E, - 0x6F, - 0x46, - 0xE0, - 0xC6, - 0xC6, - 0x89, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x52, - 0x52, - 0x52, - 0x84, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x52, - 0x71, - 0x63, - 0x65, - 0x75, - 0x70, - 0x77, - 0x84, - 0x62, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x04, - 0x65, - 0x00, - 0x6D, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x15, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x05, - 0x64, - 0x00, - 0x3C, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x63, - 0x64, - 0x65, - 0x72, - 0xC6, - 0xB3, - 0xC6, - 0xC6, - 0x67, - 0x52, - 0x84, - 0x7A, - 0x7A, - 0x6C, - 0x04, - 0x52, - 0x00, - 0x08, - 0x67, - 0x65, - 0x65, - 0x76, - 0xC6, - 0xC6, - 0xB3, - 0x02, - 0x05, - 0xC6, - 0x00, - 0x3A, - 0x88, - 0x02, - 0x7A, - 0x4B, - 0x73, - 0xFE, - 0x52, - 0x52, - 0x52, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x52, - 0x71, - 0x6C, - 0x4B, - 0x84, - 0xFF, - 0x52, - 0x02, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x05, - 0x7A, - 0x00, - 0x03, - 0x02, - 0x02, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x08, - 0x64, - 0x64, - 0x65, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x03, - 0x02, - 0x7A, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x09, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x00, - 0x0A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x0E, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x1C, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x0D, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x00, - 0x0F, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x05, - 0x02, - 0x00, - 0x17, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x00, - 0x04, - 0x02, - 0x00, - 0x15, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x00, - 0x06, - 0x02, - 0x00, - 0x00, - 0x00, - 0x06, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x62, - 0x12, - 0x02, - 0x00, - 0x14, - 0x49, - 0x49, - 0x49, - 0x83, - 0x83, - 0x83, - 0x52, - 0x92, - 0x70, - 0x00, - 0x46, - 0xC6, - 0xC6, - 0xF6, - 0x6A, - 0x52, - 0x73, - 0x02, - 0x02, - 0x02, - 0x05, - 0x52, - 0x00, - 0x15, - 0x64, - 0x64, - 0x6A, - 0xC6, - 0xC6, - 0x82, - 0x8A, - 0xC6, - 0xC6, - 0xC6, - 0xB3, - 0xC6, - 0xC6, - 0x02, - 0x7A, - 0x49, - 0x6C, - 0x84, - 0xFE, - 0x52, - 0x83, - 0x00, - 0x08, - 0x02, - 0x00, - 0x09, - 0x7D, - 0x49, - 0x73, - 0x52, - 0x52, - 0x52, - 0x6C, - 0x02, - 0x02, - 0x00, - 0x04, - 0x49, - 0x00, - 0x03, - 0x65, - 0x62, - 0x64, - 0x00, - 0x04, - 0x65, - 0x01, - 0x64, - 0x04, - 0x65, - 0x00, - 0x15, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7D, - 0x02, - 0x02, - 0x02, - 0x7D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x07, - 0x7D, - 0x02, - 0x79, - 0x65, - 0x65, - 0x65, - 0x7A, - 0x00, - 0x09, - 0x02, - 0x00, - 0x0E, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x02, - 0x7D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x7D, - 0x02, - 0x02, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x7D, - 0x72, - 0x02, - 0x00, - 0x05, - 0x7D, - 0x7B, - 0x65, - 0x64, - 0x83, - 0x00, - 0x1F, - 0x49, - 0x00, - 0x00, - 0x00, - 0x05, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x00, - 0x1B, - 0x52, - 0x00, - 0x06, - 0x02, - 0x75, - 0x56, - 0xC6, - 0xB3, - 0x85, - 0x0B, - 0x52, - 0x00, - 0x0F, - 0x84, - 0x65, - 0x64, - 0x6A, - 0x6F, - 0x71, - 0x6B, - 0xC6, - 0xC6, - 0xC6, - 0x76, - 0x72, - 0x8A, - 0x7A, - 0x6C, - 0x00, - 0x1C, - 0x52, - 0x00, - 0x19, - 0xFF, - 0x84, - 0x67, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x7A, - 0x02, - 0x00, - 0x0D, - 0x52, - 0x00, - 0x08, - 0xF1, - 0x92, - 0x02, - 0x64, - 0x7A, - 0x02, - 0x52, - 0xFF, - 0x92, - 0x52, - 0x00, - 0x03, - 0x71, - 0x7A, - 0x67, - 0x00, - 0x21, - 0x52, - 0x00, - 0x00, - 0x00, - 0x04, - 0x64, - 0x02, - 0x02, - 0x83, - 0x1D, - 0x52, - 0x00, - 0x05, - 0x02, - 0x52, - 0x77, - 0x65, - 0x7E, - 0x00, - 0x0C, - 0x52, - 0x00, - 0x0E, - 0x64, - 0x65, - 0x64, - 0x73, - 0x52, - 0x6C, - 0x72, - 0x72, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x4B, - 0x1E, - 0x52, - 0x00, - 0x1A, - 0xFE, - 0x73, - 0x4B, - 0x63, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x71, - 0x0D, - 0x52, - 0x00, - 0x07, - 0x71, - 0x7A, - 0x7C, - 0x7A, - 0x8B, - 0xFF, - 0xFF, - 0x00, - 0x8E, - 0x52, - 0x00, - 0x04, - 0xFF, - 0x71, - 0x64, - 0x62, - 0x22, - 0x52, - 0x00, - 0x00, - 0x00, - 0x04, - 0x02, - 0x64, - 0x84, - 0xFE, - 0x1F, - 0x52, - 0x01, - 0x73, - 0x0E, - 0x52, - 0x00, - 0x0D, - 0x87, - 0x4B, - 0x84, - 0x52, - 0x52, - 0x02, - 0x7A, - 0x64, - 0x02, - 0x64, - 0x62, - 0x67, - 0x64, - 0x00, - 0x23, - 0x52, - 0x00, - 0x1A, - 0x83, - 0x62, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x71, - 0x52, - 0xFF, - 0x0B, - 0x52, - 0x00, - 0x06, - 0x71, - 0x65, - 0x65, - 0x64, - 0x92, - 0xF1, - 0x8D, - 0x52, - 0x00, - 0x03, - 0x92, - 0x64, - 0x67, - 0x00, - 0x23, - 0x52, - 0x00, - 0x00, - 0x01, - 0x64, - 0x01, - 0x87, - 0x35, - 0x52, - 0x00, - 0x06, - 0x6C, - 0x7A, - 0x64, - 0x67, - 0x73, - 0xFE, - 0x04, - 0x52, - 0x01, - 0xFF, - 0x01, - 0x7D, - 0x21, - 0x52, - 0x00, - 0x1A, - 0x73, - 0x67, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x92, - 0xF1, - 0xFE, - 0x0B, - 0x52, - 0x00, - 0x05, - 0x71, - 0x65, - 0x64, - 0x65, - 0x71, - 0x00, - 0x8B, - 0x52, - 0x00, - 0x03, - 0x92, - 0x64, - 0x64, - 0x00, - 0x24, - 0x52, - 0x00, - 0x00, - 0x38, - 0x52, - 0x01, - 0x73, - 0x01, - 0x73, - 0x06, - 0x52, - 0x01, - 0xFF, - 0x01, - 0x92, - 0x25, - 0x52, - 0x00, - 0x19, - 0x6C, - 0x63, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x8B, - 0x52, - 0xFF, - 0x00, - 0x0C, - 0x52, - 0x00, - 0x04, - 0x4A, - 0x64, - 0x65, - 0x74, - 0x88, - 0x52, - 0x00, - 0x03, - 0x4A, - 0x64, - 0x64, - 0x00, - 0x25, - 0x52, - 0x00, - 0x00, - 0x22, - 0x52, - 0x00, - 0x07, - 0x2E, - 0x52, - 0x52, - 0x52, - 0x62, - 0x64, - 0x71, - 0x00, - 0x17, - 0x52, - 0x01, - 0x71, - 0x01, - 0x92, - 0x27, - 0x52, - 0x00, - 0x11, - 0x84, - 0x62, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x00, - 0x04, - 0x65, - 0x01, - 0x64, - 0x01, - 0x8B, - 0x0E, - 0x52, - 0x00, - 0x04, - 0x4A, - 0x63, - 0x65, - 0x74, - 0x85, - 0x52, - 0x00, - 0x03, - 0x7D, - 0x64, - 0x63, - 0x00, - 0x26, - 0x52, - 0x00, - 0x00, - 0x22, - 0x52, - 0x00, - 0x09, - 0x8B, - 0x79, - 0x74, - 0x74, - 0x65, - 0x66, - 0x65, - 0x63, - 0x64, - 0x00, - 0x15, - 0x52, - 0x00, - 0x06, - 0x71, - 0x92, - 0xF1, - 0xF1, - 0xF1, - 0xFF, - 0x25, - 0x52, - 0x00, - 0x17, - 0x73, - 0x63, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x63, - 0x4A, - 0x00, - 0x0E, - 0x52, - 0x00, - 0x03, - 0x4A, - 0x79, - 0x02, - 0x00, - 0x83, - 0x52, - 0x00, - 0x03, - 0x02, - 0x7A, - 0x64, - 0x00, - 0x27, - 0x52, - 0x00, - 0x00, - 0x22, - 0x52, - 0x00, - 0x0A, - 0x79, - 0x02, - 0x72, - 0x52, - 0xC6, - 0xC6, - 0x75, - 0x6F, - 0x63, - 0x2D, - 0x16, - 0x52, - 0x00, - 0x05, - 0xFE, - 0x73, - 0x8B, - 0x84, - 0xFF, - 0x00, - 0x26, - 0x52, - 0x00, - 0x04, - 0x87, - 0x4B, - 0x63, - 0x65, - 0x04, - 0x64, - 0x00, - 0x12, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x79, - 0x02, - 0x74, - 0xFF, - 0xF1, - 0x0B, - 0x52, - 0x00, - 0x03, - 0x7D, - 0x79, - 0x02, - 0x00, - 0x80, - 0x52, - 0x00, - 0x03, - 0x7B, - 0x7A, - 0x79, - 0x00, - 0x28, - 0x52, - 0x00, - 0x00, - 0x20, - 0x52, - 0x00, - 0x0B, - 0xFF, - 0x02, - 0x7C, - 0x75, - 0xC6, - 0x5C, - 0xF4, - 0xC6, - 0xC6, - 0x4C, - 0x8D, - 0x00, - 0x12, - 0x52, - 0x00, - 0x0F, - 0x2E, - 0x52, - 0x52, - 0x52, - 0xFE, - 0x84, - 0x64, - 0x65, - 0x65, - 0x64, - 0x52, - 0x52, - 0xFE, - 0xFE, - 0xFF, - 0x00, - 0x23, - 0x52, - 0x00, - 0x0C, - 0x31, - 0x8B, - 0x67, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x06, - 0x65, - 0x00, - 0x06, - 0x64, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x71, - 0x0D, - 0x52, - 0x00, - 0x03, - 0x7D, - 0x79, - 0x4A, - 0x00, - 0x7D, - 0x52, - 0x00, - 0x03, - 0x65, - 0x65, - 0x67, - 0x00, - 0x29, - 0x52, - 0x00, - 0x00, - 0x1F, - 0x52, - 0x00, - 0x0E, - 0xFF, - 0x6C, - 0x7A, - 0x6F, - 0xC6, - 0xC6, - 0xF5, - 0x56, - 0xC6, - 0xC6, - 0xFF, - 0x56, - 0x65, - 0x62, - 0x10, - 0x52, - 0x00, - 0x0F, - 0x73, - 0x73, - 0x52, - 0x52, - 0xFF, - 0x6C, - 0x7A, - 0x7A, - 0x02, - 0x64, - 0x64, - 0x67, - 0x4B, - 0x4B, - 0x84, - 0x00, - 0x25, - 0x52, - 0x00, - 0x18, - 0x2E, - 0x73, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x71, - 0x0D, - 0x52, - 0x00, - 0x05, - 0x92, - 0x62, - 0x4A, - 0x52, - 0xFF, - 0x00, - 0x78, - 0x52, - 0x00, - 0x03, - 0x64, - 0x65, - 0x67, - 0x00, - 0x2A, - 0x52, - 0x00, - 0x00, - 0x20, - 0x52, - 0x00, - 0x0D, - 0x71, - 0x02, - 0x88, - 0xC6, - 0xC6, - 0xB3, - 0xF7, - 0x55, - 0x58, - 0xC6, - 0xC6, - 0x70, - 0x64, - 0x00, - 0x0F, - 0x52, - 0x00, - 0x12, - 0x67, - 0x65, - 0x64, - 0x73, - 0x52, - 0x52, - 0x9D, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x83, - 0xFF, - 0x26, - 0x52, - 0x00, - 0x07, - 0x73, - 0x4B, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x00, - 0x06, - 0x65, - 0x00, - 0x0C, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x71, - 0x52, - 0xFF, - 0x0B, - 0x52, - 0x00, - 0x06, - 0x92, - 0x63, - 0x92, - 0xFF, - 0xFF, - 0xFF, - 0x72, - 0x52, - 0x00, - 0x05, - 0xF1, - 0x74, - 0x63, - 0x65, - 0x64, - 0x00, - 0x2B, - 0x52, - 0x00, - 0x00, - 0x23, - 0x52, - 0x00, - 0x0A, - 0x0B, - 0x58, - 0x55, - 0x5B, - 0xB8, - 0xC6, - 0xC6, - 0xC6, - 0x72, - 0x68, - 0x0E, - 0x52, - 0x00, - 0x13, - 0x64, - 0x65, - 0x65, - 0x64, - 0x63, - 0xF1, - 0x52, - 0x92, - 0x75, - 0xC6, - 0x76, - 0x67, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x62, - 0xFF, - 0x00, - 0x29, - 0x52, - 0x00, - 0x06, - 0x8B, - 0x62, - 0x65, - 0x65, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x0D, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x92, - 0xF1, - 0x00, - 0x0C, - 0x52, - 0x00, - 0x06, - 0x92, - 0x63, - 0x92, - 0xFF, - 0xFF, - 0xFF, - 0x70, - 0x52, - 0x00, - 0x04, - 0x92, - 0x63, - 0x65, - 0x64, - 0x2C, - 0x52, - 0x00, - 0x00, - 0x20, - 0x52, - 0x00, - 0x0D, - 0x2E, - 0x02, - 0x89, - 0xC6, - 0xC6, - 0xC6, - 0x57, - 0xF6, - 0xB8, - 0xC6, - 0xE0, - 0x70, - 0x63, - 0x00, - 0x0D, - 0x52, - 0x00, - 0x09, - 0xFF, - 0x64, - 0x64, - 0x64, - 0x66, - 0x70, - 0x84, - 0xFE, - 0x96, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x08, - 0x76, - 0x72, - 0x72, - 0x65, - 0x65, - 0x64, - 0x92, - 0x7D, - 0x29, - 0x52, - 0x00, - 0x03, - 0xFF, - 0x84, - 0x67, - 0x00, - 0x04, - 0x64, - 0x00, - 0x10, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x92, - 0x0C, - 0x52, - 0x00, - 0x06, - 0xF1, - 0x92, - 0x63, - 0x92, - 0xFF, - 0xFF, - 0x6E, - 0x52, - 0x00, - 0x04, - 0x4A, - 0x64, - 0x64, - 0x4B, - 0x2D, - 0x52, - 0x00, - 0x00, - 0x20, - 0x52, - 0x00, - 0x0D, - 0x83, - 0x02, - 0x72, - 0xC6, - 0xC6, - 0xC6, - 0x58, - 0xC6, - 0xF6, - 0xFF, - 0xF6, - 0x63, - 0x64, - 0x00, - 0x0D, - 0x52, - 0x00, - 0x09, - 0x8B, - 0x65, - 0x65, - 0x65, - 0x46, - 0xC6, - 0x46, - 0x2E, - 0x52, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x08, - 0xE0, - 0xC6, - 0x72, - 0x63, - 0x83, - 0x64, - 0x7A, - 0x7B, - 0x2A, - 0x52, - 0x00, - 0x17, - 0xFE, - 0x73, - 0x64, - 0x63, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x4A, - 0x00, - 0x0C, - 0x52, - 0x00, - 0x06, - 0xF1, - 0x92, - 0x62, - 0x92, - 0x52, - 0xFF, - 0x6B, - 0x52, - 0x00, - 0x04, - 0x65, - 0x65, - 0x64, - 0x83, - 0x2E, - 0x52, - 0x00, - 0x00, - 0x21, - 0x52, - 0x00, - 0x0C, - 0x67, - 0x65, - 0x4C, - 0xC6, - 0x57, - 0xF6, - 0xC6, - 0xB3, - 0xF4, - 0x52, - 0x52, - 0x71, - 0x0C, - 0x52, - 0x00, - 0x0A, - 0x83, - 0x64, - 0x64, - 0x64, - 0x72, - 0xB3, - 0xC6, - 0xC6, - 0x56, - 0xFF, - 0x07, - 0xC6, - 0x00, - 0x06, - 0x76, - 0x73, - 0x63, - 0x7A, - 0x7B, - 0x71, - 0x2E, - 0x52, - 0x00, - 0x15, - 0x83, - 0x62, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x63, - 0x4A, - 0x00, - 0x0D, - 0x52, - 0x00, - 0x05, - 0x71, - 0x63, - 0x8B, - 0xFF, - 0xFF, - 0x00, - 0x66, - 0x52, - 0x00, - 0x06, - 0xF1, - 0x52, - 0x64, - 0x65, - 0x63, - 0x73, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x22, - 0x52, - 0x00, - 0x09, - 0x62, - 0x6B, - 0x76, - 0x31, - 0xC6, - 0xC6, - 0xE0, - 0x75, - 0x66, - 0x00, - 0x0C, - 0x52, - 0x00, - 0x07, - 0xFF, - 0x67, - 0x65, - 0x64, - 0x64, - 0x65, - 0x4C, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x03, - 0x2E, - 0x89, - 0xE0, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x06, - 0x5C, - 0xFE, - 0x71, - 0x6C, - 0x02, - 0x7A, - 0x05, - 0x52, - 0x01, - 0xFF, - 0x2A, - 0x52, - 0x00, - 0x16, - 0x84, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x79, - 0x02, - 0x74, - 0x0C, - 0x52, - 0x00, - 0x04, - 0x71, - 0x64, - 0x8B, - 0xFF, - 0x65, - 0x52, - 0x00, - 0x06, - 0x92, - 0x63, - 0x65, - 0x64, - 0x85, - 0xFE, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x1F, - 0x63, - 0x00, - 0x1E, - 0x62, - 0x52, - 0x2D, - 0x8B, - 0x62, - 0x65, - 0x8B, - 0x6E, - 0x4B, - 0x66, - 0x7B, - 0x62, - 0x52, - 0x6A, - 0x63, - 0x63, - 0x64, - 0x64, - 0x63, - 0x62, - 0x73, - 0x52, - 0x52, - 0xFE, - 0x73, - 0x64, - 0x7A, - 0x7A, - 0x7A, - 0x4C, - 0x04, - 0xC6, - 0x00, - 0x03, - 0xB3, - 0x72, - 0x75, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x0D, - 0x6A, - 0x02, - 0x6E, - 0x6B, - 0x7A, - 0x7A, - 0x7A, - 0x67, - 0xFE, - 0x52, - 0x52, - 0xFF, - 0x84, - 0x00, - 0x09, - 0x63, - 0x00, - 0x08, - 0x64, - 0x64, - 0x63, - 0x63, - 0x64, - 0x63, - 0x63, - 0x64, - 0x04, - 0x63, - 0x01, - 0x64, - 0x04, - 0x79, - 0x00, - 0x0A, - 0x7A, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x7A, - 0x79, - 0x79, - 0x63, - 0x63, - 0x0A, - 0x7A, - 0x00, - 0x07, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x00, - 0x0A, - 0x7A, - 0x00, - 0x1A, - 0x79, - 0x79, - 0x63, - 0x7A, - 0x7A, - 0x79, - 0x7A, - 0x7A, - 0x79, - 0x63, - 0x63, - 0x79, - 0x79, - 0x7A, - 0x7A, - 0x7A, - 0x79, - 0x79, - 0x64, - 0x63, - 0x63, - 0x64, - 0x79, - 0x79, - 0x7A, - 0x7A, - 0x04, - 0x79, - 0x00, - 0x0A, - 0x64, - 0x7A, - 0x79, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x79, - 0x63, - 0x63, - 0x04, - 0x79, - 0x00, - 0x07, - 0x7A, - 0x79, - 0x63, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x00, - 0x04, - 0x79, - 0x01, - 0x7A, - 0x04, - 0x63, - 0x00, - 0x03, - 0x79, - 0x79, - 0x7A, - 0x00, - 0x04, - 0x79, - 0x00, - 0x0C, - 0x63, - 0x79, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x79, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x05, - 0x7A, - 0x01, - 0x79, - 0x04, - 0x63, - 0x00, - 0x0B, - 0x79, - 0x79, - 0x79, - 0x7A, - 0x79, - 0x63, - 0x63, - 0x63, - 0x79, - 0x79, - 0x7A, - 0x00, - 0x05, - 0x79, - 0x00, - 0x0B, - 0x63, - 0x64, - 0x79, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x64, - 0x63, - 0x79, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x0D, - 0x65, - 0x7A, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x79, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x00, - 0x0D, - 0x79, - 0x01, - 0x63, - 0x05, - 0x79, - 0x01, - 0x63, - 0x05, - 0x79, - 0x0A, - 0x63, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x13, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x04, - 0x65, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x1D, - 0x65, - 0x84, - 0x52, - 0x52, - 0x52, - 0x64, - 0x92, - 0x62, - 0x63, - 0x8B, - 0x71, - 0x52, - 0x2E, - 0x73, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x8B, - 0x2D, - 0x52, - 0xF1, - 0x92, - 0x65, - 0x7A, - 0x02, - 0x88, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x2B, - 0xE0, - 0x70, - 0xC6, - 0xC6, - 0xC6, - 0x46, - 0x67, - 0x6A, - 0x88, - 0xC6, - 0xC6, - 0x70, - 0x64, - 0x64, - 0x64, - 0x73, - 0x52, - 0x52, - 0x52, - 0x84, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x68, - 0x68, - 0x7A, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x68, - 0x02, - 0x68, - 0x65, - 0x68, - 0x68, - 0x09, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x68, - 0x00, - 0x06, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x65, - 0x68, - 0x68, - 0x68, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x07, - 0x02, - 0x01, - 0x65, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x02, - 0x7A, - 0x06, - 0x02, - 0x00, - 0x04, - 0x68, - 0x68, - 0x65, - 0x7A, - 0x0B, - 0x02, - 0x01, - 0x68, - 0x05, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x68, - 0x64, - 0x04, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x68, - 0x68, - 0x68, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x68, - 0x68, - 0x68, - 0x02, - 0x68, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x7A, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x68, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x05, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x52, - 0x52, - 0x84, - 0x64, - 0x73, - 0x74, - 0x52, - 0x52, - 0x31, - 0x31, - 0x52, - 0x4B, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x73, - 0x52, - 0x52, - 0x52, - 0x62, - 0x7A, - 0x02, - 0x00, - 0x08, - 0xC6, - 0x00, - 0x06, - 0x72, - 0xB3, - 0xC6, - 0x4C, - 0x64, - 0x75, - 0x04, - 0xC6, - 0x00, - 0x04, - 0x76, - 0x65, - 0x7D, - 0x64, - 0x04, - 0x52, - 0x00, - 0x18, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x7A, - 0x0C, - 0x02, - 0x01, - 0x68, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x68, - 0x7A, - 0x0F, - 0x02, - 0x01, - 0x68, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x65, - 0x68, - 0x00, - 0x07, - 0x02, - 0x01, - 0x7A, - 0x0A, - 0x02, - 0x01, - 0x7A, - 0x13, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x1C, - 0x02, - 0x01, - 0x7A, - 0x05, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x68, - 0x0C, - 0x02, - 0x01, - 0x68, - 0x15, - 0x02, - 0x01, - 0x68, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x07, - 0x02, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x0E, - 0x02, - 0x02, - 0x73, - 0x52, - 0x2E, - 0x52, - 0x84, - 0x9D, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x3B, - 0x67, - 0x65, - 0x84, - 0x84, - 0x4B, - 0x64, - 0x6E, - 0x4C, - 0xC6, - 0xC6, - 0xC6, - 0x46, - 0xF3, - 0xB3, - 0x88, - 0x4C, - 0x88, - 0x70, - 0xC6, - 0xC6, - 0xE0, - 0xC6, - 0xC6, - 0xC6, - 0x75, - 0x65, - 0x02, - 0x67, - 0xF1, - 0x52, - 0x52, - 0xFF, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x00, - 0x08, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x7A, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x10, - 0x02, - 0x01, - 0x68, - 0x07, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x05, - 0x02, - 0x04, - 0x68, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x68, - 0x68, - 0x68, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x7A, - 0x07, - 0x02, - 0x01, - 0x68, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x68, - 0x68, - 0x09, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x0E, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x04, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x06, - 0x02, - 0x01, - 0x68, - 0x13, - 0x02, - 0x01, - 0x68, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x65, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x08, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x07, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x2B, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x84, - 0x84, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x7D, - 0x65, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x72, - 0x75, - 0x4C, - 0x88, - 0x4C, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x0E, - 0xB3, - 0x72, - 0x02, - 0x7D, - 0x83, - 0x52, - 0x52, - 0xFF, - 0x84, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x05, - 0x64, - 0x00, - 0x08, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x01, - 0x65, - 0x01, - 0x7A, - 0x0B, - 0x02, - 0x01, - 0x68, - 0x1E, - 0x02, - 0x01, - 0x68, - 0x07, - 0x02, - 0x01, - 0x68, - 0x87, - 0x02, - 0x01, - 0x68, - 0x0A, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x00, - 0x17, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x1C, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x04, - 0x64, - 0x00, - 0x0B, - 0x6A, - 0x6E, - 0x72, - 0x72, - 0x76, - 0x4C, - 0xC6, - 0xC6, - 0x46, - 0x88, - 0x75, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x21, - 0xB3, - 0x72, - 0x64, - 0x02, - 0x83, - 0x52, - 0x52, - 0x2E, - 0x73, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0xC5, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x04, - 0x65, - 0x00, - 0x1C, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x83, - 0x73, - 0xFF, - 0x85, - 0x7F, - 0x7D, - 0x76, - 0x07, - 0xC6, - 0x00, - 0x05, - 0x75, - 0xC6, - 0xC6, - 0x6E, - 0x76, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x21, - 0x00, - 0x76, - 0x66, - 0x02, - 0x62, - 0xFE, - 0x52, - 0x52, - 0x52, - 0x62, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x7A, - 0x12, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x7B, - 0x02, - 0x01, - 0x7A, - 0x0C, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x18, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x01, - 0x02, - 0x01, - 0x65, - 0x04, - 0x64, - 0x00, - 0x15, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x52, - 0x52, - 0x52, - 0x73, - 0x64, - 0x64, - 0x66, - 0x4C, - 0x00, - 0x07, - 0xC6, - 0x00, - 0x13, - 0x6E, - 0xC6, - 0xC6, - 0xC6, - 0x70, - 0x6A, - 0x88, - 0xC6, - 0xB3, - 0xB3, - 0x75, - 0x65, - 0x65, - 0x64, - 0x71, - 0xFE, - 0x52, - 0x52, - 0x83, - 0x00, - 0x06, - 0x64, - 0x00, - 0x0F, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x00, - 0x07, - 0x7A, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x7A, - 0x7A, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x07, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x6C, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x7A, - 0x7A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x0E, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x16, - 0x02, - 0x68, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x64, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x1D, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x00, - 0x05, - 0x65, - 0x00, - 0x0B, - 0x64, - 0x64, - 0x73, - 0x52, - 0x52, - 0xF1, - 0x92, - 0x65, - 0x64, - 0x65, - 0x75, - 0x00, - 0x06, - 0xC6, - 0x01, - 0x88, - 0x01, - 0x72, - 0x04, - 0xC6, - 0x00, - 0x16, - 0x72, - 0x66, - 0x82, - 0x88, - 0x4C, - 0x6B, - 0x64, - 0x64, - 0x63, - 0x52, - 0x52, - 0x52, - 0xFE, - 0x84, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x09, - 0x65, - 0x00, - 0x05, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x65, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x0E, - 0x65, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x64, - 0x65, - 0x65, - 0x65, - 0x0B, - 0x7A, - 0x00, - 0x03, - 0x02, - 0x02, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x0F, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x7A, - 0x00, - 0x6C, - 0x02, - 0x06, - 0x7A, - 0x07, - 0x02, - 0x0B, - 0x7A, - 0x00, - 0x14, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x07, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x06, - 0x64, - 0x00, - 0x12, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x73, - 0x04, - 0x52, - 0x00, - 0x06, - 0x63, - 0x64, - 0x65, - 0x65, - 0x72, - 0xB3, - 0x04, - 0xC6, - 0x01, - 0x6F, - 0x01, - 0x75, - 0x05, - 0xC6, - 0x00, - 0x1E, - 0x72, - 0x7B, - 0x02, - 0x7B, - 0x64, - 0x64, - 0x64, - 0x83, - 0x52, - 0x52, - 0x52, - 0xFE, - 0x83, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x04, - 0x7A, - 0x00, - 0x08, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x07, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x05, - 0x7A, - 0x08, - 0x02, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x77, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x7A, - 0x68, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x64, - 0x7A, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x00, - 0x00, - 0x00, - 0x43, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x84, - 0xFF, - 0x52, - 0x52, - 0x52, - 0x84, - 0x63, - 0x65, - 0x65, - 0x65, - 0x76, - 0xB3, - 0xC6, - 0xC6, - 0x4C, - 0x66, - 0x00, - 0x07, - 0xC6, - 0x00, - 0x07, - 0x82, - 0x7A, - 0x7A, - 0x64, - 0x84, - 0x73, - 0xF1, - 0x00, - 0x04, - 0x52, - 0x00, - 0x09, - 0x67, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x0B, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x0D, - 0x02, - 0x06, - 0x7A, - 0x0C, - 0x02, - 0x01, - 0x7A, - 0x7E, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x7A, - 0x7A, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x00, - 0x00, - 0x00, - 0x03, - 0x65, - 0x65, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x13, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x15, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x00, - 0x06, - 0x52, - 0x00, - 0x09, - 0x64, - 0x02, - 0x64, - 0x6F, - 0xC6, - 0xC6, - 0xC6, - 0x6F, - 0x64, - 0x00, - 0x07, - 0xC6, - 0x00, - 0x0F, - 0x88, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x73, - 0xFE, - 0x52, - 0x52, - 0x6C, - 0x65, - 0x64, - 0x64, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x10, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x10, - 0x02, - 0x01, - 0x7A, - 0xA1, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x65, - 0x07, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x00, - 0x44, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x6C, - 0x52, - 0xFE, - 0x52, - 0x52, - 0xFE, - 0x73, - 0x64, - 0x64, - 0x65, - 0x72, - 0x00, - 0x75, - 0x65, - 0x82, - 0xB3, - 0x06, - 0xC6, - 0x00, - 0x23, - 0x6B, - 0x64, - 0x9D, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x4B, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x10, - 0x02, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x01, - 0x7A, - 0x10, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x75, - 0x02, - 0x01, - 0x7A, - 0x0F, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x04, - 0x7A, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x08, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x46, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x67, - 0x73, - 0xFE, - 0x52, - 0x52, - 0x52, - 0x62, - 0x64, - 0x64, - 0x65, - 0x66, - 0x65, - 0x65, - 0x70, - 0xC6, - 0xB3, - 0xC6, - 0x76, - 0x6D, - 0x6B, - 0x65, - 0x64, - 0x64, - 0x64, - 0x52, - 0x63, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x10, - 0x02, - 0x01, - 0x68, - 0x09, - 0x02, - 0x01, - 0x65, - 0x0F, - 0x02, - 0x01, - 0x68, - 0x72, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x05, - 0x02, - 0x01, - 0x68, - 0x16, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x0B, - 0x02, - 0x02, - 0x68, - 0x00, - 0x00, - 0x00, - 0x68, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x73, - 0xFE, - 0x52, - 0x52, - 0x83, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x4B, - 0x6A, - 0x75, - 0x82, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x67, - 0x52, - 0x52, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x7A, - 0x05, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x0E, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x7A, - 0x7A, - 0x87, - 0x02, - 0x01, - 0x68, - 0x16, - 0x02, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x09, - 0x65, - 0x00, - 0x14, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x65, - 0x65, - 0x7B, - 0x02, - 0x02, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x07, - 0x65, - 0x00, - 0x03, - 0x7B, - 0x02, - 0x7B, - 0x00, - 0x04, - 0x65, - 0x00, - 0x0D, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x02, - 0x00, - 0x04, - 0x52, - 0x00, - 0x23, - 0x83, - 0x6A, - 0x6A, - 0x92, - 0x65, - 0x7B, - 0x7E, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x62, - 0x52, - 0x52, - 0x52, - 0x84, - 0x02, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7A, - 0x00, - 0x08, - 0x65, - 0x01, - 0x7B, - 0x05, - 0x02, - 0x01, - 0x7B, - 0x01, - 0x7B, - 0x06, - 0x02, - 0x01, - 0x7B, - 0x0E, - 0x02, - 0x01, - 0x7B, - 0x04, - 0x65, - 0x01, - 0x7B, - 0x9E, - 0x02, - 0x01, - 0x7B, - 0x09, - 0x02, - 0x01, - 0x7B, - 0x0D, - 0x02, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x01, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAE, - 0x01, - 0x00, - 0x00, - 0x0E, - 0xD3, - 0x2A, - 0xD5, - 0x06, - 0x52, - 0x00, - 0x0D, - 0xFF, - 0x04, - 0xD8, - 0xDC, - 0x02, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x64, - 0x73, - 0x71, - 0x71, - 0x00, - 0x05, - 0x52, - 0x01, - 0xD9, - 0x04, - 0xD5, - 0x55, - 0x04, - 0x00, - 0x16, - 0xDA, - 0x02, - 0x02, - 0x02, - 0x7C, - 0x66, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x81, - 0xAA, - 0x2B, - 0x04, - 0x00, - 0x0B, - 0x8D, - 0x6A, - 0x64, - 0x64, - 0x7B, - 0x02, - 0x02, - 0x74, - 0x3D, - 0xD5, - 0xD5, - 0x00, - 0x4A, - 0xD9, - 0x00, - 0x00, - 0x38, - 0x04, - 0x06, - 0x52, - 0x00, - 0x09, - 0xD2, - 0x04, - 0x04, - 0xDC, - 0x52, - 0x02, - 0x64, - 0x64, - 0x84, - 0x00, - 0x09, - 0x52, - 0x5F, - 0x04, - 0x00, - 0x19, - 0xD8, - 0x8E, - 0x8B, - 0x65, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x69, - 0x69, - 0x92, - 0x8D, - 0x2C, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x1F, - 0x04, - 0x00, - 0x0A, - 0xD9, - 0x8D, - 0x7C, - 0x02, - 0x7C, - 0x64, - 0x65, - 0x64, - 0x73, - 0xD3, - 0x4F, - 0x04, - 0x00, - 0x00, - 0x39, - 0x04, - 0x05, - 0x52, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x0D, - 0x52, - 0x01, - 0xD8, - 0x64, - 0x04, - 0x00, - 0x05, - 0x8E, - 0x4B, - 0x02, - 0x02, - 0x7A, - 0x00, - 0x04, - 0x64, - 0x00, - 0x0E, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x66, - 0x65, - 0x6F, - 0x6F, - 0x85, - 0x34, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x01, - 0xD8, - 0x04, - 0x04, - 0x00, - 0x16, - 0xD4, - 0xD8, - 0xDA, - 0xDA, - 0xD4, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x48, - 0x85, - 0x6F, - 0x02, - 0x02, - 0x7B, - 0x64, - 0x02, - 0x02, - 0x8A, - 0x74, - 0xD7, - 0x52, - 0x04, - 0x00, - 0x00, - 0x3A, - 0x04, - 0x00, - 0x03, - 0xD2, - 0xDE, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x01, - 0xF2, - 0x0C, - 0x52, - 0x01, - 0xD9, - 0x65, - 0x04, - 0x00, - 0x0A, - 0xD8, - 0x04, - 0x04, - 0xD5, - 0x8E, - 0x84, - 0x7F, - 0x66, - 0x65, - 0x02, - 0x05, - 0x64, - 0x00, - 0x27, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x66, - 0x02, - 0x64, - 0x6B, - 0x6E, - 0x85, - 0x85, - 0x85, - 0x87, - 0x87, - 0x48, - 0x87, - 0x48, - 0x48, - 0x87, - 0x87, - 0x85, - 0x85, - 0x85, - 0x6F, - 0x6B, - 0x7A, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x7B, - 0x02, - 0x8A, - 0x73, - 0x8D, - 0x00, - 0x56, - 0x04, - 0x00, - 0x00, - 0x41, - 0x04, - 0x01, - 0xF2, - 0x06, - 0x52, - 0x00, - 0x05, - 0xDE, - 0x04, - 0x04, - 0xD8, - 0xDA, - 0x00, - 0x6F, - 0x04, - 0x00, - 0x11, - 0xD3, - 0x8D, - 0x74, - 0x84, - 0x67, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x00, - 0x13, - 0x02, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x7A, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x7B, - 0x7B, - 0x67, - 0x84, - 0x8E, - 0x3D, - 0x00, - 0x5A, - 0x04, - 0x00, - 0x00, - 0x42, - 0x04, - 0x05, - 0x52, - 0x01, - 0xD7, - 0x7A, - 0x04, - 0x00, - 0x0C, - 0xD8, - 0x35, - 0x74, - 0x87, - 0x84, - 0x91, - 0x6A, - 0x7B, - 0x02, - 0x02, - 0x7B, - 0x7B, - 0x09, - 0x02, - 0x00, - 0x0A, - 0x7B, - 0x02, - 0x7B, - 0x67, - 0x4B, - 0x84, - 0x73, - 0x8E, - 0x35, - 0xD8, - 0x5F, - 0x04, - 0x00, - 0x00, - 0x43, - 0x04, - 0x00, - 0x03, - 0xF1, - 0xF2, - 0xD2, - 0x00, - 0x86, - 0x04, - 0x00, - 0x0B, - 0xD8, - 0xD5, - 0xDD, - 0xD3, - 0xB6, - 0xD7, - 0xD2, - 0xD3, - 0xDD, - 0xD5, - 0xD8, - 0x00, - 0x69, - 0x04, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x01, - 0x00, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x4D, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x47, - 0x03, - 0x24, - 0xD6, - 0xD6, - 0x71, - 0x7A, - 0x64, - 0x8B, - 0x65, - 0x65, - 0x64, - 0x83, - 0x73, - 0x87, - 0xEF, - 0x0F, - 0x0F, - 0x08, - 0x67, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x00, - 0x05, - 0x65, - 0x00, - 0x15, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x00, - 0x1A, - 0x65, - 0x00, - 0x06, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x0F, - 0x65, - 0x01, - 0x02, - 0x07, - 0x65, - 0x01, - 0x02, - 0x09, - 0x65, - 0x00, - 0x06, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x0E, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x08, - 0x65, - 0x00, - 0x0E, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x09, - 0x64, - 0x01, - 0x02, - 0x11, - 0x64, - 0x01, - 0x02, - 0x0C, - 0x64, - 0x01, - 0x65, - 0x0A, - 0x64, - 0x01, - 0x02, - 0x04, - 0x64, - 0x00, - 0x1C, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x05, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x00, - 0x05, - 0x64, - 0x01, - 0x65, - 0x06, - 0x64, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x06, - 0x64, - 0x00, - 0x03, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x01, - 0x65, - 0x06, - 0x64, - 0x00, - 0x05, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x13, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x08, - 0x25, - 0x08, - 0x92, - 0x7A, - 0x02, - 0x7B, - 0x65, - 0x4B, - 0x65, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x10, - 0x62, - 0x87, - 0x25, - 0x87, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x06, - 0x64, - 0x00, - 0x80, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x06, - 0x64, - 0x00, - 0x18, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x3A, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x74, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x63, - 0x71, - 0x0F, - 0x25, - 0x71, - 0x64, - 0x02, - 0x02, - 0x7A, - 0x7C, - 0x82, - 0x75, - 0x76, - 0x6D, - 0x66, - 0x02, - 0x02, - 0x65, - 0x6A, - 0xEF, - 0x62, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x05, - 0x02, - 0x00, - 0x25, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x00, - 0x04, - 0x02, - 0x00, - 0x1F, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x02, - 0x00, - 0x40, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x05, - 0x02, - 0x00, - 0x30, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x04, - 0x64, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x50, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x8E, - 0xD6, - 0x24, - 0xD6, - 0x4A, - 0x64, - 0x65, - 0x6E, - 0x72, - 0x65, - 0x72, - 0xC6, - 0xC6, - 0xC6, - 0x4C, - 0x76, - 0x81, - 0x64, - 0x83, - 0x64, - 0x65, - 0x64, - 0x63, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x06, - 0x64, - 0x00, - 0x22, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x05, - 0x64, - 0x00, - 0x29, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x13, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x05, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x0F, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x04, - 0x65, - 0x00, - 0x29, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x00, - 0x06, - 0x64, - 0x00, - 0x05, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x07, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x1D, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x7C, - 0x08, - 0x25, - 0x03, - 0xD6, - 0x71, - 0x63, - 0x64, - 0x6D, - 0xC6, - 0xC6, - 0x72, - 0x6B, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x1C, - 0x66, - 0x64, - 0x65, - 0x62, - 0x84, - 0xDF, - 0x08, - 0x83, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x7D, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x05, - 0x64, - 0x00, - 0x69, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x16, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x04, - 0x64, - 0x00, - 0x1B, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x1F, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x1D, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x8B, - 0xD6, - 0x25, - 0xD6, - 0x92, - 0x79, - 0x7A, - 0x02, - 0x89, - 0xC6, - 0xC6, - 0xC6, - 0x65, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x0D, - 0xF3, - 0x76, - 0x65, - 0x64, - 0x4B, - 0x73, - 0x47, - 0x24, - 0x25, - 0x08, - 0x64, - 0x02, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x2D, - 0x65, - 0x63, - 0x65, - 0x65, - 0x71, - 0x02, - 0x79, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x00, - 0x06, - 0x65, - 0x00, - 0x2C, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x06, - 0x65, - 0x00, - 0x2E, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x06, - 0x65, - 0x00, - 0x22, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x04, - 0x65, - 0x00, - 0x34, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x04, - 0x65, - 0x00, - 0x13, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x92, - 0xD6, - 0x10, - 0x8E, - 0x64, - 0x7A, - 0x02, - 0x76, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x5F, - 0x70, - 0x4C, - 0xC6, - 0xC6, - 0xB3, - 0x88, - 0x66, - 0x6E, - 0x6F, - 0x64, - 0x65, - 0x67, - 0x08, - 0x25, - 0x25, - 0x84, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x8E, - 0x4A, - 0x92, - 0x74, - 0x08, - 0x25, - 0x71, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x8C, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x16, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x01, - 0x02, - 0x01, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0B, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x08, - 0x0F, - 0x8E, - 0x79, - 0x7A, - 0x6F, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x1D, - 0x72, - 0xC6, - 0xB3, - 0x76, - 0x67, - 0x88, - 0xC6, - 0xC6, - 0x6B, - 0x64, - 0x64, - 0x50, - 0x25, - 0x25, - 0x84, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x8B, - 0x0F, - 0x7C, - 0x64, - 0x79, - 0x02, - 0x7D, - 0x47, - 0x00, - 0x07, - 0x64, - 0x00, - 0x12, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x07, - 0x64, - 0x00, - 0x15, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x01, - 0x65, - 0x06, - 0x64, - 0x00, - 0x05, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x00, - 0x05, - 0x64, - 0x00, - 0x16, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x03, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x07, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x00, - 0x09, - 0x64, - 0x01, - 0x02, - 0x01, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0E, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x26, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x0B, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x10, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x04, - 0x64, - 0x00, - 0x33, - 0x63, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x92, - 0x8E, - 0x02, - 0x7A, - 0x7F, - 0xC6, - 0xC6, - 0xC6, - 0xB3, - 0xC6, - 0xB3, - 0x88, - 0xC6, - 0x75, - 0x75, - 0xC6, - 0xC6, - 0xE0, - 0xC6, - 0x6F, - 0x64, - 0x62, - 0xEF, - 0x24, - 0x08, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x4A, - 0x08, - 0x7A, - 0x82, - 0x6A, - 0xC6, - 0x4C, - 0x8A, - 0x63, - 0x92, - 0x00, - 0x05, - 0x65, - 0x00, - 0x03, - 0x64, - 0x65, - 0x64, - 0x00, - 0x09, - 0x65, - 0x01, - 0x64, - 0x04, - 0x65, - 0x01, - 0x64, - 0x06, - 0x65, - 0x00, - 0x08, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x06, - 0x65, - 0x00, - 0x06, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x05, - 0x65, - 0x00, - 0x05, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x14, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x08, - 0x65, - 0x00, - 0x12, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x04, - 0x65, - 0x00, - 0x10, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x15, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x05, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x00, - 0x05, - 0x65, - 0x01, - 0x64, - 0x07, - 0x65, - 0x01, - 0x64, - 0x04, - 0x65, - 0x00, - 0x13, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x09, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x0E, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x17, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x7A, - 0x7D, - 0x65, - 0x8B, - 0x08, - 0x92, - 0x02, - 0x7A, - 0x00, - 0x04, - 0x64, - 0x00, - 0x0F, - 0x02, - 0x64, - 0x64, - 0x79, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x82, - 0x72, - 0x72, - 0x75, - 0x46, - 0xC6, - 0x4C, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x2F, - 0x6B, - 0x64, - 0x49, - 0x08, - 0x25, - 0x48, - 0x63, - 0x64, - 0x65, - 0x02, - 0x65, - 0x63, - 0x8E, - 0x71, - 0x79, - 0xC6, - 0x89, - 0x76, - 0x88, - 0x6D, - 0x62, - 0x8E, - 0x74, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x00, - 0x06, - 0x64, - 0x00, - 0x25, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x0E, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x07, - 0x64, - 0x00, - 0x29, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x04, - 0x65, - 0x64, - 0x65, - 0x65, - 0x06, - 0x64, - 0x01, - 0x02, - 0x05, - 0x64, - 0x00, - 0x0E, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x05, - 0x64, - 0x00, - 0x3C, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x7A, - 0x02, - 0x08, - 0x92, - 0x92, - 0x92, - 0x74, - 0xD6, - 0x8E, - 0x63, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x63, - 0x64, - 0x4B, - 0x7C, - 0x9C, - 0x72, - 0x76, - 0x89, - 0x4C, - 0x46, - 0xB3, - 0xC6, - 0x4C, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x1E, - 0x6B, - 0x65, - 0x83, - 0x08, - 0x25, - 0x48, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x67, - 0x72, - 0x88, - 0xC6, - 0x46, - 0xC6, - 0x6D, - 0x71, - 0x92, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x04, - 0x65, - 0x00, - 0x19, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x00, - 0x06, - 0x65, - 0x00, - 0x29, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x08, - 0x65, - 0x00, - 0x4E, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x07, - 0x65, - 0x01, - 0x02, - 0x04, - 0x65, - 0x00, - 0x13, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x1C, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x00, - 0x00, - 0x00, - 0x03, - 0x65, - 0x65, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x13, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x14, - 0x7A, - 0x47, - 0x74, - 0x64, - 0x64, - 0x72, - 0x77, - 0x65, - 0x92, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x8B, - 0x87, - 0xEE, - 0x4B, - 0x64, - 0x70, - 0x05, - 0xC6, - 0x00, - 0x05, - 0xB3, - 0x4C, - 0xB3, - 0x88, - 0x82, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x19, - 0x6E, - 0x64, - 0x67, - 0xEF, - 0x03, - 0x08, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x4A, - 0x92, - 0x6D, - 0xC6, - 0xC6, - 0x89, - 0x75, - 0x89, - 0x6D, - 0x71, - 0x71, - 0x64, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x20, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x0A, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x04, - 0x65, - 0x00, - 0x1F, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x55, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x05, - 0x65, - 0x00, - 0x09, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x18, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x04, - 0x65, - 0x00, - 0x0B, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x32, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x74, - 0x8E, - 0x7D, - 0x89, - 0x70, - 0xC6, - 0xC6, - 0x7E, - 0x67, - 0x0D, - 0x83, - 0x64, - 0x02, - 0x6C, - 0x08, - 0x24, - 0x48, - 0x63, - 0x64, - 0x81, - 0x05, - 0xC6, - 0x00, - 0x87, - 0x4C, - 0x75, - 0xC6, - 0xC6, - 0x89, - 0x02, - 0x72, - 0xC6, - 0xC6, - 0x64, - 0x64, - 0x63, - 0x50, - 0x25, - 0x25, - 0x84, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x71, - 0x8E, - 0x7B, - 0x89, - 0x72, - 0x89, - 0xE0, - 0x7D, - 0x64, - 0x08, - 0x92, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x3D, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x00, - 0x07, - 0x64, - 0x00, - 0x3A, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x33, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x71, - 0x92, - 0x70, - 0xC6, - 0xC6, - 0xC6, - 0x72, - 0x88, - 0x62, - 0xB2, - 0x92, - 0x64, - 0x65, - 0x84, - 0x25, - 0x25, - 0xEF, - 0x62, - 0x64, - 0x65, - 0x70, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x3E, - 0x6F, - 0x46, - 0xE0, - 0xC6, - 0xC6, - 0x89, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x08, - 0x25, - 0x25, - 0x84, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x47, - 0x71, - 0x63, - 0x65, - 0x75, - 0x70, - 0x77, - 0x84, - 0x62, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x04, - 0x65, - 0x00, - 0x6D, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x15, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x05, - 0x64, - 0x00, - 0x3C, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x38, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x63, - 0x64, - 0x65, - 0x72, - 0xC6, - 0xB3, - 0xC6, - 0xC6, - 0x67, - 0x48, - 0x84, - 0x7A, - 0x7A, - 0x6C, - 0xD6, - 0x0F, - 0x03, - 0x87, - 0x67, - 0x65, - 0x65, - 0x76, - 0xC6, - 0xC6, - 0xB3, - 0x02, - 0x05, - 0xC6, - 0x00, - 0x3A, - 0x88, - 0x02, - 0x7A, - 0x4B, - 0x73, - 0x08, - 0x23, - 0x25, - 0xEF, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x08, - 0x71, - 0x6C, - 0x4B, - 0x84, - 0x48, - 0x08, - 0x02, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x05, - 0x7A, - 0x00, - 0x03, - 0x02, - 0x02, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x08, - 0x64, - 0x64, - 0x65, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x03, - 0x02, - 0x7A, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x09, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x00, - 0x0A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x0E, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x1C, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x0D, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x00, - 0x0F, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x05, - 0x02, - 0x00, - 0x17, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x00, - 0x04, - 0x02, - 0x00, - 0x15, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x00, - 0x06, - 0x02, - 0x00, - 0x00, - 0x00, - 0x06, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x62, - 0x12, - 0x02, - 0x00, - 0x2E, - 0x49, - 0x49, - 0x49, - 0x83, - 0x83, - 0x83, - 0x48, - 0x92, - 0x70, - 0xC6, - 0x46, - 0xC6, - 0xC6, - 0xF6, - 0x6A, - 0xEE, - 0x73, - 0x02, - 0x02, - 0x02, - 0x08, - 0x03, - 0x0F, - 0x25, - 0xB2, - 0x64, - 0x64, - 0x6A, - 0xC6, - 0xC6, - 0x82, - 0x8A, - 0xC6, - 0xC6, - 0xC6, - 0xB3, - 0xC6, - 0xC6, - 0x02, - 0x7A, - 0x49, - 0x6C, - 0x84, - 0x0D, - 0x0F, - 0x83, - 0x08, - 0x02, - 0x00, - 0x09, - 0x7D, - 0x49, - 0x73, - 0xD6, - 0xD6, - 0x87, - 0x6C, - 0x02, - 0x02, - 0x00, - 0x04, - 0x49, - 0x00, - 0x03, - 0x65, - 0x62, - 0x64, - 0x00, - 0x04, - 0x65, - 0x01, - 0x64, - 0x04, - 0x65, - 0x00, - 0x15, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7D, - 0x02, - 0x02, - 0x02, - 0x7D, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x7D, - 0x02, - 0x79, - 0x65, - 0x65, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x7D, - 0x06, - 0x02, - 0x00, - 0x0E, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x02, - 0x02, - 0x7D, - 0x04, - 0x02, - 0x00, - 0x08, - 0x7D, - 0x02, - 0x02, - 0x02, - 0x7D, - 0x02, - 0x7D, - 0x7D, - 0x72, - 0x02, - 0x00, - 0x05, - 0x7D, - 0x7B, - 0x65, - 0x64, - 0x83, - 0x00, - 0x1F, - 0x49, - 0x00, - 0x00, - 0x00, - 0x06, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x44, - 0x15, - 0x08, - 0x00, - 0x2A, - 0xD6, - 0xD6, - 0xD6, - 0x24, - 0xEF, - 0x02, - 0x75, - 0x56, - 0xC6, - 0xB3, - 0x85, - 0x08, - 0x03, - 0xD6, - 0x08, - 0x08, - 0x08, - 0x25, - 0x25, - 0x23, - 0x03, - 0x03, - 0x84, - 0x65, - 0x64, - 0x6A, - 0x6F, - 0x71, - 0x6B, - 0xC6, - 0xC6, - 0xC6, - 0x76, - 0x72, - 0x8A, - 0x7A, - 0x6C, - 0x08, - 0x08, - 0x08, - 0x25, - 0x03, - 0x0B, - 0x08, - 0x00, - 0x04, - 0x0F, - 0x25, - 0x25, - 0xD6, - 0x08, - 0x08, - 0x00, - 0x1A, - 0xEF, - 0x84, - 0x67, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x7A, - 0x02, - 0x8E, - 0x0D, - 0x08, - 0x00, - 0x06, - 0x92, - 0x02, - 0x64, - 0x7A, - 0x02, - 0x0E, - 0x93, - 0x08, - 0x00, - 0x04, - 0x71, - 0x7A, - 0x67, - 0xEF, - 0x20, - 0x08, - 0x00, - 0x00, - 0x00, - 0x07, - 0x64, - 0x02, - 0x02, - 0x83, - 0xEF, - 0x24, - 0x03, - 0x00, - 0x04, - 0x25, - 0x00, - 0x0F, - 0x0F, - 0x25, - 0x03, - 0x0F, - 0x0E, - 0x25, - 0x25, - 0x25, - 0x23, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x00, - 0x04, - 0x25, - 0x00, - 0x73, - 0x24, - 0x0F, - 0x87, - 0x02, - 0x48, - 0x77, - 0x65, - 0x7E, - 0x23, - 0x0F, - 0xC4, - 0x23, - 0x25, - 0x0E, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x48, - 0x64, - 0x65, - 0x64, - 0x73, - 0x0F, - 0x6C, - 0x72, - 0x72, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x4B, - 0xD6, - 0x23, - 0x0F, - 0xC4, - 0x25, - 0x0F, - 0x24, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x25, - 0x0E, - 0x03, - 0x25, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x24, - 0x23, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x08, - 0x73, - 0x4B, - 0x63, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x71, - 0x08, - 0x24, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x25, - 0x08, - 0x71, - 0x02, - 0x7C, - 0x7A, - 0x8B, - 0x08, - 0x0F, - 0x23, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x00, - 0x04, - 0x25, - 0x00, - 0x16, - 0x0F, - 0xC4, - 0x25, - 0x03, - 0x25, - 0x23, - 0x25, - 0x25, - 0x25, - 0x03, - 0x0E, - 0x25, - 0x25, - 0x23, - 0x24, - 0x25, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x24, - 0x08, - 0x25, - 0x00, - 0x12, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x03, - 0x03, - 0x04, - 0x25, - 0x00, - 0x06, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x07, - 0x25, - 0x00, - 0x20, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x24, - 0x25, - 0x25, - 0x23, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x25, - 0x0E, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x0E, - 0xC4, - 0x25, - 0xC4, - 0x04, - 0x25, - 0x00, - 0x2B, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x03, - 0x25, - 0x23, - 0x25, - 0x25, - 0xC4, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x0F, - 0x23, - 0x25, - 0x0E, - 0x25, - 0x25, - 0x0F, - 0x25, - 0xC4, - 0x0F, - 0x0F, - 0x24, - 0x03, - 0x25, - 0x0F, - 0xD6, - 0x71, - 0x64, - 0x62, - 0x0D, - 0x24, - 0x0F, - 0x0F, - 0x25, - 0xC4, - 0x0E, - 0x00, - 0x07, - 0x25, - 0x01, - 0x0E, - 0x01, - 0x03, - 0x04, - 0x25, - 0x01, - 0x23, - 0x04, - 0x25, - 0x00, - 0x09, - 0xC4, - 0x23, - 0x0F, - 0x03, - 0x24, - 0xC4, - 0x25, - 0x0F, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0xCF, - 0x02, - 0x64, - 0x84, - 0x08, - 0x03, - 0x24, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x03, - 0x24, - 0x03, - 0x03, - 0x24, - 0xC4, - 0x25, - 0x25, - 0x25, - 0x23, - 0xC4, - 0x24, - 0x24, - 0x25, - 0x25, - 0x03, - 0x03, - 0x03, - 0x25, - 0x03, - 0x03, - 0x24, - 0x0E, - 0xD6, - 0x23, - 0x73, - 0x48, - 0x08, - 0x24, - 0x0F, - 0x23, - 0x23, - 0x03, - 0x23, - 0x03, - 0x25, - 0x03, - 0x24, - 0x03, - 0xD6, - 0x87, - 0x4B, - 0x84, - 0x08, - 0x08, - 0x02, - 0x7A, - 0x64, - 0x02, - 0x64, - 0x62, - 0x67, - 0x64, - 0x48, - 0x25, - 0x24, - 0x25, - 0x24, - 0x03, - 0x0F, - 0x24, - 0x24, - 0x03, - 0x0E, - 0x03, - 0x24, - 0x23, - 0x03, - 0x03, - 0x03, - 0x0E, - 0x25, - 0x23, - 0x03, - 0x03, - 0x03, - 0x24, - 0x23, - 0x0E, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x25, - 0x08, - 0x48, - 0x83, - 0x62, - 0x65, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x71, - 0x08, - 0x25, - 0x24, - 0x03, - 0x24, - 0x03, - 0x24, - 0x25, - 0x03, - 0x03, - 0x23, - 0x0F, - 0x08, - 0x71, - 0x65, - 0x65, - 0x64, - 0x92, - 0x08, - 0x25, - 0x0F, - 0x03, - 0x24, - 0x03, - 0x24, - 0x25, - 0x03, - 0x24, - 0x23, - 0x03, - 0x03, - 0x0F, - 0xC4, - 0x25, - 0x03, - 0x25, - 0x03, - 0x24, - 0x25, - 0x03, - 0x0E, - 0x0E, - 0x25, - 0x03, - 0x23, - 0x03, - 0x23, - 0x25, - 0x24, - 0x0F, - 0x03, - 0x0F, - 0x03, - 0x25, - 0x03, - 0x25, - 0x24, - 0x24, - 0x03, - 0x25, - 0x24, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x25, - 0x0F, - 0x03, - 0x23, - 0x03, - 0x24, - 0x03, - 0x03, - 0x03, - 0x24, - 0x25, - 0x03, - 0x25, - 0x24, - 0x03, - 0x24, - 0x25, - 0x24, - 0x25, - 0x24, - 0x00, - 0x04, - 0x03, - 0x00, - 0x6D, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x24, - 0x03, - 0x24, - 0x25, - 0x23, - 0x25, - 0x03, - 0x23, - 0xC4, - 0x03, - 0x25, - 0x03, - 0x25, - 0x03, - 0x03, - 0x25, - 0x23, - 0x03, - 0x23, - 0x0F, - 0x03, - 0x0F, - 0x03, - 0x24, - 0x03, - 0x24, - 0x25, - 0x23, - 0x23, - 0x03, - 0x23, - 0x24, - 0x03, - 0x25, - 0x03, - 0x25, - 0x24, - 0x03, - 0x03, - 0x03, - 0x24, - 0x0E, - 0x03, - 0x24, - 0x0E, - 0x24, - 0x24, - 0x24, - 0x03, - 0x03, - 0x03, - 0x24, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x25, - 0x24, - 0x24, - 0x03, - 0xC4, - 0x24, - 0x25, - 0x23, - 0x24, - 0x0F, - 0xD6, - 0x92, - 0x64, - 0x67, - 0x44, - 0x25, - 0x03, - 0x03, - 0x24, - 0x25, - 0x23, - 0x23, - 0x25, - 0x03, - 0x03, - 0x0F, - 0x03, - 0x24, - 0x03, - 0x0E, - 0x25, - 0x03, - 0x0F, - 0x25, - 0x03, - 0x23, - 0x03, - 0x0F, - 0x0F, - 0x03, - 0x24, - 0x23, - 0x25, - 0x25, - 0x23, - 0x0E, - 0x03, - 0x24, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x64, - 0x87, - 0xD6, - 0x03, - 0x24, - 0x24, - 0x23, - 0x24, - 0x24, - 0x0F, - 0x03, - 0x24, - 0x24, - 0x03, - 0x24, - 0x24, - 0x24, - 0x03, - 0x05, - 0x24, - 0x00, - 0x06, - 0x23, - 0x24, - 0x24, - 0x03, - 0x24, - 0x03, - 0x05, - 0x24, - 0x00, - 0x2A, - 0x03, - 0x25, - 0x24, - 0x03, - 0x24, - 0x24, - 0x03, - 0x24, - 0x24, - 0x23, - 0x03, - 0x0F, - 0x24, - 0x24, - 0x03, - 0x24, - 0x25, - 0x08, - 0xD6, - 0x0F, - 0xD6, - 0x6C, - 0x7A, - 0x64, - 0x67, - 0x73, - 0x44, - 0x0D, - 0x08, - 0x25, - 0x25, - 0x08, - 0x7D, - 0x08, - 0x23, - 0x24, - 0x25, - 0x03, - 0x24, - 0x23, - 0x03, - 0x03, - 0x04, - 0x24, - 0x00, - 0x03, - 0x23, - 0x23, - 0x03, - 0x00, - 0x04, - 0x24, - 0x00, - 0x27, - 0x03, - 0x23, - 0x0F, - 0x24, - 0x24, - 0x23, - 0x03, - 0x24, - 0x24, - 0x0F, - 0x25, - 0x0F, - 0xEF, - 0x73, - 0x67, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x92, - 0xD6, - 0xD6, - 0x00, - 0x04, - 0x24, - 0x00, - 0x15, - 0x03, - 0x24, - 0x24, - 0x23, - 0x03, - 0x25, - 0x08, - 0x71, - 0x65, - 0x64, - 0x65, - 0x71, - 0x08, - 0x25, - 0x25, - 0x03, - 0x03, - 0x24, - 0x24, - 0x24, - 0x03, - 0x00, - 0x04, - 0x24, - 0x00, - 0x34, - 0x0F, - 0x03, - 0x24, - 0x24, - 0x23, - 0x24, - 0x24, - 0x0E, - 0x23, - 0x03, - 0x24, - 0x03, - 0x24, - 0x24, - 0x23, - 0x24, - 0x24, - 0x03, - 0x24, - 0x03, - 0x25, - 0x24, - 0x24, - 0x03, - 0x24, - 0x24, - 0x03, - 0x03, - 0x24, - 0x23, - 0x24, - 0x23, - 0x25, - 0x03, - 0x24, - 0x23, - 0x24, - 0x03, - 0x24, - 0x23, - 0x03, - 0x24, - 0x23, - 0x24, - 0x25, - 0x03, - 0x23, - 0x24, - 0x23, - 0x24, - 0x03, - 0x03, - 0x04, - 0x24, - 0x00, - 0x09, - 0x25, - 0x03, - 0x24, - 0x24, - 0x24, - 0x03, - 0x24, - 0x03, - 0x03, - 0x00, - 0x09, - 0x24, - 0x00, - 0x04, - 0x03, - 0x03, - 0x24, - 0x03, - 0x05, - 0x24, - 0x00, - 0x16, - 0x03, - 0x03, - 0x24, - 0x03, - 0x23, - 0x03, - 0x24, - 0x24, - 0x03, - 0x24, - 0x25, - 0x24, - 0x03, - 0x24, - 0x24, - 0x03, - 0x23, - 0x24, - 0x23, - 0x24, - 0x03, - 0x23, - 0x04, - 0x24, - 0x00, - 0x28, - 0x03, - 0x24, - 0x24, - 0x24, - 0x23, - 0x24, - 0x23, - 0x0F, - 0x25, - 0x24, - 0x03, - 0x23, - 0x24, - 0x24, - 0x03, - 0x24, - 0x08, - 0x92, - 0x64, - 0x64, - 0x48, - 0x24, - 0x24, - 0x03, - 0x24, - 0x24, - 0x25, - 0x23, - 0x0F, - 0x23, - 0x24, - 0x24, - 0x03, - 0x03, - 0x0F, - 0x03, - 0x23, - 0x25, - 0x24, - 0x25, - 0x04, - 0x24, - 0x00, - 0x0C, - 0x03, - 0x0F, - 0x24, - 0x24, - 0x24, - 0x23, - 0x24, - 0x23, - 0x23, - 0x03, - 0x24, - 0x03, - 0x00, - 0x00, - 0x00, - 0x28, - 0x48, - 0x25, - 0x23, - 0x0F, - 0x24, - 0x24, - 0x24, - 0x0F, - 0x24, - 0x03, - 0x24, - 0x24, - 0x24, - 0x03, - 0x24, - 0x23, - 0x25, - 0x25, - 0x24, - 0x23, - 0x23, - 0x24, - 0x24, - 0x24, - 0x0F, - 0x24, - 0x03, - 0x24, - 0x25, - 0x03, - 0x03, - 0x24, - 0x24, - 0x24, - 0x03, - 0x23, - 0x24, - 0x0F, - 0x03, - 0x08, - 0x04, - 0x24, - 0x00, - 0x27, - 0x03, - 0x0F, - 0x03, - 0x24, - 0x03, - 0x24, - 0x23, - 0x03, - 0x24, - 0x0F, - 0x23, - 0x08, - 0x73, - 0x73, - 0xC3, - 0x25, - 0x24, - 0x03, - 0x24, - 0x24, - 0x25, - 0x92, - 0xD6, - 0x24, - 0x24, - 0x25, - 0x0E, - 0x24, - 0x24, - 0x0E, - 0x25, - 0x24, - 0x23, - 0x24, - 0x24, - 0x24, - 0x0E, - 0x24, - 0xC4, - 0x00, - 0x04, - 0x24, - 0x00, - 0x72, - 0x23, - 0x23, - 0x0F, - 0x24, - 0x24, - 0x03, - 0x24, - 0x24, - 0x0F, - 0x25, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x08, - 0x87, - 0x6C, - 0x63, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x8B, - 0x25, - 0xD6, - 0x24, - 0x24, - 0x03, - 0x03, - 0x23, - 0x24, - 0x03, - 0x25, - 0x24, - 0x25, - 0x08, - 0x8E, - 0x4A, - 0x64, - 0x65, - 0x74, - 0x08, - 0x25, - 0x24, - 0x0F, - 0x24, - 0x24, - 0x23, - 0x24, - 0x24, - 0x25, - 0x23, - 0x0F, - 0x03, - 0x0F, - 0x03, - 0x24, - 0x0F, - 0x24, - 0x23, - 0x24, - 0x25, - 0x24, - 0x23, - 0x03, - 0x23, - 0x03, - 0x0F, - 0x0F, - 0x03, - 0x24, - 0x03, - 0x25, - 0x03, - 0x24, - 0x25, - 0x24, - 0x24, - 0x25, - 0x24, - 0x0F, - 0xC4, - 0x0F, - 0x23, - 0x25, - 0x24, - 0x24, - 0x23, - 0x24, - 0x03, - 0x0F, - 0x03, - 0x24, - 0x24, - 0x0F, - 0x03, - 0x25, - 0x0F, - 0x04, - 0x24, - 0x01, - 0x0F, - 0x01, - 0x03, - 0x04, - 0x24, - 0x01, - 0x25, - 0x04, - 0x24, - 0x00, - 0x2C, - 0x03, - 0x24, - 0x25, - 0x23, - 0x25, - 0x24, - 0x23, - 0x23, - 0x24, - 0x24, - 0x24, - 0x0F, - 0x24, - 0x03, - 0x25, - 0x23, - 0x03, - 0x23, - 0x24, - 0x24, - 0x24, - 0x03, - 0x24, - 0x24, - 0x24, - 0x25, - 0x23, - 0x23, - 0x24, - 0x23, - 0x24, - 0x24, - 0x25, - 0x24, - 0x25, - 0x24, - 0x24, - 0x03, - 0x03, - 0x24, - 0x0E, - 0x24, - 0x24, - 0x0E, - 0x04, - 0x24, - 0x00, - 0x38, - 0x03, - 0x24, - 0x24, - 0x0F, - 0x23, - 0x0F, - 0x23, - 0x25, - 0x24, - 0x24, - 0x24, - 0x23, - 0x24, - 0x0F, - 0x0E, - 0x08, - 0x4A, - 0x64, - 0x64, - 0x48, - 0x25, - 0x03, - 0x24, - 0x03, - 0x24, - 0x24, - 0x0F, - 0x23, - 0x0E, - 0x24, - 0x03, - 0x24, - 0x0F, - 0x25, - 0x03, - 0x24, - 0x0E, - 0x25, - 0x24, - 0x24, - 0x25, - 0x24, - 0x23, - 0x24, - 0x0F, - 0x0F, - 0x24, - 0x24, - 0x23, - 0x24, - 0x0F, - 0x23, - 0x0E, - 0x03, - 0x24, - 0x24, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x25, - 0x25, - 0x0E, - 0x25, - 0x23, - 0x24, - 0x03, - 0x25, - 0x25, - 0x25, - 0xC4, - 0x0E, - 0x24, - 0x23, - 0x0F, - 0x23, - 0x25, - 0x24, - 0x25, - 0x23, - 0xC4, - 0x0E, - 0x24, - 0x25, - 0x25, - 0x24, - 0x0E, - 0x23, - 0x25, - 0xC4, - 0xC4, - 0x24, - 0x0E, - 0x24, - 0x03, - 0x08, - 0xD6, - 0x47, - 0x62, - 0x64, - 0x71, - 0x74, - 0x08, - 0x25, - 0x24, - 0x25, - 0x0E, - 0x25, - 0x25, - 0x25, - 0x23, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x41, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x0E, - 0xD6, - 0x71, - 0x92, - 0x24, - 0xC4, - 0x25, - 0x0F, - 0x23, - 0xC4, - 0x25, - 0x23, - 0x25, - 0x23, - 0x23, - 0x03, - 0x25, - 0x24, - 0x23, - 0x25, - 0x0E, - 0x23, - 0x25, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x25, - 0xC4, - 0x23, - 0x25, - 0x24, - 0x04, - 0x25, - 0x00, - 0x18, - 0x23, - 0x25, - 0x25, - 0x25, - 0x03, - 0x08, - 0x48, - 0x84, - 0x62, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x04, - 0x65, - 0x00, - 0x2F, - 0x64, - 0x8B, - 0x47, - 0x08, - 0x25, - 0x24, - 0xC4, - 0x25, - 0x0E, - 0x25, - 0x23, - 0x24, - 0x0F, - 0x41, - 0x08, - 0x8E, - 0x4A, - 0x63, - 0x65, - 0x74, - 0x08, - 0x25, - 0xC4, - 0x25, - 0x23, - 0x25, - 0xC4, - 0x0F, - 0xC4, - 0x23, - 0x25, - 0x23, - 0xC4, - 0x0F, - 0xC4, - 0x25, - 0x23, - 0x23, - 0x25, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x00, - 0x05, - 0x25, - 0x00, - 0x77, - 0x0F, - 0x25, - 0x25, - 0x23, - 0x24, - 0x0F, - 0x23, - 0x25, - 0x23, - 0xC4, - 0xC4, - 0x25, - 0x0F, - 0xC4, - 0x25, - 0x25, - 0x25, - 0xC4, - 0xC4, - 0x25, - 0x0E, - 0x25, - 0xC4, - 0x25, - 0x23, - 0x25, - 0x25, - 0xC4, - 0x0E, - 0x25, - 0x23, - 0x25, - 0x25, - 0x25, - 0x23, - 0xC4, - 0x23, - 0x24, - 0x25, - 0x0E, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x23, - 0xC4, - 0x25, - 0x23, - 0x25, - 0x23, - 0x24, - 0x25, - 0x0E, - 0x23, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x0E, - 0xC4, - 0xC4, - 0x24, - 0x25, - 0x0F, - 0x23, - 0x24, - 0xC4, - 0x0E, - 0x25, - 0x25, - 0x24, - 0x0F, - 0x25, - 0xC4, - 0x24, - 0x25, - 0x25, - 0x23, - 0x25, - 0x24, - 0xC4, - 0x0F, - 0x24, - 0x0F, - 0xC4, - 0xC4, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x24, - 0x24, - 0x23, - 0x0F, - 0x03, - 0x08, - 0x7D, - 0x64, - 0x63, - 0x48, - 0x25, - 0x24, - 0x25, - 0x23, - 0x25, - 0x25, - 0x0E, - 0x25, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x25, - 0xC4, - 0x00, - 0x04, - 0x25, - 0x01, - 0x23, - 0x04, - 0x25, - 0x00, - 0x0E, - 0x23, - 0x25, - 0x24, - 0x23, - 0x25, - 0x23, - 0x23, - 0x25, - 0x03, - 0x24, - 0x24, - 0x0E, - 0x0E, - 0x25, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x25, - 0x03, - 0x03, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x24, - 0x24, - 0x0F, - 0x03, - 0x25, - 0x24, - 0x03, - 0x24, - 0x25, - 0x25, - 0x03, - 0x25, - 0x0E, - 0x03, - 0x0F, - 0x24, - 0x25, - 0x03, - 0x24, - 0x03, - 0x25, - 0x25, - 0x03, - 0x03, - 0x03, - 0x24, - 0xD6, - 0x8B, - 0x79, - 0x74, - 0x74, - 0x65, - 0x66, - 0x65, - 0x63, - 0x64, - 0x0E, - 0x03, - 0x25, - 0x03, - 0x24, - 0x03, - 0x0F, - 0x03, - 0x03, - 0x03, - 0x0F, - 0x23, - 0x25, - 0x24, - 0x23, - 0x25, - 0x25, - 0x24, - 0x03, - 0x25, - 0x0F, - 0x71, - 0x92, - 0x0F, - 0x25, - 0x08, - 0x0F, - 0x25, - 0x24, - 0x03, - 0x24, - 0x03, - 0x03, - 0x0F, - 0x25, - 0x03, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x25, - 0x25, - 0x24, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x03, - 0x03, - 0x03, - 0x0F, - 0x25, - 0x23, - 0x03, - 0x25, - 0x25, - 0x0F, - 0x24, - 0x03, - 0x0F, - 0xEF, - 0x73, - 0x63, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x63, - 0x4A, - 0x8E, - 0x08, - 0x24, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x03, - 0x03, - 0x03, - 0x25, - 0x08, - 0x8E, - 0x4A, - 0x79, - 0x02, - 0x8E, - 0x08, - 0x25, - 0x03, - 0x24, - 0x03, - 0x24, - 0x24, - 0x03, - 0x03, - 0x25, - 0x03, - 0x24, - 0x24, - 0x03, - 0x24, - 0x0E, - 0x25, - 0x03, - 0xC4, - 0x25, - 0x24, - 0x25, - 0x24, - 0x0F, - 0x03, - 0x24, - 0x03, - 0x03, - 0x03, - 0x25, - 0x24, - 0x03, - 0x03, - 0x0F, - 0x03, - 0x0F, - 0x24, - 0x25, - 0x23, - 0x25, - 0x25, - 0x03, - 0x23, - 0x03, - 0x25, - 0x03, - 0x25, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x03, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x25, - 0x03, - 0x03, - 0x25, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x24, - 0x03, - 0x03, - 0x25, - 0x25, - 0x24, - 0x23, - 0x03, - 0x0F, - 0x03, - 0x0F, - 0x25, - 0x25, - 0x03, - 0x24, - 0x03, - 0x24, - 0x25, - 0x03, - 0x0F, - 0x03, - 0x03, - 0x25, - 0x24, - 0x25, - 0x23, - 0x03, - 0x25, - 0x23, - 0x25, - 0x03, - 0x25, - 0x03, - 0x25, - 0x24, - 0x25, - 0x03, - 0x25, - 0x00, - 0x00, - 0x41, - 0x24, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x25, - 0x24, - 0x0F, - 0x03, - 0x25, - 0x24, - 0x24, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x25, - 0x03, - 0x24, - 0x25, - 0x0E, - 0x25, - 0x08, - 0x02, - 0x7A, - 0x64, - 0x48, - 0x25, - 0x25, - 0x0E, - 0x25, - 0x25, - 0x03, - 0x0F, - 0x24, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x24, - 0x03, - 0x25, - 0x03, - 0x24, - 0x03, - 0x0E, - 0x25, - 0x03, - 0x25, - 0x25, - 0x03, - 0x03, - 0x25, - 0x03, - 0x25, - 0x03, - 0x24, - 0x23, - 0x25, - 0x0F, - 0x23, - 0x23, - 0x03, - 0x0F, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x70, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x23, - 0x25, - 0x03, - 0x0F, - 0x0E, - 0x23, - 0x0F, - 0x0F, - 0x0E, - 0x25, - 0x25, - 0x0E, - 0x23, - 0x25, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x23, - 0x23, - 0x0F, - 0x24, - 0x08, - 0x79, - 0x02, - 0x72, - 0xE1, - 0xC6, - 0xC6, - 0x75, - 0x6F, - 0x63, - 0x03, - 0x23, - 0x0F, - 0x23, - 0x0E, - 0x24, - 0x25, - 0x23, - 0x25, - 0x24, - 0x0E, - 0x23, - 0x0F, - 0x0E, - 0x23, - 0x0F, - 0x0F, - 0x23, - 0x23, - 0x0E, - 0x23, - 0x0E, - 0xD6, - 0x08, - 0x73, - 0x8B, - 0x84, - 0xEF, - 0x25, - 0x0F, - 0x0E, - 0x03, - 0x23, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x25, - 0x23, - 0x0F, - 0x23, - 0x0E, - 0x25, - 0x24, - 0x25, - 0x23, - 0x0E, - 0x0F, - 0x0F, - 0x0E, - 0x23, - 0x24, - 0x25, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x0E, - 0x25, - 0x08, - 0x87, - 0x4B, - 0x63, - 0x05, - 0x64, - 0x00, - 0xCB, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x79, - 0x02, - 0x74, - 0x08, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x24, - 0x25, - 0x0E, - 0x0F, - 0x25, - 0x24, - 0x08, - 0x47, - 0x7D, - 0x79, - 0x02, - 0x47, - 0xD6, - 0x23, - 0x23, - 0x25, - 0x23, - 0x24, - 0xC4, - 0x0E, - 0x25, - 0x0E, - 0x03, - 0x03, - 0x0E, - 0x24, - 0x0E, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x24, - 0x0E, - 0x23, - 0x0E, - 0x25, - 0x03, - 0x0F, - 0x25, - 0x03, - 0x0F, - 0x25, - 0x24, - 0x23, - 0x0E, - 0x0E, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x23, - 0x23, - 0x23, - 0x25, - 0x24, - 0x25, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x24, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x25, - 0x03, - 0x0E, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x0E, - 0x0E, - 0x23, - 0x0F, - 0x25, - 0x23, - 0x23, - 0x25, - 0x25, - 0x24, - 0x25, - 0x25, - 0x25, - 0x0E, - 0x24, - 0x23, - 0x23, - 0x0F, - 0x03, - 0x0F, - 0x23, - 0x23, - 0x24, - 0x23, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x24, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x0E, - 0x0E, - 0x23, - 0x0E, - 0x0F, - 0x23, - 0x0F, - 0x23, - 0x24, - 0x23, - 0x23, - 0x0E, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x23, - 0x24, - 0x24, - 0xD6, - 0x7B, - 0x7A, - 0x79, - 0x48, - 0x25, - 0x25, - 0x25, - 0x0E, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x0E, - 0x23, - 0x0E, - 0x25, - 0x24, - 0x0F, - 0x0E, - 0x25, - 0x24, - 0x23, - 0x0E, - 0x25, - 0x03, - 0x0F, - 0x25, - 0x0E, - 0x23, - 0x25, - 0x0E, - 0x0E, - 0x25, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x23, - 0x0E, - 0x23, - 0x0E, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x24, - 0x24, - 0x23, - 0x25, - 0x23, - 0x24, - 0x24, - 0x0F, - 0x0F, - 0x03, - 0x23, - 0x23, - 0x24, - 0xC4, - 0x0F, - 0x23, - 0x03, - 0xC4, - 0x0F, - 0x23, - 0x23, - 0x23, - 0x24, - 0x24, - 0x24, - 0x23, - 0x03, - 0x23, - 0x03, - 0x03, - 0x03, - 0x24, - 0xD6, - 0x02, - 0x7D, - 0x75, - 0xC6, - 0x5C, - 0xF4, - 0xC6, - 0xC6, - 0x4C, - 0x8D, - 0x08, - 0x47, - 0x0F, - 0xC4, - 0x0F, - 0x25, - 0x24, - 0x23, - 0x25, - 0x24, - 0x24, - 0x24, - 0x23, - 0x0F, - 0x23, - 0x23, - 0x24, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x0F, - 0xD6, - 0x84, - 0x64, - 0x65, - 0x65, - 0x64, - 0x48, - 0x08, - 0xD6, - 0x08, - 0x25, - 0x23, - 0x24, - 0x24, - 0x23, - 0x23, - 0x24, - 0x03, - 0x23, - 0x0F, - 0x24, - 0x0F, - 0x23, - 0x24, - 0x0F, - 0x23, - 0x23, - 0x03, - 0x23, - 0x25, - 0x24, - 0x25, - 0x03, - 0x23, - 0x25, - 0x24, - 0x03, - 0x25, - 0x24, - 0x23, - 0x23, - 0x24, - 0x25, - 0x23, - 0x25, - 0x08, - 0x48, - 0x8B, - 0x67, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x00, - 0x06, - 0x65, - 0x00, - 0xB8, - 0x64, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x71, - 0x08, - 0x25, - 0x23, - 0x03, - 0x25, - 0x23, - 0x03, - 0x03, - 0xC4, - 0x23, - 0x0F, - 0x0E, - 0x25, - 0x7D, - 0x79, - 0x4A, - 0x25, - 0x0E, - 0x25, - 0x23, - 0x24, - 0x25, - 0x23, - 0x23, - 0x24, - 0x23, - 0x24, - 0x23, - 0x24, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x24, - 0x24, - 0x0F, - 0x03, - 0x24, - 0x25, - 0x25, - 0x03, - 0x24, - 0x0F, - 0x24, - 0x24, - 0xC4, - 0x23, - 0x24, - 0xC4, - 0x24, - 0x23, - 0x24, - 0x23, - 0x24, - 0x24, - 0x23, - 0x25, - 0x0F, - 0x03, - 0x23, - 0x24, - 0x24, - 0xC4, - 0x25, - 0x24, - 0x24, - 0x23, - 0x24, - 0x0F, - 0x23, - 0x03, - 0x0F, - 0x23, - 0x24, - 0x0F, - 0x25, - 0x23, - 0x23, - 0x23, - 0x24, - 0x25, - 0x24, - 0x03, - 0x23, - 0x03, - 0x23, - 0x23, - 0x23, - 0x0F, - 0x23, - 0x24, - 0x23, - 0x23, - 0x03, - 0x03, - 0x23, - 0x03, - 0x23, - 0x23, - 0x0F, - 0x23, - 0x03, - 0x24, - 0xC4, - 0x24, - 0x25, - 0x24, - 0x23, - 0x23, - 0x24, - 0x23, - 0x03, - 0x25, - 0x23, - 0x03, - 0x24, - 0x23, - 0x03, - 0x03, - 0x24, - 0x23, - 0x24, - 0x24, - 0x23, - 0x24, - 0x24, - 0x24, - 0x23, - 0xC4, - 0x0F, - 0x0F, - 0x24, - 0x23, - 0x0F, - 0x23, - 0x25, - 0x24, - 0x24, - 0x25, - 0x24, - 0x65, - 0x65, - 0x67, - 0x44, - 0x25, - 0x24, - 0x23, - 0x24, - 0x23, - 0x0F, - 0x23, - 0x25, - 0x24, - 0x24, - 0x24, - 0x0F, - 0x23, - 0x24, - 0xC4, - 0x03, - 0x23, - 0x03, - 0x25, - 0x03, - 0x24, - 0x24, - 0x24, - 0x25, - 0x25, - 0x0F, - 0x23, - 0x24, - 0x24, - 0x23, - 0x0F, - 0x24, - 0x23, - 0x04, - 0x24, - 0x00, - 0x03, - 0x03, - 0x24, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0x25, - 0x03, - 0x23, - 0x03, - 0x24, - 0x23, - 0x25, - 0x23, - 0x23, - 0x25, - 0xC4, - 0x24, - 0x23, - 0xC4, - 0x25, - 0x23, - 0x23, - 0x25, - 0x25, - 0x23, - 0x23, - 0x24, - 0x23, - 0x25, - 0x24, - 0x24, - 0x23, - 0xC4, - 0x23, - 0x23, - 0x23, - 0xD6, - 0x6C, - 0x7A, - 0x6F, - 0xC6, - 0xC6, - 0xF5, - 0x56, - 0xC6, - 0xC6, - 0xEF, - 0x56, - 0x64, - 0x62, - 0x47, - 0x23, - 0x23, - 0xC4, - 0x03, - 0x23, - 0x24, - 0x24, - 0x00, - 0x05, - 0x23, - 0x00, - 0x55, - 0x03, - 0x25, - 0x0D, - 0x73, - 0x73, - 0x0F, - 0x0E, - 0x08, - 0x6C, - 0x7A, - 0x7A, - 0x02, - 0x64, - 0x64, - 0x67, - 0x4B, - 0x4B, - 0x84, - 0x08, - 0x25, - 0x24, - 0x24, - 0x23, - 0x25, - 0x23, - 0x0E, - 0x25, - 0x03, - 0x23, - 0x23, - 0x23, - 0x0E, - 0xC4, - 0x23, - 0x25, - 0x23, - 0x23, - 0x24, - 0x25, - 0x23, - 0x23, - 0x24, - 0x03, - 0x25, - 0x03, - 0x23, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x25, - 0x0F, - 0xEF, - 0x73, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x71, - 0x08, - 0x25, - 0x0F, - 0x23, - 0x03, - 0x25, - 0x00, - 0x04, - 0x23, - 0x00, - 0x53, - 0x25, - 0xD6, - 0x03, - 0x92, - 0x62, - 0x4A, - 0x25, - 0xD6, - 0x25, - 0xC4, - 0x23, - 0xC4, - 0x25, - 0x23, - 0x24, - 0x0E, - 0x03, - 0x0E, - 0x03, - 0x23, - 0x03, - 0x23, - 0x25, - 0x25, - 0x23, - 0x23, - 0x23, - 0x03, - 0x25, - 0x24, - 0x0F, - 0x03, - 0x03, - 0x24, - 0xC4, - 0x23, - 0x23, - 0x24, - 0x25, - 0x23, - 0x23, - 0xC4, - 0x23, - 0x23, - 0x23, - 0x25, - 0x24, - 0x25, - 0xC4, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x24, - 0x23, - 0x03, - 0xC4, - 0x03, - 0x23, - 0x25, - 0x23, - 0xC4, - 0x25, - 0x23, - 0x25, - 0x23, - 0x23, - 0x23, - 0x0F, - 0x24, - 0x23, - 0x23, - 0x03, - 0xC4, - 0x24, - 0x24, - 0x25, - 0x03, - 0x00, - 0x04, - 0x23, - 0x01, - 0x03, - 0x01, - 0x25, - 0x05, - 0x23, - 0x00, - 0x0E, - 0x25, - 0x23, - 0x23, - 0x24, - 0x23, - 0x24, - 0x23, - 0x03, - 0x23, - 0x24, - 0x23, - 0x03, - 0x23, - 0x25, - 0x05, - 0x23, - 0x00, - 0x03, - 0x03, - 0x23, - 0x03, - 0x00, - 0x06, - 0x23, - 0x00, - 0x2D, - 0x03, - 0x23, - 0x25, - 0x0E, - 0x0E, - 0x74, - 0x64, - 0x65, - 0x67, - 0x0D, - 0x24, - 0x25, - 0x23, - 0x25, - 0x25, - 0x0E, - 0x03, - 0x24, - 0x23, - 0x03, - 0x23, - 0x23, - 0x0E, - 0x23, - 0x25, - 0x0E, - 0x24, - 0x23, - 0x03, - 0x03, - 0x23, - 0x23, - 0x24, - 0x03, - 0x0F, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x23, - 0x03, - 0x25, - 0x23, - 0x25, - 0x00, - 0x06, - 0x23, - 0x00, - 0x00, - 0x00, - 0x06, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x24, - 0x0F, - 0x04, - 0x25, - 0x00, - 0x24, - 0x24, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x23, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x03, - 0x03, - 0x0F, - 0x71, - 0x7D, - 0x88, - 0xC6, - 0xC6, - 0xC6, - 0xF7, - 0x55, - 0x58, - 0xC6, - 0xC6, - 0x6F, - 0x63, - 0x8E, - 0x04, - 0x25, - 0x00, - 0x49, - 0x23, - 0x25, - 0x25, - 0x25, - 0x24, - 0x23, - 0x25, - 0x0E, - 0x25, - 0x48, - 0x67, - 0x65, - 0x64, - 0x73, - 0x25, - 0xD6, - 0x9D, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x83, - 0xD6, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x0E, - 0x24, - 0x25, - 0x25, - 0x25, - 0x23, - 0x24, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x25, - 0x03, - 0x24, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x25, - 0x0E, - 0x25, - 0x0F, - 0x03, - 0x25, - 0x23, - 0x25, - 0x08, - 0x73, - 0x4B, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x00, - 0x06, - 0x65, - 0x00, - 0x2A, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x65, - 0x71, - 0x08, - 0x0F, - 0x25, - 0x03, - 0x0F, - 0x24, - 0x25, - 0x0F, - 0x25, - 0x24, - 0x25, - 0xD6, - 0x0F, - 0x92, - 0x63, - 0x92, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x0E, - 0x24, - 0x25, - 0xC4, - 0x23, - 0x25, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x24, - 0x04, - 0x25, - 0x00, - 0x91, - 0x0F, - 0x25, - 0x25, - 0x03, - 0x25, - 0x25, - 0x24, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x23, - 0x0F, - 0x0F, - 0x25, - 0x0E, - 0x24, - 0x25, - 0x25, - 0x25, - 0x24, - 0x03, - 0x25, - 0x03, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x25, - 0x24, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x25, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x0F, - 0x23, - 0x23, - 0x25, - 0x24, - 0x25, - 0x24, - 0x0F, - 0x25, - 0x25, - 0x23, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x25, - 0x24, - 0x0E, - 0x23, - 0x0F, - 0xC4, - 0x0F, - 0x25, - 0x25, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x03, - 0x25, - 0x23, - 0x25, - 0x25, - 0x23, - 0x25, - 0x25, - 0x25, - 0x24, - 0x0F, - 0x25, - 0x25, - 0x25, - 0x23, - 0x25, - 0x23, - 0x0F, - 0x08, - 0x71, - 0x63, - 0x65, - 0x64, - 0xEF, - 0x24, - 0x24, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x23, - 0x25, - 0x24, - 0x25, - 0x25, - 0x0F, - 0x25, - 0xC4, - 0x0E, - 0x25, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x25, - 0x24, - 0x24, - 0x25, - 0x03, - 0x0F, - 0x25, - 0x23, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x23, - 0x23, - 0x25, - 0x03, - 0x24, - 0x24, - 0x03, - 0x0F, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x24, - 0x03, - 0x23, - 0x03, - 0x03, - 0x23, - 0x03, - 0x23, - 0x23, - 0x0F, - 0x03, - 0x24, - 0xC4, - 0xC4, - 0x24, - 0x03, - 0xC4, - 0x03, - 0x03, - 0x23, - 0xC4, - 0x03, - 0x23, - 0x03, - 0x03, - 0x24, - 0x23, - 0x03, - 0xC4, - 0xC4, - 0x23, - 0x24, - 0xD6, - 0x08, - 0xD6, - 0x0B, - 0x58, - 0x55, - 0x5B, - 0xB8, - 0xC6, - 0xC6, - 0xC6, - 0x72, - 0x65, - 0xD6, - 0xC4, - 0x23, - 0xC4, - 0x00, - 0x04, - 0x03, - 0x00, - 0x48, - 0x23, - 0x23, - 0x03, - 0x23, - 0x23, - 0x08, - 0x64, - 0x65, - 0x65, - 0x64, - 0x63, - 0xEF, - 0x25, - 0x92, - 0x75, - 0xC6, - 0x76, - 0x67, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x62, - 0xEF, - 0x0F, - 0x03, - 0x23, - 0x03, - 0x23, - 0x03, - 0x03, - 0x03, - 0x23, - 0x24, - 0x23, - 0x0F, - 0x03, - 0x24, - 0x03, - 0x23, - 0x23, - 0x03, - 0x24, - 0xC4, - 0x23, - 0x25, - 0x03, - 0x03, - 0x24, - 0xC4, - 0x03, - 0x23, - 0xC4, - 0x03, - 0x23, - 0x03, - 0x03, - 0x24, - 0x23, - 0x23, - 0xC4, - 0x24, - 0x25, - 0x08, - 0x48, - 0x8B, - 0x62, - 0x65, - 0x65, - 0x65, - 0x64, - 0x04, - 0x65, - 0x00, - 0x2E, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x92, - 0xD6, - 0x25, - 0xC4, - 0x24, - 0xC4, - 0x23, - 0x03, - 0xC4, - 0x24, - 0x03, - 0x23, - 0xD6, - 0xD6, - 0x92, - 0x63, - 0x92, - 0x25, - 0xD6, - 0x24, - 0x25, - 0x03, - 0x0E, - 0x24, - 0xC4, - 0x03, - 0x23, - 0x03, - 0x24, - 0x03, - 0x24, - 0x23, - 0x23, - 0x23, - 0x25, - 0x04, - 0x03, - 0x00, - 0x56, - 0x24, - 0x03, - 0x03, - 0x03, - 0x23, - 0xC4, - 0x03, - 0x23, - 0x03, - 0x03, - 0x24, - 0x23, - 0x03, - 0x24, - 0x03, - 0x03, - 0x03, - 0x23, - 0x24, - 0x23, - 0x03, - 0x23, - 0x24, - 0x24, - 0x03, - 0x23, - 0x03, - 0x23, - 0x03, - 0x03, - 0x03, - 0x23, - 0x25, - 0x24, - 0x03, - 0x24, - 0x23, - 0x24, - 0x23, - 0xC4, - 0x03, - 0x03, - 0x03, - 0x23, - 0x23, - 0x03, - 0x24, - 0x03, - 0x24, - 0x03, - 0x03, - 0xC4, - 0x03, - 0xC4, - 0x24, - 0x24, - 0x03, - 0x24, - 0x23, - 0xC4, - 0x03, - 0x23, - 0x03, - 0x23, - 0x23, - 0x03, - 0x23, - 0x24, - 0x23, - 0x03, - 0x03, - 0xC4, - 0x23, - 0x03, - 0xC4, - 0x03, - 0x23, - 0x23, - 0x03, - 0xC4, - 0x23, - 0x24, - 0x23, - 0x24, - 0x03, - 0x03, - 0x04, - 0x23, - 0x00, - 0x19, - 0x03, - 0x23, - 0x08, - 0x92, - 0x63, - 0x65, - 0x64, - 0xEF, - 0x25, - 0x24, - 0xC4, - 0x03, - 0x23, - 0xC4, - 0x24, - 0x23, - 0x03, - 0x03, - 0x23, - 0x03, - 0x23, - 0x03, - 0x23, - 0x0F, - 0x24, - 0x00, - 0x04, - 0x03, - 0x00, - 0x10, - 0x24, - 0x23, - 0x23, - 0x25, - 0x03, - 0x25, - 0x03, - 0x23, - 0x03, - 0x03, - 0xC4, - 0x23, - 0x03, - 0x03, - 0x23, - 0x24, - 0x06, - 0x23, - 0x00, - 0x00, - 0x00, - 0x43, - 0x25, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x23, - 0x25, - 0xC4, - 0xC4, - 0x0F, - 0xC4, - 0x24, - 0x23, - 0x23, - 0x25, - 0x23, - 0x23, - 0x25, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x25, - 0x03, - 0x24, - 0x23, - 0xC4, - 0x23, - 0x23, - 0x23, - 0x25, - 0x87, - 0x02, - 0x89, - 0xC6, - 0xC6, - 0xC6, - 0x57, - 0xF6, - 0xB8, - 0xC6, - 0xE0, - 0x72, - 0x63, - 0x8E, - 0x23, - 0x24, - 0xC4, - 0x03, - 0x23, - 0x25, - 0x03, - 0x24, - 0x23, - 0x23, - 0x03, - 0x23, - 0xEF, - 0x64, - 0x64, - 0x64, - 0x66, - 0x70, - 0x84, - 0xD6, - 0x96, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x34, - 0x76, - 0x72, - 0x72, - 0x65, - 0x65, - 0x64, - 0x92, - 0x7D, - 0x08, - 0x24, - 0x25, - 0x23, - 0x0E, - 0x25, - 0x03, - 0x23, - 0x23, - 0x23, - 0x0E, - 0x23, - 0xC4, - 0x25, - 0xC4, - 0x23, - 0x03, - 0x25, - 0x03, - 0x23, - 0x03, - 0x03, - 0x25, - 0x25, - 0x23, - 0x25, - 0xC4, - 0x23, - 0x25, - 0x23, - 0x25, - 0x0E, - 0x03, - 0x03, - 0x23, - 0x03, - 0x23, - 0x24, - 0x0F, - 0x24, - 0xD6, - 0xEF, - 0x84, - 0x67, - 0x04, - 0x64, - 0x00, - 0xBC, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x92, - 0x0E, - 0xD6, - 0x24, - 0xC4, - 0x25, - 0x23, - 0x25, - 0x23, - 0x03, - 0x23, - 0x03, - 0x0E, - 0xD6, - 0x92, - 0x63, - 0x92, - 0x0F, - 0xD6, - 0x25, - 0x0F, - 0x25, - 0x03, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x25, - 0x23, - 0x23, - 0x23, - 0x03, - 0x25, - 0x03, - 0x25, - 0x0F, - 0x03, - 0x03, - 0x23, - 0xC4, - 0x24, - 0x24, - 0x03, - 0x23, - 0x0E, - 0xC4, - 0x23, - 0x23, - 0x23, - 0x25, - 0x03, - 0x25, - 0xC4, - 0x23, - 0x25, - 0x23, - 0x25, - 0xC4, - 0x25, - 0x23, - 0x25, - 0x23, - 0x24, - 0x23, - 0x25, - 0x23, - 0x03, - 0xC4, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x23, - 0x23, - 0x03, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x03, - 0x23, - 0x23, - 0x03, - 0x23, - 0x03, - 0x25, - 0x0E, - 0x23, - 0xC4, - 0xC4, - 0x23, - 0x25, - 0x23, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x25, - 0x23, - 0x23, - 0x23, - 0x03, - 0xC4, - 0x25, - 0x23, - 0x23, - 0x23, - 0xC4, - 0x23, - 0x03, - 0x23, - 0x03, - 0x23, - 0xC4, - 0x03, - 0x23, - 0x24, - 0x23, - 0x25, - 0x08, - 0x4A, - 0x64, - 0x64, - 0x4B, - 0xD6, - 0x24, - 0x0F, - 0x23, - 0x23, - 0x25, - 0x23, - 0x0E, - 0x25, - 0x0E, - 0x25, - 0x0E, - 0x23, - 0x03, - 0x23, - 0xC4, - 0x0E, - 0x23, - 0x25, - 0x0E, - 0x03, - 0xC4, - 0x25, - 0x25, - 0x23, - 0x23, - 0x25, - 0x03, - 0x03, - 0x25, - 0xC4, - 0x23, - 0x25, - 0xC4, - 0x23, - 0x25, - 0x25, - 0x23, - 0x25, - 0xC4, - 0x05, - 0x23, - 0x00, - 0x00, - 0x00, - 0x43, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x25, - 0x0F, - 0x0F, - 0x0F, - 0x03, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x03, - 0x03, - 0x03, - 0x83, - 0x02, - 0x72, - 0xC6, - 0xC6, - 0xC6, - 0x58, - 0xC6, - 0xF6, - 0xDF, - 0x55, - 0x63, - 0x64, - 0x8E, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x23, - 0x25, - 0x0F, - 0x0F, - 0x0F, - 0x23, - 0x0F, - 0x08, - 0x8B, - 0x65, - 0x65, - 0x65, - 0x46, - 0xC6, - 0x46, - 0x23, - 0x48, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x15, - 0xE0, - 0xC6, - 0x72, - 0x63, - 0x83, - 0x64, - 0x7A, - 0x02, - 0x25, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x23, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x5B, - 0x03, - 0x23, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x24, - 0x0F, - 0x25, - 0x0F, - 0x03, - 0x0F, - 0x0F, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x23, - 0x0F, - 0xEF, - 0x73, - 0x64, - 0x63, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x4A, - 0x25, - 0xD6, - 0x25, - 0x0F, - 0x0F, - 0x23, - 0x0F, - 0x24, - 0x25, - 0x23, - 0x25, - 0x24, - 0x08, - 0x92, - 0x62, - 0x92, - 0x25, - 0xD6, - 0x0F, - 0x25, - 0x25, - 0x24, - 0x25, - 0x23, - 0x25, - 0x24, - 0x0F, - 0x03, - 0x0F, - 0x25, - 0x03, - 0x0F, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x03, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x23, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0E, - 0x0F, - 0x25, - 0x0F, - 0x24, - 0x25, - 0x25, - 0x24, - 0x00, - 0x04, - 0x25, - 0x00, - 0x18, - 0x0E, - 0x03, - 0x23, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x24, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x24, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x24, - 0x25, - 0x25, - 0x25, - 0x08, - 0x0F, - 0x00, - 0x19, - 0x24, - 0x03, - 0x0F, - 0x0F, - 0x25, - 0x24, - 0x03, - 0x65, - 0x65, - 0x63, - 0x83, - 0x08, - 0x24, - 0x0F, - 0x03, - 0x0E, - 0x24, - 0x25, - 0x0F, - 0x25, - 0x25, - 0x24, - 0x25, - 0x0F, - 0x25, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x1C, - 0x23, - 0x25, - 0x0F, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x0F, - 0x03, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x23, - 0x25, - 0x0F, - 0x0F, - 0x25, - 0x25, - 0x23, - 0x25, - 0x24, - 0x0F, - 0x0F, - 0x25, - 0x0F, - 0x25, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x0F, - 0x03, - 0x23, - 0x25, - 0x25, - 0x23, - 0x03, - 0x23, - 0x23, - 0x03, - 0x03, - 0x0F, - 0x23, - 0x23, - 0x25, - 0x23, - 0x23, - 0x03, - 0x0F, - 0x23, - 0x23, - 0x25, - 0x23, - 0x03, - 0x25, - 0x25, - 0x23, - 0x24, - 0x04, - 0x23, - 0x00, - 0x23, - 0x44, - 0x67, - 0x65, - 0x4C, - 0xC6, - 0x57, - 0xF6, - 0xC6, - 0xB3, - 0xF4, - 0x0C, - 0x8E, - 0x71, - 0xD6, - 0x23, - 0x23, - 0x23, - 0x03, - 0x23, - 0x25, - 0x24, - 0x23, - 0x23, - 0x24, - 0xEF, - 0x83, - 0x64, - 0x64, - 0x64, - 0x72, - 0xB3, - 0xC6, - 0xC6, - 0x56, - 0x1B, - 0x00, - 0x07, - 0xC6, - 0x00, - 0xA3, - 0x76, - 0x73, - 0x63, - 0x7A, - 0x7B, - 0x71, - 0x25, - 0x25, - 0x23, - 0x24, - 0x25, - 0x03, - 0x23, - 0x23, - 0x23, - 0x0E, - 0x03, - 0x24, - 0x25, - 0x23, - 0x23, - 0x25, - 0x0F, - 0x23, - 0x23, - 0x0F, - 0x24, - 0x25, - 0x24, - 0x23, - 0x25, - 0x23, - 0x24, - 0x25, - 0x23, - 0x24, - 0x25, - 0x24, - 0x23, - 0x23, - 0x0E, - 0x23, - 0x23, - 0x25, - 0x23, - 0x03, - 0x25, - 0x23, - 0x23, - 0x25, - 0x08, - 0x48, - 0x83, - 0x62, - 0x65, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x63, - 0x4A, - 0x47, - 0x08, - 0x25, - 0x24, - 0x23, - 0x23, - 0x25, - 0x23, - 0x25, - 0xC4, - 0x23, - 0x0F, - 0x08, - 0x71, - 0x63, - 0x8B, - 0x25, - 0xD6, - 0x25, - 0x23, - 0x25, - 0x23, - 0x03, - 0x25, - 0x23, - 0x23, - 0x23, - 0x03, - 0x25, - 0x24, - 0x25, - 0x03, - 0x24, - 0x03, - 0x23, - 0x23, - 0x23, - 0x24, - 0x0F, - 0x23, - 0x25, - 0x24, - 0x23, - 0x23, - 0x23, - 0x03, - 0x25, - 0x25, - 0x03, - 0x23, - 0x25, - 0x23, - 0x03, - 0x23, - 0x25, - 0x25, - 0x25, - 0x23, - 0x03, - 0x23, - 0x03, - 0x24, - 0x24, - 0x23, - 0x25, - 0x24, - 0x24, - 0x0F, - 0x23, - 0x25, - 0x23, - 0x23, - 0x23, - 0x0F, - 0x0F, - 0x23, - 0x23, - 0x25, - 0x24, - 0x25, - 0x25, - 0x25, - 0x03, - 0x23, - 0x24, - 0xC4, - 0x23, - 0x24, - 0x03, - 0x0F, - 0x00, - 0x04, - 0x23, - 0x00, - 0x0E, - 0x03, - 0x23, - 0x23, - 0x03, - 0x23, - 0x25, - 0x23, - 0x03, - 0x23, - 0x24, - 0x23, - 0x03, - 0x23, - 0x03, - 0x05, - 0x23, - 0x00, - 0x03, - 0x24, - 0x23, - 0x24, - 0x00, - 0x04, - 0x23, - 0x00, - 0x2F, - 0x0E, - 0x8E, - 0x64, - 0x65, - 0x63, - 0x73, - 0x08, - 0x23, - 0xC4, - 0x0F, - 0x03, - 0x23, - 0x23, - 0x03, - 0x23, - 0x03, - 0x25, - 0x24, - 0x25, - 0x25, - 0x23, - 0x03, - 0x23, - 0x0E, - 0x24, - 0x24, - 0x03, - 0x0F, - 0x24, - 0x23, - 0x03, - 0x25, - 0x23, - 0x23, - 0x25, - 0x24, - 0x0F, - 0x03, - 0x23, - 0x23, - 0x25, - 0x23, - 0x24, - 0x03, - 0x24, - 0x23, - 0x25, - 0x00, - 0x06, - 0x23, - 0x00, - 0x00, - 0x1F, - 0xDF, - 0x00, - 0x0D, - 0x08, - 0x25, - 0x48, - 0x62, - 0x6B, - 0x76, - 0xD6, - 0x54, - 0xC6, - 0xE0, - 0x75, - 0x66, - 0x0E, - 0x00, - 0x07, - 0xEE, - 0x00, - 0x0B, - 0xD6, - 0x0F, - 0x0F, - 0x0E, - 0x08, - 0x67, - 0x65, - 0x64, - 0x64, - 0x65, - 0x4C, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x03, - 0x1F, - 0x89, - 0xF3, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x0C, - 0x5C, - 0xEE, - 0x71, - 0x6C, - 0x02, - 0x7A, - 0x48, - 0x25, - 0x25, - 0x23, - 0x25, - 0xEF, - 0x20, - 0xEE, - 0x07, - 0xDF, - 0x00, - 0x2C, - 0xB2, - 0xEF, - 0x50, - 0x84, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x79, - 0x02, - 0x74, - 0x24, - 0x25, - 0x0E, - 0x0F, - 0x0E, - 0x0E, - 0x0F, - 0x0E, - 0x24, - 0x41, - 0x24, - 0x08, - 0x71, - 0x64, - 0x8B, - 0x8E, - 0x24, - 0x0F, - 0x0E, - 0x04, - 0x25, - 0x00, - 0x04, - 0x41, - 0x25, - 0x25, - 0x41, - 0x04, - 0x25, - 0x00, - 0x0B, - 0x24, - 0x24, - 0x25, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x25, - 0x25, - 0x24, - 0x00, - 0x04, - 0x25, - 0x01, - 0x41, - 0x05, - 0x25, - 0x00, - 0x04, - 0x24, - 0x25, - 0x41, - 0x24, - 0x08, - 0x25, - 0x00, - 0x0A, - 0x24, - 0x41, - 0x24, - 0x25, - 0x25, - 0x24, - 0x24, - 0x23, - 0x23, - 0x24, - 0x07, - 0x47, - 0x00, - 0x2A, - 0x23, - 0x8E, - 0x24, - 0x25, - 0x25, - 0x24, - 0x41, - 0x25, - 0x24, - 0x41, - 0x25, - 0x25, - 0x24, - 0x24, - 0x25, - 0x24, - 0x41, - 0x25, - 0x24, - 0x25, - 0x25, - 0x25, - 0x41, - 0x25, - 0x25, - 0x24, - 0x25, - 0x25, - 0x24, - 0x25, - 0x24, - 0x25, - 0x24, - 0x24, - 0x0F, - 0x25, - 0x92, - 0x63, - 0x65, - 0x64, - 0x85, - 0xEF, - 0x2F, - 0xDF, - 0x00, - 0x00, - 0x1F, - 0x63, - 0x00, - 0x1E, - 0x62, - 0x48, - 0xD6, - 0x8B, - 0x62, - 0x65, - 0x8B, - 0x6E, - 0x4B, - 0x66, - 0x7B, - 0x62, - 0x44, - 0x6A, - 0x63, - 0x63, - 0x64, - 0x64, - 0x63, - 0x62, - 0x73, - 0x25, - 0x0F, - 0x23, - 0x73, - 0x64, - 0x7A, - 0x7A, - 0x7A, - 0x4C, - 0x04, - 0xC6, - 0x00, - 0x03, - 0xB3, - 0x72, - 0x75, - 0x00, - 0x05, - 0xC6, - 0x00, - 0x0D, - 0x6A, - 0x02, - 0x6E, - 0x6B, - 0x7A, - 0x7A, - 0x7A, - 0x67, - 0xEF, - 0x23, - 0x23, - 0x25, - 0x84, - 0x00, - 0x09, - 0x63, - 0x00, - 0x08, - 0x64, - 0x64, - 0x63, - 0x63, - 0x64, - 0x63, - 0x63, - 0x64, - 0x04, - 0x63, - 0x01, - 0x64, - 0x04, - 0x79, - 0x00, - 0x0A, - 0x7A, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x7A, - 0x79, - 0x79, - 0x63, - 0x63, - 0x0A, - 0x7A, - 0x00, - 0x07, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x00, - 0x0A, - 0x7A, - 0x00, - 0x1A, - 0x79, - 0x79, - 0x63, - 0x7A, - 0x7A, - 0x79, - 0x7A, - 0x7A, - 0x79, - 0x63, - 0x63, - 0x79, - 0x79, - 0x7A, - 0x7A, - 0x7A, - 0x79, - 0x79, - 0x64, - 0x63, - 0x63, - 0x64, - 0x79, - 0x79, - 0x7A, - 0x7A, - 0x04, - 0x79, - 0x00, - 0x0A, - 0x64, - 0x7A, - 0x79, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x79, - 0x63, - 0x63, - 0x04, - 0x79, - 0x00, - 0x07, - 0x7A, - 0x79, - 0x63, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x00, - 0x04, - 0x79, - 0x01, - 0x7A, - 0x04, - 0x63, - 0x00, - 0x03, - 0x79, - 0x79, - 0x7A, - 0x00, - 0x04, - 0x79, - 0x00, - 0x0C, - 0x63, - 0x79, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x79, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x05, - 0x7A, - 0x01, - 0x79, - 0x04, - 0x63, - 0x00, - 0x0B, - 0x79, - 0x79, - 0x79, - 0x7A, - 0x79, - 0x63, - 0x63, - 0x63, - 0x79, - 0x79, - 0x7A, - 0x00, - 0x05, - 0x79, - 0x00, - 0x0B, - 0x63, - 0x64, - 0x79, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x64, - 0x63, - 0x79, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x0D, - 0x65, - 0x7A, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x79, - 0x79, - 0x79, - 0x63, - 0x63, - 0x63, - 0x00, - 0x0D, - 0x79, - 0x01, - 0x63, - 0x05, - 0x79, - 0x01, - 0x63, - 0x05, - 0x79, - 0x0A, - 0x63, - 0x03, - 0x79, - 0x00, - 0x00, - 0x00, - 0x13, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x04, - 0x65, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x1D, - 0x65, - 0x84, - 0xD6, - 0xD6, - 0x44, - 0x64, - 0x92, - 0x62, - 0x63, - 0x8B, - 0x71, - 0x8E, - 0x25, - 0x73, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x8B, - 0xD6, - 0x0F, - 0x0F, - 0x92, - 0x65, - 0x7A, - 0x02, - 0x88, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x2B, - 0xE0, - 0x70, - 0xC6, - 0xC6, - 0xC6, - 0x46, - 0x67, - 0x6A, - 0x88, - 0xC6, - 0xC6, - 0x70, - 0x64, - 0x64, - 0x64, - 0x73, - 0x25, - 0x25, - 0xD6, - 0x84, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x00, - 0x0B, - 0x02, - 0x00, - 0x03, - 0x68, - 0x68, - 0x7A, - 0x00, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x68, - 0x02, - 0x68, - 0x65, - 0x68, - 0x68, - 0x09, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x68, - 0x00, - 0x06, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x65, - 0x68, - 0x68, - 0x68, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x07, - 0x02, - 0x01, - 0x65, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x02, - 0x7A, - 0x06, - 0x02, - 0x00, - 0x04, - 0x68, - 0x68, - 0x65, - 0x7A, - 0x0B, - 0x02, - 0x01, - 0x68, - 0x05, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x68, - 0x64, - 0x04, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x68, - 0x68, - 0x68, - 0x0D, - 0x02, - 0x00, - 0x05, - 0x68, - 0x68, - 0x68, - 0x02, - 0x68, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x0B, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x7A, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x68, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x05, - 0x64, - 0x65, - 0x02, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x87, - 0xEF, - 0x84, - 0x64, - 0x73, - 0x74, - 0x8E, - 0xD6, - 0x25, - 0x0F, - 0x08, - 0x4B, - 0x65, - 0x02, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x73, - 0xFB, - 0x08, - 0x48, - 0x62, - 0x7A, - 0x02, - 0x00, - 0x08, - 0xC6, - 0x00, - 0x06, - 0x72, - 0xB3, - 0xC6, - 0x4C, - 0x64, - 0x75, - 0x04, - 0xC6, - 0x00, - 0x20, - 0x76, - 0x65, - 0x7D, - 0x64, - 0x87, - 0x03, - 0x03, - 0x08, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x7A, - 0x0C, - 0x02, - 0x01, - 0x68, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x68, - 0x7A, - 0x0F, - 0x02, - 0x01, - 0x68, - 0x0E, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x65, - 0x68, - 0x00, - 0x07, - 0x02, - 0x01, - 0x7A, - 0x0A, - 0x02, - 0x01, - 0x7A, - 0x13, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x1C, - 0x02, - 0x01, - 0x7A, - 0x05, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x68, - 0x0C, - 0x02, - 0x01, - 0x68, - 0x15, - 0x02, - 0x01, - 0x68, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x00, - 0x0C, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x07, - 0x02, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x0E, - 0x02, - 0x02, - 0x73, - 0x25, - 0x03, - 0xB2, - 0x84, - 0x9D, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x3B, - 0x67, - 0x65, - 0x84, - 0x84, - 0x4B, - 0x64, - 0x6E, - 0x4C, - 0xC6, - 0xC6, - 0xC6, - 0x46, - 0xF3, - 0xB3, - 0x88, - 0x4C, - 0x88, - 0x70, - 0xC6, - 0xC6, - 0xE0, - 0xC6, - 0xC6, - 0xC6, - 0x75, - 0x65, - 0x02, - 0x67, - 0x08, - 0x03, - 0x23, - 0x48, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x00, - 0x08, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x7A, - 0x00, - 0x09, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x10, - 0x02, - 0x01, - 0x68, - 0x07, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x05, - 0x02, - 0x04, - 0x68, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x0C, - 0x02, - 0x00, - 0x03, - 0x68, - 0x68, - 0x68, - 0x00, - 0x0D, - 0x02, - 0x01, - 0x7A, - 0x07, - 0x02, - 0x01, - 0x68, - 0x0E, - 0x02, - 0x00, - 0x04, - 0x68, - 0x02, - 0x68, - 0x68, - 0x09, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x0E, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x04, - 0x02, - 0x00, - 0x03, - 0x68, - 0x02, - 0x68, - 0x00, - 0x06, - 0x02, - 0x01, - 0x68, - 0x13, - 0x02, - 0x01, - 0x68, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x65, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x08, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x07, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x00, - 0x04, - 0x64, - 0x00, - 0x2B, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x84, - 0x84, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x7D, - 0x65, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x72, - 0x75, - 0x4C, - 0x88, - 0x4C, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x0E, - 0xB3, - 0x72, - 0x02, - 0x7D, - 0x83, - 0xD6, - 0xC4, - 0x25, - 0x84, - 0x64, - 0x64, - 0x64, - 0x02, - 0x02, - 0x05, - 0x64, - 0x00, - 0x08, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x01, - 0x65, - 0x01, - 0x7A, - 0x0B, - 0x02, - 0x01, - 0x68, - 0x1E, - 0x02, - 0x01, - 0x68, - 0x07, - 0x02, - 0x01, - 0x68, - 0x87, - 0x02, - 0x01, - 0x68, - 0x0A, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x00, - 0x17, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x1C, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x7D, - 0x04, - 0x64, - 0x00, - 0x0B, - 0x6A, - 0x6E, - 0x72, - 0x72, - 0x76, - 0x4C, - 0xC6, - 0xC6, - 0x46, - 0x88, - 0x75, - 0x00, - 0x06, - 0xC6, - 0x00, - 0x21, - 0xB3, - 0x72, - 0x64, - 0x02, - 0x83, - 0x08, - 0x0E, - 0x25, - 0x73, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0xC5, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x02, - 0x02, - 0x04, - 0x65, - 0x00, - 0x1C, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x83, - 0x73, - 0x8E, - 0x85, - 0x7F, - 0x7D, - 0x76, - 0x07, - 0xC6, - 0x00, - 0x05, - 0x75, - 0xC6, - 0xC6, - 0x6E, - 0x76, - 0x00, - 0x04, - 0xC6, - 0x00, - 0x21, - 0x00, - 0x76, - 0x66, - 0x02, - 0x62, - 0xEF, - 0x03, - 0x25, - 0xEF, - 0x62, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x0E, - 0x02, - 0x01, - 0x7A, - 0x12, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x7B, - 0x02, - 0x01, - 0x7A, - 0x0C, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x18, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x05, - 0x64, - 0x01, - 0x02, - 0x01, - 0x65, - 0x04, - 0x64, - 0x00, - 0x15, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0xEF, - 0xD6, - 0x25, - 0x73, - 0x64, - 0x64, - 0x66, - 0x4C, - 0x00, - 0x07, - 0xC6, - 0x00, - 0x13, - 0x6E, - 0xC6, - 0xC6, - 0xC6, - 0x70, - 0x6A, - 0x88, - 0xC6, - 0xB3, - 0xB3, - 0x75, - 0x65, - 0x65, - 0x64, - 0x71, - 0x24, - 0x0F, - 0xD6, - 0x83, - 0x00, - 0x06, - 0x64, - 0x00, - 0x0F, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x00, - 0x07, - 0x7A, - 0x01, - 0x68, - 0x06, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x7A, - 0x7A, - 0x00, - 0x0E, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x07, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x6C, - 0x02, - 0x00, - 0x03, - 0x7A, - 0x7A, - 0x7A, - 0x00, - 0x0A, - 0x02, - 0x00, - 0x0E, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x04, - 0x7A, - 0x00, - 0x16, - 0x02, - 0x68, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x64, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x1D, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x00, - 0x05, - 0x65, - 0x00, - 0x0B, - 0x64, - 0x64, - 0x73, - 0x25, - 0x24, - 0x0F, - 0x92, - 0x65, - 0x64, - 0x65, - 0x75, - 0x00, - 0x06, - 0xC6, - 0x01, - 0x88, - 0x01, - 0x72, - 0x04, - 0xC6, - 0x00, - 0x16, - 0x72, - 0x66, - 0x82, - 0x88, - 0x4C, - 0x6B, - 0x64, - 0x64, - 0x63, - 0x48, - 0x03, - 0x23, - 0x0E, - 0x84, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x09, - 0x65, - 0x00, - 0x05, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x65, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x0E, - 0x65, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x64, - 0x65, - 0x65, - 0x65, - 0x0B, - 0x7A, - 0x00, - 0x03, - 0x02, - 0x02, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x0F, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x7A, - 0x00, - 0x6C, - 0x02, - 0x06, - 0x7A, - 0x07, - 0x02, - 0x0B, - 0x7A, - 0x00, - 0x14, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x07, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x04, - 0x64, - 0x00, - 0x0C, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x06, - 0x64, - 0x00, - 0x1C, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x73, - 0x25, - 0x23, - 0x23, - 0x48, - 0x63, - 0x64, - 0x65, - 0x65, - 0x72, - 0xB3, - 0x04, - 0xC6, - 0x01, - 0x6F, - 0x01, - 0x75, - 0x05, - 0xC6, - 0x00, - 0x1E, - 0x72, - 0x7B, - 0x02, - 0x7B, - 0x64, - 0x64, - 0x64, - 0x83, - 0x08, - 0x23, - 0x0E, - 0xD6, - 0x83, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x04, - 0x7A, - 0x00, - 0x08, - 0x65, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x07, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x64, - 0x00, - 0x05, - 0x7A, - 0x08, - 0x02, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x77, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x7A, - 0x68, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x64, - 0x7A, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x00, - 0x00, - 0x00, - 0x43, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x65, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x02, - 0x65, - 0x65, - 0x02, - 0x64, - 0x84, - 0x41, - 0x25, - 0x0E, - 0x0F, - 0x84, - 0x63, - 0x65, - 0x65, - 0x65, - 0x76, - 0xB3, - 0xC6, - 0xC6, - 0x4C, - 0x66, - 0x00, - 0x07, - 0xC6, - 0x00, - 0x14, - 0x82, - 0x7A, - 0x7A, - 0x64, - 0x84, - 0x73, - 0x08, - 0x24, - 0x0F, - 0x25, - 0xEF, - 0x67, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x02, - 0x65, - 0x02, - 0x04, - 0x65, - 0x00, - 0x0B, - 0x64, - 0x65, - 0x65, - 0x65, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x0D, - 0x02, - 0x06, - 0x7A, - 0x0C, - 0x02, - 0x01, - 0x7A, - 0x7E, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x0A, - 0x02, - 0x00, - 0x08, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x7A, - 0x7A, - 0x05, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x04, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x00, - 0x00, - 0x00, - 0x03, - 0x65, - 0x65, - 0x64, - 0x00, - 0x04, - 0x65, - 0x00, - 0x13, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x00, - 0x05, - 0x65, - 0x00, - 0x24, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0xEF, - 0x0F, - 0x23, - 0x03, - 0xD6, - 0x48, - 0x64, - 0x02, - 0x64, - 0x6F, - 0xC6, - 0xC6, - 0xC6, - 0x6F, - 0x64, - 0x07, - 0xC6, - 0x00, - 0x0F, - 0x88, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x73, - 0xEF, - 0xD6, - 0xEF, - 0x6C, - 0x65, - 0x64, - 0x64, - 0x02, - 0x00, - 0x04, - 0x65, - 0x00, - 0x10, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x10, - 0x02, - 0x01, - 0x7A, - 0xA1, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x65, - 0x07, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x00, - 0x44, - 0x02, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x6C, - 0xEF, - 0x03, - 0x23, - 0x03, - 0x25, - 0x73, - 0x64, - 0x64, - 0x65, - 0x72, - 0x00, - 0x75, - 0x65, - 0x82, - 0xB3, - 0x06, - 0xC6, - 0x00, - 0x23, - 0x6B, - 0x64, - 0x9D, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x4B, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x00, - 0x10, - 0x02, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x01, - 0x7A, - 0x10, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x75, - 0x02, - 0x01, - 0x7A, - 0x0F, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x04, - 0x7A, - 0x01, - 0x64, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x08, - 0x02, - 0x00, - 0x05, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x02, - 0x65, - 0x00, - 0x04, - 0x64, - 0x00, - 0x46, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x67, - 0x73, - 0xD6, - 0x0F, - 0x0F, - 0xEF, - 0x62, - 0x64, - 0x64, - 0x65, - 0x66, - 0x65, - 0x65, - 0x70, - 0xC6, - 0xB3, - 0xC6, - 0x76, - 0x6D, - 0x6B, - 0x65, - 0x64, - 0x64, - 0x64, - 0x48, - 0x63, - 0x65, - 0x65, - 0x02, - 0x64, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x10, - 0x02, - 0x01, - 0x68, - 0x09, - 0x02, - 0x01, - 0x65, - 0x0F, - 0x02, - 0x01, - 0x68, - 0x72, - 0x02, - 0x01, - 0x68, - 0x01, - 0x68, - 0x05, - 0x02, - 0x01, - 0x68, - 0x16, - 0x02, - 0x00, - 0x04, - 0x7A, - 0x02, - 0x02, - 0x68, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x0B, - 0x02, - 0x02, - 0x68, - 0x00, - 0x00, - 0x00, - 0x68, - 0x65, - 0x02, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x02, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x02, - 0x64, - 0x02, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x7A, - 0x7A, - 0x73, - 0x24, - 0x23, - 0xD6, - 0x83, - 0x65, - 0x02, - 0x65, - 0x64, - 0x64, - 0x64, - 0x4B, - 0x6A, - 0x75, - 0x82, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x02, - 0x67, - 0x08, - 0x87, - 0x7A, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x7A, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x65, - 0x64, - 0x64, - 0x02, - 0x65, - 0x65, - 0x02, - 0x7A, - 0x05, - 0x02, - 0x01, - 0x7A, - 0x01, - 0x7A, - 0x06, - 0x02, - 0x01, - 0x7A, - 0x0E, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x7A, - 0x7A, - 0x87, - 0x02, - 0x01, - 0x68, - 0x16, - 0x02, - 0x01, - 0x7A, - 0x09, - 0x02, - 0x01, - 0x7A, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x09, - 0x65, - 0x00, - 0x14, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x65, - 0x65, - 0x7B, - 0x02, - 0x02, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x07, - 0x65, - 0x00, - 0x03, - 0x7B, - 0x02, - 0x7B, - 0x00, - 0x04, - 0x65, - 0x00, - 0x34, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x02, - 0x08, - 0x0E, - 0x23, - 0xD6, - 0x83, - 0x6A, - 0x6A, - 0x92, - 0x65, - 0x7B, - 0x7E, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x62, - 0x87, - 0x25, - 0x0F, - 0x84, - 0x02, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7A, - 0x08, - 0x65, - 0x01, - 0x7B, - 0x05, - 0x02, - 0x01, - 0x7B, - 0x01, - 0x7B, - 0x06, - 0x02, - 0x01, - 0x7B, - 0x0E, - 0x02, - 0x01, - 0x7B, - 0x04, - 0x65, - 0x01, - 0x7B, - 0x9E, - 0x02, - 0x01, - 0x7B, - 0x09, - 0x02, - 0x01, - 0x7B, - 0x0D, - 0x02, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x01, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x7A, - 0x02, - 0x00, - 0x00, - 0x09, - 0x65, - 0x00, - 0x14, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x65, - 0x65, - 0x7B, - 0x02, - 0x02, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x07, - 0x65, - 0x00, - 0x03, - 0x7B, - 0x02, - 0x7B, - 0x00, - 0x04, - 0x65, - 0x00, - 0x34, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x02, - 0x7B, - 0x02, - 0x02, - 0x08, - 0x0E, - 0x23, - 0xD6, - 0x83, - 0x6A, - 0x6A, - 0x71, - 0x65, - 0x7B, - 0x7E, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x62, - 0x87, - 0x25, - 0x0F, - 0x84, - 0x02, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7B, - 0x65, - 0x7B, - 0x02, - 0x7A, - 0x08, - 0x65, - 0x01, - 0x7B, - 0x05, - 0x02, - 0x01, - 0x7B, - 0x01, - 0x7B, - 0x06, - 0x02, - 0x01, - 0x7B, - 0x0E, - 0x02, - 0x01, - 0x7B, - 0x04, - 0x65, - 0x01, - 0x7B, - 0x25, - 0x02, - 0x01, - 0x7D, - 0x0F, - 0x02, - 0x01, - 0x7A, - 0x2B, - 0x02, - 0x01, - 0x7D, - 0x06, - 0x02, - 0x01, - 0x7B, - 0x01, - 0x7A, - 0x34, - 0x02, - 0x01, - 0x7B, - 0x09, - 0x02, - 0x01, - 0x7B, - 0x0D, - 0x02, - 0x00, - 0x00, - 0x0E, - 0x50, - 0x29, - 0xB2, - 0x00, - 0x1A, - 0x4E, - 0xC5, - 0x24, - 0x23, - 0x03, - 0xD6, - 0x08, - 0xE1, - 0x03, - 0xC2, - 0xB2, - 0x02, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x64, - 0x73, - 0x71, - 0x71, - 0xDF, - 0x0F, - 0x03, - 0x0F, - 0xD6, - 0xB7, - 0x05, - 0xB2, - 0x56, - 0x03, - 0x00, - 0x17, - 0x02, - 0x02, - 0x02, - 0x66, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x81, - 0x50, - 0x1D, - 0x03, - 0xB1, - 0x00, - 0x24, - 0x03, - 0x00, - 0x0F, - 0xD6, - 0xD6, - 0x03, - 0xD6, - 0x85, - 0x6A, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x7A, - 0x96, - 0x4F, - 0x4E, - 0x4E, - 0x00, - 0x4A, - 0xB7, - 0x00, - 0x00, - 0x38, - 0x03, - 0x00, - 0x18, - 0x50, - 0x24, - 0x24, - 0x25, - 0x24, - 0x41, - 0x61, - 0x03, - 0x03, - 0xB2, - 0x87, - 0x02, - 0x64, - 0x64, - 0x84, - 0x08, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x0E, - 0x03, - 0x24, - 0x50, - 0x5F, - 0x03, - 0x00, - 0x1A, - 0xC3, - 0x96, - 0x91, - 0x65, - 0x65, - 0x64, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x4A, - 0x7C, - 0x83, - 0x4F, - 0x48, - 0x03, - 0x03, - 0xC5, - 0xD6, - 0xC4, - 0x18, - 0x03, - 0x00, - 0x10, - 0xC4, - 0xC3, - 0x03, - 0xC5, - 0x03, - 0x03, - 0xB7, - 0x85, - 0x6C, - 0x02, - 0x02, - 0x64, - 0x65, - 0x64, - 0x86, - 0x50, - 0x4F, - 0x03, - 0x00, - 0x00, - 0x39, - 0x03, - 0x00, - 0x17, - 0x40, - 0x36, - 0xC4, - 0x36, - 0xB2, - 0x03, - 0x03, - 0x03, - 0x61, - 0x25, - 0x08, - 0x50, - 0xEE, - 0xD6, - 0x03, - 0x03, - 0x0E, - 0x03, - 0x24, - 0x23, - 0x24, - 0x1F, - 0xC3, - 0x00, - 0x61, - 0x03, - 0x00, - 0x1A, - 0x4F, - 0x7A, - 0x02, - 0x96, - 0x9C, - 0x02, - 0x02, - 0x7A, - 0x63, - 0x64, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x66, - 0x65, - 0x6F, - 0x70, - 0x86, - 0x21, - 0xC4, - 0x05, - 0x03, - 0x00, - 0x1E, - 0xC4, - 0xC3, - 0xC3, - 0xC3, - 0xD6, - 0xC2, - 0xC3, - 0xC3, - 0xC2, - 0xC3, - 0xD6, - 0xC3, - 0xC4, - 0xC4, - 0x03, - 0x03, - 0x03, - 0xB7, - 0x96, - 0x86, - 0x70, - 0x7C, - 0x02, - 0x7B, - 0x63, - 0x02, - 0x02, - 0x8A, - 0x96, - 0x50, - 0x52, - 0x03, - 0x00, - 0x00, - 0x3A, - 0x03, - 0x00, - 0x03, - 0x61, - 0x61, - 0x61, - 0x00, - 0x04, - 0x03, - 0x00, - 0x0E, - 0x17, - 0x24, - 0x23, - 0x23, - 0x25, - 0x25, - 0x03, - 0x41, - 0x20, - 0xC1, - 0xC1, - 0x1F, - 0x40, - 0xB7, - 0x68, - 0x03, - 0x00, - 0x0D, - 0x4E, - 0x96, - 0x85, - 0x6B, - 0x66, - 0x65, - 0x7C, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x0B, - 0x65, - 0x66, - 0x02, - 0x64, - 0x6B, - 0x6E, - 0x86, - 0x86, - 0x86, - 0x96, - 0x86, - 0x00, - 0x05, - 0x96, - 0x04, - 0x86, - 0x00, - 0x0D, - 0x6F, - 0x6B, - 0x7A, - 0x02, - 0x02, - 0x65, - 0x65, - 0x65, - 0x7A, - 0x02, - 0x8A, - 0x85, - 0x96, - 0x00, - 0x56, - 0x03, - 0x00, - 0x00, - 0x41, - 0x03, - 0x00, - 0x0C, - 0x61, - 0x37, - 0x0F, - 0x24, - 0x25, - 0x25, - 0x1E, - 0x17, - 0x03, - 0x03, - 0xC3, - 0xC4, - 0x6F, - 0x03, - 0x00, - 0x11, - 0x50, - 0x96, - 0x96, - 0x6F, - 0x67, - 0x65, - 0x65, - 0x7A, - 0x64, - 0x64, - 0x63, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x00, - 0x13, - 0x02, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x7A, - 0x65, - 0x49, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x7B, - 0x7B, - 0x68, - 0x6F, - 0x96, - 0x4F, - 0x00, - 0x5A, - 0x03, - 0x00, - 0x00, - 0x42, - 0x03, - 0x00, - 0x06, - 0x4E, - 0x1F, - 0x03, - 0x37, - 0x32, - 0x50, - 0x7A, - 0x03, - 0x00, - 0x11, - 0xC2, - 0x5F, - 0x96, - 0x86, - 0x85, - 0x82, - 0x6A, - 0x7B, - 0x02, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x7B, - 0x00, - 0x04, - 0x02, - 0x00, - 0x0A, - 0x7B, - 0x02, - 0x7B, - 0x67, - 0x9C, - 0x6F, - 0x86, - 0x96, - 0x5F, - 0x4D, - 0x5F, - 0x03, - 0x00, - 0x00, - 0x43, - 0x03, - 0x00, - 0x03, - 0x50, - 0x61, - 0x61, - 0x00, - 0x86, - 0x03, - 0x00, - 0x0B, - 0xC2, - 0x4E, - 0xB2, - 0x50, - 0x22, - 0x50, - 0x17, - 0x50, - 0xB2, - 0xB2, - 0xC2, - 0x00, - 0x69, - 0x03, - 0x00, - 0x01, - 0x00, - 0x00, - 0x40, - 0x01, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0x00, - 0x00, - 0x0E, - 0xB3, - 0x2A, - 0x53, - 0x00, - 0x19, - 0x59, - 0x24, - 0x23, - 0x03, - 0xD6, - 0x08, - 0x59, - 0x00, - 0x54, - 0xB3, - 0x02, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x64, - 0x73, - 0x71, - 0x71, - 0xDF, - 0x0F, - 0x03, - 0x0F, - 0x58, - 0x54, - 0x00, - 0x05, - 0x53, - 0x56, - 0x00, - 0x00, - 0x16, - 0x02, - 0x02, - 0x02, - 0x79, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x81, - 0x89, - 0x53, - 0x53, - 0x29, - 0x00, - 0x00, - 0x0B, - 0x88, - 0x6A, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x7A, - 0x88, - 0x46, - 0x53, - 0x53, - 0x00, - 0x4A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x38, - 0x00, - 0x00, - 0x18, - 0xB8, - 0x58, - 0x24, - 0x25, - 0x23, - 0x58, - 0xF5, - 0x00, - 0x54, - 0xF3, - 0x87, - 0x02, - 0x64, - 0x64, - 0x84, - 0x08, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x0E, - 0x03, - 0x24, - 0xB8, - 0x60, - 0x00, - 0x01, - 0x88, - 0x01, - 0x70, - 0x04, - 0x65, - 0x00, - 0x12, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x82, - 0x82, - 0x72, - 0x88, - 0x46, - 0x00, - 0x54, - 0x53, - 0x53, - 0x19, - 0x00, - 0x00, - 0x10, - 0x54, - 0x53, - 0x00, - 0x09, - 0x00, - 0x00, - 0x53, - 0x88, - 0x7F, - 0x8A, - 0x7E, - 0x64, - 0x65, - 0x64, - 0x76, - 0x46, - 0x00, - 0x00, - 0x00, - 0x02, - 0x39, - 0x00, - 0x00, - 0x17, - 0x57, - 0x58, - 0xC4, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x25, - 0x08, - 0x50, - 0xEE, - 0xD6, - 0x03, - 0x03, - 0x0E, - 0x03, - 0x24, - 0x23, - 0x24, - 0x5A, - 0x54, - 0x00, - 0x61, - 0x00, - 0x00, - 0x19, - 0x4C, - 0x7B, - 0x02, - 0x88, - 0x6E, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x66, - 0x65, - 0x6F, - 0x72, - 0x76, - 0x4C, - 0x00, - 0x05, - 0x00, - 0x00, - 0x1F, - 0xB3, - 0x09, - 0x00, - 0x53, - 0x54, - 0x00, - 0x54, - 0x53, - 0x00, - 0x00, - 0x53, - 0x00, - 0x00, - 0x09, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x89, - 0x75, - 0x70, - 0x02, - 0x02, - 0x7B, - 0x64, - 0x02, - 0x02, - 0x7E, - 0x76, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x3A, - 0x00, - 0x00, - 0x03, - 0xF5, - 0xF7, - 0x55, - 0x00, - 0x04, - 0x00, - 0x00, - 0x08, - 0xF6, - 0x24, - 0x23, - 0x23, - 0x25, - 0x25, - 0x03, - 0x58, - 0x04, - 0x5A, - 0x01, - 0x57, - 0x01, - 0x54, - 0x68, - 0x00, - 0x00, - 0x0D, - 0x53, - 0x88, - 0x75, - 0x81, - 0x66, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x21, - 0x65, - 0x66, - 0x02, - 0x64, - 0x6B, - 0x6F, - 0x75, - 0x75, - 0x76, - 0x88, - 0x88, - 0x88, - 0x89, - 0x89, - 0x88, - 0x88, - 0x88, - 0x76, - 0x75, - 0x75, - 0x6F, - 0x6B, - 0x7A, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x7B, - 0x7B, - 0x7E, - 0x75, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x41, - 0x00, - 0x00, - 0x0B, - 0xF6, - 0x58, - 0x0F, - 0x24, - 0x25, - 0x25, - 0x59, - 0x55, - 0x00, - 0x00, - 0x54, - 0x00, - 0x70, - 0x00, - 0x00, - 0x11, - 0xB3, - 0x89, - 0x76, - 0x72, - 0x67, - 0x65, - 0x65, - 0x7B, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x00, - 0x13, - 0x02, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x7A, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x7B, - 0x7B, - 0x7B, - 0x67, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x42, - 0x00, - 0x00, - 0x06, - 0x56, - 0x5A, - 0x03, - 0x58, - 0x5B, - 0xF4, - 0x7A, - 0x00, - 0x00, - 0x0C, - 0x54, - 0x4C, - 0x88, - 0x76, - 0x75, - 0x6E, - 0x6B, - 0x7B, - 0x02, - 0x02, - 0x7B, - 0x7B, - 0x09, - 0x02, - 0x00, - 0x0A, - 0x7B, - 0x02, - 0x7B, - 0x67, - 0x6E, - 0x72, - 0x76, - 0x88, - 0x4C, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x43, - 0x00, - 0x00, - 0x04, - 0xF3, - 0xF6, - 0xF5, - 0x54, - 0x85, - 0x00, - 0x00, - 0x03, - 0x54, - 0x53, - 0x53, - 0x00, - 0x05, - 0x46, - 0x00, - 0x03, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0x3B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x0D, - 0x00, - 0x00, - 0x0E, - 0xB3, - 0x2A, - 0x53, - 0x00, - 0x19, - 0x59, - 0x24, - 0x23, - 0x03, - 0xD6, - 0x08, - 0x59, - 0x00, - 0x54, - 0xB3, - 0x02, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x64, - 0x73, - 0x71, - 0x71, - 0xDF, - 0x0F, - 0x03, - 0x0F, - 0x58, - 0x54, - 0x00, - 0x0D, - 0x53, - 0x00, - 0x03, - 0x4B, - 0x7A, - 0x00, - 0x00, - 0x07, - 0xB3, - 0x09, - 0x53, - 0x0D, - 0x54, - 0x00, - 0x05, - 0x00, - 0x8A, - 0x7B, - 0x54, - 0x53, - 0x00, - 0x06, - 0xB3, - 0x08, - 0x53, - 0x00, - 0x04, - 0xB3, - 0x88, - 0x76, - 0x46, - 0x16, - 0x00, - 0x04, - 0x02, - 0x00, - 0x13, - 0x79, - 0x65, - 0x64, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x65, - 0x81, - 0x89, - 0x53, - 0x53, - 0x00, - 0x29, - 0x00, - 0x00, - 0x0B, - 0x88, - 0x6A, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x7A, - 0x88, - 0x46, - 0x53, - 0x53, - 0x00, - 0x4A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x33, - 0x00, - 0x00, - 0x1D, - 0x4C, - 0x54, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x58, - 0x24, - 0x25, - 0x23, - 0x58, - 0xF5, - 0x00, - 0x54, - 0xF3, - 0x87, - 0x02, - 0x64, - 0x64, - 0x84, - 0x08, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x0E, - 0x03, - 0x24, - 0xB8, - 0x00, - 0x0F, - 0x00, - 0x00, - 0x03, - 0x7F, - 0x02, - 0x53, - 0x00, - 0x1D, - 0x00, - 0x01, - 0x4B, - 0x01, - 0x6F, - 0x14, - 0x00, - 0x00, - 0x04, - 0x54, - 0x4B, - 0x4B, - 0x46, - 0x10, - 0x00, - 0x00, - 0x09, - 0x09, - 0x00, - 0x6F, - 0x46, - 0x00, - 0x00, - 0x00, - 0x88, - 0x70, - 0x00, - 0x04, - 0x65, - 0x00, - 0x12, - 0x7A, - 0x7A, - 0x7A, - 0x65, - 0x64, - 0x65, - 0x64, - 0x02, - 0x65, - 0x82, - 0x82, - 0x72, - 0x88, - 0x46, - 0x00, - 0x54, - 0x53, - 0x53, - 0x19, - 0x00, - 0x00, - 0x10, - 0x54, - 0x53, - 0x00, - 0x09, - 0x00, - 0x00, - 0x53, - 0x88, - 0x7F, - 0x8A, - 0x7E, - 0x64, - 0x65, - 0x64, - 0x76, - 0x46, - 0x00, - 0x00, - 0x00, - 0x02, - 0x32, - 0x00, - 0x00, - 0x1E, - 0x02, - 0x7B, - 0x66, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x57, - 0x58, - 0xC4, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x25, - 0x08, - 0x50, - 0xEE, - 0xD6, - 0x03, - 0x03, - 0x0E, - 0x03, - 0x24, - 0x23, - 0x24, - 0x5A, - 0x54, - 0x10, - 0x00, - 0x00, - 0x03, - 0x7E, - 0x7A, - 0x09, - 0x00, - 0x32, - 0x00, - 0x00, - 0x05, - 0x81, - 0x65, - 0x64, - 0x7F, - 0x54, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x07, - 0x53, - 0x53, - 0x00, - 0x46, - 0x81, - 0x53, - 0x79, - 0x00, - 0x05, - 0x00, - 0x00, - 0x19, - 0x4C, - 0x7B, - 0x02, - 0x88, - 0x6E, - 0x02, - 0x02, - 0x7A, - 0x65, - 0x65, - 0x65, - 0x64, - 0x02, - 0x64, - 0x02, - 0x64, - 0x02, - 0x02, - 0x65, - 0x66, - 0x65, - 0x6F, - 0x72, - 0x76, - 0x4C, - 0x00, - 0x05, - 0x00, - 0x00, - 0x1F, - 0xB3, - 0x09, - 0x00, - 0x53, - 0x54, - 0x00, - 0x54, - 0x53, - 0x00, - 0x00, - 0x53, - 0x00, - 0x00, - 0x09, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x89, - 0x75, - 0x70, - 0x02, - 0x02, - 0x7B, - 0x64, - 0x02, - 0x02, - 0x7E, - 0x76, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x31, - 0x00, - 0x00, - 0x05, - 0x88, - 0x7A, - 0x7A, - 0x6C, - 0x72, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0xF5, - 0xF7, - 0x55, - 0x00, - 0x04, - 0x00, - 0x00, - 0x08, - 0xF6, - 0x24, - 0x23, - 0x23, - 0x25, - 0x25, - 0x03, - 0x58, - 0x04, - 0x5A, - 0x01, - 0x57, - 0x01, - 0x54, - 0x12, - 0x00, - 0x00, - 0x04, - 0x67, - 0x81, - 0x54, - 0x54, - 0x16, - 0x00, - 0x01, - 0x88, - 0x01, - 0x76, - 0x17, - 0x00, - 0x00, - 0x05, - 0x54, - 0x75, - 0x65, - 0x65, - 0x6E, - 0x00, - 0x04, - 0x00, - 0x01, - 0xC6, - 0x06, - 0x00, - 0x00, - 0x09, - 0x53, - 0x75, - 0x7A, - 0x02, - 0x02, - 0x88, - 0x00, - 0x88, - 0x4C, - 0x00, - 0x04, - 0x00, - 0x00, - 0x13, - 0x76, - 0x7A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x53, - 0x88, - 0x75, - 0x81, - 0x66, - 0x65, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x00, - 0x05, - 0x64, - 0x00, - 0x21, - 0x65, - 0x66, - 0x02, - 0x64, - 0x6B, - 0x6F, - 0x75, - 0x75, - 0x76, - 0x88, - 0x88, - 0x88, - 0x89, - 0x89, - 0x88, - 0x88, - 0x88, - 0x76, - 0x75, - 0x75, - 0x6F, - 0x6B, - 0x7A, - 0x02, - 0x02, - 0x65, - 0x64, - 0x64, - 0x7B, - 0x7B, - 0x7E, - 0x75, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x31, - 0x00, - 0x00, - 0x05, - 0x53, - 0x66, - 0x64, - 0x7F, - 0x88, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x0B, - 0xF6, - 0x58, - 0x0F, - 0x24, - 0x25, - 0x25, - 0x59, - 0x55, - 0x00, - 0x00, - 0x54, - 0x00, - 0x0C, - 0x00, - 0x01, - 0x09, - 0x09, - 0x00, - 0x00, - 0x03, - 0x64, - 0x72, - 0x53, - 0x00, - 0x11, - 0x00, - 0x00, - 0x07, - 0xC6, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x65, - 0x66, - 0x00, - 0x19, - 0x00, - 0x01, - 0x76, - 0x01, - 0x76, - 0x04, - 0x00, - 0x01, - 0x6D, - 0x01, - 0x4C, - 0x06, - 0x00, - 0x00, - 0x09, - 0x7F, - 0x64, - 0x7A, - 0x79, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x70, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x82, - 0x7A, - 0x7A, - 0x76, - 0x07, - 0x00, - 0x00, - 0x11, - 0xB3, - 0x89, - 0x76, - 0x72, - 0x67, - 0x65, - 0x65, - 0x7B, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x7A, - 0x02, - 0x02, - 0x00, - 0x06, - 0x7A, - 0x00, - 0x13, - 0x02, - 0x7B, - 0x02, - 0x7B, - 0x7B, - 0x02, - 0x7A, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x7B, - 0x7B, - 0x7B, - 0x67, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x32, - 0x00, - 0x00, - 0x05, - 0x4C, - 0x72, - 0x88, - 0x53, - 0x54, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x06, - 0x56, - 0x5A, - 0x03, - 0x58, - 0x5B, - 0xF4, - 0x10, - 0x00, - 0x01, - 0x6E, - 0x01, - 0x64, - 0x09, - 0x00, - 0x00, - 0x03, - 0x02, - 0x76, - 0x53, - 0x00, - 0x10, - 0x00, - 0x00, - 0x07, - 0x88, - 0x66, - 0x4C, - 0x00, - 0x00, - 0x54, - 0x53, - 0x00, - 0x0E, - 0x00, - 0x01, - 0x46, - 0x01, - 0x89, - 0x0A, - 0x00, - 0x00, - 0x08, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x4C, - 0x66, - 0x76, - 0x53, - 0x04, - 0x00, - 0x00, - 0x13, - 0x67, - 0x64, - 0x65, - 0x64, - 0x64, - 0x76, - 0x53, - 0x00, - 0x00, - 0x88, - 0x53, - 0x00, - 0x00, - 0x00, - 0x79, - 0x02, - 0x64, - 0x75, - 0x53, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x0C, - 0x54, - 0x4C, - 0x88, - 0x76, - 0x75, - 0x6E, - 0x6B, - 0x7B, - 0x02, - 0x02, - 0x7B, - 0x7B, - 0x09, - 0x02, - 0x00, - 0x0A, - 0x7B, - 0x02, - 0x7B, - 0x67, - 0x6E, - 0x72, - 0x76, - 0x88, - 0x4C, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x35, - 0x00, - 0x00, - 0x03, - 0x53, - 0x53, - 0x54, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x04, - 0xF3, - 0xF6, - 0xF5, - 0x54, - 0x11, - 0x00, - 0x01, - 0x88, - 0x01, - 0x75, - 0x09, - 0x00, - 0x00, - 0x04, - 0x54, - 0x02, - 0x4C, - 0x54, - 0x08, - 0x00, - 0x00, - 0x0A, - 0x54, - 0x54, - 0x00, - 0x5A, - 0x5B, - 0xF6, - 0x00, - 0x4C, - 0x7F, - 0xB3, - 0x12, - 0x00, - 0x01, - 0x7F, - 0x01, - 0x66, - 0x09, - 0x00, - 0x00, - 0x07, - 0x89, - 0x66, - 0x76, - 0x00, - 0x00, - 0x00, - 0x46, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x4B, - 0x7A, - 0x7A, - 0x64, - 0x64, - 0x64, - 0x05, - 0x00, - 0x00, - 0x08, - 0x6A, - 0x00, - 0x00, - 0x46, - 0x68, - 0x65, - 0x64, - 0x88, - 0x17, - 0x00, - 0x00, - 0x03, - 0x54, - 0x53, - 0x53, - 0x00, - 0x05, - 0x46, - 0x00, - 0x03, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x34, - 0x00, - 0x00, - 0x03, - 0x53, - 0x72, - 0x6F, - 0x00, - 0x2C, - 0x00, - 0x00, - 0x04, - 0xC6, - 0x53, - 0x02, - 0x53, - 0x07, - 0x00, - 0x00, - 0x0A, - 0xB8, - 0xF7, - 0x00, - 0xF4, - 0xD6, - 0x08, - 0x58, - 0x5A, - 0x59, - 0xF6, - 0x13, - 0x00, - 0x01, - 0x4C, - 0x01, - 0x88, - 0x09, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x65, - 0xB3, - 0x54, - 0x07, - 0x00, - 0x00, - 0x06, - 0x53, - 0x7B, - 0x02, - 0x7B, - 0x64, - 0x76, - 0x06, - 0x00, - 0x00, - 0x07, - 0x46, - 0x75, - 0x00, - 0x88, - 0x65, - 0x64, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x35, - 0x00, - 0x01, - 0x66, - 0x01, - 0x66, - 0x0D, - 0x00, - 0x01, - 0xC6, - 0x01, - 0x09, - 0x19, - 0x00, - 0x00, - 0x09, - 0x54, - 0xF3, - 0x58, - 0x5B, - 0x56, - 0x00, - 0x00, - 0x65, - 0x53, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x55, - 0x58, - 0x58, - 0xB3, - 0x00, - 0x6A, - 0x67, - 0x84, - 0x87, - 0xD6, - 0x5D, - 0x00, - 0x0F, - 0x00, - 0x01, - 0x54, - 0x01, - 0x54, - 0x0C, - 0x00, - 0x00, - 0x04, - 0x91, - 0x64, - 0x65, - 0x89, - 0x15, - 0x00, - 0x00, - 0x05, - 0x79, - 0x72, - 0x88, - 0x7A, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x64, - 0x01, - 0x64, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x4C, - 0x7A, - 0x54, - 0x00, - 0x17, - 0x00, - 0x01, - 0x54, - 0x01, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x03, - 0x76, - 0x88, - 0xC6, - 0x00, - 0x15, - 0x00, - 0x00, - 0x1E, - 0x53, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x0F, - 0x24, - 0x23, - 0x1B, - 0x58, - 0x86, - 0x57, - 0x53, - 0x00, - 0x00, - 0x54, - 0x54, - 0x58, - 0x0A, - 0x67, - 0x79, - 0x00, - 0x82, - 0x72, - 0x6A, - 0x79, - 0x4B, - 0x55, - 0x54, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x03, - 0x54, - 0x75, - 0x46, - 0x00, - 0x0A, - 0x00, - 0x00, - 0x05, - 0x54, - 0x66, - 0x64, - 0x64, - 0x75, - 0x00, - 0x15, - 0x00, - 0x00, - 0x04, - 0x88, - 0x70, - 0x7D, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0F, - 0x00, - 0x01, - 0x66, - 0x01, - 0x64, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x6F, - 0x02, - 0x88, - 0x00, - 0x26, - 0x00, - 0x00, - 0x03, - 0x66, - 0x66, - 0xC6, - 0x00, - 0x0C, - 0x00, - 0x01, - 0x72, - 0x01, - 0x72, - 0x05, - 0x00, - 0x00, - 0x20, - 0xB3, - 0x59, - 0x5A, - 0xB8, - 0x09, - 0x00, - 0xF7, - 0xEF, - 0x87, - 0x08, - 0x25, - 0x24, - 0x25, - 0x23, - 0x5A, - 0x53, - 0x00, - 0x53, - 0x58, - 0x58, - 0x6C, - 0x79, - 0x76, - 0x3E, - 0x54, - 0x00, - 0x00, - 0x76, - 0x76, - 0x54, - 0xB3, - 0xF5, - 0x0D, - 0x00, - 0x00, - 0x04, - 0x88, - 0x66, - 0x75, - 0x54, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x76, - 0x66, - 0x66, - 0x53, - 0x16, - 0x00, - 0x00, - 0x03, - 0x70, - 0x88, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x00, - 0x01, - 0x89, - 0x0A, - 0x00, - 0x01, - 0x09, - 0x01, - 0x53, - 0x1B, - 0x00, - 0x01, - 0x89, - 0x01, - 0x4C, - 0x0D, - 0x00, - 0x01, - 0x72, - 0x01, - 0x6E, - 0x05, - 0x00, - 0x00, - 0x21, - 0x59, - 0x23, - 0x41, - 0x59, - 0xF5, - 0xE0, - 0xF6, - 0x77, - 0x64, - 0x65, - 0x87, - 0x0D, - 0x08, - 0x25, - 0x12, - 0x56, - 0x54, - 0x55, - 0x0E, - 0x73, - 0x6A, - 0x76, - 0x00, - 0x3F, - 0x00, - 0x00, - 0x54, - 0x3F, - 0x53, - 0x82, - 0x8E, - 0x59, - 0xF6, - 0x00, - 0x0C, - 0x00, - 0x01, - 0x54, - 0x01, - 0x88, - 0x25, - 0x00, - 0x00, - 0x06, - 0x09, - 0x76, - 0x00, - 0x4C, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x02, - 0x26, - 0x00, - 0x00, - 0x04, - 0x53, - 0x75, - 0x66, - 0x88, - 0x2F, - 0x00, - 0x00, - 0x22, - 0x54, - 0x5A, - 0x24, - 0x87, - 0x65, - 0x70, - 0x00, - 0xF6, - 0x65, - 0x65, - 0x7A, - 0x7A, - 0x02, - 0x64, - 0x87, - 0x58, - 0x55, - 0x00, - 0xF4, - 0xF0, - 0x65, - 0x79, - 0x54, - 0xC6, - 0xC6, - 0x3F, - 0x00, - 0x3F, - 0x00, - 0x54, - 0x79, - 0x4B, - 0xE1, - 0xF6, - 0x31, - 0x00, - 0x00, - 0x09, - 0x54, - 0x54, - 0x75, - 0x70, - 0x72, - 0x54, - 0x46, - 0x02, - 0x75, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x27, - 0x00, - 0x00, - 0x03, - 0x89, - 0x65, - 0x4C, - 0x00, - 0x2F, - 0x00, - 0x00, - 0x22, - 0xB8, - 0x25, - 0x08, - 0x02, - 0x7A, - 0x7B, - 0x89, - 0xB3, - 0x88, - 0x89, - 0x70, - 0x7C, - 0x02, - 0x7D, - 0x67, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x09, - 0xE0, - 0x89, - 0x3F, - 0x3F, - 0x57, - 0x09, - 0x58, - 0x00, - 0x00, - 0x00, - 0x6A, - 0x92, - 0x32, - 0xF3, - 0x04, - 0x00, - 0x01, - 0xC6, - 0x2C, - 0x00, - 0x00, - 0x0B, - 0x09, - 0x72, - 0x65, - 0x64, - 0x66, - 0x53, - 0x00, - 0x00, - 0x4C, - 0x88, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x57, - 0x00, - 0x00, - 0x09, - 0x54, - 0x58, - 0x58, - 0x25, - 0x73, - 0x7A, - 0x7C, - 0x88, - 0x89, - 0x00, - 0x06, - 0x00, - 0x00, - 0x15, - 0x65, - 0x72, - 0x00, - 0x54, - 0x54, - 0xF3, - 0xF5, - 0x88, - 0x75, - 0x00, - 0x00, - 0x00, - 0x58, - 0x00, - 0x3F, - 0x54, - 0x54, - 0x8A, - 0x6C, - 0xE1, - 0xF4, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0x4C, - 0x88, - 0xC6, - 0x00, - 0x29, - 0x00, - 0x00, - 0x07, - 0x54, - 0x81, - 0x64, - 0x7A, - 0x7B, - 0x76, - 0x76, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x45, - 0x00, - 0x00, - 0x04, - 0xF3, - 0x76, - 0x4C, - 0x54, - 0x0E, - 0x00, - 0x00, - 0x0B, - 0x57, - 0x0E, - 0xD6, - 0x73, - 0x64, - 0x7A, - 0x70, - 0x00, - 0x00, - 0x58, - 0x46, - 0x00, - 0x04, - 0x00, - 0x00, - 0x15, - 0x58, - 0x54, - 0x53, - 0x55, - 0x5A, - 0x59, - 0xE1, - 0x6A, - 0x68, - 0x00, - 0x00, - 0x54, - 0x3F, - 0x00, - 0x00, - 0x3F, - 0x46, - 0x02, - 0x6C, - 0xD6, - 0x55, - 0x00, - 0x04, - 0x00, - 0x01, - 0x65, - 0x01, - 0x66, - 0x29, - 0x00, - 0x00, - 0x08, - 0x54, - 0x75, - 0x64, - 0x65, - 0x7A, - 0x02, - 0x54, - 0x82, - 0x00, - 0x00, - 0x00, - 0x02, - 0x20, - 0x00, - 0x01, - 0xB3, - 0x23, - 0x00, - 0x00, - 0x05, - 0x4C, - 0x66, - 0x64, - 0x66, - 0x46, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x25, - 0x54, - 0x5B, - 0x0E, - 0x48, - 0x63, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0xD3, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD3, - 0x54, - 0x75, - 0x66, - 0x62, - 0x87, - 0x25, - 0xC4, - 0x87, - 0x6B, - 0x6E, - 0x54, - 0x3F, - 0x00, - 0x00, - 0xC6, - 0xC6, - 0x3C, - 0x88, - 0x58, - 0x5C, - 0xF3, - 0x00, - 0x04, - 0x00, - 0x01, - 0x46, - 0x01, - 0x46, - 0x2A, - 0x00, - 0x00, - 0x07, - 0x66, - 0x65, - 0x02, - 0x7A, - 0x7F, - 0x00, - 0x70, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1F, - 0x00, - 0x00, - 0x04, - 0x67, - 0x65, - 0x66, - 0xB3, - 0x21, - 0x00, - 0x00, - 0x05, - 0x76, - 0x7A, - 0x7A, - 0x65, - 0x88, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x05, - 0x57, - 0x59, - 0x73, - 0x65, - 0x66, - 0x00, - 0x05, - 0x00, - 0x00, - 0x17, - 0xD3, - 0x00, - 0x00, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x67, - 0x64, - 0x83, - 0xE1, - 0x24, - 0x0F, - 0x73, - 0x82, - 0x6F, - 0x3F, - 0x00, - 0x00, - 0x4C, - 0x6F, - 0x6F, - 0xC6, - 0x00, - 0x0C, - 0x00, - 0x01, - 0x46, - 0x01, - 0x53, - 0x23, - 0x00, - 0x00, - 0x09, - 0x54, - 0x89, - 0x65, - 0x65, - 0x65, - 0x67, - 0x00, - 0x00, - 0x75, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1E, - 0x00, - 0x00, - 0x06, - 0x88, - 0x7F, - 0x64, - 0x64, - 0x76, - 0xB3, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x54, - 0x88, - 0xB3, - 0x00, - 0x13, - 0x00, - 0x00, - 0x05, - 0x53, - 0x02, - 0x7A, - 0x65, - 0xB3, - 0x00, - 0x0F, - 0x00, - 0x00, - 0x05, - 0xF4, - 0x55, - 0x72, - 0x65, - 0x3E, - 0x00, - 0x04, - 0x00, - 0x00, - 0x03, - 0xD3, - 0x00, - 0xD3, - 0x00, - 0x04, - 0x00, - 0x00, - 0x10, - 0x70, - 0x65, - 0x92, - 0x25, - 0x44, - 0xB2, - 0x08, - 0x6C, - 0x70, - 0xC6, - 0x97, - 0x8F, - 0x8F, - 0x7F, - 0x63, - 0x67, - 0x0C, - 0x00, - 0x00, - 0x03, - 0x66, - 0x6F, - 0x54, - 0x00, - 0x23, - 0x00, - 0x00, - 0x09, - 0x88, - 0x65, - 0x65, - 0x76, - 0x00, - 0x00, - 0x00, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1D, - 0x00, - 0x00, - 0x06, - 0x54, - 0x46, - 0x65, - 0x64, - 0x7E, - 0x88, - 0x0A, - 0x00, - 0x00, - 0x04, - 0x54, - 0x75, - 0x65, - 0x88, - 0x06, - 0x00, - 0x00, - 0x04, - 0x09, - 0x64, - 0x65, - 0x76, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x46, - 0x7A, - 0x6B, - 0x00, - 0x11, - 0x00, - 0x00, - 0x0A, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x58, - 0x3E, - 0xD3, - 0xD3, - 0x00, - 0x58, - 0x05, - 0x00, - 0x00, - 0x10, - 0x67, - 0x64, - 0x73, - 0x25, - 0xB2, - 0x00, - 0x1B, - 0x08, - 0x72, - 0x4C, - 0x6A, - 0x63, - 0x64, - 0x65, - 0x65, - 0x66, - 0x0C, - 0x00, - 0x01, - 0x75, - 0x01, - 0x88, - 0x24, - 0x00, - 0x01, - 0x75, - 0x01, - 0x75, - 0x04, - 0x00, - 0x00, - 0x07, - 0xF4, - 0x7A, - 0x8A, - 0x72, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1F, - 0x00, - 0x00, - 0x03, - 0x88, - 0x6A, - 0x76, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x03, - 0x4C, - 0x6B, - 0x53, - 0x00, - 0x05, - 0x00, - 0x00, - 0x06, - 0x09, - 0x70, - 0x64, - 0x64, - 0x66, - 0x53, - 0x09, - 0x00, - 0x00, - 0x03, - 0x53, - 0x89, - 0x88, - 0x00, - 0x10, - 0x00, - 0x00, - 0x06, - 0x09, - 0xF5, - 0x76, - 0x72, - 0xD3, - 0x3E, - 0x05, - 0x00, - 0x00, - 0x15, - 0xD3, - 0xD3, - 0x00, - 0x00, - 0x09, - 0x81, - 0x65, - 0x84, - 0x25, - 0x1E, - 0x00, - 0xF4, - 0xF5, - 0xC6, - 0x64, - 0x65, - 0x65, - 0x65, - 0x72, - 0x72, - 0x46, - 0x00, - 0x38, - 0x00, - 0x00, - 0x07, - 0x88, - 0x00, - 0x7B, - 0x7A, - 0x7B, - 0x88, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x33, - 0x00, - 0x00, - 0x09, - 0x54, - 0x53, - 0x00, - 0x54, - 0x72, - 0x79, - 0x02, - 0x02, - 0x54, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x06, - 0xB8, - 0x5B, - 0x87, - 0x64, - 0x66, - 0x54, - 0x04, - 0x00, - 0x00, - 0x14, - 0xD3, - 0x00, - 0x00, - 0x00, - 0xD3, - 0x00, - 0x54, - 0x81, - 0x64, - 0x83, - 0xE1, - 0x41, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x46, - 0x63, - 0x6C, - 0x53, - 0x3B, - 0x00, - 0x00, - 0x08, - 0x88, - 0x09, - 0x46, - 0x7C, - 0x02, - 0x7A, - 0x72, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x30, - 0x00, - 0x00, - 0x0B, - 0x09, - 0x76, - 0x65, - 0x66, - 0x65, - 0x65, - 0x75, - 0x53, - 0x7A, - 0x02, - 0x76, - 0x00, - 0x1C, - 0x00, - 0x00, - 0x1D, - 0x5B, - 0x24, - 0x87, - 0x64, - 0x7F, - 0x6E, - 0x46, - 0x54, - 0x00, - 0x00, - 0x04, - 0x09, - 0x00, - 0x00, - 0x00, - 0x53, - 0x75, - 0x66, - 0x7A, - 0x73, - 0x41, - 0x24, - 0xF6, - 0x00, - 0x00, - 0x54, - 0x59, - 0x44, - 0x86, - 0x00, - 0x1B, - 0x00, - 0x01, - 0x4C, - 0x01, - 0x72, - 0x1F, - 0x00, - 0x00, - 0x09, - 0x76, - 0xC6, - 0x00, - 0x76, - 0x7A, - 0x65, - 0x65, - 0x88, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x30, - 0x00, - 0x00, - 0x11, - 0x6E, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x67, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xC6, - 0x00, - 0x54, - 0x00, - 0x16, - 0x00, - 0x00, - 0x0B, - 0x58, - 0x0E, - 0x08, - 0x84, - 0x65, - 0x7A, - 0x76, - 0x00, - 0x00, - 0x04, - 0x57, - 0x00, - 0x04, - 0x00, - 0x00, - 0x10, - 0x58, - 0x00, - 0x53, - 0xB8, - 0x5B, - 0xC4, - 0x1B, - 0x00, - 0xF8, - 0x57, - 0x53, - 0x5A, - 0x73, - 0x08, - 0x5B, - 0x58, - 0x18, - 0x00, - 0x00, - 0x04, - 0x53, - 0x76, - 0x66, - 0x89, - 0x1D, - 0x00, - 0x00, - 0x0A, - 0x53, - 0x76, - 0x09, - 0x00, - 0x53, - 0x76, - 0x66, - 0x7A, - 0x7B, - 0x53, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1D, - 0x00, - 0x01, - 0x53, - 0x01, - 0x53, - 0x0B, - 0x00, - 0x01, - 0x09, - 0x04, - 0x00, - 0x00, - 0x12, - 0x88, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x7A, - 0x76, - 0x00, - 0x00, - 0x00, - 0x53, - 0x75, - 0x66, - 0x65, - 0x46, - 0x16, - 0x00, - 0x00, - 0x1F, - 0xF3, - 0x5A, - 0x24, - 0xD6, - 0x84, - 0x7A, - 0x02, - 0x00, - 0xF3, - 0x58, - 0x00, - 0x00, - 0x00, - 0x09, - 0x09, - 0x7F, - 0x76, - 0x00, - 0x00, - 0xB3, - 0xF6, - 0x54, - 0x53, - 0xD6, - 0x8B, - 0xF4, - 0x6E, - 0x82, - 0x6A, - 0x83, - 0x59, - 0x00, - 0x19, - 0x00, - 0x01, - 0x54, - 0x01, - 0x46, - 0x1F, - 0x00, - 0x00, - 0x09, - 0xF3, - 0x70, - 0x00, - 0x00, - 0x00, - 0x53, - 0x72, - 0x02, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x19, - 0x00, - 0x00, - 0x07, - 0x54, - 0x6F, - 0x02, - 0x02, - 0x7B, - 0x75, - 0xB3, - 0x00, - 0x09, - 0x00, - 0x01, - 0x66, - 0x01, - 0x81, - 0x04, - 0x00, - 0x00, - 0x13, - 0x7A, - 0x7A, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x7A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x54, - 0x66, - 0x64, - 0x7D, - 0x82, - 0x54, - 0x00, - 0x17, - 0x00, - 0x00, - 0x1F, - 0x56, - 0x23, - 0xEF, - 0x68, - 0x7A, - 0x7B, - 0x76, - 0x00, - 0x4C, - 0x53, - 0x76, - 0x81, - 0x65, - 0x64, - 0x64, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x84, - 0x67, - 0xB3, - 0x00, - 0x00, - 0x89, - 0x6D, - 0x53, - 0x53, - 0xF3, - 0x00, - 0x39, - 0x00, - 0x01, - 0x70, - 0x01, - 0x4C, - 0x05, - 0x00, - 0x02, - 0x46, - 0x00, - 0x00, - 0x00, - 0x02, - 0x18, - 0x00, - 0x00, - 0x09, - 0xB3, - 0x65, - 0x7A, - 0x02, - 0x7A, - 0x02, - 0x64, - 0x65, - 0x53, - 0x00, - 0x08, - 0x00, - 0x01, - 0x66, - 0x01, - 0x67, - 0x04, - 0x00, - 0x00, - 0x04, - 0x02, - 0x7A, - 0x02, - 0x64, - 0x04, - 0x65, - 0x00, - 0x0A, - 0x02, - 0x7B, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x66, - 0x65, - 0x64, - 0x70, - 0x18, - 0x00, - 0x00, - 0x20, - 0xF3, - 0x59, - 0xD6, - 0x73, - 0x62, - 0x65, - 0x00, - 0x4C, - 0x66, - 0x65, - 0x02, - 0x64, - 0x64, - 0x64, - 0x84, - 0x59, - 0xF4, - 0x00, - 0x00, - 0x5A, - 0x48, - 0x82, - 0xF5, - 0x00, - 0x3F, - 0x00, - 0x00, - 0x3F, - 0x75, - 0x71, - 0x0B, - 0x54, - 0x37, - 0x00, - 0x00, - 0x04, - 0xC6, - 0x7B, - 0x02, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x18, - 0x00, - 0x01, - 0x65, - 0x01, - 0x64, - 0x04, - 0x65, - 0x00, - 0x03, - 0x02, - 0x64, - 0x64, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x12, - 0x02, - 0x7A, - 0x64, - 0x65, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x54, - 0x00, - 0x00, - 0x54, - 0x4C, - 0x64, - 0x81, - 0x54, - 0x19, - 0x00, - 0x00, - 0x20, - 0x5A, - 0x25, - 0xD6, - 0x58, - 0xF5, - 0x54, - 0xF5, - 0x62, - 0x65, - 0x63, - 0x84, - 0x74, - 0x48, - 0xD6, - 0x23, - 0x56, - 0x00, - 0x00, - 0xF6, - 0x86, - 0x6F, - 0xC6, - 0x09, - 0x58, - 0x00, - 0x3E, - 0x00, - 0x72, - 0x83, - 0x59, - 0x75, - 0x09, - 0x11, - 0x00, - 0x01, - 0x54, - 0x24, - 0x00, - 0x00, - 0x04, - 0x76, - 0x79, - 0x02, - 0x4C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x10, - 0x88, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x64, - 0x02, - 0x02, - 0x65, - 0x89, - 0x00, - 0x00, - 0x00, - 0x53, - 0x53, - 0x08, - 0x00, - 0x00, - 0x0A, - 0x7E, - 0x7A, - 0x7A, - 0x64, - 0x02, - 0x02, - 0x64, - 0x64, - 0x65, - 0x4B, - 0x21, - 0x00, - 0x00, - 0x10, - 0xF5, - 0x59, - 0x59, - 0x58, - 0x00, - 0x54, - 0xF7, - 0x87, - 0x84, - 0x44, - 0x24, - 0x24, - 0x25, - 0x23, - 0x5A, - 0xF5, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x3F, - 0x57, - 0x00, - 0x58, - 0x00, - 0x00, - 0x72, - 0x8B, - 0xE1, - 0x54, - 0x81, - 0x00, - 0x0F, - 0x00, - 0x00, - 0x03, - 0x54, - 0x67, - 0x76, - 0x00, - 0x23, - 0x00, - 0x00, - 0x05, - 0x54, - 0x72, - 0x64, - 0x65, - 0x4C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x11, - 0x72, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x02, - 0x64, - 0x75, - 0x00, - 0x00, - 0x00, - 0x72, - 0x72, - 0x53, - 0x00, - 0x07, - 0x00, - 0x00, - 0x0A, - 0x89, - 0x02, - 0x7A, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x65, - 0x76, - 0x23, - 0x00, - 0x00, - 0x1F, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x25, - 0x0F, - 0x25, - 0x59, - 0x56, - 0xB8, - 0xB8, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x58, - 0x85, - 0x6A, - 0x00, - 0x00, - 0x58, - 0x00, - 0x3F, - 0x00, - 0x70, - 0x8B, - 0x59, - 0x00, - 0x54, - 0x6B, - 0x00, - 0x0F, - 0x00, - 0x00, - 0x03, - 0x66, - 0x75, - 0x53, - 0x00, - 0x22, - 0x00, - 0x00, - 0x04, - 0x54, - 0x6E, - 0x64, - 0x66, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x10, - 0x72, - 0x64, - 0x02, - 0x64, - 0x65, - 0x64, - 0x02, - 0x02, - 0x02, - 0x64, - 0x76, - 0x54, - 0x00, - 0x00, - 0x66, - 0x66, - 0x09, - 0x00, - 0x00, - 0x08, - 0x7F, - 0x02, - 0x64, - 0x02, - 0x02, - 0x64, - 0x7F, - 0x6E, - 0x28, - 0x00, - 0x00, - 0x05, - 0xF5, - 0x5B, - 0x59, - 0x5A, - 0xF3, - 0x00, - 0x07, - 0x00, - 0x00, - 0x11, - 0x57, - 0x57, - 0x6A, - 0x72, - 0x00, - 0x3F, - 0x00, - 0xC6, - 0xB3, - 0x46, - 0xB8, - 0x58, - 0x54, - 0x00, - 0x00, - 0x64, - 0x53, - 0x00, - 0x33, - 0x00, - 0x00, - 0x03, - 0x76, - 0x65, - 0x72, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x17, - 0x00, - 0x00, - 0x03, - 0x76, - 0x7A, - 0x7A, - 0x00, - 0x04, - 0x64, - 0x00, - 0x09, - 0x02, - 0x64, - 0x65, - 0x88, - 0x00, - 0x00, - 0x00, - 0x53, - 0xB3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0B, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x02, - 0x65, - 0x66, - 0x65, - 0x6B, - 0x88, - 0x00, - 0x2B, - 0x00, - 0x01, - 0xF3, - 0x09, - 0x00, - 0x00, - 0x0A, - 0x54, - 0x57, - 0x87, - 0x6F, - 0x4C, - 0x46, - 0x4C, - 0x6F, - 0x79, - 0x55, - 0x06, - 0x00, - 0x01, - 0x67, - 0x01, - 0xF3, - 0x32, - 0x00, - 0x01, - 0x88, - 0x01, - 0x65, - 0x00, - 0x00, - 0x00, - 0x02, - 0x18, - 0x00, - 0x00, - 0x09, - 0x02, - 0x02, - 0x65, - 0x65, - 0x64, - 0x64, - 0x02, - 0x64, - 0x65, - 0x00, - 0x09, - 0x00, - 0x00, - 0x08, - 0xC6, - 0x89, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x02, - 0x6F, - 0x3B, - 0x00, - 0x00, - 0x0A, - 0xF4, - 0x59, - 0x96, - 0x00, - 0x67, - 0x7D, - 0x7C, - 0x73, - 0xF0, - 0x54, - 0x06, - 0x00, - 0x00, - 0x03, - 0x70, - 0x88, - 0x54, - 0x00, - 0x30, - 0x00, - 0x01, - 0x54, - 0x01, - 0x4C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x18, - 0x00, - 0x01, - 0x4C, - 0x04, - 0x7A, - 0x00, - 0x04, - 0x65, - 0x64, - 0x66, - 0x46, - 0x0A, - 0x00, - 0x01, - 0x66, - 0x01, - 0x65, - 0x41, - 0x00, - 0x00, - 0x08, - 0x55, - 0xF5, - 0x54, - 0x59, - 0x58, - 0x59, - 0x56, - 0x55, - 0x08, - 0x00, - 0x00, - 0x03, - 0x76, - 0x72, - 0x54, - 0x00, - 0x18, - 0x00, - 0x00, - 0x03, - 0x53, - 0x82, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x19, - 0x00, - 0x00, - 0x07, - 0x46, - 0x7E, - 0x02, - 0x02, - 0x65, - 0x72, - 0xB3, - 0x00, - 0x0B, - 0x00, - 0x01, - 0x72, - 0x01, - 0x88, - 0x44, - 0x00, - 0x00, - 0x03, - 0xF5, - 0x55, - 0x54, - 0x00, - 0x0B, - 0x00, - 0x00, - 0x03, - 0x46, - 0x67, - 0x54, - 0x00, - 0x17, - 0x00, - 0x00, - 0x03, - 0x88, - 0x02, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1C, - 0x00, - 0x01, - 0x53, - 0x64, - 0x00, - 0x00, - 0x04, - 0x67, - 0x4C, - 0x00, - 0x54, - 0x15, - 0x00, - 0x01, - 0x4C, - 0x00, - 0x00, - 0x00, - 0x02, - 0x82, - 0x00, - 0x01, - 0x75, - 0x01, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x02, - 0x35, - 0x00, - 0x00, - 0x06, - 0x54, - 0xB3, - 0x00, - 0x00, - 0x09, - 0xB3, - 0x40, - 0x00, - 0x01, - 0xC6, - 0x01, - 0xC6, - 0x06, - 0x00, - 0x00, - 0x03, - 0x46, - 0x7F, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x36, - 0x00, - 0x00, - 0x06, - 0x76, - 0x67, - 0x64, - 0x81, - 0x88, - 0xB3, - 0x3F, - 0x00, - 0x00, - 0x03, - 0x76, - 0x66, - 0x89, - 0x00, - 0x07, - 0x00, - 0x00, - 0x05, - 0x76, - 0x64, - 0x46, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1E, - 0x00, - 0x00, - 0x04, - 0x46, - 0x64, - 0x89, - 0x54, - 0x12, - 0x00, - 0x01, - 0x53, - 0x01, - 0x65, - 0x04, - 0x64, - 0x01, - 0x7F, - 0x01, - 0x67, - 0x3F, - 0x00, - 0x00, - 0x03, - 0x46, - 0x70, - 0x54, - 0x00, - 0x08, - 0x00, - 0x00, - 0x07, - 0x53, - 0x6F, - 0x81, - 0x46, - 0x00, - 0x53, - 0x53, - 0x00, - 0x13, - 0x00, - 0x00, - 0x03, - 0xC6, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1E, - 0x00, - 0x00, - 0x03, - 0x88, - 0x65, - 0x72, - 0x00, - 0x11, - 0x00, - 0x00, - 0x0B, - 0x54, - 0x09, - 0x65, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x64, - 0x7A, - 0x82, - 0x00, - 0x4B, - 0x00, - 0x00, - 0x06, - 0x46, - 0x81, - 0x91, - 0x89, - 0xC6, - 0x09, - 0x0D, - 0x00, - 0x00, - 0x07, - 0x54, - 0x00, - 0x00, - 0x00, - 0x4C, - 0x75, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x1F, - 0x00, - 0x01, - 0x4C, - 0x13, - 0x00, - 0x00, - 0x0B, - 0x88, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x02, - 0x02, - 0x46, - 0x00, - 0x4C, - 0x00, - 0x00, - 0x16, - 0x53, - 0x75, - 0x66, - 0x70, - 0x88, - 0xB3, - 0x00, - 0x09, - 0xC6, - 0x09, - 0xB3, - 0xC6, - 0xC6, - 0xC6, - 0x00, - 0xC6, - 0x00, - 0x53, - 0x88, - 0x70, - 0x64, - 0x88, - 0x00, - 0x00, - 0x00, - 0x02, - 0x33, - 0x00, - 0x00, - 0x0C, - 0x72, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x64, - 0x64, - 0x7A, - 0x7A, - 0x76, - 0x54, - 0x4E, - 0x00, - 0x00, - 0x11, - 0x89, - 0x75, - 0x66, - 0x66, - 0x81, - 0x75, - 0x76, - 0x88, - 0x76, - 0x76, - 0x76, - 0x72, - 0x6B, - 0x66, - 0x64, - 0x76, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x33, - 0x00, - 0x00, - 0x0B, - 0x70, - 0x64, - 0x64, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x02, - 0x64, - 0x76, - 0x00, - 0x52, - 0x00, - 0x00, - 0x0A, - 0x54, - 0x89, - 0x88, - 0x75, - 0x75, - 0x72, - 0x75, - 0x76, - 0x88, - 0x4C, - 0x06, - 0x00, - 0x00, - 0x05, - 0x46, - 0x00, - 0x70, - 0x02, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x32, - 0x00, - 0x00, - 0x0C, - 0xC6, - 0x75, - 0x7A, - 0x7A, - 0x64, - 0x65, - 0x64, - 0x64, - 0x64, - 0x7D, - 0x65, - 0x89, - 0x61, - 0x00, - 0x00, - 0x06, - 0x76, - 0x7E, - 0x02, - 0x64, - 0x7A, - 0x02, - 0x00, - 0x00, - 0x00, - 0x02, - 0x33, - 0x00, - 0x00, - 0x0A, - 0x54, - 0x02, - 0x7A, - 0x64, - 0x65, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x62, - 0x00, - 0x00, - 0x06, - 0xB3, - 0x72, - 0x6F, - 0x65, - 0x7D, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x02, - 0x34, - 0x00, - 0x00, - 0x09, - 0x76, - 0x02, - 0x02, - 0x65, - 0x7A, - 0x7A, - 0x7A, - 0x66, - 0x4C, - 0x00, - 0x65, - 0x00, - 0x00, - 0x03, - 0x75, - 0x70, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x35, - 0x00, - 0x00, - 0x07, - 0x89, - 0x65, - 0x65, - 0x7B, - 0x02, - 0x02, - 0x46, - 0x00, - 0x67, - 0x00, - 0x00, - 0x03, - 0xB3, - 0x66, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x37, - 0x00, - 0x00, - 0x03, - 0x46, - 0x89, - 0xB3, - 0x00, - 0x69, - 0x00, - 0x00, - 0x03, - 0x4C, - 0x66, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x91, - 0x03, - 0x01, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x02, - 0x91, - 0x00, - 0x01, - 0x4C, - 0x01, - 0x76, - 0x00, - 0x00, - 0x00, - 0x02, - 0x91, - 0x00, - 0x00, - 0x03, - 0x65, - 0x66, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x91, - 0x00, - 0x02, - 0x46, - 0x00, - 0x00, - 0x00, - 0x02, - 0x4D, - 0x00, - 0x01, - 0x54, - 0x01, - 0x53, - 0x00, - 0x00, - 0x00, - 0x02, - 0x4D, - 0x00, - 0x00, - 0x04, - 0x54, - 0x88, - 0x65, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x4E, - 0x00, - 0x00, - 0x03, - 0x6E, - 0x66, - 0x4C, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x02, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0x51, - 0x01, - 0x92, - 0x05, - 0x9D, - 0x01, - 0x92, - 0x05, - 0x52, - 0x01, - 0x93, - 0x05, - 0x9D, - 0x01, - 0x83, - 0x01, - 0xA7, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x06, - 0x90, - 0x01, - 0x83, - 0x05, - 0x52, - 0x01, - 0x93, - 0x06, - 0x90, - 0x01, - 0xA2, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x06, - 0x90, - 0x01, - 0x83, - 0x05, - 0x52, - 0x01, - 0x93, - 0x01, - 0x9B, - 0x05, - 0x90, - 0x01, - 0xA2, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x06, - 0x90, - 0x01, - 0x83, - 0x05, - 0x52, - 0x01, - 0x93, - 0x06, - 0x90, - 0x01, - 0xA3, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x06, - 0x90, - 0x01, - 0x83, - 0x05, - 0x52, - 0x01, - 0x93, - 0x05, - 0x90, - 0x01, - 0x9B, - 0x01, - 0xA2, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x06, - 0x90, - 0x01, - 0x83, - 0x05, - 0x52, - 0x01, - 0x93, - 0x06, - 0x90, - 0x01, - 0xA2, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x06, - 0x90, - 0x01, - 0x83, - 0x05, - 0x52, - 0x01, - 0x93, - 0x06, - 0x90, - 0x01, - 0xA2, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x06, - 0x90, - 0x01, - 0x9D, - 0x05, - 0xA7, - 0x01, - 0x83, - 0x06, - 0x90, - 0x01, - 0xA3, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x12, - 0x90, - 0x01, - 0x9B, - 0x01, - 0xA2, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x13, - 0x90, - 0x01, - 0xA2, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x9B, - 0x12, - 0x90, - 0x01, - 0xA2, - 0x01, - 0xFF, - 0x0C, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0C, - 0x52, - 0x01, - 0xFF, - 0x01, - 0xAA, - 0x13, - 0x90, - 0x01, - 0xA2, - 0x01, - 0xFF, - 0x0C, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0A, - 0x52, - 0x00, - 0x04, - 0xA3, - 0xA2, - 0xA2, - 0x93, - 0x13, - 0x90, - 0x00, - 0x04, - 0x93, - 0xA2, - 0xA3, - 0xA2, - 0x0A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0A, - 0x52, - 0x01, - 0xA2, - 0x01, - 0x7F, - 0x18, - 0x90, - 0x01, - 0x93, - 0x0A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0B, - 0x52, - 0x01, - 0xA7, - 0x01, - 0x83, - 0x15, - 0x90, - 0x01, - 0x7F, - 0x01, - 0xA2, - 0x0B, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0C, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x83, - 0x13, - 0x90, - 0x01, - 0x83, - 0x01, - 0xA7, - 0x0C, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0D, - 0x52, - 0x01, - 0x51, - 0x01, - 0x92, - 0x11, - 0x90, - 0x01, - 0x83, - 0x01, - 0xAA, - 0x0D, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x0F, - 0x52, - 0x01, - 0x93, - 0x01, - 0x9C, - 0x0F, - 0x90, - 0x01, - 0x92, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x10, - 0x52, - 0x01, - 0xA2, - 0x01, - 0xA0, - 0x0E, - 0x90, - 0x01, - 0x92, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x11, - 0x52, - 0x01, - 0xA2, - 0x01, - 0x7F, - 0x09, - 0x90, - 0x00, - 0x05, - 0xA0, - 0x90, - 0x90, - 0x90, - 0x92, - 0x00, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x12, - 0x52, - 0x01, - 0xA7, - 0x01, - 0x83, - 0x07, - 0x90, - 0x00, - 0x06, - 0x9D, - 0xA7, - 0x90, - 0x90, - 0x90, - 0x92, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x13, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x83, - 0x05, - 0x90, - 0x00, - 0x07, - 0x83, - 0xAA, - 0x52, - 0x7F, - 0x9B, - 0x9B, - 0x93, - 0x00, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x14, - 0x52, - 0x00, - 0x0D, - 0xD3, - 0x92, - 0x90, - 0x90, - 0x90, - 0x92, - 0x51, - 0x52, - 0x52, - 0xA7, - 0xA2, - 0xA2, - 0xAA, - 0x00, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x16, - 0x52, - 0x00, - 0x04, - 0x93, - 0x9D, - 0x93, - 0x51, - 0x15, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD5, - 0x2E, - 0x52, - 0x01, - 0xD5, - 0x00, - 0x01, - 0x00, - 0x00, - 0x57, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x02, - 0x06, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0xC5, - 0x19, - 0xD2, - 0x51, - 0x00, - 0x4D, - 0xFD, - 0x00, - 0x05, - 0x51, - 0xD2, - 0x19, - 0xC5, - 0x03, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xD2, - 0x53, - 0xFD, - 0x01, - 0xD2, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x01, - 0x19, - 0x55, - 0xFD, - 0x01, - 0x19, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x55, - 0xFD, - 0x01, - 0xD2, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x55, - 0xFD, - 0x01, - 0x51, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x26, - 0xFD, - 0x00, - 0x0B, - 0xFE, - 0x51, - 0x51, - 0xF1, - 0xF1, - 0xFD, - 0x51, - 0x51, - 0xFE, - 0x51, - 0x51, - 0x00, - 0x25, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x22, - 0xFD, - 0x00, - 0x11, - 0x51, - 0xAA, - 0xA7, - 0xA2, - 0x93, - 0x93, - 0x92, - 0x9D, - 0xA1, - 0x9D, - 0x92, - 0x92, - 0x93, - 0xA2, - 0xA4, - 0xA7, - 0x43, - 0x00, - 0x23, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1F, - 0xFD, - 0x00, - 0x05, - 0x51, - 0x43, - 0xA4, - 0xA2, - 0x92, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x03, - 0xA0, - 0xA0, - 0xA0, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x05, - 0x9D, - 0x93, - 0xA3, - 0xAA, - 0x51, - 0x00, - 0x20, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1E, - 0xFD, - 0x00, - 0x06, - 0x51, - 0xA4, - 0x93, - 0x9F, - 0x9F, - 0x9F, - 0x0E, - 0xA0, - 0x00, - 0x06, - 0x9F, - 0x9F, - 0x9D, - 0xA2, - 0x43, - 0x51, - 0x1E, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1D, - 0xFD, - 0x00, - 0x04, - 0xA7, - 0x93, - 0xA0, - 0x9F, - 0x13, - 0xA0, - 0x00, - 0x06, - 0x9F, - 0x9F, - 0x83, - 0xA2, - 0xFC, - 0x51, - 0x1C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1C, - 0xFD, - 0x00, - 0x03, - 0xA2, - 0xA1, - 0x9F, - 0x00, - 0x17, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0xA0, - 0x92, - 0xAA, - 0x1C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1A, - 0xFD, - 0x00, - 0x03, - 0x26, - 0x93, - 0x9F, - 0x00, - 0x1C, - 0xA0, - 0x00, - 0x03, - 0xA1, - 0xA7, - 0x51, - 0x00, - 0x1A, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x19, - 0xFD, - 0x01, - 0x43, - 0x01, - 0x92, - 0x20, - 0xA0, - 0x01, - 0xA3, - 0x01, - 0x51, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x18, - 0xFD, - 0x01, - 0x51, - 0x01, - 0x9D, - 0x21, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA3, - 0x51, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x17, - 0xFD, - 0x01, - 0xF1, - 0x01, - 0x92, - 0x0F, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x9F, - 0x9F, - 0x00, - 0x12, - 0xA0, - 0x01, - 0xA7, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x16, - 0xFD, - 0x00, - 0x03, - 0xF1, - 0x93, - 0x9F, - 0x00, - 0x0D, - 0xA0, - 0x00, - 0x09, - 0x9F, - 0xA1, - 0x93, - 0xA2, - 0x93, - 0x92, - 0xA0, - 0x9F, - 0x9F, - 0x00, - 0x0F, - 0xA0, - 0x01, - 0xAA, - 0x17, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x16, - 0xFD, - 0x01, - 0xA3, - 0x01, - 0x9F, - 0x0D, - 0xA0, - 0x00, - 0x0B, - 0x9F, - 0x92, - 0xA7, - 0x51, - 0xFD, - 0x51, - 0x43, - 0xA7, - 0xA3, - 0x92, - 0x9F, - 0x00, - 0x0E, - 0xA0, - 0x01, - 0x92, - 0x01, - 0x43, - 0x16, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x03, - 0x43, - 0x9D, - 0x9F, - 0x00, - 0x0E, - 0xA0, - 0x01, - 0xA4, - 0x07, - 0xFD, - 0x01, - 0xA7, - 0x01, - 0xA1, - 0x0E, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA2, - 0x16, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x01, - 0xA2, - 0x01, - 0x9F, - 0x0D, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0x51, - 0x00, - 0x05, - 0xFD, - 0x00, - 0x05, - 0xF1, - 0xF1, - 0x51, - 0x92, - 0x9F, - 0x00, - 0x0D, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0x9D, - 0x43, - 0xFE, - 0x14, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x14, - 0xFD, - 0x00, - 0x03, - 0xAA, - 0x9D, - 0x9F, - 0x00, - 0x0E, - 0xA0, - 0x01, - 0x92, - 0x01, - 0x43, - 0x04, - 0xFD, - 0x00, - 0x06, - 0xA8, - 0x93, - 0xA3, - 0x43, - 0xA2, - 0x9F, - 0x0E, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x93, - 0x15, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x14, - 0xFD, - 0x01, - 0xA2, - 0x01, - 0x9F, - 0x0E, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x83, - 0x43, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x05, - 0x93, - 0xA0, - 0xA1, - 0x9D, - 0xA1, - 0x00, - 0x10, - 0xA0, - 0x01, - 0xA1, - 0x01, - 0xAA, - 0x14, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x00, - 0x03, - 0x43, - 0x9D, - 0x9F, - 0x00, - 0x10, - 0xA0, - 0x00, - 0x06, - 0xA7, - 0x51, - 0xFD, - 0xFD, - 0xFD, - 0xA2, - 0x14, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA2, - 0x14, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x01, - 0xA7, - 0x01, - 0x9F, - 0x10, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA3, - 0x04, - 0xFD, - 0x01, - 0xA7, - 0x14, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0x51, - 0x00, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x00, - 0x03, - 0x51, - 0xA2, - 0x9F, - 0x00, - 0x10, - 0xA0, - 0x00, - 0x07, - 0x9F, - 0x93, - 0x51, - 0xFD, - 0xFD, - 0xFD, - 0x26, - 0x00, - 0x14, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA1, - 0xAA, - 0x00, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0x26, - 0x01, - 0x9D, - 0x11, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x83, - 0xFC, - 0x00, - 0x04, - 0xFD, - 0x01, - 0x92, - 0x14, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA3, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0x9F, - 0x12, - 0xA0, - 0x00, - 0x08, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xFD, - 0x51, - 0xA2, - 0x9F, - 0x13, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x93, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA7, - 0x01, - 0x9F, - 0x12, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA3, - 0x04, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0x9F, - 0x13, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x93, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA4, - 0x01, - 0x9F, - 0x12, - 0xA0, - 0x00, - 0x07, - 0x9F, - 0x93, - 0x26, - 0xFD, - 0xFD, - 0xFD, - 0x51, - 0x00, - 0x14, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x92, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA3, - 0x01, - 0x9F, - 0x12, - 0xA0, - 0x00, - 0x09, - 0x9F, - 0x83, - 0xFC, - 0xFD, - 0xFD, - 0xFD, - 0x51, - 0x92, - 0x9F, - 0x00, - 0x13, - 0xA0, - 0x01, - 0x9D, - 0x01, - 0xFE, - 0x12, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA2, - 0x01, - 0x9F, - 0x13, - 0xA0, - 0x00, - 0x08, - 0x9F, - 0xAA, - 0x51, - 0xFD, - 0xFD, - 0x51, - 0xA3, - 0x9F, - 0x13, - 0xA0, - 0x01, - 0xA1, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x11, - 0xFD, - 0x00, - 0x03, - 0xFE, - 0x93, - 0x9F, - 0x00, - 0x12, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x99, - 0xA7, - 0x00, - 0x04, - 0xFD, - 0x01, - 0xA7, - 0x01, - 0x9F, - 0x13, - 0xA0, - 0x01, - 0xA1, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA2, - 0x01, - 0x9F, - 0x10, - 0xA0, - 0x00, - 0x0B, - 0x8B, - 0x93, - 0x92, - 0x9D, - 0xA7, - 0xFD, - 0xFD, - 0xFD, - 0xFE, - 0x43, - 0x9F, - 0x00, - 0x13, - 0xA0, - 0x01, - 0x9D, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA3, - 0x01, - 0x9F, - 0x0F, - 0xA0, - 0x00, - 0x06, - 0x9F, - 0x93, - 0xFD, - 0x51, - 0xAA, - 0x51, - 0x04, - 0xFD, - 0x01, - 0x43, - 0x14, - 0xA0, - 0x01, - 0x9D, - 0x01, - 0xFE, - 0x12, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA7, - 0x01, - 0x9F, - 0x0F, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0xFC, - 0x00, - 0x07, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0x9F, - 0x12, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0x51, - 0x00, - 0x12, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xA7, - 0x01, - 0x9F, - 0x10, - 0xA0, - 0x00, - 0x0B, - 0xA1, - 0xA2, - 0xAA, - 0xFE, - 0xFE, - 0xFD, - 0xFD, - 0xFD, - 0x51, - 0x93, - 0x9F, - 0x00, - 0x12, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x93, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0x9F, - 0x11, - 0xA0, - 0x00, - 0x08, - 0x9F, - 0x92, - 0x93, - 0xA2, - 0xA7, - 0xAA, - 0xA4, - 0x93, - 0x14, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA2, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x12, - 0xFD, - 0x00, - 0x03, - 0x51, - 0x92, - 0x9F, - 0x00, - 0x11, - 0xA0, - 0x00, - 0x07, - 0x9F, - 0x9F, - 0xA1, - 0x9D, - 0x9D, - 0x9D, - 0x9F, - 0x00, - 0x14, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA4, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x01, - 0xA3, - 0x01, - 0x9F, - 0x15, - 0xA0, - 0x01, - 0x9F, - 0x15, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x9D, - 0x43, - 0x00, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0x9F, - 0x16, - 0xA0, - 0x00, - 0x04, - 0x9D, - 0xA3, - 0xA4, - 0x93, - 0x11, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x93, - 0x51, - 0x00, - 0x13, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x00, - 0x03, - 0x26, - 0x92, - 0x9F, - 0x00, - 0x14, - 0xA0, - 0x00, - 0x06, - 0x92, - 0x43, - 0xFD, - 0xFD, - 0xFD, - 0xA3, - 0x10, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA3, - 0x14, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x14, - 0xFD, - 0x01, - 0xA3, - 0x01, - 0x9F, - 0x13, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0xA7, - 0x04, - 0xFD, - 0x00, - 0x03, - 0x26, - 0x93, - 0x9F, - 0x00, - 0x0D, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x14, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x14, - 0xFD, - 0x00, - 0x03, - 0x26, - 0x92, - 0x9F, - 0x00, - 0x12, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x26, - 0x05, - 0xFD, - 0x01, - 0xA2, - 0x01, - 0x9F, - 0x0E, - 0xA0, - 0x01, - 0xA3, - 0x15, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x01, - 0xA4, - 0x13, - 0xA0, - 0x00, - 0x09, - 0x9F, - 0xAA, - 0xFE, - 0xFD, - 0xFD, - 0xFD, - 0x51, - 0xA2, - 0x9F, - 0x00, - 0x0C, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0x51, - 0x00, - 0x15, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x03, - 0x51, - 0x92, - 0x9F, - 0x00, - 0x12, - 0xA0, - 0x00, - 0x08, - 0x93, - 0xFE, - 0x51, - 0xFD, - 0xFD, - 0x43, - 0x9D, - 0x9F, - 0x0D, - 0xA0, - 0x01, - 0xA4, - 0x16, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x16, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0xA1, - 0x13, - 0xA0, - 0x00, - 0x06, - 0x93, - 0xAA, - 0xAA, - 0xA4, - 0x92, - 0x9F, - 0x0C, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x93, - 0x17, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x17, - 0xFD, - 0x01, - 0xA4, - 0x13, - 0xA0, - 0x00, - 0x05, - 0x9F, - 0x83, - 0x92, - 0xA1, - 0x9F, - 0x00, - 0x0D, - 0xA0, - 0x01, - 0x92, - 0x01, - 0x26, - 0x17, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x18, - 0xFD, - 0x01, - 0xA2, - 0x14, - 0xA0, - 0x01, - 0x9F, - 0x0E, - 0xA0, - 0x01, - 0x9D, - 0x01, - 0x43, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x19, - 0xFD, - 0x01, - 0x93, - 0x20, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA1, - 0xAA, - 0x00, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1A, - 0xFD, - 0x00, - 0x03, - 0xA2, - 0xA1, - 0x9F, - 0x00, - 0x1C, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0xAA, - 0x00, - 0x1A, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1B, - 0xFD, - 0x00, - 0x03, - 0xA4, - 0x9D, - 0x9F, - 0x00, - 0x19, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0x9F, - 0x93, - 0x43, - 0x1B, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1C, - 0xFD, - 0x00, - 0x04, - 0xAA, - 0x92, - 0x9F, - 0x9F, - 0x16, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0x9D, - 0xA2, - 0x51, - 0x1C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1D, - 0xFD, - 0x00, - 0x05, - 0x51, - 0xA3, - 0x92, - 0x9F, - 0x9F, - 0x00, - 0x12, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0xA1, - 0x93, - 0xAA, - 0x1E, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x1F, - 0xFD, - 0x00, - 0x06, - 0x43, - 0xA3, - 0x92, - 0x9F, - 0x9F, - 0x9F, - 0x0C, - 0xA0, - 0x00, - 0x06, - 0x9F, - 0x9F, - 0xA0, - 0x93, - 0xA7, - 0x51, - 0x1F, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x21, - 0xFD, - 0x00, - 0x04, - 0xAA, - 0xA7, - 0xA2, - 0x92, - 0x0B, - 0x9F, - 0x00, - 0x05, - 0xA0, - 0x93, - 0xA4, - 0xAA, - 0x26, - 0x00, - 0x21, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x23, - 0xFD, - 0x00, - 0x0F, - 0x51, - 0xAA, - 0xAA, - 0xA7, - 0xA3, - 0xA2, - 0xA2, - 0x93, - 0x93, - 0xA2, - 0xA3, - 0xA4, - 0xA7, - 0x43, - 0x26, - 0x00, - 0x24, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x55, - 0xFD, - 0x01, - 0xFC, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x55, - 0xFD, - 0x01, - 0xD2, - 0x00, - 0x00, - 0x01, - 0x19, - 0x55, - 0xFD, - 0x01, - 0x19, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xD2, - 0x53, - 0xFD, - 0x01, - 0xD2, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0xC5, - 0x19, - 0xD2, - 0x51, - 0x00, - 0x4D, - 0xFD, - 0x00, - 0x05, - 0xFC, - 0xD2, - 0x19, - 0xC5, - 0x03, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x57, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x07, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0xC5, - 0x19, - 0xD2, - 0x51, - 0x00, - 0x4D, - 0xFD, - 0x00, - 0x05, - 0x51, - 0xD2, - 0x19, - 0xC5, - 0x03, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xD2, - 0x53, - 0xFD, - 0x01, - 0xD2, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x01, - 0x19, - 0x55, - 0xFD, - 0x01, - 0x19, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x55, - 0xFD, - 0x01, - 0xD2, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x55, - 0xFD, - 0x01, - 0x51, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x19, - 0xFD, - 0x01, - 0x52, - 0x1E, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x52, - 0x1C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x17, - 0xFD, - 0x00, - 0x03, - 0xFE, - 0xA9, - 0xA4, - 0x00, - 0x1E, - 0xA2, - 0x00, - 0x03, - 0xA3, - 0xA6, - 0x52, - 0x00, - 0x1B, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x17, - 0xFD, - 0x00, - 0x03, - 0x52, - 0xA9, - 0xA4, - 0x00, - 0x1E, - 0xA2, - 0x00, - 0x04, - 0xA3, - 0xA6, - 0xFF, - 0x51, - 0x1A, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x16, - 0xFD, - 0x00, - 0x03, - 0x52, - 0xA8, - 0x92, - 0x00, - 0x20, - 0x91, - 0x00, - 0x04, - 0x83, - 0xA2, - 0x2F, - 0x52, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x04, - 0x52, - 0xA8, - 0x8B, - 0x98, - 0x20, - 0x99, - 0x00, - 0x04, - 0x98, - 0x9C, - 0xA2, - 0x52, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x05, - 0x2F, - 0xA2, - 0x98, - 0x99, - 0x9C, - 0x00, - 0x07, - 0x9B, - 0x01, - 0x9C, - 0x0F, - 0x9B, - 0x01, - 0x9C, - 0x06, - 0x9B, - 0x00, - 0x05, - 0x9C, - 0x90, - 0x98, - 0x91, - 0xA8, - 0x00, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA8, - 0x92, - 0x98, - 0x9C, - 0x9B, - 0x9B, - 0x9A, - 0x9A, - 0x9A, - 0x99, - 0x99, - 0x9B, - 0x9B, - 0x9B, - 0x9A, - 0x99, - 0x9A, - 0x99, - 0x9A, - 0x9B, - 0x9B, - 0x9B, - 0x9A, - 0x99, - 0x9A, - 0x99, - 0x9B, - 0x9B, - 0x9B, - 0x9A, - 0x9A, - 0x9A, - 0x99, - 0x9A, - 0x9B, - 0x9B, - 0x9C, - 0x99, - 0x91, - 0xA2, - 0x52, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9B, - 0x9B, - 0x91, - 0x92, - 0x92, - 0x92, - 0x8B, - 0x9A, - 0x9B, - 0x90, - 0x83, - 0x92, - 0x92, - 0x92, - 0x83, - 0x9B, - 0x9B, - 0x90, - 0x83, - 0x92, - 0x92, - 0x92, - 0x91, - 0x9B, - 0x9A, - 0x91, - 0x8B, - 0x92, - 0x92, - 0x92, - 0x91, - 0x9B, - 0x9B, - 0x9A, - 0x91, - 0x93, - 0x52, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x8B, - 0x98, - 0x9B, - 0x9A, - 0x9B, - 0xA3, - 0xAF, - 0x52, - 0x52, - 0xA6, - 0x9C, - 0x9A, - 0x9A, - 0xA4, - 0xAF, - 0x52, - 0xAF, - 0xA4, - 0x9A, - 0x99, - 0x91, - 0xA6, - 0x52, - 0x52, - 0xAF, - 0xA2, - 0x9C, - 0x98, - 0x8B, - 0xA8, - 0x52, - 0x52, - 0xAF, - 0x93, - 0x9B, - 0x9A, - 0x9A, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x28, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9A, - 0x9C, - 0xA6, - 0xFD, - 0xFD, - 0x52, - 0xA9, - 0x83, - 0x99, - 0x91, - 0xA6, - 0xFD, - 0xFD, - 0x52, - 0xAF, - 0x9A, - 0x98, - 0x8B, - 0xA8, - 0xFD, - 0xFD, - 0x2D, - 0xA6, - 0x91, - 0x98, - 0x93, - 0xAF, - 0xFD, - 0xFD, - 0x52, - 0xA2, - 0x91, - 0x99, - 0x9A, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x9B, - 0xA6, - 0x2E, - 0xAF, - 0x2D, - 0xA9, - 0x91, - 0x99, - 0x9B, - 0xA8, - 0x2D, - 0x52, - 0x2F, - 0xA8, - 0x9A, - 0x99, - 0x91, - 0xA9, - 0x2D, - 0x2D, - 0x2F, - 0xA4, - 0x91, - 0x98, - 0x92, - 0x45, - 0xAF, - 0x2E, - 0x52, - 0xA2, - 0x9C, - 0x99, - 0x9A, - 0x91, - 0xA2, - 0x51, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x90, - 0x9B, - 0x92, - 0xA3, - 0xA4, - 0xA3, - 0x93, - 0x9B, - 0x90, - 0x9A, - 0x93, - 0xA2, - 0xA4, - 0xA2, - 0x93, - 0x9A, - 0x9A, - 0x9B, - 0x93, - 0xA4, - 0xA3, - 0xA2, - 0x92, - 0x9B, - 0x99, - 0x91, - 0x93, - 0xA4, - 0xA3, - 0xA2, - 0x8B, - 0x9B, - 0x9A, - 0x9A, - 0x91, - 0x93, - 0x52, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9B, - 0x9B, - 0x05, - 0x98, - 0x00, - 0x04, - 0x9A, - 0x9B, - 0x90, - 0x99, - 0x04, - 0x98, - 0x00, - 0x03, - 0x9B, - 0x9B, - 0x90, - 0x00, - 0x05, - 0x98, - 0x00, - 0x03, - 0x9B, - 0x9C, - 0x9A, - 0x00, - 0x04, - 0x98, - 0x00, - 0x07, - 0x99, - 0x90, - 0x9B, - 0x99, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x28, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x90, - 0x9B, - 0x8B, - 0x93, - 0x93, - 0x93, - 0x92, - 0x9B, - 0x90, - 0x9B, - 0x8B, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x90, - 0x9B, - 0x9C, - 0x92, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x9B, - 0x99, - 0x91, - 0x92, - 0x93, - 0x93, - 0x93, - 0x83, - 0x9B, - 0x9B, - 0x9A, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x9B, - 0xA4, - 0xFF, - 0xFF, - 0xFF, - 0xA8, - 0x91, - 0x99, - 0x9A, - 0xA6, - 0xFF, - 0xFE, - 0xFF, - 0xA6, - 0x9A, - 0x99, - 0x91, - 0xA8, - 0xFE, - 0xFF, - 0xFF, - 0xA2, - 0x91, - 0x98, - 0x92, - 0xA9, - 0xFF, - 0xFF, - 0xFF, - 0xA2, - 0x9B, - 0x9A, - 0x9A, - 0x91, - 0xA2, - 0x51, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9A, - 0x9C, - 0xA6, - 0xFF, - 0xFE, - 0xFD, - 0xA9, - 0x83, - 0x99, - 0x91, - 0xA6, - 0xF1, - 0xFE, - 0xFD, - 0xA9, - 0x9A, - 0x99, - 0x91, - 0xA8, - 0x52, - 0x51, - 0xFE, - 0xA4, - 0x91, - 0x98, - 0x93, - 0xAD, - 0xF1, - 0xFE, - 0x51, - 0xA3, - 0x91, - 0x99, - 0x9A, - 0x91, - 0x93, - 0x52, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x9B, - 0xA4, - 0xAF, - 0x2E, - 0x2F, - 0xA8, - 0x91, - 0x99, - 0x9C, - 0xA6, - 0xAF, - 0x2F, - 0x45, - 0xA8, - 0x90, - 0x99, - 0x91, - 0xA8, - 0x45, - 0x2F, - 0x45, - 0xA3, - 0x9C, - 0x98, - 0x92, - 0xA9, - 0xFF, - 0x2F, - 0x45, - 0xA2, - 0x9B, - 0x9A, - 0x9A, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x28, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9B, - 0x9B, - 0x8B, - 0x93, - 0x93, - 0x93, - 0x92, - 0x90, - 0x9B, - 0x9B, - 0x8B, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x90, - 0x90, - 0x9B, - 0x92, - 0x93, - 0x93, - 0x93, - 0x8B, - 0x9B, - 0x9A, - 0x91, - 0x92, - 0x93, - 0x93, - 0x93, - 0x83, - 0x90, - 0x9B, - 0x9A, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9B, - 0x9B, - 0x99, - 0x9A, - 0x9B, - 0x90, - 0x98, - 0x9A, - 0x9B, - 0x9B, - 0x9A, - 0x9A, - 0x9C, - 0x99, - 0x98, - 0x9B, - 0x9B, - 0x9A, - 0x98, - 0x99, - 0x9B, - 0x98, - 0x99, - 0x9B, - 0x9C, - 0x9A, - 0x98, - 0x9A, - 0x9B, - 0x9A, - 0x99, - 0x9A, - 0x9C, - 0x9A, - 0x91, - 0xA2, - 0x51, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x07, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x90, - 0x9B, - 0x92, - 0x00, - 0x04, - 0x93, - 0x00, - 0x04, - 0x91, - 0x9B, - 0x9B, - 0x92, - 0x04, - 0x93, - 0x00, - 0x0B, - 0x9B, - 0x9A, - 0x9C, - 0x93, - 0xA2, - 0x93, - 0xA2, - 0x8B, - 0x9C, - 0x99, - 0x91, - 0x00, - 0x04, - 0x93, - 0x00, - 0x07, - 0x8B, - 0x9C, - 0x90, - 0x99, - 0x91, - 0x93, - 0x52, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x9C, - 0xA6, - 0x26, - 0xFD, - 0xFD, - 0xA9, - 0x9D, - 0x99, - 0x9C, - 0xA8, - 0x51, - 0xFD, - 0x51, - 0xA9, - 0x9A, - 0x98, - 0x9D, - 0xA9, - 0xFD, - 0xFD, - 0x52, - 0xA4, - 0x91, - 0x98, - 0x93, - 0xA8, - 0xFD, - 0xFD, - 0x51, - 0xA2, - 0x91, - 0x99, - 0x9A, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x28, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9A, - 0x9C, - 0xA8, - 0x26, - 0xFD, - 0xFD, - 0xA9, - 0x83, - 0x99, - 0x91, - 0xA8, - 0xFD, - 0xFD, - 0xAF, - 0xAF, - 0x9A, - 0x99, - 0x8B, - 0xA9, - 0xFD, - 0x51, - 0x31, - 0xA6, - 0x91, - 0x98, - 0x93, - 0xA9, - 0x51, - 0xFD, - 0x52, - 0xA4, - 0x91, - 0x99, - 0x9A, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x9B, - 0xA3, - 0xA9, - 0xAF, - 0xAF, - 0xA4, - 0x91, - 0x9A, - 0x9A, - 0xA4, - 0xAF, - 0xAF, - 0xA9, - 0xA4, - 0x90, - 0x99, - 0x91, - 0xA6, - 0xAF, - 0xAF, - 0xAF, - 0xA2, - 0x91, - 0x98, - 0x92, - 0xA6, - 0xAF, - 0xAF, - 0xAF, - 0x93, - 0x9C, - 0x9A, - 0x9A, - 0x91, - 0xA2, - 0x51, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9B, - 0x9B, - 0x91, - 0x8B, - 0x92, - 0x8B, - 0x9D, - 0x9B, - 0x9B, - 0x90, - 0x9D, - 0x8B, - 0x92, - 0x8B, - 0x9D, - 0x90, - 0x90, - 0x9B, - 0x9D, - 0x92, - 0x8B, - 0x8B, - 0x91, - 0x9B, - 0x90, - 0x9C, - 0x83, - 0x92, - 0x8B, - 0x8B, - 0x91, - 0x9B, - 0x9B, - 0x9A, - 0x91, - 0x93, - 0x52, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9B, - 0x9B, - 0x99, - 0x9B, - 0x91, - 0x91, - 0x9A, - 0x9A, - 0x9B, - 0x9B, - 0x99, - 0x9B, - 0x91, - 0x9B, - 0x99, - 0x9B, - 0x9B, - 0x9A, - 0x9B, - 0x9C, - 0x91, - 0x9C, - 0x99, - 0x9B, - 0x9C, - 0x99, - 0x99, - 0x9C, - 0x91, - 0x90, - 0x99, - 0x90, - 0x9C, - 0x99, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x28, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x90, - 0x9B, - 0x93, - 0xA3, - 0xA3, - 0xA3, - 0x93, - 0x91, - 0x9B, - 0x9B, - 0x93, - 0xA3, - 0xA4, - 0xA4, - 0x93, - 0x9A, - 0x9A, - 0x91, - 0x93, - 0xA4, - 0xA3, - 0xA3, - 0x93, - 0x9C, - 0x98, - 0x8B, - 0xA2, - 0xA4, - 0xA3, - 0xA4, - 0x92, - 0x9C, - 0x9A, - 0x9A, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x9C, - 0xA6, - 0xFE, - 0x51, - 0xFD, - 0xA8, - 0x83, - 0x99, - 0x9C, - 0xA8, - 0xFD, - 0xFD, - 0x52, - 0xAF, - 0x9A, - 0x99, - 0x8B, - 0xA6, - 0xFE, - 0xFD, - 0x51, - 0xA4, - 0x91, - 0x98, - 0x93, - 0xA9, - 0xFD, - 0xFD, - 0xFD, - 0xA3, - 0x91, - 0x99, - 0x9A, - 0x91, - 0xA2, - 0x51, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9A, - 0x9C, - 0xA6, - 0xA9, - 0xF1, - 0xFD, - 0xA8, - 0x83, - 0x99, - 0x91, - 0xA8, - 0xAF, - 0xFD, - 0x51, - 0xAF, - 0x90, - 0x99, - 0x83, - 0xA6, - 0xFE, - 0xFD, - 0x51, - 0xA3, - 0x91, - 0x98, - 0x93, - 0xAF, - 0x52, - 0x51, - 0x52, - 0xA3, - 0x91, - 0x99, - 0x9A, - 0x91, - 0x93, - 0x52, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x90, - 0xA2, - 0xA6, - 0xA6, - 0xA6, - 0xA2, - 0x91, - 0x9A, - 0x90, - 0xA3, - 0xA8, - 0xA6, - 0xA6, - 0xA2, - 0x9B, - 0x9A, - 0x91, - 0xA3, - 0xA8, - 0xA6, - 0xA6, - 0xA2, - 0x91, - 0x98, - 0x8B, - 0xA4, - 0xA8, - 0xA6, - 0xA8, - 0x93, - 0x9B, - 0x9A, - 0x9A, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x28, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9B, - 0x9B, - 0x9C, - 0x91, - 0x83, - 0x91, - 0x91, - 0x90, - 0x9B, - 0x9B, - 0x9C, - 0x91, - 0x83, - 0x91, - 0x9C, - 0x90, - 0x9B, - 0x90, - 0x91, - 0x91, - 0x83, - 0x91, - 0x9C, - 0x9B, - 0x9B, - 0x90, - 0x91, - 0x91, - 0x83, - 0x91, - 0x9B, - 0x90, - 0x9B, - 0x9A, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x16, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9B, - 0x9B, - 0x90, - 0x90, - 0x9B, - 0x90, - 0x90, - 0x9B, - 0x9B, - 0x9B, - 0x90, - 0x9A, - 0x90, - 0x90, - 0x90, - 0x9B, - 0x9B, - 0x9B, - 0x05, - 0x90, - 0x00, - 0x0E, - 0x9B, - 0x9B, - 0x9B, - 0x90, - 0x90, - 0x9B, - 0x9A, - 0x9B, - 0x9B, - 0x9B, - 0x9A, - 0x91, - 0xA2, - 0x51, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x99, - 0x9B, - 0x9B, - 0x9A, - 0x1D, - 0x99, - 0x00, - 0x06, - 0x9B, - 0x9B, - 0x99, - 0x91, - 0x93, - 0x52, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x9A, - 0x99, - 0x1C, - 0x91, - 0x00, - 0x07, - 0x9B, - 0x9A, - 0x9B, - 0x9A, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x99, - 0x9A, - 0x91, - 0xA2, - 0x1C, - 0xA6, - 0x00, - 0x06, - 0xA4, - 0x8B, - 0x9A, - 0x99, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9A, - 0x8B, - 0xAF, - 0x1D, - 0xFD, - 0x00, - 0x06, - 0xA4, - 0x9B, - 0x99, - 0x91, - 0xA2, - 0x51, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x92, - 0xAF, - 0x1D, - 0xFD, - 0x00, - 0x06, - 0xA4, - 0x91, - 0x98, - 0x91, - 0x93, - 0x52, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9C, - 0x92, - 0xA9, - 0x1C, - 0xFD, - 0x00, - 0x07, - 0x51, - 0xA4, - 0x83, - 0x98, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x92, - 0xA9, - 0x1C, - 0xFD, - 0x00, - 0x06, - 0x52, - 0xA4, - 0x9D, - 0x98, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x92, - 0xA9, - 0x1D, - 0xFD, - 0x00, - 0x06, - 0xA4, - 0x91, - 0x98, - 0x91, - 0xA2, - 0x51, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x92, - 0xA9, - 0x1D, - 0xFD, - 0x00, - 0x06, - 0xA4, - 0x83, - 0x98, - 0x91, - 0x93, - 0x52, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9B, - 0x92, - 0xAF, - 0x1C, - 0xFD, - 0x00, - 0x07, - 0xFE, - 0xA4, - 0x9D, - 0x98, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA6, - 0x92, - 0x98, - 0x9A, - 0x92, - 0x52, - 0x1A, - 0xFD, - 0x00, - 0x08, - 0xFE, - 0x51, - 0x52, - 0xA3, - 0x91, - 0x98, - 0x91, - 0x93, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x29, - 0xA6, - 0x92, - 0x99, - 0x99, - 0x83, - 0xA6, - 0xA9, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA8, - 0xA9, - 0xA9, - 0x93, - 0x9A, - 0x99, - 0x91, - 0xA2, - 0x30, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x06, - 0xA8, - 0x92, - 0x98, - 0x9B, - 0x9B, - 0x91, - 0x1C, - 0x8B, - 0x00, - 0x07, - 0x83, - 0x9C, - 0x9B, - 0x99, - 0x91, - 0xA2, - 0xFE, - 0x00, - 0x18, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x07, - 0xA9, - 0x93, - 0x98, - 0x9A, - 0x9B, - 0x9A, - 0x90, - 0x00, - 0x1B, - 0x9B, - 0x00, - 0x06, - 0x9A, - 0x9B, - 0x9B, - 0x99, - 0x91, - 0xA6, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x00, - 0x04, - 0x51, - 0xA6, - 0x8B, - 0x98, - 0x1F, - 0x99, - 0x00, - 0x05, - 0x9A, - 0x98, - 0x99, - 0xA2, - 0x52, - 0x00, - 0x19, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x16, - 0xFD, - 0x00, - 0x03, - 0x52, - 0xA6, - 0x92, - 0x00, - 0x1F, - 0x91, - 0x00, - 0x04, - 0x9C, - 0x83, - 0xA2, - 0xAF, - 0x1A, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x55, - 0xFD, - 0x01, - 0xFC, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x55, - 0xFD, - 0x01, - 0xD2, - 0x00, - 0x00, - 0x01, - 0x19, - 0x55, - 0xFD, - 0x01, - 0x19, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xD2, - 0x53, - 0xFD, - 0x01, - 0xD2, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0xC5, - 0x19, - 0xD2, - 0x51, - 0x00, - 0x4D, - 0xFD, - 0x00, - 0x05, - 0xFC, - 0xD2, - 0x19, - 0xC5, - 0x03, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x16, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x0A, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x05, - 0x2E, - 0x00, - 0x14, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x05, - 0x31, - 0x00, - 0x04, - 0x30, - 0x31, - 0x30, - 0x30, - 0x0C, - 0x31, - 0x00, - 0x03, - 0x30, - 0x31, - 0x30, - 0x00, - 0x06, - 0x31, - 0x01, - 0x30, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x03, - 0x26, - 0x43, - 0x26, - 0x00, - 0x04, - 0x43, - 0x00, - 0x0F, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x26, - 0x00, - 0x09, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x04, - 0x43, - 0x42, - 0x42, - 0x43, - 0x05, - 0x42, - 0x01, - 0x3C, - 0x01, - 0xF6, - 0x05, - 0x00, - 0x00, - 0x09, - 0xF7, - 0x3C, - 0x43, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x00, - 0x04, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0B, - 0x42, - 0x00, - 0x0D, - 0x29, - 0x42, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x00, - 0x07, - 0x42, - 0x01, - 0x29, - 0x01, - 0x29, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0E, - 0x29, - 0x00, - 0x0B, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x28, - 0x00, - 0x0B, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x00, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x27, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3D, - 0x00, - 0x0B, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x00, - 0x0D, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0B, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x0D, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x0B, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x00, - 0x0D, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x34, - 0x01, - 0x34, - 0x05, - 0x35, - 0x00, - 0x0A, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x0D, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x05, - 0x18, - 0x00, - 0x03, - 0x34, - 0x34, - 0x34, - 0x00, - 0x05, - 0x18, - 0x01, - 0x61, - 0x01, - 0xF4, - 0x05, - 0x00, - 0x00, - 0x12, - 0x55, - 0x1A, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x10, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x18, - 0x1B, - 0x00, - 0x0D, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x20, - 0x00, - 0x05, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x0D, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x96, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x03, - 0x2E, - 0x2E, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x07, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x0F, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x0E, - 0x31, - 0x00, - 0x03, - 0x30, - 0x31, - 0x30, - 0x00, - 0x09, - 0x31, - 0x00, - 0x05, - 0x30, - 0x31, - 0x30, - 0x31, - 0x30, - 0x00, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x05, - 0x26, - 0x01, - 0x30, - 0x20, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x11, - 0x41, - 0x21, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x00, - 0x04, - 0x43, - 0x00, - 0x0B, - 0x26, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x43, - 0x43, - 0x26, - 0x00, - 0x08, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x08, - 0x42, - 0x01, - 0x3C, - 0x01, - 0xF6, - 0x05, - 0x00, - 0x00, - 0x07, - 0xF7, - 0x3C, - 0x43, - 0x42, - 0x42, - 0x3C, - 0xF6, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0xF7, - 0x3C, - 0x43, - 0x00, - 0x05, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x1B, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x42, - 0x29, - 0x42, - 0x57, - 0x00, - 0xF5, - 0x40, - 0x42, - 0x50, - 0x00, - 0x00, - 0x58, - 0x42, - 0x42, - 0x29, - 0x29, - 0x00, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x07, - 0x29, - 0x00, - 0x17, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x29, - 0x20, - 0x00, - 0x00, - 0x58, - 0x29, - 0x29, - 0x29, - 0x56, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x08, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x28, - 0x00, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x28, - 0x5C, - 0x00, - 0x00, - 0x21, - 0x28, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x00, - 0x08, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x27, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x27, - 0x59, - 0x00, - 0x00, - 0x4E, - 0x27, - 0x27, - 0x27, - 0x21, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3D, - 0x00, - 0x17, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x41, - 0x3D, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x59, - 0x00, - 0x08, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x07, - 0x3C, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x3C, - 0x59, - 0x00, - 0x00, - 0x37, - 0x3C, - 0x3C, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3F, - 0x00, - 0x17, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x3F, - 0x59, - 0x00, - 0x00, - 0xB2, - 0x3F, - 0x3F, - 0x3F, - 0xF9, - 0x00, - 0x00, - 0x5B, - 0x00, - 0x08, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x3E, - 0x00, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x3E, - 0x5A, - 0x00, - 0x00, - 0x0B, - 0x3E, - 0x3E, - 0x3E, - 0x59, - 0x00, - 0x00, - 0x50, - 0x00, - 0x08, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x07, - 0x19, - 0x00, - 0x17, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x50, - 0x00, - 0x00, - 0x57, - 0x3E, - 0x19, - 0x19, - 0x56, - 0x00, - 0xF5, - 0x1F, - 0x00, - 0x08, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x00, - 0x16, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x35, - 0x35, - 0xF7, - 0x54, - 0xF4, - 0x61, - 0x35, - 0x5F, - 0x00, - 0x00, - 0x56, - 0x34, - 0x08, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x06, - 0x18, - 0x01, - 0x61, - 0x01, - 0xF4, - 0x05, - 0x00, - 0x00, - 0x07, - 0x55, - 0x1A, - 0x18, - 0x18, - 0x18, - 0x61, - 0xF4, - 0x00, - 0x05, - 0x00, - 0x00, - 0x0D, - 0x55, - 0x1A, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x09, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x06, - 0x33, - 0x00, - 0x06, - 0xB2, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x0B, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x1C, - 0x1B, - 0x00, - 0x09, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x00, - 0x07, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x08, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x09, - 0x3A, - 0x00, - 0x04, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x05, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x2B, - 0x09, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x1B, - 0x2B, - 0x01, - 0x3B, - 0x0A, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x0F, - 0x2C, - 0x01, - 0x45, - 0x05, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x01, - 0x2F, - 0x04, - 0x45, - 0x00, - 0x0E, - 0x2F, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x0D, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x06, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x00, - 0x09, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x2D, - 0x00, - 0x04, - 0x31, - 0x00, - 0x1B, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x00, - 0x06, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x10, - 0x26, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x30, - 0x04, - 0x26, - 0x04, - 0x30, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x26, - 0x43, - 0x04, - 0x26, - 0x01, - 0x43, - 0x0A, - 0x26, - 0x00, - 0x05, - 0x43, - 0x26, - 0xF7, - 0x00, - 0x41, - 0x00, - 0x06, - 0x26, - 0x01, - 0x43, - 0x09, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x01, - 0x42, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x33, - 0x00, - 0x00, - 0x5A, - 0x0D, - 0x43, - 0x00, - 0x05, - 0x42, - 0x43, - 0x43, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x29, - 0x00, - 0x04, - 0x32, - 0x00, - 0x00, - 0x5A, - 0x10, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x12, - 0x28, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x54, - 0x59, - 0x10, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x12, - 0x27, - 0x00, - 0x04, - 0x1A, - 0x00, - 0x00, - 0x59, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x04, - 0x41, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x00, - 0x04, - 0x37, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x08, - 0x4F, - 0x09, - 0xB8, - 0x13, - 0x13, - 0x00, - 0x00, - 0x59, - 0x10, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x08, - 0x5A, - 0x54, - 0x00, - 0xF5, - 0x59, - 0x00, - 0x00, - 0x59, - 0x0E, - 0x3E, - 0x00, - 0x04, - 0x19, - 0x3E, - 0x60, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x01, - 0x50, - 0x01, - 0xB8, - 0x04, - 0x00, - 0x01, - 0x58, - 0x10, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1A, - 0x0B, - 0x35, - 0x34, - 0x34, - 0x35, - 0x0B, - 0x34, - 0x00, - 0x13, - 0x35, - 0x34, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x58, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x00, - 0x04, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x12, - 0x18, - 0x00, - 0x04, - 0x21, - 0x00, - 0x00, - 0x58, - 0x10, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1D, - 0x0B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x0A, - 0x33, - 0x58, - 0x00, - 0x5C, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x05, - 0x1B, - 0x00, - 0x07, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x08, - 0x1E, - 0x00, - 0x0C, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x05, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x06, - 0x1E, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x06, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0B, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x00, - 0x03, - 0x1D, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x24, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x0B, - 0x3A, - 0x00, - 0x08, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x3A, - 0x3A, - 0x2B, - 0x06, - 0x3A, - 0x01, - 0x2B, - 0x0C, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2C, - 0x45, - 0x10, - 0x2C, - 0x01, - 0x45, - 0x13, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x06, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x45, - 0x2F, - 0x00, - 0x05, - 0x45, - 0x00, - 0x06, - 0x2F, - 0x45, - 0x45, - 0x45, - 0x2F, - 0x2F, - 0x0B, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0D, - 0x2E, - 0x00, - 0x06, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x0A, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x09, - 0x31, - 0x00, - 0x1F, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x21, - 0x30, - 0x26, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x30, - 0x26, - 0x08, - 0x30, - 0x01, - 0x26, - 0x04, - 0x30, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x30, - 0x00, - 0x0B, - 0x26, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x41, - 0x21, - 0x26, - 0x26, - 0x43, - 0x26, - 0x43, - 0x26, - 0x43, - 0x00, - 0x07, - 0x26, - 0x01, - 0x4F, - 0x09, - 0x00, - 0x01, - 0x37, - 0x04, - 0x26, - 0x01, - 0x43, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x01, - 0x58, - 0x09, - 0x00, - 0x01, - 0x36, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x42, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x00, - 0xF5, - 0x1B, - 0x00, - 0x13, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x05, - 0x50, - 0x00, - 0x00, - 0xF6, - 0x1C, - 0x00, - 0x12, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x28, - 0x00, - 0x05, - 0x61, - 0xF5, - 0x00, - 0xF5, - 0x61, - 0x00, - 0x11, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x11, - 0x27, - 0x00, - 0x05, - 0x4E, - 0xF5, - 0x09, - 0x00, - 0x59, - 0x00, - 0x10, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3D, - 0x00, - 0x05, - 0x41, - 0xF7, - 0xB3, - 0x54, - 0x58, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x14, - 0x3C, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF9, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x01, - 0x1B, - 0x04, - 0x3F, - 0x00, - 0x04, - 0x32, - 0xF5, - 0x00, - 0xF6, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x03, - 0x59, - 0x00, - 0x56, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x04, - 0x56, - 0x00, - 0x00, - 0x40, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0E, - 0x19, - 0x00, - 0x0B, - 0x57, - 0x00, - 0xF5, - 0x1F, - 0x19, - 0x19, - 0x19, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x00, - 0x0D, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x06, - 0x34, - 0x01, - 0x35, - 0x04, - 0x34, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x34, - 0x5F, - 0x00, - 0x00, - 0xF7, - 0x1E, - 0x34, - 0x58, - 0x00, - 0x00, - 0x55, - 0x00, - 0x04, - 0x34, - 0x00, - 0x04, - 0x35, - 0x35, - 0x34, - 0x35, - 0x06, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x0F, - 0x18, - 0x01, - 0x57, - 0x07, - 0x00, - 0x01, - 0x17, - 0x0E, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x5C, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x17, - 0x1B, - 0x33, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x06, - 0x1E, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x06, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x08, - 0x1E, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x1E, - 0x1E, - 0x1F, - 0x00, - 0x04, - 0x1E, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x06, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x0E, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xFA, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x14, - 0x01, - 0x36, - 0x14, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x26, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x1C, - 0x11, - 0x01, - 0x0A, - 0x07, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x18, - 0x11, - 0x01, - 0xFB, - 0x07, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x16, - 0x04, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0A, - 0x61, - 0x00, - 0x0A, - 0x50, - 0x61, - 0x61, - 0x50, - 0x61, - 0x50, - 0x50, - 0x4D, - 0x3F, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x0C, - 0x4E, - 0x01, - 0x44, - 0x05, - 0x4E, - 0x01, - 0x44, - 0x0B, - 0x4E, - 0x00, - 0x06, - 0x1C, - 0x1C, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x4F, - 0x1A, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x33, - 0x17, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x28, - 0x22, - 0x2A, - 0x00, - 0x04, - 0x27, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1E, - 0x00, - 0x25, - 0x39, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0x38, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x37, - 0x5F, - 0x3A, - 0x3A, - 0x3A, - 0x2B, - 0x2B, - 0x00, - 0x0A, - 0x3A, - 0x00, - 0x05, - 0x2B, - 0x3A, - 0x3A, - 0x3A, - 0x2B, - 0x00, - 0x12, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x04, - 0x2C, - 0x01, - 0x45, - 0x1B, - 0x2C, - 0x00, - 0x08, - 0x45, - 0x2C, - 0x2C, - 0x45, - 0x2C, - 0x2C, - 0x61, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x5E, - 0x45, - 0x45, - 0x2F, - 0x00, - 0x15, - 0x45, - 0x00, - 0x03, - 0x2F, - 0x2F, - 0x2F, - 0x00, - 0x04, - 0x45, - 0x01, - 0x2F, - 0x06, - 0x45, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0A, - 0x2E, - 0x00, - 0x04, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x06, - 0x2E, - 0x01, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x2F, - 0x08, - 0x2E, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x08, - 0x37, - 0x21, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x04, - 0x31, - 0x00, - 0x1E, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x2D, - 0x31, - 0x2D, - 0x2D, - 0x2D, - 0x31, - 0x2D, - 0x31, - 0x31, - 0x31, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x37, - 0x21, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x26, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x26, - 0x26, - 0x00, - 0x06, - 0x30, - 0x00, - 0x0D, - 0x26, - 0x30, - 0x26, - 0x30, - 0x26, - 0x30, - 0x30, - 0x30, - 0x26, - 0x30, - 0x26, - 0x30, - 0x26, - 0x00, - 0x04, - 0x30, - 0x00, - 0x04, - 0x26, - 0x30, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x06, - 0x26, - 0x01, - 0x43, - 0x05, - 0x26, - 0x00, - 0x0D, - 0x43, - 0x26, - 0x26, - 0x43, - 0x43, - 0x3D, - 0x58, - 0x00, - 0x00, - 0x00, - 0x56, - 0xB2, - 0x43, - 0x00, - 0x0B, - 0x26, - 0x00, - 0x04, - 0x43, - 0x26, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x43, - 0x00, - 0x04, - 0x42, - 0x43, - 0x1B, - 0xF5, - 0x06, - 0x00, - 0x01, - 0x5D, - 0x0D, - 0x43, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x10, - 0x42, - 0x00, - 0x0A, - 0xF7, - 0x00, - 0xF5, - 0x50, - 0x42, - 0x40, - 0xF7, - 0x00, - 0x00, - 0x1B, - 0x0C, - 0x42, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x0B, - 0x1C, - 0x00, - 0x00, - 0xF8, - 0x29, - 0x29, - 0x29, - 0x1C, - 0x00, - 0x00, - 0x58, - 0x00, - 0x0C, - 0x29, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x28, - 0x00, - 0x03, - 0x1E, - 0x00, - 0xF5, - 0x00, - 0x05, - 0x28, - 0x00, - 0x03, - 0x00, - 0x00, - 0xB8, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x10, - 0x27, - 0x01, - 0x35, - 0x05, - 0x27, - 0x00, - 0x05, - 0x19, - 0x00, - 0x00, - 0x56, - 0x3D, - 0x00, - 0x0B, - 0x27, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0B, - 0x3D, - 0x01, - 0x3C, - 0x09, - 0x3D, - 0x00, - 0x05, - 0x34, - 0xF7, - 0x54, - 0x00, - 0x17, - 0x00, - 0x0C, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3C, - 0x01, - 0x59, - 0x04, - 0x00, - 0x01, - 0x53, - 0x01, - 0xF9, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x12, - 0x3F, - 0x00, - 0x07, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x1B, - 0x00, - 0x0D, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3E, - 0x01, - 0x19, - 0x0B, - 0x3E, - 0x00, - 0x04, - 0x60, - 0xF5, - 0x00, - 0xB8, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x19, - 0x00, - 0x09, - 0x5A, - 0x56, - 0x5A, - 0x19, - 0x19, - 0x19, - 0x56, - 0x00, - 0x00, - 0x00, - 0x08, - 0x19, - 0x01, - 0x35, - 0x04, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x08, - 0x34, - 0x00, - 0x14, - 0x35, - 0x35, - 0x35, - 0x34, - 0x34, - 0x35, - 0x35, - 0x35, - 0x55, - 0x00, - 0xF6, - 0x61, - 0x34, - 0x61, - 0xF6, - 0x00, - 0xF4, - 0x34, - 0x34, - 0x35, - 0x04, - 0x34, - 0x00, - 0x08, - 0x35, - 0x34, - 0x34, - 0x34, - 0x35, - 0x34, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x10, - 0x18, - 0x01, - 0x21, - 0x07, - 0x00, - 0x01, - 0x58, - 0x0D, - 0x18, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0x0B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x04, - 0x1B, - 0x01, - 0x33, - 0x06, - 0x1B, - 0x00, - 0x07, - 0x17, - 0x57, - 0x00, - 0x00, - 0x00, - 0x55, - 0x5C, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x0B, - 0x33, - 0x1B, - 0x33, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x20, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x04, - 0x1F, - 0x00, - 0x17, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1E, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x00, - 0x07, - 0x1E, - 0x00, - 0x06, - 0x1F, - 0x1F, - 0x1E, - 0x1F, - 0x21, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x03, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x06, - 0x10, - 0x04, - 0x1D, - 0x01, - 0x10, - 0x01, - 0x1D, - 0x04, - 0x10, - 0x01, - 0xFA, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x0E, - 0x15, - 0x01, - 0x1D, - 0x10, - 0x15, - 0x01, - 0x1D, - 0x06, - 0x15, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x1A, - 0x14, - 0x01, - 0x36, - 0x0B, - 0x14, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x05, - 0x13, - 0x01, - 0x12, - 0x20, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x0F, - 0x12, - 0x00, - 0x05, - 0x11, - 0x12, - 0x12, - 0x12, - 0x11, - 0x00, - 0x07, - 0x12, - 0x01, - 0x11, - 0x05, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x12, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x25, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x18, - 0x2F, - 0x01, - 0x45, - 0x0D, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x21, - 0x2D, - 0x2D, - 0x04, - 0x2E, - 0x04, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2E, - 0x06, - 0x2D, - 0x00, - 0x16, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x06, - 0x31, - 0x01, - 0x30, - 0x14, - 0x31, - 0x01, - 0x30, - 0x0A, - 0x31, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x11, - 0x26, - 0x00, - 0x05, - 0x30, - 0x26, - 0x26, - 0x26, - 0x30, - 0x00, - 0x10, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x09, - 0x37, - 0x21, - 0x43, - 0x26, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x00, - 0x06, - 0x43, - 0x01, - 0x26, - 0x01, - 0x26, - 0x04, - 0x43, - 0x00, - 0x08, - 0x3D, - 0xF6, - 0xF6, - 0x3C, - 0x43, - 0x26, - 0x43, - 0x26, - 0x04, - 0x43, - 0x00, - 0x09, - 0x26, - 0x43, - 0x43, - 0x26, - 0x26, - 0x26, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x05, - 0x42, - 0x01, - 0x43, - 0x0A, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x50, - 0x00, - 0x00, - 0x36, - 0x00, - 0x04, - 0x42, - 0x00, - 0x04, - 0x43, - 0x42, - 0x43, - 0x43, - 0x07, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x37, - 0x16, - 0x29, - 0x42, - 0x42, - 0x29, - 0x07, - 0x42, - 0x01, - 0x29, - 0x05, - 0x42, - 0x00, - 0x0A, - 0x29, - 0x29, - 0x50, - 0x00, - 0x00, - 0x50, - 0x42, - 0x42, - 0x42, - 0x29, - 0x04, - 0x42, - 0x01, - 0x29, - 0x06, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0D, - 0x29, - 0x01, - 0x57, - 0x09, - 0x00, - 0x01, - 0xF5, - 0x01, - 0x20, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0D, - 0x28, - 0x0B, - 0x00, - 0x01, - 0x1F, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0D, - 0x27, - 0x00, - 0x0A, - 0x58, - 0x00, - 0xF6, - 0x35, - 0x27, - 0x27, - 0x17, - 0x00, - 0x00, - 0x17, - 0x0F, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3D, - 0x00, - 0x09, - 0x55, - 0x00, - 0x58, - 0x3D, - 0x3D, - 0x17, - 0x00, - 0x00, - 0x17, - 0x00, - 0x0F, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x09, - 0x37, - 0xF6, - 0x00, - 0xF9, - 0x3C, - 0x22, - 0x00, - 0x00, - 0x22, - 0x00, - 0x0F, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3F, - 0x00, - 0x08, - 0xB2, - 0x00, - 0xF5, - 0x1B, - 0x4F, - 0x00, - 0x00, - 0x4F, - 0x0F, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x10, - 0x3E, - 0x00, - 0x07, - 0x59, - 0x00, - 0xB8, - 0x60, - 0x00, - 0x00, - 0x60, - 0x00, - 0x0F, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x11, - 0x19, - 0x00, - 0x06, - 0xB8, - 0x00, - 0xB8, - 0x00, - 0x00, - 0x5F, - 0x0F, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x04, - 0x35, - 0x01, - 0x34, - 0x0C, - 0x35, - 0x00, - 0x0B, - 0x1E, - 0x55, - 0x00, - 0x00, - 0x00, - 0x5F, - 0x35, - 0x35, - 0x35, - 0x34, - 0x34, - 0x00, - 0x0A, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0x0B, - 0x18, - 0x00, - 0x06, - 0x34, - 0x00, - 0x10, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x34, - 0x18, - 0x34, - 0x34, - 0x18, - 0x4E, - 0xF4, - 0x00, - 0x00, - 0x61, - 0x0C, - 0x18, - 0x00, - 0x05, - 0x34, - 0x34, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x13, - 0x33, - 0x00, - 0x03, - 0x21, - 0x00, - 0x55, - 0x00, - 0x10, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x13, - 0x1B, - 0x01, - 0x32, - 0x05, - 0x1B, - 0x01, - 0x32, - 0x01, - 0x32, - 0x04, - 0x1B, - 0x00, - 0x03, - 0x32, - 0x1B, - 0x32, - 0x00, - 0x04, - 0x1B, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x5D, - 0x32, - 0x20, - 0x08, - 0x32, - 0x00, - 0x0E, - 0x20, - 0x32, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x20, - 0x32, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x05, - 0x20, - 0x32, - 0x32, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x06, - 0x1F, - 0x01, - 0x20, - 0x16, - 0x1F, - 0x00, - 0x0B, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x20, - 0x16, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1A, - 0xF8, - 0x1A, - 0x10, - 0x1A, - 0x10, - 0x10, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x01, - 0x1A, - 0x04, - 0x10, - 0x00, - 0x0C, - 0x1A, - 0x10, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x10, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x09, - 0x1D, - 0x01, - 0x10, - 0x05, - 0x1D, - 0x01, - 0x10, - 0x0B, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x12, - 0x15, - 0x01, - 0x37, - 0x13, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1B, - 0x5D, - 0x13, - 0x14, - 0x13, - 0x14, - 0x14, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x10, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x0A, - 0x13, - 0x01, - 0x12, - 0x01, - 0x12, - 0x1A, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x23, - 0x12, - 0x00, - 0x04, - 0x11, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x2A, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x1B, - 0x38, - 0x01, - 0x39, - 0x09, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0x21, - 0x2E, - 0x2D, - 0x2E, - 0x00, - 0x07, - 0x2D, - 0x00, - 0x1E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x08, - 0x31, - 0x00, - 0x0F, - 0x30, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x30, - 0x30, - 0x31, - 0x30, - 0x00, - 0x04, - 0x31, - 0x01, - 0x30, - 0x04, - 0x31, - 0x00, - 0x08, - 0x30, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x21, - 0x26, - 0x26, - 0x30, - 0x00, - 0x0E, - 0x26, - 0x01, - 0x30, - 0x0B, - 0x26, - 0x01, - 0x30, - 0x08, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x05, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x00, - 0x04, - 0x43, - 0x00, - 0x06, - 0x5A, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0x5A, - 0x08, - 0x43, - 0x00, - 0x0A, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x43, - 0x43, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x06, - 0x42, - 0x00, - 0x0A, - 0x43, - 0x42, - 0x42, - 0x42, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0xB8, - 0x06, - 0x00, - 0x00, - 0x08, - 0xF7, - 0x3F, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x07, - 0x42, - 0x00, - 0x03, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x06, - 0x42, - 0x01, - 0x29, - 0x06, - 0x42, - 0x00, - 0x0B, - 0x29, - 0x5D, - 0x00, - 0x00, - 0x56, - 0x3F, - 0x42, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x00, - 0x04, - 0x42, - 0x01, - 0x29, - 0x09, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0E, - 0x29, - 0x00, - 0x03, - 0x56, - 0x54, - 0xF6, - 0x00, - 0x04, - 0x29, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x20, - 0x0D, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0E, - 0x28, - 0x00, - 0x03, - 0x61, - 0xF5, - 0x61, - 0x00, - 0x04, - 0x28, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x54, - 0x21, - 0x0D, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x15, - 0x27, - 0x00, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x5B, - 0x0D, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3D, - 0x01, - 0x5B, - 0x01, - 0x17, - 0x04, - 0x3D, - 0x00, - 0x04, - 0x58, - 0x00, - 0x00, - 0xB2, - 0x0D, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0A, - 0xF9, - 0x00, - 0x54, - 0x56, - 0x3C, - 0x3C, - 0xF9, - 0x00, - 0x00, - 0xF6, - 0x0E, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0A, - 0xB2, - 0x00, - 0x00, - 0x09, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB2, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0F, - 0x3E, - 0x00, - 0x08, - 0x00, - 0x00, - 0xB8, - 0xF7, - 0x53, - 0x00, - 0xB8, - 0x50, - 0x0F, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x00, - 0x03, - 0x55, - 0x54, - 0x57, - 0x00, - 0x14, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x35, - 0x00, - 0x03, - 0x56, - 0x00, - 0x55, - 0x00, - 0x04, - 0x35, - 0x01, - 0x34, - 0x0B, - 0x35, - 0x00, - 0x06, - 0x34, - 0x35, - 0x34, - 0x35, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x41, - 0x0B, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x34, - 0x00, - 0x04, - 0x18, - 0x01, - 0x58, - 0x07, - 0x00, - 0x01, - 0x55, - 0x05, - 0x18, - 0x00, - 0x0B, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x33, - 0x01, - 0xB2, - 0x01, - 0xF4, - 0x06, - 0x00, - 0x01, - 0x55, - 0x0E, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x1C, - 0x1B, - 0x01, - 0x32, - 0x09, - 0x1B, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x5D, - 0x32, - 0x20, - 0x06, - 0x32, - 0x01, - 0x20, - 0x01, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x0A, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x06, - 0x32, - 0x00, - 0x03, - 0x20, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x1F, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x09, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x0B, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x1F, - 0x1F, - 0x16, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x0C, - 0x1E, - 0x01, - 0x1A, - 0x19, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0xF8, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x06, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x10, - 0x10, - 0x10, - 0x00, - 0x05, - 0x1A, - 0x01, - 0x10, - 0x05, - 0x1A, - 0x00, - 0x04, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x05, - 0x1A, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x1A, - 0x5C, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x0F, - 0x1D, - 0x00, - 0x08, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x11, - 0x15, - 0x01, - 0x37, - 0x14, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x26, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x0D, - 0x12, - 0x01, - 0x11, - 0x08, - 0x12, - 0x01, - 0x11, - 0x0A, - 0x12, - 0x00, - 0x06, - 0x11, - 0x12, - 0x12, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x76, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x39, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x04, - 0x38, - 0x00, - 0x05, - 0x39, - 0x38, - 0x38, - 0x38, - 0x39, - 0x00, - 0x06, - 0x38, - 0x01, - 0x39, - 0x06, - 0x38, - 0x01, - 0x39, - 0x0E, - 0x38, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x3A, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x3B, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x25, - 0x2C, - 0x00, - 0x03, - 0x3B, - 0x61, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x41, - 0x21, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x05, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2D, - 0x07, - 0x2E, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x41, - 0x21, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x0B, - 0x31, - 0x00, - 0x08, - 0x30, - 0x31, - 0x30, - 0x30, - 0x31, - 0x31, - 0x31, - 0x30, - 0x07, - 0x31, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0A, - 0x26, - 0x01, - 0x30, - 0x1B, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x26, - 0x00, - 0x0B, - 0x43, - 0x00, - 0x0E, - 0x26, - 0x43, - 0x43, - 0x43, - 0x26, - 0x37, - 0x57, - 0x00, - 0x00, - 0x00, - 0x58, - 0x18, - 0x43, - 0x26, - 0x0A, - 0x43, - 0x00, - 0x04, - 0x26, - 0x43, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x04, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x43, - 0x00, - 0x05, - 0x42, - 0x00, - 0x03, - 0x50, - 0x54, - 0x54, - 0x00, - 0x05, - 0x00, - 0x00, - 0x05, - 0x36, - 0x42, - 0x43, - 0x42, - 0x43, - 0x00, - 0x04, - 0x42, - 0x00, - 0x07, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x37, - 0x16, - 0x42, - 0x42, - 0x29, - 0x42, - 0x42, - 0x42, - 0x29, - 0x42, - 0x42, - 0x42, - 0x29, - 0x29, - 0x42, - 0x42, - 0x42, - 0x3F, - 0xF5, - 0x00, - 0xF6, - 0x50, - 0x42, - 0x50, - 0xF5, - 0x00, - 0xF6, - 0x00, - 0x04, - 0x42, - 0x01, - 0x29, - 0x08, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x0F, - 0x29, - 0x00, - 0x0B, - 0x5D, - 0x54, - 0x00, - 0xF8, - 0x29, - 0x29, - 0x29, - 0x59, - 0x00, - 0x00, - 0x5F, - 0x00, - 0x0C, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0F, - 0x28, - 0x00, - 0x0B, - 0xB8, - 0x00, - 0x00, - 0x1F, - 0x28, - 0x28, - 0x28, - 0x61, - 0x00, - 0x00, - 0x5C, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x27, - 0x00, - 0x0B, - 0xB8, - 0x00, - 0x00, - 0x17, - 0x27, - 0x27, - 0x27, - 0x5B, - 0x00, - 0x00, - 0x21, - 0x00, - 0x0C, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0F, - 0x3D, - 0x00, - 0x0B, - 0xF6, - 0x09, - 0x00, - 0xF6, - 0xB2, - 0x3D, - 0x17, - 0xF6, - 0x00, - 0xF5, - 0x34, - 0x00, - 0x0C, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x06, - 0x3D, - 0x55, - 0x54, - 0xF5, - 0xF6, - 0x09, - 0x04, - 0x00, - 0x01, - 0x5B, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3F, - 0x00, - 0x0A, - 0x3C, - 0xF7, - 0x00, - 0x00, - 0x15, - 0xB8, - 0x00, - 0x00, - 0x55, - 0xF9, - 0x0E, - 0x3F, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x0F, - 0x3E, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x50, - 0x13, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x19, - 0x00, - 0x0B, - 0x5F, - 0x54, - 0x00, - 0x58, - 0x19, - 0x19, - 0x19, - 0x0B, - 0x54, - 0x56, - 0x3E, - 0x00, - 0x0C, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x07, - 0x35, - 0x01, - 0x34, - 0x08, - 0x35, - 0x00, - 0x0B, - 0xF7, - 0x00, - 0x00, - 0x5D, - 0x35, - 0x61, - 0xF4, - 0x00, - 0xB8, - 0x35, - 0x34, - 0x00, - 0x0B, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x06, - 0x18, - 0x00, - 0x04, - 0x34, - 0x18, - 0x4E, - 0xF4, - 0x06, - 0x00, - 0x01, - 0x17, - 0x05, - 0x18, - 0x00, - 0x0A, - 0x34, - 0x34, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x11, - 0x33, - 0x00, - 0x07, - 0x15, - 0x58, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x17, - 0x00, - 0x0E, - 0x33, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x1B, - 0x01, - 0x32, - 0x0A, - 0x1B, - 0x00, - 0x05, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x09, - 0x1B, - 0x00, - 0x07, - 0x32, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x05, - 0x32, - 0x00, - 0x08, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x04, - 0x20, - 0x06, - 0x32, - 0x00, - 0x04, - 0x20, - 0x32, - 0x20, - 0x20, - 0x04, - 0x32, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x32, - 0x01, - 0x21, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x20, - 0x00, - 0x05, - 0x1F, - 0x01, - 0x20, - 0x09, - 0x1F, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x1F, - 0x01, - 0x20, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x05, - 0x1F, - 0x01, - 0x16, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x07, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x01, - 0x1A, - 0x08, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x1E, - 0x1A, - 0x00, - 0x0B, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1A, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x10, - 0x06, - 0x1A, - 0x00, - 0x06, - 0x10, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x05, - 0x1A, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x08, - 0x1A, - 0x00, - 0x03, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5C, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x08, - 0x1D, - 0x00, - 0x03, - 0x10, - 0x10, - 0x10, - 0x00, - 0x05, - 0x1D, - 0x00, - 0x09, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x00, - 0x0A, - 0x1D, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x20, - 0x15, - 0x01, - 0x37, - 0x05, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x10, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x07, - 0x14, - 0x01, - 0x13, - 0x01, - 0x13, - 0x04, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3F, - 0x5F, - 0x12, - 0x00, - 0x23, - 0x13, - 0x00, - 0x04, - 0x12, - 0x13, - 0xF9, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x17, - 0x12, - 0x01, - 0x11, - 0x07, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x00, - 0x03, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x22, - 0x22, - 0x11, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCA, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x21, - 0x39, - 0x00, - 0x06, - 0x2A, - 0x39, - 0x39, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x24, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x04, - 0x37, - 0x5E, - 0x2E, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x04, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x08, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2E, - 0x2E, - 0x05, - 0x2F, - 0x00, - 0x07, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x0B, - 0x2D, - 0x01, - 0x31, - 0x1A, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x0E, - 0x30, - 0x01, - 0x31, - 0x10, - 0x30, - 0x01, - 0x31, - 0x06, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x12, - 0x43, - 0x00, - 0x03, - 0xF7, - 0x00, - 0x36, - 0x00, - 0x11, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x11, - 0x42, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x00, - 0x56, - 0x11, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x11, - 0x29, - 0x00, - 0x04, - 0x3F, - 0x53, - 0x00, - 0xF6, - 0x04, - 0x29, - 0x01, - 0x42, - 0x06, - 0x29, - 0x01, - 0xD1, - 0x05, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x41, - 0xFA, - 0x28, - 0x29, - 0x28, - 0x28, - 0x29, - 0x28, - 0x29, - 0x29, - 0x06, - 0x28, - 0x00, - 0x11, - 0x29, - 0x28, - 0x28, - 0x29, - 0x55, - 0x00, - 0x00, - 0x3E, - 0x28, - 0x29, - 0x28, - 0x29, - 0x29, - 0x28, - 0x28, - 0x29, - 0x29, - 0x00, - 0x06, - 0x28, - 0x00, - 0x03, - 0x29, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xF9, - 0x28, - 0x27, - 0x28, - 0x00, - 0x04, - 0x27, - 0x00, - 0x21, - 0x28, - 0x27, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x58, - 0x00, - 0x00, - 0x4E, - 0x28, - 0x27, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x28, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x41, - 0xF9, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x27, - 0x06, - 0x3D, - 0x00, - 0x0F, - 0x4E, - 0x09, - 0x00, - 0x58, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x27, - 0x00, - 0x05, - 0x3D, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x13, - 0x3C, - 0x00, - 0x03, - 0xF7, - 0x54, - 0xF6, - 0x00, - 0x10, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1D, - 0xF9, - 0x3C, - 0x3C, - 0x09, - 0x3F, - 0x00, - 0x0C, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x22, - 0x54, - 0x00, - 0x4F, - 0x04, - 0x3F, - 0x00, - 0x03, - 0x3C, - 0x3F, - 0x3C, - 0x00, - 0x04, - 0x3F, - 0x00, - 0x06, - 0x3C, - 0x3F, - 0x3F, - 0x3C, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0x3E, - 0x01, - 0x3F, - 0x0E, - 0x3E, - 0x00, - 0x05, - 0x3F, - 0xF7, - 0x00, - 0x55, - 0x3F, - 0x00, - 0x0E, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x19, - 0x00, - 0x0F, - 0x3E, - 0x19, - 0x19, - 0x19, - 0x3E, - 0x19, - 0x19, - 0x3E, - 0x19, - 0x19, - 0x19, - 0x50, - 0x00, - 0x00, - 0x58, - 0x00, - 0x0B, - 0x19, - 0x00, - 0x05, - 0x3E, - 0x3E, - 0x19, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x15, - 0x35, - 0x00, - 0x04, - 0x57, - 0x00, - 0x00, - 0x61, - 0x08, - 0x35, - 0x01, - 0x19, - 0x04, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x16, - 0x34, - 0x00, - 0x04, - 0x55, - 0x00, - 0xF6, - 0x1A, - 0x0C, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x13, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x33, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0xB2, - 0xF4, - 0x00, - 0x08, - 0x00, - 0x00, - 0x0F, - 0x57, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x33, - 0x33, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x0F, - 0x1B, - 0x01, - 0xB2, - 0x09, - 0x00, - 0x01, - 0x59, - 0x01, - 0x33, - 0x0B, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x11, - 0x1A, - 0x5D, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x05, - 0x20, - 0x01, - 0x1F, - 0x09, - 0x20, - 0x01, - 0x1F, - 0x06, - 0x20, - 0x00, - 0x03, - 0x1F, - 0x21, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x25, - 0x1E, - 0x00, - 0x03, - 0x1F, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x09, - 0x1A, - 0x01, - 0x10, - 0x09, - 0x1A, - 0x00, - 0x03, - 0x10, - 0x1A, - 0x10, - 0x00, - 0x10, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x05, - 0x1D, - 0x00, - 0x0A, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x04, - 0x1D, - 0x00, - 0x0A, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x05, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x10, - 0x1D, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1B, - 0x0B, - 0x13, - 0x13, - 0x13, - 0x12, - 0x06, - 0x13, - 0x01, - 0x12, - 0x01, - 0x12, - 0x1A, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x11, - 0x12, - 0x01, - 0x11, - 0x04, - 0x12, - 0x01, - 0x11, - 0x0E, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xFE, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1C, - 0x38, - 0x01, - 0x39, - 0x07, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x21, - 0x3A, - 0x01, - 0x2B, - 0x04, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x37, - 0x5E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x00, - 0x05, - 0x2F, - 0x00, - 0x10, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2E, - 0x07, - 0x2F, - 0x00, - 0x03, - 0x2E, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x37, - 0x21, - 0x30, - 0x30, - 0x31, - 0x30, - 0x31, - 0x00, - 0x04, - 0x30, - 0x00, - 0x08, - 0x31, - 0x30, - 0x31, - 0x30, - 0x30, - 0x31, - 0x30, - 0x31, - 0x05, - 0x30, - 0x01, - 0x31, - 0x01, - 0x31, - 0x0E, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x10, - 0x43, - 0x00, - 0x07, - 0x5A, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x58, - 0x18, - 0x00, - 0x0F, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x42, - 0x01, - 0xF7, - 0x06, - 0x00, - 0x01, - 0xF5, - 0x01, - 0x36, - 0x0E, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0E, - 0x29, - 0x00, - 0x0A, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x3E, - 0x42, - 0x5A, - 0x00, - 0x00, - 0xF6, - 0x0E, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xFA, - 0x28, - 0x29, - 0x29, - 0x00, - 0x04, - 0x28, - 0x00, - 0x21, - 0x29, - 0x28, - 0x28, - 0x29, - 0x29, - 0x28, - 0x29, - 0xF7, - 0x00, - 0xF5, - 0x3E, - 0x28, - 0x28, - 0x28, - 0x57, - 0x00, - 0x00, - 0x44, - 0x28, - 0x28, - 0x28, - 0x29, - 0x28, - 0x28, - 0x28, - 0x29, - 0x28, - 0x28, - 0x28, - 0x29, - 0x29, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0x27, - 0x00, - 0x1C, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x28, - 0x27, - 0x28, - 0x27, - 0x28, - 0xF6, - 0x00, - 0xB8, - 0x27, - 0x27, - 0x28, - 0x28, - 0x59, - 0x00, - 0x00, - 0x61, - 0x28, - 0x28, - 0x28, - 0x27, - 0x28, - 0x27, - 0x28, - 0x06, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0xF9, - 0x27, - 0x3D, - 0x27, - 0x00, - 0x08, - 0x3D, - 0x00, - 0x0E, - 0x27, - 0x3D, - 0x3D, - 0x55, - 0x54, - 0xF5, - 0x27, - 0x27, - 0x3D, - 0x3D, - 0x56, - 0xB3, - 0x53, - 0x4E, - 0x05, - 0x3D, - 0x00, - 0x0A, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3C, - 0x00, - 0x0B, - 0x5B, - 0x00, - 0x00, - 0xB8, - 0x3D, - 0x3D, - 0x5B, - 0x00, - 0x09, - 0xF7, - 0x3D, - 0x00, - 0x0D, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1D, - 0xF9, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x04, - 0x3F, - 0x00, - 0x08, - 0x3C, - 0x3F, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x59, - 0x05, - 0x00, - 0x00, - 0x13, - 0x54, - 0xF7, - 0x1B, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3E, - 0x3E, - 0x3F, - 0x3E, - 0x3E, - 0x5A, - 0xF5, - 0x05, - 0x00, - 0x00, - 0x03, - 0x59, - 0x3E, - 0x3F, - 0x00, - 0x0D, - 0x3E, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0x19, - 0x01, - 0x3E, - 0x06, - 0x19, - 0x00, - 0x0A, - 0x0B, - 0x00, - 0x00, - 0xB8, - 0x3E, - 0x19, - 0x0B, - 0x00, - 0x00, - 0x59, - 0x0D, - 0x19, - 0x00, - 0x03, - 0x3E, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x19, - 0x05, - 0x35, - 0x00, - 0x0B, - 0x5A, - 0x00, - 0x00, - 0x0D, - 0x35, - 0x35, - 0x35, - 0xF6, - 0x00, - 0xF7, - 0x19, - 0x00, - 0x05, - 0x35, - 0x01, - 0x19, - 0x07, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0E, - 0x34, - 0x00, - 0x0A, - 0x4E, - 0x00, - 0x00, - 0xB8, - 0x34, - 0x34, - 0x5A, - 0x00, - 0x00, - 0x56, - 0x0E, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x12, - 0x41, - 0x0B, - 0x18, - 0x18, - 0x33, - 0x18, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x18, - 0x33, - 0x33, - 0x58, - 0x06, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xB2, - 0x04, - 0x18, - 0x00, - 0x04, - 0x33, - 0x18, - 0x33, - 0x33, - 0x04, - 0x18, - 0x00, - 0x04, - 0x33, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x10, - 0x1B, - 0x00, - 0x07, - 0x5C, - 0x55, - 0x00, - 0x00, - 0x00, - 0x57, - 0xB2, - 0x00, - 0x0F, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1A, - 0x5D, - 0x20, - 0x1F, - 0x04, - 0x20, - 0x00, - 0x05, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x0E, - 0x20, - 0x00, - 0x09, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x04, - 0x20, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x13, - 0x1A, - 0x01, - 0x10, - 0x10, - 0x1A, - 0x00, - 0x04, - 0x10, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xF8, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x05, - 0x1D, - 0x00, - 0x05, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x10, - 0x00, - 0x04, - 0x1D, - 0x01, - 0x10, - 0x09, - 0x1D, - 0x00, - 0x04, - 0x10, - 0x1D, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x1B, - 0x0B, - 0x13, - 0x12, - 0x0C, - 0x13, - 0x01, - 0x12, - 0x08, - 0x13, - 0x01, - 0x12, - 0x06, - 0x13, - 0x01, - 0x12, - 0x07, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x04, - 0x12, - 0x01, - 0x11, - 0x0D, - 0x12, - 0x01, - 0x11, - 0x12, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x11, - 0x11, - 0x01, - 0x0A, - 0x12, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x12, - 0x04, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1C, - 0x38, - 0x01, - 0x39, - 0x07, - 0x38, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x37, - 0x5E, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x06, - 0x2F, - 0x01, - 0x2E, - 0x04, - 0x2F, - 0x00, - 0x13, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x2F, - 0x2F, - 0x61, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2D, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x37, - 0x21, - 0x30, - 0x30, - 0x31, - 0x00, - 0x08, - 0x30, - 0x01, - 0x31, - 0x07, - 0x30, - 0x01, - 0x31, - 0x04, - 0x30, - 0x01, - 0x31, - 0x0D, - 0x30, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x10, - 0x43, - 0x00, - 0x07, - 0x3C, - 0x58, - 0x00, - 0x00, - 0x00, - 0x56, - 0x37, - 0x00, - 0x0F, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0F, - 0x42, - 0x00, - 0x04, - 0x3F, - 0xF6, - 0x54, - 0x54, - 0x04, - 0x00, - 0x01, - 0x60, - 0x0E, - 0x42, - 0x01, - 0x17, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x05, - 0x41, - 0x16, - 0x29, - 0x29, - 0x42, - 0x00, - 0x04, - 0x29, - 0x01, - 0x42, - 0x04, - 0x29, - 0x00, - 0x11, - 0x42, - 0x29, - 0x29, - 0x5A, - 0x00, - 0x00, - 0x5F, - 0x29, - 0x32, - 0xF7, - 0x00, - 0xF5, - 0x3E, - 0x29, - 0x29, - 0x29, - 0xD1, - 0x00, - 0x09, - 0x29, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x41, - 0xFA, - 0x29, - 0x28, - 0x29, - 0x29, - 0x28, - 0x29, - 0x28, - 0x28, - 0x29, - 0x28, - 0x29, - 0x00, - 0x04, - 0x28, - 0x00, - 0x0F, - 0x5C, - 0x00, - 0x58, - 0x28, - 0x29, - 0x28, - 0x44, - 0x00, - 0x00, - 0x5A, - 0x28, - 0x28, - 0x28, - 0x29, - 0x29, - 0x00, - 0x08, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x04, - 0x27, - 0x00, - 0x15, - 0x28, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0x27, - 0x28, - 0x28, - 0x27, - 0x28, - 0x28, - 0x28, - 0x27, - 0x27, - 0x28, - 0x27, - 0xF6, - 0x54, - 0x55, - 0x00, - 0x07, - 0x27, - 0x01, - 0x28, - 0x01, - 0x28, - 0x04, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x41, - 0xF9, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x3D, - 0x1A, - 0x56, - 0x54, - 0x00, - 0x55, - 0x61, - 0x56, - 0x00, - 0x00, - 0x3D, - 0x3D, - 0x3D, - 0x27, - 0x00, - 0x09, - 0x3D, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x09, - 0x3C, - 0x01, - 0x3D, - 0x01, - 0x3D, - 0x04, - 0x3C, - 0x01, - 0x1A, - 0x01, - 0xF5, - 0x04, - 0x00, - 0x00, - 0x05, - 0x09, - 0x55, - 0x00, - 0x00, - 0x18, - 0x00, - 0x0C, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x1D, - 0xF9, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3F, - 0x3C, - 0xF7, - 0x00, - 0x00, - 0x59, - 0x3F, - 0x33, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x36, - 0x3F, - 0x3F, - 0x04, - 0x3C, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x3C, - 0x3F, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0E, - 0x3E, - 0x00, - 0x0B, - 0x32, - 0x00, - 0x53, - 0xB8, - 0x3E, - 0x3E, - 0x3E, - 0x32, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x09, - 0x3E, - 0x00, - 0x06, - 0x3F, - 0x3E, - 0x3E, - 0x3E, - 0x60, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x41, - 0xF9, - 0x3E, - 0x00, - 0x07, - 0x19, - 0x01, - 0x3E, - 0x01, - 0x3E, - 0x04, - 0x19, - 0x00, - 0x0F, - 0x1C, - 0x00, - 0x00, - 0x58, - 0x3E, - 0x19, - 0x3E, - 0x19, - 0xF6, - 0x00, - 0xF5, - 0x19, - 0x19, - 0x19, - 0x3E, - 0x00, - 0x09, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1D, - 0x0B, - 0x19, - 0x00, - 0x0E, - 0x35, - 0x00, - 0x0D, - 0xF5, - 0x00, - 0xB8, - 0x35, - 0x35, - 0x35, - 0x1E, - 0x00, - 0x00, - 0x56, - 0x35, - 0x35, - 0x19, - 0x00, - 0x06, - 0x35, - 0x00, - 0x06, - 0x19, - 0x35, - 0x19, - 0x19, - 0x5F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x0F, - 0x34, - 0x00, - 0x0A, - 0x56, - 0x00, - 0x00, - 0x58, - 0x34, - 0x4E, - 0xF7, - 0x00, - 0x00, - 0x5E, - 0x0D, - 0x34, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x41, - 0x0B, - 0x33, - 0x18, - 0x18, - 0x33, - 0x05, - 0x18, - 0x00, - 0x08, - 0x33, - 0x33, - 0x33, - 0x18, - 0x33, - 0x18, - 0x1D, - 0x55, - 0x06, - 0x00, - 0x00, - 0x07, - 0x58, - 0x18, - 0x18, - 0x33, - 0x18, - 0x33, - 0x33, - 0x00, - 0x04, - 0x18, - 0x04, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x11, - 0x1B, - 0x00, - 0x06, - 0x58, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x5C, - 0x0F, - 0x1B, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x32, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x21, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x00, - 0x07, - 0x20, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x1E, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x07, - 0x1A, - 0x01, - 0x10, - 0x06, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x10, - 0x1A, - 0x01, - 0x16, - 0x01, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x1E, - 0xF8, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x08, - 0x1D, - 0x00, - 0x05, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x0B, - 0x1D, - 0x00, - 0x04, - 0x10, - 0x10, - 0xFA, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x06, - 0x1F, - 0x5C, - 0x36, - 0x14, - 0x14, - 0x36, - 0x10, - 0x14, - 0x01, - 0x36, - 0x11, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x21, - 0x13, - 0x01, - 0x12, - 0x04, - 0x13, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x1D, - 0x12, - 0x01, - 0x11, - 0x07, - 0x12, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x24, - 0x11, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x1A, - 0x11, - 0x01, - 0x0A, - 0x05, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x03, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3C, - 0x32, - 0x04, - 0x1A, - 0x04, - 0x41, - 0x01, - 0x1A, - 0x01, - 0x41, - 0x04, - 0x1A, - 0x00, - 0x04, - 0x41, - 0x1A, - 0x1A, - 0x41, - 0x07, - 0x1A, - 0x01, - 0x1D, - 0x04, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x3F, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x00, - 0x31, - 0x50, - 0x16, - 0x50, - 0x1E, - 0x20, - 0x20, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1E, - 0x1F, - 0x1F, - 0x1F, - 0x1A, - 0xB2, - 0x16, - 0x50, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x4F, - 0x1C, - 0x28, - 0x00, - 0x20, - 0x06, - 0x00, - 0x04, - 0x43, - 0x12, - 0x17, - 0x42, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x32, - 0x22, - 0x27, - 0x22, - 0x06, - 0x00, - 0x04, - 0x42, - 0x4E, - 0x4E, - 0x31, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3C, - 0xB2, - 0x3E, - 0x00, - 0x25, - 0x06, - 0x01, - 0x60, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x22, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x35, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x60, - 0x26, - 0x06, - 0x01, - 0x50, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x26, - 0x06, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x16, - 0x05, - 0x06, - 0x00, - 0x23, - 0xE9, - 0x09, - 0x53, - 0xE4, - 0xE9, - 0x06, - 0xEB, - 0x54, - 0xED, - 0xEB, - 0xEC, - 0xE9, - 0xED, - 0x06, - 0xEA, - 0xE4, - 0x06, - 0xEA, - 0x09, - 0x53, - 0xED, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xE4, - 0xE7, - 0xE7, - 0x53, - 0xE6, - 0x06, - 0x06, - 0x06, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0x06, - 0x06, - 0xE5, - 0x06, - 0xE8, - 0xC6, - 0xEA, - 0x06, - 0xEA, - 0x53, - 0xE7, - 0xE4, - 0xEB, - 0xE5, - 0xE4, - 0xEB, - 0xEA, - 0xED, - 0x06, - 0xE9, - 0x54, - 0xE5, - 0x53, - 0xEA, - 0xE5, - 0xED, - 0xE9, - 0xED, - 0xEB, - 0x06, - 0xE9, - 0xEA, - 0xE8, - 0x54, - 0xE8, - 0x06, - 0x06, - 0x06, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xE5, - 0x06, - 0x06, - 0x06, - 0xEA, - 0xE0, - 0x06, - 0xE5, - 0xE5, - 0xED, - 0xE6, - 0xE5, - 0xEB, - 0xED, - 0xE0, - 0xEB, - 0xE9, - 0xED, - 0xE5, - 0xEA, - 0x54, - 0xE8, - 0x00, - 0xE8, - 0x06, - 0x06, - 0x06, - 0xC6, - 0x00, - 0x54, - 0x00, - 0xEC, - 0xE8, - 0x00, - 0xE8, - 0x06, - 0xE5, - 0x06, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0x06, - 0x06, - 0x06, - 0xE5, - 0xEB, - 0xED, - 0x06, - 0x06, - 0x06, - 0xE5, - 0xE5, - 0xEC, - 0xEA, - 0xE5, - 0xE4, - 0xEB, - 0xE9, - 0x00, - 0xE6, - 0xEA, - 0xE4, - 0xE5, - 0x54, - 0xEA, - 0xE3, - 0xED, - 0xEA, - 0xED, - 0xEB, - 0xE5, - 0xEC, - 0xEB, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0x06, - 0x06, - 0x4F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x04, - 0xE5, - 0x00, - 0x24, - 0xEA, - 0xE4, - 0xE5, - 0xE5, - 0xE5, - 0xEA, - 0xE6, - 0xE8, - 0x00, - 0x00, - 0xE4, - 0xE7, - 0xEA, - 0xED, - 0xED, - 0x09, - 0xEA, - 0xE5, - 0xE9, - 0x00, - 0xE0, - 0xED, - 0xE6, - 0xE7, - 0xED, - 0x00, - 0xED, - 0xE6, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0xE5, - 0xE5, - 0x4F, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x04, - 0xE5, - 0x00, - 0x07, - 0xE7, - 0xC6, - 0xEA, - 0xE5, - 0xEA, - 0xC6, - 0xE6, - 0x00, - 0x15, - 0xE5, - 0x00, - 0x08, - 0xE8, - 0x00, - 0xE8, - 0xE5, - 0xE5, - 0xE5, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x05, - 0xE5, - 0x00, - 0x05, - 0xE9, - 0xE4, - 0x00, - 0xE4, - 0xE9, - 0x00, - 0x16, - 0xE5, - 0x00, - 0x08, - 0xE7, - 0x00, - 0xE6, - 0xE5, - 0xE5, - 0xE5, - 0x60, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE5, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xE3, - 0xE3, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0xE5, - 0xE3, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x26, - 0xE3, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x0B, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0xE2, - 0xE3, - 0x21, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0xE2, - 0x01, - 0x16, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xE2, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x5D, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x5F, - 0x26, - 0xE2, - 0x01, - 0xF9, - 0x01, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x12, - 0xFA, - 0x00, - 0x24, - 0xE2, - 0x00, - 0x03, - 0x4F, - 0x61, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x28, - 0x21, - 0x17, - 0x22, - 0xE2, - 0x00, - 0x03, - 0x60, - 0x4F, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x3F, - 0x60, - 0x0B, - 0x60, - 0x22, - 0x00, - 0x07, - 0x17, - 0x00, - 0x0A, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x17, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x04, - 0x22, - 0x0B, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x29, - 0x1E, - 0x50, - 0x17, - 0x60, - 0x05, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x0A, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x04, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x41, - 0x27, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9E, - 0x03, - 0x00, - 0x00, - 0x00, - 0x02, - 0x04, - 0x00, - 0x00, - 0x0A, - 0x28, - 0x36, - 0x50, - 0x61, - 0x50, - 0x50, - 0x61, - 0x61, - 0x50, - 0x50, - 0x04, - 0x61, - 0x01, - 0x50, - 0x0B, - 0x61, - 0x00, - 0x08, - 0x50, - 0x61, - 0x50, - 0x61, - 0x61, - 0x50, - 0x4D, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x2F, - 0x1F, - 0x4E, - 0x00, - 0x1D, - 0x44, - 0x00, - 0x06, - 0x4D, - 0x40, - 0x44, - 0xB2, - 0x1E, - 0x42, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x45, - 0x1C, - 0x22, - 0x1A, - 0x00, - 0x20, - 0xC9, - 0x00, - 0x04, - 0x33, - 0x61, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x18, - 0x5E, - 0x29, - 0x22, - 0xC9, - 0x00, - 0x04, - 0x28, - 0xB2, - 0x41, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x29, - 0x4E, - 0x1F, - 0x00, - 0x25, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x41, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x22, - 0x26, - 0xC9, - 0x01, - 0x22, - 0x01, - 0x5E, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x60, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x5F, - 0x26, - 0xC9, - 0x01, - 0x50, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x36, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x17, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0xC9, - 0x01, - 0x61, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x16, - 0xC9, - 0x01, - 0xC8, - 0x05, - 0xC9, - 0x01, - 0xC8, - 0x05, - 0xC9, - 0x00, - 0x06, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x16, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0xC8, - 0xC9, - 0x17, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x22, - 0x41, - 0x16, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xCA, - 0xCD, - 0xF3, - 0x53, - 0xCC, - 0xC9, - 0xCA, - 0x00, - 0xC9, - 0xCB, - 0x00, - 0x53, - 0xCD, - 0xCA, - 0xCB, - 0x00, - 0x00, - 0xCC, - 0x53, - 0xCA, - 0xC6, - 0xC9, - 0xC8, - 0xC9, - 0x04, - 0xC8, - 0x00, - 0x04, - 0xC9, - 0xC8, - 0x22, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x15, - 0x01, - 0xF9, - 0x08, - 0xC8, - 0x00, - 0x16, - 0xCC, - 0xCD, - 0xCA, - 0xCA, - 0xCD, - 0xCC, - 0xCA, - 0x00, - 0xCB, - 0xC6, - 0xCB, - 0xC8, - 0xCB, - 0xCA, - 0xCC, - 0xCD, - 0xC8, - 0xCC, - 0xCE, - 0xCA, - 0x00, - 0xCA, - 0x08, - 0xC8, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x08, - 0xC8, - 0x00, - 0x09, - 0x00, - 0xCB, - 0xC8, - 0xC8, - 0xCB, - 0xCC, - 0xCA, - 0x00, - 0xCA, - 0x00, - 0x04, - 0x00, - 0x00, - 0x09, - 0xCB, - 0xC8, - 0xCB, - 0xCC, - 0xC6, - 0xCD, - 0xCA, - 0x00, - 0xCA, - 0x00, - 0x08, - 0xC8, - 0x01, - 0x22, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x07, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0x00, - 0xCB, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x12, - 0xCA, - 0xC6, - 0xCB, - 0x00, - 0xCB, - 0xC8, - 0xCE, - 0xCB, - 0xCB, - 0xCD, - 0xC8, - 0xCC, - 0xCD, - 0xCA, - 0xC6, - 0xCB, - 0xC8, - 0xC7, - 0x06, - 0xC8, - 0x01, - 0x4F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xF9, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0x00, - 0xCB, - 0xC8, - 0xC7, - 0xCA, - 0xCB, - 0xCA, - 0x00, - 0xCA, - 0xCB, - 0xC6, - 0x00, - 0xCC, - 0xC7, - 0xCA, - 0xCD, - 0xC6, - 0xC6, - 0xCB, - 0xCA, - 0xC6, - 0xCD, - 0xE0, - 0xCA, - 0xC8, - 0xC7, - 0xC8, - 0xC7, - 0xC8, - 0xC8, - 0x4F, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x06, - 0xC8, - 0x00, - 0x0F, - 0xC7, - 0xC8, - 0xCC, - 0xCD, - 0xCA, - 0xCA, - 0xCD, - 0xCC, - 0xCA, - 0xC6, - 0xCA, - 0xC7, - 0xC8, - 0xC8, - 0xC7, - 0x00, - 0x0C, - 0xC8, - 0x00, - 0x07, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0x4F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x08, - 0xC7, - 0x00, - 0x09, - 0xC8, - 0xCC, - 0x00, - 0x00, - 0xCC, - 0xC7, - 0xCA, - 0xC6, - 0xCA, - 0x00, - 0x15, - 0xC7, - 0x01, - 0x60, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x10, - 0x01, - 0x0B, - 0x26, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x11, - 0xC7, - 0x01, - 0x05, - 0x08, - 0xC7, - 0x01, - 0x05, - 0x0B, - 0xC7, - 0x01, - 0x5F, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x05, - 0x05, - 0x00, - 0x23, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0x05, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x15, - 0x05, - 0x01, - 0xCF, - 0x10, - 0x05, - 0x01, - 0x21, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x5D, - 0x26, - 0xCF, - 0x01, - 0x16, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x26, - 0xCF, - 0x01, - 0xFA, - 0x01, - 0x5C, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0xF8, - 0x26, - 0xCF, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0x05, - 0x01, - 0xF9, - 0x01, - 0xF8, - 0x00, - 0x00, - 0x01, - 0x32, - 0x01, - 0x5D, - 0x26, - 0x05, - 0x01, - 0xF9, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x19, - 0x01, - 0x5F, - 0x05, - 0x05, - 0x01, - 0xC7, - 0x04, - 0x05, - 0x00, - 0x14, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x05, - 0x05, - 0xC7, - 0x05, - 0x05, - 0xC7, - 0x08, - 0x05, - 0x01, - 0x16, - 0x01, - 0x17, - 0x00, - 0x00, - 0x00, - 0x03, - 0x43, - 0xB2, - 0x5F, - 0x00, - 0x04, - 0xC7, - 0x01, - 0x05, - 0x04, - 0xC7, - 0x00, - 0x15, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0xC7, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0xC7, - 0x05, - 0x00, - 0x06, - 0xC7, - 0x00, - 0x03, - 0x61, - 0x60, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x3F, - 0xF9, - 0x60, - 0xB2, - 0x00, - 0x20, - 0xC7, - 0x00, - 0x04, - 0xB2, - 0x5F, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x1A, - 0x17, - 0x60, - 0x17, - 0x17, - 0x17, - 0x04, - 0x22, - 0x01, - 0x17, - 0x01, - 0x17, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x22, - 0x22, - 0x22, - 0x17, - 0x17, - 0x22, - 0x22, - 0x17, - 0x22, - 0x04, - 0x17, - 0x00, - 0x03, - 0x60, - 0x60, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x50, - 0x5E, - 0x21, - 0x00, - 0x1C, - 0xF9, - 0x00, - 0x04, - 0x16, - 0x5E, - 0x22, - 0x33, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x76, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x0A, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x05, - 0x2E, - 0x00, - 0x14, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x05, - 0x31, - 0x00, - 0x04, - 0x30, - 0x31, - 0x30, - 0x30, - 0x0C, - 0x31, - 0x00, - 0x03, - 0x30, - 0x31, - 0x30, - 0x00, - 0x06, - 0x31, - 0x01, - 0x30, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x03, - 0x26, - 0x43, - 0x26, - 0x00, - 0x04, - 0x43, - 0x01, - 0x26, - 0x01, - 0x26, - 0x09, - 0x43, - 0x00, - 0x04, - 0x26, - 0x43, - 0x43, - 0x26, - 0x09, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x04, - 0x43, - 0x42, - 0x42, - 0x43, - 0x07, - 0x42, - 0x00, - 0x0E, - 0x43, - 0x42, - 0x43, - 0x42, - 0x43, - 0x43, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0x43, - 0x04, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0B, - 0x42, - 0x00, - 0x03, - 0x29, - 0x42, - 0x29, - 0x00, - 0x11, - 0x42, - 0x01, - 0x29, - 0x01, - 0x29, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x26, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x26, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x26, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x34, - 0x01, - 0x34, - 0x07, - 0x35, - 0x01, - 0x34, - 0x06, - 0x35, - 0x01, - 0x34, - 0x0D, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x05, - 0x18, - 0x00, - 0x03, - 0x34, - 0x34, - 0x34, - 0x00, - 0x07, - 0x18, - 0x00, - 0x17, - 0x34, - 0x18, - 0x18, - 0x34, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x18, - 0x1B, - 0x00, - 0x0D, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x20, - 0x00, - 0x05, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x0D, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x00, - 0x00, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x92, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x07, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x07, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x24, - 0x07, - 0x00, - 0x03, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x07, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x07, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x26, - 0x07, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0xFA, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xFA, - 0x26, - 0x07, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x23, - 0x07, - 0x00, - 0x05, - 0xBE, - 0x07, - 0x07, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x04, - 0x07, - 0x00, - 0x1D, - 0xBF, - 0x00, - 0x00, - 0x53, - 0x53, - 0x00, - 0xBB, - 0xBA, - 0x09, - 0xB9, - 0x07, - 0xBE, - 0xF5, - 0xBB, - 0x07, - 0xB9, - 0x09, - 0x09, - 0xBC, - 0x07, - 0xBC, - 0xC6, - 0xC6, - 0xBD, - 0xB9, - 0x07, - 0xBB, - 0x53, - 0xBA, - 0x00, - 0x05, - 0x07, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0x07, - 0xBE, - 0x07, - 0xBA, - 0x00, - 0xBC, - 0x07, - 0xBE, - 0xBE, - 0x07, - 0x07, - 0xB9, - 0xC6, - 0xBB, - 0x07, - 0xBA, - 0x00, - 0xBB, - 0xBE, - 0xBC, - 0x09, - 0xBE, - 0xBE, - 0xBC, - 0xB3, - 0xB9, - 0x07, - 0xBC, - 0xBF, - 0x07, - 0xBB, - 0x00, - 0xBA, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0x21, - 0xBE, - 0x07, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x07, - 0x07, - 0x07, - 0xBE, - 0xBE, - 0xB9, - 0xF3, - 0xBB, - 0x07, - 0xBA, - 0x00, - 0xBB, - 0x07, - 0xBC, - 0x09, - 0xBE, - 0x07, - 0xBF, - 0xBD, - 0x07, - 0xBE, - 0x07, - 0xB9, - 0xBE, - 0xBB, - 0x00, - 0xBA, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x41, - 0xFA, - 0xBE, - 0x07, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0xBE, - 0xBE, - 0xBE, - 0x07, - 0xBE, - 0xB9, - 0x00, - 0xBB, - 0xBE, - 0xBA, - 0x53, - 0xBB, - 0xBE, - 0xBC, - 0x00, - 0xBE, - 0xBE, - 0xBF, - 0x09, - 0x00, - 0x09, - 0xC6, - 0xBF, - 0xBE, - 0xBB, - 0x00, - 0xB9, - 0xBE, - 0x07, - 0xBE, - 0x07, - 0xBE, - 0x22, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x06, - 0x41, - 0xF9, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x06, - 0x00, - 0x00, - 0x17, - 0xBA, - 0xB9, - 0xC6, - 0xBD, - 0xBE, - 0xBB, - 0xB3, - 0xBB, - 0xBE, - 0xBC, - 0x00, - 0xBE, - 0xBE, - 0xBC, - 0xBF, - 0xBE, - 0xBE, - 0xBD, - 0xBF, - 0xBE, - 0xBB, - 0x00, - 0xBB, - 0x00, - 0x05, - 0xBE, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0xF9, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x05, - 0xBE, - 0x00, - 0x1D, - 0xB9, - 0x00, - 0xBB, - 0xBF, - 0xC6, - 0xBD, - 0xBE, - 0xBC, - 0x00, - 0x00, - 0x09, - 0xB9, - 0xC0, - 0xBC, - 0x00, - 0x00, - 0xBD, - 0xBA, - 0xBE, - 0xBB, - 0xC6, - 0xBD, - 0x00, - 0xBD, - 0xBE, - 0xBE, - 0xBE, - 0x4F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x1D, - 0x0B, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0x00, - 0xBC, - 0x0D, - 0xBE, - 0x00, - 0x03, - 0xBC, - 0x00, - 0xC0, - 0x00, - 0x10, - 0xBE, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x08, - 0x41, - 0x0B, - 0xBE, - 0xBE, - 0xBE, - 0xBA, - 0xC6, - 0xBC, - 0x05, - 0xBE, - 0x00, - 0x0A, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBC, - 0x4C, - 0x11, - 0xBE, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x1D, - 0x0B, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBF, - 0xC6, - 0x00, - 0x00, - 0x53, - 0x00, - 0xBB, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBB, - 0xCC, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0x21, - 0x32, - 0x00, - 0x00, - 0x00, - 0x13, - 0x41, - 0x0B, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0xBE, - 0xC0, - 0x00, - 0x0F, - 0xBE, - 0x00, - 0x08, - 0xC0, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBE, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x07, - 0x41, - 0x0B, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x07, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x10, - 0xC0, - 0x00, - 0x08, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0xC0, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x26, - 0xC0, - 0x01, - 0x5E, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0x16, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x20, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0xF8, - 0x26, - 0xC0, - 0x01, - 0x0B, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1E, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x26, - 0xC0, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x03, - 0x27, - 0x17, - 0x61, - 0x00, - 0x25, - 0xC0, - 0x01, - 0x21, - 0x01, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x1A, - 0xF9, - 0xC0, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x0B, - 0xC0, - 0x00, - 0x07, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x05, - 0xBE, - 0xC0, - 0xC0, - 0xC0, - 0xBE, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x17, - 0x00, - 0x20, - 0xC0, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x2A, - 0x00, - 0x00, - 0x00, - 0x29, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC2, - 0x03, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x31, - 0x1A, - 0x60, - 0x0B, - 0x00, - 0x1C, - 0x5D, - 0x00, - 0x04, - 0x0B, - 0x5F, - 0x44, - 0x42, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x00, - 0x00, - 0x3F, - 0x50, - 0x4E, - 0x34, - 0x3F, - 0x3C, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x04, - 0x3F, - 0x04, - 0x3E, - 0x07, - 0x3F, - 0x05, - 0x3E, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x34, - 0x4D, - 0xB2, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x29, - 0x17, - 0x4E, - 0x27, - 0x00, - 0x20, - 0x2A, - 0x00, - 0x04, - 0x43, - 0x1C, - 0x17, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x2F, - 0x37, - 0x61, - 0x00, - 0x24, - 0x39, - 0x00, - 0x03, - 0x1A, - 0x50, - 0x43, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x50, - 0x3D, - 0x00, - 0x1E, - 0x38, - 0x01, - 0x39, - 0x04, - 0x38, - 0x00, - 0x04, - 0x39, - 0x29, - 0x22, - 0x3F, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x4F, - 0x26, - 0x3A, - 0x01, - 0x17, - 0x01, - 0x34, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x2B, - 0x01, - 0x50, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5F, - 0x26, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x15, - 0x2C, - 0x01, - 0x21, - 0x10, - 0x2C, - 0x01, - 0x61, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x15, - 0x45, - 0x00, - 0x03, - 0x59, - 0xF6, - 0x5B, - 0x00, - 0x0E, - 0x45, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x16, - 0x2F, - 0x00, - 0x04, - 0x29, - 0x56, - 0xF7, - 0x29, - 0x0C, - 0x2F, - 0x01, - 0x61, - 0x01, - 0x33, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x5E, - 0x05, - 0x2D, - 0x00, - 0x0A, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x05, - 0x2E, - 0x00, - 0x14, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0xB8, - 0xF7, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2D, - 0x2E, - 0x17, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x37, - 0x21, - 0x30, - 0x00, - 0x05, - 0x31, - 0x00, - 0x04, - 0x30, - 0x31, - 0x30, - 0x30, - 0x0C, - 0x31, - 0x00, - 0x05, - 0x30, - 0x31, - 0x35, - 0x00, - 0x0B, - 0x00, - 0x04, - 0x31, - 0x01, - 0x30, - 0x06, - 0x31, - 0x01, - 0x61, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x37, - 0x01, - 0x21, - 0x19, - 0x26, - 0x01, - 0xF7, - 0x01, - 0xF7, - 0x0B, - 0x26, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x21, - 0x07, - 0x43, - 0x00, - 0x09, - 0x26, - 0x43, - 0x26, - 0x43, - 0x43, - 0x3C, - 0x5A, - 0x5A, - 0x3D, - 0x00, - 0x05, - 0x43, - 0x00, - 0x08, - 0x3C, - 0x5A, - 0x5A, - 0x3D, - 0xF7, - 0x00, - 0x43, - 0x26, - 0x09, - 0x43, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x06, - 0x42, - 0x00, - 0x10, - 0x43, - 0x42, - 0x42, - 0x43, - 0x42, - 0x42, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x42, - 0x43, - 0x42, - 0x43, - 0x42, - 0xB8, - 0x05, - 0x00, - 0x00, - 0x04, - 0x43, - 0x42, - 0x42, - 0x43, - 0x04, - 0x42, - 0x00, - 0x05, - 0x43, - 0x43, - 0x42, - 0x17, - 0x33, - 0x00, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x16, - 0x0B, - 0x42, - 0x01, - 0x50, - 0x04, - 0x00, - 0x01, - 0x50, - 0x04, - 0x42, - 0x05, - 0x00, - 0x00, - 0x07, - 0xB8, - 0x29, - 0x42, - 0x42, - 0x42, - 0x29, - 0x29, - 0x00, - 0x05, - 0x42, - 0x01, - 0x17, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xFA, - 0x0B, - 0x29, - 0x01, - 0x20, - 0x04, - 0x00, - 0x00, - 0x06, - 0x20, - 0x29, - 0x29, - 0x29, - 0x28, - 0xF7, - 0x04, - 0x00, - 0x01, - 0x50, - 0x0B, - 0x29, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x0C, - 0x28, - 0x00, - 0x04, - 0x5C, - 0xF5, - 0xF5, - 0x5C, - 0x05, - 0x28, - 0x00, - 0x05, - 0x4E, - 0xB8, - 0x00, - 0xF6, - 0x21, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x27, - 0x01, - 0x22, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x3D, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0xF9, - 0x26, - 0x3C, - 0x01, - 0x4F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x3F, - 0x01, - 0x60, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0xF9, - 0x26, - 0x3E, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x1D, - 0x01, - 0x0B, - 0x26, - 0x19, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x01, - 0x41, - 0x01, - 0x0B, - 0x08, - 0x35, - 0x01, - 0x34, - 0x01, - 0x34, - 0x07, - 0x35, - 0x01, - 0x34, - 0x06, - 0x35, - 0x01, - 0x34, - 0x0D, - 0x35, - 0x01, - 0x5F, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x41, - 0x0B, - 0x34, - 0x34, - 0x05, - 0x18, - 0x00, - 0x03, - 0x34, - 0x34, - 0x34, - 0x00, - 0x07, - 0x18, - 0x00, - 0x17, - 0x34, - 0x18, - 0x18, - 0x34, - 0x34, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x34, - 0x18, - 0x18, - 0x34, - 0x18, - 0x18, - 0x18, - 0x5F, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x0B, - 0x26, - 0x33, - 0x01, - 0x5F, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x05, - 0x1A, - 0x5D, - 0x1B, - 0x1B, - 0x32, - 0x00, - 0x18, - 0x1B, - 0x00, - 0x0D, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x1B, - 0x1B, - 0x1B, - 0x32, - 0x32, - 0x1B, - 0x5E, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x1A, - 0x5D, - 0x20, - 0x20, - 0x32, - 0x32, - 0x20, - 0x32, - 0x20, - 0x00, - 0x05, - 0x32, - 0x01, - 0x20, - 0x06, - 0x32, - 0x00, - 0x06, - 0x20, - 0x20, - 0x32, - 0x32, - 0x32, - 0x20, - 0x0D, - 0x32, - 0x01, - 0x21, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1A, - 0x01, - 0x5D, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x20, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x1F, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x1F, - 0x20, - 0x00, - 0x04, - 0x1F, - 0x01, - 0x20, - 0x06, - 0x1F, - 0x00, - 0x03, - 0x20, - 0x16, - 0x32, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x1A, - 0x5D, - 0x1A, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x1A, - 0x11, - 0x1E, - 0x01, - 0x1A, - 0x07, - 0x1E, - 0x00, - 0x03, - 0x1A, - 0x16, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x1E, - 0xF8, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x0A, - 0x1A, - 0x00, - 0x05, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x00, - 0x04, - 0x1A, - 0x01, - 0x10, - 0x07, - 0x1A, - 0x01, - 0xFA, - 0x01, - 0x32, - 0x00, - 0x00, - 0x00, - 0x07, - 0x1E, - 0x5C, - 0x10, - 0x1D, - 0x1D, - 0x1D, - 0x10, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x06, - 0x10, - 0x10, - 0x1D, - 0x1D, - 0x10, - 0x10, - 0x0F, - 0x1D, - 0x00, - 0x07, - 0x10, - 0x1D, - 0x10, - 0x1D, - 0x10, - 0xF9, - 0x32, - 0x00, - 0x00, - 0x00, - 0x01, - 0x1F, - 0x01, - 0x5C, - 0x17, - 0x15, - 0x01, - 0x37, - 0x0E, - 0x15, - 0x01, - 0xF9, - 0x01, - 0x1B, - 0x00, - 0x00, - 0x01, - 0x1B, - 0x01, - 0x0B, - 0x0E, - 0x14, - 0x01, - 0x36, - 0x17, - 0x14, - 0x01, - 0xF9, - 0x01, - 0x34, - 0x00, - 0x00, - 0x00, - 0x07, - 0x27, - 0x17, - 0x61, - 0x13, - 0x13, - 0x13, - 0x12, - 0x00, - 0x20, - 0x13, - 0x00, - 0x03, - 0x12, - 0x21, - 0x3C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x00, - 0x1A, - 0xF9, - 0x00, - 0x14, - 0x12, - 0x01, - 0x11, - 0x0F, - 0x12, - 0x00, - 0x03, - 0x22, - 0xB2, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x43, - 0x22, - 0xF9, - 0x22, - 0x00, - 0x20, - 0x11, - 0x00, - 0x04, - 0x61, - 0xFA, - 0x60, - 0x27, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x27, - 0x4E, - 0x60, - 0x16, - 0xF9, - 0x00, - 0x1C, - 0x0B, - 0x00, - 0x05, - 0xF9, - 0x16, - 0x5F, - 0xB2, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x1B, - 0x50, - 0x17, - 0x00, - 0x1C, - 0x4F, - 0x00, - 0x04, - 0x17, - 0x50, - 0x1A, - 0x26, - 0x00, - 0x01, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x01, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x14, - 0x52, - 0x01, - 0xFF, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x12, - 0x52, - 0x00, - 0x03, - 0xD3, - 0x93, - 0xA2, - 0x00, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x11, - 0x52, - 0x00, - 0x04, - 0xFE, - 0x93, - 0x9B, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x11, - 0x52, - 0x00, - 0x04, - 0x93, - 0x90, - 0x90, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0F, - 0x52, - 0x00, - 0x06, - 0xFF, - 0xA2, - 0x90, - 0x90, - 0x90, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0E, - 0x52, - 0x01, - 0xFF, - 0x01, - 0xA2, - 0x04, - 0x90, - 0x01, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0D, - 0x52, - 0x00, - 0x08, - 0xFF, - 0xA2, - 0xA0, - 0x90, - 0x90, - 0x90, - 0x9B, - 0x93, - 0x08, - 0xFF, - 0x12, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0D, - 0x52, - 0x01, - 0xA2, - 0x01, - 0x7F, - 0x05, - 0x90, - 0x01, - 0x92, - 0x09, - 0xA2, - 0x01, - 0xA3, - 0x10, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0C, - 0x52, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x11, - 0x90, - 0x01, - 0x92, - 0x0F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0B, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x9D, - 0x13, - 0x90, - 0x01, - 0xD3, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0A, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x83, - 0x14, - 0x90, - 0x01, - 0xAA, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x09, - 0x52, - 0x01, - 0x51, - 0x01, - 0x83, - 0x15, - 0x90, - 0x01, - 0xAA, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x09, - 0x52, - 0x01, - 0xA2, - 0x16, - 0x90, - 0x01, - 0xAA, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x09, - 0x52, - 0x01, - 0xA7, - 0x16, - 0x90, - 0x01, - 0xAA, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0A, - 0x52, - 0x01, - 0x93, - 0x15, - 0x90, - 0x01, - 0xAA, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0A, - 0x52, - 0x01, - 0x51, - 0x01, - 0x92, - 0x14, - 0x90, - 0x01, - 0xAA, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0B, - 0x52, - 0x01, - 0x51, - 0x01, - 0x83, - 0x12, - 0x90, - 0x01, - 0xA0, - 0x01, - 0x51, - 0x0E, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0C, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x83, - 0x07, - 0x90, - 0x0A, - 0x9B, - 0x01, - 0x93, - 0x0F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0D, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x83, - 0x04, - 0x90, - 0x01, - 0x9B, - 0x01, - 0x92, - 0x09, - 0xA2, - 0x01, - 0xAA, - 0x10, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0E, - 0x52, - 0x01, - 0xAA, - 0x01, - 0x9D, - 0x04, - 0x90, - 0x01, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x0F, - 0x52, - 0x00, - 0x06, - 0xA7, - 0x7F, - 0x90, - 0x90, - 0x90, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x10, - 0x52, - 0x00, - 0x05, - 0xA2, - 0xA0, - 0x90, - 0x90, - 0x93, - 0x00, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x11, - 0x52, - 0x00, - 0x04, - 0xA2, - 0x90, - 0x9B, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x12, - 0x52, - 0x00, - 0x03, - 0x93, - 0x9C, - 0x93, - 0x00, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x13, - 0x52, - 0x01, - 0xA2, - 0x01, - 0xA2, - 0x1A, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0x52, - 0x00, - 0x00, - 0x01, - 0xD9, - 0x2F, - 0xF1, - 0x00, - 0x01, - 0x00, - 0x00, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x05, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x00, - 0x04, - 0x2A, - 0x95, - 0x94, - 0x9E, - 0x47, - 0x04, - 0x00, - 0x00, - 0x07, - 0x04, - 0x00, - 0x0A, - 0xAB, - 0x8C, - 0x69, - 0x66, - 0x63, - 0x62, - 0x68, - 0x69, - 0x80, - 0x95, - 0x44, - 0x04, - 0x00, - 0x00, - 0x05, - 0x04, - 0x00, - 0x03, - 0xD4, - 0x80, - 0x68, - 0x00, - 0x09, - 0x77, - 0x01, - 0x69, - 0x01, - 0xA5, - 0x1C, - 0x04, - 0x00, - 0x05, - 0xD2, - 0xF0, - 0x5A, - 0x5E, - 0xDC, - 0x00, - 0x21, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x01, - 0xAB, - 0x01, - 0x69, - 0x0C, - 0x77, - 0x00, - 0x03, - 0x63, - 0x8C, - 0xDA, - 0x00, - 0x18, - 0x04, - 0x00, - 0x08, - 0xDA, - 0xF2, - 0xF6, - 0xF8, - 0xEF, - 0xF0, - 0xF7, - 0xD3, - 0x04, - 0x04, - 0x01, - 0xDA, - 0x01, - 0xDA, - 0x05, - 0x04, - 0x01, - 0xDA, - 0x14, - 0x04, - 0x00, - 0x00, - 0x00, - 0x05, - 0x04, - 0x04, - 0x04, - 0xAB, - 0x68, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x8C, - 0x07, - 0x04, - 0x00, - 0x39, - 0xD8, - 0xDF, - 0xD5, - 0xD3, - 0xEF, - 0xDA, - 0x04, - 0xD6, - 0xD2, - 0xDA, - 0xD7, - 0x0B, - 0x50, - 0xDA, - 0xDE, - 0x5A, - 0xF0, - 0xDE, - 0xD2, - 0xF7, - 0xDE, - 0xD3, - 0xDF, - 0xF5, - 0xDE, - 0xD6, - 0xD7, - 0x04, - 0xD8, - 0x17, - 0x5B, - 0xD0, - 0xD6, - 0xD5, - 0x04, - 0xD0, - 0xF0, - 0xD0, - 0x04, - 0xD6, - 0x59, - 0xFA, - 0xD7, - 0x04, - 0xD5, - 0x0B, - 0xF0, - 0xF2, - 0xE1, - 0x04, - 0xD9, - 0xF2, - 0xDE, - 0xD0, - 0xE1, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x04, - 0x04, - 0xD4, - 0x66, - 0x77, - 0x00, - 0x06, - 0x62, - 0x01, - 0x77, - 0x01, - 0x77, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x94, - 0x00, - 0x06, - 0x04, - 0x00, - 0x39, - 0xDB, - 0xF6, - 0xDE, - 0xD6, - 0x55, - 0xDA, - 0x04, - 0xF7, - 0x5E, - 0xDA, - 0x56, - 0xF7, - 0xDF, - 0xDE, - 0xF6, - 0x58, - 0x5A, - 0xF7, - 0xD3, - 0xDF, - 0xF4, - 0x56, - 0x57, - 0xD6, - 0xDA, - 0x55, - 0xEF, - 0x04, - 0x5E, - 0xF6, - 0xF0, - 0x56, - 0xF4, - 0xD7, - 0xD5, - 0xF6, - 0x56, - 0xDE, - 0x5F, - 0xF6, - 0xF0, - 0x57, - 0x56, - 0xDB, - 0xB8, - 0xB8, - 0x58, - 0x55, - 0xF7, - 0x04, - 0xD7, - 0x0B, - 0x58, - 0xF7, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x80, - 0x62, - 0x77, - 0x6E, - 0x70, - 0x81, - 0x6E, - 0x70, - 0x6E, - 0x62, - 0x62, - 0x78, - 0x70, - 0x70, - 0x81, - 0x70, - 0x70, - 0x78, - 0x77, - 0x68, - 0xB4, - 0x00, - 0x05, - 0x04, - 0x00, - 0x39, - 0xDB, - 0x55, - 0xDE, - 0xE1, - 0xF7, - 0xD8, - 0x04, - 0xB8, - 0x17, - 0xDA, - 0xF7, - 0xE1, - 0x04, - 0x56, - 0x58, - 0x04, - 0xDA, - 0xD9, - 0xDA, - 0xDE, - 0xF5, - 0x59, - 0x0C, - 0x04, - 0xDA, - 0xF7, - 0xD6, - 0x04, - 0x5A, - 0xB8, - 0xDA, - 0xDD, - 0xF6, - 0xD7, - 0xD7, - 0x55, - 0xD9, - 0x04, - 0x55, - 0xD6, - 0x04, - 0x04, - 0xDB, - 0xD0, - 0xF6, - 0xDD, - 0x04, - 0x16, - 0xF7, - 0x04, - 0xD6, - 0x59, - 0x5A, - 0xDF, - 0x58, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x04, - 0xAB, - 0x63, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x70, - 0x00, - 0x46, - 0x81, - 0x63, - 0x76, - 0x54, - 0x88, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x8C, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x34, - 0xDB, - 0x55, - 0xDE, - 0xE1, - 0xF7, - 0x04, - 0x04, - 0xB8, - 0x17, - 0x04, - 0xB8, - 0xD6, - 0x04, - 0x56, - 0xF7, - 0x58, - 0x57, - 0x57, - 0xD7, - 0x59, - 0x57, - 0xEE, - 0x55, - 0xEF, - 0x04, - 0xF7, - 0xD6, - 0x04, - 0xDD, - 0x57, - 0xB8, - 0x57, - 0xF6, - 0xD7, - 0xD7, - 0x55, - 0xDD, - 0xDB, - 0xF6, - 0x56, - 0x57, - 0x57, - 0x5A, - 0xEF, - 0x55, - 0xDA, - 0x04, - 0xEF, - 0xF7, - 0x04, - 0xD8, - 0xD8, - 0x05, - 0x04, - 0x00, - 0x00, - 0x00, - 0x18, - 0xD4, - 0x8C, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x81, - 0x54, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x66, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x31, - 0xDB, - 0x55, - 0xF2, - 0xE1, - 0xF6, - 0xD7, - 0x04, - 0xF7, - 0x60, - 0x04, - 0xB8, - 0xE1, - 0x04, - 0x58, - 0xB8, - 0xD2, - 0xD6, - 0xF5, - 0xF2, - 0xF7, - 0xE1, - 0x04, - 0x57, - 0x59, - 0x04, - 0x55, - 0x56, - 0xDB, - 0x04, - 0xD8, - 0xD3, - 0xEE, - 0xF5, - 0xD7, - 0xDC, - 0x55, - 0xDB, - 0x04, - 0x55, - 0x5A, - 0xD1, - 0x5A, - 0x55, - 0xD1, - 0xF6, - 0xDE, - 0x04, - 0xDF, - 0xF7, - 0x00, - 0x08, - 0x04, - 0x00, - 0x00, - 0x00, - 0x18, - 0x04, - 0x69, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x65, - 0x70, - 0x00, - 0x46, - 0x4C, - 0x53, - 0x76, - 0x64, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x95, - 0x04, - 0x04, - 0x00, - 0x31, - 0xD9, - 0xF6, - 0xDE, - 0xE1, - 0xF6, - 0xB8, - 0x56, - 0xF5, - 0xD0, - 0xF0, - 0xF5, - 0xF7, - 0x60, - 0xD1, - 0xF7, - 0x59, - 0xB8, - 0x58, - 0x04, - 0x0B, - 0xF7, - 0x5A, - 0x55, - 0xF7, - 0xD0, - 0xB8, - 0xB8, - 0xF7, - 0xEF, - 0x56, - 0x58, - 0x56, - 0xF7, - 0xDC, - 0x56, - 0xF4, - 0x56, - 0xD0, - 0xD6, - 0x55, - 0x5A, - 0xF7, - 0x50, - 0x04, - 0xF0, - 0x55, - 0x57, - 0xF7, - 0xF7, - 0x00, - 0x08, - 0x04, - 0x00, - 0x00, - 0x00, - 0x18, - 0x04, - 0x63, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0xB3, - 0x6E, - 0x64, - 0x6E, - 0x53, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x8C, - 0x04, - 0x04, - 0x00, - 0x31, - 0xDA, - 0xDE, - 0xD9, - 0xDD, - 0xD2, - 0xD7, - 0x22, - 0xD0, - 0x04, - 0xD0, - 0x55, - 0x5A, - 0xDE, - 0x04, - 0xD3, - 0x22, - 0x0A, - 0xDA, - 0x04, - 0x04, - 0xE1, - 0x60, - 0xD2, - 0xDE, - 0xD3, - 0xDE, - 0xD8, - 0xE1, - 0xD3, - 0xDE, - 0x17, - 0x61, - 0xDC, - 0xDA, - 0x22, - 0xF5, - 0x61, - 0xD3, - 0x04, - 0xDE, - 0x5F, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xDF, - 0x5A, - 0xF7, - 0x00, - 0x08, - 0x04, - 0x00, - 0x00, - 0x01, - 0x04, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x75, - 0x63, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x8C, - 0x00, - 0x04, - 0x04, - 0x00, - 0x03, - 0xD9, - 0x59, - 0xDE, - 0x00, - 0x07, - 0x04, - 0x01, - 0x56, - 0x01, - 0x0C, - 0x16, - 0x04, - 0x00, - 0x03, - 0xD3, - 0xB8, - 0xDB, - 0x00, - 0x0A, - 0x04, - 0x01, - 0xEF, - 0x01, - 0xF7, - 0x08, - 0x04, - 0x00, - 0x00, - 0x01, - 0x04, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x77, - 0x77, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x6E, - 0x54, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x80, - 0x00, - 0x04, - 0x04, - 0x00, - 0x03, - 0xD9, - 0x57, - 0xDE, - 0x00, - 0x07, - 0x04, - 0x01, - 0xD5, - 0x01, - 0xDA, - 0x16, - 0x04, - 0x00, - 0x03, - 0xD8, - 0xDD, - 0xDA, - 0x00, - 0x0A, - 0x04, - 0x01, - 0xD6, - 0x01, - 0x56, - 0x08, - 0x04, - 0x00, - 0x00, - 0x00, - 0x18, - 0x04, - 0x62, - 0x77, - 0x77, - 0x77, - 0x88, - 0xB3, - 0x75, - 0x64, - 0x81, - 0x75, - 0x81, - 0x4C, - 0x53, - 0x72, - 0x64, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x8C, - 0x08, - 0x04, - 0x00, - 0x1D, - 0xDA, - 0xD8, - 0x04, - 0xDA, - 0xD8, - 0xDA, - 0x04, - 0xDB, - 0xD5, - 0x04, - 0xD8, - 0xD9, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDA, - 0xD8, - 0x04, - 0xD8, - 0xDA, - 0x04, - 0xDA, - 0xD8, - 0x04, - 0x04, - 0xD8, - 0xDA, - 0x00, - 0x0E, - 0x04, - 0x01, - 0xDA, - 0x01, - 0xD8, - 0x08, - 0x04, - 0x00, - 0x00, - 0x00, - 0x18, - 0x04, - 0x68, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x75, - 0x53, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x6A, - 0x81, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x94, - 0x04, - 0x04, - 0x00, - 0x21, - 0xD9, - 0x56, - 0xDE, - 0x04, - 0x22, - 0x59, - 0x04, - 0xDD, - 0x56, - 0xDC, - 0xD6, - 0x55, - 0xB8, - 0x58, - 0x58, - 0xDE, - 0xB8, - 0xF2, - 0x04, - 0x57, - 0x5E, - 0x08, - 0x58, - 0xDA, - 0x57, - 0xDF, - 0x04, - 0xE1, - 0x56, - 0xDA, - 0x04, - 0x57, - 0xE1, - 0x00, - 0x18, - 0x04, - 0x00, - 0x00, - 0x00, - 0x18, - 0x04, - 0x80, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x88, - 0x75, - 0x46, - 0x00, - 0x72, - 0x77, - 0x89, - 0x54, - 0x76, - 0x75, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x64, - 0x2A, - 0x04, - 0x04, - 0x00, - 0x21, - 0xDB, - 0xF6, - 0xD0, - 0x04, - 0xF0, - 0x56, - 0x04, - 0xF1, - 0xF6, - 0xD7, - 0xF7, - 0xF0, - 0xDB, - 0x59, - 0xF6, - 0x04, - 0x5B, - 0x56, - 0x17, - 0x55, - 0xD5, - 0x61, - 0xF7, - 0x04, - 0xB8, - 0x5E, - 0x04, - 0xDF, - 0x55, - 0xDA, - 0x04, - 0xF7, - 0xDF, - 0x00, - 0x18, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x04, - 0x94, - 0x77, - 0x77, - 0x62, - 0x88, - 0x00, - 0x00, - 0x00, - 0x54, - 0x88, - 0x67, - 0x63, - 0x72, - 0x04, - 0x00, - 0x00, - 0x05, - 0x54, - 0x6E, - 0x62, - 0x62, - 0x69, - 0x00, - 0x05, - 0x04, - 0x00, - 0x21, - 0xDB, - 0x55, - 0xD0, - 0x04, - 0xF0, - 0x56, - 0x04, - 0xDC, - 0x55, - 0xD3, - 0x0B, - 0xF7, - 0xD6, - 0xDF, - 0x55, - 0xD8, - 0xDA, - 0x56, - 0xB3, - 0xD0, - 0x04, - 0x17, - 0xB8, - 0x04, - 0xB8, - 0x60, - 0x04, - 0xEF, - 0x55, - 0xDA, - 0x04, - 0xF7, - 0xEF, - 0x00, - 0x18, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x04, - 0xD4, - 0x69, - 0x77, - 0x62, - 0x6E, - 0x04, - 0x75, - 0x00, - 0x0D, - 0x81, - 0x62, - 0x77, - 0x77, - 0x72, - 0x75, - 0x75, - 0x75, - 0x72, - 0x77, - 0x77, - 0x77, - 0x95, - 0x00, - 0x05, - 0x04, - 0x00, - 0x21, - 0xDB, - 0x55, - 0xDE, - 0x04, - 0xFA, - 0x56, - 0x04, - 0xDB, - 0x55, - 0xD2, - 0x04, - 0xD6, - 0x58, - 0xB8, - 0x55, - 0xD9, - 0xDA, - 0x56, - 0xE0, - 0xF2, - 0x04, - 0x61, - 0xB8, - 0x04, - 0xB8, - 0x22, - 0x04, - 0xD6, - 0x55, - 0x04, - 0x04, - 0xF7, - 0xDF, - 0x00, - 0x18, - 0x04, - 0x00, - 0x00, - 0x00, - 0x05, - 0x04, - 0x04, - 0x95, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x80, - 0xDA, - 0x05, - 0x04, - 0x00, - 0x21, - 0xD9, - 0xF6, - 0xB8, - 0xD0, - 0x56, - 0xF5, - 0x61, - 0xEF, - 0xF5, - 0xD3, - 0xD2, - 0xEF, - 0xD7, - 0x5B, - 0x55, - 0x04, - 0x5B, - 0xB8, - 0xFA, - 0xF7, - 0xD9, - 0x61, - 0xF7, - 0x04, - 0xB8, - 0x55, - 0xE1, - 0x5A, - 0xC6, - 0x0B, - 0xD0, - 0xF5, - 0xD6, - 0x00, - 0x18, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x04, - 0x04, - 0x04, - 0x8C, - 0x77, - 0x62, - 0x0E, - 0x77, - 0x01, - 0x69, - 0x01, - 0xB4, - 0x06, - 0x04, - 0x00, - 0x21, - 0xD9, - 0x58, - 0x16, - 0xB8, - 0xF7, - 0xEF, - 0x58, - 0xF7, - 0x5A, - 0x04, - 0xDE, - 0x56, - 0xB8, - 0xF7, - 0xD6, - 0xDC, - 0x56, - 0xDE, - 0x04, - 0x57, - 0xD6, - 0xE1, - 0x59, - 0x04, - 0x5B, - 0xFA, - 0x56, - 0xF7, - 0x61, - 0x5A, - 0xF7, - 0x57, - 0xDB, - 0x00, - 0x18, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x00, - 0x03, - 0x80, - 0x62, - 0x62, - 0x00, - 0x0C, - 0x77, - 0x01, - 0x69, - 0x01, - 0xAB, - 0x0A, - 0x04, - 0x00, - 0x05, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD9, - 0xDA, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x00, - 0x03, - 0xDA, - 0xDB, - 0xF1, - 0x00, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD8, - 0x04, - 0x04, - 0xD8, - 0x1A, - 0x04, - 0x00, - 0x00, - 0x05, - 0x04, - 0x00, - 0x03, - 0x8C, - 0x68, - 0x62, - 0x00, - 0x0A, - 0x77, - 0x01, - 0x80, - 0x01, - 0xB4, - 0x1D, - 0x04, - 0x00, - 0x03, - 0x5E, - 0xF7, - 0xDA, - 0x00, - 0x21, - 0x04, - 0x00, - 0x00, - 0x06, - 0x04, - 0x00, - 0x03, - 0xB4, - 0x80, - 0x66, - 0x00, - 0x06, - 0x77, - 0x00, - 0x03, - 0x64, - 0x80, - 0x94, - 0x00, - 0x1F, - 0x04, - 0x01, - 0xDD, - 0x01, - 0xD2, - 0x22, - 0x04, - 0x00, - 0x00, - 0x08, - 0x04, - 0x00, - 0x08, - 0xD4, - 0x95, - 0x80, - 0x69, - 0x69, - 0x80, - 0x8C, - 0x2A, - 0x45, - 0x04, - 0x00, - 0x01, - 0x00, - 0x00, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x05, - 0x00, - 0x00, - 0x08, - 0x03, - 0x00, - 0x06, - 0xB1, - 0x03, - 0xAC, - 0x74, - 0x74, - 0x8E, - 0x47, - 0x03, - 0x00, - 0x00, - 0x07, - 0x03, - 0x00, - 0x0A, - 0xAC, - 0x71, - 0x6C, - 0x79, - 0x67, - 0x62, - 0x67, - 0x7D, - 0x92, - 0x74, - 0x20, - 0x03, - 0x01, - 0xC4, - 0x23, - 0x03, - 0x00, - 0x00, - 0x05, - 0x03, - 0x00, - 0x03, - 0xB1, - 0x92, - 0x67, - 0x00, - 0x09, - 0x77, - 0x01, - 0x6C, - 0x01, - 0x74, - 0x1C, - 0x03, - 0x00, - 0x05, - 0x4F, - 0x57, - 0x57, - 0x58, - 0x50, - 0x00, - 0x21, - 0x03, - 0x00, - 0x00, - 0x04, - 0x03, - 0x01, - 0x8E, - 0x01, - 0x02, - 0x0C, - 0x77, - 0x01, - 0x62, - 0x01, - 0x71, - 0x17, - 0x03, - 0x00, - 0x0A, - 0xC4, - 0xC4, - 0x03, - 0x4F, - 0xF6, - 0x57, - 0x5A, - 0x57, - 0x55, - 0x50, - 0x05, - 0x03, - 0x01, - 0xC4, - 0x01, - 0xC4, - 0x04, - 0x03, - 0x01, - 0xC4, - 0x14, - 0x03, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x03, - 0x03, - 0x8E, - 0x68, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x92, - 0x07, - 0x03, - 0x00, - 0x39, - 0xC3, - 0x5A, - 0xDF, - 0x50, - 0x5A, - 0xC4, - 0x03, - 0x5B, - 0x4F, - 0x03, - 0x61, - 0x57, - 0x59, - 0x03, - 0x5F, - 0x57, - 0x57, - 0x5E, - 0x22, - 0x55, - 0x5F, - 0x50, - 0x59, - 0xF4, - 0x5F, - 0x5B, - 0x61, - 0x03, - 0xC3, - 0x58, - 0x57, - 0x5E, - 0xF8, - 0xB2, - 0x03, - 0xF9, - 0x57, - 0xFA, - 0x03, - 0x5B, - 0x56, - 0x58, - 0x61, - 0x03, - 0xB2, - 0x57, - 0x57, - 0x60, - 0x5C, - 0x03, - 0xB7, - 0x60, - 0x60, - 0xF9, - 0x5D, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x03, - 0xAE, - 0x8A, - 0x77, - 0x00, - 0x06, - 0x62, - 0x01, - 0x77, - 0x01, - 0x77, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x71, - 0x00, - 0x06, - 0x03, - 0x00, - 0x39, - 0xB7, - 0xF5, - 0x5F, - 0x5C, - 0xF6, - 0xC4, - 0x03, - 0x55, - 0x58, - 0x03, - 0xF7, - 0x55, - 0x5A, - 0xFA, - 0xF5, - 0x56, - 0x56, - 0x55, - 0x50, - 0x5A, - 0xF4, - 0xF7, - 0xB8, - 0x5B, - 0xC4, - 0xF6, - 0x5A, - 0xC4, - 0x58, - 0xF6, - 0x57, - 0xF7, - 0xF3, - 0x61, - 0xB2, - 0xF5, - 0xB8, - 0x5F, - 0x58, - 0xF5, - 0x57, - 0xB8, - 0xF7, - 0x4E, - 0xF7, - 0x55, - 0x56, - 0xF6, - 0x55, - 0x03, - 0x61, - 0x57, - 0x56, - 0x55, - 0x55, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0x03, - 0x92, - 0x77, - 0x77, - 0x6E, - 0x70, - 0x81, - 0x6E, - 0x70, - 0x6E, - 0x62, - 0x62, - 0x78, - 0x70, - 0x70, - 0x81, - 0x70, - 0x70, - 0x78, - 0x77, - 0x67, - 0xAE, - 0x00, - 0x05, - 0x03, - 0x00, - 0x39, - 0x4E, - 0xF6, - 0x60, - 0x5D, - 0xF6, - 0x03, - 0x03, - 0x55, - 0x59, - 0x03, - 0x55, - 0x5D, - 0x03, - 0xB8, - 0x56, - 0x03, - 0x03, - 0xC2, - 0xC4, - 0x5E, - 0xF5, - 0x56, - 0x0B, - 0x03, - 0xC4, - 0x55, - 0x5B, - 0x03, - 0x57, - 0x55, - 0x03, - 0xB2, - 0xF5, - 0x61, - 0x61, - 0xF6, - 0xB7, - 0x03, - 0xF6, - 0x5A, - 0x03, - 0x03, - 0xB7, - 0xF9, - 0xF5, - 0xB2, - 0x03, - 0x58, - 0x55, - 0x03, - 0x5C, - 0x56, - 0x56, - 0x5A, - 0xB8, - 0x03, - 0x03, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x03, - 0xAC, - 0x67, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x70, - 0x00, - 0x46, - 0x81, - 0x63, - 0x76, - 0x54, - 0x88, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x92, - 0x00, - 0x05, - 0x03, - 0x00, - 0x34, - 0x4E, - 0xF6, - 0x60, - 0x5D, - 0x55, - 0x03, - 0x03, - 0xF7, - 0x59, - 0x03, - 0x55, - 0xF8, - 0x03, - 0xF7, - 0x55, - 0xB8, - 0xB8, - 0xB8, - 0x61, - 0x56, - 0xB8, - 0x59, - 0xF6, - 0x5B, - 0x03, - 0xF6, - 0xF8, - 0x03, - 0xB2, - 0xB8, - 0xF7, - 0xB8, - 0xF5, - 0x61, - 0x61, - 0xF6, - 0xB2, - 0x4E, - 0xF5, - 0xB8, - 0xB8, - 0xB8, - 0x56, - 0x5B, - 0xF6, - 0x03, - 0x03, - 0x5A, - 0x55, - 0x03, - 0xC3, - 0xC3, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x92, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x81, - 0x54, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x79, - 0xB1, - 0x04, - 0x03, - 0x00, - 0x31, - 0x4E, - 0xF6, - 0x5F, - 0x0B, - 0xF5, - 0x61, - 0x03, - 0x55, - 0x58, - 0x03, - 0x55, - 0xF8, - 0xC5, - 0xB8, - 0xF7, - 0x22, - 0x5B, - 0xF3, - 0x4F, - 0xF6, - 0xF8, - 0xC4, - 0xB8, - 0x56, - 0x03, - 0xF6, - 0xF7, - 0x4E, - 0x03, - 0x03, - 0x50, - 0x5A, - 0xF4, - 0x61, - 0x50, - 0xF6, - 0x4E, - 0x03, - 0xF6, - 0x57, - 0x17, - 0x57, - 0xF6, - 0x17, - 0xF5, - 0x5E, - 0x03, - 0x5A, - 0x55, - 0x00, - 0x08, - 0x03, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x6C, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x65, - 0x70, - 0x00, - 0x46, - 0x4C, - 0x53, - 0x76, - 0x64, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x74, - 0x04, - 0x03, - 0x00, - 0x31, - 0x4E, - 0xF6, - 0x60, - 0x0B, - 0xF5, - 0xF7, - 0xF7, - 0xF4, - 0x5E, - 0x57, - 0xF5, - 0x55, - 0x58, - 0x17, - 0x55, - 0x56, - 0xF7, - 0x56, - 0x03, - 0x57, - 0x55, - 0x57, - 0xF6, - 0x55, - 0x0B, - 0xF7, - 0xF7, - 0x55, - 0x5A, - 0xF7, - 0xB8, - 0xF7, - 0x55, - 0x50, - 0xB8, - 0xF3, - 0xF7, - 0xF9, - 0x5B, - 0xF6, - 0x56, - 0xF6, - 0x59, - 0x03, - 0x57, - 0xF6, - 0xB8, - 0xF6, - 0x55, - 0x00, - 0x08, - 0x03, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x67, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0xB3, - 0x6E, - 0x64, - 0x6E, - 0x53, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x71, - 0x04, - 0x03, - 0x00, - 0x31, - 0xC4, - 0x5F, - 0xC2, - 0xB2, - 0x22, - 0x61, - 0x58, - 0xFA, - 0x03, - 0xF9, - 0xF6, - 0x56, - 0x5F, - 0x03, - 0x50, - 0x58, - 0x5B, - 0xC4, - 0x03, - 0x03, - 0x5D, - 0x58, - 0x22, - 0x5F, - 0x50, - 0x60, - 0xC3, - 0x5D, - 0x50, - 0x5F, - 0x59, - 0x59, - 0xB2, - 0xC4, - 0x59, - 0xF5, - 0x59, - 0x50, - 0x03, - 0x5E, - 0x58, - 0xFA, - 0x03, - 0x03, - 0x03, - 0xF9, - 0x5A, - 0x57, - 0x55, - 0x00, - 0x08, - 0x03, - 0x00, - 0x00, - 0x01, - 0x03, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x75, - 0x63, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x92, - 0xD6, - 0x03, - 0x03, - 0x03, - 0xB7, - 0x56, - 0x60, - 0x07, - 0x03, - 0x01, - 0xF7, - 0x01, - 0xF9, - 0x16, - 0x03, - 0x00, - 0x03, - 0x50, - 0x55, - 0xB7, - 0x00, - 0x0A, - 0x03, - 0x01, - 0x5A, - 0x01, - 0xF6, - 0x08, - 0x03, - 0x00, - 0x00, - 0x01, - 0x03, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x77, - 0x77, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x6E, - 0x54, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x92, - 0x00, - 0x04, - 0x03, - 0x00, - 0x03, - 0xB7, - 0xB8, - 0x5F, - 0x00, - 0x07, - 0x03, - 0x01, - 0xB2, - 0x01, - 0xC4, - 0x16, - 0x03, - 0x00, - 0x03, - 0xC3, - 0xB2, - 0xC4, - 0x00, - 0x0A, - 0x03, - 0x01, - 0x5C, - 0x01, - 0xB8, - 0x08, - 0x03, - 0x00, - 0x00, - 0x01, - 0x03, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0xB3, - 0x75, - 0x64, - 0x81, - 0x75, - 0x81, - 0x4C, - 0x53, - 0x72, - 0x64, - 0x6E, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x92, - 0x00, - 0x08, - 0x03, - 0x00, - 0x1D, - 0xC4, - 0xC4, - 0x03, - 0xC4, - 0xC3, - 0xC4, - 0x03, - 0x4E, - 0xB2, - 0x03, - 0xC4, - 0xB7, - 0xC3, - 0x03, - 0x03, - 0x03, - 0x4E, - 0xC3, - 0xC4, - 0x03, - 0xC3, - 0xC4, - 0x03, - 0xC4, - 0xC3, - 0x03, - 0x03, - 0xC3, - 0xC4, - 0x00, - 0x0E, - 0x03, - 0x01, - 0xC4, - 0x01, - 0xC3, - 0x08, - 0x03, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x79, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x75, - 0x53, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x6A, - 0x81, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x71, - 0x04, - 0x03, - 0x00, - 0x21, - 0xB7, - 0xF7, - 0x5F, - 0x03, - 0x58, - 0x56, - 0x03, - 0xB2, - 0xF7, - 0xB2, - 0x5B, - 0xF6, - 0xF7, - 0x56, - 0xB8, - 0x60, - 0xF7, - 0x22, - 0x03, - 0xB8, - 0x58, - 0x5C, - 0xB8, - 0x03, - 0xB8, - 0x5A, - 0x03, - 0x5D, - 0xF7, - 0x03, - 0x03, - 0xB8, - 0xF8, - 0x00, - 0x18, - 0x03, - 0x00, - 0x00, - 0x00, - 0x18, - 0x03, - 0x8B, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x88, - 0x75, - 0x46, - 0x00, - 0x72, - 0x77, - 0x89, - 0x54, - 0x76, - 0x75, - 0x00, - 0x00, - 0x6E, - 0x62, - 0x77, - 0x67, - 0x8E, - 0x04, - 0x03, - 0x00, - 0x21, - 0x4E, - 0xF6, - 0xF9, - 0x03, - 0x57, - 0xF7, - 0x03, - 0x50, - 0xF6, - 0x61, - 0x55, - 0x57, - 0x4E, - 0x56, - 0xF5, - 0x03, - 0x57, - 0xF7, - 0x59, - 0xF6, - 0xB2, - 0x59, - 0x55, - 0x03, - 0x55, - 0x58, - 0x03, - 0x5A, - 0xF6, - 0xC4, - 0x03, - 0xF6, - 0x5A, - 0x00, - 0x18, - 0x03, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x03, - 0x74, - 0x77, - 0x77, - 0x62, - 0x88, - 0x00, - 0x00, - 0x00, - 0x54, - 0x88, - 0x67, - 0x63, - 0x72, - 0x04, - 0x00, - 0x00, - 0x05, - 0x54, - 0x6E, - 0x62, - 0x77, - 0x8B, - 0x00, - 0x05, - 0x03, - 0x00, - 0x21, - 0x4E, - 0xF6, - 0xFA, - 0x03, - 0x57, - 0xB8, - 0x03, - 0xB2, - 0xF6, - 0x61, - 0x57, - 0x55, - 0x5A, - 0x5A, - 0xF6, - 0xC2, - 0xC4, - 0xF7, - 0x53, - 0xFA, - 0x03, - 0x59, - 0xF7, - 0xC4, - 0xF7, - 0x58, - 0x03, - 0x5A, - 0xF6, - 0xC4, - 0x03, - 0x55, - 0x5A, - 0x00, - 0x18, - 0x03, - 0x00, - 0x00, - 0x00, - 0x06, - 0x03, - 0x03, - 0x7D, - 0x77, - 0x62, - 0x6E, - 0x04, - 0x75, - 0x00, - 0x0D, - 0x81, - 0x62, - 0x77, - 0x77, - 0x72, - 0x75, - 0x75, - 0x75, - 0x72, - 0x77, - 0x77, - 0x77, - 0x74, - 0x00, - 0x05, - 0x03, - 0x00, - 0x21, - 0x4E, - 0xF6, - 0x21, - 0x03, - 0x57, - 0xF7, - 0x03, - 0x4E, - 0xF6, - 0x22, - 0x03, - 0x5B, - 0x56, - 0xF7, - 0xF6, - 0xC3, - 0xC4, - 0xF7, - 0xC6, - 0x4F, - 0x03, - 0x59, - 0xF7, - 0xC4, - 0xF7, - 0x58, - 0xC4, - 0x5B, - 0xF6, - 0x03, - 0x03, - 0x55, - 0x5A, - 0x00, - 0x18, - 0x03, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0x03, - 0x74, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x8B, - 0x00, - 0x06, - 0x03, - 0x00, - 0x21, - 0xB7, - 0xF5, - 0xF7, - 0xF9, - 0xB8, - 0xF4, - 0x59, - 0x5A, - 0xF4, - 0x50, - 0x22, - 0x5B, - 0x61, - 0x57, - 0xF6, - 0x03, - 0x57, - 0xF7, - 0x58, - 0x55, - 0xB7, - 0x59, - 0x55, - 0x03, - 0xF7, - 0xF6, - 0xF8, - 0x57, - 0x00, - 0x57, - 0xF9, - 0xF4, - 0x5B, - 0x00, - 0x18, - 0x03, - 0x00, - 0x00, - 0x00, - 0x04, - 0x03, - 0x03, - 0x03, - 0x92, - 0x10, - 0x77, - 0x01, - 0x02, - 0x01, - 0xAE, - 0x06, - 0x03, - 0x00, - 0x21, - 0xB7, - 0x56, - 0x58, - 0xF7, - 0x55, - 0x5A, - 0xB8, - 0x55, - 0x57, - 0xC4, - 0x60, - 0xF7, - 0x55, - 0x55, - 0x5B, - 0xB2, - 0xF7, - 0x5F, - 0x03, - 0xB8, - 0x5B, - 0x0B, - 0x56, - 0x03, - 0x57, - 0x58, - 0xF7, - 0x55, - 0x59, - 0x57, - 0x55, - 0xB8, - 0x4E, - 0x00, - 0x18, - 0x03, - 0x00, - 0x00, - 0x04, - 0x03, - 0x01, - 0x92, - 0x0E, - 0x77, - 0x01, - 0x7D, - 0x01, - 0xAC, - 0x0A, - 0x03, - 0x00, - 0x05, - 0xC4, - 0xC4, - 0x03, - 0x03, - 0xC3, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xB7, - 0xC4, - 0x03, - 0xC3, - 0x04, - 0x03, - 0x00, - 0x03, - 0xC4, - 0xB2, - 0x50, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0xC3, - 0x03, - 0x03, - 0xC3, - 0x1A, - 0x03, - 0x00, - 0x00, - 0x05, - 0x03, - 0x01, - 0x71, - 0x01, - 0x79, - 0x0B, - 0x77, - 0x01, - 0x8B, - 0x01, - 0xAE, - 0x1D, - 0x03, - 0x00, - 0x03, - 0x58, - 0x55, - 0xC4, - 0x00, - 0x21, - 0x03, - 0x00, - 0x00, - 0x06, - 0x03, - 0x00, - 0x03, - 0xAC, - 0x92, - 0x79, - 0x00, - 0x06, - 0x77, - 0x00, - 0x03, - 0x67, - 0x8B, - 0x74, - 0x00, - 0x1F, - 0x03, - 0x01, - 0xB2, - 0x01, - 0x22, - 0x22, - 0x03, - 0x00, - 0x00, - 0x08, - 0x03, - 0x00, - 0x08, - 0xB1, - 0x74, - 0x92, - 0x6C, - 0x6C, - 0x8B, - 0x71, - 0xAC, - 0x45, - 0x03, - 0x00, - 0x01, - 0x00, - 0x00, - 0x55, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4A, - 0x05, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x00, - 0x04, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x02, - 0x07, - 0x00, - 0x00, - 0x0A, - 0x89, - 0x75, - 0x6E, - 0x78, - 0x77, - 0x77, - 0x78, - 0x81, - 0x72, - 0x76, - 0x1E, - 0x00, - 0x00, - 0x04, - 0x54, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x46, - 0x72, - 0x78, - 0x09, - 0x77, - 0x00, - 0x03, - 0x6E, - 0x76, - 0x53, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x05, - 0xF4, - 0x56, - 0x58, - 0x57, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x00, - 0x00, - 0x53, - 0x89, - 0x81, - 0x0D, - 0x77, - 0x00, - 0x03, - 0x75, - 0x53, - 0x54, - 0x00, - 0x07, - 0x00, - 0x01, - 0x54, - 0x0D, - 0x00, - 0x00, - 0x0A, - 0x53, - 0x54, - 0x00, - 0x00, - 0xF9, - 0x5A, - 0xB8, - 0xB8, - 0x4F, - 0x56, - 0x06, - 0x00, - 0x01, - 0x53, - 0x11, - 0x00, - 0x01, - 0x53, - 0x04, - 0x00, - 0x02, - 0x53, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x53, - 0x89, - 0x6D, - 0x00, - 0x0F, - 0x77, - 0x01, - 0x72, - 0x07, - 0x00, - 0x00, - 0x38, - 0x54, - 0xF7, - 0xF6, - 0xB3, - 0xB8, - 0xF4, - 0x00, - 0x55, - 0xF7, - 0x00, - 0xF3, - 0x56, - 0x57, - 0x53, - 0xF4, - 0x56, - 0x58, - 0xB8, - 0xF4, - 0x5D, - 0x56, - 0xF5, - 0xF7, - 0x22, - 0x57, - 0x55, - 0xF7, - 0x00, - 0x00, - 0x55, - 0x58, - 0xB8, - 0x55, - 0x55, - 0x00, - 0xF4, - 0x56, - 0x57, - 0x00, - 0xF5, - 0x57, - 0x58, - 0xB8, - 0xF3, - 0x00, - 0xF7, - 0x58, - 0xB8, - 0x55, - 0xF6, - 0x00, - 0xF6, - 0xF6, - 0x55, - 0x55, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x00, - 0x53, - 0x46, - 0x81, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x62, - 0x62, - 0x77, - 0x77, - 0x77, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x75, - 0x54, - 0x06, - 0x00, - 0x00, - 0x37, - 0x60, - 0x56, - 0xF5, - 0x44, - 0xF6, - 0x00, - 0x58, - 0x5B, - 0x00, - 0x57, - 0xB2, - 0x57, - 0xF5, - 0x60, - 0x0B, - 0x57, - 0x21, - 0xB8, - 0xF4, - 0xB2, - 0x21, - 0x5A, - 0x57, - 0xF3, - 0x58, - 0x0B, - 0x00, - 0xF5, - 0xB2, - 0x58, - 0x58, - 0x4E, - 0x59, - 0x00, - 0x58, - 0xB2, - 0x57, - 0xF5, - 0x22, - 0x5C, - 0x57, - 0x5F, - 0xB8, - 0x55, - 0x40, - 0x59, - 0x5B, - 0x40, - 0x56, - 0x53, - 0xB8, - 0x56, - 0xF9, - 0x4F, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x54, - 0x72, - 0x77, - 0x77, - 0x6E, - 0x6E, - 0x81, - 0x81, - 0x70, - 0x6E, - 0x77, - 0x77, - 0x78, - 0x70, - 0x6E, - 0x81, - 0x6E, - 0x70, - 0x78, - 0x77, - 0x78, - 0x89, - 0x54, - 0x05, - 0x00, - 0x00, - 0x32, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF6, - 0x00, - 0x58, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x54, - 0xB8, - 0x61, - 0x54, - 0x00, - 0x54, - 0xF4, - 0x54, - 0x5F, - 0x5C, - 0x56, - 0x00, - 0x54, - 0x58, - 0x5C, - 0x00, - 0xF6, - 0x4D, - 0x55, - 0x00, - 0x59, - 0x59, - 0x00, - 0x5B, - 0x57, - 0x53, - 0x56, - 0x22, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0x59, - 0x00, - 0x54, - 0x22, - 0x56, - 0x54, - 0x04, - 0x57, - 0x01, - 0x56, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x89, - 0x78, - 0x77, - 0x77, - 0x88, - 0x00, - 0x75, - 0x72, - 0x54, - 0x53, - 0x81, - 0x64, - 0x75, - 0x00, - 0x89, - 0x6E, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x72, - 0x53, - 0x05, - 0x00, - 0x00, - 0x34, - 0x21, - 0x56, - 0xF4, - 0x50, - 0xF5, - 0x53, - 0x58, - 0x5A, - 0x00, - 0x58, - 0x59, - 0x00, - 0x56, - 0xB2, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0xF7, - 0x4F, - 0xB8, - 0x5C, - 0x5A, - 0x00, - 0x57, - 0x5C, - 0x00, - 0x00, - 0x56, - 0x60, - 0x5A, - 0x4F, - 0x58, - 0x00, - 0x5A, - 0x57, - 0x53, - 0x57, - 0x50, - 0x59, - 0x5A, - 0x5A, - 0xF7, - 0x5C, - 0x57, - 0x00, - 0x00, - 0xF9, - 0x56, - 0x53, - 0xF3, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x72, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x62, - 0x88, - 0x00, - 0x75, - 0x6E, - 0x53, - 0x00, - 0x70, - 0x78, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x78, - 0x4C, - 0x05, - 0x00, - 0x00, - 0x31, - 0x21, - 0x56, - 0xF4, - 0x4E, - 0xF7, - 0x54, - 0x58, - 0x5B, - 0x53, - 0x58, - 0x58, - 0x00, - 0xB8, - 0x4E, - 0xF7, - 0x55, - 0x50, - 0x56, - 0x57, - 0x5A, - 0x00, - 0x55, - 0x50, - 0x00, - 0x57, - 0x44, - 0x55, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x16, - 0x59, - 0x00, - 0x5A, - 0x57, - 0x54, - 0xB8, - 0xB2, - 0x55, - 0x55, - 0x4E, - 0xB8, - 0x57, - 0x5D, - 0x00, - 0x54, - 0xF9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x53, - 0x6E, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x64, - 0x70, - 0x00, - 0x46, - 0x89, - 0x00, - 0x88, - 0x62, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x76, - 0x05, - 0x00, - 0x00, - 0x31, - 0x5F, - 0x56, - 0xF5, - 0xB2, - 0x5F, - 0x5A, - 0x44, - 0x56, - 0xF7, - 0x50, - 0x50, - 0x58, - 0xF3, - 0x5D, - 0x5A, - 0x58, - 0x4F, - 0xF5, - 0x55, - 0x50, - 0x57, - 0x0B, - 0xB2, - 0x56, - 0x57, - 0x60, - 0x61, - 0x57, - 0x57, - 0x5B, - 0x58, - 0x4E, - 0xB8, - 0xB8, - 0xB2, - 0x17, - 0x58, - 0xF4, - 0xF9, - 0x5A, - 0x59, - 0x5F, - 0xF4, - 0xF5, - 0x17, - 0x5C, - 0x5A, - 0x4D, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x53, - 0x75, - 0x63, - 0x62, - 0x76, - 0x00, - 0x00, - 0x54, - 0x6E, - 0x63, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x05, - 0x00, - 0x00, - 0x31, - 0x55, - 0xF5, - 0xF3, - 0x55, - 0xF5, - 0x56, - 0xB8, - 0x00, - 0xF6, - 0x16, - 0xF9, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x57, - 0xB8, - 0xF6, - 0x55, - 0xF6, - 0xF6, - 0xF6, - 0xF7, - 0xF5, - 0xB8, - 0x57, - 0xF7, - 0x00, - 0x55, - 0x60, - 0xF8, - 0xF7, - 0x54, - 0xF3, - 0x56, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x56, - 0xB8, - 0x22, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x54, - 0x75, - 0x62, - 0x62, - 0x6E, - 0x53, - 0x00, - 0x76, - 0x62, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x00, - 0x05, - 0x00, - 0x00, - 0x03, - 0x56, - 0xF7, - 0x54, - 0x00, - 0x06, - 0x00, - 0x01, - 0x57, - 0x01, - 0x58, - 0x17, - 0x00, - 0x01, - 0x59, - 0x01, - 0x57, - 0x0B, - 0x00, - 0x01, - 0x16, - 0x01, - 0x56, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x88, - 0x53, - 0x75, - 0x63, - 0x77, - 0x62, - 0x75, - 0x00, - 0x88, - 0x77, - 0x62, - 0x81, - 0x53, - 0x54, - 0x70, - 0x62, - 0x77, - 0x77, - 0x70, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xB8, - 0x07, - 0x00, - 0x01, - 0xF4, - 0x01, - 0xF4, - 0x17, - 0x00, - 0x01, - 0xF5, - 0x01, - 0xF4, - 0x0A, - 0x00, - 0x00, - 0x03, - 0x54, - 0x5A, - 0x56, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x04, - 0x77, - 0x00, - 0x13, - 0x88, - 0x53, - 0x75, - 0x62, - 0x78, - 0x75, - 0x81, - 0x46, - 0x54, - 0x72, - 0x64, - 0x81, - 0x53, - 0x53, - 0x70, - 0x62, - 0x77, - 0x77, - 0x72, - 0x00, - 0x0D, - 0x00, - 0x00, - 0x0D, - 0x54, - 0x54, - 0x54, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x54, - 0x00, - 0x1A, - 0x00, - 0x01, - 0xF3, - 0x01, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x19, - 0x54, - 0x78, - 0x77, - 0x77, - 0x77, - 0x88, - 0x54, - 0x75, - 0x65, - 0x72, - 0x00, - 0x70, - 0x72, - 0x00, - 0x4C, - 0x78, - 0x78, - 0x53, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x75, - 0x53, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x58, - 0xB8, - 0x00, - 0x55, - 0x5A, - 0x53, - 0x00, - 0x59, - 0xF7, - 0xF5, - 0x0B, - 0x5F, - 0x58, - 0x59, - 0x55, - 0x59, - 0xB8, - 0x00, - 0xF7, - 0x5B, - 0xF6, - 0x5A, - 0xF5, - 0xF7, - 0x59, - 0x00, - 0x54, - 0x5A, - 0x55, - 0x54, - 0xB8, - 0x58, - 0x00, - 0x00, - 0x00, - 0x19, - 0x00, - 0x70, - 0x77, - 0x77, - 0x77, - 0x88, - 0x00, - 0x88, - 0x72, - 0x46, - 0x54, - 0x72, - 0x67, - 0x89, - 0x54, - 0x76, - 0x72, - 0x00, - 0x00, - 0x70, - 0x62, - 0x77, - 0x77, - 0x88, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x20, - 0x60, - 0x56, - 0x00, - 0xF7, - 0x50, - 0xB3, - 0x00, - 0x4F, - 0xB8, - 0x57, - 0x60, - 0xF5, - 0x56, - 0x1A, - 0x55, - 0xF7, - 0x50, - 0x55, - 0x50, - 0xB8, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x4F, - 0x00, - 0x53, - 0x50, - 0xF7, - 0x53, - 0x56, - 0x60, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x75, - 0x77, - 0x77, - 0x62, - 0x88, - 0x04, - 0x00, - 0x00, - 0x05, - 0x89, - 0x78, - 0x63, - 0x72, - 0x54, - 0x00, - 0x04, - 0x00, - 0x00, - 0x05, - 0x70, - 0x62, - 0x77, - 0x81, - 0xB3, - 0x00, - 0x05, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0xB3, - 0x00, - 0x5E, - 0xB8, - 0xF7, - 0x50, - 0xB8, - 0xF5, - 0x61, - 0xF7, - 0x00, - 0x57, - 0x24, - 0x58, - 0x00, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x53, - 0x17, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x06, - 0x00, - 0x4C, - 0x81, - 0x77, - 0x62, - 0x70, - 0x04, - 0x76, - 0x00, - 0x0D, - 0x6E, - 0x62, - 0x77, - 0x77, - 0x75, - 0x76, - 0x76, - 0x76, - 0x75, - 0x78, - 0x77, - 0x77, - 0x75, - 0x00, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x56, - 0x00, - 0xF7, - 0x17, - 0x00, - 0x00, - 0x21, - 0x56, - 0x54, - 0xF7, - 0x5A, - 0x5D, - 0x40, - 0xF7, - 0x00, - 0xB8, - 0x41, - 0x56, - 0x53, - 0xF5, - 0x50, - 0xF6, - 0xB8, - 0x5E, - 0x00, - 0x00, - 0x22, - 0xF7, - 0x00, - 0x56, - 0x21, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x76, - 0x77, - 0x77, - 0x00, - 0x06, - 0x62, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x05, - 0x62, - 0x00, - 0x04, - 0x77, - 0x77, - 0x6E, - 0x46, - 0x06, - 0x00, - 0x00, - 0x20, - 0x21, - 0x60, - 0xF6, - 0x56, - 0x1A, - 0x56, - 0xF6, - 0x50, - 0xB8, - 0xB3, - 0x55, - 0xF4, - 0x55, - 0x40, - 0x55, - 0xF6, - 0x50, - 0x57, - 0x50, - 0xF6, - 0xF4, - 0xB2, - 0xF6, - 0xB8, - 0x25, - 0xB8, - 0xF6, - 0x44, - 0x5C, - 0xF6, - 0x58, - 0x21, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x72, - 0x10, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x07, - 0x00, - 0x00, - 0x20, - 0x59, - 0x58, - 0xF9, - 0x50, - 0x57, - 0x59, - 0x17, - 0x60, - 0xF5, - 0xF4, - 0x5D, - 0x60, - 0x22, - 0x5A, - 0x54, - 0x59, - 0x58, - 0x00, - 0x57, - 0x59, - 0xF4, - 0xF9, - 0xF5, - 0xF7, - 0x5B, - 0x5A, - 0x61, - 0x5D, - 0x57, - 0x5F, - 0xB2, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x05, - 0x00, - 0x00, - 0x00, - 0x54, - 0x70, - 0x00, - 0x0E, - 0x77, - 0x01, - 0x78, - 0x01, - 0x88, - 0x08, - 0x00, - 0x00, - 0x1F, - 0xF3, - 0x00, - 0xF3, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x53, - 0xF5, - 0x54, - 0xB3, - 0x00, - 0x54, - 0xF5, - 0x53, - 0x00, - 0xF4, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x05, - 0x00, - 0x01, - 0x72, - 0x01, - 0x78, - 0x0B, - 0x77, - 0x01, - 0x6E, - 0x01, - 0x88, - 0x1D, - 0x00, - 0x00, - 0x03, - 0xF6, - 0x50, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x06, - 0x00, - 0x00, - 0x03, - 0x88, - 0x70, - 0x78, - 0x00, - 0x07, - 0x77, - 0x00, - 0x03, - 0x81, - 0x75, - 0x46, - 0x00, - 0x1E, - 0x00, - 0x00, - 0x03, - 0xF3, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x08, - 0x00, - 0x00, - 0x09, - 0x89, - 0x75, - 0x70, - 0x6E, - 0x6E, - 0x70, - 0x72, - 0x88, - 0x46, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x1A, - 0x52, - 0x01, - 0xFF, - 0x14, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x01, - 0x93, - 0x01, - 0xA2, - 0x14, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x03, - 0x83, - 0x7F, - 0xA7, - 0x00, - 0x13, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x04, - 0x83, - 0x90, - 0x9D, - 0xAA, - 0x12, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x05, - 0x83, - 0x90, - 0x90, - 0x83, - 0xAA, - 0x00, - 0x11, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x06, - 0x83, - 0x90, - 0x90, - 0x90, - 0x83, - 0xD3, - 0x10, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0F, - 0x52, - 0x09, - 0xFF, - 0x01, - 0x52, - 0x01, - 0x83, - 0x04, - 0x90, - 0x01, - 0x92, - 0x01, - 0x51, - 0x0F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0E, - 0x52, - 0x01, - 0x51, - 0x0A, - 0xA2, - 0x01, - 0x9D, - 0x05, - 0x90, - 0x01, - 0x92, - 0x01, - 0x51, - 0x0E, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xD3, - 0x01, - 0x9D, - 0x11, - 0x90, - 0x01, - 0x93, - 0x01, - 0xFE, - 0x0D, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xA2, - 0x13, - 0x90, - 0x01, - 0x93, - 0x0D, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xA2, - 0x13, - 0x90, - 0x01, - 0xA0, - 0x01, - 0xA2, - 0x0C, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xA3, - 0x15, - 0x90, - 0x01, - 0xA2, - 0x0B, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xA2, - 0x01, - 0x9B, - 0x14, - 0x90, - 0x01, - 0x83, - 0x01, - 0x51, - 0x0A, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xA2, - 0x15, - 0x90, - 0x01, - 0x7F, - 0x01, - 0xD3, - 0x0A, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0C, - 0x52, - 0x01, - 0xFF, - 0x01, - 0xA2, - 0x14, - 0x90, - 0x01, - 0x9B, - 0x01, - 0x93, - 0x0B, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xA2, - 0x14, - 0x90, - 0x01, - 0x93, - 0x0C, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x01, - 0xA2, - 0x01, - 0x9B, - 0x12, - 0x90, - 0x01, - 0x92, - 0x01, - 0x51, - 0x0C, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0D, - 0x52, - 0x00, - 0x03, - 0xAA, - 0x9D, - 0x90, - 0x00, - 0x09, - 0x9B, - 0x07, - 0x90, - 0x01, - 0x92, - 0x01, - 0x51, - 0x0D, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x0E, - 0x52, - 0x01, - 0xD3, - 0x0A, - 0xA2, - 0x01, - 0x9D, - 0x05, - 0x90, - 0x01, - 0x83, - 0x01, - 0xAA, - 0x0E, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x01, - 0x83, - 0x04, - 0x90, - 0x01, - 0x83, - 0x01, - 0xAA, - 0x0F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x06, - 0x83, - 0x90, - 0x90, - 0x90, - 0x83, - 0xAA, - 0x10, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x05, - 0x83, - 0x90, - 0x90, - 0x9D, - 0xAA, - 0x00, - 0x11, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x04, - 0x83, - 0x90, - 0x7F, - 0xA7, - 0x12, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x00, - 0x03, - 0x83, - 0xA0, - 0xA2, - 0x00, - 0x13, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x19, - 0x52, - 0x01, - 0x93, - 0x01, - 0xA2, - 0x14, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x2F, - 0x52, - 0x01, - 0xF1, - 0x00, - 0x00, - 0x01, - 0xDD, - 0x2E, - 0x52, - 0x01, - 0xD5, - 0x00, - 0x01, - 0x00, - 0x00, - 0x57, - 0x00, - 0x00, - 0x00, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x4E, - 0x08, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0xC5, - 0x19, - 0xD2, - 0x51, - 0x00, - 0x4D, - 0xFD, - 0x00, - 0x05, - 0x51, - 0xD2, - 0x19, - 0xC5, - 0x03, - 0x00, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xD2, - 0x53, - 0xFD, - 0x01, - 0xD2, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x01, - 0x19, - 0x55, - 0xFD, - 0x01, - 0x19, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x55, - 0xFD, - 0x01, - 0xD2, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x16, - 0xFD, - 0x01, - 0x26, - 0x01, - 0xFD, - 0x2F, - 0x51, - 0x0E, - 0xFD, - 0x01, - 0x51, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x15, - 0xFD, - 0x01, - 0x51, - 0x01, - 0xA7, - 0x2E, - 0xA2, - 0x00, - 0x03, - 0xA3, - 0xA7, - 0xF1, - 0x00, - 0x0E, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x14, - 0xFD, - 0x00, - 0x03, - 0x26, - 0x93, - 0xA1, - 0x00, - 0x2E, - 0x9F, - 0x00, - 0x03, - 0xA0, - 0x9D, - 0xA2, - 0x00, - 0x0E, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x00, - 0x04, - 0x51, - 0xA3, - 0x9F, - 0x9F, - 0x2F, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA0, - 0xA7, - 0x00, - 0x0D, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x00, - 0x03, - 0xAA, - 0x92, - 0x9F, - 0x00, - 0x31, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA2, - 0x26, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x01, - 0xA7, - 0x01, - 0x9D, - 0x04, - 0xA0, - 0x2A, - 0xA1, - 0x04, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0x93, - 0xAA, - 0xFE, - 0x0B, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x00, - 0x06, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x9D, - 0x29, - 0xA3, - 0x00, - 0x08, - 0xA2, - 0xA2, - 0xA1, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x00, - 0x06, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x2A, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x13, - 0xFD, - 0x00, - 0x07, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0xFC, - 0x00, - 0x29, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0F, - 0xFD, - 0x00, - 0x0B, - 0x51, - 0xFD, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0x00, - 0x04, - 0xFD, - 0x00, - 0x05, - 0xFE, - 0xFE, - 0xF1, - 0xDC, - 0xF1, - 0x00, - 0x19, - 0xDC, - 0x01, - 0xF1, - 0x01, - 0xF1, - 0x05, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x51, - 0x51, - 0xA3, - 0x93, - 0x93, - 0xAA, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x04, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0xA2, - 0x1D, - 0x93, - 0x01, - 0xA2, - 0x05, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x26, - 0x92, - 0x9F, - 0x9F, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x04, - 0xFD, - 0x01, - 0x51, - 0x01, - 0x92, - 0x1D, - 0x9F, - 0x01, - 0xA3, - 0x05, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0xA3, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x05, - 0xFD, - 0x00, - 0x03, - 0x43, - 0x83, - 0x9F, - 0x00, - 0x1A, - 0xA0, - 0x01, - 0x93, - 0x01, - 0x51, - 0x05, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x93, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFE, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0x00, - 0x05, - 0xFD, - 0x00, - 0x03, - 0xFE, - 0xA4, - 0xA1, - 0x00, - 0x19, - 0xA0, - 0x01, - 0x9D, - 0x01, - 0x43, - 0x06, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x07, - 0xFD, - 0x01, - 0x93, - 0x19, - 0xA0, - 0x01, - 0xA7, - 0x07, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x07, - 0xFD, - 0x01, - 0x26, - 0x01, - 0x83, - 0x16, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x93, - 0x51, - 0x00, - 0x07, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x08, - 0xFD, - 0x01, - 0xA7, - 0x15, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x83, - 0xFC, - 0x00, - 0x08, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFE, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0x00, - 0x09, - 0xFD, - 0x01, - 0xA2, - 0x01, - 0x9F, - 0x06, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x9F, - 0x0A, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0xA1, - 0xA7, - 0x51, - 0x08, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x09, - 0xFD, - 0x00, - 0x03, - 0x43, - 0x92, - 0x9F, - 0x00, - 0x04, - 0xA0, - 0x00, - 0x03, - 0x9D, - 0xA2, - 0xA1, - 0x00, - 0x0A, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x93, - 0x0A, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x0A, - 0xFD, - 0x01, - 0xA7, - 0x05, - 0xA0, - 0x00, - 0x04, - 0xA3, - 0xFD, - 0xA3, - 0x9F, - 0x08, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0x26, - 0x00, - 0x0A, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x0B, - 0xFD, - 0x00, - 0x0A, - 0xA2, - 0x9F, - 0xA0, - 0x9F, - 0x93, - 0x51, - 0xFD, - 0x26, - 0x93, - 0x9F, - 0x07, - 0xA0, - 0x00, - 0x03, - 0xA1, - 0xA7, - 0xFE, - 0x00, - 0x0A, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFE, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0x00, - 0x0B, - 0xFD, - 0x00, - 0x0B, - 0x43, - 0x92, - 0x9F, - 0x9D, - 0xAA, - 0xFD, - 0xFD, - 0xFD, - 0xAA, - 0xA1, - 0x9F, - 0x00, - 0x05, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA2, - 0x51, - 0x00, - 0x0B, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x0C, - 0xFD, - 0x00, - 0x03, - 0xA7, - 0x9D, - 0xA4, - 0x00, - 0x05, - 0xFD, - 0x01, - 0xA3, - 0x01, - 0x9F, - 0x04, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0x92, - 0x51, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x08, - 0xFD, - 0x01, - 0x51, - 0x04, - 0xFD, - 0x01, - 0x43, - 0x01, - 0x51, - 0x05, - 0xFD, - 0x00, - 0x09, - 0x51, - 0x93, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0x9D, - 0xA7, - 0xFE, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x06, - 0xFD, - 0x00, - 0x05, - 0x51, - 0xAA, - 0xA7, - 0xAA, - 0x51, - 0x00, - 0x0A, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0x9F, - 0xA0, - 0xA0, - 0xA2, - 0xFE, - 0x00, - 0x0D, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFE, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0x00, - 0x05, - 0xFD, - 0x00, - 0x08, - 0x51, - 0xA3, - 0x92, - 0x9D, - 0x92, - 0xA3, - 0x51, - 0x51, - 0x08, - 0xFD, - 0x00, - 0x06, - 0xFE, - 0xA3, - 0xA0, - 0x9F, - 0x92, - 0x51, - 0x0E, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x05, - 0xFD, - 0x00, - 0x07, - 0xA2, - 0x9F, - 0x9F, - 0xA0, - 0x9F, - 0x9F, - 0xA2, - 0x00, - 0x0A, - 0xFD, - 0x00, - 0x04, - 0x51, - 0x93, - 0x9D, - 0xAA, - 0x0F, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x04, - 0xFD, - 0x00, - 0x09, - 0xA7, - 0x9D, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0x9F, - 0x9D, - 0xA7, - 0x00, - 0x0A, - 0xFD, - 0x01, - 0xAA, - 0x01, - 0xA4, - 0x10, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x04, - 0xFD, - 0x01, - 0xA2, - 0x01, - 0xA1, - 0x05, - 0xA0, - 0x00, - 0x03, - 0xA1, - 0xA2, - 0x51, - 0x00, - 0x1B, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFE, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0x00, - 0x04, - 0xFD, - 0x01, - 0xA3, - 0x01, - 0x9D, - 0x05, - 0xA0, - 0x01, - 0xA1, - 0x01, - 0xA3, - 0x1C, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x04, - 0xFD, - 0x00, - 0x09, - 0xAA, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0xAA, - 0x00, - 0x1C, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x05, - 0xFD, - 0x00, - 0x07, - 0xA7, - 0x9D, - 0xA0, - 0x9F, - 0xA0, - 0x9D, - 0xA7, - 0x00, - 0x1D, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x43, - 0x00, - 0x06, - 0xFD, - 0x00, - 0x05, - 0xAA, - 0xA2, - 0x93, - 0xA2, - 0xAA, - 0x00, - 0x1E, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFE, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0x00, - 0x29, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x10, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x92, - 0x26, - 0x29, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x11, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xFD, - 0xFE, - 0x00, - 0x28, - 0xFD, - 0x00, - 0x07, - 0xAA, - 0x9D, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0F, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xA7, - 0x9D, - 0xA0, - 0xA0, - 0xA0, - 0x9D, - 0xA4, - 0x00, - 0x29, - 0xA3, - 0x00, - 0x07, - 0xA2, - 0xA1, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0A, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFE, - 0xFD, - 0xA7, - 0x9D, - 0x04, - 0xA0, - 0x01, - 0xA1, - 0x29, - 0x9D, - 0x00, - 0x07, - 0xA1, - 0xA0, - 0xA0, - 0xA0, - 0x9F, - 0x93, - 0xAA, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x0C, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0xA7, - 0xFD, - 0xFD, - 0xAA, - 0x92, - 0x9F, - 0x31, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA2, - 0x51, - 0x00, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x0C, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0x51, - 0xA2, - 0x9F, - 0x30, - 0xA0, - 0x00, - 0x04, - 0x9F, - 0xA0, - 0xA4, - 0x51, - 0x0C, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x0E, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0xFD, - 0xFD, - 0xFD, - 0x43, - 0x92, - 0xA1, - 0xA0, - 0x9F, - 0x2B, - 0xA0, - 0x00, - 0x05, - 0x9F, - 0xA0, - 0x9D, - 0xA2, - 0x51, - 0x00, - 0x0D, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x06, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA7, - 0x04, - 0xFD, - 0x01, - 0x51, - 0x01, - 0xA3, - 0x2E, - 0x93, - 0x01, - 0xA2, - 0x01, - 0xA4, - 0x0F, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x07, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xAA, - 0x00, - 0x45, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0A, - 0xFD, - 0x00, - 0x07, - 0x51, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0x9F, - 0xA3, - 0x00, - 0x45, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x08, - 0x92, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0x92, - 0xAA, - 0xFE, - 0x43, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x01, - 0x92, - 0x05, - 0xA0, - 0x01, - 0x92, - 0x24, - 0x93, - 0x00, - 0x03, - 0xA2, - 0x43, - 0xFE, - 0x00, - 0x1D, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x01, - 0x92, - 0x01, - 0x9F, - 0x04, - 0xA0, - 0x25, - 0x9F, - 0x01, - 0x92, - 0x01, - 0x43, - 0x1E, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x01, - 0x93, - 0x01, - 0x9F, - 0x28, - 0xA0, - 0x01, - 0x9F, - 0x01, - 0x93, - 0x1F, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x03, - 0xA7, - 0xA0, - 0x9F, - 0x00, - 0x26, - 0xA0, - 0x00, - 0x03, - 0x9F, - 0xA0, - 0xA3, - 0x00, - 0x1F, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0B, - 0xFD, - 0x00, - 0x04, - 0x51, - 0xA2, - 0x9D, - 0x9D, - 0x25, - 0xA1, - 0x00, - 0x03, - 0x9D, - 0xA2, - 0x51, - 0x00, - 0x1F, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x0C, - 0xFD, - 0x00, - 0x03, - 0x51, - 0xA7, - 0xA2, - 0x00, - 0x24, - 0x93, - 0x00, - 0x03, - 0xA2, - 0xA7, - 0x51, - 0x00, - 0x20, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x56, - 0xFD, - 0x00, - 0x00, - 0x01, - 0xD1, - 0x55, - 0xFD, - 0x01, - 0xFC, - 0x00, - 0x00, - 0x01, - 0xD2, - 0x55, - 0xFD, - 0x01, - 0xD2, - 0x00, - 0x00, - 0x01, - 0x19, - 0x55, - 0xFD, - 0x01, - 0x19, - 0x00, - 0x00, - 0x01, - 0xC5, - 0x01, - 0xD2, - 0x53, - 0xFD, - 0x01, - 0xD2, - 0x01, - 0xC5, - 0x00, - 0x00, - 0x00, - 0x05, - 0x03, - 0xC5, - 0x19, - 0xD2, - 0x51, - 0x00, - 0x4D, - 0xFD, - 0x00, - 0x05, - 0xFC, - 0xD2, - 0x19, - 0xC5, - 0x03, - 0x00, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x01, - 0x01, - 0xAE, - 0xB6, - 0x00, - 0x00, - 0x01, - 0xF3, - 0x01, - 0xFA, - 0x05, - 0xF3, - 0x00, - 0x04, - 0xF2, - 0xF3, - 0xF3, - 0xF3, - 0x09, - 0xF2, - 0x00, - 0x05, - 0xF9, - 0xF2, - 0xF2, - 0xF4, - 0xFC, - 0x00, - 0x10, - 0xFB, - 0x00, - 0x05, - 0xFC, - 0xFC, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0x04, - 0xFC, - 0x01, - 0xFA, - 0x04, - 0xFC, - 0x01, - 0xF3, - 0x01, - 0xFC, - 0x0B, - 0xF4, - 0x00, - 0x06, - 0xF3, - 0xF3, - 0xF3, - 0xF9, - 0xF8, - 0xF8, - 0x0C, - 0xF7, - 0x01, - 0xF0, - 0x06, - 0xF7, - 0x00, - 0x04, - 0xF0, - 0xF0, - 0xF0, - 0xF7, - 0x0D, - 0xF0, - 0x0D, - 0xEF, - 0x07, - 0xEE, - 0x00, - 0x06, - 0xEF, - 0xF5, - 0xEE, - 0xEE, - 0xEE, - 0xE4, - 0x07, - 0xEE, - 0x01, - 0xE4, - 0x01, - 0xE4, - 0x08, - 0xEE, - 0x00, - 0x05, - 0xE4, - 0xE4, - 0xE1, - 0xE1, - 0xED, - 0x00, - 0x05, - 0xE2, - 0x04, - 0xE5, - 0x00, - 0x04, - 0xE2, - 0xE5, - 0xE5, - 0xE2, - 0x30, - 0xE5, - 0x00, - 0x07, - 0xA2, - 0xA2, - 0xE5, - 0xC1, - 0xC1, - 0xC1, - 0xE5, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x06, - 0xC1, - 0xC1, - 0xA2, - 0xBF, - 0xDA, - 0xDA, - 0x04, - 0xBF, - 0x06, - 0xA2, - 0x00, - 0x04, - 0xBF, - 0xBF, - 0xBF, - 0xDA, - 0x16, - 0xA2, - 0x01, - 0xA3, - 0x01, - 0xA3, - 0x0A, - 0x82, - 0x01, - 0xA3, - 0x01, - 0xA3, - 0x0D, - 0x82, - 0x01, - 0x80, - 0x06, - 0x82, - 0x00, - 0x04, - 0x80, - 0x80, - 0x82, - 0x80, - 0x04, - 0x82, - 0x00, - 0x06, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x00, - 0x00, - 0x06, - 0xF3, - 0x01, - 0xF2, - 0x01, - 0xF3, - 0x0A, - 0xF2, - 0x00, - 0x06, - 0xF9, - 0xF9, - 0xF9, - 0xF2, - 0xF3, - 0xFA, - 0x0A, - 0xFB, - 0x09, - 0xFC, - 0x00, - 0x07, - 0xFA, - 0xFA, - 0xFA, - 0xFB, - 0xFC, - 0xFC, - 0xFA, - 0x00, - 0x04, - 0xF4, - 0x01, - 0xFC, - 0x08, - 0xF4, - 0x06, - 0xF3, - 0x00, - 0x0A, - 0xF4, - 0xF3, - 0xF2, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0x07, - 0xF7, - 0x11, - 0xF0, - 0x00, - 0x05, - 0xEF, - 0xEF, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x0C, - 0xEF, - 0x11, - 0xEE, - 0x11, - 0xE4, - 0x00, - 0x03, - 0xE1, - 0xED, - 0xED, - 0x00, - 0x10, - 0xE2, - 0x06, - 0xE5, - 0x0A, - 0xE2, - 0x01, - 0xE5, - 0x01, - 0xE2, - 0x16, - 0xE5, - 0x00, - 0x03, - 0xDA, - 0xE5, - 0xDA, - 0x00, - 0x0A, - 0xE5, - 0x00, - 0x07, - 0xDA, - 0xDA, - 0xBF, - 0xE5, - 0xBF, - 0xBF, - 0xBF, - 0x00, - 0x04, - 0xDA, - 0x04, - 0xBF, - 0x04, - 0xA2, - 0x00, - 0x0A, - 0xA1, - 0xBF, - 0xDA, - 0xA1, - 0xDA, - 0xA1, - 0xA2, - 0xA3, - 0xA2, - 0xA3, - 0x0F, - 0xA2, - 0x04, - 0xA3, - 0x19, - 0x82, - 0x00, - 0x0E, - 0x80, - 0x80, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x82, - 0x44, - 0x82, - 0x06, - 0x80, - 0x01, - 0x82, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xF3, - 0xF3, - 0xFA, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF2, - 0xF2, - 0xF3, - 0x05, - 0xF2, - 0x06, - 0xF9, - 0x01, - 0xF2, - 0x01, - 0xF4, - 0x0B, - 0xFB, - 0x09, - 0xFC, - 0x07, - 0xFA, - 0x05, - 0xF4, - 0x01, - 0xF3, - 0x01, - 0xF3, - 0x08, - 0xF4, - 0x06, - 0xF3, - 0x00, - 0x08, - 0xF2, - 0xF9, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0xF0, - 0x07, - 0xF7, - 0x11, - 0xF0, - 0x00, - 0x05, - 0xEF, - 0xEF, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x0C, - 0xEF, - 0x08, - 0xEE, - 0x00, - 0x04, - 0xF6, - 0xEE, - 0xEE, - 0xF6, - 0x05, - 0xEE, - 0x10, - 0xE4, - 0x00, - 0x04, - 0xEB, - 0xED, - 0xED, - 0xED, - 0x0C, - 0xE2, - 0x00, - 0x06, - 0xE5, - 0xE2, - 0xE2, - 0xE5, - 0xE2, - 0xE2, - 0x18, - 0xE5, - 0x01, - 0xE2, - 0x01, - 0xE2, - 0x10, - 0xE5, - 0x05, - 0xDA, - 0x00, - 0x03, - 0xE5, - 0xE5, - 0xE2, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x04, - 0xBF, - 0xBF, - 0xE5, - 0xBF, - 0x04, - 0xDA, - 0x00, - 0x03, - 0xBF, - 0xBF, - 0xBF, - 0x00, - 0x05, - 0xA2, - 0x00, - 0x06, - 0xA1, - 0xDA, - 0xDA, - 0xA1, - 0xDA, - 0xA1, - 0x04, - 0xA3, - 0x0F, - 0xA2, - 0x04, - 0xA3, - 0x04, - 0x82, - 0x06, - 0xA3, - 0x01, - 0x80, - 0x01, - 0x80, - 0x08, - 0x82, - 0x00, - 0x03, - 0xC0, - 0xC0, - 0xC0, - 0x00, - 0x05, - 0x82, - 0x00, - 0x0A, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x82, - 0x82, - 0x82, - 0x05, - 0x80, - 0x00, - 0x03, - 0x82, - 0x80, - 0x82, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xF3, - 0xF3, - 0xF3, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0x00, - 0x04, - 0xF2, - 0x00, - 0x04, - 0xF9, - 0xF2, - 0xF2, - 0xF2, - 0x06, - 0xF9, - 0x01, - 0xF3, - 0x01, - 0xFA, - 0x09, - 0xFB, - 0x0B, - 0xFC, - 0x06, - 0xFA, - 0x00, - 0x03, - 0xF4, - 0xF4, - 0xF4, - 0x00, - 0x05, - 0xF3, - 0x00, - 0x03, - 0xF4, - 0xF4, - 0xF4, - 0x00, - 0x08, - 0xF3, - 0x00, - 0x05, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF9, - 0x00, - 0x0A, - 0xF7, - 0x00, - 0x04, - 0xF0, - 0xF7, - 0xF0, - 0xF7, - 0x08, - 0xF0, - 0x00, - 0x08, - 0xEF, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF5, - 0xF0, - 0xF5, - 0x10, - 0xEF, - 0x0B, - 0xEE, - 0x00, - 0x04, - 0xF6, - 0xF6, - 0xEE, - 0xEE, - 0x11, - 0xE4, - 0x00, - 0x0E, - 0xEB, - 0xEB, - 0xE1, - 0xED, - 0xED, - 0xED, - 0xE2, - 0xE2, - 0xE2, - 0xEC, - 0xE2, - 0xE2, - 0xE2, - 0xEC, - 0x04, - 0xE2, - 0x01, - 0xEC, - 0x04, - 0xE2, - 0x05, - 0xE5, - 0x0C, - 0xE2, - 0x00, - 0x03, - 0xDA, - 0xE5, - 0xE2, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x0D, - 0xE2, - 0xE2, - 0xE5, - 0xE2, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xE5, - 0x00, - 0x06, - 0xBF, - 0x01, - 0xE5, - 0x06, - 0xDA, - 0x00, - 0x0C, - 0xE5, - 0xDA, - 0xE5, - 0xDA, - 0xE5, - 0xBF, - 0xE5, - 0xBF, - 0xBF, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0xBF, - 0x00, - 0x0B, - 0xA2, - 0xA1, - 0xC0, - 0xA2, - 0xA3, - 0xA1, - 0xA1, - 0xDA, - 0xA1, - 0xDA, - 0xA1, - 0x00, - 0x05, - 0xA3, - 0x00, - 0x16, - 0xA2, - 0xA1, - 0xA2, - 0xA1, - 0xA2, - 0xA1, - 0xA2, - 0xA1, - 0xA2, - 0xA1, - 0xA2, - 0xA1, - 0xA1, - 0xA1, - 0xC0, - 0xA3, - 0xC0, - 0xA3, - 0xC0, - 0x82, - 0x80, - 0xC0, - 0x0C, - 0x82, - 0x00, - 0x04, - 0x80, - 0x82, - 0x82, - 0xC0, - 0x04, - 0x82, - 0x04, - 0x80, - 0x01, - 0x82, - 0x07, - 0x80, - 0x01, - 0x82, - 0x09, - 0x80, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0xF2, - 0x04, - 0xF3, - 0x01, - 0xF2, - 0x01, - 0xF3, - 0x07, - 0xF2, - 0x06, - 0xF9, - 0x00, - 0x08, - 0xF3, - 0xFC, - 0xFB, - 0xFB, - 0xFC, - 0xFC, - 0xFB, - 0xFB, - 0x0C, - 0xFC, - 0x04, - 0xFA, - 0x06, - 0xF4, - 0x01, - 0xF3, - 0x08, - 0xF4, - 0x0B, - 0xF3, - 0x01, - 0xF2, - 0x01, - 0xF9, - 0x0B, - 0xF7, - 0x0D, - 0xF0, - 0x06, - 0xF5, - 0x08, - 0xEF, - 0x0C, - 0xEE, - 0x01, - 0xF6, - 0x04, - 0xEE, - 0x00, - 0x06, - 0xEA, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xEE, - 0x0F, - 0xE4, - 0x00, - 0x03, - 0xE1, - 0xE4, - 0xE1, - 0x00, - 0x05, - 0xED, - 0x04, - 0xE2, - 0x01, - 0xEC, - 0x04, - 0xE2, - 0x01, - 0xEC, - 0x0A, - 0xE2, - 0x07, - 0xE5, - 0x07, - 0xE2, - 0x00, - 0x03, - 0xDA, - 0xDA, - 0xDA, - 0x00, - 0x07, - 0xE2, - 0x0A, - 0xDA, - 0x06, - 0xBF, - 0x09, - 0xE5, - 0x00, - 0x03, - 0xDA, - 0xE5, - 0xE5, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x12, - 0xDA, - 0xDA, - 0xDA, - 0xBF, - 0xBF, - 0xBF, - 0xDA, - 0xA2, - 0xA1, - 0xA2, - 0xA3, - 0xA3, - 0xA1, - 0xDA, - 0xA1, - 0xDA, - 0xA1, - 0xA1, - 0x18, - 0xA3, - 0x01, - 0x82, - 0x0A, - 0x80, - 0x07, - 0x82, - 0x05, - 0xC0, - 0x00, - 0x03, - 0x82, - 0x80, - 0x82, - 0x00, - 0x13, - 0x80, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xF2, - 0xF2, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF2, - 0xF2, - 0x04, - 0xF9, - 0x01, - 0xF2, - 0x05, - 0xF9, - 0x00, - 0x05, - 0xF2, - 0xF3, - 0xFC, - 0xFB, - 0xFB, - 0x00, - 0x0D, - 0xFC, - 0x07, - 0xFA, - 0x06, - 0xF4, - 0x07, - 0xF3, - 0x01, - 0xF4, - 0x01, - 0xF4, - 0x0B, - 0xF3, - 0x00, - 0x03, - 0xF2, - 0xF9, - 0xF8, - 0x00, - 0x06, - 0xF7, - 0x00, - 0x04, - 0xF0, - 0xF7, - 0xF7, - 0xF7, - 0x0C, - 0xF0, - 0x06, - 0xEF, - 0x01, - 0xF5, - 0x06, - 0xEF, - 0x0D, - 0xEE, - 0x00, - 0x07, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0x00, - 0x05, - 0xEE, - 0x0E, - 0xE4, - 0x00, - 0x0A, - 0xEB, - 0xE1, - 0xE1, - 0xED, - 0xED, - 0xED, - 0xE9, - 0xE2, - 0xE2, - 0xE9, - 0x04, - 0xE2, - 0x00, - 0x09, - 0xEC, - 0xE2, - 0xEC, - 0xE2, - 0xE2, - 0xEC, - 0xE2, - 0xE2, - 0xEC, - 0x00, - 0x14, - 0xE2, - 0x01, - 0xDA, - 0x01, - 0xE2, - 0x05, - 0xDA, - 0x00, - 0x04, - 0xE2, - 0xE2, - 0xE2, - 0xDA, - 0x07, - 0xE2, - 0x0F, - 0xDA, - 0x05, - 0xE5, - 0x0B, - 0xBF, - 0x00, - 0x03, - 0xA2, - 0xA1, - 0xA3, - 0x00, - 0x04, - 0xA1, - 0x01, - 0xDA, - 0x04, - 0xA1, - 0x01, - 0xC0, - 0x15, - 0xA3, - 0x01, - 0x80, - 0x0B, - 0x82, - 0x00, - 0x07, - 0x80, - 0x80, - 0x80, - 0x82, - 0x82, - 0x80, - 0x82, - 0x00, - 0x1B, - 0x80, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xF9, - 0xF2, - 0xF2, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF2, - 0xF2, - 0x00, - 0x09, - 0xF9, - 0x00, - 0x05, - 0xF2, - 0xF3, - 0xFA, - 0xFB, - 0xFB, - 0x00, - 0x0C, - 0xFC, - 0x07, - 0xFA, - 0x07, - 0xF4, - 0x14, - 0xF3, - 0x00, - 0x03, - 0xF2, - 0xF9, - 0xF8, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x05, - 0xF0, - 0xF0, - 0xF0, - 0xF7, - 0xF7, - 0x00, - 0x0C, - 0xF0, - 0x0D, - 0xEF, - 0x0E, - 0xEE, - 0x00, - 0x0A, - 0xE4, - 0xF6, - 0xEA, - 0xF6, - 0xE4, - 0xF6, - 0xEA, - 0xEE, - 0xEE, - 0xEE, - 0x11, - 0xE4, - 0x01, - 0xE1, - 0x04, - 0xED, - 0x00, - 0x07, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xEC, - 0x00, - 0x05, - 0xE2, - 0x01, - 0xEC, - 0x0F, - 0xE2, - 0x00, - 0x18, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xDA, - 0xBE, - 0xEC, - 0xBE, - 0xEC, - 0xE2, - 0xE2, - 0xE5, - 0xEC, - 0xBE, - 0xEC, - 0xBE, - 0xEC, - 0x05, - 0xBE, - 0x00, - 0x04, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0x10, - 0xDA, - 0x0A, - 0xBF, - 0x00, - 0x0C, - 0xDA, - 0xDA, - 0xDA, - 0xA2, - 0xDA, - 0xDA, - 0xA1, - 0xDA, - 0xDA, - 0xA1, - 0xC0, - 0xA1, - 0x13, - 0xA3, - 0x01, - 0x7E, - 0x01, - 0x7E, - 0x0C, - 0x80, - 0x04, - 0xC0, - 0x00, - 0x03, - 0x80, - 0x82, - 0x82, - 0x00, - 0x18, - 0x80, - 0x00, - 0x03, - 0x7F, - 0x80, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF9, - 0x05, - 0xF2, - 0x0B, - 0xF9, - 0x00, - 0x05, - 0xF2, - 0xF4, - 0xFA, - 0xFB, - 0xFB, - 0x00, - 0x0C, - 0xFC, - 0x07, - 0xFA, - 0x07, - 0xF4, - 0x14, - 0xF3, - 0x00, - 0x0F, - 0xF2, - 0xF9, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF0, - 0xF7, - 0xF0, - 0xF0, - 0xF0, - 0xEF, - 0x00, - 0x08, - 0xF0, - 0x01, - 0xEF, - 0x01, - 0xF0, - 0x08, - 0xEF, - 0x10, - 0xEE, - 0x00, - 0x0C, - 0xF6, - 0xEE, - 0xEE, - 0xE4, - 0xE4, - 0xEE, - 0xE4, - 0xE4, - 0xE4, - 0xEE, - 0xEE, - 0xEE, - 0x0F, - 0xE4, - 0x00, - 0x1E, - 0xE1, - 0xE1, - 0xED, - 0xED, - 0xED, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xEC, - 0xE2, - 0xE2, - 0xE2, - 0xEC, - 0xE2, - 0xEC, - 0xE2, - 0xE2, - 0xEC, - 0xE2, - 0xEC, - 0xE2, - 0xEC, - 0xDF, - 0xEC, - 0xE2, - 0xDF, - 0x04, - 0xE2, - 0x00, - 0x1A, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xBE, - 0xDA, - 0xBE, - 0xBE, - 0xE2, - 0xE5, - 0xEC, - 0xDA, - 0xBE, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0x18, - 0xDA, - 0x01, - 0xA1, - 0x09, - 0xBF, - 0x01, - 0xDA, - 0x01, - 0xA2, - 0x04, - 0xDA, - 0x00, - 0x09, - 0x7E, - 0xA1, - 0xA1, - 0xA1, - 0xA3, - 0xA3, - 0xA3, - 0xC0, - 0xA1, - 0x00, - 0x10, - 0xA3, - 0x01, - 0x7E, - 0x04, - 0x80, - 0x06, - 0xC0, - 0x22, - 0x80, - 0x00, - 0x03, - 0x7F, - 0x7F, - 0x80, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF9, - 0x00, - 0x05, - 0xF2, - 0xF2, - 0xF2, - 0xF9, - 0xF2, - 0x00, - 0x0B, - 0xF9, - 0x00, - 0x04, - 0xF3, - 0xFC, - 0xFB, - 0xFB, - 0x0B, - 0xFC, - 0x00, - 0x03, - 0xFA, - 0xFA, - 0xFA, - 0x00, - 0x0C, - 0xF4, - 0x14, - 0xF3, - 0x00, - 0x0A, - 0xF2, - 0xF2, - 0xF9, - 0xF7, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF7, - 0xF7, - 0x06, - 0xF0, - 0x00, - 0x07, - 0xEF, - 0xEF, - 0xF0, - 0xEF, - 0xF0, - 0xEF, - 0xF0, - 0x00, - 0x09, - 0xEF, - 0x0E, - 0xEE, - 0x00, - 0x07, - 0xEA, - 0xF6, - 0xE4, - 0xE4, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x03, - 0xEA, - 0xEA, - 0xEE, - 0x00, - 0x0B, - 0xE4, - 0x00, - 0x03, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x04, - 0xED, - 0x00, - 0x06, - 0xE9, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0x0A, - 0xE2, - 0x00, - 0x0A, - 0xEC, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xDF, - 0xEC, - 0x04, - 0xE2, - 0x00, - 0x09, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0x00, - 0x09, - 0xE2, - 0x00, - 0x06, - 0xEC, - 0xE2, - 0xBE, - 0xEC, - 0xBE, - 0xEC, - 0x06, - 0xBE, - 0x00, - 0x06, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0x0D, - 0xDA, - 0x01, - 0xA1, - 0x06, - 0xDA, - 0x05, - 0xBF, - 0x00, - 0x0A, - 0xDA, - 0xDA, - 0xA1, - 0xDA, - 0xA1, - 0xDA, - 0xDA, - 0xA1, - 0xA1, - 0xA1, - 0x05, - 0xA3, - 0x05, - 0x80, - 0x00, - 0x10, - 0xA3, - 0x7E, - 0xA1, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0xA3, - 0x7E, - 0x7E, - 0xA1, - 0x80, - 0x7E, - 0x80, - 0xC0, - 0xC0, - 0x28, - 0x80, - 0x00, - 0x03, - 0x7F, - 0x80, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF8, - 0x05, - 0xF9, - 0x00, - 0x05, - 0xF2, - 0xF2, - 0xF2, - 0xF9, - 0xF2, - 0x00, - 0x06, - 0xF9, - 0x00, - 0x08, - 0xF8, - 0xF9, - 0xF9, - 0xF2, - 0xF4, - 0xFB, - 0xFB, - 0xFB, - 0x09, - 0xFC, - 0x04, - 0xFA, - 0x0D, - 0xF4, - 0x10, - 0xF3, - 0x00, - 0x1A, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF9, - 0xF8, - 0xF0, - 0xF0, - 0xF0, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0xF0, - 0xEF, - 0xF0, - 0xF0, - 0xEF, - 0xF0, - 0xEF, - 0xF0, - 0xEF, - 0xEF, - 0xF0, - 0x08, - 0xEF, - 0x10, - 0xEE, - 0x00, - 0x07, - 0xF6, - 0xEA, - 0xF6, - 0xE4, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x11, - 0xE4, - 0x00, - 0x04, - 0xEB, - 0xEB, - 0xE1, - 0xE1, - 0x04, - 0xED, - 0x00, - 0x38, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xEC, - 0xE2, - 0xDF, - 0xE2, - 0xEC, - 0xEC, - 0xEC, - 0xE2, - 0xBE, - 0xE2, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xE2, - 0xBE, - 0xEC, - 0xBE, - 0xEC, - 0xBE, - 0xEC, - 0xBE, - 0xEC, - 0xBE, - 0xE2, - 0xE3, - 0xBE, - 0xE3, - 0xEC, - 0xBE, - 0xEC, - 0x0E, - 0xBE, - 0x00, - 0x0D, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xDA, - 0xA1, - 0xA1, - 0x7E, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x05, - 0xBF, - 0xBF, - 0xBF, - 0xDA, - 0xA2, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x09, - 0x7E, - 0xDA, - 0xA1, - 0xA1, - 0xA1, - 0x7E, - 0x7E, - 0x7E, - 0xA1, - 0x00, - 0x08, - 0x7E, - 0x00, - 0x0D, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x7E, - 0x80, - 0x80, - 0x00, - 0x06, - 0x7F, - 0x23, - 0x80, - 0x00, - 0x03, - 0x7F, - 0x7F, - 0x80, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF9, - 0xF8, - 0xF9, - 0xF8, - 0x0E, - 0xF9, - 0x00, - 0x07, - 0xF8, - 0xF9, - 0xF2, - 0xF3, - 0xFB, - 0xFB, - 0xFB, - 0x00, - 0x09, - 0xFC, - 0x04, - 0xFA, - 0x0D, - 0xF4, - 0x0C, - 0xF3, - 0x00, - 0x05, - 0xF2, - 0xF3, - 0xF3, - 0xF3, - 0xF2, - 0x00, - 0x04, - 0xF3, - 0x00, - 0x05, - 0xF2, - 0xF9, - 0xF8, - 0xF0, - 0xF0, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x05, - 0xF0, - 0xEF, - 0xEF, - 0xF0, - 0xF0, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x03, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x08, - 0xEF, - 0x00, - 0x04, - 0xEE, - 0xEE, - 0xEE, - 0xEF, - 0x13, - 0xEE, - 0x07, - 0xE4, - 0x00, - 0x0C, - 0xEB, - 0xEB, - 0xEB, - 0xE4, - 0xE4, - 0xE4, - 0xEA, - 0xEA, - 0xEB, - 0xEB, - 0xEB, - 0xE1, - 0x04, - 0xED, - 0x05, - 0xE2, - 0x00, - 0x0A, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xEC, - 0x04, - 0xE2, - 0x00, - 0x0E, - 0xDF, - 0xE2, - 0xEC, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xEC, - 0xEC, - 0xDF, - 0xE2, - 0xEC, - 0xE2, - 0xBE, - 0x12, - 0xE2, - 0x00, - 0x06, - 0xE3, - 0xBE, - 0xE3, - 0xBE, - 0xBE, - 0xEC, - 0x10, - 0xBE, - 0x00, - 0x0B, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xA1, - 0xA1, - 0x00, - 0x0C, - 0xDA, - 0x00, - 0x07, - 0x7E, - 0xBE, - 0x7E, - 0xDA, - 0x7E, - 0xDA, - 0xDA, - 0x00, - 0x09, - 0xC0, - 0x00, - 0x11, - 0x7E, - 0xC0, - 0x7E, - 0x7E, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7F, - 0x00, - 0x06, - 0x80, - 0x01, - 0x7F, - 0x20, - 0x80, - 0x00, - 0x05, - 0x7F, - 0x7F, - 0x80, - 0x7F, - 0x80, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF8, - 0x0D, - 0xF9, - 0x00, - 0x08, - 0xF7, - 0xF9, - 0xF9, - 0xF2, - 0xF3, - 0xFB, - 0xFB, - 0xFB, - 0x08, - 0xFC, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xF4, - 0xF4, - 0xF4, - 0xF3, - 0x07, - 0xF4, - 0x13, - 0xF3, - 0x01, - 0xF2, - 0x05, - 0xF3, - 0x00, - 0x11, - 0xF9, - 0xF7, - 0xF0, - 0xEF, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF0, - 0xEF, - 0xF0, - 0xF0, - 0xF0, - 0xEF, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x0A, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0xEE, - 0xEE, - 0xEF, - 0xEF, - 0x00, - 0x0C, - 0xEE, - 0x0C, - 0xE4, - 0x05, - 0xEB, - 0x00, - 0x03, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x25, - 0xE1, - 0xE9, - 0xE9, - 0xE9, - 0xED, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xE2, - 0xE2, - 0xDF, - 0xDF, - 0xE2, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xDF, - 0xDF, - 0xE2, - 0xE2, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xEC, - 0xBE, - 0xBE, - 0x00, - 0x13, - 0xEC, - 0x04, - 0xBE, - 0x01, - 0xEC, - 0x12, - 0xBE, - 0x00, - 0x03, - 0xDA, - 0xBE, - 0xDA, - 0x00, - 0x05, - 0xBE, - 0x00, - 0x15, - 0xDA, - 0xDA, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xDA, - 0xA1, - 0xA1, - 0xDA, - 0xA1, - 0xA1, - 0xDA, - 0x7E, - 0x7E, - 0x7E, - 0xBE, - 0xDA, - 0x7E, - 0xDA, - 0x00, - 0x0C, - 0x7E, - 0x00, - 0x10, - 0xC0, - 0x7E, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x80, - 0x7E, - 0x7E, - 0x80, - 0x80, - 0x80, - 0x7E, - 0x04, - 0x7F, - 0x20, - 0x80, - 0x04, - 0x7F, - 0x01, - 0x80, - 0x01, - 0x44, - 0x00, - 0x00, - 0x01, - 0xF8, - 0x01, - 0xF9, - 0x04, - 0xF8, - 0x00, - 0x04, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x07, - 0xF9, - 0x00, - 0x08, - 0xF8, - 0xF8, - 0xF9, - 0xF3, - 0xF4, - 0xFA, - 0xFB, - 0xFB, - 0x07, - 0xFC, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xF4, - 0xF4, - 0xF4, - 0xF3, - 0x08, - 0xF4, - 0x0E, - 0xF3, - 0x04, - 0xF2, - 0x00, - 0x09, - 0xF3, - 0xF2, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0xF2, - 0xF9, - 0xF7, - 0x00, - 0x09, - 0xF0, - 0x00, - 0x07, - 0xEF, - 0xEF, - 0xF0, - 0xEF, - 0xEF, - 0xEF, - 0xF0, - 0x00, - 0x09, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0xEE, - 0xEE, - 0xEF, - 0xEF, - 0x00, - 0x0A, - 0xEE, - 0x0E, - 0xE4, - 0x0A, - 0xEB, - 0x01, - 0xD5, - 0x01, - 0xE1, - 0x05, - 0xE9, - 0x01, - 0xDF, - 0x05, - 0xE2, - 0x00, - 0x13, - 0xDF, - 0xE2, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xEC, - 0xEC, - 0xEC, - 0xDF, - 0xE2, - 0xE2, - 0xE2, - 0xEC, - 0xEC, - 0xEC, - 0xDF, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x03, - 0xBE, - 0xEC, - 0xBE, - 0x00, - 0x14, - 0xEC, - 0x01, - 0xE3, - 0x17, - 0xBE, - 0x01, - 0xDA, - 0x06, - 0xBE, - 0x00, - 0x18, - 0xDA, - 0xDA, - 0xDA, - 0xBE, - 0xBE, - 0xDA, - 0xBE, - 0xBE, - 0xBE, - 0x7E, - 0xA1, - 0xBE, - 0x7E, - 0xBE, - 0x7E, - 0xE3, - 0x7E, - 0xC0, - 0xE3, - 0xBE, - 0x7E, - 0xC0, - 0xE3, - 0xC0, - 0x0A, - 0x7E, - 0x01, - 0xC0, - 0x0A, - 0x7E, - 0x00, - 0x03, - 0x80, - 0x7E, - 0x7F, - 0x00, - 0x04, - 0x7E, - 0x01, - 0x7F, - 0x20, - 0x80, - 0x05, - 0x7F, - 0x01, - 0x80, - 0x00, - 0x00, - 0x08, - 0xF8, - 0x0A, - 0xF9, - 0x00, - 0x0B, - 0xF8, - 0xF9, - 0xF3, - 0xF4, - 0xFA, - 0xFB, - 0xFB, - 0xFA, - 0xFA, - 0xFC, - 0xFC, - 0x00, - 0x06, - 0xFA, - 0x08, - 0xF4, - 0x01, - 0xF3, - 0x01, - 0xF4, - 0x11, - 0xF3, - 0x00, - 0x1B, - 0xF2, - 0xF2, - 0xF3, - 0xF2, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF3, - 0xF2, - 0xF2, - 0xF9, - 0xF7, - 0xF0, - 0xEF, - 0xF0, - 0xF0, - 0xEF, - 0xF0, - 0xEF, - 0xF0, - 0xEF, - 0xF0, - 0xEF, - 0xF0, - 0xF0, - 0xF0, - 0x00, - 0x0B, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0xEE, - 0xEE, - 0xEF, - 0xEF, - 0x00, - 0x0A, - 0xEE, - 0x00, - 0x03, - 0xE4, - 0xE4, - 0xE4, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x03, - 0xE4, - 0xE4, - 0xE4, - 0x00, - 0x0E, - 0xEB, - 0x01, - 0xE1, - 0x04, - 0xE9, - 0x00, - 0x10, - 0xDF, - 0xEC, - 0xE2, - 0xDF, - 0xDF, - 0xEC, - 0xDF, - 0xE2, - 0xE2, - 0xDF, - 0xDF, - 0xE2, - 0xEC, - 0xE2, - 0xE2, - 0xE2, - 0x0B, - 0xEC, - 0x00, - 0x03, - 0xDF, - 0xEC, - 0xDF, - 0x00, - 0x05, - 0xEC, - 0x13, - 0xE3, - 0x0B, - 0xBE, - 0x01, - 0xE3, - 0x07, - 0xBE, - 0x01, - 0xE3, - 0x05, - 0xBE, - 0x01, - 0xDA, - 0x08, - 0xBE, - 0x00, - 0x0E, - 0x7E, - 0xBE, - 0xBE, - 0x7E, - 0xBE, - 0xBE, - 0xBE, - 0xA0, - 0xA0, - 0x7E, - 0x7E, - 0xA0, - 0xA0, - 0xE3, - 0x04, - 0x7E, - 0x00, - 0x06, - 0xE3, - 0xC0, - 0x7E, - 0xC0, - 0x7E, - 0xC0, - 0x05, - 0x7E, - 0x00, - 0x03, - 0xC0, - 0x7E, - 0xC0, - 0x00, - 0x04, - 0x7E, - 0x05, - 0x80, - 0x00, - 0x06, - 0x7E, - 0x80, - 0x7E, - 0x7E, - 0x7F, - 0x7E, - 0x0A, - 0x7F, - 0x13, - 0x80, - 0x0C, - 0x7F, - 0x00, - 0x00, - 0x04, - 0xF8, - 0x00, - 0x06, - 0xF7, - 0xF8, - 0xF8, - 0xF9, - 0xF9, - 0xF8, - 0x07, - 0xF9, - 0x00, - 0x08, - 0xF8, - 0xF9, - 0xF9, - 0xF2, - 0xF4, - 0xFA, - 0xFB, - 0xFB, - 0x07, - 0xFA, - 0x09, - 0xF4, - 0x00, - 0x04, - 0xF3, - 0xF3, - 0xF3, - 0xF4, - 0x0D, - 0xF3, - 0x00, - 0x12, - 0xF2, - 0xF2, - 0xF3, - 0xF3, - 0xF3, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF3, - 0xF2, - 0xF2, - 0xF2, - 0xF8, - 0xF8, - 0xF0, - 0x05, - 0xEF, - 0x00, - 0x05, - 0xF0, - 0xF0, - 0xF0, - 0xEF, - 0xF0, - 0x00, - 0x0C, - 0xEF, - 0x0C, - 0xEE, - 0x00, - 0x06, - 0xE4, - 0xE4, - 0xE4, - 0xEE, - 0xEE, - 0xEE, - 0x06, - 0xEA, - 0x10, - 0xEB, - 0x01, - 0xE1, - 0x07, - 0xE9, - 0x00, - 0x0E, - 0xDF, - 0xDF, - 0xEC, - 0xE7, - 0xEC, - 0xDF, - 0xDF, - 0xEC, - 0xEC, - 0xDF, - 0xEC, - 0xDF, - 0xEC, - 0xDF, - 0x13, - 0xEC, - 0x0D, - 0xE3, - 0x01, - 0xBE, - 0x01, - 0xE3, - 0x13, - 0xBE, - 0x05, - 0xE3, - 0x01, - 0xBE, - 0x01, - 0xE3, - 0x0C, - 0xBE, - 0x00, - 0x0D, - 0xA0, - 0xBE, - 0x7E, - 0xBE, - 0xA0, - 0x7E, - 0xA0, - 0x7E, - 0xA0, - 0x7E, - 0xBE, - 0x7E, - 0xA0, - 0x00, - 0x0E, - 0x7E, - 0x01, - 0xC0, - 0x06, - 0x7E, - 0x05, - 0x7F, - 0x00, - 0x05, - 0x80, - 0x7F, - 0x80, - 0x7F, - 0x7E, - 0x00, - 0x0F, - 0x7F, - 0x10, - 0x80, - 0x0B, - 0x7F, - 0x01, - 0x44, - 0x01, - 0x7F, - 0x00, - 0x00, - 0x09, - 0xF8, - 0x00, - 0x04, - 0xF9, - 0xF8, - 0xF8, - 0xF8, - 0x05, - 0xF9, - 0x00, - 0x07, - 0xF8, - 0xF9, - 0xF2, - 0xF4, - 0xFA, - 0xFC, - 0xFB, - 0x00, - 0x05, - 0xFA, - 0x0F, - 0xF4, - 0x0D, - 0xF3, - 0x00, - 0x05, - 0xF2, - 0xF3, - 0xF3, - 0xF3, - 0xF2, - 0x00, - 0x05, - 0xF3, - 0x00, - 0x08, - 0xF2, - 0xF3, - 0xF2, - 0xF2, - 0xF2, - 0xF9, - 0xF8, - 0xF1, - 0x06, - 0xEF, - 0x04, - 0xF0, - 0x0C, - 0xEF, - 0x0C, - 0xEE, - 0x00, - 0x06, - 0xE4, - 0xE4, - 0xE4, - 0xEE, - 0xEE, - 0xEE, - 0x06, - 0xEA, - 0x0E, - 0xEB, - 0x00, - 0x06, - 0xE1, - 0xE1, - 0xED, - 0xE9, - 0xE9, - 0xE2, - 0x14, - 0xEC, - 0x04, - 0xE0, - 0x00, - 0x03, - 0xEC, - 0xE0, - 0xE0, - 0x00, - 0x0A, - 0xEC, - 0x0B, - 0xE3, - 0x05, - 0xBE, - 0x00, - 0x03, - 0xE3, - 0xBE, - 0xE3, - 0x00, - 0x0E, - 0xBE, - 0x06, - 0xE3, - 0x00, - 0x04, - 0xBE, - 0xE3, - 0xBE, - 0xE3, - 0x0A, - 0xBE, - 0x00, - 0x04, - 0x7E, - 0xBE, - 0xBE, - 0x7E, - 0x05, - 0xA0, - 0x00, - 0x04, - 0x7E, - 0x7E, - 0xA0, - 0xA0, - 0x04, - 0x7E, - 0x01, - 0xC0, - 0x13, - 0x7E, - 0x00, - 0x0A, - 0x80, - 0x80, - 0xC0, - 0x7E, - 0x7F, - 0x80, - 0x7E, - 0x7F, - 0x7F, - 0x7E, - 0x0F, - 0x7F, - 0x0D, - 0x80, - 0x0C, - 0x7F, - 0x01, - 0x44, - 0x00, - 0x00, - 0x00, - 0x06, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0x05, - 0xF8, - 0x06, - 0xF9, - 0x00, - 0x07, - 0xF8, - 0xF9, - 0xF9, - 0xF2, - 0xF3, - 0xFA, - 0xFC, - 0x00, - 0x05, - 0xFA, - 0x08, - 0xF4, - 0x10, - 0xF3, - 0x00, - 0x07, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0xF3, - 0xF2, - 0xF3, - 0x00, - 0x0D, - 0xF2, - 0x00, - 0x05, - 0xF8, - 0xF7, - 0xF0, - 0xEF, - 0xF0, - 0x00, - 0x04, - 0xEF, - 0x01, - 0xF1, - 0x01, - 0xF1, - 0x07, - 0xEF, - 0x0C, - 0xEE, - 0x00, - 0x03, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0x0B, - 0xE4, - 0x04, - 0xEA, - 0x0A, - 0xEB, - 0x00, - 0x0B, - 0xEA, - 0xEB, - 0xEB, - 0xEB, - 0xE1, - 0xE1, - 0xED, - 0xED, - 0xE9, - 0xDF, - 0xE2, - 0x00, - 0x18, - 0xEC, - 0x01, - 0xE0, - 0x07, - 0xEC, - 0x05, - 0xE3, - 0x00, - 0x07, - 0xEC, - 0xE3, - 0xE3, - 0xE0, - 0xE3, - 0xE0, - 0xEC, - 0x00, - 0x06, - 0xE3, - 0x01, - 0xBE, - 0x01, - 0xE3, - 0x07, - 0xBE, - 0x00, - 0x04, - 0xE3, - 0xBE, - 0xBE, - 0xE3, - 0x08, - 0xBE, - 0x06, - 0xE3, - 0x00, - 0x04, - 0xBE, - 0xE3, - 0xBE, - 0xE3, - 0x06, - 0xBE, - 0x00, - 0x0C, - 0xE3, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0xA0, - 0xBE, - 0xA0, - 0xA0, - 0x7E, - 0xA0, - 0x7E, - 0x07, - 0xA0, - 0x00, - 0x0F, - 0x7E, - 0x7E, - 0x7E, - 0xA0, - 0x7F, - 0x7F, - 0xA0, - 0x7E, - 0x7F, - 0x7F, - 0x7E, - 0x7E, - 0x7F, - 0x7F, - 0x7F, - 0x00, - 0x08, - 0x7E, - 0x00, - 0x06, - 0xC0, - 0xC0, - 0x80, - 0x80, - 0x7E, - 0x7E, - 0x13, - 0x7F, - 0x09, - 0x80, - 0x05, - 0x7F, - 0x01, - 0x44, - 0x04, - 0x7F, - 0x00, - 0x05, - 0x44, - 0x7F, - 0x44, - 0x44, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0x05, - 0xF8, - 0x00, - 0x08, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0xF9, - 0xF9, - 0xF3, - 0xF4, - 0x04, - 0xFA, - 0x0A, - 0xF4, - 0x15, - 0xF3, - 0x01, - 0xF2, - 0x01, - 0xF3, - 0x0B, - 0xF2, - 0x00, - 0x04, - 0xF9, - 0xF9, - 0xF8, - 0xF7, - 0x04, - 0xEF, - 0x01, - 0xF0, - 0x01, - 0xF0, - 0x0A, - 0xEF, - 0x0C, - 0xEE, - 0x0C, - 0xE4, - 0x01, - 0xEB, - 0x01, - 0xEB, - 0x04, - 0xEA, - 0x0D, - 0xEB, - 0x00, - 0x07, - 0xE1, - 0xED, - 0xED, - 0xE9, - 0xE9, - 0xE2, - 0xE2, - 0x00, - 0x1D, - 0xEC, - 0x06, - 0xE3, - 0x00, - 0x0A, - 0xE0, - 0xE3, - 0xE3, - 0xEC, - 0xEC, - 0xE0, - 0xEC, - 0xE0, - 0xEC, - 0xE0, - 0x05, - 0xEC, - 0x07, - 0xE3, - 0x04, - 0xBE, - 0x00, - 0x03, - 0xE3, - 0xE3, - 0xBE, - 0x00, - 0x08, - 0xE3, - 0x00, - 0x13, - 0xBE, - 0xE3, - 0xE3, - 0xE3, - 0xBE, - 0xE3, - 0xBE, - 0xE3, - 0xBE, - 0xBE, - 0xE3, - 0xE3, - 0xE3, - 0xBE, - 0xE3, - 0xBE, - 0xE3, - 0xE3, - 0xE3, - 0x00, - 0x04, - 0xBE, - 0x0D, - 0xA0, - 0x00, - 0x0B, - 0x7F, - 0xA0, - 0x7F, - 0xA0, - 0x7F, - 0x7F, - 0x7F, - 0x7E, - 0x7F, - 0x7F, - 0x7F, - 0x00, - 0x05, - 0x7E, - 0x01, - 0xA1, - 0x01, - 0xDA, - 0x05, - 0xA1, - 0x00, - 0x09, - 0xA3, - 0xA3, - 0x7E, - 0x80, - 0x7E, - 0x7F, - 0x7E, - 0x7F, - 0x7D, - 0x00, - 0x0F, - 0x7F, - 0x09, - 0x80, - 0x0A, - 0x7F, - 0x00, - 0x05, - 0x44, - 0x7F, - 0x7F, - 0x44, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0x00, - 0x07, - 0xF8, - 0x00, - 0x05, - 0xF9, - 0xF8, - 0xF9, - 0xF2, - 0xF4, - 0x00, - 0x05, - 0xFA, - 0x09, - 0xF4, - 0x10, - 0xF3, - 0x05, - 0xF2, - 0x01, - 0xF3, - 0x0D, - 0xF2, - 0x00, - 0x07, - 0xF9, - 0xF8, - 0xF0, - 0xEF, - 0xEF, - 0xF0, - 0xF0, - 0x00, - 0x06, - 0xEF, - 0x01, - 0xEE, - 0x05, - 0xEF, - 0x0C, - 0xEE, - 0x08, - 0xE4, - 0x04, - 0xEA, - 0x01, - 0xEB, - 0x01, - 0xEB, - 0x04, - 0xEA, - 0x0C, - 0xEB, - 0x00, - 0x07, - 0xE1, - 0xED, - 0xED, - 0xE9, - 0xE2, - 0xE2, - 0xDF, - 0x00, - 0x1D, - 0xEC, - 0x00, - 0x03, - 0xE0, - 0xEC, - 0xE0, - 0x00, - 0x07, - 0xE3, - 0x00, - 0x06, - 0xEC, - 0xE0, - 0xEC, - 0xE0, - 0xEC, - 0xE0, - 0x05, - 0xEC, - 0x00, - 0x03, - 0xE0, - 0xE3, - 0xEC, - 0x00, - 0x06, - 0xE3, - 0x00, - 0x05, - 0xBE, - 0xBE, - 0xE3, - 0xE3, - 0xBE, - 0x00, - 0x05, - 0xE3, - 0x00, - 0x04, - 0xA0, - 0xE3, - 0xE3, - 0xBE, - 0x05, - 0xE3, - 0x00, - 0x0B, - 0xBE, - 0xE3, - 0xBE, - 0xBE, - 0xE3, - 0xE3, - 0xBE, - 0xBE, - 0xE3, - 0xBE, - 0xE3, - 0x00, - 0x07, - 0xBE, - 0x00, - 0x04, - 0xA0, - 0xA0, - 0xA0, - 0x7E, - 0x09, - 0xA0, - 0x00, - 0x09, - 0x7F, - 0x7F, - 0xA0, - 0x7F, - 0xA0, - 0x7F, - 0xA0, - 0x7F, - 0x7F, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x03, - 0xA1, - 0xA1, - 0xA1, - 0x00, - 0x07, - 0xBF, - 0x01, - 0xA2, - 0x01, - 0xA1, - 0x04, - 0x7E, - 0x16, - 0x7F, - 0x04, - 0x80, - 0x00, - 0x07, - 0x7F, - 0x7F, - 0x7F, - 0x44, - 0x7F, - 0x44, - 0x44, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x04, - 0x44, - 0x44, - 0x44, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0x00, - 0x05, - 0xF8, - 0x00, - 0x0A, - 0xF9, - 0xF2, - 0xF4, - 0xFA, - 0xFB, - 0xF4, - 0xFA, - 0xFA, - 0xF4, - 0xF4, - 0x11, - 0xF3, - 0x00, - 0x04, - 0xF2, - 0xF2, - 0xF3, - 0xF3, - 0x0E, - 0xF2, - 0x00, - 0x0C, - 0xF9, - 0xF2, - 0xF9, - 0xF9, - 0xF2, - 0xF2, - 0xF9, - 0xF9, - 0xF7, - 0xF0, - 0xEF, - 0xEE, - 0x07, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0xEE, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x0B, - 0xEE, - 0x01, - 0xE4, - 0x01, - 0xEE, - 0x08, - 0xE4, - 0x0E, - 0xEA, - 0x07, - 0xEB, - 0x00, - 0x0A, - 0xE1, - 0xE1, - 0xED, - 0xE9, - 0xE9, - 0xE2, - 0xDF, - 0xEC, - 0xE2, - 0xE2, - 0x12, - 0xEC, - 0x01, - 0xE0, - 0x08, - 0xEC, - 0x00, - 0x04, - 0xE0, - 0xEC, - 0xE0, - 0xE3, - 0x04, - 0xE0, - 0x01, - 0xE3, - 0x01, - 0xE3, - 0x08, - 0xE0, - 0x00, - 0x04, - 0xEC, - 0xEC, - 0xE0, - 0xEC, - 0x07, - 0xE0, - 0x00, - 0x06, - 0xE3, - 0xE3, - 0xBE, - 0xBE, - 0xE3, - 0xBE, - 0x04, - 0xE3, - 0x01, - 0xD9, - 0x04, - 0xE3, - 0x00, - 0x17, - 0xA0, - 0xA0, - 0xA0, - 0xE3, - 0xA0, - 0xE3, - 0xBE, - 0xE3, - 0xBE, - 0xE3, - 0xE3, - 0xE3, - 0xA0, - 0xA0, - 0xE3, - 0xA0, - 0xE3, - 0xA0, - 0xE3, - 0xA0, - 0xBE, - 0xA0, - 0xBE, - 0x00, - 0x0D, - 0xA0, - 0x00, - 0x0F, - 0x7F, - 0x7F, - 0xBD, - 0x7F, - 0xBD, - 0x7F, - 0xBD, - 0x7F, - 0x7F, - 0x7E, - 0x7E, - 0x7E, - 0xA1, - 0xA1, - 0xA2, - 0x00, - 0x0B, - 0xBF, - 0x00, - 0x07, - 0xA2, - 0xA3, - 0xA3, - 0xA1, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x16, - 0x7F, - 0x00, - 0x04, - 0x80, - 0x80, - 0x44, - 0x80, - 0x04, - 0x7F, - 0x00, - 0x09, - 0x80, - 0x44, - 0x7F, - 0x44, - 0x44, - 0x7F, - 0x7F, - 0x7F, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x06, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0x04, - 0xF8, - 0x01, - 0xF7, - 0x01, - 0xF7, - 0x04, - 0xF8, - 0x00, - 0x09, - 0xF2, - 0xF4, - 0xFA, - 0xFC, - 0xFA, - 0xFA, - 0xF4, - 0xF4, - 0xF4, - 0x00, - 0x13, - 0xF3, - 0x0E, - 0xF2, - 0x01, - 0xF9, - 0x01, - 0xF2, - 0x05, - 0xF9, - 0x00, - 0x07, - 0xF2, - 0xF2, - 0xF8, - 0xF7, - 0xF0, - 0xEF, - 0xEE, - 0x00, - 0x07, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0xEE, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x0B, - 0xEE, - 0x0A, - 0xE4, - 0x0E, - 0xEA, - 0x04, - 0xEB, - 0x00, - 0x03, - 0xE1, - 0xE1, - 0xED, - 0x00, - 0x04, - 0xE9, - 0x00, - 0x03, - 0xE2, - 0xDF, - 0xDF, - 0x00, - 0x16, - 0xEC, - 0x00, - 0x0B, - 0xE3, - 0xE3, - 0xE3, - 0xE0, - 0xEC, - 0xEC, - 0xEC, - 0xE0, - 0xEC, - 0xE0, - 0xEC, - 0x00, - 0x05, - 0xE0, - 0x00, - 0x03, - 0xE3, - 0xE3, - 0xE3, - 0x00, - 0x05, - 0xE0, - 0x09, - 0xEC, - 0x05, - 0xE0, - 0x00, - 0x03, - 0xE3, - 0xE3, - 0xBE, - 0x00, - 0x04, - 0xE3, - 0x00, - 0x09, - 0xD9, - 0xD9, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0xE3, - 0x00, - 0x0A, - 0xA0, - 0x01, - 0xE3, - 0x0A, - 0xA0, - 0x00, - 0x03, - 0xBE, - 0xA0, - 0xBE, - 0x00, - 0x0A, - 0xA0, - 0x01, - 0xBD, - 0x07, - 0x7F, - 0x00, - 0x09, - 0x7E, - 0x7E, - 0x7E, - 0xA1, - 0xA2, - 0xBF, - 0xA2, - 0xA2, - 0xA2, - 0x00, - 0x07, - 0xBF, - 0x00, - 0x0A, - 0xA2, - 0xBF, - 0xA2, - 0xA2, - 0xA3, - 0xA3, - 0xA1, - 0xA1, - 0x7E, - 0x7E, - 0x10, - 0x7F, - 0x01, - 0x44, - 0x04, - 0x7F, - 0x00, - 0x11, - 0x80, - 0x7F, - 0x80, - 0x44, - 0x80, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x7F, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x44, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x00, - 0x0D, - 0xF7, - 0x00, - 0x0A, - 0xF8, - 0xF7, - 0xF8, - 0xF9, - 0xF3, - 0xF4, - 0xFA, - 0xFC, - 0xF4, - 0xF4, - 0x12, - 0xF3, - 0x00, - 0x04, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0x0A, - 0xF2, - 0x00, - 0x10, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0xF9, - 0xF9, - 0xF9, - 0xF2, - 0xF2, - 0xF9, - 0xF7, - 0xF7, - 0xF0, - 0xEF, - 0x06, - 0xEE, - 0x00, - 0x07, - 0xEF, - 0xEF, - 0xEE, - 0xEE, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x09, - 0xEE, - 0x00, - 0x03, - 0xEA, - 0xEE, - 0xEA, - 0x00, - 0x04, - 0xE4, - 0x0F, - 0xEA, - 0x01, - 0xEB, - 0x01, - 0xEA, - 0x05, - 0xEB, - 0x01, - 0xE1, - 0x05, - 0xE9, - 0x00, - 0x04, - 0xE2, - 0xDF, - 0xEC, - 0xDF, - 0x0C, - 0xEC, - 0x00, - 0x04, - 0xE0, - 0xEC, - 0xE0, - 0xEC, - 0x06, - 0xE0, - 0x00, - 0x04, - 0xEC, - 0xE0, - 0xE3, - 0xE3, - 0x04, - 0xE0, - 0x00, - 0x03, - 0xE3, - 0xE0, - 0xEC, - 0x00, - 0x06, - 0xE0, - 0x00, - 0x03, - 0xE3, - 0xE3, - 0xE3, - 0x00, - 0x14, - 0xE0, - 0x04, - 0xE3, - 0x01, - 0xE0, - 0x01, - 0xE3, - 0x04, - 0xD9, - 0x00, - 0x06, - 0xA0, - 0xD9, - 0xD9, - 0xA0, - 0xA0, - 0xE3, - 0x07, - 0xD9, - 0x00, - 0x03, - 0xA0, - 0xA0, - 0xA0, - 0x00, - 0x09, - 0xE3, - 0x0F, - 0xA0, - 0x00, - 0x10, - 0xBD, - 0x7F, - 0x7D, - 0xA0, - 0xBD, - 0xA0, - 0x7E, - 0x7E, - 0xA1, - 0xA1, - 0xBF, - 0xA2, - 0xA2, - 0xA2, - 0xBF, - 0xC1, - 0x0A, - 0xBF, - 0x00, - 0x0B, - 0xA2, - 0xA2, - 0xA3, - 0xA1, - 0xA1, - 0xA1, - 0x7E, - 0x7E, - 0x7E, - 0x7F, - 0xBD, - 0x00, - 0x0B, - 0x7F, - 0x01, - 0x44, - 0x0A, - 0x7F, - 0x00, - 0x07, - 0x80, - 0x80, - 0x7F, - 0x80, - 0x7F, - 0x44, - 0x44, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x07, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x00, - 0x0E, - 0xF7, - 0x00, - 0x06, - 0xF8, - 0xF2, - 0xF4, - 0xF4, - 0xFC, - 0xF4, - 0x0E, - 0xF3, - 0x01, - 0xF2, - 0x01, - 0xF2, - 0x04, - 0xF3, - 0x00, - 0x04, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0x09, - 0xF2, - 0x00, - 0x05, - 0xF9, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0x00, - 0x04, - 0xF9, - 0x00, - 0x07, - 0xF2, - 0xF2, - 0xF9, - 0xF8, - 0xF0, - 0xEF, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0x00, - 0x03, - 0xEF, - 0xEE, - 0xEF, - 0x00, - 0x09, - 0xEE, - 0x00, - 0x03, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0x04, - 0xEE, - 0x11, - 0xEA, - 0x06, - 0xEB, - 0x00, - 0x04, - 0xD5, - 0xEB, - 0xEB, - 0xE1, - 0x04, - 0xE9, - 0x00, - 0x05, - 0xDF, - 0xDF, - 0xE2, - 0xDF, - 0xDF, - 0x00, - 0x0A, - 0xEC, - 0x00, - 0x06, - 0xE0, - 0xEC, - 0xE0, - 0xEC, - 0xE0, - 0xEC, - 0x0B, - 0xE0, - 0x01, - 0xE3, - 0x01, - 0xE3, - 0x05, - 0xE0, - 0x01, - 0xE3, - 0x01, - 0xE3, - 0x11, - 0xE0, - 0x07, - 0xE3, - 0x00, - 0x05, - 0xE0, - 0xE0, - 0xE0, - 0xD9, - 0xE0, - 0x00, - 0x09, - 0xD9, - 0x00, - 0x05, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0x00, - 0x07, - 0xBD, - 0x00, - 0x0D, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0x00, - 0x0B, - 0xA0, - 0x00, - 0x0B, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0x7E, - 0x7E, - 0xA1, - 0x00, - 0x05, - 0xBF, - 0x00, - 0x05, - 0xA2, - 0xA2, - 0xA2, - 0xBF, - 0xA2, - 0x00, - 0x05, - 0xBF, - 0x00, - 0x03, - 0xA2, - 0xBF, - 0xA2, - 0x00, - 0x07, - 0xA1, - 0x00, - 0x08, - 0xA3, - 0x7E, - 0x7E, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x44, - 0x06, - 0x7F, - 0x00, - 0x07, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x7F, - 0x00, - 0x08, - 0x44, - 0x00, - 0x04, - 0x7F, - 0x44, - 0x44, - 0x7F, - 0x05, - 0x44, - 0x00, - 0x00, - 0x00, - 0x08, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x06, - 0xF7, - 0x01, - 0xF1, - 0x06, - 0xF7, - 0x00, - 0x07, - 0xF8, - 0xF9, - 0xF2, - 0xF3, - 0xF4, - 0xF3, - 0xF2, - 0x00, - 0x0D, - 0xF3, - 0x01, - 0xF2, - 0x04, - 0xF3, - 0x00, - 0x04, - 0xF2, - 0xF3, - 0xF2, - 0xF3, - 0x0A, - 0xF2, - 0x01, - 0xF9, - 0x01, - 0xF2, - 0x04, - 0xF9, - 0x00, - 0x0A, - 0xF2, - 0xF9, - 0xF9, - 0xF2, - 0xF2, - 0xF8, - 0xF7, - 0xEF, - 0xEF, - 0xEF, - 0x06, - 0xEE, - 0x01, - 0xEF, - 0x01, - 0xEF, - 0x0D, - 0xEE, - 0x14, - 0xEA, - 0x05, - 0xEB, - 0x00, - 0x15, - 0xE1, - 0xE1, - 0xE1, - 0xE9, - 0xE9, - 0xE9, - 0xDF, - 0xDF, - 0xDF, - 0xEC, - 0xEC, - 0xDF, - 0xEC, - 0xDF, - 0xEC, - 0xE7, - 0xEC, - 0xE0, - 0xEC, - 0xEC, - 0xE0, - 0x00, - 0x05, - 0xEC, - 0x29, - 0xE0, - 0x04, - 0xD9, - 0x00, - 0x03, - 0xE3, - 0xE3, - 0xD9, - 0x00, - 0x04, - 0xE0, - 0x00, - 0x03, - 0xD8, - 0xE0, - 0xBD, - 0x00, - 0x06, - 0xD9, - 0x00, - 0x06, - 0xA0, - 0xD9, - 0xA0, - 0xD9, - 0xD9, - 0xD9, - 0x07, - 0xBD, - 0x0D, - 0xD9, - 0x00, - 0x04, - 0xA0, - 0xD9, - 0xD9, - 0xD9, - 0x07, - 0xA0, - 0x00, - 0x0A, - 0xBD, - 0xA0, - 0xBD, - 0xBD, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0xBE, - 0xA1, - 0x0F, - 0xBF, - 0x00, - 0x03, - 0xA1, - 0xA2, - 0xBF, - 0x00, - 0x08, - 0xA1, - 0x00, - 0x05, - 0xA3, - 0xA1, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x04, - 0x7F, - 0x01, - 0x44, - 0x0B, - 0x7F, - 0x00, - 0x05, - 0x44, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x00, - 0x04, - 0x7F, - 0x01, - 0x44, - 0x01, - 0x7F, - 0x06, - 0x44, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0x00, - 0x07, - 0xF7, - 0x00, - 0x0C, - 0xF1, - 0xF1, - 0xF7, - 0xF0, - 0xF0, - 0xF7, - 0xF0, - 0xF0, - 0xF0, - 0xF7, - 0xF8, - 0xF9, - 0x11, - 0xF3, - 0x04, - 0xF2, - 0x00, - 0x04, - 0xF3, - 0xF3, - 0xF2, - 0xF3, - 0x06, - 0xF2, - 0x00, - 0x05, - 0xF9, - 0xF2, - 0xF9, - 0xF9, - 0xF2, - 0x00, - 0x06, - 0xF9, - 0x00, - 0x07, - 0xF2, - 0xF2, - 0xF9, - 0xF2, - 0xF2, - 0xF8, - 0xF7, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x08, - 0xEE, - 0xEF, - 0xEE, - 0xEE, - 0xEF, - 0xEE, - 0xEF, - 0xEA, - 0x05, - 0xEE, - 0x01, - 0xEA, - 0x01, - 0xEE, - 0x17, - 0xEA, - 0x05, - 0xEB, - 0x01, - 0xE9, - 0x01, - 0xE1, - 0x05, - 0xE9, - 0x00, - 0x09, - 0xDF, - 0xDF, - 0xE7, - 0xDF, - 0xEC, - 0xDF, - 0xDF, - 0xE7, - 0xE7, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x06, - 0xE0, - 0xEC, - 0xEC, - 0xE7, - 0xEC, - 0xEC, - 0x04, - 0xDD, - 0x00, - 0x03, - 0xE0, - 0xE0, - 0xE0, - 0x00, - 0x07, - 0xE8, - 0x05, - 0xE0, - 0x01, - 0xDE, - 0x01, - 0xDE, - 0x0C, - 0xE0, - 0x0F, - 0xD9, - 0x00, - 0x05, - 0xE0, - 0xE0, - 0xD9, - 0xE0, - 0xD9, - 0x00, - 0x04, - 0xE0, - 0x00, - 0x05, - 0xD9, - 0xE0, - 0xD9, - 0xD9, - 0xE3, - 0x00, - 0x04, - 0xD9, - 0x16, - 0xBD, - 0x01, - 0xA0, - 0x01, - 0xBD, - 0x04, - 0xA0, - 0x01, - 0xD9, - 0x06, - 0xA0, - 0x00, - 0x08, - 0xBD, - 0xBD, - 0xBD, - 0xA0, - 0xA0, - 0x7E, - 0xBE, - 0xA1, - 0x0E, - 0xBF, - 0x00, - 0x05, - 0xA1, - 0xBF, - 0xA1, - 0xA2, - 0xA2, - 0x00, - 0x0A, - 0xA1, - 0x00, - 0x03, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x05, - 0x7F, - 0x04, - 0x44, - 0x00, - 0x04, - 0x7F, - 0x7F, - 0x44, - 0x7F, - 0x14, - 0x44, - 0x00, - 0x00, - 0x08, - 0xF7, - 0x00, - 0x08, - 0xF0, - 0xF7, - 0xF1, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0xF7, - 0x04, - 0xF0, - 0x00, - 0x0A, - 0xF5, - 0xF0, - 0xF7, - 0xF9, - 0xF2, - 0xF2, - 0xF3, - 0xF2, - 0xF2, - 0xF2, - 0x09, - 0xF3, - 0x01, - 0xF2, - 0x01, - 0xF3, - 0x05, - 0xF2, - 0x01, - 0xF3, - 0x01, - 0xF3, - 0x08, - 0xF2, - 0x00, - 0x05, - 0xF9, - 0xF2, - 0xF9, - 0xF9, - 0xF2, - 0x00, - 0x07, - 0xF9, - 0x00, - 0x07, - 0xF2, - 0xF2, - 0xF2, - 0xF8, - 0xF0, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xEF, - 0x04, - 0xEE, - 0x00, - 0x04, - 0xEF, - 0xEF, - 0xEE, - 0xEA, - 0x08, - 0xEE, - 0x07, - 0xEA, - 0x01, - 0xD5, - 0x0B, - 0xEA, - 0x00, - 0x09, - 0xEB, - 0xE9, - 0xEB, - 0xE1, - 0xE1, - 0xE1, - 0xE9, - 0xE9, - 0xE9, - 0x00, - 0x04, - 0xDF, - 0x00, - 0x08, - 0xE2, - 0xDF, - 0xDF, - 0xDF, - 0xE7, - 0xEC, - 0xE7, - 0xEC, - 0x07, - 0xE7, - 0x01, - 0xDD, - 0x01, - 0xEC, - 0x06, - 0xDD, - 0x08, - 0xE8, - 0x00, - 0x05, - 0xDE, - 0xDE, - 0xE8, - 0xE8, - 0xE8, - 0x00, - 0x17, - 0xDE, - 0x09, - 0xD9, - 0x00, - 0x03, - 0xDE, - 0xD9, - 0xDE, - 0x00, - 0x05, - 0xD9, - 0x01, - 0xE0, - 0x04, - 0xD9, - 0x1C, - 0xBD, - 0x00, - 0x12, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xBD, - 0xA0, - 0xBE, - 0xA1, - 0xDA, - 0x08, - 0xBF, - 0x01, - 0xDA, - 0x07, - 0xBF, - 0x01, - 0xA1, - 0x01, - 0xBF, - 0x04, - 0xA1, - 0x01, - 0x7E, - 0x09, - 0xA1, - 0x04, - 0x7E, - 0x00, - 0x0D, - 0x7F, - 0x7D, - 0x7F, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x00, - 0x0A, - 0x44, - 0x01, - 0x7F, - 0x06, - 0x44, - 0x00, - 0x00, - 0x06, - 0xF7, - 0x01, - 0xF8, - 0x05, - 0xF7, - 0x01, - 0xF1, - 0x01, - 0xF7, - 0x06, - 0xF0, - 0x00, - 0x07, - 0xF5, - 0xF0, - 0xF7, - 0xF8, - 0xF9, - 0xF2, - 0xF3, - 0x00, - 0x06, - 0xF2, - 0x07, - 0xF3, - 0x0F, - 0xF2, - 0x00, - 0x04, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0x07, - 0xF9, - 0x00, - 0x09, - 0xF2, - 0xF2, - 0xF2, - 0xF9, - 0xF8, - 0xF7, - 0xF1, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x08, - 0xEE, - 0xEE, - 0xEE, - 0xEF, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0x0D, - 0xEA, - 0x01, - 0xD5, - 0x0C, - 0xEA, - 0x00, - 0x04, - 0xEB, - 0xEB, - 0xEB, - 0xE1, - 0x05, - 0xE9, - 0x07, - 0xDF, - 0x00, - 0x07, - 0xEC, - 0xEC, - 0xDD, - 0xDD, - 0xDD, - 0xE7, - 0xE7, - 0x00, - 0x08, - 0xEC, - 0x01, - 0xDD, - 0x01, - 0xEC, - 0x04, - 0xDD, - 0x08, - 0xE8, - 0x00, - 0x05, - 0xDE, - 0xDE, - 0xE8, - 0xE8, - 0xE8, - 0x00, - 0x11, - 0xDE, - 0x06, - 0xD8, - 0x00, - 0x03, - 0xBD, - 0xD8, - 0xBD, - 0x00, - 0x05, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0xBD, - 0xD8, - 0xBD, - 0x05, - 0xD9, - 0x00, - 0x04, - 0xBD, - 0xBD, - 0xD9, - 0xD9, - 0x1E, - 0xBD, - 0x00, - 0x03, - 0xA0, - 0xBD, - 0xA0, - 0x00, - 0x06, - 0xBD, - 0x00, - 0x07, - 0xA0, - 0xBD, - 0xBD, - 0xA0, - 0xBE, - 0xA1, - 0xDA, - 0x00, - 0x07, - 0xBF, - 0x00, - 0x09, - 0xBE, - 0xDA, - 0xBE, - 0xBF, - 0xBE, - 0xA1, - 0xA1, - 0xA1, - 0xBE, - 0x00, - 0x06, - 0xA1, - 0x00, - 0x04, - 0xBE, - 0x7E, - 0xDA, - 0xDA, - 0x08, - 0xA1, - 0x00, - 0x05, - 0x7E, - 0x80, - 0x7E, - 0x7F, - 0x7F, - 0x00, - 0x06, - 0x44, - 0x01, - 0x7F, - 0x05, - 0x44, - 0x01, - 0x7F, - 0x0F, - 0x44, - 0x00, - 0x00, - 0x07, - 0xF7, - 0x00, - 0x07, - 0xF1, - 0xF0, - 0xF0, - 0xF0, - 0xF1, - 0xF7, - 0xF1, - 0x00, - 0x06, - 0xF0, - 0x00, - 0x05, - 0xF5, - 0xF0, - 0xF0, - 0xF8, - 0xF8, - 0x00, - 0x09, - 0xF2, - 0x04, - 0xF3, - 0x00, - 0x05, - 0xF2, - 0xF2, - 0xF2, - 0xF3, - 0xF3, - 0x00, - 0x07, - 0xF2, - 0x00, - 0x0A, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0x07, - 0xF9, - 0x00, - 0x07, - 0xF2, - 0xF9, - 0xF9, - 0xF8, - 0xF0, - 0xF0, - 0xEF, - 0x00, - 0x08, - 0xEE, - 0x00, - 0x04, - 0xEF, - 0xEF, - 0xEF, - 0xEE, - 0x0C, - 0xEA, - 0x00, - 0x05, - 0xD5, - 0xEA, - 0xD5, - 0xEA, - 0xD5, - 0x00, - 0x0A, - 0xEA, - 0x01, - 0xEB, - 0x01, - 0xEB, - 0x07, - 0xE9, - 0x05, - 0xDF, - 0x00, - 0x11, - 0xEC, - 0xDF, - 0xEC, - 0xE7, - 0xDD, - 0xEC, - 0xDD, - 0xE7, - 0xEC, - 0xE7, - 0xEC, - 0xE7, - 0xDD, - 0xDD, - 0xE7, - 0xE7, - 0xE7, - 0x00, - 0x04, - 0xDD, - 0x05, - 0xE8, - 0x00, - 0x05, - 0xDC, - 0xE8, - 0xDC, - 0xE8, - 0xDC, - 0x00, - 0x16, - 0xDE, - 0x07, - 0xD8, - 0x00, - 0x03, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x04, - 0xD8, - 0x07, - 0xBD, - 0x01, - 0xD8, - 0x2D, - 0xBD, - 0x00, - 0x14, - 0xA0, - 0xA0, - 0xA0, - 0xBE, - 0xDA, - 0xBF, - 0xBF, - 0xBF, - 0xDA, - 0xBF, - 0xBF, - 0xDA, - 0xBF, - 0xDA, - 0xBF, - 0xDA, - 0xDA, - 0xBF, - 0xA1, - 0xBE, - 0x08, - 0xA1, - 0x00, - 0x04, - 0x7E, - 0x7E, - 0xDA, - 0xBE, - 0x08, - 0xA1, - 0x00, - 0x08, - 0x7E, - 0x7E, - 0x7E, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x7F, - 0x06, - 0x44, - 0x00, - 0x03, - 0x7F, - 0x44, - 0x7F, - 0x00, - 0x10, - 0x44, - 0x00, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x08, - 0xF1, - 0xF7, - 0xF7, - 0xF0, - 0xF0, - 0xF1, - 0xF7, - 0xF7, - 0x04, - 0xF0, - 0x01, - 0xF7, - 0x05, - 0xF0, - 0x00, - 0x03, - 0xF7, - 0xF8, - 0xF9, - 0x00, - 0x19, - 0xF2, - 0x00, - 0x08, - 0xF9, - 0xF2, - 0xF9, - 0xF9, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0x06, - 0xF9, - 0x00, - 0x0A, - 0xF2, - 0xF9, - 0xF2, - 0xF2, - 0xF8, - 0xF7, - 0xF0, - 0xF0, - 0xEF, - 0xEF, - 0x06, - 0xEE, - 0x00, - 0x05, - 0xEF, - 0xEA, - 0xEF, - 0xEA, - 0xEE, - 0x00, - 0x19, - 0xEA, - 0x00, - 0x04, - 0xEB, - 0xEB, - 0xEB, - 0xE1, - 0x04, - 0xE9, - 0x00, - 0x06, - 0xDF, - 0xDF, - 0xDF, - 0xE2, - 0xDF, - 0xEC, - 0x04, - 0xDF, - 0x00, - 0x05, - 0xE7, - 0xEC, - 0xDD, - 0xDD, - 0xEC, - 0x00, - 0x04, - 0xE7, - 0x00, - 0x0A, - 0xEC, - 0xDD, - 0xEC, - 0xDD, - 0xDD, - 0xDD, - 0xEC, - 0xDD, - 0xDD, - 0xDD, - 0x05, - 0xE8, - 0x06, - 0xDC, - 0x01, - 0xE8, - 0x14, - 0xDE, - 0x09, - 0xD8, - 0x05, - 0xBD, - 0x05, - 0xD8, - 0x31, - 0xBD, - 0x00, - 0x1D, - 0xE3, - 0xA0, - 0xBE, - 0xBF, - 0xBE, - 0xBF, - 0xDA, - 0xBF, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xDA, - 0xBE, - 0xBF, - 0xBE, - 0xA1, - 0xA1, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xA1, - 0xBE, - 0x7E, - 0x00, - 0x0C, - 0xA1, - 0x01, - 0x7E, - 0x01, - 0x7F, - 0x04, - 0x44, - 0x00, - 0x05, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x7F, - 0x00, - 0x14, - 0x44, - 0x00, - 0x00, - 0x08, - 0xF7, - 0x00, - 0x05, - 0xF0, - 0xF7, - 0xF7, - 0xF1, - 0xF1, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x10, - 0xF1, - 0xF7, - 0xF7, - 0xF5, - 0xF5, - 0xF5, - 0xF1, - 0xF7, - 0xF8, - 0xF9, - 0xF2, - 0xF2, - 0xF2, - 0xF9, - 0xF9, - 0xF9, - 0x11, - 0xF2, - 0x00, - 0x08, - 0xF9, - 0xF2, - 0xF9, - 0xF9, - 0xF9, - 0xF2, - 0xF9, - 0xF2, - 0x07, - 0xF9, - 0x00, - 0x06, - 0xF2, - 0xF2, - 0xF9, - 0xF9, - 0xF8, - 0xF0, - 0x04, - 0xEF, - 0x06, - 0xEE, - 0x00, - 0x05, - 0xEA, - 0xEF, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x16, - 0xEA, - 0x05, - 0xEB, - 0x04, - 0xE9, - 0x07, - 0xDF, - 0x00, - 0x0C, - 0xEC, - 0xEC, - 0xEC, - 0xE7, - 0xEC, - 0xEC, - 0xEC, - 0xE7, - 0xE8, - 0xE8, - 0xEC, - 0xEC, - 0x0C, - 0xDD, - 0x05, - 0xE8, - 0x06, - 0xDC, - 0x01, - 0xE8, - 0x0C, - 0xDE, - 0x01, - 0xD3, - 0x01, - 0xD3, - 0x05, - 0xD0, - 0x01, - 0xDE, - 0x0D, - 0xD8, - 0x05, - 0xBD, - 0x04, - 0xD8, - 0x2C, - 0xBD, - 0x00, - 0x0A, - 0xA0, - 0xA0, - 0xA0, - 0xBE, - 0xBE, - 0xBF, - 0xBF, - 0xBE, - 0xBF, - 0xDA, - 0x07, - 0xBF, - 0x00, - 0x0C, - 0xDA, - 0xBF, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xA1, - 0xBE, - 0xA1, - 0x0B, - 0x7E, - 0x00, - 0x05, - 0xA1, - 0xA1, - 0xA3, - 0x7E, - 0x7E, - 0x00, - 0x06, - 0x44, - 0x00, - 0x08, - 0x5B, - 0x7F, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x0F, - 0x44, - 0x00, - 0x00, - 0x07, - 0xF7, - 0x00, - 0x06, - 0xF0, - 0xF7, - 0xF0, - 0xF1, - 0xF7, - 0xF7, - 0x04, - 0xF0, - 0x00, - 0x0D, - 0xF7, - 0xF0, - 0xF1, - 0xF1, - 0xF5, - 0xF5, - 0xF5, - 0xF0, - 0xF8, - 0xF8, - 0xF9, - 0xF2, - 0xF9, - 0x00, - 0x08, - 0xF2, - 0x00, - 0x03, - 0xF9, - 0xF2, - 0xF9, - 0x00, - 0x0A, - 0xF2, - 0x05, - 0xF9, - 0x00, - 0x03, - 0xF2, - 0xF9, - 0xF2, - 0x00, - 0x09, - 0xF9, - 0x00, - 0x03, - 0xF8, - 0xF7, - 0xF0, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x09, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0xEF, - 0x00, - 0x14, - 0xEA, - 0x00, - 0x03, - 0xEB, - 0xEA, - 0xEA, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x04, - 0xE1, - 0xE9, - 0xE9, - 0xE9, - 0x08, - 0xDF, - 0x00, - 0x0E, - 0xEC, - 0xEC, - 0xE7, - 0xEC, - 0xEC, - 0xEC, - 0xE8, - 0xEC, - 0xE8, - 0xEC, - 0xE8, - 0xE8, - 0xEC, - 0xE8, - 0x04, - 0xDD, - 0x00, - 0x03, - 0xE8, - 0xE8, - 0xE8, - 0x00, - 0x04, - 0xDD, - 0x08, - 0xE8, - 0x00, - 0x04, - 0xDE, - 0xE8, - 0xE8, - 0xE8, - 0x0B, - 0xDE, - 0x00, - 0x03, - 0xD3, - 0xD0, - 0xD3, - 0x00, - 0x05, - 0xD0, - 0x1D, - 0xD8, - 0x00, - 0x0D, - 0xBD, - 0xD8, - 0xD8, - 0xD8, - 0xBD, - 0xD8, - 0xD8, - 0xBD, - 0xD8, - 0xBD, - 0xBD, - 0xD8, - 0xD8, - 0x00, - 0x19, - 0xBD, - 0x00, - 0x03, - 0xA0, - 0xA0, - 0xA0, - 0x00, - 0x0F, - 0xBE, - 0x00, - 0x0B, - 0xDA, - 0xBE, - 0xBF, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0x00, - 0x04, - 0x7E, - 0x04, - 0xA0, - 0x06, - 0x7E, - 0x00, - 0x12, - 0x80, - 0x7E, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x7F, - 0x44, - 0x7F, - 0x5B, - 0x5B, - 0x44, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x5B, - 0x5B, - 0x0D, - 0x44, - 0x00, - 0x00, - 0x05, - 0xF7, - 0x04, - 0xF0, - 0x00, - 0x04, - 0xF7, - 0xF7, - 0xF7, - 0xF1, - 0x04, - 0xF0, - 0x00, - 0x0B, - 0xF1, - 0xF1, - 0xF7, - 0xF1, - 0xF5, - 0xF5, - 0xEE, - 0xF5, - 0xF0, - 0xF8, - 0xF8, - 0x00, - 0x04, - 0xF2, - 0x05, - 0xF9, - 0x00, - 0x04, - 0xF2, - 0xF2, - 0xF9, - 0xF9, - 0x06, - 0xF2, - 0x00, - 0x06, - 0xF9, - 0xF2, - 0xF2, - 0xF2, - 0xF9, - 0xF2, - 0x0C, - 0xF9, - 0x00, - 0x12, - 0xF2, - 0xF9, - 0xF8, - 0xF7, - 0xF0, - 0xEF, - 0xEA, - 0xEF, - 0xEF, - 0xEF, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0x13, - 0xEA, - 0x04, - 0xEB, - 0x00, - 0x03, - 0xE9, - 0xEB, - 0xE1, - 0x00, - 0x04, - 0xE9, - 0x04, - 0xDF, - 0x05, - 0xE7, - 0x00, - 0x09, - 0xEC, - 0xE7, - 0xEC, - 0xEC, - 0xE8, - 0xE7, - 0xE8, - 0xEC, - 0xEC, - 0x00, - 0x07, - 0xE8, - 0x00, - 0x08, - 0xDD, - 0xDD, - 0xDD, - 0xE8, - 0xE8, - 0xE8, - 0xDD, - 0xDD, - 0x07, - 0xE8, - 0x04, - 0xDE, - 0x00, - 0x03, - 0xE6, - 0xDE, - 0xE6, - 0x00, - 0x0B, - 0xDE, - 0x01, - 0xD3, - 0x01, - 0xD3, - 0x06, - 0xD0, - 0x1D, - 0xD8, - 0x04, - 0xBD, - 0x00, - 0x0A, - 0xD8, - 0xBD, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xD8, - 0xBD, - 0xBD, - 0xD8, - 0x18, - 0xBD, - 0x00, - 0x06, - 0xA0, - 0xA0, - 0xBE, - 0xBE, - 0xBE, - 0xA1, - 0x0D, - 0xBE, - 0x00, - 0x0E, - 0xBF, - 0xBF, - 0xBE, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0x7E, - 0xBE, - 0x7E, - 0xBE, - 0x0C, - 0x7E, - 0x00, - 0x0F, - 0x7F, - 0x7D, - 0x44, - 0x7F, - 0x44, - 0x44, - 0x44, - 0x5B, - 0x7F, - 0x5B, - 0x44, - 0x5B, - 0x44, - 0x7F, - 0x5B, - 0x00, - 0x0E, - 0x44, - 0x00, - 0x00, - 0x00, - 0x03, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x06, - 0xF0, - 0x00, - 0x03, - 0xF7, - 0xF1, - 0xF1, - 0x00, - 0x05, - 0xF0, - 0x05, - 0xF1, - 0x00, - 0x07, - 0xF5, - 0xEE, - 0xEE, - 0xF5, - 0xF1, - 0xF8, - 0xF8, - 0x00, - 0x04, - 0xF2, - 0x04, - 0xF9, - 0x00, - 0x09, - 0xF2, - 0xF2, - 0xF9, - 0xF9, - 0xF2, - 0xF9, - 0xF9, - 0xF2, - 0xF9, - 0x00, - 0x05, - 0xF2, - 0x0C, - 0xF9, - 0x00, - 0x06, - 0xF2, - 0xF2, - 0xF9, - 0xF9, - 0xF8, - 0xF0, - 0x08, - 0xEF, - 0x00, - 0x04, - 0xEE, - 0xEF, - 0xEA, - 0xEF, - 0x12, - 0xEA, - 0x04, - 0xEB, - 0x00, - 0x08, - 0xD5, - 0xE1, - 0xE1, - 0xE1, - 0xD7, - 0xE9, - 0xE9, - 0xE9, - 0x04, - 0xDF, - 0x00, - 0x10, - 0xEC, - 0xDF, - 0xEC, - 0xEC, - 0xE7, - 0xEC, - 0xE7, - 0xEC, - 0xE7, - 0xE7, - 0xE8, - 0xE7, - 0xE8, - 0xE8, - 0xE8, - 0xEC, - 0x16, - 0xE8, - 0x13, - 0xDE, - 0x0E, - 0xD0, - 0x01, - 0xD2, - 0x13, - 0xD8, - 0x00, - 0x12, - 0xD4, - 0xD8, - 0xD4, - 0xD8, - 0xD4, - 0x9F, - 0xBD, - 0x9F, - 0x9F, - 0xBD, - 0x9F, - 0xD8, - 0xD8, - 0xD8, - 0x9F, - 0x9F, - 0xBD, - 0xD8, - 0x14, - 0xBD, - 0x00, - 0x0C, - 0x7D, - 0xBD, - 0xA0, - 0x7E, - 0xBE, - 0xBE, - 0xA1, - 0xBE, - 0xBE, - 0xA0, - 0xBE, - 0xB9, - 0x0B, - 0xBE, - 0x00, - 0x07, - 0xA1, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0xA1, - 0xBE, - 0x00, - 0x05, - 0x7E, - 0x04, - 0xA0, - 0x07, - 0x7E, - 0x00, - 0x0E, - 0x80, - 0x7F, - 0x7F, - 0x44, - 0x5B, - 0x44, - 0x7F, - 0x44, - 0x5B, - 0x5B, - 0x5B, - 0x7F, - 0x7F, - 0x7F, - 0x04, - 0x44, - 0x01, - 0x7D, - 0x0B, - 0x44, - 0x00, - 0x00, - 0x04, - 0xF7, - 0x06, - 0xF0, - 0x01, - 0xF1, - 0x01, - 0xF7, - 0x04, - 0xF0, - 0x00, - 0x13, - 0xF1, - 0xF1, - 0xF5, - 0xF5, - 0xF1, - 0xF1, - 0xF1, - 0xF5, - 0xEE, - 0xEE, - 0xF1, - 0xF1, - 0xF8, - 0xF9, - 0xF9, - 0xF9, - 0xF2, - 0xF9, - 0xF8, - 0x00, - 0x0A, - 0xF9, - 0x00, - 0x03, - 0xF2, - 0xF9, - 0xF2, - 0x00, - 0x0B, - 0xF9, - 0x01, - 0xF8, - 0x06, - 0xF9, - 0x01, - 0xF8, - 0x01, - 0xF7, - 0x04, - 0xEF, - 0x01, - 0xEA, - 0x04, - 0xEF, - 0x00, - 0x03, - 0xEE, - 0xEA, - 0xEE, - 0x00, - 0x0D, - 0xEA, - 0x01, - 0xD5, - 0x04, - 0xEA, - 0x05, - 0xEB, - 0x05, - 0xE9, - 0x00, - 0x0F, - 0xDF, - 0xDF, - 0xE7, - 0xDF, - 0xE7, - 0xEC, - 0xDF, - 0xEC, - 0xE7, - 0xEC, - 0xE7, - 0xEC, - 0xE8, - 0xEC, - 0xE8, - 0x00, - 0x06, - 0xDD, - 0x00, - 0x06, - 0xE8, - 0xDD, - 0xE0, - 0xE8, - 0xE8, - 0xDE, - 0x0B, - 0xE8, - 0x00, - 0x06, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0x14, - 0xDE, - 0x0E, - 0xD0, - 0x01, - 0xD2, - 0x17, - 0xD8, - 0x00, - 0x15, - 0x9F, - 0xD4, - 0xD8, - 0x9F, - 0xD4, - 0xD8, - 0x9F, - 0xD8, - 0xD8, - 0xD8, - 0xBC, - 0xBC, - 0x9F, - 0x9F, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xD8, - 0x00, - 0x05, - 0xBD, - 0x00, - 0x0C, - 0xD8, - 0xBD, - 0x9F, - 0xBD, - 0xD4, - 0xBD, - 0x9F, - 0xBD, - 0xBD, - 0xBD, - 0xA0, - 0xA0, - 0x05, - 0xBE, - 0x01, - 0xB9, - 0x04, - 0xBE, - 0x01, - 0xA0, - 0x09, - 0xBE, - 0x00, - 0x0B, - 0x7E, - 0xBE, - 0x7E, - 0xBE, - 0xA1, - 0xA1, - 0xBE, - 0xA0, - 0xA0, - 0xA0, - 0x7E, - 0x00, - 0x04, - 0xA0, - 0x00, - 0x04, - 0x7E, - 0xA0, - 0x7E, - 0xA0, - 0x05, - 0x7E, - 0x00, - 0x08, - 0x7F, - 0x44, - 0x5B, - 0x5B, - 0x5B, - 0x44, - 0x5B, - 0x44, - 0x04, - 0x5B, - 0x00, - 0x07, - 0x44, - 0x44, - 0x5B, - 0x44, - 0x44, - 0x5B, - 0x5B, - 0x00, - 0x09, - 0x44, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0xF0, - 0xF7, - 0xF0, - 0xF1, - 0xF7, - 0xF1, - 0xF7, - 0xF1, - 0xF1, - 0x00, - 0x04, - 0xF0, - 0x06, - 0xF1, - 0x00, - 0x0D, - 0xF5, - 0xEE, - 0xEE, - 0xEE, - 0xF1, - 0xF8, - 0xF8, - 0xF8, - 0xF2, - 0xF9, - 0xF9, - 0xF9, - 0xF8, - 0x00, - 0x04, - 0xF9, - 0x00, - 0x03, - 0xF8, - 0xF9, - 0xF8, - 0x00, - 0x0A, - 0xF9, - 0x01, - 0xF8, - 0x0A, - 0xF9, - 0x00, - 0x0B, - 0xF8, - 0xF8, - 0xF7, - 0xEF, - 0xEE, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEE, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0x0C, - 0xEA, - 0x00, - 0x07, - 0xEB, - 0xEB, - 0xEB, - 0xD5, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x07, - 0xE9, - 0x00, - 0x11, - 0xDF, - 0xE7, - 0xE7, - 0xDF, - 0xE7, - 0xE7, - 0xEC, - 0xE7, - 0xEC, - 0xE7, - 0xEC, - 0xE8, - 0xE8, - 0xE8, - 0xEC, - 0xE8, - 0xE7, - 0x00, - 0x04, - 0xDD, - 0x00, - 0x04, - 0xE8, - 0xDD, - 0xE8, - 0xDD, - 0x07, - 0xE8, - 0x00, - 0x08, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xE8, - 0xE8, - 0x0C, - 0xDE, - 0x00, - 0x03, - 0xD3, - 0xDE, - 0xD3, - 0x00, - 0x0B, - 0xDE, - 0x08, - 0xD0, - 0x01, - 0xD2, - 0x01, - 0xD2, - 0x04, - 0xD0, - 0x01, - 0xD2, - 0x17, - 0xD8, - 0x01, - 0xBC, - 0x06, - 0x9F, - 0x00, - 0x0C, - 0xD8, - 0xD8, - 0xD8, - 0xBC, - 0xBC, - 0xBC, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0x09, - 0xBD, - 0x00, - 0x0C, - 0xD4, - 0x9F, - 0xBD, - 0x9F, - 0xBD, - 0x58, - 0x9F, - 0xBD, - 0xA0, - 0xA0, - 0xBE, - 0xA0, - 0x04, - 0xBE, - 0x00, - 0x07, - 0xA0, - 0xB9, - 0xA0, - 0xBE, - 0xBE, - 0xBE, - 0xA0, - 0x00, - 0x06, - 0xBE, - 0x00, - 0x07, - 0xA0, - 0xBE, - 0xBE, - 0x7E, - 0xBE, - 0x7E, - 0xBE, - 0x00, - 0x05, - 0x7E, - 0x05, - 0xA0, - 0x00, - 0x11, - 0x7E, - 0x7E, - 0x7F, - 0x7F, - 0x7E, - 0x7F, - 0x7E, - 0x7E, - 0x7F, - 0x44, - 0x5B, - 0x5B, - 0x44, - 0x44, - 0x44, - 0x5B, - 0x5B, - 0x00, - 0x05, - 0x44, - 0x00, - 0x07, - 0x5B, - 0x44, - 0x5B, - 0x44, - 0x44, - 0x44, - 0x5B, - 0x00, - 0x07, - 0x44, - 0x00, - 0x00, - 0x00, - 0x13, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF0, - 0xF7, - 0xF1, - 0xF7, - 0xF1, - 0xF7, - 0xF1, - 0xF1, - 0xF5, - 0xF0, - 0xF5, - 0xF5, - 0xF1, - 0x00, - 0x05, - 0xF5, - 0x00, - 0x08, - 0xEE, - 0xEE, - 0xEE, - 0xF5, - 0xF1, - 0xF7, - 0xF8, - 0xF8, - 0x06, - 0xF9, - 0x00, - 0x03, - 0xF8, - 0xF8, - 0xF8, - 0x00, - 0x04, - 0xF9, - 0x00, - 0x04, - 0xF8, - 0xF9, - 0xF8, - 0xF9, - 0x04, - 0xF8, - 0x09, - 0xF9, - 0x00, - 0x05, - 0xF8, - 0xF8, - 0xF8, - 0xF0, - 0xEF, - 0x00, - 0x05, - 0xEE, - 0x00, - 0x06, - 0xEA, - 0xEA, - 0xEA, - 0xF6, - 0xEE, - 0xF6, - 0x0D, - 0xEA, - 0x00, - 0x05, - 0xD5, - 0xEB, - 0xEB, - 0xD5, - 0xE1, - 0x00, - 0x08, - 0xE9, - 0x00, - 0x03, - 0xDF, - 0xE7, - 0xE9, - 0x00, - 0x04, - 0xE7, - 0x01, - 0xDD, - 0x04, - 0xE7, - 0x00, - 0x08, - 0xE8, - 0xDD, - 0xDD, - 0xE7, - 0xE7, - 0xDD, - 0xE7, - 0xE7, - 0x07, - 0xDD, - 0x06, - 0xE8, - 0x00, - 0x0F, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0xDB, - 0xDB, - 0xDE, - 0xDB, - 0x00, - 0x06, - 0xDE, - 0x00, - 0x03, - 0xD3, - 0xDB, - 0xD3, - 0x00, - 0x12, - 0xD0, - 0x00, - 0x03, - 0xD3, - 0xD3, - 0xD4, - 0x00, - 0x09, - 0xD8, - 0x00, - 0x0A, - 0xD2, - 0xD2, - 0xD8, - 0xD8, - 0xD8, - 0xD4, - 0xD4, - 0xBC, - 0xBC, - 0xBC, - 0x15, - 0xD8, - 0x00, - 0x12, - 0x9F, - 0xD8, - 0x9F, - 0xBD, - 0xD4, - 0x9F, - 0x9F, - 0xBD, - 0xD8, - 0xBD, - 0xBD, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xBC, - 0x04, - 0x9F, - 0x00, - 0x10, - 0xBD, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0xBE, - 0xA0, - 0xA0, - 0xBE, - 0x7E, - 0xBE, - 0x7E, - 0xBE, - 0x7E, - 0xA0, - 0xA0, - 0x08, - 0xBE, - 0x00, - 0x06, - 0xA0, - 0xBE, - 0xA0, - 0xBE, - 0xBE, - 0xA1, - 0x06, - 0xA0, - 0x00, - 0x15, - 0x7E, - 0xA0, - 0xA0, - 0x7E, - 0x7E, - 0x7E, - 0x7D, - 0xA0, - 0x7E, - 0x7E, - 0xA0, - 0x7F, - 0x7F, - 0x7D, - 0x44, - 0x5B, - 0x44, - 0x5B, - 0x44, - 0x44, - 0x44, - 0x00, - 0x06, - 0x5B, - 0x00, - 0x08, - 0x44, - 0x44, - 0x44, - 0x5B, - 0x5B, - 0x5B, - 0x44, - 0x5B, - 0x05, - 0x44, - 0x00, - 0x00, - 0x00, - 0x06, - 0xF7, - 0xF7, - 0xF0, - 0xF7, - 0xF0, - 0xF7, - 0x06, - 0xF0, - 0x06, - 0xF1, - 0x08, - 0xF5, - 0x00, - 0x07, - 0xF6, - 0xEE, - 0xEE, - 0xF5, - 0xF7, - 0xF8, - 0xF8, - 0x00, - 0x04, - 0xF9, - 0x12, - 0xF8, - 0x00, - 0x04, - 0xF9, - 0xF9, - 0xF8, - 0xF9, - 0x04, - 0xF8, - 0x00, - 0x05, - 0xF7, - 0xF5, - 0xF6, - 0xEB, - 0xF6, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x09, - 0xEB, - 0xEA, - 0xEB, - 0xEA, - 0xEB, - 0xEA, - 0xEA, - 0xEB, - 0xEB, - 0x00, - 0x06, - 0xEA, - 0x00, - 0x06, - 0xEB, - 0xEA, - 0xEB, - 0xEB, - 0xEB, - 0xD5, - 0x0A, - 0xE9, - 0x00, - 0x03, - 0xDF, - 0xDF, - 0xDF, - 0x00, - 0x04, - 0xE7, - 0x00, - 0x0F, - 0xDD, - 0xDD, - 0xE7, - 0xE7, - 0xE7, - 0xDD, - 0xDD, - 0xE8, - 0xE8, - 0xDD, - 0xDD, - 0xDD, - 0xE7, - 0xDD, - 0xE0, - 0x00, - 0x06, - 0xDD, - 0x06, - 0xE8, - 0x00, - 0x0C, - 0xDE, - 0xDE, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xDE, - 0x09, - 0xDB, - 0x00, - 0x04, - 0xD3, - 0xD3, - 0xD0, - 0xD3, - 0x10, - 0xD0, - 0x00, - 0x04, - 0xD2, - 0xD3, - 0xD3, - 0xD4, - 0x09, - 0xD8, - 0x07, - 0xD3, - 0x00, - 0x03, - 0xB7, - 0xD4, - 0xBC, - 0x00, - 0x15, - 0xD8, - 0x04, - 0x9F, - 0x00, - 0x18, - 0xD8, - 0x9F, - 0xD4, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xBD, - 0xD8, - 0xD8, - 0xBD, - 0xBD, - 0xD8, - 0x9F, - 0x9F, - 0x9F, - 0xBD, - 0x9F, - 0x9F, - 0xBD, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0x08, - 0xBE, - 0x00, - 0x04, - 0xA0, - 0xBE, - 0xA0, - 0xA0, - 0x05, - 0xBE, - 0x00, - 0x07, - 0xA0, - 0xBE, - 0xA0, - 0xA0, - 0xA0, - 0xA1, - 0xA0, - 0x00, - 0x06, - 0x7E, - 0x00, - 0x07, - 0xA0, - 0xA0, - 0xA0, - 0x7E, - 0xA0, - 0x7E, - 0xA0, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x05, - 0xA0, - 0xA0, - 0x7D, - 0x44, - 0x7D, - 0x00, - 0x09, - 0x44, - 0x00, - 0x0A, - 0x5B, - 0x5B, - 0x5B, - 0x44, - 0x44, - 0x5B, - 0x44, - 0x5B, - 0x5B, - 0x5B, - 0x05, - 0x44, - 0x00, - 0x00, - 0x00, - 0x03, - 0xF7, - 0xF0, - 0xF7, - 0x00, - 0x09, - 0xF0, - 0x05, - 0xF1, - 0x09, - 0xF5, - 0x00, - 0x0C, - 0xEE, - 0xEA, - 0xEE, - 0xEE, - 0xF1, - 0xF0, - 0xF7, - 0xF8, - 0xF8, - 0xF9, - 0xF9, - 0xF9, - 0x11, - 0xF8, - 0x01, - 0xF9, - 0x01, - 0xF9, - 0x05, - 0xF8, - 0x00, - 0x03, - 0xF0, - 0xF5, - 0xF6, - 0x00, - 0x0D, - 0xEB, - 0x01, - 0xEA, - 0x06, - 0xEB, - 0x00, - 0x03, - 0xD5, - 0xEB, - 0xD5, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x04, - 0xE1, - 0xE9, - 0xE9, - 0xE9, - 0x05, - 0xDF, - 0x00, - 0x05, - 0xE7, - 0xE7, - 0xDF, - 0xEC, - 0xDF, - 0x00, - 0x04, - 0xE7, - 0x00, - 0x09, - 0xDD, - 0xDD, - 0xE7, - 0xE7, - 0xE7, - 0xDD, - 0xDD, - 0xDD, - 0xE8, - 0x00, - 0x06, - 0xDD, - 0x04, - 0xE8, - 0x01, - 0xDD, - 0x01, - 0xDD, - 0x08, - 0xE8, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0xDB, - 0xD3, - 0x05, - 0xDE, - 0x00, - 0x0D, - 0xDB, - 0xDE, - 0xDB, - 0xE6, - 0xD3, - 0xE6, - 0xD3, - 0xDB, - 0xDB, - 0xE6, - 0xD3, - 0xD0, - 0xD3, - 0x00, - 0x0D, - 0xD0, - 0x05, - 0xCD, - 0x00, - 0x05, - 0xD3, - 0xD3, - 0xD3, - 0xD0, - 0xD0, - 0x00, - 0x05, - 0xD2, - 0x06, - 0xD3, - 0x06, - 0xD4, - 0x04, - 0xD2, - 0x11, - 0xD8, - 0x04, - 0xBC, - 0x00, - 0x14, - 0x9F, - 0x9F, - 0x9F, - 0xBC, - 0xBC, - 0xD8, - 0xD8, - 0xD8, - 0xBD, - 0xD8, - 0xBD, - 0xBD, - 0xBD, - 0x9F, - 0x9F, - 0xBD, - 0x9F, - 0x58, - 0x9F, - 0xBD, - 0x0E, - 0xA0, - 0x01, - 0xBE, - 0x01, - 0xA0, - 0x05, - 0xBE, - 0x00, - 0x07, - 0xA0, - 0xBE, - 0xA0, - 0xA0, - 0x7E, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0xA0, - 0x00, - 0x07, - 0x7E, - 0x7E, - 0xA0, - 0xA0, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x04, - 0xA0, - 0x00, - 0x0A, - 0x7F, - 0x7F, - 0x7E, - 0x44, - 0x7D, - 0x44, - 0x5B, - 0x5B, - 0x5B, - 0x44, - 0x07, - 0x5B, - 0x00, - 0x08, - 0x44, - 0x44, - 0x44, - 0x5B, - 0x5B, - 0x5B, - 0x44, - 0x5B, - 0x05, - 0x44, - 0x00, - 0x00, - 0x01, - 0xF0, - 0x01, - 0xF7, - 0x0D, - 0xF0, - 0x0B, - 0xF5, - 0x00, - 0x08, - 0xEE, - 0xF6, - 0xF6, - 0xEA, - 0xF6, - 0xEE, - 0xF0, - 0xF7, - 0x19, - 0xF8, - 0x00, - 0x05, - 0xF7, - 0xF7, - 0xF5, - 0xF6, - 0xF6, - 0x00, - 0x0A, - 0xEB, - 0x01, - 0xD5, - 0x0B, - 0xEB, - 0x09, - 0xE9, - 0x00, - 0x03, - 0xDF, - 0xDF, - 0xDF, - 0x00, - 0x06, - 0xE7, - 0x00, - 0x04, - 0xDF, - 0xE7, - 0xE7, - 0xE7, - 0x04, - 0xDD, - 0x00, - 0x05, - 0xE7, - 0xE8, - 0xE7, - 0xE8, - 0xDD, - 0x00, - 0x04, - 0xE8, - 0x01, - 0xDD, - 0x01, - 0xDD, - 0x12, - 0xE8, - 0x00, - 0x06, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0xDB, - 0xDE, - 0x04, - 0xDB, - 0x08, - 0xD3, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD3, - 0x00, - 0x0C, - 0xD0, - 0x05, - 0xCD, - 0x05, - 0xD0, - 0x05, - 0xD3, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xD3, - 0xD3, - 0xD4, - 0xD4, - 0xB7, - 0x00, - 0x0A, - 0xD3, - 0x00, - 0x03, - 0xD4, - 0xD4, - 0xBC, - 0x00, - 0x06, - 0xD4, - 0x05, - 0xD8, - 0x05, - 0xD4, - 0x04, - 0x9F, - 0x01, - 0xBC, - 0x04, - 0x9F, - 0x00, - 0x0B, - 0xD8, - 0x9F, - 0xD8, - 0x9F, - 0xD8, - 0x9F, - 0x9F, - 0x9F, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x0C, - 0xA0, - 0x00, - 0x0F, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0x7E, - 0x00, - 0x0A, - 0xA0, - 0x00, - 0x0B, - 0x7D, - 0xA0, - 0xA0, - 0x7D, - 0xA0, - 0x7F, - 0xA0, - 0x7E, - 0x7F, - 0x7D, - 0x7D, - 0x00, - 0x08, - 0x5B, - 0x05, - 0x44, - 0x01, - 0x5B, - 0x01, - 0x44, - 0x05, - 0x5B, - 0x05, - 0x44, - 0x00, - 0x00, - 0x0C, - 0xF0, - 0x05, - 0xF5, - 0x01, - 0xEE, - 0x07, - 0xF5, - 0x00, - 0x0B, - 0xF6, - 0xEE, - 0xF6, - 0xEA, - 0xF6, - 0xEB, - 0xF6, - 0xEA, - 0xF5, - 0xF0, - 0xF7, - 0x00, - 0x14, - 0xF8, - 0x00, - 0x11, - 0xF7, - 0xF7, - 0xF1, - 0xF1, - 0xF5, - 0xE4, - 0xEB, - 0xED, - 0xED, - 0xEB, - 0xED, - 0xEB, - 0xEB, - 0xED, - 0xEB, - 0xEB, - 0xD5, - 0x00, - 0x04, - 0xEB, - 0x01, - 0xD5, - 0x01, - 0xD5, - 0x0D, - 0xE9, - 0x06, - 0xDF, - 0x0E, - 0xE7, - 0x00, - 0x05, - 0xDD, - 0xDD, - 0xDD, - 0xE8, - 0xE8, - 0x00, - 0x04, - 0xDD, - 0x00, - 0x04, - 0xE8, - 0xDD, - 0xDC, - 0xDC, - 0x0B, - 0xE8, - 0x04, - 0xDE, - 0x01, - 0xE6, - 0x07, - 0xDB, - 0x00, - 0x03, - 0xDE, - 0xDB, - 0xDE, - 0x00, - 0x08, - 0xD0, - 0x01, - 0xD3, - 0x0E, - 0xD0, - 0x05, - 0xCD, - 0x05, - 0xD0, - 0x09, - 0xCD, - 0x00, - 0x05, - 0xD3, - 0xD3, - 0xD4, - 0xD4, - 0xD4, - 0x00, - 0x0A, - 0xD3, - 0x01, - 0xD4, - 0x01, - 0xD4, - 0x07, - 0xBC, - 0x05, - 0xD8, - 0x05, - 0xBC, - 0x00, - 0x09, - 0x9F, - 0x9F, - 0x9F, - 0xD4, - 0xBD, - 0xBC, - 0xBC, - 0xBC, - 0xBD, - 0x00, - 0x06, - 0x9F, - 0x00, - 0x04, - 0xBD, - 0x9F, - 0xBD, - 0xBD, - 0x14, - 0xA0, - 0x00, - 0x08, - 0xBE, - 0xA0, - 0xBE, - 0xA0, - 0xA0, - 0xBE, - 0x7E, - 0xBE, - 0x0C, - 0xA0, - 0x00, - 0x09, - 0x7D, - 0x7D, - 0xA0, - 0x7F, - 0xA0, - 0x7E, - 0x7D, - 0x7D, - 0x44, - 0x00, - 0x08, - 0x5B, - 0x01, - 0x44, - 0x0B, - 0x5B, - 0x05, - 0x44, - 0x00, - 0x00, - 0x0A, - 0xF0, - 0x07, - 0xF5, - 0x06, - 0xEE, - 0x00, - 0x10, - 0xF6, - 0xEE, - 0xEE, - 0xF6, - 0xEA, - 0xF6, - 0xEA, - 0xEA, - 0xEB, - 0xF6, - 0xF6, - 0xF6, - 0xF5, - 0xF0, - 0xF1, - 0xF7, - 0x0F, - 0xF8, - 0x00, - 0x13, - 0xF7, - 0xF7, - 0xF1, - 0xF1, - 0xF5, - 0xE4, - 0xEB, - 0xEB, - 0xEB, - 0xE9, - 0xE9, - 0xED, - 0xE1, - 0xED, - 0xED, - 0xE1, - 0xEB, - 0xE9, - 0xE1, - 0x00, - 0x0D, - 0xE9, - 0x00, - 0x05, - 0xE2, - 0xDF, - 0xE2, - 0xDF, - 0xE2, - 0x00, - 0x05, - 0xDF, - 0x0C, - 0xE7, - 0x04, - 0xDD, - 0x00, - 0x04, - 0xE8, - 0xDD, - 0xDD, - 0xE8, - 0x06, - 0xDD, - 0x01, - 0xE6, - 0x01, - 0xE6, - 0x0B, - 0xE8, - 0x00, - 0x10, - 0xDE, - 0xDB, - 0xE6, - 0xE6, - 0xDE, - 0xDE, - 0xDE, - 0xDB, - 0xD3, - 0xD3, - 0xD3, - 0xE6, - 0xD3, - 0xDB, - 0xDB, - 0xDB, - 0x09, - 0xD0, - 0x13, - 0xCD, - 0x04, - 0xCC, - 0x0B, - 0xCD, - 0x00, - 0x09, - 0xD3, - 0xD3, - 0xD4, - 0xD3, - 0xD4, - 0xD4, - 0xD4, - 0xD3, - 0xD3, - 0x00, - 0x05, - 0xD4, - 0x01, - 0xBB, - 0x01, - 0xBB, - 0x07, - 0xD4, - 0x05, - 0xBC, - 0x06, - 0xD4, - 0x0B, - 0x9F, - 0x00, - 0x07, - 0xBC, - 0xBD, - 0x9F, - 0x9F, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x04, - 0xA0, - 0x01, - 0xD9, - 0x13, - 0xA0, - 0x00, - 0x04, - 0xBE, - 0x78, - 0xA0, - 0xBE, - 0x06, - 0xA0, - 0x00, - 0x09, - 0x7D, - 0xA0, - 0x7D, - 0xA0, - 0x7D, - 0x7D, - 0xA0, - 0xA0, - 0xA0, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x06, - 0xA0, - 0x7D, - 0x5B, - 0x5B, - 0x5B, - 0x5A, - 0x04, - 0x5B, - 0x05, - 0x44, - 0x07, - 0x5B, - 0x00, - 0x05, - 0x44, - 0x44, - 0x5B, - 0x44, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xF0, - 0x00, - 0x05, - 0xF5, - 0xF5, - 0xEF, - 0xF5, - 0xF5, - 0x00, - 0x09, - 0xEE, - 0x00, - 0x06, - 0xF6, - 0xEA, - 0xF6, - 0xF6, - 0xF6, - 0xEA, - 0x07, - 0xF6, - 0x00, - 0x05, - 0xF5, - 0xF1, - 0xF0, - 0xF7, - 0xF7, - 0x00, - 0x0A, - 0xF8, - 0x00, - 0x07, - 0xF7, - 0xF7, - 0xF1, - 0xF1, - 0xEE, - 0xE4, - 0xEB, - 0x00, - 0x06, - 0xE1, - 0x00, - 0x07, - 0xED, - 0xED, - 0xE9, - 0xE9, - 0xE9, - 0xE1, - 0xE1, - 0x00, - 0x07, - 0xE9, - 0x0E, - 0xDF, - 0x11, - 0xE7, - 0x00, - 0x08, - 0xDD, - 0xDD, - 0xDD, - 0xE8, - 0xE8, - 0xE8, - 0xDD, - 0xDD, - 0x04, - 0xDC, - 0x05, - 0xE6, - 0x08, - 0xE8, - 0x01, - 0xDE, - 0x01, - 0xDE, - 0x06, - 0xDB, - 0x00, - 0x06, - 0xD0, - 0xD0, - 0xD0, - 0xD3, - 0xDB, - 0xD3, - 0x04, - 0xD0, - 0x07, - 0xCC, - 0x13, - 0xCD, - 0x04, - 0xB7, - 0x0B, - 0xCD, - 0x00, - 0x09, - 0xCE, - 0xCE, - 0xCD, - 0xCE, - 0xCE, - 0xD4, - 0xD4, - 0xD3, - 0xD3, - 0x00, - 0x05, - 0xD4, - 0x07, - 0xBB, - 0x0E, - 0xD4, - 0x0D, - 0x9F, - 0x00, - 0x04, - 0xD4, - 0xBC, - 0xBD, - 0xBD, - 0x0D, - 0xA0, - 0x00, - 0x0D, - 0xBD, - 0xA0, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0xD9, - 0xBE, - 0x00, - 0x0D, - 0xA0, - 0x01, - 0x7D, - 0x07, - 0xA0, - 0x00, - 0x06, - 0x7F, - 0x7D, - 0x5B, - 0x5B, - 0x5A, - 0x5A, - 0x15, - 0x5B, - 0x00, - 0x00, - 0x08, - 0xF0, - 0x04, - 0xF5, - 0x00, - 0x03, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x0A, - 0xEE, - 0x08, - 0xF6, - 0x00, - 0x0A, - 0xEB, - 0xEB, - 0xEB, - 0xF6, - 0xE4, - 0xF6, - 0xF5, - 0xF5, - 0xF0, - 0xF0, - 0x04, - 0xF7, - 0x00, - 0x0C, - 0xF1, - 0xF7, - 0xF0, - 0xF0, - 0xF1, - 0xF1, - 0xF1, - 0xE4, - 0xE4, - 0xEB, - 0xE1, - 0xE1, - 0x12, - 0xE9, - 0x0C, - 0xDF, - 0x00, - 0x03, - 0xEC, - 0xDF, - 0xDF, - 0x00, - 0x12, - 0xE7, - 0x07, - 0xDD, - 0x00, - 0x03, - 0xDC, - 0xDC, - 0xDC, - 0x00, - 0x09, - 0xE6, - 0x05, - 0xE8, - 0x00, - 0x03, - 0xDE, - 0xDE, - 0xDB, - 0x00, - 0x0A, - 0xD0, - 0x00, - 0x06, - 0xD3, - 0xD0, - 0xD3, - 0xD0, - 0xD0, - 0xD0, - 0x07, - 0xCC, - 0x16, - 0xCD, - 0x01, - 0xB7, - 0x06, - 0xCD, - 0x01, - 0xD3, - 0x01, - 0xD3, - 0x05, - 0xCD, - 0x00, - 0x07, - 0xCE, - 0xCE, - 0xCE, - 0xD4, - 0xD4, - 0xD3, - 0xD3, - 0x00, - 0x05, - 0xD4, - 0x07, - 0xBB, - 0x00, - 0x03, - 0xD4, - 0xD4, - 0xBB, - 0x00, - 0x0B, - 0xD4, - 0x06, - 0x9F, - 0x01, - 0xD4, - 0x05, - 0x9F, - 0x00, - 0x0A, - 0xD4, - 0x9F, - 0x9F, - 0xBD, - 0xBD, - 0xA0, - 0xA0, - 0xD9, - 0xD9, - 0xD9, - 0x07, - 0xA0, - 0x00, - 0x03, - 0xBD, - 0xA0, - 0xBD, - 0x00, - 0x13, - 0xA0, - 0x01, - 0xBD, - 0x04, - 0xA0, - 0x01, - 0x7D, - 0x07, - 0xA0, - 0x00, - 0x08, - 0x7D, - 0x7D, - 0x5B, - 0x5B, - 0x5A, - 0x5A, - 0x5B, - 0x5A, - 0x13, - 0x5B, - 0x00, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x06, - 0xF5, - 0xF5, - 0xF5, - 0xEF, - 0xEF, - 0xEF, - 0x0B, - 0xEE, - 0x09, - 0xF6, - 0x00, - 0x1A, - 0xEB, - 0xF6, - 0xF6, - 0xEB, - 0xF6, - 0xF6, - 0xE4, - 0xF6, - 0xF6, - 0xF6, - 0xF5, - 0xF6, - 0xF5, - 0xF6, - 0xF6, - 0xF5, - 0xF6, - 0xF6, - 0xE4, - 0xE4, - 0xE4, - 0xEB, - 0xEB, - 0xE1, - 0xE9, - 0xE1, - 0x06, - 0xE9, - 0x04, - 0xD7, - 0x07, - 0xE9, - 0x0F, - 0xDF, - 0x0E, - 0xE7, - 0x05, - 0xDD, - 0x00, - 0x07, - 0xDC, - 0xDC, - 0xDC, - 0xDD, - 0xDD, - 0xE8, - 0xE8, - 0x00, - 0x0D, - 0xE6, - 0x00, - 0x06, - 0xDE, - 0xE6, - 0xDE, - 0xE6, - 0xDE, - 0xDB, - 0x0A, - 0xD0, - 0x00, - 0x05, - 0xCC, - 0xCC, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x07, - 0xCC, - 0x1E, - 0xCD, - 0x08, - 0xD3, - 0x00, - 0x05, - 0xCE, - 0xCE, - 0xCE, - 0xD4, - 0xCE, - 0x00, - 0x04, - 0xD4, - 0x0A, - 0xBB, - 0x01, - 0xD4, - 0x01, - 0xD4, - 0x05, - 0xBB, - 0x09, - 0xD4, - 0x00, - 0x17, - 0x9F, - 0xD4, - 0x7C, - 0xD4, - 0x7C, - 0xD4, - 0x7C, - 0xD4, - 0x7C, - 0xD4, - 0x9F, - 0xD4, - 0x9F, - 0xBD, - 0xBD, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0x00, - 0x05, - 0xA0, - 0x00, - 0x03, - 0xBD, - 0xA0, - 0xBD, - 0x00, - 0x0F, - 0xA0, - 0x00, - 0x05, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0xA0, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0A, - 0xA0, - 0xA0, - 0x7D, - 0xA0, - 0x7D, - 0x7D, - 0xA0, - 0x7D, - 0x7D, - 0x5B, - 0x04, - 0x5A, - 0x00, - 0x04, - 0x5B, - 0x5A, - 0x5B, - 0x5A, - 0x10, - 0x5B, - 0x00, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x03, - 0xF5, - 0xF5, - 0xF5, - 0x00, - 0x0C, - 0xEE, - 0x0A, - 0xF6, - 0x00, - 0x0A, - 0xEB, - 0xF6, - 0xEB, - 0xEB, - 0xF6, - 0xEB, - 0xF6, - 0xEB, - 0xEB, - 0xED, - 0x09, - 0xEB, - 0x01, - 0xED, - 0x01, - 0xED, - 0x05, - 0xE9, - 0x01, - 0xE1, - 0x01, - 0xE1, - 0x05, - 0xE9, - 0x04, - 0xD7, - 0x00, - 0x05, - 0xE9, - 0xE9, - 0xE9, - 0xDF, - 0xE9, - 0x00, - 0x0F, - 0xDF, - 0x10, - 0xE7, - 0x05, - 0xDD, - 0x05, - 0xDC, - 0x0F, - 0xE6, - 0x04, - 0xDE, - 0x01, - 0xDB, - 0x01, - 0xDB, - 0x0A, - 0xD0, - 0x0C, - 0xCC, - 0x15, - 0xCD, - 0x01, - 0xCE, - 0x08, - 0xCD, - 0x00, - 0x03, - 0xD3, - 0xD3, - 0xD3, - 0x00, - 0x05, - 0xD4, - 0x00, - 0x04, - 0xCE, - 0xCE, - 0xD4, - 0xCE, - 0x05, - 0xD4, - 0x0A, - 0xBB, - 0x01, - 0xD4, - 0x01, - 0xD4, - 0x05, - 0xBB, - 0x0A, - 0xD4, - 0x00, - 0x21, - 0x9F, - 0xD4, - 0x9F, - 0xD4, - 0x9F, - 0xD4, - 0x9F, - 0xD4, - 0x9F, - 0xD4, - 0xBB, - 0x9F, - 0xBD, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0xBD, - 0xA0, - 0xBD, - 0xA0, - 0xA0, - 0xA0, - 0x7D, - 0x00, - 0x07, - 0xA0, - 0x01, - 0x7D, - 0x04, - 0xA0, - 0x04, - 0x7D, - 0x0A, - 0xA0, - 0x04, - 0x7D, - 0x01, - 0x5B, - 0x07, - 0x5A, - 0x01, - 0x5B, - 0x01, - 0x5A, - 0x0F, - 0x5B, - 0x00, - 0x00, - 0x06, - 0xF0, - 0x01, - 0xF5, - 0x01, - 0xF5, - 0x11, - 0xEE, - 0x00, - 0x06, - 0xF6, - 0xEE, - 0xF6, - 0xF6, - 0xF6, - 0xE4, - 0x05, - 0xF6, - 0x00, - 0x0E, - 0xEB, - 0xF6, - 0xEB, - 0xED, - 0xEB, - 0xEB, - 0xED, - 0xED, - 0xEB, - 0xED, - 0xEB, - 0xED, - 0xEB, - 0xED, - 0x0F, - 0xE9, - 0x00, - 0x03, - 0xD7, - 0xD7, - 0xD7, - 0x00, - 0x06, - 0xE9, - 0x0F, - 0xDF, - 0x09, - 0xE7, - 0x05, - 0xDD, - 0x00, - 0x08, - 0xE7, - 0xE7, - 0xDD, - 0xDD, - 0xDC, - 0xDC, - 0xDC, - 0xE8, - 0x04, - 0xDC, - 0x09, - 0xE6, - 0x05, - 0xDB, - 0x00, - 0x03, - 0xE6, - 0xDE, - 0xDE, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x04, - 0xCC, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x05, - 0xCC, - 0x01, - 0xCD, - 0x01, - 0xCD, - 0x05, - 0xCC, - 0x16, - 0xCD, - 0x06, - 0xD3, - 0x00, - 0x07, - 0xB7, - 0xB7, - 0xD3, - 0xD3, - 0xD3, - 0xD4, - 0xD4, - 0x00, - 0x07, - 0xCE, - 0x05, - 0xD4, - 0x09, - 0xBB, - 0x00, - 0x03, - 0xD4, - 0xD4, - 0xD4, - 0x00, - 0x05, - 0xBB, - 0x07, - 0xD4, - 0x00, - 0x03, - 0xBB, - 0xBB, - 0xD4, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x0F, - 0x9F, - 0x9E, - 0xD4, - 0x9F, - 0x9F, - 0x9E, - 0xBA, - 0x9F, - 0xBD, - 0xBD, - 0xBD, - 0xA0, - 0xBD, - 0x9C, - 0xBD, - 0x00, - 0x08, - 0xA0, - 0x00, - 0x04, - 0xBD, - 0xA0, - 0xA0, - 0x7D, - 0x04, - 0xA0, - 0x00, - 0x04, - 0x7D, - 0xA0, - 0x7D, - 0x7D, - 0x06, - 0xA0, - 0x01, - 0xBD, - 0x01, - 0xBD, - 0x10, - 0x7D, - 0x01, - 0x5B, - 0x08, - 0x5A, - 0x0B, - 0x5B, - 0x00, - 0x05, - 0x5A, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF0, - 0x06, - 0xF5, - 0x0F, - 0xEE, - 0x00, - 0x04, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0x05, - 0xF6, - 0x01, - 0xEE, - 0x01, - 0xF6, - 0x07, - 0xEB, - 0x00, - 0x04, - 0xED, - 0xED, - 0xED, - 0xEB, - 0x07, - 0xED, - 0x00, - 0x04, - 0xE1, - 0xE9, - 0xE9, - 0xE1, - 0x0A, - 0xE9, - 0x01, - 0xD7, - 0x01, - 0xD7, - 0x05, - 0xE9, - 0x08, - 0xDF, - 0x00, - 0x06, - 0xE7, - 0xDF, - 0xE7, - 0xDF, - 0xE7, - 0xDF, - 0x0C, - 0xE7, - 0x08, - 0xDD, - 0x01, - 0xDC, - 0x11, - 0xE6, - 0x07, - 0xDB, - 0x00, - 0x08, - 0xD3, - 0xD3, - 0xDB, - 0xD3, - 0xD3, - 0xD0, - 0xD0, - 0xD0, - 0x09, - 0xCC, - 0x1F, - 0xCD, - 0x01, - 0xCE, - 0x06, - 0xBB, - 0x00, - 0x05, - 0xCE, - 0xCE, - 0xCE, - 0xD4, - 0xD4, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x03, - 0xCF, - 0xCE, - 0xCF, - 0x00, - 0x07, - 0xCE, - 0x05, - 0xD1, - 0x04, - 0xBB, - 0x00, - 0x04, - 0xD4, - 0xD4, - 0xD4, - 0xBB, - 0x04, - 0xD1, - 0x00, - 0x09, - 0xBB, - 0xD1, - 0xBB, - 0xD1, - 0xBB, - 0xD1, - 0xD1, - 0xD1, - 0xBB, - 0x00, - 0x05, - 0x9E, - 0x00, - 0x0D, - 0xBA, - 0x7C, - 0x9F, - 0x9F, - 0x9F, - 0xBA, - 0x7C, - 0x9F, - 0xBC, - 0xBD, - 0xBC, - 0xBD, - 0x79, - 0x00, - 0x0A, - 0xBD, - 0x04, - 0xA0, - 0x00, - 0x0D, - 0x7D, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x00, - 0x0A, - 0x7D, - 0x01, - 0xBD, - 0x05, - 0x7D, - 0x00, - 0x04, - 0x5B, - 0x7D, - 0x7D, - 0x58, - 0x0A, - 0x5A, - 0x00, - 0x09, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x5B, - 0x5B, - 0x5B, - 0x5A, - 0x5B, - 0x00, - 0x05, - 0x5A, - 0x00, - 0x00, - 0x01, - 0xF0, - 0x06, - 0xF5, - 0x11, - 0xEE, - 0x00, - 0x0A, - 0xF6, - 0xE4, - 0xEE, - 0xEA, - 0xF6, - 0xEA, - 0xEA, - 0xF6, - 0xE4, - 0xF6, - 0x07, - 0xEB, - 0x01, - 0xED, - 0x01, - 0xEB, - 0x08, - 0xED, - 0x00, - 0x04, - 0xE9, - 0xE9, - 0xE1, - 0xE1, - 0x0A, - 0xE9, - 0x01, - 0xD7, - 0x01, - 0xD7, - 0x05, - 0xE9, - 0x04, - 0xDF, - 0x00, - 0x03, - 0xE7, - 0xE7, - 0xE7, - 0x00, - 0x07, - 0xDF, - 0x0C, - 0xE7, - 0x08, - 0xDD, - 0x01, - 0xDC, - 0x11, - 0xE6, - 0x07, - 0xDB, - 0x00, - 0x03, - 0xD3, - 0xDB, - 0xD3, - 0x00, - 0x05, - 0xD0, - 0x09, - 0xCC, - 0x1F, - 0xCD, - 0x01, - 0xB7, - 0x04, - 0xBB, - 0x00, - 0x07, - 0xD4, - 0xD4, - 0xD1, - 0xD1, - 0xCE, - 0xD4, - 0xD4, - 0x00, - 0x0E, - 0xCE, - 0x05, - 0xD1, - 0x04, - 0xBB, - 0x00, - 0x04, - 0xD4, - 0xD4, - 0xD4, - 0xBB, - 0x04, - 0xD1, - 0x00, - 0x09, - 0xBB, - 0xD1, - 0xBB, - 0xD1, - 0xBB, - 0xD1, - 0xBB, - 0xBB, - 0xBA, - 0x00, - 0x05, - 0x9E, - 0x00, - 0x09, - 0xBA, - 0xBA, - 0x9F, - 0x9F, - 0x9F, - 0xBA, - 0xBA, - 0x9F, - 0xBC, - 0x00, - 0x0F, - 0xBD, - 0x00, - 0x0D, - 0xA0, - 0xA0, - 0x7D, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x00, - 0x0B, - 0x7D, - 0x00, - 0x0C, - 0x58, - 0x58, - 0x7D, - 0x7D, - 0x7D, - 0x44, - 0x44, - 0x7D, - 0x7D, - 0x7D, - 0x5B, - 0x5B, - 0x10, - 0x5A, - 0x00, - 0x08, - 0x5B, - 0x5B, - 0x5A, - 0x5A, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x00, - 0x00, - 0x06, - 0xF5, - 0x00, - 0x03, - 0xF6, - 0xEE, - 0xF6, - 0x00, - 0x08, - 0xEE, - 0x00, - 0x0A, - 0xF6, - 0xEE, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xE4, - 0xF6, - 0xF6, - 0xE4, - 0x05, - 0xF6, - 0x00, - 0x03, - 0xEB, - 0xF6, - 0xE4, - 0x00, - 0x06, - 0xEB, - 0x00, - 0x0C, - 0xE1, - 0xED, - 0xE1, - 0xED, - 0xED, - 0xED, - 0xE1, - 0xED, - 0xED, - 0xED, - 0xE1, - 0xE1, - 0x13, - 0xE9, - 0x00, - 0x03, - 0xDF, - 0xDF, - 0xE7, - 0x00, - 0x09, - 0xDF, - 0x07, - 0xE7, - 0x00, - 0x05, - 0xDF, - 0xDF, - 0xE7, - 0xE7, - 0xE7, - 0x00, - 0x07, - 0xDD, - 0x00, - 0x03, - 0xDC, - 0xDC, - 0xDC, - 0x00, - 0x12, - 0xE6, - 0x08, - 0xDB, - 0x01, - 0xD3, - 0x06, - 0xD0, - 0x04, - 0xCC, - 0x1B, - 0xCD, - 0x0A, - 0xCE, - 0x04, - 0xD4, - 0x05, - 0xD1, - 0x01, - 0xCE, - 0x01, - 0xCE, - 0x05, - 0xD1, - 0x01, - 0xCE, - 0x01, - 0xCE, - 0x0C, - 0xD1, - 0x00, - 0x0A, - 0xBB, - 0xD1, - 0xBB, - 0xD1, - 0xBB, - 0xD4, - 0xD4, - 0xBB, - 0xD1, - 0xD1, - 0x07, - 0xBA, - 0x00, - 0x05, - 0xD1, - 0xD1, - 0xBA, - 0xBA, - 0xCF, - 0x00, - 0x05, - 0x9E, - 0x06, - 0xBA, - 0x00, - 0x07, - 0x9F, - 0xBC, - 0xBC, - 0xBD, - 0xBC, - 0xBC, - 0xBC, - 0x00, - 0x07, - 0xBD, - 0x00, - 0x0F, - 0xBC, - 0xBD, - 0xBD, - 0x7D, - 0xA0, - 0xA0, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x00, - 0x09, - 0x7D, - 0x06, - 0x58, - 0x00, - 0x09, - 0x5B, - 0x58, - 0x7D, - 0x7D, - 0x58, - 0x5B, - 0x7D, - 0x7D, - 0x5B, - 0x00, - 0x05, - 0x5A, - 0x01, - 0x59, - 0x0D, - 0x5A, - 0x00, - 0x05, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x06, - 0xF5, - 0x00, - 0x03, - 0xF6, - 0xE4, - 0xF6, - 0x00, - 0x08, - 0xEE, - 0x00, - 0x04, - 0xF6, - 0xEA, - 0xF6, - 0xEE, - 0x06, - 0xF6, - 0x06, - 0xEB, - 0x01, - 0xE4, - 0x04, - 0xEB, - 0x0A, - 0xE1, - 0x05, - 0xED, - 0x11, - 0xE9, - 0x04, - 0xDF, - 0x06, - 0xE7, - 0x04, - 0xDF, - 0x08, - 0xE7, - 0x00, - 0x04, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0x07, - 0xDD, - 0x01, - 0xDC, - 0x01, - 0xDC, - 0x13, - 0xE6, - 0x06, - 0xDB, - 0x01, - 0xDE, - 0x01, - 0xDB, - 0x07, - 0xD0, - 0x04, - 0xCC, - 0x16, - 0xCD, - 0x04, - 0xCE, - 0x00, - 0x03, - 0xCD, - 0xD4, - 0xD4, - 0x00, - 0x0C, - 0xCE, - 0x1A, - 0xD1, - 0x05, - 0xBA, - 0x00, - 0x03, - 0xD1, - 0xBB, - 0xD1, - 0x00, - 0x0B, - 0xBA, - 0x01, - 0xCF, - 0x0D, - 0x9E, - 0x01, - 0x7C, - 0x01, - 0x9F, - 0x07, - 0xBC, - 0x08, - 0xBD, - 0x06, - 0x7D, - 0x00, - 0x07, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0xBD, - 0x00, - 0x05, - 0x7D, - 0x06, - 0x58, - 0x00, - 0x0C, - 0x9F, - 0x58, - 0x58, - 0x58, - 0x7D, - 0x58, - 0x5B, - 0x58, - 0x58, - 0x7D, - 0x7D, - 0x5B, - 0x04, - 0x5A, - 0x01, - 0x59, - 0x0D, - 0x5A, - 0x01, - 0x5B, - 0x05, - 0x5A, - 0x00, - 0x00, - 0x01, - 0xF5, - 0x04, - 0xEE, - 0x00, - 0x06, - 0xF5, - 0xEE, - 0xEE, - 0xF6, - 0xE4, - 0xF6, - 0x07, - 0xEE, - 0x00, - 0x0E, - 0xF6, - 0xEE, - 0xF6, - 0xE4, - 0xF6, - 0xF6, - 0xE4, - 0xE4, - 0xE4, - 0xEB, - 0xE4, - 0xEB, - 0xE4, - 0xE4, - 0x06, - 0xEB, - 0x0A, - 0xE1, - 0x05, - 0xED, - 0x11, - 0xE9, - 0x05, - 0xDF, - 0x04, - 0xE7, - 0x05, - 0xDF, - 0x0C, - 0xE7, - 0x01, - 0xB9, - 0x06, - 0xDD, - 0x01, - 0xDC, - 0x01, - 0xDC, - 0x13, - 0xE6, - 0x08, - 0xDB, - 0x07, - 0xD0, - 0x04, - 0xCC, - 0x13, - 0xCD, - 0x01, - 0xCE, - 0x01, - 0xCD, - 0x07, - 0xCE, - 0x01, - 0xD4, - 0x08, - 0xCE, - 0x17, - 0xD1, - 0x01, - 0xCF, - 0x01, - 0xD1, - 0x06, - 0xBA, - 0x00, - 0x04, - 0xCF, - 0xBA, - 0xBA, - 0xD1, - 0x04, - 0xBA, - 0x00, - 0x03, - 0xCF, - 0xBA, - 0xBA, - 0x00, - 0x05, - 0xD1, - 0x01, - 0xBA, - 0x01, - 0xCF, - 0x0E, - 0x9E, - 0x01, - 0xBA, - 0x01, - 0x9F, - 0x0B, - 0xBC, - 0x00, - 0x05, - 0xBD, - 0xBD, - 0x7D, - 0xBD, - 0xBC, - 0x00, - 0x04, - 0xBD, - 0x0A, - 0x7D, - 0x00, - 0x03, - 0x58, - 0x7D, - 0x7D, - 0x00, - 0x0B, - 0x58, - 0x00, - 0x0C, - 0x7D, - 0x58, - 0x5B, - 0x58, - 0x5B, - 0x58, - 0x5B, - 0x5A, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x13, - 0x5A, - 0x00, - 0x00, - 0x01, - 0xEF, - 0x06, - 0xEE, - 0x00, - 0x0F, - 0xF6, - 0xEE, - 0xE4, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xE4, - 0xF6, - 0xEB, - 0xF6, - 0x00, - 0x0A, - 0xE4, - 0x05, - 0xEB, - 0x06, - 0xE1, - 0x01, - 0xD6, - 0x04, - 0xE1, - 0x05, - 0xED, - 0x07, - 0xE9, - 0x00, - 0x07, - 0xDF, - 0xDF, - 0xE9, - 0xE9, - 0xE9, - 0xD7, - 0xD7, - 0x00, - 0x09, - 0xDF, - 0x0B, - 0xE7, - 0x00, - 0x0B, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0x00, - 0x05, - 0xDC, - 0x0A, - 0xE6, - 0x01, - 0xDE, - 0x08, - 0xE6, - 0x07, - 0xDB, - 0x07, - 0xD0, - 0x07, - 0xCC, - 0x10, - 0xCD, - 0x08, - 0xCE, - 0x01, - 0xCB, - 0x0B, - 0xCE, - 0x14, - 0xD1, - 0x00, - 0x06, - 0xBA, - 0xBA, - 0xBA, - 0xCF, - 0xBA, - 0xBA, - 0x07, - 0xCF, - 0x01, - 0xBA, - 0x07, - 0xCF, - 0x00, - 0x07, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xBA, - 0x00, - 0x11, - 0x9E, - 0x01, - 0x9F, - 0x0B, - 0xBC, - 0x00, - 0x04, - 0xBD, - 0xBC, - 0xBD, - 0xBD, - 0x05, - 0x7D, - 0x05, - 0xBD, - 0x06, - 0x7D, - 0x00, - 0x03, - 0x58, - 0x7D, - 0x7D, - 0x00, - 0x09, - 0x58, - 0x00, - 0x12, - 0x5B, - 0x58, - 0x5B, - 0x58, - 0x58, - 0x58, - 0x5B, - 0x5A, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x0D, - 0x5A, - 0x01, - 0x59, - 0x00, - 0x00, - 0x00, - 0x14, - 0xEF, - 0xEE, - 0xEE, - 0xE4, - 0xEE, - 0xEE, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xF6, - 0xEE, - 0xEA, - 0xF6, - 0xEA, - 0xF6, - 0xE4, - 0xF6, - 0xEE, - 0xF6, - 0x0C, - 0xE4, - 0x01, - 0xEB, - 0x01, - 0xEB, - 0x09, - 0xE1, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xE1, - 0x00, - 0x07, - 0xED, - 0x07, - 0xE9, - 0x00, - 0x07, - 0xDF, - 0xDF, - 0xE9, - 0xE9, - 0xE9, - 0xD7, - 0xD7, - 0x00, - 0x0A, - 0xDF, - 0x0B, - 0xE7, - 0x00, - 0x03, - 0xB9, - 0xE7, - 0xB9, - 0x00, - 0x07, - 0xDD, - 0x05, - 0xDC, - 0x05, - 0xE6, - 0x00, - 0x06, - 0xE8, - 0xE8, - 0xE8, - 0xDE, - 0xE6, - 0xDE, - 0x08, - 0xE6, - 0x07, - 0xDB, - 0x07, - 0xD0, - 0x07, - 0xCC, - 0x0C, - 0xCD, - 0x0C, - 0xCE, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x0A, - 0xCE, - 0x0E, - 0xD1, - 0x05, - 0xCF, - 0x00, - 0x05, - 0xD1, - 0xBA, - 0xD1, - 0xCF, - 0xBA, - 0x00, - 0x09, - 0xCF, - 0x05, - 0xBA, - 0x04, - 0xCF, - 0x00, - 0x06, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0x0B, - 0x9E, - 0x00, - 0x08, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0x9E, - 0x9E, - 0xBA, - 0x9F, - 0x13, - 0xBC, - 0x05, - 0xBD, - 0x05, - 0x7D, - 0x00, - 0x04, - 0x58, - 0x7D, - 0x7D, - 0x7D, - 0x0D, - 0x58, - 0x00, - 0x10, - 0x7D, - 0x5B, - 0x5B, - 0x5A, - 0x5A, - 0x59, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x59, - 0x09, - 0x5A, - 0x00, - 0x03, - 0x59, - 0x59, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x07, - 0xEE, - 0x00, - 0x0E, - 0xF6, - 0xE4, - 0xE4, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xEB, - 0xF6, - 0xEA, - 0xF6, - 0xF6, - 0xEB, - 0x09, - 0xE4, - 0x00, - 0x06, - 0xEB, - 0xEB, - 0xE1, - 0xE1, - 0xED, - 0xED, - 0x09, - 0xE1, - 0x00, - 0x06, - 0xD6, - 0xED, - 0xE9, - 0xED, - 0xE9, - 0xED, - 0x09, - 0xE9, - 0x05, - 0xDF, - 0x00, - 0x07, - 0xD7, - 0xD7, - 0xDF, - 0xDF, - 0xDF, - 0xE7, - 0xE7, - 0x00, - 0x05, - 0xDF, - 0x09, - 0xE7, - 0x00, - 0x13, - 0xB9, - 0xB9, - 0xDD, - 0xDD, - 0xDD, - 0xB9, - 0xDC, - 0xB9, - 0xDD, - 0xE7, - 0xE7, - 0xDD, - 0xDC, - 0xDC, - 0xDC, - 0xDD, - 0xDC, - 0xE6, - 0xE6, - 0x00, - 0x06, - 0xE8, - 0x00, - 0x03, - 0xE6, - 0xDE, - 0xDE, - 0x00, - 0x08, - 0xE6, - 0x07, - 0xDB, - 0x07, - 0xD0, - 0x05, - 0xCC, - 0x0D, - 0xCD, - 0x06, - 0xCE, - 0x01, - 0xCB, - 0x07, - 0xCE, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x09, - 0xCE, - 0x0C, - 0xD1, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x06, - 0xCF, - 0x01, - 0xBA, - 0x01, - 0xBA, - 0x0D, - 0xCF, - 0x00, - 0x0C, - 0xBA, - 0xCF, - 0xCF, - 0xB8, - 0xCF, - 0xCF, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0x0A, - 0x9E, - 0x00, - 0x0B, - 0xCF, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0xCF, - 0x9E, - 0x9E, - 0xBB, - 0x9F, - 0x00, - 0x14, - 0xBC, - 0x08, - 0xBD, - 0x06, - 0x58, - 0x01, - 0x7D, - 0x09, - 0x58, - 0x00, - 0x11, - 0x7D, - 0x58, - 0x58, - 0x5B, - 0x5A, - 0x5A, - 0x59, - 0x59, - 0x5A, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x00, - 0x08, - 0x5A, - 0x00, - 0x04, - 0x59, - 0x5A, - 0x5A, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x15, - 0xEE, - 0xEE, - 0xEE, - 0xE4, - 0xE4, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xEE, - 0xF6, - 0xE4, - 0xEE, - 0xF6, - 0xE4, - 0xF6, - 0xF6, - 0xF6, - 0xE4, - 0xEB, - 0x00, - 0x08, - 0xE4, - 0x01, - 0xEB, - 0x04, - 0xE1, - 0x01, - 0xED, - 0x01, - 0xED, - 0x08, - 0xE1, - 0x01, - 0xED, - 0x01, - 0xD7, - 0x08, - 0xE9, - 0x00, - 0x06, - 0xD7, - 0xD7, - 0xD7, - 0xE9, - 0xE9, - 0xE9, - 0x0A, - 0xDF, - 0x01, - 0xE7, - 0x01, - 0xE7, - 0x05, - 0xDF, - 0x06, - 0xE7, - 0x00, - 0x05, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xDD, - 0x00, - 0x05, - 0xDC, - 0x00, - 0x0C, - 0xB9, - 0xDD, - 0xE7, - 0xDD, - 0xDD, - 0xDC, - 0xDD, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xE6, - 0x05, - 0xE8, - 0x00, - 0x03, - 0xDE, - 0xDE, - 0xDE, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x03, - 0xE6, - 0xE6, - 0xE6, - 0x00, - 0x05, - 0xDB, - 0x00, - 0x05, - 0xCD, - 0xDB, - 0xDB, - 0xDB, - 0xD0, - 0x00, - 0x0B, - 0xCC, - 0x0B, - 0xCD, - 0x06, - 0xCE, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x07, - 0xCE, - 0x00, - 0x07, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCA, - 0xCA, - 0x00, - 0x11, - 0xD1, - 0x04, - 0xCF, - 0x00, - 0x03, - 0xBA, - 0xCF, - 0xBA, - 0x00, - 0x11, - 0xCF, - 0x00, - 0x07, - 0x9E, - 0xB8, - 0xB8, - 0xCF, - 0xCF, - 0xBA, - 0xCF, - 0x00, - 0x0D, - 0x9E, - 0x00, - 0x0C, - 0xB8, - 0x9E, - 0xCF, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0xBA, - 0x9F, - 0x06, - 0xBC, - 0x01, - 0xD8, - 0x01, - 0xD8, - 0x0E, - 0xBC, - 0x00, - 0x05, - 0xBD, - 0xBC, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x06, - 0x58, - 0x00, - 0x04, - 0x7D, - 0x58, - 0x7D, - 0x7D, - 0x06, - 0x58, - 0x00, - 0x05, - 0x7D, - 0x58, - 0x58, - 0x5B, - 0x7C, - 0x00, - 0x04, - 0x5A, - 0x00, - 0x03, - 0x59, - 0x59, - 0x5A, - 0x00, - 0x06, - 0x59, - 0x01, - 0x5A, - 0x01, - 0x59, - 0x0A, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xEE, - 0xEE, - 0xEE, - 0xE4, - 0xE4, - 0xEE, - 0xEE, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xF6, - 0xE4, - 0xF6, - 0xF6, - 0x00, - 0x05, - 0xE4, - 0x01, - 0xEB, - 0x08, - 0xE4, - 0x00, - 0x07, - 0xEB, - 0xE1, - 0xED, - 0xE1, - 0xE1, - 0xED, - 0xED, - 0x00, - 0x08, - 0xE1, - 0x01, - 0xED, - 0x01, - 0xD7, - 0x08, - 0xE9, - 0x00, - 0x06, - 0xD7, - 0xD7, - 0xD7, - 0xE9, - 0xE9, - 0xE9, - 0x0A, - 0xDF, - 0x01, - 0xE7, - 0x01, - 0xE7, - 0x05, - 0xDF, - 0x05, - 0xE7, - 0x00, - 0x06, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0x05, - 0xDC, - 0x01, - 0xB9, - 0x04, - 0xDD, - 0x05, - 0xDC, - 0x01, - 0xE6, - 0x01, - 0xE6, - 0x05, - 0xE8, - 0x01, - 0xE6, - 0x01, - 0xE6, - 0x05, - 0xDB, - 0x00, - 0x03, - 0xE6, - 0xE6, - 0xE6, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x06, - 0xCD, - 0xCD, - 0xCC, - 0xDB, - 0xDB, - 0xD0, - 0x0B, - 0xCC, - 0x0B, - 0xCD, - 0x06, - 0xCE, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x08, - 0xCE, - 0x00, - 0x0C, - 0xCB, - 0xCE, - 0xCB, - 0xCE, - 0xCB, - 0xCA, - 0xCB, - 0xCF, - 0xCF, - 0xCF, - 0xCB, - 0xCB, - 0x0B, - 0xD1, - 0x18, - 0xCF, - 0x00, - 0x07, - 0xBA, - 0xB8, - 0x9E, - 0xCF, - 0xCF, - 0xBA, - 0xCF, - 0x00, - 0x0D, - 0x9E, - 0x00, - 0x14, - 0xB8, - 0x9E, - 0x9E, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0xBA, - 0x9F, - 0xBC, - 0xBC, - 0xB7, - 0xBC, - 0xBC, - 0xBC, - 0xD8, - 0xD8, - 0x0E, - 0xBC, - 0x00, - 0x05, - 0xBD, - 0x7D, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x04, - 0x58, - 0x01, - 0xBC, - 0x01, - 0x7D, - 0x0B, - 0x58, - 0x00, - 0x07, - 0x7D, - 0x58, - 0x5B, - 0x5A, - 0x5A, - 0x5A, - 0x59, - 0x00, - 0x0B, - 0x5A, - 0x00, - 0x0B, - 0x59, - 0x5A, - 0x5A, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x5A, - 0x5A, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xEE, - 0x04, - 0xF6, - 0x00, - 0x06, - 0xEE, - 0xEA, - 0xF6, - 0xEA, - 0xF6, - 0xEB, - 0x0B, - 0xE4, - 0x04, - 0xEB, - 0x00, - 0x07, - 0xE1, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xE1, - 0xE1, - 0x00, - 0x04, - 0xD6, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xD7, - 0xD7, - 0xE9, - 0xD7, - 0x0A, - 0xE9, - 0x04, - 0xDF, - 0x00, - 0x06, - 0xE9, - 0xE9, - 0xE9, - 0xD7, - 0xD7, - 0xD7, - 0x04, - 0xDF, - 0x06, - 0xE7, - 0x00, - 0x0B, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xDD, - 0xDC, - 0x00, - 0x05, - 0xDD, - 0x04, - 0xDC, - 0x00, - 0x08, - 0xDD, - 0xDD, - 0xE6, - 0xE6, - 0xE6, - 0xE8, - 0xE8, - 0xE8, - 0x04, - 0xE6, - 0x07, - 0xDB, - 0x00, - 0x08, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xDB, - 0xD0, - 0xD0, - 0xCD, - 0x04, - 0xD0, - 0x07, - 0xCC, - 0x05, - 0xCD, - 0x00, - 0x03, - 0xB7, - 0xB7, - 0xCC, - 0x00, - 0x08, - 0xCD, - 0x0D, - 0xCE, - 0x08, - 0xCA, - 0x00, - 0x07, - 0xCB, - 0xCF, - 0xCF, - 0xCB, - 0xCB, - 0xCF, - 0xCF, - 0x00, - 0x09, - 0xCB, - 0x00, - 0x0C, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xCF, - 0xB2, - 0xB2, - 0x13, - 0xCF, - 0x01, - 0x9E, - 0x01, - 0xCF, - 0x0F, - 0x9E, - 0x00, - 0x0E, - 0xB8, - 0xCF, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0x9E, - 0xBA, - 0xBB, - 0xBC, - 0xBC, - 0xBC, - 0xB7, - 0x17, - 0xBC, - 0x01, - 0x9F, - 0x01, - 0x9F, - 0x0D, - 0x58, - 0x00, - 0x06, - 0x7D, - 0x7D, - 0x58, - 0x7C, - 0x7C, - 0x5A, - 0x0E, - 0x59, - 0x00, - 0x0B, - 0x5A, - 0x5A, - 0x59, - 0x5A, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x05, - 0xEE, - 0x00, - 0x09, - 0xF6, - 0xF6, - 0xF6, - 0xEE, - 0xF6, - 0xEE, - 0xF6, - 0xF6, - 0xF6, - 0x00, - 0x0B, - 0xE4, - 0x00, - 0x12, - 0xEB, - 0xEB, - 0xE1, - 0xE1, - 0xED, - 0xE1, - 0xED, - 0xED, - 0xE1, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0x07, - 0xD7, - 0x08, - 0xE9, - 0x04, - 0xDF, - 0x00, - 0x06, - 0xE9, - 0xE9, - 0xE9, - 0xD7, - 0xD7, - 0xD7, - 0x04, - 0xDF, - 0x07, - 0xE7, - 0x00, - 0x08, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0x07, - 0xDD, - 0x00, - 0x0B, - 0xDC, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xE6, - 0xE6, - 0xE6, - 0xE8, - 0xE8, - 0x00, - 0x05, - 0xE6, - 0x0C, - 0xDB, - 0x00, - 0x07, - 0xD0, - 0xD0, - 0xCC, - 0xCC, - 0xCC, - 0xD0, - 0xD0, - 0x00, - 0x07, - 0xCC, - 0x05, - 0xCD, - 0x00, - 0x03, - 0xB7, - 0xB7, - 0xCC, - 0x00, - 0x0B, - 0xCD, - 0x00, - 0x03, - 0xCE, - 0xCE, - 0xCD, - 0x00, - 0x07, - 0xCE, - 0x01, - 0xCA, - 0x09, - 0xCB, - 0x00, - 0x03, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x0B, - 0xCB, - 0x0A, - 0xCF, - 0x01, - 0xB2, - 0x01, - 0xB2, - 0x13, - 0xCF, - 0x00, - 0x05, - 0x9E, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0x00, - 0x0E, - 0x9E, - 0x00, - 0x11, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0x9E, - 0x9E, - 0xBA, - 0xBB, - 0xBB, - 0xBB, - 0xBC, - 0xB7, - 0xB7, - 0xBC, - 0xBC, - 0xBC, - 0xB7, - 0x00, - 0x12, - 0xBC, - 0x06, - 0x9F, - 0x00, - 0x03, - 0x58, - 0x58, - 0x9F, - 0x00, - 0x08, - 0x58, - 0x00, - 0x03, - 0x5B, - 0x5A, - 0x5A, - 0x00, - 0x04, - 0x56, - 0x07, - 0x59, - 0x00, - 0x0F, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x00, - 0x05, - 0xEE, - 0x00, - 0x07, - 0xE4, - 0xF6, - 0xE4, - 0xF6, - 0xE4, - 0xF6, - 0xEA, - 0x00, - 0x06, - 0xE4, - 0x01, - 0xE1, - 0x05, - 0xE4, - 0x00, - 0x03, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x09, - 0xE1, - 0x00, - 0x07, - 0xD6, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x08, - 0xD7, - 0x07, - 0xE9, - 0x08, - 0xDF, - 0x01, - 0xD7, - 0x01, - 0xD7, - 0x04, - 0xDF, - 0x08, - 0xE7, - 0x01, - 0xB9, - 0x04, - 0xE7, - 0x01, - 0xB9, - 0x01, - 0xB9, - 0x04, - 0xDD, - 0x00, - 0x04, - 0xDC, - 0xDC, - 0xDD, - 0xDC, - 0x0D, - 0xE6, - 0x09, - 0xDB, - 0x00, - 0x0C, - 0xCD, - 0xDB, - 0xCD, - 0xDB, - 0xDB, - 0xD0, - 0xD0, - 0xD0, - 0xCC, - 0xCC, - 0xD0, - 0xD0, - 0x07, - 0xCC, - 0x13, - 0xCD, - 0x0A, - 0xCE, - 0x00, - 0x03, - 0xCB, - 0xCB, - 0xCF, - 0x00, - 0x0A, - 0xCB, - 0x01, - 0xCF, - 0x05, - 0xCB, - 0x00, - 0x04, - 0xCF, - 0xB2, - 0xCF, - 0xCB, - 0x0B, - 0xCF, - 0x01, - 0xB2, - 0x01, - 0xB2, - 0x13, - 0xCF, - 0x0C, - 0xB8, - 0x00, - 0x16, - 0x9E, - 0x9E, - 0x9E, - 0xB8, - 0x9E, - 0xB8, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0x9E, - 0x9E, - 0xBA, - 0xBA, - 0xBA, - 0xBB, - 0xBB, - 0xBB, - 0xBC, - 0xBC, - 0xB7, - 0xB7, - 0x10, - 0xBC, - 0x07, - 0x9F, - 0x00, - 0x07, - 0x58, - 0x58, - 0x58, - 0x9F, - 0x9F, - 0x58, - 0x9F, - 0x00, - 0x08, - 0x58, - 0x01, - 0x7C, - 0x01, - 0x59, - 0x04, - 0x56, - 0x09, - 0x59, - 0x01, - 0x5A, - 0x04, - 0x59, - 0x00, - 0x08, - 0x5A, - 0x59, - 0x5A, - 0x5A, - 0x59, - 0x59, - 0x59, - 0x59, - 0x00, - 0x00, - 0x09, - 0xE4, - 0x00, - 0x08, - 0xF6, - 0xEB, - 0xF6, - 0xE4, - 0xEB, - 0xE4, - 0xE4, - 0xE4, - 0x07, - 0xEB, - 0x05, - 0xE1, - 0x00, - 0x0C, - 0xED, - 0xED, - 0xE1, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0x0B, - 0xD7, - 0x01, - 0xE9, - 0x12, - 0xDF, - 0x0B, - 0xE7, - 0x00, - 0x0D, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0xDC, - 0xE8, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0x00, - 0x0D, - 0xE6, - 0x07, - 0xDB, - 0x06, - 0xCD, - 0x00, - 0x04, - 0xDB, - 0xD0, - 0xD0, - 0xD0, - 0x06, - 0xCC, - 0x18, - 0xCD, - 0x06, - 0xCE, - 0x09, - 0xCB, - 0x00, - 0x04, - 0xCF, - 0xCB, - 0xCB, - 0xCF, - 0x05, - 0xCB, - 0x01, - 0xB2, - 0x01, - 0xCB, - 0x0A, - 0xCF, - 0x00, - 0x13, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xCF, - 0xC9, - 0xCF, - 0xCF, - 0xC9, - 0xCF, - 0xCF, - 0xC9, - 0xCF, - 0xB2, - 0xB2, - 0x00, - 0x1A, - 0xB8, - 0x00, - 0x16, - 0x9E, - 0xB8, - 0x9E, - 0x9E, - 0x56, - 0x9E, - 0x56, - 0x9E, - 0x9E, - 0xBA, - 0xBA, - 0xBB, - 0xBB, - 0xBB, - 0xB7, - 0xB7, - 0xB7, - 0xBC, - 0xBC, - 0xB7, - 0xBC, - 0xBC, - 0x06, - 0xBB, - 0x0B, - 0x9F, - 0x06, - 0x7C, - 0x08, - 0x58, - 0x00, - 0x08, - 0x5B, - 0x7C, - 0x7C, - 0x59, - 0x56, - 0x56, - 0x56, - 0x59, - 0x05, - 0x56, - 0x0F, - 0x59, - 0x00, - 0x03, - 0x5A, - 0x59, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x09, - 0xE4, - 0x01, - 0xF6, - 0x07, - 0xE4, - 0x07, - 0xEB, - 0x05, - 0xE1, - 0x00, - 0x0C, - 0xED, - 0xED, - 0xE1, - 0xE1, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0x0B, - 0xD7, - 0x01, - 0xE9, - 0x0A, - 0xDF, - 0x01, - 0xE7, - 0x06, - 0xDF, - 0x0B, - 0xE7, - 0x00, - 0x03, - 0xB9, - 0xE7, - 0xB9, - 0x00, - 0x05, - 0xDD, - 0x00, - 0x06, - 0xDC, - 0xE8, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0x0D, - 0xE6, - 0x08, - 0xDB, - 0x04, - 0xCD, - 0x00, - 0x05, - 0xDB, - 0xDB, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x06, - 0xCC, - 0x18, - 0xCD, - 0x07, - 0xCE, - 0x05, - 0xCB, - 0x00, - 0x08, - 0xCF, - 0xCF, - 0xCB, - 0xCB, - 0xCF, - 0xCF, - 0xCB, - 0xCF, - 0x05, - 0xCB, - 0x01, - 0xB2, - 0x09, - 0xCF, - 0x00, - 0x08, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xB2, - 0x0A, - 0xCF, - 0x01, - 0xB2, - 0x01, - 0xB2, - 0x1B, - 0xB8, - 0x00, - 0x0E, - 0x9E, - 0xB8, - 0x56, - 0x9E, - 0x56, - 0x9E, - 0xB8, - 0xB8, - 0x9E, - 0xBA, - 0xBA, - 0xBA, - 0xBB, - 0xBB, - 0x04, - 0xB7, - 0x00, - 0x03, - 0xBC, - 0xBC, - 0xBC, - 0x00, - 0x06, - 0xBB, - 0x0B, - 0x9F, - 0x07, - 0x7C, - 0x04, - 0x58, - 0x00, - 0x07, - 0x7C, - 0x58, - 0x58, - 0x7C, - 0x7C, - 0x7C, - 0x9E, - 0x00, - 0x09, - 0x56, - 0x0E, - 0x59, - 0x00, - 0x04, - 0x5A, - 0x59, - 0x5A, - 0x59, - 0x00, - 0x00, - 0x08, - 0xE4, - 0x00, - 0x03, - 0xEB, - 0xE4, - 0xEB, - 0x00, - 0x04, - 0xE4, - 0x05, - 0xEB, - 0x0B, - 0xE1, - 0x00, - 0x0A, - 0xD6, - 0xE1, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0x0B, - 0xD7, - 0x01, - 0xE9, - 0x01, - 0xD7, - 0x09, - 0xDF, - 0x01, - 0xE7, - 0x01, - 0xE7, - 0x05, - 0xDF, - 0x0A, - 0xE7, - 0x00, - 0x07, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0xDD, - 0x00, - 0x06, - 0xDC, - 0x00, - 0x05, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xDB, - 0x00, - 0x07, - 0xE6, - 0x05, - 0xDB, - 0x01, - 0xE6, - 0x01, - 0xE6, - 0x09, - 0xDB, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x08, - 0xCC, - 0x0B, - 0xCD, - 0x00, - 0x05, - 0xCE, - 0xCD, - 0xCD, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xCD, - 0x06, - 0xCE, - 0x01, - 0xD1, - 0x01, - 0xD1, - 0x09, - 0xCB, - 0x01, - 0xB2, - 0x04, - 0xCB, - 0x00, - 0x05, - 0xCF, - 0xCB, - 0xCB, - 0xCB, - 0xB2, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x0E, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0x09, - 0xCF, - 0x05, - 0xB2, - 0x00, - 0x03, - 0xB8, - 0xB2, - 0xB2, - 0x00, - 0x04, - 0xB8, - 0x00, - 0x03, - 0xB2, - 0xB2, - 0xB2, - 0x00, - 0x07, - 0xB8, - 0x05, - 0xB5, - 0x04, - 0xB8, - 0x00, - 0x0C, - 0x56, - 0xB8, - 0x9D, - 0xB8, - 0x9D, - 0xB8, - 0x9E, - 0xB8, - 0x9E, - 0xBA, - 0xBA, - 0xBA, - 0x0E, - 0xBB, - 0x0A, - 0x9F, - 0x0C, - 0x7C, - 0x00, - 0x06, - 0x5B, - 0x58, - 0x58, - 0x7C, - 0x7C, - 0x7C, - 0x04, - 0x56, - 0x01, - 0x59, - 0x01, - 0x59, - 0x04, - 0x56, - 0x12, - 0x59, - 0x00, - 0x00, - 0x0F, - 0xE4, - 0x05, - 0xEB, - 0x0B, - 0xE1, - 0x00, - 0x0A, - 0xD6, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0x11, - 0xD7, - 0x05, - 0xDF, - 0x04, - 0xE7, - 0x00, - 0x03, - 0xDF, - 0xDF, - 0xDF, - 0x00, - 0x09, - 0xE7, - 0x07, - 0xDD, - 0x00, - 0x03, - 0xDC, - 0xE6, - 0xE6, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x0C, - 0xE6, - 0xE6, - 0xDB, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xE6, - 0xDB, - 0xE6, - 0xE6, - 0xE6, - 0x05, - 0xDB, - 0x01, - 0xE6, - 0x01, - 0xE6, - 0x07, - 0xDB, - 0x00, - 0x0C, - 0xD0, - 0xD0, - 0xCD, - 0xCC, - 0xCC, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0xCD, - 0xCC, - 0x05, - 0xCD, - 0x04, - 0xCE, - 0x00, - 0x0B, - 0xCD, - 0xCD, - 0xCE, - 0xCE, - 0xCE, - 0xCD, - 0xCA, - 0xCA, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x08, - 0xCE, - 0x00, - 0x03, - 0xCA, - 0xD1, - 0xC9, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x03, - 0xB2, - 0xCB, - 0xCB, - 0x00, - 0x06, - 0xB2, - 0x00, - 0x04, - 0xCF, - 0xB2, - 0xB2, - 0xB2, - 0x04, - 0xCF, - 0x04, - 0xB2, - 0x01, - 0xCF, - 0x09, - 0xB2, - 0x01, - 0xCF, - 0x01, - 0xCF, - 0x05, - 0xB2, - 0x00, - 0x11, - 0xCF, - 0xB2, - 0xCF, - 0xB2, - 0xB2, - 0xB2, - 0xB8, - 0xB8, - 0xB8, - 0xB2, - 0xB8, - 0xB2, - 0xB8, - 0xB8, - 0xB2, - 0xB2, - 0xB2, - 0x00, - 0x07, - 0xB8, - 0x05, - 0xB5, - 0x00, - 0x03, - 0xB8, - 0xB8, - 0x9D, - 0x00, - 0x07, - 0xB8, - 0x00, - 0x0B, - 0x9D, - 0xB8, - 0xB8, - 0xB8, - 0x9E, - 0x9E, - 0xBA, - 0xBB, - 0xBB, - 0xD1, - 0xD1, - 0x00, - 0x0A, - 0xBB, - 0x05, - 0x9F, - 0x05, - 0x7C, - 0x01, - 0xBA, - 0x06, - 0x7C, - 0x01, - 0x59, - 0x08, - 0x7C, - 0x01, - 0x56, - 0x01, - 0x9D, - 0x0E, - 0x56, - 0x0D, - 0x59, - 0x00, - 0x00, - 0x0F, - 0xE4, - 0x05, - 0xEB, - 0x0B, - 0xE1, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xE1, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x07, - 0xE1, - 0xD6, - 0xD6, - 0xD7, - 0xD7, - 0xD7, - 0xE9, - 0x00, - 0x0D, - 0xD7, - 0x05, - 0xDF, - 0x04, - 0xE7, - 0x00, - 0x03, - 0xDF, - 0xDF, - 0xDF, - 0x00, - 0x09, - 0xE7, - 0x07, - 0xDD, - 0x00, - 0x03, - 0xE8, - 0xE6, - 0xE6, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x13, - 0xE6, - 0xE6, - 0xDB, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xE6, - 0xC5, - 0xFF, - 0xC7, - 0xE6, - 0xE6, - 0xDB, - 0xDB, - 0xC7, - 0xFE, - 0xC5, - 0xE8, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x47, - 0x87, - 0xFE, - 0xC6, - 0xD0, - 0xD0, - 0xC5, - 0xFE, - 0x46, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xCA, - 0xCD, - 0xCD, - 0xCA, - 0xA5, - 0x87, - 0xFE, - 0xFE, - 0xFE, - 0xA6, - 0xA5, - 0xCE, - 0xCE, - 0xCA, - 0xCA, - 0xCD, - 0xCD, - 0xCD, - 0xC6, - 0xFE, - 0xFE, - 0x86, - 0xD1, - 0xD1, - 0xD1, - 0xCA, - 0xBA, - 0xD1, - 0xCB, - 0xA5, - 0xA7, - 0xFE, - 0xFE, - 0x87, - 0xA5, - 0xA5, - 0xFE, - 0xFE, - 0xC2, - 0xCF, - 0xCB, - 0xCB, - 0xCF, - 0xC5, - 0xFE, - 0xFE, - 0xFE, - 0xC7, - 0xCF, - 0xB2, - 0xFD, - 0xFE, - 0xA4, - 0xCF, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x0E, - 0x86, - 0xFD, - 0xFE, - 0xFE, - 0xC7, - 0x86, - 0xB2, - 0xCF, - 0xCF, - 0xB2, - 0xC2, - 0xFF, - 0xFE, - 0xA4, - 0x05, - 0xB2, - 0x00, - 0x04, - 0xFD, - 0xFE, - 0xA5, - 0xB8, - 0x04, - 0xB2, - 0x01, - 0xB8, - 0x04, - 0xB2, - 0x06, - 0xB8, - 0x05, - 0xB5, - 0x04, - 0xB8, - 0x07, - 0x9D, - 0x00, - 0x0F, - 0xB8, - 0xB8, - 0xB8, - 0x56, - 0x9E, - 0x9E, - 0xBB, - 0xBB, - 0xD1, - 0xD1, - 0xBB, - 0xBB, - 0xBA, - 0xBA, - 0xBA, - 0x00, - 0x07, - 0xBB, - 0x01, - 0x9F, - 0x01, - 0x9F, - 0x14, - 0x7C, - 0x00, - 0x04, - 0x56, - 0x56, - 0x56, - 0x9D, - 0x07, - 0x56, - 0x05, - 0x59, - 0x01, - 0x56, - 0x01, - 0x56, - 0x0D, - 0x59, - 0x00, - 0x00, - 0x0F, - 0xE4, - 0x05, - 0xEB, - 0x0C, - 0xE1, - 0x00, - 0x07, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0x00, - 0x04, - 0xD7, - 0x01, - 0xD6, - 0x01, - 0xD6, - 0x0A, - 0xD7, - 0x07, - 0xDF, - 0x0A, - 0xE7, - 0x07, - 0xDD, - 0x07, - 0xDC, - 0x0F, - 0xE6, - 0x00, - 0x0A, - 0xC4, - 0xFE, - 0xFE, - 0xC2, - 0xE6, - 0xE6, - 0xE6, - 0xC6, - 0xFE, - 0x87, - 0x05, - 0xDB, - 0x00, - 0x09, - 0x86, - 0xFE, - 0xC7, - 0xCC, - 0xD0, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x08, - 0xC1, - 0xFE, - 0xFF, - 0xC5, - 0xCE, - 0xCE, - 0xCB, - 0xC5, - 0x07, - 0xFE, - 0x01, - 0xC6, - 0x01, - 0xCA, - 0x05, - 0xCE, - 0x00, - 0x0B, - 0xC7, - 0xFE, - 0xFE, - 0xFE, - 0xC3, - 0xD1, - 0xD1, - 0xD1, - 0xCA, - 0xCB, - 0xC3, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x08, - 0x86, - 0xFE, - 0xFE, - 0xA5, - 0xCF, - 0xC9, - 0xCB, - 0xC5, - 0x04, - 0xFE, - 0x00, - 0x06, - 0xFD, - 0xCB, - 0xB2, - 0x87, - 0xFE, - 0xA5, - 0x04, - 0xB2, - 0x00, - 0x03, - 0xA7, - 0xFE, - 0xFE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x08, - 0xC7, - 0xC3, - 0xCF, - 0xCF, - 0xB2, - 0xC7, - 0xFE, - 0xC5, - 0x05, - 0xB2, - 0x00, - 0x03, - 0xA7, - 0xFE, - 0xC6, - 0x00, - 0x08, - 0xB2, - 0x00, - 0x03, - 0xB5, - 0xB2, - 0xB5, - 0x00, - 0x05, - 0xB8, - 0x07, - 0xB5, - 0x0A, - 0x9D, - 0x00, - 0x0A, - 0xB8, - 0xB8, - 0xB8, - 0x9E, - 0x9E, - 0xBA, - 0xBB, - 0xBB, - 0xD1, - 0xBB, - 0x06, - 0xBA, - 0x00, - 0x06, - 0xBB, - 0xBB, - 0xBB, - 0xBA, - 0xBA, - 0xBA, - 0x07, - 0x7C, - 0x01, - 0x9E, - 0x0D, - 0x7C, - 0x00, - 0x04, - 0x56, - 0x56, - 0x57, - 0x9D, - 0x10, - 0x56, - 0x00, - 0x06, - 0x59, - 0x59, - 0x56, - 0x59, - 0x59, - 0x57, - 0x05, - 0x59, - 0x00, - 0x00, - 0x0F, - 0xE4, - 0x05, - 0xEB, - 0x0C, - 0xE1, - 0x05, - 0xD6, - 0x01, - 0xE1, - 0x01, - 0xD6, - 0x04, - 0xD7, - 0x01, - 0xE9, - 0x01, - 0xD6, - 0x08, - 0xD7, - 0x09, - 0xDF, - 0x0A, - 0xE7, - 0x07, - 0xDD, - 0x05, - 0xDC, - 0x12, - 0xE6, - 0x00, - 0x09, - 0xFD, - 0xFE, - 0xA5, - 0xDB, - 0xE6, - 0xE6, - 0xC5, - 0xFE, - 0x46, - 0x00, - 0x05, - 0xDB, - 0x00, - 0x09, - 0xC5, - 0xFE, - 0x46, - 0xCD, - 0xCC, - 0xCC, - 0xFD, - 0xFE, - 0xC5, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x11, - 0xC7, - 0xFE, - 0xC5, - 0xCE, - 0xCE, - 0xCB, - 0xC7, - 0xFE, - 0x87, - 0xC2, - 0xCE, - 0xCA, - 0x86, - 0xFE, - 0xFE, - 0xC6, - 0xCB, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x05, - 0xFD, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x2C, - 0xC6, - 0xFE, - 0xFD, - 0xA5, - 0xCB, - 0xCB, - 0xC5, - 0xFD, - 0xFE, - 0xFE, - 0x86, - 0xC9, - 0xC9, - 0xB2, - 0xA6, - 0xFE, - 0xA7, - 0xC9, - 0xB2, - 0xC9, - 0xB2, - 0xCF, - 0xC6, - 0xFE, - 0xC6, - 0xB2, - 0xB2, - 0xB2, - 0xC5, - 0xFE, - 0xFF, - 0xC5, - 0xB2, - 0xB5, - 0xA5, - 0x87, - 0xFE, - 0xFD, - 0x83, - 0xB2, - 0xB2, - 0x87, - 0xFE, - 0xA6, - 0x04, - 0xB2, - 0x00, - 0x10, - 0xB8, - 0xC6, - 0xFE, - 0x87, - 0xB2, - 0xB2, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0x04, - 0xB8, - 0x07, - 0xB5, - 0x0E, - 0x9D, - 0x00, - 0x06, - 0x9E, - 0x9E, - 0xBA, - 0xBB, - 0xBB, - 0xBB, - 0x0E, - 0xBA, - 0x12, - 0x7C, - 0x00, - 0x06, - 0x56, - 0x56, - 0x56, - 0x9D, - 0x57, - 0x57, - 0x0D, - 0x56, - 0x00, - 0x0D, - 0x59, - 0x56, - 0x56, - 0x57, - 0x59, - 0x57, - 0x59, - 0x59, - 0x59, - 0x57, - 0x59, - 0x59, - 0x59, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xE4, - 0x00, - 0x05, - 0xEB, - 0xEB, - 0xE4, - 0xE4, - 0xE4, - 0x00, - 0x05, - 0xEB, - 0x0C, - 0xE1, - 0x00, - 0x07, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x04, - 0xD7, - 0x01, - 0xD6, - 0x01, - 0xE9, - 0x08, - 0xD7, - 0x09, - 0xDF, - 0x0A, - 0xE7, - 0x07, - 0xDD, - 0x05, - 0xDC, - 0x07, - 0xE6, - 0x01, - 0xDB, - 0x01, - 0xDB, - 0x07, - 0xE6, - 0x00, - 0x19, - 0xDB, - 0xDB, - 0x87, - 0xFE, - 0xC5, - 0xE6, - 0xDB, - 0xDB, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xDB, - 0xDB, - 0xD0, - 0xD0, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0xCD, - 0xCD, - 0x87, - 0xFE, - 0xC6, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x4D, - 0xCE, - 0xC6, - 0xFE, - 0x87, - 0xCE, - 0xCE, - 0xA4, - 0xFE, - 0xFE, - 0xC4, - 0xCE, - 0xCE, - 0xCA, - 0xCA, - 0xA5, - 0xFE, - 0xFE, - 0xA5, - 0xCE, - 0xCE, - 0xCB, - 0xA4, - 0xFE, - 0xFE, - 0x86, - 0xFE, - 0xFE, - 0xA5, - 0xC9, - 0xCB, - 0xCB, - 0xCB, - 0xA6, - 0xFE, - 0xA6, - 0xCB, - 0xCB, - 0xCB, - 0xC9, - 0xC2, - 0xFD, - 0xFE, - 0x87, - 0xB2, - 0xC9, - 0xCF, - 0xA6, - 0xFF, - 0xC6, - 0xB2, - 0xC9, - 0xB2, - 0xC9, - 0xB2, - 0xA5, - 0xFE, - 0x87, - 0xB2, - 0xB2, - 0xB2, - 0x87, - 0xFE, - 0xA6, - 0xB2, - 0xAF, - 0xB2, - 0xB2, - 0xB2, - 0x87, - 0xFE, - 0xA7, - 0xB2, - 0xB2, - 0xC5, - 0xFF, - 0xC7, - 0xB5, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x13, - 0xA5, - 0xFE, - 0xFD, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB5, - 0xB8, - 0xB8, - 0x00, - 0x07, - 0xB5, - 0x0E, - 0x9D, - 0x00, - 0x06, - 0xB8, - 0x9E, - 0x9E, - 0xBA, - 0xBA, - 0xBB, - 0x0D, - 0xBA, - 0x07, - 0x7C, - 0x01, - 0xBA, - 0x0A, - 0x7C, - 0x12, - 0x56, - 0x00, - 0x07, - 0x59, - 0x59, - 0x59, - 0x56, - 0x56, - 0x59, - 0x56, - 0x00, - 0x08, - 0x59, - 0x00, - 0x00, - 0x0A, - 0xE4, - 0x07, - 0xEB, - 0x0C, - 0xE1, - 0x01, - 0xD6, - 0x01, - 0xE1, - 0x05, - 0xD6, - 0x0C, - 0xD7, - 0x0C, - 0xDF, - 0x00, - 0x03, - 0xE7, - 0xE7, - 0xB9, - 0x00, - 0x07, - 0xE7, - 0x00, - 0x07, - 0xDD, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0x0A, - 0xDC, - 0x04, - 0xE6, - 0x00, - 0x05, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xE6, - 0x00, - 0x06, - 0xDB, - 0x00, - 0x17, - 0xC6, - 0xFE, - 0xA6, - 0xDB, - 0xDB, - 0xDB, - 0xC1, - 0xFE, - 0xFE, - 0xC5, - 0xD0, - 0xD0, - 0xCC, - 0xCD, - 0xCD, - 0x46, - 0xFE, - 0xC5, - 0xCD, - 0xCD, - 0x86, - 0xFE, - 0xC7, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1C, - 0xCE, - 0xC5, - 0xFE, - 0xFD, - 0xCE, - 0xCB, - 0xA5, - 0xFE, - 0xFD, - 0xCE, - 0xCA, - 0xCA, - 0xCE, - 0xCE, - 0xCE, - 0xA6, - 0xFE, - 0x87, - 0xCB, - 0xCB, - 0xCB, - 0xC5, - 0xFF, - 0xFD, - 0xCB, - 0xA7, - 0xFE, - 0xC7, - 0x04, - 0xCB, - 0x00, - 0x12, - 0xC6, - 0xFE, - 0xA7, - 0xCB, - 0xC9, - 0xC9, - 0xCF, - 0xC9, - 0x86, - 0xFE, - 0xFD, - 0xCB, - 0xCB, - 0xCB, - 0xC5, - 0xFE, - 0xC7, - 0xAF, - 0x04, - 0xB2, - 0x00, - 0x17, - 0xA4, - 0xFE, - 0xFD, - 0xB2, - 0xB2, - 0xB2, - 0xA7, - 0xFE, - 0xC5, - 0xB5, - 0xB5, - 0xB2, - 0xB2, - 0xB2, - 0xC3, - 0xFF, - 0xFE, - 0xA4, - 0xB5, - 0xA5, - 0xFF, - 0xFE, - 0x83, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x11, - 0xC3, - 0xFE, - 0xFE, - 0xA4, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB5, - 0xB2, - 0x00, - 0x0B, - 0xB5, - 0x0D, - 0x9D, - 0x01, - 0xB8, - 0x01, - 0xB8, - 0x04, - 0xBA, - 0x00, - 0x03, - 0x9E, - 0x9E, - 0x9E, - 0x00, - 0x08, - 0xBA, - 0x00, - 0x04, - 0x75, - 0x9E, - 0x7C, - 0x9E, - 0x0D, - 0x7C, - 0x05, - 0x56, - 0x0A, - 0x57, - 0x09, - 0x56, - 0x00, - 0x06, - 0x59, - 0x56, - 0x56, - 0x57, - 0x59, - 0x57, - 0x05, - 0x59, - 0x00, - 0x00, - 0x0A, - 0xE4, - 0x07, - 0xEB, - 0x0C, - 0xE1, - 0x00, - 0x07, - 0xD6, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0x00, - 0x0C, - 0xD7, - 0x0C, - 0xDF, - 0x01, - 0xE7, - 0x01, - 0xB9, - 0x08, - 0xE7, - 0x05, - 0xDD, - 0x01, - 0xB9, - 0x01, - 0xDD, - 0x0A, - 0xDC, - 0x04, - 0xE6, - 0x00, - 0x05, - 0xDB, - 0xDB, - 0xE6, - 0xE6, - 0xE6, - 0x00, - 0x05, - 0xDB, - 0x00, - 0x04, - 0xCD, - 0xC5, - 0xFE, - 0xC7, - 0x04, - 0xDB, - 0x00, - 0x47, - 0xC7, - 0xFE, - 0xC5, - 0xD0, - 0xCC, - 0xCD, - 0xCD, - 0xCD, - 0x87, - 0xFE, - 0xC6, - 0xCD, - 0xCA, - 0xC5, - 0xFE, - 0x46, - 0xCE, - 0xCD, - 0xCD, - 0xCD, - 0xCE, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xCB, - 0xA5, - 0xFE, - 0xFD, - 0xCB, - 0xCB, - 0xCA, - 0xCE, - 0xCE, - 0xCE, - 0xA4, - 0xFE, - 0xFD, - 0xCB, - 0xCB, - 0xCB, - 0xC6, - 0xFE, - 0xA7, - 0xCB, - 0xC3, - 0xFE, - 0xFE, - 0xC5, - 0xCB, - 0xCB, - 0xCB, - 0xC3, - 0xFE, - 0xFE, - 0x87, - 0xA5, - 0xC9, - 0xC9, - 0xB2, - 0xA4, - 0xFE, - 0xFE, - 0xA4, - 0xCF, - 0xCB, - 0xA4, - 0xFE, - 0xFD, - 0xAF, - 0xB2, - 0x00, - 0x04, - 0xC9, - 0x00, - 0x08, - 0xFD, - 0xFF, - 0xC2, - 0xB2, - 0xB2, - 0xA7, - 0xFF, - 0xC5, - 0x06, - 0xB2, - 0x00, - 0x08, - 0x87, - 0xFE, - 0xC5, - 0xB5, - 0x83, - 0xFE, - 0xFF, - 0xA4, - 0x05, - 0xB2, - 0x00, - 0x0F, - 0xFD, - 0xFE, - 0xA5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB5, - 0xB2, - 0x00, - 0x0D, - 0xB5, - 0x0E, - 0x9D, - 0x01, - 0xB8, - 0x06, - 0x9E, - 0x01, - 0x7C, - 0x05, - 0xBA, - 0x00, - 0x06, - 0x9E, - 0xBA, - 0x9E, - 0x7C, - 0x9E, - 0xBA, - 0x04, - 0x7C, - 0x00, - 0x08, - 0x9E, - 0x7C, - 0x9E, - 0x7C, - 0x7C, - 0x9E, - 0x56, - 0x9E, - 0x04, - 0x56, - 0x01, - 0x57, - 0x15, - 0x56, - 0x00, - 0x0A, - 0x57, - 0x59, - 0x59, - 0x57, - 0x59, - 0x57, - 0x59, - 0x59, - 0x59, - 0x57, - 0x00, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x0C, - 0xE1, - 0xE4, - 0xEB, - 0xE4, - 0xE4, - 0xEB, - 0xEB, - 0xE1, - 0xE1, - 0xE1, - 0xEB, - 0xEB, - 0x08, - 0xE1, - 0x00, - 0x05, - 0xD6, - 0xD6, - 0xE1, - 0xE1, - 0xE1, - 0x00, - 0x06, - 0xD6, - 0x07, - 0xD7, - 0x00, - 0x05, - 0xDF, - 0xDF, - 0xDF, - 0xD7, - 0xD7, - 0x00, - 0x0A, - 0xDF, - 0x00, - 0x0C, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xDD, - 0xE7, - 0xE7, - 0xE7, - 0x04, - 0xB9, - 0x00, - 0x03, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0x0A, - 0xDC, - 0x06, - 0xE6, - 0x09, - 0xDB, - 0x00, - 0x3D, - 0xC4, - 0xFE, - 0xFE, - 0xC2, - 0xD0, - 0xD0, - 0xD0, - 0xC6, - 0xFE, - 0x87, - 0xD3, - 0xD0, - 0xD3, - 0xCD, - 0xDE, - 0xC5, - 0xFE, - 0xC7, - 0xCE, - 0xCE, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0xCE, - 0xCE, - 0xCE, - 0xCA, - 0xCA, - 0xFD, - 0xFF, - 0xC5, - 0xCE, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0xCA, - 0xCA, - 0xCA, - 0xCE, - 0xCE, - 0xA2, - 0xFE, - 0xFF, - 0xA4, - 0xCB, - 0xCB, - 0x87, - 0xFE, - 0xC6, - 0xCB, - 0xCB, - 0xC6, - 0xFE, - 0xFD, - 0xC0, - 0xCB, - 0xCB, - 0xCB, - 0xA5, - 0x00, - 0x09, - 0xFE, - 0x00, - 0x08, - 0xC5, - 0xC9, - 0xB2, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0xAF, - 0x04, - 0xB2, - 0x00, - 0x08, - 0xC7, - 0xFE, - 0xA5, - 0xB2, - 0xB5, - 0xC6, - 0xFE, - 0x87, - 0x05, - 0xB2, - 0x00, - 0x09, - 0xB5, - 0x86, - 0xFE, - 0x87, - 0xB2, - 0xB5, - 0xC7, - 0xFE, - 0xC5, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x0F, - 0x87, - 0xFF, - 0xC6, - 0xB2, - 0xB5, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0x9A, - 0x00, - 0x0A, - 0xB5, - 0x00, - 0x03, - 0x9A, - 0x9A, - 0x9A, - 0x00, - 0x04, - 0xB5, - 0x0A, - 0x9D, - 0x00, - 0x03, - 0xB2, - 0xB8, - 0xB8, - 0x00, - 0x04, - 0x9E, - 0x09, - 0xBA, - 0x00, - 0x03, - 0x9E, - 0x7C, - 0x9E, - 0x00, - 0x08, - 0x7C, - 0x00, - 0x07, - 0x9E, - 0x9E, - 0x9E, - 0x56, - 0x56, - 0x9D, - 0x56, - 0x00, - 0x0E, - 0x57, - 0x00, - 0x0D, - 0x56, - 0x57, - 0x56, - 0x56, - 0x56, - 0x57, - 0x56, - 0x56, - 0x56, - 0x59, - 0x57, - 0x59, - 0x57, - 0x00, - 0x06, - 0x59, - 0x00, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x07, - 0xEB, - 0xEB, - 0xE4, - 0xE1, - 0xE4, - 0xE1, - 0xE4, - 0x00, - 0x0C, - 0xE1, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xE1, - 0x00, - 0x04, - 0xD6, - 0x01, - 0xE1, - 0x0B, - 0xD7, - 0x0F, - 0xDF, - 0x00, - 0x0C, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xDD, - 0xDD, - 0xB9, - 0xDD, - 0xB9, - 0x10, - 0xDC, - 0x00, - 0x03, - 0xDB, - 0xDB, - 0xDB, - 0x00, - 0x04, - 0xE6, - 0x00, - 0x03, - 0xDB, - 0xDB, - 0xCD, - 0x00, - 0x05, - 0xDB, - 0x00, - 0x19, - 0xCC, - 0xCC, - 0x46, - 0xFE, - 0xA4, - 0xD0, - 0xD0, - 0xCC, - 0xC5, - 0xFE, - 0x46, - 0xC1, - 0xD0, - 0xD0, - 0xCD, - 0xCD, - 0xA5, - 0xFE, - 0xFE, - 0xA2, - 0xCD, - 0xD1, - 0xFD, - 0xFE, - 0x86, - 0x00, - 0x05, - 0xCA, - 0x00, - 0x23, - 0xC7, - 0xFE, - 0x86, - 0xCA, - 0xCA, - 0xA7, - 0xFE, - 0x86, - 0xCB, - 0xCA, - 0xD1, - 0xD1, - 0xCB, - 0xC0, - 0xFE, - 0xFE, - 0xA5, - 0xCB, - 0xCB, - 0xFD, - 0xFE, - 0xC5, - 0xCB, - 0xCB, - 0xC0, - 0x46, - 0xFE, - 0xA6, - 0xCB, - 0xC9, - 0xC9, - 0xC9, - 0xC0, - 0x86, - 0xC7, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x15, - 0xC6, - 0xB2, - 0xC9, - 0xC9, - 0xC7, - 0xFE, - 0xC5, - 0xB2, - 0xAF, - 0xB2, - 0xC9, - 0xC9, - 0xC6, - 0xFE, - 0xC5, - 0xB8, - 0xAE, - 0xA5, - 0xFE, - 0xFD, - 0xC0, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x08, - 0x86, - 0xFE, - 0xA7, - 0xB2, - 0xB2, - 0x87, - 0xFE, - 0xA7, - 0x04, - 0xB2, - 0x00, - 0x10, - 0xB5, - 0xC6, - 0xFE, - 0xA7, - 0xB5, - 0xB2, - 0xB5, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0xAF, - 0x9A, - 0x0A, - 0xB5, - 0x00, - 0x03, - 0x9A, - 0x9A, - 0x9A, - 0x00, - 0x05, - 0xB5, - 0x01, - 0x9D, - 0x01, - 0xB5, - 0x05, - 0x9D, - 0x00, - 0x0B, - 0x7A, - 0x9A, - 0x9D, - 0x9D, - 0x9D, - 0xB8, - 0xB8, - 0x56, - 0x9E, - 0x9E, - 0xBA, - 0x00, - 0x06, - 0x9E, - 0x00, - 0x09, - 0x7C, - 0xBA, - 0xBA, - 0x7C, - 0x7C, - 0x7C, - 0xBA, - 0xBA, - 0xBA, - 0x00, - 0x04, - 0x9E, - 0x01, - 0x56, - 0x04, - 0x9D, - 0x0E, - 0x57, - 0x00, - 0x03, - 0x9D, - 0x57, - 0x57, - 0x00, - 0x05, - 0x56, - 0x00, - 0x0C, - 0x57, - 0x56, - 0x57, - 0x59, - 0x57, - 0x59, - 0x57, - 0x59, - 0x57, - 0x57, - 0x57, - 0x59, - 0x00, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x07, - 0xEB, - 0xE4, - 0xE1, - 0xE4, - 0xEB, - 0xE4, - 0xEB, - 0x00, - 0x0C, - 0xE1, - 0x01, - 0xD6, - 0x01, - 0xE1, - 0x04, - 0xD6, - 0x01, - 0xE1, - 0x01, - 0xD6, - 0x0B, - 0xD7, - 0x0F, - 0xDF, - 0x00, - 0x03, - 0xE7, - 0xE7, - 0xB9, - 0x00, - 0x04, - 0xE7, - 0x00, - 0x05, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0x10, - 0xDC, - 0x00, - 0x03, - 0xDB, - 0xDB, - 0xDB, - 0x00, - 0x04, - 0xE6, - 0x04, - 0xDB, - 0x00, - 0x60, - 0xCC, - 0xDB, - 0xDB, - 0xDB, - 0xCC, - 0xCC, - 0xA7, - 0xFE, - 0xC5, - 0xDE, - 0xD0, - 0xCC, - 0xA4, - 0xFE, - 0xFE, - 0x87, - 0xD3, - 0xD3, - 0xCD, - 0xCD, - 0xC5, - 0xFF, - 0xFE, - 0xC4, - 0xCE, - 0xCD, - 0x87, - 0xFE, - 0xFE, - 0xA4, - 0xCE, - 0xCA, - 0xCA, - 0xCA, - 0xC7, - 0xFE, - 0xA6, - 0xCA, - 0xCA, - 0xC5, - 0xFF, - 0xFE, - 0xA4, - 0xCB, - 0xCA, - 0xCB, - 0xCB, - 0xA4, - 0xFE, - 0xFE, - 0xA4, - 0xCB, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0xCB, - 0xCB, - 0xCB, - 0xC5, - 0xFE, - 0xFE, - 0xA4, - 0xC9, - 0xC9, - 0xC9, - 0xB2, - 0xC9, - 0xCB, - 0xC9, - 0xC9, - 0xC9, - 0xCF, - 0x86, - 0xFE, - 0xA7, - 0xAF, - 0xAF, - 0xC9, - 0xC6, - 0xFE, - 0xC6, - 0xAF, - 0xAE, - 0xC9, - 0xC9, - 0xC9, - 0xC5, - 0xFE, - 0xA6, - 0xB2, - 0xB8, - 0xB2, - 0xA7, - 0xFE, - 0x87, - 0x05, - 0xB2, - 0x00, - 0x20, - 0x87, - 0xFE, - 0x87, - 0xB2, - 0xB2, - 0xC5, - 0xFF, - 0xFE, - 0xC5, - 0xB5, - 0x9A, - 0xB5, - 0xAB, - 0xC6, - 0xFE, - 0xFD, - 0xB5, - 0xB5, - 0xB5, - 0xB2, - 0xB5, - 0xB5, - 0xB5, - 0xB2, - 0xB5, - 0xB2, - 0xB5, - 0x9A, - 0x9A, - 0xB5, - 0x9A, - 0x9A, - 0x06, - 0xB5, - 0x00, - 0x03, - 0x9A, - 0x9A, - 0x9A, - 0x00, - 0x07, - 0xB5, - 0x05, - 0x9D, - 0x00, - 0x09, - 0xB5, - 0x9D, - 0x9D, - 0x9D, - 0x7A, - 0x9D, - 0x9D, - 0xB8, - 0xB8, - 0x00, - 0x0A, - 0x9E, - 0x00, - 0x05, - 0x7C, - 0x9E, - 0x7C, - 0x9E, - 0xBA, - 0x00, - 0x04, - 0x9E, - 0x00, - 0x05, - 0x56, - 0x56, - 0x9D, - 0x9D, - 0x9D, - 0x00, - 0x0A, - 0x57, - 0x00, - 0x05, - 0x9D, - 0x57, - 0x9D, - 0x57, - 0x9D, - 0x00, - 0x0A, - 0x57, - 0x00, - 0x0B, - 0x56, - 0x57, - 0x56, - 0x57, - 0x59, - 0x59, - 0x57, - 0x57, - 0x59, - 0x59, - 0x59, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE4, - 0x05, - 0xEB, - 0x01, - 0xE1, - 0x01, - 0xE4, - 0x0C, - 0xE1, - 0x07, - 0xD6, - 0x01, - 0xE9, - 0x01, - 0xE9, - 0x0A, - 0xD7, - 0x0E, - 0xDF, - 0x00, - 0x0E, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0x11, - 0xDC, - 0x00, - 0x05, - 0xDB, - 0xDB, - 0xDC, - 0xDC, - 0xE6, - 0x00, - 0x07, - 0xDB, - 0x05, - 0xD0, - 0x00, - 0x34, - 0xCC, - 0xCD, - 0xC6, - 0xFE, - 0xC6, - 0xD0, - 0xD0, - 0xCD, - 0xC1, - 0xFE, - 0xFE, - 0xFD, - 0x87, - 0xC4, - 0xCD, - 0xC2, - 0xA7, - 0xFE, - 0xFE, - 0xA2, - 0xCD, - 0xCD, - 0x86, - 0xFE, - 0xFD, - 0xFE, - 0xC5, - 0xCA, - 0xCE, - 0xC5, - 0xFE, - 0xFE, - 0x86, - 0xCA, - 0xCA, - 0xCB, - 0xA6, - 0xFE, - 0xFE, - 0xC5, - 0xCB, - 0xCB, - 0xC2, - 0xA7, - 0xFE, - 0xC7, - 0xCB, - 0xCA, - 0xA5, - 0xFE, - 0xFE, - 0xC0, - 0x04, - 0xCB, - 0x00, - 0x45, - 0xA7, - 0xFE, - 0xA7, - 0xCB, - 0xCB, - 0xCB, - 0xA4, - 0xA6, - 0xC5, - 0xC9, - 0xC9, - 0xCB, - 0xA5, - 0xC7, - 0xFE, - 0x87, - 0xAF, - 0xAE, - 0xC9, - 0xC5, - 0xFE, - 0xC7, - 0xAE, - 0xAE, - 0xC9, - 0xC9, - 0xAF, - 0xA5, - 0xFE, - 0xC7, - 0xAE, - 0xC9, - 0xAE, - 0xC3, - 0xFD, - 0xFE, - 0x87, - 0xC3, - 0xAE, - 0xB2, - 0xC5, - 0xFE, - 0xFE, - 0xC5, - 0xAF, - 0xAF, - 0xA5, - 0xFE, - 0xFE, - 0xFD, - 0xA6, - 0xC0, - 0x9A, - 0xA5, - 0xFD, - 0xFE, - 0xA7, - 0xB2, - 0xB2, - 0xB5, - 0x9A, - 0x9A, - 0xAF, - 0xB5, - 0xB5, - 0x9A, - 0x9A, - 0xAF, - 0xB5, - 0x00, - 0x13, - 0x9A, - 0x01, - 0xB5, - 0x01, - 0xB5, - 0x09, - 0x9D, - 0x01, - 0xB5, - 0x05, - 0x9D, - 0x00, - 0x0F, - 0xB8, - 0xB8, - 0x9E, - 0x9E, - 0x9E, - 0x56, - 0x9E, - 0x9E, - 0x56, - 0x9E, - 0x9E, - 0x9E, - 0x56, - 0x9E, - 0x56, - 0x00, - 0x06, - 0x9D, - 0x05, - 0x57, - 0x01, - 0x43, - 0x1B, - 0x57, - 0x00, - 0x04, - 0x59, - 0x57, - 0x57, - 0x57, - 0x00, - 0x00, - 0x01, - 0xE4, - 0x04, - 0xEB, - 0x00, - 0x03, - 0xE1, - 0xE4, - 0xEB, - 0x00, - 0x0D, - 0xE1, - 0x00, - 0x08, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE9, - 0xD6, - 0x0A, - 0xD7, - 0x06, - 0xDF, - 0x01, - 0xB9, - 0x07, - 0xDF, - 0x00, - 0x0E, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xDD, - 0xDD, - 0xDD, - 0xB9, - 0xDD, - 0x11, - 0xDC, - 0x00, - 0x04, - 0xDB, - 0xDB, - 0xDC, - 0xDC, - 0x08, - 0xDB, - 0x01, - 0xD0, - 0x05, - 0xCC, - 0x00, - 0x04, - 0xCD, - 0xC5, - 0xFE, - 0xC7, - 0x04, - 0xCC, - 0x00, - 0x04, - 0xC7, - 0xFE, - 0x86, - 0xA7, - 0x05, - 0xFE, - 0x00, - 0x08, - 0xA6, - 0xCD, - 0xCD, - 0xCA, - 0xC5, - 0xFE, - 0xFD, - 0xC5, - 0x06, - 0xFE, - 0x00, - 0x07, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xCB, - 0xA6, - 0xFF, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x12, - 0xA5, - 0xCB, - 0xCB, - 0xC5, - 0xFE, - 0xC7, - 0xC8, - 0xCB, - 0xCB, - 0xCB, - 0xC9, - 0xA5, - 0xFE, - 0xFE, - 0xC5, - 0xCB, - 0xCB, - 0xC2, - 0x07, - 0xFE, - 0x00, - 0x05, - 0xFF, - 0xA5, - 0xAF, - 0xAF, - 0xC7, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x0B, - 0x87, - 0xC9, - 0x83, - 0xFE, - 0xFE, - 0xC0, - 0xC9, - 0xC9, - 0xC9, - 0xC3, - 0xFD, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x0A, - 0x87, - 0xAF, - 0xAF, - 0xAF, - 0x83, - 0xFE, - 0xFE, - 0xC5, - 0xFD, - 0xFF, - 0x04, - 0xFE, - 0x00, - 0x0E, - 0xC5, - 0xB2, - 0xB2, - 0xB2, - 0xB5, - 0xB5, - 0xB5, - 0xB2, - 0xB2, - 0x9A, - 0xB5, - 0x9A, - 0x9A, - 0xAF, - 0x13, - 0x9A, - 0x00, - 0x03, - 0xB5, - 0xB5, - 0xB5, - 0x00, - 0x07, - 0x9D, - 0x01, - 0x7A, - 0x05, - 0xB5, - 0x00, - 0x05, - 0x9D, - 0x9D, - 0xB8, - 0xB8, - 0xB8, - 0x00, - 0x07, - 0x9E, - 0x04, - 0x9D, - 0x00, - 0x06, - 0xB5, - 0x57, - 0xB5, - 0x57, - 0x7A, - 0x7A, - 0x04, - 0x57, - 0x00, - 0x0B, - 0x7A, - 0x57, - 0x43, - 0x7A, - 0x57, - 0x9D, - 0x57, - 0x9D, - 0x57, - 0x57, - 0x7A, - 0x00, - 0x04, - 0x57, - 0x01, - 0x43, - 0x0C, - 0x57, - 0x00, - 0x04, - 0x43, - 0x57, - 0x57, - 0x57, - 0x00, - 0x00, - 0x01, - 0xE4, - 0x07, - 0xEB, - 0x0C, - 0xE1, - 0x08, - 0xD6, - 0x01, - 0xE9, - 0x07, - 0xD7, - 0x08, - 0xDF, - 0x01, - 0xB9, - 0x08, - 0xDF, - 0x01, - 0xE7, - 0x01, - 0xB9, - 0x04, - 0xE7, - 0x00, - 0x08, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0x11, - 0xDC, - 0x0B, - 0xDB, - 0x01, - 0xD0, - 0x04, - 0xCC, - 0x00, - 0x22, - 0xCD, - 0xCC, - 0xCC, - 0xA4, - 0xFE, - 0xFE, - 0xC1, - 0xCD, - 0xCC, - 0xCC, - 0xA6, - 0xFE, - 0x87, - 0xCD, - 0xC5, - 0xFD, - 0xFE, - 0xFE, - 0xC6, - 0xCD, - 0xB1, - 0xB1, - 0xCD, - 0xC4, - 0xFE, - 0xFE, - 0xA4, - 0xC4, - 0x87, - 0xFE, - 0xFE, - 0xA7, - 0xA5, - 0xCB, - 0x04, - 0xCA, - 0x00, - 0x0E, - 0xCB, - 0xA5, - 0xA6, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0xC3, - 0xCB, - 0xCB, - 0xC9, - 0x87, - 0xFE, - 0xA6, - 0x06, - 0xCB, - 0x00, - 0x12, - 0xA6, - 0xFE, - 0xC7, - 0xC0, - 0xCB, - 0xC9, - 0xC3, - 0x86, - 0xC7, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0xA5, - 0xC9, - 0xC9, - 0xC9, - 0x87, - 0x06, - 0xFE, - 0x00, - 0x07, - 0xC7, - 0xC9, - 0xAE, - 0xFD, - 0xFE, - 0xA4, - 0xAF, - 0x00, - 0x04, - 0xC9, - 0x00, - 0x06, - 0x86, - 0xC7, - 0xFE, - 0xFE, - 0xFD, - 0xC5, - 0x05, - 0xAF, - 0x00, - 0x09, - 0xFD, - 0xFE, - 0xC5, - 0xC0, - 0xC6, - 0xFE, - 0xFE, - 0xFD, - 0xC5, - 0x00, - 0x04, - 0xB5, - 0x06, - 0x98, - 0x00, - 0x03, - 0x9A, - 0xB5, - 0xAF, - 0x00, - 0x18, - 0x9A, - 0x00, - 0x07, - 0xB5, - 0xB5, - 0x9D, - 0x9D, - 0x9D, - 0x7A, - 0x9D, - 0x00, - 0x05, - 0x7A, - 0x0D, - 0x9D, - 0x00, - 0x0F, - 0x7A, - 0x57, - 0x7A, - 0x9D, - 0x57, - 0x7A, - 0x57, - 0xB5, - 0x57, - 0x7A, - 0x57, - 0x57, - 0x57, - 0x7A, - 0x43, - 0x00, - 0x19, - 0x57, - 0x00, - 0x05, - 0x43, - 0x57, - 0x57, - 0x57, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xEB, - 0xE1, - 0xE4, - 0x00, - 0x05, - 0xE1, - 0x01, - 0xED, - 0x01, - 0xED, - 0x05, - 0xE1, - 0x00, - 0x07, - 0xD6, - 0xD6, - 0xD6, - 0xE1, - 0xE9, - 0xD7, - 0xD7, - 0x00, - 0x04, - 0xD6, - 0x08, - 0xD7, - 0x0D, - 0xDF, - 0x00, - 0x12, - 0xBE, - 0xDF, - 0xDF, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0xDD, - 0x13, - 0xDC, - 0x01, - 0xE6, - 0x08, - 0xDB, - 0x00, - 0x11, - 0xCC, - 0xD0, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0x46, - 0xFE, - 0xA4, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x07, - 0xCD, - 0x15, - 0xCA, - 0x00, - 0x05, - 0xCB, - 0xCB, - 0xAD, - 0xC9, - 0xC9, - 0x00, - 0x05, - 0xC8, - 0x04, - 0xC9, - 0x00, - 0x05, - 0xC8, - 0xCA, - 0xCA, - 0xCA, - 0xCB, - 0x00, - 0x11, - 0xC9, - 0x00, - 0x06, - 0xAD, - 0xC9, - 0xAE, - 0xFD, - 0xFE, - 0xC5, - 0x04, - 0xC9, - 0x00, - 0x05, - 0xAF, - 0xC9, - 0xAF, - 0xC9, - 0xAE, - 0x00, - 0x07, - 0xC9, - 0x0A, - 0xAF, - 0x04, - 0xB2, - 0x00, - 0x04, - 0x98, - 0x9A, - 0x9A, - 0x9A, - 0x08, - 0x98, - 0x01, - 0x9A, - 0x01, - 0xB5, - 0x0D, - 0x9A, - 0x00, - 0x03, - 0x98, - 0x96, - 0x96, - 0x00, - 0x0D, - 0x9A, - 0x00, - 0x05, - 0x9D, - 0x7A, - 0x9D, - 0x7A, - 0x9D, - 0x00, - 0x04, - 0x7A, - 0x01, - 0x9D, - 0x01, - 0x7A, - 0x0A, - 0x9D, - 0x00, - 0x11, - 0x7A, - 0x7A, - 0x43, - 0x43, - 0x7A, - 0x9D, - 0x57, - 0x7A, - 0x7A, - 0x43, - 0x7A, - 0x57, - 0x7A, - 0x9D, - 0x57, - 0x57, - 0x7A, - 0x00, - 0x06, - 0x57, - 0x00, - 0x06, - 0x7A, - 0x57, - 0x7A, - 0x57, - 0x57, - 0x57, - 0x05, - 0x43, - 0x05, - 0x57, - 0x01, - 0x43, - 0x05, - 0x57, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0xEB, - 0xE4, - 0xEB, - 0x00, - 0x05, - 0xE1, - 0x01, - 0xED, - 0x01, - 0xED, - 0x05, - 0xE1, - 0x00, - 0x07, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE9, - 0xD7, - 0xD7, - 0x00, - 0x04, - 0xD6, - 0x08, - 0xD7, - 0x08, - 0xDF, - 0x00, - 0x03, - 0xB9, - 0xDF, - 0xB9, - 0x00, - 0x06, - 0xDF, - 0x00, - 0x0E, - 0xE7, - 0xB9, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0xDD, - 0xB9, - 0xDD, - 0x13, - 0xDC, - 0x01, - 0xE6, - 0x01, - 0xDC, - 0x07, - 0xDB, - 0x00, - 0x11, - 0xD0, - 0xCC, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0xC7, - 0xFE, - 0xC5, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x07, - 0xCD, - 0x15, - 0xCA, - 0x00, - 0x03, - 0xCB, - 0xCB, - 0xCB, - 0x00, - 0x0B, - 0xC8, - 0x00, - 0x05, - 0xCB, - 0xCA, - 0xCA, - 0xCA, - 0xCB, - 0x00, - 0x0F, - 0xC9, - 0x00, - 0x08, - 0xAD, - 0xAD, - 0xAD, - 0xC9, - 0xAE, - 0x87, - 0xFE, - 0xC6, - 0x04, - 0xC9, - 0x05, - 0xAF, - 0x07, - 0xC9, - 0x0A, - 0xAF, - 0x04, - 0xB2, - 0x0C, - 0x98, - 0x01, - 0x9A, - 0x01, - 0x98, - 0x06, - 0xB5, - 0x07, - 0x9A, - 0x00, - 0x03, - 0x98, - 0x96, - 0x96, - 0x00, - 0x0D, - 0x9A, - 0x09, - 0x7A, - 0x00, - 0x05, - 0x9D, - 0x7A, - 0x9D, - 0x7A, - 0x9D, - 0x00, - 0x05, - 0x7A, - 0x00, - 0x0A, - 0x9D, - 0x9D, - 0x7A, - 0x43, - 0x43, - 0x7A, - 0x57, - 0x9D, - 0x9D, - 0x9D, - 0x04, - 0x7A, - 0x01, - 0x9D, - 0x05, - 0x57, - 0x01, - 0x7A, - 0x0A, - 0x57, - 0x00, - 0x05, - 0x43, - 0x57, - 0x43, - 0x57, - 0x43, - 0x00, - 0x06, - 0x57, - 0x00, - 0x06, - 0x43, - 0x57, - 0x57, - 0x43, - 0x57, - 0x57, - 0x00, - 0x00, - 0x00, - 0x03, - 0xE1, - 0xEB, - 0xEB, - 0x00, - 0x09, - 0xE1, - 0x00, - 0x0C, - 0xD6, - 0xE1, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xE9, - 0xD7, - 0xD7, - 0xD6, - 0xD6, - 0x08, - 0xD7, - 0x11, - 0xDF, - 0x00, - 0x10, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0xE7, - 0xB9, - 0xE7, - 0xDD, - 0xDD, - 0xDC, - 0xDC, - 0xDC, - 0xDD, - 0xDD, - 0x0C, - 0xDC, - 0x06, - 0xDB, - 0x00, - 0x06, - 0xDC, - 0xDB, - 0xDB, - 0xDB, - 0xD0, - 0xD0, - 0x04, - 0xCC, - 0x01, - 0xD0, - 0x01, - 0xD0, - 0x05, - 0xCD, - 0x00, - 0x07, - 0xD0, - 0xD0, - 0xCC, - 0xCC, - 0xC6, - 0xFE, - 0xC6, - 0x00, - 0x0A, - 0xCD, - 0x00, - 0x05, - 0xCA, - 0xCA, - 0xCA, - 0xCD, - 0xCD, - 0x00, - 0x11, - 0xCA, - 0x0A, - 0xC8, - 0x07, - 0xCA, - 0x00, - 0x04, - 0xCB, - 0xCA, - 0xC8, - 0xC8, - 0x07, - 0xC9, - 0x07, - 0xCB, - 0x00, - 0x0F, - 0xC9, - 0xC9, - 0xC9, - 0xC5, - 0xFE, - 0xC7, - 0xC9, - 0xCB, - 0xC9, - 0xC9, - 0xAF, - 0xC0, - 0xFE, - 0xFE, - 0xC3, - 0x00, - 0x07, - 0xC9, - 0x0C, - 0xAF, - 0x0A, - 0x98, - 0x00, - 0x05, - 0x9A, - 0x98, - 0x98, - 0x98, - 0x9A, - 0x00, - 0x06, - 0x98, - 0x07, - 0x9A, - 0x00, - 0x04, - 0x98, - 0x98, - 0x96, - 0x96, - 0x0F, - 0x9A, - 0x01, - 0xB5, - 0x01, - 0xB5, - 0x05, - 0x7A, - 0x00, - 0x03, - 0x9D, - 0x7A, - 0x9D, - 0x00, - 0x0B, - 0x7A, - 0x00, - 0x05, - 0x43, - 0x43, - 0x7A, - 0x57, - 0x57, - 0x00, - 0x05, - 0x7A, - 0x00, - 0x03, - 0x9D, - 0x9D, - 0x9D, - 0x00, - 0x05, - 0x57, - 0x00, - 0x04, - 0x43, - 0x57, - 0x57, - 0x43, - 0x05, - 0x57, - 0x05, - 0x43, - 0x00, - 0x05, - 0x57, - 0x57, - 0x43, - 0x57, - 0x43, - 0x00, - 0x06, - 0x57, - 0x01, - 0x43, - 0x00, - 0x00, - 0x0B, - 0xE1, - 0x00, - 0x09, - 0xD6, - 0xD6, - 0xE1, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0x00, - 0x0C, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x03, - 0xD7, - 0xD7, - 0xD7, - 0x00, - 0x05, - 0xDF, - 0x00, - 0x10, - 0xB9, - 0xDF, - 0xDF, - 0xDF, - 0xE7, - 0xB9, - 0xE7, - 0xE7, - 0xE7, - 0xDD, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0xB9, - 0xDD, - 0x11, - 0xDC, - 0x09, - 0xDB, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x04, - 0xCC, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xCC, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x07, - 0xD0, - 0xD0, - 0xCC, - 0xCD, - 0xC5, - 0xFE, - 0xC7, - 0x00, - 0x0F, - 0xCD, - 0x07, - 0xCA, - 0x13, - 0xC8, - 0x0A, - 0xCA, - 0x10, - 0xC8, - 0x05, - 0xC9, - 0x00, - 0x0C, - 0xCB, - 0xCB, - 0xCB, - 0xC9, - 0xC9, - 0xC9, - 0xC0, - 0xFE, - 0xFE, - 0xC3, - 0xC9, - 0xC9, - 0x07, - 0xAE, - 0x0A, - 0xAF, - 0x09, - 0x98, - 0x00, - 0x03, - 0x9A, - 0x9A, - 0x9A, - 0x00, - 0x14, - 0x98, - 0x00, - 0x03, - 0x9A, - 0xB5, - 0xB5, - 0x00, - 0x0E, - 0x9A, - 0x01, - 0x7A, - 0x04, - 0x9A, - 0x00, - 0x03, - 0x7A, - 0x9D, - 0x9D, - 0x00, - 0x0E, - 0x7A, - 0x00, - 0x19, - 0x43, - 0x7A, - 0x7A, - 0x43, - 0x7A, - 0x43, - 0x7A, - 0x43, - 0x43, - 0x43, - 0x57, - 0x7A, - 0x43, - 0x7A, - 0x43, - 0x7A, - 0x43, - 0x43, - 0x43, - 0x57, - 0x43, - 0x57, - 0x43, - 0x57, - 0x43, - 0x00, - 0x06, - 0x57, - 0x09, - 0x43, - 0x01, - 0x57, - 0x00, - 0x00, - 0x0B, - 0xE1, - 0x00, - 0x09, - 0xD6, - 0xE1, - 0xE1, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0x00, - 0x0D, - 0xD7, - 0x00, - 0x1B, - 0xDF, - 0xDF, - 0xDF, - 0xD7, - 0xD7, - 0xD7, - 0xDF, - 0xB9, - 0xDF, - 0xB9, - 0xDF, - 0xDF, - 0xE7, - 0xE7, - 0xE7, - 0xB9, - 0xE7, - 0xE7, - 0xDD, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xDC, - 0xDC, - 0xDD, - 0xDD, - 0x00, - 0x11, - 0xDC, - 0x09, - 0xDB, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x04, - 0xCC, - 0x00, - 0x03, - 0xD0, - 0xD0, - 0xCC, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x03, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x13, - 0xCD, - 0x07, - 0xCA, - 0x13, - 0xC8, - 0x0A, - 0xCA, - 0x10, - 0xC8, - 0x05, - 0xC9, - 0x00, - 0x0C, - 0xCB, - 0xCB, - 0xCB, - 0xC9, - 0xC9, - 0xC9, - 0xC0, - 0xFE, - 0xFE, - 0xC3, - 0xC9, - 0xC9, - 0x07, - 0xAE, - 0x0A, - 0xAF, - 0x0A, - 0x98, - 0x01, - 0x9A, - 0x01, - 0x9A, - 0x14, - 0x98, - 0x01, - 0x9A, - 0x01, - 0xB5, - 0x14, - 0x9A, - 0x0E, - 0x7A, - 0x01, - 0x43, - 0x04, - 0x7A, - 0x00, - 0x08, - 0x43, - 0x7A, - 0x7A, - 0x43, - 0x57, - 0x43, - 0x43, - 0x7A, - 0x06, - 0x43, - 0x00, - 0x06, - 0x7A, - 0x43, - 0x43, - 0x43, - 0x57, - 0x57, - 0x04, - 0x43, - 0x05, - 0x57, - 0x05, - 0x43, - 0x05, - 0x57, - 0x00, - 0x00, - 0x0A, - 0xE1, - 0x0A, - 0xD6, - 0x05, - 0xD7, - 0x04, - 0xDF, - 0x09, - 0xD7, - 0x06, - 0xDF, - 0x00, - 0x07, - 0xB9, - 0xDD, - 0xB9, - 0xDD, - 0xE7, - 0xE7, - 0xB9, - 0x00, - 0x04, - 0xDD, - 0x05, - 0xDC, - 0x01, - 0xB9, - 0x01, - 0xDD, - 0x0B, - 0xDC, - 0x0D, - 0xDB, - 0x01, - 0xD0, - 0x04, - 0xCC, - 0x05, - 0xD0, - 0x01, - 0xCC, - 0x01, - 0xCC, - 0x05, - 0xCD, - 0x00, - 0x03, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x06, - 0xCD, - 0x0F, - 0xCA, - 0x16, - 0xC8, - 0x08, - 0xCA, - 0x14, - 0xC8, - 0x00, - 0x08, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0xC9, - 0xC8, - 0x07, - 0xC9, - 0x07, - 0xAE, - 0x09, - 0xAF, - 0x09, - 0xB2, - 0x18, - 0x98, - 0x10, - 0x9A, - 0x04, - 0x7A, - 0x01, - 0x9A, - 0x0D, - 0x7A, - 0x00, - 0x17, - 0x55, - 0x7A, - 0x7A, - 0x55, - 0x7A, - 0x7A, - 0x7A, - 0x42, - 0x7A, - 0x43, - 0x43, - 0x7A, - 0x43, - 0x43, - 0x7A, - 0x7A, - 0x7A, - 0x43, - 0x7A, - 0x43, - 0x43, - 0x43, - 0x7A, - 0x00, - 0x0A, - 0x43, - 0x01, - 0x57, - 0x0B, - 0x43, - 0x00, - 0x00, - 0x08, - 0xE1, - 0x00, - 0x06, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0x06, - 0xD6, - 0x08, - 0xD7, - 0x00, - 0x03, - 0xDF, - 0xD7, - 0xD7, - 0x00, - 0x06, - 0xD6, - 0x06, - 0xD7, - 0x00, - 0x0C, - 0xDF, - 0xE7, - 0xDD, - 0xDD, - 0xB9, - 0xE7, - 0xB9, - 0xDD, - 0xDC, - 0xDC, - 0xB9, - 0xDD, - 0x05, - 0xDC, - 0x01, - 0xDD, - 0x01, - 0xDD, - 0x0B, - 0xDC, - 0x0D, - 0xDB, - 0x01, - 0xD0, - 0x04, - 0xCC, - 0x05, - 0xD0, - 0x01, - 0xCC, - 0x01, - 0xCC, - 0x05, - 0xCD, - 0x00, - 0x03, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x06, - 0xCD, - 0x0F, - 0xCA, - 0x32, - 0xC8, - 0x00, - 0x0A, - 0xAD, - 0xC9, - 0xAD, - 0xC9, - 0xAD, - 0xC9, - 0xAD, - 0xC9, - 0xAD, - 0xAD, - 0x05, - 0xC9, - 0x07, - 0xAE, - 0x09, - 0xAF, - 0x09, - 0xB2, - 0x1A, - 0x98, - 0x01, - 0x9A, - 0x01, - 0xB5, - 0x09, - 0x9A, - 0x01, - 0x91, - 0x01, - 0x9A, - 0x04, - 0x7A, - 0x01, - 0x9A, - 0x0F, - 0x7A, - 0x00, - 0x05, - 0x55, - 0x7A, - 0x7A, - 0x7A, - 0x55, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x0B, - 0x43, - 0x7A, - 0x7A, - 0x43, - 0x43, - 0x43, - 0x7A, - 0x43, - 0x7A, - 0x7A, - 0x7A, - 0x00, - 0x09, - 0x43, - 0x00, - 0x03, - 0x57, - 0x43, - 0x57, - 0x00, - 0x0C, - 0x43, - 0x00, - 0x00, - 0x00, - 0x08, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xE1, - 0xE1, - 0x0A, - 0xD6, - 0x04, - 0xD7, - 0x00, - 0x0B, - 0xDF, - 0xDF, - 0xD7, - 0xD7, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0xD6, - 0xD5, - 0xE1, - 0x00, - 0x04, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x0E, - 0xD7, - 0xD7, - 0xD7, - 0xDF, - 0xB9, - 0xE7, - 0xDD, - 0xDD, - 0xDD, - 0xDC, - 0xDC, - 0xDC, - 0xDD, - 0xDD, - 0x12, - 0xDC, - 0x0D, - 0xDB, - 0x01, - 0xD0, - 0x04, - 0xCC, - 0x05, - 0xD0, - 0x01, - 0xCC, - 0x01, - 0xCC, - 0x05, - 0xCD, - 0x00, - 0x03, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x06, - 0xCD, - 0x0F, - 0xCA, - 0x29, - 0xC8, - 0x01, - 0xC9, - 0x05, - 0xC8, - 0x05, - 0xAD, - 0x01, - 0xC8, - 0x01, - 0xC8, - 0x08, - 0xAD, - 0x00, - 0x03, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x0B, - 0xAE, - 0x05, - 0xAF, - 0x09, - 0xB2, - 0x13, - 0x98, - 0x00, - 0x07, - 0x9A, - 0x9A, - 0x9A, - 0x98, - 0x96, - 0x9A, - 0xB5, - 0x00, - 0x0C, - 0x9A, - 0x00, - 0x09, - 0x54, - 0x55, - 0x54, - 0x7A, - 0x7A, - 0x55, - 0x55, - 0x7A, - 0x55, - 0x00, - 0x0A, - 0x7A, - 0x00, - 0x18, - 0x55, - 0x55, - 0x7A, - 0x55, - 0x55, - 0x55, - 0x7A, - 0x55, - 0x55, - 0x55, - 0x43, - 0x42, - 0x43, - 0x43, - 0x7A, - 0x42, - 0x7A, - 0x43, - 0x7A, - 0x43, - 0x43, - 0x43, - 0x7A, - 0x7A, - 0x16, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0xE1, - 0xD6, - 0xE1, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x03, - 0xE1, - 0xD6, - 0xE1, - 0x00, - 0x07, - 0xD6, - 0x00, - 0x09, - 0xD7, - 0xD7, - 0xDF, - 0xD7, - 0xB4, - 0xDF, - 0xD7, - 0xD7, - 0xD6, - 0x00, - 0x05, - 0xD5, - 0x01, - 0xEB, - 0x07, - 0xD5, - 0x06, - 0xD6, - 0x00, - 0x08, - 0xD7, - 0xDF, - 0xE7, - 0xB9, - 0xDC, - 0xDC, - 0xDD, - 0xB9, - 0x0E, - 0xDC, - 0x0E, - 0xDB, - 0x00, - 0x08, - 0xC7, - 0xFE, - 0x86, - 0xD0, - 0xD0, - 0xD0, - 0xCC, - 0xCC, - 0x07, - 0xD0, - 0x01, - 0xCC, - 0x01, - 0xCC, - 0x05, - 0xCD, - 0x00, - 0x03, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x06, - 0xCD, - 0x0F, - 0xCA, - 0x21, - 0xC8, - 0x00, - 0x15, - 0x95, - 0x95, - 0x95, - 0xAC, - 0xAC, - 0x95, - 0x95, - 0xC8, - 0xA5, - 0xA6, - 0xFE, - 0xFE, - 0xFE, - 0xFD, - 0x86, - 0xA3, - 0xC9, - 0xAD, - 0x95, - 0xC8, - 0xC8, - 0x00, - 0x07, - 0xAD, - 0x00, - 0x03, - 0xCB, - 0xC9, - 0xC9, - 0x00, - 0x0C, - 0xAE, - 0x05, - 0xAF, - 0x07, - 0xB2, - 0x14, - 0x98, - 0x00, - 0x08, - 0xB5, - 0x86, - 0xC7, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0xA5, - 0x0C, - 0x9A, - 0x00, - 0x0C, - 0x54, - 0x54, - 0x9A, - 0x7A, - 0x7A, - 0x55, - 0x7A, - 0x55, - 0x7A, - 0x55, - 0x7A, - 0x55, - 0x07, - 0x7A, - 0x00, - 0x05, - 0x55, - 0x7A, - 0x43, - 0x55, - 0x7A, - 0x00, - 0x04, - 0x55, - 0x00, - 0x0E, - 0x7A, - 0x55, - 0x55, - 0x42, - 0x7A, - 0x42, - 0x42, - 0x42, - 0x43, - 0x7A, - 0x43, - 0x7A, - 0x7A, - 0x7A, - 0x17, - 0x43, - 0x00, - 0x00, - 0x00, - 0x06, - 0xE1, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0x0B, - 0xD6, - 0x00, - 0x24, - 0xD7, - 0xD7, - 0xDF, - 0xDF, - 0xDF, - 0xD7, - 0xD6, - 0xD5, - 0xD5, - 0xD5, - 0xEA, - 0xD5, - 0xD5, - 0xD5, - 0xEA, - 0xEB, - 0xEA, - 0xEA, - 0xEA, - 0xD5, - 0xEB, - 0xD5, - 0xD5, - 0xD5, - 0xD6, - 0xD6, - 0xD6, - 0xD5, - 0xD6, - 0xD6, - 0xDF, - 0xE7, - 0xDD, - 0xB9, - 0xDD, - 0xDD, - 0x0E, - 0xDC, - 0x0E, - 0xDB, - 0x00, - 0x08, - 0xC6, - 0xFE, - 0x87, - 0xD0, - 0xD0, - 0xD0, - 0xCC, - 0xCC, - 0x07, - 0xD0, - 0x01, - 0xCC, - 0x01, - 0xCC, - 0x05, - 0xCD, - 0x00, - 0x09, - 0xCC, - 0xCC, - 0xCC, - 0xCD, - 0xCD, - 0xCD, - 0xB1, - 0xCD, - 0xCD, - 0x00, - 0x0F, - 0xCA, - 0x21, - 0xC8, - 0x00, - 0x09, - 0x95, - 0x95, - 0x95, - 0xAC, - 0xAC, - 0x95, - 0x95, - 0xC8, - 0xC7, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x08, - 0xFF, - 0xFF, - 0xFD, - 0xA5, - 0x95, - 0x95, - 0xC8, - 0xC8, - 0x08, - 0xAD, - 0x01, - 0xC9, - 0x01, - 0xC9, - 0x0C, - 0xAE, - 0x00, - 0x08, - 0xAF, - 0xAF, - 0xAE, - 0xAE, - 0xAE, - 0x98, - 0xB2, - 0x98, - 0x04, - 0xB2, - 0x13, - 0x98, - 0x00, - 0x0E, - 0xB5, - 0xA5, - 0xFF, - 0xFF, - 0xFE, - 0xFE, - 0xFE, - 0xFF, - 0xFE, - 0x87, - 0x9A, - 0x96, - 0x96, - 0x96, - 0x07, - 0x9A, - 0x00, - 0x0C, - 0x54, - 0x55, - 0x54, - 0x7A, - 0x7A, - 0x55, - 0x55, - 0x7A, - 0x55, - 0x7A, - 0x55, - 0x55, - 0x08, - 0x7A, - 0x00, - 0x04, - 0x55, - 0x7A, - 0x7A, - 0x43, - 0x07, - 0x55, - 0x00, - 0x0C, - 0x42, - 0x42, - 0x7A, - 0x42, - 0x7A, - 0x43, - 0x7A, - 0x7A, - 0x43, - 0x43, - 0x43, - 0x7A, - 0x16, - 0x43, - 0x00, - 0x00, - 0x01, - 0xD6, - 0x01, - 0xE1, - 0x0B, - 0xD6, - 0x05, - 0xD7, - 0x00, - 0x05, - 0xDF, - 0xD7, - 0xD7, - 0xD6, - 0xD6, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x04, - 0xEA, - 0xEA, - 0xD5, - 0xEA, - 0x09, - 0xD5, - 0x00, - 0x0F, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0xD6, - 0xD6, - 0xD7, - 0xDF, - 0xB9, - 0xDD, - 0xDD, - 0xDD, - 0xDC, - 0xB9, - 0xDD, - 0x00, - 0x04, - 0xDC, - 0x01, - 0xDB, - 0x01, - 0xDB, - 0x05, - 0xDC, - 0x0D, - 0xDB, - 0x00, - 0x08, - 0xE6, - 0xC5, - 0xFE, - 0x46, - 0xD0, - 0xD0, - 0xD0, - 0xCC, - 0x08, - 0xD0, - 0x0B, - 0xCD, - 0x00, - 0x03, - 0xB1, - 0xCD, - 0xCD, - 0x00, - 0x11, - 0xCA, - 0x0E, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x10, - 0xC8, - 0x07, - 0x95, - 0x00, - 0x0E, - 0xC8, - 0x86, - 0x86, - 0x95, - 0x95, - 0x90, - 0xC5, - 0xA7, - 0xFE, - 0xFD, - 0xC2, - 0x95, - 0x95, - 0x95, - 0x06, - 0xAD, - 0x06, - 0xC9, - 0x00, - 0x05, - 0xAE, - 0xAE, - 0xAE, - 0xAF, - 0xAF, - 0x00, - 0x0B, - 0xAE, - 0x00, - 0x03, - 0xB2, - 0xAE, - 0xB2, - 0x00, - 0x16, - 0x98, - 0x00, - 0x0B, - 0x96, - 0x83, - 0x87, - 0xA5, - 0x96, - 0x96, - 0x7F, - 0xC6, - 0xFE, - 0xFF, - 0xC6, - 0x00, - 0x04, - 0x96, - 0x07, - 0x9A, - 0x00, - 0x08, - 0x54, - 0x55, - 0x7A, - 0x7A, - 0x7A, - 0x54, - 0x55, - 0x7A, - 0x04, - 0x55, - 0x07, - 0x7A, - 0x00, - 0x04, - 0x55, - 0x7A, - 0x55, - 0x7A, - 0x09, - 0x55, - 0x00, - 0x08, - 0x42, - 0x42, - 0x42, - 0x43, - 0x43, - 0x42, - 0x7A, - 0x42, - 0x0A, - 0x43, - 0x01, - 0x42, - 0x01, - 0x42, - 0x0C, - 0x43, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xD6, - 0xD6, - 0xD6, - 0xE1, - 0xD6, - 0xE1, - 0xD6, - 0xD7, - 0xD7, - 0xD7, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x07, - 0xD7, - 0x00, - 0x08, - 0xD6, - 0xD5, - 0xEB, - 0xEA, - 0xD5, - 0xEA, - 0xD5, - 0xEA, - 0x06, - 0xD5, - 0x01, - 0xD6, - 0x01, - 0xD6, - 0x05, - 0xD5, - 0x08, - 0xD6, - 0x00, - 0x07, - 0xD7, - 0xB9, - 0xDC, - 0xDC, - 0xDD, - 0xB9, - 0xDD, - 0x00, - 0x04, - 0xDC, - 0x01, - 0xDB, - 0x04, - 0xDC, - 0x10, - 0xDB, - 0x00, - 0x05, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xCD, - 0x00, - 0x05, - 0xD0, - 0x05, - 0xCC, - 0x0C, - 0xCD, - 0x01, - 0xB1, - 0x01, - 0xB1, - 0x11, - 0xCA, - 0x0E, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x11, - 0xC8, - 0x04, - 0x95, - 0x05, - 0xC8, - 0x00, - 0x08, - 0x95, - 0x95, - 0xAD, - 0xAD, - 0xC0, - 0xA7, - 0xFE, - 0xA6, - 0x08, - 0xAD, - 0x00, - 0x05, - 0xAE, - 0xAE, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x05, - 0xAE, - 0x01, - 0xAF, - 0x01, - 0xAF, - 0x09, - 0xAE, - 0x01, - 0x94, - 0x15, - 0x98, - 0x00, - 0x04, - 0x96, - 0x98, - 0x98, - 0x98, - 0x09, - 0x96, - 0x00, - 0x04, - 0xC5, - 0xFF, - 0xFE, - 0xC3, - 0x04, - 0x96, - 0x05, - 0x9A, - 0x00, - 0x07, - 0x54, - 0x54, - 0x7A, - 0x7A, - 0x7A, - 0x54, - 0x54, - 0x00, - 0x07, - 0x55, - 0x00, - 0x03, - 0x7A, - 0x7A, - 0x7A, - 0x00, - 0x10, - 0x55, - 0x00, - 0x20, - 0x42, - 0x42, - 0x7A, - 0x42, - 0x7A, - 0x55, - 0x42, - 0x55, - 0x42, - 0x7A, - 0x42, - 0x42, - 0x43, - 0x42, - 0x43, - 0x43, - 0x43, - 0x42, - 0x43, - 0x42, - 0x43, - 0x43, - 0x42, - 0x43, - 0x42, - 0x43, - 0x43, - 0x43, - 0x42, - 0x43, - 0x42, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xE1, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x05, - 0xD7, - 0xD7, - 0xD7, - 0xD6, - 0xD6, - 0x00, - 0x07, - 0xD7, - 0x00, - 0x05, - 0xD6, - 0xD5, - 0xEB, - 0xEA, - 0xD5, - 0x00, - 0x04, - 0xEA, - 0x06, - 0xD5, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x04, - 0xD5, - 0x05, - 0xD6, - 0x00, - 0x05, - 0xD5, - 0xD5, - 0xD5, - 0xD6, - 0xDF, - 0x00, - 0x05, - 0xDD, - 0x00, - 0x05, - 0xDC, - 0xDC, - 0xE6, - 0xDC, - 0xDB, - 0x00, - 0x04, - 0xDC, - 0x10, - 0xDB, - 0x00, - 0x05, - 0xC1, - 0xFE, - 0xFE, - 0xC5, - 0xCD, - 0x00, - 0x05, - 0xD0, - 0x00, - 0x05, - 0xCC, - 0xCD, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x09, - 0xCD, - 0x05, - 0xB1, - 0x01, - 0xC8, - 0x10, - 0xCA, - 0x00, - 0x03, - 0xC8, - 0xC8, - 0xCB, - 0x00, - 0x05, - 0xC8, - 0x01, - 0xCA, - 0x05, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x0A, - 0xC8, - 0x01, - 0xCA, - 0x06, - 0xC8, - 0x00, - 0x04, - 0xAD, - 0xC9, - 0xC9, - 0xAD, - 0x04, - 0xC8, - 0x00, - 0x0D, - 0xAD, - 0xAD, - 0x95, - 0xAD, - 0xAD, - 0xAD, - 0xA5, - 0xFF, - 0xFE, - 0xC3, - 0xAD, - 0xAD, - 0xAE, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x05, - 0xAE, - 0xAE, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x06, - 0xAE, - 0x01, - 0xAF, - 0x01, - 0xAF, - 0x08, - 0xAE, - 0x01, - 0x94, - 0x05, - 0x98, - 0x01, - 0x96, - 0x01, - 0x96, - 0x04, - 0x98, - 0x00, - 0x05, - 0x9A, - 0x96, - 0x98, - 0x98, - 0x98, - 0x00, - 0x08, - 0x96, - 0x01, - 0x98, - 0x04, - 0x96, - 0x00, - 0x09, - 0x54, - 0x54, - 0x96, - 0x96, - 0x96, - 0x54, - 0xA7, - 0xFE, - 0xA6, - 0x00, - 0x04, - 0x96, - 0x05, - 0x9A, - 0x00, - 0x09, - 0x7A, - 0x7A, - 0x55, - 0x7A, - 0x55, - 0x54, - 0x7A, - 0x55, - 0x54, - 0x00, - 0x05, - 0x55, - 0x00, - 0x05, - 0x7A, - 0x55, - 0x7A, - 0x55, - 0x7A, - 0x00, - 0x0E, - 0x55, - 0x00, - 0x0D, - 0x42, - 0x55, - 0x42, - 0x42, - 0x42, - 0x55, - 0x55, - 0x55, - 0x42, - 0x42, - 0x42, - 0x55, - 0x42, - 0x00, - 0x04, - 0x43, - 0x00, - 0x03, - 0x42, - 0x42, - 0x42, - 0x00, - 0x05, - 0x43, - 0x00, - 0x07, - 0x42, - 0x43, - 0x42, - 0x43, - 0x43, - 0x43, - 0x43, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE1, - 0x0B, - 0xD6, - 0x00, - 0x0E, - 0xD7, - 0xDF, - 0xDF, - 0xD7, - 0xD7, - 0xD7, - 0xD6, - 0xE1, - 0xD5, - 0xD5, - 0xEA, - 0xEA, - 0xD5, - 0xEA, - 0x08, - 0xD5, - 0x0B, - 0xD6, - 0x00, - 0x03, - 0xD5, - 0xD5, - 0xC5, - 0x00, - 0x0A, - 0xFE, - 0x00, - 0x0E, - 0x84, - 0xE6, - 0xDD, - 0xA7, - 0xFE, - 0x86, - 0xDC, - 0xDB, - 0xDB, - 0xDB, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0x04, - 0xDB, - 0x00, - 0x0F, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xDB, - 0xDB, - 0xC7, - 0xFE, - 0x86, - 0xC1, - 0x87, - 0xFE, - 0xFE, - 0xC7, - 0xC5, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x11, - 0xC2, - 0xC6, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0xC5, - 0xCD, - 0xCD, - 0xCD, - 0xB1, - 0xCA, - 0xC8, - 0xA5, - 0xFE, - 0xFE, - 0xC5, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x04, - 0xA6, - 0xFE, - 0xFD, - 0xA2, - 0x04, - 0xCA, - 0x00, - 0x04, - 0xC8, - 0xCA, - 0xA5, - 0xA6, - 0x04, - 0xFE, - 0x00, - 0x08, - 0xC6, - 0xC5, - 0xCA, - 0xC8, - 0xC8, - 0xC5, - 0xFE, - 0xFD, - 0x06, - 0xC8, - 0x00, - 0x09, - 0xA4, - 0xFE, - 0x46, - 0xC8, - 0xC8, - 0xC8, - 0xA5, - 0xFE, - 0xFD, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x13, - 0xA4, - 0xFE, - 0xFE, - 0x83, - 0xC8, - 0xC8, - 0xC9, - 0xC9, - 0xC6, - 0xFE, - 0xFE, - 0xFE, - 0x86, - 0xC9, - 0xC7, - 0xFE, - 0xC5, - 0xAD, - 0xAD, - 0x00, - 0x07, - 0xAE, - 0x01, - 0xC5, - 0x07, - 0xFE, - 0x00, - 0x42, - 0x87, - 0x86, - 0xC0, - 0xAF, - 0xAF, - 0xAE, - 0xAE, - 0x94, - 0x94, - 0x94, - 0x98, - 0xC5, - 0x87, - 0xFE, - 0xFE, - 0xFE, - 0xFD, - 0x86, - 0xA5, - 0x9A, - 0x98, - 0x96, - 0xC3, - 0x86, - 0xC7, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0xC5, - 0x96, - 0x96, - 0x96, - 0xA4, - 0xFE, - 0xFD, - 0xB5, - 0x9A, - 0x98, - 0x98, - 0x93, - 0xA5, - 0xA7, - 0xFE, - 0xFE, - 0x87, - 0xA5, - 0xA5, - 0xFE, - 0xFD, - 0x54, - 0x96, - 0x96, - 0xC7, - 0xFF, - 0xC5, - 0x9A, - 0x9A, - 0x96, - 0x7A, - 0x54, - 0x87, - 0xFF, - 0xC6, - 0x54, - 0x54, - 0x04, - 0x55, - 0x00, - 0x07, - 0x54, - 0x55, - 0x55, - 0x55, - 0x7A, - 0x55, - 0x54, - 0x00, - 0x0D, - 0x55, - 0x00, - 0x07, - 0x42, - 0x55, - 0x42, - 0x55, - 0x42, - 0x55, - 0x55, - 0x00, - 0x18, - 0x42, - 0x03, - 0x43, - 0x00, - 0x00, - 0x01, - 0xD6, - 0x01, - 0xE1, - 0x0A, - 0xD6, - 0x00, - 0x0C, - 0xD7, - 0xDF, - 0xDF, - 0xD7, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0xE4, - 0xEA, - 0xD5, - 0xEA, - 0x0C, - 0xD5, - 0x08, - 0xD6, - 0x00, - 0x04, - 0xE9, - 0xD6, - 0xD6, - 0xA5, - 0x0A, - 0xFE, - 0x00, - 0x07, - 0xA4, - 0xDB, - 0xE6, - 0xC6, - 0xFE, - 0x87, - 0xDC, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x03, - 0x46, - 0xFE, - 0xC5, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x0B, - 0xC1, - 0xFE, - 0xFE, - 0xC5, - 0xDB, - 0xD0, - 0xC6, - 0xFE, - 0x87, - 0xA7, - 0xFF, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x07, - 0xA7, - 0xC1, - 0xCD, - 0xCD, - 0xCD, - 0xC2, - 0x46, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x0A, - 0x87, - 0xA2, - 0xB1, - 0xB1, - 0xCA, - 0xC8, - 0xC5, - 0xFE, - 0xFE, - 0xC7, - 0x04, - 0xCA, - 0x00, - 0x05, - 0xA6, - 0xFE, - 0xFE, - 0x86, - 0xCA, - 0x00, - 0x04, - 0xC8, - 0x01, - 0xC5, - 0x08, - 0xFE, - 0x00, - 0x07, - 0xC5, - 0xC8, - 0xC8, - 0xC3, - 0xFE, - 0x48, - 0xC3, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x09, - 0xFD, - 0xFF, - 0x83, - 0xC8, - 0xC9, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x08, - 0xC0, - 0xFE, - 0xFF, - 0xC5, - 0xC9, - 0xC9, - 0xC9, - 0x87, - 0x05, - 0xFE, - 0x00, - 0x06, - 0xA7, - 0x87, - 0xFE, - 0x87, - 0xAD, - 0xAD, - 0x06, - 0xAE, - 0x01, - 0xAF, - 0x01, - 0xA4, - 0x0A, - 0xFE, - 0x00, - 0x08, - 0xA6, - 0xC0, - 0xAF, - 0xAF, - 0xAF, - 0xAB, - 0x96, - 0xA6, - 0x07, - 0xFE, - 0x00, - 0x05, - 0xFF, - 0xA4, - 0x98, - 0x96, - 0xFD, - 0x00, - 0x07, - 0xFE, - 0x00, - 0x23, - 0x87, - 0x96, - 0x96, - 0x96, - 0xFD, - 0xFE, - 0x83, - 0x98, - 0x96, - 0x7A, - 0xA4, - 0xFE, - 0xFE, - 0xFF, - 0xFE, - 0xFE, - 0xFF, - 0xC6, - 0xFE, - 0xFF, - 0xA4, - 0x96, - 0x54, - 0xC6, - 0xFE, - 0x87, - 0x9A, - 0x9A, - 0x9A, - 0x96, - 0x42, - 0x86, - 0xFE, - 0xC7, - 0x7A, - 0x00, - 0x07, - 0x54, - 0x13, - 0x55, - 0x00, - 0x0A, - 0x42, - 0x55, - 0x42, - 0x55, - 0x42, - 0x55, - 0x42, - 0x55, - 0x42, - 0x55, - 0x14, - 0x42, - 0x03, - 0x43, - 0x00, - 0x00, - 0x00, - 0x08, - 0xD6, - 0xD6, - 0xD6, - 0xD7, - 0xD7, - 0xD7, - 0xD6, - 0xD6, - 0x04, - 0xD7, - 0x00, - 0x0B, - 0xDF, - 0xDF, - 0xDF, - 0xE9, - 0xD5, - 0xE1, - 0xD5, - 0xE4, - 0xEA, - 0xEA, - 0xEA, - 0x00, - 0x0E, - 0xD5, - 0x00, - 0x13, - 0xD6, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0xD5, - 0xD6, - 0xD6, - 0xB4, - 0xD5, - 0xF1, - 0xFE, - 0xFE, - 0xA5, - 0xD6, - 0xDF, - 0xE7, - 0xB3, - 0xDD, - 0x00, - 0x05, - 0xDC, - 0x00, - 0x0B, - 0xC5, - 0xFE, - 0x46, - 0xDC, - 0xDB, - 0xDB, - 0xDB, - 0xDC, - 0x87, - 0xFE, - 0xC6, - 0x00, - 0x05, - 0xDB, - 0x00, - 0x42, - 0xC7, - 0xFE, - 0xC5, - 0xDB, - 0xD0, - 0xC5, - 0xFE, - 0xFE, - 0x46, - 0xC5, - 0xCC, - 0xCC, - 0xC5, - 0x46, - 0xFE, - 0xA7, - 0xCD, - 0xCD, - 0xCD, - 0xA6, - 0xFE, - 0xC7, - 0xA5, - 0xCA, - 0xCA, - 0xC5, - 0xC7, - 0xFE, - 0xA7, - 0xB1, - 0xB1, - 0xCA, - 0xCA, - 0xC5, - 0xFE, - 0xFE, - 0xFE, - 0xC5, - 0xCA, - 0xCA, - 0xCA, - 0xA7, - 0xFE, - 0xFE, - 0x46, - 0xA2, - 0xC8, - 0xC8, - 0xC8, - 0xC0, - 0xFD, - 0xFE, - 0x87, - 0xA5, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0x86, - 0xC6, - 0xC8, - 0xC8, - 0xC8, - 0xFD, - 0xFE, - 0xC5, - 0x06, - 0xC8, - 0x00, - 0x09, - 0xC7, - 0xFE, - 0xC5, - 0xC9, - 0xAD, - 0xC9, - 0xFD, - 0xFE, - 0xC5, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x13, - 0xC9, - 0xC7, - 0xFE, - 0xC5, - 0xC8, - 0xC9, - 0xA5, - 0xFF, - 0xFE, - 0x87, - 0xC9, - 0xA8, - 0xC2, - 0x87, - 0xFE, - 0xFE, - 0xC7, - 0xC9, - 0xAD, - 0x00, - 0x07, - 0xAE, - 0x00, - 0x4A, - 0x83, - 0xFE, - 0xFE, - 0xA4, - 0xAF, - 0xAE, - 0xAE, - 0xAE, - 0xA5, - 0xC6, - 0xFE, - 0xFE, - 0xC7, - 0x83, - 0xAF, - 0xA9, - 0xAB, - 0xA5, - 0xFF, - 0xFE, - 0xA6, - 0x83, - 0x96, - 0x98, - 0x98, - 0xA5, - 0x86, - 0xC5, - 0x96, - 0x96, - 0xA7, - 0x86, - 0xA5, - 0xB5, - 0x98, - 0x98, - 0xC5, - 0xFF, - 0xFE, - 0x86, - 0x96, - 0x96, - 0xC7, - 0xFF, - 0xA5, - 0xB5, - 0x9A, - 0x9A, - 0xA7, - 0xFE, - 0xFD, - 0xA5, - 0x54, - 0x96, - 0xC5, - 0xFD, - 0xFE, - 0xFE, - 0xA5, - 0xB5, - 0x96, - 0xC5, - 0xFE, - 0xFD, - 0x9A, - 0x9A, - 0x9A, - 0x7A, - 0x7A, - 0xA5, - 0xFE, - 0xFD, - 0x55, - 0x7A, - 0x05, - 0x54, - 0x1A, - 0x55, - 0x05, - 0x42, - 0x01, - 0x55, - 0x01, - 0x55, - 0x11, - 0x42, - 0x03, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x07, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x08, - 0xD7, - 0xD6, - 0xEB, - 0xEB, - 0xEA, - 0xD5, - 0xEA, - 0xEB, - 0x0E, - 0xD5, - 0x00, - 0x13, - 0xB4, - 0xD5, - 0xD5, - 0xD5, - 0xB4, - 0xD5, - 0xD5, - 0xB4, - 0xD5, - 0xB4, - 0xD5, - 0xB4, - 0xC7, - 0xFE, - 0x86, - 0xB4, - 0xD6, - 0xB4, - 0xE7, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x0D, - 0x97, - 0xDC, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xDB, - 0xDB, - 0xDC, - 0xDC, - 0xC5, - 0xFE, - 0xC7, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x36, - 0xD0, - 0xC6, - 0xFE, - 0x87, - 0xCC, - 0xD0, - 0xA4, - 0xFE, - 0xFE, - 0xC6, - 0xD0, - 0xCC, - 0xCD, - 0xCD, - 0xC2, - 0x46, - 0xFE, - 0x86, - 0xCE, - 0xCD, - 0x46, - 0xFE, - 0xC5, - 0xCD, - 0xCE, - 0xCA, - 0xCA, - 0xC2, - 0xC7, - 0xFE, - 0x86, - 0xCA, - 0xCA, - 0xCA, - 0xC5, - 0xFE, - 0xC7, - 0xFD, - 0xC7, - 0xCA, - 0xCA, - 0xCA, - 0xA7, - 0xFE, - 0x46, - 0xFE, - 0x86, - 0xC8, - 0xC8, - 0xC8, - 0xC5, - 0x48, - 0xFE, - 0xC2, - 0x0A, - 0xC8, - 0x00, - 0x03, - 0x87, - 0xFF, - 0xC6, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x09, - 0xC6, - 0xFE, - 0xC5, - 0xC8, - 0xC9, - 0xC8, - 0x87, - 0xFE, - 0xC6, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0A, - 0xC9, - 0xC6, - 0xFE, - 0x87, - 0xC9, - 0xC9, - 0x86, - 0xFE, - 0xC7, - 0xAF, - 0x04, - 0xC9, - 0x00, - 0x05, - 0xA6, - 0xFE, - 0xFE, - 0x83, - 0xC9, - 0x00, - 0x08, - 0xAE, - 0x00, - 0x04, - 0xC7, - 0xFE, - 0xC5, - 0xAF, - 0x05, - 0xAE, - 0x00, - 0x0B, - 0x83, - 0xA7, - 0xFF, - 0xA7, - 0xAB, - 0xA9, - 0xA9, - 0xC6, - 0xFF, - 0xC7, - 0x96, - 0x00, - 0x04, - 0x98, - 0x0C, - 0x96, - 0x00, - 0x2B, - 0xC5, - 0xFE, - 0xA7, - 0x96, - 0x96, - 0xC6, - 0xFF, - 0xC5, - 0x96, - 0x96, - 0x7F, - 0xFF, - 0xFE, - 0xC5, - 0x54, - 0x96, - 0x96, - 0x96, - 0xC3, - 0xFD, - 0xFF, - 0xC6, - 0x9A, - 0x96, - 0xA4, - 0xFF, - 0xFE, - 0x83, - 0x7A, - 0x9A, - 0x96, - 0x7A, - 0x83, - 0xFE, - 0xFE, - 0xA4, - 0x55, - 0x7A, - 0x54, - 0x7A, - 0x54, - 0x54, - 0x54, - 0x00, - 0x19, - 0x55, - 0x00, - 0x03, - 0x41, - 0x42, - 0x55, - 0x00, - 0x05, - 0x42, - 0x01, - 0x55, - 0x06, - 0x42, - 0x00, - 0x03, - 0x41, - 0x42, - 0x41, - 0x00, - 0x08, - 0x42, - 0x01, - 0x43, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x07, - 0xD7, - 0x00, - 0x07, - 0xDF, - 0xDF, - 0xDF, - 0xD6, - 0xE1, - 0xD5, - 0xE4, - 0x00, - 0x05, - 0xEA, - 0x10, - 0xD5, - 0x01, - 0xB4, - 0x04, - 0xD5, - 0x00, - 0x0D, - 0xB4, - 0xB4, - 0xD5, - 0xB4, - 0xD6, - 0xC6, - 0xFE, - 0x87, - 0xD6, - 0xD6, - 0xD7, - 0xB4, - 0xB9, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x0D, - 0xDB, - 0xDB, - 0x46, - 0xFE, - 0xC5, - 0xDB, - 0xDB, - 0xDC, - 0xDC, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x09, - 0xC5, - 0xFE, - 0x46, - 0xCD, - 0xD0, - 0xC1, - 0xFE, - 0xFE, - 0xC5, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x26, - 0xC5, - 0xFE, - 0xFD, - 0xCA, - 0xC0, - 0xFE, - 0xFE, - 0xC4, - 0xCD, - 0xCE, - 0xCA, - 0xCA, - 0xCE, - 0xC5, - 0xFE, - 0x46, - 0xCA, - 0xCA, - 0xCA, - 0x86, - 0xFE, - 0xA7, - 0x86, - 0xFE, - 0xA5, - 0xCA, - 0xCA, - 0xC7, - 0xFD, - 0x86, - 0xFE, - 0xC7, - 0xCA, - 0xC8, - 0xC8, - 0xC5, - 0xFE, - 0xFD, - 0x09, - 0xC8, - 0x00, - 0x05, - 0xAD, - 0xC8, - 0xC6, - 0xFE, - 0xA7, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x09, - 0xC5, - 0xFE, - 0x87, - 0xC9, - 0xC8, - 0xC8, - 0x86, - 0xFF, - 0xC7, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x13, - 0xC9, - 0xC5, - 0xFE, - 0xFD, - 0xC9, - 0xC9, - 0x86, - 0xFE, - 0xA6, - 0xC9, - 0xA8, - 0xA8, - 0xC9, - 0xC9, - 0xC0, - 0xFD, - 0xFE, - 0xA5, - 0xC9, - 0x00, - 0x07, - 0xAE, - 0x00, - 0x04, - 0xAF, - 0xC6, - 0xFF, - 0xA6, - 0x04, - 0xAE, - 0x00, - 0x0C, - 0xAF, - 0xAF, - 0x94, - 0x7F, - 0xC7, - 0xFF, - 0x86, - 0xA9, - 0x96, - 0xA6, - 0xFE, - 0xA6, - 0x05, - 0x98, - 0x00, - 0x04, - 0x96, - 0x96, - 0x96, - 0xAA, - 0x04, - 0x96, - 0x00, - 0x12, - 0xAA, - 0xAA, - 0x96, - 0x83, - 0x87, - 0xFE, - 0xC7, - 0x96, - 0x96, - 0xC5, - 0xFF, - 0x87, - 0x96, - 0x9A, - 0x7F, - 0xFE, - 0xFF, - 0xC3, - 0x04, - 0x96, - 0x00, - 0x15, - 0x54, - 0x86, - 0xFF, - 0xA7, - 0x9A, - 0x96, - 0x7F, - 0xFF, - 0xFE, - 0xA5, - 0x9A, - 0x9A, - 0x7A, - 0x54, - 0x7A, - 0xFD, - 0xFE, - 0xC5, - 0x7A, - 0x54, - 0x7A, - 0x00, - 0x04, - 0x54, - 0x11, - 0x55, - 0x01, - 0x41, - 0x07, - 0x55, - 0x05, - 0x42, - 0x00, - 0x03, - 0x55, - 0x41, - 0x55, - 0x00, - 0x08, - 0x42, - 0x00, - 0x03, - 0x41, - 0x42, - 0x41, - 0x00, - 0x08, - 0x42, - 0x00, - 0x00, - 0x01, - 0xD6, - 0x07, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x0A, - 0xD6, - 0xD5, - 0xD5, - 0xE4, - 0xEA, - 0xEA, - 0xD5, - 0xEA, - 0xD5, - 0xEA, - 0x0C, - 0xD5, - 0x05, - 0xD6, - 0x00, - 0x2F, - 0xD5, - 0xD5, - 0xB4, - 0xE9, - 0xD6, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0x86, - 0xFE, - 0xC7, - 0xD5, - 0xD6, - 0xD7, - 0xB4, - 0xB9, - 0xB3, - 0xDC, - 0xDC, - 0x97, - 0xDB, - 0xDB, - 0xA7, - 0xFE, - 0x86, - 0xDB, - 0xDB, - 0xDC, - 0xE6, - 0x84, - 0xFE, - 0xFE, - 0xA5, - 0xDB, - 0xDB, - 0xDB, - 0xD0, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xCC, - 0xCC, - 0xC7, - 0xFE, - 0xC6, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x0A, - 0xC1, - 0x46, - 0xFF, - 0xC5, - 0xA2, - 0xFE, - 0xFE, - 0xA4, - 0xCD, - 0xCD, - 0x04, - 0xCA, - 0x00, - 0x16, - 0xFD, - 0xFE, - 0xA4, - 0xCA, - 0xCA, - 0xA6, - 0xFE, - 0xA6, - 0xA2, - 0xFD, - 0xA7, - 0xC8, - 0xC8, - 0x46, - 0x46, - 0xC2, - 0xFE, - 0xFE, - 0xC5, - 0xC8, - 0xAD, - 0xC5, - 0x0A, - 0xFE, - 0x00, - 0x06, - 0xFF, - 0xC5, - 0xC8, - 0xC5, - 0xFE, - 0xFD, - 0x05, - 0xC8, - 0x00, - 0x20, - 0xC9, - 0xA4, - 0xFE, - 0xC7, - 0xC8, - 0xC8, - 0xA8, - 0xC5, - 0xFE, - 0xFD, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xC9, - 0xA4, - 0xFE, - 0xFE, - 0xC2, - 0xC8, - 0x86, - 0xFE, - 0x87, - 0xC9, - 0xC9, - 0xC9, - 0xAE, - 0xC9, - 0xC9, - 0x87, - 0xFE, - 0xC5, - 0x07, - 0xAE, - 0x00, - 0x13, - 0xA9, - 0xA9, - 0xC5, - 0xFE, - 0xC7, - 0xAF, - 0xAE, - 0xAE, - 0xAF, - 0xA9, - 0xA9, - 0x6B, - 0x96, - 0xA5, - 0xFE, - 0xFD, - 0xC0, - 0x98, - 0xC6, - 0x00, - 0x0A, - 0xFE, - 0x00, - 0x17, - 0xFF, - 0x83, - 0x96, - 0x96, - 0x92, - 0xA5, - 0x86, - 0xA7, - 0xFE, - 0xFE, - 0xFE, - 0x86, - 0x96, - 0x96, - 0xA4, - 0xFF, - 0xC7, - 0x96, - 0xAA, - 0x7F, - 0xFE, - 0xFF, - 0xA4, - 0x00, - 0x04, - 0x96, - 0x00, - 0x16, - 0x54, - 0xA4, - 0xFE, - 0xFD, - 0x9A, - 0x96, - 0x54, - 0xC7, - 0xFE, - 0xC5, - 0x96, - 0x96, - 0x7A, - 0x96, - 0x55, - 0x87, - 0xFF, - 0xC6, - 0x7A, - 0x54, - 0x7A, - 0x7A, - 0x05, - 0x54, - 0x0B, - 0x55, - 0x00, - 0x06, - 0x41, - 0x41, - 0x41, - 0x55, - 0x41, - 0x55, - 0x09, - 0x41, - 0x05, - 0x42, - 0x01, - 0x41, - 0x06, - 0x42, - 0x04, - 0x41, - 0x08, - 0x42, - 0x00, - 0x00, - 0x01, - 0xD6, - 0x07, - 0xD7, - 0x00, - 0x09, - 0xDF, - 0xDF, - 0xDF, - 0xD7, - 0xD5, - 0xEB, - 0xEA, - 0xD5, - 0xEA, - 0x00, - 0x06, - 0xD5, - 0x01, - 0xEB, - 0x08, - 0xD5, - 0x09, - 0xD6, - 0x00, - 0x18, - 0xE9, - 0xD6, - 0xD7, - 0xD6, - 0xD7, - 0xD6, - 0xD6, - 0xA4, - 0xFE, - 0xFE, - 0x84, - 0xD6, - 0xD7, - 0xD7, - 0xB4, - 0xB9, - 0xDC, - 0xDC, - 0xDB, - 0xDB, - 0xDB, - 0xC6, - 0xFE, - 0x87, - 0x05, - 0xDB, - 0x00, - 0x03, - 0xC7, - 0xFE, - 0xC5, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x09, - 0xD0, - 0xFD, - 0xFE, - 0xC5, - 0xCA, - 0xCD, - 0xA6, - 0xFE, - 0xC7, - 0x00, - 0x06, - 0xCD, - 0x00, - 0x09, - 0xA7, - 0xFE, - 0x86, - 0xCA, - 0xC7, - 0xFE, - 0xC5, - 0xCD, - 0xCD, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x16, - 0xA7, - 0xFE, - 0xC5, - 0xCE, - 0xCA, - 0xA6, - 0xFE, - 0xA6, - 0xC8, - 0xC6, - 0xFE, - 0xA5, - 0xCB, - 0xFD, - 0xA7, - 0xCA, - 0xA6, - 0xFE, - 0xC7, - 0xCA, - 0xC8, - 0xC2, - 0x0B, - 0xFE, - 0x00, - 0x06, - 0xC5, - 0xC8, - 0xC3, - 0xFE, - 0xFE, - 0xA4, - 0x05, - 0xC8, - 0x00, - 0x17, - 0xC2, - 0xFF, - 0xFE, - 0xC2, - 0xAD, - 0x95, - 0xC2, - 0xFE, - 0xFE, - 0xA4, - 0xC9, - 0xAD, - 0xC9, - 0xC9, - 0xC9, - 0xFD, - 0xFE, - 0xA5, - 0xC9, - 0xA5, - 0xFE, - 0xFD, - 0xC9, - 0x00, - 0x05, - 0xAE, - 0x00, - 0x03, - 0x86, - 0xFE, - 0x87, - 0x00, - 0x07, - 0xAE, - 0x00, - 0x13, - 0xA9, - 0xA9, - 0xA4, - 0xFF, - 0xFE, - 0x83, - 0xAF, - 0xAF, - 0xAF, - 0xAB, - 0xAB, - 0xAB, - 0x6B, - 0x6B, - 0xC7, - 0xFF, - 0xA5, - 0x98, - 0xA5, - 0x00, - 0x0B, - 0xFE, - 0x00, - 0x17, - 0xA4, - 0x54, - 0x7F, - 0x87, - 0xFE, - 0xFF, - 0xFF, - 0xFE, - 0xFD, - 0xC5, - 0x96, - 0x96, - 0x96, - 0x83, - 0xFE, - 0xFE, - 0x83, - 0x54, - 0x96, - 0xC7, - 0xFE, - 0xC5, - 0x92, - 0x00, - 0x04, - 0x96, - 0x00, - 0x15, - 0x7F, - 0xFE, - 0xFE, - 0xA4, - 0x54, - 0x96, - 0xC6, - 0xFF, - 0x87, - 0x92, - 0x96, - 0x96, - 0x54, - 0x7A, - 0xC5, - 0xFE, - 0xC7, - 0x54, - 0x7A, - 0x54, - 0x96, - 0x00, - 0x05, - 0x54, - 0x05, - 0x55, - 0x00, - 0x08, - 0x41, - 0x55, - 0x41, - 0x55, - 0x55, - 0x55, - 0x41, - 0x55, - 0x0D, - 0x41, - 0x06, - 0x55, - 0x0A, - 0x42, - 0x00, - 0x03, - 0x41, - 0x42, - 0x26, - 0x00, - 0x05, - 0x42, - 0x00, - 0x00, - 0x08, - 0xD7, - 0x00, - 0x09, - 0xDF, - 0xDF, - 0xDF, - 0xD6, - 0xD5, - 0xEA, - 0xEA, - 0xE4, - 0xEA, - 0x00, - 0x0F, - 0xD5, - 0x09, - 0xD6, - 0x00, - 0x03, - 0xB4, - 0xD6, - 0xB4, - 0x00, - 0x04, - 0xD6, - 0x01, - 0xB4, - 0x01, - 0x46, - 0x08, - 0xFE, - 0x00, - 0x08, - 0x46, - 0xDB, - 0xDC, - 0xDB, - 0xC5, - 0xFF, - 0xFE, - 0xC2, - 0x04, - 0xDB, - 0x00, - 0x11, - 0xA6, - 0xFE, - 0xA7, - 0xDB, - 0xDB, - 0xCC, - 0xD0, - 0xCC, - 0xC7, - 0xFE, - 0x86, - 0xCD, - 0xCD, - 0xC5, - 0xFE, - 0xFE, - 0xC4, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x09, - 0xA7, - 0xFE, - 0xA6, - 0xCA, - 0x86, - 0xFE, - 0xA7, - 0xCD, - 0xCD, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x1A, - 0xA7, - 0xFE, - 0x86, - 0xCE, - 0xCA, - 0xA7, - 0xFE, - 0x86, - 0xCA, - 0xC3, - 0xFE, - 0xA7, - 0xDA, - 0xFE, - 0x87, - 0xCA, - 0xC4, - 0xFE, - 0xFE, - 0xC5, - 0xC8, - 0xC8, - 0xA7, - 0xFE, - 0xA6, - 0xCB, - 0x05, - 0xC8, - 0x00, - 0x08, - 0xA7, - 0xFE, - 0x86, - 0xC8, - 0xC8, - 0xFD, - 0xFE, - 0x86, - 0x06, - 0xC8, - 0x00, - 0x17, - 0xC7, - 0xFE, - 0xA4, - 0x95, - 0x95, - 0x95, - 0xFD, - 0xFE, - 0x86, - 0xC9, - 0xC9, - 0xAD, - 0xC9, - 0xC8, - 0xC7, - 0xFE, - 0x86, - 0xAF, - 0xC9, - 0xFD, - 0xFE, - 0xC5, - 0xAF, - 0x00, - 0x04, - 0xAE, - 0x00, - 0x05, - 0xC5, - 0xFE, - 0xC7, - 0xA9, - 0xAF, - 0x00, - 0x05, - 0xAE, - 0x00, - 0x27, - 0xAF, - 0xAF, - 0xC0, - 0xFE, - 0xFE, - 0xA4, - 0x98, - 0xAF, - 0xA9, - 0xAB, - 0xAB, - 0xAB, - 0x6B, - 0x6B, - 0xC6, - 0xFE, - 0xC6, - 0x8F, - 0x7F, - 0xFD, - 0xFE, - 0xC5, - 0x96, - 0x6F, - 0x6F, - 0x96, - 0x96, - 0x7F, - 0xFF, - 0xFE, - 0xA5, - 0x92, - 0xC5, - 0xFF, - 0xFE, - 0x87, - 0x86, - 0xC3, - 0xAA, - 0x00, - 0x05, - 0x96, - 0x00, - 0x1F, - 0xC7, - 0xFF, - 0xA4, - 0x54, - 0x96, - 0xC5, - 0xFE, - 0xC7, - 0x54, - 0xAA, - 0x96, - 0xAA, - 0x96, - 0x96, - 0xFD, - 0xFE, - 0xA5, - 0x9A, - 0x96, - 0xC5, - 0xFF, - 0xFD, - 0x7F, - 0x92, - 0x96, - 0x54, - 0x54, - 0xA5, - 0xFE, - 0xFE, - 0x44, - 0x00, - 0x08, - 0x54, - 0x00, - 0x04, - 0x55, - 0x55, - 0x54, - 0x54, - 0x07, - 0x55, - 0x07, - 0x41, - 0x01, - 0x55, - 0x07, - 0x41, - 0x10, - 0x42, - 0x01, - 0x41, - 0x07, - 0x42, - 0x00, - 0x00, - 0x07, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x05, - 0xD6, - 0xD5, - 0xE4, - 0xEA, - 0xEA, - 0x00, - 0x0D, - 0xD5, - 0x05, - 0xD6, - 0x00, - 0x10, - 0xD5, - 0xD5, - 0xB4, - 0xD6, - 0xD5, - 0xD6, - 0xD6, - 0xD5, - 0xB4, - 0xD5, - 0xB4, - 0xD7, - 0xD7, - 0xB4, - 0xD7, - 0xC7, - 0x09, - 0xFE, - 0x00, - 0x07, - 0xA4, - 0xDB, - 0xDB, - 0xA4, - 0xFE, - 0xFE, - 0x87, - 0x00, - 0x04, - 0xDB, - 0x00, - 0x11, - 0xA6, - 0xFE, - 0xFE, - 0xC5, - 0xD0, - 0xD0, - 0xCD, - 0xCD, - 0xC7, - 0xFE, - 0x86, - 0xCD, - 0xCE, - 0xA4, - 0xFE, - 0xFE, - 0xA7, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x08, - 0x46, - 0xFE, - 0x86, - 0xCA, - 0xC2, - 0xFD, - 0xFE, - 0xC5, - 0x05, - 0xCA, - 0x00, - 0x1A, - 0xFD, - 0xFE, - 0xC5, - 0xCA, - 0xCA, - 0xA7, - 0xFE, - 0xC5, - 0xCA, - 0xCA, - 0xA6, - 0xFF, - 0xC5, - 0xFE, - 0xA6, - 0xC8, - 0xC8, - 0xA6, - 0xFE, - 0xA7, - 0xCB, - 0xC8, - 0xA5, - 0xFE, - 0xFE, - 0xA5, - 0x05, - 0xC8, - 0x00, - 0x09, - 0xFD, - 0xFF, - 0xC5, - 0xC8, - 0xC8, - 0x87, - 0xFE, - 0xFE, - 0xA4, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x20, - 0xC9, - 0x87, - 0xFE, - 0xC5, - 0xAD, - 0xAD, - 0xAD, - 0x87, - 0xFE, - 0xFE, - 0xA4, - 0xAD, - 0xC9, - 0xA8, - 0xC9, - 0xC7, - 0xFE, - 0xA6, - 0xAF, - 0xAF, - 0x86, - 0xFE, - 0xC7, - 0xC2, - 0xC9, - 0xAE, - 0xAF, - 0xAF, - 0xC5, - 0xFE, - 0xFE, - 0xC2, - 0x05, - 0xAE, - 0x04, - 0xAF, - 0x00, - 0x03, - 0xC7, - 0xFE, - 0xC5, - 0x00, - 0x05, - 0x96, - 0x00, - 0x40, - 0xA9, - 0xA9, - 0xA9, - 0xC5, - 0xFE, - 0xA7, - 0xAB, - 0xAB, - 0x86, - 0xFF, - 0xC7, - 0x83, - 0x96, - 0x96, - 0x96, - 0x54, - 0xA4, - 0xFE, - 0xFF, - 0x83, - 0x96, - 0x86, - 0xFF, - 0xA7, - 0xAA, - 0xAA, - 0xAB, - 0xAA, - 0xAA, - 0x92, - 0x92, - 0x96, - 0xAA, - 0x87, - 0xFE, - 0xC5, - 0xAA, - 0xAA, - 0x7F, - 0xFD, - 0xFE, - 0x86, - 0x54, - 0x91, - 0x96, - 0x92, - 0x54, - 0xFD, - 0xFF, - 0xC6, - 0x96, - 0x54, - 0xA4, - 0xFE, - 0xFE, - 0x87, - 0x91, - 0x54, - 0x54, - 0x55, - 0xA5, - 0xFE, - 0xFE, - 0xC3, - 0x08, - 0x54, - 0x00, - 0x0C, - 0x55, - 0x54, - 0x54, - 0x54, - 0x55, - 0x55, - 0x41, - 0x55, - 0x55, - 0x41, - 0x41, - 0x55, - 0x05, - 0x41, - 0x01, - 0x53, - 0x01, - 0x53, - 0x10, - 0x41, - 0x07, - 0x42, - 0x00, - 0x03, - 0x41, - 0x42, - 0x26, - 0x00, - 0x05, - 0x42, - 0x00, - 0x00, - 0x06, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x03, - 0xD7, - 0xD6, - 0xD5, - 0x00, - 0x04, - 0xEA, - 0x0C, - 0xD5, - 0x05, - 0xD6, - 0x00, - 0x98, - 0xD5, - 0xD5, - 0xD5, - 0xB4, - 0xB4, - 0xD5, - 0xB4, - 0xD5, - 0xB4, - 0xE9, - 0xB4, - 0xB4, - 0xD7, - 0xD7, - 0xD6, - 0xC6, - 0xFE, - 0x87, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xB4, - 0xB9, - 0xB9, - 0xDC, - 0xDB, - 0xDB, - 0xD0, - 0x46, - 0xFE, - 0x46, - 0x87, - 0xC2, - 0xCC, - 0xC4, - 0x46, - 0xFE, - 0x87, - 0xFD, - 0xC6, - 0xCC, - 0xCD, - 0xC5, - 0xFE, - 0xFE, - 0xC5, - 0xCD, - 0xCD, - 0xC2, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0xC4, - 0xCD, - 0xCD, - 0x87, - 0xFE, - 0xFF, - 0xC5, - 0xCA, - 0xCE, - 0xC5, - 0xFE, - 0xFE, - 0xA6, - 0xA2, - 0xCA, - 0xCA, - 0x87, - 0xFE, - 0xFE, - 0xC4, - 0xCA, - 0xCA, - 0xFD, - 0xFE, - 0xC5, - 0xCA, - 0xCA, - 0xC3, - 0xFE, - 0xA7, - 0xFE, - 0xC6, - 0xC8, - 0xC8, - 0xA4, - 0xFE, - 0xFE, - 0xA5, - 0xC8, - 0xC8, - 0xC6, - 0xFE, - 0xFE, - 0x86, - 0xC8, - 0xC8, - 0xA2, - 0x87, - 0xFE, - 0xFE, - 0xC2, - 0xAC, - 0xAD, - 0xC6, - 0xFE, - 0xFE, - 0xFE, - 0xC5, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0x86, - 0xFE, - 0xC6, - 0xAD, - 0xAD, - 0xA8, - 0x86, - 0xFE, - 0xFD, - 0xFE, - 0xC5, - 0xC9, - 0xC9, - 0xC5, - 0xFE, - 0xFE, - 0x86, - 0xC9, - 0xAF, - 0xAE, - 0xA7, - 0xFE, - 0xC7, - 0xA5, - 0xAE, - 0xAF, - 0xA5, - 0xFD, - 0xFE, - 0xFE, - 0xA5, - 0xAE, - 0xA9, - 0xA9, - 0xAE, - 0xAE, - 0x04, - 0xAF, - 0x00, - 0x48, - 0xC6, - 0xFE, - 0x87, - 0x96, - 0x96, - 0x96, - 0x98, - 0x98, - 0xA9, - 0xA9, - 0xAB, - 0xC5, - 0xFE, - 0xFD, - 0xAA, - 0xAA, - 0xAA, - 0xA7, - 0xFF, - 0xC7, - 0xC5, - 0x96, - 0xAA, - 0xC3, - 0xA7, - 0xFF, - 0xC7, - 0xAB, - 0xAA, - 0xA5, - 0xFF, - 0xFF, - 0xC6, - 0x7F, - 0xAA, - 0xAA, - 0x83, - 0x86, - 0xC5, - 0x96, - 0x54, - 0x86, - 0xFF, - 0xC6, - 0x96, - 0x96, - 0x9A, - 0xA5, - 0xFE, - 0xFE, - 0xA6, - 0x7F, - 0x92, - 0x54, - 0x87, - 0xFD, - 0xFE, - 0xC7, - 0x96, - 0x96, - 0x44, - 0xFE, - 0xFF, - 0xFD, - 0x87, - 0xC3, - 0x54, - 0x83, - 0xA7, - 0xFE, - 0xFF, - 0x44, - 0x08, - 0x54, - 0x00, - 0x04, - 0x55, - 0x55, - 0x54, - 0x54, - 0x06, - 0x55, - 0x08, - 0x41, - 0x01, - 0x53, - 0x10, - 0x41, - 0x06, - 0x42, - 0x00, - 0x03, - 0x41, - 0x41, - 0x41, - 0x00, - 0x04, - 0x42, - 0x01, - 0x41, - 0x01, - 0x42, - 0x00, - 0x00, - 0x05, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x05, - 0xD7, - 0xD7, - 0xD6, - 0xD5, - 0xEA, - 0x00, - 0x0F, - 0xD5, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x10, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xB4, - 0xD6, - 0xC5, - 0xFE, - 0x46, - 0x04, - 0xB4, - 0x00, - 0x0B, - 0xDF, - 0xB4, - 0xB9, - 0xB3, - 0xDB, - 0xDB, - 0xCC, - 0xA7, - 0xFE, - 0xC6, - 0xA7, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x03, - 0x48, - 0xA5, - 0xA5, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x08, - 0xC4, - 0xCD, - 0xCD, - 0xCD, - 0xC7, - 0xFE, - 0xA6, - 0xC7, - 0x05, - 0xFE, - 0x01, - 0xA7, - 0x04, - 0xCA, - 0x01, - 0xC5, - 0x06, - 0xFE, - 0x00, - 0x19, - 0x48, - 0x86, - 0xCA, - 0xCA, - 0xCA, - 0xFD, - 0xFE, - 0xA5, - 0xCE, - 0xCA, - 0xC8, - 0xA6, - 0xFE, - 0xFE, - 0x86, - 0xC8, - 0xC8, - 0xCA, - 0xA7, - 0xFE, - 0xA7, - 0xCB, - 0xC8, - 0xC8, - 0xC6, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x18, - 0x48, - 0xC5, - 0xC8, - 0xC8, - 0xC8, - 0xC5, - 0xFF, - 0xFD, - 0xA6, - 0xFE, - 0xFE, - 0xFE, - 0xFD, - 0xC8, - 0xC5, - 0xFF, - 0xA7, - 0xAD, - 0xAD, - 0xAD, - 0xC5, - 0xFF, - 0xFD, - 0xC5, - 0x06, - 0xFE, - 0x00, - 0x06, - 0xC3, - 0xC9, - 0xAE, - 0xAE, - 0xC0, - 0xA7, - 0x05, - 0xFE, - 0x00, - 0x05, - 0xC6, - 0xC7, - 0xFE, - 0xC5, - 0xAE, - 0x00, - 0x04, - 0xA9, - 0x04, - 0xAF, - 0x00, - 0x13, - 0xC5, - 0xFE, - 0xC7, - 0xAB, - 0x96, - 0x96, - 0x98, - 0x98, - 0xA9, - 0xA9, - 0xA9, - 0xC5, - 0xFE, - 0xC7, - 0xAA, - 0xAA, - 0xAA, - 0x7F, - 0x87, - 0x00, - 0x07, - 0xFE, - 0x00, - 0x07, - 0xA4, - 0xAA, - 0xAA, - 0xAA, - 0x86, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x1C, - 0xFF, - 0x87, - 0xAA, - 0xAA, - 0xA5, - 0xFE, - 0xA7, - 0x96, - 0x96, - 0xAA, - 0xAA, - 0xC5, - 0xFF, - 0xFF, - 0xFE, - 0xFE, - 0xFE, - 0xFD, - 0xC5, - 0xFE, - 0xFD, - 0x54, - 0x92, - 0x96, - 0xC7, - 0xFF, - 0x86, - 0xA7, - 0x05, - 0xFE, - 0x01, - 0xA6, - 0x0D, - 0x54, - 0x05, - 0x55, - 0x00, - 0x03, - 0x41, - 0x41, - 0x55, - 0x00, - 0x17, - 0x41, - 0x05, - 0x42, - 0x00, - 0x04, - 0x41, - 0x41, - 0x42, - 0x42, - 0x04, - 0x41, - 0x01, - 0x42, - 0x01, - 0x41, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xD7, - 0xD7, - 0xDF, - 0xDF, - 0xDF, - 0xB9, - 0xDF, - 0xDF, - 0xB6, - 0xD6, - 0xD6, - 0x00, - 0x0D, - 0xD5, - 0x07, - 0xD6, - 0x01, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x13, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0xD7, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xA4, - 0xFE, - 0xFE, - 0x84, - 0xB4, - 0xDF, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x23, - 0xB9, - 0xDC, - 0xDB, - 0xCC, - 0xC6, - 0xFE, - 0x87, - 0xCC, - 0x86, - 0xFE, - 0xFE, - 0x46, - 0xC5, - 0xCD, - 0xCC, - 0xC2, - 0xA6, - 0xFE, - 0xFE, - 0xC7, - 0xA5, - 0xCD, - 0xCC, - 0xCC, - 0xCC, - 0xA6, - 0xFE, - 0x87, - 0xCD, - 0x86, - 0xFE, - 0xFE, - 0xFE, - 0xC6, - 0xA2, - 0x00, - 0x05, - 0xCA, - 0x00, - 0x43, - 0xC2, - 0x86, - 0xFE, - 0xFE, - 0xFE, - 0xA7, - 0xC5, - 0xC8, - 0xC8, - 0xC8, - 0xA2, - 0xFE, - 0xFE, - 0xA5, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xFE, - 0xFE, - 0xC5, - 0xCA, - 0xC8, - 0xCA, - 0xA5, - 0xFE, - 0xFE, - 0xA5, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xC6, - 0xFE, - 0xFE, - 0xFE, - 0xA7, - 0xC5, - 0xAD, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xFE, - 0xFE, - 0xC3, - 0xC5, - 0xA7, - 0xFE, - 0xFE, - 0xC2, - 0xC3, - 0xFE, - 0xFD, - 0xAD, - 0xAD, - 0xAD, - 0xC3, - 0xFE, - 0xFE, - 0xA4, - 0xC3, - 0x87, - 0xFE, - 0xFE, - 0xA7, - 0xA5, - 0x00, - 0x06, - 0xAE, - 0x00, - 0x09, - 0xC5, - 0xC7, - 0xFE, - 0xFE, - 0xC6, - 0xAF, - 0xC6, - 0xFE, - 0x87, - 0x00, - 0x09, - 0xA9, - 0x00, - 0x1A, - 0xA4, - 0xFE, - 0xFE, - 0x83, - 0xAB, - 0x6B, - 0x6F, - 0x6F, - 0x6B, - 0x6B, - 0x6C, - 0xA6, - 0xFE, - 0x87, - 0x8F, - 0x8F, - 0xAA, - 0xAA, - 0xAA, - 0xA5, - 0x87, - 0xFE, - 0xFE, - 0xFE, - 0x87, - 0xC3, - 0x04, - 0xAA, - 0x00, - 0x0E, - 0x96, - 0xA5, - 0xA6, - 0xFF, - 0xFE, - 0xFE, - 0xFD, - 0x86, - 0x83, - 0x91, - 0xAA, - 0xC3, - 0xFE, - 0xFD, - 0x05, - 0xAA, - 0x00, - 0x15, - 0xC3, - 0xA6, - 0xFE, - 0xFE, - 0xA7, - 0xA4, - 0x83, - 0xFE, - 0xFE, - 0xA4, - 0x91, - 0x54, - 0xA6, - 0xFE, - 0x87, - 0x54, - 0xC5, - 0xFD, - 0xFE, - 0xFE, - 0xC6, - 0x00, - 0x0F, - 0x54, - 0x00, - 0x06, - 0x55, - 0x54, - 0x41, - 0x55, - 0x41, - 0x55, - 0x0A, - 0x41, - 0x00, - 0x09, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x00, - 0x0F, - 0x41, - 0x00, - 0x05, - 0x26, - 0x41, - 0x26, - 0x41, - 0x41, - 0x00, - 0x00, - 0x00, - 0x01, - 0xD7, - 0x01, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x05, - 0xB9, - 0xDF, - 0xB6, - 0xD6, - 0xD6, - 0x00, - 0x04, - 0xD5, - 0x01, - 0x9B, - 0x08, - 0xD5, - 0x07, - 0xD6, - 0x01, - 0xD5, - 0x05, - 0xD6, - 0x00, - 0x09, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xD6, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x05, - 0x46, - 0xFE, - 0xC5, - 0xB4, - 0xDF, - 0x00, - 0x04, - 0xB4, - 0x00, - 0x03, - 0xB9, - 0xDC, - 0xDB, - 0x00, - 0x0E, - 0xCC, - 0x00, - 0x03, - 0xCD, - 0xCD, - 0xCD, - 0x00, - 0x05, - 0xCC, - 0x04, - 0xCD, - 0x01, - 0xCE, - 0x0F, - 0xCA, - 0x12, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x10, - 0xC8, - 0x01, - 0xAD, - 0x09, - 0x95, - 0x09, - 0xAD, - 0x15, - 0xAE, - 0x0A, - 0xA9, - 0x00, - 0x0F, - 0xFD, - 0xFF, - 0xA5, - 0x94, - 0x6B, - 0x6F, - 0x6F, - 0xAB, - 0xAA, - 0xA4, - 0xFE, - 0xFE, - 0xC5, - 0x8E, - 0x8F, - 0x00, - 0x06, - 0xAA, - 0x00, - 0x03, - 0xAB, - 0xAB, - 0xAB, - 0x00, - 0x05, - 0xAA, - 0x07, - 0x96, - 0x06, - 0xAA, - 0x00, - 0x03, - 0x92, - 0x92, - 0x92, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x03, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x06, - 0x92, - 0x07, - 0x54, - 0x00, - 0x07, - 0x96, - 0x54, - 0x54, - 0x54, - 0x96, - 0x54, - 0x96, - 0x00, - 0x0C, - 0x54, - 0x01, - 0x55, - 0x05, - 0x41, - 0x01, - 0x55, - 0x06, - 0x41, - 0x00, - 0x0A, - 0x55, - 0x41, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x0E, - 0x41, - 0x00, - 0x07, - 0x42, - 0x41, - 0x26, - 0x26, - 0x41, - 0x26, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD7, - 0xD7, - 0xDF, - 0xD7, - 0xDF, - 0xDF, - 0xD7, - 0xD7, - 0xD7, - 0xD6, - 0x0F, - 0xD5, - 0x05, - 0xD6, - 0x00, - 0x17, - 0xD5, - 0xD5, - 0x9B, - 0xD6, - 0xD6, - 0xD6, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xA7, - 0xFE, - 0x86, - 0x00, - 0x06, - 0xB4, - 0x00, - 0x06, - 0xB6, - 0xDC, - 0xDB, - 0xDB, - 0xD0, - 0xD0, - 0x0C, - 0xCC, - 0x01, - 0xCD, - 0x01, - 0xCD, - 0x05, - 0xCC, - 0x01, - 0xCD, - 0x01, - 0xCD, - 0x12, - 0xCA, - 0x12, - 0xC8, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x10, - 0xC8, - 0x01, - 0xAD, - 0x08, - 0x95, - 0x01, - 0xAD, - 0x01, - 0xC9, - 0x08, - 0xAD, - 0x00, - 0x03, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x10, - 0xAE, - 0x0A, - 0xA9, - 0x00, - 0x05, - 0xAB, - 0xAA, - 0xC7, - 0xFE, - 0xC5, - 0x00, - 0x04, - 0x6B, - 0x00, - 0x08, - 0xC3, - 0xC6, - 0xFE, - 0xFE, - 0xA7, - 0x8E, - 0x8E, - 0x8F, - 0x06, - 0xAA, - 0x00, - 0x03, - 0xAB, - 0xAB, - 0xAB, - 0x00, - 0x09, - 0xAA, - 0x00, - 0x09, - 0x96, - 0x96, - 0x96, - 0xAA, - 0xAA, - 0x96, - 0xAA, - 0x91, - 0x93, - 0x00, - 0x08, - 0x92, - 0x00, - 0x03, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x06, - 0x92, - 0x01, - 0x54, - 0x05, - 0x92, - 0x13, - 0x54, - 0x00, - 0x05, - 0x52, - 0x55, - 0x52, - 0x55, - 0x55, - 0x00, - 0x04, - 0x41, - 0x00, - 0x03, - 0x55, - 0x41, - 0x55, - 0x00, - 0x06, - 0x41, - 0x00, - 0x09, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x42, - 0x00, - 0x07, - 0x41, - 0x01, - 0x26, - 0x01, - 0x42, - 0x05, - 0x41, - 0x00, - 0x04, - 0x26, - 0x41, - 0x41, - 0x41, - 0x00, - 0x00, - 0x08, - 0xD7, - 0x01, - 0xDF, - 0x01, - 0xD6, - 0x06, - 0xD5, - 0x00, - 0x03, - 0x9B, - 0xD6, - 0xD6, - 0x00, - 0x06, - 0xD5, - 0x09, - 0xD6, - 0x01, - 0xB4, - 0x01, - 0xD6, - 0x08, - 0xB4, - 0x01, - 0xD7, - 0x05, - 0xB4, - 0x01, - 0xC6, - 0x09, - 0xFE, - 0x00, - 0x05, - 0xC6, - 0xDB, - 0xDB, - 0xD0, - 0xD0, - 0x00, - 0x0C, - 0xCC, - 0x00, - 0x05, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x04, - 0xCD, - 0x0F, - 0xCA, - 0x01, - 0xC8, - 0x01, - 0xC8, - 0x05, - 0xCA, - 0x07, - 0xC8, - 0x06, - 0xAC, - 0x14, - 0xC8, - 0x01, - 0xAD, - 0x06, - 0x95, - 0x00, - 0x06, - 0xAD, - 0xAD, - 0xAD, - 0xA5, - 0xFE, - 0xFD, - 0x06, - 0xAD, - 0x00, - 0x03, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x10, - 0xAE, - 0x0A, - 0xA9, - 0x00, - 0x03, - 0xAB, - 0xAB, - 0xC6, - 0x00, - 0x09, - 0xFE, - 0x00, - 0x05, - 0x87, - 0x7F, - 0x8F, - 0x8E, - 0x8F, - 0x00, - 0x0C, - 0xAA, - 0x01, - 0x96, - 0x01, - 0x96, - 0x09, - 0xAA, - 0x00, - 0x07, - 0x92, - 0x92, - 0x7A, - 0xA5, - 0xFF, - 0xFD, - 0x91, - 0x00, - 0x13, - 0x92, - 0x0F, - 0x54, - 0x04, - 0x52, - 0x00, - 0x0A, - 0x54, - 0x55, - 0x93, - 0x55, - 0x52, - 0x41, - 0x41, - 0x55, - 0x41, - 0x55, - 0x04, - 0x41, - 0x01, - 0x55, - 0x05, - 0x41, - 0x00, - 0x05, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x00, - 0x13, - 0x41, - 0x01, - 0x42, - 0x01, - 0x41, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD7, - 0xD7, - 0xD7, - 0x00, - 0x04, - 0xDF, - 0x00, - 0x04, - 0xD7, - 0xDF, - 0xD6, - 0xD6, - 0x05, - 0xD5, - 0x00, - 0x03, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x06, - 0xD5, - 0x08, - 0xD6, - 0x00, - 0x0B, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0x00, - 0x06, - 0xB4, - 0x01, - 0xC5, - 0x09, - 0xFE, - 0x00, - 0x05, - 0xA7, - 0xDC, - 0xCC, - 0xD0, - 0xD0, - 0x00, - 0x0C, - 0xCC, - 0x00, - 0x05, - 0xCD, - 0xCD, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x04, - 0xCD, - 0x0E, - 0xCA, - 0x00, - 0x08, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0xCA, - 0xB1, - 0xB1, - 0x07, - 0xC8, - 0x06, - 0xAC, - 0x14, - 0xC8, - 0x01, - 0xAD, - 0x06, - 0x95, - 0x00, - 0x0F, - 0xAD, - 0xAD, - 0xAD, - 0xA5, - 0xFF, - 0xFD, - 0xAD, - 0x90, - 0x90, - 0xAD, - 0xAD, - 0xAD, - 0xC9, - 0xC9, - 0xC9, - 0x00, - 0x09, - 0xAE, - 0x07, - 0xA8, - 0x0A, - 0xA9, - 0x00, - 0x03, - 0xAB, - 0xAB, - 0xC5, - 0x00, - 0x07, - 0xFE, - 0x00, - 0x07, - 0x86, - 0xA5, - 0x98, - 0x6B, - 0x8E, - 0x8E, - 0x8F, - 0x00, - 0x15, - 0xAA, - 0x05, - 0x92, - 0x00, - 0x04, - 0xA4, - 0xFF, - 0xFD, - 0x91, - 0x13, - 0x92, - 0x00, - 0x05, - 0x91, - 0x52, - 0x54, - 0x52, - 0x52, - 0x00, - 0x07, - 0x54, - 0x01, - 0x52, - 0x07, - 0x54, - 0x00, - 0x06, - 0x52, - 0x55, - 0x52, - 0x93, - 0x41, - 0x55, - 0x04, - 0x41, - 0x00, - 0x04, - 0x55, - 0x41, - 0x55, - 0x55, - 0x0C, - 0x41, - 0x01, - 0x26, - 0x0A, - 0x41, - 0x01, - 0x26, - 0x04, - 0x41, - 0x00, - 0x03, - 0x42, - 0x41, - 0x41, - 0x00, - 0x00, - 0x00, - 0x01, - 0xD7, - 0x01, - 0xD7, - 0x05, - 0xDF, - 0x00, - 0x0F, - 0xD7, - 0xDF, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0x9B, - 0xD5, - 0xD5, - 0xD5, - 0xD6, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0x00, - 0x05, - 0xD6, - 0x00, - 0x07, - 0xB4, - 0xD6, - 0xB4, - 0xB4, - 0xD6, - 0xB4, - 0xD7, - 0x00, - 0x11, - 0xB4, - 0x00, - 0x0C, - 0xB9, - 0xB4, - 0xB6, - 0xB4, - 0xB9, - 0x99, - 0x99, - 0xB3, - 0xB9, - 0xB3, - 0xDC, - 0xDB, - 0x0B, - 0xCC, - 0x0A, - 0xCD, - 0x10, - 0xCA, - 0x00, - 0x08, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0xB1, - 0xB1, - 0xB1, - 0x06, - 0xC8, - 0x07, - 0xAC, - 0x14, - 0xC8, - 0x0A, - 0xAD, - 0x00, - 0x06, - 0xA5, - 0xFE, - 0xFD, - 0xAD, - 0xA8, - 0xA8, - 0x04, - 0xAE, - 0x01, - 0xC9, - 0x01, - 0xC9, - 0x09, - 0xAE, - 0x08, - 0xA8, - 0x08, - 0xA9, - 0x07, - 0xAB, - 0x01, - 0xA9, - 0x05, - 0x6B, - 0x00, - 0x05, - 0x8E, - 0x8E, - 0x8F, - 0x8F, - 0x8F, - 0x00, - 0x0C, - 0xAA, - 0x01, - 0x91, - 0x01, - 0x92, - 0x05, - 0xAA, - 0x06, - 0x92, - 0x00, - 0x27, - 0x93, - 0xA5, - 0xFE, - 0xFD, - 0x91, - 0x92, - 0x92, - 0x92, - 0x52, - 0x92, - 0x52, - 0x92, - 0x52, - 0x92, - 0x52, - 0x92, - 0x52, - 0x92, - 0x92, - 0x92, - 0x91, - 0x91, - 0x92, - 0x92, - 0x91, - 0x52, - 0x52, - 0x52, - 0x54, - 0x52, - 0x52, - 0x54, - 0x54, - 0x92, - 0x54, - 0x52, - 0x54, - 0x41, - 0x54, - 0x00, - 0x04, - 0x52, - 0x00, - 0x0A, - 0x55, - 0x55, - 0x93, - 0x52, - 0x55, - 0x53, - 0x41, - 0x55, - 0x41, - 0x55, - 0x0E, - 0x41, - 0x05, - 0x26, - 0x01, - 0x41, - 0x05, - 0x26, - 0x04, - 0x41, - 0x06, - 0x26, - 0x01, - 0x41, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD7, - 0xD7, - 0xD7, - 0x00, - 0x06, - 0xDF, - 0x01, - 0xD6, - 0x01, - 0xD6, - 0x04, - 0xD5, - 0x00, - 0x0A, - 0xD6, - 0xD5, - 0xD6, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0xD6, - 0xD6, - 0x9B, - 0x07, - 0xD6, - 0x00, - 0x1F, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xB4, - 0xB6, - 0xB6, - 0xB6, - 0xB4, - 0xB6, - 0xB6, - 0xB9, - 0xB4, - 0x99, - 0xB9, - 0xB9, - 0xB9, - 0xB6, - 0xB3, - 0xB3, - 0xDC, - 0xDB, - 0x00, - 0x0B, - 0xCC, - 0x0A, - 0xCD, - 0x0D, - 0xCA, - 0x06, - 0xC8, - 0x00, - 0x05, - 0xCA, - 0xCA, - 0xB1, - 0xB1, - 0xB1, - 0x00, - 0x0D, - 0xAC, - 0x14, - 0xC8, - 0x0E, - 0xAD, - 0x01, - 0xA8, - 0x01, - 0xA8, - 0x0E, - 0xAE, - 0x06, - 0xA8, - 0x00, - 0x03, - 0x8D, - 0x8D, - 0xA8, - 0x00, - 0x08, - 0xA9, - 0x07, - 0xAB, - 0x01, - 0xA9, - 0x05, - 0x6B, - 0x00, - 0x05, - 0x8E, - 0x8E, - 0x8F, - 0x8F, - 0x8F, - 0x00, - 0x0C, - 0xAA, - 0x01, - 0x91, - 0x01, - 0x92, - 0x05, - 0xAA, - 0x04, - 0x92, - 0x00, - 0x03, - 0x91, - 0x91, - 0x91, - 0x00, - 0x12, - 0x92, - 0x00, - 0x0C, - 0x91, - 0x91, - 0x91, - 0x92, - 0x92, - 0x91, - 0x52, - 0x52, - 0x54, - 0x52, - 0x54, - 0x52, - 0x05, - 0x54, - 0x00, - 0x0C, - 0x52, - 0x54, - 0x41, - 0x54, - 0x52, - 0x41, - 0x54, - 0x52, - 0x55, - 0x55, - 0x93, - 0x52, - 0x05, - 0x41, - 0x00, - 0x03, - 0x55, - 0x41, - 0x55, - 0x00, - 0x0B, - 0x41, - 0x05, - 0x26, - 0x05, - 0x41, - 0x04, - 0x26, - 0x07, - 0x41, - 0x01, - 0x26, - 0x00, - 0x00, - 0x00, - 0x16, - 0xDF, - 0xDF, - 0xD7, - 0xDF, - 0xDF, - 0xDF, - 0xB9, - 0xB6, - 0xD7, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0xD6, - 0xD5, - 0xD5, - 0xD5, - 0xD6, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0x05, - 0xD6, - 0x04, - 0xB4, - 0x01, - 0xD6, - 0x08, - 0xB4, - 0x01, - 0xD7, - 0x05, - 0xB4, - 0x00, - 0x13, - 0xB6, - 0xB6, - 0xB6, - 0xB9, - 0xB3, - 0xB4, - 0xB6, - 0xB6, - 0xE7, - 0xB6, - 0xB3, - 0xB3, - 0xB3, - 0xB6, - 0xB9, - 0xB9, - 0xDB, - 0xCC, - 0xCD, - 0x00, - 0x09, - 0xCC, - 0x00, - 0x0A, - 0xCE, - 0xCE, - 0xCA, - 0xCD, - 0xCD, - 0xCA, - 0xCA, - 0xCA, - 0xCD, - 0xCD, - 0x0C, - 0xCA, - 0x07, - 0xC8, - 0x00, - 0x05, - 0xCA, - 0xCA, - 0xB1, - 0xB1, - 0xB1, - 0x00, - 0x0D, - 0xAC, - 0x14, - 0xC8, - 0x09, - 0xAD, - 0x00, - 0x05, - 0xC9, - 0xC9, - 0xA8, - 0xAD, - 0xAD, - 0x00, - 0x0A, - 0xAE, - 0x09, - 0xA8, - 0x00, - 0x06, - 0x8D, - 0xA8, - 0xA8, - 0x8D, - 0x8D, - 0xA8, - 0x09, - 0xA9, - 0x0A, - 0xAB, - 0x01, - 0x6B, - 0x01, - 0x8E, - 0x05, - 0x8F, - 0x0C, - 0xAA, - 0x01, - 0x91, - 0x01, - 0x92, - 0x05, - 0xAA, - 0x04, - 0x92, - 0x00, - 0x03, - 0x91, - 0x91, - 0x91, - 0x00, - 0x12, - 0x92, - 0x00, - 0x0C, - 0x52, - 0x52, - 0x52, - 0x91, - 0x91, - 0x91, - 0x52, - 0x52, - 0x52, - 0x54, - 0x52, - 0x54, - 0x05, - 0x52, - 0x01, - 0x54, - 0x01, - 0x52, - 0x05, - 0x54, - 0x00, - 0x06, - 0x41, - 0x55, - 0x93, - 0x52, - 0x52, - 0x53, - 0x0B, - 0x41, - 0x01, - 0x40, - 0x01, - 0x40, - 0x05, - 0x41, - 0x15, - 0x26, - 0x01, - 0x41, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDF, - 0xDF, - 0xDF, - 0xB6, - 0xB6, - 0xB9, - 0xB9, - 0xD7, - 0xD7, - 0xD7, - 0x05, - 0xD6, - 0x00, - 0x03, - 0xD5, - 0xD6, - 0x9B, - 0x00, - 0x05, - 0xD6, - 0x00, - 0x11, - 0xB4, - 0xD6, - 0x9B, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0x00, - 0x06, - 0xB4, - 0x05, - 0xB6, - 0x00, - 0x0E, - 0xB9, - 0x99, - 0xB9, - 0x99, - 0x99, - 0xB3, - 0xB3, - 0xB3, - 0x99, - 0xB9, - 0xB3, - 0xD0, - 0xCC, - 0xCD, - 0x05, - 0xCC, - 0x00, - 0x06, - 0xCD, - 0xCD, - 0xCD, - 0xD1, - 0xCE, - 0xCE, - 0x12, - 0xCA, - 0x05, - 0xC8, - 0x16, - 0xAC, - 0x14, - 0xC8, - 0x08, - 0xAD, - 0x00, - 0x06, - 0xC9, - 0xC9, - 0xA8, - 0xC9, - 0xA8, - 0xAD, - 0x06, - 0xAE, - 0x0D, - 0xA8, - 0x04, - 0x8D, - 0x01, - 0xA8, - 0x01, - 0xA8, - 0x09, - 0xA9, - 0x07, - 0xAB, - 0x00, - 0x0A, - 0xAA, - 0xAA, - 0x8F, - 0x8E, - 0x8F, - 0x8F, - 0x8F, - 0x8E, - 0x8E, - 0x8F, - 0x0C, - 0xAA, - 0x01, - 0x92, - 0x01, - 0x92, - 0x04, - 0xAA, - 0x05, - 0x92, - 0x00, - 0x03, - 0x91, - 0x91, - 0x91, - 0x00, - 0x0E, - 0x92, - 0x01, - 0x91, - 0x01, - 0x91, - 0x0C, - 0x52, - 0x01, - 0x54, - 0x01, - 0x54, - 0x06, - 0x52, - 0x00, - 0x05, - 0x54, - 0x41, - 0x52, - 0x54, - 0x41, - 0x00, - 0x05, - 0x52, - 0x00, - 0x05, - 0x41, - 0x53, - 0x52, - 0x53, - 0x53, - 0x00, - 0x08, - 0x41, - 0x01, - 0x40, - 0x06, - 0x41, - 0x0F, - 0x26, - 0x07, - 0x41, - 0x00, - 0x00, - 0x00, - 0x10, - 0xDF, - 0xDF, - 0xDF, - 0xB6, - 0xD7, - 0xB6, - 0xB6, - 0xB6, - 0xD7, - 0xD6, - 0xD6, - 0xD6, - 0xD5, - 0xD6, - 0xD6, - 0xD5, - 0x06, - 0xD6, - 0x00, - 0x0C, - 0xB4, - 0xD6, - 0xD6, - 0x9B, - 0xD6, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0x0C, - 0xB4, - 0x00, - 0x13, - 0xB6, - 0xB6, - 0xB6, - 0xB3, - 0xB9, - 0x99, - 0xB9, - 0x99, - 0xB9, - 0xB3, - 0xB3, - 0x99, - 0xB3, - 0xB3, - 0xB3, - 0xB9, - 0xD0, - 0xCC, - 0xCD, - 0x00, - 0x05, - 0xCC, - 0x00, - 0x06, - 0xCD, - 0xB1, - 0xCD, - 0xCD, - 0xCE, - 0xCE, - 0x12, - 0xCA, - 0x05, - 0xC8, - 0x16, - 0xAC, - 0x14, - 0xC8, - 0x08, - 0xAD, - 0x00, - 0x06, - 0xC9, - 0xC9, - 0xC9, - 0xAD, - 0xAD, - 0xAD, - 0x06, - 0xAE, - 0x0D, - 0xA8, - 0x04, - 0x8D, - 0x01, - 0xA8, - 0x01, - 0xA8, - 0x09, - 0xA9, - 0x07, - 0xAB, - 0x00, - 0x0A, - 0xAA, - 0xAA, - 0x8F, - 0x8E, - 0x8F, - 0x8F, - 0x8F, - 0x8E, - 0x8E, - 0x8F, - 0x0C, - 0xAA, - 0x01, - 0x92, - 0x01, - 0x92, - 0x04, - 0xAA, - 0x05, - 0x92, - 0x00, - 0x03, - 0x91, - 0x91, - 0x91, - 0x00, - 0x0C, - 0x92, - 0x04, - 0x91, - 0x14, - 0x52, - 0x06, - 0x54, - 0x00, - 0x08, - 0x55, - 0x52, - 0x55, - 0x52, - 0x52, - 0x40, - 0x40, - 0x40, - 0x09, - 0x41, - 0x01, - 0x40, - 0x01, - 0x40, - 0x05, - 0x41, - 0x16, - 0x26, - 0x00, - 0x00, - 0x01, - 0xDF, - 0x01, - 0xDF, - 0x06, - 0xB6, - 0x00, - 0x05, - 0xD7, - 0xD6, - 0xD6, - 0xD5, - 0x9B, - 0x00, - 0x05, - 0xD6, - 0x00, - 0x09, - 0xD7, - 0xD6, - 0x9B, - 0xD6, - 0xD6, - 0xB4, - 0xD6, - 0x9B, - 0xD6, - 0x00, - 0x05, - 0xB4, - 0x00, - 0x0E, - 0xD6, - 0xD6, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xB4, - 0xB9, - 0xB4, - 0xE7, - 0xB6, - 0xB4, - 0x05, - 0xB6, - 0x00, - 0x06, - 0xB3, - 0xB9, - 0x99, - 0xB6, - 0xB3, - 0x99, - 0x04, - 0xB3, - 0x00, - 0x04, - 0xB9, - 0xD0, - 0xCC, - 0xCD, - 0x05, - 0xCC, - 0x01, - 0xCD, - 0x06, - 0xCE, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x04, - 0xB1, - 0x09, - 0xCA, - 0x05, - 0xC8, - 0x19, - 0xAC, - 0x0F, - 0xC8, - 0x0C, - 0xAD, - 0x00, - 0x05, - 0xC9, - 0xAD, - 0xAD, - 0xA8, - 0xA8, - 0x00, - 0x06, - 0xAE, - 0x04, - 0xA8, - 0x05, - 0xA9, - 0x05, - 0xA8, - 0x04, - 0x8D, - 0x01, - 0xA9, - 0x01, - 0xA9, - 0x05, - 0xAB, - 0x01, - 0xA9, - 0x01, - 0xA9, - 0x08, - 0xAB, - 0x07, - 0x8F, - 0x00, - 0x03, - 0x8E, - 0x8E, - 0x8F, - 0x00, - 0x12, - 0xAA, - 0x00, - 0x0A, - 0x92, - 0x92, - 0x91, - 0x92, - 0x92, - 0x91, - 0x91, - 0x92, - 0x92, - 0x92, - 0x0C, - 0x91, - 0x04, - 0x93, - 0x1B, - 0x52, - 0x01, - 0x40, - 0x01, - 0x52, - 0x04, - 0x40, - 0x01, - 0x52, - 0x08, - 0x41, - 0x00, - 0x04, - 0x40, - 0x41, - 0x41, - 0x41, - 0x18, - 0x26, - 0x00, - 0x00, - 0x00, - 0x24, - 0xB6, - 0xB6, - 0xD7, - 0xB6, - 0xB9, - 0xB9, - 0xB9, - 0xB6, - 0xD7, - 0xD6, - 0xD6, - 0xD5, - 0xD5, - 0x9B, - 0xD6, - 0xD6, - 0xB4, - 0xD6, - 0xD7, - 0xD6, - 0xD7, - 0x9B, - 0x9B, - 0xD6, - 0x9B, - 0xD6, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0x05, - 0xB4, - 0x04, - 0xB6, - 0x01, - 0xB4, - 0x07, - 0xB6, - 0x01, - 0xB9, - 0x01, - 0xB9, - 0x06, - 0xB3, - 0x00, - 0x04, - 0xB9, - 0xD0, - 0xCC, - 0xCD, - 0x05, - 0xCC, - 0x01, - 0xCD, - 0x06, - 0xCE, - 0x01, - 0xCA, - 0x01, - 0xCA, - 0x05, - 0xB1, - 0x08, - 0xCA, - 0x04, - 0xC8, - 0x1C, - 0xAC, - 0x0C, - 0xC8, - 0x00, - 0x03, - 0x95, - 0x95, - 0x95, - 0x00, - 0x0E, - 0xAD, - 0x04, - 0xA8, - 0x04, - 0xAE, - 0x04, - 0xA8, - 0x05, - 0xA9, - 0x05, - 0xA8, - 0x04, - 0x8D, - 0x01, - 0xA9, - 0x01, - 0xA9, - 0x08, - 0xAB, - 0x04, - 0xAA, - 0x00, - 0x03, - 0x8F, - 0x8E, - 0x8E, - 0x00, - 0x07, - 0x8F, - 0x00, - 0x03, - 0x8E, - 0x8E, - 0x8F, - 0x00, - 0x04, - 0xAA, - 0x05, - 0x8B, - 0x00, - 0x0B, - 0xAA, - 0xAA, - 0xAA, - 0x8B, - 0xAA, - 0x8B, - 0xAA, - 0xAA, - 0xAA, - 0x92, - 0x92, - 0x00, - 0x13, - 0x91, - 0x06, - 0x93, - 0x18, - 0x52, - 0x00, - 0x08, - 0x55, - 0x52, - 0x52, - 0x40, - 0x52, - 0x40, - 0x40, - 0x52, - 0x05, - 0x41, - 0x00, - 0x07, - 0x53, - 0x41, - 0x53, - 0x53, - 0x53, - 0x26, - 0x41, - 0x00, - 0x19, - 0x26, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xB6, - 0xD7, - 0xB6, - 0xB6, - 0xB6, - 0xB9, - 0xB9, - 0xB6, - 0xD7, - 0xD6, - 0xD5, - 0x9B, - 0x9B, - 0xD6, - 0x9B, - 0x9B, - 0xD6, - 0xD7, - 0xD6, - 0xD7, - 0x9B, - 0x9B, - 0xD6, - 0x9B, - 0xD6, - 0xD6, - 0xD6, - 0x00, - 0x0C, - 0xB4, - 0x01, - 0xDF, - 0x06, - 0xB4, - 0x06, - 0xB6, - 0x00, - 0x03, - 0xB9, - 0xB3, - 0xB6, - 0x00, - 0x06, - 0xB3, - 0x00, - 0x0A, - 0xB9, - 0xDB, - 0xCC, - 0xCD, - 0xCC, - 0xCC, - 0xB1, - 0xB1, - 0xB1, - 0xCC, - 0x06, - 0xCE, - 0x07, - 0xB1, - 0x06, - 0xCA, - 0x01, - 0xC8, - 0x01, - 0xCA, - 0x04, - 0xC8, - 0x1C, - 0xAC, - 0x0A, - 0xC8, - 0x05, - 0x95, - 0x0E, - 0xAD, - 0x04, - 0xA8, - 0x00, - 0x03, - 0xAE, - 0xAE, - 0xAE, - 0x00, - 0x05, - 0xA8, - 0x05, - 0x8D, - 0x05, - 0xA8, - 0x00, - 0x05, - 0x8D, - 0x6B, - 0x8D, - 0x8E, - 0x8D, - 0x00, - 0x08, - 0xA9, - 0x00, - 0x08, - 0x8E, - 0x8F, - 0x8F, - 0xAA, - 0xAA, - 0x8F, - 0x8E, - 0x8E, - 0x07, - 0x8F, - 0x00, - 0x03, - 0x8E, - 0x8E, - 0x8F, - 0x00, - 0x04, - 0xAA, - 0x05, - 0x8B, - 0x07, - 0xAA, - 0x00, - 0x04, - 0x91, - 0x92, - 0x92, - 0x92, - 0x12, - 0x91, - 0x08, - 0x93, - 0x1A, - 0x52, - 0x00, - 0x11, - 0x40, - 0x52, - 0x40, - 0x52, - 0x52, - 0x41, - 0x40, - 0x40, - 0x40, - 0x41, - 0x41, - 0x53, - 0x41, - 0x53, - 0x53, - 0x26, - 0x41, - 0x00, - 0x15, - 0x26, - 0x00, - 0x04, - 0x25, - 0x26, - 0x26, - 0x26, - 0x00, - 0x00, - 0x00, - 0x03, - 0xB9, - 0xB9, - 0xB6, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x12, - 0xB6, - 0x9B, - 0xD6, - 0x9B, - 0xD6, - 0xD6, - 0x9B, - 0xD6, - 0xB4, - 0xB4, - 0xB4, - 0xD7, - 0x9B, - 0xD6, - 0x9B, - 0xD6, - 0x9B, - 0xD6, - 0x0E, - 0xB4, - 0x01, - 0xB6, - 0x01, - 0xB4, - 0x0A, - 0xB6, - 0x01, - 0xB3, - 0x01, - 0xB9, - 0x08, - 0xB3, - 0x00, - 0x0F, - 0xDC, - 0x79, - 0xCC, - 0xB1, - 0xCC, - 0xCC, - 0xB1, - 0xB1, - 0xB1, - 0xCC, - 0xCD, - 0xB1, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x08, - 0xB1, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x08, - 0xC8, - 0x05, - 0xAC, - 0x00, - 0x03, - 0xB1, - 0xB1, - 0xB1, - 0x00, - 0x13, - 0xAC, - 0x07, - 0xC8, - 0x05, - 0x95, - 0x11, - 0xAD, - 0x07, - 0xA8, - 0x01, - 0xAE, - 0x01, - 0xAE, - 0x05, - 0x90, - 0x09, - 0x8D, - 0x00, - 0x03, - 0xA8, - 0x94, - 0x6B, - 0x00, - 0x0E, - 0x8E, - 0x05, - 0x8F, - 0x01, - 0x8E, - 0x01, - 0x8E, - 0x08, - 0x8F, - 0x06, - 0xAA, - 0x00, - 0x05, - 0x8B, - 0x8B, - 0xAA, - 0xAA, - 0xAA, - 0x00, - 0x05, - 0x8B, - 0x00, - 0x03, - 0x92, - 0x92, - 0x92, - 0x00, - 0x10, - 0x91, - 0x0C, - 0x93, - 0x16, - 0x52, - 0x00, - 0x09, - 0x40, - 0x40, - 0x40, - 0x52, - 0x40, - 0x52, - 0x40, - 0x40, - 0x52, - 0x00, - 0x05, - 0x41, - 0x04, - 0x53, - 0x01, - 0x26, - 0x04, - 0x41, - 0x11, - 0x26, - 0x00, - 0x05, - 0x25, - 0x26, - 0x25, - 0x26, - 0x26, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xB6, - 0xB6, - 0xB6, - 0x00, - 0x04, - 0xB9, - 0x01, - 0xB6, - 0x01, - 0xB4, - 0x04, - 0xD6, - 0x00, - 0x0C, - 0x9B, - 0xB4, - 0xB4, - 0xB4, - 0x9B, - 0xD6, - 0xD6, - 0x9B, - 0xD6, - 0x9B, - 0xD6, - 0xD6, - 0x0C, - 0xB4, - 0x00, - 0x04, - 0xE7, - 0xB6, - 0xB4, - 0xB4, - 0x08, - 0xB6, - 0x00, - 0x06, - 0x99, - 0xB6, - 0x99, - 0xB9, - 0xB3, - 0xDC, - 0x06, - 0xB3, - 0x00, - 0x0F, - 0xDC, - 0x79, - 0xCC, - 0xB1, - 0xCC, - 0xCC, - 0xB1, - 0xB1, - 0xB1, - 0xCC, - 0xCC, - 0xB1, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x08, - 0xB1, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x0D, - 0xAC, - 0x00, - 0x03, - 0xB1, - 0x74, - 0xB0, - 0x00, - 0x13, - 0xAC, - 0x07, - 0xC8, - 0x05, - 0x95, - 0x11, - 0xAD, - 0x09, - 0xA8, - 0x05, - 0x90, - 0x09, - 0x8D, - 0x00, - 0x03, - 0x94, - 0x6B, - 0x6B, - 0x00, - 0x0E, - 0x8E, - 0x05, - 0x8F, - 0x01, - 0x8E, - 0x01, - 0x8E, - 0x08, - 0x8F, - 0x07, - 0xAA, - 0x00, - 0x09, - 0x8B, - 0xAA, - 0x92, - 0x92, - 0x8B, - 0x8A, - 0x8A, - 0x8B, - 0x8B, - 0x00, - 0x13, - 0x91, - 0x0C, - 0x93, - 0x0D, - 0x52, - 0x00, - 0x03, - 0x93, - 0x52, - 0x93, - 0x00, - 0x08, - 0x52, - 0x00, - 0x09, - 0x40, - 0x52, - 0x40, - 0x52, - 0x52, - 0x52, - 0x40, - 0x52, - 0x52, - 0x00, - 0x04, - 0x41, - 0x00, - 0x04, - 0x53, - 0x53, - 0x53, - 0x26, - 0x04, - 0x41, - 0x16, - 0x26, - 0x00, - 0x00, - 0x07, - 0xB9, - 0x00, - 0x0A, - 0xB6, - 0xD7, - 0x9B, - 0xD6, - 0xD6, - 0xD6, - 0x9B, - 0xD6, - 0x9B, - 0xB4, - 0x04, - 0xD6, - 0x01, - 0xB4, - 0x01, - 0xD6, - 0x0D, - 0xB4, - 0x01, - 0xB9, - 0x01, - 0x99, - 0x08, - 0xB6, - 0x00, - 0x06, - 0xB3, - 0xB3, - 0xB6, - 0xB9, - 0xB6, - 0xB9, - 0x09, - 0xB3, - 0x00, - 0x0B, - 0xDC, - 0x79, - 0xCC, - 0xB1, - 0xCC, - 0xCC, - 0xB1, - 0xB1, - 0xB1, - 0xCC, - 0xCC, - 0x00, - 0x0C, - 0xB1, - 0x00, - 0x03, - 0xCA, - 0xCA, - 0xB1, - 0x00, - 0x0D, - 0xAC, - 0x00, - 0x03, - 0xB1, - 0xB0, - 0xB0, - 0x00, - 0x13, - 0xAC, - 0x01, - 0xC8, - 0x01, - 0x95, - 0x05, - 0xC8, - 0x05, - 0x95, - 0x0C, - 0xAD, - 0x00, - 0x06, - 0xA8, - 0xA8, - 0xAD, - 0xAD, - 0xAD, - 0x90, - 0x08, - 0xA8, - 0x00, - 0x05, - 0x68, - 0x68, - 0x90, - 0x90, - 0x90, - 0x00, - 0x09, - 0x8D, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x0E, - 0x8E, - 0x05, - 0x8F, - 0x05, - 0x8E, - 0x04, - 0x8F, - 0x00, - 0x03, - 0x8B, - 0x8B, - 0x8B, - 0x00, - 0x04, - 0xAA, - 0x01, - 0x8B, - 0x01, - 0x8B, - 0x04, - 0x91, - 0x01, - 0x8B, - 0x01, - 0x8B, - 0x15, - 0x91, - 0x0C, - 0x93, - 0x12, - 0x52, - 0x00, - 0x10, - 0x93, - 0x52, - 0x52, - 0x52, - 0x40, - 0x40, - 0x52, - 0x40, - 0x52, - 0x40, - 0x40, - 0x40, - 0x52, - 0x40, - 0x40, - 0x40, - 0x04, - 0x41, - 0x01, - 0x53, - 0x01, - 0x40, - 0x1A, - 0x26, - 0x01, - 0x25, - 0x00, - 0x00, - 0x07, - 0xB9, - 0x00, - 0x11, - 0xB6, - 0xB4, - 0xB4, - 0xD7, - 0xB4, - 0xD6, - 0xD6, - 0x9B, - 0x9B, - 0xD6, - 0x9B, - 0x9B, - 0xD6, - 0xB4, - 0xD6, - 0xB4, - 0xD7, - 0x00, - 0x07, - 0xB4, - 0x00, - 0x09, - 0xB6, - 0xB6, - 0xB6, - 0xB4, - 0xB9, - 0xB9, - 0xB3, - 0xB6, - 0xB6, - 0x00, - 0x06, - 0x99, - 0x05, - 0xB6, - 0x01, - 0xB3, - 0x01, - 0xDC, - 0x07, - 0xB3, - 0x00, - 0x05, - 0xDC, - 0x97, - 0xCC, - 0xCC, - 0xB1, - 0x00, - 0x07, - 0xCC, - 0x0C, - 0xB1, - 0x01, - 0xC8, - 0x01, - 0xC8, - 0x05, - 0xB1, - 0x0A, - 0xAC, - 0x01, - 0xB0, - 0x01, - 0xB0, - 0x13, - 0xAC, - 0x01, - 0xC8, - 0x08, - 0x95, - 0x0E, - 0xAD, - 0x00, - 0x03, - 0xA8, - 0xA8, - 0xA8, - 0x00, - 0x05, - 0x90, - 0x07, - 0xA8, - 0x0A, - 0x8D, - 0x04, - 0x6B, - 0x0F, - 0x8E, - 0x07, - 0x8F, - 0x05, - 0x8E, - 0x04, - 0x8F, - 0x07, - 0x8B, - 0x01, - 0x92, - 0x05, - 0x91, - 0x01, - 0x92, - 0x01, - 0x92, - 0x0E, - 0x91, - 0x00, - 0x07, - 0x93, - 0x93, - 0x93, - 0x4F, - 0x4F, - 0x4F, - 0x52, - 0x00, - 0x07, - 0x4F, - 0x00, - 0x03, - 0x52, - 0x52, - 0x52, - 0x00, - 0x04, - 0x93, - 0x05, - 0x52, - 0x0C, - 0x93, - 0x01, - 0x52, - 0x01, - 0x52, - 0x05, - 0x40, - 0x00, - 0x05, - 0x52, - 0x40, - 0x52, - 0x52, - 0x52, - 0x00, - 0x04, - 0x40, - 0x00, - 0x12, - 0x41, - 0x40, - 0x41, - 0x40, - 0x40, - 0x26, - 0x26, - 0x26, - 0x25, - 0x53, - 0x25, - 0x53, - 0x25, - 0x25, - 0x25, - 0x53, - 0x25, - 0x25, - 0x07, - 0x26, - 0x01, - 0x25, - 0x01, - 0x26, - 0x04, - 0x25, - 0x01, - 0x26, - 0x00, - 0x00, - 0x08, - 0xB9, - 0x00, - 0x0E, - 0xB6, - 0xB4, - 0xD6, - 0xD6, - 0xD6, - 0xB4, - 0xD6, - 0xD6, - 0x9B, - 0xD6, - 0xD6, - 0x9B, - 0xD6, - 0xD6, - 0x05, - 0xB4, - 0x01, - 0xB6, - 0x04, - 0xB4, - 0x00, - 0x07, - 0xB6, - 0xB6, - 0xB4, - 0xB4, - 0xB6, - 0xB6, - 0xB6, - 0x00, - 0x07, - 0x99, - 0x04, - 0xB3, - 0x01, - 0xB9, - 0x0A, - 0xB3, - 0x00, - 0x04, - 0xDC, - 0xCC, - 0xCC, - 0xB1, - 0x07, - 0xCC, - 0x0C, - 0xB1, - 0x01, - 0xC8, - 0x01, - 0xC8, - 0x05, - 0xB1, - 0x0A, - 0xAC, - 0x01, - 0xB0, - 0x01, - 0xB0, - 0x13, - 0xAC, - 0x01, - 0xC8, - 0x08, - 0x95, - 0x0E, - 0xAD, - 0x00, - 0x03, - 0xC9, - 0xA8, - 0xA8, - 0x00, - 0x05, - 0x90, - 0x07, - 0xA8, - 0x0A, - 0x8D, - 0x04, - 0x6B, - 0x0F, - 0x8E, - 0x07, - 0x8F, - 0x05, - 0x8E, - 0x04, - 0x8F, - 0x07, - 0x8B, - 0x01, - 0x92, - 0x05, - 0x91, - 0x01, - 0x92, - 0x01, - 0x92, - 0x0E, - 0x91, - 0x00, - 0x0E, - 0x93, - 0x93, - 0x93, - 0x4F, - 0x93, - 0x4F, - 0x4F, - 0x4F, - 0x52, - 0x4F, - 0x52, - 0x4F, - 0x52, - 0x4F, - 0x07, - 0x93, - 0x05, - 0x52, - 0x0C, - 0x93, - 0x01, - 0x52, - 0x01, - 0x52, - 0x05, - 0x40, - 0x01, - 0x52, - 0x01, - 0x52, - 0x0C, - 0x40, - 0x00, - 0x04, - 0x26, - 0x26, - 0x26, - 0x24, - 0x04, - 0x25, - 0x01, - 0x53, - 0x0A, - 0x25, - 0x00, - 0x03, - 0x26, - 0x26, - 0x26, - 0x00, - 0x05, - 0x25, - 0x00, - 0x00, - 0x06, - 0xB9, - 0x00, - 0x13, - 0x9C, - 0xB9, - 0xB9, - 0xB4, - 0xB4, - 0x9B, - 0xB4, - 0xD6, - 0x9B, - 0x9B, - 0xD6, - 0xB4, - 0xB4, - 0xD6, - 0xB4, - 0xD6, - 0x9B, - 0x9B, - 0xB6, - 0x00, - 0x04, - 0xB4, - 0x09, - 0xB6, - 0x08, - 0x99, - 0x08, - 0xB3, - 0x01, - 0xB9, - 0x05, - 0xB3, - 0x00, - 0x05, - 0x97, - 0xDC, - 0xCC, - 0xCC, - 0xB1, - 0x00, - 0x07, - 0xCC, - 0x0C, - 0xB1, - 0x01, - 0xCA, - 0x01, - 0xCA, - 0x05, - 0xB1, - 0x09, - 0xAC, - 0x00, - 0x03, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x0C, - 0xAC, - 0x07, - 0xC8, - 0x01, - 0x95, - 0x01, - 0x95, - 0x11, - 0xAD, - 0x01, - 0xA8, - 0x01, - 0xA8, - 0x0B, - 0x90, - 0x06, - 0xA8, - 0x05, - 0x8D, - 0x04, - 0x68, - 0x00, - 0x03, - 0x69, - 0x69, - 0x6B, - 0x00, - 0x05, - 0x8E, - 0x01, - 0xA9, - 0x01, - 0xA9, - 0x0A, - 0x8E, - 0x09, - 0x8F, - 0x00, - 0x05, - 0x8E, - 0x8E, - 0x8E, - 0x8F, - 0x8F, - 0x00, - 0x09, - 0x8B, - 0x01, - 0x92, - 0x0B, - 0x91, - 0x08, - 0x93, - 0x00, - 0x0F, - 0x52, - 0x52, - 0x93, - 0x93, - 0x89, - 0x4F, - 0x4F, - 0x93, - 0x89, - 0x4F, - 0x89, - 0x4F, - 0x89, - 0x4F, - 0x89, - 0x00, - 0x04, - 0x4F, - 0x04, - 0x89, - 0x01, - 0x93, - 0x01, - 0x40, - 0x0D, - 0x93, - 0x00, - 0x06, - 0x53, - 0x93, - 0x93, - 0x93, - 0x40, - 0x93, - 0x0C, - 0x40, - 0x00, - 0x13, - 0x41, - 0x26, - 0x40, - 0x24, - 0x53, - 0x40, - 0x40, - 0x26, - 0x26, - 0x26, - 0x53, - 0x25, - 0x25, - 0x25, - 0x53, - 0x25, - 0x53, - 0x25, - 0x26, - 0x00, - 0x05, - 0x25, - 0x00, - 0x03, - 0x26, - 0x26, - 0x26, - 0x00, - 0x05, - 0x25, - 0x00, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x16, - 0x9C, - 0x9C, - 0xB3, - 0xB9, - 0xB6, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xD7, - 0xB4, - 0xB4, - 0x9B, - 0xB4, - 0xB6, - 0x9B, - 0xB4, - 0xB4, - 0x0B, - 0xB6, - 0x08, - 0x99, - 0x06, - 0xB3, - 0x00, - 0x03, - 0xB9, - 0xB6, - 0xB6, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x0B, - 0xDC, - 0xDB, - 0xCC, - 0xCC, - 0xB7, - 0xCC, - 0xCC, - 0xB1, - 0xCC, - 0xCC, - 0xCC, - 0x00, - 0x0D, - 0xB1, - 0x01, - 0xCA, - 0x01, - 0xCA, - 0x05, - 0xB1, - 0x09, - 0xAC, - 0x00, - 0x03, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x0C, - 0xAC, - 0x07, - 0xC8, - 0x01, - 0x95, - 0x01, - 0x95, - 0x11, - 0xAD, - 0x01, - 0xA8, - 0x01, - 0xA8, - 0x0E, - 0x90, - 0x00, - 0x03, - 0xA8, - 0xA8, - 0xA8, - 0x00, - 0x05, - 0x8D, - 0x04, - 0x68, - 0x00, - 0x03, - 0x69, - 0x69, - 0x6B, - 0x00, - 0x05, - 0x8E, - 0x01, - 0xAB, - 0x01, - 0xAB, - 0x0A, - 0x8E, - 0x0E, - 0x8F, - 0x09, - 0x8B, - 0x01, - 0x92, - 0x0B, - 0x91, - 0x08, - 0x93, - 0x05, - 0x4F, - 0x04, - 0x89, - 0x07, - 0x4F, - 0x07, - 0x89, - 0x00, - 0x05, - 0x50, - 0x93, - 0x93, - 0x93, - 0x53, - 0x00, - 0x0B, - 0x93, - 0x00, - 0x06, - 0x53, - 0x93, - 0x53, - 0x93, - 0x93, - 0x53, - 0x0D, - 0x40, - 0x00, - 0x03, - 0x53, - 0x53, - 0x24, - 0x00, - 0x05, - 0x26, - 0x00, - 0x04, - 0x25, - 0x25, - 0x53, - 0x24, - 0x04, - 0x25, - 0x01, - 0x53, - 0x01, - 0x24, - 0x0B, - 0x25, - 0x01, - 0x26, - 0x00, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x0B, - 0x9C, - 0x9C, - 0xB9, - 0xB9, - 0xB6, - 0xB4, - 0xD6, - 0x9B, - 0xB4, - 0xB4, - 0xD6, - 0x00, - 0x06, - 0xB4, - 0x00, - 0x05, - 0x9B, - 0x9B, - 0xB4, - 0xB4, - 0xB4, - 0x00, - 0x0A, - 0xB6, - 0x08, - 0x99, - 0x07, - 0xB3, - 0x00, - 0x03, - 0xB9, - 0xB3, - 0xDC, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x03, - 0xDC, - 0x97, - 0xB0, - 0x00, - 0x04, - 0xB1, - 0x01, - 0xB7, - 0x01, - 0xB7, - 0x05, - 0xB1, - 0x00, - 0x03, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x09, - 0xB1, - 0x0E, - 0xAC, - 0x00, - 0x03, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x0C, - 0xAC, - 0x00, - 0x05, - 0xC8, - 0xC8, - 0xC8, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0x95, - 0x11, - 0xAD, - 0x01, - 0xA8, - 0x01, - 0xA8, - 0x06, - 0x90, - 0x00, - 0x03, - 0xA8, - 0xA8, - 0xA8, - 0x00, - 0x05, - 0x90, - 0x00, - 0x03, - 0xA8, - 0xA8, - 0xA8, - 0x00, - 0x0A, - 0x8D, - 0x01, - 0x6B, - 0x01, - 0x6B, - 0x05, - 0x8E, - 0x01, - 0xAB, - 0x01, - 0xAB, - 0x0A, - 0x8E, - 0x0E, - 0x8F, - 0x09, - 0x8B, - 0x0C, - 0x91, - 0x01, - 0x89, - 0x01, - 0x89, - 0x06, - 0x93, - 0x00, - 0x06, - 0x4F, - 0x4F, - 0x93, - 0x93, - 0x89, - 0x93, - 0x04, - 0x4F, - 0x06, - 0x93, - 0x05, - 0x89, - 0x00, - 0x06, - 0x50, - 0x50, - 0x4F, - 0x3C, - 0x93, - 0x3C, - 0x0C, - 0x93, - 0x00, - 0x06, - 0x53, - 0x93, - 0x53, - 0x93, - 0x53, - 0x53, - 0x0E, - 0x40, - 0x00, - 0x11, - 0x24, - 0x24, - 0x40, - 0x40, - 0x40, - 0x26, - 0x26, - 0x25, - 0x53, - 0x25, - 0x26, - 0x26, - 0x24, - 0x26, - 0x24, - 0x25, - 0x24, - 0x00, - 0x0C, - 0x25, - 0x00, - 0x00, - 0x07, - 0xB9, - 0x00, - 0x0C, - 0x9C, - 0x9C, - 0xB6, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0xB4, - 0xD7, - 0x06, - 0xB4, - 0x00, - 0x04, - 0x99, - 0xB4, - 0xB4, - 0xB4, - 0x08, - 0xB6, - 0x04, - 0x99, - 0x01, - 0xB9, - 0x01, - 0xB6, - 0x09, - 0xB3, - 0x01, - 0xB9, - 0x06, - 0xB3, - 0x00, - 0x0A, - 0x76, - 0x76, - 0xB0, - 0xB0, - 0xB1, - 0xB1, - 0x75, - 0x74, - 0x74, - 0x74, - 0x05, - 0xB1, - 0x00, - 0x0A, - 0xAC, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0x0C, - 0xAC, - 0x06, - 0xB0, - 0x0D, - 0xAC, - 0x07, - 0x95, - 0x0C, - 0xAD, - 0x01, - 0x95, - 0x01, - 0x95, - 0x0C, - 0x90, - 0x05, - 0xA8, - 0x00, - 0x03, - 0x90, - 0x90, - 0x68, - 0x00, - 0x0B, - 0x8D, - 0x00, - 0x03, - 0x8E, - 0x6B, - 0x6B, - 0x00, - 0x0E, - 0x8E, - 0x00, - 0x05, - 0x8F, - 0x8F, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x04, - 0x8F, - 0x13, - 0x8B, - 0x08, - 0x91, - 0x00, - 0x0D, - 0x8A, - 0x8A, - 0x91, - 0x91, - 0x89, - 0x89, - 0x93, - 0x4F, - 0x93, - 0x4F, - 0x89, - 0x89, - 0x89, - 0x00, - 0x04, - 0x4F, - 0x00, - 0x0F, - 0x89, - 0x89, - 0x89, - 0x93, - 0x93, - 0x93, - 0x40, - 0x93, - 0x40, - 0x93, - 0x93, - 0x3C, - 0x4F, - 0x3C, - 0x4F, - 0x00, - 0x0C, - 0x3C, - 0x00, - 0x0B, - 0x4F, - 0x3C, - 0x4F, - 0x3C, - 0x93, - 0x53, - 0x53, - 0x93, - 0x50, - 0x93, - 0x53, - 0x00, - 0x12, - 0x40, - 0x00, - 0x0D, - 0x26, - 0x24, - 0x24, - 0x25, - 0x53, - 0x25, - 0x25, - 0x26, - 0x24, - 0x24, - 0x26, - 0x26, - 0x26, - 0x00, - 0x06, - 0x25, - 0x00, - 0x03, - 0x18, - 0x18, - 0x18, - 0x00, - 0x05, - 0x25, - 0x00, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x08, - 0x9C, - 0xB9, - 0x9C, - 0x9C, - 0xB6, - 0xB6, - 0xD6, - 0xD6, - 0x0D, - 0xB4, - 0x00, - 0x03, - 0x99, - 0xB9, - 0xB4, - 0x00, - 0x07, - 0xB6, - 0x05, - 0x99, - 0x00, - 0x03, - 0xB6, - 0xB6, - 0xB9, - 0x00, - 0x09, - 0xB3, - 0x01, - 0xDC, - 0x06, - 0xB3, - 0x00, - 0x09, - 0x97, - 0x97, - 0xB0, - 0xB0, - 0xB1, - 0xB1, - 0x74, - 0x74, - 0x74, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x0C, - 0xAC, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xB0, - 0xB0, - 0x0A, - 0xAC, - 0x06, - 0xB0, - 0x0D, - 0xAC, - 0x07, - 0x95, - 0x0C, - 0xAD, - 0x01, - 0x95, - 0x01, - 0x95, - 0x0C, - 0x90, - 0x05, - 0xA8, - 0x00, - 0x03, - 0x90, - 0x90, - 0x68, - 0x00, - 0x09, - 0x8D, - 0x13, - 0x8E, - 0x00, - 0x05, - 0x8F, - 0x8F, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x04, - 0x8F, - 0x12, - 0x8B, - 0x09, - 0x91, - 0x04, - 0x8A, - 0x00, - 0x08, - 0x89, - 0x89, - 0x89, - 0x4F, - 0x52, - 0x89, - 0x4F, - 0x4F, - 0x04, - 0x89, - 0x04, - 0x4F, - 0x08, - 0x93, - 0x07, - 0x3C, - 0x00, - 0x07, - 0x4F, - 0x3C, - 0x4F, - 0x3C, - 0x4F, - 0x3C, - 0x4F, - 0x00, - 0x06, - 0x3C, - 0x00, - 0x06, - 0x93, - 0x93, - 0x53, - 0x53, - 0x53, - 0x93, - 0x0B, - 0x53, - 0x08, - 0x40, - 0x00, - 0x0D, - 0x26, - 0x24, - 0x53, - 0x24, - 0x53, - 0x25, - 0x24, - 0x26, - 0x26, - 0x26, - 0x24, - 0x24, - 0x26, - 0x00, - 0x06, - 0x25, - 0x00, - 0x03, - 0x18, - 0x18, - 0x18, - 0x00, - 0x05, - 0x25, - 0x00, - 0x00, - 0x01, - 0xB9, - 0x01, - 0x9C, - 0x05, - 0xB9, - 0x00, - 0x08, - 0x9C, - 0x9C, - 0xB6, - 0xB6, - 0xD7, - 0xD6, - 0xB4, - 0xD6, - 0x0B, - 0xB4, - 0x00, - 0x03, - 0x99, - 0xB4, - 0xB4, - 0x00, - 0x06, - 0x99, - 0x00, - 0x07, - 0xB6, - 0xB4, - 0x99, - 0xB4, - 0x99, - 0x99, - 0x99, - 0x00, - 0x0C, - 0xB3, - 0x00, - 0x0B, - 0x76, - 0xB3, - 0x76, - 0xB3, - 0xB3, - 0x76, - 0x97, - 0x97, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x05, - 0x74, - 0x00, - 0x10, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xB0, - 0xB0, - 0x08, - 0xAC, - 0x06, - 0xB0, - 0x00, - 0x03, - 0xAC, - 0xB0, - 0xB0, - 0x00, - 0x07, - 0xAC, - 0x01, - 0xC8, - 0x04, - 0xAC, - 0x07, - 0x95, - 0x05, - 0xAD, - 0x00, - 0x09, - 0x95, - 0x95, - 0xAD, - 0xAD, - 0x90, - 0x90, - 0x90, - 0x95, - 0x95, - 0x00, - 0x0D, - 0x90, - 0x00, - 0x06, - 0xA8, - 0xA8, - 0xA8, - 0x90, - 0x90, - 0x90, - 0x07, - 0x8D, - 0x13, - 0x8E, - 0x00, - 0x08, - 0x8F, - 0x8E, - 0x8E, - 0x8F, - 0x8F, - 0x8E, - 0x8E, - 0x8E, - 0x04, - 0x8F, - 0x12, - 0x8B, - 0x06, - 0x91, - 0x05, - 0x8A, - 0x00, - 0x04, - 0x4F, - 0x4F, - 0x89, - 0x89, - 0x04, - 0x4F, - 0x01, - 0x89, - 0x01, - 0x93, - 0x04, - 0x4F, - 0x04, - 0x93, - 0x01, - 0x4F, - 0x01, - 0x3C, - 0x06, - 0x93, - 0x05, - 0x3C, - 0x01, - 0x50, - 0x01, - 0x50, - 0x0D, - 0x3C, - 0x01, - 0x53, - 0x01, - 0x50, - 0x04, - 0x93, - 0x0D, - 0x53, - 0x06, - 0x40, - 0x00, - 0x0D, - 0x26, - 0x24, - 0x53, - 0x24, - 0x53, - 0x25, - 0x53, - 0x25, - 0x24, - 0x25, - 0x26, - 0x26, - 0x26, - 0x00, - 0x06, - 0x25, - 0x00, - 0x03, - 0x18, - 0x18, - 0x18, - 0x00, - 0x05, - 0x25, - 0x00, - 0x00, - 0x00, - 0x05, - 0xB9, - 0x78, - 0x9C, - 0xB3, - 0x78, - 0x00, - 0x04, - 0x9C, - 0x00, - 0x0A, - 0x78, - 0xB6, - 0xB4, - 0xD6, - 0xD6, - 0xB4, - 0xB4, - 0xB4, - 0x99, - 0xB4, - 0x08, - 0xB6, - 0x07, - 0x99, - 0x01, - 0xB4, - 0x06, - 0x99, - 0x0C, - 0xB3, - 0x00, - 0x11, - 0x6E, - 0xB3, - 0x76, - 0xB3, - 0x99, - 0xB3, - 0x76, - 0x97, - 0x97, - 0xB0, - 0xCC, - 0x77, - 0xB0, - 0xB0, - 0x74, - 0x74, - 0xB0, - 0x00, - 0x09, - 0xB1, - 0x00, - 0x0F, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x03, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB0, - 0x05, - 0xAC, - 0x00, - 0x07, - 0xC8, - 0xC8, - 0x95, - 0x95, - 0x95, - 0xAD, - 0xAD, - 0x00, - 0x06, - 0x95, - 0x04, - 0xAD, - 0x04, - 0x95, - 0x16, - 0x90, - 0x07, - 0x8D, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x12, - 0x8E, - 0x0C, - 0x8F, - 0x0C, - 0x8B, - 0x04, - 0x8A, - 0x01, - 0x8B, - 0x01, - 0x8A, - 0x04, - 0x91, - 0x05, - 0x8A, - 0x00, - 0x0B, - 0x89, - 0x89, - 0x4F, - 0x89, - 0x93, - 0x4F, - 0x4F, - 0x89, - 0x89, - 0x93, - 0x4F, - 0x00, - 0x05, - 0x89, - 0x00, - 0x09, - 0x93, - 0x53, - 0x50, - 0x93, - 0x53, - 0x93, - 0x93, - 0x93, - 0x53, - 0x00, - 0x0B, - 0x50, - 0x0D, - 0x3C, - 0x00, - 0x05, - 0x53, - 0x50, - 0x53, - 0x50, - 0x53, - 0x00, - 0x05, - 0x50, - 0x09, - 0x53, - 0x00, - 0x12, - 0x40, - 0x40, - 0x40, - 0x53, - 0x53, - 0x24, - 0x40, - 0x24, - 0x53, - 0x24, - 0x24, - 0x25, - 0x3B, - 0x53, - 0x25, - 0x53, - 0x25, - 0x53, - 0x0E, - 0x25, - 0x00, - 0x00, - 0x00, - 0x13, - 0xB9, - 0x78, - 0x78, - 0x9C, - 0x78, - 0x78, - 0x78, - 0x9C, - 0x9C, - 0x9C, - 0x78, - 0xB6, - 0xB4, - 0xD6, - 0xB4, - 0xB4, - 0xB4, - 0x99, - 0x99, - 0x00, - 0x08, - 0xB6, - 0x07, - 0x99, - 0x05, - 0xB4, - 0x01, - 0x99, - 0x01, - 0x99, - 0x09, - 0xB3, - 0x01, - 0x99, - 0x01, - 0x6E, - 0x07, - 0x99, - 0x00, - 0x0B, - 0xB3, - 0x97, - 0x97, - 0x97, - 0x79, - 0x79, - 0x97, - 0x79, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x09, - 0xB1, - 0x00, - 0x0F, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x03, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x04, - 0xB0, - 0x05, - 0xAC, - 0x00, - 0x07, - 0xC8, - 0xC8, - 0x95, - 0x95, - 0x95, - 0xAD, - 0xAD, - 0x00, - 0x06, - 0x95, - 0x00, - 0x04, - 0xAD, - 0x95, - 0xAD, - 0xAD, - 0x04, - 0x95, - 0x16, - 0x90, - 0x07, - 0x8D, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x12, - 0x8E, - 0x0C, - 0x8F, - 0x0C, - 0x8B, - 0x04, - 0x8A, - 0x01, - 0x8B, - 0x01, - 0x8A, - 0x04, - 0x91, - 0x04, - 0x8A, - 0x00, - 0x0B, - 0x4F, - 0x89, - 0x89, - 0x4F, - 0x4F, - 0x89, - 0x89, - 0x89, - 0x4F, - 0x4F, - 0x89, - 0x00, - 0x06, - 0x4F, - 0x00, - 0x0A, - 0x93, - 0x93, - 0x50, - 0x53, - 0x93, - 0x50, - 0x50, - 0x50, - 0x93, - 0x93, - 0x0A, - 0x50, - 0x0D, - 0x3C, - 0x01, - 0x53, - 0x09, - 0x50, - 0x09, - 0x53, - 0x00, - 0x0E, - 0x40, - 0x40, - 0x40, - 0x53, - 0x24, - 0x40, - 0x24, - 0x40, - 0x24, - 0x53, - 0x24, - 0x25, - 0x25, - 0x3B, - 0x11, - 0x25, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x03, - 0xB3, - 0x9C, - 0x78, - 0x00, - 0x07, - 0x9C, - 0x00, - 0x0C, - 0xB3, - 0xB6, - 0xB4, - 0xB4, - 0x9B, - 0xB4, - 0xB4, - 0xB6, - 0xB6, - 0xB6, - 0xB4, - 0xB4, - 0x04, - 0xB6, - 0x0E, - 0x99, - 0x0B, - 0xB3, - 0x06, - 0x99, - 0x00, - 0x09, - 0xB4, - 0x99, - 0xB3, - 0x76, - 0x97, - 0x97, - 0x9C, - 0x9C, - 0x76, - 0x00, - 0x04, - 0x97, - 0x05, - 0xB0, - 0x01, - 0xB1, - 0x08, - 0xAC, - 0x05, - 0xB0, - 0x04, - 0xAC, - 0x05, - 0xB0, - 0x05, - 0xAC, - 0x01, - 0xB0, - 0x01, - 0xB0, - 0x05, - 0xAC, - 0x01, - 0x95, - 0x01, - 0x95, - 0x05, - 0xAD, - 0x09, - 0x95, - 0x01, - 0xAD, - 0x15, - 0x90, - 0x00, - 0x05, - 0x8D, - 0x8D, - 0x8D, - 0xA8, - 0xA8, - 0x00, - 0x07, - 0x8D, - 0x01, - 0x6B, - 0x0D, - 0x8E, - 0x0E, - 0x8F, - 0x01, - 0x67, - 0x0C, - 0x8B, - 0x0A, - 0x8A, - 0x00, - 0x12, - 0x8B, - 0x8B, - 0x91, - 0x91, - 0x8A, - 0x8A, - 0x52, - 0x4F, - 0x4F, - 0x93, - 0x89, - 0x89, - 0x4F, - 0x4F, - 0x4F, - 0x93, - 0x89, - 0x4F, - 0x05, - 0x89, - 0x00, - 0x05, - 0x93, - 0x93, - 0x50, - 0x53, - 0x93, - 0x00, - 0x11, - 0x50, - 0x0E, - 0x3C, - 0x05, - 0x50, - 0x0C, - 0x24, - 0x00, - 0x12, - 0x50, - 0x24, - 0x3C, - 0x24, - 0x24, - 0x24, - 0x40, - 0x40, - 0x40, - 0x26, - 0x24, - 0x24, - 0x53, - 0x25, - 0x25, - 0x3B, - 0x25, - 0x53, - 0x0E, - 0x25, - 0x01, - 0x18, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9C, - 0x9C, - 0x78, - 0x00, - 0x08, - 0x9C, - 0x01, - 0xB3, - 0x01, - 0xB6, - 0x04, - 0xB4, - 0x00, - 0x05, - 0xB6, - 0xB6, - 0xB6, - 0xB4, - 0xB4, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x05, - 0x99, - 0x99, - 0x99, - 0x9B, - 0xB4, - 0x00, - 0x08, - 0x99, - 0x0A, - 0xB3, - 0x04, - 0x99, - 0x00, - 0x15, - 0x9B, - 0xB4, - 0x9B, - 0xB4, - 0xB4, - 0x99, - 0x99, - 0xB3, - 0x76, - 0x9C, - 0x97, - 0x9C, - 0xB3, - 0x9C, - 0x97, - 0x9C, - 0x9C, - 0x97, - 0x97, - 0xB0, - 0x97, - 0x00, - 0x05, - 0xB0, - 0x05, - 0xAC, - 0x05, - 0xB0, - 0x04, - 0xAC, - 0x05, - 0xB0, - 0x0C, - 0xAC, - 0x01, - 0x95, - 0x01, - 0x95, - 0x05, - 0xAD, - 0x09, - 0x95, - 0x16, - 0x90, - 0x0C, - 0x8D, - 0x0E, - 0x8E, - 0x0E, - 0x8F, - 0x01, - 0x67, - 0x0B, - 0x8B, - 0x0C, - 0x8A, - 0x00, - 0x0B, - 0x8B, - 0x91, - 0x91, - 0x8A, - 0x8A, - 0x4F, - 0x4F, - 0x4F, - 0x89, - 0x4F, - 0x4F, - 0x00, - 0x05, - 0x89, - 0x01, - 0x4F, - 0x05, - 0x89, - 0x00, - 0x05, - 0x93, - 0x53, - 0x50, - 0x93, - 0x93, - 0x00, - 0x11, - 0x50, - 0x05, - 0x3C, - 0x01, - 0x24, - 0x08, - 0x3C, - 0x12, - 0x50, - 0x05, - 0x24, - 0x00, - 0x0C, - 0x40, - 0x40, - 0x26, - 0x24, - 0x40, - 0x24, - 0x53, - 0x24, - 0x3B, - 0x25, - 0x53, - 0x53, - 0x0C, - 0x25, - 0x03, - 0x18, - 0x00, - 0x00, - 0x00, - 0x03, - 0x78, - 0x78, - 0x78, - 0x00, - 0x09, - 0x9C, - 0x00, - 0x05, - 0xB6, - 0xB6, - 0xB4, - 0xB4, - 0xB4, - 0x00, - 0x08, - 0xB6, - 0x05, - 0x99, - 0x01, - 0xB6, - 0x01, - 0xB6, - 0x06, - 0x99, - 0x09, - 0xB3, - 0x05, - 0x99, - 0x05, - 0x9B, - 0x00, - 0x14, - 0x99, - 0x99, - 0xB3, - 0xB3, - 0x76, - 0xB3, - 0x9C, - 0xB3, - 0x9C, - 0x9C, - 0x76, - 0x97, - 0x76, - 0x97, - 0x76, - 0x97, - 0x97, - 0x97, - 0xB0, - 0x72, - 0x04, - 0xB0, - 0x00, - 0x03, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x05, - 0xB0, - 0x04, - 0xAC, - 0x05, - 0xB0, - 0x0A, - 0xAC, - 0x12, - 0x95, - 0x16, - 0x90, - 0x0C, - 0x8D, - 0x09, - 0x8E, - 0x00, - 0x05, - 0x6A, - 0x8F, - 0x8F, - 0x8E, - 0x8E, - 0x00, - 0x0E, - 0x8F, - 0x01, - 0x67, - 0x0B, - 0x8B, - 0x0C, - 0x8A, - 0x00, - 0x05, - 0x8B, - 0x91, - 0x91, - 0x8A, - 0x8A, - 0x00, - 0x05, - 0x4F, - 0x01, - 0x89, - 0x01, - 0x93, - 0x05, - 0x4F, - 0x05, - 0x89, - 0x00, - 0x04, - 0x93, - 0x50, - 0x93, - 0x93, - 0x13, - 0x50, - 0x00, - 0x04, - 0x3C, - 0x3C, - 0x3C, - 0x24, - 0x09, - 0x3C, - 0x04, - 0x24, - 0x06, - 0x3B, - 0x00, - 0x05, - 0x24, - 0x3B, - 0x24, - 0x3B, - 0x3B, - 0x00, - 0x09, - 0x24, - 0x04, - 0x40, - 0x00, - 0x06, - 0x24, - 0x53, - 0x25, - 0x25, - 0x25, - 0x53, - 0x04, - 0x25, - 0x00, - 0x05, - 0x3B, - 0x25, - 0x18, - 0x18, - 0x18, - 0x00, - 0x04, - 0x25, - 0x00, - 0x03, - 0x18, - 0x18, - 0x07, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x9C, - 0x01, - 0xB3, - 0x09, - 0xB6, - 0x00, - 0x08, - 0x99, - 0x99, - 0x99, - 0xB4, - 0xB4, - 0x99, - 0x99, - 0x99, - 0x04, - 0xB6, - 0x05, - 0xB3, - 0x01, - 0x99, - 0x05, - 0xB3, - 0x05, - 0x99, - 0x05, - 0x9B, - 0x00, - 0x0C, - 0x99, - 0x99, - 0x99, - 0xB3, - 0x9C, - 0xB3, - 0x97, - 0x97, - 0x97, - 0x76, - 0x97, - 0x76, - 0x0B, - 0x97, - 0x00, - 0x03, - 0x72, - 0xB0, - 0xB0, - 0x00, - 0x08, - 0xAC, - 0x07, - 0xB0, - 0x0C, - 0xAC, - 0x10, - 0x95, - 0x16, - 0x90, - 0x04, - 0x8D, - 0x00, - 0x03, - 0x94, - 0x94, - 0x94, - 0x00, - 0x07, - 0x69, - 0x01, - 0x6B, - 0x06, - 0x8E, - 0x04, - 0x6A, - 0x01, - 0x6C, - 0x07, - 0x8F, - 0x14, - 0x8B, - 0x01, - 0x91, - 0x0C, - 0x8A, - 0x00, - 0x05, - 0x8B, - 0x91, - 0x91, - 0x8A, - 0x8A, - 0x00, - 0x05, - 0x89, - 0x01, - 0x4F, - 0x0D, - 0x89, - 0x13, - 0x50, - 0x00, - 0x13, - 0x3B, - 0x3B, - 0x24, - 0x3C, - 0x37, - 0x24, - 0x24, - 0x37, - 0x24, - 0x24, - 0x37, - 0x37, - 0x24, - 0x24, - 0x37, - 0x24, - 0x37, - 0x24, - 0x50, - 0x00, - 0x07, - 0x3B, - 0x04, - 0x24, - 0x01, - 0x3B, - 0x0D, - 0x24, - 0x00, - 0x0A, - 0x25, - 0x53, - 0x53, - 0x25, - 0x25, - 0x53, - 0x25, - 0x25, - 0x3B, - 0x25, - 0x0B, - 0x18, - 0x00, - 0x00, - 0x0D, - 0x9C, - 0x01, - 0xB3, - 0x07, - 0xB6, - 0x05, - 0x99, - 0x00, - 0x04, - 0xB4, - 0x99, - 0x99, - 0x99, - 0x04, - 0xB6, - 0x09, - 0xB3, - 0x05, - 0x99, - 0x08, - 0x9B, - 0x00, - 0x0B, - 0x99, - 0x76, - 0x76, - 0x76, - 0x97, - 0x76, - 0x97, - 0x76, - 0x97, - 0x97, - 0x76, - 0x00, - 0x08, - 0x97, - 0x00, - 0x07, - 0x76, - 0x76, - 0x76, - 0x97, - 0x72, - 0xB0, - 0xB0, - 0x00, - 0x07, - 0xAC, - 0x07, - 0xB0, - 0x0B, - 0xAC, - 0x11, - 0x95, - 0x16, - 0x90, - 0x04, - 0x8D, - 0x01, - 0x94, - 0x01, - 0x94, - 0x08, - 0x69, - 0x01, - 0x6B, - 0x06, - 0x8E, - 0x04, - 0x6A, - 0x01, - 0x6C, - 0x07, - 0x8F, - 0x14, - 0x8B, - 0x01, - 0x91, - 0x0C, - 0x8A, - 0x00, - 0x05, - 0x8B, - 0x91, - 0x91, - 0x8A, - 0x8A, - 0x00, - 0x05, - 0x89, - 0x05, - 0x4F, - 0x09, - 0x89, - 0x16, - 0x50, - 0x00, - 0x10, - 0x37, - 0x24, - 0x37, - 0x37, - 0x24, - 0x37, - 0x24, - 0x24, - 0x24, - 0x37, - 0x24, - 0x24, - 0x24, - 0x50, - 0x3B, - 0x50, - 0x07, - 0x3B, - 0x00, - 0x07, - 0x37, - 0x24, - 0x24, - 0x3B, - 0x3B, - 0x24, - 0x37, - 0x00, - 0x0C, - 0x24, - 0x01, - 0x25, - 0x04, - 0x53, - 0x00, - 0x04, - 0x25, - 0x25, - 0x24, - 0x25, - 0x0B, - 0x18, - 0x00, - 0x00, - 0x07, - 0x9C, - 0x05, - 0x79, - 0x00, - 0x06, - 0x9C, - 0xB3, - 0xB3, - 0xB6, - 0xB4, - 0xB6, - 0x08, - 0x99, - 0x00, - 0x04, - 0xB4, - 0x99, - 0x99, - 0x99, - 0x06, - 0xB6, - 0x05, - 0xB3, - 0x06, - 0x99, - 0x08, - 0x9B, - 0x01, - 0x99, - 0x01, - 0x99, - 0x08, - 0x76, - 0x00, - 0x04, - 0x97, - 0x97, - 0x97, - 0xB0, - 0x06, - 0x97, - 0x04, - 0x76, - 0x00, - 0x03, - 0x97, - 0x72, - 0xB0, - 0x00, - 0x07, - 0xAC, - 0x05, - 0xB0, - 0x07, - 0xAC, - 0x15, - 0x95, - 0x13, - 0x90, - 0x01, - 0xA8, - 0x0A, - 0x94, - 0x08, - 0x69, - 0x00, - 0x0C, - 0x6B, - 0x6B, - 0xAB, - 0x8E, - 0x8F, - 0x8F, - 0x8F, - 0x6C, - 0x6A, - 0x6A, - 0x6A, - 0x6C, - 0x07, - 0x8F, - 0x14, - 0x8B, - 0x01, - 0x91, - 0x01, - 0x91, - 0x09, - 0x8A, - 0x01, - 0x8B, - 0x04, - 0x8A, - 0x00, - 0x05, - 0x89, - 0x89, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x09, - 0x89, - 0x00, - 0x03, - 0x4F, - 0x89, - 0x4F, - 0x00, - 0x04, - 0x89, - 0x11, - 0x50, - 0x00, - 0x05, - 0x24, - 0x24, - 0x3B, - 0x3B, - 0x3B, - 0x00, - 0x06, - 0x24, - 0x00, - 0x0A, - 0x50, - 0x50, - 0x50, - 0x24, - 0x50, - 0x50, - 0x50, - 0x3B, - 0x50, - 0x50, - 0x07, - 0x3B, - 0x00, - 0x05, - 0x24, - 0x24, - 0x24, - 0x3B, - 0x3B, - 0x00, - 0x0A, - 0x24, - 0x00, - 0x05, - 0x40, - 0x40, - 0x24, - 0x24, - 0x53, - 0x00, - 0x04, - 0x24, - 0x00, - 0x0A, - 0x25, - 0x25, - 0x25, - 0x3B, - 0x18, - 0x18, - 0x22, - 0x18, - 0x25, - 0x25, - 0x05, - 0x18, - 0x00, - 0x00, - 0x05, - 0x9C, - 0x01, - 0x79, - 0x01, - 0x9C, - 0x06, - 0x79, - 0x00, - 0x06, - 0x76, - 0xB3, - 0x99, - 0x99, - 0x9B, - 0x9B, - 0x08, - 0x99, - 0x01, - 0xB6, - 0x01, - 0xB6, - 0x05, - 0xB3, - 0x00, - 0x03, - 0xB6, - 0xB6, - 0xB6, - 0x00, - 0x04, - 0xB3, - 0x04, - 0x99, - 0x09, - 0x9B, - 0x01, - 0x99, - 0x01, - 0x99, - 0x09, - 0x76, - 0x00, - 0x03, - 0x97, - 0x97, - 0xB0, - 0x00, - 0x07, - 0x97, - 0x05, - 0x76, - 0x00, - 0x04, - 0x97, - 0x72, - 0x72, - 0xB0, - 0x05, - 0xAC, - 0x05, - 0xB0, - 0x07, - 0xAC, - 0x12, - 0x95, - 0x00, - 0x03, - 0x90, - 0x95, - 0x95, - 0x00, - 0x13, - 0x90, - 0x05, - 0x94, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x04, - 0x94, - 0x07, - 0x69, - 0x00, - 0x0C, - 0x6B, - 0x6B, - 0xAB, - 0x8E, - 0x8F, - 0x8F, - 0x8F, - 0x6C, - 0x6A, - 0x6A, - 0x6A, - 0x6C, - 0x07, - 0x8F, - 0x14, - 0x8B, - 0x00, - 0x03, - 0x91, - 0x91, - 0x91, - 0x00, - 0x0A, - 0x8A, - 0x05, - 0x89, - 0x00, - 0x03, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x07, - 0x89, - 0x00, - 0x09, - 0x4F, - 0x89, - 0x89, - 0x4F, - 0x4F, - 0x89, - 0x89, - 0x50, - 0x89, - 0x00, - 0x1D, - 0x50, - 0x00, - 0x08, - 0x3B, - 0x3B, - 0x3B, - 0x50, - 0x3B, - 0x3B, - 0x3B, - 0x50, - 0x10, - 0x3B, - 0x00, - 0x08, - 0x50, - 0x3B, - 0x24, - 0x3B, - 0x25, - 0x53, - 0x24, - 0x40, - 0x08, - 0x24, - 0x00, - 0x0F, - 0x25, - 0x18, - 0x3B, - 0x25, - 0x18, - 0x25, - 0x18, - 0x25, - 0x18, - 0x25, - 0x18, - 0x18, - 0x18, - 0x07, - 0x18, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9C, - 0x06, - 0x79, - 0x00, - 0x07, - 0x97, - 0x76, - 0x78, - 0x99, - 0x99, - 0x99, - 0x9B, - 0x00, - 0x07, - 0x99, - 0x01, - 0xB6, - 0x01, - 0xB6, - 0x05, - 0xB3, - 0x00, - 0x0C, - 0xB6, - 0xB6, - 0x99, - 0xB3, - 0xB3, - 0xB3, - 0x99, - 0x9B, - 0x99, - 0x9B, - 0x9B, - 0x99, - 0x06, - 0x9B, - 0x00, - 0x04, - 0x99, - 0x99, - 0x99, - 0xB3, - 0x09, - 0x76, - 0x00, - 0x03, - 0x97, - 0x97, - 0xB0, - 0x00, - 0x07, - 0x97, - 0x00, - 0x0A, - 0x76, - 0x76, - 0x6E, - 0x76, - 0x97, - 0x97, - 0x6E, - 0x6E, - 0x72, - 0xB0, - 0x05, - 0xAC, - 0x00, - 0x03, - 0xB0, - 0xB0, - 0xB0, - 0x00, - 0x05, - 0xAC, - 0x00, - 0x03, - 0x95, - 0xAC, - 0xAC, - 0x00, - 0x13, - 0x95, - 0x15, - 0x90, - 0x05, - 0x94, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x04, - 0x94, - 0x06, - 0x69, - 0x00, - 0x0D, - 0x6B, - 0x6B, - 0x6B, - 0xAB, - 0x8E, - 0x8F, - 0x8F, - 0x8F, - 0x6C, - 0x6A, - 0x6A, - 0x6A, - 0x6C, - 0x00, - 0x07, - 0x8F, - 0x14, - 0x8B, - 0x00, - 0x03, - 0x91, - 0x91, - 0x91, - 0x00, - 0x0A, - 0x8A, - 0x01, - 0x4F, - 0x04, - 0x89, - 0x00, - 0x03, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x07, - 0x89, - 0x00, - 0x06, - 0x4F, - 0x4F, - 0x4F, - 0x93, - 0x89, - 0x89, - 0x14, - 0x50, - 0x0C, - 0x3B, - 0x00, - 0x09, - 0x50, - 0x50, - 0x50, - 0x3B, - 0x50, - 0x50, - 0x50, - 0x3B, - 0x50, - 0x00, - 0x0F, - 0x3B, - 0x04, - 0x50, - 0x00, - 0x05, - 0x53, - 0x24, - 0x24, - 0x24, - 0x40, - 0x00, - 0x07, - 0x24, - 0x00, - 0x0A, - 0x3B, - 0x25, - 0x25, - 0x3B, - 0x25, - 0x3B, - 0x18, - 0x25, - 0x25, - 0x25, - 0x05, - 0x18, - 0x00, - 0x00, - 0x00, - 0x07, - 0x9C, - 0x9C, - 0x9C, - 0x76, - 0x76, - 0x76, - 0x97, - 0x00, - 0x07, - 0x79, - 0x00, - 0x05, - 0x97, - 0x76, - 0x78, - 0x99, - 0x78, - 0x00, - 0x04, - 0xB4, - 0x04, - 0x99, - 0x0C, - 0xB3, - 0x04, - 0x99, - 0x08, - 0x9B, - 0x00, - 0x04, - 0x99, - 0x99, - 0x99, - 0x78, - 0x0A, - 0x76, - 0x0E, - 0x97, - 0x00, - 0x14, - 0x76, - 0x6E, - 0xB3, - 0x6E, - 0x6E, - 0x72, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0x51, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0x95, - 0xAC, - 0xAC, - 0x12, - 0x95, - 0x00, - 0x04, - 0x90, - 0x90, - 0x90, - 0xAD, - 0x12, - 0x90, - 0x00, - 0x07, - 0xA8, - 0x8D, - 0x94, - 0x94, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x05, - 0x69, - 0x05, - 0x94, - 0x00, - 0x0B, - 0x69, - 0x69, - 0x6A, - 0x6A, - 0x6B, - 0xAB, - 0xAB, - 0x8E, - 0x8F, - 0x6C, - 0x6C, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x05, - 0x67, - 0x67, - 0x67, - 0x8F, - 0x8F, - 0x00, - 0x10, - 0x8B, - 0x05, - 0x8A, - 0x00, - 0x04, - 0x91, - 0x91, - 0x91, - 0x8B, - 0x09, - 0x8A, - 0x06, - 0x89, - 0x00, - 0x03, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x0B, - 0x89, - 0x00, - 0x05, - 0x4F, - 0x50, - 0x4D, - 0x66, - 0x66, - 0x00, - 0x0C, - 0x50, - 0x00, - 0x03, - 0x3C, - 0x3C, - 0x3C, - 0x00, - 0x0D, - 0x50, - 0x00, - 0x0A, - 0x3B, - 0x3B, - 0x3B, - 0x50, - 0x3B, - 0x3B, - 0x3B, - 0x50, - 0x3B, - 0x50, - 0x13, - 0x3B, - 0x00, - 0x03, - 0x53, - 0x53, - 0x53, - 0x00, - 0x09, - 0x24, - 0x00, - 0x08, - 0x18, - 0x22, - 0x18, - 0x25, - 0x18, - 0x25, - 0x25, - 0x25, - 0x07, - 0x18, - 0x00, - 0x00, - 0x00, - 0x06, - 0x9C, - 0x9C, - 0x9C, - 0x76, - 0x76, - 0x97, - 0x0A, - 0x79, - 0x00, - 0x03, - 0x76, - 0x78, - 0x78, - 0x00, - 0x05, - 0xB6, - 0x01, - 0x99, - 0x0B, - 0xB3, - 0x00, - 0x05, - 0x76, - 0xB3, - 0x99, - 0x99, - 0x99, - 0x00, - 0x09, - 0x9B, - 0x00, - 0x04, - 0x99, - 0x99, - 0x99, - 0xB3, - 0x0A, - 0x76, - 0x0C, - 0x97, - 0x00, - 0x0F, - 0x72, - 0x6E, - 0x6E, - 0x6E, - 0x76, - 0x6E, - 0x99, - 0x76, - 0x97, - 0x72, - 0xB0, - 0x71, - 0xAC, - 0x51, - 0xAC, - 0x00, - 0x04, - 0x51, - 0x00, - 0x04, - 0x75, - 0x75, - 0x75, - 0xAC, - 0x12, - 0x95, - 0x00, - 0x04, - 0x90, - 0x90, - 0x90, - 0xAE, - 0x12, - 0x90, - 0x00, - 0x07, - 0x8D, - 0x8D, - 0x94, - 0x94, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x05, - 0x69, - 0x05, - 0x94, - 0x00, - 0x03, - 0x69, - 0x69, - 0x6A, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x8F, - 0x07, - 0x6A, - 0x00, - 0x05, - 0x67, - 0x67, - 0x67, - 0x8F, - 0x8F, - 0x00, - 0x10, - 0x8B, - 0x05, - 0x8A, - 0x01, - 0x91, - 0x01, - 0x91, - 0x0B, - 0x8A, - 0x10, - 0x89, - 0x04, - 0x4F, - 0x00, - 0x05, - 0x89, - 0x50, - 0x66, - 0x66, - 0x66, - 0x00, - 0x0C, - 0x50, - 0x00, - 0x05, - 0x3C, - 0x3C, - 0x3C, - 0x24, - 0x24, - 0x00, - 0x0B, - 0x3B, - 0x00, - 0x04, - 0x50, - 0x50, - 0x50, - 0x3B, - 0x04, - 0x50, - 0x01, - 0x3B, - 0x01, - 0x50, - 0x13, - 0x3B, - 0x00, - 0x13, - 0x24, - 0x25, - 0x24, - 0x24, - 0x24, - 0x3B, - 0x18, - 0x3B, - 0x3B, - 0x3B, - 0x18, - 0x3B, - 0x18, - 0x22, - 0x18, - 0x3B, - 0x25, - 0x3B, - 0x25, - 0x00, - 0x08, - 0x18, - 0x00, - 0x00, - 0x05, - 0x9C, - 0x0A, - 0x79, - 0x00, - 0x07, - 0x77, - 0x79, - 0x79, - 0x9C, - 0x78, - 0x78, - 0x78, - 0x00, - 0x05, - 0xB6, - 0x07, - 0xB3, - 0x00, - 0x05, - 0x76, - 0x76, - 0xB3, - 0xB3, - 0x99, - 0x00, - 0x0A, - 0x9B, - 0x00, - 0x03, - 0x99, - 0x99, - 0x99, - 0x00, - 0x08, - 0x76, - 0x11, - 0x97, - 0x00, - 0x16, - 0x6E, - 0x6E, - 0x97, - 0x6E, - 0xB3, - 0x76, - 0x6E, - 0x76, - 0x97, - 0x72, - 0x71, - 0xB0, - 0x51, - 0x51, - 0x51, - 0x95, - 0x75, - 0x75, - 0xAC, - 0x51, - 0xAC, - 0xAC, - 0x10, - 0x95, - 0x04, - 0x90, - 0x00, - 0x03, - 0x6D, - 0xAE, - 0x6D, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x0C, - 0xA8, - 0xA8, - 0x90, - 0x90, - 0xA8, - 0x8D, - 0x8D, - 0x94, - 0x94, - 0x6B, - 0x6B, - 0x6B, - 0x05, - 0x69, - 0x05, - 0x94, - 0x00, - 0x03, - 0x69, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x8E, - 0x01, - 0x8F, - 0x07, - 0x6C, - 0x04, - 0x67, - 0x01, - 0x8F, - 0x04, - 0x67, - 0x0C, - 0x8B, - 0x00, - 0x06, - 0x8A, - 0x8A, - 0x8A, - 0x8B, - 0x8B, - 0x91, - 0x0C, - 0x8A, - 0x0B, - 0x89, - 0x00, - 0x03, - 0x4F, - 0x4F, - 0x4F, - 0x00, - 0x06, - 0x89, - 0x00, - 0x03, - 0x50, - 0x4D, - 0x66, - 0x00, - 0x10, - 0x50, - 0x01, - 0x24, - 0x0E, - 0x50, - 0x00, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x50, - 0x04, - 0x3B, - 0x01, - 0x50, - 0x15, - 0x3B, - 0x01, - 0x24, - 0x06, - 0x3B, - 0x00, - 0x0A, - 0x18, - 0x22, - 0x22, - 0x18, - 0x18, - 0x18, - 0x25, - 0x18, - 0x25, - 0x25, - 0x08, - 0x18, - 0x00, - 0x00, - 0x00, - 0x09, - 0x9C, - 0x9C, - 0x79, - 0x79, - 0x9C, - 0x79, - 0x79, - 0x79, - 0xB0, - 0x00, - 0x06, - 0x79, - 0x01, - 0x77, - 0x04, - 0x79, - 0x00, - 0x13, - 0x9C, - 0x78, - 0x78, - 0x78, - 0xB6, - 0xB6, - 0xB6, - 0x99, - 0xB3, - 0xB3, - 0xB3, - 0x99, - 0x78, - 0x78, - 0xB3, - 0x76, - 0xB3, - 0x99, - 0x99, - 0x00, - 0x07, - 0x9B, - 0x00, - 0x06, - 0x99, - 0x9B, - 0x9B, - 0x9B, - 0x99, - 0xB3, - 0x06, - 0x76, - 0x01, - 0x97, - 0x01, - 0x97, - 0x05, - 0x72, - 0x04, - 0x97, - 0x00, - 0x07, - 0x72, - 0x72, - 0x72, - 0x97, - 0x97, - 0x76, - 0x76, - 0x00, - 0x06, - 0x6E, - 0x04, - 0x76, - 0x00, - 0x0A, - 0x97, - 0x72, - 0xB0, - 0x51, - 0x95, - 0x51, - 0x51, - 0xAC, - 0x51, - 0x75, - 0x10, - 0x95, - 0x00, - 0x0A, - 0x90, - 0x90, - 0xAD, - 0x6D, - 0xAE, - 0x94, - 0x94, - 0x6D, - 0x6D, - 0x6D, - 0x0C, - 0x90, - 0x05, - 0x94, - 0x00, - 0x04, - 0x6B, - 0x6B, - 0x94, - 0x94, - 0x0D, - 0x69, - 0x00, - 0x09, - 0x6A, - 0x67, - 0x67, - 0x67, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x67, - 0x00, - 0x09, - 0x8F, - 0x05, - 0x67, - 0x01, - 0x4E, - 0x01, - 0x6C, - 0x0D, - 0x8B, - 0x00, - 0x05, - 0x8A, - 0x8A, - 0x91, - 0x91, - 0x8B, - 0x00, - 0x07, - 0x8A, - 0x01, - 0x89, - 0x01, - 0x8A, - 0x0A, - 0x89, - 0x01, - 0x50, - 0x09, - 0x89, - 0x00, - 0x05, - 0x50, - 0x89, - 0x50, - 0x66, - 0x66, - 0x00, - 0x0D, - 0x50, - 0x00, - 0x05, - 0x3B, - 0x3B, - 0x3B, - 0x50, - 0x50, - 0x00, - 0x0E, - 0x3B, - 0x00, - 0x04, - 0x50, - 0x50, - 0x50, - 0x3B, - 0x04, - 0x50, - 0x00, - 0x05, - 0x3B, - 0x3B, - 0x37, - 0x3B, - 0x37, - 0x00, - 0x12, - 0x3B, - 0x00, - 0x10, - 0x18, - 0x3B, - 0x18, - 0x3B, - 0x18, - 0x3B, - 0x3B, - 0x18, - 0x22, - 0x18, - 0x22, - 0x18, - 0x22, - 0x18, - 0x22, - 0x22, - 0x08, - 0x18, - 0x00, - 0x00, - 0x00, - 0x09, - 0x79, - 0x9C, - 0x9C, - 0x79, - 0x9C, - 0x79, - 0x79, - 0x79, - 0x97, - 0x00, - 0x08, - 0x79, - 0x00, - 0x16, - 0x77, - 0x77, - 0x79, - 0x79, - 0x76, - 0x9C, - 0x78, - 0x78, - 0xB6, - 0x78, - 0x99, - 0xB3, - 0xB3, - 0xB3, - 0x99, - 0x99, - 0x78, - 0x76, - 0x76, - 0x99, - 0x99, - 0x99, - 0x08, - 0x9B, - 0x00, - 0x04, - 0x99, - 0x99, - 0x99, - 0xB3, - 0x07, - 0x76, - 0x01, - 0x97, - 0x01, - 0x97, - 0x05, - 0x72, - 0x04, - 0x97, - 0x00, - 0x08, - 0x72, - 0x72, - 0x72, - 0x97, - 0x97, - 0x76, - 0x97, - 0x76, - 0x06, - 0x6E, - 0x04, - 0x76, - 0x00, - 0x09, - 0x72, - 0xB0, - 0x51, - 0x51, - 0x95, - 0x51, - 0x75, - 0x51, - 0x75, - 0x00, - 0x10, - 0x95, - 0x00, - 0x0A, - 0x90, - 0x90, - 0x90, - 0xAE, - 0xAE, - 0x94, - 0x94, - 0x6D, - 0x6D, - 0x6D, - 0x0C, - 0x90, - 0x05, - 0x94, - 0x00, - 0x04, - 0x6B, - 0x6B, - 0x94, - 0x94, - 0x0D, - 0x69, - 0x00, - 0x09, - 0x6A, - 0x67, - 0x67, - 0x67, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x67, - 0x00, - 0x09, - 0x8F, - 0x06, - 0x67, - 0x01, - 0x6C, - 0x0D, - 0x8B, - 0x00, - 0x05, - 0x8A, - 0x8A, - 0x91, - 0x91, - 0x8B, - 0x00, - 0x06, - 0x8A, - 0x00, - 0x05, - 0x89, - 0x8A, - 0x89, - 0x8A, - 0x8A, - 0x00, - 0x08, - 0x89, - 0x01, - 0x50, - 0x01, - 0x89, - 0x05, - 0x4F, - 0x01, - 0x89, - 0x05, - 0x50, - 0x01, - 0x66, - 0x01, - 0x66, - 0x0F, - 0x50, - 0x13, - 0x3B, - 0x01, - 0x50, - 0x04, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x50, - 0x1B, - 0x3B, - 0x00, - 0x09, - 0x18, - 0x3B, - 0x22, - 0x18, - 0x22, - 0x18, - 0x22, - 0x18, - 0x22, - 0x00, - 0x0A, - 0x18, - 0x00, - 0x00, - 0x00, - 0x04, - 0x9C, - 0x79, - 0x79, - 0x9C, - 0x07, - 0x79, - 0x00, - 0x06, - 0xB7, - 0x79, - 0xD2, - 0x79, - 0x79, - 0xB7, - 0x04, - 0x77, - 0x00, - 0x03, - 0x79, - 0x97, - 0x9C, - 0x00, - 0x04, - 0x78, - 0x01, - 0x99, - 0x05, - 0x78, - 0x00, - 0x04, - 0x76, - 0xB3, - 0x99, - 0x99, - 0x06, - 0x9B, - 0x05, - 0x99, - 0x00, - 0x07, - 0x76, - 0x76, - 0x76, - 0x97, - 0x76, - 0x76, - 0x97, - 0x00, - 0x07, - 0x72, - 0x01, - 0x79, - 0x04, - 0x72, - 0x00, - 0x06, - 0x97, - 0x97, - 0x72, - 0x72, - 0x97, - 0x97, - 0x04, - 0x76, - 0x00, - 0x12, - 0x6E, - 0x97, - 0x97, - 0x6E, - 0x6E, - 0x6E, - 0x76, - 0x76, - 0x6E, - 0x97, - 0x72, - 0xB0, - 0xAC, - 0x51, - 0x95, - 0x95, - 0x51, - 0x75, - 0x0E, - 0x95, - 0x05, - 0x90, - 0x01, - 0xAE, - 0x01, - 0xAE, - 0x05, - 0x6D, - 0x0B, - 0x90, - 0x00, - 0x03, - 0x94, - 0x94, - 0x94, - 0x00, - 0x05, - 0x6B, - 0x0C, - 0x69, - 0x00, - 0x05, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x67, - 0x00, - 0x05, - 0x6A, - 0x01, - 0x67, - 0x01, - 0x67, - 0x09, - 0x8F, - 0x04, - 0x67, - 0x00, - 0x03, - 0x4E, - 0x6C, - 0x4E, - 0x00, - 0x0A, - 0x8B, - 0x00, - 0x08, - 0x8A, - 0x8A, - 0x8B, - 0x8A, - 0x91, - 0x91, - 0x91, - 0x8B, - 0x07, - 0x8A, - 0x0D, - 0x89, - 0x01, - 0x4F, - 0x04, - 0x89, - 0x15, - 0x50, - 0x0F, - 0x3B, - 0x00, - 0x08, - 0x50, - 0x50, - 0x50, - 0x3B, - 0x3B, - 0x50, - 0x50, - 0x3B, - 0x04, - 0x50, - 0x13, - 0x3B, - 0x01, - 0x36, - 0x01, - 0x36, - 0x05, - 0x22, - 0x00, - 0x0E, - 0x3B, - 0x18, - 0x3B, - 0x3B, - 0x3B, - 0x18, - 0x22, - 0x18, - 0x22, - 0x18, - 0x22, - 0x18, - 0x22, - 0x22, - 0x08, - 0x18, - 0x00, - 0x00, - 0x01, - 0x9C, - 0x0A, - 0x79, - 0x01, - 0xB7, - 0x05, - 0x79, - 0x05, - 0x77, - 0x04, - 0x79, - 0x00, - 0x03, - 0x76, - 0x78, - 0xB3, - 0x00, - 0x05, - 0x78, - 0x00, - 0x07, - 0x76, - 0xB3, - 0x99, - 0xB6, - 0x9B, - 0x99, - 0x9B, - 0x00, - 0x06, - 0x99, - 0x00, - 0x08, - 0x76, - 0x76, - 0x76, - 0x97, - 0x97, - 0x97, - 0x76, - 0x76, - 0x0A, - 0x72, - 0x00, - 0x03, - 0x71, - 0x71, - 0x72, - 0x00, - 0x06, - 0x97, - 0x08, - 0x76, - 0x04, - 0x6E, - 0x00, - 0x07, - 0x76, - 0x97, - 0x72, - 0x72, - 0x71, - 0x74, - 0x51, - 0x00, - 0x11, - 0x95, - 0x05, - 0x90, - 0x01, - 0x94, - 0x01, - 0x94, - 0x05, - 0x6D, - 0x01, - 0x90, - 0x01, - 0x95, - 0x08, - 0x90, - 0x04, - 0x94, - 0x05, - 0x6B, - 0x0C, - 0x69, - 0x00, - 0x07, - 0x6A, - 0x6A, - 0x67, - 0x67, - 0x67, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x67, - 0x09, - 0x8F, - 0x06, - 0x67, - 0x01, - 0x4E, - 0x0A, - 0x8B, - 0x00, - 0x03, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x04, - 0x91, - 0x01, - 0x8B, - 0x07, - 0x8A, - 0x0C, - 0x89, - 0x00, - 0x08, - 0x4F, - 0x89, - 0x89, - 0x89, - 0x50, - 0x89, - 0x66, - 0x66, - 0x13, - 0x50, - 0x00, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x50, - 0x06, - 0x3B, - 0x04, - 0x50, - 0x01, - 0x3B, - 0x01, - 0x50, - 0x1E, - 0x3B, - 0x00, - 0x03, - 0x36, - 0x3B, - 0x38, - 0x00, - 0x04, - 0x22, - 0x00, - 0x09, - 0x3B, - 0x3B, - 0x3B, - 0x22, - 0x22, - 0x22, - 0x18, - 0x22, - 0x18, - 0x00, - 0x05, - 0x22, - 0x00, - 0x08, - 0x18, - 0x18, - 0x18, - 0x22, - 0x18, - 0x18, - 0x18, - 0x18, - 0x00, - 0x00, - 0x0A, - 0x79, - 0x00, - 0x03, - 0x77, - 0x79, - 0x77, - 0x00, - 0x04, - 0x79, - 0x09, - 0x77, - 0x01, - 0x79, - 0x01, - 0x79, - 0x08, - 0x76, - 0x01, - 0x78, - 0x01, - 0xB6, - 0x07, - 0x99, - 0x04, - 0x76, - 0x01, - 0x97, - 0x01, - 0x72, - 0x04, - 0x97, - 0x0A, - 0x72, - 0x00, - 0x04, - 0x71, - 0x71, - 0x72, - 0x72, - 0x05, - 0x97, - 0x07, - 0x76, - 0x05, - 0x6E, - 0x00, - 0x07, - 0x97, - 0x76, - 0x72, - 0x72, - 0x71, - 0x74, - 0x75, - 0x00, - 0x11, - 0x95, - 0x05, - 0x90, - 0x01, - 0x94, - 0x01, - 0x94, - 0x05, - 0x6D, - 0x0A, - 0x90, - 0x04, - 0x94, - 0x05, - 0x6B, - 0x0C, - 0x69, - 0x00, - 0x07, - 0x6A, - 0x6A, - 0x67, - 0x67, - 0x67, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x67, - 0x09, - 0x8F, - 0x04, - 0x67, - 0x0D, - 0x8B, - 0x05, - 0x8A, - 0x01, - 0x91, - 0x01, - 0x91, - 0x07, - 0x8A, - 0x0D, - 0x89, - 0x00, - 0x08, - 0x4F, - 0x4F, - 0x89, - 0x89, - 0x50, - 0x50, - 0x66, - 0x66, - 0x0D, - 0x50, - 0x04, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x50, - 0x04, - 0x3B, - 0x04, - 0x50, - 0x06, - 0x3B, - 0x01, - 0x50, - 0x01, - 0x3B, - 0x06, - 0x50, - 0x18, - 0x3B, - 0x01, - 0x36, - 0x01, - 0x36, - 0x0F, - 0x22, - 0x00, - 0x0C, - 0x18, - 0x22, - 0x18, - 0x22, - 0x22, - 0x18, - 0x18, - 0x18, - 0x17, - 0x18, - 0x18, - 0x18, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x79, - 0x79, - 0x77, - 0x79, - 0x77, - 0x77, - 0x79, - 0x77, - 0x79, - 0x79, - 0x04, - 0x77, - 0x00, - 0x0A, - 0x79, - 0xD2, - 0x79, - 0xCC, - 0x77, - 0x77, - 0x74, - 0xB7, - 0x77, - 0xB7, - 0x04, - 0x77, - 0x00, - 0x08, - 0x79, - 0x77, - 0x77, - 0xB0, - 0x77, - 0x72, - 0x97, - 0x76, - 0x05, - 0x78, - 0x07, - 0x76, - 0x07, - 0x97, - 0x05, - 0x72, - 0x00, - 0x04, - 0x71, - 0x71, - 0x77, - 0x77, - 0x06, - 0x72, - 0x00, - 0x04, - 0x6E, - 0x97, - 0x97, - 0x97, - 0x05, - 0x6E, - 0x00, - 0x0E, - 0x76, - 0x97, - 0x76, - 0x6E, - 0x6E, - 0x6E, - 0x76, - 0x6E, - 0x97, - 0x72, - 0x72, - 0x71, - 0x71, - 0x51, - 0x0B, - 0x95, - 0x01, - 0x90, - 0x01, - 0x95, - 0x14, - 0x90, - 0x01, - 0xA8, - 0x04, - 0x8D, - 0x00, - 0x03, - 0xA8, - 0x94, - 0x94, - 0x00, - 0x05, - 0x6B, - 0x0C, - 0x69, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x0B, - 0x67, - 0x01, - 0x8F, - 0x08, - 0x67, - 0x0D, - 0x8B, - 0x0F, - 0x8A, - 0x00, - 0x05, - 0x89, - 0x89, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x11, - 0x89, - 0x00, - 0x04, - 0x50, - 0x66, - 0x66, - 0x66, - 0x09, - 0x50, - 0x01, - 0x3B, - 0x01, - 0x50, - 0x09, - 0x3B, - 0x01, - 0x50, - 0x06, - 0x3B, - 0x04, - 0x50, - 0x01, - 0x3B, - 0x01, - 0x50, - 0x06, - 0x3B, - 0x01, - 0x50, - 0x04, - 0x3B, - 0x01, - 0x36, - 0x07, - 0x3B, - 0x00, - 0x03, - 0x36, - 0x36, - 0x36, - 0x00, - 0x04, - 0x3B, - 0x00, - 0x05, - 0x22, - 0x22, - 0x3B, - 0x3B, - 0x3B, - 0x00, - 0x0C, - 0x22, - 0x00, - 0x03, - 0x17, - 0x17, - 0x17, - 0x00, - 0x05, - 0x22, - 0x00, - 0x09, - 0x18, - 0x17, - 0x17, - 0x17, - 0x18, - 0x18, - 0x22, - 0x18, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x79, - 0x79, - 0x79, - 0x77, - 0x79, - 0x77, - 0x79, - 0x77, - 0x79, - 0x77, - 0x79, - 0x00, - 0x04, - 0x77, - 0x00, - 0x07, - 0x79, - 0x79, - 0xCC, - 0x77, - 0xB7, - 0x74, - 0xB7, - 0x00, - 0x04, - 0x77, - 0x00, - 0x03, - 0xB7, - 0x77, - 0xB7, - 0x00, - 0x04, - 0x74, - 0x01, - 0x71, - 0x01, - 0x77, - 0x0D, - 0x76, - 0x05, - 0x97, - 0x07, - 0x72, - 0x04, - 0x71, - 0x00, - 0x16, - 0xB0, - 0x72, - 0xB0, - 0x72, - 0xB0, - 0x72, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x76, - 0x76, - 0x6E, - 0x6E, - 0x76, - 0x6E, - 0x05, - 0x72, - 0x01, - 0x71, - 0x01, - 0x75, - 0x0D, - 0x95, - 0x14, - 0x90, - 0x01, - 0xA8, - 0x04, - 0x8D, - 0x00, - 0x08, - 0xA8, - 0x94, - 0x94, - 0x6B, - 0x6B, - 0x6B, - 0x94, - 0x94, - 0x0C, - 0x69, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x08, - 0x67, - 0x04, - 0x8F, - 0x08, - 0x67, - 0x0D, - 0x8B, - 0x09, - 0x8A, - 0x00, - 0x08, - 0x89, - 0x8A, - 0x8A, - 0x89, - 0x89, - 0x89, - 0x93, - 0x8A, - 0x14, - 0x89, - 0x00, - 0x06, - 0x50, - 0x66, - 0x66, - 0x66, - 0x4D, - 0x4D, - 0x07, - 0x50, - 0x07, - 0x3B, - 0x05, - 0x50, - 0x05, - 0x3B, - 0x01, - 0x50, - 0x05, - 0x3B, - 0x00, - 0x04, - 0x50, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x50, - 0x08, - 0x3B, - 0x00, - 0x07, - 0x36, - 0x34, - 0x3B, - 0x3B, - 0x36, - 0x36, - 0x36, - 0x00, - 0x04, - 0x3B, - 0x11, - 0x22, - 0x05, - 0x17, - 0x00, - 0x0C, - 0x22, - 0x18, - 0x22, - 0x22, - 0x17, - 0x17, - 0x17, - 0x22, - 0x22, - 0x18, - 0x17, - 0x18, - 0x00, - 0x00, - 0x04, - 0x79, - 0x00, - 0x08, - 0x77, - 0x79, - 0x77, - 0x79, - 0x77, - 0x79, - 0x77, - 0x79, - 0x05, - 0x77, - 0x00, - 0x06, - 0xCC, - 0x77, - 0x77, - 0xB7, - 0x77, - 0x77, - 0x07, - 0x74, - 0x00, - 0x05, - 0xB1, - 0x74, - 0x74, - 0x71, - 0x72, - 0x00, - 0x06, - 0x76, - 0x0C, - 0x97, - 0x07, - 0x72, - 0x04, - 0x71, - 0x06, - 0x72, - 0x09, - 0x6E, - 0x00, - 0x0E, - 0x76, - 0x76, - 0x97, - 0x6E, - 0x6E, - 0x76, - 0x6E, - 0x72, - 0x72, - 0x6E, - 0x6E, - 0x72, - 0x71, - 0x51, - 0x0C, - 0x95, - 0x15, - 0x90, - 0x01, - 0xA8, - 0x04, - 0x8D, - 0x00, - 0x08, - 0xA8, - 0x94, - 0x94, - 0x6B, - 0x6B, - 0x6B, - 0x94, - 0x94, - 0x0B, - 0x69, - 0x01, - 0x6A, - 0x0A, - 0x67, - 0x04, - 0x8F, - 0x08, - 0x67, - 0x0D, - 0x8B, - 0x08, - 0x8A, - 0x01, - 0x89, - 0x05, - 0x8A, - 0x01, - 0x4F, - 0x15, - 0x89, - 0x00, - 0x08, - 0x50, - 0x50, - 0x66, - 0x66, - 0x66, - 0x4D, - 0x4D, - 0x37, - 0x07, - 0x50, - 0x07, - 0x3B, - 0x00, - 0x03, - 0x50, - 0x3B, - 0x50, - 0x00, - 0x07, - 0x3B, - 0x06, - 0x50, - 0x08, - 0x3B, - 0x00, - 0x0E, - 0x36, - 0x36, - 0x3B, - 0x36, - 0x3B, - 0x3B, - 0x36, - 0x36, - 0x38, - 0x3B, - 0x3B, - 0x36, - 0x36, - 0x36, - 0x04, - 0x3B, - 0x13, - 0x22, - 0x0A, - 0x17, - 0x00, - 0x05, - 0x22, - 0x22, - 0x18, - 0x18, - 0x17, - 0x00, - 0x00, - 0x00, - 0x05, - 0x79, - 0x00, - 0x03, - 0x77, - 0x77, - 0x77, - 0x00, - 0x04, - 0x79, - 0x06, - 0x77, - 0x00, - 0x04, - 0x74, - 0xB7, - 0x77, - 0x74, - 0x05, - 0xB7, - 0x00, - 0x07, - 0x74, - 0x74, - 0xB1, - 0x74, - 0x74, - 0x71, - 0x72, - 0x00, - 0x09, - 0x76, - 0x0C, - 0x97, - 0x10, - 0x72, - 0x00, - 0x17, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x76, - 0x6E, - 0x72, - 0x72, - 0x6E, - 0x76, - 0x6E, - 0x72, - 0x74, - 0x51, - 0x00, - 0x0B, - 0x95, - 0x18, - 0x90, - 0x00, - 0x08, - 0x8D, - 0x8D, - 0x94, - 0x94, - 0x94, - 0x6B, - 0x6B, - 0x6B, - 0x04, - 0x94, - 0x07, - 0x69, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x0B, - 0x67, - 0x04, - 0x8F, - 0x00, - 0x03, - 0x67, - 0x67, - 0x67, - 0x00, - 0x0D, - 0x8B, - 0x0E, - 0x8A, - 0x00, - 0x06, - 0x89, - 0x89, - 0x89, - 0x8A, - 0x8A, - 0x4F, - 0x10, - 0x89, - 0x00, - 0x05, - 0x50, - 0x89, - 0x50, - 0x89, - 0x50, - 0x00, - 0x05, - 0x66, - 0x06, - 0x4D, - 0x01, - 0x37, - 0x05, - 0x50, - 0x0B, - 0x3B, - 0x00, - 0x03, - 0x66, - 0x3B, - 0x66, - 0x00, - 0x0E, - 0x3B, - 0x04, - 0x36, - 0x00, - 0x0D, - 0x3B, - 0x3B, - 0x3B, - 0x36, - 0x38, - 0x36, - 0x36, - 0x36, - 0x38, - 0x38, - 0x36, - 0x36, - 0x36, - 0x00, - 0x16, - 0x22, - 0x0C, - 0x17, - 0x01, - 0x18, - 0x01, - 0x17, - 0x00, - 0x00, - 0x0C, - 0x79, - 0x06, - 0x77, - 0x00, - 0x03, - 0xB7, - 0x77, - 0xB7, - 0x00, - 0x06, - 0x77, - 0x00, - 0x07, - 0x74, - 0x74, - 0xB1, - 0x74, - 0x74, - 0x77, - 0x97, - 0x00, - 0x09, - 0x76, - 0x0C, - 0x97, - 0x10, - 0x72, - 0x0F, - 0x6E, - 0x00, - 0x08, - 0x72, - 0x72, - 0x6E, - 0x6E, - 0x6E, - 0x72, - 0x71, - 0x51, - 0x0B, - 0x95, - 0x18, - 0x90, - 0x00, - 0x08, - 0x8D, - 0x8D, - 0x94, - 0x94, - 0x94, - 0x6B, - 0x6B, - 0x6B, - 0x04, - 0x94, - 0x07, - 0x69, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x0B, - 0x67, - 0x04, - 0x8F, - 0x00, - 0x03, - 0x67, - 0x67, - 0x67, - 0x00, - 0x0D, - 0x8B, - 0x0D, - 0x8A, - 0x01, - 0x89, - 0x05, - 0x8A, - 0x01, - 0x4F, - 0x10, - 0x89, - 0x05, - 0x50, - 0x05, - 0x66, - 0x06, - 0x4D, - 0x01, - 0x37, - 0x05, - 0x50, - 0x00, - 0x0A, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x04, - 0x3B, - 0x01, - 0x66, - 0x0D, - 0x3B, - 0x04, - 0x36, - 0x00, - 0x0B, - 0x3B, - 0x3B, - 0x3B, - 0x36, - 0x38, - 0x36, - 0x36, - 0x36, - 0x38, - 0x38, - 0x38, - 0x00, - 0x18, - 0x22, - 0x0D, - 0x17, - 0x01, - 0x18, - 0x00, - 0x00, - 0x05, - 0x79, - 0x0E, - 0x77, - 0x00, - 0x03, - 0x74, - 0x77, - 0xB7, - 0x00, - 0x05, - 0x74, - 0x00, - 0x07, - 0xB1, - 0x75, - 0x74, - 0xAC, - 0x74, - 0x77, - 0x97, - 0x00, - 0x07, - 0x76, - 0x00, - 0x07, - 0x97, - 0x97, - 0x72, - 0x72, - 0x72, - 0x97, - 0x97, - 0x00, - 0x05, - 0x72, - 0x01, - 0x97, - 0x01, - 0x97, - 0x10, - 0x72, - 0x04, - 0x6E, - 0x01, - 0x76, - 0x01, - 0x76, - 0x04, - 0x6E, - 0x06, - 0x72, - 0x04, - 0x6E, - 0x00, - 0x03, - 0x72, - 0x71, - 0x51, - 0x00, - 0x0B, - 0x95, - 0x13, - 0x90, - 0x00, - 0x07, - 0x68, - 0x68, - 0x68, - 0xA8, - 0xA8, - 0x8D, - 0x8D, - 0x00, - 0x05, - 0x6B, - 0x05, - 0x94, - 0x07, - 0x69, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x11, - 0x67, - 0x0E, - 0x8B, - 0x0F, - 0x8A, - 0x00, - 0x05, - 0x89, - 0x89, - 0x89, - 0x4F, - 0x4F, - 0x00, - 0x10, - 0x89, - 0x0A, - 0x66, - 0x06, - 0x4D, - 0x00, - 0x06, - 0x37, - 0x66, - 0x66, - 0x66, - 0x50, - 0x66, - 0x0B, - 0x3B, - 0x00, - 0x05, - 0x66, - 0x34, - 0x34, - 0x36, - 0x36, - 0x00, - 0x08, - 0x3B, - 0x07, - 0x36, - 0x04, - 0x3B, - 0x00, - 0x05, - 0x38, - 0x38, - 0x38, - 0x36, - 0x36, - 0x00, - 0x0A, - 0x38, - 0x15, - 0x22, - 0x08, - 0x17, - 0x02, - 0x18, - 0x00, - 0x00, - 0x05, - 0x79, - 0x0E, - 0x77, - 0x00, - 0x0F, - 0xB7, - 0xB7, - 0x77, - 0x74, - 0x74, - 0xB1, - 0xB0, - 0x74, - 0x74, - 0xB1, - 0x75, - 0x75, - 0x51, - 0xB0, - 0x97, - 0x00, - 0x07, - 0x76, - 0x00, - 0x07, - 0x97, - 0x97, - 0x72, - 0x72, - 0x72, - 0x97, - 0x97, - 0x00, - 0x16, - 0x72, - 0x0B, - 0x6E, - 0x05, - 0x72, - 0x06, - 0x6E, - 0x00, - 0x04, - 0x71, - 0x51, - 0x95, - 0x8C, - 0x07, - 0x95, - 0x15, - 0x90, - 0x00, - 0x03, - 0x68, - 0x68, - 0x68, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x07, - 0x94, - 0x05, - 0x69, - 0x05, - 0x6A, - 0x0E, - 0x67, - 0x0E, - 0x8B, - 0x11, - 0x8A, - 0x13, - 0x89, - 0x01, - 0x50, - 0x01, - 0x89, - 0x0A, - 0x66, - 0x01, - 0x4D, - 0x01, - 0x4D, - 0x07, - 0x66, - 0x00, - 0x0F, - 0x34, - 0x3B, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x00, - 0x04, - 0x36, - 0x00, - 0x08, - 0x3B, - 0x3B, - 0x36, - 0x36, - 0x36, - 0x3B, - 0x3B, - 0x3B, - 0x08, - 0x36, - 0x00, - 0x03, - 0x3B, - 0x36, - 0x3B, - 0x00, - 0x1A, - 0x38, - 0x0A, - 0x22, - 0x0A, - 0x17, - 0x00, - 0x00, - 0x05, - 0x79, - 0x10, - 0x77, - 0x00, - 0x0D, - 0xB1, - 0x74, - 0x74, - 0xB0, - 0xAC, - 0xAC, - 0x74, - 0x74, - 0xAC, - 0x75, - 0x71, - 0x77, - 0x97, - 0x00, - 0x07, - 0x76, - 0x00, - 0x07, - 0x97, - 0x97, - 0x72, - 0x72, - 0x72, - 0x97, - 0x97, - 0x00, - 0x13, - 0x72, - 0x00, - 0x03, - 0x6E, - 0x6E, - 0x72, - 0x00, - 0x0B, - 0x6E, - 0x05, - 0x72, - 0x06, - 0x6E, - 0x01, - 0x72, - 0x01, - 0x51, - 0x07, - 0x95, - 0x00, - 0x04, - 0x90, - 0x90, - 0x6D, - 0x95, - 0x13, - 0x90, - 0x00, - 0x03, - 0x68, - 0x68, - 0x68, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x07, - 0x94, - 0x05, - 0x69, - 0x05, - 0x6A, - 0x0E, - 0x67, - 0x0E, - 0x8B, - 0x11, - 0x8A, - 0x13, - 0x89, - 0x01, - 0x50, - 0x01, - 0x50, - 0x0A, - 0x66, - 0x01, - 0x4D, - 0x01, - 0x4D, - 0x07, - 0x66, - 0x01, - 0x34, - 0x01, - 0x66, - 0x0C, - 0x3B, - 0x01, - 0x34, - 0x09, - 0x36, - 0x00, - 0x03, - 0x3B, - 0x3B, - 0x3B, - 0x00, - 0x0B, - 0x36, - 0x07, - 0x38, - 0x01, - 0x2C, - 0x12, - 0x38, - 0x0A, - 0x22, - 0x0A, - 0x17, - 0x00, - 0x00, - 0x01, - 0x79, - 0x0E, - 0x77, - 0x00, - 0x13, - 0x74, - 0x74, - 0x77, - 0x77, - 0x77, - 0x74, - 0xB1, - 0xB1, - 0xB1, - 0xAC, - 0x75, - 0xAC, - 0x95, - 0x95, - 0x75, - 0xAC, - 0x71, - 0x77, - 0x97, - 0x00, - 0x07, - 0x76, - 0x07, - 0x97, - 0x0C, - 0x72, - 0x04, - 0x71, - 0x00, - 0x03, - 0x72, - 0x72, - 0x72, - 0x00, - 0x0E, - 0x6E, - 0x04, - 0x72, - 0x00, - 0x0A, - 0x6E, - 0x71, - 0x51, - 0x6E, - 0x6E, - 0x6E, - 0x72, - 0x71, - 0x71, - 0x51, - 0x05, - 0x95, - 0x00, - 0x05, - 0x90, - 0xAD, - 0x95, - 0x90, - 0x73, - 0x00, - 0x11, - 0x90, - 0x07, - 0x68, - 0x00, - 0x07, - 0x8D, - 0x8D, - 0x8D, - 0x6B, - 0x94, - 0x94, - 0x94, - 0x00, - 0x05, - 0x69, - 0x05, - 0x6A, - 0x13, - 0x67, - 0x09, - 0x8B, - 0x13, - 0x8A, - 0x01, - 0x4F, - 0x13, - 0x89, - 0x01, - 0x50, - 0x01, - 0x50, - 0x15, - 0x66, - 0x00, - 0x0A, - 0x34, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x13, - 0x36, - 0x00, - 0x05, - 0x38, - 0x38, - 0x36, - 0x36, - 0x36, - 0x00, - 0x20, - 0x38, - 0x00, - 0x03, - 0x22, - 0x22, - 0x22, - 0x00, - 0x0F, - 0x17, - 0x00, - 0x00, - 0x01, - 0x79, - 0x0E, - 0x77, - 0x00, - 0x08, - 0x74, - 0x74, - 0x77, - 0x77, - 0x77, - 0x74, - 0xB1, - 0xB1, - 0x04, - 0xAC, - 0x00, - 0x07, - 0x75, - 0x75, - 0x75, - 0x74, - 0x71, - 0x72, - 0x97, - 0x00, - 0x07, - 0x76, - 0x07, - 0x97, - 0x0C, - 0x72, - 0x04, - 0x71, - 0x00, - 0x05, - 0x72, - 0x72, - 0x72, - 0x6E, - 0x76, - 0x00, - 0x0D, - 0x6E, - 0x00, - 0x17, - 0x72, - 0x6E, - 0x72, - 0x72, - 0x71, - 0x6E, - 0x51, - 0x51, - 0x71, - 0x6E, - 0x72, - 0x71, - 0x51, - 0x95, - 0x95, - 0x8C, - 0x95, - 0x95, - 0x90, - 0xAE, - 0x6D, - 0x73, - 0x73, - 0x00, - 0x11, - 0x90, - 0x07, - 0x68, - 0x00, - 0x03, - 0x8D, - 0x8D, - 0x8D, - 0x00, - 0x04, - 0x94, - 0x05, - 0x69, - 0x05, - 0x6A, - 0x13, - 0x67, - 0x09, - 0x8B, - 0x13, - 0x8A, - 0x01, - 0x4F, - 0x10, - 0x89, - 0x00, - 0x05, - 0x50, - 0x50, - 0x50, - 0x89, - 0x50, - 0x00, - 0x15, - 0x66, - 0x01, - 0x34, - 0x09, - 0x3B, - 0x07, - 0x36, - 0x01, - 0x38, - 0x0B, - 0x36, - 0x00, - 0x05, - 0x38, - 0x38, - 0x36, - 0x36, - 0x36, - 0x00, - 0x1C, - 0x38, - 0x01, - 0x17, - 0x06, - 0x38, - 0x0F, - 0x17, - 0x00, - 0x00, - 0x01, - 0x79, - 0x0E, - 0x77, - 0x08, - 0x74, - 0x00, - 0x0A, - 0xAC, - 0xAC, - 0xAC, - 0xB1, - 0x75, - 0xCA, - 0x74, - 0xB0, - 0x72, - 0x97, - 0x08, - 0x76, - 0x07, - 0x97, - 0x0A, - 0x72, - 0x00, - 0x04, - 0xB0, - 0x77, - 0x71, - 0x71, - 0x05, - 0x72, - 0x0D, - 0x6E, - 0x00, - 0x03, - 0x71, - 0x72, - 0x6E, - 0x00, - 0x04, - 0x72, - 0x00, - 0x08, - 0x51, - 0x71, - 0x6E, - 0x71, - 0x6E, - 0x71, - 0x71, - 0x51, - 0x05, - 0x95, - 0x00, - 0x05, - 0x90, - 0x6D, - 0x6D, - 0x73, - 0x6D, - 0x00, - 0x11, - 0x90, - 0x07, - 0x68, - 0x00, - 0x03, - 0x69, - 0x69, - 0x69, - 0x00, - 0x04, - 0x94, - 0x07, - 0x6A, - 0x16, - 0x67, - 0x07, - 0x8B, - 0x15, - 0x8A, - 0x01, - 0x4F, - 0x10, - 0x89, - 0x05, - 0x50, - 0x13, - 0x66, - 0x00, - 0x03, - 0x34, - 0x34, - 0x34, - 0x00, - 0x04, - 0x3B, - 0x0C, - 0x36, - 0x01, - 0x38, - 0x01, - 0x38, - 0x0A, - 0x36, - 0x00, - 0x04, - 0x38, - 0x38, - 0x36, - 0x36, - 0x12, - 0x38, - 0x01, - 0x17, - 0x01, - 0x17, - 0x04, - 0x38, - 0x00, - 0x03, - 0x17, - 0x38, - 0x17, - 0x00, - 0x04, - 0x38, - 0x14, - 0x17, - 0x00, - 0x00, - 0x08, - 0x77, - 0x0E, - 0x74, - 0x00, - 0x0A, - 0x51, - 0x74, - 0xB0, - 0x74, - 0xB1, - 0x75, - 0x74, - 0x74, - 0x71, - 0x72, - 0x04, - 0x76, - 0x0A, - 0x97, - 0x09, - 0x72, - 0x05, - 0x71, - 0x07, - 0x72, - 0x01, - 0x76, - 0x0E, - 0x6E, - 0x04, - 0x72, - 0x00, - 0x0A, - 0x71, - 0x6E, - 0x51, - 0x6E, - 0x71, - 0x6E, - 0x71, - 0x51, - 0x95, - 0x8C, - 0x04, - 0x90, - 0x00, - 0x03, - 0x6D, - 0x73, - 0x73, - 0x00, - 0x0E, - 0x90, - 0x0A, - 0x68, - 0x00, - 0x03, - 0x8D, - 0x8D, - 0x69, - 0x00, - 0x04, - 0x94, - 0x01, - 0x69, - 0x01, - 0x69, - 0x07, - 0x6A, - 0x16, - 0x67, - 0x07, - 0x8B, - 0x14, - 0x8A, - 0x11, - 0x89, - 0x10, - 0x66, - 0x00, - 0x09, - 0x28, - 0x66, - 0x66, - 0x66, - 0x34, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x00, - 0x13, - 0x36, - 0x01, - 0x38, - 0x08, - 0x36, - 0x01, - 0x22, - 0x17, - 0x38, - 0x00, - 0x06, - 0x17, - 0x38, - 0x38, - 0x17, - 0x38, - 0x17, - 0x06, - 0x38, - 0x05, - 0x0B, - 0x0E, - 0x17, - 0x03, - 0x07, - 0x00, - 0x00, - 0x08, - 0x77, - 0x0E, - 0x74, - 0x00, - 0x0E, - 0x51, - 0x74, - 0xB0, - 0xB0, - 0xB1, - 0xB1, - 0x74, - 0x74, - 0x74, - 0x72, - 0x97, - 0x76, - 0x76, - 0x76, - 0x0A, - 0x97, - 0x09, - 0x72, - 0x06, - 0x71, - 0x01, - 0x72, - 0x01, - 0x6E, - 0x04, - 0x72, - 0x0E, - 0x6E, - 0x00, - 0x0F, - 0x72, - 0x6E, - 0x72, - 0x72, - 0x6E, - 0x71, - 0x71, - 0x71, - 0x51, - 0x6E, - 0x6E, - 0x97, - 0x71, - 0x95, - 0x95, - 0x00, - 0x05, - 0x90, - 0x01, - 0x6D, - 0x01, - 0x73, - 0x0E, - 0x90, - 0x0A, - 0x68, - 0x00, - 0x03, - 0x8D, - 0x8D, - 0x69, - 0x00, - 0x04, - 0x94, - 0x01, - 0x69, - 0x01, - 0x69, - 0x07, - 0x6A, - 0x16, - 0x67, - 0x07, - 0x8B, - 0x14, - 0x8A, - 0x11, - 0x89, - 0x01, - 0x4D, - 0x13, - 0x66, - 0x01, - 0x34, - 0x04, - 0x3B, - 0x07, - 0x36, - 0x00, - 0x03, - 0x30, - 0x36, - 0x30, - 0x00, - 0x12, - 0x36, - 0x00, - 0x03, - 0x38, - 0x38, - 0x30, - 0x00, - 0x10, - 0x38, - 0x00, - 0x0D, - 0x17, - 0x38, - 0x17, - 0x38, - 0x38, - 0x17, - 0x17, - 0x0B, - 0x17, - 0x0B, - 0x17, - 0x17, - 0x17, - 0x00, - 0x09, - 0x0B, - 0x00, - 0x03, - 0x07, - 0x07, - 0x07, - 0x00, - 0x0B, - 0x17, - 0x03, - 0x07, - 0x00, - 0x00, - 0x08, - 0x77, - 0x09, - 0x74, - 0x00, - 0x03, - 0x75, - 0x75, - 0x75, - 0x00, - 0x0A, - 0x74, - 0x01, - 0xB0, - 0x01, - 0x72, - 0x04, - 0x76, - 0x05, - 0x72, - 0x05, - 0x97, - 0x00, - 0x0A, - 0x72, - 0xB0, - 0x72, - 0xB0, - 0x72, - 0xB0, - 0x72, - 0xB0, - 0x72, - 0xB0, - 0x04, - 0x71, - 0x09, - 0x72, - 0x0A, - 0x6E, - 0x00, - 0x04, - 0x72, - 0x72, - 0x6E, - 0x71, - 0x05, - 0x72, - 0x04, - 0x6E, - 0x00, - 0x0B, - 0x4A, - 0x4A, - 0x4A, - 0x8C, - 0x8C, - 0xA8, - 0x90, - 0x90, - 0x6D, - 0x73, - 0x6D, - 0x00, - 0x0E, - 0x90, - 0x05, - 0x68, - 0x05, - 0x8D, - 0x00, - 0x03, - 0x69, - 0x69, - 0x8D, - 0x00, - 0x04, - 0x6B, - 0x07, - 0x6A, - 0x11, - 0x67, - 0x01, - 0x4E, - 0x01, - 0x4E, - 0x05, - 0x67, - 0x05, - 0x8B, - 0x0F, - 0x8A, - 0x01, - 0x4C, - 0x04, - 0x8A, - 0x01, - 0x4F, - 0x01, - 0x8A, - 0x0F, - 0x89, - 0x01, - 0x4D, - 0x13, - 0x66, - 0x00, - 0x03, - 0x36, - 0x28, - 0x36, - 0x00, - 0x04, - 0x3B, - 0x06, - 0x36, - 0x01, - 0x66, - 0x04, - 0x36, - 0x00, - 0x09, - 0x2B, - 0x36, - 0x2B, - 0x30, - 0x36, - 0x30, - 0x30, - 0x36, - 0x30, - 0x00, - 0x08, - 0x36, - 0x01, - 0x38, - 0x04, - 0x30, - 0x13, - 0x38, - 0x09, - 0x0B, - 0x01, - 0x17, - 0x06, - 0x0B, - 0x12, - 0x07, - 0x00, - 0x00, - 0x05, - 0x77, - 0x0C, - 0x74, - 0x0B, - 0x75, - 0x00, - 0x08, - 0x74, - 0x74, - 0x71, - 0x72, - 0x76, - 0x76, - 0x6E, - 0x76, - 0x0A, - 0x72, - 0x0C, - 0x71, - 0x00, - 0x05, - 0x72, - 0x72, - 0x71, - 0x71, - 0x6E, - 0x00, - 0x06, - 0x72, - 0x0C, - 0x6E, - 0x04, - 0x72, - 0x00, - 0x08, - 0x6E, - 0x72, - 0x4A, - 0x4A, - 0x63, - 0x63, - 0x60, - 0x60, - 0x04, - 0x63, - 0x00, - 0x06, - 0x4A, - 0x8C, - 0x90, - 0x6D, - 0xAE, - 0x73, - 0x0C, - 0x90, - 0x06, - 0x68, - 0x01, - 0x69, - 0x01, - 0x8D, - 0x0B, - 0x69, - 0x07, - 0x6A, - 0x11, - 0x67, - 0x01, - 0x4E, - 0x06, - 0x67, - 0x05, - 0x8B, - 0x0E, - 0x8A, - 0x01, - 0x89, - 0x01, - 0x8A, - 0x15, - 0x89, - 0x11, - 0x66, - 0x00, - 0x05, - 0x28, - 0x66, - 0x28, - 0x36, - 0x66, - 0x00, - 0x09, - 0x36, - 0x00, - 0x06, - 0x66, - 0x2B, - 0x36, - 0x36, - 0x36, - 0x28, - 0x06, - 0x36, - 0x00, - 0x05, - 0x30, - 0x36, - 0x30, - 0x36, - 0x30, - 0x00, - 0x05, - 0x36, - 0x01, - 0x30, - 0x01, - 0x38, - 0x06, - 0x30, - 0x00, - 0x04, - 0x38, - 0x11, - 0x30, - 0x30, - 0x07, - 0x38, - 0x00, - 0x03, - 0x30, - 0x2C, - 0x1E, - 0x00, - 0x0C, - 0x0B, - 0x01, - 0x07, - 0x01, - 0x07, - 0x05, - 0x0B, - 0x01, - 0x07, - 0x01, - 0x0B, - 0x11, - 0x07, - 0x00, - 0x00, - 0x05, - 0x77, - 0x0C, - 0x74, - 0x0B, - 0x75, - 0x00, - 0x08, - 0x74, - 0x74, - 0x71, - 0x72, - 0x72, - 0x76, - 0x6E, - 0x6E, - 0x05, - 0x72, - 0x00, - 0x05, - 0x77, - 0xB0, - 0x72, - 0x72, - 0x72, - 0x00, - 0x0C, - 0x71, - 0x00, - 0x07, - 0x6E, - 0x71, - 0x71, - 0x72, - 0x6E, - 0x6E, - 0x6E, - 0x00, - 0x04, - 0x72, - 0x04, - 0x6E, - 0x00, - 0x06, - 0x71, - 0x6E, - 0x71, - 0x6E, - 0x71, - 0x6E, - 0x04, - 0x72, - 0x00, - 0x06, - 0x6E, - 0x4A, - 0x63, - 0x5F, - 0x5E, - 0x5D, - 0x08, - 0x5C, - 0x00, - 0x07, - 0x5D, - 0x5E, - 0x60, - 0x63, - 0x4A, - 0x8C, - 0x94, - 0x00, - 0x0B, - 0x90, - 0x00, - 0x03, - 0x68, - 0x68, - 0x68, - 0x00, - 0x04, - 0x69, - 0x01, - 0x8D, - 0x0D, - 0x69, - 0x05, - 0x6A, - 0x11, - 0x67, - 0x01, - 0x4E, - 0x01, - 0x4E, - 0x04, - 0x67, - 0x06, - 0x8B, - 0x0E, - 0x8A, - 0x17, - 0x89, - 0x01, - 0x4D, - 0x0D, - 0x66, - 0x01, - 0x2E, - 0x05, - 0x66, - 0x09, - 0x36, - 0x00, - 0x0A, - 0x2B, - 0x36, - 0x2B, - 0x36, - 0x28, - 0x36, - 0x28, - 0x36, - 0x2B, - 0x66, - 0x05, - 0x36, - 0x00, - 0x09, - 0x30, - 0x36, - 0x30, - 0x30, - 0x36, - 0x36, - 0x36, - 0x30, - 0x36, - 0x00, - 0x08, - 0x30, - 0x00, - 0x04, - 0x38, - 0x11, - 0x30, - 0x30, - 0x07, - 0x38, - 0x00, - 0x03, - 0x2C, - 0x2C, - 0x1E, - 0x00, - 0x14, - 0x0B, - 0x12, - 0x07, - 0x00, - 0x00, - 0x01, - 0x77, - 0x0B, - 0x74, - 0x0F, - 0x75, - 0x00, - 0x0F, - 0x74, - 0x74, - 0x74, - 0x77, - 0x97, - 0x76, - 0x76, - 0x72, - 0x72, - 0x97, - 0x97, - 0x97, - 0x72, - 0x77, - 0xB0, - 0x00, - 0x0E, - 0x71, - 0x00, - 0x10, - 0x72, - 0x72, - 0x71, - 0x6E, - 0x71, - 0x71, - 0x6E, - 0x71, - 0x72, - 0x6E, - 0x6E, - 0x72, - 0x72, - 0x6E, - 0x6E, - 0x71, - 0x05, - 0x6E, - 0x00, - 0x07, - 0x72, - 0x71, - 0x6E, - 0x6E, - 0x6E, - 0x63, - 0x5F, - 0x00, - 0x12, - 0x5C, - 0x00, - 0x03, - 0x60, - 0x63, - 0x8C, - 0x00, - 0x05, - 0x90, - 0x00, - 0x07, - 0x68, - 0x68, - 0x90, - 0x90, - 0x90, - 0x68, - 0x68, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x04, - 0x69, - 0x94, - 0x94, - 0x94, - 0x0B, - 0x69, - 0x00, - 0x05, - 0x6A, - 0x67, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x11, - 0x67, - 0x01, - 0x4E, - 0x09, - 0x8B, - 0x10, - 0x8A, - 0x13, - 0x89, - 0x1A, - 0x66, - 0x08, - 0x36, - 0x00, - 0x17, - 0x66, - 0x36, - 0x30, - 0x36, - 0x30, - 0x36, - 0x2B, - 0x36, - 0x30, - 0x28, - 0x36, - 0x36, - 0x36, - 0x30, - 0x36, - 0x30, - 0x36, - 0x30, - 0x36, - 0x30, - 0x36, - 0x30, - 0x36, - 0x00, - 0x0C, - 0x30, - 0x00, - 0x05, - 0x38, - 0x38, - 0x30, - 0x2C, - 0x38, - 0x00, - 0x04, - 0x2C, - 0x01, - 0x1E, - 0x17, - 0x0B, - 0x00, - 0x03, - 0x07, - 0x07, - 0x07, - 0x00, - 0x04, - 0x0E, - 0x08, - 0x07, - 0x00, - 0x00, - 0x01, - 0x77, - 0x0B, - 0x74, - 0x10, - 0x75, - 0x00, - 0x04, - 0x74, - 0x74, - 0xB0, - 0x97, - 0x04, - 0x72, - 0x00, - 0x09, - 0x97, - 0x97, - 0x97, - 0x72, - 0x77, - 0x71, - 0x71, - 0xB0, - 0xB0, - 0x00, - 0x0B, - 0x71, - 0x00, - 0x09, - 0x72, - 0x72, - 0x72, - 0x71, - 0x71, - 0x6E, - 0x71, - 0x71, - 0x71, - 0x00, - 0x04, - 0x72, - 0x07, - 0x6E, - 0x00, - 0x06, - 0x72, - 0x72, - 0x72, - 0x6E, - 0x63, - 0x5F, - 0x16, - 0x5C, - 0x00, - 0x06, - 0x5F, - 0x63, - 0x8C, - 0x90, - 0x90, - 0x90, - 0x07, - 0x68, - 0x01, - 0x8D, - 0x04, - 0x69, - 0x00, - 0x03, - 0x94, - 0x94, - 0x94, - 0x00, - 0x0B, - 0x69, - 0x01, - 0x6A, - 0x15, - 0x67, - 0x01, - 0x4E, - 0x06, - 0x8B, - 0x01, - 0x4E, - 0x01, - 0x4E, - 0x0B, - 0x8A, - 0x00, - 0x06, - 0x98, - 0x58, - 0x7F, - 0x58, - 0x9A, - 0x8A, - 0x0F, - 0x89, - 0x00, - 0x04, - 0x66, - 0x89, - 0x89, - 0x89, - 0x1A, - 0x66, - 0x09, - 0x36, - 0x00, - 0x07, - 0x28, - 0x36, - 0x2B, - 0x36, - 0x2B, - 0x36, - 0x30, - 0x00, - 0x06, - 0x36, - 0x00, - 0x09, - 0x30, - 0x30, - 0x30, - 0x36, - 0x30, - 0x30, - 0x36, - 0x30, - 0x38, - 0x00, - 0x05, - 0x30, - 0x01, - 0x38, - 0x01, - 0x38, - 0x05, - 0x30, - 0x00, - 0x09, - 0x38, - 0x38, - 0x30, - 0x2C, - 0x2C, - 0x38, - 0x2C, - 0x2C, - 0x2C, - 0x00, - 0x19, - 0x0B, - 0x01, - 0x07, - 0x05, - 0x0E, - 0x08, - 0x07, - 0x00, - 0x00, - 0x01, - 0x77, - 0x10, - 0x74, - 0x0A, - 0x75, - 0x00, - 0x07, - 0x73, - 0x75, - 0x74, - 0x71, - 0x72, - 0x76, - 0x76, - 0x00, - 0x05, - 0x72, - 0x00, - 0x05, - 0x77, - 0x77, - 0x71, - 0xB0, - 0xB0, - 0x00, - 0x0D, - 0x71, - 0x00, - 0x0E, - 0x72, - 0x71, - 0x71, - 0x6E, - 0x71, - 0x71, - 0x6E, - 0x71, - 0x6E, - 0x6E, - 0x6E, - 0x72, - 0x6E, - 0x72, - 0x06, - 0x6E, - 0x00, - 0x03, - 0x71, - 0x63, - 0x5F, - 0x00, - 0x1A, - 0x5C, - 0x00, - 0x04, - 0x5F, - 0x4A, - 0x68, - 0x90, - 0x07, - 0x68, - 0x05, - 0x69, - 0x00, - 0x07, - 0x6B, - 0x6B, - 0x6B, - 0x69, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x07, - 0x69, - 0x00, - 0x05, - 0x6A, - 0x67, - 0x67, - 0x6C, - 0x6C, - 0x00, - 0x11, - 0x67, - 0x07, - 0x8B, - 0x00, - 0x03, - 0x4E, - 0x8A, - 0x4E, - 0x00, - 0x07, - 0x8A, - 0x00, - 0x0B, - 0x9E, - 0xA4, - 0xC6, - 0x88, - 0x45, - 0x46, - 0xFD, - 0x88, - 0x86, - 0xC4, - 0x6C, - 0x00, - 0x0E, - 0x89, - 0x01, - 0x66, - 0x01, - 0x89, - 0x12, - 0x66, - 0x00, - 0x04, - 0x34, - 0x34, - 0x36, - 0x36, - 0x05, - 0x66, - 0x05, - 0x36, - 0x01, - 0x30, - 0x07, - 0x36, - 0x01, - 0x30, - 0x07, - 0x36, - 0x00, - 0x0A, - 0x30, - 0x30, - 0x30, - 0x36, - 0x30, - 0x30, - 0x36, - 0x36, - 0x38, - 0x38, - 0x04, - 0x30, - 0x00, - 0x03, - 0x38, - 0x38, - 0x38, - 0x00, - 0x05, - 0x30, - 0x00, - 0x0A, - 0x38, - 0x38, - 0x30, - 0x2C, - 0x38, - 0x2C, - 0x2C, - 0x1E, - 0x1E, - 0x1E, - 0x0C, - 0x0B, - 0x04, - 0x0E, - 0x09, - 0x0B, - 0x0A, - 0x0E, - 0x03, - 0x07, - 0x00, - 0x00, - 0x11, - 0x74, - 0x00, - 0x03, - 0x75, - 0x75, - 0x73, - 0x00, - 0x06, - 0x75, - 0x00, - 0x12, - 0x73, - 0x73, - 0x73, - 0x95, - 0xB0, - 0x71, - 0x72, - 0x6E, - 0x72, - 0x72, - 0x71, - 0x71, - 0x71, - 0x77, - 0x71, - 0x71, - 0x71, - 0xB0, - 0x11, - 0x71, - 0x00, - 0x06, - 0x6E, - 0x71, - 0x71, - 0x71, - 0x51, - 0x51, - 0x07, - 0x72, - 0x00, - 0x04, - 0x71, - 0x72, - 0x6E, - 0x60, - 0x1E, - 0x5C, - 0x01, - 0x63, - 0x01, - 0x4B, - 0x05, - 0x68, - 0x01, - 0x6D, - 0x01, - 0x6D, - 0x09, - 0x69, - 0x00, - 0x03, - 0x6B, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x69, - 0x04, - 0x6A, - 0x01, - 0x6C, - 0x13, - 0x67, - 0x01, - 0x6C, - 0x06, - 0x8B, - 0x00, - 0x16, - 0x8A, - 0x4E, - 0x4E, - 0x8A, - 0x8A, - 0x4E, - 0x8A, - 0x8A, - 0x8A, - 0x7D, - 0xA6, - 0xFE, - 0xFE, - 0x45, - 0x87, - 0xA6, - 0xA6, - 0xC7, - 0xFE, - 0xFE, - 0xC6, - 0x9E, - 0x0A, - 0x89, - 0x00, - 0x04, - 0x66, - 0x89, - 0x66, - 0x89, - 0x10, - 0x66, - 0x00, - 0x11, - 0x34, - 0x66, - 0x3B, - 0x66, - 0x3B, - 0x36, - 0x36, - 0x34, - 0x28, - 0x66, - 0x66, - 0x66, - 0x28, - 0x36, - 0x2B, - 0x36, - 0x2B, - 0x00, - 0x0E, - 0x36, - 0x05, - 0x30, - 0x00, - 0x04, - 0x38, - 0x38, - 0x36, - 0x36, - 0x0A, - 0x38, - 0x00, - 0x03, - 0x30, - 0x30, - 0x30, - 0x00, - 0x04, - 0x38, - 0x00, - 0x0A, - 0x30, - 0x2C, - 0x2C, - 0x2C, - 0x1E, - 0x1E, - 0x0B, - 0x1D, - 0x1D, - 0x20, - 0x07, - 0x0B, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x0E, - 0x0A, - 0x0B, - 0x09, - 0x0E, - 0x03, - 0x07, - 0x00, - 0x00, - 0x11, - 0x74, - 0x00, - 0x03, - 0x75, - 0x75, - 0x73, - 0x00, - 0x04, - 0x75, - 0x05, - 0x73, - 0x00, - 0x03, - 0x95, - 0x75, - 0x71, - 0x00, - 0x04, - 0x72, - 0x00, - 0x08, - 0x71, - 0x71, - 0x71, - 0x77, - 0x77, - 0x71, - 0x71, - 0xB0, - 0x12, - 0x71, - 0x00, - 0x06, - 0x6E, - 0x71, - 0x6E, - 0x71, - 0x51, - 0x71, - 0x06, - 0x72, - 0x00, - 0x03, - 0x76, - 0x4A, - 0x5F, - 0x00, - 0x20, - 0x5C, - 0x00, - 0x08, - 0x60, - 0x4B, - 0x8D, - 0x68, - 0x68, - 0x68, - 0x6D, - 0x6D, - 0x09, - 0x69, - 0x00, - 0x03, - 0x6B, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x69, - 0x00, - 0x07, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x11, - 0x67, - 0x01, - 0x6C, - 0x01, - 0x6C, - 0x04, - 0x8B, - 0x00, - 0x03, - 0x8A, - 0x4E, - 0x8A, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x11, - 0x8A, - 0x8A, - 0x8B, - 0xC5, - 0xFE, - 0x47, - 0xA5, - 0xC1, - 0x7C, - 0x9D, - 0x9E, - 0x82, - 0xA4, - 0xC7, - 0xFE, - 0xC5, - 0x4F, - 0x00, - 0x06, - 0x89, - 0x00, - 0x07, - 0x66, - 0x89, - 0x66, - 0x89, - 0x89, - 0x4D, - 0x4D, - 0x00, - 0x10, - 0x66, - 0x01, - 0x34, - 0x04, - 0x3B, - 0x00, - 0x0C, - 0x36, - 0x36, - 0x34, - 0x66, - 0x66, - 0x28, - 0x66, - 0x36, - 0x36, - 0x2B, - 0x36, - 0x30, - 0x0F, - 0x36, - 0x04, - 0x30, - 0x00, - 0x04, - 0x38, - 0x38, - 0x36, - 0x36, - 0x0A, - 0x38, - 0x00, - 0x03, - 0x30, - 0x2C, - 0x2C, - 0x00, - 0x04, - 0x38, - 0x00, - 0x0A, - 0x2C, - 0x0B, - 0x38, - 0x2C, - 0x1E, - 0x1E, - 0x0B, - 0x1D, - 0x1D, - 0x20, - 0x07, - 0x0B, - 0x01, - 0x20, - 0x01, - 0x20, - 0x05, - 0x0E, - 0x0A, - 0x0B, - 0x09, - 0x0E, - 0x03, - 0x07, - 0x00, - 0x00, - 0x04, - 0x74, - 0x00, - 0x03, - 0x75, - 0xB1, - 0x75, - 0x00, - 0x05, - 0x74, - 0x0A, - 0x75, - 0x05, - 0x73, - 0x00, - 0x05, - 0x6D, - 0x73, - 0x95, - 0x95, - 0x74, - 0x00, - 0x04, - 0x72, - 0x00, - 0x03, - 0x71, - 0x71, - 0x77, - 0x00, - 0x13, - 0x71, - 0x00, - 0x03, - 0x51, - 0x71, - 0x6E, - 0x00, - 0x04, - 0x71, - 0x00, - 0x0B, - 0x51, - 0x51, - 0x51, - 0x72, - 0x72, - 0x72, - 0x6E, - 0x72, - 0x76, - 0x4A, - 0x5D, - 0x00, - 0x22, - 0x5C, - 0x00, - 0x06, - 0x60, - 0x4A, - 0x6A, - 0x68, - 0x6D, - 0x3D, - 0x0A, - 0x69, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x69, - 0x69, - 0x23, - 0x39, - 0x21, - 0x6A, - 0x6C, - 0x6C, - 0x4E, - 0x4E, - 0x04, - 0x67, - 0x01, - 0x4E, - 0x07, - 0x67, - 0x00, - 0x1B, - 0x8B, - 0x8B, - 0x8B, - 0x67, - 0x6C, - 0x21, - 0x4E, - 0x4E, - 0x8B, - 0x8B, - 0x8B, - 0x4E, - 0x4E, - 0x4E, - 0x8B, - 0x8A, - 0x8A, - 0x8B, - 0x8A, - 0x8B, - 0x6C, - 0x86, - 0xFE, - 0xC6, - 0x4C, - 0x4F, - 0x4F, - 0x00, - 0x04, - 0x89, - 0x00, - 0x04, - 0xA5, - 0xFE, - 0xC7, - 0x56, - 0x06, - 0x89, - 0x00, - 0x05, - 0x4D, - 0x89, - 0x89, - 0x66, - 0x4D, - 0x00, - 0x0F, - 0x66, - 0x00, - 0x15, - 0x34, - 0x36, - 0x36, - 0x34, - 0x34, - 0x34, - 0x66, - 0x66, - 0x34, - 0x34, - 0x36, - 0x36, - 0x36, - 0x66, - 0x66, - 0x2B, - 0x36, - 0x30, - 0x2B, - 0x2B, - 0x2B, - 0x00, - 0x09, - 0x36, - 0x00, - 0x0B, - 0x30, - 0x36, - 0x30, - 0x36, - 0x30, - 0x38, - 0x30, - 0x30, - 0x38, - 0x2C, - 0x30, - 0x00, - 0x04, - 0x38, - 0x00, - 0x05, - 0x2C, - 0x38, - 0x38, - 0x30, - 0x30, - 0x00, - 0x08, - 0x38, - 0x00, - 0x0C, - 0x1E, - 0x1E, - 0x1E, - 0x38, - 0x30, - 0x1E, - 0x1E, - 0x1E, - 0x0B, - 0x1E, - 0x1E, - 0x0B, - 0x05, - 0x1E, - 0x00, - 0x05, - 0x0B, - 0x1E, - 0x1E, - 0x1D, - 0x0E, - 0x00, - 0x12, - 0x0B, - 0x07, - 0x0E, - 0x01, - 0x07, - 0x00, - 0x00, - 0x04, - 0x74, - 0x00, - 0x0B, - 0x75, - 0x75, - 0xB1, - 0x75, - 0x74, - 0x74, - 0x74, - 0x75, - 0x75, - 0x75, - 0x73, - 0x00, - 0x07, - 0x75, - 0x04, - 0x73, - 0x00, - 0x06, - 0x6D, - 0x73, - 0x73, - 0x73, - 0x75, - 0x74, - 0x09, - 0x71, - 0x01, - 0x72, - 0x01, - 0x72, - 0x12, - 0x71, - 0x00, - 0x0E, - 0x6E, - 0x71, - 0x71, - 0x51, - 0x6E, - 0x51, - 0x6E, - 0x71, - 0x72, - 0x72, - 0x72, - 0x76, - 0x4A, - 0x5F, - 0x24, - 0x5C, - 0x00, - 0x04, - 0x5F, - 0x4A, - 0x6D, - 0x6D, - 0x07, - 0x69, - 0x00, - 0x04, - 0x3D, - 0x3D, - 0x3D, - 0x69, - 0x06, - 0x6A, - 0x00, - 0x0A, - 0x74, - 0xC1, - 0xA2, - 0x73, - 0x67, - 0x6C, - 0x98, - 0xA2, - 0xC1, - 0x9F, - 0x04, - 0x67, - 0x00, - 0x3F, - 0x6A, - 0x7E, - 0xC1, - 0x7E, - 0x67, - 0x67, - 0x4E, - 0x4E, - 0x4E, - 0x6B, - 0x83, - 0x84, - 0x84, - 0xC2, - 0x73, - 0x4E, - 0x8A, - 0x4E, - 0x4E, - 0xA3, - 0xC4, - 0xC4, - 0xC4, - 0x83, - 0x94, - 0x8A, - 0x8A, - 0x4F, - 0xA5, - 0x48, - 0x88, - 0x83, - 0x4F, - 0x4F, - 0x89, - 0x8A, - 0x89, - 0x7F, - 0xC6, - 0xFE, - 0xA7, - 0x9E, - 0x89, - 0x9F, - 0x82, - 0x7F, - 0x89, - 0x89, - 0x89, - 0x4D, - 0x66, - 0x4D, - 0x4D, - 0x82, - 0xC4, - 0xC4, - 0x83, - 0x54, - 0x66, - 0x93, - 0x82, - 0x44, - 0x50, - 0x00, - 0x04, - 0x66, - 0x00, - 0x34, - 0x4D, - 0x82, - 0x84, - 0x84, - 0xC2, - 0x43, - 0x66, - 0x66, - 0x66, - 0x2E, - 0x5A, - 0x84, - 0xC4, - 0xC4, - 0x83, - 0x7A, - 0x36, - 0x2B, - 0x36, - 0x2B, - 0x36, - 0x36, - 0x28, - 0x5B, - 0xC3, - 0xC4, - 0x83, - 0x55, - 0x3B, - 0x40, - 0x7F, - 0x5B, - 0x36, - 0x38, - 0x38, - 0x38, - 0x36, - 0x5A, - 0x42, - 0x38, - 0x5A, - 0x41, - 0x42, - 0x42, - 0x41, - 0x44, - 0x5A, - 0x38, - 0x38, - 0x30, - 0x30, - 0x30, - 0x04, - 0x38, - 0x01, - 0x2C, - 0x05, - 0x0B, - 0x01, - 0x30, - 0x05, - 0x1E, - 0x01, - 0x0B, - 0x04, - 0x1E, - 0x00, - 0x07, - 0x1D, - 0x1D, - 0x1D, - 0x1E, - 0x1E, - 0x1E, - 0x1D, - 0x00, - 0x07, - 0x20, - 0x07, - 0x0E, - 0x05, - 0x0B, - 0x07, - 0x0E, - 0x01, - 0x07, - 0x00, - 0x00, - 0x00, - 0x03, - 0x74, - 0x74, - 0x74, - 0x00, - 0x05, - 0x75, - 0x00, - 0x04, - 0x74, - 0x74, - 0x75, - 0x75, - 0x05, - 0x73, - 0x05, - 0x75, - 0x00, - 0x0A, - 0x73, - 0x73, - 0x6D, - 0x73, - 0x6D, - 0x6D, - 0x73, - 0x73, - 0x73, - 0x74, - 0x09, - 0x71, - 0x01, - 0x72, - 0x01, - 0x72, - 0x10, - 0x71, - 0x00, - 0x0F, - 0x51, - 0x6E, - 0x71, - 0x71, - 0x71, - 0x51, - 0x6E, - 0x72, - 0x71, - 0x72, - 0x72, - 0x72, - 0x6E, - 0x4A, - 0x5D, - 0x00, - 0x26, - 0x5C, - 0x00, - 0x03, - 0x60, - 0x4B, - 0x94, - 0x00, - 0x07, - 0x69, - 0x00, - 0x04, - 0x3D, - 0x3D, - 0x3D, - 0x69, - 0x05, - 0x6A, - 0x00, - 0x3E, - 0x39, - 0xA4, - 0x88, - 0x88, - 0xC2, - 0x6C, - 0x4E, - 0xA3, - 0xA7, - 0x88, - 0xA5, - 0x6A, - 0x67, - 0x67, - 0x4E, - 0x73, - 0xC6, - 0x88, - 0x86, - 0x3F, - 0x67, - 0x67, - 0x4E, - 0x7E, - 0xC6, - 0xC7, - 0x47, - 0x48, - 0xA7, - 0xA3, - 0x8A, - 0x4E, - 0xA1, - 0xC5, - 0x88, - 0x47, - 0x48, - 0x48, - 0xC7, - 0x87, - 0xA4, - 0x6D, - 0x4C, - 0x56, - 0xC6, - 0x48, - 0xA7, - 0x84, - 0x82, - 0xC4, - 0xA5, - 0xC6, - 0x88, - 0xFE, - 0x48, - 0xC5, - 0x89, - 0x89, - 0x86, - 0x88, - 0xA6, - 0x91, - 0x04, - 0x89, - 0x00, - 0x41, - 0x54, - 0xC5, - 0xC7, - 0xFF, - 0xFE, - 0x45, - 0xA6, - 0x83, - 0x82, - 0x88, - 0xA6, - 0x7A, - 0x66, - 0x66, - 0x66, - 0x7A, - 0xC5, - 0x88, - 0x46, - 0x47, - 0x45, - 0xC2, - 0x66, - 0x66, - 0x56, - 0xA5, - 0xA7, - 0x47, - 0x48, - 0xFE, - 0x45, - 0x87, - 0xA5, - 0x56, - 0x2B, - 0x36, - 0x2B, - 0x3C, - 0xA5, - 0xA7, - 0x47, - 0xFE, - 0xFD, - 0xA6, - 0x82, - 0x83, - 0xA7, - 0xA6, - 0x41, - 0x38, - 0x38, - 0x38, - 0x40, - 0x87, - 0xC3, - 0x38, - 0xC6, - 0xC4, - 0x86, - 0xA5, - 0xC4, - 0xA7, - 0xC6, - 0x38, - 0x38, - 0x00, - 0x06, - 0x2C, - 0x01, - 0x1E, - 0x08, - 0x0B, - 0x00, - 0x04, - 0x1E, - 0x1E, - 0x0B, - 0x0B, - 0x05, - 0x1E, - 0x00, - 0x08, - 0x1D, - 0x1D, - 0x1D, - 0x1E, - 0x1E, - 0x1D, - 0x1D, - 0x20, - 0x04, - 0x1D, - 0x00, - 0x03, - 0x20, - 0x20, - 0x20, - 0x00, - 0x06, - 0x0E, - 0x05, - 0x0B, - 0x08, - 0x0E, - 0x00, - 0x00, - 0x0C, - 0x75, - 0x05, - 0x73, - 0x00, - 0x03, - 0x75, - 0x75, - 0x75, - 0x00, - 0x06, - 0x73, - 0x01, - 0x6D, - 0x04, - 0x73, - 0x00, - 0x03, - 0x74, - 0x71, - 0x72, - 0x00, - 0x05, - 0x71, - 0x01, - 0x51, - 0x01, - 0x51, - 0x05, - 0x71, - 0x0A, - 0x51, - 0x00, - 0x03, - 0x71, - 0x71, - 0x51, - 0x00, - 0x04, - 0x71, - 0x01, - 0x51, - 0x01, - 0x71, - 0x05, - 0x72, - 0x00, - 0x03, - 0x71, - 0x6E, - 0x5F, - 0x00, - 0x28, - 0x5C, - 0x00, - 0x08, - 0x60, - 0x4B, - 0x3D, - 0x69, - 0x69, - 0x6A, - 0x6A, - 0x6A, - 0x06, - 0x69, - 0x04, - 0x6A, - 0x00, - 0x0B, - 0x39, - 0xA4, - 0xFE, - 0xFE, - 0x84, - 0x67, - 0x67, - 0xC1, - 0x48, - 0xFE, - 0xA5, - 0x00, - 0x04, - 0x67, - 0x00, - 0x1F, - 0xBA, - 0xA6, - 0xFE, - 0xA6, - 0x6B, - 0x8B, - 0x4E, - 0x6A, - 0xC5, - 0xFE, - 0xFE, - 0x46, - 0xC7, - 0xC6, - 0x58, - 0x4E, - 0xA2, - 0x87, - 0xFE, - 0xFE, - 0xC7, - 0x87, - 0x87, - 0xFD, - 0xFE, - 0xFE, - 0x86, - 0x6C, - 0x4F, - 0x6F, - 0xC5, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x4F, - 0x48, - 0xA7, - 0xC5, - 0x96, - 0x89, - 0x4D, - 0xC6, - 0xFE, - 0xA7, - 0x91, - 0x89, - 0x89, - 0x89, - 0x66, - 0xA5, - 0xFE, - 0xFE, - 0xC7, - 0xA6, - 0xA7, - 0xFE, - 0x47, - 0xA6, - 0xFE, - 0xC7, - 0x9D, - 0x66, - 0x66, - 0x66, - 0xA5, - 0xFE, - 0xFE, - 0x48, - 0xC7, - 0x87, - 0x82, - 0x66, - 0x56, - 0xC6, - 0xFE, - 0xFE, - 0xC7, - 0x87, - 0x87, - 0xC7, - 0xFF, - 0xFF, - 0xA6, - 0x9D, - 0x36, - 0x34, - 0xC5, - 0xFE, - 0xFE, - 0x48, - 0x87, - 0xC7, - 0xFE, - 0xC7, - 0xC6, - 0xFE, - 0xA7, - 0x55, - 0x38, - 0x38, - 0x38, - 0x41, - 0x88, - 0xA4, - 0x2C, - 0x87, - 0xC5, - 0xC7, - 0x87, - 0xA5, - 0x47, - 0x87, - 0x30, - 0x30, - 0x00, - 0x05, - 0x2C, - 0x01, - 0x1E, - 0x01, - 0x1E, - 0x08, - 0x0B, - 0x09, - 0x20, - 0x00, - 0x08, - 0x1D, - 0x1D, - 0x1D, - 0x20, - 0x20, - 0x1D, - 0x1D, - 0x1D, - 0x06, - 0x14, - 0x01, - 0x20, - 0x07, - 0x0E, - 0x05, - 0x0B, - 0x06, - 0x0E, - 0x01, - 0x0B, - 0x00, - 0x00, - 0x01, - 0x75, - 0x01, - 0xB1, - 0x04, - 0x75, - 0x00, - 0x06, - 0x74, - 0x75, - 0x73, - 0x75, - 0x75, - 0x75, - 0x13, - 0x73, - 0x00, - 0x03, - 0x74, - 0x71, - 0x72, - 0x00, - 0x04, - 0x71, - 0x00, - 0x03, - 0x51, - 0x51, - 0x51, - 0x00, - 0x05, - 0x71, - 0x09, - 0x51, - 0x04, - 0x71, - 0x01, - 0x51, - 0x06, - 0x71, - 0x04, - 0x72, - 0x00, - 0x03, - 0x6E, - 0x60, - 0x5D, - 0x00, - 0x29, - 0x5C, - 0x00, - 0x07, - 0x63, - 0x68, - 0x69, - 0x69, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x06, - 0x69, - 0x04, - 0x6A, - 0x00, - 0x0B, - 0x39, - 0xA4, - 0x48, - 0x47, - 0xC2, - 0x67, - 0x67, - 0xA2, - 0x46, - 0xFE, - 0xA5, - 0x00, - 0x04, - 0x67, - 0x00, - 0x74, - 0x73, - 0xA6, - 0xFE, - 0xC6, - 0x94, - 0x4E, - 0x4E, - 0x7C, - 0x87, - 0x48, - 0x87, - 0x84, - 0xC1, - 0x7E, - 0x4E, - 0x6F, - 0xC6, - 0x48, - 0x48, - 0xC5, - 0xC1, - 0x7C, - 0x58, - 0xC2, - 0xA5, - 0x45, - 0xC6, - 0x98, - 0x4F, - 0x92, - 0xA5, - 0xFE, - 0xFE, - 0xC7, - 0xA6, - 0x86, - 0xA5, - 0xC4, - 0x80, - 0x89, - 0x89, - 0x66, - 0x66, - 0xC6, - 0xFE, - 0x87, - 0x91, - 0x89, - 0x89, - 0x89, - 0x93, - 0x87, - 0xFE, - 0x87, - 0xC1, - 0x7A, - 0x5B, - 0xC4, - 0x87, - 0xFE, - 0xFE, - 0xA7, - 0x7A, - 0x66, - 0x66, - 0x50, - 0x86, - 0xFE, - 0xC7, - 0xC4, - 0x82, - 0x7F, - 0x3C, - 0x66, - 0xA5, - 0xFE, - 0xFE, - 0x86, - 0x83, - 0x9D, - 0x56, - 0x82, - 0xA5, - 0x88, - 0xA7, - 0x5A, - 0x36, - 0xC2, - 0xFD, - 0xFE, - 0xA7, - 0xC3, - 0x5B, - 0x82, - 0xA5, - 0x47, - 0xFE, - 0xFE, - 0x87, - 0x55, - 0x38, - 0x38, - 0x38, - 0x25, - 0x87, - 0xC4, - 0x22, - 0xC6, - 0xC7, - 0xC6, - 0xC6, - 0x87, - 0xC7, - 0xA6, - 0x0B, - 0x2C, - 0x08, - 0x1E, - 0x07, - 0x0B, - 0x00, - 0x09, - 0x1D, - 0x20, - 0x20, - 0x20, - 0x1D, - 0x1D, - 0x1D, - 0x20, - 0x20, - 0x00, - 0x04, - 0x1D, - 0x01, - 0x20, - 0x09, - 0x14, - 0x00, - 0x03, - 0x1D, - 0x20, - 0x20, - 0x00, - 0x05, - 0x0E, - 0x04, - 0x20, - 0x00, - 0x08, - 0x0E, - 0x0E, - 0x20, - 0x0E, - 0x20, - 0x0E, - 0x20, - 0x0E, - 0x00, - 0x00, - 0x05, - 0x75, - 0x00, - 0x03, - 0x74, - 0x75, - 0x74, - 0x00, - 0x0A, - 0x73, - 0x01, - 0x6D, - 0x07, - 0x73, - 0x01, - 0x6D, - 0x04, - 0x73, - 0x00, - 0x03, - 0x74, - 0x71, - 0x72, - 0x00, - 0x05, - 0x71, - 0x04, - 0x51, - 0x00, - 0x03, - 0x71, - 0x71, - 0x71, - 0x00, - 0x09, - 0x51, - 0x00, - 0x04, - 0x71, - 0x71, - 0x71, - 0x51, - 0x05, - 0x71, - 0x01, - 0x51, - 0x04, - 0x72, - 0x01, - 0x71, - 0x01, - 0x63, - 0x05, - 0x5C, - 0x06, - 0x5E, - 0x01, - 0x5C, - 0x01, - 0x5D, - 0x05, - 0x5E, - 0x07, - 0x5C, - 0x06, - 0x5E, - 0x01, - 0x5D, - 0x01, - 0x5D, - 0x05, - 0x5E, - 0x01, - 0x5D, - 0x04, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x4A, - 0x69, - 0x00, - 0x04, - 0x6A, - 0x06, - 0x69, - 0x00, - 0x0F, - 0x6A, - 0x6A, - 0x67, - 0x67, - 0x67, - 0xA4, - 0x48, - 0x47, - 0x84, - 0x67, - 0x67, - 0xA2, - 0x46, - 0xFE, - 0xA5, - 0x00, - 0x04, - 0x67, - 0x00, - 0x24, - 0xBA, - 0xA6, - 0xFE, - 0xC6, - 0x3F, - 0x4E, - 0x4E, - 0x58, - 0xA6, - 0xFE, - 0xC5, - 0x4E, - 0x4E, - 0x4E, - 0x8A, - 0xC2, - 0x45, - 0xFE, - 0x86, - 0x4E, - 0x8A, - 0x8A, - 0x4F, - 0x4F, - 0x4F, - 0x84, - 0xC4, - 0x4E, - 0x4F, - 0x96, - 0x86, - 0xFE, - 0xA7, - 0xC1, - 0x56, - 0x8A, - 0x05, - 0x89, - 0x00, - 0x0D, - 0x4D, - 0x89, - 0xC6, - 0xFE, - 0x87, - 0x91, - 0x89, - 0x89, - 0x66, - 0x9A, - 0x88, - 0xFE, - 0xC5, - 0x00, - 0x04, - 0x66, - 0x00, - 0x0B, - 0x5A, - 0xA6, - 0xFE, - 0xA7, - 0x7A, - 0x66, - 0x66, - 0x52, - 0xC6, - 0xFE, - 0xC6, - 0x00, - 0x04, - 0x66, - 0x00, - 0x12, - 0x5B, - 0xA7, - 0xFF, - 0xA6, - 0x55, - 0x2B, - 0x36, - 0x30, - 0x36, - 0x2B, - 0x82, - 0xC4, - 0x54, - 0x36, - 0xC5, - 0xFE, - 0x46, - 0x84, - 0x04, - 0x36, - 0x00, - 0x14, - 0xC4, - 0x45, - 0xFE, - 0x87, - 0x55, - 0x36, - 0x36, - 0x41, - 0x82, - 0xC7, - 0xA5, - 0x43, - 0xC6, - 0xFE, - 0x84, - 0xC4, - 0xFE, - 0x46, - 0xA6, - 0x1B, - 0x09, - 0x1E, - 0x01, - 0x0B, - 0x01, - 0x0B, - 0x04, - 0x20, - 0x00, - 0x03, - 0x0E, - 0x0E, - 0x0E, - 0x00, - 0x05, - 0x14, - 0x00, - 0x07, - 0x20, - 0x20, - 0x14, - 0x14, - 0x14, - 0x0E, - 0x0E, - 0x00, - 0x0B, - 0x14, - 0x06, - 0x0E, - 0x00, - 0x0C, - 0x20, - 0x20, - 0x20, - 0x0E, - 0x20, - 0x0E, - 0x20, - 0x20, - 0x20, - 0x0E, - 0x0E, - 0x0E, - 0x00, - 0x00, - 0x01, - 0x75, - 0x01, - 0x73, - 0x06, - 0x75, - 0x01, - 0x73, - 0x01, - 0x75, - 0x0A, - 0x73, - 0x00, - 0x05, - 0x6D, - 0x73, - 0x73, - 0x73, - 0x6D, - 0x00, - 0x04, - 0x73, - 0x00, - 0x03, - 0x6D, - 0x73, - 0x75, - 0x00, - 0x07, - 0x71, - 0x04, - 0x51, - 0x00, - 0x03, - 0x71, - 0x71, - 0x71, - 0x00, - 0x09, - 0x51, - 0x01, - 0x71, - 0x01, - 0x51, - 0x06, - 0x71, - 0x00, - 0x08, - 0x51, - 0x71, - 0x72, - 0x72, - 0x71, - 0x51, - 0x6E, - 0x5F, - 0x04, - 0x5C, - 0x01, - 0x5D, - 0x01, - 0x65, - 0x04, - 0x7B, - 0x00, - 0x03, - 0x70, - 0x62, - 0x65, - 0x00, - 0x05, - 0x7B, - 0x01, - 0x64, - 0x05, - 0x5C, - 0x01, - 0x5D, - 0x01, - 0x65, - 0x05, - 0x7B, - 0x01, - 0x65, - 0x01, - 0x62, - 0x05, - 0x7B, - 0x01, - 0x64, - 0x01, - 0x5D, - 0x04, - 0x5C, - 0x00, - 0x03, - 0x60, - 0x4B, - 0x39, - 0x00, - 0x0B, - 0x6A, - 0x00, - 0x27, - 0x67, - 0x67, - 0x67, - 0xA4, - 0xFE, - 0x47, - 0x84, - 0x67, - 0x67, - 0xA2, - 0x46, - 0xFE, - 0xA5, - 0x4E, - 0x67, - 0x67, - 0x67, - 0x73, - 0xA6, - 0xFE, - 0xC6, - 0x6F, - 0x4E, - 0x4E, - 0x7C, - 0x87, - 0xFE, - 0xA5, - 0x8A, - 0x4E, - 0x8A, - 0x4E, - 0xA5, - 0xFE, - 0x46, - 0xC2, - 0x4E, - 0x4E, - 0x8A, - 0x00, - 0x08, - 0x4F, - 0x00, - 0x08, - 0x80, - 0xA7, - 0xFD, - 0x86, - 0x86, - 0xC5, - 0xC4, - 0x9A, - 0x05, - 0x89, - 0x00, - 0x47, - 0x86, - 0xFE, - 0x87, - 0x91, - 0x89, - 0x66, - 0x66, - 0x89, - 0xA6, - 0xFE, - 0x87, - 0x56, - 0x66, - 0x66, - 0x66, - 0x28, - 0xC5, - 0xFE, - 0xA7, - 0x7A, - 0x66, - 0x66, - 0x4F, - 0xC6, - 0xFE, - 0x86, - 0x52, - 0x28, - 0x36, - 0x36, - 0x84, - 0x48, - 0x48, - 0xA4, - 0x36, - 0x36, - 0x2B, - 0x36, - 0x2B, - 0x36, - 0x36, - 0x36, - 0x2B, - 0x93, - 0xA6, - 0xFE, - 0xA6, - 0x55, - 0x30, - 0x36, - 0x30, - 0x30, - 0x36, - 0x86, - 0xFE, - 0x87, - 0x55, - 0x36, - 0x38, - 0x83, - 0xA6, - 0xA7, - 0xA7, - 0xC5, - 0x86, - 0xA7, - 0x42, - 0x44, - 0x87, - 0x87, - 0x86, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x20, - 0x01, - 0x0E, - 0x15, - 0x14, - 0x07, - 0x1D, - 0x05, - 0x14, - 0x04, - 0x20, - 0x00, - 0x0B, - 0x0E, - 0x0E, - 0x0E, - 0x20, - 0x20, - 0x0E, - 0x20, - 0x0E, - 0x0E, - 0x0E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x08, - 0x75, - 0x00, - 0x03, - 0x73, - 0x73, - 0x75, - 0x00, - 0x06, - 0x73, - 0x00, - 0x0F, - 0x6D, - 0x73, - 0x6D, - 0x73, - 0x6D, - 0x73, - 0x6D, - 0x73, - 0x6D, - 0x73, - 0x73, - 0x73, - 0x6D, - 0x73, - 0x75, - 0x00, - 0x07, - 0x71, - 0x04, - 0x51, - 0x01, - 0x71, - 0x01, - 0x71, - 0x0A, - 0x51, - 0x00, - 0x03, - 0x71, - 0x71, - 0x51, - 0x00, - 0x07, - 0x71, - 0x00, - 0x05, - 0x72, - 0x71, - 0x71, - 0x71, - 0x63, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5D, - 0x85, - 0x00, - 0x04, - 0x45, - 0x00, - 0x03, - 0x88, - 0x70, - 0x7B, - 0x00, - 0x05, - 0x45, - 0x00, - 0x08, - 0xC6, - 0x5F, - 0x5D, - 0x49, - 0x5C, - 0x5E, - 0x64, - 0xA6, - 0x04, - 0x45, - 0x00, - 0x0B, - 0x88, - 0x70, - 0x7B, - 0x88, - 0x45, - 0x45, - 0x45, - 0xC7, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x04, - 0x5C, - 0x01, - 0x4A, - 0x0B, - 0x6A, - 0x04, - 0x67, - 0x00, - 0x21, - 0xA4, - 0xFE, - 0x46, - 0x84, - 0x67, - 0x67, - 0xA2, - 0x46, - 0xFE, - 0xA5, - 0x4E, - 0x4E, - 0x67, - 0x6C, - 0x73, - 0xA6, - 0xFE, - 0xC6, - 0x6F, - 0x4E, - 0x4E, - 0x7C, - 0xA6, - 0x48, - 0xC5, - 0x4E, - 0x8A, - 0x4E, - 0x4E, - 0xC5, - 0xFE, - 0x87, - 0xA3, - 0x00, - 0x06, - 0x6F, - 0x00, - 0x59, - 0x6C, - 0x52, - 0x4F, - 0x4F, - 0x4F, - 0x84, - 0x88, - 0xFE, - 0xFF, - 0x46, - 0xFE, - 0xFE, - 0xC6, - 0x44, - 0x89, - 0x89, - 0x89, - 0x66, - 0xC6, - 0xFE, - 0x87, - 0x91, - 0x89, - 0x66, - 0x66, - 0x66, - 0xA4, - 0x48, - 0xFE, - 0xC6, - 0x83, - 0x9D, - 0x89, - 0x28, - 0xC5, - 0xFE, - 0xA7, - 0x7A, - 0x66, - 0x66, - 0x4F, - 0xC6, - 0xFE, - 0xC6, - 0x52, - 0x36, - 0x66, - 0x36, - 0xA4, - 0xFE, - 0xC7, - 0x83, - 0x50, - 0x40, - 0x52, - 0x40, - 0x93, - 0x3C, - 0x52, - 0x3C, - 0x36, - 0x5A, - 0x87, - 0xFE, - 0x86, - 0x36, - 0x30, - 0x30, - 0x36, - 0x30, - 0x36, - 0x86, - 0xFE, - 0x87, - 0x55, - 0x36, - 0x36, - 0x43, - 0x83, - 0x82, - 0x82, - 0x44, - 0x5A, - 0x5B, - 0x30, - 0x38, - 0x5B, - 0x44, - 0x59, - 0x00, - 0x0A, - 0x1E, - 0x01, - 0x20, - 0x01, - 0x0E, - 0x15, - 0x14, - 0x07, - 0x1D, - 0x05, - 0x14, - 0x08, - 0x20, - 0x00, - 0x07, - 0x0E, - 0x20, - 0x0E, - 0x20, - 0x0E, - 0x0E, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x75, - 0x75, - 0x75, - 0x73, - 0x75, - 0x73, - 0x73, - 0x73, - 0x75, - 0x73, - 0x73, - 0x75, - 0x10, - 0x73, - 0x00, - 0x05, - 0x6D, - 0x6D, - 0x6D, - 0x75, - 0x51, - 0x00, - 0x06, - 0x71, - 0x10, - 0x51, - 0x00, - 0x04, - 0x71, - 0x71, - 0x71, - 0x51, - 0x06, - 0x71, - 0x00, - 0x05, - 0x51, - 0x71, - 0x71, - 0x4A, - 0x5F, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x0F, - 0x45, - 0x70, - 0x5F, - 0xA6, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x81, - 0x60, - 0x5C, - 0x5C, - 0x5E, - 0x81, - 0x00, - 0x05, - 0xFE, - 0x00, - 0x0B, - 0xC6, - 0x60, - 0x81, - 0x47, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x04, - 0x5C, - 0x01, - 0x5F, - 0x01, - 0x4B, - 0x09, - 0x6A, - 0x00, - 0x60, - 0x67, - 0x67, - 0x4E, - 0x6C, - 0x4E, - 0xA4, - 0xFE, - 0x47, - 0x84, - 0x67, - 0x67, - 0xA2, - 0x46, - 0xFE, - 0xA5, - 0x67, - 0x67, - 0x67, - 0x4E, - 0x9E, - 0xA6, - 0xFE, - 0xC6, - 0x6F, - 0x4E, - 0x4E, - 0x7C, - 0x87, - 0x48, - 0xC5, - 0x33, - 0x4E, - 0x8A, - 0x4E, - 0xC5, - 0xFE, - 0x45, - 0xC6, - 0x86, - 0xC6, - 0x86, - 0xC6, - 0x86, - 0x86, - 0xC6, - 0xC5, - 0x3F, - 0x4F, - 0x83, - 0x45, - 0xFF, - 0xA6, - 0x84, - 0xC1, - 0xA5, - 0xC7, - 0xFE, - 0xC6, - 0x9A, - 0x89, - 0x89, - 0x89, - 0xC6, - 0x48, - 0x87, - 0x93, - 0x89, - 0x66, - 0x66, - 0x66, - 0x89, - 0xC5, - 0x46, - 0xFE, - 0x47, - 0x87, - 0xC5, - 0xA5, - 0xA6, - 0xFE, - 0xA7, - 0x7A, - 0x66, - 0x66, - 0x4F, - 0xC6, - 0xFF, - 0x86, - 0x54, - 0x36, - 0x36, - 0x30, - 0xA4, - 0xFE, - 0x46, - 0xC6, - 0x07, - 0x86, - 0x00, - 0x10, - 0xC5, - 0x59, - 0x5A, - 0x87, - 0xFE, - 0xC5, - 0x30, - 0x36, - 0x30, - 0x30, - 0x30, - 0x3B, - 0x86, - 0xFE, - 0x87, - 0x55, - 0x07, - 0x30, - 0x05, - 0x2C, - 0x04, - 0x1E, - 0x09, - 0x1D, - 0x04, - 0x14, - 0x01, - 0x10, - 0x0F, - 0x14, - 0x0E, - 0x1D, - 0x00, - 0x07, - 0x14, - 0x14, - 0x0E, - 0x14, - 0x0E, - 0x0E, - 0x0E, - 0x00, - 0x04, - 0x14, - 0x00, - 0x04, - 0x0E, - 0x20, - 0x20, - 0x20, - 0x00, - 0x00, - 0x00, - 0x03, - 0x75, - 0x75, - 0x75, - 0x00, - 0x07, - 0x73, - 0x01, - 0x75, - 0x11, - 0x73, - 0x00, - 0x09, - 0x6D, - 0x6D, - 0x6D, - 0x73, - 0x51, - 0x51, - 0x71, - 0x71, - 0x71, - 0x00, - 0x12, - 0x51, - 0x00, - 0x03, - 0x71, - 0x71, - 0x51, - 0x00, - 0x06, - 0x71, - 0x00, - 0x05, - 0x51, - 0x71, - 0x71, - 0x51, - 0x63, - 0x00, - 0x05, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x05, - 0x88, - 0x7B, - 0x60, - 0x7B, - 0x46, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x0F, - 0x87, - 0x64, - 0x5E, - 0x5E, - 0x65, - 0x88, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0xC7, - 0x70, - 0x60, - 0x81, - 0x45, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x03, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x05, - 0x5C, - 0x01, - 0x4A, - 0x09, - 0x6A, - 0x00, - 0x0F, - 0x6C, - 0x4E, - 0x67, - 0x67, - 0x4E, - 0xA4, - 0x48, - 0x47, - 0x84, - 0x67, - 0x67, - 0xA2, - 0x46, - 0xFE, - 0xA5, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x30, - 0xB8, - 0xA6, - 0xFE, - 0xC6, - 0x6F, - 0x4E, - 0x8A, - 0x7C, - 0xA6, - 0xFE, - 0xC5, - 0x33, - 0x8A, - 0x4E, - 0x4F, - 0xC5, - 0xFE, - 0xFF, - 0x48, - 0x47, - 0x48, - 0x48, - 0x47, - 0x47, - 0xFE, - 0xFE, - 0x87, - 0x7C, - 0x4F, - 0x86, - 0xFE, - 0xA7, - 0x58, - 0x89, - 0x89, - 0x89, - 0xA4, - 0xFE, - 0x48, - 0x84, - 0x89, - 0x89, - 0x89, - 0xC6, - 0xFE, - 0xA7, - 0x89, - 0x89, - 0x05, - 0x66, - 0x00, - 0x04, - 0xC2, - 0xC5, - 0xA7, - 0x46, - 0x04, - 0xFE, - 0x00, - 0x27, - 0xA7, - 0x7A, - 0x66, - 0x66, - 0x4F, - 0xC6, - 0xFE, - 0xC6, - 0x52, - 0x36, - 0x2B, - 0x2B, - 0xA4, - 0xFE, - 0xFE, - 0x48, - 0x47, - 0x48, - 0x48, - 0x48, - 0x47, - 0xFE, - 0xFE, - 0x45, - 0x80, - 0x52, - 0xA6, - 0xFE, - 0x86, - 0x50, - 0x30, - 0x30, - 0x36, - 0x30, - 0x50, - 0x86, - 0x48, - 0x87, - 0x41, - 0x00, - 0x07, - 0x30, - 0x01, - 0x2F, - 0x01, - 0x2C, - 0x05, - 0x1A, - 0x00, - 0x04, - 0x1E, - 0x1E, - 0x1B, - 0x1B, - 0x0A, - 0x1D, - 0x00, - 0x03, - 0x14, - 0x14, - 0x14, - 0x00, - 0x1C, - 0x1D, - 0x00, - 0x0F, - 0x14, - 0x14, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x14, - 0x0E, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x0E, - 0x14, - 0x0E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x75, - 0x75, - 0x75, - 0x00, - 0x06, - 0x73, - 0x01, - 0x75, - 0x12, - 0x73, - 0x04, - 0x6D, - 0x00, - 0x05, - 0x75, - 0x51, - 0x71, - 0x71, - 0x71, - 0x00, - 0x13, - 0x51, - 0x07, - 0x71, - 0x00, - 0x06, - 0x51, - 0x71, - 0x71, - 0x51, - 0x6E, - 0x5F, - 0x05, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x05, - 0xC7, - 0x70, - 0x60, - 0x61, - 0x85, - 0x00, - 0x05, - 0xFE, - 0x00, - 0x04, - 0x81, - 0x60, - 0x5E, - 0x85, - 0x04, - 0xFE, - 0x00, - 0x0D, - 0x48, - 0x85, - 0x5E, - 0x60, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x05, - 0x5C, - 0x01, - 0x60, - 0x01, - 0x69, - 0x08, - 0x6A, - 0x04, - 0x6C, - 0x00, - 0x3E, - 0x4E, - 0xA4, - 0xFE, - 0x47, - 0x84, - 0x67, - 0x67, - 0xA2, - 0x46, - 0xFE, - 0xA5, - 0x4E, - 0x4E, - 0x4E, - 0x8B, - 0x3F, - 0xA6, - 0xFE, - 0xC6, - 0x6F, - 0x4E, - 0x4E, - 0x7C, - 0x87, - 0xFE, - 0xC5, - 0x4E, - 0x4E, - 0x8B, - 0x4C, - 0xA5, - 0xFE, - 0x46, - 0xA4, - 0x83, - 0xC2, - 0xC2, - 0xC2, - 0x83, - 0x87, - 0xFE, - 0xC6, - 0x7A, - 0x52, - 0xA6, - 0xFE, - 0xC5, - 0x4F, - 0x89, - 0x89, - 0x89, - 0x82, - 0x88, - 0xFE, - 0xA4, - 0x89, - 0x89, - 0x89, - 0x86, - 0xFE, - 0x47, - 0xC4, - 0x07, - 0x66, - 0x00, - 0x31, - 0x89, - 0x5B, - 0x83, - 0xC4, - 0xA5, - 0x87, - 0xFE, - 0xA7, - 0x7A, - 0x66, - 0x66, - 0x4F, - 0xC6, - 0x48, - 0xC6, - 0x54, - 0x66, - 0x2B, - 0x2B, - 0xC3, - 0x48, - 0xFE, - 0xA5, - 0xC1, - 0x83, - 0x83, - 0x83, - 0xC1, - 0xC6, - 0xFE, - 0x87, - 0x59, - 0x36, - 0x86, - 0xFE, - 0x87, - 0x59, - 0x30, - 0x36, - 0x30, - 0x30, - 0x3B, - 0x86, - 0xFE, - 0x87, - 0x41, - 0x30, - 0x30, - 0x2F, - 0x00, - 0x04, - 0x30, - 0x01, - 0x2F, - 0x01, - 0x2F, - 0x05, - 0x1A, - 0x04, - 0x1B, - 0x08, - 0x1D, - 0x05, - 0x1B, - 0x1C, - 0x1D, - 0x00, - 0x03, - 0x14, - 0x14, - 0x14, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x08, - 0x14, - 0x0E, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x14, - 0x14, - 0x00, - 0x00, - 0x00, - 0x08, - 0x75, - 0x75, - 0x73, - 0x75, - 0x73, - 0x73, - 0x73, - 0x75, - 0x10, - 0x73, - 0x07, - 0x6D, - 0x00, - 0x05, - 0x73, - 0x73, - 0x51, - 0x71, - 0x71, - 0x00, - 0x0A, - 0x51, - 0x01, - 0x71, - 0x01, - 0x71, - 0x05, - 0x51, - 0x00, - 0x04, - 0x71, - 0x71, - 0x71, - 0x51, - 0x05, - 0x71, - 0x00, - 0x06, - 0x51, - 0x71, - 0x51, - 0x71, - 0x71, - 0x4A, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x1F, - 0xC7, - 0x7B, - 0x5E, - 0x5E, - 0x70, - 0x88, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x88, - 0x64, - 0x65, - 0xC7, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x88, - 0x65, - 0x5E, - 0x60, - 0x81, - 0x46, - 0xFE, - 0xFE, - 0xFE, - 0x47, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x05, - 0x5C, - 0x01, - 0x5E, - 0x01, - 0x4B, - 0x0A, - 0x6A, - 0x00, - 0x41, - 0x4E, - 0x67, - 0x4E, - 0xA4, - 0xFE, - 0x46, - 0x84, - 0x67, - 0x4E, - 0xA3, - 0xFD, - 0x48, - 0x87, - 0xC1, - 0x4E, - 0x4E, - 0x3A, - 0x3F, - 0x87, - 0xFE, - 0xC6, - 0x6F, - 0x4F, - 0x4F, - 0x98, - 0xA6, - 0xFE, - 0xA5, - 0x4E, - 0x4C, - 0x4F, - 0x4C, - 0xC2, - 0x45, - 0x48, - 0xA4, - 0x4F, - 0x4F, - 0x4F, - 0x4C, - 0x5A, - 0xA7, - 0xFE, - 0xA5, - 0x4D, - 0x4C, - 0xA6, - 0xFE, - 0x86, - 0x4F, - 0x4F, - 0x4F, - 0x89, - 0x83, - 0xC7, - 0xFF, - 0xC4, - 0x89, - 0x89, - 0x66, - 0xC6, - 0xFE, - 0xFE, - 0xC7, - 0xC3, - 0x00, - 0x0B, - 0x66, - 0x00, - 0x12, - 0xC5, - 0xFE, - 0xA7, - 0x7A, - 0x66, - 0x36, - 0x36, - 0xC6, - 0xFE, - 0x86, - 0x66, - 0x36, - 0x36, - 0x36, - 0x5B, - 0x87, - 0x48, - 0xC5, - 0x05, - 0x36, - 0x00, - 0x09, - 0xA6, - 0xFF, - 0x86, - 0x50, - 0x36, - 0xA4, - 0xFE, - 0xFE, - 0xC4, - 0x00, - 0x04, - 0x30, - 0x00, - 0x16, - 0x2C, - 0x86, - 0xFE, - 0x87, - 0x41, - 0x30, - 0x30, - 0x2C, - 0x2F, - 0x2C, - 0x2F, - 0x2C, - 0x2F, - 0x2F, - 0x1E, - 0x1E, - 0x1E, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x09, - 0x1D, - 0x01, - 0x29, - 0x01, - 0x29, - 0x13, - 0x1D, - 0x01, - 0x32, - 0x04, - 0x14, - 0x07, - 0x1D, - 0x01, - 0x14, - 0x01, - 0x0E, - 0x07, - 0x14, - 0x00, - 0x06, - 0x0E, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x14, - 0x00, - 0x00, - 0x00, - 0x09, - 0x73, - 0x73, - 0x75, - 0x73, - 0x73, - 0x75, - 0x73, - 0x73, - 0x75, - 0x00, - 0x0F, - 0x73, - 0x08, - 0x6D, - 0x00, - 0x04, - 0x73, - 0x51, - 0x74, - 0x71, - 0x0A, - 0x51, - 0x01, - 0x71, - 0x01, - 0x71, - 0x05, - 0x51, - 0x04, - 0x71, - 0x00, - 0x05, - 0x51, - 0x71, - 0x71, - 0x71, - 0x51, - 0x00, - 0x05, - 0x71, - 0x01, - 0x63, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x07, - 0x88, - 0x70, - 0x5E, - 0x5D, - 0x5E, - 0x85, - 0x48, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x14, - 0x85, - 0x85, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x48, - 0x85, - 0x60, - 0x5D, - 0x5E, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x05, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x63, - 0x21, - 0x00, - 0x09, - 0x6A, - 0x00, - 0x81, - 0x67, - 0x67, - 0x4E, - 0xA4, - 0xFE, - 0x47, - 0x84, - 0x4E, - 0x4E, - 0xA2, - 0xFD, - 0xFE, - 0x48, - 0xA7, - 0xA4, - 0x7C, - 0x7C, - 0xA4, - 0x46, - 0xFE, - 0x86, - 0x6A, - 0x6C, - 0x7D, - 0xC1, - 0x87, - 0xFE, - 0xC5, - 0x7D, - 0x7F, - 0x7C, - 0x4F, - 0x6F, - 0xC6, - 0x48, - 0xC7, - 0x84, - 0x4E, - 0x2D, - 0x7C, - 0x86, - 0xFE, - 0x45, - 0x83, - 0x4D, - 0x4D, - 0xC5, - 0xFE, - 0x45, - 0x84, - 0x4F, - 0x4F, - 0x9D, - 0xC5, - 0xFE, - 0x46, - 0xA4, - 0x5B, - 0x96, - 0x89, - 0xC6, - 0x48, - 0xC7, - 0xFE, - 0x45, - 0xC5, - 0x83, - 0x9D, - 0x91, - 0xA5, - 0xA5, - 0x82, - 0x9A, - 0x52, - 0x54, - 0x83, - 0x88, - 0xFE, - 0xA6, - 0x52, - 0x66, - 0x59, - 0x44, - 0xC6, - 0xFE, - 0xC6, - 0x44, - 0x5A, - 0x56, - 0x66, - 0x36, - 0xC5, - 0x48, - 0xFD, - 0xA4, - 0x52, - 0x34, - 0x55, - 0xA5, - 0x48, - 0x47, - 0xC3, - 0x30, - 0x30, - 0x5A, - 0x87, - 0xFE, - 0xC7, - 0xC4, - 0x43, - 0x41, - 0x43, - 0x83, - 0x87, - 0xFE, - 0x87, - 0x41, - 0x30, - 0x30, - 0x2C, - 0x2F, - 0x2C, - 0x2F, - 0x2C, - 0x2F, - 0x2F, - 0x1E, - 0x1E, - 0x1E, - 0x00, - 0x05, - 0x1B, - 0x09, - 0x1D, - 0x01, - 0x29, - 0x01, - 0x29, - 0x13, - 0x1D, - 0x01, - 0x32, - 0x04, - 0x14, - 0x07, - 0x1D, - 0x00, - 0x03, - 0x14, - 0x14, - 0x14, - 0x00, - 0x06, - 0x0E, - 0x00, - 0x06, - 0x14, - 0x14, - 0x0E, - 0x14, - 0x14, - 0x14, - 0x00, - 0x00, - 0x00, - 0x07, - 0x73, - 0x75, - 0x73, - 0x73, - 0x75, - 0x73, - 0x75, - 0x00, - 0x11, - 0x73, - 0x00, - 0x05, - 0x6D, - 0x6D, - 0x6D, - 0xAE, - 0xAE, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x03, - 0x73, - 0x74, - 0x71, - 0x00, - 0x0A, - 0x51, - 0x04, - 0x71, - 0x00, - 0x12, - 0x51, - 0x51, - 0x51, - 0x71, - 0x71, - 0x71, - 0x51, - 0x71, - 0x71, - 0x71, - 0x51, - 0x71, - 0x71, - 0x51, - 0x71, - 0x71, - 0x71, - 0x5F, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x07, - 0x88, - 0x7B, - 0x5E, - 0x5C, - 0x5E, - 0x65, - 0x88, - 0x00, - 0x04, - 0xFE, - 0x01, - 0x46, - 0x01, - 0x47, - 0x04, - 0xFE, - 0x00, - 0x07, - 0x87, - 0x62, - 0x5E, - 0x49, - 0x5E, - 0x81, - 0x45, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x03, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x06, - 0x5C, - 0x01, - 0x60, - 0x0A, - 0x6A, - 0x00, - 0x7A, - 0x6C, - 0x6C, - 0x6C, - 0xA4, - 0x48, - 0xFF, - 0x84, - 0x4E, - 0x4E, - 0xA2, - 0x47, - 0xFE, - 0xA6, - 0x46, - 0xFE, - 0xA7, - 0xA6, - 0x46, - 0xFE, - 0xFE, - 0xA4, - 0x33, - 0xC1, - 0x87, - 0xC7, - 0x47, - 0xFE, - 0xFD, - 0xA7, - 0x88, - 0x86, - 0x9D, - 0x4C, - 0x83, - 0xA7, - 0xFE, - 0x45, - 0x86, - 0xC5, - 0xA6, - 0xFE, - 0xFE, - 0xA5, - 0x4F, - 0x4D, - 0x4D, - 0x44, - 0x87, - 0xFE, - 0xC7, - 0xC5, - 0xA4, - 0xC6, - 0x48, - 0x48, - 0xFE, - 0x45, - 0x88, - 0xC4, - 0x89, - 0xC6, - 0xFE, - 0xC5, - 0xA5, - 0xFE, - 0xFE, - 0x45, - 0xC5, - 0x56, - 0x88, - 0xFE, - 0xC7, - 0x87, - 0x86, - 0xC6, - 0x45, - 0xFE, - 0xFE, - 0xA5, - 0x28, - 0x9D, - 0xA6, - 0x88, - 0x47, - 0xFE, - 0x47, - 0xA7, - 0x88, - 0xA6, - 0x5A, - 0x36, - 0x56, - 0xA6, - 0xFE, - 0x47, - 0x86, - 0xA5, - 0xA6, - 0xFF, - 0xFE, - 0x86, - 0x37, - 0x38, - 0x36, - 0x36, - 0xC2, - 0xC7, - 0xFE, - 0x48, - 0x87, - 0xC6, - 0x87, - 0xFD, - 0xFE, - 0xFE, - 0x87, - 0x41, - 0x30, - 0x30, - 0x2C, - 0x2C, - 0x1A, - 0x04, - 0x1E, - 0x00, - 0x03, - 0x1D, - 0x1D, - 0x1D, - 0x00, - 0x04, - 0x1B, - 0x0A, - 0x1D, - 0x01, - 0x32, - 0x01, - 0x32, - 0x07, - 0x1D, - 0x05, - 0x1B, - 0x07, - 0x1D, - 0x01, - 0x32, - 0x04, - 0x14, - 0x01, - 0x1D, - 0x01, - 0x1D, - 0x0F, - 0x14, - 0x00, - 0x05, - 0x0E, - 0x0E, - 0x14, - 0x14, - 0x14, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x75, - 0x73, - 0x73, - 0x75, - 0x12, - 0x73, - 0x04, - 0x6D, - 0x00, - 0x03, - 0x3F, - 0xAE, - 0x3F, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x04, - 0x73, - 0x75, - 0x74, - 0x75, - 0x09, - 0x51, - 0x04, - 0x71, - 0x01, - 0x51, - 0x01, - 0x51, - 0x07, - 0x71, - 0x00, - 0x09, - 0x51, - 0x71, - 0x71, - 0x51, - 0x71, - 0x71, - 0x71, - 0x4A, - 0x5E, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x08, - 0x45, - 0x70, - 0x5E, - 0x5C, - 0x5C, - 0x5F, - 0x81, - 0x48, - 0x08, - 0xFE, - 0x00, - 0x0F, - 0x48, - 0x81, - 0x60, - 0x5C, - 0x49, - 0x60, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x06, - 0x5C, - 0x01, - 0x60, - 0x01, - 0x4B, - 0x09, - 0x6A, - 0x00, - 0x2B, - 0x4E, - 0x67, - 0x4E, - 0xA4, - 0x46, - 0x45, - 0x84, - 0x4E, - 0x4E, - 0xA3, - 0x45, - 0x88, - 0xA3, - 0xC4, - 0x87, - 0xFE, - 0xFE, - 0x48, - 0x46, - 0xC5, - 0xB8, - 0x8A, - 0xC2, - 0xC7, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0xFE, - 0xC6, - 0x56, - 0x4F, - 0x4C, - 0x83, - 0xC6, - 0x48, - 0xFE, - 0x48, - 0xFE, - 0xC7, - 0xA5, - 0x54, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x36, - 0x82, - 0xC6, - 0x48, - 0xFE, - 0xFE, - 0x48, - 0xC7, - 0xC5, - 0xC5, - 0xA7, - 0x46, - 0xC2, - 0x66, - 0x86, - 0x47, - 0xC4, - 0x89, - 0xA5, - 0xC7, - 0xFE, - 0xA5, - 0x52, - 0xA5, - 0x87, - 0x48, - 0xFE, - 0xFE, - 0x48, - 0xFE, - 0x45, - 0xC5, - 0x7A, - 0x66, - 0x59, - 0x87, - 0xFF, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x48, - 0xA7, - 0x44, - 0x2B, - 0x36, - 0x5B, - 0x86, - 0x47, - 0xFE, - 0xFE, - 0xFF, - 0x45, - 0xC5, - 0x57, - 0x05, - 0x36, - 0x00, - 0x10, - 0x83, - 0xC6, - 0x46, - 0xFE, - 0xFF, - 0xFF, - 0xC7, - 0xC7, - 0xFE, - 0x87, - 0x41, - 0x30, - 0x30, - 0x2C, - 0x1A, - 0x1A, - 0x04, - 0x1E, - 0x1A, - 0x1D, - 0x00, - 0x04, - 0x14, - 0x10, - 0x14, - 0x10, - 0x0E, - 0x14, - 0x01, - 0x31, - 0x05, - 0x14, - 0x00, - 0x03, - 0x06, - 0x14, - 0x06, - 0x00, - 0x0C, - 0x14, - 0x00, - 0x00, - 0x01, - 0x73, - 0x01, - 0x75, - 0x04, - 0x73, - 0x01, - 0x75, - 0x0F, - 0x73, - 0x04, - 0x6D, - 0x00, - 0x03, - 0x3F, - 0x3F, - 0x98, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x04, - 0x75, - 0x75, - 0x51, - 0x75, - 0x08, - 0x51, - 0x04, - 0x71, - 0x00, - 0x03, - 0x51, - 0x51, - 0x51, - 0x00, - 0x07, - 0x71, - 0x01, - 0x51, - 0x05, - 0x71, - 0x01, - 0x63, - 0x01, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x08, - 0x88, - 0x7B, - 0x5E, - 0x5C, - 0x5C, - 0x5E, - 0x62, - 0xA6, - 0x07, - 0xFE, - 0x00, - 0x10, - 0x48, - 0xA6, - 0x61, - 0x5D, - 0x49, - 0x5D, - 0x5E, - 0x81, - 0x46, - 0xFE, - 0xFE, - 0xFE, - 0x47, - 0x85, - 0x5E, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x04, - 0x5D, - 0x4B, - 0x6A, - 0x21, - 0x06, - 0x6A, - 0x00, - 0x2A, - 0x67, - 0x6C, - 0x6C, - 0x6C, - 0x7D, - 0x84, - 0xC2, - 0xBA, - 0x4E, - 0x4E, - 0x98, - 0xC2, - 0x83, - 0x8F, - 0x4E, - 0x7D, - 0x84, - 0xA5, - 0xA5, - 0x84, - 0x98, - 0x4E, - 0x4E, - 0xB2, - 0xC2, - 0xC4, - 0x87, - 0xFE, - 0x86, - 0xC2, - 0x84, - 0x82, - 0x92, - 0x4F, - 0x4F, - 0x4F, - 0x9D, - 0xC2, - 0xA5, - 0xA5, - 0xC4, - 0x82, - 0x07, - 0x4D, - 0x00, - 0x34, - 0x9D, - 0xC2, - 0xA4, - 0xA5, - 0xA4, - 0x82, - 0x4D, - 0x89, - 0x7F, - 0xC2, - 0x9D, - 0x66, - 0x82, - 0xC2, - 0x9E, - 0x66, - 0x66, - 0x82, - 0xA4, - 0x82, - 0x66, - 0x66, - 0x5A, - 0x83, - 0xC4, - 0xA5, - 0xA5, - 0xC4, - 0x83, - 0x50, - 0x66, - 0x36, - 0x50, - 0x83, - 0xC2, - 0xA6, - 0xFE, - 0xA6, - 0xC2, - 0xC2, - 0x82, - 0x93, - 0x36, - 0x30, - 0x36, - 0x50, - 0x83, - 0xA4, - 0xA5, - 0xA4, - 0x82, - 0x3B, - 0x07, - 0x36, - 0x00, - 0x0F, - 0x42, - 0x83, - 0xC4, - 0xA4, - 0xC2, - 0x80, - 0x86, - 0xFE, - 0x87, - 0x41, - 0x2C, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x00, - 0x04, - 0x1E, - 0x1A, - 0x1D, - 0x00, - 0x04, - 0x14, - 0x10, - 0x14, - 0x10, - 0x08, - 0x14, - 0x00, - 0x07, - 0x31, - 0x14, - 0x14, - 0x14, - 0x31, - 0x14, - 0x31, - 0x00, - 0x05, - 0x14, - 0x00, - 0x03, - 0x06, - 0x06, - 0x06, - 0x00, - 0x0C, - 0x14, - 0x00, - 0x00, - 0x00, - 0x05, - 0x73, - 0x73, - 0x75, - 0x73, - 0x75, - 0x00, - 0x04, - 0x73, - 0x00, - 0x08, - 0x3E, - 0x73, - 0x3E, - 0x73, - 0x73, - 0x73, - 0x6D, - 0x73, - 0x0A, - 0x6D, - 0x00, - 0x0A, - 0x3F, - 0x3F, - 0xAE, - 0x3F, - 0x3F, - 0x6D, - 0x6D, - 0x73, - 0x95, - 0x75, - 0x0F, - 0x51, - 0x04, - 0x71, - 0x01, - 0x51, - 0x04, - 0x71, - 0x00, - 0x07, - 0x51, - 0x71, - 0x71, - 0x51, - 0x51, - 0x60, - 0x5D, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x09, - 0xC7, - 0x70, - 0x5E, - 0x5C, - 0x5C, - 0x5C, - 0x5E, - 0x81, - 0x46, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x10, - 0x47, - 0x7B, - 0x5E, - 0x5D, - 0x5C, - 0x49, - 0x60, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x07, - 0x5C, - 0x01, - 0x4A, - 0x04, - 0x6A, - 0x00, - 0x05, - 0x6C, - 0x67, - 0x6C, - 0x4E, - 0x6C, - 0x00, - 0x0B, - 0x4E, - 0x00, - 0x13, - 0x4F, - 0x4E, - 0x4E, - 0x4C, - 0x8A, - 0x8A, - 0x4E, - 0x4E, - 0x4E, - 0x8A, - 0x4E, - 0x4F, - 0x8A, - 0x4E, - 0xA6, - 0xFE, - 0xA5, - 0x3A, - 0x4C, - 0x00, - 0x07, - 0x4F, - 0x00, - 0x08, - 0x4C, - 0x4D, - 0x89, - 0x2D, - 0x89, - 0x4C, - 0x89, - 0x4F, - 0x0C, - 0x4D, - 0x11, - 0x66, - 0x00, - 0x12, - 0x36, - 0x36, - 0x36, - 0x28, - 0x36, - 0x28, - 0x36, - 0x36, - 0x28, - 0x86, - 0xFE, - 0x86, - 0x36, - 0x2B, - 0x2B, - 0x30, - 0x2B, - 0x36, - 0x06, - 0x2B, - 0x01, - 0x30, - 0x01, - 0x30, - 0x04, - 0x2B, - 0x00, - 0x16, - 0x30, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x11, - 0x11, - 0x30, - 0x86, - 0xFE, - 0x87, - 0x41, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x1A, - 0x1A, - 0x1B, - 0x1D, - 0x0C, - 0x14, - 0x00, - 0x06, - 0x10, - 0x31, - 0x10, - 0x10, - 0x14, - 0x31, - 0x04, - 0x06, - 0x0D, - 0x14, - 0x03, - 0x06, - 0x00, - 0x00, - 0x00, - 0x08, - 0x73, - 0x73, - 0x73, - 0x75, - 0x73, - 0x73, - 0x73, - 0x3E, - 0x07, - 0x73, - 0x0E, - 0x6D, - 0x01, - 0x3F, - 0x01, - 0x3F, - 0x04, - 0x6D, - 0x00, - 0x03, - 0x73, - 0x95, - 0x75, - 0x00, - 0x0E, - 0x51, - 0x05, - 0x71, - 0x00, - 0x0B, - 0x51, - 0x71, - 0x71, - 0x51, - 0x71, - 0x51, - 0x71, - 0x71, - 0x51, - 0x5F, - 0x5D, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x0A, - 0x88, - 0x7B, - 0x5E, - 0x5D, - 0x5C, - 0x5C, - 0x5D, - 0x61, - 0xC6, - 0x48, - 0x05, - 0xFE, - 0x00, - 0x09, - 0x85, - 0x61, - 0x5E, - 0x5C, - 0x5C, - 0x49, - 0x5E, - 0x81, - 0x45, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x03, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x07, - 0x5C, - 0x00, - 0x05, - 0x4A, - 0x39, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x6C, - 0x00, - 0x07, - 0x4E, - 0x4E, - 0x4E, - 0x6F, - 0x84, - 0xC2, - 0x6A, - 0x00, - 0x06, - 0x4E, - 0x00, - 0x14, - 0x8A, - 0x4C, - 0x8A, - 0x33, - 0x4E, - 0x8A, - 0x8A, - 0x4E, - 0x8A, - 0x4F, - 0x8A, - 0x7C, - 0x87, - 0xFE, - 0xC5, - 0x3A, - 0x33, - 0x3A, - 0x4F, - 0x3A, - 0x04, - 0x4F, - 0x00, - 0x08, - 0x4C, - 0x4C, - 0x4D, - 0x2D, - 0x4D, - 0x89, - 0x4C, - 0x4F, - 0x0B, - 0x4D, - 0x12, - 0x66, - 0x00, - 0x03, - 0x36, - 0x36, - 0x66, - 0x00, - 0x04, - 0x36, - 0x00, - 0x0B, - 0x66, - 0x3C, - 0xC6, - 0xFE, - 0xC6, - 0x40, - 0x36, - 0x30, - 0x28, - 0x36, - 0x2B, - 0x00, - 0x04, - 0x30, - 0x00, - 0x04, - 0x2B, - 0x2B, - 0x30, - 0x2B, - 0x04, - 0x30, - 0x00, - 0x0F, - 0x2B, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x3B, - 0x86, - 0xFF, - 0x87, - 0x41, - 0x1E, - 0x1E, - 0x00, - 0x07, - 0x1B, - 0x1C, - 0x1D, - 0x0A, - 0x14, - 0x01, - 0x31, - 0x04, - 0x10, - 0x00, - 0x06, - 0x06, - 0x06, - 0x31, - 0x06, - 0x14, - 0x06, - 0x0D, - 0x14, - 0x03, - 0x06, - 0x00, - 0x00, - 0x00, - 0x03, - 0x75, - 0x73, - 0x75, - 0x00, - 0x05, - 0x73, - 0x04, - 0x6D, - 0x00, - 0x03, - 0x73, - 0xAE, - 0x73, - 0x00, - 0x0E, - 0x6D, - 0x00, - 0x0A, - 0x3F, - 0x98, - 0x3F, - 0x3F, - 0x6D, - 0x6D, - 0x6D, - 0x73, - 0x51, - 0x75, - 0x0E, - 0x51, - 0x00, - 0x07, - 0x71, - 0x71, - 0x71, - 0x51, - 0x71, - 0x71, - 0x51, - 0x00, - 0x05, - 0x71, - 0x01, - 0x51, - 0x01, - 0x5D, - 0x07, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x0A, - 0xC7, - 0x70, - 0x5E, - 0x5C, - 0x5C, - 0x5C, - 0x5D, - 0x5E, - 0x7B, - 0x46, - 0x04, - 0xFE, - 0x00, - 0x11, - 0x45, - 0x70, - 0x5E, - 0x5C, - 0x5C, - 0x5C, - 0x49, - 0x60, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x07, - 0x5C, - 0x00, - 0x07, - 0x4A, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x4E, - 0x67, - 0x00, - 0x06, - 0x4E, - 0x00, - 0x0E, - 0xA4, - 0xC7, - 0xC7, - 0xC4, - 0x3A, - 0x4E, - 0x4E, - 0x4E, - 0x3A, - 0x8A, - 0x4E, - 0x8A, - 0x8A, - 0x8A, - 0x05, - 0x4E, - 0x00, - 0x09, - 0x4C, - 0x8A, - 0x9E, - 0xA6, - 0xFE, - 0xA5, - 0x33, - 0x4C, - 0x3A, - 0x00, - 0x05, - 0x4F, - 0x00, - 0x09, - 0x4C, - 0x4C, - 0x89, - 0x4D, - 0x4D, - 0x4C, - 0x4D, - 0x4C, - 0x89, - 0x00, - 0x0A, - 0x4D, - 0x01, - 0x37, - 0x0E, - 0x66, - 0x00, - 0x05, - 0x28, - 0x66, - 0x28, - 0x66, - 0x28, - 0x00, - 0x07, - 0x36, - 0x00, - 0x0B, - 0x3C, - 0xC6, - 0xFE, - 0xC6, - 0x52, - 0x36, - 0x36, - 0x36, - 0x30, - 0x36, - 0x36, - 0x00, - 0x05, - 0x2B, - 0x00, - 0x05, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x00, - 0x09, - 0x30, - 0x00, - 0x07, - 0x3B, - 0x86, - 0xFE, - 0x87, - 0x26, - 0x1A, - 0x1A, - 0x00, - 0x05, - 0x1B, - 0x15, - 0x1D, - 0x05, - 0x32, - 0x04, - 0x1D, - 0x00, - 0x03, - 0x14, - 0x10, - 0x0A, - 0x00, - 0x05, - 0x14, - 0x00, - 0x08, - 0x06, - 0x0A, - 0x14, - 0x10, - 0x0A, - 0x31, - 0x14, - 0x0A, - 0x04, - 0x06, - 0x0C, - 0x14, - 0x05, - 0x06, - 0x00, - 0x00, - 0x00, - 0x07, - 0x73, - 0x95, - 0x73, - 0x95, - 0x73, - 0x73, - 0x73, - 0x00, - 0x05, - 0x6D, - 0x01, - 0x73, - 0x0C, - 0x6D, - 0x01, - 0x3F, - 0x04, - 0x6D, - 0x00, - 0x08, - 0x3F, - 0x3F, - 0x73, - 0x6D, - 0x3F, - 0x6D, - 0x3E, - 0x75, - 0x11, - 0x51, - 0x00, - 0x0B, - 0x71, - 0x71, - 0x51, - 0x71, - 0x71, - 0x51, - 0x51, - 0x51, - 0x71, - 0x71, - 0x51, - 0x00, - 0x08, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x03, - 0xC7, - 0x7B, - 0x5E, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5F, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x11, - 0x48, - 0x81, - 0x5E, - 0x5D, - 0x5C, - 0x5C, - 0x5C, - 0x5E, - 0x81, - 0x46, - 0xFE, - 0xFE, - 0xFE, - 0x47, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x07, - 0x5C, - 0x01, - 0x4A, - 0x01, - 0x6A, - 0x04, - 0x67, - 0x07, - 0x4E, - 0x00, - 0x05, - 0x86, - 0x48, - 0xFE, - 0xC5, - 0x8A, - 0x00, - 0x06, - 0x4E, - 0x00, - 0x0F, - 0x8A, - 0x4C, - 0x8A, - 0x4C, - 0x8A, - 0x4C, - 0x8A, - 0x4E, - 0x8A, - 0x4F, - 0x6A, - 0xC2, - 0xA4, - 0xC1, - 0x33, - 0x00, - 0x06, - 0x4F, - 0x00, - 0x0A, - 0x4C, - 0x89, - 0x4C, - 0x4D, - 0x4D, - 0x4C, - 0x4D, - 0x4C, - 0x4D, - 0x4C, - 0x09, - 0x4D, - 0x01, - 0x37, - 0x13, - 0x66, - 0x00, - 0x04, - 0x36, - 0x66, - 0x2B, - 0x2B, - 0x04, - 0x36, - 0x00, - 0x10, - 0x3B, - 0x83, - 0xC4, - 0xC1, - 0x66, - 0x2B, - 0x2B, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x2B, - 0x30, - 0x2B, - 0x05, - 0x30, - 0x01, - 0x2B, - 0x08, - 0x30, - 0x00, - 0x07, - 0x3B, - 0x86, - 0xFE, - 0x87, - 0x26, - 0x27, - 0x27, - 0x00, - 0x04, - 0x1B, - 0x0D, - 0x1D, - 0x01, - 0x29, - 0x01, - 0x29, - 0x05, - 0x1D, - 0x00, - 0x03, - 0x29, - 0x29, - 0x29, - 0x00, - 0x04, - 0x31, - 0x00, - 0x16, - 0x29, - 0x29, - 0x1B, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x0A, - 0x10, - 0x14, - 0x10, - 0x31, - 0x31, - 0x06, - 0x31, - 0x0A, - 0x31, - 0x14, - 0x06, - 0x0A, - 0x0A, - 0x0A, - 0x13, - 0x06, - 0x00, - 0x00, - 0x01, - 0x73, - 0x01, - 0x75, - 0x04, - 0x73, - 0x12, - 0x6D, - 0x00, - 0x0F, - 0x3F, - 0x98, - 0x3F, - 0x6D, - 0x6D, - 0x3F, - 0x98, - 0x73, - 0x73, - 0x3F, - 0x3F, - 0x3D, - 0x6D, - 0x73, - 0x75, - 0x00, - 0x10, - 0x51, - 0x00, - 0x0B, - 0x71, - 0x71, - 0x71, - 0x51, - 0x71, - 0x51, - 0x51, - 0x51, - 0x71, - 0x71, - 0x51, - 0x00, - 0x08, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x03, - 0x88, - 0x70, - 0x5E, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x04, - 0x5D, - 0x5E, - 0x70, - 0x88, - 0x04, - 0xFE, - 0x00, - 0x10, - 0x87, - 0x64, - 0x5E, - 0x5D, - 0x5C, - 0x49, - 0x60, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x07, - 0x5C, - 0x01, - 0x4A, - 0x05, - 0x67, - 0x00, - 0x03, - 0x4E, - 0x4E, - 0x8B, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x04, - 0xC2, - 0x87, - 0xA6, - 0xC1, - 0x07, - 0x4E, - 0x00, - 0x0F, - 0x8A, - 0x4E, - 0x4C, - 0x8A, - 0x33, - 0x8A, - 0x33, - 0x8A, - 0x4C, - 0x4F, - 0x8A, - 0x4F, - 0x4E, - 0x4C, - 0x33, - 0x00, - 0x06, - 0x4F, - 0x04, - 0x4C, - 0x0F, - 0x4D, - 0x01, - 0x37, - 0x13, - 0x66, - 0x0C, - 0x36, - 0x00, - 0x06, - 0x2B, - 0x36, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x04, - 0x2B, - 0x00, - 0x06, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x0A, - 0x30, - 0x00, - 0x07, - 0x3B, - 0x86, - 0xFF, - 0x87, - 0x26, - 0x27, - 0x27, - 0x00, - 0x04, - 0x1B, - 0x0D, - 0x1D, - 0x01, - 0x29, - 0x01, - 0x29, - 0x05, - 0x1D, - 0x00, - 0x03, - 0x29, - 0x29, - 0x29, - 0x00, - 0x04, - 0x31, - 0x04, - 0x29, - 0x00, - 0x12, - 0x10, - 0x0A, - 0x0A, - 0x0A, - 0x10, - 0x10, - 0x10, - 0x14, - 0x06, - 0x06, - 0x14, - 0x10, - 0x31, - 0x06, - 0x06, - 0x0A, - 0x0A, - 0x0A, - 0x13, - 0x06, - 0x00, - 0x00, - 0x08, - 0x73, - 0x00, - 0x04, - 0x6D, - 0x73, - 0x6D, - 0x73, - 0x08, - 0x6D, - 0x00, - 0x0C, - 0x3F, - 0x3F, - 0x6D, - 0x6D, - 0x3F, - 0x3F, - 0x6D, - 0x6D, - 0x6D, - 0x3F, - 0x3F, - 0x73, - 0x04, - 0x3F, - 0x00, - 0x04, - 0x6B, - 0x6D, - 0x73, - 0x75, - 0x0B, - 0x51, - 0x04, - 0x71, - 0x01, - 0x51, - 0x01, - 0x71, - 0x05, - 0x51, - 0x00, - 0x06, - 0x71, - 0x51, - 0x51, - 0x71, - 0x5D, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x18, - 0x88, - 0x7B, - 0x5E, - 0x5D, - 0x5C, - 0x5D, - 0x61, - 0x81, - 0x70, - 0x60, - 0x85, - 0xFE, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0x85, - 0x5E, - 0x5D, - 0x5D, - 0x49, - 0x5E, - 0x81, - 0x45, - 0x04, - 0xFE, - 0x00, - 0x03, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x07, - 0x5C, - 0x01, - 0x4A, - 0x05, - 0x67, - 0x04, - 0x4E, - 0x04, - 0x8B, - 0x00, - 0x0E, - 0x7C, - 0xBA, - 0x4E, - 0x8A, - 0x4E, - 0x4E, - 0x4E, - 0x8A, - 0x4E, - 0x8B, - 0x8A, - 0x8A, - 0x8A, - 0x4E, - 0x04, - 0x8A, - 0x00, - 0x07, - 0x4F, - 0x8A, - 0x3A, - 0x8A, - 0x33, - 0x3A, - 0x4F, - 0x00, - 0x0B, - 0x4C, - 0x01, - 0x89, - 0x04, - 0x4C, - 0x08, - 0x4D, - 0x10, - 0x66, - 0x07, - 0x34, - 0x00, - 0x05, - 0x2B, - 0x2B, - 0x2B, - 0x36, - 0x36, - 0x00, - 0x05, - 0x34, - 0x01, - 0x36, - 0x01, - 0x36, - 0x09, - 0x2B, - 0x0C, - 0x30, - 0x00, - 0x0A, - 0x2C, - 0x27, - 0x27, - 0x30, - 0x83, - 0xA4, - 0x84, - 0x17, - 0x2F, - 0x2F, - 0x11, - 0x1D, - 0x01, - 0x29, - 0x01, - 0x29, - 0x05, - 0x1D, - 0x04, - 0x29, - 0x00, - 0x19, - 0x31, - 0x32, - 0x31, - 0x14, - 0x14, - 0x31, - 0x10, - 0x31, - 0x0A, - 0x0A, - 0x10, - 0x10, - 0x10, - 0x0A, - 0x0A, - 0x14, - 0x14, - 0x14, - 0x10, - 0x14, - 0x06, - 0x06, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x13, - 0x06, - 0x00, - 0x00, - 0x00, - 0x03, - 0x73, - 0x73, - 0x3E, - 0x00, - 0x05, - 0x73, - 0x0C, - 0x6D, - 0x00, - 0x05, - 0x3F, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x00, - 0x06, - 0x3F, - 0x01, - 0x73, - 0x06, - 0x3F, - 0x00, - 0x03, - 0x3E, - 0x73, - 0x75, - 0x00, - 0x09, - 0x51, - 0x07, - 0x71, - 0x05, - 0x51, - 0x00, - 0x06, - 0x71, - 0x71, - 0x71, - 0x51, - 0x5F, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x0C, - 0x45, - 0x70, - 0x5E, - 0x5C, - 0x5D, - 0x5E, - 0x70, - 0x45, - 0x85, - 0x60, - 0x64, - 0x88, - 0x04, - 0xFE, - 0x00, - 0x0F, - 0x88, - 0x70, - 0x5E, - 0x5C, - 0x49, - 0x60, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x07, - 0x5C, - 0x00, - 0x03, - 0x4A, - 0x67, - 0x67, - 0x00, - 0x07, - 0x4E, - 0x01, - 0x67, - 0x04, - 0x4E, - 0x00, - 0x04, - 0x8B, - 0x4E, - 0x4E, - 0x8A, - 0x05, - 0x4E, - 0x00, - 0x04, - 0x4F, - 0x4F, - 0x4F, - 0x8A, - 0x06, - 0x4F, - 0x00, - 0x05, - 0x33, - 0x4F, - 0x3A, - 0x33, - 0x33, - 0x00, - 0x0A, - 0x4C, - 0x01, - 0x4D, - 0x01, - 0x4C, - 0x0A, - 0x4D, - 0x11, - 0x66, - 0x01, - 0x36, - 0x07, - 0x34, - 0x05, - 0x2B, - 0x05, - 0x34, - 0x07, - 0x2B, - 0x00, - 0x08, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x08, - 0x30, - 0x00, - 0x07, - 0x1E, - 0x27, - 0x27, - 0x27, - 0x2F, - 0x1A, - 0x1B, - 0x00, - 0x14, - 0x1D, - 0x0E, - 0x29, - 0x00, - 0x11, - 0x14, - 0x14, - 0x31, - 0x10, - 0x10, - 0x14, - 0x10, - 0x10, - 0x0A, - 0x0A, - 0x10, - 0x14, - 0x10, - 0x14, - 0x10, - 0x14, - 0x10, - 0x00, - 0x05, - 0x0A, - 0x13, - 0x06, - 0x00, - 0x00, - 0x01, - 0x73, - 0x01, - 0x3E, - 0x06, - 0x73, - 0x06, - 0x6D, - 0x01, - 0x3F, - 0x04, - 0x6D, - 0x00, - 0x07, - 0x3F, - 0x73, - 0x3F, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x00, - 0x04, - 0x3F, - 0x01, - 0x73, - 0x05, - 0x3F, - 0x00, - 0x06, - 0x6F, - 0x3D, - 0x3D, - 0x3E, - 0x73, - 0x73, - 0x08, - 0x51, - 0x07, - 0x71, - 0x07, - 0x51, - 0x00, - 0x04, - 0x71, - 0x71, - 0x60, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x0D, - 0x88, - 0x7B, - 0x5E, - 0x49, - 0x5D, - 0x49, - 0xC6, - 0xFE, - 0x88, - 0x70, - 0x60, - 0x81, - 0x48, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x0E, - 0x85, - 0x5F, - 0x5D, - 0x5D, - 0x5E, - 0x81, - 0x46, - 0xFE, - 0xFE, - 0xFE, - 0x47, - 0x85, - 0x5E, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x34, - 0x5D, - 0x4A, - 0x67, - 0x67, - 0x67, - 0x4E, - 0x67, - 0x4E, - 0x67, - 0x4E, - 0x4E, - 0x4E, - 0x67, - 0x4E, - 0x67, - 0x69, - 0x67, - 0x4E, - 0x4E, - 0x4E, - 0x8A, - 0x8A, - 0x8B, - 0x6B, - 0x3F, - 0x4E, - 0x8A, - 0x4F, - 0x4F, - 0x8A, - 0x4E, - 0x6A, - 0x6F, - 0x4E, - 0x8A, - 0x4F, - 0x3A, - 0x33, - 0x4E, - 0x58, - 0x7D, - 0x73, - 0x33, - 0x4C, - 0x35, - 0x4E, - 0x21, - 0x4C, - 0x3A, - 0x6C, - 0x4E, - 0x2D, - 0x06, - 0x4D, - 0x00, - 0x0E, - 0x4C, - 0x52, - 0x6C, - 0x4F, - 0x2D, - 0x4C, - 0x4F, - 0x4D, - 0x66, - 0x66, - 0x28, - 0x4D, - 0x4F, - 0x4D, - 0x05, - 0x66, - 0x00, - 0x03, - 0x50, - 0x3C, - 0x3C, - 0x00, - 0x05, - 0x34, - 0x00, - 0x0C, - 0x37, - 0x3C, - 0x37, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x34, - 0x34, - 0x2A, - 0x34, - 0x34, - 0x07, - 0x2B, - 0x00, - 0x04, - 0x30, - 0x30, - 0x30, - 0x2B, - 0x07, - 0x30, - 0x00, - 0x0C, - 0x2F, - 0x30, - 0x30, - 0x30, - 0x2C, - 0x1E, - 0x27, - 0x27, - 0x27, - 0x2F, - 0x1A, - 0x1B, - 0x14, - 0x1D, - 0x0E, - 0x29, - 0x00, - 0x04, - 0x14, - 0x14, - 0x31, - 0x14, - 0x04, - 0x10, - 0x01, - 0x0A, - 0x01, - 0x0A, - 0x07, - 0x10, - 0x05, - 0x0A, - 0x07, - 0x06, - 0x01, - 0x0A, - 0x0B, - 0x06, - 0x00, - 0x00, - 0x0C, - 0x6D, - 0x06, - 0x3F, - 0x00, - 0x04, - 0x6D, - 0x73, - 0x3F, - 0x73, - 0x0F, - 0x3F, - 0x00, - 0x05, - 0x6A, - 0x69, - 0x3F, - 0x6D, - 0x3E, - 0x00, - 0x09, - 0x51, - 0x01, - 0x71, - 0x01, - 0x71, - 0x08, - 0x51, - 0x01, - 0x71, - 0x04, - 0x51, - 0x01, - 0x63, - 0x01, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x1F, - 0xC7, - 0x70, - 0x5E, - 0x5C, - 0x5E, - 0x7B, - 0x48, - 0xFE, - 0xFE, - 0x85, - 0x60, - 0x61, - 0xA6, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0x45, - 0x70, - 0x5E, - 0x49, - 0x5E, - 0x81, - 0x45, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x04, - 0x5E, - 0x4B, - 0x67, - 0x67, - 0x06, - 0x4E, - 0x00, - 0x2B, - 0x67, - 0x8B, - 0x4E, - 0x8B, - 0xC2, - 0x86, - 0x86, - 0xA2, - 0x4F, - 0x8A, - 0x4F, - 0x8A, - 0xA3, - 0xC5, - 0x86, - 0xC2, - 0x3A, - 0x8A, - 0x4C, - 0x4C, - 0x58, - 0xC5, - 0x86, - 0x84, - 0x33, - 0x33, - 0x33, - 0x83, - 0x86, - 0x87, - 0xA7, - 0xA6, - 0xA5, - 0x58, - 0x73, - 0xC5, - 0xC5, - 0x7D, - 0x6C, - 0xC5, - 0x86, - 0xC5, - 0x3F, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x10, - 0x56, - 0xC5, - 0x86, - 0xC5, - 0x54, - 0x52, - 0xC5, - 0x86, - 0xC4, - 0x2D, - 0x66, - 0x52, - 0xA5, - 0x86, - 0xA5, - 0x28, - 0x04, - 0x66, - 0x00, - 0x04, - 0xA4, - 0x86, - 0xA5, - 0x7A, - 0x04, - 0x2B, - 0x00, - 0x09, - 0xC2, - 0x86, - 0xC5, - 0x56, - 0x34, - 0x2B, - 0x2B, - 0x2A, - 0x2A, - 0x00, - 0x06, - 0x2B, - 0x01, - 0x36, - 0x05, - 0x2B, - 0x00, - 0x16, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x30, - 0x2C, - 0x2C, - 0x2C, - 0x1E, - 0x1A, - 0x1B, - 0x1B, - 0x1E, - 0x1E, - 0x1E, - 0x1B, - 0x1B, - 0x07, - 0x1D, - 0x01, - 0x32, - 0x01, - 0x32, - 0x1A, - 0x29, - 0x00, - 0x0D, - 0x10, - 0x10, - 0x31, - 0x14, - 0x14, - 0x10, - 0x10, - 0x10, - 0x14, - 0x14, - 0x10, - 0x14, - 0x10, - 0x00, - 0x06, - 0x0A, - 0x09, - 0x06, - 0x05, - 0x0A, - 0x01, - 0x05, - 0x05, - 0x06, - 0x00, - 0x00, - 0x0C, - 0x6D, - 0x04, - 0x3F, - 0x00, - 0x05, - 0x73, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x00, - 0x10, - 0x3F, - 0x00, - 0x07, - 0x6A, - 0x3D, - 0x3D, - 0x3F, - 0x3E, - 0x3E, - 0x73, - 0x00, - 0x16, - 0x51, - 0x01, - 0x4A, - 0x01, - 0x5E, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x1F, - 0xC7, - 0x70, - 0x5E, - 0x5E, - 0x62, - 0xA6, - 0x48, - 0xFE, - 0xFE, - 0x45, - 0x7B, - 0x60, - 0x81, - 0x47, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0xC6, - 0x5D, - 0x5E, - 0x60, - 0x7B, - 0x46, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x12, - 0x60, - 0x4B, - 0x4E, - 0x67, - 0x4E, - 0x67, - 0x4E, - 0x67, - 0x4E, - 0x67, - 0x4E, - 0x4E, - 0x8B, - 0x4E, - 0xA4, - 0x48, - 0xFE, - 0x84, - 0x04, - 0x4F, - 0x00, - 0x1F, - 0xC2, - 0x46, - 0xFE, - 0xA4, - 0x4E, - 0x4F, - 0x4C, - 0x8A, - 0xC1, - 0xC7, - 0xFE, - 0xA5, - 0x33, - 0x33, - 0xC1, - 0xA7, - 0xFE, - 0xFE, - 0x47, - 0x48, - 0xFE, - 0x87, - 0xA5, - 0x47, - 0x48, - 0x83, - 0x4C, - 0xA5, - 0xFE, - 0xFE, - 0xA4, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x18, - 0xC5, - 0xFE, - 0x48, - 0xA4, - 0x4D, - 0x9D, - 0xC7, - 0xFE, - 0xC5, - 0x2E, - 0x66, - 0x7A, - 0xA6, - 0xFE, - 0xA6, - 0x66, - 0x66, - 0x66, - 0x36, - 0x50, - 0x86, - 0xFE, - 0xC7, - 0x56, - 0x04, - 0x2B, - 0x00, - 0x05, - 0xA5, - 0x48, - 0x45, - 0x44, - 0x34, - 0x00, - 0x0A, - 0x2B, - 0x00, - 0x0A, - 0x36, - 0x36, - 0x36, - 0x2B, - 0x30, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x06, - 0x30, - 0x00, - 0x0A, - 0x2F, - 0x2C, - 0x1E, - 0x1E, - 0x1A, - 0x1B, - 0x1B, - 0x1E, - 0x1E, - 0x1E, - 0x04, - 0x1B, - 0x05, - 0x1D, - 0x16, - 0x29, - 0x00, - 0x13, - 0x31, - 0x31, - 0x31, - 0x29, - 0x29, - 0x29, - 0x10, - 0x14, - 0x10, - 0x31, - 0x14, - 0x10, - 0x10, - 0x10, - 0x14, - 0x14, - 0x10, - 0x10, - 0x10, - 0x00, - 0x05, - 0x0A, - 0x0B, - 0x06, - 0x05, - 0x0A, - 0x05, - 0x06, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x0D, - 0x3F, - 0x3F, - 0x3F, - 0x6D, - 0x3F, - 0x6D, - 0x6D, - 0x3F, - 0x3F, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x00, - 0x06, - 0x3F, - 0x00, - 0x15, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x3F, - 0x6F, - 0x3F, - 0x3D, - 0x3D, - 0x3D, - 0x6D, - 0x3E, - 0x3E, - 0x00, - 0x16, - 0x51, - 0x01, - 0x60, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x06, - 0x88, - 0x70, - 0x5E, - 0x49, - 0x81, - 0x48, - 0x04, - 0xFE, - 0x00, - 0x04, - 0x85, - 0x60, - 0x5C, - 0xC6, - 0x04, - 0xFE, - 0x00, - 0x0D, - 0x46, - 0x81, - 0x5E, - 0x5E, - 0x81, - 0x46, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x04, - 0x63, - 0x67, - 0x67, - 0x67, - 0x09, - 0x4E, - 0x00, - 0x44, - 0x33, - 0xA4, - 0xFE, - 0x47, - 0xC2, - 0x4E, - 0x4F, - 0x4E, - 0x33, - 0xC2, - 0x45, - 0xFE, - 0xA4, - 0x4C, - 0x8A, - 0x4F, - 0x4C, - 0x82, - 0x88, - 0xFE, - 0xA5, - 0x33, - 0x4E, - 0xC5, - 0xFE, - 0x47, - 0xC5, - 0x83, - 0x84, - 0xC5, - 0x45, - 0xFE, - 0xFE, - 0x45, - 0xC1, - 0x4C, - 0x54, - 0x86, - 0x48, - 0xC7, - 0x83, - 0x4D, - 0x4D, - 0xC3, - 0x46, - 0xFE, - 0x86, - 0x52, - 0x66, - 0x9D, - 0xA7, - 0x48, - 0xC5, - 0x2D, - 0x66, - 0x54, - 0xC6, - 0xFE, - 0xA6, - 0x2E, - 0x66, - 0x34, - 0x34, - 0x66, - 0x86, - 0xFE, - 0xA7, - 0x9D, - 0x04, - 0x2B, - 0x00, - 0x05, - 0xA5, - 0xFE, - 0xA7, - 0x44, - 0x34, - 0x00, - 0x0A, - 0x2B, - 0x00, - 0x03, - 0x36, - 0x36, - 0x36, - 0x00, - 0x06, - 0x2B, - 0x05, - 0x30, - 0x00, - 0x0C, - 0x1E, - 0x1E, - 0x2F, - 0x2F, - 0x1A, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1E, - 0x1E, - 0x1E, - 0x04, - 0x1B, - 0x05, - 0x1D, - 0x16, - 0x29, - 0x04, - 0x31, - 0x00, - 0x05, - 0x29, - 0x29, - 0x10, - 0x10, - 0x10, - 0x00, - 0x06, - 0x14, - 0x01, - 0x31, - 0x01, - 0x10, - 0x07, - 0x0A, - 0x0A, - 0x06, - 0x06, - 0x0A, - 0x05, - 0x06, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x0C, - 0x3F, - 0x6D, - 0x3F, - 0x3F, - 0x73, - 0x3F, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x13, - 0x3F, - 0x00, - 0x0A, - 0x6F, - 0x3F, - 0x6F, - 0x3D, - 0x3D, - 0x3D, - 0x69, - 0x3D, - 0x3D, - 0x3E, - 0x14, - 0x51, - 0x01, - 0x4B, - 0x01, - 0x63, - 0x06, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x05, - 0x46, - 0xA6, - 0x85, - 0x86, - 0x88, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x16, - 0x45, - 0x7B, - 0x5E, - 0x5E, - 0x7B, - 0x46, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x88, - 0xC6, - 0x85, - 0xA6, - 0x48, - 0xFE, - 0xFE, - 0xFE, - 0x48, - 0x85, - 0x5E, - 0x5D, - 0x06, - 0x5C, - 0x00, - 0x05, - 0x4A, - 0x67, - 0x67, - 0x4E, - 0x67, - 0x00, - 0x08, - 0x4E, - 0x00, - 0x4D, - 0x33, - 0xA4, - 0xFE, - 0x47, - 0xC2, - 0x4E, - 0x4E, - 0x4E, - 0x3A, - 0x83, - 0x45, - 0x48, - 0xA4, - 0x4F, - 0x3A, - 0x33, - 0x3A, - 0x82, - 0x88, - 0x48, - 0xA5, - 0x4C, - 0x6A, - 0xA6, - 0xFE, - 0xA6, - 0x73, - 0x4C, - 0x4C, - 0x4F, - 0xC2, - 0x87, - 0xFE, - 0xC7, - 0x83, - 0x4D, - 0x4D, - 0x80, - 0xA7, - 0xFE, - 0xC6, - 0x4C, - 0x7C, - 0x87, - 0xFE, - 0x87, - 0x5B, - 0x66, - 0x66, - 0x9D, - 0xA7, - 0x48, - 0xC5, - 0x4D, - 0x66, - 0x54, - 0xC6, - 0xFF, - 0xA6, - 0x66, - 0x34, - 0x34, - 0x2A, - 0x34, - 0x86, - 0xFE, - 0xA7, - 0x56, - 0x34, - 0x34, - 0x34, - 0x2B, - 0xA5, - 0xFE, - 0xA7, - 0x44, - 0x34, - 0x00, - 0x07, - 0x2B, - 0x01, - 0x36, - 0x01, - 0x36, - 0x04, - 0x30, - 0x00, - 0x10, - 0x2B, - 0x30, - 0x2B, - 0x1A, - 0x2B, - 0x2C, - 0x11, - 0x11, - 0x30, - 0x30, - 0x30, - 0x1E, - 0x2F, - 0x2F, - 0x2F, - 0x1A, - 0x0B, - 0x1B, - 0x00, - 0x03, - 0x1D, - 0x1D, - 0x32, - 0x00, - 0x18, - 0x29, - 0x04, - 0x31, - 0x01, - 0x29, - 0x01, - 0x29, - 0x08, - 0x14, - 0x00, - 0x07, - 0x10, - 0x31, - 0x0A, - 0x0A, - 0x0A, - 0x06, - 0x06, - 0x00, - 0x10, - 0x0A, - 0x00, - 0x08, - 0x02, - 0x0A, - 0x05, - 0x05, - 0x05, - 0x06, - 0x06, - 0x06, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x0B, - 0x3F, - 0x3F, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x3F, - 0x3F, - 0x73, - 0x3F, - 0x73, - 0x00, - 0x12, - 0x3F, - 0x01, - 0x6F, - 0x04, - 0x3F, - 0x00, - 0x08, - 0x3D, - 0x3D, - 0x6A, - 0x3D, - 0x3D, - 0x3D, - 0x6D, - 0x3E, - 0x14, - 0x51, - 0x01, - 0x4A, - 0x01, - 0x5D, - 0x05, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5E, - 0x85, - 0x00, - 0x0D, - 0xFE, - 0x00, - 0x06, - 0x85, - 0x5E, - 0x5D, - 0x5D, - 0x5E, - 0x85, - 0x0D, - 0xFE, - 0x00, - 0x03, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x04, - 0x5D, - 0x5E, - 0x4B, - 0x67, - 0x0B, - 0x4E, - 0x00, - 0x4D, - 0x3A, - 0xA4, - 0x48, - 0x47, - 0xC2, - 0x4E, - 0x4E, - 0x4E, - 0x3A, - 0xC2, - 0x45, - 0xFE, - 0xA4, - 0x33, - 0x3A, - 0x4F, - 0x33, - 0xA2, - 0xA7, - 0xFE, - 0xA5, - 0x1C, - 0x4E, - 0xC6, - 0xFE, - 0xA6, - 0x3F, - 0x4C, - 0x4C, - 0x4C, - 0x4D, - 0xA5, - 0xFE, - 0x45, - 0x83, - 0x4D, - 0x4D, - 0x4D, - 0xC4, - 0x48, - 0xFE, - 0xA5, - 0xC5, - 0xFE, - 0x46, - 0x84, - 0x66, - 0x66, - 0x66, - 0x9D, - 0xA7, - 0xFE, - 0xC5, - 0x28, - 0x66, - 0x54, - 0xC6, - 0xFE, - 0xA6, - 0x34, - 0x34, - 0x34, - 0x2A, - 0x37, - 0x86, - 0xFE, - 0xA7, - 0x56, - 0x2A, - 0x34, - 0x34, - 0x2A, - 0xA5, - 0xFF, - 0xA7, - 0x44, - 0x34, - 0x00, - 0x07, - 0x2B, - 0x00, - 0x06, - 0x36, - 0x36, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x04, - 0x30, - 0x01, - 0x1A, - 0x01, - 0x2C, - 0x04, - 0x30, - 0x05, - 0x2F, - 0x01, - 0x1A, - 0x0B, - 0x1B, - 0x00, - 0x03, - 0x1D, - 0x1D, - 0x32, - 0x00, - 0x18, - 0x29, - 0x04, - 0x31, - 0x01, - 0x29, - 0x01, - 0x29, - 0x08, - 0x14, - 0x01, - 0x10, - 0x04, - 0x0A, - 0x01, - 0x06, - 0x01, - 0x06, - 0x0C, - 0x0A, - 0x01, - 0x05, - 0x05, - 0x0A, - 0x00, - 0x06, - 0x05, - 0x05, - 0x05, - 0x06, - 0x06, - 0x06, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3E, - 0x3F, - 0x6D, - 0x00, - 0x09, - 0x3F, - 0x00, - 0x03, - 0x73, - 0x3F, - 0x73, - 0x00, - 0x16, - 0x3F, - 0x00, - 0x09, - 0x6F, - 0x3F, - 0x3D, - 0x3D, - 0x3D, - 0x6A, - 0x3D, - 0x3D, - 0x6D, - 0x00, - 0x04, - 0x3E, - 0x01, - 0x95, - 0x0F, - 0x51, - 0x00, - 0x03, - 0x4B, - 0x51, - 0x60, - 0x00, - 0x05, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5D, - 0x85, - 0x00, - 0x0C, - 0xFE, - 0x00, - 0x08, - 0x88, - 0x65, - 0x5E, - 0x5C, - 0x5C, - 0x5E, - 0x70, - 0x88, - 0x0C, - 0xFE, - 0x00, - 0x03, - 0x85, - 0x5E, - 0x5D, - 0x00, - 0x05, - 0x5C, - 0x01, - 0x60, - 0x01, - 0x67, - 0x0D, - 0x4E, - 0x00, - 0x4B, - 0xA4, - 0x48, - 0x47, - 0xC2, - 0x4E, - 0x4E, - 0x4F, - 0x4E, - 0xC2, - 0xC7, - 0xFE, - 0xA4, - 0x33, - 0x33, - 0x3A, - 0x4F, - 0xA3, - 0x88, - 0xFE, - 0xA5, - 0x1C, - 0x2D, - 0xA5, - 0x48, - 0x48, - 0xC5, - 0x58, - 0x2D, - 0x2D, - 0x4D, - 0xA4, - 0xFE, - 0x45, - 0x83, - 0x2D, - 0x4D, - 0x4D, - 0x52, - 0xC5, - 0xFE, - 0x46, - 0x48, - 0xFE, - 0xA5, - 0x4F, - 0x66, - 0x66, - 0x66, - 0x9D, - 0xA7, - 0xFE, - 0xC5, - 0x28, - 0x66, - 0x54, - 0xC6, - 0xFE, - 0xA6, - 0x34, - 0x34, - 0x34, - 0x2A, - 0x37, - 0x86, - 0xFE, - 0xA7, - 0x56, - 0x2A, - 0x34, - 0x34, - 0x34, - 0xA5, - 0x48, - 0x88, - 0x44, - 0x00, - 0x07, - 0x2B, - 0x00, - 0x03, - 0x36, - 0x36, - 0x36, - 0x00, - 0x06, - 0x30, - 0x00, - 0x03, - 0x2B, - 0x2B, - 0x30, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x0A, - 0x2F, - 0x2F, - 0x27, - 0x27, - 0x2F, - 0x1E, - 0x1A, - 0x1B, - 0x1D, - 0x1D, - 0x06, - 0x1B, - 0x00, - 0x04, - 0x1D, - 0x1D, - 0x1B, - 0x1B, - 0x14, - 0x29, - 0x04, - 0x32, - 0x04, - 0x29, - 0x00, - 0x0C, - 0x31, - 0x32, - 0x1D, - 0x1D, - 0x14, - 0x14, - 0x10, - 0x0A, - 0x10, - 0x10, - 0x0A, - 0x06, - 0x14, - 0x0A, - 0x00, - 0x03, - 0x02, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x05, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x73, - 0x19, - 0x3F, - 0x00, - 0x0A, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6F, - 0x6A, - 0x6A, - 0x6A, - 0x06, - 0x3D, - 0x00, - 0x08, - 0x3F, - 0x6D, - 0x3F, - 0x3D, - 0x6D, - 0x6D, - 0x6D, - 0x3E, - 0x10, - 0x51, - 0x01, - 0x8C, - 0x01, - 0x63, - 0x06, - 0x5C, - 0x00, - 0x04, - 0x5E, - 0x85, - 0x48, - 0x48, - 0x0A, - 0xFE, - 0x00, - 0x0A, - 0x81, - 0x60, - 0x5C, - 0x5C, - 0x5C, - 0x5D, - 0x5E, - 0x85, - 0x48, - 0x48, - 0x0A, - 0xFE, - 0x00, - 0x03, - 0x81, - 0x5E, - 0x5D, - 0x00, - 0x04, - 0x5C, - 0x01, - 0x5D, - 0x01, - 0x4A, - 0x0D, - 0x4E, - 0x00, - 0x2D, - 0x33, - 0xA4, - 0xFE, - 0x47, - 0xC2, - 0x4E, - 0x4E, - 0x4E, - 0x33, - 0xC2, - 0x45, - 0x48, - 0xA4, - 0x33, - 0x4F, - 0x3A, - 0x33, - 0xA3, - 0x88, - 0x48, - 0xA5, - 0x4C, - 0x4C, - 0x73, - 0xC6, - 0xFE, - 0xFE, - 0x87, - 0xC5, - 0xC4, - 0x82, - 0xA5, - 0xFE, - 0x45, - 0x83, - 0x4C, - 0x4D, - 0x4D, - 0x37, - 0x7C, - 0xA6, - 0xFE, - 0xFE, - 0xC6, - 0x7A, - 0x00, - 0x04, - 0x66, - 0x00, - 0x0A, - 0x9D, - 0xA7, - 0x48, - 0xC5, - 0x2E, - 0x66, - 0x54, - 0xC6, - 0xFE, - 0xC6, - 0x04, - 0x34, - 0x00, - 0x0D, - 0x37, - 0x86, - 0xFE, - 0xA7, - 0x56, - 0x34, - 0x34, - 0x34, - 0x2A, - 0xA5, - 0xFE, - 0xA7, - 0x5B, - 0x00, - 0x06, - 0x2B, - 0x04, - 0x36, - 0x00, - 0x0C, - 0x2B, - 0x11, - 0x11, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x2C, - 0x2C, - 0x2F, - 0x05, - 0x27, - 0x06, - 0x1E, - 0x06, - 0x1B, - 0x01, - 0x1D, - 0x01, - 0x1D, - 0x08, - 0x29, - 0x00, - 0x03, - 0x31, - 0x31, - 0x31, - 0x00, - 0x0B, - 0x29, - 0x04, - 0x14, - 0x00, - 0x0F, - 0x31, - 0x10, - 0x10, - 0x29, - 0x32, - 0x1D, - 0x1D, - 0x1D, - 0x14, - 0x10, - 0x10, - 0x0A, - 0x08, - 0x08, - 0x0A, - 0x00, - 0x04, - 0x06, - 0x0F, - 0x0A, - 0x00, - 0x04, - 0x02, - 0x02, - 0x0A, - 0x0A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x00, - 0x03, - 0x73, - 0x3F, - 0x73, - 0x00, - 0x1F, - 0x3F, - 0x00, - 0x12, - 0x6A, - 0x6A, - 0x6A, - 0x3D, - 0x3D, - 0x3F, - 0x3F, - 0x3D, - 0x3D, - 0x3F, - 0x3F, - 0x3F, - 0x3D, - 0x3D, - 0x3D, - 0x3F, - 0x3E, - 0x3E, - 0x04, - 0x51, - 0x00, - 0x0E, - 0x3E, - 0x51, - 0x51, - 0x4B, - 0x51, - 0x4B, - 0x51, - 0x51, - 0x51, - 0x3E, - 0x51, - 0x51, - 0x51, - 0x60, - 0x05, - 0x5C, - 0x00, - 0x04, - 0x5E, - 0x65, - 0xA6, - 0x48, - 0x08, - 0xFE, - 0x00, - 0x04, - 0x48, - 0xC6, - 0x62, - 0x5D, - 0x04, - 0x5C, - 0x00, - 0x04, - 0x5E, - 0x64, - 0xA6, - 0x47, - 0x09, - 0xFE, - 0x00, - 0x03, - 0xC6, - 0x64, - 0x5D, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x60, - 0x39, - 0x00, - 0x0D, - 0x4E, - 0x00, - 0x0D, - 0x33, - 0xA4, - 0xFE, - 0x47, - 0xC2, - 0x4F, - 0x4E, - 0x3A, - 0x33, - 0xC2, - 0x45, - 0xFE, - 0xA4, - 0x00, - 0x04, - 0x33, - 0x00, - 0x2A, - 0x82, - 0x88, - 0x48, - 0xA5, - 0x4C, - 0x4C, - 0x2D, - 0x73, - 0xA5, - 0x87, - 0x48, - 0xFE, - 0xFE, - 0x45, - 0xFD, - 0xFE, - 0x45, - 0x83, - 0x4C, - 0x4D, - 0x4D, - 0x37, - 0x6C, - 0xC6, - 0xFE, - 0xFE, - 0xC5, - 0x66, - 0x66, - 0x2E, - 0x2E, - 0x2E, - 0x9D, - 0xA7, - 0x48, - 0xC5, - 0x66, - 0x34, - 0x54, - 0xC6, - 0xFE, - 0xA6, - 0x04, - 0x34, - 0x00, - 0x0D, - 0x2E, - 0x86, - 0xFE, - 0xA7, - 0x56, - 0x34, - 0x34, - 0x34, - 0x2B, - 0xA5, - 0xFE, - 0x88, - 0x5B, - 0x00, - 0x06, - 0x2B, - 0x00, - 0x10, - 0x36, - 0x36, - 0x36, - 0x2B, - 0x2B, - 0x11, - 0x11, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x30, - 0x2C, - 0x2F, - 0x2F, - 0x05, - 0x27, - 0x06, - 0x1E, - 0x06, - 0x1B, - 0x01, - 0x32, - 0x01, - 0x32, - 0x08, - 0x29, - 0x00, - 0x03, - 0x31, - 0x31, - 0x31, - 0x00, - 0x0A, - 0x29, - 0x00, - 0x09, - 0x10, - 0x31, - 0x31, - 0x31, - 0x14, - 0x31, - 0x10, - 0x10, - 0x10, - 0x00, - 0x04, - 0x14, - 0x00, - 0x07, - 0x10, - 0x10, - 0x10, - 0x0A, - 0x08, - 0x08, - 0x0A, - 0x00, - 0x04, - 0x06, - 0x07, - 0x0A, - 0x01, - 0x05, - 0x09, - 0x0A, - 0x01, - 0x02, - 0x01, - 0x0A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x22, - 0x3F, - 0x00, - 0x0C, - 0x6A, - 0x6A, - 0x6A, - 0x23, - 0x3D, - 0x3D, - 0x3D, - 0x69, - 0x69, - 0x6B, - 0x6B, - 0x3F, - 0x04, - 0x3D, - 0x01, - 0x6D, - 0x04, - 0x3E, - 0x0A, - 0x51, - 0x00, - 0x06, - 0x8C, - 0x95, - 0x3E, - 0x3E, - 0x63, - 0x5D, - 0x05, - 0x5C, - 0x01, - 0x5D, - 0x01, - 0x65, - 0x09, - 0x85, - 0x00, - 0x03, - 0x81, - 0x64, - 0x5E, - 0x00, - 0x06, - 0x5C, - 0x01, - 0x5E, - 0x01, - 0x64, - 0x09, - 0x85, - 0x00, - 0x03, - 0x81, - 0x65, - 0x5E, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5D, - 0x4A, - 0x00, - 0x0E, - 0x4E, - 0x00, - 0x16, - 0x33, - 0xA4, - 0x48, - 0x46, - 0x83, - 0x4E, - 0x33, - 0x4E, - 0x4E, - 0x83, - 0x45, - 0xFE, - 0xC4, - 0x33, - 0x4C, - 0x4C, - 0x4C, - 0xA3, - 0xA7, - 0xFE, - 0xA5, - 0x1C, - 0x04, - 0x4C, - 0x00, - 0x21, - 0x58, - 0xC3, - 0xA5, - 0x86, - 0xA6, - 0xC7, - 0xFE, - 0x45, - 0xC1, - 0x37, - 0x4D, - 0x4D, - 0x2E, - 0xA5, - 0x47, - 0xFE, - 0xFE, - 0x45, - 0xC2, - 0x2E, - 0x2E, - 0x2E, - 0x37, - 0x9D, - 0xA7, - 0xFE, - 0xC5, - 0x2A, - 0x34, - 0x54, - 0xC6, - 0xFE, - 0xC6, - 0x00, - 0x04, - 0x34, - 0x00, - 0x05, - 0x2E, - 0x86, - 0xFE, - 0xA7, - 0x54, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x04, - 0xA5, - 0x48, - 0xA7, - 0x5B, - 0x05, - 0x2B, - 0x00, - 0x24, - 0x36, - 0x36, - 0x36, - 0x30, - 0x30, - 0x2B, - 0x2B, - 0x30, - 0x30, - 0x11, - 0x30, - 0x30, - 0x2C, - 0x2C, - 0x2C, - 0x2F, - 0x2F, - 0x2F, - 0x1E, - 0x1A, - 0x1A, - 0x1E, - 0x1E, - 0x1E, - 0x2C, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x29, - 0x32, - 0x31, - 0x07, - 0x29, - 0x00, - 0x03, - 0x31, - 0x31, - 0x31, - 0x00, - 0x09, - 0x29, - 0x00, - 0x0A, - 0x10, - 0x10, - 0x31, - 0x14, - 0x14, - 0x10, - 0x10, - 0x14, - 0x10, - 0x0A, - 0x05, - 0x10, - 0x01, - 0x0A, - 0x01, - 0x10, - 0x06, - 0x0A, - 0x01, - 0x06, - 0x07, - 0x0A, - 0x0A, - 0x05, - 0x00, - 0x04, - 0x02, - 0x0A, - 0x0A, - 0x02, - 0x08, - 0x05, - 0x00, - 0x00, - 0x1B, - 0x3F, - 0x00, - 0x10, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x6A, - 0x23, - 0x23, - 0x3D, - 0x6A, - 0x09, - 0x3D, - 0x09, - 0x3E, - 0x00, - 0x03, - 0x8C, - 0x8C, - 0x8C, - 0x00, - 0x05, - 0x3E, - 0x00, - 0x03, - 0x4B, - 0x60, - 0x5D, - 0x00, - 0x05, - 0x5C, - 0x0C, - 0x5E, - 0x08, - 0x5C, - 0x0C, - 0x5E, - 0x06, - 0x5C, - 0x01, - 0x60, - 0x01, - 0x21, - 0x0F, - 0x4E, - 0x00, - 0x4C, - 0xA4, - 0x48, - 0xFE, - 0xA5, - 0x1C, - 0x33, - 0x33, - 0x3A, - 0x83, - 0x45, - 0xFE, - 0xC5, - 0x33, - 0x33, - 0x4C, - 0x4C, - 0x80, - 0x88, - 0xFE, - 0xA5, - 0x1C, - 0x4C, - 0x4C, - 0x4C, - 0x35, - 0x4C, - 0x4C, - 0x4C, - 0x4F, - 0x7A, - 0xA5, - 0xFE, - 0x45, - 0x83, - 0x2E, - 0x4D, - 0x4D, - 0x83, - 0xC7, - 0xFE, - 0x86, - 0xA6, - 0xFE, - 0x87, - 0x5B, - 0x2D, - 0x2E, - 0x37, - 0x56, - 0xA7, - 0xFE, - 0xC5, - 0x2A, - 0x34, - 0x54, - 0xC6, - 0xFE, - 0xA7, - 0x59, - 0x2A, - 0x34, - 0x34, - 0x36, - 0x86, - 0x48, - 0xC7, - 0x82, - 0x34, - 0x2B, - 0x2B, - 0x2B, - 0xA5, - 0xFE, - 0xA7, - 0x44, - 0x2B, - 0x07, - 0x36, - 0x01, - 0x30, - 0x05, - 0x2B, - 0x00, - 0x08, - 0x30, - 0x30, - 0x30, - 0x2C, - 0x2C, - 0x2F, - 0x2F, - 0x2F, - 0x07, - 0x1E, - 0x00, - 0x0A, - 0x2C, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x29, - 0x04, - 0x31, - 0x05, - 0x29, - 0x00, - 0x03, - 0x31, - 0x31, - 0x31, - 0x00, - 0x09, - 0x29, - 0x00, - 0x0C, - 0x31, - 0x10, - 0x10, - 0x0A, - 0x10, - 0x0A, - 0x0A, - 0x10, - 0x31, - 0x10, - 0x0A, - 0x10, - 0x13, - 0x0A, - 0x01, - 0x05, - 0x01, - 0x06, - 0x08, - 0x05, - 0x00, - 0x04, - 0x0A, - 0x0A, - 0x02, - 0x0A, - 0x08, - 0x05, - 0x00, - 0x00, - 0x1A, - 0x3F, - 0x06, - 0x23, - 0x01, - 0x6A, - 0x07, - 0x23, - 0x00, - 0x05, - 0x6A, - 0x3D, - 0x6A, - 0x3F, - 0x3F, - 0x00, - 0x07, - 0x3D, - 0x01, - 0x3E, - 0x01, - 0x3D, - 0x0B, - 0x3E, - 0x05, - 0x3D, - 0x00, - 0x03, - 0x4A, - 0x5E, - 0x5D, - 0x00, - 0x29, - 0x5C, - 0x01, - 0x5E, - 0x01, - 0x4B, - 0x0F, - 0x4E, - 0x00, - 0x4D, - 0x33, - 0xA4, - 0xFE, - 0xFE, - 0x46, - 0xA5, - 0x9E, - 0x33, - 0x1C, - 0xA5, - 0xFE, - 0xFE, - 0x48, - 0xA5, - 0x7C, - 0x1C, - 0x33, - 0xC4, - 0x46, - 0x48, - 0xA5, - 0x4C, - 0x4C, - 0x3C, - 0x83, - 0xC2, - 0x54, - 0x1F, - 0x35, - 0x2D, - 0x4F, - 0x86, - 0xFE, - 0xC7, - 0x82, - 0x4D, - 0x4D, - 0x56, - 0xA6, - 0xFE, - 0xA7, - 0x7C, - 0x83, - 0x45, - 0xFE, - 0xC5, - 0x4F, - 0x2E, - 0x37, - 0x56, - 0xA7, - 0x48, - 0xC5, - 0x28, - 0x34, - 0x54, - 0xC6, - 0xFE, - 0xFE, - 0x87, - 0x83, - 0x2B, - 0x2A, - 0x7A, - 0x87, - 0xFE, - 0xFE, - 0x87, - 0xC2, - 0x2A, - 0x2A, - 0x3C, - 0xC6, - 0xFE, - 0xA7, - 0x5A, - 0x2B, - 0x00, - 0x07, - 0x36, - 0x01, - 0x30, - 0x04, - 0x2B, - 0x00, - 0x09, - 0x30, - 0x11, - 0x30, - 0x2C, - 0x1E, - 0x1E, - 0x2F, - 0x2F, - 0x2F, - 0x00, - 0x07, - 0x1E, - 0x00, - 0x0A, - 0x2C, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x29, - 0x04, - 0x31, - 0x05, - 0x29, - 0x00, - 0x03, - 0x31, - 0x32, - 0x32, - 0x00, - 0x08, - 0x29, - 0x00, - 0x08, - 0x31, - 0x10, - 0x31, - 0x31, - 0x10, - 0x10, - 0x0A, - 0x0A, - 0x04, - 0x10, - 0x14, - 0x0A, - 0x01, - 0x05, - 0x01, - 0x06, - 0x09, - 0x05, - 0x01, - 0x02, - 0x01, - 0x0A, - 0x09, - 0x05, - 0x00, - 0x00, - 0x17, - 0x3F, - 0x00, - 0x0F, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x6A, - 0x23, - 0x21, - 0x6A, - 0x23, - 0x21, - 0x6A, - 0x00, - 0x07, - 0x23, - 0x05, - 0x3D, - 0x04, - 0x3E, - 0x01, - 0x3D, - 0x06, - 0x3E, - 0x09, - 0x3D, - 0x00, - 0x03, - 0x3F, - 0x63, - 0x5D, - 0x00, - 0x29, - 0x5C, - 0x01, - 0x4A, - 0x0C, - 0x4E, - 0x04, - 0x3A, - 0x00, - 0x4C, - 0x33, - 0xA4, - 0xFE, - 0x47, - 0x48, - 0xFE, - 0xA6, - 0xA5, - 0xC5, - 0xC7, - 0xFE, - 0x47, - 0xFD, - 0xFE, - 0xA6, - 0xC5, - 0xA5, - 0xA7, - 0xFF, - 0x48, - 0xC3, - 0x4C, - 0x4C, - 0x3F, - 0xC6, - 0x48, - 0xC6, - 0xA5, - 0xA4, - 0xA4, - 0x86, - 0x47, - 0xFF, - 0xA6, - 0x9D, - 0x4D, - 0x2D, - 0xC5, - 0xFE, - 0x47, - 0xC4, - 0x2E, - 0x35, - 0xA5, - 0xFE, - 0x47, - 0xC4, - 0x37, - 0x13, - 0x57, - 0xA7, - 0xFE, - 0xC5, - 0x34, - 0x34, - 0x54, - 0xC6, - 0xFE, - 0x45, - 0xFE, - 0x45, - 0x86, - 0xA5, - 0xC6, - 0xFE, - 0xFE, - 0x45, - 0xFE, - 0x47, - 0x86, - 0xA5, - 0x86, - 0xFE, - 0xFF, - 0x87, - 0x24, - 0x05, - 0x36, - 0x00, - 0x11, - 0x2B, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x2C, - 0x1A, - 0x2B, - 0x30, - 0x30, - 0x30, - 0x2C, - 0x1E, - 0x1E, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x04, - 0x1E, - 0x06, - 0x2C, - 0x00, - 0x07, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x27, - 0x27, - 0x27, - 0x00, - 0x04, - 0x31, - 0x00, - 0x03, - 0x32, - 0x1D, - 0x1D, - 0x00, - 0x09, - 0x29, - 0x00, - 0x18, - 0x10, - 0x10, - 0x10, - 0x31, - 0x10, - 0x0A, - 0x10, - 0x10, - 0x10, - 0x0A, - 0x0A, - 0x0A, - 0x10, - 0x0A, - 0x10, - 0x0A, - 0x10, - 0x0A, - 0x10, - 0x0A, - 0x0A, - 0x0A, - 0x08, - 0x08, - 0x07, - 0x0A, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x17, - 0x3F, - 0x0A, - 0x23, - 0x00, - 0x0C, - 0x6A, - 0x23, - 0x6A, - 0x23, - 0x6A, - 0x23, - 0x6A, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x05, - 0x3D, - 0x00, - 0x05, - 0x3E, - 0x3E, - 0x3E, - 0x3D, - 0x3E, - 0x00, - 0x08, - 0x3D, - 0x00, - 0x0B, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x3F, - 0x3F, - 0x3E, - 0x60, - 0x5D, - 0x00, - 0x25, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x5D, - 0x63, - 0x00, - 0x0D, - 0x4E, - 0x04, - 0x3A, - 0x00, - 0x0E, - 0x33, - 0xA4, - 0x48, - 0xA7, - 0x84, - 0xA6, - 0xFE, - 0x48, - 0xFE, - 0x48, - 0xFE, - 0xC5, - 0xC1, - 0xA6, - 0x05, - 0xFE, - 0x00, - 0x07, - 0xC6, - 0x6F, - 0x35, - 0x4C, - 0x7A, - 0x86, - 0x47, - 0x00, - 0x06, - 0xFE, - 0x00, - 0x25, - 0xC7, - 0x84, - 0x37, - 0x4C, - 0xA4, - 0x48, - 0x48, - 0x86, - 0x4F, - 0x2E, - 0x2E, - 0x54, - 0xA6, - 0x48, - 0x45, - 0xC1, - 0x37, - 0x56, - 0xC7, - 0xFF, - 0xC5, - 0x13, - 0x34, - 0x54, - 0xA6, - 0xFE, - 0xA5, - 0xA4, - 0x45, - 0xFF, - 0xFE, - 0xFE, - 0xFF, - 0x45, - 0x83, - 0xA4, - 0x45, - 0x00, - 0x04, - 0xFE, - 0x00, - 0x03, - 0xFD, - 0xC4, - 0x11, - 0x00, - 0x05, - 0x36, - 0x04, - 0x30, - 0x00, - 0x0D, - 0x2B, - 0x11, - 0x11, - 0x2B, - 0x2B, - 0x2B, - 0x30, - 0x2C, - 0x1E, - 0x1E, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x04, - 0x1E, - 0x06, - 0x2C, - 0x00, - 0x07, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x27, - 0x27, - 0x27, - 0x00, - 0x04, - 0x31, - 0x00, - 0x03, - 0x32, - 0x1D, - 0x1D, - 0x00, - 0x09, - 0x29, - 0x00, - 0x0A, - 0x10, - 0x10, - 0x31, - 0x10, - 0x31, - 0x10, - 0x10, - 0x10, - 0x0A, - 0x10, - 0x09, - 0x0A, - 0x00, - 0x05, - 0x10, - 0x0A, - 0x0A, - 0x08, - 0x08, - 0x00, - 0x07, - 0x0A, - 0x1B, - 0x05, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x3E, - 0x14, - 0x3F, - 0x00, - 0x0A, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6A, - 0x21, - 0x21, - 0x23, - 0x6F, - 0x3F, - 0x0D, - 0x23, - 0x00, - 0x08, - 0x3D, - 0x3D, - 0x39, - 0x3D, - 0x3D, - 0x3E, - 0x3E, - 0x3E, - 0x04, - 0x3D, - 0x00, - 0x11, - 0x23, - 0x3D, - 0x3D, - 0x3F, - 0x3F, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x3F, - 0x3F, - 0x3F, - 0x3E, - 0x60, - 0x00, - 0x25, - 0x5C, - 0x00, - 0x03, - 0x5D, - 0x60, - 0x39, - 0x00, - 0x08, - 0x4E, - 0x09, - 0x3A, - 0x00, - 0x4D, - 0x33, - 0x83, - 0x86, - 0xA4, - 0x33, - 0x3F, - 0xA4, - 0xC6, - 0xA6, - 0xC6, - 0xA5, - 0x23, - 0x4C, - 0x3F, - 0xA4, - 0x86, - 0xA6, - 0xC6, - 0xA5, - 0x7C, - 0x35, - 0x4C, - 0x35, - 0x35, - 0x9D, - 0x84, - 0xA5, - 0x86, - 0xA6, - 0xA6, - 0xC6, - 0xC5, - 0xC1, - 0x37, - 0x2E, - 0x4F, - 0xA4, - 0x86, - 0xC5, - 0x58, - 0x2E, - 0x37, - 0x37, - 0x2E, - 0x82, - 0xC5, - 0x86, - 0x84, - 0x34, - 0x52, - 0xA5, - 0x86, - 0x84, - 0x34, - 0x34, - 0x3C, - 0xA4, - 0x86, - 0x80, - 0x34, - 0x82, - 0xC5, - 0xC6, - 0xA6, - 0x86, - 0x83, - 0x34, - 0x34, - 0x80, - 0xA5, - 0xC6, - 0xA6, - 0x86, - 0xC2, - 0x2B, - 0x36, - 0x36, - 0x00, - 0x05, - 0x30, - 0x00, - 0x12, - 0x2B, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x2C, - 0x2C, - 0x30, - 0x30, - 0x2C, - 0x2C, - 0x2C, - 0x1E, - 0x1A, - 0x1A, - 0x1A, - 0x2C, - 0x1E, - 0x06, - 0x2C, - 0x01, - 0x1A, - 0x01, - 0x1E, - 0x05, - 0x1B, - 0x01, - 0x1D, - 0x01, - 0x2F, - 0x04, - 0x29, - 0x00, - 0x05, - 0x32, - 0x32, - 0x32, - 0x29, - 0x29, - 0x00, - 0x0D, - 0x10, - 0x01, - 0x0A, - 0x01, - 0x10, - 0x04, - 0x08, - 0x00, - 0x12, - 0x10, - 0x10, - 0x10, - 0x0A, - 0x0A, - 0x08, - 0x08, - 0x08, - 0x0A, - 0x0A, - 0x08, - 0x08, - 0x0A, - 0x0A, - 0x08, - 0x02, - 0x08, - 0x08, - 0x15, - 0x05, - 0x07, - 0x02, - 0x00, - 0x00, - 0x0C, - 0x3F, - 0x00, - 0x16, - 0x23, - 0x6F, - 0x23, - 0x6F, - 0x23, - 0x6F, - 0x23, - 0x6F, - 0x23, - 0x3F, - 0x23, - 0x3F, - 0x23, - 0x3F, - 0x23, - 0x6C, - 0x21, - 0x6C, - 0x23, - 0x3F, - 0x3F, - 0x3F, - 0x07, - 0x23, - 0x00, - 0x13, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3E, - 0x3D, - 0x3E, - 0x3E, - 0x3E, - 0x3D, - 0x3E, - 0x3D, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x00, - 0x05, - 0x3F, - 0x00, - 0x0A, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x4B, - 0x60, - 0x23, - 0x5C, - 0x00, - 0x03, - 0x5E, - 0x60, - 0x39, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x05, - 0x3A, - 0x3A, - 0x3A, - 0x4E, - 0x4E, - 0x00, - 0x07, - 0x3A, - 0x09, - 0x33, - 0x00, - 0x03, - 0x3A, - 0x9E, - 0x6C, - 0x00, - 0x04, - 0x33, - 0x00, - 0x04, - 0x4F, - 0x33, - 0x56, - 0x54, - 0x0A, - 0x35, - 0x00, - 0x08, - 0x9D, - 0x56, - 0x4E, - 0x35, - 0x35, - 0x4D, - 0x2E, - 0x4D, - 0x05, - 0x2E, - 0x01, - 0x37, - 0x01, - 0x37, - 0x04, - 0x34, - 0x01, - 0x37, - 0x0E, - 0x34, - 0x01, - 0x54, - 0x01, - 0x7A, - 0x06, - 0x34, - 0x00, - 0x0B, - 0x52, - 0x7A, - 0x2B, - 0x2B, - 0x2B, - 0x36, - 0x36, - 0x30, - 0x2B, - 0x30, - 0x2B, - 0x00, - 0x09, - 0x30, - 0x00, - 0x03, - 0x2C, - 0x2C, - 0x2C, - 0x00, - 0x05, - 0x1A, - 0x07, - 0x2C, - 0x01, - 0x1A, - 0x01, - 0x1A, - 0x06, - 0x1B, - 0x01, - 0x1D, - 0x01, - 0x1D, - 0x09, - 0x29, - 0x07, - 0x10, - 0x01, - 0x31, - 0x06, - 0x10, - 0x05, - 0x08, - 0x00, - 0x03, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x05, - 0x08, - 0x06, - 0x0A, - 0x00, - 0x03, - 0x08, - 0x08, - 0x08, - 0x00, - 0x15, - 0x05, - 0x08, - 0x02, - 0x00, - 0x00, - 0x07, - 0x3F, - 0x01, - 0x6F, - 0x0C, - 0x3F, - 0x00, - 0x09, - 0x6A, - 0x3F, - 0x3F, - 0x3F, - 0x6F, - 0x3F, - 0x6A, - 0x23, - 0x6C, - 0x00, - 0x0F, - 0x23, - 0x01, - 0x3D, - 0x01, - 0x23, - 0x04, - 0x3D, - 0x00, - 0x03, - 0x3E, - 0x3E, - 0x3E, - 0x00, - 0x04, - 0x3D, - 0x00, - 0x0B, - 0x23, - 0x3D, - 0x23, - 0x3F, - 0x3F, - 0x3F, - 0x3D, - 0x3D, - 0x23, - 0x23, - 0x3D, - 0x00, - 0x06, - 0x23, - 0x01, - 0x4B, - 0x01, - 0x60, - 0x20, - 0x5C, - 0x00, - 0x04, - 0x5D, - 0x5D, - 0x60, - 0x39, - 0x05, - 0x4E, - 0x00, - 0x05, - 0x3A, - 0x3A, - 0x3A, - 0x4E, - 0x4E, - 0x00, - 0x07, - 0x3A, - 0x0F, - 0x33, - 0x01, - 0x4F, - 0x01, - 0x33, - 0x0E, - 0x35, - 0x00, - 0x05, - 0x2D, - 0x2D, - 0x2D, - 0x35, - 0x4D, - 0x00, - 0x07, - 0x2E, - 0x01, - 0x37, - 0x01, - 0x37, - 0x06, - 0x34, - 0x00, - 0x04, - 0x13, - 0x3C, - 0x0F, - 0x2A, - 0x11, - 0x34, - 0x04, - 0x2B, - 0x00, - 0x03, - 0x36, - 0x36, - 0x36, - 0x00, - 0x04, - 0x30, - 0x00, - 0x04, - 0x2B, - 0x30, - 0x30, - 0x2B, - 0x05, - 0x30, - 0x00, - 0x06, - 0x2C, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x1A, - 0x07, - 0x2C, - 0x04, - 0x1A, - 0x06, - 0x1B, - 0x01, - 0x1D, - 0x01, - 0x1D, - 0x09, - 0x29, - 0x01, - 0x10, - 0x01, - 0x31, - 0x04, - 0x10, - 0x01, - 0x31, - 0x08, - 0x10, - 0x0C, - 0x08, - 0x06, - 0x0A, - 0x00, - 0x03, - 0x08, - 0x02, - 0x08, - 0x00, - 0x15, - 0x05, - 0x08, - 0x02, - 0x00, - 0x00, - 0x0A, - 0x3F, - 0x00, - 0x0D, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x6F, - 0x3F, - 0x3F, - 0x3F, - 0x6F, - 0x3F, - 0x6A, - 0x23, - 0x6C, - 0x00, - 0x04, - 0x23, - 0x00, - 0x03, - 0x6A, - 0x23, - 0x3F, - 0x00, - 0x0B, - 0x23, - 0x00, - 0x06, - 0x3F, - 0x3F, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x04, - 0x3D, - 0x01, - 0x3E, - 0x06, - 0x3D, - 0x00, - 0x15, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x6A, - 0x6A, - 0x6A, - 0x23, - 0x6A, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x21, - 0x23, - 0x39, - 0x63, - 0x5C, - 0x5D, - 0x00, - 0x1C, - 0x5C, - 0x00, - 0x05, - 0x5D, - 0x5C, - 0x63, - 0x39, - 0x21, - 0x00, - 0x0A, - 0x3A, - 0x15, - 0x33, - 0x10, - 0x35, - 0x08, - 0x2D, - 0x05, - 0x2E, - 0x08, - 0x34, - 0x00, - 0x05, - 0x57, - 0xC5, - 0x87, - 0xC4, - 0x2A, - 0x00, - 0x0D, - 0x34, - 0x00, - 0x1B, - 0x2A, - 0x2B, - 0x2B, - 0x36, - 0x2A, - 0x2B, - 0x2B, - 0x36, - 0x36, - 0x36, - 0x38, - 0x38, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x2B, - 0x30, - 0x30, - 0x11, - 0x30, - 0x38, - 0x30, - 0x2C, - 0x2C, - 0x2C, - 0x1A, - 0x00, - 0x09, - 0x2C, - 0x05, - 0x1A, - 0x00, - 0x09, - 0x1B, - 0x1B, - 0x29, - 0x29, - 0x29, - 0x32, - 0x32, - 0x29, - 0x29, - 0x00, - 0x07, - 0x1B, - 0x00, - 0x0A, - 0x10, - 0x10, - 0x10, - 0x31, - 0x10, - 0x10, - 0x10, - 0x31, - 0x10, - 0x31, - 0x04, - 0x10, - 0x0C, - 0x08, - 0x01, - 0x02, - 0x06, - 0x05, - 0x00, - 0x03, - 0x08, - 0x08, - 0x08, - 0x00, - 0x04, - 0x05, - 0x00, - 0x03, - 0x08, - 0x05, - 0x08, - 0x00, - 0x07, - 0x05, - 0x06, - 0x02, - 0x01, - 0x05, - 0x08, - 0x02, - 0x00, - 0x00, - 0x07, - 0x3F, - 0x00, - 0x03, - 0x23, - 0x6C, - 0x23, - 0x00, - 0x07, - 0x3F, - 0x00, - 0x05, - 0x6C, - 0x23, - 0x6A, - 0x21, - 0x6C, - 0x00, - 0x05, - 0x23, - 0x00, - 0x07, - 0x3F, - 0x3F, - 0x3F, - 0x23, - 0x23, - 0x21, - 0x0F, - 0x00, - 0x07, - 0x23, - 0x00, - 0x1C, - 0x3F, - 0x3E, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x3D, - 0x3F, - 0x3F, - 0x3F, - 0x23, - 0x3D, - 0x3F, - 0x3F, - 0x3F, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x69, - 0x39, - 0x6A, - 0x23, - 0x6A, - 0x23, - 0x3D, - 0x04, - 0x23, - 0x00, - 0x08, - 0x6A, - 0x6A, - 0x21, - 0x39, - 0x4A, - 0x5D, - 0x5D, - 0x5D, - 0x1A, - 0x5C, - 0x00, - 0x05, - 0x5E, - 0x4A, - 0x3A, - 0x21, - 0x21, - 0x00, - 0x0A, - 0x3A, - 0x11, - 0x33, - 0x00, - 0x04, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x10, - 0x35, - 0x08, - 0x2D, - 0x05, - 0x2E, - 0x08, - 0x34, - 0x00, - 0x06, - 0xC4, - 0xFE, - 0xFE, - 0xA7, - 0x54, - 0x2A, - 0x0C, - 0x34, - 0x00, - 0x03, - 0x2A, - 0x2B, - 0x2B, - 0x00, - 0x05, - 0x34, - 0x04, - 0x36, - 0x04, - 0x30, - 0x00, - 0x0C, - 0x2B, - 0x30, - 0x30, - 0x30, - 0x38, - 0x38, - 0x30, - 0x2C, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x06, - 0x2C, - 0x07, - 0x1A, - 0x01, - 0x1B, - 0x01, - 0x1B, - 0x07, - 0x29, - 0x07, - 0x1B, - 0x00, - 0x05, - 0x10, - 0x10, - 0x31, - 0x10, - 0x31, - 0x00, - 0x08, - 0x10, - 0x0C, - 0x08, - 0x01, - 0x0A, - 0x01, - 0x02, - 0x06, - 0x05, - 0x00, - 0x08, - 0x02, - 0x02, - 0x02, - 0x05, - 0x05, - 0x05, - 0x02, - 0x08, - 0x06, - 0x02, - 0x00, - 0x03, - 0x05, - 0x05, - 0x05, - 0x00, - 0x05, - 0x02, - 0x01, - 0x05, - 0x01, - 0x05, - 0x08, - 0x02, - 0x00, - 0x00, - 0x08, - 0x3F, - 0x00, - 0x07, - 0x23, - 0x6A, - 0x3F, - 0x23, - 0x3F, - 0x23, - 0x3F, - 0x00, - 0x04, - 0x23, - 0x01, - 0x6C, - 0x07, - 0x23, - 0x00, - 0x0B, - 0x3F, - 0x3F, - 0x23, - 0x23, - 0x0F, - 0x21, - 0x21, - 0x6C, - 0x23, - 0x21, - 0x21, - 0x00, - 0x04, - 0x23, - 0x00, - 0x10, - 0x3F, - 0x3F, - 0x3D, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x3F, - 0x3F, - 0x3F, - 0x23, - 0x23, - 0x3F, - 0x3F, - 0x3D, - 0x05, - 0x23, - 0x01, - 0x39, - 0x01, - 0x39, - 0x05, - 0x23, - 0x01, - 0x3D, - 0x04, - 0x23, - 0x00, - 0x08, - 0x6A, - 0x23, - 0x39, - 0x4B, - 0x60, - 0x5D, - 0x5D, - 0x5D, - 0x14, - 0x5C, - 0x00, - 0x05, - 0x5D, - 0x5D, - 0x5D, - 0x63, - 0x4B, - 0x00, - 0x04, - 0x4E, - 0x0A, - 0x3A, - 0x0E, - 0x33, - 0x00, - 0x07, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x00, - 0x10, - 0x35, - 0x00, - 0x0D, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x37, - 0x2E, - 0x2E, - 0x00, - 0x07, - 0x34, - 0x00, - 0x06, - 0x37, - 0x82, - 0xA7, - 0xFE, - 0xC5, - 0x3C, - 0x0D, - 0x2E, - 0x01, - 0x28, - 0x04, - 0x2E, - 0x05, - 0x34, - 0x01, - 0x36, - 0x01, - 0x36, - 0x05, - 0x2B, - 0x00, - 0x05, - 0x2C, - 0x11, - 0x30, - 0x38, - 0x38, - 0x00, - 0x0D, - 0x2C, - 0x00, - 0x06, - 0x1A, - 0x1A, - 0x1A, - 0x1B, - 0x1A, - 0x1A, - 0x04, - 0x1B, - 0x05, - 0x29, - 0x07, - 0x1B, - 0x05, - 0x10, - 0x01, - 0x31, - 0x08, - 0x10, - 0x0C, - 0x08, - 0x00, - 0x11, - 0x02, - 0x0A, - 0x02, - 0x02, - 0x08, - 0x02, - 0x02, - 0x08, - 0x02, - 0x08, - 0x08, - 0x08, - 0x02, - 0x02, - 0x02, - 0x04, - 0x08, - 0x00, - 0x16, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x3F, - 0x23, - 0x3F, - 0x23, - 0x23, - 0x23, - 0x3F, - 0x23, - 0x6A, - 0x23, - 0x6F, - 0x3F, - 0x3F, - 0x00, - 0x04, - 0x23, - 0x00, - 0x03, - 0x21, - 0x0F, - 0x21, - 0x00, - 0x05, - 0x23, - 0x00, - 0x0E, - 0x3D, - 0x23, - 0x23, - 0x6C, - 0x23, - 0x23, - 0x0F, - 0x0F, - 0x21, - 0x23, - 0x23, - 0x6C, - 0x6C, - 0x21, - 0x06, - 0x23, - 0x00, - 0x08, - 0x3D, - 0x3E, - 0x3D, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x12, - 0x23, - 0x00, - 0x10, - 0x3D, - 0x0D, - 0x23, - 0x23, - 0x6A, - 0x23, - 0x23, - 0x23, - 0x39, - 0x4A, - 0x60, - 0x5D, - 0x5C, - 0x5D, - 0x5D, - 0x5D, - 0x0B, - 0x5C, - 0x00, - 0x08, - 0x5D, - 0x5C, - 0x5C, - 0x5D, - 0x5C, - 0x5D, - 0x60, - 0x4B, - 0x06, - 0x4E, - 0x01, - 0x0C, - 0x04, - 0x3A, - 0x0D, - 0x33, - 0x00, - 0x0D, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x33, - 0x00, - 0x10, - 0x35, - 0x01, - 0x4D, - 0x01, - 0x2D, - 0x04, - 0x2E, - 0x05, - 0x37, - 0x0B, - 0x2E, - 0x00, - 0x03, - 0x82, - 0x84, - 0x9D, - 0x00, - 0x07, - 0x2E, - 0x00, - 0x03, - 0x2D, - 0x2D, - 0x2D, - 0x00, - 0x09, - 0x2E, - 0x07, - 0x34, - 0x05, - 0x2B, - 0x00, - 0x09, - 0x30, - 0x2B, - 0x2B, - 0x36, - 0x30, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x00, - 0x05, - 0x2C, - 0x00, - 0x07, - 0x1A, - 0x1A, - 0x1A, - 0x2C, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x0F, - 0x1B, - 0x04, - 0x29, - 0x0B, - 0x10, - 0x01, - 0x0A, - 0x07, - 0x08, - 0x01, - 0x10, - 0x06, - 0x08, - 0x00, - 0x16, - 0x03, - 0x08, - 0x08, - 0x02, - 0x08, - 0x03, - 0x08, - 0x03, - 0x03, - 0x02, - 0x03, - 0x03, - 0x08, - 0x02, - 0x08, - 0x08, - 0x03, - 0x02, - 0x02, - 0x03, - 0x01, - 0x04, - 0x11, - 0x02, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x23, - 0x3F, - 0x23, - 0x23, - 0x23, - 0x3F, - 0x23, - 0x23, - 0x6A, - 0x23, - 0x3F, - 0x3F, - 0x05, - 0x23, - 0x00, - 0x03, - 0x21, - 0x21, - 0x21, - 0x00, - 0x0A, - 0x23, - 0x00, - 0x0A, - 0x21, - 0x0F, - 0x21, - 0x23, - 0x6C, - 0x21, - 0x6C, - 0x21, - 0x6C, - 0x0F, - 0x04, - 0x23, - 0x00, - 0x0D, - 0x6A, - 0x3D, - 0x3D, - 0x3E, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x00, - 0x06, - 0x23, - 0x01, - 0x3D, - 0x06, - 0x23, - 0x01, - 0x3D, - 0x08, - 0x23, - 0x00, - 0x0F, - 0x21, - 0x21, - 0x39, - 0x4A, - 0x63, - 0x5E, - 0x5D, - 0x5D, - 0x5D, - 0x5C, - 0x5C, - 0x5C, - 0x5D, - 0x5D, - 0x5C, - 0x00, - 0x07, - 0x5D, - 0x00, - 0x03, - 0x5E, - 0x63, - 0x4B, - 0x00, - 0x08, - 0x4E, - 0x05, - 0x3A, - 0x0E, - 0x33, - 0x00, - 0x05, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x00, - 0x07, - 0x33, - 0x10, - 0x35, - 0x01, - 0x4D, - 0x01, - 0x2D, - 0x04, - 0x2E, - 0x05, - 0x37, - 0x0E, - 0x2E, - 0x11, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2E, - 0x07, - 0x34, - 0x01, - 0x2A, - 0x01, - 0x2A, - 0x06, - 0x2B, - 0x00, - 0x06, - 0x36, - 0x30, - 0x2C, - 0x2C, - 0x1A, - 0x1A, - 0x05, - 0x2C, - 0x00, - 0x07, - 0x1A, - 0x1A, - 0x1A, - 0x2C, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x0F, - 0x1B, - 0x04, - 0x29, - 0x07, - 0x10, - 0x00, - 0x05, - 0x31, - 0x10, - 0x10, - 0x10, - 0x0A, - 0x00, - 0x04, - 0x08, - 0x00, - 0x03, - 0x10, - 0x08, - 0x10, - 0x00, - 0x07, - 0x08, - 0x00, - 0x16, - 0x02, - 0x08, - 0x02, - 0x08, - 0x08, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x08, - 0x03, - 0x08, - 0x02, - 0x02, - 0x03, - 0x03, - 0x03, - 0x02, - 0x01, - 0x01, - 0x03, - 0x0A, - 0x02, - 0x00, - 0x07, - 0x01, - 0x02, - 0x01, - 0x02, - 0x01, - 0x02, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x3F, - 0x23, - 0x3F, - 0x00, - 0x04, - 0x23, - 0x05, - 0x3F, - 0x00, - 0x08, - 0x23, - 0x23, - 0x0F, - 0x21, - 0x0F, - 0x21, - 0x21, - 0x0F, - 0x0A, - 0x23, - 0x00, - 0x05, - 0x0F, - 0x0F, - 0x54, - 0x0F, - 0x4E, - 0x00, - 0x04, - 0x21, - 0x00, - 0x06, - 0x23, - 0x23, - 0x21, - 0x23, - 0x23, - 0x23, - 0x04, - 0x3D, - 0x04, - 0x23, - 0x01, - 0x3D, - 0x0B, - 0x23, - 0x01, - 0x3D, - 0x08, - 0x23, - 0x00, - 0x05, - 0x21, - 0x21, - 0x21, - 0x23, - 0x23, - 0x00, - 0x05, - 0x21, - 0x00, - 0x07, - 0x4B, - 0x4A, - 0x63, - 0x60, - 0x60, - 0x5E, - 0x5E, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x08, - 0x5E, - 0x5E, - 0x60, - 0x60, - 0x63, - 0x4B, - 0x39, - 0x3A, - 0x09, - 0x4E, - 0x00, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x0A, - 0x33, - 0x00, - 0x09, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x00, - 0x07, - 0x35, - 0x01, - 0x33, - 0x01, - 0x33, - 0x0C, - 0x35, - 0x00, - 0x05, - 0x2D, - 0x2D, - 0x2D, - 0x35, - 0x4D, - 0x00, - 0x09, - 0x37, - 0x05, - 0x2E, - 0x05, - 0x37, - 0x16, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2E, - 0x09, - 0x34, - 0x00, - 0x03, - 0x2A, - 0x2A, - 0x2A, - 0x00, - 0x04, - 0x2B, - 0x01, - 0x30, - 0x01, - 0x30, - 0x08, - 0x2C, - 0x05, - 0x1A, - 0x0E, - 0x1B, - 0x00, - 0x05, - 0x29, - 0x29, - 0x1B, - 0x29, - 0x29, - 0x00, - 0x07, - 0x10, - 0x00, - 0x04, - 0x31, - 0x10, - 0x10, - 0x10, - 0x0E, - 0x08, - 0x00, - 0x08, - 0x03, - 0x08, - 0x08, - 0x02, - 0x02, - 0x08, - 0x03, - 0x02, - 0x04, - 0x03, - 0x00, - 0x0D, - 0x08, - 0x03, - 0x03, - 0x08, - 0x03, - 0x08, - 0x03, - 0x03, - 0x02, - 0x01, - 0x03, - 0x04, - 0x03, - 0x00, - 0x07, - 0x02, - 0x01, - 0x04, - 0x01, - 0x04, - 0x08, - 0x02, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x01, - 0x3F, - 0x06, - 0x23, - 0x04, - 0x3F, - 0x00, - 0x05, - 0x23, - 0x23, - 0x21, - 0x0F, - 0x21, - 0x00, - 0x0D, - 0x23, - 0x00, - 0x0A, - 0x0F, - 0x0F, - 0x0F, - 0x3A, - 0x0F, - 0x3A, - 0x21, - 0x23, - 0x23, - 0x21, - 0x05, - 0x23, - 0x00, - 0x13, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x00, - 0x08, - 0x23, - 0x05, - 0x21, - 0x01, - 0x23, - 0x01, - 0x23, - 0x04, - 0x21, - 0x00, - 0x14, - 0x39, - 0x21, - 0x21, - 0x39, - 0x4B, - 0x4A, - 0x63, - 0x60, - 0x5E, - 0x5D, - 0x5E, - 0x5E, - 0x60, - 0x63, - 0x4A, - 0x4B, - 0x21, - 0x0C, - 0x3A, - 0x3A, - 0x05, - 0x4E, - 0x00, - 0x03, - 0x3A, - 0x3A, - 0x0C, - 0x00, - 0x04, - 0x3A, - 0x09, - 0x33, - 0x00, - 0x0A, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x15, - 0x35, - 0x00, - 0x05, - 0x2D, - 0x2D, - 0x2D, - 0x35, - 0x35, - 0x00, - 0x05, - 0x37, - 0x07, - 0x2E, - 0x01, - 0x2D, - 0x01, - 0x2D, - 0x05, - 0x35, - 0x13, - 0x2D, - 0x05, - 0x2E, - 0x0C, - 0x34, - 0x00, - 0x05, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x00, - 0x04, - 0x30, - 0x05, - 0x2C, - 0x05, - 0x1A, - 0x0E, - 0x1B, - 0x05, - 0x29, - 0x08, - 0x10, - 0x00, - 0x04, - 0x31, - 0x10, - 0x10, - 0x10, - 0x0C, - 0x08, - 0x00, - 0x1A, - 0x03, - 0x08, - 0x03, - 0x02, - 0x02, - 0x08, - 0x02, - 0x03, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x04, - 0x03, - 0x08, - 0x04, - 0x02, - 0x02, - 0x04, - 0x04, - 0x04, - 0x05, - 0x02, - 0x00, - 0x04, - 0x04, - 0x02, - 0x03, - 0x04, - 0x08, - 0x02, - 0x00, - 0x00, - 0x00, - 0x03, - 0x23, - 0x3F, - 0x3F, - 0x00, - 0x0B, - 0x23, - 0x00, - 0x03, - 0x0F, - 0x21, - 0x21, - 0x00, - 0x0C, - 0x23, - 0x00, - 0x0D, - 0x0F, - 0x6C, - 0x0F, - 0x0F, - 0x3A, - 0x0C, - 0x0F, - 0x21, - 0x21, - 0x23, - 0x23, - 0x23, - 0x21, - 0x00, - 0x0A, - 0x23, - 0x01, - 0x3D, - 0x07, - 0x23, - 0x00, - 0x0C, - 0x3D, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x21, - 0x39, - 0x21, - 0x23, - 0x23, - 0x18, - 0x21, - 0x00, - 0x07, - 0x4E, - 0x4E, - 0x21, - 0x21, - 0x0C, - 0x3A, - 0x3A, - 0x00, - 0x05, - 0x4E, - 0x07, - 0x3A, - 0x01, - 0x4F, - 0x01, - 0x3A, - 0x06, - 0x33, - 0x00, - 0x05, - 0x3A, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x00, - 0x04, - 0x33, - 0x01, - 0x4F, - 0x01, - 0x33, - 0x15, - 0x35, - 0x00, - 0x05, - 0x2D, - 0x2D, - 0x2D, - 0x35, - 0x35, - 0x00, - 0x05, - 0x37, - 0x05, - 0x2E, - 0x00, - 0x04, - 0x2D, - 0x2E, - 0x2D, - 0x2D, - 0x05, - 0x4C, - 0x13, - 0x2D, - 0x07, - 0x2E, - 0x0B, - 0x34, - 0x01, - 0x2A, - 0x05, - 0x2B, - 0x01, - 0x30, - 0x01, - 0x2B, - 0x05, - 0x2C, - 0x05, - 0x1A, - 0x0E, - 0x1B, - 0x05, - 0x29, - 0x0A, - 0x10, - 0x01, - 0x08, - 0x01, - 0x10, - 0x0C, - 0x08, - 0x01, - 0x03, - 0x04, - 0x08, - 0x00, - 0x0C, - 0x02, - 0x0A, - 0x03, - 0x08, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x02, - 0x03, - 0x08, - 0x04, - 0x04, - 0x00, - 0x05, - 0x02, - 0x02, - 0x04, - 0x04, - 0x04, - 0x00, - 0x05, - 0x02, - 0x00, - 0x04, - 0x04, - 0x03, - 0x04, - 0x04, - 0x08, - 0x02, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x05, - 0x23, - 0x00, - 0x04, - 0x3F, - 0x23, - 0x23, - 0x21, - 0x04, - 0x23, - 0x01, - 0x21, - 0x0A, - 0x23, - 0x00, - 0x10, - 0x0F, - 0x0F, - 0x23, - 0x23, - 0x21, - 0x0F, - 0x0F, - 0x0F, - 0x21, - 0x3A, - 0x3A, - 0x0F, - 0x23, - 0x21, - 0x23, - 0x21, - 0x05, - 0x23, - 0x00, - 0x05, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x00, - 0x0B, - 0x23, - 0x01, - 0x3D, - 0x04, - 0x23, - 0x11, - 0x21, - 0x04, - 0x0D, - 0x06, - 0x21, - 0x00, - 0x09, - 0x3A, - 0x21, - 0x4E, - 0x4E, - 0x4E, - 0x21, - 0x21, - 0x3A, - 0x0C, - 0x00, - 0x0A, - 0x3A, - 0x00, - 0x15, - 0x33, - 0x3A, - 0x3A, - 0x3A, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x35, - 0x35, - 0x33, - 0x33, - 0x4F, - 0x00, - 0x13, - 0x35, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x35, - 0x35, - 0x35, - 0x00, - 0x07, - 0x2E, - 0x00, - 0x07, - 0x13, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x4C, - 0x4C, - 0x00, - 0x05, - 0x35, - 0x13, - 0x2D, - 0x08, - 0x2E, - 0x0B, - 0x34, - 0x06, - 0x2B, - 0x00, - 0x04, - 0x30, - 0x11, - 0x2C, - 0x09, - 0x04, - 0x2C, - 0x01, - 0x1A, - 0x01, - 0x1A, - 0x0F, - 0x1B, - 0x11, - 0x10, - 0x0A, - 0x08, - 0x00, - 0x15, - 0x03, - 0x03, - 0x03, - 0x08, - 0x02, - 0x02, - 0x04, - 0x08, - 0x03, - 0x08, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x02, - 0x03, - 0x03, - 0x02, - 0x04, - 0x04, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x04, - 0x04, - 0x04, - 0x00, - 0x05, - 0x02, - 0x00, - 0x07, - 0x04, - 0x04, - 0x03, - 0x04, - 0x02, - 0x01, - 0x02, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3F, - 0x04, - 0x23, - 0x00, - 0x05, - 0x3F, - 0x3F, - 0x23, - 0x21, - 0x0F, - 0x00, - 0x04, - 0x23, - 0x01, - 0x21, - 0x07, - 0x23, - 0x00, - 0x06, - 0x0F, - 0x21, - 0x0F, - 0x21, - 0x0F, - 0x21, - 0x04, - 0x0F, - 0x00, - 0x05, - 0x4E, - 0x0F, - 0x3A, - 0x0F, - 0x21, - 0x00, - 0x0F, - 0x23, - 0x01, - 0x3D, - 0x08, - 0x23, - 0x00, - 0x08, - 0x3D, - 0x23, - 0x23, - 0x6A, - 0x39, - 0x6A, - 0x21, - 0x39, - 0x0F, - 0x21, - 0x04, - 0x0D, - 0x00, - 0x13, - 0x21, - 0x21, - 0x21, - 0x3A, - 0x21, - 0x3A, - 0x21, - 0x3A, - 0x4E, - 0x4E, - 0x21, - 0x21, - 0x21, - 0x3A, - 0x3A, - 0x3A, - 0x0C, - 0x3A, - 0x0C, - 0x00, - 0x06, - 0x3A, - 0x00, - 0x15, - 0x33, - 0x3A, - 0x3A, - 0x3A, - 0x33, - 0x4F, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x4F, - 0x33, - 0x35, - 0x35, - 0x33, - 0x4F, - 0x33, - 0x00, - 0x13, - 0x35, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x35, - 0x35, - 0x35, - 0x00, - 0x08, - 0x2E, - 0x01, - 0x2D, - 0x01, - 0x4D, - 0x09, - 0x35, - 0x13, - 0x2D, - 0x08, - 0x2E, - 0x0B, - 0x34, - 0x01, - 0x2A, - 0x06, - 0x2B, - 0x01, - 0x11, - 0x06, - 0x2C, - 0x01, - 0x1A, - 0x01, - 0x1A, - 0x0F, - 0x1B, - 0x08, - 0x10, - 0x01, - 0x31, - 0x08, - 0x10, - 0x0A, - 0x08, - 0x00, - 0x15, - 0x02, - 0x08, - 0x02, - 0x08, - 0x02, - 0x08, - 0x04, - 0x04, - 0x03, - 0x03, - 0x03, - 0x02, - 0x03, - 0x03, - 0x02, - 0x03, - 0x04, - 0x08, - 0x03, - 0x04, - 0x04, - 0x00, - 0x04, - 0x02, - 0x00, - 0x03, - 0x04, - 0x04, - 0x04, - 0x00, - 0x05, - 0x02, - 0x04, - 0x04, - 0x00, - 0x04, - 0x02, - 0x02, - 0x02, - 0x01, - 0x00, - 0x00, - 0x08, - 0x23, - 0x01, - 0x21, - 0x01, - 0x21, - 0x05, - 0x23, - 0x01, - 0x21, - 0x06, - 0x23, - 0x00, - 0x0F, - 0x21, - 0x0F, - 0x21, - 0x0F, - 0x21, - 0x4E, - 0x21, - 0x4E, - 0x0F, - 0x4E, - 0x0F, - 0x0F, - 0x3A, - 0x3A, - 0x21, - 0x00, - 0x04, - 0x23, - 0x00, - 0x0A, - 0x0F, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x0C, - 0x23, - 0x00, - 0x04, - 0x6A, - 0x6A, - 0x6A, - 0x39, - 0x0F, - 0x21, - 0x00, - 0x04, - 0x23, - 0x23, - 0x0D, - 0x0D, - 0x04, - 0x21, - 0x00, - 0x04, - 0x3A, - 0x0C, - 0x3A, - 0x21, - 0x07, - 0x4E, - 0x01, - 0x3A, - 0x01, - 0x0C, - 0x0C, - 0x3A, - 0x00, - 0x09, - 0x4F, - 0x4F, - 0x4F, - 0x1F, - 0x3A, - 0x3A, - 0x33, - 0x1F, - 0x35, - 0x00, - 0x05, - 0x33, - 0x00, - 0x05, - 0x35, - 0x35, - 0x4F, - 0x33, - 0x33, - 0x00, - 0x11, - 0x35, - 0x06, - 0x2D, - 0x00, - 0x03, - 0x35, - 0x35, - 0x35, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x07, - 0x37, - 0x37, - 0x37, - 0x4D, - 0x4D, - 0x4C, - 0x35, - 0x00, - 0x0A, - 0x1C, - 0x00, - 0x05, - 0x35, - 0x35, - 0x1C, - 0x1C, - 0x1C, - 0x00, - 0x0B, - 0x2D, - 0x08, - 0x2E, - 0x00, - 0x0E, - 0x34, - 0x2A, - 0x36, - 0x2A, - 0x36, - 0x2A, - 0x36, - 0x2A, - 0x36, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x28, - 0x04, - 0x2B, - 0x00, - 0x03, - 0x11, - 0x11, - 0x11, - 0x00, - 0x04, - 0x2C, - 0x01, - 0x1A, - 0x01, - 0x1A, - 0x0F, - 0x1B, - 0x07, - 0x10, - 0x00, - 0x09, - 0x31, - 0x10, - 0x10, - 0x08, - 0x10, - 0x08, - 0x10, - 0x08, - 0x10, - 0x00, - 0x07, - 0x08, - 0x04, - 0x03, - 0x00, - 0x10, - 0x08, - 0x02, - 0x08, - 0x08, - 0x02, - 0x08, - 0x04, - 0x04, - 0x03, - 0x02, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x08, - 0x05, - 0x04, - 0x04, - 0x02, - 0x07, - 0x04, - 0x01, - 0x03, - 0x04, - 0x04, - 0x03, - 0x02, - 0x00, - 0x00, - 0x05, - 0x23, - 0x01, - 0x21, - 0x09, - 0x23, - 0x00, - 0x0B, - 0x0F, - 0x0F, - 0x0F, - 0x6C, - 0x0F, - 0x21, - 0x0F, - 0x0F, - 0x23, - 0x0F, - 0x21, - 0x00, - 0x04, - 0x0F, - 0x01, - 0x4E, - 0x04, - 0x0F, - 0x00, - 0x07, - 0x0C, - 0x21, - 0x0F, - 0x21, - 0x0F, - 0x21, - 0x0F, - 0x00, - 0x09, - 0x23, - 0x01, - 0x3D, - 0x07, - 0x23, - 0x00, - 0x08, - 0x3D, - 0x23, - 0x39, - 0x6A, - 0x39, - 0x6A, - 0x39, - 0x39, - 0x0A, - 0x21, - 0x07, - 0x0D, - 0x06, - 0x21, - 0x00, - 0x0B, - 0x3A, - 0x4E, - 0x21, - 0x4E, - 0x21, - 0x4E, - 0x21, - 0x21, - 0x0C, - 0x3A, - 0x0C, - 0x00, - 0x0D, - 0x3A, - 0x00, - 0x09, - 0x4F, - 0x33, - 0x4F, - 0x1F, - 0x16, - 0x16, - 0x16, - 0x1F, - 0x1F, - 0x00, - 0x04, - 0x35, - 0x00, - 0x07, - 0x4F, - 0x33, - 0x35, - 0x35, - 0x33, - 0x4F, - 0x33, - 0x00, - 0x11, - 0x35, - 0x06, - 0x2D, - 0x00, - 0x08, - 0x37, - 0x37, - 0x37, - 0x2E, - 0x2E, - 0x2E, - 0x37, - 0x37, - 0x06, - 0x35, - 0x01, - 0x1C, - 0x07, - 0x1F, - 0x00, - 0x0A, - 0x1C, - 0x1C, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x1C, - 0x12, - 0x19, - 0x19, - 0x07, - 0x2D, - 0x0A, - 0x2E, - 0x01, - 0x28, - 0x0B, - 0x2A, - 0x00, - 0x03, - 0x2B, - 0x2B, - 0x2A, - 0x00, - 0x05, - 0x2B, - 0x00, - 0x08, - 0x11, - 0x2C, - 0x11, - 0x2C, - 0x2C, - 0x2C, - 0x09, - 0x09, - 0x0E, - 0x1B, - 0x11, - 0x10, - 0x08, - 0x08, - 0x00, - 0x11, - 0x03, - 0x03, - 0x02, - 0x02, - 0x08, - 0x08, - 0x02, - 0x08, - 0x04, - 0x04, - 0x04, - 0x03, - 0x08, - 0x03, - 0x03, - 0x08, - 0x03, - 0x00, - 0x04, - 0x04, - 0x01, - 0x03, - 0x08, - 0x04, - 0x07, - 0x03, - 0x03, - 0x04, - 0x00, - 0x00, - 0x0F, - 0x23, - 0x01, - 0x0F, - 0x01, - 0x23, - 0x05, - 0x0F, - 0x01, - 0x6C, - 0x05, - 0x0F, - 0x01, - 0x4E, - 0x04, - 0x0F, - 0x00, - 0x11, - 0x52, - 0x0F, - 0x3A, - 0x21, - 0x21, - 0x0F, - 0x21, - 0x0F, - 0x0F, - 0x23, - 0x23, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x3D, - 0x00, - 0x0B, - 0x23, - 0x04, - 0x39, - 0x00, - 0x06, - 0x6A, - 0x39, - 0x21, - 0x39, - 0x21, - 0x39, - 0x06, - 0x21, - 0x07, - 0x0D, - 0x07, - 0x21, - 0x05, - 0x4E, - 0x00, - 0x07, - 0x3A, - 0x21, - 0x3A, - 0x0C, - 0x3A, - 0x3A, - 0x0C, - 0x00, - 0x0B, - 0x3A, - 0x00, - 0x09, - 0x4F, - 0x33, - 0x33, - 0x1F, - 0x16, - 0x16, - 0x16, - 0x1F, - 0x1F, - 0x00, - 0x04, - 0x35, - 0x00, - 0x07, - 0x33, - 0x33, - 0x35, - 0x35, - 0x33, - 0x33, - 0x33, - 0x00, - 0x11, - 0x35, - 0x06, - 0x2D, - 0x00, - 0x08, - 0x37, - 0x37, - 0x37, - 0x2E, - 0x2E, - 0x2E, - 0x37, - 0x37, - 0x06, - 0x35, - 0x01, - 0x1C, - 0x07, - 0x1F, - 0x00, - 0x0A, - 0x1C, - 0x1C, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x1C, - 0x12, - 0x19, - 0x19, - 0x07, - 0x2D, - 0x0A, - 0x2E, - 0x01, - 0x28, - 0x0A, - 0x2A, - 0x00, - 0x04, - 0x2B, - 0x28, - 0x2B, - 0x2A, - 0x06, - 0x2B, - 0x01, - 0x11, - 0x01, - 0x11, - 0x06, - 0x09, - 0x0D, - 0x1B, - 0x09, - 0x10, - 0x01, - 0x0A, - 0x07, - 0x10, - 0x06, - 0x08, - 0x04, - 0x03, - 0x00, - 0x06, - 0x08, - 0x02, - 0x02, - 0x08, - 0x08, - 0x02, - 0x04, - 0x04, - 0x00, - 0x0E, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x08, - 0x03, - 0x04, - 0x04, - 0x04, - 0x03, - 0x04, - 0x03, - 0x02, - 0x04, - 0x04, - 0x07, - 0x03, - 0x03, - 0x04, - 0x00, - 0x00, - 0x00, - 0x06, - 0x21, - 0x0F, - 0x21, - 0x23, - 0x23, - 0x21, - 0x08, - 0x23, - 0x05, - 0x0F, - 0x00, - 0x0D, - 0x4E, - 0x0F, - 0x21, - 0x0F, - 0x21, - 0x0F, - 0x0F, - 0x0F, - 0x0C, - 0x0F, - 0x0F, - 0x0F, - 0x52, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x05, - 0x21, - 0x0C, - 0x0C, - 0x0F, - 0x21, - 0x00, - 0x0B, - 0x23, - 0x00, - 0x03, - 0x3D, - 0x39, - 0x39, - 0x00, - 0x05, - 0x23, - 0x00, - 0x08, - 0x39, - 0x23, - 0x21, - 0x39, - 0x21, - 0x39, - 0x39, - 0x39, - 0x08, - 0x21, - 0x07, - 0x0D, - 0x09, - 0x21, - 0x00, - 0x0A, - 0x4E, - 0x21, - 0x21, - 0x21, - 0x3A, - 0x21, - 0x3A, - 0x3A, - 0x33, - 0x33, - 0x06, - 0x3A, - 0x01, - 0x16, - 0x01, - 0x16, - 0x05, - 0x3A, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x16, - 0x16, - 0x16, - 0x1F, - 0x1F, - 0x00, - 0x05, - 0x35, - 0x00, - 0x07, - 0x33, - 0x4F, - 0x35, - 0x35, - 0x4C, - 0x4C, - 0x4C, - 0x00, - 0x05, - 0x35, - 0x04, - 0x4C, - 0x00, - 0x03, - 0x35, - 0x35, - 0x35, - 0x00, - 0x05, - 0x2D, - 0x04, - 0x37, - 0x07, - 0x2E, - 0x00, - 0x09, - 0x37, - 0x37, - 0x4D, - 0x35, - 0x35, - 0x35, - 0x1C, - 0x1C, - 0x1C, - 0x00, - 0x0D, - 0x1F, - 0x00, - 0x04, - 0x1C, - 0x1C, - 0x12, - 0x19, - 0x07, - 0x2D, - 0x00, - 0x03, - 0x2E, - 0x28, - 0x28, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x03, - 0x28, - 0x28, - 0x2E, - 0x00, - 0x09, - 0x28, - 0x00, - 0x07, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x36, - 0x2A, - 0x2A, - 0x00, - 0x05, - 0x2B, - 0x06, - 0x11, - 0x00, - 0x06, - 0x09, - 0x09, - 0x1B, - 0x1B, - 0x1B, - 0x29, - 0x07, - 0x1B, - 0x09, - 0x10, - 0x00, - 0x09, - 0x0A, - 0x10, - 0x10, - 0x08, - 0x10, - 0x08, - 0x10, - 0x08, - 0x10, - 0x00, - 0x06, - 0x08, - 0x00, - 0x0B, - 0x03, - 0x08, - 0x03, - 0x03, - 0x03, - 0x08, - 0x03, - 0x08, - 0x08, - 0x02, - 0x08, - 0x00, - 0x05, - 0x04, - 0x00, - 0x06, - 0x02, - 0x01, - 0x03, - 0x03, - 0x03, - 0x02, - 0x06, - 0x04, - 0x01, - 0x03, - 0x04, - 0x04, - 0x05, - 0x03, - 0x00, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x21, - 0x21, - 0x0F, - 0x21, - 0x04, - 0x23, - 0x00, - 0x0D, - 0x0F, - 0x23, - 0x0F, - 0x23, - 0x0F, - 0x0F, - 0x0F, - 0x23, - 0x0F, - 0x23, - 0x0F, - 0x0F, - 0x4E, - 0x00, - 0x06, - 0x0F, - 0x00, - 0x0E, - 0x0C, - 0x0C, - 0x16, - 0x0F, - 0x16, - 0x16, - 0x16, - 0x0F, - 0x0F, - 0x0D, - 0x0D, - 0x21, - 0x21, - 0x21, - 0x07, - 0x23, - 0x00, - 0x09, - 0x3D, - 0x23, - 0x3D, - 0x23, - 0x23, - 0x39, - 0x23, - 0x39, - 0x23, - 0x00, - 0x05, - 0x39, - 0x00, - 0x07, - 0x21, - 0x21, - 0x39, - 0x23, - 0x39, - 0x39, - 0x39, - 0x00, - 0x06, - 0x21, - 0x07, - 0x0D, - 0x0F, - 0x21, - 0x01, - 0x3A, - 0x04, - 0x0C, - 0x06, - 0x3A, - 0x01, - 0x16, - 0x01, - 0x16, - 0x05, - 0x3A, - 0x05, - 0x16, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x05, - 0x35, - 0x01, - 0x4F, - 0x01, - 0x33, - 0x11, - 0x35, - 0x05, - 0x2D, - 0x04, - 0x37, - 0x06, - 0x2E, - 0x01, - 0x2D, - 0x05, - 0x35, - 0x01, - 0x1C, - 0x0E, - 0x1F, - 0x01, - 0x1C, - 0x01, - 0x1C, - 0x04, - 0x19, - 0x07, - 0x2D, - 0x00, - 0x03, - 0x2E, - 0x28, - 0x28, - 0x00, - 0x05, - 0x2E, - 0x0C, - 0x28, - 0x00, - 0x07, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2A, - 0x2A, - 0x2A, - 0x00, - 0x06, - 0x2B, - 0x06, - 0x11, - 0x00, - 0x05, - 0x09, - 0x09, - 0x1B, - 0x1B, - 0x29, - 0x00, - 0x07, - 0x1B, - 0x07, - 0x10, - 0x00, - 0x05, - 0x0A, - 0x10, - 0x0A, - 0x10, - 0x10, - 0x00, - 0x05, - 0x08, - 0x01, - 0x10, - 0x01, - 0x10, - 0x04, - 0x08, - 0x00, - 0x06, - 0x03, - 0x08, - 0x03, - 0x02, - 0x0A, - 0x03, - 0x04, - 0x08, - 0x01, - 0x02, - 0x01, - 0x08, - 0x05, - 0x04, - 0x00, - 0x0C, - 0x02, - 0x03, - 0x02, - 0x01, - 0x03, - 0x03, - 0x04, - 0x03, - 0x04, - 0x04, - 0x04, - 0x03, - 0x05, - 0x04, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x0F, - 0x21, - 0x21, - 0x23, - 0x21, - 0x23, - 0x23, - 0x23, - 0x0F, - 0x23, - 0x23, - 0x00, - 0x11, - 0x0F, - 0x00, - 0x06, - 0x0C, - 0x0F, - 0x52, - 0x0F, - 0x16, - 0x16, - 0x04, - 0x0F, - 0x00, - 0x03, - 0x21, - 0x0F, - 0x0F, - 0x00, - 0x0A, - 0x23, - 0x01, - 0x3D, - 0x01, - 0x23, - 0x09, - 0x39, - 0x00, - 0x06, - 0x21, - 0x21, - 0x21, - 0x39, - 0x39, - 0x39, - 0x07, - 0x21, - 0x07, - 0x0D, - 0x0E, - 0x21, - 0x01, - 0x3A, - 0x01, - 0x4E, - 0x05, - 0x0C, - 0x05, - 0x3A, - 0x01, - 0x16, - 0x01, - 0x16, - 0x05, - 0x3A, - 0x05, - 0x16, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x05, - 0x35, - 0x00, - 0x03, - 0x33, - 0x33, - 0x35, - 0x00, - 0x04, - 0x1F, - 0x0C, - 0x35, - 0x00, - 0x05, - 0x2D, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x00, - 0x04, - 0x37, - 0x04, - 0x13, - 0x00, - 0x08, - 0x2E, - 0x12, - 0x2D, - 0x35, - 0x35, - 0x35, - 0x1C, - 0x1C, - 0x0F, - 0x1F, - 0x01, - 0x1C, - 0x05, - 0x19, - 0x07, - 0x2D, - 0x00, - 0x03, - 0x2E, - 0x28, - 0x28, - 0x00, - 0x05, - 0x2E, - 0x0C, - 0x28, - 0x00, - 0x07, - 0x2A, - 0x2A, - 0x2A, - 0x2B, - 0x2B, - 0x2A, - 0x2A, - 0x00, - 0x06, - 0x2B, - 0x07, - 0x11, - 0x01, - 0x09, - 0x0A, - 0x1B, - 0x0D, - 0x10, - 0x00, - 0x06, - 0x08, - 0x10, - 0x08, - 0x08, - 0x08, - 0x10, - 0x04, - 0x08, - 0x00, - 0x0C, - 0x03, - 0x08, - 0x03, - 0x08, - 0x03, - 0x08, - 0x03, - 0x08, - 0x08, - 0x08, - 0x04, - 0x08, - 0x05, - 0x04, - 0x00, - 0x0B, - 0x02, - 0x02, - 0x01, - 0x03, - 0x01, - 0x02, - 0x03, - 0x04, - 0x04, - 0x02, - 0x03, - 0x00, - 0x06, - 0x04, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x21, - 0x0F, - 0x0F, - 0x00, - 0x06, - 0x23, - 0x0A, - 0x0F, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x06, - 0x0F, - 0x00, - 0x15, - 0x0C, - 0x0C, - 0x0F, - 0x0F, - 0x16, - 0x16, - 0x0C, - 0x0F, - 0x0F, - 0x0C, - 0x0C, - 0x0F, - 0x0D, - 0x0D, - 0x0F, - 0x0D, - 0x23, - 0x0D, - 0x23, - 0x21, - 0x21, - 0x00, - 0x05, - 0x23, - 0x00, - 0x03, - 0x39, - 0x23, - 0x39, - 0x00, - 0x05, - 0x21, - 0x00, - 0x03, - 0x39, - 0x21, - 0x39, - 0x00, - 0x06, - 0x21, - 0x01, - 0x0D, - 0x01, - 0x0D, - 0x07, - 0x21, - 0x00, - 0x03, - 0x0D, - 0x0D, - 0x0D, - 0x00, - 0x0B, - 0x21, - 0x00, - 0x0A, - 0x3A, - 0x0C, - 0x21, - 0x0C, - 0x0C, - 0x0C, - 0x33, - 0x0C, - 0x33, - 0x3A, - 0x05, - 0x16, - 0x07, - 0x3A, - 0x05, - 0x16, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x07, - 0x35, - 0x0A, - 0x1F, - 0x07, - 0x35, - 0x05, - 0x12, - 0x04, - 0x13, - 0x00, - 0x06, - 0x15, - 0x37, - 0x15, - 0x37, - 0x13, - 0x12, - 0x06, - 0x1C, - 0x00, - 0x03, - 0x33, - 0x33, - 0x33, - 0x00, - 0x04, - 0x1F, - 0x08, - 0x1C, - 0x06, - 0x19, - 0x00, - 0x03, - 0x2D, - 0x2D, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x05, - 0x28, - 0x28, - 0x2E, - 0x2E, - 0x2E, - 0x00, - 0x0B, - 0x28, - 0x00, - 0x05, - 0x2A, - 0x28, - 0x28, - 0x2A, - 0x2A, - 0x00, - 0x06, - 0x2B, - 0x00, - 0x04, - 0x36, - 0x2B, - 0x2B, - 0x2B, - 0x07, - 0x11, - 0x00, - 0x06, - 0x09, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x10, - 0x05, - 0x1B, - 0x0C, - 0x10, - 0x05, - 0x08, - 0x00, - 0x03, - 0x10, - 0x08, - 0x10, - 0x00, - 0x05, - 0x08, - 0x00, - 0x03, - 0x03, - 0x08, - 0x02, - 0x00, - 0x0A, - 0x08, - 0x00, - 0x10, - 0x02, - 0x08, - 0x08, - 0x01, - 0x03, - 0x02, - 0x01, - 0x03, - 0x03, - 0x04, - 0x03, - 0x04, - 0x03, - 0x04, - 0x03, - 0x04, - 0x06, - 0x03, - 0x00, - 0x00, - 0x01, - 0x21, - 0x01, - 0x0F, - 0x07, - 0x23, - 0x0A, - 0x0F, - 0x01, - 0x0C, - 0x07, - 0x0F, - 0x01, - 0x0C, - 0x04, - 0x0F, - 0x00, - 0x10, - 0x0C, - 0x0C, - 0x0F, - 0x0F, - 0x0C, - 0x0C, - 0x0F, - 0x0D, - 0x23, - 0x0D, - 0x23, - 0x0D, - 0x0D, - 0x23, - 0x21, - 0x21, - 0x05, - 0x23, - 0x00, - 0x08, - 0x39, - 0x39, - 0x21, - 0x39, - 0x21, - 0x39, - 0x21, - 0x39, - 0x09, - 0x21, - 0x04, - 0x0D, - 0x05, - 0x21, - 0x00, - 0x03, - 0x0D, - 0x0D, - 0x0D, - 0x00, - 0x0B, - 0x21, - 0x01, - 0x3A, - 0x01, - 0x3A, - 0x06, - 0x0C, - 0x01, - 0x1F, - 0x06, - 0x16, - 0x07, - 0x3A, - 0x05, - 0x16, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x07, - 0x35, - 0x05, - 0x1F, - 0x07, - 0x15, - 0x07, - 0x12, - 0x07, - 0x13, - 0x04, - 0x15, - 0x00, - 0x04, - 0x12, - 0x12, - 0x1C, - 0x1C, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x33, - 0x33, - 0x33, - 0x00, - 0x04, - 0x1F, - 0x08, - 0x1C, - 0x06, - 0x19, - 0x00, - 0x03, - 0x2D, - 0x2D, - 0x2D, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x05, - 0x28, - 0x28, - 0x2E, - 0x2E, - 0x2E, - 0x00, - 0x0B, - 0x28, - 0x05, - 0x2A, - 0x07, - 0x2B, - 0x0A, - 0x11, - 0x00, - 0x07, - 0x09, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x10, - 0x00, - 0x04, - 0x1B, - 0x0C, - 0x10, - 0x00, - 0x09, - 0x0A, - 0x10, - 0x08, - 0x10, - 0x10, - 0x08, - 0x10, - 0x08, - 0x10, - 0x00, - 0x07, - 0x08, - 0x01, - 0x02, - 0x08, - 0x08, - 0x00, - 0x07, - 0x02, - 0x02, - 0x04, - 0x03, - 0x03, - 0x02, - 0x01, - 0x00, - 0x0B, - 0x04, - 0x05, - 0x03, - 0x00, - 0x00, - 0x04, - 0x0F, - 0x00, - 0x04, - 0x23, - 0x0F, - 0x0F, - 0x23, - 0x0B, - 0x0F, - 0x00, - 0x03, - 0x0C, - 0x0C, - 0x0C, - 0x00, - 0x05, - 0x0F, - 0x00, - 0x0C, - 0x0C, - 0x0C, - 0x0F, - 0x0F, - 0x0C, - 0x0C, - 0x0C, - 0x0F, - 0x0F, - 0x0F, - 0x0C, - 0x0F, - 0x07, - 0x0D, - 0x00, - 0x06, - 0x23, - 0x23, - 0x39, - 0x23, - 0x39, - 0x23, - 0x10, - 0x21, - 0x01, - 0x23, - 0x05, - 0x0D, - 0x00, - 0x07, - 0x21, - 0x21, - 0x21, - 0x0C, - 0x0C, - 0x0D, - 0x0D, - 0x00, - 0x0A, - 0x21, - 0x00, - 0x05, - 0x4E, - 0x4E, - 0x0C, - 0x3A, - 0x3A, - 0x00, - 0x05, - 0x0C, - 0x07, - 0x16, - 0x07, - 0x3A, - 0x05, - 0x16, - 0x00, - 0x0A, - 0x1F, - 0x1F, - 0x35, - 0x35, - 0x4C, - 0x35, - 0x35, - 0x1F, - 0x1F, - 0x15, - 0x04, - 0x1F, - 0x07, - 0x15, - 0x07, - 0x12, - 0x07, - 0x13, - 0x00, - 0x08, - 0x15, - 0x15, - 0x15, - 0x12, - 0x12, - 0x1C, - 0x1C, - 0x1C, - 0x04, - 0x1F, - 0x00, - 0x03, - 0x33, - 0x33, - 0x33, - 0x00, - 0x04, - 0x1F, - 0x07, - 0x1C, - 0x06, - 0x19, - 0x04, - 0x2D, - 0x05, - 0x2E, - 0x00, - 0x05, - 0x28, - 0x28, - 0x34, - 0x34, - 0x2E, - 0x00, - 0x0B, - 0x28, - 0x00, - 0x05, - 0x2B, - 0x2B, - 0x2B, - 0x2A, - 0x2A, - 0x00, - 0x05, - 0x2B, - 0x01, - 0x38, - 0x01, - 0x38, - 0x0A, - 0x11, - 0x04, - 0x09, - 0x00, - 0x04, - 0x1B, - 0x1B, - 0x1B, - 0x10, - 0x04, - 0x1B, - 0x09, - 0x10, - 0x00, - 0x0A, - 0x0A, - 0x10, - 0x0A, - 0x08, - 0x08, - 0x08, - 0x10, - 0x10, - 0x08, - 0x10, - 0x07, - 0x08, - 0x01, - 0x05, - 0x01, - 0x05, - 0x0A, - 0x08, - 0x00, - 0x04, - 0x04, - 0x03, - 0x02, - 0x01, - 0x0C, - 0x04, - 0x05, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x23, - 0x0F, - 0x23, - 0x00, - 0x10, - 0x0F, - 0x00, - 0x03, - 0x0C, - 0x0F, - 0x0C, - 0x00, - 0x05, - 0x0F, - 0x00, - 0x10, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0D, - 0x0F, - 0x0D, - 0x0C, - 0x0D, - 0x0F, - 0x0F, - 0x0F, - 0x04, - 0x0D, - 0x00, - 0x05, - 0x23, - 0x0D, - 0x23, - 0x0D, - 0x0D, - 0x00, - 0x05, - 0x21, - 0x04, - 0x23, - 0x06, - 0x21, - 0x00, - 0x06, - 0x0D, - 0x0D, - 0x0D, - 0x21, - 0x21, - 0x0C, - 0x04, - 0x21, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x0A, - 0x21, - 0x00, - 0x0C, - 0x0C, - 0x3A, - 0x0C, - 0x3A, - 0x3A, - 0x0C, - 0x33, - 0x0C, - 0x3A, - 0x0C, - 0x0C, - 0x0C, - 0x06, - 0x16, - 0x00, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x07, - 0x16, - 0x05, - 0x1F, - 0x00, - 0x07, - 0x4F, - 0x33, - 0x4F, - 0x35, - 0x1F, - 0x1F, - 0x1F, - 0x00, - 0x0A, - 0x15, - 0x07, - 0x12, - 0x0A, - 0x13, - 0x00, - 0x04, - 0x12, - 0x35, - 0x1C, - 0x1C, - 0x0E, - 0x1F, - 0x07, - 0x1C, - 0x05, - 0x19, - 0x05, - 0x2D, - 0x05, - 0x2E, - 0x04, - 0x34, - 0x00, - 0x03, - 0x2E, - 0x28, - 0x28, - 0x00, - 0x09, - 0x2A, - 0x0B, - 0x2B, - 0x0C, - 0x11, - 0x04, - 0x09, - 0x04, - 0x1B, - 0x01, - 0x10, - 0x01, - 0x14, - 0x0A, - 0x10, - 0x00, - 0x09, - 0x08, - 0x08, - 0x10, - 0x08, - 0x10, - 0x08, - 0x08, - 0x08, - 0x10, - 0x00, - 0x08, - 0x08, - 0x01, - 0x05, - 0x01, - 0x05, - 0x0A, - 0x08, - 0x00, - 0x05, - 0x04, - 0x03, - 0x03, - 0x08, - 0x03, - 0x00, - 0x0E, - 0x04, - 0x01, - 0x03, - 0x01, - 0x03, - 0x08, - 0x00, - 0x02, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x23, - 0x0F, - 0x23, - 0x00, - 0x10, - 0x0F, - 0x00, - 0x03, - 0x0C, - 0x0C, - 0x0C, - 0x00, - 0x07, - 0x0F, - 0x05, - 0x0C, - 0x00, - 0x09, - 0x0F, - 0x0F, - 0x0D, - 0x0C, - 0x0C, - 0x0F, - 0x0D, - 0x21, - 0x23, - 0x00, - 0x09, - 0x0D, - 0x05, - 0x21, - 0x00, - 0x16, - 0x23, - 0x23, - 0x39, - 0x23, - 0x21, - 0x21, - 0x0C, - 0x21, - 0x21, - 0x21, - 0x0D, - 0x0D, - 0x0D, - 0x21, - 0x21, - 0x0C, - 0x21, - 0x21, - 0x0C, - 0x21, - 0x0C, - 0x0C, - 0x05, - 0x21, - 0x00, - 0x04, - 0x3A, - 0x3A, - 0x3A, - 0x21, - 0x04, - 0x3A, - 0x00, - 0x04, - 0x33, - 0x21, - 0x3A, - 0x3A, - 0x04, - 0x0C, - 0x07, - 0x16, - 0x00, - 0x03, - 0x3A, - 0x3A, - 0x3A, - 0x00, - 0x07, - 0x16, - 0x05, - 0x1F, - 0x00, - 0x07, - 0x33, - 0x33, - 0x4F, - 0x35, - 0x1F, - 0x1F, - 0x1F, - 0x00, - 0x0A, - 0x15, - 0x07, - 0x12, - 0x0A, - 0x13, - 0x00, - 0x04, - 0x35, - 0x35, - 0x1C, - 0x1C, - 0x0E, - 0x1F, - 0x07, - 0x1C, - 0x05, - 0x19, - 0x05, - 0x2D, - 0x05, - 0x2E, - 0x04, - 0x34, - 0x00, - 0x03, - 0x2E, - 0x28, - 0x28, - 0x00, - 0x09, - 0x2A, - 0x0B, - 0x2B, - 0x0C, - 0x11, - 0x04, - 0x09, - 0x05, - 0x1B, - 0x01, - 0x14, - 0x0A, - 0x10, - 0x01, - 0x08, - 0x01, - 0x10, - 0x04, - 0x08, - 0x01, - 0x10, - 0x01, - 0x10, - 0x0A, - 0x08, - 0x01, - 0x05, - 0x07, - 0x08, - 0x00, - 0x08, - 0x04, - 0x08, - 0x08, - 0x04, - 0x08, - 0x04, - 0x03, - 0x03, - 0x0E, - 0x04, - 0x01, - 0x03, - 0x01, - 0x03, - 0x08, - 0x00, - 0x02, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x23, - 0x0F, - 0x23, - 0x00, - 0x0F, - 0x0F, - 0x00, - 0x03, - 0x0C, - 0x0F, - 0x0C, - 0x00, - 0x07, - 0x0F, - 0x04, - 0x0C, - 0x00, - 0x0A, - 0x0F, - 0x0C, - 0x0F, - 0x0D, - 0x0C, - 0x0D, - 0x0C, - 0x0F, - 0x0D, - 0x0F, - 0x05, - 0x0D, - 0x01, - 0x23, - 0x01, - 0x23, - 0x04, - 0x0D, - 0x05, - 0x21, - 0x00, - 0x04, - 0x23, - 0x23, - 0x23, - 0x0D, - 0x04, - 0x21, - 0x00, - 0x04, - 0x0D, - 0x0D, - 0x21, - 0x21, - 0x04, - 0x0C, - 0x00, - 0x03, - 0x21, - 0x0C, - 0x21, - 0x00, - 0x04, - 0x0C, - 0x06, - 0x21, - 0x00, - 0x0B, - 0x3A, - 0x0C, - 0x33, - 0x33, - 0x0C, - 0x0C, - 0x33, - 0x3A, - 0x3A, - 0x0C, - 0x0C, - 0x00, - 0x05, - 0x16, - 0x05, - 0x3A, - 0x07, - 0x16, - 0x06, - 0x1F, - 0x00, - 0x04, - 0x33, - 0x33, - 0x4F, - 0x33, - 0x04, - 0x1F, - 0x05, - 0x15, - 0x07, - 0x12, - 0x05, - 0x15, - 0x05, - 0x13, - 0x00, - 0x05, - 0x15, - 0x13, - 0x12, - 0x12, - 0x15, - 0x00, - 0x04, - 0x1C, - 0x05, - 0x33, - 0x07, - 0x1F, - 0x09, - 0x1C, - 0x05, - 0x19, - 0x05, - 0x2E, - 0x05, - 0x28, - 0x04, - 0x34, - 0x0C, - 0x2A, - 0x09, - 0x2B, - 0x0D, - 0x11, - 0x05, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x0D, - 0x10, - 0x04, - 0x08, - 0x01, - 0x10, - 0x04, - 0x08, - 0x01, - 0x10, - 0x0D, - 0x08, - 0x01, - 0x04, - 0x04, - 0x08, - 0x04, - 0x03, - 0x01, - 0x04, - 0x01, - 0x03, - 0x0D, - 0x04, - 0x01, - 0x03, - 0x04, - 0x01, - 0x06, - 0x00, - 0x02, - 0x01, - 0x00, - 0x00, - 0x00, - 0x03, - 0x23, - 0x0F, - 0x23, - 0x00, - 0x0F, - 0x0F, - 0x00, - 0x03, - 0x0C, - 0x0C, - 0x0C, - 0x00, - 0x05, - 0x0F, - 0x00, - 0x03, - 0x0C, - 0x0F, - 0x0F, - 0x00, - 0x06, - 0x0C, - 0x00, - 0x06, - 0x0D, - 0x0D, - 0x0C, - 0x0C, - 0x0D, - 0x0F, - 0x07, - 0x0D, - 0x05, - 0x23, - 0x00, - 0x05, - 0x0D, - 0x0D, - 0x21, - 0x21, - 0x21, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x08, - 0x21, - 0x0F, - 0x21, - 0x0D, - 0x0D, - 0x0D, - 0x21, - 0x21, - 0x0A, - 0x0C, - 0x01, - 0x3A, - 0x01, - 0x4E, - 0x04, - 0x21, - 0x00, - 0x07, - 0x0C, - 0x33, - 0x33, - 0x0C, - 0x33, - 0x0C, - 0x0C, - 0x00, - 0x05, - 0x3A, - 0x04, - 0x16, - 0x00, - 0x06, - 0x1F, - 0x33, - 0x33, - 0x3A, - 0x3A, - 0x3A, - 0x07, - 0x16, - 0x05, - 0x1F, - 0x00, - 0x04, - 0x35, - 0x4C, - 0x33, - 0x33, - 0x05, - 0x1F, - 0x05, - 0x15, - 0x07, - 0x12, - 0x05, - 0x15, - 0x05, - 0x13, - 0x04, - 0x15, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1C, - 0x33, - 0x1C, - 0x00, - 0x05, - 0x33, - 0x07, - 0x1F, - 0x08, - 0x1C, - 0x06, - 0x19, - 0x05, - 0x2E, - 0x05, - 0x28, - 0x04, - 0x34, - 0x0C, - 0x2A, - 0x08, - 0x2B, - 0x0E, - 0x11, - 0x05, - 0x09, - 0x04, - 0x1B, - 0x0C, - 0x10, - 0x05, - 0x08, - 0x04, - 0x10, - 0x0A, - 0x08, - 0x00, - 0x0F, - 0x04, - 0x08, - 0x02, - 0x08, - 0x02, - 0x08, - 0x08, - 0x08, - 0x04, - 0x08, - 0x03, - 0x08, - 0x04, - 0x08, - 0x03, - 0x00, - 0x04, - 0x04, - 0x09, - 0x03, - 0x01, - 0x00, - 0x06, - 0x01, - 0x04, - 0x00, - 0x04, - 0x01, - 0x00, - 0x00, - 0x01, - 0x23, - 0x10, - 0x0F, - 0x00, - 0x04, - 0x0C, - 0x0F, - 0x0C, - 0x0C, - 0x06, - 0x0F, - 0x09, - 0x0C, - 0x00, - 0x05, - 0x0D, - 0x0D, - 0x0C, - 0x0F, - 0x0F, - 0x00, - 0x06, - 0x0D, - 0x01, - 0x0F, - 0x04, - 0x23, - 0x00, - 0x06, - 0x0D, - 0x0D, - 0x0D, - 0x21, - 0x21, - 0x0C, - 0x04, - 0x0D, - 0x01, - 0x21, - 0x05, - 0x0D, - 0x0C, - 0x0C, - 0x01, - 0x33, - 0x01, - 0x3A, - 0x06, - 0x0C, - 0x00, - 0x05, - 0x16, - 0x3A, - 0x3A, - 0x0C, - 0x0C, - 0x00, - 0x05, - 0x3A, - 0x04, - 0x16, - 0x01, - 0x1F, - 0x05, - 0x3A, - 0x07, - 0x16, - 0x06, - 0x1F, - 0x01, - 0x4C, - 0x07, - 0x1F, - 0x05, - 0x15, - 0x07, - 0x12, - 0x05, - 0x15, - 0x05, - 0x13, - 0x00, - 0x08, - 0x15, - 0x15, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x33, - 0x1C, - 0x06, - 0x33, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x1F, - 0x1F, - 0x1F, - 0x00, - 0x07, - 0x1C, - 0x01, - 0x19, - 0x01, - 0x19, - 0x04, - 0x12, - 0x01, - 0x2D, - 0x0A, - 0x2E, - 0x00, - 0x04, - 0x34, - 0x13, - 0x34, - 0x34, - 0x0C, - 0x2A, - 0x07, - 0x2B, - 0x0F, - 0x11, - 0x06, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x11, - 0x10, - 0x0F, - 0x08, - 0x00, - 0x03, - 0x04, - 0x08, - 0x04, - 0x00, - 0x04, - 0x08, - 0x01, - 0x04, - 0x01, - 0x04, - 0x04, - 0x03, - 0x05, - 0x04, - 0x09, - 0x03, - 0x00, - 0x07, - 0x00, - 0x01, - 0x01, - 0x00, - 0x00, - 0x01, - 0x01, - 0x00, - 0x06, - 0x00, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0E, - 0x0F, - 0x01, - 0x0C, - 0x01, - 0x0F, - 0x04, - 0x0C, - 0x01, - 0x0F, - 0x01, - 0x0C, - 0x04, - 0x0F, - 0x05, - 0x0C, - 0x01, - 0x16, - 0x04, - 0x0C, - 0x00, - 0x05, - 0x0F, - 0x0C, - 0x0D, - 0x0D, - 0x0C, - 0x00, - 0x05, - 0x0D, - 0x01, - 0x0C, - 0x01, - 0x0F, - 0x05, - 0x0D, - 0x00, - 0x05, - 0x21, - 0x21, - 0x0D, - 0x0C, - 0x0C, - 0x00, - 0x04, - 0x21, - 0x05, - 0x0D, - 0x01, - 0x0C, - 0x01, - 0x0D, - 0x0A, - 0x0C, - 0x01, - 0x33, - 0x07, - 0x0C, - 0x01, - 0x16, - 0x01, - 0x16, - 0x07, - 0x0C, - 0x07, - 0x16, - 0x01, - 0x3A, - 0x01, - 0x3A, - 0x05, - 0x16, - 0x09, - 0x1F, - 0x01, - 0x16, - 0x07, - 0x1F, - 0x04, - 0x15, - 0x05, - 0x12, - 0x07, - 0x15, - 0x08, - 0x13, - 0x01, - 0x12, - 0x01, - 0x15, - 0x0E, - 0x1F, - 0x00, - 0x03, - 0x1C, - 0x33, - 0x1C, - 0x00, - 0x04, - 0x1F, - 0x05, - 0x1C, - 0x00, - 0x03, - 0x2D, - 0x13, - 0x13, - 0x00, - 0x04, - 0x12, - 0x07, - 0x2E, - 0x00, - 0x06, - 0x13, - 0x13, - 0x13, - 0x34, - 0x13, - 0x2E, - 0x04, - 0x28, - 0x07, - 0x2A, - 0x08, - 0x2B, - 0x10, - 0x11, - 0x06, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x09, - 0x1B, - 0x00, - 0x05, - 0x10, - 0x00, - 0x03, - 0x08, - 0x08, - 0x10, - 0x00, - 0x05, - 0x08, - 0x00, - 0x03, - 0x10, - 0x08, - 0x10, - 0x00, - 0x0E, - 0x08, - 0x01, - 0x03, - 0x05, - 0x08, - 0x0C, - 0x04, - 0x01, - 0x03, - 0x01, - 0x03, - 0x09, - 0x01, - 0x01, - 0x03, - 0x0F, - 0x00, - 0x02, - 0x01, - 0x00, - 0x00, - 0x0A, - 0x0F, - 0x04, - 0x0C, - 0x00, - 0x06, - 0x0F, - 0x0C, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0B, - 0x0C, - 0x00, - 0x0A, - 0x16, - 0x16, - 0x16, - 0x0C, - 0x0F, - 0x0C, - 0x0D, - 0x0C, - 0x0C, - 0x0C, - 0x05, - 0x0D, - 0x00, - 0x09, - 0x0C, - 0x0F, - 0x0D, - 0x23, - 0x0F, - 0x0F, - 0x0F, - 0x0D, - 0x0D, - 0x00, - 0x05, - 0x0F, - 0x05, - 0x0D, - 0x00, - 0x04, - 0x0C, - 0x0D, - 0x0D, - 0x0D, - 0x11, - 0x0C, - 0x00, - 0x03, - 0x33, - 0x16, - 0x16, - 0x00, - 0x07, - 0x0C, - 0x07, - 0x16, - 0x01, - 0x3A, - 0x01, - 0x3A, - 0x05, - 0x16, - 0x09, - 0x1F, - 0x00, - 0x08, - 0x16, - 0x16, - 0x1F, - 0x15, - 0x15, - 0x1F, - 0x1F, - 0x1F, - 0x04, - 0x15, - 0x05, - 0x12, - 0x07, - 0x15, - 0x08, - 0x13, - 0x01, - 0x12, - 0x01, - 0x15, - 0x0D, - 0x1F, - 0x00, - 0x04, - 0x1C, - 0x33, - 0x1C, - 0x1C, - 0x04, - 0x1F, - 0x04, - 0x1C, - 0x00, - 0x04, - 0x12, - 0x12, - 0x13, - 0x13, - 0x04, - 0x12, - 0x07, - 0x2E, - 0x05, - 0x13, - 0x01, - 0x2E, - 0x04, - 0x28, - 0x07, - 0x2A, - 0x07, - 0x2B, - 0x11, - 0x11, - 0x07, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x1A, - 0x1B, - 0x00, - 0x04, - 0x10, - 0x00, - 0x08, - 0x08, - 0x10, - 0x08, - 0x08, - 0x08, - 0x10, - 0x08, - 0x10, - 0x10, - 0x08, - 0x00, - 0x07, - 0x03, - 0x03, - 0x08, - 0x08, - 0x08, - 0x04, - 0x08, - 0x00, - 0x0C, - 0x04, - 0x01, - 0x03, - 0x01, - 0x03, - 0x09, - 0x01, - 0x01, - 0x03, - 0x0F, - 0x00, - 0x02, - 0x01, - 0x00, - 0x00, - 0x09, - 0x0F, - 0x00, - 0x07, - 0x0C, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x00, - 0x0F, - 0x0C, - 0x04, - 0x16, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x0A, - 0x0D, - 0x04, - 0x21, - 0x00, - 0x04, - 0x0C, - 0x21, - 0x0F, - 0x0F, - 0x05, - 0x0C, - 0x01, - 0x0F, - 0x01, - 0x0F, - 0x04, - 0x0D, - 0x14, - 0x0C, - 0x00, - 0x03, - 0x16, - 0x16, - 0x16, - 0x00, - 0x07, - 0x0C, - 0x07, - 0x16, - 0x00, - 0x07, - 0x3A, - 0x3A, - 0x1F, - 0x1F, - 0x1F, - 0x16, - 0x16, - 0x00, - 0x10, - 0x1F, - 0x05, - 0x15, - 0x05, - 0x12, - 0x07, - 0x15, - 0x05, - 0x13, - 0x00, - 0x05, - 0x12, - 0x13, - 0x12, - 0x12, - 0x12, - 0x00, - 0x08, - 0x1F, - 0x05, - 0x1C, - 0x00, - 0x04, - 0x33, - 0x1C, - 0x33, - 0x33, - 0x04, - 0x1C, - 0x00, - 0x0C, - 0x12, - 0x35, - 0x35, - 0x12, - 0x12, - 0x12, - 0x13, - 0x13, - 0x12, - 0x12, - 0x12, - 0x13, - 0x05, - 0x2E, - 0x01, - 0x34, - 0x01, - 0x34, - 0x05, - 0x13, - 0x05, - 0x28, - 0x06, - 0x2A, - 0x08, - 0x2B, - 0x11, - 0x11, - 0x07, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x04, - 0x10, - 0x00, - 0x04, - 0x08, - 0x08, - 0x08, - 0x10, - 0x04, - 0x08, - 0x00, - 0x03, - 0x10, - 0x08, - 0x10, - 0x00, - 0x0F, - 0x08, - 0x01, - 0x03, - 0x04, - 0x08, - 0x0C, - 0x04, - 0x01, - 0x03, - 0x01, - 0x03, - 0x07, - 0x01, - 0x02, - 0x03, - 0x00, - 0x00, - 0x08, - 0x0F, - 0x01, - 0x0C, - 0x01, - 0x0F, - 0x06, - 0x0C, - 0x00, - 0x03, - 0x0F, - 0x0C, - 0x0F, - 0x00, - 0x06, - 0x0C, - 0x01, - 0x16, - 0x05, - 0x0C, - 0x04, - 0x16, - 0x05, - 0x0C, - 0x00, - 0x06, - 0x0D, - 0x0D, - 0x0D, - 0x0C, - 0x0D, - 0x0C, - 0x07, - 0x0D, - 0x01, - 0x0C, - 0x01, - 0x0F, - 0x0B, - 0x0C, - 0x01, - 0x0D, - 0x13, - 0x0C, - 0x13, - 0x16, - 0x0C, - 0x1F, - 0x05, - 0x15, - 0x00, - 0x04, - 0x1F, - 0x1F, - 0x1F, - 0x15, - 0x08, - 0x12, - 0x04, - 0x15, - 0x00, - 0x05, - 0x12, - 0x12, - 0x12, - 0x15, - 0x15, - 0x00, - 0x05, - 0x13, - 0x00, - 0x1D, - 0x12, - 0x12, - 0x15, - 0x15, - 0x12, - 0x1C, - 0x1C, - 0x1C, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x33, - 0x1C, - 0x1C, - 0x1C, - 0x33, - 0x1C, - 0x1C, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x1C, - 0x19, - 0x19, - 0x12, - 0x12, - 0x13, - 0x00, - 0x05, - 0x12, - 0x04, - 0x13, - 0x05, - 0x2E, - 0x00, - 0x0E, - 0x34, - 0x34, - 0x2B, - 0x2A, - 0x2A, - 0x13, - 0x2A, - 0x2A, - 0x2A, - 0x28, - 0x28, - 0x28, - 0x2A, - 0x2A, - 0x0C, - 0x2B, - 0x0F, - 0x11, - 0x0A, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x04, - 0x10, - 0x04, - 0x08, - 0x01, - 0x10, - 0x15, - 0x08, - 0x0E, - 0x04, - 0x0B, - 0x03, - 0x00, - 0x00, - 0x09, - 0x0F, - 0x00, - 0x06, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x09, - 0x0C, - 0x01, - 0x16, - 0x01, - 0x0C, - 0x07, - 0x16, - 0x04, - 0x0C, - 0x00, - 0x0A, - 0x0D, - 0x0D, - 0x0D, - 0x0C, - 0x0D, - 0x0D, - 0x0D, - 0x0C, - 0x0C, - 0x0C, - 0x08, - 0x0F, - 0x06, - 0x0C, - 0x06, - 0x0D, - 0x13, - 0x0C, - 0x13, - 0x16, - 0x0C, - 0x1F, - 0x05, - 0x15, - 0x00, - 0x04, - 0x1F, - 0x1F, - 0x1F, - 0x35, - 0x08, - 0x12, - 0x04, - 0x15, - 0x00, - 0x05, - 0x12, - 0x12, - 0x12, - 0x15, - 0x15, - 0x00, - 0x05, - 0x13, - 0x00, - 0x08, - 0x12, - 0x12, - 0x15, - 0x15, - 0x12, - 0x1C, - 0x1C, - 0x1C, - 0x04, - 0x1F, - 0x00, - 0x0E, - 0x1C, - 0x33, - 0x1C, - 0x33, - 0x1C, - 0x33, - 0x33, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x1C, - 0x19, - 0x19, - 0x08, - 0x12, - 0x04, - 0x13, - 0x05, - 0x2E, - 0x00, - 0x0E, - 0x34, - 0x34, - 0x2A, - 0x2A, - 0x2A, - 0x13, - 0x2A, - 0x2A, - 0x2A, - 0x28, - 0x28, - 0x28, - 0x2A, - 0x2A, - 0x0C, - 0x2B, - 0x0F, - 0x11, - 0x09, - 0x09, - 0x05, - 0x1B, - 0x00, - 0x0C, - 0x10, - 0x10, - 0x10, - 0x08, - 0x10, - 0x08, - 0x10, - 0x08, - 0x08, - 0x10, - 0x08, - 0x10, - 0x11, - 0x08, - 0x01, - 0x03, - 0x0D, - 0x04, - 0x0B, - 0x03, - 0x00, - 0x00, - 0x01, - 0x0F, - 0x01, - 0x0C, - 0x06, - 0x0F, - 0x01, - 0x0C, - 0x01, - 0x0F, - 0x0F, - 0x0C, - 0x01, - 0x16, - 0x01, - 0x0C, - 0x06, - 0x16, - 0x01, - 0x0C, - 0x01, - 0x16, - 0x06, - 0x0C, - 0x00, - 0x07, - 0x0D, - 0x0D, - 0x0D, - 0x0C, - 0x0D, - 0x0D, - 0x0D, - 0x00, - 0x05, - 0x0C, - 0x01, - 0x0D, - 0x01, - 0x0D, - 0x05, - 0x0C, - 0x01, - 0x0D, - 0x01, - 0x0D, - 0x11, - 0x0C, - 0x13, - 0x16, - 0x0E, - 0x1F, - 0x0A, - 0x15, - 0x00, - 0x09, - 0x1F, - 0x1F, - 0x15, - 0x12, - 0x13, - 0x13, - 0x13, - 0x12, - 0x12, - 0x00, - 0x05, - 0x15, - 0x00, - 0x08, - 0x12, - 0x12, - 0x12, - 0x13, - 0x13, - 0x15, - 0x15, - 0x15, - 0x05, - 0x13, - 0x00, - 0x07, - 0x12, - 0x15, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x1C, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x07, - 0x33, - 0x1C, - 0x33, - 0x1C, - 0x1C, - 0x33, - 0x33, - 0x00, - 0x04, - 0x1C, - 0x00, - 0x07, - 0x12, - 0x19, - 0x19, - 0x12, - 0x12, - 0x13, - 0x12, - 0x00, - 0x0A, - 0x13, - 0x00, - 0x05, - 0x2E, - 0x34, - 0x34, - 0x13, - 0x34, - 0x00, - 0x06, - 0x2A, - 0x01, - 0x2B, - 0x04, - 0x2A, - 0x0D, - 0x2B, - 0x0E, - 0x11, - 0x0C, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x04, - 0x10, - 0x04, - 0x08, - 0x01, - 0x10, - 0x13, - 0x08, - 0x01, - 0x03, - 0x0B, - 0x04, - 0x07, - 0x03, - 0x01, - 0x00, - 0x06, - 0x03, - 0x00, - 0x00, - 0x00, - 0x03, - 0x0F, - 0x0C, - 0x0C, - 0x00, - 0x05, - 0x0F, - 0x00, - 0x06, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0D, - 0x0C, - 0x06, - 0x16, - 0x08, - 0x0C, - 0x00, - 0x07, - 0x0D, - 0x0C, - 0x0C, - 0x0D, - 0x0C, - 0x0C, - 0x0C, - 0x00, - 0x06, - 0x0D, - 0x19, - 0x0C, - 0x0E, - 0x16, - 0x01, - 0x1F, - 0x04, - 0x16, - 0x0E, - 0x1F, - 0x0C, - 0x15, - 0x01, - 0x12, - 0x04, - 0x13, - 0x01, - 0x12, - 0x01, - 0x12, - 0x05, - 0x15, - 0x00, - 0x08, - 0x12, - 0x12, - 0x13, - 0x13, - 0x13, - 0x15, - 0x15, - 0x15, - 0x05, - 0x13, - 0x01, - 0x12, - 0x01, - 0x15, - 0x09, - 0x1F, - 0x00, - 0x14, - 0x1C, - 0x33, - 0x1C, - 0x1C, - 0x33, - 0x1F, - 0x1F, - 0x1C, - 0x1C, - 0x1C, - 0x12, - 0x12, - 0x12, - 0x13, - 0x12, - 0x13, - 0x12, - 0x13, - 0x12, - 0x12, - 0x08, - 0x13, - 0x00, - 0x06, - 0x34, - 0x34, - 0x34, - 0x13, - 0x13, - 0x13, - 0x09, - 0x2A, - 0x0E, - 0x2B, - 0x0C, - 0x11, - 0x0F, - 0x09, - 0x01, - 0x1B, - 0x01, - 0x1B, - 0x04, - 0x10, - 0x00, - 0x07, - 0x08, - 0x08, - 0x10, - 0x08, - 0x08, - 0x08, - 0x10, - 0x00, - 0x0F, - 0x08, - 0x0E, - 0x04, - 0x07, - 0x03, - 0x00, - 0x00, - 0x00, - 0x08, - 0x0F, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0D, - 0x0F, - 0x13, - 0x0C, - 0x06, - 0x16, - 0x08, - 0x0C, - 0x00, - 0x06, - 0x0D, - 0x0D, - 0x0C, - 0x0D, - 0x0D, - 0x0D, - 0x06, - 0x0C, - 0x09, - 0x0D, - 0x11, - 0x0C, - 0x13, - 0x16, - 0x0E, - 0x1F, - 0x06, - 0x15, - 0x01, - 0x35, - 0x04, - 0x12, - 0x01, - 0x15, - 0x04, - 0x13, - 0x00, - 0x05, - 0x12, - 0x12, - 0x12, - 0x35, - 0x35, - 0x00, - 0x05, - 0x12, - 0x00, - 0x05, - 0x13, - 0x13, - 0x13, - 0x15, - 0x15, - 0x00, - 0x06, - 0x13, - 0x01, - 0x12, - 0x01, - 0x15, - 0x08, - 0x1F, - 0x00, - 0x04, - 0x1C, - 0x33, - 0x1C, - 0x33, - 0x04, - 0x1C, - 0x05, - 0x12, - 0x00, - 0x08, - 0x13, - 0x12, - 0x13, - 0x12, - 0x13, - 0x12, - 0x13, - 0x12, - 0x09, - 0x13, - 0x01, - 0x34, - 0x04, - 0x13, - 0x09, - 0x2A, - 0x09, - 0x2B, - 0x00, - 0x05, - 0x11, - 0x11, - 0x11, - 0x2B, - 0x2B, - 0x00, - 0x0C, - 0x11, - 0x08, - 0x09, - 0x01, - 0x1A, - 0x05, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x09, - 0x1B, - 0x00, - 0x05, - 0x10, - 0x00, - 0x07, - 0x08, - 0x08, - 0x10, - 0x08, - 0x08, - 0x08, - 0x10, - 0x00, - 0x0E, - 0x08, - 0x09, - 0x04, - 0x00, - 0x05, - 0x03, - 0x03, - 0x03, - 0x04, - 0x04, - 0x00, - 0x07, - 0x03, - 0x00, - 0x00, - 0x00, - 0x08, - 0x0C, - 0x0C, - 0x0C, - 0x0F, - 0x0F, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0C, - 0x00, - 0x06, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x05, - 0x16, - 0x00, - 0x05, - 0x0C, - 0x16, - 0x0C, - 0x16, - 0x16, - 0x00, - 0x0B, - 0x0C, - 0x06, - 0x0D, - 0x12, - 0x0C, - 0x00, - 0x03, - 0x16, - 0x0C, - 0x0C, - 0x00, - 0x12, - 0x16, - 0x00, - 0x06, - 0x1F, - 0x1F, - 0x16, - 0x16, - 0x1F, - 0x16, - 0x05, - 0x1F, - 0x0F, - 0x15, - 0x00, - 0x10, - 0x12, - 0x12, - 0x13, - 0x13, - 0x12, - 0x15, - 0x13, - 0x13, - 0x13, - 0x15, - 0x13, - 0x15, - 0x15, - 0x35, - 0x12, - 0x2E, - 0x0F, - 0x13, - 0x00, - 0x03, - 0x12, - 0x15, - 0x15, - 0x00, - 0x06, - 0x1F, - 0x00, - 0x05, - 0x1C, - 0x1C, - 0x1F, - 0x33, - 0x33, - 0x00, - 0x04, - 0x1C, - 0x01, - 0x12, - 0x01, - 0x19, - 0x04, - 0x12, - 0x00, - 0x07, - 0x13, - 0x12, - 0x13, - 0x13, - 0x13, - 0x12, - 0x12, - 0x00, - 0x0B, - 0x13, - 0x0A, - 0x2A, - 0x00, - 0x0B, - 0x2B, - 0x2A, - 0x11, - 0x2B, - 0x2A, - 0x11, - 0x2A, - 0x11, - 0x34, - 0x2B, - 0x2B, - 0x00, - 0x0F, - 0x11, - 0x0A, - 0x09, - 0x01, - 0x1A, - 0x06, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x10, - 0x09, - 0x00, - 0x04, - 0x10, - 0x00, - 0x05, - 0x08, - 0x10, - 0x08, - 0x08, - 0x10, - 0x00, - 0x0E, - 0x08, - 0x01, - 0x03, - 0x01, - 0x08, - 0x09, - 0x04, - 0x0C, - 0x03, - 0x15, - 0x00, - 0x03, - 0x01, - 0x00, - 0x00, - 0x00, - 0x08, - 0x0C, - 0x0F, - 0x0C, - 0x0F, - 0x0C, - 0x0C, - 0x0C, - 0x0F, - 0x0C, - 0x0C, - 0x00, - 0x05, - 0x16, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x00, - 0x05, - 0x16, - 0x00, - 0x05, - 0x0C, - 0x16, - 0x0C, - 0x0C, - 0x16, - 0x00, - 0x0B, - 0x0C, - 0x01, - 0x0D, - 0x18, - 0x0C, - 0x01, - 0x16, - 0x01, - 0x0C, - 0x13, - 0x16, - 0x00, - 0x06, - 0x1F, - 0x16, - 0x1F, - 0x1F, - 0x1F, - 0x16, - 0x05, - 0x1F, - 0x0F, - 0x15, - 0x00, - 0x09, - 0x12, - 0x13, - 0x13, - 0x13, - 0x12, - 0x15, - 0x13, - 0x13, - 0x13, - 0x00, - 0x05, - 0x15, - 0x11, - 0x13, - 0x00, - 0x03, - 0x12, - 0x15, - 0x15, - 0x00, - 0x06, - 0x1F, - 0x00, - 0x07, - 0x1C, - 0x1F, - 0x1F, - 0x1F, - 0x1C, - 0x1C, - 0x1C, - 0x00, - 0x04, - 0x19, - 0x00, - 0x09, - 0x12, - 0x13, - 0x12, - 0x13, - 0x12, - 0x13, - 0x12, - 0x13, - 0x12, - 0x00, - 0x0D, - 0x13, - 0x0A, - 0x2A, - 0x00, - 0x09, - 0x11, - 0x2A, - 0x11, - 0x2B, - 0x2B, - 0x2A, - 0x2B, - 0x13, - 0x2B, - 0x00, - 0x11, - 0x11, - 0x0A, - 0x09, - 0x01, - 0x1A, - 0x06, - 0x09, - 0x00, - 0x0B, - 0x1B, - 0x09, - 0x10, - 0x1A, - 0x10, - 0x10, - 0x10, - 0x08, - 0x08, - 0x08, - 0x10, - 0x00, - 0x0F, - 0x08, - 0x0B, - 0x04, - 0x0D, - 0x03, - 0x13, - 0x00, - 0x05, - 0x01, - 0x00, - 0x00, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x05, - 0x0F, - 0x06, - 0x0C, - 0x01, - 0x16, - 0x01, - 0x16, - 0x05, - 0x0C, - 0x00, - 0x06, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x0A, - 0x16, - 0x0A, - 0x0C, - 0x07, - 0x0D, - 0x12, - 0x0C, - 0x00, - 0x03, - 0x16, - 0x16, - 0x0C, - 0x00, - 0x12, - 0x16, - 0x01, - 0x1F, - 0x04, - 0x16, - 0x06, - 0x1F, - 0x0F, - 0x15, - 0x04, - 0x13, - 0x01, - 0x12, - 0x01, - 0x15, - 0x18, - 0x13, - 0x00, - 0x04, - 0x12, - 0x12, - 0x15, - 0x1F, - 0x08, - 0x1C, - 0x00, - 0x07, - 0x1F, - 0x1F, - 0x1C, - 0x12, - 0x12, - 0x19, - 0x19, - 0x00, - 0x08, - 0x12, - 0x00, - 0x05, - 0x13, - 0x12, - 0x13, - 0x12, - 0x12, - 0x00, - 0x0B, - 0x13, - 0x0B, - 0x2A, - 0x00, - 0x06, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x2B, - 0x13, - 0x11, - 0x0A, - 0x09, - 0x01, - 0x1B, - 0x06, - 0x09, - 0x00, - 0x07, - 0x1B, - 0x09, - 0x1B, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x00, - 0x13, - 0x08, - 0x06, - 0x04, - 0x12, - 0x03, - 0x12, - 0x00, - 0x06, - 0x01, - 0x00, - 0x00, - 0x06, - 0x0C, - 0x01, - 0x0F, - 0x05, - 0x0C, - 0x00, - 0x08, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x0E, - 0x16, - 0x01, - 0x0C, - 0x01, - 0x16, - 0x10, - 0x0C, - 0x01, - 0x0D, - 0x16, - 0x0C, - 0x11, - 0x16, - 0x05, - 0x1F, - 0x01, - 0x16, - 0x05, - 0x1F, - 0x01, - 0x15, - 0x01, - 0x15, - 0x05, - 0x16, - 0x05, - 0x15, - 0x07, - 0x13, - 0x00, - 0x03, - 0x15, - 0x15, - 0x15, - 0x00, - 0x09, - 0x13, - 0x01, - 0x12, - 0x0B, - 0x13, - 0x04, - 0x12, - 0x00, - 0x04, - 0x1F, - 0x1C, - 0x1C, - 0x1C, - 0x05, - 0x1F, - 0x01, - 0x12, - 0x01, - 0x1F, - 0x12, - 0x12, - 0x0A, - 0x13, - 0x0A, - 0x2A, - 0x00, - 0x07, - 0x11, - 0x2A, - 0x11, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x00, - 0x14, - 0x11, - 0x0B, - 0x09, - 0x01, - 0x1A, - 0x06, - 0x09, - 0x00, - 0x08, - 0x1B, - 0x09, - 0x1B, - 0x09, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x11, - 0x08, - 0x07, - 0x04, - 0x08, - 0x03, - 0x1C, - 0x00, - 0x06, - 0x01, - 0x00, - 0x00, - 0x08, - 0x0F, - 0x05, - 0x0C, - 0x07, - 0x16, - 0x07, - 0x0C, - 0x09, - 0x16, - 0x07, - 0x0C, - 0x09, - 0x0D, - 0x16, - 0x0C, - 0x01, - 0x16, - 0x01, - 0x0C, - 0x16, - 0x16, - 0x05, - 0x1F, - 0x01, - 0x15, - 0x06, - 0x16, - 0x05, - 0x15, - 0x07, - 0x13, - 0x00, - 0x03, - 0x15, - 0x15, - 0x15, - 0x00, - 0x0A, - 0x13, - 0x01, - 0x12, - 0x0A, - 0x13, - 0x04, - 0x12, - 0x00, - 0x04, - 0x1F, - 0x1C, - 0x1F, - 0x1F, - 0x05, - 0x1C, - 0x01, - 0x1F, - 0x01, - 0x1F, - 0x12, - 0x12, - 0x0A, - 0x13, - 0x09, - 0x2A, - 0x00, - 0x08, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x2B, - 0x2A, - 0x2A, - 0x2B, - 0x14, - 0x11, - 0x0B, - 0x09, - 0x01, - 0x1A, - 0x07, - 0x09, - 0x00, - 0x07, - 0x1B, - 0x1B, - 0x10, - 0x1B, - 0x10, - 0x10, - 0x10, - 0x00, - 0x11, - 0x08, - 0x07, - 0x04, - 0x08, - 0x03, - 0x1C, - 0x00, - 0x06, - 0x01, - 0x00, - 0x00, - 0x14, - 0x0C, - 0x07, - 0x16, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x05, - 0x16, - 0x29, - 0x0C, - 0x06, - 0x16, - 0x01, - 0x0C, - 0x09, - 0x16, - 0x07, - 0x1F, - 0x07, - 0x15, - 0x01, - 0x16, - 0x09, - 0x15, - 0x13, - 0x12, - 0x0C, - 0x13, - 0x00, - 0x05, - 0x12, - 0x12, - 0x12, - 0x1F, - 0x1F, - 0x00, - 0x04, - 0x1C, - 0x04, - 0x1F, - 0x0D, - 0x12, - 0x05, - 0x13, - 0x01, - 0x12, - 0x08, - 0x13, - 0x0C, - 0x2A, - 0x07, - 0x2B, - 0x14, - 0x11, - 0x15, - 0x09, - 0x00, - 0x03, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x04, - 0x10, - 0x0E, - 0x08, - 0x07, - 0x04, - 0x08, - 0x03, - 0x1F, - 0x00, - 0x04, - 0x01, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x02, - 0x01, - 0x36, - 0x17, - 0x01, - 0x00, - 0x00, - 0x0B, - 0x42, - 0xE7, - 0x42, - 0x42, - 0xE7, - 0x42, - 0x42, - 0xCB, - 0x42, - 0xCB, - 0x42, - 0x00, - 0x04, - 0xCB, - 0x01, - 0x42, - 0x04, - 0xCB, - 0x00, - 0x06, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0x59, - 0x16, - 0xCB, - 0x00, - 0x1F, - 0x59, - 0xCB, - 0x59, - 0xF5, - 0x59, - 0x59, - 0xF5, - 0x59, - 0x59, - 0xF5, - 0xD6, - 0x59, - 0x59, - 0xF5, - 0x59, - 0xD6, - 0x59, - 0xD6, - 0x59, - 0xD6, - 0x6E, - 0xD6, - 0x59, - 0xD6, - 0x6E, - 0xD6, - 0x6E, - 0xD6, - 0x6E, - 0xD6, - 0x6E, - 0x00, - 0x10, - 0xD6, - 0x00, - 0x0B, - 0xB4, - 0xD6, - 0xD6, - 0xD6, - 0x8A, - 0xB4, - 0x8A, - 0x8A, - 0xB4, - 0xB4, - 0x8A, - 0x00, - 0x0B, - 0xB4, - 0x00, - 0x0A, - 0x56, - 0xB4, - 0xCA, - 0xB4, - 0xB4, - 0xB4, - 0x56, - 0xB4, - 0xB4, - 0x9E, - 0x04, - 0xB4, - 0x00, - 0x13, - 0x58, - 0xB4, - 0xB4, - 0xB4, - 0x58, - 0xB4, - 0xB4, - 0xB4, - 0x58, - 0x9E, - 0xB4, - 0x9E, - 0x58, - 0x9E, - 0xCA, - 0x41, - 0x9E, - 0x58, - 0x9E, - 0x00, - 0x0D, - 0x41, - 0x00, - 0x05, - 0x1D, - 0x41, - 0x57, - 0x1D, - 0x28, - 0x00, - 0x1F, - 0x41, - 0x01, - 0x89, - 0x0D, - 0x41, - 0x01, - 0x57, - 0x09, - 0x41, - 0x00, - 0x08, - 0x57, - 0x41, - 0x57, - 0x57, - 0x41, - 0x57, - 0x41, - 0x57, - 0x07, - 0x41, - 0x08, - 0x9E, - 0x00, - 0x15, - 0xB4, - 0x9E, - 0x9E, - 0x41, - 0x41, - 0x41, - 0xCA, - 0xB4, - 0xB4, - 0xB4, - 0xCA, - 0xB4, - 0xCA, - 0x56, - 0xB4, - 0xB4, - 0xB4, - 0x56, - 0xB4, - 0xB4, - 0x56, - 0x00, - 0x05, - 0xB4, - 0x01, - 0x8A, - 0x01, - 0xB4, - 0x0A, - 0x8A, - 0x01, - 0xD6, - 0x01, - 0x8A, - 0x16, - 0xD6, - 0x00, - 0x0C, - 0x6E, - 0xD6, - 0x6E, - 0xD6, - 0xD6, - 0x6E, - 0xD6, - 0x59, - 0x6E, - 0xF5, - 0x6E, - 0xB4, - 0x00, - 0x00, - 0x01, - 0xCB, - 0x01, - 0xE7, - 0x04, - 0x42, - 0x0C, - 0xCB, - 0x00, - 0x09, - 0x59, - 0xCB, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0x00, - 0x11, - 0xCB, - 0x00, - 0x03, - 0x59, - 0xCB, - 0xCB, - 0x00, - 0x07, - 0x59, - 0x00, - 0x0B, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x59, - 0xD6, - 0x6E, - 0xD6, - 0x6E, - 0xD6, - 0x6E, - 0x00, - 0x04, - 0xD6, - 0x01, - 0x6E, - 0x10, - 0xD6, - 0x00, - 0x04, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x09, - 0x8A, - 0x00, - 0x05, - 0xB4, - 0x8A, - 0xB4, - 0xCA, - 0x8A, - 0x00, - 0x10, - 0xB4, - 0x00, - 0x07, - 0xCA, - 0xCA, - 0xB4, - 0xCA, - 0xCA, - 0xB4, - 0xB4, - 0x00, - 0x05, - 0x9E, - 0x00, - 0x07, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x41, - 0x9E, - 0x00, - 0x0E, - 0x41, - 0x00, - 0x15, - 0x1D, - 0x28, - 0x1D, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x28, - 0x1D, - 0x28, - 0x00, - 0x1D, - 0x41, - 0x00, - 0x13, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x41, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x1D, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x28, - 0x00, - 0x0A, - 0x1D, - 0x00, - 0x05, - 0x28, - 0x28, - 0x1D, - 0x28, - 0x1D, - 0x00, - 0x08, - 0x41, - 0x00, - 0x15, - 0x9E, - 0x41, - 0x41, - 0x1D, - 0x1D, - 0x1D, - 0x41, - 0x41, - 0x9E, - 0x9E, - 0x41, - 0x9E, - 0x9E, - 0x41, - 0x9E, - 0x9E, - 0x9E, - 0xCA, - 0x9E, - 0x9E, - 0xCA, - 0x00, - 0x06, - 0x9E, - 0x01, - 0xCA, - 0x01, - 0x9E, - 0x05, - 0xCA, - 0x00, - 0x17, - 0x56, - 0xCA, - 0xCA, - 0xCA, - 0x9D, - 0xCA, - 0x9D, - 0x9D, - 0x9D, - 0x8A, - 0x8A, - 0x8A, - 0x9D, - 0x8A, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0x00, - 0x08, - 0xD6, - 0x00, - 0x03, - 0x8A, - 0xD6, - 0x6E, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x03, - 0xD7, - 0xD6, - 0xB4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x42, - 0x42, - 0xCB, - 0xE7, - 0x42, - 0x00, - 0x0C, - 0xCB, - 0x01, - 0x59, - 0x01, - 0xCB, - 0x09, - 0x59, - 0x00, - 0x04, - 0xCB, - 0xCB, - 0xCB, - 0x59, - 0x04, - 0xCB, - 0x00, - 0x0B, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0x59, - 0xCB, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x00, - 0x06, - 0x59, - 0x01, - 0x6E, - 0x01, - 0x59, - 0x07, - 0x6E, - 0x01, - 0xD6, - 0x01, - 0x6E, - 0x09, - 0xD6, - 0x00, - 0x0F, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0x8A, - 0x8A, - 0xB4, - 0x8A, - 0x8A, - 0x8A, - 0xB4, - 0xB4, - 0x8A, - 0x00, - 0x06, - 0xB4, - 0x01, - 0xCA, - 0x08, - 0xB4, - 0x00, - 0x17, - 0x58, - 0x9E, - 0xB4, - 0xB4, - 0x9E, - 0xB4, - 0x9E, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x41, - 0x41, - 0x89, - 0x41, - 0x41, - 0x9E, - 0x00, - 0x16, - 0x41, - 0x00, - 0x04, - 0x57, - 0x41, - 0x28, - 0x41, - 0x05, - 0x28, - 0x01, - 0x1D, - 0x11, - 0x28, - 0x00, - 0x07, - 0x41, - 0x41, - 0x89, - 0x41, - 0x89, - 0x89, - 0x41, - 0x00, - 0x0C, - 0x28, - 0x00, - 0x07, - 0x41, - 0x89, - 0x41, - 0x89, - 0x41, - 0x41, - 0x57, - 0x00, - 0x0C, - 0x28, - 0x01, - 0x1C, - 0x09, - 0x28, - 0x00, - 0x0A, - 0x1C, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x1D, - 0x10, - 0x28, - 0x01, - 0x1C, - 0x04, - 0x28, - 0x00, - 0x0C, - 0x57, - 0x28, - 0x41, - 0x28, - 0x41, - 0x57, - 0x41, - 0x28, - 0x41, - 0x57, - 0x41, - 0x28, - 0x17, - 0x41, - 0x00, - 0x14, - 0x9E, - 0x9E, - 0x41, - 0x41, - 0x89, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x9E, - 0x58, - 0x9E, - 0x9E, - 0x9E, - 0x58, - 0x9E, - 0x58, - 0x9E, - 0x58, - 0x9E, - 0x08, - 0xB4, - 0x00, - 0x03, - 0xD6, - 0xCA, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x42, - 0xCB, - 0xE7, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x08, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x0B, - 0x59, - 0x00, - 0x0A, - 0x6E, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0x59, - 0xCB, - 0x0C, - 0x59, - 0x09, - 0x6E, - 0x00, - 0x20, - 0xD6, - 0x6E, - 0x6E, - 0xD6, - 0x6E, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0x9D, - 0x8A, - 0x9D, - 0x8A, - 0xCA, - 0x8A, - 0x9D, - 0xCA, - 0xCA, - 0x8A, - 0xCA, - 0xCA, - 0xCA, - 0x56, - 0x04, - 0xCA, - 0x00, - 0x05, - 0xB4, - 0xCA, - 0xCA, - 0xCA, - 0x56, - 0x00, - 0x07, - 0x9E, - 0x00, - 0x14, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x9E, - 0x41, - 0x89, - 0x41, - 0x89, - 0x41, - 0x41, - 0x41, - 0x89, - 0x41, - 0x41, - 0x41, - 0x89, - 0x05, - 0x41, - 0x00, - 0x08, - 0x57, - 0x41, - 0x57, - 0x41, - 0x57, - 0x41, - 0x57, - 0x41, - 0x05, - 0x57, - 0x00, - 0x07, - 0x28, - 0x57, - 0x57, - 0x28, - 0x57, - 0x28, - 0x57, - 0x00, - 0x06, - 0x28, - 0x00, - 0x03, - 0x1C, - 0x28, - 0x1C, - 0x00, - 0x05, - 0x28, - 0x01, - 0x1C, - 0x05, - 0x28, - 0x00, - 0x03, - 0x1D, - 0x28, - 0x1D, - 0x00, - 0x07, - 0x28, - 0x01, - 0x57, - 0x0C, - 0x28, - 0x01, - 0x57, - 0x04, - 0x28, - 0x00, - 0x0D, - 0x57, - 0x57, - 0x57, - 0x41, - 0x57, - 0x57, - 0x28, - 0x28, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x1C, - 0x00, - 0x04, - 0x28, - 0x00, - 0x05, - 0x1C, - 0x28, - 0x28, - 0x28, - 0x1C, - 0x00, - 0x0C, - 0x28, - 0x00, - 0x04, - 0x1C, - 0x28, - 0x28, - 0x1C, - 0x0C, - 0x28, - 0x01, - 0x1C, - 0x01, - 0x1C, - 0x0A, - 0x28, - 0x00, - 0x07, - 0x57, - 0x28, - 0x57, - 0x28, - 0x57, - 0x57, - 0x28, - 0x00, - 0x06, - 0x57, - 0x00, - 0x0A, - 0x28, - 0x57, - 0x41, - 0x57, - 0x41, - 0x57, - 0x41, - 0x57, - 0x41, - 0x57, - 0x0F, - 0x41, - 0x00, - 0x06, - 0x89, - 0x41, - 0x89, - 0x41, - 0x9E, - 0x41, - 0x04, - 0x9E, - 0x01, - 0x41, - 0x05, - 0x9E, - 0x00, - 0x05, - 0x56, - 0x9E, - 0xB4, - 0x8A, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x42, - 0x42, - 0xCB, - 0x42, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0xCB, - 0xCB, - 0x06, - 0x59, - 0x00, - 0x0E, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0x04, - 0x59, - 0x00, - 0x05, - 0x6E, - 0x59, - 0xCB, - 0x6E, - 0x59, - 0x00, - 0x0E, - 0x6E, - 0x04, - 0xD6, - 0x00, - 0x09, - 0x8A, - 0xD6, - 0xD6, - 0x9D, - 0xD6, - 0xE1, - 0x8A, - 0xD6, - 0xE1, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x0C, - 0xCA, - 0x9D, - 0xCA, - 0x9D, - 0x9D, - 0x9D, - 0xCA, - 0x9D, - 0xCA, - 0xCA, - 0xCA, - 0x9D, - 0x05, - 0xCA, - 0x04, - 0x9E, - 0x01, - 0xCA, - 0x05, - 0x9E, - 0x01, - 0x89, - 0x04, - 0x9E, - 0x08, - 0x89, - 0x00, - 0x0A, - 0x41, - 0x89, - 0x89, - 0x89, - 0x41, - 0x89, - 0x41, - 0x89, - 0x89, - 0x89, - 0x0D, - 0x57, - 0x00, - 0x09, - 0x28, - 0x57, - 0x57, - 0x57, - 0x28, - 0x57, - 0x57, - 0x28, - 0x57, - 0x00, - 0x07, - 0x28, - 0x01, - 0x1C, - 0x04, - 0x28, - 0x00, - 0x05, - 0x1C, - 0x28, - 0x1C, - 0x1C, - 0x1C, - 0x00, - 0x06, - 0x28, - 0x05, - 0x1C, - 0x12, - 0x28, - 0x01, - 0x57, - 0x08, - 0x28, - 0x00, - 0x09, - 0x1C, - 0x28, - 0x28, - 0x28, - 0x41, - 0x57, - 0x28, - 0x28, - 0x28, - 0x00, - 0x04, - 0x1C, - 0x00, - 0x05, - 0x28, - 0x1C, - 0x1C, - 0x1C, - 0x28, - 0x00, - 0x0E, - 0x1C, - 0x00, - 0x06, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x28, - 0x1C, - 0x15, - 0x28, - 0x01, - 0x57, - 0x04, - 0x28, - 0x00, - 0x06, - 0x57, - 0x28, - 0x57, - 0x28, - 0x57, - 0x28, - 0x10, - 0x57, - 0x00, - 0x03, - 0x89, - 0x89, - 0x57, - 0x00, - 0x10, - 0x89, - 0x00, - 0x03, - 0x9E, - 0x9E, - 0x89, - 0x00, - 0x07, - 0x9E, - 0x01, - 0xCA, - 0x01, - 0x9E, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xCB, - 0x42, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0x59, - 0x59, - 0x59, - 0xCB, - 0x00, - 0x04, - 0x59, - 0x00, - 0x07, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x00, - 0x06, - 0x6E, - 0x00, - 0x0D, - 0xCB, - 0x59, - 0x59, - 0xCB, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x00, - 0x05, - 0x6E, - 0x00, - 0x16, - 0xD6, - 0x6E, - 0x6E, - 0x6E, - 0xD6, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x9D, - 0xE1, - 0x9D, - 0x9D, - 0xE1, - 0xE1, - 0x05, - 0x9D, - 0x00, - 0x0B, - 0xCA, - 0x9D, - 0xCA, - 0x9D, - 0xCA, - 0xCA, - 0x9D, - 0xCA, - 0xCA, - 0x6D, - 0xCA, - 0x00, - 0x0D, - 0x9E, - 0x00, - 0x05, - 0x89, - 0x9E, - 0x9E, - 0x89, - 0x9E, - 0x00, - 0x0D, - 0x89, - 0x01, - 0x57, - 0x01, - 0x89, - 0x10, - 0x57, - 0x01, - 0x28, - 0x04, - 0x57, - 0x00, - 0x03, - 0x28, - 0x28, - 0x57, - 0x00, - 0x0A, - 0x28, - 0x01, - 0x1C, - 0x01, - 0x28, - 0x07, - 0x1C, - 0x04, - 0x28, - 0x09, - 0x1C, - 0x00, - 0x08, - 0x28, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x40, - 0x57, - 0x1C, - 0x06, - 0x28, - 0x00, - 0x0D, - 0x1C, - 0x28, - 0x28, - 0x1C, - 0x28, - 0x57, - 0x28, - 0x28, - 0x40, - 0x28, - 0x40, - 0x28, - 0x28, - 0x00, - 0x07, - 0x1C, - 0x00, - 0x05, - 0x28, - 0x28, - 0x28, - 0x57, - 0x57, - 0x00, - 0x16, - 0x1C, - 0x00, - 0x18, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x28, - 0x40, - 0x28, - 0x40, - 0x0C, - 0x28, - 0x00, - 0x0C, - 0x57, - 0x28, - 0x57, - 0x28, - 0x28, - 0x57, - 0x28, - 0x57, - 0x28, - 0x57, - 0x57, - 0x28, - 0x06, - 0x57, - 0x01, - 0x89, - 0x06, - 0x57, - 0x01, - 0x89, - 0x01, - 0x57, - 0x0B, - 0x89, - 0x00, - 0x03, - 0x9E, - 0x89, - 0x89, - 0x00, - 0x06, - 0x9E, - 0x01, - 0x89, - 0x00, - 0x00, - 0x00, - 0x08, - 0xCB, - 0x42, - 0xCB, - 0x59, - 0xCB, - 0x59, - 0x59, - 0xCB, - 0x05, - 0x59, - 0x00, - 0x08, - 0x6E, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x0A, - 0x6E, - 0x01, - 0xCB, - 0x01, - 0x6E, - 0x04, - 0x59, - 0x00, - 0x06, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x6E, - 0x59, - 0x0B, - 0x6E, - 0x00, - 0x1E, - 0xD6, - 0x6E, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x9D, - 0x9D, - 0x9D, - 0xE1, - 0x9D, - 0xE1, - 0x9D, - 0x9D, - 0x9D, - 0xE1, - 0x9D, - 0x9D, - 0xCA, - 0xC8, - 0x9D, - 0xC8, - 0x9D, - 0xCA, - 0xC8, - 0xCA, - 0x9E, - 0x6D, - 0xCA, - 0x04, - 0x9E, - 0x00, - 0x08, - 0x6D, - 0x9E, - 0x9E, - 0xC9, - 0x9E, - 0xC9, - 0x9E, - 0x89, - 0x04, - 0x9E, - 0x01, - 0x89, - 0x01, - 0x9E, - 0x06, - 0x89, - 0x00, - 0x14, - 0x88, - 0x89, - 0x89, - 0x57, - 0x89, - 0x57, - 0x88, - 0x57, - 0x57, - 0x88, - 0x57, - 0x57, - 0x88, - 0x57, - 0x57, - 0x57, - 0x88, - 0x57, - 0x57, - 0x28, - 0x04, - 0x57, - 0x00, - 0x09, - 0x28, - 0x57, - 0x28, - 0x57, - 0x28, - 0x54, - 0x28, - 0x28, - 0x54, - 0x00, - 0x07, - 0x28, - 0x01, - 0x40, - 0x04, - 0x28, - 0x07, - 0x1C, - 0x01, - 0x28, - 0x01, - 0x28, - 0x0F, - 0x1C, - 0x00, - 0x19, - 0x28, - 0x1C, - 0x28, - 0x28, - 0x28, - 0x40, - 0x28, - 0x1C, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x28, - 0x40, - 0x1C, - 0x28, - 0x1C, - 0x57, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x28, - 0x00, - 0x0C, - 0x1C, - 0x00, - 0x04, - 0x28, - 0x57, - 0x28, - 0x40, - 0x13, - 0x1C, - 0x00, - 0x14, - 0x28, - 0x1C, - 0x1C, - 0x1C, - 0x28, - 0x1C, - 0x1C, - 0x1C, - 0x28, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x28, - 0x1C, - 0x1C, - 0x28, - 0x1C, - 0x28, - 0x1C, - 0x06, - 0x28, - 0x01, - 0x40, - 0x05, - 0x28, - 0x00, - 0x0D, - 0x40, - 0x28, - 0x28, - 0x40, - 0x28, - 0x28, - 0x28, - 0x57, - 0x28, - 0x57, - 0x28, - 0x57, - 0x28, - 0x00, - 0x0D, - 0x57, - 0x00, - 0x0B, - 0x88, - 0x57, - 0x88, - 0x88, - 0x57, - 0x57, - 0x88, - 0x88, - 0x57, - 0x89, - 0x88, - 0x00, - 0x06, - 0x89, - 0x00, - 0x08, - 0x9E, - 0x89, - 0x89, - 0x89, - 0x9E, - 0x9E, - 0xC9, - 0x57, - 0x00, - 0x00, - 0x00, - 0x03, - 0xCB, - 0xCB, - 0xCB, - 0x00, - 0x05, - 0x59, - 0x00, - 0x08, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x0C, - 0x6E, - 0x00, - 0x06, - 0xD6, - 0x6E, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x0E, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x6E, - 0xD6, - 0x8A, - 0xD6, - 0x00, - 0x05, - 0x8A, - 0x05, - 0x9D, - 0x01, - 0xE1, - 0x01, - 0x9D, - 0x04, - 0xC8, - 0x01, - 0xE1, - 0x01, - 0x9D, - 0x04, - 0xC8, - 0x00, - 0x1C, - 0xCA, - 0xC8, - 0x9E, - 0xC8, - 0x9E, - 0xC8, - 0x6D, - 0x9E, - 0xC9, - 0x9E, - 0x6D, - 0x9E, - 0x6D, - 0x9E, - 0x9E, - 0x9E, - 0x89, - 0x89, - 0x89, - 0x9E, - 0xC9, - 0x89, - 0x6D, - 0xC9, - 0x88, - 0x89, - 0x88, - 0x89, - 0x05, - 0x88, - 0x00, - 0x08, - 0x57, - 0x88, - 0x88, - 0x88, - 0x57, - 0x88, - 0x57, - 0x88, - 0x06, - 0x57, - 0x00, - 0x1F, - 0x54, - 0x57, - 0x57, - 0x54, - 0x57, - 0x57, - 0x57, - 0x28, - 0x54, - 0x28, - 0x57, - 0x28, - 0x57, - 0x40, - 0x28, - 0x28, - 0x28, - 0x40, - 0x28, - 0x28, - 0x40, - 0x28, - 0x28, - 0x40, - 0x28, - 0x40, - 0x28, - 0x28, - 0x40, - 0x1C, - 0x40, - 0x00, - 0x05, - 0x1C, - 0x01, - 0x28, - 0x04, - 0x1C, - 0x00, - 0x0C, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x06, - 0x1C, - 0x00, - 0x15, - 0x54, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x54, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x00, - 0x0F, - 0x1C, - 0x00, - 0x03, - 0x28, - 0x28, - 0x54, - 0x00, - 0x14, - 0x1C, - 0x00, - 0x04, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x08, - 0x1C, - 0x00, - 0x11, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x40, - 0x28, - 0x40, - 0x28, - 0x40, - 0x28, - 0x40, - 0x00, - 0x05, - 0x28, - 0x00, - 0x13, - 0x40, - 0x28, - 0x40, - 0x28, - 0x40, - 0x28, - 0x57, - 0x54, - 0x28, - 0x57, - 0x28, - 0x54, - 0x28, - 0x57, - 0x57, - 0x57, - 0x54, - 0x57, - 0x54, - 0x00, - 0x07, - 0x57, - 0x00, - 0x03, - 0x88, - 0x88, - 0x57, - 0x00, - 0x06, - 0x88, - 0x00, - 0x0B, - 0x89, - 0x88, - 0x89, - 0x88, - 0x88, - 0x89, - 0xC9, - 0x89, - 0xC9, - 0x9E, - 0x57, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x09, - 0x59, - 0x00, - 0x05, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x08, - 0xD6, - 0x6E, - 0x6E, - 0xD6, - 0x6E, - 0x6E, - 0xD6, - 0xD6, - 0x09, - 0x6E, - 0x00, - 0x08, - 0xD6, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x08, - 0x8A, - 0x07, - 0x9D, - 0x06, - 0xC8, - 0x01, - 0x9D, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xC9, - 0xC8, - 0xC8, - 0x6D, - 0xC8, - 0x6D, - 0xC9, - 0xC9, - 0x6D, - 0xC9, - 0xC9, - 0x55, - 0x09, - 0xC9, - 0x00, - 0x03, - 0x88, - 0xC9, - 0xC9, - 0x00, - 0x0C, - 0x88, - 0x00, - 0x1E, - 0x57, - 0x88, - 0x88, - 0x54, - 0x57, - 0x88, - 0x57, - 0x54, - 0x57, - 0x54, - 0x57, - 0x57, - 0x57, - 0x54, - 0x57, - 0x57, - 0x28, - 0x54, - 0x28, - 0x54, - 0x28, - 0x54, - 0x28, - 0x40, - 0x40, - 0x28, - 0x40, - 0x40, - 0x40, - 0x28, - 0x09, - 0x40, - 0x00, - 0x0C, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x1C, - 0x1B, - 0x08, - 0x1C, - 0x01, - 0x1B, - 0x08, - 0x1C, - 0x00, - 0x17, - 0x1B, - 0x1C, - 0x1C, - 0x40, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x54, - 0x40, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x00, - 0x07, - 0x1C, - 0x00, - 0x0F, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x28, - 0x54, - 0x40, - 0x00, - 0x05, - 0x1C, - 0x00, - 0x12, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x1C, - 0x40, - 0x0C, - 0x1C, - 0x00, - 0x09, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x00, - 0x07, - 0x40, - 0x00, - 0x0F, - 0x28, - 0x40, - 0x28, - 0x40, - 0x28, - 0x40, - 0x40, - 0x28, - 0x54, - 0x28, - 0x54, - 0x57, - 0x54, - 0x28, - 0x54, - 0x00, - 0x04, - 0x57, - 0x00, - 0x0D, - 0x54, - 0x57, - 0x57, - 0x57, - 0x54, - 0x57, - 0x88, - 0x57, - 0x57, - 0x88, - 0x88, - 0x54, - 0x57, - 0x00, - 0x0B, - 0x88, - 0x00, - 0x03, - 0xC9, - 0x88, - 0x57, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCB, - 0x04, - 0x59, - 0x00, - 0x0A, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x6E, - 0x59, - 0x09, - 0x6E, - 0x00, - 0x08, - 0xD6, - 0x6E, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0x8A, - 0x0C, - 0x6E, - 0x01, - 0x8A, - 0x01, - 0xD6, - 0x07, - 0x8A, - 0x01, - 0x9D, - 0x01, - 0x8A, - 0x06, - 0x9D, - 0x0A, - 0xC8, - 0x00, - 0x0A, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0x87, - 0xC9, - 0xC9, - 0xC9, - 0x87, - 0x08, - 0xC9, - 0x00, - 0x28, - 0x88, - 0xC9, - 0x88, - 0xC9, - 0x88, - 0x86, - 0x88, - 0x88, - 0xC9, - 0x88, - 0x88, - 0x88, - 0xB3, - 0x88, - 0x88, - 0x88, - 0xB3, - 0x88, - 0x57, - 0x88, - 0x88, - 0x54, - 0x57, - 0x88, - 0x57, - 0x54, - 0x57, - 0x54, - 0x57, - 0x54, - 0x28, - 0x54, - 0x54, - 0x54, - 0x28, - 0x54, - 0x54, - 0x54, - 0x40, - 0x54, - 0x0D, - 0x40, - 0x00, - 0x12, - 0x1C, - 0x40, - 0x40, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x1C, - 0x1B, - 0x1C, - 0x10, - 0x1B, - 0x00, - 0x07, - 0x1C, - 0x1C, - 0x1B, - 0x1B, - 0x1C, - 0x40, - 0x40, - 0x00, - 0x06, - 0x1C, - 0x01, - 0x1B, - 0x04, - 0x1C, - 0x01, - 0x40, - 0x01, - 0x40, - 0x06, - 0x1C, - 0x00, - 0x20, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x1B, - 0x1C, - 0x1B, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x1B, - 0x1C, - 0x1C, - 0x40, - 0x40, - 0x1C, - 0x1B, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x07, - 0x1C, - 0x00, - 0x09, - 0x1B, - 0x1C, - 0x53, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1C, - 0x1B, - 0x00, - 0x04, - 0x1C, - 0x01, - 0x1B, - 0x07, - 0x1C, - 0x00, - 0x0B, - 0x40, - 0x40, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x00, - 0x0E, - 0x40, - 0x00, - 0x10, - 0x54, - 0x40, - 0x54, - 0x54, - 0x40, - 0x54, - 0x57, - 0x54, - 0x54, - 0x54, - 0x57, - 0x54, - 0x57, - 0x54, - 0x88, - 0x57, - 0x04, - 0x88, - 0x00, - 0x04, - 0x54, - 0x40, - 0x40, - 0x54, - 0x06, - 0x88, - 0x00, - 0x03, - 0xC9, - 0x88, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x05, - 0x6E, - 0x00, - 0x13, - 0x59, - 0x6E, - 0x6E, - 0xD6, - 0x6E, - 0x6E, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0x9D, - 0x8A, - 0x6E, - 0x6E, - 0x00, - 0x06, - 0x8A, - 0x00, - 0x03, - 0x9D, - 0x9D, - 0x8A, - 0x00, - 0x05, - 0x9D, - 0x01, - 0xC8, - 0x08, - 0x9D, - 0x01, - 0xC8, - 0x01, - 0x9D, - 0x09, - 0xC8, - 0x00, - 0x0B, - 0x87, - 0xC8, - 0xC8, - 0x87, - 0x87, - 0x87, - 0xC9, - 0x87, - 0xC9, - 0xC9, - 0x87, - 0x00, - 0x08, - 0xC9, - 0x00, - 0x18, - 0x86, - 0xB3, - 0x86, - 0xB3, - 0x86, - 0x86, - 0x88, - 0xB3, - 0x88, - 0xB3, - 0x86, - 0xB3, - 0x88, - 0x6C, - 0x88, - 0x88, - 0xB3, - 0x6C, - 0x88, - 0x54, - 0xB3, - 0x6C, - 0x54, - 0x88, - 0x0A, - 0x54, - 0x00, - 0x05, - 0x40, - 0x54, - 0x40, - 0x54, - 0x54, - 0x00, - 0x0E, - 0x40, - 0x00, - 0x0F, - 0x1C, - 0x1C, - 0x53, - 0x40, - 0x1C, - 0x1C, - 0x53, - 0x1C, - 0x53, - 0x1C, - 0x1B, - 0x1C, - 0x54, - 0x54, - 0x40, - 0x00, - 0x15, - 0x1B, - 0x00, - 0x0B, - 0x40, - 0x53, - 0x40, - 0x53, - 0x54, - 0x54, - 0x40, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x00, - 0x07, - 0x1C, - 0x00, - 0x08, - 0x54, - 0x40, - 0x1B, - 0x1C, - 0x1B, - 0x1B, - 0x1C, - 0x1C, - 0x16, - 0x1B, - 0x00, - 0x04, - 0x1C, - 0x40, - 0x40, - 0x40, - 0x07, - 0x1B, - 0x00, - 0x05, - 0x40, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x00, - 0x07, - 0x1C, - 0x00, - 0x0A, - 0x1B, - 0x1C, - 0x1C, - 0x1C, - 0x1B, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x05, - 0x1C, - 0x00, - 0x0D, - 0x40, - 0x1C, - 0x1B, - 0x1C, - 0x1C, - 0x53, - 0x1C, - 0x53, - 0x1C, - 0x40, - 0x53, - 0x1C, - 0x53, - 0x00, - 0x0E, - 0x40, - 0x00, - 0x08, - 0x54, - 0x54, - 0x40, - 0x54, - 0x40, - 0x54, - 0x54, - 0x40, - 0x08, - 0x54, - 0x00, - 0x0F, - 0xB3, - 0x54, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x88, - 0x54, - 0xB3, - 0x88, - 0xB3, - 0x88, - 0x86, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0xCB, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x07, - 0x6E, - 0x00, - 0x17, - 0xD6, - 0x6E, - 0x59, - 0xD6, - 0x6E, - 0x6E, - 0x6E, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x9D, - 0x8A, - 0x8A, - 0x9D, - 0x9D, - 0x6E, - 0x6E, - 0x8A, - 0x9D, - 0x9D, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0B, - 0x87, - 0xC8, - 0x9D, - 0xC8, - 0x87, - 0xC8, - 0x87, - 0xE0, - 0xC8, - 0x87, - 0xC8, - 0x00, - 0x04, - 0x9D, - 0x07, - 0xC8, - 0x00, - 0x16, - 0xE0, - 0xC8, - 0xE0, - 0xC8, - 0x87, - 0x87, - 0xE0, - 0xC8, - 0x87, - 0xB2, - 0xC9, - 0xC9, - 0xB2, - 0xC9, - 0x87, - 0xD5, - 0xD5, - 0xD5, - 0xC9, - 0xD5, - 0x86, - 0xD5, - 0x05, - 0x86, - 0x00, - 0x05, - 0xB3, - 0x86, - 0x86, - 0xB3, - 0x86, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x08, - 0x6C, - 0xB3, - 0x6C, - 0x6C, - 0x54, - 0xB3, - 0x54, - 0x6C, - 0x0D, - 0x54, - 0x00, - 0x05, - 0x40, - 0x40, - 0x54, - 0x40, - 0x54, - 0x00, - 0x06, - 0x40, - 0x00, - 0x1D, - 0x53, - 0x40, - 0x1C, - 0x40, - 0x40, - 0x1C, - 0x40, - 0x1C, - 0x53, - 0x1C, - 0x53, - 0x1C, - 0x1C, - 0x1C, - 0x53, - 0x1C, - 0x40, - 0x1C, - 0x1B, - 0x1C, - 0x54, - 0x54, - 0x1B, - 0x1B, - 0x1B, - 0x1A, - 0x1B, - 0x1B, - 0x1A, - 0x00, - 0x04, - 0x1B, - 0x01, - 0x1A, - 0x07, - 0x1B, - 0x00, - 0x03, - 0x40, - 0x40, - 0x40, - 0x00, - 0x06, - 0x1C, - 0x0D, - 0x1B, - 0x01, - 0x1C, - 0x04, - 0x54, - 0x01, - 0x40, - 0x01, - 0x53, - 0x1A, - 0x1B, - 0x00, - 0x03, - 0x1C, - 0x40, - 0x40, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x06, - 0x1C, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x53, - 0x15, - 0x1B, - 0x00, - 0x14, - 0x53, - 0x1B, - 0x1C, - 0x53, - 0x1B, - 0x1C, - 0x40, - 0x1C, - 0x53, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x1C, - 0x53, - 0x1C, - 0x40, - 0x53, - 0x1C, - 0x53, - 0x07, - 0x40, - 0x00, - 0x06, - 0x54, - 0x54, - 0x40, - 0x40, - 0x54, - 0x40, - 0x0C, - 0x54, - 0x00, - 0x0D, - 0x40, - 0x1C, - 0x1C, - 0x40, - 0x54, - 0xB3, - 0x6C, - 0xB3, - 0x6C, - 0xB3, - 0xB3, - 0x6C, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0x0C, - 0x6E, - 0x00, - 0x07, - 0x8A, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0x8A, - 0xD6, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x0B, - 0x9D, - 0x9D, - 0x9D, - 0x8A, - 0x6E, - 0x8A, - 0x9D, - 0x9D, - 0xC8, - 0xC8, - 0x87, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x04, - 0x87, - 0xC8, - 0xE0, - 0x87, - 0x04, - 0xB2, - 0x00, - 0x1E, - 0x9D, - 0x9D, - 0x9D, - 0xC8, - 0x6D, - 0xC8, - 0xC8, - 0xC8, - 0x87, - 0xC8, - 0x87, - 0xC8, - 0xB2, - 0xC8, - 0xE0, - 0xB2, - 0xB2, - 0xD5, - 0xC8, - 0x87, - 0xD5, - 0xB2, - 0xB2, - 0xD5, - 0xB2, - 0x86, - 0xD5, - 0xD5, - 0x86, - 0xD5, - 0x05, - 0x86, - 0x00, - 0x12, - 0xB3, - 0x86, - 0xB3, - 0x86, - 0xB3, - 0xB3, - 0x6C, - 0xB3, - 0x6C, - 0x6C, - 0x6C, - 0xB1, - 0xB3, - 0x54, - 0x6C, - 0x6C, - 0x54, - 0x6C, - 0x0C, - 0x54, - 0x00, - 0x0B, - 0x40, - 0x54, - 0x54, - 0x40, - 0x54, - 0x40, - 0x53, - 0x40, - 0x53, - 0x54, - 0x53, - 0x00, - 0x05, - 0x40, - 0x00, - 0x0D, - 0x1B, - 0x1B, - 0x1B, - 0x53, - 0x40, - 0x53, - 0x1C, - 0x53, - 0x1C, - 0x53, - 0x53, - 0x1B, - 0x53, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x03, - 0x53, - 0x54, - 0x53, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x2F, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1B, - 0x53, - 0x40, - 0x1C, - 0x1C, - 0x1B, - 0x1B, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1A, - 0x1B, - 0x1B, - 0x1A, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x53, - 0x54, - 0x54, - 0x53, - 0x40, - 0x00, - 0x0C, - 0x1B, - 0x00, - 0x03, - 0x1A, - 0x1B, - 0x1A, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x0D, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1B, - 0x1B, - 0x53, - 0x54, - 0x1B, - 0x1B, - 0x1B, - 0x53, - 0x00, - 0x1E, - 0x1B, - 0x01, - 0x53, - 0x05, - 0x1B, - 0x00, - 0x1B, - 0x53, - 0x53, - 0x1B, - 0x53, - 0x40, - 0x53, - 0x1C, - 0x40, - 0x40, - 0x40, - 0x1C, - 0x40, - 0x40, - 0x40, - 0x53, - 0x40, - 0x40, - 0x40, - 0x54, - 0x53, - 0x40, - 0x53, - 0x54, - 0x40, - 0x54, - 0x54, - 0x40, - 0x00, - 0x08, - 0x54, - 0x00, - 0x0D, - 0x40, - 0x53, - 0x1C, - 0x40, - 0x6C, - 0x6C, - 0x54, - 0x6C, - 0x6C, - 0x6C, - 0xB3, - 0x6C, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x59, - 0xCB, - 0x59, - 0x59, - 0x05, - 0x6E, - 0x00, - 0x0E, - 0xD6, - 0x6E, - 0x6E, - 0x6E, - 0xD6, - 0x6E, - 0x6E, - 0xD6, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0x8A, - 0x8A, - 0x07, - 0x9D, - 0x00, - 0x05, - 0x8A, - 0x6E, - 0x8A, - 0xC8, - 0x6D, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x07, - 0x87, - 0x87, - 0xC8, - 0x87, - 0xB2, - 0xB2, - 0xE0, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x03, - 0x87, - 0xC8, - 0x6D, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x03, - 0xE0, - 0xB2, - 0xE0, - 0x00, - 0x09, - 0xB2, - 0x00, - 0x07, - 0xD5, - 0xB2, - 0xD5, - 0xB2, - 0xB2, - 0x86, - 0xD5, - 0x00, - 0x06, - 0x86, - 0x00, - 0x07, - 0xB1, - 0x86, - 0xB1, - 0xB3, - 0xB1, - 0x6C, - 0xB1, - 0x00, - 0x09, - 0x6C, - 0x00, - 0x14, - 0x54, - 0x9C, - 0x54, - 0x84, - 0x54, - 0x54, - 0x84, - 0x54, - 0x54, - 0x84, - 0x54, - 0x54, - 0x54, - 0x40, - 0x84, - 0x54, - 0x53, - 0x40, - 0x40, - 0x53, - 0x06, - 0x40, - 0x00, - 0x05, - 0x53, - 0x40, - 0x53, - 0x53, - 0x53, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x14, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x1C, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x53, - 0x53, - 0x1B, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x1B, - 0x07, - 0x1A, - 0x00, - 0x06, - 0x1B, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x1B, - 0x06, - 0x1A, - 0x00, - 0x04, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x04, - 0x1B, - 0x00, - 0x04, - 0x1A, - 0x1B, - 0x1B, - 0x1A, - 0x05, - 0x1B, - 0x01, - 0x1A, - 0x06, - 0x1B, - 0x00, - 0x0F, - 0x1A, - 0x1A, - 0x1B, - 0x1B, - 0x1B, - 0x53, - 0x53, - 0x53, - 0x84, - 0x1B, - 0x1B, - 0x1B, - 0x1A, - 0x1A, - 0x1A, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x03, - 0x1A, - 0x1B, - 0x1A, - 0x00, - 0x08, - 0x1B, - 0x00, - 0x05, - 0x1A, - 0x1B, - 0x53, - 0x53, - 0x3E, - 0x00, - 0x04, - 0x1B, - 0x00, - 0x06, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x11, - 0x1B, - 0x01, - 0x53, - 0x05, - 0x1B, - 0x00, - 0x0C, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x1B, - 0x53, - 0x53, - 0x1B, - 0x06, - 0x53, - 0x00, - 0x04, - 0x40, - 0x53, - 0x40, - 0x53, - 0x06, - 0x40, - 0x00, - 0x0A, - 0x53, - 0x40, - 0x84, - 0x40, - 0x54, - 0x53, - 0x54, - 0x54, - 0x54, - 0x84, - 0x04, - 0x54, - 0x00, - 0x0A, - 0x84, - 0x54, - 0x54, - 0x6C, - 0x54, - 0x6C, - 0x6C, - 0xB3, - 0x9C, - 0x40, - 0x00, - 0x00, - 0x04, - 0x59, - 0x07, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x8A, - 0x8A, - 0x6E, - 0x6E, - 0x00, - 0x04, - 0x8A, - 0x07, - 0x9D, - 0x00, - 0x10, - 0x56, - 0xC8, - 0x8A, - 0x8A, - 0x8A, - 0x6D, - 0x6D, - 0xC8, - 0x87, - 0xC8, - 0x87, - 0x87, - 0xB2, - 0x87, - 0xE0, - 0xC8, - 0x07, - 0xB2, - 0x00, - 0x09, - 0xC7, - 0xD5, - 0x6D, - 0xC8, - 0x87, - 0xC8, - 0x87, - 0x87, - 0x87, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x03, - 0xE0, - 0xB2, - 0xC7, - 0x00, - 0x06, - 0xB2, - 0x00, - 0x07, - 0xD5, - 0x85, - 0xB2, - 0xB1, - 0xB1, - 0xB1, - 0x86, - 0x00, - 0x06, - 0xB1, - 0x00, - 0x04, - 0x6C, - 0xB1, - 0x6C, - 0xB1, - 0x06, - 0x6C, - 0x00, - 0x06, - 0x9C, - 0x6C, - 0xB1, - 0x9C, - 0x54, - 0x84, - 0x08, - 0x54, - 0x00, - 0x0C, - 0x53, - 0x54, - 0x54, - 0x53, - 0x54, - 0x84, - 0x40, - 0x53, - 0x40, - 0x53, - 0x53, - 0x40, - 0x06, - 0x53, - 0x00, - 0x04, - 0x1B, - 0x53, - 0x53, - 0x53, - 0x06, - 0x1B, - 0x00, - 0x13, - 0x53, - 0x1B, - 0x53, - 0x3E, - 0x3E, - 0xDD, - 0x3E, - 0x33, - 0x33, - 0x1B, - 0x53, - 0x53, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x00, - 0x05, - 0x1A, - 0x00, - 0x03, - 0x1B, - 0x1B, - 0x1B, - 0x00, - 0x0F, - 0x1A, - 0x00, - 0x04, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x09, - 0x1A, - 0x01, - 0x1B, - 0x07, - 0x1A, - 0x01, - 0x1B, - 0x05, - 0x1A, - 0x01, - 0x1B, - 0x01, - 0x1B, - 0x04, - 0x53, - 0x01, - 0x1B, - 0x07, - 0x1A, - 0x01, - 0x1B, - 0x0B, - 0x1A, - 0x00, - 0x05, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x33, - 0x00, - 0x09, - 0x1B, - 0x00, - 0x12, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x04, - 0x1B, - 0x00, - 0x15, - 0x33, - 0x1B, - 0x1B, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x1B, - 0x53, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x53, - 0x1B, - 0x00, - 0x07, - 0x53, - 0x00, - 0x0C, - 0x40, - 0x53, - 0x40, - 0x84, - 0x40, - 0x54, - 0x40, - 0x84, - 0x54, - 0x54, - 0x54, - 0x84, - 0x05, - 0x54, - 0x00, - 0x07, - 0x84, - 0x54, - 0x9C, - 0x54, - 0xB1, - 0x6C, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x8A, - 0x6E, - 0x00, - 0x08, - 0x8A, - 0x00, - 0x03, - 0x6E, - 0x9D, - 0x8A, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x23, - 0x6D, - 0x9D, - 0x9D, - 0x56, - 0xC8, - 0xC8, - 0x9D, - 0x8A, - 0x8A, - 0x9D, - 0x87, - 0xC8, - 0x87, - 0x87, - 0x87, - 0xB2, - 0x87, - 0xB2, - 0xB2, - 0xB2, - 0x87, - 0xB2, - 0xB2, - 0xC7, - 0xB2, - 0xC7, - 0xC7, - 0xC7, - 0xB2, - 0xC7, - 0xB2, - 0x87, - 0x87, - 0xB2, - 0x87, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x0C, - 0xE0, - 0xC7, - 0xC7, - 0xC7, - 0xB2, - 0xDF, - 0xC7, - 0xC7, - 0xB2, - 0xB2, - 0xB1, - 0xC7, - 0x0D, - 0xB1, - 0x00, - 0x0F, - 0x9C, - 0x6C, - 0x9C, - 0x6C, - 0x9C, - 0x9C, - 0x6C, - 0x9C, - 0x9C, - 0x54, - 0x9C, - 0x9C, - 0x54, - 0x84, - 0x54, - 0x00, - 0x07, - 0x84, - 0x00, - 0x05, - 0x53, - 0x84, - 0x84, - 0x53, - 0x84, - 0x00, - 0x11, - 0x53, - 0x00, - 0x20, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1A, - 0x1B, - 0x1B, - 0x3E, - 0xDD, - 0xDD, - 0xDD, - 0xEE, - 0xDD, - 0xDD, - 0xDD, - 0x53, - 0x3E, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x3E, - 0x33, - 0x1B, - 0x33, - 0x1A, - 0x1A, - 0x1A, - 0x3E, - 0x1B, - 0x33, - 0x11, - 0x1A, - 0x00, - 0x05, - 0x53, - 0x1A, - 0x1A, - 0x1A, - 0x3E, - 0x00, - 0x17, - 0x1A, - 0x00, - 0x09, - 0x33, - 0x1A, - 0x1A, - 0x1A, - 0x33, - 0x53, - 0x53, - 0x53, - 0x33, - 0x00, - 0x10, - 0x1A, - 0x00, - 0x05, - 0x53, - 0x33, - 0x1B, - 0x3E, - 0x1B, - 0x00, - 0x1F, - 0x33, - 0x00, - 0x0F, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x3E, - 0x1B, - 0x53, - 0x1B, - 0x00, - 0x13, - 0x53, - 0x00, - 0x06, - 0x84, - 0x53, - 0x84, - 0x53, - 0x84, - 0x53, - 0x06, - 0x84, - 0x00, - 0x06, - 0x54, - 0x84, - 0x54, - 0x9C, - 0x84, - 0x53, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6E, - 0x6E, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x0A, - 0x8A, - 0x00, - 0x03, - 0x9D, - 0x9D, - 0x56, - 0x00, - 0x04, - 0x9D, - 0x00, - 0x08, - 0x6D, - 0xC8, - 0x6D, - 0x6D, - 0x6D, - 0x9D, - 0x8A, - 0x9D, - 0x04, - 0x87, - 0x07, - 0xB2, - 0x01, - 0x87, - 0x06, - 0xC7, - 0x00, - 0x06, - 0xB1, - 0xC7, - 0xB1, - 0xC7, - 0xB2, - 0x87, - 0x04, - 0xB2, - 0x01, - 0xE0, - 0x08, - 0xC7, - 0x00, - 0x03, - 0xB1, - 0xC7, - 0xC7, - 0x00, - 0x0A, - 0xB1, - 0x01, - 0x9C, - 0x01, - 0xB1, - 0x09, - 0x9C, - 0x00, - 0x06, - 0x84, - 0x9C, - 0x84, - 0x84, - 0x84, - 0x9C, - 0x04, - 0x84, - 0x00, - 0x07, - 0x53, - 0x84, - 0x84, - 0x53, - 0x84, - 0x53, - 0x84, - 0x00, - 0x0C, - 0x53, - 0x01, - 0x3E, - 0x04, - 0x53, - 0x00, - 0x1B, - 0x1B, - 0x53, - 0x33, - 0x53, - 0x1B, - 0x1A, - 0x1B, - 0x1A, - 0x1A, - 0xDD, - 0xEE, - 0xF2, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF2, - 0xF2, - 0xEE, - 0xDD, - 0x33, - 0x1B, - 0x53, - 0x00, - 0x04, - 0x33, - 0x00, - 0x06, - 0x3E, - 0x1B, - 0x1A, - 0x0E, - 0x1A, - 0x0E, - 0x0F, - 0x1A, - 0x00, - 0x07, - 0x33, - 0x33, - 0x1A, - 0x1A, - 0x1A, - 0x33, - 0x33, - 0x00, - 0x07, - 0x1A, - 0x00, - 0x03, - 0x0E, - 0x0E, - 0x0E, - 0x00, - 0x0C, - 0x1A, - 0x01, - 0x33, - 0x04, - 0x1A, - 0x00, - 0x07, - 0x0E, - 0x1A, - 0x33, - 0x53, - 0x83, - 0x53, - 0x33, - 0x00, - 0x08, - 0x1A, - 0x01, - 0x0E, - 0x04, - 0x1A, - 0x01, - 0x53, - 0x0A, - 0x33, - 0x01, - 0x1A, - 0x0B, - 0x33, - 0x00, - 0x05, - 0x1A, - 0x33, - 0x1A, - 0x33, - 0x1A, - 0x00, - 0x12, - 0x33, - 0x00, - 0x0B, - 0x3E, - 0x1B, - 0x3E, - 0x1B, - 0x53, - 0x1B, - 0x3E, - 0x1B, - 0x53, - 0x3E, - 0x1B, - 0x00, - 0x10, - 0x53, - 0x00, - 0x08, - 0x84, - 0x53, - 0x84, - 0x84, - 0x53, - 0x84, - 0x84, - 0x53, - 0x04, - 0x84, - 0x00, - 0x03, - 0x9C, - 0x84, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x06, - 0x8A, - 0x00, - 0x04, - 0x9D, - 0x56, - 0x8A, - 0x8A, - 0x04, - 0x9D, - 0x08, - 0x6D, - 0x00, - 0x06, - 0x8A, - 0x9D, - 0x6D, - 0x87, - 0x87, - 0x87, - 0x07, - 0xB2, - 0x00, - 0x0D, - 0xC7, - 0xB2, - 0xC7, - 0xC7, - 0xC7, - 0x9B, - 0xC7, - 0xDF, - 0xC7, - 0x9B, - 0xB1, - 0x9B, - 0xDF, - 0x00, - 0x04, - 0xB2, - 0x08, - 0xC7, - 0x00, - 0x0C, - 0x9B, - 0xDF, - 0xC7, - 0xC7, - 0xDF, - 0x9B, - 0xB1, - 0x9B, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x09, - 0x9C, - 0x00, - 0x05, - 0x84, - 0x9C, - 0x84, - 0x9C, - 0x9A, - 0x00, - 0x0B, - 0x84, - 0x00, - 0x03, - 0x53, - 0x53, - 0x84, - 0x00, - 0x0B, - 0x53, - 0x00, - 0x29, - 0x3E, - 0x53, - 0x3E, - 0x53, - 0x53, - 0x53, - 0x3E, - 0x53, - 0x53, - 0x3E, - 0x53, - 0x53, - 0x33, - 0x33, - 0x1A, - 0xDD, - 0xEE, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF2, - 0xEE, - 0xDD, - 0x1B, - 0x3E, - 0x3E, - 0x53, - 0x1A, - 0x00, - 0x14, - 0x0E, - 0x00, - 0x13, - 0x33, - 0x33, - 0x0E, - 0x1A, - 0x0E, - 0x1A, - 0x33, - 0x0E, - 0x0E, - 0x1A, - 0x0E, - 0x1A, - 0x0E, - 0x1A, - 0x0E, - 0x0E, - 0x0E, - 0x1A, - 0x0E, - 0x00, - 0x0A, - 0x1A, - 0x01, - 0x27, - 0x07, - 0x1A, - 0x00, - 0x09, - 0x0E, - 0x1A, - 0x33, - 0x68, - 0x53, - 0x3E, - 0x1A, - 0x1A, - 0x0E, - 0x00, - 0x06, - 0x1A, - 0x00, - 0x16, - 0x0E, - 0x3E, - 0x68, - 0x27, - 0x33, - 0x33, - 0x27, - 0x33, - 0x33, - 0x27, - 0x33, - 0x33, - 0x3E, - 0x53, - 0x3E, - 0x33, - 0x27, - 0x33, - 0x33, - 0x1A, - 0x33, - 0x1A, - 0x04, - 0x33, - 0x00, - 0x0C, - 0x27, - 0x33, - 0x1A, - 0x33, - 0x1A, - 0x1A, - 0x33, - 0x1A, - 0x1A, - 0x1A, - 0x33, - 0x1A, - 0x0F, - 0x33, - 0x00, - 0x0C, - 0x3E, - 0x1B, - 0x3E, - 0x33, - 0x53, - 0x3E, - 0x53, - 0x68, - 0x1B, - 0x53, - 0x53, - 0x3E, - 0x07, - 0x53, - 0x01, - 0x68, - 0x06, - 0x53, - 0x00, - 0x06, - 0x84, - 0x53, - 0x84, - 0x84, - 0x84, - 0x53, - 0x04, - 0x84, - 0x01, - 0x53, - 0x00, - 0x00, - 0x00, - 0x21, - 0x59, - 0x6E, - 0x8A, - 0x6E, - 0x59, - 0x6E, - 0x8A, - 0x8A, - 0x8A, - 0x9D, - 0x9D, - 0x9D, - 0x56, - 0x9D, - 0x8A, - 0x8A, - 0x6D, - 0x9D, - 0x6D, - 0xC8, - 0x6D, - 0xC8, - 0x6D, - 0x6D, - 0x6D, - 0x87, - 0x6D, - 0x9D, - 0x9D, - 0x6D, - 0x87, - 0xB2, - 0x87, - 0x00, - 0x05, - 0xB2, - 0x04, - 0xC7, - 0x01, - 0xB2, - 0x05, - 0xC7, - 0x00, - 0x09, - 0x9B, - 0x9B, - 0xDF, - 0x9B, - 0x9B, - 0xB1, - 0xC7, - 0xB2, - 0xB2, - 0x00, - 0x07, - 0xC7, - 0x00, - 0x0B, - 0x9B, - 0xDF, - 0x9B, - 0x9B, - 0x9B, - 0xDF, - 0x9B, - 0xB1, - 0x9B, - 0xB1, - 0x9B, - 0x00, - 0x08, - 0x9C, - 0x00, - 0x07, - 0x9A, - 0x9C, - 0x9A, - 0x84, - 0x9C, - 0x9A, - 0x9A, - 0x00, - 0x07, - 0x84, - 0x00, - 0x3B, - 0x9A, - 0x84, - 0x84, - 0x83, - 0x53, - 0x83, - 0x84, - 0x83, - 0x53, - 0x53, - 0x83, - 0x83, - 0x83, - 0x53, - 0x53, - 0x68, - 0x53, - 0x68, - 0x53, - 0x68, - 0x53, - 0x53, - 0x53, - 0x3E, - 0x53, - 0x3E, - 0x1B, - 0x68, - 0x53, - 0x3E, - 0x33, - 0x3E, - 0x33, - 0xDD, - 0xEE, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF2, - 0x68, - 0x33, - 0x00, - 0x08, - 0x0E, - 0x01, - 0x1A, - 0x0D, - 0x0E, - 0x01, - 0x33, - 0x01, - 0x27, - 0x04, - 0x0E, - 0x01, - 0x33, - 0x16, - 0x0E, - 0x01, - 0x1A, - 0x0B, - 0x0E, - 0x00, - 0x06, - 0x1A, - 0x3E, - 0x83, - 0x3E, - 0x33, - 0x1A, - 0x06, - 0x0E, - 0x01, - 0x68, - 0x06, - 0x33, - 0x00, - 0x10, - 0x27, - 0x33, - 0x33, - 0x83, - 0x83, - 0x68, - 0x68, - 0xAF, - 0x3E, - 0x1A, - 0x33, - 0x33, - 0x27, - 0x33, - 0x1A, - 0x27, - 0x04, - 0x1A, - 0x00, - 0x0B, - 0x27, - 0x1A, - 0x1A, - 0x27, - 0x33, - 0x27, - 0x1A, - 0x27, - 0x1A, - 0x33, - 0x27, - 0x00, - 0x09, - 0x33, - 0x00, - 0x2A, - 0x1A, - 0x27, - 0x33, - 0x3E, - 0x33, - 0x3E, - 0x33, - 0x3E, - 0x33, - 0x3E, - 0x33, - 0x68, - 0x53, - 0x3E, - 0x3E, - 0x1B, - 0x68, - 0x53, - 0x3E, - 0x53, - 0x3E, - 0x53, - 0x53, - 0x68, - 0x53, - 0x53, - 0x68, - 0x83, - 0x53, - 0x53, - 0x83, - 0x53, - 0x83, - 0x53, - 0x83, - 0x53, - 0x84, - 0x84, - 0x83, - 0x9A, - 0x84, - 0x53, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x6E, - 0x59, - 0x6E, - 0x8A, - 0x6E, - 0x6E, - 0x6E, - 0x9D, - 0x9D, - 0x9D, - 0x56, - 0x00, - 0x04, - 0x9D, - 0x01, - 0x8A, - 0x07, - 0x6D, - 0x00, - 0x10, - 0x87, - 0x87, - 0x87, - 0x6D, - 0x9D, - 0x9D, - 0x87, - 0xB2, - 0x87, - 0xB2, - 0xB2, - 0xC7, - 0x6B, - 0x85, - 0xC7, - 0x85, - 0x05, - 0xC7, - 0x0B, - 0x9B, - 0x06, - 0xC7, - 0x01, - 0x9B, - 0x01, - 0xDE, - 0x09, - 0x9B, - 0x00, - 0x05, - 0x9A, - 0x9B, - 0x9B, - 0x9A, - 0x9B, - 0x00, - 0x06, - 0x9A, - 0x00, - 0x0C, - 0x84, - 0x9A, - 0x84, - 0x9A, - 0x9A, - 0x84, - 0x84, - 0x84, - 0xAF, - 0x84, - 0x84, - 0xAF, - 0x04, - 0x84, - 0x00, - 0x08, - 0x83, - 0x53, - 0x83, - 0x53, - 0x83, - 0x53, - 0x53, - 0x83, - 0x04, - 0x53, - 0x00, - 0x07, - 0x68, - 0x53, - 0x68, - 0x53, - 0x68, - 0x3E, - 0x68, - 0x00, - 0x09, - 0x3E, - 0x00, - 0x1F, - 0x9C, - 0x3E, - 0xF6, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xEE, - 0x3E, - 0x27, - 0x00, - 0x14, - 0x0E, - 0x01, - 0x26, - 0x01, - 0x33, - 0x04, - 0x0E, - 0x01, - 0x3E, - 0x13, - 0x0E, - 0x00, - 0x04, - 0x26, - 0x0E, - 0x0E, - 0x27, - 0x05, - 0x0E, - 0x01, - 0x26, - 0x06, - 0x0E, - 0x00, - 0x22, - 0x1B, - 0x1D, - 0x42, - 0xE7, - 0xE7, - 0xE7, - 0x42, - 0x1D, - 0x1B, - 0x0E, - 0x0E, - 0x68, - 0x27, - 0x27, - 0x33, - 0x27, - 0x27, - 0x27, - 0x1A, - 0x27, - 0x83, - 0x3E, - 0x0E, - 0x27, - 0x0E, - 0x33, - 0x83, - 0x27, - 0x27, - 0x0E, - 0x27, - 0x27, - 0x27, - 0x1A, - 0x04, - 0x27, - 0x00, - 0x1E, - 0x0E, - 0x27, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x27, - 0x27, - 0x33, - 0x27, - 0x33, - 0x33, - 0x27, - 0x0E, - 0x0E, - 0x0E, - 0x33, - 0x3E, - 0x33, - 0x3E, - 0x33, - 0x3E, - 0x33, - 0x09, - 0x3E, - 0x05, - 0x68, - 0x00, - 0x12, - 0x53, - 0x68, - 0x53, - 0x53, - 0x53, - 0x83, - 0x53, - 0x83, - 0x53, - 0x83, - 0x53, - 0x83, - 0x53, - 0x83, - 0x84, - 0x84, - 0x84, - 0x53, - 0x00, - 0x00, - 0x00, - 0x14, - 0x6E, - 0x6E, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x56, - 0x9D, - 0x9D, - 0x56, - 0x6D, - 0x6D, - 0x8A, - 0x8A, - 0x6D, - 0x6D, - 0xC8, - 0x6D, - 0x06, - 0x87, - 0x00, - 0x08, - 0x56, - 0x9D, - 0x6D, - 0xB2, - 0x6B, - 0xB2, - 0x6B, - 0xB2, - 0x05, - 0xC7, - 0x00, - 0x15, - 0x9B, - 0x9B, - 0x9B, - 0xC7, - 0x9B, - 0x9B, - 0xDE, - 0x9B, - 0x9B, - 0xDE, - 0x9B, - 0x9A, - 0x9B, - 0x9A, - 0x9A, - 0x9B, - 0x9B, - 0xC7, - 0xC7, - 0x9B, - 0xDE, - 0x00, - 0x08, - 0x9B, - 0x00, - 0x05, - 0x9A, - 0xC7, - 0xC7, - 0x9A, - 0x9B, - 0x00, - 0x04, - 0x9A, - 0x01, - 0xB0, - 0x08, - 0x9A, - 0x00, - 0x0C, - 0x84, - 0xAF, - 0x84, - 0xAF, - 0x84, - 0x84, - 0x83, - 0x84, - 0x83, - 0x84, - 0x83, - 0x9A, - 0x05, - 0x83, - 0x00, - 0x05, - 0x68, - 0x83, - 0x83, - 0x68, - 0x83, - 0x00, - 0x05, - 0x68, - 0x00, - 0x07, - 0x3E, - 0x68, - 0x3E, - 0x3E, - 0x68, - 0x3E, - 0x68, - 0x00, - 0x04, - 0x3E, - 0x00, - 0x22, - 0x68, - 0x68, - 0x3E, - 0x7D, - 0xF2, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF0, - 0xDD, - 0x05, - 0x0E, - 0x01, - 0x19, - 0x04, - 0x0E, - 0x00, - 0x05, - 0x19, - 0x0E, - 0x0E, - 0x0E, - 0x26, - 0x00, - 0x06, - 0x0E, - 0x01, - 0x51, - 0x04, - 0x0E, - 0x01, - 0x3E, - 0x09, - 0x0E, - 0x01, - 0x26, - 0x05, - 0x0E, - 0x01, - 0x26, - 0x06, - 0x0E, - 0x00, - 0x03, - 0x27, - 0x0E, - 0x26, - 0x00, - 0x09, - 0x0E, - 0x00, - 0x10, - 0x1D, - 0x35, - 0x35, - 0x35, - 0xE7, - 0xE7, - 0xE7, - 0x35, - 0x35, - 0x35, - 0x28, - 0x3E, - 0x3E, - 0x27, - 0x27, - 0x51, - 0x04, - 0x27, - 0x01, - 0x68, - 0x05, - 0x27, - 0x00, - 0x1C, - 0x26, - 0x3E, - 0x68, - 0x27, - 0x27, - 0x27, - 0x0E, - 0x27, - 0x26, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x27, - 0x0E, - 0x27, - 0x27, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x27, - 0x0E, - 0x04, - 0x27, - 0x05, - 0x0E, - 0x00, - 0x05, - 0x27, - 0x33, - 0x27, - 0x3E, - 0x27, - 0x00, - 0x0E, - 0x3E, - 0x08, - 0x68, - 0x00, - 0x03, - 0x83, - 0x83, - 0x68, - 0x00, - 0x05, - 0x83, - 0x00, - 0x03, - 0xAF, - 0x83, - 0x68, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x0C, - 0x8A, - 0x6E, - 0x6E, - 0x6E, - 0x9D, - 0x56, - 0x9D, - 0x56, - 0x9D, - 0x6D, - 0x6E, - 0x59, - 0x05, - 0x6D, - 0x04, - 0x87, - 0x00, - 0x04, - 0x6D, - 0x9D, - 0x6D, - 0x87, - 0x04, - 0xB2, - 0x00, - 0x0B, - 0x85, - 0xC7, - 0x85, - 0xC7, - 0xC7, - 0x85, - 0xC7, - 0x9B, - 0x9A, - 0xC7, - 0x9A, - 0x00, - 0x07, - 0x9B, - 0x00, - 0x19, - 0x9A, - 0x9B, - 0x9A, - 0x9A, - 0x9A, - 0x9B, - 0xC7, - 0xC7, - 0x9B, - 0xDE, - 0x9B, - 0xDE, - 0x9B, - 0xDE, - 0x9B, - 0xDE, - 0x9B, - 0x9B, - 0xE0, - 0xE0, - 0x9B, - 0x9A, - 0xDE, - 0x9A, - 0x9B, - 0x00, - 0x08, - 0x9A, - 0x00, - 0x0F, - 0xAF, - 0x9A, - 0xAF, - 0x84, - 0xAF, - 0x84, - 0xAF, - 0xAF, - 0xAF, - 0x83, - 0x83, - 0x83, - 0xAF, - 0xDE, - 0xB0, - 0x00, - 0x05, - 0x83, - 0x01, - 0x68, - 0x01, - 0x83, - 0x0A, - 0x68, - 0x08, - 0x3E, - 0x00, - 0x03, - 0x83, - 0x83, - 0xEE, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x1D, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xEE, - 0x19, - 0x00, - 0x05, - 0x0E, - 0x01, - 0x26, - 0x06, - 0x0E, - 0x00, - 0x45, - 0x1A, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x0E, - 0x68, - 0x51, - 0x19, - 0x0E, - 0x26, - 0x27, - 0x19, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x27, - 0x51, - 0x27, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x1B, - 0x35, - 0x35, - 0x29, - 0x1C, - 0x33, - 0x1A, - 0x1A, - 0x1C, - 0x0F, - 0x35, - 0x35, - 0xB3, - 0x27, - 0x27, - 0x27, - 0x3E, - 0x7D, - 0x27, - 0x27, - 0x51, - 0x68, - 0x26, - 0x00, - 0x04, - 0x27, - 0x00, - 0x05, - 0x26, - 0x27, - 0x68, - 0x27, - 0x26, - 0x00, - 0x04, - 0x27, - 0x00, - 0x07, - 0x26, - 0x27, - 0x27, - 0x26, - 0x26, - 0x27, - 0x26, - 0x00, - 0x04, - 0x27, - 0x04, - 0x26, - 0x01, - 0x27, - 0x01, - 0x26, - 0x04, - 0x27, - 0x01, - 0x26, - 0x04, - 0x0E, - 0x00, - 0x0B, - 0x26, - 0x0E, - 0x0E, - 0x27, - 0x3E, - 0x33, - 0x3E, - 0x27, - 0x33, - 0x3E, - 0x68, - 0x00, - 0x09, - 0x3E, - 0x01, - 0x68, - 0x01, - 0x3E, - 0x05, - 0x68, - 0x00, - 0x04, - 0x83, - 0x68, - 0x68, - 0x68, - 0x06, - 0x83, - 0x00, - 0x03, - 0xB0, - 0xB0, - 0x68, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x10, - 0x8A, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x8A, - 0x9D, - 0x56, - 0x9D, - 0x56, - 0x8A, - 0x8A, - 0x6D, - 0x6D, - 0x6D, - 0xC8, - 0x05, - 0x6D, - 0x00, - 0x05, - 0x8A, - 0x9D, - 0x6D, - 0x87, - 0x87, - 0x00, - 0x05, - 0xB2, - 0x00, - 0x0A, - 0xC7, - 0xC7, - 0x85, - 0xC7, - 0xC7, - 0xC7, - 0x9A, - 0xB0, - 0x9A, - 0xC7, - 0x0A, - 0x9B, - 0x00, - 0x08, - 0x82, - 0x9B, - 0xC7, - 0xC7, - 0x9B, - 0xC7, - 0x9B, - 0xC7, - 0x05, - 0x9B, - 0x00, - 0x0D, - 0xDE, - 0x9B, - 0xC7, - 0x82, - 0xDE, - 0x82, - 0x9A, - 0xB0, - 0x9A, - 0x9A, - 0xB0, - 0xB0, - 0x9A, - 0x00, - 0x06, - 0xB0, - 0x01, - 0x81, - 0x01, - 0xB0, - 0x08, - 0xAF, - 0x01, - 0x81, - 0x01, - 0xAF, - 0x05, - 0x83, - 0x00, - 0x07, - 0x68, - 0x7E, - 0x68, - 0x83, - 0x68, - 0x83, - 0x83, - 0x00, - 0x05, - 0x68, - 0x00, - 0x45, - 0x3E, - 0x68, - 0x3E, - 0x68, - 0x3E, - 0x68, - 0x3E, - 0x3E, - 0x7D, - 0xEE, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xEE, - 0x19, - 0x0E, - 0x19, - 0x0E, - 0x26, - 0x0E, - 0x27, - 0x27, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x26, - 0x0E, - 0x26, - 0x0E, - 0x26, - 0x26, - 0x27, - 0x3E, - 0x26, - 0x26, - 0x27, - 0x27, - 0x00, - 0x06, - 0x26, - 0x01, - 0x0E, - 0x01, - 0x19, - 0x0E, - 0x26, - 0x01, - 0x27, - 0x0A, - 0x26, - 0x00, - 0x04, - 0x28, - 0x35, - 0x35, - 0x1A, - 0x06, - 0x26, - 0x00, - 0x0C, - 0x42, - 0x35, - 0x29, - 0x27, - 0x27, - 0x27, - 0x51, - 0x3E, - 0x51, - 0x27, - 0x68, - 0x51, - 0x07, - 0x27, - 0x00, - 0x11, - 0x7D, - 0x27, - 0x27, - 0x27, - 0x26, - 0x27, - 0x26, - 0x27, - 0x26, - 0x27, - 0x27, - 0x27, - 0x26, - 0x27, - 0x26, - 0x51, - 0x51, - 0x00, - 0x04, - 0x26, - 0x00, - 0x18, - 0x27, - 0x26, - 0x26, - 0x27, - 0x26, - 0x27, - 0x27, - 0x0E, - 0x19, - 0x0E, - 0x19, - 0x0E, - 0x0E, - 0x26, - 0x26, - 0x0E, - 0x27, - 0x27, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x7E, - 0x68, - 0x07, - 0x3E, - 0x01, - 0x68, - 0x01, - 0x3E, - 0x05, - 0x68, - 0x00, - 0x0E, - 0x7D, - 0x68, - 0x68, - 0x83, - 0x68, - 0x83, - 0x83, - 0x7E, - 0x83, - 0x83, - 0x83, - 0xB0, - 0xD4, - 0x83, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x9D, - 0x05, - 0x8A, - 0x00, - 0x08, - 0x9D, - 0x56, - 0x9D, - 0x8A, - 0x8A, - 0x56, - 0x9D, - 0x56, - 0x07, - 0x6D, - 0x01, - 0x87, - 0x05, - 0x85, - 0x01, - 0xC7, - 0x04, - 0x9B, - 0x00, - 0x0E, - 0xDE, - 0x9B, - 0x9B, - 0xD4, - 0x82, - 0x9A, - 0xDE, - 0x80, - 0x80, - 0xD4, - 0xD4, - 0x80, - 0xB0, - 0x80, - 0x05, - 0xB0, - 0x00, - 0x0E, - 0x81, - 0xD4, - 0x80, - 0xDE, - 0x80, - 0xDE, - 0x80, - 0xD4, - 0xB0, - 0xD4, - 0xB0, - 0xD4, - 0xB0, - 0x80, - 0x05, - 0xB0, - 0x00, - 0x05, - 0x81, - 0xB0, - 0x7F, - 0x81, - 0x81, - 0x00, - 0x07, - 0xAF, - 0x00, - 0x03, - 0x7E, - 0xAF, - 0x7E, - 0x00, - 0x04, - 0x83, - 0x00, - 0x04, - 0x68, - 0x83, - 0x68, - 0xAF, - 0x0A, - 0x68, - 0x00, - 0x06, - 0x3E, - 0x7D, - 0x3E, - 0x3E, - 0x3E, - 0x51, - 0x05, - 0x3E, - 0x00, - 0x16, - 0x51, - 0x3E, - 0x27, - 0x3E, - 0x27, - 0xEE, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x06, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x0E, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xEE, - 0x19, - 0x0E, - 0x26, - 0x0E, - 0x19, - 0x0E, - 0x19, - 0x0E, - 0x04, - 0x19, - 0x00, - 0x4E, - 0x0E, - 0x19, - 0x26, - 0x19, - 0x19, - 0x19, - 0x0E, - 0x40, - 0x53, - 0x27, - 0x51, - 0x26, - 0x1A, - 0x1C, - 0x1B, - 0x26, - 0x26, - 0x26, - 0x19, - 0x19, - 0x1A, - 0x1C, - 0x1B, - 0x19, - 0x19, - 0x19, - 0x26, - 0x26, - 0x1A, - 0x28, - 0x28, - 0x28, - 0x1A, - 0x26, - 0x26, - 0x19, - 0x26, - 0x1B, - 0x28, - 0x1D, - 0x28, - 0x1B, - 0x0E, - 0x19, - 0x26, - 0x1B, - 0x35, - 0x35, - 0x28, - 0x26, - 0x19, - 0x26, - 0x19, - 0x0E, - 0x1C, - 0xE7, - 0x35, - 0x1D, - 0x26, - 0x33, - 0x53, - 0x1C, - 0x51, - 0x26, - 0x3D, - 0x7D, - 0x26, - 0x26, - 0x27, - 0x28, - 0x1D, - 0x57, - 0x1C, - 0x26, - 0x7D, - 0x1B, - 0x1B, - 0x27, - 0x04, - 0x26, - 0x00, - 0x05, - 0x27, - 0x1C, - 0x28, - 0x28, - 0x1C, - 0x00, - 0x04, - 0x26, - 0x00, - 0x15, - 0x33, - 0x28, - 0x1D, - 0x1D, - 0x1C, - 0x1A, - 0x26, - 0x25, - 0x26, - 0x26, - 0x19, - 0x19, - 0x0E, - 0x1C, - 0x1D, - 0x28, - 0x1A, - 0x0E, - 0x0E, - 0x1B, - 0x1B, - 0x00, - 0x04, - 0x27, - 0x00, - 0x17, - 0x3E, - 0x53, - 0x27, - 0x53, - 0x53, - 0x3E, - 0x53, - 0x3E, - 0x40, - 0x53, - 0x3E, - 0x51, - 0x3E, - 0x3E, - 0x51, - 0x3E, - 0x3E, - 0x68, - 0x3E, - 0x68, - 0x68, - 0x7D, - 0x3E, - 0x00, - 0x05, - 0x68, - 0x00, - 0x03, - 0x83, - 0x83, - 0x68, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6E, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x6D, - 0x07, - 0x8A, - 0x00, - 0x09, - 0x56, - 0x8A, - 0x8A, - 0x9D, - 0x56, - 0x9D, - 0x6D, - 0x56, - 0x9D, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x05, - 0x87, - 0x85, - 0xC7, - 0x85, - 0x85, - 0x00, - 0x07, - 0x9B, - 0x00, - 0x0C, - 0xDE, - 0xD4, - 0x9B, - 0xD4, - 0x9B, - 0x80, - 0xD4, - 0xD4, - 0xB0, - 0x80, - 0xB0, - 0x80, - 0x04, - 0xB0, - 0x00, - 0x1B, - 0x80, - 0xB0, - 0xB0, - 0x80, - 0xDE, - 0xD4, - 0xD4, - 0x80, - 0xD4, - 0x80, - 0x80, - 0xB0, - 0x80, - 0xB0, - 0xB0, - 0x80, - 0x80, - 0xB0, - 0xB0, - 0x81, - 0xB0, - 0xB0, - 0xAF, - 0xB0, - 0xAF, - 0xAF, - 0x7F, - 0x00, - 0x05, - 0xAF, - 0x00, - 0x29, - 0x83, - 0xAF, - 0x83, - 0x83, - 0x7E, - 0x83, - 0x7E, - 0x7E, - 0x83, - 0x68, - 0x7E, - 0x83, - 0x7D, - 0x68, - 0x7D, - 0x68, - 0x7D, - 0x68, - 0x7D, - 0x68, - 0x3E, - 0x7D, - 0x3E, - 0x3E, - 0x68, - 0x68, - 0x3E, - 0x3E, - 0x51, - 0x3E, - 0x3E, - 0x51, - 0x3E, - 0x3E, - 0x51, - 0x3E, - 0x51, - 0xEE, - 0xF7, - 0xF7, - 0xF8, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x06, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x1A, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xEE, - 0x19, - 0x0E, - 0x19, - 0x26, - 0x26, - 0x09, - 0x19, - 0x00, - 0x0D, - 0x26, - 0x26, - 0x26, - 0x28, - 0x35, - 0x35, - 0x53, - 0x51, - 0x26, - 0x41, - 0x35, - 0xE7, - 0x33, - 0x00, - 0x04, - 0x26, - 0x00, - 0x08, - 0x29, - 0x35, - 0x29, - 0x26, - 0x26, - 0x26, - 0x19, - 0x28, - 0x04, - 0x35, - 0x00, - 0x05, - 0x28, - 0x19, - 0x26, - 0x1B, - 0x42, - 0x00, - 0x05, - 0x35, - 0x00, - 0x1B, - 0x42, - 0x28, - 0x26, - 0x19, - 0x1C, - 0xE7, - 0x35, - 0x1D, - 0x1C, - 0x1D, - 0x29, - 0xE7, - 0x35, - 0x35, - 0xE7, - 0x1B, - 0x19, - 0x1C, - 0x35, - 0x35, - 0x1B, - 0x26, - 0x26, - 0x7D, - 0x26, - 0x33, - 0x42, - 0x00, - 0x04, - 0x35, - 0x00, - 0x12, - 0x29, - 0x84, - 0x42, - 0x35, - 0x1C, - 0x26, - 0x26, - 0x26, - 0x33, - 0x42, - 0x35, - 0x35, - 0x35, - 0xE7, - 0x26, - 0x25, - 0x27, - 0x1D, - 0x06, - 0x35, - 0x00, - 0x07, - 0x0F, - 0x1B, - 0x19, - 0x19, - 0x19, - 0x1C, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x27, - 0x28, - 0x1C, - 0x35, - 0x42, - 0x0E, - 0x27, - 0x27, - 0x27, - 0x57, - 0xE7, - 0x27, - 0x41, - 0x29, - 0x58, - 0x42, - 0x57, - 0x35, - 0xE7, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x3E, - 0x3E, - 0x51, - 0x3E, - 0x3E, - 0x51, - 0x68, - 0x68, - 0x7D, - 0x7D, - 0x68, - 0x7D, - 0x68, - 0x7D, - 0x83, - 0x7D, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6E, - 0x8A, - 0x8A, - 0x8A, - 0x9D, - 0x56, - 0x04, - 0x8A, - 0x00, - 0x0A, - 0x56, - 0x8A, - 0x9D, - 0x9D, - 0x8A, - 0x8A, - 0x9D, - 0x56, - 0x9D, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x1F, - 0x87, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x9B, - 0x9B, - 0xDE, - 0x9B, - 0x82, - 0xDE, - 0x82, - 0x9B, - 0xD4, - 0xDE, - 0xD4, - 0xDE, - 0x80, - 0xD4, - 0xD4, - 0x80, - 0xD4, - 0x80, - 0xB0, - 0x80, - 0xC6, - 0xB0, - 0xB0, - 0xB0, - 0x7F, - 0xB0, - 0x00, - 0x07, - 0xD4, - 0x00, - 0x0A, - 0x80, - 0xD4, - 0xB0, - 0x99, - 0xB0, - 0xD4, - 0x80, - 0xC6, - 0xC6, - 0xC6, - 0x05, - 0x7F, - 0x05, - 0xAF, - 0x00, - 0x2B, - 0x7E, - 0xAF, - 0x7E, - 0x7E, - 0x7E, - 0x83, - 0x7E, - 0x68, - 0x7E, - 0x68, - 0x7E, - 0x7D, - 0x68, - 0x7E, - 0x68, - 0x7D, - 0x68, - 0x68, - 0x68, - 0x7D, - 0x3E, - 0x7D, - 0x3E, - 0x3E, - 0x7D, - 0x3E, - 0x51, - 0x3E, - 0x7D, - 0x3E, - 0x3E, - 0x51, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x27, - 0x51, - 0xDD, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0x00, - 0x04, - 0xF8, - 0x00, - 0x09, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF8, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x13, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x79, - 0x00, - 0x07, - 0x19, - 0x00, - 0x33, - 0x26, - 0x26, - 0x3D, - 0x51, - 0x7D, - 0x51, - 0x51, - 0x66, - 0x66, - 0x89, - 0x35, - 0x35, - 0x53, - 0x7D, - 0x3D, - 0x41, - 0x35, - 0xE7, - 0x53, - 0x3D, - 0x51, - 0x3D, - 0x3D, - 0x29, - 0x35, - 0x29, - 0x3D, - 0x26, - 0x3D, - 0x3E, - 0x35, - 0x35, - 0x35, - 0x42, - 0x42, - 0x33, - 0x25, - 0x1B, - 0xE7, - 0x35, - 0x35, - 0x29, - 0x0F, - 0x29, - 0xE7, - 0x35, - 0x35, - 0x1C, - 0x25, - 0x19, - 0x1B, - 0x00, - 0x06, - 0x35, - 0x00, - 0x13, - 0xE7, - 0x0F, - 0x33, - 0x25, - 0x19, - 0x1C, - 0x35, - 0x35, - 0x53, - 0x26, - 0x3D, - 0x7D, - 0x26, - 0x29, - 0x35, - 0x35, - 0x29, - 0x0F, - 0x42, - 0x00, - 0x04, - 0x35, - 0x00, - 0x31, - 0x1B, - 0x26, - 0x25, - 0x26, - 0x58, - 0x35, - 0x35, - 0xE7, - 0x42, - 0x1D, - 0x25, - 0x26, - 0x0F, - 0x35, - 0x35, - 0xE7, - 0x0F, - 0x0F, - 0x42, - 0x35, - 0x35, - 0x29, - 0x19, - 0x19, - 0x1B, - 0x35, - 0x35, - 0x35, - 0x29, - 0x29, - 0x35, - 0x35, - 0xE7, - 0x35, - 0xE7, - 0x19, - 0x19, - 0x26, - 0x3D, - 0x28, - 0xE7, - 0x27, - 0x41, - 0xE7, - 0x42, - 0x35, - 0x0F, - 0x35, - 0x42, - 0x00, - 0x06, - 0x51, - 0x00, - 0x0F, - 0x3E, - 0x51, - 0x7D, - 0x3E, - 0x51, - 0x3E, - 0x3E, - 0x3E, - 0x68, - 0x3E, - 0x7D, - 0x68, - 0x7E, - 0x68, - 0x51, - 0x00, - 0x00, - 0x00, - 0x04, - 0x8A, - 0x01, - 0x6D, - 0x05, - 0x8A, - 0x00, - 0x06, - 0x9D, - 0x9D, - 0x56, - 0x6D, - 0x56, - 0x8A, - 0x08, - 0x6D, - 0x04, - 0x87, - 0x06, - 0x9B, - 0x00, - 0x1C, - 0x82, - 0xDE, - 0x82, - 0xDE, - 0x80, - 0xD4, - 0xD4, - 0x99, - 0x9B, - 0xD4, - 0xD4, - 0x99, - 0xC6, - 0x99, - 0xC6, - 0x99, - 0xC6, - 0x7F, - 0xC6, - 0xC6, - 0x7F, - 0x7F, - 0xD4, - 0xD4, - 0x99, - 0x99, - 0xC6, - 0x99, - 0x05, - 0xC6, - 0x00, - 0x0A, - 0x7F, - 0x7F, - 0xC6, - 0xC6, - 0xAF, - 0x7F, - 0xAF, - 0xAF, - 0x7E, - 0xAF, - 0x07, - 0x7E, - 0x01, - 0x83, - 0x07, - 0x7E, - 0x00, - 0x23, - 0x7D, - 0x7E, - 0x68, - 0x7D, - 0x7D, - 0x7E, - 0x7D, - 0x68, - 0x7D, - 0x7D, - 0x7D, - 0x3E, - 0x7D, - 0x3E, - 0x7D, - 0x7D, - 0x3E, - 0x7D, - 0x3E, - 0x51, - 0x3E, - 0x51, - 0x51, - 0x51, - 0x3E, - 0x51, - 0x27, - 0x51, - 0x51, - 0x51, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x20, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x04, - 0x19, - 0x00, - 0x3D, - 0x26, - 0x51, - 0x66, - 0x66, - 0x51, - 0x51, - 0x3D, - 0x3D, - 0x3D, - 0x25, - 0x26, - 0x26, - 0x40, - 0x35, - 0x35, - 0x33, - 0x3D, - 0x51, - 0x41, - 0x35, - 0xE7, - 0x68, - 0x66, - 0x51, - 0x66, - 0x7D, - 0x42, - 0x35, - 0x42, - 0x3D, - 0x3D, - 0x26, - 0x40, - 0x35, - 0x35, - 0x28, - 0x27, - 0x27, - 0x26, - 0x26, - 0x29, - 0x35, - 0x35, - 0x1C, - 0x26, - 0x19, - 0x25, - 0x0E, - 0x1D, - 0xE7, - 0x1B, - 0x19, - 0x25, - 0x28, - 0x35, - 0x35, - 0x29, - 0x1D, - 0x28, - 0x1B, - 0x26, - 0x00, - 0x04, - 0x19, - 0x00, - 0x45, - 0x1C, - 0x35, - 0x35, - 0x33, - 0x25, - 0x50, - 0x7D, - 0x27, - 0xE7, - 0x35, - 0x0F, - 0x26, - 0x25, - 0x26, - 0x88, - 0xE7, - 0x35, - 0x35, - 0x53, - 0x25, - 0x25, - 0x25, - 0x42, - 0x35, - 0x42, - 0x0E, - 0x26, - 0x26, - 0x25, - 0x1B, - 0x35, - 0x35, - 0x0F, - 0x27, - 0x19, - 0x25, - 0x26, - 0x1B, - 0x42, - 0x0F, - 0x19, - 0x19, - 0x0F, - 0x35, - 0x35, - 0x1C, - 0x19, - 0x19, - 0x1A, - 0x42, - 0x35, - 0x35, - 0x42, - 0x19, - 0x19, - 0x19, - 0x26, - 0x57, - 0xE7, - 0x26, - 0x57, - 0x35, - 0x42, - 0x58, - 0x35, - 0x35, - 0x42, - 0x51, - 0x27, - 0x00, - 0x08, - 0x51, - 0x00, - 0x0B, - 0x7D, - 0x51, - 0x7D, - 0x51, - 0x7D, - 0x7D, - 0x68, - 0x7D, - 0x7E, - 0x7D, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x8A, - 0x8A, - 0x8A, - 0x6D, - 0x9D, - 0x8A, - 0x56, - 0x9D, - 0x56, - 0x9D, - 0x56, - 0x56, - 0x9D, - 0x56, - 0x9D, - 0x8A, - 0x06, - 0x6D, - 0x06, - 0x87, - 0x00, - 0x11, - 0x6B, - 0x9B, - 0x9B, - 0x9B, - 0xDE, - 0x82, - 0xDE, - 0x80, - 0xD4, - 0x80, - 0xD4, - 0xD4, - 0x99, - 0xD4, - 0xDE, - 0x99, - 0xC6, - 0x00, - 0x04, - 0x99, - 0x00, - 0x0B, - 0xC6, - 0xC6, - 0xC6, - 0x7F, - 0x7F, - 0x7F, - 0xC6, - 0xD4, - 0xD4, - 0xC6, - 0x7F, - 0x00, - 0x07, - 0x7E, - 0x00, - 0x04, - 0x7D, - 0x7E, - 0x7E, - 0x7E, - 0x07, - 0x7D, - 0x00, - 0x0C, - 0x3E, - 0x7D, - 0x3E, - 0x7D, - 0x68, - 0x7D, - 0x7D, - 0x51, - 0x68, - 0x7E, - 0x7D, - 0x7E, - 0x07, - 0x7D, - 0x01, - 0x7E, - 0x04, - 0x7D, - 0x00, - 0x06, - 0x3E, - 0x7D, - 0x51, - 0x7D, - 0x51, - 0x3E, - 0x06, - 0x51, - 0x01, - 0x68, - 0x05, - 0x51, - 0x00, - 0x07, - 0x3D, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x06, - 0xF8, - 0x01, - 0xF7, - 0x06, - 0xF8, - 0x00, - 0x04, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0x07, - 0xF8, - 0x01, - 0xF7, - 0x06, - 0xF8, - 0x00, - 0x0B, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF0, - 0x26, - 0x3D, - 0x66, - 0x3D, - 0x3D, - 0x00, - 0x04, - 0x25, - 0x00, - 0x25, - 0x3D, - 0x25, - 0x26, - 0x3D, - 0x26, - 0x50, - 0x28, - 0x35, - 0x35, - 0x3E, - 0x3D, - 0x3D, - 0x41, - 0x35, - 0xE7, - 0x27, - 0x26, - 0x25, - 0x3D, - 0x26, - 0x59, - 0x35, - 0x29, - 0x3D, - 0x25, - 0x3D, - 0x53, - 0x35, - 0xE7, - 0x3E, - 0x50, - 0x50, - 0x50, - 0x53, - 0x35, - 0x35, - 0x41, - 0x00, - 0x06, - 0x25, - 0x00, - 0x31, - 0x0E, - 0x26, - 0x25, - 0x19, - 0x1B, - 0x35, - 0x35, - 0x1B, - 0x0E, - 0x0E, - 0x19, - 0x19, - 0x19, - 0x25, - 0x19, - 0x50, - 0x40, - 0x35, - 0x35, - 0x1B, - 0x19, - 0x19, - 0x51, - 0x51, - 0xE7, - 0x35, - 0x28, - 0x25, - 0x25, - 0x66, - 0x3D, - 0x1C, - 0x35, - 0x35, - 0x1B, - 0x25, - 0x25, - 0x66, - 0x42, - 0x35, - 0xD7, - 0x50, - 0x25, - 0x25, - 0x25, - 0x0F, - 0x35, - 0xE7, - 0x0E, - 0x00, - 0x05, - 0x25, - 0x00, - 0x1E, - 0x19, - 0x0E, - 0x18, - 0x0E, - 0xE7, - 0x35, - 0x1D, - 0x19, - 0x18, - 0x19, - 0x19, - 0x0E, - 0x42, - 0x35, - 0x42, - 0x19, - 0x19, - 0x19, - 0x1B, - 0x29, - 0x35, - 0x57, - 0x58, - 0x35, - 0x58, - 0x3E, - 0x35, - 0x35, - 0x42, - 0x3D, - 0x0B, - 0x51, - 0x00, - 0x09, - 0x66, - 0x51, - 0x7D, - 0x51, - 0x7D, - 0x51, - 0x7D, - 0x7D, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x8A, - 0x8A, - 0x56, - 0x6D, - 0x8A, - 0x56, - 0x9D, - 0x56, - 0x9D, - 0x56, - 0x9D, - 0x6D, - 0x6D, - 0x6D, - 0x9D, - 0x9D, - 0x6D, - 0x6D, - 0x6D, - 0x87, - 0x6D, - 0x00, - 0x05, - 0x87, - 0x00, - 0x23, - 0x6B, - 0x87, - 0x87, - 0x9B, - 0x82, - 0xDE, - 0x82, - 0xD4, - 0x80, - 0x80, - 0x80, - 0xD4, - 0x99, - 0x99, - 0xD4, - 0x99, - 0xD4, - 0x99, - 0x99, - 0xC6, - 0xC6, - 0xC6, - 0x7F, - 0xC6, - 0xD3, - 0x7F, - 0x98, - 0x98, - 0x98, - 0x99, - 0xD4, - 0x99, - 0x7E, - 0x7E, - 0xC5, - 0x00, - 0x07, - 0x7E, - 0x00, - 0x03, - 0x7D, - 0x7E, - 0x7E, - 0x00, - 0x0B, - 0x7D, - 0x00, - 0x07, - 0x68, - 0x7D, - 0x3E, - 0x7D, - 0x51, - 0x7D, - 0x7E, - 0x00, - 0x0A, - 0x7D, - 0x00, - 0x0B, - 0x51, - 0x7D, - 0x51, - 0x7D, - 0x51, - 0x7D, - 0x51, - 0x7D, - 0x66, - 0x51, - 0x7D, - 0x00, - 0x07, - 0x51, - 0x00, - 0x0B, - 0x3D, - 0x51, - 0x51, - 0xEE, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xFE, - 0x00, - 0x04, - 0xF9, - 0x01, - 0xF6, - 0x01, - 0xF6, - 0x05, - 0xF9, - 0x00, - 0x07, - 0xFC, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFC, - 0x00, - 0x05, - 0xF9, - 0x00, - 0x0E, - 0xF6, - 0xF6, - 0xF9, - 0xF9, - 0xF9, - 0xFF, - 0xFE, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xEE, - 0x06, - 0x25, - 0x00, - 0x2A, - 0x50, - 0x25, - 0x25, - 0x50, - 0x25, - 0x50, - 0x50, - 0x26, - 0x40, - 0x35, - 0x35, - 0x33, - 0x3D, - 0x3D, - 0x41, - 0x35, - 0xE7, - 0x33, - 0x50, - 0x3D, - 0x50, - 0x3D, - 0x29, - 0x35, - 0x42, - 0x50, - 0x3D, - 0x25, - 0x53, - 0x35, - 0x35, - 0x68, - 0x66, - 0x66, - 0x3D, - 0x40, - 0x35, - 0x35, - 0x3E, - 0x3D, - 0x50, - 0x50, - 0x05, - 0x25, - 0x00, - 0x2E, - 0x18, - 0x25, - 0x25, - 0x0F, - 0x35, - 0x35, - 0x35, - 0xE7, - 0x29, - 0x1B, - 0x18, - 0x19, - 0x18, - 0x51, - 0x54, - 0x35, - 0x35, - 0x33, - 0x18, - 0x18, - 0x25, - 0x66, - 0x29, - 0x35, - 0xE7, - 0x3E, - 0x66, - 0x66, - 0x25, - 0x33, - 0x35, - 0x35, - 0x1B, - 0x25, - 0x3D, - 0x51, - 0x42, - 0x35, - 0x58, - 0x66, - 0x50, - 0x25, - 0x25, - 0x42, - 0x35, - 0x58, - 0x05, - 0x25, - 0x00, - 0x1E, - 0x19, - 0x18, - 0x18, - 0x18, - 0x1B, - 0x35, - 0x35, - 0x1B, - 0x18, - 0x19, - 0x18, - 0x18, - 0x18, - 0x1D, - 0x35, - 0x42, - 0x19, - 0x18, - 0x19, - 0x28, - 0x0F, - 0x0F, - 0x0F, - 0x57, - 0x58, - 0x3E, - 0x3D, - 0x41, - 0x58, - 0x57, - 0x05, - 0x3D, - 0x09, - 0x51, - 0x00, - 0x07, - 0x66, - 0x51, - 0x66, - 0x66, - 0x7D, - 0x51, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0x8A, - 0x8A, - 0x6D, - 0x56, - 0x56, - 0x9D, - 0x56, - 0x56, - 0x9D, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x56, - 0x9D, - 0x6D, - 0x87, - 0x34, - 0x6D, - 0x87, - 0x55, - 0x87, - 0x6B, - 0x87, - 0x87, - 0xB2, - 0x6B, - 0xB2, - 0xC7, - 0x82, - 0xD4, - 0x80, - 0x80, - 0xD4, - 0xD4, - 0xD4, - 0x99, - 0xD4, - 0xD4, - 0xAE, - 0xAE, - 0x80, - 0x99, - 0x04, - 0xAE, - 0x00, - 0x2A, - 0xD3, - 0x98, - 0xD3, - 0x98, - 0x98, - 0x98, - 0xAE, - 0xD4, - 0x99, - 0x98, - 0xC5, - 0x7E, - 0x7E, - 0x7E, - 0x97, - 0x7E, - 0x97, - 0x7E, - 0x7D, - 0x97, - 0x7D, - 0x97, - 0x7E, - 0x7D, - 0x7D, - 0x7D, - 0x66, - 0x7D, - 0x7D, - 0x66, - 0x7D, - 0x7D, - 0x7D, - 0x51, - 0x7D, - 0x51, - 0x7D, - 0x66, - 0x68, - 0x3E, - 0x7D, - 0x97, - 0x08, - 0x7D, - 0x00, - 0x07, - 0x66, - 0x7D, - 0x7D, - 0x66, - 0x7D, - 0x66, - 0x66, - 0x00, - 0x06, - 0x51, - 0x01, - 0x7D, - 0x04, - 0x51, - 0x00, - 0x0C, - 0x7D, - 0x51, - 0x3D, - 0x51, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x03, - 0xFD, - 0xFB, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x07, - 0xFF, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xFF, - 0x00, - 0x04, - 0x35, - 0x00, - 0x03, - 0xE7, - 0xFB, - 0xFE, - 0x00, - 0x04, - 0x35, - 0x00, - 0x36, - 0xE7, - 0xF6, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF0, - 0x19, - 0x19, - 0x18, - 0x25, - 0x19, - 0x18, - 0x25, - 0x50, - 0x25, - 0x50, - 0x25, - 0x25, - 0x25, - 0x50, - 0x28, - 0x35, - 0x35, - 0x3E, - 0x50, - 0x3D, - 0x57, - 0x35, - 0xE7, - 0x27, - 0x50, - 0x50, - 0x25, - 0x50, - 0x59, - 0x35, - 0x29, - 0x3D, - 0x50, - 0x50, - 0x53, - 0x35, - 0x35, - 0x68, - 0x66, - 0x66, - 0xAC, - 0x89, - 0x35, - 0xE7, - 0x28, - 0x53, - 0x04, - 0x40, - 0x00, - 0x3E, - 0x53, - 0x1C, - 0x26, - 0x25, - 0x18, - 0x1D, - 0x35, - 0x35, - 0x29, - 0x0F, - 0xE7, - 0x35, - 0xE7, - 0x1B, - 0x18, - 0x50, - 0x3D, - 0x1B, - 0x35, - 0x35, - 0x53, - 0x25, - 0x18, - 0x18, - 0x25, - 0x84, - 0x35, - 0x35, - 0x35, - 0x58, - 0x1C, - 0x33, - 0x40, - 0x35, - 0x35, - 0x1B, - 0x32, - 0x66, - 0x25, - 0x42, - 0x35, - 0x1D, - 0x25, - 0x66, - 0x3D, - 0x19, - 0xE7, - 0x35, - 0x0F, - 0x1B, - 0x1B, - 0x1C, - 0x1C, - 0x1B, - 0x1B, - 0x1B, - 0x1A, - 0x0D, - 0x1C, - 0x35, - 0x35, - 0x1A, - 0x05, - 0x18, - 0x00, - 0x0D, - 0x0F, - 0x35, - 0x42, - 0x19, - 0x18, - 0x18, - 0x19, - 0x25, - 0x25, - 0x50, - 0x25, - 0x3D, - 0x26, - 0x00, - 0x0B, - 0x3D, - 0x00, - 0x0E, - 0x51, - 0x3D, - 0x51, - 0x51, - 0x51, - 0x66, - 0x51, - 0x51, - 0x66, - 0x51, - 0x66, - 0x7D, - 0x66, - 0x51, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x8A, - 0x6D, - 0x6D, - 0x9D, - 0x9D, - 0x9D, - 0x56, - 0x9D, - 0x56, - 0x56, - 0x04, - 0x6D, - 0x00, - 0x04, - 0x9D, - 0x56, - 0x87, - 0x6D, - 0x06, - 0x87, - 0x00, - 0x0A, - 0xB2, - 0x6B, - 0x6B, - 0xB2, - 0x6B, - 0x6B, - 0x82, - 0x80, - 0x80, - 0xD4, - 0x04, - 0x99, - 0x00, - 0x0B, - 0xAE, - 0xAE, - 0xAE, - 0xD3, - 0xD4, - 0xAE, - 0xD3, - 0xAE, - 0xD3, - 0x98, - 0xD3, - 0x00, - 0x05, - 0x98, - 0x00, - 0x11, - 0xD4, - 0xAE, - 0xAE, - 0x97, - 0x7E, - 0x97, - 0x7E, - 0x97, - 0x97, - 0x7D, - 0x97, - 0x7D, - 0x97, - 0x7D, - 0x7D, - 0x97, - 0x97, - 0x00, - 0x05, - 0x7D, - 0x01, - 0x66, - 0x01, - 0x7D, - 0x04, - 0x66, - 0x00, - 0x07, - 0x7D, - 0x7D, - 0x68, - 0x51, - 0x3E, - 0x51, - 0x66, - 0x00, - 0x0A, - 0x7D, - 0x00, - 0x0D, - 0x66, - 0x66, - 0x51, - 0x66, - 0x51, - 0x66, - 0x66, - 0x51, - 0x66, - 0x51, - 0x51, - 0x51, - 0x66, - 0x00, - 0x07, - 0x51, - 0x00, - 0x09, - 0x65, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x03, - 0xFD, - 0xFA, - 0xFD, - 0x00, - 0x05, - 0x35, - 0x00, - 0x05, - 0xFD, - 0xFA, - 0xF8, - 0xF8, - 0xFD, - 0x00, - 0x05, - 0x35, - 0x00, - 0x03, - 0xFD, - 0xFA, - 0xFE, - 0x00, - 0x04, - 0x35, - 0x00, - 0x12, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0x79, - 0x18, - 0x25, - 0x18, - 0x18, - 0x25, - 0x25, - 0x32, - 0x50, - 0x25, - 0x04, - 0x50, - 0x00, - 0x1C, - 0x40, - 0x35, - 0x35, - 0x27, - 0x25, - 0x3D, - 0x28, - 0x35, - 0xE7, - 0x26, - 0x25, - 0x25, - 0x32, - 0x25, - 0x29, - 0x35, - 0x29, - 0x50, - 0x50, - 0x50, - 0x53, - 0x35, - 0x35, - 0x68, - 0x3D, - 0x50, - 0x50, - 0x57, - 0x0A, - 0x35, - 0x00, - 0x1A, - 0x28, - 0x18, - 0x1B, - 0x35, - 0x35, - 0x28, - 0x19, - 0x18, - 0x26, - 0x42, - 0x35, - 0x42, - 0x19, - 0x3D, - 0x25, - 0x1B, - 0x35, - 0x35, - 0x3E, - 0x3D, - 0x65, - 0x18, - 0x18, - 0x18, - 0x1A, - 0x29, - 0x04, - 0x35, - 0x00, - 0x0F, - 0xE7, - 0x35, - 0x35, - 0x1B, - 0x65, - 0x50, - 0x25, - 0x29, - 0x35, - 0x58, - 0x18, - 0x32, - 0x7B, - 0x7D, - 0xE7, - 0x00, - 0x09, - 0x35, - 0x00, - 0x07, - 0x42, - 0x19, - 0x1A, - 0x35, - 0x35, - 0x1A, - 0x0D, - 0x00, - 0x04, - 0x18, - 0x00, - 0x04, - 0x1D, - 0x35, - 0x42, - 0x19, - 0x05, - 0x18, - 0x01, - 0x25, - 0x04, - 0x50, - 0x00, - 0x04, - 0x3D, - 0x50, - 0x3D, - 0x50, - 0x08, - 0x3D, - 0x00, - 0x0C, - 0x51, - 0x65, - 0x51, - 0x51, - 0x51, - 0x66, - 0x3D, - 0x66, - 0x51, - 0xAC, - 0x66, - 0x3D, - 0x00, - 0x00, - 0x00, - 0x09, - 0x56, - 0x87, - 0x56, - 0x9D, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x56, - 0x00, - 0x06, - 0x6D, - 0x01, - 0x56, - 0x04, - 0x87, - 0x00, - 0x05, - 0x55, - 0x87, - 0x6B, - 0x6B, - 0xB2, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x03, - 0x85, - 0x99, - 0xD4, - 0x00, - 0x04, - 0x99, - 0x05, - 0xAE, - 0x00, - 0x10, - 0x99, - 0xD3, - 0xAE, - 0x98, - 0x98, - 0xAE, - 0x98, - 0x98, - 0xAD, - 0x98, - 0xAD, - 0xAE, - 0xAE, - 0xAE, - 0x98, - 0xAD, - 0x06, - 0x97, - 0x00, - 0x09, - 0x7D, - 0x97, - 0xAC, - 0x7D, - 0x7D, - 0x97, - 0x7D, - 0x66, - 0x7D, - 0x00, - 0x08, - 0x66, - 0x00, - 0x08, - 0x51, - 0x66, - 0x66, - 0x3E, - 0x66, - 0x3E, - 0x66, - 0x51, - 0x06, - 0x7D, - 0x00, - 0x03, - 0x66, - 0x66, - 0x97, - 0x00, - 0x07, - 0x66, - 0x06, - 0x51, - 0x00, - 0x11, - 0x66, - 0x51, - 0x66, - 0x51, - 0x51, - 0x51, - 0x3D, - 0x3D, - 0xF2, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x04, - 0xFD, - 0xFA, - 0xF7, - 0xFF, - 0x04, - 0x35, - 0x00, - 0x05, - 0xE7, - 0xFB, - 0xF8, - 0xFB, - 0x42, - 0x00, - 0x04, - 0x35, - 0x00, - 0x04, - 0xCB, - 0xF8, - 0xFA, - 0xFD, - 0x04, - 0x35, - 0x00, - 0x6B, - 0xE7, - 0xFB, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF0, - 0x18, - 0x25, - 0x18, - 0x25, - 0x18, - 0x18, - 0x25, - 0x32, - 0x32, - 0x50, - 0x32, - 0x3D, - 0x3D, - 0x40, - 0x35, - 0x35, - 0x3E, - 0x32, - 0x66, - 0x57, - 0x35, - 0xE7, - 0x3D, - 0x50, - 0x32, - 0x50, - 0x50, - 0x29, - 0x35, - 0x29, - 0x50, - 0x50, - 0x50, - 0x53, - 0x35, - 0xE7, - 0x68, - 0x50, - 0x50, - 0x50, - 0x40, - 0x35, - 0x35, - 0x29, - 0xB4, - 0xD7, - 0xD7, - 0x58, - 0x0F, - 0x35, - 0x35, - 0x1C, - 0x32, - 0x28, - 0x35, - 0x42, - 0x18, - 0x0D, - 0x0D, - 0x18, - 0x1B, - 0x35, - 0x35, - 0x27, - 0x65, - 0x18, - 0x1B, - 0x35, - 0x35, - 0x1C, - 0x18, - 0x50, - 0x66, - 0x32, - 0x18, - 0x18, - 0x18, - 0x0E, - 0x28, - 0x58, - 0x29, - 0xE7, - 0x35, - 0x35, - 0x53, - 0x65, - 0x18, - 0x25, - 0x29, - 0x35, - 0x1D, - 0x32, - 0x18, - 0x18, - 0x3D, - 0x42, - 0x35, - 0xE7, - 0x00, - 0x05, - 0x1D, - 0x00, - 0x10, - 0xE7, - 0x35, - 0x42, - 0x0D, - 0x0E, - 0x35, - 0x35, - 0x1C, - 0x0D, - 0x18, - 0x0D, - 0x18, - 0x0D, - 0x1D, - 0x35, - 0x42, - 0x05, - 0x18, - 0x00, - 0x03, - 0x25, - 0x18, - 0x18, - 0x00, - 0x06, - 0x50, - 0x00, - 0x0F, - 0x3D, - 0x50, - 0x3D, - 0x3D, - 0x3D, - 0x65, - 0x3D, - 0x3D, - 0x65, - 0x3D, - 0x3D, - 0x51, - 0x3D, - 0x66, - 0x51, - 0x00, - 0x05, - 0x66, - 0x01, - 0x3D, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6D, - 0x6D, - 0x9D, - 0x56, - 0x6D, - 0x6D, - 0x56, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x15, - 0x87, - 0x6D, - 0x87, - 0x6D, - 0x6D, - 0x55, - 0x87, - 0x6B, - 0x87, - 0x87, - 0x6B, - 0xB2, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x82, - 0x00, - 0x04, - 0x99, - 0x04, - 0xAE, - 0x00, - 0x06, - 0xC4, - 0xAE, - 0x99, - 0xC4, - 0xD2, - 0xC4, - 0x06, - 0xAD, - 0x00, - 0x04, - 0x98, - 0xAE, - 0xAE, - 0xAD, - 0x07, - 0x97, - 0x00, - 0x0A, - 0x7D, - 0xAC, - 0x7D, - 0x7D, - 0x97, - 0x66, - 0x97, - 0x97, - 0x66, - 0xAC, - 0x0B, - 0x66, - 0x00, - 0x0E, - 0x3E, - 0x51, - 0x66, - 0x51, - 0x51, - 0x66, - 0x66, - 0x97, - 0x66, - 0x66, - 0x66, - 0x7D, - 0x66, - 0xAC, - 0x05, - 0x66, - 0x01, - 0x51, - 0x04, - 0x66, - 0x00, - 0x04, - 0x51, - 0x66, - 0x3D, - 0x51, - 0x06, - 0x3D, - 0x00, - 0x0A, - 0x65, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x04, - 0xFD, - 0xF8, - 0xF8, - 0xFC, - 0x05, - 0x35, - 0x00, - 0x03, - 0xFE, - 0xFA, - 0xFE, - 0x00, - 0x05, - 0x35, - 0x00, - 0x04, - 0xFC, - 0xF8, - 0xF8, - 0xFE, - 0x04, - 0x35, - 0x00, - 0x83, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0x79, - 0x32, - 0x32, - 0x32, - 0x18, - 0x32, - 0x50, - 0x65, - 0x65, - 0x65, - 0x7B, - 0x7B, - 0x66, - 0x6C, - 0x35, - 0x35, - 0x68, - 0x65, - 0x7B, - 0x57, - 0x35, - 0x35, - 0x53, - 0x50, - 0x50, - 0x50, - 0x32, - 0xCB, - 0x35, - 0x29, - 0x50, - 0x50, - 0x50, - 0x3E, - 0x35, - 0x35, - 0x7D, - 0x50, - 0x50, - 0x32, - 0x3E, - 0x35, - 0x35, - 0x40, - 0x32, - 0x32, - 0x65, - 0x65, - 0x53, - 0x35, - 0x35, - 0x27, - 0x18, - 0x41, - 0x35, - 0x42, - 0x25, - 0x18, - 0x18, - 0x0D, - 0x1B, - 0x35, - 0x35, - 0x51, - 0x50, - 0x18, - 0x1B, - 0x35, - 0x35, - 0x35, - 0x33, - 0x18, - 0x18, - 0x65, - 0x65, - 0x18, - 0x0D, - 0x18, - 0x18, - 0x18, - 0x32, - 0x1B, - 0x35, - 0x35, - 0x84, - 0x32, - 0x32, - 0x32, - 0x29, - 0x35, - 0x58, - 0x18, - 0x32, - 0x18, - 0x18, - 0x58, - 0x35, - 0x42, - 0x18, - 0x18, - 0x18, - 0x0D, - 0x0D, - 0x29, - 0x35, - 0x1D, - 0x0D, - 0x18, - 0x42, - 0x35, - 0x0F, - 0x0D, - 0x0D, - 0x0D, - 0x18, - 0x0D, - 0x1D, - 0x35, - 0x42, - 0x18, - 0x18, - 0x0D, - 0x00, - 0x06, - 0x18, - 0x0A, - 0x50, - 0x00, - 0x10, - 0x3D, - 0x65, - 0x3D, - 0x3D, - 0x3D, - 0x65, - 0x3D, - 0x65, - 0x3D, - 0x65, - 0x51, - 0x65, - 0x66, - 0x66, - 0x66, - 0x3D, - 0x00, - 0x00, - 0x01, - 0x87, - 0x04, - 0x56, - 0x04, - 0x6D, - 0x00, - 0x0C, - 0x87, - 0x6D, - 0x34, - 0x87, - 0x87, - 0x6D, - 0x6D, - 0x87, - 0x55, - 0x87, - 0x6B, - 0xB2, - 0x04, - 0x6B, - 0x06, - 0x85, - 0x00, - 0x03, - 0x9B, - 0x99, - 0x99, - 0x00, - 0x05, - 0xAE, - 0x00, - 0x07, - 0xC4, - 0xC4, - 0xD2, - 0x99, - 0xC4, - 0xAD, - 0x96, - 0x00, - 0x06, - 0xAD, - 0x00, - 0x13, - 0xAE, - 0xAE, - 0x96, - 0xC3, - 0x97, - 0xAC, - 0x97, - 0x97, - 0xAC, - 0x97, - 0x97, - 0xAC, - 0x97, - 0xAC, - 0x66, - 0xAC, - 0x66, - 0xAC, - 0x97, - 0x00, - 0x0E, - 0x66, - 0x00, - 0x0D, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x27, - 0x66, - 0x7D, - 0x66, - 0xAC, - 0x66, - 0x66, - 0x66, - 0x97, - 0x00, - 0x07, - 0x66, - 0x00, - 0x09, - 0x3D, - 0x66, - 0x3D, - 0x66, - 0x3D, - 0x66, - 0x51, - 0x3D, - 0x66, - 0x00, - 0x04, - 0x3D, - 0x00, - 0x0A, - 0xEE, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x05, - 0xFD, - 0xF8, - 0xF8, - 0xF8, - 0xFF, - 0x00, - 0x04, - 0x35, - 0x00, - 0x03, - 0xE7, - 0xFC, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x05, - 0xFF, - 0xF8, - 0xF8, - 0xF8, - 0xFD, - 0x00, - 0x04, - 0x35, - 0x00, - 0x12, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0x79, - 0x50, - 0x65, - 0x65, - 0x3D, - 0x65, - 0x50, - 0x32, - 0x50, - 0x04, - 0x32, - 0x00, - 0x36, - 0x40, - 0x35, - 0x35, - 0x27, - 0x32, - 0x32, - 0x57, - 0x35, - 0x35, - 0x35, - 0x88, - 0x66, - 0x7B, - 0x83, - 0xE7, - 0x35, - 0x29, - 0x32, - 0x50, - 0x50, - 0x53, - 0x35, - 0x35, - 0x68, - 0x65, - 0x50, - 0x50, - 0x50, - 0x29, - 0x35, - 0xE7, - 0x51, - 0x50, - 0x32, - 0x25, - 0x42, - 0x35, - 0x42, - 0x66, - 0x50, - 0x1B, - 0x35, - 0x35, - 0x1C, - 0x31, - 0x32, - 0x18, - 0x1D, - 0x35, - 0xE7, - 0x7D, - 0x18, - 0x18, - 0x1B, - 0x04, - 0x35, - 0x00, - 0x35, - 0x28, - 0x19, - 0x18, - 0x50, - 0x88, - 0x53, - 0x18, - 0x18, - 0x0D, - 0x18, - 0x41, - 0x35, - 0x35, - 0x68, - 0x18, - 0x32, - 0x25, - 0x29, - 0x35, - 0x1D, - 0x32, - 0x18, - 0x32, - 0x31, - 0x33, - 0x35, - 0x35, - 0x57, - 0x18, - 0x0D, - 0x0D, - 0x1B, - 0x35, - 0x35, - 0x1A, - 0x0D, - 0x0D, - 0x28, - 0x35, - 0x35, - 0x28, - 0x18, - 0x0D, - 0x0D, - 0x19, - 0x29, - 0x35, - 0x42, - 0x18, - 0x18, - 0x18, - 0x0D, - 0x17, - 0x00, - 0x05, - 0x18, - 0x01, - 0x32, - 0x09, - 0x50, - 0x00, - 0x0F, - 0x65, - 0x50, - 0x65, - 0x65, - 0x3D, - 0x3D, - 0x65, - 0x3D, - 0x65, - 0x65, - 0x51, - 0x65, - 0x66, - 0xC1, - 0x3D, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x01, - 0x56, - 0x08, - 0x6D, - 0x04, - 0x87, - 0x00, - 0x09, - 0x6D, - 0x6D, - 0x6B, - 0x87, - 0x6B, - 0xB2, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x09, - 0x85, - 0x00, - 0x04, - 0x82, - 0xAE, - 0xAE, - 0xAE, - 0x04, - 0xC4, - 0x00, - 0x0F, - 0xAD, - 0xC4, - 0xAE, - 0xAD, - 0x96, - 0xAD, - 0xC3, - 0xAD, - 0xAD, - 0xC3, - 0x97, - 0xAD, - 0xAE, - 0xC4, - 0xAD, - 0x00, - 0x04, - 0x97, - 0x00, - 0x0D, - 0xAC, - 0x97, - 0xAC, - 0xAC, - 0x66, - 0xAC, - 0x66, - 0xAC, - 0x66, - 0x66, - 0xAC, - 0x66, - 0x7B, - 0x00, - 0x05, - 0x66, - 0x01, - 0x7B, - 0x05, - 0x66, - 0x01, - 0x3D, - 0x04, - 0x51, - 0x00, - 0x05, - 0x3E, - 0x51, - 0x3E, - 0x66, - 0xAC, - 0x00, - 0x0B, - 0x66, - 0x00, - 0x18, - 0x51, - 0x66, - 0x51, - 0x66, - 0x3D, - 0x66, - 0x3D, - 0x51, - 0x65, - 0x3D, - 0x3D, - 0x65, - 0x3D, - 0x3D, - 0xF2, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x06, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF6, - 0xE7, - 0x04, - 0x35, - 0x01, - 0xE7, - 0x05, - 0x35, - 0x00, - 0x05, - 0xF6, - 0xF8, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x04, - 0x35, - 0x00, - 0x11, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF2, - 0x65, - 0x50, - 0x50, - 0x31, - 0x18, - 0x18, - 0x31, - 0x00, - 0x05, - 0x32, - 0x00, - 0x5C, - 0x40, - 0x35, - 0x35, - 0x27, - 0x32, - 0x32, - 0x57, - 0x35, - 0xE7, - 0xE7, - 0x35, - 0x42, - 0x29, - 0xE7, - 0x35, - 0x35, - 0x28, - 0x31, - 0x53, - 0x42, - 0xE7, - 0x35, - 0x35, - 0xE7, - 0x42, - 0x29, - 0x51, - 0x50, - 0x3E, - 0xE7, - 0x35, - 0xE7, - 0x41, - 0x28, - 0x42, - 0x35, - 0x35, - 0x33, - 0x32, - 0x65, - 0x66, - 0x29, - 0x35, - 0xE7, - 0x28, - 0x1C, - 0x58, - 0x35, - 0x35, - 0x35, - 0xE7, - 0x0F, - 0x18, - 0x1B, - 0x35, - 0x42, - 0x1D, - 0x35, - 0x35, - 0xE7, - 0x28, - 0x19, - 0x35, - 0x35, - 0x42, - 0x0F, - 0x1D, - 0x29, - 0x35, - 0x35, - 0x42, - 0x66, - 0x32, - 0x1D, - 0x42, - 0x35, - 0x35, - 0x35, - 0x42, - 0x42, - 0x28, - 0x18, - 0x18, - 0x1D, - 0x35, - 0x35, - 0x29, - 0x1C, - 0x1D, - 0x35, - 0x35, - 0x1D, - 0x04, - 0x0D, - 0x00, - 0x0D, - 0x0F, - 0x35, - 0x35, - 0x42, - 0x1D, - 0x0F, - 0x42, - 0x35, - 0x35, - 0x42, - 0x18, - 0x0D, - 0x0D, - 0x00, - 0x04, - 0x18, - 0x00, - 0x07, - 0x17, - 0x18, - 0x18, - 0x32, - 0x32, - 0x50, - 0x32, - 0x00, - 0x07, - 0x50, - 0x00, - 0x03, - 0x65, - 0x50, - 0x50, - 0x00, - 0x05, - 0x65, - 0x00, - 0x06, - 0x3D, - 0x65, - 0x65, - 0x66, - 0x65, - 0x3D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x56, - 0x6D, - 0x56, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x08, - 0x87, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x05, - 0x6B, - 0x07, - 0x85, - 0x00, - 0x1C, - 0x9B, - 0x85, - 0x9B, - 0x9B, - 0x6A, - 0x99, - 0xAE, - 0x98, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0xC2, - 0xC2, - 0xAE, - 0xAD, - 0xC3, - 0xC3, - 0xAD, - 0xAD, - 0xC3, - 0x97, - 0xC3, - 0xAE, - 0xC4, - 0x96, - 0x97, - 0xC3, - 0x05, - 0xAC, - 0x00, - 0x0E, - 0x66, - 0xAC, - 0xAC, - 0x66, - 0xAC, - 0x66, - 0x7B, - 0x66, - 0xAC, - 0xAC, - 0x66, - 0x66, - 0x66, - 0x7B, - 0x05, - 0x66, - 0x00, - 0x0C, - 0x65, - 0x66, - 0x51, - 0x66, - 0x51, - 0x51, - 0x3E, - 0x3D, - 0x51, - 0x27, - 0x51, - 0x51, - 0x04, - 0x66, - 0x00, - 0x17, - 0x7B, - 0xAC, - 0x66, - 0x66, - 0x66, - 0x3D, - 0x66, - 0x65, - 0x66, - 0x66, - 0x51, - 0x51, - 0x51, - 0x3D, - 0x51, - 0x51, - 0x3D, - 0x65, - 0x3D, - 0x3D, - 0x3D, - 0x91, - 0xF2, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x05, - 0xF8, - 0xF8, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x06, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF9, - 0x09, - 0x35, - 0x00, - 0x06, - 0xF9, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0x04, - 0x35, - 0x00, - 0x21, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF0, - 0x79, - 0x32, - 0x32, - 0x31, - 0x17, - 0x31, - 0x18, - 0x32, - 0x32, - 0x64, - 0x65, - 0x65, - 0x54, - 0x35, - 0x35, - 0x68, - 0x65, - 0x63, - 0x57, - 0x35, - 0x58, - 0x51, - 0x29, - 0x00, - 0x04, - 0x35, - 0x00, - 0x04, - 0x29, - 0x50, - 0x32, - 0x40, - 0x07, - 0x35, - 0x00, - 0x05, - 0x3E, - 0x32, - 0x64, - 0x3E, - 0x42, - 0x00, - 0x04, - 0x35, - 0x00, - 0x08, - 0xE7, - 0x1B, - 0x32, - 0x31, - 0x31, - 0x32, - 0x51, - 0x59, - 0x04, - 0x35, - 0x00, - 0x11, - 0xE7, - 0x1D, - 0x29, - 0x35, - 0x42, - 0x17, - 0x1B, - 0x35, - 0x0F, - 0x31, - 0x1C, - 0xE7, - 0x35, - 0x1D, - 0x18, - 0x1D, - 0xE7, - 0x00, - 0x05, - 0x35, - 0x00, - 0x05, - 0x42, - 0x0E, - 0x65, - 0xAC, - 0x42, - 0x00, - 0x06, - 0x35, - 0x00, - 0x05, - 0x0F, - 0x17, - 0x31, - 0x32, - 0x41, - 0x00, - 0x05, - 0x35, - 0x00, - 0x09, - 0x1D, - 0x18, - 0x0D, - 0x0D, - 0x01, - 0x0D, - 0x18, - 0x1D, - 0xE7, - 0x00, - 0x06, - 0x35, - 0x01, - 0x42, - 0x04, - 0x0D, - 0x00, - 0x0F, - 0x17, - 0x18, - 0x0D, - 0x18, - 0x0D, - 0x18, - 0x18, - 0x32, - 0x32, - 0x32, - 0x50, - 0x32, - 0x50, - 0x50, - 0x64, - 0x00, - 0x04, - 0x50, - 0x00, - 0x04, - 0x65, - 0x65, - 0x65, - 0x50, - 0x05, - 0x65, - 0x00, - 0x03, - 0x7B, - 0x65, - 0x50, - 0x00, - 0x00, - 0x00, - 0x01, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x0F, - 0x34, - 0x87, - 0x6D, - 0x55, - 0x87, - 0x55, - 0x87, - 0x6B, - 0x87, - 0x6D, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x00, - 0x05, - 0x85, - 0x00, - 0x1C, - 0x9B, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x9B, - 0x80, - 0xC4, - 0xC4, - 0xC4, - 0xC2, - 0xC2, - 0xAB, - 0xC2, - 0xC3, - 0xAE, - 0xC3, - 0xAB, - 0xC3, - 0xC3, - 0xC0, - 0xC3, - 0xC3, - 0x96, - 0xAE, - 0xC4, - 0xC3, - 0x08, - 0xAC, - 0x00, - 0x1E, - 0x66, - 0xAC, - 0xAC, - 0x66, - 0xAC, - 0x66, - 0x7B, - 0xAC, - 0x66, - 0x7B, - 0x66, - 0x7B, - 0x66, - 0x7B, - 0x7B, - 0x66, - 0x7B, - 0x66, - 0x66, - 0x65, - 0x66, - 0x3D, - 0x51, - 0x3D, - 0x3D, - 0x51, - 0x3D, - 0x3D, - 0x27, - 0x27, - 0x06, - 0x66, - 0x00, - 0x0C, - 0x7B, - 0x66, - 0x7B, - 0x66, - 0x66, - 0x66, - 0x51, - 0x3D, - 0x51, - 0x3D, - 0x51, - 0x51, - 0x04, - 0x3D, - 0x00, - 0x0E, - 0x65, - 0x3D, - 0x65, - 0xEE, - 0xF0, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x07, - 0xFD, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x07, - 0x35, - 0x00, - 0x07, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xFD, - 0x00, - 0x04, - 0x35, - 0x00, - 0x3A, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x79, - 0x32, - 0x32, - 0x32, - 0x50, - 0x50, - 0x64, - 0x32, - 0x4F, - 0x50, - 0x32, - 0x32, - 0x51, - 0x1A, - 0x3E, - 0x65, - 0x32, - 0x50, - 0x3D, - 0x53, - 0x51, - 0x31, - 0x32, - 0x3E, - 0x28, - 0x28, - 0x53, - 0x32, - 0x4F, - 0x32, - 0x25, - 0x3E, - 0x57, - 0x35, - 0x35, - 0x54, - 0x84, - 0x9C, - 0x7B, - 0x65, - 0x64, - 0x4F, - 0x50, - 0x53, - 0x28, - 0x57, - 0x1B, - 0x26, - 0x06, - 0x31, - 0x00, - 0x40, - 0x32, - 0x68, - 0x89, - 0x41, - 0x40, - 0x26, - 0x31, - 0x32, - 0x68, - 0xAF, - 0x65, - 0x25, - 0x33, - 0x26, - 0x31, - 0x17, - 0x26, - 0x1C, - 0x0E, - 0x17, - 0x17, - 0x19, - 0x1A, - 0x1C, - 0x89, - 0x57, - 0x1B, - 0x19, - 0x0D, - 0x17, - 0x31, - 0xAF, - 0x53, - 0x42, - 0x35, - 0x0F, - 0x33, - 0x33, - 0x26, - 0x31, - 0x17, - 0x31, - 0x0D, - 0x19, - 0x1C, - 0x57, - 0x57, - 0x0E, - 0x0D, - 0x01, - 0x0D, - 0x01, - 0x0D, - 0x0C, - 0x0D, - 0x01, - 0x19, - 0x1B, - 0x1C, - 0x1A, - 0x0E, - 0x1D, - 0x35, - 0x42, - 0x04, - 0x0D, - 0x00, - 0x15, - 0x17, - 0x17, - 0x0D, - 0x17, - 0x17, - 0x17, - 0x0D, - 0x17, - 0x32, - 0x32, - 0x79, - 0x32, - 0x32, - 0x50, - 0x32, - 0x64, - 0x50, - 0x50, - 0x64, - 0x50, - 0x50, - 0x00, - 0x07, - 0x65, - 0x00, - 0x03, - 0x7B, - 0x65, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x6D, - 0x6D, - 0x87, - 0x87, - 0x87, - 0x6B, - 0x87, - 0x55, - 0x87, - 0x6D, - 0x04, - 0x6B, - 0x07, - 0x85, - 0x00, - 0x08, - 0x6A, - 0x9B, - 0x9B, - 0x6A, - 0x9B, - 0x9B, - 0x82, - 0x80, - 0x04, - 0x99, - 0x00, - 0x12, - 0xAE, - 0x98, - 0xAE, - 0x99, - 0xAE, - 0x7C, - 0xAD, - 0x96, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xC4, - 0xC3, - 0xAC, - 0x95, - 0xAC, - 0x7A, - 0x06, - 0xAC, - 0x00, - 0x1F, - 0x7B, - 0xAC, - 0xAC, - 0x7B, - 0x66, - 0x7B, - 0xAC, - 0xAC, - 0x7B, - 0x7B, - 0x66, - 0x7B, - 0x66, - 0x65, - 0x66, - 0x65, - 0x66, - 0x65, - 0x66, - 0x66, - 0x3D, - 0x51, - 0x51, - 0x3D, - 0x3D, - 0x27, - 0x3D, - 0x3D, - 0x26, - 0x51, - 0x7B, - 0x00, - 0x05, - 0x66, - 0x00, - 0x05, - 0x51, - 0x66, - 0x3D, - 0x66, - 0x3D, - 0x00, - 0x05, - 0x51, - 0x00, - 0x13, - 0x3D, - 0x51, - 0x51, - 0x3D, - 0x27, - 0x65, - 0x65, - 0x3D, - 0xF0, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x07, - 0xFD, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xFE, - 0x00, - 0x07, - 0x35, - 0x00, - 0x07, - 0xFE, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xFE, - 0x00, - 0x04, - 0x35, - 0x00, - 0x24, - 0xE7, - 0xFB, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0x91, - 0x63, - 0x32, - 0x31, - 0x17, - 0x17, - 0x0D, - 0x0D, - 0x0D, - 0x17, - 0x17, - 0x17, - 0x18, - 0x01, - 0x0D, - 0x31, - 0x17, - 0x17, - 0x31, - 0x17, - 0x32, - 0x31, - 0x17, - 0x17, - 0x31, - 0x17, - 0x04, - 0x31, - 0x00, - 0x0D, - 0x17, - 0x31, - 0x3E, - 0x35, - 0xE7, - 0x3D, - 0x4F, - 0x64, - 0x93, - 0x7B, - 0xAC, - 0x7B, - 0x63, - 0x00, - 0x0E, - 0x31, - 0x00, - 0x0A, - 0x64, - 0x65, - 0x64, - 0x17, - 0x31, - 0x31, - 0x30, - 0x93, - 0x7B, - 0x32, - 0x0B, - 0x17, - 0x00, - 0x21, - 0x0D, - 0x4F, - 0x93, - 0x17, - 0x16, - 0x0D, - 0x0D, - 0x17, - 0x7B, - 0x29, - 0x35, - 0x41, - 0x31, - 0x17, - 0x31, - 0x17, - 0x31, - 0x17, - 0x16, - 0x0C, - 0x0D, - 0x01, - 0x31, - 0x64, - 0x16, - 0x01, - 0x0C, - 0x01, - 0x01, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x00, - 0x04, - 0x01, - 0x00, - 0x03, - 0x1D, - 0x35, - 0x29, - 0x00, - 0x04, - 0x0D, - 0x00, - 0x18, - 0x17, - 0x17, - 0x0D, - 0x0D, - 0x0D, - 0x17, - 0x17, - 0x0D, - 0x17, - 0x32, - 0x32, - 0x32, - 0x4F, - 0x4F, - 0x50, - 0x4F, - 0x50, - 0x64, - 0x50, - 0x64, - 0x50, - 0x64, - 0x65, - 0x50, - 0x04, - 0x65, - 0x00, - 0x03, - 0x7B, - 0x65, - 0x50, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x04, - 0x87, - 0x00, - 0x03, - 0x34, - 0xB2, - 0x55, - 0x00, - 0x04, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x6B, - 0x6B, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x07, - 0x6A, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x05, - 0x80, - 0x80, - 0x80, - 0x82, - 0x82, - 0x00, - 0x06, - 0x80, - 0x01, - 0x82, - 0x04, - 0x99, - 0x00, - 0x07, - 0xAE, - 0xAE, - 0x7C, - 0xC4, - 0x96, - 0xAC, - 0x95, - 0x00, - 0x05, - 0xAC, - 0x00, - 0x05, - 0x7A, - 0x7B, - 0xAC, - 0xAC, - 0xAC, - 0x00, - 0x0B, - 0x7B, - 0x00, - 0x07, - 0x65, - 0x7B, - 0x7B, - 0x66, - 0x65, - 0x66, - 0x65, - 0x00, - 0x08, - 0x3D, - 0x00, - 0x04, - 0x27, - 0x3D, - 0x26, - 0x3D, - 0x04, - 0x66, - 0x04, - 0x51, - 0x00, - 0x0A, - 0x3D, - 0x51, - 0x51, - 0x3D, - 0x27, - 0x3D, - 0x68, - 0x68, - 0x27, - 0x51, - 0x05, - 0x3D, - 0x00, - 0x0B, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x08, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0x42, - 0x05, - 0x35, - 0x00, - 0x08, - 0x42, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xFD, - 0x04, - 0x35, - 0x00, - 0x37, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xBB, - 0x0D, - 0x01, - 0x0D, - 0x0D, - 0x01, - 0x0D, - 0x0D, - 0x16, - 0x17, - 0x17, - 0x17, - 0x0D, - 0x1B, - 0x1A, - 0x17, - 0x17, - 0x31, - 0x31, - 0x17, - 0x4F, - 0x31, - 0x31, - 0x31, - 0x17, - 0x31, - 0x31, - 0x93, - 0x64, - 0x65, - 0x64, - 0x17, - 0x33, - 0x35, - 0x35, - 0x27, - 0x30, - 0x4F, - 0x4F, - 0x4F, - 0x4E, - 0x93, - 0x7B, - 0x93, - 0x64, - 0x00, - 0x0E, - 0x31, - 0x00, - 0x11, - 0x64, - 0x65, - 0x30, - 0x17, - 0x31, - 0x17, - 0x31, - 0x64, - 0x93, - 0x17, - 0x01, - 0x16, - 0x0D, - 0x0C, - 0x16, - 0x0D, - 0x0C, - 0x00, - 0x04, - 0x01, - 0x00, - 0x36, - 0x0D, - 0x4F, - 0x31, - 0x0D, - 0x16, - 0x16, - 0x17, - 0x42, - 0x35, - 0x58, - 0x17, - 0x31, - 0x17, - 0x2F, - 0x17, - 0x17, - 0x0D, - 0x0D, - 0x16, - 0x01, - 0x01, - 0x2F, - 0x4E, - 0x0D, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x01, - 0x0C, - 0x24, - 0x0C, - 0x01, - 0x1D, - 0x35, - 0x42, - 0x0D, - 0x0D, - 0x16, - 0x0D, - 0x16, - 0x17, - 0x16, - 0x0D, - 0x17, - 0x0D, - 0x0D, - 0x17, - 0x0D, - 0x31, - 0x79, - 0x30, - 0x04, - 0x32, - 0x00, - 0x0F, - 0x64, - 0x32, - 0x64, - 0x50, - 0x64, - 0x50, - 0x64, - 0x65, - 0x65, - 0x64, - 0x65, - 0x65, - 0x65, - 0x93, - 0x50, - 0x00, - 0x00, - 0x00, - 0x04, - 0x85, - 0x00, - 0x0C, - 0x6B, - 0x87, - 0x85, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x9B, - 0x82, - 0x9B, - 0x85, - 0x05, - 0x80, - 0x00, - 0x28, - 0x99, - 0x80, - 0x99, - 0x99, - 0x67, - 0x99, - 0xAE, - 0xAE, - 0xC4, - 0xAD, - 0x96, - 0xC4, - 0xC4, - 0x99, - 0x82, - 0x80, - 0x80, - 0x80, - 0x99, - 0x80, - 0x99, - 0x80, - 0x99, - 0x67, - 0xAE, - 0x7C, - 0xAE, - 0x96, - 0xC4, - 0xC4, - 0xC3, - 0x7A, - 0xAC, - 0xAC, - 0x7A, - 0xAC, - 0xAC, - 0x7B, - 0xAC, - 0xAC, - 0x0D, - 0x7B, - 0x00, - 0x0A, - 0x65, - 0x7B, - 0x7B, - 0x65, - 0x7B, - 0x65, - 0x7B, - 0x3D, - 0x3D, - 0x65, - 0x05, - 0x3D, - 0x00, - 0x27, - 0x65, - 0x50, - 0x3D, - 0x50, - 0x65, - 0x65, - 0x7B, - 0x66, - 0x66, - 0x66, - 0x3D, - 0x51, - 0x27, - 0x51, - 0x3D, - 0x3D, - 0x3D, - 0x51, - 0x3E, - 0x83, - 0x27, - 0x83, - 0x68, - 0x27, - 0x27, - 0x3D, - 0x3D, - 0x3D, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x08, - 0xFD, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0x05, - 0x35, - 0x00, - 0x08, - 0xFE, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0x04, - 0x35, - 0x00, - 0x1A, - 0xE7, - 0xFB, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xBB, - 0x16, - 0x0C, - 0x0D, - 0x01, - 0x0D, - 0x0D, - 0x0D, - 0x01, - 0x16, - 0x17, - 0x17, - 0x1C, - 0x35, - 0x35, - 0x1B, - 0x04, - 0x17, - 0x00, - 0x15, - 0x30, - 0x31, - 0x17, - 0x17, - 0x2F, - 0x17, - 0x30, - 0x4F, - 0x31, - 0x31, - 0x30, - 0x4F, - 0x83, - 0xE7, - 0xE7, - 0x25, - 0x17, - 0x17, - 0x31, - 0x30, - 0x64, - 0x00, - 0x04, - 0x4F, - 0x00, - 0x03, - 0x63, - 0x93, - 0x30, - 0x00, - 0x09, - 0x31, - 0x00, - 0x35, - 0x17, - 0x2F, - 0x17, - 0x30, - 0x63, - 0x7B, - 0x4F, - 0x30, - 0x30, - 0x31, - 0x64, - 0xA9, - 0x64, - 0x17, - 0x16, - 0x17, - 0x17, - 0x16, - 0x16, - 0x01, - 0x01, - 0x24, - 0x16, - 0x16, - 0x16, - 0x30, - 0x4F, - 0x16, - 0x16, - 0x0D, - 0x1D, - 0x35, - 0x9E, - 0x31, - 0x17, - 0x2F, - 0x17, - 0x16, - 0x16, - 0x0C, - 0x0C, - 0x0C, - 0x16, - 0x0C, - 0x01, - 0x17, - 0x4E, - 0x16, - 0x00, - 0x0C, - 0x0C, - 0x01, - 0x24, - 0x00, - 0x05, - 0x01, - 0x00, - 0x0C, - 0x1D, - 0x35, - 0x42, - 0x01, - 0x01, - 0x16, - 0x01, - 0x0D, - 0x17, - 0x0D, - 0x16, - 0x0D, - 0x05, - 0x17, - 0x00, - 0x15, - 0x31, - 0x79, - 0x79, - 0x79, - 0x4F, - 0x79, - 0x4F, - 0x32, - 0x64, - 0x64, - 0x50, - 0x64, - 0x50, - 0x64, - 0x64, - 0x65, - 0x64, - 0x65, - 0x93, - 0x65, - 0x32, - 0x00, - 0x00, - 0x00, - 0x04, - 0x85, - 0x01, - 0x87, - 0x01, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x06, - 0x9B, - 0x82, - 0x82, - 0x82, - 0x9B, - 0x9B, - 0x06, - 0x80, - 0x00, - 0x28, - 0x99, - 0x67, - 0x99, - 0xAE, - 0x99, - 0x7C, - 0xAE, - 0x96, - 0xC4, - 0xC4, - 0x96, - 0xAB, - 0xC4, - 0x80, - 0x80, - 0x99, - 0x80, - 0x52, - 0x99, - 0x99, - 0x80, - 0xAE, - 0x7F, - 0xAE, - 0xAE, - 0xC4, - 0xAD, - 0x96, - 0xAB, - 0xBF, - 0xAC, - 0x7A, - 0xA9, - 0xAC, - 0x7B, - 0xA9, - 0xAC, - 0x7B, - 0x7B, - 0xA9, - 0x09, - 0x7B, - 0x00, - 0x07, - 0x65, - 0x7B, - 0x65, - 0x7B, - 0x7B, - 0x65, - 0x7B, - 0x00, - 0x0B, - 0x65, - 0x00, - 0x27, - 0x50, - 0x65, - 0x50, - 0x65, - 0x50, - 0x65, - 0x7B, - 0x65, - 0x7B, - 0x65, - 0x51, - 0x3D, - 0x51, - 0x3D, - 0x27, - 0x3D, - 0x27, - 0x27, - 0x27, - 0x68, - 0x3D, - 0x27, - 0x27, - 0x3E, - 0x3E, - 0x3D, - 0x3D, - 0x3D, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x09, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xFF, - 0x00, - 0x04, - 0x35, - 0x00, - 0x08, - 0xFF, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xFE, - 0x04, - 0x35, - 0x00, - 0x43, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xBB, - 0x01, - 0x01, - 0x0D, - 0x0C, - 0x16, - 0x16, - 0x16, - 0x17, - 0x17, - 0x31, - 0x31, - 0x41, - 0x35, - 0x35, - 0x84, - 0x30, - 0x30, - 0x30, - 0x31, - 0x4F, - 0x4F, - 0x2E, - 0x31, - 0x31, - 0x2F, - 0x31, - 0x4F, - 0x17, - 0x2F, - 0x16, - 0x17, - 0x31, - 0x7D, - 0x3D, - 0x31, - 0x31, - 0x64, - 0x31, - 0x2F, - 0x30, - 0x2E, - 0x30, - 0x30, - 0x31, - 0x30, - 0x4F, - 0x63, - 0x63, - 0x4F, - 0x2E, - 0x31, - 0x2E, - 0x17, - 0x2E, - 0x31, - 0x2E, - 0x00, - 0x04, - 0x31, - 0x00, - 0x24, - 0x2F, - 0x63, - 0xA7, - 0x93, - 0x30, - 0x4D, - 0x30, - 0x30, - 0x93, - 0x93, - 0x31, - 0x16, - 0x16, - 0x17, - 0x01, - 0x0A, - 0x0A, - 0x01, - 0x16, - 0x16, - 0x16, - 0x0C, - 0x2F, - 0x4E, - 0x01, - 0x0A, - 0x18, - 0x19, - 0x32, - 0x77, - 0x4F, - 0x17, - 0x16, - 0x0C, - 0x16, - 0x16, - 0x05, - 0x0C, - 0x00, - 0x20, - 0x24, - 0x16, - 0x4E, - 0x16, - 0x24, - 0x01, - 0x24, - 0x0B, - 0x24, - 0x0A, - 0x24, - 0x0A, - 0x24, - 0x1D, - 0x35, - 0x42, - 0x01, - 0x24, - 0x24, - 0x24, - 0x0C, - 0x0C, - 0x24, - 0x01, - 0x24, - 0x01, - 0x24, - 0x01, - 0x01, - 0x01, - 0x0D, - 0x17, - 0x0A, - 0x31, - 0x00, - 0x09, - 0x79, - 0x32, - 0x79, - 0x32, - 0x4F, - 0x32, - 0x64, - 0x32, - 0x31, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x85, - 0x85, - 0x85, - 0x55, - 0x6B, - 0x9B, - 0x9B, - 0x6A, - 0x9B, - 0x00, - 0x04, - 0x82, - 0x00, - 0x19, - 0x80, - 0x6A, - 0x9B, - 0x80, - 0x80, - 0x80, - 0x52, - 0x99, - 0x67, - 0x99, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0xAD, - 0xC4, - 0xAB, - 0xAB, - 0xAB, - 0xC4, - 0x52, - 0x80, - 0x00, - 0x04, - 0x99, - 0x00, - 0x11, - 0x80, - 0x67, - 0x7C, - 0x7C, - 0x96, - 0xC4, - 0x96, - 0x96, - 0xBF, - 0xBF, - 0x7A, - 0xAC, - 0x7A, - 0xAC, - 0x7A, - 0x7B, - 0x7A, - 0x00, - 0x0D, - 0x7B, - 0x01, - 0x65, - 0x01, - 0x7B, - 0x05, - 0x65, - 0x01, - 0x63, - 0x06, - 0x65, - 0x00, - 0x2A, - 0x64, - 0x50, - 0x64, - 0x64, - 0x32, - 0x4F, - 0x32, - 0x4F, - 0x32, - 0x64, - 0x93, - 0x7B, - 0x65, - 0x65, - 0x65, - 0x3D, - 0x3D, - 0x27, - 0x27, - 0x3D, - 0x27, - 0x3E, - 0x84, - 0x27, - 0x27, - 0x27, - 0x68, - 0x83, - 0x26, - 0x27, - 0x50, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x09, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFC, - 0x00, - 0x05, - 0x35, - 0x00, - 0x07, - 0xFD, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0x00, - 0x04, - 0x35, - 0x00, - 0x0E, - 0xE7, - 0xFB, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xBB, - 0x0C, - 0x16, - 0x16, - 0x04, - 0x17, - 0x00, - 0x31, - 0x2F, - 0x17, - 0x2F, - 0x30, - 0x65, - 0x9E, - 0x28, - 0x65, - 0x4F, - 0x4F, - 0x30, - 0x3C, - 0x64, - 0x63, - 0x30, - 0x3C, - 0x4F, - 0x3C, - 0x4F, - 0x64, - 0x2E, - 0x17, - 0x17, - 0x2E, - 0x2F, - 0x64, - 0x30, - 0x2E, - 0x30, - 0xA7, - 0x63, - 0x93, - 0x63, - 0x30, - 0x2F, - 0x2E, - 0x2F, - 0x17, - 0x2E, - 0x2E, - 0x30, - 0x4E, - 0x63, - 0x4F, - 0x2E, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x00, - 0x04, - 0x2F, - 0x00, - 0x12, - 0x30, - 0x30, - 0x2F, - 0x64, - 0xA9, - 0x4F, - 0x30, - 0x4F, - 0x2E, - 0x4F, - 0x93, - 0x64, - 0x16, - 0x16, - 0x24, - 0x01, - 0x0A, - 0x0B, - 0x04, - 0x16, - 0x00, - 0x0D, - 0x24, - 0x17, - 0x64, - 0x24, - 0x0B, - 0x16, - 0x16, - 0x2F, - 0x63, - 0x30, - 0x0C, - 0x0C, - 0x16, - 0x00, - 0x07, - 0x0C, - 0x00, - 0x1A, - 0x00, - 0x16, - 0x4E, - 0x16, - 0x0A, - 0x0B, - 0x24, - 0x0B, - 0x24, - 0x0B, - 0x0B, - 0x0B, - 0x28, - 0xE7, - 0x0F, - 0x01, - 0x24, - 0x24, - 0x0C, - 0x0C, - 0x16, - 0x0C, - 0x0C, - 0x0C, - 0x16, - 0x0C, - 0x04, - 0x16, - 0x01, - 0x17, - 0x04, - 0x31, - 0x00, - 0x0F, - 0x79, - 0x30, - 0x79, - 0x4F, - 0x79, - 0x31, - 0x4F, - 0x4F, - 0x4F, - 0x64, - 0x64, - 0x64, - 0x65, - 0x64, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x85, - 0x6A, - 0x6B, - 0x87, - 0x05, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x06, - 0x80, - 0x9B, - 0x6A, - 0x80, - 0x80, - 0x80, - 0x04, - 0x99, - 0x00, - 0x51, - 0x67, - 0xAE, - 0x98, - 0xAE, - 0x96, - 0xC4, - 0x96, - 0x96, - 0xAB, - 0xC3, - 0xAB, - 0xC3, - 0xAA, - 0x99, - 0x80, - 0x7F, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x98, - 0xC4, - 0x96, - 0x96, - 0x96, - 0xC3, - 0x7A, - 0xBF, - 0x7A, - 0xA9, - 0x7A, - 0x7B, - 0xA9, - 0x7B, - 0xA9, - 0xA9, - 0x7B, - 0xA9, - 0x7B, - 0x7B, - 0x7B, - 0x77, - 0x7B, - 0x7B, - 0x93, - 0x7B, - 0x7B, - 0x93, - 0x63, - 0x65, - 0x63, - 0x65, - 0x93, - 0x63, - 0x65, - 0x65, - 0x65, - 0x64, - 0x50, - 0x64, - 0x64, - 0x64, - 0x32, - 0x64, - 0x79, - 0x4F, - 0x79, - 0x4F, - 0x4F, - 0x30, - 0x79, - 0x4F, - 0x91, - 0x63, - 0x64, - 0x64, - 0x93, - 0x65, - 0x65, - 0x3D, - 0x00, - 0x04, - 0x27, - 0x00, - 0x14, - 0x68, - 0x3E, - 0x27, - 0x27, - 0x27, - 0x3E, - 0x3E, - 0x27, - 0x26, - 0xF0, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x0A, - 0xFD, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xFB, - 0xFF, - 0xFB, - 0xFA, - 0xFF, - 0x04, - 0x35, - 0x00, - 0x07, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xFE, - 0x00, - 0x04, - 0x35, - 0x00, - 0x59, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xBB, - 0x17, - 0x2F, - 0x2F, - 0x2E, - 0x30, - 0x30, - 0x30, - 0x4F, - 0x4F, - 0x4E, - 0x4E, - 0x77, - 0x93, - 0x2E, - 0x64, - 0xA7, - 0x77, - 0x77, - 0x63, - 0x93, - 0x63, - 0x3C, - 0x4F, - 0x4F, - 0x3C, - 0x64, - 0x63, - 0x3C, - 0x2E, - 0x30, - 0x30, - 0x2E, - 0x64, - 0x2E, - 0x16, - 0x2E, - 0x30, - 0x16, - 0x2F, - 0x64, - 0x93, - 0x91, - 0x4F, - 0x2F, - 0x16, - 0x14, - 0x2F, - 0x2E, - 0x2E, - 0x30, - 0x4E, - 0x63, - 0x4F, - 0x2E, - 0x2F, - 0x2E, - 0x2E, - 0x2F, - 0x2F, - 0x2E, - 0x3C, - 0x2E, - 0x2F, - 0x2F, - 0x64, - 0x77, - 0x3C, - 0x30, - 0x3C, - 0x2E, - 0x4D, - 0x63, - 0x93, - 0x2F, - 0x0C, - 0x0B, - 0x0B, - 0x00, - 0x00, - 0x05, - 0x16, - 0x00, - 0x0C, - 0x0B, - 0x16, - 0x4E, - 0x61, - 0x0C, - 0x0C, - 0x16, - 0x16, - 0x60, - 0x30, - 0x00, - 0x23, - 0x05, - 0x0C, - 0x00, - 0x08, - 0x00, - 0x0C, - 0x00, - 0x0B, - 0x16, - 0x15, - 0x00, - 0x0B, - 0x06, - 0x00, - 0x00, - 0x03, - 0x0D, - 0x18, - 0x0D, - 0x00, - 0x04, - 0x0C, - 0x00, - 0x05, - 0x16, - 0x16, - 0x0C, - 0x16, - 0x0C, - 0x00, - 0x07, - 0x16, - 0x00, - 0x0B, - 0x2F, - 0x30, - 0x79, - 0x30, - 0x30, - 0x79, - 0x4F, - 0x79, - 0x4F, - 0x31, - 0x31, - 0x00, - 0x05, - 0x64, - 0x00, - 0x03, - 0x93, - 0x91, - 0x50, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x85, - 0x85, - 0x87, - 0x6B, - 0x6A, - 0x9B, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x00, - 0x2F, - 0x80, - 0x80, - 0x82, - 0x9B, - 0x67, - 0x80, - 0x67, - 0x7F, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x98, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xC3, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0xAB, - 0x99, - 0x67, - 0x99, - 0x7C, - 0x98, - 0x80, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xBF, - 0xBF, - 0xA9, - 0xA9, - 0x7A, - 0xA9, - 0xA9, - 0xA9, - 0x7B, - 0xA9, - 0x00, - 0x06, - 0x7B, - 0x00, - 0x0D, - 0x93, - 0x7B, - 0x63, - 0x93, - 0x7B, - 0xA7, - 0x93, - 0x65, - 0x93, - 0x65, - 0x63, - 0x64, - 0x65, - 0x00, - 0x07, - 0x64, - 0x01, - 0x4F, - 0x01, - 0x64, - 0x05, - 0x4F, - 0x00, - 0x06, - 0x30, - 0x79, - 0x30, - 0x31, - 0x64, - 0x93, - 0x04, - 0x64, - 0x00, - 0x1A, - 0x63, - 0x65, - 0x3D, - 0x27, - 0x26, - 0x27, - 0x33, - 0x3E, - 0x3E, - 0x27, - 0x27, - 0x33, - 0x3E, - 0x27, - 0x27, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF8, - 0xFB, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x0B, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xFE, - 0x35, - 0xF9, - 0xFA, - 0xF6, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x06, - 0xF9, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0x04, - 0x35, - 0x00, - 0x05, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x09, - 0xF8, - 0xA1, - 0x4F, - 0x30, - 0x30, - 0x4F, - 0x30, - 0x2E, - 0x2E, - 0x00, - 0x04, - 0x2F, - 0x00, - 0x61, - 0x3C, - 0x4C, - 0x2E, - 0x2E, - 0x3C, - 0x3C, - 0x60, - 0x4C, - 0x4C, - 0x4F, - 0x3C, - 0x3C, - 0x3C, - 0x4C, - 0x64, - 0x63, - 0x2E, - 0x3C, - 0x4C, - 0x4C, - 0x4C, - 0x63, - 0x2F, - 0x16, - 0x30, - 0x2E, - 0x16, - 0x09, - 0x2F, - 0x22, - 0x30, - 0x63, - 0x64, - 0x14, - 0x16, - 0x16, - 0x16, - 0x2F, - 0x22, - 0x2E, - 0x2E, - 0x4E, - 0x63, - 0x4F, - 0x2E, - 0x22, - 0x2F, - 0x2E, - 0x3C, - 0x3C, - 0x2F, - 0x2F, - 0x2F, - 0x63, - 0x64, - 0x3C, - 0x3C, - 0x4D, - 0x3C, - 0x2E, - 0x2E, - 0x4F, - 0xA7, - 0x4F, - 0x23, - 0x16, - 0x16, - 0x16, - 0x23, - 0x16, - 0x16, - 0x23, - 0x0C, - 0x0B, - 0x16, - 0x4C, - 0x4F, - 0x0C, - 0x0C, - 0x20, - 0x0C, - 0x3C, - 0x4C, - 0x16, - 0x0C, - 0x0C, - 0x0C, - 0x00, - 0x00, - 0x20, - 0x0C, - 0x0C, - 0x0B, - 0x0A, - 0x0C, - 0x4C, - 0x0C, - 0x00, - 0x08, - 0x0B, - 0x00, - 0x0A, - 0x00, - 0x24, - 0x00, - 0x0C, - 0x0B, - 0x16, - 0x16, - 0x0C, - 0x0C, - 0x20, - 0x08, - 0x16, - 0x00, - 0x12, - 0x2E, - 0x4D, - 0x30, - 0x79, - 0x4F, - 0x30, - 0x4F, - 0x4F, - 0x4F, - 0x4D, - 0x31, - 0x4F, - 0x64, - 0x64, - 0x64, - 0x63, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6A, - 0x6B, - 0x55, - 0x9B, - 0x9B, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x44, - 0x80, - 0x80, - 0x80, - 0x82, - 0x9B, - 0x99, - 0x67, - 0x67, - 0x67, - 0xAE, - 0x67, - 0xAE, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0xAB, - 0xC3, - 0xAB, - 0xAA, - 0xAB, - 0xAA, - 0xC0, - 0xAA, - 0xD0, - 0x96, - 0x67, - 0x7C, - 0xAE, - 0x7C, - 0x99, - 0x98, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xBF, - 0x7A, - 0xA9, - 0x7A, - 0xA9, - 0xA9, - 0xA9, - 0x7B, - 0xA9, - 0x7B, - 0xA9, - 0x7B, - 0xA7, - 0xA7, - 0x7B, - 0x77, - 0x7B, - 0x77, - 0x7B, - 0x93, - 0x7B, - 0x77, - 0x7B, - 0x63, - 0x64, - 0x93, - 0x63, - 0x65, - 0x63, - 0x64, - 0x63, - 0x05, - 0x64, - 0x05, - 0x4F, - 0x00, - 0x27, - 0x30, - 0x79, - 0x30, - 0x79, - 0x30, - 0x4D, - 0x31, - 0x30, - 0x63, - 0x64, - 0x64, - 0x64, - 0x4F, - 0x64, - 0x64, - 0x65, - 0x3D, - 0x27, - 0x27, - 0x27, - 0x33, - 0x83, - 0x27, - 0x33, - 0x27, - 0x84, - 0x83, - 0x0E, - 0xEE, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x0B, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF6, - 0xE7, - 0x35, - 0xE7, - 0xF6, - 0xFA, - 0xF9, - 0x00, - 0x04, - 0x35, - 0x00, - 0x06, - 0xE7, - 0xF6, - 0xF8, - 0xF7, - 0xF8, - 0xFE, - 0x04, - 0x35, - 0x00, - 0x12, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0x76, - 0x30, - 0x2F, - 0x2F, - 0x14, - 0x16, - 0x2F, - 0x17, - 0x04, - 0x2F, - 0x00, - 0x04, - 0x32, - 0x3E, - 0x3E, - 0x31, - 0x04, - 0x3C, - 0x00, - 0x5A, - 0x3D, - 0x68, - 0x51, - 0x4C, - 0x3C, - 0x3C, - 0x4C, - 0x93, - 0x3E, - 0x68, - 0x65, - 0x3C, - 0x3C, - 0x4E, - 0x32, - 0x53, - 0x89, - 0x54, - 0x26, - 0x16, - 0x2F, - 0x26, - 0x33, - 0x4F, - 0x64, - 0x33, - 0x33, - 0x18, - 0x09, - 0x16, - 0x16, - 0x14, - 0x2E, - 0x25, - 0x1A, - 0x68, - 0x93, - 0x30, - 0x27, - 0x3E, - 0x65, - 0x2E, - 0x2F, - 0x31, - 0x3E, - 0xAF, - 0x30, - 0x3C, - 0x3C, - 0x4D, - 0x2E, - 0x3D, - 0x3E, - 0x3D, - 0x4D, - 0x63, - 0x91, - 0x23, - 0x16, - 0x26, - 0x1A, - 0x18, - 0x23, - 0x0C, - 0x23, - 0x0B, - 0x0C, - 0x0C, - 0x3C, - 0x4C, - 0x0C, - 0x0C, - 0x0C, - 0x00, - 0x2E, - 0x75, - 0x0C, - 0x11, - 0x0C, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x0A, - 0x0B, - 0x0B, - 0x09, - 0x4C, - 0x00, - 0x0A, - 0x0B, - 0x00, - 0x03, - 0x0C, - 0x00, - 0x20, - 0x00, - 0x06, - 0x0C, - 0x07, - 0x16, - 0x00, - 0x11, - 0x2E, - 0x30, - 0x30, - 0x4D, - 0x60, - 0x30, - 0x4F, - 0x4F, - 0x4F, - 0x31, - 0x4D, - 0x4F, - 0x64, - 0x64, - 0x63, - 0x64, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x85, - 0x87, - 0x85, - 0x82, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x0C, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x82, - 0x82, - 0x99, - 0x67, - 0x99, - 0x67, - 0x7F, - 0x05, - 0x7C, - 0x00, - 0x32, - 0x96, - 0xAB, - 0xC3, - 0xAB, - 0xAB, - 0xC3, - 0xAA, - 0xC0, - 0xAA, - 0xBE, - 0xBE, - 0xAA, - 0x98, - 0x7C, - 0x7C, - 0x7C, - 0x99, - 0x96, - 0x96, - 0xAD, - 0xAB, - 0xAA, - 0x7A, - 0x7A, - 0xA9, - 0x7A, - 0x7A, - 0xA9, - 0x64, - 0x4F, - 0x93, - 0xA9, - 0xA7, - 0x7B, - 0x7B, - 0x7B, - 0x77, - 0x7B, - 0x77, - 0x7B, - 0x77, - 0x93, - 0x63, - 0x7B, - 0x93, - 0x93, - 0x63, - 0x63, - 0x64, - 0x63, - 0x08, - 0x64, - 0x05, - 0x4F, - 0x01, - 0x76, - 0x01, - 0x4F, - 0x04, - 0x30, - 0x00, - 0x06, - 0x4D, - 0x4D, - 0x64, - 0x64, - 0x4F, - 0x8F, - 0x04, - 0x4F, - 0x00, - 0x17, - 0x65, - 0x26, - 0x27, - 0x27, - 0x0E, - 0x53, - 0x33, - 0x33, - 0x1A, - 0x53, - 0x33, - 0x0E, - 0xDD, - 0xF0, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x0C, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF9, - 0x35, - 0x35, - 0x35, - 0xF9, - 0xF8, - 0xFB, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x05, - 0xF9, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0x00, - 0x04, - 0x35, - 0x00, - 0x04, - 0xE7, - 0xFB, - 0xF8, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x09, - 0xF8, - 0xF0, - 0x2F, - 0x16, - 0x2F, - 0x17, - 0x2F, - 0x2F, - 0x14, - 0x00, - 0x05, - 0x2F, - 0x00, - 0x17, - 0x3E, - 0x35, - 0xE7, - 0x3D, - 0x2E, - 0x3C, - 0x3C, - 0x3C, - 0x41, - 0x35, - 0x29, - 0x60, - 0x3C, - 0x4C, - 0x48, - 0x3D, - 0xE7, - 0x35, - 0x9A, - 0xA7, - 0x75, - 0x7D, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x3A, - 0x58, - 0x51, - 0x42, - 0xE7, - 0x66, - 0x64, - 0x29, - 0x35, - 0x29, - 0x17, - 0x23, - 0x23, - 0x09, - 0x18, - 0x42, - 0x35, - 0x0F, - 0x30, - 0x93, - 0xE7, - 0x35, - 0x40, - 0x22, - 0x22, - 0x27, - 0x35, - 0x35, - 0x51, - 0x3C, - 0x3C, - 0x3C, - 0x4D, - 0x41, - 0x35, - 0x42, - 0x30, - 0x39, - 0x75, - 0xA6, - 0x31, - 0x42, - 0x35, - 0x1B, - 0x0C, - 0x23, - 0x0C, - 0x20, - 0x0B, - 0x0B, - 0x0B, - 0x3A, - 0x4C, - 0x20, - 0x0B, - 0x0B, - 0x0B, - 0x2D, - 0x4C, - 0x06, - 0x0B, - 0x01, - 0x0A, - 0x04, - 0x0B, - 0x00, - 0x09, - 0x16, - 0x4C, - 0x11, - 0x0B, - 0x0B, - 0x08, - 0x0B, - 0x0B, - 0x08, - 0x00, - 0x05, - 0x0B, - 0x00, - 0x0A, - 0x0C, - 0x20, - 0x0C, - 0x0C, - 0x20, - 0x0C, - 0x0C, - 0x0C, - 0x16, - 0x20, - 0x04, - 0x16, - 0x00, - 0x11, - 0x3A, - 0x4D, - 0x4D, - 0x30, - 0x4D, - 0x30, - 0x60, - 0x4F, - 0x4F, - 0x60, - 0x31, - 0x4D, - 0x4F, - 0x64, - 0x63, - 0x64, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6B, - 0x6B, - 0x9B, - 0x6A, - 0x05, - 0x82, - 0x00, - 0x0B, - 0x80, - 0x52, - 0x80, - 0x80, - 0x99, - 0x80, - 0x82, - 0x67, - 0x67, - 0x67, - 0x98, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x2E, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0xC3, - 0xAA, - 0xAA, - 0xAA, - 0xBE, - 0xD0, - 0xBE, - 0xBC, - 0xAB, - 0x7C, - 0x7C, - 0x96, - 0x99, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0xBF, - 0x7A, - 0x92, - 0xA9, - 0xA9, - 0x92, - 0x77, - 0x30, - 0x31, - 0x64, - 0xA9, - 0x7B, - 0xA7, - 0x77, - 0xA7, - 0x7B, - 0x77, - 0x7B, - 0x63, - 0x93, - 0x93, - 0x63, - 0x77, - 0x77, - 0x04, - 0x63, - 0x00, - 0x03, - 0x4E, - 0x64, - 0x4E, - 0x00, - 0x04, - 0x64, - 0x05, - 0x4F, - 0x00, - 0x29, - 0x30, - 0x60, - 0x30, - 0x30, - 0x30, - 0x4D, - 0x4D, - 0x4D, - 0x31, - 0x4D, - 0x30, - 0x4F, - 0x75, - 0x4F, - 0x60, - 0x60, - 0x30, - 0x60, - 0x64, - 0x50, - 0x26, - 0x0E, - 0x1A, - 0x1A, - 0x33, - 0x9C, - 0x3E, - 0x9C, - 0x33, - 0x33, - 0x33, - 0xF2, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x04, - 0x35, - 0x00, - 0x04, - 0xFD, - 0xFA, - 0xFA, - 0xF6, - 0x05, - 0x35, - 0x00, - 0x03, - 0xF6, - 0xFA, - 0xFE, - 0x00, - 0x05, - 0x35, - 0x00, - 0x04, - 0xFC, - 0xFA, - 0xFA, - 0xFD, - 0x04, - 0x35, - 0x00, - 0x0E, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF0, - 0x16, - 0x2F, - 0x2F, - 0x14, - 0x04, - 0x2F, - 0x00, - 0x1F, - 0x14, - 0x2F, - 0x2F, - 0x2F, - 0x1B, - 0x35, - 0x35, - 0x3D, - 0x22, - 0x2E, - 0x2C, - 0x3C, - 0x58, - 0x35, - 0x29, - 0x3C, - 0x3C, - 0x3C, - 0x2E, - 0x3D, - 0xE7, - 0x35, - 0x53, - 0x74, - 0x63, - 0x29, - 0x35, - 0x35, - 0x58, - 0x57, - 0x42, - 0x00, - 0x04, - 0x35, - 0x00, - 0x2B, - 0x7D, - 0x2C, - 0x27, - 0x35, - 0x35, - 0x28, - 0x09, - 0x09, - 0x16, - 0x58, - 0x35, - 0xE7, - 0x25, - 0x22, - 0x32, - 0x35, - 0x35, - 0x54, - 0x2D, - 0x14, - 0x3E, - 0x35, - 0x35, - 0x51, - 0x48, - 0x3C, - 0x2C, - 0x39, - 0x58, - 0x35, - 0x42, - 0x30, - 0x39, - 0x22, - 0x4D, - 0x7B, - 0xE7, - 0x35, - 0x1C, - 0x09, - 0x16, - 0x20, - 0x16, - 0x00, - 0x04, - 0x0B, - 0x00, - 0x1A, - 0x23, - 0x3C, - 0x0B, - 0x0A, - 0x0B, - 0x0B, - 0x09, - 0x3C, - 0x0B, - 0x0A, - 0x0A, - 0x0B, - 0x0A, - 0x0B, - 0x0B, - 0x11, - 0x0B, - 0x0B, - 0x08, - 0x23, - 0x4C, - 0x0B, - 0x08, - 0x0B, - 0x0B, - 0x08, - 0x06, - 0x0B, - 0x00, - 0x1F, - 0x20, - 0x0C, - 0x11, - 0x0C, - 0x0C, - 0x20, - 0x0C, - 0x20, - 0x20, - 0x16, - 0x16, - 0x20, - 0x16, - 0x23, - 0x16, - 0x2F, - 0x4D, - 0x4D, - 0x3C, - 0x60, - 0x3C, - 0x76, - 0x60, - 0x4F, - 0x60, - 0x4D, - 0x4D, - 0x4D, - 0x4F, - 0x4D, - 0x31, - 0x00, - 0x00, - 0x00, - 0x01, - 0x55, - 0x01, - 0x6A, - 0x06, - 0x82, - 0x04, - 0x80, - 0x00, - 0x05, - 0x52, - 0x67, - 0x9B, - 0x85, - 0x67, - 0x00, - 0x05, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x30, - 0xAB, - 0xAB, - 0xAB, - 0xC0, - 0xAA, - 0xAA, - 0xC0, - 0xAA, - 0xBE, - 0xBE, - 0xD0, - 0x94, - 0xD0, - 0x96, - 0x7C, - 0x7C, - 0x82, - 0x7C, - 0xAB, - 0xAB, - 0xAA, - 0x92, - 0xA9, - 0x92, - 0xA9, - 0x92, - 0xA9, - 0xA9, - 0x63, - 0x64, - 0x77, - 0x90, - 0x77, - 0x7B, - 0x77, - 0x7B, - 0x77, - 0x77, - 0x93, - 0x77, - 0x93, - 0x63, - 0x63, - 0x90, - 0xA9, - 0x63, - 0x63, - 0x91, - 0x06, - 0x64, - 0x00, - 0x30, - 0x4F, - 0x4F, - 0x4C, - 0x4F, - 0x4F, - 0x60, - 0x4F, - 0x60, - 0x30, - 0x4D, - 0x30, - 0x4D, - 0x4D, - 0x30, - 0x4D, - 0x2E, - 0x4D, - 0x75, - 0x60, - 0x4F, - 0x60, - 0x4F, - 0x60, - 0x60, - 0x60, - 0x4F, - 0x64, - 0x50, - 0x0E, - 0x0E, - 0x33, - 0x1A, - 0x33, - 0x33, - 0x33, - 0x1A, - 0x1A, - 0x0E, - 0xEE, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xE7, - 0x04, - 0x35, - 0x00, - 0x04, - 0xFF, - 0xFD, - 0xFE, - 0x42, - 0x04, - 0x35, - 0x00, - 0x05, - 0xE7, - 0xFB, - 0xFA, - 0xF7, - 0x42, - 0x00, - 0x04, - 0x35, - 0x00, - 0x04, - 0x42, - 0xFE, - 0xFD, - 0xFF, - 0x04, - 0x35, - 0x00, - 0x5C, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xA1, - 0x2F, - 0x2F, - 0x14, - 0x2F, - 0x14, - 0x2F, - 0x14, - 0x2D, - 0x2F, - 0x2F, - 0x2D, - 0x14, - 0x3E, - 0x35, - 0x35, - 0x65, - 0x3C, - 0x39, - 0x39, - 0x2E, - 0x58, - 0x35, - 0x29, - 0x2C, - 0x39, - 0x2C, - 0x39, - 0x65, - 0xE7, - 0x35, - 0x53, - 0x48, - 0x50, - 0x35, - 0x35, - 0x40, - 0x4B, - 0x4B, - 0x64, - 0x53, - 0xE7, - 0x35, - 0xE7, - 0x97, - 0x4C, - 0x2C, - 0x40, - 0x35, - 0x35, - 0x26, - 0x22, - 0x1B, - 0x35, - 0x35, - 0x1B, - 0x14, - 0x14, - 0x30, - 0xE7, - 0x35, - 0x54, - 0x4B, - 0x3C, - 0xAF, - 0x35, - 0x35, - 0x51, - 0x48, - 0x48, - 0x39, - 0x2C, - 0x58, - 0x35, - 0x42, - 0x4D, - 0x39, - 0x39, - 0x39, - 0x30, - 0xE7, - 0x35, - 0x1C, - 0x05, - 0x20, - 0x00, - 0x34, - 0x0B, - 0x20, - 0x20, - 0x00, - 0x23, - 0x75, - 0x23, - 0x11, - 0x09, - 0x0B, - 0x23, - 0x4C, - 0x20, - 0x0B, - 0x11, - 0x0B, - 0x11, - 0x0B, - 0x0B, - 0x0B, - 0x08, - 0x0B, - 0x08, - 0x23, - 0x48, - 0x08, - 0x0B, - 0x08, - 0x0B, - 0x08, - 0x0B, - 0x08, - 0x0B, - 0x0B, - 0x11, - 0x0B, - 0x20, - 0x0B, - 0x0B, - 0x11, - 0x00, - 0x20, - 0x0C, - 0x0C, - 0x0C, - 0x20, - 0x0C, - 0x23, - 0x16, - 0x23, - 0x16, - 0x2E, - 0x04, - 0x4D, - 0x00, - 0x0A, - 0x60, - 0x3C, - 0x60, - 0x60, - 0x4F, - 0x60, - 0x4F, - 0x75, - 0x4F, - 0x76, - 0x00, - 0x00, - 0x00, - 0x05, - 0x6B, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x00, - 0x06, - 0x82, - 0x00, - 0x0A, - 0x80, - 0x80, - 0x80, - 0x6B, - 0x6D, - 0x99, - 0x67, - 0x7F, - 0x99, - 0x67, - 0x04, - 0x7C, - 0x00, - 0x16, - 0x96, - 0x96, - 0xAB, - 0xC3, - 0xAB, - 0xC3, - 0xAA, - 0xAA, - 0xC0, - 0xAA, - 0xBE, - 0xBE, - 0xBE, - 0x94, - 0xC0, - 0x7C, - 0x99, - 0xB2, - 0x99, - 0xAB, - 0xAB, - 0xBF, - 0x04, - 0x92, - 0x00, - 0x0C, - 0xA9, - 0x92, - 0xA9, - 0x92, - 0xA9, - 0x90, - 0xA9, - 0xA7, - 0x90, - 0xA7, - 0xA7, - 0xA7, - 0x05, - 0x77, - 0x00, - 0x03, - 0x63, - 0xBD, - 0xBC, - 0x00, - 0x05, - 0x63, - 0x00, - 0x10, - 0x4E, - 0x64, - 0x64, - 0x75, - 0x64, - 0x75, - 0x64, - 0x4C, - 0x4F, - 0x4F, - 0x60, - 0x60, - 0x30, - 0x60, - 0x3C, - 0x3C, - 0x04, - 0x4D, - 0x00, - 0x20, - 0x60, - 0x77, - 0x60, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x2E, - 0x2F, - 0x4D, - 0x60, - 0x32, - 0x26, - 0x0E, - 0x33, - 0x33, - 0x33, - 0x27, - 0x33, - 0x27, - 0x33, - 0x27, - 0xDD, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x0C, - 0x35, - 0x00, - 0x05, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0x00, - 0x0C, - 0x35, - 0x00, - 0x21, - 0xE7, - 0xFB, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x71, - 0x14, - 0x2F, - 0x2F, - 0x2D, - 0x2F, - 0x39, - 0x2E, - 0x3C, - 0x22, - 0x22, - 0x4C, - 0x4C, - 0x9A, - 0x35, - 0x35, - 0x65, - 0x2C, - 0x2C, - 0x39, - 0x39, - 0x41, - 0x35, - 0x29, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x38, - 0x65, - 0xE7, - 0x35, - 0x83, - 0x47, - 0x3D, - 0x35, - 0x35, - 0x3E, - 0x2C, - 0x48, - 0x4B, - 0x8D, - 0xE0, - 0x35, - 0x35, - 0x97, - 0x47, - 0x6F, - 0x4C, - 0x29, - 0x35, - 0x29, - 0x27, - 0xE7, - 0x35, - 0x58, - 0x22, - 0x22, - 0x22, - 0x31, - 0xE7, - 0x35, - 0x53, - 0x48, - 0xA7, - 0xAF, - 0x35, - 0x35, - 0x51, - 0x48, - 0x6F, - 0x47, - 0x2C, - 0x58, - 0x35, - 0x42, - 0x3C, - 0x2C, - 0x39, - 0x39, - 0x30, - 0xE7, - 0x35, - 0x54, - 0x23, - 0x04, - 0x20, - 0x00, - 0x0F, - 0x11, - 0x11, - 0x20, - 0x20, - 0x11, - 0x23, - 0x4B, - 0x23, - 0x10, - 0x14, - 0x11, - 0x14, - 0x47, - 0x20, - 0x0B, - 0x00, - 0x04, - 0x11, - 0x00, - 0x07, - 0x0B, - 0x11, - 0x0B, - 0x08, - 0x0A, - 0x22, - 0x2C, - 0x00, - 0x05, - 0x08, - 0x00, - 0x1A, - 0x0B, - 0x08, - 0x0B, - 0x0B, - 0x11, - 0x14, - 0x09, - 0x20, - 0x00, - 0x20, - 0x0C, - 0x20, - 0x20, - 0x20, - 0x16, - 0x20, - 0x16, - 0x23, - 0x16, - 0x23, - 0x3A, - 0x3C, - 0x3C, - 0x3C, - 0x60, - 0x3C, - 0x04, - 0x60, - 0x00, - 0x05, - 0x4C, - 0x4C, - 0x77, - 0x77, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1D, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x6A, - 0x6A, - 0x67, - 0x80, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x96, - 0x00, - 0x04, - 0xAB, - 0x04, - 0xAA, - 0x00, - 0x22, - 0xD0, - 0xAA, - 0xBE, - 0x96, - 0x7C, - 0x80, - 0x7C, - 0x96, - 0xC3, - 0x92, - 0xBF, - 0xBF, - 0x92, - 0xBF, - 0x92, - 0x92, - 0xA9, - 0x92, - 0xA9, - 0xA9, - 0x90, - 0xA9, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0x77, - 0x77, - 0xA7, - 0x77, - 0x77, - 0x77, - 0x90, - 0x90, - 0x05, - 0x63, - 0x00, - 0x0B, - 0x74, - 0x63, - 0x4E, - 0x4E, - 0x4E, - 0x64, - 0x75, - 0x64, - 0x75, - 0x75, - 0x4F, - 0x00, - 0x04, - 0x60, - 0x00, - 0x25, - 0x3C, - 0x3C, - 0x4D, - 0x3C, - 0x4D, - 0x3C, - 0x4C, - 0x4D, - 0x4D, - 0x4C, - 0x4C, - 0x3C, - 0x23, - 0x20, - 0x2D, - 0x3C, - 0x2E, - 0x25, - 0x26, - 0x27, - 0x27, - 0x1A, - 0x0E, - 0x33, - 0x0E, - 0x33, - 0x0E, - 0x1A, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xFB, - 0xE7, - 0x00, - 0x0B, - 0x35, - 0x00, - 0x07, - 0xFF, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xFF, - 0x00, - 0x0B, - 0x35, - 0x00, - 0x70, - 0xE7, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF0, - 0x2F, - 0x22, - 0x2F, - 0x2D, - 0x4C, - 0x4C, - 0x4C, - 0x60, - 0x4C, - 0x3C, - 0x39, - 0x4C, - 0x2C, - 0x53, - 0x35, - 0x35, - 0x66, - 0x39, - 0x39, - 0x2C, - 0x2C, - 0x58, - 0x35, - 0x29, - 0x47, - 0x48, - 0x2C, - 0x2C, - 0x3D, - 0xE7, - 0x35, - 0x83, - 0x6F, - 0x4E, - 0x42, - 0x35, - 0x42, - 0x65, - 0x48, - 0x2C, - 0x21, - 0xAF, - 0x35, - 0x35, - 0x97, - 0x47, - 0x6F, - 0x6F, - 0x66, - 0xE7, - 0x35, - 0xE7, - 0x35, - 0x42, - 0x31, - 0x14, - 0x14, - 0x05, - 0x31, - 0xE7, - 0x35, - 0x1B, - 0x39, - 0x47, - 0x7D, - 0x35, - 0x35, - 0x51, - 0x47, - 0x5B, - 0x6F, - 0x48, - 0x58, - 0x35, - 0x42, - 0x3C, - 0x48, - 0x2C, - 0x2C, - 0x30, - 0xE7, - 0x35, - 0x54, - 0x8D, - 0x2D, - 0x20, - 0x09, - 0x08, - 0x0A, - 0x08, - 0x20, - 0x20, - 0x20, - 0x11, - 0x20, - 0x75, - 0x48, - 0x12, - 0x20, - 0x08, - 0x2D, - 0x47, - 0x20, - 0x09, - 0x11, - 0x00, - 0x03, - 0x08, - 0x2C, - 0x22, - 0x00, - 0x05, - 0x08, - 0x00, - 0x07, - 0x11, - 0x08, - 0x11, - 0x20, - 0x12, - 0x09, - 0x11, - 0x00, - 0x05, - 0x20, - 0x01, - 0x23, - 0x01, - 0x20, - 0x06, - 0x23, - 0x00, - 0x03, - 0x2F, - 0x3C, - 0x3C, - 0x00, - 0x04, - 0x60, - 0x00, - 0x07, - 0x4C, - 0x4C, - 0x75, - 0x75, - 0x77, - 0xA5, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x04, - 0x82, - 0x00, - 0x10, - 0x80, - 0x82, - 0x80, - 0x52, - 0x52, - 0x99, - 0x52, - 0x67, - 0x99, - 0x7C, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0x98, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x1A, - 0xC3, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0xBE, - 0x94, - 0x94, - 0xBC, - 0xBD, - 0xBC, - 0xBD, - 0xA8, - 0xBD, - 0xBD, - 0xBD, - 0x96, - 0x7C, - 0xC3, - 0xAA, - 0x92, - 0x92, - 0xBA, - 0x92, - 0xA9, - 0x04, - 0x90, - 0x00, - 0x04, - 0xA7, - 0x77, - 0x90, - 0xA7, - 0x06, - 0x77, - 0x04, - 0x63, - 0x00, - 0x0F, - 0x74, - 0x63, - 0x63, - 0x4E, - 0x75, - 0x4E, - 0x75, - 0x75, - 0x64, - 0x4C, - 0x64, - 0x60, - 0x4F, - 0x4C, - 0x60, - 0x00, - 0x04, - 0x3C, - 0x00, - 0x22, - 0x4D, - 0x3C, - 0x4D, - 0x3C, - 0x4D, - 0x4D, - 0x2E, - 0x2E, - 0x39, - 0x2F, - 0x3C, - 0x2D, - 0x2F, - 0x5D, - 0x60, - 0x5D, - 0x20, - 0x0C, - 0x3A, - 0x3A, - 0x2F, - 0x31, - 0x26, - 0x0E, - 0x0E, - 0x1A, - 0x1A, - 0x1A, - 0x0E, - 0x1A, - 0x0E, - 0x1A, - 0xEE, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x03, - 0xF8, - 0xF7, - 0xE7, - 0x00, - 0x0B, - 0x35, - 0x00, - 0x07, - 0xFC, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xFC, - 0x00, - 0x0B, - 0x35, - 0x00, - 0x1A, - 0xE7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xA1, - 0x14, - 0x2F, - 0x2D, - 0x14, - 0x2E, - 0x2E, - 0x14, - 0x14, - 0x22, - 0x48, - 0x2D, - 0x48, - 0x2D, - 0x3E, - 0x35, - 0x35, - 0x65, - 0x04, - 0x22, - 0x00, - 0x18, - 0x41, - 0x35, - 0x29, - 0x47, - 0x74, - 0x48, - 0x2C, - 0x65, - 0xE7, - 0x35, - 0x68, - 0x47, - 0x47, - 0x3E, - 0xE7, - 0x35, - 0x35, - 0x41, - 0x3E, - 0x50, - 0x53, - 0x35, - 0x35, - 0x66, - 0x04, - 0x47, - 0x00, - 0x2B, - 0x83, - 0x35, - 0x35, - 0x35, - 0x26, - 0x10, - 0x09, - 0x09, - 0x20, - 0x31, - 0xE7, - 0x35, - 0x54, - 0x39, - 0x22, - 0x51, - 0x35, - 0x35, - 0x3D, - 0x48, - 0x43, - 0x48, - 0x2C, - 0x41, - 0x35, - 0x42, - 0x4D, - 0x2A, - 0x39, - 0x2A, - 0x30, - 0xE7, - 0x35, - 0x40, - 0x2C, - 0x74, - 0x37, - 0x11, - 0x03, - 0x03, - 0x08, - 0x08, - 0x20, - 0x00, - 0x04, - 0x11, - 0x00, - 0x08, - 0x6F, - 0x14, - 0x08, - 0x11, - 0x08, - 0x23, - 0x47, - 0x11, - 0x09, - 0x08, - 0x00, - 0x29, - 0x03, - 0x36, - 0x14, - 0x03, - 0x08, - 0x08, - 0x03, - 0x08, - 0x08, - 0x08, - 0x11, - 0x11, - 0x11, - 0x0B, - 0x11, - 0x0B, - 0x11, - 0x0B, - 0x20, - 0x0B, - 0x20, - 0x0B, - 0x20, - 0x20, - 0x20, - 0x23, - 0x20, - 0x23, - 0x2D, - 0x4D, - 0x39, - 0x5D, - 0x3C, - 0x5D, - 0x3C, - 0x60, - 0x3C, - 0x60, - 0x75, - 0x75, - 0x76, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x52, - 0x99, - 0x67, - 0x67, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0x7C, - 0xAD, - 0x05, - 0x96, - 0x00, - 0x20, - 0xAB, - 0xAA, - 0xAA, - 0xC0, - 0xAA, - 0xC0, - 0x94, - 0x94, - 0xBC, - 0xBC, - 0xBD, - 0xA8, - 0xA8, - 0xBD, - 0xBD, - 0xB9, - 0x95, - 0x7C, - 0xAB, - 0x95, - 0xBF, - 0xBA, - 0x92, - 0x90, - 0xBA, - 0x90, - 0xA9, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x06, - 0x77, - 0x00, - 0x04, - 0x63, - 0xA6, - 0x63, - 0x74, - 0x04, - 0x63, - 0x00, - 0x28, - 0x4B, - 0x64, - 0x4B, - 0x75, - 0x64, - 0x4C, - 0x75, - 0x60, - 0x4C, - 0x4C, - 0x60, - 0x3C, - 0x3C, - 0x3C, - 0x60, - 0x4D, - 0x3C, - 0x3C, - 0x4D, - 0x4D, - 0x2E, - 0x2E, - 0x2E, - 0x39, - 0x2F, - 0x2E, - 0x5D, - 0x2F, - 0x49, - 0x3C, - 0x4D, - 0x3C, - 0x39, - 0x39, - 0x2D, - 0x23, - 0x3A, - 0x2E, - 0x50, - 0x0E, - 0x05, - 0x1A, - 0x00, - 0x0D, - 0x33, - 0x1A, - 0x33, - 0x0E, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xFD, - 0xE7, - 0x00, - 0x09, - 0x35, - 0x00, - 0x09, - 0xF9, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF9, - 0x00, - 0x0A, - 0x35, - 0x00, - 0x2F, - 0xFD, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x2D, - 0x2D, - 0x2D, - 0x14, - 0x2D, - 0x22, - 0x48, - 0x14, - 0x22, - 0x14, - 0x48, - 0x2D, - 0x48, - 0x2C, - 0x68, - 0x35, - 0x35, - 0x7B, - 0x22, - 0x22, - 0x2A, - 0x22, - 0x41, - 0x35, - 0x29, - 0x12, - 0x2C, - 0x48, - 0x21, - 0x7B, - 0xE7, - 0x35, - 0x9A, - 0x6F, - 0x6F, - 0x43, - 0x3D, - 0x29, - 0xE7, - 0x00, - 0x05, - 0x35, - 0x01, - 0xE7, - 0x01, - 0x66, - 0x04, - 0x47, - 0x00, - 0x2B, - 0x66, - 0x35, - 0x35, - 0xE7, - 0x4F, - 0x14, - 0x1F, - 0x06, - 0x10, - 0x64, - 0xE7, - 0x35, - 0x53, - 0x8D, - 0x70, - 0x3D, - 0x35, - 0x35, - 0x51, - 0x48, - 0x48, - 0x2C, - 0x36, - 0x58, - 0x35, - 0x42, - 0x3C, - 0x39, - 0x44, - 0x44, - 0x30, - 0xE7, - 0x35, - 0x53, - 0x37, - 0x2A, - 0x74, - 0x39, - 0x11, - 0x11, - 0x20, - 0x08, - 0x08, - 0x00, - 0x04, - 0x11, - 0x00, - 0x09, - 0x20, - 0x47, - 0x2B, - 0x08, - 0x11, - 0x08, - 0x10, - 0x43, - 0x11, - 0x00, - 0x0A, - 0x08, - 0x00, - 0x03, - 0x43, - 0x10, - 0x03, - 0x00, - 0x06, - 0x08, - 0x01, - 0x11, - 0x01, - 0x08, - 0x06, - 0x11, - 0x08, - 0x20, - 0x00, - 0x0E, - 0x23, - 0x49, - 0x5D, - 0x5D, - 0x3C, - 0x4D, - 0x3C, - 0x3C, - 0x5D, - 0x60, - 0x70, - 0x4C, - 0x4C, - 0x76, - 0x00, - 0x00, - 0x00, - 0x03, - 0x82, - 0x82, - 0x82, - 0x00, - 0x05, - 0x80, - 0x00, - 0x29, - 0x67, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x80, - 0x52, - 0x7C, - 0x98, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0x94, - 0xBE, - 0x94, - 0xA8, - 0xBD, - 0xA4, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0x92, - 0xBD, - 0x96, - 0xAB, - 0xAA, - 0x94, - 0x92, - 0x92, - 0xA5, - 0x00, - 0x05, - 0x90, - 0x01, - 0x77, - 0x01, - 0xA7, - 0x05, - 0x77, - 0x00, - 0x0A, - 0x63, - 0x8D, - 0x63, - 0x5E, - 0x63, - 0x63, - 0x74, - 0x4B, - 0xA6, - 0x63, - 0x04, - 0x75, - 0x00, - 0x04, - 0x4C, - 0x75, - 0x4C, - 0x4C, - 0x04, - 0x60, - 0x00, - 0x09, - 0x3C, - 0x60, - 0x48, - 0x3C, - 0x4D, - 0x4D, - 0x39, - 0x4D, - 0x5D, - 0x00, - 0x04, - 0x39, - 0x00, - 0x0F, - 0x2D, - 0x3C, - 0x2D, - 0x39, - 0x3C, - 0x48, - 0x5D, - 0x48, - 0x39, - 0x3A, - 0x23, - 0x2D, - 0x48, - 0x79, - 0x19, - 0x00, - 0x06, - 0x1A, - 0x00, - 0x0C, - 0x0E, - 0x1A, - 0x1A, - 0xEE, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xFC, - 0x08, - 0xFE, - 0x00, - 0x0B, - 0xFC, - 0xF7, - 0xF8, - 0xF8, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xFC, - 0x00, - 0x08, - 0xFE, - 0x00, - 0x0F, - 0xFC, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xA1, - 0x2D, - 0x14, - 0x2F, - 0x2D, - 0x2D, - 0x14, - 0x00, - 0x04, - 0x48, - 0x00, - 0x53, - 0x47, - 0x22, - 0x22, - 0x47, - 0x9A, - 0x35, - 0x35, - 0x65, - 0x22, - 0x2A, - 0x22, - 0x22, - 0x41, - 0x35, - 0x29, - 0x2A, - 0x2C, - 0x47, - 0x48, - 0x65, - 0xE7, - 0x35, - 0x83, - 0x8B, - 0xB7, - 0xA2, - 0x74, - 0x47, - 0x65, - 0x53, - 0x89, - 0x6E, - 0xE7, - 0x35, - 0x35, - 0x7B, - 0x47, - 0x47, - 0x47, - 0x63, - 0x42, - 0x35, - 0x35, - 0x35, - 0x9E, - 0x47, - 0x43, - 0x2A, - 0x36, - 0x7B, - 0xE7, - 0x35, - 0x1B, - 0x1F, - 0x6F, - 0x68, - 0x35, - 0x35, - 0x65, - 0x43, - 0x43, - 0x36, - 0x2C, - 0x41, - 0x35, - 0x42, - 0x44, - 0x36, - 0x44, - 0x2A, - 0x2E, - 0xE7, - 0x35, - 0x40, - 0x2A, - 0x37, - 0x37, - 0x6F, - 0x5D, - 0x11, - 0x11, - 0x11, - 0x08, - 0x00, - 0x06, - 0x11, - 0x00, - 0x07, - 0x47, - 0x2B, - 0x08, - 0x11, - 0x08, - 0x2B, - 0x43, - 0x00, - 0x0B, - 0x08, - 0x00, - 0x0D, - 0x43, - 0x11, - 0x03, - 0x08, - 0x08, - 0x03, - 0x08, - 0x11, - 0x11, - 0x08, - 0x08, - 0x11, - 0x08, - 0x00, - 0x05, - 0x11, - 0x05, - 0x20, - 0x00, - 0x04, - 0x2D, - 0x39, - 0x39, - 0x39, - 0x04, - 0x5D, - 0x00, - 0x07, - 0x48, - 0x3C, - 0x48, - 0x60, - 0x75, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x32, - 0x82, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x52, - 0x80, - 0x96, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0x94, - 0xD0, - 0xA8, - 0xBC, - 0xA8, - 0xA4, - 0xBD, - 0xA4, - 0xBD, - 0xB9, - 0xA5, - 0xC3, - 0x95, - 0xAA, - 0xAA, - 0xBD, - 0xBA, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x01, - 0xA7, - 0x01, - 0x90, - 0x06, - 0x77, - 0x00, - 0x32, - 0x63, - 0x77, - 0x63, - 0x74, - 0x74, - 0x63, - 0x74, - 0x5E, - 0x74, - 0x75, - 0x4B, - 0x75, - 0x4C, - 0x75, - 0x75, - 0x60, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x48, - 0x3C, - 0x4D, - 0x48, - 0x39, - 0x3C, - 0x4D, - 0x39, - 0x2E, - 0x39, - 0x39, - 0x49, - 0x39, - 0x49, - 0x39, - 0x49, - 0x70, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x2D, - 0x2B, - 0x23, - 0x2D, - 0x3A, - 0x4A, - 0x18, - 0x0E, - 0x05, - 0x1A, - 0x00, - 0x09, - 0x0E, - 0x33, - 0x0E, - 0x1A, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0x00, - 0x0D, - 0xF8, - 0x00, - 0x07, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0x00, - 0x0C, - 0xF8, - 0x00, - 0x63, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF0, - 0x2E, - 0x14, - 0x2D, - 0x2D, - 0x14, - 0x22, - 0x2D, - 0x39, - 0x3C, - 0x22, - 0x22, - 0x2D, - 0x14, - 0x2A, - 0x22, - 0x68, - 0x35, - 0x35, - 0x53, - 0x2A, - 0x22, - 0x2A, - 0x22, - 0x58, - 0x35, - 0xE7, - 0x65, - 0x47, - 0x6F, - 0x21, - 0x65, - 0xE7, - 0x35, - 0x83, - 0x47, - 0x47, - 0x6F, - 0xB8, - 0xA2, - 0xA2, - 0x5B, - 0x47, - 0x47, - 0x84, - 0x35, - 0x35, - 0x7B, - 0x47, - 0x47, - 0x47, - 0x9E, - 0x35, - 0xE7, - 0x88, - 0x35, - 0x35, - 0x83, - 0x47, - 0x43, - 0x74, - 0x4F, - 0xE7, - 0x35, - 0x53, - 0x1F, - 0x06, - 0x51, - 0x35, - 0x35, - 0x40, - 0x48, - 0x43, - 0x36, - 0x36, - 0x58, - 0x35, - 0xE7, - 0x3D, - 0x2A, - 0x44, - 0x2A, - 0x30, - 0xE7, - 0x35, - 0x53, - 0x37, - 0x2A, - 0x37, - 0x1F, - 0x6F, - 0x43, - 0x11, - 0x11, - 0x00, - 0x05, - 0x08, - 0x00, - 0x0A, - 0x11, - 0x08, - 0x08, - 0x1E, - 0x20, - 0x03, - 0x03, - 0x03, - 0x10, - 0x12, - 0x0A, - 0x03, - 0x00, - 0x0E, - 0x08, - 0x1E, - 0x03, - 0x03, - 0x03, - 0x08, - 0x08, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x11, - 0x08, - 0x05, - 0x11, - 0x00, - 0x04, - 0x20, - 0x11, - 0x2B, - 0x2D, - 0x05, - 0x39, - 0x00, - 0x0A, - 0x5D, - 0x2C, - 0x5D, - 0x5D, - 0x48, - 0x60, - 0x48, - 0x6F, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x82, - 0x82, - 0x82, - 0x00, - 0x05, - 0x80, - 0x00, - 0x0A, - 0x67, - 0x67, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x99, - 0x80, - 0x7C, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x1A, - 0xAB, - 0xAD, - 0xAB, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0x94, - 0x94, - 0xBE, - 0x94, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0xBD, - 0x78, - 0x94, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0x92, - 0x07, - 0x90, - 0x06, - 0x77, - 0x00, - 0x0B, - 0x8D, - 0x77, - 0x74, - 0x74, - 0x63, - 0x63, - 0x74, - 0x74, - 0x74, - 0x63, - 0x4B, - 0x00, - 0x04, - 0x75, - 0x00, - 0x06, - 0x4C, - 0x4C, - 0x4C, - 0x60, - 0x60, - 0x60, - 0x04, - 0x3C, - 0x00, - 0x03, - 0x5D, - 0x4D, - 0x5D, - 0x00, - 0x07, - 0x39, - 0x00, - 0xA0, - 0x49, - 0x39, - 0x48, - 0x48, - 0xAC, - 0x7B, - 0x7B, - 0x39, - 0x23, - 0x23, - 0x2D, - 0x2D, - 0x0A, - 0x0B, - 0x0D, - 0x19, - 0x1A, - 0x33, - 0x33, - 0x1A, - 0x1A, - 0x33, - 0x1B, - 0x1A, - 0x33, - 0xDD, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0x71, - 0x3C, - 0x22, - 0x22, - 0x2F, - 0x22, - 0x22, - 0x14, - 0x22, - 0x22, - 0x2C, - 0x48, - 0x47, - 0x47, - 0x4B, - 0x48, - 0x83, - 0x35, - 0x35, - 0x35, - 0x89, - 0x63, - 0x47, - 0x65, - 0xE7, - 0x35, - 0x35, - 0xE7, - 0x7D, - 0x48, - 0x43, - 0x6C, - 0x35, - 0x35, - 0x3E, - 0x47, - 0x47, - 0x4E, - 0x6C, - 0x7D, - 0x8D, - 0xB8, - 0xB7, - 0xB8, - 0xB4, - 0x35, - 0xE7, - 0x7B, - 0x47, - 0x47, - 0x7E, - 0x35, - 0x35, - 0x54, - 0x47, - 0x9E, - 0x35, - 0xE7, - 0x65, - 0x47, - 0xB8, - 0x4C, - 0xE7, - 0x35, - 0x53, - 0x1F, - 0x2A, - 0x27, - 0x35, - 0x35, - 0x35, - 0x41, - 0x4F, - 0x48, - 0x4F, - 0x42, - 0x35, - 0x35, - 0xE7, - 0x3E, - 0x39, - 0x36, - 0x3E, - 0x35, - 0x35, - 0x53, - 0x2A, - 0x2A, - 0x2A, - 0x37, - 0x1F, - 0x47, - 0x70, - 0x04, - 0x11, - 0x00, - 0x1F, - 0x08, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x43, - 0x20, - 0x08, - 0x08, - 0x03, - 0x1F, - 0x2A, - 0x03, - 0x08, - 0x03, - 0x08, - 0x03, - 0x03, - 0x03, - 0x08, - 0x03, - 0x03, - 0x02, - 0x2A, - 0x03, - 0x03, - 0x03, - 0x08, - 0x08, - 0x11, - 0x00, - 0x04, - 0x08, - 0x01, - 0x11, - 0x01, - 0x08, - 0x04, - 0x11, - 0x00, - 0x05, - 0x20, - 0x37, - 0x49, - 0x39, - 0x37, - 0x00, - 0x05, - 0x39, - 0x00, - 0x09, - 0x5D, - 0x5D, - 0x48, - 0x4D, - 0x48, - 0x48, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x67, - 0x67, - 0x52, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x80, - 0x52, - 0x96, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x19, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0xAA, - 0x94, - 0xD0, - 0x94, - 0xBD, - 0xBC, - 0xA8, - 0xCD, - 0xA8, - 0xA4, - 0xB9, - 0xBD, - 0xBD, - 0xB9, - 0xBF, - 0xBD, - 0xAA, - 0x95, - 0xAA, - 0xBD, - 0x00, - 0x05, - 0x90, - 0x00, - 0x03, - 0xA7, - 0x77, - 0x90, - 0x00, - 0x04, - 0x77, - 0x00, - 0x0B, - 0xA6, - 0x77, - 0x63, - 0x5E, - 0x63, - 0x63, - 0x74, - 0x74, - 0x75, - 0x63, - 0x74, - 0x00, - 0x04, - 0x75, - 0x00, - 0xB6, - 0x4C, - 0x75, - 0x4C, - 0x60, - 0x4C, - 0x3C, - 0x60, - 0x3C, - 0x3C, - 0x48, - 0x5D, - 0x4D, - 0x39, - 0x3C, - 0x39, - 0x4D, - 0x39, - 0x39, - 0x2E, - 0x39, - 0x49, - 0x2D, - 0x48, - 0x70, - 0x48, - 0x4C, - 0x63, - 0x7B, - 0x61, - 0x2B, - 0x3A, - 0x39, - 0x11, - 0x0A, - 0x24, - 0x4A, - 0x50, - 0x0E, - 0x33, - 0x1B, - 0x1A, - 0x1A, - 0x1A, - 0x1B, - 0x33, - 0x33, - 0x1A, - 0xEE, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xA1, - 0x49, - 0x4C, - 0x2E, - 0x2F, - 0x22, - 0x2C, - 0x3C, - 0x4C, - 0x4B, - 0x4C, - 0x2C, - 0x2C, - 0x2C, - 0x22, - 0x47, - 0x74, - 0x68, - 0x35, - 0xE7, - 0xE7, - 0x35, - 0xE7, - 0x29, - 0xE7, - 0x35, - 0x35, - 0x42, - 0x35, - 0x35, - 0x42, - 0x29, - 0x35, - 0x35, - 0xE7, - 0x7B, - 0x8D, - 0xB5, - 0x7D, - 0x35, - 0x35, - 0x42, - 0x6E, - 0xB4, - 0x42, - 0x35, - 0x35, - 0xD7, - 0x47, - 0x6F, - 0x7B, - 0xE7, - 0x35, - 0x59, - 0x4B, - 0x47, - 0x63, - 0xE7, - 0x35, - 0xD7, - 0x8D, - 0xBA, - 0x63, - 0xE7, - 0x35, - 0x53, - 0x2A, - 0x2A, - 0x3D, - 0x35, - 0x35, - 0xE7, - 0x35, - 0xE7, - 0x29, - 0x42, - 0x35, - 0x35, - 0x42, - 0x35, - 0x35, - 0x42, - 0x29, - 0x35, - 0x35, - 0x35, - 0x50, - 0x2A, - 0x2A, - 0x37, - 0x37, - 0x37, - 0x1F, - 0x47, - 0x70, - 0x05, - 0x11, - 0x00, - 0x0C, - 0x10, - 0x11, - 0x08, - 0x08, - 0x11, - 0x43, - 0x20, - 0x08, - 0x08, - 0x08, - 0x36, - 0x2A, - 0x06, - 0x08, - 0x00, - 0x19, - 0x03, - 0x08, - 0x03, - 0x11, - 0x43, - 0x08, - 0x03, - 0x03, - 0x08, - 0x08, - 0x11, - 0x08, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x20, - 0x2B, - 0x2D, - 0x2D, - 0x2A, - 0x2D, - 0x00, - 0x05, - 0x39, - 0x00, - 0x0A, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x60, - 0x47, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x80, - 0x80, - 0x98, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x06, - 0xAB, - 0x96, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x05, - 0x94, - 0x00, - 0x39, - 0xA8, - 0xA8, - 0xA8, - 0xA4, - 0xBD, - 0xB9, - 0xB9, - 0xA4, - 0x92, - 0x94, - 0xBA, - 0x94, - 0xAA, - 0x94, - 0xBE, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xA7, - 0xA7, - 0x90, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x5E, - 0x77, - 0x5E, - 0x63, - 0x74, - 0x74, - 0x63, - 0x4B, - 0x74, - 0x74, - 0x74, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x75, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x60, - 0x3C, - 0x3C, - 0x48, - 0x3C, - 0x4D, - 0x48, - 0x4D, - 0x4D, - 0x2C, - 0x00, - 0x04, - 0x39, - 0x00, - 0x1E, - 0x49, - 0x39, - 0x49, - 0x4C, - 0x70, - 0x48, - 0x48, - 0x2C, - 0x97, - 0x97, - 0x23, - 0x39, - 0x39, - 0x08, - 0x11, - 0x23, - 0x23, - 0x31, - 0x26, - 0x33, - 0x33, - 0x53, - 0x33, - 0x33, - 0x53, - 0x33, - 0x53, - 0x1A, - 0x33, - 0xEE, - 0x04, - 0xF7, - 0x00, - 0x1C, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x0A, - 0xF8, - 0xF0, - 0x2E, - 0x4E, - 0x3C, - 0x22, - 0x3C, - 0x4C, - 0x4C, - 0x3C, - 0x07, - 0x22, - 0x00, - 0x07, - 0x43, - 0x4B, - 0x68, - 0x35, - 0x29, - 0x4F, - 0x58, - 0x00, - 0x04, - 0x35, - 0x00, - 0x0F, - 0xB4, - 0x4E, - 0x68, - 0x42, - 0x35, - 0x35, - 0x35, - 0xE7, - 0x53, - 0x36, - 0x47, - 0xA2, - 0xDB, - 0x6E, - 0xE7, - 0x00, - 0x05, - 0x35, - 0x00, - 0x1B, - 0x59, - 0xE5, - 0xA2, - 0x74, - 0x6E, - 0x35, - 0xE7, - 0x7B, - 0x6F, - 0x38, - 0x47, - 0x7D, - 0x35, - 0x35, - 0x54, - 0x5E, - 0xD0, - 0xE7, - 0x35, - 0x53, - 0x2A, - 0x12, - 0x27, - 0x35, - 0x29, - 0x31, - 0x57, - 0x00, - 0x04, - 0x35, - 0x00, - 0x04, - 0x29, - 0x4F, - 0x25, - 0x29, - 0x04, - 0x35, - 0x00, - 0x0B, - 0xB3, - 0x47, - 0x37, - 0x2A, - 0x2A, - 0x37, - 0x1F, - 0x37, - 0x1F, - 0x48, - 0x47, - 0x00, - 0x07, - 0x11, - 0x00, - 0x0A, - 0x08, - 0x08, - 0x20, - 0x43, - 0x11, - 0x08, - 0x08, - 0x08, - 0x36, - 0x1F, - 0x06, - 0x08, - 0x00, - 0x0A, - 0x03, - 0x10, - 0x1E, - 0x08, - 0x08, - 0x08, - 0x03, - 0x03, - 0x08, - 0x11, - 0x04, - 0x08, - 0x00, - 0x0B, - 0x11, - 0x11, - 0x11, - 0x20, - 0x2B, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x39, - 0x2A, - 0x00, - 0x05, - 0x39, - 0x00, - 0x09, - 0x5D, - 0x5D, - 0x48, - 0x3C, - 0x48, - 0x48, - 0x75, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x31, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x99, - 0x52, - 0x96, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xD0, - 0x94, - 0xCE, - 0xA8, - 0xCD, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xBD, - 0xBD, - 0xA5, - 0x94, - 0xA5, - 0x92, - 0xAA, - 0x94, - 0xBE, - 0xA8, - 0x00, - 0x04, - 0x90, - 0x00, - 0x03, - 0x77, - 0xA7, - 0xA7, - 0x00, - 0x05, - 0x77, - 0x00, - 0x1E, - 0xA6, - 0x5E, - 0x63, - 0x63, - 0x74, - 0x63, - 0x74, - 0x4B, - 0x63, - 0x5E, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x70, - 0x60, - 0x3C, - 0x48, - 0x4D, - 0x39, - 0x4D, - 0x4D, - 0x39, - 0x2E, - 0x04, - 0x39, - 0x00, - 0x0C, - 0x2D, - 0x39, - 0x6F, - 0x60, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x4D, - 0x49, - 0x39, - 0x49, - 0x04, - 0x23, - 0x00, - 0x1A, - 0x61, - 0x18, - 0x33, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1B, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x1A, - 0xFB, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x05, - 0xF7, - 0x00, - 0x1B, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF0, - 0x4C, - 0x4C, - 0x2E, - 0x3C, - 0x4E, - 0x4C, - 0x2E, - 0x2E, - 0x00, - 0x05, - 0x22, - 0x00, - 0x29, - 0x2C, - 0x2C, - 0x6F, - 0x4B, - 0x8D, - 0x64, - 0x51, - 0x32, - 0x22, - 0x47, - 0x66, - 0x53, - 0x40, - 0x3E, - 0x4B, - 0x4B, - 0x21, - 0x30, - 0x51, - 0x54, - 0x53, - 0x66, - 0x5B, - 0x5B, - 0x74, - 0x5B, - 0x6F, - 0x8D, - 0xDB, - 0xC6, - 0x9C, - 0x6C, - 0x84, - 0x97, - 0x5B, - 0x6F, - 0x8B, - 0xE2, - 0xC5, - 0x7D, - 0x7B, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x21, - 0x47, - 0x7B, - 0x66, - 0x7B, - 0x43, - 0x6F, - 0xC5, - 0xAF, - 0x63, - 0x43, - 0x36, - 0x2E, - 0x3D, - 0x32, - 0x1F, - 0x2A, - 0x32, - 0x53, - 0xB3, - 0x27, - 0x3C, - 0x36, - 0x10, - 0x0C, - 0x26, - 0x53, - 0x53, - 0x50, - 0x44, - 0xB5, - 0x6F, - 0x37, - 0x2A, - 0x00, - 0x04, - 0x37, - 0x00, - 0x0E, - 0x1F, - 0x43, - 0x70, - 0x11, - 0x11, - 0x11, - 0x20, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x02, - 0x04, - 0x08, - 0x01, - 0x36, - 0x01, - 0x20, - 0x05, - 0x08, - 0x00, - 0x08, - 0x2A, - 0x1F, - 0x08, - 0x08, - 0x03, - 0x08, - 0x03, - 0x03, - 0x07, - 0x08, - 0x00, - 0x0B, - 0x11, - 0x2B, - 0x2B, - 0x2D, - 0x37, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x39, - 0x49, - 0x00, - 0x04, - 0x39, - 0x00, - 0x09, - 0x5D, - 0x2C, - 0x5D, - 0x5D, - 0x5D, - 0x48, - 0x47, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x01, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0B, - 0x67, - 0x80, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x52, - 0x80, - 0x7C, - 0x7C, - 0x00, - 0x06, - 0x96, - 0x00, - 0x2A, - 0x95, - 0xAA, - 0x95, - 0xBE, - 0xAA, - 0x94, - 0x94, - 0x94, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0x92, - 0xB9, - 0xBF, - 0x92, - 0xBA, - 0xBD, - 0xAA, - 0x94, - 0xBC, - 0xBD, - 0x90, - 0x90, - 0x90, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x74, - 0x77, - 0x74, - 0x63, - 0x05, - 0x74, - 0x04, - 0x75, - 0x01, - 0x4C, - 0x01, - 0x75, - 0x04, - 0x60, - 0x00, - 0x1A, - 0x3C, - 0x3C, - 0x48, - 0x4D, - 0x48, - 0x5D, - 0x3C, - 0x39, - 0x4D, - 0x39, - 0x39, - 0x2E, - 0x39, - 0x39, - 0x39, - 0x48, - 0x6F, - 0x48, - 0x48, - 0x3C, - 0x5D, - 0x48, - 0x39, - 0x5D, - 0x5D, - 0x2D, - 0x04, - 0x23, - 0x00, - 0x1A, - 0x3A, - 0x31, - 0x27, - 0x1A, - 0x53, - 0x53, - 0x1B, - 0x33, - 0x1B, - 0x53, - 0x1A, - 0x33, - 0x33, - 0x53, - 0xF2, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0x04, - 0xF8, - 0x00, - 0xA6, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF0, - 0x74, - 0x4F, - 0x2F, - 0x2E, - 0x4C, - 0x2E, - 0x2E, - 0x22, - 0x22, - 0x22, - 0x2C, - 0x4C, - 0x4C, - 0x4C, - 0x47, - 0x4B, - 0x8D, - 0x5E, - 0x4B, - 0x47, - 0x2C, - 0x2C, - 0x22, - 0x48, - 0x4B, - 0x6F, - 0x6F, - 0x4B, - 0x47, - 0x6F, - 0x43, - 0x2C, - 0x36, - 0x36, - 0x2C, - 0x36, - 0x21, - 0x43, - 0x8B, - 0xB8, - 0xB7, - 0xB8, - 0x5B, - 0x6F, - 0xA2, - 0xB7, - 0xA2, - 0x8B, - 0x6F, - 0x6F, - 0x38, - 0x38, - 0x8B, - 0xCC, - 0xB8, - 0x6F, - 0x38, - 0x6F, - 0x38, - 0x6F, - 0x38, - 0x6F, - 0x47, - 0x6F, - 0x47, - 0x47, - 0x5B, - 0xCC, - 0x74, - 0x43, - 0x36, - 0x2A, - 0x1F, - 0x2A, - 0x2A, - 0x2A, - 0x06, - 0x48, - 0x74, - 0x44, - 0x2A, - 0x2A, - 0x02, - 0x21, - 0x2A, - 0x2A, - 0x44, - 0x2A, - 0x2A, - 0x6F, - 0x6F, - 0x37, - 0x2A, - 0x2A, - 0x37, - 0x1F, - 0x1F, - 0x1F, - 0x43, - 0x70, - 0x11, - 0x11, - 0x02, - 0x11, - 0x11, - 0x08, - 0x11, - 0x11, - 0x03, - 0x08, - 0x36, - 0x08, - 0x08, - 0x08, - 0x11, - 0x43, - 0x11, - 0x08, - 0x03, - 0x20, - 0x36, - 0x20, - 0x03, - 0x08, - 0x03, - 0x08, - 0x08, - 0x08, - 0x03, - 0x03, - 0x11, - 0x08, - 0x08, - 0x08, - 0x11, - 0x20, - 0x2B, - 0x1F, - 0x2B, - 0x1F, - 0x45, - 0x14, - 0x37, - 0x2D, - 0x37, - 0x39, - 0x2A, - 0x05, - 0x39, - 0x00, - 0x08, - 0x5D, - 0x5D, - 0x48, - 0x48, - 0x70, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x82, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x52, - 0x67, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x99, - 0x80, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0x04, - 0x94, - 0x00, - 0x18, - 0xCE, - 0xA8, - 0xA8, - 0xA4, - 0xBD, - 0xA4, - 0xB9, - 0xBD, - 0xB9, - 0x92, - 0x94, - 0xA5, - 0xA5, - 0x92, - 0x94, - 0xBE, - 0xA8, - 0xA8, - 0x90, - 0x90, - 0xA7, - 0xA7, - 0x77, - 0x90, - 0x05, - 0x77, - 0x00, - 0x13, - 0x63, - 0x5E, - 0x63, - 0x74, - 0x63, - 0x74, - 0x63, - 0x75, - 0x63, - 0x74, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x4C, - 0x00, - 0x04, - 0x3C, - 0x00, - 0x04, - 0x48, - 0x4D, - 0x4D, - 0x2E, - 0x06, - 0x39, - 0x00, - 0x15, - 0x49, - 0x48, - 0x60, - 0x6F, - 0x48, - 0x3C, - 0x5D, - 0x5D, - 0x5D, - 0x39, - 0x39, - 0x2D, - 0x61, - 0x2D, - 0x23, - 0x23, - 0x23, - 0x3A, - 0x3A, - 0x32, - 0x0E, - 0x00, - 0x05, - 0x1B, - 0x00, - 0x07, - 0x33, - 0x1B, - 0x1B, - 0x33, - 0x84, - 0x3E, - 0xF6, - 0x00, - 0x05, - 0xF7, - 0x00, - 0x06, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x04, - 0xF7, - 0x00, - 0x06, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0x06, - 0xF7, - 0x00, - 0x40, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF0, - 0x64, - 0x79, - 0x2F, - 0x76, - 0x4D, - 0x3C, - 0x64, - 0x2E, - 0x3C, - 0x4E, - 0x4C, - 0x4C, - 0x4C, - 0x2C, - 0x2C, - 0x22, - 0x48, - 0x47, - 0x48, - 0x47, - 0x6F, - 0x47, - 0x2C, - 0x13, - 0x2C, - 0x1E, - 0x2C, - 0x2C, - 0x2C, - 0x36, - 0x47, - 0x8D, - 0x5E, - 0x5E, - 0x47, - 0x47, - 0x43, - 0x36, - 0x47, - 0x6F, - 0x38, - 0x5B, - 0x8B, - 0xB7, - 0xB7, - 0x8B, - 0x5B, - 0x8B, - 0xB9, - 0xB7, - 0x5B, - 0x6F, - 0x6F, - 0x6F, - 0x38, - 0xB7, - 0xBA, - 0x6F, - 0x5B, - 0x04, - 0x6F, - 0x00, - 0x1E, - 0x38, - 0x47, - 0x47, - 0x7D, - 0x54, - 0x4B, - 0xB8, - 0xB8, - 0x47, - 0x43, - 0x2A, - 0x1F, - 0x2A, - 0x2A, - 0x1F, - 0x06, - 0x2A, - 0x74, - 0x2C, - 0x2A, - 0x74, - 0x70, - 0x2A, - 0x44, - 0x36, - 0x44, - 0x2A, - 0x2A, - 0xB8, - 0x47, - 0x05, - 0x37, - 0x00, - 0x32, - 0x1F, - 0x1F, - 0x43, - 0x70, - 0x11, - 0x20, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x37, - 0x36, - 0x08, - 0x08, - 0x08, - 0x11, - 0x43, - 0x08, - 0x1F, - 0x2A, - 0x08, - 0x03, - 0x08, - 0x03, - 0x08, - 0x08, - 0x08, - 0x03, - 0x10, - 0x12, - 0x08, - 0x08, - 0x08, - 0x11, - 0x10, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x45, - 0x2D, - 0x37, - 0x2D, - 0x37, - 0x2D, - 0x39, - 0x49, - 0x04, - 0x39, - 0x00, - 0x09, - 0x5D, - 0x5D, - 0x48, - 0x48, - 0x4D, - 0x48, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x0D, - 0x52, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x52, - 0x80, - 0x98, - 0x7C, - 0x00, - 0x05, - 0x96, - 0x00, - 0x20, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0xAA, - 0x94, - 0xD0, - 0x94, - 0xA8, - 0xCE, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xBF, - 0x92, - 0xBA, - 0xA5, - 0x92, - 0xBE, - 0xBC, - 0xA8, - 0xB9, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x04, - 0x77, - 0x00, - 0x0C, - 0xA6, - 0x5E, - 0x77, - 0x74, - 0x63, - 0x74, - 0x63, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x04, - 0x75, - 0x01, - 0x4C, - 0x01, - 0x4C, - 0x04, - 0x60, - 0x00, - 0x04, - 0x3C, - 0x48, - 0x3C, - 0x5D, - 0x0A, - 0x39, - 0x00, - 0x0D, - 0x60, - 0x48, - 0x75, - 0x5D, - 0x48, - 0x48, - 0x5D, - 0x5D, - 0x39, - 0x39, - 0x23, - 0x4D, - 0x2D, - 0x00, - 0x05, - 0x23, - 0x00, - 0x44, - 0x61, - 0x19, - 0x3E, - 0x53, - 0x53, - 0x1B, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x53, - 0x1B, - 0x6C, - 0xC1, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF2, - 0x64, - 0x60, - 0x79, - 0x2E, - 0x30, - 0x4D, - 0x2F, - 0x30, - 0x4C, - 0x4E, - 0x3C, - 0x2E, - 0x2E, - 0x22, - 0x2C, - 0x2E, - 0x2C, - 0x4C, - 0x47, - 0x4C, - 0x47, - 0x47, - 0x47, - 0x06, - 0x2C, - 0x00, - 0x31, - 0x36, - 0x21, - 0x5E, - 0x47, - 0x8D, - 0x47, - 0x47, - 0x5E, - 0x8B, - 0x77, - 0x90, - 0x5B, - 0x6F, - 0x38, - 0x6F, - 0x6F, - 0x5B, - 0xA2, - 0xB9, - 0xA2, - 0x8B, - 0x8D, - 0xCC, - 0xB7, - 0x5B, - 0x5B, - 0x6F, - 0xA2, - 0x8B, - 0x8B, - 0xE2, - 0x5B, - 0x6F, - 0x38, - 0x6F, - 0x6F, - 0x38, - 0x7D, - 0x35, - 0x35, - 0x89, - 0x47, - 0xB5, - 0xB7, - 0x6F, - 0x43, - 0x1E, - 0x2A, - 0x2A, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x27, - 0x75, - 0xA3, - 0x6F, - 0x36, - 0x36, - 0x44, - 0x2A, - 0x44, - 0x2A, - 0x70, - 0x6F, - 0x2A, - 0x2A, - 0x2A, - 0x37, - 0x1F, - 0x37, - 0x1F, - 0x1F, - 0x1F, - 0x48, - 0x43, - 0x20, - 0x11, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x2A, - 0x2A, - 0x08, - 0x08, - 0x08, - 0x10, - 0x47, - 0x10, - 0x00, - 0x06, - 0x08, - 0x00, - 0x09, - 0x03, - 0x08, - 0x2A, - 0x10, - 0x12, - 0x1F, - 0x08, - 0x20, - 0x10, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x03, - 0x1F, - 0x14, - 0x1F, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x2A, - 0x39, - 0x49, - 0x00, - 0x04, - 0x39, - 0x00, - 0x08, - 0x5D, - 0x5D, - 0x5D, - 0x48, - 0x70, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x82, - 0x80, - 0x82, - 0x00, - 0x04, - 0x80, - 0x00, - 0x30, - 0x52, - 0x67, - 0x99, - 0x67, - 0xAE, - 0x67, - 0x7C, - 0x80, - 0x52, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xBE, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xA5, - 0xBD, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0x90, - 0xA7, - 0x77, - 0x90, - 0x05, - 0x77, - 0x00, - 0x06, - 0xA6, - 0x77, - 0x5E, - 0x63, - 0x74, - 0x63, - 0x05, - 0x74, - 0x00, - 0x06, - 0x75, - 0x4C, - 0x4C, - 0x4C, - 0x70, - 0x3C, - 0x05, - 0x48, - 0x00, - 0x26, - 0x60, - 0x75, - 0x75, - 0x93, - 0x7B, - 0xC1, - 0x7B, - 0x91, - 0x5D, - 0x2A, - 0x37, - 0x39, - 0x70, - 0x60, - 0x70, - 0x75, - 0x48, - 0x4D, - 0x48, - 0x2C, - 0x5D, - 0x5D, - 0x2D, - 0x2B, - 0x4D, - 0x49, - 0x3A, - 0x23, - 0x23, - 0x23, - 0x3A, - 0x49, - 0x32, - 0x68, - 0x1B, - 0x84, - 0x53, - 0x54, - 0x04, - 0x53, - 0x00, - 0x17, - 0x84, - 0x53, - 0x54, - 0x53, - 0x83, - 0xFB, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0x00, - 0x06, - 0xF7, - 0x00, - 0x30, - 0xF8, - 0xF7, - 0xF0, - 0x79, - 0x50, - 0x18, - 0x65, - 0x4F, - 0x4D, - 0x91, - 0x4D, - 0x31, - 0xBB, - 0x2F, - 0x63, - 0x4C, - 0x2C, - 0x2E, - 0x22, - 0x22, - 0x2C, - 0x47, - 0x4C, - 0x47, - 0x47, - 0x47, - 0x6F, - 0x8D, - 0x47, - 0x4C, - 0x74, - 0x2C, - 0x48, - 0x2C, - 0x2C, - 0x4B, - 0x63, - 0x47, - 0xBD, - 0x77, - 0x36, - 0x21, - 0x47, - 0x5E, - 0x92, - 0xBA, - 0xB7, - 0x8B, - 0x05, - 0x5B, - 0x00, - 0x1E, - 0xA2, - 0xB9, - 0xB7, - 0x5B, - 0x8B, - 0xB7, - 0xB7, - 0x5B, - 0xCC, - 0x6F, - 0xBA, - 0xCC, - 0xA2, - 0x47, - 0x6F, - 0x38, - 0x6F, - 0x6F, - 0x7E, - 0x35, - 0x35, - 0x9E, - 0x47, - 0x43, - 0x6F, - 0xA2, - 0x8D, - 0x43, - 0x36, - 0x2A, - 0x05, - 0x1F, - 0x00, - 0x09, - 0x2C, - 0x10, - 0x37, - 0x36, - 0x36, - 0x44, - 0x2A, - 0x47, - 0xB5, - 0x00, - 0x04, - 0x2A, - 0x00, - 0x14, - 0x37, - 0x37, - 0x37, - 0x1F, - 0x1F, - 0x1F, - 0x2B, - 0x43, - 0x70, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x36, - 0x1F, - 0x04, - 0x08, - 0x00, - 0x11, - 0x03, - 0x08, - 0x03, - 0x08, - 0x08, - 0x03, - 0x08, - 0x1F, - 0x2A, - 0x11, - 0x11, - 0x08, - 0x21, - 0x2B, - 0x10, - 0x20, - 0x10, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x07, - 0x37, - 0x1F, - 0x1F, - 0x2D, - 0x37, - 0x2D, - 0x2D, - 0x00, - 0x07, - 0x39, - 0x00, - 0x07, - 0x48, - 0x5D, - 0x3C, - 0x5D, - 0x47, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x11, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x99, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x52, - 0x7C, - 0x00, - 0x06, - 0x96, - 0x00, - 0x20, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0xC0, - 0x94, - 0xD0, - 0x94, - 0xBD, - 0xA8, - 0xCE, - 0xA8, - 0xA4, - 0xA8, - 0xB9, - 0xBD, - 0xA5, - 0xB9, - 0x92, - 0xBF, - 0xA5, - 0xBA, - 0x92, - 0x90, - 0x92, - 0xBC, - 0xBC, - 0xBC, - 0xBD, - 0xA7, - 0x90, - 0x90, - 0x05, - 0x77, - 0x00, - 0x18, - 0x5E, - 0x63, - 0x74, - 0x4B, - 0x4B, - 0x4B, - 0x6F, - 0x6F, - 0x75, - 0x6F, - 0x74, - 0x74, - 0x74, - 0x93, - 0x7B, - 0xAC, - 0xAC, - 0xC5, - 0xD3, - 0xE9, - 0xDE, - 0xED, - 0xED, - 0xED, - 0x06, - 0xF4, - 0x00, - 0x0E, - 0xED, - 0x9A, - 0x65, - 0x5D, - 0x48, - 0x70, - 0x48, - 0x75, - 0x48, - 0x48, - 0x5D, - 0x5D, - 0x5D, - 0x39, - 0x04, - 0x23, - 0x00, - 0x78, - 0x60, - 0x3A, - 0x23, - 0x23, - 0x3A, - 0x61, - 0x61, - 0x51, - 0x33, - 0x84, - 0x53, - 0x84, - 0x53, - 0x54, - 0x53, - 0x54, - 0x54, - 0x53, - 0x3F, - 0x53, - 0x6C, - 0x53, - 0xC5, - 0xFB, - 0xF7, - 0xF7, - 0xF8, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xEE, - 0x65, - 0x50, - 0x65, - 0x18, - 0x79, - 0x64, - 0x31, - 0x4F, - 0x2E, - 0x4F, - 0x4F, - 0x64, - 0x4F, - 0x4C, - 0xAC, - 0x64, - 0x4E, - 0xDB, - 0x4B, - 0x4B, - 0x4B, - 0x47, - 0x4B, - 0x47, - 0x4B, - 0xA5, - 0x4B, - 0x47, - 0x74, - 0x21, - 0x4C, - 0x47, - 0x2C, - 0x47, - 0x5E, - 0x4B, - 0x4B, - 0x5B, - 0x47, - 0x21, - 0x47, - 0x8B, - 0x5B, - 0x5B, - 0x8B, - 0xB7, - 0xCC, - 0xA5, - 0x8B, - 0x5B, - 0x8B, - 0x5B, - 0x5C, - 0xB7, - 0xCC, - 0xA2, - 0x5B, - 0x8B, - 0xB9, - 0xB7, - 0x5B, - 0xB7, - 0xB7, - 0x5B, - 0x5B, - 0x6F, - 0x6F, - 0x6F, - 0x38, - 0x6F, - 0x83, - 0x86, - 0x63, - 0x04, - 0x47, - 0x00, - 0x07, - 0xB8, - 0xB8, - 0x47, - 0x43, - 0x1F, - 0x1F, - 0x12, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x07, - 0x10, - 0x1F, - 0x36, - 0x2A, - 0x48, - 0x8D, - 0x44, - 0x00, - 0x05, - 0x2A, - 0x00, - 0x03, - 0x37, - 0x37, - 0x37, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x0D, - 0x6F, - 0x37, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x43, - 0x20, - 0x00, - 0x07, - 0x08, - 0x00, - 0x1A, - 0x03, - 0x11, - 0x1E, - 0x10, - 0x11, - 0x12, - 0x47, - 0x2A, - 0x1F, - 0x21, - 0x10, - 0x10, - 0x10, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x14, - 0x2D, - 0x37, - 0x2D, - 0x2D, - 0x2A, - 0x49, - 0x2A, - 0x04, - 0x39, - 0x00, - 0x08, - 0x5D, - 0x5D, - 0x5D, - 0x48, - 0x48, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x01, - 0x82, - 0x05, - 0x80, - 0x01, - 0x52, - 0x04, - 0x67, - 0x00, - 0x06, - 0x7C, - 0x67, - 0x7C, - 0x52, - 0x80, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x0E, - 0x95, - 0x96, - 0x95, - 0xAA, - 0x95, - 0x94, - 0x94, - 0xBE, - 0x94, - 0x94, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0x05, - 0xBD, - 0x00, - 0x0C, - 0xA5, - 0xBD, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x90, - 0xBD, - 0xA4, - 0xA4, - 0xA4, - 0x90, - 0x06, - 0x8D, - 0x00, - 0x0D, - 0x77, - 0xA7, - 0x90, - 0xA9, - 0xAC, - 0xDB, - 0xD2, - 0xD3, - 0xE9, - 0xDE, - 0xEA, - 0xED, - 0xED, - 0x00, - 0x09, - 0xF4, - 0x00, - 0x3C, - 0xF3, - 0xED, - 0xEF, - 0xEA, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0xEC, - 0xED, - 0xF5, - 0xF5, - 0xE1, - 0x7B, - 0x70, - 0x48, - 0x75, - 0x48, - 0x4D, - 0x5D, - 0x48, - 0x5D, - 0x2D, - 0x23, - 0x2B, - 0x23, - 0x23, - 0x4D, - 0x23, - 0x49, - 0x23, - 0x49, - 0x3A, - 0x4D, - 0x65, - 0x3E, - 0x9C, - 0x53, - 0x6C, - 0x53, - 0x6C, - 0x54, - 0x53, - 0x3F, - 0x40, - 0x3F, - 0x40, - 0x3F, - 0x53, - 0x54, - 0x53, - 0xDD, - 0xFB, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF7, - 0xF8, - 0x07, - 0xF7, - 0x00, - 0x32, - 0xF8, - 0xF7, - 0xF7, - 0xF2, - 0xEE, - 0x25, - 0x3D, - 0x50, - 0x50, - 0x25, - 0x32, - 0xC1, - 0x4F, - 0x91, - 0x91, - 0x64, - 0x93, - 0x64, - 0x2E, - 0x60, - 0x3C, - 0xDB, - 0xAC, - 0x75, - 0xA9, - 0x4B, - 0x77, - 0x5E, - 0x4B, - 0x4B, - 0x47, - 0x5E, - 0x5E, - 0x4B, - 0x4B, - 0x21, - 0x48, - 0x48, - 0x21, - 0x47, - 0x21, - 0x47, - 0x62, - 0x90, - 0x8D, - 0x4B, - 0x4B, - 0x5E, - 0x73, - 0x8B, - 0x04, - 0x5B, - 0x00, - 0x18, - 0xA2, - 0xB9, - 0xB9, - 0x8B, - 0x5B, - 0x73, - 0x5B, - 0x5B, - 0xB7, - 0xCC, - 0xA2, - 0x5B, - 0x5B, - 0xB7, - 0xCE, - 0xB7, - 0x5B, - 0x5B, - 0x5B, - 0x47, - 0x5B, - 0x6F, - 0x6F, - 0x6F, - 0x05, - 0x47, - 0x00, - 0x07, - 0x43, - 0x43, - 0xB5, - 0xB7, - 0x6F, - 0x36, - 0x2A, - 0x00, - 0x06, - 0x1F, - 0x00, - 0x05, - 0x10, - 0x1F, - 0x43, - 0xB8, - 0x36, - 0x00, - 0x05, - 0x2A, - 0x00, - 0x16, - 0x37, - 0x37, - 0x1F, - 0x1F, - 0x1F, - 0x37, - 0x1F, - 0x1F, - 0x2A, - 0x47, - 0x37, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x43, - 0x11, - 0x06, - 0x08, - 0x00, - 0x19, - 0x1F, - 0x1F, - 0x11, - 0x1F, - 0x1E, - 0x10, - 0x11, - 0x5B, - 0x2B, - 0x2A, - 0x36, - 0x20, - 0x10, - 0x2B, - 0x10, - 0x2B, - 0x2B, - 0x1F, - 0x37, - 0x45, - 0x14, - 0x2D, - 0x2D, - 0x2A, - 0x49, - 0x00, - 0x05, - 0x39, - 0x00, - 0x08, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x3D, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x99, - 0x52, - 0x99, - 0x67, - 0x99, - 0x67, - 0xAE, - 0x98, - 0x67, - 0x80, - 0xAD, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0xAA, - 0xC0, - 0xAA, - 0xD0, - 0xBE, - 0x94, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0xBD, - 0x90, - 0x90, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xBE, - 0xCF, - 0xD1, - 0xC2, - 0xD2, - 0xE6, - 0xD4, - 0xEA, - 0xEA, - 0xED, - 0xED, - 0xED, - 0x00, - 0x09, - 0xF4, - 0x00, - 0x0E, - 0xED, - 0xF3, - 0xEF, - 0xEC, - 0xEC, - 0xE6, - 0xDC, - 0xD1, - 0xD1, - 0x94, - 0xA8, - 0x8E, - 0x8E, - 0x8C, - 0x07, - 0x5C, - 0x00, - 0x6C, - 0x8E, - 0xAE, - 0xF4, - 0xF5, - 0xEA, - 0x63, - 0x47, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x39, - 0x2B, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x60, - 0x3A, - 0x5F, - 0x23, - 0x3A, - 0x3A, - 0x49, - 0x76, - 0x3D, - 0x83, - 0x53, - 0x6C, - 0x53, - 0x3F, - 0x54, - 0x6C, - 0x54, - 0x3F, - 0x6C, - 0x53, - 0x6B, - 0x53, - 0x3F, - 0x84, - 0x84, - 0x84, - 0x68, - 0xC1, - 0xEE, - 0xFB, - 0xF7, - 0xF7, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF8, - 0xF2, - 0xF2, - 0xEE, - 0xDD, - 0x7D, - 0x68, - 0x50, - 0x7D, - 0x50, - 0x65, - 0x25, - 0x25, - 0x25, - 0x18, - 0x50, - 0x65, - 0x64, - 0x4F, - 0x3C, - 0x64, - 0x3C, - 0x4C, - 0x77, - 0xA6, - 0x74, - 0x4C, - 0x63, - 0x90, - 0x90, - 0x92, - 0xA9, - 0x8D, - 0x73, - 0x8D, - 0x5E, - 0x8D, - 0x21, - 0x21, - 0x21, - 0x4C, - 0x4B, - 0x48, - 0x21, - 0x6F, - 0x4B, - 0x90, - 0x90, - 0x6F, - 0x73, - 0x5B, - 0x73, - 0x73, - 0x05, - 0x5B, - 0x00, - 0x04, - 0x72, - 0xB7, - 0xB9, - 0xB7, - 0x04, - 0x5B, - 0x00, - 0x10, - 0xB7, - 0xCC, - 0xA2, - 0x5B, - 0xB7, - 0x8B, - 0x5B, - 0x6F, - 0x5B, - 0x6F, - 0xBA, - 0xE2, - 0x5B, - 0x38, - 0x6F, - 0x38, - 0x05, - 0x47, - 0x00, - 0x06, - 0x43, - 0x6F, - 0xB7, - 0x6F, - 0x36, - 0x2A, - 0x05, - 0x1F, - 0x00, - 0x0E, - 0x10, - 0x2D, - 0x74, - 0x36, - 0x44, - 0x44, - 0x2A, - 0x44, - 0x2A, - 0x2A, - 0x2A, - 0x44, - 0x6F, - 0x37, - 0x04, - 0x1F, - 0x00, - 0x0E, - 0x2A, - 0x2B, - 0x47, - 0x2B, - 0x08, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x10, - 0x36, - 0x04, - 0x08, - 0x00, - 0x0F, - 0x20, - 0x1E, - 0x20, - 0x10, - 0x2A, - 0x1F, - 0x11, - 0x20, - 0x11, - 0x2A, - 0x6F, - 0x11, - 0x21, - 0x37, - 0x10, - 0x00, - 0x05, - 0x2B, - 0x00, - 0x07, - 0x1F, - 0x37, - 0x2D, - 0x2D, - 0x37, - 0x39, - 0x2A, - 0x00, - 0x06, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x3C, - 0x48, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x80, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x52, - 0x52, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0x94, - 0x94, - 0xA8, - 0xA8, - 0xA8, - 0x04, - 0xA4, - 0x00, - 0x0C, - 0xBC, - 0xBE, - 0xBE, - 0xD1, - 0xC2, - 0xDC, - 0xE6, - 0xD4, - 0xEC, - 0xEA, - 0xED, - 0xED, - 0x09, - 0xF4, - 0x00, - 0x14, - 0xED, - 0xF3, - 0xED, - 0xEF, - 0xEF, - 0xEC, - 0xEB, - 0xE6, - 0xDC, - 0xC2, - 0xC2, - 0xD1, - 0xD1, - 0xBE, - 0xBE, - 0x94, - 0xA8, - 0xA8, - 0x78, - 0x78, - 0x04, - 0x8E, - 0x00, - 0x16, - 0x72, - 0x8E, - 0x72, - 0x8C, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x5C, - 0x46, - 0x5C, - 0x46, - 0x5C, - 0xD1, - 0xF3, - 0xF4, - 0xDB, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x2D, - 0x04, - 0x23, - 0x00, - 0x75, - 0x20, - 0x23, - 0x3A, - 0x60, - 0x3A, - 0x49, - 0x3A, - 0x2F, - 0x76, - 0x79, - 0x7E, - 0x53, - 0x9C, - 0x54, - 0x6C, - 0x54, - 0x3F, - 0x54, - 0x54, - 0x3F, - 0x3F, - 0x6C, - 0x53, - 0x86, - 0x53, - 0x6C, - 0x53, - 0x84, - 0x6C, - 0x3E, - 0xAF, - 0xEE, - 0xF2, - 0xF2, - 0xF7, - 0xF8, - 0xF7, - 0xF8, - 0xF2, - 0xEE, - 0xDD, - 0x27, - 0x27, - 0x51, - 0x7D, - 0x26, - 0x3D, - 0x51, - 0x26, - 0x7D, - 0x32, - 0x50, - 0x50, - 0x25, - 0x65, - 0x4F, - 0x4F, - 0x79, - 0x3C, - 0x63, - 0x63, - 0x4E, - 0x3C, - 0x64, - 0xDB, - 0x62, - 0x5E, - 0x4B, - 0x47, - 0xA9, - 0x62, - 0x47, - 0x4B, - 0x4B, - 0x4B, - 0x47, - 0x05, - 0x4E, - 0x5E, - 0x4B, - 0x90, - 0x38, - 0x6F, - 0xBA, - 0x8D, - 0xB7, - 0xB9, - 0x73, - 0x5B, - 0x5B, - 0x73, - 0x8B, - 0x5B, - 0x8B, - 0x5B, - 0x8B, - 0x5B, - 0x5B, - 0x8B, - 0x72, - 0xCD, - 0xCE, - 0x72, - 0x5B, - 0x5B, - 0x5B, - 0x8B, - 0xB7, - 0xB9, - 0x8B, - 0x38, - 0x47, - 0x38, - 0x5B, - 0x8B, - 0xB7, - 0xCC, - 0x00, - 0x05, - 0x6F, - 0x05, - 0x47, - 0x00, - 0x06, - 0x43, - 0x6F, - 0xB8, - 0x74, - 0x36, - 0x2A, - 0x04, - 0x1F, - 0x00, - 0x06, - 0x10, - 0x2A, - 0xA3, - 0x2A, - 0x2A, - 0x44, - 0x04, - 0x2A, - 0x00, - 0x11, - 0x36, - 0xB5, - 0x6F, - 0x6F, - 0x1F, - 0x1F, - 0x37, - 0x1F, - 0x2A, - 0x1F, - 0x2B, - 0x47, - 0x10, - 0x08, - 0x11, - 0x08, - 0x11, - 0x00, - 0x04, - 0x08, - 0x00, - 0x2D, - 0x2A, - 0x2A, - 0x03, - 0x08, - 0x10, - 0x21, - 0x08, - 0x2A, - 0x2A, - 0x10, - 0x11, - 0x10, - 0x11, - 0x11, - 0x11, - 0x43, - 0x36, - 0x20, - 0x47, - 0x10, - 0x10, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x2D, - 0x1F, - 0x2D, - 0x2D, - 0x37, - 0x49, - 0x49, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x48, - 0x5D, - 0x5D, - 0x48, - 0x4C, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x80, - 0x96, - 0x7C, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0xAB, - 0xC4, - 0xDC, - 0xD4, - 0xDE, - 0xEC, - 0xEA, - 0xEA, - 0xED, - 0xED, - 0xED, - 0x00, - 0x08, - 0xF4, - 0x00, - 0x0F, - 0xED, - 0xF3, - 0xED, - 0xEF, - 0xEF, - 0xEA, - 0xEA, - 0xEC, - 0xEC, - 0xE6, - 0xE6, - 0xE4, - 0xE4, - 0xD1, - 0xD1, - 0x00, - 0x06, - 0xAA, - 0x00, - 0x16, - 0x94, - 0x94, - 0xBE, - 0xD1, - 0xAA, - 0xBC, - 0xBE, - 0x94, - 0xBE, - 0x94, - 0xBE, - 0x78, - 0x78, - 0x78, - 0x8E, - 0x78, - 0x94, - 0xA8, - 0x78, - 0x72, - 0x72, - 0x72, - 0x04, - 0x5C, - 0x00, - 0x88, - 0x3B, - 0x5C, - 0x46, - 0x5C, - 0xE6, - 0xF4, - 0xE9, - 0x48, - 0x5D, - 0x2D, - 0x23, - 0x2B, - 0x23, - 0x2B, - 0x23, - 0x20, - 0x2D, - 0x2D, - 0x4D, - 0x3A, - 0x49, - 0x23, - 0x49, - 0x3A, - 0x8F, - 0x65, - 0x53, - 0x3F, - 0x54, - 0x6B, - 0x54, - 0x3F, - 0x53, - 0x54, - 0x53, - 0x40, - 0x6C, - 0x54, - 0x3F, - 0x54, - 0x3F, - 0x53, - 0x54, - 0x53, - 0x84, - 0x84, - 0x53, - 0x3F, - 0x33, - 0x33, - 0x1A, - 0x1A, - 0x83, - 0x27, - 0x68, - 0x27, - 0x27, - 0x68, - 0x27, - 0x68, - 0x51, - 0x3D, - 0x26, - 0x3D, - 0x66, - 0x50, - 0x25, - 0x50, - 0x50, - 0x50, - 0x79, - 0x50, - 0x64, - 0x63, - 0x65, - 0x3C, - 0x63, - 0x4E, - 0x4E, - 0xD4, - 0x77, - 0x4C, - 0x4B, - 0x47, - 0x63, - 0x90, - 0x5E, - 0x5E, - 0x5B, - 0x4B, - 0x47, - 0x13, - 0x77, - 0x4B, - 0x77, - 0x5E, - 0x47, - 0x5B, - 0xB7, - 0x5B, - 0x8D, - 0xA2, - 0xCE, - 0xAA, - 0xA2, - 0xA4, - 0x90, - 0x5B, - 0x5B, - 0x46, - 0x5B, - 0x5B, - 0x8B, - 0x46, - 0x8B, - 0xCD, - 0xBC, - 0xE8, - 0xB9, - 0x8B, - 0x5B, - 0x5B, - 0x5B, - 0x8B, - 0xCC, - 0x8D, - 0x1E, - 0x43, - 0x8B, - 0xBA, - 0xBA, - 0xA2, - 0x6F, - 0x38, - 0x6F, - 0x38, - 0x05, - 0x47, - 0x00, - 0x08, - 0x43, - 0x47, - 0x47, - 0x43, - 0x8D, - 0xB8, - 0x43, - 0x2A, - 0x04, - 0x1F, - 0x00, - 0x33, - 0x10, - 0x1F, - 0x6F, - 0x2A, - 0x2A, - 0x44, - 0x2A, - 0x37, - 0x48, - 0x74, - 0x2A, - 0x1F, - 0x6F, - 0x6F, - 0x1F, - 0x1F, - 0x1F, - 0x2A, - 0x1F, - 0x2B, - 0x2B, - 0x43, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x1E, - 0x1F, - 0x08, - 0x08, - 0x36, - 0x11, - 0x43, - 0x2A, - 0x11, - 0x10, - 0x11, - 0x10, - 0x11, - 0x10, - 0x10, - 0x47, - 0x10, - 0x37, - 0x47, - 0x20, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x09, - 0x2D, - 0x1F, - 0x2D, - 0x37, - 0x2D, - 0x2D, - 0x39, - 0x2A, - 0x49, - 0x00, - 0x04, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x48, - 0x48, - 0x70, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x67, - 0x52, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x7C, - 0x52, - 0x80, - 0xAD, - 0x96, - 0x96, - 0xD4, - 0xEA, - 0xE0, - 0xED, - 0xED, - 0xED, - 0x00, - 0x09, - 0xF4, - 0x00, - 0x15, - 0xF3, - 0xF4, - 0xF3, - 0xEA, - 0xEA, - 0xEA, - 0xEC, - 0xEC, - 0xEC, - 0xE6, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xAE, - 0xDC, - 0xDC, - 0x00, - 0x04, - 0xC2, - 0x00, - 0x06, - 0xE4, - 0xC2, - 0xD1, - 0xC2, - 0xD1, - 0xD1, - 0x05, - 0xAA, - 0x00, - 0x11, - 0xE4, - 0xD4, - 0xE6, - 0xEC, - 0xDC, - 0x94, - 0xBE, - 0x94, - 0xA8, - 0x78, - 0x78, - 0xA8, - 0xE6, - 0xD1, - 0xAA, - 0x8E, - 0x72, - 0x00, - 0x07, - 0x5C, - 0x00, - 0x30, - 0x3B, - 0x46, - 0x46, - 0x78, - 0xF3, - 0xDE, - 0x36, - 0x45, - 0x3A, - 0x3A, - 0x2B, - 0x23, - 0x23, - 0x2B, - 0x2D, - 0x22, - 0xA3, - 0x3A, - 0x61, - 0x23, - 0x49, - 0x3A, - 0x49, - 0x79, - 0x51, - 0x53, - 0x3F, - 0x6C, - 0x54, - 0x54, - 0x40, - 0x55, - 0x54, - 0x3F, - 0x3F, - 0x3F, - 0x55, - 0x84, - 0x55, - 0x53, - 0x3F, - 0x3F, - 0x53, - 0x3F, - 0x53, - 0x84, - 0x3E, - 0x53, - 0x04, - 0x1A, - 0x00, - 0x53, - 0x3E, - 0x1A, - 0x3E, - 0x51, - 0x27, - 0x68, - 0x66, - 0x68, - 0x27, - 0x51, - 0x7D, - 0x25, - 0x65, - 0x65, - 0x32, - 0x25, - 0x32, - 0x7B, - 0x63, - 0x64, - 0x64, - 0x4C, - 0x4E, - 0x3C, - 0x63, - 0x62, - 0xA9, - 0x63, - 0x5E, - 0x77, - 0x62, - 0xA9, - 0xC0, - 0x90, - 0x90, - 0x77, - 0x4B, - 0x5B, - 0x77, - 0x47, - 0x4C, - 0x5E, - 0x4C, - 0x5B, - 0xA2, - 0x5B, - 0x5B, - 0x5B, - 0x90, - 0xA2, - 0xA4, - 0xCF, - 0xB9, - 0xA2, - 0x8B, - 0x5B, - 0x5B, - 0x8B, - 0x46, - 0x8B, - 0x8B, - 0xBC, - 0x72, - 0x72, - 0xCD, - 0xE3, - 0xB9, - 0x8B, - 0x5B, - 0x5B, - 0x5B, - 0xA2, - 0xA2, - 0x5E, - 0x5B, - 0xE2, - 0xCC, - 0x6F, - 0x5B, - 0x47, - 0x6F, - 0x6F, - 0x6F, - 0x00, - 0x07, - 0x47, - 0x00, - 0x24, - 0x43, - 0x43, - 0x74, - 0xB8, - 0x36, - 0x2A, - 0x1F, - 0x1F, - 0x2B, - 0x10, - 0x10, - 0x1F, - 0x74, - 0x37, - 0x2A, - 0x2A, - 0x47, - 0xB5, - 0x2A, - 0x37, - 0x2A, - 0x1F, - 0x6F, - 0x70, - 0x1F, - 0x1F, - 0x2A, - 0x1F, - 0x2B, - 0x2B, - 0x37, - 0x48, - 0x08, - 0x08, - 0x08, - 0x11, - 0x05, - 0x08, - 0x00, - 0x1F, - 0x43, - 0x11, - 0x03, - 0x10, - 0x6F, - 0x10, - 0x47, - 0x10, - 0x20, - 0x20, - 0x11, - 0x10, - 0x10, - 0x10, - 0x1F, - 0x6F, - 0x11, - 0x47, - 0x37, - 0x10, - 0x2B, - 0x2B, - 0x1F, - 0x1F, - 0x2B, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x2A, - 0x49, - 0x00, - 0x04, - 0x39, - 0x00, - 0x08, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x47, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x13, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x80, - 0x96, - 0x96, - 0xEA, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x0E, - 0xED, - 0xED, - 0xED, - 0xEF, - 0xEA, - 0xEA, - 0xEF, - 0xEC, - 0xEB, - 0xE6, - 0xE6, - 0xE6, - 0xEC, - 0xEC, - 0x04, - 0xE6, - 0x01, - 0xD4, - 0x0F, - 0xE6, - 0x00, - 0x22, - 0xDC, - 0xC2, - 0xC2, - 0xC2, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xD1, - 0xAA, - 0xE4, - 0xEA, - 0xED, - 0xEC, - 0xEC, - 0x94, - 0xBC, - 0x94, - 0xA8, - 0x78, - 0xBE, - 0x94, - 0xC2, - 0xAA, - 0xE4, - 0xA8, - 0x8E, - 0x72, - 0x5C, - 0x5C, - 0x5C, - 0x72, - 0x05, - 0x5C, - 0x00, - 0x04, - 0x46, - 0x72, - 0xEF, - 0xE9, - 0x05, - 0x39, - 0x00, - 0xC9, - 0x22, - 0x39, - 0x39, - 0x2D, - 0x39, - 0x4D, - 0x75, - 0x2D, - 0x4D, - 0x49, - 0x60, - 0x60, - 0x65, - 0x83, - 0x53, - 0x55, - 0x3F, - 0x6C, - 0x53, - 0x86, - 0x6C, - 0x6C, - 0x54, - 0x3F, - 0x6C, - 0x3F, - 0x88, - 0x84, - 0x86, - 0x53, - 0x6C, - 0x54, - 0x84, - 0x86, - 0x3E, - 0x84, - 0x3E, - 0x68, - 0x3E, - 0x0E, - 0x33, - 0x27, - 0x3E, - 0x3E, - 0x27, - 0x3E, - 0x66, - 0x83, - 0x51, - 0x51, - 0x3D, - 0x65, - 0x66, - 0x4E, - 0x65, - 0x50, - 0x65, - 0x7B, - 0x4C, - 0x63, - 0x4E, - 0x4E, - 0x62, - 0x4B, - 0x63, - 0x63, - 0x62, - 0xA9, - 0x62, - 0x77, - 0x63, - 0x90, - 0xA9, - 0x5E, - 0x5E, - 0x4C, - 0x4C, - 0x7B, - 0x4B, - 0x21, - 0x47, - 0x21, - 0xBA, - 0x90, - 0x8B, - 0xA5, - 0xA2, - 0xA2, - 0xC2, - 0x73, - 0x73, - 0xBF, - 0x8B, - 0xA2, - 0xB7, - 0xB7, - 0x8B, - 0x5B, - 0x5B, - 0x5B, - 0x8B, - 0xB7, - 0xA2, - 0xB9, - 0x73, - 0x8B, - 0xCD, - 0xE3, - 0xB7, - 0x5B, - 0x5B, - 0x5B, - 0x8B, - 0xCC, - 0xA2, - 0x5B, - 0x5B, - 0x38, - 0x6F, - 0x5B, - 0x47, - 0x8B, - 0xE2, - 0xB8, - 0x47, - 0x47, - 0x47, - 0x43, - 0x6F, - 0x47, - 0x43, - 0x43, - 0x43, - 0x74, - 0xB8, - 0x43, - 0x2A, - 0x1F, - 0x1F, - 0x1F, - 0x10, - 0x10, - 0x37, - 0x6F, - 0x37, - 0x6F, - 0x74, - 0x2A, - 0x2A, - 0x2A, - 0x37, - 0x37, - 0x1F, - 0x6F, - 0x43, - 0x1F, - 0x2A, - 0x2B, - 0x1F, - 0x2B, - 0x10, - 0x44, - 0x44, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x20, - 0x36, - 0x08, - 0x03, - 0x36, - 0x36, - 0x1F, - 0x43, - 0x11, - 0x10, - 0x11, - 0x11, - 0x10, - 0x10, - 0x11, - 0x47, - 0x44, - 0x10, - 0x6F, - 0x10, - 0x2B, - 0x2B, - 0x2B, - 0x45, - 0x1F, - 0x37, - 0x2D, - 0x2D, - 0x2A, - 0x49, - 0x00, - 0x06, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x48, - 0x48, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x80, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x99, - 0x52, - 0x67, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x7C, - 0x99, - 0x52, - 0x96, - 0xDE, - 0xF4, - 0xEA, - 0xEC, - 0xEA, - 0xEC, - 0xDE, - 0x08, - 0xEC, - 0x00, - 0x03, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x06, - 0xEC, - 0x00, - 0x05, - 0xE6, - 0xEC, - 0xEC, - 0xE6, - 0xEC, - 0x00, - 0x06, - 0xE6, - 0x00, - 0x28, - 0xEC, - 0xD4, - 0xE6, - 0xEC, - 0xEB, - 0xEC, - 0xE6, - 0xE4, - 0xC2, - 0xE4, - 0xC2, - 0xE6, - 0xE6, - 0xE4, - 0xC2, - 0xD1, - 0xAA, - 0xBE, - 0xAA, - 0xBE, - 0xE6, - 0xEC, - 0xBE, - 0xDC, - 0xDC, - 0x94, - 0xBE, - 0x78, - 0xE6, - 0xE4, - 0xE6, - 0xD1, - 0xE6, - 0xC2, - 0x8C, - 0x72, - 0x72, - 0x5C, - 0x5C, - 0x72, - 0x04, - 0x5C, - 0x00, - 0x27, - 0x46, - 0x5C, - 0x46, - 0x73, - 0xEF, - 0xAC, - 0x2B, - 0x2D, - 0x2D, - 0x2D, - 0x45, - 0x2D, - 0x39, - 0x10, - 0x39, - 0x60, - 0x60, - 0x3A, - 0x4A, - 0x4A, - 0x60, - 0x3A, - 0x93, - 0x51, - 0x84, - 0x6C, - 0x6C, - 0x55, - 0x40, - 0x55, - 0x54, - 0x55, - 0x54, - 0x54, - 0x88, - 0x3F, - 0x86, - 0x54, - 0x6C, - 0x00, - 0x05, - 0x84, - 0x00, - 0x5A, - 0x53, - 0x84, - 0x33, - 0x84, - 0x33, - 0x53, - 0x3E, - 0x26, - 0x3E, - 0x27, - 0x3E, - 0x66, - 0x51, - 0xAF, - 0x3D, - 0x3D, - 0x3D, - 0x66, - 0x3D, - 0x32, - 0x65, - 0x7B, - 0x50, - 0x50, - 0x4E, - 0x4E, - 0x4B, - 0x63, - 0x63, - 0x77, - 0x62, - 0x4B, - 0xAE, - 0xB0, - 0x90, - 0xD4, - 0xE5, - 0xC0, - 0xC0, - 0xBA, - 0xBA, - 0x62, - 0x5E, - 0xBF, - 0xBF, - 0x90, - 0x92, - 0x62, - 0x62, - 0x4B, - 0x5E, - 0x73, - 0xA2, - 0x73, - 0xA2, - 0x5E, - 0x5B, - 0x38, - 0x47, - 0x38, - 0x38, - 0x5B, - 0xB7, - 0xA2, - 0x5B, - 0x38, - 0x8B, - 0x5C, - 0xB7, - 0x73, - 0xB7, - 0x38, - 0x38, - 0x8B, - 0xE3, - 0xCD, - 0x8B, - 0x5B, - 0x5B, - 0x5B, - 0xA2, - 0xCC, - 0x8B, - 0x6F, - 0x5B, - 0x6F, - 0x6F, - 0xBA, - 0xB8, - 0xA2, - 0x05, - 0x47, - 0x00, - 0x25, - 0x6F, - 0x43, - 0x47, - 0x43, - 0x43, - 0x6F, - 0xB8, - 0x43, - 0x2A, - 0x2B, - 0x1F, - 0x1F, - 0x10, - 0x10, - 0x1F, - 0x74, - 0x70, - 0x2A, - 0x2A, - 0x2A, - 0x37, - 0x2A, - 0x37, - 0x1F, - 0x36, - 0xB5, - 0x37, - 0x2A, - 0x1F, - 0x2B, - 0x1F, - 0x2B, - 0x20, - 0x36, - 0x37, - 0x08, - 0x11, - 0x00, - 0x06, - 0x08, - 0x00, - 0x1E, - 0x2A, - 0x1F, - 0x08, - 0x08, - 0x47, - 0x2B, - 0x36, - 0x36, - 0x11, - 0x10, - 0x11, - 0x10, - 0x10, - 0x11, - 0x10, - 0x6F, - 0x11, - 0x48, - 0x39, - 0x10, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x37, - 0x37, - 0x2D, - 0x49, - 0x2A, - 0x2D, - 0x05, - 0x39, - 0x00, - 0x07, - 0x2C, - 0x5D, - 0x5D, - 0x5D, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x99, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x52, - 0x96, - 0xE0, - 0xEA, - 0xEC, - 0xEA, - 0xDE, - 0xEC, - 0xEC, - 0xEC, - 0xEA, - 0xEC, - 0xEA, - 0x05, - 0xEC, - 0x01, - 0xEB, - 0x01, - 0xEB, - 0x05, - 0xEC, - 0x00, - 0x05, - 0xE6, - 0xEC, - 0xEC, - 0xE6, - 0xEC, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xEB, - 0x05, - 0xE6, - 0x00, - 0x21, - 0xD4, - 0xE6, - 0xEB, - 0xE6, - 0xDC, - 0xDC, - 0xC2, - 0xE4, - 0xC2, - 0xE4, - 0xE6, - 0xE6, - 0xD1, - 0xAA, - 0xAA, - 0xAA, - 0xD1, - 0xCF, - 0xEC, - 0xD4, - 0xEC, - 0xEA, - 0xBE, - 0xBE, - 0xA8, - 0xA8, - 0xBE, - 0xE6, - 0xA8, - 0xBE, - 0xC2, - 0x8E, - 0x8E, - 0x00, - 0x04, - 0x72, - 0x00, - 0x59, - 0x5C, - 0x72, - 0x5C, - 0x5C, - 0x5C, - 0x3B, - 0x5C, - 0x38, - 0x73, - 0xEC, - 0x60, - 0x10, - 0x23, - 0x2B, - 0x20, - 0x2D, - 0x2D, - 0x20, - 0x2C, - 0x4C, - 0x75, - 0x3A, - 0x4D, - 0x23, - 0x61, - 0x3A, - 0x8F, - 0x65, - 0x83, - 0x3F, - 0x6C, - 0x88, - 0x54, - 0x6C, - 0x3F, - 0x55, - 0x54, - 0x3F, - 0x84, - 0x55, - 0x86, - 0x3F, - 0x55, - 0x53, - 0x6B, - 0x84, - 0x6C, - 0x3F, - 0x53, - 0x84, - 0x33, - 0x33, - 0x33, - 0x68, - 0x3E, - 0x33, - 0x0E, - 0x27, - 0x7D, - 0x27, - 0x3E, - 0x7D, - 0x27, - 0x7D, - 0x66, - 0x7D, - 0x51, - 0x65, - 0x66, - 0x4E, - 0x65, - 0x50, - 0x32, - 0x93, - 0x4E, - 0x63, - 0x4E, - 0x4E, - 0x77, - 0x62, - 0xC0, - 0xC0, - 0xBD, - 0xBF, - 0x92, - 0x92, - 0xBA, - 0xA5, - 0x62, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x33, - 0x92, - 0x90, - 0x90, - 0x62, - 0x4B, - 0xA2, - 0xCE, - 0xA2, - 0x5E, - 0x5B, - 0x5B, - 0x8D, - 0xA2, - 0x73, - 0x5B, - 0x38, - 0x38, - 0x38, - 0x5B, - 0xB7, - 0xA2, - 0xB9, - 0xB7, - 0x5B, - 0xB7, - 0xB7, - 0x38, - 0x38, - 0x8B, - 0x5B, - 0xB9, - 0xE8, - 0xB7, - 0x5B, - 0x5B, - 0x5B, - 0x8B, - 0xB7, - 0xA2, - 0x6F, - 0x38, - 0xB7, - 0xB7, - 0xB7, - 0x47, - 0x6F, - 0xCC, - 0x6F, - 0x47, - 0x47, - 0x47, - 0x00, - 0x04, - 0x43, - 0x00, - 0x06, - 0x36, - 0x6F, - 0xB8, - 0x43, - 0x2A, - 0x1F, - 0x04, - 0x10, - 0x00, - 0x19, - 0x2B, - 0x10, - 0x2B, - 0x2A, - 0x2A, - 0x2A, - 0x37, - 0x1F, - 0x70, - 0x6F, - 0x2A, - 0x1F, - 0x2A, - 0x1F, - 0x1F, - 0x2B, - 0x2B, - 0x1F, - 0x20, - 0x36, - 0x20, - 0x08, - 0x11, - 0x08, - 0x11, - 0x00, - 0x04, - 0x08, - 0x00, - 0x1C, - 0x36, - 0x11, - 0x03, - 0x20, - 0x47, - 0x10, - 0x47, - 0x1F, - 0x11, - 0x20, - 0x10, - 0x10, - 0x20, - 0x11, - 0x36, - 0x47, - 0x11, - 0x6F, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x45, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x2D, - 0x06, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x48, - 0x48, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x19, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x99, - 0x52, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x67, - 0x80, - 0x96, - 0xEA, - 0xEA, - 0xEC, - 0xEC, - 0xEA, - 0xEC, - 0xEC, - 0xEA, - 0x00, - 0x06, - 0xEC, - 0x01, - 0xEA, - 0x0C, - 0xEC, - 0x00, - 0x57, - 0xEB, - 0xE6, - 0xEC, - 0xE6, - 0xE6, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0xEC, - 0xD4, - 0xE6, - 0xE6, - 0xEC, - 0xE6, - 0xEB, - 0xEB, - 0xE4, - 0xC2, - 0xC2, - 0xD1, - 0xD1, - 0xC2, - 0xE6, - 0xE4, - 0xE4, - 0xAA, - 0xD1, - 0xCF, - 0xE6, - 0xF4, - 0xEC, - 0xED, - 0xE6, - 0xCF, - 0xAA, - 0xA8, - 0x78, - 0xD1, - 0xE4, - 0xAA, - 0xCF, - 0xC2, - 0x8C, - 0x8E, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x5C, - 0x3B, - 0x5C, - 0x5C, - 0x46, - 0x5B, - 0x90, - 0xD2, - 0x23, - 0x23, - 0x14, - 0x20, - 0x2D, - 0x2B, - 0x23, - 0x48, - 0x10, - 0x3A, - 0x76, - 0x91, - 0x23, - 0x76, - 0x23, - 0xA3, - 0x76, - 0x7D, - 0x84, - 0x6C, - 0x55, - 0x3F, - 0x3F, - 0x54, - 0x55, - 0x54, - 0x3F, - 0x54, - 0x00, - 0x04, - 0x6C, - 0x00, - 0x66, - 0x3F, - 0x6C, - 0x53, - 0x86, - 0x53, - 0x3F, - 0x84, - 0x53, - 0x53, - 0x1A, - 0x53, - 0x33, - 0x27, - 0x1A, - 0x27, - 0x3E, - 0x27, - 0x51, - 0x51, - 0x51, - 0x68, - 0x51, - 0x51, - 0x3D, - 0x66, - 0x65, - 0x64, - 0x65, - 0x32, - 0x50, - 0x65, - 0x4E, - 0x7B, - 0x77, - 0xA9, - 0x7A, - 0x92, - 0xA9, - 0x90, - 0x92, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0x90, - 0x62, - 0x62, - 0x62, - 0xA2, - 0x73, - 0x73, - 0x90, - 0x73, - 0x5B, - 0x4B, - 0xB9, - 0xB9, - 0xBA, - 0xB9, - 0xA2, - 0x73, - 0x5B, - 0x5E, - 0xA2, - 0xA2, - 0x73, - 0x5B, - 0x5B, - 0x38, - 0x46, - 0xB7, - 0xE3, - 0xB9, - 0x8B, - 0x38, - 0x38, - 0x8B, - 0xA5, - 0xA2, - 0x8B, - 0xA2, - 0xD8, - 0xCD, - 0x8B, - 0x5B, - 0x5B, - 0x5B, - 0xB7, - 0xB7, - 0x6F, - 0xB8, - 0xE2, - 0x5B, - 0x47, - 0xB7, - 0x8D, - 0xB7, - 0x6F, - 0x47, - 0x47, - 0x47, - 0x04, - 0x43, - 0x00, - 0x05, - 0x36, - 0x47, - 0xB8, - 0x43, - 0x1F, - 0x00, - 0x07, - 0x10, - 0x00, - 0x15, - 0x1F, - 0x2A, - 0x2A, - 0x2A, - 0x6F, - 0x6F, - 0x1F, - 0x1F, - 0x37, - 0x2A, - 0x1F, - 0x1F, - 0x1F, - 0x2B, - 0x2B, - 0x10, - 0x10, - 0x43, - 0x11, - 0x08, - 0x11, - 0x00, - 0x05, - 0x08, - 0x00, - 0x29, - 0x11, - 0x43, - 0x08, - 0x08, - 0x2A, - 0x36, - 0x10, - 0x43, - 0x11, - 0x11, - 0x10, - 0x10, - 0x20, - 0x10, - 0x20, - 0x47, - 0x2B, - 0x39, - 0x2C, - 0x20, - 0x2B, - 0x2B, - 0x2D, - 0x2D, - 0x1F, - 0x2D, - 0x2D, - 0x44, - 0x39, - 0x2D, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x48, - 0x4D, - 0x70, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x00, - 0x04, - 0x67, - 0x00, - 0x12, - 0x99, - 0x7C, - 0x7C, - 0x67, - 0x80, - 0x96, - 0xDE, - 0xEA, - 0xEA, - 0xEA, - 0xEC, - 0xEA, - 0xEC, - 0xEC, - 0xEC, - 0xEA, - 0xEC, - 0xEA, - 0x04, - 0xEC, - 0x00, - 0x06, - 0xEF, - 0xEC, - 0xEC, - 0xEF, - 0xEC, - 0xEF, - 0x07, - 0xEC, - 0x00, - 0xC0, - 0xEB, - 0xEC, - 0xE6, - 0xE6, - 0xEC, - 0xEB, - 0xE6, - 0xEB, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0xEB, - 0xEC, - 0xEB, - 0xE6, - 0xE4, - 0xE4, - 0xC2, - 0xE4, - 0xD1, - 0xD1, - 0xC2, - 0xE4, - 0xE4, - 0xAA, - 0xD1, - 0xD1, - 0xE6, - 0xEF, - 0xC2, - 0xDC, - 0xCF, - 0xEC, - 0xEA, - 0x78, - 0xA8, - 0x78, - 0xEC, - 0xDC, - 0xE6, - 0xAA, - 0x8E, - 0x8E, - 0x72, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x5C, - 0x46, - 0x5C, - 0x5C, - 0x46, - 0x46, - 0x47, - 0xE4, - 0x93, - 0x10, - 0x23, - 0x2B, - 0x39, - 0x23, - 0x2D, - 0x39, - 0x10, - 0x48, - 0x8F, - 0x8F, - 0x49, - 0x61, - 0x23, - 0x4D, - 0x61, - 0xA9, - 0x7D, - 0x6C, - 0x6C, - 0x55, - 0x88, - 0x3F, - 0x6B, - 0x54, - 0x86, - 0x53, - 0x86, - 0x6C, - 0x86, - 0x6C, - 0x54, - 0x6C, - 0x53, - 0x3F, - 0x84, - 0x84, - 0x53, - 0x53, - 0x53, - 0x33, - 0x3E, - 0x1A, - 0x33, - 0x33, - 0x3E, - 0x3E, - 0x27, - 0x83, - 0x51, - 0x3E, - 0x51, - 0x26, - 0x51, - 0x66, - 0x3D, - 0x3D, - 0x50, - 0x65, - 0x64, - 0x50, - 0x32, - 0x63, - 0xA9, - 0x92, - 0x7A, - 0x90, - 0xA9, - 0x92, - 0xA9, - 0x92, - 0x92, - 0xA9, - 0x92, - 0xA5, - 0xBD, - 0x90, - 0x62, - 0x62, - 0x5E, - 0x62, - 0x90, - 0xA2, - 0x90, - 0x90, - 0x5E, - 0x73, - 0xB7, - 0xA5, - 0xA5, - 0xB9, - 0xA5, - 0xB7, - 0xB7, - 0xA2, - 0x5B, - 0x8B, - 0x73, - 0xB7, - 0x73, - 0x5B, - 0x5B, - 0x5B, - 0x5C, - 0xB7, - 0xCD, - 0xB9, - 0x5B, - 0x8B, - 0xB7, - 0xB7, - 0x8B, - 0x5B, - 0x8B, - 0xB9, - 0xE3, - 0xB7, - 0x5B, - 0x5B, - 0x6F, - 0x8B, - 0xCC, - 0x5B, - 0x6F, - 0x47, - 0xB7, - 0x8D, - 0x43, - 0x6F, - 0xB7, - 0x8B, - 0x47, - 0x43, - 0x47, - 0x04, - 0x43, - 0x00, - 0x07, - 0x36, - 0x70, - 0x8D, - 0x37, - 0x10, - 0x1F, - 0x2B, - 0x00, - 0x05, - 0x10, - 0x00, - 0x04, - 0x1F, - 0x36, - 0x6F, - 0x70, - 0x04, - 0x1F, - 0x00, - 0x0A, - 0x44, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x2B, - 0x2B, - 0x20, - 0x2A, - 0x44, - 0x07, - 0x08, - 0x00, - 0x18, - 0x03, - 0x10, - 0x2A, - 0x03, - 0x08, - 0x47, - 0x2B, - 0x36, - 0x2A, - 0x11, - 0x10, - 0x10, - 0x11, - 0x10, - 0x20, - 0x37, - 0x48, - 0x11, - 0x47, - 0x20, - 0x20, - 0x1F, - 0x2B, - 0x37, - 0x04, - 0x2D, - 0x06, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x52, - 0x96, - 0xD4, - 0xEA, - 0xEC, - 0xEA, - 0xEC, - 0xEA, - 0xEC, - 0xEA, - 0xEC, - 0xEA, - 0xEC, - 0xEF, - 0xEC, - 0xEA, - 0xEC, - 0xEC, - 0xEF, - 0x0B, - 0xEC, - 0x00, - 0x31, - 0xEB, - 0xEC, - 0xE6, - 0xEC, - 0xEB, - 0xE6, - 0xEC, - 0xEB, - 0xE6, - 0xEC, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0xEB, - 0xE6, - 0xE6, - 0xE4, - 0xEC, - 0xE6, - 0xC2, - 0xE4, - 0xD1, - 0xD1, - 0xD1, - 0xE4, - 0xE4, - 0xBE, - 0xD1, - 0xE4, - 0xEA, - 0xEF, - 0xE6, - 0xEC, - 0xEC, - 0xED, - 0xD1, - 0xA8, - 0x8E, - 0xA8, - 0xAA, - 0xEC, - 0xE4, - 0xA8, - 0x8E, - 0x8C, - 0x72, - 0x72, - 0x72, - 0x00, - 0x05, - 0x5C, - 0x00, - 0x4A, - 0x3B, - 0x46, - 0x5B, - 0x74, - 0xE6, - 0x39, - 0x10, - 0x23, - 0x2C, - 0x20, - 0x39, - 0x2A, - 0x09, - 0x47, - 0x4B, - 0x91, - 0x49, - 0x60, - 0x23, - 0x76, - 0x3A, - 0x91, - 0x3D, - 0x83, - 0x3F, - 0x6C, - 0x6C, - 0x6C, - 0x54, - 0x54, - 0x6C, - 0x3F, - 0x55, - 0x84, - 0x86, - 0x6C, - 0x86, - 0x86, - 0x84, - 0x6B, - 0x53, - 0xB1, - 0x53, - 0x53, - 0x84, - 0x1B, - 0x83, - 0x33, - 0x3E, - 0x33, - 0x33, - 0x33, - 0x27, - 0x83, - 0x27, - 0x7D, - 0x51, - 0x3E, - 0x66, - 0x66, - 0x66, - 0x3D, - 0x51, - 0x3D, - 0x4E, - 0x3D, - 0x65, - 0x7B, - 0x7A, - 0xA9, - 0xA9, - 0x92, - 0x92, - 0xBF, - 0x04, - 0x92, - 0x04, - 0xBD, - 0x00, - 0x0B, - 0x90, - 0x90, - 0x5E, - 0x62, - 0x62, - 0x62, - 0x90, - 0x90, - 0x90, - 0x73, - 0x73, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x1A, - 0xA2, - 0xB7, - 0xA5, - 0xA5, - 0xB9, - 0xA2, - 0x5B, - 0x73, - 0xA5, - 0xA2, - 0x5B, - 0x46, - 0x5B, - 0x8B, - 0xB9, - 0xE3, - 0xA2, - 0x5B, - 0xB7, - 0x38, - 0x5B, - 0xA2, - 0xA2, - 0x73, - 0xE8, - 0xB9, - 0x04, - 0x5B, - 0x00, - 0x0A, - 0xCC, - 0x8B, - 0x6F, - 0xE2, - 0x5B, - 0x47, - 0x47, - 0x47, - 0xB7, - 0x8D, - 0x07, - 0x43, - 0x00, - 0x07, - 0x12, - 0x2A, - 0x74, - 0x1F, - 0x10, - 0x10, - 0x2B, - 0x00, - 0x04, - 0x10, - 0x00, - 0x14, - 0x39, - 0xB5, - 0x44, - 0x1F, - 0x37, - 0x37, - 0x37, - 0x1F, - 0x2A, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x2B, - 0x2B, - 0x70, - 0x43, - 0x11, - 0x08, - 0x11, - 0x07, - 0x08, - 0x00, - 0x1B, - 0x36, - 0x20, - 0x03, - 0x20, - 0x47, - 0x10, - 0x47, - 0x10, - 0x10, - 0x10, - 0x20, - 0x20, - 0x10, - 0x11, - 0x36, - 0x14, - 0x2B, - 0x48, - 0x11, - 0x2B, - 0x2D, - 0x2B, - 0x37, - 0x2D, - 0x2A, - 0x2D, - 0x49, - 0x00, - 0x06, - 0x39, - 0x00, - 0x06, - 0x5D, - 0x48, - 0x5D, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x05, - 0x52, - 0x80, - 0x67, - 0x67, - 0x67, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x04, - 0x82, - 0x6A, - 0x96, - 0x7C, - 0x05, - 0xEA, - 0x04, - 0xEC, - 0x01, - 0xEA, - 0x07, - 0xEC, - 0x01, - 0xEF, - 0x06, - 0xEC, - 0x01, - 0xEA, - 0x04, - 0xEC, - 0x00, - 0x05, - 0xEB, - 0xE6, - 0xE6, - 0xEB, - 0xEB, - 0x00, - 0x05, - 0xE6, - 0x00, - 0x29, - 0xD4, - 0xE6, - 0xEC, - 0xEC, - 0xE6, - 0xE6, - 0xEB, - 0xEB, - 0xC2, - 0xE4, - 0xE6, - 0xE6, - 0xC2, - 0xE6, - 0xE6, - 0xD1, - 0xD1, - 0xE4, - 0xED, - 0xED, - 0xED, - 0xE1, - 0xEA, - 0xED, - 0xE4, - 0xBE, - 0xA8, - 0xA8, - 0x8E, - 0xC2, - 0xDC, - 0xA8, - 0x8E, - 0x8E, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x93, - 0x5B, - 0xBF, - 0xDB, - 0x20, - 0x14, - 0x39, - 0x20, - 0x39, - 0x23, - 0x3A, - 0x48, - 0x10, - 0x3A, - 0x8F, - 0x76, - 0x49, - 0x76, - 0x3A, - 0xA6, - 0x79, - 0xAF, - 0x84, - 0x86, - 0x3F, - 0x6C, - 0x6C, - 0x3F, - 0x6C, - 0x54, - 0x6C, - 0x54, - 0x3F, - 0x54, - 0x3F, - 0x54, - 0x84, - 0x3F, - 0x53, - 0x3F, - 0x53, - 0x3F, - 0x53, - 0x53, - 0x53, - 0x33, - 0x84, - 0x33, - 0x68, - 0x3E, - 0x27, - 0x7E, - 0x51, - 0x3E, - 0x27, - 0x51, - 0x7D, - 0x66, - 0x66, - 0x3D, - 0x3D, - 0x3D, - 0x65, - 0x7B, - 0x7B, - 0x7B, - 0xA9, - 0x7A, - 0x7A, - 0xA9, - 0x7A, - 0x92, - 0x92, - 0xBF, - 0x92, - 0xBF, - 0xBD, - 0x92, - 0xBE, - 0xCE, - 0x92, - 0x62, - 0x90, - 0x62, - 0x90, - 0x73, - 0x90, - 0x73, - 0xA2, - 0x73, - 0x5E, - 0xA5, - 0xB7, - 0xB9, - 0xB9, - 0xA2, - 0xA5, - 0xB7, - 0xB7, - 0xCE, - 0xCD, - 0xB9, - 0xB7, - 0x8B, - 0x72, - 0xB7, - 0xB7, - 0x46, - 0x46, - 0x5B, - 0x72, - 0xE3, - 0xB9, - 0x5B, - 0x38, - 0x5B, - 0xA2, - 0xB8, - 0xB7, - 0x8B, - 0xE3, - 0xB9, - 0x8B, - 0x6F, - 0x5B, - 0x6F, - 0xB7, - 0xB8, - 0x6F, - 0xB7, - 0xB5, - 0x47, - 0x43, - 0x47, - 0xB8, - 0xB5, - 0x47, - 0x43, - 0x43, - 0x43, - 0x36, - 0x2A, - 0x14, - 0x06, - 0x2A, - 0xA3, - 0x2A, - 0x1F, - 0x00, - 0x04, - 0x10, - 0x00, - 0x13, - 0x20, - 0x44, - 0x70, - 0x1F, - 0x2A, - 0x37, - 0x1F, - 0x1F, - 0x1F, - 0x2A, - 0x1F, - 0x1F, - 0x2B, - 0x2B, - 0x44, - 0x47, - 0x44, - 0x10, - 0x11, - 0x00, - 0x0A, - 0x08, - 0x00, - 0x15, - 0x36, - 0x08, - 0x08, - 0x36, - 0x2A, - 0x37, - 0x36, - 0x11, - 0x10, - 0x20, - 0x20, - 0x10, - 0x11, - 0x11, - 0x48, - 0x11, - 0x47, - 0x20, - 0x20, - 0x1F, - 0x1F, - 0x00, - 0x04, - 0x2D, - 0x01, - 0x2A, - 0x01, - 0x49, - 0x04, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x5D, - 0x48, - 0x70, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x04, - 0x82, - 0x06, - 0x80, - 0x00, - 0x07, - 0x99, - 0x67, - 0x6B, - 0x87, - 0x67, - 0x7C, - 0xDE, - 0x00, - 0x09, - 0xEA, - 0x00, - 0x0F, - 0xEF, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEC, - 0xEC, - 0xEF, - 0xEA, - 0x00, - 0x06, - 0xEC, - 0x00, - 0x0B, - 0xEB, - 0xEC, - 0xE6, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0xEC, - 0xE6, - 0xE6, - 0xEA, - 0x00, - 0x05, - 0xEC, - 0x00, - 0x4C, - 0xE6, - 0xDC, - 0xE6, - 0xE6, - 0xEC, - 0xEB, - 0xE6, - 0xC2, - 0xD1, - 0xC2, - 0xE4, - 0xDC, - 0xD1, - 0xC2, - 0xCF, - 0xD1, - 0xAA, - 0xD1, - 0x94, - 0xBE, - 0x78, - 0xA8, - 0x78, - 0xA8, - 0x78, - 0x8E, - 0x8E, - 0x72, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x5C, - 0x5C, - 0x5B, - 0xEB, - 0x79, - 0x2A, - 0x22, - 0x23, - 0x48, - 0x23, - 0x39, - 0x2C, - 0x10, - 0x22, - 0x60, - 0x60, - 0x5F, - 0x49, - 0x2F, - 0x76, - 0x60, - 0xAC, - 0x68, - 0x86, - 0x84, - 0x86, - 0x3F, - 0x6C, - 0x6C, - 0x3F, - 0x86, - 0x84, - 0x6B, - 0x53, - 0x6C, - 0x3F, - 0x84, - 0x54, - 0x53, - 0x84, - 0x05, - 0x53, - 0x00, - 0x1C, - 0x3E, - 0x3E, - 0x3E, - 0x68, - 0x33, - 0x68, - 0x7D, - 0x7D, - 0x83, - 0x51, - 0x7E, - 0x7D, - 0x7D, - 0x97, - 0x7B, - 0x66, - 0x65, - 0xAC, - 0x95, - 0x7A, - 0x7B, - 0x7B, - 0x92, - 0x92, - 0x92, - 0xBD, - 0x92, - 0xBF, - 0x05, - 0xBD, - 0x00, - 0x3E, - 0xCF, - 0xE8, - 0xD1, - 0x92, - 0x90, - 0x90, - 0xA5, - 0xC0, - 0xC0, - 0xBD, - 0xC2, - 0x90, - 0x92, - 0xDA, - 0xA5, - 0xBC, - 0xCE, - 0xB9, - 0xE4, - 0xAA, - 0xD0, - 0xE4, - 0xCF, - 0xD1, - 0xCF, - 0xCD, - 0xB7, - 0x5C, - 0xBC, - 0xCF, - 0x72, - 0x5C, - 0x5C, - 0x5C, - 0xCD, - 0xE8, - 0xB7, - 0x38, - 0x38, - 0x5E, - 0xCD, - 0x8B, - 0xB9, - 0x5C, - 0xB9, - 0xA2, - 0x5B, - 0x5B, - 0x5B, - 0xB7, - 0xA2, - 0x6F, - 0xB7, - 0xB8, - 0x47, - 0x6F, - 0x8B, - 0xCC, - 0x8D, - 0x43, - 0x47, - 0x43, - 0x04, - 0x2A, - 0x00, - 0x0C, - 0x1F, - 0x48, - 0xB8, - 0x36, - 0x37, - 0x1F, - 0x1F, - 0x10, - 0x10, - 0x10, - 0x48, - 0x70, - 0x05, - 0x2A, - 0x00, - 0x0A, - 0x36, - 0x43, - 0x1F, - 0x44, - 0x6F, - 0x47, - 0x1F, - 0x1F, - 0x1F, - 0x2B, - 0x06, - 0x11, - 0x00, - 0x21, - 0x08, - 0x08, - 0x11, - 0x08, - 0x1F, - 0x2A, - 0x03, - 0x11, - 0x47, - 0x10, - 0x47, - 0x2A, - 0x2A, - 0x1F, - 0x10, - 0x10, - 0x10, - 0x08, - 0x36, - 0x22, - 0x2B, - 0x47, - 0x2B, - 0x37, - 0x37, - 0x22, - 0x44, - 0x39, - 0x44, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x00, - 0x06, - 0x48, - 0x00, - 0x03, - 0x74, - 0x5E, - 0x60, - 0x00, - 0x00, - 0x00, - 0x01, - 0x85, - 0x05, - 0x6A, - 0x01, - 0x9B, - 0x04, - 0x82, - 0x00, - 0x0A, - 0x80, - 0x80, - 0x80, - 0x82, - 0x6A, - 0x67, - 0x67, - 0x67, - 0xDE, - 0xE0, - 0x0E, - 0xEA, - 0x09, - 0xEF, - 0x06, - 0xEC, - 0x00, - 0x04, - 0xEB, - 0xEC, - 0xEC, - 0xE6, - 0x05, - 0xEC, - 0x00, - 0x07, - 0xE6, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0xE6, - 0x00, - 0x05, - 0xDC, - 0x06, - 0xC2, - 0x00, - 0xA4, - 0xD1, - 0xD1, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0x94, - 0xA8, - 0x94, - 0x78, - 0xA8, - 0x8E, - 0xA8, - 0x8E, - 0x8C, - 0x8E, - 0x72, - 0x8C, - 0x72, - 0x8C, - 0x5C, - 0x72, - 0x72, - 0x5C, - 0x72, - 0x5B, - 0xA9, - 0xE6, - 0x47, - 0x1F, - 0x2D, - 0x48, - 0x2B, - 0x48, - 0x2D, - 0x2B, - 0x22, - 0x5D, - 0x4D, - 0x4D, - 0x4D, - 0x39, - 0x76, - 0x4D, - 0x93, - 0x51, - 0x9C, - 0x3F, - 0x6C, - 0x54, - 0x6C, - 0x3F, - 0x6C, - 0x54, - 0x3F, - 0x6C, - 0x53, - 0x6B, - 0x53, - 0x6C, - 0x84, - 0x54, - 0x84, - 0x53, - 0x9C, - 0x33, - 0x84, - 0x68, - 0x53, - 0x68, - 0x33, - 0x68, - 0x33, - 0x3E, - 0x7D, - 0x7D, - 0x3E, - 0x51, - 0x7E, - 0x7D, - 0x97, - 0x66, - 0x97, - 0x97, - 0x7B, - 0xAD, - 0x7A, - 0xBF, - 0xAC, - 0x7B, - 0x97, - 0xAB, - 0xC3, - 0xAE, - 0xBF, - 0xD0, - 0xBF, - 0xDC, - 0xDE, - 0xE4, - 0xD4, - 0xEC, - 0xE6, - 0xEA, - 0xE6, - 0xC2, - 0xBD, - 0xB9, - 0xDC, - 0xE6, - 0xEA, - 0xD4, - 0xDC, - 0xDE, - 0xC2, - 0xB9, - 0xD8, - 0xCD, - 0xDC, - 0xE6, - 0xD1, - 0xE6, - 0xCE, - 0xBC, - 0xDA, - 0xCF, - 0xA4, - 0xCD, - 0xD8, - 0xD8, - 0xBC, - 0xA4, - 0xCD, - 0x5C, - 0x8B, - 0x46, - 0x73, - 0xE3, - 0xCD, - 0x5B, - 0xB7, - 0xA2, - 0xCD, - 0xA2, - 0x8B, - 0x8B, - 0xB9, - 0xCC, - 0x8B, - 0x5B, - 0x5B, - 0xB8, - 0xCC, - 0x5B, - 0xB7, - 0xB7, - 0x6F, - 0x9F, - 0x5B, - 0xB8, - 0xA2, - 0x43, - 0x36, - 0x04, - 0x2A, - 0x00, - 0x05, - 0x43, - 0x43, - 0x6F, - 0xB8, - 0x36, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x13, - 0x10, - 0x10, - 0x6F, - 0x43, - 0x2A, - 0x44, - 0x44, - 0x2A, - 0x43, - 0x43, - 0x6F, - 0x6F, - 0x36, - 0x1F, - 0x37, - 0x37, - 0x1F, - 0x1F, - 0x10, - 0x00, - 0x07, - 0x11, - 0x00, - 0x1B, - 0x08, - 0x11, - 0x08, - 0x43, - 0x10, - 0x08, - 0x2A, - 0x47, - 0x1F, - 0x6F, - 0x1E, - 0x2A, - 0x10, - 0x2B, - 0x1F, - 0x10, - 0x20, - 0x6F, - 0x10, - 0x74, - 0x48, - 0x2A, - 0x39, - 0x39, - 0x39, - 0x44, - 0x2C, - 0x00, - 0x06, - 0x48, - 0x00, - 0x07, - 0x70, - 0x70, - 0x70, - 0x4C, - 0x5E, - 0xA2, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x67, - 0x67, - 0x67, - 0x99, - 0x04, - 0x7C, - 0x00, - 0x0F, - 0x67, - 0x52, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xEC, - 0xEF, - 0xEF, - 0xEA, - 0xEC, - 0xEA, - 0xEC, - 0xEC, - 0xEA, - 0x00, - 0x05, - 0xEC, - 0x00, - 0x1B, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0xE6, - 0xEB, - 0xEB, - 0xEB, - 0xE6, - 0xE6, - 0xEC, - 0xE6, - 0xE6, - 0xEB, - 0x00, - 0x06, - 0xE6, - 0x00, - 0x06, - 0xDC, - 0xE4, - 0xDC, - 0xC2, - 0xE4, - 0xC2, - 0x04, - 0xD1, - 0x00, - 0x04, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0x04, - 0x94, - 0x00, - 0x37, - 0xA8, - 0xA8, - 0x78, - 0xA8, - 0x8E, - 0x78, - 0x8E, - 0x8E, - 0x8C, - 0x72, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x5B, - 0xC0, - 0xAC, - 0x20, - 0x2D, - 0x2C, - 0x20, - 0x48, - 0x23, - 0x23, - 0x14, - 0x11, - 0x20, - 0x76, - 0x5F, - 0x76, - 0x4D, - 0x4D, - 0xA6, - 0x65, - 0x69, - 0x84, - 0x6B, - 0x54, - 0x6C, - 0x3F, - 0x6C, - 0x3F, - 0x54, - 0x3F, - 0x54, - 0x54, - 0x84, - 0x6C, - 0x53, - 0x84, - 0x00, - 0x04, - 0x53, - 0x00, - 0x60, - 0x84, - 0x33, - 0x84, - 0x53, - 0x53, - 0x54, - 0x68, - 0xB1, - 0x83, - 0x68, - 0x3E, - 0x3E, - 0x7E, - 0x66, - 0x53, - 0x87, - 0x87, - 0xD6, - 0x9A, - 0x97, - 0x7B, - 0x7A, - 0x7A, - 0x62, - 0xAC, - 0xC6, - 0xDF, - 0xDE, - 0xC3, - 0x92, - 0xBD, - 0xAE, - 0xD4, - 0xDE, - 0xC7, - 0xD1, - 0xD4, - 0xC2, - 0xE6, - 0xED, - 0xCE, - 0xCE, - 0xCF, - 0xCE, - 0xC2, - 0xAD, - 0xC0, - 0x7A, - 0xA5, - 0xA5, - 0xCE, - 0xB9, - 0xB9, - 0xBE, - 0xD0, - 0xE4, - 0xBD, - 0xBD, - 0x8C, - 0xCC, - 0xA5, - 0xB9, - 0xA4, - 0xD8, - 0xA4, - 0x72, - 0x72, - 0xA5, - 0xB9, - 0x46, - 0x38, - 0x5B, - 0xB7, - 0xE3, - 0x73, - 0xB7, - 0xB7, - 0x5B, - 0x5B, - 0xA2, - 0xCE, - 0xA2, - 0xB7, - 0x5B, - 0x47, - 0x38, - 0xB5, - 0xB7, - 0x47, - 0x8D, - 0xB8, - 0x47, - 0x47, - 0x43, - 0x74, - 0x6F, - 0x04, - 0x1F, - 0x00, - 0x07, - 0x36, - 0x36, - 0x36, - 0x2A, - 0x6F, - 0xB5, - 0x2A, - 0x00, - 0x04, - 0x10, - 0x00, - 0x13, - 0x20, - 0x10, - 0x70, - 0x44, - 0x1F, - 0x1F, - 0x1F, - 0x36, - 0xB5, - 0x44, - 0x2B, - 0x10, - 0x2B, - 0x10, - 0x2B, - 0x10, - 0x2B, - 0x10, - 0x11, - 0x00, - 0x07, - 0x08, - 0x00, - 0x17, - 0x03, - 0x08, - 0x11, - 0x2A, - 0x03, - 0x08, - 0x43, - 0x1F, - 0x5D, - 0x36, - 0x11, - 0x20, - 0x20, - 0x10, - 0x10, - 0x20, - 0x2C, - 0x48, - 0x2D, - 0x74, - 0x2B, - 0x2B, - 0x1F, - 0x00, - 0x04, - 0x2D, - 0x01, - 0x2A, - 0x01, - 0x49, - 0x04, - 0x39, - 0x00, - 0x06, - 0x2C, - 0x5D, - 0x5D, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x01, - 0x80, - 0x01, - 0x82, - 0x05, - 0x80, - 0x05, - 0x67, - 0x00, - 0x04, - 0x7C, - 0x7C, - 0x67, - 0x80, - 0x04, - 0x96, - 0x00, - 0x09, - 0xAE, - 0xEA, - 0xEA, - 0xEA, - 0xEF, - 0xEC, - 0xEA, - 0xEA, - 0xEC, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x04, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0x06, - 0xEF, - 0x04, - 0xEC, - 0x00, - 0x0C, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xEB, - 0xE6, - 0xEC, - 0xEC, - 0xEC, - 0xE6, - 0xEC, - 0x06, - 0xE6, - 0x00, - 0x0C, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xC2, - 0xE4, - 0xC2, - 0xE4, - 0xD1, - 0xD1, - 0xD1, - 0xAA, - 0x04, - 0xBE, - 0x00, - 0x7B, - 0x94, - 0x94, - 0xA8, - 0xA8, - 0xA8, - 0x94, - 0x8E, - 0xA8, - 0x8E, - 0xA8, - 0x8E, - 0x8E, - 0x8E, - 0x72, - 0x8C, - 0x5C, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x5C, - 0x5C, - 0x5E, - 0xEB, - 0x2F, - 0x2C, - 0x39, - 0x10, - 0x48, - 0x20, - 0x14, - 0x2B, - 0x20, - 0x3A, - 0x49, - 0x3A, - 0x4D, - 0x5F, - 0x4D, - 0x76, - 0x91, - 0x7D, - 0x53, - 0x86, - 0x3F, - 0x6B, - 0x54, - 0x55, - 0x6C, - 0x86, - 0x6C, - 0x3F, - 0x6C, - 0x53, - 0x3F, - 0x53, - 0x84, - 0x86, - 0xD6, - 0xD6, - 0x6D, - 0x84, - 0x1B, - 0x68, - 0x6C, - 0xE1, - 0xC8, - 0x9D, - 0x9D, - 0x6B, - 0x6C, - 0x27, - 0x83, - 0x7D, - 0x3E, - 0x7E, - 0xAF, - 0xD7, - 0xD6, - 0x85, - 0x97, - 0x7A, - 0x97, - 0x7A, - 0x97, - 0x97, - 0xAC, - 0x9B, - 0xDE, - 0xC3, - 0xBF, - 0xBD, - 0xBF, - 0xD0, - 0xDE, - 0xDC, - 0xA5, - 0xDC, - 0xBD, - 0xBF, - 0xDC, - 0xBD, - 0xBD, - 0xCE, - 0xBC, - 0x92, - 0xB9, - 0xED, - 0xD4, - 0xB7, - 0xA5, - 0xCE, - 0xBC, - 0xA4, - 0xCD, - 0xCD, - 0xBC, - 0xA4, - 0xEC, - 0xC2, - 0x8C, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x3A, - 0xB9, - 0xB9, - 0xA5, - 0x5C, - 0xA5, - 0xB9, - 0x73, - 0x5B, - 0x38, - 0x8B, - 0xCD, - 0xCD, - 0x5B, - 0x5B, - 0x8B, - 0xB9, - 0x8B, - 0xB7, - 0x90, - 0xCC, - 0x5B, - 0x6F, - 0x47, - 0x5B, - 0xBA, - 0x47, - 0xB8, - 0xA2, - 0x43, - 0x36, - 0x12, - 0x75, - 0x70, - 0x1F, - 0x1F, - 0x36, - 0x43, - 0x2C, - 0x36, - 0x36, - 0x2A, - 0x6F, - 0x6F, - 0x37, - 0x10, - 0x20, - 0x10, - 0x20, - 0x11, - 0x10, - 0x47, - 0x37, - 0x1F, - 0x1F, - 0x44, - 0x6F, - 0x37, - 0x1F, - 0x05, - 0x2B, - 0x00, - 0x05, - 0x10, - 0x10, - 0x2A, - 0x36, - 0x43, - 0x00, - 0x07, - 0x08, - 0x00, - 0x19, - 0x03, - 0x1E, - 0x10, - 0x03, - 0x20, - 0x43, - 0x10, - 0x47, - 0x10, - 0x10, - 0x10, - 0x20, - 0x10, - 0x2B, - 0x2B, - 0x5E, - 0x1F, - 0x74, - 0x39, - 0x2B, - 0x2D, - 0x37, - 0x2D, - 0x2A, - 0x49, - 0x00, - 0x06, - 0x39, - 0x00, - 0x06, - 0x5D, - 0x5D, - 0x48, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x20, - 0x52, - 0x80, - 0x67, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x52, - 0x80, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x95, - 0xD4, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEA, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEF, - 0x0C, - 0xEC, - 0x00, - 0x09, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEC, - 0xEC, - 0xE6, - 0xEC, - 0x00, - 0x06, - 0xE6, - 0x01, - 0xE4, - 0x01, - 0xE6, - 0x05, - 0xE4, - 0x04, - 0xD1, - 0x01, - 0xCF, - 0x01, - 0xCF, - 0x04, - 0xBE, - 0x04, - 0xA8, - 0x00, - 0x62, - 0x78, - 0xA8, - 0x78, - 0xA8, - 0x8E, - 0xA8, - 0x8E, - 0x8E, - 0x8E, - 0x8C, - 0x8E, - 0x5C, - 0x8C, - 0x5C, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x72, - 0x5B, - 0xBF, - 0xDB, - 0x47, - 0x14, - 0x2D, - 0x47, - 0x20, - 0x13, - 0x10, - 0x2B, - 0x14, - 0x76, - 0x3A, - 0x76, - 0x49, - 0xA6, - 0xA7, - 0x93, - 0xC3, - 0x83, - 0x3F, - 0x84, - 0x86, - 0x6C, - 0x6D, - 0x6C, - 0x6D, - 0x6C, - 0x55, - 0x6C, - 0x84, - 0x84, - 0x53, - 0x6C, - 0x53, - 0x8A, - 0x9D, - 0xD6, - 0x6C, - 0x3E, - 0x84, - 0x1B, - 0x54, - 0x83, - 0x34, - 0x9E, - 0x3E, - 0x68, - 0x3E, - 0x7D, - 0x7D, - 0x6C, - 0xE1, - 0x87, - 0xD6, - 0xE1, - 0xD6, - 0xB1, - 0xAC, - 0xAC, - 0x7A, - 0xC8, - 0xC7, - 0x9B, - 0xB2, - 0x99, - 0xE1, - 0xD3, - 0x92, - 0x92, - 0x73, - 0xB1, - 0xE0, - 0xA5, - 0xE1, - 0xC3, - 0x46, - 0x04, - 0x73, - 0x00, - 0x39, - 0x5E, - 0x62, - 0x73, - 0xAD, - 0xD4, - 0xCE, - 0xA5, - 0xCE, - 0xBC, - 0xB9, - 0xCE, - 0xBC, - 0xB9, - 0xB9, - 0xBC, - 0xBC, - 0xEC, - 0xDC, - 0xA4, - 0xCD, - 0xBC, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0x73, - 0x8B, - 0xBD, - 0xA8, - 0x5B, - 0x38, - 0x5B, - 0xB7, - 0xA2, - 0x5B, - 0xB9, - 0x8B, - 0x5B, - 0x5B, - 0xB7, - 0xB8, - 0xBA, - 0x5B, - 0x47, - 0x47, - 0x5B, - 0xB7, - 0x6F, - 0xA2, - 0x74, - 0x12, - 0x12, - 0x1F, - 0x6F, - 0x70, - 0x36, - 0x43, - 0x00, - 0x05, - 0x36, - 0x00, - 0x1C, - 0x2A, - 0x74, - 0x6F, - 0x1F, - 0x10, - 0x10, - 0x20, - 0x10, - 0x11, - 0x37, - 0x47, - 0x1F, - 0x1F, - 0x2A, - 0x2A, - 0x6F, - 0x1F, - 0x1F, - 0x2B, - 0x2B, - 0x10, - 0x2B, - 0x44, - 0x47, - 0x36, - 0x11, - 0x1F, - 0x1F, - 0x08, - 0x08, - 0x00, - 0x23, - 0x36, - 0x08, - 0x08, - 0x36, - 0x1E, - 0x36, - 0x36, - 0x11, - 0x20, - 0x10, - 0x10, - 0x2B, - 0x10, - 0x48, - 0x70, - 0x39, - 0x74, - 0x1F, - 0x37, - 0x2D, - 0x2D, - 0x39, - 0x49, - 0x2A, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x70, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x82, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x80, - 0x67, - 0x67, - 0x7C, - 0x99, - 0x7C, - 0x7C, - 0x67, - 0x52, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x95, - 0xD4, - 0xEA, - 0xEF, - 0xEA, - 0xEA, - 0xEC, - 0xEF, - 0xEA, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xEF, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x06, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xEB, - 0x04, - 0xEC, - 0x00, - 0x07, - 0xEB, - 0xEB, - 0xE6, - 0xE6, - 0xEB, - 0xE4, - 0xE6, - 0x00, - 0x08, - 0xE4, - 0x00, - 0x05, - 0xD1, - 0xD1, - 0xE4, - 0xD1, - 0xD1, - 0x00, - 0x04, - 0xBE, - 0x00, - 0xA5, - 0xBC, - 0xBE, - 0xA8, - 0xBC, - 0x78, - 0xA8, - 0xA8, - 0xBE, - 0xA8, - 0xBE, - 0xA8, - 0xA8, - 0xA4, - 0x8C, - 0x8C, - 0x72, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x72, - 0x5C, - 0x6F, - 0xDC, - 0x93, - 0x02, - 0x2C, - 0x21, - 0x06, - 0x21, - 0x20, - 0x37, - 0x14, - 0x20, - 0x23, - 0x8F, - 0x3A, - 0xA6, - 0x76, - 0x93, - 0xA7, - 0xAF, - 0x86, - 0x3F, - 0x86, - 0x84, - 0x6D, - 0x6C, - 0x3F, - 0x84, - 0x84, - 0x3F, - 0x6C, - 0x84, - 0x84, - 0xD6, - 0x8A, - 0xD6, - 0x9D, - 0xCB, - 0x9D, - 0x53, - 0x53, - 0x3E, - 0x83, - 0x3E, - 0x9C, - 0x87, - 0x81, - 0x3E, - 0x3E, - 0x83, - 0x51, - 0x54, - 0x6E, - 0xD6, - 0x87, - 0x7F, - 0xCB, - 0xB1, - 0x7A, - 0x97, - 0x7A, - 0x98, - 0xC7, - 0x9B, - 0xAC, - 0xC3, - 0xB2, - 0x7A, - 0x5E, - 0x5E, - 0x5E, - 0x62, - 0xC3, - 0xE0, - 0xC4, - 0xD4, - 0x9B, - 0x73, - 0x73, - 0x73, - 0x3B, - 0x5E, - 0x5B, - 0x38, - 0x92, - 0x92, - 0xA5, - 0xA2, - 0xB9, - 0xBC, - 0xD8, - 0xCD, - 0xBC, - 0xB9, - 0xCD, - 0xCD, - 0xCE, - 0xE4, - 0xE4, - 0xBE, - 0xCD, - 0xD8, - 0xB6, - 0xB9, - 0xB9, - 0xCE, - 0xB9, - 0xB7, - 0x8B, - 0x72, - 0xA5, - 0x5B, - 0x47, - 0x38, - 0xB7, - 0xA2, - 0xB7, - 0xB7, - 0x5B, - 0x6F, - 0xB9, - 0x8B, - 0x6F, - 0xB7, - 0x8B, - 0x47, - 0x47, - 0x6F, - 0xCC, - 0x48, - 0x70, - 0x6F, - 0x2A, - 0x1F, - 0x2A, - 0x8D, - 0x6F, - 0x36, - 0x43, - 0x48, - 0x00, - 0x05, - 0x36, - 0x00, - 0x1B, - 0xB5, - 0x48, - 0x10, - 0x20, - 0x10, - 0x11, - 0x10, - 0x11, - 0x48, - 0x43, - 0x2B, - 0x2A, - 0x10, - 0x44, - 0x70, - 0x10, - 0x10, - 0x10, - 0x2A, - 0x43, - 0x36, - 0x10, - 0x20, - 0x20, - 0x08, - 0x36, - 0x11, - 0x00, - 0x04, - 0x08, - 0x00, - 0x0A, - 0x03, - 0x08, - 0x03, - 0x1F, - 0x1F, - 0x03, - 0x11, - 0x47, - 0x2B, - 0x47, - 0x04, - 0x10, - 0x00, - 0x0C, - 0x2B, - 0x2B, - 0x2B, - 0x5E, - 0x37, - 0x74, - 0x5D, - 0x14, - 0x2D, - 0x37, - 0x2D, - 0x44, - 0x05, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x5D, - 0x48, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x80, - 0x52, - 0x96, - 0x7C, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x96, - 0xEC, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEA, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEF, - 0x00, - 0x09, - 0xEC, - 0x01, - 0xEB, - 0x09, - 0xEC, - 0x00, - 0x03, - 0xEB, - 0xEB, - 0xEB, - 0x00, - 0x05, - 0xE6, - 0x00, - 0x03, - 0xEB, - 0xE6, - 0xE6, - 0x00, - 0x08, - 0xE4, - 0x01, - 0xCF, - 0x01, - 0xCF, - 0x04, - 0xBE, - 0x05, - 0xA8, - 0x00, - 0x62, - 0xBE, - 0xA4, - 0xA8, - 0x8E, - 0xA8, - 0xA8, - 0xA4, - 0x8E, - 0x72, - 0x8E, - 0x72, - 0x8C, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x72, - 0x5C, - 0x5B, - 0xA6, - 0xE6, - 0x14, - 0x47, - 0x13, - 0x05, - 0x21, - 0x20, - 0x22, - 0x10, - 0x39, - 0x49, - 0x61, - 0x5F, - 0x8F, - 0x5F, - 0x75, - 0x8F, - 0x97, - 0x69, - 0x86, - 0x6C, - 0x3F, - 0x3F, - 0x6C, - 0x86, - 0x84, - 0x6B, - 0x6C, - 0x6B, - 0x54, - 0x53, - 0x55, - 0x9D, - 0x59, - 0x53, - 0xD7, - 0xB4, - 0x53, - 0x53, - 0x1B, - 0x53, - 0x3E, - 0x3E, - 0x6C, - 0x87, - 0x33, - 0x3E, - 0x68, - 0x3E, - 0x7E, - 0x7D, - 0xB4, - 0x8A, - 0x97, - 0x9D, - 0x6B, - 0x97, - 0x95, - 0xAC, - 0x95, - 0x7A, - 0xE1, - 0xB2, - 0x7B, - 0xD5, - 0x97, - 0x5E, - 0x62, - 0x90, - 0x92, - 0xC0, - 0xEA, - 0xBD, - 0xBF, - 0xD3, - 0x92, - 0xD4, - 0x92, - 0x04, - 0x5E, - 0x00, - 0x50, - 0x5B, - 0x95, - 0x9B, - 0x3B, - 0x5B, - 0x73, - 0xA2, - 0xB9, - 0xB9, - 0xE4, - 0xEA, - 0xB9, - 0xB6, - 0xB6, - 0xCD, - 0xE6, - 0xBE, - 0xCD, - 0xB9, - 0xCD, - 0xA8, - 0xCF, - 0xB9, - 0xB9, - 0xB9, - 0x8B, - 0x90, - 0xA5, - 0x5B, - 0x38, - 0x38, - 0xB7, - 0xA5, - 0xA2, - 0xB7, - 0xB9, - 0x8B, - 0x5B, - 0x5B, - 0x6F, - 0xB7, - 0xB5, - 0x47, - 0x47, - 0x47, - 0x8D, - 0x2C, - 0x75, - 0x47, - 0x2C, - 0x47, - 0x43, - 0xB8, - 0x6F, - 0x36, - 0x36, - 0x2C, - 0x36, - 0x2C, - 0x2C, - 0x44, - 0x44, - 0xB5, - 0x44, - 0x10, - 0x20, - 0x10, - 0x11, - 0x10, - 0x11, - 0x47, - 0x1F, - 0x10, - 0x10, - 0x11, - 0x36, - 0x37, - 0x1F, - 0x1E, - 0x2A, - 0x05, - 0x11, - 0x00, - 0x22, - 0x03, - 0x08, - 0x36, - 0x08, - 0x08, - 0x03, - 0x04, - 0x03, - 0x04, - 0x03, - 0x03, - 0x36, - 0x08, - 0x08, - 0x36, - 0x36, - 0x37, - 0x43, - 0x11, - 0x20, - 0x10, - 0x2B, - 0x2B, - 0x10, - 0x48, - 0x75, - 0x39, - 0x74, - 0x1F, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x04, - 0x39, - 0x00, - 0x07, - 0x2C, - 0x5D, - 0x5D, - 0x48, - 0x70, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x67, - 0x52, - 0x96, - 0xAD, - 0x04, - 0x96, - 0x00, - 0x0B, - 0xAB, - 0xAB, - 0xEC, - 0xEF, - 0xEF, - 0xEA, - 0xEF, - 0xEA, - 0xEF, - 0xEF, - 0xEC, - 0x00, - 0x05, - 0xEF, - 0x00, - 0x04, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0x04, - 0xEF, - 0x04, - 0xEC, - 0x00, - 0x03, - 0xEB, - 0xEC, - 0xEF, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x0C, - 0xEB, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0xEB, - 0xE6, - 0xE6, - 0xE6, - 0xEB, - 0xE4, - 0xE6, - 0x08, - 0xE4, - 0x01, - 0xD1, - 0x01, - 0xCF, - 0x04, - 0xBE, - 0x01, - 0xA8, - 0x01, - 0x94, - 0x06, - 0xA8, - 0x00, - 0xB2, - 0x8E, - 0xA4, - 0xA8, - 0xA8, - 0x8E, - 0x8C, - 0x8C, - 0x72, - 0x8C, - 0x5C, - 0x8C, - 0x5C, - 0x8C, - 0x72, - 0x72, - 0x72, - 0x38, - 0xDC, - 0xDB, - 0x47, - 0x12, - 0x12, - 0x21, - 0x10, - 0x2C, - 0x20, - 0x2C, - 0x3A, - 0x76, - 0x3A, - 0x8F, - 0x3A, - 0x93, - 0xA7, - 0xBF, - 0xC5, - 0x6B, - 0x86, - 0x3F, - 0x84, - 0x3F, - 0x86, - 0x3F, - 0x86, - 0x3F, - 0x86, - 0x53, - 0x3F, - 0x53, - 0x54, - 0xD6, - 0x34, - 0x86, - 0xC8, - 0xB2, - 0x3E, - 0x53, - 0x53, - 0x33, - 0x53, - 0x3E, - 0xD6, - 0x53, - 0x3E, - 0x7D, - 0x66, - 0x83, - 0x51, - 0x7E, - 0x34, - 0xE1, - 0x86, - 0xE1, - 0xB1, - 0x7A, - 0x97, - 0x95, - 0x7A, - 0x7B, - 0x7D, - 0xCA, - 0x9A, - 0xB1, - 0x97, - 0x5E, - 0x94, - 0x62, - 0x7A, - 0xD6, - 0x95, - 0x95, - 0x98, - 0xAA, - 0xD6, - 0x99, - 0x5B, - 0x3B, - 0x5B, - 0x7C, - 0xAD, - 0xC0, - 0xED, - 0x92, - 0x46, - 0x3B, - 0x46, - 0x46, - 0xA2, - 0xBD, - 0xE6, - 0xD1, - 0xC2, - 0xBC, - 0xD1, - 0xE6, - 0xCD, - 0xD8, - 0xCD, - 0xB9, - 0xCD, - 0xB9, - 0xCD, - 0xCF, - 0xBC, - 0xCE, - 0x92, - 0x5B, - 0xA2, - 0x8D, - 0x47, - 0x5B, - 0xA5, - 0xB7, - 0x90, - 0xBA, - 0x5B, - 0x5B, - 0x5B, - 0x6F, - 0x38, - 0xB7, - 0x74, - 0x1E, - 0x13, - 0x48, - 0x74, - 0x1E, - 0x74, - 0xB5, - 0x43, - 0x36, - 0x43, - 0xB8, - 0x43, - 0x36, - 0x36, - 0x36, - 0x44, - 0x36, - 0x2A, - 0x2A, - 0x36, - 0xB5, - 0x37, - 0x10, - 0x20, - 0x11, - 0x20, - 0x11, - 0x11, - 0x36, - 0x1F, - 0x11, - 0x11, - 0x20, - 0x36, - 0x2A, - 0x20, - 0x05, - 0x11, - 0x00, - 0x06, - 0x08, - 0x20, - 0x10, - 0x1F, - 0x08, - 0x08, - 0x05, - 0x03, - 0x00, - 0x17, - 0x04, - 0x10, - 0x2A, - 0x03, - 0x11, - 0x47, - 0x10, - 0x47, - 0x2B, - 0x10, - 0x10, - 0x2B, - 0x10, - 0x2B, - 0x1F, - 0x74, - 0x37, - 0x8D, - 0x39, - 0x2D, - 0x37, - 0x2A, - 0x49, - 0x00, - 0x05, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x99, - 0x67, - 0x52, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x7C, - 0x99, - 0x80, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x95, - 0x95, - 0xC4, - 0xEF, - 0xEA, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x48, - 0xEA, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xEB, - 0xEC, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xE4, - 0xE4, - 0xE6, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xBC, - 0xBC, - 0xA8, - 0xA8, - 0x78, - 0xBC, - 0xA8, - 0xA8, - 0xA4, - 0xBE, - 0xA8, - 0xA8, - 0xA4, - 0x8E, - 0x8C, - 0x72, - 0x72, - 0x5C, - 0x8C, - 0x5C, - 0x04, - 0x72, - 0x00, - 0x66, - 0x73, - 0x6F, - 0xE6, - 0x93, - 0x02, - 0x13, - 0x13, - 0x06, - 0x21, - 0x10, - 0x48, - 0x02, - 0x20, - 0x5F, - 0x8F, - 0x5F, - 0xA9, - 0x91, - 0xA6, - 0x91, - 0x84, - 0x86, - 0xB1, - 0x3F, - 0x84, - 0x86, - 0x84, - 0x3F, - 0x53, - 0x6C, - 0x3F, - 0x84, - 0x53, - 0x53, - 0x84, - 0x9E, - 0xD6, - 0x6D, - 0x6E, - 0x1B, - 0x53, - 0x3E, - 0x3E, - 0x53, - 0x68, - 0x87, - 0xB1, - 0x68, - 0x3E, - 0x3E, - 0x68, - 0x66, - 0x81, - 0x7A, - 0x86, - 0x59, - 0xD6, - 0xCB, - 0x95, - 0x97, - 0x95, - 0x7B, - 0x65, - 0x3B, - 0x81, - 0xB1, - 0xE0, - 0x9B, - 0x5E, - 0x62, - 0x90, - 0xAD, - 0xD4, - 0xAE, - 0xD4, - 0xAB, - 0xD4, - 0xC4, - 0x95, - 0x62, - 0x5E, - 0x5E, - 0x62, - 0x92, - 0xC7, - 0xAE, - 0x94, - 0xA5, - 0x73, - 0x46, - 0x73, - 0x46, - 0x46, - 0x5C, - 0xBD, - 0xEA, - 0xE4, - 0xCF, - 0xDA, - 0xA4, - 0xCD, - 0xCD, - 0x04, - 0xB9, - 0x00, - 0x32, - 0xCE, - 0xB9, - 0xB7, - 0xB9, - 0xB7, - 0x5B, - 0x8B, - 0x8B, - 0x47, - 0x5B, - 0x8B, - 0xB7, - 0x5B, - 0x5B, - 0x6F, - 0x6F, - 0x38, - 0x6F, - 0x43, - 0x74, - 0x70, - 0x2A, - 0x1E, - 0x48, - 0xB8, - 0x43, - 0x8D, - 0x6F, - 0x43, - 0x43, - 0x48, - 0x8D, - 0x48, - 0x36, - 0x44, - 0x36, - 0x44, - 0x36, - 0x44, - 0x2A, - 0x70, - 0x6F, - 0x2B, - 0x20, - 0x20, - 0x10, - 0x11, - 0x08, - 0x20, - 0x36, - 0x0A, - 0x11, - 0x00, - 0x17, - 0x10, - 0x1E, - 0x2A, - 0x11, - 0x03, - 0x08, - 0x08, - 0x08, - 0x03, - 0x03, - 0x03, - 0x04, - 0x04, - 0x03, - 0x1E, - 0x08, - 0x08, - 0x1E, - 0x36, - 0x37, - 0x48, - 0x10, - 0x10, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x09, - 0x75, - 0x48, - 0x48, - 0x75, - 0x37, - 0x2D, - 0x2D, - 0x39, - 0x49, - 0x00, - 0x04, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x70, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x01, - 0x80, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x0A, - 0x52, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x52, - 0x80, - 0x04, - 0x96, - 0x00, - 0x08, - 0xAB, - 0x96, - 0x96, - 0x95, - 0x95, - 0xE6, - 0xEF, - 0xEA, - 0x0A, - 0xEF, - 0x00, - 0x06, - 0xF3, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEF, - 0x07, - 0xEC, - 0x04, - 0xEF, - 0x00, - 0x05, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0x00, - 0x04, - 0xEC, - 0x04, - 0xEB, - 0x00, - 0x11, - 0xE6, - 0xE6, - 0xEB, - 0xE4, - 0xE4, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xBE, - 0x94, - 0xBE, - 0x00, - 0x05, - 0xA8, - 0x00, - 0xAE, - 0x94, - 0xA8, - 0xBE, - 0xA8, - 0xBE, - 0xA8, - 0xA8, - 0xA8, - 0x8C, - 0x8C, - 0x72, - 0x8E, - 0x5C, - 0x8E, - 0x72, - 0x8E, - 0x72, - 0x72, - 0x5B, - 0x77, - 0xD2, - 0x10, - 0x2C, - 0x12, - 0x12, - 0x13, - 0x12, - 0x48, - 0x11, - 0x22, - 0x49, - 0x4D, - 0x5F, - 0x8F, - 0xA6, - 0x65, - 0x76, - 0xA9, - 0x81, - 0x87, - 0x84, - 0x3F, - 0x3F, - 0xB1, - 0x6C, - 0x53, - 0x6B, - 0x3F, - 0x3F, - 0x53, - 0x84, - 0x84, - 0x53, - 0x9E, - 0xD6, - 0xCB, - 0x54, - 0x53, - 0x33, - 0x3E, - 0x3F, - 0xB2, - 0x87, - 0xB2, - 0x6C, - 0x27, - 0x3E, - 0x3E, - 0x7E, - 0x7E, - 0x7D, - 0x97, - 0x7F, - 0x59, - 0x6E, - 0x7F, - 0x96, - 0x7B, - 0x66, - 0x65, - 0x7B, - 0x7A, - 0x63, - 0x6D, - 0xB1, - 0x62, - 0x62, - 0x92, - 0x92, - 0xBD, - 0xD0, - 0xE4, - 0xBD, - 0x8E, - 0x62, - 0x5B, - 0x5E, - 0x3B, - 0x5E, - 0x3B, - 0x5B, - 0xA5, - 0x73, - 0x73, - 0x90, - 0xA5, - 0xA5, - 0x73, - 0x73, - 0x5C, - 0x73, - 0x46, - 0x5C, - 0xB9, - 0xD8, - 0xCD, - 0xCD, - 0xBC, - 0xCD, - 0xCD, - 0xB9, - 0xB9, - 0xB7, - 0xB9, - 0xB7, - 0xB9, - 0xB7, - 0xBA, - 0xB9, - 0x5B, - 0x8D, - 0xA2, - 0x47, - 0x5B, - 0x8B, - 0xCC, - 0xB5, - 0x38, - 0x6F, - 0x6F, - 0x47, - 0x36, - 0x47, - 0x74, - 0x47, - 0x36, - 0x43, - 0x6F, - 0xB8, - 0x43, - 0xB8, - 0x47, - 0x36, - 0x36, - 0x47, - 0xB5, - 0x36, - 0x36, - 0x44, - 0x2A, - 0x44, - 0x2A, - 0x2A, - 0x37, - 0x6F, - 0x43, - 0x10, - 0x11, - 0x20, - 0x08, - 0x08, - 0x03, - 0x44, - 0x1F, - 0x07, - 0x11, - 0x00, - 0x19, - 0x20, - 0x36, - 0x2A, - 0x11, - 0x08, - 0x08, - 0x03, - 0x03, - 0x08, - 0x08, - 0x03, - 0x03, - 0x04, - 0x03, - 0x03, - 0x04, - 0x11, - 0x12, - 0x08, - 0x11, - 0x47, - 0x2B, - 0x47, - 0x2B, - 0x10, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x08, - 0x2D, - 0x74, - 0x37, - 0x8D, - 0x2D, - 0x37, - 0x39, - 0x37, - 0x05, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x5D, - 0x48, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x80, - 0x80, - 0x82, - 0x52, - 0x80, - 0x80, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x52, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0x95, - 0xEC, - 0x00, - 0x12, - 0xEF, - 0x00, - 0x0E, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xEB, - 0xEB, - 0xEB, - 0x04, - 0xEC, - 0x00, - 0x45, - 0xEB, - 0xDC, - 0xC2, - 0xDC, - 0xE6, - 0xEB, - 0xEB, - 0xEB, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0x94, - 0x94, - 0xA8, - 0x94, - 0xA8, - 0xBC, - 0xA8, - 0x94, - 0xA4, - 0xA8, - 0xA8, - 0xA8, - 0xA4, - 0x8C, - 0x8C, - 0x72, - 0x72, - 0x72, - 0x8C, - 0x5C, - 0x8E, - 0x5C, - 0xA5, - 0x72, - 0x6F, - 0xE4, - 0x93, - 0x13, - 0x10, - 0x13, - 0x13, - 0x13, - 0x21, - 0x20, - 0x22, - 0x2D, - 0x61, - 0x49, - 0x76, - 0x76, - 0xBF, - 0x91, - 0xBF, - 0x7F, - 0xB1, - 0x83, - 0x9C, - 0x00, - 0x05, - 0x3F, - 0x00, - 0x49, - 0x84, - 0x84, - 0x53, - 0x3F, - 0x53, - 0x84, - 0x3E, - 0x54, - 0xD6, - 0x88, - 0x84, - 0x33, - 0x83, - 0x33, - 0x83, - 0x84, - 0x53, - 0x88, - 0x27, - 0x3E, - 0x51, - 0x7D, - 0x7E, - 0x7D, - 0x7E, - 0xAC, - 0x7F, - 0x81, - 0x96, - 0x7D, - 0x65, - 0x66, - 0x7A, - 0x7B, - 0x62, - 0x4E, - 0x4E, - 0x63, - 0x92, - 0x92, - 0xEB, - 0xF3, - 0xF1, - 0xF3, - 0xF3, - 0xF1, - 0x92, - 0x62, - 0x4E, - 0x5E, - 0x38, - 0x5E, - 0x62, - 0xE4, - 0xD1, - 0xA5, - 0x46, - 0x46, - 0x46, - 0x72, - 0xA5, - 0xA5, - 0x73, - 0x5C, - 0x46, - 0x5C, - 0x46, - 0x72, - 0xCD, - 0xBC, - 0xD8, - 0xA5, - 0xCD, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x31, - 0xB7, - 0xB7, - 0xB9, - 0xB7, - 0xBA, - 0x5B, - 0x5B, - 0x8D, - 0x5B, - 0x5B, - 0x5B, - 0xB7, - 0x8B, - 0x47, - 0x47, - 0x36, - 0x8D, - 0x74, - 0x47, - 0xB5, - 0x74, - 0x43, - 0x43, - 0x6F, - 0x8D, - 0x43, - 0xB8, - 0x43, - 0x36, - 0x36, - 0x6F, - 0x6F, - 0x36, - 0x44, - 0x44, - 0x36, - 0x2A, - 0x44, - 0x2A, - 0x2A, - 0x74, - 0x44, - 0x10, - 0x11, - 0x08, - 0x03, - 0x08, - 0x11, - 0x36, - 0x00, - 0x07, - 0x11, - 0x00, - 0x19, - 0x10, - 0x36, - 0x08, - 0x11, - 0x11, - 0x11, - 0x08, - 0x03, - 0x08, - 0x08, - 0x08, - 0x03, - 0x03, - 0x04, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x11, - 0x08, - 0x2A, - 0x36, - 0x39, - 0x43, - 0x20, - 0x00, - 0x05, - 0x2B, - 0x00, - 0x06, - 0x74, - 0x39, - 0x75, - 0x75, - 0x2D, - 0x2D, - 0x07, - 0x39, - 0x00, - 0x06, - 0x48, - 0x5D, - 0x5D, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x11, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x67, - 0x52, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x80, - 0x7C, - 0x00, - 0x06, - 0x96, - 0x00, - 0x08, - 0x95, - 0xAA, - 0xAA, - 0xC0, - 0xEC, - 0xEF, - 0xEF, - 0xEA, - 0x0F, - 0xEF, - 0x00, - 0x19, - 0xEC, - 0xEC, - 0xEC, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEF, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xC0, - 0x92, - 0x90, - 0x74, - 0x77, - 0xBF, - 0xE6, - 0xE6, - 0x00, - 0x07, - 0xE4, - 0x00, - 0x1B, - 0xE6, - 0xE4, - 0xCF, - 0xBE, - 0xCF, - 0xBE, - 0xBE, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0x78, - 0xBE, - 0xA8, - 0xD1, - 0xA8, - 0xBE, - 0xBC, - 0x94, - 0xA4, - 0x8E, - 0x8E, - 0x72, - 0x8C, - 0x5C, - 0x8C, - 0x73, - 0x00, - 0x04, - 0x72, - 0x00, - 0x1A, - 0x8B, - 0x74, - 0xE6, - 0x48, - 0x11, - 0x13, - 0x12, - 0x21, - 0x1E, - 0x10, - 0x2C, - 0x11, - 0x20, - 0x76, - 0x76, - 0x61, - 0xA3, - 0x91, - 0xC5, - 0xC1, - 0x69, - 0x83, - 0x3F, - 0x53, - 0x84, - 0x84, - 0x08, - 0x53, - 0x00, - 0x23, - 0x68, - 0x53, - 0x33, - 0x53, - 0x53, - 0x33, - 0x53, - 0x33, - 0x83, - 0x3E, - 0x3E, - 0x83, - 0x3E, - 0x83, - 0x3E, - 0x7F, - 0x7E, - 0x7E, - 0x7E, - 0x97, - 0x7E, - 0x95, - 0x7E, - 0x66, - 0x3D, - 0x7D, - 0x7A, - 0x65, - 0x7B, - 0x62, - 0x7B, - 0x4E, - 0x62, - 0x62, - 0xEC, - 0x00, - 0x05, - 0xF3, - 0x00, - 0x4B, - 0xE5, - 0x5E, - 0x4E, - 0x15, - 0x4B, - 0x38, - 0x4E, - 0xF1, - 0xF1, - 0xF1, - 0xEB, - 0xCE, - 0xB7, - 0x46, - 0x72, - 0xA5, - 0x5C, - 0x73, - 0x8E, - 0x5C, - 0x5C, - 0x5C, - 0x46, - 0xA5, - 0xCD, - 0xE3, - 0xBC, - 0xCD, - 0xB9, - 0xCD, - 0xCC, - 0xB9, - 0xA5, - 0xB9, - 0xB7, - 0xBA, - 0xB7, - 0xBA, - 0x8B, - 0x5B, - 0xB7, - 0x5B, - 0x5B, - 0x5B, - 0xCC, - 0x6F, - 0x36, - 0xB8, - 0x48, - 0x12, - 0x8D, - 0x8D, - 0xB7, - 0x6F, - 0x43, - 0x43, - 0x74, - 0xB5, - 0x47, - 0xB8, - 0x43, - 0x36, - 0x36, - 0x74, - 0x6F, - 0x2A, - 0x36, - 0x44, - 0x44, - 0x2A, - 0x2A, - 0x37, - 0x36, - 0x6F, - 0x37, - 0x00, - 0x05, - 0x08, - 0x01, - 0x20, - 0x01, - 0x36, - 0x06, - 0x11, - 0x00, - 0x1A, - 0x08, - 0x2A, - 0x1F, - 0x08, - 0x11, - 0x08, - 0x08, - 0x03, - 0x03, - 0x08, - 0x08, - 0x08, - 0x03, - 0x03, - 0x04, - 0x04, - 0x04, - 0x11, - 0x1E, - 0x08, - 0x11, - 0x47, - 0x10, - 0x6F, - 0x2B, - 0x10, - 0x04, - 0x2B, - 0x00, - 0x07, - 0x39, - 0x74, - 0x2D, - 0xA7, - 0x37, - 0x2A, - 0x49, - 0x00, - 0x05, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x5D, - 0x48, - 0x4C, - 0x48, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x80, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x67, - 0x80, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0xC2, - 0x10, - 0xEF, - 0x00, - 0x2B, - 0xEC, - 0xEF, - 0xF1, - 0xEC, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEB, - 0xEB, - 0xEC, - 0xEC, - 0xEC, - 0xBD, - 0x92, - 0x8D, - 0x75, - 0x4B, - 0x75, - 0x77, - 0xE4, - 0xE6, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xD1, - 0xD1, - 0xE4, - 0xE4, - 0xE4, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0xBC, - 0xBE, - 0x00, - 0x05, - 0xA8, - 0x00, - 0x56, - 0xBE, - 0xA8, - 0xBE, - 0xA8, - 0xBC, - 0xA4, - 0xA8, - 0xA4, - 0x8C, - 0x8E, - 0x72, - 0x8E, - 0x5C, - 0x8C, - 0x73, - 0x72, - 0x73, - 0x72, - 0x5B, - 0xA9, - 0xDB, - 0x02, - 0x2C, - 0x10, - 0x48, - 0x14, - 0x2B, - 0x22, - 0x11, - 0x22, - 0x76, - 0x5F, - 0x76, - 0x4D, - 0x76, - 0xA0, - 0x8F, - 0x97, - 0x68, - 0x9C, - 0x53, - 0x6A, - 0x53, - 0x9C, - 0x84, - 0x84, - 0x84, - 0x83, - 0x6A, - 0x68, - 0x84, - 0x1B, - 0x53, - 0x68, - 0x53, - 0x3E, - 0x33, - 0x68, - 0x53, - 0x6A, - 0x84, - 0xB1, - 0x69, - 0x9C, - 0x9C, - 0x69, - 0xB1, - 0x81, - 0x7F, - 0x7D, - 0x7E, - 0x97, - 0x95, - 0x7D, - 0x3D, - 0x66, - 0x66, - 0x7B, - 0x7B, - 0x62, - 0x7B, - 0x62, - 0x63, - 0xAC, - 0x62, - 0x7B, - 0x05, - 0xF3, - 0x00, - 0x44, - 0xE6, - 0x4B, - 0x62, - 0x38, - 0x4E, - 0x4B, - 0x4B, - 0xEC, - 0xF1, - 0xEB, - 0xE4, - 0xEB, - 0xEB, - 0xE4, - 0xCD, - 0x8E, - 0x73, - 0x72, - 0xA4, - 0xA5, - 0xA5, - 0x5C, - 0x5C, - 0x5C, - 0x72, - 0xB6, - 0xCD, - 0xB9, - 0xCD, - 0xCC, - 0xB9, - 0xA5, - 0xB9, - 0xB7, - 0xB9, - 0xB7, - 0xA2, - 0xBA, - 0xB7, - 0xA2, - 0x8B, - 0xB7, - 0x6F, - 0x47, - 0x36, - 0x4B, - 0x48, - 0x6F, - 0x13, - 0x36, - 0x36, - 0xB8, - 0x6F, - 0x74, - 0x43, - 0x36, - 0x1E, - 0x6F, - 0x43, - 0x48, - 0x6F, - 0x2A, - 0x2A, - 0x37, - 0x6F, - 0x48, - 0x2A, - 0x44, - 0x04, - 0x2A, - 0x00, - 0x0B, - 0x1F, - 0x70, - 0x47, - 0x08, - 0x08, - 0x03, - 0x08, - 0x08, - 0x03, - 0x37, - 0x1F, - 0x00, - 0x07, - 0x11, - 0x00, - 0x2F, - 0x36, - 0x11, - 0x11, - 0x11, - 0x08, - 0x08, - 0x03, - 0x10, - 0x11, - 0x08, - 0x03, - 0x04, - 0x03, - 0x03, - 0x04, - 0x04, - 0x43, - 0x20, - 0x08, - 0x36, - 0x44, - 0x39, - 0x48, - 0x10, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x77, - 0x39, - 0x74, - 0x60, - 0x2D, - 0x44, - 0x49, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x70, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0A, - 0x52, - 0x67, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x52, - 0x80, - 0x07, - 0x96, - 0x00, - 0x06, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xDC, - 0x0D, - 0xEF, - 0x00, - 0x04, - 0xF3, - 0xEF, - 0xEF, - 0xEC, - 0x07, - 0xEF, - 0x00, - 0x14, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0x92, - 0x92, - 0x63, - 0x74, - 0x74, - 0x75, - 0x4B, - 0x74, - 0xDA, - 0xEB, - 0x05, - 0xE4, - 0x00, - 0x05, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xBE, - 0x00, - 0xA4, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xA4, - 0xA8, - 0x8E, - 0xA4, - 0x8E, - 0x8C, - 0x8C, - 0x72, - 0x8C, - 0x5C, - 0x8C, - 0x73, - 0x8C, - 0x8B, - 0x72, - 0x73, - 0x6F, - 0xE6, - 0x4E, - 0x2C, - 0x2B, - 0x48, - 0x2B, - 0x22, - 0x2A, - 0x2B, - 0x14, - 0x49, - 0x49, - 0x60, - 0x4D, - 0x4D, - 0x76, - 0x76, - 0x93, - 0x51, - 0x83, - 0x53, - 0x9C, - 0x84, - 0x6B, - 0x84, - 0xB1, - 0x84, - 0x9C, - 0x84, - 0x84, - 0x84, - 0x3E, - 0x53, - 0x33, - 0x53, - 0x33, - 0x1B, - 0x68, - 0x68, - 0x55, - 0x69, - 0xC8, - 0x9C, - 0xB1, - 0x86, - 0x69, - 0x87, - 0x81, - 0x82, - 0x97, - 0x7E, - 0x98, - 0x7D, - 0x66, - 0x3D, - 0x66, - 0x3D, - 0x7B, - 0x7B, - 0xE6, - 0xD3, - 0x62, - 0x7A, - 0x4E, - 0x4E, - 0x4B, - 0xE5, - 0xF3, - 0xF1, - 0xF3, - 0xF3, - 0xF1, - 0x92, - 0x5E, - 0x5E, - 0x62, - 0x38, - 0x38, - 0xEB, - 0xF1, - 0xE6, - 0xEB, - 0xE4, - 0xF1, - 0xF1, - 0xE8, - 0x73, - 0x46, - 0xA5, - 0xA5, - 0x5C, - 0x8E, - 0xA5, - 0x72, - 0x5C, - 0x5C, - 0x73, - 0xB7, - 0xCD, - 0xCD, - 0xB9, - 0xB9, - 0xB9, - 0xA5, - 0xB9, - 0xB9, - 0xB7, - 0xB9, - 0xA2, - 0xB7, - 0xE2, - 0xB7, - 0x6F, - 0x8B, - 0x2C, - 0x12, - 0x12, - 0x47, - 0x2C, - 0x6F, - 0x43, - 0x6F, - 0x6F, - 0x36, - 0x2C, - 0x6F, - 0x2A, - 0x22, - 0x2A, - 0x47, - 0x39, - 0x2C, - 0x48, - 0x1F, - 0x1F, - 0x2B, - 0xB5, - 0x36, - 0x44, - 0x05, - 0x2A, - 0x00, - 0x0A, - 0x1F, - 0x48, - 0x2B, - 0x08, - 0x08, - 0x03, - 0x08, - 0x03, - 0x08, - 0x36, - 0x07, - 0x11, - 0x00, - 0x22, - 0x1F, - 0x2A, - 0x08, - 0x11, - 0x10, - 0x12, - 0x10, - 0x11, - 0x1E, - 0x03, - 0x08, - 0x03, - 0x04, - 0x04, - 0x03, - 0x04, - 0x11, - 0x44, - 0x03, - 0x10, - 0x47, - 0x2B, - 0x6F, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x14, - 0x2B, - 0x48, - 0x75, - 0x48, - 0xA6, - 0x37, - 0x06, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x4C, - 0x70, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x82, - 0x82, - 0x82, - 0x52, - 0x80, - 0x80, - 0x80, - 0x99, - 0x52, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x67, - 0x52, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0x95, - 0x96, - 0xAB, - 0x95, - 0xAA, - 0xC0, - 0xAA, - 0x94, - 0xE6, - 0x0A, - 0xEF, - 0x00, - 0x07, - 0xF3, - 0xEF, - 0xF3, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0x00, - 0x05, - 0xEF, - 0x00, - 0x05, - 0xEC, - 0xEB, - 0xF1, - 0xEB, - 0xEC, - 0x00, - 0x06, - 0xEB, - 0x00, - 0x09, - 0xDA, - 0xBF, - 0xBF, - 0x4B, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x64, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x66, - 0xD1, - 0xE4, - 0xE8, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xCF, - 0xBE, - 0xCF, - 0xA8, - 0xBE, - 0x8E, - 0xA8, - 0x8E, - 0x8E, - 0x8C, - 0x8E, - 0x8C, - 0x8C, - 0x8E, - 0x72, - 0x8C, - 0x72, - 0x72, - 0x5C, - 0x72, - 0x73, - 0x72, - 0x73, - 0x8B, - 0x77, - 0xE6, - 0x48, - 0x1F, - 0x70, - 0x2B, - 0x39, - 0x14, - 0x37, - 0x14, - 0x2B, - 0x3A, - 0x75, - 0x39, - 0x60, - 0x4D, - 0x60, - 0x8F, - 0x65, - 0x68, - 0x3E, - 0x84, - 0x84, - 0xB1, - 0x84, - 0x9C, - 0x84, - 0x9C, - 0x84, - 0x84, - 0x83, - 0x3E, - 0x53, - 0x33, - 0x3E, - 0x3E, - 0x3E, - 0x33, - 0x3E, - 0x83, - 0xB1, - 0x87, - 0x69, - 0x87, - 0x69, - 0xB1, - 0x9B, - 0x69, - 0x87, - 0x97, - 0x7E, - 0xAD, - 0x7D, - 0x68, - 0x51, - 0x7D, - 0x66, - 0x7B, - 0xDE, - 0xF3, - 0xF3, - 0x97, - 0x66, - 0x66, - 0x66, - 0x7B, - 0x7A, - 0x05, - 0xF3, - 0x00, - 0x43, - 0xEF, - 0xEC, - 0xEC, - 0xEB, - 0xE6, - 0xBF, - 0xEB, - 0xF3, - 0xE6, - 0xE4, - 0xEB, - 0xF1, - 0xF3, - 0xC2, - 0x5E, - 0x3B, - 0x8E, - 0x72, - 0x72, - 0x5C, - 0x72, - 0xA4, - 0xA5, - 0x72, - 0x5C, - 0x5B, - 0x5C, - 0xB9, - 0xCD, - 0xCD, - 0xCE, - 0xCC, - 0xCE, - 0xB7, - 0xB9, - 0xBA, - 0xBA, - 0xCC, - 0xCC, - 0xCC, - 0x8D, - 0x13, - 0x47, - 0x2C, - 0x1F, - 0x12, - 0x4B, - 0x47, - 0x74, - 0x47, - 0x36, - 0x2C, - 0x2A, - 0x48, - 0x6F, - 0x2A, - 0x2A, - 0x2A, - 0x6F, - 0x1F, - 0x47, - 0x39, - 0x1F, - 0x43, - 0x47, - 0x36, - 0x44, - 0x00, - 0x05, - 0x2A, - 0x00, - 0x0B, - 0x2B, - 0x10, - 0x43, - 0x20, - 0x04, - 0x04, - 0x03, - 0x08, - 0x03, - 0x20, - 0x2A, - 0x00, - 0x06, - 0x11, - 0x00, - 0x0B, - 0x08, - 0x1E, - 0x2A, - 0x2A, - 0x1F, - 0x11, - 0x03, - 0x04, - 0x1F, - 0x20, - 0x08, - 0x00, - 0x04, - 0x03, - 0x00, - 0x14, - 0x04, - 0x03, - 0x1E, - 0x11, - 0x08, - 0x48, - 0x39, - 0x48, - 0x39, - 0x10, - 0x2B, - 0x45, - 0x2B, - 0x1F, - 0x2D, - 0xA6, - 0x39, - 0xA6, - 0x39, - 0x49, - 0x05, - 0x39, - 0x00, - 0x07, - 0x5D, - 0x5D, - 0x48, - 0x48, - 0x47, - 0x3C, - 0x61, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x0B, - 0x52, - 0x80, - 0x67, - 0x67, - 0x99, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x52, - 0x80, - 0x00, - 0x05, - 0x96, - 0x00, - 0x0A, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xD0, - 0x94, - 0xEC, - 0x0E, - 0xEF, - 0x01, - 0xEC, - 0x06, - 0xEF, - 0x04, - 0xEC, - 0x00, - 0x04, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0x04, - 0xEB, - 0x00, - 0x0A, - 0xBF, - 0xC2, - 0x62, - 0x75, - 0x4B, - 0x63, - 0x74, - 0x4C, - 0xA7, - 0xE6, - 0x05, - 0xE4, - 0x00, - 0x63, - 0xD1, - 0xE4, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xCF, - 0xBE, - 0xCF, - 0x78, - 0xA8, - 0x8E, - 0xA4, - 0x8E, - 0x8E, - 0x8C, - 0x8E, - 0x8C, - 0x8C, - 0x8E, - 0x72, - 0x8C, - 0x73, - 0x8C, - 0x73, - 0x72, - 0x73, - 0x72, - 0x6F, - 0xBF, - 0x7B, - 0x1E, - 0x21, - 0x10, - 0x2C, - 0x10, - 0x14, - 0x20, - 0x2B, - 0x48, - 0x60, - 0x2F, - 0x8F, - 0x3A, - 0x5D, - 0x49, - 0xA3, - 0x65, - 0x68, - 0x83, - 0x84, - 0x6B, - 0x84, - 0xC7, - 0x83, - 0x9C, - 0x84, - 0x85, - 0x9C, - 0x53, - 0x53, - 0x53, - 0x88, - 0x54, - 0x88, - 0x84, - 0x3E, - 0x3E, - 0x69, - 0xB2, - 0xC9, - 0xD6, - 0x9D, - 0xD6, - 0xC8, - 0x86, - 0x6A, - 0x7F, - 0x7F, - 0xC7, - 0xD7, - 0x85, - 0xC8, - 0x9D, - 0xB2, - 0xC8, - 0xF3, - 0xF3, - 0xF3, - 0xF4, - 0xD7, - 0x7F, - 0xE1, - 0xE1, - 0x00, - 0x06, - 0xF3, - 0x00, - 0x12, - 0xF4, - 0xF3, - 0xF3, - 0xF4, - 0xF3, - 0xF3, - 0xF1, - 0xF1, - 0xEF, - 0xEB, - 0xEF, - 0xF1, - 0xF1, - 0xD0, - 0x5B, - 0x3B, - 0x90, - 0x3B, - 0x04, - 0x5C, - 0x00, - 0x3E, - 0x72, - 0xBC, - 0x72, - 0x46, - 0x73, - 0x5B, - 0xB7, - 0xCD, - 0xB9, - 0xB9, - 0xB7, - 0xCC, - 0xB7, - 0xB7, - 0xB9, - 0xB9, - 0xCD, - 0x8D, - 0x74, - 0x47, - 0x2C, - 0x6F, - 0x1E, - 0x2C, - 0x43, - 0x6F, - 0x21, - 0x1E, - 0x36, - 0x2C, - 0x2A, - 0x2A, - 0x48, - 0x47, - 0x1F, - 0x2A, - 0x39, - 0x47, - 0x2A, - 0x47, - 0x47, - 0x2C, - 0x10, - 0x2A, - 0x44, - 0x44, - 0x2A, - 0x2A, - 0x37, - 0x37, - 0x10, - 0x11, - 0x2A, - 0x36, - 0x03, - 0x04, - 0x08, - 0x03, - 0x03, - 0x03, - 0x36, - 0x10, - 0x08, - 0x11, - 0x04, - 0x08, - 0x00, - 0x1C, - 0x03, - 0x03, - 0x2A, - 0x03, - 0x08, - 0x03, - 0x04, - 0x04, - 0x04, - 0x03, - 0x10, - 0x2A, - 0x08, - 0x2B, - 0x6F, - 0x1F, - 0x6F, - 0x2B, - 0x2B, - 0x1F, - 0x1F, - 0x45, - 0x2B, - 0x74, - 0x48, - 0x74, - 0x75, - 0x37, - 0x04, - 0x39, - 0x00, - 0x08, - 0x5D, - 0x48, - 0x5D, - 0x39, - 0x39, - 0x39, - 0x2D, - 0x23, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x82, - 0x82, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x52, - 0x99, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x7C, - 0x67, - 0x80, - 0x7C, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x95, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xAA, - 0x00, - 0x0D, - 0xEF, - 0x01, - 0xEC, - 0x07, - 0xEF, - 0x00, - 0x05, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEC, - 0x00, - 0x07, - 0xEB, - 0x00, - 0x0B, - 0xE6, - 0xA9, - 0xC2, - 0x63, - 0x4B, - 0x74, - 0x74, - 0x75, - 0x4C, - 0xBF, - 0xE6, - 0x00, - 0x06, - 0xE4, - 0x00, - 0x12, - 0xD1, - 0xE4, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xD1, - 0xA8, - 0xA8, - 0x8E, - 0xA4, - 0x8C, - 0x8E, - 0x04, - 0x8C, - 0x00, - 0x93, - 0x72, - 0x72, - 0x8C, - 0x72, - 0x72, - 0x73, - 0x72, - 0x8B, - 0x72, - 0x5E, - 0x74, - 0xEB, - 0x63, - 0x38, - 0x07, - 0x38, - 0x07, - 0x38, - 0x07, - 0x13, - 0x2A, - 0x49, - 0x39, - 0x5D, - 0x66, - 0xB3, - 0xD3, - 0x9E, - 0xDF, - 0xD7, - 0xB4, - 0x83, - 0xD6, - 0xCB, - 0xE7, - 0xC9, - 0x69, - 0xC8, - 0xE7, - 0x59, - 0xB4, - 0x3E, - 0xD7, - 0xCB, - 0xCA, - 0xD7, - 0x9E, - 0xCB, - 0x53, - 0x83, - 0x85, - 0x9D, - 0x59, - 0xB1, - 0x6E, - 0xB2, - 0x6E, - 0xC8, - 0x7F, - 0x7F, - 0x82, - 0x6E, - 0xC8, - 0x86, - 0x84, - 0x7E, - 0xED, - 0xF3, - 0xF3, - 0xF3, - 0xF4, - 0xEA, - 0xE6, - 0xF3, - 0xF3, - 0xF4, - 0xF4, - 0xF3, - 0xF3, - 0xEF, - 0xF3, - 0xEF, - 0xEB, - 0xEC, - 0xF1, - 0xEF, - 0xF3, - 0xF1, - 0xF3, - 0xF1, - 0xF3, - 0xF3, - 0xF1, - 0xF1, - 0x73, - 0x38, - 0x72, - 0x90, - 0x73, - 0x3B, - 0x5B, - 0x72, - 0x5C, - 0x46, - 0x8E, - 0xA5, - 0xB7, - 0x5C, - 0x46, - 0x5B, - 0xA2, - 0xB9, - 0xB9, - 0xB9, - 0xCC, - 0xBA, - 0xCC, - 0xB9, - 0xCE, - 0xB8, - 0x74, - 0x5E, - 0x6F, - 0x6F, - 0x2C, - 0x5E, - 0x43, - 0x1E, - 0x48, - 0x74, - 0x36, - 0x2C, - 0x36, - 0x2A, - 0x2A, - 0x2A, - 0x47, - 0x48, - 0x1F, - 0x1F, - 0x6F, - 0x6F, - 0x36, - 0x2A, - 0x2B, - 0x10, - 0x1F, - 0x00, - 0x05, - 0x2A, - 0x00, - 0x0C, - 0x2B, - 0x10, - 0x20, - 0x20, - 0x36, - 0x2B, - 0x03, - 0x08, - 0x08, - 0x10, - 0x10, - 0x2B, - 0x07, - 0x11, - 0x00, - 0x0D, - 0x08, - 0x11, - 0x08, - 0x08, - 0x11, - 0x08, - 0x03, - 0x04, - 0x10, - 0x20, - 0x08, - 0x08, - 0x04, - 0x00, - 0x04, - 0x03, - 0x00, - 0x1D, - 0x44, - 0x08, - 0x11, - 0x43, - 0x37, - 0x6F, - 0x37, - 0x2B, - 0x1F, - 0x45, - 0x37, - 0x14, - 0x48, - 0xA6, - 0x5D, - 0xA6, - 0x2D, - 0x39, - 0x39, - 0x39, - 0x2D, - 0x37, - 0x3A, - 0x23, - 0x23, - 0x23, - 0x2D, - 0x2D, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x01, - 0x82, - 0x01, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0B, - 0x67, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x80, - 0x52, - 0x96, - 0x7C, - 0x00, - 0x05, - 0x96, - 0x00, - 0x09, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0xBE, - 0xBD, - 0xC2, - 0x00, - 0x13, - 0xEF, - 0x00, - 0x17, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0xEB, - 0xEB, - 0xEB, - 0xDA, - 0xBF, - 0xAA, - 0x4C, - 0x74, - 0x74, - 0x75, - 0x75, - 0x75, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x14, - 0xE8, - 0xE4, - 0xCF, - 0xE4, - 0xD1, - 0xD1, - 0xCF, - 0xE4, - 0xCF, - 0xD1, - 0xBE, - 0xD1, - 0xBE, - 0xD1, - 0xBC, - 0xBE, - 0x8E, - 0xA8, - 0x8E, - 0x8E, - 0x06, - 0x8C, - 0x00, - 0x42, - 0xA8, - 0x8C, - 0xA4, - 0xA2, - 0x72, - 0x73, - 0x72, - 0x72, - 0xA2, - 0xA9, - 0xE5, - 0x07, - 0x07, - 0x3B, - 0x07, - 0x3B, - 0x07, - 0x46, - 0x14, - 0x2B, - 0x49, - 0x49, - 0x79, - 0xB3, - 0xEA, - 0x53, - 0x3D, - 0x68, - 0xCA, - 0xCA, - 0x53, - 0x9E, - 0xCB, - 0xCA, - 0x6C, - 0x54, - 0xD6, - 0xD7, - 0xD5, - 0x3E, - 0x40, - 0x53, - 0x33, - 0x3E, - 0x3E, - 0x87, - 0x9D, - 0x69, - 0x68, - 0x86, - 0x6A, - 0x9A, - 0x85, - 0x7E, - 0xE1, - 0x9D, - 0xB2, - 0x80, - 0x66, - 0x7E, - 0x69, - 0xCB, - 0x9C, - 0x66, - 0x97, - 0xEF, - 0x08, - 0xF3, - 0x00, - 0x24, - 0xE1, - 0xD4, - 0x7A, - 0x62, - 0x95, - 0x62, - 0x3B, - 0x78, - 0x90, - 0x62, - 0x7B, - 0x77, - 0xC2, - 0xF1, - 0xF1, - 0xF3, - 0xF3, - 0xF3, - 0xEB, - 0xBD, - 0x3B, - 0x5B, - 0x73, - 0x90, - 0x3B, - 0x5B, - 0xB9, - 0xCD, - 0x9F, - 0x5C, - 0x8E, - 0xB7, - 0x8B, - 0x46, - 0x5B, - 0x8B, - 0x05, - 0xB9, - 0x00, - 0x2F, - 0xE3, - 0xBA, - 0x5E, - 0x8D, - 0x47, - 0x74, - 0x8D, - 0x5B, - 0x47, - 0x8D, - 0x36, - 0x2C, - 0x47, - 0x6F, - 0x36, - 0x36, - 0x2A, - 0x22, - 0x2A, - 0x44, - 0x47, - 0x36, - 0x36, - 0x36, - 0xB5, - 0x70, - 0x36, - 0x37, - 0x2B, - 0x10, - 0x37, - 0x2A, - 0x2A, - 0x2A, - 0x37, - 0x10, - 0x20, - 0x10, - 0x20, - 0x10, - 0x43, - 0x10, - 0x2A, - 0x10, - 0x11, - 0x08, - 0x03, - 0x00, - 0x06, - 0x11, - 0x00, - 0x25, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x03, - 0x03, - 0x11, - 0x12, - 0x03, - 0x08, - 0x03, - 0x04, - 0x04, - 0x03, - 0x03, - 0x20, - 0x2B, - 0x08, - 0x39, - 0x70, - 0x39, - 0x70, - 0x2B, - 0x1F, - 0x14, - 0x37, - 0x2D, - 0x37, - 0xA6, - 0x39, - 0x77, - 0x49, - 0x23, - 0x20, - 0x00, - 0x06, - 0x23, - 0x00, - 0x04, - 0x3A, - 0x2D, - 0x2D, - 0x23, - 0x00, - 0x00, - 0x00, - 0x11, - 0x80, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x80, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x67, - 0x80, - 0xAD, - 0x00, - 0x04, - 0x96, - 0x00, - 0x0C, - 0x95, - 0x96, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0x94, - 0xA8, - 0xDC, - 0x11, - 0xEF, - 0x00, - 0x0A, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xF1, - 0xEB, - 0xEC, - 0xEB, - 0xF1, - 0x06, - 0xEB, - 0x00, - 0x09, - 0xBF, - 0xDA, - 0x7A, - 0x74, - 0x74, - 0x75, - 0x75, - 0x4C, - 0x93, - 0x00, - 0x06, - 0xE4, - 0x00, - 0x5A, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xCF, - 0xE4, - 0xCF, - 0xD1, - 0xBE, - 0xD1, - 0xBE, - 0xCF, - 0x78, - 0xA8, - 0x8E, - 0x78, - 0x8C, - 0x8E, - 0x8C, - 0x8E, - 0x8C, - 0x8C, - 0x8E, - 0x72, - 0x8E, - 0x72, - 0xA8, - 0x73, - 0x72, - 0x8B, - 0x90, - 0x74, - 0xC0, - 0x64, - 0x07, - 0x38, - 0x07, - 0x46, - 0x07, - 0x38, - 0x20, - 0x14, - 0x48, - 0x49, - 0x23, - 0x5A, - 0xB0, - 0x83, - 0x79, - 0xD5, - 0x3E, - 0x41, - 0x33, - 0x81, - 0x85, - 0xCB, - 0xCB, - 0xD6, - 0xCB, - 0x59, - 0x86, - 0x68, - 0x3E, - 0x33, - 0x53, - 0x3E, - 0x27, - 0x68, - 0xD6, - 0x9E, - 0x7D, - 0x6A, - 0x9A, - 0x9C, - 0x6A, - 0xB1, - 0x9D, - 0xE1, - 0xC8, - 0x7F, - 0x7E, - 0x51, - 0x3D, - 0x7D, - 0x69, - 0x6E, - 0x84, - 0x97, - 0x04, - 0xF3, - 0x00, - 0x58, - 0xF5, - 0xF4, - 0xEC, - 0x9B, - 0xB0, - 0x9B, - 0x62, - 0x3B, - 0x95, - 0x90, - 0x3B, - 0x62, - 0x78, - 0x90, - 0x38, - 0x4B, - 0x4B, - 0x90, - 0xC0, - 0xEB, - 0xEF, - 0xF3, - 0xF1, - 0xF3, - 0xEB, - 0x92, - 0x38, - 0x5B, - 0x73, - 0xB7, - 0xF1, - 0xF1, - 0xE8, - 0x8B, - 0x5C, - 0x72, - 0xA5, - 0x73, - 0x5B, - 0x5B, - 0x5B, - 0xCC, - 0xCE, - 0xBA, - 0xCD, - 0xBA, - 0xA2, - 0x8D, - 0x6F, - 0x8D, - 0x8D, - 0x8D, - 0xA2, - 0x8D, - 0x5B, - 0xB8, - 0x47, - 0x43, - 0x6F, - 0xB8, - 0x43, - 0x43, - 0x6F, - 0xB5, - 0xB8, - 0x6F, - 0x74, - 0x2C, - 0x36, - 0x36, - 0x74, - 0x36, - 0x2A, - 0x2B, - 0x1F, - 0x2B, - 0x37, - 0x2A, - 0x2A, - 0x10, - 0x20, - 0x10, - 0x11, - 0x10, - 0x11, - 0x1F, - 0x2A, - 0x20, - 0x04, - 0x03, - 0x01, - 0x08, - 0x06, - 0x11, - 0x00, - 0x25, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x10, - 0x10, - 0x06, - 0x11, - 0x08, - 0x03, - 0x08, - 0x08, - 0x03, - 0x04, - 0x03, - 0x03, - 0x03, - 0x1E, - 0x08, - 0x10, - 0x6F, - 0x37, - 0x74, - 0x1F, - 0x2B, - 0x2B, - 0x2B, - 0x2D, - 0x49, - 0x75, - 0x3A, - 0x4D, - 0x76, - 0x20, - 0x23, - 0x20, - 0x00, - 0x05, - 0x23, - 0x00, - 0x04, - 0x3A, - 0x2D, - 0x2D, - 0x4A, - 0x00, - 0x00, - 0x01, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0D, - 0x52, - 0x99, - 0x67, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x7C, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0xAD, - 0x00, - 0x04, - 0x96, - 0x00, - 0x0B, - 0xAB, - 0xAB, - 0xAA, - 0x95, - 0xBE, - 0x94, - 0xD0, - 0x94, - 0xD0, - 0xA8, - 0xE6, - 0x00, - 0x0C, - 0xEF, - 0x00, - 0x0F, - 0xF3, - 0xEA, - 0xEF, - 0xEF, - 0xEF, - 0xF3, - 0xF3, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0x00, - 0x06, - 0xEB, - 0x00, - 0x0A, - 0xA9, - 0xC2, - 0x62, - 0x74, - 0x75, - 0x75, - 0x75, - 0x4C, - 0xA9, - 0xEB, - 0x04, - 0xE4, - 0x00, - 0x14, - 0xE8, - 0xE4, - 0xCF, - 0xE4, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xCF, - 0xA8, - 0xA8, - 0x8E, - 0xA4, - 0x8C, - 0x8E, - 0x04, - 0x8C, - 0x00, - 0xA4, - 0x72, - 0x72, - 0xA5, - 0x8C, - 0x92, - 0xA5, - 0xA5, - 0x5E, - 0x72, - 0x8B, - 0xA7, - 0xDC, - 0x47, - 0x07, - 0x07, - 0x38, - 0x07, - 0x3B, - 0x12, - 0x2D, - 0x70, - 0x2D, - 0x2D, - 0x2D, - 0x79, - 0xED, - 0xC7, - 0xF5, - 0xAF, - 0x51, - 0x27, - 0x83, - 0x68, - 0xC9, - 0x59, - 0xC7, - 0x9A, - 0xCB, - 0xC9, - 0x68, - 0x83, - 0x27, - 0x41, - 0xB4, - 0xC9, - 0x9E, - 0x59, - 0xB4, - 0x27, - 0x6A, - 0x83, - 0x9C, - 0x82, - 0x9D, - 0x59, - 0xE1, - 0xC8, - 0x7F, - 0x81, - 0x51, - 0x51, - 0x66, - 0x65, - 0x7E, - 0x6A, - 0xC8, - 0xB0, - 0xF3, - 0xF3, - 0xF3, - 0xF4, - 0xC7, - 0x9A, - 0xE0, - 0x98, - 0xC0, - 0xC0, - 0xDC, - 0xEB, - 0xEC, - 0xEA, - 0xEB, - 0xEB, - 0xE6, - 0xE5, - 0xE6, - 0xBD, - 0x62, - 0x72, - 0x3B, - 0xCF, - 0xDA, - 0xEB, - 0xF1, - 0xF1, - 0xF3, - 0xEB, - 0x73, - 0x38, - 0xB9, - 0xF1, - 0xF1, - 0xF1, - 0xEB, - 0x9F, - 0x5B, - 0x72, - 0xB7, - 0xA2, - 0x46, - 0x5B, - 0x5B, - 0xB7, - 0xCD, - 0xBA, - 0xB7, - 0x8D, - 0x5E, - 0x8D, - 0x8D, - 0x8D, - 0xA2, - 0xB8, - 0xCC, - 0x6F, - 0x6F, - 0x5E, - 0x43, - 0x36, - 0x74, - 0x6F, - 0x47, - 0x74, - 0x36, - 0x2C, - 0x6F, - 0x47, - 0xB5, - 0x36, - 0x2C, - 0x70, - 0x6F, - 0x2A, - 0x1F, - 0x2B, - 0x10, - 0x1F, - 0x2A, - 0x2A, - 0x2B, - 0x10, - 0x20, - 0x10, - 0x10, - 0x20, - 0x10, - 0x11, - 0x11, - 0x03, - 0x08, - 0x03, - 0x08, - 0x03, - 0x08, - 0x06, - 0x11, - 0x00, - 0x2D, - 0x08, - 0x11, - 0x08, - 0x08, - 0x1E, - 0x10, - 0x03, - 0x04, - 0x03, - 0x08, - 0x08, - 0x03, - 0x03, - 0x04, - 0x03, - 0x03, - 0x04, - 0x2A, - 0x11, - 0x11, - 0x70, - 0x39, - 0x70, - 0x39, - 0x2D, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x2D, - 0x49, - 0x75, - 0x75, - 0x20, - 0x20, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x23, - 0x23, - 0x3A, - 0x22, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0xAE, - 0x80, - 0x82, - 0x99, - 0xAE, - 0x04, - 0x96, - 0x00, - 0x03, - 0xAB, - 0xAB, - 0x95, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x06, - 0xBE, - 0x94, - 0x94, - 0xBD, - 0xBC, - 0xEC, - 0x0A, - 0xEF, - 0x00, - 0x12, - 0xF3, - 0xEF, - 0xEF, - 0xF3, - 0xEF, - 0xEC, - 0xF3, - 0xEF, - 0xEF, - 0xEC, - 0xF3, - 0xEC, - 0xF1, - 0xEB, - 0xF1, - 0xEB, - 0xEB, - 0xEC, - 0x04, - 0xEB, - 0x00, - 0x0A, - 0xE4, - 0xA9, - 0xD1, - 0x4B, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x4C, - 0xDA, - 0x05, - 0xE4, - 0x00, - 0x7B, - 0xD1, - 0xE4, - 0xD1, - 0xCF, - 0xCF, - 0xD1, - 0xE4, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xD1, - 0xBC, - 0xBE, - 0x8E, - 0xA4, - 0x8C, - 0xA4, - 0x8C, - 0x8E, - 0x72, - 0x8C, - 0x72, - 0x8C, - 0xA4, - 0x8E, - 0xBD, - 0x8C, - 0xA8, - 0x8B, - 0x73, - 0x5E, - 0x5E, - 0xBF, - 0xDB, - 0x06, - 0x07, - 0x38, - 0x07, - 0x3B, - 0x07, - 0x21, - 0x47, - 0x48, - 0x79, - 0x4D, - 0x3A, - 0xAF, - 0xE9, - 0x51, - 0xE9, - 0x51, - 0x54, - 0x53, - 0x68, - 0xAF, - 0x9C, - 0xCB, - 0x86, - 0xCB, - 0xB3, - 0x68, - 0x83, - 0x27, - 0x53, - 0xD6, - 0x6E, - 0x86, - 0xB3, - 0x7D, - 0x51, - 0x68, - 0x83, - 0x85, - 0x7F, - 0x82, - 0x7F, - 0xB1, - 0x6E, - 0x9B, - 0x9B, - 0x66, - 0x83, - 0x86, - 0x66, - 0x7B, - 0x32, - 0x89, - 0xC8, - 0xF3, - 0xF3, - 0xF3, - 0x9A, - 0x9B, - 0xAD, - 0x7A, - 0xE5, - 0xEC, - 0xEC, - 0xEB, - 0xE4, - 0xD1, - 0xC2, - 0xD1, - 0xE4, - 0xE4, - 0xEB, - 0xEC, - 0xEC, - 0xE6, - 0xD1, - 0xD0, - 0x78, - 0x3B, - 0xA5, - 0xD1, - 0xF1, - 0xF3, - 0xF1, - 0xF1, - 0xCD, - 0xE8, - 0x00, - 0x05, - 0xF1, - 0x00, - 0x36, - 0xCD, - 0x5C, - 0x8B, - 0xA5, - 0xA2, - 0x5B, - 0x5B, - 0x5B, - 0xBA, - 0xB9, - 0xB8, - 0x77, - 0x90, - 0x8D, - 0xA2, - 0xB8, - 0x8B, - 0xBA, - 0xB8, - 0x8D, - 0x47, - 0x47, - 0x47, - 0x13, - 0x36, - 0x6F, - 0x48, - 0x47, - 0x22, - 0x1F, - 0x2A, - 0x47, - 0x6F, - 0x47, - 0x36, - 0x44, - 0x6F, - 0x39, - 0x10, - 0x2B, - 0x10, - 0x10, - 0x37, - 0x2A, - 0x37, - 0x10, - 0x20, - 0x10, - 0x11, - 0x10, - 0x11, - 0x11, - 0x10, - 0x08, - 0x04, - 0x03, - 0x01, - 0x08, - 0x05, - 0x11, - 0x00, - 0x0E, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x10, - 0x12, - 0x03, - 0x03, - 0x08, - 0x08, - 0x08, - 0x03, - 0x04, - 0x04, - 0x03, - 0x00, - 0x12, - 0x2B, - 0x2A, - 0x08, - 0x20, - 0x5D, - 0x11, - 0x2C, - 0x39, - 0x39, - 0x49, - 0x49, - 0x4D, - 0x3C, - 0x39, - 0x3A, - 0x20, - 0x23, - 0x20, - 0x05, - 0x23, - 0x00, - 0x05, - 0x3A, - 0x23, - 0x49, - 0x2D, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x99, - 0x67, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x99, - 0xD4, - 0x80, - 0x7C, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x0D, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0xBE, - 0x94, - 0xCE, - 0xA8, - 0xBE, - 0x00, - 0x0A, - 0xEF, - 0x00, - 0x13, - 0xEA, - 0xF3, - 0xEF, - 0xEF, - 0xF1, - 0xEF, - 0xF1, - 0xEF, - 0xEF, - 0xEF, - 0xF3, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xEB, - 0xEC, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x09, - 0xD0, - 0xC0, - 0x7A, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x4E, - 0x00, - 0x04, - 0xE4, - 0x00, - 0x78, - 0xE8, - 0xE4, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xCF, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0x8C, - 0x8E, - 0x8C, - 0x8C, - 0x72, - 0xA5, - 0xA4, - 0x8C, - 0x72, - 0xA2, - 0xBC, - 0xA2, - 0xA2, - 0x5B, - 0xA2, - 0x6F, - 0xE5, - 0x4D, - 0x1E, - 0x07, - 0x07, - 0x46, - 0x07, - 0x38, - 0x5B, - 0x38, - 0x7B, - 0xC1, - 0x3A, - 0x60, - 0xED, - 0x7D, - 0x93, - 0x97, - 0xC8, - 0xCA, - 0x27, - 0xAF, - 0x84, - 0xD7, - 0xF5, - 0xE7, - 0x89, - 0x7D, - 0x83, - 0x3E, - 0x27, - 0x54, - 0xD7, - 0x68, - 0x40, - 0x83, - 0x83, - 0x51, - 0x68, - 0x9A, - 0x86, - 0xD6, - 0x82, - 0x86, - 0xC8, - 0xD6, - 0x9A, - 0x7D, - 0x7E, - 0x9A, - 0x6E, - 0x84, - 0x84, - 0xCA, - 0xF4, - 0xF4, - 0xF3, - 0x97, - 0x63, - 0xC7, - 0x59, - 0xED, - 0xF5, - 0xE1, - 0xAB, - 0x78, - 0x8C, - 0x8E, - 0x8E, - 0xA8, - 0xAA, - 0x78, - 0xBE, - 0x78, - 0x8E, - 0xE4, - 0xE4, - 0xF1, - 0xEC, - 0xCF, - 0xBE, - 0x3B, - 0x62, - 0xC2, - 0x0A, - 0xF1, - 0x00, - 0x35, - 0xE3, - 0x46, - 0x5B, - 0x5E, - 0xA2, - 0x5B, - 0x5B, - 0x5B, - 0xA2, - 0xA7, - 0xBA, - 0xA2, - 0xB7, - 0xA2, - 0x8D, - 0xBA, - 0xBA, - 0x5B, - 0x74, - 0x5E, - 0x48, - 0x6F, - 0x48, - 0x1E, - 0x2C, - 0x47, - 0x48, - 0x47, - 0x36, - 0x47, - 0x48, - 0x1F, - 0x6F, - 0x36, - 0x2A, - 0x1F, - 0x47, - 0x1F, - 0x2B, - 0x2B, - 0x10, - 0x2B, - 0x2A, - 0x37, - 0x10, - 0x10, - 0x20, - 0x10, - 0x10, - 0x11, - 0x11, - 0x10, - 0x11, - 0x00, - 0x05, - 0x03, - 0x00, - 0x24, - 0x11, - 0x11, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x1E, - 0x11, - 0x03, - 0x08, - 0x08, - 0x03, - 0x04, - 0x03, - 0x04, - 0x03, - 0x03, - 0x08, - 0x08, - 0x2C, - 0x11, - 0x08, - 0x48, - 0x48, - 0x2D, - 0x2D, - 0x49, - 0x3A, - 0x20, - 0x20, - 0x11, - 0x04, - 0x20, - 0x07, - 0x23, - 0x00, - 0x04, - 0x2D, - 0x2D, - 0x2D, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x67, - 0x80, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x96, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x03, - 0xAB, - 0xAB, - 0x95, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x06, - 0x94, - 0x94, - 0xA8, - 0xA8, - 0xA4, - 0xE4, - 0x08, - 0xEF, - 0x01, - 0xF3, - 0x05, - 0xEF, - 0x00, - 0x0F, - 0xEC, - 0xEF, - 0xEC, - 0xF3, - 0xF3, - 0xF3, - 0xEF, - 0xEF, - 0xF1, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x09, - 0xBF, - 0xE4, - 0x77, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x60, - 0xA7, - 0x00, - 0x05, - 0xE4, - 0x01, - 0xE8, - 0x01, - 0xD1, - 0x04, - 0xCF, - 0x00, - 0x72, - 0xD1, - 0xE4, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xCF, - 0xA8, - 0xA8, - 0x8E, - 0xA4, - 0x8C, - 0x8C, - 0x72, - 0xA4, - 0x72, - 0x8C, - 0x8C, - 0xBC, - 0xA2, - 0x73, - 0x72, - 0x8E, - 0xA2, - 0x5B, - 0xA2, - 0x6F, - 0xA9, - 0xE5, - 0x2C, - 0x07, - 0x07, - 0x46, - 0x07, - 0x3B, - 0x73, - 0x21, - 0x4B, - 0xA7, - 0x8F, - 0x64, - 0xCA, - 0xDE, - 0xD5, - 0xC7, - 0xD5, - 0xCA, - 0x3E, - 0x51, - 0x53, - 0x59, - 0xCA, - 0x59, - 0x54, - 0x7E, - 0x68, - 0x68, - 0x3E, - 0x33, - 0xD7, - 0x8A, - 0xCB, - 0x9D, - 0xB4, - 0x3E, - 0x66, - 0x69, - 0x84, - 0x8A, - 0x87, - 0x59, - 0x9D, - 0xB2, - 0x69, - 0x7E, - 0x7E, - 0x66, - 0xF4, - 0xF4, - 0xE0, - 0xC8, - 0xF4, - 0xF4, - 0xD4, - 0x7B, - 0xA9, - 0xD3, - 0xF4, - 0xAE, - 0x96, - 0xC4, - 0x94, - 0xA8, - 0x8E, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0xA4, - 0xA8, - 0x8E, - 0x8E, - 0x72, - 0x72, - 0xA4, - 0xCF, - 0xEB, - 0xEB, - 0xCF, - 0x72, - 0x38, - 0x5E, - 0xE4, - 0x09, - 0xF1, - 0x00, - 0x35, - 0xE8, - 0x38, - 0x13, - 0x4E, - 0x8D, - 0x38, - 0x38, - 0x21, - 0xA2, - 0xB7, - 0xB7, - 0xA2, - 0xB8, - 0xB7, - 0xB7, - 0x8D, - 0x8D, - 0x5B, - 0xB5, - 0x5E, - 0x2C, - 0x6F, - 0x2C, - 0x36, - 0x2C, - 0x47, - 0x48, - 0x48, - 0x2C, - 0x48, - 0x47, - 0x2C, - 0x48, - 0x1F, - 0x2B, - 0x2A, - 0x2C, - 0x10, - 0x2B, - 0x10, - 0x20, - 0x1F, - 0x2A, - 0x37, - 0x10, - 0x20, - 0x20, - 0x10, - 0x20, - 0x11, - 0x10, - 0x11, - 0x08, - 0x00, - 0x04, - 0x03, - 0x01, - 0x08, - 0x04, - 0x11, - 0x00, - 0x18, - 0x08, - 0x11, - 0x08, - 0x08, - 0x11, - 0x08, - 0x10, - 0x12, - 0x08, - 0x03, - 0x03, - 0x03, - 0x04, - 0x03, - 0x03, - 0x03, - 0x08, - 0x08, - 0x08, - 0x2A, - 0x1F, - 0x08, - 0x20, - 0x23, - 0x04, - 0x11, - 0x00, - 0x03, - 0x20, - 0x11, - 0x11, - 0x00, - 0x05, - 0x20, - 0x01, - 0x23, - 0x01, - 0x2B, - 0x04, - 0x23, - 0x00, - 0x04, - 0x3A, - 0x49, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x08, - 0x6A, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x04, - 0x67, - 0x00, - 0x06, - 0x99, - 0x7C, - 0x52, - 0x80, - 0xAE, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x0F, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0xD0, - 0x94, - 0xA8, - 0xBC, - 0xBD, - 0xA4, - 0xE6, - 0x00, - 0x06, - 0xEF, - 0x00, - 0x13, - 0xF3, - 0xEA, - 0xEF, - 0xF3, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xEF, - 0xF3, - 0xEC, - 0xEC, - 0xF3, - 0xEF, - 0xEC, - 0xEB, - 0xF1, - 0x00, - 0x07, - 0xEB, - 0x00, - 0x75, - 0xE6, - 0xA9, - 0xE5, - 0x4B, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x60, - 0xBF, - 0xEB, - 0xE4, - 0xE4, - 0xE4, - 0xD1, - 0xE4, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xD1, - 0xBE, - 0xA8, - 0x8E, - 0xA8, - 0x8C, - 0x8E, - 0x8C, - 0x8C, - 0x72, - 0x8C, - 0x72, - 0xA4, - 0xA4, - 0xA5, - 0x8C, - 0xA5, - 0xA2, - 0x5B, - 0x73, - 0x8D, - 0x6F, - 0xD0, - 0xC1, - 0x11, - 0x13, - 0x36, - 0x12, - 0x47, - 0x5B, - 0x2B, - 0x7B, - 0x65, - 0x3A, - 0x14, - 0x61, - 0x2F, - 0x2F, - 0x2F, - 0x8F, - 0x50, - 0x27, - 0x51, - 0x7D, - 0x7E, - 0x3E, - 0x7E, - 0x3E, - 0x7E, - 0x51, - 0xAF, - 0x3E, - 0x27, - 0x3E, - 0x51, - 0x3E, - 0x51, - 0x7D, - 0x51, - 0x66, - 0x51, - 0x9A, - 0x82, - 0x7F, - 0x6A, - 0x98, - 0x82, - 0x7E, - 0x69, - 0x7E, - 0x97, - 0xF3, - 0xF3, - 0xF3, - 0xEC, - 0xF3, - 0xF3, - 0x7B, - 0x7B, - 0x95, - 0xEF, - 0xC2, - 0xCF, - 0x8E, - 0x8E, - 0x8E, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0x00, - 0x05, - 0xA8, - 0x00, - 0x0D, - 0x8E, - 0x8E, - 0x8C, - 0x8E, - 0x72, - 0x8E, - 0xCF, - 0xEB, - 0xEB, - 0xD8, - 0x38, - 0x21, - 0xBD, - 0x00, - 0x08, - 0xF1, - 0x00, - 0x26, - 0xD9, - 0x21, - 0x21, - 0x12, - 0x5B, - 0x90, - 0x47, - 0x47, - 0x5B, - 0xA2, - 0xB7, - 0xBA, - 0xA2, - 0xB7, - 0xB7, - 0x8B, - 0x5E, - 0x8D, - 0x74, - 0x5B, - 0x6F, - 0x36, - 0x74, - 0x36, - 0x1F, - 0x47, - 0x48, - 0x48, - 0x47, - 0x2A, - 0x37, - 0x48, - 0x48, - 0x39, - 0x2B, - 0x10, - 0x48, - 0x22, - 0x04, - 0x10, - 0x00, - 0x0B, - 0x37, - 0x37, - 0x1F, - 0x20, - 0x10, - 0x11, - 0x20, - 0x11, - 0x10, - 0x11, - 0x11, - 0x00, - 0x05, - 0x03, - 0x00, - 0x1C, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x43, - 0x37, - 0x10, - 0x10, - 0x06, - 0x08, - 0x04, - 0x04, - 0x03, - 0x11, - 0x08, - 0x08, - 0x20, - 0x48, - 0x08, - 0x08, - 0x08, - 0x05, - 0x11, - 0x00, - 0x05, - 0x20, - 0x2D, - 0x39, - 0x4D, - 0x60, - 0x00, - 0x06, - 0x23, - 0x00, - 0x06, - 0x2B, - 0x23, - 0x2D, - 0x2D, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x03, - 0x85, - 0x82, - 0x82, - 0x00, - 0x04, - 0x80, - 0x00, - 0x1F, - 0x52, - 0x99, - 0x52, - 0x67, - 0x99, - 0x7C, - 0x7C, - 0x80, - 0x80, - 0x7C, - 0xAE, - 0xAE, - 0xD4, - 0xAE, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xBE, - 0xAA, - 0xAA, - 0xBE, - 0xBD, - 0xA8, - 0xA4, - 0xB9, - 0xEC, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x04, - 0xF3, - 0xF3, - 0xEA, - 0xF3, - 0x04, - 0xEF, - 0x00, - 0x0F, - 0xF1, - 0xEF, - 0xEC, - 0xF1, - 0xEF, - 0xF3, - 0xEF, - 0xF3, - 0xEF, - 0xF1, - 0xEB, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x09, - 0xDA, - 0xBF, - 0xC0, - 0x4C, - 0x75, - 0x75, - 0x4C, - 0x60, - 0x75, - 0x00, - 0x05, - 0xE4, - 0x01, - 0xE8, - 0x01, - 0xD1, - 0x05, - 0xCF, - 0x00, - 0x4C, - 0xE4, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xBE, - 0xCF, - 0xA4, - 0xA4, - 0x8C, - 0xA4, - 0x72, - 0x8E, - 0x72, - 0x8C, - 0x72, - 0xB7, - 0x72, - 0xB9, - 0xA5, - 0x72, - 0xA2, - 0x5B, - 0x73, - 0x6F, - 0x5E, - 0x48, - 0xE5, - 0x3A, - 0x45, - 0x23, - 0x20, - 0x49, - 0x75, - 0x20, - 0xAC, - 0x50, - 0x23, - 0x3A, - 0x49, - 0x14, - 0x49, - 0x14, - 0x4D, - 0x79, - 0x3D, - 0x26, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x51, - 0x3E, - 0x27, - 0x68, - 0x51, - 0x83, - 0x7E, - 0x83, - 0x83, - 0x7E, - 0x69, - 0x68, - 0xAF, - 0x7D, - 0x7E, - 0x97, - 0x97, - 0x97, - 0x66, - 0x7D, - 0x7B, - 0x7E, - 0x04, - 0xF3, - 0x00, - 0x0C, - 0xF4, - 0xE6, - 0x63, - 0x7A, - 0xEC, - 0xD2, - 0x72, - 0xC2, - 0xC2, - 0x8E, - 0xA8, - 0x8E, - 0x09, - 0xA8, - 0x00, - 0x0E, - 0x8C, - 0x8E, - 0x8E, - 0x8C, - 0x8E, - 0x8C, - 0x8C, - 0xE8, - 0xEB, - 0xE4, - 0xB7, - 0x46, - 0x62, - 0xEB, - 0x05, - 0xF1, - 0x00, - 0x37, - 0xE8, - 0x5E, - 0x12, - 0x12, - 0x13, - 0x47, - 0x73, - 0xA2, - 0x38, - 0x6F, - 0x38, - 0xBA, - 0xBA, - 0xB7, - 0xB9, - 0x8D, - 0x8D, - 0x8D, - 0x6F, - 0x5B, - 0x74, - 0x5E, - 0x48, - 0x48, - 0x6F, - 0x48, - 0x47, - 0x48, - 0x2A, - 0x47, - 0x1F, - 0x1F, - 0x39, - 0x2C, - 0x43, - 0x1F, - 0x10, - 0x14, - 0x43, - 0x14, - 0x2B, - 0x20, - 0x20, - 0x2B, - 0x37, - 0x1F, - 0x10, - 0x20, - 0x20, - 0x11, - 0x11, - 0x10, - 0x11, - 0x11, - 0x08, - 0x00, - 0x04, - 0x03, - 0x00, - 0x04, - 0x08, - 0x11, - 0x11, - 0x11, - 0x06, - 0x08, - 0x00, - 0x0F, - 0x11, - 0x1F, - 0x36, - 0x11, - 0x03, - 0x03, - 0x02, - 0x04, - 0x03, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x2C, - 0x00, - 0x04, - 0x11, - 0x00, - 0x0B, - 0x23, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x4D, - 0x4D, - 0x23, - 0x74, - 0x49, - 0x20, - 0x00, - 0x04, - 0x23, - 0x00, - 0x06, - 0x3A, - 0x14, - 0x3A, - 0x39, - 0x2D, - 0x23, - 0x00, - 0x00, - 0x00, - 0x19, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x80, - 0x52, - 0x80, - 0x52, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x80, - 0x96, - 0x7C, - 0xAE, - 0xAE, - 0x7C, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x14, - 0x94, - 0xBE, - 0xD0, - 0xBE, - 0xA8, - 0xCE, - 0xA8, - 0xA4, - 0xBC, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xED, - 0xEF, - 0xF3, - 0xEF, - 0xEF, - 0xEF, - 0xF1, - 0x04, - 0xEF, - 0x00, - 0x0A, - 0xEC, - 0xF1, - 0xEF, - 0xEF, - 0xF3, - 0xEF, - 0xEC, - 0xEC, - 0xEB, - 0xF1, - 0x08, - 0xEB, - 0x00, - 0x60, - 0xA9, - 0xBF, - 0x63, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x3C, - 0x63, - 0xCF, - 0xE4, - 0xE4, - 0xE4, - 0xD1, - 0xE4, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xA8, - 0xA8, - 0x8E, - 0xA4, - 0x8C, - 0xA4, - 0x72, - 0x8C, - 0x72, - 0x8C, - 0x73, - 0x72, - 0x8B, - 0xA2, - 0x73, - 0x8B, - 0x8D, - 0x5B, - 0xA2, - 0x70, - 0xA9, - 0xDB, - 0x48, - 0x20, - 0x20, - 0x39, - 0x70, - 0x2B, - 0xD2, - 0x79, - 0x10, - 0x49, - 0x76, - 0x3A, - 0x4D, - 0x2D, - 0x4D, - 0x61, - 0x65, - 0x26, - 0x3D, - 0x27, - 0x51, - 0x3E, - 0x27, - 0x33, - 0x27, - 0x3E, - 0x27, - 0x7E, - 0xAF, - 0x9C, - 0x81, - 0x9A, - 0x9A, - 0xAF, - 0x9B, - 0x83, - 0x7F, - 0x7B, - 0x7A, - 0x7A, - 0x7A, - 0x95, - 0x65, - 0x66, - 0x7B, - 0xAD, - 0x05, - 0xF3, - 0x00, - 0x0A, - 0xAC, - 0x62, - 0xC3, - 0xEC, - 0x62, - 0x8E, - 0x78, - 0xE4, - 0xD1, - 0x8E, - 0x06, - 0xA8, - 0x00, - 0x05, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xA4, - 0x00, - 0x04, - 0x8E, - 0x00, - 0x36, - 0x8C, - 0x8E, - 0x72, - 0x8E, - 0xE4, - 0xEB, - 0xBC, - 0x73, - 0x5B, - 0xE8, - 0xF1, - 0xF1, - 0xF1, - 0xE8, - 0x5B, - 0x5B, - 0x5E, - 0x47, - 0x38, - 0x46, - 0x5B, - 0x8D, - 0xA2, - 0x38, - 0x47, - 0x5B, - 0xB7, - 0xB9, - 0xBA, - 0xA2, - 0x8D, - 0x5E, - 0x5E, - 0x8D, - 0x6F, - 0x6F, - 0x5E, - 0x2C, - 0x47, - 0x48, - 0x2A, - 0x48, - 0x48, - 0x36, - 0x48, - 0x2A, - 0x48, - 0x43, - 0x22, - 0x2C, - 0x10, - 0x10, - 0x39, - 0x39, - 0x04, - 0x10, - 0x00, - 0x0B, - 0x2B, - 0x1F, - 0x1F, - 0x20, - 0x11, - 0x11, - 0x11, - 0x10, - 0x11, - 0x11, - 0x08, - 0x00, - 0x04, - 0x03, - 0x00, - 0x32, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x20, - 0x11, - 0x10, - 0x03, - 0x03, - 0x04, - 0x06, - 0x03, - 0x03, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x37, - 0x2D, - 0x08, - 0x11, - 0x2D, - 0x48, - 0x45, - 0x23, - 0x20, - 0x20, - 0x11, - 0x20, - 0x20, - 0x4D, - 0x60, - 0x20, - 0x23, - 0x2B, - 0x23, - 0x23, - 0x23, - 0x3A, - 0x14, - 0x49, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x04, - 0x6B, - 0x00, - 0x0E, - 0x85, - 0x80, - 0x80, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x6A, - 0x6A, - 0x96, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x29, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0xC0, - 0xBE, - 0x94, - 0x94, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xA4, - 0xB9, - 0xCF, - 0xEF, - 0xEF, - 0xF3, - 0xED, - 0xF3, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xF1, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xEB, - 0xF1, - 0xEC, - 0xEB, - 0xEC, - 0x00, - 0x06, - 0xEB, - 0x00, - 0x10, - 0xDC, - 0x62, - 0x4B, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x3C, - 0x60, - 0x63, - 0xD0, - 0xE4, - 0xE4, - 0xD1, - 0x06, - 0xCF, - 0x04, - 0xBE, - 0x00, - 0x43, - 0xBC, - 0x94, - 0xBC, - 0xA4, - 0xA4, - 0x8E, - 0xA4, - 0x8C, - 0xA4, - 0x72, - 0x8C, - 0xA2, - 0x8C, - 0xA2, - 0xA2, - 0x73, - 0x73, - 0x8B, - 0x8B, - 0x74, - 0x5E, - 0x8B, - 0x8D, - 0x6F, - 0xE5, - 0x93, - 0x11, - 0x3A, - 0x48, - 0x4C, - 0x2B, - 0xC6, - 0x17, - 0x20, - 0x39, - 0x4D, - 0x2D, - 0x61, - 0x2D, - 0x4D, - 0x2D, - 0x8F, - 0x50, - 0x51, - 0x3D, - 0x51, - 0x26, - 0x51, - 0x27, - 0x27, - 0x51, - 0x27, - 0x3E, - 0x51, - 0x9B, - 0x7E, - 0x9B, - 0xAF, - 0x82, - 0x9A, - 0x81, - 0xB1, - 0xAC, - 0x66, - 0x7A, - 0x7A, - 0x95, - 0x00, - 0x04, - 0x7B, - 0x01, - 0xE5, - 0x04, - 0xF3, - 0x00, - 0x0B, - 0x7B, - 0x62, - 0xEC, - 0xC0, - 0x8E, - 0x8E, - 0x78, - 0xA8, - 0xE6, - 0x94, - 0xA4, - 0x00, - 0x08, - 0xA8, - 0x00, - 0x03, - 0xBC, - 0xA8, - 0xA4, - 0x00, - 0x06, - 0x8E, - 0x00, - 0x42, - 0x8C, - 0x9F, - 0xD8, - 0xEB, - 0xE8, - 0x5C, - 0x5B, - 0xE8, - 0xF1, - 0xF1, - 0xEB, - 0x8B, - 0x38, - 0x5E, - 0xA2, - 0x5B, - 0x73, - 0x5B, - 0x5B, - 0x8D, - 0x8B, - 0x47, - 0x47, - 0x5B, - 0xE2, - 0xA2, - 0x8D, - 0x8D, - 0x8D, - 0x5B, - 0x5E, - 0x5B, - 0x5E, - 0x6F, - 0x5B, - 0x2A, - 0x2C, - 0x47, - 0x48, - 0x48, - 0x2C, - 0x48, - 0x48, - 0x44, - 0x2C, - 0x36, - 0x48, - 0x37, - 0x10, - 0x2B, - 0x48, - 0x10, - 0x20, - 0x20, - 0x20, - 0x10, - 0x1F, - 0x1F, - 0x10, - 0x11, - 0x11, - 0x11, - 0x10, - 0x11, - 0x11, - 0x11, - 0x05, - 0x03, - 0x01, - 0x08, - 0x01, - 0x11, - 0x06, - 0x08, - 0x00, - 0x0B, - 0x11, - 0x20, - 0x20, - 0x11, - 0x08, - 0x04, - 0x04, - 0x11, - 0x11, - 0x03, - 0x11, - 0x00, - 0x04, - 0x08, - 0x00, - 0x09, - 0x20, - 0x48, - 0x08, - 0x08, - 0x2B, - 0x70, - 0x11, - 0x11, - 0x11, - 0x00, - 0x04, - 0x20, - 0x00, - 0x03, - 0x3A, - 0x74, - 0x20, - 0x00, - 0x05, - 0x23, - 0x00, - 0x05, - 0x3A, - 0x3A, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x0D, - 0x6A, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x99, - 0x67, - 0x6B, - 0x87, - 0x67, - 0x67, - 0x00, - 0x04, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x13, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xBE, - 0xD0, - 0x94, - 0xBE, - 0x94, - 0x94, - 0xBD, - 0xDC, - 0xF3, - 0xED, - 0xED, - 0xED, - 0xF3, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x0C, - 0xEC, - 0xEF, - 0xF1, - 0xEC, - 0xF1, - 0xEF, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0x08, - 0xEB, - 0x00, - 0x19, - 0xEC, - 0xDA, - 0x5E, - 0x4E, - 0x74, - 0x75, - 0x75, - 0x4B, - 0x75, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x60, - 0xA6, - 0xCF, - 0xE4, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xBC, - 0x00, - 0x04, - 0xA8, - 0x00, - 0x9A, - 0xA4, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0x8C, - 0x8E, - 0x72, - 0x8C, - 0x72, - 0x8C, - 0x73, - 0x72, - 0x8B, - 0xA2, - 0x8D, - 0x8D, - 0x5B, - 0x74, - 0x8B, - 0x5E, - 0x8D, - 0x74, - 0xE5, - 0x23, - 0x2A, - 0x47, - 0x6F, - 0x2A, - 0xC6, - 0x16, - 0x10, - 0x2D, - 0x4D, - 0x4D, - 0x39, - 0x2F, - 0x39, - 0x30, - 0xC1, - 0xC1, - 0x51, - 0x50, - 0x51, - 0x66, - 0x53, - 0x51, - 0x3E, - 0x51, - 0x83, - 0x68, - 0x68, - 0xB0, - 0x7E, - 0x9B, - 0x7E, - 0x9A, - 0x7E, - 0x9A, - 0x81, - 0x7E, - 0x95, - 0xA9, - 0x95, - 0x7A, - 0x98, - 0xAC, - 0x95, - 0x7B, - 0x62, - 0xAC, - 0xE6, - 0xF3, - 0xEF, - 0x92, - 0x92, - 0xEC, - 0x94, - 0x78, - 0x78, - 0xA8, - 0xA8, - 0xC2, - 0xEB, - 0xBE, - 0xA8, - 0xA8, - 0xBE, - 0xBC, - 0xBE, - 0xBC, - 0xBC, - 0xCF, - 0xBC, - 0xBC, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0xA4, - 0x8E, - 0x8C, - 0x9F, - 0xD8, - 0xF1, - 0xEB, - 0x9F, - 0x72, - 0xE8, - 0xF1, - 0xF1, - 0xF1, - 0x8B, - 0x5B, - 0x5C, - 0xB7, - 0x5B, - 0x5B, - 0x5B, - 0x38, - 0xA2, - 0x5B, - 0x6F, - 0x5B, - 0x8B, - 0xA2, - 0xB8, - 0x8D, - 0x8B, - 0x8D, - 0x8D, - 0x6F, - 0xB5, - 0x6F, - 0x8D, - 0xB8, - 0x6F, - 0x43, - 0x1F, - 0x2A, - 0x47, - 0x37, - 0x47, - 0x48, - 0x44, - 0x48, - 0x39, - 0x48, - 0x2B, - 0x10, - 0x39, - 0x2C, - 0x04, - 0x10, - 0x00, - 0x10, - 0x1F, - 0x2A, - 0x1F, - 0x10, - 0x20, - 0x11, - 0x1F, - 0x12, - 0x20, - 0x11, - 0x11, - 0x03, - 0x08, - 0x03, - 0x03, - 0x08, - 0x05, - 0x11, - 0x00, - 0x17, - 0x08, - 0x11, - 0x10, - 0x10, - 0x10, - 0x11, - 0x08, - 0x03, - 0x04, - 0x03, - 0x2A, - 0x08, - 0x11, - 0x06, - 0x10, - 0x08, - 0x11, - 0x11, - 0x48, - 0x20, - 0x20, - 0x20, - 0x75, - 0x00, - 0x04, - 0x20, - 0x00, - 0x10, - 0x10, - 0x23, - 0x23, - 0x23, - 0x93, - 0x2D, - 0x2B, - 0x3A, - 0x14, - 0x3A, - 0x2D, - 0x2D, - 0x2D, - 0x48, - 0x4C, - 0x3A, - 0x00, - 0x00, - 0x01, - 0x55, - 0x04, - 0x6B, - 0x00, - 0x0D, - 0x6A, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x99, - 0x52, - 0x6B, - 0x55, - 0x67, - 0x67, - 0x00, - 0x06, - 0x7C, - 0x00, - 0x14, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0xC0, - 0xAA, - 0xAA, - 0xD0, - 0xBE, - 0x94, - 0xD0, - 0xAA, - 0xEA, - 0xED, - 0xF4, - 0xED, - 0x07, - 0xEF, - 0x00, - 0x0E, - 0xEC, - 0xEF, - 0xEF, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xF1, - 0xEC, - 0xEB, - 0xF1, - 0x04, - 0xEB, - 0x00, - 0x07, - 0xEC, - 0xBE, - 0x5E, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x00, - 0x06, - 0x75, - 0x00, - 0x08, - 0x4C, - 0x60, - 0x4C, - 0xA9, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0x04, - 0xBE, - 0x00, - 0x9F, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0x8E, - 0xA4, - 0x8C, - 0x8E, - 0x8C, - 0x8C, - 0x8C, - 0x72, - 0x8C, - 0x72, - 0xB7, - 0x73, - 0xB7, - 0x8B, - 0x8B, - 0x5B, - 0x8B, - 0x6F, - 0x6F, - 0x6F, - 0x8D, - 0x8B, - 0x70, - 0xDA, - 0xC1, - 0x2C, - 0x5B, - 0x38, - 0x47, - 0x99, - 0x09, - 0x09, - 0x10, - 0x63, - 0xA3, - 0x2E, - 0x39, - 0x39, - 0xDB, - 0xD3, - 0xAC, - 0xDE, - 0x97, - 0x51, - 0x7E, - 0xC7, - 0xC6, - 0x51, - 0x3D, - 0x83, - 0xB0, - 0x81, - 0x7E, - 0xC5, - 0xD4, - 0xAD, - 0xC6, - 0x97, - 0x80, - 0xAF, - 0x7F, - 0xC3, - 0x7A, - 0x95, - 0xBF, - 0xAD, - 0xAC, - 0x98, - 0x7A, - 0x92, - 0x62, - 0x63, - 0xF3, - 0xEF, - 0x90, - 0xBF, - 0xEC, - 0xA5, - 0x94, - 0xBE, - 0xA8, - 0xD1, - 0xE4, - 0xD1, - 0xE6, - 0xBC, - 0xD1, - 0xD1, - 0xE4, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xBE, - 0xBC, - 0xBC, - 0xBE, - 0xBC, - 0xBC, - 0xCD, - 0xBC, - 0xBC, - 0xEB, - 0xE8, - 0xE8, - 0xEB, - 0xD8, - 0xB6, - 0xCD, - 0xF1, - 0xF1, - 0xF1, - 0xCC, - 0x8B, - 0x73, - 0x5E, - 0x38, - 0x73, - 0x5B, - 0x5B, - 0x90, - 0x8B, - 0x8B, - 0x38, - 0x8D, - 0xA2, - 0xA2, - 0x8D, - 0x8D, - 0x8B, - 0x8D, - 0x5E, - 0x74, - 0x6F, - 0xCC, - 0x47, - 0x47, - 0x2C, - 0x1F, - 0x2C, - 0x48, - 0x43, - 0x2C, - 0x1F, - 0x1F, - 0x47, - 0x48, - 0x2A, - 0x2B, - 0x2B, - 0x48, - 0x1F, - 0x00, - 0x04, - 0x10, - 0x00, - 0x0F, - 0x37, - 0x37, - 0x2B, - 0x20, - 0x11, - 0x1F, - 0x12, - 0x10, - 0x11, - 0x11, - 0x03, - 0x03, - 0x08, - 0x03, - 0x08, - 0x00, - 0x07, - 0x11, - 0x00, - 0x18, - 0x10, - 0x10, - 0x11, - 0x11, - 0x11, - 0x08, - 0x03, - 0x03, - 0x2A, - 0x11, - 0x11, - 0x06, - 0x10, - 0x11, - 0x11, - 0x11, - 0x5D, - 0x2D, - 0x11, - 0x11, - 0x60, - 0x39, - 0x20, - 0x20, - 0x04, - 0x23, - 0x00, - 0x04, - 0x10, - 0xA6, - 0x4D, - 0x23, - 0x06, - 0x2D, - 0x00, - 0x03, - 0x48, - 0x4B, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x6B, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x82, - 0x52, - 0x80, - 0x05, - 0x67, - 0x00, - 0x1F, - 0x7C, - 0x6A, - 0x85, - 0x7C, - 0x96, - 0x7C, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0xC0, - 0xAA, - 0xBE, - 0xBE, - 0x94, - 0x94, - 0xBC, - 0xBE, - 0xA8, - 0xA4, - 0xB9, - 0xBE, - 0x96, - 0xAE, - 0xEA, - 0xED, - 0xF3, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x10, - 0xF1, - 0xEF, - 0xF1, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEB, - 0xF1, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0x06, - 0xEB, - 0x00, - 0x21, - 0xC0, - 0x62, - 0x4E, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x60, - 0x4C, - 0x60, - 0x3C, - 0x60, - 0x48, - 0x3C, - 0x3C, - 0x5D, - 0x93, - 0xE4, - 0xCF, - 0xCF, - 0xBE, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0xC2, - 0xD1, - 0xC2, - 0xCF, - 0xBE, - 0xA4, - 0x8C, - 0x8C, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x5B, - 0xA5, - 0x72, - 0x73, - 0x73, - 0xDA, - 0xD4, - 0xC0, - 0xE6, - 0xD0, - 0xD4, - 0xD0, - 0x5E, - 0xDA, - 0xD4, - 0xD3, - 0xEB, - 0x60, - 0x5B, - 0x21, - 0x4B, - 0xC6, - 0x02, - 0x02, - 0x11, - 0x1F, - 0x76, - 0x49, - 0x4D, - 0x49, - 0xD2, - 0x7B, - 0x76, - 0x50, - 0xB0, - 0xAF, - 0x50, - 0x7D, - 0x7E, - 0xAF, - 0x7D, - 0x7E, - 0x7E, - 0xAF, - 0x3D, - 0x83, - 0xD3, - 0xAD, - 0xC6, - 0xAC, - 0x99, - 0x97, - 0xC6, - 0xC3, - 0x7A, - 0x95, - 0x95, - 0x7C, - 0x7B, - 0x98, - 0xAC, - 0x62, - 0x7B, - 0x63, - 0xF3, - 0xEF, - 0x5E, - 0x7A, - 0xE6, - 0x73, - 0x72, - 0xA8, - 0xA8, - 0xBE, - 0xAA, - 0xA4, - 0xD1, - 0xE6, - 0xD1, - 0xA8, - 0xA8, - 0x78, - 0x78, - 0x78, - 0x8E, - 0xA8, - 0xA8, - 0xBC, - 0xBE, - 0xBC, - 0xA8, - 0xA8, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x3D, - 0xE8, - 0xF1, - 0xA4, - 0x9F, - 0xE8, - 0xEB, - 0xCD, - 0x5C, - 0xB9, - 0xF1, - 0xF1, - 0xEB, - 0xB7, - 0x21, - 0x5B, - 0x4B, - 0x43, - 0x5B, - 0x6F, - 0x5B, - 0xB7, - 0x4B, - 0x21, - 0x47, - 0x8B, - 0x8D, - 0x8D, - 0x8D, - 0x6F, - 0x5E, - 0x6F, - 0x5B, - 0x4B, - 0x6F, - 0x6F, - 0x2A, - 0x47, - 0x14, - 0x1F, - 0x2C, - 0x39, - 0x48, - 0x10, - 0x10, - 0x2A, - 0x2C, - 0x2C, - 0x10, - 0x10, - 0x37, - 0x2A, - 0x20, - 0x10, - 0x20, - 0x11, - 0x10, - 0x1F, - 0x2B, - 0x20, - 0x11, - 0x20, - 0x00, - 0x04, - 0x11, - 0x01, - 0x08, - 0x04, - 0x03, - 0x01, - 0x08, - 0x01, - 0x11, - 0x04, - 0x08, - 0x00, - 0x0D, - 0x2B, - 0x1F, - 0x2A, - 0x1F, - 0x10, - 0x10, - 0x06, - 0x08, - 0x03, - 0x10, - 0x2B, - 0x08, - 0x11, - 0x00, - 0x04, - 0x08, - 0x00, - 0x07, - 0x23, - 0x39, - 0x08, - 0x11, - 0x2D, - 0x5D, - 0x11, - 0x00, - 0x06, - 0x20, - 0x00, - 0x03, - 0x4D, - 0x4D, - 0x20, - 0x00, - 0x05, - 0x23, - 0x00, - 0x04, - 0x2D, - 0x49, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x04, - 0x6B, - 0x00, - 0x0F, - 0x6A, - 0x52, - 0x80, - 0x52, - 0x80, - 0x99, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x52, - 0x80, - 0x96, - 0x7C, - 0x7C, - 0x00, - 0x05, - 0x96, - 0x01, - 0xAB, - 0x01, - 0xAB, - 0x05, - 0xAA, - 0x00, - 0x0C, - 0xD0, - 0x94, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0xB9, - 0xAA, - 0x96, - 0x95, - 0xC4, - 0xF3, - 0x06, - 0xEF, - 0x00, - 0x0D, - 0xEC, - 0xEF, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0x00, - 0x08, - 0xEB, - 0x00, - 0xC1, - 0xE5, - 0x62, - 0x62, - 0x4C, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x60, - 0x4C, - 0x4C, - 0x60, - 0x60, - 0x60, - 0x48, - 0x3C, - 0x39, - 0x63, - 0xD1, - 0xCF, - 0xBE, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0xE4, - 0xE4, - 0xE4, - 0xAA, - 0xE4, - 0xD1, - 0xA8, - 0x8C, - 0xA4, - 0xBC, - 0xD1, - 0xBE, - 0x8C, - 0x72, - 0x8B, - 0xA2, - 0x90, - 0xD4, - 0xE6, - 0xC5, - 0xA9, - 0xAC, - 0xDA, - 0xBF, - 0x77, - 0xC3, - 0xEC, - 0xBF, - 0xE9, - 0x5E, - 0x21, - 0x77, - 0x98, - 0x06, - 0x12, - 0x11, - 0x09, - 0x23, - 0x49, - 0x60, - 0x14, - 0xC1, - 0xDA, - 0xC5, - 0x50, - 0x9A, - 0xE9, - 0x50, - 0x3D, - 0x51, - 0x9B, - 0xC5, - 0xC5, - 0x97, - 0x9C, - 0x50, - 0x7D, - 0x95, - 0xD3, - 0xC5, - 0x97, - 0x7F, - 0xAC, - 0xD4, - 0xAC, - 0xAD, - 0x92, - 0xAD, - 0xC4, - 0x7B, - 0x7B, - 0x7B, - 0xA9, - 0x62, - 0x63, - 0xEF, - 0xEF, - 0x5E, - 0xBF, - 0xE6, - 0x72, - 0x8E, - 0x8E, - 0xBC, - 0x94, - 0xA8, - 0x94, - 0xBE, - 0xE4, - 0xE6, - 0xA4, - 0xA8, - 0xA8, - 0x78, - 0xA8, - 0xA4, - 0xA8, - 0x8E, - 0xA4, - 0xA4, - 0xA4, - 0xBE, - 0xBC, - 0xA8, - 0xA4, - 0xB6, - 0xCD, - 0xF1, - 0xE8, - 0xA4, - 0xB6, - 0x8C, - 0xE8, - 0xEB, - 0xCD, - 0x5C, - 0xB9, - 0xF1, - 0xF1, - 0xEB, - 0x8B, - 0x21, - 0xB5, - 0x8B, - 0xE8, - 0xB7, - 0x5B, - 0x8B, - 0x8D, - 0x47, - 0x21, - 0x47, - 0xA2, - 0x5E, - 0x8D, - 0x5E, - 0x8D, - 0x6F, - 0x6F, - 0x5E, - 0x6F, - 0x6F, - 0x48, - 0x2C, - 0x48, - 0x1F, - 0x37, - 0x48, - 0x2C, - 0x39, - 0x10, - 0x10, - 0x2C, - 0x2C, - 0x37, - 0x10, - 0x20, - 0x36, - 0x10, - 0x11, - 0x10, - 0x11, - 0x20, - 0x2B, - 0x1F, - 0x10, - 0x11, - 0x10, - 0x00, - 0x04, - 0x11, - 0x01, - 0x08, - 0x04, - 0x03, - 0x05, - 0x08, - 0x00, - 0x19, - 0x2A, - 0x36, - 0x2A, - 0x10, - 0x11, - 0x08, - 0x08, - 0x08, - 0x06, - 0x03, - 0x11, - 0x2A, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x48, - 0x11, - 0x11, - 0x23, - 0x60, - 0x11, - 0x00, - 0x04, - 0x20, - 0x00, - 0x0E, - 0x23, - 0x20, - 0x49, - 0xA3, - 0x20, - 0x23, - 0x23, - 0x3A, - 0x23, - 0x3A, - 0x2D, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x12, - 0x82, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x67, - 0x52, - 0x67, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0x07, - 0x96, - 0x01, - 0xAB, - 0x04, - 0xAA, - 0x00, - 0x0D, - 0xBE, - 0x94, - 0x94, - 0xCE, - 0xBE, - 0xBC, - 0xBC, - 0xBE, - 0x96, - 0x96, - 0xAE, - 0x96, - 0xDE, - 0x00, - 0x07, - 0xEF, - 0x00, - 0x0E, - 0xEC, - 0xEF, - 0xEF, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xF1, - 0xEC, - 0x07, - 0xEB, - 0x00, - 0x0B, - 0x90, - 0xBF, - 0x63, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x60, - 0x60, - 0x00, - 0x04, - 0x3C, - 0x00, - 0xB1, - 0x48, - 0x39, - 0x91, - 0xE4, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0x94, - 0xA8, - 0xBE, - 0xDC, - 0xA4, - 0x8E, - 0xA4, - 0xE6, - 0xBE, - 0x9F, - 0x72, - 0xCF, - 0xD0, - 0x72, - 0xD0, - 0x73, - 0x8B, - 0x5B, - 0x8B, - 0xD1, - 0xC3, - 0x74, - 0xD2, - 0xA6, - 0xD3, - 0x75, - 0xB5, - 0xB9, - 0xE6, - 0xF4, - 0xC1, - 0x1F, - 0x90, - 0x7D, - 0x06, - 0x12, - 0x02, - 0x09, - 0x2A, - 0x5D, - 0x60, - 0x2D, - 0x76, - 0xDB, - 0xDE, - 0xC3, - 0xDE, - 0x68, - 0x50, - 0x50, - 0xDD, - 0x51, - 0xB0, - 0x51, - 0x7D, - 0xDE, - 0x50, - 0x51, - 0x7B, - 0x99, - 0xAC, - 0xD3, - 0x97, - 0x97, - 0x98, - 0xAC, - 0xAE, - 0x92, - 0x92, - 0x94, - 0xAD, - 0x7A, - 0x95, - 0xD4, - 0xDA, - 0x63, - 0xE6, - 0xF3, - 0x62, - 0xAC, - 0xE6, - 0x73, - 0x8E, - 0xA4, - 0xBE, - 0xA8, - 0xA8, - 0xAA, - 0xCF, - 0x94, - 0xE4, - 0xC2, - 0x78, - 0x78, - 0x94, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xD1, - 0xBC, - 0xA4, - 0xEB, - 0xEB, - 0xA4, - 0xCD, - 0xB6, - 0xB6, - 0xB6, - 0xD8, - 0xEB, - 0xCC, - 0x5C, - 0xCE, - 0xF1, - 0xF1, - 0xE8, - 0x8B, - 0xE3, - 0xF1, - 0xF1, - 0xE8, - 0x8B, - 0x47, - 0x5B, - 0x6F, - 0x47, - 0x21, - 0x4B, - 0xA2, - 0x5E, - 0x5E, - 0x5B, - 0x74, - 0x4B, - 0x6F, - 0x6F, - 0x6F, - 0x47, - 0x2A, - 0x48, - 0x1F, - 0x14, - 0x2C, - 0x2A, - 0x48, - 0x2B, - 0x10, - 0x2D, - 0x44, - 0x2C, - 0x09, - 0x10, - 0x1F, - 0x2A, - 0x20, - 0x10, - 0x11, - 0x11, - 0x10, - 0x1F, - 0x2B, - 0x10, - 0x10, - 0x00, - 0x05, - 0x11, - 0x00, - 0x21, - 0x08, - 0x03, - 0x03, - 0x03, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x1F, - 0x36, - 0x11, - 0x08, - 0x08, - 0x11, - 0x08, - 0x08, - 0x2A, - 0x11, - 0x08, - 0x37, - 0x11, - 0x11, - 0x08, - 0x08, - 0x11, - 0x08, - 0x11, - 0x60, - 0x20, - 0x11, - 0x11, - 0x60, - 0x00, - 0x07, - 0x20, - 0x00, - 0x0C, - 0x3A, - 0x93, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x14, - 0x3A, - 0x2D, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x17, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x99, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x00, - 0x04, - 0xAB, - 0x00, - 0x11, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0xBE, - 0xBE, - 0x94, - 0xBC, - 0xBC, - 0xA8, - 0xC0, - 0x96, - 0x96, - 0xC4, - 0x96, - 0xD0, - 0xE6, - 0x00, - 0x05, - 0xEF, - 0x00, - 0x0E, - 0xEC, - 0xF1, - 0xEF, - 0xF1, - 0xEC, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0x08, - 0xEB, - 0x00, - 0x75, - 0xDA, - 0xA9, - 0xD1, - 0x4C, - 0x75, - 0x75, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x48, - 0x4D, - 0x5D, - 0x39, - 0xA9, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0xA8, - 0xBC, - 0xA8, - 0xE4, - 0xBE, - 0xA4, - 0x8C, - 0xA8, - 0xCF, - 0xA4, - 0x72, - 0x8C, - 0xBC, - 0xD1, - 0xD8, - 0xA8, - 0x8D, - 0x8B, - 0x5B, - 0xA7, - 0xE6, - 0xE5, - 0xEC, - 0xA5, - 0x6F, - 0x70, - 0x6F, - 0x6F, - 0xBF, - 0xE6, - 0xE6, - 0x2D, - 0xAC, - 0x51, - 0x02, - 0x12, - 0x06, - 0x20, - 0x2D, - 0x22, - 0x76, - 0x49, - 0x4D, - 0x4F, - 0xE9, - 0xAC, - 0xC1, - 0x32, - 0x50, - 0x25, - 0x65, - 0x25, - 0xDD, - 0xB0, - 0xAF, - 0x9A, - 0x50, - 0x50, - 0x65, - 0xD3, - 0xAC, - 0x98, - 0xAC, - 0xC5, - 0x97, - 0xAC, - 0xAE, - 0xBF, - 0x7A, - 0xA5, - 0xAA, - 0xAC, - 0x7A, - 0xD4, - 0xF3, - 0xEC, - 0xF1, - 0xF3, - 0x90, - 0x7A, - 0xE6, - 0x73, - 0x8E, - 0xA4, - 0xA8, - 0xA4, - 0xA8, - 0xD1, - 0xBC, - 0xBE, - 0xA8, - 0xE4, - 0xD1, - 0xE4, - 0x00, - 0x04, - 0xF1, - 0x00, - 0x16, - 0xEB, - 0xE4, - 0xCF, - 0xCF, - 0xBC, - 0xBE, - 0xBE, - 0xCF, - 0xE8, - 0xF1, - 0xD8, - 0xA4, - 0xA4, - 0xA4, - 0xB6, - 0xA4, - 0x8C, - 0xD8, - 0xEB, - 0xCC, - 0x46, - 0xE8, - 0x07, - 0xF1, - 0x00, - 0x2B, - 0xE3, - 0x43, - 0x47, - 0x8D, - 0x47, - 0x48, - 0x48, - 0x5E, - 0x8D, - 0x8D, - 0x4B, - 0x4B, - 0x5B, - 0x6F, - 0x5E, - 0x6F, - 0x47, - 0x4C, - 0x39, - 0x48, - 0x1F, - 0x1F, - 0x48, - 0x2A, - 0x39, - 0x10, - 0x10, - 0x2C, - 0x39, - 0x1F, - 0x20, - 0x10, - 0x1E, - 0x20, - 0x11, - 0x11, - 0x11, - 0x20, - 0x2B, - 0x2B, - 0x2B, - 0x37, - 0x2B, - 0x00, - 0x04, - 0x10, - 0x01, - 0x11, - 0x04, - 0x08, - 0x05, - 0x10, - 0x00, - 0x2A, - 0x36, - 0x10, - 0x20, - 0x10, - 0x11, - 0x10, - 0x11, - 0x1F, - 0x10, - 0x03, - 0x2A, - 0x2B, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x39, - 0x3A, - 0x11, - 0x11, - 0x60, - 0x2D, - 0x20, - 0x20, - 0x20, - 0x23, - 0x20, - 0x23, - 0x23, - 0x91, - 0x3A, - 0x23, - 0x23, - 0x14, - 0x3A, - 0x2D, - 0x3A, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x04, - 0x82, - 0x04, - 0x80, - 0x00, - 0x0B, - 0x67, - 0x80, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0x98, - 0x00, - 0x06, - 0x96, - 0x00, - 0x24, - 0xAB, - 0xAB, - 0xAA, - 0x95, - 0xC0, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0xBD, - 0xBC, - 0xBE, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAA, - 0xCE, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xF1, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0x0B, - 0xEB, - 0x00, - 0x60, - 0xBF, - 0xDA, - 0xE5, - 0x4C, - 0x4C, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x60, - 0x3C, - 0x3C, - 0x48, - 0x4D, - 0x5D, - 0x3C, - 0xDA, - 0xCF, - 0xBC, - 0xBE, - 0xBE, - 0xBC, - 0x78, - 0xBE, - 0xD1, - 0xBC, - 0x8C, - 0x8C, - 0xBC, - 0xCF, - 0x72, - 0x72, - 0x8C, - 0xD1, - 0xA5, - 0xA4, - 0xA2, - 0xA2, - 0xA2, - 0x6F, - 0xC0, - 0xE4, - 0xC1, - 0xCE, - 0x8D, - 0x77, - 0xA6, - 0x70, - 0x74, - 0xB8, - 0xEC, - 0xE9, - 0xD2, - 0x3D, - 0x02, - 0x06, - 0x02, - 0x20, - 0x2D, - 0x10, - 0x39, - 0x4D, - 0x60, - 0x49, - 0xA3, - 0x97, - 0xDF, - 0xC1, - 0xC5, - 0xC1, - 0x50, - 0x25, - 0x84, - 0xD3, - 0xDE, - 0xAF, - 0x65, - 0x50, - 0x65, - 0x97, - 0xBF, - 0xC6, - 0xA9, - 0xAE, - 0xAC, - 0xAD, - 0xC3, - 0x95, - 0xBF, - 0xA5, - 0x92, - 0x62, - 0xAD, - 0xC3, - 0x04, - 0xF3, - 0x00, - 0x12, - 0xBF, - 0x62, - 0xE6, - 0x73, - 0x8E, - 0xA4, - 0xA8, - 0xA4, - 0xBC, - 0xBE, - 0x94, - 0xBE, - 0x8E, - 0xC2, - 0xF1, - 0xF3, - 0xF3, - 0xF3, - 0x05, - 0xF1, - 0x00, - 0x14, - 0xE4, - 0xCF, - 0xA8, - 0xBC, - 0xA8, - 0xEB, - 0xE4, - 0xB6, - 0xA4, - 0x8C, - 0x8C, - 0x8C, - 0xB6, - 0x8C, - 0x5C, - 0xE8, - 0xE4, - 0x8C, - 0x8B, - 0xE8, - 0x07, - 0xF1, - 0x00, - 0x3A, - 0xCC, - 0x43, - 0x47, - 0x5E, - 0x43, - 0x21, - 0x48, - 0x8D, - 0x8D, - 0x6F, - 0x5B, - 0x74, - 0x6F, - 0x6F, - 0x6F, - 0x47, - 0x47, - 0x2A, - 0x48, - 0x2D, - 0x10, - 0x39, - 0x2A, - 0x2C, - 0x10, - 0x20, - 0x2A, - 0x2C, - 0x39, - 0x10, - 0x20, - 0x1F, - 0x37, - 0x11, - 0x11, - 0x11, - 0x10, - 0x2B, - 0x2B, - 0x10, - 0x1F, - 0x10, - 0x10, - 0x20, - 0x10, - 0x20, - 0x11, - 0x08, - 0x08, - 0x03, - 0x03, - 0x11, - 0x10, - 0x20, - 0x11, - 0x11, - 0x1E, - 0x1F, - 0x04, - 0x11, - 0x00, - 0x12, - 0x20, - 0x20, - 0x1F, - 0x03, - 0x11, - 0x12, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x23, - 0x39, - 0x11, - 0x11, - 0x5D, - 0x39, - 0x04, - 0x20, - 0x00, - 0x0E, - 0x23, - 0x2B, - 0x23, - 0x75, - 0x49, - 0x23, - 0x23, - 0x3A, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x10, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x99, - 0x52, - 0x99, - 0x67, - 0x67, - 0x80, - 0x80, - 0x04, - 0x7C, - 0x00, - 0x22, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0x95, - 0xBE, - 0xBE, - 0xD0, - 0xA8, - 0xA8, - 0xAD, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xBD, - 0xBE, - 0xC0, - 0xBE, - 0xEC, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0x07, - 0xEC, - 0x00, - 0x03, - 0xF1, - 0xEB, - 0xEC, - 0x00, - 0x09, - 0xEB, - 0x00, - 0x8F, - 0xBF, - 0xEC, - 0xDC, - 0x47, - 0x4C, - 0x4C, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x3C, - 0x3C, - 0x48, - 0x4D, - 0x39, - 0x93, - 0xE4, - 0xBC, - 0xBC, - 0xA8, - 0xBE, - 0xA4, - 0xA8, - 0xBE, - 0xDC, - 0xA4, - 0xA4, - 0xBE, - 0xE4, - 0xB7, - 0x8C, - 0x72, - 0xD1, - 0xB9, - 0xB7, - 0xA2, - 0xBA, - 0xB9, - 0x74, - 0x8B, - 0xE6, - 0xBF, - 0x74, - 0xB8, - 0xCE, - 0xE5, - 0x70, - 0x74, - 0x6F, - 0xAC, - 0xF3, - 0xED, - 0x17, - 0x11, - 0x20, - 0x20, - 0x20, - 0x3A, - 0x10, - 0x74, - 0x75, - 0x4D, - 0x4D, - 0x79, - 0x8F, - 0x93, - 0xAC, - 0xD2, - 0xDB, - 0xC1, - 0x79, - 0xEE, - 0x50, - 0x65, - 0x65, - 0x65, - 0x79, - 0x65, - 0x65, - 0x97, - 0xD2, - 0xAC, - 0xD3, - 0xBF, - 0x99, - 0xA9, - 0xAE, - 0x95, - 0xA5, - 0xA8, - 0x90, - 0x62, - 0x62, - 0xEF, - 0xF1, - 0xF3, - 0xF3, - 0xE5, - 0x5E, - 0xE6, - 0xA5, - 0x8C, - 0xA8, - 0xA8, - 0xA4, - 0xBE, - 0xBE, - 0xBE, - 0xA8, - 0x94, - 0xF1, - 0xF3, - 0xF3, - 0xF1, - 0xF3, - 0xF3, - 0xF1, - 0xF3, - 0xF1, - 0xF3, - 0xF1, - 0xF1, - 0xE6, - 0xA8, - 0xE4, - 0xF1, - 0xBC, - 0xBC, - 0xA4, - 0x8C, - 0x8C, - 0x9F, - 0x8E, - 0x8C, - 0x72, - 0x5C, - 0xE8, - 0xE8, - 0x72, - 0x8B, - 0xEB, - 0x00, - 0x06, - 0xF1, - 0x00, - 0x27, - 0xE8, - 0x5E, - 0x21, - 0x4B, - 0x4B, - 0x2C, - 0x48, - 0x5E, - 0x8B, - 0x5E, - 0x4B, - 0x5B, - 0x5E, - 0x6F, - 0x47, - 0x4B, - 0x47, - 0x48, - 0x22, - 0x36, - 0x09, - 0x1F, - 0x2C, - 0x2A, - 0x22, - 0x20, - 0x2B, - 0x2C, - 0x2C, - 0x1F, - 0x20, - 0x10, - 0x2A, - 0x11, - 0x11, - 0x20, - 0x2B, - 0x2B, - 0x10, - 0x00, - 0x05, - 0x11, - 0x00, - 0x08, - 0x08, - 0x11, - 0x08, - 0x03, - 0x04, - 0x04, - 0x04, - 0x03, - 0x04, - 0x08, - 0x01, - 0x11, - 0x01, - 0x06, - 0x04, - 0x08, - 0x00, - 0x24, - 0x11, - 0x11, - 0x2A, - 0x08, - 0x03, - 0x12, - 0x11, - 0x08, - 0x08, - 0x11, - 0x11, - 0x11, - 0x20, - 0x75, - 0x11, - 0x20, - 0x23, - 0x60, - 0x20, - 0x23, - 0x20, - 0x20, - 0x20, - 0x23, - 0x20, - 0x8F, - 0x76, - 0x23, - 0x23, - 0x23, - 0x3A, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x00, - 0x04, - 0x80, - 0x00, - 0x07, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x00, - 0x04, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x29, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0xC0, - 0x94, - 0x94, - 0xBF, - 0x94, - 0xA8, - 0xAA, - 0x7C, - 0x96, - 0xAD, - 0x96, - 0x95, - 0xB9, - 0x94, - 0xBD, - 0xA5, - 0xD0, - 0xEF, - 0xEF, - 0xEF, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0xF1, - 0xEB, - 0xEC, - 0x00, - 0x07, - 0xEB, - 0x00, - 0x8F, - 0xE4, - 0xBE, - 0xEC, - 0xEA, - 0x63, - 0x48, - 0x75, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x60, - 0x3C, - 0x5D, - 0x3C, - 0x5D, - 0x39, - 0x64, - 0xE4, - 0xBC, - 0xBE, - 0xBC, - 0xBE, - 0xA8, - 0xA8, - 0xBC, - 0xE4, - 0xD1, - 0xDC, - 0xCF, - 0xBE, - 0x72, - 0x8C, - 0xA2, - 0xBE, - 0xA4, - 0xBE, - 0xA5, - 0xBC, - 0xA5, - 0xB7, - 0x8D, - 0xDC, - 0xDC, - 0xE4, - 0xDC, - 0xD0, - 0xE6, - 0xA3, - 0x70, - 0xA3, - 0xE9, - 0xE5, - 0xE9, - 0x20, - 0x11, - 0x11, - 0x20, - 0x11, - 0x3A, - 0x11, - 0x77, - 0x2D, - 0x4D, - 0xA6, - 0x8F, - 0x91, - 0x79, - 0x8F, - 0x79, - 0x79, - 0x50, - 0x79, - 0x65, - 0x50, - 0x65, - 0x79, - 0x93, - 0x64, - 0x65, - 0x79, - 0x7B, - 0xAC, - 0x95, - 0xDB, - 0x95, - 0xC3, - 0xA9, - 0xC3, - 0xBF, - 0x92, - 0xB9, - 0xBD, - 0x62, - 0x5E, - 0xDA, - 0xF3, - 0xF3, - 0xF3, - 0xF1, - 0x5E, - 0xDC, - 0x92, - 0x8E, - 0xA8, - 0xBC, - 0xA8, - 0xBE, - 0xCF, - 0xA8, - 0x8E, - 0xE4, - 0xF3, - 0xF1, - 0xF3, - 0xF1, - 0xE6, - 0xD1, - 0xD1, - 0xC2, - 0xEB, - 0xF1, - 0xF1, - 0xF3, - 0xF1, - 0xF1, - 0xF1, - 0xCF, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0x8C, - 0x8E, - 0xA4, - 0x9F, - 0x72, - 0x72, - 0x5C, - 0xE4, - 0xE3, - 0x73, - 0x90, - 0x00, - 0x05, - 0xF1, - 0x00, - 0x2A, - 0xE8, - 0xF1, - 0xE3, - 0x43, - 0x47, - 0x4B, - 0x47, - 0x21, - 0x48, - 0x5E, - 0x4B, - 0x74, - 0x8D, - 0x4B, - 0x6F, - 0x5E, - 0x4B, - 0x47, - 0x4C, - 0x22, - 0x48, - 0x2D, - 0x10, - 0x2C, - 0x22, - 0x48, - 0x10, - 0x20, - 0x2A, - 0x39, - 0x2A, - 0x11, - 0x11, - 0x2A, - 0x10, - 0x11, - 0x2B, - 0x10, - 0x10, - 0x11, - 0x11, - 0x10, - 0x04, - 0x11, - 0x00, - 0x0D, - 0x08, - 0x11, - 0x08, - 0x04, - 0x04, - 0x04, - 0x03, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x12, - 0x00, - 0x04, - 0x08, - 0x00, - 0x24, - 0x11, - 0x11, - 0x2A, - 0x11, - 0x08, - 0x12, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x11, - 0x4C, - 0x20, - 0x11, - 0x20, - 0x75, - 0x20, - 0x20, - 0x20, - 0x23, - 0x23, - 0x23, - 0x20, - 0x60, - 0x64, - 0x2B, - 0x23, - 0x3A, - 0x14, - 0x2D, - 0x3A, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x10, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x80, - 0x80, - 0x04, - 0x7C, - 0x00, - 0x1B, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0x96, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0x95, - 0x94, - 0xBE, - 0x94, - 0xBD, - 0x96, - 0x7C, - 0x7C, - 0x96, - 0xAD, - 0xB9, - 0xB9, - 0x94, - 0xBD, - 0xA5, - 0xA5, - 0xE5, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x0C, - 0xEC, - 0xEF, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEC, - 0x09, - 0xEB, - 0x00, - 0x1E, - 0xE6, - 0xEB, - 0xE4, - 0xBE, - 0xEF, - 0xED, - 0xAC, - 0x43, - 0x48, - 0x60, - 0x60, - 0x60, - 0x3C, - 0x3C, - 0x3C, - 0x48, - 0x4D, - 0x39, - 0x60, - 0xE6, - 0xBC, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xA4, - 0x8E, - 0xA4, - 0x8C, - 0xA4, - 0x04, - 0x8C, - 0x00, - 0xA8, - 0x8B, - 0x72, - 0x8B, - 0xA2, - 0x8B, - 0x8D, - 0x74, - 0x5E, - 0x6F, - 0x74, - 0x6F, - 0xA3, - 0x75, - 0xA0, - 0x8F, - 0x70, - 0x70, - 0x70, - 0x74, - 0x5D, - 0xD9, - 0x93, - 0x11, - 0x11, - 0x20, - 0x11, - 0x3A, - 0x20, - 0x74, - 0x10, - 0x49, - 0xA6, - 0x8F, - 0x8F, - 0x76, - 0x91, - 0x8F, - 0x91, - 0x79, - 0x79, - 0x50, - 0x50, - 0xDD, - 0x50, - 0x65, - 0x91, - 0x93, - 0x79, - 0x50, - 0x64, - 0x91, - 0x63, - 0x77, - 0x62, - 0x77, - 0x77, - 0x90, - 0x78, - 0x92, - 0xA8, - 0x90, - 0x90, - 0x92, - 0xE6, - 0xF3, - 0xF3, - 0xF3, - 0x62, - 0xBF, - 0xC0, - 0x72, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xBE, - 0x8E, - 0x8E, - 0xEB, - 0xF3, - 0xF3, - 0xF1, - 0xBE, - 0x78, - 0x78, - 0x94, - 0x78, - 0x78, - 0x94, - 0xE4, - 0xF1, - 0xF1, - 0xF1, - 0xF3, - 0xE8, - 0x94, - 0xA8, - 0xA8, - 0xBC, - 0xA4, - 0x8E, - 0xA4, - 0x8C, - 0x8C, - 0x72, - 0x5C, - 0x72, - 0xEB, - 0xB9, - 0x5B, - 0xD9, - 0xF1, - 0xF1, - 0xF1, - 0xEB, - 0xEB, - 0xF1, - 0xEB, - 0xB8, - 0x47, - 0x47, - 0x4B, - 0x48, - 0x2C, - 0x4C, - 0x8D, - 0x5E, - 0x77, - 0x8D, - 0x4B, - 0x74, - 0x4B, - 0x6F, - 0x4B, - 0x48, - 0x39, - 0x48, - 0x09, - 0x1F, - 0x39, - 0x2A, - 0x22, - 0x20, - 0x2B, - 0x22, - 0x39, - 0x10, - 0x11, - 0x20, - 0x2A, - 0x20, - 0x1F, - 0x2B, - 0x20, - 0x11, - 0x11, - 0x20, - 0x11, - 0x11, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x03, - 0x03, - 0x04, - 0x03, - 0x05, - 0x08, - 0x01, - 0x1F, - 0x01, - 0x11, - 0x04, - 0x08, - 0x00, - 0x07, - 0x11, - 0x2B, - 0x2B, - 0x03, - 0x1F, - 0x20, - 0x08, - 0x00, - 0x05, - 0x11, - 0x00, - 0x10, - 0x5D, - 0x23, - 0x11, - 0x20, - 0x75, - 0x23, - 0x20, - 0x23, - 0x20, - 0x23, - 0x23, - 0x20, - 0x4D, - 0x93, - 0x09, - 0x23, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x82, - 0x82, - 0x82, - 0x00, - 0x06, - 0x80, - 0x00, - 0x07, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x00, - 0x04, - 0x7C, - 0x05, - 0x96, - 0x01, - 0xAB, - 0x01, - 0xAB, - 0x04, - 0xAA, - 0x00, - 0x22, - 0x94, - 0x94, - 0x94, - 0xAB, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0x94, - 0xBD, - 0xB9, - 0xBF, - 0xBD, - 0xA5, - 0xA5, - 0xBA, - 0xE6, - 0xEF, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0x08, - 0xEB, - 0x00, - 0x1B, - 0xE6, - 0xEB, - 0xEB, - 0xD1, - 0xEB, - 0xF4, - 0xE0, - 0x7B, - 0x48, - 0x48, - 0x3C, - 0x60, - 0x3C, - 0x3C, - 0x3C, - 0x5D, - 0x39, - 0x64, - 0xEC, - 0xBE, - 0xBE, - 0xBC, - 0xBC, - 0xA8, - 0xA8, - 0xA4, - 0xA4, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x0E, - 0x72, - 0x8C, - 0x72, - 0x72, - 0x8B, - 0xA2, - 0x8D, - 0x8B, - 0xB5, - 0x8B, - 0x74, - 0x74, - 0x75, - 0x6F, - 0x05, - 0x70, - 0x00, - 0x8C, - 0xA1, - 0x6F, - 0x5D, - 0x5D, - 0xE5, - 0x5F, - 0x08, - 0x11, - 0x20, - 0x3A, - 0x20, - 0x74, - 0x20, - 0x22, - 0xA6, - 0x8F, - 0x91, - 0x4D, - 0x91, - 0x76, - 0x91, - 0x79, - 0xEE, - 0x79, - 0x65, - 0x50, - 0x50, - 0x65, - 0x65, - 0x7B, - 0x91, - 0x93, - 0x79, - 0x91, - 0x60, - 0x8F, - 0x60, - 0x4E, - 0x75, - 0x4E, - 0x90, - 0x90, - 0x92, - 0x92, - 0x62, - 0x62, - 0x73, - 0x78, - 0xC0, - 0xF3, - 0xE5, - 0x62, - 0xE4, - 0x72, - 0x8E, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0x8E, - 0x78, - 0xEB, - 0xF1, - 0xF1, - 0xE4, - 0x78, - 0x78, - 0x94, - 0xAA, - 0x94, - 0xAA, - 0x94, - 0x94, - 0xAA, - 0xEB, - 0xF1, - 0xF1, - 0xF1, - 0xE4, - 0xA4, - 0xA8, - 0xA8, - 0xBC, - 0xA4, - 0xA4, - 0x8C, - 0x72, - 0x72, - 0x72, - 0x46, - 0xBD, - 0xEB, - 0xA2, - 0x73, - 0xE8, - 0xF1, - 0xF1, - 0xF1, - 0xEB, - 0xEB, - 0xE8, - 0xBA, - 0x47, - 0x47, - 0x77, - 0x48, - 0x2C, - 0x48, - 0x6F, - 0x77, - 0x90, - 0x5E, - 0xBA, - 0x74, - 0x47, - 0x77, - 0x4B, - 0x4B, - 0x8F, - 0x48, - 0x1F, - 0x23, - 0x2C, - 0x14, - 0x2C, - 0x10, - 0x09, - 0x2C, - 0x2A, - 0x37, - 0x10, - 0x1F, - 0x36, - 0x2B, - 0x2B, - 0x10, - 0x11, - 0x11, - 0x11, - 0x02, - 0x04, - 0x11, - 0x00, - 0x07, - 0x08, - 0x11, - 0x08, - 0x03, - 0x03, - 0x03, - 0x04, - 0x00, - 0x05, - 0x08, - 0x01, - 0x10, - 0x01, - 0x10, - 0x05, - 0x08, - 0x00, - 0x07, - 0x20, - 0x2A, - 0x08, - 0x2B, - 0x45, - 0x03, - 0x08, - 0x00, - 0x04, - 0x11, - 0x00, - 0x17, - 0x49, - 0x49, - 0x11, - 0x11, - 0x75, - 0x3A, - 0x20, - 0x20, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x49, - 0xA6, - 0x23, - 0x3A, - 0x2D, - 0x3A, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6B, - 0x05, - 0x85, - 0x05, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x82, - 0x82, - 0x6A, - 0x6A, - 0x00, - 0x06, - 0x80, - 0x05, - 0x67, - 0x00, - 0x27, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0xC3, - 0xA4, - 0xB9, - 0xBD, - 0x94, - 0xBD, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xEB, - 0xEF, - 0xEF, - 0xEF, - 0xF1, - 0xEC, - 0xF1, - 0xEF, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0x00, - 0x09, - 0xEB, - 0x00, - 0xB7, - 0xE4, - 0xEB, - 0xE4, - 0xE4, - 0xED, - 0xF5, - 0xE1, - 0xAC, - 0x4E, - 0x48, - 0x48, - 0x2C, - 0x39, - 0x2C, - 0x4C, - 0xEC, - 0xEC, - 0xBC, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0xBC, - 0xA8, - 0xBC, - 0x8E, - 0x8C, - 0x8C, - 0x8C, - 0x9F, - 0x8C, - 0xA2, - 0x9F, - 0xA2, - 0x8C, - 0x8B, - 0xB7, - 0x8D, - 0xA2, - 0xB5, - 0x8D, - 0x6F, - 0xA3, - 0x6F, - 0x75, - 0xA0, - 0x70, - 0x70, - 0xA1, - 0x60, - 0x70, - 0x71, - 0x75, - 0xAC, - 0x08, - 0x20, - 0x20, - 0x23, - 0x20, - 0x74, - 0x11, - 0x14, - 0x93, - 0xA3, - 0xA6, - 0x61, - 0x8F, - 0x8F, - 0x93, - 0x79, - 0x91, - 0x79, - 0x93, - 0x50, - 0x65, - 0x79, - 0x65, - 0x77, - 0x63, - 0xA6, - 0x64, - 0x93, - 0x4B, - 0x4E, - 0x4C, - 0x4F, - 0x4C, - 0x4B, - 0x5E, - 0x5E, - 0x90, - 0x90, - 0x77, - 0x63, - 0x63, - 0x5E, - 0x62, - 0xEB, - 0xF1, - 0x62, - 0xDA, - 0x92, - 0x8C, - 0xBC, - 0xBC, - 0xA8, - 0xA8, - 0x8E, - 0xA8, - 0xEB, - 0xF3, - 0xF3, - 0xBE, - 0x78, - 0x78, - 0x94, - 0x94, - 0x94, - 0xAA, - 0xBE, - 0xAA, - 0xBE, - 0x94, - 0xE4, - 0xF1, - 0xF1, - 0xF1, - 0xCF, - 0xA8, - 0xA4, - 0xA8, - 0xBC, - 0x8E, - 0x8C, - 0x8C, - 0x9F, - 0x72, - 0x5C, - 0x5C, - 0xE8, - 0xE3, - 0x5E, - 0xA2, - 0xF1, - 0xF1, - 0xE8, - 0x74, - 0x48, - 0x4B, - 0x5E, - 0x6F, - 0x4B, - 0x47, - 0x2C, - 0x4C, - 0x2C, - 0x4C, - 0x90, - 0x5E, - 0x90, - 0x77, - 0x4C, - 0x77, - 0x74, - 0x4B, - 0x74, - 0x3C, - 0x39, - 0x4D, - 0x10, - 0x2D, - 0x39, - 0x39, - 0x23, - 0x10, - 0x2D, - 0x2A, - 0x10, - 0x10, - 0x10, - 0x1F, - 0x2B, - 0x2B, - 0x00, - 0x04, - 0x11, - 0x01, - 0x20, - 0x05, - 0x11, - 0x00, - 0x06, - 0x08, - 0x11, - 0x03, - 0x04, - 0x03, - 0x03, - 0x05, - 0x08, - 0x01, - 0x11, - 0x01, - 0x1F, - 0x06, - 0x08, - 0x00, - 0x21, - 0x2C, - 0x08, - 0x20, - 0x39, - 0x03, - 0x11, - 0x11, - 0x11, - 0x20, - 0x11, - 0x49, - 0x4D, - 0x11, - 0x20, - 0x60, - 0x49, - 0x20, - 0x20, - 0x20, - 0x23, - 0x23, - 0x23, - 0x2D, - 0x93, - 0x23, - 0x14, - 0x3A, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x22, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6B, - 0x06, - 0x85, - 0x00, - 0x09, - 0x6A, - 0x85, - 0x6B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x9B, - 0x82, - 0x00, - 0x05, - 0x80, - 0x00, - 0x25, - 0x52, - 0x80, - 0x67, - 0x67, - 0x99, - 0x67, - 0x67, - 0x98, - 0x7C, - 0x7C, - 0x7C, - 0x94, - 0xB9, - 0xA8, - 0xB9, - 0xD0, - 0xB9, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0xBF, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0x00, - 0x0D, - 0xEB, - 0x00, - 0x13, - 0xE4, - 0xE4, - 0xE8, - 0xE6, - 0xED, - 0xF4, - 0xF4, - 0xEA, - 0xB0, - 0xC5, - 0xC6, - 0xD4, - 0xED, - 0xF3, - 0xCF, - 0xBC, - 0xBE, - 0xBE, - 0xBE, - 0x00, - 0x04, - 0xA8, - 0x00, - 0x17, - 0xA4, - 0x8C, - 0x8C, - 0x8C, - 0x72, - 0x72, - 0x5C, - 0xA2, - 0xA2, - 0xB7, - 0xA2, - 0xA2, - 0x8B, - 0x8B, - 0xB5, - 0x8D, - 0x6F, - 0xB5, - 0x75, - 0xA3, - 0x70, - 0xA0, - 0x5D, - 0x00, - 0x04, - 0x70, - 0x00, - 0x83, - 0x3A, - 0xC0, - 0x79, - 0x11, - 0x20, - 0x23, - 0x23, - 0x75, - 0x08, - 0x1E, - 0x95, - 0xDF, - 0x65, - 0x76, - 0x76, - 0x91, - 0xA7, - 0x91, - 0x93, - 0x79, - 0x91, - 0x79, - 0xC1, - 0x61, - 0x79, - 0x4E, - 0x75, - 0x64, - 0x91, - 0x4E, - 0x4B, - 0x63, - 0x4B, - 0x4E, - 0x4B, - 0x63, - 0x62, - 0x90, - 0xA5, - 0xA5, - 0x90, - 0x5E, - 0x5E, - 0x4B, - 0x5E, - 0xA9, - 0xF3, - 0xBF, - 0x92, - 0xDA, - 0x5C, - 0xA4, - 0xBC, - 0x8E, - 0xA4, - 0xA8, - 0xA8, - 0xE4, - 0xF1, - 0xF1, - 0xBE, - 0x78, - 0xA8, - 0x94, - 0xA8, - 0xD1, - 0xEB, - 0xD1, - 0xAA, - 0xBE, - 0xAA, - 0x94, - 0xE4, - 0xF1, - 0xF1, - 0xF1, - 0xBC, - 0xA4, - 0xA4, - 0xA4, - 0xBC, - 0x8C, - 0x72, - 0x72, - 0x72, - 0x5C, - 0x73, - 0xA2, - 0xEB, - 0xA5, - 0x5B, - 0xE5, - 0xF1, - 0xEB, - 0x8D, - 0x1E, - 0x2C, - 0x2C, - 0x2C, - 0x47, - 0x48, - 0x48, - 0x48, - 0x2C, - 0x2C, - 0x77, - 0x4B, - 0xA7, - 0xA7, - 0x4B, - 0xBD, - 0x90, - 0x5E, - 0x77, - 0x4C, - 0x2D, - 0x60, - 0x2D, - 0x22, - 0x22, - 0x1F, - 0x22, - 0x09, - 0x20, - 0x2A, - 0x11, - 0x11, - 0x11, - 0x2B, - 0x2B, - 0x10, - 0x00, - 0x04, - 0x11, - 0x00, - 0x0D, - 0x20, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x03, - 0x03, - 0x03, - 0x04, - 0x03, - 0x00, - 0x05, - 0x08, - 0x01, - 0x1E, - 0x04, - 0x08, - 0x00, - 0x08, - 0x11, - 0x03, - 0x37, - 0x11, - 0x11, - 0x2C, - 0x03, - 0x08, - 0x04, - 0x11, - 0x00, - 0x10, - 0x23, - 0x60, - 0x11, - 0x20, - 0x49, - 0x4D, - 0x20, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x23, - 0x23, - 0xA6, - 0x2D, - 0x3A, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6B, - 0x05, - 0x85, - 0x05, - 0x6A, - 0x01, - 0x85, - 0x01, - 0x85, - 0x06, - 0x82, - 0x04, - 0x80, - 0x00, - 0x05, - 0x52, - 0x99, - 0x67, - 0x67, - 0x67, - 0x00, - 0x06, - 0x7C, - 0x00, - 0x1C, - 0xAB, - 0xB9, - 0xA8, - 0xBD, - 0xB9, - 0x94, - 0xA8, - 0x92, - 0x92, - 0x92, - 0xA5, - 0x90, - 0xC0, - 0xEF, - 0xF1, - 0xEF, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xF1, - 0xEC, - 0xF1, - 0xEB, - 0xEC, - 0xEC, - 0x08, - 0xEB, - 0x00, - 0x54, - 0xEC, - 0xEF, - 0xEB, - 0xEC, - 0xEB, - 0xE4, - 0xE4, - 0xE4, - 0xE8, - 0xE4, - 0xEC, - 0xEF, - 0xF3, - 0xF4, - 0xF3, - 0xF3, - 0xEF, - 0xE4, - 0xCF, - 0xBC, - 0xBC, - 0xBE, - 0xBE, - 0xD1, - 0xE4, - 0xC2, - 0xBE, - 0xA4, - 0xA4, - 0x8C, - 0x9F, - 0xA8, - 0xBE, - 0xCE, - 0x92, - 0x8B, - 0xA2, - 0xA2, - 0xB9, - 0xBA, - 0xBF, - 0xB8, - 0xA9, - 0x74, - 0x74, - 0xA0, - 0xA3, - 0x70, - 0xA6, - 0xA3, - 0x75, - 0xA1, - 0x48, - 0x76, - 0xA1, - 0x60, - 0xE5, - 0x20, - 0x23, - 0x20, - 0x2D, - 0x60, - 0x08, - 0x12, - 0x5D, - 0xDE, - 0xE9, - 0xA6, - 0x76, - 0x93, - 0x91, - 0x8F, - 0x91, - 0x91, - 0x91, - 0x8F, - 0x93, - 0x79, - 0x65, - 0x64, - 0x63, - 0x4C, - 0x91, - 0x8F, - 0x04, - 0x4B, - 0x00, - 0x60, - 0x4C, - 0x5E, - 0x4B, - 0x90, - 0xA5, - 0xA5, - 0xA4, - 0x90, - 0x90, - 0x62, - 0x90, - 0x3B, - 0xEB, - 0xF1, - 0x73, - 0xE4, - 0x73, - 0x8E, - 0xBC, - 0x8E, - 0x8C, - 0xBC, - 0x94, - 0xCF, - 0xF1, - 0xF1, - 0xE4, - 0x78, - 0xA8, - 0x94, - 0xE8, - 0xF1, - 0xF3, - 0xF1, - 0xF1, - 0xD1, - 0xAA, - 0xBE, - 0x94, - 0xC2, - 0xF1, - 0xF1, - 0xF1, - 0xB6, - 0xA4, - 0x8C, - 0xBC, - 0x8C, - 0x72, - 0x8C, - 0x5C, - 0x72, - 0x73, - 0x46, - 0xE8, - 0xE3, - 0x73, - 0xA7, - 0xEB, - 0xF1, - 0xE8, - 0x2C, - 0x3C, - 0x48, - 0x4B, - 0x4B, - 0x47, - 0x4B, - 0x4C, - 0x2C, - 0x60, - 0x47, - 0x8D, - 0xBA, - 0x5E, - 0x92, - 0x90, - 0x47, - 0xBA, - 0x4B, - 0x4B, - 0xA7, - 0x39, - 0x13, - 0x2C, - 0x2A, - 0x2C, - 0x2C, - 0x20, - 0x20, - 0x2C, - 0x1F, - 0x20, - 0x10, - 0x2B, - 0x2B, - 0x0A, - 0x11, - 0x04, - 0x08, - 0x00, - 0x04, - 0x03, - 0x04, - 0x03, - 0x03, - 0x05, - 0x08, - 0x00, - 0x0D, - 0x06, - 0x11, - 0x08, - 0x08, - 0x08, - 0x11, - 0x03, - 0x20, - 0x10, - 0x11, - 0x48, - 0x11, - 0x03, - 0x00, - 0x04, - 0x11, - 0x00, - 0x08, - 0x20, - 0x75, - 0x20, - 0x20, - 0x2D, - 0x75, - 0x20, - 0x20, - 0x04, - 0x23, - 0x00, - 0x04, - 0x2B, - 0x93, - 0x2F, - 0x23, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x39, - 0x49, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x05, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0C, - 0x52, - 0x99, - 0x82, - 0x82, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x99, - 0xAE, - 0x99, - 0x7C, - 0x04, - 0x96, - 0x04, - 0xAB, - 0x00, - 0x19, - 0xAA, - 0xAA, - 0xAB, - 0x7C, - 0x7C, - 0x96, - 0xA8, - 0xA4, - 0xA8, - 0xB9, - 0x94, - 0xBD, - 0xB9, - 0xA5, - 0xA5, - 0xBA, - 0x92, - 0x90, - 0xE4, - 0xEF, - 0xEC, - 0xEC, - 0xEF, - 0xEC, - 0xF1, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x04, - 0xF1, - 0xEC, - 0xF1, - 0xEC, - 0x06, - 0xEB, - 0x00, - 0x09, - 0xE6, - 0xEB, - 0xEB, - 0xEF, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0xE6, - 0x00, - 0x04, - 0xE4, - 0x00, - 0x4A, - 0xE8, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0xE4, - 0xCF, - 0xD1, - 0xD1, - 0xBE, - 0xBC, - 0xBE, - 0xE6, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xA4, - 0x8C, - 0xA4, - 0xE6, - 0xD1, - 0xBE, - 0xCF, - 0xCF, - 0xA5, - 0xA2, - 0xD0, - 0xCF, - 0xE4, - 0xE4, - 0xE5, - 0xB7, - 0xB5, - 0x75, - 0xA3, - 0x74, - 0xBC, - 0xB8, - 0xBA, - 0x8D, - 0xA0, - 0x75, - 0xB8, - 0xB8, - 0xA9, - 0x93, - 0x2B, - 0x20, - 0x39, - 0x60, - 0x11, - 0x12, - 0x93, - 0xDE, - 0xEA, - 0xD9, - 0x8F, - 0x91, - 0x91, - 0xA3, - 0x8F, - 0x91, - 0x93, - 0x91, - 0x91, - 0x93, - 0x65, - 0x60, - 0x4F, - 0x60, - 0x75, - 0x3C, - 0x91, - 0x05, - 0x4B, - 0x00, - 0x1D, - 0x5E, - 0x8D, - 0x90, - 0xA5, - 0xB9, - 0xBD, - 0x73, - 0xA2, - 0x90, - 0xBD, - 0xD0, - 0xF3, - 0xBF, - 0xBD, - 0xBE, - 0x72, - 0xA4, - 0xA4, - 0x72, - 0xBC, - 0xBC, - 0x78, - 0xF1, - 0xF1, - 0xEB, - 0x8E, - 0x78, - 0xA8, - 0xEB, - 0x00, - 0x05, - 0xF1, - 0x00, - 0x30, - 0xE6, - 0xBC, - 0xBE, - 0x78, - 0xEB, - 0xF1, - 0xF1, - 0xEB, - 0x8C, - 0x8E, - 0xCD, - 0xA4, - 0x8C, - 0x72, - 0x5C, - 0x5C, - 0x73, - 0x72, - 0x8C, - 0xEB, - 0xD0, - 0x47, - 0xDA, - 0xF1, - 0xE8, - 0x8D, - 0x22, - 0x48, - 0x4B, - 0x47, - 0x4C, - 0x47, - 0x6F, - 0x60, - 0x2C, - 0x2C, - 0x77, - 0x8D, - 0x90, - 0x90, - 0x4B, - 0x77, - 0x4B, - 0x47, - 0xA7, - 0x77, - 0x48, - 0x60, - 0x04, - 0x2C, - 0x00, - 0x08, - 0x10, - 0x20, - 0x20, - 0x10, - 0x44, - 0x2A, - 0x10, - 0x20, - 0x05, - 0x11, - 0x00, - 0x09, - 0x02, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x00, - 0x04, - 0x03, - 0x05, - 0x08, - 0x00, - 0x18, - 0x10, - 0x10, - 0x08, - 0x08, - 0x08, - 0x11, - 0x03, - 0x11, - 0x1F, - 0x08, - 0x48, - 0x2B, - 0x0A, - 0x0A, - 0x11, - 0x11, - 0x20, - 0x11, - 0x75, - 0x23, - 0x20, - 0x3A, - 0x75, - 0x20, - 0x06, - 0x23, - 0x00, - 0x03, - 0x93, - 0x5D, - 0x14, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x39, - 0x2D, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x82, - 0x85, - 0x9B, - 0x6A, - 0x85, - 0x85, - 0x05, - 0x82, - 0x01, - 0x80, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x21, - 0x52, - 0x67, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x7C, - 0xAA, - 0x96, - 0x7C, - 0x98, - 0xAB, - 0xB9, - 0xA8, - 0xB9, - 0xBF, - 0xA8, - 0xB9, - 0xBD, - 0xA5, - 0xA5, - 0x92, - 0xBA, - 0x90, - 0xE6, - 0xEF, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xF1, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x03, - 0xF1, - 0xEC, - 0xEC, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x08, - 0xE6, - 0xEB, - 0xEB, - 0xEC, - 0xE4, - 0xEB, - 0xEB, - 0xEB, - 0x04, - 0xE4, - 0x00, - 0x1A, - 0xCF, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xE4, - 0xBE, - 0xA8, - 0xCF, - 0xD1, - 0xA8, - 0xA8, - 0xE4, - 0xE6, - 0xA8, - 0xA4, - 0xE6, - 0xE4, - 0x8C, - 0xA4, - 0xE6, - 0xB7, - 0x5C, - 0x8B, - 0xBA, - 0xBA, - 0x04, - 0x8B, - 0x00, - 0x2D, - 0xE4, - 0xA9, - 0x74, - 0xB5, - 0x6F, - 0xA3, - 0xA6, - 0xCE, - 0xA1, - 0x70, - 0xA3, - 0xBA, - 0xA1, - 0xA0, - 0xA3, - 0xA0, - 0xE6, - 0x91, - 0x11, - 0x60, - 0x39, - 0x11, - 0x1F, - 0xC5, - 0xCA, - 0xD2, - 0xD9, - 0xA3, - 0x8F, - 0x76, - 0xC1, - 0x76, - 0x91, - 0x8F, - 0x93, - 0x8F, - 0x93, - 0x91, - 0x5F, - 0x8F, - 0x64, - 0x63, - 0x3C, - 0x91, - 0x4C, - 0x00, - 0x05, - 0x4B, - 0x00, - 0x08, - 0x5E, - 0x90, - 0xA5, - 0xA5, - 0xCD, - 0x90, - 0x73, - 0xA5, - 0x04, - 0xF1, - 0x00, - 0x50, - 0x5E, - 0xE4, - 0x73, - 0x8E, - 0xA4, - 0x8C, - 0xA4, - 0xBC, - 0x8E, - 0xE4, - 0xF1, - 0xF1, - 0xBC, - 0x94, - 0xA8, - 0xCF, - 0xF1, - 0xF1, - 0xF3, - 0xF1, - 0xF3, - 0xF1, - 0xAA, - 0xAA, - 0xA8, - 0x94, - 0xF1, - 0xF1, - 0xF1, - 0xBC, - 0x8E, - 0xA4, - 0xA4, - 0x8C, - 0x72, - 0x72, - 0x5C, - 0x8B, - 0x72, - 0x73, - 0xE8, - 0xE4, - 0x5B, - 0x77, - 0xEB, - 0xEB, - 0xCE, - 0x13, - 0x22, - 0x48, - 0x48, - 0x47, - 0x48, - 0x2C, - 0x48, - 0x39, - 0x22, - 0x5E, - 0x8D, - 0x90, - 0x77, - 0x4B, - 0x77, - 0x63, - 0x4B, - 0xBF, - 0x63, - 0x39, - 0x75, - 0x2D, - 0x14, - 0x39, - 0x36, - 0x2D, - 0x20, - 0x20, - 0x11, - 0x37, - 0x36, - 0x10, - 0x09, - 0x11, - 0x01, - 0x08, - 0x01, - 0x11, - 0x04, - 0x08, - 0x00, - 0x04, - 0x03, - 0x04, - 0x04, - 0x03, - 0x05, - 0x08, - 0x00, - 0x21, - 0x10, - 0x1F, - 0x08, - 0x08, - 0x11, - 0x11, - 0x0A, - 0x08, - 0x1F, - 0x08, - 0x44, - 0x2D, - 0x08, - 0x03, - 0x11, - 0x20, - 0x11, - 0x11, - 0x75, - 0x3A, - 0x20, - 0x23, - 0x91, - 0x20, - 0x23, - 0x2B, - 0x23, - 0x23, - 0x23, - 0x10, - 0x93, - 0x4D, - 0x3A, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x39, - 0x22, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x04, - 0x82, - 0x05, - 0x80, - 0x00, - 0x2D, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x85, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x96, - 0xAA, - 0x7C, - 0x7C, - 0x96, - 0x94, - 0xB9, - 0xA8, - 0x94, - 0xBD, - 0xBD, - 0xA5, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xA5, - 0x92, - 0xEC, - 0xEF, - 0xEC, - 0xF1, - 0x00, - 0x05, - 0xEC, - 0x00, - 0x05, - 0xF1, - 0xEC, - 0xF1, - 0xEB, - 0xEC, - 0x00, - 0x07, - 0xEB, - 0x00, - 0x08, - 0xE6, - 0xEB, - 0xEB, - 0xEC, - 0xE4, - 0xE6, - 0xEC, - 0xEB, - 0x06, - 0xE4, - 0x00, - 0x13, - 0xCF, - 0xCF, - 0xCF, - 0xE4, - 0xBC, - 0xA8, - 0xBE, - 0xCF, - 0x78, - 0xBC, - 0xD1, - 0xE6, - 0xD1, - 0xE6, - 0xDC, - 0xA4, - 0x8C, - 0xE6, - 0xBD, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x52, - 0xB5, - 0x8D, - 0xA2, - 0xB5, - 0xBD, - 0xDA, - 0x8B, - 0x74, - 0xB5, - 0xA3, - 0x75, - 0xB9, - 0xB8, - 0x91, - 0x70, - 0xCE, - 0xA0, - 0xA1, - 0x5D, - 0xA6, - 0xA7, - 0xDB, - 0x08, - 0x75, - 0x49, - 0x20, - 0x1E, - 0xE9, - 0xAF, - 0xA6, - 0xB8, - 0xA6, - 0x93, - 0x61, - 0xA7, - 0x76, - 0x8F, - 0x76, - 0xA9, - 0x8F, - 0xA6, - 0x91, - 0x8F, - 0xBB, - 0x93, - 0x93, - 0x4C, - 0x3C, - 0x4F, - 0x74, - 0x4B, - 0x5E, - 0x4B, - 0x4B, - 0x4B, - 0x5E, - 0x90, - 0xA5, - 0xBD, - 0xA8, - 0x90, - 0x73, - 0xE4, - 0xF1, - 0xF1, - 0xF1, - 0xCF, - 0x92, - 0xE4, - 0xBC, - 0xE8, - 0xE4, - 0xE8, - 0xE4, - 0xE4, - 0xEB, - 0xF1, - 0xF1, - 0xE4, - 0xA8, - 0xA8, - 0xBC, - 0x04, - 0xF1, - 0x00, - 0x3C, - 0xF3, - 0xF1, - 0xE4, - 0x94, - 0xA8, - 0x78, - 0xE8, - 0xF1, - 0xF1, - 0xE8, - 0x8E, - 0xA4, - 0x8C, - 0x8C, - 0x5C, - 0x72, - 0x73, - 0x5C, - 0x72, - 0x5B, - 0x90, - 0xEB, - 0xBA, - 0x5E, - 0xE3, - 0xF1, - 0xE8, - 0x48, - 0x4D, - 0x14, - 0x2C, - 0x4C, - 0x2C, - 0x2C, - 0x2C, - 0x22, - 0x48, - 0x48, - 0x77, - 0x92, - 0x4B, - 0x5E, - 0x90, - 0x4B, - 0xD0, - 0xA9, - 0x47, - 0x74, - 0x3C, - 0x2A, - 0x23, - 0x2C, - 0x2C, - 0x22, - 0x20, - 0x11, - 0x10, - 0x44, - 0x43, - 0x20, - 0x08, - 0x11, - 0x00, - 0x0B, - 0x08, - 0x11, - 0x08, - 0x08, - 0x11, - 0x08, - 0x08, - 0x03, - 0x03, - 0x03, - 0x04, - 0x00, - 0x05, - 0x08, - 0x00, - 0x18, - 0x11, - 0x12, - 0x08, - 0x08, - 0x08, - 0x11, - 0x08, - 0x08, - 0x10, - 0x08, - 0x2D, - 0x39, - 0x11, - 0x0A, - 0x08, - 0x11, - 0x20, - 0x11, - 0x60, - 0x3A, - 0x20, - 0x23, - 0x91, - 0x20, - 0x06, - 0x23, - 0x00, - 0x03, - 0x93, - 0x76, - 0x14, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x5D, - 0x39, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x85, - 0x6A, - 0x85, - 0x6B, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x00, - 0x04, - 0x80, - 0x01, - 0x52, - 0x05, - 0x67, - 0x00, - 0x21, - 0x7C, - 0x7C, - 0xAA, - 0xAB, - 0x7C, - 0x7C, - 0xC3, - 0xA4, - 0xA8, - 0xD0, - 0xBD, - 0xA4, - 0x92, - 0xB9, - 0xBA, - 0xA5, - 0x92, - 0xBA, - 0x90, - 0xD0, - 0xEC, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0xEC, - 0xF1, - 0x00, - 0x06, - 0xEB, - 0x00, - 0x09, - 0xE6, - 0xE4, - 0xEB, - 0xEB, - 0xEF, - 0xEB, - 0xE4, - 0xEB, - 0xEC, - 0x00, - 0x05, - 0xE4, - 0x00, - 0x6B, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xD1, - 0xD1, - 0xA8, - 0xA8, - 0xD1, - 0xBC, - 0xA8, - 0xA8, - 0xE6, - 0xE4, - 0xD1, - 0xD1, - 0xE4, - 0x8C, - 0xA4, - 0xD1, - 0xB9, - 0x8B, - 0x8B, - 0xB5, - 0xA9, - 0x8D, - 0xA2, - 0xB5, - 0xB8, - 0xBD, - 0xD9, - 0xA3, - 0x74, - 0xA3, - 0xA0, - 0xA6, - 0xCE, - 0xE2, - 0xB8, - 0xCE, - 0xA0, - 0xA1, - 0x71, - 0x8F, - 0xA0, - 0xE5, - 0x65, - 0xA3, - 0x2D, - 0x10, - 0x1F, - 0xDB, - 0xDE, - 0xE0, - 0xEA, - 0xDF, - 0xC1, - 0x76, - 0x91, - 0xA6, - 0x93, - 0xA6, - 0xD9, - 0x8F, - 0xA6, - 0x63, - 0xA9, - 0x61, - 0x79, - 0x8F, - 0x4C, - 0x4C, - 0xA6, - 0x75, - 0x4B, - 0x4B, - 0x4B, - 0x74, - 0x5E, - 0x5E, - 0x8D, - 0xA5, - 0xA5, - 0xB9, - 0xBD, - 0x73, - 0x90, - 0xEB, - 0xF3, - 0xF1, - 0xF1, - 0xA2, - 0xE8, - 0xE6, - 0xE8, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0xBC, - 0xD1, - 0xF1, - 0xF1, - 0xD8, - 0x78, - 0x94, - 0xD1, - 0x00, - 0x05, - 0xF1, - 0x00, - 0x39, - 0xEC, - 0xA4, - 0x94, - 0x8E, - 0xA8, - 0xF1, - 0xF1, - 0xF1, - 0xB6, - 0x8C, - 0x8C, - 0xA4, - 0x72, - 0x5C, - 0x5C, - 0x8C, - 0x8B, - 0x73, - 0x5B, - 0xE3, - 0xE8, - 0x4B, - 0xA7, - 0xF1, - 0xE8, - 0xE2, - 0x70, - 0x2C, - 0x8D, - 0x6F, - 0x47, - 0x47, - 0x48, - 0x70, - 0x39, - 0x22, - 0x5E, - 0x4B, - 0x4B, - 0xA7, - 0x4C, - 0x4B, - 0x5E, - 0x47, - 0xA9, - 0x93, - 0x39, - 0x60, - 0x23, - 0x39, - 0x2C, - 0x1E, - 0x20, - 0x20, - 0x44, - 0x43, - 0x37, - 0x00, - 0x05, - 0x11, - 0x00, - 0x10, - 0x08, - 0x11, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x11, - 0x03, - 0x03, - 0x04, - 0x03, - 0x03, - 0x05, - 0x08, - 0x00, - 0x16, - 0x1E, - 0x08, - 0x08, - 0x11, - 0x11, - 0x08, - 0x03, - 0x2B, - 0x0A, - 0x10, - 0x39, - 0x11, - 0x11, - 0x0A, - 0x11, - 0x20, - 0x11, - 0x4D, - 0x49, - 0x23, - 0x23, - 0xA6, - 0x05, - 0x23, - 0x00, - 0x05, - 0x14, - 0x23, - 0x91, - 0x4F, - 0x2B, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x39, - 0x22, - 0x3A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x42, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x6A, - 0x6A, - 0x85, - 0x85, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x99, - 0x99, - 0x67, - 0x67, - 0xAE, - 0x7C, - 0x67, - 0x96, - 0xD0, - 0x7C, - 0x7C, - 0x7C, - 0x94, - 0xB9, - 0x94, - 0xBD, - 0xBD, - 0xA5, - 0x92, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0x90, - 0xDA, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0x04, - 0xEB, - 0x00, - 0x5D, - 0xE6, - 0xEB, - 0xEB, - 0xEB, - 0xE4, - 0xE6, - 0xEB, - 0xEF, - 0xEC, - 0xEC, - 0xEC, - 0xE6, - 0xE4, - 0xE4, - 0xD1, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xD1, - 0xD1, - 0xA8, - 0xBE, - 0xCF, - 0x8E, - 0xA4, - 0xD1, - 0xE4, - 0xBC, - 0xB6, - 0xE6, - 0xBE, - 0x8C, - 0xB7, - 0xD1, - 0xB9, - 0x90, - 0x8D, - 0xE4, - 0xCE, - 0x8D, - 0x8D, - 0xB8, - 0xB8, - 0xE4, - 0xB8, - 0xA3, - 0xA3, - 0xA3, - 0xA0, - 0xA6, - 0xBA, - 0xA3, - 0x8F, - 0x71, - 0xA1, - 0x71, - 0xA1, - 0x71, - 0x91, - 0xE6, - 0xB9, - 0x2B, - 0x10, - 0x20, - 0xA7, - 0xA3, - 0xC1, - 0xC1, - 0xC5, - 0xC1, - 0xA3, - 0x4D, - 0x76, - 0x8F, - 0x8F, - 0x91, - 0x76, - 0x8F, - 0x60, - 0xA9, - 0x8F, - 0xA6, - 0x61, - 0x91, - 0x4E, - 0x63, - 0x8F, - 0x4C, - 0x4B, - 0x4B, - 0x00, - 0x04, - 0x5E, - 0x00, - 0x0E, - 0x90, - 0xB7, - 0xA5, - 0xB9, - 0x90, - 0x73, - 0xBD, - 0xF1, - 0xF1, - 0xF1, - 0xEB, - 0x73, - 0xE8, - 0x72, - 0x04, - 0x8C, - 0x00, - 0x26, - 0xA8, - 0xA4, - 0xE4, - 0xF1, - 0xF1, - 0xA8, - 0xA4, - 0x94, - 0xCF, - 0xEB, - 0xF1, - 0xF1, - 0xF1, - 0xEB, - 0x94, - 0x94, - 0x78, - 0x78, - 0xEB, - 0xF1, - 0xF1, - 0xCD, - 0x8E, - 0x8C, - 0x8C, - 0x72, - 0x8B, - 0x72, - 0x72, - 0x5B, - 0x5E, - 0x38, - 0xBA, - 0xE4, - 0x8D, - 0x8D, - 0xEB, - 0xEB, - 0x05, - 0xE8, - 0x00, - 0x1A, - 0x77, - 0x47, - 0x47, - 0x4C, - 0x39, - 0x2D, - 0x4B, - 0x5E, - 0x74, - 0xBA, - 0x63, - 0x63, - 0x74, - 0x4C, - 0xA9, - 0x77, - 0x3C, - 0x75, - 0x23, - 0x1F, - 0x39, - 0x2C, - 0x23, - 0x10, - 0x2A, - 0x44, - 0x0B, - 0x11, - 0x04, - 0x08, - 0x00, - 0x06, - 0x11, - 0x08, - 0x03, - 0x04, - 0x03, - 0x04, - 0x06, - 0x08, - 0x01, - 0x2A, - 0x05, - 0x11, - 0x00, - 0x21, - 0x03, - 0x10, - 0x08, - 0x11, - 0x5D, - 0x11, - 0x20, - 0x08, - 0x08, - 0x20, - 0x20, - 0x49, - 0x5D, - 0x49, - 0x39, - 0xA7, - 0x48, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x5D, - 0x39, - 0xA7, - 0x63, - 0x5D, - 0x48, - 0x3C, - 0x70, - 0x48, - 0x75, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0B, - 0x67, - 0x80, - 0x6A, - 0x85, - 0x6B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x00, - 0x04, - 0x80, - 0x00, - 0x28, - 0x52, - 0x80, - 0x52, - 0x67, - 0x99, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x67, - 0xAA, - 0xC0, - 0x7C, - 0x7C, - 0x96, - 0xBD, - 0xBE, - 0xBD, - 0x92, - 0xB9, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0x90, - 0xA5, - 0x90, - 0x90, - 0xE4, - 0xEF, - 0xEC, - 0xF1, - 0xEC, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0x05, - 0xEB, - 0x00, - 0x05, - 0xE6, - 0xEB, - 0xE4, - 0xEB, - 0xE4, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x8F, - 0xE4, - 0xE4, - 0xE4, - 0xCF, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xCF, - 0xBC, - 0xA8, - 0xBE, - 0xCF, - 0xD1, - 0xBE, - 0x8E, - 0x8E, - 0xA8, - 0xBC, - 0xE6, - 0xC2, - 0xEB, - 0xCF, - 0xA4, - 0x72, - 0xA2, - 0xA5, - 0xE5, - 0xBC, - 0xDC, - 0xCE, - 0xB8, - 0x6F, - 0xA9, - 0xCE, - 0xE6, - 0xCE, - 0x8D, - 0xA3, - 0xA3, - 0xA0, - 0x70, - 0xA0, - 0xA9, - 0xA7, - 0xA0, - 0xA3, - 0x76, - 0xA1, - 0xA1, - 0xA6, - 0xA9, - 0xDB, - 0x10, - 0x10, - 0x11, - 0x61, - 0x2F, - 0x76, - 0x2D, - 0x5D, - 0x49, - 0x76, - 0x2F, - 0x8F, - 0x4D, - 0x8F, - 0x4D, - 0x8F, - 0x60, - 0x60, - 0xA6, - 0xA6, - 0x93, - 0x8F, - 0xA9, - 0x75, - 0x77, - 0x60, - 0x91, - 0x4C, - 0x4B, - 0x5E, - 0x8D, - 0x5E, - 0x4B, - 0x5E, - 0x8D, - 0x90, - 0xA2, - 0xA5, - 0xA2, - 0x73, - 0xE3, - 0xF1, - 0xE4, - 0xF1, - 0xDA, - 0xA5, - 0xCF, - 0x46, - 0x8C, - 0x8E, - 0x8C, - 0xA4, - 0xA4, - 0xA8, - 0xEB, - 0xF1, - 0xF1, - 0xA8, - 0x94, - 0x94, - 0x94, - 0xE4, - 0xEB, - 0xD1, - 0xA8, - 0x78, - 0x78, - 0x8E, - 0x8C, - 0xEB, - 0xF1, - 0xF1, - 0xE8, - 0x8C, - 0x72, - 0x8C, - 0x72, - 0x5C, - 0x8C, - 0x5C, - 0x5B, - 0x5B, - 0x6F, - 0x5E, - 0xE4, - 0x5E, - 0x4B, - 0xE3, - 0xEB, - 0xEB, - 0x00, - 0x04, - 0xE8, - 0x00, - 0x27, - 0xBA, - 0x22, - 0x2C, - 0x39, - 0x14, - 0x39, - 0x75, - 0x4B, - 0x90, - 0x4B, - 0x77, - 0xDB, - 0x4C, - 0xA9, - 0xAC, - 0x48, - 0xA3, - 0x75, - 0x09, - 0x3A, - 0x39, - 0x2C, - 0x22, - 0x2B, - 0x2B, - 0x36, - 0x10, - 0x10, - 0x20, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x00, - 0x05, - 0x08, - 0x00, - 0x04, - 0x04, - 0x03, - 0x04, - 0x03, - 0x05, - 0x08, - 0x00, - 0x27, - 0x2A, - 0x20, - 0x08, - 0x11, - 0x11, - 0x08, - 0x03, - 0x2B, - 0x08, - 0x08, - 0x48, - 0x20, - 0x11, - 0x11, - 0x0A, - 0x11, - 0x20, - 0x2D, - 0x60, - 0x2A, - 0x39, - 0xA7, - 0x60, - 0x39, - 0x48, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0xA7, - 0x93, - 0x70, - 0x4C, - 0x70, - 0x75, - 0x75, - 0x74, - 0x75, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1E, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x82, - 0x85, - 0x6B, - 0x6A, - 0x9B, - 0x9B, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x99, - 0x05, - 0x67, - 0x00, - 0x1B, - 0x7C, - 0x7C, - 0xBE, - 0x96, - 0x7C, - 0x96, - 0x95, - 0x94, - 0xBD, - 0xBD, - 0xA4, - 0x92, - 0xB9, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0x92, - 0x92, - 0x92, - 0xE6, - 0xEF, - 0xEC, - 0xEB, - 0xF1, - 0xEC, - 0xEC, - 0x00, - 0x0A, - 0xEB, - 0x00, - 0x13, - 0xE6, - 0xE6, - 0xEB, - 0xE4, - 0xE6, - 0xE4, - 0xEB, - 0xE4, - 0xE4, - 0xEB, - 0xE4, - 0xE4, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0xA8, - 0x00, - 0x64, - 0x8E, - 0x8E, - 0xA4, - 0xA4, - 0xBC, - 0xBC, - 0xCF, - 0xA4, - 0xB6, - 0x8C, - 0x72, - 0xB5, - 0x8B, - 0xB5, - 0xB5, - 0x6F, - 0xB5, - 0xA3, - 0x8D, - 0xB5, - 0xA2, - 0xBA, - 0xA7, - 0xA0, - 0x74, - 0xA0, - 0xA0, - 0xA1, - 0x70, - 0xA3, - 0xA6, - 0xB8, - 0xA3, - 0xA1, - 0x71, - 0xA0, - 0x71, - 0xC0, - 0x4F, - 0x20, - 0x20, - 0x61, - 0x2D, - 0x61, - 0x2D, - 0x61, - 0x2D, - 0x4D, - 0x49, - 0xA6, - 0x8F, - 0xA7, - 0x8F, - 0x93, - 0x64, - 0x93, - 0x4E, - 0xA7, - 0x64, - 0x91, - 0x8F, - 0x8F, - 0x63, - 0x4B, - 0x75, - 0x2C, - 0x4B, - 0x4B, - 0x5E, - 0x4B, - 0x6F, - 0x4B, - 0x5E, - 0xA5, - 0xA5, - 0xB9, - 0xA5, - 0xA2, - 0x73, - 0xA2, - 0x72, - 0xBD, - 0xF1, - 0xB9, - 0xCF, - 0xA5, - 0x46, - 0x8C, - 0x8C, - 0x8E, - 0xA4, - 0xBE, - 0x94, - 0xF1, - 0xF3, - 0xF1, - 0xC2, - 0xA8, - 0x94, - 0x94, - 0x04, - 0x78, - 0x00, - 0x39, - 0x8E, - 0x8C, - 0x72, - 0xE4, - 0xF1, - 0xF1, - 0xE8, - 0x8C, - 0x72, - 0x8C, - 0xA5, - 0x72, - 0x72, - 0x5B, - 0x5E, - 0x5B, - 0x5B, - 0x38, - 0xE3, - 0xA7, - 0x47, - 0xA7, - 0xEB, - 0xE8, - 0xEB, - 0xE8, - 0xE8, - 0xE4, - 0xE8, - 0x47, - 0x75, - 0x2C, - 0x5D, - 0x4D, - 0x39, - 0x77, - 0x4B, - 0x4C, - 0x77, - 0x4B, - 0x4B, - 0x4B, - 0x2C, - 0x4C, - 0x60, - 0x22, - 0x5D, - 0x3A, - 0x13, - 0x2C, - 0x2C, - 0x2B, - 0x10, - 0x11, - 0x11, - 0x10, - 0x1F, - 0x00, - 0x05, - 0x11, - 0x01, - 0x10, - 0x05, - 0x08, - 0x00, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x03, - 0x04, - 0x03, - 0x03, - 0x05, - 0x08, - 0x00, - 0x19, - 0x1F, - 0x20, - 0x08, - 0x11, - 0x11, - 0x11, - 0x03, - 0x1F, - 0x11, - 0x08, - 0x3A, - 0x2D, - 0x2D, - 0x39, - 0x3A, - 0x23, - 0x39, - 0x60, - 0x4D, - 0x39, - 0x39, - 0xA7, - 0x60, - 0x5D, - 0x5D, - 0x00, - 0x04, - 0x48, - 0x00, - 0x0A, - 0x7B, - 0xA6, - 0x48, - 0x60, - 0x4C, - 0x60, - 0x75, - 0x74, - 0x4C, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x67, - 0x80, - 0x85, - 0x6B, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x82, - 0x05, - 0x80, - 0x00, - 0x1E, - 0x52, - 0x80, - 0x52, - 0x67, - 0x99, - 0x67, - 0x99, - 0x7C, - 0x7C, - 0x67, - 0xC0, - 0x94, - 0x7C, - 0x7C, - 0x96, - 0xC0, - 0xB9, - 0xA4, - 0x92, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0x90, - 0xBD, - 0xEB, - 0x04, - 0xEC, - 0x00, - 0x05, - 0xEB, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x5D, - 0xE6, - 0xE6, - 0xEB, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xEB, - 0xE4, - 0xD1, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0xBC, - 0x94, - 0xA8, - 0xA8, - 0xA4, - 0xA4, - 0x8E, - 0xA4, - 0xA4, - 0xBC, - 0xA4, - 0xBC, - 0xB6, - 0xA4, - 0xA4, - 0xB9, - 0x8B, - 0x8D, - 0x74, - 0x74, - 0x6F, - 0xA3, - 0x6F, - 0xB5, - 0x8D, - 0xB8, - 0xA3, - 0xB8, - 0xA3, - 0xB5, - 0xA3, - 0xA3, - 0xA1, - 0xA0, - 0xA1, - 0xA1, - 0x71, - 0xA1, - 0x71, - 0x71, - 0xA1, - 0x3A, - 0x75, - 0xDA, - 0x20, - 0x23, - 0x49, - 0x49, - 0x49, - 0x2F, - 0x61, - 0x2F, - 0x61, - 0x2D, - 0x76, - 0x8F, - 0x91, - 0x8F, - 0x93, - 0x8F, - 0xA7, - 0x75, - 0x93, - 0x75, - 0x93, - 0x76, - 0x91, - 0x75, - 0x74, - 0x74, - 0x3C, - 0x3C, - 0x4C, - 0x00, - 0x05, - 0x4B, - 0x00, - 0x36, - 0x8D, - 0xA5, - 0xB9, - 0xB9, - 0xA5, - 0xA2, - 0x72, - 0x72, - 0x72, - 0xE8, - 0xF1, - 0xA2, - 0xCE, - 0x73, - 0x5C, - 0xA4, - 0x8C, - 0x8C, - 0xA8, - 0xA8, - 0xAA, - 0xEB, - 0xF3, - 0xF1, - 0xE4, - 0x94, - 0x78, - 0x94, - 0x78, - 0x78, - 0x8E, - 0x8C, - 0x72, - 0xA4, - 0xF1, - 0xF1, - 0xF1, - 0xEB, - 0x9F, - 0x5C, - 0x72, - 0x8C, - 0x8C, - 0x73, - 0x5B, - 0x5E, - 0x5B, - 0x4B, - 0x38, - 0xCE, - 0xA9, - 0x47, - 0x74, - 0xF1, - 0x04, - 0xE8, - 0x00, - 0x28, - 0xEB, - 0xE8, - 0x4B, - 0x48, - 0x47, - 0x60, - 0x39, - 0x39, - 0x4B, - 0x4C, - 0x4C, - 0x4B, - 0x47, - 0x4C, - 0x4C, - 0x2C, - 0x4C, - 0x3C, - 0x39, - 0x4C, - 0x23, - 0x22, - 0x2C, - 0x48, - 0x1F, - 0x11, - 0x11, - 0x11, - 0x08, - 0x1F, - 0x11, - 0x11, - 0x11, - 0x1E, - 0x1F, - 0x12, - 0x1F, - 0x11, - 0x08, - 0x11, - 0x05, - 0x08, - 0x00, - 0x04, - 0x04, - 0x03, - 0x04, - 0x03, - 0x05, - 0x08, - 0x01, - 0x2B, - 0x01, - 0x10, - 0x04, - 0x11, - 0x00, - 0x11, - 0x03, - 0x23, - 0x20, - 0x08, - 0x03, - 0x11, - 0x20, - 0x20, - 0x20, - 0x11, - 0x0B, - 0x11, - 0x20, - 0x3A, - 0x2B, - 0x91, - 0x39, - 0x00, - 0x06, - 0x2D, - 0x01, - 0x63, - 0x01, - 0x8F, - 0x04, - 0x39, - 0x00, - 0x04, - 0x5D, - 0x60, - 0x5D, - 0x61, - 0x00, - 0x00, - 0x00, - 0x43, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x67, - 0x67, - 0x6A, - 0x6B, - 0x6A, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x80, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0xD0, - 0x96, - 0x96, - 0x7C, - 0x96, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0x90, - 0xBA, - 0x92, - 0xA5, - 0x90, - 0x92, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xEB, - 0xEC, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x14, - 0xE6, - 0xE6, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xEB, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xBC, - 0x04, - 0xA8, - 0x00, - 0x04, - 0xA4, - 0x8E, - 0x8C, - 0x8C, - 0x05, - 0xBC, - 0x00, - 0x5C, - 0xCD, - 0xBC, - 0xB7, - 0x8B, - 0xB5, - 0x74, - 0xA3, - 0x6F, - 0xA0, - 0xA3, - 0xB5, - 0xB8, - 0x74, - 0xB8, - 0xA3, - 0xB5, - 0xA3, - 0x74, - 0xA1, - 0x76, - 0xA1, - 0x76, - 0xA1, - 0xA1, - 0x61, - 0xA1, - 0xA1, - 0xA1, - 0x49, - 0x77, - 0x4F, - 0x2B, - 0x2F, - 0x61, - 0x49, - 0x61, - 0x49, - 0x61, - 0x49, - 0x49, - 0x61, - 0x75, - 0x91, - 0x4D, - 0x60, - 0x4D, - 0x8F, - 0x75, - 0xA6, - 0x4E, - 0xA9, - 0xA3, - 0x93, - 0x91, - 0x77, - 0x4E, - 0x4B, - 0x3C, - 0x48, - 0x4C, - 0x4B, - 0x5E, - 0x6F, - 0x4B, - 0x8D, - 0xA2, - 0xA5, - 0xA5, - 0xB9, - 0xA2, - 0xA2, - 0x73, - 0x72, - 0xA2, - 0xE4, - 0xEB, - 0x8B, - 0xD0, - 0x46, - 0x72, - 0xA4, - 0x8C, - 0x8C, - 0xBC, - 0xBE, - 0xA4, - 0xEB, - 0xF1, - 0xF3, - 0xF1, - 0xE8, - 0x94, - 0x04, - 0x72, - 0x00, - 0x40, - 0x8C, - 0xE8, - 0xF1, - 0xF1, - 0xF1, - 0xE4, - 0xE8, - 0xCE, - 0xB7, - 0xB6, - 0x5C, - 0x5B, - 0x5E, - 0x5B, - 0x38, - 0x5B, - 0x47, - 0xBA, - 0xD9, - 0x21, - 0x6F, - 0xF1, - 0xEB, - 0xE8, - 0xE8, - 0xCF, - 0xCF, - 0xE8, - 0x74, - 0x48, - 0x47, - 0x60, - 0x14, - 0x39, - 0x2C, - 0x12, - 0x4B, - 0x4C, - 0x48, - 0x4B, - 0x47, - 0x48, - 0x4C, - 0x22, - 0x3C, - 0x3C, - 0x20, - 0x22, - 0x48, - 0x47, - 0x14, - 0x11, - 0x10, - 0x1F, - 0x10, - 0x1E, - 0x11, - 0x08, - 0x11, - 0x12, - 0x08, - 0x11, - 0x10, - 0x10, - 0x07, - 0x08, - 0x00, - 0x30, - 0x03, - 0x04, - 0x04, - 0x03, - 0x08, - 0x08, - 0x11, - 0x08, - 0x08, - 0x10, - 0x2B, - 0x08, - 0x11, - 0x11, - 0x11, - 0x03, - 0x14, - 0x20, - 0x08, - 0x14, - 0x14, - 0x49, - 0x49, - 0x39, - 0x49, - 0x49, - 0x49, - 0x3A, - 0x2D, - 0x2D, - 0x63, - 0x4D, - 0x2D, - 0x49, - 0x49, - 0x39, - 0x39, - 0x39, - 0x93, - 0x64, - 0x39, - 0x48, - 0x3C, - 0x48, - 0x48, - 0x4C, - 0x3C, - 0x76, - 0x00, - 0x00, - 0x00, - 0x09, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x52, - 0x00, - 0x04, - 0x80, - 0x00, - 0x33, - 0x67, - 0x80, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x9B, - 0x9B, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x7C, - 0x7C, - 0x67, - 0xAB, - 0x94, - 0x7C, - 0x96, - 0x67, - 0x94, - 0xB9, - 0xA8, - 0xB9, - 0x92, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0x92, - 0xBA, - 0x90, - 0x92, - 0xE4, - 0xEB, - 0xEC, - 0xEB, - 0xEB, - 0xEC, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x20, - 0xE6, - 0xEB, - 0xEB, - 0xEB, - 0xE6, - 0xEB, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xE6, - 0xEB, - 0xEC, - 0xEB, - 0xE6, - 0xEB, - 0xEB, - 0xD1, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xBE, - 0xBC, - 0xA8, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0x8E, - 0x8C, - 0xB6, - 0x04, - 0xBC, - 0x00, - 0x60, - 0xCD, - 0xCD, - 0xA4, - 0xA2, - 0xB5, - 0xB5, - 0xA3, - 0xA3, - 0xA3, - 0xA0, - 0xA3, - 0xB5, - 0xB5, - 0xB5, - 0xA3, - 0xA3, - 0xA0, - 0xA3, - 0xA0, - 0x70, - 0x71, - 0xA1, - 0x71, - 0xA1, - 0x71, - 0xA1, - 0x71, - 0x76, - 0x71, - 0x61, - 0x90, - 0x3A, - 0x49, - 0x4D, - 0x2D, - 0x61, - 0x49, - 0x61, - 0x2D, - 0x61, - 0x2D, - 0x76, - 0x8F, - 0x49, - 0x2E, - 0x76, - 0x76, - 0x3C, - 0x64, - 0x75, - 0xA7, - 0x77, - 0xA9, - 0x8F, - 0xA6, - 0x4B, - 0xA7, - 0x4C, - 0x39, - 0x47, - 0x6F, - 0x4C, - 0x47, - 0x6F, - 0x5B, - 0x8D, - 0xA2, - 0xA5, - 0xB7, - 0xB9, - 0x72, - 0xA2, - 0x5C, - 0x72, - 0x8B, - 0xEB, - 0xE4, - 0x90, - 0xDA, - 0x73, - 0x5C, - 0xA4, - 0x8C, - 0x8E, - 0xA4, - 0xD4, - 0xC4, - 0xE6, - 0xF3, - 0xF3, - 0xF3, - 0xF1, - 0xEB, - 0xE8, - 0xE8, - 0xE8, - 0x05, - 0xF1, - 0x00, - 0x3B, - 0x72, - 0x8C, - 0xCF, - 0xE8, - 0xCF, - 0x73, - 0x5B, - 0x5E, - 0xA2, - 0x73, - 0x5B, - 0x47, - 0xA7, - 0xD9, - 0x2C, - 0x70, - 0xE8, - 0xF1, - 0xE8, - 0xCE, - 0xCF, - 0xE8, - 0xE4, - 0x63, - 0x1F, - 0x4D, - 0x2D, - 0x37, - 0x5D, - 0x13, - 0x48, - 0x4B, - 0x47, - 0x4B, - 0x48, - 0x4C, - 0x4B, - 0x2C, - 0x48, - 0x3C, - 0x2C, - 0x3A, - 0x39, - 0x48, - 0x4B, - 0x2B, - 0x08, - 0x1F, - 0x06, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x1F, - 0x08, - 0x11, - 0x10, - 0x10, - 0x00, - 0x07, - 0x08, - 0x04, - 0x03, - 0x05, - 0x08, - 0x01, - 0x10, - 0x01, - 0x2B, - 0x04, - 0x11, - 0x00, - 0x21, - 0x03, - 0x23, - 0x10, - 0x0A, - 0x22, - 0x0B, - 0x11, - 0x20, - 0x20, - 0x23, - 0x23, - 0x4D, - 0x75, - 0x39, - 0x39, - 0xA7, - 0x75, - 0x5D, - 0x48, - 0x3C, - 0x48, - 0x70, - 0x48, - 0xC1, - 0xA6, - 0x70, - 0x75, - 0x70, - 0x75, - 0x75, - 0x74, - 0x75, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x08, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x99, - 0x67, - 0x80, - 0x04, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x06, - 0x80, - 0x01, - 0x52, - 0x04, - 0x67, - 0x00, - 0xA4, - 0x7C, - 0x67, - 0x7C, - 0x98, - 0x7C, - 0xBE, - 0xAB, - 0x98, - 0x67, - 0xAB, - 0xBD, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xA5, - 0x90, - 0x92, - 0x92, - 0xA5, - 0xBA, - 0xBF, - 0xE6, - 0xEC, - 0xEC, - 0xEB, - 0xEC, - 0xE6, - 0xEB, - 0xEB, - 0xEB, - 0xEC, - 0xEB, - 0xE6, - 0xEB, - 0xE6, - 0xE4, - 0xE6, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xEC, - 0xED, - 0xEC, - 0xE6, - 0xEC, - 0xEF, - 0xEC, - 0xD1, - 0xD1, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xA8, - 0xA8, - 0xBE, - 0xD1, - 0xCF, - 0xCF, - 0xBE, - 0x8C, - 0xA4, - 0xE4, - 0xE6, - 0xE6, - 0xE6, - 0xD1, - 0xD8, - 0xA5, - 0x8B, - 0xA3, - 0x74, - 0x6F, - 0xA3, - 0xA0, - 0xA0, - 0xA3, - 0xA6, - 0xB5, - 0xB5, - 0xBA, - 0xBA, - 0xA7, - 0xA0, - 0xA3, - 0x71, - 0xA1, - 0x71, - 0xA1, - 0xA1, - 0xA1, - 0x71, - 0x76, - 0x71, - 0x49, - 0x74, - 0x2D, - 0x2D, - 0x61, - 0x2D, - 0x61, - 0x2D, - 0x61, - 0x2D, - 0x4D, - 0x2D, - 0x61, - 0x4D, - 0x8F, - 0x49, - 0xA3, - 0x8F, - 0x60, - 0x39, - 0x8F, - 0x91, - 0x91, - 0xA7, - 0x76, - 0x8F, - 0x4D, - 0xA7, - 0x5E, - 0x4C, - 0x2C, - 0x6F, - 0x6F, - 0x47, - 0x4C, - 0x4B, - 0x5E, - 0x8B, - 0xA5, - 0xB7, - 0xB9, - 0xB9, - 0x72, - 0xA2, - 0x5B, - 0xE3, - 0xF1, - 0xF1, - 0xE8, - 0xA2, - 0xCF, - 0x46, - 0x5C, - 0xB6, - 0x8C, - 0x8C, - 0xAA, - 0xC2, - 0xC4, - 0xAE, - 0xE4, - 0xF1, - 0xF1, - 0xF3, - 0x07, - 0xF1, - 0x00, - 0x3C, - 0xBC, - 0x5C, - 0x72, - 0x46, - 0xCD, - 0xE4, - 0xE8, - 0xCE, - 0x73, - 0x8D, - 0x5B, - 0x4B, - 0x5E, - 0x90, - 0xE2, - 0x15, - 0x12, - 0xE8, - 0xF1, - 0xE3, - 0x70, - 0x39, - 0xA6, - 0xE4, - 0xBA, - 0xAC, - 0x93, - 0x74, - 0xDB, - 0x60, - 0xA7, - 0xBF, - 0x47, - 0x4C, - 0x4B, - 0x47, - 0x2C, - 0x47, - 0x21, - 0x48, - 0x39, - 0x2C, - 0x2D, - 0x39, - 0x47, - 0x47, - 0x09, - 0x08, - 0x20, - 0x2A, - 0x10, - 0x10, - 0x20, - 0x11, - 0x08, - 0x1F, - 0x11, - 0x11, - 0x10, - 0x1F, - 0x07, - 0x08, - 0x00, - 0x0B, - 0x03, - 0x04, - 0x04, - 0x03, - 0x08, - 0x08, - 0x08, - 0x11, - 0x08, - 0x10, - 0x1F, - 0x00, - 0x04, - 0x11, - 0x00, - 0x07, - 0x03, - 0x2B, - 0x23, - 0x08, - 0x2D, - 0x11, - 0x0A, - 0x00, - 0x04, - 0x20, - 0x00, - 0x16, - 0x49, - 0x60, - 0x39, - 0x39, - 0xA7, - 0x8F, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x48, - 0x48, - 0xA9, - 0x63, - 0x70, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x74, - 0x75, - 0x8F, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x04, - 0x82, - 0x01, - 0x80, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x34, - 0x52, - 0x67, - 0x82, - 0x82, - 0x80, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x99, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x7C, - 0x98, - 0x96, - 0xA8, - 0x96, - 0x67, - 0x7C, - 0xBF, - 0xB9, - 0xA8, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0x90, - 0xBA, - 0xBA, - 0x92, - 0x90, - 0x90, - 0x90, - 0xBF, - 0xE4, - 0xE6, - 0x08, - 0xEB, - 0x04, - 0xE6, - 0x05, - 0xE4, - 0x00, - 0x74, - 0xEB, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xEC, - 0xE4, - 0xCF, - 0xCF, - 0xCF, - 0x94, - 0xBE, - 0xBE, - 0xA8, - 0xA4, - 0xA4, - 0xA8, - 0xD1, - 0xA4, - 0x8C, - 0x8C, - 0xA4, - 0xE6, - 0xE4, - 0xD1, - 0xCF, - 0xE6, - 0xCF, - 0xB7, - 0x74, - 0xB5, - 0xA3, - 0xA3, - 0xA0, - 0xA0, - 0xA0, - 0xB5, - 0xA3, - 0xDB, - 0xCF, - 0xE2, - 0xCE, - 0xD9, - 0x91, - 0xA1, - 0xA1, - 0xA1, - 0x8F, - 0xA1, - 0xA0, - 0x71, - 0xA1, - 0xA1, - 0x71, - 0x4B, - 0x39, - 0x49, - 0x61, - 0x2D, - 0x71, - 0x2D, - 0x61, - 0x2D, - 0x61, - 0x2D, - 0x61, - 0x49, - 0xA6, - 0x4D, - 0x4D, - 0x2D, - 0x3C, - 0x39, - 0xA3, - 0x61, - 0x8F, - 0x8F, - 0xA7, - 0x8F, - 0x91, - 0xA6, - 0x75, - 0x4C, - 0x48, - 0x3C, - 0x4B, - 0x6F, - 0x5B, - 0x6F, - 0x4B, - 0x5E, - 0xA2, - 0xB7, - 0xB9, - 0xB9, - 0xB9, - 0xA2, - 0x73, - 0xE8, - 0xF1, - 0xF1, - 0xF1, - 0xE8, - 0xCC, - 0xCF, - 0x72, - 0x72, - 0xA4, - 0xA4, - 0xA8, - 0xA4, - 0xDE, - 0xC2, - 0xBE, - 0xD4, - 0xE4, - 0x06, - 0xF1, - 0x00, - 0x3E, - 0xEB, - 0xCD, - 0x9F, - 0x9F, - 0x8C, - 0x8C, - 0xA4, - 0x5B, - 0x73, - 0xE3, - 0xE3, - 0xDA, - 0x5B, - 0x47, - 0x21, - 0xA7, - 0xCE, - 0x2C, - 0x14, - 0xE3, - 0xF1, - 0xE8, - 0x43, - 0x14, - 0x39, - 0x4C, - 0x74, - 0xD0, - 0xBA, - 0x74, - 0x93, - 0x4C, - 0x77, - 0xD0, - 0x5E, - 0x5E, - 0x4B, - 0x6F, - 0x4B, - 0x47, - 0x6F, - 0x4B, - 0x2C, - 0x48, - 0x4C, - 0x43, - 0x4C, - 0x2C, - 0x1F, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x10, - 0x12, - 0x08, - 0x10, - 0x11, - 0x11, - 0x11, - 0x06, - 0x07, - 0x08, - 0x00, - 0x30, - 0x03, - 0x04, - 0x03, - 0x03, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x20, - 0x1F, - 0x11, - 0x11, - 0x20, - 0x11, - 0x03, - 0x23, - 0x23, - 0x08, - 0x2D, - 0x11, - 0x0A, - 0x08, - 0x20, - 0x20, - 0x20, - 0x49, - 0x75, - 0x39, - 0x39, - 0x63, - 0xA6, - 0x63, - 0x63, - 0xA6, - 0x77, - 0x93, - 0x93, - 0xDB, - 0x74, - 0x60, - 0x70, - 0x75, - 0x75, - 0x75, - 0x74, - 0x75, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x04, - 0x80, - 0x00, - 0x0D, - 0x52, - 0x80, - 0x80, - 0x67, - 0x82, - 0x82, - 0x67, - 0x82, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x00, - 0x07, - 0x80, - 0x05, - 0x67, - 0x05, - 0x7C, - 0x00, - 0x0F, - 0x94, - 0xC0, - 0x67, - 0x96, - 0x96, - 0xBD, - 0xB9, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0x90, - 0xA5, - 0xA5, - 0x00, - 0x06, - 0x90, - 0x00, - 0x0A, - 0x77, - 0x77, - 0xA9, - 0xD0, - 0xC2, - 0xE4, - 0xDC, - 0xE4, - 0xE6, - 0xE6, - 0x04, - 0xE4, - 0x04, - 0xD1, - 0x00, - 0x59, - 0xCF, - 0xD1, - 0xE4, - 0xE6, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xE6, - 0xD1, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0xBC, - 0x72, - 0x9F, - 0x9F, - 0xCF, - 0xE6, - 0xBC, - 0xB6, - 0xD8, - 0xE4, - 0xE4, - 0xB5, - 0xA3, - 0xA0, - 0xA3, - 0xA0, - 0xA0, - 0xA0, - 0xA3, - 0xA3, - 0xE2, - 0xDA, - 0xA6, - 0xA0, - 0xD9, - 0xD9, - 0xA0, - 0xA1, - 0xA0, - 0xA0, - 0x61, - 0xA0, - 0x76, - 0xA1, - 0x71, - 0x60, - 0x75, - 0x2D, - 0x61, - 0x49, - 0x2F, - 0x61, - 0x2F, - 0x49, - 0x5F, - 0x2F, - 0x49, - 0x2F, - 0x2D, - 0x61, - 0x76, - 0x49, - 0x4D, - 0x74, - 0x49, - 0x4D, - 0x4D, - 0x8F, - 0x61, - 0xA7, - 0x61, - 0x8F, - 0x60, - 0x74, - 0x4B, - 0x4C, - 0x48, - 0x48, - 0x4C, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x5D, - 0x5B, - 0xA2, - 0xB7, - 0xB7, - 0xB9, - 0xCC, - 0x73, - 0x73, - 0xE8, - 0xF1, - 0xF1, - 0xF1, - 0xE8, - 0x90, - 0xE3, - 0x72, - 0x5C, - 0xA4, - 0xA4, - 0x8C, - 0xBE, - 0xAA, - 0xDE, - 0xC2, - 0xAA, - 0xE4, - 0xD8, - 0xBC, - 0xCD, - 0xCD, - 0xA4, - 0x9F, - 0x72, - 0x72, - 0x72, - 0x8C, - 0xCC, - 0x73, - 0x5B, - 0x5E, - 0x38, - 0x8D, - 0xE4, - 0xE8, - 0x90, - 0x47, - 0xA7, - 0xD9, - 0x2C, - 0x1F, - 0xE3, - 0xF1, - 0xCE, - 0x22, - 0x09, - 0x4D, - 0x2C, - 0x39, - 0x93, - 0x60, - 0x70, - 0x76, - 0x5D, - 0x75, - 0x4B, - 0x4B, - 0x4B, - 0x21, - 0x4C, - 0x4C, - 0x2C, - 0x48, - 0x21, - 0x49, - 0x60, - 0x22, - 0x3C, - 0x48, - 0x22, - 0x2D, - 0x08, - 0x11, - 0x11, - 0x11, - 0x08, - 0x08, - 0x10, - 0x08, - 0x10, - 0x11, - 0x11, - 0x11, - 0x1F, - 0x00, - 0x07, - 0x08, - 0x00, - 0x1C, - 0x03, - 0x04, - 0x04, - 0x03, - 0x08, - 0x08, - 0x11, - 0x11, - 0x11, - 0x20, - 0x37, - 0x11, - 0x11, - 0x20, - 0x11, - 0x03, - 0x23, - 0x2B, - 0x0A, - 0x22, - 0x23, - 0x20, - 0x20, - 0x23, - 0x23, - 0x20, - 0x49, - 0x60, - 0x05, - 0x39, - 0x00, - 0x08, - 0x5D, - 0x3C, - 0x60, - 0x75, - 0x91, - 0x91, - 0x70, - 0x4C, - 0x04, - 0x75, - 0x00, - 0x03, - 0x74, - 0x75, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x0C, - 0x80, - 0x82, - 0x6A, - 0x80, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x07, - 0x82, - 0x00, - 0x10, - 0x80, - 0x80, - 0x80, - 0x67, - 0x80, - 0x67, - 0x67, - 0x99, - 0x7C, - 0xAA, - 0x99, - 0x67, - 0x7C, - 0xAB, - 0xBD, - 0x94, - 0x05, - 0xBD, - 0x00, - 0x08, - 0x92, - 0x92, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0xBA, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x05, - 0xA7, - 0x90, - 0x90, - 0x90, - 0xA9, - 0x00, - 0x05, - 0xEA, - 0x00, - 0xC9, - 0xEC, - 0xDE, - 0xD4, - 0xD4, - 0xD4, - 0x96, - 0x62, - 0x90, - 0xBD, - 0xDB, - 0xC0, - 0xD2, - 0xBF, - 0xBD, - 0x92, - 0x92, - 0xA5, - 0x78, - 0x92, - 0xA8, - 0x8E, - 0x72, - 0x8E, - 0x72, - 0xBE, - 0xA4, - 0x72, - 0x73, - 0x8C, - 0xCF, - 0xEC, - 0xCD, - 0xBC, - 0xBC, - 0xEC, - 0xB9, - 0x8D, - 0xA3, - 0xA3, - 0xA0, - 0xA3, - 0xA0, - 0xA0, - 0xA3, - 0xA7, - 0xE3, - 0xE4, - 0xB8, - 0xD9, - 0xE8, - 0xB8, - 0xA1, - 0x76, - 0xA0, - 0xA1, - 0xA1, - 0xA1, - 0xA0, - 0x5D, - 0x75, - 0x4D, - 0x49, - 0x4D, - 0x39, - 0x39, - 0x2D, - 0x39, - 0x2D, - 0x39, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x39, - 0x91, - 0x60, - 0x2E, - 0x4C, - 0x3C, - 0x39, - 0x60, - 0xA3, - 0x76, - 0xA7, - 0x8F, - 0x91, - 0x76, - 0xA7, - 0x74, - 0x4B, - 0x4C, - 0x48, - 0x48, - 0x6F, - 0x5E, - 0x5B, - 0x5B, - 0x74, - 0x73, - 0xA2, - 0xB9, - 0xB9, - 0xCD, - 0xB7, - 0x8B, - 0x8B, - 0xCE, - 0xE8, - 0xF1, - 0xF1, - 0xE8, - 0x73, - 0xCE, - 0x90, - 0x46, - 0x8C, - 0xA8, - 0x8C, - 0xC2, - 0xC4, - 0xB6, - 0xD1, - 0xCF, - 0xEC, - 0xA8, - 0x5C, - 0x72, - 0x5C, - 0x72, - 0x72, - 0x5C, - 0xA5, - 0xB6, - 0xB6, - 0x46, - 0x5B, - 0x73, - 0x5B, - 0x90, - 0x5E, - 0x90, - 0xE8, - 0xE3, - 0xE8, - 0xA7, - 0x2C, - 0x70, - 0xEB, - 0xEB, - 0xBD, - 0x2C, - 0x49, - 0x48, - 0x6F, - 0x74, - 0x47, - 0xD9, - 0xAC, - 0x70, - 0xDB, - 0x90, - 0x8D, - 0x4B, - 0x6F, - 0x4B, - 0x4B, - 0x47, - 0x74, - 0x47, - 0x47, - 0x4D, - 0x5D, - 0x2E, - 0x49, - 0x22, - 0x39, - 0x2A, - 0x08, - 0x10, - 0x1E, - 0x10, - 0x06, - 0x06, - 0x12, - 0x11, - 0x1F, - 0x11, - 0x10, - 0x12, - 0x12, - 0x08, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x03, - 0x03, - 0x03, - 0x08, - 0x00, - 0x05, - 0x11, - 0x00, - 0x17, - 0x2B, - 0x2A, - 0x11, - 0x20, - 0x20, - 0x20, - 0x08, - 0x2D, - 0x14, - 0x10, - 0x20, - 0x20, - 0x23, - 0x39, - 0x48, - 0x4D, - 0x2D, - 0x39, - 0x39, - 0x2D, - 0x2D, - 0x4D, - 0x4D, - 0x00, - 0x06, - 0x39, - 0x00, - 0x0A, - 0x2C, - 0x75, - 0x75, - 0x6F, - 0x75, - 0x4B, - 0x74, - 0xA2, - 0xB7, - 0x91, - 0x00, - 0x00, - 0x00, - 0x05, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x0A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x87, - 0x34, - 0x80, - 0x80, - 0x85, - 0x85, - 0x06, - 0x6A, - 0x05, - 0x82, - 0x06, - 0x80, - 0x00, - 0x0F, - 0x52, - 0x99, - 0x67, - 0x67, - 0xAE, - 0x85, - 0x80, - 0x7C, - 0x7C, - 0xAA, - 0xBD, - 0x94, - 0xBD, - 0xBD, - 0xBD, - 0x00, - 0x07, - 0x92, - 0x00, - 0x1B, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x90, - 0xA9, - 0x90, - 0xA9, - 0x90, - 0x8D, - 0xC0, - 0xF3, - 0xEC, - 0xEC, - 0xEC, - 0xEF, - 0xEF, - 0xEF, - 0xEC, - 0xEF, - 0xED, - 0xED, - 0xEA, - 0x63, - 0x75, - 0x6F, - 0x75, - 0x00, - 0x06, - 0x4C, - 0x00, - 0xB9, - 0x70, - 0x4C, - 0x75, - 0x75, - 0x75, - 0xA2, - 0x74, - 0x4C, - 0x60, - 0x3C, - 0x3C, - 0x3C, - 0x60, - 0x93, - 0x63, - 0x77, - 0x75, - 0xC1, - 0x63, - 0x74, - 0x48, - 0x60, - 0x48, - 0x47, - 0x4C, - 0x47, - 0x4C, - 0x6F, - 0x77, - 0xD2, - 0xBF, - 0xD2, - 0xBD, - 0xA2, - 0x75, - 0xA0, - 0x70, - 0x74, - 0x5D, - 0x60, - 0x6F, - 0x75, - 0x39, - 0x39, - 0x22, - 0x5D, - 0x2D, - 0x4D, - 0x2D, - 0x4D, - 0x2D, - 0x4D, - 0x2D, - 0x4D, - 0x3A, - 0x5F, - 0x2D, - 0x60, - 0x8F, - 0x74, - 0x38, - 0x75, - 0x39, - 0x75, - 0x60, - 0x60, - 0x8F, - 0x60, - 0x8F, - 0x61, - 0x75, - 0x2E, - 0x75, - 0x6F, - 0x4B, - 0x48, - 0x47, - 0x47, - 0x6F, - 0x5B, - 0x5E, - 0x8B, - 0x8B, - 0xB7, - 0xCC, - 0xB9, - 0xB9, - 0xCD, - 0xB6, - 0x38, - 0xA9, - 0xEB, - 0xB9, - 0xE4, - 0xF1, - 0xA2, - 0xA5, - 0xCE, - 0x5B, - 0x72, - 0xA8, - 0xD4, - 0xC2, - 0xAA, - 0x94, - 0xBC, - 0xEF, - 0xC2, - 0xCD, - 0xB6, - 0xB7, - 0xA4, - 0x8C, - 0xB7, - 0xB7, - 0xB6, - 0xB6, - 0x8B, - 0x5E, - 0x5B, - 0x5E, - 0xA5, - 0x5B, - 0x47, - 0x47, - 0x74, - 0xEB, - 0x75, - 0x48, - 0x75, - 0xEB, - 0xE8, - 0xCC, - 0x48, - 0x22, - 0x22, - 0x4B, - 0x6F, - 0x6F, - 0xBF, - 0x77, - 0x48, - 0x74, - 0xBA, - 0xB9, - 0x77, - 0x47, - 0x5E, - 0x5E, - 0x4B, - 0x74, - 0x4B, - 0x6F, - 0x48, - 0x4B, - 0x5D, - 0x49, - 0x2C, - 0x2C, - 0x22, - 0x11, - 0x10, - 0x1F, - 0x08, - 0x11, - 0x11, - 0x10, - 0x11, - 0x06, - 0x11, - 0x02, - 0x1E, - 0x1F, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x08, - 0x08, - 0x20, - 0x00, - 0x04, - 0x11, - 0x00, - 0x27, - 0x1F, - 0x22, - 0x20, - 0x20, - 0x10, - 0x20, - 0x0A, - 0x2D, - 0x23, - 0x06, - 0x48, - 0x2D, - 0x14, - 0x2D, - 0x2D, - 0x23, - 0x20, - 0x20, - 0x3A, - 0x2D, - 0x39, - 0x93, - 0x60, - 0x60, - 0x4C, - 0x75, - 0x63, - 0x63, - 0x63, - 0x75, - 0x60, - 0x6F, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x90, - 0xB9, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x0E, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x67, - 0x85, - 0x6B, - 0x67, - 0x7C, - 0x80, - 0x6A, - 0x6A, - 0x04, - 0x82, - 0x06, - 0x80, - 0x00, - 0x05, - 0x99, - 0x67, - 0x99, - 0x67, - 0x67, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x2A, - 0x67, - 0x99, - 0x7C, - 0x96, - 0x96, - 0x95, - 0xB9, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x90, - 0x92, - 0x90, - 0x90, - 0xBA, - 0x92, - 0xA7, - 0xBA, - 0x92, - 0xA9, - 0xC0, - 0xDC, - 0xAE, - 0xD2, - 0xDB, - 0xC0, - 0xEB, - 0xE6, - 0xEB, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xD1, - 0xD1, - 0xD1, - 0xEC, - 0xDC, - 0x04, - 0x4C, - 0x00, - 0x0E, - 0x60, - 0x60, - 0x4C, - 0x60, - 0x3C, - 0x3C, - 0x60, - 0x60, - 0x75, - 0x60, - 0x8D, - 0x75, - 0x4D, - 0x4D, - 0x04, - 0x39, - 0x00, - 0x0E, - 0x48, - 0x39, - 0x76, - 0x49, - 0x5D, - 0x49, - 0x61, - 0x71, - 0x49, - 0x2D, - 0x5D, - 0x39, - 0x2C, - 0x39, - 0x05, - 0x23, - 0x00, - 0x83, - 0x39, - 0x2C, - 0x23, - 0x4D, - 0x60, - 0xA6, - 0x60, - 0xA6, - 0x76, - 0x91, - 0x4D, - 0x4D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x5F, - 0x49, - 0x8F, - 0x76, - 0x8F, - 0x61, - 0x8F, - 0x4D, - 0x8F, - 0x61, - 0x8F, - 0x4C, - 0x75, - 0x4D, - 0x60, - 0x4D, - 0x60, - 0x61, - 0x76, - 0x61, - 0x61, - 0x76, - 0x4D, - 0x4D, - 0x3C, - 0x47, - 0x4C, - 0x3C, - 0x48, - 0x47, - 0x6F, - 0x5E, - 0x6F, - 0x4B, - 0x8B, - 0xA2, - 0xA5, - 0xB7, - 0xCD, - 0xB9, - 0x5E, - 0x5E, - 0x90, - 0x73, - 0x38, - 0xDA, - 0xF1, - 0xB7, - 0xBA, - 0xB9, - 0x73, - 0x5B, - 0xAB, - 0xA8, - 0xC2, - 0xAA, - 0x78, - 0xEC, - 0x78, - 0x92, - 0x73, - 0x5C, - 0x73, - 0x8B, - 0x3B, - 0x5B, - 0x8C, - 0x5B, - 0x38, - 0x6F, - 0x38, - 0x90, - 0x5E, - 0x5E, - 0x62, - 0x43, - 0x93, - 0xD0, - 0x2C, - 0x22, - 0xA6, - 0xE4, - 0xD8, - 0xE8, - 0xE2, - 0x70, - 0x43, - 0x70, - 0x2C, - 0x4C, - 0xA6, - 0x77, - 0x91, - 0x48, - 0x74, - 0x92, - 0x90, - 0x4C, - 0x4B, - 0x47, - 0x4B, - 0x4B, - 0x47, - 0x4B, - 0x14, - 0x4C, - 0x5D, - 0x20, - 0x2D, - 0x60, - 0x2D, - 0x08, - 0x11, - 0x1F, - 0x00, - 0x05, - 0x08, - 0x00, - 0x05, - 0x10, - 0x11, - 0x11, - 0x11, - 0x06, - 0x00, - 0x07, - 0x08, - 0x00, - 0x29, - 0x02, - 0x03, - 0x08, - 0x11, - 0x1F, - 0x1F, - 0x2B, - 0x11, - 0x11, - 0x2B, - 0x2B, - 0x11, - 0x20, - 0x20, - 0x11, - 0x03, - 0x2D, - 0x20, - 0x08, - 0x4D, - 0x11, - 0x23, - 0x2D, - 0x3A, - 0x3A, - 0x3A, - 0x3C, - 0x2D, - 0x23, - 0x49, - 0x63, - 0x23, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x39, - 0x8F, - 0x93, - 0x39, - 0x4C, - 0x00, - 0x04, - 0x75, - 0x00, - 0x03, - 0x74, - 0x74, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x38, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x82, - 0x82, - 0x67, - 0x67, - 0x67, - 0x82, - 0x82, - 0x80, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x67, - 0x52, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x7C, - 0x98, - 0x7C, - 0x96, - 0x7C, - 0xBD, - 0x96, - 0x96, - 0xAD, - 0x94, - 0xA5, - 0xB9, - 0x92, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0x04, - 0x90, - 0x00, - 0x3D, - 0x92, - 0xBA, - 0xBA, - 0x92, - 0x77, - 0xBF, - 0xC0, - 0x77, - 0xBF, - 0xDC, - 0xA9, - 0xE4, - 0xE6, - 0xE6, - 0xE4, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xC2, - 0xD1, - 0x92, - 0xD0, - 0xDB, - 0x4C, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x60, - 0x3C, - 0x3C, - 0x60, - 0x75, - 0x75, - 0x74, - 0x75, - 0x60, - 0x60, - 0x4D, - 0x39, - 0x3C, - 0x75, - 0x75, - 0x39, - 0x39, - 0x65, - 0xC1, - 0x93, - 0x93, - 0x93, - 0x4D, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x2D, - 0x23, - 0x3A, - 0x00, - 0x04, - 0x23, - 0x00, - 0x0D, - 0x14, - 0x20, - 0x2D, - 0x39, - 0x75, - 0x76, - 0x8F, - 0x61, - 0xA3, - 0x76, - 0x75, - 0x2D, - 0x49, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x3D, - 0x49, - 0x76, - 0x91, - 0x91, - 0xA3, - 0x91, - 0x8F, - 0xA6, - 0x4D, - 0x49, - 0x22, - 0x49, - 0x2D, - 0x39, - 0x2D, - 0x49, - 0x39, - 0xA6, - 0x61, - 0xA6, - 0x60, - 0x91, - 0x60, - 0x8F, - 0x74, - 0x47, - 0x47, - 0x2C, - 0x47, - 0x47, - 0x4B, - 0x5E, - 0x5B, - 0x5E, - 0x5E, - 0xA2, - 0xA5, - 0xB9, - 0xB7, - 0xA2, - 0x73, - 0x5E, - 0x5B, - 0x5E, - 0x5B, - 0xBA, - 0xF1, - 0xE8, - 0x73, - 0xBA, - 0xBD, - 0x5B, - 0x38, - 0x72, - 0x72, - 0x72, - 0xE3, - 0xCE, - 0x46, - 0x5B, - 0x73, - 0x00, - 0x04, - 0x5B, - 0x00, - 0x3A, - 0x5E, - 0x38, - 0x6F, - 0x5B, - 0x8D, - 0x5E, - 0x47, - 0x47, - 0x4B, - 0x48, - 0xDA, - 0x75, - 0x2C, - 0x39, - 0xE3, - 0xE8, - 0xE8, - 0xEB, - 0xEB, - 0xE8, - 0xE8, - 0xA2, - 0x47, - 0xA6, - 0x4C, - 0x91, - 0xA9, - 0x48, - 0xC0, - 0x90, - 0x77, - 0xC0, - 0x47, - 0x4B, - 0x74, - 0x47, - 0x47, - 0x4B, - 0x2A, - 0x75, - 0x2D, - 0x2D, - 0x4D, - 0x22, - 0x2C, - 0x08, - 0x11, - 0x1F, - 0x08, - 0x11, - 0x11, - 0x08, - 0x08, - 0x10, - 0x11, - 0x11, - 0x11, - 0x06, - 0x07, - 0x08, - 0x00, - 0x29, - 0x11, - 0x03, - 0x04, - 0x0A, - 0x08, - 0x11, - 0x2A, - 0x11, - 0x11, - 0x2B, - 0x14, - 0x11, - 0x20, - 0x20, - 0x11, - 0x0A, - 0x14, - 0x20, - 0x11, - 0x2D, - 0x0B, - 0x20, - 0x20, - 0x11, - 0x08, - 0x08, - 0x60, - 0x39, - 0x2B, - 0x4D, - 0x75, - 0x3A, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x64, - 0x93, - 0x2D, - 0x3C, - 0x00, - 0x04, - 0x75, - 0x00, - 0x03, - 0x74, - 0x74, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x85, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x04, - 0x80, - 0x00, - 0x0B, - 0x52, - 0x82, - 0x82, - 0x67, - 0x67, - 0x80, - 0x6A, - 0x67, - 0x99, - 0x52, - 0x99, - 0x00, - 0x06, - 0x67, - 0x00, - 0x7B, - 0x96, - 0x7C, - 0x99, - 0x52, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x98, - 0x99, - 0x94, - 0x95, - 0x7C, - 0xAB, - 0xA9, - 0x74, - 0x77, - 0xB9, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0xA5, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xBD, - 0x90, - 0x77, - 0xAD, - 0xDC, - 0xD2, - 0xDE, - 0xA9, - 0xA7, - 0xE6, - 0xE4, - 0xDC, - 0xE4, - 0xC2, - 0xE4, - 0xE4, - 0xE4, - 0xD1, - 0xD1, - 0x90, - 0xC2, - 0xA7, - 0x60, - 0x75, - 0x4C, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x48, - 0x60, - 0x75, - 0x74, - 0x74, - 0x75, - 0x60, - 0x3C, - 0x39, - 0x75, - 0x75, - 0x5D, - 0x4D, - 0x39, - 0x64, - 0xC3, - 0xD4, - 0xAC, - 0xDB, - 0xBF, - 0x93, - 0x39, - 0x48, - 0x5D, - 0x49, - 0x2D, - 0x3A, - 0x23, - 0x23, - 0x91, - 0xA6, - 0xC1, - 0xA6, - 0xC1, - 0x39, - 0x5D, - 0x65, - 0xDB, - 0xAC, - 0xAC, - 0xA6, - 0x8F, - 0x4D, - 0x49, - 0x2D, - 0x2F, - 0x79, - 0x23, - 0x49, - 0x3A, - 0x8F, - 0x8F, - 0x91, - 0x8F, - 0x91, - 0x76, - 0x70, - 0x4D, - 0x39, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x2D, - 0x22, - 0x2D, - 0x61, - 0x8F, - 0xB8, - 0x76, - 0xA6, - 0x5F, - 0xA6, - 0x61, - 0x3C, - 0x48, - 0x2C, - 0x22, - 0x2C, - 0x48, - 0x47, - 0x47, - 0x6F, - 0x4B, - 0x5B, - 0x8D, - 0xB9, - 0xA5, - 0x90, - 0xA2, - 0x73, - 0x5B, - 0x73, - 0x5E, - 0x5B, - 0xA5, - 0xF1, - 0xF1, - 0xB9, - 0xBA, - 0xBD, - 0x90, - 0x38, - 0x38, - 0x73, - 0xA5, - 0xE8, - 0x73, - 0x73, - 0x00, - 0x05, - 0x5B, - 0x00, - 0x3A, - 0x8B, - 0x5B, - 0x5E, - 0x5E, - 0x4B, - 0x5E, - 0x5B, - 0x4C, - 0x12, - 0xA9, - 0xD9, - 0x22, - 0x2C, - 0x74, - 0xE8, - 0xD8, - 0xE8, - 0xEB, - 0xE8, - 0xEB, - 0xEB, - 0xE8, - 0x60, - 0x48, - 0x47, - 0x75, - 0x2D, - 0x39, - 0x5E, - 0x6F, - 0x5E, - 0x6F, - 0x4B, - 0x4B, - 0x47, - 0x4B, - 0x4B, - 0x47, - 0x5D, - 0x4C, - 0x3A, - 0x39, - 0x39, - 0x2D, - 0x39, - 0x11, - 0x10, - 0x10, - 0x08, - 0x10, - 0x06, - 0x10, - 0x10, - 0x06, - 0x08, - 0x11, - 0x20, - 0x10, - 0x07, - 0x08, - 0x00, - 0x30, - 0x11, - 0x04, - 0x03, - 0x08, - 0x11, - 0x11, - 0x2A, - 0x11, - 0x11, - 0x14, - 0x2B, - 0x11, - 0x20, - 0x20, - 0x08, - 0x0A, - 0x3A, - 0x08, - 0x20, - 0x2D, - 0x11, - 0x20, - 0x20, - 0x11, - 0x0B, - 0x0B, - 0x4C, - 0x2D, - 0x3A, - 0x60, - 0x60, - 0x2D, - 0x39, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x91, - 0x64, - 0x39, - 0x39, - 0x75, - 0x75, - 0x75, - 0x74, - 0x74, - 0x74, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x17, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x82, - 0x82, - 0x67, - 0x67, - 0x9B, - 0x80, - 0x80, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x07, - 0x80, - 0x96, - 0x96, - 0x52, - 0xAB, - 0x67, - 0x99, - 0x00, - 0x04, - 0x67, - 0x04, - 0x7C, - 0x00, - 0xB6, - 0x67, - 0x96, - 0xA8, - 0x96, - 0xA9, - 0x77, - 0x74, - 0x75, - 0xBA, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xBA, - 0xBD, - 0xBD, - 0x90, - 0x77, - 0xA7, - 0xDA, - 0xA9, - 0xBF, - 0xC2, - 0x77, - 0xBF, - 0xE6, - 0xE4, - 0xE4, - 0xE4, - 0xC2, - 0xC2, - 0xD1, - 0xD1, - 0xD1, - 0xAA, - 0x77, - 0xC2, - 0x74, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x60, - 0x3C, - 0x3C, - 0x60, - 0x3C, - 0x75, - 0x74, - 0x74, - 0x75, - 0x75, - 0x60, - 0x60, - 0x75, - 0x60, - 0x4D, - 0x48, - 0x60, - 0x2D, - 0x5D, - 0xD2, - 0x93, - 0x8F, - 0x93, - 0xD4, - 0x75, - 0x39, - 0x2D, - 0x23, - 0x3A, - 0x3A, - 0x2D, - 0x23, - 0x3A, - 0x4D, - 0xA3, - 0xA7, - 0x75, - 0x39, - 0x2D, - 0x93, - 0xD9, - 0xC1, - 0xC1, - 0xD9, - 0xA9, - 0x8F, - 0x2D, - 0x2D, - 0x2F, - 0xDF, - 0x65, - 0x45, - 0x14, - 0x76, - 0x5D, - 0xC1, - 0xCA, - 0xCB, - 0xC9, - 0xE9, - 0x2F, - 0x39, - 0x14, - 0x65, - 0x93, - 0xAC, - 0x93, - 0x76, - 0x3A, - 0x75, - 0x91, - 0x76, - 0x93, - 0x8F, - 0x8F, - 0x4D, - 0x76, - 0x22, - 0x2C, - 0x39, - 0x2D, - 0x22, - 0x2C, - 0x48, - 0x47, - 0x4B, - 0x4B, - 0x5B, - 0xA2, - 0xB9, - 0xA2, - 0xA2, - 0x90, - 0x73, - 0x5E, - 0x5B, - 0x5E, - 0xCE, - 0xF1, - 0xF1, - 0xF1, - 0xE4, - 0x5B, - 0x77, - 0xBA, - 0x77, - 0x47, - 0x38, - 0xE3, - 0x5E, - 0x73, - 0x73, - 0x8B, - 0x73, - 0x5B, - 0x5E, - 0xA2, - 0x5E, - 0x5E, - 0x5B, - 0x4B, - 0x47, - 0x47, - 0x2C, - 0xA6, - 0xDA, - 0x2C, - 0x39, - 0x39, - 0xE3, - 0xCF, - 0xE8, - 0xEB, - 0x04, - 0xE8, - 0x00, - 0x25, - 0xE3, - 0x2C, - 0x2A, - 0x4C, - 0x4C, - 0x2A, - 0x70, - 0x5E, - 0x6F, - 0x5E, - 0x4B, - 0x4B, - 0x4B, - 0x47, - 0x4B, - 0x4B, - 0x47, - 0x60, - 0x2C, - 0x2D, - 0x76, - 0x2C, - 0x39, - 0x71, - 0x20, - 0x10, - 0x10, - 0x08, - 0x1F, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x02, - 0x02, - 0x00, - 0x07, - 0x08, - 0x00, - 0x30, - 0x11, - 0x03, - 0x03, - 0x08, - 0x11, - 0x20, - 0x2A, - 0x11, - 0x11, - 0x22, - 0x2B, - 0x20, - 0x20, - 0x20, - 0x08, - 0x0A, - 0x14, - 0x11, - 0x20, - 0x3C, - 0x49, - 0x3A, - 0x11, - 0x0B, - 0x08, - 0x11, - 0x75, - 0x3A, - 0x2B, - 0x64, - 0x3C, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x49, - 0x39, - 0x63, - 0x3C, - 0x39, - 0x2E, - 0x3C, - 0x75, - 0x75, - 0x4B, - 0x74, - 0x74, - 0x75, - 0x00, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x11, - 0x82, - 0x82, - 0x6A, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x82, - 0x82, - 0x67, - 0x82, - 0x82, - 0x67, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x00, - 0x1F, - 0x80, - 0xAA, - 0xA4, - 0xB9, - 0xAB, - 0x67, - 0x96, - 0x52, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x7C, - 0x98, - 0x7C, - 0x99, - 0x7C, - 0xC0, - 0x94, - 0xA9, - 0x8D, - 0x77, - 0x75, - 0x90, - 0xB9, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0x00, - 0x05, - 0x90, - 0x00, - 0x18, - 0xBA, - 0xBA, - 0x90, - 0x77, - 0x8D, - 0xC0, - 0xDC, - 0xD2, - 0xD4, - 0xAC, - 0x5E, - 0xDA, - 0xE6, - 0xE4, - 0xC2, - 0xE4, - 0xD1, - 0xC2, - 0xD1, - 0xD1, - 0xD1, - 0xBF, - 0x92, - 0xE5, - 0x04, - 0x4C, - 0x00, - 0x54, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x3C, - 0x3C, - 0x75, - 0x74, - 0x75, - 0x74, - 0x75, - 0x75, - 0x4C, - 0x5D, - 0x60, - 0x4D, - 0x4D, - 0x39, - 0x2D, - 0x91, - 0xC2, - 0xD3, - 0xC0, - 0xE6, - 0xA6, - 0x49, - 0x3A, - 0x3A, - 0x3A, - 0x2D, - 0x61, - 0x3A, - 0x23, - 0x2B, - 0x22, - 0xA9, - 0x91, - 0x14, - 0x2D, - 0x4D, - 0x5D, - 0x60, - 0x49, - 0x8F, - 0xD9, - 0xDB, - 0x49, - 0x2D, - 0x14, - 0x76, - 0xDE, - 0x51, - 0x10, - 0x5F, - 0x49, - 0xC5, - 0xF5, - 0xC5, - 0x79, - 0xE1, - 0xE9, - 0x70, - 0x30, - 0xEC, - 0x93, - 0x91, - 0x4F, - 0xA7, - 0x8F, - 0x60, - 0x60, - 0x8F, - 0x93, - 0xEC, - 0x7B, - 0x5D, - 0x8F, - 0x23, - 0x39, - 0x2C, - 0x2C, - 0x14, - 0x2C, - 0x04, - 0x47, - 0x00, - 0x0B, - 0x5E, - 0x77, - 0xBD, - 0xA5, - 0xA5, - 0xA2, - 0xB7, - 0x73, - 0x5E, - 0x5E, - 0xBD, - 0x00, - 0x05, - 0xF1, - 0x00, - 0x47, - 0xD9, - 0x8B, - 0x90, - 0xBA, - 0x77, - 0xE8, - 0x5E, - 0x21, - 0x21, - 0x5B, - 0x5E, - 0x6F, - 0x4B, - 0x8B, - 0x4B, - 0x47, - 0x47, - 0x47, - 0x12, - 0x60, - 0xBD, - 0xD9, - 0x48, - 0x2C, - 0x22, - 0xE2, - 0xE8, - 0xCF, - 0xE2, - 0xBA, - 0xE8, - 0xE8, - 0xEB, - 0xE8, - 0xA6, - 0x22, - 0x39, - 0x4C, - 0x39, - 0x22, - 0x4C, - 0x5B, - 0x5E, - 0x4B, - 0x47, - 0x4B, - 0x47, - 0x4B, - 0x5E, - 0x47, - 0x75, - 0x76, - 0x22, - 0x61, - 0x39, - 0x48, - 0x75, - 0x20, - 0x11, - 0x1F, - 0x11, - 0x08, - 0x10, - 0x10, - 0x11, - 0x08, - 0x08, - 0x08, - 0x11, - 0x10, - 0x11, - 0x00, - 0x06, - 0x08, - 0x00, - 0x31, - 0x11, - 0x11, - 0x03, - 0x03, - 0x11, - 0x11, - 0x20, - 0x2A, - 0x11, - 0x11, - 0x2C, - 0x23, - 0x20, - 0x20, - 0x20, - 0x08, - 0x11, - 0x2D, - 0x08, - 0x11, - 0x3A, - 0x49, - 0x3A, - 0x23, - 0x2D, - 0x2F, - 0x49, - 0x4C, - 0x3A, - 0x3A, - 0x63, - 0x39, - 0x2D, - 0x2D, - 0x49, - 0x39, - 0x39, - 0x39, - 0x93, - 0x4D, - 0x39, - 0x39, - 0x39, - 0x75, - 0x75, - 0x74, - 0x74, - 0x74, - 0x64, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x00, - 0x37, - 0x80, - 0x82, - 0x80, - 0x52, - 0x82, - 0x82, - 0x52, - 0x6A, - 0x80, - 0x80, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0xA8, - 0xBD, - 0xB9, - 0x94, - 0x80, - 0x96, - 0x7C, - 0x80, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x99, - 0x7C, - 0x96, - 0xA8, - 0x95, - 0xA9, - 0x77, - 0xA9, - 0x92, - 0xB9, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0x90, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0x77, - 0xA7, - 0x00, - 0x04, - 0x77, - 0x00, - 0x09, - 0x90, - 0x90, - 0x77, - 0xA6, - 0x77, - 0xE4, - 0xDC, - 0xE4, - 0xC2, - 0x00, - 0x06, - 0xD1, - 0x00, - 0x0D, - 0x90, - 0xBF, - 0xBF, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x60, - 0x3C, - 0x60, - 0x48, - 0x3C, - 0x3C, - 0x00, - 0x05, - 0x75, - 0x00, - 0xA3, - 0xA3, - 0x4C, - 0x4D, - 0x3C, - 0x39, - 0x39, - 0x60, - 0x39, - 0x39, - 0xC1, - 0xD2, - 0x75, - 0xA6, - 0xE9, - 0x4F, - 0x23, - 0x2D, - 0x61, - 0x3A, - 0x49, - 0x3A, - 0x23, - 0x2D, - 0x39, - 0x4D, - 0xA7, - 0x5D, - 0x2D, - 0x39, - 0x39, - 0x60, - 0x76, - 0xDA, - 0xE5, - 0xD2, - 0x49, - 0x4D, - 0x2D, - 0x37, - 0x31, - 0xDF, - 0x93, - 0x2B, - 0x2D, - 0x76, - 0xB4, - 0xD7, - 0x65, - 0x51, - 0xF5, - 0x65, - 0x49, - 0xE5, - 0x4D, - 0x14, - 0x20, - 0x3A, - 0x39, - 0x39, - 0x49, - 0xA6, - 0x71, - 0x7D, - 0xDE, - 0xA9, - 0x3C, - 0x4D, - 0x3A, - 0x2D, - 0x48, - 0x48, - 0x2D, - 0x22, - 0x47, - 0x48, - 0x21, - 0x4C, - 0x5E, - 0xA2, - 0x8D, - 0x90, - 0x90, - 0x92, - 0xA2, - 0x90, - 0x73, - 0x5E, - 0xBA, - 0xEB, - 0xF1, - 0xF1, - 0xEB, - 0xEB, - 0xEB, - 0xE2, - 0x5E, - 0x8D, - 0xD9, - 0xD9, - 0x77, - 0x74, - 0x4C, - 0x47, - 0x4B, - 0x13, - 0x47, - 0x47, - 0x13, - 0x3C, - 0x74, - 0xA9, - 0xD9, - 0xA7, - 0x60, - 0x22, - 0x49, - 0xE2, - 0xE8, - 0xBC, - 0xE8, - 0x74, - 0x14, - 0x2D, - 0xD9, - 0xE8, - 0xD8, - 0x48, - 0x2A, - 0x2C, - 0x47, - 0x22, - 0x4D, - 0x6F, - 0x5E, - 0x4B, - 0x47, - 0x4B, - 0x47, - 0x47, - 0x4B, - 0x47, - 0x4B, - 0x60, - 0x2C, - 0x60, - 0x2D, - 0x39, - 0x70, - 0x3C, - 0x20, - 0x08, - 0x2A, - 0x11, - 0x08, - 0x08, - 0x11, - 0x11, - 0x06, - 0x11, - 0x08, - 0x08, - 0x10, - 0x11, - 0x00, - 0x06, - 0x08, - 0x00, - 0x0B, - 0x10, - 0x08, - 0x03, - 0x03, - 0x11, - 0x11, - 0x2B, - 0x22, - 0x11, - 0x20, - 0x48, - 0x00, - 0x04, - 0x20, - 0x00, - 0x22, - 0x0A, - 0x20, - 0x2D, - 0x08, - 0x4D, - 0x60, - 0x2D, - 0x23, - 0x23, - 0x20, - 0x20, - 0x20, - 0x2D, - 0x2D, - 0x2D, - 0x63, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x39, - 0x39, - 0x4D, - 0x7B, - 0x39, - 0x39, - 0x4D, - 0x39, - 0x3C, - 0x75, - 0x74, - 0x8D, - 0x74, - 0x75, - 0x00, - 0x00, - 0x01, - 0x85, - 0x05, - 0x6A, - 0x04, - 0x82, - 0x04, - 0x80, - 0x04, - 0x82, - 0x00, - 0x05, - 0x80, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x07, - 0xAA, - 0xA4, - 0xCD, - 0xAB, - 0x80, - 0x67, - 0x96, - 0x00, - 0x04, - 0x67, - 0x00, - 0x14, - 0xAE, - 0x7C, - 0x7C, - 0x98, - 0x67, - 0x7C, - 0x7C, - 0x95, - 0xD0, - 0x96, - 0xAB, - 0x96, - 0x94, - 0xA5, - 0xA5, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0x06, - 0x90, - 0x00, - 0x0E, - 0xA7, - 0x77, - 0x90, - 0x77, - 0x77, - 0xA7, - 0x77, - 0x77, - 0x5E, - 0x63, - 0x90, - 0xE4, - 0xE4, - 0xC2, - 0x04, - 0xD1, - 0x00, - 0x06, - 0xAA, - 0xBE, - 0xAA, - 0x62, - 0xDA, - 0x77, - 0x04, - 0x4C, - 0x00, - 0xA3, - 0x60, - 0x4C, - 0x60, - 0x3C, - 0x48, - 0x75, - 0x3C, - 0x60, - 0x75, - 0x74, - 0x74, - 0x75, - 0x5D, - 0x4D, - 0x4D, - 0x4D, - 0x60, - 0x39, - 0x2D, - 0x7B, - 0xD2, - 0xD2, - 0xC3, - 0xD4, - 0x91, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x3A, - 0x3A, - 0x23, - 0x39, - 0x48, - 0x4F, - 0xA3, - 0xA7, - 0x39, - 0x2D, - 0x39, - 0x4D, - 0x60, - 0x8F, - 0x79, - 0xAC, - 0xA6, - 0x39, - 0x2D, - 0x3A, - 0x2B, - 0x2D, - 0xB3, - 0x51, - 0x2B, - 0x2B, - 0x51, - 0xF5, - 0xE1, - 0xED, - 0xCA, - 0x65, - 0x49, - 0x91, - 0xA9, - 0x23, - 0x20, - 0x2D, - 0x2D, - 0x2D, - 0x3A, - 0x8F, - 0x76, - 0xA0, - 0x50, - 0xE1, - 0x93, - 0x6F, - 0x22, - 0x23, - 0x22, - 0x2C, - 0x2D, - 0x14, - 0x2C, - 0x48, - 0x48, - 0x2C, - 0x6F, - 0x5B, - 0x73, - 0x8B, - 0x8D, - 0xA5, - 0x73, - 0xA5, - 0xA2, - 0x73, - 0x47, - 0x4B, - 0xCE, - 0xF1, - 0xDA, - 0x47, - 0xD0, - 0xEB, - 0xF1, - 0xE3, - 0x8D, - 0x4B, - 0x74, - 0xA9, - 0xBA, - 0xA7, - 0xBA, - 0xBA, - 0xA9, - 0xBA, - 0xBA, - 0xD9, - 0xBA, - 0x77, - 0x2C, - 0x2C, - 0x4D, - 0x39, - 0xE3, - 0xEB, - 0xCF, - 0xBE, - 0x74, - 0x39, - 0x23, - 0x39, - 0x39, - 0x60, - 0x63, - 0x39, - 0x22, - 0x4C, - 0x2C, - 0x39, - 0x39, - 0x4B, - 0xBA, - 0x4B, - 0x5E, - 0x8D, - 0x47, - 0x4B, - 0x47, - 0x4B, - 0x5E, - 0x39, - 0x4C, - 0x5D, - 0x3A, - 0x3C, - 0x60, - 0x48, - 0x3A, - 0x11, - 0x2A, - 0x20, - 0x00, - 0x04, - 0x08, - 0x00, - 0x05, - 0x10, - 0x02, - 0x08, - 0x11, - 0x12, - 0x00, - 0x07, - 0x08, - 0x00, - 0x31, - 0x10, - 0x08, - 0x03, - 0x0A, - 0x11, - 0x11, - 0x2D, - 0x1F, - 0x11, - 0x20, - 0x2C, - 0x20, - 0x20, - 0x20, - 0x11, - 0x0A, - 0x23, - 0x23, - 0x08, - 0x4C, - 0x3A, - 0x20, - 0x11, - 0x23, - 0x2D, - 0x3A, - 0x49, - 0x2D, - 0x2D, - 0x39, - 0x64, - 0x2D, - 0x2D, - 0x39, - 0x2F, - 0x39, - 0x39, - 0x60, - 0x63, - 0x39, - 0x39, - 0x2C, - 0x4D, - 0x5D, - 0x60, - 0x4B, - 0x77, - 0x74, - 0x75, - 0x00, - 0x00, - 0x00, - 0x00, - 0x24, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x82, - 0x52, - 0x80, - 0x82, - 0x6A, - 0x6A, - 0x80, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0xAE, - 0x7C, - 0x80, - 0x80, - 0x80, - 0x96, - 0x96, - 0x80, - 0x04, - 0x67, - 0x00, - 0x13, - 0x7C, - 0x7C, - 0x99, - 0x7C, - 0x7C, - 0x96, - 0x94, - 0x95, - 0x96, - 0x96, - 0x95, - 0xB9, - 0xA5, - 0x92, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0x00, - 0x05, - 0x90, - 0x00, - 0x1B, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0x77, - 0xA7, - 0x90, - 0xA6, - 0x77, - 0x8D, - 0x74, - 0xA9, - 0xE4, - 0xC2, - 0xD1, - 0xC2, - 0xD1, - 0xD1, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0x77, - 0xD1, - 0x4E, - 0x60, - 0x4C, - 0x00, - 0x04, - 0x60, - 0x00, - 0x8D, - 0x3C, - 0x60, - 0x75, - 0x48, - 0x3C, - 0x75, - 0x74, - 0x75, - 0x75, - 0x60, - 0x60, - 0x39, - 0x39, - 0x4D, - 0x39, - 0x5D, - 0x4C, - 0x4C, - 0x75, - 0x75, - 0x8F, - 0x4D, - 0x76, - 0x2D, - 0x2D, - 0x49, - 0x3A, - 0x2D, - 0x2D, - 0x48, - 0x39, - 0x75, - 0x75, - 0xA9, - 0x5D, - 0x2D, - 0x39, - 0x39, - 0x65, - 0xC1, - 0xA6, - 0xA7, - 0xE6, - 0x79, - 0x2D, - 0x4F, - 0x9A, - 0x64, - 0x3D, - 0xEA, - 0x68, - 0x2B, - 0x71, - 0x65, - 0xE1, - 0x7D, - 0x79, - 0x44, - 0x71, - 0x14, - 0xC1, - 0x91, - 0x61, - 0x14, - 0x49, - 0x93, - 0x61, - 0x3A, - 0x8F, - 0x8F, - 0x49, - 0xA6, - 0xDE, - 0x7D, - 0x5A, - 0x39, - 0x20, - 0x2D, - 0x2A, - 0x2C, - 0x2D, - 0x22, - 0x43, - 0x48, - 0x4C, - 0x4B, - 0x73, - 0x8D, - 0x73, - 0x5E, - 0x73, - 0x73, - 0x8D, - 0x90, - 0x73, - 0x5E, - 0x47, - 0x90, - 0xBA, - 0x38, - 0x38, - 0x47, - 0xBD, - 0xE4, - 0xEB, - 0xE8, - 0xE2, - 0x8D, - 0x47, - 0x4C, - 0x47, - 0x4C, - 0x74, - 0x4C, - 0x4C, - 0x2C, - 0x22, - 0x14, - 0x22, - 0x60, - 0x77, - 0xE8, - 0xEB, - 0xD8, - 0xD8, - 0xE2, - 0x60, - 0x2D, - 0x22, - 0x4B, - 0x22, - 0x23, - 0x23, - 0x14, - 0x2C, - 0x47, - 0x2D, - 0x2D, - 0x48, - 0x73, - 0x5E, - 0x00, - 0x05, - 0x4B, - 0x00, - 0x17, - 0x47, - 0x4C, - 0x74, - 0x2D, - 0x75, - 0x4D, - 0x14, - 0x75, - 0x3C, - 0x39, - 0x76, - 0x10, - 0x06, - 0x11, - 0x10, - 0x06, - 0x10, - 0x11, - 0x1F, - 0x11, - 0x08, - 0x02, - 0x06, - 0x00, - 0x05, - 0x08, - 0x00, - 0x23, - 0x11, - 0x08, - 0x20, - 0x03, - 0x03, - 0x08, - 0x11, - 0x11, - 0x2A, - 0x20, - 0x11, - 0x2D, - 0x39, - 0x20, - 0x20, - 0x20, - 0x11, - 0x0A, - 0x23, - 0x11, - 0x23, - 0x75, - 0x20, - 0x0B, - 0x11, - 0x0B, - 0x11, - 0x0B, - 0x75, - 0x2D, - 0x14, - 0x60, - 0x8F, - 0x2D, - 0x49, - 0x00, - 0x04, - 0x39, - 0x00, - 0x0C, - 0x91, - 0x8F, - 0x39, - 0x39, - 0x4D, - 0x2E, - 0x5D, - 0x3C, - 0x74, - 0x8D, - 0x74, - 0x64, - 0x00, - 0x00, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x0C, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x82, - 0x6B, - 0x82, - 0x80, - 0x05, - 0x6A, - 0x00, - 0x06, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x82, - 0x04, - 0x80, - 0x00, - 0x1C, - 0x52, - 0xAB, - 0x67, - 0x67, - 0x67, - 0xAE, - 0x7C, - 0x7C, - 0x98, - 0x80, - 0x7C, - 0x96, - 0x7C, - 0xAB, - 0xBD, - 0x96, - 0x96, - 0x96, - 0x7A, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0x90, - 0xA5, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x06, - 0xBD, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0x90, - 0x04, - 0x77, - 0x00, - 0x33, - 0x74, - 0xC0, - 0xC2, - 0xD1, - 0xD1, - 0xD1, - 0xAA, - 0xAA, - 0xAA, - 0xBE, - 0xAA, - 0x92, - 0xA9, - 0xC0, - 0x4C, - 0x4C, - 0x60, - 0x60, - 0x4C, - 0x3C, - 0x60, - 0x3C, - 0x75, - 0x3C, - 0x3C, - 0x75, - 0x75, - 0x60, - 0x75, - 0x60, - 0x3C, - 0x39, - 0x39, - 0x39, - 0x4D, - 0x4C, - 0x60, - 0x70, - 0x60, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x3A, - 0x3A, - 0x39, - 0x48, - 0x48, - 0x00, - 0x05, - 0x39, - 0x00, - 0x85, - 0x2D, - 0x22, - 0x60, - 0x8F, - 0xA9, - 0x93, - 0xA7, - 0x4D, - 0x5D, - 0x2D, - 0x97, - 0xC5, - 0xC5, - 0xC5, - 0xE9, - 0x2D, - 0x2D, - 0x45, - 0x79, - 0xAF, - 0xE1, - 0xDF, - 0xCA, - 0x76, - 0x20, - 0x61, - 0xDB, - 0xA6, - 0xDB, - 0xA7, - 0xDB, - 0x3A, - 0x8F, - 0xDB, - 0xC5, - 0x91, - 0x97, - 0xEA, - 0xA6, - 0x4D, - 0x14, - 0x09, - 0x14, - 0x48, - 0x2C, - 0x14, - 0x22, - 0x48, - 0x47, - 0x5E, - 0x62, - 0x8D, - 0x90, - 0x4B, - 0x5B, - 0x5E, - 0x73, - 0x73, - 0xA5, - 0x92, - 0x8B, - 0x90, - 0x47, - 0x4B, - 0x47, - 0x48, - 0x13, - 0xBA, - 0xF1, - 0xE8, - 0xEB, - 0xEB, - 0xE8, - 0xE8, - 0xA7, - 0x8D, - 0xB8, - 0x75, - 0x74, - 0x4C, - 0x63, - 0x77, - 0xBD, - 0xCF, - 0xCF, - 0xEB, - 0xE8, - 0xD1, - 0xE4, - 0xEB, - 0xE2, - 0x48, - 0x75, - 0x2C, - 0x39, - 0x2C, - 0x23, - 0x23, - 0x60, - 0x22, - 0x2D, - 0x22, - 0x4B, - 0x5E, - 0x4B, - 0x6F, - 0x4B, - 0x47, - 0x5E, - 0x77, - 0x47, - 0x4B, - 0x2C, - 0x49, - 0x75, - 0x22, - 0x60, - 0x3C, - 0x39, - 0x8F, - 0x3A, - 0x1F, - 0x11, - 0x08, - 0x1E, - 0x11, - 0x08, - 0x11, - 0x02, - 0x08, - 0x08, - 0x10, - 0x10, - 0x00, - 0x04, - 0x08, - 0x00, - 0x34, - 0x11, - 0x11, - 0x08, - 0x20, - 0x03, - 0x03, - 0x11, - 0x11, - 0x20, - 0x39, - 0x20, - 0x11, - 0x2D, - 0x2D, - 0x20, - 0x20, - 0x20, - 0x0B, - 0x0A, - 0x39, - 0x11, - 0x2F, - 0x91, - 0x11, - 0x08, - 0x0B, - 0x11, - 0x0B, - 0x20, - 0x63, - 0x2D, - 0x2D, - 0x91, - 0x3C, - 0x2D, - 0x39, - 0x49, - 0x39, - 0x39, - 0x39, - 0x7B, - 0x3C, - 0x39, - 0x4D, - 0x3C, - 0x5D, - 0x4D, - 0x48, - 0x60, - 0x8D, - 0x74, - 0x75, - 0x00, - 0x00, - 0x00, - 0x18, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x82, - 0x82, - 0x80, - 0x52, - 0x6A, - 0x6B, - 0x80, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x05, - 0x82, - 0x00, - 0x1E, - 0x80, - 0x52, - 0x80, - 0x80, - 0x80, - 0x96, - 0x96, - 0x67, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x7C, - 0x80, - 0x7C, - 0x7C, - 0x96, - 0x98, - 0x94, - 0x95, - 0x96, - 0x96, - 0x95, - 0xBD, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0x07, - 0x90, - 0x00, - 0x05, - 0xA9, - 0xBA, - 0xBA, - 0xBF, - 0x90, - 0x00, - 0x04, - 0x77, - 0x00, - 0x11, - 0x5E, - 0x77, - 0xDA, - 0xC2, - 0xD1, - 0xAA, - 0xAA, - 0xAA, - 0xBE, - 0xAA, - 0x94, - 0xBE, - 0x62, - 0xBF, - 0xA9, - 0x4C, - 0x4C, - 0x00, - 0x04, - 0x60, - 0x00, - 0x1F, - 0x3C, - 0x75, - 0x3C, - 0x75, - 0x74, - 0x48, - 0x3C, - 0x3C, - 0x60, - 0x70, - 0x4D, - 0x39, - 0x39, - 0x48, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x3C, - 0x48, - 0x5D, - 0x39, - 0x5D, - 0x5D, - 0x60, - 0x5D, - 0x3C, - 0x5D, - 0x70, - 0x3C, - 0x5D, - 0x00, - 0x05, - 0x39, - 0x00, - 0x7E, - 0x49, - 0x4D, - 0x39, - 0x4D, - 0x4A, - 0x4D, - 0x5D, - 0x76, - 0x2D, - 0x1F, - 0x2B, - 0x14, - 0x1F, - 0x3A, - 0x2D, - 0x14, - 0x2D, - 0x2D, - 0x2B, - 0x4D, - 0x3D, - 0x51, - 0x2F, - 0x4A, - 0x09, - 0x2D, - 0x2D, - 0x61, - 0x23, - 0x5F, - 0x23, - 0x5F, - 0xC1, - 0xEA, - 0xD3, - 0xDE, - 0xE9, - 0xDE, - 0x75, - 0x48, - 0x14, - 0x09, - 0x14, - 0x2D, - 0x22, - 0x14, - 0x2D, - 0x43, - 0x4C, - 0x47, - 0x8D, - 0x8D, - 0x5E, - 0x4B, - 0x38, - 0x73, - 0x5E, - 0x90, - 0x90, - 0xA5, - 0xA2, - 0x4B, - 0x4B, - 0x47, - 0x4C, - 0x22, - 0x8D, - 0xEB, - 0xEB, - 0xEB, - 0xE8, - 0xDA, - 0xE3, - 0xE8, - 0xE4, - 0xE8, - 0xE4, - 0xE8, - 0xE8, - 0xE8, - 0xD8, - 0xCF, - 0xBC, - 0xCE, - 0xBA, - 0xD0, - 0xE8, - 0xE8, - 0xE8, - 0xEB, - 0xE8, - 0x74, - 0x22, - 0x39, - 0x39, - 0x22, - 0x48, - 0x49, - 0x20, - 0x14, - 0x47, - 0x5B, - 0x4B, - 0x38, - 0x77, - 0x4B, - 0x4B, - 0x77, - 0x47, - 0x90, - 0x5E, - 0x22, - 0x60, - 0x39, - 0x5D, - 0x8F, - 0x2D, - 0x75, - 0x49, - 0x23, - 0x36, - 0x11, - 0x08, - 0x1F, - 0x1F, - 0x11, - 0x04, - 0x08, - 0x00, - 0x3A, - 0x1F, - 0x11, - 0x08, - 0x08, - 0x08, - 0x11, - 0x08, - 0x11, - 0x11, - 0x20, - 0x03, - 0x0A, - 0x11, - 0x11, - 0x10, - 0x2C, - 0x20, - 0x20, - 0x2C, - 0x23, - 0x20, - 0x20, - 0x20, - 0x08, - 0x11, - 0x39, - 0x20, - 0x3A, - 0x3C, - 0x49, - 0x23, - 0x20, - 0x20, - 0x11, - 0x3A, - 0x60, - 0x3A, - 0x2D, - 0x63, - 0x49, - 0x22, - 0x39, - 0x39, - 0x2E, - 0x39, - 0x3C, - 0x93, - 0x39, - 0x39, - 0x4D, - 0x39, - 0x3C, - 0x5D, - 0x3C, - 0x75, - 0x77, - 0x74, - 0x75, - 0x00, - 0x00, - 0x00, - 0x13, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x6B, - 0x85, - 0x82, - 0x85, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x04, - 0x80, - 0x00, - 0x0C, - 0x52, - 0x80, - 0x80, - 0x80, - 0xAA, - 0x67, - 0x80, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x80, - 0x04, - 0x7C, - 0x00, - 0x06, - 0xAB, - 0xBD, - 0xAB, - 0x96, - 0x96, - 0x94, - 0x04, - 0xA5, - 0x00, - 0x04, - 0xBA, - 0xA5, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x3D, - 0xA7, - 0x90, - 0x92, - 0xBF, - 0xBD, - 0xA9, - 0x8D, - 0x77, - 0xA7, - 0x90, - 0x74, - 0x5E, - 0xA7, - 0xC2, - 0xC2, - 0xD1, - 0xD1, - 0xAA, - 0xAA, - 0xAA, - 0xBE, - 0x94, - 0x94, - 0x77, - 0xD1, - 0x63, - 0x60, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x3C, - 0x75, - 0x60, - 0x74, - 0x4C, - 0x4D, - 0x5D, - 0x39, - 0x60, - 0x60, - 0x60, - 0x39, - 0x5D, - 0x75, - 0x4C, - 0x70, - 0x60, - 0x70, - 0x60, - 0x4C, - 0x70, - 0x60, - 0x3C, - 0x48, - 0x60, - 0x70, - 0x60, - 0x5D, - 0x60, - 0x70, - 0x00, - 0x09, - 0x39, - 0x00, - 0x04, - 0x4D, - 0x49, - 0x4A, - 0x14, - 0x06, - 0x2D, - 0x04, - 0x14, - 0x00, - 0x0B, - 0x23, - 0x14, - 0x23, - 0x2A, - 0x2B, - 0x4A, - 0x20, - 0x2D, - 0x2D, - 0x3A, - 0x20, - 0x00, - 0x05, - 0x23, - 0x00, - 0x8A, - 0x49, - 0x3A, - 0x4D, - 0x4A, - 0x61, - 0x39, - 0x4C, - 0x22, - 0x2D, - 0x09, - 0x14, - 0x2C, - 0x47, - 0x14, - 0x2D, - 0x48, - 0x48, - 0x4B, - 0x4B, - 0x73, - 0x4B, - 0x4B, - 0x47, - 0x5E, - 0x73, - 0x5E, - 0x90, - 0x73, - 0x90, - 0xA2, - 0x4C, - 0x3C, - 0x22, - 0x4C, - 0xCE, - 0xE8, - 0xE4, - 0xEB, - 0xBF, - 0x1E, - 0x4B, - 0x47, - 0x77, - 0xCE, - 0xE8, - 0xE4, - 0xE8, - 0xCF, - 0x4C, - 0x2C, - 0x60, - 0x2D, - 0x60, - 0xE8, - 0xEB, - 0xEB, - 0xEB, - 0xE8, - 0xA9, - 0x39, - 0x2C, - 0x22, - 0x48, - 0x48, - 0x14, - 0x71, - 0x5D, - 0x21, - 0x4B, - 0x6F, - 0x5E, - 0x5E, - 0x47, - 0x4B, - 0x47, - 0x4B, - 0x77, - 0x2C, - 0x5D, - 0x2E, - 0x2D, - 0x75, - 0x39, - 0x2C, - 0x60, - 0x3A, - 0x2D, - 0x2A, - 0x20, - 0x08, - 0x08, - 0x10, - 0x20, - 0x06, - 0x08, - 0x08, - 0x08, - 0x2A, - 0x08, - 0x08, - 0x11, - 0x11, - 0x08, - 0x11, - 0x08, - 0x11, - 0x08, - 0x03, - 0x08, - 0x11, - 0x11, - 0x2D, - 0x2D, - 0x11, - 0x23, - 0x48, - 0x20, - 0x20, - 0x23, - 0x11, - 0x0A, - 0x23, - 0x2D, - 0x20, - 0x4D, - 0x5D, - 0x2D, - 0x23, - 0x20, - 0x3A, - 0x2D, - 0x4D, - 0x23, - 0x11, - 0x49, - 0x64, - 0x3A, - 0x49, - 0x04, - 0x39, - 0x00, - 0x0D, - 0x91, - 0x63, - 0x39, - 0x39, - 0x3C, - 0x4D, - 0x5D, - 0x3C, - 0x60, - 0x74, - 0x8D, - 0x74, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x85, - 0x6A, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x0C, - 0x80, - 0x6A, - 0x55, - 0x85, - 0x80, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x0A, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x67, - 0x96, - 0x67, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x12, - 0x7C, - 0xC3, - 0xAB, - 0xAB, - 0xAB, - 0x7C, - 0x95, - 0x94, - 0x96, - 0x96, - 0x95, - 0xBD, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0x06, - 0x90, - 0x00, - 0x0F, - 0x77, - 0x90, - 0xA9, - 0xBF, - 0xA9, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x63, - 0x74, - 0xA9, - 0xE4, - 0xC2, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x08, - 0xAA, - 0x94, - 0x94, - 0x78, - 0x62, - 0xD1, - 0x4C, - 0x4C, - 0x04, - 0x60, - 0x00, - 0xA6, - 0x75, - 0x4B, - 0x75, - 0x3C, - 0x5D, - 0x3C, - 0x4D, - 0x39, - 0x3C, - 0x60, - 0x4D, - 0x4C, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x4C, - 0x48, - 0x60, - 0x48, - 0x3C, - 0xA3, - 0xA9, - 0xA9, - 0xA7, - 0xA7, - 0x60, - 0x5D, - 0x60, - 0xA6, - 0xA3, - 0xA6, - 0x91, - 0xA6, - 0x4D, - 0x39, - 0x4D, - 0x79, - 0x8F, - 0x49, - 0x1F, - 0x2D, - 0x2D, - 0x14, - 0x14, - 0x2B, - 0x3A, - 0x10, - 0x23, - 0x14, - 0x3A, - 0x2B, - 0x1F, - 0x20, - 0x20, - 0x2B, - 0x49, - 0x3A, - 0x5F, - 0x4A, - 0x5F, - 0x4A, - 0x5F, - 0x3A, - 0x3A, - 0x20, - 0x23, - 0x09, - 0x23, - 0x23, - 0x14, - 0x2D, - 0x2C, - 0x2C, - 0x14, - 0x4A, - 0x14, - 0x39, - 0x48, - 0x2C, - 0x2D, - 0x39, - 0x21, - 0x47, - 0x6F, - 0x6F, - 0x47, - 0x47, - 0x5B, - 0x5B, - 0x5E, - 0x73, - 0x5E, - 0x8D, - 0x73, - 0x73, - 0x47, - 0x22, - 0x48, - 0x2C, - 0x4C, - 0x77, - 0xD0, - 0xE8, - 0x4C, - 0x2C, - 0x22, - 0x48, - 0x4C, - 0xE8, - 0xE8, - 0xCF, - 0xE8, - 0x74, - 0x2D, - 0x48, - 0x4D, - 0x8D, - 0x74, - 0xE4, - 0xE4, - 0xE3, - 0x63, - 0x39, - 0x22, - 0x39, - 0x48, - 0x75, - 0x2D, - 0x2D, - 0x3C, - 0x38, - 0x47, - 0x21, - 0x47, - 0x4B, - 0x47, - 0x77, - 0x4B, - 0x47, - 0x4B, - 0x4B, - 0x4D, - 0x49, - 0x39, - 0x39, - 0x71, - 0x22, - 0x75, - 0x49, - 0x23, - 0x75, - 0x1F, - 0x11, - 0x11, - 0x08, - 0x11, - 0x11, - 0x06, - 0x08, - 0x08, - 0x20, - 0x1F, - 0x04, - 0x08, - 0x00, - 0x35, - 0x11, - 0x11, - 0x08, - 0x10, - 0x03, - 0x03, - 0x11, - 0x20, - 0x11, - 0x39, - 0x23, - 0x11, - 0x2D, - 0x2D, - 0x20, - 0x20, - 0x20, - 0x0B, - 0x0A, - 0x39, - 0x3A, - 0x23, - 0xA3, - 0x49, - 0x5D, - 0x49, - 0x23, - 0x3A, - 0x23, - 0x20, - 0x0B, - 0x11, - 0x4D, - 0x2F, - 0x20, - 0x23, - 0x23, - 0x3A, - 0x2D, - 0x49, - 0x93, - 0x60, - 0x5D, - 0x3C, - 0x39, - 0x5D, - 0x3C, - 0x3C, - 0x75, - 0x74, - 0x77, - 0x74, - 0x91, - 0x00, - 0x00, - 0x00, - 0x01, - 0x85, - 0x06, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x11, - 0x80, - 0x82, - 0x85, - 0x6B, - 0x55, - 0x80, - 0x82, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x00, - 0x04, - 0x80, - 0x00, - 0x06, - 0x52, - 0x80, - 0x96, - 0x67, - 0x67, - 0xAA, - 0x04, - 0x94, - 0x00, - 0x95, - 0xAB, - 0x94, - 0xCE, - 0xA8, - 0xBD, - 0x96, - 0x96, - 0xBD, - 0xAB, - 0x96, - 0x96, - 0x95, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x77, - 0x90, - 0xBD, - 0xBA, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x90, - 0x77, - 0x5E, - 0x74, - 0xBF, - 0xE4, - 0xD1, - 0xD1, - 0xD1, - 0xAA, - 0xAA, - 0xBE, - 0x94, - 0xBE, - 0x90, - 0xA9, - 0xBF, - 0x4C, - 0x4C, - 0x60, - 0x4C, - 0x60, - 0x74, - 0x74, - 0x4C, - 0x5D, - 0x3C, - 0x5D, - 0x5D, - 0x48, - 0x2E, - 0x39, - 0x48, - 0x75, - 0x75, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x3C, - 0x70, - 0x3C, - 0x75, - 0xD9, - 0x75, - 0x63, - 0xA3, - 0xBA, - 0x60, - 0x60, - 0xA7, - 0xA6, - 0x93, - 0xA7, - 0xA9, - 0x39, - 0x60, - 0xD2, - 0xD3, - 0xAC, - 0x3D, - 0x20, - 0x20, - 0x20, - 0x5F, - 0xC5, - 0x9A, - 0x65, - 0x16, - 0x11, - 0x20, - 0x17, - 0xC1, - 0x50, - 0x50, - 0x2F, - 0x2B, - 0x23, - 0x4A, - 0x4A, - 0x61, - 0x5F, - 0x61, - 0x20, - 0x4A, - 0x20, - 0x23, - 0x20, - 0x20, - 0x09, - 0x09, - 0x14, - 0x2D, - 0x22, - 0x20, - 0x23, - 0x09, - 0x3A, - 0x22, - 0x2C, - 0x2C, - 0x14, - 0x37, - 0x2C, - 0x43, - 0x6F, - 0x48, - 0x2C, - 0x47, - 0x47, - 0x4B, - 0x00, - 0x04, - 0x5B, - 0x00, - 0x46, - 0x73, - 0x5B, - 0x4B, - 0x47, - 0x4C, - 0x48, - 0x13, - 0x48, - 0x4C, - 0x4C, - 0x2C, - 0x2C, - 0x47, - 0x22, - 0x90, - 0xE8, - 0xE8, - 0xCF, - 0xE8, - 0x90, - 0x22, - 0x4C, - 0x4C, - 0x39, - 0x74, - 0x75, - 0x48, - 0x39, - 0x39, - 0x75, - 0x47, - 0x2C, - 0x2D, - 0x2D, - 0x4C, - 0x38, - 0x4B, - 0x4B, - 0x21, - 0x15, - 0x47, - 0x47, - 0x5E, - 0x4B, - 0x4B, - 0x5E, - 0x4D, - 0x75, - 0x4D, - 0x14, - 0x76, - 0x0B, - 0x61, - 0x75, - 0x23, - 0x8F, - 0x4C, - 0x11, - 0x20, - 0x10, - 0x08, - 0x08, - 0x10, - 0x2B, - 0x08, - 0x08, - 0x1F, - 0x10, - 0x08, - 0x08, - 0x04, - 0x11, - 0x00, - 0x33, - 0x08, - 0x10, - 0x03, - 0x0A, - 0x20, - 0x11, - 0x2B, - 0x2C, - 0x20, - 0x20, - 0x48, - 0x23, - 0x2B, - 0x23, - 0x20, - 0x08, - 0x11, - 0x4D, - 0x20, - 0x4D, - 0x60, - 0x23, - 0x23, - 0x23, - 0x20, - 0x23, - 0x2F, - 0x2F, - 0x11, - 0x20, - 0x4F, - 0x20, - 0x20, - 0x20, - 0x0C, - 0x20, - 0x20, - 0x2F, - 0x91, - 0x3A, - 0x2F, - 0x4D, - 0x4D, - 0x3C, - 0x3C, - 0x60, - 0x74, - 0x4C, - 0x75, - 0x4C, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x0A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x6A, - 0x6B, - 0x6B, - 0x55, - 0x6A, - 0x80, - 0x05, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x05, - 0x82, - 0x00, - 0x1F, - 0x80, - 0x80, - 0x80, - 0x7C, - 0x96, - 0x80, - 0x96, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xD0, - 0xAB, - 0x94, - 0xA8, - 0xA8, - 0xA8, - 0xD0, - 0x7C, - 0xAB, - 0xBD, - 0x96, - 0xAB, - 0x96, - 0xBD, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0x90, - 0xA5, - 0x00, - 0x06, - 0x90, - 0x00, - 0x04, - 0xA7, - 0x77, - 0x90, - 0x90, - 0x05, - 0x77, - 0x00, - 0xF4, - 0x8D, - 0x63, - 0x74, - 0x63, - 0xC0, - 0xC2, - 0xD1, - 0xD1, - 0xD1, - 0xAA, - 0xBE, - 0x94, - 0x94, - 0xBE, - 0x62, - 0xC0, - 0xA9, - 0x4C, - 0x60, - 0x60, - 0x4C, - 0x8D, - 0x4B, - 0x60, - 0x3C, - 0x48, - 0x3C, - 0x4D, - 0x5D, - 0x4D, - 0x3C, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x70, - 0x60, - 0x4C, - 0x70, - 0x60, - 0x3C, - 0x5D, - 0x7B, - 0xA7, - 0x5D, - 0x48, - 0xBC, - 0x48, - 0x22, - 0x39, - 0x2A, - 0x93, - 0x75, - 0xA3, - 0x4D, - 0x39, - 0x2D, - 0x49, - 0x50, - 0xE9, - 0xDB, - 0x31, - 0x20, - 0x64, - 0xEA, - 0x79, - 0x51, - 0x9C, - 0x3A, - 0x11, - 0x3D, - 0xDF, - 0xC5, - 0xC5, - 0x9A, - 0x51, - 0x11, - 0x20, - 0x7D, - 0xDE, - 0xDB, - 0xD3, - 0xC1, - 0x31, - 0x20, - 0x3A, - 0x93, - 0x93, - 0x8F, - 0x91, - 0x23, - 0x14, - 0x20, - 0x23, - 0x09, - 0x3A, - 0x3A, - 0x23, - 0x39, - 0x2C, - 0x39, - 0x14, - 0x14, - 0x2C, - 0x6F, - 0x47, - 0x48, - 0x2C, - 0x2C, - 0x38, - 0x47, - 0x4B, - 0x4B, - 0x5B, - 0x5B, - 0x4B, - 0x47, - 0x5B, - 0x73, - 0x4B, - 0x4C, - 0x2C, - 0x2C, - 0x60, - 0x2C, - 0x75, - 0x48, - 0x39, - 0x3C, - 0x8D, - 0x77, - 0x8D, - 0xA9, - 0xA7, - 0x2D, - 0x39, - 0x47, - 0x48, - 0x39, - 0x22, - 0x3C, - 0x2C, - 0x4C, - 0x48, - 0x39, - 0x39, - 0x22, - 0x4C, - 0x5B, - 0x6F, - 0x38, - 0x47, - 0x47, - 0x47, - 0x21, - 0x15, - 0x47, - 0x47, - 0x5E, - 0x48, - 0x4D, - 0x4C, - 0x14, - 0x60, - 0x2D, - 0x23, - 0x75, - 0x23, - 0x49, - 0x75, - 0x2D, - 0x10, - 0x11, - 0x11, - 0x11, - 0x08, - 0x2A, - 0x10, - 0x08, - 0x11, - 0x1F, - 0x11, - 0x11, - 0x11, - 0x08, - 0x11, - 0x11, - 0x08, - 0x20, - 0x08, - 0x03, - 0x08, - 0x20, - 0x20, - 0x14, - 0x14, - 0x20, - 0x20, - 0x48, - 0x20, - 0x20, - 0x23, - 0x20, - 0x0A, - 0x3A, - 0x4D, - 0x20, - 0x75, - 0x49, - 0x14, - 0x23, - 0x23, - 0x23, - 0x08, - 0x4D, - 0x3A, - 0x11, - 0x4A, - 0x60, - 0x0B, - 0x20, - 0x20, - 0x23, - 0x0C, - 0x20, - 0x4F, - 0x4D, - 0x09, - 0x23, - 0x23, - 0x3A, - 0x2D, - 0x39, - 0x75, - 0x4B, - 0x60, - 0x75, - 0x60, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x03, - 0x85, - 0x6A, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x0F, - 0x6B, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x82, - 0x82, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x20, - 0x80, - 0x80, - 0x96, - 0x52, - 0x67, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0xC0, - 0x94, - 0xAB, - 0xD0, - 0x94, - 0xCE, - 0xA8, - 0xA4, - 0xAB, - 0x98, - 0x94, - 0x95, - 0x96, - 0x96, - 0x95, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0x92, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x04, - 0xA7, - 0xA7, - 0x90, - 0x90, - 0x05, - 0x77, - 0x00, - 0x05, - 0x63, - 0x77, - 0x63, - 0x74, - 0x77, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x16, - 0xAA, - 0xAA, - 0xBE, - 0x94, - 0xBE, - 0xA8, - 0x8D, - 0xDC, - 0x77, - 0x48, - 0x60, - 0x75, - 0xA7, - 0x4C, - 0x3C, - 0x3C, - 0x3C, - 0x5D, - 0x3C, - 0x5D, - 0x39, - 0x70, - 0x06, - 0x75, - 0x00, - 0x97, - 0x70, - 0x4C, - 0x60, - 0x75, - 0x70, - 0x60, - 0x60, - 0x70, - 0x60, - 0x3C, - 0x5D, - 0x75, - 0x38, - 0x47, - 0xBD, - 0x39, - 0x39, - 0x39, - 0x2A, - 0xA7, - 0xBD, - 0x60, - 0x39, - 0x39, - 0x2D, - 0xA6, - 0xEC, - 0xC5, - 0xE6, - 0xE9, - 0x39, - 0x2D, - 0xDF, - 0x79, - 0x10, - 0x8F, - 0xE0, - 0x2F, - 0x2B, - 0x2A, - 0x10, - 0x11, - 0x23, - 0xAF, - 0x68, - 0x11, - 0x17, - 0x4A, - 0x23, - 0x4A, - 0x50, - 0xE9, - 0x61, - 0x20, - 0x50, - 0xD4, - 0xAC, - 0x65, - 0x45, - 0x20, - 0x0B, - 0x20, - 0x20, - 0xA3, - 0x8F, - 0x75, - 0x4D, - 0x2C, - 0x22, - 0x2A, - 0x2D, - 0x14, - 0x48, - 0x6F, - 0x47, - 0x2C, - 0x43, - 0x48, - 0x48, - 0x38, - 0x47, - 0x4B, - 0x38, - 0x4B, - 0x21, - 0x38, - 0x5E, - 0x5B, - 0x5E, - 0x6F, - 0x4B, - 0x60, - 0x5D, - 0x75, - 0x2C, - 0x39, - 0x2D, - 0x2D, - 0x2D, - 0x14, - 0x48, - 0x2D, - 0x2D, - 0x2C, - 0x2C, - 0x75, - 0x48, - 0x4C, - 0x48, - 0x48, - 0x39, - 0x2D, - 0x39, - 0x4C, - 0x47, - 0x4B, - 0x38, - 0x4B, - 0x4B, - 0x47, - 0x4B, - 0x47, - 0x4B, - 0x4C, - 0x12, - 0x4C, - 0x4C, - 0x2D, - 0x75, - 0x23, - 0x71, - 0x60, - 0x39, - 0x61, - 0x39, - 0x2C, - 0x4D, - 0x39, - 0x39, - 0x1E, - 0x1F, - 0x10, - 0x20, - 0x10, - 0x10, - 0x20, - 0x11, - 0x10, - 0x20, - 0x11, - 0x08, - 0x00, - 0x04, - 0x11, - 0x00, - 0x27, - 0x08, - 0x10, - 0x03, - 0x0A, - 0x20, - 0x20, - 0x08, - 0x20, - 0x03, - 0x0A, - 0x39, - 0x39, - 0x20, - 0x23, - 0x20, - 0x08, - 0x08, - 0x60, - 0x2D, - 0x20, - 0x49, - 0x60, - 0x60, - 0x2D, - 0x2D, - 0x23, - 0x23, - 0x60, - 0x11, - 0x11, - 0x4D, - 0x5F, - 0x20, - 0x20, - 0x23, - 0x20, - 0x23, - 0x23, - 0x91, - 0x00, - 0x06, - 0x23, - 0x00, - 0x07, - 0x2D, - 0x3C, - 0x2D, - 0x2F, - 0x60, - 0x3C, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x04, - 0x6A, - 0x00, - 0x0B, - 0x82, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x55, - 0x85, - 0x6A, - 0x80, - 0x6A, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x20, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0x80, - 0x96, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0x94, - 0xAB, - 0x94, - 0x94, - 0xA8, - 0xA8, - 0xBD, - 0x94, - 0x96, - 0xAB, - 0xBD, - 0xAB, - 0x96, - 0xAB, - 0xBF, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0x06, - 0x90, - 0x00, - 0x26, - 0x77, - 0x90, - 0x90, - 0xBA, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0x90, - 0xBA, - 0x90, - 0x92, - 0xC2, - 0xC2, - 0xC2, - 0xD1, - 0xAA, - 0xAA, - 0x94, - 0x94, - 0x94, - 0x78, - 0xA9, - 0xEB, - 0xA9, - 0x74, - 0x8D, - 0x8D, - 0x60, - 0x3C, - 0x60, - 0x3C, - 0x3C, - 0x48, - 0x4D, - 0x3C, - 0x05, - 0x75, - 0x00, - 0x0B, - 0x47, - 0x75, - 0x75, - 0x70, - 0x4C, - 0xB7, - 0x75, - 0x48, - 0x75, - 0x74, - 0x5D, - 0x00, - 0x04, - 0x48, - 0x01, - 0x4B, - 0x01, - 0xBD, - 0x04, - 0x39, - 0x00, - 0x83, - 0xBA, - 0xA7, - 0x44, - 0x91, - 0x75, - 0x49, - 0x76, - 0xEA, - 0x2F, - 0x61, - 0xD2, - 0xC1, - 0x11, - 0x50, - 0xE5, - 0x23, - 0x11, - 0x7D, - 0x93, - 0x20, - 0x10, - 0x64, - 0xC1, - 0x50, - 0xC1, - 0xED, - 0x16, - 0x20, - 0x11, - 0x4A, - 0x4A, - 0x79, - 0xE4, - 0x7D, - 0x11, - 0x11, - 0x4D, - 0xE9, - 0x61, - 0x7D, - 0x31, - 0x20, - 0x11, - 0x20, - 0x91, - 0x49, - 0x23, - 0x14, - 0xA6, - 0x49, - 0x39, - 0x22, - 0x2D, - 0x2D, - 0x48, - 0x6F, - 0x48, - 0x2C, - 0x22, - 0x2C, - 0x2C, - 0x47, - 0x47, - 0x47, - 0x48, - 0x2C, - 0x4B, - 0x38, - 0x4B, - 0x6F, - 0x5B, - 0x5E, - 0x38, - 0x5E, - 0x4C, - 0x6F, - 0x60, - 0x2D, - 0x22, - 0x14, - 0x39, - 0x39, - 0x23, - 0x22, - 0x39, - 0x2C, - 0x2C, - 0x2C, - 0x5D, - 0x2D, - 0x39, - 0x48, - 0x47, - 0x4B, - 0x5B, - 0x5E, - 0x47, - 0x2C, - 0x5B, - 0x47, - 0x4B, - 0x47, - 0x21, - 0x4B, - 0x47, - 0x47, - 0x3C, - 0x20, - 0x3C, - 0x49, - 0x14, - 0x4D, - 0x48, - 0x2D, - 0x49, - 0x23, - 0x2D, - 0x39, - 0x2D, - 0x3C, - 0x20, - 0x10, - 0x2A, - 0x10, - 0x2A, - 0x11, - 0x11, - 0x2B, - 0x1F, - 0x08, - 0x20, - 0x00, - 0x04, - 0x11, - 0x00, - 0x29, - 0x08, - 0x08, - 0x20, - 0x08, - 0x08, - 0x20, - 0x20, - 0x08, - 0x11, - 0x04, - 0x03, - 0x5D, - 0x23, - 0x20, - 0x23, - 0x20, - 0x0A, - 0x23, - 0x60, - 0x20, - 0x39, - 0x39, - 0x4D, - 0x5D, - 0x39, - 0x60, - 0x4D, - 0x75, - 0x2F, - 0x11, - 0x23, - 0x64, - 0x20, - 0x20, - 0x20, - 0x16, - 0x20, - 0x20, - 0x4D, - 0x4F, - 0x20, - 0x00, - 0x04, - 0x23, - 0x00, - 0x08, - 0x3A, - 0x2E, - 0x39, - 0x3A, - 0x14, - 0x39, - 0x2D, - 0x3A, - 0x00, - 0x00, - 0x01, - 0x85, - 0x08, - 0x6A, - 0x00, - 0x11, - 0x82, - 0x6A, - 0x6B, - 0x85, - 0x85, - 0x6B, - 0x87, - 0x85, - 0x85, - 0x82, - 0x80, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x2B, - 0x80, - 0x80, - 0x96, - 0x80, - 0x67, - 0x96, - 0x96, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0xAB, - 0x94, - 0xBE, - 0xBD, - 0xBC, - 0xA8, - 0xA4, - 0xAA, - 0x7C, - 0x94, - 0xBF, - 0x96, - 0x96, - 0x95, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xBA, - 0xB9, - 0xA5, - 0x00, - 0x08, - 0x90, - 0x00, - 0x04, - 0x77, - 0xA9, - 0xC2, - 0xC2, - 0x04, - 0xAA, - 0x00, - 0x10, - 0x94, - 0xA8, - 0xBE, - 0x8E, - 0xBF, - 0xEC, - 0xA9, - 0x4C, - 0x4B, - 0x60, - 0x60, - 0x3C, - 0x3C, - 0x60, - 0x3C, - 0x3C, - 0x09, - 0x75, - 0x00, - 0x0E, - 0x70, - 0x75, - 0xB7, - 0x60, - 0x48, - 0x74, - 0x74, - 0x48, - 0x3C, - 0x5D, - 0x70, - 0x48, - 0xA3, - 0xBA, - 0x04, - 0x39, - 0x00, - 0x3A, - 0xBA, - 0x74, - 0x2D, - 0x39, - 0x60, - 0x49, - 0x23, - 0x3D, - 0xDB, - 0x79, - 0xAC, - 0xDE, - 0x20, - 0x20, - 0x51, - 0x83, - 0x20, - 0x5F, - 0xEC, - 0x17, - 0x20, - 0x3A, - 0xEA, - 0x9A, - 0xC1, - 0x26, - 0x11, - 0x11, - 0x20, - 0x20, - 0x18, - 0xC5, - 0xC5, - 0xC5, - 0x20, - 0x20, - 0x11, - 0xC5, - 0xD9, - 0xD2, - 0xAC, - 0x2B, - 0x20, - 0x11, - 0x3A, - 0x76, - 0x23, - 0x20, - 0x49, - 0x61, - 0x3A, - 0x14, - 0x39, - 0x48, - 0x48, - 0x2C, - 0x48, - 0x4C, - 0x04, - 0x48, - 0x00, - 0x15, - 0x47, - 0x6F, - 0x47, - 0x22, - 0x4C, - 0x6F, - 0x8D, - 0x5B, - 0x5E, - 0x5B, - 0x5E, - 0x5E, - 0x5B, - 0x73, - 0x5B, - 0x4B, - 0x47, - 0x47, - 0x6F, - 0x2C, - 0x2C, - 0x00, - 0x04, - 0x48, - 0x00, - 0x2C, - 0x4C, - 0x4B, - 0x4B, - 0x5E, - 0x5E, - 0x5E, - 0x5B, - 0x38, - 0x5E, - 0x38, - 0x7B, - 0x63, - 0x6F, - 0x62, - 0x47, - 0x5E, - 0x4B, - 0x21, - 0x4C, - 0x2D, - 0x22, - 0x4A, - 0x20, - 0x49, - 0x4C, - 0x14, - 0x61, - 0x2D, - 0x23, - 0x3A, - 0x09, - 0x48, - 0x2D, - 0x11, - 0x10, - 0x2A, - 0x2A, - 0x37, - 0x11, - 0x08, - 0x36, - 0x2B, - 0x11, - 0x20, - 0x04, - 0x11, - 0x00, - 0x28, - 0x08, - 0x11, - 0x08, - 0x11, - 0x14, - 0x37, - 0x20, - 0x14, - 0x03, - 0x03, - 0x0B, - 0x48, - 0x20, - 0x2B, - 0x23, - 0x11, - 0x08, - 0x60, - 0x2D, - 0x23, - 0x91, - 0x3A, - 0x4D, - 0x60, - 0x4D, - 0x4D, - 0x49, - 0x39, - 0x23, - 0x11, - 0x61, - 0x2F, - 0x20, - 0x20, - 0x4A, - 0x20, - 0x23, - 0x20, - 0x64, - 0x2F, - 0x05, - 0x23, - 0x00, - 0x08, - 0x2F, - 0x3C, - 0x3A, - 0x3A, - 0x2D, - 0x2E, - 0x3A, - 0x2F, - 0x00, - 0x00, - 0x05, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x07, - 0x55, - 0x85, - 0x85, - 0x6A, - 0x80, - 0x82, - 0x85, - 0x00, - 0x06, - 0x6A, - 0x00, - 0x23, - 0x82, - 0x82, - 0x82, - 0x7C, - 0x67, - 0x80, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xAB, - 0x94, - 0x94, - 0x94, - 0xBD, - 0xBC, - 0xA4, - 0xBD, - 0x96, - 0xAD, - 0xA8, - 0x95, - 0x96, - 0x96, - 0x95, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0x90, - 0xA5, - 0x00, - 0x05, - 0x90, - 0x00, - 0x04, - 0xA7, - 0x90, - 0xBD, - 0xB9, - 0x04, - 0x77, - 0x00, - 0x21, - 0xA6, - 0x63, - 0x77, - 0x74, - 0x74, - 0x77, - 0x74, - 0xA7, - 0xD1, - 0xAA, - 0xBE, - 0xBE, - 0xBE, - 0x94, - 0xA8, - 0xA8, - 0x8E, - 0x72, - 0xBF, - 0xEF, - 0xAC, - 0x6F, - 0x60, - 0x60, - 0x60, - 0x3C, - 0x3C, - 0x48, - 0x60, - 0x4B, - 0x74, - 0x75, - 0x6F, - 0x00, - 0x05, - 0x75, - 0x00, - 0x0E, - 0x60, - 0x74, - 0xBA, - 0x60, - 0x48, - 0x74, - 0x6F, - 0x48, - 0x48, - 0x48, - 0x60, - 0x48, - 0xA6, - 0x90, - 0x04, - 0x39, - 0x00, - 0xAF, - 0xBD, - 0x74, - 0x2A, - 0x49, - 0x2A, - 0xA9, - 0x61, - 0x20, - 0x31, - 0xC1, - 0xAC, - 0x50, - 0x20, - 0x20, - 0x20, - 0x79, - 0x83, - 0xC5, - 0xDE, - 0x16, - 0x20, - 0x11, - 0x3D, - 0xC5, - 0xC1, - 0x91, - 0x50, - 0x20, - 0x20, - 0x20, - 0x91, - 0x5F, - 0x4A, - 0xA9, - 0xC1, - 0x20, - 0x11, - 0x61, - 0xC5, - 0x79, - 0x60, - 0x2D, - 0x91, - 0x79, - 0x11, - 0x91, - 0x71, - 0x09, - 0x09, - 0x8F, - 0x8F, - 0x11, - 0x22, - 0x48, - 0x75, - 0x2C, - 0x39, - 0x48, - 0x6F, - 0x47, - 0x48, - 0x48, - 0x47, - 0x47, - 0x47, - 0x48, - 0x47, - 0x6F, - 0x4B, - 0x5E, - 0x5E, - 0x5E, - 0xA2, - 0x73, - 0x8D, - 0x73, - 0x8B, - 0xA2, - 0x8B, - 0x73, - 0x5B, - 0x47, - 0x5B, - 0x5B, - 0x5E, - 0x5B, - 0x5B, - 0x5E, - 0x5E, - 0x62, - 0x5B, - 0x5B, - 0x77, - 0x38, - 0x4B, - 0x47, - 0x7B, - 0xD4, - 0xA9, - 0xD4, - 0xA9, - 0xAC, - 0xE5, - 0x5E, - 0x70, - 0x39, - 0x2C, - 0x4D, - 0x20, - 0x79, - 0xC1, - 0x20, - 0x49, - 0x71, - 0x10, - 0x61, - 0x3A, - 0x2C, - 0x60, - 0x23, - 0x10, - 0x2A, - 0x10, - 0x2A, - 0x2A, - 0x10, - 0x10, - 0x1F, - 0x10, - 0x10, - 0x1F, - 0x2B, - 0x2B, - 0x2B, - 0x20, - 0x11, - 0x39, - 0x37, - 0x39, - 0x39, - 0x39, - 0x48, - 0x48, - 0x20, - 0x11, - 0x60, - 0x39, - 0x2D, - 0x39, - 0x2B, - 0x20, - 0x3A, - 0x60, - 0x20, - 0x4D, - 0x4D, - 0x20, - 0x2D, - 0x14, - 0x3A, - 0x39, - 0x91, - 0x76, - 0x14, - 0x20, - 0x64, - 0x20, - 0x20, - 0x16, - 0x20, - 0x23, - 0x20, - 0x61, - 0x64, - 0x20, - 0x00, - 0x04, - 0x23, - 0x00, - 0x09, - 0x3A, - 0x48, - 0x2F, - 0x14, - 0x3A, - 0x2D, - 0x2E, - 0x2D, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x6D, - 0x55, - 0x87, - 0x55, - 0x87, - 0x6B, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x6B, - 0x55, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x80, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x00, - 0x2C, - 0x80, - 0x80, - 0x67, - 0x7C, - 0x82, - 0x67, - 0xAB, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0xAA, - 0x95, - 0xAA, - 0xAB, - 0xD0, - 0x94, - 0xBE, - 0xA8, - 0xA8, - 0xBD, - 0xA4, - 0x94, - 0x7C, - 0xC0, - 0x94, - 0x96, - 0x95, - 0xAB, - 0xBD, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xBA, - 0xA8, - 0xBA, - 0x05, - 0x77, - 0x00, - 0x1F, - 0x8D, - 0x63, - 0x77, - 0x77, - 0x74, - 0x63, - 0x74, - 0xA7, - 0xD1, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0xA8, - 0x78, - 0xA8, - 0x8E, - 0x72, - 0xBF, - 0xF3, - 0xD2, - 0x4C, - 0x3C, - 0x60, - 0x60, - 0x3C, - 0x4C, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x00, - 0x06, - 0x75, - 0x00, - 0xB8, - 0x4C, - 0x8D, - 0xB8, - 0x4C, - 0x60, - 0x74, - 0x75, - 0x48, - 0x70, - 0x3C, - 0x70, - 0x48, - 0xA7, - 0xA7, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0xBE, - 0x5E, - 0x2D, - 0x21, - 0x07, - 0xC2, - 0x4F, - 0x20, - 0x3A, - 0x3A, - 0x23, - 0x20, - 0x3A, - 0x23, - 0x20, - 0x11, - 0x23, - 0x3A, - 0x23, - 0x20, - 0x10, - 0x20, - 0x3A, - 0x8F, - 0x51, - 0x93, - 0x51, - 0x16, - 0x11, - 0x11, - 0x79, - 0x93, - 0xAF, - 0xDB, - 0xC1, - 0x20, - 0x20, - 0x61, - 0xDB, - 0xC1, - 0xC1, - 0xC1, - 0xE5, - 0xE9, - 0x23, - 0x20, - 0x5F, - 0x61, - 0x20, - 0x60, - 0x76, - 0x23, - 0x23, - 0x14, - 0x48, - 0x48, - 0x48, - 0x14, - 0x39, - 0x48, - 0x2C, - 0x2C, - 0x48, - 0x48, - 0x48, - 0x39, - 0x2C, - 0x6F, - 0x48, - 0x74, - 0x6F, - 0x47, - 0x5E, - 0x6F, - 0x5E, - 0x8B, - 0x5E, - 0x5E, - 0x5B, - 0x5E, - 0x4B, - 0x38, - 0x47, - 0x5B, - 0x5B, - 0x5B, - 0x4B, - 0x6F, - 0x73, - 0x73, - 0x47, - 0x4B, - 0x38, - 0x5E, - 0x5E, - 0x47, - 0x4B, - 0x4B, - 0x77, - 0xDA, - 0x93, - 0x7B, - 0x4B, - 0x39, - 0x4D, - 0x48, - 0x49, - 0x49, - 0x1F, - 0xC1, - 0xDB, - 0xA1, - 0x5F, - 0x09, - 0x61, - 0x3A, - 0x3C, - 0xD9, - 0x4D, - 0x4D, - 0x48, - 0x1F, - 0x20, - 0x20, - 0x2B, - 0x1F, - 0x1F, - 0x20, - 0x10, - 0x2B, - 0x2A, - 0x2B, - 0x2B, - 0x2B, - 0x20, - 0x37, - 0x23, - 0x14, - 0x70, - 0x47, - 0x70, - 0x5D, - 0x2D, - 0x37, - 0x60, - 0x75, - 0x2D, - 0x39, - 0x49, - 0x23, - 0x20, - 0x60, - 0x49, - 0x20, - 0x8F, - 0x4D, - 0x3A, - 0x2D, - 0x2D, - 0x23, - 0x3A, - 0x91, - 0x39, - 0x2D, - 0x60, - 0x61, - 0x04, - 0x20, - 0x00, - 0x04, - 0x23, - 0x23, - 0x64, - 0x3A, - 0x04, - 0x23, - 0x00, - 0x0A, - 0x3A, - 0x39, - 0x2E, - 0x3A, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x2E, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x07, - 0x34, - 0x34, - 0x87, - 0x87, - 0x55, - 0x55, - 0x55, - 0x00, - 0x08, - 0x6B, - 0x00, - 0x0A, - 0x87, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x82, - 0x80, - 0x80, - 0x80, - 0x99, - 0x04, - 0x67, - 0x00, - 0x23, - 0x7C, - 0x7C, - 0x80, - 0x80, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0x96, - 0xBE, - 0xBE, - 0x94, - 0x94, - 0xCE, - 0xA8, - 0xA8, - 0xA8, - 0x96, - 0x96, - 0xA8, - 0x95, - 0x96, - 0x96, - 0x95, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x90, - 0x92, - 0x00, - 0x05, - 0x90, - 0x00, - 0x03, - 0xBD, - 0xD0, - 0x90, - 0x00, - 0x06, - 0x77, - 0x00, - 0x59, - 0x8D, - 0x77, - 0x74, - 0x77, - 0x74, - 0x77, - 0x4B, - 0xA7, - 0xAA, - 0xBE, - 0xBE, - 0xBE, - 0xA8, - 0xA8, - 0x8E, - 0x8E, - 0x8E, - 0x5C, - 0x92, - 0xF3, - 0xEA, - 0x75, - 0x48, - 0x60, - 0x3C, - 0x75, - 0x74, - 0x74, - 0x4B, - 0x75, - 0x4B, - 0x75, - 0x75, - 0x75, - 0x4B, - 0x75, - 0x70, - 0xB8, - 0x8D, - 0x70, - 0x70, - 0x74, - 0x4C, - 0x70, - 0x3C, - 0x48, - 0x70, - 0x48, - 0xA9, - 0x77, - 0x39, - 0x5D, - 0x39, - 0x48, - 0xBC, - 0x5E, - 0x2C, - 0x07, - 0x13, - 0xC0, - 0x4C, - 0x06, - 0x3A, - 0x76, - 0xA3, - 0x61, - 0x76, - 0x5F, - 0x61, - 0x20, - 0x11, - 0x11, - 0x11, - 0x20, - 0x20, - 0x20, - 0x61, - 0x8F, - 0xA3, - 0xA1, - 0x76, - 0xA1, - 0x8F, - 0x4A, - 0x20, - 0x0B, - 0x4A, - 0x23, - 0x16, - 0x00, - 0x05, - 0x20, - 0x00, - 0x7F, - 0x16, - 0x23, - 0x2F, - 0x49, - 0x3A, - 0x09, - 0x20, - 0x5F, - 0x76, - 0x91, - 0x3A, - 0x39, - 0x14, - 0x20, - 0x20, - 0x48, - 0x48, - 0x2D, - 0x3A, - 0x20, - 0x23, - 0x14, - 0x49, - 0x14, - 0x2D, - 0x14, - 0x22, - 0x2C, - 0x39, - 0x60, - 0x2C, - 0x39, - 0x39, - 0x48, - 0x4C, - 0x47, - 0x47, - 0x47, - 0x4B, - 0x5B, - 0x4B, - 0x5B, - 0x21, - 0x4B, - 0x6F, - 0x38, - 0x5B, - 0x38, - 0x5E, - 0x4B, - 0x4B, - 0x38, - 0x47, - 0x4B, - 0x4B, - 0x38, - 0x47, - 0x47, - 0x4B, - 0x47, - 0x7B, - 0xDE, - 0x64, - 0x76, - 0x49, - 0x22, - 0x60, - 0x22, - 0x60, - 0x2D, - 0x61, - 0xDF, - 0xBB, - 0x20, - 0x5F, - 0x39, - 0x2C, - 0x8F, - 0x49, - 0x48, - 0x2A, - 0x20, - 0x10, - 0x10, - 0x20, - 0x11, - 0x11, - 0x2B, - 0x2B, - 0x2B, - 0x37, - 0x2B, - 0x1F, - 0x11, - 0x20, - 0x2D, - 0x2A, - 0x48, - 0x39, - 0x39, - 0x4C, - 0x70, - 0x2D, - 0x39, - 0x74, - 0x39, - 0x49, - 0x39, - 0x23, - 0x20, - 0x2D, - 0x8F, - 0x20, - 0x2F, - 0x49, - 0x39, - 0x4D, - 0x60, - 0x4D, - 0x3A, - 0x60, - 0x64, - 0x23, - 0x2D, - 0x93, - 0x23, - 0x20, - 0x00, - 0x04, - 0x23, - 0x00, - 0x11, - 0x2F, - 0x64, - 0x23, - 0x23, - 0x3A, - 0x3A, - 0x23, - 0x2D, - 0x3C, - 0x2F, - 0x3A, - 0x14, - 0x2F, - 0x2D, - 0x4D, - 0x60, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x6D, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x87, - 0x04, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x06, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x20, - 0x80, - 0x67, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x95, - 0x95, - 0xAA, - 0x95, - 0xAB, - 0xAA, - 0x94, - 0x94, - 0xD0, - 0xA8, - 0xBD, - 0xA8, - 0xBE, - 0xAD, - 0x96, - 0x95, - 0xBD, - 0x96, - 0x96, - 0x95, - 0xBF, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0x05, - 0x90, - 0x00, - 0x04, - 0xBC, - 0x92, - 0x77, - 0xA7, - 0x06, - 0x77, - 0x00, - 0x18, - 0x63, - 0x77, - 0x5E, - 0x63, - 0x74, - 0x63, - 0x74, - 0x77, - 0xAA, - 0x94, - 0x94, - 0xA8, - 0xA8, - 0x8E, - 0x8E, - 0x8C, - 0x8C, - 0x5C, - 0x90, - 0xEA, - 0xED, - 0xAC, - 0x48, - 0x60, - 0x05, - 0x74, - 0x00, - 0x3A, - 0x75, - 0x75, - 0x4B, - 0x75, - 0x74, - 0x75, - 0x4C, - 0xA2, - 0x8D, - 0x60, - 0x4C, - 0x8D, - 0x60, - 0x70, - 0x70, - 0x48, - 0x4C, - 0x70, - 0xBF, - 0xA6, - 0x39, - 0x5D, - 0x39, - 0x70, - 0xCD, - 0x75, - 0x39, - 0x12, - 0x07, - 0xDA, - 0x3C, - 0x10, - 0x20, - 0x49, - 0x8F, - 0x61, - 0x8F, - 0x49, - 0x61, - 0x23, - 0x20, - 0x20, - 0x11, - 0x11, - 0x10, - 0x11, - 0x20, - 0xA6, - 0x91, - 0xA6, - 0x8F, - 0xA6, - 0x8F, - 0x8F, - 0x5F, - 0x11, - 0x20, - 0x0B, - 0x04, - 0x20, - 0x00, - 0x58, - 0x11, - 0x20, - 0x20, - 0x11, - 0x20, - 0x11, - 0x09, - 0x20, - 0x09, - 0x09, - 0x23, - 0x20, - 0x20, - 0x2C, - 0x2D, - 0x20, - 0x11, - 0x09, - 0x2D, - 0x39, - 0x39, - 0x2D, - 0x14, - 0x2D, - 0x39, - 0x39, - 0x39, - 0x14, - 0x39, - 0x48, - 0x47, - 0x47, - 0x4C, - 0x6F, - 0x48, - 0x4B, - 0x48, - 0x4C, - 0x48, - 0x48, - 0x4B, - 0x47, - 0x5B, - 0x6F, - 0x47, - 0x47, - 0x38, - 0x4B, - 0x47, - 0x4B, - 0x6F, - 0x5B, - 0x5E, - 0x47, - 0x6F, - 0x4B, - 0x4B, - 0x4B, - 0x47, - 0x47, - 0x4C, - 0x39, - 0x70, - 0x48, - 0xAC, - 0xE9, - 0x49, - 0x71, - 0x39, - 0x22, - 0x5F, - 0x23, - 0x2D, - 0x65, - 0xC1, - 0x79, - 0x3A, - 0x49, - 0x3A, - 0x23, - 0xA6, - 0x3C, - 0x20, - 0x10, - 0x10, - 0x2B, - 0x11, - 0x11, - 0x04, - 0x2B, - 0x00, - 0x33, - 0x2A, - 0x1F, - 0x20, - 0x20, - 0x48, - 0x1F, - 0x2D, - 0x48, - 0x47, - 0x4B, - 0x5D, - 0x2D, - 0x2D, - 0x4C, - 0x60, - 0x2A, - 0x39, - 0x2D, - 0x20, - 0x23, - 0x60, - 0x2D, - 0x3A, - 0x75, - 0x39, - 0x3C, - 0x4D, - 0x3C, - 0x4D, - 0x60, - 0x91, - 0x2D, - 0x14, - 0x91, - 0x8F, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x39, - 0x2D, - 0xC1, - 0x4D, - 0x22, - 0x39, - 0x39, - 0x2E, - 0x39, - 0x3C, - 0x39, - 0x3A, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x03, - 0x60, - 0x75, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x6D, - 0x34, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x07, - 0x6B, - 0x00, - 0x0E, - 0x55, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x04, - 0x82, - 0x01, - 0x80, - 0x04, - 0x96, - 0x00, - 0x15, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x96, - 0xAA, - 0xBE, - 0x94, - 0x94, - 0x94, - 0xBC, - 0xA8, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0xBF, - 0x94, - 0x96, - 0xAB, - 0x95, - 0x00, - 0x05, - 0x92, - 0x00, - 0x07, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xA5, - 0xBE, - 0x92, - 0x00, - 0x04, - 0x90, - 0x00, - 0x03, - 0xA7, - 0x77, - 0xA7, - 0x00, - 0x08, - 0x77, - 0x00, - 0x4E, - 0x74, - 0xA7, - 0x94, - 0xBE, - 0x94, - 0xA8, - 0xA8, - 0x8E, - 0x8E, - 0x72, - 0x72, - 0x72, - 0x73, - 0xDC, - 0xF4, - 0xDE, - 0x77, - 0x6F, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x75, - 0x75, - 0x75, - 0x6F, - 0x75, - 0x75, - 0xA5, - 0x74, - 0x70, - 0x75, - 0x8D, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0xBD, - 0x63, - 0x39, - 0x5D, - 0x5D, - 0x75, - 0xCD, - 0x70, - 0x2D, - 0x2B, - 0x2C, - 0xD1, - 0x2E, - 0x20, - 0x20, - 0x5F, - 0x5F, - 0x3A, - 0x3A, - 0x5F, - 0x3A, - 0x3A, - 0x23, - 0x20, - 0x20, - 0x3A, - 0x14, - 0x20, - 0x11, - 0x61, - 0x76, - 0xD9, - 0x93, - 0x93, - 0xA1, - 0xA7, - 0x5F, - 0x20, - 0x06, - 0x11, - 0x00, - 0x03, - 0x20, - 0x20, - 0x11, - 0x00, - 0x06, - 0x20, - 0x00, - 0x4F, - 0x23, - 0x3A, - 0x11, - 0x2D, - 0x2C, - 0x49, - 0x14, - 0x20, - 0x14, - 0x10, - 0x23, - 0x2A, - 0x39, - 0x2A, - 0x22, - 0x2D, - 0x5D, - 0x48, - 0x2D, - 0x4D, - 0x48, - 0x75, - 0x48, - 0x74, - 0x4B, - 0x6F, - 0x75, - 0x47, - 0x4B, - 0x48, - 0x75, - 0x5D, - 0x2D, - 0x4C, - 0x48, - 0x47, - 0x13, - 0x48, - 0x47, - 0x47, - 0x4B, - 0x47, - 0x4B, - 0x5E, - 0x4B, - 0x4B, - 0x48, - 0x75, - 0x4C, - 0x22, - 0x60, - 0x39, - 0xD3, - 0x51, - 0x2B, - 0x5D, - 0x8D, - 0xC5, - 0x79, - 0x23, - 0x61, - 0x2D, - 0x3A, - 0x5F, - 0x20, - 0x93, - 0xC6, - 0x2D, - 0x24, - 0x20, - 0x39, - 0xA7, - 0x5D, - 0x1F, - 0x20, - 0x2B, - 0x10, - 0x11, - 0x20, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x3A, - 0x2A, - 0x20, - 0x20, - 0x2D, - 0x23, - 0x39, - 0x6F, - 0x48, - 0x5D, - 0x70, - 0x48, - 0x37, - 0x39, - 0x74, - 0x39, - 0x39, - 0x39, - 0x23, - 0x20, - 0x49, - 0x60, - 0x20, - 0x75, - 0x49, - 0x23, - 0x23, - 0x49, - 0x60, - 0x60, - 0x4D, - 0x2D, - 0x3A, - 0x39, - 0x93, - 0x2D, - 0x2D, - 0x39, - 0x39, - 0x2F, - 0x22, - 0x91, - 0x93, - 0x39, - 0x4D, - 0x4D, - 0x4D, - 0x2C, - 0x3C, - 0x4D, - 0x2D, - 0x14, - 0x2D, - 0x2F, - 0x2D, - 0x2F, - 0x4B, - 0x4C, - 0x60, - 0x00, - 0x00, - 0x00, - 0x09, - 0x34, - 0x87, - 0x34, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x00, - 0x05, - 0x6B, - 0x01, - 0x87, - 0x01, - 0x55, - 0x04, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x44, - 0x82, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x80, - 0x82, - 0x67, - 0xAB, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0xAA, - 0x96, - 0x95, - 0xD0, - 0x94, - 0xD0, - 0x94, - 0xA8, - 0x95, - 0x99, - 0xD4, - 0xDE, - 0xD4, - 0x96, - 0xBD, - 0xAB, - 0xAD, - 0xAB, - 0xAB, - 0xAA, - 0xAB, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0xBE, - 0xB9, - 0xA8, - 0xBD, - 0xA4, - 0xB9, - 0xB9, - 0xA5, - 0xB9, - 0xB9, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xBA, - 0x94, - 0xAA, - 0x94, - 0x94, - 0x78, - 0x04, - 0x8E, - 0x00, - 0x49, - 0x72, - 0x73, - 0xBF, - 0xF3, - 0xF4, - 0xD3, - 0x5E, - 0x6F, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x75, - 0x75, - 0x75, - 0xA5, - 0x74, - 0x4C, - 0x6F, - 0x8D, - 0x70, - 0x60, - 0x60, - 0x70, - 0x4C, - 0x70, - 0xBD, - 0x75, - 0x5D, - 0x48, - 0x39, - 0x75, - 0xCD, - 0x5D, - 0x23, - 0x23, - 0x39, - 0xAA, - 0x3A, - 0x23, - 0x20, - 0x3A, - 0x61, - 0x5F, - 0x3A, - 0x61, - 0x3A, - 0x5F, - 0x23, - 0x23, - 0x3A, - 0x4A, - 0x2B, - 0x23, - 0x20, - 0x11, - 0x61, - 0xE9, - 0xDF, - 0xD6, - 0xD5, - 0xC9, - 0x91, - 0x61, - 0x8F, - 0x91, - 0x76, - 0x8F, - 0x61, - 0x17, - 0x11, - 0x00, - 0x08, - 0x20, - 0x00, - 0x4E, - 0x23, - 0x23, - 0x23, - 0x2D, - 0x14, - 0x2D, - 0x23, - 0x39, - 0x44, - 0x14, - 0x10, - 0x23, - 0x14, - 0x2A, - 0x39, - 0x22, - 0x49, - 0x2D, - 0x76, - 0x49, - 0x48, - 0x60, - 0x48, - 0x74, - 0x2C, - 0x4C, - 0x48, - 0x4B, - 0x48, - 0x39, - 0x74, - 0x39, - 0x60, - 0x39, - 0x48, - 0x3C, - 0x2D, - 0x49, - 0x2D, - 0x48, - 0x48, - 0x48, - 0x4C, - 0x2C, - 0x6F, - 0x4C, - 0x39, - 0x60, - 0x14, - 0x5D, - 0x2D, - 0x3A, - 0x91, - 0x93, - 0xB0, - 0xC1, - 0xAC, - 0xE9, - 0x3C, - 0x2D, - 0x49, - 0x2F, - 0xDB, - 0x91, - 0x79, - 0x76, - 0x8F, - 0xDB, - 0x60, - 0x14, - 0x5F, - 0x49, - 0x75, - 0x5D, - 0x2A, - 0x2B, - 0x11, - 0x11, - 0x04, - 0x2B, - 0x00, - 0x3B, - 0x45, - 0x1F, - 0x20, - 0x23, - 0x2A, - 0x2C, - 0x48, - 0x5D, - 0x48, - 0x74, - 0x48, - 0x2D, - 0x39, - 0x74, - 0x5D, - 0x39, - 0x39, - 0x23, - 0x20, - 0x3A, - 0x75, - 0x23, - 0x49, - 0x75, - 0x2D, - 0x23, - 0x23, - 0x23, - 0x2D, - 0x60, - 0x93, - 0x2D, - 0x2D, - 0x93, - 0x4D, - 0x2D, - 0x22, - 0x2D, - 0x39, - 0x39, - 0x3C, - 0xC1, - 0x39, - 0x39, - 0x39, - 0x2C, - 0x4D, - 0x4D, - 0x3C, - 0x2F, - 0x3A, - 0x3A, - 0x2D, - 0x2D, - 0x2D, - 0x60, - 0x74, - 0x75, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x6D, - 0x34, - 0x34, - 0x87, - 0x34, - 0x87, - 0x87, - 0x55, - 0x55, - 0x55, - 0x04, - 0x6B, - 0x00, - 0x04, - 0x55, - 0x55, - 0x85, - 0x6B, - 0x04, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x04, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x2D, - 0x80, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0xAA, - 0x96, - 0x95, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xD0, - 0x7C, - 0x96, - 0x7C, - 0x99, - 0x99, - 0xAB, - 0x94, - 0xAB, - 0x96, - 0xAB, - 0xC3, - 0xAB, - 0xAB, - 0xC2, - 0xAA, - 0xAA, - 0xBE, - 0xBE, - 0xBC, - 0xBC, - 0xBE, - 0xBE, - 0xCD, - 0xA4, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0x00, - 0x05, - 0xA5, - 0x01, - 0xBA, - 0x01, - 0xA5, - 0x04, - 0x90, - 0x00, - 0xE6, - 0xBD, - 0x94, - 0xBE, - 0xA8, - 0x78, - 0x8E, - 0x72, - 0x8E, - 0x72, - 0x72, - 0x73, - 0x72, - 0xDC, - 0xF4, - 0xF4, - 0xC6, - 0x77, - 0x6F, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x75, - 0x75, - 0x74, - 0xA5, - 0x75, - 0x75, - 0x74, - 0x8D, - 0x60, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x6F, - 0xB9, - 0x48, - 0x2C, - 0x48, - 0x39, - 0x74, - 0xBC, - 0x39, - 0x23, - 0x2B, - 0x48, - 0xC0, - 0x2D, - 0x23, - 0x2B, - 0x23, - 0x3A, - 0x8F, - 0x3A, - 0x3A, - 0x3A, - 0x49, - 0x3A, - 0x3A, - 0x3A, - 0x23, - 0x10, - 0x20, - 0x11, - 0x11, - 0x3A, - 0x76, - 0xA3, - 0xAC, - 0xE1, - 0x50, - 0x8F, - 0x76, - 0x4A, - 0x91, - 0x93, - 0x79, - 0x76, - 0x93, - 0x76, - 0x20, - 0x20, - 0x76, - 0x61, - 0x76, - 0x3A, - 0x71, - 0x0A, - 0x20, - 0x3A, - 0x75, - 0x4D, - 0x76, - 0x3A, - 0x60, - 0x48, - 0x2C, - 0x2C, - 0x2A, - 0x14, - 0x09, - 0x23, - 0x14, - 0x39, - 0x39, - 0x39, - 0x49, - 0x23, - 0x60, - 0x2D, - 0x70, - 0x5D, - 0x2C, - 0x48, - 0x39, - 0x48, - 0x48, - 0x3C, - 0x2C, - 0x48, - 0x3C, - 0x39, - 0x4C, - 0x48, - 0x47, - 0x49, - 0x14, - 0x60, - 0x22, - 0x48, - 0x5D, - 0x22, - 0x4D, - 0x1F, - 0x5D, - 0x22, - 0x2D, - 0x39, - 0x14, - 0x3C, - 0x2C, - 0x39, - 0x79, - 0x30, - 0x91, - 0x4F, - 0x2D, - 0x60, - 0x45, - 0x2F, - 0xC5, - 0x74, - 0xAF, - 0xC1, - 0x93, - 0xE9, - 0x60, - 0x2D, - 0x2D, - 0x5D, - 0x5F, - 0x20, - 0x44, - 0x2A, - 0x11, - 0x10, - 0x2B, - 0x2B, - 0x1F, - 0x37, - 0x2B, - 0x20, - 0x2B, - 0x39, - 0x2D, - 0x5D, - 0x70, - 0x4C, - 0x75, - 0x39, - 0x39, - 0x37, - 0x75, - 0x60, - 0x39, - 0x39, - 0x2D, - 0x23, - 0x23, - 0x8F, - 0x2D, - 0x23, - 0x23, - 0x2D, - 0x60, - 0x4D, - 0x39, - 0x3A, - 0x2D, - 0x93, - 0x39, - 0x23, - 0x8F, - 0x91, - 0x2D, - 0x39, - 0x2F, - 0x39, - 0x2E, - 0x2D, - 0xC1, - 0x4F, - 0x39, - 0x39, - 0x4D, - 0x2E, - 0x4D, - 0x2C, - 0x4D, - 0x2D, - 0x2D, - 0x2D, - 0x2F, - 0x2D, - 0x4D, - 0x4C, - 0x74, - 0x4C, - 0x60, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6D, - 0x6D, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x00, - 0x08, - 0x6B, - 0x01, - 0x87, - 0x05, - 0x85, - 0x08, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x04, - 0x80, - 0x80, - 0x67, - 0x96, - 0x04, - 0xAB, - 0x00, - 0x27, - 0xAA, - 0x96, - 0xAA, - 0x94, - 0xD0, - 0x94, - 0x94, - 0xAB, - 0x7C, - 0x7C, - 0xAD, - 0x96, - 0x96, - 0xDA, - 0xAE, - 0x96, - 0xAB, - 0x95, - 0x95, - 0x94, - 0xBF, - 0x94, - 0xAA, - 0xAA, - 0xC2, - 0xBE, - 0xBD, - 0xB9, - 0x94, - 0xBD, - 0xB9, - 0xA5, - 0x92, - 0xA5, - 0xB9, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x00, - 0x04, - 0x90, - 0x00, - 0x0E, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x77, - 0x77, - 0x90, - 0xBA, - 0x94, - 0x94, - 0xA8, - 0x8E, - 0x8E, - 0x8E, - 0x05, - 0x73, - 0x00, - 0x23, - 0xA5, - 0xE6, - 0xF4, - 0xF5, - 0x6B, - 0xA9, - 0x4B, - 0x6F, - 0x75, - 0x75, - 0x75, - 0x74, - 0xA5, - 0x75, - 0x60, - 0x74, - 0x8D, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x4C, - 0x47, - 0xD4, - 0xD3, - 0xAC, - 0x75, - 0x44, - 0x63, - 0xBC, - 0x39, - 0x23, - 0x23, - 0x48, - 0xC0, - 0x00, - 0x05, - 0x23, - 0x00, - 0x05, - 0x61, - 0x3A, - 0x3A, - 0x61, - 0x61, - 0x00, - 0x04, - 0x3A, - 0x01, - 0x2D, - 0x04, - 0x20, - 0x00, - 0xA3, - 0x4A, - 0xA3, - 0x5D, - 0xC9, - 0xC5, - 0xA0, - 0x61, - 0x49, - 0x20, - 0xC1, - 0xA1, - 0x61, - 0x5F, - 0xE5, - 0x61, - 0x11, - 0x23, - 0x5F, - 0x20, - 0x0B, - 0xBB, - 0x0A, - 0x0A, - 0x14, - 0x75, - 0x3A, - 0xA6, - 0x61, - 0x91, - 0x2C, - 0x2D, - 0x2A, - 0x70, - 0x48, - 0x2D, - 0x49, - 0x23, - 0x2D, - 0x2D, - 0x39, - 0x60, - 0xC1, - 0x8F, - 0x4F, - 0x91, - 0x4D, - 0x60, - 0x2D, - 0x39, - 0x39, - 0x48, - 0x48, - 0x39, - 0x4C, - 0x21, - 0x39, - 0x48, - 0x48, - 0x3C, - 0x2C, - 0x5D, - 0x39, - 0x2C, - 0x47, - 0x2C, - 0x48, - 0x21, - 0x21, - 0x4C, - 0x2C, - 0x48, - 0x14, - 0x3A, - 0x49, - 0x23, - 0x5F, - 0x2B, - 0x14, - 0x49, - 0x1F, - 0x5D, - 0x4C, - 0x22, - 0x3C, - 0x1F, - 0x3A, - 0x2C, - 0x22, - 0x3A, - 0x23, - 0x39, - 0x3C, - 0x37, - 0x2D, - 0x2B, - 0x2B, - 0x37, - 0x11, - 0x20, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x20, - 0x11, - 0x5D, - 0x14, - 0x37, - 0x48, - 0x47, - 0x48, - 0x48, - 0x70, - 0x39, - 0x37, - 0x75, - 0x75, - 0x2D, - 0x39, - 0x3A, - 0x23, - 0x20, - 0x60, - 0x39, - 0x2F, - 0x2D, - 0x23, - 0x23, - 0x23, - 0x2D, - 0x4D, - 0x60, - 0x93, - 0x64, - 0x23, - 0x4D, - 0x93, - 0x2D, - 0x2D, - 0x22, - 0x2D, - 0x39, - 0x2D, - 0x64, - 0x93, - 0x2D, - 0x39, - 0x2E, - 0x39, - 0x4D, - 0x2C, - 0x4D, - 0x3C, - 0x39, - 0x3A, - 0x2D, - 0x2D, - 0x2E, - 0x60, - 0x75, - 0x74, - 0x75, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x56, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x6D, - 0x87, - 0x6D, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6D, - 0x6D, - 0x6B, - 0x55, - 0x04, - 0x6B, - 0x00, - 0x0F, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x67, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x03, - 0x96, - 0x67, - 0x96, - 0x00, - 0x04, - 0xAB, - 0x00, - 0x0B, - 0x52, - 0x99, - 0x67, - 0x99, - 0x67, - 0xAE, - 0xAE, - 0x99, - 0xDE, - 0x7C, - 0x94, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x4D, - 0xD0, - 0xD0, - 0xD0, - 0xBD, - 0x92, - 0xBA, - 0xBD, - 0x92, - 0xBA, - 0xBA, - 0x90, - 0xA5, - 0xBD, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0x90, - 0x77, - 0x90, - 0xB9, - 0xBD, - 0xA5, - 0x92, - 0x90, - 0x77, - 0xBA, - 0xA5, - 0xBD, - 0x94, - 0xBE, - 0xA8, - 0x8E, - 0xA4, - 0x8E, - 0xA5, - 0xA5, - 0x72, - 0xA5, - 0xA2, - 0x73, - 0xA5, - 0xEC, - 0xF5, - 0xF5, - 0xC8, - 0xAD, - 0x90, - 0x74, - 0x6F, - 0x6F, - 0xB7, - 0x4B, - 0x74, - 0x8D, - 0x8D, - 0x75, - 0x6F, - 0x75, - 0x47, - 0x47, - 0xC0, - 0xF5, - 0xF5, - 0xF5, - 0xF4, - 0xAC, - 0x90, - 0xA4, - 0x2C, - 0x2D, - 0x2D, - 0x4C, - 0xC0, - 0x2D, - 0x37, - 0x00, - 0x04, - 0x2D, - 0x00, - 0xB0, - 0x61, - 0x2D, - 0x49, - 0x2D, - 0x3A, - 0x14, - 0x2D, - 0x23, - 0x39, - 0x23, - 0x2B, - 0x23, - 0x2D, - 0x23, - 0x8F, - 0x60, - 0xC1, - 0xE0, - 0xC1, - 0x71, - 0x8F, - 0x20, - 0x64, - 0x93, - 0x65, - 0x8F, - 0xDB, - 0x49, - 0x20, - 0x20, - 0x61, - 0x49, - 0x71, - 0xBB, - 0x5F, - 0x0A, - 0x14, - 0x14, - 0x09, - 0x49, - 0x76, - 0x22, - 0x22, - 0x2C, - 0x39, - 0x2C, - 0x2C, - 0x36, - 0x39, - 0x39, - 0x39, - 0x09, - 0x39, - 0x48, - 0x97, - 0x93, - 0xD2, - 0xC1, - 0xC1, - 0x64, - 0x2A, - 0x39, - 0x22, - 0x2C, - 0x22, - 0x48, - 0x48, - 0x39, - 0x39, - 0x22, - 0x4C, - 0x48, - 0x47, - 0x70, - 0x14, - 0x60, - 0x2C, - 0x48, - 0x3C, - 0x2D, - 0x4C, - 0x2D, - 0x48, - 0x48, - 0x22, - 0x49, - 0x14, - 0x2D, - 0x49, - 0x14, - 0x39, - 0x47, - 0x48, - 0x48, - 0x2A, - 0x2C, - 0x48, - 0x2C, - 0x4D, - 0x48, - 0x48, - 0x39, - 0x48, - 0x48, - 0x39, - 0x2C, - 0x5D, - 0x2C, - 0x2A, - 0x08, - 0x08, - 0x2B, - 0x37, - 0x2A, - 0x37, - 0x10, - 0x20, - 0x39, - 0x2C, - 0x2C, - 0x47, - 0x48, - 0x70, - 0x6F, - 0x74, - 0x39, - 0x39, - 0x75, - 0x74, - 0x5D, - 0x48, - 0x39, - 0x14, - 0x23, - 0x4D, - 0x60, - 0x60, - 0x75, - 0x3C, - 0x60, - 0x4D, - 0x2D, - 0x2D, - 0x2D, - 0x60, - 0x8D, - 0xA2, - 0x4B, - 0x93, - 0x60, - 0x39, - 0x39, - 0x4D, - 0x3C, - 0x2C, - 0x60, - 0xA9, - 0x3C, - 0x3C, - 0x60, - 0x3C, - 0x60, - 0x60, - 0x70, - 0x4C, - 0x60, - 0x4C, - 0x4D, - 0x39, - 0x4D, - 0x75, - 0x4B, - 0x74, - 0x90, - 0xB9, - 0x91, - 0x00, - 0x00, - 0x01, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x09, - 0x34, - 0x6D, - 0x87, - 0x34, - 0x87, - 0x55, - 0x55, - 0x8A, - 0x8A, - 0x00, - 0x07, - 0x6B, - 0x01, - 0x85, - 0x01, - 0x6B, - 0x05, - 0x85, - 0x06, - 0x6A, - 0x00, - 0x67, - 0x82, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x67, - 0x55, - 0x99, - 0xAB, - 0xAA, - 0xAB, - 0x67, - 0x80, - 0x99, - 0x67, - 0x67, - 0x96, - 0xAA, - 0x7C, - 0x99, - 0x99, - 0xAB, - 0x94, - 0x94, - 0xBD, - 0x94, - 0xBD, - 0xBD, - 0xC0, - 0xAA, - 0xC0, - 0xBD, - 0x92, - 0xD1, - 0xC2, - 0x92, - 0xBA, - 0xBA, - 0x90, - 0xA9, - 0x92, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0x77, - 0x90, - 0xBD, - 0x92, - 0x92, - 0xBA, - 0x77, - 0x77, - 0xBA, - 0xBA, - 0xA5, - 0x92, - 0xA8, - 0xA8, - 0xCF, - 0xA8, - 0x72, - 0xA5, - 0x72, - 0x90, - 0x72, - 0xA5, - 0xA2, - 0x73, - 0x90, - 0xD2, - 0xED, - 0xF5, - 0xF4, - 0xED, - 0xC6, - 0xD2, - 0xC0, - 0x5E, - 0x4B, - 0xA2, - 0x5E, - 0x6F, - 0x74, - 0x62, - 0xC0, - 0xEA, - 0xF4, - 0xEF, - 0xDA, - 0xE6, - 0xD3, - 0xF4, - 0xF3, - 0xE5, - 0x44, - 0x2D, - 0x2D, - 0x75, - 0xA9, - 0x3A, - 0x00, - 0x05, - 0x2D, - 0x00, - 0xB0, - 0x4D, - 0x4D, - 0x8F, - 0x4D, - 0x76, - 0x49, - 0x61, - 0x2D, - 0x21, - 0x22, - 0x3A, - 0x3A, - 0x23, - 0x23, - 0x2B, - 0xC1, - 0xD4, - 0xD6, - 0xDF, - 0xA0, - 0x76, - 0x49, - 0x3A, - 0xD9, - 0x76, - 0x2F, - 0x71, - 0xC1, - 0x2F, - 0x20, - 0x23, - 0x61, - 0x71, - 0x0B, - 0xBB, - 0x2A, - 0x21, - 0x23, - 0x23, - 0x20, - 0xA6, - 0x60, - 0x2D, - 0x22, - 0x22, - 0x2A, - 0x39, - 0x47, - 0x2C, - 0x22, - 0x2D, - 0x39, - 0x23, - 0x3A, - 0x39, - 0x22, - 0xAC, - 0x8F, - 0x5D, - 0x3A, - 0x39, - 0x49, - 0x22, - 0x38, - 0x2C, - 0x39, - 0x2C, - 0x48, - 0x48, - 0x14, - 0x48, - 0x22, - 0x39, - 0x22, - 0x14, - 0x39, - 0x2C, - 0x47, - 0x48, - 0x21, - 0x47, - 0x2C, - 0x48, - 0x21, - 0x47, - 0x48, - 0x39, - 0x48, - 0x2A, - 0x2C, - 0x4B, - 0x47, - 0x48, - 0x14, - 0x2D, - 0x2C, - 0x2C, - 0x60, - 0x48, - 0x2D, - 0x49, - 0x2D, - 0x48, - 0x39, - 0x37, - 0x4C, - 0x48, - 0x37, - 0x1F, - 0x11, - 0x11, - 0x20, - 0x2B, - 0x2B, - 0x20, - 0x2B, - 0x5D, - 0x23, - 0x2C, - 0x47, - 0x39, - 0x39, - 0x75, - 0x70, - 0x39, - 0x44, - 0x4C, - 0x74, - 0x5D, - 0x5D, - 0x39, - 0x23, - 0x23, - 0x39, - 0x8F, - 0x4D, - 0x76, - 0x23, - 0x75, - 0x60, - 0x75, - 0x60, - 0x3C, - 0x48, - 0x70, - 0x75, - 0xA2, - 0xD0, - 0x77, - 0x70, - 0x48, - 0x4D, - 0x39, - 0x39, - 0x4D, - 0xC1, - 0x4F, - 0x48, - 0x3C, - 0x48, - 0x3C, - 0x3C, - 0x3C, - 0x60, - 0x60, - 0x4C, - 0x4C, - 0x60, - 0x39, - 0x4C, - 0x4B, - 0x74, - 0x4B, - 0x90, - 0xA5, - 0x75, - 0x00, - 0x00, - 0x00, - 0x12, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x6D, - 0x56, - 0x85, - 0x6B, - 0x05, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x03, - 0x9B, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x00, - 0x1A, - 0x80, - 0x82, - 0x80, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x85, - 0x67, - 0x96, - 0x96, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0x98, - 0x7C, - 0x94, - 0x95, - 0x96, - 0xAD, - 0xAB, - 0xB9, - 0xB9, - 0xB9, - 0x05, - 0xA5, - 0x00, - 0x0D, - 0xBA, - 0x92, - 0xA5, - 0x90, - 0xBF, - 0xBE, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA5, - 0x90, - 0x00, - 0x05, - 0x77, - 0x00, - 0x21, - 0x74, - 0x77, - 0xBA, - 0xA5, - 0xBA, - 0x90, - 0x77, - 0x74, - 0x90, - 0x90, - 0x90, - 0xB8, - 0x90, - 0x92, - 0xBC, - 0x8E, - 0x72, - 0x72, - 0x62, - 0x73, - 0x73, - 0x72, - 0x73, - 0x73, - 0x8D, - 0x5E, - 0x8B, - 0xA9, - 0xEA, - 0xF3, - 0xF4, - 0xF5, - 0xF5, - 0x00, - 0x04, - 0xED, - 0x00, - 0x16, - 0xE0, - 0xED, - 0xF4, - 0xF4, - 0xF3, - 0xEB, - 0xA9, - 0x74, - 0xD0, - 0xB5, - 0x75, - 0xDE, - 0xF5, - 0xE9, - 0x76, - 0x10, - 0x75, - 0xAC, - 0x2B, - 0x23, - 0x23, - 0x23, - 0x04, - 0x3A, - 0x00, - 0x08, - 0x49, - 0x3A, - 0x5F, - 0x3A, - 0x3A, - 0x23, - 0x2C, - 0x23, - 0x05, - 0x20, - 0x00, - 0xA1, - 0x76, - 0x8F, - 0xC1, - 0x7D, - 0x91, - 0x5F, - 0x8F, - 0x3A, - 0x79, - 0x76, - 0x65, - 0x91, - 0x91, - 0x20, - 0x11, - 0x11, - 0x71, - 0x4A, - 0x20, - 0x4A, - 0x75, - 0x2C, - 0x20, - 0x20, - 0x23, - 0x4D, - 0x4D, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x14, - 0x39, - 0x39, - 0x2D, - 0x23, - 0x3A, - 0x09, - 0x2D, - 0x23, - 0x5F, - 0x39, - 0xDB, - 0x64, - 0x2D, - 0x76, - 0x23, - 0x23, - 0x22, - 0x2D, - 0x2D, - 0x14, - 0x39, - 0x22, - 0x49, - 0x3A, - 0x2C, - 0x39, - 0x22, - 0x5D, - 0x20, - 0x49, - 0x2D, - 0x2D, - 0x39, - 0x14, - 0x22, - 0x22, - 0x2D, - 0x39, - 0x14, - 0x2D, - 0x2D, - 0x14, - 0x76, - 0x2C, - 0x47, - 0x39, - 0x2C, - 0x60, - 0x22, - 0x39, - 0x48, - 0x39, - 0x4D, - 0x2D, - 0x2D, - 0x49, - 0x39, - 0x48, - 0x39, - 0x2B, - 0x2D, - 0x20, - 0x20, - 0x2B, - 0x20, - 0x11, - 0x11, - 0x23, - 0x2D, - 0x20, - 0x2B, - 0x2C, - 0x37, - 0x37, - 0x5D, - 0x75, - 0x39, - 0x2D, - 0x60, - 0x75, - 0x39, - 0x39, - 0x2D, - 0x23, - 0x20, - 0x2D, - 0x8F, - 0x39, - 0x8F, - 0x03, - 0x14, - 0x23, - 0x2D, - 0x4D, - 0x60, - 0x91, - 0xA6, - 0x63, - 0x47, - 0xA9, - 0x93, - 0x70, - 0x75, - 0x75, - 0x75, - 0x3C, - 0x39, - 0x93, - 0x64, - 0x22, - 0x4D, - 0x39, - 0x4D, - 0x2E, - 0x5D, - 0x3C, - 0x5D, - 0x3C, - 0x4D, - 0x3C, - 0x3C, - 0x60, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x74, - 0x75, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x6D, - 0x6D, - 0x6D, - 0x34, - 0x87, - 0x55, - 0x55, - 0x87, - 0x55, - 0x55, - 0x04, - 0x6B, - 0x00, - 0x0C, - 0x55, - 0x87, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x05, - 0x6A, - 0x04, - 0x82, - 0x04, - 0x80, - 0x00, - 0x20, - 0x52, - 0x80, - 0x80, - 0x82, - 0x52, - 0x99, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0xAB, - 0xD0, - 0x7C, - 0x7C, - 0x7C, - 0x94, - 0xB9, - 0xBD, - 0xB9, - 0xA8, - 0xB9, - 0x92, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0x90, - 0xA5, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x03, - 0xA7, - 0x90, - 0xA5, - 0x00, - 0x05, - 0x77, - 0x00, - 0x09, - 0xA6, - 0x63, - 0x77, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x74, - 0x63, - 0x00, - 0x04, - 0x90, - 0x00, - 0x32, - 0xA7, - 0x92, - 0xA5, - 0x8E, - 0x72, - 0x62, - 0x72, - 0x62, - 0x90, - 0xA5, - 0x90, - 0xA2, - 0x8D, - 0x8D, - 0x5E, - 0xA2, - 0xBA, - 0xBD, - 0xC0, - 0xD2, - 0xEC, - 0xEA, - 0xED, - 0xF3, - 0xED, - 0xEF, - 0xEC, - 0xBF, - 0x74, - 0xBA, - 0xA9, - 0x70, - 0x75, - 0xCE, - 0x75, - 0x37, - 0x97, - 0xF4, - 0xF3, - 0x7D, - 0xA7, - 0xA9, - 0x2B, - 0x14, - 0x23, - 0x3A, - 0x3A, - 0x2D, - 0x3A, - 0x3A, - 0x04, - 0x23, - 0x00, - 0x03, - 0x2B, - 0x20, - 0x14, - 0x00, - 0x07, - 0x20, - 0x00, - 0x09, - 0x2D, - 0x5D, - 0x37, - 0x5D, - 0x49, - 0x76, - 0x2D, - 0x2B, - 0x10, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x93, - 0x23, - 0x2B, - 0x14, - 0x2D, - 0x5D, - 0x39, - 0x5D, - 0x20, - 0x20, - 0x20, - 0x8F, - 0x60, - 0x75, - 0xA3, - 0x14, - 0x2D, - 0x14, - 0x2B, - 0x14, - 0x4D, - 0x10, - 0x23, - 0x09, - 0x09, - 0x20, - 0x23, - 0x61, - 0x2B, - 0xC1, - 0x91, - 0x49, - 0x39, - 0x2D, - 0x2D, - 0x14, - 0x23, - 0x20, - 0x23, - 0x14, - 0x2D, - 0x39, - 0x09, - 0x49, - 0x2A, - 0x2D, - 0x39, - 0x09, - 0x2D, - 0x22, - 0x2C, - 0x2C, - 0x39, - 0x39, - 0x2D, - 0x39, - 0x39, - 0x22, - 0x2C, - 0x2C, - 0x48, - 0x48, - 0x2C, - 0x60, - 0x22, - 0x48, - 0x5D, - 0x22, - 0x2C, - 0x39, - 0x2D, - 0x70, - 0x2C, - 0x76, - 0x49, - 0x2D, - 0x5D, - 0x14, - 0x2D, - 0x2D, - 0x20, - 0x20, - 0x23, - 0x11, - 0x20, - 0x2D, - 0x2D, - 0x2B, - 0x2D, - 0x37, - 0x2C, - 0x2D, - 0x60, - 0x75, - 0x39, - 0x2D, - 0x70, - 0x75, - 0x39, - 0x39, - 0x45, - 0x23, - 0x20, - 0x49, - 0x60, - 0x39, - 0x8F, - 0x3C, - 0x09, - 0x09, - 0x2D, - 0x49, - 0x2D, - 0x93, - 0x75, - 0x93, - 0xA7, - 0x93, - 0xA9, - 0x70, - 0x75, - 0x4C, - 0x75, - 0x75, - 0x75, - 0xA9, - 0x7B, - 0x48, - 0x4D, - 0x39, - 0x39, - 0x4D, - 0x2C, - 0x3C, - 0x4D, - 0x3C, - 0x48, - 0x3C, - 0x3C, - 0x75, - 0x77, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x74, - 0x75, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x6D, - 0x34, - 0x6D, - 0x87, - 0x34, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x55, - 0x87, - 0x85, - 0x6B, - 0x6B, - 0x00, - 0x05, - 0x85, - 0x00, - 0x08, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x23, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x82, - 0x52, - 0x67, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x98, - 0x94, - 0x96, - 0x7C, - 0x7C, - 0xAB, - 0xB9, - 0xA4, - 0xBD, - 0xBD, - 0x92, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0x90, - 0x92, - 0xA5, - 0x92, - 0x00, - 0x04, - 0x90, - 0x00, - 0x04, - 0xA7, - 0x77, - 0xA5, - 0x90, - 0x06, - 0x77, - 0x00, - 0x39, - 0x74, - 0x90, - 0xA5, - 0xBA, - 0x90, - 0x90, - 0x74, - 0x77, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xA5, - 0x72, - 0x73, - 0x73, - 0x73, - 0x8E, - 0xA4, - 0xB9, - 0xA5, - 0xA5, - 0xA2, - 0x90, - 0x4B, - 0x74, - 0x74, - 0x6F, - 0x6F, - 0x6F, - 0x74, - 0x74, - 0x74, - 0x6F, - 0xB5, - 0x75, - 0x6F, - 0x75, - 0xA6, - 0xBF, - 0xA7, - 0xE8, - 0xA6, - 0x49, - 0x37, - 0xAC, - 0xEC, - 0xF4, - 0xF4, - 0xAF, - 0x2B, - 0x14, - 0x2D, - 0x49, - 0x00, - 0x04, - 0x3A, - 0x00, - 0x91, - 0x23, - 0x3A, - 0x3A, - 0x3A, - 0x23, - 0x23, - 0x37, - 0x23, - 0x20, - 0x23, - 0x23, - 0x20, - 0x20, - 0x20, - 0x4D, - 0x4D, - 0x76, - 0x4D, - 0x60, - 0x5D, - 0x4D, - 0x49, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x14, - 0x23, - 0x14, - 0x23, - 0x2B, - 0x09, - 0x23, - 0x09, - 0x20, - 0x11, - 0x23, - 0x2D, - 0x14, - 0x2D, - 0x2D, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x2B, - 0x39, - 0x23, - 0x5F, - 0x20, - 0x23, - 0x09, - 0x23, - 0x23, - 0x65, - 0xAC, - 0xC1, - 0x79, - 0x20, - 0x4D, - 0x2D, - 0x2C, - 0x2C, - 0x14, - 0x3A, - 0x11, - 0x4A, - 0x20, - 0x23, - 0x4A, - 0x14, - 0x39, - 0x14, - 0x2D, - 0x14, - 0x39, - 0x4C, - 0x2C, - 0x48, - 0x2C, - 0x2C, - 0x48, - 0x22, - 0x48, - 0x22, - 0x22, - 0x5D, - 0x22, - 0x5D, - 0x22, - 0x49, - 0x39, - 0x2D, - 0x39, - 0x47, - 0x39, - 0x3C, - 0x22, - 0x5D, - 0x4D, - 0x14, - 0x49, - 0x2D, - 0x2D, - 0x71, - 0x20, - 0x11, - 0x11, - 0x20, - 0x37, - 0x2D, - 0x2B, - 0x2D, - 0x2A, - 0x2D, - 0x2D, - 0x48, - 0x75, - 0x70, - 0x2D, - 0x39, - 0x75, - 0x75, - 0x39, - 0x39, - 0x23, - 0x23, - 0x20, - 0x39, - 0x60, - 0x2E, - 0x60, - 0x2D, - 0x60, - 0x2C, - 0x4C, - 0x74, - 0x8F, - 0x63, - 0x75, - 0x63, - 0x93, - 0x91, - 0xA9, - 0x6F, - 0x00, - 0x04, - 0x75, - 0x00, - 0x19, - 0x70, - 0xA9, - 0xA9, - 0x75, - 0x74, - 0x75, - 0x4C, - 0x3C, - 0x4D, - 0x4D, - 0x4D, - 0x48, - 0x3C, - 0x3C, - 0x3C, - 0x75, - 0x77, - 0x77, - 0x74, - 0x75, - 0x75, - 0x75, - 0x63, - 0x75, - 0x4F, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x15, - 0x34, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x55, - 0x55, - 0x6B, - 0x87, - 0x34, - 0x6B, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x07, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x00, - 0x06, - 0x80, - 0x00, - 0x1D, - 0x82, - 0x80, - 0x52, - 0x99, - 0x67, - 0x67, - 0xAE, - 0x67, - 0xAB, - 0xAA, - 0x98, - 0x7C, - 0x98, - 0xBE, - 0xA4, - 0xBD, - 0xA4, - 0xB9, - 0xBD, - 0xA4, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0x92, - 0x00, - 0x05, - 0x90, - 0x00, - 0x11, - 0xA7, - 0x90, - 0xA5, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x77, - 0x74, - 0x00, - 0x04, - 0x90, - 0x00, - 0x10, - 0xBA, - 0xA7, - 0x8D, - 0xA7, - 0x90, - 0x90, - 0x90, - 0x73, - 0x90, - 0xA5, - 0x8E, - 0xB7, - 0xA5, - 0xA5, - 0xB7, - 0x8D, - 0x04, - 0x74, - 0x00, - 0x03, - 0x4B, - 0x75, - 0x74, - 0x00, - 0x04, - 0x75, - 0x00, - 0x16, - 0x74, - 0x74, - 0x70, - 0x75, - 0x74, - 0x63, - 0x4C, - 0x60, - 0x49, - 0x2D, - 0x70, - 0xDB, - 0xDE, - 0xF4, - 0xDE, - 0x49, - 0x2B, - 0x49, - 0x3A, - 0x2D, - 0x3A, - 0x2D, - 0x04, - 0x3A, - 0x00, - 0x17, - 0x23, - 0x23, - 0x2D, - 0x23, - 0x23, - 0x5F, - 0x8F, - 0x61, - 0x8F, - 0x39, - 0x2D, - 0x5D, - 0xA3, - 0x4D, - 0xA3, - 0x4D, - 0x8F, - 0x3A, - 0x20, - 0x20, - 0x11, - 0x11, - 0x11, - 0x00, - 0x07, - 0x20, - 0x01, - 0x09, - 0x01, - 0x20, - 0x04, - 0x2D, - 0x00, - 0x71, - 0x23, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x2D, - 0x2B, - 0x14, - 0x20, - 0x11, - 0x20, - 0x20, - 0x09, - 0x09, - 0x3A, - 0x3A, - 0x4D, - 0x60, - 0x23, - 0x4A, - 0x23, - 0x22, - 0x22, - 0x2D, - 0x2D, - 0x14, - 0x14, - 0x23, - 0x3A, - 0x0B, - 0x24, - 0x23, - 0x09, - 0x2D, - 0x20, - 0x23, - 0x37, - 0x2D, - 0x39, - 0x2C, - 0x2C, - 0x2C, - 0x48, - 0x48, - 0x2D, - 0x22, - 0x2D, - 0x39, - 0x4C, - 0x48, - 0x60, - 0x39, - 0x39, - 0x4D, - 0x2D, - 0x2D, - 0x2D, - 0x45, - 0x4D, - 0x2D, - 0x5D, - 0x5D, - 0x2D, - 0x61, - 0x20, - 0x0B, - 0x11, - 0x2B, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x70, - 0x74, - 0x5D, - 0x2D, - 0x48, - 0x74, - 0x3C, - 0x44, - 0x2D, - 0x23, - 0x23, - 0x2B, - 0x4D, - 0x4D, - 0x60, - 0x75, - 0x3A, - 0x64, - 0x49, - 0x49, - 0x4D, - 0x75, - 0xA7, - 0xA9, - 0x93, - 0xA7, - 0x63, - 0xA9, - 0x75, - 0x74, - 0x4C, - 0x75, - 0x75, - 0x4C, - 0xA7, - 0xAC, - 0x75, - 0x75, - 0x00, - 0x04, - 0x74, - 0x01, - 0x4B, - 0x01, - 0x4C, - 0x04, - 0x3C, - 0x00, - 0x0B, - 0x75, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0x4B, - 0x75, - 0x4B, - 0x74, - 0x4B, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x6D, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x87, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x04, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x05, - 0x6A, - 0x05, - 0x82, - 0x00, - 0x06, - 0x80, - 0x80, - 0x52, - 0x80, - 0x82, - 0x80, - 0x05, - 0x67, - 0x00, - 0x17, - 0x7C, - 0xAA, - 0x7C, - 0x7C, - 0x7C, - 0xAB, - 0xA4, - 0xBD, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0x92, - 0xBA, - 0x00, - 0x05, - 0x90, - 0x00, - 0x03, - 0xA7, - 0xBA, - 0xA5, - 0x00, - 0x05, - 0x77, - 0x00, - 0x1D, - 0x8D, - 0xA6, - 0x90, - 0xA5, - 0xBA, - 0x90, - 0x90, - 0x74, - 0x77, - 0x90, - 0x90, - 0xA7, - 0xBA, - 0x90, - 0xA7, - 0x8D, - 0x77, - 0x90, - 0x90, - 0x90, - 0x73, - 0x90, - 0xCF, - 0xBE, - 0xBC, - 0xBD, - 0xA5, - 0xB7, - 0x5E, - 0x00, - 0x05, - 0x74, - 0x05, - 0x75, - 0x00, - 0x12, - 0x4B, - 0xA3, - 0x75, - 0x74, - 0x75, - 0x70, - 0x70, - 0x4C, - 0x5D, - 0x2D, - 0x2D, - 0x2D, - 0x37, - 0x91, - 0xEC, - 0xD2, - 0x2D, - 0x2D, - 0x05, - 0x3A, - 0x00, - 0x79, - 0x14, - 0x3A, - 0x23, - 0x23, - 0x23, - 0x39, - 0x23, - 0x20, - 0x23, - 0x20, - 0x61, - 0xA3, - 0x39, - 0x37, - 0x39, - 0x8F, - 0xA3, - 0xA6, - 0x76, - 0xA3, - 0x61, - 0x49, - 0x76, - 0xC1, - 0x91, - 0xC1, - 0x79, - 0x79, - 0x20, - 0x20, - 0x20, - 0x5F, - 0x3A, - 0x3A, - 0x2B, - 0x2D, - 0x14, - 0x2D, - 0x2D, - 0x37, - 0x14, - 0x2B, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x2D, - 0x20, - 0x23, - 0x20, - 0x23, - 0x3A, - 0x09, - 0x23, - 0x20, - 0x5F, - 0x20, - 0x4A, - 0x3A, - 0x20, - 0x14, - 0x14, - 0x22, - 0x14, - 0x2D, - 0x2D, - 0x23, - 0x4A, - 0x11, - 0x4A, - 0x20, - 0x20, - 0x24, - 0x20, - 0x14, - 0x23, - 0x14, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x2D, - 0x2D, - 0x2D, - 0x4D, - 0x39, - 0x39, - 0x71, - 0x14, - 0x49, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x39, - 0x2D, - 0x49, - 0x61, - 0x23, - 0x4A, - 0x4A, - 0x11, - 0x4A, - 0x39, - 0x39, - 0x37, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x5D, - 0x75, - 0x48, - 0x2C, - 0x39, - 0x75, - 0x75, - 0x5D, - 0x2D, - 0x00, - 0x04, - 0x23, - 0x00, - 0x30, - 0x60, - 0x4D, - 0x4D, - 0x60, - 0x75, - 0x75, - 0x60, - 0x4D, - 0x2D, - 0x39, - 0xA7, - 0x4C, - 0xA9, - 0xA7, - 0x63, - 0xA9, - 0x70, - 0x4B, - 0x74, - 0x75, - 0x75, - 0x75, - 0xA7, - 0xAC, - 0x4B, - 0x75, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x5E, - 0x74, - 0x74, - 0x74, - 0x75, - 0x60, - 0x75, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x77, - 0x77, - 0x75, - 0x75, - 0x63, - 0x74, - 0x8F, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x0B, - 0x87, - 0x34, - 0x87, - 0x34, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x55, - 0x6D, - 0x00, - 0x04, - 0x6B, - 0x04, - 0x85, - 0x09, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x2C, - 0x80, - 0x82, - 0x80, - 0x80, - 0x80, - 0x82, - 0x80, - 0x52, - 0x67, - 0x99, - 0x67, - 0x99, - 0xAB, - 0xAB, - 0x67, - 0x7C, - 0x7C, - 0xD0, - 0xA8, - 0xA8, - 0xA4, - 0xBD, - 0xA4, - 0xB9, - 0xBD, - 0xBD, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0xBD, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA5, - 0x90, - 0x07, - 0x77, - 0x00, - 0x1B, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0x77, - 0x74, - 0x90, - 0x90, - 0x90, - 0xA5, - 0x90, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x62, - 0x90, - 0xBD, - 0xE6, - 0xE6, - 0xE5, - 0xD1, - 0xBE, - 0x8D, - 0x8D, - 0x00, - 0x04, - 0x74, - 0x05, - 0x75, - 0x00, - 0x43, - 0x74, - 0x74, - 0x75, - 0x6F, - 0xA3, - 0xA3, - 0x75, - 0x75, - 0x70, - 0x5D, - 0x2D, - 0x2D, - 0x2D, - 0x14, - 0x2A, - 0xA9, - 0x8F, - 0x23, - 0x2D, - 0x2D, - 0x3A, - 0x3A, - 0x2D, - 0x3A, - 0x3A, - 0x23, - 0x3A, - 0x3A, - 0x39, - 0x23, - 0x23, - 0x2B, - 0x20, - 0x23, - 0x60, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x75, - 0x60, - 0x8F, - 0x4D, - 0x76, - 0x4D, - 0x49, - 0x8F, - 0xDB, - 0x91, - 0x76, - 0x91, - 0xC1, - 0x4D, - 0x14, - 0x93, - 0xC1, - 0x97, - 0x91, - 0x4D, - 0x2B, - 0x2D, - 0x64, - 0x68, - 0x8F, - 0x65, - 0x4D, - 0x79, - 0x00, - 0x06, - 0x2D, - 0x00, - 0x66, - 0x23, - 0x20, - 0x3A, - 0x23, - 0x3A, - 0x3A, - 0x23, - 0x49, - 0x0A, - 0x4A, - 0x14, - 0x3A, - 0x20, - 0x20, - 0x3A, - 0x2D, - 0x39, - 0x2D, - 0x22, - 0x23, - 0x20, - 0x49, - 0x14, - 0x49, - 0x20, - 0x24, - 0x4A, - 0x20, - 0x3A, - 0x20, - 0x3A, - 0x3A, - 0x3A, - 0x49, - 0x14, - 0x49, - 0x2D, - 0x2D, - 0x5D, - 0x14, - 0x49, - 0x49, - 0x23, - 0x49, - 0x23, - 0x3A, - 0x3A, - 0x23, - 0x4A, - 0x4A, - 0x20, - 0x49, - 0x22, - 0x3A, - 0x39, - 0x48, - 0x48, - 0x5D, - 0x2D, - 0x5A, - 0x39, - 0x4C, - 0x70, - 0x39, - 0x39, - 0x75, - 0x75, - 0x70, - 0x2D, - 0x2B, - 0x23, - 0x23, - 0x20, - 0x49, - 0x60, - 0x4D, - 0x60, - 0x39, - 0x4D, - 0x60, - 0x75, - 0x74, - 0x75, - 0x75, - 0x93, - 0x75, - 0x93, - 0xA6, - 0x93, - 0xA7, - 0x60, - 0x75, - 0x6F, - 0x74, - 0x4C, - 0x6F, - 0x7B, - 0xA9, - 0x75, - 0x75, - 0x74, - 0x4B, - 0x06, - 0x74, - 0x00, - 0x0F, - 0x8D, - 0x77, - 0x74, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x90, - 0x74, - 0x4B, - 0x77, - 0x4B, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x6D, - 0x55, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x6B, - 0x87, - 0x34, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x00, - 0x06, - 0x85, - 0x00, - 0x36, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x6A, - 0x80, - 0x80, - 0x52, - 0x67, - 0x52, - 0x7C, - 0xAA, - 0x67, - 0xAE, - 0x67, - 0xAB, - 0xA8, - 0xBD, - 0xBC, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xB9, - 0xBD, - 0xBD, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0x92, - 0xA5, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA5, - 0x05, - 0x77, - 0x00, - 0x1D, - 0x8D, - 0x63, - 0x90, - 0xA5, - 0xA5, - 0xBA, - 0x90, - 0x74, - 0x77, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xA7, - 0x77, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x77, - 0x8D, - 0xBF, - 0xDC, - 0xA8, - 0xA5, - 0xD1, - 0xCF, - 0xA2, - 0x00, - 0x05, - 0x74, - 0x00, - 0x06, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x74, - 0x74, - 0x07, - 0x75, - 0x00, - 0x83, - 0x60, - 0x71, - 0x22, - 0x2D, - 0x2D, - 0x3A, - 0x2C, - 0x3C, - 0x3A, - 0x2D, - 0x3A, - 0x2D, - 0x2D, - 0x3A, - 0x3A, - 0x14, - 0x3A, - 0x14, - 0x3A, - 0x2D, - 0x3A, - 0x3A, - 0x23, - 0x2B, - 0x3A, - 0x5D, - 0xA6, - 0x39, - 0x2D, - 0x49, - 0x60, - 0x39, - 0x75, - 0x4D, - 0xA3, - 0x5D, - 0x60, - 0x2D, - 0xAC, - 0x91, - 0x65, - 0x8F, - 0xD4, - 0x91, - 0x2D, - 0x2D, - 0x22, - 0x4D, - 0xC1, - 0xDB, - 0x91, - 0x2B, - 0x4F, - 0xDB, - 0xD2, - 0xC6, - 0x91, - 0x97, - 0x2F, - 0x2D, - 0x2D, - 0xC5, - 0xC1, - 0x7D, - 0xC1, - 0x4D, - 0x3A, - 0x20, - 0x3A, - 0x3A, - 0x32, - 0x75, - 0x79, - 0x5F, - 0x39, - 0x49, - 0x11, - 0x4A, - 0x11, - 0x2B, - 0x23, - 0x2B, - 0x2D, - 0x2A, - 0x4A, - 0x23, - 0x2D, - 0x2D, - 0x14, - 0x3A, - 0x23, - 0x49, - 0x23, - 0x49, - 0x71, - 0x23, - 0x61, - 0x4A, - 0x3A, - 0x5F, - 0x20, - 0x5F, - 0x3A, - 0x4A, - 0x61, - 0x09, - 0x49, - 0x4A, - 0x20, - 0x49, - 0x2D, - 0x39, - 0x5D, - 0x23, - 0x49, - 0x49, - 0x2D, - 0x70, - 0x2D, - 0x2D, - 0x48, - 0x48, - 0x48, - 0x4C, - 0x70, - 0x39, - 0x22, - 0x70, - 0x75, - 0x6F, - 0x39, - 0x00, - 0x05, - 0x23, - 0x00, - 0x1B, - 0x60, - 0x4D, - 0x23, - 0x5D, - 0x4D, - 0x4D, - 0x60, - 0x3A, - 0x2D, - 0x60, - 0x63, - 0xA9, - 0xA6, - 0xA7, - 0x93, - 0xA7, - 0x93, - 0x4C, - 0x47, - 0x75, - 0x4B, - 0x74, - 0x75, - 0xC1, - 0xA9, - 0x75, - 0x75, - 0x00, - 0x07, - 0x74, - 0x00, - 0x11, - 0xA6, - 0x5E, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0xA7, - 0x77, - 0x4B, - 0xA6, - 0x74, - 0x8F, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x00, - 0x0A, - 0x34, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x87, - 0x6D, - 0x05, - 0x6B, - 0x00, - 0x0E, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x05, - 0x82, - 0x00, - 0x0E, - 0x80, - 0x80, - 0x82, - 0x80, - 0x80, - 0x67, - 0x80, - 0x67, - 0xAB, - 0x96, - 0x67, - 0x67, - 0x96, - 0xD0, - 0x05, - 0xA8, - 0x00, - 0x0E, - 0xB9, - 0xA8, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xA5, - 0x92, - 0xA5, - 0xBD, - 0x92, - 0x90, - 0xA5, - 0x06, - 0x90, - 0x00, - 0x03, - 0xA7, - 0xA5, - 0x90, - 0x00, - 0x07, - 0x77, - 0x00, - 0x09, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0xA7, - 0x74, - 0x90, - 0x90, - 0x92, - 0x00, - 0x04, - 0x90, - 0x00, - 0x18, - 0xB8, - 0x77, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0xBF, - 0x90, - 0xB7, - 0xC2, - 0xC3, - 0x5E, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x75, - 0x74, - 0x4B, - 0x75, - 0x74, - 0x74, - 0x04, - 0x75, - 0x00, - 0x12, - 0x70, - 0x4C, - 0x75, - 0x70, - 0x4D, - 0x49, - 0x2D, - 0x49, - 0x60, - 0x60, - 0x2D, - 0x2D, - 0x3A, - 0x2D, - 0x2D, - 0x3A, - 0x45, - 0x14, - 0x04, - 0x3A, - 0x00, - 0x91, - 0x39, - 0x3A, - 0x23, - 0x23, - 0x23, - 0x5D, - 0x60, - 0xA3, - 0x39, - 0x2A, - 0x39, - 0x5D, - 0x8F, - 0xA0, - 0x76, - 0x60, - 0x60, - 0xA0, - 0x2D, - 0x4D, - 0xD9, - 0x93, - 0x70, - 0xC1, - 0x91, - 0x2F, - 0x1F, - 0x76, - 0xE5, - 0x7D, - 0x93, - 0xEA, - 0x4F, - 0x37, - 0x1F, - 0x50, - 0xC1, - 0xC1, - 0x39, - 0x2B, - 0x2D, - 0x2D, - 0x76, - 0x2D, - 0x4D, - 0x4D, - 0xC1, - 0x91, - 0x37, - 0x23, - 0xC1, - 0xDF, - 0x7B, - 0xDF, - 0x7B, - 0x77, - 0x2D, - 0x23, - 0x20, - 0x61, - 0x51, - 0x79, - 0x51, - 0x4A, - 0x23, - 0x3A, - 0x11, - 0x2C, - 0x2D, - 0x39, - 0x20, - 0x11, - 0x2D, - 0x14, - 0x60, - 0x39, - 0x70, - 0x75, - 0x39, - 0x8F, - 0x49, - 0x71, - 0x60, - 0x49, - 0xA7, - 0x70, - 0x75, - 0x74, - 0x39, - 0x74, - 0x70, - 0x70, - 0x5D, - 0x39, - 0x48, - 0x49, - 0x23, - 0x3A, - 0x2C, - 0x48, - 0x48, - 0x70, - 0x48, - 0x2D, - 0x39, - 0x39, - 0x70, - 0x75, - 0x70, - 0x2D, - 0x2D, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x39, - 0x60, - 0x2D, - 0x23, - 0x23, - 0x23, - 0x2D, - 0x4D, - 0x60, - 0x4D, - 0x39, - 0x93, - 0xA3, - 0x63, - 0xA9, - 0x63, - 0xA7, - 0x74, - 0x70, - 0x4C, - 0x75, - 0x75, - 0x74, - 0x74, - 0xA9, - 0xA9, - 0x75, - 0x75, - 0x74, - 0x4B, - 0x00, - 0x04, - 0x74, - 0x00, - 0x13, - 0x8D, - 0x74, - 0x74, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xA7, - 0xA7, - 0x90, - 0x90, - 0x77, - 0x90, - 0x77, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x0C, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x6D, - 0x34, - 0x04, - 0x6B, - 0x01, - 0x85, - 0x01, - 0x6B, - 0x05, - 0x85, - 0x00, - 0x03, - 0x6A, - 0x6A, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x04, - 0x80, - 0x00, - 0x21, - 0x6A, - 0x80, - 0x52, - 0x80, - 0x80, - 0x96, - 0xAB, - 0x67, - 0x99, - 0x67, - 0xAA, - 0x94, - 0x94, - 0xBC, - 0xBD, - 0xBC, - 0xA4, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0xBD, - 0xBD, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0x92, - 0xA5, - 0xBA, - 0x90, - 0xBA, - 0x00, - 0x04, - 0x90, - 0x00, - 0x04, - 0xA7, - 0x90, - 0xA5, - 0x90, - 0x04, - 0x77, - 0x00, - 0x1E, - 0x8D, - 0xA6, - 0x77, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x63, - 0x77, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x74, - 0x77, - 0x8D, - 0xA9, - 0xDA, - 0xB7, - 0x8D, - 0x05, - 0x74, - 0x00, - 0x04, - 0x75, - 0x75, - 0x74, - 0x74, - 0x06, - 0x75, - 0x00, - 0x07, - 0x70, - 0x4C, - 0x70, - 0x39, - 0x4D, - 0x4C, - 0x4D, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x7C, - 0x3A, - 0x2D, - 0x2D, - 0x3A, - 0x3A, - 0x14, - 0x23, - 0x23, - 0x39, - 0x3A, - 0x23, - 0x23, - 0x2D, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x2D, - 0x2D, - 0x75, - 0x60, - 0xA3, - 0x4D, - 0xA3, - 0x60, - 0x70, - 0x5D, - 0xD3, - 0xC1, - 0xC1, - 0x91, - 0xEC, - 0x4F, - 0x14, - 0x39, - 0xD2, - 0x8F, - 0x2B, - 0x93, - 0xDB, - 0x2E, - 0x2D, - 0x49, - 0x2B, - 0x65, - 0xC1, - 0x93, - 0x2D, - 0x2D, - 0x2B, - 0x2D, - 0x2D, - 0x49, - 0x91, - 0xDB, - 0x65, - 0x2B, - 0x2E, - 0x23, - 0x2B, - 0x2A, - 0x4C, - 0xE9, - 0x74, - 0x48, - 0x2A, - 0x9A, - 0xC5, - 0x76, - 0x51, - 0xC1, - 0x79, - 0x20, - 0x20, - 0x4A, - 0xC1, - 0xB0, - 0x91, - 0x65, - 0x5A, - 0x2A, - 0x5D, - 0x79, - 0x65, - 0x49, - 0x76, - 0x4C, - 0x2D, - 0x8F, - 0x2D, - 0x75, - 0xA6, - 0x60, - 0xA9, - 0x5D, - 0xA6, - 0xB8, - 0x70, - 0xA7, - 0x60, - 0x39, - 0x47, - 0x48, - 0x23, - 0x3A, - 0x2D, - 0x39, - 0x48, - 0x39, - 0x39, - 0x70, - 0x75, - 0x70, - 0x39, - 0x23, - 0x23, - 0x20, - 0x3A, - 0x20, - 0x23, - 0x4D, - 0x3C, - 0x49, - 0x06, - 0x23, - 0x00, - 0x16, - 0x3A, - 0x39, - 0x60, - 0x75, - 0x4D, - 0x63, - 0xA6, - 0x93, - 0xA7, - 0x75, - 0x70, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x93, - 0xDB, - 0xA6, - 0x75, - 0x75, - 0x74, - 0x4B, - 0x04, - 0x74, - 0x00, - 0x06, - 0x8D, - 0x74, - 0x74, - 0x77, - 0x8D, - 0xA6, - 0x05, - 0x77, - 0x00, - 0x09, - 0xB8, - 0x77, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xA5, - 0x90, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6D, - 0x00, - 0x09, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x6D, - 0x6D, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x08, - 0x85, - 0x85, - 0x85, - 0x6B, - 0x85, - 0x6A, - 0x85, - 0x85, - 0x06, - 0x6A, - 0x05, - 0x82, - 0x00, - 0x25, - 0x80, - 0x80, - 0x6A, - 0x80, - 0x80, - 0x80, - 0x67, - 0xAB, - 0x67, - 0x67, - 0x67, - 0x96, - 0xBE, - 0x94, - 0x94, - 0xBD, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0x92, - 0xA5, - 0xA5, - 0xBD, - 0xBD, - 0x90, - 0x92, - 0x90, - 0x90, - 0x90, - 0xBA, - 0x00, - 0x04, - 0x90, - 0x01, - 0xBA, - 0x01, - 0xA5, - 0x05, - 0x77, - 0x00, - 0x1F, - 0x8D, - 0x77, - 0x90, - 0xA5, - 0x92, - 0xBA, - 0x90, - 0x74, - 0x90, - 0xBD, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x5E, - 0x74, - 0x74, - 0x77, - 0x77, - 0x77, - 0x5E, - 0x00, - 0x04, - 0x74, - 0x00, - 0x03, - 0x4B, - 0x74, - 0x74, - 0x00, - 0x04, - 0x75, - 0x00, - 0x0B, - 0x74, - 0x4C, - 0x75, - 0x75, - 0x74, - 0x75, - 0x60, - 0x39, - 0x2D, - 0x2D, - 0x39, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x0A, - 0x3A, - 0x3A, - 0x2B, - 0x3A, - 0x23, - 0x14, - 0x39, - 0x14, - 0x23, - 0x2D, - 0x05, - 0x39, - 0x00, - 0x59, - 0x5A, - 0x39, - 0x2A, - 0x5D, - 0x5D, - 0x8F, - 0x70, - 0x75, - 0x4D, - 0x8F, - 0x39, - 0x60, - 0x60, - 0x93, - 0x91, - 0x65, - 0x4D, - 0x49, - 0x2A, - 0x65, - 0x93, - 0x93, - 0x91, - 0xDE, - 0x76, - 0x2D, - 0x5D, - 0x66, - 0x4D, - 0x2D, - 0xC1, - 0x93, - 0x49, - 0x14, - 0x2D, - 0x2B, - 0x93, - 0xC1, - 0xE9, - 0x65, - 0x2B, - 0x49, - 0x2D, - 0xC1, - 0x4F, - 0x76, - 0xB8, - 0xEA, - 0x30, - 0x2A, - 0x7B, - 0xAC, - 0x50, - 0x20, - 0x50, - 0xE9, - 0x49, - 0x4A, - 0x08, - 0x5F, - 0x4A, - 0x49, - 0x91, - 0x65, - 0x50, - 0x20, - 0x65, - 0xAF, - 0xDB, - 0x7D, - 0x2D, - 0x65, - 0xC1, - 0x91, - 0xC5, - 0x61, - 0x93, - 0x91, - 0x75, - 0xA9, - 0x75, - 0x91, - 0x91, - 0x5D, - 0x60, - 0x2D, - 0x23, - 0x23, - 0x2A, - 0x00, - 0x04, - 0x48, - 0x00, - 0x0C, - 0x4C, - 0x5D, - 0x23, - 0x23, - 0x20, - 0x20, - 0x20, - 0x23, - 0x39, - 0x4D, - 0x5D, - 0x39, - 0x06, - 0x23, - 0x00, - 0x17, - 0x3A, - 0x14, - 0x2D, - 0x3A, - 0x2D, - 0x5D, - 0x60, - 0x4F, - 0x91, - 0x63, - 0x4C, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x75, - 0x93, - 0xBF, - 0x77, - 0x75, - 0x4B, - 0x74, - 0x4B, - 0x00, - 0x07, - 0x74, - 0x00, - 0x12, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0xB8, - 0x77, - 0xB8, - 0xA7, - 0x90, - 0xA7, - 0x90, - 0x90, - 0x90, - 0xA5, - 0xBA, - 0xA7, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x0C, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x87, - 0x55, - 0x87, - 0x87, - 0x6B, - 0x34, - 0x6D, - 0x07, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x39, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x82, - 0x80, - 0x6A, - 0x80, - 0x52, - 0x80, - 0x7C, - 0x96, - 0x80, - 0x99, - 0x67, - 0x95, - 0xD0, - 0x94, - 0xBE, - 0x94, - 0xBD, - 0xA8, - 0xCE, - 0xA8, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xB9, - 0x78, - 0xB9, - 0x92, - 0xA5, - 0xBD, - 0x92, - 0xA5, - 0x90, - 0xA5, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA5, - 0x90, - 0x00, - 0x05, - 0x77, - 0x00, - 0x09, - 0xA6, - 0x77, - 0xA5, - 0xBA, - 0xBA, - 0xA5, - 0x77, - 0x74, - 0x92, - 0x00, - 0x04, - 0x90, - 0x00, - 0x0D, - 0xA7, - 0x90, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x77, - 0x74, - 0x8D, - 0x00, - 0x04, - 0x74, - 0x01, - 0x5E, - 0x04, - 0x74, - 0x01, - 0x77, - 0x01, - 0x8D, - 0x07, - 0x74, - 0x00, - 0x06, - 0x75, - 0x75, - 0x60, - 0x39, - 0x2D, - 0x39, - 0x07, - 0x2D, - 0x00, - 0x0B, - 0x76, - 0x60, - 0x8F, - 0x60, - 0x49, - 0x3A, - 0x39, - 0x3A, - 0x2D, - 0x5D, - 0x48, - 0x00, - 0x06, - 0x39, - 0x00, - 0x05, - 0x2D, - 0x2A, - 0x39, - 0x2D, - 0x2D, - 0x00, - 0x04, - 0x39, - 0x00, - 0x5C, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x1F, - 0x2D, - 0x39, - 0x39, - 0x22, - 0x39, - 0x91, - 0x93, - 0x65, - 0x2D, - 0x2D, - 0x49, - 0x65, - 0xC1, - 0xC1, - 0x93, - 0xD2, - 0x4D, - 0x2D, - 0x2D, - 0x65, - 0x65, - 0x37, - 0x65, - 0xC1, - 0x4F, - 0x2B, - 0x2D, - 0xC1, - 0xD3, - 0xC5, - 0xAC, - 0x83, - 0x39, - 0x48, - 0x2A, - 0x65, - 0xDE, - 0xA7, - 0xC6, - 0xDB, - 0x79, - 0x20, - 0x11, - 0x11, - 0x5F, - 0x66, - 0x76, - 0xC5, - 0xDB, - 0xBB, - 0x11, - 0x20, - 0xE9, - 0xC1, - 0x91, - 0xC1, - 0x91, - 0xEA, - 0x66, - 0x76, - 0xA6, - 0x61, - 0x93, - 0x91, - 0x8F, - 0xDA, - 0x60, - 0xA6, - 0x76, - 0x20, - 0x8F, - 0x5D, - 0xA9, - 0x91, - 0x5D, - 0x2D, - 0x3A, - 0x2D, - 0x2D, - 0x3A, - 0x20, - 0x23, - 0x3A, - 0x39, - 0x5D, - 0x3C, - 0x2D, - 0x05, - 0x23, - 0x00, - 0x17, - 0x14, - 0x3A, - 0x14, - 0x3A, - 0x2D, - 0x2D, - 0x3A, - 0x14, - 0x2F, - 0x8F, - 0x8F, - 0x39, - 0x2D, - 0x5D, - 0x75, - 0x75, - 0x75, - 0x91, - 0xA9, - 0xA7, - 0x74, - 0x74, - 0x75, - 0x00, - 0x08, - 0x74, - 0x00, - 0x0B, - 0xA6, - 0x5E, - 0x77, - 0xA6, - 0x77, - 0x77, - 0xB8, - 0x8D, - 0x77, - 0xA7, - 0x77, - 0x00, - 0x06, - 0x90, - 0x00, - 0x03, - 0xA5, - 0x90, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x0B, - 0x34, - 0x6D, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x55, - 0x87, - 0x55, - 0x87, - 0x6D, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x03, - 0x85, - 0x6B, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x08, - 0x6A, - 0x00, - 0x27, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x6A, - 0x80, - 0x80, - 0x99, - 0x96, - 0x67, - 0x67, - 0x52, - 0x96, - 0xC0, - 0x94, - 0x94, - 0x94, - 0xBE, - 0x94, - 0xA8, - 0xA8, - 0xBC, - 0xB9, - 0xA8, - 0xBD, - 0xA4, - 0xBD, - 0xB9, - 0xBD, - 0x92, - 0xA5, - 0xBD, - 0xBD, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0x00, - 0x06, - 0x90, - 0x00, - 0x05, - 0xA7, - 0xBA, - 0xA5, - 0x90, - 0xA7, - 0x00, - 0x05, - 0x77, - 0x00, - 0x08, - 0x90, - 0xA5, - 0xA5, - 0xBA, - 0x90, - 0x63, - 0xBA, - 0xBA, - 0x06, - 0x90, - 0x00, - 0x0B, - 0x77, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x74, - 0x77, - 0x00, - 0x06, - 0x74, - 0x00, - 0x15, - 0x4B, - 0x74, - 0x74, - 0x8D, - 0x75, - 0x74, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x75, - 0x47, - 0x75, - 0x60, - 0x39, - 0x2F, - 0x39, - 0x49, - 0x2D, - 0x49, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x73, - 0xA3, - 0x8F, - 0x61, - 0x2B, - 0x39, - 0x2D, - 0x91, - 0xA3, - 0xA3, - 0x91, - 0x4D, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x60, - 0x5D, - 0x39, - 0x49, - 0x44, - 0x2D, - 0x39, - 0x2D, - 0x2D, - 0x2A, - 0x49, - 0x2D, - 0x22, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x39, - 0x2D, - 0x1F, - 0x2D, - 0x1F, - 0x2D, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x8F, - 0x76, - 0x60, - 0x2D, - 0x39, - 0x2D, - 0x4D, - 0x91, - 0x93, - 0xA6, - 0xC1, - 0x64, - 0x14, - 0x49, - 0x4D, - 0xDF, - 0x65, - 0x65, - 0x64, - 0x5D, - 0x39, - 0x2A, - 0x64, - 0xC5, - 0x91, - 0x44, - 0x65, - 0xAF, - 0x23, - 0x23, - 0x0A, - 0x50, - 0xDB, - 0x2B, - 0x65, - 0x91, - 0xC5, - 0x4A, - 0x4A, - 0x5F, - 0x91, - 0xEC, - 0x8F, - 0x7D, - 0xE9, - 0x49, - 0x76, - 0x5F, - 0xA6, - 0xA9, - 0x8F, - 0xD9, - 0x91, - 0x91, - 0xA7, - 0x2D, - 0x71, - 0x5F, - 0x3A, - 0x61, - 0x4D, - 0x71, - 0x3A, - 0x20, - 0x2D, - 0x39, - 0x2D, - 0x49, - 0x48, - 0x60, - 0x2D, - 0x23, - 0x2D, - 0x00, - 0x06, - 0x23, - 0x00, - 0x18, - 0x3A, - 0x3A, - 0x3A, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x60, - 0x64, - 0x4D, - 0x2D, - 0x2D, - 0x2F, - 0x22, - 0x22, - 0x60, - 0xA7, - 0xA9, - 0x63, - 0x75, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x04, - 0x74, - 0x00, - 0x0F, - 0x8D, - 0x74, - 0x74, - 0x8D, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0x90, - 0xA7, - 0x00, - 0x04, - 0x90, - 0x00, - 0x04, - 0xBA, - 0x92, - 0x90, - 0xA7, - 0x00, - 0x00, - 0x01, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x09, - 0x34, - 0x87, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x30, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x6A, - 0x80, - 0x80, - 0x7C, - 0x7C, - 0x80, - 0x80, - 0x67, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0x94, - 0x94, - 0xBD, - 0xBC, - 0xA8, - 0xA8, - 0xBD, - 0xA4, - 0xBD, - 0xBD, - 0xBD, - 0xB9, - 0xBD, - 0xA5, - 0xBD, - 0xBD, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xBA, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x03, - 0xA7, - 0xA5, - 0x90, - 0x00, - 0x07, - 0x77, - 0x00, - 0x06, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0x77, - 0x77, - 0x06, - 0x90, - 0x00, - 0x0E, - 0xA7, - 0xA7, - 0xA7, - 0xB8, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x74, - 0x8D, - 0x08, - 0x74, - 0x01, - 0x4B, - 0x08, - 0x75, - 0x00, - 0x07, - 0x4C, - 0x60, - 0x5D, - 0x39, - 0x39, - 0x49, - 0x22, - 0x00, - 0x06, - 0x2D, - 0x00, - 0x24, - 0x3A, - 0x8F, - 0x39, - 0x3A, - 0x39, - 0x2D, - 0x75, - 0x93, - 0x39, - 0x91, - 0xA3, - 0x39, - 0x5D, - 0x60, - 0x8F, - 0xA7, - 0x8F, - 0x39, - 0x39, - 0x2D, - 0x39, - 0x5D, - 0x60, - 0x49, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x39, - 0x39, - 0x2D, - 0x2D, - 0x23, - 0x06, - 0x2D, - 0x00, - 0x49, - 0x1F, - 0x2D, - 0x14, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x1F, - 0x49, - 0x2D, - 0x39, - 0x37, - 0x2D, - 0x2D, - 0x2D, - 0x60, - 0x93, - 0xAC, - 0x93, - 0xC1, - 0x2D, - 0x39, - 0x1F, - 0x4F, - 0xC5, - 0x64, - 0x7B, - 0xD9, - 0x8F, - 0x14, - 0x20, - 0x2F, - 0x93, - 0x50, - 0x11, - 0x2F, - 0xC5, - 0x49, - 0x3A, - 0x23, - 0x5F, - 0x91, - 0x8F, - 0xC1, - 0xA9, - 0x76, - 0x3A, - 0x49, - 0xA6, - 0x61, - 0xA6, - 0x8F, - 0x5F, - 0xD9, - 0x5F, - 0x8F, - 0xA3, - 0x20, - 0x23, - 0x20, - 0x23, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x23, - 0x2D, - 0x60, - 0x2D, - 0x39, - 0x39, - 0x2D, - 0x00, - 0x04, - 0x23, - 0x00, - 0x18, - 0x3A, - 0x14, - 0x3A, - 0x14, - 0x2D, - 0x2D, - 0x49, - 0x60, - 0x8F, - 0x4D, - 0x2D, - 0x2D, - 0x2D, - 0x22, - 0x22, - 0x49, - 0x4F, - 0x91, - 0x64, - 0x60, - 0x75, - 0x75, - 0x74, - 0x8D, - 0x08, - 0x74, - 0x00, - 0x03, - 0x77, - 0x77, - 0x8D, - 0x00, - 0x05, - 0x77, - 0x00, - 0x03, - 0xA7, - 0x77, - 0xA7, - 0x00, - 0x07, - 0x90, - 0x00, - 0x03, - 0x92, - 0xBA, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6D, - 0x00, - 0x0D, - 0x34, - 0x6D, - 0x6D, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x6B, - 0x6B, - 0x55, - 0x00, - 0x05, - 0x6B, - 0x04, - 0x85, - 0x08, - 0x6A, - 0x06, - 0x82, - 0x00, - 0x22, - 0x6A, - 0x80, - 0x67, - 0x96, - 0x80, - 0x80, - 0x52, - 0x96, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0x94, - 0xD0, - 0x94, - 0x94, - 0xBC, - 0xBD, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0xBD, - 0xB9, - 0xBD, - 0xA8, - 0xA5, - 0xBD, - 0xBD, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0x07, - 0x90, - 0x00, - 0x03, - 0xA7, - 0xB9, - 0x90, - 0x00, - 0x06, - 0x77, - 0x00, - 0x07, - 0x90, - 0x92, - 0xA5, - 0xBA, - 0xBA, - 0x90, - 0x77, - 0x00, - 0x07, - 0x90, - 0x00, - 0x0B, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x00, - 0x07, - 0x74, - 0x00, - 0x06, - 0x5E, - 0x8D, - 0x75, - 0x75, - 0x75, - 0x4B, - 0x06, - 0x75, - 0x01, - 0x47, - 0x01, - 0x60, - 0x05, - 0x39, - 0x00, - 0x17, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x60, - 0x60, - 0x3A, - 0x39, - 0x39, - 0x60, - 0xA9, - 0xA6, - 0x75, - 0xA3, - 0x48, - 0x5D, - 0x75, - 0xA6, - 0x75, - 0xA7, - 0x91, - 0x00, - 0x04, - 0x39, - 0x00, - 0x12, - 0xA6, - 0x75, - 0x2D, - 0x39, - 0x39, - 0x49, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x39, - 0x2D, - 0x23, - 0x08, - 0x2D, - 0x39, - 0x2D, - 0x22, - 0x04, - 0x2D, - 0x00, - 0x63, - 0x37, - 0x2D, - 0x2D, - 0x2D, - 0x37, - 0x2D, - 0x2A, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x37, - 0x49, - 0x11, - 0x23, - 0x36, - 0x2D, - 0x39, - 0x39, - 0x5D, - 0x37, - 0x2A, - 0x37, - 0x91, - 0x91, - 0x5D, - 0x3A, - 0x23, - 0x3A, - 0x10, - 0x4D, - 0xC1, - 0x8F, - 0xC1, - 0x8F, - 0x49, - 0x23, - 0x23, - 0x8F, - 0x79, - 0xE9, - 0xC1, - 0xC1, - 0x4D, - 0x23, - 0x61, - 0x61, - 0x61, - 0xA6, - 0x4D, - 0xA7, - 0xA3, - 0x60, - 0xA6, - 0x39, - 0x49, - 0x23, - 0x23, - 0x49, - 0x61, - 0x23, - 0x2B, - 0x23, - 0x23, - 0x2B, - 0x23, - 0x39, - 0x23, - 0x2B, - 0x2D, - 0x75, - 0x39, - 0x5D, - 0x48, - 0x2D, - 0x2D, - 0x3A, - 0x2D, - 0x49, - 0x4D, - 0x8F, - 0x4C, - 0x4D, - 0x2D, - 0x2D, - 0x22, - 0x49, - 0x22, - 0x39, - 0x4F, - 0x91, - 0x64, - 0x39, - 0x39, - 0x39, - 0x3C, - 0x75, - 0x8D, - 0x8D, - 0x00, - 0x06, - 0x74, - 0x00, - 0x0C, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0xB8, - 0x77, - 0xB8, - 0x90, - 0xB8, - 0x06, - 0x90, - 0x00, - 0x05, - 0xBA, - 0xBA, - 0xBD, - 0xA5, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x56, - 0x6D, - 0x56, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x0A, - 0x34, - 0x6D, - 0x87, - 0x34, - 0x87, - 0x55, - 0x87, - 0x6D, - 0x6D, - 0x55, - 0x06, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x58, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x6A, - 0x82, - 0x96, - 0x67, - 0x52, - 0x80, - 0x67, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xBD, - 0xBC, - 0xBD, - 0xBC, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0xB9, - 0xBD, - 0xA5, - 0x94, - 0xBD, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0x90, - 0x92, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xBA, - 0xA5, - 0x77, - 0xA7, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xBA, - 0xA5, - 0xA5, - 0xA5, - 0xBA, - 0x63, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0xA6, - 0x77, - 0x77, - 0x5E, - 0x05, - 0x74, - 0x00, - 0x04, - 0x77, - 0x74, - 0x74, - 0x74, - 0x0A, - 0x75, - 0x00, - 0x07, - 0x70, - 0x60, - 0x70, - 0x60, - 0x70, - 0x60, - 0x70, - 0x00, - 0x04, - 0x48, - 0x00, - 0x11, - 0x3C, - 0x75, - 0x60, - 0x70, - 0x48, - 0x5D, - 0x60, - 0xA7, - 0xA6, - 0x5D, - 0x5D, - 0x39, - 0x39, - 0x75, - 0x60, - 0x75, - 0x60, - 0x00, - 0x04, - 0x39, - 0x00, - 0x27, - 0x2D, - 0x75, - 0xA3, - 0x37, - 0x39, - 0x2D, - 0x39, - 0x2D, - 0x60, - 0x39, - 0x39, - 0x2D, - 0x2D, - 0x23, - 0x39, - 0x4D, - 0xA3, - 0x4D, - 0x2D, - 0x2D, - 0x4D, - 0x60, - 0x4D, - 0x5D, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x44, - 0x39, - 0x44, - 0x39, - 0x2D, - 0x20, - 0x3A, - 0x48, - 0x48, - 0x00, - 0x07, - 0x39, - 0x00, - 0x59, - 0x2A, - 0x14, - 0x20, - 0x2D, - 0x2D, - 0x2B, - 0x14, - 0x10, - 0x5F, - 0x2F, - 0x20, - 0x3A, - 0x2A, - 0x49, - 0x39, - 0x4D, - 0x64, - 0x61, - 0x8F, - 0x23, - 0x3A, - 0x4A, - 0x20, - 0x8F, - 0x3A, - 0x76, - 0x93, - 0x76, - 0xA9, - 0x49, - 0x76, - 0x71, - 0x2B, - 0x2D, - 0x3A, - 0x2D, - 0x3A, - 0x14, - 0x3A, - 0x23, - 0x2D, - 0x2D, - 0x39, - 0x75, - 0x4C, - 0x70, - 0x8D, - 0x74, - 0x70, - 0x70, - 0x60, - 0x39, - 0x3C, - 0x60, - 0x75, - 0x60, - 0x39, - 0x2D, - 0x49, - 0x39, - 0x49, - 0x22, - 0x39, - 0x75, - 0x93, - 0x75, - 0x3C, - 0x39, - 0x2C, - 0x4D, - 0x2C, - 0x39, - 0x3C, - 0x75, - 0x8D, - 0x74, - 0x8D, - 0xA6, - 0x8D, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0x62, - 0x00, - 0x08, - 0x90, - 0x00, - 0x07, - 0xBA, - 0x90, - 0x90, - 0xA5, - 0xBD, - 0xA5, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x01, - 0x87, - 0x07, - 0x6D, - 0x00, - 0x0A, - 0x34, - 0x6D, - 0x87, - 0x34, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x6B, - 0x55, - 0x07, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x3C, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x85, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x52, - 0x96, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0x94, - 0xD0, - 0x94, - 0xBC, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xA8, - 0xB9, - 0xBD, - 0xBD, - 0xB9, - 0xA8, - 0xBD, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x90, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0x92, - 0x90, - 0x77, - 0xB8, - 0x04, - 0x77, - 0x00, - 0x08, - 0xA7, - 0xA5, - 0x92, - 0xA5, - 0xBD, - 0x77, - 0x77, - 0xBA, - 0x08, - 0x90, - 0x00, - 0x0B, - 0x77, - 0xB8, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x8D, - 0x00, - 0x04, - 0x74, - 0x00, - 0x06, - 0x8D, - 0x8D, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x07, - 0x75, - 0x00, - 0x08, - 0x4C, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x60, - 0x4C, - 0x04, - 0x60, - 0x00, - 0x08, - 0x70, - 0x4C, - 0x75, - 0x6F, - 0x3C, - 0x48, - 0x5D, - 0x60, - 0x04, - 0x75, - 0x00, - 0x0D, - 0x39, - 0x39, - 0x60, - 0xA3, - 0xA6, - 0x91, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x39, - 0x91, - 0x60, - 0x00, - 0x05, - 0x39, - 0x00, - 0x7D, - 0x60, - 0x5D, - 0x2D, - 0x39, - 0x5D, - 0xA3, - 0x4D, - 0x75, - 0x60, - 0x48, - 0x2D, - 0x39, - 0x39, - 0xA6, - 0x48, - 0x48, - 0x39, - 0x5D, - 0x2C, - 0x39, - 0x39, - 0x39, - 0x48, - 0x39, - 0x2C, - 0x44, - 0x39, - 0x39, - 0x48, - 0x39, - 0x48, - 0x60, - 0x44, - 0x39, - 0x39, - 0x5D, - 0x44, - 0x39, - 0x39, - 0x2D, - 0x14, - 0x2B, - 0x14, - 0x2D, - 0x23, - 0x20, - 0x11, - 0x20, - 0x20, - 0x14, - 0x2C, - 0x39, - 0x39, - 0x37, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x61, - 0x4A, - 0xA3, - 0x49, - 0xA3, - 0x91, - 0x49, - 0xA3, - 0x39, - 0x23, - 0x76, - 0x49, - 0x76, - 0x39, - 0x39, - 0x39, - 0x48, - 0x48, - 0x70, - 0x4C, - 0x70, - 0x75, - 0x75, - 0x77, - 0x75, - 0x75, - 0xA3, - 0x77, - 0xA6, - 0x75, - 0x4D, - 0x2D, - 0x2D, - 0x49, - 0x39, - 0x22, - 0x39, - 0x3C, - 0x75, - 0x91, - 0x64, - 0x4D, - 0x39, - 0x2C, - 0x4D, - 0x2C, - 0x2C, - 0x3C, - 0x4D, - 0x2C, - 0x60, - 0x75, - 0x75, - 0x74, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xB8, - 0x00, - 0x06, - 0x90, - 0x00, - 0x0A, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xBD, - 0xA5, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6B, - 0x6D, - 0x56, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x0D, - 0x34, - 0x6D, - 0x34, - 0x34, - 0x87, - 0x55, - 0x87, - 0x6D, - 0x6D, - 0x6B, - 0x6B, - 0x6B, - 0x55, - 0x00, - 0x04, - 0x6B, - 0x01, - 0x85, - 0x01, - 0x6B, - 0x06, - 0x85, - 0x07, - 0x6A, - 0x00, - 0x2A, - 0x82, - 0x82, - 0x82, - 0x6A, - 0x7C, - 0x80, - 0x80, - 0x80, - 0x67, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xBE, - 0x94, - 0x94, - 0x94, - 0xBD, - 0xBC, - 0xA8, - 0xA8, - 0xA4, - 0xBD, - 0xA4, - 0xBD, - 0xB9, - 0xBD, - 0x94, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0x90, - 0xA5, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x03, - 0xBA, - 0x92, - 0x90, - 0x00, - 0x05, - 0x77, - 0x00, - 0x09, - 0x8D, - 0x90, - 0x92, - 0xA5, - 0xBD, - 0x90, - 0x74, - 0x90, - 0xBA, - 0x00, - 0x06, - 0x90, - 0x00, - 0x18, - 0xA7, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x74, - 0x77, - 0x74, - 0x74, - 0x8D, - 0x8D, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x75, - 0x74, - 0x05, - 0x75, - 0x00, - 0x04, - 0x60, - 0x5D, - 0x4D, - 0x5D, - 0x0A, - 0x39, - 0x00, - 0x6B, - 0x2D, - 0x48, - 0x48, - 0x60, - 0x48, - 0x4D, - 0x48, - 0x60, - 0x60, - 0x4C, - 0x5D, - 0x48, - 0x39, - 0x5D, - 0x93, - 0x75, - 0x39, - 0x39, - 0x4D, - 0xA6, - 0x91, - 0x60, - 0xDB, - 0x75, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x70, - 0x3C, - 0x39, - 0x39, - 0x39, - 0xA3, - 0x5D, - 0x60, - 0x5D, - 0x39, - 0x39, - 0x48, - 0x75, - 0x70, - 0x75, - 0x48, - 0x2C, - 0x2C, - 0x5D, - 0x2C, - 0x48, - 0x48, - 0x60, - 0x5D, - 0x2C, - 0x48, - 0x39, - 0x47, - 0x75, - 0xA9, - 0x91, - 0x93, - 0x3C, - 0x39, - 0x2C, - 0x5D, - 0x5D, - 0x2C, - 0x48, - 0x39, - 0x39, - 0x2D, - 0x2B, - 0x20, - 0x11, - 0x20, - 0x20, - 0x11, - 0x23, - 0x37, - 0x2D, - 0x2D, - 0x2D, - 0x37, - 0x2C, - 0x48, - 0x39, - 0x39, - 0x2D, - 0x2D, - 0x5F, - 0x4A, - 0x3A, - 0x5D, - 0x3A, - 0x61, - 0x5D, - 0x3A, - 0x49, - 0x23, - 0x2D, - 0x49, - 0x2D, - 0x48, - 0x70, - 0x70, - 0x70, - 0x48, - 0x00, - 0x04, - 0x70, - 0x00, - 0x3A, - 0x74, - 0xA7, - 0x74, - 0x4B, - 0x4B, - 0x47, - 0x47, - 0x70, - 0x39, - 0x22, - 0x39, - 0x4D, - 0x60, - 0x91, - 0x64, - 0x60, - 0x39, - 0x39, - 0x2C, - 0x3C, - 0x2C, - 0x2E, - 0x2C, - 0x4D, - 0x5D, - 0x3C, - 0x4D, - 0x4C, - 0x75, - 0x75, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0xB8, - 0x77, - 0x90, - 0x90, - 0x62, - 0xA2, - 0xA7, - 0x90, - 0xA2, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0xA5, - 0xBD, - 0xA5, - 0xA9, - 0x00, - 0x00, - 0x01, - 0x55, - 0x01, - 0x55, - 0x08, - 0x6D, - 0x00, - 0x09, - 0x87, - 0x34, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x55, - 0x6B, - 0x55, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x36, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x67, - 0x82, - 0x80, - 0x80, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0x95, - 0x94, - 0x94, - 0xD0, - 0x94, - 0xBC, - 0xA8, - 0xBD, - 0xA8, - 0xA4, - 0xBD, - 0xA4, - 0xB9, - 0x94, - 0x94, - 0xA5, - 0x92, - 0xB9, - 0xBA, - 0x92, - 0xBA, - 0xBA, - 0x92, - 0x07, - 0x90, - 0x00, - 0x04, - 0xA5, - 0x90, - 0x77, - 0x90, - 0x05, - 0x77, - 0x00, - 0x08, - 0xA5, - 0x92, - 0xBD, - 0xA5, - 0x77, - 0x5E, - 0x90, - 0xA5, - 0x07, - 0x90, - 0x00, - 0x10, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x74, - 0x74, - 0x74, - 0x77, - 0x8D, - 0x05, - 0x74, - 0x01, - 0x4B, - 0x05, - 0x75, - 0x00, - 0x15, - 0x4D, - 0x3C, - 0x70, - 0x3C, - 0x4D, - 0x5D, - 0x5D, - 0x75, - 0x60, - 0x60, - 0x4D, - 0x3C, - 0x39, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x70, - 0x48, - 0x48, - 0x00, - 0x07, - 0x5D, - 0x00, - 0x11, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x39, - 0x5D, - 0x91, - 0x75, - 0x93, - 0x75, - 0x4D, - 0x39, - 0x5D, - 0x60, - 0x60, - 0x60, - 0xA3, - 0x00, - 0x04, - 0x39, - 0x00, - 0x03, - 0x5D, - 0xA3, - 0x3C, - 0x00, - 0x04, - 0x48, - 0x00, - 0x37, - 0xA3, - 0x48, - 0xA3, - 0x70, - 0x5D, - 0x48, - 0x2C, - 0x5D, - 0x39, - 0x70, - 0x48, - 0x48, - 0x39, - 0x2C, - 0x48, - 0xAC, - 0x7B, - 0x2A, - 0x64, - 0xA6, - 0x4C, - 0x39, - 0x39, - 0x39, - 0x48, - 0x70, - 0x39, - 0x39, - 0x2C, - 0x49, - 0x61, - 0x61, - 0x79, - 0x4A, - 0x76, - 0x5F, - 0x2D, - 0x2D, - 0x2D, - 0x47, - 0x2D, - 0x39, - 0x2C, - 0x2D, - 0x39, - 0x3A, - 0x3A, - 0x2C, - 0x23, - 0x2B, - 0x49, - 0x39, - 0x5D, - 0x39, - 0x4D, - 0x00, - 0x05, - 0x5D, - 0x00, - 0x30, - 0x39, - 0x75, - 0x4B, - 0x74, - 0x70, - 0x70, - 0x70, - 0x4C, - 0x70, - 0x4B, - 0x74, - 0x74, - 0x4C, - 0x70, - 0x4C, - 0x75, - 0x75, - 0x74, - 0x64, - 0x60, - 0x75, - 0x60, - 0x2E, - 0x39, - 0x39, - 0x39, - 0x4D, - 0x2C, - 0x4D, - 0x3C, - 0x3C, - 0x4D, - 0x2C, - 0x3C, - 0x3C, - 0x4C, - 0x8D, - 0x90, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x0A, - 0x90, - 0x00, - 0x09, - 0xBA, - 0xBA, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xBD, - 0xB9, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x55, - 0x6B, - 0x87, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x0B, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x87, - 0x55, - 0x6B, - 0x55, - 0x00, - 0x07, - 0x6B, - 0x00, - 0x06, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x85, - 0x06, - 0x6A, - 0x00, - 0x34, - 0x82, - 0x6A, - 0x80, - 0x80, - 0x82, - 0x82, - 0x80, - 0x67, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xAA, - 0x94, - 0x94, - 0x94, - 0xBD, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xBD, - 0xB9, - 0xBD, - 0x94, - 0xB9, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x90, - 0x92, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xA7, - 0xB9, - 0xBA, - 0x77, - 0x77, - 0x90, - 0x04, - 0x77, - 0x00, - 0x08, - 0x90, - 0xB9, - 0xBD, - 0xA5, - 0xBA, - 0x63, - 0x77, - 0xBA, - 0x06, - 0x90, - 0x00, - 0x11, - 0xA7, - 0x90, - 0x77, - 0xA7, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x74, - 0x77, - 0x74, - 0xB8, - 0x8D, - 0x00, - 0x07, - 0x74, - 0x00, - 0x25, - 0x75, - 0x75, - 0x74, - 0x3C, - 0x48, - 0x75, - 0x75, - 0x6F, - 0x75, - 0x75, - 0x75, - 0x74, - 0x74, - 0x77, - 0x75, - 0xA6, - 0x75, - 0x70, - 0x60, - 0x48, - 0x4A, - 0x20, - 0x39, - 0x60, - 0x48, - 0x3C, - 0x48, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x2C, - 0x5D, - 0x5D, - 0x5D, - 0x00, - 0x08, - 0x39, - 0x00, - 0x05, - 0x5D, - 0x48, - 0x48, - 0x5D, - 0x5D, - 0x00, - 0x04, - 0x39, - 0x00, - 0x3D, - 0x5D, - 0x75, - 0x75, - 0x48, - 0x48, - 0x48, - 0x74, - 0x48, - 0x60, - 0x5D, - 0x60, - 0x5D, - 0x39, - 0x39, - 0x39, - 0x22, - 0x5D, - 0x60, - 0x39, - 0x39, - 0x44, - 0x93, - 0x93, - 0x93, - 0x5D, - 0xA9, - 0xC1, - 0x37, - 0x39, - 0x2D, - 0x39, - 0x39, - 0x60, - 0x48, - 0x2D, - 0x23, - 0x20, - 0x93, - 0x93, - 0x61, - 0x76, - 0x5F, - 0x65, - 0x3A, - 0x2D, - 0x60, - 0x8F, - 0x8F, - 0x2D, - 0x49, - 0x60, - 0x48, - 0x49, - 0x2D, - 0x5D, - 0x0B, - 0x23, - 0x3A, - 0x23, - 0x3A, - 0x3A, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x34, - 0x3A, - 0x3A, - 0x39, - 0x60, - 0x75, - 0x60, - 0x48, - 0x48, - 0x60, - 0x6F, - 0x70, - 0x75, - 0x74, - 0x74, - 0xA6, - 0x77, - 0x74, - 0x63, - 0x74, - 0x48, - 0x2D, - 0x2D, - 0x39, - 0x39, - 0x2E, - 0x39, - 0x39, - 0x2E, - 0x39, - 0x39, - 0x39, - 0x3C, - 0x3C, - 0x75, - 0x74, - 0x74, - 0x8D, - 0x77, - 0x74, - 0x5E, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x90, - 0x77, - 0xA7, - 0xB8, - 0x05, - 0x90, - 0x00, - 0x0A, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0xA5, - 0x92, - 0xA5, - 0xBD, - 0x92, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x05, - 0x87, - 0x55, - 0x6B, - 0x6D, - 0x56, - 0x00, - 0x06, - 0x6D, - 0x00, - 0x50, - 0x87, - 0x6D, - 0x55, - 0x6D, - 0x6D, - 0x6B, - 0x55, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x85, - 0x6B, - 0x6A, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x82, - 0x6A, - 0x82, - 0x80, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xAA, - 0xD0, - 0x94, - 0xD0, - 0x94, - 0xBD, - 0xA8, - 0xCE, - 0xA8, - 0xA4, - 0xA8, - 0xB9, - 0xA8, - 0x94, - 0x92, - 0xA4, - 0x92, - 0xB9, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0x92, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xA5, - 0x92, - 0x90, - 0xA7, - 0xA7, - 0xA7, - 0x05, - 0x77, - 0x00, - 0x08, - 0x92, - 0xBD, - 0x92, - 0xA5, - 0x8D, - 0x77, - 0x90, - 0xA5, - 0x08, - 0x90, - 0x00, - 0x07, - 0xA7, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x00, - 0x04, - 0x77, - 0x00, - 0x03, - 0x74, - 0x77, - 0x8D, - 0x00, - 0x05, - 0x74, - 0x00, - 0x07, - 0x4B, - 0x74, - 0x74, - 0x4B, - 0x75, - 0x5D, - 0x60, - 0x00, - 0x06, - 0x75, - 0x00, - 0x1C, - 0x4C, - 0x75, - 0x74, - 0x75, - 0x75, - 0xA7, - 0x74, - 0x70, - 0x75, - 0x0B, - 0x0B, - 0x39, - 0x70, - 0x48, - 0x70, - 0x48, - 0x60, - 0x48, - 0x48, - 0x4D, - 0x5D, - 0x5D, - 0x70, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x2C, - 0x07, - 0x39, - 0x01, - 0x5D, - 0x01, - 0x5D, - 0x06, - 0x39, - 0x01, - 0x48, - 0x01, - 0x70, - 0x04, - 0x48, - 0x00, - 0x36, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x5D, - 0x5D, - 0x39, - 0x39, - 0x4D, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x39, - 0x48, - 0x39, - 0x64, - 0xC1, - 0x5D, - 0x93, - 0x39, - 0x39, - 0x49, - 0x39, - 0x39, - 0x2D, - 0x5D, - 0x5D, - 0x49, - 0x20, - 0x23, - 0x20, - 0x8F, - 0x91, - 0x23, - 0x61, - 0x4D, - 0x8F, - 0x61, - 0x20, - 0x91, - 0x91, - 0x49, - 0x2D, - 0x71, - 0xA9, - 0x76, - 0x23, - 0x4D, - 0x8F, - 0x91, - 0x75, - 0x4D, - 0x4D, - 0x04, - 0x2D, - 0x00, - 0x19, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x60, - 0x4B, - 0xA6, - 0x60, - 0x70, - 0x60, - 0x4B, - 0x70, - 0x4C, - 0x75, - 0x75, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x75, - 0x75, - 0x60, - 0x39, - 0x2E, - 0x00, - 0x05, - 0x39, - 0x00, - 0x16, - 0x4D, - 0x3C, - 0x4C, - 0x74, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x77, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0xA7, - 0x09, - 0x90, - 0x00, - 0x08, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xA5, - 0xBD, - 0xB9, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x87, - 0x55, - 0x6B, - 0x87, - 0x06, - 0x6D, - 0x00, - 0x09, - 0x34, - 0x6D, - 0x34, - 0x55, - 0x6D, - 0x6D, - 0x55, - 0x87, - 0x55, - 0x00, - 0x07, - 0x6B, - 0x00, - 0x07, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x00, - 0x07, - 0x6A, - 0x00, - 0x07, - 0x80, - 0x67, - 0x85, - 0x82, - 0x82, - 0x82, - 0x67, - 0x00, - 0x05, - 0x96, - 0x00, - 0x36, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xBE, - 0x94, - 0x94, - 0x94, - 0xBC, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0x94, - 0xBF, - 0xB9, - 0xA8, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0x90, - 0xA5, - 0x90, - 0x90, - 0x90, - 0xA4, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x77, - 0x90, - 0x77, - 0x77, - 0x77, - 0xBA, - 0xB9, - 0xBD, - 0xB9, - 0x90, - 0x63, - 0x90, - 0xBA, - 0xBA, - 0x90, - 0xBA, - 0x06, - 0x90, - 0x00, - 0x0F, - 0xA7, - 0x90, - 0x77, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA6, - 0x00, - 0x08, - 0x74, - 0x00, - 0x04, - 0x60, - 0x3C, - 0x75, - 0x4B, - 0x08, - 0x75, - 0x00, - 0x22, - 0x74, - 0x75, - 0x74, - 0x75, - 0x70, - 0x74, - 0x2D, - 0x23, - 0x60, - 0x60, - 0x48, - 0x70, - 0x3C, - 0x48, - 0x3C, - 0x70, - 0x48, - 0x48, - 0x60, - 0x60, - 0x70, - 0x60, - 0x60, - 0x70, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x5D, - 0x39, - 0x39, - 0x5D, - 0x48, - 0x05, - 0x39, - 0x00, - 0x06, - 0x70, - 0x48, - 0x48, - 0x48, - 0x70, - 0x48, - 0x0A, - 0x39, - 0x00, - 0x0D, - 0x5D, - 0x48, - 0x39, - 0x60, - 0x39, - 0x48, - 0x39, - 0x5D, - 0x8F, - 0x75, - 0x48, - 0x60, - 0x3C, - 0x00, - 0x05, - 0x39, - 0x00, - 0x32, - 0x2D, - 0x61, - 0x23, - 0x23, - 0x10, - 0x79, - 0x93, - 0x71, - 0x8F, - 0x76, - 0xC1, - 0x2D, - 0x23, - 0x23, - 0x49, - 0xA9, - 0x49, - 0x91, - 0x91, - 0x3A, - 0x2B, - 0x23, - 0x60, - 0x91, - 0x20, - 0x76, - 0x49, - 0xA6, - 0x93, - 0x39, - 0x39, - 0x3C, - 0x70, - 0x39, - 0x39, - 0x5D, - 0x5D, - 0x4C, - 0x75, - 0x60, - 0x4C, - 0x70, - 0x6F, - 0x60, - 0x70, - 0x70, - 0x4C, - 0x60, - 0x75, - 0x4C, - 0x05, - 0x75, - 0x00, - 0x07, - 0x4D, - 0x39, - 0x2E, - 0x3C, - 0x3C, - 0x75, - 0x4B, - 0x00, - 0x07, - 0x74, - 0x00, - 0x1F, - 0x77, - 0xB8, - 0x63, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x92, - 0xA5, - 0x92, - 0x92, - 0x92, - 0xA8, - 0x92, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x55, - 0x55, - 0x55, - 0x6B, - 0x6D, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x0A, - 0x34, - 0x87, - 0x6D, - 0x56, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x06, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x0B, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x80, - 0x85, - 0x00, - 0x04, - 0x82, - 0x00, - 0x3A, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0xAA, - 0xD0, - 0x94, - 0xBE, - 0x94, - 0xCE, - 0xA8, - 0xBD, - 0xA8, - 0xCD, - 0xB9, - 0x94, - 0x94, - 0xB9, - 0xBD, - 0x92, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0x90, - 0xBD, - 0x92, - 0x90, - 0x90, - 0x90, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0x77, - 0x90, - 0xB9, - 0x92, - 0xBD, - 0xA5, - 0x77, - 0x77, - 0xA5, - 0xA5, - 0xBA, - 0xBA, - 0x08, - 0x90, - 0x00, - 0x0E, - 0xA7, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0xA6, - 0x90, - 0x8D, - 0x5E, - 0x07, - 0x74, - 0x00, - 0x07, - 0x75, - 0x3C, - 0x75, - 0x74, - 0x75, - 0x75, - 0x4B, - 0x00, - 0x06, - 0x75, - 0x00, - 0x2F, - 0x74, - 0x6F, - 0x75, - 0x6F, - 0x75, - 0x6F, - 0x4C, - 0x39, - 0x39, - 0x60, - 0x70, - 0x60, - 0x70, - 0x48, - 0x70, - 0x48, - 0x3C, - 0x3C, - 0x48, - 0x48, - 0x60, - 0x48, - 0x48, - 0x48, - 0x5D, - 0x5D, - 0x3C, - 0x5D, - 0x48, - 0x4D, - 0x5D, - 0x39, - 0x48, - 0x48, - 0x60, - 0x39, - 0x48, - 0x5D, - 0x70, - 0x48, - 0x48, - 0x48, - 0x70, - 0x48, - 0x39, - 0x39, - 0x5D, - 0x00, - 0x0D, - 0x39, - 0x00, - 0x3D, - 0x48, - 0x39, - 0x39, - 0x39, - 0x60, - 0x5D, - 0x7B, - 0x91, - 0x39, - 0x39, - 0x5D, - 0x60, - 0x5D, - 0x39, - 0x23, - 0x49, - 0x3A, - 0x23, - 0x4D, - 0x8F, - 0x8F, - 0x3A, - 0x4D, - 0x91, - 0x4D, - 0x23, - 0x23, - 0x2D, - 0x76, - 0x3A, - 0x2D, - 0x4D, - 0x49, - 0x14, - 0x3A, - 0x49, - 0x76, - 0x3A, - 0x20, - 0x23, - 0x3A, - 0x49, - 0x49, - 0x23, - 0x3A, - 0x61, - 0x23, - 0x2D, - 0x3A, - 0x14, - 0x2D, - 0x48, - 0x4C, - 0x70, - 0x60, - 0x6F, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x47, - 0x00, - 0x0A, - 0x75, - 0x0B, - 0x74, - 0x00, - 0x0E, - 0x77, - 0x90, - 0x8D, - 0x77, - 0xA6, - 0x60, - 0x2E, - 0x3C, - 0x77, - 0xA7, - 0x77, - 0x90, - 0x90, - 0xA7, - 0x04, - 0x90, - 0x00, - 0x0D, - 0xBA, - 0x90, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0xBD, - 0xB9, - 0xA7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x87, - 0x55, - 0x87, - 0x6B, - 0x55, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x0A, - 0x34, - 0x6D, - 0x87, - 0x34, - 0x6D, - 0x6D, - 0x87, - 0x55, - 0x87, - 0x55, - 0x07, - 0x6B, - 0x00, - 0x03, - 0x85, - 0x6B, - 0x6B, - 0x00, - 0x05, - 0x85, - 0x00, - 0x0D, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x80, - 0x80, - 0x6A, - 0x85, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x00, - 0x04, - 0x96, - 0x00, - 0x07, - 0xAB, - 0x96, - 0x95, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x00, - 0x05, - 0x94, - 0x00, - 0x17, - 0xBD, - 0xBC, - 0xA8, - 0xA8, - 0xA4, - 0xD0, - 0x94, - 0xB9, - 0xBD, - 0xB9, - 0xA5, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0x90, - 0xBA, - 0x92, - 0xA8, - 0x90, - 0xBA, - 0x00, - 0x04, - 0x90, - 0x00, - 0x10, - 0xA7, - 0x90, - 0xA7, - 0xA5, - 0xBD, - 0xB9, - 0xBE, - 0x90, - 0x77, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0x90, - 0xBA, - 0x07, - 0x90, - 0x00, - 0x0E, - 0xA7, - 0x90, - 0x77, - 0xB8, - 0x77, - 0x77, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0x74, - 0x77, - 0x06, - 0x74, - 0x00, - 0x05, - 0x60, - 0x60, - 0x74, - 0x4B, - 0x74, - 0x00, - 0x0C, - 0x75, - 0x00, - 0x2F, - 0x4C, - 0x74, - 0x75, - 0x4D, - 0x39, - 0x60, - 0x4C, - 0x60, - 0x70, - 0x60, - 0x48, - 0x70, - 0x48, - 0x70, - 0x48, - 0x3C, - 0x48, - 0x70, - 0x60, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x60, - 0x70, - 0x5D, - 0x48, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x5D, - 0x48, - 0x39, - 0x39, - 0x5D, - 0x4D, - 0x39, - 0x5D, - 0x00, - 0x09, - 0x39, - 0x00, - 0x2E, - 0x48, - 0x5D, - 0x39, - 0x5D, - 0x39, - 0x5D, - 0x39, - 0x39, - 0x5D, - 0x39, - 0x39, - 0x39, - 0x49, - 0x3A, - 0x3A, - 0x49, - 0x3A, - 0x23, - 0x2D, - 0x4D, - 0x4D, - 0x49, - 0x8F, - 0x49, - 0x49, - 0x3A, - 0x23, - 0x2D, - 0x49, - 0xA6, - 0x61, - 0x60, - 0x49, - 0x3A, - 0x2D, - 0x2B, - 0x8F, - 0x91, - 0x2D, - 0x39, - 0x2D, - 0x91, - 0x93, - 0x2D, - 0x2D, - 0x22, - 0x06, - 0x2D, - 0x00, - 0x06, - 0x48, - 0x4C, - 0x4C, - 0x74, - 0x75, - 0x70, - 0x09, - 0x75, - 0x00, - 0x03, - 0x74, - 0x75, - 0x4B, - 0x00, - 0x0A, - 0x74, - 0x00, - 0x0E, - 0xA6, - 0x5E, - 0xA7, - 0xA7, - 0x77, - 0xB8, - 0x4B, - 0x2E, - 0x2E, - 0x39, - 0x75, - 0xA7, - 0x90, - 0xA7, - 0x08, - 0x90, - 0x00, - 0x03, - 0xBA, - 0xBA, - 0x92, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x04, - 0x92, - 0xA8, - 0xB9, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x05, - 0x55, - 0x87, - 0x55, - 0x87, - 0x6B, - 0x00, - 0x06, - 0x6D, - 0x00, - 0x0C, - 0x34, - 0x6D, - 0x34, - 0x6D, - 0x56, - 0x87, - 0x55, - 0x87, - 0x87, - 0x55, - 0x55, - 0x55, - 0x05, - 0x6B, - 0x00, - 0x39, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0x82, - 0x6A, - 0x85, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x96, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0xBE, - 0x94, - 0xD0, - 0x94, - 0xA8, - 0xCE, - 0xA8, - 0xA8, - 0x94, - 0xD0, - 0xA4, - 0xB9, - 0xBD, - 0xBD, - 0x78, - 0xBD, - 0xA5, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0xBD, - 0x92, - 0x00, - 0x06, - 0x90, - 0x00, - 0x26, - 0xA7, - 0x77, - 0x90, - 0xA8, - 0xB9, - 0xB9, - 0xD0, - 0x77, - 0x90, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xB8, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x77, - 0xB8, - 0x90, - 0x8D, - 0x77, - 0x77, - 0x04, - 0x74, - 0x00, - 0x0A, - 0x75, - 0x3C, - 0x4B, - 0x74, - 0x74, - 0x74, - 0x75, - 0x74, - 0x75, - 0x74, - 0x05, - 0x75, - 0x00, - 0x36, - 0x4C, - 0x75, - 0x75, - 0x75, - 0x74, - 0x4C, - 0x75, - 0x39, - 0x39, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x70, - 0x60, - 0x70, - 0x48, - 0x70, - 0x48, - 0x48, - 0x70, - 0x60, - 0x48, - 0x5D, - 0x3C, - 0x48, - 0x48, - 0x5D, - 0x48, - 0x48, - 0x48, - 0x5D, - 0x60, - 0x70, - 0x75, - 0x70, - 0x70, - 0x47, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x39, - 0x39, - 0x48, - 0x5D, - 0x70, - 0x70, - 0x48, - 0xA0, - 0x39, - 0x5D, - 0x05, - 0x39, - 0x00, - 0x14, - 0x48, - 0x39, - 0x5D, - 0x3C, - 0x39, - 0x5D, - 0x2A, - 0x5D, - 0x39, - 0x5D, - 0x48, - 0x5D, - 0x49, - 0x23, - 0x3A, - 0x23, - 0x3A, - 0x23, - 0x3A, - 0x2B, - 0x05, - 0x23, - 0x00, - 0x21, - 0x45, - 0x3A, - 0x2D, - 0x39, - 0x2D, - 0x49, - 0x5D, - 0x3A, - 0x2D, - 0x3A, - 0x2D, - 0x8F, - 0x4D, - 0x60, - 0x75, - 0x75, - 0xD9, - 0x75, - 0x48, - 0x70, - 0x60, - 0x48, - 0x60, - 0x70, - 0x70, - 0x60, - 0x70, - 0x60, - 0x70, - 0x75, - 0x74, - 0x75, - 0x4C, - 0x00, - 0x06, - 0x75, - 0x00, - 0x04, - 0x4B, - 0x75, - 0x75, - 0x75, - 0x0A, - 0x74, - 0x00, - 0x0F, - 0x5E, - 0x77, - 0x77, - 0x8D, - 0xA7, - 0xB8, - 0x77, - 0x77, - 0x74, - 0x39, - 0x39, - 0x2E, - 0x74, - 0x90, - 0x77, - 0x00, - 0x05, - 0x90, - 0x00, - 0x0F, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0x92, - 0xA5, - 0xB9, - 0xBD, - 0xBD, - 0xB9, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x6D, - 0x56, - 0x00, - 0x08, - 0x6D, - 0x00, - 0x09, - 0x56, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x55, - 0x00, - 0x06, - 0x6B, - 0x05, - 0x85, - 0x00, - 0x09, - 0x6A, - 0x85, - 0x6A, - 0x80, - 0x80, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x01, - 0x80, - 0x04, - 0x96, - 0x00, - 0x06, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0x06, - 0x94, - 0x00, - 0x14, - 0xBD, - 0xA8, - 0xA8, - 0xB9, - 0x94, - 0xBE, - 0xB9, - 0xA4, - 0xB9, - 0xB9, - 0xB9, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0x92, - 0x94, - 0xBA, - 0x06, - 0x90, - 0x00, - 0x12, - 0xA7, - 0x90, - 0xB9, - 0xBD, - 0xB9, - 0xA4, - 0x92, - 0x77, - 0xBA, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x08, - 0x90, - 0x00, - 0x12, - 0x77, - 0xA7, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x90, - 0x90, - 0xA6, - 0x8D, - 0x77, - 0x5E, - 0x77, - 0x74, - 0x74, - 0x3C, - 0x75, - 0x04, - 0x74, - 0x00, - 0x05, - 0x4B, - 0x74, - 0x75, - 0x75, - 0x4B, - 0x00, - 0x07, - 0x75, - 0x00, - 0x25, - 0x4C, - 0x74, - 0x75, - 0x75, - 0x60, - 0x39, - 0x3C, - 0x70, - 0x60, - 0x70, - 0x60, - 0x70, - 0x60, - 0x48, - 0x70, - 0x60, - 0x70, - 0x60, - 0x48, - 0x70, - 0x48, - 0x48, - 0x3C, - 0x48, - 0x4D, - 0x48, - 0x5D, - 0x3C, - 0x70, - 0x48, - 0x70, - 0x75, - 0x47, - 0x70, - 0x47, - 0x47, - 0x70, - 0x00, - 0x04, - 0x5D, - 0x00, - 0x23, - 0x48, - 0x5D, - 0x39, - 0x39, - 0x60, - 0x5D, - 0x5D, - 0x39, - 0x5D, - 0x5D, - 0x39, - 0x39, - 0x5D, - 0x5D, - 0x39, - 0x70, - 0x39, - 0x39, - 0x5D, - 0xC1, - 0x91, - 0x93, - 0x4F, - 0x8F, - 0x60, - 0x39, - 0x5D, - 0x3A, - 0x49, - 0x5F, - 0x3A, - 0x49, - 0x3A, - 0x49, - 0x3A, - 0x00, - 0x06, - 0x2D, - 0x00, - 0x06, - 0x14, - 0x2D, - 0x2D, - 0x3A, - 0x2D, - 0x3A, - 0x05, - 0x2D, - 0x00, - 0x22, - 0x49, - 0x39, - 0x39, - 0x75, - 0x75, - 0x3C, - 0x70, - 0x60, - 0x70, - 0x60, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x75, - 0x70, - 0x75, - 0x4C, - 0x74, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x75, - 0x75, - 0x4B, - 0x75, - 0x75, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x4B, - 0x05, - 0x74, - 0x00, - 0x0E, - 0x8D, - 0x74, - 0x77, - 0x74, - 0x77, - 0x77, - 0x90, - 0x90, - 0x8D, - 0x77, - 0x77, - 0x75, - 0x3C, - 0x75, - 0x0A, - 0x90, - 0x01, - 0xBA, - 0x01, - 0x90, - 0x05, - 0xA5, - 0x00, - 0x06, - 0xB9, - 0xB9, - 0xA5, - 0xBC, - 0xBD, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x6D, - 0x87, - 0x87, - 0x34, - 0x00, - 0x07, - 0x56, - 0x00, - 0x04, - 0x6D, - 0x6D, - 0x56, - 0x8A, - 0x05, - 0x6D, - 0x00, - 0x08, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x07, - 0x6B, - 0x00, - 0x08, - 0x85, - 0x6A, - 0x82, - 0x85, - 0x85, - 0x85, - 0x6B, - 0x85, - 0x05, - 0x6A, - 0x01, - 0x80, - 0x06, - 0x7C, - 0x00, - 0x06, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0x05, - 0xAA, - 0x00, - 0x21, - 0xBE, - 0xBE, - 0xAA, - 0xAB, - 0x94, - 0x94, - 0xBE, - 0x94, - 0xA8, - 0x94, - 0xA8, - 0xBD, - 0xBD, - 0x92, - 0xBD, - 0x95, - 0xBD, - 0x92, - 0x92, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0xBE, - 0xA8, - 0xBC, - 0xBD, - 0x92, - 0x92, - 0xA8, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x07, - 0x92, - 0xB9, - 0x92, - 0x92, - 0x92, - 0xA5, - 0x92, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x1C, - 0x90, - 0xBA, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xA7, - 0x90, - 0xBA, - 0xBA, - 0x90, - 0x77, - 0x8D, - 0x90, - 0x77, - 0x8D, - 0x74, - 0x4C, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x5E, - 0xA6, - 0x8D, - 0x74, - 0x77, - 0x07, - 0x74, - 0x00, - 0x5D, - 0x4B, - 0x74, - 0x8D, - 0x74, - 0x4B, - 0x75, - 0x48, - 0x5D, - 0x75, - 0x6F, - 0x75, - 0x6F, - 0x75, - 0x47, - 0x75, - 0x75, - 0x4C, - 0x47, - 0x60, - 0x4C, - 0x4C, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x6F, - 0x4B, - 0x6F, - 0x6F, - 0x75, - 0x6F, - 0x6F, - 0x75, - 0x70, - 0x48, - 0x60, - 0x48, - 0x48, - 0x70, - 0x48, - 0x48, - 0x70, - 0x48, - 0x70, - 0x60, - 0x70, - 0x75, - 0x48, - 0x48, - 0x48, - 0x70, - 0x48, - 0x48, - 0x70, - 0x48, - 0x48, - 0x5D, - 0x93, - 0x93, - 0xC5, - 0xA6, - 0xAC, - 0x7B, - 0x5D, - 0x49, - 0x2D, - 0x5D, - 0x2D, - 0x4D, - 0x49, - 0x39, - 0x39, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x39, - 0x39, - 0x2D, - 0x39, - 0x2D, - 0x39, - 0x2D, - 0x39, - 0x49, - 0x00, - 0x04, - 0x39, - 0x00, - 0x07, - 0x60, - 0x4C, - 0x6F, - 0x75, - 0x4C, - 0x75, - 0x6F, - 0x00, - 0x05, - 0x75, - 0x00, - 0x05, - 0x74, - 0x4B, - 0x74, - 0xA2, - 0x8C, - 0x00, - 0x09, - 0x74, - 0x00, - 0x17, - 0x8D, - 0x74, - 0x77, - 0x74, - 0x8D, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xA2, - 0x90, - 0x90, - 0x8D, - 0xBA, - 0xCF, - 0xBD, - 0xB8, - 0x90, - 0xBA, - 0x90, - 0x00, - 0x06, - 0xBA, - 0x00, - 0x12, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xB9, - 0xB9, - 0xBD, - 0xBD, - 0x92, - 0xBD, - 0xBD, - 0xBD, - 0xA8, - 0xA8, - 0xBD, - 0xC2, - 0x99, - 0xBF, - 0x00, - 0x00, - 0x05, - 0x9D, - 0x05, - 0x8A, - 0x04, - 0x9D, - 0x00, - 0x06, - 0x6E, - 0x6E, - 0x9D, - 0x9D, - 0x6D, - 0x9D, - 0x07, - 0x6D, - 0x06, - 0x87, - 0x00, - 0x19, - 0xB2, - 0x87, - 0xB2, - 0xB2, - 0x9B, - 0xC7, - 0xB2, - 0x85, - 0x87, - 0x8A, - 0x87, - 0x85, - 0xC7, - 0x85, - 0x85, - 0xC7, - 0x9B, - 0x99, - 0xAE, - 0xDC, - 0xDC, - 0xDC, - 0xC4, - 0xC4, - 0xC4, - 0x00, - 0x08, - 0xC2, - 0x00, - 0x07, - 0xD1, - 0xD1, - 0xD1, - 0xDE, - 0x9B, - 0xD1, - 0xAA, - 0x00, - 0x07, - 0xBE, - 0x00, - 0x07, - 0xBC, - 0xCF, - 0xD1, - 0xBC, - 0xBC, - 0xA4, - 0xBC, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x08, - 0xA8, - 0xCF, - 0xCF, - 0xBE, - 0xBE, - 0xBC, - 0xE4, - 0xC2, - 0x07, - 0xBC, - 0x00, - 0x0D, - 0xCD, - 0xA4, - 0xCD, - 0xA8, - 0xCD, - 0xA4, - 0xA4, - 0xA4, - 0xB9, - 0xB9, - 0xB9, - 0xA5, - 0xB9, - 0x00, - 0x05, - 0xA5, - 0x00, - 0x11, - 0xCF, - 0xCF, - 0xA5, - 0xA5, - 0x90, - 0x90, - 0xB7, - 0x90, - 0x74, - 0x8D, - 0x90, - 0xA2, - 0xA2, - 0x90, - 0xA2, - 0xA2, - 0x77, - 0x00, - 0x0A, - 0x8D, - 0x00, - 0x08, - 0xA2, - 0xCD, - 0xA2, - 0x74, - 0x5E, - 0x74, - 0x48, - 0x75, - 0x05, - 0x74, - 0x00, - 0x0A, - 0x6F, - 0x74, - 0x6F, - 0x74, - 0x4B, - 0x6F, - 0x6F, - 0x4B, - 0x6F, - 0x75, - 0x05, - 0x6F, - 0x00, - 0x30, - 0xA2, - 0xA2, - 0x6F, - 0x6F, - 0x6F, - 0x48, - 0x23, - 0x48, - 0x3C, - 0x48, - 0x48, - 0x70, - 0x60, - 0x48, - 0x70, - 0x48, - 0x3C, - 0x48, - 0x60, - 0x70, - 0x70, - 0x48, - 0x70, - 0x3C, - 0x48, - 0x48, - 0x48, - 0x47, - 0x73, - 0x6F, - 0x48, - 0x48, - 0x2C, - 0x60, - 0x75, - 0xA3, - 0x74, - 0x60, - 0x39, - 0x2D, - 0x49, - 0x2D, - 0x5D, - 0x5D, - 0x39, - 0x60, - 0x49, - 0x49, - 0x07, - 0x2D, - 0x00, - 0x03, - 0x4C, - 0x6F, - 0x49, - 0x00, - 0x09, - 0x39, - 0x00, - 0x12, - 0x5D, - 0x39, - 0x75, - 0x4C, - 0x75, - 0x6F, - 0x75, - 0x75, - 0x6F, - 0x75, - 0x6F, - 0x6F, - 0x6F, - 0x75, - 0x75, - 0x8D, - 0xA4, - 0xA5, - 0x08, - 0x74, - 0x00, - 0x14, - 0x5E, - 0x74, - 0x5E, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0xA7, - 0xA7, - 0xBA, - 0xBC, - 0xB9, - 0x07, - 0x90, - 0x00, - 0x0D, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0x92, - 0xA5, - 0x92, - 0x92, - 0x92, - 0xB9, - 0xBD, - 0xB9, - 0x00, - 0x05, - 0xBD, - 0x00, - 0x03, - 0xAB, - 0xC4, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xC8, - 0x9D, - 0xC8, - 0x9D, - 0xD6, - 0x8A, - 0xD6, - 0x9D, - 0x9D, - 0x8A, - 0x04, - 0x9D, - 0x00, - 0x07, - 0xD6, - 0x6E, - 0x9D, - 0xC8, - 0x9D, - 0xC8, - 0x9D, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x03, - 0x87, - 0xC8, - 0xC8, - 0x00, - 0x06, - 0x87, - 0x00, - 0x1D, - 0xB2, - 0xB2, - 0xC7, - 0x9B, - 0xB2, - 0xB2, - 0xC7, - 0xB2, - 0x9D, - 0xB2, - 0xC7, - 0xC7, - 0x9B, - 0xC7, - 0x9B, - 0xC7, - 0xD4, - 0xDC, - 0xDC, - 0xDC, - 0xE4, - 0xDC, - 0xE4, - 0xC2, - 0xE4, - 0xE4, - 0xC2, - 0xE4, - 0xE4, - 0x00, - 0x05, - 0xD1, - 0x00, - 0x03, - 0xCF, - 0xAE, - 0xDC, - 0x00, - 0x06, - 0xCF, - 0x00, - 0x05, - 0xBC, - 0xD8, - 0xBC, - 0xCF, - 0xD1, - 0x00, - 0x05, - 0xBC, - 0x00, - 0x0C, - 0xCD, - 0xCD, - 0xA4, - 0xA4, - 0xBE, - 0xCF, - 0xCF, - 0xCF, - 0xBC, - 0xA4, - 0xDC, - 0xD1, - 0x09, - 0xBC, - 0x00, - 0x25, - 0xCD, - 0xCD, - 0xA4, - 0xCD, - 0xA4, - 0xA4, - 0xA4, - 0xB9, - 0xA4, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0xBC, - 0xBC, - 0xB7, - 0xA5, - 0xB7, - 0xA5, - 0x90, - 0x8D, - 0x5E, - 0x90, - 0xA2, - 0x90, - 0xA2, - 0x90, - 0x90, - 0xA2, - 0x73, - 0xA2, - 0x73, - 0x8D, - 0x73, - 0x00, - 0x07, - 0x8D, - 0x00, - 0x09, - 0xB9, - 0x8D, - 0x5E, - 0x74, - 0x8D, - 0x75, - 0x48, - 0x74, - 0x5E, - 0x00, - 0x05, - 0x74, - 0x00, - 0x24, - 0x6F, - 0x6F, - 0x74, - 0x4B, - 0x6F, - 0x6F, - 0x6F, - 0x4B, - 0x6F, - 0x75, - 0x6F, - 0x75, - 0x6F, - 0x8D, - 0x8D, - 0x4C, - 0x6F, - 0x6F, - 0x48, - 0x2D, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x4D, - 0x48, - 0x5D, - 0x4D, - 0x48, - 0x5D, - 0x48, - 0x4D, - 0x48, - 0x4D, - 0x48, - 0x48, - 0x04, - 0x5D, - 0x00, - 0x15, - 0x48, - 0x74, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x5D, - 0x48, - 0x60, - 0x5D, - 0x7B, - 0x8F, - 0x3A, - 0x2D, - 0x2D, - 0x4D, - 0x49, - 0x71, - 0x49, - 0x49, - 0x49, - 0x00, - 0x07, - 0x2D, - 0x01, - 0x48, - 0x01, - 0x48, - 0x04, - 0x2D, - 0x00, - 0x08, - 0x49, - 0x2D, - 0x2D, - 0x49, - 0x39, - 0x39, - 0x2D, - 0x39, - 0x04, - 0x70, - 0x00, - 0x04, - 0x4C, - 0x70, - 0x75, - 0x4C, - 0x05, - 0x75, - 0x00, - 0x03, - 0x74, - 0xA2, - 0x74, - 0x00, - 0x05, - 0x75, - 0x01, - 0x74, - 0x01, - 0x4B, - 0x09, - 0x74, - 0x00, - 0x10, - 0x8D, - 0x74, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0xA7, - 0x90, - 0x8D, - 0xA7, - 0x77, - 0x90, - 0xA7, - 0x08, - 0x90, - 0x00, - 0x10, - 0xBA, - 0xBA, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xA4, - 0xBE, - 0xB9, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x52, - 0x9D, - 0x9D, - 0x9D, - 0x8A, - 0x8A, - 0xD6, - 0x9D, - 0x8A, - 0xD6, - 0x9D, - 0x9D, - 0x8A, - 0x9D, - 0x9D, - 0x8A, - 0x8A, - 0x9D, - 0x9D, - 0x9D, - 0xC8, - 0xC8, - 0x6D, - 0x6D, - 0xC8, - 0x6D, - 0xC8, - 0x6D, - 0x87, - 0xC8, - 0x87, - 0xC8, - 0x87, - 0x87, - 0x87, - 0xB2, - 0xB2, - 0x9B, - 0xC7, - 0xB2, - 0xB2, - 0xC7, - 0xC7, - 0xB2, - 0xC7, - 0x85, - 0xC7, - 0xC7, - 0xC7, - 0x9B, - 0x9B, - 0x9B, - 0xD4, - 0xDC, - 0xDC, - 0xDC, - 0xE4, - 0xDC, - 0xE4, - 0xC2, - 0xC2, - 0xE4, - 0xC2, - 0xD1, - 0xE4, - 0xD1, - 0xE4, - 0xD1, - 0xD1, - 0xCF, - 0xC2, - 0xC2, - 0xCF, - 0xD1, - 0xCF, - 0xCF, - 0xBE, - 0xCF, - 0xBE, - 0xCF, - 0xBC, - 0xD1, - 0xCF, - 0x05, - 0xBC, - 0x00, - 0x0C, - 0xA4, - 0xBC, - 0xA4, - 0xBC, - 0xD1, - 0xCF, - 0xCF, - 0xCF, - 0xA4, - 0xA4, - 0xD1, - 0xCF, - 0x07, - 0xBC, - 0x00, - 0x07, - 0xCD, - 0xBC, - 0xCD, - 0xA4, - 0xA4, - 0xA4, - 0xBC, - 0x00, - 0x04, - 0xA4, - 0x00, - 0x1C, - 0xB9, - 0xA4, - 0xB9, - 0x8E, - 0xB9, - 0xA5, - 0xA5, - 0xB9, - 0xB9, - 0xA5, - 0xB7, - 0xA5, - 0xB7, - 0xA2, - 0x74, - 0xA2, - 0x90, - 0x90, - 0x72, - 0x90, - 0xA2, - 0xA2, - 0xA2, - 0x90, - 0xA2, - 0x62, - 0x8D, - 0xA2, - 0x07, - 0x8D, - 0x00, - 0x08, - 0xA2, - 0x8D, - 0x8D, - 0x5E, - 0x8D, - 0x5E, - 0x47, - 0x4C, - 0x04, - 0x74, - 0x00, - 0x09, - 0x5E, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x6F, - 0x74, - 0x6F, - 0x4B, - 0x00, - 0x06, - 0x6F, - 0x00, - 0x29, - 0x4B, - 0x6F, - 0x6F, - 0x75, - 0x4C, - 0x48, - 0x70, - 0x48, - 0x48, - 0x70, - 0x48, - 0x70, - 0x48, - 0x3C, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x4D, - 0x48, - 0x5D, - 0x48, - 0x4D, - 0x5D, - 0x4C, - 0x5D, - 0x48, - 0x4D, - 0x48, - 0x5D, - 0xA3, - 0x75, - 0x75, - 0x70, - 0x91, - 0x91, - 0x3A, - 0x00, - 0x05, - 0x49, - 0x01, - 0x4D, - 0x08, - 0x2D, - 0x00, - 0x05, - 0x39, - 0x39, - 0x2D, - 0x2D, - 0x2F, - 0x00, - 0x05, - 0x39, - 0x00, - 0x0A, - 0x49, - 0x49, - 0x66, - 0xB0, - 0x7B, - 0xE9, - 0xA6, - 0x66, - 0x91, - 0x4C, - 0x08, - 0x75, - 0x00, - 0x04, - 0x74, - 0x75, - 0x75, - 0x75, - 0x0D, - 0x74, - 0x00, - 0x04, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x05, - 0x77, - 0x00, - 0x06, - 0xB8, - 0x90, - 0x90, - 0x77, - 0x90, - 0xA7, - 0x07, - 0x90, - 0x00, - 0x13, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0xB9, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xA4, - 0xB9, - 0xBE, - 0xB9, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x9D, - 0x9D, - 0x9D, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0x8A, - 0x8A, - 0x9D, - 0x9D, - 0x9D, - 0x8A, - 0xD6, - 0x04, - 0x9D, - 0x01, - 0xC8, - 0x01, - 0x9D, - 0x05, - 0xC8, - 0x01, - 0x6D, - 0x01, - 0xC8, - 0x06, - 0x87, - 0x01, - 0xC7, - 0x01, - 0xC7, - 0x05, - 0xB2, - 0x01, - 0x87, - 0x07, - 0xC7, - 0x01, - 0x85, - 0x01, - 0x9B, - 0x04, - 0xDC, - 0x07, - 0xE4, - 0x01, - 0xC2, - 0x05, - 0xD1, - 0x00, - 0x04, - 0xC2, - 0xC2, - 0xCF, - 0xD1, - 0x05, - 0xCF, - 0x00, - 0x03, - 0xBC, - 0xCF, - 0xD1, - 0x00, - 0x09, - 0xBC, - 0x00, - 0x0B, - 0xCF, - 0xD1, - 0xD1, - 0xCF, - 0xBC, - 0xA4, - 0xCF, - 0xC2, - 0xCF, - 0xCF, - 0xCF, - 0x00, - 0x0A, - 0xBC, - 0x01, - 0xCD, - 0x08, - 0xA4, - 0x00, - 0x06, - 0xB9, - 0xA4, - 0xB9, - 0xA5, - 0xA4, - 0xB9, - 0x04, - 0xA5, - 0x00, - 0x0A, - 0xA2, - 0x8D, - 0x90, - 0xB7, - 0xB7, - 0x90, - 0xA2, - 0x90, - 0xA2, - 0x90, - 0x06, - 0xA2, - 0x01, - 0x8D, - 0x01, - 0xA2, - 0x04, - 0x8D, - 0x01, - 0xA2, - 0x05, - 0x8D, - 0x00, - 0x06, - 0x4C, - 0x4C, - 0x8D, - 0x5E, - 0x74, - 0x5E, - 0x09, - 0x74, - 0x00, - 0x15, - 0x6F, - 0x74, - 0x6F, - 0x6F, - 0x4B, - 0x6F, - 0x4B, - 0x6F, - 0x4C, - 0x70, - 0x48, - 0x60, - 0x70, - 0x48, - 0x75, - 0x4C, - 0x48, - 0x48, - 0x3C, - 0x48, - 0x70, - 0x00, - 0x05, - 0x48, - 0x01, - 0x60, - 0x04, - 0x48, - 0x00, - 0x32, - 0x4D, - 0x48, - 0x48, - 0x75, - 0x48, - 0x5D, - 0x48, - 0x5D, - 0x3C, - 0x60, - 0x60, - 0x93, - 0x91, - 0x7B, - 0x91, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x4D, - 0x39, - 0x49, - 0x39, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x39, - 0x39, - 0x2F, - 0x39, - 0x39, - 0x49, - 0x2F, - 0x39, - 0x2F, - 0x39, - 0x49, - 0x30, - 0xE0, - 0xC1, - 0x75, - 0x93, - 0x75, - 0xC5, - 0xAC, - 0x70, - 0x08, - 0x75, - 0x00, - 0x07, - 0x8D, - 0x75, - 0x4B, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x00, - 0x06, - 0x74, - 0x00, - 0x10, - 0x77, - 0x74, - 0x63, - 0x8D, - 0x77, - 0xA6, - 0x77, - 0x8D, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x90, - 0xBA, - 0x09, - 0x90, - 0x00, - 0x14, - 0xA5, - 0x90, - 0xBA, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0xBD, - 0xA4, - 0xB9, - 0xBD, - 0xBD, - 0xBE, - 0xA8, - 0xA9, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x01, - 0x9D, - 0x05, - 0x8A, - 0x08, - 0x9D, - 0x01, - 0x8A, - 0x08, - 0x6D, - 0x08, - 0x87, - 0x00, - 0x0F, - 0xB2, - 0xB2, - 0x6B, - 0x9B, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x85, - 0x85, - 0xB2, - 0x85, - 0x85, - 0x9B, - 0x85, - 0x00, - 0x05, - 0x9B, - 0x01, - 0x99, - 0x04, - 0xC4, - 0x00, - 0x0E, - 0xC2, - 0xC2, - 0xAB, - 0xC2, - 0xAB, - 0xD1, - 0xD1, - 0xD1, - 0xAA, - 0xD1, - 0xBE, - 0xBE, - 0xC2, - 0xD1, - 0x04, - 0xBE, - 0x04, - 0xBC, - 0x00, - 0x13, - 0xAB, - 0xBE, - 0xBC, - 0xA8, - 0xBC, - 0xBD, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0xA8, - 0xD1, - 0xBE, - 0xCF, - 0xBC, - 0xA5, - 0xBC, - 0xBC, - 0xD1, - 0x00, - 0x05, - 0xBC, - 0x00, - 0x0F, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xA4, - 0xA4, - 0xB9, - 0xB9, - 0xA4, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xB9, - 0x00, - 0x05, - 0xA5, - 0x00, - 0x25, - 0xBA, - 0xA5, - 0xB9, - 0x90, - 0xB7, - 0x90, - 0xBA, - 0x90, - 0x74, - 0x74, - 0x90, - 0x90, - 0xA2, - 0x90, - 0x8D, - 0x90, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x8D, - 0x5E, - 0x8D, - 0x74, - 0x5E, - 0x90, - 0x5E, - 0x74, - 0x5E, - 0x74, - 0x75, - 0x48, - 0x4B, - 0x00, - 0x04, - 0x74, - 0x00, - 0x27, - 0x6F, - 0x74, - 0x6F, - 0x4B, - 0x6F, - 0x75, - 0x6F, - 0x75, - 0x6F, - 0x75, - 0x6F, - 0x75, - 0x6F, - 0x75, - 0x47, - 0x75, - 0x4C, - 0x70, - 0x60, - 0x70, - 0x4C, - 0x75, - 0x70, - 0x75, - 0x75, - 0xA3, - 0x48, - 0x70, - 0x48, - 0x60, - 0x70, - 0x4C, - 0x48, - 0x70, - 0x48, - 0x48, - 0x60, - 0x75, - 0x60, - 0x00, - 0x04, - 0x48, - 0x01, - 0x75, - 0x0B, - 0x48, - 0x00, - 0x0A, - 0x39, - 0x2D, - 0x39, - 0x49, - 0x39, - 0x4D, - 0x49, - 0x4D, - 0x2D, - 0x49, - 0x04, - 0x2D, - 0x00, - 0x05, - 0x49, - 0x2E, - 0x39, - 0x39, - 0x2F, - 0x00, - 0x08, - 0x39, - 0x00, - 0x07, - 0x93, - 0xA9, - 0x75, - 0x47, - 0x75, - 0x70, - 0x6F, - 0x00, - 0x06, - 0x75, - 0x00, - 0x07, - 0x74, - 0x75, - 0x4B, - 0x8D, - 0x74, - 0x74, - 0x4B, - 0x00, - 0x07, - 0x74, - 0x00, - 0x13, - 0xA6, - 0x74, - 0x74, - 0x5E, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0xA7, - 0xBA, - 0x90, - 0xA7, - 0x00, - 0x06, - 0x90, - 0x00, - 0x0B, - 0xBA, - 0x90, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xB9, - 0xA5, - 0x00, - 0x07, - 0xB9, - 0x00, - 0x04, - 0xA8, - 0xBE, - 0xCD, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x8A, - 0x00, - 0x05, - 0x56, - 0x01, - 0x6D, - 0x01, - 0x56, - 0x04, - 0x6D, - 0x00, - 0x0A, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x55, - 0x87, - 0x04, - 0x55, - 0x06, - 0x6B, - 0x00, - 0x09, - 0x82, - 0x6A, - 0x6B, - 0x85, - 0x6A, - 0x85, - 0x85, - 0x6A, - 0x6B, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x07, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x7C, - 0x00, - 0x04, - 0x96, - 0x00, - 0x31, - 0x95, - 0x96, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAA, - 0xC0, - 0x94, - 0xD0, - 0x94, - 0x95, - 0xAA, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xA4, - 0xA8, - 0xB9, - 0x94, - 0x95, - 0xA5, - 0xB9, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xBE, - 0x94, - 0x94, - 0xBE, - 0xA5, - 0x90, - 0xA8, - 0xA8, - 0xBE, - 0xBD, - 0xA4, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0x92, - 0xB9, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x05, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0x00, - 0x0A, - 0x90, - 0x00, - 0x0F, - 0x77, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x74, - 0x4C, - 0x74, - 0x77, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x74, - 0x8D, - 0x00, - 0x0B, - 0x74, - 0x00, - 0x07, - 0x8D, - 0x74, - 0x75, - 0x75, - 0x4B, - 0x5D, - 0x60, - 0x00, - 0x0A, - 0x75, - 0x00, - 0x11, - 0x4C, - 0x75, - 0x70, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x75, - 0x6F, - 0x60, - 0x70, - 0x60, - 0x70, - 0x60, - 0x00, - 0x04, - 0x75, - 0x00, - 0x2E, - 0x70, - 0x60, - 0x4C, - 0x70, - 0x60, - 0x70, - 0x60, - 0x48, - 0x60, - 0x48, - 0x4C, - 0xA9, - 0x75, - 0xA3, - 0x60, - 0x48, - 0x60, - 0x74, - 0x4C, - 0x75, - 0x60, - 0x4C, - 0x70, - 0x48, - 0x70, - 0x48, - 0x48, - 0x48, - 0x70, - 0x48, - 0x2D, - 0x2D, - 0x2D, - 0x39, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x39, - 0x49, - 0x39, - 0x39, - 0x49, - 0x39, - 0x39, - 0x5D, - 0x09, - 0x39, - 0x00, - 0x07, - 0x48, - 0x75, - 0xE9, - 0xA6, - 0x75, - 0x75, - 0x47, - 0x00, - 0x09, - 0x75, - 0x01, - 0x74, - 0x01, - 0x8D, - 0x07, - 0x74, - 0x00, - 0x0D, - 0x77, - 0x74, - 0x74, - 0x74, - 0x8D, - 0x77, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x77, - 0x77, - 0xB8, - 0x00, - 0x04, - 0x77, - 0x00, - 0x04, - 0xA7, - 0x77, - 0xBA, - 0xBA, - 0x08, - 0x90, - 0x00, - 0x15, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xA5, - 0x92, - 0x92, - 0xA5, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0xBD, - 0xA4, - 0xBD, - 0xB9, - 0xA4, - 0xBD, - 0xBE, - 0xA8, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0x6D, - 0x56, - 0x6D, - 0x56, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x87, - 0x34, - 0x55, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x6B, - 0x55, - 0x06, - 0x6B, - 0x06, - 0x85, - 0x00, - 0x0F, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x82, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6B, - 0x6A, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x82, - 0x82, - 0x67, - 0x05, - 0x96, - 0x00, - 0x3C, - 0xAB, - 0x96, - 0x95, - 0xAB, - 0xAA, - 0x95, - 0x94, - 0xAA, - 0x94, - 0x94, - 0xAA, - 0xAA, - 0x94, - 0xCE, - 0xA8, - 0xBC, - 0xBD, - 0xA4, - 0xA8, - 0xC3, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xA5, - 0xBA, - 0x94, - 0x95, - 0x94, - 0xBE, - 0xBD, - 0x90, - 0xBD, - 0xBC, - 0xBC, - 0xAA, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xA4, - 0xB9, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0x90, - 0xA5, - 0x05, - 0x90, - 0x00, - 0x15, - 0xBA, - 0xBA, - 0x90, - 0x90, - 0x77, - 0xA7, - 0xA2, - 0x77, - 0x74, - 0x75, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x74, - 0x77, - 0x74, - 0x8D, - 0x00, - 0x04, - 0x74, - 0x00, - 0x0D, - 0x5E, - 0x74, - 0x74, - 0x77, - 0x74, - 0x74, - 0x74, - 0x60, - 0x4D, - 0x75, - 0x74, - 0x75, - 0x4B, - 0x00, - 0x0C, - 0x75, - 0x00, - 0x3E, - 0x47, - 0x75, - 0x70, - 0x75, - 0x4C, - 0x6F, - 0x75, - 0x4C, - 0x70, - 0x4C, - 0x60, - 0x70, - 0x4C, - 0x70, - 0x75, - 0x75, - 0x75, - 0x70, - 0x60, - 0x60, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x60, - 0x70, - 0x60, - 0x70, - 0x63, - 0x60, - 0xA7, - 0xA6, - 0x48, - 0x74, - 0xA6, - 0xA9, - 0x70, - 0xA6, - 0x4C, - 0x70, - 0x60, - 0x93, - 0x75, - 0x75, - 0x75, - 0x4C, - 0x39, - 0x2D, - 0x49, - 0x2F, - 0x2D, - 0x39, - 0x2D, - 0x39, - 0x39, - 0x49, - 0x39, - 0x49, - 0x39, - 0x39, - 0x39, - 0x4D, - 0x06, - 0x39, - 0x00, - 0x15, - 0x2E, - 0x39, - 0x4D, - 0x75, - 0x75, - 0x75, - 0x7B, - 0xA9, - 0x7B, - 0xC5, - 0xA6, - 0x4B, - 0x75, - 0x75, - 0x75, - 0x74, - 0x75, - 0x74, - 0x74, - 0x74, - 0x77, - 0x00, - 0x09, - 0x74, - 0x00, - 0x13, - 0x8D, - 0x74, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0xA7, - 0x90, - 0x90, - 0x90, - 0xBA, - 0x00, - 0x06, - 0x90, - 0x00, - 0x09, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x09, - 0xA4, - 0xB9, - 0xB9, - 0xA4, - 0xCE, - 0xA8, - 0xBE, - 0xBC, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6E, - 0xD6, - 0x6E, - 0x00, - 0x09, - 0xD6, - 0x00, - 0x07, - 0x9D, - 0x6D, - 0x56, - 0x6D, - 0x55, - 0x55, - 0x55, - 0x00, - 0x09, - 0x6B, - 0x00, - 0x08, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x09, - 0x6A, - 0x85, - 0x6B, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x01, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x37, - 0xAB, - 0x96, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xBF, - 0xAA, - 0xAA, - 0x94, - 0x94, - 0xA8, - 0xA8, - 0x94, - 0x95, - 0x96, - 0x94, - 0xA4, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0x92, - 0xA5, - 0xB9, - 0xBD, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0x92, - 0x92, - 0xBC, - 0xBC, - 0xA8, - 0xAA, - 0xBC, - 0xA8, - 0xCD, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0x00, - 0x04, - 0xBA, - 0x05, - 0x90, - 0x00, - 0x23, - 0xBA, - 0xBA, - 0x90, - 0x90, - 0xA7, - 0xA7, - 0x77, - 0xA7, - 0x8D, - 0x75, - 0x74, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x5E, - 0x74, - 0x74, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x74, - 0x5E, - 0x8D, - 0x74, - 0x74, - 0x4B, - 0x4D, - 0x4C, - 0x74, - 0x00, - 0x04, - 0x75, - 0x01, - 0x4B, - 0x0B, - 0x75, - 0x00, - 0x20, - 0x4C, - 0x75, - 0x4C, - 0x70, - 0x75, - 0x75, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x75, - 0x70, - 0x4C, - 0x75, - 0x75, - 0x60, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x60, - 0x70, - 0x70, - 0x60, - 0x70, - 0x63, - 0xD9, - 0x4C, - 0xA7, - 0xA6, - 0xA3, - 0x04, - 0x75, - 0x00, - 0x10, - 0x70, - 0x75, - 0x60, - 0x70, - 0x74, - 0xA6, - 0xA9, - 0x75, - 0x74, - 0x91, - 0x4D, - 0x39, - 0x39, - 0x60, - 0x4D, - 0x64, - 0x06, - 0x39, - 0x00, - 0x03, - 0x49, - 0x5D, - 0x48, - 0x00, - 0x08, - 0x39, - 0x01, - 0x4C, - 0x04, - 0x75, - 0x00, - 0x0E, - 0x74, - 0x93, - 0x97, - 0x74, - 0x75, - 0x75, - 0x74, - 0x75, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x74, - 0x8D, - 0x07, - 0x74, - 0x00, - 0x15, - 0x77, - 0x5E, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x90, - 0x77, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0xBA, - 0x92, - 0x00, - 0x04, - 0x90, - 0x00, - 0x19, - 0xBA, - 0x90, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xB9, - 0xA5, - 0xBD, - 0x92, - 0xB9, - 0xBD, - 0xA4, - 0xBD, - 0xB9, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xBE, - 0xBC, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x01, - 0x8A, - 0x01, - 0x6E, - 0x08, - 0x8A, - 0x00, - 0x0F, - 0x9D, - 0x8A, - 0x6E, - 0xD6, - 0x6E, - 0x6E, - 0x6D, - 0x6D, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x87, - 0x87, - 0x55, - 0x00, - 0x07, - 0x6B, - 0x00, - 0x0E, - 0x85, - 0x85, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x6A, - 0x6B, - 0x6A, - 0x6A, - 0x85, - 0x05, - 0x6A, - 0x00, - 0x5F, - 0x82, - 0x6A, - 0x82, - 0x80, - 0x7C, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0xBD, - 0xBC, - 0x96, - 0x7C, - 0x98, - 0xAB, - 0xB9, - 0xA8, - 0xBD, - 0xB9, - 0xBD, - 0xA4, - 0x92, - 0xA5, - 0x95, - 0x95, - 0xAA, - 0xAA, - 0xBD, - 0xBA, - 0x94, - 0x94, - 0xBE, - 0xBC, - 0xAA, - 0xBC, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xA4, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA5, - 0xBA, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0xA7, - 0x74, - 0x75, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x00, - 0x06, - 0x74, - 0x00, - 0x0A, - 0x90, - 0x74, - 0x74, - 0x60, - 0x3C, - 0x74, - 0x74, - 0x74, - 0x75, - 0x74, - 0x04, - 0x75, - 0x01, - 0x4B, - 0x0B, - 0x75, - 0x00, - 0x3A, - 0x4C, - 0x75, - 0x6F, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x70, - 0x70, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x75, - 0x70, - 0x75, - 0x4C, - 0x4C, - 0x4C, - 0x70, - 0x60, - 0x75, - 0xA6, - 0xA6, - 0x70, - 0x7B, - 0xA9, - 0x6F, - 0x4C, - 0x70, - 0x4C, - 0x75, - 0x74, - 0x75, - 0x4C, - 0x70, - 0x75, - 0xA6, - 0x75, - 0x75, - 0x75, - 0xA9, - 0x4D, - 0x39, - 0x60, - 0x4D, - 0x93, - 0x60, - 0x91, - 0x4D, - 0x39, - 0x39, - 0x60, - 0x48, - 0x60, - 0x60, - 0x04, - 0x39, - 0x00, - 0x04, - 0x4D, - 0x39, - 0x39, - 0x3C, - 0x07, - 0x75, - 0x00, - 0x03, - 0x6F, - 0x75, - 0x75, - 0x00, - 0x08, - 0x74, - 0x01, - 0x77, - 0x05, - 0x74, - 0x00, - 0x0A, - 0x8D, - 0x74, - 0x8D, - 0xA6, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x04, - 0x77, - 0x00, - 0x03, - 0xA7, - 0xA7, - 0xA7, - 0x00, - 0x04, - 0x90, - 0x00, - 0x14, - 0xBA, - 0xA5, - 0x90, - 0xBA, - 0x90, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xB9, - 0xB9, - 0xB9, - 0xA4, - 0x04, - 0xB9, - 0x00, - 0x07, - 0xA8, - 0xCD, - 0xA8, - 0xCD, - 0xAA, - 0xA8, - 0xBF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x05, - 0x56, - 0x00, - 0x1A, - 0x6D, - 0x6D, - 0x6D, - 0x8A, - 0x6E, - 0xD6, - 0x9D, - 0x87, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x55, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x85, - 0x6B, - 0x05, - 0x85, - 0x00, - 0x0E, - 0x6B, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x67, - 0x06, - 0x96, - 0x00, - 0x2E, - 0xAB, - 0x96, - 0xAB, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0xAB, - 0xAB, - 0x94, - 0x94, - 0xBE, - 0xBD, - 0x96, - 0x7C, - 0x7C, - 0xAB, - 0xB9, - 0xB9, - 0xA8, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0x7A, - 0xAB, - 0xAB, - 0xAA, - 0x94, - 0xBA, - 0x92, - 0xAA, - 0xBE, - 0x94, - 0xBE, - 0xAA, - 0xBC, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xB9, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0x05, - 0xB9, - 0x00, - 0x0D, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0xA5, - 0x00, - 0x05, - 0x90, - 0x00, - 0x22, - 0xA7, - 0x90, - 0x77, - 0x75, - 0x74, - 0xA7, - 0x77, - 0xA7, - 0x8D, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x5E, - 0x8D, - 0x74, - 0xA6, - 0x74, - 0xB8, - 0x8D, - 0x75, - 0x3C, - 0x4B, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x74, - 0x75, - 0x74, - 0x04, - 0x75, - 0x01, - 0x4B, - 0x09, - 0x75, - 0x01, - 0x74, - 0x05, - 0x75, - 0x00, - 0x3D, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x47, - 0x75, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0x70, - 0x70, - 0x75, - 0x70, - 0x4C, - 0x70, - 0x4C, - 0xA6, - 0xA3, - 0xA9, - 0x75, - 0x6F, - 0x70, - 0x75, - 0x75, - 0x75, - 0x60, - 0xA6, - 0x74, - 0x70, - 0x4C, - 0xA3, - 0xA9, - 0x74, - 0xA6, - 0xA6, - 0x4D, - 0x39, - 0x39, - 0x39, - 0x2D, - 0x22, - 0x39, - 0x93, - 0x60, - 0x39, - 0x4D, - 0x4D, - 0x60, - 0x75, - 0x4D, - 0x60, - 0x2C, - 0x39, - 0x39, - 0x75, - 0x60, - 0x75, - 0xA3, - 0x4B, - 0x00, - 0x04, - 0x75, - 0x00, - 0x06, - 0x74, - 0x75, - 0x74, - 0x4B, - 0x74, - 0x4B, - 0x06, - 0x74, - 0x00, - 0x0A, - 0x90, - 0x74, - 0x74, - 0x77, - 0x74, - 0x8D, - 0x77, - 0x77, - 0x63, - 0x8D, - 0x05, - 0x77, - 0x00, - 0x1D, - 0xB8, - 0x77, - 0xB8, - 0x90, - 0xB8, - 0x77, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xBA, - 0x92, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xBA, - 0xA5, - 0xA5, - 0x92, - 0x92, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xB9, - 0x92, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x0A, - 0xA8, - 0xBD, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xBE, - 0xBE, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x06, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x06, - 0x56, - 0x00, - 0x0E, - 0x6D, - 0x6D, - 0x56, - 0x56, - 0x9D, - 0xD6, - 0x8A, - 0x6D, - 0x87, - 0x34, - 0x87, - 0x6B, - 0x6A, - 0x85, - 0x06, - 0x6A, - 0x00, - 0x19, - 0x82, - 0x6A, - 0x82, - 0x85, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x6B, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x7C, - 0x00, - 0x06, - 0x96, - 0x00, - 0x3F, - 0xAB, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0x94, - 0xAB, - 0xAB, - 0xD0, - 0x94, - 0x94, - 0x94, - 0xC0, - 0x7C, - 0x96, - 0x94, - 0xA4, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0xBD, - 0x95, - 0x96, - 0x95, - 0xAB, - 0xBD, - 0x92, - 0xAA, - 0x95, - 0x94, - 0x94, - 0xBE, - 0xAA, - 0xBC, - 0xA8, - 0xBC, - 0xBD, - 0xCD, - 0xA8, - 0xCD, - 0xB9, - 0xB9, - 0xB9, - 0xA4, - 0xBD, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0xBA, - 0xBA, - 0xA5, - 0x90, - 0x92, - 0xBA, - 0x00, - 0x08, - 0x90, - 0x00, - 0x16, - 0xA6, - 0x4C, - 0x77, - 0xB8, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x77, - 0x77, - 0x8D, - 0x5E, - 0x74, - 0x90, - 0x74, - 0x4C, - 0x4C, - 0x06, - 0x74, - 0x00, - 0x06, - 0x4B, - 0x74, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x04, - 0x75, - 0x01, - 0x4B, - 0x06, - 0x75, - 0x00, - 0x03, - 0x4B, - 0x74, - 0x4C, - 0x00, - 0x09, - 0x75, - 0x00, - 0x3A, - 0x47, - 0x75, - 0x4C, - 0x75, - 0x47, - 0x75, - 0x75, - 0x47, - 0x60, - 0x75, - 0x75, - 0x60, - 0x70, - 0x75, - 0x75, - 0x4C, - 0x74, - 0x4C, - 0x70, - 0x75, - 0x75, - 0x75, - 0xA6, - 0x75, - 0x4C, - 0x70, - 0xA7, - 0x77, - 0xA3, - 0x75, - 0x74, - 0x93, - 0x39, - 0x39, - 0x4D, - 0xA7, - 0x60, - 0x8F, - 0xA9, - 0x60, - 0x39, - 0x4D, - 0x39, - 0x3C, - 0x48, - 0x39, - 0x4D, - 0x60, - 0x4D, - 0x2C, - 0x8F, - 0x60, - 0x74, - 0x74, - 0x75, - 0x75, - 0x74, - 0x4B, - 0x0D, - 0x74, - 0x00, - 0x0A, - 0x90, - 0x74, - 0x77, - 0x74, - 0x8D, - 0x77, - 0x74, - 0x8D, - 0x8D, - 0x77, - 0x05, - 0x8D, - 0x00, - 0x15, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x90, - 0xA7, - 0x90, - 0x8D, - 0x90, - 0x90, - 0x90, - 0xA5, - 0xA5, - 0x90, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0x00, - 0x06, - 0xA5, - 0x05, - 0xB9, - 0x01, - 0xA4, - 0x01, - 0xB9, - 0x04, - 0xA4, - 0x00, - 0x05, - 0xBC, - 0xBC, - 0xAA, - 0x94, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x06, - 0x8A, - 0x06, - 0x56, - 0x00, - 0x1A, - 0x6D, - 0x6D, - 0x56, - 0x56, - 0x6D, - 0x56, - 0xD6, - 0xD6, - 0x34, - 0x6D, - 0x55, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x6B, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x06, - 0x6B, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x04, - 0x6A, - 0x04, - 0x82, - 0x00, - 0x38, - 0x67, - 0x96, - 0x7C, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x95, - 0x95, - 0xAA, - 0xAA, - 0xAB, - 0xAB, - 0x94, - 0xAA, - 0xD0, - 0x94, - 0x94, - 0xA8, - 0xCE, - 0xA8, - 0xBC, - 0xA8, - 0xBD, - 0xA8, - 0xBD, - 0xB9, - 0x94, - 0x96, - 0xC3, - 0x96, - 0x95, - 0xA5, - 0x94, - 0xAA, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0xAB, - 0xBE, - 0xBC, - 0xBC, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xA4, - 0xBD, - 0x04, - 0xB9, - 0x00, - 0x0A, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0x92, - 0xB9, - 0x07, - 0x90, - 0x00, - 0x16, - 0xA7, - 0x90, - 0x74, - 0x74, - 0x77, - 0x77, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x77, - 0x74, - 0x90, - 0x75, - 0x60, - 0x0C, - 0x74, - 0x00, - 0x04, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x05, - 0x75, - 0x00, - 0x05, - 0x4B, - 0x75, - 0x75, - 0x74, - 0x74, - 0x00, - 0x10, - 0x75, - 0x00, - 0x12, - 0x4C, - 0x75, - 0x75, - 0x47, - 0x75, - 0x47, - 0x75, - 0x4C, - 0x6F, - 0x75, - 0x74, - 0x75, - 0x4C, - 0x75, - 0x47, - 0x75, - 0x75, - 0x47, - 0x04, - 0x75, - 0x00, - 0x1A, - 0x74, - 0x74, - 0xA6, - 0xA6, - 0x5D, - 0x39, - 0x4D, - 0x93, - 0x60, - 0x91, - 0x60, - 0x39, - 0x39, - 0x39, - 0x2C, - 0x3C, - 0x60, - 0x3C, - 0x75, - 0x75, - 0x39, - 0x4D, - 0x3C, - 0x74, - 0x74, - 0x75, - 0x05, - 0x74, - 0x01, - 0x4B, - 0x0A, - 0x74, - 0x00, - 0x08, - 0x77, - 0xA2, - 0x5E, - 0x74, - 0x8D, - 0x77, - 0xA7, - 0x90, - 0x0A, - 0xA9, - 0x01, - 0x92, - 0x01, - 0xBF, - 0x04, - 0x92, - 0x00, - 0x06, - 0xBF, - 0xBF, - 0xBD, - 0xBF, - 0xD0, - 0xC0, - 0x06, - 0xBF, - 0x00, - 0x17, - 0x94, - 0xD0, - 0xC0, - 0xD0, - 0xC0, - 0xAA, - 0xAA, - 0xBE, - 0xAA, - 0xBE, - 0xBE, - 0xCF, - 0xAA, - 0xCF, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xD1, - 0xC4, - 0xC2, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x05, - 0x56, - 0x00, - 0x24, - 0x6D, - 0x56, - 0x9D, - 0x6D, - 0x6D, - 0x56, - 0xD6, - 0xD6, - 0x34, - 0x6B, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x6A, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x05, - 0x6A, - 0x00, - 0x04, - 0x82, - 0x6A, - 0x82, - 0x7C, - 0x06, - 0x96, - 0x00, - 0x07, - 0xAB, - 0x96, - 0xAB, - 0x95, - 0xAA, - 0xAB, - 0xAB, - 0x00, - 0x04, - 0x94, - 0x00, - 0x22, - 0xD0, - 0x94, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xA4, - 0xA8, - 0xB9, - 0xA8, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x92, - 0xBD, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xAB, - 0xBE, - 0x94, - 0xBC, - 0xBC, - 0xA8, - 0xCD, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xA4, - 0x04, - 0xB9, - 0x00, - 0x0E, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0xBA, - 0x92, - 0x92, - 0xBA, - 0x08, - 0x90, - 0x00, - 0x18, - 0x77, - 0x75, - 0x77, - 0xB8, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x90, - 0x4C, - 0x75, - 0x8D, - 0x74, - 0x74, - 0x5E, - 0x09, - 0x74, - 0x00, - 0x07, - 0x4B, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x00, - 0x04, - 0x75, - 0x01, - 0x74, - 0x01, - 0x74, - 0x04, - 0x75, - 0x01, - 0x6F, - 0x15, - 0x75, - 0x01, - 0x74, - 0x0B, - 0x75, - 0x00, - 0x1D, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x39, - 0x39, - 0x4D, - 0x75, - 0x75, - 0x60, - 0x75, - 0x3C, - 0x4D, - 0x39, - 0x75, - 0x60, - 0x39, - 0x60, - 0x48, - 0x60, - 0x5D, - 0x75, - 0xA6, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x8D, - 0x00, - 0x09, - 0x74, - 0x00, - 0x09, - 0xA6, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x90, - 0x8D, - 0xA9, - 0xC0, - 0x00, - 0x0D, - 0xC2, - 0x01, - 0xDC, - 0x01, - 0xC2, - 0x08, - 0xDC, - 0x00, - 0x0C, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xDC, - 0xE6, - 0xDC, - 0xDC, - 0xE6, - 0xDC, - 0x05, - 0xE6, - 0x00, - 0x06, - 0xD4, - 0xE6, - 0xD4, - 0xE6, - 0xD4, - 0xE6, - 0x05, - 0xD4, - 0x00, - 0x03, - 0xEC, - 0xD4, - 0xE9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x6D, - 0x6D, - 0x56, - 0x8A, - 0x05, - 0x56, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x8A, - 0x00, - 0x04, - 0x6D, - 0x01, - 0xD6, - 0x01, - 0x9D, - 0x05, - 0x85, - 0x00, - 0x20, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x55, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x7C, - 0x07, - 0x96, - 0x00, - 0x3E, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0xAB, - 0x94, - 0xC0, - 0x94, - 0x94, - 0x94, - 0xBE, - 0x94, - 0xBC, - 0xBD, - 0xBC, - 0xA8, - 0xA8, - 0xB9, - 0x95, - 0x96, - 0x96, - 0x96, - 0x95, - 0xB9, - 0x95, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0xAB, - 0x95, - 0xBE, - 0x94, - 0xBC, - 0xBC, - 0xBC, - 0xBD, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xA8, - 0xBD, - 0xA4, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0x92, - 0x92, - 0x92, - 0xA5, - 0xB9, - 0x92, - 0x90, - 0xBA, - 0x08, - 0x90, - 0x00, - 0x0C, - 0x74, - 0x74, - 0xA7, - 0x90, - 0xA7, - 0xA7, - 0xB8, - 0xA7, - 0x8D, - 0xA7, - 0x8D, - 0xA7, - 0x05, - 0x77, - 0x00, - 0x06, - 0x4C, - 0x74, - 0x74, - 0x77, - 0x74, - 0xA6, - 0x0D, - 0x74, - 0x00, - 0x0F, - 0x4B, - 0x74, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x75, - 0x74, - 0x74, - 0x75, - 0x75, - 0x75, - 0x4B, - 0x75, - 0x4B, - 0x00, - 0x07, - 0x75, - 0x01, - 0x6F, - 0x0C, - 0x75, - 0x01, - 0x74, - 0x10, - 0x75, - 0x00, - 0x19, - 0x60, - 0x39, - 0x39, - 0x4D, - 0x39, - 0x3C, - 0x4D, - 0x39, - 0x4D, - 0x39, - 0x60, - 0x60, - 0x4D, - 0x4D, - 0x60, - 0x75, - 0x3C, - 0x4B, - 0x74, - 0xA6, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x63, - 0x00, - 0x05, - 0x74, - 0x01, - 0xA6, - 0x04, - 0x74, - 0x00, - 0x11, - 0x77, - 0x5E, - 0x8D, - 0xBF, - 0xC2, - 0xC2, - 0xBF, - 0x90, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0x77, - 0xB8, - 0x90, - 0xB8, - 0xA7, - 0x00, - 0x08, - 0x90, - 0x00, - 0x09, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xB9, - 0xBD, - 0xBA, - 0x92, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x17, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xA4, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0xD0, - 0x94, - 0xAB, - 0xAA, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x03, - 0x87, - 0x56, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x01, - 0x8A, - 0x05, - 0x6D, - 0x00, - 0x07, - 0xE1, - 0xC8, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x00, - 0x08, - 0x6A, - 0x00, - 0x0C, - 0x82, - 0x6A, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x07, - 0x6A, - 0x00, - 0x06, - 0x82, - 0x6A, - 0x82, - 0x67, - 0x7C, - 0x7C, - 0x07, - 0x96, - 0x00, - 0x03, - 0xAB, - 0x96, - 0x96, - 0x00, - 0x04, - 0xAA, - 0x01, - 0xBE, - 0x04, - 0x94, - 0x00, - 0x27, - 0xA8, - 0xBD, - 0xA8, - 0x94, - 0x96, - 0x7C, - 0x96, - 0xC3, - 0xB9, - 0x94, - 0x96, - 0x96, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0x96, - 0xAA, - 0x94, - 0xBE, - 0xBE, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBD, - 0xA8, - 0xA4, - 0xB9, - 0xB9, - 0xBD, - 0xA4, - 0xB9, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0x00, - 0x05, - 0xA5, - 0x00, - 0x08, - 0xBD, - 0x92, - 0xBA, - 0xA5, - 0x90, - 0xA5, - 0x90, - 0xBA, - 0x05, - 0x90, - 0x00, - 0x0A, - 0x75, - 0x63, - 0x77, - 0x74, - 0x63, - 0x77, - 0x74, - 0x63, - 0x74, - 0x63, - 0x07, - 0x74, - 0x00, - 0x07, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x5E, - 0x74, - 0x77, - 0x00, - 0x0F, - 0x74, - 0x00, - 0x07, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x74, - 0x75, - 0x74, - 0x00, - 0x05, - 0x75, - 0x00, - 0x05, - 0x4B, - 0x75, - 0x4B, - 0x75, - 0x4B, - 0x00, - 0x0E, - 0x75, - 0x01, - 0x74, - 0x0B, - 0x75, - 0x00, - 0x15, - 0xA3, - 0x74, - 0xA3, - 0x74, - 0x75, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x4C, - 0x75, - 0x75, - 0x4B, - 0x74, - 0x4C, - 0x75, - 0x75, - 0x75, - 0x00, - 0x04, - 0x74, - 0x00, - 0x04, - 0x5E, - 0x77, - 0x74, - 0x5E, - 0x06, - 0x74, - 0x00, - 0x0A, - 0x8D, - 0x5E, - 0x77, - 0x8D, - 0x77, - 0x74, - 0x77, - 0xC0, - 0xDC, - 0xA9, - 0x04, - 0x8D, - 0x00, - 0x0A, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0xA7, - 0x77, - 0x90, - 0x90, - 0xA7, - 0x08, - 0x90, - 0x00, - 0x05, - 0xBA, - 0x90, - 0xA5, - 0x92, - 0xBD, - 0x00, - 0x05, - 0xA5, - 0x00, - 0x04, - 0xBD, - 0xA5, - 0xBD, - 0xA5, - 0x05, - 0xB9, - 0x00, - 0x0F, - 0xA4, - 0xA8, - 0xCD, - 0xA8, - 0xCD, - 0xA8, - 0xBC, - 0xBC, - 0xBE, - 0x94, - 0x94, - 0xAA, - 0xAB, - 0xAA, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x05, - 0x34, - 0x6D, - 0x34, - 0x56, - 0x8A, - 0x00, - 0x05, - 0x56, - 0x00, - 0x1D, - 0x8A, - 0x56, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x55, - 0x6B, - 0xE1, - 0xC8, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x55, - 0x00, - 0x04, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x05, - 0x6A, - 0x04, - 0x82, - 0x05, - 0x80, - 0x00, - 0x09, - 0x52, - 0x80, - 0x67, - 0x67, - 0x80, - 0x80, - 0x67, - 0x67, - 0x67, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x25, - 0x98, - 0x7C, - 0x96, - 0x96, - 0xAD, - 0x7C, - 0xAD, - 0x96, - 0x94, - 0xBD, - 0xAB, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0x96, - 0xAA, - 0x94, - 0x94, - 0x94, - 0xBE, - 0xBE, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xCD, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0xB9, - 0xB9, - 0xA8, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x09, - 0x92, - 0xA5, - 0xA5, - 0xBD, - 0xBD, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x00, - 0x07, - 0x90, - 0x00, - 0x05, - 0x77, - 0x74, - 0x75, - 0x74, - 0x4B, - 0x00, - 0x0A, - 0x75, - 0x00, - 0x0B, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x77, - 0x8D, - 0x77, - 0x74, - 0x8D, - 0x00, - 0x10, - 0x74, - 0x00, - 0x09, - 0x5E, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x75, - 0x74, - 0x00, - 0x09, - 0x75, - 0x00, - 0x05, - 0x74, - 0x75, - 0x75, - 0x75, - 0x4B, - 0x00, - 0x04, - 0x75, - 0x00, - 0x16, - 0x4B, - 0x8D, - 0x75, - 0x4B, - 0x75, - 0x4B, - 0x75, - 0x4B, - 0x74, - 0x75, - 0x74, - 0x75, - 0x75, - 0x4B, - 0x77, - 0xA7, - 0x74, - 0xA6, - 0x74, - 0x74, - 0x74, - 0x75, - 0x05, - 0x74, - 0x00, - 0x07, - 0x4B, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x74, - 0x5E, - 0x00, - 0x0B, - 0x74, - 0x00, - 0x18, - 0x77, - 0x74, - 0x8D, - 0x63, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0xC2, - 0xDA, - 0xBA, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0x77, - 0x90, - 0x77, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x09, - 0x90, - 0x00, - 0x0B, - 0xA5, - 0x90, - 0xBA, - 0xA5, - 0xBA, - 0xBD, - 0xBD, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x14, - 0xA4, - 0xBD, - 0xA4, - 0xBD, - 0xA4, - 0xBC, - 0xBC, - 0xBD, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0x94, - 0x94, - 0x94, - 0x95, - 0xAA, - 0xAB, - 0xAA, - 0xAC, - 0x00, - 0x00, - 0x01, - 0x56, - 0x01, - 0x56, - 0x04, - 0x6D, - 0x00, - 0x05, - 0x87, - 0x6D, - 0x8A, - 0x8A, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x01, - 0x8A, - 0x04, - 0x6D, - 0x00, - 0x05, - 0x6B, - 0x6B, - 0x6B, - 0xE1, - 0xC8, - 0x00, - 0x04, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x13, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x6A, - 0x6B, - 0x6B, - 0x85, - 0x55, - 0x6B, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x04, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0B, - 0x52, - 0x82, - 0x82, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x67, - 0xAE, - 0x67, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x14, - 0x96, - 0x7C, - 0xAB, - 0xB9, - 0x95, - 0x96, - 0x96, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAB, - 0xAA, - 0x96, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0x04, - 0xBC, - 0x00, - 0x1C, - 0xA8, - 0xCD, - 0xA8, - 0xCD, - 0xA8, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0x92, - 0xA5, - 0xBD, - 0xBD, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x90, - 0xA5, - 0x90, - 0x90, - 0xBA, - 0x05, - 0x90, - 0x00, - 0x1A, - 0xA7, - 0x90, - 0xA7, - 0x90, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xBA, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x5E, - 0x77, - 0x74, - 0x5E, - 0x07, - 0x74, - 0x01, - 0x5E, - 0x04, - 0x74, - 0x00, - 0x07, - 0x8D, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x00, - 0x04, - 0x74, - 0x00, - 0x06, - 0x75, - 0x74, - 0x75, - 0x74, - 0x75, - 0x74, - 0x08, - 0x75, - 0x00, - 0x04, - 0x74, - 0x75, - 0x75, - 0x8D, - 0x0A, - 0x75, - 0x00, - 0x08, - 0x4B, - 0x75, - 0xA7, - 0xA6, - 0x4B, - 0x74, - 0x74, - 0xA6, - 0x08, - 0x74, - 0x01, - 0x5E, - 0x01, - 0x77, - 0x0B, - 0x74, - 0x00, - 0x18, - 0x8D, - 0x74, - 0x8D, - 0x74, - 0x8D, - 0x63, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x77, - 0x77, - 0xC2, - 0xC0, - 0x8D, - 0x90, - 0x8D, - 0xA7, - 0x77, - 0x8D, - 0xA7, - 0xB8, - 0x77, - 0xA7, - 0x09, - 0x90, - 0x00, - 0x12, - 0xBA, - 0x90, - 0xA5, - 0x90, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBD, - 0xBD, - 0xA5, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xBD, - 0x04, - 0xB9, - 0x00, - 0x12, - 0xBD, - 0xCD, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0x94, - 0xBE, - 0xBE, - 0x94, - 0xC0, - 0x94, - 0xAA, - 0x96, - 0x95, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x1A, - 0x6D, - 0x6D, - 0x56, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x6D, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x6D, - 0x6D, - 0x56, - 0x6D, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x9D, - 0xC8, - 0x04, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x06, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x85, - 0x05, - 0x6B, - 0x00, - 0x0E, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x06, - 0x82, - 0x04, - 0x80, - 0x00, - 0x05, - 0x82, - 0x82, - 0x52, - 0x52, - 0x52, - 0x00, - 0x05, - 0x67, - 0x01, - 0x7C, - 0x01, - 0x7F, - 0x05, - 0x7C, - 0x01, - 0xA8, - 0x01, - 0x94, - 0x05, - 0x96, - 0x00, - 0x09, - 0xAB, - 0x96, - 0x95, - 0xAB, - 0x96, - 0xAA, - 0xAA, - 0x94, - 0x95, - 0x00, - 0x04, - 0x94, - 0x00, - 0x1F, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBD, - 0xA8, - 0xB9, - 0xA8, - 0xB9, - 0xA4, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA5, - 0xBD, - 0xBD, - 0xA5, - 0x92, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x00, - 0x06, - 0x90, - 0x00, - 0x0B, - 0xA7, - 0x90, - 0x90, - 0x90, - 0x77, - 0xA7, - 0xB8, - 0x77, - 0x8D, - 0xBA, - 0xB8, - 0x00, - 0x04, - 0x77, - 0x00, - 0x17, - 0xB8, - 0x77, - 0x77, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x74, - 0x74, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x5E, - 0x74, - 0x74, - 0x74, - 0x8D, - 0x8D, - 0x00, - 0x06, - 0x74, - 0x00, - 0x08, - 0x4B, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x4B, - 0x04, - 0x74, - 0x00, - 0x11, - 0x4B, - 0xA3, - 0x4B, - 0x74, - 0x75, - 0x4B, - 0x75, - 0x74, - 0x8D, - 0x74, - 0x75, - 0x74, - 0xA3, - 0x4B, - 0xA3, - 0x74, - 0x4B, - 0x00, - 0x04, - 0x74, - 0x00, - 0x08, - 0x4B, - 0xA6, - 0x77, - 0x4B, - 0x74, - 0x74, - 0x77, - 0x4B, - 0x05, - 0x74, - 0x00, - 0x04, - 0xA6, - 0x8D, - 0x8D, - 0xA6, - 0x05, - 0x74, - 0x00, - 0x1E, - 0x8D, - 0x74, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x77, - 0x5E, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xC2, - 0xC0, - 0x8D, - 0x77, - 0xBA, - 0x77, - 0x8D, - 0xA7, - 0xA7, - 0x77, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x0A, - 0x90, - 0x00, - 0x0A, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xBD, - 0xBD, - 0x92, - 0x05, - 0xB9, - 0x00, - 0x17, - 0xA4, - 0xA8, - 0xB9, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0x94, - 0x95, - 0x94, - 0xAA, - 0xAA, - 0xAA, - 0x96, - 0xAB, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x01, - 0x6D, - 0x01, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x17, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0xE1, - 0xC8, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x00, - 0x06, - 0x6A, - 0x00, - 0x06, - 0x82, - 0x6A, - 0x6B, - 0x6B, - 0x6B, - 0x55, - 0x05, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x06, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x00, - 0x05, - 0x67, - 0x00, - 0x03, - 0x7C, - 0x80, - 0x67, - 0x00, - 0x05, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x08, - 0xAD, - 0x96, - 0xAB, - 0xAB, - 0xAA, - 0xBD, - 0xAB, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x17, - 0x95, - 0x96, - 0xAB, - 0x7C, - 0xAB, - 0xAA, - 0x95, - 0xAA, - 0x94, - 0xC0, - 0x94, - 0xBE, - 0x94, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xCD, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xBD, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x05, - 0xBD, - 0x92, - 0xB9, - 0xBD, - 0xBD, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x09, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0x90, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x00, - 0x07, - 0x90, - 0x00, - 0x23, - 0xA7, - 0x90, - 0xA7, - 0x77, - 0xA7, - 0x77, - 0xA5, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x74, - 0x77, - 0x5E, - 0xA6, - 0x77, - 0x74, - 0x74, - 0x74, - 0xA6, - 0x74, - 0x74, - 0x74, - 0x8D, - 0x77, - 0x00, - 0x10, - 0x74, - 0x01, - 0x4B, - 0x05, - 0x74, - 0x00, - 0x18, - 0x4B, - 0x74, - 0x74, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x74, - 0x4B, - 0x74, - 0x77, - 0x77, - 0xA6, - 0x74, - 0xA7, - 0xA7, - 0x05, - 0x74, - 0x00, - 0x25, - 0x77, - 0x77, - 0x74, - 0x77, - 0x74, - 0xA7, - 0x74, - 0x77, - 0x8D, - 0x8D, - 0xB8, - 0x74, - 0x5E, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xC2, - 0xC0, - 0x8D, - 0x77, - 0x8D, - 0xBA, - 0x77, - 0xA7, - 0x77, - 0x90, - 0x90, - 0xA7, - 0x00, - 0x0A, - 0x90, - 0x00, - 0x29, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0xBD, - 0xA8, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xA8, - 0xA4, - 0xBC, - 0xCD, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0xBE, - 0xBE, - 0x94, - 0xC0, - 0x94, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0x96, - 0xAB, - 0x97, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x56, - 0x6D, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x34, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x6D, - 0x6D, - 0x56, - 0x6D, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0xE1, - 0xC8, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x04, - 0x6B, - 0x00, - 0x03, - 0x55, - 0x6B, - 0x6B, - 0x00, - 0x06, - 0x85, - 0x00, - 0x03, - 0x6A, - 0x6A, - 0x85, - 0x00, - 0x06, - 0x6A, - 0x00, - 0x4E, - 0x82, - 0x82, - 0x67, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0x7C, - 0x7C, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0xAA, - 0xBE, - 0x94, - 0xBE, - 0x94, - 0xA8, - 0xBD, - 0xA8, - 0xAA, - 0x7C, - 0x7C, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x95, - 0x7C, - 0x95, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xAA, - 0x94, - 0xBE, - 0xBE, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBD, - 0xA8, - 0xBD, - 0xA4, - 0xA4, - 0xB9, - 0xB9, - 0xB9, - 0xA8, - 0xB9, - 0xB9, - 0xA5, - 0xBD, - 0xA8, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x90, - 0xBA, - 0x0D, - 0x90, - 0x00, - 0x1E, - 0xA7, - 0xBA, - 0xA7, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x8D, - 0x74, - 0x77, - 0x5E, - 0x74, - 0x74, - 0xA6, - 0x74, - 0x77, - 0x8D, - 0x14, - 0x74, - 0x00, - 0x0B, - 0x77, - 0x74, - 0x77, - 0x74, - 0x74, - 0x74, - 0x77, - 0x74, - 0x74, - 0x74, - 0x4B, - 0x00, - 0x07, - 0x74, - 0x01, - 0x63, - 0x05, - 0x74, - 0x00, - 0x2A, - 0x77, - 0x74, - 0x74, - 0x5E, - 0x74, - 0x74, - 0x8D, - 0xA6, - 0x8D, - 0x90, - 0x8D, - 0x74, - 0x74, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0xC2, - 0xC0, - 0x77, - 0x8D, - 0xA7, - 0xA7, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x0A, - 0x90, - 0x00, - 0x2B, - 0xA5, - 0x90, - 0xA5, - 0xBA, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBD, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA4, - 0xB9, - 0xA8, - 0xCD, - 0xBC, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0xBE, - 0xBF, - 0xAA, - 0x94, - 0xAA, - 0x95, - 0xAA, - 0xAB, - 0xAB, - 0x7C, - 0xAB, - 0xAC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x56, - 0x6D, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0xE1, - 0xC8, - 0x85, - 0x6A, - 0x85, - 0x05, - 0x6A, - 0x00, - 0x09, - 0x85, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x87, - 0x6B, - 0x85, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x00, - 0x0E, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x04, - 0x80, - 0x00, - 0x05, - 0x52, - 0x82, - 0x82, - 0x67, - 0x80, - 0x00, - 0x04, - 0x67, - 0x00, - 0x03, - 0x99, - 0x67, - 0x67, - 0x00, - 0x08, - 0x7C, - 0x01, - 0x96, - 0x01, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x2D, - 0xAB, - 0xAB, - 0x7C, - 0xAD, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xC0, - 0x94, - 0xBE, - 0xBE, - 0xBC, - 0xBC, - 0xA8, - 0xCD, - 0xA8, - 0xCD, - 0xBD, - 0xA8, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA8, - 0xB9, - 0xBD, - 0xBD, - 0xA5, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0x90, - 0xA5, - 0x00, - 0x09, - 0x90, - 0x00, - 0x27, - 0xA7, - 0x90, - 0x90, - 0xBA, - 0x90, - 0x77, - 0xB8, - 0x77, - 0x90, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x74, - 0x8D, - 0x74, - 0x77, - 0x8D, - 0x74, - 0xA6, - 0x74, - 0x74, - 0xA6, - 0x5E, - 0xA6, - 0x00, - 0x0D, - 0x74, - 0x00, - 0x0D, - 0x5E, - 0x74, - 0x8D, - 0x74, - 0x8D, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x77, - 0xA7, - 0x74, - 0x77, - 0x00, - 0x0E, - 0x74, - 0x00, - 0x25, - 0xA6, - 0x74, - 0x74, - 0x77, - 0x74, - 0xA7, - 0xB8, - 0x77, - 0x74, - 0x77, - 0x8D, - 0x77, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0xC2, - 0xC0, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0xA7, - 0xA5, - 0x90, - 0xA7, - 0x00, - 0x08, - 0x90, - 0x00, - 0x2F, - 0xBA, - 0x90, - 0xA5, - 0x90, - 0xBA, - 0xBA, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0xB9, - 0x92, - 0xBD, - 0xA8, - 0xBD, - 0xB9, - 0xB9, - 0xA4, - 0xB9, - 0xA8, - 0xBD, - 0xCD, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0x94, - 0xBE, - 0x94, - 0xAA, - 0x94, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0xAB, - 0x95, - 0x7C, - 0x96, - 0x97, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x6D, - 0x56, - 0x6D, - 0x04, - 0x6B, - 0x00, - 0x15, - 0x85, - 0x6B, - 0xC8, - 0xC8, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6B, - 0x55, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x06, - 0x82, - 0x00, - 0x17, - 0x80, - 0x82, - 0x82, - 0x52, - 0x80, - 0x80, - 0x80, - 0x99, - 0x52, - 0x67, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x99, - 0x67, - 0x7C, - 0x98, - 0x7C, - 0x7C, - 0x98, - 0x96, - 0x7C, - 0x00, - 0x06, - 0x96, - 0x00, - 0x05, - 0x7C, - 0x96, - 0x95, - 0xAB, - 0x95, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x25, - 0x94, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xA8, - 0xA8, - 0xB9, - 0xA4, - 0xB9, - 0xBD, - 0x94, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x90, - 0xA5, - 0x00, - 0x09, - 0x90, - 0x00, - 0x21, - 0xBA, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0x8D, - 0xA7, - 0xB8, - 0x77, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x74, - 0x5E, - 0x77, - 0x5E, - 0x00, - 0x0A, - 0x74, - 0x01, - 0xA6, - 0x06, - 0x74, - 0x00, - 0x0C, - 0xA6, - 0x74, - 0x77, - 0x74, - 0x74, - 0x90, - 0xA6, - 0x8D, - 0xD9, - 0xA7, - 0xD9, - 0xA7, - 0x05, - 0x74, - 0x01, - 0x8D, - 0x0A, - 0x74, - 0x01, - 0x8D, - 0x01, - 0x74, - 0x06, - 0x77, - 0x00, - 0x19, - 0x8D, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0xDC, - 0xC0, - 0x8D, - 0x77, - 0x77, - 0x90, - 0x90, - 0xA7, - 0xA5, - 0x00, - 0x07, - 0x90, - 0x01, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x2D, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xB9, - 0xA5, - 0xBC, - 0xBD, - 0xA4, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xA4, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xBC, - 0xA8, - 0xCE, - 0xBE, - 0xBE, - 0x94, - 0x94, - 0x94, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x96, - 0x7C, - 0xAB, - 0x97, - 0x00, - 0x00, - 0x00, - 0x06, - 0x56, - 0x05, - 0x8A, - 0x00, - 0x0C, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x55, - 0x04, - 0x6B, - 0x00, - 0x39, - 0x85, - 0x6B, - 0xE1, - 0xC8, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x6B, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x34, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x99, - 0x52, - 0x99, - 0x67, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x00, - 0x06, - 0x7C, - 0x00, - 0x03, - 0xAD, - 0x7C, - 0xAD, - 0x00, - 0x04, - 0x96, - 0x00, - 0x32, - 0x7C, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0x95, - 0x94, - 0xBE, - 0xBE, - 0x94, - 0xBC, - 0xA8, - 0xBC, - 0xBD, - 0xA8, - 0xBC, - 0xA4, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0x94, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0xBA, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xBA, - 0x05, - 0x90, - 0x00, - 0x32, - 0xA5, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0x77, - 0xA2, - 0x77, - 0xB8, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0x77, - 0x74, - 0x77, - 0x74, - 0x77, - 0x74, - 0x5E, - 0xA6, - 0x74, - 0x8D, - 0x74, - 0x74, - 0x74, - 0xA6, - 0x74, - 0x74, - 0xA6, - 0x05, - 0x74, - 0x00, - 0x38, - 0x90, - 0x74, - 0x77, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x74, - 0x74, - 0x77, - 0x74, - 0xB8, - 0x77, - 0x8D, - 0x8D, - 0xA6, - 0x77, - 0xB8, - 0xA7, - 0x77, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x5E, - 0x77, - 0xA7, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0x77, - 0xA7, - 0xC2, - 0xC0, - 0x77, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xBA, - 0x05, - 0x90, - 0x00, - 0x34, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xB9, - 0x92, - 0xA5, - 0xBD, - 0xA5, - 0xBD, - 0xB9, - 0xB9, - 0x94, - 0xA8, - 0xBD, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0xBD, - 0xCD, - 0xA8, - 0xBD, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0x94, - 0x94, - 0x94, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0xAB, - 0x95, - 0x96, - 0x95, - 0x96, - 0x7C, - 0x96, - 0x97, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6E, - 0x8A, - 0x6E, - 0x00, - 0x06, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x6D, - 0x00, - 0x04, - 0x6B, - 0x00, - 0x14, - 0x85, - 0x85, - 0x6B, - 0xC8, - 0xC8, - 0x6A, - 0x6A, - 0x85, - 0x85, - 0x55, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x6B, - 0x87, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x05, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x52, - 0x82, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x80, - 0x52, - 0x99, - 0x67, - 0x52, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x98, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x67, - 0x96, - 0x95, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0x94, - 0xC0, - 0x94, - 0x94, - 0xBE, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xA4, - 0xBD, - 0xCD, - 0xA8, - 0xB9, - 0xA4, - 0xBD, - 0xBE, - 0xB9, - 0xA4, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x07, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xBD, - 0x90, - 0xA7, - 0x00, - 0x05, - 0x90, - 0x00, - 0x55, - 0xA7, - 0xA7, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0xA7, - 0x90, - 0xA6, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x5E, - 0x8D, - 0x74, - 0x77, - 0x74, - 0x8D, - 0x5E, - 0x8D, - 0x74, - 0x5E, - 0x74, - 0x8D, - 0x74, - 0xA6, - 0x5E, - 0x90, - 0x74, - 0x77, - 0x74, - 0xA9, - 0x8D, - 0xA9, - 0x8D, - 0x74, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x5E, - 0x8D, - 0x77, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0x90, - 0xA6, - 0x77, - 0x8D, - 0xA7, - 0xB8, - 0x90, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x00, - 0x04, - 0x77, - 0x00, - 0x05, - 0xA7, - 0x77, - 0xA7, - 0xC2, - 0xC0, - 0x00, - 0x08, - 0x90, - 0x01, - 0xA5, - 0x07, - 0x90, - 0x00, - 0x0D, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0x92, - 0xA5, - 0xA5, - 0x00, - 0x05, - 0xB9, - 0x00, - 0x20, - 0x92, - 0xA8, - 0xD0, - 0xB9, - 0xA4, - 0xBD, - 0xA4, - 0xA8, - 0xCD, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0x94, - 0x94, - 0x94, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x96, - 0xAB, - 0x96, - 0x7C, - 0x96, - 0x97, - 0x00, - 0x00, - 0x00, - 0x04, - 0x6E, - 0x8A, - 0x6E, - 0x6E, - 0x06, - 0x8A, - 0x00, - 0x06, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x05, - 0x56, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x87, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x0E, - 0x85, - 0x6B, - 0xC8, - 0xC8, - 0x85, - 0x6A, - 0x6B, - 0x87, - 0x55, - 0x87, - 0x6B, - 0x55, - 0x6B, - 0x34, - 0x04, - 0x6B, - 0x01, - 0x85, - 0x01, - 0x6B, - 0x04, - 0x85, - 0x00, - 0x35, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x80, - 0x6A, - 0x6A, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x99, - 0x99, - 0x52, - 0x99, - 0x67, - 0x99, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x98, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x96, - 0xAD, - 0x7C, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x95, - 0x96, - 0x95, - 0x95, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x12, - 0x94, - 0x94, - 0x94, - 0xBE, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0x94, - 0x94, - 0xB9, - 0xB9, - 0xBD, - 0x06, - 0xB9, - 0x00, - 0x56, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xBA, - 0x90, - 0xBD, - 0x90, - 0xA2, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0x90, - 0x90, - 0x77, - 0x90, - 0xA7, - 0x77, - 0xA7, - 0xB8, - 0x90, - 0xA7, - 0x8D, - 0xA7, - 0x8D, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x77, - 0x8D, - 0xA6, - 0x8D, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x77, - 0xA6, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x90, - 0x8D, - 0x8D, - 0x77, - 0x74, - 0xA7, - 0xA9, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0xA7, - 0x8D, - 0x04, - 0x77, - 0x00, - 0x21, - 0xB8, - 0xA7, - 0x77, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x77, - 0xA7, - 0x90, - 0xBA, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xB8, - 0x77, - 0xA7, - 0xB8, - 0x77, - 0xB8, - 0x77, - 0x90, - 0xC2, - 0xC0, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0x00, - 0x04, - 0x90, - 0x00, - 0x3A, - 0xB9, - 0x90, - 0x90, - 0x90, - 0xBA, - 0xA5, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xBD, - 0xA5, - 0xA8, - 0xA4, - 0xB9, - 0xBC, - 0xBE, - 0xB9, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0xBE, - 0x94, - 0x94, - 0xC0, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0xAB, - 0x95, - 0xC3, - 0x96, - 0x96, - 0xAB, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x97, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x0C, - 0x8A, - 0x00, - 0x03, - 0x56, - 0x8A, - 0x8A, - 0x00, - 0x06, - 0x56, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x55, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x0D, - 0x85, - 0x6B, - 0xE1, - 0xC8, - 0x6B, - 0x55, - 0x87, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x87, - 0x00, - 0x07, - 0x6B, - 0x05, - 0x85, - 0x0A, - 0x6A, - 0x06, - 0x82, - 0x07, - 0x80, - 0x01, - 0x52, - 0x06, - 0x67, - 0x01, - 0x7C, - 0x01, - 0x67, - 0x07, - 0x7C, - 0x00, - 0x04, - 0x96, - 0x96, - 0x96, - 0x67, - 0x05, - 0x96, - 0x00, - 0x22, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAA, - 0xC0, - 0xAA, - 0x94, - 0xBE, - 0xBE, - 0x94, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xCD, - 0xA8, - 0xBE, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xB9, - 0xB9, - 0x06, - 0xA5, - 0x00, - 0x05, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0x00, - 0x04, - 0x90, - 0x01, - 0xBD, - 0x0D, - 0x90, - 0x01, - 0x77, - 0x01, - 0xA7, - 0x07, - 0x77, - 0x00, - 0x4F, - 0xA7, - 0x77, - 0x77, - 0x77, - 0x90, - 0xA7, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0xA6, - 0x77, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x8D, - 0xA6, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x90, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x74, - 0x77, - 0x8D, - 0x77, - 0xA6, - 0x8D, - 0xA7, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0xA7, - 0xA7, - 0x77, - 0xA7, - 0x8D, - 0x77, - 0x8D, - 0x8D, - 0x77, - 0x90, - 0xA7, - 0x8D, - 0x77, - 0x77, - 0xA7, - 0x77, - 0xA7, - 0x77, - 0x77, - 0xA7, - 0x77, - 0xA7, - 0xA7, - 0x77, - 0x90, - 0xDC, - 0xC0, - 0x77, - 0xA7, - 0x00, - 0x08, - 0x90, - 0x01, - 0xB9, - 0x05, - 0x90, - 0x01, - 0xBA, - 0x01, - 0x90, - 0x08, - 0xA5, - 0x01, - 0x92, - 0x0A, - 0xB9, - 0x00, - 0x18, - 0x94, - 0xBE, - 0xA4, - 0xA4, - 0xA8, - 0xA4, - 0xA8, - 0xCD, - 0xBC, - 0xBC, - 0x94, - 0x94, - 0x94, - 0xD0, - 0x94, - 0x94, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x04, - 0x96, - 0x00, - 0x03, - 0x67, - 0x7C, - 0x97, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6E, - 0x00, - 0x0A, - 0x8A, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x8A, - 0x8A, - 0x6E, - 0x6E, - 0x05, - 0x8A, - 0x01, - 0x56, - 0x01, - 0x9D, - 0x06, - 0x56, - 0x00, - 0x12, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0xD6, - 0xD6, - 0x6D, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x87, - 0x34, - 0x56, - 0x34, - 0x87, - 0x55, - 0x55, - 0x0A, - 0x6B, - 0x00, - 0x05, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x00, - 0x06, - 0x6A, - 0x00, - 0x06, - 0x9B, - 0x85, - 0x85, - 0x82, - 0x6A, - 0x6A, - 0x0C, - 0x82, - 0x00, - 0x04, - 0x80, - 0x80, - 0x80, - 0x52, - 0x04, - 0x80, - 0x00, - 0x05, - 0x52, - 0x67, - 0x80, - 0x6A, - 0x80, - 0x00, - 0x0B, - 0x67, - 0x06, - 0x7C, - 0x07, - 0x96, - 0x00, - 0x05, - 0xAB, - 0xAE, - 0xAE, - 0xAA, - 0xAB, - 0x00, - 0x07, - 0xAA, - 0x00, - 0x0A, - 0x94, - 0xD0, - 0x94, - 0xBE, - 0x94, - 0xD0, - 0x94, - 0xBD, - 0x94, - 0xBF, - 0x07, - 0xBD, - 0x00, - 0x0A, - 0xAA, - 0xBD, - 0xBD, - 0x92, - 0x92, - 0x92, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0x07, - 0xBA, - 0x00, - 0x06, - 0x90, - 0xBA, - 0xBA, - 0xBA, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x01, - 0xBA, - 0x01, - 0xBA, - 0x17, - 0x90, - 0x00, - 0x0D, - 0xB8, - 0x90, - 0x90, - 0xB9, - 0xA7, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xA2, - 0xA7, - 0x00, - 0x05, - 0x90, - 0x00, - 0x08, - 0xA7, - 0x90, - 0x90, - 0x90, - 0xBA, - 0xBA, - 0x90, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x07, - 0xBA, - 0xBD, - 0xBA, - 0xA7, - 0x90, - 0x90, - 0x90, - 0x00, - 0x06, - 0xBA, - 0x00, - 0x15, - 0x90, - 0xBA, - 0xDC, - 0xC2, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xB9, - 0xBD, - 0xD0, - 0xBD, - 0x92, - 0xB9, - 0xBD, - 0xB9, - 0x00, - 0x0A, - 0xBD, - 0x00, - 0x10, - 0xA8, - 0xBD, - 0x94, - 0xBD, - 0xBC, - 0x94, - 0xBE, - 0xD0, - 0xBE, - 0x94, - 0xBE, - 0xAA, - 0xD4, - 0xAE, - 0xBE, - 0xBE, - 0x06, - 0xAA, - 0x05, - 0xAB, - 0x04, - 0x96, - 0x08, - 0x7C, - 0x00, - 0x03, - 0x9B, - 0x6B, - 0xAF, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCB, - 0x01, - 0xCB, - 0x07, - 0x59, - 0x00, - 0x07, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0xCB, - 0xCB, - 0x00, - 0x05, - 0x6E, - 0x01, - 0xD6, - 0x01, - 0x6E, - 0x0B, - 0xD6, - 0x01, - 0x59, - 0x05, - 0xD6, - 0x00, - 0x0D, - 0x9D, - 0xD6, - 0xCB, - 0xD6, - 0x9D, - 0x9D, - 0xE1, - 0x9D, - 0xE1, - 0x9D, - 0xE1, - 0xC8, - 0x9D, - 0x00, - 0x0F, - 0xC8, - 0x00, - 0x1F, - 0x87, - 0xD6, - 0x6E, - 0xC8, - 0xC8, - 0xE0, - 0xC8, - 0x87, - 0xE0, - 0x87, - 0xE0, - 0xC8, - 0xE0, - 0x87, - 0xE0, - 0xE0, - 0xE0, - 0xB2, - 0xE0, - 0xB2, - 0xE0, - 0xB2, - 0xE0, - 0xB2, - 0xE0, - 0xB2, - 0xE0, - 0xE0, - 0xC8, - 0x6E, - 0xC8, - 0x00, - 0x04, - 0xE0, - 0x00, - 0x18, - 0xC7, - 0x9B, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x80, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x6B, - 0x6B, - 0x67, - 0x06, - 0x7C, - 0x05, - 0x96, - 0x04, - 0xAB, - 0x00, - 0x14, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xD0, - 0xA8, - 0xBD, - 0xAA, - 0xD4, - 0xAA, - 0xA4, - 0xBD, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0x92, - 0x04, - 0xA5, - 0x00, - 0x05, - 0x92, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0x00, - 0x08, - 0x90, - 0x00, - 0x39, - 0xBE, - 0xCF, - 0x90, - 0xA7, - 0x90, - 0xA7, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0x90, - 0x77, - 0xA7, - 0x77, - 0xA7, - 0xA7, - 0xB8, - 0xA7, - 0xA7, - 0xA7, - 0x77, - 0xB8, - 0x77, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0xBA, - 0xCF, - 0xA5, - 0xB8, - 0x77, - 0xB8, - 0xA7, - 0x90, - 0xA7, - 0xA7, - 0x90, - 0xB8, - 0xB8, - 0xA7, - 0xB8, - 0x77, - 0x90, - 0xA7, - 0xA7, - 0xB8, - 0xA7, - 0xB8, - 0x90, - 0xB8, - 0x90, - 0x90, - 0x90, - 0xA7, - 0xBE, - 0xCF, - 0x00, - 0x04, - 0x90, - 0x01, - 0xA7, - 0x06, - 0x90, - 0x00, - 0x31, - 0xBA, - 0xDC, - 0xC2, - 0x90, - 0x90, - 0xBA, - 0xBA, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0x92, - 0x90, - 0xBD, - 0xE4, - 0xBD, - 0xA5, - 0x92, - 0x92, - 0x92, - 0xBD, - 0x92, - 0xBD, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xA8, - 0xBD, - 0xBD, - 0xA8, - 0xBD, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xCE, - 0xBC, - 0x99, - 0xDE, - 0xAB, - 0xBC, - 0x94, - 0xC0, - 0x94, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x05, - 0x95, - 0xAB, - 0xAB, - 0x96, - 0xAD, - 0x00, - 0x05, - 0x96, - 0x00, - 0x0A, - 0xAD, - 0x96, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0x98, - 0x82, - 0x6A, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x03, - 0x6E, - 0x6E, - 0x59, - 0x00, - 0x0C, - 0x6E, - 0x00, - 0x04, - 0x59, - 0x6E, - 0x8A, - 0x6E, - 0x08, - 0x8A, - 0x01, - 0x9D, - 0x01, - 0x8A, - 0x06, - 0x9D, - 0x00, - 0x0F, - 0xD6, - 0xD6, - 0x9D, - 0x6D, - 0x6D, - 0xC8, - 0x9D, - 0x8A, - 0x6D, - 0xC8, - 0x87, - 0x6D, - 0x6D, - 0x87, - 0x6D, - 0x00, - 0x13, - 0x87, - 0x00, - 0x10, - 0xC8, - 0x9D, - 0x87, - 0xB2, - 0x87, - 0x87, - 0xB2, - 0x87, - 0x87, - 0xB2, - 0xB2, - 0xB2, - 0x87, - 0xB2, - 0x87, - 0xB2, - 0x04, - 0x87, - 0x00, - 0x04, - 0xB2, - 0xB2, - 0x87, - 0xB2, - 0x04, - 0x87, - 0x01, - 0x9D, - 0x05, - 0x87, - 0x00, - 0x05, - 0xC8, - 0xC8, - 0xE1, - 0xC8, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x0A, - 0x6A, - 0x01, - 0x6B, - 0x01, - 0x6B, - 0x06, - 0x82, - 0x00, - 0x05, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x00, - 0x06, - 0x67, - 0x05, - 0x7C, - 0x04, - 0x96, - 0x00, - 0x0D, - 0x80, - 0x96, - 0x95, - 0xAA, - 0xC0, - 0x94, - 0x94, - 0x94, - 0xBD, - 0xA8, - 0xBD, - 0xA8, - 0xBD, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x0C, - 0xA5, - 0xB9, - 0xA5, - 0xBA, - 0xA5, - 0x92, - 0xBA, - 0xBA, - 0x90, - 0x90, - 0xBD, - 0xBD, - 0x06, - 0x90, - 0x00, - 0x16, - 0xA7, - 0xA7, - 0xA7, - 0xB8, - 0x77, - 0xB8, - 0x77, - 0x8D, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0xA7, - 0xBD, - 0x90, - 0x04, - 0x77, - 0x00, - 0x24, - 0xA7, - 0x90, - 0xB8, - 0xA7, - 0x90, - 0x77, - 0x77, - 0x90, - 0xA7, - 0xA7, - 0xA7, - 0x77, - 0x77, - 0x8D, - 0x77, - 0x77, - 0xA7, - 0x77, - 0xB8, - 0xA7, - 0xB8, - 0x92, - 0xBD, - 0x90, - 0xA7, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xA7, - 0x90, - 0xBA, - 0xC4, - 0xD1, - 0x08, - 0x90, - 0x00, - 0x0B, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0x92, - 0xCF, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0xBA, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x25, - 0x92, - 0x92, - 0xB9, - 0x78, - 0xB9, - 0x92, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xA4, - 0xA4, - 0xBD, - 0xCD, - 0xA8, - 0xA4, - 0xAB, - 0x96, - 0xBD, - 0x94, - 0xBE, - 0x94, - 0xC0, - 0x94, - 0x94, - 0x95, - 0xAA, - 0x95, - 0xAB, - 0x95, - 0xAD, - 0xAB, - 0x95, - 0x96, - 0x95, - 0x95, - 0x00, - 0x05, - 0x96, - 0x00, - 0x06, - 0xAD, - 0x96, - 0x7C, - 0x67, - 0x7C, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x56, - 0x6E, - 0x8A, - 0x8A, - 0x56, - 0x04, - 0x8A, - 0x01, - 0x56, - 0x01, - 0x8A, - 0x07, - 0x56, - 0x01, - 0x6D, - 0x01, - 0x56, - 0x04, - 0x6D, - 0x00, - 0x0F, - 0x34, - 0x6D, - 0x34, - 0x55, - 0x34, - 0xD6, - 0xD6, - 0x6D, - 0x55, - 0x55, - 0x55, - 0x6D, - 0x55, - 0x55, - 0x55, - 0x00, - 0x17, - 0x6B, - 0x01, - 0x55, - 0x01, - 0x55, - 0x06, - 0x6B, - 0x0B, - 0x55, - 0x08, - 0x34, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x56, - 0x00, - 0x04, - 0x6D, - 0x00, - 0x06, - 0x56, - 0x56, - 0x56, - 0xD6, - 0x6E, - 0x6E, - 0x0E, - 0x56, - 0x00, - 0x0B, - 0x6D, - 0x56, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x87, - 0x87, - 0x55, - 0x55, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x22, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x52, - 0x80, - 0x82, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0x05, - 0xB9, - 0x00, - 0x07, - 0xA5, - 0xBD, - 0x92, - 0xA5, - 0xA5, - 0xBA, - 0xBA, - 0x00, - 0x0A, - 0x90, - 0x00, - 0x20, - 0x77, - 0xB8, - 0x77, - 0x90, - 0x77, - 0xA7, - 0xA7, - 0xA7, - 0x90, - 0xA7, - 0xA7, - 0x77, - 0xBA, - 0xA7, - 0xB8, - 0x90, - 0xB8, - 0x90, - 0xA7, - 0xA7, - 0xA7, - 0x90, - 0x77, - 0xB8, - 0x77, - 0x90, - 0xB8, - 0xA9, - 0xBA, - 0xA7, - 0x90, - 0xA7, - 0x0C, - 0x90, - 0x00, - 0x09, - 0xA7, - 0x90, - 0x90, - 0x90, - 0xA2, - 0x90, - 0xBF, - 0xE6, - 0xD1, - 0x00, - 0x04, - 0x90, - 0x00, - 0x18, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0xA5, - 0xBD, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0xB9, - 0xA5, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0x06, - 0xB9, - 0x00, - 0x0A, - 0xA8, - 0xCD, - 0xBD, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBE, - 0xAA, - 0xBC, - 0x04, - 0x94, - 0x00, - 0x18, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0xC3, - 0x95, - 0x95, - 0x95, - 0x96, - 0x95, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0x99, - 0x7C, - 0x7E, - 0x00, - 0x00, - 0x05, - 0x6E, - 0x00, - 0x11, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x6E, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x00, - 0x06, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x0F, - 0x34, - 0x6D, - 0x34, - 0x9D, - 0xD6, - 0x8A, - 0x6D, - 0x55, - 0x6D, - 0x55, - 0x55, - 0x87, - 0x55, - 0x55, - 0x87, - 0x00, - 0x0A, - 0x55, - 0x00, - 0x0A, - 0x87, - 0x55, - 0x55, - 0x55, - 0x87, - 0x55, - 0x55, - 0x34, - 0x87, - 0x87, - 0x09, - 0x6D, - 0x00, - 0x08, - 0x56, - 0x6D, - 0x56, - 0x56, - 0x56, - 0x9D, - 0x8A, - 0x56, - 0x06, - 0x8A, - 0x05, - 0x6E, - 0x00, - 0x03, - 0x59, - 0x6E, - 0x6E, - 0x00, - 0x04, - 0x59, - 0x00, - 0x0E, - 0x6E, - 0x6E, - 0x59, - 0x59, - 0xCB, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0xCB, - 0x09, - 0x59, - 0x00, - 0x03, - 0x6E, - 0x6E, - 0x59, - 0x00, - 0x05, - 0x6E, - 0x00, - 0x37, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x6D, - 0x56, - 0x6D, - 0x34, - 0x55, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x6B, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x94, - 0x94, - 0x94, - 0xA8, - 0xA8, - 0xA4, - 0xA4, - 0xA8, - 0xBD, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0x90, - 0xA5, - 0x00, - 0x0B, - 0x90, - 0x00, - 0x17, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x90, - 0xBA, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0x8D, - 0x77, - 0xA2, - 0x90, - 0x8D, - 0x90, - 0x90, - 0x90, - 0xA7, - 0x90, - 0x90, - 0xA2, - 0x00, - 0x04, - 0x90, - 0x01, - 0xBA, - 0x04, - 0x90, - 0x00, - 0x04, - 0xA2, - 0xBA, - 0xBA, - 0xBA, - 0x06, - 0x90, - 0x00, - 0x34, - 0xBF, - 0xC2, - 0xDC, - 0xBF, - 0x90, - 0x90, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBD, - 0xA5, - 0xA5, - 0xB9, - 0xA5, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0xBD, - 0xA4, - 0xA8, - 0xA4, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xD0, - 0xAA, - 0xAA, - 0x94, - 0xBE, - 0x94, - 0xAA, - 0x04, - 0x95, - 0x00, - 0x09, - 0xAB, - 0x95, - 0xAB, - 0x96, - 0xAB, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x00, - 0x04, - 0x96, - 0x05, - 0x7C, - 0x00, - 0x03, - 0x99, - 0x7C, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x03, - 0x8A, - 0x8A, - 0x6E, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x07, - 0x6E, - 0x6E, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x00, - 0x06, - 0x56, - 0x0C, - 0x6D, - 0x00, - 0x15, - 0x8A, - 0xD6, - 0xD6, - 0xD6, - 0x9D, - 0x9D, - 0x6D, - 0x6D, - 0xC8, - 0x6D, - 0x9D, - 0x6D, - 0x9D, - 0x6D, - 0x9D, - 0x6D, - 0x9D, - 0x6D, - 0x9D, - 0x9D, - 0x56, - 0x00, - 0x08, - 0x9D, - 0x00, - 0x03, - 0x8A, - 0x8A, - 0xD6, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x06, - 0xD6, - 0xD6, - 0x6E, - 0xD6, - 0x6E, - 0xD6, - 0x05, - 0x6E, - 0x00, - 0x05, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x00, - 0x06, - 0xCB, - 0x00, - 0x07, - 0x42, - 0xCB, - 0x42, - 0xCB, - 0xCB, - 0x42, - 0xCB, - 0x00, - 0x06, - 0xE7, - 0x01, - 0x35, - 0x12, - 0xE7, - 0x00, - 0x04, - 0xCB, - 0x42, - 0xCB, - 0x42, - 0x05, - 0xCB, - 0x00, - 0x1E, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x6E, - 0xD6, - 0xD6, - 0xD6, - 0x8A, - 0x8A, - 0x9D, - 0x9D, - 0x6D, - 0x6D, - 0x9D, - 0x87, - 0x87, - 0x87, - 0xB2, - 0xB2, - 0x85, - 0x85, - 0xC7, - 0x9B, - 0x9B, - 0x9B, - 0x82, - 0x82, - 0xD4, - 0x80, - 0x04, - 0x99, - 0x00, - 0x16, - 0xAE, - 0xAE, - 0xDC, - 0xC4, - 0xC4, - 0xC2, - 0xD1, - 0xC2, - 0xC2, - 0xD1, - 0xAA, - 0xAA, - 0xAA, - 0xC0, - 0xAA, - 0xD0, - 0xBE, - 0xD0, - 0xD0, - 0xBF, - 0xD0, - 0xD0, - 0x0D, - 0xBF, - 0x01, - 0xD0, - 0x0A, - 0xBF, - 0x00, - 0x08, - 0xD0, - 0xBF, - 0xBD, - 0x92, - 0xD0, - 0xC0, - 0xBF, - 0xD0, - 0x08, - 0xBF, - 0x00, - 0x45, - 0xC0, - 0xC0, - 0xE5, - 0xC0, - 0xC2, - 0xDC, - 0xBF, - 0xC2, - 0xDC, - 0xDC, - 0xAA, - 0x92, - 0x90, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xBD, - 0xCE, - 0xB9, - 0x92, - 0xB9, - 0xA8, - 0xB9, - 0xA4, - 0xA4, - 0xA4, - 0xB9, - 0xB9, - 0xA8, - 0xA4, - 0xA8, - 0xB9, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0x94, - 0x94, - 0x94, - 0xAB, - 0xAB, - 0xD0, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0xAB, - 0xAB, - 0xAB, - 0x96, - 0xAB, - 0x96, - 0x95, - 0x00, - 0x06, - 0x96, - 0x01, - 0x7C, - 0x01, - 0x96, - 0x05, - 0x7C, - 0x00, - 0x04, - 0x67, - 0x80, - 0x7C, - 0x7E, - 0x00, - 0x00, - 0x06, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x00, - 0x04, - 0x8A, - 0x01, - 0x6E, - 0x06, - 0x8A, - 0x01, - 0x56, - 0x01, - 0x8A, - 0x06, - 0x56, - 0x0B, - 0x6D, - 0x00, - 0x0A, - 0x9D, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x8A, - 0x12, - 0xD6, - 0x09, - 0x6E, - 0x01, - 0x59, - 0x01, - 0x6E, - 0x06, - 0x59, - 0x0A, - 0xCB, - 0x00, - 0x04, - 0x42, - 0xCB, - 0xE7, - 0xCB, - 0x0B, - 0xE7, - 0x00, - 0x03, - 0x35, - 0x35, - 0xE7, - 0x00, - 0x08, - 0x35, - 0x01, - 0xE7, - 0x01, - 0x35, - 0x08, - 0xE7, - 0x00, - 0x04, - 0xCB, - 0xE7, - 0xCB, - 0x42, - 0x05, - 0xCB, - 0x04, - 0x59, - 0x00, - 0x0A, - 0x6E, - 0x6E, - 0xD6, - 0xD6, - 0xD6, - 0x8A, - 0xD6, - 0xD6, - 0x9D, - 0x9D, - 0x04, - 0xC8, - 0x00, - 0x06, - 0xE0, - 0x87, - 0xE0, - 0xB2, - 0xE0, - 0xE0, - 0x04, - 0xC7, - 0x00, - 0x0E, - 0x9B, - 0xDE, - 0xDE, - 0xDE, - 0xD4, - 0xD4, - 0xD4, - 0xE6, - 0xD4, - 0xE6, - 0xD4, - 0xD4, - 0xDC, - 0xE6, - 0x09, - 0xDC, - 0x01, - 0xC4, - 0x01, - 0xC4, - 0x0D, - 0xC2, - 0x01, - 0xDC, - 0x0B, - 0xC2, - 0x00, - 0x04, - 0xC3, - 0x7A, - 0xA9, - 0xC0, - 0x0B, - 0xC2, - 0x00, - 0x1D, - 0xC4, - 0xDC, - 0xC4, - 0xE6, - 0xDC, - 0xDC, - 0xC2, - 0xAA, - 0xD0, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0xB9, - 0x92, - 0xB9, - 0xB9, - 0x94, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x11, - 0xA8, - 0xB9, - 0xBD, - 0xB9, - 0xA8, - 0xB9, - 0xA4, - 0xBD, - 0xCD, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0x00, - 0x04, - 0xBE, - 0x00, - 0x0C, - 0x94, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0xAB, - 0xC3, - 0x95, - 0xAB, - 0x95, - 0x05, - 0x96, - 0x00, - 0x05, - 0xAD, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x00, - 0x07, - 0x7C, - 0x00, - 0x03, - 0x80, - 0x67, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x12, - 0x8A, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x06, - 0x56, - 0x01, - 0x6D, - 0x01, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x0E, - 0x34, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x6D, - 0x34, - 0x34, - 0x87, - 0x34, - 0x55, - 0x0C, - 0x34, - 0x00, - 0x09, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x6D, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x00, - 0x06, - 0x56, - 0x01, - 0x8A, - 0x01, - 0x56, - 0x07, - 0x8A, - 0x08, - 0x6E, - 0x09, - 0x59, - 0x07, - 0xCB, - 0x01, - 0xE7, - 0x05, - 0xCB, - 0x01, - 0x42, - 0x08, - 0xCB, - 0x06, - 0x59, - 0x05, - 0x6E, - 0x04, - 0x8A, - 0x00, - 0x35, - 0x56, - 0x56, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x55, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xC3, - 0xAB, - 0x95, - 0xAA, - 0xC0, - 0x94, - 0xA8, - 0xBE, - 0xBE, - 0xA4, - 0xA4, - 0xA4, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0xA5, - 0x00, - 0x0C, - 0x90, - 0x01, - 0x92, - 0x0B, - 0x90, - 0x00, - 0x05, - 0x75, - 0x3C, - 0x3C, - 0x3C, - 0x77, - 0x00, - 0x06, - 0x90, - 0x00, - 0x34, - 0xA5, - 0xBA, - 0xBA, - 0x90, - 0xA5, - 0xA5, - 0xBA, - 0xDA, - 0xA5, - 0xBD, - 0xBD, - 0xD0, - 0xA5, - 0xA5, - 0x92, - 0xBA, - 0xB9, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xBE, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA4, - 0xCD, - 0xBD, - 0xA4, - 0xCE, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBE, - 0xBE, - 0x04, - 0x94, - 0x00, - 0x0C, - 0x95, - 0xAA, - 0xAA, - 0xAB, - 0x96, - 0x95, - 0x95, - 0x95, - 0x96, - 0x95, - 0x96, - 0xAB, - 0x05, - 0x96, - 0x00, - 0x08, - 0xAD, - 0x96, - 0x96, - 0x7C, - 0x98, - 0x7C, - 0x7C, - 0x98, - 0x04, - 0x7C, - 0x00, - 0x05, - 0x67, - 0x67, - 0x80, - 0x67, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x8A, - 0x6E, - 0x6E, - 0x56, - 0x00, - 0x05, - 0x8A, - 0x00, - 0x05, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x0F, - 0x34, - 0x6D, - 0x56, - 0x87, - 0x34, - 0x87, - 0x34, - 0x87, - 0x34, - 0x34, - 0x87, - 0x34, - 0x55, - 0x87, - 0x55, - 0x00, - 0x0A, - 0x87, - 0x00, - 0x08, - 0x6D, - 0x6D, - 0x6D, - 0x87, - 0x34, - 0x6D, - 0x6D, - 0x87, - 0x0A, - 0x6D, - 0x01, - 0x56, - 0x01, - 0x6D, - 0x09, - 0x56, - 0x00, - 0x04, - 0x8A, - 0x8A, - 0x8A, - 0x6E, - 0x0B, - 0x8A, - 0x00, - 0x08, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0xCB, - 0x6E, - 0x8A, - 0x6E, - 0x0A, - 0x8A, - 0x07, - 0x56, - 0x00, - 0x07, - 0x6D, - 0x6D, - 0x6D, - 0x34, - 0x87, - 0x87, - 0x55, - 0x00, - 0x05, - 0x6B, - 0x01, - 0x85, - 0x01, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x0A, - 0x85, - 0x82, - 0x82, - 0x80, - 0x80, - 0x52, - 0x52, - 0x67, - 0x67, - 0x67, - 0x04, - 0x7C, - 0x00, - 0x16, - 0x96, - 0x96, - 0xC3, - 0xAB, - 0xC3, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0xD0, - 0x94, - 0xA8, - 0xA8, - 0xBC, - 0xD0, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0x04, - 0xA5, - 0x00, - 0x32, - 0x92, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0xBA, - 0x90, - 0xBA, - 0xBA, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0xA5, - 0xBD, - 0x90, - 0xBA, - 0x90, - 0xBA, - 0x90, - 0xBA, - 0xA5, - 0x90, - 0xBA, - 0xBA, - 0xA5, - 0x74, - 0x3C, - 0x60, - 0x60, - 0x90, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0xBA, - 0xA5, - 0xBD, - 0xB9, - 0xBD, - 0xBD, - 0xD0, - 0x92, - 0xD0, - 0xDA, - 0x04, - 0xA5, - 0x00, - 0x06, - 0x92, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0x04, - 0xB9, - 0x00, - 0x0E, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xA4, - 0xB9, - 0xBE, - 0xBD, - 0xA4, - 0xA4, - 0xBC, - 0xB9, - 0xA8, - 0xBD, - 0x04, - 0xA8, - 0x00, - 0x04, - 0xBD, - 0xA8, - 0xBE, - 0xD0, - 0x04, - 0x94, - 0x01, - 0xC0, - 0x01, - 0x95, - 0x04, - 0xAA, - 0x00, - 0x10, - 0x95, - 0x96, - 0x96, - 0x95, - 0xAB, - 0x96, - 0x95, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0x7C, - 0x96, - 0x08, - 0x7C, - 0x05, - 0x67, - 0x00, - 0x03, - 0x80, - 0x67, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x09, - 0x6E, - 0x04, - 0x8A, - 0x00, - 0x03, - 0x6E, - 0x6E, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x00, - 0x05, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x00, - 0x04, - 0x6D, - 0x6D, - 0x6D, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x0D, - 0x56, - 0x6D, - 0x55, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x87, - 0x87, - 0x55, - 0x87, - 0x00, - 0x09, - 0x55, - 0x00, - 0x0B, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x87, - 0x87, - 0x6B, - 0x55, - 0x55, - 0x6B, - 0x00, - 0x0E, - 0x55, - 0x01, - 0x6B, - 0x04, - 0x55, - 0x00, - 0x0D, - 0x87, - 0x55, - 0x55, - 0x6D, - 0x87, - 0x55, - 0x55, - 0x87, - 0x87, - 0x34, - 0x87, - 0x87, - 0x55, - 0x00, - 0x05, - 0x87, - 0x00, - 0x11, - 0x55, - 0xC8, - 0xD6, - 0x6D, - 0x6B, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x87, - 0x6B, - 0x6B, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x00, - 0x15, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x67, - 0x67, - 0x82, - 0x67, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x86, - 0x96, - 0x96, - 0x96, - 0xAD, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0xBE, - 0xBE, - 0xBC, - 0xBC, - 0xBC, - 0xBD, - 0xA8, - 0xA8, - 0xB9, - 0xA4, - 0xB9, - 0xA8, - 0xA8, - 0xB9, - 0xB9, - 0xB9, - 0x92, - 0xA5, - 0xB9, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x92, - 0xBA, - 0xA5, - 0xBA, - 0xBD, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0xBA, - 0xBA, - 0xA5, - 0xBA, - 0xA5, - 0xBA, - 0x75, - 0x75, - 0x77, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xBD, - 0xBD, - 0xA5, - 0xA5, - 0xBD, - 0xB9, - 0xD0, - 0xBD, - 0xB9, - 0xA5, - 0xBD, - 0x92, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xA8, - 0xB9, - 0xA4, - 0xB9, - 0xA8, - 0xB9, - 0xA4, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xBE, - 0xA4, - 0xA4, - 0xBD, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0x94, - 0x94, - 0xBE, - 0x94, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0xAB, - 0x96, - 0x7C, - 0xAB, - 0x09, - 0x96, - 0x00, - 0x09, - 0x7C, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0x98, - 0x7C, - 0x7C, - 0x7C, - 0x00, - 0x07, - 0x67, - 0x00, - 0x03, - 0x82, - 0x52, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x6E, - 0x00, - 0x03, - 0x8A, - 0x6E, - 0x6E, - 0x00, - 0x06, - 0x8A, - 0x00, - 0x09, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x9D, - 0x00, - 0x04, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x09, - 0x34, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x87, - 0x87, - 0x55, - 0x87, - 0x00, - 0x04, - 0x55, - 0x00, - 0x03, - 0x6B, - 0x55, - 0x55, - 0x00, - 0x0E, - 0x6B, - 0x00, - 0x03, - 0x55, - 0x85, - 0x6B, - 0x00, - 0x18, - 0x85, - 0x00, - 0x04, - 0x6B, - 0x85, - 0x85, - 0x85, - 0x05, - 0x6A, - 0x01, - 0x85, - 0x07, - 0x6A, - 0x00, - 0x05, - 0x85, - 0xC8, - 0xC7, - 0x82, - 0x9B, - 0x00, - 0x05, - 0x82, - 0x00, - 0x04, - 0x6A, - 0x6A, - 0x80, - 0x82, - 0x05, - 0x80, - 0x00, - 0x03, - 0x99, - 0x52, - 0x52, - 0x00, - 0x04, - 0x67, - 0x01, - 0x7C, - 0x01, - 0x67, - 0x06, - 0x7C, - 0x00, - 0x2B, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x7C, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0x94, - 0x94, - 0xBE, - 0xBE, - 0x94, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xBD, - 0xA5, - 0xBD, - 0xBD, - 0xB9, - 0x92, - 0xB9, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0x00, - 0x08, - 0xA5, - 0x00, - 0x49, - 0xBA, - 0x92, - 0x92, - 0xBA, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0xCE, - 0xA5, - 0x92, - 0xBA, - 0xA5, - 0x92, - 0xBA, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xA5, - 0xA5, - 0xBA, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0xBD, - 0xBD, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xA5, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA8, - 0xA4, - 0xA4, - 0xA8, - 0xA4, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xCD, - 0xA8, - 0xCD, - 0xA8, - 0xAA, - 0xBD, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBE, - 0x00, - 0x04, - 0x94, - 0x06, - 0xAA, - 0x00, - 0x0D, - 0xAB, - 0xAB, - 0x95, - 0x96, - 0x95, - 0x96, - 0x95, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x00, - 0x04, - 0x96, - 0x09, - 0x7C, - 0x00, - 0x0C, - 0x67, - 0x67, - 0x99, - 0x67, - 0x67, - 0x99, - 0x67, - 0x52, - 0x80, - 0x82, - 0x80, - 0x81, - 0x00, - 0x00, - 0x01, - 0x6E, - 0x01, - 0x59, - 0x0F, - 0x6E, - 0x09, - 0x8A, - 0x01, - 0x56, - 0x01, - 0x8A, - 0x07, - 0x56, - 0x01, - 0x6D, - 0x01, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x07, - 0x56, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x6D, - 0x6D, - 0x00, - 0x05, - 0x87, - 0x00, - 0x03, - 0x6B, - 0x55, - 0x55, - 0x00, - 0x07, - 0x6B, - 0x00, - 0x07, - 0x85, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x6B, - 0x00, - 0x06, - 0x85, - 0x00, - 0x04, - 0x9B, - 0x85, - 0x6A, - 0x85, - 0x0B, - 0x6A, - 0x05, - 0x82, - 0x00, - 0x04, - 0x85, - 0x82, - 0x82, - 0x80, - 0x04, - 0x82, - 0x09, - 0x80, - 0x00, - 0x0C, - 0x99, - 0x82, - 0xE0, - 0x82, - 0x67, - 0x67, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x08, - 0x7C, - 0x01, - 0x96, - 0x01, - 0x7C, - 0x05, - 0x96, - 0x00, - 0x1E, - 0xAB, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0xAA, - 0xAA, - 0xAA, - 0xBE, - 0x96, - 0xBE, - 0x94, - 0xBE, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xCD, - 0xA8, - 0xCD, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0x08, - 0xB9, - 0x00, - 0x13, - 0xBD, - 0xA8, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xB9, - 0xA5, - 0xBD, - 0xA5, - 0x92, - 0xA5, - 0xA5, - 0x92, - 0x00, - 0x07, - 0xA5, - 0x00, - 0x04, - 0x92, - 0xA5, - 0xBD, - 0x92, - 0x06, - 0xA5, - 0x00, - 0x39, - 0x92, - 0xA5, - 0xA5, - 0xA5, - 0x92, - 0xA5, - 0xB9, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xA8, - 0xA4, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xA4, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA8, - 0xB9, - 0xCD, - 0xA4, - 0xBD, - 0xCD, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xAA, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0xBE, - 0x94, - 0xBE, - 0x94, - 0x94, - 0x00, - 0x05, - 0xAA, - 0x07, - 0x95, - 0x00, - 0x0C, - 0x96, - 0x95, - 0x96, - 0x96, - 0x96, - 0x7C, - 0x7C, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0x09, - 0x7C, - 0x06, - 0x67, - 0x00, - 0x09, - 0x99, - 0x67, - 0x67, - 0x99, - 0x52, - 0x80, - 0x82, - 0x52, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x07, - 0x6E, - 0x00, - 0x05, - 0x59, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0x00, - 0x08, - 0x8A, - 0x05, - 0x9D, - 0x00, - 0x05, - 0x8A, - 0x9D, - 0x9D, - 0x6D, - 0x9D, - 0x00, - 0x08, - 0x6D, - 0x0A, - 0x87, - 0x04, - 0xB2, - 0x00, - 0x06, - 0x87, - 0x87, - 0x6B, - 0xB2, - 0x6B, - 0x6B, - 0x07, - 0x85, - 0x00, - 0x03, - 0xC7, - 0x85, - 0x85, - 0x00, - 0x0C, - 0x9B, - 0x01, - 0x85, - 0x04, - 0x82, - 0x01, - 0xD4, - 0x08, - 0x80, - 0x00, - 0x0F, - 0x99, - 0x80, - 0x99, - 0x99, - 0x99, - 0xDE, - 0xE0, - 0xD4, - 0xAE, - 0x99, - 0xAE, - 0xAE, - 0xAE, - 0x99, - 0x99, - 0x00, - 0x04, - 0xAE, - 0x05, - 0xC4, - 0x08, - 0xC2, - 0x00, - 0x12, - 0xD1, - 0xC2, - 0xC2, - 0xD1, - 0xD1, - 0xAA, - 0xD1, - 0xAA, - 0xD1, - 0xC4, - 0xCF, - 0xCF, - 0xCF, - 0xBE, - 0xCF, - 0xCF, - 0xBE, - 0xCF, - 0x06, - 0xBE, - 0x01, - 0xBC, - 0x04, - 0xBE, - 0x00, - 0x14, - 0xBC, - 0xBE, - 0xBE, - 0xBC, - 0xBC, - 0xBD, - 0xB9, - 0xA8, - 0xBD, - 0xBD, - 0xB9, - 0xBD, - 0xA4, - 0xB9, - 0xA4, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0x04, - 0xB9, - 0x00, - 0x1A, - 0x92, - 0xB9, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0x94, - 0xB9, - 0xA5, - 0xBD, - 0x92, - 0xB9, - 0x92, - 0xB9, - 0xA5, - 0xB9, - 0x92, - 0xB9, - 0xB9, - 0xB9, - 0x92, - 0x04, - 0xB9, - 0x00, - 0x17, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xBD, - 0xBD, - 0xB9, - 0xB9, - 0xA8, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xA4, - 0xB9, - 0xA8, - 0xB9, - 0xCD, - 0xA4, - 0xBD, - 0xA4, - 0xA4, - 0xBD, - 0x00, - 0x05, - 0xA8, - 0x00, - 0x03, - 0xBC, - 0xBC, - 0xA8, - 0x00, - 0x05, - 0xBC, - 0x00, - 0x0C, - 0xAB, - 0xBC, - 0x94, - 0x94, - 0x94, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0x04, - 0x95, - 0x00, - 0x03, - 0xAB, - 0x96, - 0xAB, - 0x00, - 0x05, - 0x96, - 0x00, - 0x0A, - 0xAD, - 0x96, - 0xAD, - 0x7C, - 0x67, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0x98, - 0x07, - 0x7C, - 0x00, - 0x05, - 0x67, - 0x67, - 0x99, - 0x67, - 0x99, - 0x00, - 0x04, - 0x67, - 0x00, - 0x08, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x82, - 0x80, - 0x81, - 0x00, - 0x00, - 0x00, - 0x04, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x0E, - 0x6E, - 0x01, - 0x8A, - 0x01, - 0x6E, - 0x09, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x07, - 0x56, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x56, - 0x00, - 0x05, - 0x6D, - 0x00, - 0x0F, - 0x34, - 0x6D, - 0x6D, - 0x6D, - 0x55, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x55, - 0x00, - 0x05, - 0x6B, - 0x00, - 0x03, - 0x85, - 0x6B, - 0x87, - 0x00, - 0x06, - 0x85, - 0x00, - 0x0D, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x9B, - 0x82, - 0x6A, - 0x00, - 0x05, - 0x82, - 0x00, - 0x03, - 0x80, - 0x80, - 0x9B, - 0x00, - 0x04, - 0x80, - 0x00, - 0x12, - 0x52, - 0x80, - 0x80, - 0x52, - 0x80, - 0x67, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0xAE, - 0x7C, - 0x80, - 0xE0, - 0x99, - 0x04, - 0x7C, - 0x00, - 0x06, - 0x67, - 0x99, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x08, - 0x96, - 0x00, - 0x08, - 0x95, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0x06, - 0xAA, - 0x00, - 0x09, - 0xAB, - 0xAA, - 0xD0, - 0x94, - 0xBE, - 0xBE, - 0x94, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0xBC, - 0x00, - 0x16, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xCE, - 0xA8, - 0xA8, - 0xCE, - 0xBC, - 0xBE, - 0xCF, - 0xBE, - 0xBE, - 0xA8, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xBD, - 0xA4, - 0x05, - 0xB9, - 0x00, - 0x07, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0x00, - 0x06, - 0xB9, - 0x00, - 0x04, - 0xBD, - 0xBE, - 0xB9, - 0xBD, - 0x06, - 0xB9, - 0x00, - 0x40, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xBD, - 0xB9, - 0xBD, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0x94, - 0xBC, - 0xB9, - 0xA8, - 0xA4, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0x94, - 0xBE, - 0xBC, - 0xBE, - 0x94, - 0x94, - 0x94, - 0xAB, - 0xAA, - 0x95, - 0x94, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0xAB, - 0xC3, - 0xAB, - 0x96, - 0x95, - 0x09, - 0x96, - 0x01, - 0x67, - 0x01, - 0x67, - 0x08, - 0x7C, - 0x00, - 0x0E, - 0x99, - 0x7C, - 0x99, - 0x67, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x52, - 0x99, - 0x80, - 0x80, - 0x52, - 0x04, - 0x80, - 0x00, - 0x03, - 0x6A, - 0x80, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x00, - 0x06, - 0x6E, - 0x00, - 0x07, - 0x59, - 0x6E, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x00, - 0x0A, - 0x8A, - 0x00, - 0x03, - 0x56, - 0x8A, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x01, - 0x9D, - 0x01, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x0B, - 0x34, - 0x6D, - 0x87, - 0x34, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x55, - 0x00, - 0x0A, - 0x6B, - 0x01, - 0x85, - 0x01, - 0x6B, - 0x05, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x05, - 0x6A, - 0x01, - 0x9B, - 0x04, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x05, - 0x82, - 0x01, - 0x6A, - 0x01, - 0x82, - 0x04, - 0x80, - 0x00, - 0x07, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x52, - 0x00, - 0x07, - 0x67, - 0x00, - 0x0F, - 0x7C, - 0xD4, - 0xE0, - 0x80, - 0x7C, - 0x7C, - 0x7C, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0xAD, - 0x00, - 0x05, - 0x96, - 0x00, - 0x16, - 0xAD, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x95, - 0x96, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0x96, - 0xAA, - 0x94, - 0xAA, - 0x94, - 0x95, - 0xAA, - 0x06, - 0x94, - 0x00, - 0x22, - 0xBE, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xD1, - 0xCF, - 0xA4, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xB9, - 0xA4, - 0xA8, - 0xBD, - 0xA4, - 0xA8, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0xCD, - 0xB9, - 0xA4, - 0x08, - 0xB9, - 0x00, - 0x44, - 0xBE, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xB9, - 0xB9, - 0xA4, - 0xB9, - 0xB9, - 0xCD, - 0xB9, - 0xB9, - 0xA4, - 0xCD, - 0xB9, - 0xA4, - 0xA4, - 0xB9, - 0xA4, - 0xB9, - 0xA4, - 0xA4, - 0xA8, - 0xA4, - 0xA8, - 0xA4, - 0xBC, - 0xBE, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBE, - 0xBC, - 0x94, - 0xBE, - 0xBE, - 0x94, - 0x94, - 0xC0, - 0x94, - 0x95, - 0x94, - 0xAA, - 0xAA, - 0xAA, - 0x96, - 0xAA, - 0xAA, - 0xAB, - 0x95, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x96, - 0x95, - 0x09, - 0x96, - 0x00, - 0x0E, - 0x7C, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0x99, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x04, - 0x67, - 0x00, - 0x04, - 0x99, - 0x67, - 0x67, - 0x52, - 0x04, - 0x80, - 0x01, - 0x52, - 0x06, - 0x80, - 0x00, - 0x03, - 0x6A, - 0x82, - 0x69, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x00, - 0x0B, - 0x6E, - 0x00, - 0x1A, - 0x8A, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x56, - 0x07, - 0x6D, - 0x00, - 0x0E, - 0x34, - 0x6D, - 0x87, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x55, - 0x04, - 0x6B, - 0x00, - 0x08, - 0x55, - 0x55, - 0x6B, - 0x6B, - 0x6B, - 0x85, - 0x85, - 0x6B, - 0x07, - 0x85, - 0x04, - 0x6A, - 0x01, - 0x9B, - 0x04, - 0x6A, - 0x00, - 0x08, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x85, - 0x82, - 0x82, - 0x82, - 0x05, - 0x80, - 0x00, - 0x09, - 0x52, - 0x80, - 0x80, - 0x80, - 0x99, - 0x52, - 0x99, - 0x52, - 0x99, - 0x00, - 0x04, - 0x67, - 0x00, - 0x07, - 0x80, - 0xE0, - 0x80, - 0x7C, - 0x7C, - 0x67, - 0x67, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x79, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x96, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0xAB, - 0x7C, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0xC0, - 0xAA, - 0x94, - 0x94, - 0xBE, - 0xBE, - 0x94, - 0xBE, - 0xBE, - 0xBE, - 0xBC, - 0xBE, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0xD1, - 0xCF, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xA4, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xA8, - 0xCD, - 0xBD, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xBD, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xB9, - 0xA8, - 0xBE, - 0xA8, - 0xCD, - 0xBD, - 0xCD, - 0xA8, - 0xCD, - 0xCE, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xBD, - 0xA8, - 0xA8, - 0xCD, - 0xA8, - 0xA8, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0xBD, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBC, - 0xA8, - 0xBE, - 0xBC, - 0xBE, - 0xBE, - 0x94, - 0xBE, - 0x94, - 0xBE, - 0xAA, - 0x94, - 0x00, - 0x08, - 0xAA, - 0x00, - 0x0B, - 0x95, - 0xAB, - 0x96, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0xAB, - 0x95, - 0xAD, - 0xAB, - 0x00, - 0x07, - 0x96, - 0x00, - 0x05, - 0xAD, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x00, - 0x06, - 0x7C, - 0x00, - 0x04, - 0x67, - 0x99, - 0x7C, - 0x7C, - 0x05, - 0x67, - 0x00, - 0x0B, - 0x99, - 0x67, - 0x67, - 0x52, - 0x67, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x00, - 0x05, - 0x80, - 0x00, - 0x06, - 0x82, - 0x82, - 0x82, - 0x6A, - 0x82, - 0x69, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x6E, - 0x59, - 0x00, - 0x05, - 0x6E, - 0x01, - 0x8A, - 0x01, - 0x6E, - 0x04, - 0x8A, - 0x01, - 0x6E, - 0x05, - 0x8A, - 0x00, - 0x06, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x04, - 0x56, - 0x00, - 0x07, - 0x8A, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x56, - 0x00, - 0x08, - 0x6D, - 0x00, - 0x0E, - 0x34, - 0x87, - 0x55, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x55, - 0x6B, - 0x6B, - 0x55, - 0x87, - 0x05, - 0x6B, - 0x06, - 0x85, - 0x00, - 0x10, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x85, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x82, - 0x85, - 0x05, - 0x82, - 0x00, - 0x17, - 0x80, - 0x80, - 0x82, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x52, - 0x52, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x82, - 0xE0, - 0xD4, - 0x7C, - 0x99, - 0x80, - 0x00, - 0x0A, - 0x7C, - 0x01, - 0xAD, - 0x01, - 0x7C, - 0x04, - 0x96, - 0x01, - 0xAD, - 0x04, - 0x96, - 0x00, - 0x0F, - 0xAD, - 0x96, - 0x96, - 0x95, - 0x96, - 0x7C, - 0xAB, - 0x95, - 0xAB, - 0xAB, - 0x95, - 0x95, - 0xAA, - 0xAA, - 0x95, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x03, - 0x95, - 0x94, - 0xAA, - 0x00, - 0x06, - 0x94, - 0x00, - 0x0E, - 0xC0, - 0x94, - 0xBE, - 0x94, - 0xAA, - 0xAA, - 0xD1, - 0xCF, - 0xBC, - 0xBC, - 0xBC, - 0xA8, - 0xBC, - 0x94, - 0x04, - 0xBC, - 0x00, - 0x19, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xA8, - 0xBC, - 0xCD, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xAA, - 0xBC, - 0xA8, - 0xBC, - 0xA8, - 0xBC, - 0xBD, - 0xA8, - 0xA8, - 0xBC, - 0xA8, - 0x00, - 0x05, - 0xBC, - 0x00, - 0x2B, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xCE, - 0xA8, - 0xBC, - 0xBC, - 0xBC, - 0xBE, - 0x94, - 0xAA, - 0xAA, - 0xBE, - 0x94, - 0xD0, - 0x94, - 0x94, - 0xD0, - 0x94, - 0x94, - 0x94, - 0xAA, - 0xAA, - 0x94, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0x95, - 0xAB, - 0x95, - 0x95, - 0x96, - 0x95, - 0x7C, - 0x96, - 0xAB, - 0xAD, - 0x00, - 0x07, - 0x96, - 0x00, - 0x06, - 0xAD, - 0x96, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x0A, - 0x7C, - 0x01, - 0x80, - 0x01, - 0x80, - 0x05, - 0x67, - 0x00, - 0x0A, - 0x99, - 0x67, - 0x67, - 0x67, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x06, - 0x80, - 0x05, - 0x82, - 0x00, - 0x03, - 0x85, - 0x82, - 0x69, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x07, - 0x6E, - 0x01, - 0x59, - 0x06, - 0x6E, - 0x00, - 0x04, - 0x8A, - 0x6E, - 0x6E, - 0x6E, - 0x08, - 0x8A, - 0x00, - 0x09, - 0x56, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x56, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x09, - 0x6D, - 0x00, - 0x08, - 0x34, - 0x6D, - 0x6D, - 0x55, - 0x87, - 0x55, - 0x34, - 0x87, - 0x04, - 0x55, - 0x00, - 0x03, - 0x6B, - 0x87, - 0x55, - 0x00, - 0x09, - 0x6B, - 0x06, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x07, - 0x6A, - 0x00, - 0x04, - 0x85, - 0x6A, - 0x82, - 0x6A, - 0x04, - 0x82, - 0x09, - 0x80, - 0x00, - 0x0F, - 0x52, - 0x80, - 0x52, - 0x52, - 0x52, - 0x67, - 0x67, - 0x82, - 0xE0, - 0x80, - 0x80, - 0x52, - 0x7C, - 0x67, - 0x67, - 0x00, - 0x0A, - 0x7C, - 0x00, - 0x03, - 0x98, - 0x7C, - 0x7C, - 0x00, - 0x06, - 0x96, - 0x00, - 0x14, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0x7C, - 0xAD, - 0x96, - 0x96, - 0x95, - 0xAB, - 0x96, - 0x95, - 0x95, - 0xAB, - 0x95, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x07, - 0xAA, - 0x00, - 0x17, - 0x94, - 0xAA, - 0x94, - 0xAA, - 0xAA, - 0xAA, - 0x94, - 0xD1, - 0xD1, - 0xBE, - 0x94, - 0xBE, - 0x94, - 0xBC, - 0xBC, - 0x94, - 0x94, - 0x94, - 0xBC, - 0xBE, - 0xBE, - 0xBC, - 0xBC, - 0x00, - 0x04, - 0xBE, - 0x00, - 0x23, - 0x94, - 0xBC, - 0xBE, - 0xBC, - 0xBE, - 0xAA, - 0xBE, - 0xBC, - 0xBE, - 0xBC, - 0x94, - 0xBC, - 0xBE, - 0x94, - 0xBC, - 0xBE, - 0x94, - 0xBC, - 0x94, - 0xBC, - 0x94, - 0xBE, - 0x94, - 0x94, - 0xBC, - 0x94, - 0xBE, - 0x94, - 0xBE, - 0x94, - 0xBE, - 0x94, - 0xAA, - 0xAA, - 0x94, - 0x00, - 0x09, - 0xAA, - 0x00, - 0x1F, - 0x95, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0xC3, - 0xAB, - 0x96, - 0xAB, - 0xAD, - 0x7C, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x7C, - 0x96, - 0x7C, - 0x7C, - 0x98, - 0x00, - 0x08, - 0x7C, - 0x00, - 0x0F, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x80, - 0x80, - 0x67, - 0x67, - 0x99, - 0x52, - 0x67, - 0x52, - 0x52, - 0x80, - 0x52, - 0x00, - 0x09, - 0x80, - 0x06, - 0x82, - 0x00, - 0x05, - 0x6A, - 0x82, - 0x85, - 0x6A, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x59, - 0x00, - 0x0C, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x59, - 0x08, - 0x6E, - 0x00, - 0x04, - 0x8A, - 0x8A, - 0x8A, - 0x6E, - 0x08, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x00, - 0x08, - 0x56, - 0x07, - 0x6D, - 0x00, - 0x0D, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x87, - 0x55, - 0x55, - 0x87, - 0x34, - 0x00, - 0x0C, - 0x6B, - 0x06, - 0x85, - 0x00, - 0x09, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x85, - 0x00, - 0x05, - 0x6A, - 0x07, - 0x82, - 0x07, - 0x80, - 0x00, - 0x0B, - 0x52, - 0x80, - 0x52, - 0x80, - 0x67, - 0x9B, - 0xE0, - 0x9B, - 0x80, - 0x67, - 0x99, - 0x00, - 0x06, - 0x67, - 0x0D, - 0x7C, - 0x05, - 0x96, - 0x01, - 0x99, - 0x07, - 0x96, - 0x00, - 0x1D, - 0xAD, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAB, - 0x95, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0xAB, - 0xAB, - 0x95, - 0xAA, - 0xC2, - 0xC2, - 0x94, - 0xAA, - 0xAA, - 0x95, - 0x00, - 0x04, - 0xAA, - 0x04, - 0x94, - 0x01, - 0x95, - 0x04, - 0x94, - 0x01, - 0xC0, - 0x04, - 0x94, - 0x01, - 0xAB, - 0x04, - 0x94, - 0x00, - 0x2A, - 0xC0, - 0x94, - 0x94, - 0xD0, - 0x94, - 0xBE, - 0xAA, - 0x94, - 0xAA, - 0x94, - 0xAA, - 0x94, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0xAB, - 0xAB, - 0xAA, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x96, - 0x95, - 0x08, - 0x96, - 0x00, - 0x09, - 0x67, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x00, - 0x0B, - 0x7C, - 0x05, - 0x67, - 0x00, - 0x0C, - 0x99, - 0x67, - 0x80, - 0x80, - 0x67, - 0x67, - 0x52, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x06, - 0x80, - 0x01, - 0x82, - 0x01, - 0x80, - 0x06, - 0x82, - 0x04, - 0x6A, - 0x00, - 0x03, - 0x85, - 0x6A, - 0x69, - 0x00, - 0x00, - 0x00, - 0x06, - 0x59, - 0x00, - 0x0A, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x0B, - 0x6E, - 0x00, - 0x04, - 0x8A, - 0x6E, - 0x6E, - 0x6E, - 0x08, - 0x8A, - 0x00, - 0x05, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x8A, - 0x00, - 0x08, - 0x56, - 0x09, - 0x6D, - 0x00, - 0x10, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x55, - 0x87, - 0x55, - 0x6D, - 0x6D, - 0x55, - 0x6B, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x07, - 0x6B, - 0x01, - 0x85, - 0x01, - 0x6B, - 0x07, - 0x85, - 0x04, - 0x6A, - 0x00, - 0x03, - 0x6B, - 0x6A, - 0x9B, - 0x00, - 0x04, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x07, - 0x82, - 0x07, - 0x80, - 0x00, - 0x0B, - 0x52, - 0x80, - 0x67, - 0x9B, - 0xC8, - 0x9B, - 0x67, - 0x67, - 0x99, - 0x67, - 0x99, - 0x00, - 0x06, - 0x67, - 0x01, - 0x7C, - 0x01, - 0x67, - 0x08, - 0x7C, - 0x01, - 0x98, - 0x04, - 0x7C, - 0x00, - 0x0A, - 0x99, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0xAD, - 0x96, - 0x96, - 0xAD, - 0x04, - 0x96, - 0x00, - 0x1D, - 0xAD, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x96, - 0x95, - 0xC3, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x95, - 0x96, - 0x96, - 0x95, - 0x95, - 0x95, - 0xC2, - 0xC2, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAA, - 0x95, - 0xAB, - 0xAA, - 0x95, - 0x00, - 0x05, - 0xAA, - 0x01, - 0x95, - 0x06, - 0xAA, - 0x01, - 0x96, - 0x09, - 0xAA, - 0x00, - 0x1E, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0xAA, - 0x95, - 0x95, - 0xAB, - 0xAA, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAD, - 0x96, - 0x95, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x95, - 0x96, - 0x95, - 0x96, - 0xAB, - 0x07, - 0x96, - 0x01, - 0xAD, - 0x07, - 0x96, - 0x01, - 0x99, - 0x01, - 0x96, - 0x0E, - 0x7C, - 0x05, - 0x67, - 0x01, - 0x99, - 0x05, - 0x67, - 0x00, - 0x06, - 0x80, - 0x82, - 0x80, - 0x52, - 0x80, - 0x52, - 0x08, - 0x80, - 0x07, - 0x82, - 0x04, - 0x6A, - 0x00, - 0x06, - 0x9B, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x3F, - 0x00, - 0x00, - 0x08, - 0x59, - 0x00, - 0x08, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x59, - 0x0C, - 0x6E, - 0x00, - 0x06, - 0x8A, - 0x8A, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x06, - 0x8A, - 0x00, - 0x08, - 0x56, - 0x8A, - 0x6E, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x06, - 0x56, - 0x00, - 0x04, - 0x6D, - 0x56, - 0x6D, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x0B, - 0x34, - 0x6D, - 0x6D, - 0x87, - 0x55, - 0x87, - 0x34, - 0x6D, - 0x55, - 0x55, - 0x55, - 0x00, - 0x0E, - 0x6B, - 0x07, - 0x85, - 0x00, - 0x07, - 0x6A, - 0x85, - 0x6B, - 0x85, - 0x6A, - 0x6A, - 0x9B, - 0x00, - 0x06, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x06, - 0x82, - 0x07, - 0x80, - 0x00, - 0x15, - 0x52, - 0x9B, - 0xC8, - 0x9B, - 0x67, - 0x52, - 0x52, - 0x67, - 0x52, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x7C, - 0x67, - 0x7C, - 0x67, - 0x00, - 0x08, - 0x7C, - 0x00, - 0x0C, - 0x80, - 0x7C, - 0x7C, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x0E, - 0x96, - 0x00, - 0x18, - 0xAB, - 0x96, - 0xC3, - 0x96, - 0xAB, - 0xAD, - 0x95, - 0xC4, - 0xC2, - 0xAB, - 0x95, - 0xAB, - 0xC3, - 0x95, - 0x95, - 0x95, - 0xAB, - 0x95, - 0x95, - 0x95, - 0xAB, - 0x95, - 0x95, - 0xAB, - 0x04, - 0x95, - 0x00, - 0x03, - 0xAB, - 0x96, - 0xAB, - 0x00, - 0x08, - 0x95, - 0x00, - 0x17, - 0xAB, - 0x95, - 0xAB, - 0xC3, - 0xAB, - 0xAB, - 0x95, - 0xC3, - 0x95, - 0x95, - 0x96, - 0x95, - 0x95, - 0x96, - 0x95, - 0x96, - 0xAB, - 0x96, - 0x7C, - 0xAB, - 0x96, - 0x96, - 0xAD, - 0x00, - 0x09, - 0x96, - 0x00, - 0x08, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x05, - 0x7C, - 0x01, - 0x99, - 0x04, - 0x7C, - 0x00, - 0x18, - 0xC3, - 0xC3, - 0x7C, - 0x67, - 0x7C, - 0x7C, - 0x67, - 0x7C, - 0x67, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x52, - 0x67, - 0x80, - 0x52, - 0x80, - 0x52, - 0x82, - 0x82, - 0x07, - 0x80, - 0x07, - 0x82, - 0x01, - 0x6A, - 0x01, - 0x82, - 0x0A, - 0x6A, - 0x00, - 0x03, - 0x6B, - 0x85, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x59, - 0x01, - 0x6E, - 0x04, - 0x59, - 0x01, - 0x6E, - 0x01, - 0x59, - 0x0C, - 0x6E, - 0x01, - 0x8A, - 0x01, - 0x6E, - 0x0A, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x56, - 0x8A, - 0x00, - 0x06, - 0x56, - 0x0A, - 0x6D, - 0x00, - 0x09, - 0x34, - 0x6D, - 0x55, - 0x6D, - 0x6D, - 0x87, - 0x87, - 0x55, - 0x87, - 0x00, - 0x05, - 0x55, - 0x0B, - 0x6B, - 0x06, - 0x85, - 0x01, - 0x6B, - 0x01, - 0x85, - 0x05, - 0x6A, - 0x01, - 0x85, - 0x08, - 0x6A, - 0x08, - 0x82, - 0x00, - 0x0B, - 0x80, - 0x80, - 0x80, - 0x82, - 0xC7, - 0xE0, - 0x9B, - 0x99, - 0x80, - 0x80, - 0x80, - 0x00, - 0x04, - 0x52, - 0x05, - 0x67, - 0x00, - 0x0D, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x7C, - 0x80, - 0x67, - 0x00, - 0x0A, - 0x7C, - 0x00, - 0x07, - 0x98, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x00, - 0x04, - 0x96, - 0x00, - 0x07, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0xA9, - 0x90, - 0x7A, - 0x00, - 0x04, - 0x96, - 0x00, - 0x03, - 0xC4, - 0xC4, - 0xAB, - 0x00, - 0x0A, - 0x96, - 0x00, - 0x18, - 0xAB, - 0x96, - 0xAB, - 0xAB, - 0xAB, - 0xAD, - 0xAB, - 0xAD, - 0x7C, - 0xC3, - 0x96, - 0xC3, - 0xAB, - 0x96, - 0xAB, - 0x96, - 0xAB, - 0x96, - 0x96, - 0xAD, - 0x95, - 0x7A, - 0x7A, - 0xC3, - 0x07, - 0x96, - 0x00, - 0x07, - 0xAD, - 0x96, - 0xAD, - 0x96, - 0x7C, - 0x7C, - 0xAD, - 0x00, - 0x06, - 0x96, - 0x00, - 0x09, - 0xAD, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x00, - 0x04, - 0x7C, - 0x01, - 0x98, - 0x05, - 0x7C, - 0x00, - 0x11, - 0x80, - 0x7C, - 0x67, - 0x99, - 0x95, - 0xA5, - 0xA5, - 0x96, - 0x67, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x67, - 0x00, - 0x04, - 0x52, - 0x00, - 0x08, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x80, - 0x82, - 0x6A, - 0x04, - 0x80, - 0x07, - 0x82, - 0x00, - 0x12, - 0x6A, - 0x82, - 0x9B, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6B, - 0x85, - 0x3F, - 0x00, - 0x00, - 0x0A, - 0x59, - 0x00, - 0x0B, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x00, - 0x0B, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x00, - 0x0B, - 0x6E, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x00, - 0x07, - 0x56, - 0x0B, - 0x6D, - 0x00, - 0x07, - 0x34, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x00, - 0x04, - 0x55, - 0x0D, - 0x6B, - 0x00, - 0x03, - 0x85, - 0x85, - 0x6B, - 0x00, - 0x05, - 0x85, - 0x00, - 0x08, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x05, - 0x6A, - 0x01, - 0x82, - 0x01, - 0x6A, - 0x06, - 0x82, - 0x00, - 0x11, - 0x9B, - 0x82, - 0x9B, - 0xC8, - 0x9B, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x00, - 0x05, - 0x67, - 0x00, - 0x09, - 0x99, - 0x67, - 0x99, - 0x67, - 0x99, - 0x67, - 0x80, - 0x7C, - 0x67, - 0x00, - 0x15, - 0x7C, - 0x00, - 0x0D, - 0x98, - 0x7C, - 0x95, - 0xBA, - 0xBA, - 0x92, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x96, - 0xAE, - 0xAE, - 0x00, - 0x0E, - 0x96, - 0x00, - 0x05, - 0xAD, - 0x96, - 0x96, - 0x96, - 0x67, - 0x00, - 0x0B, - 0x96, - 0x00, - 0x0A, - 0x7A, - 0x90, - 0x90, - 0xA9, - 0x96, - 0xAD, - 0x96, - 0x96, - 0x96, - 0xAD, - 0x05, - 0x96, - 0x00, - 0x07, - 0x7C, - 0x7C, - 0x96, - 0x96, - 0x98, - 0x96, - 0x98, - 0x00, - 0x12, - 0x7C, - 0x00, - 0x19, - 0xAE, - 0x7C, - 0x67, - 0x80, - 0x67, - 0x67, - 0x67, - 0x96, - 0xA5, - 0x92, - 0x7C, - 0x80, - 0x67, - 0x67, - 0x67, - 0x52, - 0x52, - 0x52, - 0x99, - 0x80, - 0x52, - 0x80, - 0x80, - 0x80, - 0x52, - 0x00, - 0x05, - 0x80, - 0x01, - 0x6A, - 0x01, - 0x6A, - 0x08, - 0x82, - 0x06, - 0x6A, - 0x01, - 0x9B, - 0x01, - 0x85, - 0x06, - 0x6A, - 0x00, - 0x07, - 0x85, - 0x6A, - 0x85, - 0x85, - 0x6B, - 0x85, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x59, - 0x59, - 0xCB, - 0x00, - 0x0D, - 0x59, - 0x00, - 0x08, - 0x6E, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x09, - 0x6E, - 0x00, - 0x0A, - 0x8A, - 0x6E, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0x06, - 0x8A, - 0x01, - 0x56, - 0x01, - 0x8A, - 0x0C, - 0x56, - 0x06, - 0x6D, - 0x00, - 0x10, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x87, - 0x55, - 0x6B, - 0x55, - 0x0A, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x6B, - 0x55, - 0x6B, - 0x06, - 0x85, - 0x00, - 0x08, - 0x6A, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x6A, - 0x9B, - 0x06, - 0x6A, - 0x00, - 0x0C, - 0x82, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x6A, - 0x6A, - 0x80, - 0x9B, - 0xC8, - 0xC7, - 0x82, - 0x09, - 0x80, - 0x00, - 0x0F, - 0x52, - 0x80, - 0x52, - 0x99, - 0x80, - 0x52, - 0x67, - 0x67, - 0x52, - 0x67, - 0x67, - 0x67, - 0x82, - 0x67, - 0x99, - 0x00, - 0x06, - 0x67, - 0x01, - 0x7C, - 0x01, - 0x67, - 0x0F, - 0x7C, - 0x00, - 0x17, - 0x96, - 0x95, - 0x92, - 0xC3, - 0x7C, - 0x7C, - 0x98, - 0x96, - 0x7C, - 0x7C, - 0xAE, - 0xAE, - 0x96, - 0xAD, - 0x7C, - 0x96, - 0xAD, - 0x7C, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x98, - 0x00, - 0x06, - 0x96, - 0x01, - 0x99, - 0x05, - 0x96, - 0x00, - 0x17, - 0xAD, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0xBA, - 0x90, - 0x90, - 0x90, - 0xAD, - 0x96, - 0x7C, - 0x96, - 0x98, - 0x7C, - 0x7C, - 0xAD, - 0x7C, - 0x7C, - 0x7C, - 0xAE, - 0x67, - 0x00, - 0x11, - 0x7C, - 0x01, - 0x67, - 0x01, - 0x7C, - 0x05, - 0x67, - 0x00, - 0x0D, - 0x99, - 0x67, - 0x82, - 0x99, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x7C, - 0x99, - 0x52, - 0x80, - 0x52, - 0x00, - 0x04, - 0x80, - 0x00, - 0x04, - 0x52, - 0x80, - 0x80, - 0x52, - 0x04, - 0x80, - 0x04, - 0x82, - 0x00, - 0x09, - 0x9B, - 0x6A, - 0x82, - 0x82, - 0x82, - 0x6A, - 0x82, - 0x6A, - 0x9B, - 0x00, - 0x04, - 0x6A, - 0x01, - 0x85, - 0x06, - 0x6A, - 0x07, - 0x85, - 0x00, - 0x04, - 0x6B, - 0x55, - 0x85, - 0x6C, - 0x00, - 0x00, - 0x01, - 0xCB, - 0x11, - 0x59, - 0x00, - 0x0A, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x0A, - 0x6E, - 0x00, - 0x05, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x6E, - 0x00, - 0x0A, - 0x8A, - 0x00, - 0x03, - 0x56, - 0x8A, - 0x8A, - 0x00, - 0x09, - 0x56, - 0x00, - 0x06, - 0x6D, - 0x56, - 0x6D, - 0x6D, - 0x56, - 0x56, - 0x05, - 0x6D, - 0x00, - 0x07, - 0x87, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x00, - 0x04, - 0x55, - 0x01, - 0x6B, - 0x01, - 0x55, - 0x08, - 0x6B, - 0x00, - 0x04, - 0x87, - 0x6B, - 0x85, - 0x6B, - 0x07, - 0x85, - 0x00, - 0x09, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x85, - 0x6A, - 0x9B, - 0x00, - 0x06, - 0x6A, - 0x00, - 0x15, - 0x82, - 0x6A, - 0x85, - 0x82, - 0x82, - 0x9B, - 0xC8, - 0xE0, - 0x9B, - 0x82, - 0x80, - 0x52, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x00, - 0x04, - 0x80, - 0x00, - 0x06, - 0x67, - 0x99, - 0x80, - 0x67, - 0x82, - 0x80, - 0x0B, - 0x67, - 0x01, - 0x7C, - 0x01, - 0x67, - 0x0C, - 0x7C, - 0x01, - 0x99, - 0x01, - 0x67, - 0x08, - 0x7C, - 0x01, - 0xAE, - 0x01, - 0xAE, - 0x07, - 0x7C, - 0x00, - 0x19, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x99, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x96, - 0x7C, - 0x95, - 0x90, - 0x90, - 0x7A, - 0x00, - 0x0B, - 0x7C, - 0x01, - 0x67, - 0x01, - 0x67, - 0x0B, - 0x7C, - 0x00, - 0x04, - 0x67, - 0x67, - 0x67, - 0x7C, - 0x0B, - 0x67, - 0x00, - 0x0F, - 0x82, - 0x52, - 0x67, - 0x99, - 0x80, - 0x80, - 0x52, - 0x80, - 0x80, - 0x99, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x00, - 0x05, - 0x80, - 0x07, - 0x82, - 0x00, - 0x04, - 0x6A, - 0x85, - 0x82, - 0x82, - 0x0B, - 0x6A, - 0x01, - 0x85, - 0x01, - 0x6A, - 0x09, - 0x85, - 0x00, - 0x05, - 0x6B, - 0x85, - 0x55, - 0x6B, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x59, - 0x59, - 0xCB, - 0xCB, - 0x0E, - 0x59, - 0x00, - 0x09, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x6E, - 0x59, - 0x00, - 0x0B, - 0x6E, - 0x00, - 0x07, - 0x8A, - 0x6E, - 0x8A, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x00, - 0x06, - 0x8A, - 0x00, - 0x08, - 0x56, - 0x8A, - 0x8A, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x07, - 0x56, - 0x00, - 0x1A, - 0x6D, - 0x6D, - 0x6D, - 0x56, - 0x56, - 0x6D, - 0x6D, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x6D, - 0x34, - 0x87, - 0x34, - 0x87, - 0x55, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x05, - 0x6B, - 0x01, - 0x34, - 0x06, - 0x6B, - 0x08, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x08, - 0x6A, - 0x00, - 0x0D, - 0x9B, - 0x6A, - 0x85, - 0x6A, - 0x6A, - 0x82, - 0x82, - 0x82, - 0xC7, - 0xC8, - 0xE0, - 0xB2, - 0xC7, - 0x00, - 0x0B, - 0x9B, - 0x00, - 0x07, - 0x82, - 0x82, - 0x82, - 0x9B, - 0x82, - 0x82, - 0xC7, - 0x00, - 0x05, - 0x82, - 0x0D, - 0x80, - 0x00, - 0x0D, - 0x99, - 0x80, - 0x99, - 0x80, - 0x99, - 0x80, - 0x99, - 0x99, - 0x80, - 0x80, - 0x99, - 0x99, - 0x80, - 0x00, - 0x06, - 0x99, - 0x01, - 0xD4, - 0x01, - 0xD4, - 0x0F, - 0x99, - 0x01, - 0x82, - 0x0C, - 0x99, - 0x01, - 0x7C, - 0x01, - 0x7C, - 0x08, - 0x99, - 0x00, - 0x0D, - 0x80, - 0x99, - 0x99, - 0x99, - 0x80, - 0x80, - 0x99, - 0x80, - 0x99, - 0x99, - 0x99, - 0x80, - 0x99, - 0x00, - 0x0C, - 0x80, - 0x01, - 0x82, - 0x01, - 0x80, - 0x05, - 0x82, - 0x00, - 0x0C, - 0x9B, - 0x82, - 0x9B, - 0x82, - 0x9B, - 0x82, - 0x9B, - 0x9B, - 0x82, - 0x9B, - 0x9B, - 0x82, - 0x0C, - 0x9B, - 0x00, - 0x05, - 0x85, - 0x9B, - 0x85, - 0x85, - 0x6B, - 0x00, - 0x09, - 0x85, - 0x00, - 0x03, - 0x6B, - 0xB2, - 0x85, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x0B, - 0xB2, - 0x6B, - 0xB2, - 0x6B, - 0xB2, - 0x87, - 0xB2, - 0x87, - 0x6D, - 0x87, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0xCB, - 0xCB, - 0x59, - 0x59, - 0xCB, - 0xCB, - 0x09, - 0x59, - 0x01, - 0xCB, - 0x06, - 0x59, - 0x00, - 0x04, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x12, - 0x6E, - 0x01, - 0x8A, - 0x01, - 0x6E, - 0x06, - 0x8A, - 0x00, - 0x06, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x0E, - 0x56, - 0x07, - 0x6D, - 0x00, - 0x0A, - 0x34, - 0x6D, - 0x6D, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x87, - 0x06, - 0x55, - 0x00, - 0x03, - 0x6B, - 0x6B, - 0x6D, - 0x00, - 0x09, - 0x6B, - 0x0B, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x85, - 0x04, - 0x6A, - 0x01, - 0x85, - 0x01, - 0x85, - 0x06, - 0x6A, - 0x00, - 0x09, - 0x85, - 0xB2, - 0x87, - 0xB2, - 0xC8, - 0xE0, - 0xC8, - 0xE0, - 0xC8, - 0x00, - 0x06, - 0xE0, - 0x01, - 0xC8, - 0x04, - 0xE0, - 0x01, - 0xC8, - 0x19, - 0xE0, - 0x00, - 0x0F, - 0xC7, - 0xE0, - 0xE0, - 0xC7, - 0xE0, - 0xC7, - 0xE0, - 0xC7, - 0xC7, - 0xE0, - 0xC7, - 0xE0, - 0xC7, - 0xE0, - 0xE0, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x0B, - 0xE0, - 0xC7, - 0xE0, - 0xC7, - 0xC7, - 0xE0, - 0xC7, - 0xC7, - 0xE0, - 0xC7, - 0xE0, - 0x00, - 0x05, - 0xC7, - 0x00, - 0x18, - 0xE0, - 0xC7, - 0xC7, - 0xE0, - 0xC7, - 0xC7, - 0xC7, - 0xE0, - 0xE0, - 0xC7, - 0xC7, - 0xE0, - 0xC7, - 0xC7, - 0xE0, - 0xC7, - 0xC7, - 0xE0, - 0xC7, - 0xE0, - 0xC7, - 0xE0, - 0xE0, - 0xC7, - 0x19, - 0xE0, - 0x01, - 0xC8, - 0x07, - 0xE0, - 0x00, - 0x0A, - 0xC8, - 0xE0, - 0x87, - 0xE0, - 0xE0, - 0xC8, - 0xE0, - 0xC8, - 0xC8, - 0x87, - 0x0A, - 0xC8, - 0x01, - 0xE1, - 0x06, - 0xC8, - 0x00, - 0x17, - 0xE1, - 0xC8, - 0xE1, - 0xC8, - 0xC8, - 0xE1, - 0xC8, - 0xE1, - 0xE1, - 0xE1, - 0x9D, - 0xE1, - 0x9D, - 0xE1, - 0x9D, - 0xE1, - 0x9D, - 0xE1, - 0xE1, - 0x9D, - 0xD6, - 0xD6, - 0x9E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x42, - 0xCB, - 0x42, - 0x00, - 0x09, - 0xCB, - 0x01, - 0x59, - 0x04, - 0xCB, - 0x01, - 0x59, - 0x01, - 0xCB, - 0x0C, - 0x59, - 0x00, - 0x0C, - 0x6E, - 0x59, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x59, - 0x0C, - 0x6E, - 0x00, - 0x06, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x0A, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x8A, - 0x56, - 0x8A, - 0x04, - 0x56, - 0x00, - 0x03, - 0x9D, - 0x56, - 0x6D, - 0x00, - 0x05, - 0x56, - 0x0A, - 0x6D, - 0x00, - 0x0B, - 0x56, - 0x34, - 0x87, - 0x34, - 0x34, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x87, - 0x00, - 0x04, - 0x55, - 0x01, - 0x87, - 0x0B, - 0x6B, - 0x00, - 0x05, - 0x87, - 0x55, - 0x6B, - 0x85, - 0x6B, - 0x00, - 0x04, - 0x85, - 0x01, - 0x6A, - 0x0B, - 0x85, - 0x01, - 0x6A, - 0x01, - 0x9B, - 0x05, - 0x6A, - 0x00, - 0x03, - 0x6B, - 0x6A, - 0x9B, - 0x00, - 0x06, - 0x6A, - 0x12, - 0x82, - 0x00, - 0x07, - 0x9B, - 0x9B, - 0x82, - 0x82, - 0x82, - 0x80, - 0x82, - 0x00, - 0x06, - 0x80, - 0x01, - 0x82, - 0x01, - 0x9B, - 0x0D, - 0x80, - 0x01, - 0x9B, - 0x16, - 0x80, - 0x04, - 0x82, - 0x01, - 0x9B, - 0x01, - 0x9B, - 0x0F, - 0x82, - 0x00, - 0x0C, - 0x6A, - 0x82, - 0x82, - 0x6A, - 0x82, - 0x6A, - 0x6A, - 0x9B, - 0x6A, - 0x6A, - 0x9B, - 0x6B, - 0x06, - 0x6A, - 0x01, - 0x9B, - 0x01, - 0x6A, - 0x06, - 0x85, - 0x01, - 0x6A, - 0x05, - 0x85, - 0x00, - 0x08, - 0x6B, - 0x85, - 0x85, - 0x6B, - 0x85, - 0x6B, - 0x87, - 0x55, - 0x08, - 0x6B, - 0x00, - 0x04, - 0x55, - 0x87, - 0x55, - 0x87, - 0x04, - 0x55, - 0x05, - 0x87, - 0x00, - 0x08, - 0x55, - 0x6D, - 0x34, - 0x6D, - 0x6D, - 0x8A, - 0x6E, - 0x89, - 0x00, - 0x00, - 0x05, - 0xCB, - 0x00, - 0x0B, - 0x59, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0xCB, - 0xCB, - 0x59, - 0x42, - 0x42, - 0x00, - 0x0A, - 0x59, - 0x00, - 0x12, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x59, - 0x6E, - 0x59, - 0x6E, - 0x6E, - 0x6E, - 0x59, - 0xCB, - 0x59, - 0x06, - 0x6E, - 0x00, - 0x06, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x8A, - 0x6E, - 0x07, - 0x8A, - 0x01, - 0x56, - 0x04, - 0x8A, - 0x00, - 0x08, - 0x56, - 0x59, - 0x59, - 0x8A, - 0x56, - 0x9D, - 0x56, - 0x9D, - 0x04, - 0x56, - 0x00, - 0x03, - 0x6D, - 0x56, - 0x56, - 0x00, - 0x07, - 0x6D, - 0x00, - 0x15, - 0x34, - 0x6D, - 0x6D, - 0x87, - 0x34, - 0x34, - 0x6D, - 0x59, - 0x9D, - 0x87, - 0x87, - 0x87, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x00, - 0x09, - 0x6B, - 0x00, - 0x06, - 0x85, - 0x6B, - 0x85, - 0x85, - 0x56, - 0x8A, - 0x05, - 0x85, - 0x01, - 0x6A, - 0x05, - 0x85, - 0x00, - 0x04, - 0x6A, - 0x85, - 0x6A, - 0x85, - 0x07, - 0x6A, - 0x00, - 0x06, - 0x9B, - 0x6A, - 0x82, - 0x85, - 0x9D, - 0x85, - 0x09, - 0x82, - 0x00, - 0x0C, - 0x80, - 0x82, - 0x80, - 0x82, - 0x82, - 0x80, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x04, - 0x80, - 0x00, - 0x49, - 0x6B, - 0x87, - 0x52, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x82, - 0xDE, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x52, - 0x82, - 0x6D, - 0x6A, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x80, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x80, - 0x52, - 0x6B, - 0x87, - 0x80, - 0x80, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x00, - 0x09, - 0x82, - 0x00, - 0x06, - 0x85, - 0x9D, - 0x85, - 0x82, - 0x6A, - 0x9B, - 0x07, - 0x6A, - 0x01, - 0x9B, - 0x01, - 0x6A, - 0x07, - 0x85, - 0x01, - 0x6A, - 0x05, - 0x85, - 0x00, - 0x09, - 0x56, - 0x8A, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x6B, - 0x6B, - 0x85, - 0x00, - 0x06, - 0x6B, - 0x00, - 0x10, - 0x55, - 0x6B, - 0x55, - 0x55, - 0x55, - 0x6B, - 0x55, - 0x55, - 0x87, - 0x55, - 0x87, - 0x55, - 0x56, - 0x6E, - 0x8A, - 0x88, - 0x00, - 0x00, - 0x0A, - 0xCB, - 0x00, - 0x06, - 0x59, - 0xCB, - 0x59, - 0x59, - 0xCB, - 0xCB, - 0x10, - 0x59, - 0x01, - 0x6E, - 0x01, - 0x59, - 0x08, - 0x6E, - 0x01, - 0x59, - 0x09, - 0x6E, - 0x01, - 0x8A, - 0x01, - 0x6E, - 0x0D, - 0x8A, - 0x00, - 0x04, - 0x56, - 0x56, - 0x6E, - 0x6E, - 0x08, - 0x56, - 0x01, - 0x6D, - 0x01, - 0x56, - 0x0C, - 0x6D, - 0x00, - 0x06, - 0x34, - 0x6D, - 0x87, - 0x6D, - 0x8A, - 0x6D, - 0x06, - 0x55, - 0x10, - 0x6B, - 0x00, - 0x05, - 0x85, - 0x6B, - 0x85, - 0x87, - 0x6D, - 0x00, - 0x08, - 0x85, - 0x12, - 0x6A, - 0x00, - 0x04, - 0x87, - 0x6A, - 0x82, - 0x6A, - 0x0C, - 0x82, - 0x01, - 0x80, - 0x01, - 0x82, - 0x09, - 0x80, - 0x01, - 0x9B, - 0x01, - 0x85, - 0x0C, - 0x80, - 0x00, - 0x03, - 0x52, - 0x82, - 0x82, - 0x00, - 0x0B, - 0x80, - 0x01, - 0x85, - 0x09, - 0x80, - 0x01, - 0x52, - 0x01, - 0x52, - 0x0F, - 0x80, - 0x01, - 0x9B, - 0x01, - 0x85, - 0x09, - 0x80, - 0x0D, - 0x82, - 0x00, - 0x08, - 0x6A, - 0x6A, - 0x82, - 0x6A, - 0x55, - 0x6A, - 0x6A, - 0x82, - 0x10, - 0x6A, - 0x07, - 0x85, - 0x00, - 0x05, - 0x87, - 0x6D, - 0x85, - 0x85, - 0x85, - 0x00, - 0x0F, - 0x6B, - 0x05, - 0x55, - 0x00, - 0x06, - 0x87, - 0x55, - 0x6D, - 0x8A, - 0x34, - 0x88, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x03, - 0x01, - 0xEE, - 0xFC, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x9F, - 0x69, - 0x93, - 0x93, - 0xA6, - 0xA6, - 0x9F, - 0x9F, - 0x93, - 0x9F, - 0x69, - 0x00, - 0x05, - 0x9F, - 0x01, - 0x71, - 0x01, - 0x71, - 0x04, - 0x69, - 0x00, - 0x63, - 0xA3, - 0x71, - 0xB8, - 0xD9, - 0x69, - 0x9F, - 0x9F, - 0x69, - 0x69, - 0x9F, - 0x3C, - 0xD9, - 0x69, - 0x69, - 0x71, - 0xB8, - 0x71, - 0x71, - 0xA3, - 0x69, - 0x93, - 0x9F, - 0x71, - 0x69, - 0x51, - 0x93, - 0x69, - 0x69, - 0xD9, - 0x71, - 0x69, - 0x9F, - 0x93, - 0x93, - 0x69, - 0x71, - 0xD9, - 0x71, - 0x71, - 0x69, - 0xD9, - 0x72, - 0x71, - 0x71, - 0x72, - 0x71, - 0x69, - 0xD9, - 0x72, - 0xDA, - 0x71, - 0x71, - 0xB8, - 0xB8, - 0xB8, - 0x72, - 0x72, - 0x72, - 0x71, - 0xD9, - 0x54, - 0x72, - 0xDB, - 0x72, - 0xD9, - 0x69, - 0x69, - 0xD9, - 0x73, - 0xBA, - 0x71, - 0x71, - 0xB8, - 0xB8, - 0x72, - 0xB8, - 0x71, - 0x69, - 0xA3, - 0xA3, - 0x69, - 0x54, - 0xB8, - 0xB8, - 0xD9, - 0x54, - 0xB8, - 0xB8, - 0x54, - 0x51, - 0x0A, - 0x93, - 0x69, - 0x42, - 0xBA, - 0xB8, - 0x45, - 0x46, - 0xBB, - 0x00, - 0x04, - 0x45, - 0x00, - 0x87, - 0x73, - 0x46, - 0x6A, - 0xBB, - 0xBB, - 0x45, - 0x45, - 0x6A, - 0x45, - 0x45, - 0xBB, - 0x46, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0x46, - 0xBB, - 0xBB, - 0x46, - 0xA9, - 0xBB, - 0x46, - 0xA9, - 0xA9, - 0x45, - 0x7B, - 0x45, - 0xA9, - 0x46, - 0x46, - 0x46, - 0xA9, - 0x46, - 0xBB, - 0x45, - 0xBA, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0x73, - 0xA9, - 0x46, - 0x45, - 0xBA, - 0x42, - 0xB8, - 0x72, - 0x45, - 0x45, - 0x45, - 0xBA, - 0x45, - 0x46, - 0xA9, - 0xBB, - 0xBA, - 0xBB, - 0x73, - 0x45, - 0xBB, - 0x74, - 0xA9, - 0xBB, - 0xBA, - 0xBA, - 0x45, - 0x73, - 0x45, - 0x46, - 0x74, - 0xBB, - 0x45, - 0xBB, - 0x46, - 0x46, - 0xA9, - 0x46, - 0xBB, - 0x73, - 0xBB, - 0x46, - 0x45, - 0x73, - 0xBB, - 0x73, - 0x46, - 0xA9, - 0x74, - 0xBB, - 0xBB, - 0x73, - 0x74, - 0x73, - 0xBB, - 0x74, - 0xBB, - 0x73, - 0x74, - 0x74, - 0x74, - 0x73, - 0xBB, - 0xE4, - 0x73, - 0xBB, - 0x74, - 0x46, - 0x73, - 0xBB, - 0xBB, - 0x74, - 0x46, - 0x73, - 0x73, - 0x73, - 0xBA, - 0x72, - 0xBA, - 0x73, - 0x73, - 0x74, - 0x73, - 0xDB, - 0x72, - 0x72, - 0x72, - 0x45, - 0xBA, - 0x72, - 0x73, - 0x73, - 0xB8, - 0x72, - 0x00, - 0x04, - 0x73, - 0x00, - 0x07, - 0xBB, - 0x73, - 0x72, - 0x72, - 0xBA, - 0x73, - 0x73, - 0x00, - 0x0A, - 0x72, - 0x00, - 0x27, - 0x71, - 0x71, - 0x72, - 0xDA, - 0x72, - 0x71, - 0x69, - 0x71, - 0x71, - 0x69, - 0x69, - 0x71, - 0xD9, - 0x71, - 0x71, - 0x69, - 0xD9, - 0x71, - 0x9F, - 0x9F, - 0x69, - 0x69, - 0x93, - 0x9F, - 0x69, - 0xD9, - 0x9F, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0x9F, - 0x9F, - 0x93, - 0x93, - 0x93, - 0x9F, - 0x69, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7F, - 0x9F, - 0x9F, - 0x93, - 0xA6, - 0x93, - 0x9F, - 0x9F, - 0x9F, - 0xA6, - 0x93, - 0x9F, - 0x69, - 0x71, - 0x69, - 0x93, - 0x69, - 0xDA, - 0x71, - 0x69, - 0xD9, - 0xD9, - 0x9F, - 0x9F, - 0x69, - 0x71, - 0x9F, - 0x69, - 0x69, - 0x9F, - 0x93, - 0x93, - 0x9F, - 0x69, - 0x69, - 0xD9, - 0x71, - 0x9F, - 0x69, - 0xB8, - 0xDA, - 0x71, - 0x71, - 0x71, - 0x69, - 0x71, - 0x72, - 0x69, - 0x71, - 0x72, - 0x69, - 0x69, - 0xA3, - 0x9F, - 0x51, - 0x9F, - 0x9F, - 0x69, - 0xB8, - 0x72, - 0xBA, - 0x45, - 0x71, - 0x71, - 0x72, - 0x71, - 0xA3, - 0x69, - 0x69, - 0x9F, - 0x9F, - 0xD9, - 0xD9, - 0x71, - 0x71, - 0x69, - 0x54, - 0xB8, - 0x72, - 0x46, - 0x73, - 0x71, - 0x69, - 0xD9, - 0x71, - 0x71, - 0x69, - 0x69, - 0xB8, - 0x71, - 0x72, - 0x73, - 0xBA, - 0x71, - 0xA3, - 0xB8, - 0x72, - 0xB8, - 0x72, - 0x72, - 0xB8, - 0xB8, - 0x71, - 0xA3, - 0x69, - 0xB8, - 0x42, - 0x54, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0x54, - 0x93, - 0xCA, - 0x93, - 0x72, - 0x71, - 0xB8, - 0xBA, - 0x73, - 0x45, - 0xBA, - 0x73, - 0x46, - 0x46, - 0xA9, - 0x00, - 0x04, - 0x45, - 0x00, - 0x52, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x73, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x46, - 0xBB, - 0x45, - 0x73, - 0x46, - 0x46, - 0x6A, - 0x45, - 0x46, - 0x47, - 0xA9, - 0x46, - 0xBB, - 0x46, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0xBB, - 0x45, - 0xBA, - 0xB8, - 0x7B, - 0x73, - 0xBB, - 0x45, - 0x46, - 0xBB, - 0x45, - 0xBA, - 0xB8, - 0xB8, - 0x73, - 0xA9, - 0x47, - 0xA9, - 0xBB, - 0x45, - 0x73, - 0x46, - 0xBB, - 0x45, - 0xBB, - 0x45, - 0x45, - 0xBB, - 0x46, - 0x73, - 0x72, - 0xBA, - 0xBB, - 0xBB, - 0x46, - 0x74, - 0x47, - 0xA9, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0x45, - 0x73, - 0x73, - 0x45, - 0xBA, - 0xBA, - 0x46, - 0xBB, - 0x45, - 0x73, - 0x46, - 0xE5, - 0x04, - 0x74, - 0x00, - 0x58, - 0x73, - 0x53, - 0xBA, - 0xDB, - 0xBB, - 0x73, - 0x45, - 0xA8, - 0x3E, - 0x74, - 0xBB, - 0x74, - 0x74, - 0x74, - 0x73, - 0xDA, - 0x72, - 0x73, - 0xBB, - 0x46, - 0x74, - 0x74, - 0xBB, - 0x73, - 0xBA, - 0x73, - 0xBA, - 0x73, - 0xBB, - 0x73, - 0x46, - 0x73, - 0xDA, - 0x72, - 0xBA, - 0xBA, - 0x73, - 0x73, - 0xBA, - 0x73, - 0x72, - 0xDA, - 0x72, - 0x73, - 0x73, - 0x72, - 0x73, - 0xDB, - 0x73, - 0xDB, - 0x72, - 0xDA, - 0xBA, - 0x72, - 0x71, - 0x71, - 0xDA, - 0x72, - 0x72, - 0x73, - 0x73, - 0xDB, - 0xDA, - 0xDA, - 0x71, - 0xDA, - 0xDA, - 0x72, - 0xB8, - 0x69, - 0x9F, - 0x69, - 0x72, - 0xD9, - 0x69, - 0x71, - 0x71, - 0xD9, - 0x69, - 0x9F, - 0x69, - 0xD9, - 0x71, - 0xD9, - 0x69, - 0x9F, - 0x9F, - 0x9F, - 0x06, - 0x69, - 0x00, - 0x09, - 0x9F, - 0x69, - 0x9F, - 0x9F, - 0x93, - 0x9F, - 0x9F, - 0x9F, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x9F, - 0x93, - 0x9F, - 0x93, - 0x93, - 0x93, - 0x9F, - 0x69, - 0x93, - 0x93, - 0x93, - 0x51, - 0xD9, - 0x69, - 0x9F, - 0x9F, - 0x05, - 0x69, - 0x00, - 0x64, - 0x9F, - 0x9F, - 0x69, - 0x71, - 0x9F, - 0x93, - 0x9F, - 0x9F, - 0xA6, - 0xA6, - 0x51, - 0x9F, - 0x93, - 0x93, - 0xB7, - 0x9F, - 0x69, - 0xB8, - 0x71, - 0x69, - 0x71, - 0x69, - 0x69, - 0x71, - 0x69, - 0x9F, - 0x71, - 0xB8, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0x71, - 0x54, - 0x71, - 0x71, - 0x9F, - 0x9F, - 0x69, - 0x69, - 0xD9, - 0xB8, - 0xB8, - 0x71, - 0x72, - 0x72, - 0xA3, - 0x69, - 0xA3, - 0x71, - 0xB8, - 0x71, - 0xB8, - 0x72, - 0xBA, - 0x72, - 0x71, - 0xBA, - 0x73, - 0xBA, - 0x72, - 0x73, - 0x45, - 0x72, - 0xB8, - 0xB8, - 0x72, - 0xDB, - 0x45, - 0x45, - 0xBA, - 0x73, - 0xB8, - 0x69, - 0xA3, - 0x69, - 0x69, - 0xDA, - 0x72, - 0x42, - 0xB8, - 0x71, - 0xA3, - 0x42, - 0xBA, - 0xB8, - 0x54, - 0x42, - 0x54, - 0x54, - 0x54, - 0xA3, - 0x9F, - 0x0A, - 0xA6, - 0xBA, - 0x73, - 0x72, - 0x7B, - 0x42, - 0x04, - 0xBA, - 0x00, - 0x66, - 0x45, - 0x45, - 0xBA, - 0xB8, - 0x7B, - 0x72, - 0x7B, - 0x45, - 0x45, - 0xBA, - 0x46, - 0xA9, - 0x46, - 0x45, - 0x72, - 0x7B, - 0x46, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0x46, - 0x73, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x47, - 0x75, - 0xBC, - 0xA9, - 0x45, - 0x45, - 0x6A, - 0x7B, - 0x54, - 0xD9, - 0xBA, - 0x73, - 0xB8, - 0x72, - 0x7B, - 0x72, - 0x72, - 0x45, - 0x46, - 0x46, - 0x45, - 0xBB, - 0xA9, - 0x46, - 0x45, - 0x45, - 0xBB, - 0x46, - 0x73, - 0x73, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0x74, - 0x46, - 0xBA, - 0x73, - 0x74, - 0xBB, - 0xBA, - 0x72, - 0xB8, - 0xB8, - 0xBA, - 0xBA, - 0x72, - 0xBA, - 0x73, - 0xBB, - 0xA9, - 0x74, - 0xBB, - 0xBB, - 0x74, - 0xE4, - 0x73, - 0xE4, - 0x74, - 0x75, - 0x74, - 0xBB, - 0x74, - 0x74, - 0x3E, - 0x74, - 0x74, - 0x74, - 0xBB, - 0xBB, - 0x04, - 0x74, - 0x00, - 0x31, - 0x46, - 0x73, - 0x73, - 0xA9, - 0xA9, - 0x74, - 0x74, - 0x73, - 0x72, - 0x72, - 0x73, - 0x73, - 0x46, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0xE4, - 0x73, - 0x46, - 0x74, - 0x74, - 0x73, - 0xBB, - 0x46, - 0x73, - 0xBA, - 0x72, - 0xBA, - 0x73, - 0xBA, - 0x72, - 0xBA, - 0x72, - 0x72, - 0x73, - 0xDB, - 0x72, - 0xBA, - 0x72, - 0xB8, - 0x72, - 0xDB, - 0xBA, - 0xBA, - 0x72, - 0x72, - 0x72, - 0xDA, - 0x00, - 0x05, - 0x72, - 0x01, - 0x71, - 0x05, - 0x69, - 0x00, - 0x1D, - 0xD9, - 0xD9, - 0x71, - 0x69, - 0xA3, - 0x71, - 0x71, - 0xA3, - 0x69, - 0x69, - 0x71, - 0x71, - 0x9F, - 0x69, - 0x69, - 0x93, - 0xA6, - 0x93, - 0x93, - 0x93, - 0x9F, - 0x9F, - 0x93, - 0x93, - 0x93, - 0xB7, - 0x9F, - 0x93, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x69, - 0xB7, - 0x9F, - 0x9F, - 0x9F, - 0x69, - 0xD9, - 0x69, - 0x05, - 0x9F, - 0x00, - 0xBC, - 0xD9, - 0x71, - 0x69, - 0x69, - 0xAE, - 0xD9, - 0x9F, - 0x69, - 0xD9, - 0x69, - 0x69, - 0x71, - 0x9F, - 0xA6, - 0x9F, - 0xD9, - 0x69, - 0x9F, - 0x71, - 0x72, - 0x71, - 0x69, - 0x69, - 0xD9, - 0x71, - 0x71, - 0xD9, - 0x69, - 0xA3, - 0x9F, - 0x9F, - 0x93, - 0x93, - 0x93, - 0x9F, - 0xA3, - 0xA3, - 0x9F, - 0x9F, - 0x9F, - 0xB8, - 0x71, - 0x9F, - 0x93, - 0x93, - 0xB7, - 0x93, - 0x93, - 0x9F, - 0xA3, - 0xA3, - 0x69, - 0xDB, - 0xBA, - 0x69, - 0x9F, - 0x69, - 0x72, - 0xBA, - 0x71, - 0x71, - 0x72, - 0x72, - 0x69, - 0xD9, - 0x72, - 0x72, - 0x71, - 0xB8, - 0x72, - 0x73, - 0x45, - 0x72, - 0x72, - 0xB8, - 0x73, - 0x72, - 0xBA, - 0x45, - 0x73, - 0xBA, - 0xB8, - 0x72, - 0x72, - 0xB8, - 0x72, - 0x73, - 0x42, - 0xB8, - 0x42, - 0x72, - 0x72, - 0xBA, - 0xBA, - 0x72, - 0x72, - 0xB8, - 0xB8, - 0x72, - 0x7B, - 0x54, - 0x9F, - 0xA3, - 0x73, - 0xBB, - 0xBA, - 0x42, - 0x72, - 0xBB, - 0x42, - 0xA3, - 0x54, - 0xBA, - 0xBA, - 0x45, - 0xB8, - 0x72, - 0x73, - 0xBB, - 0x45, - 0x7B, - 0x45, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0x42, - 0xBA, - 0xBB, - 0x74, - 0x47, - 0x46, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x47, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x45, - 0xB8, - 0xBA, - 0x45, - 0x72, - 0xB8, - 0x42, - 0x73, - 0x73, - 0x42, - 0x72, - 0xB8, - 0xB8, - 0xB8, - 0xBA, - 0xBB, - 0x73, - 0xBA, - 0x72, - 0x72, - 0xBA, - 0xBA, - 0xBB, - 0x46, - 0x46, - 0xBA, - 0x45, - 0xBB, - 0x45, - 0xB8, - 0xDA, - 0x45, - 0xBB, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0xBA, - 0x46, - 0xBB, - 0x73, - 0x72, - 0x72, - 0x72, - 0x05, - 0x73, - 0x01, - 0x46, - 0x04, - 0x74, - 0x00, - 0x08, - 0xBB, - 0x73, - 0xBB, - 0x74, - 0x74, - 0x74, - 0x46, - 0x73, - 0x04, - 0x74, - 0x00, - 0x09, - 0x73, - 0xBB, - 0x73, - 0xDB, - 0x74, - 0x74, - 0x74, - 0x73, - 0x73, - 0x00, - 0x06, - 0x74, - 0x00, - 0x17, - 0x73, - 0x45, - 0x73, - 0x46, - 0x74, - 0x73, - 0xBB, - 0x74, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0x74, - 0x74, - 0xBB, - 0xBB, - 0x73, - 0x73, - 0xBB, - 0x73, - 0xBB, - 0xBB, - 0x00, - 0x04, - 0x73, - 0x00, - 0x37, - 0x72, - 0xB8, - 0xDA, - 0x72, - 0x72, - 0x72, - 0xB8, - 0x42, - 0x45, - 0x72, - 0xBA, - 0x73, - 0x72, - 0x72, - 0x42, - 0x72, - 0xDA, - 0x72, - 0x72, - 0xB8, - 0x9F, - 0x9F, - 0x71, - 0x71, - 0x9F, - 0x69, - 0x72, - 0x72, - 0xB8, - 0x71, - 0xD9, - 0x71, - 0x72, - 0x69, - 0xD9, - 0x71, - 0x71, - 0x71, - 0xA3, - 0xA3, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0x9F, - 0x93, - 0x9F, - 0x51, - 0x93, - 0x93, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0xA6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0xD9, - 0x69, - 0x69, - 0xB7, - 0x9F, - 0xD9, - 0xAE, - 0xB7, - 0xB7, - 0x93, - 0xAE, - 0xAE, - 0x69, - 0x69, - 0xD9, - 0x69, - 0x9F, - 0x69, - 0x69, - 0x9F, - 0xAE, - 0x69, - 0xD9, - 0x71, - 0xDA, - 0x69, - 0x9F, - 0x9F, - 0x71, - 0xB8, - 0x71, - 0x71, - 0xA7, - 0xDA, - 0x72, - 0x72, - 0x72, - 0x3C, - 0x04, - 0x71, - 0x00, - 0xA5, - 0x69, - 0x9F, - 0x9F, - 0x93, - 0x93, - 0x9F, - 0x71, - 0x71, - 0x69, - 0x69, - 0xD9, - 0x69, - 0x9F, - 0x93, - 0x93, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0x69, - 0x71, - 0x71, - 0xD9, - 0x71, - 0xDB, - 0x72, - 0x72, - 0x71, - 0xDA, - 0x72, - 0x71, - 0x71, - 0xDA, - 0x72, - 0xD9, - 0x71, - 0xB8, - 0xBA, - 0xBA, - 0xBA, - 0x72, - 0x45, - 0x73, - 0x73, - 0x72, - 0x72, - 0xB8, - 0xBA, - 0xB8, - 0xB8, - 0xBA, - 0x46, - 0x74, - 0xBB, - 0x72, - 0xB8, - 0xBA, - 0x45, - 0xBA, - 0x72, - 0xB8, - 0x71, - 0xB8, - 0xB8, - 0x71, - 0x42, - 0x72, - 0x54, - 0xA3, - 0x71, - 0xBA, - 0xBA, - 0xB8, - 0xB8, - 0x42, - 0x45, - 0xB8, - 0x54, - 0xB8, - 0x72, - 0xBA, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0x46, - 0x6A, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0xB8, - 0x7B, - 0x42, - 0xBA, - 0x73, - 0xBB, - 0xBB, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0x45, - 0x46, - 0xA9, - 0x45, - 0xBB, - 0x46, - 0x46, - 0x46, - 0xBB, - 0x72, - 0x72, - 0x45, - 0xBB, - 0x72, - 0xBA, - 0x73, - 0x45, - 0xBA, - 0xBB, - 0x45, - 0x72, - 0x42, - 0xBA, - 0xBA, - 0xBB, - 0x45, - 0xBA, - 0x72, - 0xBA, - 0x73, - 0xBB, - 0xBB, - 0x73, - 0x73, - 0xBB, - 0xBB, - 0x46, - 0x45, - 0xBA, - 0x45, - 0x73, - 0x46, - 0x73, - 0xBB, - 0xBB, - 0x73, - 0xDB, - 0x73, - 0x46, - 0x73, - 0xBA, - 0x72, - 0xBA, - 0x46, - 0xBB, - 0x73, - 0x73, - 0x73, - 0xBB, - 0x00, - 0x04, - 0x74, - 0x00, - 0x06, - 0x73, - 0x73, - 0x46, - 0xBB, - 0x46, - 0x74, - 0x04, - 0xBB, - 0x00, - 0x1B, - 0x74, - 0xBB, - 0xBA, - 0xDB, - 0x73, - 0x73, - 0x74, - 0x74, - 0x74, - 0xBB, - 0xBA, - 0x46, - 0x47, - 0x74, - 0x46, - 0x73, - 0x73, - 0xBA, - 0x72, - 0x73, - 0xBB, - 0x74, - 0x74, - 0xBB, - 0x74, - 0x73, - 0xDB, - 0x00, - 0x05, - 0x73, - 0x00, - 0x0F, - 0x45, - 0xBA, - 0x45, - 0xDB, - 0x74, - 0x73, - 0xBB, - 0x73, - 0x73, - 0xBB, - 0x73, - 0x72, - 0x72, - 0x71, - 0xB8, - 0x00, - 0x04, - 0x72, - 0x00, - 0x30, - 0xBA, - 0x45, - 0xDA, - 0x72, - 0x73, - 0xBA, - 0x71, - 0x71, - 0xB8, - 0x72, - 0x72, - 0x72, - 0xB8, - 0x69, - 0x69, - 0xBA, - 0x72, - 0xD9, - 0x71, - 0x72, - 0x72, - 0xDA, - 0xA3, - 0x69, - 0x69, - 0xA3, - 0x9F, - 0x69, - 0xA3, - 0xD9, - 0x69, - 0x9F, - 0x9F, - 0x69, - 0xA3, - 0x9F, - 0x69, - 0x69, - 0x9F, - 0x9F, - 0x9F, - 0x51, - 0x9F, - 0x69, - 0x69, - 0x9F, - 0x9F, - 0x93, - 0x00, - 0x00, - 0x00, - 0x52, - 0x69, - 0x67, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0x69, - 0x9F, - 0x9F, - 0xB7, - 0x9F, - 0xD9, - 0xD9, - 0xD9, - 0x69, - 0x9F, - 0x9F, - 0x9F, - 0xB7, - 0x69, - 0xD9, - 0xD9, - 0x71, - 0xDA, - 0x9C, - 0x72, - 0xD9, - 0x69, - 0x69, - 0x69, - 0xD9, - 0x9F, - 0x9F, - 0x67, - 0xA7, - 0xA7, - 0x72, - 0xD9, - 0xD9, - 0xD9, - 0x69, - 0x72, - 0x69, - 0xAE, - 0x71, - 0x9F, - 0xB7, - 0x69, - 0x72, - 0xDA, - 0x71, - 0x71, - 0x71, - 0x9F, - 0x9F, - 0x9F, - 0x69, - 0xD9, - 0x71, - 0x71, - 0x69, - 0xA3, - 0xA3, - 0x9F, - 0x9F, - 0x93, - 0xA7, - 0x73, - 0xDB, - 0x73, - 0xA8, - 0xDA, - 0x72, - 0x72, - 0xDB, - 0xDB, - 0x73, - 0x72, - 0x71, - 0x71, - 0x72, - 0x71, - 0x04, - 0x72, - 0x00, - 0x9B, - 0xBA, - 0x73, - 0x73, - 0x72, - 0x72, - 0x71, - 0xB8, - 0x72, - 0xD9, - 0x69, - 0xB8, - 0x73, - 0x73, - 0x72, - 0x71, - 0x72, - 0x72, - 0xBA, - 0x72, - 0xB8, - 0x69, - 0x69, - 0x71, - 0xB8, - 0x71, - 0xA3, - 0x54, - 0x54, - 0xA3, - 0x51, - 0x9F, - 0xD9, - 0xA7, - 0xB8, - 0x71, - 0xB8, - 0x72, - 0x45, - 0x45, - 0x45, - 0xBA, - 0x45, - 0x45, - 0xBA, - 0x72, - 0x45, - 0x45, - 0x45, - 0x72, - 0x72, - 0x42, - 0x71, - 0x42, - 0x72, - 0xBA, - 0x45, - 0x73, - 0x73, - 0x45, - 0xBB, - 0x46, - 0xBB, - 0x46, - 0xA9, - 0x46, - 0x45, - 0x73, - 0xA9, - 0xBB, - 0x46, - 0x73, - 0xBA, - 0x45, - 0xBB, - 0xBB, - 0xBA, - 0x45, - 0xBB, - 0x45, - 0x72, - 0x46, - 0xBB, - 0x73, - 0xBA, - 0x45, - 0xBA, - 0x46, - 0xBB, - 0x45, - 0x45, - 0x73, - 0xBB, - 0x74, - 0x45, - 0xBA, - 0x73, - 0x74, - 0x46, - 0xBB, - 0x73, - 0x46, - 0x74, - 0x74, - 0x74, - 0xBB, - 0x47, - 0x74, - 0x73, - 0x45, - 0x72, - 0xBB, - 0x46, - 0x73, - 0xDB, - 0x73, - 0x74, - 0xBB, - 0x73, - 0xBB, - 0xBB, - 0x46, - 0x74, - 0x74, - 0x74, - 0xA9, - 0x53, - 0x74, - 0x74, - 0x74, - 0xE4, - 0x74, - 0x74, - 0x74, - 0x73, - 0x73, - 0xE4, - 0x74, - 0x73, - 0x73, - 0xE4, - 0x74, - 0xE5, - 0x75, - 0x75, - 0x74, - 0xBB, - 0xE4, - 0x47, - 0x75, - 0x74, - 0x73, - 0x73, - 0xBA, - 0xB8, - 0x73, - 0x00, - 0x04, - 0x74, - 0x00, - 0x4B, - 0x73, - 0xBA, - 0x72, - 0x72, - 0xBA, - 0xBA, - 0x72, - 0xDB, - 0x73, - 0x45, - 0x73, - 0x73, - 0x46, - 0x73, - 0x73, - 0x45, - 0xBA, - 0xBA, - 0xBA, - 0x72, - 0xB8, - 0x72, - 0xBA, - 0x72, - 0xBA, - 0x72, - 0x72, - 0x45, - 0xBA, - 0x72, - 0x71, - 0x72, - 0xB8, - 0xD9, - 0x69, - 0x71, - 0xB8, - 0x72, - 0x72, - 0x71, - 0xB8, - 0xB8, - 0x42, - 0x72, - 0x71, - 0x71, - 0xD9, - 0x71, - 0xA3, - 0x69, - 0x9F, - 0x51, - 0x9F, - 0x9F, - 0x9F, - 0xA3, - 0xA3, - 0x9F, - 0x93, - 0x9F, - 0x69, - 0x69, - 0x69, - 0xA3, - 0xA3, - 0xD9, - 0x69, - 0x9F, - 0x51, - 0x69, - 0xA3, - 0xA3, - 0x69, - 0xA3, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3C, - 0x9F, - 0xD9, - 0x71, - 0x9F, - 0xA6, - 0x93, - 0xD9, - 0xA7, - 0xD9, - 0x69, - 0x69, - 0x9F, - 0x69, - 0xA7, - 0xA7, - 0xD9, - 0x69, - 0xAE, - 0x9F, - 0x67, - 0x9C, - 0x9C, - 0x71, - 0xD9, - 0xDA, - 0x9C, - 0xD9, - 0x69, - 0xD9, - 0x69, - 0xD9, - 0xB7, - 0x9F, - 0xD9, - 0x71, - 0x69, - 0xA7, - 0xA7, - 0xDA, - 0x69, - 0x9F, - 0xD9, - 0xAE, - 0xD9, - 0xDA, - 0xD9, - 0x69, - 0xA7, - 0xDA, - 0x72, - 0xDA, - 0xD9, - 0xB7, - 0x71, - 0xD9, - 0x71, - 0x71, - 0x69, - 0x69, - 0x9F, - 0x04, - 0x69, - 0x00, - 0x4D, - 0x72, - 0xD9, - 0x72, - 0xE4, - 0x46, - 0x73, - 0xA8, - 0x72, - 0xA7, - 0xDB, - 0x73, - 0xD9, - 0x71, - 0xDA, - 0xD9, - 0x9F, - 0x69, - 0xDB, - 0xDB, - 0x72, - 0x72, - 0xDB, - 0x72, - 0x72, - 0xD9, - 0x69, - 0xD9, - 0xDB, - 0x53, - 0x72, - 0xDA, - 0xD9, - 0xDA, - 0x72, - 0x69, - 0x9F, - 0x54, - 0xDA, - 0xDA, - 0x71, - 0x69, - 0x9F, - 0x69, - 0x69, - 0x69, - 0xDA, - 0x71, - 0xA3, - 0x69, - 0x71, - 0xA3, - 0xA6, - 0xA6, - 0x9F, - 0x71, - 0x71, - 0x71, - 0xB8, - 0x45, - 0x73, - 0x73, - 0x73, - 0x45, - 0x73, - 0xBA, - 0x72, - 0x54, - 0x9F, - 0xB8, - 0x72, - 0x7B, - 0xB8, - 0xB8, - 0xB8, - 0x72, - 0xBA, - 0x72, - 0x00, - 0x05, - 0xBA, - 0x00, - 0x91, - 0xBB, - 0xA9, - 0x74, - 0x46, - 0x45, - 0x73, - 0xBB, - 0x73, - 0x73, - 0x73, - 0x46, - 0x46, - 0x73, - 0xBA, - 0x72, - 0x73, - 0x73, - 0xBB, - 0x45, - 0x73, - 0x73, - 0x45, - 0x45, - 0x45, - 0xBA, - 0x72, - 0xBA, - 0xBB, - 0x73, - 0xBA, - 0xDA, - 0x73, - 0x73, - 0xBA, - 0x73, - 0x74, - 0xA9, - 0x73, - 0xBA, - 0x73, - 0xBB, - 0x47, - 0x47, - 0xA9, - 0x74, - 0x74, - 0x74, - 0x73, - 0xBA, - 0x45, - 0xBB, - 0x74, - 0xA9, - 0x74, - 0xBB, - 0xE5, - 0x74, - 0x74, - 0x47, - 0x75, - 0x74, - 0xA9, - 0x47, - 0x3E, - 0xE5, - 0xE5, - 0x47, - 0xE5, - 0x47, - 0x75, - 0x75, - 0x47, - 0xE5, - 0x73, - 0x73, - 0x46, - 0x74, - 0xE5, - 0x74, - 0x74, - 0x74, - 0x75, - 0x75, - 0xE5, - 0x47, - 0x75, - 0x75, - 0x74, - 0x74, - 0x74, - 0x46, - 0xBB, - 0x73, - 0x73, - 0x73, - 0x74, - 0x73, - 0x73, - 0xBB, - 0x45, - 0x72, - 0xBA, - 0x73, - 0xBA, - 0x72, - 0xBA, - 0x46, - 0x74, - 0x46, - 0x46, - 0x74, - 0x46, - 0x73, - 0xBB, - 0x73, - 0xBA, - 0x72, - 0x72, - 0xBA, - 0xBA, - 0x73, - 0x45, - 0x72, - 0x72, - 0xB8, - 0xB8, - 0xDA, - 0xBA, - 0x72, - 0x71, - 0x71, - 0x69, - 0x69, - 0x71, - 0xBA, - 0xB8, - 0x72, - 0xB8, - 0x71, - 0xB8, - 0x69, - 0x9F, - 0x69, - 0x69, - 0x9F, - 0x00, - 0x05, - 0x69, - 0x00, - 0x18, - 0x9F, - 0x9F, - 0xA3, - 0x71, - 0x71, - 0xA3, - 0x93, - 0x93, - 0x9F, - 0xA3, - 0xA3, - 0x69, - 0xA3, - 0x71, - 0x71, - 0x54, - 0x69, - 0xA3, - 0xA3, - 0xA3, - 0x54, - 0x54, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x9F, - 0x9F, - 0xD9, - 0x69, - 0x04, - 0x71, - 0x00, - 0x5F, - 0x72, - 0x69, - 0x9F, - 0x9F, - 0xA6, - 0x93, - 0x66, - 0x69, - 0x69, - 0x9F, - 0x9F, - 0xAE, - 0xD9, - 0xDA, - 0xA7, - 0x69, - 0xB7, - 0xDA, - 0xA7, - 0x72, - 0x72, - 0xA7, - 0x72, - 0xD9, - 0x69, - 0xAE, - 0xAE, - 0xD9, - 0x71, - 0xDA, - 0xA7, - 0x71, - 0x69, - 0x9F, - 0x9F, - 0x9F, - 0x71, - 0xD9, - 0x9F, - 0xD9, - 0x71, - 0x71, - 0x72, - 0x72, - 0x69, - 0xD9, - 0x69, - 0x71, - 0xA7, - 0x72, - 0x71, - 0x9F, - 0x9F, - 0xD9, - 0x71, - 0x71, - 0xD9, - 0x72, - 0xD9, - 0x71, - 0x72, - 0x72, - 0x73, - 0xDB, - 0x68, - 0x73, - 0x9C, - 0x72, - 0x69, - 0xA7, - 0x72, - 0xD9, - 0x69, - 0x9C, - 0x9C, - 0xA7, - 0x72, - 0x9C, - 0x71, - 0x72, - 0x72, - 0x69, - 0x69, - 0xA7, - 0x9C, - 0x72, - 0x71, - 0xD9, - 0x71, - 0x71, - 0x9F, - 0x9F, - 0x71, - 0x71, - 0x3C, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x6D, - 0x3C, - 0xD9, - 0x69, - 0x69, - 0x69, - 0x9F, - 0x93, - 0xA6, - 0xC9, - 0xCA, - 0x9F, - 0xAE, - 0x69, - 0xD9, - 0xD9, - 0x71, - 0xB8, - 0x72, - 0xB8, - 0x71, - 0x54, - 0xA3, - 0xA3, - 0x9F, - 0x69, - 0x69, - 0xA3, - 0x72, - 0xBA, - 0x72, - 0x7B, - 0xBA, - 0xBA, - 0xBA, - 0x72, - 0x72, - 0xB8, - 0xB8, - 0x72, - 0x72, - 0xBA, - 0x73, - 0xBA, - 0xB8, - 0xB8, - 0x72, - 0x72, - 0x45, - 0xBB, - 0xBA, - 0x73, - 0xBA, - 0xB8, - 0xB8, - 0x45, - 0xBA, - 0xDA, - 0x72, - 0xDB, - 0x73, - 0xBA, - 0xB8, - 0x72, - 0x73, - 0xBA, - 0xD9, - 0x72, - 0xBA, - 0xBA, - 0x45, - 0x74, - 0x46, - 0xBB, - 0x74, - 0x74, - 0xE4, - 0x73, - 0xBB, - 0x46, - 0xA9, - 0x74, - 0xBB, - 0x46, - 0xBB, - 0x73, - 0xBB, - 0xBB, - 0x73, - 0x74, - 0x46, - 0x74, - 0x46, - 0x73, - 0x73, - 0x73, - 0x45, - 0xBB, - 0x74, - 0xA9, - 0xA9, - 0x74, - 0x74, - 0xE5, - 0xA9, - 0x75, - 0x47, - 0x75, - 0x74, - 0xE5, - 0x00, - 0x04, - 0x74, - 0x00, - 0x52, - 0x46, - 0x74, - 0xE5, - 0x75, - 0x75, - 0x74, - 0x74, - 0xE4, - 0x74, - 0x46, - 0xBB, - 0x74, - 0x74, - 0x74, - 0x46, - 0xBB, - 0x74, - 0xBB, - 0x73, - 0x46, - 0xBB, - 0x73, - 0x73, - 0xBB, - 0x73, - 0x42, - 0xBA, - 0x73, - 0xBA, - 0xBA, - 0xBA, - 0x73, - 0x73, - 0x46, - 0x73, - 0xBB, - 0xA9, - 0xA9, - 0x73, - 0xBA, - 0x45, - 0x45, - 0x45, - 0xBA, - 0x45, - 0x45, - 0xBA, - 0xBA, - 0xB8, - 0x71, - 0x72, - 0x42, - 0x71, - 0x3C, - 0xDA, - 0xB8, - 0xBA, - 0x72, - 0x72, - 0x71, - 0x72, - 0x72, - 0x42, - 0xB8, - 0x72, - 0x72, - 0x9F, - 0x9F, - 0x9F, - 0x51, - 0x9F, - 0xA3, - 0xD9, - 0x69, - 0xA3, - 0x71, - 0x71, - 0xB8, - 0x72, - 0xA3, - 0x69, - 0xA3, - 0x04, - 0x69, - 0x00, - 0x06, - 0x51, - 0xA3, - 0x71, - 0xA3, - 0xA3, - 0xA3, - 0x04, - 0x54, - 0x04, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x52, - 0x69, - 0x93, - 0x93, - 0x9F, - 0xD9, - 0x69, - 0x69, - 0x71, - 0xD9, - 0x69, - 0x71, - 0xDA, - 0xAE, - 0x9F, - 0x69, - 0xD9, - 0xD9, - 0x9F, - 0x69, - 0xD9, - 0x9F, - 0xAE, - 0x69, - 0xB7, - 0xB7, - 0xB7, - 0xA7, - 0x9C, - 0x9C, - 0x52, - 0xDA, - 0x69, - 0xAE, - 0x71, - 0xA7, - 0xA7, - 0xDA, - 0xDA, - 0x72, - 0x72, - 0x72, - 0xD9, - 0x69, - 0x71, - 0x71, - 0xD9, - 0xD9, - 0xA7, - 0x71, - 0xDA, - 0xDB, - 0x72, - 0x72, - 0x71, - 0xA7, - 0xA7, - 0x72, - 0x72, - 0xD9, - 0x9F, - 0x9F, - 0x71, - 0xA7, - 0xD9, - 0x69, - 0x9C, - 0xD9, - 0x69, - 0x71, - 0xDA, - 0xA7, - 0x9C, - 0x72, - 0xA7, - 0xD9, - 0xAE, - 0xD9, - 0x9C, - 0x9C, - 0xD9, - 0x9F, - 0x9C, - 0x04, - 0xA7, - 0x00, - 0x27, - 0xAE, - 0xD9, - 0x71, - 0x9F, - 0xB7, - 0x9F, - 0x9F, - 0xAE, - 0x67, - 0x69, - 0x9F, - 0xAE, - 0xB7, - 0x93, - 0x43, - 0xA6, - 0xCA, - 0xA6, - 0xD5, - 0xCA, - 0xC9, - 0xCA, - 0xC9, - 0xCD, - 0xCD, - 0xCB, - 0xCC, - 0xCC, - 0xCC, - 0xC6, - 0xC6, - 0xCD, - 0xCD, - 0xB0, - 0xA6, - 0xCA, - 0xCA, - 0xC9, - 0xCA, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x4C, - 0x93, - 0x9F, - 0x9F, - 0x93, - 0x93, - 0x9F, - 0x69, - 0x9F, - 0x9F, - 0x9F, - 0x69, - 0x69, - 0xA3, - 0x69, - 0x69, - 0xD9, - 0xA3, - 0xA3, - 0xB8, - 0x72, - 0xB8, - 0xB8, - 0xB8, - 0xD9, - 0xB8, - 0x72, - 0x54, - 0x71, - 0xB8, - 0x71, - 0xB8, - 0xB8, - 0x73, - 0xBB, - 0x72, - 0xB8, - 0x72, - 0xBA, - 0xBA, - 0xBA, - 0x73, - 0xBA, - 0xBA, - 0x72, - 0x45, - 0xBA, - 0xBA, - 0x73, - 0xBB, - 0xBA, - 0x74, - 0x46, - 0x73, - 0x73, - 0xBB, - 0x46, - 0xE4, - 0x74, - 0x46, - 0xBB, - 0x73, - 0xBA, - 0x73, - 0x73, - 0x73, - 0xBA, - 0xBA, - 0x45, - 0x73, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x45, - 0xBA, - 0x73, - 0x06, - 0x74, - 0x00, - 0x0B, - 0xA9, - 0x74, - 0xBB, - 0x73, - 0xDB, - 0x73, - 0xBB, - 0x74, - 0x73, - 0xDB, - 0x73, - 0x00, - 0x04, - 0x74, - 0x01, - 0xA9, - 0x01, - 0xA9, - 0x04, - 0x74, - 0x00, - 0x4F, - 0xE5, - 0x74, - 0x74, - 0x47, - 0x47, - 0x46, - 0x45, - 0x73, - 0x73, - 0x72, - 0xBA, - 0x73, - 0xBB, - 0x73, - 0x45, - 0x45, - 0xBA, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0x45, - 0xBB, - 0x45, - 0x73, - 0x45, - 0xBA, - 0x72, - 0x42, - 0x72, - 0xBA, - 0x45, - 0x72, - 0xB8, - 0xB8, - 0x72, - 0x72, - 0xB8, - 0xB8, - 0x72, - 0x72, - 0x45, - 0x45, - 0xB8, - 0xA3, - 0xB8, - 0xB8, - 0x71, - 0x71, - 0x72, - 0x72, - 0x71, - 0xA3, - 0x69, - 0x54, - 0x71, - 0xA3, - 0xA3, - 0x54, - 0xB8, - 0x42, - 0x54, - 0xA3, - 0xB8, - 0x71, - 0x54, - 0x71, - 0xA3, - 0x54, - 0x3C, - 0xA3, - 0x71, - 0xA3, - 0x51, - 0x51, - 0x51, - 0x00, - 0x04, - 0x54, - 0x00, - 0x05, - 0xA3, - 0xA3, - 0x9F, - 0x93, - 0x93, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9F, - 0x01, - 0x71, - 0x07, - 0x69, - 0x00, - 0x45, - 0x71, - 0xD9, - 0x69, - 0x69, - 0xD9, - 0x9F, - 0x93, - 0xB7, - 0xAE, - 0x69, - 0xA7, - 0x67, - 0x69, - 0x69, - 0x9F, - 0x9F, - 0x93, - 0x9F, - 0xA7, - 0xA7, - 0x71, - 0xA7, - 0x69, - 0xD9, - 0xD9, - 0x69, - 0x69, - 0x69, - 0xAE, - 0x72, - 0xDB, - 0x9C, - 0x71, - 0x69, - 0xD9, - 0x67, - 0xD9, - 0x69, - 0xAE, - 0xD9, - 0xA7, - 0xA7, - 0xD9, - 0x3C, - 0x9F, - 0x9F, - 0x67, - 0xA7, - 0xAE, - 0xAE, - 0x9F, - 0xAE, - 0x69, - 0xAE, - 0xAE, - 0x67, - 0x9C, - 0xA7, - 0x71, - 0xAE, - 0x9F, - 0xB7, - 0x9F, - 0xAE, - 0xAE, - 0xAE, - 0x9F, - 0xAE, - 0x67, - 0x00, - 0x05, - 0xAE, - 0x00, - 0x0F, - 0x9F, - 0x9F, - 0x9F, - 0xD5, - 0xA6, - 0x66, - 0x66, - 0xAD, - 0xA6, - 0xAD, - 0xA6, - 0xB7, - 0xD5, - 0xA6, - 0xCA, - 0x00, - 0x04, - 0xC9, - 0x00, - 0x16, - 0xB6, - 0xB6, - 0xB6, - 0xB0, - 0xB6, - 0xC5, - 0xCD, - 0xD7, - 0xE3, - 0xE2, - 0xED, - 0xFF, - 0xFF, - 0x6B, - 0x56, - 0xD7, - 0xCB, - 0xCD, - 0xAC, - 0xC5, - 0xC9, - 0xC5, - 0x06, - 0xC9, - 0x00, - 0x1A, - 0x93, - 0x9F, - 0xA6, - 0xCA, - 0x93, - 0x9F, - 0x9F, - 0x93, - 0x9F, - 0x9F, - 0x9F, - 0x69, - 0x69, - 0x69, - 0x9F, - 0x9F, - 0x9F, - 0xD9, - 0x71, - 0x71, - 0xD9, - 0xA3, - 0xA3, - 0xB8, - 0xB8, - 0xD9, - 0x04, - 0xB8, - 0x00, - 0x44, - 0x72, - 0xB8, - 0x72, - 0xB8, - 0x69, - 0xA3, - 0x71, - 0x72, - 0xDB, - 0x73, - 0x45, - 0xBA, - 0xBA, - 0xBA, - 0x72, - 0xBA, - 0x45, - 0x73, - 0x73, - 0x73, - 0xBA, - 0xBA, - 0xBA, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0xBA, - 0x73, - 0x73, - 0xBA, - 0x72, - 0xBA, - 0x73, - 0xBA, - 0x73, - 0x73, - 0xBA, - 0xBA, - 0x72, - 0x73, - 0x74, - 0xBB, - 0x46, - 0xBB, - 0x74, - 0xA9, - 0x74, - 0x74, - 0x46, - 0x72, - 0xDA, - 0xBA, - 0x74, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x74, - 0x74, - 0x74, - 0xA9, - 0x47, - 0x75, - 0x04, - 0xA9, - 0x00, - 0x4E, - 0x46, - 0xBB, - 0x46, - 0xBB, - 0x74, - 0xBB, - 0xBA, - 0x73, - 0xBB, - 0x45, - 0x45, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0x45, - 0x45, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0x73, - 0x45, - 0xB8, - 0xBA, - 0x45, - 0x45, - 0xBA, - 0x71, - 0xB8, - 0x72, - 0x72, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x7B, - 0x72, - 0x7B, - 0xB8, - 0xB8, - 0x72, - 0xBA, - 0xBA, - 0x72, - 0x42, - 0xB8, - 0xB8, - 0x54, - 0x69, - 0x9F, - 0x51, - 0xA3, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0x69, - 0xA3, - 0x54, - 0x42, - 0xB8, - 0x54, - 0xB8, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0x3F, - 0xA3, - 0xA3, - 0x54, - 0x54, - 0xA3, - 0x51, - 0x05, - 0xA3, - 0x05, - 0x51, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x69, - 0x71, - 0x72, - 0x72, - 0x71, - 0xD9, - 0xD9, - 0x69, - 0x9F, - 0xDA, - 0xD9, - 0x93, - 0x9F, - 0xD9, - 0x9F, - 0xB7, - 0x9F, - 0x69, - 0x69, - 0x71, - 0xD9, - 0x69, - 0x9F, - 0xB7, - 0x93, - 0xB7, - 0xB7, - 0x9F, - 0x9F, - 0x9F, - 0x69, - 0xAE, - 0x71, - 0x69, - 0xB7, - 0x9F, - 0x69, - 0x67, - 0xD9, - 0x71, - 0x9C, - 0xDA, - 0x71, - 0x69, - 0x67, - 0xD9, - 0x69, - 0x69, - 0xAE, - 0xA7, - 0xA7, - 0x9F, - 0xB7, - 0xB7, - 0x9F, - 0x9F, - 0x9F, - 0xB7, - 0xD5, - 0x00, - 0x06, - 0xB7, - 0x00, - 0x17, - 0xAE, - 0x67, - 0x67, - 0xAE, - 0xA6, - 0xA6, - 0xA6, - 0xAD, - 0xD5, - 0xCA, - 0xD5, - 0xAD, - 0xAD, - 0xC9, - 0xA6, - 0x66, - 0xAD, - 0xAD, - 0xCA, - 0xA6, - 0xAD, - 0xC9, - 0xB6, - 0x00, - 0x04, - 0xC9, - 0x00, - 0x34, - 0xB6, - 0xB6, - 0xB6, - 0xC9, - 0xB6, - 0xB6, - 0xB6, - 0xC3, - 0xB6, - 0xB6, - 0xC3, - 0xAF, - 0xCD, - 0xC3, - 0xB0, - 0xC3, - 0xD2, - 0xE2, - 0xEF, - 0xE3, - 0xCC, - 0xB2, - 0xFF, - 0xEE, - 0x56, - 0xCC, - 0xCB, - 0xD2, - 0xCD, - 0xC6, - 0xC6, - 0xC6, - 0xAF, - 0xB6, - 0xC9, - 0xC9, - 0xB6, - 0xC9, - 0x93, - 0x93, - 0x93, - 0xA6, - 0xA6, - 0x9F, - 0x9F, - 0x51, - 0x9F, - 0x51, - 0x9F, - 0x9F, - 0x9F, - 0xA3, - 0x04, - 0x69, - 0x00, - 0x08, - 0xD9, - 0xB8, - 0xD9, - 0xA3, - 0xD9, - 0xD9, - 0x71, - 0xA3, - 0x05, - 0xB8, - 0x00, - 0x15, - 0x72, - 0x72, - 0x71, - 0xA3, - 0x71, - 0xD9, - 0xDA, - 0x73, - 0xBA, - 0xBA, - 0xBA, - 0x72, - 0xBA, - 0xBA, - 0xBA, - 0x73, - 0xBB, - 0xE4, - 0xBA, - 0x72, - 0xDB, - 0x00, - 0x0A, - 0x73, - 0x00, - 0x6A, - 0xBB, - 0xBB, - 0x46, - 0xDB, - 0xBB, - 0xBB, - 0x73, - 0x73, - 0xBB, - 0x73, - 0xBA, - 0x73, - 0xBB, - 0x46, - 0x73, - 0x73, - 0x46, - 0x74, - 0x74, - 0xA9, - 0x47, - 0xA9, - 0x73, - 0xBA, - 0x73, - 0x46, - 0xBB, - 0x74, - 0x46, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0x46, - 0x74, - 0x46, - 0x74, - 0x74, - 0x74, - 0x46, - 0xBB, - 0xBA, - 0xBB, - 0x73, - 0xBB, - 0xBA, - 0x45, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0x45, - 0x45, - 0xBB, - 0xBB, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0x7B, - 0xB8, - 0xBA, - 0x45, - 0xBA, - 0xB8, - 0x54, - 0x54, - 0x72, - 0x45, - 0x7B, - 0x72, - 0xBA, - 0xBA, - 0x42, - 0xB8, - 0x7B, - 0x42, - 0x71, - 0xB8, - 0xBA, - 0x72, - 0xB8, - 0x54, - 0x42, - 0xB8, - 0x71, - 0xA3, - 0x51, - 0x9F, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0x51, - 0xA3, - 0x54, - 0xB8, - 0x54, - 0xA3, - 0xA3, - 0xB8, - 0x04, - 0x51, - 0x04, - 0xA3, - 0x00, - 0x0E, - 0x54, - 0x54, - 0x54, - 0xA3, - 0x54, - 0x54, - 0x3F, - 0x51, - 0x3F, - 0x9F, - 0x51, - 0x51, - 0x51, - 0x51, - 0x00, - 0x00, - 0x00, - 0x09, - 0x71, - 0xD9, - 0x71, - 0xDB, - 0x72, - 0xD9, - 0x9F, - 0x9F, - 0x93, - 0x00, - 0x04, - 0x69, - 0x00, - 0x35, - 0x9F, - 0x9F, - 0x69, - 0x69, - 0x69, - 0xD9, - 0xAE, - 0x9F, - 0xB7, - 0x93, - 0x93, - 0xA6, - 0xB7, - 0x9F, - 0xB7, - 0x93, - 0xB7, - 0x9F, - 0x9F, - 0x9F, - 0xAE, - 0xAE, - 0xB7, - 0x9F, - 0xAE, - 0xB7, - 0xD5, - 0xB7, - 0xAE, - 0xAE, - 0xB7, - 0xB7, - 0x9F, - 0x43, - 0xD5, - 0xD5, - 0x9F, - 0x66, - 0xD5, - 0xB7, - 0xB7, - 0xB7, - 0xD5, - 0xA6, - 0xA6, - 0xC9, - 0xC9, - 0xAD, - 0xCA, - 0xCA, - 0xC9, - 0xC9, - 0xAC, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x1F, - 0xAC, - 0xC9, - 0xC9, - 0xB6, - 0xC9, - 0xC9, - 0xB6, - 0xB0, - 0xB0, - 0xC5, - 0xC9, - 0xC5, - 0xB0, - 0xB0, - 0xC5, - 0xB6, - 0xAF, - 0xAF, - 0xCD, - 0xAF, - 0xC3, - 0xB0, - 0xCD, - 0xB0, - 0xC3, - 0xB0, - 0xC3, - 0xC3, - 0xB0, - 0xAF, - 0xAF, - 0x00, - 0x04, - 0xCD, - 0x00, - 0x1A, - 0xAF, - 0xC3, - 0xC3, - 0xE3, - 0x6B, - 0xE3, - 0xD2, - 0xD2, - 0xE3, - 0x24, - 0xFF, - 0xF0, - 0xCC, - 0xCB, - 0xE2, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xF0, - 0xCD, - 0xB6, - 0xCA, - 0xCA, - 0xC9, - 0xCA, - 0x04, - 0x93, - 0x00, - 0x0A, - 0x9F, - 0x9F, - 0x9F, - 0xA3, - 0x9F, - 0x9F, - 0x93, - 0x69, - 0xD9, - 0xA3, - 0x04, - 0xB8, - 0x00, - 0x61, - 0x72, - 0xB8, - 0x72, - 0xD9, - 0xA3, - 0x69, - 0x9F, - 0x69, - 0xD9, - 0xD9, - 0x71, - 0xB8, - 0x72, - 0xBA, - 0xB8, - 0x72, - 0xBA, - 0xDA, - 0x72, - 0xBA, - 0x72, - 0xB8, - 0x72, - 0xBA, - 0x45, - 0x45, - 0x73, - 0xBB, - 0xBB, - 0x74, - 0xBA, - 0xBA, - 0x73, - 0x73, - 0x73, - 0xE4, - 0x73, - 0xBA, - 0xBA, - 0xBB, - 0xBB, - 0x74, - 0x74, - 0x74, - 0xBB, - 0x73, - 0xBB, - 0x46, - 0x46, - 0x73, - 0xBA, - 0x73, - 0xBB, - 0xBB, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0x45, - 0x73, - 0x73, - 0xBB, - 0x74, - 0xE5, - 0x74, - 0x46, - 0x74, - 0xA9, - 0x46, - 0xBB, - 0x74, - 0x46, - 0xBB, - 0x46, - 0xBB, - 0x73, - 0xBB, - 0x45, - 0xBA, - 0xBB, - 0x73, - 0x46, - 0x46, - 0x45, - 0x45, - 0x74, - 0xA9, - 0xBB, - 0x45, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0xBA, - 0x45, - 0xBA, - 0xBB, - 0x00, - 0x04, - 0x46, - 0x00, - 0x34, - 0xBB, - 0x45, - 0x45, - 0xF7, - 0x45, - 0x7B, - 0xBA, - 0x42, - 0xB8, - 0x72, - 0x42, - 0xB8, - 0x54, - 0x72, - 0xBA, - 0xB8, - 0xB8, - 0xB8, - 0x42, - 0x71, - 0x71, - 0xB8, - 0x72, - 0xB8, - 0x71, - 0x54, - 0xB8, - 0xB8, - 0x54, - 0x71, - 0xA3, - 0xA3, - 0xB8, - 0xB8, - 0x54, - 0x54, - 0x54, - 0xA3, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0x54, - 0x54, - 0xA3, - 0xA3, - 0x69, - 0x3F, - 0x69, - 0x51, - 0x51, - 0x3F, - 0x04, - 0x54, - 0x04, - 0xA3, - 0x04, - 0x54, - 0x01, - 0xA3, - 0x05, - 0x51, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x71, - 0x71, - 0xD9, - 0x71, - 0x71, - 0xD9, - 0x9F, - 0x93, - 0xA6, - 0xA6, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0x04, - 0x9F, - 0x00, - 0x4D, - 0x3C, - 0xD9, - 0xAE, - 0x69, - 0x69, - 0xAE, - 0x69, - 0x9F, - 0x9F, - 0xB7, - 0x9F, - 0xAE, - 0x69, - 0xB7, - 0xCA, - 0xAD, - 0xD5, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xB6, - 0xCA, - 0xCA, - 0xC9, - 0xC9, - 0xB6, - 0xB6, - 0xB0, - 0xB0, - 0xB6, - 0xC9, - 0xC9, - 0xAC, - 0xB6, - 0xC9, - 0xC9, - 0xAC, - 0xC9, - 0xB6, - 0xB6, - 0xC9, - 0xB6, - 0xB6, - 0xB6, - 0xB0, - 0xB6, - 0xB0, - 0xB6, - 0xC3, - 0xB0, - 0xB6, - 0xB6, - 0xB0, - 0xC5, - 0xB6, - 0xC3, - 0xB0, - 0xC3, - 0xB6, - 0xC5, - 0xB6, - 0xCD, - 0xCD, - 0xC3, - 0xB6, - 0xB6, - 0xC3, - 0xAF, - 0xCD, - 0xC3, - 0xB0, - 0xC3, - 0xB0, - 0xC3, - 0xB0, - 0x00, - 0x05, - 0xAF, - 0x00, - 0x4E, - 0xCD, - 0xCD, - 0xC6, - 0xCD, - 0xAF, - 0xB9, - 0xC5, - 0xC3, - 0xEE, - 0x56, - 0xB4, - 0xB4, - 0xD2, - 0xE3, - 0xD1, - 0xFF, - 0xF4, - 0xCB, - 0xCC, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xCD, - 0xCA, - 0x93, - 0xCA, - 0xCA, - 0xA6, - 0x93, - 0x9F, - 0x93, - 0x9F, - 0x69, - 0x69, - 0xD9, - 0x69, - 0xA3, - 0xD9, - 0xB8, - 0xDA, - 0xB8, - 0x72, - 0xDB, - 0x72, - 0xBA, - 0xBA, - 0x72, - 0xB8, - 0x71, - 0x71, - 0x71, - 0xD9, - 0x69, - 0x71, - 0x72, - 0xB8, - 0x71, - 0xD9, - 0xB8, - 0xD9, - 0x71, - 0xB8, - 0x71, - 0xBA, - 0xB8, - 0x54, - 0x71, - 0xBA, - 0x73, - 0x73, - 0x73, - 0xBB, - 0x73, - 0xBA, - 0x04, - 0x73, - 0x00, - 0x50, - 0xBB, - 0x73, - 0x46, - 0x73, - 0x73, - 0xBB, - 0x74, - 0x46, - 0xBB, - 0x46, - 0x46, - 0x73, - 0xBA, - 0xBB, - 0x46, - 0xBB, - 0xBA, - 0xBA, - 0x73, - 0xBB, - 0x45, - 0x74, - 0xA9, - 0x46, - 0xBB, - 0xBA, - 0xBA, - 0x72, - 0x72, - 0xBA, - 0xBB, - 0xBB, - 0xBB, - 0x46, - 0xA9, - 0xA9, - 0x74, - 0xBB, - 0x74, - 0x46, - 0xBB, - 0x46, - 0x74, - 0xBB, - 0x45, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0x73, - 0xBB, - 0xBB, - 0x45, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0x6A, - 0x45, - 0x45, - 0x73, - 0x46, - 0xBB, - 0x6A, - 0xBB, - 0xBB, - 0x6A, - 0x6A, - 0x6A, - 0x45, - 0x45, - 0x6A, - 0xBA, - 0x7B, - 0xB8, - 0xA3, - 0xB8, - 0xBA, - 0xBA, - 0x04, - 0xB8, - 0x00, - 0x0F, - 0x71, - 0xB8, - 0x72, - 0xB8, - 0x71, - 0xA3, - 0x71, - 0xB8, - 0x54, - 0x71, - 0xB8, - 0xB8, - 0x54, - 0xA3, - 0x69, - 0x00, - 0x05, - 0x54, - 0x00, - 0x22, - 0xA3, - 0xA3, - 0xA3, - 0x42, - 0x54, - 0xA3, - 0xA3, - 0x51, - 0x51, - 0xA3, - 0x54, - 0x9F, - 0x51, - 0xA3, - 0xB8, - 0x7B, - 0xB8, - 0x54, - 0xA3, - 0x3F, - 0x51, - 0x51, - 0x3F, - 0xA3, - 0x54, - 0x54, - 0x54, - 0xB8, - 0xA3, - 0xA3, - 0xA3, - 0x3F, - 0x51, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xD9, - 0xAE, - 0x69, - 0x9F, - 0xD9, - 0x71, - 0x69, - 0xB7, - 0x9F, - 0x71, - 0x69, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x07, - 0xB7, - 0xB7, - 0x69, - 0xD9, - 0x69, - 0x69, - 0xB7, - 0x00, - 0x04, - 0x93, - 0x00, - 0x0E, - 0xD5, - 0x93, - 0x93, - 0xA6, - 0xB7, - 0x66, - 0xB7, - 0xB0, - 0xD1, - 0x05, - 0x24, - 0xEE, - 0xEE, - 0xCC, - 0x0B, - 0xCD, - 0x00, - 0x0E, - 0xAF, - 0xB0, - 0xB0, - 0xAF, - 0xCD, - 0xAF, - 0xC3, - 0xAF, - 0xC3, - 0xAF, - 0xAF, - 0xAF, - 0xCD, - 0xCD, - 0x04, - 0xAF, - 0x01, - 0xCD, - 0x01, - 0xCD, - 0x0E, - 0xAF, - 0x00, - 0x05, - 0xB0, - 0xB0, - 0xAF, - 0xCD, - 0xAF, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x06, - 0xAF, - 0xAF, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0x04, - 0xB0, - 0x00, - 0x19, - 0xB6, - 0xB0, - 0xB4, - 0xD2, - 0xFF, - 0xCD, - 0x8B, - 0xA5, - 0xCD, - 0xCB, - 0xD1, - 0x24, - 0xCC, - 0xCC, - 0xEF, - 0xEE, - 0xEE, - 0xEE, - 0xEC, - 0xEE, - 0xFF, - 0xFF, - 0xF0, - 0xB0, - 0x93, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x03, - 0x69, - 0x69, - 0x69, - 0x00, - 0x04, - 0xD9, - 0x01, - 0xDA, - 0x07, - 0x72, - 0x00, - 0x75, - 0xDA, - 0xB8, - 0xB8, - 0xB8, - 0xDA, - 0x72, - 0x72, - 0xBA, - 0xBA, - 0x72, - 0xDA, - 0xDA, - 0x72, - 0xBA, - 0xDA, - 0x72, - 0xB8, - 0xD9, - 0xB8, - 0x9F, - 0x9F, - 0xD9, - 0x72, - 0xBB, - 0x73, - 0xBB, - 0x73, - 0xB8, - 0xB8, - 0xBA, - 0x73, - 0x73, - 0xDB, - 0x73, - 0x73, - 0x73, - 0xBB, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0x46, - 0x73, - 0xBB, - 0x46, - 0xA9, - 0xBB, - 0x45, - 0x73, - 0x73, - 0xBA, - 0x45, - 0xBB, - 0xBB, - 0x45, - 0x73, - 0x46, - 0x46, - 0x73, - 0xBB, - 0xBB, - 0x73, - 0x46, - 0xBB, - 0xBA, - 0x45, - 0xBB, - 0x46, - 0x46, - 0x45, - 0xBA, - 0xBA, - 0x73, - 0x46, - 0x45, - 0xBB, - 0x45, - 0xBA, - 0xBA, - 0x6A, - 0xBB, - 0x45, - 0x45, - 0xBB, - 0xBB, - 0xBA, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0xBA, - 0x6A, - 0x6A, - 0xBB, - 0x6A, - 0x45, - 0x6A, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0x45, - 0x7B, - 0x54, - 0x42, - 0x45, - 0x45, - 0x7B, - 0x7B, - 0x54, - 0x54, - 0x7B, - 0x7B, - 0xB8, - 0x54, - 0x54, - 0x42, - 0x00, - 0x04, - 0xB8, - 0x00, - 0x0B, - 0xA3, - 0x3F, - 0xA3, - 0x54, - 0xA3, - 0x54, - 0xA3, - 0x3F, - 0xA3, - 0x3F, - 0xA3, - 0x00, - 0x04, - 0x54, - 0x00, - 0x19, - 0xB8, - 0xA3, - 0xA3, - 0xA3, - 0x54, - 0x54, - 0xA3, - 0xA3, - 0x51, - 0x51, - 0x51, - 0xA3, - 0x3F, - 0x54, - 0xB8, - 0x5B, - 0x54, - 0x54, - 0x3F, - 0x51, - 0xA3, - 0x69, - 0x51, - 0xA3, - 0xA3, - 0x00, - 0x05, - 0x54, - 0x04, - 0xA3, - 0x01, - 0x69, - 0x00, - 0x00, - 0x00, - 0x34, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0xAE, - 0x69, - 0x9F, - 0xD9, - 0x69, - 0xD9, - 0x69, - 0x69, - 0x69, - 0x71, - 0x71, - 0x9F, - 0x93, - 0x9F, - 0x9F, - 0x9F, - 0x93, - 0xCA, - 0xC9, - 0xCA, - 0xA6, - 0x93, - 0xB7, - 0xB7, - 0xB7, - 0x66, - 0xB7, - 0xC3, - 0xCB, - 0xB2, - 0xEE, - 0x24, - 0xFF, - 0xFF, - 0xFF, - 0xCC, - 0xB6, - 0xB6, - 0xC3, - 0xB0, - 0xB0, - 0xCD, - 0xCD, - 0xC3, - 0xCD, - 0xCD, - 0xCD, - 0x04, - 0xC6, - 0x01, - 0xCD, - 0x01, - 0xCD, - 0x05, - 0xAF, - 0x00, - 0x07, - 0xCD, - 0xAF, - 0xAF, - 0xCD, - 0xB9, - 0xAF, - 0xB0, - 0x00, - 0x07, - 0xAF, - 0x00, - 0x03, - 0xB0, - 0xB0, - 0xAF, - 0x00, - 0x05, - 0xB0, - 0x00, - 0x0C, - 0xB6, - 0xB6, - 0xB0, - 0xAF, - 0xB0, - 0xB6, - 0xB6, - 0xC9, - 0xB6, - 0xB6, - 0xB6, - 0xC9, - 0x04, - 0xB6, - 0x04, - 0xC9, - 0x00, - 0x88, - 0xB6, - 0xA5, - 0xC3, - 0xFF, - 0xCB, - 0x5C, - 0xAB, - 0xC5, - 0xCD, - 0xE2, - 0xF0, - 0xF4, - 0xC6, - 0xCD, - 0xCD, - 0xCC, - 0xD1, - 0xB2, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xCB, - 0xC9, - 0xB7, - 0xB7, - 0xA6, - 0xCA, - 0x93, - 0x93, - 0x9F, - 0x69, - 0xD9, - 0xA3, - 0x69, - 0xD9, - 0xB8, - 0xDA, - 0xB8, - 0xDA, - 0xDA, - 0xB8, - 0x71, - 0xB8, - 0x72, - 0x72, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x72, - 0xBA, - 0xB8, - 0xD9, - 0xD9, - 0xB8, - 0x72, - 0xDA, - 0x72, - 0xDA, - 0xB8, - 0xA3, - 0x69, - 0x9F, - 0xA3, - 0xB8, - 0xBA, - 0xBA, - 0x72, - 0xB8, - 0x72, - 0xBA, - 0xBA, - 0x45, - 0x45, - 0xBB, - 0x73, - 0x45, - 0xBB, - 0xBB, - 0x46, - 0xBB, - 0x73, - 0xBB, - 0x6A, - 0x72, - 0xBA, - 0x73, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0x45, - 0x73, - 0xBA, - 0xBA, - 0x72, - 0x42, - 0xB8, - 0x7B, - 0x7B, - 0xBB, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0x46, - 0x6A, - 0x6A, - 0xBB, - 0xBB, - 0x45, - 0xBB, - 0x6A, - 0x45, - 0x45, - 0x6A, - 0xBB, - 0xBB, - 0x6A, - 0x45, - 0xBA, - 0x45, - 0xBB, - 0x6A, - 0xBA, - 0x7B, - 0x7B, - 0x7B, - 0x45, - 0x45, - 0x7B, - 0x7B, - 0x45, - 0x54, - 0x06, - 0x7B, - 0x00, - 0x35, - 0x54, - 0x7B, - 0x45, - 0x6A, - 0x7B, - 0x54, - 0x7B, - 0x6A, - 0x6A, - 0xBA, - 0x42, - 0x54, - 0x5B, - 0x42, - 0x7B, - 0x42, - 0x54, - 0x54, - 0xB8, - 0x7B, - 0x7B, - 0x42, - 0x54, - 0xA3, - 0x51, - 0xA3, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0xA3, - 0x54, - 0x54, - 0xB8, - 0x54, - 0x54, - 0x54, - 0xA3, - 0x3F, - 0x54, - 0x54, - 0xA3, - 0x51, - 0x51, - 0x51, - 0xA3, - 0x54, - 0xA3, - 0x3F, - 0xA3, - 0x51, - 0x51, - 0x00, - 0x06, - 0xA3, - 0x00, - 0x0E, - 0x3F, - 0x51, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0x3F, - 0xA3, - 0xA3, - 0x51, - 0x00, - 0x00, - 0x00, - 0x06, - 0x9F, - 0x69, - 0x9F, - 0x9F, - 0x69, - 0xD9, - 0x04, - 0x9F, - 0x00, - 0x35, - 0x69, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0x9F, - 0x9F, - 0x93, - 0xB7, - 0x93, - 0xC9, - 0xC9, - 0xCA, - 0x9F, - 0xAE, - 0x66, - 0xB7, - 0xA6, - 0xCA, - 0xC6, - 0xED, - 0xEE, - 0xB2, - 0xE3, - 0x56, - 0xEE, - 0xFF, - 0xEE, - 0xCD, - 0xCA, - 0xAD, - 0xCA, - 0xC5, - 0xCD, - 0xD7, - 0xCC, - 0xCC, - 0x56, - 0xCC, - 0xCD, - 0xAF, - 0xCD, - 0xCD, - 0xAF, - 0xB0, - 0xB0, - 0xB0, - 0xAF, - 0xB0, - 0xAF, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x14, - 0xAF, - 0xAF, - 0xB0, - 0xB6, - 0xB6, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0xC9, - 0xB6, - 0xB6, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xC9, - 0xCA, - 0xA6, - 0x07, - 0xCA, - 0x00, - 0x4C, - 0xC9, - 0xCA, - 0xCA, - 0xA6, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xA6, - 0xD5, - 0xD5, - 0xCA, - 0x96, - 0xB4, - 0xD2, - 0xFF, - 0xC3, - 0xC5, - 0xC3, - 0xD2, - 0xD1, - 0xF0, - 0xF4, - 0xB9, - 0xB6, - 0xC9, - 0xAF, - 0xB9, - 0xCC, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xCC, - 0xC6, - 0xCD, - 0xAF, - 0xC9, - 0xB6, - 0xC9, - 0xA6, - 0x93, - 0x9F, - 0xA3, - 0x9F, - 0x69, - 0xD9, - 0xD9, - 0x69, - 0xD9, - 0xD9, - 0xB8, - 0xA3, - 0xA3, - 0xD9, - 0xB8, - 0xB8, - 0x72, - 0xDB, - 0x73, - 0xBA, - 0xBA, - 0x72, - 0xD9, - 0xA3, - 0x71, - 0xB8, - 0xB8, - 0xB8, - 0x72, - 0xBA, - 0xB8, - 0x54, - 0xB8, - 0xB8, - 0x72, - 0x06, - 0xBA, - 0x00, - 0x1F, - 0x73, - 0xBB, - 0xBB, - 0xBB, - 0x45, - 0x45, - 0x45, - 0xBB, - 0x46, - 0xBB, - 0x73, - 0x45, - 0xBA, - 0xBA, - 0x7B, - 0x7B, - 0xBA, - 0x45, - 0xBA, - 0x45, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x7B, - 0xB8, - 0x7B, - 0x7B, - 0x7B, - 0x45, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x28, - 0x46, - 0x46, - 0x46, - 0x6A, - 0x46, - 0x46, - 0x84, - 0xA9, - 0x46, - 0x46, - 0x6A, - 0x46, - 0x46, - 0x46, - 0xA9, - 0x84, - 0x6A, - 0x7B, - 0x7B, - 0x7B, - 0x42, - 0x7B, - 0x45, - 0x7B, - 0x7B, - 0x7B, - 0x6A, - 0x6A, - 0x6A, - 0x45, - 0x6A, - 0x7B, - 0x7B, - 0x7B, - 0x6A, - 0x6A, - 0x7B, - 0xF7, - 0x6A, - 0x6A, - 0x04, - 0x7B, - 0x00, - 0x03, - 0xFC, - 0x7B, - 0x5B, - 0x00, - 0x04, - 0x7B, - 0x00, - 0x0E, - 0x42, - 0x7B, - 0x7B, - 0x5B, - 0x5B, - 0x42, - 0x5B, - 0x54, - 0x3F, - 0x51, - 0xA3, - 0x54, - 0xA3, - 0xA3, - 0x04, - 0x54, - 0x00, - 0x28, - 0x7B, - 0x5B, - 0x54, - 0x54, - 0x54, - 0x3F, - 0xA3, - 0xA3, - 0xA3, - 0x3F, - 0x51, - 0x51, - 0xA3, - 0x54, - 0x42, - 0x54, - 0xA3, - 0xA3, - 0x51, - 0x51, - 0x51, - 0x3F, - 0xA3, - 0xA3, - 0x54, - 0x54, - 0xA3, - 0x3F, - 0xA3, - 0xA3, - 0xA3, - 0x51, - 0xA3, - 0x54, - 0xA3, - 0x3F, - 0xA3, - 0x51, - 0xA3, - 0x3F, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x9F, - 0x9F, - 0xD9, - 0xAE, - 0xD9, - 0x71, - 0xD9, - 0x9F, - 0x9F, - 0x9F, - 0x69, - 0x9F, - 0x93, - 0xA6, - 0xA6, - 0x69, - 0x9F, - 0x9F, - 0x69, - 0xAE, - 0x69, - 0x71, - 0xD9, - 0x9F, - 0xA6, - 0xB7, - 0x67, - 0xAE, - 0xB7, - 0x9F, - 0xD5, - 0xAC, - 0xCC, - 0xFF, - 0xCC, - 0xC3, - 0xD2, - 0xD7, - 0x6B, - 0xFF, - 0xFF, - 0xF0, - 0xD5, - 0xA7, - 0xB7, - 0xAF, - 0x56, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x32, - 0x06, - 0xC6, - 0xB6, - 0xC9, - 0xCA, - 0xC9, - 0xC9, - 0xCA, - 0xC9, - 0xC9, - 0xB6, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0x93, - 0xA6, - 0xC9, - 0xC9, - 0xCA, - 0xCA, - 0x93, - 0xA6, - 0xCA, - 0xB7, - 0x69, - 0xB7, - 0x93, - 0xA6, - 0x93, - 0xB7, - 0xB7, - 0x69, - 0x9F, - 0x9F, - 0x9F, - 0xB7, - 0xB7, - 0xA6, - 0xA6, - 0xB7, - 0xB7, - 0xA6, - 0xA6, - 0xC9, - 0x04, - 0xB6, - 0x00, - 0x1F, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xCB, - 0xE2, - 0xE3, - 0xE3, - 0xD1, - 0xF0, - 0xF4, - 0xCC, - 0xCD, - 0xC9, - 0xC9, - 0xB0, - 0xC6, - 0xCC, - 0xEE, - 0xFF, - 0xFF, - 0xF0, - 0x83, - 0xF0, - 0xFF, - 0xCC, - 0xAF, - 0xC9, - 0xA6, - 0x93, - 0x51, - 0x00, - 0x08, - 0xA3, - 0x00, - 0x5B, - 0xB8, - 0xB8, - 0xD9, - 0xA3, - 0xA3, - 0x54, - 0xD9, - 0xB8, - 0xB8, - 0xB8, - 0xBA, - 0xBA, - 0xB8, - 0xA3, - 0x71, - 0xB8, - 0x54, - 0xD9, - 0x54, - 0xB8, - 0xBA, - 0x42, - 0xB8, - 0x73, - 0xBA, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x45, - 0xBB, - 0x45, - 0x45, - 0x46, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0x73, - 0x45, - 0x7B, - 0xB8, - 0xB8, - 0xBA, - 0x45, - 0xBB, - 0x6A, - 0x7B, - 0x7B, - 0x7B, - 0xBA, - 0x45, - 0xBA, - 0x6A, - 0x6A, - 0x6A, - 0x45, - 0x6A, - 0x7B, - 0x6A, - 0xBB, - 0x6A, - 0x46, - 0x46, - 0xA9, - 0x46, - 0xA9, - 0x27, - 0xA9, - 0x84, - 0x84, - 0xA9, - 0x6A, - 0x6A, - 0x46, - 0x46, - 0x46, - 0x84, - 0x6A, - 0x42, - 0x5B, - 0x7B, - 0x6A, - 0x6A, - 0x7B, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x08, - 0x84, - 0x6A, - 0xBA, - 0x7B, - 0x7B, - 0x6A, - 0x6A, - 0x6A, - 0x04, - 0x7B, - 0x00, - 0x1A, - 0x6A, - 0x7B, - 0x42, - 0x42, - 0x7B, - 0x7B, - 0x6A, - 0x6A, - 0x6A, - 0x7B, - 0x54, - 0x7B, - 0x6A, - 0x7B, - 0x7B, - 0x7B, - 0x5B, - 0x5B, - 0xA3, - 0xA3, - 0x54, - 0x42, - 0x54, - 0x54, - 0xA3, - 0xA3, - 0x0C, - 0x54, - 0x00, - 0x0C, - 0xA3, - 0xA3, - 0x54, - 0x54, - 0x42, - 0x7B, - 0x42, - 0x54, - 0x54, - 0xA3, - 0x3F, - 0xA3, - 0x06, - 0x54, - 0x00, - 0x06, - 0xA3, - 0xA3, - 0x51, - 0x3F, - 0xA3, - 0x54, - 0x06, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x90, - 0x9F, - 0x93, - 0x69, - 0x69, - 0xD9, - 0x72, - 0xA7, - 0x69, - 0x71, - 0x69, - 0x71, - 0x69, - 0x93, - 0x93, - 0xD9, - 0xDA, - 0x69, - 0xB7, - 0xD9, - 0xD9, - 0x72, - 0x9C, - 0x72, - 0xA7, - 0xA7, - 0x71, - 0xA7, - 0x69, - 0xB7, - 0x69, - 0xD9, - 0xAD, - 0x56, - 0x24, - 0xC5, - 0x9A, - 0xD2, - 0xD1, - 0x6B, - 0xFF, - 0xFF, - 0xFE, - 0xB0, - 0xA6, - 0xB6, - 0xCC, - 0xFF, - 0xEE, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xB6, - 0xAE, - 0xA7, - 0xAE, - 0xAE, - 0xAE, - 0x69, - 0xB7, - 0x93, - 0xB7, - 0x9F, - 0xAE, - 0xA7, - 0xAE, - 0xB7, - 0xB7, - 0xAE, - 0xAE, - 0x67, - 0xA7, - 0x69, - 0x9F, - 0xD9, - 0x9F, - 0xAE, - 0x9F, - 0xB7, - 0x9F, - 0xD9, - 0x69, - 0xD9, - 0xAE, - 0x9F, - 0x93, - 0xB7, - 0xB7, - 0x9F, - 0xD9, - 0xD9, - 0x9F, - 0xB7, - 0xA6, - 0x93, - 0xB7, - 0xCA, - 0xC5, - 0xC5, - 0xCB, - 0xD1, - 0xD1, - 0xD1, - 0xEF, - 0x6B, - 0xFF, - 0xD1, - 0xC5, - 0xC5, - 0xCB, - 0xD7, - 0xCC, - 0x56, - 0xFE, - 0xF4, - 0xCB, - 0xAF, - 0xB6, - 0xB0, - 0xCC, - 0xE2, - 0xE2, - 0xEE, - 0xFF, - 0xEE, - 0xF4, - 0xC6, - 0x24, - 0xFF, - 0xEE, - 0x83, - 0xB6, - 0x93, - 0xD9, - 0xB8, - 0xB8, - 0xB8, - 0xBA, - 0x72, - 0xB8, - 0xB8, - 0x72, - 0x72, - 0x04, - 0xBA, - 0x00, - 0x55, - 0xB8, - 0xB8, - 0xB8, - 0x72, - 0xA3, - 0xA3, - 0x72, - 0xBA, - 0xB8, - 0xB8, - 0xBA, - 0xBA, - 0xA3, - 0x54, - 0x71, - 0xB8, - 0x72, - 0xB8, - 0xB8, - 0xBA, - 0x72, - 0xBA, - 0xBB, - 0xBA, - 0x72, - 0x42, - 0x72, - 0xBA, - 0xBB, - 0xBB, - 0x45, - 0xBB, - 0x6A, - 0xF7, - 0x6A, - 0x7B, - 0x7B, - 0x45, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0x45, - 0xB8, - 0x54, - 0x42, - 0xBA, - 0x6A, - 0x6A, - 0x45, - 0x7B, - 0xB8, - 0x7B, - 0x6A, - 0x6A, - 0x6A, - 0x46, - 0x6A, - 0x45, - 0x6A, - 0x6A, - 0xBB, - 0x46, - 0x46, - 0x6A, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0x27, - 0x46, - 0xA9, - 0x46, - 0x6A, - 0x6A, - 0x45, - 0x6A, - 0x46, - 0x6A, - 0x46, - 0x6A, - 0x7B, - 0xF6, - 0x6A, - 0x46, - 0x00, - 0x05, - 0x6A, - 0x00, - 0x0E, - 0x7B, - 0x7B, - 0xBA, - 0x6A, - 0x7B, - 0x5B, - 0x54, - 0x7B, - 0x7B, - 0x5B, - 0x54, - 0x7B, - 0x7B, - 0x54, - 0x08, - 0x7B, - 0x00, - 0x1D, - 0x45, - 0x45, - 0x7B, - 0x42, - 0x7B, - 0x45, - 0x7B, - 0x7B, - 0x45, - 0x45, - 0x7B, - 0x54, - 0x54, - 0xB8, - 0x54, - 0x54, - 0xA3, - 0xA3, - 0x54, - 0x72, - 0xB8, - 0xB8, - 0x54, - 0xB8, - 0x42, - 0x5B, - 0x7B, - 0x7B, - 0x7B, - 0x00, - 0x05, - 0x54, - 0x00, - 0x03, - 0x42, - 0x7B, - 0x7B, - 0x00, - 0x09, - 0x54, - 0x00, - 0x08, - 0x42, - 0x54, - 0x54, - 0x3F, - 0xA3, - 0x54, - 0x54, - 0x54, - 0x05, - 0xA3, - 0x01, - 0x51, - 0x00, - 0x00, - 0x00, - 0x68, - 0x69, - 0x9F, - 0x69, - 0x71, - 0x71, - 0x72, - 0xDB, - 0x72, - 0xA7, - 0xA7, - 0xDA, - 0x71, - 0x69, - 0xA7, - 0xDB, - 0x71, - 0xD9, - 0x71, - 0x71, - 0xD9, - 0xA7, - 0xDA, - 0x71, - 0xA7, - 0x72, - 0x72, - 0xDA, - 0xD9, - 0x71, - 0xDA, - 0xA7, - 0xAD, - 0x56, - 0x56, - 0xAC, - 0x94, - 0xCD, - 0xCB, - 0xB2, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0x6B, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xB2, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x24, - 0x93, - 0xA8, - 0x9C, - 0x67, - 0xB7, - 0xAE, - 0xD9, - 0x67, - 0xAE, - 0xAE, - 0xAE, - 0xA7, - 0x9C, - 0x9C, - 0xD9, - 0x9F, - 0x9F, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA8, - 0xDB, - 0xA7, - 0xD9, - 0xD9, - 0x69, - 0xAE, - 0xD9, - 0xA7, - 0xD9, - 0x69, - 0xAE, - 0x69, - 0xA6, - 0xCA, - 0x9F, - 0x71, - 0x9F, - 0x93, - 0xA6, - 0x93, - 0xB7, - 0xAC, - 0xD7, - 0xD7, - 0xE2, - 0xED, - 0xED, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x8C, - 0xEE, - 0xD1, - 0xE3, - 0xCC, - 0x56, - 0x24, - 0xF0, - 0xCC, - 0xCB, - 0xCD, - 0xAF, - 0xCC, - 0xFF, - 0xED, - 0xED, - 0xEE, - 0xFF, - 0x24, - 0xCC, - 0xCC, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xFE, - 0xB0, - 0xA3, - 0xDB, - 0x72, - 0xB8, - 0xBA, - 0xBB, - 0x46, - 0xBB, - 0x74, - 0xBB, - 0x73, - 0x73, - 0xBB, - 0x73, - 0x73, - 0x73, - 0xDB, - 0xBB, - 0x73, - 0x45, - 0xBA, - 0xBA, - 0x73, - 0xBA, - 0xBA, - 0x72, - 0xB8, - 0x72, - 0xB8, - 0xB8, - 0xA3, - 0xA3, - 0x71, - 0xBA, - 0xB8, - 0xBB, - 0x46, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0x45, - 0x73, - 0x45, - 0xBB, - 0x45, - 0x73, - 0x46, - 0x46, - 0xBB, - 0x7B, - 0xBA, - 0xBA, - 0xBA, - 0x45, - 0x45, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x7B, - 0xBA, - 0x6A, - 0xBA, - 0x45, - 0xBB, - 0xBB, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0xBB, - 0x46, - 0xBB, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x46, - 0xA9, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x46, - 0x6A, - 0x7B, - 0x7B, - 0x5B, - 0x45, - 0x45, - 0x45, - 0xBA, - 0x6A, - 0x46, - 0x6A, - 0x7B, - 0x6A, - 0x46, - 0xA9, - 0x46, - 0x46, - 0x6A, - 0x7B, - 0xB8, - 0xB8, - 0x7B, - 0x54, - 0x54, - 0xB8, - 0x7B, - 0x45, - 0xBA, - 0x04, - 0x6A, - 0x00, - 0x3A, - 0x45, - 0x6A, - 0x45, - 0x7B, - 0x42, - 0x54, - 0x7B, - 0x72, - 0x7B, - 0xBA, - 0x45, - 0x45, - 0x7B, - 0x6A, - 0x45, - 0xB8, - 0x42, - 0xBA, - 0xB8, - 0xA3, - 0xA3, - 0xA3, - 0x54, - 0xB8, - 0x72, - 0x7B, - 0x7B, - 0xBA, - 0xB8, - 0x54, - 0xA3, - 0x54, - 0x54, - 0x54, - 0xB8, - 0x7B, - 0x7B, - 0xB8, - 0x42, - 0x54, - 0x54, - 0xB8, - 0x7B, - 0x7B, - 0x7B, - 0x54, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0xA3, - 0xB8, - 0xB8, - 0x7B, - 0x7B, - 0x5B, - 0x54, - 0xA3, - 0x05, - 0x54, - 0x00, - 0x05, - 0xA3, - 0x54, - 0x54, - 0xA3, - 0x51, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x69, - 0x72, - 0x71, - 0xA7, - 0xD9, - 0xD9, - 0x04, - 0x71, - 0x00, - 0x27, - 0xD9, - 0x69, - 0x71, - 0x72, - 0x71, - 0x71, - 0x69, - 0x3C, - 0xDA, - 0x71, - 0x71, - 0x72, - 0xB8, - 0x71, - 0x71, - 0x71, - 0xD9, - 0x71, - 0x71, - 0xD9, - 0x71, - 0x96, - 0xCC, - 0xFF, - 0xD2, - 0xB4, - 0xC3, - 0xCB, - 0xEF, - 0xFF, - 0xFF, - 0xFF, - 0xF0, - 0xFE, - 0x24, - 0x24, - 0xFE, - 0x6B, - 0xED, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x32, - 0xCA, - 0x9C, - 0x9C, - 0xD9, - 0xD9, - 0xB7, - 0xAE, - 0xAE, - 0xA7, - 0xA7, - 0x9C, - 0x9C, - 0xA7, - 0xDA, - 0xDA, - 0xD9, - 0xA7, - 0x9C, - 0x72, - 0x71, - 0xD9, - 0x72, - 0xA8, - 0xDA, - 0xD9, - 0x71, - 0x71, - 0x71, - 0x69, - 0x69, - 0x69, - 0xD9, - 0xA3, - 0x71, - 0x71, - 0x69, - 0x9F, - 0x9F, - 0x93, - 0x69, - 0x71, - 0xB8, - 0xAE, - 0xAC, - 0xD2, - 0xD2, - 0xD7, - 0xE2, - 0xB2, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x12, - 0xB2, - 0xE2, - 0xD7, - 0xD1, - 0xED, - 0xE2, - 0xE3, - 0xD7, - 0x24, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0x07, - 0x83, - 0x24, - 0x04, - 0xFF, - 0x00, - 0x51, - 0xEE, - 0xAF, - 0xC9, - 0x71, - 0x73, - 0x72, - 0x73, - 0x73, - 0xE4, - 0x74, - 0x73, - 0xDB, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0x74, - 0x74, - 0x74, - 0xBB, - 0xBB, - 0x74, - 0xBB, - 0x74, - 0xBB, - 0xBA, - 0xDB, - 0xBB, - 0x74, - 0xBB, - 0xBA, - 0x72, - 0xB8, - 0xBA, - 0x73, - 0xBA, - 0x73, - 0x73, - 0x45, - 0xBB, - 0x46, - 0xBB, - 0x46, - 0xA9, - 0xBB, - 0x45, - 0x73, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x6A, - 0xBB, - 0xBB, - 0x45, - 0xBB, - 0x6A, - 0x7B, - 0x45, - 0x6A, - 0x45, - 0x7B, - 0x45, - 0x6A, - 0x45, - 0xBB, - 0xBB, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x46, - 0xBB, - 0x46, - 0xA9, - 0x7C, - 0x27, - 0x00, - 0x05, - 0xA9, - 0x00, - 0x48, - 0x47, - 0xA9, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0xA9, - 0xA9, - 0x6A, - 0x45, - 0x6A, - 0xA9, - 0x46, - 0x45, - 0x45, - 0x6A, - 0x45, - 0x6A, - 0x46, - 0x6A, - 0x7B, - 0xA3, - 0x54, - 0x54, - 0x42, - 0x54, - 0x54, - 0x42, - 0x45, - 0x6A, - 0xFC, - 0x7B, - 0x6A, - 0x46, - 0x6A, - 0x6A, - 0x7B, - 0x7B, - 0xBA, - 0x7B, - 0x45, - 0xBA, - 0xB8, - 0x42, - 0x7B, - 0xBA, - 0xBA, - 0x45, - 0x45, - 0x45, - 0xBA, - 0xBA, - 0xB8, - 0x54, - 0x54, - 0xB8, - 0x42, - 0xB8, - 0x7B, - 0x7B, - 0xBA, - 0x7B, - 0xB8, - 0xBA, - 0x7B, - 0x42, - 0x7B, - 0xBA, - 0x7B, - 0x42, - 0xA3, - 0x3F, - 0x04, - 0xA3, - 0x00, - 0x0F, - 0x54, - 0xB8, - 0x54, - 0x54, - 0xA3, - 0x54, - 0x54, - 0xA3, - 0x51, - 0xA3, - 0x54, - 0x42, - 0x7B, - 0xB8, - 0x54, - 0x00, - 0x08, - 0xA3, - 0x00, - 0x03, - 0x69, - 0x51, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x69, - 0xDA, - 0x71, - 0x69, - 0xD9, - 0x71, - 0xDA, - 0xDA, - 0x72, - 0xDB, - 0x71, - 0xD9, - 0x69, - 0x69, - 0xDA, - 0x72, - 0xDA, - 0x69, - 0x69, - 0xDA, - 0xDB, - 0x73, - 0x72, - 0x72, - 0xDB, - 0xDA, - 0xDA, - 0x9C, - 0xDB, - 0x9C, - 0x72, - 0x68, - 0xC3, - 0xEE, - 0xEE, - 0xCB, - 0xD2, - 0xCB, - 0x6B, - 0xFF, - 0xFF, - 0xFF, - 0xF4, - 0xC6, - 0x83, - 0xF4, - 0x24, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x31, - 0xC9, - 0x68, - 0xA8, - 0xDA, - 0xA7, - 0xD9, - 0xA7, - 0xA7, - 0x9C, - 0xA8, - 0x73, - 0xDB, - 0x72, - 0x71, - 0x71, - 0xD9, - 0xDB, - 0xDA, - 0x71, - 0xB8, - 0xB8, - 0x71, - 0x73, - 0xBA, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x72, - 0x72, - 0x45, - 0x73, - 0xDB, - 0x45, - 0x73, - 0xBA, - 0x72, - 0xB8, - 0x72, - 0x73, - 0xDB, - 0xA8, - 0x9C, - 0xAC, - 0xD2, - 0xE3, - 0xE2, - 0xEC, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x0C, - 0x24, - 0xD7, - 0xE2, - 0xEE, - 0xB2, - 0xD7, - 0xD7, - 0xD7, - 0xE2, - 0xB2, - 0xCC, - 0xCC, - 0x04, - 0xFF, - 0x00, - 0x6B, - 0xFE, - 0x56, - 0xFE, - 0xFF, - 0xFF, - 0xFF, - 0xF0, - 0x07, - 0xF4, - 0xB6, - 0xC9, - 0x54, - 0x47, - 0x73, - 0x72, - 0x73, - 0x46, - 0xBB, - 0xBA, - 0x73, - 0x74, - 0xA9, - 0x74, - 0x46, - 0x74, - 0x74, - 0xA9, - 0xBB, - 0x73, - 0xBB, - 0x46, - 0xBB, - 0x46, - 0xA9, - 0xBB, - 0x46, - 0xE4, - 0x46, - 0xBB, - 0xBA, - 0x45, - 0xBB, - 0xA9, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x45, - 0x46, - 0xA9, - 0x47, - 0xA9, - 0x46, - 0xBB, - 0x45, - 0x45, - 0xBB, - 0x46, - 0xA9, - 0xA9, - 0xBB, - 0x6A, - 0x6A, - 0xBB, - 0xBB, - 0x46, - 0x6A, - 0x6A, - 0x84, - 0xA9, - 0x6A, - 0x6A, - 0x6A, - 0x45, - 0x45, - 0x45, - 0x46, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0x84, - 0xA9, - 0x46, - 0x27, - 0xA9, - 0x7C, - 0x7C, - 0xA9, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0x47, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x46, - 0xA9, - 0x47, - 0xA9, - 0x6A, - 0x46, - 0xA9, - 0xA9, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x1F, - 0x45, - 0x6A, - 0x45, - 0xBA, - 0xB8, - 0x54, - 0x42, - 0x7B, - 0x6A, - 0x7B, - 0xBA, - 0x6A, - 0x46, - 0x6A, - 0x7B, - 0x6A, - 0xA9, - 0x46, - 0x45, - 0x45, - 0xBB, - 0x6A, - 0x45, - 0x6A, - 0x45, - 0xBA, - 0x45, - 0xBA, - 0x7B, - 0x42, - 0x7B, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x0A, - 0xB8, - 0xA3, - 0xA3, - 0x54, - 0xB8, - 0x7B, - 0x45, - 0x6A, - 0xBB, - 0x72, - 0x05, - 0x7B, - 0x00, - 0x05, - 0x45, - 0x7B, - 0x7B, - 0x54, - 0xA3, - 0x00, - 0x08, - 0x54, - 0x00, - 0x0B, - 0xB8, - 0x54, - 0x54, - 0xA3, - 0xA3, - 0x51, - 0xA3, - 0x54, - 0xB8, - 0x42, - 0x54, - 0x00, - 0x05, - 0xA3, - 0x01, - 0x3F, - 0x05, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x2F, - 0x69, - 0x69, - 0x71, - 0xD9, - 0xD9, - 0x72, - 0xDA, - 0x72, - 0xDB, - 0xDB, - 0x72, - 0x71, - 0xD9, - 0xD9, - 0x9C, - 0xA8, - 0xA8, - 0x72, - 0x71, - 0x9C, - 0xA8, - 0xA8, - 0x73, - 0x9C, - 0xDB, - 0xA7, - 0xA7, - 0x9C, - 0xA8, - 0x9E, - 0x9E, - 0x9E, - 0x8F, - 0xD2, - 0xED, - 0xEC, - 0xD1, - 0xF0, - 0xFF, - 0xFF, - 0x24, - 0xCC, - 0x56, - 0x0B, - 0xCC, - 0xD1, - 0x6B, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x2F, - 0xC9, - 0xA8, - 0xA8, - 0xDB, - 0x72, - 0xDB, - 0x73, - 0x73, - 0xE4, - 0x74, - 0x73, - 0x74, - 0x74, - 0xA8, - 0x45, - 0x73, - 0x74, - 0x73, - 0x73, - 0x73, - 0x45, - 0xB8, - 0x73, - 0x46, - 0x46, - 0x74, - 0x46, - 0x74, - 0x73, - 0x73, - 0xA8, - 0x68, - 0x72, - 0xA7, - 0xA7, - 0xA7, - 0xDA, - 0xA7, - 0xA7, - 0x9C, - 0x72, - 0x74, - 0xA8, - 0xC9, - 0xD1, - 0xE2, - 0xED, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x0C, - 0x56, - 0xD2, - 0xED, - 0xFF, - 0xFF, - 0xB2, - 0xE2, - 0xEC, - 0xED, - 0x56, - 0xC3, - 0xCD, - 0x04, - 0xFF, - 0x00, - 0x6B, - 0x09, - 0x09, - 0x0D, - 0x0C, - 0x0C, - 0xFE, - 0x0C, - 0xB9, - 0xB0, - 0xC9, - 0xCA, - 0xB8, - 0x48, - 0xA9, - 0xBB, - 0xA9, - 0x47, - 0xA9, - 0x46, - 0x74, - 0x46, - 0x74, - 0xA9, - 0x74, - 0xA9, - 0x46, - 0xA9, - 0xBB, - 0x73, - 0xBB, - 0x46, - 0x46, - 0xA9, - 0x74, - 0x46, - 0xBB, - 0x46, - 0x73, - 0xBA, - 0x45, - 0xBB, - 0xA9, - 0x46, - 0x46, - 0xBB, - 0x46, - 0x6A, - 0x6A, - 0xBB, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x46, - 0x84, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x6A, - 0x6A, - 0xBB, - 0xBB, - 0x46, - 0x6A, - 0x46, - 0xA9, - 0xBB, - 0x46, - 0xBB, - 0x45, - 0x6A, - 0xA9, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x7C, - 0x7C, - 0x27, - 0x27, - 0xA9, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0xA9, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0xA9, - 0x7C, - 0xA9, - 0x00, - 0x04, - 0x46, - 0x00, - 0x06, - 0xBB, - 0x6A, - 0x6A, - 0x6A, - 0x45, - 0x45, - 0x08, - 0x46, - 0x00, - 0x0A, - 0x6A, - 0x46, - 0x46, - 0xA9, - 0x46, - 0x46, - 0xBB, - 0x45, - 0xBB, - 0xBB, - 0x04, - 0xBA, - 0x00, - 0x10, - 0x7B, - 0x42, - 0xBA, - 0xBA, - 0x42, - 0xB8, - 0xB8, - 0x54, - 0x54, - 0x54, - 0xB8, - 0xBA, - 0x45, - 0x6A, - 0x45, - 0x45, - 0x05, - 0x7B, - 0x00, - 0x24, - 0x5B, - 0x54, - 0x42, - 0x7B, - 0xBA, - 0x7B, - 0x7B, - 0x7B, - 0x42, - 0x7B, - 0xBA, - 0x7B, - 0x42, - 0xBA, - 0xBA, - 0x42, - 0x54, - 0xB8, - 0x54, - 0x54, - 0xA3, - 0x54, - 0xB8, - 0x42, - 0xB8, - 0x54, - 0x54, - 0xA3, - 0x3F, - 0xA3, - 0x54, - 0x54, - 0x54, - 0xB8, - 0xA3, - 0xA3, - 0x00, - 0x00, - 0x00, - 0x2F, - 0xD9, - 0x69, - 0xA7, - 0x72, - 0x9C, - 0x73, - 0x73, - 0x72, - 0x9C, - 0x9C, - 0x9C, - 0xDB, - 0x9C, - 0x9C, - 0x9C, - 0xDB, - 0xA8, - 0xA8, - 0x9C, - 0x68, - 0xDB, - 0x53, - 0xA8, - 0xA8, - 0x73, - 0xA7, - 0xD9, - 0xA7, - 0xA8, - 0xA8, - 0x74, - 0xE4, - 0x9E, - 0xD5, - 0xCD, - 0xCB, - 0x56, - 0xFF, - 0xFF, - 0xF4, - 0xB9, - 0xB6, - 0xCB, - 0xEE, - 0x6B, - 0xD7, - 0xD7, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x15, - 0xFE, - 0x93, - 0x9E, - 0x74, - 0xBB, - 0x73, - 0x74, - 0x73, - 0xBA, - 0x73, - 0x73, - 0xA7, - 0x9F, - 0x9F, - 0x69, - 0xB7, - 0xB7, - 0x93, - 0x9F, - 0x93, - 0x93, - 0x00, - 0x06, - 0xCA, - 0x00, - 0x15, - 0xC9, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xB6, - 0xB6, - 0xB0, - 0xB0, - 0xB6, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0xCA, - 0xCA, - 0xCD, - 0xFF, - 0xFF, - 0xEE, - 0x00, - 0x07, - 0xFF, - 0x01, - 0x6B, - 0x01, - 0xE3, - 0x07, - 0xFF, - 0x00, - 0x03, - 0x6B, - 0xCB, - 0xCC, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x22, - 0x0C, - 0x0B, - 0xC6, - 0xAF, - 0xB0, - 0xCD, - 0xB9, - 0xB6, - 0x9F, - 0xA6, - 0xCA, - 0x7B, - 0xBD, - 0x47, - 0xE5, - 0x47, - 0xBC, - 0x47, - 0xA9, - 0xA9, - 0x46, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x04, - 0xBB, - 0x00, - 0x17, - 0x45, - 0x45, - 0x46, - 0xA9, - 0x46, - 0xBB, - 0xA9, - 0x46, - 0x6A, - 0x46, - 0x46, - 0x46, - 0xA9, - 0x74, - 0xA9, - 0x47, - 0xBC, - 0x47, - 0xA9, - 0xA9, - 0x27, - 0xA9, - 0xA9, - 0x00, - 0x04, - 0x46, - 0x00, - 0x29, - 0x6A, - 0x46, - 0x46, - 0xA9, - 0x46, - 0x46, - 0x46, - 0x6A, - 0x46, - 0xA9, - 0x7C, - 0x27, - 0x46, - 0x46, - 0xA9, - 0x27, - 0x7C, - 0xBC, - 0xBC, - 0x47, - 0x47, - 0x47, - 0x7C, - 0xA9, - 0xA9, - 0x27, - 0x47, - 0x47, - 0x47, - 0x27, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0x27, - 0x47, - 0x00, - 0x05, - 0xA9, - 0x00, - 0x05, - 0x46, - 0x46, - 0x84, - 0x46, - 0x84, - 0x00, - 0x06, - 0xA9, - 0x00, - 0x10, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0x46, - 0x73, - 0x45, - 0x46, - 0xBB, - 0xBA, - 0x72, - 0x06, - 0xBA, - 0x00, - 0x34, - 0x42, - 0x54, - 0x54, - 0xB8, - 0x45, - 0x45, - 0x6A, - 0x45, - 0x45, - 0xBA, - 0x7B, - 0x7B, - 0x45, - 0xBA, - 0x7B, - 0x7B, - 0x54, - 0x54, - 0x42, - 0xBA, - 0x45, - 0x6A, - 0x45, - 0x7B, - 0x45, - 0xBA, - 0x45, - 0x45, - 0x7B, - 0x6A, - 0x45, - 0x7B, - 0xB8, - 0x5B, - 0x54, - 0x7B, - 0x7B, - 0x7B, - 0xBA, - 0xBA, - 0x7B, - 0x7B, - 0x54, - 0x54, - 0xA3, - 0x54, - 0x7B, - 0x72, - 0x42, - 0xB8, - 0xB8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x72, - 0x9C, - 0x9C, - 0xA8, - 0xA8, - 0x74, - 0xA8, - 0xA8, - 0x53, - 0x74, - 0x9E, - 0xA8, - 0xDB, - 0x73, - 0x9C, - 0xDA, - 0x9C, - 0xA8, - 0xA8, - 0x73, - 0x73, - 0xA8, - 0xA8, - 0x74, - 0xA8, - 0x72, - 0xDA, - 0xA7, - 0x04, - 0x72, - 0x00, - 0x11, - 0xDA, - 0x72, - 0xD5, - 0xCD, - 0xB9, - 0xC6, - 0xB9, - 0xB0, - 0xB6, - 0xC5, - 0xC3, - 0xD7, - 0xD7, - 0xD2, - 0xD2, - 0x24, - 0x24, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x3C, - 0xC6, - 0x3C, - 0x53, - 0x3D, - 0x67, - 0x3A, - 0x3A, - 0x69, - 0x8F, - 0x66, - 0xAD, - 0xAD, - 0xC6, - 0xCB, - 0xCB, - 0xC6, - 0xCB, - 0xCB, - 0xD2, - 0xC6, - 0xCB, - 0xE3, - 0xCB, - 0xD1, - 0xE2, - 0xE2, - 0xE2, - 0xD7, - 0xD1, - 0xD1, - 0xD7, - 0xD7, - 0xD1, - 0xD1, - 0xE2, - 0xD7, - 0xD7, - 0xE2, - 0xB2, - 0xE2, - 0xED, - 0xEC, - 0xE2, - 0xE2, - 0xE2, - 0xB2, - 0xB2, - 0x6B, - 0x6B, - 0xEF, - 0xEF, - 0xEF, - 0x6B, - 0x6B, - 0xEE, - 0xEE, - 0xFF, - 0x6B, - 0xEF, - 0x56, - 0x05, - 0xEE, - 0x00, - 0x13, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0x06, - 0x83, - 0xB9, - 0xB9, - 0xB0, - 0xC5, - 0xC9, - 0xAC, - 0xAD, - 0xA6, - 0xCA, - 0xC9, - 0xA3, - 0xBC, - 0x00, - 0x04, - 0x47, - 0x00, - 0x14, - 0x74, - 0x46, - 0x47, - 0xBC, - 0x7C, - 0x75, - 0x47, - 0x47, - 0xBC, - 0x47, - 0x47, - 0x7C, - 0x48, - 0x47, - 0xE5, - 0x47, - 0xA9, - 0xA9, - 0x74, - 0x46, - 0x06, - 0xA9, - 0x00, - 0x0A, - 0x27, - 0x7C, - 0x7C, - 0xA9, - 0x46, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x04, - 0x47, - 0x04, - 0xA9, - 0x00, - 0x05, - 0x46, - 0xA9, - 0x75, - 0xA9, - 0x46, - 0x00, - 0x07, - 0xA9, - 0x01, - 0x47, - 0x01, - 0x7C, - 0x05, - 0xA9, - 0x01, - 0x7C, - 0x01, - 0xBC, - 0x05, - 0x7C, - 0x00, - 0x2C, - 0x47, - 0x47, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0x47, - 0x7C, - 0x7C, - 0x7C, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x7C, - 0x7C, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0x46, - 0xA9, - 0x47, - 0x2F, - 0x27, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0x7C, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0x05, - 0xA9, - 0x00, - 0x19, - 0xBB, - 0x45, - 0xBA, - 0x46, - 0xBB, - 0x45, - 0xBB, - 0xBB, - 0xBB, - 0x7B, - 0xB8, - 0x45, - 0x46, - 0x46, - 0x6A, - 0x45, - 0x7B, - 0x45, - 0x6A, - 0x46, - 0xBB, - 0x6A, - 0x45, - 0x45, - 0xFC, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x1F, - 0xBB, - 0x6A, - 0x6A, - 0x45, - 0x6A, - 0x7B, - 0x7B, - 0x45, - 0x45, - 0x7B, - 0x45, - 0x45, - 0xB8, - 0x54, - 0x45, - 0x45, - 0x45, - 0xBB, - 0x6A, - 0x45, - 0x72, - 0xB8, - 0xB8, - 0x42, - 0x7B, - 0xBA, - 0xB8, - 0x54, - 0x54, - 0x7B, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x9C, - 0xDB, - 0xA8, - 0x9C, - 0x9C, - 0x68, - 0x04, - 0xA8, - 0x00, - 0x20, - 0x74, - 0x74, - 0x74, - 0xA8, - 0x53, - 0x9E, - 0xA8, - 0x73, - 0x73, - 0x9C, - 0xDB, - 0xA8, - 0x73, - 0xBA, - 0x72, - 0x72, - 0xDB, - 0x73, - 0xDA, - 0xDA, - 0xDB, - 0x71, - 0x71, - 0x72, - 0xDB, - 0x71, - 0xDA, - 0x72, - 0x75, - 0xB7, - 0xE3, - 0xEC, - 0x04, - 0xD2, - 0x00, - 0x2D, - 0xD7, - 0xCB, - 0xCB, - 0x24, - 0xFF, - 0x6B, - 0xD7, - 0xCD, - 0xC3, - 0xC3, - 0xCF, - 0xC5, - 0xCF, - 0xCF, - 0xCF, - 0xD2, - 0xE3, - 0xE3, - 0xE3, - 0xE2, - 0xE2, - 0xD1, - 0xD7, - 0xE3, - 0xCB, - 0xCB, - 0xD2, - 0xC3, - 0xC3, - 0xC3, - 0xCF, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xD8, - 0xC5, - 0xC5, - 0xC3, - 0xCF, - 0xCF, - 0xC5, - 0xD8, - 0xC5, - 0xCF, - 0x00, - 0x04, - 0xD2, - 0x01, - 0xCF, - 0x01, - 0xC3, - 0x08, - 0xD2, - 0x00, - 0x28, - 0xC3, - 0xC3, - 0xC3, - 0xC6, - 0xD2, - 0xC6, - 0xC3, - 0xC5, - 0xC3, - 0xCB, - 0xC6, - 0xCB, - 0xCB, - 0xC6, - 0xCB, - 0xD1, - 0xEF, - 0xEF, - 0x24, - 0xEF, - 0xCB, - 0xCB, - 0xD1, - 0xD1, - 0xCC, - 0xD2, - 0xD2, - 0xD2, - 0xCD, - 0xC3, - 0xB0, - 0x93, - 0x48, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x04, - 0xA9, - 0x00, - 0x07, - 0x47, - 0xBC, - 0x48, - 0x48, - 0x7C, - 0x7C, - 0x47, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x13, - 0x7C, - 0x47, - 0xBC, - 0xBC, - 0x47, - 0xA9, - 0x27, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0xA9, - 0x46, - 0x6A, - 0xA9, - 0x47, - 0x00, - 0x06, - 0xA9, - 0x00, - 0x16, - 0x46, - 0xA9, - 0x47, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x27, - 0x47, - 0xFB, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x47, - 0x7C, - 0xBC, - 0xBC, - 0x08, - 0x7C, - 0x00, - 0x03, - 0x28, - 0xF9, - 0x48, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x12, - 0x47, - 0xA9, - 0xA9, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0xA9, - 0x7C, - 0x7C, - 0x7C, - 0x47, - 0x27, - 0xFB, - 0x47, - 0x47, - 0x47, - 0x7C, - 0x05, - 0x47, - 0x00, - 0x29, - 0xA9, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x7C, - 0xBC, - 0xBC, - 0x47, - 0x47, - 0x48, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x46, - 0xBB, - 0x46, - 0x6A, - 0x6A, - 0xBB, - 0x45, - 0x45, - 0x45, - 0x6A, - 0x46, - 0x46, - 0x46, - 0x6A, - 0x7B, - 0x45, - 0x73, - 0xBB, - 0x46, - 0x46, - 0x6A, - 0x7B, - 0x6A, - 0x6A, - 0x00, - 0x05, - 0x46, - 0x00, - 0x1D, - 0x6A, - 0x46, - 0xBB, - 0x7B, - 0x7B, - 0x7B, - 0x45, - 0x6A, - 0x46, - 0x6A, - 0x45, - 0x45, - 0xBB, - 0x46, - 0xBB, - 0x45, - 0xBA, - 0x45, - 0xBA, - 0x72, - 0x7B, - 0x7B, - 0xBA, - 0xBA, - 0x42, - 0x54, - 0xB8, - 0x42, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0xA8, - 0x9E, - 0xA8, - 0xDB, - 0xDB, - 0x73, - 0x73, - 0x74, - 0x53, - 0x73, - 0xA8, - 0x74, - 0x74, - 0x74, - 0x9E, - 0x74, - 0x73, - 0xA8, - 0xA8, - 0xA8, - 0x73, - 0xDB, - 0x73, - 0xA8, - 0x73, - 0xA8, - 0xA8, - 0x73, - 0x73, - 0xA8, - 0x74, - 0x53, - 0x73, - 0xA8, - 0x74, - 0xA8, - 0x9E, - 0x75, - 0x6E, - 0xAD, - 0xED, - 0xEE, - 0xE2, - 0xD7, - 0xD7, - 0xEC, - 0xE2, - 0xD2, - 0xCF, - 0xD2, - 0xE3, - 0xE3, - 0xD2, - 0x00, - 0x05, - 0xCF, - 0x04, - 0xD8, - 0x00, - 0x15, - 0xCF, - 0xCF, - 0xCF, - 0xC3, - 0xC3, - 0xCF, - 0xC5, - 0xD8, - 0xD8, - 0xD3, - 0xB3, - 0x94, - 0xB3, - 0x94, - 0x94, - 0x9A, - 0xB3, - 0x9A, - 0x9A, - 0x9A, - 0x94, - 0x00, - 0x06, - 0xB4, - 0x00, - 0x5F, - 0x9A, - 0xB4, - 0xAC, - 0xB4, - 0xB4, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xAC, - 0xB4, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xAC, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC3, - 0xC3, - 0xC3, - 0xB0, - 0xC3, - 0xC3, - 0xC3, - 0xCD, - 0xC6, - 0xCB, - 0x83, - 0xB9, - 0xC3, - 0xB6, - 0xC6, - 0xCB, - 0xC6, - 0xB0, - 0xC5, - 0xAF, - 0xCD, - 0xCD, - 0xD2, - 0xC9, - 0x47, - 0xBC, - 0x47, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x7C, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x47, - 0xBC, - 0x47, - 0xA9, - 0x46, - 0xBB, - 0x45, - 0x46, - 0x47, - 0x47, - 0xBC, - 0xBC, - 0x7C, - 0xA9, - 0xA9, - 0x46, - 0xA9, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x27, - 0x27, - 0xA9, - 0x27, - 0x47, - 0x27, - 0x47, - 0x7C, - 0xA9, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x09, - 0x47, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x22, - 0xBC, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xBC, - 0x7E, - 0x7E, - 0x7E, - 0x7C, - 0x48, - 0x7C, - 0x7C, - 0x48, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0x27, - 0xA9, - 0x7C, - 0x47, - 0xA9, - 0x27, - 0x05, - 0xA9, - 0x01, - 0x47, - 0x04, - 0x7C, - 0x04, - 0x47, - 0x00, - 0x3C, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0xA9, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x46, - 0x46, - 0x46, - 0x6A, - 0x6A, - 0xBB, - 0x45, - 0x46, - 0x6A, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x6A, - 0x6A, - 0x46, - 0x6A, - 0x6A, - 0x6A, - 0x45, - 0x7B, - 0x7B, - 0xBB, - 0x45, - 0x45, - 0x6A, - 0x45, - 0x7B, - 0x45, - 0x7B, - 0x45, - 0x7B, - 0x7B, - 0x7B, - 0x45, - 0x45, - 0x6A, - 0x6A, - 0xBB, - 0x46, - 0x45, - 0xBA, - 0x7B, - 0x7B, - 0x42, - 0x04, - 0xBA, - 0x00, - 0x07, - 0x45, - 0x45, - 0x45, - 0x72, - 0xBA, - 0xBA, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xA8, - 0x73, - 0xA8, - 0xDB, - 0x73, - 0xA8, - 0x73, - 0xA8, - 0x53, - 0xA8, - 0x73, - 0xDB, - 0xA8, - 0x9E, - 0x9E, - 0x74, - 0xA8, - 0x53, - 0x9E, - 0xA0, - 0x9E, - 0xA8, - 0xDB, - 0x00, - 0x06, - 0xA8, - 0x00, - 0x13, - 0x9E, - 0x9E, - 0xA8, - 0x9E, - 0x9E, - 0x9E, - 0xE5, - 0xE5, - 0x9C, - 0x8E, - 0xC5, - 0xE2, - 0xD7, - 0xD7, - 0xE3, - 0xE3, - 0xD7, - 0xD7, - 0xD2, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x14, - 0xD8, - 0xD8, - 0xD3, - 0xB3, - 0xB3, - 0xB3, - 0x94, - 0xC2, - 0xB3, - 0xB3, - 0xB3, - 0xD3, - 0xD3, - 0xB3, - 0x9A, - 0x94, - 0x9A, - 0x9A, - 0x9A, - 0xAB, - 0x04, - 0x9A, - 0x00, - 0x12, - 0xB4, - 0xAC, - 0xAC, - 0xC5, - 0xAC, - 0xC9, - 0xC5, - 0xC3, - 0xC3, - 0xAF, - 0xC3, - 0xAF, - 0xC3, - 0xAF, - 0xC3, - 0xB0, - 0xC3, - 0xAF, - 0x0D, - 0xCD, - 0x00, - 0x05, - 0xAF, - 0xB0, - 0xAF, - 0xAF, - 0xAF, - 0x00, - 0x05, - 0xCD, - 0x00, - 0x32, - 0xB0, - 0xB0, - 0xB9, - 0xB9, - 0xC6, - 0x83, - 0xC6, - 0xB9, - 0xB9, - 0xC6, - 0xB9, - 0xB9, - 0xAF, - 0xB0, - 0xB0, - 0xAF, - 0xAF, - 0xA6, - 0x9C, - 0xA9, - 0x7C, - 0x48, - 0xBC, - 0x48, - 0x48, - 0xBC, - 0x47, - 0x47, - 0xBC, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0xBC, - 0xBC, - 0x7C, - 0x47, - 0xA9, - 0x46, - 0x6A, - 0x46, - 0xA9, - 0xA9, - 0x07, - 0x7C, - 0x00, - 0x2D, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x7C, - 0x48, - 0x48, - 0x7C, - 0x47, - 0x7C, - 0x48, - 0x7E, - 0x48, - 0x7C, - 0xBC, - 0xBC, - 0x28, - 0x48, - 0x48, - 0xBC, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x47, - 0x47, - 0x7C, - 0xBC, - 0x48, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0xF9, - 0x48, - 0x48, - 0xBC, - 0x28, - 0x7C, - 0x48, - 0x00, - 0x07, - 0x7C, - 0x00, - 0x24, - 0x47, - 0x27, - 0xA9, - 0x27, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x46, - 0x46, - 0x46, - 0xA9, - 0x3E, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x47, - 0x7C, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x46, - 0x46, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x04, - 0xA9, - 0x01, - 0x46, - 0x05, - 0xA9, - 0x00, - 0x29, - 0x47, - 0xA9, - 0x46, - 0xA9, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x46, - 0x6A, - 0x7B, - 0x6A, - 0x46, - 0x6A, - 0x6A, - 0x46, - 0x45, - 0x45, - 0x6A, - 0xBB, - 0x6A, - 0x6A, - 0x45, - 0x6A, - 0x45, - 0x7B, - 0x45, - 0xBB, - 0xBB, - 0x45, - 0xF6, - 0xB8, - 0x42, - 0x72, - 0xBA, - 0x72, - 0xB8, - 0x72, - 0x72, - 0x72, - 0x00, - 0x04, - 0xBA, - 0x01, - 0x72, - 0x01, - 0x42, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x73, - 0x9C, - 0xA8, - 0x73, - 0x53, - 0x9E, - 0xA8, - 0xA8, - 0x9E, - 0x74, - 0xA8, - 0xA8, - 0x9E, - 0xE5, - 0x74, - 0x53, - 0xA8, - 0x9E, - 0x75, - 0x9C, - 0x67, - 0xA8, - 0xA0, - 0x9E, - 0x9E, - 0x9E, - 0xA0, - 0xA0, - 0xA0, - 0x76, - 0x9E, - 0xE4, - 0x74, - 0x9E, - 0x9E, - 0x6D, - 0x6D, - 0x8E, - 0xC4, - 0xB3, - 0xB4, - 0xB3, - 0x04, - 0x9A, - 0x00, - 0x0D, - 0xAC, - 0xCF, - 0xC5, - 0xC5, - 0xB4, - 0xAC, - 0xC5, - 0xAC, - 0xB4, - 0x9A, - 0x9A, - 0xB4, - 0xA5, - 0x00, - 0x04, - 0xAD, - 0x00, - 0x07, - 0xAC, - 0xC9, - 0xB6, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0x00, - 0x04, - 0xB0, - 0x04, - 0xAF, - 0x00, - 0x23, - 0xB9, - 0xC6, - 0xC6, - 0xC6, - 0xCB, - 0xC6, - 0xC6, - 0xCB, - 0xCC, - 0xD1, - 0x56, - 0x06, - 0x06, - 0xFE, - 0xF0, - 0x06, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0x06, - 0xEE, - 0x05, - 0xF0, - 0x07, - 0xF0, - 0xF0, - 0x07, - 0xCC, - 0xB9, - 0x83, - 0x83, - 0x83, - 0x00, - 0x05, - 0xCC, - 0x00, - 0x05, - 0xB9, - 0xAF, - 0xAF, - 0xCA, - 0xC9, - 0x00, - 0x06, - 0xB6, - 0x00, - 0x21, - 0xB0, - 0xB0, - 0xB0, - 0xB6, - 0xB6, - 0x51, - 0xE5, - 0x49, - 0xA9, - 0x47, - 0xBC, - 0x48, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x47, - 0xBC, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0xBC, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0x00, - 0x06, - 0xA9, - 0x04, - 0x7C, - 0x01, - 0x7E, - 0x01, - 0x7E, - 0x04, - 0x7C, - 0x00, - 0x1A, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0xBC, - 0x7C, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x7E, - 0x48, - 0x7C, - 0x7C, - 0x48, - 0xBC, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x06, - 0x7C, - 0x00, - 0x07, - 0xBC, - 0x28, - 0x48, - 0x7E, - 0x48, - 0x7C, - 0x48, - 0x00, - 0x05, - 0x7C, - 0x00, - 0x22, - 0x47, - 0x47, - 0x2F, - 0x47, - 0x2F, - 0x47, - 0xA9, - 0x27, - 0x46, - 0x46, - 0xA9, - 0x47, - 0xA9, - 0x46, - 0x6A, - 0x6A, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x04, - 0xA9, - 0x00, - 0x0F, - 0x46, - 0xBB, - 0x74, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x03, - 0x47, - 0xA9, - 0xA9, - 0x00, - 0x05, - 0x46, - 0x00, - 0x18, - 0x84, - 0x46, - 0x6A, - 0x6A, - 0x6A, - 0xA9, - 0x46, - 0xBB, - 0x45, - 0x45, - 0x45, - 0x6A, - 0x7B, - 0x7B, - 0x45, - 0x45, - 0x7B, - 0xB8, - 0x42, - 0x72, - 0xBA, - 0xBA, - 0xB8, - 0x54, - 0x04, - 0xB8, - 0x00, - 0x05, - 0x72, - 0xBA, - 0x72, - 0xBA, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x01, - 0x73, - 0x06, - 0xA8, - 0x00, - 0x32, - 0x9E, - 0xA8, - 0x9E, - 0x9E, - 0x9E, - 0x60, - 0x9E, - 0x9E, - 0x9E, - 0xA8, - 0x9E, - 0x68, - 0xCA, - 0xC9, - 0xB7, - 0x69, - 0x9F, - 0x69, - 0xA7, - 0x72, - 0x9C, - 0x9C, - 0x73, - 0x60, - 0x91, - 0x6F, - 0x64, - 0x90, - 0x8C, - 0x8B, - 0x8B, - 0x8A, - 0x85, - 0x5D, - 0x5E, - 0x8C, - 0x64, - 0x91, - 0x4F, - 0x97, - 0xC9, - 0xC9, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xB6, - 0xB6, - 0xB0, - 0x04, - 0xAF, - 0x05, - 0xB9, - 0x00, - 0x06, - 0x83, - 0xB9, - 0xB9, - 0xB9, - 0x83, - 0xB9, - 0x05, - 0x83, - 0x00, - 0x0F, - 0x0B, - 0x0B, - 0xCC, - 0xF0, - 0x06, - 0x56, - 0xCC, - 0xCB, - 0xE3, - 0xE3, - 0xE3, - 0xD7, - 0xD1, - 0x6B, - 0xEE, - 0x00, - 0x0A, - 0xFF, - 0x00, - 0x34, - 0xEE, - 0x24, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0x24, - 0xEE, - 0xF4, - 0x07, - 0xFE, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0x56, - 0xB9, - 0xC9, - 0x46, - 0x46, - 0x73, - 0xBB, - 0xA9, - 0xA9, - 0x47, - 0xA3, - 0x51, - 0x51, - 0x93, - 0x51, - 0x69, - 0x47, - 0x7E, - 0x47, - 0xA9, - 0x47, - 0xBC, - 0xBC, - 0xBC, - 0x7C, - 0xBC, - 0x47, - 0xBC, - 0x48, - 0xBC, - 0xBC, - 0x7E, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0x04, - 0x48, - 0x00, - 0x31, - 0xBC, - 0xBC, - 0x7E, - 0xBC, - 0x7C, - 0xBC, - 0x7E, - 0x7C, - 0x47, - 0x47, - 0x32, - 0x28, - 0x7C, - 0x7C, - 0x7C, - 0x7E, - 0x48, - 0x7C, - 0x48, - 0xBC, - 0xBC, - 0xBC, - 0x48, - 0x48, - 0x7C, - 0x7C, - 0x47, - 0x7C, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0x7C, - 0xBC, - 0xBC, - 0x7C, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xBC, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x00, - 0x06, - 0x7C, - 0x01, - 0x48, - 0x01, - 0xBC, - 0x06, - 0x7C, - 0x00, - 0x11, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x46, - 0xA9, - 0x27, - 0x47, - 0x27, - 0xA9, - 0x84, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x6A, - 0x00, - 0x05, - 0x46, - 0x00, - 0x0B, - 0xBB, - 0xBB, - 0xBB, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0x47, - 0xA9, - 0x00, - 0x05, - 0x47, - 0x00, - 0x09, - 0xA9, - 0x46, - 0xBB, - 0xA9, - 0x47, - 0xBC, - 0x47, - 0xA9, - 0xA9, - 0x00, - 0x05, - 0x47, - 0x01, - 0x7C, - 0x06, - 0x47, - 0x00, - 0x19, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0x46, - 0x6A, - 0xA9, - 0xA9, - 0x46, - 0x6A, - 0x6A, - 0x46, - 0x46, - 0x6A, - 0xBA, - 0x7B, - 0x45, - 0x45, - 0xBA, - 0x7B, - 0x7B, - 0x45, - 0x7B, - 0x45, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x0B, - 0x42, - 0xB8, - 0xB8, - 0x72, - 0xB8, - 0x42, - 0x7B, - 0xBA, - 0xBA, - 0xBA, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x01, - 0x9E, - 0x01, - 0x9E, - 0x05, - 0xA8, - 0x00, - 0x2A, - 0x9E, - 0xA8, - 0xA8, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0xA0, - 0xA0, - 0x60, - 0x67, - 0xC9, - 0xC9, - 0xAF, - 0xCB, - 0x6B, - 0xF0, - 0xCB, - 0xCD, - 0xCD, - 0xAF, - 0xC3, - 0xC5, - 0x86, - 0x5E, - 0x5E, - 0x86, - 0x6C, - 0x8B, - 0x8D, - 0x90, - 0x6D, - 0xA8, - 0x9C, - 0xAE, - 0xB6, - 0xAF, - 0xAF, - 0xAF, - 0xB9, - 0xB9, - 0xB0, - 0x05, - 0xB9, - 0x01, - 0x83, - 0x05, - 0xB9, - 0x07, - 0xAF, - 0x05, - 0xB0, - 0x00, - 0x0E, - 0xB6, - 0xB6, - 0xB6, - 0xB0, - 0xB6, - 0xCD, - 0xC6, - 0xCB, - 0x56, - 0xFF, - 0xD1, - 0xCB, - 0xC6, - 0xCB, - 0x04, - 0xD2, - 0x00, - 0x08, - 0xC3, - 0xD2, - 0xE3, - 0xB2, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0x04, - 0xEE, - 0x11, - 0xFF, - 0x00, - 0x06, - 0xF4, - 0xB6, - 0x74, - 0x75, - 0x75, - 0x47, - 0x04, - 0x48, - 0x00, - 0x04, - 0x7C, - 0x46, - 0xBA, - 0x46, - 0x05, - 0x47, - 0x00, - 0x33, - 0x7C, - 0x48, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0xBC, - 0xBC, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0x48, - 0x7C, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x7E, - 0x48, - 0xBC, - 0x28, - 0x7C, - 0x7C, - 0x28, - 0x48, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x00, - 0x04, - 0x7C, - 0x01, - 0x28, - 0x01, - 0x48, - 0x04, - 0x7C, - 0x00, - 0x0D, - 0xBC, - 0x48, - 0x7E, - 0x48, - 0x7C, - 0x48, - 0x28, - 0x7C, - 0x7E, - 0x7C, - 0x48, - 0xBC, - 0x48, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x17, - 0x27, - 0x47, - 0x7C, - 0x27, - 0x27, - 0x27, - 0x74, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x46, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0x46, - 0xA9, - 0x46, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x07, - 0x73, - 0x45, - 0xBB, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0x00, - 0x04, - 0x47, - 0x00, - 0x13, - 0x7C, - 0x7C, - 0xBC, - 0x47, - 0x47, - 0x75, - 0x47, - 0x47, - 0x47, - 0xBC, - 0x7C, - 0x75, - 0xA9, - 0x47, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x07, - 0x47, - 0xA9, - 0x46, - 0x46, - 0x6A, - 0xBB, - 0x46, - 0x00, - 0x04, - 0xA9, - 0x00, - 0x20, - 0x47, - 0xA9, - 0x6A, - 0x6A, - 0x46, - 0x46, - 0x46, - 0x45, - 0xBA, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0x46, - 0x6A, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0x7B, - 0x45, - 0xBB, - 0xBB, - 0xBA, - 0x7B, - 0x42, - 0xBA, - 0x45, - 0xBA, - 0xBA, - 0x45, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x04, - 0xA8, - 0x9E, - 0x9E, - 0xA0, - 0x06, - 0x9E, - 0x00, - 0x1B, - 0x53, - 0xA8, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0xA7, - 0xC9, - 0xB9, - 0x24, - 0xFF, - 0xFF, - 0xFF, - 0xED, - 0xE2, - 0xE3, - 0xCB, - 0xD2, - 0xD2, - 0xC5, - 0x6C, - 0x65, - 0xA5, - 0xAC, - 0xC9, - 0xB0, - 0xAF, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x13, - 0x83, - 0x0B, - 0x83, - 0xB9, - 0x83, - 0x83, - 0xB9, - 0xB9, - 0x83, - 0xB9, - 0xAF, - 0xAF, - 0xB9, - 0xAF, - 0xAF, - 0xB0, - 0x0A, - 0xBA, - 0x45, - 0x00, - 0x04, - 0x74, - 0x00, - 0x27, - 0x46, - 0x74, - 0xE5, - 0x74, - 0x9E, - 0xE5, - 0x75, - 0x74, - 0x74, - 0x75, - 0xE5, - 0x75, - 0xA0, - 0xC9, - 0xCD, - 0xD2, - 0xCB, - 0xCC, - 0xCC, - 0xCC, - 0xC6, - 0xAF, - 0xCD, - 0xC3, - 0xC3, - 0xC3, - 0xCF, - 0xCF, - 0xD2, - 0xE3, - 0xB2, - 0xEE, - 0xEE, - 0xEE, - 0x24, - 0xF0, - 0x6B, - 0xF0, - 0xFE, - 0x00, - 0x11, - 0xFF, - 0x00, - 0x1B, - 0xB9, - 0xA9, - 0x75, - 0xA9, - 0xA9, - 0x7C, - 0x75, - 0x7C, - 0x7C, - 0x48, - 0xBC, - 0x47, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0xBC, - 0xBC, - 0x7C, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBC, - 0x47, - 0xBC, - 0x00, - 0x04, - 0x48, - 0x00, - 0x0C, - 0x7E, - 0x76, - 0x7E, - 0xBC, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0xBC, - 0x48, - 0x06, - 0x7C, - 0x00, - 0x0A, - 0x28, - 0xBC, - 0xBC, - 0x76, - 0xBC, - 0xBC, - 0xDC, - 0x48, - 0x48, - 0xDC, - 0x04, - 0x7E, - 0x00, - 0x2B, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0x7E, - 0x7C, - 0x7C, - 0xBC, - 0xBC, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0x48, - 0x48, - 0xF9, - 0x7E, - 0x48, - 0x7C, - 0x7C, - 0xBC, - 0x32, - 0x48, - 0xBC, - 0x28, - 0x7C, - 0x48, - 0xBC, - 0x47, - 0xA9, - 0x7C, - 0x7C, - 0x7C, - 0x28, - 0xBC, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x00, - 0x05, - 0xA9, - 0x00, - 0x2B, - 0x46, - 0xA9, - 0x46, - 0x46, - 0xBB, - 0x6A, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x46, - 0xBB, - 0x46, - 0xA9, - 0xA9, - 0x47, - 0x75, - 0xBC, - 0x7C, - 0xBC, - 0xBC, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0x7C, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0x00, - 0x04, - 0x46, - 0x01, - 0xBB, - 0x01, - 0x6A, - 0x04, - 0x46, - 0x00, - 0x24, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x46, - 0x6A, - 0x6A, - 0xA9, - 0xA9, - 0xA9, - 0x6A, - 0x7B, - 0x73, - 0x45, - 0x45, - 0x45, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x73, - 0x45, - 0xBB, - 0x46, - 0x46, - 0x45, - 0x73, - 0xBB, - 0xBB, - 0x45, - 0x45, - 0xBA, - 0x45, - 0xBA, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x9E, - 0xA8, - 0x9E, - 0xE5, - 0x9E, - 0x9E, - 0x9E, - 0xA0, - 0x9E, - 0x75, - 0x05, - 0x9E, - 0x00, - 0x12, - 0xA7, - 0xB6, - 0xCB, - 0x6B, - 0xE2, - 0xE2, - 0xD7, - 0xD2, - 0xC3, - 0xC3, - 0xC5, - 0xC3, - 0xC3, - 0xAF, - 0xAF, - 0xB0, - 0xB0, - 0xB9, - 0x04, - 0x83, - 0x00, - 0x42, - 0x0B, - 0x83, - 0xB9, - 0xB9, - 0x0B, - 0xB9, - 0x83, - 0x0B, - 0x0B, - 0x83, - 0x83, - 0xB9, - 0x0A, - 0xA3, - 0xB8, - 0x72, - 0xBA, - 0xDB, - 0x73, - 0xE4, - 0x9E, - 0xA1, - 0xA1, - 0xA1, - 0x76, - 0xA1, - 0xA1, - 0xA1, - 0xDD, - 0xA1, - 0xA1, - 0x77, - 0xA1, - 0xA1, - 0xE5, - 0x60, - 0x75, - 0xA0, - 0x76, - 0x77, - 0xB6, - 0xD2, - 0xCD, - 0xC6, - 0xE3, - 0x56, - 0xB9, - 0xC9, - 0xCA, - 0xC9, - 0xB6, - 0xB6, - 0xB6, - 0xC5, - 0xAC, - 0xC5, - 0xD2, - 0xCC, - 0xF0, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x24, - 0xED, - 0xEE, - 0x11, - 0xFF, - 0x00, - 0x20, - 0xC6, - 0x46, - 0x74, - 0xA9, - 0x75, - 0x48, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0x7C, - 0xBC, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0x48, - 0x7C, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0x7E, - 0xBD, - 0x04, - 0x7E, - 0x00, - 0x61, - 0x48, - 0xBC, - 0x7C, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x28, - 0x7C, - 0x7C, - 0x7C, - 0x48, - 0x7C, - 0x7C, - 0x1F, - 0x1B, - 0x19, - 0x19, - 0x17, - 0x17, - 0x17, - 0x19, - 0x19, - 0x1B, - 0x2F, - 0x48, - 0x48, - 0x7E, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0xF9, - 0x48, - 0x7E, - 0x48, - 0x7C, - 0xBC, - 0x7E, - 0x7E, - 0xBC, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0x7C, - 0x28, - 0x48, - 0xBC, - 0x28, - 0x7C, - 0x7C, - 0x48, - 0x7E, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0x46, - 0x45, - 0x73, - 0xBB, - 0xBB, - 0x45, - 0x45, - 0xBB, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x48, - 0xBC, - 0x47, - 0x7C, - 0x00, - 0x04, - 0xBC, - 0x00, - 0x08, - 0x47, - 0x47, - 0x46, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x75, - 0x05, - 0x47, - 0x00, - 0x13, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0x46, - 0xA9, - 0x47, - 0x27, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x00, - 0x07, - 0x46, - 0x00, - 0x07, - 0xBB, - 0xBB, - 0x45, - 0x73, - 0xBB, - 0x46, - 0x46, - 0x00, - 0x04, - 0xBB, - 0x00, - 0x0D, - 0x46, - 0xBB, - 0x46, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0x73, - 0xBA, - 0x45, - 0x46, - 0xBB, - 0xBB, - 0x00, - 0x00, - 0x00, - 0x01, - 0x74, - 0x04, - 0x9E, - 0x00, - 0x19, - 0x75, - 0xA0, - 0xA0, - 0x75, - 0x9E, - 0x9E, - 0x9E, - 0xE5, - 0xA8, - 0x73, - 0x93, - 0xC3, - 0xD2, - 0xD2, - 0xC3, - 0xC3, - 0xC3, - 0xC5, - 0xC5, - 0xC5, - 0xB0, - 0xAF, - 0xB9, - 0xB9, - 0x83, - 0x00, - 0x04, - 0x0B, - 0x04, - 0x83, - 0x00, - 0x31, - 0x0B, - 0x83, - 0x0B, - 0x0B, - 0x83, - 0xB9, - 0xB0, - 0xA6, - 0x51, - 0x93, - 0x9F, - 0x9E, - 0x77, - 0xA1, - 0x61, - 0x9D, - 0x77, - 0x9D, - 0x61, - 0x77, - 0x76, - 0xA1, - 0xDC, - 0xA1, - 0xA1, - 0xA1, - 0x76, - 0x76, - 0xA1, - 0x76, - 0xA1, - 0x76, - 0xA0, - 0xA0, - 0x75, - 0xE5, - 0x75, - 0xA0, - 0x76, - 0x69, - 0xCD, - 0xD7, - 0xCC, - 0x56, - 0xC6, - 0xC9, - 0x93, - 0x0A, - 0xB0, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x0C, - 0xCD, - 0xC3, - 0xCD, - 0xCC, - 0xF0, - 0x06, - 0xFF, - 0xEE, - 0x6B, - 0xEF, - 0x56, - 0xF0, - 0x10, - 0xFF, - 0x00, - 0x8B, - 0xFE, - 0xC9, - 0x46, - 0x74, - 0xA9, - 0x47, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0xBC, - 0x7E, - 0xBC, - 0xBC, - 0xBC, - 0x7C, - 0xBC, - 0xBC, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x49, - 0xBD, - 0x7E, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0x7C, - 0xBC, - 0x7C, - 0x48, - 0x28, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7C, - 0x7E, - 0x1F, - 0x1B, - 0x19, - 0x14, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x14, - 0x17, - 0x1B, - 0x1D, - 0x7E, - 0x48, - 0xBC, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x7E, - 0x48, - 0x7C, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x28, - 0x7C, - 0x7C, - 0x48, - 0x48, - 0x7C, - 0x47, - 0x27, - 0xA9, - 0x7C, - 0x47, - 0x7C, - 0xA9, - 0x27, - 0xA9, - 0x47, - 0x46, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x46, - 0xA9, - 0xA9, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0x46, - 0x74, - 0xBB, - 0x45, - 0xBB, - 0xA9, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0xBC, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0x48, - 0x48, - 0x7C, - 0x00, - 0x05, - 0x47, - 0x04, - 0x7C, - 0x00, - 0x19, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x48, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0xA9, - 0x47, - 0x27, - 0x7C, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0xBB, - 0x00, - 0x07, - 0x46, - 0x00, - 0x0A, - 0xBB, - 0xBB, - 0x46, - 0x46, - 0xA9, - 0x74, - 0x46, - 0x46, - 0x46, - 0xBB, - 0x04, - 0x46, - 0x00, - 0x07, - 0xBB, - 0x45, - 0xBA, - 0xBA, - 0x46, - 0x46, - 0x45, - 0x00, - 0x00, - 0x00, - 0x04, - 0x9E, - 0x00, - 0x16, - 0x74, - 0x9E, - 0x75, - 0x74, - 0xA8, - 0xA8, - 0x74, - 0x9E, - 0x9E, - 0x9E, - 0x97, - 0x9A, - 0xB4, - 0xD8, - 0xD8, - 0xC5, - 0xC3, - 0xAF, - 0xAF, - 0xAF, - 0xB9, - 0x83, - 0x06, - 0x0B, - 0x00, - 0x10, - 0x83, - 0x83, - 0xB9, - 0xB9, - 0x83, - 0x0B, - 0x0B, - 0x83, - 0xAF, - 0xB0, - 0xB6, - 0xCA, - 0x72, - 0x77, - 0x61, - 0x76, - 0x04, - 0xA1, - 0x04, - 0xA0, - 0x00, - 0x2F, - 0x75, - 0x9E, - 0x75, - 0xA0, - 0x76, - 0xDC, - 0x76, - 0x76, - 0xA0, - 0x75, - 0xA0, - 0x76, - 0xA0, - 0x75, - 0x75, - 0xA1, - 0x76, - 0xA0, - 0xA0, - 0xA0, - 0x76, - 0x9E, - 0xCD, - 0xFF, - 0xD1, - 0xB9, - 0xB6, - 0xA6, - 0x20, - 0xB0, - 0xB9, - 0xF4, - 0x0C, - 0x08, - 0x08, - 0x06, - 0xF4, - 0xF4, - 0x06, - 0xFF, - 0x08, - 0xFF, - 0xFF, - 0xF0, - 0x56, - 0xCC, - 0xF4, - 0x00, - 0x0F, - 0xFF, - 0x00, - 0x26, - 0xF4, - 0xB0, - 0x72, - 0x73, - 0xBB, - 0x46, - 0xA9, - 0x47, - 0x7C, - 0x48, - 0x48, - 0x48, - 0x7C, - 0xBC, - 0x48, - 0x48, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x49, - 0x7E, - 0x7E, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x7C, - 0x47, - 0x06, - 0x7C, - 0x00, - 0x24, - 0x48, - 0x7E, - 0x48, - 0x7C, - 0x1D, - 0x17, - 0x13, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x13, - 0x17, - 0x1B, - 0x7C, - 0xBC, - 0x7E, - 0x7E, - 0xF9, - 0x48, - 0xBC, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0xBC, - 0xBC, - 0x07, - 0x7E, - 0x01, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x0C, - 0x28, - 0x7C, - 0x7C, - 0x7C, - 0x28, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x47, - 0x06, - 0xA9, - 0x00, - 0x2C, - 0x47, - 0xA9, - 0x46, - 0x74, - 0x46, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0xBC, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x48, - 0xBC, - 0xBC, - 0xBC, - 0x48, - 0xBC, - 0x7C, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0x48, - 0x04, - 0x7C, - 0x01, - 0xBC, - 0x05, - 0x7C, - 0x00, - 0x08, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x04, - 0x46, - 0x04, - 0xA9, - 0x05, - 0x46, - 0x00, - 0x0B, - 0xA9, - 0xA9, - 0x46, - 0x6A, - 0xBB, - 0x46, - 0xBB, - 0xBB, - 0xBB, - 0x45, - 0xBA, - 0x00, - 0x04, - 0x45, - 0x01, - 0x6A, - 0x01, - 0x73, - 0x00, - 0x00, - 0x00, - 0x09, - 0x9E, - 0x75, - 0x75, - 0x9E, - 0xA8, - 0x9E, - 0x9E, - 0x73, - 0xA8, - 0x00, - 0x05, - 0x9E, - 0x00, - 0x11, - 0x95, - 0x8B, - 0xC4, - 0xB4, - 0xC3, - 0xCD, - 0xC6, - 0x83, - 0x0B, - 0x0C, - 0x0B, - 0x0B, - 0x83, - 0x83, - 0x0B, - 0x83, - 0x0B, - 0x00, - 0x05, - 0x83, - 0x00, - 0x0E, - 0x0B, - 0xB9, - 0xB9, - 0x0A, - 0x73, - 0x75, - 0xA1, - 0x77, - 0xA1, - 0xA0, - 0x75, - 0x9E, - 0x9E, - 0x74, - 0x04, - 0x75, - 0x00, - 0x22, - 0xE5, - 0x75, - 0x74, - 0x74, - 0x9E, - 0x75, - 0xA0, - 0x75, - 0xA0, - 0xDC, - 0x75, - 0x75, - 0xA0, - 0xA0, - 0x75, - 0x74, - 0x75, - 0x75, - 0xA0, - 0xDC, - 0xDC, - 0x75, - 0x75, - 0xA7, - 0xC6, - 0xFF, - 0xCC, - 0xB0, - 0xCA, - 0x0A, - 0xB6, - 0xAF, - 0x83, - 0xF4, - 0x0D, - 0xFF, - 0x01, - 0x0C, - 0x01, - 0x07, - 0x0C, - 0xFF, - 0x00, - 0x0D, - 0xFE, - 0xF4, - 0x83, - 0xC9, - 0x7B, - 0x72, - 0xBA, - 0x46, - 0x46, - 0xA9, - 0x47, - 0x28, - 0xBC, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x05, - 0xBC, - 0x28, - 0xBC, - 0x48, - 0xBC, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x3F, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x7C, - 0x48, - 0xBC, - 0xBC, - 0x7C, - 0x47, - 0x7C, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0x47, - 0x28, - 0xBC, - 0xBC, - 0x1F, - 0x17, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x17, - 0x1B, - 0x75, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x7C, - 0x48, - 0x48, - 0x7E, - 0xF9, - 0x48, - 0x7E, - 0x48, - 0xBC, - 0x7E, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x01, - 0x28, - 0x04, - 0x7C, - 0x00, - 0x10, - 0x28, - 0xBC, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x05, - 0xA9, - 0x00, - 0x2C, - 0x47, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x47, - 0x6A, - 0x5B, - 0x5B, - 0x5B, - 0x7B, - 0xA9, - 0x7C, - 0x7C, - 0x48, - 0x7E, - 0x48, - 0xBC, - 0x28, - 0xBC, - 0x48, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0x48, - 0x48, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0x7C, - 0x47, - 0x27, - 0x47, - 0x7C, - 0x28, - 0x7C, - 0x04, - 0x47, - 0x00, - 0x25, - 0x7C, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x46, - 0xA9, - 0x46, - 0xBB, - 0x46, - 0x46, - 0xBB, - 0x73, - 0x45, - 0xBA, - 0x45, - 0x6A, - 0x46, - 0xBB, - 0x45, - 0xBB, - 0x46, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x9E, - 0x75, - 0xA0, - 0x00, - 0x08, - 0x9E, - 0x00, - 0x11, - 0x74, - 0x9E, - 0x5C, - 0x8B, - 0x95, - 0xAC, - 0xCD, - 0x83, - 0x0B, - 0xF4, - 0x0B, - 0x83, - 0x0B, - 0x83, - 0x83, - 0x0B, - 0x0B, - 0x00, - 0x05, - 0x83, - 0x00, - 0x13, - 0x0B, - 0x0B, - 0x83, - 0xAF, - 0x54, - 0x75, - 0xA0, - 0xA0, - 0xA0, - 0xDC, - 0x75, - 0x75, - 0x75, - 0xE5, - 0x75, - 0x75, - 0x74, - 0x9E, - 0x74, - 0x00, - 0x05, - 0x75, - 0x00, - 0x0F, - 0xDC, - 0x75, - 0x9E, - 0x74, - 0x74, - 0x75, - 0x76, - 0xDC, - 0x76, - 0xA0, - 0xA0, - 0x75, - 0x75, - 0x75, - 0xE5, - 0x00, - 0x05, - 0x75, - 0x00, - 0x0B, - 0x9C, - 0xCD, - 0xEE, - 0xED, - 0xCB, - 0xAF, - 0xCD, - 0xB9, - 0xB9, - 0x83, - 0x08, - 0x00, - 0x1A, - 0xFF, - 0x00, - 0x43, - 0xF4, - 0xB6, - 0x51, - 0x6A, - 0x46, - 0x7B, - 0x54, - 0x73, - 0xBB, - 0x74, - 0x47, - 0x7C, - 0xBC, - 0x47, - 0x48, - 0x7E, - 0x7E, - 0xF9, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x48, - 0xBC, - 0x7E, - 0xBD, - 0x7E, - 0xBC, - 0x7C, - 0xBC, - 0x7E, - 0xBD, - 0x48, - 0x7C, - 0x7C, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x47, - 0x7C, - 0xBC, - 0x7E, - 0x28, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0x19, - 0x13, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x2D, - 0x16, - 0x0E, - 0x19, - 0x2F, - 0x48, - 0x7E, - 0x48, - 0x7C, - 0x7C, - 0x7C, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x32, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x28, - 0x48, - 0x48, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x7C, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x00, - 0x05, - 0x47, - 0x00, - 0x07, - 0x75, - 0xBC, - 0x47, - 0x47, - 0x47, - 0x6A, - 0x20, - 0x00, - 0x06, - 0x0A, - 0x00, - 0x10, - 0x54, - 0x7C, - 0x7E, - 0x7E, - 0x48, - 0x7C, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0xBC, - 0x04, - 0x7C, - 0x01, - 0x48, - 0x04, - 0x7C, - 0x00, - 0x03, - 0x47, - 0x47, - 0x47, - 0x00, - 0x06, - 0x7C, - 0x00, - 0x15, - 0x47, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x74, - 0xA9, - 0x74, - 0xA9, - 0x3E, - 0x47, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0x00, - 0x06, - 0x46, - 0x00, - 0x0B, - 0xBB, - 0x73, - 0x45, - 0x45, - 0x45, - 0x6A, - 0x46, - 0x46, - 0xBB, - 0xBB, - 0x46, - 0x00, - 0x00, - 0x00, - 0x04, - 0x75, - 0x00, - 0x0E, - 0xA0, - 0xA0, - 0xA0, - 0x9E, - 0xE5, - 0x75, - 0x74, - 0x74, - 0x9E, - 0x8E, - 0x6D, - 0xB0, - 0x09, - 0x0C, - 0x05, - 0x0B, - 0x00, - 0x42, - 0x83, - 0x0B, - 0x0B, - 0x0B, - 0x83, - 0x83, - 0x0B, - 0x0C, - 0x09, - 0x0C, - 0xB0, - 0xA3, - 0x73, - 0x74, - 0xA0, - 0x76, - 0xA0, - 0xA0, - 0x75, - 0xA0, - 0xA0, - 0x9E, - 0x9E, - 0x75, - 0xA0, - 0xA0, - 0x75, - 0xA0, - 0xA0, - 0xA0, - 0x75, - 0x75, - 0x75, - 0xA0, - 0x76, - 0x75, - 0x74, - 0x74, - 0x9E, - 0x75, - 0x76, - 0x76, - 0xA0, - 0x76, - 0x76, - 0x76, - 0xA0, - 0xA0, - 0x76, - 0x76, - 0xDC, - 0x75, - 0x75, - 0x76, - 0x9C, - 0xCD, - 0xED, - 0xEE, - 0xFF, - 0x24, - 0xCC, - 0xCB, - 0xCC, - 0x07, - 0xFE, - 0x08, - 0x08, - 0xFF, - 0x01, - 0x0C, - 0x0F, - 0xFF, - 0x00, - 0x5B, - 0xC6, - 0xA3, - 0xA9, - 0xA9, - 0xBB, - 0x45, - 0x42, - 0x42, - 0xBA, - 0x46, - 0xA9, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0xBC, - 0x48, - 0x7E, - 0x48, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0xBC, - 0x7C, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x7E, - 0x7E, - 0x28, - 0x7C, - 0x48, - 0x48, - 0x48, - 0xBC, - 0xBC, - 0x7C, - 0x7C, - 0x7C, - 0x17, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x17, - 0x1F, - 0xBC, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0xF9, - 0x48, - 0xF9, - 0x48, - 0x48, - 0x7C, - 0x7E, - 0x7E, - 0xBD, - 0x00, - 0x04, - 0x7E, - 0x01, - 0x48, - 0x05, - 0x7E, - 0x00, - 0x26, - 0xBC, - 0x7C, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0x7C, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0x46, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0x7C, - 0xA9, - 0x0A, - 0x0A, - 0x54, - 0xA9, - 0x7C, - 0x7C, - 0x6A, - 0x3F, - 0x0A, - 0x54, - 0x48, - 0xBC, - 0x06, - 0x48, - 0x00, - 0x09, - 0xBC, - 0xBC, - 0x7C, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x7C, - 0x47, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x0E, - 0xBC, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0x48, - 0x48, - 0x47, - 0xA9, - 0xA9, - 0x04, - 0x47, - 0x00, - 0x03, - 0xA9, - 0xA9, - 0x47, - 0x00, - 0x07, - 0xA9, - 0x00, - 0x08, - 0x47, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x74, - 0xA9, - 0x05, - 0x46, - 0x00, - 0x08, - 0xBB, - 0x73, - 0x46, - 0xBB, - 0xBB, - 0x46, - 0x46, - 0x46, - 0x00, - 0x00, - 0x01, - 0xA0, - 0x01, - 0x75, - 0x04, - 0xA0, - 0x00, - 0x0D, - 0x75, - 0x75, - 0xA0, - 0xA0, - 0x9E, - 0x74, - 0x9E, - 0x9E, - 0x9E, - 0x93, - 0x0A, - 0xB0, - 0x83, - 0x00, - 0x04, - 0xB9, - 0x00, - 0x2B, - 0x83, - 0x83, - 0x0B, - 0x83, - 0x0B, - 0x83, - 0x83, - 0xB9, - 0x20, - 0xA3, - 0xBA, - 0xA0, - 0x76, - 0x76, - 0xDC, - 0xA0, - 0x75, - 0x74, - 0x9E, - 0x75, - 0x75, - 0x75, - 0xA0, - 0x76, - 0xDC, - 0xA0, - 0xA0, - 0x76, - 0xDC, - 0x75, - 0x9E, - 0x75, - 0x75, - 0xA0, - 0xA0, - 0xA0, - 0x75, - 0x75, - 0xA0, - 0x76, - 0x76, - 0x76, - 0xDC, - 0x00, - 0x04, - 0x76, - 0x00, - 0x13, - 0xA0, - 0xDC, - 0x76, - 0x76, - 0x76, - 0x75, - 0xBD, - 0x9C, - 0xCD, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xF0, - 0x07, - 0xF4, - 0xF4, - 0x06, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x04, - 0x08, - 0xAF, - 0xB6, - 0xD1, - 0x0E, - 0xFF, - 0x00, - 0x05, - 0xB9, - 0xA9, - 0x48, - 0x46, - 0x6A, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x16, - 0x73, - 0x74, - 0x75, - 0x47, - 0x7C, - 0x48, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x21, - 0xF9, - 0x28, - 0xBC, - 0xBC, - 0xBC, - 0x7E, - 0x7E, - 0xF9, - 0x7E, - 0x48, - 0xBC, - 0x75, - 0x1F, - 0x14, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x12, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x14, - 0x1D, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x05, - 0x7E, - 0x00, - 0x07, - 0x32, - 0xBC, - 0x7E, - 0x7E, - 0x28, - 0x28, - 0xBC, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x09, - 0x2F, - 0x47, - 0x7C, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x00, - 0x04, - 0x47, - 0x00, - 0x17, - 0x7C, - 0xBC, - 0x48, - 0x48, - 0x48, - 0xF9, - 0x48, - 0xA9, - 0x0A, - 0x20, - 0x48, - 0x7E, - 0x7E, - 0x49, - 0xBD, - 0x7C, - 0x0A, - 0x20, - 0x7C, - 0x7C, - 0x48, - 0x7E, - 0xBD, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x1C, - 0x48, - 0x7C, - 0x7C, - 0x28, - 0x48, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0xBC, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x48, - 0x7E, - 0xBC, - 0x47, - 0x47, - 0x7C, - 0x75, - 0x04, - 0x47, - 0x01, - 0x7C, - 0x01, - 0x7C, - 0x05, - 0x47, - 0x01, - 0xA9, - 0x05, - 0x47, - 0x00, - 0x10, - 0xA9, - 0xA9, - 0x74, - 0xA9, - 0x46, - 0xA9, - 0xA9, - 0x74, - 0xBB, - 0x46, - 0x74, - 0x46, - 0x46, - 0x74, - 0xA9, - 0xA9, - 0x00, - 0x00, - 0x07, - 0x75, - 0x00, - 0x10, - 0xA0, - 0x76, - 0xA0, - 0x75, - 0x9E, - 0x75, - 0xDC, - 0x75, - 0x75, - 0xA0, - 0x73, - 0x9F, - 0x69, - 0xA3, - 0x9F, - 0x51, - 0x04, - 0x93, - 0x00, - 0x1C, - 0xA6, - 0xA6, - 0x93, - 0xA3, - 0x76, - 0x77, - 0xA1, - 0x75, - 0xE5, - 0x9E, - 0x75, - 0x75, - 0x75, - 0x9E, - 0x74, - 0x75, - 0xA0, - 0x75, - 0xDC, - 0xDC, - 0xA0, - 0x76, - 0x76, - 0xA1, - 0x76, - 0x76, - 0x75, - 0x75, - 0x06, - 0xA0, - 0x00, - 0x1C, - 0xDC, - 0xDC, - 0xA0, - 0x76, - 0xA0, - 0x76, - 0xDC, - 0x76, - 0x76, - 0xA0, - 0x76, - 0xDC, - 0x76, - 0xA0, - 0x75, - 0x77, - 0x9C, - 0xCD, - 0xEE, - 0xEE, - 0xED, - 0x6B, - 0x6B, - 0xED, - 0xF0, - 0xF4, - 0xF4, - 0x0D, - 0x07, - 0xFF, - 0x00, - 0x04, - 0xB0, - 0x69, - 0xB6, - 0x56, - 0x0D, - 0xFF, - 0x00, - 0x1D, - 0xF4, - 0xCA, - 0x27, - 0x6A, - 0x45, - 0x45, - 0x45, - 0x72, - 0x72, - 0xBA, - 0x46, - 0xA9, - 0x47, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0xBC, - 0x7E, - 0x7E, - 0xBC, - 0x48, - 0x7E, - 0x7C, - 0x48, - 0x48, - 0x7C, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x17, - 0x48, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x48, - 0xBC, - 0x1F, - 0x14, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x13, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x16, - 0x14, - 0x1F, - 0x00, - 0x09, - 0x7E, - 0x00, - 0x77, - 0x48, - 0x7C, - 0x7E, - 0x7E, - 0x48, - 0x7C, - 0x5B, - 0x7B, - 0x28, - 0x48, - 0x7C, - 0x5B, - 0x7B, - 0x48, - 0xBC, - 0xBC, - 0x7C, - 0x6A, - 0xA3, - 0x6A, - 0x7C, - 0xBC, - 0x47, - 0x47, - 0x5B, - 0x3F, - 0x3F, - 0x7B, - 0xBC, - 0xBC, - 0xBC, - 0x7B, - 0x3F, - 0x3F, - 0x3F, - 0x7B, - 0x7C, - 0x49, - 0x7E, - 0x3F, - 0x0A, - 0x7B, - 0x49, - 0x49, - 0x7C, - 0x84, - 0x3F, - 0x0A, - 0x51, - 0x28, - 0xA9, - 0x5B, - 0x6A, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x28, - 0x7B, - 0x3F, - 0x3F, - 0x54, - 0xA9, - 0xA9, - 0x54, - 0x6A, - 0x48, - 0x7E, - 0x7E, - 0x7C, - 0x7B, - 0x3F, - 0x3F, - 0x6A, - 0x7E, - 0x48, - 0xBC, - 0xFC, - 0x3F, - 0x3F, - 0x3F, - 0x5B, - 0x27, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x6A, - 0x3F, - 0x3F, - 0x3F, - 0x46, - 0x7C, - 0x5B, - 0x7B, - 0xBC, - 0x7C, - 0x47, - 0x46, - 0x7B, - 0x47, - 0x7B, - 0x84, - 0x45, - 0x6A, - 0x5B, - 0xA9, - 0xA9, - 0x47, - 0x47, - 0xA9, - 0x74, - 0x46, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0x47, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x30, - 0x75, - 0x75, - 0x9E, - 0x75, - 0xE5, - 0x75, - 0xA0, - 0x76, - 0xDC, - 0x75, - 0x75, - 0x75, - 0xA0, - 0x75, - 0x75, - 0xA0, - 0x76, - 0xA1, - 0x77, - 0x77, - 0xA1, - 0xA1, - 0xA1, - 0x77, - 0x77, - 0x9D, - 0x77, - 0xA1, - 0x77, - 0x77, - 0x9D, - 0x76, - 0xA0, - 0xE5, - 0x9E, - 0xE5, - 0xE5, - 0x74, - 0x9E, - 0x75, - 0xA0, - 0xA0, - 0xA0, - 0xDC, - 0xA0, - 0xA0, - 0x75, - 0xDC, - 0x04, - 0x76, - 0x00, - 0x24, - 0xA1, - 0xA1, - 0xA0, - 0xA0, - 0xDC, - 0x76, - 0x76, - 0x76, - 0xDC, - 0xA0, - 0xA0, - 0x76, - 0xA0, - 0xDC, - 0xA0, - 0x76, - 0x76, - 0xA1, - 0x76, - 0xDC, - 0x76, - 0xA0, - 0x75, - 0x75, - 0xDD, - 0xAE, - 0xD2, - 0xFF, - 0xFF, - 0xED, - 0xB2, - 0xEF, - 0x6B, - 0x6B, - 0xF0, - 0xFE, - 0x08, - 0xFF, - 0x00, - 0x05, - 0xCC, - 0xC9, - 0x51, - 0xAF, - 0xF0, - 0x00, - 0x0D, - 0xFF, - 0x00, - 0x1C, - 0x83, - 0x46, - 0x46, - 0xBB, - 0x45, - 0xBA, - 0x72, - 0x72, - 0xBB, - 0x74, - 0x47, - 0x7C, - 0x48, - 0xBD, - 0xBD, - 0x7E, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7C, - 0x28, - 0x7E, - 0xBC, - 0x04, - 0x7E, - 0x00, - 0x31, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0xBD, - 0x48, - 0xBC, - 0x48, - 0x7C, - 0x17, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x14, - 0x21, - 0x7E, - 0x49, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x20, - 0xBD, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0x7E, - 0xFB, - 0x0A, - 0x0A, - 0x7C, - 0x48, - 0xFB, - 0x0A, - 0x0A, - 0x7C, - 0x48, - 0xBC, - 0x7C, - 0x3F, - 0x0A, - 0x54, - 0x7C, - 0x7C, - 0x7C, - 0x3F, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x7E, - 0x7C, - 0x3F, - 0x06, - 0x0A, - 0x00, - 0x15, - 0xFC, - 0x7D, - 0x7E, - 0x3F, - 0x0A, - 0x3F, - 0x20, - 0x0A, - 0x0A, - 0x0A, - 0x20, - 0x84, - 0x7E, - 0x6A, - 0x0A, - 0x20, - 0x7E, - 0x48, - 0xBC, - 0x7C, - 0x54, - 0x00, - 0x04, - 0x0A, - 0x00, - 0x0F, - 0x20, - 0x3F, - 0x0A, - 0x54, - 0x48, - 0x7E, - 0x48, - 0x3F, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x7E, - 0x7C, - 0x3F, - 0x00, - 0x06, - 0x0A, - 0x00, - 0x04, - 0x5B, - 0x7C, - 0x48, - 0x7B, - 0x05, - 0x0A, - 0x00, - 0x12, - 0x54, - 0x0A, - 0x20, - 0x48, - 0xBC, - 0x7C, - 0x6A, - 0x20, - 0x7C, - 0x3F, - 0xA3, - 0x0A, - 0x54, - 0x20, - 0x47, - 0x47, - 0xBC, - 0xE5, - 0x04, - 0xA9, - 0x00, - 0x05, - 0x46, - 0x74, - 0xA9, - 0x74, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x04, - 0x75, - 0x04, - 0xA0, - 0x00, - 0x17, - 0x75, - 0x75, - 0xA0, - 0xDC, - 0x75, - 0xA0, - 0x75, - 0xA0, - 0xA0, - 0xA0, - 0x75, - 0x9E, - 0x9E, - 0x74, - 0x75, - 0xA0, - 0xA0, - 0xA1, - 0x76, - 0xDC, - 0xA0, - 0x76, - 0xA0, - 0x00, - 0x04, - 0x75, - 0x00, - 0x16, - 0xA0, - 0x75, - 0x9E, - 0x75, - 0x75, - 0xA0, - 0x76, - 0xDC, - 0x75, - 0xDC, - 0x75, - 0x75, - 0xA0, - 0xDC, - 0x76, - 0xDC, - 0x76, - 0x76, - 0x76, - 0xA0, - 0x75, - 0x75, - 0x04, - 0x76, - 0x00, - 0x04, - 0xA0, - 0xA0, - 0xDC, - 0xA1, - 0x04, - 0x76, - 0x00, - 0x13, - 0xA1, - 0xA0, - 0xDC, - 0xA0, - 0x75, - 0x75, - 0xA0, - 0x76, - 0x66, - 0xD2, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xED, - 0xEC, - 0x6B, - 0xED, - 0xEE, - 0x00, - 0x09, - 0xFF, - 0x00, - 0x04, - 0xCC, - 0xCA, - 0xCA, - 0xCB, - 0x0D, - 0xFF, - 0x00, - 0x0C, - 0xF4, - 0xA3, - 0xA9, - 0x46, - 0x45, - 0xBA, - 0x45, - 0x45, - 0x74, - 0x47, - 0xBC, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x05, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0xBC, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x07, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x00, - 0x06, - 0x7E, - 0x00, - 0x0A, - 0x49, - 0x49, - 0xBD, - 0x76, - 0x48, - 0x48, - 0x19, - 0x12, - 0x0E, - 0x16, - 0x05, - 0x0E, - 0x00, - 0x05, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x04, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x04, - 0x0E, - 0x01, - 0x12, - 0x06, - 0x0E, - 0x00, - 0x81, - 0x16, - 0x19, - 0x7E, - 0xBD, - 0x7D, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x47, - 0x0A, - 0x0A, - 0x7C, - 0x48, - 0xA9, - 0x0A, - 0x20, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0x54, - 0x0A, - 0x54, - 0xBC, - 0x48, - 0xA9, - 0x0A, - 0x0A, - 0x7B, - 0xFB, - 0x7E, - 0x49, - 0x54, - 0x0A, - 0x20, - 0x84, - 0x48, - 0x7C, - 0xFC, - 0x20, - 0x3F, - 0x49, - 0x7D, - 0x6A, - 0x0A, - 0x0A, - 0x20, - 0x3F, - 0x54, - 0x6A, - 0x48, - 0x7E, - 0x7E, - 0x6A, - 0x0A, - 0x51, - 0x7E, - 0x7E, - 0x48, - 0xA9, - 0x0A, - 0x0A, - 0x7B, - 0x7C, - 0x84, - 0x3F, - 0x0A, - 0x0A, - 0x5B, - 0x48, - 0x48, - 0xA9, - 0x0A, - 0x0A, - 0x5B, - 0x46, - 0x7C, - 0x7E, - 0x54, - 0x0A, - 0x20, - 0x7B, - 0xA9, - 0x46, - 0x5B, - 0x0A, - 0x3F, - 0x7C, - 0xA9, - 0x0A, - 0x0A, - 0x3F, - 0x84, - 0xFC, - 0x51, - 0x0A, - 0x0A, - 0x3F, - 0x48, - 0x7E, - 0xBC, - 0x6A, - 0x3F, - 0x48, - 0x3F, - 0x20, - 0x3F, - 0x20, - 0x20, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0xA9, - 0x74, - 0xA9, - 0xA9, - 0x46, - 0xA9, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x75, - 0x75, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x04, - 0x75, - 0x00, - 0x26, - 0xA0, - 0xDC, - 0x75, - 0x75, - 0x76, - 0x76, - 0xA0, - 0x75, - 0x47, - 0x75, - 0x75, - 0xA0, - 0xDC, - 0x76, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x75, - 0x75, - 0xDC, - 0x75, - 0xA0, - 0xA0, - 0x76, - 0xDC, - 0x76, - 0x76, - 0xA0, - 0x75, - 0x75, - 0x75, - 0xA0, - 0xA0, - 0x75, - 0xA0, - 0xA0, - 0x76, - 0x04, - 0x75, - 0x00, - 0x03, - 0x76, - 0x76, - 0xDC, - 0x00, - 0x04, - 0xA0, - 0x00, - 0x0A, - 0xDC, - 0x76, - 0xDC, - 0xDC, - 0x76, - 0x76, - 0xA0, - 0xDC, - 0xA0, - 0xDC, - 0x04, - 0x76, - 0x00, - 0x07, - 0x75, - 0x75, - 0x75, - 0xA0, - 0xA7, - 0xCD, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xED, - 0xED, - 0xED, - 0xEE, - 0x00, - 0x09, - 0xFF, - 0x00, - 0x08, - 0xCC, - 0xB6, - 0xD2, - 0xEC, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x16, - 0xFE, - 0xAF, - 0x6A, - 0x46, - 0x45, - 0x45, - 0x45, - 0xBB, - 0xA9, - 0x47, - 0xBC, - 0x48, - 0x7E, - 0xF9, - 0x48, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x05, - 0x7E, - 0x01, - 0xBD, - 0x07, - 0x7E, - 0x00, - 0x0D, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x1D, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x00, - 0x05, - 0x12, - 0x01, - 0x0E, - 0x05, - 0x12, - 0x00, - 0x04, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x06, - 0x12, - 0x01, - 0x0E, - 0x05, - 0x12, - 0x00, - 0x05, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x1B, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x23, - 0xBD, - 0x7E, - 0x7E, - 0x49, - 0x31, - 0x49, - 0x7E, - 0x7E, - 0x2F, - 0x0A, - 0x20, - 0x7C, - 0x7E, - 0x27, - 0x0A, - 0x0A, - 0x7C, - 0x48, - 0x7C, - 0xBC, - 0x3F, - 0x0A, - 0x5B, - 0x48, - 0x7E, - 0x7C, - 0x0A, - 0x20, - 0x7E, - 0xBD, - 0x49, - 0x48, - 0x0A, - 0x0A, - 0x7C, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x49, - 0x7E, - 0x7C, - 0x7D, - 0x49, - 0xFC, - 0x0A, - 0x3F, - 0x7C, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x6A, - 0x0A, - 0x3F, - 0x48, - 0x48, - 0x7E, - 0xA9, - 0x0A, - 0x20, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x3F, - 0x0A, - 0x5B, - 0x48, - 0x7E, - 0x84, - 0x0A, - 0x20, - 0x7E, - 0x7E, - 0xF9, - 0x47, - 0x0A, - 0x0A, - 0x6A, - 0x7C, - 0x7C, - 0x7C, - 0xBC, - 0xA9, - 0x6A, - 0x7C, - 0x5B, - 0x0A, - 0x20, - 0x48, - 0xBC, - 0x48, - 0x7C, - 0x3F, - 0x0A, - 0x3F, - 0xBC, - 0x48, - 0x7C, - 0x54, - 0x20, - 0x6A, - 0x20, - 0x0A, - 0x46, - 0x0A, - 0x20, - 0x47, - 0x7C, - 0x47, - 0x00, - 0x05, - 0xA9, - 0x00, - 0x05, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0x75, - 0xDC, - 0x76, - 0xA0, - 0xBC, - 0xA0, - 0xA0, - 0x75, - 0x75, - 0xE5, - 0x75, - 0x75, - 0xA0, - 0x76, - 0xDC, - 0xA0, - 0xA0, - 0x75, - 0x75, - 0xA0, - 0xA0, - 0xBC, - 0xA0, - 0xDC, - 0x75, - 0x75, - 0xDC, - 0x76, - 0xBC, - 0xA0, - 0xDC, - 0xBC, - 0x76, - 0x76, - 0xBC, - 0x76, - 0x76, - 0xA1, - 0x76, - 0xDC, - 0x75, - 0x75, - 0x75, - 0x76, - 0xA0, - 0x76, - 0x76, - 0xDC, - 0x75, - 0x75, - 0x75, - 0xA0, - 0x07, - 0x76, - 0x00, - 0x15, - 0xA0, - 0x76, - 0xA0, - 0x76, - 0xA1, - 0x76, - 0xDC, - 0x75, - 0x75, - 0x75, - 0xA0, - 0x76, - 0xA0, - 0x76, - 0x76, - 0xA0, - 0x76, - 0xDC, - 0xDC, - 0x69, - 0xC6, - 0x00, - 0x06, - 0xFF, - 0x01, - 0xEE, - 0x0C, - 0xFF, - 0x00, - 0x04, - 0xC6, - 0xC6, - 0xD7, - 0xED, - 0x04, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x11, - 0xB9, - 0x46, - 0xBC, - 0x47, - 0x46, - 0x45, - 0x45, - 0x46, - 0x74, - 0xBC, - 0x48, - 0xBD, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x0C, - 0x48, - 0x7E, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x06, - 0x7E, - 0x00, - 0x98, - 0x48, - 0x32, - 0x17, - 0x16, - 0x0E, - 0x16, - 0x12, - 0x0F, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x13, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x0E, - 0x16, - 0x0E, - 0x16, - 0x0E, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x10, - 0x13, - 0x10, - 0x1A, - 0x1A, - 0x1A, - 0x15, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x14, - 0x32, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x31, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x47, - 0x0A, - 0x0A, - 0x7C, - 0x7E, - 0xFB, - 0x0A, - 0x20, - 0x7C, - 0x48, - 0x7E, - 0x48, - 0x54, - 0x0A, - 0x54, - 0x7E, - 0x7E, - 0x7C, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x7D, - 0x84, - 0x0A, - 0x3F, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x29, - 0x7D, - 0x49, - 0xBD, - 0x7C, - 0x20, - 0x0A, - 0x0A, - 0x20, - 0x3F, - 0xA9, - 0x7E, - 0x7E, - 0x7E, - 0x6A, - 0x0A, - 0x20, - 0x7C, - 0x28, - 0x48, - 0x7E, - 0x20, - 0x0A, - 0x5B, - 0x7E, - 0x7E, - 0x7E, - 0x5B, - 0x0A, - 0x5B, - 0x7E, - 0x7E, - 0xA9, - 0x0A, - 0x20, - 0x48, - 0xBC, - 0x48, - 0x6A, - 0x0A, - 0x20, - 0x28, - 0x47, - 0xBC, - 0x7C, - 0x7C, - 0x48, - 0xBC, - 0x7C, - 0x3F, - 0x0A, - 0x5B, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x6A, - 0x0A, - 0x3F, - 0x48, - 0xBC, - 0x84, - 0xA3, - 0x3F, - 0x5B, - 0x54, - 0x5B, - 0x47, - 0x5B, - 0x54, - 0x08, - 0x47, - 0x00, - 0x05, - 0xA9, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x00, - 0x00, - 0x00, - 0x06, - 0x75, - 0x01, - 0xDC, - 0x01, - 0xBC, - 0x07, - 0x75, - 0x00, - 0x0C, - 0xDC, - 0x48, - 0xA0, - 0xDC, - 0x76, - 0xBC, - 0xDC, - 0x76, - 0xA0, - 0x75, - 0x75, - 0xA0, - 0x04, - 0x75, - 0x00, - 0x15, - 0xA0, - 0x76, - 0xA0, - 0x75, - 0x76, - 0x76, - 0x49, - 0x76, - 0x76, - 0x76, - 0x75, - 0xDC, - 0x76, - 0xDC, - 0xBC, - 0xA0, - 0x75, - 0x75, - 0x75, - 0xA0, - 0xDC, - 0x00, - 0x05, - 0x76, - 0x00, - 0x18, - 0xA1, - 0x76, - 0x76, - 0xDC, - 0xA0, - 0xDC, - 0x76, - 0xDC, - 0xA0, - 0x75, - 0x75, - 0x75, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0x76, - 0x49, - 0x76, - 0x76, - 0xA1, - 0xA0, - 0x69, - 0xCD, - 0x12, - 0xFF, - 0x00, - 0x08, - 0xEE, - 0xD7, - 0xE3, - 0xE2, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x23, - 0xC6, - 0x6A, - 0x7E, - 0x7C, - 0xA9, - 0xBB, - 0xBB, - 0x46, - 0xA9, - 0x75, - 0x76, - 0x7E, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0xBD, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xF8, - 0x7E, - 0xBD, - 0x00, - 0x06, - 0x7E, - 0x00, - 0x07, - 0x1B, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x10, - 0x00, - 0x04, - 0x36, - 0x01, - 0x13, - 0x01, - 0x10, - 0x04, - 0x36, - 0x00, - 0x05, - 0x15, - 0x12, - 0x0E, - 0x12, - 0x0F, - 0x00, - 0x04, - 0x36, - 0x00, - 0x78, - 0x1A, - 0x12, - 0x1C, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x19, - 0xDD, - 0x7D, - 0x49, - 0x23, - 0xBD, - 0x49, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x7C, - 0x0A, - 0x20, - 0x2F, - 0x7E, - 0x47, - 0x0A, - 0x20, - 0x7C, - 0x7E, - 0x7E, - 0x7E, - 0x5B, - 0x0A, - 0x5B, - 0x7E, - 0x31, - 0x7C, - 0x0A, - 0x20, - 0x49, - 0x7D, - 0x7D, - 0x84, - 0x0A, - 0x20, - 0xFC, - 0xFC, - 0x7B, - 0x7B, - 0xFC, - 0x5B, - 0x84, - 0x49, - 0x7E, - 0x3F, - 0x0A, - 0x3F, - 0x5B, - 0x3F, - 0x0A, - 0x20, - 0x27, - 0x28, - 0x7C, - 0xFC, - 0x0A, - 0x3F, - 0x28, - 0x7C, - 0x7E, - 0x7E, - 0x6A, - 0x0A, - 0x0A, - 0x20, - 0x5B, - 0x6A, - 0x3F, - 0x0A, - 0x5B, - 0x48, - 0x7E, - 0xA9, - 0x0A, - 0x20, - 0x7C, - 0x7E, - 0x7E, - 0x7B, - 0x0A, - 0x20, - 0x5B, - 0x5B, - 0x5B, - 0x54, - 0x5B, - 0x5B, - 0x6A, - 0x48, - 0x3F, - 0x0A, - 0x7B, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0xFC, - 0x0A, - 0x3F, - 0x7C, - 0x48, - 0x48, - 0xBC, - 0x7E, - 0xBC, - 0x07, - 0x7C, - 0x00, - 0x0B, - 0x47, - 0x47, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x47, - 0xA9, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x74, - 0x74, - 0x74, - 0x3E, - 0x0B, - 0x75, - 0x00, - 0x0C, - 0xA0, - 0xA0, - 0xBC, - 0x76, - 0x76, - 0xA0, - 0x76, - 0xDC, - 0x76, - 0x75, - 0xDC, - 0xDC, - 0x05, - 0x75, - 0x00, - 0x07, - 0x48, - 0xDC, - 0xBC, - 0x76, - 0x76, - 0xBD, - 0xBD, - 0x00, - 0x07, - 0x76, - 0x00, - 0x25, - 0x48, - 0x48, - 0xDC, - 0xBC, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0x76, - 0x76, - 0xDD, - 0x76, - 0xDC, - 0x75, - 0xA0, - 0xDC, - 0x75, - 0xA0, - 0x75, - 0x75, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x76, - 0xBD, - 0x49, - 0x77, - 0x76, - 0x76, - 0xBD, - 0x77, - 0x72, - 0xB9, - 0x6B, - 0x00, - 0x07, - 0xEE, - 0x0A, - 0xFF, - 0x00, - 0x07, - 0xE2, - 0xE3, - 0xD1, - 0xEC, - 0xED, - 0xED, - 0xED, - 0x00, - 0x08, - 0xFF, - 0x00, - 0x11, - 0x83, - 0x45, - 0xBC, - 0x47, - 0x46, - 0x46, - 0xBB, - 0xE4, - 0x47, - 0xBC, - 0x76, - 0xBD, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0x00, - 0x06, - 0x7E, - 0x01, - 0x48, - 0x01, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x56, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x17, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x0E, - 0x11, - 0x36, - 0x36, - 0x36, - 0x11, - 0x0E, - 0x12, - 0x12, - 0x1A, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x0E, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x14, - 0x23, - 0x7D, - 0x7D, - 0xBD, - 0x7D, - 0x49, - 0x7D, - 0x31, - 0x49, - 0x7D, - 0x7E, - 0x7C, - 0x0A, - 0x20, - 0x7C, - 0x7E, - 0xFB, - 0x0A, - 0x20, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x54, - 0x0A, - 0x5B, - 0x49, - 0x7D, - 0x28, - 0x0A, - 0x20, - 0x7D, - 0x7D, - 0x7D, - 0x84, - 0x08, - 0x0A, - 0x00, - 0x18, - 0x20, - 0x49, - 0x6A, - 0x0A, - 0x20, - 0x7C, - 0x7C, - 0x7C, - 0x3F, - 0x0A, - 0x54, - 0x7C, - 0x28, - 0xFC, - 0x0A, - 0x20, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xFB, - 0x54, - 0x20, - 0x04, - 0x0A, - 0x00, - 0x0A, - 0x5B, - 0x7E, - 0x7E, - 0x27, - 0x0A, - 0x20, - 0x48, - 0x48, - 0x7E, - 0xFC, - 0x08, - 0x0A, - 0x00, - 0x12, - 0x20, - 0x7E, - 0xA3, - 0x0A, - 0x5B, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0xFC, - 0x0A, - 0x3F, - 0x7C, - 0xBC, - 0x7E, - 0x48, - 0x48, - 0x7E, - 0x04, - 0x48, - 0x00, - 0x0E, - 0xBC, - 0x47, - 0xBC, - 0x7C, - 0xBC, - 0xBC, - 0xBC, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x00, - 0x00, - 0x00, - 0x05, - 0x74, - 0x74, - 0x74, - 0x9E, - 0xE5, - 0x00, - 0x05, - 0x75, - 0x00, - 0x0B, - 0xDC, - 0xA0, - 0x75, - 0x75, - 0x75, - 0xBC, - 0xA0, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x00, - 0x06, - 0x76, - 0x00, - 0x0F, - 0x75, - 0x75, - 0x75, - 0xBC, - 0xA0, - 0x76, - 0x75, - 0xA0, - 0x76, - 0x76, - 0xA1, - 0xBD, - 0x76, - 0x76, - 0x49, - 0x00, - 0x0C, - 0x76, - 0x01, - 0x75, - 0x01, - 0x75, - 0x05, - 0x76, - 0x00, - 0x1E, - 0xA0, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x76, - 0x76, - 0xA1, - 0xDD, - 0x76, - 0x76, - 0x76, - 0xBD, - 0x77, - 0xDD, - 0x76, - 0xBD, - 0x76, - 0x77, - 0xDC, - 0xAD, - 0xD1, - 0xED, - 0x6B, - 0xED, - 0x6B, - 0xED, - 0x6B, - 0xED, - 0xEE, - 0x04, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x08, - 0xED, - 0xD7, - 0xD7, - 0xE2, - 0xEC, - 0xED, - 0xED, - 0xEE, - 0x07, - 0xFF, - 0x00, - 0x37, - 0xCC, - 0x7B, - 0xA9, - 0x6A, - 0x6A, - 0x6A, - 0xBB, - 0x74, - 0x47, - 0xBC, - 0x48, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x31, - 0x49, - 0xF8, - 0x23, - 0x1D, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x15, - 0x00, - 0x04, - 0x36, - 0x00, - 0x03, - 0x10, - 0x18, - 0x15, - 0x00, - 0x04, - 0x36, - 0x00, - 0x8B, - 0x10, - 0x12, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x1B, - 0x49, - 0x7D, - 0x49, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0x7D, - 0xBD, - 0x7E, - 0x47, - 0x0A, - 0x0A, - 0x7C, - 0x48, - 0xA9, - 0x0A, - 0x20, - 0x28, - 0x7E, - 0x7E, - 0x49, - 0x5B, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x7E, - 0x0A, - 0x20, - 0x7D, - 0x7D, - 0x7D, - 0x2F, - 0x0A, - 0x20, - 0x7C, - 0x28, - 0x28, - 0x7C, - 0x5B, - 0x0A, - 0x3F, - 0x48, - 0x5B, - 0x0A, - 0x54, - 0xBC, - 0x48, - 0x28, - 0x6A, - 0x0A, - 0x3F, - 0x48, - 0x7E, - 0x6A, - 0x0A, - 0x0A, - 0x6A, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x49, - 0x7E, - 0x7C, - 0x84, - 0x3F, - 0x0A, - 0x5B, - 0x7E, - 0x49, - 0xFB, - 0x0A, - 0x20, - 0x7E, - 0x7E, - 0x7E, - 0xA9, - 0x0A, - 0x20, - 0x27, - 0x2F, - 0xA9, - 0x7C, - 0x5B, - 0x0A, - 0x3F, - 0x7E, - 0x5B, - 0x0A, - 0x3F, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7B, - 0x0A, - 0x3F, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x48, - 0xBD, - 0x7E, - 0xF9, - 0x48, - 0xBC, - 0x7C, - 0x47, - 0x28, - 0x7C, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0x74, - 0x53, - 0x9E, - 0x47, - 0x75, - 0x3E, - 0x3E, - 0xE5, - 0x75, - 0x75, - 0xA0, - 0x75, - 0x75, - 0xE5, - 0x75, - 0xA0, - 0x76, - 0xDC, - 0xA1, - 0x00, - 0x05, - 0x76, - 0x00, - 0x16, - 0xDC, - 0x76, - 0xDC, - 0xDC, - 0x76, - 0x76, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0x76, - 0x76, - 0x76, - 0x49, - 0x76, - 0x76, - 0x77, - 0x77, - 0xDD, - 0x49, - 0x77, - 0xBD, - 0x08, - 0x76, - 0x01, - 0xA0, - 0x07, - 0x76, - 0x01, - 0xA1, - 0x05, - 0x76, - 0x01, - 0xBD, - 0x04, - 0x76, - 0x01, - 0x77, - 0x01, - 0xDD, - 0x04, - 0x76, - 0x00, - 0x11, - 0x77, - 0x75, - 0xC9, - 0xD1, - 0xB2, - 0xB2, - 0x6B, - 0xED, - 0xED, - 0x6B, - 0x6B, - 0xED, - 0xED, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x07, - 0xD1, - 0xD7, - 0xD1, - 0xEC, - 0xEC, - 0xED, - 0xEE, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x15, - 0xCC, - 0x7B, - 0xA9, - 0x6A, - 0x45, - 0x45, - 0x73, - 0xBB, - 0x74, - 0x47, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x7C, - 0x7C, - 0x7C, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x05, - 0xBD, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x05, - 0x49, - 0x00, - 0x91, - 0x19, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x16, - 0x1A, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x17, - 0x11, - 0x36, - 0x36, - 0x36, - 0x11, - 0x13, - 0x12, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x16, - 0x17, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x49, - 0x7E, - 0x7E, - 0x7C, - 0x0A, - 0x20, - 0x7C, - 0x7E, - 0x47, - 0x0A, - 0x0A, - 0x3F, - 0x7C, - 0x31, - 0x7D, - 0x3F, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x28, - 0x0A, - 0x20, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x20, - 0x0A, - 0x84, - 0x31, - 0x7E, - 0x48, - 0x3F, - 0x0A, - 0xFC, - 0x7E, - 0xFC, - 0x0A, - 0x3F, - 0x7E, - 0x48, - 0x48, - 0x5B, - 0x0A, - 0x54, - 0x7E, - 0x7E, - 0x6A, - 0x0A, - 0x0A, - 0x0A, - 0xFC, - 0x7E, - 0x49, - 0x7E, - 0x2F, - 0x49, - 0x31, - 0x49, - 0x49, - 0x3F, - 0x0A, - 0xFC, - 0x23, - 0x7E, - 0x27, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0x20, - 0x0A, - 0x6A, - 0x7E, - 0x7E, - 0x7E, - 0x3F, - 0x0A, - 0x6A, - 0x7E, - 0x7C, - 0x0A, - 0x0A, - 0x6A, - 0x7E, - 0x7E, - 0x7E, - 0x7B, - 0x0A, - 0x3F, - 0x48, - 0xBD, - 0x7E, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x0A, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0xBC, - 0x7C, - 0x7C, - 0x06, - 0x47, - 0x00, - 0x00, - 0x00, - 0x07, - 0x74, - 0xE5, - 0x75, - 0x75, - 0x9E, - 0xE5, - 0x9E, - 0x00, - 0x09, - 0x75, - 0x00, - 0x08, - 0xDC, - 0x76, - 0x76, - 0x76, - 0xDC, - 0xA0, - 0xA0, - 0xA0, - 0x0A, - 0x76, - 0x00, - 0x12, - 0xDD, - 0xDD, - 0x77, - 0xA1, - 0x76, - 0x76, - 0x77, - 0x77, - 0x49, - 0x77, - 0xDD, - 0x77, - 0x76, - 0xA1, - 0x76, - 0x76, - 0x76, - 0xBD, - 0x06, - 0x76, - 0x00, - 0x10, - 0xDD, - 0x76, - 0x77, - 0xA1, - 0x49, - 0x76, - 0xA1, - 0x76, - 0xDD, - 0xDD, - 0x76, - 0xA1, - 0x76, - 0xBD, - 0x77, - 0x77, - 0x05, - 0x76, - 0x00, - 0x1E, - 0x4A, - 0x75, - 0xC9, - 0xB2, - 0xED, - 0xE2, - 0xEF, - 0x6B, - 0xEE, - 0xED, - 0xED, - 0x6B, - 0x6B, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xB2, - 0xE3, - 0xD1, - 0xB2, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x1D, - 0xCC, - 0x7B, - 0x7C, - 0x46, - 0x6A, - 0x6A, - 0x73, - 0x46, - 0xA9, - 0x47, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0x28, - 0x48, - 0x7E, - 0xBC, - 0x28, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x16, - 0x49, - 0xBD, - 0x49, - 0x31, - 0x7E, - 0x7E, - 0x17, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x0E, - 0x12, - 0x0F, - 0x04, - 0x36, - 0x01, - 0x11, - 0x04, - 0x36, - 0x00, - 0x20, - 0x15, - 0x12, - 0x0E, - 0x0E, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x14, - 0x32, - 0x49, - 0x31, - 0x49, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x7C, - 0x0A, - 0x0A, - 0x7C, - 0x7E, - 0x7C, - 0x04, - 0x0A, - 0x00, - 0x68, - 0x54, - 0x3F, - 0x0A, - 0x0A, - 0x27, - 0x7D, - 0x5B, - 0x3F, - 0x0A, - 0x0A, - 0x3F, - 0x3F, - 0x84, - 0x7D, - 0xA9, - 0x0A, - 0x0A, - 0x54, - 0xFC, - 0x3F, - 0x0A, - 0x20, - 0x7C, - 0x48, - 0x7C, - 0x20, - 0x0A, - 0x3F, - 0x6A, - 0x5B, - 0x0A, - 0x0A, - 0x0A, - 0x3F, - 0x7C, - 0x6A, - 0x0A, - 0x3F, - 0x20, - 0x0A, - 0x20, - 0x6A, - 0x27, - 0x0A, - 0x20, - 0x54, - 0x5B, - 0x3F, - 0x0A, - 0x0A, - 0x27, - 0x7E, - 0x5B, - 0x3F, - 0x0A, - 0x0A, - 0x3F, - 0x3F, - 0x84, - 0x49, - 0x84, - 0x0A, - 0x0A, - 0x5B, - 0x6A, - 0x3F, - 0x0A, - 0x3F, - 0x7E, - 0x49, - 0x49, - 0x5B, - 0x0A, - 0x0A, - 0x3F, - 0x54, - 0x3F, - 0x0A, - 0x0A, - 0x3F, - 0xBD, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0xBC, - 0xBC, - 0x7C, - 0x28, - 0x7C, - 0xBC, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x47, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x09, - 0x75, - 0xA0, - 0xE5, - 0x75, - 0x75, - 0x3E, - 0xE5, - 0x3E, - 0xE5, - 0x00, - 0x08, - 0x75, - 0x01, - 0x76, - 0x01, - 0xBC, - 0x05, - 0x75, - 0x04, - 0x76, - 0x00, - 0x15, - 0xDD, - 0x76, - 0x76, - 0x75, - 0xA0, - 0x76, - 0x76, - 0xA1, - 0x76, - 0xBD, - 0x76, - 0x76, - 0xBD, - 0xDD, - 0xDD, - 0x77, - 0x77, - 0x76, - 0x76, - 0xBD, - 0x77, - 0x00, - 0x07, - 0x76, - 0x00, - 0x07, - 0xA1, - 0x76, - 0xBD, - 0x76, - 0xDD, - 0xA1, - 0xDD, - 0x00, - 0x04, - 0x76, - 0x00, - 0x1C, - 0x77, - 0x77, - 0xA1, - 0x76, - 0xA1, - 0x77, - 0x77, - 0x77, - 0xBD, - 0x49, - 0xBD, - 0x77, - 0x4A, - 0xA1, - 0xCA, - 0x6B, - 0xFF, - 0xED, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xED, - 0xB2, - 0xB2, - 0x6B, - 0xED, - 0x04, - 0xEE, - 0x00, - 0x0B, - 0xFF, - 0xFF, - 0x6B, - 0xD7, - 0xE3, - 0xE2, - 0xB2, - 0xED, - 0xFF, - 0xEE, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x0F, - 0xF4, - 0x45, - 0xBC, - 0xA9, - 0x46, - 0x46, - 0xA9, - 0xA9, - 0x47, - 0xBC, - 0x7E, - 0x48, - 0x48, - 0x48, - 0xBC, - 0x00, - 0x06, - 0x7C, - 0x00, - 0x03, - 0x7E, - 0x28, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x1D, - 0x49, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0xBD, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x1D, - 0x13, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x0E, - 0x12, - 0x1A, - 0x00, - 0x07, - 0x36, - 0x00, - 0x16, - 0x11, - 0x0E, - 0x0E, - 0x16, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x1D, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x05, - 0x7E, - 0x00, - 0x11, - 0x7C, - 0x20, - 0x20, - 0x28, - 0x49, - 0x7C, - 0x20, - 0x5B, - 0x7C, - 0x3F, - 0x0A, - 0x0A, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x20, - 0x00, - 0x05, - 0x0A, - 0x00, - 0x20, - 0x6A, - 0x7D, - 0x49, - 0x84, - 0x20, - 0x0A, - 0x0A, - 0x0A, - 0x3F, - 0x7C, - 0x7E, - 0x48, - 0x7E, - 0x47, - 0x3F, - 0x0A, - 0x0A, - 0x0A, - 0x20, - 0x54, - 0x3F, - 0x0A, - 0x7C, - 0x84, - 0x0A, - 0x6A, - 0x7E, - 0x3F, - 0x0A, - 0xFC, - 0x32, - 0x3F, - 0x04, - 0x0A, - 0x00, - 0x05, - 0x20, - 0xFC, - 0x49, - 0x7E, - 0x20, - 0x00, - 0x05, - 0x0A, - 0x00, - 0x2E, - 0x6A, - 0x7D, - 0x7D, - 0x84, - 0x20, - 0x0A, - 0x0A, - 0x0A, - 0x3F, - 0x7C, - 0x49, - 0xBD, - 0x23, - 0x49, - 0xFC, - 0x20, - 0x0A, - 0x0A, - 0x0A, - 0x20, - 0x0A, - 0x3F, - 0x7E, - 0x7E, - 0x7E, - 0xBC, - 0x48, - 0xBC, - 0x28, - 0xBC, - 0x48, - 0x7C, - 0x48, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x00, - 0x00, - 0x00, - 0x13, - 0xA0, - 0x75, - 0xA0, - 0x75, - 0x75, - 0xE5, - 0x75, - 0xE5, - 0x75, - 0x75, - 0x75, - 0xE5, - 0x75, - 0xA0, - 0x75, - 0x75, - 0x75, - 0xA0, - 0xA0, - 0x00, - 0x04, - 0x75, - 0x01, - 0xA0, - 0x06, - 0x76, - 0x00, - 0x09, - 0xBC, - 0x75, - 0x75, - 0xA0, - 0x76, - 0x76, - 0xA1, - 0x76, - 0xBD, - 0x00, - 0x09, - 0x76, - 0x00, - 0x18, - 0xBD, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0xBD, - 0x76, - 0x76, - 0xBD, - 0x76, - 0x76, - 0x49, - 0x77, - 0x77, - 0x49, - 0x49, - 0x77, - 0x76, - 0x49, - 0xDD, - 0x49, - 0x49, - 0x07, - 0x77, - 0x00, - 0x1F, - 0x78, - 0x77, - 0xA7, - 0xB2, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x6B, - 0xB2, - 0xB2, - 0x6B, - 0xED, - 0xEE, - 0xED, - 0xED, - 0xFF, - 0xFF, - 0xED, - 0xD1, - 0xE3, - 0xE2, - 0xE2, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x1C, - 0xCC, - 0xF7, - 0x48, - 0x47, - 0xA9, - 0x47, - 0x47, - 0x47, - 0xBC, - 0x76, - 0xBD, - 0xBD, - 0x7E, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0xBC, - 0xBC, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x19, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x1B, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x0E, - 0x12, - 0x14, - 0x00, - 0x07, - 0x36, - 0x00, - 0x3B, - 0x0F, - 0x12, - 0x12, - 0x0E, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x1B, - 0x7E, - 0x31, - 0x7E, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x7D, - 0x7D, - 0x7E, - 0x7E, - 0x7D, - 0x7D, - 0x7D, - 0x7E, - 0x49, - 0xBE, - 0x7D, - 0x7C, - 0xFB, - 0x32, - 0x29, - 0x7D, - 0x29, - 0x7E, - 0x2F, - 0x0A, - 0x20, - 0x7C, - 0x32, - 0x7E, - 0x49, - 0xBD, - 0xBD, - 0x48, - 0xA9, - 0x84, - 0x7C, - 0x7E, - 0x49, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x4D, - 0xFB, - 0x84, - 0xA9, - 0x48, - 0x7E, - 0xBD, - 0x7C, - 0x7E, - 0x7E, - 0x7C, - 0x7E, - 0x49, - 0x7D, - 0x7C, - 0x7E, - 0x7D, - 0x49, - 0x28, - 0x2F, - 0x84, - 0xA9, - 0x28, - 0x7E, - 0x49, - 0xF8, - 0x28, - 0x84, - 0x0A, - 0x20, - 0x7C, - 0x7C, - 0x23, - 0x49, - 0x31, - 0x49, - 0x7E, - 0x27, - 0x84, - 0x2F, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0xA9, - 0xA9, - 0x7C, - 0xFC, - 0x0A, - 0x3F, - 0x48, - 0x7E, - 0x48, - 0x32, - 0xBC, - 0x48, - 0xBC, - 0x7E, - 0xBC, - 0x48, - 0x48, - 0x48, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0x47, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x47, - 0x00, - 0x00, - 0x00, - 0x06, - 0x75, - 0x00, - 0x1F, - 0x9E, - 0x3E, - 0xE5, - 0x75, - 0x74, - 0x75, - 0x75, - 0xA0, - 0x75, - 0x75, - 0x75, - 0xBC, - 0x75, - 0xBC, - 0x75, - 0x75, - 0xDC, - 0x76, - 0xDC, - 0x75, - 0x76, - 0x76, - 0x76, - 0x75, - 0x75, - 0x75, - 0xDC, - 0x76, - 0x76, - 0x76, - 0xBD, - 0x00, - 0x0B, - 0x76, - 0x00, - 0x19, - 0xDD, - 0x76, - 0x76, - 0x76, - 0xBD, - 0xDD, - 0xBD, - 0x76, - 0x76, - 0x49, - 0xDD, - 0x76, - 0x49, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x49, - 0x49, - 0xDD, - 0x77, - 0x76, - 0x49, - 0xDD, - 0x00, - 0x05, - 0x77, - 0x00, - 0x06, - 0x49, - 0x77, - 0xBE, - 0x75, - 0xC6, - 0xEE, - 0x07, - 0xFF, - 0x00, - 0x11, - 0xEE, - 0x6B, - 0xB2, - 0xB2, - 0x6B, - 0x6B, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xE2, - 0xE3, - 0xD1, - 0xE2, - 0xEC, - 0xEE, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x21, - 0x56, - 0x6A, - 0x7E, - 0x7C, - 0x47, - 0x7C, - 0x48, - 0x7C, - 0xBC, - 0x48, - 0xBD, - 0xBD, - 0xBD, - 0x48, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x48, - 0xBD, - 0x7E, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x15, - 0x49, - 0x7D, - 0x19, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x10, - 0x00, - 0x05, - 0x36, - 0x00, - 0x0D, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x16, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x0B, - 0x12, - 0x19, - 0x49, - 0x7E, - 0x49, - 0xBD, - 0x23, - 0x7E, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x05, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x29, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x10, - 0x7E, - 0x0A, - 0x20, - 0x49, - 0x49, - 0x49, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0x07, - 0x7E, - 0x01, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x24, - 0x49, - 0x7E, - 0x49, - 0x31, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7E, - 0x23, - 0x7E, - 0x49, - 0x31, - 0x49, - 0x49, - 0x7C, - 0x0A, - 0x20, - 0x49, - 0x31, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x31, - 0x49, - 0x7D, - 0x49, - 0xBD, - 0x23, - 0x7E, - 0x49, - 0x06, - 0x7E, - 0x00, - 0x05, - 0x6A, - 0x0A, - 0x3F, - 0x7E, - 0x7E, - 0x00, - 0x04, - 0x48, - 0x00, - 0x09, - 0x7E, - 0x48, - 0x48, - 0x7E, - 0xBC, - 0xBC, - 0xBC, - 0x48, - 0xBC, - 0x00, - 0x04, - 0x7C, - 0x00, - 0x05, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x47, - 0x00, - 0x00, - 0x00, - 0x01, - 0x75, - 0x01, - 0x74, - 0x04, - 0x75, - 0x01, - 0x3E, - 0x01, - 0xE5, - 0x0D, - 0x75, - 0x00, - 0x0B, - 0xDC, - 0x76, - 0xBC, - 0x75, - 0x75, - 0xA0, - 0xDC, - 0xA0, - 0xBC, - 0x76, - 0xDC, - 0x00, - 0x04, - 0x76, - 0x01, - 0xA1, - 0x08, - 0x76, - 0x00, - 0x0D, - 0xDC, - 0x48, - 0x76, - 0x76, - 0x76, - 0xDD, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0x49, - 0x00, - 0x08, - 0x77, - 0x00, - 0x0C, - 0x76, - 0x76, - 0x77, - 0xDD, - 0xBD, - 0xBD, - 0x49, - 0x49, - 0x77, - 0x77, - 0x77, - 0x49, - 0x04, - 0x77, - 0x00, - 0x04, - 0xC9, - 0xD1, - 0xED, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x12, - 0xEE, - 0xED, - 0xB2, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0xED, - 0xFF, - 0xFF, - 0xB2, - 0xE3, - 0xD7, - 0xE2, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0x05, - 0xFF, - 0x00, - 0x1E, - 0xF0, - 0xB8, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x47, - 0x47, - 0x75, - 0xBC, - 0x76, - 0x76, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0xBD, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x19, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x19, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x14, - 0x1C, - 0x00, - 0x04, - 0x36, - 0x00, - 0x3B, - 0x17, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x19, - 0x7E, - 0x23, - 0x7D, - 0x31, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7E, - 0x20, - 0x51, - 0x32, - 0x7D, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7C, - 0x0A, - 0x20, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x00, - 0x06, - 0x7E, - 0x00, - 0x03, - 0x48, - 0x7E, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x17, - 0x49, - 0x7D, - 0xF8, - 0x49, - 0x7E, - 0x49, - 0xF8, - 0x49, - 0xF8, - 0x31, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x31, - 0x49, - 0x49, - 0x7D, - 0x2F, - 0x0A, - 0x20, - 0x7E, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x09, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x23, - 0x7E, - 0x49, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x04, - 0xBD, - 0x6A, - 0x0A, - 0x3F, - 0x07, - 0x7E, - 0x00, - 0x11, - 0x48, - 0x48, - 0xF9, - 0x48, - 0x48, - 0x7C, - 0x48, - 0x7C, - 0x48, - 0x7C, - 0xBC, - 0x7C, - 0xBC, - 0x47, - 0x7C, - 0x7C, - 0x47, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x75, - 0x00, - 0x04, - 0x47, - 0xE5, - 0x3E, - 0xE5, - 0x06, - 0x75, - 0x00, - 0x08, - 0xDC, - 0x75, - 0x75, - 0xBC, - 0xA0, - 0x48, - 0xDC, - 0xA0, - 0x13, - 0x76, - 0x01, - 0xBD, - 0x06, - 0x76, - 0x00, - 0x0A, - 0xBD, - 0xA1, - 0x49, - 0xBD, - 0xBD, - 0x76, - 0x49, - 0x77, - 0x77, - 0xDD, - 0x06, - 0x76, - 0x00, - 0x0E, - 0xDD, - 0xBD, - 0x49, - 0x49, - 0xDD, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0xE4, - 0xCD, - 0xB2, - 0xED, - 0x07, - 0xFF, - 0x00, - 0x11, - 0xEE, - 0xEE, - 0xB2, - 0xE2, - 0x6B, - 0x6B, - 0xB2, - 0xEE, - 0xFF, - 0x6B, - 0xE3, - 0xD7, - 0xE2, - 0xB2, - 0x6B, - 0xED, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x1B, - 0xFE, - 0xA3, - 0x7E, - 0x48, - 0xBC, - 0xBC, - 0x7C, - 0xA9, - 0xA9, - 0x47, - 0x75, - 0x48, - 0xBC, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0xBD, - 0xBD, - 0x7D, - 0x49, - 0x00, - 0x0A, - 0x7D, - 0x00, - 0x16, - 0x49, - 0x7D, - 0x17, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x18, - 0x10, - 0x04, - 0x36, - 0x00, - 0x20, - 0x0F, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x19, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x84, - 0x0A, - 0x0A, - 0xFB, - 0x0A, - 0x7D, - 0x00, - 0x0C, - 0x49, - 0x49, - 0x7E, - 0x7E, - 0x84, - 0xA9, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x08, - 0x7E, - 0x00, - 0x25, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x49, - 0x7D, - 0x31, - 0x7D, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0x31, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7E, - 0x84, - 0xA9, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x06, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0x7E, - 0x49, - 0x05, - 0x7E, - 0x00, - 0x05, - 0xFC, - 0x0A, - 0x3F, - 0x7E, - 0x49, - 0x00, - 0x06, - 0x7E, - 0x00, - 0x10, - 0xBC, - 0x48, - 0x7C, - 0xBC, - 0xBC, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0x28, - 0x7C, - 0x7C, - 0xBC, - 0x47, - 0x7C, - 0xBC, - 0x00, - 0x00, - 0x01, - 0x3E, - 0x01, - 0xA9, - 0x06, - 0x75, - 0x01, - 0x76, - 0x01, - 0xBC, - 0x04, - 0x75, - 0x00, - 0x12, - 0x74, - 0x3E, - 0xE5, - 0x3E, - 0xE5, - 0x75, - 0x75, - 0x75, - 0x47, - 0x47, - 0x75, - 0x48, - 0xDC, - 0x76, - 0x76, - 0x48, - 0xBC, - 0xBC, - 0x06, - 0x76, - 0x00, - 0x06, - 0xBD, - 0x76, - 0x76, - 0x76, - 0xBD, - 0xBD, - 0x06, - 0x76, - 0x00, - 0x09, - 0xDD, - 0xBD, - 0x76, - 0xDD, - 0x76, - 0xDD, - 0x49, - 0x49, - 0xBD, - 0x00, - 0x04, - 0x76, - 0x01, - 0x49, - 0x01, - 0xBD, - 0x07, - 0x76, - 0x00, - 0x0F, - 0xBD, - 0x76, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0x77, - 0xBD, - 0x49, - 0x77, - 0x76, - 0xB0, - 0xD1, - 0xD1, - 0xEE, - 0x00, - 0x08, - 0xFF, - 0x00, - 0x0C, - 0xEE, - 0x6B, - 0xE2, - 0xE2, - 0xD1, - 0xED, - 0xFF, - 0x6B, - 0xE3, - 0xE3, - 0xE2, - 0xB2, - 0x04, - 0xED, - 0x04, - 0xFF, - 0x00, - 0x52, - 0x24, - 0x51, - 0x48, - 0x7E, - 0xBC, - 0x47, - 0x47, - 0xA9, - 0x46, - 0xA9, - 0x75, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x49, - 0x49, - 0x7D, - 0x77, - 0x7D, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x19, - 0x16, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x13, - 0x12, - 0x11, - 0x36, - 0x36, - 0x36, - 0x11, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x19, - 0x06, - 0x7D, - 0x00, - 0x0A, - 0x49, - 0x7D, - 0x49, - 0x7E, - 0xFC, - 0xFC, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x05, - 0x23, - 0x49, - 0x7E, - 0x7E, - 0xBD, - 0x00, - 0x09, - 0x7E, - 0x01, - 0x48, - 0x08, - 0x7E, - 0x00, - 0x05, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x0F, - 0x49, - 0x7E, - 0x49, - 0x49, - 0x49, - 0x31, - 0xBD, - 0x31, - 0x7E, - 0x31, - 0x7D, - 0x49, - 0x31, - 0x23, - 0x49, - 0x00, - 0x0C, - 0x7D, - 0x00, - 0x0C, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x31, - 0x31, - 0xBD, - 0x49, - 0x31, - 0x04, - 0x49, - 0x00, - 0x12, - 0x84, - 0x20, - 0x54, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0xF9, - 0x7E, - 0xBC, - 0x48, - 0x7C, - 0x7C, - 0xBC, - 0x48, - 0x04, - 0xBC, - 0x00, - 0x05, - 0x7C, - 0x7C, - 0xBC, - 0x7C, - 0x7C, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE5, - 0x04, - 0x75, - 0x00, - 0x06, - 0xE5, - 0x47, - 0x75, - 0xBC, - 0xBC, - 0xBC, - 0x04, - 0x75, - 0x00, - 0x03, - 0xE5, - 0x47, - 0x47, - 0x00, - 0x04, - 0x75, - 0x00, - 0x0F, - 0x47, - 0x75, - 0x75, - 0xDC, - 0x76, - 0x48, - 0xBC, - 0x75, - 0x75, - 0x75, - 0xBC, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0x00, - 0x04, - 0x76, - 0x00, - 0x06, - 0xBD, - 0x76, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0x04, - 0x76, - 0x00, - 0x25, - 0xBD, - 0xDD, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0xDD, - 0x76, - 0xBD, - 0xBD, - 0x76, - 0xBD, - 0xBD, - 0xDD, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0xBD, - 0xBD, - 0x76, - 0xBD, - 0xDD, - 0xBD, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x77, - 0x77, - 0x78, - 0xC9, - 0xE3, - 0xD1, - 0xB2, - 0xEE, - 0x00, - 0x08, - 0xFF, - 0x00, - 0x2B, - 0xEE, - 0xEC, - 0xE2, - 0xD7, - 0xE2, - 0xFF, - 0xEE, - 0xD7, - 0xE3, - 0xD1, - 0xEC, - 0xED, - 0xEC, - 0xB2, - 0xEC, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x93, - 0xBC, - 0x7E, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0xA9, - 0x47, - 0x75, - 0xBC, - 0x7C, - 0x48, - 0xBC, - 0xF9, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x00, - 0x1E, - 0xBE, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x19, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x18, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x0E, - 0x12, - 0x15, - 0x1A, - 0x18, - 0x15, - 0x04, - 0x36, - 0x00, - 0x13, - 0x10, - 0x12, - 0x16, - 0x0E, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x19, - 0x29, - 0x00, - 0x09, - 0x7D, - 0x00, - 0x0C, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0xF8, - 0x7D, - 0x49, - 0x7E, - 0x49, - 0x49, - 0x05, - 0x7E, - 0x01, - 0xBD, - 0x04, - 0x7E, - 0x00, - 0x04, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x07, - 0x7E, - 0x00, - 0x03, - 0xBC, - 0xBC, - 0x48, - 0x00, - 0x09, - 0x7E, - 0x00, - 0x0D, - 0x49, - 0x31, - 0xBD, - 0x49, - 0x49, - 0x23, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x31, - 0x31, - 0x00, - 0x14, - 0x7D, - 0x00, - 0x23, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7E, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0xF9, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0xBC, - 0x7C, - 0x7C, - 0xBC, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x75, - 0x00, - 0x04, - 0x9E, - 0x47, - 0x75, - 0xE5, - 0x07, - 0x75, - 0x00, - 0x0E, - 0xBC, - 0xBC, - 0xDC, - 0x75, - 0x47, - 0x74, - 0x47, - 0x75, - 0x75, - 0x76, - 0xBC, - 0x48, - 0x76, - 0xDC, - 0x0B, - 0x76, - 0x00, - 0x28, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xDD, - 0x49, - 0x77, - 0x76, - 0x49, - 0xBD, - 0x76, - 0xDD, - 0x49, - 0xDD, - 0x49, - 0xDD, - 0xBD, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x49, - 0xDD, - 0x49, - 0xBF, - 0x72, - 0xC3, - 0xD1, - 0xE2, - 0xED, - 0xEE, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x20, - 0xEE, - 0xED, - 0xB2, - 0xD1, - 0xE2, - 0xED, - 0xEE, - 0xD7, - 0xE3, - 0xD7, - 0x6B, - 0xED, - 0xED, - 0xB2, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x0A, - 0x47, - 0x7E, - 0x7C, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x75, - 0x7C, - 0xBC, - 0x04, - 0x48, - 0x00, - 0x06, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x05, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x2F, - 0x19, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x0E, - 0x16, - 0x0E, - 0x11, - 0x36, - 0x0F, - 0x18, - 0x1A, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x0E, - 0x12, - 0x0E, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x1B, - 0x31, - 0x7D, - 0x7D, - 0x29, - 0x00, - 0x08, - 0x7D, - 0x00, - 0x08, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x05, - 0x7E, - 0x00, - 0x09, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x7C, - 0x7E, - 0x48, - 0x48, - 0x00, - 0x08, - 0x7E, - 0x00, - 0x04, - 0x48, - 0x48, - 0x32, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x0A, - 0x49, - 0x7E, - 0x49, - 0x31, - 0x49, - 0xBD, - 0x49, - 0x7D, - 0x31, - 0x49, - 0x0A, - 0x7D, - 0x01, - 0xBE, - 0x06, - 0x7D, - 0x01, - 0x29, - 0x12, - 0x7D, - 0x00, - 0x06, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7E, - 0x49, - 0x04, - 0x7E, - 0x00, - 0x04, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x05, - 0x48, - 0x00, - 0x08, - 0xF9, - 0x48, - 0xBC, - 0xBC, - 0x7C, - 0xBC, - 0x48, - 0x47, - 0x00, - 0x00, - 0x00, - 0x04, - 0x75, - 0xA0, - 0x75, - 0xA0, - 0x09, - 0x75, - 0x01, - 0xE5, - 0x04, - 0x75, - 0x00, - 0x03, - 0xBC, - 0x75, - 0xDC, - 0x00, - 0x04, - 0x75, - 0x01, - 0x76, - 0x09, - 0x75, - 0x00, - 0x03, - 0xDC, - 0x75, - 0xDC, - 0x00, - 0x0B, - 0x76, - 0x00, - 0x05, - 0xBD, - 0x76, - 0x77, - 0x77, - 0x49, - 0x00, - 0x04, - 0x77, - 0x00, - 0x20, - 0x49, - 0xDD, - 0x49, - 0xBD, - 0x76, - 0x49, - 0xBD, - 0xBD, - 0x76, - 0xBD, - 0xBD, - 0xBD, - 0x49, - 0xDD, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x77, - 0xBD, - 0x77, - 0x77, - 0x4A, - 0x5A, - 0xCA, - 0xD7, - 0xD1, - 0xE2, - 0x6B, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x0B, - 0xEE, - 0xEE, - 0xED, - 0xE2, - 0xD1, - 0x6B, - 0xEE, - 0xE2, - 0xD7, - 0xD7, - 0xB2, - 0x00, - 0x04, - 0xED, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x1D, - 0xC9, - 0x7C, - 0xBD, - 0x7C, - 0x7C, - 0xBC, - 0x7C, - 0x47, - 0x47, - 0x47, - 0xBC, - 0xBC, - 0x48, - 0x7E, - 0x49, - 0xBD, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x49, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x29, - 0x7D, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x1B, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x31, - 0x1D, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x14, - 0x12, - 0x12, - 0x15, - 0x36, - 0x36, - 0x11, - 0x12, - 0x0F, - 0x00, - 0x04, - 0x36, - 0x00, - 0x14, - 0x10, - 0x12, - 0x0E, - 0x13, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x1D, - 0x29, - 0x7D, - 0x7D, - 0x04, - 0x29, - 0x00, - 0x53, - 0x7D, - 0x7D, - 0x7E, - 0x3F, - 0x3F, - 0x7E, - 0xBD, - 0x49, - 0x7E, - 0xFC, - 0x20, - 0x6A, - 0xBD, - 0x7E, - 0x49, - 0x7C, - 0x3F, - 0x54, - 0x7E, - 0x49, - 0x32, - 0x54, - 0x20, - 0x0A, - 0x20, - 0x7B, - 0x7C, - 0x3F, - 0x5B, - 0x7E, - 0x5B, - 0x20, - 0x6A, - 0x48, - 0xBC, - 0x48, - 0x7C, - 0xA3, - 0x20, - 0x6A, - 0x7E, - 0x5B, - 0x3F, - 0x7C, - 0x7D, - 0x49, - 0x3F, - 0x3F, - 0x7C, - 0x31, - 0x7D, - 0x7D, - 0x6A, - 0x20, - 0x6A, - 0x7D, - 0x7D, - 0x7D, - 0x7E, - 0x3F, - 0x3F, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x29, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x13, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0xBD, - 0x48, - 0x7E, - 0x48, - 0xF9, - 0x00, - 0x04, - 0x48, - 0x00, - 0x05, - 0xBC, - 0x48, - 0x7C, - 0xBC, - 0x7C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDC, - 0x76, - 0x76, - 0x76, - 0xDC, - 0xDC, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x06, - 0x75, - 0x05, - 0xA0, - 0x00, - 0x06, - 0xDC, - 0xA0, - 0xA0, - 0xDC, - 0xA0, - 0xDC, - 0x04, - 0x75, - 0x00, - 0x0C, - 0xA0, - 0x75, - 0xDC, - 0xA0, - 0xA0, - 0x75, - 0xA0, - 0xDC, - 0xA0, - 0x76, - 0xA0, - 0xDC, - 0x06, - 0x76, - 0x00, - 0x13, - 0xBD, - 0xDD, - 0x49, - 0xA1, - 0x77, - 0x49, - 0xDD, - 0x49, - 0x77, - 0xBD, - 0x77, - 0xDD, - 0x77, - 0xBD, - 0xBD, - 0x76, - 0x76, - 0xBD, - 0x76, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x13, - 0xDD, - 0xBD, - 0x76, - 0x49, - 0x49, - 0xDD, - 0x49, - 0x77, - 0x49, - 0x77, - 0x77, - 0x5A, - 0x93, - 0xD7, - 0xD1, - 0xD1, - 0xE2, - 0xED, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x0F, - 0xEE, - 0xED, - 0xB2, - 0xD1, - 0xB2, - 0xEE, - 0xB2, - 0xD1, - 0xD1, - 0xE2, - 0xED, - 0xEC, - 0xEC, - 0xED, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x3D, - 0xC9, - 0xA9, - 0x49, - 0x7C, - 0x48, - 0x7C, - 0xBC, - 0x47, - 0x47, - 0x47, - 0xBC, - 0x48, - 0xBD, - 0xBD, - 0xF8, - 0x49, - 0x7D, - 0xBD, - 0x7D, - 0x49, - 0xF8, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x32, - 0x14, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x10, - 0x36, - 0x36, - 0x36, - 0x1C, - 0x13, - 0x18, - 0x13, - 0x1C, - 0x36, - 0x36, - 0x36, - 0x15, - 0x18, - 0x1A, - 0x00, - 0x04, - 0x36, - 0x00, - 0x10, - 0x17, - 0x12, - 0x12, - 0x11, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x13, - 0x32, - 0x08, - 0x7D, - 0x00, - 0x54, - 0x49, - 0x7C, - 0x0A, - 0x0A, - 0x7E, - 0x31, - 0xBD, - 0x49, - 0x3F, - 0x0A, - 0x5B, - 0x7E, - 0x7E, - 0x7E, - 0xFB, - 0x0A, - 0x20, - 0x49, - 0x49, - 0x3F, - 0x0A, - 0x0A, - 0x3F, - 0x20, - 0x0A, - 0x20, - 0x0A, - 0x3F, - 0x7E, - 0x6A, - 0x0A, - 0x0A, - 0xA9, - 0x48, - 0x48, - 0x5B, - 0x0A, - 0x20, - 0x28, - 0x49, - 0x20, - 0x0A, - 0x84, - 0x49, - 0x7E, - 0x0A, - 0x0A, - 0x7C, - 0x49, - 0x23, - 0x49, - 0x5B, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x7D, - 0x28, - 0x0A, - 0x0A, - 0x7E, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0xBE, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x05, - 0x7D, - 0x00, - 0x0E, - 0x31, - 0x49, - 0x49, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x04, - 0x48, - 0x00, - 0x08, - 0xBC, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x48, - 0xBC, - 0x7C, - 0x00, - 0x00, - 0x19, - 0x76, - 0x00, - 0x12, - 0xDC, - 0xA0, - 0xA0, - 0xDC, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0xA0, - 0x75, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0x76, - 0xDC, - 0x05, - 0x76, - 0x00, - 0x09, - 0xDD, - 0x76, - 0x76, - 0xDD, - 0x77, - 0xDD, - 0x77, - 0x77, - 0xDD, - 0x00, - 0x06, - 0x77, - 0x05, - 0x76, - 0x00, - 0x17, - 0x77, - 0x76, - 0x76, - 0x76, - 0x49, - 0x76, - 0x77, - 0xBD, - 0x77, - 0x49, - 0x77, - 0x76, - 0x77, - 0x77, - 0xBE, - 0x5A, - 0xA6, - 0xD7, - 0xD7, - 0xD7, - 0xE2, - 0xB2, - 0xED, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x1F, - 0xEE, - 0xED, - 0xE2, - 0xE2, - 0xEE, - 0xED, - 0xD7, - 0xD7, - 0xE2, - 0xB2, - 0xE2, - 0xEC, - 0xEC, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xB0, - 0xA9, - 0x7D, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x7C, - 0xBC, - 0xBC, - 0x76, - 0xBD, - 0x00, - 0x09, - 0x49, - 0x00, - 0x19, - 0x7D, - 0x7D, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x77, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x19, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x10, - 0x00, - 0x04, - 0x36, - 0x00, - 0x03, - 0x15, - 0x15, - 0x1A, - 0x00, - 0x04, - 0x36, - 0x00, - 0x03, - 0x0F, - 0x12, - 0x14, - 0x00, - 0x04, - 0x36, - 0x00, - 0x0F, - 0x1A, - 0x15, - 0x15, - 0x1C, - 0x36, - 0x36, - 0x36, - 0x1A, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x17, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x54, - 0x49, - 0x49, - 0x49, - 0x7C, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x49, - 0x31, - 0x54, - 0x0A, - 0x5B, - 0x7E, - 0x49, - 0x49, - 0x27, - 0x0A, - 0x20, - 0x49, - 0x7E, - 0x0A, - 0x0A, - 0x84, - 0x7E, - 0x7E, - 0xFC, - 0x0A, - 0x0A, - 0x3F, - 0x7E, - 0x7E, - 0x5B, - 0x0A, - 0x3F, - 0x48, - 0x84, - 0x0A, - 0x0A, - 0xA9, - 0x49, - 0x7E, - 0x20, - 0x0A, - 0xA9, - 0x49, - 0x7E, - 0x20, - 0x0A, - 0x2F, - 0x23, - 0x7E, - 0x7D, - 0x5B, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x7D, - 0x32, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0x29, - 0x7D, - 0x29, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0x4A, - 0x04, - 0x7D, - 0x00, - 0x15, - 0x49, - 0x31, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x7E, - 0xBC, - 0x7E, - 0x00, - 0x06, - 0x48, - 0x01, - 0x7E, - 0x01, - 0x48, - 0x00, - 0x00, - 0x06, - 0x76, - 0x00, - 0x0A, - 0xA1, - 0x76, - 0x76, - 0xA1, - 0xDD, - 0x76, - 0xDD, - 0x76, - 0xDD, - 0xA1, - 0x06, - 0x76, - 0x00, - 0x03, - 0xDD, - 0xDD, - 0xA1, - 0x00, - 0x06, - 0x76, - 0x01, - 0xA1, - 0x04, - 0x76, - 0x00, - 0x10, - 0xDC, - 0x76, - 0xA1, - 0xDC, - 0x76, - 0x76, - 0xDC, - 0xA1, - 0x76, - 0xA1, - 0x76, - 0xDD, - 0xA1, - 0xA1, - 0x76, - 0xDD, - 0x0A, - 0x77, - 0x00, - 0x10, - 0xDD, - 0x76, - 0x76, - 0xDD, - 0x77, - 0xBD, - 0xA1, - 0xDD, - 0x76, - 0xDD, - 0x76, - 0xDD, - 0x76, - 0x49, - 0x49, - 0xDD, - 0x05, - 0x77, - 0x00, - 0x09, - 0xDE, - 0xA6, - 0xD7, - 0xD1, - 0xD7, - 0xD1, - 0xE2, - 0xED, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x10, - 0xEE, - 0xFF, - 0xEE, - 0xED, - 0xE2, - 0xE2, - 0x6B, - 0xFF, - 0xD1, - 0xE3, - 0xD1, - 0xB2, - 0xB2, - 0xE2, - 0xB2, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x03, - 0xC6, - 0x7B, - 0x4A, - 0x00, - 0x05, - 0x48, - 0x00, - 0x0B, - 0xBC, - 0xBC, - 0x48, - 0xDC, - 0xBD, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x07, - 0xBE, - 0x00, - 0x15, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x77, - 0x7D, - 0x49, - 0x49, - 0x1B, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x12, - 0x10, - 0x00, - 0x0A, - 0x36, - 0x00, - 0x05, - 0x1A, - 0x0E, - 0x16, - 0x12, - 0x10, - 0x00, - 0x0A, - 0x36, - 0x00, - 0x62, - 0x1A, - 0x12, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x19, - 0xBE, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x31, - 0x49, - 0x31, - 0x7E, - 0x7E, - 0x7C, - 0x0A, - 0x20, - 0x28, - 0x49, - 0x7E, - 0x7E, - 0x54, - 0x0A, - 0x5B, - 0x49, - 0x23, - 0x31, - 0xFB, - 0x0A, - 0x20, - 0x49, - 0x7E, - 0x20, - 0x0A, - 0x7C, - 0x7E, - 0xBD, - 0x7E, - 0x7B, - 0x0A, - 0x3F, - 0x48, - 0x48, - 0xBC, - 0x20, - 0x0A, - 0x7B, - 0x3F, - 0x0A, - 0x5B, - 0x49, - 0x7E, - 0xBD, - 0x3F, - 0x0A, - 0x46, - 0x7E, - 0x7E, - 0x20, - 0x0A, - 0xA9, - 0xBD, - 0x7E, - 0x49, - 0x5B, - 0x0A, - 0x5B, - 0x29, - 0x7D, - 0x7D, - 0x7E, - 0x0A, - 0x0A, - 0x7E, - 0x23, - 0x7E, - 0x23, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0x29, - 0x04, - 0x7D, - 0x00, - 0x13, - 0x49, - 0x31, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x00, - 0x04, - 0x48, - 0x00, - 0x07, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x76, - 0xDD, - 0x76, - 0xDD, - 0xA1, - 0x76, - 0x76, - 0x76, - 0xA1, - 0x76, - 0xDD, - 0xDD, - 0x77, - 0x77, - 0x77, - 0xDD, - 0x77, - 0xDD, - 0x77, - 0xDD, - 0x77, - 0xDD, - 0x04, - 0x77, - 0x01, - 0xDD, - 0x0B, - 0x76, - 0x01, - 0xDC, - 0x01, - 0xA1, - 0x09, - 0x76, - 0x00, - 0x03, - 0xDD, - 0x76, - 0xDD, - 0x00, - 0x0B, - 0x77, - 0x00, - 0x1E, - 0xDD, - 0xDD, - 0x76, - 0xA1, - 0x77, - 0x49, - 0xDD, - 0x76, - 0xDD, - 0x77, - 0x77, - 0xBD, - 0xDD, - 0x76, - 0x77, - 0xA1, - 0x77, - 0xDD, - 0x77, - 0x77, - 0x5A, - 0xA6, - 0xD7, - 0xD7, - 0xE3, - 0xD1, - 0xE2, - 0xB2, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x0F, - 0xEE, - 0xEE, - 0xED, - 0xB2, - 0xE2, - 0xB2, - 0xFF, - 0xEE, - 0xE3, - 0xD7, - 0xB2, - 0xE2, - 0xE2, - 0xE2, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x2F, - 0xF4, - 0x7B, - 0x7F, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0xBD, - 0xBD, - 0x48, - 0xDC, - 0x76, - 0xBD, - 0x49, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x49, - 0x49, - 0x77, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x23, - 0x14, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x10, - 0x00, - 0x0A, - 0x36, - 0x00, - 0x06, - 0x17, - 0x12, - 0x0E, - 0x12, - 0x14, - 0x1C, - 0x09, - 0x36, - 0x00, - 0x08, - 0x1A, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x13, - 0x1E, - 0x04, - 0x7D, - 0x00, - 0x53, - 0x49, - 0xBD, - 0x7D, - 0xBD, - 0x31, - 0x49, - 0x7C, - 0x0A, - 0x20, - 0x28, - 0x7E, - 0x49, - 0x7E, - 0x54, - 0x0A, - 0x5B, - 0x7D, - 0x49, - 0xBD, - 0x27, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x3F, - 0x0A, - 0x3F, - 0x27, - 0x7E, - 0x7E, - 0x6A, - 0x0A, - 0x3F, - 0x7E, - 0x48, - 0x7E, - 0xA9, - 0x0A, - 0x0A, - 0x0A, - 0x3F, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0x20, - 0x0A, - 0x84, - 0x7E, - 0x7E, - 0x20, - 0x0A, - 0x2F, - 0x7E, - 0x49, - 0x7D, - 0x5B, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x7D, - 0x7E, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x4A, - 0x7F, - 0x7D, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x29, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x14, - 0x49, - 0xBD, - 0x49, - 0x23, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x76, - 0x7E, - 0x48, - 0x0A, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x76, - 0xDD, - 0x76, - 0x77, - 0xDD, - 0xA1, - 0xDD, - 0x76, - 0x76, - 0xDD, - 0x76, - 0x77, - 0xDD, - 0x00, - 0x0B, - 0x77, - 0x01, - 0xDF, - 0x07, - 0x77, - 0x01, - 0xDD, - 0x0A, - 0x76, - 0x00, - 0x05, - 0xDD, - 0x76, - 0xA1, - 0x76, - 0xDD, - 0x00, - 0x04, - 0x76, - 0x00, - 0x03, - 0x77, - 0x77, - 0xDD, - 0x00, - 0x0A, - 0x77, - 0x00, - 0x09, - 0xDD, - 0x49, - 0xA1, - 0xDD, - 0xDD, - 0x76, - 0xBD, - 0x76, - 0x49, - 0x00, - 0x04, - 0x76, - 0x00, - 0x22, - 0xDD, - 0xBD, - 0x77, - 0x76, - 0x77, - 0x5A, - 0xB7, - 0xD7, - 0xD7, - 0xCB, - 0xD1, - 0xD1, - 0xB2, - 0xED, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xED, - 0xE2, - 0xE2, - 0xFF, - 0xFF, - 0xD1, - 0xD7, - 0xE2, - 0xB2, - 0xE2, - 0xB2, - 0xED, - 0x04, - 0xFF, - 0x00, - 0x04, - 0x56, - 0x42, - 0xBF, - 0x49, - 0x05, - 0xBD, - 0x00, - 0x26, - 0x76, - 0x48, - 0x76, - 0x76, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0xBE, - 0x7D, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x19, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0F, - 0x09, - 0x36, - 0x00, - 0x07, - 0x10, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x15, - 0x00, - 0x09, - 0x36, - 0x00, - 0x0C, - 0x15, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x17, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x05, - 0x49, - 0x00, - 0x46, - 0x7D, - 0x7C, - 0x0A, - 0x0A, - 0x7E, - 0x31, - 0xBD, - 0x7E, - 0x54, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x7D, - 0x27, - 0x0A, - 0x20, - 0x7E, - 0x7E, - 0x7C, - 0x3F, - 0x0A, - 0x0A, - 0x20, - 0xA3, - 0x3F, - 0x0A, - 0xA3, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x5B, - 0x0A, - 0x0A, - 0x7C, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x3F, - 0x0A, - 0x84, - 0x7E, - 0x7E, - 0x20, - 0x0A, - 0x7C, - 0x49, - 0x49, - 0x7D, - 0x5B, - 0x0A, - 0x5B, - 0x29, - 0x7D, - 0x7D, - 0x7E, - 0x0A, - 0x0A, - 0x7E, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x30, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x04, - 0x4A, - 0x01, - 0xBE, - 0x05, - 0x7D, - 0x00, - 0x15, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x31, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x04, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x04, - 0xBD, - 0x01, - 0x49, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xBD, - 0x76, - 0x76, - 0x77, - 0xDD, - 0x77, - 0xDD, - 0x77, - 0x76, - 0x49, - 0x49, - 0x00, - 0x0D, - 0x77, - 0x00, - 0x0D, - 0xBE, - 0x77, - 0xDF, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x77, - 0xDD, - 0x49, - 0x00, - 0x04, - 0x76, - 0x00, - 0x13, - 0xBD, - 0x77, - 0xDD, - 0xBD, - 0x76, - 0xBD, - 0x76, - 0x76, - 0xDD, - 0x76, - 0xBD, - 0xBD, - 0xA1, - 0x77, - 0x77, - 0xDD, - 0x77, - 0x77, - 0xDD, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1D, - 0xBD, - 0x77, - 0xDD, - 0x77, - 0x76, - 0x49, - 0x76, - 0x49, - 0xDD, - 0x77, - 0xBD, - 0x49, - 0xDD, - 0x77, - 0x77, - 0xDD, - 0x76, - 0xA1, - 0x76, - 0xBF, - 0xA7, - 0xCD, - 0xE2, - 0xE3, - 0xD7, - 0xD7, - 0xE2, - 0xED, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x0E, - 0xEE, - 0xED, - 0xED, - 0xE2, - 0xE2, - 0xEE, - 0xFF, - 0xEE, - 0xD1, - 0xD1, - 0xEC, - 0xE2, - 0xB2, - 0xED, - 0x04, - 0xFF, - 0x00, - 0x13, - 0x6B, - 0xB8, - 0xBF, - 0x7D, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0xBD, - 0x76, - 0x76, - 0x76, - 0x77, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x06, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x06, - 0xBE, - 0x00, - 0x0C, - 0x7D, - 0x4A, - 0xBE, - 0x7D, - 0x31, - 0x14, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x12, - 0x15, - 0x07, - 0x1A, - 0x00, - 0x09, - 0x10, - 0x13, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x10, - 0x00, - 0x07, - 0x1A, - 0x00, - 0x08, - 0x10, - 0x12, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x1D, - 0x04, - 0x7D, - 0x00, - 0x4D, - 0x49, - 0x49, - 0x31, - 0xBD, - 0x31, - 0x49, - 0x49, - 0x28, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x49, - 0x7D, - 0x54, - 0x0A, - 0xFC, - 0x49, - 0x31, - 0x49, - 0xA9, - 0x0A, - 0x20, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x84, - 0x54, - 0x20, - 0x0A, - 0x0A, - 0x0A, - 0x3F, - 0x7E, - 0x7E, - 0xBD, - 0x7C, - 0x20, - 0x0A, - 0x0A, - 0x7B, - 0xBD, - 0x23, - 0x31, - 0x7E, - 0x20, - 0x0A, - 0x84, - 0x49, - 0x7E, - 0x20, - 0x0A, - 0x28, - 0x7D, - 0x7D, - 0x7D, - 0x5B, - 0x0A, - 0x5B, - 0x7D, - 0x7D, - 0x29, - 0x7E, - 0x0A, - 0x20, - 0x31, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x06, - 0x7D, - 0x00, - 0x0D, - 0x49, - 0x31, - 0x49, - 0x31, - 0x49, - 0x7D, - 0x23, - 0x49, - 0xF8, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x04, - 0xBD, - 0x48, - 0x7E, - 0x48, - 0x05, - 0x7E, - 0x00, - 0x0C, - 0xBD, - 0x49, - 0xBD, - 0xF8, - 0x49, - 0xBD, - 0x7D, - 0xBD, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x76, - 0x76, - 0xDD, - 0xDD, - 0x05, - 0x77, - 0x00, - 0x06, - 0x49, - 0x77, - 0xDD, - 0x77, - 0x77, - 0xDD, - 0x08, - 0x77, - 0x00, - 0x08, - 0xBE, - 0x77, - 0xDF, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xDF, - 0x08, - 0x77, - 0x01, - 0x49, - 0x04, - 0x77, - 0x00, - 0x05, - 0x49, - 0x49, - 0x76, - 0x76, - 0xBD, - 0x00, - 0x04, - 0x76, - 0x00, - 0x09, - 0xDD, - 0x76, - 0xBD, - 0xA1, - 0x77, - 0xDD, - 0x77, - 0x77, - 0xDD, - 0x00, - 0x05, - 0x77, - 0x00, - 0x05, - 0xDD, - 0x77, - 0x49, - 0x77, - 0xDD, - 0x00, - 0x09, - 0x77, - 0x00, - 0x1F, - 0xBD, - 0x49, - 0xDF, - 0x61, - 0xCA, - 0xE2, - 0xD7, - 0xD7, - 0xD1, - 0xE2, - 0xB2, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xED, - 0xB2, - 0xE2, - 0x6B, - 0xFF, - 0xFF, - 0xB2, - 0xE2, - 0xB2, - 0xB2, - 0xEC, - 0xED, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x3E, - 0x6B, - 0x54, - 0xBF, - 0x7D, - 0x49, - 0xDD, - 0x49, - 0x77, - 0xDD, - 0xBD, - 0x76, - 0x76, - 0x76, - 0x77, - 0x77, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x78, - 0x78, - 0xBF, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x19, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x12, - 0x12, - 0x0E, - 0x12, - 0x12, - 0x0E, - 0x12, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x07, - 0x12, - 0x00, - 0x10, - 0x0E, - 0x12, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x19, - 0x7D, - 0x7D, - 0x7D, - 0x31, - 0x49, - 0x31, - 0x7E, - 0x04, - 0x49, - 0x00, - 0x13, - 0x7D, - 0x48, - 0x0A, - 0x0A, - 0x2F, - 0x7D, - 0x7D, - 0x49, - 0x54, - 0x0A, - 0x3F, - 0x7D, - 0x49, - 0x49, - 0x7C, - 0x0A, - 0x20, - 0x7E, - 0xBD, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x2E, - 0x7C, - 0x5B, - 0x0A, - 0x3F, - 0x7E, - 0xBD, - 0x7E, - 0x3F, - 0x0A, - 0x3F, - 0x20, - 0x0A, - 0x27, - 0x7D, - 0x49, - 0x49, - 0x3F, - 0x0A, - 0x27, - 0x7D, - 0x23, - 0x20, - 0x0A, - 0x84, - 0x7D, - 0x7D, - 0x7D, - 0xFC, - 0x0A, - 0x3F, - 0x29, - 0x29, - 0x7D, - 0x7E, - 0x0A, - 0x0A, - 0x49, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x06, - 0x7D, - 0x00, - 0x12, - 0x49, - 0x7D, - 0x49, - 0xBD, - 0x7D, - 0x49, - 0x7E, - 0x49, - 0xF8, - 0x23, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x06, - 0x7E, - 0x00, - 0x0F, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x76, - 0xBD, - 0x76, - 0x76, - 0xBD, - 0x77, - 0x49, - 0x77, - 0x49, - 0xDD, - 0x0B, - 0x77, - 0x00, - 0x0C, - 0xDF, - 0x77, - 0x78, - 0xBE, - 0x77, - 0x78, - 0xBE, - 0x78, - 0xBE, - 0x77, - 0x4A, - 0xDF, - 0x04, - 0x77, - 0x01, - 0xBE, - 0x08, - 0x77, - 0x00, - 0x18, - 0x49, - 0x77, - 0x49, - 0xBD, - 0x76, - 0xDD, - 0x76, - 0xBD, - 0xDD, - 0x49, - 0xDD, - 0x76, - 0x77, - 0x49, - 0x76, - 0x49, - 0x49, - 0xDD, - 0x77, - 0x76, - 0xDD, - 0x77, - 0x77, - 0xDD, - 0x0A, - 0x77, - 0x00, - 0x33, - 0xDD, - 0x77, - 0x77, - 0x4A, - 0xDE, - 0x9F, - 0xE2, - 0xE2, - 0xB2, - 0xE2, - 0xE2, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xED, - 0xED, - 0xB2, - 0xB2, - 0xB2, - 0xFF, - 0xFF, - 0xEE, - 0xEC, - 0xB2, - 0xEC, - 0xEC, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xA3, - 0xBF, - 0x77, - 0x49, - 0x49, - 0x77, - 0xBD, - 0x49, - 0xDD, - 0xBD, - 0xBD, - 0x76, - 0x49, - 0x77, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x94, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0xBE, - 0x7D, - 0x4A, - 0x31, - 0x17, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x16, - 0x0E, - 0x12, - 0x16, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x14, - 0x32, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0x31, - 0x49, - 0x31, - 0x49, - 0x7D, - 0x7D, - 0x32, - 0x0A, - 0x0A, - 0x0A, - 0x6A, - 0x7E, - 0x7E, - 0x20, - 0x0A, - 0x0A, - 0x54, - 0x28, - 0x7E, - 0x5B, - 0x0A, - 0x20, - 0x7E, - 0x7E, - 0x7C, - 0x5B, - 0xA9, - 0xBC, - 0x7E, - 0x48, - 0x3F, - 0x0A, - 0x5B, - 0x7E, - 0x7E, - 0x6A, - 0x0A, - 0x20, - 0x7E, - 0x6A, - 0x0A, - 0x20, - 0x7E, - 0x7D, - 0x7D, - 0x3F, - 0x0A, - 0xFB, - 0x7D, - 0x7D, - 0x20, - 0x0A, - 0x0A, - 0xFC, - 0x49, - 0x23, - 0x3F, - 0x0A, - 0x0A, - 0x3F, - 0x28, - 0x7D, - 0x6A, - 0x0A, - 0x20, - 0x7D, - 0x30, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0x29, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x49, - 0x49, - 0x23, - 0x49, - 0x31, - 0x04, - 0x49, - 0x01, - 0x7E, - 0x04, - 0x49, - 0x01, - 0xBD, - 0x01, - 0xBD, - 0x04, - 0x7E, - 0x00, - 0x0C, - 0xBD, - 0x7E, - 0xBD, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x04, - 0x7D, - 0x05, - 0x49, - 0x00, - 0x00, - 0x00, - 0x06, - 0x76, - 0x76, - 0xBD, - 0x76, - 0x76, - 0xBD, - 0x05, - 0x77, - 0x00, - 0x03, - 0xDD, - 0x77, - 0xDD, - 0x00, - 0x07, - 0x77, - 0x00, - 0x12, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xDF, - 0xBE, - 0xBE, - 0x77, - 0xDF, - 0x77, - 0x4A, - 0x77, - 0x77, - 0xBE, - 0x05, - 0x77, - 0x00, - 0x17, - 0x49, - 0x77, - 0x77, - 0x77, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x77, - 0x76, - 0xBD, - 0x76, - 0xDD, - 0x49, - 0x77, - 0xDD, - 0x49, - 0xDD, - 0x76, - 0xDD, - 0x76, - 0x49, - 0xBD, - 0x00, - 0x0C, - 0x77, - 0x01, - 0xBD, - 0x04, - 0x77, - 0x00, - 0x55, - 0x5A, - 0xA7, - 0xE3, - 0xE2, - 0xEC, - 0xB2, - 0xE2, - 0xB2, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xED, - 0xEC, - 0xE2, - 0xE2, - 0xFF, - 0xFF, - 0xFF, - 0xED, - 0xB2, - 0xE2, - 0xEC, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xED, - 0xA3, - 0xBF, - 0x77, - 0xDD, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x77, - 0xDD, - 0x49, - 0xBD, - 0x49, - 0x77, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0xBF, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x4A, - 0x4A, - 0xBF, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x1E, - 0x13, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x61, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x13, - 0x1B, - 0x49, - 0x31, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x28, - 0x0A, - 0x20, - 0x3F, - 0x0A, - 0x20, - 0x0A, - 0x0A, - 0x20, - 0x3F, - 0x0A, - 0x0A, - 0x20, - 0x0A, - 0x0A, - 0x5B, - 0x7E, - 0x7E, - 0x84, - 0x0A, - 0x0A, - 0x20, - 0x3F, - 0x0A, - 0x0A, - 0x0A, - 0xA9, - 0x7E, - 0x27, - 0x0A, - 0x0A, - 0x84, - 0x49, - 0x49, - 0x3F, - 0x0A, - 0x54, - 0x7D, - 0x7D, - 0x20, - 0x0A, - 0x2F, - 0x7D, - 0x7D, - 0x20, - 0x0A, - 0x3F, - 0x0A, - 0x0A, - 0x20, - 0x0A, - 0x0A, - 0x54, - 0x0A, - 0x0A, - 0x20, - 0x0A, - 0x0A, - 0x5B, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x18, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0x7D, - 0xF8, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x31, - 0xBD, - 0x49, - 0x49, - 0x7E, - 0x49, - 0xBD, - 0xBD, - 0xBD, - 0x04, - 0x49, - 0x00, - 0x07, - 0x7D, - 0x49, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x49, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x00, - 0x00, - 0x00, - 0x17, - 0xBD, - 0x76, - 0x76, - 0x76, - 0xBD, - 0x77, - 0x76, - 0x77, - 0xDD, - 0x49, - 0xDD, - 0x49, - 0xBD, - 0x49, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x4A, - 0x00, - 0x04, - 0x77, - 0x00, - 0x0A, - 0xBE, - 0xDF, - 0x77, - 0xBE, - 0x77, - 0x78, - 0xBE, - 0x4A, - 0x77, - 0xBE, - 0x04, - 0x77, - 0x01, - 0xBE, - 0x05, - 0x77, - 0x01, - 0xBE, - 0x06, - 0x77, - 0x00, - 0x14, - 0xBD, - 0xBD, - 0x49, - 0x49, - 0x77, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x77, - 0x49, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0x04, - 0x77, - 0x00, - 0x1A, - 0x49, - 0x77, - 0x77, - 0x49, - 0x77, - 0x77, - 0x5A, - 0x73, - 0xC6, - 0xE2, - 0xE2, - 0xB2, - 0xEC, - 0xE2, - 0xEC, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xED, - 0x6B, - 0xE2, - 0xB2, - 0x04, - 0xFF, - 0x00, - 0x34, - 0xED, - 0xE2, - 0xB2, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x6B, - 0x54, - 0x78, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0xBD, - 0x49, - 0xDD, - 0x49, - 0xBD, - 0xBD, - 0x76, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0xBF, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0x1B, - 0x04, - 0x0E, - 0x01, - 0x16, - 0x04, - 0x0E, - 0x00, - 0x1C, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x16, - 0x0E, - 0x16, - 0x0E, - 0x19, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x42, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x7E, - 0x3F, - 0xFC, - 0x31, - 0x7B, - 0x20, - 0x20, - 0x51, - 0x84, - 0xBD, - 0x84, - 0x3F, - 0x0A, - 0x20, - 0x54, - 0x7E, - 0x7E, - 0xBD, - 0x48, - 0xFC, - 0x3F, - 0x20, - 0x0A, - 0x20, - 0x3F, - 0x6A, - 0x7E, - 0x7E, - 0x7B, - 0x3F, - 0x5B, - 0x7D, - 0x7D, - 0x7D, - 0x7E, - 0x3F, - 0x3F, - 0x7E, - 0x7D, - 0x5B, - 0x3F, - 0x7C, - 0xBE, - 0x7D, - 0x3F, - 0x5B, - 0xBE, - 0x6A, - 0x3F, - 0x0A, - 0x3F, - 0x6A, - 0xBE, - 0x2F, - 0x3F, - 0x20, - 0x20, - 0x54, - 0x7E, - 0x4A, - 0x7D, - 0xBE, - 0x06, - 0x7D, - 0x00, - 0x13, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x49, - 0x7D, - 0x00, - 0x06, - 0x49, - 0x01, - 0x7D, - 0x01, - 0x49, - 0x06, - 0x7D, - 0x00, - 0x0D, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0x49, - 0xBD, - 0x06, - 0x49, - 0x04, - 0x77, - 0x00, - 0x19, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0x77, - 0xBE, - 0xDF, - 0x77, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x00, - 0x27, - 0x77, - 0x00, - 0x27, - 0x49, - 0x77, - 0x49, - 0x49, - 0x78, - 0x75, - 0xC9, - 0xD7, - 0xD1, - 0xB2, - 0xB2, - 0xB2, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xED, - 0xED, - 0xB2, - 0xB2, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xE2, - 0xEC, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x56, - 0xB8, - 0xBF, - 0x00, - 0x05, - 0xBD, - 0x00, - 0x2D, - 0x49, - 0x49, - 0x77, - 0xBD, - 0x76, - 0x49, - 0x77, - 0x77, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0xDF, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x1B, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x12, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x14, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x19, - 0x49, - 0x49, - 0x0A, - 0x7D, - 0x00, - 0x04, - 0x7E, - 0x49, - 0x49, - 0x7D, - 0x04, - 0x49, - 0x00, - 0x13, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x04, - 0x49, - 0x01, - 0x23, - 0x04, - 0x7D, - 0x00, - 0x1B, - 0xBE, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0x29, - 0x7D, - 0x7D, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0xBE, - 0x7D, - 0xF8, - 0x29, - 0x7D, - 0x29, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x08, - 0x7D, - 0x00, - 0x06, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x04, - 0x49, - 0x08, - 0x7D, - 0x00, - 0x10, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x05, - 0x49, - 0x00, - 0x00, - 0x00, - 0x09, - 0xDD, - 0x49, - 0xBD, - 0x76, - 0xDD, - 0x49, - 0x77, - 0x77, - 0x49, - 0x00, - 0x0B, - 0x77, - 0x00, - 0x22, - 0xBE, - 0x77, - 0x77, - 0x77, - 0xDF, - 0x77, - 0x77, - 0xBE, - 0x4A, - 0xDF, - 0xBE, - 0x78, - 0xDF, - 0x78, - 0x78, - 0xBE, - 0x78, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x0A, - 0x77, - 0x00, - 0x07, - 0x78, - 0xBE, - 0xDF, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x00, - 0x0D, - 0x77, - 0x00, - 0x0B, - 0xBE, - 0x78, - 0x9C, - 0xCB, - 0xE3, - 0xD1, - 0xEC, - 0xB2, - 0xED, - 0xED, - 0xED, - 0x00, - 0x05, - 0xEE, - 0x00, - 0x16, - 0xED, - 0xED, - 0xED, - 0xB2, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xED, - 0xEC, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xCC, - 0x7B, - 0x78, - 0xBD, - 0xBD, - 0x76, - 0x04, - 0xBD, - 0x00, - 0x24, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x4A, - 0x78, - 0x7F, - 0x78, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x7F, - 0x7F, - 0x29, - 0x7F, - 0x30, - 0x4A, - 0x7F, - 0x1B, - 0x04, - 0x0E, - 0x00, - 0x1D, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x13, - 0x19, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x00, - 0x1E, - 0x49, - 0x7D, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x1D, - 0xBE, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x7E, - 0x7C, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0x30, - 0xBE, - 0x7F, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0x7D, - 0x29, - 0x29, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x00, - 0x11, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x00, - 0x03, - 0xBE, - 0x7D, - 0xBE, - 0x00, - 0x06, - 0x7D, - 0x00, - 0x03, - 0xBE, - 0x7D, - 0x4A, - 0x00, - 0x06, - 0x7D, - 0x06, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x51, - 0xBD, - 0x76, - 0x77, - 0xBD, - 0x49, - 0x77, - 0x49, - 0x77, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0xBE, - 0x4A, - 0x77, - 0xDF, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0xDF, - 0x4A, - 0x78, - 0xBE, - 0x78, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x78, - 0xDF, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0xDF, - 0x4A, - 0xDF, - 0x77, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0xDF, - 0x78, - 0xDF, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0xDF, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x00, - 0x04, - 0x77, - 0x00, - 0x0A, - 0x78, - 0x74, - 0xD2, - 0xE3, - 0xD1, - 0xB2, - 0xB2, - 0xEC, - 0xED, - 0xED, - 0x05, - 0xEE, - 0x05, - 0xED, - 0x04, - 0xFF, - 0x00, - 0x0E, - 0xEE, - 0xB2, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x56, - 0xB8, - 0x78, - 0xBD, - 0xBD, - 0x76, - 0x48, - 0x05, - 0xBD, - 0x00, - 0x45, - 0x76, - 0xBD, - 0xBD, - 0x77, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0xBF, - 0x78, - 0x78, - 0x78, - 0xBF, - 0x4A, - 0x78, - 0xBF, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x1E, - 0x14, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x16, - 0x14, - 0x1B, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x01, - 0x49, - 0x01, - 0xBD, - 0x04, - 0x7E, - 0x00, - 0x05, - 0xBD, - 0x7E, - 0xBD, - 0x48, - 0xF9, - 0x00, - 0x04, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x06, - 0x49, - 0x7E, - 0xBD, - 0xBD, - 0x49, - 0x49, - 0x0A, - 0x7D, - 0x00, - 0x15, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBD, - 0x20, - 0x0A, - 0x84, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x04, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x1C, - 0x7D, - 0x00, - 0x0D, - 0xBE, - 0x4A, - 0x7D, - 0xBE, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x7D, - 0xBE, - 0x49, - 0xBE, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x06, - 0xBE, - 0x00, - 0x03, - 0x49, - 0x4A, - 0xBE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDD, - 0x49, - 0x76, - 0x49, - 0x09, - 0x77, - 0x00, - 0x04, - 0xBE, - 0x77, - 0xBE, - 0x4A, - 0x04, - 0xBE, - 0x00, - 0x0F, - 0x4A, - 0x77, - 0xDF, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0xDF, - 0x78, - 0x4A, - 0x78, - 0xBE, - 0x78, - 0x78, - 0xDF, - 0x00, - 0x04, - 0x78, - 0x00, - 0x38, - 0x4A, - 0x78, - 0x78, - 0x78, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0xDF, - 0x77, - 0x78, - 0x77, - 0xDF, - 0x78, - 0xDF, - 0x4A, - 0x77, - 0x77, - 0x4A, - 0xBE, - 0x78, - 0xDF, - 0xDF, - 0x4A, - 0x78, - 0xBE, - 0x78, - 0xDF, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0xBE, - 0x78, - 0x75, - 0xCD, - 0xCB, - 0xD7, - 0xE2, - 0xEC, - 0xED, - 0xB2, - 0xED, - 0xED, - 0x05, - 0xEE, - 0x04, - 0xED, - 0x05, - 0xFF, - 0x00, - 0x30, - 0xEC, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xD1, - 0xBA, - 0x62, - 0xBE, - 0x49, - 0x76, - 0xDC, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0xBD, - 0xBD, - 0x76, - 0x49, - 0x77, - 0x77, - 0xBE, - 0x78, - 0xBF, - 0x4A, - 0x78, - 0x7F, - 0x4A, - 0x78, - 0x7F, - 0x78, - 0x4A, - 0x78, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x29, - 0x05, - 0x7F, - 0x00, - 0x07, - 0x31, - 0x19, - 0x13, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x00, - 0x04, - 0x0E, - 0x00, - 0x32, - 0x16, - 0x0E, - 0x0E, - 0x0E, - 0x16, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x0E, - 0x0E, - 0x19, - 0x1E, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0xBD, - 0x49, - 0x49, - 0x7E, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x04, - 0x7D, - 0x01, - 0xBE, - 0x05, - 0x7D, - 0x00, - 0x16, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0x49, - 0x20, - 0x0A, - 0x84, - 0x4A, - 0x7D, - 0x29, - 0x29, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0x14, - 0x7D, - 0x01, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x15, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x29, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x49, - 0xBD, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0x49, - 0x00, - 0x04, - 0x77, - 0x00, - 0x11, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0xBE, - 0x78, - 0xDF, - 0x00, - 0x06, - 0x78, - 0x01, - 0x4A, - 0x04, - 0x78, - 0x00, - 0x35, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0xDF, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0x77, - 0xDF, - 0x4A, - 0xBE, - 0x78, - 0x77, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x78, - 0xBC, - 0xAF, - 0xD7, - 0xD1, - 0xE2, - 0xB2, - 0xEC, - 0x6B, - 0xED, - 0xED, - 0x00, - 0x05, - 0xEE, - 0x04, - 0xED, - 0x04, - 0xFF, - 0x00, - 0x23, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x6B, - 0xB0, - 0xCA, - 0x9F, - 0xDC, - 0x7E, - 0x48, - 0x48, - 0x48, - 0x76, - 0x48, - 0xBD, - 0x48, - 0xBD, - 0xBD, - 0x49, - 0x77, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0xBF, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x4A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x06, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x30, - 0x4A, - 0x04, - 0x7F, - 0x00, - 0x15, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x1E, - 0x17, - 0x13, - 0x0E, - 0x0E, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x0E, - 0x12, - 0x00, - 0x04, - 0x0E, - 0x01, - 0x17, - 0x01, - 0x1D, - 0x04, - 0x7D, - 0x00, - 0x1A, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x04, - 0x49, - 0x7E, - 0x49, - 0x49, - 0x06, - 0x7D, - 0x00, - 0x1B, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x4A, - 0x32, - 0xFB, - 0x29, - 0x29, - 0xBE, - 0x30, - 0x7D, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x00, - 0x1C, - 0x7D, - 0x04, - 0x4A, - 0x00, - 0x1F, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x49, - 0xDD, - 0x77, - 0x49, - 0x05, - 0x77, - 0x00, - 0x03, - 0x49, - 0x77, - 0x49, - 0x00, - 0x07, - 0x77, - 0x00, - 0x3E, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0x78, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x4A, - 0xBE, - 0x78, - 0xDF, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xBF, - 0x78, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x4A, - 0x04, - 0x77, - 0x00, - 0x0B, - 0x78, - 0x49, - 0xB7, - 0xE3, - 0xEC, - 0xE2, - 0xE2, - 0xB2, - 0xB2, - 0xED, - 0xED, - 0x00, - 0x05, - 0xEE, - 0x04, - 0xED, - 0x05, - 0xFF, - 0x00, - 0x0E, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xD7, - 0xD7, - 0x83, - 0xC9, - 0x48, - 0xBD, - 0xBD, - 0x06, - 0x7E, - 0x00, - 0x29, - 0xBD, - 0x49, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x7F, - 0x4A, - 0x78, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x29, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x1E, - 0x19, - 0x17, - 0x13, - 0x00, - 0x09, - 0x0E, - 0x00, - 0x0A, - 0x13, - 0x14, - 0x19, - 0x1E, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x06, - 0x49, - 0x00, - 0x1A, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0xBD, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x49, - 0x49, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x04, - 0x29, - 0x29, - 0xBE, - 0x29, - 0x04, - 0x4A, - 0x00, - 0x1B, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x30, - 0xBE, - 0x7F, - 0x4A, - 0x30, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x0F, - 0x7D, - 0x00, - 0x14, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x06, - 0x4A, - 0x00, - 0x12, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x7D, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDD, - 0x49, - 0x77, - 0x77, - 0x49, - 0x00, - 0x09, - 0x77, - 0x00, - 0x04, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x05, - 0x77, - 0x00, - 0x0E, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x78, - 0xDF, - 0x78, - 0xBE, - 0x78, - 0x4A, - 0x0A, - 0x78, - 0x00, - 0x32, - 0xBF, - 0x78, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x78, - 0xA0, - 0xC6, - 0xEC, - 0xB2, - 0xE2, - 0xE2, - 0xB2, - 0xEC, - 0x6B, - 0xED, - 0x04, - 0xEE, - 0x04, - 0xED, - 0x05, - 0xFF, - 0x00, - 0x0F, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xB2, - 0xED, - 0xFF, - 0xC6, - 0x75, - 0x7D, - 0x49, - 0x49, - 0x00, - 0x06, - 0xBD, - 0x00, - 0x34, - 0x49, - 0xBE, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x7F, - 0x78, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x7D, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0xBE, - 0x1E, - 0x1B, - 0x19, - 0x17, - 0x17, - 0x14, - 0x17, - 0x17, - 0x19, - 0x1B, - 0x1E, - 0x7D, - 0xBE, - 0x07, - 0x7D, - 0x00, - 0x1D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x49, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x1D, - 0xBE, - 0x7D, - 0x7D, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x29, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x00, - 0x08, - 0x7D, - 0x01, - 0x49, - 0x05, - 0x7D, - 0x01, - 0xBE, - 0x08, - 0x7D, - 0x00, - 0x12, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x29, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x0D, - 0x4A, - 0x00, - 0x0D, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x49, - 0xDD, - 0x49, - 0x00, - 0x0D, - 0x77, - 0x00, - 0x1A, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x78, - 0xDF, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0xDF, - 0x78, - 0x4A, - 0x04, - 0x78, - 0x01, - 0xBF, - 0x08, - 0x78, - 0x00, - 0x2A, - 0x4A, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x78, - 0xBE, - 0x78, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0x77, - 0xB6, - 0xD1, - 0xEC, - 0xE2, - 0xE2, - 0xB2, - 0xB2, - 0xEC, - 0xED, - 0x04, - 0xEE, - 0x00, - 0x05, - 0xED, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x11, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xCD, - 0x75, - 0xBE, - 0xBE, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x13, - 0x49, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x19, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x00, - 0x0E, - 0x49, - 0x7D, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0xBD, - 0x05, - 0x7E, - 0x01, - 0x49, - 0x01, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x17, - 0xBE, - 0x7D, - 0x4A, - 0x7F, - 0x4A, - 0x29, - 0x4A, - 0x29, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7D, - 0x7F, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0x4A, - 0x00, - 0x05, - 0x29, - 0x07, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x0A, - 0x7D, - 0x00, - 0x15, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x12, - 0x4A, - 0x00, - 0x0B, - 0xBE, - 0x4A, - 0x29, - 0x4A, - 0xBE, - 0x29, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0xBD, - 0x00, - 0x00, - 0x00, - 0x04, - 0x77, - 0x00, - 0x0F, - 0x49, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x00, - 0x04, - 0x77, - 0x00, - 0x0E, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xDF, - 0x78, - 0xDF, - 0x78, - 0xBE, - 0x0B, - 0x78, - 0x00, - 0x42, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xDF, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0xA6, - 0xE3, - 0xEC, - 0xE2, - 0xE2, - 0xE2, - 0xB2, - 0xB2, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xED, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x6B, - 0xED, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x09, - 0xEE, - 0x56, - 0xAF, - 0xE5, - 0xBE, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x00, - 0x05, - 0x49, - 0x00, - 0x1F, - 0xBE, - 0x4A, - 0x7F, - 0xBF, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x03, - 0xBE, - 0x7D, - 0xBE, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x07, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0D, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x08, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x16, - 0x4A, - 0xBE, - 0x7F, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0x7F, - 0x29, - 0xBE, - 0x29, - 0x7F, - 0x4A, - 0x7D, - 0x29, - 0x29, - 0x0D, - 0x7D, - 0x01, - 0x49, - 0x09, - 0x7D, - 0x00, - 0x13, - 0x29, - 0x7D, - 0x29, - 0x29, - 0x29, - 0x7D, - 0x30, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0x4A, - 0x29, - 0x4A, - 0x4A, - 0x7F, - 0x00, - 0x0B, - 0x4A, - 0x00, - 0x18, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x49, - 0xF8, - 0x49, - 0x49, - 0x00, - 0x00, - 0x00, - 0x03, - 0x49, - 0xDD, - 0x49, - 0x00, - 0x05, - 0x77, - 0x01, - 0x49, - 0x06, - 0x77, - 0x00, - 0x11, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x06, - 0x4A, - 0x00, - 0x07, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x00, - 0x07, - 0x78, - 0x00, - 0x2E, - 0x7F, - 0x78, - 0x78, - 0xBF, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x4A, - 0xBE, - 0x77, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x78, - 0xBF, - 0xC9, - 0xD1, - 0xED, - 0xD1, - 0xD1, - 0xE2, - 0xE2, - 0xB2, - 0xED, - 0xED, - 0x04, - 0xEE, - 0x00, - 0x04, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x04, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x10, - 0xEE, - 0xD1, - 0xAF, - 0xA0, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0xBE, - 0x4A, - 0x05, - 0x7F, - 0x00, - 0x1D, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x01, - 0x49, - 0x07, - 0x7D, - 0x01, - 0x49, - 0x09, - 0x7D, - 0x01, - 0xBE, - 0x05, - 0x7D, - 0x00, - 0x04, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x04, - 0x7E, - 0x00, - 0x23, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x49, - 0xF8, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x29, - 0x4A, - 0xBE, - 0x7F, - 0x7F, - 0x7F, - 0x30, - 0x7F, - 0x30, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0x00, - 0x05, - 0x7D, - 0x01, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x08, - 0x7D, - 0x00, - 0x12, - 0x29, - 0x7D, - 0x29, - 0x30, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0x4A, - 0x7D, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x04, - 0x4A, - 0x00, - 0x0A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x04, - 0x4A, - 0x00, - 0x15, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0x7D, - 0x7D, - 0xBE, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0xBD, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x04, - 0x49, - 0x00, - 0x0C, - 0x77, - 0x49, - 0x77, - 0x7D, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0x04, - 0xBE, - 0x00, - 0x0C, - 0x4A, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x06, - 0x4A, - 0x01, - 0xBE, - 0x04, - 0x4A, - 0x01, - 0x78, - 0x01, - 0x4A, - 0x04, - 0x78, - 0x01, - 0xBF, - 0x05, - 0x78, - 0x00, - 0x37, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0x76, - 0xCD, - 0xE2, - 0xB2, - 0xE2, - 0xD1, - 0xD1, - 0xE2, - 0xE2, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x24, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x2D, - 0x6B, - 0xD1, - 0xAF, - 0x75, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x10, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x06, - 0x7D, - 0x00, - 0x09, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0xBD, - 0x00, - 0x05, - 0x7E, - 0x01, - 0xBD, - 0x04, - 0x7E, - 0x04, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x20, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x7F, - 0x30, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0x7F, - 0x29, - 0xBE, - 0x29, - 0x29, - 0x7D, - 0x7D, - 0x7D, - 0x31, - 0x7D, - 0x31, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x0A, - 0x7D, - 0x00, - 0x0D, - 0x29, - 0x29, - 0x7D, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x00, - 0x08, - 0x4A, - 0x00, - 0x03, - 0x7F, - 0x4A, - 0x7F, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x0A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x05, - 0x4A, - 0x00, - 0x06, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0x05, - 0x7D, - 0x00, - 0x06, - 0x49, - 0xBD, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x00, - 0x00, - 0x01, - 0xBD, - 0x01, - 0xBD, - 0x04, - 0x49, - 0x00, - 0x05, - 0xBD, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x32, - 0xBE, - 0x77, - 0x7D, - 0x49, - 0xBE, - 0xBE, - 0x77, - 0x7D, - 0x49, - 0xBE, - 0x7D, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x07, - 0xBE, - 0x00, - 0x22, - 0x4A, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xA8, - 0xE3, - 0xEC, - 0xE2, - 0xE2, - 0xD1, - 0xD1, - 0xD1, - 0xE2, - 0xE2, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x04, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x06, - 0xED, - 0xD1, - 0xAF, - 0x74, - 0x4A, - 0x4A, - 0x04, - 0xBE, - 0x00, - 0x07, - 0x7D, - 0xBE, - 0x7D, - 0x49, - 0xBE, - 0x4A, - 0x4A, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x0D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x00, - 0x0E, - 0x7D, - 0x00, - 0x11, - 0x49, - 0x49, - 0x31, - 0x49, - 0x31, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x0C, - 0x7D, - 0x00, - 0x07, - 0x49, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0xF9, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x03, - 0x49, - 0x49, - 0x49, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x15, - 0x29, - 0x7D, - 0x4A, - 0x30, - 0x4A, - 0x7F, - 0x29, - 0x7F, - 0x4A, - 0x7F, - 0x30, - 0x7F, - 0x30, - 0x4A, - 0x30, - 0x4A, - 0x7F, - 0xBE, - 0x29, - 0x7D, - 0x29, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x0B, - 0x7D, - 0x00, - 0x0B, - 0x4A, - 0x30, - 0xBE, - 0x4A, - 0x29, - 0x7F, - 0x7F, - 0xBE, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x0A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x7F, - 0xBF, - 0x04, - 0x7F, - 0x00, - 0x08, - 0xBF, - 0x7F, - 0x78, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x08, - 0x4A, - 0x01, - 0x29, - 0x06, - 0x7D, - 0x00, - 0x0A, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x00, - 0x00, - 0x01, - 0x7E, - 0x05, - 0xBD, - 0x00, - 0x08, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x1D, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x7D, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x08, - 0x4A, - 0x00, - 0x2D, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x29, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xA1, - 0x9C, - 0x76, - 0x4A, - 0x4A, - 0xBE, - 0x73, - 0xCB, - 0xB2, - 0xD1, - 0xB2, - 0xE2, - 0xD1, - 0xD7, - 0xD1, - 0xE2, - 0xE2, - 0x6B, - 0xED, - 0x00, - 0x06, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x03, - 0xED, - 0xED, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x11, - 0xEE, - 0xE2, - 0xCD, - 0xA8, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x4A, - 0xBE, - 0x00, - 0x07, - 0x7F, - 0x00, - 0x0D, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x29, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x08, - 0x7D, - 0x04, - 0x49, - 0x00, - 0x07, - 0x7E, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x0B, - 0x7D, - 0x01, - 0x29, - 0x06, - 0x7D, - 0x00, - 0x10, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x28, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x31, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x08, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0x7F, - 0x29, - 0x7F, - 0x4A, - 0x06, - 0x7F, - 0x00, - 0x0A, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0x7D, - 0x29, - 0x07, - 0x7D, - 0x01, - 0x49, - 0x07, - 0x7D, - 0x01, - 0x29, - 0x01, - 0xBE, - 0x05, - 0x29, - 0x00, - 0x1F, - 0xBE, - 0x29, - 0x4A, - 0x7D, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBF, - 0x2A, - 0xBF, - 0xBF, - 0x2A, - 0x7F, - 0x2A, - 0x7F, - 0x2A, - 0x7F, - 0xBF, - 0x7F, - 0x2A, - 0x7F, - 0x4A, - 0x00, - 0x04, - 0x7F, - 0x05, - 0x4A, - 0x00, - 0x06, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x04, - 0x7D, - 0x00, - 0x0C, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x00, - 0x00, - 0x00, - 0x03, - 0x48, - 0x7E, - 0x48, - 0x00, - 0x05, - 0xBD, - 0x00, - 0x04, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x07, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x18, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x06, - 0x4A, - 0x00, - 0x21, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x29, - 0x4A, - 0x9D, - 0x90, - 0xC3, - 0x71, - 0x7F, - 0x7F, - 0x4A, - 0x74, - 0xC6, - 0xE2, - 0xE2, - 0xE2, - 0xEC, - 0x00, - 0x04, - 0xD1, - 0x00, - 0x08, - 0xE2, - 0xE2, - 0x6B, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x08, - 0xEE, - 0xCD, - 0x72, - 0x77, - 0x7F, - 0x7D, - 0x29, - 0xBE, - 0x07, - 0x7D, - 0x00, - 0x0F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x29, - 0x7F, - 0x29, - 0x4A, - 0x30, - 0x4A, - 0x29, - 0x4A, - 0x00, - 0x04, - 0x7D, - 0x01, - 0x31, - 0x08, - 0x7D, - 0x00, - 0x12, - 0x49, - 0x31, - 0xBD, - 0x31, - 0xF8, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x09, - 0x7D, - 0x00, - 0x11, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0xF9, - 0x48, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x03, - 0x29, - 0x7D, - 0x29, - 0x00, - 0x04, - 0x4A, - 0x07, - 0x7F, - 0x00, - 0x0D, - 0x4A, - 0x7F, - 0x30, - 0x7F, - 0x30, - 0x4A, - 0x30, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x29, - 0x29, - 0x00, - 0x0B, - 0x7D, - 0x00, - 0x1D, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0xBE, - 0x7F, - 0x7D, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0xBF, - 0x2A, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x15, - 0x2A, - 0xBF, - 0x7F, - 0x2A, - 0x7F, - 0x78, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x05, - 0x49, - 0x7D, - 0xF8, - 0x49, - 0xBD, - 0x00, - 0x05, - 0x7E, - 0x00, - 0x04, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x07, - 0xBC, - 0x48, - 0xBD, - 0x48, - 0x76, - 0x7E, - 0x48, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x09, - 0x49, - 0x49, - 0xBD, - 0x7D, - 0xBD, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x08, - 0x49, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x08, - 0x7D, - 0x00, - 0x16, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x06, - 0x4A, - 0x00, - 0x24, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x7F, - 0x92, - 0x8C, - 0xD8, - 0xC3, - 0x71, - 0x4A, - 0xBF, - 0x4A, - 0x48, - 0xC3, - 0xE3, - 0xE2, - 0xB2, - 0x6B, - 0xE2, - 0xD1, - 0xE2, - 0xD1, - 0xE2, - 0xD1, - 0xB2, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xEC, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x10, - 0xCB, - 0x71, - 0x77, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x4A, - 0x7D, - 0x06, - 0x7F, - 0x00, - 0x19, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0xBD, - 0x49, - 0x00, - 0x06, - 0x7D, - 0x01, - 0x49, - 0x0D, - 0x7D, - 0x00, - 0x04, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0x04, - 0x7E, - 0x00, - 0x09, - 0xBC, - 0x28, - 0x48, - 0xBC, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x04, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x0E, - 0x7F, - 0x00, - 0x1D, - 0xBE, - 0x7F, - 0xBE, - 0x29, - 0xBE, - 0x30, - 0x29, - 0x29, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x30, - 0xBE, - 0x30, - 0xBE, - 0x30, - 0x4A, - 0x7F, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x2A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x2A, - 0x7F, - 0x2A, - 0x7F, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0x7F, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x29, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x06, - 0x7D, - 0x00, - 0x08, - 0x49, - 0x49, - 0x49, - 0xF8, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x05, - 0x7E, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x76, - 0x48, - 0x48, - 0x48, - 0x76, - 0x76, - 0xBD, - 0xBD, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0x08, - 0x49, - 0x00, - 0x28, - 0x7D, - 0x49, - 0x49, - 0x49, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x11, - 0x4A, - 0x00, - 0x13, - 0x5A, - 0x72, - 0xAD, - 0xB4, - 0xC5, - 0xC3, - 0xD5, - 0x48, - 0x5A, - 0x4A, - 0x4A, - 0xA6, - 0xCC, - 0xEC, - 0xD1, - 0xEC, - 0xEC, - 0x6B, - 0xB2, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x05, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xEC, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x09, - 0x56, - 0xB7, - 0xBC, - 0x4A, - 0x4A, - 0x29, - 0xBE, - 0x7D, - 0xBE, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x18, - 0xBE, - 0x4A, - 0x7F, - 0x29, - 0x7F, - 0x29, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0xBD, - 0x49, - 0x31, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0x04, - 0x49, - 0x00, - 0x06, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x31, - 0x49, - 0x07, - 0x7D, - 0x00, - 0x05, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x1A, - 0x49, - 0x7D, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x48, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0xBC, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0x10, - 0x7F, - 0x00, - 0x16, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0x29, - 0x7F, - 0x4A, - 0xBE, - 0x30, - 0x4A, - 0x7D, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x29, - 0xBE, - 0x07, - 0x4A, - 0x01, - 0x7F, - 0x01, - 0x4A, - 0x05, - 0x7F, - 0x00, - 0x05, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0x4A, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x09, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x0D, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x06, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x09, - 0x49, - 0x01, - 0xBD, - 0x01, - 0x49, - 0x00, - 0x00, - 0x01, - 0xBD, - 0x04, - 0x76, - 0x00, - 0x2A, - 0xBD, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0xBD, - 0xBD, - 0x49, - 0x49, - 0x77, - 0x77, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0x49, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x04, - 0x4A, - 0x00, - 0x04, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x05, - 0x4A, - 0x00, - 0x0D, - 0x78, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xBF, - 0x78, - 0x7F, - 0x78, - 0xBF, - 0x4A, - 0x78, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x1C, - 0x62, - 0x9F, - 0xC3, - 0xC3, - 0xAC, - 0xC5, - 0xA5, - 0xE5, - 0xBF, - 0x78, - 0xBF, - 0x75, - 0xB6, - 0xEF, - 0xED, - 0xB2, - 0xB2, - 0xED, - 0xEE, - 0xED, - 0xED, - 0xB2, - 0xE2, - 0xE2, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xEC, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x1D, - 0xF0, - 0xCA, - 0x74, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x7D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x1B, - 0x7E, - 0x49, - 0x31, - 0xBD, - 0x31, - 0x49, - 0x31, - 0x49, - 0x31, - 0x49, - 0xF8, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x7E, - 0x49, - 0x49, - 0xBD, - 0x00, - 0x04, - 0x49, - 0x00, - 0x19, - 0xF8, - 0x49, - 0x7E, - 0x7E, - 0xBD, - 0x48, - 0x7E, - 0xBC, - 0x48, - 0xBC, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x29, - 0xBE, - 0x7F, - 0x29, - 0x00, - 0x10, - 0x7F, - 0x00, - 0x23, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7D, - 0x4A, - 0x30, - 0xBE, - 0x29, - 0x7F, - 0x7D, - 0x4A, - 0x7D, - 0x7F, - 0x29, - 0x4A, - 0x4A, - 0xBE, - 0x30, - 0x4A, - 0x7D, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x7F, - 0x7F, - 0xBF, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x07, - 0x2A, - 0x7F, - 0x7F, - 0x2A, - 0xBF, - 0x7F, - 0xBF, - 0x00, - 0x0A, - 0x7F, - 0x00, - 0x0C, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7D, - 0x7F, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x11, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x07, - 0x7D, - 0x00, - 0x00, - 0x00, - 0x04, - 0x76, - 0xBD, - 0x76, - 0xDD, - 0x04, - 0x76, - 0x00, - 0x0C, - 0xDD, - 0xBD, - 0xDD, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xDD, - 0x49, - 0x77, - 0x77, - 0x49, - 0x05, - 0x77, - 0x00, - 0x21, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x77, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x00, - 0x06, - 0x78, - 0x01, - 0xBF, - 0x05, - 0x78, - 0x01, - 0x4A, - 0x06, - 0x78, - 0x00, - 0x1B, - 0x62, - 0x71, - 0xCD, - 0xC3, - 0xAC, - 0xB4, - 0xB4, - 0xA8, - 0x5A, - 0x5A, - 0x78, - 0x5A, - 0x47, - 0xC9, - 0xD1, - 0xEE, - 0x6B, - 0xB2, - 0xED, - 0xFF, - 0xEE, - 0xEE, - 0xED, - 0xB2, - 0xB2, - 0xED, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x0B, - 0xFE, - 0xB0, - 0x73, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x7D, - 0x00, - 0x04, - 0x49, - 0x00, - 0x10, - 0x7D, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x0E, - 0x49, - 0x07, - 0x7D, - 0x00, - 0x1C, - 0x49, - 0x31, - 0x49, - 0x7E, - 0x49, - 0xBD, - 0x31, - 0x49, - 0xF8, - 0x49, - 0x7D, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0x48, - 0x7E, - 0xBC, - 0x48, - 0x7E, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x05, - 0xBE, - 0x4A, - 0x7F, - 0x7F, - 0xBE, - 0x00, - 0x12, - 0x7F, - 0x00, - 0x13, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x30, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x04, - 0x7F, - 0x01, - 0x4A, - 0x01, - 0xBF, - 0x05, - 0x7F, - 0x00, - 0x09, - 0x2A, - 0x7F, - 0x2A, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x2A, - 0xBF, - 0x00, - 0x09, - 0x7F, - 0x00, - 0x1A, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7D, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x06, - 0x7D, - 0x01, - 0xBE, - 0x01, - 0x7D, - 0x04, - 0xBE, - 0x01, - 0x4A, - 0x04, - 0xBE, - 0x01, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x16, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0x76, - 0xBD, - 0xDD, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0x49, - 0x76, - 0xBD, - 0x77, - 0xDD, - 0x77, - 0xBD, - 0x77, - 0x77, - 0x77, - 0x49, - 0x04, - 0x77, - 0x00, - 0x27, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0xDF, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xBF, - 0x78, - 0x78, - 0x00, - 0x04, - 0xBF, - 0x00, - 0x23, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x62, - 0x73, - 0xC3, - 0xD2, - 0xC5, - 0xB4, - 0xB4, - 0x97, - 0xBE, - 0xBE, - 0xBF, - 0x5A, - 0x62, - 0x77, - 0xA6, - 0x0B, - 0xEE, - 0xEF, - 0xD1, - 0xB2, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x04, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0x07, - 0xFF, - 0x00, - 0x1C, - 0xEE, - 0xC6, - 0x71, - 0x49, - 0xDF, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x7D, - 0x77, - 0xBD, - 0x49, - 0x49, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x4A, - 0xBE, - 0x0B, - 0x7D, - 0x00, - 0x21, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x49, - 0xBD, - 0x49, - 0x31, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xF9, - 0x48, - 0xBC, - 0x48, - 0x00, - 0x05, - 0x7E, - 0x01, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x0B, - 0x4A, - 0x29, - 0x7D, - 0x29, - 0x29, - 0xBE, - 0x30, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x0C, - 0x7F, - 0x00, - 0x2E, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x30, - 0x7F, - 0x30, - 0x4A, - 0x30, - 0x4A, - 0x7D, - 0x4A, - 0x30, - 0xBE, - 0x30, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBF, - 0x2A, - 0x7F, - 0x7F, - 0xBF, - 0x2A, - 0xBF, - 0x7F, - 0x2A, - 0x7F, - 0x2A, - 0x7F, - 0x7F, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x4A, - 0x04, - 0x7F, - 0x01, - 0x30, - 0x04, - 0x7F, - 0x00, - 0x0F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x30, - 0x7D, - 0x4A, - 0x29, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0xBE, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x09, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x0C, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x09, - 0x49, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x1E, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x77, - 0xDD, - 0xBD, - 0x77, - 0x77, - 0x77, - 0x49, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x04, - 0x4A, - 0x00, - 0x08, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0xBE, - 0x78, - 0x4A, - 0x06, - 0x78, - 0x00, - 0x09, - 0xBF, - 0x78, - 0x78, - 0x7F, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x2A, - 0x00, - 0x07, - 0xBF, - 0x00, - 0x1C, - 0xB1, - 0x73, - 0xB6, - 0xD2, - 0xC5, - 0xB4, - 0xAC, - 0xA5, - 0xA7, - 0x73, - 0xBF, - 0xBF, - 0xBF, - 0x5A, - 0x5A, - 0x74, - 0xB9, - 0x56, - 0xD7, - 0xD1, - 0xB2, - 0x6B, - 0xED, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xED, - 0x0A, - 0xFF, - 0x00, - 0x1D, - 0xCC, - 0x51, - 0x76, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x00, - 0x16, - 0x7D, - 0x00, - 0x19, - 0x49, - 0x31, - 0x49, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0x7E, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x49, - 0x49, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x0A, - 0x4A, - 0x7D, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x06, - 0x7F, - 0x00, - 0x0E, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x30, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x04, - 0x7F, - 0x00, - 0x0B, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x00, - 0x09, - 0x7F, - 0x00, - 0x04, - 0xBF, - 0x2A, - 0x2A, - 0x2A, - 0x08, - 0x7F, - 0x00, - 0x15, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x30, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7D, - 0x7F, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0xBE, - 0x7D, - 0xBE, - 0x00, - 0x06, - 0x7D, - 0x00, - 0x07, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x11, - 0x4A, - 0x01, - 0x78, - 0x01, - 0x4A, - 0x00, - 0x00, - 0x00, - 0x05, - 0x49, - 0xBD, - 0x77, - 0x49, - 0x77, - 0x00, - 0x05, - 0x49, - 0x00, - 0x38, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x77, - 0x77, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x78, - 0xBF, - 0x78, - 0x04, - 0xBF, - 0x00, - 0x28, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x5A, - 0xBF, - 0x62, - 0x74, - 0xB6, - 0xCB, - 0xCD, - 0xAC, - 0xC5, - 0xAD, - 0xB7, - 0x93, - 0x9F, - 0x49, - 0x5A, - 0x78, - 0x5A, - 0xBF, - 0xBE, - 0xC9, - 0xCC, - 0xE2, - 0xD1, - 0xEF, - 0xB2, - 0x6B, - 0xED, - 0xED, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0x0B, - 0xFF, - 0x00, - 0x20, - 0xB2, - 0xCA, - 0x47, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0x77, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x7F, - 0x78, - 0xBF, - 0x7F, - 0x7F, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7D, - 0xBE, - 0x29, - 0x07, - 0x7D, - 0x01, - 0x29, - 0x08, - 0x7D, - 0x00, - 0x13, - 0x49, - 0x7D, - 0x49, - 0x31, - 0x49, - 0x7E, - 0x31, - 0x7E, - 0x31, - 0x7E, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x00, - 0x06, - 0x7E, - 0x01, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x1D, - 0x29, - 0xBE, - 0x29, - 0x30, - 0x7D, - 0x7F, - 0x4A, - 0x7F, - 0x29, - 0x7F, - 0x30, - 0x7F, - 0x30, - 0x4A, - 0xBE, - 0x7F, - 0x7F, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0x29, - 0x4A, - 0x7F, - 0x30, - 0x7F, - 0x7D, - 0x7F, - 0x30, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x00, - 0x0C, - 0x7F, - 0x00, - 0x11, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x1A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x09, - 0x4A, - 0x00, - 0x0F, - 0x78, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0xBF, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x78, - 0x00, - 0x00, - 0x00, - 0x06, - 0x49, - 0x00, - 0x0F, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x00, - 0x04, - 0x49, - 0x00, - 0x06, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x04, - 0x77, - 0x00, - 0x06, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x04, - 0x4A, - 0x00, - 0x42, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x78, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x78, - 0x78, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0xBF, - 0x7F, - 0xBF, - 0xBF, - 0x4A, - 0x49, - 0x77, - 0x5A, - 0x68, - 0xB6, - 0xD2, - 0xD2, - 0xAC, - 0xAC, - 0xCD, - 0x83, - 0xC6, - 0xB9, - 0xCA, - 0x48, - 0x5A, - 0x78, - 0xBF, - 0x62, - 0x76, - 0xB0, - 0xB2, - 0xD1, - 0xD1, - 0x56, - 0xEF, - 0xB2, - 0xB2, - 0xED, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x0A, - 0xFF, - 0x00, - 0x29, - 0xEE, - 0xB0, - 0xBB, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0x49, - 0x49, - 0x49, - 0x77, - 0xBE, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0xBF, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0x29, - 0x29, - 0x29, - 0x7D, - 0xBE, - 0x29, - 0x00, - 0x08, - 0x7D, - 0x00, - 0x0E, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0xBD, - 0x08, - 0x7E, - 0x01, - 0x49, - 0x01, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x07, - 0xBE, - 0x29, - 0x30, - 0x29, - 0x4A, - 0x29, - 0xBE, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x16, - 0x4A, - 0x7F, - 0xBE, - 0x30, - 0x4A, - 0x7D, - 0x4A, - 0x30, - 0xBE, - 0x29, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x05, - 0x7F, - 0x00, - 0x08, - 0xBF, - 0x4A, - 0x7F, - 0x4A, - 0xBF, - 0x7F, - 0x4A, - 0xBF, - 0x0B, - 0x7F, - 0x01, - 0x4A, - 0x08, - 0x7F, - 0x00, - 0x1B, - 0x30, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x4A, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x0B, - 0x4A, - 0x00, - 0x12, - 0x78, - 0x78, - 0xBF, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x78, - 0x2A, - 0x78, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x78, - 0xBF, - 0x78, - 0x00, - 0x00, - 0x00, - 0x03, - 0xBD, - 0x49, - 0xBD, - 0x00, - 0x04, - 0x49, - 0x00, - 0x09, - 0x7D, - 0x49, - 0x49, - 0x77, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x00, - 0x08, - 0x49, - 0x00, - 0x0E, - 0x7D, - 0x49, - 0xBE, - 0x49, - 0x77, - 0x49, - 0x77, - 0xBE, - 0x49, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x77, - 0x06, - 0xBE, - 0x00, - 0x35, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x5A, - 0x78, - 0x50, - 0x70, - 0x61, - 0xAE, - 0xB0, - 0xD2, - 0xC5, - 0xC5, - 0xCB, - 0xFF, - 0xF0, - 0x83, - 0xCD, - 0xBB, - 0x62, - 0x78, - 0x4A, - 0x78, - 0xB1, - 0xCA, - 0xE2, - 0x00, - 0x05, - 0xD1, - 0x01, - 0xEF, - 0x01, - 0x6B, - 0x07, - 0xEE, - 0x0B, - 0xFF, - 0x00, - 0x03, - 0xAF, - 0x42, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x26, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x78, - 0x4A, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x30, - 0xBE, - 0x29, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0x29, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x29, - 0x05, - 0x7D, - 0x00, - 0x09, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7E, - 0xBD, - 0x00, - 0x07, - 0x7E, - 0x00, - 0x03, - 0xBD, - 0x49, - 0x49, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x0B, - 0x29, - 0x7D, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x00, - 0x07, - 0x7F, - 0x00, - 0x14, - 0x4A, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x08, - 0x7F, - 0x00, - 0x0C, - 0x2A, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x4A, - 0x04, - 0x7F, - 0x00, - 0x1D, - 0xBE, - 0x7F, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x7F, - 0x00, - 0x07, - 0x4A, - 0x00, - 0x1A, - 0x78, - 0x4A, - 0x7F, - 0x4A, - 0xBF, - 0x78, - 0x7F, - 0x78, - 0x2A, - 0x78, - 0x78, - 0x5A, - 0xBF, - 0x78, - 0xBF, - 0x2A, - 0x78, - 0xBF, - 0x7F, - 0x78, - 0xBF, - 0xBF, - 0x2A, - 0xBF, - 0xBF, - 0x78, - 0x00, - 0x00, - 0x06, - 0x49, - 0x00, - 0x06, - 0x77, - 0x77, - 0x49, - 0xBE, - 0x49, - 0xBE, - 0x05, - 0x49, - 0x00, - 0x0E, - 0xBE, - 0x49, - 0x77, - 0x49, - 0x7D, - 0x77, - 0x49, - 0x77, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0x05, - 0x77, - 0x00, - 0x4B, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0xBE, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x78, - 0xBF, - 0x78, - 0x4A, - 0x78, - 0x5A, - 0x98, - 0x70, - 0x59, - 0x37, - 0x6F, - 0xC5, - 0xCD, - 0xC5, - 0xC3, - 0xCC, - 0x06, - 0xF4, - 0x83, - 0xCD, - 0x6A, - 0x62, - 0x7F, - 0x78, - 0x4A, - 0xB1, - 0x93, - 0xCC, - 0xE2, - 0xD1, - 0xD1, - 0xD7, - 0xD1, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x0B, - 0xFF, - 0x00, - 0x16, - 0xC6, - 0x69, - 0x77, - 0xBE, - 0xDF, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0x4A, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x4A, - 0x4A, - 0x7F, - 0xBF, - 0x78, - 0xBF, - 0x4A, - 0x05, - 0x7F, - 0x00, - 0x10, - 0xBE, - 0x29, - 0x7F, - 0x29, - 0x30, - 0x29, - 0x7F, - 0x29, - 0x30, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0x29, - 0x7D, - 0x29, - 0x09, - 0x7D, - 0x00, - 0x0A, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x7E, - 0x49, - 0x7E, - 0x04, - 0x49, - 0x04, - 0x7D, - 0x00, - 0x08, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x09, - 0x7F, - 0x00, - 0x10, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x29, - 0xBE, - 0x7D, - 0x29, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x04, - 0x7F, - 0x00, - 0x5B, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x7F, - 0xBF, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x7F, - 0x78, - 0x7F, - 0x2A, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x78, - 0xBF, - 0x78, - 0x2A, - 0xBF, - 0xBF, - 0xBF, - 0x5A, - 0x78, - 0xBF, - 0x5A, - 0x78, - 0x5A, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x78, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x49, - 0xBD, - 0x77, - 0x77, - 0x49, - 0x77, - 0x49, - 0x49, - 0xBE, - 0x00, - 0x04, - 0x77, - 0x01, - 0xBE, - 0x06, - 0x77, - 0x00, - 0x05, - 0xBE, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x00, - 0x04, - 0x77, - 0x00, - 0x1D, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x30, - 0x78, - 0x78, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0xBF, - 0x4A, - 0x78, - 0x78, - 0xBF, - 0x78, - 0x4E, - 0x44, - 0x44, - 0x38, - 0x91, - 0xB6, - 0xD2, - 0xC5, - 0xCD, - 0xF4, - 0xFE, - 0xF4, - 0x83, - 0xB9, - 0xBA, - 0x62, - 0xBF, - 0x78, - 0x78, - 0xB1, - 0x3C, - 0xC6, - 0xE2, - 0xD7, - 0xD7, - 0xD1, - 0xB2, - 0x6B, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xED, - 0x0B, - 0xFF, - 0x00, - 0x2C, - 0x83, - 0x51, - 0xBD, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x78, - 0xBE, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x29, - 0x7F, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0x30, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x0B, - 0x7D, - 0x00, - 0x13, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x4A, - 0x4A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x08, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x04, - 0x7F, - 0x00, - 0x15, - 0x4A, - 0x4A, - 0x7F, - 0x29, - 0x7D, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0xBF, - 0x4A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x1B, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x29, - 0x4A, - 0x4A, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x06, - 0x4A, - 0x00, - 0x15, - 0x7F, - 0x4A, - 0x7F, - 0x78, - 0x4A, - 0x4A, - 0x7F, - 0xBF, - 0xBF, - 0x4A, - 0x7F, - 0xBF, - 0xBF, - 0x7F, - 0xBF, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x2A, - 0x00, - 0x06, - 0xBF, - 0x00, - 0x0C, - 0x78, - 0xBF, - 0xBF, - 0x4A, - 0xBF, - 0xBF, - 0xBF, - 0x78, - 0xBF, - 0x4A, - 0xBF, - 0xBF, - 0x00, - 0x00, - 0x00, - 0x03, - 0x49, - 0x49, - 0xBD, - 0x00, - 0x06, - 0x77, - 0x00, - 0x13, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0x00, - 0x0A, - 0x77, - 0x00, - 0x16, - 0xBE, - 0x77, - 0xBE, - 0x4A, - 0x77, - 0xDF, - 0x4A, - 0xBE, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0xDF, - 0x78, - 0x78, - 0x78, - 0xBE, - 0x04, - 0x78, - 0x01, - 0x4A, - 0x05, - 0x78, - 0x00, - 0x22, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x78, - 0x9D, - 0x59, - 0x44, - 0x44, - 0x61, - 0xAD, - 0xD2, - 0xC3, - 0xC6, - 0xF4, - 0xFE, - 0x56, - 0x83, - 0xC6, - 0xB8, - 0x62, - 0xBF, - 0xBF, - 0x78, - 0xB1, - 0xBA, - 0xCD, - 0xE2, - 0xD7, - 0xD1, - 0x6B, - 0xED, - 0xEE, - 0xEE, - 0x05, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xEE, - 0x0B, - 0xFF, - 0x00, - 0x3C, - 0xED, - 0x93, - 0x49, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x78, - 0x4A, - 0x78, - 0xBE, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0xBF, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x30, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x7F, - 0x7D, - 0x7F, - 0x30, - 0x4A, - 0xBE, - 0x30, - 0x29, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x05, - 0x7D, - 0x00, - 0x0D, - 0x29, - 0x7D, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x00, - 0x06, - 0x7F, - 0x00, - 0x13, - 0xBE, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x27, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0xBF, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x29, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x29, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x2F, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0x4A, - 0xBF, - 0x2A, - 0xBF, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0xBF, - 0x2A, - 0xBF, - 0x2A, - 0xBF, - 0x78, - 0x5A, - 0xBF, - 0x5A, - 0x78, - 0x5A, - 0x7F, - 0x5A, - 0x78, - 0xBF, - 0x5A, - 0x78, - 0xBF, - 0x78, - 0x2A, - 0xBF, - 0xBF, - 0xBF, - 0x78, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xBD, - 0xDD, - 0x49, - 0xDD, - 0xBD, - 0x49, - 0x77, - 0x49, - 0x0B, - 0x77, - 0x00, - 0x27, - 0xBE, - 0x77, - 0x77, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0xDF, - 0x77, - 0xBE, - 0x77, - 0xDF, - 0xBE, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x78, - 0xBE, - 0x78, - 0x78, - 0xDF, - 0x78, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0xBE, - 0x00, - 0x08, - 0x78, - 0x01, - 0xBF, - 0x06, - 0x78, - 0x00, - 0x1F, - 0xBF, - 0x50, - 0x61, - 0x41, - 0x44, - 0x37, - 0x92, - 0x8F, - 0xD2, - 0xCD, - 0x83, - 0xF4, - 0xFE, - 0xF0, - 0xCC, - 0x83, - 0xA3, - 0x62, - 0x5A, - 0x5A, - 0xBF, - 0x62, - 0xA0, - 0xB6, - 0xB2, - 0xED, - 0xEE, - 0x6B, - 0x6B, - 0xED, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xEE, - 0x0A, - 0xFF, - 0x00, - 0x30, - 0xEE, - 0xFF, - 0xC9, - 0xDD, - 0xBE, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x78, - 0xDF, - 0x78, - 0x78, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0x4A, - 0x30, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x30, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x29, - 0x7D, - 0xBE, - 0x29, - 0x08, - 0x7D, - 0x01, - 0xBE, - 0x07, - 0x7D, - 0x00, - 0x07, - 0xBE, - 0xBE, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0x00, - 0x0A, - 0x7F, - 0x00, - 0x06, - 0xBF, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x07, - 0x7F, - 0x00, - 0x11, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x0D, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0xBE, - 0x29, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x12, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x05, - 0x4A, - 0x00, - 0x17, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x78, - 0xBF, - 0x7F, - 0xBF, - 0xBF, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x2A, - 0xBF, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x00, - 0x0A, - 0xBF, - 0x01, - 0x78, - 0x05, - 0xBF, - 0x00, - 0x04, - 0x78, - 0xBF, - 0x7F, - 0x78, - 0x00, - 0x00, - 0x00, - 0x0E, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0x49, - 0x77, - 0x49, - 0xDD, - 0x77, - 0x77, - 0x77, - 0x49, - 0x77, - 0x49, - 0x07, - 0x77, - 0x00, - 0x1F, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0xDF, - 0xBE, - 0xBE, - 0x77, - 0xDF, - 0x4A, - 0xDF, - 0x50, - 0xDF, - 0x78, - 0xDF, - 0x78, - 0x4A, - 0x00, - 0x04, - 0x78, - 0x00, - 0x04, - 0x4A, - 0x78, - 0x78, - 0xDF, - 0x08, - 0x78, - 0x00, - 0x25, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x78, - 0xBF, - 0x77, - 0x6F, - 0x41, - 0x59, - 0x44, - 0x70, - 0xA7, - 0xC6, - 0xC6, - 0xC6, - 0x83, - 0xFE, - 0xF0, - 0x83, - 0xC6, - 0xA3, - 0x62, - 0x5A, - 0x5A, - 0xBF, - 0xC0, - 0x71, - 0xCB, - 0xFF, - 0x6B, - 0xEF, - 0xEF, - 0xB2, - 0x24, - 0xEE, - 0xEE, - 0x00, - 0x12, - 0xFF, - 0x00, - 0x0C, - 0xAF, - 0x73, - 0xBF, - 0xDF, - 0x78, - 0xBE, - 0x78, - 0x78, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x05, - 0x77, - 0x00, - 0x3B, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xDF, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x29, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x29, - 0x29, - 0x7D, - 0xBE, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0xBE, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x07, - 0x7F, - 0x00, - 0x1D, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x06, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x04, - 0x4A, - 0x00, - 0x11, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x30, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x78, - 0x7F, - 0x4A, - 0xBF, - 0xBF, - 0xBF, - 0x2A, - 0x78, - 0xBF, - 0x78, - 0x2A, - 0x78, - 0x7F, - 0x78, - 0x2A, - 0xBF, - 0x78, - 0xBF, - 0xBF, - 0x5A, - 0x2A, - 0xBF, - 0x5A, - 0xBF, - 0x5A, - 0xBF, - 0x5A, - 0xBF, - 0x5A, - 0xBF, - 0x5A, - 0x78, - 0x5A, - 0xBF, - 0x5A, - 0x78, - 0x2A, - 0x78, - 0x78, - 0xBF, - 0x4A, - 0x78, - 0x78, - 0x00, - 0x00, - 0x00, - 0x09, - 0x76, - 0xBD, - 0xBD, - 0xBD, - 0xDD, - 0xDD, - 0xDD, - 0x49, - 0x49, - 0x00, - 0x07, - 0x77, - 0x01, - 0xDD, - 0x09, - 0x77, - 0x01, - 0xBE, - 0x01, - 0x77, - 0x04, - 0xBE, - 0x00, - 0x1E, - 0x4A, - 0x4A, - 0xBE, - 0xDF, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0xBE, - 0x78, - 0xDF, - 0x78, - 0xBE, - 0x78, - 0xBE, - 0x78, - 0xDF, - 0x4A, - 0x78, - 0x78, - 0xDF, - 0x0B, - 0x78, - 0x00, - 0x20, - 0xBF, - 0x77, - 0x6F, - 0x41, - 0x44, - 0x44, - 0x59, - 0x60, - 0xCD, - 0xF4, - 0x83, - 0xC6, - 0xF4, - 0xF4, - 0xC6, - 0xB9, - 0xB8, - 0x5A, - 0x5A, - 0xDE, - 0x5A, - 0x75, - 0xAF, - 0xFF, - 0x6B, - 0xD1, - 0xD1, - 0xD1, - 0x6B, - 0xEE, - 0xEE, - 0xEE, - 0x10, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xFF, - 0xCC, - 0x69, - 0xDE, - 0x4A, - 0xDF, - 0x78, - 0x78, - 0x4A, - 0xDF, - 0xDF, - 0x78, - 0x00, - 0x05, - 0x77, - 0x00, - 0x2E, - 0x49, - 0x77, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0xBE, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7D, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x7D, - 0x4A, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x04, - 0x4A, - 0x0B, - 0x7F, - 0x01, - 0xBF, - 0x04, - 0x7F, - 0x00, - 0x13, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x7F, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x00, - 0x06, - 0x7F, - 0x00, - 0x1D, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x00, - 0x09, - 0x4A, - 0x00, - 0x07, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x78, - 0x78, - 0x78, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x10, - 0xBF, - 0x2A, - 0x78, - 0x7F, - 0x78, - 0xBF, - 0xBF, - 0x2A, - 0xBF, - 0xBF, - 0x5A, - 0xBF, - 0xBF, - 0xBF, - 0x5A, - 0x2A, - 0x11, - 0xBF, - 0x00, - 0x08, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x5A, - 0xBF, - 0x00, - 0x00, - 0x00, - 0x07, - 0x76, - 0x76, - 0x76, - 0xBD, - 0x76, - 0xBD, - 0x76, - 0x00, - 0x08, - 0xBD, - 0x00, - 0x08, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x77, - 0x49, - 0x49, - 0x09, - 0x77, - 0x00, - 0x04, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x06, - 0xBE, - 0x00, - 0x0B, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x0A, - 0x78, - 0x78, - 0xDF, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0xDF, - 0x78, - 0xDF, - 0x04, - 0x78, - 0x00, - 0x22, - 0xBE, - 0x78, - 0x78, - 0x77, - 0x6F, - 0x59, - 0x44, - 0x44, - 0x44, - 0x50, - 0xB6, - 0xF4, - 0xF4, - 0x83, - 0x83, - 0xCB, - 0xB9, - 0xAF, - 0x71, - 0xBF, - 0x5A, - 0x5A, - 0xB1, - 0xB6, - 0xFF, - 0xFF, - 0xD7, - 0xE3, - 0xD1, - 0xEF, - 0xEE, - 0xEE, - 0x6B, - 0xEE, - 0x0F, - 0xFF, - 0x00, - 0x12, - 0xEE, - 0xFF, - 0xFF, - 0x56, - 0x93, - 0x5A, - 0xBE, - 0x4A, - 0xDF, - 0x4A, - 0xDF, - 0x78, - 0x4A, - 0xBE, - 0xBE, - 0x77, - 0x77, - 0x49, - 0x04, - 0x77, - 0x00, - 0x34, - 0xBE, - 0xBE, - 0x78, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x08, - 0x7F, - 0x00, - 0x34, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x30, - 0xBE, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0x29, - 0x4A, - 0x7D, - 0x4A, - 0x30, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x04, - 0x4A, - 0x00, - 0x1B, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x7F, - 0xBF, - 0x4A, - 0x4A, - 0xBF, - 0x78, - 0x4A, - 0x4A, - 0x7F, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x2A, - 0x78, - 0xBF, - 0x7F, - 0x5A, - 0xBF, - 0x7F, - 0x00, - 0x05, - 0xBF, - 0x00, - 0x04, - 0x2A, - 0xBF, - 0xBF, - 0xBF, - 0x16, - 0x5A, - 0x04, - 0x62, - 0x00, - 0x00, - 0x00, - 0x08, - 0x48, - 0xBC, - 0x76, - 0x48, - 0x76, - 0x76, - 0xBD, - 0x76, - 0x07, - 0xBD, - 0x01, - 0x76, - 0x08, - 0xBD, - 0x00, - 0x19, - 0x49, - 0x49, - 0xDD, - 0x77, - 0x49, - 0x49, - 0x77, - 0x49, - 0x49, - 0x77, - 0x49, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x00, - 0x04, - 0x77, - 0x01, - 0xBE, - 0x01, - 0x77, - 0x04, - 0xBE, - 0x00, - 0x06, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0x04, - 0x4A, - 0x00, - 0x24, - 0x78, - 0x78, - 0x78, - 0x4A, - 0x4A, - 0x76, - 0x60, - 0x59, - 0x44, - 0x44, - 0x37, - 0x70, - 0x9F, - 0xC6, - 0x0B, - 0x0B, - 0xCC, - 0x83, - 0xC6, - 0xB9, - 0x9F, - 0x4A, - 0x5A, - 0x5A, - 0x62, - 0xB0, - 0xFF, - 0x6B, - 0xCB, - 0xD1, - 0xEF, - 0xED, - 0x6B, - 0xB2, - 0xB2, - 0xEE, - 0x10, - 0xFF, - 0x00, - 0x1A, - 0xEE, - 0xFF, - 0xFF, - 0xC9, - 0xBF, - 0x78, - 0x78, - 0x78, - 0xDF, - 0x4A, - 0xDF, - 0x77, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0x77, - 0x49, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x04, - 0x4A, - 0x00, - 0x26, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x05, - 0x7F, - 0x00, - 0x33, - 0x4A, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x00, - 0x0B, - 0x4A, - 0x01, - 0x7F, - 0x01, - 0x78, - 0x04, - 0x4A, - 0x00, - 0x0C, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x78, - 0x4A, - 0x2A, - 0x78, - 0x2A, - 0x78, - 0x2A, - 0x0A, - 0xBF, - 0x00, - 0x06, - 0x5A, - 0xBF, - 0x2A, - 0xBF, - 0x5A, - 0xBF, - 0x0E, - 0x5A, - 0x01, - 0x62, - 0x01, - 0x5A, - 0x0C, - 0x62, - 0x01, - 0x98, - 0x01, - 0x62, - 0x00, - 0x00, - 0x00, - 0x06, - 0xBC, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x06, - 0x48, - 0x00, - 0x0A, - 0x7E, - 0x48, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0xBD, - 0x48, - 0xBD, - 0x7E, - 0x04, - 0xBD, - 0x00, - 0x06, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0xBD, - 0x06, - 0x49, - 0x00, - 0x42, - 0xBD, - 0x49, - 0xBD, - 0x7D, - 0x49, - 0xBE, - 0x49, - 0x7D, - 0x77, - 0x49, - 0x7D, - 0xBE, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x75, - 0x9E, - 0x41, - 0x44, - 0x44, - 0x44, - 0x70, - 0x69, - 0x83, - 0x0B, - 0x0B, - 0xCC, - 0x83, - 0xC6, - 0xB9, - 0xB6, - 0xBA, - 0x62, - 0xBF, - 0x5A, - 0xB0, - 0xEE, - 0xB2, - 0xE3, - 0xB2, - 0xB2, - 0xD1, - 0xD1, - 0xB2, - 0xEE, - 0x05, - 0xFF, - 0x01, - 0xEE, - 0x0B, - 0xFF, - 0x00, - 0x17, - 0xEE, - 0xFF, - 0xFF, - 0xB0, - 0x77, - 0x78, - 0xDF, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x21, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x29, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x29, - 0x4A, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x00, - 0x14, - 0x7F, - 0x00, - 0x04, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x05, - 0x4A, - 0x00, - 0x08, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBE, - 0x7F, - 0x04, - 0x4A, - 0x00, - 0x09, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x03, - 0x7F, - 0x4A, - 0x78, - 0x00, - 0x07, - 0x4A, - 0x00, - 0x16, - 0x7F, - 0x78, - 0x7F, - 0x4A, - 0xBF, - 0x78, - 0x4A, - 0x7F, - 0x7F, - 0x78, - 0x4A, - 0xBF, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x5A, - 0x07, - 0xBF, - 0x01, - 0x5A, - 0x01, - 0xBF, - 0x07, - 0x5A, - 0x01, - 0xBF, - 0x0B, - 0x5A, - 0x01, - 0x62, - 0x01, - 0x5A, - 0x12, - 0x62, - 0x00, - 0x03, - 0x88, - 0x62, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0xBC, - 0x28, - 0x48, - 0xBC, - 0x48, - 0x48, - 0xF9, - 0x48, - 0xF9, - 0x48, - 0x7E, - 0xBC, - 0x7E, - 0x48, - 0x7E, - 0xBC, - 0x48, - 0x48, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x0B, - 0xBD, - 0x08, - 0x49, - 0x00, - 0x15, - 0xBD, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x77, - 0x7D, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0xBE, - 0x49, - 0x00, - 0x04, - 0xBE, - 0x00, - 0x21, - 0x77, - 0xBE, - 0x4A, - 0x49, - 0x47, - 0x68, - 0x70, - 0x44, - 0x44, - 0x44, - 0x70, - 0x69, - 0x83, - 0xF4, - 0x0B, - 0xCC, - 0x83, - 0xCC, - 0xB9, - 0xB0, - 0x72, - 0x5A, - 0xBF, - 0x5A, - 0xB6, - 0xF0, - 0xB2, - 0xD1, - 0xD1, - 0xD1, - 0xE2, - 0x6B, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x03, - 0xEE, - 0xFF, - 0xEE, - 0x00, - 0x09, - 0xFF, - 0x00, - 0x1F, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xAF, - 0xA1, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x49, - 0x49, - 0x49, - 0x7D, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x1E, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0x29, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x05, - 0x7F, - 0x00, - 0x1B, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x4A, - 0xF5, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x00, - 0x07, - 0x4A, - 0x00, - 0x0A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0xBF, - 0x4A, - 0x7F, - 0x06, - 0x4A, - 0x00, - 0x0B, - 0x78, - 0x78, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0xBF, - 0x78, - 0x2A, - 0x00, - 0x09, - 0xBF, - 0x0F, - 0x5A, - 0x15, - 0x62, - 0x01, - 0x98, - 0x07, - 0x62, - 0x00, - 0x06, - 0x88, - 0x62, - 0x88, - 0x41, - 0x62, - 0x70, - 0x00, - 0x00, - 0x00, - 0x05, - 0xBC, - 0x48, - 0xF9, - 0x48, - 0xBC, - 0x00, - 0x09, - 0x48, - 0x00, - 0x0F, - 0xBC, - 0x48, - 0xBC, - 0xF9, - 0x48, - 0xF9, - 0x48, - 0xBC, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x04, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x04, - 0xBD, - 0x00, - 0x03, - 0x7E, - 0xBD, - 0xBD, - 0x00, - 0x04, - 0x49, - 0x00, - 0x35, - 0xBD, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0xBE, - 0x49, - 0x7D, - 0xBD, - 0x46, - 0x9C, - 0x88, - 0x44, - 0x44, - 0x38, - 0x70, - 0x69, - 0xC6, - 0xF4, - 0x0B, - 0xCC, - 0xCC, - 0xCC, - 0xC6, - 0xAF, - 0x71, - 0x5A, - 0xBF, - 0x5A, - 0xC9, - 0xD1, - 0xE2, - 0xE3, - 0xE2, - 0xB2, - 0x24, - 0x00, - 0x06, - 0xEE, - 0x00, - 0x03, - 0xFF, - 0xFF, - 0xEE, - 0x00, - 0x0A, - 0xFF, - 0x00, - 0x1C, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xC6, - 0x54, - 0x4A, - 0x4A, - 0x78, - 0xBE, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x49, - 0x77, - 0x49, - 0x77, - 0x49, - 0x49, - 0x49, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x04, - 0x4A, - 0x00, - 0x24, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x7D, - 0x4A, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x05, - 0x7F, - 0x00, - 0x04, - 0x4A, - 0x7F, - 0x7F, - 0xBE, - 0x04, - 0x7F, - 0x00, - 0x17, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x05, - 0xBF, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0x05, - 0x78, - 0x00, - 0x09, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0x2A, - 0x78, - 0x00, - 0x0A, - 0xBF, - 0x01, - 0x5A, - 0x01, - 0xBF, - 0x11, - 0x5A, - 0x1B, - 0x62, - 0x00, - 0x0C, - 0x98, - 0x98, - 0x62, - 0x62, - 0x88, - 0x88, - 0x62, - 0x70, - 0x88, - 0x88, - 0x70, - 0x88, - 0x00, - 0x00, - 0x00, - 0x03, - 0x48, - 0x48, - 0x48, - 0x00, - 0x0D, - 0x7E, - 0x00, - 0x54, - 0x48, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0xBC, - 0x48, - 0x48, - 0xF9, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x7E, - 0x76, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0xBD, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0xF8, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0xBD, - 0x46, - 0x52, - 0x92, - 0x44, - 0x44, - 0x38, - 0x41, - 0x3C, - 0x83, - 0x0C, - 0x0B, - 0x83, - 0xCC, - 0xCC, - 0xCB, - 0xCD, - 0xA3, - 0x5A, - 0x4A, - 0x5A, - 0xA6, - 0xCB, - 0xE2, - 0xD1, - 0xB2, - 0x6B, - 0x05, - 0xED, - 0x00, - 0x06, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x29, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xF4, - 0xCA, - 0xBF, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x77, - 0x77, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x49, - 0xBE, - 0x77, - 0x7D, - 0xBE, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x29, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x07, - 0x49, - 0xBE, - 0x7D, - 0x29, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x05, - 0x4A, - 0x01, - 0x7F, - 0x01, - 0x4A, - 0x08, - 0x7F, - 0x00, - 0x36, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0xDF, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x78, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x78, - 0x4A, - 0x7F, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0xBF, - 0xBF, - 0x78, - 0x0A, - 0xBF, - 0x01, - 0x5A, - 0x01, - 0xBF, - 0x0D, - 0x5A, - 0x01, - 0x62, - 0x01, - 0x5A, - 0x11, - 0x62, - 0x00, - 0x06, - 0x98, - 0x62, - 0x98, - 0x62, - 0x62, - 0x62, - 0x0E, - 0x88, - 0x00, - 0x07, - 0x98, - 0x88, - 0x88, - 0x70, - 0x88, - 0x70, - 0x88, - 0x00, - 0x07, - 0x70, - 0x00, - 0x00, - 0x00, - 0x04, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x08, - 0x7E, - 0x00, - 0x05, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x00, - 0x06, - 0x7E, - 0x00, - 0x12, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0xBC, - 0x7E, - 0x7E, - 0x48, - 0xF9, - 0x7E, - 0x7E, - 0xBC, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x15, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x49, - 0x7E, - 0x49, - 0xF8, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x22, - 0x49, - 0x7D, - 0xBD, - 0xBB, - 0x3C, - 0x61, - 0x59, - 0x44, - 0x38, - 0x41, - 0x3C, - 0x0B, - 0x09, - 0x83, - 0xC6, - 0x83, - 0xCC, - 0x83, - 0xCD, - 0xA3, - 0x5A, - 0x4A, - 0x78, - 0xB6, - 0xD7, - 0xB2, - 0xED, - 0xB2, - 0xE2, - 0xEF, - 0x6B, - 0xED, - 0xEE, - 0xEE, - 0x0E, - 0xFF, - 0x00, - 0x1D, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x24, - 0xC9, - 0x5A, - 0x78, - 0xBE, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0x77, - 0x49, - 0x77, - 0x49, - 0x77, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x24, - 0xBE, - 0x4A, - 0x29, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x04, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0xBE, - 0x30, - 0x7F, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x08, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0x7F, - 0x4A, - 0x78, - 0xBE, - 0x04, - 0x4A, - 0x00, - 0x05, - 0x78, - 0x78, - 0x78, - 0x7F, - 0x78, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x14, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0xBF, - 0x78, - 0x2A, - 0x78, - 0xBF, - 0x5A, - 0xBF, - 0xBF, - 0xBF, - 0x5A, - 0xBF, - 0xBF, - 0xBF, - 0x5A, - 0xBF, - 0x0F, - 0x5A, - 0x00, - 0x04, - 0x62, - 0x5A, - 0x62, - 0x5A, - 0x13, - 0x62, - 0x00, - 0x03, - 0x88, - 0x62, - 0x62, - 0x00, - 0x06, - 0x88, - 0x01, - 0x70, - 0x01, - 0x70, - 0x06, - 0x88, - 0x00, - 0x10, - 0x70, - 0x88, - 0x88, - 0x88, - 0x70, - 0x88, - 0x70, - 0x70, - 0x88, - 0x70, - 0x70, - 0x70, - 0x88, - 0x70, - 0x4E, - 0x70, - 0x06, - 0x4E, - 0x00, - 0x00, - 0x09, - 0x7E, - 0x00, - 0x03, - 0x49, - 0x7E, - 0x49, - 0x00, - 0x0C, - 0x7E, - 0x00, - 0x03, - 0xBD, - 0x7E, - 0xBD, - 0x00, - 0x07, - 0x7E, - 0x00, - 0x1A, - 0x48, - 0x7E, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x48, - 0xF9, - 0x48, - 0x7E, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x05, - 0xBD, - 0x00, - 0x25, - 0x49, - 0x7E, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0xF8, - 0x49, - 0x49, - 0xBB, - 0x69, - 0x61, - 0x59, - 0x44, - 0x38, - 0x41, - 0x67, - 0x83, - 0x08, - 0x83, - 0xCD, - 0xC6, - 0xF4, - 0xCC, - 0xC6, - 0x9F, - 0xBF, - 0x4A, - 0x76, - 0xC6, - 0xED, - 0xB2, - 0xEF, - 0xD1, - 0xEF, - 0xB2, - 0xED, - 0x00, - 0x04, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xB6, - 0x5A, - 0x77, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x00, - 0x06, - 0x77, - 0x00, - 0x26, - 0x49, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0xBE, - 0x4A, - 0x29, - 0xBE, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x7D, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x04, - 0x7F, - 0x01, - 0x4A, - 0x08, - 0x7F, - 0x00, - 0x29, - 0x4A, - 0x30, - 0xBE, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x78, - 0x7F, - 0x4A, - 0x7F, - 0x78, - 0x78, - 0x78, - 0xBF, - 0x4A, - 0xBF, - 0x78, - 0xBF, - 0x5A, - 0x78, - 0xBF, - 0x5A, - 0x78, - 0x5A, - 0x00, - 0x06, - 0xBF, - 0x00, - 0x05, - 0x5A, - 0xBF, - 0xBF, - 0x5A, - 0xBF, - 0x00, - 0x0C, - 0x5A, - 0x00, - 0x08, - 0x62, - 0x5A, - 0x5A, - 0x62, - 0x62, - 0x5A, - 0x62, - 0x5A, - 0x0C, - 0x62, - 0x00, - 0x04, - 0x88, - 0x62, - 0x62, - 0x62, - 0x05, - 0x88, - 0x00, - 0x0A, - 0x70, - 0x88, - 0x70, - 0x88, - 0x70, - 0x88, - 0x70, - 0x88, - 0x70, - 0x92, - 0x04, - 0x4E, - 0x00, - 0x10, - 0x5F, - 0x4E, - 0x92, - 0x4E, - 0x70, - 0x70, - 0x92, - 0x70, - 0x4E, - 0x92, - 0x4E, - 0x4E, - 0x4E, - 0x5F, - 0x4E, - 0x4E, - 0x04, - 0x5F, - 0x00, - 0x04, - 0x65, - 0x65, - 0x87, - 0x86, - 0x00, - 0x00, - 0x00, - 0x17, - 0x49, - 0xF8, - 0x49, - 0x31, - 0x49, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x7E, - 0xBD, - 0x00, - 0x14, - 0x7E, - 0x01, - 0x48, - 0x04, - 0x7E, - 0x00, - 0x05, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0xBD, - 0x00, - 0x0B, - 0x7E, - 0x00, - 0x29, - 0x49, - 0xBD, - 0x49, - 0x49, - 0xBD, - 0x7D, - 0x49, - 0x49, - 0x7D, - 0xF8, - 0x46, - 0x69, - 0x60, - 0x41, - 0x44, - 0x38, - 0x39, - 0x71, - 0xC6, - 0x09, - 0xC6, - 0xAF, - 0x83, - 0xD1, - 0xCC, - 0xC6, - 0x93, - 0xBF, - 0x4A, - 0x74, - 0xC6, - 0xB2, - 0xD1, - 0xD1, - 0xD1, - 0xEF, - 0xB2, - 0x6B, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x01, - 0xEE, - 0x07, - 0xFF, - 0x00, - 0x04, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x25, - 0xB9, - 0xE5, - 0xBC, - 0xBE, - 0x78, - 0x77, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0xBE, - 0x4A, - 0x4A, - 0x29, - 0xBE, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x00, - 0x05, - 0x7D, - 0x00, - 0x06, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBF, - 0x05, - 0x7F, - 0x00, - 0x22, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0xBE, - 0x7F, - 0x29, - 0xBE, - 0x29, - 0xBE, - 0x30, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x7F, - 0x78, - 0x7F, - 0x04, - 0x78, - 0x00, - 0x05, - 0x4A, - 0x5A, - 0xBF, - 0xBF, - 0x5A, - 0x00, - 0x0A, - 0xBF, - 0x00, - 0x03, - 0x5A, - 0x5A, - 0xBF, - 0x00, - 0x06, - 0x5A, - 0x00, - 0x03, - 0x62, - 0x5A, - 0xDE, - 0x00, - 0x04, - 0x5A, - 0x00, - 0x0A, - 0x62, - 0x5A, - 0x62, - 0x62, - 0x5A, - 0x62, - 0x5A, - 0x62, - 0x62, - 0x5A, - 0x05, - 0x62, - 0x01, - 0x88, - 0x01, - 0x62, - 0x04, - 0x88, - 0x00, - 0x06, - 0x62, - 0x88, - 0x88, - 0x62, - 0x88, - 0x62, - 0x05, - 0x88, - 0x00, - 0x08, - 0x70, - 0x70, - 0x88, - 0x88, - 0x70, - 0x88, - 0x58, - 0x70, - 0x05, - 0x58, - 0x01, - 0x5F, - 0x01, - 0x5F, - 0x06, - 0x65, - 0x00, - 0x14, - 0x5F, - 0x5F, - 0x5F, - 0x6E, - 0x5F, - 0x5F, - 0x6E, - 0x6E, - 0x65, - 0x87, - 0x87, - 0x86, - 0x87, - 0x86, - 0x5E, - 0x5E, - 0x86, - 0x6C, - 0x6C, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x49, - 0x49, - 0x49, - 0x00, - 0x0D, - 0x7D, - 0x00, - 0x09, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x49, - 0xBD, - 0x31, - 0x00, - 0x04, - 0x49, - 0x01, - 0x31, - 0x04, - 0x49, - 0x01, - 0x7E, - 0x01, - 0x49, - 0x11, - 0x7E, - 0x00, - 0x32, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0x49, - 0xBD, - 0xF8, - 0x49, - 0x7D, - 0x49, - 0x6A, - 0x9F, - 0x60, - 0x70, - 0x44, - 0x38, - 0x41, - 0x67, - 0x83, - 0x0C, - 0xB9, - 0xAF, - 0xCC, - 0x56, - 0xCC, - 0xC6, - 0xA6, - 0xBE, - 0x7F, - 0x73, - 0xC6, - 0xE2, - 0xD7, - 0xD1, - 0xE2, - 0xD1, - 0xEF, - 0xED, - 0xEE, - 0x06, - 0xFF, - 0x01, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x03, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x37, - 0x24, - 0xB9, - 0x69, - 0x49, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0xDF, - 0xBE, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0x77, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0x78, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x7D, - 0x7D, - 0xBE, - 0x7D, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBF, - 0x7F, - 0x7F, - 0x7F, - 0xBF, - 0x7F, - 0xBF, - 0x7F, - 0x7F, - 0x4A, - 0x00, - 0x09, - 0x7F, - 0x00, - 0x1B, - 0x7D, - 0x7F, - 0x7D, - 0x4A, - 0x29, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBF, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0xBF, - 0xBF, - 0xBF, - 0x78, - 0x00, - 0x05, - 0xBF, - 0x08, - 0x5A, - 0x00, - 0x03, - 0xDE, - 0x5A, - 0xDE, - 0x00, - 0x08, - 0x5A, - 0x06, - 0x62, - 0x00, - 0x04, - 0x88, - 0x5A, - 0x88, - 0x5A, - 0x12, - 0x88, - 0x00, - 0x1A, - 0x70, - 0x88, - 0x88, - 0x88, - 0x70, - 0x88, - 0x70, - 0x88, - 0x88, - 0x88, - 0x70, - 0x92, - 0x70, - 0x4E, - 0x4E, - 0x58, - 0x58, - 0x4E, - 0x58, - 0x5F, - 0x5F, - 0x65, - 0x65, - 0x65, - 0x5E, - 0x5E, - 0x05, - 0x6C, - 0x00, - 0x0A, - 0x86, - 0x87, - 0x86, - 0x87, - 0x87, - 0x86, - 0x86, - 0x87, - 0x86, - 0x86, - 0x06, - 0x6C, - 0x00, - 0x05, - 0x86, - 0x6C, - 0x6C, - 0x6C, - 0x8B, - 0x00, - 0x00, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x07, - 0xBD, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x10, - 0x7D, - 0x00, - 0x14, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0xBD, - 0x31, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x10, - 0x7E, - 0x00, - 0x2A, - 0xBD, - 0x7E, - 0x7E, - 0x49, - 0xBD, - 0x7E, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x7E, - 0x45, - 0x69, - 0x53, - 0x70, - 0x44, - 0x38, - 0x39, - 0x3C, - 0x83, - 0x09, - 0xB9, - 0xB0, - 0xCB, - 0xF4, - 0xCC, - 0x83, - 0xA6, - 0x4A, - 0x49, - 0xC9, - 0xCC, - 0xD1, - 0xD7, - 0xD1, - 0xD1, - 0xEF, - 0xB2, - 0x6B, - 0xEE, - 0xFF, - 0xEE, - 0x04, - 0xFF, - 0x01, - 0xEE, - 0x11, - 0xFF, - 0x00, - 0x16, - 0xA6, - 0x76, - 0xBF, - 0xBE, - 0x78, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0xBE, - 0x77, - 0x77, - 0x77, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x7F, - 0x78, - 0x04, - 0x7F, - 0x00, - 0x15, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x7D, - 0x29, - 0x7D, - 0x7D, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBF, - 0x7F, - 0x4A, - 0x7F, - 0xBF, - 0x00, - 0x07, - 0x7F, - 0x00, - 0x29, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x7D, - 0x7F, - 0x29, - 0x7F, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x78, - 0xBF, - 0x4A, - 0x78, - 0x7F, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0x78, - 0xBF, - 0xBF, - 0x78, - 0x5A, - 0x78, - 0x5A, - 0xDE, - 0x00, - 0x0C, - 0x5A, - 0x04, - 0x62, - 0x01, - 0x88, - 0x04, - 0x62, - 0x09, - 0x88, - 0x01, - 0x92, - 0x01, - 0x88, - 0x0B, - 0x92, - 0x00, - 0x0D, - 0x4E, - 0x88, - 0x4E, - 0x88, - 0x88, - 0x88, - 0x70, - 0x70, - 0x88, - 0x70, - 0x88, - 0x4E, - 0x4E, - 0x00, - 0x04, - 0x5F, - 0x00, - 0x1F, - 0x65, - 0x65, - 0x65, - 0x5E, - 0x5E, - 0x57, - 0x85, - 0x85, - 0x6C, - 0x6C, - 0x8A, - 0x8A, - 0xAA, - 0x8B, - 0xAA, - 0x8B, - 0x8B, - 0x8C, - 0x8C, - 0x6C, - 0x86, - 0x8C, - 0x6C, - 0x64, - 0x8C, - 0x86, - 0x6C, - 0x6C, - 0x64, - 0x6C, - 0x8C, - 0x00, - 0x06, - 0x6C, - 0x01, - 0x8B, - 0x00, - 0x00, - 0x00, - 0x09, - 0x48, - 0x48, - 0x48, - 0xBC, - 0xBC, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0x00, - 0x04, - 0x7E, - 0x00, - 0x0D, - 0xBD, - 0x31, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x31, - 0xBD, - 0x49, - 0x7D, - 0x49, - 0x00, - 0x0E, - 0x7D, - 0x00, - 0x40, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0xF8, - 0x23, - 0xBD, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0xBD, - 0x7E, - 0x49, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0x49, - 0x49, - 0xBD, - 0x31, - 0xBD, - 0x28, - 0x7B, - 0x69, - 0x73, - 0x70, - 0x44, - 0x38, - 0x41, - 0x9F, - 0xF4, - 0x09, - 0xAF, - 0xB6, - 0xC6, - 0x56, - 0xD1, - 0xCC, - 0xC9, - 0xBE, - 0xBC, - 0xCC, - 0xB2, - 0xD7, - 0xCC, - 0xD1, - 0xD1, - 0xB2, - 0x6B, - 0xED, - 0xEE, - 0xEE, - 0x17, - 0xFF, - 0x00, - 0x0B, - 0xB0, - 0xA9, - 0x5A, - 0x78, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0x77, - 0xBE, - 0x77, - 0x00, - 0x04, - 0xBE, - 0x00, - 0x35, - 0x4A, - 0x4A, - 0xDF, - 0x4A, - 0xBF, - 0x78, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x7D, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBF, - 0xBF, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0x7F, - 0x7F, - 0x30, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x09, - 0xBE, - 0x4A, - 0xDF, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0xBF, - 0x00, - 0x07, - 0x78, - 0x00, - 0x03, - 0xBF, - 0xDE, - 0xBF, - 0x00, - 0x04, - 0x5A, - 0x00, - 0x03, - 0xDE, - 0x88, - 0xDE, - 0x00, - 0x0C, - 0x88, - 0x01, - 0x62, - 0x08, - 0x88, - 0x00, - 0x06, - 0x92, - 0x5F, - 0x92, - 0x5F, - 0x5F, - 0x92, - 0x12, - 0x5F, - 0x01, - 0x4E, - 0x05, - 0x5F, - 0x00, - 0x09, - 0x6E, - 0x6E, - 0x6E, - 0x87, - 0x87, - 0x5E, - 0x6C, - 0x85, - 0x85, - 0x00, - 0x05, - 0x8A, - 0x00, - 0x09, - 0x55, - 0xAA, - 0xAA, - 0x5C, - 0xC2, - 0x5C, - 0xAA, - 0x8B, - 0x8B, - 0x00, - 0x05, - 0x8C, - 0x00, - 0x05, - 0x90, - 0x8C, - 0x8D, - 0x8C, - 0x8C, - 0x00, - 0x08, - 0x6C, - 0x01, - 0x8C, - 0x01, - 0x8B, - 0x00, - 0x00, - 0x00, - 0x03, - 0xA9, - 0xA9, - 0xA9, - 0x00, - 0x04, - 0x47, - 0x05, - 0x7C, - 0x00, - 0x06, - 0x48, - 0x48, - 0xBC, - 0x7E, - 0x48, - 0xF9, - 0x04, - 0x48, - 0x00, - 0x15, - 0x7E, - 0x48, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0xBD, - 0x7E, - 0xBD, - 0xBD, - 0x7E, - 0x7E, - 0x7E, - 0x00, - 0x04, - 0xBD, - 0x01, - 0x49, - 0x01, - 0xBD, - 0x07, - 0x49, - 0x00, - 0x2C, - 0x31, - 0x49, - 0x7D, - 0x7E, - 0x49, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x7E, - 0x49, - 0x49, - 0xBD, - 0x49, - 0x49, - 0x7E, - 0x7C, - 0x7B, - 0x9F, - 0x52, - 0x92, - 0x59, - 0x26, - 0x41, - 0x9F, - 0xF4, - 0xFE, - 0xB0, - 0xB6, - 0xCB, - 0xCC, - 0x56, - 0xD1, - 0xC9, - 0x76, - 0x46, - 0xF0, - 0xED, - 0xD1, - 0xD7, - 0xD1, - 0xEF, - 0xB2, - 0x04, - 0xEE, - 0x17, - 0xFF, - 0x00, - 0x2A, - 0x24, - 0xB8, - 0x5A, - 0x78, - 0xDF, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x77, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0xBF, - 0x4A, - 0x7F, - 0x78, - 0x06, - 0x7F, - 0x00, - 0x1C, - 0xBE, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0xF5, - 0x4A, - 0x4A, - 0x4A, - 0xF5, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0x78, - 0x4A, - 0x78, - 0x78, - 0x4A, - 0x04, - 0x78, - 0x01, - 0x4A, - 0x0A, - 0x78, - 0x01, - 0x92, - 0x01, - 0x78, - 0x04, - 0x92, - 0x00, - 0x04, - 0x88, - 0x92, - 0x92, - 0x88, - 0x04, - 0x92, - 0x01, - 0x88, - 0x01, - 0x92, - 0x07, - 0x88, - 0x00, - 0x04, - 0x70, - 0x88, - 0x70, - 0x92, - 0x04, - 0x5F, - 0x00, - 0x03, - 0x6E, - 0x5F, - 0x6E, - 0x00, - 0x06, - 0x65, - 0x00, - 0x14, - 0x87, - 0x65, - 0x87, - 0x87, - 0x87, - 0x65, - 0x87, - 0x87, - 0x87, - 0x65, - 0x65, - 0x87, - 0x87, - 0x87, - 0x65, - 0x6E, - 0x6E, - 0x6E, - 0x6F, - 0x87, - 0x04, - 0x86, - 0x00, - 0x03, - 0x6C, - 0x6C, - 0x85, - 0x00, - 0x07, - 0x8A, - 0x00, - 0x0A, - 0xAA, - 0xAA, - 0xAA, - 0x99, - 0x99, - 0xAA, - 0x99, - 0xAA, - 0x8B, - 0x8B, - 0x05, - 0x8D, - 0x00, - 0x04, - 0x8B, - 0x8D, - 0x8C, - 0x8C, - 0x07, - 0x6C, - 0x01, - 0x8B, - 0x01, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x45, - 0x45, - 0x46, - 0x73, - 0x46, - 0x46, - 0xBB, - 0x46, - 0x46, - 0x46, - 0xA9, - 0x27, - 0xA9, - 0x00, - 0x05, - 0x47, - 0x00, - 0x0A, - 0x7C, - 0x47, - 0x7C, - 0x47, - 0x47, - 0x7C, - 0x7C, - 0x28, - 0xBC, - 0x7E, - 0x04, - 0x48, - 0x00, - 0x15, - 0xBC, - 0x48, - 0x7C, - 0x28, - 0xBC, - 0x48, - 0x48, - 0xBC, - 0x48, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x48, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x48, - 0x7E, - 0x7E, - 0x00, - 0x06, - 0xBD, - 0x00, - 0x05, - 0x49, - 0xBD, - 0xBD, - 0xBD, - 0x49, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x23, - 0x7E, - 0x49, - 0x7E, - 0x7E, - 0x48, - 0xA9, - 0x42, - 0x51, - 0x71, - 0x50, - 0x44, - 0x38, - 0x39, - 0x9F, - 0x0C, - 0x0D, - 0xB0, - 0xC9, - 0xC6, - 0xD1, - 0x56, - 0x56, - 0xB6, - 0xE5, - 0xDB, - 0xD1, - 0xEE, - 0xD1, - 0xD7, - 0xD1, - 0xEF, - 0xB2, - 0x6B, - 0xED, - 0xEE, - 0x00, - 0x10, - 0xFF, - 0x05, - 0xEE, - 0x00, - 0x26, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xA6, - 0xDD, - 0x5A, - 0x4A, - 0xDF, - 0x78, - 0x4A, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x78, - 0xBF, - 0x4A, - 0xBF, - 0x4A, - 0xBF, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x07, - 0x7F, - 0x00, - 0x03, - 0x4A, - 0x4A, - 0x7F, - 0x00, - 0x06, - 0x4A, - 0x00, - 0x12, - 0xBE, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x78, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x05, - 0x4A, - 0x00, - 0x05, - 0x78, - 0x78, - 0x4A, - 0x78, - 0x4A, - 0x00, - 0x04, - 0x78, - 0x00, - 0x0B, - 0xDF, - 0x77, - 0x78, - 0xDF, - 0x50, - 0x9D, - 0x9D, - 0x9D, - 0x92, - 0x92, - 0x9D, - 0x00, - 0x05, - 0x92, - 0x04, - 0x5F, - 0x00, - 0x0B, - 0x92, - 0x5F, - 0x5F, - 0x4E, - 0x5F, - 0x70, - 0x4E, - 0x9B, - 0x92, - 0x70, - 0x92, - 0x00, - 0x05, - 0x5F, - 0x01, - 0x6E, - 0x05, - 0x65, - 0x06, - 0x86, - 0x00, - 0x10, - 0x64, - 0x8C, - 0x6C, - 0x6C, - 0x8C, - 0x6C, - 0x6C, - 0x6C, - 0x8C, - 0x64, - 0x8C, - 0x64, - 0x86, - 0x91, - 0x87, - 0x91, - 0x04, - 0x87, - 0x00, - 0x05, - 0x91, - 0x86, - 0x86, - 0x6C, - 0x6C, - 0x00, - 0x07, - 0x8A, - 0x00, - 0x06, - 0x8B, - 0x8A, - 0xAA, - 0xAA, - 0x99, - 0xC2, - 0x05, - 0x99, - 0x00, - 0x13, - 0xA4, - 0xA4, - 0x8E, - 0x8E, - 0x8E, - 0xA4, - 0x8D, - 0x8B, - 0x8C, - 0x8B, - 0x8A, - 0x85, - 0x6C, - 0x6C, - 0x6C, - 0x8A, - 0x8C, - 0x8B, - 0x8B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xB8, - 0x72, - 0x72, - 0x45, - 0xBA, - 0x00, - 0x04, - 0x45, - 0x00, - 0x18, - 0x73, - 0x73, - 0x73, - 0x46, - 0x3B, - 0x46, - 0xA9, - 0x46, - 0x74, - 0x46, - 0x46, - 0x74, - 0x46, - 0xA9, - 0x47, - 0x47, - 0x47, - 0x75, - 0x47, - 0x75, - 0x7C, - 0x47, - 0x47, - 0xA9, - 0x0C, - 0x47, - 0x00, - 0x03, - 0x7C, - 0xBC, - 0x7C, - 0x00, - 0x05, - 0xBC, - 0x08, - 0x48, - 0x01, - 0x7E, - 0x01, - 0x7E, - 0x05, - 0x48, - 0x00, - 0x23, - 0x7E, - 0x7E, - 0x7E, - 0x48, - 0xBC, - 0x47, - 0x42, - 0x93, - 0x69, - 0x61, - 0x59, - 0x38, - 0x39, - 0x69, - 0xF0, - 0x08, - 0xB6, - 0xCA, - 0xC6, - 0xCC, - 0xEF, - 0xB2, - 0xB0, - 0xA8, - 0xAE, - 0xD7, - 0xB2, - 0xE2, - 0xD1, - 0xD1, - 0xEF, - 0x6B, - 0xED, - 0xEE, - 0xEE, - 0x00, - 0x10, - 0xFF, - 0x00, - 0x52, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xED, - 0xEE, - 0xFF, - 0xB9, - 0x72, - 0xBF, - 0x49, - 0x78, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0x4A, - 0x78, - 0x78, - 0x78, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0xBE, - 0x4A, - 0xBE, - 0x7D, - 0xBE, - 0xBE, - 0x7D, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x7F, - 0x4A, - 0x4A, - 0x7F, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0x7F, - 0x78, - 0x4A, - 0xDF, - 0x4A, - 0x78, - 0xBE, - 0x78, - 0x78, - 0x78, - 0x04, - 0x4A, - 0x00, - 0x11, - 0x77, - 0x77, - 0x4A, - 0x77, - 0x77, - 0x77, - 0xDD, - 0x61, - 0x77, - 0x61, - 0x9D, - 0x9D, - 0x6E, - 0x9D, - 0x6E, - 0x9D, - 0x5F, - 0x00, - 0x06, - 0x6E, - 0x04, - 0x65, - 0x0B, - 0x5F, - 0x00, - 0x05, - 0x65, - 0x65, - 0x87, - 0x86, - 0x86, - 0x00, - 0x07, - 0x6C, - 0x01, - 0x8A, - 0x06, - 0x8B, - 0x08, - 0x8C, - 0x00, - 0x03, - 0x90, - 0x64, - 0x64, - 0x00, - 0x04, - 0x91, - 0x00, - 0x07, - 0x64, - 0x91, - 0x64, - 0x8C, - 0x8C, - 0x6C, - 0x6C, - 0x00, - 0x08, - 0x8A, - 0x01, - 0xAA, - 0x01, - 0x5C, - 0x08, - 0x99, - 0x00, - 0x09, - 0x8E, - 0x95, - 0x95, - 0x95, - 0x8E, - 0x8D, - 0xA4, - 0x8B, - 0x8C, - 0x00, - 0x04, - 0x6C, - 0x00, - 0x05, - 0x8A, - 0x8C, - 0x8B, - 0x8B, - 0x8B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x3C, - 0x3C, - 0x71, - 0x71, - 0x71, - 0xA7, - 0x71, - 0x71, - 0x52, - 0x72, - 0x72, - 0x3D, - 0x3D, - 0x73, - 0x73, - 0x53, - 0x3B, - 0x3B, - 0x46, - 0x3B, - 0x3B, - 0x46, - 0x53, - 0x3E, - 0x3E, - 0x74, - 0x3E, - 0x3E, - 0x3E, - 0x74, - 0x74, - 0x46, - 0x46, - 0x74, - 0x74, - 0x74, - 0x46, - 0x46, - 0x73, - 0x46, - 0x46, - 0x46, - 0x08, - 0x74, - 0x00, - 0x08, - 0xA9, - 0x3E, - 0xA9, - 0x47, - 0x75, - 0x47, - 0x47, - 0x75, - 0x06, - 0x47, - 0x00, - 0x04, - 0x75, - 0x47, - 0x47, - 0x75, - 0x04, - 0xBC, - 0x00, - 0x1E, - 0x47, - 0x46, - 0x54, - 0x0A, - 0x51, - 0xA1, - 0x59, - 0x38, - 0x39, - 0x3A, - 0xF4, - 0xFF, - 0xB0, - 0xD5, - 0xB9, - 0xD1, - 0x56, - 0xEF, - 0xB9, - 0xC9, - 0xB0, - 0xD7, - 0xD1, - 0xE2, - 0xB2, - 0xD1, - 0xB2, - 0x6B, - 0xEE, - 0xEE, - 0x05, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xEE, - 0x0A, - 0xFF, - 0x00, - 0x03, - 0xEE, - 0xEE, - 0xED, - 0x00, - 0x05, - 0xEE, - 0x00, - 0x42, - 0xFF, - 0xF0, - 0xC9, - 0xA8, - 0xE4, - 0xBD, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x77, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0x4A, - 0x7F, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7F, - 0xBE, - 0xBE, - 0x29, - 0xBE, - 0xBE, - 0x4A, - 0x7D, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0xBE, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0x7F, - 0x4A, - 0x4A, - 0xBE, - 0x0A, - 0x4A, - 0x04, - 0x77, - 0x04, - 0xA1, - 0x05, - 0x6F, - 0x00, - 0x05, - 0x87, - 0x6F, - 0x65, - 0x6E, - 0x6E, - 0x00, - 0x06, - 0x65, - 0x00, - 0x04, - 0x5E, - 0x5E, - 0x87, - 0x5E, - 0x0A, - 0x65, - 0x00, - 0x0E, - 0x87, - 0x86, - 0x86, - 0x6C, - 0x6C, - 0x8C, - 0x8B, - 0x8B, - 0x8A, - 0x8C, - 0x6C, - 0x8A, - 0x8C, - 0x8A, - 0x09, - 0x8B, - 0x00, - 0x17, - 0x8C, - 0x8C, - 0x8B, - 0x8C, - 0x8C, - 0x8C, - 0x90, - 0x90, - 0x64, - 0xB5, - 0x64, - 0x90, - 0x64, - 0x64, - 0x64, - 0x8C, - 0x8C, - 0x6C, - 0x6C, - 0x85, - 0x8A, - 0x6C, - 0x85, - 0x00, - 0x04, - 0x8A, - 0x00, - 0x04, - 0x8B, - 0xAA, - 0xAA, - 0xAA, - 0x07, - 0x99, - 0x00, - 0x12, - 0xA4, - 0x95, - 0x95, - 0x8E, - 0x8E, - 0xA4, - 0x8B, - 0x8C, - 0x8A, - 0x6C, - 0x85, - 0x85, - 0x6C, - 0x6C, - 0x8A, - 0x8A, - 0x8B, - 0x8A, - 0x00, - 0x00, - 0x00, - 0x03, - 0x67, - 0xAE, - 0xAE, - 0x00, - 0x04, - 0x67, - 0x00, - 0x10, - 0x52, - 0xA7, - 0x52, - 0x9C, - 0x52, - 0x9C, - 0x9C, - 0x68, - 0x68, - 0xA8, - 0x68, - 0x68, - 0xA8, - 0xA8, - 0x53, - 0x74, - 0x06, - 0x9E, - 0x00, - 0x03, - 0x53, - 0x53, - 0xA8, - 0x00, - 0x06, - 0x53, - 0x00, - 0x06, - 0x3B, - 0x68, - 0x73, - 0xA8, - 0xA8, - 0xA8, - 0x04, - 0x53, - 0x01, - 0x74, - 0x01, - 0x53, - 0x04, - 0x73, - 0x00, - 0x31, - 0x3B, - 0x53, - 0x46, - 0x46, - 0x53, - 0x46, - 0x3B, - 0x46, - 0x73, - 0x46, - 0x3B, - 0x74, - 0x46, - 0x46, - 0x74, - 0x74, - 0xA9, - 0x74, - 0x46, - 0x45, - 0x3C, - 0xC9, - 0x93, - 0x60, - 0x41, - 0x38, - 0x39, - 0x3B, - 0xF4, - 0xFF, - 0xAF, - 0xCA, - 0xCD, - 0xD1, - 0xEF, - 0x56, - 0xCB, - 0xCD, - 0xCB, - 0xD1, - 0xD7, - 0xD1, - 0xB2, - 0xB2, - 0x6B, - 0xED, - 0xEE, - 0xFF, - 0xEE, - 0x00, - 0x11, - 0xFF, - 0x00, - 0x25, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xCD, - 0xA5, - 0xC7, - 0xBB, - 0xBD, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x4A, - 0xBE, - 0x7D, - 0x7D, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x09, - 0x7F, - 0xBE, - 0x7F, - 0x4A, - 0xBE, - 0x4A, - 0x29, - 0x7D, - 0x29, - 0x00, - 0x04, - 0x7D, - 0x00, - 0x09, - 0xBE, - 0x29, - 0x7D, - 0x29, - 0xBE, - 0x4A, - 0x4A, - 0x30, - 0xBE, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x0C, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0x05, - 0x77, - 0x00, - 0x28, - 0x76, - 0x76, - 0xA0, - 0x60, - 0xA0, - 0x60, - 0x60, - 0x60, - 0x4F, - 0x91, - 0x91, - 0x64, - 0x86, - 0x86, - 0x87, - 0x5E, - 0x87, - 0x87, - 0x86, - 0x5E, - 0x86, - 0x5E, - 0x86, - 0x5E, - 0x6C, - 0x85, - 0x6C, - 0x6C, - 0x6C, - 0x5E, - 0x5E, - 0x86, - 0x5E, - 0x86, - 0x6C, - 0x6C, - 0x6C, - 0x8C, - 0x8C, - 0x8C, - 0x05, - 0x8B, - 0x00, - 0x07, - 0x8C, - 0x8A, - 0x8C, - 0x8A, - 0x6C, - 0x6C, - 0x8A, - 0x00, - 0x08, - 0x8B, - 0x08, - 0x8C, - 0x00, - 0x07, - 0x90, - 0x86, - 0x64, - 0x86, - 0x8C, - 0x64, - 0x8C, - 0x00, - 0x05, - 0x6C, - 0x04, - 0x85, - 0x00, - 0x0E, - 0x6C, - 0x85, - 0x8A, - 0x8A, - 0x8B, - 0xAA, - 0xAA, - 0x99, - 0xAA, - 0xAA, - 0xAA, - 0x99, - 0x99, - 0x99, - 0x06, - 0xA4, - 0x00, - 0x0C, - 0x8C, - 0x6C, - 0x6C, - 0x85, - 0x85, - 0x5E, - 0x5E, - 0x85, - 0x6C, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x97, - 0x97, - 0x67, - 0x00, - 0x06, - 0x97, - 0x00, - 0x20, - 0xC8, - 0x97, - 0xC8, - 0xC8, - 0x6D, - 0x6D, - 0xA8, - 0x6D, - 0x6D, - 0x53, - 0x6D, - 0x9E, - 0x6D, - 0x4F, - 0x4F, - 0x60, - 0x60, - 0x4F, - 0x60, - 0x4F, - 0x9E, - 0x9E, - 0x6D, - 0x6D, - 0x9E, - 0x4F, - 0x9E, - 0x60, - 0x60, - 0x9E, - 0x53, - 0xA8, - 0x0B, - 0x68, - 0x0A, - 0x9C, - 0x04, - 0x72, - 0x00, - 0x24, - 0x52, - 0x72, - 0x72, - 0x72, - 0x45, - 0x45, - 0x42, - 0x3A, - 0x43, - 0x0A, - 0xC9, - 0x3D, - 0x41, - 0x38, - 0x44, - 0x3E, - 0xCC, - 0xFF, - 0xB9, - 0xCA, - 0xAF, - 0xCC, - 0xB2, - 0xB2, - 0xCB, - 0xC6, - 0xCB, - 0xD7, - 0xD1, - 0xD7, - 0xD1, - 0xB2, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x12, - 0xFF, - 0x00, - 0x2A, - 0xEE, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xE3, - 0xC5, - 0xB4, - 0x9F, - 0xBB, - 0x48, - 0x49, - 0x4A, - 0xBE, - 0xBE, - 0x4A, - 0xBE, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0xBE, - 0x4A, - 0xBE, - 0x4A, - 0x7D, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0x7D, - 0x7F, - 0x7D, - 0x7F, - 0xBE, - 0x29, - 0xBE, - 0x04, - 0x29, - 0x09, - 0x7D, - 0x00, - 0x09, - 0xBE, - 0x29, - 0xBE, - 0x29, - 0x7D, - 0x4A, - 0x7F, - 0x7F, - 0x29, - 0x00, - 0x04, - 0x4A, - 0x01, - 0xBE, - 0x01, - 0x7D, - 0x0A, - 0x77, - 0x00, - 0x12, - 0xA1, - 0x76, - 0x76, - 0xA0, - 0xA0, - 0x60, - 0x60, - 0x9E, - 0x4F, - 0x9E, - 0x4F, - 0x6D, - 0x6D, - 0x90, - 0x90, - 0x64, - 0x64, - 0x6C, - 0x04, - 0x86, - 0x00, - 0x11, - 0x5E, - 0x86, - 0x6C, - 0x6C, - 0x85, - 0x6C, - 0x85, - 0x8A, - 0x85, - 0x6C, - 0x6C, - 0x6C, - 0x8A, - 0x6C, - 0x6C, - 0x8A, - 0x8C, - 0x00, - 0x06, - 0x8B, - 0x00, - 0x06, - 0xAA, - 0xAA, - 0x8B, - 0x8B, - 0x8A, - 0x8C, - 0x07, - 0x6C, - 0x00, - 0x07, - 0x8A, - 0x6C, - 0x8A, - 0x8C, - 0x8A, - 0x8C, - 0x6C, - 0x00, - 0x06, - 0x8C, - 0x00, - 0x15, - 0x64, - 0x8C, - 0x64, - 0x64, - 0x64, - 0x86, - 0x86, - 0x86, - 0x6C, - 0x86, - 0x86, - 0x5E, - 0x86, - 0x5E, - 0x5E, - 0x85, - 0x5E, - 0x6C, - 0x6C, - 0x8A, - 0x8A, - 0x00, - 0x08, - 0x8B, - 0x00, - 0x0A, - 0xA4, - 0x8B, - 0x8B, - 0xA4, - 0x8D, - 0xA4, - 0x8D, - 0x8B, - 0x8C, - 0x6C, - 0x06, - 0x5E, - 0x00, - 0x04, - 0x86, - 0x6C, - 0x86, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x08, - 0x6D, - 0xC8, - 0xC8, - 0x8E, - 0xC8, - 0x6D, - 0xC8, - 0x6D, - 0x05, - 0x90, - 0x00, - 0x09, - 0x4F, - 0xB5, - 0x90, - 0x90, - 0xB5, - 0x91, - 0x64, - 0x64, - 0x64, - 0x00, - 0x07, - 0x91, - 0x00, - 0x03, - 0x64, - 0x64, - 0x4F, - 0x00, - 0x07, - 0x91, - 0x00, - 0x0E, - 0x4F, - 0x6D, - 0x6D, - 0x6D, - 0xC8, - 0x6D, - 0xC8, - 0x6D, - 0xC8, - 0x68, - 0x6D, - 0xC8, - 0x97, - 0x52, - 0x05, - 0x67, - 0x01, - 0x52, - 0x01, - 0x52, - 0x06, - 0x67, - 0x00, - 0x28, - 0x3C, - 0x69, - 0x69, - 0x71, - 0x71, - 0x3A, - 0x3C, - 0x51, - 0x51, - 0xA6, - 0xB0, - 0x3C, - 0x88, - 0x38, - 0x38, - 0x77, - 0xC6, - 0xFF, - 0xC6, - 0xC9, - 0xB6, - 0xD7, - 0x56, - 0x6B, - 0xCC, - 0xCB, - 0xE3, - 0xD1, - 0xD7, - 0xD1, - 0xD1, - 0xB2, - 0xEF, - 0xED, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x0F, - 0xFF, - 0x00, - 0x14, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xE3, - 0xC5, - 0xB4, - 0xCA, - 0x69, - 0xA9, - 0x7E, - 0x7D, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x04, - 0x7D, - 0x00, - 0x11, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0x7D, - 0xBE, - 0x29, - 0x29, - 0xBE, - 0x29, - 0x29, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x29, - 0x29, - 0x00, - 0x0C, - 0x7D, - 0x00, - 0x0D, - 0x29, - 0x7D, - 0x7D, - 0x29, - 0x29, - 0x4A, - 0x4A, - 0xBE, - 0x4A, - 0x4A, - 0xBE, - 0xBE, - 0xBE, - 0x00, - 0x06, - 0x77, - 0x04, - 0xA1, - 0x00, - 0x13, - 0x76, - 0xA1, - 0x76, - 0xA0, - 0xA0, - 0x60, - 0x60, - 0x60, - 0x9E, - 0x53, - 0x6D, - 0x68, - 0x6D, - 0x6D, - 0x6D, - 0x8D, - 0x6D, - 0x90, - 0x64, - 0x00, - 0x06, - 0x86, - 0x01, - 0x6C, - 0x01, - 0x86, - 0x08, - 0x6C, - 0x05, - 0x8A, - 0x00, - 0x14, - 0x8B, - 0x8B, - 0x99, - 0x8B, - 0x99, - 0xA4, - 0x8B, - 0x99, - 0x99, - 0x8B, - 0x8B, - 0x8C, - 0x8C, - 0x6C, - 0x6C, - 0x86, - 0x86, - 0x5E, - 0x86, - 0x5E, - 0x04, - 0x86, - 0x09, - 0x6C, - 0x01, - 0x86, - 0x01, - 0x6C, - 0x09, - 0x86, - 0x00, - 0x11, - 0x5E, - 0x86, - 0x5E, - 0x5E, - 0x87, - 0x86, - 0x5E, - 0x85, - 0x85, - 0x6C, - 0x6C, - 0x8A, - 0x8A, - 0x8A, - 0x8C, - 0x8C, - 0x8C, - 0x00, - 0x04, - 0x8B, - 0x01, - 0x8D, - 0x05, - 0x8C, - 0x00, - 0x03, - 0x6C, - 0x86, - 0x86, - 0x00, - 0x06, - 0x5E, - 0x00, - 0x03, - 0x86, - 0x6C, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x04, - 0x90, - 0x01, - 0x6D, - 0x01, - 0x90, - 0x06, - 0x64, - 0x01, - 0x91, - 0x01, - 0x86, - 0x04, - 0x91, - 0x00, - 0x31, - 0x87, - 0x6F, - 0x6F, - 0x91, - 0x87, - 0x6F, - 0x87, - 0x6F, - 0x87, - 0x6F, - 0x91, - 0x91, - 0x64, - 0x91, - 0x87, - 0x91, - 0x91, - 0x91, - 0x6F, - 0x6F, - 0x91, - 0x91, - 0x90, - 0x90, - 0x8D, - 0x8D, - 0x8D, - 0xC8, - 0xC8, - 0xC8, - 0x8E, - 0x8E, - 0x97, - 0x97, - 0x97, - 0xC7, - 0x8F, - 0x8F, - 0x8F, - 0x63, - 0xAE, - 0x8F, - 0xAE, - 0x8F, - 0xAE, - 0x8F, - 0x66, - 0x66, - 0x66, - 0x00, - 0x05, - 0x43, - 0x00, - 0x20, - 0x51, - 0x43, - 0x93, - 0xC9, - 0xB0, - 0x43, - 0x50, - 0x38, - 0x38, - 0x88, - 0xCD, - 0xFF, - 0x83, - 0xAC, - 0xC5, - 0xCB, - 0xE2, - 0xED, - 0xD1, - 0xCB, - 0xD7, - 0xD1, - 0xE2, - 0xD1, - 0xE2, - 0xB2, - 0xB2, - 0xB2, - 0x05, - 0xED, - 0xEE, - 0xEE, - 0x11, - 0xFF, - 0x06, - 0xEE, - 0x00, - 0x0D, - 0xFF, - 0xFF, - 0xE3, - 0xD8, - 0xD3, - 0xCD, - 0xC9, - 0x5B, - 0xA9, - 0x7E, - 0x7D, - 0x7D, - 0x49, - 0x00, - 0x09, - 0x7D, - 0x00, - 0x0A, - 0x4A, - 0x29, - 0x30, - 0x7F, - 0x4A, - 0x30, - 0x7D, - 0x29, - 0x7D, - 0x29, - 0x10, - 0x7D, - 0x00, - 0x0E, - 0xBE, - 0x29, - 0xBE, - 0x7D, - 0x4A, - 0x7D, - 0x4A, - 0x7D, - 0xBE, - 0x77, - 0x49, - 0x77, - 0x77, - 0x76, - 0x06, - 0xA1, - 0x00, - 0x04, - 0x6F, - 0xA1, - 0x6F, - 0xA0, - 0x04, - 0x60, - 0x01, - 0x4F, - 0x01, - 0x9E, - 0x08, - 0x6D, - 0x00, - 0x05, - 0x90, - 0x90, - 0x64, - 0x64, - 0x86, - 0x00, - 0x04, - 0x87, - 0x00, - 0x1F, - 0x65, - 0x5E, - 0x86, - 0x86, - 0x85, - 0x6C, - 0x85, - 0x6C, - 0x85, - 0x6C, - 0x6C, - 0x8B, - 0x8B, - 0x8B, - 0x5C, - 0x5C, - 0xAA, - 0x8B, - 0x8B, - 0x8D, - 0x8B, - 0xA4, - 0xA4, - 0x8B, - 0x8B, - 0x8B, - 0x8C, - 0x6C, - 0x86, - 0x5E, - 0x5E, - 0x00, - 0x06, - 0x65, - 0x01, - 0x86, - 0x01, - 0x5E, - 0x05, - 0x86, - 0x01, - 0x5E, - 0x04, - 0x86, - 0x0B, - 0x87, - 0x00, - 0x0C, - 0x65, - 0x87, - 0x87, - 0x5E, - 0x5E, - 0x5E, - 0x86, - 0x86, - 0x6C, - 0x85, - 0x6C, - 0x6C, - 0x0A, - 0x8C, - 0x00, - 0x10, - 0x90, - 0x8C, - 0x64, - 0x8C, - 0x86, - 0x86, - 0x5E, - 0x5E, - 0x5E, - 0x65, - 0x5E, - 0x65, - 0x86, - 0x6C, - 0x64, - 0x6C, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x86, - 0x91, - 0x91, - 0x64, - 0x64, - 0x91, - 0x91, - 0x91, - 0x86, - 0x87, - 0x86, - 0x00, - 0x07, - 0x87, - 0x00, - 0x0A, - 0x6F, - 0x87, - 0x87, - 0x87, - 0x65, - 0x87, - 0x65, - 0x87, - 0x65, - 0x65, - 0x09, - 0x87, - 0x00, - 0x16, - 0x6F, - 0x87, - 0x91, - 0x64, - 0x64, - 0x90, - 0x90, - 0x90, - 0x8D, - 0x8E, - 0x8D, - 0xC8, - 0x8E, - 0x8E, - 0x97, - 0x96, - 0x96, - 0x9A, - 0x8F, - 0xA5, - 0xA5, - 0x9A, - 0x04, - 0x8F, - 0x00, - 0x21, - 0x66, - 0xD5, - 0xAD, - 0xA6, - 0x43, - 0xA6, - 0xA6, - 0xA6, - 0x43, - 0xA6, - 0xA6, - 0xA6, - 0xC9, - 0xAF, - 0xA6, - 0x50, - 0x38, - 0x38, - 0x41, - 0xB0, - 0xFF, - 0xF4, - 0xB6, - 0xAC, - 0xC6, - 0xD7, - 0xB2, - 0xE2, - 0xE3, - 0xD7, - 0xD1, - 0xD1, - 0xE2, - 0x00, - 0x04, - 0xB2, - 0x00, - 0x04, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0x12, - 0xFF, - 0x05, - 0xEE, - 0x00, - 0x1F, - 0xFF, - 0xFF, - 0xE3, - 0xD8, - 0xD0, - 0xC3, - 0xEF, - 0xAF, - 0x54, - 0xA9, - 0x7C, - 0x7D, - 0x7D, - 0x31, - 0x7E, - 0x7D, - 0x7D, - 0x7D, - 0x7F, - 0x2A, - 0x2A, - 0x7F, - 0x7D, - 0x7E, - 0x7E, - 0x3F, - 0x0A, - 0xA3, - 0x7D, - 0x7D, - 0x29, - 0x00, - 0x15, - 0x7D, - 0x01, - 0xBE, - 0x06, - 0x77, - 0x00, - 0x05, - 0x76, - 0xA1, - 0xA1, - 0xA0, - 0xA1, - 0x00, - 0x04, - 0x6F, - 0x05, - 0x91, - 0x00, - 0x05, - 0x4F, - 0x91, - 0x4F, - 0x4F, - 0x4F, - 0x00, - 0x06, - 0x6D, - 0x00, - 0x07, - 0x90, - 0x4F, - 0x4F, - 0x91, - 0x91, - 0x91, - 0x87, - 0x00, - 0x07, - 0x65, - 0x00, - 0x0E, - 0x5E, - 0x86, - 0x5E, - 0x86, - 0x6C, - 0x6C, - 0x6C, - 0x8A, - 0x8A, - 0x8B, - 0x8B, - 0xAA, - 0xAA, - 0x5C, - 0x07, - 0x8B, - 0x00, - 0x0A, - 0x8C, - 0x8B, - 0x8C, - 0x6C, - 0x86, - 0x87, - 0x65, - 0x65, - 0x65, - 0x5F, - 0x06, - 0x65, - 0x00, - 0x05, - 0x87, - 0x87, - 0x86, - 0x86, - 0x87, - 0x00, - 0x05, - 0x65, - 0x08, - 0x6E, - 0x06, - 0x65, - 0x00, - 0x05, - 0x87, - 0x87, - 0x5E, - 0x6C, - 0x86, - 0x00, - 0x04, - 0x6C, - 0x01, - 0x8C, - 0x01, - 0x6C, - 0x09, - 0x8C, - 0x00, - 0x0E, - 0x6C, - 0x86, - 0x86, - 0x86, - 0x87, - 0x65, - 0x5E, - 0x5E, - 0x5E, - 0x86, - 0x86, - 0x6C, - 0x8C, - 0x8C, - 0x00, - 0x00, - 0x04, - 0x87, - 0x01, - 0x86, - 0x01, - 0x91, - 0x08, - 0x87, - 0x01, - 0x65, - 0x01, - 0x65, - 0x04, - 0x87, - 0x00, - 0x05, - 0x65, - 0x87, - 0x87, - 0x65, - 0x6E, - 0x00, - 0x0A, - 0x65, - 0x00, - 0x08, - 0x87, - 0x65, - 0x6E, - 0x6F, - 0x87, - 0x86, - 0x64, - 0x64, - 0x04, - 0x90, - 0x00, - 0x16, - 0x8D, - 0x8D, - 0x8D, - 0x8E, - 0x95, - 0x63, - 0x96, - 0x96, - 0x9A, - 0x9A, - 0xA5, - 0x9A, - 0x8F, - 0x9A, - 0x8F, - 0xA5, - 0xA5, - 0x66, - 0xAD, - 0xAD, - 0xCA, - 0xAD, - 0x06, - 0xCA, - 0x00, - 0x15, - 0xC9, - 0xB0, - 0xCA, - 0x61, - 0x38, - 0x38, - 0x39, - 0xC9, - 0xFE, - 0xFF, - 0xCD, - 0xAC, - 0xD2, - 0xD7, - 0xE2, - 0xD1, - 0xD7, - 0xD7, - 0xE2, - 0xE2, - 0xB2, - 0x00, - 0x07, - 0xED, - 0x01, - 0xEE, - 0x12, - 0xFF, - 0x05, - 0xEE, - 0x00, - 0x15, - 0xFF, - 0xFF, - 0xE3, - 0xD8, - 0xD0, - 0xD8, - 0xC3, - 0x83, - 0xB0, - 0xA3, - 0x6A, - 0x49, - 0x7D, - 0x30, - 0x30, - 0x7D, - 0x7D, - 0x49, - 0x5B, - 0x51, - 0x20, - 0x00, - 0x04, - 0x0A, - 0x00, - 0x03, - 0xB6, - 0xAF, - 0xCA, - 0x00, - 0x11, - 0x7D, - 0x00, - 0x03, - 0x49, - 0x7D, - 0x7D, - 0x00, - 0x07, - 0x77, - 0x00, - 0x07, - 0x61, - 0x77, - 0x76, - 0xA1, - 0xA1, - 0xA1, - 0x6F, - 0x00, - 0x05, - 0x91, - 0x04, - 0x64, - 0x00, - 0x03, - 0x90, - 0x90, - 0x64, - 0x00, - 0x07, - 0x90, - 0x00, - 0x1B, - 0x4F, - 0x64, - 0x4F, - 0x4F, - 0x91, - 0x91, - 0x6F, - 0x6F, - 0x6E, - 0x6F, - 0x6E, - 0x6E, - 0x6E, - 0x5F, - 0x6E, - 0x6E, - 0x65, - 0x65, - 0x87, - 0x86, - 0x5E, - 0x5E, - 0x6C, - 0x6C, - 0x6C, - 0x8A, - 0x8A, - 0x00, - 0x05, - 0x5C, - 0x00, - 0x0B, - 0x8B, - 0x8B, - 0x8B, - 0x8C, - 0x8B, - 0x8D, - 0x8B, - 0x8C, - 0x8C, - 0x86, - 0x5E, - 0x00, - 0x04, - 0x65, - 0x04, - 0x5F, - 0x09, - 0x65, - 0x0C, - 0x5F, - 0x00, - 0x03, - 0x6E, - 0x6E, - 0x6E, - 0x00, - 0x04, - 0x65, - 0x00, - 0x0D, - 0x87, - 0x86, - 0x86, - 0x6C, - 0x86, - 0x6C, - 0x6C, - 0x86, - 0x6C, - 0x64, - 0x8C, - 0x90, - 0x8C, - 0x00, - 0x04, - 0x90, - 0x00, - 0x03, - 0x8C, - 0x64, - 0x64, - 0x00, - 0x04, - 0x86, - 0x00, - 0x09, - 0x87, - 0x87, - 0x5E, - 0x87, - 0x86, - 0x86, - 0x86, - 0x64, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x6E, - 0x65, - 0x87, - 0x87, - 0x91, - 0x86, - 0x05, - 0x87, - 0x01, - 0x65, - 0x06, - 0x87, - 0x00, - 0x04, - 0x86, - 0x87, - 0x87, - 0x87, - 0x04, - 0x65, - 0x00, - 0x03, - 0x6E, - 0x65, - 0x65, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x0B, - 0x65, - 0x6E, - 0x6E, - 0x6E, - 0x87, - 0x87, - 0x87, - 0x91, - 0x64, - 0x64, - 0x64, - 0x00, - 0x06, - 0x90, - 0x00, - 0x05, - 0x8D, - 0x8E, - 0x95, - 0x95, - 0x96, - 0x00, - 0x06, - 0x9A, - 0x00, - 0x08, - 0x8F, - 0xA5, - 0xA5, - 0xD5, - 0xAD, - 0xD5, - 0xAD, - 0xA6, - 0x04, - 0xCA, - 0x00, - 0x1D, - 0xA6, - 0xA6, - 0xCA, - 0xC9, - 0xCA, - 0x60, - 0x44, - 0x38, - 0x38, - 0x3A, - 0xCC, - 0xFF, - 0xCC, - 0xC5, - 0xC3, - 0xE3, - 0xE2, - 0xD7, - 0xD7, - 0xD7, - 0xE2, - 0xE2, - 0xB2, - 0xB2, - 0xB2, - 0xEC, - 0xED, - 0xED, - 0xEE, - 0x00, - 0x15, - 0xFF, - 0x04, - 0xEE, - 0x00, - 0x23, - 0xFF, - 0xFF, - 0xD1, - 0xCF, - 0xD0, - 0xD0, - 0xE9, - 0xCF, - 0xC6, - 0xB0, - 0x54, - 0x5B, - 0x5B, - 0x54, - 0xA3, - 0x3F, - 0x51, - 0x20, - 0xB0, - 0xAF, - 0xAF, - 0xB9, - 0xAF, - 0xAF, - 0xAF, - 0xB0, - 0xB6, - 0x0A, - 0x76, - 0xBE, - 0x7D, - 0x49, - 0x7D, - 0x49, - 0x49, - 0x00, - 0x08, - 0xBD, - 0x00, - 0x03, - 0x76, - 0xBD, - 0x49, - 0x00, - 0x06, - 0x77, - 0x00, - 0x07, - 0x61, - 0x77, - 0x61, - 0xA1, - 0xA1, - 0x6F, - 0x6F, - 0x00, - 0x04, - 0x91, - 0x01, - 0x90, - 0x09, - 0x8C, - 0x00, - 0x0C, - 0x8D, - 0x8C, - 0x8C, - 0x90, - 0x64, - 0x8C, - 0x64, - 0x64, - 0x64, - 0x91, - 0x91, - 0x91, - 0x05, - 0x6F, - 0x00, - 0x11, - 0x6E, - 0x6E, - 0x6E, - 0x5F, - 0x6E, - 0x5F, - 0x6E, - 0x6E, - 0x65, - 0x65, - 0x65, - 0x86, - 0x86, - 0x86, - 0x6C, - 0x6C, - 0x8B, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x0D, - 0x8B, - 0x5C, - 0x8B, - 0x8B, - 0x8C, - 0x8C, - 0x8B, - 0x8D, - 0x6C, - 0x86, - 0x86, - 0x65, - 0x65, - 0x00, - 0x05, - 0x5F, - 0x00, - 0x03, - 0x6E, - 0x6E, - 0x6E, - 0x00, - 0x05, - 0x65, - 0x05, - 0x5F, - 0x00, - 0x06, - 0x92, - 0x4E, - 0x92, - 0x5F, - 0x5F, - 0x92, - 0x05, - 0x5F, - 0x00, - 0x03, - 0x6E, - 0x6E, - 0x6E, - 0x00, - 0x04, - 0x87, - 0x07, - 0x86, - 0x00, - 0x03, - 0x64, - 0x64, - 0x64, - 0x00, - 0x06, - 0x90, - 0x05, - 0x64, - 0x00, - 0x0A, - 0x86, - 0x87, - 0x86, - 0x87, - 0x86, - 0x87, - 0x64, - 0x64, - 0x64, - 0x90, - 0x00, - 0x00, - 0x00, - 0x05, - 0x6E, - 0x6E, - 0x87, - 0x87, - 0x87, - 0x00, - 0x04, - 0x86, - 0x06, - 0x87, - 0x01, - 0x91, - 0x06, - 0x86, - 0x00, - 0x14, - 0x87, - 0x87, - 0x87, - 0x65, - 0x65, - 0x5F, - 0x65, - 0x6E, - 0x65, - 0x65, - 0x87, - 0x65, - 0x87, - 0x6E, - 0x87, - 0x6F, - 0x91, - 0x64, - 0x91, - 0x64, - 0x08, - 0x90, - 0x00, - 0x08, - 0x8D, - 0x8E, - 0x95, - 0x95, - 0x96, - 0x96, - 0x9A, - 0x9A, - 0x04, - 0x96, - 0x00, - 0x03, - 0x8F, - 0x8F, - 0x8F, - 0x00, - 0x06, - 0x66, - 0x01, - 0x43, - 0x05, - 0x66, - 0x00, - 0x10, - 0xC9, - 0x4F, - 0x44, - 0x44, - 0x38, - 0x50, - 0xB9, - 0xFF, - 0xC6, - 0xAC, - 0xD2, - 0xD1, - 0xED, - 0xE2, - 0xD1, - 0xD1, - 0x05, - 0xE2, - 0x00, - 0x05, - 0xB2, - 0xB2, - 0xED, - 0x6B, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x01, - 0xED, - 0x01, - 0xEE, - 0x0C, - 0xFF, - 0x00, - 0x12, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xE2, - 0xD8, - 0xC2, - 0xB3, - 0xC2, - 0xAA, - 0xC3, - 0xC6, - 0xC9, - 0xB6, - 0xB6, - 0xB0, - 0x05, - 0xAF, - 0x00, - 0x03, - 0xB0, - 0xB6, - 0xC9, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x04, - 0xC9, - 0x93, - 0xDC, - 0xBD, - 0x04, - 0x76, - 0x01, - 0xBC, - 0x01, - 0xBC, - 0x06, - 0x75, - 0x00, - 0x0B, - 0x76, - 0x76, - 0xA1, - 0xA1, - 0xA1, - 0x61, - 0xA1, - 0x61, - 0xA1, - 0x61, - 0xA1, - 0x00, - 0x04, - 0x6F, - 0x00, - 0x05, - 0x91, - 0x91, - 0x91, - 0x64, - 0x64, - 0x00, - 0x08, - 0x8C, - 0x00, - 0x03, - 0x8B, - 0x8B, - 0x8B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x06, - 0x6C, - 0x64, - 0x64, - 0x64, - 0x86, - 0x64, - 0x05, - 0x6F, - 0x04, - 0x6E, - 0x00, - 0x0F, - 0x9D, - 0x6E, - 0x5F, - 0x6E, - 0x6E, - 0x6E, - 0x65, - 0x65, - 0x87, - 0x5E, - 0x86, - 0x6C, - 0x6C, - 0x8B, - 0x8B, - 0x00, - 0x07, - 0x5C, - 0x00, - 0x1A, - 0x8B, - 0x8B, - 0x8B, - 0x8C, - 0x8B, - 0x8C, - 0x8C, - 0x6C, - 0x6C, - 0x87, - 0x65, - 0x6E, - 0x6E, - 0x65, - 0x5F, - 0x6E, - 0x6E, - 0x5F, - 0x6E, - 0x65, - 0x6E, - 0x6E, - 0x65, - 0x65, - 0x6E, - 0x65, - 0x04, - 0x5F, - 0x00, - 0x12, - 0x4E, - 0x4E, - 0x92, - 0x5F, - 0x92, - 0x5F, - 0x5F, - 0x50, - 0x5F, - 0x5F, - 0x61, - 0x5F, - 0x6E, - 0x6E, - 0x6F, - 0x87, - 0x87, - 0x87, - 0x05, - 0x86, - 0x00, - 0x0F, - 0x64, - 0x91, - 0x91, - 0x64, - 0x4F, - 0x90, - 0x90, - 0x6D, - 0x90, - 0x90, - 0x4F, - 0x4F, - 0xB5, - 0x64, - 0x4F, - 0x00, - 0x05, - 0x91, - 0x00, - 0x06, - 0x64, - 0x91, - 0x64, - 0x64, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x6E, - 0x65, - 0x87, - 0x87, - 0x86, - 0x64, - 0x86, - 0x64, - 0x64, - 0x86, - 0x86, - 0x87, - 0x04, - 0x86, - 0x00, - 0x0C, - 0x64, - 0x64, - 0x64, - 0x90, - 0x64, - 0x64, - 0x86, - 0x86, - 0x87, - 0x65, - 0x65, - 0x6E, - 0x04, - 0x65, - 0x00, - 0x04, - 0x87, - 0x64, - 0x86, - 0x91, - 0x05, - 0x64, - 0x04, - 0x90, - 0x00, - 0x0A, - 0x6D, - 0x90, - 0x90, - 0x4F, - 0x90, - 0x8D, - 0x8E, - 0x95, - 0x95, - 0xAB, - 0x04, - 0x9A, - 0x05, - 0x96, - 0x00, - 0x1D, - 0x8F, - 0x96, - 0x8F, - 0x8F, - 0xAE, - 0x8F, - 0xAE, - 0xC7, - 0x67, - 0xC7, - 0x97, - 0xC7, - 0x96, - 0xAC, - 0x68, - 0x59, - 0x38, - 0x38, - 0x41, - 0xAF, - 0xFF, - 0xCB, - 0xC3, - 0xEC, - 0xFF, - 0xFF, - 0xED, - 0xEC, - 0xB2, - 0x00, - 0x06, - 0xE2, - 0x00, - 0x05, - 0xED, - 0xE2, - 0xE3, - 0xE3, - 0xB2, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x03, - 0xE2, - 0xE3, - 0xED, - 0x00, - 0x0C, - 0xFF, - 0x00, - 0x18, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xE2, - 0xC5, - 0xC2, - 0xC4, - 0xD0, - 0x8A, - 0xAD, - 0xCB, - 0x83, - 0xB0, - 0xB0, - 0xB6, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0x93, - 0x05, - 0xA6, - 0x00, - 0x09, - 0xD5, - 0xC9, - 0x0A, - 0x9E, - 0xA1, - 0xA0, - 0xA0, - 0x75, - 0xE5, - 0x00, - 0x04, - 0x74, - 0x00, - 0x0F, - 0xE4, - 0x53, - 0xE4, - 0x9E, - 0x9E, - 0xA0, - 0xA0, - 0xA1, - 0xA1, - 0xA1, - 0xCE, - 0xA1, - 0x6F, - 0x6F, - 0x6F, - 0x00, - 0x06, - 0x91, - 0x00, - 0x12, - 0x64, - 0x8C, - 0x8C, - 0x8C, - 0x6C, - 0x8C, - 0x8C, - 0x8A, - 0x8C, - 0x8A, - 0x8A, - 0x8B, - 0x8B, - 0x8C, - 0x8A, - 0x8C, - 0x6C, - 0x8C, - 0x04, - 0x86, - 0x00, - 0x04, - 0x64, - 0x87, - 0x91, - 0x87, - 0x04, - 0x6F, - 0x00, - 0x05, - 0x6E, - 0x6E, - 0x6E, - 0x5F, - 0x5F, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x0C, - 0x65, - 0x87, - 0x65, - 0x87, - 0x5E, - 0x6C, - 0x6C, - 0x8B, - 0x5C, - 0x5C, - 0x5C, - 0x94, - 0x04, - 0x5C, - 0x00, - 0x0D, - 0x8B, - 0x5C, - 0x8B, - 0x8D, - 0x8C, - 0x8D, - 0x8B, - 0x8C, - 0x64, - 0x86, - 0x87, - 0x87, - 0x65, - 0x00, - 0x07, - 0x6E, - 0x00, - 0x06, - 0x65, - 0x65, - 0x6E, - 0x65, - 0x65, - 0x65, - 0x05, - 0x5F, - 0x00, - 0x26, - 0x92, - 0x5F, - 0x92, - 0x5F, - 0x92, - 0x5F, - 0x5F, - 0x5F, - 0x9D, - 0x6E, - 0x61, - 0x6E, - 0x6E, - 0x87, - 0x6F, - 0x87, - 0x86, - 0x86, - 0x86, - 0x64, - 0x86, - 0x86, - 0x87, - 0x91, - 0x91, - 0x91, - 0x64, - 0x4F, - 0x6D, - 0x4F, - 0x6D, - 0x6D, - 0x4F, - 0xB5, - 0x4F, - 0xB5, - 0x90, - 0x4F, - 0x07, - 0x91, - 0x00, - 0x03, - 0x90, - 0x6D, - 0x6D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x6E, - 0x65, - 0x87, - 0x86, - 0x64, - 0x64, - 0x64, - 0x90, - 0x90, - 0x64, - 0x64, - 0x64, - 0x8C, - 0x64, - 0x90, - 0x64, - 0x06, - 0x90, - 0x00, - 0x0C, - 0x64, - 0x86, - 0x86, - 0x87, - 0x87, - 0x6E, - 0x6E, - 0x65, - 0x87, - 0x87, - 0x86, - 0x64, - 0x04, - 0x90, - 0x00, - 0x09, - 0x6D, - 0x8D, - 0x6D, - 0x90, - 0x6D, - 0x8D, - 0x90, - 0x90, - 0x6D, - 0x00, - 0x04, - 0x90, - 0x00, - 0x09, - 0x8D, - 0x95, - 0x95, - 0x63, - 0x9A, - 0x9A, - 0x9A, - 0x96, - 0x63, - 0x00, - 0x04, - 0x96, - 0x01, - 0x63, - 0x07, - 0x97, - 0x05, - 0x8E, - 0x00, - 0x0A, - 0xAD, - 0x97, - 0x70, - 0x38, - 0x38, - 0x37, - 0xAF, - 0xFF, - 0xEE, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x14, - 0xEE, - 0xEE, - 0xEC, - 0xB2, - 0xEC, - 0xB2, - 0xEC, - 0xFF, - 0xFF, - 0xCF, - 0xC2, - 0xD0, - 0xEB, - 0xEC, - 0xFF, - 0xFF, - 0xFF, - 0xD7, - 0xD8, - 0xD7, - 0x0D, - 0xFF, - 0x00, - 0x22, - 0xEE, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xCC, - 0xD8, - 0xC2, - 0xC4, - 0xC4, - 0xD4, - 0x8F, - 0xC6, - 0xC6, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xA6, - 0xA6, - 0xD5, - 0xA6, - 0xA6, - 0xD5, - 0xA6, - 0x93, - 0xD5, - 0x93, - 0x93, - 0xC9, - 0xB6, - 0xCA, - 0xA8, - 0xA0, - 0x04, - 0xA8, - 0x00, - 0x16, - 0x9C, - 0x72, - 0xDA, - 0x72, - 0x72, - 0x9C, - 0x9C, - 0xA8, - 0x9E, - 0xB5, - 0xB5, - 0x91, - 0x6F, - 0x87, - 0x91, - 0x87, - 0x91, - 0x91, - 0x91, - 0xB5, - 0x64, - 0x90, - 0x08, - 0x8C, - 0x00, - 0x0E, - 0x8A, - 0x8A, - 0x8A, - 0x8B, - 0x8A, - 0x8B, - 0x8A, - 0x8B, - 0x8C, - 0x8A, - 0x8C, - 0x6C, - 0x6C, - 0x8C, - 0x04, - 0x86, - 0x00, - 0x06, - 0x91, - 0x87, - 0x6F, - 0x87, - 0x87, - 0x6F, - 0x08, - 0x6E, - 0x00, - 0x05, - 0x65, - 0x65, - 0x65, - 0x86, - 0x86, - 0x00, - 0x04, - 0x6C, - 0x00, - 0x13, - 0x5C, - 0x5C, - 0x55, - 0x5C, - 0x94, - 0x5C, - 0x5C, - 0x5C, - 0x8D, - 0x8B, - 0x8D, - 0x8B, - 0x8D, - 0x8B, - 0x8D, - 0x8C, - 0x8C, - 0x6C, - 0x86, - 0x00, - 0x0A, - 0x87, - 0x04, - 0x65, - 0x01, - 0x6E, - 0x01, - 0x6E, - 0x07, - 0x5F, - 0x00, - 0x05, - 0x50, - 0x5F, - 0x61, - 0x5F, - 0x9D, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x11, - 0x6F, - 0x6F, - 0x87, - 0x91, - 0x64, - 0x64, - 0x86, - 0x86, - 0x64, - 0x64, - 0x91, - 0x91, - 0x91, - 0x4F, - 0xB5, - 0x4F, - 0xB5, - 0x00, - 0x06, - 0x6D, - 0x00, - 0x0D, - 0x4F, - 0xB5, - 0x4F, - 0x91, - 0x91, - 0x4F, - 0x91, - 0x64, - 0x4F, - 0x4F, - 0x90, - 0x6D, - 0x6D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x87, - 0x87, - 0x91, - 0x64, - 0x90, - 0x90, - 0x90, - 0x00, - 0x05, - 0x8D, - 0x00, - 0x04, - 0x90, - 0x8D, - 0x8D, - 0x8D, - 0x05, - 0x8E, - 0x00, - 0x32, - 0x8D, - 0x90, - 0x90, - 0x64, - 0x86, - 0x87, - 0x65, - 0x65, - 0x87, - 0x87, - 0x87, - 0x64, - 0x64, - 0x90, - 0x8D, - 0xC8, - 0x8E, - 0xC8, - 0x8E, - 0x6D, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0x6D, - 0x90, - 0x4F, - 0x90, - 0x90, - 0x64, - 0x90, - 0x8D, - 0x8E, - 0xAB, - 0x96, - 0x9A, - 0x9A, - 0x96, - 0x96, - 0x96, - 0x63, - 0x95, - 0x8E, - 0x8E, - 0xB4, - 0xB4, - 0xAD, - 0x96, - 0x90, - 0x6D, - 0x06, - 0x90, - 0x00, - 0x07, - 0x9A, - 0x97, - 0x70, - 0x26, - 0x38, - 0x60, - 0xC6, - 0x00, - 0x0B, - 0xFF, - 0x00, - 0x11, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xD2, - 0xB3, - 0xC2, - 0xD0, - 0xD8, - 0xEA, - 0xE3, - 0xED, - 0xE3, - 0xE7, - 0xE3, - 0xEE, - 0x00, - 0x0C, - 0xFF, - 0x00, - 0x3B, - 0xEE, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xD1, - 0xD8, - 0xAA, - 0xC2, - 0xE6, - 0x8E, - 0xAF, - 0x24, - 0xB9, - 0xA6, - 0xCA, - 0xA6, - 0xCA, - 0xA6, - 0xD5, - 0xA6, - 0xD5, - 0xA6, - 0xA6, - 0x93, - 0xB7, - 0xA6, - 0xB7, - 0xB7, - 0xCA, - 0xB6, - 0xC9, - 0xC8, - 0x6D, - 0xC8, - 0x9C, - 0xC7, - 0xA7, - 0xD9, - 0xAE, - 0x69, - 0xAE, - 0xAE, - 0xAE, - 0xC7, - 0xC8, - 0xC8, - 0x90, - 0x90, - 0xB5, - 0x91, - 0x91, - 0x86, - 0x91, - 0x64, - 0x90, - 0x90, - 0x8C, - 0x8D, - 0x00, - 0x07, - 0x8C, - 0x00, - 0x06, - 0x8B, - 0x8A, - 0x8B, - 0x8B, - 0x8B, - 0x8A, - 0x04, - 0x8B, - 0x00, - 0x0E, - 0x8A, - 0x8A, - 0x8C, - 0x8C, - 0x6C, - 0x86, - 0x6C, - 0x86, - 0x86, - 0x86, - 0x87, - 0x86, - 0x87, - 0x6F, - 0x09, - 0x6E, - 0x00, - 0x05, - 0x65, - 0x87, - 0x87, - 0x86, - 0x86, - 0x00, - 0x04, - 0x6C, - 0x00, - 0x1D, - 0x8B, - 0x5C, - 0x5C, - 0x5C, - 0x94, - 0x5C, - 0x94, - 0x5C, - 0x5C, - 0x5C, - 0x8D, - 0x5C, - 0x8E, - 0x8E, - 0x8E, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0x64, - 0x86, - 0x86, - 0x91, - 0x86, - 0x87, - 0x6F, - 0x87, - 0x91, - 0x86, - 0x00, - 0x04, - 0x87, - 0x00, - 0x10, - 0x65, - 0x65, - 0x65, - 0x6E, - 0x5F, - 0x6E, - 0x5F, - 0x6E, - 0x6E, - 0x5F, - 0x6E, - 0x6E, - 0x5F, - 0x6E, - 0x6E, - 0x6E, - 0x04, - 0x6F, - 0x00, - 0x23, - 0x87, - 0x91, - 0x86, - 0x86, - 0x64, - 0x8C, - 0x64, - 0x64, - 0x86, - 0x91, - 0x91, - 0x64, - 0x90, - 0x4F, - 0x6D, - 0x4F, - 0x6D, - 0x4F, - 0x90, - 0x6D, - 0x4F, - 0x6D, - 0x90, - 0x6D, - 0x4F, - 0xB5, - 0x4F, - 0x91, - 0x4F, - 0x4F, - 0x91, - 0x90, - 0x6D, - 0x6D, - 0x6D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x87, - 0x91, - 0x86, - 0x64, - 0x90, - 0x8D, - 0x8D, - 0xA4, - 0x04, - 0x8E, - 0x01, - 0xA4, - 0x04, - 0x8E, - 0x00, - 0x09, - 0x97, - 0x95, - 0x97, - 0x8E, - 0x8E, - 0x8D, - 0x90, - 0x90, - 0x64, - 0x00, - 0x06, - 0x87, - 0x00, - 0x05, - 0x64, - 0x90, - 0x8D, - 0x8E, - 0xC8, - 0x00, - 0x05, - 0x8E, - 0x00, - 0x1B, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0xB5, - 0x64, - 0x91, - 0x64, - 0x91, - 0x90, - 0x8D, - 0x8D, - 0x8E, - 0x95, - 0xAB, - 0x96, - 0x96, - 0x95, - 0x95, - 0x95, - 0x8E, - 0x8E, - 0x9A, - 0xAC, - 0xAC, - 0xAC, - 0x9A, - 0x00, - 0x08, - 0x64, - 0x00, - 0x07, - 0x8D, - 0x90, - 0x88, - 0x41, - 0x67, - 0xC3, - 0xB2, - 0x00, - 0x09, - 0xFF, - 0x00, - 0x12, - 0xD7, - 0xEF, - 0xFF, - 0xFF, - 0xFF, - 0xD7, - 0xD2, - 0xCF, - 0x94, - 0xAA, - 0xB3, - 0xEA, - 0xD8, - 0xCF, - 0xEB, - 0xC3, - 0xD3, - 0xD7, - 0x0C, - 0xFF, - 0x04, - 0xEE, - 0x00, - 0x10, - 0xFF, - 0xFF, - 0xB2, - 0xC5, - 0xAA, - 0xAA, - 0x9A, - 0xCD, - 0xEE, - 0xFF, - 0xCB, - 0xCA, - 0xA6, - 0xA6, - 0xA6, - 0xD5, - 0x04, - 0xA6, - 0x00, - 0x3B, - 0x93, - 0xD5, - 0x93, - 0xB7, - 0xB7, - 0xB7, - 0xCA, - 0xB6, - 0xC9, - 0x97, - 0xC8, - 0x97, - 0xAE, - 0xAE, - 0x8F, - 0xB7, - 0xD5, - 0xA6, - 0xD5, - 0xD5, - 0xB7, - 0x8F, - 0xC7, - 0x8E, - 0xA4, - 0x8D, - 0x8C, - 0x8C, - 0x8C, - 0xD4, - 0x8C, - 0x8C, - 0x90, - 0x8C, - 0x8D, - 0x8C, - 0x8C, - 0x8C, - 0xA4, - 0x8B, - 0xAA, - 0x8B, - 0xAA, - 0x8B, - 0xAA, - 0x8B, - 0xAA, - 0x8B, - 0xAA, - 0x8B, - 0xAA, - 0xAA, - 0x8B, - 0x8A, - 0x8C, - 0x6C, - 0x6C, - 0x86, - 0x6C, - 0x00, - 0x04, - 0x86, - 0x00, - 0x17, - 0x64, - 0x86, - 0x91, - 0x87, - 0x87, - 0x6F, - 0x87, - 0x65, - 0x6E, - 0x65, - 0x6E, - 0x6E, - 0x65, - 0x87, - 0x86, - 0x86, - 0x86, - 0x6C, - 0x6C, - 0x8C, - 0x6C, - 0x8A, - 0x8B, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x06, - 0x94, - 0x5C, - 0x5C, - 0x5C, - 0x8E, - 0x5C, - 0x06, - 0x8E, - 0x00, - 0x03, - 0x6D, - 0x8D, - 0x90, - 0x00, - 0x05, - 0x64, - 0x01, - 0x86, - 0x01, - 0x64, - 0x07, - 0x86, - 0x00, - 0x07, - 0x87, - 0x87, - 0x65, - 0x65, - 0x65, - 0x6E, - 0x87, - 0x00, - 0x04, - 0x6E, - 0x00, - 0x09, - 0x6F, - 0x6F, - 0x6E, - 0x6F, - 0x6F, - 0x6F, - 0x91, - 0x91, - 0x91, - 0x00, - 0x04, - 0x64, - 0x00, - 0x19, - 0x86, - 0x64, - 0x86, - 0x64, - 0x91, - 0x64, - 0x91, - 0x4F, - 0x90, - 0x4F, - 0x90, - 0x91, - 0x64, - 0x4F, - 0xB5, - 0x90, - 0x90, - 0x4F, - 0x4F, - 0x64, - 0x64, - 0x91, - 0x91, - 0x64, - 0x64, - 0x00, - 0x05, - 0x90, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x64, - 0x91, - 0xB5, - 0x90, - 0x90, - 0x8D, - 0x8D, - 0xC8, - 0x95, - 0x95, - 0x8E, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0x00, - 0x07, - 0x8E, - 0x00, - 0x15, - 0x8D, - 0x90, - 0x64, - 0x91, - 0x87, - 0x87, - 0x87, - 0x6F, - 0x87, - 0x91, - 0x91, - 0x90, - 0x8D, - 0xC8, - 0x8E, - 0xC8, - 0x8E, - 0x8E, - 0x8E, - 0x8D, - 0x8D, - 0x00, - 0x04, - 0x90, - 0x00, - 0x17, - 0x64, - 0x91, - 0x91, - 0x91, - 0x90, - 0x90, - 0x8D, - 0xA4, - 0x8E, - 0x95, - 0xAB, - 0xAB, - 0x95, - 0x8E, - 0x8D, - 0x8D, - 0xAB, - 0xC5, - 0x9A, - 0xB4, - 0xAC, - 0x96, - 0x65, - 0x00, - 0x07, - 0x86, - 0x00, - 0x08, - 0x87, - 0x65, - 0x91, - 0xD5, - 0xE3, - 0xE2, - 0xB2, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x16, - 0xEE, - 0xEE, - 0xFF, - 0x05, - 0xCD, - 0xAF, - 0xB9, - 0x83, - 0xD2, - 0xCF, - 0xD0, - 0xAA, - 0xAA, - 0xE9, - 0xC5, - 0xD2, - 0xD8, - 0xD3, - 0xD8, - 0xD3, - 0xD8, - 0xED, - 0x0D, - 0xFF, - 0x00, - 0x32, - 0xEE, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xED, - 0xD2, - 0xB4, - 0xC5, - 0xCB, - 0xFF, - 0xFF, - 0xFF, - 0xCC, - 0xC9, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xCA, - 0xA6, - 0xA6, - 0x93, - 0xD5, - 0xB7, - 0xD5, - 0xB7, - 0xB7, - 0xB7, - 0xA6, - 0xB6, - 0xB6, - 0xC7, - 0x95, - 0x8F, - 0xA5, - 0xD5, - 0xCA, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xAD, - 0xA5, - 0x9A, - 0xAB, - 0xA4, - 0xA4, - 0x8B, - 0x07, - 0x8C, - 0x00, - 0x11, - 0xA4, - 0x8D, - 0xA4, - 0xAA, - 0xA4, - 0x99, - 0x99, - 0x99, - 0xAA, - 0xA4, - 0xAA, - 0xA4, - 0xAA, - 0x8C, - 0x8B, - 0x8B, - 0x8B, - 0x00, - 0x04, - 0x8C, - 0x01, - 0x6C, - 0x01, - 0x8C, - 0x07, - 0x86, - 0x00, - 0x03, - 0x91, - 0x86, - 0x91, - 0x00, - 0x04, - 0x87, - 0x00, - 0x05, - 0x65, - 0x6E, - 0x65, - 0x87, - 0x87, - 0x00, - 0x04, - 0x86, - 0x00, - 0x06, - 0x6C, - 0x6C, - 0x6C, - 0x8A, - 0x8B, - 0x8B, - 0x05, - 0x5C, - 0x00, - 0x0E, - 0x95, - 0x5C, - 0x8E, - 0x5C, - 0x8E, - 0x95, - 0x63, - 0x95, - 0x63, - 0x8E, - 0x97, - 0x8E, - 0x6D, - 0x6D, - 0x06, - 0x90, - 0x01, - 0x86, - 0x01, - 0x64, - 0x0A, - 0x86, - 0x00, - 0x32, - 0x87, - 0x87, - 0x86, - 0x86, - 0x86, - 0x91, - 0x87, - 0x91, - 0x87, - 0x6F, - 0x6F, - 0x91, - 0x91, - 0x91, - 0x64, - 0x86, - 0x86, - 0x64, - 0x86, - 0x8C, - 0x64, - 0x8C, - 0x64, - 0x86, - 0x64, - 0x64, - 0x64, - 0x91, - 0x64, - 0x64, - 0x64, - 0x91, - 0x91, - 0x91, - 0x64, - 0x91, - 0x64, - 0x91, - 0x64, - 0x91, - 0x64, - 0x91, - 0x64, - 0x91, - 0x91, - 0x64, - 0x64, - 0x90, - 0x90, - 0x90, - 0x00, - 0x00, - 0x00, - 0x24, - 0x90, - 0x64, - 0x90, - 0x90, - 0x8D, - 0x90, - 0xC8, - 0xA4, - 0x97, - 0x95, - 0x95, - 0x8E, - 0xA4, - 0xA4, - 0x8E, - 0xA4, - 0x8E, - 0x8E, - 0x8D, - 0x8E, - 0x8E, - 0x8E, - 0x90, - 0x90, - 0x64, - 0x91, - 0x91, - 0x87, - 0x87, - 0x87, - 0x91, - 0x91, - 0x90, - 0x90, - 0x8D, - 0x8D, - 0x05, - 0x8E, - 0x00, - 0x08, - 0xA4, - 0x8C, - 0x8D, - 0x8C, - 0x90, - 0x90, - 0x90, - 0x64, - 0x04, - 0x90, - 0x00, - 0x14, - 0xA4, - 0xA4, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x90, - 0x6E, - 0x90, - 0x96, - 0xAD, - 0x8E, - 0xB4, - 0xC5, - 0x9A, - 0x5E, - 0x5E, - 0x86, - 0x87, - 0x05, - 0x86, - 0x00, - 0x07, - 0x64, - 0xAC, - 0xD7, - 0xED, - 0xEC, - 0xD1, - 0xED, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x15, - 0x6B, - 0xED, - 0xEE, - 0xEF, - 0xB9, - 0xC9, - 0xDA, - 0x9C, - 0x9A, - 0xE9, - 0x99, - 0xA4, - 0xC4, - 0xB3, - 0xCF, - 0x01, - 0xAB, - 0xB3, - 0xC2, - 0xD3, - 0xE3, - 0x00, - 0x0D, - 0xFF, - 0x05, - 0xEE, - 0x00, - 0x31, - 0xFF, - 0xEE, - 0xE2, - 0xEC, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xF0, - 0xB0, - 0xCA, - 0xA6, - 0xCA, - 0xCA, - 0xA6, - 0xA6, - 0xA6, - 0xB7, - 0x93, - 0xD5, - 0xB7, - 0xB7, - 0xD5, - 0x93, - 0xA6, - 0xB6, - 0xB6, - 0x8F, - 0x96, - 0xA5, - 0xAD, - 0xCA, - 0xC9, - 0xC9, - 0xB6, - 0xB6, - 0xC5, - 0xC9, - 0xAC, - 0xB4, - 0x9A, - 0xAB, - 0x95, - 0xA4, - 0xA4, - 0xAA, - 0x8C, - 0x8B, - 0x00, - 0x04, - 0x8C, - 0x00, - 0x10, - 0xE6, - 0xAA, - 0xA4, - 0xA4, - 0x99, - 0xC4, - 0xC4, - 0xC4, - 0x95, - 0xC4, - 0x99, - 0xA4, - 0xA4, - 0xA4, - 0x8C, - 0xE6, - 0x05, - 0x8C, - 0x04, - 0x86, - 0x00, - 0x1B, - 0x87, - 0x87, - 0x91, - 0x87, - 0x91, - 0x87, - 0x87, - 0x91, - 0x87, - 0x91, - 0x87, - 0x87, - 0x87, - 0x65, - 0x87, - 0x87, - 0x87, - 0x86, - 0x86, - 0x8C, - 0x6C, - 0x6C, - 0x6C, - 0x8A, - 0x6C, - 0x8B, - 0x8B, - 0x00, - 0x06, - 0x5C, - 0x00, - 0x2F, - 0x8E, - 0x5C, - 0x8E, - 0x8E, - 0x8E, - 0x95, - 0x97, - 0x8E, - 0x97, - 0x8E, - 0x8E, - 0x8E, - 0x8D, - 0x8D, - 0x90, - 0x8D, - 0x90, - 0x90, - 0x90, - 0x64, - 0x8C, - 0x64, - 0x86, - 0x8C, - 0x86, - 0x6C, - 0x86, - 0x8C, - 0x86, - 0x64, - 0x8C, - 0x8C, - 0x86, - 0x86, - 0x64, - 0x64, - 0x64, - 0x91, - 0x91, - 0x86, - 0x91, - 0x87, - 0x91, - 0x86, - 0x64, - 0x64, - 0x64, - 0x00, - 0x05, - 0x86, - 0x00, - 0x0B, - 0x64, - 0x86, - 0x64, - 0x86, - 0x91, - 0x64, - 0x91, - 0x64, - 0x64, - 0x91, - 0x64, - 0x00, - 0x07, - 0x91, - 0x00, - 0x0B, - 0x87, - 0x64, - 0x86, - 0x91, - 0x86, - 0x91, - 0x86, - 0x90, - 0x64, - 0x90, - 0x64, - 0x00, - 0x00, - 0x00, - 0x05, - 0x90, - 0x00, - 0x09, - 0x8D, - 0x8D, - 0x8E, - 0x8E, - 0x95, - 0x8E, - 0xA4, - 0xA4, - 0x95, - 0x00, - 0x04, - 0xA4, - 0x05, - 0x8D, - 0x00, - 0x18, - 0x91, - 0x64, - 0x64, - 0x91, - 0x91, - 0x87, - 0x91, - 0x64, - 0x90, - 0x90, - 0x8D, - 0x8D, - 0xA4, - 0x8E, - 0x8E, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0xA4, - 0xA4, - 0x8D, - 0x8D, - 0x8D, - 0x04, - 0x90, - 0x00, - 0x16, - 0x8D, - 0xA4, - 0xA4, - 0xA4, - 0x95, - 0x95, - 0xAB, - 0x95, - 0xAB, - 0x90, - 0x70, - 0x58, - 0x8E, - 0xAD, - 0x96, - 0xAD, - 0xAC, - 0xB4, - 0xAB, - 0x86, - 0x87, - 0x5E, - 0x04, - 0x86, - 0x00, - 0x20, - 0x8D, - 0xC3, - 0xE3, - 0xD1, - 0xFF, - 0xFF, - 0xB2, - 0x6B, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEC, - 0xED, - 0xFF, - 0xEE, - 0x56, - 0xB6, - 0x9E, - 0x98, - 0x92, - 0xA4, - 0xAB, - 0xC4, - 0xC4, - 0xAB, - 0xC4, - 0xA4, - 0xC4, - 0xC4, - 0xE9, - 0xC3, - 0x0D, - 0xFF, - 0x04, - 0xEE, - 0x01, - 0xED, - 0x0A, - 0xFF, - 0x00, - 0x18, - 0xF0, - 0xAF, - 0xCA, - 0xD5, - 0xA6, - 0xA6, - 0xA6, - 0xD5, - 0x93, - 0xD5, - 0xB7, - 0xD5, - 0xA6, - 0xD5, - 0xA6, - 0xA6, - 0xCA, - 0xB6, - 0xB6, - 0xA5, - 0x9A, - 0xA5, - 0xCA, - 0xC9, - 0x05, - 0xB6, - 0x00, - 0x0E, - 0xC9, - 0xAD, - 0xB4, - 0x9A, - 0xAB, - 0xC4, - 0xA4, - 0x99, - 0xA4, - 0x8B, - 0xA4, - 0xA4, - 0xA4, - 0x8B, - 0x04, - 0xA4, - 0x01, - 0xC4, - 0x01, - 0xC4, - 0x04, - 0xAB, - 0x00, - 0x11, - 0x95, - 0xA4, - 0xA4, - 0xA4, - 0x8D, - 0x90, - 0x8D, - 0x90, - 0xE6, - 0x90, - 0xB5, - 0x64, - 0xD4, - 0x91, - 0x87, - 0x87, - 0x91, - 0x00, - 0x04, - 0x87, - 0x04, - 0x91, - 0x01, - 0x86, - 0x07, - 0x87, - 0x00, - 0x0A, - 0x91, - 0x8C, - 0x86, - 0x86, - 0x8C, - 0x6C, - 0x8C, - 0x8B, - 0x8B, - 0x8B, - 0x05, - 0x5C, - 0x00, - 0x2E, - 0x8E, - 0x5C, - 0xA4, - 0x8E, - 0x8E, - 0x8E, - 0x97, - 0x8E, - 0x97, - 0x8E, - 0x97, - 0x8E, - 0xC8, - 0x8E, - 0x6D, - 0x8D, - 0x90, - 0x90, - 0x90, - 0x8C, - 0x90, - 0x64, - 0x8C, - 0x8C, - 0x86, - 0x8C, - 0x64, - 0x8C, - 0x64, - 0x8C, - 0x8C, - 0x90, - 0x8C, - 0x90, - 0x8C, - 0x90, - 0x90, - 0x90, - 0x64, - 0x86, - 0x64, - 0x64, - 0x91, - 0x64, - 0x64, - 0x64, - 0x0A, - 0x86, - 0x00, - 0x1A, - 0x87, - 0x87, - 0x86, - 0x64, - 0x64, - 0x86, - 0x64, - 0x86, - 0x86, - 0x87, - 0x86, - 0x64, - 0x86, - 0x91, - 0x86, - 0x64, - 0x86, - 0x86, - 0x87, - 0x86, - 0x64, - 0x64, - 0x86, - 0x64, - 0x90, - 0x64, - 0x00, - 0x00, - 0x00, - 0x24, - 0x8D, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0x8D, - 0x8D, - 0x8E, - 0x8E, - 0x8E, - 0x95, - 0x95, - 0x95, - 0xA4, - 0x95, - 0xA4, - 0xA4, - 0x8D, - 0x8D, - 0x8D, - 0xA4, - 0x8D, - 0x90, - 0x90, - 0xB5, - 0x64, - 0x64, - 0x86, - 0x91, - 0x91, - 0x90, - 0x90, - 0x8D, - 0x8D, - 0x8D, - 0x8E, - 0x06, - 0x95, - 0x00, - 0x04, - 0x99, - 0xA4, - 0xA4, - 0xA4, - 0x06, - 0x8D, - 0x00, - 0x39, - 0xA4, - 0x95, - 0x95, - 0xAB, - 0xAB, - 0x95, - 0x95, - 0xAB, - 0x90, - 0x58, - 0x58, - 0x8E, - 0xD5, - 0x8F, - 0xA5, - 0xAC, - 0xB4, - 0x5C, - 0x6C, - 0x5E, - 0x87, - 0x86, - 0x5E, - 0x86, - 0x8D, - 0xB6, - 0xE3, - 0xD1, - 0xB2, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEC, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEF, - 0xCA, - 0x88, - 0x4D, - 0x70, - 0xA4, - 0xE9, - 0xAB, - 0xAB, - 0xC4, - 0xC4, - 0xA4, - 0xAA, - 0xC5, - 0xED, - 0x00, - 0x0C, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xFF, - 0x05, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x0A, - 0x24, - 0xAF, - 0xAD, - 0xB7, - 0xD5, - 0xD5, - 0xA6, - 0xD5, - 0xA6, - 0xD5, - 0x06, - 0xA6, - 0x00, - 0x2B, - 0xCA, - 0xC9, - 0xB6, - 0xB7, - 0x9A, - 0xA5, - 0xAD, - 0xCA, - 0xC9, - 0xB6, - 0xB6, - 0xB6, - 0xC5, - 0xAC, - 0xAD, - 0xB4, - 0xE9, - 0xAB, - 0xAB, - 0xC4, - 0xA4, - 0xA4, - 0xA4, - 0xAA, - 0xA4, - 0xAA, - 0xE6, - 0xA4, - 0xAA, - 0xC4, - 0xC4, - 0xC4, - 0xAB, - 0xAB, - 0x9A, - 0x9A, - 0x96, - 0xAB, - 0xAB, - 0x8E, - 0xC8, - 0x8D, - 0x8D, - 0x00, - 0x04, - 0x90, - 0x01, - 0xB5, - 0x01, - 0x90, - 0x04, - 0x91, - 0x00, - 0x14, - 0x87, - 0x91, - 0x87, - 0x91, - 0x91, - 0x91, - 0x64, - 0xB5, - 0x91, - 0x91, - 0x91, - 0xD4, - 0x87, - 0x87, - 0xD4, - 0x86, - 0xD4, - 0x86, - 0x64, - 0x86, - 0x05, - 0x8C, - 0x00, - 0x03, - 0x8B, - 0x5C, - 0xA4, - 0x00, - 0x04, - 0x5C, - 0x00, - 0x04, - 0xA4, - 0xA4, - 0x8E, - 0xA4, - 0x09, - 0x8E, - 0x00, - 0x0C, - 0x8D, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0x8C, - 0x90, - 0x8C, - 0x8C, - 0x8C, - 0x86, - 0x86, - 0x05, - 0x8C, - 0x00, - 0x0F, - 0x8D, - 0x8C, - 0x8C, - 0x8C, - 0x90, - 0x90, - 0x8D, - 0x90, - 0x90, - 0x64, - 0x91, - 0x86, - 0x64, - 0x64, - 0x64, - 0x00, - 0x05, - 0x86, - 0x00, - 0x06, - 0x87, - 0x65, - 0x5E, - 0x87, - 0x87, - 0x65, - 0x04, - 0x87, - 0x04, - 0x86, - 0x07, - 0x87, - 0x00, - 0x0B, - 0x86, - 0x86, - 0x87, - 0x87, - 0x86, - 0x86, - 0x86, - 0x64, - 0x64, - 0x64, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x01, - 0x8E, - 0x01, - 0x8E, - 0x05, - 0x8D, - 0x00, - 0x1F, - 0x8E, - 0x8E, - 0x95, - 0x95, - 0xAB, - 0xAB, - 0xAB, - 0x95, - 0x8E, - 0xA4, - 0x8D, - 0xA4, - 0x8D, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0x90, - 0x8C, - 0x90, - 0x64, - 0x64, - 0x64, - 0x90, - 0x8D, - 0x8D, - 0x8D, - 0xA4, - 0x8E, - 0x95, - 0x95, - 0x00, - 0x04, - 0xAB, - 0x00, - 0x0C, - 0x95, - 0x95, - 0x95, - 0x99, - 0x95, - 0x95, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0x95, - 0x95, - 0x04, - 0xAB, - 0x00, - 0x16, - 0x95, - 0x95, - 0x8D, - 0x5F, - 0x5F, - 0x8D, - 0xA5, - 0x8F, - 0x8F, - 0xAC, - 0xAC, - 0xC4, - 0x86, - 0x87, - 0x5E, - 0x86, - 0x86, - 0x8E, - 0xC5, - 0xE3, - 0xD1, - 0xEF, - 0x07, - 0xFF, - 0x00, - 0x03, - 0xEC, - 0xED, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x0D, - 0x56, - 0xB0, - 0x73, - 0xA2, - 0x70, - 0xC4, - 0xD3, - 0xD3, - 0xB4, - 0xB4, - 0xD3, - 0xC5, - 0xD7, - 0x00, - 0x09, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x06, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x18, - 0x05, - 0xB0, - 0xB7, - 0xB7, - 0x93, - 0xD5, - 0xD5, - 0xA6, - 0xA6, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xA6, - 0xCA, - 0xA6, - 0xCA, - 0xC9, - 0xB6, - 0xA5, - 0x96, - 0x9A, - 0xAD, - 0xCA, - 0x05, - 0xC9, - 0x00, - 0x09, - 0xAC, - 0xB4, - 0xB4, - 0x9A, - 0xAB, - 0xAB, - 0xAB, - 0xC4, - 0x99, - 0x00, - 0x05, - 0xA4, - 0x00, - 0x06, - 0xAA, - 0xA4, - 0xC4, - 0xC4, - 0xAB, - 0xAB, - 0x04, - 0x9A, - 0x00, - 0x0F, - 0x96, - 0xC7, - 0x97, - 0x8E, - 0xC8, - 0xC8, - 0xC8, - 0x6D, - 0x6D, - 0x6D, - 0x90, - 0xB5, - 0x90, - 0xB5, - 0xB5, - 0x00, - 0x06, - 0x91, - 0x00, - 0x0E, - 0xB5, - 0xB5, - 0x90, - 0x90, - 0x90, - 0xB5, - 0x64, - 0x91, - 0xB5, - 0x64, - 0xB5, - 0x64, - 0xB5, - 0x64, - 0x04, - 0x8C, - 0x00, - 0x0A, - 0x8B, - 0x8B, - 0x8B, - 0xA4, - 0x5C, - 0x8E, - 0x99, - 0x5C, - 0x95, - 0x95, - 0x09, - 0x8E, - 0x00, - 0x08, - 0x8D, - 0x8E, - 0x8D, - 0x8E, - 0x8D, - 0x8D, - 0x8D, - 0x90, - 0x04, - 0x64, - 0x00, - 0x05, - 0x86, - 0x64, - 0x8C, - 0x8C, - 0x8C, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x06, - 0xA4, - 0x8D, - 0x8D, - 0xA4, - 0x8D, - 0x8D, - 0x06, - 0x90, - 0x00, - 0x09, - 0x8C, - 0x8C, - 0x8C, - 0x6C, - 0x86, - 0x86, - 0x86, - 0x5E, - 0x87, - 0x00, - 0x08, - 0x65, - 0x0C, - 0x87, - 0x00, - 0x03, - 0x65, - 0x87, - 0x87, - 0x00, - 0x07, - 0x86, - 0x00, - 0x00, - 0x01, - 0x95, - 0x01, - 0x95, - 0x06, - 0x8E, - 0x01, - 0x95, - 0x04, - 0x96, - 0x00, - 0x27, - 0xAB, - 0xAB, - 0x8E, - 0x8E, - 0xA4, - 0xA4, - 0x8D, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0x90, - 0x8C, - 0x90, - 0x8C, - 0x64, - 0x8C, - 0x8D, - 0x8D, - 0xA4, - 0x8E, - 0x8E, - 0x95, - 0x63, - 0x96, - 0x63, - 0x96, - 0x96, - 0x96, - 0x94, - 0xAB, - 0xAB, - 0x95, - 0x95, - 0xAB, - 0x63, - 0x95, - 0x95, - 0x95, - 0x00, - 0x06, - 0xAB, - 0x00, - 0x16, - 0x96, - 0xAB, - 0x8E, - 0x87, - 0x58, - 0x90, - 0xA5, - 0x8F, - 0x63, - 0xAC, - 0xAC, - 0x8C, - 0x86, - 0x5E, - 0x86, - 0x6C, - 0x63, - 0xC5, - 0xCB, - 0xD1, - 0xD1, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x0D, - 0xCB, - 0xA6, - 0x9E, - 0xAC, - 0xD2, - 0xD2, - 0xCB, - 0xCB, - 0xE3, - 0xB2, - 0xEE, - 0xFF, - 0xEE, - 0x00, - 0x09, - 0xFF, - 0x00, - 0x04, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0x05, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x20, - 0xF0, - 0xB6, - 0xB7, - 0xB7, - 0xD5, - 0xA6, - 0xA6, - 0xCA, - 0xCA, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xC9, - 0xCA, - 0xA6, - 0xC9, - 0xB6, - 0x00, - 0x96, - 0x9A, - 0xA5, - 0xAD, - 0xAC, - 0xC9, - 0xC9, - 0xC9, - 0xAC, - 0xB4, - 0xB4, - 0x9A, - 0x05, - 0xAB, - 0x00, - 0x15, - 0x95, - 0xA4, - 0x99, - 0x99, - 0x99, - 0xAA, - 0xAA, - 0x99, - 0xC4, - 0xAB, - 0xC4, - 0x9A, - 0x9A, - 0xA5, - 0xA5, - 0xA5, - 0x96, - 0x96, - 0x97, - 0x8E, - 0x97, - 0x00, - 0x07, - 0xC8, - 0x00, - 0x04, - 0x6D, - 0x90, - 0x90, - 0xB5, - 0x05, - 0x90, - 0x00, - 0x06, - 0x8D, - 0x8D, - 0xC8, - 0x8D, - 0x8D, - 0x8D, - 0x08, - 0x90, - 0x00, - 0x0A, - 0x8D, - 0x8C, - 0x8C, - 0x8C, - 0x8D, - 0x8D, - 0x8D, - 0xA4, - 0x99, - 0xA4, - 0x08, - 0x95, - 0x06, - 0x8E, - 0x00, - 0x16, - 0x8D, - 0xA4, - 0x8E, - 0xA4, - 0x8D, - 0x90, - 0x64, - 0x91, - 0x91, - 0x6F, - 0x87, - 0x91, - 0x86, - 0x86, - 0x64, - 0x8C, - 0x8B, - 0xA4, - 0xA4, - 0xA4, - 0x8E, - 0x95, - 0x04, - 0x8E, - 0x01, - 0x8D, - 0x01, - 0x8D, - 0x06, - 0x90, - 0x00, - 0x07, - 0x8C, - 0x86, - 0x6C, - 0x86, - 0x86, - 0x86, - 0x5E, - 0x00, - 0x09, - 0x65, - 0x01, - 0x87, - 0x06, - 0x65, - 0x01, - 0x87, - 0x09, - 0x65, - 0x00, - 0x04, - 0x87, - 0x87, - 0x86, - 0x86, - 0x00, - 0x00, - 0x00, - 0x15, - 0x63, - 0xAB, - 0x95, - 0x95, - 0x8E, - 0x8E, - 0x8E, - 0x95, - 0x96, - 0x9A, - 0x8F, - 0x9A, - 0x9A, - 0x96, - 0x96, - 0x95, - 0x95, - 0x8E, - 0x8E, - 0xA4, - 0xA4, - 0x00, - 0x05, - 0x8D, - 0x00, - 0x0D, - 0x8C, - 0x8C, - 0x90, - 0x8D, - 0x8D, - 0xA4, - 0x8E, - 0x95, - 0x95, - 0x96, - 0x96, - 0x9A, - 0x8F, - 0x00, - 0x04, - 0x9A, - 0x08, - 0x94, - 0x01, - 0x9A, - 0x01, - 0x94, - 0x06, - 0x9A, - 0x00, - 0x14, - 0x96, - 0x96, - 0x64, - 0x5F, - 0x90, - 0xA5, - 0xA5, - 0x95, - 0xAC, - 0xB4, - 0x5D, - 0x5E, - 0x6C, - 0x8E, - 0x9A, - 0xC5, - 0xCB, - 0xE3, - 0xCB, - 0x6B, - 0x07, - 0xFF, - 0x00, - 0x05, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x08, - 0xFF, - 0x01, - 0xB9, - 0x01, - 0xD1, - 0x0F, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0x00, - 0x07, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x20, - 0xEF, - 0xC9, - 0xB7, - 0xB7, - 0xD5, - 0xA6, - 0xCA, - 0xCA, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xCA, - 0xC9, - 0xCA, - 0xA6, - 0xCA, - 0xB6, - 0xD5, - 0x9A, - 0x9A, - 0xA5, - 0xAD, - 0xCA, - 0xAC, - 0xAC, - 0xAD, - 0xAD, - 0xB4, - 0xB4, - 0x9A, - 0x06, - 0xAB, - 0x00, - 0x04, - 0xC4, - 0x95, - 0x99, - 0xC4, - 0x04, - 0x99, - 0x00, - 0x23, - 0xC4, - 0xAB, - 0x9A, - 0x9A, - 0xB4, - 0xA5, - 0x9A, - 0x8F, - 0xC7, - 0xC7, - 0x97, - 0x97, - 0xC8, - 0x97, - 0x97, - 0x97, - 0xC8, - 0x97, - 0xC8, - 0xC8, - 0xC8, - 0x6D, - 0x8D, - 0x6D, - 0x6D, - 0x8D, - 0xC8, - 0x8E, - 0xC8, - 0x8E, - 0x8E, - 0x97, - 0x8E, - 0x8E, - 0x8E, - 0x00, - 0x07, - 0x8D, - 0x05, - 0x90, - 0x01, - 0x8D, - 0x01, - 0xA4, - 0x04, - 0x8E, - 0x00, - 0x03, - 0x95, - 0xAB, - 0x63, - 0x00, - 0x04, - 0x96, - 0x00, - 0x23, - 0x63, - 0x95, - 0x8E, - 0x8E, - 0x8D, - 0xA4, - 0x8E, - 0x8E, - 0x8E, - 0x8D, - 0x8D, - 0xB5, - 0x91, - 0x6F, - 0x6E, - 0xCE, - 0x6E, - 0x6E, - 0x87, - 0x86, - 0x6C, - 0x8C, - 0x8D, - 0xA4, - 0x99, - 0x95, - 0x95, - 0x95, - 0xAB, - 0x95, - 0x95, - 0x8E, - 0xC8, - 0x8D, - 0x8E, - 0x00, - 0x04, - 0x8D, - 0x00, - 0x03, - 0x8C, - 0x8C, - 0x8C, - 0x00, - 0x04, - 0x86, - 0x00, - 0x03, - 0x5E, - 0x87, - 0x87, - 0x00, - 0x05, - 0x65, - 0x01, - 0x87, - 0x07, - 0x65, - 0x00, - 0x03, - 0x87, - 0x87, - 0x87, - 0x00, - 0x0C, - 0x65, - 0x00, - 0x00, - 0x00, - 0x28, - 0x96, - 0x63, - 0x96, - 0xAB, - 0x95, - 0x95, - 0x95, - 0x63, - 0x9A, - 0xA5, - 0xAD, - 0xAD, - 0x66, - 0xA5, - 0xA5, - 0x8F, - 0x96, - 0x63, - 0x95, - 0x95, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0xA4, - 0x8D, - 0x8C, - 0x8C, - 0x8B, - 0xA4, - 0xA4, - 0x8E, - 0x95, - 0x95, - 0x96, - 0x96, - 0x9A, - 0xA5, - 0xB4, - 0xB4, - 0x04, - 0x9A, - 0x00, - 0x08, - 0x94, - 0x94, - 0x94, - 0x9A, - 0x94, - 0x9A, - 0x9A, - 0xB3, - 0x04, - 0x9A, - 0x05, - 0xA5, - 0x00, - 0x12, - 0x8E, - 0x65, - 0x90, - 0xA5, - 0xAD, - 0x95, - 0xAD, - 0xAC, - 0x5E, - 0x8B, - 0xAB, - 0xC5, - 0xC6, - 0xCC, - 0xCC, - 0xCB, - 0xD7, - 0x24, - 0x06, - 0xFF, - 0x00, - 0x0D, - 0xED, - 0xED, - 0xEE, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x17, - 0xFF, - 0x07, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x29, - 0x56, - 0xB6, - 0xB7, - 0xB7, - 0xA6, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xCA, - 0x93, - 0xA6, - 0xCA, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xB6, - 0xB0, - 0xAD, - 0x9A, - 0xA5, - 0xAD, - 0xAD, - 0xAC, - 0xAD, - 0xAD, - 0xB4, - 0xB4, - 0xA5, - 0x9A, - 0xAB, - 0xC4, - 0x95, - 0xC4, - 0xAB, - 0xC4, - 0x95, - 0xC4, - 0xAB, - 0x00, - 0x05, - 0x99, - 0x00, - 0x09, - 0x94, - 0xAB, - 0x9A, - 0x9A, - 0xA5, - 0x9A, - 0x8F, - 0x96, - 0x96, - 0x00, - 0x04, - 0x97, - 0x00, - 0x0E, - 0x63, - 0xC7, - 0xC7, - 0x96, - 0x97, - 0x63, - 0x97, - 0x97, - 0x97, - 0x8E, - 0x97, - 0x8E, - 0x97, - 0x97, - 0x05, - 0x63, - 0x00, - 0x08, - 0x95, - 0x95, - 0x8E, - 0x8E, - 0x8E, - 0xA4, - 0x8D, - 0x8D, - 0x07, - 0x90, - 0x00, - 0x09, - 0x8D, - 0x8D, - 0x8E, - 0x8E, - 0x95, - 0x95, - 0x63, - 0x96, - 0x9A, - 0x00, - 0x04, - 0x8F, - 0x00, - 0x0E, - 0x96, - 0x95, - 0x8E, - 0x8E, - 0xA4, - 0x8D, - 0xA4, - 0x8E, - 0xA4, - 0x8D, - 0x90, - 0x91, - 0x6F, - 0xCE, - 0x04, - 0x9D, - 0x00, - 0x12, - 0x6E, - 0x87, - 0x86, - 0x8C, - 0x8B, - 0x5C, - 0x99, - 0x95, - 0xAB, - 0x96, - 0x96, - 0x63, - 0x8E, - 0x97, - 0x8E, - 0x8E, - 0xC8, - 0x8E, - 0x04, - 0x8D, - 0x00, - 0x03, - 0x90, - 0x8C, - 0x64, - 0x00, - 0x05, - 0x86, - 0x00, - 0x0E, - 0x5E, - 0x5E, - 0x5E, - 0x65, - 0x87, - 0x65, - 0x65, - 0x5E, - 0x65, - 0x87, - 0x5E, - 0x87, - 0x5E, - 0x87, - 0x04, - 0x86, - 0x09, - 0x65, - 0x01, - 0x5F, - 0x01, - 0x65, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x9A, - 0x9A, - 0x63, - 0x96, - 0x63, - 0x63, - 0x63, - 0x9A, - 0xA5, - 0xAD, - 0x04, - 0xAC, - 0x00, - 0x0B, - 0xAD, - 0xAD, - 0xA5, - 0x9A, - 0x96, - 0x96, - 0x63, - 0x96, - 0x95, - 0x95, - 0x8E, - 0x00, - 0x05, - 0xA4, - 0x00, - 0x0F, - 0x5C, - 0x8E, - 0x95, - 0x95, - 0x96, - 0x9A, - 0xA5, - 0xA5, - 0xAD, - 0xAD, - 0xAD, - 0xB4, - 0xB4, - 0x9A, - 0x9A, - 0x00, - 0x06, - 0x94, - 0x00, - 0x1A, - 0x9A, - 0x9A, - 0xB4, - 0xB4, - 0xB4, - 0xA5, - 0xAD, - 0xA5, - 0xA5, - 0xD5, - 0x97, - 0x86, - 0x86, - 0xA5, - 0xAD, - 0x97, - 0xA5, - 0xC3, - 0xCF, - 0xC3, - 0xD2, - 0xCC, - 0x56, - 0xF0, - 0xEE, - 0xEE, - 0x07, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0xB2, - 0xEF, - 0x6B, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0x00, - 0x16, - 0xFF, - 0x04, - 0xEE, - 0x01, - 0xFF, - 0x04, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x17, - 0xF0, - 0xB0, - 0xD5, - 0xB7, - 0xA6, - 0xCA, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0xD5, - 0xA6, - 0xA6, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xB6, - 0xB6, - 0xAD, - 0xA5, - 0xA5, - 0x00, - 0x05, - 0xAD, - 0x00, - 0x06, - 0xB4, - 0xB4, - 0x9A, - 0x94, - 0xAB, - 0xC4, - 0x06, - 0x99, - 0x00, - 0x0D, - 0xC4, - 0xC4, - 0x99, - 0xC4, - 0x99, - 0xC4, - 0xAB, - 0x96, - 0x9A, - 0x9A, - 0xA5, - 0x9A, - 0x8F, - 0x00, - 0x05, - 0x96, - 0x00, - 0x08, - 0x8F, - 0x96, - 0x9A, - 0x8F, - 0x8F, - 0x8F, - 0x96, - 0x9A, - 0x07, - 0x96, - 0x00, - 0x0D, - 0x8F, - 0x96, - 0x8F, - 0x8F, - 0x96, - 0x96, - 0x96, - 0x95, - 0x95, - 0x8E, - 0x8D, - 0x90, - 0x64, - 0x00, - 0x05, - 0x91, - 0x00, - 0x3D, - 0x64, - 0x90, - 0x8D, - 0x8E, - 0x8E, - 0x8E, - 0x95, - 0x95, - 0x96, - 0x9A, - 0xA5, - 0xA5, - 0xAD, - 0xA5, - 0xA5, - 0x8F, - 0x96, - 0x8E, - 0x95, - 0x8E, - 0x8E, - 0xA4, - 0x8E, - 0x8E, - 0x6D, - 0xB5, - 0x6F, - 0x61, - 0x9D, - 0x92, - 0x92, - 0x92, - 0x5F, - 0x6E, - 0x65, - 0x86, - 0x6C, - 0x8B, - 0x5C, - 0x95, - 0x95, - 0xAB, - 0x96, - 0x63, - 0x8E, - 0x97, - 0x8E, - 0x97, - 0x97, - 0x8E, - 0x8E, - 0x97, - 0x8E, - 0x8E, - 0x8E, - 0x8D, - 0x90, - 0x64, - 0x86, - 0x87, - 0x87, - 0x00, - 0x06, - 0x86, - 0x00, - 0x04, - 0x5E, - 0x87, - 0x5E, - 0x87, - 0x04, - 0x5E, - 0x00, - 0x09, - 0x86, - 0x86, - 0x86, - 0x64, - 0x86, - 0x64, - 0x86, - 0x87, - 0x5E, - 0x00, - 0x07, - 0x65, - 0x01, - 0x5F, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x9A, - 0x9A, - 0x9A, - 0x96, - 0x94, - 0x63, - 0x9A, - 0x9A, - 0xAD, - 0xAC, - 0xAC, - 0xC9, - 0xB6, - 0xC9, - 0xC9, - 0xCA, - 0xAD, - 0xAD, - 0xA5, - 0xA5, - 0xA5, - 0x8F, - 0x9A, - 0x96, - 0xAB, - 0x8E, - 0x8E, - 0xA4, - 0x8E, - 0xA4, - 0xA4, - 0x95, - 0x95, - 0x63, - 0x96, - 0x96, - 0x9A, - 0xA5, - 0xA5, - 0xB4, - 0xAD, - 0xB4, - 0xB4, - 0x9A, - 0x9A, - 0x00, - 0x07, - 0x94, - 0x00, - 0x15, - 0xB4, - 0x9A, - 0xB4, - 0xAD, - 0xAD, - 0xAD, - 0xD5, - 0x66, - 0xAC, - 0xC8, - 0x5D, - 0x8A, - 0x9A, - 0xAD, - 0x8E, - 0xA5, - 0xC3, - 0xCF, - 0xC3, - 0xE3, - 0xED, - 0x00, - 0x06, - 0xFF, - 0x01, - 0x08, - 0x05, - 0xFF, - 0x00, - 0x0C, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0x24, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x0A, - 0xFF, - 0x01, - 0xEE, - 0x07, - 0xFF, - 0x01, - 0xEE, - 0x05, - 0xFF, - 0x07, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x04, - 0xF0, - 0xB6, - 0xD5, - 0xD5, - 0x04, - 0xCA, - 0x04, - 0xA6, - 0x00, - 0x0A, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xB6, - 0xB6, - 0xD5, - 0x96, - 0x04, - 0xA5, - 0x00, - 0x1C, - 0xAD, - 0xA5, - 0xA5, - 0x9A, - 0x9A, - 0xAB, - 0x95, - 0x99, - 0x99, - 0x99, - 0xAA, - 0x99, - 0x99, - 0x99, - 0x5C, - 0x99, - 0x99, - 0x5C, - 0x94, - 0x5C, - 0x94, - 0x94, - 0x9A, - 0x9A, - 0x8F, - 0x9A, - 0x96, - 0x9A, - 0x04, - 0x96, - 0x00, - 0x4C, - 0x9A, - 0xA5, - 0xA5, - 0x9A, - 0xB4, - 0xB4, - 0xA5, - 0xA5, - 0x9A, - 0x8F, - 0x9A, - 0x8F, - 0x8F, - 0xA5, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0x9A, - 0x96, - 0x9A, - 0x96, - 0x63, - 0x95, - 0x8E, - 0x90, - 0x91, - 0x6F, - 0x6F, - 0x6E, - 0x6F, - 0x6F, - 0x91, - 0x91, - 0x90, - 0x90, - 0x8D, - 0x8E, - 0x8E, - 0x95, - 0x63, - 0x96, - 0xA5, - 0xA5, - 0xAD, - 0xAC, - 0xAD, - 0xAD, - 0xA5, - 0x8F, - 0x96, - 0x8E, - 0x8E, - 0x8D, - 0x8E, - 0x8E, - 0x6D, - 0x4F, - 0xA1, - 0x61, - 0xDF, - 0x92, - 0xDE, - 0x88, - 0x88, - 0x88, - 0x92, - 0x5F, - 0x65, - 0x86, - 0x8C, - 0x8B, - 0x5C, - 0x8E, - 0x8E, - 0x8E, - 0x04, - 0xC8, - 0x00, - 0x22, - 0x97, - 0x97, - 0x97, - 0x63, - 0x63, - 0x96, - 0x63, - 0x97, - 0x8E, - 0x6D, - 0xB5, - 0x91, - 0x87, - 0x6F, - 0x6F, - 0x87, - 0x6C, - 0x64, - 0x6C, - 0x6C, - 0x6C, - 0x86, - 0x5E, - 0x5E, - 0x6C, - 0x5E, - 0x5E, - 0x5E, - 0x6C, - 0x6C, - 0x6C, - 0x64, - 0x8C, - 0x90, - 0x04, - 0x86, - 0x00, - 0x07, - 0x87, - 0x65, - 0x65, - 0x87, - 0x87, - 0x65, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x01, - 0x96, - 0x01, - 0x94, - 0x04, - 0x63, - 0x00, - 0x0C, - 0x9A, - 0xA5, - 0xAD, - 0xAC, - 0xC9, - 0xC5, - 0xC5, - 0xC9, - 0xC5, - 0xAC, - 0xAC, - 0xCA, - 0x04, - 0xAD, - 0x00, - 0x16, - 0xA5, - 0xA5, - 0x96, - 0x95, - 0x95, - 0x8E, - 0x5C, - 0x5C, - 0x99, - 0x95, - 0x95, - 0x63, - 0x96, - 0x63, - 0x63, - 0x96, - 0x8F, - 0xA5, - 0xA5, - 0x9A, - 0x9A, - 0x9A, - 0x07, - 0x94, - 0x04, - 0x9A, - 0x00, - 0x12, - 0x8F, - 0xC7, - 0x8F, - 0xAC, - 0xAD, - 0xAD, - 0xB6, - 0xB6, - 0xAD, - 0xC9, - 0xC9, - 0x95, - 0x8F, - 0xC3, - 0xC3, - 0xCF, - 0xE3, - 0x24, - 0x05, - 0xFF, - 0x01, - 0x08, - 0x09, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x03, - 0xEE, - 0xFF, - 0xEE, - 0x00, - 0x12, - 0xFF, - 0x01, - 0xEE, - 0x05, - 0xFF, - 0x00, - 0x08, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x07, - 0xF0, - 0xCD, - 0xD5, - 0xD5, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x05, - 0xA6, - 0x01, - 0xCA, - 0x04, - 0xC9, - 0x00, - 0x07, - 0xA6, - 0xCA, - 0xC9, - 0xB6, - 0xAE, - 0x8E, - 0x97, - 0x00, - 0x05, - 0xC7, - 0x00, - 0x08, - 0x96, - 0x96, - 0x95, - 0x95, - 0x99, - 0x99, - 0x5C, - 0x8B, - 0x05, - 0x5C, - 0x00, - 0x15, - 0xAA, - 0x5C, - 0x99, - 0x99, - 0x94, - 0x95, - 0x95, - 0x63, - 0x96, - 0x96, - 0x96, - 0x63, - 0x96, - 0x63, - 0x96, - 0x96, - 0x96, - 0x9A, - 0x9A, - 0x9A, - 0xB4, - 0x00, - 0x09, - 0x9A, - 0x01, - 0x8F, - 0x01, - 0x9A, - 0x04, - 0xA5, - 0x00, - 0x4F, - 0x9A, - 0x9A, - 0x96, - 0x63, - 0x8E, - 0x6D, - 0x64, - 0x6F, - 0x61, - 0x9D, - 0x92, - 0x9D, - 0x6E, - 0x6F, - 0x6F, - 0x91, - 0x4F, - 0x90, - 0x8D, - 0x8E, - 0x95, - 0x63, - 0x96, - 0x9A, - 0xAD, - 0xAD, - 0xC9, - 0xC9, - 0xCA, - 0xAD, - 0x8F, - 0x63, - 0x8E, - 0x8D, - 0x90, - 0x90, - 0x90, - 0x91, - 0x6F, - 0x9D, - 0x92, - 0xDE, - 0xDE, - 0x62, - 0x62, - 0x62, - 0x88, - 0x70, - 0x4E, - 0x5F, - 0x65, - 0x5E, - 0x64, - 0x64, - 0x90, - 0x90, - 0x4F, - 0xB5, - 0x91, - 0xB5, - 0x6D, - 0x6D, - 0x6D, - 0x97, - 0x63, - 0x8F, - 0x8F, - 0x8F, - 0x63, - 0xC8, - 0x6D, - 0x91, - 0x6F, - 0x6F, - 0x6E, - 0x6E, - 0x87, - 0x64, - 0x86, - 0x00, - 0x06, - 0x6C, - 0x00, - 0x15, - 0x5E, - 0x5E, - 0x5E, - 0x6C, - 0x6C, - 0x6C, - 0x8D, - 0x8B, - 0x8D, - 0x8C, - 0x8C, - 0x64, - 0x6C, - 0x86, - 0x5E, - 0x87, - 0x5E, - 0x86, - 0x5E, - 0x65, - 0x65, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x95, - 0x95, - 0x95, - 0x5C, - 0x95, - 0x94, - 0x9A, - 0x9A, - 0xB4, - 0xAD, - 0xAC, - 0xB6, - 0xB6, - 0xB6, - 0xC9, - 0xC9, - 0xC9, - 0xAC, - 0xAC, - 0xAD, - 0xCA, - 0xAC, - 0xAD, - 0x66, - 0xA5, - 0x63, - 0x95, - 0x95, - 0x08, - 0x8E, - 0x01, - 0x97, - 0x04, - 0x63, - 0x00, - 0x20, - 0x95, - 0x63, - 0x95, - 0x5C, - 0x94, - 0x5C, - 0x94, - 0xC4, - 0x94, - 0xAB, - 0xAB, - 0x96, - 0xAD, - 0xA5, - 0x8F, - 0x97, - 0x8F, - 0xAD, - 0xAC, - 0xB4, - 0xCB, - 0x0C, - 0xB0, - 0x0A, - 0xCA, - 0x6D, - 0x96, - 0xC5, - 0xCF, - 0xC3, - 0xD7, - 0xEE, - 0x05, - 0xFF, - 0x01, - 0x08, - 0x08, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x03, - 0xEE, - 0xFF, - 0xEE, - 0x00, - 0x12, - 0xFF, - 0x01, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x08, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x03, - 0xC6, - 0xCA, - 0xD5, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x22, - 0xA6, - 0xA6, - 0xA6, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xC9, - 0xC9, - 0xA6, - 0xA6, - 0xB6, - 0xB6, - 0xA7, - 0xA1, - 0x9E, - 0x9E, - 0x9E, - 0xA8, - 0x9E, - 0x6D, - 0x6D, - 0x6D, - 0x90, - 0x8D, - 0x8B, - 0x8B, - 0x5C, - 0x8B, - 0x5C, - 0x8B, - 0x5C, - 0x8B, - 0x06, - 0x5C, - 0x00, - 0x5F, - 0x8E, - 0x8D, - 0x6D, - 0x6D, - 0x68, - 0x6D, - 0xC8, - 0xC8, - 0x8E, - 0x8E, - 0x8E, - 0x95, - 0x63, - 0x63, - 0x94, - 0x96, - 0x96, - 0x96, - 0x63, - 0x95, - 0x63, - 0x95, - 0x63, - 0x63, - 0x96, - 0x96, - 0x8F, - 0x8F, - 0x66, - 0xA5, - 0x8F, - 0x8F, - 0x63, - 0x97, - 0x6D, - 0x90, - 0x6F, - 0x61, - 0x9D, - 0x92, - 0x88, - 0x88, - 0x88, - 0x92, - 0x9D, - 0x61, - 0x6F, - 0x91, - 0x64, - 0x4F, - 0x8D, - 0x8E, - 0x63, - 0x63, - 0x9A, - 0xA5, - 0xAD, - 0xAD, - 0xCA, - 0xAD, - 0x66, - 0x97, - 0xC8, - 0x6D, - 0xB5, - 0x91, - 0x6F, - 0x6E, - 0x61, - 0x9D, - 0x92, - 0xDE, - 0x62, - 0x62, - 0xB1, - 0x98, - 0x62, - 0x98, - 0x98, - 0x70, - 0x70, - 0x4E, - 0x5F, - 0x6E, - 0x65, - 0x6F, - 0x6F, - 0x61, - 0x61, - 0x61, - 0x6F, - 0x6F, - 0x91, - 0x4F, - 0x6D, - 0x00, - 0x04, - 0x63, - 0x00, - 0x26, - 0x97, - 0x6D, - 0x91, - 0x6F, - 0x61, - 0x9D, - 0x9D, - 0x9D, - 0x6F, - 0x6E, - 0x87, - 0x86, - 0x6C, - 0x8C, - 0x6C, - 0x86, - 0x5E, - 0x5E, - 0x5E, - 0x6C, - 0x6C, - 0x6C, - 0x8B, - 0x5C, - 0x8D, - 0x5C, - 0x8C, - 0x90, - 0x6C, - 0x64, - 0x6C, - 0x86, - 0x5E, - 0x86, - 0x5E, - 0x65, - 0x65, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x90, - 0x8D, - 0x5C, - 0x5C, - 0x5C, - 0x95, - 0x63, - 0x96, - 0x9A, - 0xAD, - 0x07, - 0xAC, - 0x00, - 0x11, - 0xC9, - 0xC9, - 0xC9, - 0xAC, - 0xCA, - 0xCA, - 0xAD, - 0x8F, - 0x63, - 0x8E, - 0x8D, - 0x8D, - 0x90, - 0x90, - 0x90, - 0x4F, - 0x64, - 0x00, - 0x04, - 0x91, - 0x00, - 0x12, - 0x6D, - 0x8E, - 0x97, - 0x97, - 0x8E, - 0x95, - 0x63, - 0x96, - 0x9A, - 0x96, - 0x96, - 0x96, - 0xC7, - 0xA7, - 0xC7, - 0xCA, - 0xCA, - 0xAD, - 0x04, - 0xA5, - 0x00, - 0x0C, - 0xAD, - 0xAF, - 0xB9, - 0x0A, - 0x45, - 0x54, - 0x91, - 0x97, - 0xC3, - 0xC3, - 0xCF, - 0xE3, - 0x0E, - 0xFF, - 0x01, - 0xFE, - 0x01, - 0x24, - 0x1A, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x08, - 0xFF, - 0x00, - 0x0A, - 0x06, - 0xCD, - 0xD5, - 0xCA, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xA6, - 0xCA, - 0x08, - 0xC9, - 0x00, - 0x72, - 0xA6, - 0xCA, - 0xC9, - 0xB6, - 0xDB, - 0x92, - 0x77, - 0x77, - 0x77, - 0x61, - 0x61, - 0xA1, - 0x61, - 0x6F, - 0x6F, - 0x87, - 0x64, - 0x6C, - 0x6C, - 0x8B, - 0x8A, - 0x8B, - 0x55, - 0x5C, - 0x8B, - 0x5C, - 0x8B, - 0x5C, - 0x5C, - 0x8C, - 0x64, - 0x91, - 0x91, - 0x6F, - 0x6F, - 0xA0, - 0x6F, - 0x6F, - 0x6F, - 0x91, - 0x64, - 0x90, - 0x8D, - 0x8D, - 0x8E, - 0x95, - 0x5C, - 0x8E, - 0x5C, - 0x5C, - 0x8E, - 0x5C, - 0x5C, - 0x8E, - 0x95, - 0x63, - 0x63, - 0x63, - 0x96, - 0x67, - 0x97, - 0x97, - 0xC8, - 0x6D, - 0x60, - 0x61, - 0x61, - 0x92, - 0x88, - 0xDE, - 0x88, - 0x62, - 0x88, - 0x88, - 0x92, - 0x50, - 0x9D, - 0x6E, - 0x6F, - 0x91, - 0x91, - 0x90, - 0x8D, - 0x8E, - 0x8E, - 0x63, - 0x96, - 0x8F, - 0x67, - 0x67, - 0x97, - 0x6D, - 0x91, - 0x6F, - 0x61, - 0x9D, - 0x9D, - 0x92, - 0x92, - 0xDE, - 0xDE, - 0x62, - 0x62, - 0xE0, - 0x4B, - 0xE0, - 0x79, - 0x98, - 0x98, - 0x98, - 0x70, - 0x70, - 0x4E, - 0x70, - 0x07, - 0x92, - 0x00, - 0x17, - 0x9D, - 0x6E, - 0x61, - 0x91, - 0x6D, - 0x8E, - 0x8E, - 0x8D, - 0x4F, - 0x6F, - 0x61, - 0x9D, - 0x92, - 0x88, - 0x92, - 0x92, - 0x9D, - 0x5F, - 0x6E, - 0x87, - 0x87, - 0x86, - 0x87, - 0x00, - 0x06, - 0x5E, - 0x00, - 0x11, - 0x6C, - 0x8B, - 0x8B, - 0x8D, - 0x8D, - 0x8D, - 0x8C, - 0x6C, - 0x86, - 0x5E, - 0x86, - 0x5E, - 0x5E, - 0x87, - 0x65, - 0x6E, - 0x6E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x6F, - 0x64, - 0x8C, - 0x8B, - 0x5C, - 0x5C, - 0x5C, - 0x94, - 0x9A, - 0x9A, - 0xB4, - 0xAC, - 0xB4, - 0xAD, - 0xB4, - 0xAD, - 0xAD, - 0xAC, - 0xAC, - 0xC9, - 0xC9, - 0xAC, - 0xAD, - 0x66, - 0xAE, - 0x97, - 0x6D, - 0x4F, - 0x04, - 0x6F, - 0x00, - 0x0A, - 0x6E, - 0x61, - 0x9D, - 0x6E, - 0x61, - 0x6F, - 0xAE, - 0xAD, - 0xB7, - 0xAD, - 0x04, - 0xCA, - 0x00, - 0x03, - 0xA6, - 0xD5, - 0xA6, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x13, - 0xB7, - 0xD5, - 0xA5, - 0x96, - 0x8F, - 0xA5, - 0xA5, - 0x0A, - 0xAF, - 0x0A, - 0x3E, - 0xBA, - 0x60, - 0x8E, - 0xC5, - 0xD2, - 0xC3, - 0xE3, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x01, - 0x08, - 0x06, - 0xFF, - 0x00, - 0x03, - 0xEE, - 0xFE, - 0xFE, - 0x00, - 0x1D, - 0xFF, - 0x00, - 0x0B, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x07, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xC6, - 0x04, - 0xCA, - 0x00, - 0x04, - 0xA6, - 0xA6, - 0xCA, - 0xCA, - 0x04, - 0xC9, - 0x00, - 0x16, - 0xB6, - 0xC9, - 0xC9, - 0xCA, - 0xD5, - 0xA6, - 0xC9, - 0xB6, - 0xE4, - 0x62, - 0x5A, - 0xDE, - 0xBF, - 0x78, - 0x78, - 0xDE, - 0x78, - 0x92, - 0x9D, - 0x6E, - 0x6E, - 0x5E, - 0x05, - 0x6C, - 0x00, - 0x15, - 0x8A, - 0x8B, - 0x8B, - 0x8B, - 0x8C, - 0x6C, - 0x64, - 0x6F, - 0x6E, - 0x9D, - 0x9D, - 0x92, - 0x92, - 0x92, - 0x9D, - 0x9D, - 0x9D, - 0x6E, - 0x6F, - 0x91, - 0x64, - 0x00, - 0x05, - 0x90, - 0x00, - 0x13, - 0x8C, - 0x8C, - 0x8D, - 0x8C, - 0x90, - 0x90, - 0x6D, - 0x6D, - 0x68, - 0x6D, - 0x6D, - 0x53, - 0x60, - 0x60, - 0xA1, - 0x61, - 0x92, - 0xDE, - 0xDE, - 0x00, - 0x07, - 0x62, - 0x00, - 0x0A, - 0x88, - 0x92, - 0x50, - 0x9D, - 0x6E, - 0x6F, - 0x6F, - 0x91, - 0x64, - 0x90, - 0x04, - 0x6D, - 0x00, - 0x13, - 0x60, - 0x60, - 0xA1, - 0x9D, - 0x9D, - 0x92, - 0x92, - 0x88, - 0x62, - 0x88, - 0x62, - 0x62, - 0x62, - 0x4B, - 0xB1, - 0x4B, - 0x79, - 0xE0, - 0x79, - 0x00, - 0x04, - 0x98, - 0x01, - 0x70, - 0x01, - 0x70, - 0x04, - 0x88, - 0x00, - 0x19, - 0xDE, - 0x88, - 0xDE, - 0x88, - 0x92, - 0x9D, - 0x6E, - 0x6F, - 0x91, - 0x64, - 0x6F, - 0x6E, - 0x9D, - 0x92, - 0xDE, - 0x88, - 0xDE, - 0x62, - 0x88, - 0x88, - 0x92, - 0x92, - 0x5F, - 0x6E, - 0x6E, - 0x00, - 0x04, - 0x5F, - 0x00, - 0x14, - 0x65, - 0x65, - 0x65, - 0x5E, - 0x86, - 0x6C, - 0x64, - 0x64, - 0x8C, - 0x64, - 0x86, - 0x86, - 0x5E, - 0x5E, - 0x86, - 0x5E, - 0x5E, - 0x6E, - 0x5F, - 0x92, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x5F, - 0x6E, - 0x87, - 0x86, - 0x8C, - 0x8B, - 0x5C, - 0x8E, - 0x95, - 0x9A, - 0x9A, - 0x9A, - 0xB4, - 0xB4, - 0x9A, - 0xB4, - 0xB4, - 0xAD, - 0xAC, - 0xAC, - 0xAC, - 0xA6, - 0x66, - 0x8F, - 0x97, - 0x6D, - 0x60, - 0x6F, - 0x9D, - 0x9D, - 0x92, - 0x92, - 0x92, - 0x68, - 0xAD, - 0xC9, - 0xB6, - 0xB6, - 0xC9, - 0xA6, - 0xD5, - 0xA6, - 0xCA, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x19, - 0xCA, - 0xD5, - 0xD5, - 0xB7, - 0xAE, - 0xAE, - 0xC7, - 0x97, - 0x8F, - 0xB7, - 0x8F, - 0xA5, - 0xA5, - 0xAD, - 0xB6, - 0xAF, - 0x0A, - 0x45, - 0x7B, - 0x4F, - 0x8D, - 0xAC, - 0xD2, - 0xCF, - 0xE3, - 0x00, - 0x34, - 0xFF, - 0x00, - 0x04, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x07, - 0xCB, - 0xC9, - 0xA6, - 0xD5, - 0xA6, - 0xA6, - 0xCA, - 0x00, - 0x0A, - 0xC9, - 0x00, - 0x07, - 0xA6, - 0x93, - 0xC9, - 0xB0, - 0xA9, - 0xB1, - 0xB1, - 0x00, - 0x05, - 0x62, - 0x00, - 0x09, - 0xDE, - 0x88, - 0x88, - 0x92, - 0x5F, - 0x5F, - 0x65, - 0x5E, - 0x5E, - 0x00, - 0x07, - 0x6C, - 0x00, - 0x43, - 0x64, - 0x65, - 0x6E, - 0x9D, - 0x92, - 0x88, - 0xDE, - 0x88, - 0x62, - 0xDE, - 0x88, - 0x92, - 0x92, - 0x92, - 0x6E, - 0x6E, - 0x6E, - 0x6F, - 0x6F, - 0x87, - 0x6F, - 0x87, - 0x6F, - 0x87, - 0x91, - 0x87, - 0x6F, - 0x6F, - 0xA0, - 0x6F, - 0xA1, - 0xA1, - 0x61, - 0x61, - 0x9D, - 0x50, - 0xDE, - 0xDE, - 0x5A, - 0x62, - 0x62, - 0xB1, - 0xB1, - 0xB1, - 0x4B, - 0x62, - 0x62, - 0x62, - 0xDE, - 0x88, - 0x92, - 0x92, - 0x9D, - 0x9D, - 0x6E, - 0x6E, - 0x6F, - 0x6F, - 0x6F, - 0xA1, - 0x6F, - 0x61, - 0xDF, - 0x92, - 0x92, - 0xDE, - 0x88, - 0x00, - 0x06, - 0x62, - 0x01, - 0xE0, - 0x01, - 0x4B, - 0x06, - 0x79, - 0x05, - 0x98, - 0x07, - 0x62, - 0x00, - 0x25, - 0x88, - 0x88, - 0x88, - 0x92, - 0x6E, - 0x6E, - 0x6E, - 0x5F, - 0x92, - 0x88, - 0x88, - 0x62, - 0x62, - 0x98, - 0x62, - 0x62, - 0x62, - 0x88, - 0x88, - 0x88, - 0x92, - 0x70, - 0x88, - 0x70, - 0x70, - 0x4E, - 0x70, - 0x4E, - 0x4E, - 0x65, - 0x65, - 0x6E, - 0x87, - 0x6F, - 0x87, - 0x6E, - 0x6E, - 0x00, - 0x04, - 0x65, - 0x00, - 0x05, - 0x5E, - 0x65, - 0x5F, - 0x5F, - 0x92, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x88, - 0x92, - 0x5F, - 0x65, - 0x87, - 0x86, - 0x8C, - 0x5C, - 0x5C, - 0x95, - 0x63, - 0x94, - 0x05, - 0x9A, - 0x00, - 0x38, - 0xB4, - 0xA5, - 0xAD, - 0x66, - 0xA5, - 0x96, - 0x68, - 0x60, - 0xA1, - 0x61, - 0x92, - 0x9D, - 0x9E, - 0xD5, - 0xB7, - 0x9F, - 0xD5, - 0xCA, - 0xA6, - 0xCA, - 0xC9, - 0xC9, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xD5, - 0xD5, - 0xB7, - 0x66, - 0x00, - 0xAE, - 0xAE, - 0xC7, - 0x9C, - 0x9C, - 0xC8, - 0xC8, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0xB4, - 0xAC, - 0xC9, - 0xB0, - 0x0A, - 0x7B, - 0x7B, - 0x9E, - 0x6D, - 0xAC, - 0xD2, - 0xCF, - 0xE3, - 0xEE, - 0x31, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x09, - 0xEE, - 0xFF, - 0xFF, - 0xCB, - 0xCA, - 0xD5, - 0xA6, - 0xA6, - 0xCA, - 0x00, - 0x0B, - 0xC9, - 0x00, - 0x06, - 0xA6, - 0xCA, - 0xB0, - 0xB0, - 0x7C, - 0x4C, - 0x07, - 0xB1, - 0x00, - 0x14, - 0x62, - 0x62, - 0x88, - 0x88, - 0x92, - 0x5F, - 0x65, - 0x5E, - 0x5E, - 0x5E, - 0x6C, - 0x6C, - 0x5E, - 0x6C, - 0x86, - 0x65, - 0x5F, - 0x92, - 0x88, - 0x88, - 0x07, - 0x62, - 0x04, - 0x88, - 0x04, - 0x92, - 0x00, - 0x1A, - 0x5F, - 0x92, - 0x5F, - 0x9D, - 0x5F, - 0x9D, - 0x92, - 0x9D, - 0x50, - 0x50, - 0xDF, - 0x92, - 0x78, - 0xDE, - 0xDE, - 0x88, - 0x62, - 0x62, - 0xB1, - 0xB1, - 0xB1, - 0x4B, - 0x4B, - 0xE0, - 0xB1, - 0xE0, - 0x04, - 0x62, - 0x00, - 0x03, - 0x88, - 0xDE, - 0x88, - 0x00, - 0x04, - 0x92, - 0x00, - 0x06, - 0x9D, - 0x92, - 0x92, - 0x92, - 0xDE, - 0x88, - 0x04, - 0x62, - 0x00, - 0x03, - 0xE0, - 0x4B, - 0xE0, - 0x00, - 0x0E, - 0x79, - 0x00, - 0x22, - 0x98, - 0x79, - 0xE0, - 0x4B, - 0xE0, - 0x62, - 0xB1, - 0xE0, - 0x62, - 0x62, - 0x62, - 0x88, - 0x88, - 0x92, - 0x92, - 0x88, - 0x92, - 0x88, - 0x88, - 0x62, - 0x62, - 0xE0, - 0x4B, - 0xE0, - 0xE0, - 0x62, - 0x62, - 0x62, - 0x88, - 0x88, - 0x88, - 0x70, - 0x70, - 0x88, - 0x04, - 0x70, - 0x01, - 0x4E, - 0x01, - 0x92, - 0x0D, - 0x5F, - 0x01, - 0x92, - 0x01, - 0x88, - 0x00, - 0x00, - 0x00, - 0x31, - 0x62, - 0x88, - 0x88, - 0x88, - 0x5F, - 0x65, - 0x87, - 0x64, - 0x8D, - 0x8E, - 0x5C, - 0x95, - 0x95, - 0x63, - 0x63, - 0x96, - 0x9A, - 0x9A, - 0x9A, - 0x8F, - 0x96, - 0x97, - 0x6D, - 0xA0, - 0x9D, - 0x78, - 0xDE, - 0x62, - 0x98, - 0x6F, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0x93, - 0x9F, - 0xB7, - 0x93, - 0xA6, - 0xD5, - 0xB7, - 0xB7, - 0xAE, - 0x9F, - 0xAE, - 0xAE, - 0xA7, - 0x97, - 0xA7, - 0x00, - 0x06, - 0x97, - 0x01, - 0xAE, - 0x04, - 0xA5, - 0x00, - 0x0D, - 0xAD, - 0xC9, - 0xB0, - 0xB0, - 0x7B, - 0x7B, - 0x53, - 0x90, - 0xAD, - 0xD2, - 0xCF, - 0xE3, - 0xEE, - 0x00, - 0x2F, - 0xFF, - 0x00, - 0x07, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x2A, - 0xEE, - 0xFF, - 0xEE, - 0xCD, - 0xCA, - 0xD5, - 0xCA, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xCA, - 0xCA, - 0xC9, - 0xB6, - 0xC9, - 0xC9, - 0xCA, - 0xC9, - 0xB6, - 0xB6, - 0xB0, - 0xB8, - 0x5A, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0x80, - 0x80, - 0x4B, - 0x79, - 0x4B, - 0xE0, - 0x62, - 0x62, - 0x88, - 0x70, - 0x4E, - 0x65, - 0x65, - 0x04, - 0x5E, - 0x00, - 0x09, - 0x65, - 0x65, - 0x5F, - 0x88, - 0x88, - 0x62, - 0x62, - 0xE0, - 0x4B, - 0x00, - 0x04, - 0x79, - 0x00, - 0x06, - 0x4B, - 0xE0, - 0x98, - 0x62, - 0x62, - 0x62, - 0x0A, - 0x88, - 0x01, - 0x62, - 0x01, - 0x88, - 0x06, - 0x62, - 0x00, - 0x0E, - 0xE0, - 0xB1, - 0x4B, - 0xE0, - 0x4B, - 0x4B, - 0xC0, - 0x80, - 0x4B, - 0x80, - 0x4B, - 0x4B, - 0xE0, - 0xB1, - 0x07, - 0x62, - 0x00, - 0x04, - 0x88, - 0x62, - 0x88, - 0x88, - 0x04, - 0x62, - 0x01, - 0xB1, - 0x01, - 0xE0, - 0x0C, - 0x79, - 0x01, - 0xC0, - 0x0B, - 0x79, - 0x00, - 0x0F, - 0x4B, - 0x79, - 0xB1, - 0xE0, - 0x62, - 0x62, - 0x98, - 0x62, - 0x62, - 0x88, - 0x62, - 0x62, - 0x98, - 0x98, - 0xE0, - 0x00, - 0x05, - 0x79, - 0x01, - 0x4B, - 0x01, - 0xE0, - 0x04, - 0x62, - 0x06, - 0x98, - 0x00, - 0x04, - 0x88, - 0x70, - 0x88, - 0x92, - 0x04, - 0x88, - 0x00, - 0x09, - 0x70, - 0x88, - 0x70, - 0x70, - 0x88, - 0x70, - 0x88, - 0x88, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0x4B, - 0x98, - 0x62, - 0x98, - 0x70, - 0x92, - 0x5F, - 0x6E, - 0x64, - 0x8C, - 0x5C, - 0x8E, - 0x04, - 0x5C, - 0x00, - 0x28, - 0x95, - 0x63, - 0x63, - 0x8E, - 0x6D, - 0x6D, - 0xA1, - 0x50, - 0xDE, - 0x62, - 0x62, - 0x4B, - 0x4D, - 0x62, - 0x9F, - 0xA6, - 0xA6, - 0xA6, - 0xB7, - 0x9F, - 0xB7, - 0x66, - 0xB7, - 0xAE, - 0xC7, - 0x67, - 0xA7, - 0x97, - 0xC7, - 0xA7, - 0x97, - 0x97, - 0x97, - 0xC7, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0xAE, - 0x8F, - 0x04, - 0xA5, - 0x00, - 0x0D, - 0xAC, - 0xCA, - 0xB0, - 0xB0, - 0x54, - 0x45, - 0x73, - 0x90, - 0xA5, - 0xD2, - 0xCF, - 0xE3, - 0xEE, - 0x00, - 0x16, - 0xFF, - 0x01, - 0x08, - 0x18, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xFF, - 0x05, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x06, - 0xCC, - 0xC3, - 0xCA, - 0xCA, - 0xCA, - 0xC9, - 0x06, - 0xCA, - 0x06, - 0xC9, - 0x00, - 0x09, - 0xB0, - 0xB0, - 0xA6, - 0xD6, - 0x82, - 0xC0, - 0x80, - 0x80, - 0xC0, - 0x00, - 0x05, - 0x80, - 0x00, - 0x20, - 0x4B, - 0x79, - 0x62, - 0x62, - 0x88, - 0x70, - 0x4E, - 0x5F, - 0x65, - 0x5F, - 0x65, - 0x65, - 0x5F, - 0x5F, - 0x70, - 0x88, - 0x62, - 0xE0, - 0x4B, - 0x79, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x79, - 0x79, - 0x4B, - 0x79, - 0x4B, - 0xE0, - 0xB1, - 0x0B, - 0x62, - 0x00, - 0x03, - 0x98, - 0xB1, - 0xB1, - 0x00, - 0x04, - 0x4B, - 0x00, - 0x0A, - 0x79, - 0x4B, - 0x4B, - 0x80, - 0x4B, - 0x80, - 0xC0, - 0x79, - 0x79, - 0x79, - 0x04, - 0x4B, - 0x00, - 0x04, - 0x79, - 0xB1, - 0x4B, - 0xE0, - 0x04, - 0x62, - 0x00, - 0x04, - 0xE0, - 0x62, - 0x98, - 0xE0, - 0x08, - 0x79, - 0x00, - 0x0A, - 0xC0, - 0x79, - 0x4C, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x0D, - 0x79, - 0x00, - 0x0A, - 0x4B, - 0xE0, - 0x4B, - 0x62, - 0x98, - 0x62, - 0x98, - 0x98, - 0x98, - 0xB1, - 0x08, - 0x79, - 0x00, - 0x08, - 0xE0, - 0x4B, - 0xE0, - 0x4B, - 0xB1, - 0xE0, - 0x98, - 0x79, - 0x04, - 0x98, - 0x00, - 0x10, - 0x62, - 0x98, - 0x62, - 0x62, - 0x88, - 0x62, - 0x88, - 0x98, - 0x70, - 0x98, - 0x70, - 0x70, - 0x98, - 0x70, - 0x62, - 0x62, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x4B, - 0x79, - 0x79, - 0x98, - 0x62, - 0x88, - 0x88, - 0x5F, - 0x87, - 0x64, - 0x90, - 0x8C, - 0x90, - 0x8C, - 0x8D, - 0x8C, - 0x8D, - 0x8D, - 0x6D, - 0x4F, - 0x6F, - 0x61, - 0x92, - 0xDE, - 0x62, - 0xB1, - 0x4B, - 0x79, - 0x4D, - 0xE0, - 0xAE, - 0x00, - 0x04, - 0xB7, - 0x07, - 0xAE, - 0x00, - 0x1F, - 0xC7, - 0x67, - 0xC7, - 0x97, - 0xA7, - 0xC7, - 0xC7, - 0xAE, - 0xAE, - 0x8F, - 0x00, - 0x8F, - 0xB7, - 0xA5, - 0x8F, - 0x9A, - 0xA5, - 0xA5, - 0xB4, - 0xD5, - 0x0A, - 0xB0, - 0x3F, - 0x45, - 0xA8, - 0xB5, - 0x96, - 0xC3, - 0xD2, - 0xE3, - 0xEE, - 0x00, - 0x17, - 0xFF, - 0x01, - 0x08, - 0x16, - 0xFF, - 0x00, - 0x08, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x0B, - 0xCC, - 0xB6, - 0xD5, - 0xC9, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xCA, - 0xA6, - 0xCA, - 0x00, - 0x04, - 0xC9, - 0x00, - 0x08, - 0xCA, - 0xC9, - 0xB0, - 0xB0, - 0x0A, - 0x75, - 0x4B, - 0x4C, - 0x05, - 0x80, - 0x00, - 0x0B, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x4B, - 0x4B, - 0x98, - 0x62, - 0x88, - 0x70, - 0x00, - 0x04, - 0x4E, - 0x00, - 0x0F, - 0x88, - 0x4E, - 0x88, - 0x88, - 0x62, - 0x4B, - 0x79, - 0x79, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x00, - 0x04, - 0x79, - 0x04, - 0x4B, - 0x00, - 0x06, - 0x79, - 0xE0, - 0x4B, - 0x79, - 0x4B, - 0x79, - 0x04, - 0x4B, - 0x05, - 0x79, - 0x05, - 0xC0, - 0x00, - 0x21, - 0x80, - 0xC0, - 0x4B, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x79, - 0x79, - 0x79, - 0x4B, - 0x79, - 0x79, - 0x4B, - 0x4B, - 0xE0, - 0x4B, - 0x79, - 0x4B, - 0x4B, - 0x79, - 0x4B, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x79, - 0x4C, - 0xC0, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x00, - 0x04, - 0x79, - 0x01, - 0xC0, - 0x04, - 0x79, - 0x00, - 0x05, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x00, - 0x08, - 0x79, - 0x00, - 0x06, - 0x4B, - 0xE0, - 0x4B, - 0xE0, - 0x4B, - 0xE0, - 0x0B, - 0x79, - 0x00, - 0x09, - 0x4B, - 0xE0, - 0x4B, - 0x79, - 0x4B, - 0x79, - 0x79, - 0x98, - 0x79, - 0x00, - 0x04, - 0x98, - 0x00, - 0x04, - 0x62, - 0x98, - 0x62, - 0xE0, - 0x08, - 0x98, - 0x02, - 0x62, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC0, - 0x79, - 0x79, - 0x4B, - 0x98, - 0x62, - 0x88, - 0x88, - 0x5F, - 0x00, - 0x05, - 0x87, - 0x00, - 0x16, - 0x91, - 0x87, - 0x64, - 0x91, - 0x6F, - 0x61, - 0x92, - 0x92, - 0x5A, - 0x62, - 0xB1, - 0x79, - 0x4B, - 0xC0, - 0x81, - 0x4B, - 0xAE, - 0xD5, - 0xD5, - 0xB7, - 0xB7, - 0xB7, - 0x07, - 0xAE, - 0x00, - 0x1E, - 0xC7, - 0xC7, - 0xC7, - 0x67, - 0xC7, - 0xAE, - 0xAE, - 0xA5, - 0xB7, - 0xA5, - 0xB7, - 0xA5, - 0xB7, - 0x8F, - 0x8F, - 0xA5, - 0xA5, - 0xB4, - 0xA5, - 0xCA, - 0xB6, - 0x20, - 0x5B, - 0xB8, - 0x90, - 0x63, - 0xC3, - 0xC3, - 0xE3, - 0xEE, - 0x18, - 0xFF, - 0x01, - 0xFE, - 0x14, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x15, - 0x56, - 0xB0, - 0xAD, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xA6, - 0xCA, - 0xA6, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xC9, - 0xB6, - 0xB0, - 0xC9, - 0xBB, - 0x4B, - 0x00, - 0x06, - 0x80, - 0x00, - 0x18, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x79, - 0x4B, - 0x98, - 0x98, - 0x62, - 0x70, - 0x70, - 0x70, - 0x88, - 0x88, - 0x98, - 0x62, - 0x62, - 0x62, - 0x79, - 0x79, - 0x80, - 0x06, - 0xC0, - 0x00, - 0x09, - 0x4C, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x4B, - 0xC0, - 0x4B, - 0x79, - 0x00, - 0x06, - 0x4B, - 0x00, - 0x07, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x79, - 0x00, - 0x06, - 0xC0, - 0x00, - 0x0E, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x4B, - 0x05, - 0x79, - 0x00, - 0x24, - 0x4B, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x4C, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x14, - 0x79, - 0x01, - 0xE0, - 0x01, - 0x4B, - 0x08, - 0x79, - 0x00, - 0x0F, - 0x62, - 0x98, - 0xB1, - 0x98, - 0x62, - 0x98, - 0xE0, - 0x98, - 0x98, - 0x62, - 0x98, - 0x98, - 0x98, - 0xE0, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x21, - 0x4C, - 0xC0, - 0x79, - 0x79, - 0x79, - 0x98, - 0x62, - 0x88, - 0x88, - 0x92, - 0x5F, - 0x9D, - 0x5F, - 0x6E, - 0x5F, - 0x92, - 0x9D, - 0x50, - 0x92, - 0x92, - 0x5A, - 0x62, - 0x62, - 0xB1, - 0x4B, - 0x4B, - 0xC0, - 0xC0, - 0x81, - 0x79, - 0xAE, - 0xCA, - 0xA6, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x24, - 0xAE, - 0x9F, - 0x8F, - 0xB7, - 0x8F, - 0xAE, - 0xAE, - 0xAE, - 0xC7, - 0xC7, - 0xAE, - 0xAE, - 0xA5, - 0xB7, - 0xD5, - 0xA5, - 0xD5, - 0x8F, - 0x8F, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0xB4, - 0xAD, - 0xAF, - 0x83, - 0xB0, - 0x0A, - 0xA6, - 0x8E, - 0x8E, - 0xC3, - 0xD2, - 0xE3, - 0xEE, - 0x18, - 0xFF, - 0x01, - 0x24, - 0x01, - 0x07, - 0x15, - 0xFF, - 0x04, - 0xEE, - 0x00, - 0x07, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x0A, - 0xCB, - 0xC5, - 0xA6, - 0xCA, - 0xCA, - 0xA6, - 0xD5, - 0xCA, - 0xCA, - 0xCA, - 0x04, - 0xC9, - 0x00, - 0x06, - 0xCA, - 0xB6, - 0xB0, - 0xB6, - 0xB8, - 0xD6, - 0x09, - 0x80, - 0x06, - 0xC0, - 0x00, - 0x15, - 0x79, - 0x4B, - 0x4B, - 0x98, - 0x62, - 0x62, - 0x62, - 0x98, - 0x62, - 0x62, - 0x62, - 0xE0, - 0x4B, - 0x4B, - 0x79, - 0xC0, - 0x80, - 0xC0, - 0x2B, - 0xC0, - 0x2B, - 0x00, - 0x06, - 0xC0, - 0x04, - 0x80, - 0x05, - 0xC0, - 0x00, - 0x03, - 0x4B, - 0xC0, - 0x80, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x07, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x24, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x4B, - 0xC0, - 0x79, - 0xC0, - 0x80, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x79, - 0xE1, - 0xC0, - 0x04, - 0x79, - 0x00, - 0x05, - 0xC0, - 0x79, - 0x79, - 0x79, - 0x4C, - 0x00, - 0x08, - 0x79, - 0x01, - 0xC0, - 0x0F, - 0x79, - 0x01, - 0x4B, - 0x0A, - 0x79, - 0x00, - 0x10, - 0xE0, - 0x79, - 0x4B, - 0xE0, - 0x79, - 0xE0, - 0x79, - 0x98, - 0x79, - 0x98, - 0xE0, - 0x98, - 0x98, - 0xE0, - 0x4B, - 0x79, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4B, - 0x79, - 0x4B, - 0x98, - 0x62, - 0x00, - 0x0A, - 0x88, - 0x00, - 0x13, - 0x62, - 0x62, - 0xB1, - 0x4B, - 0x4B, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0x4D, - 0xC1, - 0xA1, - 0xD5, - 0xCA, - 0xD5, - 0xB7, - 0xB7, - 0xAE, - 0x66, - 0x00, - 0x05, - 0xB7, - 0x00, - 0x1E, - 0x8F, - 0xAE, - 0xC7, - 0xAE, - 0x8F, - 0xAE, - 0x8F, - 0xB7, - 0xB7, - 0x66, - 0xAE, - 0xC7, - 0xC7, - 0x8F, - 0xA5, - 0xA5, - 0xAD, - 0xB4, - 0xAC, - 0xCD, - 0x0C, - 0xB9, - 0xB0, - 0xC9, - 0x97, - 0x8E, - 0xB6, - 0xD2, - 0xD7, - 0xEE, - 0x19, - 0xFF, - 0x01, - 0x07, - 0x01, - 0xF4, - 0x14, - 0xFF, - 0x00, - 0x0A, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x05, - 0xFF, - 0x00, - 0x14, - 0xB0, - 0xC7, - 0xAD, - 0xCA, - 0xA6, - 0xD5, - 0xA6, - 0xA6, - 0xCA, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xCA, - 0xC9, - 0xB0, - 0xB0, - 0xA3, - 0xBF, - 0x82, - 0x07, - 0x80, - 0x00, - 0x08, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x2B, - 0x80, - 0xC0, - 0x80, - 0x04, - 0x79, - 0x00, - 0x0B, - 0x4B, - 0x98, - 0xE0, - 0x62, - 0xE0, - 0x4B, - 0x4B, - 0x4B, - 0x79, - 0x80, - 0x80, - 0x00, - 0x06, - 0xC0, - 0x00, - 0x0D, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x41, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0x80, - 0x79, - 0xC0, - 0x80, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0x79, - 0xC0, - 0x79, - 0x79, - 0xE1, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x00, - 0x05, - 0x79, - 0x00, - 0x05, - 0xC0, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x00, - 0x0A, - 0x79, - 0x01, - 0x4B, - 0x0D, - 0x79, - 0x00, - 0x0C, - 0x4B, - 0xE0, - 0x4B, - 0x79, - 0x79, - 0x79, - 0xE0, - 0x98, - 0x79, - 0x98, - 0xE0, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x09, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0x79, - 0x4B, - 0x79, - 0x00, - 0x06, - 0x62, - 0x00, - 0x12, - 0x98, - 0x62, - 0x62, - 0x62, - 0xB1, - 0x4B, - 0x4B, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x4D, - 0x81, - 0x79, - 0xB7, - 0xCA, - 0x06, - 0xB7, - 0x00, - 0x06, - 0xD5, - 0xD5, - 0xD5, - 0xB7, - 0xB7, - 0x8F, - 0x04, - 0xAE, - 0x00, - 0x17, - 0x8F, - 0xAE, - 0x8F, - 0xAE, - 0xC7, - 0x97, - 0x97, - 0xAE, - 0xA5, - 0xAD, - 0xAD, - 0xB4, - 0xB4, - 0xCD, - 0x09, - 0xAF, - 0xB0, - 0xB6, - 0xC7, - 0x8E, - 0xC5, - 0xD2, - 0xD1, - 0x00, - 0x1B, - 0xFF, - 0x01, - 0xF4, - 0x01, - 0x56, - 0x11, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x13, - 0xC5, - 0x90, - 0xD5, - 0xC9, - 0xA6, - 0xCA, - 0xA6, - 0xA6, - 0xCA, - 0xCA, - 0xC9, - 0xCA, - 0xA6, - 0xC9, - 0xB6, - 0xB0, - 0x9F, - 0xBE, - 0x82, - 0x00, - 0x0A, - 0x80, - 0x00, - 0x03, - 0xC0, - 0xC0, - 0x80, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x26, - 0x79, - 0x4B, - 0x79, - 0x4B, - 0x4B, - 0x4B, - 0x79, - 0x4B, - 0x79, - 0x4B, - 0xC0, - 0x80, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x4C, - 0x80, - 0x04, - 0xC0, - 0x00, - 0x18, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x04, - 0xC0, - 0x00, - 0x22, - 0x80, - 0x79, - 0x80, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0x4C, - 0xA2, - 0x4C, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0xC0, - 0xA2, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x15, - 0x79, - 0x01, - 0x4B, - 0x0B, - 0x79, - 0x00, - 0x0C, - 0xE0, - 0x79, - 0xE0, - 0x79, - 0x98, - 0x79, - 0x79, - 0x79, - 0xE0, - 0x79, - 0xE0, - 0x79, - 0x00, - 0x00, - 0x00, - 0x09, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0x79, - 0x4B, - 0x00, - 0x04, - 0x79, - 0x01, - 0x4B, - 0x01, - 0x79, - 0x04, - 0x4B, - 0x00, - 0x13, - 0x79, - 0xC0, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC1, - 0x2D, - 0x79, - 0xB7, - 0xA6, - 0xB7, - 0xAE, - 0xB7, - 0xB7, - 0xB7, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x03, - 0xB7, - 0xB7, - 0x8F, - 0x00, - 0x04, - 0xAE, - 0x00, - 0x17, - 0xC7, - 0x67, - 0xC7, - 0xC7, - 0xC7, - 0x97, - 0x97, - 0xC7, - 0xA5, - 0xA5, - 0xA5, - 0xB4, - 0xB4, - 0xAF, - 0x0C, - 0xB9, - 0xB0, - 0xB6, - 0xB7, - 0xAB, - 0xAC, - 0xD2, - 0xB2, - 0x00, - 0x10, - 0xFF, - 0x01, - 0xEE, - 0x0A, - 0xFF, - 0x00, - 0x03, - 0xFE, - 0xCC, - 0xF0, - 0x00, - 0x10, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0x6B, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x13, - 0xCA, - 0x64, - 0xA5, - 0xC9, - 0xCA, - 0xA6, - 0xD5, - 0xA6, - 0xCA, - 0xCA, - 0xA6, - 0xA6, - 0xCA, - 0xB0, - 0xB0, - 0x93, - 0x49, - 0x80, - 0x34, - 0x00, - 0x09, - 0x80, - 0x00, - 0x0F, - 0xC0, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x4B, - 0x00, - 0x06, - 0x80, - 0x00, - 0x16, - 0xC0, - 0x80, - 0x80, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x04, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x0E, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x03, - 0xC0, - 0x4C, - 0x4C, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x06, - 0x79, - 0x80, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0x07, - 0xC0, - 0x00, - 0x1C, - 0x79, - 0x79, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x7A, - 0x79, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0xE1, - 0x79, - 0x7A, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x23, - 0x79, - 0x00, - 0x05, - 0x98, - 0xE0, - 0x79, - 0xE0, - 0x98, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x08, - 0x79, - 0x00, - 0x05, - 0xC0, - 0xC0, - 0x4B, - 0xC0, - 0x80, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x0C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC1, - 0x81, - 0x79, - 0xAE, - 0xD5, - 0x9F, - 0xAE, - 0xAE, - 0x08, - 0xB7, - 0x00, - 0x1C, - 0xAE, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0xA7, - 0xC7, - 0xC7, - 0xAE, - 0xC7, - 0xC7, - 0xC7, - 0xAE, - 0xA5, - 0xA5, - 0xAD, - 0xAD, - 0x9A, - 0xC3, - 0x0C, - 0xB9, - 0xB0, - 0xB6, - 0xCA, - 0x9A, - 0xAC, - 0xC6, - 0x05, - 0x1C, - 0xFF, - 0x00, - 0x03, - 0xF4, - 0xF4, - 0xEE, - 0x00, - 0x10, - 0xFF, - 0x00, - 0x22, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xF0, - 0xEF, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xAD, - 0x64, - 0xA5, - 0xC9, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xA6, - 0xA6, - 0xD5, - 0xCA, - 0xB6, - 0xB0, - 0xCA, - 0xBC, - 0x35, - 0x34, - 0x0B, - 0x80, - 0x01, - 0x4C, - 0x08, - 0xC0, - 0x00, - 0x06, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0x04, - 0xC0, - 0x00, - 0x04, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x05, - 0x80, - 0x00, - 0x19, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0x2B, - 0x00, - 0x07, - 0xC0, - 0x00, - 0x1D, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x7A, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0xC0, - 0xC0, - 0xC0, - 0x4B, - 0x80, - 0xC0, - 0x4B, - 0xC0, - 0x4B, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x00, - 0x04, - 0x79, - 0x00, - 0x13, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x4C, - 0xE1, - 0xC0, - 0x79, - 0x4C, - 0xC0, - 0x7A, - 0x79, - 0x4C, - 0x4C, - 0xA2, - 0x4C, - 0x00, - 0x04, - 0x79, - 0x00, - 0x06, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x79, - 0xC0, - 0x21, - 0x79, - 0x01, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x12, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x81, - 0x4C, - 0xAE, - 0xCA, - 0xAE, - 0xA7, - 0x67, - 0xAE, - 0xAE, - 0x05, - 0xB7, - 0x01, - 0x8F, - 0x04, - 0xAE, - 0x00, - 0x18, - 0xC7, - 0x97, - 0xC7, - 0x97, - 0x97, - 0xC7, - 0x97, - 0xC7, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xC5, - 0x0C, - 0xB9, - 0xB0, - 0xB0, - 0xC9, - 0xA5, - 0xAD, - 0xC6, - 0x24, - 0x0F, - 0xFF, - 0x01, - 0xEE, - 0x0C, - 0xFF, - 0x00, - 0x03, - 0x0D, - 0xCC, - 0xF4, - 0x00, - 0x0F, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xFF, - 0x05, - 0xEE, - 0x00, - 0x1A, - 0xFF, - 0xFF, - 0xFF, - 0x56, - 0xEF, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xF4, - 0xD5, - 0x64, - 0x96, - 0xC9, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xD5, - 0xD5, - 0xCA, - 0xB6, - 0xB0, - 0xB6, - 0x46, - 0xD6, - 0x0B, - 0x80, - 0x00, - 0x13, - 0xC0, - 0x80, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x82, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x00, - 0x06, - 0x80, - 0x00, - 0x11, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x80, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x03, - 0x4C, - 0xC0, - 0x2B, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x0B, - 0x80, - 0x2B, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x36, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0xC0, - 0xC0, - 0x80, - 0x4B, - 0x80, - 0x80, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x79, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0x4C, - 0xA2, - 0x4C, - 0x79, - 0x4C, - 0x7A, - 0x79, - 0x4C, - 0x4C, - 0x79, - 0x4C, - 0xA2, - 0x4C, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x1B, - 0x79, - 0x00, - 0x06, - 0xA2, - 0x79, - 0x79, - 0x98, - 0x79, - 0x79, - 0x00, - 0x00, - 0x00, - 0x27, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0x81, - 0x4C, - 0xAE, - 0xAD, - 0xB7, - 0x9C, - 0xC8, - 0xA7, - 0xC7, - 0x67, - 0x00, - 0x08, - 0xAE, - 0x00, - 0x19, - 0xC7, - 0x97, - 0xA7, - 0x97, - 0x97, - 0xA7, - 0x97, - 0xC7, - 0xC7, - 0xAE, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xC5, - 0x0B, - 0x83, - 0xB0, - 0xB0, - 0xC9, - 0xAD, - 0xAD, - 0xCD, - 0x05, - 0x00, - 0x1D, - 0xFF, - 0x00, - 0x03, - 0xF4, - 0x83, - 0xF0, - 0x00, - 0x0D, - 0xFF, - 0x01, - 0xEE, - 0x01, - 0xFF, - 0x07, - 0xEE, - 0x00, - 0x18, - 0xFF, - 0xFF, - 0x56, - 0xEF, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xCC, - 0xA6, - 0x64, - 0x97, - 0xC9, - 0xC9, - 0xC9, - 0xCA, - 0xD5, - 0xA6, - 0xCA, - 0xB6, - 0xAF, - 0xB6, - 0x42, - 0xD6, - 0x0B, - 0x80, - 0x00, - 0x2E, - 0xC0, - 0x80, - 0x34, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0x80, - 0xC0, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x06, - 0xC0, - 0x00, - 0x05, - 0x2B, - 0xC0, - 0x2B, - 0x80, - 0x2B, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x42, - 0x80, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0x80, - 0xC0, - 0x80, - 0x79, - 0x80, - 0x79, - 0xC0, - 0x79, - 0x80, - 0x79, - 0x80, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x4C, - 0x79, - 0x4C, - 0x7A, - 0x79, - 0x4C, - 0x4C, - 0x79, - 0x7A, - 0x79, - 0xA2, - 0x79, - 0xA2, - 0x79, - 0x79, - 0xC0, - 0x1F, - 0x79, - 0x01, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x07, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x1E, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4D, - 0x4D, - 0xA7, - 0xCA, - 0xB7, - 0x9C, - 0x68, - 0x68, - 0x9C, - 0x97, - 0xA7, - 0x67, - 0xC7, - 0x05, - 0xAE, - 0x00, - 0x05, - 0xC7, - 0xC7, - 0x97, - 0x97, - 0x97, - 0x00, - 0x04, - 0xC7, - 0x00, - 0x10, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xC5, - 0x83, - 0x83, - 0xAF, - 0xB0, - 0xB6, - 0xD5, - 0xB4, - 0xCD, - 0xF0, - 0x1E, - 0xFF, - 0x01, - 0xCC, - 0x01, - 0xCC, - 0x0B, - 0xFF, - 0x00, - 0x06, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0x05, - 0xEE, - 0x00, - 0x18, - 0xFF, - 0xFF, - 0xEF, - 0xEF, - 0xEE, - 0xEE, - 0xEE, - 0xB2, - 0xF4, - 0xB6, - 0x6D, - 0x8D, - 0xC9, - 0xC9, - 0xCA, - 0xCA, - 0xA6, - 0xCA, - 0xB6, - 0xB0, - 0xB6, - 0xA3, - 0x5A, - 0x2B, - 0x0B, - 0x80, - 0x00, - 0x1D, - 0xC0, - 0x80, - 0x2B, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x80, - 0x80, - 0x2B, - 0xC0, - 0xC0, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0x00, - 0x04, - 0xC0, - 0x00, - 0x38, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0xC0, - 0x80, - 0x4B, - 0x80, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0x04, - 0xC0, - 0x00, - 0x25, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x7A, - 0xC0, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x79, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x00, - 0x15, - 0x79, - 0x00, - 0x03, - 0xA2, - 0x79, - 0xA2, - 0x00, - 0x05, - 0x79, - 0x00, - 0x00, - 0x00, - 0x2B, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x81, - 0x4D, - 0x9C, - 0xD5, - 0xD5, - 0x97, - 0xA8, - 0xC8, - 0x9C, - 0x9C, - 0x97, - 0x97, - 0xA7, - 0x67, - 0x00, - 0x06, - 0xAE, - 0x06, - 0xC7, - 0x00, - 0x11, - 0xAE, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xAC, - 0xC6, - 0x0B, - 0xAF, - 0xB0, - 0xB6, - 0xAD, - 0xAD, - 0xCD, - 0xF0, - 0x00, - 0x1E, - 0xFF, - 0x00, - 0x03, - 0x07, - 0x83, - 0x07, - 0x00, - 0x09, - 0xFF, - 0x00, - 0x06, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0x06, - 0xEE, - 0x00, - 0x17, - 0xFF, - 0xFF, - 0xEF, - 0xEF, - 0x6B, - 0xED, - 0xEE, - 0xED, - 0xF0, - 0xB0, - 0x6D, - 0x90, - 0xCA, - 0xC9, - 0xCA, - 0xD5, - 0xCA, - 0xC9, - 0xB0, - 0xB0, - 0xA3, - 0x7F, - 0x82, - 0x00, - 0x0D, - 0x80, - 0x00, - 0x1F, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x00, - 0x06, - 0xC0, - 0x00, - 0x14, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0x2B, - 0xC0, - 0xC0, - 0x04, - 0x80, - 0x00, - 0x13, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x25, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xA2, - 0x4C, - 0x79, - 0x7A, - 0x79, - 0x4C, - 0x4C, - 0xE1, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x00, - 0x04, - 0x79, - 0x01, - 0xC0, - 0x1F, - 0x79, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x07, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x13, - 0x4D, - 0x4D, - 0xA8, - 0xAD, - 0xA6, - 0x67, - 0x9C, - 0x9C, - 0x9C, - 0xA7, - 0xA7, - 0x97, - 0xA7, - 0xC7, - 0xAE, - 0xAE, - 0xAE, - 0xB7, - 0x8F, - 0x00, - 0x04, - 0xAE, - 0x00, - 0x14, - 0xC7, - 0xAE, - 0xC7, - 0xAE, - 0xB7, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xAC, - 0xC6, - 0x0C, - 0xAF, - 0xB0, - 0xB6, - 0xC9, - 0xAD, - 0xC3, - 0xCC, - 0x0F, - 0xFF, - 0x01, - 0xEE, - 0x0E, - 0xFF, - 0x00, - 0x04, - 0x06, - 0xF4, - 0xC6, - 0x06, - 0x10, - 0xFF, - 0x00, - 0x1F, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEF, - 0xEF, - 0xB2, - 0xEE, - 0xFF, - 0xEE, - 0x24, - 0xB0, - 0xC8, - 0x90, - 0xCA, - 0xCA, - 0xCA, - 0xA6, - 0xC9, - 0xB6, - 0xB0, - 0x93, - 0x49, - 0x82, - 0x2B, - 0x80, - 0x35, - 0x80, - 0x35, - 0x00, - 0x09, - 0x80, - 0x00, - 0x0C, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x82, - 0x04, - 0xC0, - 0x00, - 0x21, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x16, - 0x80, - 0x2B, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0x80, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x04, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x0B, - 0xC0, - 0x00, - 0x21, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x4C, - 0x4C, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x00, - 0x04, - 0x79, - 0x01, - 0xC0, - 0x11, - 0x79, - 0x00, - 0x03, - 0xA2, - 0x79, - 0xA2, - 0x00, - 0x05, - 0x79, - 0x00, - 0x00, - 0x00, - 0x10, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x34, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x18, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4D, - 0x4D, - 0xA0, - 0xD5, - 0xAD, - 0xAE, - 0x9C, - 0x9C, - 0x67, - 0xAE, - 0xC7, - 0xA7, - 0xA7, - 0xA7, - 0xC7, - 0x05, - 0xAE, - 0x00, - 0x18, - 0xC7, - 0xAE, - 0xAE, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xAD, - 0xCD, - 0x09, - 0xAF, - 0xB6, - 0xB6, - 0xCA, - 0xAD, - 0xB6, - 0xE3, - 0x06, - 0x1E, - 0xFF, - 0x00, - 0x04, - 0xFE, - 0x83, - 0xCC, - 0xEE, - 0x0F, - 0xFF, - 0x00, - 0x1C, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEF, - 0xD1, - 0x6B, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xAF, - 0x9C, - 0x90, - 0xD5, - 0xC9, - 0xCA, - 0xCA, - 0xB6, - 0xB6, - 0xA6, - 0x48, - 0x80, - 0x34, - 0x80, - 0x35, - 0x04, - 0x80, - 0x01, - 0x35, - 0x08, - 0x80, - 0x00, - 0x03, - 0x2B, - 0xC0, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x06, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x82, - 0x05, - 0xC0, - 0x00, - 0x23, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0xC0, - 0x2B, - 0xC0, - 0x00, - 0x04, - 0x80, - 0x00, - 0x04, - 0xC0, - 0xC0, - 0x80, - 0x2B, - 0x04, - 0xC0, - 0x00, - 0x30, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x7A, - 0x79, - 0x4C, - 0x79, - 0x04, - 0x4C, - 0x00, - 0x0B, - 0x79, - 0x4C, - 0x79, - 0x7A, - 0x79, - 0xA2, - 0x4C, - 0xA2, - 0x79, - 0x79, - 0xC0, - 0x00, - 0x1C, - 0x79, - 0x00, - 0x00, - 0x00, - 0x18, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x05, - 0x4C, - 0x00, - 0x09, - 0xC1, - 0x81, - 0x79, - 0xAE, - 0xCA, - 0xAE, - 0xA7, - 0xA7, - 0xC7, - 0x00, - 0x05, - 0xAE, - 0x01, - 0xC7, - 0x04, - 0xAE, - 0x00, - 0x19, - 0xC7, - 0xAE, - 0xC7, - 0xAE, - 0xAE, - 0xC7, - 0xC7, - 0xAE, - 0x8F, - 0x8F, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xB4, - 0xC3, - 0x0D, - 0xB9, - 0xB6, - 0xB6, - 0xCA, - 0xAD, - 0xC5, - 0xC6, - 0x6B, - 0x00, - 0x0D, - 0xFF, - 0x01, - 0xEE, - 0x10, - 0xFF, - 0x00, - 0x04, - 0xEE, - 0x0B, - 0xC6, - 0x07, - 0x0F, - 0xFF, - 0x00, - 0x19, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0x56, - 0xD1, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xB9, - 0xAE, - 0x90, - 0xD5, - 0xC9, - 0xC9, - 0xC9, - 0xB6, - 0xCA, - 0xA9, - 0xB1, - 0x2B, - 0x00, - 0x04, - 0x80, - 0x00, - 0x03, - 0x35, - 0x80, - 0x35, - 0x00, - 0x09, - 0x80, - 0x00, - 0x4A, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x2B, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x2B, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x05, - 0x4C, - 0x00, - 0x34, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x79, - 0x4C, - 0x4C, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0xC0, - 0x13, - 0x79, - 0x00, - 0x07, - 0xA2, - 0x79, - 0xA2, - 0x79, - 0xA2, - 0x79, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x34, - 0xC0, - 0x82, - 0x80, - 0x82, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC1, - 0x81, - 0xC1, - 0xA7, - 0xCA, - 0xB7, - 0xAE, - 0xAE, - 0xAE, - 0xB7, - 0xB7, - 0x8F, - 0x8F, - 0x07, - 0xAE, - 0x00, - 0x09, - 0xC7, - 0xAE, - 0xC7, - 0xAE, - 0xAE, - 0xC7, - 0xC7, - 0xC7, - 0x8F, - 0x00, - 0x04, - 0xA5, - 0x00, - 0x0B, - 0xB4, - 0xB0, - 0x09, - 0xAF, - 0xB0, - 0xB0, - 0xC9, - 0xB4, - 0xC9, - 0xD2, - 0xEF, - 0x00, - 0x1F, - 0xFF, - 0x00, - 0x03, - 0xF0, - 0xC6, - 0xCC, - 0x00, - 0x0D, - 0xFF, - 0x00, - 0x1D, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xED, - 0xD1, - 0xEF, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xC6, - 0xA6, - 0x8D, - 0xA5, - 0xC9, - 0xC9, - 0xB0, - 0xC9, - 0xBB, - 0xD6, - 0x80, - 0x80, - 0x80, - 0x35, - 0x00, - 0x0F, - 0x80, - 0x00, - 0x5D, - 0xC0, - 0x34, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x13, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xE1, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xA2, - 0x4C, - 0x79, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x07, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x4C, - 0x79, - 0xA2, - 0x00, - 0x1C, - 0x79, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x08, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x07, - 0x4C, - 0x00, - 0x09, - 0x81, - 0x4D, - 0xA7, - 0xAD, - 0xB7, - 0xB7, - 0xAE, - 0xAE, - 0x8F, - 0x00, - 0x05, - 0xB7, - 0x01, - 0x8F, - 0x07, - 0xAE, - 0x00, - 0x06, - 0xC7, - 0xAE, - 0xC7, - 0xC7, - 0xAE, - 0x8F, - 0x04, - 0xA5, - 0x00, - 0x0B, - 0x9A, - 0xC5, - 0x0D, - 0xB9, - 0xB0, - 0xB0, - 0xC9, - 0xAD, - 0xCA, - 0xC3, - 0xD1, - 0x00, - 0x18, - 0xFF, - 0x01, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x04, - 0xEE, - 0x83, - 0xC6, - 0xF0, - 0x07, - 0xFF, - 0x01, - 0xEE, - 0x05, - 0xFF, - 0x01, - 0xEE, - 0x05, - 0xFF, - 0x00, - 0x14, - 0x6B, - 0xEF, - 0xEF, - 0xEE, - 0xFF, - 0xFF, - 0x6B, - 0x6B, - 0xC6, - 0xCA, - 0x6D, - 0xC7, - 0xC9, - 0xB0, - 0xC9, - 0xB8, - 0xD6, - 0x2B, - 0x80, - 0x35, - 0x13, - 0x80, - 0x00, - 0x4F, - 0x82, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x7A, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x00, - 0x08, - 0x4C, - 0x00, - 0x0A, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x06, - 0x4C, - 0x00, - 0x19, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x79, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x4C, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0x4C, - 0x00, - 0x1A, - 0x79, - 0x00, - 0x00, - 0x00, - 0x0B, - 0x4C, - 0xC0, - 0x34, - 0xC0, - 0x34, - 0xC0, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x01, - 0x82, - 0x07, - 0x4C, - 0x00, - 0x0A, - 0x7A, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x81, - 0x81, - 0xA7, - 0xCA, - 0xD5, - 0x07, - 0xB7, - 0x00, - 0x20, - 0x8F, - 0xAE, - 0xAE, - 0xAE, - 0xC7, - 0x67, - 0xAE, - 0xAE, - 0x8F, - 0xAE, - 0xAE, - 0xC7, - 0xC7, - 0x67, - 0xC7, - 0x8F, - 0xA5, - 0x8F, - 0xA5, - 0xA5, - 0x9A, - 0xC5, - 0x0D, - 0xB9, - 0xB0, - 0xB0, - 0xC9, - 0xAD, - 0xAD, - 0xC3, - 0xCB, - 0xFE, - 0x14, - 0xFF, - 0x00, - 0x05, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x03, - 0xF0, - 0xC6, - 0xCC, - 0x00, - 0x0E, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x11, - 0xED, - 0x56, - 0xEF, - 0xEE, - 0xFF, - 0xFF, - 0xB2, - 0xEF, - 0x83, - 0xCA, - 0x6D, - 0xC8, - 0xC9, - 0xB6, - 0xA3, - 0xBF, - 0x82, - 0x00, - 0x04, - 0x80, - 0x01, - 0x35, - 0x10, - 0x80, - 0x00, - 0x35, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x0D, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x05, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x08, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x1E, - 0xC0, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xE1, - 0x4C, - 0xE1, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x79, - 0x7A, - 0x4C, - 0x7A, - 0x79, - 0x79, - 0x4C, - 0x1B, - 0x79, - 0x00, - 0x00, - 0x00, - 0x06, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0x07, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x07, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x07, - 0x4D, - 0x2D, - 0x68, - 0xAD, - 0xB7, - 0x9F, - 0xAE, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x0C, - 0x8F, - 0xAE, - 0xAE, - 0xC7, - 0x67, - 0xA7, - 0x97, - 0xA7, - 0xC7, - 0xAE, - 0x8F, - 0xAE, - 0x04, - 0xC7, - 0x00, - 0x11, - 0xAE, - 0xA5, - 0xA5, - 0xA5, - 0xB4, - 0x9A, - 0xAD, - 0x0C, - 0xB9, - 0xAF, - 0xB0, - 0xC9, - 0xAD, - 0xAD, - 0xC3, - 0xD2, - 0xEF, - 0x00, - 0x12, - 0xFF, - 0x01, - 0xEE, - 0x05, - 0xFF, - 0x01, - 0xF0, - 0x07, - 0xFF, - 0x00, - 0x03, - 0x83, - 0xC6, - 0x06, - 0x00, - 0x06, - 0xFF, - 0x01, - 0xEE, - 0x06, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x14, - 0xEF, - 0xEF, - 0xEF, - 0xEE, - 0xFF, - 0xFF, - 0xEF, - 0xEF, - 0xCC, - 0xB6, - 0x91, - 0x91, - 0xCA, - 0x9F, - 0x7D, - 0x82, - 0x80, - 0x80, - 0x80, - 0x35, - 0x11, - 0x80, - 0x00, - 0x52, - 0xC0, - 0xC0, - 0xC0, - 0x34, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x04, - 0x4C, - 0x00, - 0x03, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x0C, - 0x4C, - 0x00, - 0x1F, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x79, - 0x7A, - 0x79, - 0x7A, - 0x4C, - 0x79, - 0x4C, - 0x79, - 0x4C, - 0x4C, - 0x4C, - 0x79, - 0xA2, - 0x4C, - 0x00, - 0x18, - 0x79, - 0x00, - 0x00, - 0x00, - 0x03, - 0x4C, - 0x82, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x0B, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x08, - 0x4C, - 0x00, - 0x09, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4D, - 0x2D, - 0xA8, - 0xD5, - 0xD5, - 0x00, - 0x04, - 0xAE, - 0x00, - 0x23, - 0xB7, - 0xB7, - 0xB7, - 0xAE, - 0xAE, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0x97, - 0xA7, - 0xAE, - 0xB7, - 0x8F, - 0xAE, - 0xC7, - 0xC7, - 0xC7, - 0xAE, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0xB4, - 0xF4, - 0x83, - 0xAF, - 0xB6, - 0xB6, - 0xCA, - 0xAD, - 0xC5, - 0xD2, - 0xCC, - 0x00, - 0x18, - 0xFF, - 0x01, - 0x6B, - 0x07, - 0xFF, - 0x00, - 0x03, - 0xF4, - 0xC6, - 0xCC, - 0x00, - 0x0A, - 0xFF, - 0x00, - 0x18, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x83, - 0xD1, - 0xEC, - 0xEE, - 0xFF, - 0xFF, - 0xF0, - 0x07, - 0xF4, - 0xB6, - 0xB5, - 0x6D, - 0xD9, - 0x48, - 0xB1, - 0x2B, - 0x15, - 0x80, - 0x00, - 0x39, - 0x2B, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x01, - 0xC0, - 0x06, - 0x4C, - 0x00, - 0x06, - 0x82, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x0F, - 0x4C, - 0x01, - 0x7A, - 0x06, - 0x4C, - 0x00, - 0x1B, - 0xC0, - 0x4C, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x79, - 0x4C, - 0xA2, - 0x4C, - 0x79, - 0xA2, - 0x4C, - 0x00, - 0x05, - 0x79, - 0x00, - 0x03, - 0xC0, - 0x79, - 0xC0, - 0x00, - 0x0C, - 0x79, - 0x00, - 0x03, - 0xE0, - 0x79, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x34, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x0A, - 0x82, - 0x00, - 0x03, - 0x4C, - 0x82, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x10, - 0x82, - 0x4D, - 0x2D, - 0x9E, - 0xD5, - 0xD5, - 0xAE, - 0xA7, - 0xA7, - 0xAE, - 0xAE, - 0x66, - 0xB7, - 0xB7, - 0x66, - 0xB7, - 0x04, - 0xAE, - 0x00, - 0x04, - 0xC7, - 0xAE, - 0xAE, - 0x00, - 0x05, - 0xAE, - 0x00, - 0x10, - 0xA5, - 0xA5, - 0xA5, - 0xAD, - 0x9A, - 0x9A, - 0xCB, - 0x83, - 0xB0, - 0xB6, - 0xB6, - 0xAC, - 0xCA, - 0xC5, - 0xC3, - 0xCB, - 0x11, - 0xFF, - 0x01, - 0xEE, - 0x06, - 0xFF, - 0x01, - 0x24, - 0x01, - 0xED, - 0x06, - 0xFF, - 0x00, - 0x03, - 0xF0, - 0xC6, - 0x83, - 0x00, - 0x0B, - 0xFF, - 0x01, - 0xEE, - 0x05, - 0xFF, - 0x00, - 0x10, - 0xEE, - 0x83, - 0xEF, - 0xB2, - 0xEE, - 0xFF, - 0xEE, - 0xCB, - 0xB0, - 0xB0, - 0xB6, - 0x93, - 0x9F, - 0x47, - 0xD6, - 0x34, - 0x17, - 0x80, - 0x00, - 0x42, - 0xC0, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x7A, - 0x04, - 0x4C, - 0x00, - 0x17, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x7A, - 0x4C, - 0x4C, - 0xC1, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x06, - 0x7A, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x05, - 0xC0, - 0x00, - 0x16, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xE1, - 0x4C, - 0xE1, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0x4C, - 0x0D, - 0x79, - 0x00, - 0x09, - 0x4B, - 0x79, - 0x4B, - 0x79, - 0x4B, - 0x79, - 0x79, - 0x4B, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0x82, - 0x82, - 0x34, - 0x82, - 0x34, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x2D, - 0xA0, - 0xA5, - 0xD5, - 0xAE, - 0x67, - 0xAE, - 0x67, - 0xAE, - 0xAE, - 0x66, - 0xB7, - 0x00, - 0x66, - 0xB7, - 0x66, - 0xB7, - 0x8F, - 0x8F, - 0xB7, - 0x8F, - 0xB7, - 0x8F, - 0x8F, - 0x8F, - 0xB7, - 0xAE, - 0xA5, - 0x8F, - 0xA5, - 0xAD, - 0x9A, - 0x96, - 0xC6, - 0x0B, - 0xAF, - 0xB0, - 0xB6, - 0xC9, - 0xAC, - 0xC5, - 0xC5, - 0xD2, - 0xFE, - 0x00, - 0x17, - 0xFF, - 0x00, - 0x0B, - 0xEE, - 0xD1, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0x24, - 0xC6, - 0xC6, - 0x00, - 0x12, - 0xFF, - 0x00, - 0x0E, - 0xEF, - 0x6B, - 0xB2, - 0x24, - 0xFF, - 0xFF, - 0xB0, - 0xD5, - 0xCA, - 0xB6, - 0xCA, - 0x6A, - 0xD6, - 0x34, - 0x13, - 0x80, - 0x00, - 0x42, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x34, - 0x80, - 0xC0, - 0x4C, - 0x80, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x0D, - 0x4C, - 0x00, - 0x04, - 0xC0, - 0x4C, - 0x4C, - 0x7A, - 0x05, - 0x4C, - 0x01, - 0x7A, - 0x04, - 0x4C, - 0x00, - 0x0C, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x04, - 0x4C, - 0x01, - 0xC0, - 0x01, - 0xC0, - 0x04, - 0x80, - 0x00, - 0x0B, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x06, - 0xC0, - 0x4C, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x06, - 0x79, - 0x01, - 0xC0, - 0x07, - 0x79, - 0x00, - 0x07, - 0xE0, - 0x79, - 0x79, - 0xE0, - 0x4B, - 0xE0, - 0x79, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x82, - 0x00, - 0x0A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x2D, - 0xA1, - 0x66, - 0xAD, - 0xD5, - 0xB7, - 0x06, - 0xAE, - 0x00, - 0x0A, - 0xB7, - 0x66, - 0xB7, - 0xA5, - 0xB7, - 0xD5, - 0xD5, - 0xB7, - 0xA5, - 0x8F, - 0x04, - 0xAE, - 0x00, - 0x12, - 0x8F, - 0xA5, - 0x8F, - 0xA5, - 0xAD, - 0x96, - 0x96, - 0xCD, - 0xFE, - 0xB9, - 0xB6, - 0xB6, - 0xC9, - 0xAD, - 0xB6, - 0xC5, - 0xC3, - 0xCC, - 0x0F, - 0xFF, - 0x01, - 0xEE, - 0x08, - 0xFF, - 0x00, - 0x14, - 0xD1, - 0x6B, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xCB, - 0xC6, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0x09, - 0xFF, - 0x00, - 0x0C, - 0x6B, - 0xEF, - 0xED, - 0xFF, - 0x6B, - 0xC9, - 0xD5, - 0xCA, - 0xC9, - 0xB8, - 0x5A, - 0x34, - 0x10, - 0x80, - 0x00, - 0x35, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x2B, - 0xC0, - 0x82, - 0x80, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0x80, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0xC0, - 0x82, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x0F, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x05, - 0x7A, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x14, - 0x7A, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x04, - 0x4C, - 0x00, - 0x24, - 0xC0, - 0x4C, - 0xC0, - 0x80, - 0x80, - 0x80, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0xC0, - 0x7A, - 0x4C, - 0xE1, - 0x4C, - 0x79, - 0x4C, - 0xC0, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x0A, - 0x79, - 0x00, - 0x06, - 0x4B, - 0xE0, - 0x4B, - 0xE0, - 0x79, - 0x4B, - 0x00, - 0x00, - 0x00, - 0x03, - 0x82, - 0x82, - 0x2E, - 0x00, - 0x1B, - 0x82, - 0x00, - 0x09, - 0x4C, - 0x2D, - 0x9D, - 0x8F, - 0xCA, - 0xD5, - 0xA6, - 0xD5, - 0xB7, - 0x00, - 0x06, - 0xAE, - 0x04, - 0xB7, - 0x00, - 0x1A, - 0xD5, - 0xB7, - 0xB7, - 0xAE, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0xAE, - 0x8F, - 0x8F, - 0xA5, - 0xAD, - 0x9A, - 0x63, - 0xB6, - 0x0B, - 0xAF, - 0x0A, - 0x93, - 0x9F, - 0x8E, - 0xC9, - 0xC3, - 0xC5, - 0xD2, - 0x10, - 0xFF, - 0x01, - 0xEE, - 0x07, - 0xFF, - 0x00, - 0x0B, - 0xEF, - 0xEF, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xCC, - 0xC6, - 0xF4, - 0x00, - 0x06, - 0xFF, - 0x01, - 0xEE, - 0x06, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x0C, - 0xED, - 0xB2, - 0xEE, - 0xFF, - 0xCB, - 0xC9, - 0xC9, - 0xB6, - 0x69, - 0xBF, - 0x82, - 0x2B, - 0x10, - 0x80, - 0x00, - 0x3C, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x34, - 0x80, - 0x34, - 0x80, - 0xC0, - 0xC0, - 0x2B, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x0E, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x07, - 0x4C, - 0x00, - 0x15, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x7A, - 0x82, - 0x7A, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x00, - 0x06, - 0x4C, - 0x01, - 0x2B, - 0x01, - 0xC0, - 0x05, - 0x80, - 0x00, - 0x0D, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x07, - 0xC0, - 0x4C, - 0xC0, - 0x79, - 0x80, - 0x4B, - 0xC0, - 0x00, - 0x04, - 0x79, - 0x01, - 0xC0, - 0x0A, - 0x79, - 0x00, - 0x05, - 0xE0, - 0x4B, - 0xB1, - 0x79, - 0xE0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x82, - 0x82, - 0x82, - 0x2E, - 0x82, - 0x82, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x0F, - 0x82, - 0x00, - 0x0A, - 0x4D, - 0x92, - 0xC7, - 0xA6, - 0xD5, - 0xA6, - 0xA6, - 0xA6, - 0xB7, - 0xB7, - 0x05, - 0xAE, - 0x00, - 0x1E, - 0xA5, - 0xB7, - 0xD5, - 0xB7, - 0xB7, - 0x8F, - 0xAE, - 0xAE, - 0xC7, - 0xAE, - 0xC7, - 0xAE, - 0xA5, - 0x96, - 0x8F, - 0xAD, - 0xB4, - 0x95, - 0x52, - 0xB0, - 0x0A, - 0x7B, - 0x74, - 0xA8, - 0x87, - 0xAD, - 0xC5, - 0xC5, - 0xC3, - 0xEF, - 0x17, - 0xFF, - 0x00, - 0x0F, - 0xED, - 0xD1, - 0xF0, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xF4, - 0xC6, - 0xCB, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x00, - 0x08, - 0xFF, - 0x00, - 0x10, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x6B, - 0x6B, - 0xEE, - 0xEF, - 0xB0, - 0xC9, - 0xB6, - 0x93, - 0xBD, - 0x82, - 0x11, - 0x80, - 0x00, - 0x39, - 0x2B, - 0x80, - 0x80, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0x82, - 0x80, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x03, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x01, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x11, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x7A, - 0x00, - 0x0B, - 0x4C, - 0x00, - 0x07, - 0x7A, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x03, - 0xC0, - 0x4C, - 0x4C, - 0x00, - 0x04, - 0x80, - 0x00, - 0x22, - 0xC0, - 0x80, - 0xC0, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4B, - 0x80, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x79, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x08, - 0x79, - 0x00, - 0x04, - 0xB1, - 0xE0, - 0x4B, - 0x79, - 0x00, - 0x00, - 0x04, - 0x82, - 0x01, - 0xFD, - 0x01, - 0x2E, - 0x06, - 0x82, - 0x01, - 0xFD, - 0x0F, - 0x82, - 0x00, - 0x08, - 0x2E, - 0x82, - 0x82, - 0x4D, - 0x4D, - 0x74, - 0xC9, - 0x93, - 0x04, - 0xD5, - 0x01, - 0xB7, - 0x01, - 0x8F, - 0x04, - 0xAE, - 0x05, - 0xB7, - 0x00, - 0x1A, - 0x8F, - 0xAE, - 0xC7, - 0xC7, - 0xC7, - 0xAE, - 0xAE, - 0x8F, - 0xC7, - 0xC7, - 0xAE, - 0xA5, - 0x96, - 0x9E, - 0x0A, - 0x0A, - 0x42, - 0xA9, - 0x9C, - 0x64, - 0xD5, - 0xC5, - 0xC5, - 0xC3, - 0xCB, - 0x06, - 0x16, - 0xFF, - 0x00, - 0x0B, - 0xEE, - 0xE3, - 0x56, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0x56, - 0xC6, - 0xC6, - 0x00, - 0x0B, - 0xFF, - 0x00, - 0x03, - 0xEE, - 0xEE, - 0xEE, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x0A, - 0xEE, - 0xEE, - 0xEF, - 0xC6, - 0xC9, - 0xB6, - 0xCA, - 0x7C, - 0x80, - 0x2B, - 0x05, - 0x80, - 0x00, - 0x0A, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x2B, - 0x80, - 0xC0, - 0x80, - 0x2B, - 0x04, - 0x80, - 0x00, - 0x41, - 0x82, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x07, - 0x4C, - 0x01, - 0x82, - 0x07, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x10, - 0x7A, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x7A, - 0x4C, - 0xC1, - 0x4C, - 0xC1, - 0x7A, - 0xC1, - 0x7A, - 0x7A, - 0x04, - 0x4C, - 0x01, - 0xC0, - 0x01, - 0x82, - 0x05, - 0x80, - 0x00, - 0x0E, - 0xC0, - 0x80, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x06, - 0x4C, - 0x00, - 0x11, - 0xC0, - 0xC0, - 0xC0, - 0x80, - 0xC0, - 0x80, - 0x79, - 0x80, - 0x79, - 0xC0, - 0x80, - 0x79, - 0x4B, - 0x79, - 0x79, - 0x79, - 0xC0, - 0x00, - 0x0A, - 0x79, - 0x00, - 0x00, - 0x00, - 0x4E, - 0x82, - 0x33, - 0x82, - 0x2E, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0x82, - 0x82, - 0x2E, - 0x82, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0xC1, - 0x2E, - 0x82, - 0x33, - 0x82, - 0x33, - 0x82, - 0x2E, - 0xFD, - 0x82, - 0x82, - 0x82, - 0x2E, - 0x82, - 0x82, - 0xD6, - 0x6A, - 0xC9, - 0xCA, - 0xA6, - 0xA6, - 0xA6, - 0xD5, - 0xB7, - 0xB7, - 0xAE, - 0xC7, - 0xC7, - 0xC7, - 0xAE, - 0x8F, - 0xB7, - 0x8F, - 0xAE, - 0xAE, - 0xC7, - 0xAE, - 0xAE, - 0xC7, - 0x8F, - 0xA5, - 0x8F, - 0x96, - 0x8F, - 0xA5, - 0xC7, - 0x68, - 0xA6, - 0xB6, - 0x54, - 0x27, - 0x72, - 0x64, - 0xA5, - 0xC5, - 0xC5, - 0xC5, - 0xD2, - 0xCC, - 0x06, - 0x14, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xFF, - 0xCC, - 0xD1, - 0xFF, - 0xFF, - 0xED, - 0xEE, - 0xFF, - 0xF0, - 0xCB, - 0xC6, - 0xEE, - 0x00, - 0x08, - 0xFF, - 0x04, - 0xEE, - 0x05, - 0xFF, - 0x00, - 0x09, - 0xEE, - 0xED, - 0xCB, - 0xB0, - 0xC9, - 0xC9, - 0x74, - 0xB1, - 0x34, - 0x00, - 0x04, - 0x80, - 0x01, - 0x34, - 0x05, - 0x80, - 0x00, - 0x41, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0x2B, - 0x80, - 0xC0, - 0x82, - 0xC0, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x04, - 0xC1, - 0x4C, - 0x4C, - 0x7A, - 0x07, - 0x4C, - 0x00, - 0x08, - 0x82, - 0x4C, - 0x7A, - 0xC1, - 0x4C, - 0xC1, - 0x7A, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x03, - 0x7A, - 0x4C, - 0xC1, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x09, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x00, - 0x06, - 0x80, - 0x00, - 0x0D, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x80, - 0xC0, - 0x4C, - 0x00, - 0x07, - 0xC0, - 0x09, - 0x80, - 0x00, - 0x09, - 0x79, - 0xC0, - 0xC0, - 0x79, - 0xC0, - 0x4C, - 0x79, - 0x79, - 0x4C, - 0x00, - 0x08, - 0x79, - 0x00, - 0x00, - 0x00, - 0x06, - 0x2E, - 0x82, - 0x81, - 0xFD, - 0x2E, - 0xFD, - 0x06, - 0x33, - 0x00, - 0x42, - 0x2E, - 0x33, - 0x82, - 0x33, - 0xFD, - 0x33, - 0x82, - 0x33, - 0x82, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x2E, - 0xFD, - 0x2E, - 0xFD, - 0x2E, - 0x82, - 0xFD, - 0x2C, - 0x7E, - 0x7C, - 0x51, - 0xCA, - 0xC9, - 0xC9, - 0xCA, - 0xD5, - 0xB7, - 0xB7, - 0xAE, - 0xC7, - 0x97, - 0xC7, - 0xAE, - 0xC7, - 0x97, - 0xA7, - 0xC7, - 0xC7, - 0xAE, - 0xAE, - 0xAE, - 0x8F, - 0xC7, - 0x96, - 0x8F, - 0xA5, - 0x96, - 0x68, - 0x0A, - 0x0A, - 0x54, - 0x46, - 0xB8, - 0x64, - 0x8F, - 0xC5, - 0xAC, - 0xC5, - 0xC3, - 0xCB, - 0xF0, - 0x14, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xFF, - 0xD1, - 0xD1, - 0x6B, - 0xFF, - 0xEE, - 0xED, - 0xEE, - 0x05, - 0xCC, - 0xB9, - 0xEE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x17, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xED, - 0xED, - 0xFF, - 0xFF, - 0xFF, - 0x6B, - 0xC6, - 0xB6, - 0xCA, - 0xDB, - 0xD6, - 0x82, - 0x80, - 0x80, - 0x80, - 0x34, - 0x00, - 0x05, - 0x80, - 0x00, - 0x65, - 0x2B, - 0x80, - 0x80, - 0x80, - 0x34, - 0x80, - 0xC0, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0xC1, - 0x4C, - 0x7A, - 0x7A, - 0x4C, - 0x7A, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x09, - 0xC1, - 0x7A, - 0x4C, - 0x7A, - 0x4D, - 0x7A, - 0xC1, - 0x7A, - 0xC1, - 0x00, - 0x05, - 0x4C, - 0x01, - 0xC0, - 0x01, - 0x2B, - 0x05, - 0x80, - 0x00, - 0x13, - 0xC0, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x2B, - 0x4C, - 0x4C, - 0x2B, - 0xC0, - 0x00, - 0x09, - 0x80, - 0x00, - 0x0C, - 0x4B, - 0x80, - 0x80, - 0x80, - 0x79, - 0x4C, - 0xC0, - 0x79, - 0x4C, - 0x79, - 0xC0, - 0xC0, - 0x07, - 0x79, - 0x00, - 0x00, - 0x00, - 0x4F, - 0x33, - 0x2E, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x81, - 0x2E, - 0x33, - 0x81, - 0x82, - 0x81, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x2E, - 0xC1, - 0x2E, - 0x81, - 0x81, - 0x2D, - 0x82, - 0x7D, - 0x84, - 0xA3, - 0x0A, - 0xC9, - 0xC9, - 0xCA, - 0xCA, - 0xAD, - 0xB7, - 0xAE, - 0xAE, - 0x97, - 0x9C, - 0x97, - 0xC8, - 0x9C, - 0x97, - 0xC7, - 0xC7, - 0xC7, - 0xAE, - 0x8F, - 0xC7, - 0x8F, - 0xA5, - 0x9A, - 0x9C, - 0x51, - 0xB6, - 0xA3, - 0x46, - 0x71, - 0x91, - 0xC7, - 0xAC, - 0xAC, - 0xAC, - 0xC3, - 0xCD, - 0xE3, - 0x06, - 0x00, - 0x15, - 0xFF, - 0x00, - 0x0B, - 0xEF, - 0xD1, - 0x56, - 0xFF, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0xCC, - 0xCD, - 0xF0, - 0x00, - 0x07, - 0xFF, - 0x04, - 0xEE, - 0x00, - 0x0E, - 0xFF, - 0xFF, - 0xEC, - 0xEB, - 0xEC, - 0xFF, - 0xFF, - 0xF0, - 0xC6, - 0xC9, - 0x72, - 0x5A, - 0x2B, - 0x34, - 0x07, - 0x80, - 0x00, - 0x39, - 0x34, - 0x80, - 0x80, - 0x80, - 0x34, - 0x80, - 0xC0, - 0x34, - 0x80, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x15, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x80, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x00, - 0x08, - 0x4C, - 0x00, - 0x0D, - 0x7A, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x7A, - 0x82, - 0x7A, - 0xC1, - 0x7A, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x03, - 0xC1, - 0x7A, - 0x4C, - 0x00, - 0x05, - 0x7A, - 0x00, - 0x07, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x34, - 0xC0, - 0xC0, - 0x00, - 0x05, - 0x80, - 0x00, - 0x09, - 0x2B, - 0x80, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x00, - 0x04, - 0x80, - 0xC0, - 0x80, - 0x2B, - 0x0B, - 0x80, - 0x00, - 0x0C, - 0x4B, - 0x80, - 0x80, - 0x80, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0x4C, - 0xC0, - 0x06, - 0x79, - 0x00, - 0x00, - 0x00, - 0x04, - 0x81, - 0x33, - 0x81, - 0x81, - 0x0B, - 0x33, - 0x00, - 0x1D, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2E, - 0x33, - 0x2E, - 0x33, - 0x2E, - 0x33, - 0x2E, - 0x33, - 0x33, - 0x2E, - 0x2E, - 0x81, - 0x81, - 0x81, - 0x2D, - 0x2D, - 0xD6, - 0x6A, - 0x5B, - 0x51, - 0xA6, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x20, - 0xD5, - 0x8F, - 0xC7, - 0xA7, - 0x9C, - 0xC8, - 0x9C, - 0xC8, - 0x9C, - 0xC8, - 0x97, - 0x8F, - 0xC7, - 0x96, - 0xA5, - 0x8F, - 0x97, - 0x69, - 0x0A, - 0x3F, - 0x46, - 0x72, - 0x91, - 0x8D, - 0xC9, - 0xC5, - 0xAD, - 0xC5, - 0xC3, - 0xCD, - 0xCC, - 0x08, - 0x12, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xFF, - 0xEE, - 0xCC, - 0xD1, - 0xFF, - 0xFF, - 0xED, - 0xED, - 0xED, - 0xD1, - 0xC6, - 0xEF, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x2D, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xD7, - 0xEA, - 0xEB, - 0xFF, - 0xFF, - 0xEE, - 0xCD, - 0xB8, - 0xD6, - 0x34, - 0x34, - 0x80, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x34, - 0xC0, - 0x80, - 0x34, - 0x80, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0x2B, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x03, - 0x82, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x01, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x13, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x80, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x07, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x0F, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x00, - 0x08, - 0x4C, - 0x00, - 0x17, - 0xC1, - 0x4C, - 0x7A, - 0x82, - 0x7A, - 0x7A, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0xC1, - 0x4D, - 0x7A, - 0xC1, - 0x7A, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x01, - 0xC0, - 0x05, - 0x80, - 0x00, - 0x0E, - 0x2B, - 0x80, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0x80, - 0x4C, - 0x16, - 0x80, - 0x00, - 0x0C, - 0xC0, - 0x2B, - 0x79, - 0x4C, - 0x79, - 0x4B, - 0x79, - 0x79, - 0xC0, - 0x79, - 0xC0, - 0x79, - 0x00, - 0x00, - 0x00, - 0x04, - 0x33, - 0x81, - 0x81, - 0x33, - 0x0C, - 0x81, - 0x01, - 0x33, - 0x08, - 0x81, - 0x00, - 0x39, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x81, - 0x81, - 0x33, - 0x82, - 0x34, - 0x84, - 0x51, - 0x93, - 0x93, - 0xD5, - 0xD5, - 0xA6, - 0xD5, - 0x8F, - 0xC7, - 0x97, - 0x9C, - 0xC8, - 0x68, - 0x6D, - 0xC8, - 0x8F, - 0xC7, - 0x96, - 0x9A, - 0xA5, - 0x97, - 0x42, - 0x0A, - 0xA3, - 0x25, - 0x74, - 0xB5, - 0x90, - 0xCA, - 0xC5, - 0xAD, - 0xAC, - 0xC5, - 0xC5, - 0xCD, - 0x07, - 0x08, - 0x08, - 0x00, - 0x0F, - 0xFF, - 0x00, - 0x0E, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xD1, - 0xCC, - 0xEE, - 0xEE, - 0xEE, - 0x6B, - 0xED, - 0x56, - 0xC6, - 0xEF, - 0x05, - 0xFF, - 0x00, - 0x15, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xEB, - 0xEA, - 0xEB, - 0xFF, - 0xFF, - 0xFF, - 0xB6, - 0x2B, - 0x82, - 0x2B, - 0x80, - 0x80, - 0x2B, - 0x00, - 0x04, - 0x80, - 0x01, - 0x2B, - 0x04, - 0x80, - 0x00, - 0x22, - 0x4C, - 0x80, - 0x2B, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x05, - 0x4C, - 0x00, - 0x15, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x80, - 0x34, - 0x80, - 0x34, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x0C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x80, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x14, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0xC1, - 0x7A, - 0x7A, - 0x82, - 0x7A, - 0xC1, - 0x06, - 0x4C, - 0x00, - 0x0F, - 0x82, - 0x7A, - 0xC1, - 0x7A, - 0x7A, - 0x7A, - 0x4C, - 0x7A, - 0x7A, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0x00, - 0x06, - 0x80, - 0x00, - 0x0C, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x80, - 0x80, - 0xC0, - 0x17, - 0x80, - 0x04, - 0xC0, - 0x00, - 0x08, - 0x80, - 0xC0, - 0xC0, - 0xC0, - 0x79, - 0x79, - 0x79, - 0x79, - 0x00, - 0x00, - 0x00, - 0x1B, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x08, - 0x81, - 0x00, - 0x30, - 0x33, - 0x81, - 0x33, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x81, - 0x2B, - 0x80, - 0x7E, - 0x51, - 0x9F, - 0x9F, - 0xB7, - 0xD5, - 0xD5, - 0xAE, - 0xD9, - 0xA7, - 0x97, - 0x9C, - 0xC8, - 0x9C, - 0x8F, - 0x8F, - 0x8F, - 0xA5, - 0xA5, - 0x97, - 0x42, - 0x20, - 0x54, - 0x25, - 0x47, - 0x6D, - 0x64, - 0xAC, - 0xB6, - 0xCA, - 0xAC, - 0xC5, - 0xAC, - 0xC5, - 0xC6, - 0x09, - 0x08, - 0x08, - 0x12, - 0xFF, - 0x00, - 0x0A, - 0xEF, - 0xCC, - 0x6B, - 0xED, - 0xEE, - 0xED, - 0xED, - 0xEF, - 0xCB, - 0xF0, - 0x06, - 0xFF, - 0x00, - 0x17, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xEB, - 0xE8, - 0xEB, - 0xFF, - 0xFF, - 0xFF, - 0xB6, - 0x82, - 0x82, - 0xC0, - 0x2B, - 0x80, - 0x80, - 0x34, - 0x80, - 0x34, - 0x00, - 0x04, - 0x80, - 0x01, - 0x82, - 0x05, - 0x80, - 0x00, - 0x09, - 0x34, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x54, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x80, - 0x82, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x80, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x80, - 0x80, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x7A, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x7A, - 0x82, - 0x7A, - 0x7A, - 0x7A, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x07, - 0x7A, - 0x4C, - 0x7A, - 0x7A, - 0xC1, - 0x7A, - 0xC1, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x80, - 0x80, - 0x2B, - 0x06, - 0x80, - 0x00, - 0x0A, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x1D, - 0x80, - 0x01, - 0xC0, - 0x01, - 0x80, - 0x05, - 0xC0, - 0x01, - 0x4C, - 0x00, - 0x00, - 0x01, - 0x33, - 0x1A, - 0x81, - 0x00, - 0x07, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x04, - 0x81, - 0x00, - 0x2E, - 0x33, - 0x81, - 0x33, - 0x4D, - 0x81, - 0x81, - 0x81, - 0x34, - 0xD6, - 0x7F, - 0x7B, - 0x9F, - 0x93, - 0xA6, - 0xA6, - 0xD5, - 0xB7, - 0xAE, - 0xAE, - 0xAE, - 0x97, - 0xAE, - 0xC7, - 0xC7, - 0x96, - 0xA5, - 0xAC, - 0xB9, - 0xAF, - 0x51, - 0x75, - 0x3E, - 0xA8, - 0x90, - 0xAD, - 0xC5, - 0xAD, - 0xCA, - 0xC5, - 0xAC, - 0xAC, - 0xC3, - 0xC6, - 0xCC, - 0x09, - 0x08, - 0x11, - 0xFF, - 0x00, - 0x0A, - 0xEF, - 0xCC, - 0xD1, - 0xEE, - 0xEE, - 0xED, - 0xED, - 0xEF, - 0xCC, - 0xF0, - 0x04, - 0xFF, - 0x00, - 0x42, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xED, - 0xEB, - 0xEA, - 0xEB, - 0xFF, - 0xFF, - 0xFF, - 0xB6, - 0xC1, - 0x82, - 0x82, - 0x80, - 0x34, - 0xC0, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x34, - 0x80, - 0x80, - 0x34, - 0xC0, - 0x34, - 0x80, - 0xC0, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x2B, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x12, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x80, - 0x80, - 0x80, - 0x34, - 0xC0, - 0x80, - 0x82, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x0F, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x1D, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x05, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x00, - 0x07, - 0x80, - 0x00, - 0x0D, - 0xC0, - 0x34, - 0x80, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0x00, - 0x1D, - 0x80, - 0x00, - 0x07, - 0xC0, - 0x80, - 0x80, - 0x4C, - 0x4C, - 0x4C, - 0x4C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x06, - 0x81, - 0x00, - 0x28, - 0x4D, - 0x81, - 0x2D, - 0x81, - 0xD6, - 0x29, - 0x6A, - 0x51, - 0xA6, - 0xC9, - 0xCA, - 0xCA, - 0xD5, - 0xA5, - 0x00, - 0xAE, - 0xC7, - 0xC7, - 0xC7, - 0xA5, - 0xB6, - 0x05, - 0xF4, - 0x20, - 0x25, - 0x74, - 0x9C, - 0x64, - 0xAD, - 0xB6, - 0xAD, - 0xAD, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xC3, - 0xD2, - 0xCC, - 0x06, - 0x11, - 0xFF, - 0x00, - 0x0E, - 0xEE, - 0xD1, - 0xCC, - 0xEE, - 0xED, - 0xED, - 0xED, - 0xEF, - 0xCC, - 0xF0, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x05, - 0xFF, - 0x00, - 0x2A, - 0xEE, - 0xEE, - 0xFF, - 0xD7, - 0xEA, - 0xEA, - 0xEB, - 0xFF, - 0xFF, - 0xFF, - 0xB6, - 0x82, - 0x82, - 0x4C, - 0xC0, - 0x2B, - 0x4C, - 0x82, - 0xC0, - 0x80, - 0x80, - 0x80, - 0xC0, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x22, - 0x82, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x34, - 0xC0, - 0x2B, - 0xC0, - 0x2B, - 0x80, - 0x4C, - 0x2B, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x09, - 0x4C, - 0x00, - 0x0F, - 0xC0, - 0x34, - 0xC0, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x7A, - 0x7A, - 0x4C, - 0x00, - 0x04, - 0x7A, - 0x01, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x01, - 0x7A, - 0x05, - 0x4C, - 0x01, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x0A, - 0x7A, - 0x7A, - 0x7A, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x2B, - 0x05, - 0x80, - 0x00, - 0x10, - 0xC0, - 0x34, - 0xC0, - 0x34, - 0x80, - 0x4C, - 0x82, - 0xC0, - 0xC0, - 0x2B, - 0xC0, - 0xC0, - 0x82, - 0x80, - 0x80, - 0x2B, - 0x11, - 0x80, - 0x01, - 0x2B, - 0x0B, - 0x80, - 0x00, - 0x07, - 0x2B, - 0x2B, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x82, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x29, - 0x81, - 0x01, - 0x33, - 0x04, - 0x81, - 0x00, - 0x25, - 0x2D, - 0x36, - 0x2C, - 0x7E, - 0xFB, - 0x7B, - 0x93, - 0xCA, - 0xCA, - 0xD5, - 0xD5, - 0xA5, - 0x8F, - 0xAE, - 0xC7, - 0xA5, - 0xB6, - 0xEF, - 0x09, - 0x0A, - 0x49, - 0x47, - 0x72, - 0x86, - 0xAD, - 0xC5, - 0xAD, - 0xAD, - 0xAD, - 0xAC, - 0xAC, - 0xAC, - 0xC5, - 0xC3, - 0xD2, - 0xF0, - 0x08, - 0x00, - 0x11, - 0xFF, - 0x00, - 0x09, - 0xD1, - 0xCB, - 0xEE, - 0xED, - 0xED, - 0xED, - 0xEF, - 0xD1, - 0x05, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x2D, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xD7, - 0xEA, - 0xEA, - 0xD7, - 0x08, - 0xFF, - 0xFF, - 0xB6, - 0x81, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x80, - 0x82, - 0x80, - 0xC0, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x34, - 0xC0, - 0x34, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x19, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x00, - 0x05, - 0x80, - 0x00, - 0x05, - 0xC0, - 0x34, - 0xC0, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x17, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x34, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x82, - 0x7A, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x7A, - 0x00, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x0E, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x7A, - 0x82, - 0x7A, - 0x7A, - 0x4C, - 0x4C, - 0x4C, - 0x06, - 0x80, - 0x01, - 0xC0, - 0x01, - 0x34, - 0x04, - 0x80, - 0x00, - 0x07, - 0x4C, - 0x80, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x00, - 0x0E, - 0x80, - 0x00, - 0x07, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x00, - 0x06, - 0x80, - 0x00, - 0x0D, - 0xC0, - 0x34, - 0xC0, - 0x2B, - 0x34, - 0x82, - 0x34, - 0x82, - 0x82, - 0x82, - 0x2E, - 0x82, - 0x4D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x07, - 0x81, - 0x00, - 0x24, - 0x4D, - 0x81, - 0x2D, - 0x2D, - 0x81, - 0x82, - 0x2F, - 0xF6, - 0x51, - 0xA6, - 0xD5, - 0xD5, - 0xD5, - 0xB7, - 0xA5, - 0xD5, - 0xCA, - 0xCC, - 0x0C, - 0x51, - 0x5A, - 0x48, - 0xBA, - 0x91, - 0xAD, - 0xB6, - 0xAC, - 0xD5, - 0xAD, - 0xAD, - 0xAC, - 0xAC, - 0xC5, - 0xC3, - 0xC3, - 0xD1, - 0x0E, - 0xFF, - 0x00, - 0x49, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEF, - 0xCB, - 0xB2, - 0xED, - 0x6B, - 0xEC, - 0xEF, - 0xEF, - 0xF0, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xEE, - 0xFF, - 0xE2, - 0xEB, - 0xEA, - 0xEB, - 0xEE, - 0xFF, - 0xFF, - 0xB6, - 0x4D, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x34, - 0xC0, - 0x34, - 0x80, - 0x82, - 0x80, - 0x82, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0x34, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x08, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x11, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x2B, - 0xC0, - 0x34, - 0x80, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x03, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x03, - 0xC0, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x01, - 0x82, - 0x01, - 0x7A, - 0x04, - 0x4C, - 0x00, - 0x04, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x04, - 0x4C, - 0x00, - 0x06, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x07, - 0x4C, - 0x05, - 0x7A, - 0x00, - 0x05, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x2B, - 0x00, - 0x04, - 0x80, - 0x00, - 0x0F, - 0x34, - 0x80, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x2B, - 0xC0, - 0x2B, - 0x4C, - 0x80, - 0x2B, - 0x00, - 0x0B, - 0x80, - 0x01, - 0x2B, - 0x0B, - 0x80, - 0x00, - 0x06, - 0x82, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x2B, - 0x05, - 0x82, - 0x00, - 0x05, - 0x33, - 0x2E, - 0x2E, - 0x33, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x33, - 0x81, - 0x00, - 0x21, - 0x2E, - 0x81, - 0x2E, - 0x2E, - 0x30, - 0xA3, - 0x51, - 0x93, - 0xD5, - 0xD5, - 0xB7, - 0xA5, - 0xD5, - 0xC6, - 0xF4, - 0x20, - 0x5A, - 0x23, - 0xBA, - 0x68, - 0xD5, - 0xC9, - 0xAD, - 0xD5, - 0xA5, - 0xA5, - 0xA5, - 0xB4, - 0xAC, - 0xC5, - 0xC3, - 0xCB, - 0x06, - 0x00, - 0x11, - 0xFF, - 0x00, - 0x09, - 0xF0, - 0xCB, - 0xD1, - 0xB2, - 0xED, - 0xB2, - 0x6B, - 0xF0, - 0xEE, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x2C, - 0xEE, - 0xEE, - 0xFF, - 0xEE, - 0xEE, - 0xEB, - 0xEA, - 0xE8, - 0xCF, - 0xF0, - 0xFF, - 0xFF, - 0xC9, - 0x2D, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0xC0, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x34, - 0xC0, - 0xC0, - 0x82, - 0xC0, - 0x2B, - 0x4C, - 0x80, - 0x82, - 0x4C, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x10, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x07, - 0x4C, - 0x00, - 0x0A, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x34, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x0B, - 0x4C, - 0x00, - 0x03, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x0B, - 0x4C, - 0x00, - 0x0B, - 0x82, - 0x7A, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x09, - 0x4C, - 0x01, - 0x82, - 0x01, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x26, - 0x82, - 0x7A, - 0x82, - 0x7A, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x34, - 0x80, - 0x34, - 0x80, - 0x82, - 0x80, - 0x4C, - 0x34, - 0xC0, - 0x82, - 0x2B, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x2B, - 0xC0, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x80, - 0x2B, - 0xC0, - 0x80, - 0x34, - 0x04, - 0x80, - 0x00, - 0x1A, - 0x82, - 0x80, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x80, - 0x2B, - 0x2B, - 0x34, - 0x82, - 0x82, - 0x82, - 0x2E, - 0x2E, - 0x4D, - 0x2E, - 0x2E, - 0x4D, - 0x81, - 0x2E, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x56, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x81, - 0x4D, - 0x81, - 0x82, - 0x2C, - 0xD6, - 0xBF, - 0xBA, - 0x93, - 0xD5, - 0xB7, - 0xA5, - 0xC9, - 0xB6, - 0x93, - 0x73, - 0x9E, - 0x68, - 0xC7, - 0x8F, - 0xD5, - 0xD5, - 0xAD, - 0xA5, - 0x8F, - 0xA5, - 0xA5, - 0xB4, - 0xC5, - 0xCF, - 0xD2, - 0xCC, - 0x08, - 0x10, - 0xFF, - 0x00, - 0x09, - 0x24, - 0xCC, - 0xCB, - 0xB2, - 0xB2, - 0xEC, - 0xEE, - 0xEE, - 0xFE, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x11, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xE2, - 0xEA, - 0xE8, - 0xE8, - 0x01, - 0x05, - 0xFF, - 0xD1, - 0x71, - 0x36, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x1B, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x34, - 0xC0, - 0x34, - 0xC0, - 0x34, - 0xC0, - 0x4C, - 0x34, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x05, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x08, - 0x4C, - 0x00, - 0x05, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x03, - 0x82, - 0x4C, - 0xC1, - 0x00, - 0x09, - 0x4C, - 0x00, - 0x09, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x00, - 0x10, - 0x4C, - 0x00, - 0x06, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x04, - 0x7A, - 0x00, - 0x17, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x80, - 0x2B, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0x80, - 0x2B, - 0x80, - 0x82, - 0x00, - 0x05, - 0x80, - 0x00, - 0x13, - 0x2B, - 0x80, - 0x80, - 0x80, - 0x34, - 0xC0, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x4C, - 0x80, - 0x2B, - 0x82, - 0x80, - 0x2B, - 0x2B, - 0x00, - 0x06, - 0x82, - 0x00, - 0x0B, - 0x2E, - 0x4D, - 0x81, - 0x33, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x34, - 0x81, - 0x01, - 0x33, - 0x04, - 0x81, - 0x00, - 0x1C, - 0x33, - 0xD6, - 0x7F, - 0xA9, - 0x9F, - 0xA6, - 0xCA, - 0xD5, - 0xD5, - 0xB7, - 0x00, - 0xAE, - 0xC7, - 0xC7, - 0xC7, - 0x8F, - 0x8F, - 0x8F, - 0xA5, - 0xA5, - 0xA5, - 0xB4, - 0xC5, - 0xC3, - 0xC3, - 0xCC, - 0x08, - 0x08, - 0x0C, - 0xFF, - 0x00, - 0x0C, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xCC, - 0xC6, - 0xEF, - 0xB2, - 0xED, - 0xFF, - 0xFF, - 0x08, - 0x07, - 0xFF, - 0x00, - 0x14, - 0xEE, - 0xFF, - 0xFF, - 0xED, - 0xEB, - 0xEA, - 0xE8, - 0xE8, - 0xB6, - 0xFF, - 0xFF, - 0x0A, - 0x2B, - 0x4D, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x18, - 0xC0, - 0x2B, - 0x4C, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x4C, - 0xC0, - 0x34, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0x80, - 0x82, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x0B, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x10, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x05, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x0D, - 0x4C, - 0x00, - 0x03, - 0x82, - 0x7A, - 0x82, - 0x00, - 0x0B, - 0x4C, - 0x01, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x0B, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x82, - 0x7A, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x29, - 0x80, - 0x2B, - 0xC0, - 0x34, - 0xC0, - 0x2B, - 0x4C, - 0x2B, - 0xC0, - 0x2B, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x34, - 0x4C, - 0x2B, - 0x2B, - 0x00, - 0x04, - 0x82, - 0x00, - 0x09, - 0x2E, - 0x82, - 0x2E, - 0x81, - 0x2E, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x04, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x57, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x4D, - 0x81, - 0x81, - 0x81, - 0x4D, - 0x81, - 0x81, - 0x2D, - 0x35, - 0x7E, - 0xFB, - 0xA3, - 0xB7, - 0xD5, - 0xAD, - 0xAD, - 0xD5, - 0xA5, - 0xAE, - 0xAE, - 0xAE, - 0x97, - 0x97, - 0xC7, - 0x96, - 0x9A, - 0xA5, - 0xAC, - 0xAC, - 0xCF, - 0xCB, - 0x09, - 0x08, - 0x00, - 0x0A, - 0xFF, - 0x00, - 0x0B, - 0xEE, - 0xED, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0x56, - 0xCD, - 0xD1, - 0xEC, - 0xEE, - 0x00, - 0x08, - 0xFF, - 0x01, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x0D, - 0xD1, - 0xEA, - 0xE8, - 0xE8, - 0xD8, - 0xCD, - 0xFF, - 0xB0, - 0x5A, - 0x36, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x01, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x14, - 0x82, - 0x80, - 0x34, - 0xC0, - 0x34, - 0xC0, - 0x34, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x2B, - 0xC0, - 0x80, - 0x82, - 0x80, - 0x4C, - 0x4C, - 0xC0, - 0x05, - 0x4C, - 0x01, - 0x82, - 0x07, - 0x4C, - 0x00, - 0x0B, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x00, - 0x08, - 0x4C, - 0x00, - 0x06, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x03, - 0xC1, - 0x4C, - 0x82, - 0x00, - 0x08, - 0x4C, - 0x01, - 0x82, - 0x08, - 0x4C, - 0x01, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x0C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x82, - 0x04, - 0x7A, - 0x01, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x11, - 0x80, - 0x2B, - 0x80, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x82, - 0x2B, - 0x82, - 0x80, - 0x80, - 0x82, - 0x80, - 0x34, - 0x4C, - 0x00, - 0x05, - 0x80, - 0x00, - 0x10, - 0xC0, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x4C, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x34, - 0xC0, - 0x34, - 0x2B, - 0x2B, - 0x2B, - 0x05, - 0x82, - 0x00, - 0x05, - 0x2E, - 0x2E, - 0x33, - 0x81, - 0x33, - 0x00, - 0x0B, - 0x81, - 0x00, - 0x00, - 0x01, - 0x33, - 0x38, - 0x81, - 0x00, - 0x1F, - 0x33, - 0x81, - 0x33, - 0x81, - 0x4D, - 0x81, - 0x2D, - 0x33, - 0x7D, - 0x84, - 0x54, - 0x93, - 0xD5, - 0xD5, - 0xAD, - 0xB7, - 0xA5, - 0x8F, - 0xC7, - 0x97, - 0x97, - 0x97, - 0xC7, - 0x96, - 0x9A, - 0xB4, - 0xAC, - 0xC3, - 0xCC, - 0x08, - 0x08, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x0E, - 0xEE, - 0xEE, - 0xED, - 0xED, - 0xB2, - 0x6B, - 0xEE, - 0xFF, - 0xFF, - 0xEF, - 0xC6, - 0xCC, - 0xED, - 0xEE, - 0x0C, - 0xFF, - 0x00, - 0x30, - 0xED, - 0xCB, - 0xB4, - 0xE8, - 0xE7, - 0xAC, - 0xCC, - 0xCC, - 0x2A, - 0x36, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x80, - 0x2B, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x34, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x82, - 0x80, - 0x4C, - 0x4C, - 0x2B, - 0xC0, - 0x82, - 0xC0, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x08, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x0D, - 0x4C, - 0x00, - 0x0D, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x0E, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x0E, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x2C, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x82, - 0x80, - 0x34, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0xC0, - 0x4C, - 0x34, - 0x2B, - 0x80, - 0xC0, - 0x80, - 0x80, - 0x34, - 0x80, - 0x34, - 0xC0, - 0x34, - 0x80, - 0x82, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x2B, - 0x80, - 0x4C, - 0x80, - 0x2B, - 0x2B, - 0x4C, - 0x04, - 0x82, - 0x00, - 0x07, - 0x2E, - 0x82, - 0x2E, - 0x33, - 0x81, - 0x33, - 0x33, - 0x00, - 0x0A, - 0x81, - 0x00, - 0x03, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x05, - 0x81, - 0x00, - 0x1C, - 0x4D, - 0x33, - 0x4D, - 0x81, - 0xC1, - 0x81, - 0x2D, - 0xFA, - 0x84, - 0x5B, - 0x9F, - 0xD5, - 0xB7, - 0xAE, - 0xD5, - 0xAD, - 0xAD, - 0x8F, - 0xC7, - 0xC7, - 0x96, - 0x96, - 0x96, - 0x9A, - 0xC5, - 0xCD, - 0xCC, - 0x08, - 0x06, - 0xFF, - 0x00, - 0x0D, - 0xEE, - 0xED, - 0xED, - 0x6B, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xF0, - 0xCD, - 0xD1, - 0xEE, - 0x00, - 0x0D, - 0xFF, - 0x00, - 0x0D, - 0xEF, - 0xCD, - 0x9E, - 0xA4, - 0xB5, - 0xD9, - 0x56, - 0xC9, - 0x76, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x01, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x26, - 0x82, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x82, - 0x80, - 0x2B, - 0x82, - 0x80, - 0x4C, - 0x2B, - 0xC0, - 0x34, - 0x4C, - 0x80, - 0x82, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x1D, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC1, - 0x4C, - 0xC1, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x07, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x00, - 0x11, - 0x4C, - 0x00, - 0x07, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0xC0, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x21, - 0x82, - 0x4C, - 0xC0, - 0x34, - 0x80, - 0x34, - 0x80, - 0x2B, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x4C, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x34, - 0xC0, - 0x00, - 0x04, - 0x2B, - 0x05, - 0x82, - 0x00, - 0x16, - 0x2E, - 0x2E, - 0x33, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x3D, - 0x81, - 0x00, - 0x1A, - 0x4D, - 0x2E, - 0x2E, - 0xC1, - 0x82, - 0x82, - 0x80, - 0xD6, - 0x5B, - 0x93, - 0xB7, - 0xB7, - 0xD5, - 0xD5, - 0xAD, - 0xAC, - 0xAD, - 0x8F, - 0x96, - 0x9A, - 0x9A, - 0xB4, - 0xC5, - 0xCB, - 0xEF, - 0x08, - 0x06, - 0xFF, - 0x05, - 0xEE, - 0x00, - 0x07, - 0xFF, - 0xFF, - 0xFF, - 0xF0, - 0xCD, - 0xCC, - 0xEE, - 0x00, - 0x0C, - 0xFF, - 0x00, - 0x13, - 0x07, - 0xCD, - 0xAF, - 0xAE, - 0xCA, - 0xA7, - 0x9C, - 0xC6, - 0x8F, - 0xCF, - 0x97, - 0x81, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x0D, - 0x82, - 0x80, - 0x80, - 0x34, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x09, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x00, - 0x08, - 0x4C, - 0x01, - 0xC0, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x09, - 0x4C, - 0x01, - 0x82, - 0x08, - 0x4C, - 0x01, - 0x82, - 0x0D, - 0x4C, - 0x01, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x09, - 0x82, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x09, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x34, - 0xC0, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x25, - 0xC0, - 0x4C, - 0x4C, - 0xC0, - 0x34, - 0x80, - 0x2B, - 0xC0, - 0x2B, - 0x34, - 0x4C, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x34, - 0xC0, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x34, - 0x2B, - 0x4C, - 0x2B, - 0x2B, - 0x34, - 0x00, - 0x05, - 0x82, - 0x00, - 0x07, - 0x33, - 0x4D, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x00, - 0x10, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x59, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x4D, - 0x2E, - 0x4D, - 0x81, - 0x4D, - 0x82, - 0x35, - 0x47, - 0xA3, - 0x9F, - 0xD5, - 0xB7, - 0xB7, - 0xAD, - 0xA5, - 0xC7, - 0xC7, - 0xA5, - 0xB4, - 0xB4, - 0xAC, - 0xC5, - 0xCB, - 0x08, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x0C, - 0x24, - 0x6B, - 0xEE, - 0xED, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0x07, - 0xCD, - 0xD1, - 0xEE, - 0x0B, - 0xFF, - 0x00, - 0x10, - 0x0B, - 0xB0, - 0xB6, - 0xCD, - 0xB4, - 0xD2, - 0xC5, - 0x97, - 0xC3, - 0xD8, - 0xE3, - 0xA6, - 0x80, - 0x81, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x24, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x80, - 0x82, - 0x2B, - 0x80, - 0x80, - 0x82, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x34, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x09, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x0C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x0C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0xC1, - 0x05, - 0x4C, - 0x00, - 0x41, - 0xC1, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x2B, - 0xC0, - 0x34, - 0x4C, - 0x34, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x34, - 0x80, - 0x82, - 0x80, - 0x34, - 0x80, - 0x34, - 0x80, - 0x80, - 0x34, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x34, - 0x80, - 0x34, - 0x2B, - 0x4C, - 0x2B, - 0x34, - 0x4C, - 0x34, - 0x00, - 0x05, - 0x82, - 0x00, - 0x19, - 0x2E, - 0x2E, - 0x33, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x3A, - 0x81, - 0x01, - 0x33, - 0x04, - 0x81, - 0x00, - 0x2E, - 0x33, - 0x81, - 0x33, - 0x4D, - 0x2E, - 0x81, - 0xC1, - 0x2D, - 0x80, - 0x5A, - 0x7F, - 0x7E, - 0x54, - 0x9F, - 0xD5, - 0xD5, - 0x8F, - 0xC7, - 0xC7, - 0xAC, - 0xC5, - 0xC5, - 0xC5, - 0xC3, - 0xCC, - 0x0D, - 0x08, - 0x08, - 0xFF, - 0xFF, - 0xF0, - 0xEF, - 0xEF, - 0xEF, - 0x6B, - 0x6B, - 0xED, - 0xFF, - 0x06, - 0x83, - 0xB9, - 0xEF, - 0xEE, - 0xFF, - 0xFF, - 0x06, - 0x07, - 0xFF, - 0x00, - 0x14, - 0x0D, - 0xA6, - 0xBA, - 0xAF, - 0xD2, - 0xD0, - 0xCF, - 0xE3, - 0xC3, - 0xCF, - 0xCF, - 0xD2, - 0x45, - 0x33, - 0x81, - 0x81, - 0x4D, - 0x82, - 0x4C, - 0x82, - 0x09, - 0x4C, - 0x00, - 0x0A, - 0x82, - 0x80, - 0x2B, - 0x80, - 0x34, - 0xC0, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x09, - 0x4C, - 0x00, - 0x19, - 0x82, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x08, - 0x4C, - 0x00, - 0x07, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x0E, - 0x82, - 0x4C, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x0C, - 0x4C, - 0x00, - 0x08, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x4C, - 0x4C, - 0x2B, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x1F, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x80, - 0x34, - 0x80, - 0x34, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x80, - 0x2B, - 0x34, - 0x80, - 0x2B, - 0x2B, - 0x2B, - 0x34, - 0x00, - 0x06, - 0x82, - 0x00, - 0x05, - 0x2E, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x15, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x0A, - 0x81, - 0x00, - 0x29, - 0x2E, - 0x4D, - 0x2E, - 0x81, - 0x2D, - 0x2D, - 0xFD, - 0x30, - 0x32, - 0x7B, - 0x9F, - 0xB7, - 0xB7, - 0xAE, - 0xB7, - 0xC5, - 0xC3, - 0xC5, - 0xC5, - 0xCD, - 0xF4, - 0x09, - 0xFE, - 0xFF, - 0xFF, - 0x6B, - 0xEF, - 0xEF, - 0xB2, - 0xED, - 0xEE, - 0xFF, - 0x08, - 0x0B, - 0xB9, - 0xCC, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0x08, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x3A, - 0x56, - 0xC9, - 0xBD, - 0xBA, - 0x83, - 0xE3, - 0xD8, - 0xC3, - 0xEC, - 0xEC, - 0xEB, - 0xD2, - 0x3C, - 0x35, - 0x36, - 0x4D, - 0xB1, - 0x4C, - 0x4D, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x34, - 0xC0, - 0x2B, - 0x4C, - 0x2B, - 0x4C, - 0xC0, - 0x05, - 0x4C, - 0x00, - 0x06, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x06, - 0x4C, - 0x01, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x06, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x12, - 0xC0, - 0x4C, - 0x4C, - 0x2B, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x01, - 0x7A, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x2B, - 0xC0, - 0x82, - 0xC0, - 0x2B, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0xC0, - 0x4C, - 0x34, - 0xC0, - 0x2B, - 0x34, - 0x2B, - 0x34, - 0xC0, - 0x2B, - 0x80, - 0x80, - 0x34, - 0x80, - 0x34, - 0xC0, - 0x34, - 0x80, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x80, - 0x34, - 0x2B, - 0x80, - 0x2B, - 0x34, - 0x82, - 0x34, - 0x00, - 0x05, - 0x82, - 0x00, - 0x1F, - 0x2E, - 0x2E, - 0x33, - 0x81, - 0x33, - 0x33, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x42, - 0x81, - 0x00, - 0x46, - 0x33, - 0x81, - 0x81, - 0x4D, - 0x81, - 0x81, - 0x4D, - 0x4D, - 0x2D, - 0x2D, - 0xFA, - 0xFB, - 0x5B, - 0x93, - 0x93, - 0xD9, - 0xD5, - 0xC3, - 0xD2, - 0xC5, - 0xC3, - 0xCB, - 0xCC, - 0xCC, - 0xEF, - 0x05, - 0xEF, - 0xEF, - 0xB2, - 0xED, - 0xEE, - 0xF0, - 0x09, - 0x0B, - 0xB9, - 0x83, - 0xEE, - 0xEE, - 0xEE, - 0xFF, - 0x06, - 0x24, - 0xF0, - 0x24, - 0xFF, - 0xFF, - 0xFF, - 0xF4, - 0x0A, - 0xBC, - 0xBB, - 0xB0, - 0xEF, - 0xE2, - 0xD7, - 0xEE, - 0xFF, - 0xFF, - 0xEE, - 0xC9, - 0x7A, - 0x4D, - 0x7D, - 0x45, - 0xA6, - 0x54, - 0x62, - 0x81, - 0x4C, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x0F, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x80, - 0x34, - 0xC0, - 0x34, - 0x2B, - 0x2B, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x22, - 0xC0, - 0x82, - 0x4C, - 0xC0, - 0x82, - 0x82, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x4D, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x80, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x7A, - 0x82, - 0x82, - 0x7A, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x2B, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x34, - 0x4C, - 0x4C, - 0x34, - 0x4C, - 0x34, - 0xC0, - 0x4C, - 0x34, - 0x2B, - 0x80, - 0x2B, - 0x2B, - 0x80, - 0x34, - 0x34, - 0x34, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x34, - 0x80, - 0x82, - 0x2B, - 0xC0, - 0x2B, - 0x2B, - 0x34, - 0x00, - 0x05, - 0x82, - 0x00, - 0x07, - 0x2E, - 0x82, - 0x2E, - 0x33, - 0x81, - 0x33, - 0x33, - 0x00, - 0x1B, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x43, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x04, - 0x81, - 0x00, - 0x30, - 0x33, - 0x81, - 0x2E, - 0x81, - 0x2E, - 0x82, - 0x4D, - 0x81, - 0x81, - 0xD6, - 0x6A, - 0xFC, - 0x3F, - 0x69, - 0xD5, - 0xC5, - 0xAC, - 0xC5, - 0xCD, - 0xC6, - 0xCD, - 0xCD, - 0xB9, - 0xC6, - 0xC6, - 0x83, - 0x83, - 0xC6, - 0xAF, - 0xB6, - 0xB0, - 0xB0, - 0xAF, - 0xB9, - 0xEF, - 0x6B, - 0xEF, - 0x56, - 0xD1, - 0xD1, - 0xEE, - 0xFF, - 0xFF, - 0xF4, - 0x20, - 0x7D, - 0xA3, - 0xCB, - 0x07, - 0xFF, - 0x00, - 0x11, - 0x24, - 0xB6, - 0xD6, - 0x42, - 0xCC, - 0xFF, - 0xFF, - 0xFF, - 0xA3, - 0x82, - 0x4D, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x08, - 0xC0, - 0x4C, - 0x2B, - 0x80, - 0x4C, - 0xC0, - 0x34, - 0x80, - 0x04, - 0x4C, - 0x00, - 0x17, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0x34, - 0x4C, - 0xC0, - 0x4C, - 0x82, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC0, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x0E, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x16, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC1, - 0x82, - 0x82, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x05, - 0x4C, - 0x00, - 0x03, - 0x7A, - 0x4C, - 0x82, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x1D, - 0xC0, - 0x4C, - 0x4C, - 0x80, - 0x4C, - 0x80, - 0xC0, - 0xC0, - 0x4C, - 0xC0, - 0xC0, - 0x4C, - 0x80, - 0x34, - 0x2B, - 0x80, - 0x34, - 0x34, - 0xC0, - 0x34, - 0x2B, - 0x2B, - 0xC0, - 0x2B, - 0xC0, - 0x34, - 0x4C, - 0x34, - 0x4C, - 0x00, - 0x04, - 0x2B, - 0x01, - 0x34, - 0x09, - 0x82, - 0x00, - 0x22, - 0x2E, - 0x33, - 0x33, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x33, - 0x4A, - 0x81, - 0x00, - 0x37, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x4D, - 0x82, - 0x80, - 0x2C, - 0xD6, - 0xD6, - 0xD6, - 0xBF, - 0x9D, - 0xA1, - 0x76, - 0xDD, - 0xBF, - 0xBF, - 0xBE, - 0xBD, - 0xBD, - 0xBD, - 0x7E, - 0x31, - 0x7E, - 0x7E, - 0x30, - 0xD6, - 0x4B, - 0x4A, - 0xCD, - 0xD1, - 0xE3, - 0xD7, - 0xD1, - 0x6B, - 0xFF, - 0xFF, - 0xB9, - 0x6A, - 0xBF, - 0x69, - 0xC6, - 0xFF, - 0xFF, - 0xFF, - 0xED, - 0xB2, - 0xE2, - 0xED, - 0xFF, - 0xFF, - 0xCC, - 0xB0, - 0x83, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x19, - 0xFE, - 0x42, - 0x36, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x2B, - 0x34, - 0x2B, - 0x4C, - 0x34, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x0B, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x34, - 0x4C, - 0x4C, - 0xC0, - 0x00, - 0x08, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x08, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x03, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x19, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x7A, - 0x82, - 0x82, - 0x4C, - 0xC1, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0xC1, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC1, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x16, - 0x80, - 0x34, - 0xC0, - 0x34, - 0x4C, - 0x34, - 0x4C, - 0x34, - 0x2B, - 0x34, - 0x2B, - 0x2B, - 0xC0, - 0x34, - 0x82, - 0x80, - 0x34, - 0x2B, - 0xC0, - 0x34, - 0x80, - 0x34, - 0x05, - 0x2B, - 0x01, - 0x34, - 0x09, - 0x82, - 0x01, - 0x2E, - 0x01, - 0x2E, - 0x04, - 0x33, - 0x1F, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x47, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x05, - 0x81, - 0x00, - 0x14, - 0x33, - 0x33, - 0x2E, - 0x81, - 0x33, - 0x81, - 0x2E, - 0x33, - 0x33, - 0x33, - 0x81, - 0x82, - 0x7A, - 0x4D, - 0x4D, - 0x81, - 0x81, - 0x4D, - 0x82, - 0x4D, - 0x05, - 0x82, - 0x00, - 0x1C, - 0xC1, - 0x81, - 0x81, - 0x4C, - 0xB0, - 0xD7, - 0xD1, - 0xED, - 0xFF, - 0xFF, - 0xFF, - 0xB0, - 0x48, - 0x98, - 0x4F, - 0xCD, - 0xEC, - 0xED, - 0xEE, - 0xFF, - 0xEE, - 0xE2, - 0xD7, - 0xD7, - 0xB2, - 0xFF, - 0xFF, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x08, - 0xB9, - 0x49, - 0x2D, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0xC1, - 0x06, - 0x4C, - 0x00, - 0x35, - 0x82, - 0x4C, - 0x4C, - 0x2B, - 0xC0, - 0x34, - 0x80, - 0x2B, - 0x82, - 0x4C, - 0x80, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0xC0, - 0x34, - 0x4C, - 0xC0, - 0x4C, - 0xC0, - 0x2B, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x16, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0xC1, - 0x82, - 0x82, - 0x4C, - 0x4C, - 0xC1, - 0x04, - 0x4C, - 0x00, - 0x26, - 0x82, - 0x4C, - 0x7A, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x2B, - 0x4C, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0xC0, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x34, - 0x2B, - 0x2B, - 0x80, - 0x2B, - 0x4C, - 0x2B, - 0x34, - 0x2B, - 0x4C, - 0x4C, - 0x2B, - 0x82, - 0x4C, - 0x34, - 0x09, - 0x82, - 0x01, - 0x2E, - 0x05, - 0x33, - 0x00, - 0x23, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x4E, - 0x81, - 0x01, - 0x4D, - 0x04, - 0x81, - 0x01, - 0x4D, - 0x05, - 0x81, - 0x00, - 0x07, - 0x4D, - 0x4D, - 0x4D, - 0x81, - 0x4D, - 0x4D, - 0x81, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x1A, - 0xC1, - 0x4D, - 0x82, - 0xC9, - 0xE2, - 0xED, - 0x56, - 0xC6, - 0xB0, - 0x69, - 0x50, - 0x26, - 0x70, - 0xC5, - 0xE2, - 0xED, - 0xED, - 0xD7, - 0xD2, - 0xC5, - 0xD8, - 0xD8, - 0xD8, - 0xCF, - 0xD2, - 0xEC, - 0x07, - 0xFF, - 0x00, - 0x1A, - 0xEE, - 0xCA, - 0x36, - 0xC1, - 0x82, - 0x82, - 0xC1, - 0x4C, - 0x82, - 0x82, - 0xC1, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x2B, - 0xC0, - 0x2B, - 0x4C, - 0x82, - 0x05, - 0x4C, - 0x01, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x1A, - 0xC0, - 0x2B, - 0x82, - 0x4C, - 0x82, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x03, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x0C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0xC1, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x19, - 0x82, - 0xC0, - 0x34, - 0x80, - 0x34, - 0x80, - 0x34, - 0x80, - 0x34, - 0x2B, - 0x34, - 0x80, - 0x34, - 0x4C, - 0x80, - 0x4C, - 0x34, - 0xC0, - 0x34, - 0x34, - 0x2B, - 0x4C, - 0x4C, - 0x34, - 0x4C, - 0x00, - 0x07, - 0x82, - 0x00, - 0x04, - 0x2E, - 0x82, - 0x2E, - 0x2E, - 0x04, - 0x33, - 0x00, - 0x03, - 0x81, - 0x81, - 0x33, - 0x00, - 0x22, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x63, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x2E, - 0x81, - 0x2E, - 0x33, - 0x82, - 0x2E, - 0x4D, - 0x82, - 0x81, - 0x4D, - 0x82, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0x82, - 0x4D, - 0x00, - 0x04, - 0x82, - 0x00, - 0x1B, - 0x4D, - 0x2E, - 0x3D, - 0xC9, - 0xC9, - 0xA6, - 0x68, - 0x92, - 0x26, - 0x2D, - 0x44, - 0x63, - 0xE3, - 0xEC, - 0xE2, - 0xD2, - 0xAC, - 0x8B, - 0x57, - 0x8A, - 0xAA, - 0xC2, - 0xC2, - 0xD3, - 0xCF, - 0xD2, - 0x6B, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x29, - 0x83, - 0x49, - 0x4D, - 0x4D, - 0x4C, - 0x82, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x2B, - 0xC0, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x2B, - 0xC0, - 0x00, - 0x06, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x0D, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x0B, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x0D, - 0x82, - 0x82, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x15, - 0x34, - 0x80, - 0x2B, - 0xC0, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x4C, - 0x80, - 0x2B, - 0x34, - 0x2B, - 0x2B, - 0x2B, - 0x82, - 0x2B, - 0x82, - 0x4C, - 0x00, - 0x08, - 0x82, - 0x00, - 0x30, - 0x2E, - 0x82, - 0x33, - 0x2E, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x33, - 0x53, - 0x81, - 0x00, - 0x07, - 0x33, - 0x4D, - 0x33, - 0x81, - 0x2E, - 0x4D, - 0x2E, - 0x00, - 0x08, - 0x4D, - 0x00, - 0x35, - 0x82, - 0x4D, - 0xC1, - 0x82, - 0x82, - 0xC1, - 0x2D, - 0x36, - 0x7A, - 0x59, - 0x38, - 0x38, - 0x37, - 0x59, - 0x8D, - 0xC5, - 0xD7, - 0xD7, - 0xD2, - 0x94, - 0x57, - 0x5D, - 0x57, - 0x85, - 0x8B, - 0x99, - 0x94, - 0xD0, - 0xD0, - 0xB3, - 0xCF, - 0xB2, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xFF, - 0xFF, - 0xAF, - 0x82, - 0x4D, - 0x82, - 0x7A, - 0x82, - 0x82, - 0x4D, - 0x82, - 0x82, - 0x82, - 0xC1, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x08, - 0xC0, - 0x34, - 0x2B, - 0xC0, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x01, - 0x82, - 0x05, - 0x4C, - 0x00, - 0x04, - 0x2B, - 0x2B, - 0x82, - 0xC0, - 0x04, - 0x4C, - 0x00, - 0x07, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x08, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x07, - 0x4C, - 0x01, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x2A, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x80, - 0x4C, - 0x34, - 0x2B, - 0x34, - 0x80, - 0x34, - 0x2B, - 0x34, - 0x80, - 0x34, - 0x2B, - 0x2B, - 0x2B, - 0x82, - 0x2B, - 0x0B, - 0x82, - 0x00, - 0x03, - 0x2E, - 0x33, - 0x2E, - 0x00, - 0x06, - 0x33, - 0x27, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x53, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x04, - 0x81, - 0x00, - 0x0E, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2E, - 0x4D, - 0x2E, - 0x05, - 0x4D, - 0x00, - 0x4D, - 0x81, - 0xA2, - 0x70, - 0x70, - 0x40, - 0x58, - 0x9A, - 0xD2, - 0xD7, - 0xD7, - 0xC5, - 0x8A, - 0x57, - 0x8A, - 0x8A, - 0xAA, - 0xAA, - 0xC4, - 0xB3, - 0xB3, - 0xC4, - 0x94, - 0xC2, - 0xC2, - 0xCF, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xB2, - 0xEE, - 0xCC, - 0x4A, - 0xC1, - 0x4D, - 0x82, - 0x82, - 0x7A, - 0x82, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x2B, - 0x4C, - 0x2B, - 0x34, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x80, - 0x2B, - 0x2B, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x0E, - 0xC1, - 0x4C, - 0xC1, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x04, - 0x4C, - 0x00, - 0x0B, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x0E, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x0F, - 0x82, - 0x80, - 0x34, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x80, - 0x2B, - 0x2B, - 0x4C, - 0x34, - 0x00, - 0x06, - 0x82, - 0x00, - 0x09, - 0xC1, - 0x82, - 0x2E, - 0xC1, - 0x82, - 0x4D, - 0x33, - 0x33, - 0x81, - 0x00, - 0x04, - 0x33, - 0x00, - 0x2D, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x55, - 0x81, - 0x00, - 0x1F, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x81, - 0x4B, - 0x23, - 0x45, - 0x72, - 0xA1, - 0x92, - 0x52, - 0xC3, - 0xE3, - 0xD7, - 0xE3, - 0xC5, - 0x85, - 0x57, - 0x00, - 0x04, - 0x85, - 0x00, - 0x1F, - 0xC4, - 0xE9, - 0xD0, - 0xE9, - 0xD3, - 0xB3, - 0xC4, - 0xC2, - 0xD3, - 0xE3, - 0xFF, - 0xFF, - 0xEE, - 0xB2, - 0xEE, - 0xFF, - 0xAF, - 0x4B, - 0x2D, - 0x82, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x2E, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x00, - 0x05, - 0x4C, - 0x00, - 0x0E, - 0x2B, - 0x80, - 0x34, - 0x2B, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x15, - 0x2B, - 0x82, - 0x2B, - 0xC0, - 0x4C, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x7A, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x03, - 0xC1, - 0x4C, - 0x82, - 0x00, - 0x07, - 0x4C, - 0x00, - 0x28, - 0x82, - 0x7A, - 0x4C, - 0x7A, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x4C, - 0xC1, - 0x7A, - 0x82, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x2B, - 0x4C, - 0x2B, - 0xC0, - 0x34, - 0x4C, - 0x34, - 0x2B, - 0x34, - 0x4C, - 0x34, - 0x4C, - 0x08, - 0x82, - 0x00, - 0x0C, - 0x4D, - 0x82, - 0x2E, - 0x2E, - 0x33, - 0x2E, - 0x33, - 0x33, - 0x81, - 0x33, - 0x33, - 0x33, - 0x2E, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x56, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x0E, - 0x81, - 0x00, - 0x40, - 0x4D, - 0x36, - 0x29, - 0xC9, - 0xB9, - 0xC6, - 0xCC, - 0x83, - 0xC6, - 0xAF, - 0xCC, - 0xED, - 0xD7, - 0xE3, - 0xC3, - 0x8A, - 0x5D, - 0x5D, - 0x85, - 0x8A, - 0xAA, - 0xC4, - 0xD0, - 0xD0, - 0xD8, - 0xD8, - 0xD3, - 0x94, - 0xC4, - 0xAA, - 0x94, - 0xCF, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0x51, - 0x4C, - 0x2D, - 0x4C, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x34, - 0x4C, - 0x2B, - 0x2B, - 0x34, - 0x4C, - 0x04, - 0x82, - 0x00, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x2B, - 0x80, - 0x34, - 0x2B, - 0x82, - 0x2B, - 0x82, - 0x4C, - 0x82, - 0x82, - 0xC1, - 0x4C, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x82, - 0xC1, - 0x4C, - 0x4C, - 0x7A, - 0x4C, - 0x4C, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0xC1, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x7A, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0xC1, - 0x7A, - 0x82, - 0xC1, - 0xC1, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0xC0, - 0x34, - 0x80, - 0x34, - 0x04, - 0x2B, - 0x00, - 0x04, - 0x4C, - 0x2B, - 0x34, - 0x34, - 0x07, - 0x82, - 0x00, - 0x3D, - 0x2E, - 0x82, - 0x2E, - 0x2E, - 0x81, - 0x4D, - 0x33, - 0x81, - 0x33, - 0x33, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x64, - 0x81, - 0x00, - 0x03, - 0x36, - 0x49, - 0xC6, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x44, - 0xEC, - 0xD7, - 0xC3, - 0x5C, - 0x58, - 0x5D, - 0x5D, - 0x5E, - 0x8A, - 0xC4, - 0xAA, - 0xC4, - 0xD0, - 0xD3, - 0xD3, - 0xC4, - 0xC4, - 0x99, - 0xC2, - 0xD0, - 0xD8, - 0xD1, - 0xD7, - 0xCB, - 0xC3, - 0xC3, - 0xC3, - 0xC6, - 0xCD, - 0x52, - 0x4B, - 0x81, - 0x4D, - 0x82, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x2E, - 0xC1, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x2B, - 0x34, - 0xC0, - 0x2B, - 0x2B, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x82, - 0xC1, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x82, - 0x06, - 0x4C, - 0x00, - 0x16, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x7A, - 0xC1, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x7A, - 0x7A, - 0x05, - 0x4C, - 0x00, - 0x05, - 0x82, - 0x82, - 0xC1, - 0x82, - 0x82, - 0x00, - 0x06, - 0x4C, - 0x00, - 0x0D, - 0x82, - 0x7A, - 0x2E, - 0x7A, - 0x2E, - 0x7A, - 0xC1, - 0x82, - 0xC1, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x04, - 0x2B, - 0x4C, - 0x2B, - 0x2B, - 0x05, - 0x34, - 0x08, - 0x82, - 0x00, - 0x0A, - 0x2E, - 0x33, - 0x4D, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x33, - 0x33, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x33, - 0x00, - 0x08, - 0x81, - 0x00, - 0x04, - 0x36, - 0x88, - 0xAC, - 0xEE, - 0x06, - 0xFF, - 0x00, - 0x35, - 0xE2, - 0xD7, - 0xC5, - 0x57, - 0x5D, - 0x5D, - 0x5D, - 0x5E, - 0x86, - 0x8A, - 0x8B, - 0x85, - 0x6C, - 0x8B, - 0xAA, - 0xC4, - 0xC4, - 0xC4, - 0xB3, - 0xB3, - 0xD3, - 0xCF, - 0xCF, - 0xB3, - 0x94, - 0x55, - 0x8C, - 0x99, - 0xAC, - 0xAD, - 0x77, - 0x2D, - 0xC1, - 0xC1, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0x2E, - 0xC1, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x2B, - 0x4C, - 0x2B, - 0x34, - 0x82, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x00, - 0x0F, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x4C, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x00, - 0x04, - 0x82, - 0x00, - 0x09, - 0xC1, - 0x4C, - 0x4D, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0x4C, - 0x82, - 0x00, - 0x04, - 0x4C, - 0x00, - 0x18, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x7A, - 0xC1, - 0x7A, - 0xC1, - 0x7A, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x04, - 0xC1, - 0x00, - 0x11, - 0x82, - 0xC1, - 0x2E, - 0x7A, - 0xC1, - 0x4C, - 0xC1, - 0x4C, - 0x4C, - 0x82, - 0x4C, - 0x34, - 0x2B, - 0x34, - 0x34, - 0x82, - 0x34, - 0x00, - 0x07, - 0x82, - 0x00, - 0x44, - 0x2E, - 0x82, - 0x33, - 0x4D, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x62, - 0x81, - 0x00, - 0x06, - 0x2D, - 0x36, - 0x70, - 0x9A, - 0xD7, - 0xEE, - 0x06, - 0xFF, - 0x01, - 0xD7, - 0x01, - 0xB4, - 0x05, - 0x5D, - 0x00, - 0x08, - 0x85, - 0x8A, - 0x8A, - 0x5E, - 0x85, - 0x8A, - 0x94, - 0xB3, - 0x04, - 0x94, - 0x00, - 0x6E, - 0xB4, - 0xB4, - 0xB3, - 0xB3, - 0xD8, - 0xD3, - 0x94, - 0x86, - 0x5E, - 0x8C, - 0x92, - 0x81, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0xC1, - 0x82, - 0x4C, - 0xC1, - 0x82, - 0x4C, - 0x4C, - 0x2B, - 0x34, - 0x2B, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x82, - 0x82, - 0x82, - 0x7A, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x2E, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0x82, - 0x4C, - 0x82, - 0xC1, - 0x82, - 0x82, - 0xC1, - 0xC1, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x7A, - 0x82, - 0x82, - 0x82, - 0x4D, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x2E, - 0xC1, - 0x82, - 0x4D, - 0xC1, - 0xC1, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x34, - 0x34, - 0x05, - 0x82, - 0x00, - 0x0B, - 0x2E, - 0x82, - 0x2E, - 0x2E, - 0x33, - 0x33, - 0x4D, - 0x33, - 0x33, - 0x81, - 0x33, - 0x00, - 0x3E, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x05, - 0x81, - 0x00, - 0x30, - 0x2D, - 0x81, - 0x81, - 0x81, - 0x2D, - 0x70, - 0x94, - 0xD2, - 0xEC, - 0xFF, - 0xEE, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xE3, - 0x94, - 0x57, - 0x5D, - 0x5D, - 0x5D, - 0x5E, - 0x85, - 0x8B, - 0x99, - 0xC2, - 0x99, - 0xD0, - 0xD3, - 0xD8, - 0xB3, - 0x94, - 0x63, - 0xAD, - 0xC5, - 0xCF, - 0x89, - 0x89, - 0xEB, - 0xEB, - 0xCF, - 0xD8, - 0x8E, - 0x6C, - 0x70, - 0x4D, - 0xC1, - 0x82, - 0x06, - 0xC1, - 0x00, - 0x15, - 0x82, - 0xC1, - 0x2E, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x4C, - 0x2B, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x82, - 0xC1, - 0x2E, - 0x82, - 0x4D, - 0xC1, - 0x2E, - 0x00, - 0x0D, - 0x82, - 0x00, - 0x22, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x7A, - 0x2E, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x4C, - 0x82, - 0x4C, - 0xC1, - 0x7A, - 0x82, - 0x7A, - 0x4D, - 0x7A, - 0x4D, - 0x7A, - 0xC1, - 0x7A, - 0xC1, - 0x4C, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0x4D, - 0x04, - 0x82, - 0x00, - 0x0C, - 0x2E, - 0xC1, - 0x81, - 0x4D, - 0x4D, - 0x4D, - 0x2E, - 0x4D, - 0x2E, - 0x4D, - 0x82, - 0x4D, - 0x0A, - 0x82, - 0x01, - 0x2E, - 0x01, - 0x2E, - 0x07, - 0x33, - 0x00, - 0x42, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x33, - 0x61, - 0x81, - 0x00, - 0x38, - 0x2D, - 0x81, - 0x2D, - 0x2D, - 0x58, - 0x94, - 0xC3, - 0xE2, - 0xEE, - 0xEC, - 0xEC, - 0xEE, - 0xFF, - 0xFF, - 0xE3, - 0x94, - 0x57, - 0x5E, - 0x57, - 0x85, - 0x85, - 0x8A, - 0x99, - 0xD3, - 0x99, - 0xAA, - 0xC2, - 0xB3, - 0xB3, - 0xB3, - 0x63, - 0xAC, - 0xCF, - 0xEA, - 0xEA, - 0xE8, - 0x89, - 0xEB, - 0xEE, - 0xE2, - 0xEB, - 0xCF, - 0x95, - 0x59, - 0x2D, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0xC1, - 0x82, - 0xC1, - 0x07, - 0x82, - 0x00, - 0x0D, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x82, - 0xC1, - 0xC1, - 0x82, - 0xC1, - 0xC1, - 0x82, - 0xC1, - 0x00, - 0x0A, - 0x82, - 0x00, - 0x2F, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x4D, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0xC1, - 0x82, - 0x82, - 0x82, - 0x4D, - 0x82, - 0x2E, - 0xC1, - 0x4D, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0xC1, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0x2E, - 0x4D, - 0x2E, - 0x81, - 0x4D, - 0x81, - 0x81, - 0x81, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x0C, - 0xC1, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x2E, - 0x2E, - 0x33, - 0x2E, - 0x33, - 0x33, - 0x47, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x07, - 0x81, - 0x00, - 0x2D, - 0x36, - 0x4D, - 0x9B, - 0xC2, - 0xC5, - 0xD1, - 0xB2, - 0xE2, - 0xE2, - 0xFF, - 0xFF, - 0xFF, - 0xE3, - 0xB3, - 0x57, - 0x57, - 0x57, - 0x85, - 0x5E, - 0x5D, - 0x86, - 0x94, - 0x94, - 0x8A, - 0x8A, - 0xC4, - 0xB3, - 0x9A, - 0xA5, - 0xC5, - 0xEA, - 0xEA, - 0xEA, - 0x89, - 0x89, - 0xE3, - 0xFF, - 0xFF, - 0xE2, - 0xD7, - 0xCF, - 0x90, - 0x98, - 0x81, - 0x82, - 0x00, - 0x06, - 0xC1, - 0x00, - 0x23, - 0x82, - 0x4D, - 0xC1, - 0x2E, - 0xC1, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x4C, - 0x82, - 0x82, - 0x4C, - 0x82, - 0x2E, - 0xC1, - 0x2E, - 0xC1, - 0x4D, - 0xC1, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x2E, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x2E, - 0x2E, - 0xC1, - 0xC1, - 0x82, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x21, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x82, - 0xC1, - 0x82, - 0xC1, - 0x82, - 0x4D, - 0x4C, - 0x4D, - 0x4C, - 0xC1, - 0x82, - 0xC1, - 0xC1, - 0x82, - 0x82, - 0x82, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0x82, - 0x4D, - 0x2E, - 0x00, - 0x05, - 0x81, - 0x01, - 0x33, - 0x06, - 0x81, - 0x00, - 0x04, - 0x33, - 0x81, - 0x33, - 0x81, - 0x06, - 0x33, - 0x00, - 0x4B, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x60, - 0x81, - 0x00, - 0x1F, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x70, - 0xAA, - 0xD3, - 0xD7, - 0xEC, - 0xE2, - 0xED, - 0xFF, - 0xFF, - 0xFF, - 0xD2, - 0x5C, - 0x57, - 0x85, - 0x55, - 0x5C, - 0x55, - 0x5C, - 0x55, - 0x5C, - 0x94, - 0x5C, - 0x99, - 0xC4, - 0xB3, - 0x9A, - 0xC5, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x14, - 0xE8, - 0x89, - 0xCF, - 0xFF, - 0xFF, - 0xEC, - 0xD7, - 0xEB, - 0xD3, - 0x91, - 0x36, - 0x4D, - 0x4D, - 0x2E, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0xC1, - 0x04, - 0x82, - 0x01, - 0xC1, - 0x07, - 0x82, - 0x00, - 0x09, - 0xC1, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0xC1, - 0x00, - 0x05, - 0x82, - 0x00, - 0x10, - 0x2E, - 0x82, - 0x82, - 0xC1, - 0x4D, - 0x2E, - 0xC1, - 0x2E, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x05, - 0xC1, - 0x00, - 0x16, - 0x2E, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0xC1, - 0xC1, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x2E, - 0xC1, - 0x2E, - 0x4D, - 0x33, - 0x11, - 0x81, - 0x01, - 0x33, - 0x4F, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x5F, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x04, - 0x81, - 0x00, - 0x07, - 0x2D, - 0x81, - 0x2D, - 0x70, - 0xAA, - 0x94, - 0xE3, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x13, - 0x24, - 0xD2, - 0x9A, - 0x57, - 0x57, - 0x94, - 0xD8, - 0xCF, - 0xCF, - 0xE8, - 0xD8, - 0xB3, - 0xB3, - 0xD8, - 0xD3, - 0x94, - 0xB3, - 0x9A, - 0xC5, - 0x00, - 0x04, - 0xEB, - 0x00, - 0x0D, - 0xE8, - 0x89, - 0xD2, - 0xFF, - 0xEC, - 0xE3, - 0xC3, - 0xB4, - 0xAC, - 0x8F, - 0x4C, - 0x81, - 0x81, - 0x00, - 0x05, - 0x4D, - 0x00, - 0x05, - 0x2E, - 0x4D, - 0x4D, - 0x4D, - 0xC1, - 0x00, - 0x05, - 0x82, - 0x00, - 0x18, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0xC1, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0xC1, - 0x2E, - 0xC1, - 0x33, - 0xC1, - 0x4D, - 0x2E, - 0x2E, - 0x2E, - 0x81, - 0x06, - 0x4D, - 0x00, - 0x0B, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0xC1, - 0x82, - 0x00, - 0x05, - 0xC1, - 0x00, - 0x04, - 0x2E, - 0xC1, - 0x82, - 0xC1, - 0x05, - 0x82, - 0x00, - 0x04, - 0x2E, - 0xC1, - 0x2E, - 0x33, - 0x04, - 0x81, - 0x00, - 0x60, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x33, - 0x63, - 0x81, - 0x00, - 0x11, - 0x36, - 0x33, - 0x9B, - 0xAA, - 0xAA, - 0xCB, - 0xFF, - 0xFF, - 0xFF, - 0x24, - 0xC5, - 0x5E, - 0x40, - 0x57, - 0xB3, - 0xCF, - 0xEA, - 0x00, - 0x05, - 0xEB, - 0x00, - 0x16, - 0xE8, - 0xCF, - 0xCF, - 0xD3, - 0x9A, - 0x63, - 0x9A, - 0xC3, - 0xE3, - 0xEB, - 0xEB, - 0xCF, - 0x89, - 0xCF, - 0xE2, - 0xEB, - 0xC5, - 0x95, - 0x5E, - 0x9A, - 0xC3, - 0x60, - 0x05, - 0x81, - 0x00, - 0x0A, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x2E, - 0x4D, - 0x2E, - 0xC1, - 0x82, - 0x4D, - 0x05, - 0x82, - 0x00, - 0x1D, - 0xC1, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x2E, - 0x2E, - 0x82, - 0x2E, - 0x2E, - 0x4D, - 0x81, - 0x2E, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2E, - 0x4D, - 0x33, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x16, - 0xC1, - 0x4D, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x2E, - 0xC1, - 0x4D, - 0xC1, - 0x2E, - 0x82, - 0x2E, - 0x81, - 0x33, - 0x63, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x5F, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x05, - 0x81, - 0x00, - 0x2E, - 0x2D, - 0x2D, - 0x70, - 0x8A, - 0x8C, - 0xCD, - 0xEE, - 0xFF, - 0xB2, - 0xAC, - 0x5D, - 0x40, - 0x4E, - 0x5C, - 0xD8, - 0xEA, - 0xEB, - 0xEB, - 0xEB, - 0xD7, - 0xD7, - 0xEB, - 0xEA, - 0xE8, - 0xD8, - 0xD8, - 0xC5, - 0xAC, - 0xB4, - 0x9A, - 0xAD, - 0xC5, - 0xCF, - 0xD3, - 0x55, - 0x94, - 0xB3, - 0xC4, - 0x8A, - 0x85, - 0x5C, - 0xCB, - 0xF4, - 0x72, - 0x81, - 0x2D, - 0x08, - 0x81, - 0x00, - 0x10, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x2E, - 0x82, - 0x4D, - 0xC1, - 0xC1, - 0x4D, - 0xC1, - 0x2E, - 0xC1, - 0x2E, - 0x4D, - 0x81, - 0x04, - 0x4D, - 0x00, - 0x09, - 0x33, - 0x4D, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x09, - 0x81, - 0x00, - 0x80, - 0x4D, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0xC1, - 0x4D, - 0x82, - 0x4D, - 0x82, - 0x4D, - 0xC1, - 0x2E, - 0x82, - 0x2E, - 0x2E, - 0x81, - 0x33, - 0x33, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x62, - 0x81, - 0x00, - 0x10, - 0x2D, - 0x81, - 0x70, - 0x8A, - 0x9B, - 0xB6, - 0xEE, - 0xFF, - 0xB0, - 0x4E, - 0x40, - 0x40, - 0x8C, - 0xB3, - 0xD3, - 0xCF, - 0x04, - 0xEB, - 0x00, - 0x1A, - 0xD7, - 0xEB, - 0xEA, - 0xE8, - 0xC3, - 0xD2, - 0xD2, - 0xC5, - 0xB4, - 0x90, - 0x86, - 0x8D, - 0xA4, - 0x5C, - 0x5C, - 0x94, - 0xB4, - 0xAC, - 0xC5, - 0xC3, - 0xE3, - 0xFF, - 0xCC, - 0x9C, - 0x81, - 0x2D, - 0x0A, - 0x81, - 0x00, - 0x09, - 0x4D, - 0x4D, - 0x2E, - 0x4D, - 0x2E, - 0x4D, - 0x2E, - 0x4D, - 0x2E, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x09, - 0x2E, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x0E, - 0x81, - 0x01, - 0x4D, - 0x01, - 0x81, - 0x07, - 0x4D, - 0x00, - 0x05, - 0x2E, - 0x4D, - 0x2E, - 0x4D, - 0x2E, - 0x00, - 0x04, - 0x4D, - 0x00, - 0x07, - 0x2E, - 0x4D, - 0x4D, - 0x33, - 0x4D, - 0x33, - 0x33, - 0x00, - 0x66, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x75, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x88, - 0x8C, - 0x6C, - 0xAC, - 0x6B, - 0xCC, - 0x63, - 0x37, - 0x40, - 0x65, - 0xA5, - 0xC5, - 0xB4, - 0xD8, - 0xCF, - 0x00, - 0x05, - 0xEA, - 0x00, - 0x18, - 0xD8, - 0xB4, - 0xC5, - 0xC3, - 0xAC, - 0xD3, - 0x94, - 0x8D, - 0x8C, - 0x5C, - 0x94, - 0xC5, - 0xD2, - 0xCB, - 0xE3, - 0xD1, - 0xB2, - 0xEE, - 0xFF, - 0x08, - 0xCD, - 0x6D, - 0x81, - 0x2D, - 0x0F, - 0x81, - 0x00, - 0x07, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x2E, - 0x00, - 0x0A, - 0x81, - 0x00, - 0x0E, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x0B, - 0x81, - 0x00, - 0x75, - 0x4D, - 0x81, - 0x4D, - 0x81, - 0x4D, - 0x33, - 0x4D, - 0x81, - 0x2E, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x60, - 0x81, - 0x00, - 0x14, - 0x33, - 0x81, - 0x81, - 0x81, - 0x2D, - 0x62, - 0x91, - 0xE6, - 0xA5, - 0xD1, - 0xCD, - 0x65, - 0x37, - 0x40, - 0x6D, - 0xC5, - 0xB6, - 0xC9, - 0xAC, - 0xD8, - 0x04, - 0xE8, - 0x00, - 0x0D, - 0xD8, - 0x95, - 0x95, - 0x9A, - 0xD3, - 0x94, - 0xB3, - 0xB3, - 0xD3, - 0xD8, - 0xCF, - 0xE3, - 0xEC, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x09, - 0xFE, - 0xE3, - 0xCF, - 0xC8, - 0x81, - 0x2D, - 0x2D, - 0x81, - 0x2D, - 0x00, - 0x3C, - 0x81, - 0x01, - 0x33, - 0x6C, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x84, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x2E, - 0x98, - 0x65, - 0x8E, - 0xE3, - 0xCD, - 0x5E, - 0x58, - 0x5E, - 0x9A, - 0xC5, - 0xB6, - 0xC5, - 0xAC, - 0xAC, - 0xE7, - 0xE8, - 0xE8, - 0xD8, - 0x63, - 0x8D, - 0x5C, - 0x94, - 0xD3, - 0xD8, - 0xD8, - 0xCF, - 0xEB, - 0xD7, - 0xEC, - 0x06, - 0xFF, - 0x00, - 0x08, - 0x06, - 0xF4, - 0xD2, - 0xEA, - 0xD8, - 0xAB, - 0x81, - 0x2D, - 0x04, - 0x81, - 0x01, - 0x2D, - 0x11, - 0x81, - 0x00, - 0x21, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x0C, - 0x81, - 0x00, - 0x6B, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x62, - 0x81, - 0x00, - 0x38, - 0x2D, - 0x81, - 0x2E, - 0x79, - 0x9B, - 0xD4, - 0xD2, - 0xCB, - 0x9A, - 0x8A, - 0xB3, - 0xB4, - 0xAD, - 0xAC, - 0xB4, - 0xB4, - 0xB3, - 0xD3, - 0xD3, - 0xB3, - 0x8E, - 0x8E, - 0x9A, - 0xD3, - 0xD8, - 0xD8, - 0xCF, - 0xEB, - 0xD7, - 0xE2, - 0xED, - 0xEE, - 0xFF, - 0xFF, - 0xFF, - 0xEE, - 0x06, - 0xF4, - 0xE3, - 0xEA, - 0xE8, - 0xE8, - 0xE8, - 0x97, - 0x4D, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x81, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0xA3, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x61, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x06, - 0x81, - 0x00, - 0x1A, - 0x79, - 0x9B, - 0x65, - 0xC3, - 0xD2, - 0xD3, - 0xD0, - 0xB3, - 0x95, - 0x6D, - 0x8D, - 0x8B, - 0x8C, - 0x6C, - 0x6C, - 0x8D, - 0x63, - 0xB3, - 0xB3, - 0x89, - 0xE7, - 0xD8, - 0xEB, - 0xD7, - 0xED, - 0xEE, - 0x04, - 0xFF, - 0x00, - 0x0D, - 0xF0, - 0xD1, - 0xCB, - 0xC3, - 0xD8, - 0xE7, - 0xE8, - 0xE8, - 0xEA, - 0xE8, - 0xAB, - 0x81, - 0x2D, - 0x00, - 0x05, - 0x81, - 0x01, - 0x2D, - 0x0D, - 0x81, - 0x00, - 0x9B, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x66, - 0x81, - 0x00, - 0x17, - 0x79, - 0x9B, - 0x65, - 0x9A, - 0xD3, - 0x89, - 0xD3, - 0x99, - 0x58, - 0x40, - 0x40, - 0x58, - 0x5D, - 0x8C, - 0x8F, - 0xC3, - 0xC3, - 0xCF, - 0xCF, - 0xEB, - 0xE3, - 0xE2, - 0xEC, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x12, - 0xEF, - 0xE3, - 0xD2, - 0xCF, - 0xE7, - 0xD0, - 0xD0, - 0xD0, - 0xE7, - 0xD8, - 0xD3, - 0xD3, - 0x8E, - 0x81, - 0x2D, - 0x2D, - 0x81, - 0x2D, - 0x04, - 0x81, - 0x00, - 0x06, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x33, - 0x2D, - 0x9F, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x63, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x04, - 0x81, - 0x00, - 0x14, - 0x79, - 0xCE, - 0xCE, - 0x8A, - 0xC2, - 0xD8, - 0xD2, - 0xB0, - 0x67, - 0x4F, - 0x90, - 0x63, - 0xAC, - 0xC3, - 0xE3, - 0xB2, - 0xEC, - 0xD7, - 0xE2, - 0xED, - 0x04, - 0xFF, - 0x00, - 0x07, - 0x08, - 0xF0, - 0xE3, - 0xD2, - 0xCF, - 0xE7, - 0xE7, - 0x00, - 0x05, - 0xD0, - 0x00, - 0x05, - 0xD3, - 0xC7, - 0xC7, - 0xC8, - 0x88, - 0x00, - 0x06, - 0x81, - 0x00, - 0x03, - 0x2D, - 0x81, - 0x2D, - 0x00, - 0x04, - 0x81, - 0x01, - 0x2D, - 0x04, - 0x81, - 0x00, - 0x9E, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x64, - 0x81, - 0x00, - 0x11, - 0x4D, - 0x79, - 0x9B, - 0x5E, - 0x85, - 0xB3, - 0xD2, - 0xFF, - 0xFF, - 0xD1, - 0xD2, - 0xD2, - 0xE3, - 0xD7, - 0xEC, - 0xEE, - 0xEE, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x07, - 0xF0, - 0x56, - 0xD1, - 0xE3, - 0xEA, - 0xEA, - 0xE8, - 0x00, - 0x07, - 0xE7, - 0x00, - 0x0C, - 0xE9, - 0xE9, - 0xE9, - 0xC8, - 0xDF, - 0x36, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0x04, - 0x81, - 0x00, - 0x03, - 0x2D, - 0x81, - 0x2D, - 0x00, - 0xA2, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x62, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x04, - 0x81, - 0x00, - 0x18, - 0x2E, - 0x98, - 0x6E, - 0x6C, - 0x85, - 0x9A, - 0xC6, - 0xB2, - 0xED, - 0xFF, - 0xFF, - 0xED, - 0xE2, - 0xE3, - 0xE3, - 0xE3, - 0xD7, - 0xE3, - 0xD1, - 0xD1, - 0xCC, - 0xD2, - 0xEB, - 0xEA, - 0x04, - 0xE8, - 0x01, - 0xE7, - 0x01, - 0xE8, - 0x05, - 0xE7, - 0x00, - 0x06, - 0xD3, - 0xE7, - 0xE9, - 0xE9, - 0xC8, - 0xDF, - 0x0C, - 0x81, - 0x00, - 0xA5, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x65, - 0x81, - 0x00, - 0x09, - 0xC1, - 0x98, - 0x65, - 0x86, - 0xE6, - 0xE6, - 0xE9, - 0xB6, - 0xB0, - 0x00, - 0x08, - 0xC3, - 0x01, - 0xD2, - 0x01, - 0xCF, - 0x08, - 0xE8, - 0x00, - 0x05, - 0xD3, - 0xD3, - 0xE7, - 0xE8, - 0xE8, - 0x00, - 0x04, - 0xE7, - 0x00, - 0x08, - 0xD3, - 0xD3, - 0xE9, - 0xC8, - 0xDF, - 0x2D, - 0x81, - 0x2D, - 0xAC, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x6F, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x4D, - 0x79, - 0x5F, - 0xD4, - 0xD4, - 0xE6, - 0xAA, - 0xC4, - 0xE9, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x03, - 0xD3, - 0xE7, - 0xD3, - 0x00, - 0x05, - 0xE7, - 0x05, - 0xE8, - 0x00, - 0x04, - 0xD3, - 0x60, - 0xA8, - 0xD8, - 0x05, - 0xE8, - 0x00, - 0x07, - 0xD8, - 0xE7, - 0x01, - 0xE9, - 0xC8, - 0xBE, - 0x2D, - 0x00, - 0x06, - 0x81, - 0x00, - 0xAA, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x65, - 0x81, - 0x00, - 0x06, - 0xC0, - 0x88, - 0xCE, - 0xD4, - 0xE6, - 0xE6, - 0x05, - 0xC2, - 0x00, - 0x04, - 0xD0, - 0x89, - 0xD0, - 0x89, - 0x04, - 0xE7, - 0x00, - 0x09, - 0xE8, - 0xE8, - 0xE8, - 0xEA, - 0xE8, - 0xE8, - 0xD8, - 0xB4, - 0xD3, - 0x00, - 0x05, - 0xE8, - 0x00, - 0x0C, - 0xD8, - 0xD8, - 0xD8, - 0xE9, - 0xE9, - 0xF2, - 0x2B, - 0x2D, - 0x81, - 0x81, - 0x81, - 0x2D, - 0xAB, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x75, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2D, - 0x81, - 0x4D, - 0xC0, - 0xDE, - 0xCE, - 0xE6, - 0xC4, - 0xC2, - 0xC2, - 0xD0, - 0xD0, - 0xD0, - 0xC2, - 0xC2, - 0xD0, - 0x00, - 0x04, - 0xE7, - 0x05, - 0xE8, - 0x01, - 0xEA, - 0x01, - 0xE8, - 0x07, - 0xEA, - 0x00, - 0x08, - 0xE8, - 0xE8, - 0xD8, - 0xD8, - 0x01, - 0x00, - 0xDF, - 0x36, - 0x04, - 0x81, - 0x00, - 0xAD, - 0x33, - 0x2D, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x68, - 0x81, - 0x00, - 0x0C, - 0xC1, - 0x9D, - 0xE6, - 0xE6, - 0xC2, - 0xC2, - 0xD0, - 0xD0, - 0xE7, - 0xC2, - 0xCE, - 0xC4, - 0x04, - 0xE7, - 0x05, - 0xE8, - 0x01, - 0xCF, - 0x07, - 0xEA, - 0x00, - 0x0A, - 0xCF, - 0xEA, - 0xE8, - 0xD8, - 0xD8, - 0xB4, - 0xF1, - 0xBF, - 0x36, - 0x2D, - 0xAE, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x65, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x00, - 0x05, - 0x81, - 0x00, - 0x0C, - 0x62, - 0xF2, - 0xE6, - 0xE9, - 0xE9, - 0xD0, - 0xD0, - 0xE7, - 0xD0, - 0xE6, - 0xC8, - 0xE7, - 0x07, - 0xE8, - 0x04, - 0xEA, - 0x01, - 0xEB, - 0x06, - 0xEA, - 0x00, - 0x07, - 0xCF, - 0xCF, - 0x01, - 0xB4, - 0x03, - 0x35, - 0x36, - 0x00, - 0x04, - 0x81, - 0x00, - 0xAD, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x69, - 0x81, - 0x00, - 0x05, - 0xDE, - 0xA4, - 0xE9, - 0xD0, - 0xD0, - 0x00, - 0x05, - 0xE7, - 0x07, - 0xE8, - 0x0B, - 0xEA, - 0x00, - 0x08, - 0xCF, - 0xEA, - 0x01, - 0x01, - 0x00, - 0xFA, - 0x2D, - 0x2D, - 0xB0, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x73, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x2D, - 0x82, - 0x9D, - 0xE9, - 0xE9, - 0xD3, - 0xE7, - 0xE7, - 0xE7, - 0x00, - 0x05, - 0xE8, - 0x01, - 0xEA, - 0x01, - 0xE8, - 0x05, - 0xEA, - 0x00, - 0xC1, - 0xEB, - 0xEA, - 0xEB, - 0xEB, - 0xEB, - 0xEA, - 0xEB, - 0xEA, - 0xEA, - 0xCF, - 0x01, - 0xD5, - 0xBE, - 0x81, - 0x2D, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x68, - 0x81, - 0x00, - 0x0A, - 0x2D, - 0x81, - 0x36, - 0x82, - 0xF2, - 0xE9, - 0xE9, - 0xE7, - 0xD8, - 0xE7, - 0x05, - 0xE8, - 0x06, - 0xEA, - 0x07, - 0xEB, - 0x00, - 0x09, - 0xEA, - 0xEB, - 0xEA, - 0xC3, - 0x01, - 0xF3, - 0xFD, - 0x36, - 0x2D, - 0x00, - 0xB0, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x72, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x2D, - 0x2D, - 0x82, - 0xF2, - 0xE9, - 0xD3, - 0xE7, - 0x04, - 0xE8, - 0x06, - 0xEA, - 0x0B, - 0xEB, - 0x00, - 0xB9, - 0xC3, - 0x01, - 0x04, - 0x33, - 0x2D, - 0x2D, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x69, - 0x81, - 0x00, - 0x0A, - 0x2D, - 0x81, - 0x81, - 0xFD, - 0x03, - 0xE9, - 0xD8, - 0xD8, - 0xE8, - 0xE8, - 0x06, - 0xEA, - 0x0B, - 0xEB, - 0x00, - 0x06, - 0xC3, - 0x01, - 0x04, - 0x81, - 0x81, - 0x2D, - 0xB3, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0x74, - 0x81, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2D, - 0x81, - 0x33, - 0x03, - 0x01, - 0x01, - 0xD8, - 0x05, - 0xEA, - 0x01, - 0xEB, - 0x01, - 0xEA, - 0x0A, - 0xEB, - 0x00, - 0xBB, - 0xC3, - 0xC3, - 0x04, - 0x33, - 0x2D, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x01, - 0x33, - 0x6F, - 0x81, - 0x00, - 0x0A, - 0x82, - 0xF2, - 0x01, - 0x01, - 0x01, - 0xEA, - 0xCF, - 0xEA, - 0xEA, - 0xEA, - 0x0A, - 0xEB, - 0x00, - 0x06, - 0xD2, - 0xC9, - 0xF9, - 0x33, - 0x2D, - 0x2D, - 0xB4, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0x79, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x2D, - 0x36, - 0x82, - 0xDD, - 0x00, - 0x01, - 0xCF, - 0xEA, - 0xEB, - 0xEA, - 0x00, - 0x07, - 0xEB, - 0x00, - 0xC0, - 0xE3, - 0xEB, - 0xD2, - 0xCA, - 0xBC, - 0xBF, - 0x33, - 0x36, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x81, - 0x00, - 0x00, - 0x01, - 0x81, - 0x01, - 0x33, - 0x6E, - 0x81, - 0x00, - 0x0B, - 0x2D, - 0x36, - 0x2D, - 0xFA, - 0xDD, - 0x03, - 0x00, - 0xC5, - 0xC3, - 0xC3, - 0xEB, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x08, - 0xC3, - 0xB6, - 0x00, - 0x04, - 0x7F, - 0x36, - 0x36, - 0x2D, - 0xB8, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x81, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x2D, - 0x36, - 0x36, - 0x36, - 0xD6, - 0xE5, - 0x02, - 0xD9, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x02, - 0xA9, - 0xBD, - 0x82, - 0x36, - 0x36, - 0x2D, - 0x2D, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x00, - 0x00, - 0x41, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x75, - 0x81, - 0x01, - 0x2D, - 0x05, - 0x36, - 0x01, - 0x2D, - 0x05, - 0x36, - 0x00, - 0x03, - 0x2D, - 0x2D, - 0x2D, - 0x00, - 0xBA, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0x81, - 0x2D, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x00, - 0x00, - 0x41, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0x7A, - 0x81, - 0x00, - 0x03, - 0x2D, - 0x81, - 0x2D, - 0x00, - 0xC2, - 0x81, - 0x01, - 0x33, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x00, - 0x00, - 0x41, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x81, - 0x3F, - 0x81, - 0x01, - 0x33, - 0x01, - 0x81, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x00, - 0x00, - 0x41, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x33, - 0x81, - 0x81, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x81, - 0x41, - 0x81, - 0x00, - 0x01, - 0x40, - 0x01, - 0x00, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x04, - 0x01, - 0x62, - 0x2A, - 0x01, - 0x00, - 0x00, - 0x45, - 0xF6, - 0xF2, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xF6, - 0xF2, - 0xE2, - 0xF2, - 0xF2, - 0xF6, - 0xF2, - 0xE2, - 0xE2, - 0xF2, - 0xF2, - 0xF2, - 0xE2, - 0xE0, - 0xF2, - 0xE0, - 0xDE, - 0xF2, - 0xF2, - 0xF2, - 0xE2, - 0xE2, - 0xE0, - 0xF4, - 0xF2, - 0xE0, - 0xF4, - 0xE0, - 0xE6, - 0xE6, - 0xF4, - 0xF2, - 0xE2, - 0xE0, - 0xDE, - 0xF2, - 0xB6, - 0x38, - 0x38, - 0x30, - 0x4F, - 0xFA, - 0xC9, - 0xE6, - 0xC8, - 0xFA, - 0x38, - 0x38, - 0x38, - 0x47, - 0xBA, - 0xDE, - 0xC9, - 0xDE, - 0xBD, - 0x38, - 0x3A, - 0x38, - 0x46, - 0xB8, - 0x00, - 0x06, - 0xDE, - 0x01, - 0xC9, - 0x01, - 0xDE, - 0x05, - 0xC9, - 0x00, - 0x6F, - 0xE0, - 0xC7, - 0xC9, - 0xDE, - 0xC9, - 0xDC, - 0xE6, - 0xCC, - 0xF5, - 0xEC, - 0xCC, - 0x4F, - 0x46, - 0x47, - 0x46, - 0x5B, - 0x92, - 0xDE, - 0xCA, - 0xC9, - 0xCA, - 0xDC, - 0xC9, - 0xBA, - 0x47, - 0x4D, - 0x4D, - 0x51, - 0x5B, - 0xB8, - 0xE0, - 0xE0, - 0xC7, - 0xC9, - 0xCC, - 0xC9, - 0xC9, - 0xCC, - 0xCC, - 0xCC, - 0xC9, - 0xC9, - 0xE0, - 0x47, - 0x51, - 0x51, - 0x5B, - 0x68, - 0x92, - 0xCC, - 0xCC, - 0xC9, - 0xCC, - 0xCC, - 0xCC, - 0x22, - 0x4D, - 0x5B, - 0x5B, - 0x5D, - 0x68, - 0xB6, - 0xCC, - 0xCC, - 0xD0, - 0xC9, - 0xD0, - 0xD0, - 0xCC, - 0xC9, - 0xCA, - 0x47, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0xA5, - 0xF2, - 0xBD, - 0xC9, - 0xCC, - 0xC9, - 0xC9, - 0xCC, - 0xC9, - 0xC9, - 0xC1, - 0x4D, - 0x5D, - 0x68, - 0x6A, - 0x7B, - 0xF1, - 0xE7, - 0xE7, - 0xE9, - 0xE7, - 0xE7, - 0xE3, - 0x7C, - 0x5D, - 0x6A, - 0x6A, - 0x73, - 0x92, - 0xEC, - 0xDD, - 0xDD, - 0xCC, - 0xBD, - 0xCC, - 0x00, - 0x05, - 0xBD, - 0x00, - 0x07, - 0xCC, - 0xCC, - 0xBA, - 0xD0, - 0xCF, - 0xCC, - 0xBD, - 0x00, - 0x05, - 0xCC, - 0x00, - 0x0D, - 0xBD, - 0xCC, - 0xCC, - 0xCF, - 0xCF, - 0xCF, - 0xCC, - 0xCF, - 0xCF, - 0xBA, - 0xCF, - 0xFE, - 0x5B, - 0x00, - 0x04, - 0x73, - 0x00, - 0x46, - 0x39, - 0xFA, - 0xBA, - 0xF9, - 0xD0, - 0xBA, - 0xD0, - 0xD0, - 0xBA, - 0xBA, - 0xCF, - 0xFE, - 0x22, - 0x5D, - 0x73, - 0x73, - 0x7A, - 0x7F, - 0x3D, - 0xFE, - 0xFE, - 0xB6, - 0xB6, - 0xB6, - 0xFE, - 0x31, - 0x6A, - 0x73, - 0x73, - 0x7A, - 0x75, - 0x22, - 0x04, - 0xF5, - 0xD3, - 0xB6, - 0xFA, - 0xFE, - 0x5D, - 0x73, - 0x73, - 0x7A, - 0x7C, - 0xD6, - 0xDA, - 0xFE, - 0xFE, - 0x03, - 0xF7, - 0xE7, - 0xD4, - 0x75, - 0x73, - 0x7A, - 0x7A, - 0x64, - 0x1A, - 0x1A, - 0x1A, - 0x81, - 0x04, - 0x4F, - 0x73, - 0x73, - 0x73, - 0x7A, - 0x77, - 0x39, - 0x1F, - 0x39, - 0x06, - 0x1D, - 0x00, - 0x11, - 0x81, - 0x1D, - 0xFF, - 0x1D, - 0x05, - 0x1D, - 0x1D, - 0x29, - 0x38, - 0x6A, - 0x73, - 0x73, - 0x7A, - 0x7C, - 0x19, - 0x05, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xF6, - 0xF6, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xFD, - 0x00, - 0x0F, - 0xF6, - 0x00, - 0x08, - 0xE2, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0x04, - 0xF6, - 0x00, - 0x07, - 0xE2, - 0xE0, - 0xE2, - 0xE6, - 0xE0, - 0xE2, - 0xE0, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x27, - 0x3D, - 0x30, - 0x23, - 0x3A, - 0x92, - 0xF2, - 0xC8, - 0xE6, - 0xE6, - 0x92, - 0x38, - 0x30, - 0x3A, - 0x50, - 0xE2, - 0xC8, - 0xE2, - 0xE2, - 0x22, - 0x3A, - 0x30, - 0x3A, - 0x47, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xC9, - 0xDE, - 0xC8, - 0xDE, - 0xDE, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0B, - 0xDE, - 0xCB, - 0xE2, - 0xBA, - 0x38, - 0x46, - 0x46, - 0x51, - 0x5B, - 0xCC, - 0xE0, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0A, - 0xE2, - 0x86, - 0x46, - 0x46, - 0x51, - 0x5D, - 0x5E, - 0xF2, - 0xCC, - 0xCA, - 0x05, - 0xC8, - 0x00, - 0x53, - 0xC9, - 0xC8, - 0xC8, - 0xCC, - 0xC8, - 0x22, - 0x51, - 0x51, - 0x51, - 0x5D, - 0x5B, - 0xCD, - 0xCA, - 0xCA, - 0xCA, - 0xC8, - 0xBD, - 0xF2, - 0x50, - 0x51, - 0x5D, - 0x5D, - 0x6A, - 0x5C, - 0xF6, - 0xCA, - 0xCF, - 0xD0, - 0xC9, - 0xCA, - 0xCC, - 0xCA, - 0xE0, - 0x3D, - 0x51, - 0x5D, - 0x5D, - 0x72, - 0x64, - 0xCD, - 0xCA, - 0xCA, - 0xCA, - 0xBF, - 0xC8, - 0xC9, - 0xBD, - 0xCA, - 0xCA, - 0x22, - 0x5D, - 0x68, - 0x72, - 0x6A, - 0xEE, - 0xE3, - 0xE1, - 0xCE, - 0xCD, - 0xCE, - 0xF1, - 0xE7, - 0xD9, - 0x5D, - 0x6A, - 0x72, - 0x7A, - 0x5C, - 0xE6, - 0xDD, - 0xCC, - 0xB9, - 0xCA, - 0xCA, - 0xCF, - 0xCF, - 0xCE, - 0xCA, - 0xCA, - 0xB9, - 0xCA, - 0xCA, - 0xB9, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x03, - 0xBD, - 0xCE, - 0xBD, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x5C, - 0xCE, - 0xBD, - 0xBD, - 0xCE, - 0xCF, - 0xCE, - 0xCE, - 0xFC, - 0x38, - 0x72, - 0x73, - 0x73, - 0x8B, - 0x77, - 0xCD, - 0xCE, - 0xB6, - 0xD0, - 0xF9, - 0xCE, - 0xF5, - 0xFA, - 0xCF, - 0xFA, - 0xC1, - 0xFC, - 0x47, - 0x83, - 0x73, - 0x7A, - 0x8B, - 0x5F, - 0xFC, - 0xFE, - 0xC1, - 0xFE, - 0xFE, - 0xFE, - 0x03, - 0x51, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x1D, - 0xFE, - 0xD3, - 0xF5, - 0xD3, - 0xF9, - 0x04, - 0x03, - 0x51, - 0x7A, - 0x7A, - 0x7A, - 0x74, - 0xD9, - 0xD5, - 0xDF, - 0xF1, - 0xEA, - 0xE3, - 0xD5, - 0x98, - 0x73, - 0x7A, - 0x7A, - 0x84, - 0x78, - 0x04, - 0x29, - 0x1A, - 0x1A, - 0x31, - 0x72, - 0x7A, - 0x7A, - 0x8B, - 0x74, - 0x1A, - 0x19, - 0x81, - 0x05, - 0x19, - 0x1D, - 0x1D, - 0x05, - 0x19, - 0x1D, - 0x19, - 0x1D, - 0x04, - 0x19, - 0x00, - 0x0B, - 0x1A, - 0x1B, - 0x72, - 0x7A, - 0x7A, - 0x7A, - 0x74, - 0x05, - 0x1D, - 0x06, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xF6, - 0xF6, - 0xFD, - 0x00, - 0x08, - 0xF6, - 0x01, - 0xE2, - 0x01, - 0xE2, - 0x04, - 0xF6, - 0x01, - 0xE5, - 0x01, - 0xE2, - 0x05, - 0xF6, - 0x04, - 0xE2, - 0x00, - 0x04, - 0xDE, - 0xE2, - 0xE2, - 0xE2, - 0x04, - 0xF6, - 0x00, - 0x27, - 0xE2, - 0xE2, - 0xE0, - 0xE2, - 0xF2, - 0xF4, - 0xE0, - 0xE0, - 0xF4, - 0xE2, - 0xF2, - 0x38, - 0x30, - 0x30, - 0x3A, - 0xCF, - 0xDE, - 0xE6, - 0xE6, - 0xF4, - 0x23, - 0x38, - 0x30, - 0x46, - 0xBA, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0x50, - 0x3A, - 0x3A, - 0x46, - 0x86, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x25, - 0xDE, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0xC9, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0xE2, - 0x3D, - 0x3A, - 0x46, - 0x46, - 0x51, - 0x5C, - 0xE0, - 0xD1, - 0xCC, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x4F, - 0x46, - 0x46, - 0x51, - 0x72, - 0xA5, - 0xE2, - 0xD0, - 0xCC, - 0xC8, - 0xC9, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x43, - 0xBD, - 0xE2, - 0x38, - 0x51, - 0x51, - 0x51, - 0x72, - 0x78, - 0xE2, - 0xCA, - 0xC8, - 0xCA, - 0xC8, - 0xCA, - 0xC1, - 0x4D, - 0x51, - 0x5D, - 0x5D, - 0x6A, - 0xB8, - 0xCA, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xCF, - 0xCC, - 0xCA, - 0xF4, - 0x38, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x78, - 0xE2, - 0xCA, - 0xCA, - 0xBF, - 0xBF, - 0xCA, - 0xBF, - 0xBD, - 0xCA, - 0xCA, - 0x3D, - 0x5D, - 0x72, - 0x6A, - 0x68, - 0xE9, - 0xDF, - 0xD0, - 0xCA, - 0xCC, - 0xCF, - 0xF2, - 0xEF, - 0xE4, - 0x64, - 0x72, - 0x6A, - 0x7A, - 0x5E, - 0xF2, - 0xCF, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x05, - 0xD0, - 0xCF, - 0xCF, - 0xCC, - 0xCF, - 0x00, - 0x06, - 0xCA, - 0x00, - 0x07, - 0xB9, - 0xCA, - 0xCC, - 0xBD, - 0xCE, - 0xBD, - 0xCE, - 0x00, - 0x04, - 0xCA, - 0x05, - 0xCE, - 0x00, - 0x55, - 0x26, - 0x5D, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0x22, - 0xFC, - 0xC1, - 0xCE, - 0xCE, - 0xCE, - 0xFA, - 0xD1, - 0xBA, - 0xF5, - 0xF9, - 0xFA, - 0x1C, - 0x6A, - 0x7A, - 0x7A, - 0x8B, - 0x6A, - 0x03, - 0xC1, - 0xC1, - 0xC1, - 0xFE, - 0xB6, - 0x03, - 0x4F, - 0x73, - 0x73, - 0x7A, - 0x8C, - 0x6B, - 0x03, - 0xF5, - 0xF5, - 0xFA, - 0xF5, - 0xF5, - 0xF5, - 0xFA, - 0x5F, - 0x7A, - 0x83, - 0x7A, - 0x7A, - 0x74, - 0xB4, - 0xD5, - 0xD4, - 0xD4, - 0x8A, - 0x8E, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x6B, - 0x04, - 0x08, - 0x1A, - 0x1A, - 0x07, - 0x51, - 0x7A, - 0x7A, - 0x7A, - 0x84, - 0x33, - 0x1A, - 0x19, - 0x19, - 0x1A, - 0x1D, - 0x81, - 0x19, - 0x1D, - 0x1D, - 0x05, - 0x1D, - 0x06, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x0B, - 0x1C, - 0x5D, - 0x7A, - 0x7A, - 0x7A, - 0x84, - 0x1F, - 0x05, - 0x06, - 0x1D, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF6, - 0xFD, - 0xF6, - 0xF6, - 0xFD, - 0x00, - 0x0C, - 0xF6, - 0x00, - 0x06, - 0xF7, - 0xF7, - 0xE5, - 0xE5, - 0xF6, - 0xE2, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xE2, - 0xE2, - 0xF6, - 0xDE, - 0x07, - 0xE2, - 0x01, - 0xF6, - 0x05, - 0xE2, - 0x00, - 0x23, - 0xE0, - 0xE0, - 0xE2, - 0x86, - 0x30, - 0x30, - 0x3A, - 0x50, - 0xE2, - 0xC8, - 0xF4, - 0xE2, - 0xB6, - 0x30, - 0x38, - 0x3A, - 0x38, - 0xC8, - 0xC8, - 0xE2, - 0xE2, - 0xB6, - 0x3A, - 0x30, - 0x3A, - 0x47, - 0xC8, - 0xC8, - 0xDC, - 0xDC, - 0xC9, - 0xE2, - 0xCB, - 0xC8, - 0xE2, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x24, - 0xDE, - 0xC8, - 0xC8, - 0xDE, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0x38, - 0x46, - 0x46, - 0x46, - 0x5D, - 0x86, - 0xC8, - 0xDC, - 0xCC, - 0xE6, - 0xDC, - 0xE0, - 0xC1, - 0x3A, - 0x46, - 0x51, - 0x51, - 0x5B, - 0xB9, - 0xCA, - 0xCC, - 0xC9, - 0xC9, - 0xD0, - 0xCC, - 0xC8, - 0xC9, - 0x04, - 0xC8, - 0x00, - 0x25, - 0xC1, - 0x4D, - 0x51, - 0x51, - 0x5D, - 0x68, - 0xBA, - 0xCA, - 0xC9, - 0xBF, - 0xC8, - 0xCD, - 0xE2, - 0x3D, - 0x51, - 0x5D, - 0x5D, - 0x6A, - 0x77, - 0xCE, - 0xCA, - 0xCA, - 0xCA, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0xC8, - 0x22, - 0x51, - 0x5D, - 0x72, - 0x72, - 0x68, - 0xC1, - 0xCA, - 0xCA, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x25, - 0xBF, - 0xCA, - 0xBD, - 0xCA, - 0x3D, - 0x5D, - 0x68, - 0x6A, - 0x6A, - 0xE9, - 0xDF, - 0xDC, - 0xCD, - 0xCE, - 0xCE, - 0xF7, - 0xEF, - 0xDF, - 0x64, - 0x6A, - 0x72, - 0x7A, - 0x5F, - 0xCD, - 0xCA, - 0xCA, - 0xB9, - 0xCA, - 0xCF, - 0xD0, - 0xCC, - 0xCF, - 0xBD, - 0xCC, - 0xCC, - 0xCF, - 0xBD, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x08, - 0xBD, - 0xBD, - 0xBD, - 0xCE, - 0xCC, - 0xCC, - 0xCA, - 0xB9, - 0x05, - 0xCE, - 0x00, - 0x0A, - 0xC1, - 0xFC, - 0x38, - 0x72, - 0x73, - 0x83, - 0x8B, - 0x5F, - 0xCD, - 0xC1, - 0x04, - 0xCE, - 0x00, - 0x23, - 0xD0, - 0xD0, - 0xFA, - 0xC0, - 0xD3, - 0x03, - 0x4D, - 0x83, - 0x73, - 0x7A, - 0x8B, - 0x78, - 0xFC, - 0xC1, - 0xC1, - 0xFE, - 0xB6, - 0xFE, - 0x22, - 0x72, - 0x7A, - 0x7A, - 0x8B, - 0x7F, - 0x22, - 0xFE, - 0xB6, - 0xFA, - 0x26, - 0xF5, - 0xF9, - 0xF9, - 0xF9, - 0x1C, - 0x6A, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x20, - 0x83, - 0x74, - 0x94, - 0x74, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x75, - 0x1A, - 0x29, - 0x1A, - 0x1A, - 0x04, - 0x38, - 0x7A, - 0x7A, - 0x7A, - 0x8B, - 0x77, - 0x1A, - 0x19, - 0x1D, - 0x81, - 0x1D, - 0x19, - 0x19, - 0x1D, - 0x81, - 0x19, - 0x19, - 0x04, - 0x1D, - 0x00, - 0x0D, - 0x09, - 0x08, - 0x47, - 0x7A, - 0x7A, - 0x7A, - 0x8C, - 0x56, - 0x05, - 0x1D, - 0x06, - 0x1D, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x07, - 0xF6, - 0x00, - 0x03, - 0xF2, - 0xE2, - 0xE2, - 0x00, - 0x06, - 0xF6, - 0x00, - 0x0E, - 0xE2, - 0xE5, - 0xE5, - 0xF7, - 0xE5, - 0xF0, - 0xE5, - 0xE2, - 0xF7, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0x04, - 0xE2, - 0x01, - 0xDE, - 0x09, - 0xE2, - 0x00, - 0x25, - 0xF4, - 0xDE, - 0xE2, - 0xF4, - 0x31, - 0x38, - 0x30, - 0x3A, - 0xBA, - 0xE2, - 0xC8, - 0xE2, - 0xE2, - 0x31, - 0x3A, - 0x30, - 0x46, - 0x86, - 0xE2, - 0xCA, - 0xC8, - 0xE2, - 0x31, - 0x3A, - 0x3A, - 0x46, - 0x50, - 0xE2, - 0xC8, - 0xE6, - 0xC9, - 0xDE, - 0xDC, - 0xDE, - 0xC9, - 0xC9, - 0xDE, - 0x00, - 0x09, - 0xC8, - 0x00, - 0x63, - 0xE2, - 0xB8, - 0x3A, - 0x46, - 0x46, - 0x51, - 0x5B, - 0xB9, - 0xE6, - 0xDC, - 0xCC, - 0xDC, - 0xC8, - 0xC8, - 0x3D, - 0x46, - 0x51, - 0x46, - 0x5D, - 0x5F, - 0xE2, - 0xCA, - 0xCF, - 0xCA, - 0xCF, - 0xD0, - 0xCC, - 0xE0, - 0xD0, - 0xC9, - 0xC9, - 0xCA, - 0xE2, - 0x31, - 0x51, - 0x5D, - 0x5D, - 0x6A, - 0x5F, - 0xF6, - 0xDD, - 0xDD, - 0xDC, - 0xCB, - 0xCB, - 0xF2, - 0x47, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x92, - 0xCD, - 0xCA, - 0xCA, - 0xC8, - 0xBD, - 0xBD, - 0xCA, - 0xCA, - 0xE2, - 0x50, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x80, - 0xFE, - 0xCF, - 0xCA, - 0xD0, - 0xCA, - 0xCA, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0x22, - 0x5D, - 0x72, - 0x6A, - 0x73, - 0xE8, - 0xE3, - 0xE9, - 0xF6, - 0xFD, - 0xFD, - 0xF0, - 0xE3, - 0xD9, - 0x5D, - 0x6A, - 0x6A, - 0x7A, - 0x92, - 0xCD, - 0xBD, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x25, - 0xCE, - 0xBF, - 0xCF, - 0xCF, - 0xCE, - 0xCA, - 0xD0, - 0xCC, - 0xCA, - 0xCC, - 0xCA, - 0xCA, - 0xCA, - 0xB9, - 0xCA, - 0xBD, - 0xCC, - 0xBD, - 0xCE, - 0xCE, - 0xCE, - 0xBA, - 0xCE, - 0xFC, - 0xCD, - 0xCD, - 0x22, - 0x72, - 0x73, - 0x73, - 0x7A, - 0x74, - 0x26, - 0xFC, - 0xCF, - 0xCF, - 0xBA, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x22, - 0xBA, - 0xFA, - 0xFE, - 0x31, - 0x73, - 0x7A, - 0x7A, - 0x8B, - 0x77, - 0xFC, - 0xD3, - 0xFE, - 0xC1, - 0xFE, - 0xB6, - 0x03, - 0x4D, - 0x7A, - 0x7A, - 0x7A, - 0x8C, - 0x79, - 0xFE, - 0xB6, - 0xFE, - 0xB6, - 0xFE, - 0xFA, - 0xFE, - 0xF9, - 0xF5, - 0xD3, - 0x50, - 0x73, - 0x09, - 0x7A, - 0x00, - 0x2B, - 0x8C, - 0x8C, - 0x77, - 0x05, - 0x1A, - 0x05, - 0x1D, - 0x1A, - 0x31, - 0x72, - 0x7A, - 0x7A, - 0x8C, - 0x74, - 0x05, - 0x19, - 0x1D, - 0x1D, - 0x19, - 0x1D, - 0x1D, - 0x81, - 0x1D, - 0x19, - 0x1D, - 0x1D, - 0x1D, - 0x19, - 0x1D, - 0x1D, - 0x05, - 0x21, - 0x73, - 0x7A, - 0x7A, - 0x8B, - 0x7B, - 0x1A, - 0x39, - 0x19, - 0x1D, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x07, - 0xF6, - 0x00, - 0x07, - 0xF2, - 0xF6, - 0xF6, - 0xF2, - 0xF7, - 0xF2, - 0xE2, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x0D, - 0xE2, - 0xF6, - 0xE5, - 0xE5, - 0xF6, - 0xE5, - 0xE5, - 0xE5, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xF6, - 0x00, - 0x0F, - 0xE2, - 0x00, - 0x5F, - 0xDE, - 0xDE, - 0xC1, - 0x30, - 0x38, - 0x3A, - 0x38, - 0xF4, - 0xDE, - 0xC8, - 0xE2, - 0xBA, - 0x38, - 0x30, - 0x3A, - 0x47, - 0xCA, - 0xC8, - 0xC8, - 0xC8, - 0xBA, - 0x38, - 0x3A, - 0x3A, - 0x4D, - 0xCE, - 0xE2, - 0xC8, - 0xE2, - 0xC7, - 0xCC, - 0xDE, - 0xE6, - 0xCC, - 0xE6, - 0xE2, - 0xC9, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x92, - 0x3A, - 0x46, - 0x46, - 0x5D, - 0x5C, - 0xF6, - 0xC8, - 0xC8, - 0xC8, - 0xCC, - 0xEC, - 0xCC, - 0x38, - 0x46, - 0x51, - 0x51, - 0x5D, - 0x86, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xE6, - 0xC8, - 0xC9, - 0xE6, - 0xCA, - 0xCF, - 0xCC, - 0xCE, - 0x47, - 0x51, - 0x51, - 0x5D, - 0x6A, - 0x86, - 0xE2, - 0xDC, - 0xDD, - 0xCC, - 0xDC, - 0xE5, - 0x1A, - 0x5B, - 0x5D, - 0x5D, - 0x72, - 0x64, - 0x00, - 0x05, - 0xCA, - 0x00, - 0x3F, - 0xCC, - 0xBD, - 0xCA, - 0xCA, - 0xC1, - 0x51, - 0x5D, - 0x72, - 0x72, - 0x6A, - 0xC1, - 0xCA, - 0xCA, - 0xCC, - 0xCF, - 0xC8, - 0xDC, - 0xD0, - 0xCC, - 0xC8, - 0xCA, - 0xCA, - 0xCE, - 0x5B, - 0x6A, - 0x72, - 0x6A, - 0x74, - 0xE4, - 0xE3, - 0xEF, - 0xF8, - 0xF3, - 0xEB, - 0xD9, - 0x64, - 0x6A, - 0x73, - 0x7A, - 0x74, - 0xC1, - 0xCE, - 0xFA, - 0xCF, - 0xCA, - 0xCA, - 0xBD, - 0xB9, - 0xCA, - 0xCA, - 0xBD, - 0xBD, - 0xCF, - 0xCF, - 0xCA, - 0xBD, - 0xD0, - 0xCF, - 0xCA, - 0xCC, - 0xCA, - 0xCA, - 0xCA, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x2E, - 0xCD, - 0xFC, - 0x03, - 0x1C, - 0x31, - 0x1B, - 0x4D, - 0x73, - 0x73, - 0x7A, - 0x8C, - 0x79, - 0xFC, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xCF, - 0xCF, - 0xBA, - 0xCE, - 0xC1, - 0xCE, - 0x03, - 0x5D, - 0x83, - 0x7A, - 0x7A, - 0x84, - 0x1A, - 0xFE, - 0x29, - 0xFE, - 0xC1, - 0xFE, - 0xFC, - 0x31, - 0x73, - 0x7A, - 0x7A, - 0x8B, - 0x75, - 0xFE, - 0x04, - 0xB6, - 0xFE, - 0x04, - 0xB6, - 0x00, - 0x05, - 0xFE, - 0x04, - 0x22, - 0x03, - 0x4D, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x17, - 0x8B, - 0x7A, - 0x8B, - 0x8C, - 0x8C, - 0x74, - 0x5C, - 0x29, - 0x1A, - 0x1A, - 0x1D, - 0x05, - 0x22, - 0x5D, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x33, - 0x19, - 0x81, - 0x19, - 0x81, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x13, - 0x19, - 0x1D, - 0x19, - 0x1D, - 0x1D, - 0x1D, - 0x3D, - 0x72, - 0x7A, - 0x7A, - 0x8B, - 0x7F, - 0x1F, - 0x1D, - 0x1D, - 0x1D, - 0x19, - 0x1D, - 0x39, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF2, - 0x01, - 0xF2, - 0x06, - 0xF6, - 0x00, - 0x08, - 0xF2, - 0xF6, - 0xF4, - 0xE0, - 0xF2, - 0xF7, - 0xF2, - 0xE2, - 0x04, - 0xF6, - 0x00, - 0x0F, - 0xE2, - 0xE2, - 0xF6, - 0xE5, - 0xE5, - 0xE2, - 0xE5, - 0xF0, - 0xDE, - 0xF6, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xF6, - 0x00, - 0x04, - 0xE2, - 0x00, - 0x05, - 0xDE, - 0xDE, - 0xC8, - 0xDE, - 0xC8, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x22, - 0x3D, - 0x30, - 0x38, - 0x3A, - 0x3D, - 0xE2, - 0xC8, - 0xE6, - 0xE2, - 0x3D, - 0x3A, - 0x38, - 0x46, - 0x50, - 0xE2, - 0xC8, - 0xC8, - 0xDE, - 0x3D, - 0x3A, - 0x3A, - 0x46, - 0x78, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0xC8, - 0xDE, - 0xCB, - 0xE6, - 0xC7, - 0xC9, - 0xDC, - 0x07, - 0xC8, - 0x00, - 0x07, - 0xCA, - 0x38, - 0x46, - 0x4D, - 0x46, - 0x5D, - 0xB8, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x0A, - 0xE2, - 0x22, - 0x46, - 0x51, - 0x51, - 0x5D, - 0x5B, - 0xC8, - 0xCC, - 0xDC, - 0x05, - 0xC8, - 0x04, - 0xCC, - 0x00, - 0x15, - 0xE0, - 0x3D, - 0x51, - 0x51, - 0x5D, - 0x5D, - 0x5B, - 0xCA, - 0xCA, - 0xCA, - 0xCC, - 0xCB, - 0xEC, - 0xF4, - 0x5C, - 0x51, - 0x5D, - 0x5D, - 0x73, - 0x79, - 0xCD, - 0x00, - 0x04, - 0xCA, - 0x00, - 0x3E, - 0xBD, - 0xBD, - 0xCA, - 0xF2, - 0x50, - 0x5D, - 0x6A, - 0x5D, - 0x73, - 0x5E, - 0xCD, - 0xCA, - 0xCA, - 0xCA, - 0xBF, - 0xC9, - 0xF9, - 0xCC, - 0xBF, - 0xBD, - 0xCF, - 0xCA, - 0xE2, - 0x50, - 0x72, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x87, - 0xE4, - 0xE3, - 0xE4, - 0xBB, - 0x68, - 0x6A, - 0x6A, - 0x73, - 0x7A, - 0x80, - 0xCD, - 0xCF, - 0xD0, - 0xF9, - 0xCE, - 0xCE, - 0xCF, - 0xCA, - 0xB9, - 0xCA, - 0xCA, - 0xCA, - 0xBD, - 0xBD, - 0xCC, - 0xF9, - 0xD0, - 0xB9, - 0xCF, - 0xD0, - 0xCE, - 0xCF, - 0x04, - 0xCE, - 0x00, - 0x51, - 0xFC, - 0x1C, - 0x47, - 0x5D, - 0x73, - 0x83, - 0x73, - 0x73, - 0x73, - 0x7A, - 0x84, - 0x75, - 0xC1, - 0xC1, - 0xC1, - 0xB6, - 0xBA, - 0xBA, - 0xCF, - 0xC1, - 0xBA, - 0xFE, - 0xB6, - 0xFC, - 0x47, - 0x73, - 0x7A, - 0x7A, - 0x8B, - 0x8D, - 0x03, - 0xF9, - 0xB6, - 0xC1, - 0xC1, - 0xC1, - 0x03, - 0x5D, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x3D, - 0xFE, - 0xD3, - 0xB6, - 0xB6, - 0xFA, - 0xD3, - 0x04, - 0xFA, - 0xB6, - 0x22, - 0xFE, - 0x31, - 0x72, - 0x7A, - 0x7A, - 0x8C, - 0x84, - 0x7F, - 0x7F, - 0x74, - 0x75, - 0x5C, - 0x08, - 0x04, - 0x86, - 0x1A, - 0x1A, - 0x05, - 0x04, - 0x47, - 0x7A, - 0x7A, - 0x8B, - 0x8C, - 0x7C, - 0x1A, - 0x81, - 0x19, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x17, - 0x19, - 0x1D, - 0x1D, - 0x1D, - 0x19, - 0x1D, - 0x39, - 0x1D, - 0x39, - 0x1C, - 0x51, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x60, - 0x1D, - 0x1D, - 0x09, - 0x19, - 0x1D, - 0x19, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF4, - 0x04, - 0xF2, - 0x06, - 0xF6, - 0x00, - 0x07, - 0xE2, - 0xE2, - 0xF2, - 0xE2, - 0xF2, - 0xF4, - 0xE2, - 0x00, - 0x06, - 0xF6, - 0x00, - 0x0C, - 0xDE, - 0xE2, - 0xDE, - 0xF0, - 0xE2, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xF6, - 0x06, - 0xE2, - 0x01, - 0xDE, - 0x04, - 0xE2, - 0x00, - 0xE7, - 0xC8, - 0xE2, - 0xCE, - 0x38, - 0x30, - 0x3A, - 0x47, - 0xC8, - 0xE0, - 0xE0, - 0xE2, - 0xCF, - 0x38, - 0x3A, - 0x3A, - 0x46, - 0xB9, - 0xE2, - 0xC8, - 0xC8, - 0xCA, - 0x38, - 0x3A, - 0x3A, - 0x51, - 0xBA, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xDE, - 0xC9, - 0xDE, - 0xE6, - 0xCB, - 0xE2, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0xC1, - 0x3A, - 0x46, - 0x46, - 0x51, - 0x5B, - 0xCA, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xCA, - 0xE2, - 0x50, - 0x46, - 0x51, - 0x51, - 0x5D, - 0x80, - 0xE2, - 0xD0, - 0xF5, - 0xC8, - 0xDC, - 0xBC, - 0xC8, - 0xC8, - 0xE0, - 0xC8, - 0xC8, - 0xCC, - 0xF4, - 0x4F, - 0x51, - 0x51, - 0x5D, - 0x6A, - 0x79, - 0xE2, - 0xBD, - 0xCA, - 0xC8, - 0xCA, - 0xE0, - 0xB8, - 0x4D, - 0x5D, - 0x5D, - 0x5D, - 0x6A, - 0xC0, - 0xCA, - 0xCF, - 0xBD, - 0xCA, - 0xC8, - 0xCA, - 0xCA, - 0xB9, - 0xC1, - 0x4D, - 0x72, - 0x5D, - 0x72, - 0x73, - 0x22, - 0xCA, - 0xB9, - 0xCA, - 0xC8, - 0xC8, - 0xBD, - 0xD0, - 0xCC, - 0xC8, - 0xD0, - 0xBF, - 0xCA, - 0xCF, - 0xCF, - 0x5E, - 0x6A, - 0x72, - 0x6A, - 0x6A, - 0x72, - 0x6A, - 0x74, - 0x68, - 0x72, - 0x6A, - 0x6A, - 0x73, - 0x8B, - 0x77, - 0xFC, - 0xCE, - 0xCE, - 0xCF, - 0xBD, - 0xBD, - 0xCF, - 0xCF, - 0xCA, - 0xCA, - 0xB9, - 0xCF, - 0xBD, - 0xCA, - 0xCA, - 0xCA, - 0xCF, - 0xCE, - 0xCA, - 0xD0, - 0xCA, - 0xCF, - 0xD0, - 0xD0, - 0xCE, - 0xCF, - 0x03, - 0x47, - 0x72, - 0x73, - 0x7A, - 0x83, - 0x73, - 0x73, - 0x83, - 0x73, - 0x73, - 0x8B, - 0x77, - 0x03, - 0xC1, - 0xC1, - 0xCE, - 0xCE, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xC1, - 0xFC, - 0x1C, - 0x72, - 0x7A, - 0x7A, - 0x8B, - 0x74, - 0x26, - 0xB6, - 0xD3, - 0xC1, - 0xB6, - 0xFE, - 0x03, - 0x47, - 0x7A, - 0x7A, - 0x7A, - 0x8C, - 0x5E, - 0x03, - 0xB6, - 0xB6, - 0xB6, - 0xFA, - 0xD3, - 0xB6, - 0xFA, - 0xB6, - 0x04, - 0xB6, - 0x07, - 0x5B, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x58, - 0x1A, - 0x1A, - 0x1A, - 0x04, - 0x04, - 0x29, - 0x00, - 0x04, - 0x1A, - 0x00, - 0x0E, - 0x29, - 0x31, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x74, - 0x1D, - 0x19, - 0x19, - 0x1D, - 0x1D, - 0x19, - 0x19, - 0x04, - 0x1D, - 0x01, - 0x39, - 0x04, - 0x1D, - 0x00, - 0x0F, - 0x1A, - 0x38, - 0x7A, - 0x7A, - 0x7A, - 0x8B, - 0x77, - 0x05, - 0x13, - 0x1D, - 0x1D, - 0x39, - 0x19, - 0x1D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF6, - 0x01, - 0xE2, - 0x04, - 0xF6, - 0x00, - 0x03, - 0xE6, - 0xF4, - 0xF2, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x17, - 0xE2, - 0xE2, - 0xE2, - 0xF4, - 0xF2, - 0xE2, - 0xE0, - 0xE2, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xDE, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xDE, - 0xE2, - 0xDE, - 0xC8, - 0x00, - 0x06, - 0xE2, - 0x01, - 0xDE, - 0x01, - 0xDE, - 0x04, - 0xE2, - 0x00, - 0x1B, - 0xC8, - 0xE2, - 0x50, - 0x30, - 0x30, - 0x46, - 0x3D, - 0xE2, - 0xC8, - 0xC8, - 0xDE, - 0x86, - 0x3A, - 0x3A, - 0x3A, - 0x4F, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0xB6, - 0x3A, - 0x3A, - 0x46, - 0x5F, - 0xE2, - 0xBF, - 0x00, - 0x09, - 0xC8, - 0x00, - 0x4B, - 0xDE, - 0xDE, - 0xC8, - 0xBF, - 0xCA, - 0xE2, - 0x3D, - 0x46, - 0x51, - 0x51, - 0x5D, - 0x79, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0xCE, - 0x47, - 0x5B, - 0x51, - 0x51, - 0x68, - 0xB8, - 0xC8, - 0xEC, - 0xCB, - 0xC9, - 0xF5, - 0xDC, - 0xC8, - 0xCC, - 0xBC, - 0xC8, - 0xC8, - 0xC8, - 0xC1, - 0x4D, - 0x5D, - 0x5D, - 0x5D, - 0x68, - 0xB6, - 0xCF, - 0xCF, - 0xCF, - 0xCA, - 0xCE, - 0xF2, - 0x31, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x6B, - 0xF4, - 0xD0, - 0xF5, - 0xCF, - 0xBF, - 0xCF, - 0xCA, - 0xB9, - 0xE2, - 0x31, - 0x5D, - 0x6A, - 0x6A, - 0x73, - 0x6B, - 0xCD, - 0xCA, - 0xCC, - 0xBF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x26, - 0xCA, - 0xC8, - 0xBD, - 0xB9, - 0xD0, - 0xD0, - 0xD0, - 0xFA, - 0x5B, - 0x73, - 0x72, - 0x6A, - 0x6A, - 0x6A, - 0x73, - 0x73, - 0x6A, - 0x73, - 0x7A, - 0x7A, - 0x6B, - 0xFE, - 0xCE, - 0xCE, - 0xCE, - 0xCA, - 0xB9, - 0xCE, - 0xCF, - 0xCE, - 0xCA, - 0xB9, - 0xCA, - 0xD3, - 0xD0, - 0xD0, - 0xCF, - 0xBD, - 0x04, - 0xCA, - 0x00, - 0x0A, - 0xBD, - 0xF9, - 0xD0, - 0xCE, - 0xCE, - 0x07, - 0x5B, - 0x73, - 0x7A, - 0x73, - 0x06, - 0x7A, - 0x00, - 0x63, - 0x73, - 0x7A, - 0x7A, - 0x77, - 0xFA, - 0xD3, - 0xC1, - 0xCE, - 0xCE, - 0xBA, - 0xC1, - 0xBA, - 0xB6, - 0x03, - 0x4D, - 0x7A, - 0x7A, - 0x7A, - 0x8C, - 0x78, - 0x03, - 0xFE, - 0xC1, - 0xB6, - 0xFE, - 0xC1, - 0x3D, - 0x72, - 0x7A, - 0x7A, - 0x8B, - 0x88, - 0x07, - 0xB6, - 0xB6, - 0xFE, - 0xB6, - 0xB6, - 0xB6, - 0xFA, - 0xD3, - 0xD3, - 0x22, - 0xFE, - 0x47, - 0x7A, - 0x8B, - 0x7A, - 0x8F, - 0x6D, - 0x07, - 0x29, - 0x04, - 0x04, - 0x1A, - 0x29, - 0x1A, - 0x1A, - 0x29, - 0x1A, - 0x1A, - 0x1C, - 0x5D, - 0x8B, - 0x7A, - 0x8B, - 0x84, - 0x48, - 0x19, - 0x05, - 0x1D, - 0x1D, - 0x09, - 0x1D, - 0x1D, - 0x1D, - 0x39, - 0x1D, - 0x1D, - 0x1D, - 0x39, - 0x1D, - 0x1D, - 0x19, - 0x31, - 0x6A, - 0x7A, - 0x7A, - 0x8C, - 0x75, - 0x39, - 0x1D, - 0x1F, - 0x1D, - 0x19, - 0x1D, - 0x39, - 0x1D, - 0x06, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xF6, - 0xE6, - 0xE5, - 0xF2, - 0xF6, - 0xF4, - 0x00, - 0x05, - 0xF6, - 0x00, - 0x12, - 0xE2, - 0xF2, - 0xE2, - 0xE2, - 0xF4, - 0xE2, - 0xF4, - 0xE0, - 0xE0, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xC8, - 0x0B, - 0xE2, - 0x00, - 0x22, - 0xC8, - 0xE2, - 0xC8, - 0xDE, - 0xC1, - 0x38, - 0x38, - 0x30, - 0x3A, - 0x5F, - 0xE2, - 0xC8, - 0xC8, - 0xCC, - 0xE0, - 0x50, - 0x3A, - 0x3A, - 0x4D, - 0x86, - 0xE0, - 0xC8, - 0xE2, - 0xC8, - 0x50, - 0x46, - 0x3A, - 0x51, - 0x3D, - 0xC8, - 0xDE, - 0xC8, - 0xC9, - 0xDE, - 0x08, - 0xC8, - 0x00, - 0x4B, - 0xC9, - 0xC8, - 0xCA, - 0x38, - 0x46, - 0x46, - 0x51, - 0x5D, - 0xB8, - 0xE2, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0xC8, - 0x86, - 0x4D, - 0x51, - 0x51, - 0x5D, - 0x5E, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xEC, - 0xC9, - 0xC8, - 0xBE, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x50, - 0x51, - 0x5D, - 0x5D, - 0x6A, - 0x5F, - 0xF2, - 0xCF, - 0xCA, - 0xCA, - 0xCA, - 0xCF, - 0xCF, - 0x4D, - 0x5D, - 0x5D, - 0x72, - 0x6A, - 0x29, - 0xCA, - 0xD3, - 0xEA, - 0xD0, - 0xD0, - 0xD0, - 0xD1, - 0xCE, - 0xFC, - 0x4D, - 0x5D, - 0x72, - 0x6A, - 0x73, - 0x3D, - 0xCD, - 0xCA, - 0xCC, - 0xDD, - 0xCA, - 0xBF, - 0xCB, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x07, - 0xCC, - 0xCF, - 0xBA, - 0xCF, - 0xCE, - 0x5C, - 0x6A, - 0x00, - 0x05, - 0x73, - 0x00, - 0x13, - 0x7A, - 0x7A, - 0x74, - 0x78, - 0xFC, - 0xBA, - 0xCE, - 0xBD, - 0xBD, - 0xCE, - 0xCA, - 0xCE, - 0xCA, - 0xCE, - 0xCA, - 0xCD, - 0xCA, - 0xFA, - 0xFA, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x76, - 0xBD, - 0xBD, - 0xCA, - 0xCE, - 0xBD, - 0xCF, - 0xCE, - 0xC1, - 0x5D, - 0x83, - 0x73, - 0x73, - 0x7A, - 0x68, - 0x5C, - 0x39, - 0x76, - 0x64, - 0x73, - 0x7A, - 0x7A, - 0x7A, - 0x8C, - 0x5C, - 0xFA, - 0xB6, - 0xF5, - 0xB6, - 0xCE, - 0xC1, - 0xC1, - 0xFC, - 0x31, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x77, - 0xFE, - 0xB6, - 0xB6, - 0xC1, - 0xFE, - 0x26, - 0x03, - 0x51, - 0x7A, - 0x7A, - 0x8B, - 0x8C, - 0x48, - 0xFE, - 0x29, - 0xD3, - 0xFA, - 0xFA, - 0xB6, - 0xFE, - 0xB6, - 0xB6, - 0x04, - 0xFE, - 0x31, - 0x6A, - 0x7A, - 0x7A, - 0x8B, - 0x74, - 0x08, - 0x22, - 0x04, - 0x86, - 0x29, - 0x29, - 0x29, - 0x1A, - 0x29, - 0x1A, - 0x1A, - 0x04, - 0x47, - 0x7A, - 0x7A, - 0x8B, - 0x8C, - 0x6D, - 0x1A, - 0x1D, - 0x39, - 0x1D, - 0x67, - 0x1D, - 0x1D, - 0x67, - 0x09, - 0x1D, - 0x39, - 0x1D, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x08, - 0x5D, - 0x8B, - 0x7A, - 0x8B, - 0x84, - 0x1F, - 0x1D, - 0x39, - 0x1D, - 0x39, - 0x1D, - 0x39, - 0x1D, - 0x01, - 0x01, - 0x00, - 0x00, - 0x01, - 0xF4, - 0x05, - 0xF6, - 0x00, - 0x16, - 0xE0, - 0xF4, - 0xE2, - 0xE5, - 0xE6, - 0xF4, - 0xF2, - 0xF4, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xF4, - 0xE0, - 0xE2, - 0xE0, - 0xE0, - 0xF2, - 0x07, - 0xE2, - 0x01, - 0xC8, - 0x0D, - 0xE2, - 0x00, - 0x1A, - 0xB6, - 0x38, - 0x30, - 0x38, - 0x46, - 0x78, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0xE2, - 0xBA, - 0x47, - 0x3A, - 0x3A, - 0x47, - 0xE0, - 0xC8, - 0xC8, - 0xE2, - 0xBA, - 0x47, - 0x3A, - 0x46, - 0x4D, - 0xCA, - 0x05, - 0xC8, - 0x01, - 0xDE, - 0x08, - 0xC8, - 0x00, - 0x08, - 0xB6, - 0x46, - 0x46, - 0x4D, - 0x5B, - 0x77, - 0xCA, - 0xCA, - 0x04, - 0xC8, - 0x00, - 0x08, - 0xE2, - 0x4F, - 0x51, - 0x51, - 0x51, - 0x68, - 0x78, - 0xE2, - 0x06, - 0xC8, - 0x00, - 0x59, - 0xBF, - 0xEC, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0x47, - 0x51, - 0x5D, - 0x5D, - 0x6A, - 0x86, - 0xCD, - 0xBD, - 0xCF, - 0xBD, - 0xBD, - 0xF4, - 0x3D, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x77, - 0xCD, - 0xB9, - 0xCC, - 0xCF, - 0xBD, - 0xD0, - 0xCF, - 0xCF, - 0xEC, - 0x92, - 0x5D, - 0x6A, - 0x6A, - 0x73, - 0x77, - 0xCD, - 0xCA, - 0xCA, - 0xCC, - 0xCB, - 0xBF, - 0xCB, - 0xDC, - 0xC8, - 0xBF, - 0xCA, - 0xC8, - 0xCA, - 0xCA, - 0xBD, - 0xBD, - 0xD0, - 0xD0, - 0xCA, - 0xB6, - 0x78, - 0x5E, - 0x68, - 0x68, - 0x64, - 0x5E, - 0x92, - 0xB6, - 0xCD, - 0xBA, - 0xBD, - 0xBD, - 0xCE, - 0xCA, - 0xBD, - 0xCE, - 0xCC, - 0xCD, - 0xFC, - 0x26, - 0x1C, - 0x1C, - 0x3D, - 0x03, - 0xFE, - 0xCE, - 0xCE, - 0xCE, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xCE, - 0x00, - 0x70, - 0xFC, - 0x47, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0x8D, - 0xF1, - 0xE3, - 0xDF, - 0xDF, - 0xDF, - 0x4C, - 0x6A, - 0x7A, - 0x7A, - 0x84, - 0x74, - 0xFA, - 0xC1, - 0xC0, - 0xB6, - 0xF9, - 0xB6, - 0xFE, - 0x26, - 0x5D, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x3D, - 0xB6, - 0xFE, - 0xB6, - 0xFE, - 0x22, - 0xFC, - 0x50, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x7B, - 0x04, - 0xD3, - 0xFF, - 0xFE, - 0xC0, - 0x29, - 0xFA, - 0xB6, - 0xB6, - 0xFA, - 0x22, - 0x26, - 0x5B, - 0x8B, - 0x7A, - 0x8B, - 0x8C, - 0x79, - 0x04, - 0x29, - 0x29, - 0x29, - 0x08, - 0x86, - 0x29, - 0x1A, - 0x1A, - 0x1A, - 0x29, - 0x31, - 0x73, - 0x7A, - 0x8B, - 0x8C, - 0x88, - 0x19, - 0x19, - 0x1D, - 0x1D, - 0x1D, - 0x2B, - 0x1D, - 0x06, - 0x13, - 0x1D, - 0x2B, - 0x13, - 0x1D, - 0x1D, - 0x1D, - 0x39, - 0x1A, - 0x47, - 0x8B, - 0x7A, - 0x8B, - 0x8C, - 0x6D, - 0x19, - 0x1D, - 0x1D, - 0x1D, - 0x39, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF4, - 0xF6, - 0xE6, - 0xF7, - 0x05, - 0xF6, - 0x00, - 0x08, - 0xE0, - 0xE6, - 0xF7, - 0xE6, - 0xE6, - 0xF4, - 0xF6, - 0xE6, - 0x04, - 0xF6, - 0x00, - 0x0A, - 0xE2, - 0xE2, - 0xCA, - 0xC8, - 0xCC, - 0xF4, - 0xE0, - 0xE2, - 0xE0, - 0xF2, - 0x0B, - 0xE2, - 0x00, - 0x47, - 0xDE, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xE2, - 0xE2, - 0x3D, - 0x3A, - 0x3A, - 0x3A, - 0x46, - 0x92, - 0xE2, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xE2, - 0x31, - 0x3A, - 0x3A, - 0x51, - 0x92, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0x31, - 0x4D, - 0x46, - 0x51, - 0x92, - 0xE2, - 0xC8, - 0xDE, - 0xC8, - 0xC7, - 0xC8, - 0xC8, - 0xDE, - 0xBF, - 0xDE, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x3D, - 0x46, - 0x4D, - 0x51, - 0x5D, - 0x79, - 0xE0, - 0xD0, - 0xCC, - 0xC8, - 0xC8, - 0xC8, - 0xCE, - 0x47, - 0x51, - 0x51, - 0x5D, - 0x68, - 0xBA, - 0xC8, - 0xC8, - 0xC8, - 0xCB, - 0xCB, - 0x00, - 0x07, - 0xC8, - 0x00, - 0x78, - 0x22, - 0x51, - 0x5D, - 0x5D, - 0x6A, - 0x6B, - 0xCD, - 0xCA, - 0xCA, - 0xC8, - 0xCA, - 0xBD, - 0xF4, - 0x47, - 0x5D, - 0x5D, - 0x72, - 0x6A, - 0x50, - 0xCE, - 0xCE, - 0xCA, - 0xB9, - 0xCA, - 0xBA, - 0xE6, - 0xCA, - 0xFA, - 0x47, - 0x5D, - 0x72, - 0x6A, - 0x7A, - 0xA5, - 0xCE, - 0xB9, - 0xCA, - 0xCA, - 0xC8, - 0xC8, - 0xCC, - 0xBF, - 0xC8, - 0xBF, - 0xBD, - 0xBF, - 0xC8, - 0xCA, - 0xC8, - 0xC8, - 0xB9, - 0xCA, - 0xCA, - 0xB9, - 0xCD, - 0xCF, - 0xF5, - 0xF9, - 0xCD, - 0xFA, - 0xCC, - 0xCD, - 0xCE, - 0xCA, - 0xCA, - 0xCE, - 0xBD, - 0xBA, - 0xCE, - 0xCE, - 0x26, - 0x38, - 0x51, - 0x72, - 0x6A, - 0x73, - 0x6A, - 0x72, - 0x5B, - 0x39, - 0xC1, - 0xCE, - 0xD3, - 0xCE, - 0xCF, - 0xD0, - 0xCE, - 0xCF, - 0xB6, - 0x5D, - 0x7A, - 0x73, - 0x7A, - 0x7B, - 0xEB, - 0xD6, - 0xE8, - 0xDB, - 0xEE, - 0xDF, - 0xD6, - 0x7D, - 0x73, - 0x7A, - 0x7A, - 0x84, - 0x3D, - 0xD3, - 0xF9, - 0xBA, - 0x29, - 0xC0, - 0xFA, - 0x38, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x8D, - 0x03, - 0x04, - 0xB6, - 0x00, - 0x1D, - 0xFE, - 0x22, - 0x5D, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x86, - 0x03, - 0xB6, - 0xB6, - 0x05, - 0xD3, - 0x29, - 0xD3, - 0xB6, - 0xFA, - 0x22, - 0x03, - 0x4F, - 0x7A, - 0x7A, - 0x7A, - 0x8F, - 0x6B, - 0x04, - 0x29, - 0x29, - 0x04, - 0x00, - 0x04, - 0x29, - 0x00, - 0x2B, - 0x08, - 0x1A, - 0x1A, - 0x1C, - 0x5D, - 0x8B, - 0x84, - 0x8B, - 0x84, - 0x76, - 0x19, - 0x1D, - 0x1D, - 0x39, - 0x1D, - 0x1D, - 0x39, - 0x1D, - 0x13, - 0x1D, - 0x13, - 0x13, - 0x1D, - 0x1F, - 0x13, - 0x05, - 0x21, - 0x73, - 0x7A, - 0x84, - 0x8F, - 0x7B, - 0x39, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x39, - 0x1D, - 0x39, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0xF2, - 0xE2, - 0xE6, - 0xE0, - 0xF6, - 0xF7, - 0xE5, - 0x00, - 0x05, - 0xF6, - 0x00, - 0x14, - 0xE2, - 0xE6, - 0xE2, - 0xE2, - 0xE6, - 0xE2, - 0xE5, - 0xE0, - 0xE0, - 0xF6, - 0xB9, - 0xB8, - 0xB8, - 0xBC, - 0xE0, - 0xE2, - 0xCC, - 0xE0, - 0xE2, - 0xF6, - 0x09, - 0xE2, - 0x00, - 0x23, - 0xDE, - 0xC8, - 0xE2, - 0xC8, - 0xDE, - 0xE2, - 0xE2, - 0xE2, - 0x38, - 0x30, - 0x38, - 0x3A, - 0x4D, - 0xBA, - 0xE2, - 0xC9, - 0xD0, - 0xE6, - 0xC8, - 0xF7, - 0x3D, - 0x3A, - 0x3A, - 0x46, - 0x47, - 0xE2, - 0xC8, - 0xC8, - 0xE0, - 0xFA, - 0x47, - 0x46, - 0x46, - 0x5B, - 0xCE, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x4C, - 0xE0, - 0xC9, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xCA, - 0x47, - 0x46, - 0x4D, - 0x51, - 0x5D, - 0xBA, - 0xCC, - 0xCF, - 0xCC, - 0xCF, - 0xCC, - 0xE2, - 0x3D, - 0x51, - 0x51, - 0x5D, - 0x5D, - 0x5F, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xDD, - 0xC9, - 0xCB, - 0xCB, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x5C, - 0x5B, - 0x5D, - 0x5D, - 0x6A, - 0x78, - 0xCA, - 0xBD, - 0xBD, - 0xCA, - 0xCA, - 0xCD, - 0x22, - 0x5B, - 0x5D, - 0x5D, - 0x6A, - 0x75, - 0xFA, - 0xCE, - 0xCF, - 0xCF, - 0xE2, - 0xF6, - 0xC1, - 0x0D, - 0x31, - 0x31, - 0x5D, - 0x6A, - 0x6A, - 0x6A, - 0x68, - 0xD3, - 0xCF, - 0xCA, - 0xBD, - 0xCA, - 0x04, - 0xC8, - 0x00, - 0x1D, - 0xBF, - 0xCC, - 0xBF, - 0xC8, - 0xBD, - 0xBF, - 0xB9, - 0xCA, - 0xC8, - 0xCA, - 0xCA, - 0xCA, - 0xB9, - 0xCE, - 0xBA, - 0xCF, - 0xCF, - 0xC0, - 0xCE, - 0xBD, - 0xBD, - 0xBD, - 0xCA, - 0xB9, - 0xCE, - 0xCE, - 0xFC, - 0x38, - 0x5D, - 0x00, - 0x07, - 0x73, - 0x00, - 0x5D, - 0x7A, - 0x7A, - 0x77, - 0xB6, - 0xCD, - 0xBA, - 0xB6, - 0xD0, - 0xCE, - 0xCF, - 0x31, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0xE7, - 0xD6, - 0xDB, - 0xFC, - 0xFE, - 0xC1, - 0xEA, - 0xDF, - 0xC6, - 0x6A, - 0x7A, - 0x84, - 0x8C, - 0x92, - 0xFE, - 0xFE, - 0xD3, - 0xF5, - 0xD3, - 0x26, - 0x6A, - 0x7A, - 0x7A, - 0x8C, - 0x7F, - 0x22, - 0xC1, - 0xFE, - 0xB6, - 0xFE, - 0xB6, - 0x03, - 0x47, - 0x7A, - 0x7A, - 0x8B, - 0x8C, - 0x80, - 0x03, - 0xB6, - 0xFE, - 0xB6, - 0xD3, - 0xF9, - 0x04, - 0xFA, - 0xB6, - 0x22, - 0xFE, - 0x3D, - 0x6A, - 0x8C, - 0x8B, - 0x8C, - 0x7F, - 0x08, - 0x04, - 0x86, - 0x04, - 0x86, - 0x29, - 0x29, - 0x1A, - 0x1A, - 0x81, - 0x1A, - 0x22, - 0x47, - 0x7A, - 0x84, - 0x8B, - 0x8F, - 0x65, - 0x19, - 0x1D, - 0x67, - 0x1D, - 0x13, - 0x00, - 0x05, - 0x1D, - 0x00, - 0x13, - 0x1F, - 0x09, - 0x2B, - 0x1D, - 0x1F, - 0x1F, - 0x1C, - 0x68, - 0x8C, - 0x8B, - 0x8C, - 0x7F, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x00, - 0x05, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xF6, - 0xF6, - 0xF2, - 0xE2, - 0xF6, - 0xE5, - 0xE2, - 0xE5, - 0xF7, - 0xE5, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xF2, - 0xE6, - 0xCE, - 0xAF, - 0xA8, - 0x9D, - 0x9C, - 0x9C, - 0x9D, - 0x9D, - 0xAB, - 0x86, - 0xC8, - 0x05, - 0xE2, - 0x01, - 0xE0, - 0x08, - 0xE2, - 0x00, - 0x27, - 0xDE, - 0xC8, - 0xC8, - 0xE2, - 0xC1, - 0x38, - 0x38, - 0x3A, - 0x3A, - 0x5E, - 0xE2, - 0xC8, - 0xC8, - 0xE5, - 0xCC, - 0xE6, - 0xEC, - 0x21, - 0x3A, - 0x3A, - 0x3A, - 0x51, - 0xBA, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0x3D, - 0x4D, - 0x4D, - 0x51, - 0x4F, - 0xE2, - 0xC8, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xDE, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x3A, - 0xE2, - 0x29, - 0x4D, - 0x4D, - 0x51, - 0x5D, - 0x6B, - 0xE2, - 0xCA, - 0xCC, - 0xC8, - 0xC9, - 0xCF, - 0xCC, - 0x38, - 0x51, - 0x51, - 0x51, - 0x6A, - 0x92, - 0xE2, - 0xC8, - 0xC8, - 0xC7, - 0xDC, - 0xDC, - 0xCB, - 0xCB, - 0xC9, - 0xC9, - 0xC9, - 0xE6, - 0xC1, - 0x4D, - 0x5D, - 0x5D, - 0x68, - 0x68, - 0xB6, - 0xCA, - 0xCF, - 0xBD, - 0xBD, - 0xBD, - 0xF2, - 0x4F, - 0x5D, - 0x68, - 0x68, - 0x73, - 0x79, - 0xFE, - 0xCF, - 0xCF, - 0xFE, - 0x31, - 0x47, - 0x51, - 0x04, - 0x5D, - 0x00, - 0x18, - 0x72, - 0x6A, - 0x7A, - 0x79, - 0xCF, - 0xB9, - 0xCA, - 0xD0, - 0xBD, - 0xBD, - 0xBD, - 0xC8, - 0xC8, - 0xB9, - 0xBF, - 0xC8, - 0xBD, - 0xBF, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0xBD, - 0xBF, - 0x05, - 0xCA, - 0x00, - 0x0F, - 0xBD, - 0xBC, - 0xCA, - 0xD1, - 0xD0, - 0xBD, - 0xD0, - 0xD0, - 0xCE, - 0xFC, - 0x47, - 0x6A, - 0x73, - 0x73, - 0x73, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x1E, - 0x73, - 0x73, - 0x73, - 0x7A, - 0x75, - 0xC1, - 0xCE, - 0xBA, - 0xCE, - 0xCF, - 0xC1, - 0x50, - 0x73, - 0x7A, - 0x7A, - 0x88, - 0xE7, - 0xDA, - 0xFC, - 0xC1, - 0xFA, - 0xFE, - 0xF7, - 0xE3, - 0xC6, - 0x6A, - 0x7A, - 0x7A, - 0x8C, - 0x1A, - 0x04, - 0xC1, - 0x00, - 0x09, - 0x03, - 0x4D, - 0x7A, - 0x84, - 0x8B, - 0x8C, - 0x79, - 0x03, - 0xB6, - 0x00, - 0x04, - 0xC1, - 0x00, - 0x32, - 0x31, - 0x73, - 0x8B, - 0x7A, - 0x8C, - 0x74, - 0xFE, - 0xB6, - 0xFA, - 0xB6, - 0xB6, - 0xB6, - 0xFE, - 0xB6, - 0xB6, - 0xD3, - 0x22, - 0x03, - 0x5B, - 0x7A, - 0x7A, - 0x8C, - 0x8C, - 0x79, - 0x22, - 0x04, - 0x22, - 0x29, - 0x04, - 0x86, - 0x29, - 0x29, - 0x1A, - 0x1A, - 0x29, - 0x31, - 0x73, - 0x8B, - 0x8B, - 0x8C, - 0x88, - 0x05, - 0x1D, - 0x13, - 0x09, - 0x18, - 0x13, - 0x13, - 0x67, - 0x13, - 0x05, - 0x1D, - 0x00, - 0x15, - 0x2B, - 0x13, - 0x1A, - 0x5B, - 0x8B, - 0x7A, - 0x8C, - 0x8C, - 0x34, - 0x39, - 0x1D, - 0x1D, - 0x1D, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xF7, - 0xE2, - 0xF6, - 0xF6, - 0xF6, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xE5, - 0xE6, - 0xE2, - 0x04, - 0xF6, - 0x00, - 0x05, - 0xE2, - 0xE2, - 0xAB, - 0x9C, - 0x9C, - 0x00, - 0x06, - 0x99, - 0x00, - 0x0C, - 0x9C, - 0x99, - 0xA8, - 0xBA, - 0xE2, - 0xE2, - 0xE2, - 0xE0, - 0xE0, - 0xE2, - 0xDE, - 0xE0, - 0x05, - 0xE2, - 0x00, - 0x18, - 0xC8, - 0xDE, - 0xF6, - 0xFD, - 0x1C, - 0x30, - 0x38, - 0x3A, - 0x46, - 0x50, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xEA, - 0xBB, - 0x98, - 0x85, - 0x3C, - 0x46, - 0x5B, - 0xCF, - 0xE2, - 0x04, - 0xC8, - 0x00, - 0x08, - 0x38, - 0x4D, - 0x46, - 0x5B, - 0xD3, - 0xDE, - 0xCC, - 0xCC, - 0x06, - 0xC8, - 0x00, - 0x09, - 0xF6, - 0xFD, - 0x19, - 0x46, - 0x51, - 0x5B, - 0x68, - 0x92, - 0xE2, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x47, - 0xC1, - 0x4D, - 0x51, - 0x5D, - 0x5D, - 0x64, - 0xCE, - 0xCA, - 0xBF, - 0xC8, - 0xC8, - 0xC9, - 0xC9, - 0xC9, - 0xDC, - 0xCB, - 0xC9, - 0xEA, - 0xCB, - 0x50, - 0x5B, - 0x5D, - 0x5D, - 0x6A, - 0x5F, - 0xE2, - 0xB9, - 0xBD, - 0xCA, - 0xCA, - 0xCA, - 0xB6, - 0x51, - 0x68, - 0x68, - 0x72, - 0x6A, - 0xC1, - 0xCE, - 0xCE, - 0x22, - 0x47, - 0x5D, - 0x5D, - 0x6A, - 0x72, - 0x6A, - 0x6A, - 0x5D, - 0x6A, - 0x6A, - 0x6A, - 0x5C, - 0xFC, - 0xCE, - 0xD0, - 0xD1, - 0xBF, - 0xEC, - 0xD1, - 0xCC, - 0xB9, - 0xC8, - 0xC8, - 0xC8, - 0xB9, - 0xC8, - 0xCA, - 0xBF, - 0xCA, - 0xBF, - 0x00, - 0x05, - 0xBD, - 0x00, - 0x90, - 0xCA, - 0xBD, - 0xCA, - 0xCA, - 0xB9, - 0xCC, - 0xBC, - 0xCF, - 0xEA, - 0xD1, - 0xFC, - 0x38, - 0x73, - 0x73, - 0x73, - 0x7A, - 0x6A, - 0x5F, - 0x33, - 0x76, - 0x6D, - 0x6A, - 0x73, - 0x73, - 0x73, - 0x8B, - 0x6B, - 0xCD, - 0xCE, - 0xCE, - 0xBA, - 0xFE, - 0x50, - 0x73, - 0x7A, - 0x7A, - 0x7F, - 0xE3, - 0xD6, - 0xCF, - 0xFC, - 0xC1, - 0xFC, - 0xDD, - 0xDA, - 0xB4, - 0x6A, - 0x7A, - 0x8C, - 0x7F, - 0x86, - 0xB6, - 0xC1, - 0xC1, - 0xC1, - 0x31, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x75, - 0xC1, - 0xC1, - 0xB6, - 0xFA, - 0x29, - 0xD3, - 0x03, - 0x5B, - 0x7A, - 0x7A, - 0x8B, - 0x8C, - 0x39, - 0xFE, - 0x22, - 0xD3, - 0xB6, - 0x04, - 0xB6, - 0xB6, - 0xB6, - 0x04, - 0x22, - 0xFE, - 0x4F, - 0x7A, - 0x8B, - 0x8B, - 0x8F, - 0x7B, - 0x07, - 0x04, - 0x29, - 0x29, - 0x86, - 0x29, - 0x29, - 0x29, - 0x1A, - 0x1A, - 0x29, - 0x1C, - 0x68, - 0x8B, - 0x84, - 0x8C, - 0x84, - 0x39, - 0x39, - 0x1D, - 0x1D, - 0x67, - 0x17, - 0x13, - 0x2B, - 0x09, - 0x2B, - 0x67, - 0x2B, - 0x2B, - 0x1D, - 0x1D, - 0x1F, - 0x1A, - 0x38, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x65, - 0x1D, - 0x13, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x00, - 0x00, - 0x01, - 0xE2, - 0x01, - 0xE2, - 0x04, - 0xF6, - 0x00, - 0x1B, - 0xE2, - 0xF6, - 0xE5, - 0xE6, - 0xE5, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xBD, - 0x9D, - 0x9C, - 0x99, - 0x99, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0x99, - 0x99, - 0x9C, - 0x9C, - 0xAF, - 0xC8, - 0x00, - 0x04, - 0xE2, - 0x01, - 0xE0, - 0x01, - 0xC9, - 0x07, - 0xE2, - 0x00, - 0x30, - 0xF6, - 0xF8, - 0x07, - 0x30, - 0x30, - 0x3A, - 0x51, - 0x86, - 0xE2, - 0xE2, - 0xC8, - 0xC8, - 0xDD, - 0xC2, - 0x44, - 0x59, - 0x98, - 0x82, - 0x4E, - 0x56, - 0xE6, - 0xC8, - 0xC9, - 0xDC, - 0xE0, - 0xE2, - 0xB8, - 0x46, - 0x46, - 0x51, - 0x5C, - 0xF2, - 0xDC, - 0xCC, - 0xC8, - 0xCC, - 0xCC, - 0xC9, - 0xC8, - 0xE2, - 0xF8, - 0xF3, - 0xEA, - 0x1D, - 0x3A, - 0x51, - 0x5D, - 0xCC, - 0x05, - 0xC8, - 0x00, - 0x2C, - 0xE2, - 0x50, - 0x51, - 0x5B, - 0x51, - 0x72, - 0x79, - 0xC8, - 0xCF, - 0xCC, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xC5, - 0xC9, - 0xDD, - 0xF4, - 0x4D, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x86, - 0xCD, - 0xCA, - 0xCA, - 0xCA, - 0xB9, - 0xF2, - 0x50, - 0x5D, - 0x5D, - 0x6A, - 0x73, - 0x6D, - 0xCD, - 0xCD, - 0x26, - 0x4D, - 0x6A, - 0x68, - 0x04, - 0x6A, - 0x01, - 0x72, - 0x04, - 0x6A, - 0x00, - 0xA8, - 0x73, - 0x5F, - 0xCD, - 0xCF, - 0xCF, - 0xCF, - 0xF5, - 0xF5, - 0xBF, - 0xCA, - 0xCA, - 0xBF, - 0xDC, - 0xBF, - 0xCA, - 0xCA, - 0xB9, - 0xCA, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xCC, - 0xB9, - 0xBF, - 0xBD, - 0xCC, - 0xBD, - 0xCA, - 0xB9, - 0xCA, - 0xCF, - 0xD1, - 0xCF, - 0x86, - 0x6A, - 0x73, - 0x73, - 0x7A, - 0x64, - 0xF1, - 0xEB, - 0xE3, - 0xE3, - 0xE3, - 0xE1, - 0x68, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0x86, - 0xC1, - 0xCE, - 0xBA, - 0xFC, - 0x3D, - 0x73, - 0x7A, - 0x7A, - 0x7A, - 0xBB, - 0xDA, - 0xE4, - 0xF8, - 0xFD, - 0xF8, - 0xE3, - 0xD7, - 0x88, - 0x7A, - 0x7A, - 0x8C, - 0x75, - 0xFA, - 0xFE, - 0xC1, - 0xC1, - 0x26, - 0x64, - 0x7A, - 0x7A, - 0x8C, - 0x8C, - 0x3D, - 0xD3, - 0x22, - 0xFE, - 0x05, - 0xFF, - 0xFA, - 0x4F, - 0x7A, - 0x7A, - 0x8B, - 0x8F, - 0x77, - 0x03, - 0xD3, - 0xD3, - 0xB6, - 0xD3, - 0xD3, - 0xB6, - 0xD3, - 0xD3, - 0xB6, - 0xFE, - 0x07, - 0x6A, - 0x8B, - 0x84, - 0x8C, - 0x90, - 0x3D, - 0x22, - 0x29, - 0xFF, - 0xFF, - 0x29, - 0x1A, - 0x29, - 0x1A, - 0x1A, - 0x1A, - 0x07, - 0x4D, - 0x7A, - 0x84, - 0x8B, - 0x8F, - 0x8D, - 0x05, - 0x1D, - 0x39, - 0x1D, - 0x1D, - 0x1F, - 0x67, - 0x13, - 0x13, - 0x67, - 0x13, - 0x14, - 0x13, - 0x1D, - 0x1F, - 0x1D, - 0x31, - 0x73, - 0x8B, - 0x84, - 0x8C, - 0x88, - 0x1F, - 0x2B, - 0x1F, - 0x2B, - 0x1D, - 0x2B, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x00, - 0x00, - 0x09, - 0xF6, - 0x00, - 0x0C, - 0xE2, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xBA, - 0x9D, - 0x99, - 0x99, - 0x99, - 0x9C, - 0x0B, - 0x99, - 0x01, - 0xAF, - 0x04, - 0xE2, - 0x00, - 0x83, - 0xDE, - 0xE0, - 0xE2, - 0xC8, - 0xEE, - 0xDC, - 0xDD, - 0xEE, - 0xF6, - 0xF8, - 0xE7, - 0xEF, - 0xF8, - 0x09, - 0x85, - 0x85, - 0xF2, - 0xEA, - 0xBB, - 0xBB, - 0xFB, - 0xD1, - 0xD8, - 0x34, - 0x3C, - 0x7D, - 0x45, - 0x75, - 0x4C, - 0xEA, - 0xCC, - 0xEC, - 0xE1, - 0xBB, - 0xEA, - 0x17, - 0x3C, - 0x46, - 0x57, - 0xA3, - 0x5A, - 0xF4, - 0xEE, - 0xBB, - 0xE1, - 0xDD, - 0xE0, - 0xF9, - 0xE1, - 0xD9, - 0xEB, - 0xE7, - 0xF3, - 0xF3, - 0x00, - 0x0B, - 0xFB, - 0xC4, - 0xCA, - 0xC8, - 0xBD, - 0xCA, - 0xCA, - 0x47, - 0x51, - 0x51, - 0x5D, - 0x6A, - 0x86, - 0xC8, - 0xCF, - 0xBF, - 0xCC, - 0xCC, - 0xD0, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0x86, - 0x5B, - 0x5D, - 0x5D, - 0x6A, - 0x77, - 0xFA, - 0xCE, - 0xBC, - 0xCA, - 0xCA, - 0xCA, - 0xCE, - 0x5E, - 0x68, - 0x68, - 0x6A, - 0x73, - 0x3D, - 0xCD, - 0xC1, - 0x4D, - 0x5D, - 0x68, - 0x6A, - 0x6A, - 0x4E, - 0x58, - 0x81, - 0x67, - 0x8D, - 0x5D, - 0x6A, - 0x6A, - 0x6A, - 0x73, - 0x78, - 0xCD, - 0xB9, - 0xCE, - 0xD0, - 0xBC, - 0xCA, - 0xB9, - 0xCA, - 0xDC, - 0xDD, - 0xDD, - 0xBD, - 0xBC, - 0x00, - 0x05, - 0xCA, - 0x00, - 0x6F, - 0xBD, - 0xBC, - 0xCA, - 0xCA, - 0xCA, - 0xBF, - 0xCC, - 0xBD, - 0xCA, - 0xCA, - 0xCA, - 0xCF, - 0xCA, - 0x47, - 0x73, - 0x73, - 0x7A, - 0x9E, - 0xEB, - 0xDF, - 0xE4, - 0xF1, - 0xDB, - 0xE7, - 0xDA, - 0xBB, - 0x6A, - 0x73, - 0x7A, - 0x8C, - 0x80, - 0xCD, - 0xB6, - 0xBA, - 0xCE, - 0xB6, - 0x68, - 0x7A, - 0x7A, - 0x84, - 0x7F, - 0xD9, - 0xDA, - 0xDF, - 0xE3, - 0xDA, - 0xC6, - 0x88, - 0x73, - 0x7A, - 0x8C, - 0x84, - 0x81, - 0xB6, - 0xC1, - 0xC1, - 0xFC, - 0x4F, - 0x7A, - 0x84, - 0x84, - 0x8F, - 0x8D, - 0x03, - 0xB6, - 0xB6, - 0xC1, - 0xD3, - 0xD3, - 0x08, - 0x6A, - 0x7A, - 0x8B, - 0x8C, - 0x7F, - 0x22, - 0x07, - 0xB6, - 0x22, - 0xB6, - 0xB6, - 0x04, - 0xB6, - 0x22, - 0xD3, - 0x22, - 0x07, - 0x5E, - 0x8B, - 0x84, - 0x8C, - 0x8F, - 0x80, - 0x07, - 0x29, - 0xFF, - 0x29, - 0x05, - 0xFF, - 0x1D, - 0x1A, - 0x05, - 0x04, - 0x07, - 0x47, - 0x7A, - 0x8B, - 0x8B, - 0x8F, - 0x75, - 0x19, - 0x00, - 0x07, - 0x1D, - 0x00, - 0x1D, - 0x67, - 0x2B, - 0x13, - 0x17, - 0x17, - 0x1F, - 0x2B, - 0x1F, - 0x1A, - 0x68, - 0x8B, - 0x8B, - 0x8B, - 0x84, - 0x24, - 0x1F, - 0x13, - 0x2B, - 0x1F, - 0x2B, - 0x1F, - 0x1D, - 0x13, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF6, - 0x00, - 0x1E, - 0xE2, - 0xE2, - 0xF6, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xF6, - 0xC8, - 0x9D, - 0x99, - 0x9C, - 0x9C, - 0x9C, - 0x99, - 0x9C, - 0x9C, - 0x99, - 0x99, - 0x99, - 0x9C, - 0x9C, - 0x9C, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0xAF, - 0xDE, - 0x05, - 0xE2, - 0x00, - 0xD1, - 0xF4, - 0xC2, - 0xEA, - 0xDB, - 0x82, - 0xF6, - 0xF3, - 0xD8, - 0xE4, - 0xF3, - 0xD7, - 0xD8, - 0xE8, - 0xDB, - 0xC2, - 0xD9, - 0xBB, - 0xD8, - 0xDC, - 0xEE, - 0x45, - 0x8A, - 0x8A, - 0x6C, - 0x51, - 0x82, - 0xEE, - 0xE0, - 0xE1, - 0x82, - 0xE1, - 0xD7, - 0x45, - 0x4E, - 0x5B, - 0x45, - 0x8A, - 0xB2, - 0xE8, - 0xC2, - 0xBB, - 0xC6, - 0xC6, - 0xEC, - 0xD7, - 0xD8, - 0xC6, - 0xC2, - 0xD8, - 0xF3, - 0xE9, - 0xDF, - 0xC6, - 0xC2, - 0xD8, - 0xC8, - 0xBF, - 0xCC, - 0xC8, - 0x26, - 0x51, - 0x5B, - 0x51, - 0x5D, - 0x5E, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xCC, - 0xCC, - 0xCB, - 0xD0, - 0xBC, - 0xCC, - 0xBD, - 0xE2, - 0x4F, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0xA5, - 0xCA, - 0xBC, - 0xF5, - 0xCF, - 0xBC, - 0xCC, - 0x3D, - 0x5D, - 0x5D, - 0x6A, - 0x73, - 0x77, - 0xFC, - 0xCE, - 0x92, - 0x5D, - 0x68, - 0x6A, - 0x6A, - 0x7C, - 0xF3, - 0xEB, - 0xE3, - 0xE7, - 0xEB, - 0xE8, - 0x68, - 0x6A, - 0x6A, - 0x6A, - 0x74, - 0xB6, - 0xCE, - 0xBD, - 0xCA, - 0xB9, - 0xCA, - 0xCA, - 0xBD, - 0xEA, - 0xDD, - 0xCC, - 0xCB, - 0xDD, - 0xBC, - 0xBD, - 0xCC, - 0xBF, - 0xB9, - 0xCA, - 0xBD, - 0xBF, - 0xB9, - 0xCA, - 0xBD, - 0xBD, - 0xBD, - 0xCA, - 0xBD, - 0xBD, - 0xB9, - 0xFC, - 0x5B, - 0x7A, - 0x73, - 0x7A, - 0x62, - 0xDF, - 0xE4, - 0xF9, - 0xC1, - 0xB6, - 0xD0, - 0xE7, - 0xDA, - 0x75, - 0x7A, - 0x73, - 0x8C, - 0x6B, - 0xFC, - 0xBA, - 0xBA, - 0xCF, - 0xFC, - 0x78, - 0x7A, - 0x7A, - 0x7A, - 0x84, - 0x7A, - 0x94, - 0xA3, - 0x98, - 0x94, - 0x73, - 0x7A, - 0x7A, - 0x8B, - 0x8F, - 0x5F, - 0xC1, - 0xC1, - 0xB6, - 0xC1, - 0x1C, - 0x6A, - 0x7A, - 0x7A, - 0x8C, - 0x90, - 0x22, - 0x04, - 0xB6, - 0xC1, - 0xB6, - 0xB6, - 0x03, - 0x4D, - 0x7A, - 0x7A, - 0x8B, - 0x8C, - 0x79, - 0xFE, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x1F, - 0xFA, - 0xB6, - 0xD3, - 0xD3, - 0xD3, - 0x04, - 0x50, - 0x73, - 0x8C, - 0x8C, - 0x8F, - 0x75, - 0x07, - 0x86, - 0x29, - 0x05, - 0x05, - 0xFF, - 0x06, - 0xFF, - 0x1A, - 0x05, - 0x31, - 0x5D, - 0x8C, - 0x8B, - 0x8C, - 0x8F, - 0x7F, - 0x1D, - 0x39, - 0x00, - 0x09, - 0x1D, - 0x00, - 0x16, - 0x1F, - 0x2B, - 0x2B, - 0x1D, - 0x1F, - 0x1A, - 0x4D, - 0x7A, - 0x8B, - 0x8C, - 0x8C, - 0x6D, - 0x1D, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x2B, - 0x1D, - 0x1F, - 0x1F, - 0x1D, - 0x04, - 0x2B, - 0x01, - 0x1F, - 0x00, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x03, - 0xE2, - 0xE2, - 0xF6, - 0x00, - 0x05, - 0xE2, - 0x00, - 0xC7, - 0xF6, - 0xF6, - 0xAB, - 0x99, - 0x99, - 0x9E, - 0x90, - 0x9E, - 0x9E, - 0x90, - 0x9E, - 0x9C, - 0x9C, - 0x99, - 0x90, - 0x90, - 0x9E, - 0x9E, - 0x90, - 0x99, - 0x99, - 0x9D, - 0xBD, - 0xC8, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xE5, - 0xC2, - 0xF5, - 0xDB, - 0xD8, - 0xF7, - 0xEF, - 0xD8, - 0xE4, - 0xF3, - 0xD8, - 0xE7, - 0xF3, - 0xD7, - 0xBB, - 0xF2, - 0xC8, - 0xE0, - 0xDE, - 0x13, - 0x45, - 0x8A, - 0x57, - 0x46, - 0x5E, - 0xD8, - 0xDB, - 0xC8, - 0xBB, - 0xD7, - 0xCE, - 0xCF, - 0x82, - 0x4E, - 0x4E, - 0x82, - 0x68, - 0x29, - 0xC2, - 0xEE, - 0xE2, - 0xC8, - 0xC9, - 0xC4, - 0x82, - 0xF1, - 0xEF, - 0xE4, - 0xC2, - 0xF3, - 0xE7, - 0xC6, - 0xC6, - 0xE1, - 0xD9, - 0xC8, - 0xC8, - 0xBF, - 0xE2, - 0x78, - 0x51, - 0x51, - 0x5D, - 0x6A, - 0x78, - 0xE2, - 0xB9, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xBF, - 0xDC, - 0xD0, - 0xCC, - 0xD0, - 0xCC, - 0xB6, - 0x4D, - 0x5D, - 0x5D, - 0x72, - 0x68, - 0xCF, - 0xBD, - 0xD1, - 0xF5, - 0xBE, - 0xC0, - 0xFA, - 0x47, - 0x5D, - 0x6A, - 0x72, - 0x73, - 0x78, - 0xCD, - 0xFC, - 0x47, - 0x5D, - 0x72, - 0x6A, - 0x75, - 0xEB, - 0xE3, - 0xE8, - 0xEA, - 0xF1, - 0xE7, - 0xE3, - 0xE1, - 0x5D, - 0x6A, - 0x6A, - 0x7A, - 0x79, - 0xCF, - 0xD0, - 0xCF, - 0xCA, - 0xCA, - 0xB9, - 0xCA, - 0xCC, - 0xDC, - 0xCE, - 0xDC, - 0xEA, - 0xDC, - 0xDD, - 0xEA, - 0xCC, - 0xCA, - 0xCA, - 0xCA, - 0xB9, - 0xCA, - 0xCA, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xBD, - 0xBD, - 0xCA, - 0xC1, - 0x5D, - 0x73, - 0x73, - 0x7A, - 0xE8, - 0xDA, - 0xDB, - 0xFE, - 0xF5, - 0xF5, - 0xFE, - 0xF3, - 0xDA, - 0x57, - 0x7A, - 0x7A, - 0x8C, - 0x6D, - 0xCE, - 0xBA, - 0xBA, - 0xB8, - 0xBA, - 0xC1, - 0x6B, - 0x00, - 0x09, - 0x7A, - 0x00, - 0x64, - 0x84, - 0x8C, - 0x8C, - 0x56, - 0xC1, - 0xC1, - 0xB6, - 0xC1, - 0x03, - 0x5E, - 0x7A, - 0x7A, - 0x8C, - 0x93, - 0x48, - 0x04, - 0x29, - 0xD3, - 0xD3, - 0xB6, - 0xFE, - 0x31, - 0x73, - 0x8B, - 0x8B, - 0x8F, - 0x75, - 0x03, - 0x22, - 0xB6, - 0xB6, - 0x29, - 0xF9, - 0xB6, - 0x22, - 0xB6, - 0x04, - 0x07, - 0x22, - 0x68, - 0x8B, - 0x8C, - 0x8C, - 0x84, - 0x1A, - 0x22, - 0x29, - 0x29, - 0x86, - 0x29, - 0x1A, - 0xFF, - 0x29, - 0x07, - 0x5F, - 0x73, - 0x8B, - 0x8C, - 0x8B, - 0x8F, - 0x75, - 0x1D, - 0x39, - 0x1D, - 0x1D, - 0x58, - 0x1D, - 0x1D, - 0x1D, - 0x67, - 0x2B, - 0x1F, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x4F, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x75, - 0x67, - 0x13, - 0x2B, - 0x1F, - 0x1F, - 0x2B, - 0x58, - 0x1F, - 0x1D, - 0x1F, - 0x2B, - 0x13, - 0x13, - 0x1F, - 0x1F, - 0x2B, - 0x00, - 0x00, - 0x00, - 0x08, - 0xFC, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xF6, - 0xE2, - 0xF6, - 0x05, - 0xE2, - 0x00, - 0x51, - 0xBD, - 0x9C, - 0x9C, - 0x99, - 0xB3, - 0x45, - 0xA7, - 0x97, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0xAD, - 0x45, - 0x82, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x99, - 0x99, - 0xAB, - 0xC8, - 0xDE, - 0xDE, - 0xC8, - 0xDE, - 0xC9, - 0xC2, - 0xEA, - 0xF1, - 0xD8, - 0xE5, - 0xF3, - 0xD7, - 0xE4, - 0xF3, - 0xD7, - 0xE7, - 0xF1, - 0xD7, - 0xD8, - 0xD9, - 0xC6, - 0xC6, - 0xEC, - 0xD9, - 0x8A, - 0x7D, - 0x82, - 0x8E, - 0x50, - 0xD8, - 0xDB, - 0xCA, - 0xDC, - 0xC6, - 0xD7, - 0xC6, - 0x45, - 0x5B, - 0x4E, - 0x82, - 0x7B, - 0xDC, - 0x82, - 0xC6, - 0xC6, - 0xC6, - 0xBB, - 0xEE, - 0xD8, - 0xF3, - 0xF3, - 0xE4, - 0xD8, - 0xF3, - 0xEF, - 0xF3, - 0xE7, - 0xCC, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x07, - 0xCE, - 0x4D, - 0x5B, - 0x5B, - 0x5D, - 0x68, - 0xBA, - 0x00, - 0x07, - 0xC8, - 0x00, - 0xA9, - 0xBF, - 0xBD, - 0xC9, - 0xCF, - 0xE0, - 0x50, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x5C, - 0xCD, - 0xCA, - 0xCC, - 0xBD, - 0xD0, - 0xF5, - 0x29, - 0x5B, - 0x68, - 0x6A, - 0x6A, - 0x75, - 0xC1, - 0xCE, - 0xCE, - 0x5E, - 0x68, - 0x6A, - 0x6A, - 0x6F, - 0xE3, - 0xE8, - 0xCD, - 0xCD, - 0xCD, - 0xCC, - 0xEB, - 0xDF, - 0x7B, - 0x6A, - 0x6A, - 0x7A, - 0x6B, - 0xCC, - 0xCE, - 0xBA, - 0xD0, - 0xD0, - 0xF2, - 0xF2, - 0xC1, - 0x22, - 0x3D, - 0x19, - 0x1A, - 0xB6, - 0xEC, - 0xDC, - 0xCC, - 0xCA, - 0xCA, - 0xB9, - 0xBF, - 0xCA, - 0xB9, - 0xCA, - 0xBF, - 0xBF, - 0xBD, - 0xCF, - 0xB9, - 0xCE, - 0xC1, - 0x64, - 0x73, - 0x7A, - 0x7A, - 0x4C, - 0xDF, - 0xE9, - 0xCD, - 0xFA, - 0xFE, - 0xF4, - 0xE7, - 0xDA, - 0x74, - 0x73, - 0x7A, - 0x8C, - 0x80, - 0xFC, - 0xCE, - 0xBA, - 0xCF, - 0xB6, - 0xCF, - 0xC1, - 0x5E, - 0x7F, - 0x8C, - 0x8B, - 0x7A, - 0x8B, - 0x84, - 0x8B, - 0x8C, - 0x8F, - 0x7F, - 0x89, - 0xC1, - 0xB6, - 0xB6, - 0xC1, - 0xC1, - 0x31, - 0x73, - 0x8B, - 0x7A, - 0x8F, - 0x75, - 0xB6, - 0x29, - 0x29, - 0xFA, - 0x29, - 0x04, - 0x26, - 0x5D, - 0x8B, - 0x84, - 0x8B, - 0x84, - 0x3D, - 0xB6, - 0xD3, - 0xB6, - 0x04, - 0xEA, - 0xF9, - 0x22, - 0xF5, - 0xD3, - 0x22, - 0x03, - 0x5F, - 0x7A, - 0x8C, - 0x8C, - 0x8F, - 0x80, - 0x22, - 0x29, - 0x05, - 0x1A, - 0x1A, - 0x29, - 0x29, - 0x07, - 0x31, - 0x5D, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x7C, - 0x06, - 0x00, - 0x06, - 0x1D, - 0x00, - 0x10, - 0x67, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x67, - 0x2B, - 0x1F, - 0x1F, - 0x1D, - 0x39, - 0x6A, - 0x8B, - 0x8C, - 0x8B, - 0x90, - 0x04, - 0x13, - 0x00, - 0x0D, - 0x1F, - 0x2B, - 0x1F, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x1F, - 0x2B, - 0x2B, - 0x1D, - 0x1F, - 0x1D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x23, - 0x1E, - 0x0D, - 0xFC, - 0xF6, - 0xF6, - 0x04, - 0xE2, - 0x00, - 0x64, - 0xDE, - 0xE2, - 0xE2, - 0xAB, - 0x99, - 0x99, - 0x99, - 0x82, - 0x45, - 0xA7, - 0x9C, - 0x82, - 0x45, - 0xA9, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0x99, - 0x9D, - 0xC8, - 0xC8, - 0xC8, - 0xDE, - 0xDE, - 0xCC, - 0xC2, - 0xEA, - 0xDB, - 0xC2, - 0xF1, - 0xF3, - 0xD8, - 0xE4, - 0xF3, - 0xD8, - 0xE7, - 0xEB, - 0xD9, - 0x8A, - 0xEA, - 0xDB, - 0x45, - 0xF5, - 0x82, - 0x57, - 0x3A, - 0x8A, - 0x8A, - 0xCF, - 0x82, - 0xC6, - 0xBC, - 0xCA, - 0xCA, - 0xDC, - 0x12, - 0x45, - 0x4E, - 0x4E, - 0x82, - 0x5C, - 0xF4, - 0xD8, - 0xBB, - 0xC4, - 0xBB, - 0xC2, - 0xDD, - 0xC2, - 0xE7, - 0xF3, - 0xE4, - 0xD8, - 0xF3, - 0xF3, - 0xEB, - 0xE9, - 0xC8, - 0xC8, - 0xC8, - 0xCC, - 0xE2, - 0x3D, - 0x51, - 0x5D, - 0x5D, - 0x5D, - 0x5F, - 0xF6, - 0xCA, - 0xC8, - 0xCA, - 0xBF, - 0xBF, - 0x05, - 0xC8, - 0x00, - 0x5A, - 0xBF, - 0xCA, - 0x4F, - 0x5D, - 0x5D, - 0x5D, - 0x73, - 0x86, - 0xCE, - 0xCF, - 0xB9, - 0xCA, - 0xCA, - 0xCA, - 0x4F, - 0x68, - 0x72, - 0x6A, - 0x73, - 0x8D, - 0xFA, - 0xCE, - 0xFE, - 0x5E, - 0x6A, - 0x6A, - 0x72, - 0xE8, - 0xE3, - 0xC4, - 0xCD, - 0xCE, - 0xCE, - 0xCD, - 0xF3, - 0xDF, - 0x6C, - 0x6A, - 0x6A, - 0x7A, - 0x6B, - 0xFE, - 0xD0, - 0xCF, - 0xFA, - 0xFE, - 0x3D, - 0x4D, - 0x5D, - 0x6A, - 0x6A, - 0x73, - 0x6A, - 0x68, - 0x6B, - 0x86, - 0xCD, - 0xCE, - 0xBD, - 0xCA, - 0xBD, - 0xBF, - 0xBD, - 0xBF, - 0xCA, - 0xB9, - 0xCA, - 0xBD, - 0xCA, - 0xBD, - 0xCD, - 0x5E, - 0x7A, - 0x7A, - 0x7A, - 0x7F, - 0xDF, - 0xDA, - 0xF1, - 0xF7, - 0xF8, - 0xEF, - 0xDA, - 0x85, - 0x73, - 0x7A, - 0x7A, - 0x84, - 0xC0, - 0xC1, - 0x04, - 0xCE, - 0x00, - 0x64, - 0xBA, - 0xBA, - 0xFC, - 0x3D, - 0x6B, - 0x74, - 0x7F, - 0x7A, - 0x84, - 0x90, - 0x75, - 0x79, - 0x26, - 0xC1, - 0xB6, - 0xFE, - 0xC1, - 0x26, - 0x03, - 0x64, - 0x7A, - 0x7A, - 0x8C, - 0x8C, - 0x3D, - 0x26, - 0xD3, - 0xB6, - 0x29, - 0x29, - 0xFE, - 0x47, - 0x7A, - 0x84, - 0x8B, - 0x8F, - 0x8D, - 0x03, - 0x22, - 0xB6, - 0xB6, - 0xD1, - 0xFB, - 0xD3, - 0x22, - 0x29, - 0x03, - 0x07, - 0x5E, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x75, - 0x07, - 0x86, - 0x29, - 0xFF, - 0x1D, - 0x05, - 0x05, - 0x07, - 0x47, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x8F, - 0x75, - 0x13, - 0x01, - 0x13, - 0x2B, - 0x13, - 0x2B, - 0x67, - 0x1D, - 0x1D, - 0x1F, - 0x1D, - 0x58, - 0x1D, - 0x2B, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x19, - 0x5B, - 0x8B, - 0x8B, - 0x8C, - 0x8C, - 0x60, - 0x1F, - 0x14, - 0x13, - 0x2B, - 0x58, - 0x1F, - 0x04, - 0x2B, - 0x00, - 0x07, - 0x1F, - 0x2B, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x31, - 0x23, - 0x23, - 0x23, - 0x1E, - 0x22, - 0xF6, - 0xE2, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xA8, - 0x99, - 0x9C, - 0x99, - 0x82, - 0x45, - 0xA7, - 0x9C, - 0x90, - 0x04, - 0x45, - 0x00, - 0x88, - 0xAD, - 0x9C, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0x99, - 0x99, - 0xBC, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xE6, - 0xC2, - 0xEA, - 0xDB, - 0xC2, - 0xD7, - 0xD7, - 0x45, - 0xEB, - 0xE4, - 0x45, - 0xD8, - 0xD9, - 0xEA, - 0xD8, - 0xBB, - 0xD7, - 0xD9, - 0xC1, - 0x85, - 0x82, - 0x8A, - 0x82, - 0x82, - 0xC4, - 0xD7, - 0xD7, - 0xD8, - 0xEE, - 0xD7, - 0xD9, - 0x8A, - 0x82, - 0x4E, - 0x8A, - 0x45, - 0xD7, - 0xC4, - 0xEE, - 0xD8, - 0xD9, - 0xD8, - 0xEE, - 0xF6, - 0xD9, - 0xC2, - 0xC6, - 0xC2, - 0xC2, - 0xF3, - 0xF3, - 0xEB, - 0xDD, - 0xC8, - 0xC8, - 0xCA, - 0xBF, - 0xC8, - 0x4F, - 0x51, - 0x5B, - 0x5D, - 0x6A, - 0x92, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xBF, - 0xC8, - 0xC8, - 0xBD, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0xCD, - 0x92, - 0x68, - 0x5D, - 0x6A, - 0x77, - 0xCD, - 0xD1, - 0xCF, - 0xCF, - 0xB9, - 0xCA, - 0xC1, - 0x4D, - 0x5D, - 0x6A, - 0x73, - 0x74, - 0x29, - 0xBA, - 0xD0, - 0xF9, - 0x5F, - 0x6A, - 0x6A, - 0x6A, - 0x7B, - 0xE3, - 0xE7, - 0xF2, - 0xCD, - 0xF6, - 0xF7, - 0xEF, - 0xDF, - 0x75, - 0x6A, - 0x6A, - 0x7A, - 0x5F, - 0xCD, - 0xCE, - 0xCE, - 0x07, - 0x4D, - 0x72, - 0x07, - 0x73, - 0x00, - 0x41, - 0x7A, - 0x73, - 0x5F, - 0xCD, - 0xCE, - 0xBD, - 0xCC, - 0xBD, - 0xCF, - 0xCA, - 0xBF, - 0xB9, - 0xCA, - 0xB9, - 0xBD, - 0xCE, - 0xB9, - 0x3D, - 0x7F, - 0x7A, - 0x7F, - 0x7A, - 0x90, - 0xD9, - 0xDF, - 0xE3, - 0xDF, - 0xDA, - 0x85, - 0x73, - 0x7F, - 0x7A, - 0x8F, - 0x65, - 0xDC, - 0xBA, - 0xBA, - 0xBA, - 0xBD, - 0xCE, - 0xBA, - 0xCE, - 0xCE, - 0xBA, - 0xFC, - 0xC1, - 0x86, - 0x86, - 0x3D, - 0xC0, - 0x04, - 0xC1, - 0xB6, - 0xFE, - 0xC1, - 0xC1, - 0xB6, - 0xFC, - 0x4F, - 0x7A, - 0x8B, - 0x8B, - 0x8F, - 0x7C, - 0x03, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x4C, - 0xFA, - 0x3D, - 0x6A, - 0x8B, - 0x8B, - 0x8F, - 0x88, - 0x22, - 0x29, - 0xD3, - 0xB6, - 0xB6, - 0xD3, - 0xD3, - 0x22, - 0xB6, - 0x03, - 0x50, - 0x6A, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x74, - 0x3D, - 0x04, - 0x29, - 0x1A, - 0x1D, - 0x29, - 0x04, - 0x31, - 0x68, - 0x8B, - 0x8B, - 0x8C, - 0x8F, - 0x7F, - 0x60, - 0x1A, - 0x67, - 0x13, - 0x67, - 0x13, - 0x1D, - 0x2B, - 0x14, - 0x17, - 0x2B, - 0x2B, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x2B, - 0x2B, - 0x2B, - 0x1D, - 0x47, - 0x7A, - 0x8B, - 0x8C, - 0x93, - 0x65, - 0x1D, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x06, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x23, - 0x38, - 0x23, - 0x23, - 0x50, - 0x23, - 0x1C, - 0xE0, - 0xE6, - 0xE2, - 0xDE, - 0xE2, - 0xF6, - 0x9C, - 0x99, - 0x99, - 0x9C, - 0xAE, - 0x45, - 0xA7, - 0x9C, - 0x9C, - 0xAD, - 0x45, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0x99, - 0x99, - 0xAF, - 0xC8, - 0xE2, - 0xE2, - 0xC8, - 0xDE, - 0xEA, - 0xC9, - 0xCB, - 0xEA, - 0xEF, - 0xE4, - 0xEF, - 0xF3, - 0xE9, - 0xC2, - 0xC6, - 0xE9, - 0xF6, - 0xDD, - 0xE1, - 0xEE, - 0xE2, - 0x86, - 0x3A, - 0x57, - 0x85, - 0x68, - 0x53, - 0xDD, - 0xEA, - 0xC7, - 0xDB, - 0xDD, - 0xEA, - 0xE1, - 0x7D, - 0x4E, - 0x5B, - 0x98, - 0x45, - 0xE8, - 0xDD, - 0xC8, - 0xEA, - 0xE1, - 0xC4, - 0xDE, - 0xF6, - 0xF3, - 0xE7, - 0xE4, - 0xDA, - 0xD8, - 0xF3, - 0xEF, - 0xE7, - 0x05, - 0xC8, - 0x00, - 0x2A, - 0xC1, - 0x4D, - 0x5B, - 0x5D, - 0x5D, - 0x64, - 0xCA, - 0xCA, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xBF, - 0xC8, - 0xBF, - 0xC8, - 0xC3, - 0xBD, - 0xBF, - 0xC8, - 0xBA, - 0x5B, - 0x68, - 0x6A, - 0x68, - 0xC1, - 0xD0, - 0xD0, - 0xCF, - 0xCA, - 0xCA, - 0x92, - 0x5D, - 0x6A, - 0x6A, - 0x73, - 0x6B, - 0xF2, - 0xBA, - 0xD1, - 0xD1, - 0x92, - 0x04, - 0x6A, - 0x00, - 0x2D, - 0xBB, - 0xE3, - 0xEF, - 0xF8, - 0xF7, - 0xEF, - 0xE3, - 0x69, - 0x5D, - 0x6A, - 0x73, - 0x7A, - 0x92, - 0xCE, - 0xCD, - 0x22, - 0x5B, - 0x73, - 0x6A, - 0x73, - 0x73, - 0x7A, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0x73, - 0x73, - 0x7A, - 0x5E, - 0xCE, - 0xBA, - 0xBD, - 0xBA, - 0xBC, - 0xBD, - 0xBD, - 0xCF, - 0xBD, - 0xB9, - 0xCA, - 0xBD, - 0xCE, - 0xC1, - 0x6B, - 0x00, - 0x04, - 0x7A, - 0x00, - 0x61, - 0x7F, - 0x88, - 0x8E, - 0x8E, - 0x7F, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x74, - 0xF5, - 0xF9, - 0xBA, - 0xCF, - 0xBA, - 0xCC, - 0xD1, - 0xD0, - 0xBA, - 0xBA, - 0xCE, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xF9, - 0x29, - 0xB6, - 0xB6, - 0xF9, - 0xB6, - 0xC1, - 0xB6, - 0xC1, - 0x22, - 0x6A, - 0x8B, - 0x84, - 0x8C, - 0x7F, - 0x22, - 0xB6, - 0xB6, - 0xB6, - 0x22, - 0xB6, - 0x03, - 0x5B, - 0x8B, - 0x84, - 0x8C, - 0x8F, - 0x76, - 0x04, - 0x29, - 0x29, - 0xD3, - 0x22, - 0x22, - 0xB6, - 0x03, - 0x1C, - 0x5B, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x77, - 0x29, - 0x05, - 0x86, - 0x1A, - 0x29, - 0x22, - 0x07, - 0x47, - 0x7A, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0x1D, - 0x1A, - 0x39, - 0x1D, - 0x1D, - 0x1D, - 0x5A, - 0x13, - 0x5A, - 0x4A, - 0x2B, - 0x13, - 0x4A, - 0x13, - 0x00, - 0x05, - 0x2B, - 0x00, - 0x0B, - 0x1D, - 0x50, - 0x73, - 0x8C, - 0x8B, - 0x8F, - 0x88, - 0x1F, - 0x2B, - 0x2B, - 0x1F, - 0x00, - 0x0C, - 0x2B, - 0x00, - 0x03, - 0x24, - 0x1D, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x22, - 0x31, - 0x21, - 0x38, - 0x23, - 0x23, - 0x38, - 0x31, - 0xE0, - 0xE5, - 0xE0, - 0xF4, - 0xDE, - 0x99, - 0x99, - 0x9C, - 0x99, - 0x82, - 0x45, - 0xA9, - 0x9C, - 0x9C, - 0x9E, - 0x45, - 0x45, - 0xA9, - 0x9C, - 0x9C, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x99, - 0x99, - 0x9C, - 0xAB, - 0xC8, - 0xC8, - 0xE2, - 0xC8, - 0xC9, - 0xBB, - 0xEA, - 0xF6, - 0xF8, - 0x00, - 0x05, - 0xF3, - 0x00, - 0x2A, - 0xD7, - 0xE7, - 0xDD, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x50, - 0x3A, - 0x4D, - 0x4D, - 0x5B, - 0x81, - 0xE0, - 0xBF, - 0xE0, - 0xC8, - 0xE2, - 0xF8, - 0xF8, - 0x1F, - 0x4D, - 0x46, - 0x68, - 0x82, - 0xE5, - 0xBF, - 0xC9, - 0xCB, - 0xDE, - 0xC8, - 0xC8, - 0xE2, - 0xEF, - 0xF3, - 0xF3, - 0xE4, - 0xC2, - 0xF3, - 0xEB, - 0xE9, - 0x05, - 0xC8, - 0x00, - 0x09, - 0x92, - 0x51, - 0x5B, - 0x5D, - 0x6A, - 0x79, - 0xC8, - 0xBD, - 0xBF, - 0x00, - 0x07, - 0xC8, - 0x00, - 0x1B, - 0xBF, - 0xBD, - 0xCA, - 0xBF, - 0xCA, - 0x4F, - 0x6A, - 0x68, - 0x6A, - 0x92, - 0xCD, - 0xCA, - 0xB9, - 0xCC, - 0xCD, - 0x47, - 0x68, - 0x68, - 0x72, - 0x73, - 0x86, - 0xCE, - 0xBA, - 0xBD, - 0xBD, - 0xF9, - 0x77, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x30, - 0x85, - 0xE4, - 0xE7, - 0xE7, - 0xE4, - 0x87, - 0x68, - 0x6A, - 0x6A, - 0x7A, - 0x75, - 0xC1, - 0xBA, - 0xFC, - 0x5E, - 0x6A, - 0x6A, - 0x73, - 0x7A, - 0x64, - 0x89, - 0xFF, - 0x67, - 0x6D, - 0x6A, - 0x73, - 0x73, - 0x73, - 0x8C, - 0x78, - 0xCD, - 0xB9, - 0xBF, - 0xBD, - 0xBD, - 0xBD, - 0xCF, - 0xBD, - 0xCF, - 0xBA, - 0xCE, - 0xCE, - 0xCE, - 0xC1, - 0x64, - 0x7A, - 0x7A, - 0x84, - 0x06, - 0x7A, - 0x00, - 0x50, - 0x84, - 0x8C, - 0x74, - 0xB6, - 0xCE, - 0xBA, - 0xBD, - 0xBA, - 0xCE, - 0xD1, - 0xC0, - 0xD1, - 0xBA, - 0xCE, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xC1, - 0xB6, - 0xD3, - 0xB6, - 0xD3, - 0x29, - 0xD3, - 0xD3, - 0x29, - 0x03, - 0x5F, - 0x8B, - 0x84, - 0x8B, - 0x8F, - 0x79, - 0xFE, - 0xB6, - 0xD3, - 0xB6, - 0xD3, - 0xFE, - 0x50, - 0x7A, - 0x84, - 0x8B, - 0x8F, - 0x77, - 0xFE, - 0x05, - 0x29, - 0xD3, - 0x22, - 0x22, - 0xFE, - 0x07, - 0x47, - 0x73, - 0x8B, - 0x8C, - 0x8F, - 0x8F, - 0x74, - 0x67, - 0x22, - 0x29, - 0x1A, - 0x29, - 0x29, - 0x07, - 0x1C, - 0x5D, - 0x8C, - 0x8B, - 0x8C, - 0x8F, - 0x84, - 0x52, - 0x1A, - 0x1D, - 0x1D, - 0x67, - 0x05, - 0x1D, - 0x00, - 0x12, - 0x5A, - 0x14, - 0x2B, - 0x4A, - 0x14, - 0x2B, - 0x13, - 0x14, - 0x1F, - 0x2B, - 0x2B, - 0x19, - 0x5D, - 0x8C, - 0x8B, - 0x8F, - 0x91, - 0x48, - 0x06, - 0x2B, - 0x01, - 0x1F, - 0x05, - 0x2B, - 0x00, - 0x07, - 0x1F, - 0x24, - 0x24, - 0x1F, - 0x1A, - 0x1C, - 0x47, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0xF6, - 0xF6, - 0xCA, - 0x22, - 0x50, - 0x38, - 0x23, - 0x23, - 0x23, - 0xFE, - 0xDE, - 0xE2, - 0xE6, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0xB3, - 0x45, - 0xA7, - 0x9C, - 0x9C, - 0x9C, - 0xA9, - 0x45, - 0x82, - 0x99, - 0x9C, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0x99, - 0x99, - 0xAB, - 0xC8, - 0xE2, - 0xC8, - 0xE2, - 0xC9, - 0xC6, - 0xF1, - 0xFD, - 0x06, - 0xF3, - 0x00, - 0x3B, - 0xEF, - 0xE9, - 0xE5, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xF2, - 0x47, - 0x4D, - 0x46, - 0x51, - 0x5B, - 0xCF, - 0xD0, - 0xE0, - 0xDC, - 0xCC, - 0xF8, - 0xEF, - 0xF3, - 0xF3, - 0xF3, - 0xFB, - 0x5F, - 0xD3, - 0xC8, - 0xC7, - 0xF0, - 0xC7, - 0xC9, - 0xDE, - 0xC8, - 0xF3, - 0xEF, - 0xF3, - 0xF3, - 0xE4, - 0xD7, - 0xF3, - 0xE7, - 0xDD, - 0xC8, - 0xC8, - 0xCA, - 0xCA, - 0xC8, - 0x47, - 0x5D, - 0x5D, - 0x5D, - 0x6A, - 0xB7, - 0xCA, - 0xCC, - 0xBF, - 0xC8, - 0xBF, - 0xBF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x32, - 0xBF, - 0xC3, - 0xBD, - 0xBD, - 0xB8, - 0x5D, - 0x5D, - 0x6A, - 0x64, - 0xFC, - 0xB9, - 0xB9, - 0xCE, - 0xCE, - 0x5E, - 0x72, - 0x6A, - 0x73, - 0x77, - 0xCD, - 0xB6, - 0xD1, - 0xBD, - 0xB9, - 0xCA, - 0x86, - 0x68, - 0x73, - 0x6A, - 0x6A, - 0x6A, - 0x74, - 0x88, - 0x88, - 0x75, - 0x6A, - 0x6A, - 0x6A, - 0x73, - 0x7F, - 0x86, - 0xCE, - 0xCE, - 0x50, - 0x6A, - 0x73, - 0x73, - 0x73, - 0x6E, - 0xEF, - 0x04, - 0xE3, - 0x00, - 0x40, - 0xE4, - 0x68, - 0x73, - 0x73, - 0x7A, - 0x74, - 0xB6, - 0xCF, - 0xBA, - 0xB9, - 0xB9, - 0xB9, - 0xCA, - 0xBD, - 0xBD, - 0xCF, - 0xBD, - 0xCE, - 0xCE, - 0xC1, - 0x22, - 0x6A, - 0x7A, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x7A, - 0x8C, - 0x8C, - 0x84, - 0x8D, - 0xC1, - 0xCE, - 0xBA, - 0xBA, - 0xCE, - 0xCE, - 0xBD, - 0xD0, - 0xD1, - 0xCE, - 0xBD, - 0xCE, - 0xBA, - 0xBA, - 0xCF, - 0xBA, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xD3, - 0xB8, - 0xD3, - 0x29, - 0xFE, - 0x31, - 0x73, - 0x7A, - 0x8B, - 0x8F, - 0x75, - 0x03, - 0x05, - 0xB6, - 0x00, - 0x53, - 0x22, - 0x68, - 0x8C, - 0x8B, - 0x8F, - 0x7F, - 0x3D, - 0x22, - 0xD3, - 0xD3, - 0x22, - 0xD3, - 0x26, - 0x31, - 0x6A, - 0x8C, - 0x8B, - 0x8C, - 0x8F, - 0x7F, - 0x80, - 0x22, - 0x22, - 0x1A, - 0x86, - 0x29, - 0x04, - 0x26, - 0x47, - 0x7A, - 0x8F, - 0x8B, - 0x8F, - 0x8F, - 0x7B, - 0x39, - 0xFF, - 0x1D, - 0x1D, - 0x5A, - 0x2B, - 0x67, - 0x13, - 0x2B, - 0x1D, - 0x2B, - 0x1D, - 0x1D, - 0x1F, - 0x5A, - 0x2B, - 0x14, - 0x14, - 0x5A, - 0x2B, - 0x2B, - 0x19, - 0x47, - 0x8C, - 0x8B, - 0x8C, - 0x8F, - 0x53, - 0x1F, - 0x2B, - 0x24, - 0x2B, - 0x2B, - 0x48, - 0x1F, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x24, - 0x2B, - 0x24, - 0x2B, - 0x1A, - 0x3D, - 0x4D, - 0x7A, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xF6, - 0xE2, - 0xE2, - 0xE0, - 0xCF, - 0x50, - 0x38, - 0x23, - 0x38, - 0x23, - 0xFE, - 0xE2, - 0xF4, - 0x00, - 0x04, - 0x99, - 0x00, - 0x1B, - 0x82, - 0x45, - 0xA7, - 0x9C, - 0x9E, - 0xA9, - 0x9E, - 0x45, - 0x45, - 0x97, - 0x9C, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0x9C, - 0x99, - 0xAF, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0xE5, - 0xDD, - 0xCB, - 0xE5, - 0x00, - 0x07, - 0xF3, - 0x00, - 0x13, - 0xE9, - 0xF4, - 0xE2, - 0xDE, - 0xC9, - 0xE2, - 0x86, - 0x3A, - 0x46, - 0x3C, - 0x51, - 0x5C, - 0xE0, - 0xCC, - 0xC9, - 0xEC, - 0xF4, - 0xF0, - 0xEF, - 0x00, - 0x05, - 0xF3, - 0x00, - 0x1E, - 0xEF, - 0xC9, - 0xC8, - 0xCB, - 0xCB, - 0xC7, - 0xC8, - 0xBF, - 0xF3, - 0xEF, - 0xEF, - 0xEF, - 0xF3, - 0xEF, - 0xEF, - 0xE9, - 0xDE, - 0xC9, - 0xC8, - 0xBF, - 0xC9, - 0xB6, - 0x51, - 0x5B, - 0x5D, - 0x6A, - 0x77, - 0xCD, - 0xCA, - 0xBD, - 0x04, - 0xBF, - 0x00, - 0x22, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xBF, - 0xCD, - 0x5F, - 0x6A, - 0x68, - 0x73, - 0x92, - 0xCD, - 0xCC, - 0xBD, - 0xCD, - 0x5F, - 0x6A, - 0x72, - 0x7A, - 0x80, - 0xCD, - 0xD1, - 0xCF, - 0xD0, - 0xCA, - 0xB9, - 0xCD, - 0x86, - 0x68, - 0x73, - 0x07, - 0x6A, - 0x00, - 0xAA, - 0x73, - 0x7A, - 0x7F, - 0x92, - 0xCD, - 0xCE, - 0xCD, - 0x5F, - 0x73, - 0x73, - 0x73, - 0x88, - 0xE7, - 0xDF, - 0xDB, - 0xDD, - 0xC0, - 0xE7, - 0xDF, - 0xBB, - 0x6A, - 0x73, - 0x7A, - 0x84, - 0x92, - 0xCF, - 0xD1, - 0xBD, - 0xCC, - 0xBD, - 0xBD, - 0xB9, - 0xCA, - 0xB9, - 0xBD, - 0xCE, - 0xBA, - 0xFE, - 0x4F, - 0x73, - 0x7A, - 0x84, - 0x8C, - 0x7F, - 0x7F, - 0x9E, - 0x64, - 0x80, - 0x86, - 0xFC, - 0xC1, - 0xBD, - 0xBA, - 0xBC, - 0xBA, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xCF, - 0xBA, - 0xBA, - 0xCF, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xC1, - 0xC1, - 0x04, - 0x26, - 0x5B, - 0x7A, - 0x8B, - 0x8C, - 0x8C, - 0x92, - 0x26, - 0xB6, - 0xB6, - 0xB6, - 0x22, - 0x03, - 0x5F, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x80, - 0xFE, - 0x22, - 0x22, - 0xB6, - 0x04, - 0x26, - 0x50, - 0x7A, - 0x8C, - 0x8B, - 0x8F, - 0x8C, - 0x6B, - 0x3D, - 0x04, - 0x08, - 0x86, - 0x29, - 0x29, - 0x26, - 0x1C, - 0x68, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x60, - 0x1A, - 0x81, - 0x19, - 0x81, - 0x1D, - 0x2B, - 0x1D, - 0x18, - 0x67, - 0x13, - 0x5A, - 0x13, - 0x2B, - 0x2B, - 0x2B, - 0x1F, - 0x2B, - 0x5A, - 0x2C, - 0x1F, - 0x24, - 0x1D, - 0x4F, - 0x7A, - 0x8C, - 0x8C, - 0x8F, - 0x75, - 0x1F, - 0x48, - 0x24, - 0x2B, - 0x2C, - 0x24, - 0x2B, - 0x2B, - 0x24, - 0x2B, - 0x2C, - 0x2C, - 0x2B, - 0x24, - 0x39, - 0x3D, - 0x4D, - 0x7A, - 0x8C, - 0x8C, - 0x8C, - 0x00, - 0x00, - 0x00, - 0xE7, - 0xE2, - 0xE2, - 0xE2, - 0xF2, - 0xE0, - 0xF2, - 0x50, - 0x38, - 0x21, - 0x38, - 0x38, - 0x26, - 0xF6, - 0x9D, - 0x99, - 0x99, - 0x9C, - 0x82, - 0x45, - 0xA7, - 0x9C, - 0xA7, - 0x45, - 0x90, - 0xA3, - 0x45, - 0x45, - 0x9C, - 0x9E, - 0x45, - 0x45, - 0x9E, - 0x9C, - 0x99, - 0x99, - 0xAF, - 0xE2, - 0xC8, - 0xE2, - 0xE2, - 0xDC, - 0xD7, - 0xEA, - 0xCB, - 0xDF, - 0xC6, - 0xEF, - 0xEF, - 0xD7, - 0xEF, - 0xE4, - 0xC2, - 0xD7, - 0xD9, - 0xD9, - 0xEA, - 0xD7, - 0x34, - 0x46, - 0x8A, - 0x85, - 0x8E, - 0x8A, - 0xF6, - 0xD9, - 0xEE, - 0xE0, - 0xDB, - 0xD7, - 0xF3, - 0xF3, - 0xD7, - 0xE7, - 0xF3, - 0xEF, - 0xE9, - 0xC7, - 0xE2, - 0xC8, - 0xC9, - 0xC7, - 0xC8, - 0xC7, - 0xC7, - 0xF1, - 0xEB, - 0xE7, - 0xEB, - 0xEF, - 0xEB, - 0xE9, - 0xCD, - 0xC8, - 0xCA, - 0xBD, - 0xCA, - 0x50, - 0x5B, - 0x5D, - 0x5D, - 0x6A, - 0xA5, - 0xCD, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xC9, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xC8, - 0x86, - 0x68, - 0x68, - 0x6A, - 0x64, - 0xDC, - 0xDD, - 0xBE, - 0xCA, - 0x3D, - 0x6A, - 0x6A, - 0x73, - 0x6B, - 0xCD, - 0xCF, - 0xCF, - 0xCF, - 0xD3, - 0xD0, - 0xBD, - 0xCA, - 0xBA, - 0x5E, - 0x74, - 0x7A, - 0x73, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0x7A, - 0x77, - 0x86, - 0xCE, - 0xBA, - 0xB9, - 0xFC, - 0x5E, - 0x73, - 0x73, - 0x7A, - 0x55, - 0xE3, - 0xEE, - 0xCD, - 0xCE, - 0xB9, - 0xCE, - 0xEB, - 0xDA, - 0x75, - 0x73, - 0x7A, - 0x8B, - 0x8D, - 0xF9, - 0xD0, - 0xBE, - 0xC0, - 0xBE, - 0xBD, - 0xCC, - 0xBD, - 0xCA, - 0xB9, - 0xBA, - 0xCE, - 0x22, - 0x68, - 0x7A, - 0x7A, - 0x8C, - 0x7F, - 0x86, - 0x86, - 0xC1, - 0xFC, - 0xFC, - 0xCE, - 0xBA, - 0xCE, - 0xBA, - 0xBA, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xBA, - 0xBD, - 0xBD, - 0xBD, - 0xCE, - 0xBA, - 0xBA, - 0xCE, - 0xB8, - 0xB8, - 0xCF, - 0xB6, - 0xB6, - 0xC1, - 0xFE, - 0xC1, - 0xFC, - 0x4F, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x6D, - 0xC1, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x27, - 0xFE, - 0x3D, - 0x73, - 0x8B, - 0x8C, - 0x8F, - 0x88, - 0x26, - 0xD3, - 0x29, - 0xD3, - 0xD3, - 0x22, - 0x22, - 0x68, - 0x8B, - 0x8C, - 0x8C, - 0x91, - 0x89, - 0x22, - 0x04, - 0x86, - 0x29, - 0x29, - 0x04, - 0x07, - 0x47, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x8F, - 0x7B, - 0x1D, - 0x81, - 0x1D, - 0x39, - 0x81, - 0x00, - 0x04, - 0x1D, - 0x00, - 0x2A, - 0x2B, - 0x2B, - 0x5A, - 0x2B, - 0x13, - 0x2B, - 0x5A, - 0x2B, - 0x2B, - 0x2C, - 0x2B, - 0x1F, - 0x2B, - 0x2B, - 0x19, - 0x6A, - 0x8F, - 0x8C, - 0x8F, - 0x90, - 0x24, - 0x2B, - 0x2B, - 0x2B, - 0x24, - 0x24, - 0x24, - 0x2B, - 0x24, - 0x2B, - 0x2C, - 0x15, - 0x14, - 0x24, - 0x1D, - 0x50, - 0x6A, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x4F, - 0xE2, - 0xF6, - 0xE2, - 0xE2, - 0xF2, - 0xE2, - 0xF4, - 0x31, - 0x38, - 0x38, - 0x23, - 0x38, - 0x22, - 0xA8, - 0x9C, - 0x99, - 0x9C, - 0xAE, - 0x45, - 0x82, - 0xA9, - 0x45, - 0x45, - 0x97, - 0x9C, - 0x45, - 0x45, - 0xAE, - 0xA9, - 0x45, - 0x45, - 0x9E, - 0x99, - 0x99, - 0x9C, - 0xBE, - 0xDE, - 0xE6, - 0xC8, - 0xC8, - 0xE5, - 0xC2, - 0xFB, - 0xE5, - 0xBB, - 0xD7, - 0xF1, - 0xEB, - 0xC2, - 0xEB, - 0xD8, - 0xBB, - 0xE5, - 0xBB, - 0x82, - 0xDE, - 0xBB, - 0x8A, - 0x85, - 0x45, - 0x5B, - 0x98, - 0xD8, - 0xE6, - 0xD8, - 0xE1, - 0xE2, - 0xEE, - 0xC2, - 0xF3, - 0xF3, - 0xC2, - 0xE4, - 0xF3, - 0xEF, - 0xF1, - 0xC8, - 0xC9, - 0xC9, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x15, - 0xC7, - 0xDC, - 0xF1, - 0xE7, - 0xE3, - 0xDC, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xCA, - 0x5E, - 0x5B, - 0x5D, - 0x5D, - 0x74, - 0xBA, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0x00, - 0x05, - 0xC8, - 0x00, - 0xA2, - 0xBF, - 0xBD, - 0xC9, - 0xC8, - 0xBF, - 0xBF, - 0xC3, - 0xB9, - 0xC8, - 0x5E, - 0x6A, - 0x6A, - 0x6A, - 0x67, - 0xDC, - 0xCF, - 0xBC, - 0xEC, - 0x5E, - 0x6A, - 0x6A, - 0x6A, - 0xB6, - 0xCD, - 0xB9, - 0xB9, - 0xCC, - 0xBC, - 0xBC, - 0xD1, - 0xCF, - 0xCA, - 0x86, - 0x78, - 0x6B, - 0x75, - 0x68, - 0x77, - 0x80, - 0x86, - 0xCE, - 0xCE, - 0xBC, - 0xBA, - 0xCF, - 0xC1, - 0x5E, - 0x73, - 0x73, - 0x7A, - 0xB2, - 0xDF, - 0xEA, - 0xCD, - 0xBA, - 0xCE, - 0xFC, - 0xEF, - 0xDA, - 0x75, - 0x7A, - 0x73, - 0x8C, - 0x80, - 0xCF, - 0xB9, - 0xD1, - 0xD1, - 0xBE, - 0xD1, - 0xD1, - 0xBE, - 0xB8, - 0xBC, - 0xCE, - 0xFC, - 0x5C, - 0x7A, - 0x7A, - 0x7A, - 0x8C, - 0x80, - 0xFE, - 0xB6, - 0xBA, - 0xD0, - 0xBA, - 0xBA, - 0xCE, - 0xBD, - 0xBD, - 0xCF, - 0xCF, - 0xBA, - 0xD0, - 0xBA, - 0xCF, - 0xCF, - 0xBA, - 0xCE, - 0xBD, - 0xBA, - 0xBA, - 0xBA, - 0xB6, - 0xBA, - 0xBA, - 0xB6, - 0xB6, - 0xB6, - 0xC1, - 0x03, - 0x4F, - 0x73, - 0x8B, - 0x8C, - 0x8F, - 0x7F, - 0x22, - 0xB6, - 0xB6, - 0xB6, - 0xD3, - 0xD3, - 0x26, - 0x5B, - 0x8B, - 0x8C, - 0x8C, - 0x8C, - 0x92, - 0x22, - 0x29, - 0xD3, - 0xD3, - 0xD3, - 0x07, - 0x5F, - 0x8B, - 0x8C, - 0x8C, - 0x93, - 0x80, - 0x07, - 0x29, - 0x22, - 0x29, - 0x1A, - 0x29, - 0x1C, - 0x5D, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x80, - 0x1A, - 0x19, - 0x81, - 0x1D, - 0x81, - 0x05, - 0x1D, - 0x00, - 0x2A, - 0x58, - 0x2B, - 0x2B, - 0x13, - 0x2B, - 0x13, - 0x2C, - 0x2B, - 0x2C, - 0x2C, - 0x2B, - 0x2B, - 0x2B, - 0x19, - 0x5B, - 0x8C, - 0x8B, - 0x8F, - 0x95, - 0x40, - 0x2B, - 0x24, - 0x24, - 0x48, - 0x24, - 0x2B, - 0x2B, - 0x2B, - 0x24, - 0x48, - 0x2D, - 0x2D, - 0x48, - 0x2B, - 0x19, - 0x6A, - 0x8F, - 0x8B, - 0x8F, - 0x84, - 0x52, - 0x1F, - 0x00, - 0x00, - 0x01, - 0xE0, - 0x01, - 0xE0, - 0x04, - 0xE2, - 0x00, - 0x0C, - 0xDE, - 0xE2, - 0x86, - 0x38, - 0x38, - 0x38, - 0x30, - 0xAB, - 0x99, - 0x99, - 0x99, - 0x82, - 0x04, - 0x45, - 0x00, - 0x04, - 0x82, - 0x99, - 0x9C, - 0x97, - 0x05, - 0x45, - 0x00, - 0x33, - 0x9E, - 0x9C, - 0x99, - 0xA8, - 0xC9, - 0xCC, - 0xDC, - 0xC8, - 0xC8, - 0xE0, - 0xC2, - 0xFB, - 0xC8, - 0xE4, - 0xC6, - 0xE5, - 0xDD, - 0xC2, - 0xE9, - 0xD9, - 0xD8, - 0xE8, - 0xE8, - 0xD8, - 0xCA, - 0xCF, - 0x8A, - 0x45, - 0x57, - 0x5B, - 0x85, - 0x8A, - 0xE6, - 0x8A, - 0xE1, - 0xE5, - 0xE8, - 0xC2, - 0xF3, - 0xF3, - 0xD8, - 0xE4, - 0xF3, - 0xE7, - 0xEA, - 0xC8, - 0xEC, - 0xCC, - 0xC9, - 0xBF, - 0xC9, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x7A, - 0xC7, - 0xDD, - 0xBF, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0x22, - 0x5B, - 0x5D, - 0x5D, - 0x6A, - 0x5E, - 0xE2, - 0xB9, - 0xC8, - 0xBF, - 0xDD, - 0xBE, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xBF, - 0xC3, - 0xBF, - 0xBF, - 0xBF, - 0xC8, - 0xCA, - 0xCD, - 0x86, - 0x68, - 0x6A, - 0x6A, - 0x64, - 0xCF, - 0xBD, - 0xD0, - 0xDC, - 0x50, - 0x6A, - 0x6A, - 0x73, - 0x8D, - 0xCE, - 0xB9, - 0xBF, - 0xB9, - 0xCA, - 0xB9, - 0xCF, - 0xBC, - 0xB9, - 0xCA, - 0xCA, - 0xCD, - 0xCE, - 0xCE, - 0xCD, - 0xCD, - 0xCA, - 0xBD, - 0xBA, - 0xBA, - 0xBD, - 0xBD, - 0xCE, - 0x5F, - 0x73, - 0x73, - 0x7A, - 0x8E, - 0xE3, - 0xE4, - 0xF4, - 0xF2, - 0xFD, - 0xF0, - 0xE3, - 0xD9, - 0x6A, - 0x73, - 0x7A, - 0x8C, - 0x92, - 0xCD, - 0xCE, - 0xBC, - 0xBC, - 0xD0, - 0xD1, - 0xD0, - 0xBE, - 0xEA, - 0xC0, - 0xCE, - 0x22, - 0x6A, - 0x7A, - 0x7A, - 0x8C, - 0x9E, - 0x22, - 0xD1, - 0xB6, - 0xB7, - 0xF5, - 0xB8, - 0xCF, - 0xD0, - 0xBD, - 0xCE, - 0xBD, - 0xBD, - 0xBA, - 0xCF, - 0xCF, - 0xCF, - 0xB8, - 0xBD, - 0x06, - 0xBA, - 0x00, - 0x44, - 0xC1, - 0xB6, - 0xC1, - 0xFC, - 0x03, - 0x4F, - 0x68, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x84, - 0x92, - 0x26, - 0xB6, - 0xB6, - 0x22, - 0x04, - 0x04, - 0x4F, - 0x7A, - 0x8B, - 0x8C, - 0x93, - 0x6D, - 0x03, - 0x22, - 0xD3, - 0x22, - 0x04, - 0xD3, - 0x31, - 0x7A, - 0x8C, - 0x8B, - 0x93, - 0x75, - 0x22, - 0x29, - 0x86, - 0x29, - 0x29, - 0x29, - 0x3D, - 0x6A, - 0x8F, - 0x8C, - 0x8F, - 0x8C, - 0x7B, - 0x19, - 0x1A, - 0x81, - 0x81, - 0x81, - 0x1D, - 0x1D, - 0x67, - 0x1D, - 0x1D, - 0x67, - 0x67, - 0x67, - 0x1D, - 0x1F, - 0x58, - 0x2B, - 0x2C, - 0x05, - 0x2B, - 0x00, - 0x1F, - 0x24, - 0x1D, - 0x5C, - 0x8B, - 0x8C, - 0x8F, - 0x93, - 0x65, - 0x13, - 0x48, - 0x24, - 0x48, - 0x2C, - 0x2C, - 0x24, - 0x24, - 0x24, - 0x48, - 0x2B, - 0x24, - 0x24, - 0x2C, - 0x19, - 0x64, - 0x8B, - 0x8C, - 0x8F, - 0x91, - 0x52, - 0x1F, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF2, - 0xE2, - 0xE2, - 0xF4, - 0xE0, - 0x00, - 0x04, - 0xE2, - 0x00, - 0xDD, - 0xB8, - 0x38, - 0x38, - 0x38, - 0x30, - 0x9D, - 0x99, - 0x9C, - 0x9E, - 0xA9, - 0xA9, - 0xA9, - 0xA7, - 0x9E, - 0x9C, - 0x99, - 0x99, - 0xA3, - 0xA9, - 0xA9, - 0xA9, - 0xA3, - 0x99, - 0x9C, - 0x99, - 0xB8, - 0xC8, - 0xE0, - 0xE6, - 0xE0, - 0xC9, - 0xEC, - 0xC2, - 0xF1, - 0xDC, - 0x4C, - 0xC6, - 0xC8, - 0xC9, - 0xC2, - 0xEA, - 0xCB, - 0xDB, - 0xBB, - 0xD7, - 0xC2, - 0xDE, - 0x0C, - 0x8A, - 0x45, - 0x4E, - 0x5D, - 0x69, - 0xD7, - 0xCE, - 0xD7, - 0xE1, - 0xFE, - 0xE7, - 0xC2, - 0xF3, - 0xF3, - 0xD8, - 0xE4, - 0xF3, - 0xE7, - 0xC9, - 0xC9, - 0xD0, - 0xCB, - 0xC8, - 0xDC, - 0xCC, - 0xC8, - 0xCC, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xBF, - 0xBF, - 0xC8, - 0xC8, - 0xE2, - 0x4F, - 0x5D, - 0x5D, - 0x5D, - 0x6A, - 0x92, - 0xCD, - 0xC8, - 0xC8, - 0xBE, - 0xC0, - 0xDC, - 0xBF, - 0xDC, - 0xBC, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xC3, - 0xBF, - 0xC3, - 0xC8, - 0xBF, - 0xCA, - 0xCA, - 0x5E, - 0x6A, - 0x6A, - 0x73, - 0x92, - 0xCD, - 0xCE, - 0xB9, - 0xD0, - 0x64, - 0x6A, - 0x73, - 0x6A, - 0xD0, - 0xCE, - 0xB9, - 0xCA, - 0xB9, - 0xBF, - 0xB9, - 0xCA, - 0xB9, - 0xBF, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xD0, - 0xD0, - 0xB9, - 0xB9, - 0xBF, - 0xBD, - 0xBD, - 0xBA, - 0xCE, - 0x92, - 0x73, - 0x73, - 0x73, - 0x7A, - 0xBB, - 0xDF, - 0xEB, - 0xF0, - 0xF3, - 0xEB, - 0xDA, - 0x6C, - 0x73, - 0x7A, - 0x7A, - 0x88, - 0xB6, - 0xCE, - 0xBD, - 0xB9, - 0xCA, - 0xB9, - 0xD0, - 0xBC, - 0xD1, - 0xEA, - 0xB7, - 0xCD, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x8C, - 0x78, - 0xFC, - 0xB6, - 0xBA, - 0xD1, - 0xD1, - 0xCF, - 0xD1, - 0xD1, - 0xBA, - 0xBD, - 0xCE, - 0xBD, - 0xBD, - 0xCE, - 0xBD, - 0xBA, - 0xCF, - 0xBA, - 0xCF, - 0xCF, - 0xBA, - 0xBA, - 0xB8, - 0xC1, - 0xC1, - 0xFC, - 0x03, - 0x4F, - 0x68, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x77, - 0x3D, - 0xB6, - 0xD3, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x26, - 0x22, - 0x6A, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x22, - 0xD3, - 0x22, - 0xB6, - 0xD3, - 0x22, - 0x07, - 0x68, - 0x8B, - 0x8C, - 0x8F, - 0x84, - 0x1A, - 0x04, - 0x29, - 0x29, - 0x86, - 0x29, - 0x07, - 0x5B, - 0x8B, - 0x8C, - 0x8F, - 0x95, - 0x60, - 0x1A, - 0x81, - 0x81, - 0x19, - 0x81, - 0x39, - 0x81, - 0x04, - 0x1D, - 0x00, - 0x05, - 0x2B, - 0x1D, - 0x1D, - 0x2B, - 0x67, - 0x00, - 0x06, - 0x2B, - 0x00, - 0x13, - 0x48, - 0x48, - 0x2B, - 0x50, - 0x73, - 0x8F, - 0x8C, - 0x8F, - 0x88, - 0x1F, - 0x48, - 0x48, - 0x2B, - 0x24, - 0x2C, - 0x48, - 0x2C, - 0x2C, - 0x48, - 0x00, - 0x04, - 0x24, - 0x00, - 0x0A, - 0x1D, - 0x5F, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x65, - 0x11, - 0x11, - 0x19, - 0x00, - 0x00, - 0x00, - 0x11, - 0xE0, - 0xE0, - 0xE2, - 0xF2, - 0xE0, - 0xE2, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xCF, - 0x4F, - 0x38, - 0x38, - 0x3A, - 0x9C, - 0x99, - 0x00, - 0x06, - 0x9C, - 0x00, - 0x03, - 0x99, - 0x99, - 0x99, - 0x00, - 0x06, - 0x9C, - 0x00, - 0x37, - 0x99, - 0xA8, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xDE, - 0xE2, - 0xCB, - 0x45, - 0x8A, - 0xDB, - 0xC6, - 0x45, - 0xE8, - 0xEE, - 0x45, - 0xDC, - 0xDD, - 0xEE, - 0xEA, - 0xD9, - 0xC2, - 0xF2, - 0x98, - 0x82, - 0x98, - 0x82, - 0x64, - 0x4C, - 0xD8, - 0xC8, - 0xD7, - 0x82, - 0xDB, - 0xDA, - 0x45, - 0xD9, - 0xE7, - 0x45, - 0xE7, - 0xEB, - 0xF1, - 0xE2, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC5, - 0xC8, - 0xCB, - 0xD0, - 0xCC, - 0xC8, - 0xC9, - 0x00, - 0x05, - 0xC8, - 0x00, - 0xAF, - 0xBF, - 0xC8, - 0xCE, - 0x4D, - 0x5D, - 0x64, - 0x6A, - 0x68, - 0xCE, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xDC, - 0xBD, - 0xCB, - 0xDD, - 0xEA, - 0xCB, - 0xDC, - 0xCB, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xC8, - 0xB9, - 0xC8, - 0xCA, - 0x86, - 0x68, - 0x6A, - 0x73, - 0x6B, - 0xCE, - 0xB9, - 0xCE, - 0xCD, - 0x78, - 0x73, - 0x6A, - 0x7A, - 0x5C, - 0xCD, - 0xB9, - 0xB9, - 0xBD, - 0xBD, - 0xBF, - 0xB9, - 0xC3, - 0xB9, - 0xBD, - 0xBC, - 0xB9, - 0xCC, - 0xD1, - 0xBD, - 0xBD, - 0xBF, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xC1, - 0x6B, - 0x7A, - 0x73, - 0x73, - 0x73, - 0x8E, - 0xD9, - 0xDF, - 0xD9, - 0xBB, - 0x88, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x80, - 0xCE, - 0xBA, - 0xCF, - 0xBD, - 0xBD, - 0xBD, - 0xB9, - 0xB9, - 0xBA, - 0xB8, - 0xCE, - 0x22, - 0x74, - 0x84, - 0x7A, - 0x8C, - 0x74, - 0xC1, - 0xC1, - 0xB9, - 0xCE, - 0xBA, - 0xBA, - 0xBA, - 0xD1, - 0xCF, - 0xBD, - 0xBD, - 0xBD, - 0xB8, - 0xD0, - 0xBA, - 0xBD, - 0xCE, - 0xBA, - 0xBA, - 0xB6, - 0xBA, - 0xC1, - 0xB8, - 0xB6, - 0xFC, - 0x03, - 0x4F, - 0x68, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x7B, - 0x92, - 0xC1, - 0x26, - 0x29, - 0xC0, - 0x22, - 0x22, - 0xB6, - 0x03, - 0x5B, - 0x8C, - 0x8C, - 0x8F, - 0x96, - 0xA5, - 0xB6, - 0x22, - 0x22, - 0x29, - 0x29, - 0xFE, - 0x5F, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8D, - 0x04, - 0x81, - 0x29, - 0x29, - 0x1A, - 0x04, - 0x4F, - 0x8B, - 0x8C, - 0x8C, - 0x93, - 0x77, - 0x08, - 0x81, - 0x1D, - 0x00, - 0x05, - 0x81, - 0x00, - 0x05, - 0x39, - 0x1D, - 0x67, - 0x1D, - 0x67, - 0x00, - 0x04, - 0x2B, - 0x00, - 0x27, - 0x13, - 0x2B, - 0x2B, - 0x24, - 0x2B, - 0x2B, - 0x2C, - 0x11, - 0x19, - 0x5D, - 0x8F, - 0x8C, - 0x8F, - 0x91, - 0x48, - 0x20, - 0x48, - 0x24, - 0x24, - 0x48, - 0x2C, - 0x48, - 0x2C, - 0x2C, - 0x24, - 0x48, - 0x24, - 0x48, - 0x1F, - 0x50, - 0x7A, - 0x8C, - 0x8C, - 0x8F, - 0x88, - 0x0A, - 0x2C, - 0x19, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4E, - 0xE2, - 0xE2, - 0xE2, - 0xE0, - 0xE0, - 0xE2, - 0xE0, - 0xE0, - 0xDE, - 0xE6, - 0xE0, - 0xCE, - 0x50, - 0x47, - 0x38, - 0x9D, - 0x9C, - 0x9C, - 0x99, - 0x99, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0x99, - 0x99, - 0x9C, - 0x99, - 0x99, - 0x99, - 0x9D, - 0xC8, - 0xC8, - 0xE2, - 0xDE, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0xD9, - 0xE1, - 0xD7, - 0xD8, - 0xE8, - 0xC6, - 0xD8, - 0xBB, - 0xCB, - 0xEA, - 0xC6, - 0xD7, - 0x8A, - 0xDB, - 0xEC, - 0x8A, - 0x57, - 0x51, - 0x8A, - 0x8E, - 0xC4, - 0xBB, - 0xC8, - 0xBB, - 0xE8, - 0xD7, - 0xD8, - 0xE4, - 0xDA, - 0xD8, - 0xD7, - 0xEF, - 0xEB, - 0xEA, - 0xDE, - 0xC9, - 0xC3, - 0x04, - 0xC8, - 0x00, - 0x47, - 0xCC, - 0xEC, - 0xCC, - 0xC8, - 0xCF, - 0xC8, - 0xCC, - 0xC9, - 0xC8, - 0xC8, - 0xCA, - 0xC8, - 0x3D, - 0x5B, - 0x5D, - 0x68, - 0x6A, - 0x5C, - 0xC8, - 0xBD, - 0xBF, - 0xC3, - 0xC8, - 0xC8, - 0xC8, - 0xCC, - 0xBE, - 0xDC, - 0xBE, - 0xC3, - 0xBF, - 0xBE, - 0xDD, - 0xCC, - 0xC9, - 0xC3, - 0xC8, - 0xCA, - 0xB9, - 0xC8, - 0x5E, - 0x6A, - 0x6A, - 0x73, - 0x92, - 0xCE, - 0xBA, - 0xBD, - 0xB6, - 0x68, - 0x6A, - 0x73, - 0x6A, - 0xBA, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xB9, - 0xCB, - 0xBC, - 0xB9, - 0xBF, - 0xB9, - 0xBF, - 0xBD, - 0xD1, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x32, - 0xCE, - 0x86, - 0x74, - 0x7A, - 0x73, - 0x7F, - 0x73, - 0x73, - 0x7F, - 0x74, - 0x73, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x77, - 0xCE, - 0xBA, - 0xBA, - 0xCF, - 0xBD, - 0xBC, - 0xBC, - 0xBD, - 0xBA, - 0xBD, - 0xBA, - 0xFC, - 0x5F, - 0x7A, - 0x7A, - 0x7A, - 0x8F, - 0x92, - 0xCE, - 0xBA, - 0xD0, - 0xD1, - 0xBA, - 0xBD, - 0xBD, - 0xBA, - 0xBD, - 0xBD, - 0xCE, - 0xBC, - 0xD1, - 0xD1, - 0xBA, - 0xCF, - 0x05, - 0xBA, - 0x00, - 0x6C, - 0xC1, - 0xFC, - 0x03, - 0x50, - 0x68, - 0x8B, - 0x8C, - 0x8B, - 0x8F, - 0x8C, - 0x77, - 0x92, - 0x03, - 0x26, - 0xB6, - 0xB6, - 0xFF, - 0x29, - 0xFA, - 0x04, - 0x19, - 0x64, - 0x84, - 0x8C, - 0x8F, - 0x9A, - 0x7C, - 0x07, - 0x22, - 0xB8, - 0xD3, - 0x05, - 0x29, - 0x19, - 0x73, - 0x8C, - 0x8C, - 0x93, - 0x88, - 0x22, - 0x29, - 0x1A, - 0x29, - 0x1A, - 0x29, - 0x3D, - 0x73, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x1A, - 0x1A, - 0x81, - 0x1D, - 0x81, - 0x81, - 0x19, - 0x1D, - 0x18, - 0x2B, - 0x1D, - 0x1D, - 0x1D, - 0x58, - 0x67, - 0x2B, - 0x2B, - 0x2B, - 0x2C, - 0x76, - 0x13, - 0x24, - 0x2B, - 0x24, - 0x48, - 0x1D, - 0x5E, - 0x8C, - 0x8C, - 0x8F, - 0x93, - 0x7C, - 0x2B, - 0x49, - 0x2C, - 0x24, - 0x48, - 0x11, - 0x48, - 0x48, - 0x2C, - 0x48, - 0x48, - 0x24, - 0x48, - 0x11, - 0x39, - 0x6A, - 0x8F, - 0x8C, - 0x8F, - 0x90, - 0x24, - 0x24, - 0x1D, - 0x5F, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x14, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xE0, - 0xDE, - 0xE2, - 0xEC, - 0xE6, - 0xDE, - 0xD0, - 0x39, - 0x38, - 0x38, - 0x9D, - 0x99, - 0x99, - 0x9C, - 0x06, - 0x99, - 0x00, - 0x34, - 0x9C, - 0x99, - 0x99, - 0x99, - 0x9C, - 0x9D, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xDE, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xE2, - 0xDE, - 0xC7, - 0xE6, - 0xCB, - 0xDC, - 0xE6, - 0xC8, - 0xC9, - 0xDC, - 0xEC, - 0xC7, - 0xE2, - 0x86, - 0x4D, - 0x4D, - 0x4D, - 0x5D, - 0x79, - 0xE6, - 0xBE, - 0xC8, - 0xBF, - 0xE2, - 0xF3, - 0xEF, - 0xF3, - 0xF3, - 0xEF, - 0xF3, - 0xEF, - 0xE7, - 0xCB, - 0xC9, - 0xDD, - 0xDD, - 0x05, - 0xC8, - 0x00, - 0x17, - 0xC9, - 0xC8, - 0xDE, - 0xF7, - 0xFC, - 0xFC, - 0xFC, - 0xE2, - 0xE2, - 0xC8, - 0xCA, - 0x4F, - 0x5D, - 0x68, - 0x5D, - 0x6A, - 0x86, - 0xCC, - 0xBD, - 0xBF, - 0xC9, - 0xBF, - 0xBF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0xA5, - 0xBC, - 0xDC, - 0xBF, - 0xEA, - 0xBE, - 0xC5, - 0xC0, - 0xDC, - 0xBF, - 0xBC, - 0xBF, - 0xCD, - 0x22, - 0x6A, - 0x6A, - 0x73, - 0x77, - 0xCE, - 0xBA, - 0xBA, - 0xCA, - 0x4F, - 0x73, - 0x6A, - 0x7A, - 0x5C, - 0xCD, - 0xBD, - 0xBC, - 0xBD, - 0xBF, - 0xEA, - 0xC5, - 0xBD, - 0xBD, - 0xBF, - 0xB9, - 0xBF, - 0xBD, - 0xBF, - 0xB9, - 0xBF, - 0xB9, - 0xBC, - 0xBC, - 0xBD, - 0xBA, - 0xBA, - 0xCE, - 0x86, - 0x68, - 0x73, - 0x7A, - 0x7F, - 0x73, - 0x7A, - 0x73, - 0x7A, - 0x7A, - 0x8C, - 0x84, - 0x6D, - 0xC1, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xBC, - 0xBC, - 0xBA, - 0xBC, - 0xBA, - 0xCE, - 0x22, - 0x74, - 0x7A, - 0x84, - 0x8C, - 0x75, - 0xC1, - 0xC1, - 0xBA, - 0xEA, - 0xFF, - 0xBA, - 0xBA, - 0xBA, - 0xCE, - 0xBD, - 0xBD, - 0xBD, - 0xCF, - 0xD1, - 0xD3, - 0xBD, - 0xB8, - 0xB6, - 0xBA, - 0xBA, - 0xC1, - 0xFC, - 0x03, - 0x50, - 0x68, - 0x8B, - 0x8C, - 0x8B, - 0x8F, - 0x8C, - 0x75, - 0x50, - 0xC1, - 0xB6, - 0xD3, - 0xB6, - 0xB6, - 0xB6, - 0x03, - 0x03, - 0x50, - 0x64, - 0x7A, - 0x8F, - 0x8C, - 0x8F, - 0x95, - 0x88, - 0x86, - 0xB6, - 0x22, - 0x22, - 0x29, - 0x05, - 0x29, - 0x5B, - 0x8C, - 0x8F, - 0x8F, - 0x91, - 0x39, - 0x22, - 0x86, - 0x29, - 0x29, - 0x1A, - 0x04, - 0x5B, - 0x8C, - 0x8C, - 0x8F, - 0x95, - 0x58, - 0x1A, - 0x81, - 0x1A, - 0x81, - 0x81, - 0x1D, - 0x81, - 0x5A, - 0x4A, - 0x17, - 0x5A, - 0x17, - 0x00, - 0x06, - 0x2B, - 0x00, - 0x10, - 0x2C, - 0x48, - 0x2B, - 0x48, - 0x2B, - 0x2C, - 0x1F, - 0x4F, - 0x7A, - 0x8F, - 0x8F, - 0x9A, - 0x7D, - 0x1F, - 0x48, - 0x2C, - 0x04, - 0x48, - 0x00, - 0x13, - 0x2C, - 0x24, - 0x48, - 0x24, - 0x24, - 0x48, - 0x2C, - 0x19, - 0x5B, - 0x8C, - 0x8C, - 0x8F, - 0x91, - 0x52, - 0x24, - 0x1D, - 0x4F, - 0x7A, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0x31, - 0x1C, - 0xB6, - 0xF6, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xE6, - 0xE2, - 0xE5, - 0xDC, - 0xC9, - 0x3D, - 0x47, - 0x38, - 0x46, - 0x9C, - 0x99, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0x99, - 0x99, - 0x99, - 0x9C, - 0x99, - 0x9C, - 0xA8, - 0xCA, - 0xE2, - 0xE2, - 0x04, - 0xC8, - 0x00, - 0x06, - 0xC7, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xDE, - 0x04, - 0xC8, - 0x00, - 0x14, - 0xCB, - 0xCB, - 0xC9, - 0xF5, - 0xDC, - 0xC8, - 0xE2, - 0x50, - 0x4D, - 0x4D, - 0x51, - 0x68, - 0x86, - 0xE1, - 0xD8, - 0xC9, - 0xC9, - 0xC8, - 0xEF, - 0xEB, - 0x04, - 0xEF, - 0x00, - 0xC0, - 0xEB, - 0xE9, - 0xCA, - 0xC9, - 0xF5, - 0xCB, - 0xC8, - 0xC8, - 0xC8, - 0xCB, - 0xCC, - 0xBF, - 0xE2, - 0xFC, - 0x38, - 0x4D, - 0x51, - 0x4D, - 0x21, - 0x22, - 0xF2, - 0xFD, - 0x5B, - 0x5D, - 0x5D, - 0x6A, - 0x6B, - 0xCA, - 0xBD, - 0xC8, - 0xBF, - 0xCC, - 0xBF, - 0xBF, - 0xC3, - 0xBF, - 0xC3, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0xBC, - 0xCC, - 0xC9, - 0xBE, - 0xC5, - 0xBE, - 0xEA, - 0xBE, - 0xBF, - 0xBD, - 0x5E, - 0x6A, - 0x6A, - 0x73, - 0x92, - 0xCE, - 0xBA, - 0xCE, - 0xB8, - 0x68, - 0x73, - 0x73, - 0x74, - 0xC1, - 0xB9, - 0xBD, - 0xB9, - 0xBF, - 0xDC, - 0xBF, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xBD, - 0xB9, - 0xBF, - 0xBF, - 0xB9, - 0xBF, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xBD, - 0xBA, - 0xC1, - 0x6B, - 0x73, - 0x7A, - 0x7A, - 0x84, - 0x8C, - 0x84, - 0x84, - 0x7F, - 0x7B, - 0x92, - 0xFA, - 0xB7, - 0xBA, - 0xBA, - 0xBD, - 0xBD, - 0xBD, - 0xBC, - 0xBD, - 0xBA, - 0xB8, - 0xBA, - 0xFC, - 0x6B, - 0x7A, - 0x7A, - 0x8B, - 0x8C, - 0x92, - 0xCE, - 0xCE, - 0xB8, - 0xC0, - 0xC0, - 0xB9, - 0xD0, - 0xBE, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xCE, - 0xBA, - 0xBA, - 0xD3, - 0xD3, - 0xBA, - 0xC1, - 0xFC, - 0x03, - 0x50, - 0x68, - 0x8B, - 0x8B, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0x92, - 0xC1, - 0xC1, - 0xB6, - 0xC0, - 0xC0, - 0xD3, - 0x03, - 0x03, - 0x50, - 0x68, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x88, - 0x7E, - 0x05, - 0x04, - 0x29, - 0xD3, - 0x22, - 0xD3, - 0x07, - 0x4F, - 0x8B, - 0x8C, - 0x8C, - 0x93, - 0x6D, - 0x04, - 0xFF, - 0x1A, - 0x86, - 0x29, - 0x22, - 0x4F, - 0x8B, - 0x8C, - 0x8F, - 0x9A, - 0x7B, - 0x1A, - 0x1A, - 0x06, - 0x81, - 0x00, - 0x08, - 0x67, - 0x67, - 0x5A, - 0x13, - 0x5A, - 0x17, - 0x4A, - 0x4A, - 0x05, - 0x2B, - 0x00, - 0x25, - 0x2C, - 0x2C, - 0x48, - 0x2C, - 0x39, - 0x74, - 0x8F, - 0x8F, - 0x93, - 0x97, - 0x24, - 0x48, - 0x2C, - 0x48, - 0x48, - 0x2C, - 0x48, - 0x2D, - 0x2D, - 0x49, - 0x48, - 0x20, - 0x48, - 0x2C, - 0x39, - 0x5F, - 0x8B, - 0x8F, - 0x8F, - 0x8F, - 0x7C, - 0x24, - 0x24, - 0x50, - 0x72, - 0x8F, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x07, - 0x38, - 0x38, - 0x23, - 0x23, - 0x1C, - 0x26, - 0xCD, - 0x00, - 0x05, - 0xE2, - 0x00, - 0x09, - 0xC9, - 0xDE, - 0xE5, - 0x81, - 0x47, - 0x38, - 0x47, - 0x9D, - 0x9D, - 0x00, - 0x06, - 0x99, - 0x00, - 0x13, - 0x9C, - 0xA8, - 0xB7, - 0xCC, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xDE, - 0xC7, - 0xC8, - 0xC8, - 0xDE, - 0x00, - 0x05, - 0xC8, - 0x00, - 0xFF, - 0xCB, - 0xC9, - 0xE2, - 0xC8, - 0x47, - 0x4D, - 0x4D, - 0x5B, - 0x5E, - 0xCA, - 0xCB, - 0xDD, - 0xC8, - 0xC3, - 0xC8, - 0xCB, - 0xF1, - 0xEB, - 0xEB, - 0xEB, - 0xEF, - 0xE7, - 0xF0, - 0xC8, - 0xC8, - 0xC9, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xDD, - 0xD0, - 0xCB, - 0xE2, - 0x47, - 0x68, - 0x68, - 0x5E, - 0x5D, - 0x6A, - 0x5D, - 0x4D, - 0x4F, - 0x3A, - 0x4D, - 0x51, - 0x6A, - 0xA5, - 0xCD, - 0xC8, - 0xB9, - 0xBF, - 0xCA, - 0xBF, - 0xC3, - 0xC8, - 0xC3, - 0xC8, - 0xBD, - 0xC3, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xC9, - 0xBE, - 0xCC, - 0xEA, - 0xD1, - 0xBF, - 0xF5, - 0xDD, - 0x29, - 0x68, - 0x6A, - 0x73, - 0x77, - 0xC1, - 0xBD, - 0xBA, - 0xCE, - 0x5C, - 0x73, - 0x6A, - 0x7A, - 0x80, - 0xCA, - 0xCE, - 0xB9, - 0xB9, - 0xB9, - 0xBF, - 0xBD, - 0xBD, - 0xBF, - 0xBC, - 0xBC, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xBF, - 0xB9, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xCF, - 0x92, - 0x6A, - 0x7A, - 0x7A, - 0x84, - 0x75, - 0x80, - 0x8D, - 0x78, - 0xB7, - 0xC1, - 0xCF, - 0xD1, - 0xD0, - 0xBD, - 0xBE, - 0xBC, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xBA, - 0xFC, - 0x3D, - 0x73, - 0x7A, - 0x84, - 0x8F, - 0x7B, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xBC, - 0xBA, - 0xD0, - 0xC0, - 0xD0, - 0xBD, - 0xBD, - 0xCE, - 0xBC, - 0xBC, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0xFC, - 0x03, - 0x50, - 0x68, - 0x8B, - 0x8B, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0x92, - 0xC1, - 0x26, - 0xB6, - 0xB6, - 0xD1, - 0xC0, - 0xFC, - 0x03, - 0x50, - 0x68, - 0x8B, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x74, - 0x80, - 0xFF, - 0xFF, - 0xD3, - 0xFF, - 0xFF, - 0xFF, - 0x04, - 0xFE, - 0x31, - 0x73, - 0x8C, - 0x8C, - 0x9A, - 0x7F, - 0x04, - 0x29, - 0x81, - 0x1A, - 0x29, - 0x05, - 0x1C, - 0x73, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x81, - 0x1A, - 0x81, - 0xFF, - 0x81, - 0x1D, - 0x1D, - 0x39, - 0x1D, - 0x1D, - 0x67, - 0x2B, - 0x17, - 0x5A, - 0x4A, - 0x4B, - 0x2C, - 0x5A, - 0x24, - 0x24, - 0x2C, - 0x2B, - 0x24, - 0x24, - 0x2C, - 0x19, - 0x6B, - 0x8F, - 0x8F, - 0x93, - 0x95, - 0x52, - 0x24, - 0x48, - 0x48, - 0x24, - 0x2C, - 0x2C, - 0x20, - 0x2D, - 0x49, - 0x2C, - 0x20, - 0x49, - 0x20, - 0x00, - 0x00, - 0x0E, - 0x14, - 0x4F, - 0x7A, - 0x8F, - 0x8C, - 0x8F, - 0x88, - 0x24, - 0x24, - 0x19, - 0x64, - 0x8C, - 0x8C, - 0x8F, - 0x00, - 0x00, - 0x06, - 0x38, - 0x00, - 0x2B, - 0x23, - 0x1C, - 0x26, - 0xCD, - 0xF6, - 0xE2, - 0xE2, - 0xE2, - 0xC8, - 0xDE, - 0xB7, - 0x38, - 0x47, - 0x38, - 0x47, - 0x46, - 0x9D, - 0x9D, - 0x9D, - 0xA8, - 0xAF, - 0xB9, - 0xE2, - 0xE0, - 0xC9, - 0xCC, - 0xE6, - 0xC8, - 0xE2, - 0xC9, - 0xDE, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xDE, - 0xC8, - 0xDE, - 0xC7, - 0xC8, - 0xC8, - 0xDE, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x0A, - 0xB6, - 0x4D, - 0x4D, - 0x51, - 0x5D, - 0x80, - 0xE0, - 0xBF, - 0xC8, - 0xC9, - 0x05, - 0xC8, - 0x00, - 0x07, - 0xCB, - 0xF1, - 0xE7, - 0xE7, - 0xBC, - 0xC8, - 0xC9, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x20, - 0xBF, - 0xDD, - 0xDC, - 0xC8, - 0x29, - 0x5B, - 0x6A, - 0xA5, - 0xF7, - 0xE5, - 0x92, - 0x5F, - 0x5D, - 0x6A, - 0x5D, - 0x4D, - 0x47, - 0x4D, - 0xB6, - 0xF6, - 0xF4, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xC3, - 0xC8, - 0xC8, - 0xC5, - 0x04, - 0xBF, - 0x00, - 0xB8, - 0xC3, - 0xC3, - 0xBD, - 0xBE, - 0xBF, - 0xC0, - 0xD1, - 0xCA, - 0x5E, - 0x73, - 0x6A, - 0x7A, - 0x92, - 0xCD, - 0xB9, - 0xCE, - 0xB6, - 0x68, - 0x73, - 0x73, - 0x74, - 0xC1, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xB9, - 0xBF, - 0xBF, - 0xB9, - 0xBD, - 0xBF, - 0xBC, - 0xBF, - 0xBF, - 0xBD, - 0xBD, - 0xBF, - 0xB9, - 0xB9, - 0xBD, - 0xBD, - 0xC1, - 0x5B, - 0x7A, - 0x73, - 0x7A, - 0x84, - 0xC0, - 0xCE, - 0xCD, - 0xB9, - 0xBD, - 0xBD, - 0xBA, - 0xD0, - 0xBD, - 0xBC, - 0xD1, - 0xBA, - 0xBD, - 0xB9, - 0xBD, - 0xD0, - 0xBA, - 0xBD, - 0xC1, - 0x6B, - 0x7A, - 0x84, - 0x8B, - 0x8C, - 0x86, - 0xB6, - 0xBA, - 0xBA, - 0xBD, - 0xB9, - 0xBD, - 0xBA, - 0xBC, - 0xBA, - 0xB9, - 0xBD, - 0xBA, - 0xBE, - 0xD1, - 0xD0, - 0xF5, - 0xFE, - 0x03, - 0x50, - 0x68, - 0x8B, - 0x8B, - 0x8C, - 0x8F, - 0x8C, - 0x88, - 0xA5, - 0x04, - 0xB6, - 0xB6, - 0xD3, - 0xB6, - 0xB6, - 0x03, - 0x04, - 0x33, - 0x68, - 0x8B, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x90, - 0x80, - 0x22, - 0xB6, - 0x22, - 0x29, - 0x29, - 0xFF, - 0x29, - 0x04, - 0x50, - 0x5B, - 0x7A, - 0x8F, - 0x8F, - 0x93, - 0x91, - 0x79, - 0x04, - 0x81, - 0x05, - 0x29, - 0x1A, - 0x04, - 0x6B, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x89, - 0x1A, - 0x81, - 0x81, - 0x19, - 0x81, - 0x1D, - 0x81, - 0x81, - 0x1D, - 0x1D, - 0x1D, - 0x67, - 0x58, - 0x2B, - 0x4A, - 0x14, - 0x5A, - 0x4B, - 0x4B, - 0x4A, - 0x15, - 0x2D, - 0x48, - 0x2C, - 0x1F, - 0x5C, - 0x8C, - 0x8F, - 0x8F, - 0x9A, - 0x6C, - 0x2B, - 0x48, - 0x48, - 0x2C, - 0x49, - 0x48, - 0x48, - 0x2C, - 0x05, - 0x48, - 0x00, - 0x0F, - 0x2C, - 0x39, - 0x6A, - 0x8F, - 0x8C, - 0x9A, - 0x90, - 0x24, - 0x48, - 0x1D, - 0x5E, - 0x8C, - 0x8C, - 0x8F, - 0x95, - 0x00, - 0x00, - 0x00, - 0x01, - 0x3D, - 0x01, - 0x4F, - 0x07, - 0x38, - 0x00, - 0x0A, - 0x23, - 0x31, - 0x22, - 0xE2, - 0xDE, - 0xDE, - 0xE2, - 0xE2, - 0xBA, - 0x78, - 0x06, - 0x47, - 0x00, - 0x0F, - 0x3A, - 0x38, - 0x23, - 0x22, - 0xFC, - 0xE2, - 0xDE, - 0xF4, - 0xC9, - 0xC9, - 0xD0, - 0xE6, - 0xC8, - 0xCC, - 0xDE, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x3D, - 0xDE, - 0xC8, - 0xC8, - 0xC7, - 0xC8, - 0xBF, - 0xC8, - 0xC8, - 0xE2, - 0x50, - 0x51, - 0x4D, - 0x5B, - 0x5D, - 0xA5, - 0xE6, - 0xC8, - 0xC9, - 0xBE, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0xCC, - 0xDD, - 0xC9, - 0xC8, - 0xDC, - 0xC8, - 0xC9, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xE2, - 0x4F, - 0x5D, - 0x75, - 0xEC, - 0xEF, - 0xF3, - 0xF3, - 0xF8, - 0xFA, - 0x5B, - 0x6A, - 0x6A, - 0x6A, - 0x68, - 0x4D, - 0x4F, - 0x1C, - 0xFC, - 0xE2, - 0xCA, - 0xC8, - 0xBF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x41, - 0xC3, - 0xCC, - 0xBF, - 0xBD, - 0xC5, - 0xBD, - 0xBF, - 0xC8, - 0xC3, - 0xC3, - 0xC3, - 0xCC, - 0xBC, - 0xCC, - 0x29, - 0x6A, - 0x6A, - 0x73, - 0x64, - 0xC1, - 0xB8, - 0xBD, - 0xCD, - 0x5C, - 0x73, - 0x73, - 0x7A, - 0x79, - 0xCD, - 0xBC, - 0xBC, - 0xBD, - 0xBD, - 0xBF, - 0xB9, - 0xBF, - 0xBF, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBC, - 0xBD, - 0xBD, - 0xBD, - 0xBC, - 0xB9, - 0xCE, - 0x3D, - 0x6A, - 0x7A, - 0x7A, - 0x8C, - 0x7B, - 0xEC, - 0xD0, - 0xBE, - 0xEA, - 0xBE, - 0xBC, - 0xBD, - 0xBF, - 0xBD, - 0xBC, - 0xBC, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x5E, - 0xD1, - 0xB8, - 0xC1, - 0x3D, - 0x73, - 0x84, - 0x7A, - 0x8F, - 0x6D, - 0xC1, - 0xB6, - 0xBA, - 0xBC, - 0xB8, - 0xBA, - 0xBA, - 0xBA, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xBE, - 0xEA, - 0xD0, - 0xF9, - 0xF9, - 0x50, - 0x68, - 0x8B, - 0x8B, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0xA5, - 0xB6, - 0xB8, - 0x81, - 0x29, - 0x81, - 0x81, - 0xC1, - 0x0D, - 0x50, - 0x68, - 0x8B, - 0x8F, - 0x8C, - 0x8F, - 0x93, - 0x90, - 0x80, - 0xFB, - 0xB6, - 0x22, - 0x22, - 0xD3, - 0x22, - 0x26, - 0x07, - 0x31, - 0x64, - 0x8B, - 0x8F, - 0x8F, - 0x93, - 0x93, - 0x88, - 0x39, - 0x22, - 0x29, - 0x86, - 0x29, - 0x1A, - 0x05, - 0x4F, - 0x8B, - 0x8C, - 0x8F, - 0x9A, - 0x7B, - 0x08, - 0x81, - 0x1A, - 0x81, - 0x81, - 0x1D, - 0x81, - 0x1D, - 0x39, - 0x1D, - 0x67, - 0x2B, - 0x67, - 0x04, - 0x2B, - 0x00, - 0x2B, - 0x48, - 0x48, - 0x2C, - 0x2D, - 0x4A, - 0x2D, - 0x4B, - 0x2D, - 0x50, - 0x73, - 0x8F, - 0x8F, - 0x93, - 0x88, - 0x24, - 0x48, - 0x2C, - 0x49, - 0x2D, - 0x4B, - 0x49, - 0x4A, - 0x20, - 0x48, - 0x48, - 0x2C, - 0x34, - 0x20, - 0x39, - 0x5B, - 0x8F, - 0x8F, - 0x93, - 0x91, - 0x52, - 0x20, - 0x1F, - 0x4F, - 0x7A, - 0x8C, - 0x8F, - 0x9A, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0xE2, - 0xE0, - 0xBA, - 0x3D, - 0x4F, - 0x47, - 0x06, - 0x38, - 0x00, - 0x1C, - 0x31, - 0xCF, - 0xE6, - 0xDE, - 0xC8, - 0xE2, - 0xC8, - 0xBA, - 0x92, - 0x5C, - 0x47, - 0x4D, - 0x3A, - 0x47, - 0x47, - 0x47, - 0x3A, - 0x47, - 0x23, - 0x1C, - 0xCE, - 0xE2, - 0xC8, - 0xDC, - 0xDE, - 0xC9, - 0xDC, - 0xCC, - 0x08, - 0xC8, - 0x00, - 0x28, - 0xC7, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xCA, - 0x5C, - 0x4D, - 0x5B, - 0x5B, - 0x5B, - 0xBD, - 0xC8, - 0xBF, - 0xCB, - 0xDC, - 0xCB, - 0xDD, - 0xCB, - 0xC9, - 0xC9, - 0xC3, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xBF, - 0xC9, - 0xCC, - 0xCC, - 0xCC, - 0xBF, - 0xBF, - 0xC8, - 0xF2, - 0x5E, - 0x6A, - 0x5F, - 0xF3, - 0x04, - 0xEF, - 0x00, - 0x12, - 0xF3, - 0xF1, - 0x2B, - 0x6B, - 0x68, - 0x5B, - 0x68, - 0x6A, - 0x68, - 0x5B, - 0x50, - 0xFE, - 0xC8, - 0xBE, - 0xBD, - 0xC8, - 0xBF, - 0xC8, - 0x04, - 0xC3, - 0x00, - 0x4B, - 0xBF, - 0xBD, - 0xBF, - 0xBF, - 0xBD, - 0xC8, - 0xC3, - 0xB9, - 0xCA, - 0xB9, - 0xCA, - 0x5E, - 0x73, - 0x73, - 0x7A, - 0xA5, - 0xF9, - 0xB8, - 0xB9, - 0xB8, - 0x6A, - 0x73, - 0x7A, - 0x74, - 0xC1, - 0xBC, - 0xBD, - 0xBD, - 0xBC, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xBF, - 0xB9, - 0xBF, - 0xBF, - 0xBD, - 0xBD, - 0xBF, - 0xBC, - 0xBD, - 0xCC, - 0xC1, - 0x6B, - 0x7A, - 0x7A, - 0x8B, - 0x84, - 0x86, - 0xD0, - 0xBA, - 0xEA, - 0xEA, - 0xBC, - 0xEA, - 0xEA, - 0xBC, - 0xB9, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xBD, - 0xB8, - 0xD0, - 0xC1, - 0xFA, - 0x5B, - 0x7A, - 0x84, - 0x8C, - 0x84, - 0x86, - 0xC1, - 0x00, - 0x05, - 0xBA, - 0x01, - 0xBD, - 0x05, - 0xBA, - 0x00, - 0x28, - 0xC1, - 0xCE, - 0x03, - 0x39, - 0x68, - 0x8B, - 0x8B, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0x92, - 0xC1, - 0x26, - 0xB6, - 0xB6, - 0xB6, - 0xD3, - 0xF5, - 0x07, - 0x50, - 0x6A, - 0x8C, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x88, - 0x79, - 0x04, - 0xEA, - 0xFF, - 0xD3, - 0x86, - 0xD3, - 0x26, - 0x03, - 0x31, - 0x68, - 0x8B, - 0x04, - 0x8F, - 0x00, - 0x14, - 0x90, - 0x79, - 0x29, - 0x29, - 0x29, - 0x1A, - 0x29, - 0x29, - 0x22, - 0x22, - 0x74, - 0x8F, - 0x8C, - 0x9A, - 0x90, - 0x1D, - 0x1D, - 0x67, - 0xFF, - 0x39, - 0x04, - 0x81, - 0x00, - 0x34, - 0x1D, - 0x1D, - 0x67, - 0x2B, - 0x2B, - 0x2B, - 0x76, - 0x2B, - 0x2B, - 0x2B, - 0x24, - 0x48, - 0x4A, - 0x49, - 0x4A, - 0x2E, - 0x1D, - 0x68, - 0x8F, - 0x8F, - 0x93, - 0x91, - 0x20, - 0x48, - 0x49, - 0x48, - 0x14, - 0x4B, - 0x0B, - 0x15, - 0x4B, - 0x2D, - 0x2D, - 0x49, - 0x48, - 0x20, - 0x1D, - 0x5F, - 0x8B, - 0x8F, - 0x8F, - 0x93, - 0x65, - 0x24, - 0x24, - 0x50, - 0x73, - 0x8F, - 0x8F, - 0x9A, - 0x88, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE2, - 0xDE, - 0xE2, - 0xE2, - 0xDE, - 0xCF, - 0x92, - 0x4F, - 0x38, - 0x47, - 0x38, - 0x38, - 0x3A, - 0x50, - 0xCF, - 0xE2, - 0xDC, - 0xC9, - 0xC8, - 0xDE, - 0xE2, - 0xC8, - 0xCF, - 0x92, - 0x4F, - 0x47, - 0x4D, - 0x00, - 0x04, - 0x47, - 0x00, - 0x0E, - 0x3A, - 0x47, - 0x3D, - 0xE2, - 0xC8, - 0xC8, - 0xC9, - 0xE6, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xE6, - 0xCC, - 0x08, - 0xC8, - 0x00, - 0x13, - 0xB8, - 0x4D, - 0x5B, - 0x5B, - 0x5D, - 0x5F, - 0xE2, - 0xC8, - 0xC8, - 0xBF, - 0xBF, - 0xCB, - 0xF5, - 0xDD, - 0xCB, - 0xDD, - 0xDD, - 0xC8, - 0xC9, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0C, - 0xC3, - 0xCC, - 0xCB, - 0xC9, - 0xD0, - 0xDC, - 0xE0, - 0x29, - 0x5D, - 0x6A, - 0xB8, - 0xF3, - 0x08, - 0xEF, - 0x00, - 0x2C, - 0xF1, - 0xF8, - 0xF4, - 0xA5, - 0x6B, - 0x6A, - 0x6A, - 0x6B, - 0xCE, - 0xD0, - 0xC8, - 0xC3, - 0xBE, - 0xC3, - 0xBF, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xC3, - 0xC3, - 0xC3, - 0xC8, - 0xB9, - 0xC3, - 0xC3, - 0xC3, - 0xBF, - 0xCD, - 0x86, - 0x6A, - 0x6A, - 0x73, - 0x75, - 0xB6, - 0xBD, - 0xCE, - 0xCD, - 0x5C, - 0x73, - 0x73, - 0x7A, - 0xA5, - 0xCD, - 0x05, - 0xBD, - 0x00, - 0x1C, - 0xBF, - 0xB9, - 0xBD, - 0xBD, - 0xBF, - 0xB9, - 0xB9, - 0xBF, - 0xB9, - 0xBD, - 0xBD, - 0xBA, - 0x3D, - 0x73, - 0x7A, - 0x7F, - 0x8C, - 0x77, - 0xCD, - 0xBA, - 0xB9, - 0xBC, - 0xBC, - 0xDD, - 0xEA, - 0xBC, - 0xBD, - 0xBF, - 0x04, - 0xBD, - 0x00, - 0x0C, - 0xB9, - 0xBA, - 0xB6, - 0xCE, - 0x92, - 0x7A, - 0x84, - 0x8B, - 0x8F, - 0x6D, - 0xB6, - 0xB6, - 0x04, - 0xBA, - 0x00, - 0x48, - 0xB9, - 0xBA, - 0xBA, - 0xBA, - 0xB6, - 0xBA, - 0xC1, - 0x03, - 0x31, - 0x64, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0xA5, - 0x26, - 0xB6, - 0xB8, - 0xB6, - 0xB6, - 0xB6, - 0x03, - 0x03, - 0x4F, - 0x68, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x9E, - 0x7E, - 0x22, - 0xB6, - 0xB6, - 0x86, - 0x29, - 0x86, - 0xFE, - 0x07, - 0x50, - 0x68, - 0x8C, - 0x8F, - 0x8F, - 0x9A, - 0x93, - 0x7F, - 0x89, - 0x22, - 0x29, - 0x1A, - 0x29, - 0x29, - 0x1A, - 0x04, - 0x26, - 0x31, - 0x68, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x48, - 0x1A, - 0x67, - 0xFF, - 0x1D, - 0x67, - 0x18, - 0x04, - 0x1D, - 0x00, - 0x18, - 0x58, - 0x1D, - 0x67, - 0x2B, - 0x5A, - 0x13, - 0x2C, - 0x76, - 0x2C, - 0x2C, - 0x48, - 0x48, - 0x24, - 0x49, - 0x2B, - 0x5E, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x65, - 0x24, - 0x20, - 0x48, - 0x04, - 0x49, - 0x00, - 0x17, - 0x4B, - 0x0B, - 0x2D, - 0x4B, - 0x4B, - 0x2D, - 0x11, - 0x79, - 0x7A, - 0x8F, - 0x8F, - 0x9A, - 0x88, - 0x2B, - 0x34, - 0x19, - 0x68, - 0x8F, - 0x8F, - 0x93, - 0x91, - 0x20, - 0x24, - 0x00, - 0x00, - 0x00, - 0x00, - 0x24, - 0xE2, - 0xC8, - 0xE2, - 0xDE, - 0xDE, - 0xE2, - 0xC8, - 0xE0, - 0xCF, - 0x92, - 0x4F, - 0x47, - 0x38, - 0x47, - 0x38, - 0xB6, - 0xE6, - 0xC9, - 0xE6, - 0xDC, - 0xE6, - 0xC8, - 0xE2, - 0xE2, - 0xC8, - 0xBA, - 0x92, - 0x5C, - 0x5E, - 0x4D, - 0x4D, - 0x47, - 0x47, - 0x46, - 0x3D, - 0xE2, - 0x07, - 0xC8, - 0x00, - 0x05, - 0xC9, - 0xCC, - 0xC9, - 0xE6, - 0xCC, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x08, - 0x3D, - 0x4D, - 0x5B, - 0x5B, - 0x68, - 0x92, - 0xC8, - 0xBF, - 0x04, - 0xC8, - 0x00, - 0x07, - 0xC9, - 0xC8, - 0xDC, - 0xBE, - 0xDC, - 0xC8, - 0xBE, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x09, - 0xBF, - 0xC3, - 0xDC, - 0xC9, - 0xE0, - 0x4F, - 0x6A, - 0x77, - 0xF0, - 0x00, - 0x0C, - 0xEF, - 0x00, - 0x5C, - 0xF8, - 0xF8, - 0xD0, - 0x5B, - 0x7A, - 0x79, - 0xE2, - 0xC8, - 0xCC, - 0xDC, - 0xC8, - 0xCB, - 0xBE, - 0xC8, - 0xC3, - 0xBF, - 0xC3, - 0xC8, - 0xC3, - 0xC8, - 0xC3, - 0xC3, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xCA, - 0x5F, - 0x73, - 0x73, - 0x7A, - 0xA5, - 0xCD, - 0xBD, - 0xB9, - 0x86, - 0x74, - 0x7F, - 0x7A, - 0x74, - 0xCE, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xBD, - 0xBC, - 0xBF, - 0xBC, - 0xBF, - 0xBF, - 0xB9, - 0xBF, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xCE, - 0x5E, - 0x7A, - 0x7A, - 0x7A, - 0x84, - 0x86, - 0xBA, - 0xBA, - 0xBC, - 0xBD, - 0xB9, - 0xBD, - 0xDC, - 0xBC, - 0xB9, - 0xBD, - 0xBD, - 0xBC, - 0xBA, - 0xBD, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0x5B, - 0x84, - 0x84, - 0x8C, - 0x84, - 0x86, - 0xB7, - 0xBA, - 0xD0, - 0xB8, - 0x05, - 0xBA, - 0x00, - 0x4F, - 0xB6, - 0xC1, - 0xFC, - 0x31, - 0x64, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0x92, - 0xB6, - 0xB6, - 0xB8, - 0x22, - 0xB8, - 0x22, - 0xFE, - 0x26, - 0x50, - 0x6A, - 0x8B, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x88, - 0x79, - 0x29, - 0x29, - 0xFF, - 0x22, - 0x29, - 0xD3, - 0x03, - 0x03, - 0x50, - 0x68, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x93, - 0x88, - 0x80, - 0x22, - 0x22, - 0x86, - 0x29, - 0x29, - 0x29, - 0x04, - 0x07, - 0x50, - 0x64, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x8F, - 0x8D, - 0x08, - 0x81, - 0x1D, - 0x1D, - 0x67, - 0x18, - 0x1D, - 0x67, - 0x2B, - 0x2B, - 0x67, - 0x67, - 0x67, - 0x2B, - 0x76, - 0x13, - 0x48, - 0x00, - 0x06, - 0x2C, - 0x00, - 0x27, - 0x49, - 0x2B, - 0x5C, - 0x84, - 0x8F, - 0x93, - 0x9A, - 0x7D, - 0x24, - 0x49, - 0x49, - 0x20, - 0x49, - 0x2C, - 0x2C, - 0x2C, - 0x49, - 0x49, - 0x2D, - 0x4B, - 0x2D, - 0x15, - 0x1D, - 0x6A, - 0x8F, - 0x8F, - 0x8F, - 0x90, - 0x48, - 0x34, - 0x39, - 0x5E, - 0x8F, - 0x8F, - 0x93, - 0x95, - 0x53, - 0x20, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0xDE, - 0xE2, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xDE, - 0xDE, - 0xC8, - 0xE2, - 0xE0, - 0x50, - 0x47, - 0x38, - 0x47, - 0x38, - 0xB6, - 0xF6, - 0xC9, - 0xDC, - 0xC7, - 0xE2, - 0xC8, - 0xE2, - 0xCB, - 0xE6, - 0xC8, - 0xE2, - 0xBD, - 0x92, - 0x5C, - 0x5E, - 0x4D, - 0x4D, - 0x4D, - 0x3D, - 0xE2, - 0xC9, - 0x05, - 0xC8, - 0x00, - 0x05, - 0xC9, - 0xC9, - 0xCC, - 0xC9, - 0xCC, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x08, - 0xF2, - 0x4F, - 0x5B, - 0x51, - 0x5B, - 0x68, - 0xB8, - 0xBF, - 0x08, - 0xC8, - 0x00, - 0x05, - 0xC3, - 0xC3, - 0xDC, - 0xDD, - 0xC7, - 0x00, - 0x04, - 0xC8, - 0x01, - 0xC3, - 0x04, - 0xC8, - 0x00, - 0x0D, - 0xCF, - 0x5B, - 0x73, - 0x80, - 0xF0, - 0xE3, - 0xEB, - 0xEB, - 0xEB, - 0xEF, - 0xEF, - 0xEF, - 0xEB, - 0x00, - 0x04, - 0xEF, - 0x00, - 0x6D, - 0xEB, - 0xE7, - 0xF4, - 0x5E, - 0x73, - 0x80, - 0xE2, - 0xC3, - 0xBD, - 0xBD, - 0xC8, - 0xBC, - 0xBF, - 0xC3, - 0xBC, - 0xBF, - 0xC3, - 0xBD, - 0xC3, - 0xC3, - 0xC3, - 0xCA, - 0xC3, - 0xBF, - 0xBD, - 0xCA, - 0xBD, - 0x86, - 0x68, - 0x73, - 0x73, - 0x64, - 0xCD, - 0xBA, - 0xB9, - 0xCE, - 0x5F, - 0x7A, - 0x73, - 0x84, - 0x79, - 0xCD, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xBF, - 0xBD, - 0xBD, - 0xB9, - 0xBF, - 0xBF, - 0xB9, - 0xBD, - 0xBA, - 0xB9, - 0xCE, - 0x86, - 0x6A, - 0x7A, - 0x7A, - 0x8F, - 0x77, - 0xFC, - 0xB9, - 0xC0, - 0xC0, - 0xBE, - 0xBD, - 0xBC, - 0xB9, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xBA, - 0xBC, - 0xB6, - 0xCE, - 0x50, - 0x7A, - 0x7A, - 0x8B, - 0x8F, - 0x8D, - 0xC1, - 0xBA, - 0xD3, - 0xB8, - 0xC0, - 0xB8, - 0xB7, - 0xB8, - 0xC1, - 0xFC, - 0xFC, - 0x31, - 0x64, - 0x8B, - 0x8C, - 0x8C, - 0x8F, - 0x8C, - 0x75, - 0x92, - 0xC1, - 0xC1, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x3A, - 0xC1, - 0x26, - 0x4F, - 0x6A, - 0x8B, - 0x8F, - 0x8C, - 0x8F, - 0x8F, - 0x88, - 0x78, - 0x22, - 0x26, - 0xFF, - 0xC0, - 0x81, - 0xD3, - 0x29, - 0x03, - 0x4F, - 0x74, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x93, - 0x88, - 0x58, - 0x04, - 0x22, - 0x29, - 0x29, - 0xFF, - 0x29, - 0x22, - 0x0D, - 0x4F, - 0x6A, - 0x8F, - 0x8F, - 0x8F, - 0x93, - 0x93, - 0x75, - 0x58, - 0x1A, - 0xFF, - 0x81, - 0x81, - 0x81, - 0x1D, - 0x1D, - 0x1D, - 0x67, - 0x1D, - 0x67, - 0x2C, - 0x5A, - 0x04, - 0x2B, - 0x00, - 0x0F, - 0x5A, - 0x48, - 0x2C, - 0x2C, - 0x49, - 0x49, - 0x48, - 0x20, - 0x39, - 0x74, - 0x8F, - 0x93, - 0x9A, - 0x97, - 0x20, - 0x00, - 0x04, - 0x49, - 0x00, - 0x1B, - 0x20, - 0x49, - 0x49, - 0x49, - 0x2C, - 0x34, - 0x20, - 0x49, - 0x20, - 0x18, - 0x5B, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x2E, - 0x20, - 0x1F, - 0x5C, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x7B, - 0x14, - 0x49, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x26, - 0xF4, - 0xE0, - 0xE2, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xE2, - 0xE2, - 0xDE, - 0xDE, - 0xE2, - 0x92, - 0x47, - 0x47, - 0x3A, - 0x47, - 0x86, - 0xF6, - 0xDE, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xE6, - 0xDE, - 0xDE, - 0xCB, - 0xC9, - 0xE2, - 0xC8, - 0xB8, - 0x5F, - 0x4D, - 0x4D, - 0x46, - 0x92, - 0xE2, - 0x08, - 0xC8, - 0x00, - 0x0D, - 0xC9, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xCF, - 0xCF, - 0x5E, - 0x51, - 0x5B, - 0x5D, - 0x5F, - 0xE2, - 0x00, - 0x06, - 0xC8, - 0x01, - 0xC3, - 0x05, - 0xC8, - 0x00, - 0x4C, - 0xC3, - 0xC3, - 0xC8, - 0xC8, - 0xCB, - 0xDD, - 0xDC, - 0xC5, - 0xDD, - 0xC9, - 0xC8, - 0xBD, - 0x5F, - 0x74, - 0xB7, - 0xCC, - 0xDD, - 0xE9, - 0xE3, - 0xE3, - 0xE3, - 0xEB, - 0xEB, - 0xEF, - 0xEB, - 0xEB, - 0xEF, - 0xEB, - 0xEB, - 0xE9, - 0xC1, - 0x64, - 0x73, - 0xA5, - 0xCA, - 0xBF, - 0xC3, - 0xC8, - 0xC3, - 0xC8, - 0xC3, - 0xCC, - 0xDC, - 0xBD, - 0xDC, - 0xBE, - 0xBD, - 0xC3, - 0xC8, - 0xC3, - 0xC3, - 0xC3, - 0xBF, - 0xBF, - 0xBA, - 0xCA, - 0x5F, - 0x73, - 0x73, - 0x84, - 0xA5, - 0xCD, - 0xBA, - 0xB9, - 0x22, - 0x74, - 0x73, - 0x7A, - 0x75, - 0xC1, - 0xB9, - 0xBC, - 0xC0, - 0xBC, - 0xB9, - 0xBF, - 0x05, - 0xB9, - 0x00, - 0x89, - 0xBC, - 0xBA, - 0xBA, - 0xFC, - 0x5E, - 0x7A, - 0x7A, - 0x7A, - 0x84, - 0x86, - 0xB9, - 0xB8, - 0xC4, - 0xBE, - 0xBA, - 0xBE, - 0xEA, - 0xBC, - 0xBE, - 0xBD, - 0xB9, - 0xB9, - 0xBD, - 0xB9, - 0xBA, - 0xB8, - 0xBA, - 0xC1, - 0x64, - 0x8B, - 0x84, - 0x8C, - 0x90, - 0x26, - 0xC1, - 0xBA, - 0xB8, - 0x29, - 0xB8, - 0xC0, - 0x29, - 0xB6, - 0xFC, - 0x31, - 0x64, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x8F, - 0x75, - 0xA5, - 0xB6, - 0xB8, - 0xB8, - 0x22, - 0xB8, - 0x26, - 0xC1, - 0x03, - 0x50, - 0x6A, - 0x8C, - 0x8C, - 0x8C, - 0x8F, - 0x93, - 0x88, - 0x79, - 0x22, - 0xB6, - 0xB6, - 0xB6, - 0x86, - 0x86, - 0x03, - 0x07, - 0x4F, - 0x74, - 0x8C, - 0x93, - 0x93, - 0x9A, - 0x96, - 0x88, - 0x79, - 0x22, - 0x22, - 0x86, - 0x86, - 0x86, - 0xFF, - 0x29, - 0x0D, - 0x4F, - 0x74, - 0x8C, - 0x93, - 0x8F, - 0x93, - 0x93, - 0x88, - 0x89, - 0x1A, - 0x1A, - 0x81, - 0x18, - 0x06, - 0xFF, - 0xFF, - 0x81, - 0x81, - 0x39, - 0x67, - 0x2B, - 0x67, - 0x5A, - 0x76, - 0x4A, - 0x2C, - 0x76, - 0x48, - 0x48, - 0x48, - 0x2C, - 0x2C, - 0x48, - 0x2C, - 0x49, - 0x1D, - 0x77, - 0x8F, - 0x93, - 0x93, - 0x95, - 0x52, - 0x48, - 0x00, - 0x06, - 0x49, - 0x01, - 0x2D, - 0x05, - 0x49, - 0x00, - 0x13, - 0x1F, - 0x5F, - 0x8C, - 0x8F, - 0x8F, - 0x9A, - 0x66, - 0x15, - 0x2D, - 0x39, - 0x73, - 0x8F, - 0x8F, - 0x9A, - 0x88, - 0x24, - 0x20, - 0x2C, - 0x48, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xE0, - 0xE0, - 0xE0, - 0xF4, - 0xDE, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x86, - 0x47, - 0x47, - 0x47, - 0x3A, - 0x3D, - 0xFC, - 0xF6, - 0xE2, - 0xE2, - 0xC8, - 0xCB, - 0xDC, - 0xC9, - 0xF5, - 0xDC, - 0xCC, - 0xDC, - 0xE0, - 0xB8, - 0x5F, - 0x4D, - 0x4D, - 0x4D, - 0x3D, - 0xE2, - 0x00, - 0x04, - 0xC8, - 0x01, - 0xDE, - 0x07, - 0xC8, - 0x00, - 0x08, - 0xE6, - 0x86, - 0x4D, - 0x5B, - 0x5B, - 0x5D, - 0x79, - 0xE2, - 0x0A, - 0xC8, - 0x01, - 0xC3, - 0x01, - 0xC3, - 0x04, - 0xC8, - 0x00, - 0x14, - 0xC3, - 0xC7, - 0xC5, - 0xDD, - 0xEA, - 0xCB, - 0xE2, - 0xDE, - 0xF6, - 0xBD, - 0xCA, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xEA, - 0xE9, - 0xDF, - 0xE3, - 0xE3, - 0x04, - 0xEB, - 0x00, - 0x4B, - 0xE3, - 0xDD, - 0x4F, - 0x6A, - 0x74, - 0xBD, - 0xCA, - 0xCC, - 0xCC, - 0xBF, - 0xBF, - 0xC3, - 0xC3, - 0xBF, - 0xBD, - 0xBF, - 0xBE, - 0xBE, - 0xBF, - 0xCA, - 0xC3, - 0xBF, - 0xBD, - 0xBF, - 0xB9, - 0xB9, - 0xBD, - 0xCE, - 0x86, - 0x74, - 0x73, - 0x7A, - 0x75, - 0xC1, - 0xBA, - 0xBA, - 0xCD, - 0x5F, - 0x7A, - 0x73, - 0x84, - 0x78, - 0xCD, - 0xFF, - 0xEA, - 0xD0, - 0xBA, - 0xD1, - 0xB9, - 0xBA, - 0xBD, - 0xBD, - 0xB9, - 0xBA, - 0xB9, - 0xBA, - 0x86, - 0x74, - 0x7A, - 0x7A, - 0x8C, - 0x7B, - 0xB9, - 0xC1, - 0xBA, - 0xBA, - 0xD0, - 0xD0, - 0xC0, - 0xEA, - 0xBC, - 0xC0, - 0xBC, - 0xBE, - 0xD0, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x53, - 0xFC, - 0x78, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x80, - 0xB6, - 0xB6, - 0xBA, - 0xC1, - 0xBA, - 0xC1, - 0xB6, - 0xFE, - 0x1C, - 0x5B, - 0x84, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x75, - 0x92, - 0x26, - 0xB6, - 0x86, - 0xB6, - 0x86, - 0xB8, - 0x26, - 0x26, - 0x50, - 0x6A, - 0x8C, - 0x8F, - 0x8C, - 0x93, - 0x93, - 0x88, - 0x79, - 0x26, - 0x26, - 0xD3, - 0xB7, - 0x86, - 0x22, - 0x26, - 0x03, - 0x4F, - 0x74, - 0x8C, - 0x93, - 0x93, - 0xA0, - 0x96, - 0x88, - 0x76, - 0xFF, - 0x29, - 0x86, - 0x29, - 0x29, - 0x04, - 0xFE, - 0x07, - 0x4F, - 0x73, - 0x8F, - 0x8F, - 0x8F, - 0x9A, - 0x93, - 0x75, - 0x89, - 0x08, - 0x1A, - 0x1A, - 0x81, - 0xFF, - 0xDB, - 0x18, - 0x18, - 0x00, - 0x04, - 0x67, - 0x00, - 0x1A, - 0x1D, - 0x1D, - 0x2B, - 0x2B, - 0x2B, - 0x2C, - 0x4A, - 0x24, - 0x2B, - 0x48, - 0x2C, - 0x2C, - 0x48, - 0x2C, - 0x49, - 0x2B, - 0x5C, - 0x8C, - 0x93, - 0x93, - 0x9A, - 0x6C, - 0x2C, - 0x49, - 0x49, - 0x48, - 0x04, - 0x49, - 0x00, - 0x19, - 0x2D, - 0x49, - 0x20, - 0x49, - 0x35, - 0x24, - 0x79, - 0x7A, - 0x8F, - 0x8F, - 0x9A, - 0x7D, - 0x2D, - 0x2D, - 0x39, - 0x68, - 0x8F, - 0x8F, - 0x9A, - 0x97, - 0x48, - 0x20, - 0x48, - 0x48, - 0x24, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2E, - 0xDE, - 0xE2, - 0xE2, - 0xC9, - 0xE0, - 0xE0, - 0xF4, - 0xDE, - 0xE2, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xE2, - 0xB8, - 0x5C, - 0x47, - 0x47, - 0x47, - 0x38, - 0x21, - 0x1C, - 0xFC, - 0xF6, - 0xE2, - 0xC8, - 0xC8, - 0xCB, - 0xCC, - 0xDC, - 0xCC, - 0xDC, - 0xC9, - 0x29, - 0x5E, - 0x4D, - 0x4D, - 0x51, - 0x3D, - 0xE2, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xC8, - 0xC9, - 0x06, - 0xC8, - 0x00, - 0x0A, - 0x78, - 0x5B, - 0x5B, - 0x5B, - 0x68, - 0x29, - 0xCF, - 0xC9, - 0xC9, - 0xBF, - 0x06, - 0xC8, - 0x00, - 0x06, - 0xC3, - 0xC9, - 0xCC, - 0xC3, - 0xBF, - 0xBF, - 0x04, - 0xC8, - 0x00, - 0xBE, - 0xCB, - 0xDD, - 0xC9, - 0xDC, - 0x47, - 0x50, - 0xDD, - 0xDC, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xCC, - 0xDC, - 0xDD, - 0xE9, - 0xDF, - 0xE3, - 0xE3, - 0xEB, - 0xE3, - 0xF4, - 0x5B, - 0x7A, - 0x80, - 0xCD, - 0xBD, - 0xBC, - 0xBF, - 0xCC, - 0xBD, - 0xBF, - 0xBF, - 0xBF, - 0xC3, - 0xC3, - 0xBF, - 0xBF, - 0xBF, - 0xC3, - 0xBF, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xBD, - 0xB9, - 0xBD, - 0xCD, - 0x5F, - 0x7A, - 0x73, - 0x84, - 0x78, - 0xCE, - 0xB6, - 0xB9, - 0x86, - 0x74, - 0x7A, - 0x7A, - 0x74, - 0xB9, - 0xD3, - 0xB7, - 0xBA, - 0xBE, - 0xD1, - 0xBD, - 0xBE, - 0xB7, - 0xBA, - 0xBC, - 0xBA, - 0xBA, - 0xFC, - 0x5E, - 0x7A, - 0x7A, - 0x84, - 0x8C, - 0x86, - 0xC1, - 0xBA, - 0xBA, - 0xBD, - 0xB9, - 0xBD, - 0xBC, - 0xBA, - 0xBE, - 0xC0, - 0xBC, - 0xC4, - 0xD1, - 0xBE, - 0xB9, - 0xBA, - 0xC1, - 0x26, - 0x68, - 0x8C, - 0x84, - 0x8C, - 0x7F, - 0xB8, - 0xB6, - 0xB6, - 0xB8, - 0xB6, - 0xB6, - 0xC1, - 0x1C, - 0x5B, - 0x84, - 0x8C, - 0x8C, - 0x8F, - 0x95, - 0x75, - 0x89, - 0xB6, - 0xC1, - 0x22, - 0xB6, - 0xB6, - 0x26, - 0xC1, - 0x03, - 0x50, - 0x68, - 0x8C, - 0x8F, - 0x8C, - 0x93, - 0x93, - 0x88, - 0x79, - 0x26, - 0xB6, - 0xB6, - 0x86, - 0x86, - 0x86, - 0x03, - 0x26, - 0x4F, - 0x74, - 0x8C, - 0x8F, - 0x93, - 0x9A, - 0x96, - 0x88, - 0x76, - 0x29, - 0xFF, - 0x1A, - 0x67, - 0x29, - 0xFF, - 0x07, - 0x26, - 0x47, - 0x73, - 0x8F, - 0x8F, - 0x8F, - 0x9A, - 0x93, - 0x7B, - 0x58, - 0x1A, - 0x1A, - 0x81, - 0x81, - 0x1A, - 0x81, - 0xFF, - 0x1D, - 0xFF, - 0x18, - 0xFF, - 0x67, - 0x02, - 0x5A, - 0x67, - 0x67, - 0x67, - 0x04, - 0x2B, - 0x00, - 0x13, - 0x48, - 0x2C, - 0x2C, - 0x4B, - 0x4B, - 0x2C, - 0x49, - 0x48, - 0x39, - 0x7F, - 0x93, - 0x93, - 0x9A, - 0x8E, - 0x48, - 0x49, - 0x49, - 0x49, - 0x20, - 0x00, - 0x07, - 0x49, - 0x00, - 0x16, - 0x35, - 0x49, - 0x39, - 0x6A, - 0x8F, - 0x8F, - 0x9A, - 0x97, - 0x34, - 0x49, - 0x39, - 0x6B, - 0x8F, - 0x8F, - 0x93, - 0x95, - 0x52, - 0x24, - 0x48, - 0x48, - 0x48, - 0x48, - 0x00, - 0x00, - 0x00, - 0x12, - 0xCD, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0xDE, - 0xC9, - 0xDE, - 0xE2, - 0xE2, - 0xC8, - 0xE0, - 0xC9, - 0xC8, - 0xE2, - 0xBD, - 0x4F, - 0x4D, - 0x05, - 0x47, - 0x00, - 0x29, - 0x21, - 0x1C, - 0x03, - 0xF6, - 0xF6, - 0xC8, - 0xC9, - 0xCC, - 0xC9, - 0xEC, - 0xDD, - 0x81, - 0x5E, - 0x4D, - 0x4D, - 0x5B, - 0x3D, - 0xE2, - 0xC8, - 0xC8, - 0xDE, - 0xC8, - 0xC9, - 0xC8, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xCA, - 0x47, - 0x5B, - 0x5B, - 0x5D, - 0x64, - 0xD0, - 0xCC, - 0xBC, - 0xBF, - 0xBF, - 0xCA, - 0xC3, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x32, - 0xC3, - 0xBF, - 0xBF, - 0xC9, - 0xC3, - 0xBF, - 0xBF, - 0xC8, - 0xC8, - 0xBF, - 0xE2, - 0x3D, - 0x68, - 0x74, - 0xD1, - 0xE6, - 0xCB, - 0xCB, - 0xBF, - 0xC3, - 0xC8, - 0xBF, - 0xC8, - 0xC8, - 0xCC, - 0xCB, - 0xDD, - 0xE9, - 0xDF, - 0xF1, - 0x3D, - 0x6A, - 0x7F, - 0xB7, - 0xCD, - 0xCA, - 0xBF, - 0xB9, - 0xBC, - 0xBD, - 0xBF, - 0xBF, - 0xBD, - 0xBF, - 0xBF, - 0xBF, - 0xC3, - 0xC3, - 0xB9, - 0xBF, - 0x04, - 0xBD, - 0x00, - 0x80, - 0xBC, - 0xBD, - 0xBA, - 0xBA, - 0xB6, - 0x74, - 0x7F, - 0x7A, - 0x75, - 0x26, - 0xBA, - 0xC1, - 0xCE, - 0x5F, - 0x7A, - 0x73, - 0x84, - 0x79, - 0xCE, - 0xBA, - 0xBA, - 0xB7, - 0xB8, - 0xD1, - 0xC0, - 0xBE, - 0xBE, - 0xC0, - 0xBA, - 0xCE, - 0x3D, - 0x74, - 0x7A, - 0x7A, - 0x8F, - 0x77, - 0xC1, - 0xBA, - 0xBC, - 0xBA, - 0xBA, - 0xBD, - 0xBA, - 0xBD, - 0xB9, - 0xBC, - 0xBC, - 0xB7, - 0xEA, - 0xD1, - 0xB9, - 0xBA, - 0xBA, - 0xC1, - 0x4F, - 0x7A, - 0x8B, - 0x8C, - 0x8F, - 0x78, - 0x26, - 0xB6, - 0xB8, - 0xB6, - 0xB8, - 0xC1, - 0x5C, - 0x7A, - 0x8C, - 0x8C, - 0x93, - 0x93, - 0x7B, - 0x78, - 0xD3, - 0x29, - 0xD3, - 0x86, - 0xB7, - 0x86, - 0x03, - 0x03, - 0x4F, - 0x68, - 0x8C, - 0x8C, - 0x8F, - 0x8F, - 0x8F, - 0x88, - 0x7E, - 0xC0, - 0xB6, - 0x29, - 0xB6, - 0x22, - 0xB6, - 0xFE, - 0x0D, - 0x5C, - 0x74, - 0x8C, - 0x8F, - 0x8F, - 0x9A, - 0x95, - 0x7B, - 0xA5, - 0x22, - 0x04, - 0x29, - 0xFF, - 0xFF, - 0x29, - 0xFA, - 0x08, - 0x5E, - 0x7F, - 0x8F, - 0x8F, - 0x8F, - 0x9A, - 0x91, - 0x7B, - 0x58, - 0x29, - 0x81, - 0x1A, - 0x08, - 0x81, - 0x00, - 0x1C, - 0x67, - 0x67, - 0x17, - 0x0E, - 0x17, - 0x5A, - 0x0E, - 0x17, - 0x5A, - 0x5A, - 0x2B, - 0x48, - 0x48, - 0x48, - 0x2C, - 0x2E, - 0x49, - 0x49, - 0x4B, - 0x1D, - 0x68, - 0x8F, - 0x93, - 0x9A, - 0x97, - 0x35, - 0x49, - 0x25, - 0x08, - 0x49, - 0x00, - 0x18, - 0x35, - 0x49, - 0x2C, - 0x1A, - 0x64, - 0x8F, - 0x8F, - 0x93, - 0x95, - 0x52, - 0x20, - 0x1F, - 0x5F, - 0x8C, - 0x8F, - 0x93, - 0x93, - 0x65, - 0x24, - 0x20, - 0x20, - 0x2C, - 0x48, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x03, - 0x38, - 0x31, - 0x26, - 0x00, - 0x06, - 0xE2, - 0x00, - 0x21, - 0xC8, - 0xDE, - 0xE6, - 0xCC, - 0xDE, - 0xF4, - 0xE0, - 0xCA, - 0x92, - 0x5F, - 0x4D, - 0x4D, - 0x47, - 0x47, - 0x47, - 0x4D, - 0x47, - 0x38, - 0x3D, - 0x03, - 0xE2, - 0xF6, - 0xC8, - 0xE0, - 0xDC, - 0xE0, - 0x81, - 0x5E, - 0x4D, - 0x4D, - 0x5B, - 0x3D, - 0xE2, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x11, - 0xBF, - 0xC8, - 0xC8, - 0xB8, - 0x4D, - 0x51, - 0x5B, - 0x68, - 0x78, - 0xE2, - 0xBF, - 0xCC, - 0xCC, - 0xC9, - 0xBF, - 0xDC, - 0xC3, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x17, - 0xC3, - 0xC9, - 0xBF, - 0xC9, - 0xC9, - 0xBF, - 0xBF, - 0xBF, - 0xC8, - 0xE2, - 0x5F, - 0x6A, - 0x6B, - 0xF7, - 0xF7, - 0xDE, - 0xF0, - 0xF0, - 0xCB, - 0xCB, - 0xC7, - 0xC9, - 0xBF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x4A, - 0xCC, - 0xF4, - 0x5E, - 0x73, - 0x77, - 0xCA, - 0xCC, - 0xBC, - 0xCA, - 0xC3, - 0xC3, - 0xBF, - 0xBF, - 0xBD, - 0xBF, - 0xBF, - 0xBC, - 0xBF, - 0xBF, - 0xBD, - 0xC3, - 0xC3, - 0xC3, - 0xB9, - 0xBF, - 0xBD, - 0xBC, - 0xBD, - 0xBD, - 0xBA, - 0xCE, - 0x80, - 0x7A, - 0x7F, - 0x84, - 0x79, - 0xCD, - 0xC1, - 0xC1, - 0x86, - 0x73, - 0x84, - 0x84, - 0x74, - 0xB6, - 0xC1, - 0xBA, - 0xB9, - 0xB9, - 0xB8, - 0xB8, - 0xBA, - 0xB7, - 0xB7, - 0xBA, - 0xFA, - 0x6D, - 0x7A, - 0x7A, - 0x84, - 0x91, - 0x86, - 0xC1, - 0xBA, - 0xB8, - 0xBA, - 0xBD, - 0xB8, - 0xBC, - 0xBC, - 0xBA, - 0xBA, - 0xB9, - 0xB9, - 0x04, - 0xBA, - 0x00, - 0x4A, - 0xC1, - 0x86, - 0x6A, - 0x84, - 0x84, - 0x8F, - 0x88, - 0x26, - 0xBA, - 0xB6, - 0xB8, - 0xB6, - 0xC1, - 0x3D, - 0x73, - 0x8C, - 0x8C, - 0x93, - 0x88, - 0x92, - 0xC1, - 0x26, - 0xB8, - 0x86, - 0x86, - 0x29, - 0xC1, - 0x03, - 0x4F, - 0x68, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x8C, - 0x75, - 0xA5, - 0x05, - 0xC4, - 0x86, - 0xB7, - 0x67, - 0x29, - 0xFA, - 0x26, - 0x47, - 0x74, - 0x8F, - 0x93, - 0x8F, - 0x9A, - 0x91, - 0x7B, - 0xA5, - 0x22, - 0xD3, - 0x86, - 0x86, - 0x86, - 0x22, - 0x03, - 0x07, - 0x5E, - 0x7F, - 0x8F, - 0x93, - 0x93, - 0x9A, - 0x91, - 0x77, - 0xA5, - 0x22, - 0x29, - 0x1A, - 0x04, - 0x81, - 0x00, - 0x20, - 0xFF, - 0x81, - 0x1D, - 0xFF, - 0x39, - 0x81, - 0x1D, - 0x39, - 0x67, - 0x67, - 0x5A, - 0x0E, - 0x4A, - 0x5A, - 0x0E, - 0x2C, - 0x2C, - 0x4A, - 0x48, - 0x48, - 0x2C, - 0x49, - 0x49, - 0x2E, - 0x11, - 0x6B, - 0x8F, - 0x8F, - 0x93, - 0x93, - 0x7C, - 0x20, - 0x05, - 0x49, - 0x00, - 0x1D, - 0x25, - 0x40, - 0x40, - 0x49, - 0x40, - 0x2D, - 0x19, - 0x31, - 0x64, - 0x8F, - 0x8F, - 0x93, - 0xA0, - 0x65, - 0x20, - 0x2C, - 0x79, - 0x7A, - 0x8F, - 0x8F, - 0x9A, - 0x7D, - 0x24, - 0x49, - 0x48, - 0x49, - 0x49, - 0x2C, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0x38, - 0x38, - 0x47, - 0x31, - 0xF2, - 0xE2, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xC8, - 0xCC, - 0xE6, - 0xE0, - 0xDC, - 0xCC, - 0xDE, - 0xC8, - 0xCF, - 0x86, - 0x78, - 0x5F, - 0x4D, - 0x4D, - 0x4D, - 0x47, - 0x4D, - 0x4D, - 0x4D, - 0x38, - 0x50, - 0xE0, - 0xC8, - 0xC8, - 0xC8, - 0xE0, - 0xB7, - 0x5E, - 0x5B, - 0x4D, - 0x4D, - 0x81, - 0xDC, - 0xC8, - 0xBF, - 0x00, - 0x06, - 0xC8, - 0x00, - 0x79, - 0x86, - 0x5B, - 0x5B, - 0x5B, - 0x68, - 0x81, - 0xC7, - 0xC8, - 0xC8, - 0xBF, - 0xBF, - 0xC3, - 0xC9, - 0xBF, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xCC, - 0xC8, - 0xC8, - 0xC8, - 0xC3, - 0xBF, - 0xBF, - 0xC3, - 0xCC, - 0xBD, - 0xDE, - 0xB6, - 0x5B, - 0x73, - 0x92, - 0xF3, - 0xEF, - 0xF3, - 0xF8, - 0xF7, - 0xE5, - 0xF0, - 0xCB, - 0xCB, - 0xDD, - 0xC9, - 0xBF, - 0xBF, - 0xC8, - 0xCA, - 0xB8, - 0x68, - 0x84, - 0x89, - 0xE0, - 0xCF, - 0xD0, - 0xBC, - 0xBC, - 0xCC, - 0xC3, - 0xC8, - 0xBF, - 0xBF, - 0xBD, - 0xBD, - 0xBF, - 0xBF, - 0xBC, - 0xBF, - 0xDD, - 0xCB, - 0xBF, - 0xBF, - 0xB9, - 0xBF, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xB6, - 0x75, - 0x73, - 0x7A, - 0x75, - 0xC1, - 0xC1, - 0xBA, - 0xB9, - 0x5F, - 0x84, - 0x7A, - 0x84, - 0x78, - 0xB6, - 0xB8, - 0xBA, - 0xBA, - 0xB9, - 0xB9, - 0xBA, - 0xB8, - 0xB8, - 0xB8, - 0x81, - 0x6A, - 0x7A, - 0x7A, - 0x8F, - 0x75, - 0xB6, - 0xBA, - 0xB9, - 0xBA, - 0xBA, - 0xBA, - 0xBC, - 0xBA, - 0xBA, - 0xBE, - 0xBC, - 0xBC, - 0xBC, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x90, - 0xC1, - 0x5C, - 0x7A, - 0x8C, - 0x8C, - 0x8C, - 0x79, - 0xB6, - 0xB6, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0x5B, - 0x8C, - 0x8C, - 0x8F, - 0x84, - 0x92, - 0xB6, - 0xB8, - 0xB6, - 0xB6, - 0x26, - 0xC1, - 0x03, - 0x4F, - 0x75, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x95, - 0x75, - 0x89, - 0x26, - 0x26, - 0xB6, - 0xB7, - 0x86, - 0xFF, - 0xF5, - 0x07, - 0x5F, - 0x73, - 0x8F, - 0x8F, - 0x8F, - 0x9A, - 0x91, - 0x77, - 0x81, - 0x26, - 0x22, - 0xD3, - 0x1A, - 0x29, - 0xD3, - 0xFE, - 0x1C, - 0x5E, - 0x7A, - 0x93, - 0x93, - 0x93, - 0x9A, - 0x91, - 0x7C, - 0xA5, - 0x04, - 0x29, - 0x1A, - 0x81, - 0x29, - 0x81, - 0x29, - 0x81, - 0x81, - 0x81, - 0x1D, - 0x81, - 0x81, - 0x81, - 0x1D, - 0x81, - 0x1D, - 0x1D, - 0x1D, - 0x58, - 0x5A, - 0x5A, - 0x48, - 0x4A, - 0x48, - 0x4A, - 0x4B, - 0x4A, - 0x4B, - 0x2D, - 0x49, - 0x49, - 0x48, - 0x4F, - 0x84, - 0x8F, - 0x8F, - 0x9A, - 0x7D, - 0x20, - 0x2E, - 0x40, - 0x49, - 0x49, - 0x35, - 0x25, - 0x49, - 0x49, - 0x35, - 0x49, - 0x1F, - 0x3D, - 0x5E, - 0x84, - 0x9A, - 0x93, - 0x9A, - 0x95, - 0x6C, - 0x49, - 0x49, - 0x39, - 0x6A, - 0x8F, - 0x8F, - 0x9A, - 0x90, - 0x20, - 0x20, - 0x48, - 0x20, - 0x20, - 0x48, - 0x49, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x2E, - 0x47, - 0x47, - 0x38, - 0x47, - 0x38, - 0xB6, - 0xE2, - 0xDE, - 0xC8, - 0xC8, - 0xC8, - 0xDE, - 0xE2, - 0xDE, - 0xC9, - 0xE0, - 0xC9, - 0xE6, - 0xE6, - 0xDE, - 0xE0, - 0xCF, - 0x86, - 0x78, - 0x5F, - 0x5B, - 0x4D, - 0x4D, - 0x3C, - 0x4D, - 0x4D, - 0x5C, - 0xCE, - 0xC8, - 0xC8, - 0xC8, - 0xE2, - 0x86, - 0x5B, - 0x4D, - 0x5B, - 0x5B, - 0x29, - 0xC9, - 0xDD, - 0xDC, - 0x05, - 0xC8, - 0x00, - 0x08, - 0xB8, - 0x5B, - 0x5B, - 0x5D, - 0x75, - 0xF5, - 0xDC, - 0xC3, - 0x08, - 0xC8, - 0x00, - 0x06, - 0xC3, - 0xEC, - 0xBE, - 0xCA, - 0xDC, - 0xBF, - 0x04, - 0xC8, - 0x00, - 0x07, - 0xBF, - 0xBF, - 0xE2, - 0x50, - 0x6A, - 0x74, - 0xCF, - 0x00, - 0x05, - 0xEF, - 0x00, - 0x3B, - 0xF3, - 0xF8, - 0xF7, - 0xE2, - 0xE6, - 0xC8, - 0xC8, - 0xBF, - 0xCF, - 0xDC, - 0xCA, - 0x78, - 0x6D, - 0xB8, - 0xBD, - 0xD1, - 0xBC, - 0xBE, - 0xBC, - 0xC5, - 0xBC, - 0xBE, - 0xBD, - 0xC3, - 0xC3, - 0xBF, - 0xC3, - 0xBF, - 0xBF, - 0xBC, - 0xEA, - 0xEA, - 0xC3, - 0xBE, - 0xC5, - 0xBD, - 0xBD, - 0xB9, - 0xBD, - 0xBA, - 0xCE, - 0x5F, - 0x7A, - 0x7F, - 0x84, - 0x79, - 0xCE, - 0xBA, - 0xC1, - 0x86, - 0x7F, - 0x7A, - 0x84, - 0x75, - 0xB6, - 0xB7, - 0xB8, - 0xB7, - 0xB8, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x10, - 0xFC, - 0x5F, - 0x7A, - 0x7A, - 0x84, - 0x95, - 0xB2, - 0xC0, - 0xBE, - 0xD1, - 0xB8, - 0xB9, - 0xB9, - 0xBA, - 0xBD, - 0xBC, - 0x05, - 0xBA, - 0x00, - 0x93, - 0xBC, - 0xBA, - 0xC1, - 0x22, - 0x74, - 0x8C, - 0x8C, - 0x8F, - 0x88, - 0xBA, - 0xB8, - 0xB6, - 0xBA, - 0xB6, - 0xC1, - 0x50, - 0x84, - 0x8C, - 0x8C, - 0x93, - 0x8D, - 0x26, - 0x86, - 0x86, - 0xB8, - 0x86, - 0xC1, - 0x3D, - 0x64, - 0x8C, - 0x8F, - 0x8F, - 0x93, - 0x95, - 0x75, - 0xA5, - 0x29, - 0x81, - 0x86, - 0xB6, - 0x86, - 0xB6, - 0xC1, - 0x07, - 0x5F, - 0x6A, - 0x8F, - 0x8F, - 0x8F, - 0x9A, - 0x91, - 0x77, - 0x92, - 0xB6, - 0xB6, - 0x86, - 0xD3, - 0x86, - 0xB6, - 0x03, - 0x3D, - 0x5E, - 0x7A, - 0x8F, - 0x93, - 0x9A, - 0x9F, - 0x97, - 0x7C, - 0x92, - 0x22, - 0x29, - 0x29, - 0x1A, - 0x29, - 0x29, - 0x81, - 0x1A, - 0x29, - 0x1A, - 0x29, - 0x81, - 0x81, - 0x1D, - 0x81, - 0x1D, - 0x81, - 0x1D, - 0x1D, - 0x58, - 0x5A, - 0x67, - 0x58, - 0x2B, - 0x2B, - 0x2B, - 0x4A, - 0x0B, - 0x49, - 0x0B, - 0x55, - 0x61, - 0x2D, - 0x2D, - 0x39, - 0x74, - 0x8F, - 0x93, - 0x9A, - 0x97, - 0x2D, - 0x49, - 0x40, - 0x49, - 0x40, - 0x2E, - 0x49, - 0x49, - 0x35, - 0x49, - 0x2B, - 0x19, - 0x5F, - 0x7A, - 0x9A, - 0x9A, - 0x9A, - 0x96, - 0x88, - 0x53, - 0x48, - 0x1D, - 0x1B, - 0x64, - 0x8F, - 0x8F, - 0x8F, - 0x95, - 0x40, - 0x15, - 0x49, - 0x49, - 0x49, - 0x48, - 0x2C, - 0x2C, - 0x48, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3F, - 0xB7, - 0x50, - 0x47, - 0x38, - 0x47, - 0x38, - 0x22, - 0xE2, - 0xC7, - 0xDE, - 0xC8, - 0xC8, - 0xE2, - 0xE2, - 0xC8, - 0xC8, - 0xDE, - 0xF4, - 0xC9, - 0xCC, - 0xE6, - 0xCC, - 0xE0, - 0xDE, - 0xCC, - 0xB8, - 0x78, - 0x5F, - 0x5E, - 0x5B, - 0x5E, - 0x4D, - 0x5F, - 0xCA, - 0xC8, - 0xCA, - 0xC8, - 0xC8, - 0x86, - 0x5B, - 0x4D, - 0x5B, - 0x4D, - 0x29, - 0xEC, - 0xCC, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xC8, - 0xCA, - 0x5E, - 0x5B, - 0x51, - 0x68, - 0xFF, - 0xE0, - 0xCA, - 0xC8, - 0xC8, - 0xC9, - 0xBF, - 0x00, - 0x04, - 0xC8, - 0x00, - 0xB2, - 0xC3, - 0xCC, - 0xBF, - 0xCB, - 0xD1, - 0xCC, - 0xBF, - 0xC9, - 0xC3, - 0xBF, - 0xC8, - 0xC8, - 0xF2, - 0x5F, - 0x6A, - 0x56, - 0xF0, - 0xEB, - 0xEB, - 0xEF, - 0xEB, - 0xEF, - 0xEB, - 0xEF, - 0xEF, - 0xF3, - 0xF3, - 0xF7, - 0xE2, - 0xC8, - 0xCC, - 0xF9, - 0x07, - 0xF2, - 0xCE, - 0xCA, - 0xBF, - 0xBD, - 0xBF, - 0xBD, - 0xD0, - 0xCC, - 0xBD, - 0xBE, - 0xCC, - 0xBF, - 0xD0, - 0xC3, - 0xB9, - 0xBF, - 0xBF, - 0xC5, - 0xDD, - 0xDC, - 0xBC, - 0xDD, - 0xCB, - 0xDD, - 0xDD, - 0xBC, - 0xB9, - 0xBA, - 0xB9, - 0xB6, - 0x68, - 0x7A, - 0x7A, - 0x74, - 0x26, - 0xB6, - 0xB8, - 0xC1, - 0x5F, - 0x84, - 0x7A, - 0x8C, - 0x92, - 0xC1, - 0xBA, - 0xB7, - 0xB8, - 0xB7, - 0xC0, - 0xB7, - 0xC1, - 0x22, - 0x6A, - 0x84, - 0x84, - 0x8F, - 0x75, - 0xC0, - 0xB7, - 0xFF, - 0xB8, - 0xBE, - 0xBE, - 0xBE, - 0xBC, - 0xBA, - 0xB9, - 0xBD, - 0xBD, - 0xBC, - 0xBA, - 0xB8, - 0xB8, - 0xB6, - 0xC1, - 0x56, - 0x7A, - 0x8C, - 0x8C, - 0x91, - 0x78, - 0x26, - 0xB8, - 0xB6, - 0xB6, - 0x26, - 0xD3, - 0x75, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x86, - 0xB6, - 0xB8, - 0xB8, - 0xB8, - 0xC1, - 0x3D, - 0x73, - 0x8F, - 0x95, - 0x93, - 0x95, - 0x77, - 0x92, - 0xB6, - 0x22, - 0x81, - 0x29, - 0xB8, - 0x26, - 0x03, - 0x1C, - 0x5F, - 0x7F, - 0x8F, - 0x93, - 0x9A, - 0x9A, - 0x90, - 0x7B, - 0x92, - 0x26, - 0x22, - 0x86, - 0x29, - 0x86, - 0xB6, - 0x03, - 0x31, - 0x5E, - 0x7A, - 0x8F, - 0x8F, - 0x9A, - 0x9A, - 0x90, - 0x7C, - 0x1A, - 0x04, - 0x29, - 0x29, - 0x81, - 0x05, - 0x29, - 0x00, - 0x0D, - 0x81, - 0x1A, - 0x81, - 0x67, - 0xFF, - 0x81, - 0x81, - 0x81, - 0x1D, - 0x67, - 0x67, - 0x1D, - 0x5A, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x35, - 0x4A, - 0x49, - 0x2C, - 0x49, - 0x2C, - 0x4B, - 0x2D, - 0x61, - 0x2E, - 0x13, - 0x77, - 0x8F, - 0x8F, - 0x9A, - 0x95, - 0x53, - 0x49, - 0x40, - 0x40, - 0x61, - 0x2F, - 0x40, - 0x2E, - 0x41, - 0x11, - 0x19, - 0x5C, - 0x74, - 0x8F, - 0x9A, - 0x9A, - 0xA0, - 0x90, - 0x65, - 0x20, - 0x1F, - 0x19, - 0x5F, - 0x7F, - 0x93, - 0x8F, - 0x93, - 0x95, - 0x7C, - 0x14, - 0x4B, - 0x34, - 0x49, - 0x20, - 0x2D, - 0x49, - 0x2C, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xE2, - 0xC8, - 0x86, - 0x00, - 0x04, - 0x47, - 0x00, - 0x08, - 0x31, - 0xF2, - 0xE2, - 0xDE, - 0xDE, - 0xC8, - 0xC8, - 0xDE, - 0x04, - 0xC8, - 0x00, - 0x29, - 0xDE, - 0xC9, - 0xDE, - 0xCC, - 0xE0, - 0xC8, - 0xE2, - 0xE2, - 0xCA, - 0xB8, - 0x5C, - 0x5E, - 0x4D, - 0x5B, - 0x47, - 0xCC, - 0xCA, - 0xC8, - 0xC8, - 0xE2, - 0x92, - 0x6B, - 0x5B, - 0x5B, - 0x5B, - 0x29, - 0xC8, - 0xC8, - 0xC8, - 0xBF, - 0xDD, - 0xEC, - 0xC8, - 0x86, - 0x64, - 0x5B, - 0x5D, - 0x6B, - 0xCA, - 0xC8, - 0xC8, - 0x00, - 0x06, - 0xBF, - 0x04, - 0xC8, - 0x00, - 0x0E, - 0xBD, - 0xDC, - 0xBF, - 0xCC, - 0xD0, - 0xC9, - 0xBE, - 0xDC, - 0xCC, - 0xC1, - 0x64, - 0x73, - 0x92, - 0xF3, - 0x0A, - 0xEB, - 0x00, - 0x0A, - 0xEF, - 0xF3, - 0xF8, - 0xE6, - 0x29, - 0x68, - 0x5B, - 0xC0, - 0xCC, - 0xB9, - 0x05, - 0xBF, - 0x00, - 0x86, - 0xBC, - 0xD0, - 0xBF, - 0xBC, - 0xBE, - 0xC3, - 0xCC, - 0xBD, - 0xCA, - 0xB9, - 0xBF, - 0xC3, - 0xBC, - 0xDD, - 0xBE, - 0xDD, - 0xDD, - 0xBE, - 0xB9, - 0xB9, - 0xBA, - 0xCD, - 0x5C, - 0x84, - 0x7A, - 0x84, - 0x79, - 0xC1, - 0xB6, - 0xBA, - 0x86, - 0x7F, - 0x7A, - 0x84, - 0x75, - 0xC1, - 0xC1, - 0xBA, - 0xBA, - 0xB7, - 0xB7, - 0xB6, - 0xFA, - 0x56, - 0x7A, - 0x7A, - 0x84, - 0x95, - 0x92, - 0xBA, - 0xB6, - 0xB7, - 0xD1, - 0xB8, - 0xC4, - 0xC0, - 0xB8, - 0xBE, - 0xBE, - 0xBD, - 0xB8, - 0xBA, - 0xBA, - 0xBA, - 0xB6, - 0xBA, - 0x3D, - 0x7F, - 0x8C, - 0x8C, - 0x8F, - 0x75, - 0xC1, - 0xB6, - 0xB6, - 0xBA, - 0xB6, - 0xC1, - 0x5C, - 0x8C, - 0x8C, - 0x8C, - 0x93, - 0x80, - 0x22, - 0x86, - 0xB6, - 0x26, - 0xB8, - 0x26, - 0x6B, - 0x8C, - 0x8C, - 0x8F, - 0x91, - 0x79, - 0xC1, - 0xB6, - 0x22, - 0xB6, - 0x86, - 0x26, - 0x03, - 0x22, - 0x5F, - 0x7F, - 0x8F, - 0x93, - 0x8F, - 0x9A, - 0x90, - 0x6D, - 0x3D, - 0xB6, - 0xB8, - 0xD3, - 0x86, - 0x29, - 0xD3, - 0x03, - 0x31, - 0x77, - 0x8C, - 0x93, - 0x93, - 0x9A, - 0x9A, - 0x90, - 0x8D, - 0x1A, - 0x29, - 0x29, - 0x1A, - 0x81, - 0x08, - 0x29, - 0x00, - 0x45, - 0x81, - 0x81, - 0xFF, - 0x18, - 0xFF, - 0x67, - 0x1D, - 0x81, - 0x1D, - 0x1D, - 0x2B, - 0x5A, - 0x76, - 0x2C, - 0x4A, - 0x15, - 0x2C, - 0x2D, - 0x2D, - 0x2C, - 0x48, - 0x49, - 0x49, - 0x17, - 0x05, - 0x5F, - 0x8C, - 0x93, - 0x93, - 0x9A, - 0x6C, - 0x2C, - 0x35, - 0x49, - 0x49, - 0x35, - 0x40, - 0x40, - 0x25, - 0x1D, - 0x78, - 0x68, - 0x8F, - 0x9A, - 0x9A, - 0x9A, - 0x90, - 0x65, - 0x49, - 0x1D, - 0x19, - 0x4F, - 0x73, - 0x93, - 0x9A, - 0x9A, - 0x93, - 0x90, - 0x52, - 0x20, - 0x2D, - 0x2D, - 0x49, - 0x20, - 0x2D, - 0x55, - 0x2E, - 0x2D, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x29, - 0xE2, - 0xE2, - 0xE2, - 0xB8, - 0x4F, - 0x47, - 0x47, - 0x3A, - 0x50, - 0xCE, - 0xE2, - 0xC8, - 0xC8, - 0xC7, - 0xDE, - 0xC8, - 0xDE, - 0xDE, - 0xC8, - 0xE2, - 0xC8, - 0xC8, - 0xDE, - 0xE6, - 0xDE, - 0xC8, - 0xC8, - 0xBF, - 0xE6, - 0xCC, - 0x5C, - 0x3C, - 0x4D, - 0x5B, - 0x47, - 0xCA, - 0xC8, - 0xC8, - 0xC8, - 0xE0, - 0x58, - 0x00, - 0x04, - 0x5B, - 0x00, - 0x29, - 0xB8, - 0xE2, - 0xC8, - 0xC8, - 0xBF, - 0xBC, - 0xBF, - 0xDC, - 0x5C, - 0x64, - 0x5B, - 0x5D, - 0x47, - 0xC1, - 0xE2, - 0xE2, - 0xC8, - 0xBF, - 0xBF, - 0xC9, - 0xCC, - 0xC3, - 0xBF, - 0xBD, - 0xC8, - 0xC3, - 0xC8, - 0xC8, - 0xBF, - 0xC8, - 0xBF, - 0xD1, - 0xD0, - 0xC9, - 0xB7, - 0x5D, - 0x74, - 0xFE, - 0xEF, - 0xE3, - 0xE3, - 0x00, - 0x0A, - 0xEB, - 0x00, - 0x0E, - 0xE7, - 0xF0, - 0x5F, - 0x73, - 0x75, - 0xD1, - 0xCA, - 0xBF, - 0xCA, - 0xBE, - 0xBE, - 0xBC, - 0xBF, - 0xCA, - 0x04, - 0xBF, - 0x00, - 0x38, - 0xBD, - 0xD0, - 0xBC, - 0xC3, - 0xBC, - 0xBF, - 0xBD, - 0xBF, - 0xB9, - 0xBF, - 0xBE, - 0xDD, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xB6, - 0x68, - 0x7A, - 0x7A, - 0x74, - 0xC1, - 0xB6, - 0xB6, - 0x26, - 0x5F, - 0x84, - 0x7A, - 0x8C, - 0xA5, - 0xC1, - 0xBA, - 0xBA, - 0xBA, - 0xB8, - 0xC1, - 0x86, - 0x68, - 0x7A, - 0x84, - 0x8F, - 0x75, - 0xD3, - 0xC1, - 0xBA, - 0xB9, - 0xBA, - 0xBA, - 0xC0, - 0xBC, - 0xD1, - 0xD1, - 0xD1, - 0xBD, - 0xC0, - 0x04, - 0xBA, - 0x00, - 0x88, - 0xC1, - 0x5E, - 0x8C, - 0x91, - 0x8C, - 0x91, - 0x92, - 0xB6, - 0xB6, - 0xB8, - 0xB6, - 0xB6, - 0x26, - 0x74, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x81, - 0xC4, - 0xB7, - 0xB8, - 0xB6, - 0xC1, - 0x50, - 0x84, - 0x8C, - 0x8F, - 0x9A, - 0x77, - 0xD1, - 0xFF, - 0x86, - 0xC0, - 0xC0, - 0x26, - 0x22, - 0x5C, - 0x73, - 0x8F, - 0x8F, - 0x93, - 0x9A, - 0x97, - 0x7C, - 0x1A, - 0x29, - 0xD3, - 0x22, - 0x86, - 0x86, - 0xB6, - 0x03, - 0x31, - 0x5B, - 0x8C, - 0x93, - 0x9A, - 0x9A, - 0xA0, - 0x90, - 0x60, - 0x22, - 0x22, - 0x29, - 0x29, - 0x81, - 0xC0, - 0x29, - 0x81, - 0x81, - 0x29, - 0x29, - 0x81, - 0x29, - 0x81, - 0x81, - 0x1A, - 0x81, - 0x18, - 0x67, - 0x17, - 0xDB, - 0x18, - 0x5A, - 0x18, - 0x58, - 0x67, - 0x58, - 0x2B, - 0x2B, - 0x2C, - 0x49, - 0x48, - 0x48, - 0x49, - 0x55, - 0x49, - 0x1D, - 0x19, - 0x4F, - 0x64, - 0x8C, - 0x8F, - 0x9A, - 0x9F, - 0x8E, - 0x49, - 0x41, - 0x55, - 0x40, - 0x40, - 0x40, - 0x49, - 0x1D, - 0x39, - 0x64, - 0x8F, - 0x9A, - 0x93, - 0x9A, - 0x91, - 0x6C, - 0x40, - 0x11, - 0x19, - 0x4F, - 0x74, - 0x93, - 0x9A, - 0x9A, - 0xA0, - 0x97, - 0x65, - 0x20, - 0x20, - 0x04, - 0x49, - 0x00, - 0x06, - 0x20, - 0x2E, - 0x2E, - 0x2D, - 0x2D, - 0x20, - 0x00, - 0x00, - 0x00, - 0x17, - 0xE2, - 0xE2, - 0xC8, - 0xE2, - 0xBD, - 0x78, - 0x47, - 0x47, - 0x47, - 0x38, - 0xB6, - 0xE2, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xC9, - 0xC8, - 0xC7, - 0xC7, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0F, - 0xDE, - 0xEC, - 0xCC, - 0xE6, - 0x4F, - 0x5B, - 0x3C, - 0x5B, - 0x5F, - 0xCE, - 0xC8, - 0xC8, - 0xCC, - 0xCC, - 0x39, - 0x00, - 0x04, - 0x5B, - 0x01, - 0xD3, - 0x05, - 0xC8, - 0x00, - 0x26, - 0xBF, - 0xBD, - 0x5E, - 0x5D, - 0x5B, - 0x5B, - 0x5B, - 0x47, - 0x3D, - 0xB6, - 0xF2, - 0xE2, - 0xCA, - 0xBF, - 0xC3, - 0xCC, - 0xBF, - 0xC8, - 0xCC, - 0xC8, - 0xBF, - 0xBF, - 0xC8, - 0xBF, - 0xCC, - 0xC3, - 0xCC, - 0xF9, - 0x6B, - 0x73, - 0x5C, - 0x26, - 0xF1, - 0xEB, - 0xE3, - 0xDF, - 0xE3, - 0xE3, - 0x05, - 0xEB, - 0x00, - 0x42, - 0xE3, - 0xE7, - 0xFE, - 0x64, - 0x7A, - 0x79, - 0xCD, - 0xBF, - 0xB9, - 0xBF, - 0xEA, - 0xDD, - 0xBC, - 0xDD, - 0xBE, - 0xBF, - 0xBD, - 0xBF, - 0xBF, - 0xBD, - 0xD0, - 0xBC, - 0xBD, - 0xBE, - 0xBD, - 0xD1, - 0xD1, - 0xBF, - 0xBA, - 0xBD, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xBA, - 0xB8, - 0xCE, - 0x5C, - 0x7A, - 0x84, - 0x84, - 0x5C, - 0xB9, - 0xB6, - 0xBA, - 0x86, - 0x73, - 0x84, - 0x8C, - 0x75, - 0xB6, - 0xC1, - 0xB6, - 0xBA, - 0xBA, - 0xC1, - 0x5C, - 0x7A, - 0x7A, - 0x8C, - 0x91, - 0x89, - 0xB8, - 0xB8, - 0xB7, - 0xD3, - 0x04, - 0xBA, - 0x00, - 0x53, - 0xD1, - 0xB7, - 0xBD, - 0xB7, - 0xBE, - 0xBA, - 0xBA, - 0xBA, - 0xC1, - 0x3D, - 0x7F, - 0x8C, - 0x8C, - 0x93, - 0x77, - 0xB6, - 0x86, - 0xB8, - 0x86, - 0xB8, - 0x26, - 0x5C, - 0x8C, - 0x8C, - 0x8C, - 0x93, - 0x79, - 0xC0, - 0xFF, - 0xB7, - 0xFF, - 0x29, - 0x22, - 0x64, - 0x8C, - 0x8C, - 0x93, - 0x90, - 0x22, - 0x22, - 0xC0, - 0xB7, - 0xC0, - 0x29, - 0x1A, - 0x74, - 0x8F, - 0x8F, - 0x93, - 0x93, - 0x90, - 0x8D, - 0x1A, - 0xD3, - 0xFF, - 0x81, - 0x86, - 0x86, - 0xB6, - 0x03, - 0x31, - 0x64, - 0x8C, - 0x93, - 0x9A, - 0x9A, - 0x96, - 0x88, - 0x80, - 0x29, - 0xD3, - 0x29, - 0x29, - 0x29, - 0xB7, - 0x29, - 0x29, - 0x81, - 0xC0, - 0x29, - 0x29, - 0xC0, - 0x1A, - 0x00, - 0x05, - 0x81, - 0x00, - 0x0B, - 0xFF, - 0x1D, - 0xDB, - 0x67, - 0x1D, - 0x17, - 0x5A, - 0x67, - 0x58, - 0x2B, - 0x2B, - 0x00, - 0x04, - 0x48, - 0x00, - 0x34, - 0x2C, - 0x2C, - 0x19, - 0x39, - 0x5F, - 0x74, - 0x8F, - 0x9A, - 0x9A, - 0x9A, - 0x96, - 0x88, - 0x2E, - 0x2E, - 0x62, - 0x2E, - 0x6F, - 0x2F, - 0x2B, - 0x31, - 0x5E, - 0x8C, - 0x9A, - 0x9A, - 0x9A, - 0x95, - 0x8E, - 0x52, - 0x11, - 0x1F, - 0x50, - 0x64, - 0x93, - 0x9A, - 0x9A, - 0x9A, - 0x91, - 0x6C, - 0x49, - 0x20, - 0x49, - 0x25, - 0x49, - 0x25, - 0x49, - 0x49, - 0x49, - 0x20, - 0x48, - 0x49, - 0x61, - 0x49, - 0x00, - 0x00, - 0x00, - 0x07, - 0xE2, - 0xE2, - 0xE2, - 0xDE, - 0xE2, - 0xC8, - 0x92, - 0x00, - 0x04, - 0x47, - 0x01, - 0x3D, - 0x01, - 0xE2, - 0x04, - 0xC8, - 0x00, - 0x09, - 0xDE, - 0xC8, - 0xDE, - 0xC8, - 0xCB, - 0xF0, - 0xCB, - 0xC9, - 0xC7, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x08, - 0xC9, - 0xC9, - 0x5C, - 0x5B, - 0x5B, - 0x5B, - 0x5F, - 0xCA, - 0x04, - 0xC8, - 0x00, - 0x7F, - 0x92, - 0x64, - 0x5B, - 0x5B, - 0x5B, - 0xD3, - 0xC8, - 0xBF, - 0xC8, - 0xBF, - 0xC8, - 0xC8, - 0xBA, - 0x6B, - 0x68, - 0x5D, - 0x5D, - 0x64, - 0x5D, - 0x5B, - 0x4D, - 0x31, - 0xB6, - 0xF2, - 0xE2, - 0xCA, - 0xC8, - 0xBF, - 0xBD, - 0xC8, - 0xBF, - 0xCC, - 0xBF, - 0xC3, - 0xC8, - 0xCA, - 0xBF, - 0xBD, - 0xB7, - 0x64, - 0x73, - 0x68, - 0x4D, - 0x31, - 0x07, - 0x53, - 0xBB, - 0xDA, - 0xDF, - 0xE3, - 0xE3, - 0xE3, - 0xEB, - 0xE3, - 0xF1, - 0x50, - 0x6A, - 0x7F, - 0xB8, - 0xCA, - 0xBF, - 0xBF, - 0xBF, - 0xBE, - 0xC0, - 0xBC, - 0xBE, - 0xDD, - 0xBE, - 0xC0, - 0xDD, - 0xBD, - 0xBF, - 0xB9, - 0xBF, - 0xBC, - 0xBE, - 0xBC, - 0xD1, - 0xD1, - 0xBE, - 0xBC, - 0xD0, - 0xBD, - 0xBA, - 0xBD, - 0xB9, - 0xBD, - 0xBA, - 0xBA, - 0xB8, - 0x75, - 0x7A, - 0x84, - 0x74, - 0x26, - 0x26, - 0x26, - 0xC1, - 0x5F, - 0x84, - 0x7A, - 0x8C, - 0xA5, - 0xC1, - 0xB8, - 0xB6, - 0xB6, - 0xC1, - 0x6B, - 0x84, - 0x84, - 0x8C, - 0x75, - 0x26, - 0xB6, - 0xB7, - 0xB8, - 0xC0, - 0xB8, - 0xD1, - 0xB8, - 0xB9, - 0xBA, - 0xBA, - 0xBA, - 0xB7, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x41, - 0xF9, - 0x77, - 0x8C, - 0x8C, - 0x8F, - 0x84, - 0x86, - 0x26, - 0xB8, - 0x86, - 0x86, - 0xB6, - 0x86, - 0x73, - 0x8C, - 0x8C, - 0x9A, - 0x75, - 0x26, - 0x86, - 0xB8, - 0x26, - 0xB7, - 0x29, - 0x80, - 0x8C, - 0x8C, - 0x8F, - 0x9A, - 0x80, - 0x26, - 0xB8, - 0x26, - 0xB7, - 0xC0, - 0xD3, - 0x7B, - 0x8F, - 0x8F, - 0x93, - 0x96, - 0x80, - 0x22, - 0xB6, - 0xB8, - 0x86, - 0x29, - 0x86, - 0xB6, - 0x03, - 0x31, - 0x68, - 0x8C, - 0x8F, - 0x93, - 0xA0, - 0x95, - 0x88, - 0x58, - 0xD3, - 0x29, - 0x81, - 0x29, - 0xC0, - 0x81, - 0x00, - 0x07, - 0x29, - 0x00, - 0x1B, - 0x81, - 0x81, - 0x81, - 0x29, - 0x81, - 0xFF, - 0x18, - 0x1D, - 0x81, - 0x81, - 0x1D, - 0x1D, - 0x5A, - 0x17, - 0x67, - 0x2B, - 0x2B, - 0x76, - 0x2C, - 0x48, - 0x48, - 0x2B, - 0x1D, - 0x19, - 0x4F, - 0x64, - 0x8C, - 0x00, - 0x04, - 0x9A, - 0x00, - 0x2C, - 0x91, - 0x88, - 0x37, - 0x49, - 0x49, - 0x40, - 0x41, - 0x2F, - 0x2D, - 0x19, - 0x5F, - 0x84, - 0x9A, - 0x9A, - 0x9A, - 0x96, - 0x88, - 0x53, - 0x20, - 0x1D, - 0x50, - 0x77, - 0x8C, - 0x9A, - 0xA0, - 0x9A, - 0xA1, - 0x7D, - 0x49, - 0x20, - 0x35, - 0x49, - 0x35, - 0x49, - 0x2D, - 0x2D, - 0x49, - 0x20, - 0x49, - 0x49, - 0x49, - 0x2C, - 0x20, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xE2, - 0xE2, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0xE2, - 0x86, - 0x5F, - 0x47, - 0x47, - 0x4D, - 0x50, - 0xE0, - 0xE2, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x28, - 0xDE, - 0xF0, - 0xCB, - 0xC7, - 0xE5, - 0xCB, - 0xC7, - 0xC7, - 0xE5, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0x79, - 0x5B, - 0x4D, - 0x5B, - 0x5F, - 0xCE, - 0xCF, - 0xCC, - 0xC8, - 0xE2, - 0x92, - 0x64, - 0x5B, - 0x5B, - 0x5B, - 0xD3, - 0xE6, - 0xBF, - 0xD0, - 0xCC, - 0xBF, - 0xCA, - 0xBA, - 0x5F, - 0x64, - 0x68, - 0x68, - 0x04, - 0x64, - 0x00, - 0x1C, - 0x5B, - 0x4D, - 0x50, - 0x22, - 0xCE, - 0xE2, - 0xC8, - 0xBF, - 0xBD, - 0xBF, - 0xBD, - 0xCC, - 0xBF, - 0xBF, - 0xCA, - 0xCA, - 0xCA, - 0xBD, - 0xA5, - 0x77, - 0x74, - 0x73, - 0x68, - 0x4D, - 0x3A, - 0x5B, - 0x6C, - 0xE7, - 0x04, - 0xDF, - 0x00, - 0x48, - 0xF4, - 0x5E, - 0x7A, - 0x6D, - 0xCA, - 0xBD, - 0xBD, - 0xBF, - 0xBD, - 0xB9, - 0xBF, - 0xCC, - 0xD1, - 0xBE, - 0xBE, - 0xBE, - 0xD1, - 0xBE, - 0xD1, - 0xBC, - 0xBC, - 0xBF, - 0xBF, - 0xBD, - 0xBC, - 0xBD, - 0xBE, - 0xBC, - 0xBA, - 0xBE, - 0xD1, - 0xBE, - 0xB8, - 0xBA, - 0xBD, - 0xBA, - 0xC1, - 0x78, - 0x84, - 0x7A, - 0x84, - 0x79, - 0xC1, - 0xB8, - 0xC0, - 0x86, - 0x73, - 0x84, - 0x8C, - 0x75, - 0x26, - 0xB8, - 0xB8, - 0xB8, - 0xC1, - 0x5E, - 0x8C, - 0x84, - 0x8F, - 0x8D, - 0xC1, - 0xBA, - 0xB8, - 0xB7, - 0xB8, - 0xFF, - 0xB7, - 0xB8, - 0xB7, - 0xBA, - 0xBC, - 0xB8, - 0x04, - 0xBA, - 0x00, - 0x46, - 0xC1, - 0xA5, - 0x7F, - 0x8C, - 0x8C, - 0x93, - 0x77, - 0xC1, - 0x26, - 0xB6, - 0x26, - 0xB8, - 0x26, - 0x5F, - 0x8C, - 0x8C, - 0x8F, - 0x95, - 0x92, - 0x26, - 0x26, - 0xB6, - 0xB8, - 0x26, - 0x26, - 0x74, - 0x8F, - 0x8C, - 0x9A, - 0x88, - 0x86, - 0xFF, - 0x86, - 0xB8, - 0xB6, - 0x26, - 0x50, - 0x8C, - 0x8F, - 0x8F, - 0x9A, - 0x8D, - 0xF9, - 0xC4, - 0x29, - 0xB7, - 0x86, - 0xB6, - 0x26, - 0x50, - 0x68, - 0x8C, - 0x93, - 0x93, - 0x9A, - 0x95, - 0x88, - 0x58, - 0x04, - 0x22, - 0x86, - 0x29, - 0xB7, - 0x29, - 0x29, - 0x29, - 0xC0, - 0x29, - 0x29, - 0xB7, - 0x06, - 0x29, - 0x00, - 0x3A, - 0x1A, - 0x81, - 0x17, - 0x0E, - 0xFF, - 0x67, - 0x67, - 0x39, - 0x1D, - 0x1D, - 0x58, - 0x58, - 0x2C, - 0x76, - 0x48, - 0x2C, - 0x67, - 0x19, - 0x50, - 0x5F, - 0x7F, - 0x93, - 0x9A, - 0x9A, - 0x9A, - 0xA0, - 0x97, - 0x6C, - 0x35, - 0x2D, - 0x40, - 0x40, - 0x40, - 0x52, - 0x40, - 0x24, - 0x4F, - 0x7F, - 0x9A, - 0x93, - 0x9A, - 0xA0, - 0x90, - 0x54, - 0x25, - 0x1F, - 0x19, - 0x5E, - 0x91, - 0x9A, - 0x9A, - 0x9F, - 0x96, - 0x8E, - 0x53, - 0x49, - 0x40, - 0x40, - 0x04, - 0x49, - 0x00, - 0x0A, - 0x25, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x20, - 0x49, - 0x49, - 0x2D, - 0x49, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xC8, - 0xE2, - 0xC8, - 0xE5, - 0xF0, - 0xE2, - 0xDE, - 0xE2, - 0xCF, - 0x4F, - 0x4D, - 0x47, - 0x47, - 0x38, - 0xCF, - 0xE2, - 0xC8, - 0xDE, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xC7, - 0xDE, - 0xC8, - 0xF0, - 0xC8, - 0xE5, - 0xC5, - 0x00, - 0x05, - 0xC8, - 0x00, - 0x1C, - 0x5C, - 0x5B, - 0x5B, - 0x5B, - 0x47, - 0xCF, - 0xE0, - 0xCF, - 0xD0, - 0xE0, - 0x92, - 0x64, - 0x5B, - 0x64, - 0x5B, - 0xB6, - 0xCA, - 0xCF, - 0xCC, - 0xCF, - 0xEC, - 0xCC, - 0xC8, - 0xB6, - 0xA5, - 0x5E, - 0x64, - 0x6A, - 0x05, - 0x68, - 0x00, - 0x24, - 0x5B, - 0x4D, - 0x50, - 0x22, - 0xCE, - 0xE2, - 0xCA, - 0xCA, - 0xBD, - 0xBD, - 0xCA, - 0xBF, - 0xCA, - 0xBC, - 0xCF, - 0xCA, - 0xCD, - 0xB6, - 0x78, - 0x74, - 0x7F, - 0x74, - 0x68, - 0x51, - 0x31, - 0x04, - 0xEA, - 0xE7, - 0xE9, - 0x26, - 0x6A, - 0x84, - 0x92, - 0xCE, - 0xBC, - 0xCF, - 0x04, - 0xBD, - 0x00, - 0x80, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xBE, - 0xBC, - 0xBD, - 0xD1, - 0xBC, - 0xEA, - 0xC0, - 0xBC, - 0xBC, - 0xBC, - 0xB9, - 0xBD, - 0xBC, - 0xBD, - 0xD1, - 0xD0, - 0xB7, - 0xD0, - 0xD3, - 0xB8, - 0xB8, - 0xB6, - 0xB6, - 0x75, - 0x7A, - 0x84, - 0x74, - 0xC1, - 0xC0, - 0xFF, - 0xEA, - 0x6B, - 0x84, - 0x7A, - 0x8C, - 0x92, - 0xC1, - 0xB6, - 0x86, - 0xBA, - 0x50, - 0x84, - 0x84, - 0x8F, - 0x77, - 0xB6, - 0xB6, - 0xB6, - 0xBA, - 0xBA, - 0xB8, - 0xB8, - 0xBA, - 0xC0, - 0xB8, - 0xB8, - 0xB7, - 0xB8, - 0xBA, - 0xBA, - 0xB6, - 0xC1, - 0x5B, - 0x8C, - 0x8C, - 0x95, - 0x91, - 0xFF, - 0xC0, - 0xB8, - 0xB7, - 0xB7, - 0x26, - 0x3D, - 0x7F, - 0x8F, - 0x8C, - 0x9A, - 0x77, - 0x26, - 0xB8, - 0xB8, - 0x81, - 0x29, - 0x26, - 0x5F, - 0x8C, - 0x8C, - 0x93, - 0x95, - 0xA5, - 0x81, - 0xFF, - 0xB7, - 0x26, - 0xB8, - 0x22, - 0x74, - 0x8F, - 0x8F, - 0x9A, - 0x90, - 0x22, - 0xC4, - 0xC4, - 0xFF, - 0xC0, - 0xC0, - 0x3D, - 0x64, - 0x8C, - 0x93, - 0x93, - 0x9A, - 0x95, - 0x7D, - 0x58, - 0x22, - 0x29, - 0xFF, - 0xB7, - 0xFF, - 0xB7, - 0xB7, - 0x05, - 0x29, - 0x00, - 0x1B, - 0xB7, - 0x29, - 0x29, - 0x29, - 0x81, - 0x29, - 0x81, - 0x1A, - 0x81, - 0xFF, - 0x5A, - 0x18, - 0x1D, - 0x5A, - 0x67, - 0x67, - 0x4A, - 0x2B, - 0x58, - 0x2B, - 0x2B, - 0x1F, - 0x19, - 0x1A, - 0x78, - 0x64, - 0x8C, - 0x00, - 0x04, - 0x9A, - 0x00, - 0x26, - 0x95, - 0x8E, - 0x53, - 0x25, - 0x49, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x41, - 0x40, - 0x48, - 0x5F, - 0x8F, - 0x9A, - 0x93, - 0x9A, - 0xA1, - 0x59, - 0x55, - 0x2D, - 0x19, - 0x5F, - 0x7F, - 0x9A, - 0x9A, - 0x9F, - 0xA0, - 0x94, - 0x53, - 0x2E, - 0x49, - 0x27, - 0x2E, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x04, - 0x49, - 0x00, - 0x07, - 0x25, - 0x2D, - 0x49, - 0x20, - 0x2D, - 0x2E, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xF6, - 0xE2, - 0xE2, - 0xE5, - 0xC7, - 0xC8, - 0xE5, - 0xE5, - 0xC8, - 0xCA, - 0x78, - 0x4D, - 0x47, - 0x47, - 0x47, - 0x26, - 0xF6, - 0xE0, - 0xE6, - 0xE6, - 0xC9, - 0xC9, - 0xDE, - 0xC8, - 0xC8, - 0xC7, - 0xC8, - 0xCB, - 0xDE, - 0xC8, - 0xC8, - 0xC8, - 0xDC, - 0xDC, - 0xBF, - 0x5C, - 0x5B, - 0x5B, - 0x5B, - 0x5F, - 0xCF, - 0xCF, - 0xEC, - 0xCC, - 0xCC, - 0x79, - 0x64, - 0x5B, - 0x64, - 0x6B, - 0xCF, - 0xCC, - 0xBD, - 0xEC, - 0xD0, - 0xBF, - 0xC9, - 0xDC, - 0xC8, - 0xCA, - 0xBC, - 0x92, - 0x6D, - 0x64, - 0x05, - 0x68, - 0x00, - 0x5C, - 0x5D, - 0x5D, - 0x3C, - 0x4F, - 0x22, - 0xCE, - 0xC8, - 0xC8, - 0xCA, - 0xB9, - 0xBD, - 0xD0, - 0xD1, - 0xBE, - 0xC0, - 0xCF, - 0xB6, - 0x64, - 0x6A, - 0x74, - 0x7F, - 0x7F, - 0x73, - 0x6A, - 0x5B, - 0x31, - 0x03, - 0x5F, - 0x73, - 0x75, - 0xBD, - 0xCA, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBC, - 0xBF, - 0xB9, - 0xBF, - 0xDC, - 0xBC, - 0xB9, - 0xBF, - 0xBD, - 0xBE, - 0xBE, - 0xEA, - 0xBE, - 0xBD, - 0xC0, - 0xBD, - 0xBD, - 0xB9, - 0xB9, - 0xB9, - 0xBD, - 0xBA, - 0xBE, - 0xBE, - 0xD0, - 0xC0, - 0xB7, - 0xD3, - 0xD3, - 0x5C, - 0x84, - 0x7A, - 0x8C, - 0x78, - 0xB8, - 0xC0, - 0xB7, - 0xFF, - 0x7F, - 0x84, - 0x8C, - 0x75, - 0xB6, - 0xB8, - 0xB6, - 0x26, - 0x26, - 0x74, - 0x84, - 0x8C, - 0x7F, - 0x26, - 0xB8, - 0xB8, - 0xBA, - 0xB6, - 0x05, - 0xBA, - 0x00, - 0x48, - 0xB8, - 0xB7, - 0xB8, - 0xBA, - 0xBA, - 0xB6, - 0x50, - 0x84, - 0x8C, - 0x8C, - 0x9A, - 0x8D, - 0xB8, - 0xC0, - 0xC0, - 0xC4, - 0xC0, - 0xD1, - 0x77, - 0x8C, - 0x8F, - 0x8F, - 0x91, - 0x3D, - 0x26, - 0xB6, - 0x92, - 0xFF, - 0x29, - 0x3D, - 0x7F, - 0x8C, - 0x8F, - 0x9A, - 0x7B, - 0x26, - 0xFF, - 0x86, - 0xB8, - 0xB6, - 0x26, - 0x5F, - 0x8C, - 0x8F, - 0x8F, - 0x95, - 0xA5, - 0x26, - 0xC0, - 0xB7, - 0xC0, - 0x29, - 0x22, - 0x75, - 0x8F, - 0x93, - 0x9A, - 0x95, - 0x7B, - 0x92, - 0x04, - 0x86, - 0xD3, - 0xFF, - 0x29, - 0x29, - 0x81, - 0xD3, - 0x18, - 0x29, - 0xD3, - 0xD3, - 0x05, - 0x29, - 0x00, - 0x04, - 0x81, - 0xFF, - 0x81, - 0xFF, - 0x05, - 0x81, - 0x00, - 0x3C, - 0x67, - 0x17, - 0x67, - 0x4A, - 0x4A, - 0x76, - 0x15, - 0x13, - 0x1A, - 0x3D, - 0x5F, - 0x7F, - 0x8F, - 0x9A, - 0x9A, - 0x9A, - 0xA0, - 0x97, - 0x7D, - 0x52, - 0x49, - 0x49, - 0x49, - 0x40, - 0x61, - 0x40, - 0x40, - 0x2F, - 0x40, - 0x49, - 0x58, - 0x84, - 0x9A, - 0x93, - 0x9F, - 0x8E, - 0x49, - 0x25, - 0x1D, - 0x4F, - 0x74, - 0x9A, - 0xA0, - 0x9A, - 0xA0, - 0x97, - 0x54, - 0x49, - 0x35, - 0x35, - 0x49, - 0x40, - 0x49, - 0x40, - 0x55, - 0x40, - 0x2E, - 0x2E, - 0x49, - 0x35, - 0x04, - 0x49, - 0x00, - 0x04, - 0x2D, - 0x55, - 0x2D, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x1C, - 0x31, - 0x26, - 0xFC, - 0xF6, - 0xF6, - 0xDE, - 0xCB, - 0xE5, - 0xE2, - 0xC8, - 0xE2, - 0x92, - 0x5E, - 0x4D, - 0x4D, - 0x47, - 0x38, - 0x31, - 0x22, - 0xF4, - 0xF4, - 0xE0, - 0xCC, - 0xE6, - 0xCC, - 0xE0, - 0xC9, - 0xC7, - 0x04, - 0xC8, - 0x00, - 0x25, - 0xC9, - 0xEC, - 0xC8, - 0xCA, - 0x8D, - 0x5B, - 0x5B, - 0x5B, - 0x5F, - 0xCE, - 0xCC, - 0xBD, - 0xCF, - 0xE6, - 0x79, - 0x64, - 0x64, - 0x5D, - 0x5B, - 0xC1, - 0xCA, - 0xBF, - 0xBD, - 0xBF, - 0xBD, - 0xBD, - 0xBC, - 0xBC, - 0xD0, - 0xCA, - 0xCA, - 0xBC, - 0x92, - 0x5F, - 0x64, - 0x6A, - 0x6A, - 0x00, - 0x04, - 0x68, - 0x00, - 0xAE, - 0x5D, - 0x5B, - 0x38, - 0x3D, - 0xFC, - 0xE2, - 0xCA, - 0xF5, - 0xBC, - 0xD1, - 0xEA, - 0xD0, - 0x50, - 0x6A, - 0x6A, - 0x6A, - 0x7F, - 0x92, - 0x92, - 0x77, - 0x74, - 0x73, - 0x73, - 0x73, - 0x7F, - 0x81, - 0xCD, - 0xD1, - 0xCF, - 0xBF, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBF, - 0xBC, - 0xDD, - 0xBE, - 0xBC, - 0xBD, - 0xBD, - 0xB9, - 0xBD, - 0xBD, - 0xBC, - 0xBC, - 0xBE, - 0xB9, - 0xBD, - 0xBD, - 0xBC, - 0xB7, - 0xBC, - 0xBD, - 0xB9, - 0xBA, - 0xBA, - 0xB7, - 0xB7, - 0xB7, - 0xD3, - 0x86, - 0x75, - 0x84, - 0x84, - 0x74, - 0x26, - 0xB6, - 0x26, - 0xD3, - 0x77, - 0x84, - 0x84, - 0x8C, - 0x76, - 0xC0, - 0xB7, - 0xB8, - 0xB6, - 0x5E, - 0x8C, - 0x8C, - 0x95, - 0x80, - 0xB6, - 0x86, - 0xB8, - 0xB8, - 0xB8, - 0xBA, - 0xB6, - 0xBA, - 0xBA, - 0xBA, - 0xB8, - 0xB6, - 0xBA, - 0xB6, - 0x22, - 0x75, - 0x8C, - 0x8C, - 0x8F, - 0x90, - 0x26, - 0x26, - 0x26, - 0xB7, - 0xFF, - 0xD3, - 0x58, - 0x84, - 0x8C, - 0x95, - 0x9A, - 0x8D, - 0x26, - 0x86, - 0x26, - 0xB7, - 0x81, - 0x26, - 0x6B, - 0x8F, - 0x8F, - 0x93, - 0x91, - 0x3D, - 0x86, - 0x22, - 0xB8, - 0x22, - 0xB6, - 0x3D, - 0x7F, - 0x8F, - 0x8F, - 0x9A, - 0x7B, - 0x26, - 0xB8, - 0x86, - 0xB8, - 0x86, - 0xD3, - 0x56, - 0x8F, - 0x8F, - 0x93, - 0x96, - 0x76, - 0x04, - 0x81, - 0xB7, - 0xD3, - 0x86, - 0x29, - 0x29, - 0xFF, - 0xD3, - 0x29, - 0x29, - 0xB7, - 0xFF, - 0xFF, - 0xC0, - 0xFF, - 0x81, - 0x29, - 0xC0, - 0x81, - 0x81, - 0xFF, - 0xFF, - 0x04, - 0x81, - 0x00, - 0x0B, - 0x1D, - 0x81, - 0x39, - 0x1D, - 0x76, - 0x1D, - 0x18, - 0x05, - 0x4F, - 0x75, - 0x8C, - 0x00, - 0x04, - 0x9A, - 0x00, - 0x36, - 0x95, - 0x8E, - 0x65, - 0x49, - 0x2D, - 0x49, - 0x40, - 0x40, - 0x40, - 0x35, - 0x40, - 0x35, - 0x40, - 0x40, - 0x40, - 0x1F, - 0x74, - 0x9A, - 0x9A, - 0x9A, - 0x94, - 0x2E, - 0x37, - 0x1F, - 0x64, - 0x8F, - 0x9F, - 0x9F, - 0x9A, - 0x97, - 0x71, - 0x2F, - 0x35, - 0x40, - 0x40, - 0x40, - 0x35, - 0x49, - 0x49, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x49, - 0x49, - 0x2D, - 0x2D, - 0x49, - 0x20, - 0x49, - 0x2D, - 0x2D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x36, - 0x47, - 0x47, - 0x38, - 0x31, - 0x1C, - 0xFC, - 0xE2, - 0xDE, - 0xC8, - 0xDE, - 0xC8, - 0xDE, - 0xB8, - 0x5F, - 0x4D, - 0x4D, - 0x5E, - 0x4D, - 0x47, - 0x38, - 0x50, - 0x22, - 0xFC, - 0xE0, - 0xF4, - 0xCC, - 0xDE, - 0xCC, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xCC, - 0xCB, - 0xBF, - 0xCC, - 0xEC, - 0x5C, - 0x5B, - 0x5B, - 0x5D, - 0x5F, - 0xCA, - 0xC8, - 0xBD, - 0xBD, - 0xE0, - 0x80, - 0x64, - 0x5B, - 0x5D, - 0x5E, - 0xCF, - 0xCC, - 0x04, - 0xC8, - 0x00, - 0x46, - 0xCC, - 0xDC, - 0xCC, - 0xDC, - 0xD1, - 0xCF, - 0xC8, - 0xC8, - 0xBA, - 0x92, - 0x80, - 0x64, - 0x6A, - 0x6A, - 0x6A, - 0x68, - 0x68, - 0x6A, - 0x68, - 0x5B, - 0x47, - 0x3D, - 0xC1, - 0xCE, - 0xF4, - 0xF9, - 0x04, - 0x5B, - 0x6A, - 0x6A, - 0x73, - 0x64, - 0xCD, - 0xCE, - 0xCE, - 0xB8, - 0x92, - 0x80, - 0x79, - 0xB7, - 0xCF, - 0xBD, - 0xD0, - 0xBC, - 0xBC, - 0xBC, - 0xBD, - 0xBF, - 0xB9, - 0xB9, - 0xBE, - 0xEA, - 0xDD, - 0xBC, - 0xBC, - 0xBC, - 0xBA, - 0xBC, - 0xBD, - 0xB9, - 0xBD, - 0xBA, - 0xBD, - 0xBD, - 0xBD, - 0xD1, - 0xBC, - 0xBC, - 0xBC, - 0xD1, - 0x04, - 0xBA, - 0x00, - 0x71, - 0xB8, - 0xB7, - 0xB6, - 0x78, - 0x84, - 0x84, - 0x8C, - 0x79, - 0x26, - 0xB6, - 0x26, - 0x86, - 0x7F, - 0x84, - 0x8C, - 0x7B, - 0xF9, - 0xD3, - 0xD1, - 0xC0, - 0x3D, - 0x7F, - 0x8C, - 0x95, - 0x75, - 0x26, - 0xB6, - 0x86, - 0xB8, - 0xB6, - 0xB8, - 0xB8, - 0xBA, - 0xB8, - 0xB6, - 0xBA, - 0xBA, - 0xB6, - 0xB6, - 0x79, - 0x84, - 0x8C, - 0x8C, - 0x9A, - 0x80, - 0x26, - 0x22, - 0xB8, - 0xB6, - 0x86, - 0x22, - 0x75, - 0x8C, - 0x8C, - 0x93, - 0x90, - 0x86, - 0x26, - 0xB6, - 0x86, - 0x22, - 0x26, - 0x50, - 0x84, - 0x8F, - 0x95, - 0x9A, - 0x6D, - 0x22, - 0x29, - 0x86, - 0xB8, - 0x86, - 0x26, - 0x77, - 0x8F, - 0x8F, - 0x93, - 0xA1, - 0x3D, - 0xB6, - 0x86, - 0xB8, - 0x29, - 0xB8, - 0x3D, - 0x84, - 0x8F, - 0x93, - 0x9A, - 0x7B, - 0x86, - 0xC4, - 0x18, - 0x29, - 0x18, - 0xC0, - 0x86, - 0xB7, - 0x29, - 0xD3, - 0xB7, - 0xD3, - 0x29, - 0xFF, - 0x81, - 0x29, - 0xC0, - 0xFF, - 0x81, - 0x29, - 0x81, - 0x29, - 0x00, - 0x05, - 0x81, - 0x05, - 0x1D, - 0x00, - 0x05, - 0x1A, - 0x3D, - 0x5E, - 0x9E, - 0x8F, - 0x00, - 0x04, - 0x9A, - 0x00, - 0x2D, - 0x97, - 0x6C, - 0x52, - 0x48, - 0x49, - 0x49, - 0x49, - 0x40, - 0x40, - 0x40, - 0x61, - 0x40, - 0x61, - 0x62, - 0x55, - 0x40, - 0x2B, - 0x77, - 0x9A, - 0xA0, - 0x9A, - 0xA1, - 0x6F, - 0x41, - 0x2C, - 0x6B, - 0x93, - 0x9A, - 0xA0, - 0x96, - 0x6C, - 0x2E, - 0x41, - 0x40, - 0x40, - 0x40, - 0x6E, - 0x40, - 0x40, - 0x40, - 0x25, - 0x40, - 0x49, - 0x25, - 0x40, - 0x00, - 0x04, - 0x49, - 0x00, - 0x07, - 0x2D, - 0x49, - 0x49, - 0x20, - 0x49, - 0x49, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x06, - 0x47, - 0x00, - 0x0A, - 0x21, - 0xB6, - 0xE2, - 0xE2, - 0xC8, - 0xDE, - 0xDE, - 0xCC, - 0x79, - 0x5E, - 0x06, - 0x4D, - 0x00, - 0x05, - 0x47, - 0x21, - 0x3D, - 0xFC, - 0xE2, - 0x00, - 0x08, - 0xC8, - 0x00, - 0x7F, - 0xC9, - 0xC9, - 0xCC, - 0x56, - 0x64, - 0x5B, - 0x5B, - 0x5F, - 0xCE, - 0xCA, - 0xC8, - 0xCA, - 0xCA, - 0x79, - 0x68, - 0x5B, - 0x5D, - 0x6B, - 0xFE, - 0xC8, - 0xD0, - 0xCC, - 0xC8, - 0xC8, - 0xBF, - 0xCA, - 0xCC, - 0xD0, - 0xBF, - 0xCA, - 0xBF, - 0xCA, - 0xBC, - 0xCC, - 0xBA, - 0x92, - 0x80, - 0x64, - 0x6A, - 0x6A, - 0x74, - 0x68, - 0x68, - 0x6A, - 0x68, - 0x5B, - 0x47, - 0x50, - 0x5F, - 0x64, - 0x6A, - 0x6A, - 0x74, - 0x84, - 0x79, - 0xCD, - 0xD1, - 0xBA, - 0xCF, - 0xCC, - 0xCA, - 0xCA, - 0xBA, - 0xBD, - 0xBD, - 0xB9, - 0xB9, - 0xC0, - 0xBE, - 0xD0, - 0xBC, - 0xBC, - 0xBD, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBC, - 0xBA, - 0xD0, - 0xBC, - 0xBA, - 0xBC, - 0xBC, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xB8, - 0xBE, - 0xB8, - 0xC0, - 0xC0, - 0xB7, - 0xB7, - 0xB8, - 0xB6, - 0xB6, - 0xC1, - 0x26, - 0x26, - 0x75, - 0x84, - 0x8C, - 0x75, - 0x26, - 0x86, - 0xB8, - 0x26, - 0x6B, - 0x8C, - 0x84, - 0x91, - 0x81, - 0x86, - 0xFF, - 0xFF, - 0xD1, - 0x88, - 0x8C, - 0x8C, - 0x84, - 0x3D, - 0xB6, - 0xB6, - 0xB6, - 0xBA, - 0x00, - 0x04, - 0xB8, - 0x00, - 0x4F, - 0xB6, - 0xBA, - 0xB6, - 0xB6, - 0x26, - 0x75, - 0x8C, - 0x91, - 0x8F, - 0x88, - 0x26, - 0x86, - 0xB8, - 0x81, - 0x81, - 0x26, - 0x50, - 0x84, - 0x8F, - 0x8F, - 0xA0, - 0x80, - 0x26, - 0x86, - 0x86, - 0xB7, - 0x86, - 0x26, - 0x75, - 0x8F, - 0x95, - 0x9A, - 0x90, - 0x22, - 0x86, - 0x81, - 0xB8, - 0x86, - 0x26, - 0x50, - 0x8C, - 0x8F, - 0x93, - 0x9A, - 0x8D, - 0x26, - 0x86, - 0x86, - 0xD3, - 0x81, - 0x22, - 0x64, - 0x93, - 0x8F, - 0x9A, - 0x97, - 0x86, - 0xC0, - 0x18, - 0xFF, - 0xC0, - 0xC4, - 0x29, - 0xC0, - 0xFF, - 0xD3, - 0xB7, - 0x29, - 0xD3, - 0x29, - 0x29, - 0xC0, - 0x29, - 0x29, - 0x29, - 0xFF, - 0xFF, - 0x29, - 0x1A, - 0x00, - 0x04, - 0x81, - 0x00, - 0x2E, - 0x1D, - 0x1D, - 0x1D, - 0x81, - 0x08, - 0x50, - 0x64, - 0x84, - 0x9A, - 0x9A, - 0x9A, - 0x9F, - 0x95, - 0x8E, - 0x65, - 0x2D, - 0x49, - 0x49, - 0x61, - 0x40, - 0x40, - 0x40, - 0x49, - 0x40, - 0x40, - 0x52, - 0x40, - 0x3E, - 0x3E, - 0x41, - 0x4B, - 0x60, - 0x8F, - 0x93, - 0xA0, - 0x9F, - 0x66, - 0x41, - 0x2D, - 0x60, - 0x8C, - 0x93, - 0x9A, - 0xA0, - 0x6C, - 0x2D, - 0x06, - 0x40, - 0x00, - 0x06, - 0x2E, - 0x40, - 0x40, - 0x6E, - 0x2E, - 0x25, - 0x04, - 0x49, - 0x00, - 0x09, - 0x25, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x2D, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x92, - 0x5C, - 0x4D, - 0x00, - 0x05, - 0x47, - 0x00, - 0x46, - 0x3D, - 0xDE, - 0xE2, - 0xC8, - 0xC8, - 0xE2, - 0xC8, - 0xCC, - 0x92, - 0x5C, - 0x5E, - 0x5B, - 0x5B, - 0x5E, - 0x3C, - 0x5E, - 0x4D, - 0x47, - 0x38, - 0xD3, - 0xE2, - 0xC9, - 0xBF, - 0xDC, - 0xCC, - 0xC9, - 0xCA, - 0xCA, - 0xC8, - 0xCA, - 0xCC, - 0x80, - 0x64, - 0x5B, - 0x5D, - 0x56, - 0xCC, - 0xC8, - 0xCC, - 0xBF, - 0xCD, - 0x79, - 0x64, - 0x64, - 0x68, - 0x5E, - 0xCF, - 0xD0, - 0xCF, - 0xDC, - 0xDC, - 0xBD, - 0xBF, - 0xC8, - 0xBF, - 0xCA, - 0xBF, - 0xCA, - 0xBF, - 0xDC, - 0xF5, - 0xBE, - 0xDC, - 0xCC, - 0xBA, - 0x92, - 0x80, - 0x64, - 0x6A, - 0x73, - 0x04, - 0x6A, - 0x00, - 0x1C, - 0x74, - 0x6A, - 0x74, - 0x74, - 0x7F, - 0x7F, - 0x5F, - 0xCE, - 0xD0, - 0xD1, - 0xBC, - 0xD0, - 0xC0, - 0xBD, - 0xBA, - 0xBA, - 0xBD, - 0xB9, - 0xB9, - 0xCC, - 0xBE, - 0xBC, - 0xD0, - 0xC0, - 0xC0, - 0xBD, - 0xD0, - 0xBA, - 0x04, - 0xBD, - 0x00, - 0x79, - 0xBC, - 0xBC, - 0xBC, - 0xB8, - 0xBA, - 0xBC, - 0xBA, - 0xBD, - 0xB9, - 0xBD, - 0xBD, - 0xBA, - 0xB8, - 0xD3, - 0xB7, - 0xD3, - 0xB7, - 0x29, - 0x29, - 0xB7, - 0xB6, - 0x26, - 0x64, - 0x84, - 0x8C, - 0x84, - 0xA5, - 0x29, - 0x86, - 0x26, - 0x86, - 0x7F, - 0x8C, - 0x95, - 0x77, - 0xC1, - 0x29, - 0x86, - 0xC0, - 0x8D, - 0x8C, - 0x8C, - 0x93, - 0x6D, - 0xB6, - 0xB8, - 0xB6, - 0xB6, - 0xBA, - 0xBA, - 0xB8, - 0xB8, - 0xB6, - 0xB6, - 0xB8, - 0x26, - 0x4F, - 0x84, - 0x8C, - 0x8F, - 0xA0, - 0x80, - 0x26, - 0xB6, - 0x92, - 0x81, - 0x86, - 0x22, - 0x75, - 0x8F, - 0x8C, - 0x93, - 0x90, - 0x22, - 0x86, - 0xB8, - 0x86, - 0x86, - 0x22, - 0x5C, - 0x8C, - 0x95, - 0x95, - 0xA0, - 0x80, - 0x26, - 0x86, - 0x86, - 0x86, - 0xB6, - 0x22, - 0x68, - 0x8F, - 0x8F, - 0x9A, - 0x90, - 0x22, - 0x86, - 0xB8, - 0xB8, - 0x86, - 0xD3, - 0x4F, - 0x8C, - 0x93, - 0x93, - 0x9F, - 0x80, - 0xB6, - 0x86, - 0x29, - 0xD3, - 0xFF, - 0xFF, - 0xB7, - 0xC4, - 0xC0, - 0xD3, - 0xB7, - 0xD3, - 0xC0, - 0x00, - 0x07, - 0x29, - 0x00, - 0x19, - 0x81, - 0x1A, - 0x81, - 0x81, - 0x1D, - 0x1D, - 0x1D, - 0x1A, - 0x08, - 0x1C, - 0x5C, - 0x74, - 0x8F, - 0x9A, - 0x9A, - 0x9A, - 0x9F, - 0x91, - 0x7B, - 0x52, - 0x24, - 0x2C, - 0x49, - 0x40, - 0x49, - 0x00, - 0x09, - 0x40, - 0x00, - 0x12, - 0x3E, - 0x62, - 0x55, - 0x5A, - 0x84, - 0x9A, - 0xA0, - 0x9F, - 0x7D, - 0x25, - 0x25, - 0x33, - 0x7F, - 0x9A, - 0xA0, - 0x9F, - 0x8E, - 0x25, - 0x05, - 0x40, - 0x00, - 0x05, - 0x49, - 0x40, - 0x40, - 0x40, - 0x2E, - 0x00, - 0x04, - 0x40, - 0x00, - 0x04, - 0x2D, - 0x40, - 0x2D, - 0x49, - 0x04, - 0x2D, - 0x00, - 0x04, - 0x49, - 0x2D, - 0x2D, - 0x20, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xDE, - 0xC8, - 0xBC, - 0x92, - 0x79, - 0x5E, - 0x5E, - 0x47, - 0x4D, - 0x4F, - 0xF2, - 0xCC, - 0xDE, - 0x00, - 0x05, - 0xC8, - 0x00, - 0xF3, - 0xCF, - 0xB7, - 0x79, - 0x5E, - 0x5B, - 0x5B, - 0x5B, - 0x4D, - 0x5B, - 0x5B, - 0x50, - 0xE2, - 0xE2, - 0xC9, - 0xCC, - 0xCC, - 0xCB, - 0xCC, - 0xC9, - 0xBF, - 0xBF, - 0xBD, - 0x5C, - 0x64, - 0x5B, - 0x64, - 0x5F, - 0xF2, - 0xCF, - 0xD0, - 0xC8, - 0xCF, - 0x80, - 0x64, - 0x64, - 0x68, - 0x5E, - 0xF4, - 0xC9, - 0xCF, - 0xBE, - 0xEC, - 0xCA, - 0xD0, - 0xCA, - 0xC3, - 0xBF, - 0xC8, - 0xBF, - 0xBE, - 0xBE, - 0xD1, - 0xCC, - 0xCC, - 0xBE, - 0xEC, - 0xCA, - 0xBA, - 0x92, - 0x5C, - 0x77, - 0x74, - 0x7F, - 0x74, - 0x73, - 0x7F, - 0x7F, - 0x74, - 0x8D, - 0x81, - 0xCE, - 0xBD, - 0xBA, - 0xBC, - 0xCC, - 0xD1, - 0xC0, - 0xBD, - 0xBE, - 0xBE, - 0xBD, - 0xBE, - 0xBC, - 0xB9, - 0xBD, - 0xB9, - 0xBD, - 0xBC, - 0xB8, - 0xBD, - 0xCF, - 0xBA, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xBA, - 0xBD, - 0xBC, - 0xBA, - 0xBA, - 0xBC, - 0xBA, - 0xEA, - 0xC0, - 0xBC, - 0xBC, - 0xBA, - 0xBA, - 0xBA, - 0xD3, - 0xB8, - 0xC0, - 0x29, - 0xB7, - 0xD3, - 0x39, - 0x7A, - 0x84, - 0x84, - 0x8C, - 0x39, - 0x86, - 0xB6, - 0x86, - 0x26, - 0x77, - 0x8C, - 0x8C, - 0x84, - 0x92, - 0x26, - 0x26, - 0x22, - 0x86, - 0x7F, - 0x8C, - 0x8C, - 0x90, - 0xFF, - 0x86, - 0xB8, - 0xC0, - 0xB6, - 0xB8, - 0x26, - 0xB8, - 0xB8, - 0x26, - 0xB6, - 0x26, - 0x75, - 0x8F, - 0x91, - 0x93, - 0x88, - 0x26, - 0x86, - 0x22, - 0x86, - 0x29, - 0x22, - 0x5C, - 0x8C, - 0x8C, - 0x8F, - 0x96, - 0x78, - 0x26, - 0x86, - 0x26, - 0x86, - 0x86, - 0x22, - 0x74, - 0x8F, - 0x8F, - 0x9A, - 0x88, - 0x22, - 0x86, - 0x86, - 0xB8, - 0x86, - 0x26, - 0x5C, - 0x8F, - 0x8F, - 0x93, - 0xA0, - 0x79, - 0xB6, - 0x86, - 0xD3, - 0x86, - 0x22, - 0x22, - 0x7F, - 0x93, - 0x93, - 0x9F, - 0x8E, - 0x04, - 0x81, - 0xB7, - 0xB7, - 0xB7, - 0xD3, - 0xD3, - 0x29, - 0xFF, - 0x29, - 0xD3, - 0xB7, - 0xFF, - 0x18, - 0xC4, - 0xC0, - 0x81, - 0x29, - 0x81, - 0x29, - 0x81, - 0x29, - 0x81, - 0x81, - 0x81, - 0x17, - 0x1A, - 0x29, - 0x50, - 0x77, - 0x84, - 0x9A, - 0x9A, - 0x9A, - 0x9F, - 0x96, - 0x88, - 0x65, - 0x48, - 0x2C, - 0x00, - 0x05, - 0x49, - 0x0C, - 0x40, - 0x00, - 0x2A, - 0x2B, - 0x74, - 0x9A, - 0x93, - 0x9F, - 0x97, - 0x2F, - 0x1D, - 0xF9, - 0x77, - 0x9A, - 0xA0, - 0x9B, - 0x97, - 0x40, - 0x40, - 0x40, - 0x41, - 0x62, - 0x2E, - 0x41, - 0x41, - 0x40, - 0x40, - 0x40, - 0x35, - 0x40, - 0x2D, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x61, - 0x25, - 0x49, - 0x49, - 0x49, - 0x2D, - 0x2D, - 0x49, - 0x49, - 0x00, - 0x00, - 0x00, - 0xAF, - 0xE6, - 0xCC, - 0xE5, - 0xE5, - 0xE2, - 0xCF, - 0x79, - 0x5E, - 0x47, - 0x4D, - 0x4F, - 0xFA, - 0xE2, - 0xE6, - 0xE6, - 0xC8, - 0xDE, - 0xC8, - 0xC8, - 0xE2, - 0xE2, - 0xBF, - 0xB7, - 0x78, - 0x5E, - 0x4E, - 0x5B, - 0x3C, - 0x5B, - 0x5C, - 0xCF, - 0xE2, - 0xC8, - 0xC8, - 0xC9, - 0xCC, - 0xBF, - 0xC8, - 0xCA, - 0xC8, - 0xCA, - 0x5F, - 0x64, - 0x64, - 0x5D, - 0x5F, - 0xE6, - 0xD0, - 0xBF, - 0xEA, - 0xCA, - 0x80, - 0x68, - 0x64, - 0x68, - 0x5E, - 0xCE, - 0xC8, - 0xCF, - 0xBC, - 0xC3, - 0xCA, - 0xC3, - 0xCA, - 0xCA, - 0xBF, - 0xBF, - 0xBF, - 0xCA, - 0xC9, - 0xBE, - 0xBC, - 0xDC, - 0xD1, - 0xBD, - 0xDD, - 0xCF, - 0xC8, - 0xBC, - 0x86, - 0x80, - 0x6B, - 0x6B, - 0x8D, - 0x89, - 0xB7, - 0xCE, - 0xD0, - 0xD0, - 0xBD, - 0xCE, - 0xBD, - 0xBD, - 0xBC, - 0xBC, - 0xBC, - 0xD1, - 0xBC, - 0xBE, - 0xC4, - 0xD0, - 0xBE, - 0xBE, - 0xBA, - 0xBD, - 0xBA, - 0xBD, - 0xBD, - 0xBD, - 0xB9, - 0xBD, - 0xBD, - 0xBC, - 0xD0, - 0xC0, - 0xB8, - 0xBA, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xBC, - 0xEA, - 0xD1, - 0xEA, - 0xD1, - 0xD0, - 0xD1, - 0xB8, - 0xC1, - 0xB6, - 0xB8, - 0xD3, - 0xD3, - 0x22, - 0x64, - 0x84, - 0x84, - 0x8C, - 0x90, - 0x86, - 0x22, - 0xB6, - 0x26, - 0x26, - 0x19, - 0x7F, - 0x91, - 0x8F, - 0x7C, - 0x22, - 0x29, - 0x86, - 0x26, - 0x5E, - 0x8F, - 0x8C, - 0x93, - 0x89, - 0x26, - 0xC0, - 0xC0, - 0xB7, - 0xC0, - 0xC0, - 0x26, - 0xB6, - 0xB8, - 0x26, - 0x5C, - 0x84, - 0x8C, - 0x8F, - 0xA0, - 0x79, - 0x00, - 0x04, - 0x86, - 0x00, - 0x31, - 0x22, - 0x22, - 0x74, - 0x8F, - 0x95, - 0x9A, - 0x88, - 0x26, - 0x86, - 0x86, - 0x81, - 0x86, - 0x26, - 0x5F, - 0x8C, - 0x93, - 0xA0, - 0x96, - 0x78, - 0x86, - 0xB7, - 0x86, - 0x86, - 0x22, - 0x3D, - 0x7F, - 0x93, - 0x93, - 0x9F, - 0x7B, - 0x26, - 0x86, - 0x86, - 0x86, - 0xB7, - 0x26, - 0x6B, - 0x8F, - 0x93, - 0x9A, - 0x95, - 0xA5, - 0x29, - 0xFF, - 0xC0, - 0x81, - 0xFF, - 0x29, - 0xC0, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x20, - 0x29, - 0xDB, - 0xC4, - 0x81, - 0xC4, - 0xDB, - 0xC0, - 0xFF, - 0x81, - 0x81, - 0x1A, - 0x81, - 0x81, - 0x05, - 0x29, - 0x5C, - 0x75, - 0x8F, - 0x9A, - 0x9A, - 0x9F, - 0xA0, - 0x97, - 0x7B, - 0x49, - 0x13, - 0x2C, - 0x2C, - 0x61, - 0x49, - 0x49, - 0x61, - 0x04, - 0x49, - 0x00, - 0x22, - 0x61, - 0x40, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x6E, - 0x40, - 0x53, - 0x2C, - 0x6B, - 0x93, - 0xA0, - 0x9F, - 0xA4, - 0x70, - 0x06, - 0xE9, - 0xD8, - 0xD7, - 0xA3, - 0xA1, - 0x97, - 0x41, - 0x40, - 0x6E, - 0x41, - 0x62, - 0x62, - 0x41, - 0x6E, - 0x41, - 0x40, - 0x41, - 0x07, - 0x40, - 0x00, - 0x0B, - 0x25, - 0x49, - 0x40, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x2D, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0xE5, - 0xDC, - 0xE5, - 0xDC, - 0xE6, - 0xE6, - 0xE0, - 0xA5, - 0x5E, - 0x4D, - 0x4D, - 0x47, - 0x86, - 0xE5, - 0xEC, - 0xE6, - 0xCC, - 0xC9, - 0xDE, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x0A, - 0xE2, - 0xCA, - 0xB7, - 0x56, - 0x5B, - 0x5B, - 0x5B, - 0x5E, - 0x86, - 0xE2, - 0x05, - 0xC8, - 0x00, - 0x29, - 0xBF, - 0xC8, - 0xC8, - 0xBD, - 0x56, - 0x64, - 0x64, - 0x68, - 0x5C, - 0xCD, - 0xCA, - 0xCC, - 0xBD, - 0xEA, - 0x60, - 0x68, - 0x68, - 0x68, - 0x5F, - 0xCA, - 0xCA, - 0xBF, - 0xCA, - 0xBF, - 0xCA, - 0xBF, - 0xC3, - 0xCC, - 0xD1, - 0xDC, - 0xBF, - 0xCC, - 0xCA, - 0xBF, - 0xCF, - 0xBC, - 0xCA, - 0xBE, - 0xBD, - 0xBD, - 0xC0, - 0x00, - 0x05, - 0xCA, - 0x00, - 0x22, - 0xCE, - 0xBD, - 0xD0, - 0xD1, - 0xBA, - 0xBD, - 0xBD, - 0xBC, - 0xD0, - 0xBC, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBC, - 0xC0, - 0xBC, - 0xC4, - 0xC0, - 0xBC, - 0xD1, - 0xD0, - 0xB9, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xB9, - 0xB6, - 0xD3, - 0xC0, - 0xB8, - 0xD1, - 0xB8, - 0x04, - 0xBA, - 0x00, - 0x35, - 0xD0, - 0xB8, - 0xC0, - 0xD1, - 0xBE, - 0xC0, - 0xEA, - 0xB7, - 0xB6, - 0xB6, - 0xC1, - 0x03, - 0x19, - 0x7F, - 0x8C, - 0x84, - 0x95, - 0x52, - 0x81, - 0x86, - 0x29, - 0x29, - 0x22, - 0x26, - 0x88, - 0x8C, - 0x8C, - 0x90, - 0x1A, - 0xFF, - 0x3D, - 0x26, - 0x50, - 0x84, - 0x8C, - 0x8F, - 0x75, - 0x26, - 0x81, - 0xC0, - 0xC0, - 0xC4, - 0xC0, - 0xB8, - 0xB8, - 0x26, - 0x22, - 0x74, - 0x8F, - 0x91, - 0x9A, - 0x75, - 0x22, - 0x00, - 0x04, - 0x86, - 0x00, - 0x13, - 0x26, - 0x5F, - 0x8F, - 0x95, - 0x93, - 0x95, - 0x50, - 0x26, - 0x86, - 0x81, - 0x29, - 0x81, - 0x3D, - 0x7F, - 0x8F, - 0x96, - 0x9F, - 0x77, - 0x26, - 0x00, - 0x04, - 0x86, - 0x00, - 0x5D, - 0x22, - 0x6B, - 0x8F, - 0x93, - 0xA0, - 0xA1, - 0x3D, - 0x86, - 0xB8, - 0x86, - 0xB7, - 0x22, - 0x92, - 0x84, - 0x93, - 0x93, - 0x9F, - 0x6D, - 0x26, - 0x86, - 0xD3, - 0x29, - 0xC0, - 0xC0, - 0xC0, - 0xFF, - 0xFF, - 0xB7, - 0xC0, - 0xD3, - 0xB7, - 0x29, - 0xFF, - 0xFF, - 0xDB, - 0x18, - 0x18, - 0x17, - 0xC4, - 0x1A, - 0x81, - 0x81, - 0x22, - 0x5F, - 0x7F, - 0x93, - 0x9A, - 0x9F, - 0x9F, - 0x96, - 0x88, - 0x53, - 0x58, - 0x1F, - 0x2B, - 0x48, - 0x48, - 0x49, - 0x49, - 0x2D, - 0x40, - 0x49, - 0x40, - 0x61, - 0x40, - 0x40, - 0x40, - 0x6E, - 0x40, - 0x40, - 0x6E, - 0x41, - 0x41, - 0x37, - 0x49, - 0x5C, - 0x8C, - 0x9A, - 0x9A, - 0x9F, - 0x6C, - 0x11, - 0xFB, - 0xD4, - 0xD2, - 0xD2, - 0xD2, - 0xD8, - 0xD9, - 0x0B, - 0x53, - 0x2E, - 0x40, - 0x00, - 0x04, - 0x41, - 0x00, - 0x15, - 0x2E, - 0x62, - 0x41, - 0x2E, - 0x41, - 0x40, - 0x40, - 0x40, - 0x49, - 0x25, - 0x61, - 0x40, - 0x61, - 0x2D, - 0x49, - 0x40, - 0x25, - 0x49, - 0x49, - 0x2D, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x22, - 0xE2, - 0xDE, - 0xCB, - 0xDE, - 0xDC, - 0xDC, - 0xDE, - 0xE2, - 0xB7, - 0x5E, - 0x5E, - 0x4D, - 0x47, - 0x3D, - 0xFC, - 0xE2, - 0xE5, - 0xC9, - 0xC8, - 0xC8, - 0xC8, - 0xC9, - 0xCC, - 0xC8, - 0xC8, - 0xC8, - 0xE0, - 0x79, - 0x64, - 0x4E, - 0x5B, - 0x5B, - 0x79, - 0xF2, - 0x07, - 0xC8, - 0x00, - 0x1D, - 0xCA, - 0xD0, - 0x56, - 0x68, - 0x5B, - 0x68, - 0x5C, - 0xCA, - 0xCA, - 0xBD, - 0xBC, - 0xCF, - 0x60, - 0x68, - 0x64, - 0x68, - 0x5F, - 0xF4, - 0xE2, - 0xC8, - 0xCA, - 0xBF, - 0xBF, - 0xCA, - 0xBD, - 0xBE, - 0xCF, - 0xBD, - 0xBE, - 0x00, - 0x05, - 0xBF, - 0x00, - 0x09, - 0xCA, - 0xBF, - 0xD0, - 0xEA, - 0xBC, - 0xBD, - 0xBD, - 0xBD, - 0xCF, - 0x00, - 0x06, - 0xBD, - 0x00, - 0x12, - 0xB9, - 0xD0, - 0xBC, - 0xD1, - 0xBC, - 0xD0, - 0xBC, - 0xBA, - 0xBD, - 0xBD, - 0xBD, - 0xBE, - 0xB8, - 0xBD, - 0xD1, - 0xCE, - 0xBA, - 0xBD, - 0x04, - 0xBA, - 0x00, - 0x3F, - 0xBD, - 0xBA, - 0xBA, - 0xD1, - 0xD1, - 0xB6, - 0xBA, - 0xB8, - 0xBA, - 0xB7, - 0xBA, - 0xC1, - 0xBA, - 0xB7, - 0xC0, - 0xC0, - 0xC0, - 0xB8, - 0xB6, - 0x26, - 0x04, - 0xE9, - 0xE9, - 0x62, - 0x75, - 0x84, - 0x9E, - 0x1A, - 0x86, - 0x81, - 0x81, - 0x86, - 0xB8, - 0x58, - 0x7F, - 0x91, - 0x8C, - 0x95, - 0x39, - 0x3D, - 0x86, - 0x22, - 0x26, - 0x75, - 0x8C, - 0x8F, - 0x90, - 0x3D, - 0x26, - 0x26, - 0xB7, - 0xB7, - 0x86, - 0x26, - 0x26, - 0x86, - 0x52, - 0x8C, - 0x95, - 0x8F, - 0x95, - 0x78, - 0x22, - 0x00, - 0x04, - 0x86, - 0x00, - 0x12, - 0x3D, - 0x7F, - 0x8F, - 0x95, - 0x9A, - 0x7B, - 0x26, - 0x86, - 0x86, - 0x92, - 0x3D, - 0x22, - 0x77, - 0x8F, - 0x95, - 0x9A, - 0x91, - 0x3D, - 0x05, - 0x86, - 0x00, - 0x07, - 0x50, - 0x84, - 0x93, - 0x93, - 0x9F, - 0x8D, - 0x22, - 0x00, - 0x04, - 0x86, - 0x00, - 0x2D, - 0x22, - 0x75, - 0x93, - 0x93, - 0x9A, - 0x90, - 0x86, - 0xB7, - 0xB7, - 0xD3, - 0xB7, - 0x29, - 0x29, - 0xFF, - 0xC4, - 0xD3, - 0xFF, - 0xFF, - 0x29, - 0xFF, - 0x29, - 0x29, - 0x29, - 0xFF, - 0x29, - 0x18, - 0xC4, - 0x81, - 0x1A, - 0x81, - 0x31, - 0x74, - 0x9A, - 0x9A, - 0x9A, - 0x9F, - 0x97, - 0x6C, - 0x61, - 0x1D, - 0x1F, - 0x76, - 0x4B, - 0x61, - 0x48, - 0x00, - 0x04, - 0x49, - 0x00, - 0x09, - 0x61, - 0x49, - 0x40, - 0x40, - 0x40, - 0x55, - 0x41, - 0x40, - 0x2E, - 0x00, - 0x05, - 0x40, - 0x00, - 0x09, - 0x2B, - 0x7F, - 0xA0, - 0x9A, - 0x9F, - 0x8E, - 0x0F, - 0xF5, - 0xDA, - 0x00, - 0x06, - 0xD2, - 0x00, - 0x0A, - 0x4C, - 0x2E, - 0x41, - 0x6E, - 0x27, - 0x40, - 0x40, - 0x40, - 0x53, - 0x2F, - 0x05, - 0x41, - 0x00, - 0x0E, - 0x2E, - 0x35, - 0x40, - 0x40, - 0x49, - 0x40, - 0x25, - 0x40, - 0x61, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x00, - 0x00, - 0x00, - 0x57, - 0x26, - 0xF2, - 0xF6, - 0xE2, - 0xDE, - 0xE5, - 0xDE, - 0xC8, - 0xE2, - 0xB8, - 0x5F, - 0x3C, - 0x5E, - 0x4D, - 0x47, - 0x31, - 0x1C, - 0xFE, - 0xF6, - 0xE2, - 0xC8, - 0xC9, - 0xDC, - 0xC9, - 0xE0, - 0xC9, - 0xC8, - 0xC8, - 0x92, - 0x5B, - 0x4E, - 0x5B, - 0x5B, - 0x5F, - 0xCF, - 0xE2, - 0xC8, - 0xC8, - 0xC7, - 0xC7, - 0xC8, - 0xC8, - 0xC8, - 0xCC, - 0x5F, - 0x68, - 0x64, - 0x5D, - 0x5C, - 0xCF, - 0xCA, - 0xBF, - 0xCA, - 0xCE, - 0x80, - 0x74, - 0x68, - 0x68, - 0x3C, - 0x4F, - 0x86, - 0xFC, - 0xF2, - 0xCA, - 0xCA, - 0xBF, - 0xCA, - 0xBF, - 0xCC, - 0xCF, - 0xBF, - 0xCC, - 0xCF, - 0xCA, - 0xCC, - 0xBD, - 0xCA, - 0xBF, - 0xCC, - 0xBF, - 0xBD, - 0xCE, - 0xBC, - 0xBC, - 0xCF, - 0xBD, - 0xBC, - 0x00, - 0x04, - 0xBD, - 0x00, - 0x2A, - 0xBC, - 0xD0, - 0xBC, - 0xBE, - 0xD1, - 0xBC, - 0xD1, - 0xBE, - 0xBA, - 0xBC, - 0xBD, - 0xBD, - 0xBA, - 0xD0, - 0xBD, - 0xBA, - 0xBA, - 0xCF, - 0xB8, - 0xCF, - 0xBA, - 0xD0, - 0xBA, - 0xBA, - 0xBA, - 0xB8, - 0xB6, - 0xB7, - 0xB8, - 0xB7, - 0xFF, - 0xB8, - 0xB8, - 0xD3, - 0xBA, - 0xC1, - 0xB6, - 0xB8, - 0xB6, - 0xB6, - 0x26, - 0xDB, - 0x04, - 0xE3, - 0x00, - 0x0D, - 0xE1, - 0xE8, - 0xD3, - 0x22, - 0x81, - 0x29, - 0x22, - 0x08, - 0x75, - 0x91, - 0x8C, - 0x95, - 0x90, - 0x00, - 0x04, - 0x86, - 0x00, - 0x2B, - 0x26, - 0x5C, - 0x95, - 0x91, - 0x93, - 0x80, - 0x22, - 0x29, - 0x86, - 0x86, - 0x26, - 0x86, - 0x22, - 0x1A, - 0x74, - 0x8C, - 0x95, - 0x93, - 0x88, - 0x81, - 0x3D, - 0x86, - 0x86, - 0x86, - 0x26, - 0x6D, - 0x8F, - 0x8F, - 0x93, - 0x91, - 0x3D, - 0x3D, - 0x86, - 0x86, - 0x86, - 0x22, - 0x50, - 0x84, - 0x8F, - 0x93, - 0x9A, - 0x8D, - 0x22, - 0x00, - 0x04, - 0x86, - 0x00, - 0x24, - 0x26, - 0x75, - 0x93, - 0x93, - 0x9F, - 0x90, - 0x86, - 0xFF, - 0xC4, - 0x86, - 0x29, - 0xB6, - 0x5C, - 0x8F, - 0x93, - 0x9A, - 0xA0, - 0x89, - 0xD3, - 0x29, - 0x29, - 0xB7, - 0xB7, - 0xD3, - 0xD3, - 0xB7, - 0x29, - 0xB7, - 0xFF, - 0x29, - 0xC4, - 0x18, - 0xC0, - 0x81, - 0xC0, - 0x29, - 0x05, - 0x81, - 0x00, - 0x11, - 0x04, - 0x75, - 0x9A, - 0x93, - 0x9F, - 0x91, - 0x7C, - 0x58, - 0x1D, - 0x58, - 0x58, - 0x2B, - 0x61, - 0x3E, - 0x4B, - 0x48, - 0x55, - 0x00, - 0x05, - 0x49, - 0x00, - 0x14, - 0x40, - 0x49, - 0x41, - 0x62, - 0x41, - 0x41, - 0x62, - 0x6E, - 0x41, - 0x40, - 0x6E, - 0x2B, - 0x64, - 0x9A, - 0x9A, - 0x9F, - 0x97, - 0x3E, - 0xFF, - 0xE4, - 0x06, - 0xD2, - 0x00, - 0x1E, - 0xBB, - 0x40, - 0x41, - 0x55, - 0x41, - 0x6E, - 0x41, - 0x6E, - 0x27, - 0x2D, - 0x13, - 0x5A, - 0x2C, - 0x49, - 0x55, - 0x41, - 0x2E, - 0x41, - 0x2E, - 0x40, - 0x40, - 0x25, - 0x49, - 0x61, - 0x25, - 0x40, - 0x2D, - 0x40, - 0x49, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x39, - 0x47, - 0x38, - 0x31, - 0x26, - 0xFC, - 0xE2, - 0xDE, - 0xC8, - 0xDE, - 0xDE, - 0xCC, - 0x79, - 0x5B, - 0x5E, - 0x5E, - 0x4D, - 0x4D, - 0x47, - 0x4F, - 0x1C, - 0xC1, - 0xF2, - 0xE0, - 0xDE, - 0xC9, - 0xE6, - 0xC8, - 0xCC, - 0xE0, - 0xB7, - 0x6B, - 0x64, - 0x5B, - 0x64, - 0x5B, - 0x86, - 0xE2, - 0xC8, - 0xDD, - 0xDD, - 0xCB, - 0xC9, - 0xC9, - 0xC8, - 0xCA, - 0x5F, - 0x68, - 0x64, - 0x68, - 0x5C, - 0xF2, - 0xCA, - 0xCC, - 0xD1, - 0xCE, - 0x80, - 0x74, - 0x00, - 0x04, - 0x68, - 0x00, - 0x1C, - 0x5B, - 0x4F, - 0x3D, - 0xC1, - 0xF2, - 0xC8, - 0xCA, - 0xCA, - 0xBF, - 0xCC, - 0xD0, - 0xD0, - 0xBF, - 0xD0, - 0xCC, - 0xBC, - 0xD0, - 0xBD, - 0xBD, - 0xBF, - 0xBD, - 0xCC, - 0xCC, - 0xBD, - 0xBD, - 0xBC, - 0xBD, - 0xD0, - 0x04, - 0xBD, - 0x00, - 0x0B, - 0xB9, - 0xBC, - 0xD0, - 0xBA, - 0xBE, - 0xD0, - 0xD0, - 0xB7, - 0xD0, - 0xBC, - 0xB8, - 0x00, - 0x04, - 0xBA, - 0x00, - 0x19, - 0xB8, - 0xB6, - 0xBA, - 0xEA, - 0xC4, - 0xD1, - 0xBA, - 0xB6, - 0xBA, - 0xB6, - 0xB8, - 0xB6, - 0xB7, - 0xC0, - 0xB7, - 0xD3, - 0xB8, - 0xD3, - 0xB7, - 0x86, - 0xB6, - 0xB6, - 0xB6, - 0x03, - 0xE7, - 0x00, - 0x05, - 0xDF, - 0x00, - 0x53, - 0xDA, - 0xFF, - 0x26, - 0x26, - 0x22, - 0x03, - 0x31, - 0x84, - 0x8C, - 0x91, - 0x93, - 0x53, - 0x1A, - 0x86, - 0x86, - 0x86, - 0x22, - 0x3D, - 0x84, - 0x8C, - 0x93, - 0x88, - 0x86, - 0x81, - 0x81, - 0x86, - 0x29, - 0x86, - 0x26, - 0x5F, - 0x8C, - 0x95, - 0x93, - 0x95, - 0x49, - 0xFF, - 0x81, - 0x81, - 0x81, - 0x22, - 0x31, - 0x84, - 0x8F, - 0x95, - 0x9F, - 0x6D, - 0x22, - 0x86, - 0x86, - 0x29, - 0x86, - 0x22, - 0x75, - 0x93, - 0x93, - 0x9A, - 0x90, - 0x3D, - 0x81, - 0x81, - 0x81, - 0x67, - 0xD3, - 0x5C, - 0x93, - 0x96, - 0xA0, - 0xA6, - 0xA5, - 0x86, - 0x5A, - 0x29, - 0x29, - 0x18, - 0x3D, - 0x7F, - 0x93, - 0x93, - 0x9F, - 0x7B, - 0x22, - 0x29, - 0x29, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x3A, - 0xC0, - 0x29, - 0xD3, - 0xB7, - 0xB7, - 0x29, - 0xFF, - 0xFF, - 0x29, - 0xC4, - 0x81, - 0x81, - 0xC4, - 0x05, - 0x81, - 0x81, - 0x29, - 0x5F, - 0x8F, - 0x93, - 0x9A, - 0x96, - 0x49, - 0x1D, - 0x2B, - 0x76, - 0x2B, - 0x2B, - 0x76, - 0x2C, - 0x61, - 0x49, - 0x2E, - 0x4B, - 0x2E, - 0x55, - 0x61, - 0x2E, - 0x6E, - 0x40, - 0x40, - 0x40, - 0x41, - 0x41, - 0x62, - 0x40, - 0x41, - 0x42, - 0x41, - 0x15, - 0x6D, - 0x93, - 0x9A, - 0x9F, - 0xA4, - 0x54, - 0x09, - 0xDB, - 0x06, - 0xD2, - 0x01, - 0xC6, - 0x01, - 0x2D, - 0x04, - 0x41, - 0x00, - 0x19, - 0x54, - 0x2E, - 0x1F, - 0x39, - 0x5C, - 0x56, - 0x6B, - 0x6B, - 0x6D, - 0x52, - 0x2C, - 0x40, - 0x41, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x25, - 0x49, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x05, - 0x47, - 0x00, - 0x03, - 0x3D, - 0xF2, - 0xDE, - 0x00, - 0x04, - 0xC8, - 0x00, - 0x30, - 0x92, - 0x5F, - 0x5B, - 0x5B, - 0x5E, - 0x5B, - 0x3C, - 0x4D, - 0x4D, - 0x38, - 0x3D, - 0x26, - 0xF4, - 0xE0, - 0xE0, - 0xE6, - 0xDC, - 0xC8, - 0xCC, - 0x5F, - 0x64, - 0x5B, - 0x5B, - 0x64, - 0x78, - 0xF2, - 0xDD, - 0xDD, - 0xCB, - 0xCB, - 0xDD, - 0xC9, - 0xC7, - 0xCC, - 0x56, - 0x68, - 0x64, - 0x68, - 0x80, - 0xF2, - 0xCF, - 0xD0, - 0xD0, - 0xCC, - 0x80, - 0x75, - 0x74, - 0x6A, - 0x04, - 0x68, - 0x00, - 0x11, - 0x5B, - 0x5C, - 0x31, - 0xB6, - 0xF2, - 0xCA, - 0xCA, - 0xBD, - 0xBD, - 0xD0, - 0xD0, - 0xCC, - 0xF5, - 0xBE, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0x06, - 0xBD, - 0x00, - 0x1A, - 0xBA, - 0xBE, - 0xBC, - 0xBA, - 0xBC, - 0xBC, - 0xBA, - 0xBD, - 0xBD, - 0xBA, - 0xD0, - 0xBC, - 0xD1, - 0xD0, - 0xD0, - 0xC0, - 0xC0, - 0xBA, - 0xB8, - 0xCF, - 0xC1, - 0xBA, - 0xBA, - 0xC1, - 0xC0, - 0xC0, - 0x04, - 0xB6, - 0x01, - 0xB8, - 0x01, - 0xC1, - 0x04, - 0xB6, - 0x00, - 0x09, - 0xB7, - 0x86, - 0x81, - 0x81, - 0x29, - 0x26, - 0x22, - 0x26, - 0x05, - 0x00, - 0x05, - 0xDF, - 0x00, - 0x64, - 0xDA, - 0xD9, - 0x26, - 0x86, - 0x29, - 0x07, - 0xF1, - 0xEE, - 0x7D, - 0x7F, - 0x93, - 0x90, - 0x1D, - 0x81, - 0x22, - 0x86, - 0x86, - 0x22, - 0x4F, - 0x8C, - 0x8C, - 0x93, - 0x90, - 0x81, - 0x1A, - 0x81, - 0x1D, - 0x81, - 0x86, - 0x1C, - 0x7F, - 0x95, - 0x8F, - 0x9A, - 0x77, - 0x81, - 0x81, - 0x1D, - 0x81, - 0x3D, - 0x86, - 0x77, - 0x8F, - 0x95, - 0x9A, - 0x90, - 0x3D, - 0x86, - 0x86, - 0x3D, - 0x92, - 0x22, - 0x79, - 0x8C, - 0x95, - 0x93, - 0xA0, - 0x80, - 0x86, - 0x81, - 0x86, - 0xFF, - 0x1D, - 0x3D, - 0x7F, - 0x93, - 0x96, - 0x9F, - 0x7B, - 0x22, - 0x86, - 0xB7, - 0xB7, - 0xC4, - 0x81, - 0x77, - 0x93, - 0x93, - 0x9F, - 0x97, - 0x3D, - 0xB8, - 0x86, - 0xB7, - 0xB7, - 0x29, - 0x29, - 0xC0, - 0x29, - 0xD1, - 0xB7, - 0xB7, - 0x29, - 0xC0, - 0x29, - 0x29, - 0xFF, - 0xFF, - 0x81, - 0xC4, - 0x04, - 0x81, - 0x00, - 0x17, - 0x39, - 0x84, - 0x9A, - 0x9A, - 0x9F, - 0x7B, - 0x1D, - 0x76, - 0x2B, - 0x2B, - 0x2C, - 0x76, - 0x2C, - 0x48, - 0x48, - 0x2C, - 0x61, - 0x49, - 0x40, - 0x55, - 0x2E, - 0x2E, - 0x62, - 0x00, - 0x05, - 0x40, - 0x00, - 0x0E, - 0x6E, - 0x6E, - 0x41, - 0x53, - 0x55, - 0x80, - 0x8C, - 0x9A, - 0xA0, - 0x9F, - 0x6C, - 0x20, - 0xEA, - 0xD4, - 0x05, - 0xD2, - 0x00, - 0x20, - 0xD8, - 0x3E, - 0x62, - 0x62, - 0x41, - 0x6E, - 0x41, - 0x13, - 0x39, - 0x6B, - 0x90, - 0x9A, - 0x9F, - 0x9F, - 0x9A, - 0x9F, - 0x9A, - 0x88, - 0x60, - 0x20, - 0x40, - 0x55, - 0x41, - 0x40, - 0x40, - 0x49, - 0x40, - 0x40, - 0x25, - 0x49, - 0x2D, - 0x35, - 0x00, - 0x00, - 0x00, - 0x79, - 0x5C, - 0x5E, - 0x4D, - 0x4D, - 0x47, - 0x4D, - 0x4F, - 0xF4, - 0xE2, - 0xDE, - 0xC8, - 0xE5, - 0xE5, - 0xC8, - 0xB8, - 0xA5, - 0x5F, - 0x5E, - 0x5B, - 0x5B, - 0x5B, - 0x5E, - 0x5B, - 0x3C, - 0x47, - 0x92, - 0xE0, - 0xCC, - 0xE0, - 0xC8, - 0xC8, - 0xDE, - 0xA5, - 0x64, - 0x64, - 0x5B, - 0x64, - 0x5F, - 0xB6, - 0xE5, - 0xC5, - 0xDC, - 0xDD, - 0xDC, - 0xEA, - 0xDC, - 0xBD, - 0x56, - 0x68, - 0x68, - 0x68, - 0x5C, - 0xCE, - 0xCF, - 0xD0, - 0xD0, - 0xE0, - 0xB7, - 0x80, - 0x7B, - 0x75, - 0x74, - 0x74, - 0x6A, - 0x6A, - 0x6A, - 0x68, - 0x64, - 0x5F, - 0x31, - 0xB6, - 0xCE, - 0xF4, - 0xCC, - 0xBD, - 0xCE, - 0xCF, - 0xBC, - 0xD0, - 0xD0, - 0xCC, - 0xD0, - 0xD1, - 0xBC, - 0xBD, - 0xCF, - 0xBD, - 0xBD, - 0xBD, - 0xBA, - 0xBC, - 0xBC, - 0xBA, - 0xD0, - 0xBC, - 0xBA, - 0xBA, - 0xBA, - 0xBD, - 0xBA, - 0xBA, - 0xBA, - 0xD1, - 0xD1, - 0xBA, - 0xD1, - 0xB8, - 0xB8, - 0xD1, - 0xB6, - 0xBA, - 0xBA, - 0xB6, - 0xB6, - 0xB8, - 0xB6, - 0xB7, - 0xB8, - 0xB6, - 0x86, - 0xB8, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x07, - 0x86, - 0x29, - 0x22, - 0x22, - 0x22, - 0x07, - 0xE7, - 0x00, - 0x04, - 0xDF, - 0x00, - 0x2F, - 0xDA, - 0xD6, - 0xC4, - 0x22, - 0x1A, - 0x22, - 0xFB, - 0xDF, - 0xDF, - 0xE4, - 0xE4, - 0x85, - 0x76, - 0x08, - 0x3D, - 0x86, - 0x86, - 0x86, - 0x3D, - 0x75, - 0x95, - 0x95, - 0x9A, - 0x75, - 0x22, - 0x86, - 0x86, - 0x81, - 0x81, - 0x26, - 0x5E, - 0x8F, - 0x95, - 0x93, - 0x91, - 0x39, - 0x86, - 0x86, - 0x3D, - 0xA5, - 0x3D, - 0x58, - 0x8C, - 0x8F, - 0x93, - 0xA0, - 0x80, - 0x00, - 0x04, - 0x86, - 0x00, - 0x21, - 0x3D, - 0x22, - 0x74, - 0x93, - 0x93, - 0x9F, - 0x75, - 0x22, - 0x86, - 0x86, - 0x86, - 0x3D, - 0x22, - 0x6D, - 0x93, - 0x93, - 0x9A, - 0xA1, - 0x92, - 0x29, - 0x92, - 0x86, - 0x86, - 0x86, - 0x39, - 0x91, - 0x9A, - 0xA0, - 0x9B, - 0x7E, - 0x29, - 0xFF, - 0x81, - 0x00, - 0x04, - 0xB7, - 0x00, - 0x1F, - 0xC0, - 0x29, - 0xB7, - 0xD3, - 0x29, - 0xC4, - 0xDB, - 0x29, - 0x81, - 0x29, - 0x29, - 0x81, - 0xFF, - 0x81, - 0x81, - 0x81, - 0x08, - 0x75, - 0x9A, - 0x9A, - 0x9F, - 0x90, - 0x1D, - 0x58, - 0x2B, - 0x67, - 0x2B, - 0x76, - 0x2B, - 0x2C, - 0x2C, - 0x00, - 0x06, - 0x49, - 0x00, - 0x15, - 0x52, - 0x62, - 0x41, - 0x40, - 0x40, - 0x55, - 0x62, - 0x55, - 0x53, - 0x41, - 0x53, - 0x41, - 0x24, - 0x74, - 0x9F, - 0x9A, - 0x9F, - 0x94, - 0x2D, - 0x05, - 0xDA, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x0A, - 0xC2, - 0x4C, - 0x62, - 0x63, - 0x63, - 0x41, - 0x41, - 0x2B, - 0x5F, - 0x8C, - 0x04, - 0x9F, - 0x00, - 0x13, - 0x9A, - 0x9A, - 0xA0, - 0xA0, - 0x9F, - 0x95, - 0x52, - 0x49, - 0x37, - 0x40, - 0x40, - 0x49, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x40, - 0x49, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0xE6, - 0xD0, - 0x92, - 0x5C, - 0x5E, - 0x5E, - 0x4D, - 0x47, - 0xB8, - 0xE2, - 0xE2, - 0xDC, - 0xDD, - 0xC9, - 0xE2, - 0xE2, - 0xC8, - 0xCC, - 0x92, - 0x5F, - 0x5E, - 0x64, - 0x04, - 0x5B, - 0x00, - 0x47, - 0x5C, - 0xCE, - 0xC8, - 0xC8, - 0xC8, - 0xCA, - 0xE6, - 0x29, - 0x6B, - 0x64, - 0x64, - 0x64, - 0x5B, - 0x3D, - 0xE2, - 0xC9, - 0xC9, - 0xC9, - 0xDD, - 0xCB, - 0xC8, - 0xBD, - 0x56, - 0x75, - 0x68, - 0x68, - 0x79, - 0xF2, - 0xCA, - 0xCF, - 0xD0, - 0xCC, - 0xCF, - 0xEC, - 0xB8, - 0x89, - 0x77, - 0x75, - 0x74, - 0x74, - 0x74, - 0x6A, - 0x74, - 0x6A, - 0x68, - 0x4D, - 0x79, - 0x29, - 0xCF, - 0xCC, - 0xCC, - 0xBD, - 0xBD, - 0xCF, - 0xCF, - 0xBE, - 0xD1, - 0xCF, - 0xBC, - 0xD0, - 0xCF, - 0xD0, - 0xBA, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xBC, - 0xCF, - 0xBD, - 0xD0, - 0x00, - 0x07, - 0xBA, - 0x00, - 0x1B, - 0xB8, - 0xB7, - 0xD3, - 0xB8, - 0x29, - 0xB8, - 0xB8, - 0xB6, - 0xBA, - 0xB6, - 0xB6, - 0xB6, - 0xB8, - 0x86, - 0xB6, - 0xB8, - 0x86, - 0xB8, - 0x86, - 0x26, - 0x22, - 0x26, - 0x86, - 0x22, - 0x22, - 0x22, - 0xEA, - 0x00, - 0x04, - 0xDF, - 0x00, - 0x08, - 0xDA, - 0xDA, - 0xD9, - 0x22, - 0x22, - 0x22, - 0x07, - 0xE7, - 0x05, - 0xDF, - 0x00, - 0x0C, - 0xDA, - 0x81, - 0x22, - 0x3D, - 0x22, - 0x0D, - 0x5C, - 0x8C, - 0x8F, - 0x95, - 0x95, - 0x39, - 0x04, - 0x86, - 0x00, - 0x75, - 0x1C, - 0x3D, - 0x7F, - 0x95, - 0x8F, - 0xA0, - 0x65, - 0x1A, - 0x92, - 0x3D, - 0x3D, - 0x86, - 0x26, - 0x75, - 0x93, - 0x95, - 0x9A, - 0x90, - 0x1D, - 0x67, - 0x92, - 0x86, - 0x86, - 0x26, - 0x5F, - 0x8F, - 0x95, - 0x93, - 0x96, - 0xA5, - 0x3D, - 0x29, - 0x86, - 0x92, - 0x22, - 0x50, - 0x84, - 0x93, - 0x93, - 0x9F, - 0x7C, - 0x86, - 0xFF, - 0x86, - 0x29, - 0x86, - 0x22, - 0x74, - 0x93, - 0xA0, - 0x9F, - 0x8E, - 0x29, - 0x5A, - 0xDB, - 0xC0, - 0x18, - 0xC4, - 0xD3, - 0xC0, - 0x29, - 0xB7, - 0xB7, - 0xB7, - 0xFF, - 0xDB, - 0x18, - 0xC4, - 0xFF, - 0xFF, - 0x29, - 0x81, - 0x1A, - 0x81, - 0x81, - 0x29, - 0x8D, - 0x93, - 0xA0, - 0x9A, - 0xA4, - 0x48, - 0x1D, - 0x67, - 0x58, - 0x2B, - 0x48, - 0x76, - 0x2C, - 0x2C, - 0x49, - 0x61, - 0x61, - 0x49, - 0x49, - 0x49, - 0x61, - 0x40, - 0x40, - 0x40, - 0x6E, - 0x40, - 0x63, - 0x4C, - 0x2F, - 0x4A, - 0x4A, - 0x24, - 0x1F, - 0x7B, - 0x9A, - 0xA0, - 0x9F, - 0xA1, - 0x27, - 0x1D, - 0xE7, - 0x00, - 0x06, - 0xD2, - 0x00, - 0x17, - 0xBB, - 0x55, - 0x63, - 0x63, - 0x62, - 0x63, - 0x2C, - 0x75, - 0x9A, - 0x9F, - 0x9F, - 0x95, - 0x88, - 0x7D, - 0x85, - 0x94, - 0x93, - 0x9A, - 0xA0, - 0x9F, - 0x97, - 0x49, - 0x49, - 0x00, - 0x04, - 0x40, - 0x00, - 0x06, - 0x2D, - 0x40, - 0x2E, - 0x61, - 0x40, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x24, - 0xDC, - 0xE6, - 0xDE, - 0xE0, - 0xB7, - 0x5F, - 0x4D, - 0x4D, - 0x4D, - 0x3D, - 0xE2, - 0xE6, - 0xCB, - 0xDC, - 0xC8, - 0xDE, - 0xDE, - 0xC8, - 0xE2, - 0xC8, - 0xBD, - 0xB7, - 0x5C, - 0x6B, - 0x5B, - 0x5B, - 0x5B, - 0x5E, - 0xD3, - 0xE2, - 0xC8, - 0xCA, - 0xC8, - 0xC8, - 0xCF, - 0x8D, - 0x04, - 0x64, - 0x00, - 0x39, - 0x4F, - 0xE0, - 0xCA, - 0xBF, - 0xBF, - 0xC9, - 0xCA, - 0xCA, - 0xCC, - 0x6D, - 0x68, - 0x68, - 0x68, - 0x5C, - 0xF2, - 0xCA, - 0xCE, - 0xBF, - 0xDC, - 0xCF, - 0xCF, - 0xEC, - 0xD0, - 0xD0, - 0x89, - 0x6B, - 0x75, - 0x74, - 0x73, - 0x74, - 0x74, - 0x74, - 0x6A, - 0x68, - 0x5B, - 0x33, - 0x1A, - 0xFE, - 0xE6, - 0xCE, - 0xBD, - 0xBA, - 0xCF, - 0xCF, - 0xB7, - 0xD0, - 0xBE, - 0xD1, - 0xD0, - 0xBD, - 0xBD, - 0xBA, - 0xBA, - 0xBD, - 0xBA, - 0xBA, - 0xBC, - 0x00, - 0x04, - 0xBA, - 0x00, - 0xA0, - 0xB7, - 0xB7, - 0xB6, - 0xB6, - 0xB6, - 0xC1, - 0xB7, - 0xB7, - 0xB8, - 0x81, - 0x29, - 0xB6, - 0xB6, - 0xB6, - 0x86, - 0xB6, - 0xB6, - 0x26, - 0x86, - 0x22, - 0x86, - 0x86, - 0x86, - 0x22, - 0x22, - 0x22, - 0x86, - 0x22, - 0x0D, - 0xEE, - 0xDF, - 0xDF, - 0xDA, - 0xDA, - 0xDA, - 0xD6, - 0x0E, - 0x22, - 0x86, - 0x1C, - 0x05, - 0xDF, - 0xDF, - 0xDF, - 0xDA, - 0xDA, - 0xD6, - 0xE4, - 0x1C, - 0x86, - 0x1C, - 0x08, - 0xEA, - 0x7C, - 0x84, - 0x8C, - 0x9A, - 0x88, - 0x1C, - 0x3D, - 0x3D, - 0x3D, - 0x86, - 0x26, - 0x6B, - 0x8F, - 0x95, - 0x93, - 0x91, - 0x58, - 0x67, - 0x3D, - 0x81, - 0x1D, - 0x1A, - 0x4F, - 0x8C, - 0x95, - 0x93, - 0xA0, - 0x80, - 0x67, - 0x81, - 0x86, - 0x3D, - 0x86, - 0x3D, - 0x90, - 0x93, - 0x93, - 0x9F, - 0x7B, - 0x22, - 0x92, - 0x3D, - 0x86, - 0x3D, - 0x22, - 0x75, - 0x93, - 0x93, - 0x9F, - 0x90, - 0x22, - 0x86, - 0x86, - 0x29, - 0xFF, - 0x05, - 0x5F, - 0x93, - 0x93, - 0x9F, - 0xA4, - 0xA5, - 0x86, - 0xFF, - 0x81, - 0xC4, - 0xDB, - 0xFF, - 0x29, - 0xC4, - 0xD3, - 0xB7, - 0x29, - 0xB7, - 0xD1, - 0xFF, - 0x81, - 0xC4, - 0xFF, - 0xC0, - 0x81, - 0x81, - 0xFF, - 0x81, - 0x1A, - 0x39, - 0x84, - 0x9A, - 0x9A, - 0x9F, - 0x7B, - 0x1D, - 0x17, - 0x2B, - 0x5A, - 0x5A, - 0x2B, - 0x76, - 0x48, - 0x2C, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x49, - 0x40, - 0x41, - 0x04, - 0x40, - 0x00, - 0x0F, - 0x41, - 0x2D, - 0x2B, - 0x39, - 0x8D, - 0x7B, - 0x88, - 0x88, - 0x93, - 0xA0, - 0x9F, - 0xA4, - 0x66, - 0x25, - 0xEE, - 0x00, - 0x06, - 0xD2, - 0x00, - 0x22, - 0xC6, - 0x2E, - 0x62, - 0x41, - 0x6F, - 0x41, - 0x4B, - 0x77, - 0x9F, - 0x9F, - 0x9F, - 0x88, - 0xE1, - 0xD6, - 0xD8, - 0xD5, - 0xD5, - 0xBB, - 0x95, - 0xA0, - 0x9F, - 0x9F, - 0x66, - 0x2E, - 0x40, - 0x40, - 0x25, - 0x61, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x55, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x48, - 0xE6, - 0xE5, - 0xDE, - 0xE6, - 0xE5, - 0xCC, - 0x5F, - 0x5E, - 0x4D, - 0x4D, - 0x78, - 0xF2, - 0xE2, - 0xDE, - 0xDE, - 0xC8, - 0xE5, - 0xEC, - 0xE6, - 0xDE, - 0xC9, - 0xDE, - 0xE2, - 0xC9, - 0x79, - 0x64, - 0x5B, - 0x4E, - 0x5B, - 0x39, - 0xC8, - 0xF0, - 0xCB, - 0xC9, - 0xDE, - 0xE0, - 0x92, - 0x64, - 0x64, - 0x64, - 0x5D, - 0x6B, - 0xD0, - 0xF4, - 0xCC, - 0xBF, - 0xC9, - 0xBF, - 0xCA, - 0xBD, - 0x6D, - 0x74, - 0x68, - 0x68, - 0x79, - 0xF2, - 0xCA, - 0xBD, - 0xBD, - 0xBF, - 0xCC, - 0xD0, - 0xCF, - 0xCF, - 0xD0, - 0xCE, - 0xD1, - 0xA5, - 0x6D, - 0x75, - 0x74, - 0x73, - 0x04, - 0x74, - 0x00, - 0x12, - 0x68, - 0x64, - 0x33, - 0x81, - 0xB6, - 0xFC, - 0xCE, - 0xBD, - 0xCF, - 0xBA, - 0xD1, - 0xD1, - 0xBC, - 0xBD, - 0xBD, - 0xBC, - 0xD1, - 0xD0, - 0x06, - 0xBA, - 0x00, - 0x07, - 0xB8, - 0xC4, - 0xD1, - 0xD1, - 0xC4, - 0xB8, - 0xB8, - 0x00, - 0x08, - 0xB6, - 0x00, - 0x10, - 0x86, - 0x81, - 0x86, - 0x29, - 0x22, - 0x26, - 0x26, - 0x22, - 0x22, - 0x86, - 0x86, - 0x86, - 0x3D, - 0x22, - 0x08, - 0xDF, - 0x06, - 0xDA, - 0x00, - 0x05, - 0x1C, - 0x86, - 0x1C, - 0x07, - 0xE7, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x39, - 0xD6, - 0x67, - 0x22, - 0x3D, - 0x0D, - 0xDB, - 0xDF, - 0xDF, - 0xE4, - 0x87, - 0x8E, - 0x39, - 0x22, - 0x3D, - 0x81, - 0x3D, - 0x3D, - 0x31, - 0x84, - 0x93, - 0x8F, - 0x9A, - 0x6D, - 0x1C, - 0x3D, - 0x92, - 0x39, - 0x81, - 0x3D, - 0x74, - 0x93, - 0x93, - 0x9A, - 0x88, - 0x22, - 0x3D, - 0x92, - 0x86, - 0x86, - 0x22, - 0x77, - 0x93, - 0x93, - 0x9A, - 0xA1, - 0x3D, - 0x86, - 0x3D, - 0x86, - 0x92, - 0x86, - 0x5C, - 0x8F, - 0x93, - 0xA0, - 0xA0, - 0x89, - 0x00, - 0x05, - 0x86, - 0x00, - 0x2C, - 0x3D, - 0x84, - 0x93, - 0xA0, - 0x9B, - 0x65, - 0x86, - 0x29, - 0xB7, - 0xB7, - 0x29, - 0xC0, - 0xB7, - 0xC4, - 0x29, - 0xB7, - 0xB7, - 0xB7, - 0xC0, - 0xFF, - 0x29, - 0x29, - 0xC0, - 0xFF, - 0x81, - 0x81, - 0x81, - 0xFF, - 0x1D, - 0x29, - 0x75, - 0x9A, - 0x9A, - 0x9F, - 0x94, - 0x39, - 0x67, - 0x58, - 0x2C, - 0x4A, - 0x4A, - 0x76, - 0x48, - 0x2C, - 0x05, - 0x49, - 0x00, - 0x0B, - 0x40, - 0x40, - 0x55, - 0x2E, - 0x41, - 0x6E, - 0x37, - 0x2B, - 0x4F, - 0x88, - 0x95, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x2E, - 0xA0, - 0x9F, - 0x8E, - 0x2C, - 0x41, - 0x4C, - 0xD7, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0x55, - 0x62, - 0x63, - 0x6F, - 0x41, - 0x27, - 0x60, - 0x96, - 0xA6, - 0x9F, - 0x90, - 0xDA, - 0xD5, - 0xBB, - 0x3E, - 0x3E, - 0xD7, - 0xD2, - 0x94, - 0x9A, - 0x9F, - 0x9F, - 0x59, - 0x55, - 0x37, - 0x40, - 0x52, - 0x40, - 0x40, - 0x25, - 0x49, - 0x40, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x4A, - 0xDE, - 0xE2, - 0xE2, - 0xE2, - 0xDE, - 0xE2, - 0xDE, - 0x79, - 0x3C, - 0x4D, - 0x4D, - 0x38, - 0x22, - 0xFC, - 0xE2, - 0xE2, - 0xDE, - 0xC9, - 0xDC, - 0xDE, - 0xDC, - 0xC9, - 0xC8, - 0xE0, - 0xC8, - 0x92, - 0x6B, - 0x64, - 0x5B, - 0x64, - 0x5C, - 0xF5, - 0xCB, - 0xCB, - 0xDD, - 0xDC, - 0xC8, - 0xB8, - 0x6B, - 0x68, - 0x64, - 0x64, - 0x5B, - 0x39, - 0xE6, - 0xE6, - 0xEC, - 0xCC, - 0xBF, - 0xC8, - 0xCE, - 0x8D, - 0x74, - 0x68, - 0x6A, - 0x79, - 0xC1, - 0xFC, - 0xCE, - 0xCA, - 0xBD, - 0xBD, - 0xBF, - 0xCF, - 0xCF, - 0xBD, - 0xD1, - 0xCF, - 0xD0, - 0xF5, - 0x92, - 0x8D, - 0x75, - 0x74, - 0x04, - 0x7F, - 0x00, - 0x28, - 0x73, - 0x6A, - 0x64, - 0x56, - 0x3D, - 0x22, - 0xFC, - 0xCE, - 0xCE, - 0xBD, - 0xBA, - 0xBA, - 0xBD, - 0xD1, - 0xC0, - 0xD0, - 0xD3, - 0xD1, - 0xBC, - 0xB6, - 0xBA, - 0xBA, - 0xC1, - 0xD1, - 0xB8, - 0xB7, - 0xC0, - 0xD3, - 0xC4, - 0xFF, - 0xB8, - 0xD3, - 0xB6, - 0xB6, - 0x26, - 0xB6, - 0x22, - 0x1A, - 0x1A, - 0x04, - 0x04, - 0x0D, - 0x00, - 0x09, - 0x10, - 0x0D, - 0x0D, - 0x0D, - 0x1C, - 0x1C, - 0x1C, - 0xEE, - 0xD6, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x07, - 0xD4, - 0x0B, - 0x22, - 0x1C, - 0x22, - 0x05, - 0xDF, - 0x00, - 0x04, - 0xDA, - 0x00, - 0x07, - 0xD6, - 0xE1, - 0x1C, - 0x3D, - 0x1C, - 0x07, - 0xE4, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x0B, - 0xE1, - 0x86, - 0x3D, - 0x3D, - 0x86, - 0x07, - 0x6B, - 0x93, - 0x93, - 0x93, - 0x97, - 0x00, - 0x05, - 0x3D, - 0x00, - 0x2C, - 0x1C, - 0x56, - 0x95, - 0x93, - 0x93, - 0x96, - 0x78, - 0x81, - 0x3D, - 0x86, - 0x3D, - 0x22, - 0x31, - 0x84, - 0x93, - 0x93, - 0x9F, - 0x8D, - 0x86, - 0x92, - 0x86, - 0x86, - 0x86, - 0x1C, - 0x74, - 0x93, - 0x93, - 0x9F, - 0x75, - 0x86, - 0x67, - 0xA5, - 0x86, - 0x81, - 0x22, - 0x77, - 0x9A, - 0xA0, - 0x9F, - 0x97, - 0x81, - 0xFF, - 0xFF, - 0x81, - 0x04, - 0xB7, - 0x00, - 0x20, - 0x29, - 0xB7, - 0x29, - 0xB7, - 0xFF, - 0xDB, - 0xC4, - 0xFF, - 0xC4, - 0x81, - 0x81, - 0x81, - 0x1A, - 0xFF, - 0x1D, - 0x29, - 0x56, - 0x93, - 0x9A, - 0x9F, - 0xA4, - 0x7E, - 0x1D, - 0x67, - 0x67, - 0x5A, - 0x2C, - 0x76, - 0x48, - 0x2C, - 0x61, - 0x2E, - 0x04, - 0x49, - 0x00, - 0x33, - 0x40, - 0x40, - 0x41, - 0x6E, - 0x41, - 0x40, - 0x58, - 0x77, - 0x93, - 0x9F, - 0x9F, - 0x9B, - 0xA0, - 0xA0, - 0x9F, - 0xA6, - 0xA6, - 0x9F, - 0xA0, - 0x65, - 0x41, - 0x41, - 0x40, - 0x62, - 0xBB, - 0xD7, - 0xD8, - 0x4C, - 0x41, - 0x62, - 0x70, - 0x42, - 0x42, - 0x4B, - 0x77, - 0x9F, - 0x9F, - 0x95, - 0xBB, - 0xD5, - 0x4C, - 0x25, - 0x27, - 0x20, - 0xFB, - 0xD2, - 0xA3, - 0x9A, - 0xA0, - 0xA0, - 0x65, - 0x00, - 0x04, - 0x40, - 0x00, - 0x07, - 0x2E, - 0x41, - 0x40, - 0x40, - 0x49, - 0x25, - 0x40, - 0x00, - 0x00, - 0x00, - 0x06, - 0xDE, - 0x00, - 0xD8, - 0xE2, - 0xDE, - 0x81, - 0x5E, - 0x3C, - 0x5E, - 0x4D, - 0x47, - 0x38, - 0x1C, - 0xC1, - 0xF6, - 0xE2, - 0xDE, - 0xC9, - 0xDE, - 0xC9, - 0xDC, - 0xC9, - 0xDC, - 0xC0, - 0x6D, - 0x64, - 0x5B, - 0x64, - 0x3C, - 0x1A, - 0xE5, - 0xDD, - 0xDD, - 0xCA, - 0xC8, - 0xCA, - 0x80, - 0x68, - 0x64, - 0x64, - 0x68, - 0x5C, - 0xFA, - 0xEC, - 0xCC, - 0xEC, - 0xCF, - 0xC9, - 0xCF, - 0x6D, - 0x74, - 0x68, - 0x68, - 0x64, - 0x5F, - 0x39, - 0xB6, - 0xF2, - 0xF2, - 0xCC, - 0xCC, - 0xBD, - 0xBD, - 0xCC, - 0xBD, - 0xD0, - 0xD1, - 0xCC, - 0xCF, - 0xD3, - 0x86, - 0x80, - 0x75, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x73, - 0x6A, - 0x68, - 0x5E, - 0x50, - 0x22, - 0xC1, - 0xCE, - 0xBA, - 0xBA, - 0xB8, - 0xD0, - 0xB8, - 0xBA, - 0xD1, - 0xD3, - 0xC0, - 0xF5, - 0xB8, - 0xB8, - 0xB6, - 0xC1, - 0xD3, - 0xB8, - 0xC0, - 0xC4, - 0xB7, - 0x29, - 0xC4, - 0x29, - 0xD3, - 0x29, - 0x22, - 0x22, - 0x22, - 0x0D, - 0x1B, - 0x47, - 0x68, - 0x73, - 0x7F, - 0x73, - 0x6A, - 0x5B, - 0x38, - 0x10, - 0x10, - 0x0D, - 0x67, - 0xBB, - 0xD6, - 0xD4, - 0xD6, - 0xD6, - 0xC6, - 0x3D, - 0x3D, - 0x1C, - 0x10, - 0xE8, - 0xDA, - 0xDA, - 0xDA, - 0xD6, - 0xDA, - 0xD4, - 0x13, - 0x1C, - 0x1A, - 0x10, - 0xEE, - 0xDA, - 0xDA, - 0xDA, - 0xD6, - 0xDA, - 0xD4, - 0xE1, - 0x1C, - 0x81, - 0x08, - 0x04, - 0x05, - 0x7F, - 0x93, - 0x93, - 0x9F, - 0x5F, - 0x1C, - 0x3D, - 0x67, - 0x67, - 0x92, - 0x1C, - 0x7F, - 0x93, - 0x93, - 0x9F, - 0x7B, - 0x3D, - 0x81, - 0x3D, - 0x86, - 0x3D, - 0x1C, - 0x75, - 0x93, - 0x93, - 0x9F, - 0x90, - 0x3D, - 0x3D, - 0x3D, - 0x92, - 0x81, - 0x22, - 0x6D, - 0x93, - 0x93, - 0x9A, - 0x91, - 0x92, - 0xFF, - 0xFF, - 0x29, - 0xFF, - 0x81, - 0x78, - 0x95, - 0x9A, - 0xA0, - 0x9F, - 0x89, - 0x86, - 0xFF, - 0x81, - 0x81, - 0xC4, - 0x29, - 0xFF, - 0xC0, - 0x04, - 0xB7, - 0x00, - 0x5E, - 0xFF, - 0xC4, - 0x81, - 0xC4, - 0xFF, - 0xFF, - 0xDB, - 0xC4, - 0x81, - 0x81, - 0x81, - 0x19, - 0x91, - 0x9F, - 0xA6, - 0x9B, - 0x65, - 0x1D, - 0x2B, - 0x2B, - 0x76, - 0x2B, - 0x76, - 0x76, - 0x48, - 0x49, - 0x55, - 0x55, - 0x49, - 0x40, - 0x6E, - 0x61, - 0x40, - 0x40, - 0x40, - 0x6E, - 0x6E, - 0x24, - 0x75, - 0x9F, - 0x9F, - 0x9B, - 0x91, - 0x7B, - 0xE1, - 0xBB, - 0x87, - 0x97, - 0x9F, - 0xA6, - 0x9F, - 0xA4, - 0x6F, - 0x6F, - 0x6F, - 0x62, - 0x41, - 0x6F, - 0x3E, - 0x41, - 0x62, - 0x42, - 0x42, - 0x62, - 0x41, - 0x20, - 0x88, - 0x9F, - 0xA6, - 0x91, - 0xD6, - 0xD8, - 0x09, - 0x20, - 0x09, - 0xFA, - 0xE4, - 0xD2, - 0xA1, - 0xA0, - 0x9F, - 0xA1, - 0x48, - 0x2B, - 0x20, - 0x40, - 0x41, - 0x62, - 0x40, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x40, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE2, - 0xF6, - 0xF6, - 0xE2, - 0xE2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x14, - 0xD0, - 0x5F, - 0x5B, - 0x5B, - 0x5E, - 0x5B, - 0x4D, - 0x4D, - 0x4F, - 0x31, - 0x03, - 0xF2, - 0xE2, - 0xE5, - 0xDC, - 0xC9, - 0xEA, - 0xDD, - 0xCC, - 0x80, - 0x04, - 0x64, - 0x00, - 0xB6, - 0x4F, - 0xE6, - 0xE5, - 0xBF, - 0xBF, - 0xCA, - 0xC8, - 0x67, - 0x64, - 0x68, - 0x64, - 0x68, - 0x5E, - 0xD3, - 0xCA, - 0xCC, - 0xDC, - 0xDC, - 0xD1, - 0xD0, - 0x8D, - 0x74, - 0x74, - 0x6A, - 0x74, - 0x68, - 0x64, - 0x5E, - 0x4F, - 0x22, - 0xF4, - 0xCE, - 0xCA, - 0xBD, - 0xBD, - 0xCF, - 0xCC, - 0xBA, - 0xCF, - 0xCC, - 0xCC, - 0xD0, - 0xB8, - 0xB7, - 0x80, - 0x7B, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x73, - 0x7F, - 0x7F, - 0x6A, - 0x6B, - 0x4F, - 0x22, - 0xC1, - 0xFC, - 0xBA, - 0xBA, - 0xB6, - 0xD3, - 0xD0, - 0xFF, - 0xB6, - 0xC0, - 0xC0, - 0xD3, - 0xC0, - 0xB8, - 0xB6, - 0xB6, - 0x22, - 0xB8, - 0x81, - 0xC4, - 0x81, - 0x5A, - 0x81, - 0x3D, - 0x22, - 0x10, - 0x5E, - 0x84, - 0x8F, - 0x90, - 0x88, - 0x64, - 0x88, - 0x90, - 0x8C, - 0x8F, - 0x7A, - 0x64, - 0x47, - 0x10, - 0x10, - 0x08, - 0x13, - 0xBB, - 0xD4, - 0x3E, - 0x1C, - 0x31, - 0x1C, - 0x05, - 0xDA, - 0xDA, - 0xD6, - 0xDA, - 0xDA, - 0xD4, - 0xBB, - 0x1C, - 0x39, - 0x19, - 0x0C, - 0xE4, - 0xD6, - 0xDA, - 0xDA, - 0xDA, - 0xD6, - 0xC6, - 0x1D, - 0x67, - 0x1D, - 0x1D, - 0xE8, - 0xDA, - 0xE4, - 0xBB, - 0x94, - 0x88, - 0x1C, - 0x3D, - 0x81, - 0xDB, - 0x1D, - 0x1A, - 0x7C, - 0x93, - 0x93, - 0x9A, - 0xA1, - 0x31, - 0x92, - 0x3D, - 0x3D, - 0x3D, - 0x22, - 0x5C, - 0x95, - 0x93, - 0xA0, - 0xA6, - 0x79, - 0x22, - 0x92, - 0x86, - 0x92, - 0x3D, - 0x92, - 0x84, - 0x9A, - 0x93, - 0x9F, - 0x7C, - 0x22, - 0x81, - 0x92, - 0x86, - 0x81, - 0x86, - 0x7F, - 0xA0, - 0x9A, - 0x9F, - 0x7B, - 0x86, - 0x86, - 0x04, - 0x29, - 0x00, - 0x65, - 0xFF, - 0xC4, - 0xC0, - 0xFF, - 0xFF, - 0xFF, - 0xC0, - 0x29, - 0x81, - 0xC0, - 0xC4, - 0xFF, - 0xDB, - 0xDB, - 0xFF, - 0x1D, - 0x81, - 0x1A, - 0x75, - 0x9A, - 0xA0, - 0x9F, - 0x94, - 0x1D, - 0x67, - 0x2B, - 0x76, - 0x2C, - 0x76, - 0x4A, - 0x2C, - 0x2C, - 0x2C, - 0x2D, - 0x61, - 0x55, - 0x55, - 0x40, - 0x40, - 0x40, - 0x41, - 0x70, - 0x41, - 0x20, - 0x77, - 0x9F, - 0x9F, - 0x9F, - 0x8E, - 0xDF, - 0xD4, - 0xD8, - 0xD8, - 0xD2, - 0xC6, - 0x97, - 0x9F, - 0x9F, - 0x9F, - 0x6C, - 0x2E, - 0x42, - 0x70, - 0x62, - 0x42, - 0x6F, - 0x62, - 0x6F, - 0x6F, - 0x6F, - 0x62, - 0x54, - 0x40, - 0x88, - 0x9F, - 0xA6, - 0xA6, - 0xB4, - 0xD2, - 0xE4, - 0xFB, - 0xEA, - 0xE4, - 0xD5, - 0xA7, - 0xA0, - 0xA0, - 0xA0, - 0x9F, - 0x95, - 0x90, - 0x6D, - 0x58, - 0x24, - 0x49, - 0x40, - 0x40, - 0x35, - 0x62, - 0x3E, - 0x25, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xF6, - 0xFC, - 0x31, - 0x03, - 0xFD, - 0xF6, - 0xE2, - 0xE2, - 0xE0, - 0xDE, - 0xC9, - 0x92, - 0x5F, - 0x5E, - 0x05, - 0x5B, - 0x00, - 0x0B, - 0x5E, - 0x47, - 0x50, - 0x22, - 0xF2, - 0xDE, - 0xCC, - 0xE6, - 0xC8, - 0xC8, - 0x81, - 0x00, - 0x04, - 0x64, - 0x00, - 0x16, - 0x5E, - 0xFE, - 0xE2, - 0xCA, - 0xCC, - 0xDC, - 0xDC, - 0xB8, - 0x77, - 0x68, - 0x68, - 0x68, - 0x64, - 0x92, - 0xE2, - 0xCA, - 0xCF, - 0xD1, - 0xCC, - 0xF9, - 0x7E, - 0x64, - 0x05, - 0x74, - 0x00, - 0x2B, - 0x6A, - 0x64, - 0x5B, - 0x4F, - 0x86, - 0xC1, - 0xF2, - 0xCC, - 0xBD, - 0xBD, - 0xCC, - 0xBD, - 0xCF, - 0xD0, - 0xCF, - 0xF9, - 0xD0, - 0xD0, - 0x29, - 0x89, - 0x77, - 0x7F, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x7F, - 0x73, - 0x74, - 0x64, - 0x5C, - 0x1C, - 0xF9, - 0xCF, - 0xC1, - 0xB6, - 0xB6, - 0xB6, - 0xD1, - 0xD1, - 0xD1, - 0xD3, - 0x29, - 0x00, - 0x04, - 0xB6, - 0x00, - 0x36, - 0x22, - 0x86, - 0x22, - 0xFF, - 0x1A, - 0x1A, - 0x19, - 0x64, - 0x8F, - 0x90, - 0x80, - 0x31, - 0x1C, - 0x0D, - 0x1C, - 0x31, - 0x78, - 0x6D, - 0x74, - 0x95, - 0x8F, - 0x84, - 0x68, - 0x47, - 0x1E, - 0x10, - 0x1C, - 0x1B, - 0x31, - 0x31, - 0x1C, - 0xE1, - 0xD6, - 0xD6, - 0xDA, - 0xD6, - 0xD6, - 0xD4, - 0x1F, - 0x1C, - 0x31, - 0x1C, - 0x0E, - 0xDA, - 0xDA, - 0xDA, - 0xD6, - 0xD6, - 0xD4, - 0x0B, - 0x1C, - 0x39, - 0x19, - 0x06, - 0x06, - 0xDA, - 0x00, - 0x0C, - 0x18, - 0x1C, - 0x92, - 0x19, - 0x1A, - 0x39, - 0x90, - 0xA0, - 0x96, - 0x9F, - 0x7C, - 0x1C, - 0x05, - 0x3D, - 0x00, - 0x41, - 0x88, - 0x9A, - 0x96, - 0x9F, - 0x75, - 0x3D, - 0x92, - 0x3D, - 0x3D, - 0x3D, - 0x22, - 0x64, - 0x9A, - 0x93, - 0x9F, - 0x94, - 0x3D, - 0x92, - 0x86, - 0x86, - 0x86, - 0x22, - 0x56, - 0x9A, - 0x96, - 0x9A, - 0xA1, - 0x92, - 0x86, - 0x81, - 0xB7, - 0xB7, - 0xB7, - 0x86, - 0xC0, - 0x81, - 0xFF, - 0xFF, - 0x29, - 0xFF, - 0xFF, - 0xFF, - 0x29, - 0xFF, - 0x29, - 0x81, - 0xFF, - 0xFF, - 0xFF, - 0x1D, - 0x1A, - 0x60, - 0x93, - 0xA0, - 0x9F, - 0xA4, - 0x48, - 0x1D, - 0x2B, - 0x67, - 0x5A, - 0x5A, - 0x2C, - 0x2C, - 0x4A, - 0x00, - 0x04, - 0x49, - 0x04, - 0x40, - 0x00, - 0x3E, - 0x41, - 0x63, - 0x62, - 0x41, - 0x48, - 0x91, - 0xA6, - 0xA6, - 0x97, - 0xDA, - 0xD8, - 0x69, - 0x2F, - 0x2E, - 0xBB, - 0xD2, - 0xB4, - 0xA0, - 0xA6, - 0x9B, - 0x7D, - 0x41, - 0x62, - 0x6F, - 0x42, - 0x42, - 0x62, - 0x62, - 0x54, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x2E, - 0x7D, - 0x9F, - 0x9F, - 0xA0, - 0x96, - 0xB5, - 0xD2, - 0xD5, - 0xD8, - 0xB5, - 0xA4, - 0xA0, - 0x9F, - 0x9F, - 0x9F, - 0xA0, - 0x9F, - 0x9F, - 0x9F, - 0x95, - 0x88, - 0x60, - 0x58, - 0x2B, - 0x11, - 0x2C, - 0x19, - 0x39, - 0x00, - 0x00, - 0x00, - 0x13, - 0xDE, - 0xB8, - 0x56, - 0x4D, - 0x47, - 0x50, - 0x0D, - 0xF2, - 0xFD, - 0xF6, - 0xE2, - 0xE2, - 0xDE, - 0xBC, - 0x29, - 0x5C, - 0x6B, - 0x64, - 0x4E, - 0x00, - 0x04, - 0x5B, - 0x00, - 0x76, - 0x47, - 0xCF, - 0xE2, - 0xDE, - 0xC9, - 0xDE, - 0xC8, - 0xB7, - 0x6D, - 0x68, - 0x64, - 0x64, - 0x5B, - 0x92, - 0xE2, - 0xE0, - 0xCC, - 0xCC, - 0xCA, - 0xCF, - 0x80, - 0x75, - 0x68, - 0x68, - 0x68, - 0x5C, - 0xCE, - 0xCA, - 0xCC, - 0xBD, - 0xDC, - 0xEC, - 0xBD, - 0x29, - 0x80, - 0x64, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x74, - 0x6A, - 0x68, - 0x5B, - 0x5F, - 0x3D, - 0xC1, - 0xFC, - 0xCA, - 0xBD, - 0xBA, - 0xBA, - 0xBA, - 0xCF, - 0xCF, - 0xB8, - 0xD0, - 0xCF, - 0xC1, - 0xC0, - 0xA5, - 0x7B, - 0x88, - 0x84, - 0x84, - 0x7A, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x64, - 0x56, - 0x1A, - 0xF9, - 0xFE, - 0xFC, - 0xC1, - 0x03, - 0x22, - 0x29, - 0xD3, - 0xB6, - 0xB6, - 0xD3, - 0x81, - 0x29, - 0x22, - 0x22, - 0x22, - 0x1C, - 0x07, - 0x6B, - 0x8C, - 0x90, - 0x39, - 0x19, - 0x19, - 0x92, - 0x19, - 0x31, - 0x1C, - 0x1B, - 0x31, - 0x31, - 0x50, - 0x5E, - 0x88, - 0x95, - 0x8F, - 0x84, - 0x74, - 0x47, - 0x1E, - 0x10, - 0x10, - 0x1E, - 0xE1, - 0xD7, - 0x04, - 0xD4, - 0x00, - 0x50, - 0xBB, - 0x1B, - 0x31, - 0x1B, - 0x0C, - 0xDF, - 0xDA, - 0xD6, - 0xD6, - 0xD6, - 0xD4, - 0xC6, - 0x3D, - 0x3D, - 0x1C, - 0x1C, - 0xE4, - 0xD6, - 0xDA, - 0xD6, - 0xD6, - 0xD6, - 0xD7, - 0x17, - 0x3D, - 0x19, - 0x1C, - 0x07, - 0x56, - 0x93, - 0x9A, - 0x9F, - 0x97, - 0x31, - 0x81, - 0x3D, - 0x81, - 0x3D, - 0x1C, - 0x5F, - 0x93, - 0x95, - 0x9A, - 0x96, - 0x39, - 0x67, - 0x1D, - 0xA5, - 0x81, - 0x3D, - 0x4F, - 0x95, - 0x93, - 0xA0, - 0xA0, - 0x80, - 0x86, - 0x81, - 0x86, - 0x81, - 0x29, - 0x31, - 0x84, - 0xA0, - 0x9A, - 0x9F, - 0x8D, - 0x86, - 0x81, - 0x29, - 0xB7, - 0x81, - 0xB7, - 0xC0, - 0xB7, - 0xB7, - 0xB7, - 0x81, - 0xFF, - 0xC4, - 0x04, - 0xFF, - 0x01, - 0xC0, - 0x05, - 0x81, - 0x00, - 0x55, - 0x39, - 0x91, - 0x9F, - 0x9F, - 0x9B, - 0x66, - 0x58, - 0x76, - 0x67, - 0x2B, - 0x76, - 0x76, - 0x2C, - 0x2C, - 0x4A, - 0x49, - 0x2D, - 0x2D, - 0x40, - 0x61, - 0x49, - 0x40, - 0x40, - 0x6E, - 0x62, - 0x62, - 0x2E, - 0x7C, - 0xA0, - 0x9F, - 0x9B, - 0x98, - 0xD5, - 0x69, - 0x40, - 0x42, - 0x27, - 0xFF, - 0xD5, - 0x8A, - 0xA0, - 0xA6, - 0x9B, - 0x7D, - 0x41, - 0x54, - 0x6F, - 0x62, - 0x6F, - 0x6F, - 0x42, - 0x62, - 0x41, - 0x6F, - 0x3E, - 0x3E, - 0x53, - 0x53, - 0xA1, - 0x9F, - 0x9F, - 0x9F, - 0xA0, - 0xA4, - 0xA6, - 0xA6, - 0xA0, - 0x9A, - 0x9F, - 0xA6, - 0x97, - 0x95, - 0xA6, - 0x9F, - 0x9F, - 0x9A, - 0x9A, - 0x9F, - 0xA0, - 0x97, - 0x75, - 0x5F, - 0x77, - 0x7F, - 0x8C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4B, - 0xE5, - 0xDE, - 0xE6, - 0xFE, - 0x1A, - 0x5C, - 0x4D, - 0x4D, - 0x4F, - 0x1C, - 0x03, - 0xF6, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xCC, - 0xB7, - 0x79, - 0x56, - 0x64, - 0x64, - 0x64, - 0x5B, - 0x5E, - 0x3D, - 0xE2, - 0xE0, - 0xCA, - 0xDE, - 0xC8, - 0xCC, - 0x79, - 0x75, - 0x64, - 0x64, - 0x64, - 0x5C, - 0xFE, - 0xE0, - 0xC9, - 0xBF, - 0xE0, - 0xC8, - 0x92, - 0x7B, - 0x74, - 0x68, - 0x68, - 0x6B, - 0xD3, - 0xF2, - 0xCC, - 0xBD, - 0xBD, - 0xCE, - 0xCC, - 0xF4, - 0xCC, - 0x86, - 0x89, - 0x77, - 0x74, - 0x7F, - 0x7F, - 0x74, - 0x74, - 0x6A, - 0x6A, - 0x64, - 0x5E, - 0x50, - 0xB6, - 0xFC, - 0xF2, - 0x00, - 0x05, - 0xCF, - 0x00, - 0x09, - 0xB8, - 0xCF, - 0xB6, - 0xFA, - 0xD0, - 0x29, - 0xA5, - 0x8D, - 0x75, - 0x00, - 0x04, - 0x84, - 0x00, - 0x39, - 0x7F, - 0x84, - 0x7F, - 0x68, - 0x5F, - 0xE9, - 0xEF, - 0xF3, - 0xF4, - 0xFC, - 0x03, - 0x26, - 0xB6, - 0x29, - 0x1D, - 0x81, - 0x22, - 0x1A, - 0x86, - 0x26, - 0x31, - 0x7F, - 0x8C, - 0x79, - 0x1C, - 0x58, - 0x1D, - 0x31, - 0x1F, - 0x39, - 0x31, - 0x31, - 0x1E, - 0x1B, - 0x1B, - 0x1E, - 0x1B, - 0x5C, - 0x6B, - 0x75, - 0x91, - 0x93, - 0x91, - 0x74, - 0x3C, - 0x21, - 0x10, - 0x1B, - 0x11, - 0x69, - 0xC6, - 0xD8, - 0x24, - 0x31, - 0x19, - 0x1B, - 0x0E, - 0x00, - 0x05, - 0xD6, - 0x00, - 0x3C, - 0xD4, - 0x0B, - 0x31, - 0x3D, - 0x1C, - 0x18, - 0xDA, - 0xDA, - 0xD6, - 0xD6, - 0xD6, - 0xD4, - 0xBB, - 0x19, - 0x2B, - 0x1D, - 0x06, - 0xDF, - 0xD9, - 0xBB, - 0x94, - 0x91, - 0x5F, - 0x3D, - 0x19, - 0x92, - 0x39, - 0x92, - 0x31, - 0x90, - 0xA0, - 0xA0, - 0x9F, - 0x7C, - 0x3D, - 0x1D, - 0x81, - 0x1D, - 0x92, - 0x3D, - 0x88, - 0xA0, - 0xA0, - 0x9F, - 0x7D, - 0x22, - 0x92, - 0x86, - 0x81, - 0x81, - 0x22, - 0x75, - 0x9A, - 0x9A, - 0x9F, - 0x8E, - 0x3D, - 0x29, - 0x29, - 0xB7, - 0x07, - 0x29, - 0x00, - 0x49, - 0xB7, - 0x29, - 0x29, - 0xC0, - 0x81, - 0xFF, - 0x81, - 0x29, - 0x81, - 0x81, - 0x1D, - 0x1D, - 0x1A, - 0x75, - 0x9F, - 0xA6, - 0x9B, - 0x8E, - 0x1D, - 0x5A, - 0x2B, - 0x2B, - 0x5A, - 0x76, - 0x2C, - 0x2C, - 0x2C, - 0x49, - 0x2D, - 0x49, - 0x61, - 0x61, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x41, - 0x53, - 0x6E, - 0x2E, - 0x7B, - 0x9F, - 0xA6, - 0x9F, - 0xB4, - 0xD2, - 0xE1, - 0x19, - 0x19, - 0x07, - 0xE7, - 0xD2, - 0xA3, - 0x9F, - 0x9F, - 0xA6, - 0x54, - 0x6F, - 0x54, - 0x6F, - 0x41, - 0x6F, - 0x41, - 0x6F, - 0x6F, - 0x41, - 0x62, - 0x69, - 0x62, - 0x41, - 0x62, - 0x54, - 0x97, - 0x00, - 0x06, - 0x9F, - 0x00, - 0x09, - 0x9B, - 0x9B, - 0x97, - 0x6C, - 0x40, - 0x53, - 0x6C, - 0x94, - 0x96, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x06, - 0x9A, - 0x9F, - 0x9A, - 0x9F, - 0x9A, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x4E, - 0xDE, - 0xE6, - 0xF7, - 0xF3, - 0xF8, - 0xF8, - 0xF0, - 0x1A, - 0x4F, - 0x5B, - 0x4D, - 0x4F, - 0xCE, - 0xE0, - 0xDE, - 0xDE, - 0xC9, - 0xE2, - 0xDE, - 0xC9, - 0xB8, - 0xA5, - 0x6B, - 0x64, - 0x5B, - 0x5B, - 0x50, - 0xE6, - 0xE6, - 0xC9, - 0xDC, - 0xE0, - 0xC8, - 0x92, - 0x4E, - 0x75, - 0x64, - 0x68, - 0x6B, - 0xB7, - 0xE0, - 0xE6, - 0xCC, - 0xC9, - 0xE0, - 0xBC, - 0x6D, - 0x74, - 0x68, - 0x68, - 0x64, - 0x92, - 0xE6, - 0xEC, - 0xCC, - 0xDD, - 0xCC, - 0xBD, - 0xBD, - 0xE0, - 0xCF, - 0xEC, - 0xFF, - 0x89, - 0x6D, - 0x74, - 0x7F, - 0x7F, - 0x73, - 0x74, - 0x73, - 0x74, - 0x68, - 0x5E, - 0x4F, - 0x29, - 0xFE, - 0xCE, - 0x04, - 0xCF, - 0x00, - 0x2C, - 0xBA, - 0xD0, - 0xD3, - 0xD0, - 0xBA, - 0xC1, - 0xB6, - 0xA5, - 0x7C, - 0x75, - 0x84, - 0x91, - 0x84, - 0x84, - 0x84, - 0x94, - 0xE3, - 0xDF, - 0xE3, - 0xE3, - 0xEB, - 0xF1, - 0xFA, - 0x03, - 0x03, - 0x04, - 0x86, - 0x1A, - 0x81, - 0x1C, - 0x0D, - 0x5E, - 0x8F, - 0x75, - 0x10, - 0x1C, - 0x1C, - 0x31, - 0x31, - 0x19, - 0x1B, - 0x1E, - 0x1B, - 0x1B, - 0x04, - 0x23, - 0x00, - 0x14, - 0x1E, - 0x1E, - 0x21, - 0x38, - 0x4D, - 0x75, - 0x84, - 0x93, - 0x8C, - 0x74, - 0x5B, - 0x23, - 0x10, - 0x1B, - 0x2A, - 0x31, - 0x21, - 0x50, - 0x21, - 0xDA, - 0x04, - 0xD6, - 0x00, - 0x07, - 0xD4, - 0xC6, - 0x1C, - 0x3D, - 0x31, - 0x1C, - 0xE4, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x3F, - 0xD4, - 0xD7, - 0x1D, - 0x3D, - 0x2B, - 0x19, - 0xE1, - 0xD6, - 0xD6, - 0xD6, - 0xDA, - 0xDA, - 0xE8, - 0x3D, - 0x3D, - 0x92, - 0x19, - 0x22, - 0x6B, - 0x9A, - 0x93, - 0x9F, - 0x97, - 0x92, - 0x3D, - 0x3D, - 0x3D, - 0x81, - 0x3D, - 0x56, - 0xA0, - 0xA0, - 0x9F, - 0xA1, - 0x58, - 0x81, - 0x3D, - 0x86, - 0x3D, - 0x86, - 0x5C, - 0x93, - 0xA0, - 0x9F, - 0xA4, - 0xA5, - 0xB7, - 0x92, - 0xB7, - 0x86, - 0xB7, - 0xB7, - 0xC0, - 0xC0, - 0x81, - 0xC0, - 0xFF, - 0x29, - 0xC0, - 0x81, - 0x29, - 0x29, - 0xC0, - 0x00, - 0x04, - 0x81, - 0x00, - 0x10, - 0x18, - 0x1A, - 0x8D, - 0xA0, - 0x9F, - 0x9F, - 0xA1, - 0x48, - 0x1D, - 0x2B, - 0x67, - 0x13, - 0x76, - 0x4B, - 0xE8, - 0x4A, - 0x04, - 0x49, - 0x00, - 0x44, - 0x40, - 0x40, - 0x55, - 0x41, - 0x6E, - 0x41, - 0x40, - 0x62, - 0x70, - 0x2E, - 0x7C, - 0xA0, - 0x9F, - 0xA6, - 0xA4, - 0xD8, - 0xD5, - 0xDF, - 0xE7, - 0xDF, - 0xD5, - 0xA9, - 0x9F, - 0xA6, - 0x9B, - 0x8E, - 0x41, - 0x54, - 0x62, - 0x54, - 0x42, - 0x6F, - 0x41, - 0x54, - 0x6F, - 0x41, - 0x62, - 0x3E, - 0x62, - 0x62, - 0x70, - 0x55, - 0x63, - 0x7D, - 0x94, - 0xA1, - 0xA4, - 0xA4, - 0x97, - 0x94, - 0x59, - 0x41, - 0x40, - 0x62, - 0x2F, - 0x40, - 0x40, - 0x53, - 0x7D, - 0x94, - 0xA0, - 0x9F, - 0x9F, - 0x9F, - 0xA0, - 0xA1, - 0x8E, - 0x7D, - 0x00, - 0x00, - 0x00, - 0x62, - 0xE2, - 0xDE, - 0xF6, - 0xEF, - 0xEF, - 0xF3, - 0xF3, - 0xF8, - 0xF8, - 0xE6, - 0x79, - 0x5B, - 0x79, - 0xE2, - 0xDE, - 0xDE, - 0xC9, - 0xC7, - 0xE5, - 0xC9, - 0xDE, - 0xE2, - 0xD0, - 0x56, - 0x64, - 0x64, - 0x64, - 0x5F, - 0xF4, - 0xE0, - 0xDC, - 0xE0, - 0xCB, - 0xE0, - 0xBC, - 0x6D, - 0x68, - 0x75, - 0x68, - 0x64, - 0x39, - 0xF4, - 0xCC, - 0xDD, - 0xCB, - 0xCC, - 0xEC, - 0x80, - 0x75, - 0x74, - 0x68, - 0x68, - 0x5C, - 0xFA, - 0xE0, - 0xF5, - 0xEC, - 0xCC, - 0xBE, - 0xBD, - 0xBD, - 0xBD, - 0xCF, - 0xCF, - 0xEC, - 0xD3, - 0x76, - 0x6D, - 0x75, - 0x7F, - 0x7F, - 0x7F, - 0x73, - 0x7F, - 0x7F, - 0x6A, - 0x6B, - 0x5C, - 0x3D, - 0xFE, - 0xC1, - 0xCF, - 0xCF, - 0xBA, - 0xBA, - 0xB6, - 0xBA, - 0xB6, - 0xD0, - 0xF9, - 0xF9, - 0xB7, - 0x5A, - 0x8D, - 0x75, - 0x90, - 0x8C, - 0xBB, - 0x05, - 0xDF, - 0x00, - 0x16, - 0xE3, - 0xE3, - 0xEB, - 0xF1, - 0xF9, - 0x03, - 0x0D, - 0x08, - 0x22, - 0x1B, - 0x7F, - 0x91, - 0x4F, - 0x1C, - 0x31, - 0x31, - 0x1B, - 0x1E, - 0x05, - 0x02, - 0x00, - 0x0A, - 0x0A, - 0x23, - 0x00, - 0x19, - 0x1E, - 0x30, - 0x6B, - 0x75, - 0x91, - 0x93, - 0x8F, - 0x7F, - 0x5B, - 0x38, - 0x1E, - 0x1E, - 0x1E, - 0x1F, - 0xD9, - 0xD8, - 0xD4, - 0xD4, - 0xD4, - 0xD8, - 0x4A, - 0x31, - 0x31, - 0x1C, - 0x01, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x3D, - 0xD4, - 0xD5, - 0x0B, - 0x3D, - 0x31, - 0x1B, - 0x01, - 0xDA, - 0xD6, - 0xD6, - 0xD6, - 0xD4, - 0xD5, - 0xBB, - 0x1A, - 0x3D, - 0x3D, - 0x07, - 0x1B, - 0x84, - 0x9A, - 0xA0, - 0x9B, - 0x60, - 0x3D, - 0x39, - 0x92, - 0xFF, - 0x3D, - 0x31, - 0x90, - 0x9F, - 0xA0, - 0xA2, - 0x7C, - 0xFF, - 0xB2, - 0x67, - 0xFF, - 0x81, - 0x3D, - 0x90, - 0xA0, - 0xA0, - 0x9F, - 0x7B, - 0x86, - 0x3D, - 0x86, - 0x29, - 0xC4, - 0x29, - 0xB7, - 0xB7, - 0x29, - 0x29, - 0xC0, - 0x81, - 0x81, - 0x81, - 0xC0, - 0x00, - 0x04, - 0x81, - 0x00, - 0x17, - 0xFF, - 0x81, - 0xFF, - 0x81, - 0x1D, - 0x91, - 0x9F, - 0xA0, - 0x9B, - 0x65, - 0x67, - 0x67, - 0x2B, - 0x2B, - 0x76, - 0x5A, - 0x0B, - 0x3E, - 0x2C, - 0x4B, - 0x4B, - 0x55, - 0x55, - 0x00, - 0x05, - 0x40, - 0x00, - 0x3F, - 0x6E, - 0x6F, - 0x70, - 0x62, - 0x70, - 0x41, - 0x97, - 0x9F, - 0xA6, - 0xA6, - 0xA4, - 0xB0, - 0xC2, - 0xB3, - 0xB1, - 0xA7, - 0x9F, - 0xA6, - 0x9B, - 0x97, - 0x41, - 0x54, - 0x42, - 0x42, - 0x42, - 0x62, - 0x62, - 0x42, - 0x42, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x70, - 0x62, - 0x42, - 0x3E, - 0x55, - 0x2F, - 0x62, - 0x54, - 0x54, - 0x2E, - 0x40, - 0x37, - 0x41, - 0x41, - 0x41, - 0x62, - 0x42, - 0x63, - 0x41, - 0x2E, - 0x25, - 0x65, - 0x7D, - 0x8E, - 0x6C, - 0x54, - 0x40, - 0x25, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x62, - 0xE5, - 0xF4, - 0xF8, - 0xED, - 0xED, - 0xED, - 0xEF, - 0xED, - 0xED, - 0xF3, - 0x26, - 0x5B, - 0x6B, - 0xE2, - 0xE5, - 0xE6, - 0xDE, - 0xDE, - 0xC9, - 0xC7, - 0xDE, - 0xDE, - 0xE2, - 0xCB, - 0x8D, - 0x64, - 0x64, - 0x64, - 0x5E, - 0xB6, - 0xE2, - 0xC9, - 0xCB, - 0xDC, - 0xE0, - 0xE6, - 0x89, - 0x75, - 0x68, - 0x64, - 0x68, - 0x56, - 0xCF, - 0xE6, - 0xDD, - 0xE6, - 0xDD, - 0xF0, - 0x92, - 0x64, - 0x74, - 0x68, - 0x6A, - 0x56, - 0x50, - 0x04, - 0xFE, - 0xE0, - 0xF5, - 0xCC, - 0xEC, - 0xD0, - 0xBD, - 0xBD, - 0xCC, - 0xCF, - 0xD0, - 0xCF, - 0xD1, - 0x89, - 0x8D, - 0x75, - 0x7F, - 0x7F, - 0x7A, - 0x7F, - 0x7F, - 0x73, - 0x74, - 0x64, - 0x5F, - 0x31, - 0xFE, - 0xFC, - 0xCE, - 0xCF, - 0xD0, - 0xB6, - 0xCF, - 0xB7, - 0xD3, - 0xC0, - 0xC4, - 0xFA, - 0xD3, - 0x67, - 0x80, - 0xDF, - 0x07, - 0xDA, - 0x00, - 0x1B, - 0xDF, - 0xDF, - 0xE3, - 0xE7, - 0xDB, - 0x08, - 0x0D, - 0x5C, - 0x8C, - 0x7F, - 0x1C, - 0x3D, - 0x31, - 0x31, - 0x1E, - 0x01, - 0xDA, - 0xC6, - 0xC6, - 0xD6, - 0x4C, - 0x23, - 0x1E, - 0x23, - 0x23, - 0x23, - 0x30, - 0x00, - 0x07, - 0x23, - 0x00, - 0x81, - 0x38, - 0x4E, - 0x75, - 0x84, - 0x9A, - 0x93, - 0x7F, - 0x64, - 0x38, - 0x1E, - 0x1E, - 0x24, - 0x4C, - 0xC6, - 0xD5, - 0xC6, - 0x31, - 0x31, - 0x21, - 0x0C, - 0xD9, - 0xD6, - 0xD6, - 0xD7, - 0xD6, - 0xD4, - 0xC6, - 0x19, - 0x31, - 0x19, - 0x1C, - 0xE4, - 0xD6, - 0xD6, - 0xD6, - 0xD7, - 0xD4, - 0xD7, - 0x1F, - 0x19, - 0x39, - 0x0C, - 0xE8, - 0xDF, - 0xB4, - 0x94, - 0x95, - 0x88, - 0x3D, - 0x1D, - 0x81, - 0x81, - 0x5A, - 0x08, - 0x7B, - 0xA0, - 0xA0, - 0x9F, - 0x97, - 0x3D, - 0x67, - 0x67, - 0x67, - 0xA5, - 0x1A, - 0x6D, - 0x9A, - 0xA0, - 0x9F, - 0x97, - 0x92, - 0x86, - 0x29, - 0x29, - 0xC4, - 0xDB, - 0xC0, - 0xC4, - 0xFF, - 0xB7, - 0xB7, - 0x29, - 0x29, - 0xC0, - 0x29, - 0xFF, - 0xFF, - 0xC0, - 0x81, - 0xFF, - 0x81, - 0x81, - 0xFF, - 0x1A, - 0x88, - 0x9F, - 0xA0, - 0x9F, - 0x94, - 0x17, - 0x4A, - 0x5A, - 0x2B, - 0x1D, - 0x04, - 0x03, - 0x04, - 0x04, - 0xFF, - 0x0E, - 0x55, - 0x55, - 0x62, - 0x61, - 0x40, - 0x40, - 0x40, - 0x41, - 0x41, - 0x6F, - 0x70, - 0x42, - 0x71, - 0x63, - 0x66, - 0x96, - 0x9B, - 0xA6, - 0x9F, - 0x00, - 0x05, - 0xA6, - 0x00, - 0x23, - 0x9B, - 0xA6, - 0x94, - 0x63, - 0x6F, - 0x70, - 0x54, - 0x54, - 0x6F, - 0x6F, - 0x54, - 0x42, - 0x6F, - 0x41, - 0x62, - 0x6F, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x6F, - 0x53, - 0x41, - 0x62, - 0x41, - 0x63, - 0x62, - 0x6F, - 0x3E, - 0x41, - 0x53, - 0x41, - 0x6E, - 0x41, - 0x6F, - 0x00, - 0x04, - 0x41, - 0x00, - 0x08, - 0x2F, - 0x2E, - 0x25, - 0x25, - 0x40, - 0x40, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x03, - 0xE5, - 0xE5, - 0xF8, - 0x00, - 0x06, - 0xED, - 0x00, - 0x08, - 0xF3, - 0x3D, - 0x5B, - 0x5F, - 0xE2, - 0xEC, - 0xDC, - 0xC9, - 0x05, - 0xDE, - 0x00, - 0x2D, - 0xC7, - 0xE5, - 0xCB, - 0x89, - 0x64, - 0x64, - 0x64, - 0x5B, - 0x3D, - 0xE2, - 0xE0, - 0xE0, - 0xCC, - 0xDC, - 0xF4, - 0xB7, - 0x6B, - 0x74, - 0x68, - 0x68, - 0x77, - 0x29, - 0xE5, - 0xCC, - 0xDD, - 0xDC, - 0xCC, - 0xBE, - 0x6D, - 0x74, - 0x6A, - 0x74, - 0x6A, - 0x64, - 0x5E, - 0x4F, - 0x81, - 0xFE, - 0xF4, - 0xEC, - 0xCC, - 0xCC, - 0xBA, - 0xCF, - 0xCC, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x1F, - 0xD1, - 0x67, - 0x80, - 0x7B, - 0x74, - 0x84, - 0x84, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x68, - 0x56, - 0x50, - 0x04, - 0xF9, - 0xFE, - 0xF5, - 0xD0, - 0xB6, - 0xFA, - 0xD3, - 0xB6, - 0xC0, - 0xF5, - 0xEA, - 0xDF, - 0xD6, - 0xD4, - 0xD6, - 0xD6, - 0x00, - 0x08, - 0xDA, - 0x00, - 0x10, - 0x05, - 0x1C, - 0x74, - 0x8F, - 0x56, - 0x10, - 0x1B, - 0x31, - 0x1B, - 0x1E, - 0xE1, - 0xD4, - 0x28, - 0x21, - 0xD9, - 0xD9, - 0x0A, - 0x30, - 0x00, - 0x17, - 0x2A, - 0x30, - 0x30, - 0x23, - 0x23, - 0x23, - 0x2A, - 0x3C, - 0x75, - 0x84, - 0x93, - 0x93, - 0x84, - 0x64, - 0x3A, - 0x1E, - 0x1E, - 0x24, - 0x33, - 0x21, - 0x50, - 0x1B, - 0x0B, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x12, - 0xD7, - 0xD5, - 0x15, - 0x31, - 0x39, - 0x31, - 0x17, - 0xD6, - 0xD6, - 0xD6, - 0xD4, - 0xD4, - 0xD5, - 0x3E, - 0x1A, - 0x39, - 0x1D, - 0xDB, - 0x04, - 0xD6, - 0x00, - 0x2B, - 0xC6, - 0xE4, - 0x81, - 0x92, - 0x1A, - 0x67, - 0x81, - 0x50, - 0x95, - 0xA0, - 0x9F, - 0xA6, - 0x80, - 0x3D, - 0x3D, - 0x3D, - 0x81, - 0xFF, - 0x58, - 0x91, - 0xA0, - 0x9F, - 0xA6, - 0x52, - 0x86, - 0x81, - 0xB7, - 0xC0, - 0xFF, - 0xC4, - 0xFF, - 0xDB, - 0x29, - 0xFF, - 0xDB, - 0xB7, - 0x81, - 0x29, - 0xC0, - 0x81, - 0x81, - 0x81, - 0xFF, - 0x00, - 0x04, - 0x81, - 0x00, - 0x19, - 0x39, - 0x91, - 0x9F, - 0xA0, - 0xA4, - 0x48, - 0x2C, - 0x2C, - 0x2B, - 0x1D, - 0x07, - 0x5F, - 0x90, - 0x97, - 0x88, - 0x7C, - 0x39, - 0x05, - 0x06, - 0x4A, - 0x40, - 0x40, - 0x2E, - 0x6F, - 0x6F, - 0x00, - 0x04, - 0x41, - 0x00, - 0x3B, - 0x70, - 0x42, - 0x6F, - 0x66, - 0x97, - 0xA6, - 0x9B, - 0xA2, - 0xA6, - 0xA2, - 0x9B, - 0xA6, - 0xA3, - 0x85, - 0x63, - 0x70, - 0x42, - 0x71, - 0x42, - 0x70, - 0x42, - 0x6F, - 0x54, - 0x6F, - 0x54, - 0x6F, - 0x6F, - 0x54, - 0x62, - 0x6F, - 0x6F, - 0x42, - 0x41, - 0x6F, - 0x41, - 0x53, - 0x41, - 0x62, - 0x41, - 0x63, - 0x63, - 0x6F, - 0x41, - 0x37, - 0x41, - 0x41, - 0x41, - 0x6E, - 0x62, - 0x41, - 0x62, - 0x62, - 0x2E, - 0x40, - 0x2E, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xE2, - 0xFD, - 0xF3, - 0x00, - 0x05, - 0xED, - 0x00, - 0x13, - 0xE3, - 0xFA, - 0x4F, - 0x64, - 0xA5, - 0xE2, - 0xE5, - 0xE6, - 0xE6, - 0xDE, - 0xE6, - 0xC7, - 0xCB, - 0xC9, - 0xDE, - 0xDE, - 0xC8, - 0xE5, - 0x67, - 0x00, - 0x04, - 0x64, - 0x00, - 0x10, - 0x78, - 0xE0, - 0xDE, - 0xC9, - 0xC9, - 0xC9, - 0xDE, - 0xCC, - 0x8D, - 0x75, - 0x68, - 0x68, - 0x68, - 0x79, - 0xCE, - 0xE0, - 0x04, - 0xCC, - 0x00, - 0x03, - 0x89, - 0x75, - 0x7F, - 0x00, - 0x04, - 0x74, - 0x00, - 0x0A, - 0x68, - 0x5B, - 0x5F, - 0x39, - 0x26, - 0xF2, - 0xCA, - 0xD0, - 0xBC, - 0xBC, - 0x06, - 0xCF, - 0x00, - 0x36, - 0xFA, - 0xC0, - 0x80, - 0x77, - 0x74, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x84, - 0x7F, - 0x74, - 0x5E, - 0x4F, - 0x81, - 0xFA, - 0xFE, - 0xD1, - 0xD0, - 0xD3, - 0xB6, - 0xB6, - 0xD1, - 0xC0, - 0xFB, - 0xE1, - 0xDA, - 0xD6, - 0xD4, - 0xD4, - 0xD6, - 0xD6, - 0xD6, - 0xDA, - 0xD4, - 0xE1, - 0x07, - 0x33, - 0x8C, - 0x90, - 0x1D, - 0x1B, - 0x31, - 0x31, - 0x1E, - 0x1E, - 0x2A, - 0xD6, - 0xD9, - 0x00, - 0x00, - 0x2A, - 0x30, - 0x30, - 0x07, - 0x3A, - 0x00, - 0xB9, - 0x32, - 0x3F, - 0x3F, - 0x3A, - 0x32, - 0x30, - 0x30, - 0x30, - 0x23, - 0x23, - 0x23, - 0x32, - 0x75, - 0x90, - 0xA0, - 0x9A, - 0x91, - 0x64, - 0x3A, - 0x23, - 0x1E, - 0x23, - 0x1E, - 0x4C, - 0xD4, - 0xD5, - 0xD5, - 0xD4, - 0xD5, - 0xC6, - 0x31, - 0x31, - 0x31, - 0x0C, - 0xD9, - 0xD6, - 0xD7, - 0xD4, - 0xD7, - 0xD5, - 0xC6, - 0x19, - 0x31, - 0x19, - 0x0C, - 0xE4, - 0xD6, - 0xD7, - 0xD4, - 0xD4, - 0xD5, - 0xD7, - 0x19, - 0x3D, - 0x1A, - 0x1C, - 0x07, - 0x74, - 0x9A, - 0xA0, - 0x9B, - 0x7D, - 0x3D, - 0x39, - 0x81, - 0x92, - 0x1A, - 0x86, - 0x75, - 0x9F, - 0xA0, - 0x9F, - 0x8E, - 0x29, - 0x67, - 0xFF, - 0xA5, - 0x81, - 0x29, - 0x86, - 0xFF, - 0xFF, - 0xC0, - 0xC4, - 0xC4, - 0x81, - 0xFF, - 0x81, - 0x81, - 0xC0, - 0x29, - 0x81, - 0x81, - 0x81, - 0xFF, - 0x81, - 0xFF, - 0x58, - 0x91, - 0x9F, - 0x9F, - 0x97, - 0x1D, - 0x67, - 0x2B, - 0x67, - 0x08, - 0x88, - 0x9B, - 0x94, - 0x88, - 0xA4, - 0x9B, - 0x9B, - 0x88, - 0x8D, - 0x39, - 0x05, - 0x49, - 0x6F, - 0x42, - 0x6F, - 0x6F, - 0x41, - 0x6F, - 0x54, - 0x6F, - 0x6F, - 0x54, - 0x41, - 0x62, - 0x87, - 0x8E, - 0xA3, - 0xA3, - 0x94, - 0x8E, - 0x59, - 0x41, - 0x6F, - 0x70, - 0x54, - 0x70, - 0x42, - 0x70, - 0x63, - 0x70, - 0x63, - 0x42, - 0x6F, - 0x6F, - 0x54, - 0x6F, - 0x42, - 0x42, - 0x62, - 0x54, - 0x6F, - 0x41, - 0x41, - 0x6F, - 0x42, - 0x41, - 0x41, - 0x41, - 0x62, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x4C, - 0x62, - 0x41, - 0x41, - 0x40, - 0x40, - 0x41, - 0x41, - 0x40, - 0x41, - 0x41, - 0x62, - 0x55, - 0x40, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF7, - 0x01, - 0xE2, - 0x06, - 0xED, - 0x00, - 0x32, - 0xDF, - 0x47, - 0x5E, - 0x64, - 0x31, - 0xF6, - 0xE2, - 0xDE, - 0xDE, - 0xE6, - 0xCB, - 0xE6, - 0xC9, - 0xE5, - 0xDE, - 0xE6, - 0xC7, - 0xDE, - 0xDE, - 0xB7, - 0x77, - 0x64, - 0x64, - 0x68, - 0x5F, - 0xCF, - 0xE0, - 0xC9, - 0xC9, - 0xE0, - 0xE0, - 0xE0, - 0xA5, - 0x75, - 0x75, - 0x68, - 0x74, - 0x6D, - 0xB6, - 0xE0, - 0xCF, - 0xCC, - 0xBD, - 0xCA, - 0xB8, - 0x89, - 0x77, - 0x75, - 0x7F, - 0x7F, - 0x04, - 0x74, - 0x00, - 0x14, - 0x64, - 0x56, - 0x39, - 0x22, - 0xFE, - 0xF4, - 0xD0, - 0xD0, - 0xCF, - 0xD0, - 0xCF, - 0xCF, - 0xD0, - 0xBA, - 0xD0, - 0xFA, - 0xB7, - 0x80, - 0x7B, - 0x88, - 0x06, - 0x84, - 0x00, - 0x28, - 0x74, - 0x4E, - 0x5C, - 0x39, - 0x04, - 0xEA, - 0xF9, - 0xFE, - 0x03, - 0xB6, - 0xB6, - 0x29, - 0xD3, - 0x29, - 0xE1, - 0xD9, - 0xD6, - 0xD4, - 0xD4, - 0xD4, - 0xD6, - 0x1D, - 0x0D, - 0x64, - 0x93, - 0x7B, - 0x19, - 0x19, - 0x11, - 0x21, - 0x1F, - 0x21, - 0x23, - 0x2A, - 0x3B, - 0x32, - 0x30, - 0x3A, - 0x46, - 0x46, - 0x04, - 0x51, - 0x00, - 0x5E, - 0x46, - 0x46, - 0x3A, - 0x46, - 0x46, - 0x3A, - 0x32, - 0x32, - 0x3A, - 0x32, - 0x32, - 0x47, - 0x30, - 0x30, - 0x30, - 0x38, - 0x30, - 0x32, - 0x75, - 0x97, - 0xA0, - 0x9A, - 0x91, - 0x68, - 0x47, - 0x23, - 0x1E, - 0x21, - 0x4C, - 0xC6, - 0xD4, - 0xD5, - 0x3E, - 0x31, - 0x1F, - 0x31, - 0x0E, - 0xD6, - 0xD6, - 0xD4, - 0xD4, - 0xD4, - 0xD5, - 0x55, - 0x31, - 0x39, - 0x1B, - 0xDB, - 0xD6, - 0xD7, - 0xD4, - 0xD4, - 0xD4, - 0xD5, - 0x0B, - 0x1A, - 0x19, - 0x0C, - 0xDB, - 0xDF, - 0xBB, - 0xA3, - 0x95, - 0x97, - 0x39, - 0x19, - 0x81, - 0x81, - 0x1D, - 0x3D, - 0x5F, - 0x93, - 0xA0, - 0x9F, - 0xA4, - 0xA5, - 0x3D, - 0x67, - 0x29, - 0xDB, - 0xDB, - 0xFF, - 0xFF, - 0x81, - 0xB7, - 0x29, - 0x81, - 0x29, - 0x81, - 0xC0, - 0xFF, - 0xFF, - 0x81, - 0xFF, - 0x04, - 0x81, - 0x00, - 0x44, - 0x1D, - 0x1D, - 0x05, - 0x90, - 0x9F, - 0x9F, - 0xA4, - 0x76, - 0x1D, - 0x2B, - 0x08, - 0x77, - 0xA2, - 0x7D, - 0xEA, - 0xE9, - 0x06, - 0x7E, - 0x8E, - 0xA6, - 0x9B, - 0xA6, - 0x88, - 0x40, - 0x2C, - 0xFF, - 0x13, - 0x2E, - 0x54, - 0x70, - 0x42, - 0x6F, - 0x54, - 0x6F, - 0x54, - 0x70, - 0x42, - 0x41, - 0x42, - 0x42, - 0x70, - 0x63, - 0x42, - 0x71, - 0x70, - 0x54, - 0x70, - 0x42, - 0x54, - 0x70, - 0x42, - 0x63, - 0x63, - 0x42, - 0x63, - 0x70, - 0x42, - 0x70, - 0x6F, - 0x41, - 0x54, - 0x42, - 0x6F, - 0x41, - 0x41, - 0x42, - 0x62, - 0x42, - 0x06, - 0x41, - 0x00, - 0x10, - 0x63, - 0x63, - 0x41, - 0x62, - 0x3E, - 0x41, - 0x55, - 0x41, - 0x40, - 0x41, - 0x40, - 0x55, - 0x2F, - 0x41, - 0x2E, - 0x2F, - 0x00, - 0x00, - 0x01, - 0xDD, - 0x01, - 0xF0, - 0x06, - 0xED, - 0x00, - 0x4F, - 0xE4, - 0x4D, - 0x5E, - 0x64, - 0x5E, - 0x47, - 0x31, - 0x22, - 0xFC, - 0xE2, - 0xE2, - 0xE5, - 0xE6, - 0xE5, - 0xC9, - 0xDC, - 0xDE, - 0xE6, - 0xDC, - 0xDE, - 0xD0, - 0x6D, - 0x68, - 0x64, - 0x68, - 0x5E, - 0x29, - 0xE0, - 0xCC, - 0xCB, - 0xC9, - 0xCC, - 0xDE, - 0xB8, - 0x6B, - 0x74, - 0x68, - 0x6A, - 0x64, - 0x81, - 0xEC, - 0xDC, - 0xCC, - 0xC9, - 0xBD, - 0xE0, - 0xCC, - 0xCF, - 0xA5, - 0x6D, - 0x75, - 0x74, - 0x7F, - 0x73, - 0x74, - 0x7F, - 0x74, - 0x68, - 0x6B, - 0x39, - 0x3D, - 0xC1, - 0xCF, - 0xCF, - 0xCF, - 0xB8, - 0xCF, - 0xCF, - 0xCF, - 0xB8, - 0xCF, - 0xFA, - 0xCF, - 0xB6, - 0xA5, - 0x7C, - 0x88, - 0x90, - 0x91, - 0x00, - 0x04, - 0x84, - 0x00, - 0x24, - 0x7F, - 0x64, - 0x56, - 0x39, - 0xEA, - 0xF3, - 0xFA, - 0xFE, - 0x03, - 0x07, - 0xFA, - 0x04, - 0x29, - 0xFF, - 0xE8, - 0xBB, - 0xD6, - 0xBB, - 0x07, - 0x1F, - 0x84, - 0x84, - 0x50, - 0x1E, - 0x31, - 0x24, - 0x1B, - 0x2A, - 0x2A, - 0x21, - 0x30, - 0x30, - 0x3A, - 0x51, - 0x72, - 0x72, - 0x06, - 0x83, - 0x00, - 0x2A, - 0x72, - 0x72, - 0x51, - 0x51, - 0x46, - 0x51, - 0x46, - 0x46, - 0x3C, - 0x3A, - 0x3C, - 0x32, - 0x3A, - 0x3A, - 0x30, - 0x30, - 0x30, - 0x23, - 0x38, - 0x3C, - 0x75, - 0x90, - 0x93, - 0x9F, - 0x91, - 0x68, - 0x4D, - 0x23, - 0x1E, - 0x2A, - 0x2F, - 0x33, - 0x33, - 0x24, - 0x1F, - 0xC6, - 0xD4, - 0xD7, - 0xD4, - 0xD7, - 0xD5, - 0xC6, - 0x04, - 0x19, - 0x00, - 0x7A, - 0xD9, - 0xD4, - 0xD4, - 0xD4, - 0xD8, - 0xD5, - 0xC6, - 0x19, - 0x81, - 0x19, - 0x05, - 0xDA, - 0xD4, - 0xD4, - 0xD6, - 0xD6, - 0xBB, - 0x05, - 0x81, - 0x92, - 0x81, - 0x81, - 0x19, - 0x90, - 0x9F, - 0xA0, - 0x9B, - 0x7C, - 0x3D, - 0x81, - 0x86, - 0x81, - 0x18, - 0x81, - 0x81, - 0xC4, - 0x81, - 0xDB, - 0xFF, - 0x81, - 0xC0, - 0x81, - 0x29, - 0x81, - 0x81, - 0x81, - 0xFF, - 0xFF, - 0xFF, - 0x67, - 0xFF, - 0x81, - 0xFF, - 0x39, - 0x8D, - 0x9F, - 0x9F, - 0x9F, - 0x90, - 0x8D, - 0x1A, - 0x79, - 0xA0, - 0xA1, - 0xFF, - 0xDA, - 0xD2, - 0xD5, - 0xD9, - 0xEE, - 0x01, - 0x7D, - 0xA3, - 0xA1, - 0x2E, - 0x39, - 0x77, - 0x80, - 0x39, - 0xFF, - 0x2C, - 0x41, - 0x42, - 0x54, - 0x42, - 0x42, - 0x54, - 0x54, - 0x70, - 0x54, - 0x70, - 0x63, - 0x63, - 0x71, - 0x63, - 0x71, - 0x70, - 0x69, - 0x54, - 0x6F, - 0x54, - 0x6F, - 0x70, - 0x70, - 0x42, - 0x70, - 0x70, - 0x63, - 0x63, - 0x42, - 0x41, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x42, - 0x70, - 0x42, - 0x70, - 0x63, - 0x62, - 0x6F, - 0x05, - 0x41, - 0x00, - 0x06, - 0x62, - 0x3E, - 0x62, - 0x63, - 0x63, - 0x2E, - 0x05, - 0x40, - 0x00, - 0x03, - 0x2E, - 0x55, - 0x55, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0xF8, - 0x05, - 0xED, - 0x00, - 0x37, - 0xE3, - 0xEE, - 0x5F, - 0x5B, - 0x68, - 0x6B, - 0x5B, - 0x5B, - 0x5B, - 0x47, - 0x4F, - 0x3D, - 0xC1, - 0xE2, - 0xDE, - 0xDE, - 0xC9, - 0xC7, - 0xEC, - 0xDC, - 0xC9, - 0xDC, - 0xF4, - 0x80, - 0x68, - 0x64, - 0x68, - 0x64, - 0x92, - 0xF2, - 0xCC, - 0xCB, - 0xCC, - 0xCC, - 0xE0, - 0xE0, - 0x80, - 0x75, - 0x74, - 0x68, - 0x68, - 0x5C, - 0xF4, - 0xEC, - 0xD1, - 0xCF, - 0xCF, - 0xCC, - 0xCC, - 0xE0, - 0xCE, - 0xCF, - 0x29, - 0x80, - 0x75, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x07, - 0x73, - 0x74, - 0x64, - 0x5C, - 0x3D, - 0xFE, - 0xF4, - 0x00, - 0x04, - 0xCF, - 0x00, - 0x0B, - 0xD0, - 0xD0, - 0xBA, - 0xCF, - 0xBA, - 0xFE, - 0x29, - 0x81, - 0x8D, - 0x88, - 0x90, - 0x00, - 0x05, - 0x84, - 0x00, - 0x1F, - 0x88, - 0xDF, - 0xE3, - 0xE3, - 0xEB, - 0xF3, - 0xEC, - 0x07, - 0x03, - 0x07, - 0x29, - 0x22, - 0x1C, - 0x05, - 0x05, - 0x08, - 0x77, - 0x93, - 0x75, - 0x1C, - 0x1B, - 0x1B, - 0x1E, - 0x23, - 0x2A, - 0x30, - 0x30, - 0x47, - 0x51, - 0x72, - 0x72, - 0x00, - 0x05, - 0x83, - 0x01, - 0x8B, - 0x05, - 0x83, - 0x00, - 0x21, - 0x99, - 0x72, - 0x51, - 0x51, - 0x46, - 0x46, - 0x51, - 0x3C, - 0x46, - 0x46, - 0x3C, - 0x46, - 0x32, - 0x32, - 0x3A, - 0x30, - 0x30, - 0x30, - 0x2A, - 0x32, - 0x4E, - 0x90, - 0x95, - 0xA0, - 0x95, - 0x74, - 0x4D, - 0x23, - 0x1E, - 0x21, - 0x2A, - 0x20, - 0xD7, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x46, - 0x20, - 0x31, - 0x50, - 0x1B, - 0xE8, - 0xD7, - 0xD4, - 0xD8, - 0xD4, - 0xD5, - 0xD5, - 0x14, - 0x1A, - 0x19, - 0x1C, - 0xE8, - 0xD4, - 0xD8, - 0xD4, - 0xD5, - 0xD5, - 0xD5, - 0x17, - 0x19, - 0x81, - 0x08, - 0x07, - 0x6B, - 0x9A, - 0x9F, - 0x9B, - 0x94, - 0x1A, - 0x81, - 0x81, - 0x29, - 0x92, - 0x29, - 0xB7, - 0x29, - 0x81, - 0xC4, - 0xB2, - 0xFF, - 0xC4, - 0x17, - 0xFF, - 0xFF, - 0xC0, - 0x29, - 0x81, - 0x81, - 0xFF, - 0xFF, - 0x1D, - 0x81, - 0xFF, - 0x1D, - 0x67, - 0x1D, - 0x90, - 0x9F, - 0xA0, - 0x9F, - 0x9F, - 0x74, - 0x97, - 0xA2, - 0x48, - 0xE7, - 0x05, - 0xD2, - 0x00, - 0x0E, - 0xD7, - 0x15, - 0x2E, - 0x41, - 0x2E, - 0x7B, - 0x9B, - 0x9B, - 0xA4, - 0x88, - 0x89, - 0x19, - 0x1D, - 0x40, - 0x05, - 0x70, - 0x04, - 0x54, - 0x00, - 0x30, - 0x70, - 0x70, - 0x70, - 0x69, - 0x54, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x70, - 0x6F, - 0x54, - 0x70, - 0x70, - 0x63, - 0x42, - 0x6F, - 0x6F, - 0x6F, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x54, - 0x54, - 0x70, - 0x63, - 0x54, - 0x42, - 0x6F, - 0x41, - 0x62, - 0x41, - 0x6E, - 0x41, - 0x41, - 0x41, - 0x62, - 0x2E, - 0x41, - 0x40, - 0x41, - 0x55, - 0x40, - 0x41, - 0x2E, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x26, - 0xFD, - 0xF3, - 0xED, - 0xE3, - 0xED, - 0xED, - 0xED, - 0xE3, - 0xDD, - 0x50, - 0x64, - 0x56, - 0x5F, - 0x6B, - 0x64, - 0x64, - 0x64, - 0x5B, - 0x5B, - 0x3C, - 0x47, - 0x31, - 0xB6, - 0xE2, - 0xE5, - 0xC9, - 0xC9, - 0xE6, - 0xDC, - 0xC9, - 0xC8, - 0xA5, - 0x75, - 0x68, - 0x68, - 0x68, - 0x5C, - 0xF2, - 0x04, - 0xCC, - 0x00, - 0x0E, - 0xDC, - 0xDE, - 0x81, - 0x64, - 0x74, - 0x74, - 0x6A, - 0x6B, - 0xFE, - 0xE0, - 0xDC, - 0xD1, - 0xD0, - 0xBD, - 0x04, - 0xCC, - 0x00, - 0x05, - 0xCE, - 0xEC, - 0xC0, - 0x80, - 0x7B, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x19, - 0x73, - 0x74, - 0x68, - 0x5E, - 0x1A, - 0x22, - 0xFC, - 0xD0, - 0xEA, - 0xEA, - 0xD0, - 0xD1, - 0xD0, - 0xB6, - 0xD3, - 0xFE, - 0xF9, - 0x29, - 0x92, - 0x52, - 0x88, - 0x90, - 0x91, - 0x8C, - 0x85, - 0x00, - 0x05, - 0xDA, - 0x00, - 0x4F, - 0xE3, - 0xEB, - 0xF1, - 0xF9, - 0x07, - 0x07, - 0x1C, - 0x1C, - 0x1C, - 0x19, - 0x7F, - 0x95, - 0x4F, - 0x1B, - 0x1B, - 0x21, - 0x23, - 0x21, - 0x30, - 0x30, - 0x3A, - 0x51, - 0x72, - 0x83, - 0x83, - 0x8C, - 0x95, - 0x96, - 0xA0, - 0xA6, - 0xA0, - 0x95, - 0x8C, - 0x8B, - 0x8B, - 0x83, - 0x8B, - 0x83, - 0x83, - 0x83, - 0x72, - 0x5D, - 0x51, - 0x46, - 0x51, - 0x46, - 0x46, - 0x4D, - 0x3C, - 0x3C, - 0x3A, - 0x3C, - 0x3A, - 0x3A, - 0x3A, - 0x30, - 0x30, - 0x30, - 0x32, - 0x75, - 0x90, - 0x96, - 0x9F, - 0x96, - 0x7F, - 0x5E, - 0x30, - 0x23, - 0x21, - 0x25, - 0xC6, - 0xD7, - 0xD2, - 0xBB, - 0x50, - 0x21, - 0x31, - 0x1F, - 0xD6, - 0x00, - 0x04, - 0xD4, - 0x00, - 0x3D, - 0xD2, - 0xBB, - 0x19, - 0x58, - 0x2B, - 0x06, - 0xD6, - 0xD4, - 0xD4, - 0xD4, - 0xD5, - 0xD2, - 0xBB, - 0x1A, - 0x81, - 0x19, - 0xFB, - 0xDF, - 0xD9, - 0x94, - 0x95, - 0x91, - 0x58, - 0x1A, - 0x81, - 0x81, - 0x29, - 0x29, - 0x92, - 0x81, - 0x29, - 0x29, - 0x81, - 0xFF, - 0xFF, - 0x67, - 0xC4, - 0x5A, - 0xDB, - 0x67, - 0xFF, - 0xFF, - 0x81, - 0x81, - 0x81, - 0xFF, - 0x81, - 0xFF, - 0x67, - 0x5A, - 0x17, - 0x6E, - 0x96, - 0x9F, - 0x9B, - 0x95, - 0x90, - 0xA6, - 0xA6, - 0x87, - 0xD5, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x0F, - 0xBB, - 0x40, - 0x55, - 0x62, - 0x62, - 0x15, - 0x1D, - 0x7C, - 0x97, - 0x9B, - 0x9B, - 0xA4, - 0x7B, - 0x58, - 0x2D, - 0x00, - 0x07, - 0x70, - 0x00, - 0x21, - 0x42, - 0x54, - 0x54, - 0x70, - 0x70, - 0x54, - 0x54, - 0x54, - 0x70, - 0x70, - 0x62, - 0x54, - 0x70, - 0x42, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x54, - 0x66, - 0x70, - 0x41, - 0x49, - 0x24, - 0x58, - 0x58, - 0x2C, - 0x49, - 0x40, - 0x54, - 0x42, - 0x63, - 0x42, - 0x00, - 0x04, - 0x41, - 0x00, - 0x0C, - 0x6E, - 0x41, - 0x41, - 0x41, - 0x2E, - 0x62, - 0x3E, - 0x41, - 0x62, - 0x55, - 0x2F, - 0x55, - 0x00, - 0x00, - 0x00, - 0x11, - 0x31, - 0x03, - 0xF0, - 0xEF, - 0xED, - 0xE3, - 0xE3, - 0xDF, - 0xF0, - 0x5F, - 0x68, - 0x29, - 0xDE, - 0xEC, - 0x81, - 0x5F, - 0x6B, - 0x00, - 0x04, - 0x64, - 0x00, - 0x05, - 0x5B, - 0x5B, - 0x4F, - 0xF9, - 0xE0, - 0x00, - 0x04, - 0xC9, - 0x00, - 0x43, - 0xE0, - 0xDE, - 0xB7, - 0x77, - 0x68, - 0x64, - 0x74, - 0x5E, - 0xCF, - 0xF2, - 0xC9, - 0xCC, - 0xCB, - 0xCC, - 0xCC, - 0xD0, - 0x7C, - 0x74, - 0x74, - 0x74, - 0x64, - 0x3D, - 0xB6, - 0xF2, - 0xE0, - 0xCC, - 0xCC, - 0xBD, - 0xEC, - 0xD0, - 0xCF, - 0xD0, - 0xCC, - 0xCC, - 0xD0, - 0xB7, - 0x79, - 0x77, - 0x74, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x7F, - 0x73, - 0x68, - 0x5E, - 0x50, - 0x29, - 0xFE, - 0xF5, - 0xFB, - 0xD0, - 0xD3, - 0xD0, - 0xB6, - 0xB8, - 0xFA, - 0xFA, - 0x29, - 0xFE, - 0x81, - 0x7E, - 0x7B, - 0xDA, - 0xDA, - 0xD6, - 0x00, - 0x06, - 0xDA, - 0x00, - 0x21, - 0xE3, - 0xE3, - 0xF1, - 0x05, - 0x08, - 0x1C, - 0x56, - 0x93, - 0x74, - 0x1B, - 0x1B, - 0x21, - 0x23, - 0x23, - 0x2A, - 0x30, - 0x32, - 0x51, - 0x72, - 0x8B, - 0x95, - 0xA2, - 0xAA, - 0xA2, - 0xA2, - 0xAA, - 0xA9, - 0xA2, - 0xAA, - 0xA2, - 0xA2, - 0xA6, - 0x95, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x05, - 0x83, - 0x83, - 0x83, - 0x99, - 0x5D, - 0x00, - 0x04, - 0x51, - 0x00, - 0x5E, - 0x46, - 0x51, - 0x4D, - 0x4D, - 0x3C, - 0x32, - 0x32, - 0x3A, - 0x30, - 0x30, - 0x30, - 0x38, - 0x32, - 0x57, - 0x90, - 0xA0, - 0x9B, - 0x96, - 0x90, - 0x3C, - 0x30, - 0x1E, - 0x21, - 0x25, - 0x33, - 0x21, - 0x4F, - 0x21, - 0xE1, - 0xD4, - 0xD8, - 0xD4, - 0xD8, - 0xD5, - 0xD8, - 0x14, - 0x24, - 0x14, - 0x09, - 0xE4, - 0xD4, - 0xD4, - 0xD5, - 0xD5, - 0xD5, - 0xD7, - 0x1D, - 0x39, - 0x1D, - 0x08, - 0xE4, - 0xD5, - 0xD4, - 0xD4, - 0xD4, - 0xD9, - 0xFF, - 0x1A, - 0x81, - 0x29, - 0x1A, - 0x81, - 0x29, - 0x29, - 0x92, - 0x81, - 0xFF, - 0x29, - 0xC0, - 0xFF, - 0x81, - 0xDB, - 0x67, - 0xC0, - 0x5A, - 0xFF, - 0x5A, - 0xDB, - 0x81, - 0xFF, - 0xFF, - 0x81, - 0x17, - 0x5A, - 0x2B, - 0x0E, - 0x61, - 0x7D, - 0x97, - 0x7F, - 0x96, - 0xA2, - 0x97, - 0xD6, - 0x05, - 0xD2, - 0x00, - 0x14, - 0xC6, - 0x2E, - 0x55, - 0x41, - 0x41, - 0x40, - 0xFF, - 0xDA, - 0xE4, - 0xDB, - 0x06, - 0x65, - 0xA1, - 0xA2, - 0xA6, - 0x65, - 0x2E, - 0x54, - 0x70, - 0x54, - 0x04, - 0x70, - 0x00, - 0x30, - 0x42, - 0x42, - 0x54, - 0x54, - 0x42, - 0x54, - 0x70, - 0x70, - 0x54, - 0x54, - 0x63, - 0x54, - 0x42, - 0x70, - 0x54, - 0x54, - 0x27, - 0x49, - 0x2B, - 0x58, - 0x39, - 0x5F, - 0x75, - 0x90, - 0x95, - 0x91, - 0x7B, - 0x7E, - 0x48, - 0x2D, - 0x41, - 0x41, - 0x54, - 0x40, - 0x42, - 0x62, - 0x2F, - 0x6F, - 0x41, - 0x40, - 0x40, - 0x40, - 0x2E, - 0x55, - 0x55, - 0x2F, - 0x2F, - 0x62, - 0x00, - 0x00, - 0x00, - 0x14, - 0x56, - 0x5E, - 0x47, - 0x31, - 0x07, - 0xE6, - 0xF3, - 0xF1, - 0xFC, - 0x5E, - 0x64, - 0xBC, - 0xE5, - 0xDD, - 0xF0, - 0xC8, - 0xCB, - 0xB7, - 0x80, - 0x6B, - 0x04, - 0x64, - 0x00, - 0x04, - 0x5E, - 0x29, - 0xF2, - 0xE6, - 0x04, - 0xC9, - 0x00, - 0x42, - 0xE0, - 0xD1, - 0x6D, - 0x74, - 0x68, - 0x75, - 0x64, - 0x29, - 0xE0, - 0xCC, - 0xC9, - 0xC9, - 0xCC, - 0xCC, - 0xCC, - 0x89, - 0x74, - 0x74, - 0x6A, - 0x74, - 0x68, - 0x5E, - 0x50, - 0x22, - 0xF4, - 0xF4, - 0xEC, - 0xD0, - 0xD1, - 0xC0, - 0xD0, - 0xD1, - 0xCF, - 0xCC, - 0xF4, - 0xCE, - 0xB8, - 0xA5, - 0x7C, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x7A, - 0x7F, - 0x74, - 0x64, - 0x5C, - 0x1A, - 0xB6, - 0xFA, - 0xB6, - 0xD0, - 0xD3, - 0xB8, - 0x22, - 0xB6, - 0xD3, - 0xD3, - 0x04, - 0xF9, - 0xDA, - 0xD4, - 0xD4, - 0xD4, - 0x07, - 0xD6, - 0x00, - 0x15, - 0xDA, - 0xDA, - 0x19, - 0x1C, - 0x74, - 0x93, - 0x56, - 0x1B, - 0x23, - 0x23, - 0x23, - 0x30, - 0x38, - 0x3A, - 0x46, - 0x72, - 0x8C, - 0xA6, - 0xA9, - 0xAA, - 0xA9, - 0x00, - 0x06, - 0xAA, - 0x00, - 0x2E, - 0xA9, - 0xAA, - 0xA9, - 0xA2, - 0xA2, - 0xA6, - 0x95, - 0x8B, - 0x8B, - 0x8B, - 0x83, - 0x8B, - 0x83, - 0x83, - 0x99, - 0x72, - 0x51, - 0x51, - 0x51, - 0x46, - 0x5B, - 0x5B, - 0x46, - 0x4D, - 0x3C, - 0x3A, - 0x3A, - 0x3A, - 0x30, - 0x3A, - 0x30, - 0x38, - 0x32, - 0x57, - 0x90, - 0x96, - 0x9F, - 0xA0, - 0x90, - 0x3C, - 0x30, - 0x23, - 0x23, - 0x21, - 0x33, - 0xD7, - 0x05, - 0xD5, - 0x00, - 0x17, - 0x3E, - 0x31, - 0x39, - 0x39, - 0x00, - 0xD6, - 0xD4, - 0xD8, - 0xD5, - 0xD5, - 0xD2, - 0x3E, - 0x1A, - 0x39, - 0x08, - 0xEE, - 0xD4, - 0xD4, - 0xD5, - 0xD5, - 0xD5, - 0xD2, - 0xE8, - 0x00, - 0x04, - 0x81, - 0x00, - 0x20, - 0x29, - 0x81, - 0x81, - 0x29, - 0x81, - 0x29, - 0x81, - 0x81, - 0x29, - 0xC0, - 0x81, - 0x81, - 0xFF, - 0xFF, - 0x67, - 0xEE, - 0x17, - 0xFF, - 0x17, - 0xA5, - 0xFF, - 0x1D, - 0xA5, - 0x67, - 0x4A, - 0x5A, - 0x01, - 0x1A, - 0x91, - 0xA2, - 0x94, - 0xC6, - 0x05, - 0xD2, - 0x00, - 0x17, - 0xD8, - 0x55, - 0x55, - 0x62, - 0x62, - 0x62, - 0x06, - 0xDF, - 0xD2, - 0xD2, - 0xD2, - 0xD8, - 0xE4, - 0x01, - 0x7B, - 0x9B, - 0x98, - 0x2F, - 0x70, - 0x54, - 0x70, - 0x70, - 0x54, - 0x00, - 0x04, - 0x70, - 0x00, - 0x2E, - 0x54, - 0x70, - 0x70, - 0x70, - 0x54, - 0x54, - 0x54, - 0x70, - 0x70, - 0x42, - 0x41, - 0x2D, - 0x2B, - 0x58, - 0x79, - 0x56, - 0x75, - 0x91, - 0x9A, - 0x9F, - 0x9F, - 0x9F, - 0xA6, - 0x9F, - 0x9F, - 0x9F, - 0x90, - 0x7B, - 0x80, - 0x2C, - 0x2D, - 0x41, - 0x42, - 0x62, - 0x42, - 0x42, - 0x2F, - 0x41, - 0x41, - 0x2E, - 0x41, - 0x37, - 0x40, - 0x2F, - 0x62, - 0x55, - 0x00, - 0x00, - 0x00, - 0x16, - 0xDE, - 0xD0, - 0xA5, - 0x56, - 0x6B, - 0x4D, - 0x38, - 0x1B, - 0x4F, - 0x64, - 0x6D, - 0xDE, - 0xE5, - 0xDD, - 0xF0, - 0xC7, - 0xF0, - 0xC7, - 0xDE, - 0xC9, - 0xB8, - 0x89, - 0x04, - 0x64, - 0x00, - 0x3F, - 0x78, - 0xF4, - 0xC9, - 0xEC, - 0xDC, - 0xE6, - 0xE6, - 0xC9, - 0xE0, - 0x80, - 0x75, - 0x68, - 0x68, - 0x68, - 0x79, - 0xF4, - 0xE0, - 0xCC, - 0xE6, - 0xCC, - 0xCC, - 0xE0, - 0xB7, - 0x7B, - 0x74, - 0x73, - 0x74, - 0x74, - 0x74, - 0x68, - 0x5B, - 0x47, - 0x3D, - 0xFE, - 0xFA, - 0xEC, - 0xEC, - 0xF5, - 0xCF, - 0xD1, - 0xD0, - 0xD0, - 0xCF, - 0xCF, - 0xCE, - 0xB8, - 0x81, - 0x80, - 0x75, - 0x90, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x84, - 0x74, - 0x75, - 0x56, - 0x19, - 0x07, - 0xFE, - 0xFA, - 0xD1, - 0x00, - 0x05, - 0xD3, - 0x00, - 0x25, - 0xC0, - 0xDB, - 0xE4, - 0xD6, - 0xD5, - 0xD4, - 0xD4, - 0xD4, - 0xD6, - 0xD6, - 0xD6, - 0xD4, - 0xE1, - 0x10, - 0x5F, - 0x8C, - 0x90, - 0x31, - 0x1B, - 0x21, - 0x23, - 0x23, - 0x30, - 0x3A, - 0x3A, - 0x72, - 0x91, - 0xA2, - 0xAA, - 0xA2, - 0xAA, - 0xA2, - 0xAA, - 0xA9, - 0xAA, - 0xAA, - 0xA9, - 0x00, - 0x09, - 0xAA, - 0x00, - 0x03, - 0xA6, - 0x96, - 0x8F, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x05, - 0x83, - 0x83, - 0x99, - 0x72, - 0x5D, - 0x00, - 0x05, - 0x51, - 0x00, - 0x04, - 0x46, - 0x46, - 0x3A, - 0x46, - 0x04, - 0x3A, - 0x00, - 0x22, - 0x30, - 0x32, - 0x32, - 0x4E, - 0x88, - 0x96, - 0x9F, - 0xA0, - 0x90, - 0x64, - 0x38, - 0x1E, - 0x21, - 0x25, - 0xBB, - 0xD7, - 0xD2, - 0xD7, - 0x2A, - 0x39, - 0x39, - 0x0C, - 0xD9, - 0xD5, - 0xD4, - 0xD5, - 0xD5, - 0xD2, - 0xC6, - 0x4A, - 0x13, - 0x1D, - 0x0C, - 0xDA, - 0x04, - 0xD5, - 0x00, - 0x06, - 0xD2, - 0xC6, - 0xDB, - 0xC4, - 0x18, - 0x5A, - 0x05, - 0x81, - 0x00, - 0x1C, - 0x29, - 0x81, - 0xFF, - 0x81, - 0x81, - 0x81, - 0xC0, - 0x81, - 0x81, - 0x81, - 0xFF, - 0x18, - 0x67, - 0x18, - 0x17, - 0xFF, - 0x1D, - 0xFF, - 0x5A, - 0x5A, - 0x67, - 0x2B, - 0x04, - 0x88, - 0xA2, - 0x54, - 0xE9, - 0xD5, - 0x05, - 0xD2, - 0x00, - 0x07, - 0x4C, - 0x55, - 0x55, - 0x41, - 0x63, - 0x14, - 0xE9, - 0x00, - 0x06, - 0xD2, - 0x00, - 0x24, - 0x06, - 0x75, - 0x9B, - 0x85, - 0x63, - 0x71, - 0x63, - 0x71, - 0x70, - 0x70, - 0x54, - 0x54, - 0x70, - 0x70, - 0x42, - 0x70, - 0x70, - 0x42, - 0x70, - 0x70, - 0x6F, - 0x25, - 0x2B, - 0x19, - 0x79, - 0x6B, - 0x74, - 0x91, - 0xA0, - 0x9F, - 0x9B, - 0x9B, - 0xA6, - 0xA4, - 0xA1, - 0x96, - 0x06, - 0x9F, - 0x00, - 0x12, - 0xA0, - 0x90, - 0x7B, - 0x48, - 0x48, - 0x25, - 0x62, - 0x6F, - 0x41, - 0x42, - 0x41, - 0x62, - 0x62, - 0x2E, - 0x41, - 0x40, - 0x2E, - 0x40, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x40, - 0xDC, - 0xC0, - 0x80, - 0x6B, - 0x6B, - 0x5F, - 0xD0, - 0xDE, - 0xDE, - 0xC7, - 0xDE, - 0xC9, - 0xF0, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xE0, - 0xB7, - 0x6B, - 0x64, - 0x64, - 0x64, - 0x5E, - 0xFA, - 0xDC, - 0xDC, - 0xCC, - 0xEC, - 0xDC, - 0xCC, - 0xE6, - 0xA5, - 0x75, - 0x74, - 0x75, - 0x68, - 0x5F, - 0xCE, - 0xDC, - 0xBE, - 0xCC, - 0xDC, - 0xBC, - 0xE0, - 0xCC, - 0xA5, - 0x6D, - 0x75, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x74, - 0x6A, - 0x64, - 0x5F, - 0x50, - 0xB6, - 0xFA, - 0xFE, - 0xEC, - 0xD0, - 0xD0, - 0x05, - 0xCF, - 0x00, - 0x06, - 0xCE, - 0xB6, - 0x29, - 0x80, - 0x7B, - 0x90, - 0x05, - 0x84, - 0x00, - 0x29, - 0x7F, - 0x74, - 0x6B, - 0x39, - 0x08, - 0xFE, - 0x04, - 0xF9, - 0x22, - 0x04, - 0x04, - 0xB6, - 0x04, - 0x29, - 0x01, - 0xE4, - 0xD6, - 0xD4, - 0xD5, - 0xD4, - 0xD4, - 0xD4, - 0x06, - 0x10, - 0x75, - 0xA0, - 0x6B, - 0x1B, - 0x21, - 0x21, - 0x21, - 0x38, - 0x30, - 0x3A, - 0x51, - 0x9E, - 0xA6, - 0xA9, - 0xAA, - 0xAA, - 0xA9, - 0x00, - 0x12, - 0xAA, - 0x00, - 0x03, - 0xA2, - 0xA4, - 0x8F, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x05, - 0x83, - 0x83, - 0x83, - 0x72, - 0x5D, - 0x00, - 0x04, - 0x51, - 0x04, - 0x46, - 0x01, - 0x4D, - 0x04, - 0x3A, - 0x00, - 0x2A, - 0x32, - 0x3A, - 0x32, - 0x4E, - 0x88, - 0x96, - 0x9F, - 0xA0, - 0x91, - 0x64, - 0x38, - 0x1E, - 0x1B, - 0x35, - 0x34, - 0x39, - 0x4F, - 0x21, - 0x3E, - 0xD4, - 0xD8, - 0xD5, - 0xD5, - 0xD5, - 0xC2, - 0x16, - 0x2D, - 0x2B, - 0x1D, - 0xE4, - 0xD4, - 0xD5, - 0xD5, - 0xD5, - 0xD2, - 0xD8, - 0x18, - 0x67, - 0x67, - 0xEE, - 0xDB, - 0x1A, - 0x08, - 0x81, - 0x00, - 0x05, - 0xC0, - 0x81, - 0xFF, - 0x67, - 0xFF, - 0x00, - 0x04, - 0x81, - 0x00, - 0x0E, - 0x67, - 0x67, - 0x81, - 0xFF, - 0x67, - 0x0E, - 0x17, - 0x67, - 0x06, - 0x5F, - 0x9B, - 0x94, - 0xEA, - 0xD4, - 0x05, - 0xD2, - 0x00, - 0x08, - 0xC6, - 0x55, - 0x62, - 0x2F, - 0x62, - 0x25, - 0xF1, - 0xD5, - 0x05, - 0xD2, - 0x00, - 0x29, - 0xE8, - 0x8D, - 0x9B, - 0xA3, - 0x42, - 0x70, - 0x66, - 0x70, - 0x70, - 0x87, - 0x71, - 0x70, - 0x70, - 0x70, - 0x54, - 0x70, - 0x70, - 0x54, - 0x61, - 0x24, - 0x1D, - 0x58, - 0x6D, - 0x88, - 0x91, - 0xA0, - 0x9F, - 0x9B, - 0x9F, - 0x9B, - 0xA4, - 0xA3, - 0x8E, - 0x6C, - 0x66, - 0x41, - 0x41, - 0x6C, - 0x94, - 0xA4, - 0x9B, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x0F, - 0x96, - 0x90, - 0x7C, - 0x48, - 0x2C, - 0x2D, - 0x41, - 0x62, - 0x62, - 0x41, - 0x41, - 0x62, - 0x41, - 0x2E, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xE6, - 0xE6, - 0xE5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x07, - 0xC9, - 0xC9, - 0xDE, - 0xE5, - 0xC7, - 0xE5, - 0xC9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x26, - 0xC7, - 0xDE, - 0xE5, - 0xCB, - 0xDE, - 0xE6, - 0x8D, - 0x68, - 0x64, - 0x64, - 0x5B, - 0xB7, - 0xE0, - 0xC9, - 0xEC, - 0xDC, - 0xDC, - 0xCB, - 0xE5, - 0xB7, - 0x7B, - 0x74, - 0x68, - 0x74, - 0x6B, - 0xD3, - 0xE6, - 0xDC, - 0xF5, - 0xDC, - 0xCC, - 0xCC, - 0xE0, - 0xCC, - 0xB8, - 0x81, - 0x8D, - 0x75, - 0x05, - 0x7F, - 0x00, - 0x17, - 0x74, - 0x68, - 0x5E, - 0x79, - 0x22, - 0xFE, - 0xF4, - 0xCF, - 0xCF, - 0xCF, - 0xD1, - 0xB6, - 0xF9, - 0xD0, - 0xFE, - 0xCF, - 0xFE, - 0xB7, - 0xA5, - 0x77, - 0x7F, - 0x84, - 0x91, - 0x00, - 0x04, - 0x84, - 0x00, - 0x08, - 0x74, - 0x64, - 0x34, - 0x3D, - 0xF9, - 0xF0, - 0x03, - 0x07, - 0x04, - 0x04, - 0x00, - 0x1C, - 0x29, - 0x18, - 0xE1, - 0xC6, - 0xD5, - 0xBB, - 0x19, - 0x33, - 0x91, - 0x84, - 0x21, - 0x23, - 0x21, - 0x21, - 0x30, - 0x30, - 0x3A, - 0x46, - 0x5D, - 0x95, - 0xAA, - 0xAA, - 0xA2, - 0xA9, - 0xAA, - 0xAA, - 0xAA, - 0xA9, - 0x12, - 0xAA, - 0x00, - 0x03, - 0xA2, - 0xA6, - 0x95, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x05, - 0x83, - 0x83, - 0x83, - 0x72, - 0x5D, - 0x00, - 0x05, - 0x51, - 0x04, - 0x46, - 0x04, - 0x3A, - 0x00, - 0x1B, - 0x32, - 0x30, - 0x56, - 0x57, - 0x75, - 0x96, - 0x9F, - 0x9F, - 0x91, - 0x75, - 0x38, - 0x1E, - 0x23, - 0x21, - 0x39, - 0xC6, - 0xD5, - 0xD2, - 0xD5, - 0xD5, - 0xD2, - 0xBB, - 0x39, - 0x39, - 0x19, - 0x06, - 0xD6, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x18, - 0xD2, - 0xE1, - 0x1A, - 0x81, - 0x81, - 0x67, - 0x81, - 0x81, - 0x81, - 0x67, - 0xFF, - 0xFF, - 0x81, - 0x81, - 0x81, - 0xC0, - 0x81, - 0x81, - 0xFF, - 0xC4, - 0x81, - 0xFF, - 0xFF, - 0x81, - 0x04, - 0xFF, - 0x00, - 0x0A, - 0x1D, - 0x5A, - 0x0E, - 0x76, - 0x17, - 0x06, - 0x90, - 0xA2, - 0x67, - 0xD9, - 0x05, - 0xD2, - 0x00, - 0x08, - 0xD7, - 0x3E, - 0x4C, - 0x4C, - 0x63, - 0x55, - 0xEA, - 0xDA, - 0x05, - 0xD2, - 0x00, - 0x04, - 0xD7, - 0x58, - 0xA0, - 0xA7, - 0x05, - 0x70, - 0x00, - 0x0E, - 0x66, - 0x69, - 0x66, - 0x43, - 0x71, - 0x70, - 0x55, - 0x2C, - 0x39, - 0x39, - 0x56, - 0x88, - 0x90, - 0xA0, - 0x04, - 0x9B, - 0x00, - 0x11, - 0xA4, - 0x97, - 0x8E, - 0x6C, - 0x66, - 0x41, - 0x41, - 0x6F, - 0x6F, - 0x54, - 0x6F, - 0x41, - 0x27, - 0x54, - 0x6C, - 0x94, - 0xA4, - 0x00, - 0x05, - 0x9F, - 0x00, - 0x0D, - 0x9B, - 0x96, - 0x88, - 0x7C, - 0x2B, - 0x2C, - 0x40, - 0x2F, - 0x42, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xE5, - 0xE6, - 0xDC, - 0xE6, - 0xE6, - 0xDE, - 0xE5, - 0xE5, - 0x04, - 0xDE, - 0x00, - 0x2F, - 0xE5, - 0xE5, - 0xE5, - 0xCB, - 0xE5, - 0xC7, - 0xE5, - 0xC7, - 0xC9, - 0xC7, - 0xE5, - 0xC9, - 0xE5, - 0xA5, - 0x64, - 0x68, - 0x64, - 0x64, - 0x39, - 0xE0, - 0xC9, - 0xC9, - 0xCC, - 0xDC, - 0xCC, - 0xEC, - 0xF9, - 0x6D, - 0x74, - 0x75, - 0x6A, - 0x64, - 0x86, - 0xE0, - 0xE6, - 0xCC, - 0xCC, - 0xCC, - 0xDC, - 0xD0, - 0xE6, - 0xCC, - 0xF4, - 0xCF, - 0x92, - 0x80, - 0x7B, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x24, - 0x73, - 0x74, - 0x64, - 0x5F, - 0x3D, - 0xFE, - 0xFA, - 0xF9, - 0xD0, - 0xFF, - 0xF5, - 0xD1, - 0xC0, - 0xFA, - 0xB6, - 0xFE, - 0xFE, - 0xB7, - 0xA5, - 0x6D, - 0x88, - 0x91, - 0x91, - 0x91, - 0x84, - 0x84, - 0x84, - 0x74, - 0xE3, - 0xDF, - 0xE3, - 0xEF, - 0xEA, - 0xFE, - 0x04, - 0x07, - 0x04, - 0x08, - 0x00, - 0x16, - 0x13, - 0x1D, - 0x19, - 0x57, - 0x93, - 0x88, - 0x19, - 0x21, - 0x23, - 0x23, - 0x30, - 0x30, - 0x3A, - 0x51, - 0x83, - 0xA2, - 0xAA, - 0xA9, - 0xAA, - 0xAA, - 0xAA, - 0xA9, - 0x0A, - 0xAA, - 0x00, - 0x06, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0x07, - 0xAA, - 0x00, - 0x03, - 0xA2, - 0xA6, - 0x93, - 0x00, - 0x05, - 0x8B, - 0x00, - 0x04, - 0x83, - 0x83, - 0x72, - 0x72, - 0x06, - 0x51, - 0x00, - 0x03, - 0x46, - 0x46, - 0x46, - 0x00, - 0x04, - 0x3A, - 0x00, - 0x17, - 0x30, - 0x30, - 0x38, - 0x3F, - 0x8E, - 0xA1, - 0x9F, - 0x9F, - 0x91, - 0x75, - 0x47, - 0x23, - 0x21, - 0x20, - 0xBB, - 0xD7, - 0xD2, - 0xD8, - 0x1F, - 0x39, - 0x1F, - 0x0C, - 0xD9, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x05, - 0xD2, - 0xC6, - 0x05, - 0x81, - 0x1D, - 0x00, - 0x05, - 0x81, - 0x00, - 0x07, - 0x1D, - 0x67, - 0x81, - 0x5A, - 0xFF, - 0x81, - 0x67, - 0x00, - 0x04, - 0x81, - 0x00, - 0x1E, - 0xFF, - 0xFF, - 0xFF, - 0x81, - 0xFF, - 0x67, - 0x67, - 0x67, - 0xFF, - 0x67, - 0x67, - 0x18, - 0x17, - 0x2B, - 0xA4, - 0xA6, - 0x58, - 0xFB, - 0xE4, - 0xD8, - 0xD2, - 0xD2, - 0xC2, - 0x3E, - 0x55, - 0x4C, - 0x63, - 0x62, - 0x18, - 0xE4, - 0x06, - 0xD2, - 0x00, - 0x3E, - 0x97, - 0x91, - 0xA2, - 0x7D, - 0x76, - 0x61, - 0x3E, - 0x70, - 0x66, - 0x66, - 0x54, - 0x41, - 0x61, - 0x58, - 0x39, - 0x60, - 0x75, - 0x90, - 0x96, - 0x9F, - 0x9B, - 0x9B, - 0xA2, - 0xA6, - 0xA1, - 0x98, - 0x6C, - 0x71, - 0x69, - 0x62, - 0x42, - 0x6F, - 0x41, - 0x54, - 0x54, - 0x54, - 0x42, - 0x54, - 0x6F, - 0x42, - 0x6F, - 0x41, - 0x53, - 0x54, - 0x7D, - 0x97, - 0xA0, - 0x9F, - 0x9F, - 0x9F, - 0xA6, - 0x9B, - 0x9B, - 0x91, - 0x88, - 0x60, - 0x2B, - 0x2C, - 0x2D, - 0x41, - 0x41, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x7B, - 0xDE, - 0xE5, - 0xDE, - 0xE5, - 0xE6, - 0xE5, - 0xF0, - 0xDC, - 0xDE, - 0xE6, - 0xE5, - 0xDE, - 0xC7, - 0xDE, - 0xDE, - 0xE5, - 0xC7, - 0xE5, - 0xC9, - 0xDE, - 0xE6, - 0xC9, - 0xDE, - 0xC7, - 0xE0, - 0xDE, - 0xB7, - 0x77, - 0x75, - 0x68, - 0x68, - 0x56, - 0xCF, - 0xE0, - 0xCC, - 0xC9, - 0xC9, - 0xCB, - 0xCC, - 0xDC, - 0x80, - 0x74, - 0x74, - 0x74, - 0x68, - 0x4F, - 0xB6, - 0xF2, - 0xE0, - 0xE0, - 0xCC, - 0xCF, - 0xBC, - 0xD0, - 0xEC, - 0xCF, - 0xCC, - 0xF4, - 0xCF, - 0xB7, - 0x79, - 0x6D, - 0x88, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x75, - 0x6D, - 0x39, - 0x22, - 0xFA, - 0xFE, - 0xF5, - 0xC0, - 0x29, - 0xC0, - 0x29, - 0xD3, - 0xFA, - 0xFE, - 0xFE, - 0xD3, - 0x39, - 0x8D, - 0x7B, - 0x91, - 0x91, - 0x8C, - 0x94, - 0xDA, - 0xD6, - 0xDA, - 0xDA, - 0xDA, - 0xE3, - 0xE9, - 0xF1, - 0x04, - 0x07, - 0x1C, - 0x0C, - 0x3D, - 0x1C, - 0x21, - 0x84, - 0x91, - 0x33, - 0x21, - 0x23, - 0x23, - 0x38, - 0x32, - 0x47, - 0x46, - 0x5D, - 0x91, - 0xAA, - 0xA2, - 0xAA, - 0xA9, - 0x00, - 0x07, - 0xAA, - 0x01, - 0xB0, - 0x09, - 0xAA, - 0x00, - 0x0F, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0xA6, - 0xA0, - 0x00, - 0x05, - 0x8B, - 0x00, - 0x05, - 0x83, - 0x83, - 0x72, - 0x72, - 0x5D, - 0x00, - 0x04, - 0x51, - 0x00, - 0x1B, - 0x46, - 0x46, - 0x46, - 0x3C, - 0x3C, - 0x32, - 0x32, - 0x3A, - 0x3A, - 0x2A, - 0x32, - 0x3F, - 0x88, - 0x91, - 0xA6, - 0x9F, - 0x91, - 0x75, - 0x47, - 0x1E, - 0x1B, - 0x20, - 0x49, - 0x1F, - 0x33, - 0x24, - 0xE1, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x32, - 0xC2, - 0x17, - 0x81, - 0x1D, - 0x1D, - 0x1D, - 0x81, - 0x1D, - 0xFF, - 0x1D, - 0x81, - 0x81, - 0x81, - 0xFF, - 0x81, - 0x5A, - 0x5A, - 0x67, - 0xC4, - 0x67, - 0x81, - 0x81, - 0x81, - 0xFF, - 0xA5, - 0xFF, - 0x67, - 0x67, - 0x67, - 0x5A, - 0x67, - 0x67, - 0x76, - 0x67, - 0x67, - 0x6C, - 0xA6, - 0xA2, - 0x97, - 0x7C, - 0x76, - 0x01, - 0xE4, - 0xE1, - 0x2E, - 0x41, - 0x62, - 0x70, - 0x11, - 0xE9, - 0x06, - 0xD2, - 0x00, - 0x3F, - 0xA7, - 0x90, - 0xA6, - 0xA6, - 0xA6, - 0xA4, - 0x94, - 0x6C, - 0x49, - 0x2B, - 0x1D, - 0x39, - 0x56, - 0x7B, - 0x90, - 0x95, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x98, - 0x7D, - 0x66, - 0x54, - 0x41, - 0x41, - 0x71, - 0x87, - 0x63, - 0x69, - 0x70, - 0x42, - 0x63, - 0x54, - 0x6F, - 0x6F, - 0x6F, - 0x54, - 0x54, - 0x54, - 0x6F, - 0x41, - 0x41, - 0x27, - 0x37, - 0x54, - 0x7D, - 0x97, - 0xA0, - 0x9B, - 0x9B, - 0x9B, - 0x9F, - 0x9F, - 0xA0, - 0x91, - 0x88, - 0x52, - 0x1F, - 0x20, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x06, - 0xDE, - 0x00, - 0x30, - 0xE5, - 0xE5, - 0xE5, - 0xDC, - 0xF0, - 0xDE, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xC7, - 0xE5, - 0xDE, - 0xC7, - 0xDE, - 0xC9, - 0xE5, - 0xC9, - 0xDE, - 0xCF, - 0x8D, - 0x75, - 0x68, - 0x68, - 0x64, - 0x1A, - 0xE0, - 0xC9, - 0xCC, - 0xCC, - 0xC9, - 0xCC, - 0xE5, - 0x92, - 0x75, - 0x74, - 0x74, - 0x6A, - 0x68, - 0x5E, - 0x4F, - 0x3D, - 0xCE, - 0xF2, - 0xE0, - 0xCC, - 0x04, - 0xCF, - 0x00, - 0x25, - 0xEA, - 0xDD, - 0xDC, - 0xDC, - 0xD3, - 0xA5, - 0x8D, - 0x75, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x84, - 0x7F, - 0x74, - 0x6B, - 0x5C, - 0x3D, - 0xFE, - 0xFA, - 0xF5, - 0xD1, - 0xB6, - 0xB6, - 0xD3, - 0xD3, - 0xD3, - 0xB6, - 0x07, - 0xB6, - 0x81, - 0x7E, - 0x77, - 0xD9, - 0xD6, - 0xD6, - 0xD4, - 0x00, - 0x04, - 0xD6, - 0x00, - 0x19, - 0xDA, - 0xDF, - 0xE7, - 0xFB, - 0x1A, - 0x0C, - 0x0C, - 0x65, - 0x93, - 0x88, - 0x1E, - 0x21, - 0x23, - 0x23, - 0x32, - 0x32, - 0x46, - 0x51, - 0x9E, - 0xA6, - 0xAA, - 0xA9, - 0xAA, - 0xAA, - 0xAD, - 0x00, - 0x04, - 0xAA, - 0x01, - 0xB0, - 0x01, - 0xB0, - 0x07, - 0xAA, - 0x01, - 0xB0, - 0x04, - 0xAA, - 0x00, - 0x11, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAA, - 0xA2, - 0x96, - 0x8F, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x22, - 0x83, - 0x83, - 0x99, - 0x72, - 0x5D, - 0x51, - 0x51, - 0x51, - 0x5B, - 0x4E, - 0x4D, - 0x4E, - 0x3C, - 0x32, - 0x3C, - 0x3A, - 0x3A, - 0x47, - 0x38, - 0x38, - 0x3C, - 0x75, - 0x97, - 0x9B, - 0x9B, - 0x95, - 0x75, - 0x5E, - 0x23, - 0x1E, - 0x19, - 0x33, - 0xD9, - 0xD5, - 0x04, - 0xD2, - 0x00, - 0x0B, - 0xBB, - 0x19, - 0x1D, - 0x81, - 0x39, - 0x1D, - 0x39, - 0x81, - 0x81, - 0x81, - 0x1D, - 0x00, - 0x04, - 0x81, - 0x00, - 0x23, - 0xFF, - 0x81, - 0x5A, - 0x76, - 0xFF, - 0xFF, - 0x81, - 0xC4, - 0x67, - 0xFF, - 0xFF, - 0x67, - 0xFF, - 0x67, - 0x67, - 0x18, - 0x5A, - 0x17, - 0x76, - 0x76, - 0x2B, - 0x6E, - 0x7D, - 0xA1, - 0x9B, - 0x9B, - 0x97, - 0x7C, - 0x58, - 0x2D, - 0x55, - 0x61, - 0x27, - 0xDB, - 0xD4, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x28, - 0xBB, - 0x75, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA4, - 0x88, - 0x90, - 0xA1, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x94, - 0x85, - 0x71, - 0x63, - 0x63, - 0x63, - 0x70, - 0x43, - 0x54, - 0x54, - 0x70, - 0x70, - 0x63, - 0x63, - 0x70, - 0x63, - 0x70, - 0x63, - 0x63, - 0x42, - 0x6F, - 0x06, - 0x41, - 0x00, - 0x09, - 0x6F, - 0x41, - 0x62, - 0x41, - 0x41, - 0x54, - 0x8E, - 0x97, - 0xA6, - 0x00, - 0x06, - 0x9F, - 0x00, - 0x03, - 0x97, - 0x7B, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xE5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x6D, - 0xE5, - 0xDE, - 0xE2, - 0xF2, - 0xFC, - 0xFA, - 0xFE, - 0xFC, - 0xF2, - 0xDE, - 0xDE, - 0xC7, - 0xE5, - 0xC9, - 0xC9, - 0xDE, - 0xC9, - 0xC9, - 0xDE, - 0xE0, - 0x89, - 0x75, - 0x75, - 0x68, - 0x75, - 0x39, - 0xE0, - 0xE6, - 0xDC, - 0xCC, - 0xE6, - 0xCC, - 0xE0, - 0xD0, - 0x8D, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x74, - 0x68, - 0x4E, - 0x5C, - 0x31, - 0xFE, - 0xF2, - 0xE0, - 0xCC, - 0xD0, - 0xEA, - 0xF5, - 0xEA, - 0xC4, - 0xDD, - 0xCE, - 0xF4, - 0xCF, - 0x81, - 0x80, - 0x7B, - 0x90, - 0x84, - 0x90, - 0x84, - 0x90, - 0x84, - 0x74, - 0x64, - 0x5F, - 0x50, - 0x07, - 0xFE, - 0xFE, - 0xD3, - 0xFF, - 0x29, - 0xD3, - 0xC0, - 0xD3, - 0x04, - 0xFA, - 0xFA, - 0xDA, - 0xD5, - 0xD5, - 0xD4, - 0xD4, - 0xD4, - 0xD6, - 0xD4, - 0xD6, - 0xD4, - 0xD6, - 0xD6, - 0xDF, - 0x19, - 0x19, - 0x7F, - 0x96, - 0x56, - 0x1B, - 0x21, - 0x21, - 0x30, - 0x30, - 0x32, - 0x46, - 0x5D, - 0x91, - 0x00, - 0x0B, - 0xAA, - 0x00, - 0x05, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0x00, - 0x08, - 0xAA, - 0x00, - 0x14, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xA2, - 0x96, - 0x8F, - 0x05, - 0x8B, - 0x00, - 0x3D, - 0x83, - 0x83, - 0x72, - 0x5D, - 0x5D, - 0x51, - 0x51, - 0x5B, - 0x51, - 0x46, - 0x3C, - 0x46, - 0x3A, - 0x3A, - 0x32, - 0x47, - 0x3A, - 0x38, - 0x32, - 0x3F, - 0x75, - 0x97, - 0x9B, - 0x9B, - 0xA1, - 0x88, - 0x5E, - 0x21, - 0x1B, - 0x11, - 0x69, - 0xC6, - 0xD2, - 0xD7, - 0x4A, - 0x5A, - 0x58, - 0x67, - 0x39, - 0x81, - 0x81, - 0x39, - 0x81, - 0x39, - 0x81, - 0x81, - 0x81, - 0x67, - 0x5A, - 0xFF, - 0x81, - 0x81, - 0xFF, - 0x81, - 0x81, - 0xFF, - 0x4A, - 0x18, - 0x18, - 0x5A, - 0xFF, - 0x00, - 0x04, - 0x67, - 0x00, - 0x13, - 0x5A, - 0x2B, - 0x5A, - 0x5A, - 0x2C, - 0x0B, - 0x4A, - 0x4B, - 0x54, - 0x8E, - 0xA1, - 0xA2, - 0xA4, - 0x4B, - 0xFF, - 0x39, - 0x29, - 0xEE, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x3A, - 0xC6, - 0x1D, - 0xA1, - 0xA7, - 0x85, - 0x94, - 0xA4, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA1, - 0x94, - 0x85, - 0x59, - 0x54, - 0x6F, - 0x54, - 0x54, - 0x71, - 0x66, - 0x70, - 0x71, - 0x71, - 0x71, - 0x70, - 0x42, - 0x6F, - 0x54, - 0x6F, - 0x70, - 0x70, - 0x63, - 0x69, - 0x70, - 0x42, - 0x63, - 0x6F, - 0x62, - 0x41, - 0x6F, - 0x41, - 0x6F, - 0x6F, - 0x42, - 0x42, - 0x6F, - 0x41, - 0x41, - 0x2E, - 0x27, - 0x66, - 0x8E, - 0xA1, - 0x06, - 0x9F, - 0x01, - 0xA0, - 0x00, - 0x00, - 0x00, - 0x62, - 0xDE, - 0xDE, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xF4, - 0x50, - 0x5C, - 0x3C, - 0x3C, - 0x5B, - 0x5E, - 0x5C, - 0x39, - 0xFE, - 0xE5, - 0xDE, - 0xC9, - 0xC9, - 0xC7, - 0xDE, - 0xC9, - 0xC9, - 0xC9, - 0xE0, - 0x5A, - 0x75, - 0x75, - 0x68, - 0x74, - 0x5F, - 0xFA, - 0xCA, - 0xCB, - 0xDC, - 0xCB, - 0xCF, - 0xCC, - 0xCC, - 0x92, - 0x80, - 0x7B, - 0x74, - 0x7F, - 0x7F, - 0x74, - 0x73, - 0x74, - 0x64, - 0x5E, - 0x39, - 0x22, - 0xFC, - 0xE6, - 0xDC, - 0xF9, - 0xF1, - 0xBE, - 0xCF, - 0xD0, - 0xD0, - 0xD0, - 0xCF, - 0xFE, - 0x29, - 0x80, - 0x77, - 0x7F, - 0x84, - 0x91, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x75, - 0x6B, - 0x4F, - 0x22, - 0xFE, - 0xFE, - 0x29, - 0x29, - 0x29, - 0xFF, - 0x29, - 0x29, - 0xFF, - 0xEE, - 0xE4, - 0xD6, - 0xD5, - 0xD5, - 0xD5, - 0x05, - 0xD4, - 0x00, - 0x0F, - 0xBB, - 0x10, - 0x5F, - 0x95, - 0x7F, - 0x21, - 0x21, - 0x2A, - 0x2A, - 0x30, - 0x32, - 0x3A, - 0x51, - 0x72, - 0xA6, - 0x00, - 0x04, - 0xAA, - 0x01, - 0xAD, - 0x0D, - 0xAA, - 0x00, - 0x13, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x06, - 0xB0, - 0xAC, - 0xAA, - 0xA2, - 0xA6, - 0x93, - 0x05, - 0x8B, - 0x00, - 0x04, - 0x83, - 0x99, - 0x72, - 0x5D, - 0x04, - 0x51, - 0x00, - 0x1F, - 0x46, - 0x46, - 0x46, - 0x3C, - 0x3C, - 0x3A, - 0x32, - 0x32, - 0x38, - 0x32, - 0x2A, - 0x3F, - 0x7D, - 0x97, - 0xA6, - 0x9B, - 0x96, - 0x88, - 0x56, - 0x1B, - 0x1C, - 0x09, - 0x4A, - 0x2C, - 0x2B, - 0x49, - 0x2C, - 0x2B, - 0x76, - 0x1D, - 0x39, - 0x00, - 0x04, - 0x81, - 0x00, - 0x57, - 0x67, - 0x0E, - 0x18, - 0x5A, - 0xDB, - 0x67, - 0x81, - 0x81, - 0xFF, - 0xFF, - 0x67, - 0x67, - 0x18, - 0x18, - 0x67, - 0x5A, - 0x18, - 0x76, - 0x67, - 0x67, - 0x76, - 0x5A, - 0x2C, - 0x4A, - 0x4B, - 0x55, - 0x55, - 0x55, - 0x49, - 0x40, - 0x59, - 0x59, - 0x2C, - 0x7B, - 0x9B, - 0x97, - 0x7C, - 0x76, - 0xDB, - 0xE4, - 0xD8, - 0xD8, - 0x05, - 0x90, - 0xA2, - 0x85, - 0x42, - 0x70, - 0x71, - 0x85, - 0xA3, - 0xA7, - 0xA7, - 0xA3, - 0x98, - 0x85, - 0x59, - 0x70, - 0x42, - 0x70, - 0x70, - 0x66, - 0x66, - 0x70, - 0x70, - 0x54, - 0x42, - 0x70, - 0x70, - 0x42, - 0x63, - 0x70, - 0x42, - 0x71, - 0x70, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x70, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x63, - 0x6F, - 0x63, - 0x00, - 0x04, - 0x41, - 0x00, - 0x10, - 0x53, - 0x6F, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x41, - 0x2E, - 0x53, - 0x6C, - 0x8E, - 0xA1, - 0x9F, - 0x9F, - 0x9F, - 0x9F, - 0x00, - 0x00, - 0x06, - 0xDE, - 0x00, - 0x06, - 0xE5, - 0xDE, - 0xDE, - 0xB6, - 0x5E, - 0x4E, - 0x04, - 0x64, - 0x00, - 0x23, - 0x68, - 0x68, - 0x64, - 0x4E, - 0x4F, - 0xFA, - 0xDC, - 0xE6, - 0xE6, - 0xCC, - 0xC9, - 0xC9, - 0xE0, - 0xCB, - 0xE6, - 0xC0, - 0x7C, - 0x74, - 0x75, - 0x74, - 0x6B, - 0x29, - 0xF2, - 0xCC, - 0xCC, - 0xE6, - 0xCC, - 0xE6, - 0xDC, - 0xF4, - 0xCF, - 0x81, - 0x80, - 0x6B, - 0x75, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x16, - 0x74, - 0x4E, - 0x5C, - 0x3D, - 0xFE, - 0xF4, - 0xF4, - 0xCF, - 0xCF, - 0xD0, - 0xD3, - 0xD0, - 0xD0, - 0xD0, - 0xCF, - 0xFE, - 0xD3, - 0x79, - 0x6D, - 0x88, - 0x84, - 0x91, - 0x04, - 0x84, - 0x00, - 0x25, - 0x74, - 0x4E, - 0x5C, - 0x19, - 0x07, - 0x07, - 0x29, - 0x04, - 0x1A, - 0x05, - 0x04, - 0x04, - 0x05, - 0x02, - 0xE4, - 0xC6, - 0xD4, - 0xD5, - 0xD5, - 0xD5, - 0xD4, - 0x1D, - 0x0C, - 0x74, - 0x9A, - 0x6D, - 0x1E, - 0x21, - 0x21, - 0x30, - 0x38, - 0x3A, - 0x46, - 0x5D, - 0x8C, - 0xAA, - 0xA9, - 0x00, - 0x06, - 0xAA, - 0x01, - 0xB0, - 0x01, - 0xB0, - 0x07, - 0xAA, - 0x00, - 0x15, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0x00, - 0x04, - 0xB0, - 0x00, - 0x09, - 0xAC, - 0xAC, - 0xB0, - 0xB1, - 0xAC, - 0xAC, - 0xA9, - 0xA6, - 0x93, - 0x00, - 0x05, - 0x8B, - 0x00, - 0x41, - 0x83, - 0x83, - 0x72, - 0x72, - 0x5D, - 0x51, - 0x51, - 0x51, - 0x5B, - 0x46, - 0x4D, - 0x4E, - 0x3A, - 0x3C, - 0x32, - 0x47, - 0x47, - 0x2A, - 0x4F, - 0x3F, - 0x7B, - 0x94, - 0xA4, - 0x9B, - 0x96, - 0x88, - 0x56, - 0x21, - 0x1C, - 0x31, - 0x2B, - 0x24, - 0x4A, - 0x2C, - 0x1D, - 0x67, - 0xA5, - 0x1D, - 0x1D, - 0x81, - 0xFF, - 0x67, - 0x67, - 0x4A, - 0x0E, - 0xFF, - 0x81, - 0xFF, - 0x1D, - 0x81, - 0xFF, - 0x67, - 0x67, - 0x67, - 0x17, - 0x5A, - 0x5A, - 0x17, - 0x4A, - 0x18, - 0x5A, - 0x5A, - 0x5A, - 0x2C, - 0x4A, - 0x00, - 0x04, - 0x55, - 0x00, - 0x1A, - 0x41, - 0x2E, - 0x55, - 0x41, - 0x59, - 0x8E, - 0xA7, - 0x9B, - 0xA6, - 0x94, - 0x7C, - 0x5A, - 0xFF, - 0x75, - 0xA2, - 0x98, - 0x62, - 0x70, - 0x71, - 0x71, - 0x63, - 0x71, - 0x71, - 0x66, - 0x70, - 0x54, - 0x04, - 0x70, - 0x00, - 0x09, - 0x66, - 0x70, - 0x70, - 0x54, - 0x70, - 0x66, - 0x70, - 0x54, - 0x70, - 0x00, - 0x04, - 0x54, - 0x00, - 0x17, - 0x70, - 0x63, - 0x54, - 0x54, - 0x6F, - 0x41, - 0x54, - 0x42, - 0x54, - 0x6F, - 0x54, - 0x63, - 0x70, - 0x69, - 0x63, - 0x54, - 0x63, - 0x62, - 0x53, - 0x2F, - 0x53, - 0x41, - 0x6F, - 0x00, - 0x05, - 0x41, - 0x00, - 0x07, - 0x2E, - 0x40, - 0x41, - 0x6C, - 0x94, - 0xA1, - 0x96, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xE5, - 0xE5, - 0xE5, - 0x00, - 0x05, - 0xDE, - 0x00, - 0x2E, - 0xE0, - 0x5F, - 0x5B, - 0x64, - 0x64, - 0x77, - 0x7E, - 0x67, - 0x58, - 0x6D, - 0x64, - 0x75, - 0x68, - 0x77, - 0x29, - 0xE6, - 0xDC, - 0xE6, - 0xC9, - 0xE0, - 0xC9, - 0xC9, - 0xC9, - 0xDE, - 0xEC, - 0x80, - 0x75, - 0x74, - 0x74, - 0x75, - 0x50, - 0xF4, - 0xE0, - 0xCC, - 0xCC, - 0xCC, - 0xDC, - 0xCC, - 0xD0, - 0xDC, - 0xE0, - 0xE6, - 0xB8, - 0x89, - 0x6D, - 0x75, - 0x05, - 0x7F, - 0x00, - 0x3A, - 0x74, - 0x68, - 0x56, - 0x50, - 0x22, - 0xFC, - 0xF4, - 0xCF, - 0xD0, - 0xD0, - 0xF9, - 0xB8, - 0xD0, - 0xCF, - 0xFA, - 0xFE, - 0xB6, - 0x81, - 0x8D, - 0x75, - 0x7F, - 0x91, - 0x84, - 0x91, - 0x8C, - 0x84, - 0x7F, - 0x75, - 0x5F, - 0x39, - 0xF9, - 0xF1, - 0xFA, - 0x07, - 0x07, - 0x08, - 0x05, - 0x1A, - 0x1A, - 0x06, - 0xE1, - 0xD9, - 0xD8, - 0xBB, - 0x0C, - 0x2A, - 0x91, - 0x97, - 0x2A, - 0x21, - 0x23, - 0x30, - 0x30, - 0x3A, - 0x46, - 0x4D, - 0x72, - 0xA4, - 0x0A, - 0xAA, - 0x00, - 0x2D, - 0xB0, - 0xAA, - 0xAA, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xB1, - 0xAC, - 0xB0, - 0xAE, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xAC, - 0xB0, - 0xAC, - 0xAE, - 0xB0, - 0xAA, - 0xAA, - 0xA6, - 0x93, - 0x8F, - 0x00, - 0x04, - 0x8B, - 0x00, - 0x63, - 0x83, - 0x83, - 0x72, - 0x72, - 0x5D, - 0x51, - 0x51, - 0x5B, - 0x5B, - 0x3C, - 0x3C, - 0x3C, - 0x32, - 0x47, - 0x32, - 0x32, - 0x5C, - 0x2A, - 0x2A, - 0x56, - 0x6C, - 0x94, - 0xA4, - 0x9B, - 0xA0, - 0x88, - 0x56, - 0x31, - 0x1C, - 0x58, - 0x58, - 0x1D, - 0x2B, - 0x1D, - 0x17, - 0x76, - 0x81, - 0x1D, - 0x81, - 0x81, - 0x67, - 0x67, - 0x81, - 0xFF, - 0x81, - 0xC4, - 0x67, - 0x1D, - 0x67, - 0x67, - 0xFF, - 0x67, - 0x67, - 0x5A, - 0x4A, - 0x76, - 0x4A, - 0x4A, - 0x4A, - 0x4B, - 0x61, - 0x61, - 0x2D, - 0x61, - 0x40, - 0x55, - 0x55, - 0x6F, - 0x62, - 0x6F, - 0x62, - 0x55, - 0x55, - 0x59, - 0x98, - 0xA4, - 0xA2, - 0xA6, - 0x96, - 0xA2, - 0x98, - 0x69, - 0x71, - 0x71, - 0x70, - 0x70, - 0x70, - 0x71, - 0x70, - 0x70, - 0x70, - 0x71, - 0x87, - 0x71, - 0x71, - 0x66, - 0x66, - 0x70, - 0x54, - 0x00, - 0x04, - 0x70, - 0x00, - 0x1E, - 0x63, - 0x70, - 0x70, - 0x42, - 0x54, - 0x42, - 0x54, - 0x54, - 0x42, - 0x6F, - 0x54, - 0x6F, - 0x54, - 0x6F, - 0x42, - 0x62, - 0x6F, - 0x41, - 0x54, - 0x63, - 0x42, - 0x63, - 0x63, - 0x42, - 0x63, - 0x6F, - 0x42, - 0x62, - 0x37, - 0x53, - 0x06, - 0x41, - 0x00, - 0x05, - 0x62, - 0x41, - 0x2E, - 0x41, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0x04, - 0xDE, - 0x00, - 0x57, - 0xB6, - 0x6B, - 0x64, - 0x64, - 0x77, - 0xEB, - 0xED, - 0xEB, - 0xED, - 0xEB, - 0xDB, - 0x5B, - 0x64, - 0x68, - 0x64, - 0xD0, - 0xE6, - 0xE6, - 0xC9, - 0xC9, - 0xC9, - 0xCB, - 0xE6, - 0xC9, - 0xC9, - 0xE0, - 0x81, - 0x7B, - 0x74, - 0x74, - 0x74, - 0x56, - 0x3D, - 0xD3, - 0xF2, - 0xF4, - 0xCC, - 0xCC, - 0xDC, - 0xCF, - 0xBC, - 0xD0, - 0xE6, - 0xDC, - 0xCF, - 0xCF, - 0x81, - 0x8D, - 0x7B, - 0x7F, - 0x84, - 0x84, - 0x90, - 0x7F, - 0x7F, - 0x68, - 0x6B, - 0x4F, - 0x3D, - 0xFE, - 0xFC, - 0xCF, - 0xCF, - 0xD0, - 0xB8, - 0xFF, - 0xC0, - 0xD1, - 0xF5, - 0xFA, - 0xD3, - 0x29, - 0x8D, - 0x7B, - 0x7F, - 0x91, - 0x91, - 0x91, - 0x8C, - 0x91, - 0x84, - 0xBB, - 0xDA, - 0xE3, - 0xEB, - 0xEA, - 0xF9, - 0x00, - 0x04, - 0x08, - 0x00, - 0x15, - 0x1A, - 0x19, - 0x1F, - 0x1D, - 0x0C, - 0x75, - 0x9A, - 0x7B, - 0x21, - 0x2A, - 0x34, - 0x38, - 0x32, - 0x32, - 0x46, - 0x5D, - 0x8B, - 0xAA, - 0xAA, - 0xAA, - 0xA9, - 0x00, - 0x07, - 0xAA, - 0x00, - 0x30, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xAE, - 0xB1, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xAE, - 0xAE, - 0xAC, - 0xAA, - 0xA2, - 0x96, - 0x8F, - 0x04, - 0x8B, - 0x00, - 0x04, - 0x83, - 0x83, - 0x72, - 0x72, - 0x04, - 0x51, - 0x00, - 0x4A, - 0x46, - 0x46, - 0x3A, - 0x32, - 0x3F, - 0x32, - 0x56, - 0x5C, - 0x2A, - 0x34, - 0x34, - 0x33, - 0x65, - 0x94, - 0xA6, - 0x9B, - 0xA4, - 0x7B, - 0x1B, - 0x19, - 0x39, - 0x39, - 0x67, - 0x5A, - 0x1D, - 0x67, - 0x67, - 0x67, - 0x5A, - 0xFF, - 0x81, - 0xA5, - 0xFF, - 0x81, - 0x1D, - 0xA5, - 0xFF, - 0xFF, - 0xFF, - 0x67, - 0x67, - 0x18, - 0x67, - 0x67, - 0x76, - 0x5A, - 0x2C, - 0x55, - 0x4B, - 0x55, - 0x55, - 0x4B, - 0x61, - 0x55, - 0x40, - 0x55, - 0x62, - 0x6F, - 0x42, - 0x62, - 0x70, - 0x70, - 0x42, - 0x62, - 0x41, - 0x59, - 0x8E, - 0x98, - 0x59, - 0x4C, - 0x69, - 0x71, - 0x69, - 0x71, - 0x04, - 0x66, - 0x01, - 0x70, - 0x01, - 0x66, - 0x04, - 0x71, - 0x00, - 0x22, - 0x70, - 0x70, - 0x70, - 0x71, - 0x70, - 0x70, - 0x54, - 0x70, - 0x70, - 0x70, - 0x66, - 0x70, - 0x70, - 0x70, - 0x54, - 0x42, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x41, - 0x54, - 0x6F, - 0x6F, - 0x41, - 0x41, - 0x42, - 0x6F, - 0x42, - 0x42, - 0x41, - 0x04, - 0x62, - 0x04, - 0x41, - 0x00, - 0x07, - 0x40, - 0x41, - 0x62, - 0x62, - 0x63, - 0x63, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x25, - 0xDE, - 0xDE, - 0xC7, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xF0, - 0xD1, - 0x4E, - 0x5B, - 0x64, - 0xE1, - 0xDF, - 0xEB, - 0xC9, - 0xF0, - 0xEF, - 0xE3, - 0xE7, - 0x77, - 0x64, - 0x74, - 0x8D, - 0xE0, - 0xE5, - 0xC9, - 0xC9, - 0xC9, - 0xE6, - 0xCB, - 0xCC, - 0xDC, - 0xCB, - 0xE0, - 0xD0, - 0x80, - 0x00, - 0x04, - 0x74, - 0x00, - 0x4D, - 0x64, - 0x5E, - 0x5C, - 0x81, - 0xFA, - 0xF4, - 0xE0, - 0xE6, - 0xE6, - 0xCF, - 0xD0, - 0xD0, - 0xCC, - 0xD0, - 0xF4, - 0xCF, - 0x29, - 0x89, - 0x8D, - 0x75, - 0x7F, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x74, - 0x64, - 0x6D, - 0x79, - 0x08, - 0xFE, - 0xFE, - 0xFA, - 0xD0, - 0xD3, - 0xFF, - 0xC0, - 0xFB, - 0xC0, - 0xFE, - 0x29, - 0x29, - 0x89, - 0x6D, - 0x75, - 0x90, - 0x91, - 0x90, - 0xDA, - 0xD4, - 0xD4, - 0xD6, - 0xD6, - 0xDF, - 0xE3, - 0xE9, - 0xEA, - 0x08, - 0x08, - 0x19, - 0x1D, - 0x19, - 0x21, - 0x91, - 0x91, - 0x21, - 0x23, - 0x21, - 0x2A, - 0x2A, - 0x32, - 0x3C, - 0x4D, - 0x72, - 0xA6, - 0xAA, - 0xA9, - 0x00, - 0x04, - 0xAA, - 0x01, - 0xB0, - 0x06, - 0xAA, - 0x00, - 0x25, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB1, - 0xAE, - 0xAE, - 0xAC, - 0xB1, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x08, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xA2, - 0xA4, - 0x93, - 0x05, - 0x8B, - 0x00, - 0x0E, - 0x83, - 0x99, - 0x72, - 0x51, - 0x51, - 0x51, - 0x46, - 0x3C, - 0x3C, - 0x32, - 0x65, - 0x34, - 0x53, - 0x60, - 0x04, - 0x33, - 0x00, - 0x06, - 0x34, - 0x65, - 0x97, - 0x9B, - 0x97, - 0x33, - 0x04, - 0x39, - 0x00, - 0x45, - 0x81, - 0x1D, - 0xA5, - 0x17, - 0x4A, - 0x1D, - 0x67, - 0xFF, - 0x81, - 0x1D, - 0xA5, - 0xFF, - 0xFF, - 0xA5, - 0x1D, - 0x67, - 0x67, - 0x67, - 0x18, - 0x5A, - 0x2B, - 0x5A, - 0x5A, - 0x4A, - 0x61, - 0x4B, - 0x4B, - 0x4B, - 0x61, - 0x2E, - 0x62, - 0x62, - 0x41, - 0x62, - 0x62, - 0x62, - 0x70, - 0x70, - 0x70, - 0x63, - 0x70, - 0x70, - 0x62, - 0x42, - 0x70, - 0x66, - 0x70, - 0x70, - 0x70, - 0x66, - 0x71, - 0x63, - 0x71, - 0x70, - 0x70, - 0x70, - 0x66, - 0x70, - 0x71, - 0x66, - 0x70, - 0x71, - 0x71, - 0x69, - 0x71, - 0x70, - 0x63, - 0x70, - 0x54, - 0x00, - 0x04, - 0x70, - 0x00, - 0x12, - 0x54, - 0x63, - 0x70, - 0x54, - 0x62, - 0x54, - 0x6F, - 0x6F, - 0x41, - 0x6F, - 0x6F, - 0x54, - 0x41, - 0x54, - 0x6F, - 0x41, - 0x54, - 0x6F, - 0x04, - 0x41, - 0x00, - 0x05, - 0x42, - 0x63, - 0x42, - 0x63, - 0x63, - 0x00, - 0x06, - 0x41, - 0x00, - 0x03, - 0x3E, - 0x6F, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x34, - 0xE5, - 0xF0, - 0xE5, - 0xC7, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xF4, - 0x6D, - 0x64, - 0x5D, - 0xE4, - 0xDA, - 0xF0, - 0xF2, - 0xDE, - 0xFD, - 0xEF, - 0xDF, - 0x52, - 0x64, - 0x68, - 0x64, - 0xF4, - 0xDE, - 0xDE, - 0xC9, - 0xC9, - 0xCC, - 0xC9, - 0xC9, - 0xE6, - 0xCC, - 0xCB, - 0xCC, - 0xE0, - 0xC0, - 0x77, - 0x74, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x74, - 0x64, - 0x5E, - 0x50, - 0x29, - 0xFE, - 0xE0, - 0xF4, - 0x04, - 0xCF, - 0x00, - 0x21, - 0xD0, - 0xD0, - 0xCF, - 0xFA, - 0xD0, - 0xB7, - 0x80, - 0x7B, - 0x7F, - 0x90, - 0x91, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x64, - 0x5F, - 0x3D, - 0x07, - 0xFE, - 0xFA, - 0xD3, - 0xC0, - 0x29, - 0xD1, - 0xFF, - 0x04, - 0xD3, - 0xFA, - 0x04, - 0x1A, - 0x79, - 0xBB, - 0x00, - 0x08, - 0xD4, - 0x00, - 0x13, - 0xD6, - 0xDF, - 0xE4, - 0x01, - 0x19, - 0x0C, - 0x7B, - 0xA0, - 0x7B, - 0x21, - 0x2A, - 0x2A, - 0x30, - 0x3A, - 0x32, - 0x46, - 0x5D, - 0x84, - 0xA9, - 0x00, - 0x09, - 0xAA, - 0x00, - 0x38, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xAC, - 0xB1, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xB0, - 0xB1, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xB0, - 0xAC, - 0xB1, - 0xAC, - 0xAC, - 0xAA, - 0xA6, - 0x9A, - 0x05, - 0x8B, - 0x00, - 0x24, - 0x83, - 0x99, - 0x72, - 0x51, - 0x51, - 0x46, - 0x3C, - 0x32, - 0x3F, - 0x3B, - 0x34, - 0x35, - 0x52, - 0x34, - 0x34, - 0x33, - 0x39, - 0x39, - 0x7D, - 0x9B, - 0x97, - 0x19, - 0x39, - 0x39, - 0x67, - 0x76, - 0x1D, - 0x81, - 0x1D, - 0x81, - 0x67, - 0x67, - 0x1D, - 0xFF, - 0x81, - 0xFF, - 0x07, - 0x67, - 0x00, - 0x1D, - 0x76, - 0x76, - 0x5A, - 0x4B, - 0x55, - 0x5A, - 0x61, - 0x4A, - 0x4A, - 0x61, - 0x6E, - 0x55, - 0x63, - 0x62, - 0x62, - 0x63, - 0x6F, - 0x70, - 0x62, - 0x6F, - 0x42, - 0x70, - 0x71, - 0x63, - 0x71, - 0x70, - 0x70, - 0x71, - 0x71, - 0x00, - 0x04, - 0x70, - 0x00, - 0x06, - 0x66, - 0x71, - 0x66, - 0x66, - 0x70, - 0x71, - 0x05, - 0x70, - 0x00, - 0x28, - 0x71, - 0x71, - 0x54, - 0x43, - 0x66, - 0x70, - 0x43, - 0x42, - 0x70, - 0x70, - 0x54, - 0x42, - 0x70, - 0x42, - 0x54, - 0x42, - 0x6F, - 0x54, - 0x6F, - 0x70, - 0x54, - 0x41, - 0x6F, - 0x41, - 0x62, - 0x42, - 0x6F, - 0x62, - 0x42, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x62, - 0x42, - 0x6F, - 0x41, - 0x62, - 0x05, - 0x41, - 0x01, - 0x2E, - 0x01, - 0x41, - 0x00, - 0x00, - 0x00, - 0x39, - 0xDE, - 0xF0, - 0xE5, - 0xF0, - 0xF0, - 0xF0, - 0xDE, - 0xDE, - 0xDE, - 0xA5, - 0x64, - 0x64, - 0x64, - 0xDF, - 0xE3, - 0xF8, - 0xF6, - 0xF6, - 0xED, - 0xDA, - 0x52, - 0x64, - 0x75, - 0x64, - 0x5F, - 0x31, - 0xFE, - 0xF2, - 0xE0, - 0xE5, - 0xC9, - 0xC9, - 0xCC, - 0xCC, - 0xE6, - 0xCB, - 0xCF, - 0xE6, - 0xE6, - 0xD1, - 0x89, - 0x77, - 0x75, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x68, - 0x5B, - 0x4F, - 0x3D, - 0xFE, - 0xF4, - 0xF4, - 0xCF, - 0xCF, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x08, - 0xFA, - 0xCF, - 0xFA, - 0xD1, - 0x89, - 0x77, - 0x88, - 0x90, - 0x04, - 0x84, - 0x00, - 0x14, - 0x7F, - 0x74, - 0x6B, - 0x50, - 0x08, - 0xFE, - 0xFE, - 0x29, - 0xC0, - 0xD3, - 0xD3, - 0x04, - 0xC0, - 0x29, - 0xFA, - 0xE8, - 0xD4, - 0xD5, - 0xD5, - 0xD5, - 0x07, - 0xD4, - 0x00, - 0x14, - 0xD6, - 0x19, - 0x21, - 0x84, - 0x95, - 0x35, - 0x2A, - 0x2A, - 0x2A, - 0x30, - 0x3A, - 0x4D, - 0x51, - 0x72, - 0x96, - 0xAA, - 0xAD, - 0xAA, - 0xAA, - 0xB0, - 0x04, - 0xAA, - 0x00, - 0x77, - 0xAC, - 0xB0, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB0, - 0xAA, - 0xA2, - 0x95, - 0x8F, - 0x8B, - 0x8B, - 0x8B, - 0x83, - 0x83, - 0x5D, - 0x5B, - 0x4D, - 0x3C, - 0x32, - 0x2A, - 0x21, - 0x11, - 0x24, - 0x37, - 0x40, - 0x35, - 0x49, - 0x33, - 0x21, - 0x97, - 0x9B, - 0x60, - 0x19, - 0x67, - 0x4A, - 0x67, - 0x67, - 0x17, - 0xFF, - 0x67, - 0xFF, - 0xFF, - 0xFF, - 0xA5, - 0x67, - 0x18, - 0x5A, - 0x5A, - 0x0E, - 0x67, - 0x5A, - 0x67, - 0x67, - 0x76, - 0x5A, - 0x5A, - 0x61, - 0x0B, - 0x55, - 0x3E, - 0x55, - 0x55, - 0x55, - 0x4B, - 0x6F, - 0x62, - 0x62, - 0x00, - 0x04, - 0x63, - 0x00, - 0x03, - 0x70, - 0x42, - 0x42, - 0x00, - 0x04, - 0x70, - 0x00, - 0x12, - 0x66, - 0x63, - 0x71, - 0x69, - 0x71, - 0x87, - 0x71, - 0x71, - 0x70, - 0x66, - 0x70, - 0x71, - 0x71, - 0x66, - 0x71, - 0x66, - 0x71, - 0x66, - 0x06, - 0x70, - 0x00, - 0x1A, - 0x71, - 0x70, - 0x43, - 0x71, - 0x70, - 0x54, - 0x42, - 0x54, - 0x54, - 0x70, - 0x6F, - 0x54, - 0x54, - 0x69, - 0x4C, - 0x6F, - 0x42, - 0x6F, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x62, - 0x41, - 0x6F, - 0x42, - 0x0C, - 0x41, - 0x00, - 0x04, - 0x4C, - 0x41, - 0x41, - 0x6F, - 0x00, - 0x00, - 0x00, - 0x2F, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xCB, - 0xF0, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0x8D, - 0x64, - 0x64, - 0x4E, - 0xE4, - 0xE3, - 0xEF, - 0xED, - 0xDA, - 0x69, - 0x77, - 0x75, - 0x75, - 0x68, - 0x68, - 0x68, - 0x64, - 0x6B, - 0x4F, - 0xD3, - 0xC1, - 0xF4, - 0xDE, - 0xC9, - 0xCC, - 0xCC, - 0xE6, - 0xCB, - 0xCF, - 0xDC, - 0xCC, - 0xF4, - 0xD0, - 0x81, - 0x8D, - 0x75, - 0x74, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x22, - 0x74, - 0x64, - 0x5E, - 0x31, - 0x04, - 0xFE, - 0xF4, - 0xCF, - 0xCF, - 0xD0, - 0xD0, - 0xD0, - 0xD1, - 0xD0, - 0xCF, - 0xCF, - 0xFA, - 0x81, - 0x7C, - 0x88, - 0x7F, - 0x84, - 0x8C, - 0x84, - 0x84, - 0x84, - 0x74, - 0x64, - 0x5C, - 0x19, - 0x07, - 0xFE, - 0x04, - 0x04, - 0x04, - 0x29, - 0x00, - 0x04, - 0x05, - 0x01, - 0xE4, - 0xD7, - 0x05, - 0xD5, - 0x00, - 0x10, - 0xD4, - 0xD5, - 0x4C, - 0x10, - 0x6B, - 0xA0, - 0x75, - 0x21, - 0x21, - 0x2A, - 0x32, - 0x2A, - 0x32, - 0x46, - 0x51, - 0x7A, - 0x04, - 0xAA, - 0x00, - 0xBE, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xAC, - 0xAE, - 0xAE, - 0xAC, - 0xAE, - 0xB0, - 0xAC, - 0xB1, - 0xB1, - 0xAC, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xAE, - 0xB3, - 0xAE, - 0xAA, - 0xA2, - 0x96, - 0x8F, - 0x8B, - 0x8B, - 0x8B, - 0x83, - 0x51, - 0x3C, - 0x3A, - 0x4C, - 0xD7, - 0xD8, - 0xD7, - 0x16, - 0x35, - 0x40, - 0x62, - 0x33, - 0x39, - 0x7B, - 0xA2, - 0x65, - 0x19, - 0x58, - 0x17, - 0x67, - 0x67, - 0x5A, - 0x18, - 0xB2, - 0x18, - 0xA5, - 0x67, - 0xFF, - 0x1D, - 0x5A, - 0x18, - 0x0E, - 0x4A, - 0x5A, - 0x18, - 0x5A, - 0x2B, - 0x5A, - 0x76, - 0x5A, - 0x4A, - 0x2D, - 0x62, - 0x0B, - 0x55, - 0x3E, - 0x62, - 0x62, - 0x62, - 0x55, - 0x6F, - 0x62, - 0x70, - 0x69, - 0x70, - 0x62, - 0x70, - 0x63, - 0x71, - 0x63, - 0x70, - 0x70, - 0x66, - 0x66, - 0x71, - 0x71, - 0x87, - 0x71, - 0x71, - 0x87, - 0x87, - 0x71, - 0x70, - 0x66, - 0x70, - 0x71, - 0x66, - 0x66, - 0x66, - 0x70, - 0x63, - 0x66, - 0x66, - 0x70, - 0x70, - 0x54, - 0x70, - 0x70, - 0x43, - 0x70, - 0x54, - 0x70, - 0x54, - 0x70, - 0x70, - 0x42, - 0x54, - 0x54, - 0x62, - 0x4C, - 0x63, - 0x62, - 0x63, - 0x54, - 0x41, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x41, - 0x42, - 0x41, - 0x62, - 0x42, - 0x41, - 0x42, - 0x05, - 0x41, - 0x00, - 0x07, - 0x37, - 0x41, - 0x3E, - 0x42, - 0x2E, - 0x0E, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDE, - 0xE6, - 0xE5, - 0xDE, - 0xE5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x29, - 0xE5, - 0xE6, - 0x80, - 0x75, - 0x64, - 0x64, - 0x7B, - 0x66, - 0x66, - 0x57, - 0x5B, - 0x64, - 0x68, - 0x74, - 0x77, - 0x64, - 0x75, - 0x74, - 0x68, - 0x68, - 0x68, - 0x4E, - 0x5F, - 0x19, - 0xB6, - 0xF4, - 0xE0, - 0xE0, - 0xC9, - 0xE6, - 0xCC, - 0xE6, - 0xCC, - 0xCF, - 0xCC, - 0xE6, - 0xD0, - 0xB7, - 0x80, - 0x7B, - 0x88, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x3F, - 0x6A, - 0x6B, - 0x4F, - 0x3D, - 0xFE, - 0xCF, - 0xF4, - 0xB6, - 0xD0, - 0xD0, - 0xD0, - 0xB6, - 0xD0, - 0xF5, - 0xEA, - 0xD3, - 0xC4, - 0x7E, - 0x7B, - 0x7F, - 0x84, - 0x91, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x75, - 0x56, - 0x39, - 0x04, - 0x04, - 0x04, - 0x07, - 0x08, - 0x29, - 0x05, - 0x29, - 0x05, - 0x01, - 0xE1, - 0xC6, - 0xD8, - 0xD5, - 0xD5, - 0xD5, - 0x1D, - 0x1B, - 0x88, - 0xA0, - 0x56, - 0x21, - 0x21, - 0x30, - 0x38, - 0x32, - 0x3A, - 0x51, - 0x72, - 0xA1, - 0xAA, - 0xAA, - 0xAA, - 0xAD, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x63, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xAD, - 0xA9, - 0xB0, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xAC, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xB1, - 0xAE, - 0xB0, - 0xAA, - 0xA6, - 0x93, - 0x8B, - 0x8B, - 0x72, - 0x4E, - 0x59, - 0xC2, - 0xBB, - 0x12, - 0xD2, - 0xC6, - 0x2A, - 0x34, - 0x60, - 0x33, - 0x1F, - 0x7B, - 0xA2, - 0x7C, - 0x39, - 0x1D, - 0x39, - 0x39, - 0x1D, - 0x1D, - 0xB2, - 0x01, - 0x17, - 0xEE, - 0x5A, - 0xA5, - 0xFF, - 0x00, - 0x04, - 0x67, - 0x00, - 0x1A, - 0x5A, - 0x5A, - 0x76, - 0x67, - 0x5A, - 0x4A, - 0x5A, - 0x4A, - 0x4A, - 0x2D, - 0x61, - 0x55, - 0x62, - 0x3E, - 0x3E, - 0x3E, - 0x63, - 0x63, - 0x62, - 0x42, - 0x6F, - 0x6F, - 0x62, - 0x70, - 0x71, - 0x69, - 0x05, - 0x71, - 0x00, - 0x33, - 0x70, - 0x66, - 0x71, - 0x71, - 0x87, - 0x87, - 0x71, - 0x87, - 0x87, - 0x71, - 0x71, - 0x66, - 0x70, - 0x70, - 0x70, - 0x71, - 0x70, - 0x66, - 0x63, - 0x66, - 0x70, - 0x70, - 0x66, - 0x70, - 0x70, - 0x42, - 0x66, - 0x54, - 0x43, - 0x69, - 0x70, - 0x63, - 0x70, - 0x42, - 0x54, - 0x54, - 0x42, - 0x63, - 0x70, - 0x41, - 0x6F, - 0x6F, - 0x42, - 0x54, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x6F, - 0x00, - 0x04, - 0x41, - 0x00, - 0x09, - 0x6F, - 0x41, - 0x41, - 0x40, - 0x2C, - 0x1D, - 0x1D, - 0x5F, - 0x88, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1C, - 0xE5, - 0xDC, - 0xF0, - 0xE6, - 0xE5, - 0xE5, - 0xE6, - 0xE5, - 0xDE, - 0xC7, - 0xE5, - 0xE5, - 0x81, - 0x6B, - 0x75, - 0x75, - 0x75, - 0x68, - 0x75, - 0x68, - 0x74, - 0x75, - 0x89, - 0xF4, - 0xD0, - 0xA5, - 0x8D, - 0x7B, - 0x04, - 0x74, - 0x00, - 0x15, - 0x68, - 0x68, - 0x6B, - 0x4F, - 0x3D, - 0xC1, - 0xF2, - 0xE0, - 0xCC, - 0xDC, - 0xCF, - 0xCC, - 0xCF, - 0xDC, - 0xCC, - 0xF4, - 0xCF, - 0xFF, - 0x89, - 0x8D, - 0x88, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x14, - 0x74, - 0x64, - 0x5E, - 0x39, - 0xFA, - 0xFE, - 0xF4, - 0xCF, - 0xD0, - 0xD0, - 0xD1, - 0xD1, - 0xEA, - 0xC4, - 0xD1, - 0xFA, - 0xFF, - 0xA5, - 0x6D, - 0x88, - 0x05, - 0x91, - 0x00, - 0x1F, - 0x84, - 0x7F, - 0x64, - 0x76, - 0xEB, - 0xF3, - 0xEC, - 0x07, - 0x07, - 0x08, - 0x05, - 0x1A, - 0x1A, - 0x06, - 0x0B, - 0xD9, - 0xBB, - 0x1B, - 0x32, - 0x93, - 0x88, - 0x21, - 0x21, - 0x34, - 0x2A, - 0x30, - 0x3A, - 0x46, - 0x51, - 0x9E, - 0xA2, - 0x00, - 0x06, - 0xAA, - 0x00, - 0x04, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0x04, - 0xAA, - 0x00, - 0x77, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xAE, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB1, - 0x84, - 0x90, - 0x84, - 0x97, - 0xA7, - 0xAD, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xAC, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xA9, - 0x8F, - 0x8B, - 0x5D, - 0x85, - 0xD2, - 0xD9, - 0x4C, - 0xD2, - 0xBB, - 0x33, - 0x33, - 0x2A, - 0x1F, - 0x21, - 0x91, - 0xA6, - 0x33, - 0x1F, - 0x2B, - 0x58, - 0x67, - 0x58, - 0x1D, - 0x1D, - 0xA5, - 0x67, - 0x0E, - 0x67, - 0x67, - 0x1D, - 0x67, - 0x5A, - 0x67, - 0x67, - 0x67, - 0x5A, - 0x76, - 0x5A, - 0x2C, - 0x4B, - 0x4A, - 0x61, - 0x55, - 0x61, - 0x4B, - 0x61, - 0x61, - 0x62, - 0x62, - 0x63, - 0x63, - 0x63, - 0x42, - 0x6F, - 0x63, - 0x69, - 0x00, - 0x04, - 0x70, - 0x00, - 0x03, - 0x71, - 0x69, - 0x70, - 0x00, - 0x05, - 0x71, - 0x00, - 0x14, - 0x66, - 0x66, - 0x71, - 0x71, - 0x63, - 0x6E, - 0x63, - 0x71, - 0x71, - 0x66, - 0x66, - 0x66, - 0x70, - 0x66, - 0x66, - 0x66, - 0x70, - 0x70, - 0x70, - 0x66, - 0x04, - 0x70, - 0x00, - 0x25, - 0x54, - 0x70, - 0x70, - 0x42, - 0x70, - 0x70, - 0x63, - 0x71, - 0x62, - 0x42, - 0x54, - 0x41, - 0x6F, - 0x6F, - 0x54, - 0x42, - 0x62, - 0x42, - 0x6F, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x6F, - 0x54, - 0x6F, - 0x27, - 0x2C, - 0x19, - 0x39, - 0x6B, - 0x7F, - 0x93, - 0x9F, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xDE, - 0xDE, - 0xE5, - 0xE5, - 0xE6, - 0xE5, - 0xDD, - 0xE6, - 0xE5, - 0xE5, - 0xC7, - 0xE5, - 0xDE, - 0xE5, - 0xB7, - 0x89, - 0x6D, - 0x77, - 0x77, - 0x7C, - 0x80, - 0xB7, - 0xE0, - 0xE5, - 0xE5, - 0xE6, - 0xE6, - 0xBE, - 0xFF, - 0x80, - 0x77, - 0x75, - 0x04, - 0x74, - 0x00, - 0xB2, - 0x68, - 0x64, - 0x5E, - 0x39, - 0xB6, - 0xF4, - 0xF4, - 0xCC, - 0xE6, - 0xCF, - 0xCF, - 0xCF, - 0xDC, - 0xF5, - 0xFA, - 0xEC, - 0xC0, - 0xA5, - 0x7E, - 0x75, - 0x7F, - 0x84, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x74, - 0x4E, - 0x5C, - 0x08, - 0xFE, - 0xFE, - 0xCF, - 0xFE, - 0xD1, - 0xEA, - 0xD1, - 0xC0, - 0xEA, - 0xFA, - 0xD3, - 0x29, - 0xA5, - 0x8D, - 0x88, - 0x97, - 0x95, - 0x95, - 0x95, - 0x91, - 0xB4, - 0xD4, - 0xD4, - 0xDA, - 0xE3, - 0xE9, - 0xF5, - 0x07, - 0x07, - 0x08, - 0x0C, - 0x1D, - 0x39, - 0x19, - 0x0C, - 0x74, - 0xA0, - 0x6B, - 0x21, - 0x2A, - 0x25, - 0x32, - 0x30, - 0x46, - 0x4D, - 0x72, - 0x95, - 0xAA, - 0xAA, - 0xAD, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAE, - 0xA9, - 0x7F, - 0x7F, - 0x74, - 0x74, - 0x7F, - 0x90, - 0x97, - 0xA1, - 0xA9, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB1, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB0, - 0x93, - 0x83, - 0x4E, - 0x85, - 0xD8, - 0xD8, - 0xBB, - 0x34, - 0x60, - 0x33, - 0x33, - 0x31, - 0x6B, - 0x9B, - 0x7D, - 0x39, - 0x58, - 0x58, - 0x1D, - 0x2B, - 0x1D, - 0x67, - 0x06, - 0x1D, - 0x00, - 0x15, - 0x67, - 0x5A, - 0x67, - 0x5A, - 0x5A, - 0x5A, - 0x67, - 0x2B, - 0x76, - 0x5A, - 0x2C, - 0x4A, - 0x55, - 0x4B, - 0x3E, - 0x62, - 0x55, - 0x62, - 0x55, - 0x55, - 0x55, - 0x00, - 0x04, - 0x62, - 0x04, - 0x69, - 0x00, - 0x18, - 0x71, - 0x70, - 0x70, - 0x71, - 0x66, - 0x71, - 0x71, - 0x87, - 0x87, - 0x71, - 0x63, - 0x2D, - 0x58, - 0x39, - 0x5C, - 0x7C, - 0x7C, - 0x48, - 0x49, - 0x62, - 0x87, - 0x87, - 0x71, - 0x71, - 0x04, - 0x70, - 0x01, - 0x66, - 0x07, - 0x70, - 0x00, - 0x23, - 0x54, - 0x54, - 0x42, - 0x70, - 0x63, - 0x70, - 0x71, - 0x63, - 0x63, - 0x63, - 0x54, - 0x54, - 0x42, - 0x6F, - 0x54, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x54, - 0x41, - 0x41, - 0x54, - 0x2E, - 0x24, - 0x19, - 0x39, - 0x6B, - 0x90, - 0xA0, - 0x9F, - 0x9B, - 0xA6, - 0x97, - 0x7D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x23, - 0xDE, - 0xE5, - 0xDE, - 0xDE, - 0xDE, - 0xE5, - 0xE6, - 0xE5, - 0xE6, - 0xDC, - 0xE5, - 0xF0, - 0xE6, - 0xE5, - 0xDE, - 0xDE, - 0xE0, - 0xCC, - 0xE6, - 0xDD, - 0xF0, - 0xE5, - 0xDD, - 0xCB, - 0xDD, - 0xE5, - 0xC9, - 0xE6, - 0xE5, - 0xE6, - 0xF5, - 0xD1, - 0xA5, - 0x8D, - 0x75, - 0x00, - 0x04, - 0x74, - 0x00, - 0x22, - 0x6A, - 0x68, - 0x5B, - 0x5C, - 0x3D, - 0xFE, - 0xFC, - 0xE6, - 0xE6, - 0xD0, - 0xCF, - 0xD0, - 0xFA, - 0xF9, - 0xF9, - 0xFA, - 0xF5, - 0xFF, - 0x76, - 0x7B, - 0x7F, - 0x90, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x7F, - 0x64, - 0x56, - 0x19, - 0xB6, - 0xFE, - 0xFE, - 0xFA, - 0x04, - 0xD1, - 0x00, - 0x0A, - 0xD3, - 0xD1, - 0xF9, - 0x04, - 0xFF, - 0x80, - 0x7B, - 0x97, - 0x97, - 0xDA, - 0x05, - 0xD4, - 0x00, - 0x15, - 0xD6, - 0xDF, - 0xE7, - 0xFB, - 0x08, - 0x1C, - 0x19, - 0x19, - 0x2A, - 0x91, - 0x90, - 0x21, - 0x21, - 0x38, - 0x38, - 0x30, - 0x32, - 0x46, - 0x51, - 0x83, - 0xA9, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x2C, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xAC, - 0xAC, - 0xB3, - 0xA9, - 0x90, - 0x74, - 0x6A, - 0x74, - 0x6A, - 0x74, - 0x74, - 0x73, - 0x7F, - 0x90, - 0xA1, - 0xA9, - 0xB1, - 0xB1, - 0x04, - 0xB3, - 0x01, - 0xAE, - 0x01, - 0xB1, - 0x04, - 0xB3, - 0x00, - 0x0A, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0x04, - 0xB3, - 0x00, - 0x1F, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAA, - 0x8C, - 0x75, - 0x3C, - 0x3C, - 0x56, - 0x2A, - 0x32, - 0x34, - 0x33, - 0x2A, - 0x21, - 0x96, - 0xA1, - 0x33, - 0x58, - 0x1F, - 0x39, - 0x58, - 0x67, - 0x67, - 0x58, - 0x67, - 0x67, - 0x1D, - 0x00, - 0x06, - 0x67, - 0x00, - 0x37, - 0x5A, - 0x5A, - 0x67, - 0x2B, - 0x5A, - 0x4A, - 0x4A, - 0x2C, - 0x4A, - 0x61, - 0x61, - 0x55, - 0x55, - 0x62, - 0x63, - 0x3E, - 0x3E, - 0x70, - 0x62, - 0x62, - 0x6F, - 0x70, - 0x63, - 0x63, - 0x69, - 0x69, - 0x69, - 0xBB, - 0x71, - 0x71, - 0x87, - 0x70, - 0x62, - 0x49, - 0x13, - 0x58, - 0x80, - 0x75, - 0x90, - 0xA1, - 0x9F, - 0x9B, - 0x9B, - 0x96, - 0x94, - 0x65, - 0x61, - 0x4B, - 0x63, - 0x87, - 0x71, - 0x71, - 0x71, - 0x66, - 0x66, - 0x00, - 0x08, - 0x70, - 0x00, - 0x22, - 0x42, - 0x70, - 0x54, - 0x42, - 0x42, - 0x70, - 0x70, - 0x70, - 0x71, - 0x69, - 0x63, - 0x6F, - 0x42, - 0x41, - 0x6F, - 0x54, - 0x41, - 0x54, - 0x54, - 0x27, - 0x2C, - 0x1D, - 0x50, - 0x77, - 0x90, - 0x96, - 0x9F, - 0x9B, - 0xA6, - 0x97, - 0x7D, - 0x54, - 0x2E, - 0x2E, - 0x00, - 0x00, - 0x06, - 0xE5, - 0x00, - 0x2D, - 0xDE, - 0xE5, - 0xDE, - 0xE5, - 0xDE, - 0xDC, - 0xE6, - 0xDE, - 0xE5, - 0xE5, - 0xDC, - 0xE5, - 0xE0, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xEA, - 0xDC, - 0xDC, - 0xDD, - 0xCB, - 0xE6, - 0xE6, - 0xCC, - 0xE0, - 0xE0, - 0xD0, - 0x81, - 0x80, - 0x7B, - 0x74, - 0x7F, - 0x7F, - 0x74, - 0x74, - 0x74, - 0x64, - 0x56, - 0x39, - 0xB6, - 0xCF, - 0xF4, - 0xCF, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x17, - 0xFA, - 0xF5, - 0xF9, - 0xF9, - 0xC0, - 0x67, - 0x8D, - 0x88, - 0x90, - 0x91, - 0x91, - 0x84, - 0x84, - 0x7F, - 0x74, - 0x77, - 0x4F, - 0x04, - 0xFE, - 0xFE, - 0xFA, - 0xD3, - 0xD3, - 0x00, - 0x04, - 0x29, - 0x00, - 0x09, - 0x04, - 0x04, - 0x1A, - 0xEE, - 0xD5, - 0xD5, - 0xD5, - 0xD4, - 0xD5, - 0x00, - 0x04, - 0xD4, - 0x00, - 0x11, - 0xD6, - 0xDA, - 0xE4, - 0x1D, - 0x1B, - 0x7B, - 0x9F, - 0x77, - 0x21, - 0x2A, - 0x2A, - 0x30, - 0x32, - 0x3A, - 0x46, - 0x5D, - 0x91, - 0x00, - 0x05, - 0xAA, - 0x01, - 0xB0, - 0x04, - 0xAA, - 0x00, - 0x2D, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB1, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xB3, - 0xA7, - 0x90, - 0x74, - 0x6A, - 0x6A, - 0x68, - 0x74, - 0x6A, - 0x6A, - 0x6A, - 0x83, - 0x73, - 0x8B, - 0x91, - 0xB0, - 0xAE, - 0xB3, - 0xB1, - 0xB1, - 0xB1, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x3D, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xA4, - 0x68, - 0x4E, - 0x3F, - 0x56, - 0x52, - 0x34, - 0x5C, - 0x2A, - 0x1B, - 0x7F, - 0xA2, - 0x65, - 0x1F, - 0x48, - 0x58, - 0x2B, - 0x58, - 0x1D, - 0x1D, - 0x67, - 0x1D, - 0x1D, - 0x67, - 0x76, - 0x67, - 0x5A, - 0x5A, - 0x67, - 0x67, - 0x67, - 0x76, - 0x67, - 0x76, - 0x4A, - 0x4A, - 0x2C, - 0x4A, - 0x2D, - 0x00, - 0x04, - 0x61, - 0x00, - 0x2C, - 0x55, - 0x62, - 0x63, - 0x63, - 0x63, - 0x62, - 0x6F, - 0x70, - 0x63, - 0x70, - 0x70, - 0x63, - 0x71, - 0x69, - 0x87, - 0x2F, - 0x55, - 0x2B, - 0x39, - 0x5C, - 0x7B, - 0x90, - 0x95, - 0x9B, - 0x9B, - 0x9B, - 0xA2, - 0xA6, - 0x9B, - 0x9B, - 0xA6, - 0x9B, - 0x9B, - 0xA4, - 0x90, - 0x65, - 0x49, - 0x49, - 0x41, - 0x70, - 0x87, - 0x66, - 0x71, - 0x71, - 0x04, - 0x70, - 0x00, - 0x05, - 0x54, - 0x54, - 0x70, - 0x70, - 0x70, - 0x00, - 0x04, - 0x54, - 0x00, - 0x1B, - 0x70, - 0x42, - 0x63, - 0x70, - 0x63, - 0x42, - 0x54, - 0x71, - 0x54, - 0x41, - 0x2C, - 0x39, - 0x39, - 0x77, - 0x90, - 0xA0, - 0x9B, - 0x9F, - 0x9F, - 0x97, - 0x7D, - 0x66, - 0x40, - 0x40, - 0x41, - 0x41, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0x22, - 0xF2, - 0xF6, - 0x00, - 0x07, - 0xDE, - 0x00, - 0x20, - 0xF7, - 0xDE, - 0xDE, - 0xDE, - 0xE2, - 0xDE, - 0xE6, - 0xE6, - 0xDE, - 0xDE, - 0xDE, - 0xE0, - 0xDE, - 0xDE, - 0xE5, - 0xE6, - 0xF0, - 0xE6, - 0xDC, - 0xF0, - 0xDD, - 0xCB, - 0xDD, - 0xE6, - 0xCC, - 0xC9, - 0xF4, - 0xD0, - 0xC0, - 0x89, - 0x8D, - 0x75, - 0x04, - 0x7F, - 0x00, - 0x08, - 0x74, - 0x68, - 0x4E, - 0x5C, - 0x1A, - 0xFE, - 0xF4, - 0xFA, - 0x04, - 0xD0, - 0x00, - 0x20, - 0xD1, - 0xD1, - 0xFA, - 0xFE, - 0xFA, - 0x81, - 0x6E, - 0x7B, - 0x90, - 0x91, - 0x91, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x64, - 0x56, - 0x39, - 0x04, - 0xFE, - 0xFA, - 0xD3, - 0xF9, - 0x29, - 0x29, - 0xC0, - 0x04, - 0xFB, - 0xE4, - 0xC6, - 0xD5, - 0xD2, - 0x07, - 0xD5, - 0x00, - 0x0F, - 0xD7, - 0x1D, - 0x21, - 0x90, - 0x95, - 0x2A, - 0x21, - 0x2A, - 0x30, - 0x2A, - 0x32, - 0x4D, - 0x51, - 0x83, - 0xA6, - 0x00, - 0x07, - 0xAA, - 0x00, - 0x23, - 0xB0, - 0xAA, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB3, - 0x97, - 0x73, - 0x6A, - 0x68, - 0x68, - 0x74, - 0x68, - 0x00, - 0x04, - 0x6A, - 0x00, - 0x18, - 0x83, - 0x8B, - 0x95, - 0xB0, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0x04, - 0xB1, - 0x00, - 0x1D, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xA9, - 0x6A, - 0x4E, - 0x3C, - 0x56, - 0x3F, - 0x60, - 0x2A, - 0x21, - 0x5E, - 0x9B, - 0x94, - 0x39, - 0x24, - 0x1F, - 0x2B, - 0x2B, - 0x67, - 0x2B, - 0x2B, - 0x67, - 0x1D, - 0x00, - 0x04, - 0x67, - 0x00, - 0x30, - 0x5A, - 0x76, - 0x5A, - 0x18, - 0x67, - 0x5A, - 0x5A, - 0x76, - 0x2C, - 0x2C, - 0x4A, - 0x61, - 0x4B, - 0x4B, - 0x2E, - 0x2E, - 0x55, - 0x41, - 0x55, - 0x6F, - 0x62, - 0x62, - 0x6F, - 0x62, - 0x71, - 0x63, - 0x70, - 0x43, - 0x6F, - 0x2D, - 0x2B, - 0x58, - 0x8D, - 0x7B, - 0x90, - 0x95, - 0x9B, - 0x9B, - 0x9B, - 0xA2, - 0xA7, - 0xA3, - 0x8E, - 0x85, - 0x7D, - 0x98, - 0xA7, - 0xA6, - 0x04, - 0x9B, - 0x00, - 0x08, - 0x9F, - 0xA1, - 0x94, - 0x7B, - 0x61, - 0x2D, - 0x6E, - 0x70, - 0x04, - 0x71, - 0x00, - 0x03, - 0x66, - 0x70, - 0x42, - 0x00, - 0x04, - 0x70, - 0x00, - 0x03, - 0x54, - 0x70, - 0x70, - 0x00, - 0x04, - 0x54, - 0x00, - 0x12, - 0x70, - 0x54, - 0x2F, - 0x14, - 0x39, - 0x5C, - 0x77, - 0x90, - 0xA0, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7D, - 0x66, - 0x41, - 0x41, - 0x37, - 0x05, - 0x41, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x3C, - 0x5F, - 0x4F, - 0x3D, - 0x86, - 0x86, - 0x86, - 0x08, - 0x86, - 0x3D, - 0x86, - 0x1C, - 0x86, - 0x00, - 0x08, - 0x3D, - 0x01, - 0x1A, - 0x05, - 0x3D, - 0x00, - 0x12, - 0x19, - 0x81, - 0x04, - 0xE6, - 0xE5, - 0xDD, - 0xCC, - 0xE6, - 0xCF, - 0xE6, - 0xCF, - 0xCC, - 0xF4, - 0xE6, - 0xD0, - 0xA5, - 0x8D, - 0x77, - 0x06, - 0x7F, - 0x00, - 0x64, - 0x64, - 0x56, - 0x50, - 0x04, - 0xFC, - 0xFE, - 0xCF, - 0xFA, - 0xD0, - 0xD0, - 0xD3, - 0xD0, - 0xF9, - 0xEA, - 0xFA, - 0xC0, - 0xB2, - 0x7C, - 0x8E, - 0x84, - 0x91, - 0x8C, - 0x8C, - 0x84, - 0x7F, - 0x74, - 0x6B, - 0x4F, - 0x29, - 0x07, - 0xFA, - 0xD3, - 0x29, - 0x29, - 0xF5, - 0x29, - 0x29, - 0xDB, - 0xE8, - 0xD9, - 0xD8, - 0xD5, - 0xD2, - 0xD5, - 0xD5, - 0xD5, - 0x4C, - 0x0C, - 0x4E, - 0x93, - 0x88, - 0x21, - 0x2A, - 0x2A, - 0x2A, - 0x3A, - 0x3A, - 0x4D, - 0x5D, - 0x84, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xAC, - 0xB1, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xB0, - 0xAE, - 0x90, - 0x74, - 0x68, - 0x6A, - 0x04, - 0x68, - 0x00, - 0x10, - 0x6A, - 0x72, - 0x83, - 0x8B, - 0x95, - 0xAA, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0x05, - 0xB3, - 0x01, - 0xAE, - 0x01, - 0xB1, - 0x04, - 0xB3, - 0x00, - 0x23, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xAD, - 0x74, - 0x5B, - 0x3C, - 0x56, - 0x56, - 0x32, - 0x21, - 0x21, - 0x96, - 0xA7, - 0x34, - 0x19, - 0x08, - 0x08, - 0x19, - 0x2B, - 0x76, - 0x13, - 0x67, - 0x5A, - 0x67, - 0x67, - 0x2B, - 0x00, - 0x04, - 0x67, - 0x00, - 0x40, - 0x76, - 0x2B, - 0x2B, - 0x4A, - 0x5A, - 0x4A, - 0x4A, - 0x4A, - 0x49, - 0x2D, - 0x61, - 0x61, - 0x2E, - 0x55, - 0x62, - 0x55, - 0x62, - 0x62, - 0x62, - 0x42, - 0x70, - 0x70, - 0x62, - 0x40, - 0x13, - 0x58, - 0x60, - 0x77, - 0x88, - 0x91, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA4, - 0xA3, - 0x98, - 0x7D, - 0x71, - 0x70, - 0x70, - 0x66, - 0x66, - 0x70, - 0x43, - 0x7D, - 0x98, - 0xA1, - 0xA6, - 0x9B, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0xA4, - 0x94, - 0x7B, - 0x49, - 0x49, - 0x41, - 0x54, - 0x71, - 0x71, - 0x66, - 0x04, - 0x54, - 0x01, - 0x42, - 0x05, - 0x70, - 0x00, - 0x12, - 0x54, - 0x27, - 0x58, - 0x39, - 0x5C, - 0x77, - 0x90, - 0x9F, - 0x9B, - 0x9F, - 0xA6, - 0x97, - 0x85, - 0x66, - 0x41, - 0x2E, - 0x41, - 0x54, - 0x05, - 0x41, - 0x01, - 0x40, - 0x01, - 0x11, - 0x00, - 0x00, - 0x00, - 0x07, - 0x64, - 0x64, - 0x4E, - 0x5B, - 0x4E, - 0x4E, - 0x4E, - 0x00, - 0x0C, - 0x64, - 0x00, - 0x6E, - 0x68, - 0x68, - 0x64, - 0x68, - 0x68, - 0x64, - 0x68, - 0x68, - 0x75, - 0x68, - 0x64, - 0x5E, - 0x4F, - 0x1A, - 0xFC, - 0xF2, - 0xE0, - 0xE6, - 0xD0, - 0xDC, - 0xCF, - 0xCF, - 0xCF, - 0xCC, - 0xF4, - 0xD0, - 0x81, - 0x89, - 0x77, - 0x88, - 0x7F, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x74, - 0x77, - 0x5C, - 0x3D, - 0xFA, - 0xFE, - 0xFA, - 0xD0, - 0xD0, - 0xD3, - 0xD1, - 0xD3, - 0xEA, - 0xF5, - 0xF9, - 0xFB, - 0x67, - 0x8D, - 0x7B, - 0x90, - 0x91, - 0x95, - 0x8C, - 0x91, - 0x84, - 0x7F, - 0x64, - 0x56, - 0x19, - 0x07, - 0xFA, - 0xFE, - 0x03, - 0x04, - 0x08, - 0x29, - 0x05, - 0x06, - 0xE1, - 0xD9, - 0xD7, - 0xD5, - 0xD5, - 0x1F, - 0x1B, - 0x90, - 0x96, - 0x3F, - 0x21, - 0x33, - 0x32, - 0x30, - 0x32, - 0x32, - 0x51, - 0x72, - 0xA4, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0x04, - 0xAC, - 0x00, - 0x11, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xB1, - 0xB1, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB0, - 0x7F, - 0x74, - 0x6A, - 0x00, - 0x05, - 0x68, - 0x00, - 0x15, - 0x72, - 0x73, - 0x8B, - 0x91, - 0xAA, - 0xB1, - 0xB1, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x04, - 0xB1, - 0x00, - 0x7C, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB3, - 0xA9, - 0x68, - 0x4E, - 0x3C, - 0x32, - 0x32, - 0x33, - 0x23, - 0x88, - 0xA2, - 0x59, - 0x0C, - 0xE1, - 0xD6, - 0xD9, - 0xEE, - 0x08, - 0x08, - 0x05, - 0x67, - 0x13, - 0x5A, - 0x5A, - 0x5A, - 0x2B, - 0x18, - 0x67, - 0x5A, - 0x2B, - 0x67, - 0x76, - 0x76, - 0x4A, - 0x3E, - 0x4B, - 0x55, - 0x4B, - 0x61, - 0x2D, - 0x40, - 0x2E, - 0x6F, - 0x55, - 0x62, - 0x70, - 0x42, - 0x6F, - 0x61, - 0x2C, - 0x1D, - 0x33, - 0x6D, - 0x88, - 0x97, - 0xA0, - 0x9B, - 0x9B, - 0xA2, - 0xA6, - 0xA3, - 0x98, - 0x7D, - 0x71, - 0x70, - 0x70, - 0x71, - 0x71, - 0x59, - 0x71, - 0x66, - 0x71, - 0x66, - 0x66, - 0x66, - 0x70, - 0x70, - 0x7D, - 0x8E, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0x9B, - 0x9F, - 0x96, - 0x88, - 0x7B, - 0x7E, - 0x48, - 0x6E, - 0x54, - 0x70, - 0x54, - 0x70, - 0x54, - 0x54, - 0x70, - 0x3B, - 0x70, - 0x41, - 0x2B, - 0x39, - 0x5C, - 0x7B, - 0x90, - 0x9F, - 0x9B, - 0x9B, - 0xA6, - 0x94, - 0x7D, - 0x66, - 0x62, - 0x41, - 0x42, - 0x04, - 0x54, - 0x00, - 0x07, - 0x53, - 0x40, - 0x13, - 0x39, - 0x19, - 0x5C, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x81, - 0x80, - 0x6B, - 0x64, - 0x64, - 0x64, - 0x75, - 0x64, - 0x75, - 0x64, - 0x75, - 0x68, - 0x75, - 0x64, - 0x68, - 0x75, - 0x68, - 0x75, - 0x68, - 0x75, - 0x75, - 0x68, - 0x74, - 0x88, - 0x08, - 0x74, - 0x00, - 0x2D, - 0x68, - 0x64, - 0x5F, - 0x50, - 0x04, - 0xF4, - 0xF2, - 0xE6, - 0xD0, - 0xDC, - 0xD0, - 0xD0, - 0xCF, - 0xCF, - 0xF4, - 0xF4, - 0xD3, - 0xA5, - 0x8D, - 0x75, - 0x90, - 0x84, - 0x84, - 0x7F, - 0x7F, - 0x7F, - 0x64, - 0x6D, - 0x79, - 0x04, - 0xFE, - 0xFE, - 0xD0, - 0xD1, - 0xD3, - 0xD3, - 0xC0, - 0xF5, - 0xFA, - 0xFA, - 0xD3, - 0xFF, - 0x60, - 0x7C, - 0x88, - 0x00, - 0x05, - 0x91, - 0x00, - 0x43, - 0x90, - 0x75, - 0xE3, - 0xDF, - 0xEB, - 0xF1, - 0xE6, - 0x07, - 0x07, - 0x08, - 0x01, - 0x06, - 0x06, - 0xE1, - 0x4C, - 0x19, - 0x56, - 0xA0, - 0x90, - 0x21, - 0x2A, - 0x32, - 0x2A, - 0x32, - 0x3C, - 0x46, - 0x5D, - 0x84, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB1, - 0xB0, - 0xAE, - 0xB0, - 0xAC, - 0xAE, - 0xB0, - 0x7F, - 0x74, - 0x00, - 0x04, - 0x68, - 0x00, - 0x0F, - 0x5D, - 0x72, - 0x83, - 0x83, - 0x8F, - 0xAA, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0x00, - 0x06, - 0xB3, - 0x00, - 0x66, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xA3, - 0x68, - 0x4E, - 0x3C, - 0x56, - 0x56, - 0x21, - 0x3C, - 0xA2, - 0x94, - 0x21, - 0x0A, - 0xD5, - 0xD2, - 0xD2, - 0xD5, - 0xD4, - 0xD9, - 0xEE, - 0x05, - 0x04, - 0x05, - 0x67, - 0x2B, - 0x18, - 0x76, - 0x0E, - 0x55, - 0x5A, - 0x4A, - 0x5A, - 0x76, - 0x5A, - 0x4A, - 0x61, - 0x55, - 0x61, - 0x2D, - 0x61, - 0x2E, - 0x62, - 0x62, - 0x41, - 0x61, - 0x13, - 0x1D, - 0x58, - 0x6D, - 0x7D, - 0x94, - 0xA6, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA1, - 0x98, - 0x85, - 0x59, - 0x71, - 0x71, - 0x87, - 0x71, - 0x42, - 0x41, - 0x2C, - 0x48, - 0x49, - 0x6F, - 0x66, - 0x87, - 0x59, - 0x71, - 0x71, - 0x66, - 0x66, - 0x66, - 0x70, - 0x66, - 0x87, - 0x98, - 0xA1, - 0xA6, - 0x05, - 0x9B, - 0x00, - 0x27, - 0xA4, - 0x8E, - 0x7B, - 0x48, - 0x2C, - 0x3E, - 0x63, - 0x70, - 0x70, - 0x40, - 0x2B, - 0x39, - 0x5F, - 0x7B, - 0x90, - 0x9F, - 0x9B, - 0x9B, - 0xA6, - 0x94, - 0x7D, - 0x66, - 0x53, - 0x41, - 0x6F, - 0x54, - 0x70, - 0x70, - 0x42, - 0x2F, - 0x2C, - 0x1D, - 0x19, - 0x5C, - 0x77, - 0x74, - 0x91, - 0x9A, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1F, - 0xDE, - 0xE5, - 0xDC, - 0xBE, - 0xB7, - 0xB7, - 0xB7, - 0xC4, - 0x81, - 0xC0, - 0xFF, - 0xB7, - 0x81, - 0x81, - 0xC0, - 0x92, - 0xC0, - 0x81, - 0xC0, - 0x81, - 0x92, - 0xC0, - 0x81, - 0x81, - 0x81, - 0xC0, - 0x92, - 0xC0, - 0x67, - 0x8D, - 0x77, - 0x00, - 0x05, - 0x74, - 0x00, - 0x14, - 0x68, - 0x6B, - 0x5C, - 0x3D, - 0xB6, - 0xF4, - 0xE6, - 0xE6, - 0xCF, - 0xDC, - 0xD1, - 0xD0, - 0xCF, - 0xE6, - 0xFA, - 0xFA, - 0x81, - 0x7E, - 0x77, - 0x88, - 0x04, - 0x84, - 0x00, - 0x09, - 0x7F, - 0x74, - 0x77, - 0x5C, - 0x19, - 0x05, - 0xF9, - 0xFA, - 0xF5, - 0x00, - 0x04, - 0xD3, - 0x00, - 0x25, - 0xD1, - 0xF9, - 0x04, - 0xC0, - 0x89, - 0x7C, - 0x88, - 0x90, - 0x95, - 0x8F, - 0x98, - 0xD4, - 0xD4, - 0xD4, - 0xD6, - 0xDA, - 0xE7, - 0xE9, - 0xF5, - 0x07, - 0x08, - 0x19, - 0x1D, - 0x1F, - 0x09, - 0x88, - 0xA0, - 0x56, - 0x21, - 0x2A, - 0x38, - 0x2A, - 0x3A, - 0x32, - 0x51, - 0x72, - 0xA4, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x3B, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xAC, - 0xB0, - 0xAE, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xB0, - 0xAC, - 0xAC, - 0xB3, - 0xA7, - 0x74, - 0x6A, - 0x6A, - 0x68, - 0x68, - 0x72, - 0x6A, - 0x72, - 0x8B, - 0x8C, - 0xAA, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x0A, - 0xB1, - 0xB1, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0x04, - 0xB3, - 0x00, - 0x0C, - 0x7F, - 0x64, - 0x4E, - 0x3C, - 0x56, - 0x32, - 0x38, - 0x91, - 0xA6, - 0x35, - 0x19, - 0xD6, - 0x07, - 0xD2, - 0x00, - 0x1C, - 0xD4, - 0xD9, - 0xE8, - 0x06, - 0x67, - 0x2B, - 0x76, - 0x4B, - 0x4B, - 0x5A, - 0x4B, - 0x4A, - 0x0B, - 0x61, - 0x2C, - 0x61, - 0x49, - 0x61, - 0x40, - 0x40, - 0x15, - 0x14, - 0x2B, - 0x48, - 0x60, - 0x7B, - 0x90, - 0xA4, - 0x04, - 0xA2, - 0x00, - 0x16, - 0xA7, - 0xA3, - 0x98, - 0x59, - 0x70, - 0x43, - 0x66, - 0x70, - 0x54, - 0x4B, - 0x2C, - 0x48, - 0x8D, - 0x77, - 0x75, - 0x94, - 0x94, - 0x6C, - 0x53, - 0x49, - 0x55, - 0x66, - 0x04, - 0x71, - 0x00, - 0x32, - 0x66, - 0x66, - 0x66, - 0x70, - 0x70, - 0x85, - 0x98, - 0xA3, - 0xA6, - 0x9B, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0x96, - 0x88, - 0x7B, - 0x52, - 0x2C, - 0x48, - 0x8D, - 0x75, - 0x90, - 0x9F, - 0x9B, - 0x9B, - 0xA4, - 0x94, - 0x85, - 0x66, - 0x41, - 0x41, - 0x41, - 0x70, - 0x54, - 0x54, - 0x40, - 0x11, - 0x39, - 0x58, - 0x5F, - 0x77, - 0x88, - 0x91, - 0x9F, - 0x9F, - 0x9B, - 0x9B, - 0xA1, - 0x94, - 0x00, - 0x00, - 0x00, - 0x3C, - 0xF0, - 0xDD, - 0xF0, - 0xE5, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xE5, - 0xE5, - 0xF0, - 0xF0, - 0xDD, - 0xE6, - 0xDE, - 0xDE, - 0xDE, - 0xE5, - 0xE0, - 0xE5, - 0xE5, - 0xDE, - 0xE6, - 0xE6, - 0xC9, - 0xF4, - 0xE6, - 0xCC, - 0xF4, - 0xF4, - 0xCC, - 0xB7, - 0x80, - 0x7B, - 0x75, - 0x74, - 0x7F, - 0x73, - 0x74, - 0x74, - 0x64, - 0x5E, - 0x50, - 0x86, - 0xC1, - 0xF4, - 0xF5, - 0xEA, - 0xD0, - 0xD1, - 0xD0, - 0xD0, - 0xD0, - 0xFE, - 0xFA, - 0xD1, - 0xA5, - 0x7C, - 0x75, - 0x90, - 0x04, - 0x84, - 0x00, - 0x14, - 0x7F, - 0x75, - 0x5E, - 0x79, - 0x05, - 0x04, - 0xEA, - 0xF5, - 0x29, - 0x29, - 0xD3, - 0xD1, - 0x29, - 0xF9, - 0xF5, - 0x29, - 0x81, - 0x7E, - 0x7B, - 0xD6, - 0x06, - 0xD5, - 0x00, - 0x13, - 0xD4, - 0xD6, - 0xDF, - 0xEE, - 0xFB, - 0x19, - 0x0C, - 0x33, - 0x95, - 0x97, - 0x21, - 0x21, - 0x2A, - 0x2A, - 0x3A, - 0x32, - 0x46, - 0x51, - 0x9E, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x32, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xAC, - 0xB0, - 0xB1, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAE, - 0xA7, - 0x94, - 0x74, - 0x75, - 0x74, - 0x68, - 0x5D, - 0x83, - 0x8B, - 0x91, - 0xAA, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0x08, - 0xB3, - 0x00, - 0x09, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0x00, - 0x06, - 0xB3, - 0x01, - 0xAE, - 0x05, - 0xB3, - 0x00, - 0x0C, - 0xA7, - 0x68, - 0x64, - 0x4E, - 0x3C, - 0x32, - 0x21, - 0x74, - 0xA2, - 0x6C, - 0x21, - 0x3E, - 0x0B, - 0xD2, - 0x00, - 0x2B, - 0xD7, - 0x58, - 0x1D, - 0x1D, - 0x67, - 0x76, - 0x4A, - 0x61, - 0x61, - 0x3E, - 0x2D, - 0x55, - 0x2E, - 0x14, - 0x1F, - 0x1D, - 0x58, - 0x60, - 0x77, - 0x88, - 0x96, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA7, - 0xA3, - 0x85, - 0x71, - 0x63, - 0x69, - 0x69, - 0x71, - 0x63, - 0x61, - 0x2B, - 0x48, - 0x5F, - 0x77, - 0x88, - 0x95, - 0x9B, - 0x9B, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x08, - 0xA6, - 0x97, - 0x7B, - 0x7C, - 0x61, - 0x41, - 0x70, - 0x66, - 0x05, - 0x71, - 0x00, - 0x2D, - 0x54, - 0x42, - 0x66, - 0x59, - 0x98, - 0xA3, - 0xA6, - 0x9B, - 0xA6, - 0x9B, - 0x9B, - 0x9B, - 0xA0, - 0x90, - 0x95, - 0x9B, - 0x9B, - 0xA2, - 0xA1, - 0x94, - 0x7D, - 0x54, - 0x41, - 0x41, - 0x54, - 0x54, - 0x54, - 0x40, - 0x24, - 0x1F, - 0x48, - 0x80, - 0x6B, - 0x88, - 0x95, - 0x9F, - 0x9F, - 0x9B, - 0x9F, - 0xA1, - 0x97, - 0x8E, - 0x66, - 0x41, - 0x27, - 0x00, - 0x00, - 0x00, - 0x01, - 0xDE, - 0x04, - 0xF0, - 0x00, - 0x10, - 0xCB, - 0xE6, - 0xE5, - 0xCB, - 0xE6, - 0xE5, - 0xE6, - 0xDD, - 0xE6, - 0xE5, - 0xE5, - 0xF0, - 0xEA, - 0xF0, - 0xC9, - 0xCC, - 0x04, - 0xE6, - 0x00, - 0x3D, - 0xDC, - 0xDC, - 0xE6, - 0xDC, - 0xE6, - 0xDC, - 0xF4, - 0xE0, - 0xE6, - 0xD3, - 0xA5, - 0x7C, - 0x7B, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x74, - 0x4E, - 0x5C, - 0x31, - 0xF9, - 0xFE, - 0xDD, - 0xF9, - 0xEA, - 0xF5, - 0xD1, - 0xD0, - 0xD3, - 0xFA, - 0xFE, - 0xFA, - 0xFF, - 0x8D, - 0x7B, - 0x88, - 0x84, - 0x91, - 0x84, - 0x84, - 0x84, - 0x74, - 0x77, - 0x56, - 0x39, - 0x05, - 0xFA, - 0xFA, - 0xC0, - 0x29, - 0x29, - 0x29, - 0xD1, - 0x29, - 0x04, - 0xF9, - 0xDA, - 0xD5, - 0xD2, - 0x00, - 0x08, - 0xD5, - 0x00, - 0x44, - 0xD4, - 0x0E, - 0x19, - 0x75, - 0xA0, - 0x6B, - 0x21, - 0x2A, - 0x2A, - 0x2A, - 0x32, - 0x32, - 0x4D, - 0x72, - 0xA4, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xAE, - 0xB3, - 0x97, - 0x74, - 0x74, - 0x88, - 0x75, - 0x68, - 0x83, - 0x83, - 0x8C, - 0xAA, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0x05, - 0xB3, - 0x00, - 0x0A, - 0xB1, - 0xB3, - 0xB1, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xAE, - 0x06, - 0xB3, - 0x00, - 0x18, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xAD, - 0x74, - 0x75, - 0x6C, - 0x4E, - 0x3F, - 0x32, - 0x4D, - 0xA6, - 0xA3, - 0x33, - 0x33, - 0x48, - 0x3E, - 0xD9, - 0xD7, - 0x08, - 0xD2, - 0x00, - 0x25, - 0xAA, - 0xA6, - 0x94, - 0x65, - 0x48, - 0x1D, - 0x1D, - 0x2B, - 0x2C, - 0x2C, - 0x67, - 0x06, - 0x39, - 0x5C, - 0x6D, - 0x88, - 0x91, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA4, - 0xA3, - 0x98, - 0x87, - 0x63, - 0x63, - 0x71, - 0x66, - 0x62, - 0x2D, - 0x2B, - 0x48, - 0x5F, - 0x77, - 0x88, - 0x95, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x12, - 0xA4, - 0xA3, - 0xA3, - 0xA4, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7B, - 0x53, - 0x7E, - 0x40, - 0x70, - 0x59, - 0x71, - 0x04, - 0x66, - 0x00, - 0x07, - 0x70, - 0x54, - 0x54, - 0x59, - 0x8E, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x1F, - 0xA6, - 0xA1, - 0x94, - 0x7D, - 0x42, - 0x54, - 0x42, - 0x66, - 0x70, - 0x53, - 0x49, - 0x1F, - 0x58, - 0x5C, - 0x6B, - 0x88, - 0x91, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0xA4, - 0x97, - 0x8E, - 0x66, - 0x53, - 0x62, - 0x2F, - 0x41, - 0x63, - 0x63, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x22, - 0xFE, - 0xF2, - 0xE2, - 0xE5, - 0xE5, - 0x04, - 0xF0, - 0x01, - 0xCB, - 0x05, - 0xDE, - 0x00, - 0x05, - 0xE5, - 0xDD, - 0xF0, - 0xE2, - 0xF7, - 0x00, - 0x04, - 0xF2, - 0x00, - 0x11, - 0xF4, - 0xFC, - 0xF4, - 0xE5, - 0xE6, - 0xDC, - 0xDC, - 0xCF, - 0xE6, - 0xCC, - 0xF4, - 0xF4, - 0xCF, - 0xFF, - 0x80, - 0x77, - 0x75, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x2B, - 0x74, - 0x68, - 0x5E, - 0x4F, - 0x29, - 0xD3, - 0xFA, - 0xEA, - 0xFB, - 0xD1, - 0xD1, - 0xF9, - 0xD3, - 0xFA, - 0xFA, - 0xFA, - 0x29, - 0x89, - 0x6B, - 0x88, - 0x90, - 0x91, - 0x91, - 0x8C, - 0x84, - 0x7F, - 0x75, - 0x6D, - 0x58, - 0x1D, - 0x04, - 0xF5, - 0xF5, - 0x05, - 0xC0, - 0xF5, - 0x05, - 0xFF, - 0xDB, - 0xE4, - 0xD7, - 0xD5, - 0xD2, - 0x00, - 0x05, - 0xD5, - 0x00, - 0x0F, - 0xD7, - 0x1D, - 0x2A, - 0x91, - 0x91, - 0x34, - 0x2A, - 0x2A, - 0x2A, - 0x3A, - 0x32, - 0x46, - 0x51, - 0x83, - 0xA9, - 0x00, - 0x05, - 0xAA, - 0x00, - 0x3D, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xAE, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xB0, - 0xAC, - 0xB1, - 0xB0, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0x7F, - 0x74, - 0x75, - 0x75, - 0x6A, - 0x6A, - 0x83, - 0x91, - 0xAA, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x23, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0x97, - 0x68, - 0x64, - 0x4E, - 0x4E, - 0x3F, - 0x38, - 0x91, - 0xA2, - 0x3F, - 0x21, - 0x21, - 0x1F, - 0x1F, - 0x1F, - 0x14, - 0x4C, - 0xBB, - 0xD7, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xB3, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x3A, - 0xA6, - 0x97, - 0x7B, - 0x7E, - 0x39, - 0x33, - 0x56, - 0x75, - 0x91, - 0xA6, - 0xA2, - 0x9B, - 0xA2, - 0xA4, - 0xA3, - 0x98, - 0x87, - 0x70, - 0x62, - 0x70, - 0x63, - 0x62, - 0x55, - 0x2C, - 0x48, - 0x60, - 0x6B, - 0x88, - 0x91, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA7, - 0xA3, - 0x98, - 0x85, - 0x87, - 0x71, - 0x70, - 0x66, - 0x85, - 0xA3, - 0xA7, - 0xA2, - 0x9B, - 0xA6, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7B, - 0x7C, - 0x7E, - 0x40, - 0x62, - 0x66, - 0x71, - 0x04, - 0x66, - 0x00, - 0x09, - 0x70, - 0x54, - 0x42, - 0x59, - 0x8E, - 0x97, - 0xA3, - 0x8E, - 0x87, - 0x00, - 0x04, - 0x54, - 0x00, - 0x1A, - 0x41, - 0x49, - 0x1F, - 0x33, - 0x80, - 0x6D, - 0x75, - 0x91, - 0x9F, - 0x9F, - 0x9B, - 0xA6, - 0x96, - 0x94, - 0x8E, - 0x87, - 0x42, - 0x3E, - 0x62, - 0x41, - 0x6F, - 0x41, - 0x53, - 0x42, - 0x62, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x64, - 0x5E, - 0x32, - 0x50, - 0x22, - 0xFC, - 0xF2, - 0xFC, - 0xE6, - 0xFA, - 0xFE, - 0xC1, - 0xFE, - 0x22, - 0x22, - 0x22, - 0x3D, - 0x1A, - 0x31, - 0x39, - 0x4F, - 0x4F, - 0x5C, - 0x5F, - 0x5E, - 0x5E, - 0x6B, - 0x5F, - 0x31, - 0xB6, - 0xCF, - 0xE0, - 0xE0, - 0xF4, - 0xDC, - 0xD0, - 0xDC, - 0xCF, - 0xE6, - 0xF4, - 0xCF, - 0xD0, - 0xFF, - 0x7C, - 0x75, - 0x88, - 0x84, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x64, - 0x56, - 0x39, - 0x1A, - 0xFE, - 0xF5, - 0xFA, - 0xD0, - 0xD1, - 0xD3, - 0xD1, - 0xD3, - 0xFA, - 0xFA, - 0xD3, - 0x81, - 0x60, - 0x7B, - 0x90, - 0x91, - 0x91, - 0x8C, - 0x8C, - 0x91, - 0x7F, - 0x75, - 0x56, - 0x1D, - 0xFF, - 0x05, - 0xF9, - 0xFE, - 0x04, - 0x04, - 0xF9, - 0x05, - 0xFB, - 0xE8, - 0xD9, - 0xD8, - 0xD5, - 0xD2, - 0xD2, - 0x4C, - 0x0C, - 0x6B, - 0x9F, - 0x7B, - 0x2A, - 0x34, - 0x32, - 0x2A, - 0x32, - 0x32, - 0x46, - 0x5D, - 0x95, - 0x07, - 0xAA, - 0x00, - 0x33, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xAC, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xAE, - 0xB0, - 0xAC, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xA1, - 0x8E, - 0x74, - 0x74, - 0x74, - 0x68, - 0x83, - 0x8C, - 0xAA, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xB1, - 0x00, - 0x05, - 0xB3, - 0x01, - 0xB1, - 0x05, - 0xB3, - 0x00, - 0x28, - 0xB1, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xA7, - 0x74, - 0x75, - 0x4E, - 0x6B, - 0x3C, - 0x30, - 0x75, - 0xA2, - 0x7D, - 0x21, - 0x15, - 0xE1, - 0x0A, - 0x19, - 0x19, - 0x1F, - 0x09, - 0x2B, - 0x0E, - 0x0B, - 0xBB, - 0xD7, - 0xD7, - 0x71, - 0x98, - 0xA7, - 0x05, - 0xA2, - 0x00, - 0x22, - 0xA6, - 0x96, - 0xA6, - 0x9B, - 0xA2, - 0xA2, - 0xA4, - 0xA3, - 0x8E, - 0x66, - 0x63, - 0x3E, - 0x42, - 0x69, - 0x3E, - 0x2E, - 0x24, - 0x58, - 0x5C, - 0x6D, - 0x88, - 0xA1, - 0x9B, - 0xA2, - 0x9B, - 0xA2, - 0xA7, - 0xA3, - 0x8E, - 0x87, - 0x66, - 0x71, - 0x69, - 0x44, - 0x04, - 0x87, - 0x00, - 0x07, - 0x71, - 0x43, - 0x66, - 0x87, - 0xA3, - 0xA7, - 0xA2, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x31, - 0xA6, - 0xA1, - 0x88, - 0x8D, - 0x52, - 0x61, - 0x70, - 0x66, - 0x66, - 0x70, - 0x66, - 0x70, - 0x66, - 0x54, - 0x42, - 0x54, - 0x43, - 0x71, - 0x43, - 0x63, - 0x40, - 0x2C, - 0x2B, - 0x79, - 0x6D, - 0x88, - 0xA1, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA4, - 0xA3, - 0x8E, - 0x71, - 0x62, - 0x41, - 0x37, - 0x41, - 0x54, - 0x70, - 0x54, - 0x3E, - 0x62, - 0x2F, - 0x62, - 0x41, - 0x37, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x4E, - 0x75, - 0x64, - 0x64, - 0x4E, - 0x3C, - 0x5E, - 0x5E, - 0x3C, - 0x6B, - 0x5B, - 0x64, - 0x5B, - 0x64, - 0x64, - 0x64, - 0x04, - 0x68, - 0x09, - 0x74, - 0x00, - 0x2D, - 0x68, - 0x4E, - 0x4F, - 0x3D, - 0xB6, - 0xF4, - 0xF4, - 0xE6, - 0xD0, - 0xD0, - 0xDC, - 0xD0, - 0xD0, - 0xCF, - 0xE6, - 0xFA, - 0x81, - 0x80, - 0x7B, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x7F, - 0x74, - 0x77, - 0x33, - 0x3D, - 0x04, - 0xF9, - 0xF5, - 0xFB, - 0xF5, - 0xC0, - 0xD1, - 0xD3, - 0xF9, - 0xD3, - 0xFA, - 0x29, - 0x76, - 0x7B, - 0x88, - 0x90, - 0x00, - 0x04, - 0x91, - 0x00, - 0x45, - 0x84, - 0x88, - 0x6B, - 0xDB, - 0xEB, - 0xF3, - 0xF5, - 0xFA, - 0x04, - 0x04, - 0x05, - 0x05, - 0x06, - 0x02, - 0xBB, - 0xC6, - 0x09, - 0x19, - 0x90, - 0x96, - 0x33, - 0x21, - 0x2A, - 0x2A, - 0x32, - 0x32, - 0x4D, - 0x5B, - 0x83, - 0xA7, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xAE, - 0xB0, - 0xB0, - 0xB1, - 0xB0, - 0xB0, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0x97, - 0x74, - 0x88, - 0x00, - 0x04, - 0x68, - 0x00, - 0x0C, - 0x7A, - 0xAA, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0x08, - 0xB3, - 0x01, - 0xAE, - 0x08, - 0xB3, - 0x00, - 0x28, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0x7F, - 0x75, - 0x64, - 0x4E, - 0x3C, - 0x32, - 0x4D, - 0xA6, - 0xA3, - 0x2A, - 0x09, - 0xD5, - 0xD2, - 0xD5, - 0xD6, - 0xE4, - 0x02, - 0x19, - 0x05, - 0x1D, - 0x13, - 0x5A, - 0x5A, - 0x0E, - 0x4A, - 0x0E, - 0x62, - 0x70, - 0x98, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x2E, - 0xA4, - 0xA3, - 0x85, - 0x66, - 0x41, - 0x2E, - 0x41, - 0x55, - 0x53, - 0x2D, - 0x2D, - 0x48, - 0x33, - 0x8D, - 0x88, - 0x91, - 0xA6, - 0x9B, - 0xA2, - 0xA2, - 0xA4, - 0xA3, - 0x98, - 0x85, - 0x87, - 0x43, - 0x66, - 0x71, - 0x71, - 0x42, - 0x41, - 0x6F, - 0x71, - 0x59, - 0x87, - 0x71, - 0x87, - 0x87, - 0x87, - 0x71, - 0x66, - 0x66, - 0x7D, - 0x98, - 0xA1, - 0xA2, - 0x04, - 0x9B, - 0x00, - 0x2E, - 0xA6, - 0xA1, - 0x88, - 0x52, - 0x7E, - 0x40, - 0x54, - 0x66, - 0x66, - 0x71, - 0x71, - 0x66, - 0x6F, - 0x61, - 0x48, - 0x58, - 0x79, - 0x56, - 0x88, - 0x91, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0xA4, - 0xA3, - 0x8E, - 0x59, - 0x54, - 0x53, - 0x41, - 0x53, - 0x6F, - 0x42, - 0x3E, - 0x41, - 0x41, - 0x53, - 0x42, - 0x63, - 0x42, - 0x63, - 0x3E, - 0x41, - 0x41, - 0x41, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD1, - 0x89, - 0x8D, - 0x77, - 0x06, - 0x75, - 0x01, - 0x68, - 0x01, - 0x64, - 0x04, - 0x75, - 0x00, - 0x04, - 0x64, - 0x64, - 0x7B, - 0x64, - 0x04, - 0x77, - 0x00, - 0x1D, - 0x7C, - 0x8D, - 0x6D, - 0x75, - 0x74, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x64, - 0x5E, - 0x50, - 0x22, - 0xFE, - 0xF4, - 0xCF, - 0xD0, - 0xEC, - 0xD1, - 0xD0, - 0xD0, - 0xD0, - 0xCF, - 0xFA, - 0xD1, - 0xA5, - 0x8D, - 0x75, - 0x7F, - 0x00, - 0x04, - 0x84, - 0x00, - 0x59, - 0x7F, - 0x75, - 0x56, - 0x39, - 0xFF, - 0xF5, - 0xF9, - 0xF5, - 0xC0, - 0x29, - 0x29, - 0xD1, - 0x29, - 0xD3, - 0xF9, - 0x29, - 0x1D, - 0x7C, - 0x88, - 0x90, - 0x91, - 0x95, - 0x95, - 0x91, - 0xC6, - 0xD4, - 0xD4, - 0xDA, - 0xE3, - 0xE9, - 0xEA, - 0xFA, - 0x07, - 0x08, - 0x05, - 0x19, - 0x19, - 0x19, - 0x56, - 0xA0, - 0x88, - 0x21, - 0x33, - 0x2A, - 0x2A, - 0x2A, - 0x3A, - 0x3C, - 0x5D, - 0x91, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB1, - 0xB1, - 0xAC, - 0xAC, - 0xAE, - 0xB1, - 0xAD, - 0xA1, - 0x7F, - 0x74, - 0x74, - 0x00, - 0x04, - 0x68, - 0x00, - 0x33, - 0x6A, - 0x91, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xA3, - 0x68, - 0x64, - 0x4E, - 0x4E, - 0x3C, - 0x30, - 0x90, - 0xA2, - 0x57, - 0x2A, - 0xC6, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x43, - 0xD5, - 0xD4, - 0xE4, - 0x01, - 0x05, - 0x1D, - 0x2C, - 0x2B, - 0x5A, - 0x4B, - 0x4A, - 0x4B, - 0x4B, - 0x2C, - 0x66, - 0x85, - 0x85, - 0x54, - 0x40, - 0x49, - 0x61, - 0x40, - 0x2E, - 0x61, - 0x11, - 0x1F, - 0x58, - 0x60, - 0x7B, - 0x97, - 0xA4, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA7, - 0x98, - 0x85, - 0x71, - 0x70, - 0x43, - 0x71, - 0x66, - 0x41, - 0x49, - 0x49, - 0x33, - 0x80, - 0x6D, - 0x7C, - 0x52, - 0x40, - 0x6E, - 0x70, - 0x87, - 0x87, - 0x85, - 0x87, - 0x71, - 0x87, - 0x66, - 0x66, - 0x66, - 0x7D, - 0x98, - 0xA7, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x1C, - 0xA6, - 0xA1, - 0x7D, - 0x8D, - 0x52, - 0x49, - 0x40, - 0x2C, - 0x58, - 0x33, - 0x56, - 0x75, - 0x91, - 0xA0, - 0x9B, - 0x9B, - 0x9B, - 0xA4, - 0xA3, - 0x98, - 0x87, - 0x54, - 0x54, - 0x41, - 0x54, - 0x41, - 0x54, - 0x41, - 0x04, - 0x54, - 0x00, - 0x0B, - 0x41, - 0x37, - 0x2D, - 0x2C, - 0x2B, - 0x58, - 0x2B, - 0x58, - 0x80, - 0x2C, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x46, - 0xDD, - 0xF0, - 0xDC, - 0xF5, - 0xC0, - 0x80, - 0x80, - 0x89, - 0x89, - 0x81, - 0x81, - 0xC0, - 0xB7, - 0xB7, - 0xB7, - 0xBE, - 0xD0, - 0xD0, - 0xD0, - 0xEC, - 0xE6, - 0xEC, - 0xE6, - 0xE6, - 0xEC, - 0xE0, - 0xE6, - 0xD0, - 0xB7, - 0x80, - 0x77, - 0x75, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x68, - 0x64, - 0x5F, - 0x3D, - 0xB6, - 0xFE, - 0xE6, - 0xFA, - 0xD0, - 0xF9, - 0xEC, - 0xF9, - 0xD0, - 0xFA, - 0xFA, - 0xFA, - 0xFF, - 0x80, - 0x7B, - 0x7F, - 0x90, - 0x84, - 0x84, - 0x84, - 0x90, - 0x74, - 0x64, - 0x80, - 0x19, - 0x29, - 0xF5, - 0xF5, - 0xFB, - 0xC0, - 0x04, - 0x29, - 0x00, - 0x08, - 0xF9, - 0x29, - 0xFF, - 0x76, - 0x7B, - 0x90, - 0x8E, - 0xD4, - 0x04, - 0xD5, - 0x00, - 0x3C, - 0xD4, - 0xD6, - 0xDF, - 0xE7, - 0xFB, - 0xF9, - 0x08, - 0x1D, - 0x0C, - 0x88, - 0x96, - 0x34, - 0x39, - 0x34, - 0x2A, - 0x34, - 0x32, - 0x32, - 0x46, - 0x72, - 0xA6, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB1, - 0xAC, - 0xB1, - 0xAC, - 0xB0, - 0xB1, - 0xAC, - 0xAC, - 0xAC, - 0xB3, - 0xAD, - 0x97, - 0x7F, - 0x74, - 0x74, - 0x74, - 0x75, - 0x04, - 0x68, - 0x00, - 0x19, - 0x6A, - 0xA1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x03, - 0xB1, - 0xB3, - 0xB1, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x0C, - 0xA9, - 0x74, - 0x75, - 0x64, - 0x4E, - 0x3C, - 0x38, - 0x68, - 0xA2, - 0x8E, - 0x34, - 0xBB, - 0x0A, - 0xD2, - 0x00, - 0x17, - 0xD8, - 0xE8, - 0x1D, - 0x13, - 0x5A, - 0x2C, - 0x76, - 0x2C, - 0x49, - 0x2C, - 0x4A, - 0x4A, - 0x3E, - 0x4B, - 0x2D, - 0x4B, - 0x2B, - 0x1F, - 0x58, - 0x5C, - 0x77, - 0x90, - 0xA4, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x1B, - 0xA7, - 0x98, - 0x85, - 0x66, - 0x70, - 0x70, - 0x69, - 0x43, - 0x2F, - 0x49, - 0x48, - 0x79, - 0x60, - 0x7B, - 0x90, - 0x96, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7B, - 0x52, - 0x40, - 0x41, - 0x70, - 0x71, - 0x00, - 0x05, - 0x87, - 0x00, - 0x07, - 0x71, - 0x66, - 0x66, - 0x7D, - 0x98, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x28, - 0xA6, - 0xA1, - 0x88, - 0x6D, - 0x75, - 0x91, - 0xA0, - 0x9B, - 0x9B, - 0x9B, - 0xA4, - 0xA3, - 0x8E, - 0x6C, - 0x54, - 0x54, - 0x63, - 0x54, - 0x70, - 0x54, - 0x70, - 0x71, - 0x70, - 0x42, - 0x53, - 0x40, - 0x2C, - 0x24, - 0x58, - 0x58, - 0x79, - 0x5C, - 0x6B, - 0x75, - 0x90, - 0x91, - 0xA0, - 0x96, - 0x90, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x06, - 0xE6, - 0xE6, - 0xF0, - 0xDC, - 0xF0, - 0xE6, - 0x04, - 0xE5, - 0x01, - 0xDE, - 0x04, - 0xE5, - 0x00, - 0x44, - 0xE6, - 0xE6, - 0xE5, - 0xE5, - 0xC9, - 0xE6, - 0xE6, - 0xCC, - 0xDC, - 0xEC, - 0xEC, - 0xF5, - 0xEC, - 0xCC, - 0xF4, - 0xE6, - 0xB7, - 0x81, - 0x60, - 0x75, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x75, - 0x5B, - 0x5C, - 0x3D, - 0xFE, - 0xCF, - 0xFA, - 0xD0, - 0xF9, - 0xD3, - 0xD0, - 0xD3, - 0xD3, - 0xFA, - 0xFA, - 0xF5, - 0xA5, - 0x8D, - 0x88, - 0x90, - 0x84, - 0x91, - 0x84, - 0x84, - 0x7F, - 0x75, - 0x6B, - 0x33, - 0x05, - 0x04, - 0xFA, - 0xD3, - 0x29, - 0xC0, - 0x29, - 0xC0, - 0x29, - 0x29, - 0xF9, - 0x29, - 0xE4, - 0xD5, - 0xD2, - 0x07, - 0xD5, - 0x00, - 0x10, - 0xD4, - 0xD6, - 0xE1, - 0x1D, - 0x34, - 0x96, - 0x97, - 0x21, - 0x2A, - 0x33, - 0x33, - 0x32, - 0x3F, - 0x3C, - 0x64, - 0x84, - 0x07, - 0xAA, - 0x00, - 0x2E, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xB1, - 0xB1, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB3, - 0xA9, - 0x90, - 0x7F, - 0x74, - 0x68, - 0x74, - 0x68, - 0x68, - 0x75, - 0x68, - 0x68, - 0x68, - 0x6A, - 0x97, - 0xB1, - 0xAC, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0x06, - 0xB3, - 0x00, - 0x08, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0x08, - 0xB3, - 0x01, - 0xAE, - 0x06, - 0xB3, - 0x00, - 0x0E, - 0x90, - 0x68, - 0x75, - 0x4E, - 0x4E, - 0x3C, - 0x4D, - 0xA4, - 0xA7, - 0x56, - 0x60, - 0x42, - 0xD9, - 0xD8, - 0x09, - 0xD2, - 0x00, - 0x12, - 0xA7, - 0x8E, - 0x7C, - 0x58, - 0x1D, - 0x67, - 0x2C, - 0x2C, - 0x49, - 0x2C, - 0x2C, - 0x14, - 0x1D, - 0x39, - 0x5C, - 0x7B, - 0x90, - 0x96, - 0x04, - 0xA2, - 0x00, - 0x13, - 0xA7, - 0x98, - 0x85, - 0x71, - 0x43, - 0x63, - 0x43, - 0x70, - 0x2E, - 0x49, - 0x58, - 0x79, - 0x6D, - 0x88, - 0x97, - 0x96, - 0x9B, - 0x9B, - 0xA2, - 0x00, - 0x04, - 0xA6, - 0x00, - 0x0A, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0x97, - 0x88, - 0x52, - 0x49, - 0x40, - 0x54, - 0x05, - 0x87, - 0x00, - 0x09, - 0x71, - 0x66, - 0x70, - 0x66, - 0x59, - 0x8E, - 0xA1, - 0xA6, - 0xA2, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x23, - 0xA6, - 0xA4, - 0x97, - 0x85, - 0x7D, - 0x54, - 0x53, - 0x41, - 0x54, - 0x70, - 0x54, - 0x54, - 0x70, - 0x54, - 0x41, - 0x55, - 0x49, - 0x24, - 0x58, - 0x39, - 0x5C, - 0x77, - 0x88, - 0x90, - 0x91, - 0xA0, - 0x9F, - 0x9F, - 0x9B, - 0x9F, - 0x9B, - 0x9F, - 0x9F, - 0x9F, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0xE5, - 0xDE, - 0xE5, - 0xE5, - 0xE5, - 0xDC, - 0xE6, - 0xDD, - 0xDD, - 0xE6, - 0xEC, - 0xE6, - 0xE5, - 0xE5, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xE5, - 0xE5, - 0xDC, - 0xE5, - 0xE5, - 0xE5, - 0xF2, - 0xF4, - 0xDC, - 0xE6, - 0xE6, - 0xE6, - 0xF5, - 0xEC, - 0xDC, - 0xE6, - 0xD0, - 0x29, - 0x89, - 0x77, - 0x88, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x29, - 0x74, - 0x68, - 0x5E, - 0x39, - 0x22, - 0xF4, - 0xFE, - 0xFA, - 0xF5, - 0xFB, - 0xF5, - 0xFF, - 0xD1, - 0xF9, - 0xFA, - 0x29, - 0xFF, - 0x7E, - 0x7C, - 0x90, - 0x90, - 0x91, - 0x8C, - 0x91, - 0x84, - 0x7F, - 0x64, - 0x56, - 0x19, - 0x04, - 0x04, - 0x04, - 0xC0, - 0x05, - 0xC0, - 0x05, - 0x05, - 0xFB, - 0xE8, - 0xD9, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x38, - 0xD5, - 0xD5, - 0xD5, - 0xD2, - 0x00, - 0x19, - 0x75, - 0xA0, - 0x65, - 0x33, - 0x34, - 0x34, - 0x2A, - 0x2A, - 0x32, - 0x3C, - 0x68, - 0xA4, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAE, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xA9, - 0x90, - 0x74, - 0x88, - 0x74, - 0x74, - 0x75, - 0x06, - 0x68, - 0x00, - 0x08, - 0x74, - 0x7F, - 0xAD, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xB1, - 0x04, - 0xB3, - 0x00, - 0x0A, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xAE, - 0x07, - 0xB3, - 0x00, - 0x1A, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0x82, - 0xA7, - 0x6A, - 0x75, - 0x4E, - 0x4E, - 0x3C, - 0x3A, - 0x90, - 0xA2, - 0x57, - 0x2A, - 0x34, - 0x34, - 0x33, - 0x49, - 0x2F, - 0xBB, - 0xD7, - 0x05, - 0xD2, - 0x00, - 0x4D, - 0xB1, - 0xA2, - 0xA2, - 0xA2, - 0xA4, - 0x94, - 0x7B, - 0x58, - 0x1D, - 0x39, - 0x19, - 0x79, - 0x77, - 0x90, - 0xA1, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA7, - 0xA3, - 0x85, - 0x87, - 0x70, - 0x42, - 0x70, - 0x63, - 0x6F, - 0x4A, - 0x1F, - 0x58, - 0x6D, - 0x75, - 0x97, - 0xA4, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA7, - 0x94, - 0x85, - 0x87, - 0x59, - 0x85, - 0x94, - 0xA4, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0xA2, - 0xA6, - 0xA1, - 0x8E, - 0x52, - 0x7E, - 0x2E, - 0x70, - 0x71, - 0x71, - 0x87, - 0x66, - 0x87, - 0x71, - 0x70, - 0x54, - 0x54, - 0x59, - 0x8E, - 0xA1, - 0xA4, - 0xA7, - 0x94, - 0x85, - 0x6C, - 0x66, - 0x00, - 0x04, - 0x54, - 0x00, - 0x1D, - 0x66, - 0x70, - 0x54, - 0x41, - 0x49, - 0x2C, - 0x39, - 0x39, - 0x79, - 0x56, - 0x7B, - 0x88, - 0x97, - 0x96, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA0, - 0xA1, - 0x97, - 0x8E, - 0x7D, - 0x6C, - 0x94, - 0x96, - 0x9F, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x07, - 0xE5, - 0x00, - 0x23, - 0xE6, - 0xE6, - 0xDC, - 0xEC, - 0xE5, - 0xE5, - 0xDE, - 0xE5, - 0xE5, - 0xF7, - 0xF2, - 0xFC, - 0xF4, - 0x04, - 0x29, - 0x31, - 0x39, - 0x4F, - 0x50, - 0x22, - 0xF4, - 0xE0, - 0xF4, - 0xEC, - 0xD1, - 0xD0, - 0xF5, - 0xD1, - 0xEC, - 0xEC, - 0xE6, - 0xD3, - 0xA5, - 0x8D, - 0x75, - 0x00, - 0x05, - 0x7F, - 0x00, - 0x14, - 0x74, - 0x64, - 0x5F, - 0x3D, - 0x29, - 0xFA, - 0xFA, - 0xFB, - 0xEA, - 0xFB, - 0xFF, - 0xF9, - 0xF9, - 0xD3, - 0xD3, - 0x81, - 0x58, - 0x7C, - 0x88, - 0x90, - 0x04, - 0x91, - 0x00, - 0x6A, - 0x7F, - 0x74, - 0x77, - 0x33, - 0x1A, - 0x04, - 0x29, - 0xF5, - 0x04, - 0x29, - 0xF9, - 0x05, - 0xFB, - 0xEE, - 0xE4, - 0xD7, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0x19, - 0x39, - 0x91, - 0x91, - 0x33, - 0x1F, - 0x37, - 0x35, - 0x2A, - 0x47, - 0x32, - 0x3C, - 0x73, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAE, - 0x95, - 0x73, - 0x6A, - 0x74, - 0x6A, - 0x68, - 0x68, - 0x88, - 0x88, - 0x75, - 0x68, - 0x68, - 0x68, - 0x6A, - 0x83, - 0xA1, - 0xB3, - 0xB1, - 0xAE, - 0xAE, - 0xB3, - 0xB1, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0x06, - 0xB3, - 0x00, - 0x1D, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0x7F, - 0x75, - 0x75, - 0x4E, - 0x4E, - 0x32, - 0x64, - 0xA2, - 0x94, - 0x2A, - 0x20, - 0x24, - 0x1F, - 0x2A, - 0x24, - 0x2C, - 0x24, - 0x2C, - 0x3E, - 0xBB, - 0xD7, - 0xC2, - 0xD8, - 0x98, - 0xA4, - 0x00, - 0x05, - 0xA2, - 0x00, - 0x18, - 0xA4, - 0x90, - 0x88, - 0x95, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0xA3, - 0x7D, - 0x66, - 0x62, - 0x4C, - 0x63, - 0x63, - 0x3E, - 0x61, - 0x1F, - 0x39, - 0x60, - 0x75, - 0x97, - 0xA4, - 0x04, - 0xA2, - 0x00, - 0x37, - 0xA7, - 0x98, - 0x85, - 0x59, - 0x71, - 0x43, - 0x71, - 0x71, - 0x71, - 0x66, - 0x63, - 0x87, - 0x85, - 0x8E, - 0xA7, - 0xA6, - 0x9B, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x7C, - 0x48, - 0x6E, - 0x54, - 0x71, - 0x87, - 0x66, - 0x66, - 0x66, - 0x87, - 0x71, - 0x63, - 0x70, - 0x66, - 0x66, - 0x42, - 0x54, - 0x70, - 0x66, - 0x71, - 0x70, - 0x53, - 0x49, - 0x48, - 0x1F, - 0x39, - 0x5C, - 0x6D, - 0x75, - 0x90, - 0x91, - 0xA0, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x10, - 0xA6, - 0xA4, - 0xA1, - 0x94, - 0x85, - 0x6C, - 0x66, - 0x70, - 0x27, - 0x40, - 0x40, - 0x40, - 0x27, - 0x54, - 0x6C, - 0x94, - 0x00, - 0x00, - 0x00, - 0x69, - 0x86, - 0xC1, - 0xF7, - 0xF7, - 0xE5, - 0xF7, - 0xF7, - 0xF2, - 0xF2, - 0xF2, - 0xFE, - 0xFE, - 0x22, - 0x31, - 0x58, - 0x5C, - 0x5F, - 0x5E, - 0x6B, - 0x64, - 0x64, - 0x68, - 0x6A, - 0x74, - 0x74, - 0x74, - 0x68, - 0x5B, - 0x5F, - 0x31, - 0xFE, - 0xF4, - 0xF4, - 0xFA, - 0xD0, - 0xF5, - 0xF5, - 0xD0, - 0xFA, - 0xCF, - 0xFA, - 0xF9, - 0xC0, - 0x89, - 0x77, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x7F, - 0x75, - 0x6B, - 0x33, - 0x29, - 0xFA, - 0xF5, - 0xF5, - 0xFF, - 0xDB, - 0xC0, - 0xFB, - 0xEA, - 0xD3, - 0xF9, - 0x29, - 0xFF, - 0x7E, - 0x7B, - 0x90, - 0x84, - 0x95, - 0x95, - 0x91, - 0x91, - 0x7F, - 0x75, - 0x56, - 0x19, - 0xF1, - 0xF0, - 0xFA, - 0x07, - 0x29, - 0x05, - 0x05, - 0x05, - 0x02, - 0xE1, - 0xD9, - 0xD8, - 0xBB, - 0x05, - 0x57, - 0x9F, - 0x7B, - 0x19, - 0x2A, - 0x33, - 0x2A, - 0x2A, - 0x2A, - 0x3C, - 0x4E, - 0x97, - 0x00, - 0x06, - 0xAA, - 0x00, - 0x0C, - 0xB0, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0x04, - 0xB0, - 0x00, - 0x0E, - 0xAE, - 0xB0, - 0xAC, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAC, - 0xB0, - 0xB1, - 0x95, - 0x83, - 0x72, - 0x6A, - 0x04, - 0x68, - 0x00, - 0x18, - 0x75, - 0x88, - 0x75, - 0x6A, - 0x68, - 0x6A, - 0x6A, - 0x91, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB1, - 0x05, - 0xB3, - 0x00, - 0x08, - 0xB1, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0x04, - 0xB3, - 0x00, - 0x1D, - 0x97, - 0x68, - 0x75, - 0x7D, - 0x4E, - 0x57, - 0x32, - 0x96, - 0xA7, - 0x32, - 0x2A, - 0xD7, - 0xD5, - 0xC6, - 0xE4, - 0x09, - 0x19, - 0x19, - 0x1F, - 0x24, - 0x14, - 0x11, - 0x4B, - 0x4B, - 0x14, - 0x40, - 0x66, - 0x98, - 0xA7, - 0x00, - 0x06, - 0xA2, - 0x00, - 0x4A, - 0xA7, - 0xA3, - 0x7D, - 0x87, - 0x4C, - 0x55, - 0x62, - 0x41, - 0x2E, - 0x2D, - 0x13, - 0x2B, - 0x60, - 0x7B, - 0x90, - 0x96, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x85, - 0x59, - 0x71, - 0x87, - 0x71, - 0x87, - 0x70, - 0x70, - 0x71, - 0x59, - 0x71, - 0x71, - 0x87, - 0x87, - 0x71, - 0x71, - 0x71, - 0x87, - 0x98, - 0xA1, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x8E, - 0x7C, - 0x48, - 0x40, - 0x41, - 0x70, - 0x87, - 0x87, - 0x69, - 0x87, - 0x71, - 0x71, - 0x66, - 0x41, - 0x40, - 0x49, - 0x48, - 0x48, - 0x58, - 0x5C, - 0x7B, - 0x88, - 0x90, - 0x95, - 0x9F, - 0x04, - 0x9B, - 0x00, - 0x15, - 0xA6, - 0xA4, - 0x97, - 0x8E, - 0x7D, - 0x66, - 0x3B, - 0x53, - 0x41, - 0x62, - 0x41, - 0x63, - 0x63, - 0x42, - 0x42, - 0x42, - 0x41, - 0x41, - 0x37, - 0x40, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0x4E, - 0x3C, - 0x47, - 0x50, - 0x92, - 0x50, - 0x4F, - 0x5C, - 0x5E, - 0x5E, - 0x6B, - 0x64, - 0x64, - 0x68, - 0x68, - 0x00, - 0x06, - 0x74, - 0x00, - 0x35, - 0x75, - 0x7B, - 0x77, - 0x77, - 0x88, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x64, - 0x6B, - 0x5C, - 0x3D, - 0xFE, - 0xF4, - 0xF4, - 0xE6, - 0xD0, - 0xEC, - 0xFB, - 0xD1, - 0xF5, - 0xF5, - 0xFA, - 0xB7, - 0xA5, - 0x8D, - 0x7B, - 0x7F, - 0x84, - 0x84, - 0x84, - 0x90, - 0x7F, - 0x75, - 0x6D, - 0x39, - 0x04, - 0xF9, - 0xF9, - 0xFB, - 0xFF, - 0x29, - 0x81, - 0x29, - 0x29, - 0x29, - 0x04, - 0xFF, - 0x76, - 0x8D, - 0x75, - 0x90, - 0x00, - 0x04, - 0x95, - 0x00, - 0x1B, - 0x8E, - 0xD6, - 0xD4, - 0xDA, - 0xE3, - 0xF1, - 0xF5, - 0x04, - 0x04, - 0x1A, - 0x05, - 0x05, - 0x09, - 0x06, - 0x1F, - 0x90, - 0xA1, - 0x2A, - 0x1F, - 0x34, - 0x34, - 0x33, - 0x32, - 0x32, - 0x32, - 0x4E, - 0xA7, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x34, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xAC, - 0xAC, - 0xB1, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xB1, - 0xAE, - 0xB0, - 0xB0, - 0xAE, - 0xB1, - 0xAC, - 0xB1, - 0x95, - 0x8B, - 0x73, - 0x72, - 0x6A, - 0x5D, - 0x68, - 0x5D, - 0x5D, - 0x68, - 0x68, - 0x5D, - 0x72, - 0x72, - 0x73, - 0x95, - 0xAC, - 0xB3, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0x05, - 0xB3, - 0x01, - 0xAE, - 0x08, - 0xB3, - 0x00, - 0x16, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xA7, - 0x74, - 0x75, - 0x64, - 0x4E, - 0x4E, - 0x32, - 0x7F, - 0xA2, - 0x6C, - 0x21, - 0xD9, - 0x04, - 0xD2, - 0x00, - 0x28, - 0xD5, - 0xD7, - 0xD9, - 0x00, - 0x05, - 0x19, - 0x1F, - 0x2C, - 0x24, - 0x2C, - 0x48, - 0x2B, - 0x2D, - 0x40, - 0x66, - 0x98, - 0x98, - 0x98, - 0x7D, - 0x6F, - 0x40, - 0x49, - 0x2D, - 0x55, - 0x2E, - 0x2C, - 0x2B, - 0x39, - 0x5F, - 0x7B, - 0x90, - 0xA1, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x85, - 0x87, - 0x04, - 0x71, - 0x00, - 0x17, - 0x62, - 0x2D, - 0x2B, - 0x2B, - 0x60, - 0x7C, - 0x7E, - 0x61, - 0x42, - 0x71, - 0x87, - 0x87, - 0x71, - 0x87, - 0x87, - 0x87, - 0x71, - 0x87, - 0x87, - 0x8E, - 0xA3, - 0xA6, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x11, - 0xA1, - 0x8E, - 0x7B, - 0x49, - 0x48, - 0x27, - 0x62, - 0x55, - 0x2C, - 0x5A, - 0x58, - 0x60, - 0x6B, - 0x75, - 0x88, - 0x97, - 0x96, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x1A, - 0xA4, - 0xA3, - 0x94, - 0x8E, - 0x6C, - 0x66, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x6F, - 0x42, - 0x41, - 0x53, - 0x41, - 0x41, - 0x41, - 0x62, - 0x62, - 0x63, - 0x63, - 0x62, - 0x62, - 0x41, - 0x41, - 0x00, - 0x00, - 0x00, - 0x35, - 0x64, - 0x75, - 0x75, - 0x64, - 0x64, - 0x68, - 0x68, - 0x68, - 0x75, - 0x74, - 0x68, - 0x75, - 0x64, - 0x77, - 0x6B, - 0x8D, - 0x80, - 0x89, - 0xA5, - 0x81, - 0xC0, - 0xF5, - 0xEA, - 0xDD, - 0xCC, - 0xD1, - 0xA5, - 0x8D, - 0x7B, - 0x74, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x64, - 0x5E, - 0x4F, - 0x86, - 0xFC, - 0xF4, - 0xDC, - 0xFA, - 0xEA, - 0xC4, - 0xD1, - 0xFB, - 0xF5, - 0xFA, - 0xF9, - 0x81, - 0x89, - 0x7C, - 0x75, - 0x00, - 0x05, - 0x84, - 0x00, - 0x15, - 0x74, - 0x77, - 0x5F, - 0x39, - 0x07, - 0xFA, - 0xF9, - 0x29, - 0xFF, - 0xC0, - 0x05, - 0xC0, - 0x29, - 0x29, - 0x29, - 0x67, - 0x7E, - 0x7B, - 0x94, - 0x91, - 0xB4, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x53, - 0xD4, - 0xD6, - 0xDF, - 0xE9, - 0xF1, - 0x04, - 0x08, - 0x1D, - 0x0C, - 0x56, - 0xA0, - 0x88, - 0x19, - 0x33, - 0x35, - 0x34, - 0x37, - 0x35, - 0x32, - 0x3C, - 0x5B, - 0xA7, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xAC, - 0xB0, - 0xB1, - 0xB1, - 0xA2, - 0x8B, - 0x8B, - 0x83, - 0x72, - 0x72, - 0x72, - 0x68, - 0x72, - 0x5D, - 0x72, - 0x5D, - 0x6A, - 0x83, - 0x83, - 0xA4, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0x00, - 0x06, - 0xB3, - 0x00, - 0x08, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0x04, - 0xB3, - 0x00, - 0x0C, - 0xAE, - 0x7F, - 0x75, - 0x75, - 0x4E, - 0x4E, - 0x32, - 0x5B, - 0xA2, - 0x94, - 0x2A, - 0x4C, - 0x09, - 0xD2, - 0x00, - 0x36, - 0xD8, - 0xD9, - 0x02, - 0x1D, - 0x2C, - 0x49, - 0x2C, - 0x2C, - 0x48, - 0x48, - 0x2C, - 0x2C, - 0x2D, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x11, - 0x39, - 0x39, - 0x80, - 0x77, - 0x88, - 0xA1, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x85, - 0x87, - 0x63, - 0x70, - 0x63, - 0x70, - 0x3E, - 0x49, - 0x2B, - 0x33, - 0x6D, - 0x7B, - 0x90, - 0x91, - 0xA6, - 0x9B, - 0xA1, - 0x88, - 0x7B, - 0x6E, - 0x49, - 0x6F, - 0x66, - 0x59, - 0x04, - 0x87, - 0x00, - 0x07, - 0x69, - 0x71, - 0x71, - 0x59, - 0x98, - 0xA3, - 0xA4, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x2D, - 0xA4, - 0x94, - 0x7B, - 0x6D, - 0x77, - 0x75, - 0x90, - 0x91, - 0x9F, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA1, - 0x94, - 0x94, - 0x7D, - 0x59, - 0x66, - 0x42, - 0x63, - 0x62, - 0x42, - 0x54, - 0x54, - 0x54, - 0x53, - 0x41, - 0x6F, - 0x54, - 0x42, - 0x42, - 0x70, - 0x42, - 0x41, - 0x41, - 0x53, - 0x41, - 0x62, - 0x62, - 0x42, - 0x42, - 0x62, - 0x62, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8F, - 0xD0, - 0x81, - 0x80, - 0x6D, - 0x6B, - 0x60, - 0x80, - 0x80, - 0xA5, - 0x81, - 0xC0, - 0xB7, - 0xDC, - 0xE6, - 0xE6, - 0xE5, - 0xE6, - 0xE5, - 0xE5, - 0xE6, - 0xF4, - 0xE6, - 0xEC, - 0xDC, - 0xE6, - 0xF4, - 0xE6, - 0xE6, - 0xFA, - 0x81, - 0x80, - 0x7C, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x74, - 0x64, - 0x5F, - 0x50, - 0x22, - 0xFE, - 0xFA, - 0xFA, - 0xEA, - 0xD1, - 0xC4, - 0xFB, - 0xF9, - 0xF5, - 0xFA, - 0x29, - 0x1D, - 0x8D, - 0x7B, - 0x90, - 0x91, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x75, - 0x6B, - 0x5C, - 0x08, - 0xD3, - 0x04, - 0xC0, - 0x05, - 0xFF, - 0x05, - 0xC0, - 0x05, - 0x29, - 0x05, - 0xFF, - 0x5A, - 0xD4, - 0xD2, - 0xD2, - 0xD5, - 0xD5, - 0xD5, - 0xD2, - 0xD5, - 0xD5, - 0xD4, - 0xDA, - 0xE4, - 0x05, - 0x19, - 0x90, - 0x96, - 0x35, - 0x39, - 0x2A, - 0x33, - 0x33, - 0x35, - 0x32, - 0x3F, - 0x3F, - 0x4E, - 0xA3, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAA, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xB1, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xB0, - 0xB1, - 0xAC, - 0xB1, - 0xB1, - 0x96, - 0x8B, - 0x8B, - 0x8B, - 0x83, - 0x00, - 0x04, - 0x72, - 0x00, - 0x18, - 0x6A, - 0x83, - 0x83, - 0x83, - 0x8C, - 0xAA, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0x05, - 0xB3, - 0x00, - 0x03, - 0xB1, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x00, - 0x0E, - 0xA3, - 0x6A, - 0x64, - 0x64, - 0x4E, - 0x4E, - 0x3A, - 0xA1, - 0xA9, - 0x3F, - 0x32, - 0x87, - 0xD7, - 0xC2, - 0x09, - 0xD2, - 0x00, - 0x26, - 0xA3, - 0x7B, - 0x48, - 0x1F, - 0x58, - 0x2C, - 0x49, - 0x2D, - 0x49, - 0x49, - 0x2C, - 0x2B, - 0x1D, - 0x1D, - 0x60, - 0x77, - 0x8E, - 0x97, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x85, - 0x87, - 0x71, - 0x70, - 0x63, - 0x70, - 0x2F, - 0x2C, - 0x1F, - 0x33, - 0x7C, - 0x7D, - 0x94, - 0xA4, - 0x05, - 0xA2, - 0x00, - 0x17, - 0xA6, - 0x9B, - 0x9B, - 0xA2, - 0xA4, - 0x90, - 0x6C, - 0x6E, - 0x2D, - 0x41, - 0x66, - 0x59, - 0x87, - 0x71, - 0x87, - 0x71, - 0x71, - 0x71, - 0x70, - 0x59, - 0x8E, - 0x94, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x0F, - 0xA2, - 0x9B, - 0x9B, - 0x9B, - 0xA2, - 0x9B, - 0xA4, - 0xA3, - 0x94, - 0x8E, - 0x85, - 0x59, - 0x54, - 0x54, - 0x42, - 0x00, - 0x05, - 0x54, - 0x00, - 0x17, - 0x70, - 0x71, - 0x42, - 0x63, - 0x42, - 0x54, - 0x42, - 0x54, - 0x54, - 0x54, - 0x70, - 0x70, - 0x42, - 0x63, - 0x54, - 0x54, - 0x6F, - 0x53, - 0x41, - 0x41, - 0x62, - 0x62, - 0x41, - 0x00, - 0x00, - 0x00, - 0x01, - 0xF0, - 0x01, - 0xF0, - 0x09, - 0xE5, - 0x00, - 0x05, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xE5, - 0x00, - 0x04, - 0xE6, - 0x00, - 0x10, - 0xE5, - 0xE0, - 0xE5, - 0xE0, - 0xE6, - 0xDC, - 0xDC, - 0xD0, - 0xDC, - 0xDC, - 0xE6, - 0xFA, - 0xD1, - 0xA5, - 0x8D, - 0x7B, - 0x05, - 0x7F, - 0x00, - 0x28, - 0x75, - 0x6B, - 0x5C, - 0x19, - 0xFE, - 0xFE, - 0xF9, - 0xF9, - 0xC0, - 0x06, - 0xC0, - 0xC4, - 0xC0, - 0xF9, - 0x04, - 0x81, - 0x76, - 0x7C, - 0x88, - 0x84, - 0x91, - 0x91, - 0x91, - 0x84, - 0x7F, - 0x64, - 0x5F, - 0x39, - 0x04, - 0x04, - 0x29, - 0x05, - 0xFF, - 0x05, - 0xFF, - 0xFF, - 0x05, - 0xE8, - 0xD9, - 0xD4, - 0x04, - 0xD2, - 0x00, - 0x37, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0x0C, - 0x33, - 0x96, - 0x94, - 0x0A, - 0x33, - 0x2D, - 0x33, - 0x35, - 0x34, - 0x2A, - 0x56, - 0x3F, - 0x3C, - 0x94, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xB0, - 0xAC, - 0xAC, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xB1, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xAC, - 0xA0, - 0x00, - 0x04, - 0x8B, - 0x05, - 0x83, - 0x00, - 0x07, - 0x8B, - 0x8C, - 0xA2, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x08, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0x08, - 0xB3, - 0x01, - 0xAE, - 0x06, - 0xB3, - 0x00, - 0x12, - 0xA9, - 0x7F, - 0x75, - 0x75, - 0x4E, - 0x4E, - 0x3A, - 0x88, - 0xA2, - 0x7D, - 0x32, - 0x34, - 0x37, - 0x41, - 0x28, - 0xBB, - 0xC6, - 0xC2, - 0x05, - 0xD2, - 0x00, - 0x23, - 0xAC, - 0xA2, - 0xA2, - 0xA2, - 0x94, - 0x6C, - 0x60, - 0x39, - 0x1D, - 0x19, - 0x1D, - 0x5C, - 0x6B, - 0x88, - 0x97, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0xA3, - 0x98, - 0x59, - 0x70, - 0x42, - 0x42, - 0x70, - 0x2F, - 0x2C, - 0x1F, - 0x33, - 0x7C, - 0x75, - 0x94, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x4B, - 0xA3, - 0x98, - 0x98, - 0x85, - 0x85, - 0xA3, - 0xA7, - 0xA2, - 0x9B, - 0x9B, - 0xA2, - 0x9B, - 0xA4, - 0x94, - 0x7D, - 0x6E, - 0x49, - 0x6E, - 0x70, - 0x71, - 0x66, - 0x87, - 0x66, - 0x66, - 0x71, - 0x66, - 0x42, - 0x66, - 0x85, - 0x94, - 0xA4, - 0xA6, - 0xA6, - 0xA1, - 0xA3, - 0x98, - 0x85, - 0x7D, - 0x71, - 0x70, - 0x54, - 0x42, - 0x70, - 0x54, - 0x54, - 0x71, - 0x71, - 0x54, - 0x71, - 0x70, - 0x70, - 0x54, - 0x70, - 0x3B, - 0x54, - 0x41, - 0x41, - 0x25, - 0x49, - 0x49, - 0x2B, - 0x1D, - 0x39, - 0x58, - 0x13, - 0x40, - 0x41, - 0x62, - 0x41, - 0x54, - 0x41, - 0x62, - 0x53, - 0x37, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xDD, - 0xDD, - 0xE6, - 0xF0, - 0xE6, - 0x00, - 0x05, - 0xE5, - 0x00, - 0x4B, - 0xDE, - 0xE5, - 0xF7, - 0xF7, - 0xF2, - 0xF4, - 0xC1, - 0xFE, - 0x86, - 0x86, - 0x1A, - 0x50, - 0x50, - 0x50, - 0x22, - 0xF4, - 0xF4, - 0xF4, - 0xE6, - 0xD0, - 0xD0, - 0xEC, - 0xEC, - 0xFA, - 0xD0, - 0xF9, - 0x81, - 0x80, - 0x6D, - 0x75, - 0x7F, - 0x7F, - 0x84, - 0x7F, - 0x74, - 0x75, - 0x6D, - 0x79, - 0x1A, - 0xFA, - 0xFA, - 0xD3, - 0xFB, - 0x05, - 0x29, - 0x29, - 0xFF, - 0xFF, - 0xF5, - 0x1A, - 0x67, - 0x8D, - 0x7B, - 0x88, - 0x91, - 0x91, - 0x91, - 0x8C, - 0x84, - 0x74, - 0x77, - 0x5C, - 0x19, - 0x08, - 0x04, - 0x05, - 0x05, - 0x29, - 0x05, - 0x05, - 0x06, - 0xEE, - 0xBB, - 0xC6, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x2A, - 0xE1, - 0x05, - 0x75, - 0xA0, - 0x3F, - 0x39, - 0x33, - 0x24, - 0x35, - 0x37, - 0x52, - 0x52, - 0x3F, - 0x32, - 0x3C, - 0x4E, - 0xA3, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0x04, - 0xB0, - 0x00, - 0x07, - 0xB1, - 0xAE, - 0xB1, - 0xB0, - 0xB1, - 0xA6, - 0x93, - 0x00, - 0x06, - 0x8B, - 0x00, - 0x14, - 0x8C, - 0x96, - 0xAA, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0xB1, - 0xB1, - 0x06, - 0xB3, - 0x01, - 0xAE, - 0x04, - 0xB3, - 0x00, - 0x1D, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0x97, - 0x75, - 0x88, - 0x57, - 0x4E, - 0x32, - 0x5B, - 0xA6, - 0xA3, - 0x32, - 0x33, - 0x24, - 0x20, - 0x20, - 0x35, - 0x27, - 0x49, - 0x55, - 0x69, - 0xC6, - 0xD7, - 0xD2, - 0xD7, - 0xA3, - 0xA9, - 0x00, - 0x05, - 0xA2, - 0x00, - 0x2B, - 0x97, - 0x75, - 0x88, - 0x97, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x94, - 0x7D, - 0x59, - 0x42, - 0x63, - 0x63, - 0x2F, - 0x40, - 0x48, - 0x2B, - 0x34, - 0x6D, - 0x7B, - 0x90, - 0xA4, - 0xA2, - 0xA2, - 0xA2, - 0xA9, - 0xA7, - 0x98, - 0x85, - 0x87, - 0x70, - 0x70, - 0x71, - 0x71, - 0x87, - 0x69, - 0x87, - 0x85, - 0x98, - 0xA7, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x07, - 0xA6, - 0x94, - 0x7D, - 0x7C, - 0x52, - 0x40, - 0x54, - 0x00, - 0x04, - 0x66, - 0x00, - 0x0D, - 0x71, - 0x71, - 0x66, - 0x70, - 0x66, - 0x59, - 0x59, - 0x54, - 0x54, - 0x42, - 0x43, - 0x54, - 0x70, - 0x00, - 0x05, - 0x66, - 0x00, - 0x1F, - 0x54, - 0x54, - 0x37, - 0x41, - 0x40, - 0x2D, - 0x4A, - 0x24, - 0x58, - 0x58, - 0x33, - 0x80, - 0x8D, - 0x7C, - 0x7B, - 0x7B, - 0x88, - 0x88, - 0x90, - 0x90, - 0x90, - 0x7B, - 0x52, - 0x2C, - 0x2C, - 0x41, - 0x42, - 0x42, - 0x62, - 0x41, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2C, - 0xE5, - 0xE5, - 0xF7, - 0xE5, - 0xE5, - 0xF2, - 0xFC, - 0xFE, - 0xB6, - 0x22, - 0x3D, - 0x19, - 0x50, - 0x4F, - 0x5F, - 0x5E, - 0x4E, - 0x64, - 0x64, - 0x68, - 0x6A, - 0x74, - 0x74, - 0x74, - 0x68, - 0x5B, - 0x5C, - 0x3D, - 0xD3, - 0xF4, - 0xF4, - 0xE6, - 0xD0, - 0xD0, - 0xF9, - 0xF9, - 0xEC, - 0xFA, - 0xEC, - 0xF9, - 0xA5, - 0x8D, - 0x7B, - 0x88, - 0x04, - 0x84, - 0x00, - 0x6C, - 0x74, - 0x75, - 0x5F, - 0x39, - 0x86, - 0xFE, - 0xFA, - 0xF9, - 0xFF, - 0x06, - 0xFB, - 0x06, - 0xFF, - 0xC0, - 0x05, - 0x81, - 0x76, - 0x65, - 0x88, - 0x90, - 0x91, - 0x95, - 0x91, - 0x91, - 0x84, - 0x75, - 0x6D, - 0x79, - 0x05, - 0xF1, - 0xEC, - 0x04, - 0x05, - 0x05, - 0x05, - 0x06, - 0x01, - 0xE1, - 0xD9, - 0xD8, - 0xD7, - 0x09, - 0x24, - 0x95, - 0x97, - 0x24, - 0x24, - 0x33, - 0x33, - 0x33, - 0x35, - 0x34, - 0x36, - 0x37, - 0x56, - 0x57, - 0x3C, - 0x68, - 0xA3, - 0xAC, - 0xAC, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xAE, - 0xB0, - 0xAE, - 0xAA, - 0xAA, - 0xA6, - 0xA0, - 0x96, - 0xA4, - 0xA6, - 0xAA, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0x04, - 0xB1, - 0x00, - 0x0C, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0x06, - 0xB3, - 0x00, - 0x21, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xA3, - 0x74, - 0x64, - 0x75, - 0x4E, - 0x3C, - 0x3A, - 0xA1, - 0xA2, - 0x3F, - 0x2A, - 0xD7, - 0xD5, - 0xD9, - 0x4C, - 0x02, - 0x11, - 0x24, - 0x16, - 0x25, - 0x20, - 0x20, - 0x3E, - 0x4B, - 0x48, - 0x6F, - 0x85, - 0xA3, - 0xA9, - 0x00, - 0x06, - 0xA2, - 0x00, - 0x54, - 0xA7, - 0x94, - 0x8E, - 0x54, - 0x41, - 0x40, - 0x2E, - 0x41, - 0x2E, - 0x2C, - 0x1F, - 0x33, - 0x60, - 0x7B, - 0x90, - 0xA6, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA3, - 0x98, - 0x85, - 0x71, - 0x87, - 0x71, - 0x66, - 0x63, - 0x71, - 0x71, - 0x59, - 0x71, - 0x71, - 0x71, - 0x87, - 0x71, - 0x69, - 0x87, - 0x85, - 0x98, - 0xA7, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x7D, - 0x6F, - 0x40, - 0x61, - 0x70, - 0x66, - 0x59, - 0x66, - 0x66, - 0x66, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x66, - 0x54, - 0x54, - 0x53, - 0x49, - 0x2C, - 0x2C, - 0x2B, - 0x2B, - 0x33, - 0x80, - 0x60, - 0x60, - 0x7C, - 0x77, - 0x75, - 0x88, - 0x90, - 0x95, - 0x96, - 0xA6, - 0x06, - 0x9B, - 0x00, - 0x0D, - 0xA2, - 0x9B, - 0x9B, - 0x9F, - 0x9F, - 0x90, - 0x7B, - 0x60, - 0x48, - 0x2C, - 0x27, - 0x41, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x22, - 0x3D, - 0x19, - 0x50, - 0x4F, - 0x5F, - 0x5E, - 0x6B, - 0x64, - 0x64, - 0x75, - 0x68, - 0x68, - 0x00, - 0x06, - 0x74, - 0x00, - 0x14, - 0x75, - 0x64, - 0x7B, - 0x77, - 0x75, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x68, - 0x5E, - 0x4F, - 0x3D, - 0xFE, - 0xF4, - 0xE6, - 0xFA, - 0xD0, - 0xF9, - 0xD1, - 0x04, - 0xF9, - 0x00, - 0x05, - 0x81, - 0x89, - 0x7C, - 0x75, - 0x7F, - 0x00, - 0x04, - 0x84, - 0x00, - 0x2C, - 0x74, - 0x6B, - 0x5C, - 0x92, - 0x07, - 0xFA, - 0x04, - 0xFF, - 0xFF, - 0x06, - 0xC4, - 0x05, - 0x29, - 0x29, - 0xFF, - 0x1D, - 0x8D, - 0x7B, - 0x90, - 0x91, - 0x95, - 0x95, - 0x95, - 0x84, - 0xD9, - 0xD4, - 0xDA, - 0xE3, - 0xF1, - 0xEA, - 0xF9, - 0x04, - 0x08, - 0x05, - 0x06, - 0x13, - 0x18, - 0x05, - 0x77, - 0x9F, - 0x57, - 0x1F, - 0x25, - 0x24, - 0x04, - 0x34, - 0x00, - 0x40, - 0x33, - 0x32, - 0x3F, - 0x3F, - 0x3C, - 0x4E, - 0x68, - 0x94, - 0xA9, - 0xAE, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAE, - 0xB0, - 0xAC, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB0, - 0xB0, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xB1, - 0xAC, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB1, - 0x05, - 0xB3, - 0x00, - 0x18, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xAD, - 0x74, - 0x75, - 0x75, - 0x4E, - 0x4E, - 0x47, - 0x74, - 0xA2, - 0x7D, - 0x2A, - 0xBB, - 0x04, - 0xD2, - 0x00, - 0x34, - 0xD5, - 0xC6, - 0xE4, - 0x02, - 0x1D, - 0x19, - 0x24, - 0x2D, - 0x49, - 0x49, - 0x48, - 0x48, - 0x20, - 0x6E, - 0x7D, - 0x94, - 0xA3, - 0x98, - 0x7D, - 0x54, - 0x52, - 0x49, - 0x49, - 0x25, - 0x49, - 0x2B, - 0x1F, - 0x33, - 0x52, - 0x7B, - 0x90, - 0xA4, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA3, - 0x98, - 0x85, - 0x71, - 0x71, - 0x63, - 0x66, - 0x70, - 0x2E, - 0x2C, - 0x24, - 0x60, - 0x52, - 0x6E, - 0x4B, - 0x3E, - 0x04, - 0x71, - 0x00, - 0x09, - 0x87, - 0x71, - 0x71, - 0x69, - 0x87, - 0x85, - 0x98, - 0xA1, - 0xA4, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x1A, - 0xA1, - 0x7D, - 0x65, - 0x61, - 0x61, - 0x41, - 0x42, - 0x41, - 0x40, - 0x49, - 0x2C, - 0x4A, - 0x2C, - 0x48, - 0x60, - 0x80, - 0x56, - 0x6D, - 0x7B, - 0x75, - 0x88, - 0x90, - 0x95, - 0xA0, - 0x9F, - 0x9F, - 0x05, - 0x9B, - 0x00, - 0x16, - 0xA2, - 0x9B, - 0xA6, - 0xA4, - 0xA1, - 0xA3, - 0xA3, - 0x94, - 0x8E, - 0x94, - 0xA1, - 0xA6, - 0x9F, - 0x9F, - 0x9F, - 0x9B, - 0x9F, - 0x90, - 0x7B, - 0x8D, - 0x2B, - 0x2C, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x64, - 0x64, - 0x64, - 0x68, - 0x68, - 0x68, - 0x75, - 0x68, - 0x64, - 0x64, - 0x77, - 0x77, - 0x7C, - 0x6D, - 0x8D, - 0x89, - 0x89, - 0xA5, - 0xC0, - 0xD0, - 0xEC, - 0xEC, - 0xCF, - 0xB7, - 0x89, - 0x7C, - 0x7B, - 0x74, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x64, - 0x5F, - 0x50, - 0x86, - 0xFA, - 0xFE, - 0xCF, - 0xFA, - 0xD1, - 0xF5, - 0xF9, - 0xC0, - 0xF9, - 0xF9, - 0xF5, - 0x1D, - 0x8D, - 0x7B, - 0x88, - 0x90, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x75, - 0x6D, - 0x50, - 0x1A, - 0x04, - 0x04, - 0x29, - 0x05, - 0x81, - 0x06, - 0x01, - 0xFF, - 0xFF, - 0x05, - 0xFF, - 0x48, - 0x65, - 0x88, - 0x90, - 0x97, - 0xD4, - 0xD5, - 0xD2, - 0xD5, - 0xD5, - 0xD4, - 0xDF, - 0xE7, - 0xF1, - 0xF9, - 0x08, - 0x05, - 0x09, - 0x1F, - 0x90, - 0xA1, - 0x1F, - 0x1F, - 0x48, - 0x24, - 0x35, - 0x37, - 0x35, - 0x36, - 0x3F, - 0x52, - 0x56, - 0x3C, - 0x3C, - 0x4E, - 0x4E, - 0x5D, - 0x6A, - 0x91, - 0xA7, - 0xAA, - 0xB1, - 0xB3, - 0xB1, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAE, - 0xB0, - 0xAE, - 0xAC, - 0xAC, - 0xB1, - 0xAE, - 0xB0, - 0xB0, - 0xB1, - 0xB0, - 0xB0, - 0xAE, - 0xAE, - 0xB0, - 0xAE, - 0xB0, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xAE, - 0x00, - 0x05, - 0xB3, - 0x01, - 0xB1, - 0x08, - 0xB3, - 0x00, - 0x15, - 0xB1, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0x97, - 0x74, - 0x75, - 0x57, - 0x4E, - 0x3C, - 0x3C, - 0xA6, - 0xA3, - 0x32, - 0x28, - 0x00, - 0x09, - 0xD2, - 0x00, - 0x04, - 0xD7, - 0xBB, - 0x0A, - 0x24, - 0x04, - 0x49, - 0x00, - 0x39, - 0x48, - 0x34, - 0x24, - 0x2C, - 0x49, - 0x25, - 0x2D, - 0x49, - 0x24, - 0x11, - 0x2B, - 0x58, - 0x60, - 0x77, - 0x8E, - 0xA4, - 0x9B, - 0xA2, - 0xA2, - 0xA6, - 0xA7, - 0x98, - 0x85, - 0x87, - 0x43, - 0x63, - 0x70, - 0x62, - 0x2E, - 0x49, - 0x48, - 0x60, - 0x6D, - 0x7B, - 0x90, - 0xA4, - 0x9F, - 0x96, - 0x94, - 0x7B, - 0x6E, - 0x6F, - 0x41, - 0x71, - 0x71, - 0x59, - 0x66, - 0x71, - 0x87, - 0x71, - 0x70, - 0x70, - 0x87, - 0x98, - 0xA3, - 0xA4, - 0xA2, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x32, - 0xA4, - 0x88, - 0x7C, - 0x8D, - 0x6D, - 0x6D, - 0x7B, - 0x75, - 0x88, - 0x97, - 0x95, - 0xA6, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0xA4, - 0xA4, - 0xA1, - 0x97, - 0x94, - 0x94, - 0x8E, - 0x7D, - 0x7D, - 0x66, - 0x42, - 0x54, - 0x42, - 0x41, - 0x42, - 0x41, - 0x27, - 0x53, - 0x6C, - 0x8E, - 0xA1, - 0xA0, - 0x9F, - 0x9F, - 0x9F, - 0x9B, - 0x9F, - 0x97, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x15, - 0x77, - 0x6B, - 0x6D, - 0x8D, - 0x8D, - 0x7E, - 0x81, - 0xC4, - 0xF5, - 0xEC, - 0xF0, - 0xE6, - 0xEC, - 0xF0, - 0xE5, - 0xE5, - 0xE5, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0x00, - 0x04, - 0xE6, - 0x00, - 0x13, - 0xEC, - 0xEC, - 0xC0, - 0x76, - 0x7B, - 0x75, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x64, - 0x5F, - 0x19, - 0x22, - 0xFE, - 0xFA, - 0xFA, - 0xF9, - 0x00, - 0x04, - 0x29, - 0x00, - 0x1C, - 0xF5, - 0xF5, - 0x29, - 0x67, - 0x7C, - 0x75, - 0x7F, - 0x91, - 0x91, - 0x8C, - 0x84, - 0x7F, - 0x75, - 0x5F, - 0x19, - 0x29, - 0x04, - 0xF5, - 0xFF, - 0x06, - 0x02, - 0x18, - 0x05, - 0x05, - 0xFF, - 0x06, - 0x1D, - 0xE8, - 0x05, - 0xD2, - 0x00, - 0x0D, - 0xD5, - 0xD2, - 0xD5, - 0xD5, - 0xD6, - 0xDF, - 0x02, - 0x0C, - 0x52, - 0x9F, - 0x6C, - 0x1F, - 0x1F, - 0x00, - 0x04, - 0x33, - 0x00, - 0x27, - 0x35, - 0x53, - 0x35, - 0x3F, - 0x3F, - 0x56, - 0x3C, - 0x3C, - 0x4E, - 0x5B, - 0x72, - 0x83, - 0x83, - 0x7A, - 0x91, - 0xA6, - 0xA9, - 0xB0, - 0xAE, - 0xAC, - 0xB0, - 0xAC, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xB1, - 0xAE, - 0xB1, - 0xAC, - 0xB0, - 0xAE, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x23, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x0E, - 0xA9, - 0x74, - 0x75, - 0x64, - 0x4E, - 0x4E, - 0x3A, - 0x97, - 0xA2, - 0x65, - 0x56, - 0x87, - 0xD7, - 0xC2, - 0x09, - 0xD2, - 0x00, - 0x49, - 0xA3, - 0x7C, - 0x34, - 0x1F, - 0x1F, - 0x2C, - 0x49, - 0x49, - 0x40, - 0x34, - 0x24, - 0x1F, - 0x39, - 0x39, - 0x5C, - 0x77, - 0x90, - 0x96, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0xA7, - 0x98, - 0x87, - 0x87, - 0x69, - 0x63, - 0x69, - 0x42, - 0x55, - 0x2C, - 0x58, - 0x5C, - 0x7C, - 0x88, - 0x95, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7D, - 0x53, - 0x40, - 0x62, - 0x70, - 0x87, - 0x59, - 0x71, - 0x66, - 0x71, - 0x87, - 0x87, - 0x66, - 0x87, - 0x7D, - 0xA3, - 0xA4, - 0xA2, - 0xA6, - 0x9B, - 0xA2, - 0x9B, - 0x9B, - 0xA2, - 0x9B, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x28, - 0xA6, - 0xA6, - 0xA4, - 0xA4, - 0xA3, - 0xA3, - 0x94, - 0x8E, - 0x7D, - 0x7D, - 0x66, - 0x3B, - 0x54, - 0x54, - 0x41, - 0x41, - 0x62, - 0x41, - 0x41, - 0x53, - 0x41, - 0x53, - 0x54, - 0x54, - 0x70, - 0x63, - 0x70, - 0x42, - 0x42, - 0x41, - 0x41, - 0x37, - 0x65, - 0x8E, - 0xA1, - 0xA6, - 0x9F, - 0x9B, - 0x9B, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xEC, - 0xE6, - 0xF0, - 0xE5, - 0xF8, - 0xF8, - 0xF0, - 0xF0, - 0xF0, - 0xDD, - 0xDD, - 0xE6, - 0xF0, - 0x00, - 0x07, - 0xE6, - 0x00, - 0x0F, - 0xE5, - 0xE5, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xEC, - 0xEC, - 0xF9, - 0xC0, - 0xFF, - 0x8D, - 0x7B, - 0x74, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x28, - 0x74, - 0x77, - 0x5C, - 0x3D, - 0x22, - 0xFA, - 0xFA, - 0xD3, - 0x29, - 0x05, - 0x29, - 0x29, - 0x29, - 0x05, - 0x05, - 0x1D, - 0x48, - 0x7B, - 0x88, - 0x90, - 0x91, - 0x91, - 0x91, - 0x84, - 0x74, - 0x64, - 0x5C, - 0x1A, - 0x29, - 0x29, - 0x05, - 0xFF, - 0xFF, - 0x18, - 0x01, - 0x06, - 0x02, - 0xE4, - 0xD7, - 0xD5, - 0x08, - 0xD2, - 0x00, - 0x4A, - 0x0E, - 0x19, - 0x90, - 0x96, - 0x24, - 0x1F, - 0x24, - 0x24, - 0x24, - 0x34, - 0x33, - 0x33, - 0x2A, - 0x34, - 0x35, - 0x32, - 0x3F, - 0x3C, - 0x3C, - 0x5B, - 0x5D, - 0x83, - 0x83, - 0x7A, - 0x8B, - 0x83, - 0x83, - 0x8B, - 0x84, - 0xA1, - 0xA9, - 0xAA, - 0xAC, - 0xAE, - 0xAC, - 0xB1, - 0xAE, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0x04, - 0xB3, - 0x01, - 0xB1, - 0x01, - 0xB1, - 0x05, - 0xB3, - 0x01, - 0xB1, - 0x06, - 0xB3, - 0x00, - 0x12, - 0xAE, - 0x94, - 0x75, - 0x7D, - 0x57, - 0x4E, - 0x32, - 0x64, - 0xA2, - 0x8E, - 0x32, - 0x35, - 0x35, - 0x37, - 0x28, - 0x87, - 0xD7, - 0xD8, - 0x05, - 0xD2, - 0x00, - 0x22, - 0xB0, - 0xA2, - 0xA2, - 0xA6, - 0x97, - 0x7B, - 0x34, - 0x2B, - 0x1F, - 0x39, - 0x39, - 0x4F, - 0x6D, - 0x90, - 0xA1, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x85, - 0x66, - 0x42, - 0x42, - 0x42, - 0x2F, - 0x40, - 0x48, - 0x33, - 0x80, - 0x6B, - 0x90, - 0xA1, - 0x04, - 0xA2, - 0x00, - 0x31, - 0xA7, - 0xA3, - 0x8E, - 0x87, - 0x85, - 0x98, - 0xA7, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0xA1, - 0x7D, - 0x7C, - 0x6E, - 0x55, - 0x54, - 0x71, - 0x59, - 0x71, - 0x66, - 0x87, - 0x87, - 0x70, - 0x66, - 0x71, - 0x7D, - 0xA3, - 0xA4, - 0xA6, - 0xA6, - 0xA7, - 0xA1, - 0xA3, - 0xA3, - 0x98, - 0x98, - 0x7D, - 0x7D, - 0x59, - 0x66, - 0x66, - 0x54, - 0x54, - 0x54, - 0x41, - 0x42, - 0x00, - 0x05, - 0x54, - 0x00, - 0x1A, - 0x6F, - 0x54, - 0x54, - 0x41, - 0x54, - 0x42, - 0x41, - 0x41, - 0x54, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x42, - 0x70, - 0x63, - 0x42, - 0x42, - 0x41, - 0x2E, - 0x37, - 0x54, - 0x8E, - 0x97, - 0xA0, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xF0, - 0xE6, - 0xF0, - 0xE5, - 0xDD, - 0xE5, - 0xF0, - 0xE6, - 0xE5, - 0xF0, - 0xF0, - 0xE6, - 0xF0, - 0xE5, - 0xF7, - 0xF4, - 0xC1, - 0xFE, - 0xD3, - 0x3D, - 0x50, - 0x50, - 0x86, - 0xFE, - 0xF4, - 0xF4, - 0xE6, - 0xD0, - 0xD0, - 0xFA, - 0x04, - 0xF9, - 0x00, - 0x30, - 0xFF, - 0x76, - 0x7C, - 0x75, - 0x7F, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x75, - 0x6B, - 0x4F, - 0x04, - 0x04, - 0xD3, - 0xF9, - 0x05, - 0x81, - 0xFF, - 0xFF, - 0xFF, - 0x05, - 0x05, - 0xFF, - 0x2B, - 0x7C, - 0x88, - 0x90, - 0x91, - 0x91, - 0x95, - 0x8C, - 0x84, - 0x74, - 0x6B, - 0x58, - 0x1A, - 0x1A, - 0x05, - 0xFF, - 0x05, - 0xFB, - 0x06, - 0x06, - 0x01, - 0xE8, - 0xC6, - 0xD8, - 0x04, - 0xD2, - 0x00, - 0x51, - 0xC6, - 0x05, - 0x35, - 0xA0, - 0x8E, - 0x39, - 0x24, - 0x1F, - 0x33, - 0x24, - 0x34, - 0x34, - 0x34, - 0x33, - 0x34, - 0x32, - 0x32, - 0x32, - 0x3C, - 0x3C, - 0x5B, - 0x72, - 0x8C, - 0xA6, - 0xA2, - 0xA2, - 0xA4, - 0x8C, - 0x8B, - 0x8B, - 0x83, - 0x8B, - 0x84, - 0xA3, - 0xA9, - 0xAC, - 0xAE, - 0xB3, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xAE, - 0xB0, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0x00, - 0x04, - 0xB3, - 0x01, - 0xAE, - 0x07, - 0xB3, - 0x00, - 0x18, - 0xA3, - 0x74, - 0x88, - 0x75, - 0x6C, - 0x57, - 0x3C, - 0xA4, - 0xA7, - 0x32, - 0x33, - 0x33, - 0x2A, - 0x2A, - 0x34, - 0x35, - 0x35, - 0x41, - 0x4C, - 0xC6, - 0xD8, - 0xD2, - 0xD7, - 0xA3, - 0x06, - 0xA2, - 0x00, - 0x54, - 0xA1, - 0x75, - 0x88, - 0xA4, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x94, - 0x87, - 0x54, - 0x6F, - 0x62, - 0x62, - 0x2E, - 0x49, - 0x49, - 0x2C, - 0x80, - 0x6D, - 0x88, - 0xA1, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0xA3, - 0x85, - 0x87, - 0x71, - 0x63, - 0x63, - 0x66, - 0x63, - 0x69, - 0x69, - 0x87, - 0x98, - 0xA3, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x6E, - 0x52, - 0x55, - 0x6F, - 0x66, - 0x59, - 0x66, - 0x66, - 0x66, - 0x71, - 0x66, - 0x70, - 0x71, - 0x59, - 0x59, - 0x66, - 0x66, - 0x70, - 0x70, - 0x70, - 0x71, - 0x43, - 0x71, - 0x70, - 0x70, - 0x54, - 0x54, - 0x70, - 0x54, - 0x54, - 0x70, - 0x54, - 0x70, - 0x42, - 0x70, - 0x04, - 0x54, - 0x00, - 0x07, - 0x6F, - 0x54, - 0x54, - 0x54, - 0x6F, - 0x6F, - 0x6F, - 0x00, - 0x05, - 0x41, - 0x00, - 0x0B, - 0x6F, - 0x62, - 0x62, - 0x42, - 0x63, - 0x62, - 0x40, - 0x25, - 0x37, - 0x54, - 0x8E, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE5, - 0x00, - 0x32, - 0xF7, - 0xE5, - 0xE6, - 0xF4, - 0xF4, - 0xF4, - 0xB6, - 0x04, - 0x39, - 0x4F, - 0x5F, - 0x6B, - 0x4E, - 0x64, - 0x68, - 0x74, - 0x74, - 0x74, - 0x68, - 0x64, - 0x5F, - 0x50, - 0x86, - 0xFA, - 0xF4, - 0xDC, - 0xDC, - 0xD0, - 0xEC, - 0xD3, - 0xF5, - 0xF9, - 0xFA, - 0xF9, - 0x81, - 0x52, - 0x7B, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x90, - 0x7F, - 0x75, - 0x56, - 0x50, - 0x1A, - 0x04, - 0x04, - 0x29, - 0x05, - 0xFF, - 0x00, - 0x69, - 0x05, - 0x05, - 0x1D, - 0x7E, - 0x7B, - 0x88, - 0x97, - 0x91, - 0x95, - 0x91, - 0x84, - 0x7F, - 0x75, - 0x60, - 0x39, - 0xEA, - 0xDD, - 0xEC, - 0x04, - 0x1A, - 0x06, - 0x01, - 0x01, - 0xE8, - 0xBB, - 0xD7, - 0xD8, - 0xE1, - 0x19, - 0x88, - 0xA0, - 0x52, - 0x1F, - 0x24, - 0x24, - 0x33, - 0x24, - 0x33, - 0x33, - 0x33, - 0x34, - 0x32, - 0x56, - 0x35, - 0x3C, - 0x3C, - 0x3C, - 0x5D, - 0x7A, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xA6, - 0x95, - 0x8B, - 0x7A, - 0x74, - 0x8E, - 0x94, - 0x90, - 0xA7, - 0xAD, - 0xAC, - 0xAE, - 0xAE, - 0xAE, - 0xAC, - 0xAC, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xAE, - 0xAE, - 0x00, - 0x06, - 0xB3, - 0x00, - 0x25, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xA9, - 0x74, - 0x75, - 0x64, - 0x57, - 0x4E, - 0x32, - 0x90, - 0xA2, - 0x6C, - 0x2A, - 0xD7, - 0xD5, - 0xD7, - 0xE1, - 0x0A, - 0x1F, - 0x1F, - 0x24, - 0x35, - 0x35, - 0x40, - 0x4C, - 0x2F, - 0x35, - 0x53, - 0x7D, - 0xA3, - 0xA7, - 0x00, - 0x06, - 0xA2, - 0x00, - 0x1A, - 0xA3, - 0x94, - 0x59, - 0x54, - 0x53, - 0x2E, - 0x41, - 0x2E, - 0x20, - 0x48, - 0x33, - 0x5C, - 0x6D, - 0x88, - 0xA1, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0xA3, - 0x85, - 0x59, - 0x71, - 0x63, - 0x63, - 0x05, - 0x87, - 0x00, - 0x17, - 0x69, - 0x71, - 0x71, - 0x71, - 0x70, - 0x71, - 0x59, - 0x85, - 0xA3, - 0xA4, - 0xA2, - 0xA2, - 0x9B, - 0xA2, - 0x9B, - 0xA4, - 0x94, - 0x7C, - 0x7E, - 0x40, - 0x62, - 0x66, - 0x71, - 0x00, - 0x06, - 0x66, - 0x00, - 0x2F, - 0x70, - 0x66, - 0x66, - 0x70, - 0x70, - 0x54, - 0x66, - 0x66, - 0x70, - 0x54, - 0x54, - 0x70, - 0x70, - 0x70, - 0x42, - 0x54, - 0x54, - 0x54, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x6F, - 0x42, - 0x54, - 0x6F, - 0x53, - 0x41, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x6F, - 0x41, - 0x53, - 0x53, - 0x53, - 0x41, - 0x62, - 0x53, - 0x41, - 0x6F, - 0x62, - 0x2F, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xF7, - 0xF4, - 0xF4, - 0x07, - 0x3D, - 0x50, - 0x5C, - 0x5F, - 0x5E, - 0x5B, - 0x64, - 0x68, - 0x75, - 0x00, - 0x04, - 0x74, - 0x00, - 0x05, - 0x75, - 0x75, - 0x64, - 0x77, - 0x7B, - 0x00, - 0x04, - 0x74, - 0x00, - 0x74, - 0x68, - 0x64, - 0x56, - 0x50, - 0x04, - 0xFE, - 0xFA, - 0xE6, - 0xF9, - 0xF9, - 0xD1, - 0xF9, - 0xF9, - 0x05, - 0xF5, - 0x06, - 0x58, - 0x8D, - 0x7B, - 0x7F, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x74, - 0x75, - 0x56, - 0x39, - 0x04, - 0x04, - 0x29, - 0x05, - 0xFF, - 0x1D, - 0xFF, - 0xFF, - 0x06, - 0xFF, - 0x1D, - 0x76, - 0x7E, - 0x7B, - 0x90, - 0x91, - 0x95, - 0x95, - 0x95, - 0x90, - 0xD4, - 0xD5, - 0xDA, - 0xE3, - 0xEF, - 0xF5, - 0xFA, - 0x04, - 0x1D, - 0x09, - 0x14, - 0x0E, - 0x09, - 0x24, - 0x95, - 0x90, - 0x1F, - 0x24, - 0x48, - 0x24, - 0x34, - 0x34, - 0x33, - 0x34, - 0x34, - 0x32, - 0x34, - 0x32, - 0x3F, - 0x32, - 0x3C, - 0x5B, - 0x72, - 0xA4, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0x91, - 0x74, - 0x74, - 0x75, - 0x74, - 0x74, - 0x74, - 0x94, - 0xA3, - 0xA9, - 0xAD, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xAC, - 0xB0, - 0xB1, - 0xB0, - 0xB0, - 0xB1, - 0xB0, - 0xAC, - 0xB0, - 0x04, - 0xB1, - 0x00, - 0x19, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0x00, - 0x04, - 0xB3, - 0x00, - 0x0E, - 0xAE, - 0xB3, - 0xAE, - 0x90, - 0x75, - 0x75, - 0x57, - 0x4E, - 0x32, - 0x64, - 0xA2, - 0x94, - 0x2A, - 0xBB, - 0x05, - 0xD2, - 0x00, - 0x1E, - 0xD7, - 0xD9, - 0x00, - 0x1D, - 0x19, - 0x20, - 0x42, - 0x6F, - 0x2E, - 0x62, - 0x49, - 0x49, - 0x52, - 0x66, - 0x8E, - 0x94, - 0x85, - 0x59, - 0x54, - 0x41, - 0x40, - 0x2E, - 0x49, - 0x24, - 0x1F, - 0x39, - 0x4F, - 0x77, - 0x88, - 0xA1, - 0x04, - 0xA2, - 0x00, - 0x0F, - 0xA7, - 0x98, - 0x85, - 0x87, - 0x71, - 0x69, - 0x63, - 0x69, - 0x71, - 0x71, - 0x71, - 0x63, - 0x71, - 0x87, - 0x69, - 0x00, - 0x04, - 0x87, - 0x00, - 0x17, - 0x69, - 0x71, - 0x71, - 0x71, - 0x43, - 0x66, - 0x59, - 0x85, - 0x98, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0x9B, - 0x96, - 0x97, - 0x7D, - 0x60, - 0x40, - 0x6F, - 0x71, - 0x71, - 0x00, - 0x08, - 0x66, - 0x00, - 0x0C, - 0x70, - 0x70, - 0x54, - 0x54, - 0x66, - 0x70, - 0x66, - 0x70, - 0x70, - 0x70, - 0x43, - 0x70, - 0x06, - 0x54, - 0x00, - 0x04, - 0x42, - 0x62, - 0x42, - 0x42, - 0x0C, - 0x41, - 0x00, - 0x08, - 0x40, - 0x37, - 0x40, - 0x37, - 0x62, - 0x41, - 0x62, - 0x3E, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x5F, - 0x5E, - 0x5B, - 0x64, - 0x64, - 0x68, - 0x68, - 0x75, - 0x74, - 0x75, - 0x75, - 0x64, - 0x77, - 0x8D, - 0x89, - 0xA5, - 0xFF, - 0xC0, - 0xEC, - 0xEC, - 0xE6, - 0xEC, - 0xC0, - 0x89, - 0x7C, - 0x75, - 0x74, - 0x7F, - 0x7F, - 0x74, - 0x68, - 0x77, - 0x5F, - 0x19, - 0xB6, - 0xF9, - 0xF5, - 0xF9, - 0xF5, - 0xC0, - 0x29, - 0xC0, - 0x05, - 0xF5, - 0xFF, - 0x1D, - 0x7E, - 0x7C, - 0x88, - 0x90, - 0x84, - 0x84, - 0x84, - 0x90, - 0x74, - 0x77, - 0x5C, - 0x19, - 0x29, - 0x29, - 0x29, - 0x1D, - 0x1D, - 0x06, - 0x67, - 0x1D, - 0x06, - 0x1D, - 0x67, - 0x49, - 0x7C, - 0x88, - 0x90, - 0x98, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xD5, - 0xD4, - 0xDA, - 0xE7, - 0xF1, - 0x04, - 0x05, - 0x09, - 0x09, - 0x7B, - 0x9F, - 0x65, - 0x1F, - 0x2C, - 0x33, - 0x24, - 0x05, - 0x34, - 0x00, - 0x0A, - 0x35, - 0x35, - 0x56, - 0x32, - 0x3C, - 0x3C, - 0x51, - 0x7A, - 0xAA, - 0xB0, - 0x05, - 0xAA, - 0x00, - 0x12, - 0xB0, - 0xAA, - 0xAA, - 0xAE, - 0xA7, - 0x68, - 0x68, - 0x7D, - 0x7D, - 0x75, - 0x75, - 0x75, - 0x74, - 0x74, - 0x94, - 0x94, - 0xA7, - 0xAD, - 0x04, - 0xAE, - 0x00, - 0x06, - 0xAC, - 0xAE, - 0xAE, - 0xB0, - 0xB1, - 0xB1, - 0x04, - 0xAE, - 0x00, - 0x09, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0x00, - 0x04, - 0xB3, - 0x01, - 0xAE, - 0x01, - 0xB1, - 0x05, - 0xB3, - 0x00, - 0x16, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xA7, - 0x68, - 0x75, - 0x75, - 0x4E, - 0x3F, - 0x4D, - 0xA4, - 0xA7, - 0x32, - 0x27, - 0x09, - 0xD2, - 0x00, - 0x30, - 0xD8, - 0xC6, - 0x15, - 0x33, - 0x25, - 0x42, - 0x62, - 0x41, - 0x62, - 0x49, - 0x2E, - 0x48, - 0x34, - 0x20, - 0x49, - 0x20, - 0x2C, - 0x24, - 0x39, - 0x33, - 0x77, - 0x88, - 0xA1, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x85, - 0x87, - 0x63, - 0x70, - 0x63, - 0x70, - 0x71, - 0x71, - 0x87, - 0x69, - 0x71, - 0x69, - 0x71, - 0x71, - 0x71, - 0x70, - 0x71, - 0x71, - 0x69, - 0x04, - 0x87, - 0x01, - 0x71, - 0x01, - 0x87, - 0x04, - 0x71, - 0x00, - 0x18, - 0x43, - 0x71, - 0x7D, - 0x98, - 0xA7, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7D, - 0x52, - 0x49, - 0x2E, - 0x54, - 0x71, - 0x66, - 0x66, - 0x66, - 0x70, - 0x70, - 0x66, - 0x04, - 0x70, - 0x00, - 0x18, - 0x54, - 0x54, - 0x70, - 0x70, - 0x70, - 0x71, - 0x42, - 0x70, - 0x54, - 0x54, - 0x41, - 0x54, - 0x41, - 0x6F, - 0x6F, - 0x54, - 0x42, - 0x70, - 0x42, - 0x53, - 0x53, - 0x41, - 0x6F, - 0x53, - 0x06, - 0x41, - 0x00, - 0x07, - 0x6E, - 0x41, - 0x41, - 0x40, - 0x41, - 0x41, - 0x2F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2A, - 0x68, - 0x64, - 0x75, - 0x7B, - 0x77, - 0x6D, - 0x8D, - 0x89, - 0xFF, - 0xC0, - 0xEC, - 0xEC, - 0xE6, - 0xE5, - 0xE5, - 0xF0, - 0xF0, - 0xE6, - 0xDD, - 0xEC, - 0xEC, - 0xF0, - 0xE6, - 0xE6, - 0xE6, - 0xF9, - 0x81, - 0x80, - 0x7B, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x75, - 0x4E, - 0x5F, - 0x1A, - 0x04, - 0xF9, - 0xFA, - 0x29, - 0x04, - 0x05, - 0x00, - 0x07, - 0xFF, - 0x05, - 0x06, - 0x76, - 0x6E, - 0x7B, - 0x7F, - 0x00, - 0x04, - 0x84, - 0x00, - 0x11, - 0x7F, - 0x75, - 0x6B, - 0x33, - 0x1A, - 0x29, - 0xFF, - 0xFF, - 0x06, - 0x18, - 0x18, - 0x06, - 0x06, - 0x06, - 0x1D, - 0x67, - 0xC6, - 0x00, - 0x08, - 0xD2, - 0x00, - 0x4E, - 0xD5, - 0xD6, - 0xDF, - 0x09, - 0x1F, - 0x91, - 0x97, - 0x24, - 0x20, - 0x2E, - 0x20, - 0x49, - 0x34, - 0x34, - 0x33, - 0x34, - 0x34, - 0x35, - 0x32, - 0x3F, - 0x3F, - 0x3C, - 0x3C, - 0x72, - 0x96, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0x97, - 0x68, - 0x6C, - 0x7D, - 0x75, - 0x7D, - 0x8E, - 0x75, - 0x7D, - 0x75, - 0x75, - 0x88, - 0x74, - 0x88, - 0x90, - 0xA3, - 0xAD, - 0xAC, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB3, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0x04, - 0xB3, - 0x00, - 0x1A, - 0xB1, - 0xB1, - 0xB3, - 0xB1, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xAD, - 0x8E, - 0x75, - 0x75, - 0x4E, - 0x3F, - 0x32, - 0x7F, - 0xA2, - 0x6C, - 0x56, - 0x3B, - 0xC6, - 0xD8, - 0x09, - 0xD2, - 0x00, - 0x33, - 0xA7, - 0x7D, - 0x60, - 0x33, - 0x24, - 0x25, - 0x40, - 0x41, - 0x2F, - 0x49, - 0x2D, - 0x39, - 0x39, - 0x4F, - 0x6D, - 0x88, - 0xA1, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x85, - 0x66, - 0x42, - 0x42, - 0x6F, - 0x70, - 0x66, - 0x71, - 0x71, - 0x63, - 0x71, - 0x63, - 0x71, - 0x63, - 0x71, - 0x87, - 0x71, - 0x87, - 0x71, - 0x71, - 0x87, - 0x70, - 0x66, - 0x71, - 0x71, - 0x87, - 0x71, - 0x71, - 0x00, - 0x05, - 0x87, - 0x00, - 0x1F, - 0x66, - 0x70, - 0x66, - 0x70, - 0x66, - 0x59, - 0x8E, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x6E, - 0x7E, - 0x40, - 0x70, - 0x66, - 0x66, - 0x66, - 0x54, - 0x66, - 0x54, - 0x70, - 0x42, - 0x70, - 0x54, - 0x70, - 0x00, - 0x04, - 0x54, - 0x00, - 0x16, - 0x42, - 0x54, - 0x41, - 0x54, - 0x42, - 0x6F, - 0x54, - 0x54, - 0x41, - 0x41, - 0x53, - 0x41, - 0x41, - 0x54, - 0x63, - 0x6F, - 0x62, - 0x41, - 0x6E, - 0x53, - 0x41, - 0x53, - 0x05, - 0x41, - 0x00, - 0x03, - 0x40, - 0x40, - 0x27, - 0x00, - 0x00, - 0x00, - 0x00, - 0x4D, - 0x67, - 0xC4, - 0xC0, - 0xF5, - 0xF0, - 0xF0, - 0xE5, - 0xF8, - 0xF0, - 0xE5, - 0xF0, - 0xF0, - 0xE6, - 0xF0, - 0xE6, - 0xE6, - 0xF0, - 0xE6, - 0xDD, - 0xDD, - 0xDD, - 0xEC, - 0xEC, - 0xDD, - 0xEC, - 0xDC, - 0xE6, - 0xE6, - 0xEC, - 0xC0, - 0x67, - 0x8D, - 0x75, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x75, - 0x5E, - 0x4F, - 0x29, - 0x04, - 0xC0, - 0x05, - 0xFF, - 0x1D, - 0xFF, - 0x1D, - 0xFF, - 0x06, - 0x06, - 0x18, - 0x61, - 0x7C, - 0x88, - 0x90, - 0x84, - 0x91, - 0x8C, - 0x91, - 0x7F, - 0x75, - 0x6D, - 0x39, - 0x1A, - 0x05, - 0xFF, - 0x06, - 0x18, - 0x13, - 0x18, - 0x01, - 0xE8, - 0xE4, - 0xC6, - 0xD5, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x16, - 0xC6, - 0x05, - 0x3F, - 0x9F, - 0x7D, - 0x1F, - 0x48, - 0x20, - 0x49, - 0x35, - 0x20, - 0x34, - 0x34, - 0x34, - 0x35, - 0x32, - 0x56, - 0x3F, - 0x32, - 0x3C, - 0x5B, - 0x83, - 0x04, - 0xAA, - 0x00, - 0x11, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xAD, - 0x88, - 0x57, - 0x64, - 0x75, - 0x57, - 0x6C, - 0x6C, - 0x7D, - 0x85, - 0x00, - 0x06, - 0x75, - 0x00, - 0x09, - 0x8E, - 0x8E, - 0x94, - 0xA3, - 0xA7, - 0xAD, - 0xAE, - 0xAE, - 0xB3, - 0x00, - 0x04, - 0xAE, - 0x00, - 0x0F, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x06, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0x05, - 0xB3, - 0x00, - 0x11, - 0x94, - 0x88, - 0x75, - 0x57, - 0x57, - 0x3C, - 0x5B, - 0xA2, - 0x94, - 0x32, - 0x33, - 0x35, - 0x36, - 0x41, - 0x63, - 0xBB, - 0xD7, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x21, - 0xAC, - 0xA2, - 0xA2, - 0xAA, - 0xA1, - 0x8E, - 0x7C, - 0x33, - 0x1F, - 0x39, - 0x33, - 0x6D, - 0x8E, - 0x97, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x98, - 0x7D, - 0x66, - 0x6F, - 0x41, - 0x42, - 0x63, - 0x70, - 0x63, - 0x71, - 0x70, - 0x63, - 0x71, - 0x63, - 0x00, - 0x06, - 0x71, - 0x00, - 0x05, - 0x63, - 0x71, - 0x71, - 0x69, - 0x87, - 0x00, - 0x05, - 0x71, - 0x00, - 0x49, - 0x70, - 0x71, - 0x70, - 0x71, - 0x87, - 0x71, - 0x87, - 0x87, - 0x66, - 0x71, - 0x71, - 0x71, - 0x66, - 0x66, - 0x70, - 0x66, - 0x59, - 0x85, - 0xA3, - 0xA4, - 0x9B, - 0xA6, - 0x9B, - 0x9B, - 0x9B, - 0xA1, - 0x8E, - 0x7C, - 0x49, - 0x40, - 0x41, - 0x54, - 0x66, - 0x70, - 0x54, - 0x70, - 0x54, - 0x70, - 0x66, - 0x70, - 0x42, - 0x54, - 0x42, - 0x54, - 0x6F, - 0x54, - 0x54, - 0x6F, - 0x42, - 0x42, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x53, - 0x6F, - 0x62, - 0x6F, - 0x42, - 0x41, - 0x42, - 0x41, - 0x53, - 0x40, - 0x41, - 0x40, - 0x40, - 0x41, - 0x41, - 0x27, - 0x41, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x03, - 0xF8, - 0xF8, - 0xE5, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x66, - 0xE5, - 0xE5, - 0xE6, - 0xE6, - 0xF0, - 0xCB, - 0xF0, - 0xDC, - 0xF0, - 0xE6, - 0xF0, - 0xDC, - 0xDC, - 0xDC, - 0xDD, - 0xDD, - 0xEA, - 0xEC, - 0xEA, - 0xF5, - 0xEC, - 0xEC, - 0xEC, - 0xFA, - 0xEC, - 0xF9, - 0xFF, - 0x48, - 0x7C, - 0x75, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x74, - 0x64, - 0x56, - 0x4F, - 0xFF, - 0x29, - 0x29, - 0x06, - 0x67, - 0x18, - 0x67, - 0x1D, - 0x18, - 0x06, - 0x18, - 0x2C, - 0x52, - 0x7B, - 0x88, - 0x90, - 0x91, - 0x95, - 0x91, - 0x84, - 0x74, - 0x64, - 0x56, - 0x58, - 0x1A, - 0x05, - 0xFF, - 0x29, - 0x05, - 0x1D, - 0x01, - 0x0E, - 0xE1, - 0xD9, - 0xD7, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0x0B, - 0x19, - 0x90, - 0xA1, - 0x49, - 0x24, - 0x20, - 0x24, - 0x34, - 0x35, - 0x34, - 0x34, - 0x34, - 0x37, - 0x3F, - 0x35, - 0x36, - 0x3F, - 0x3C, - 0x3C, - 0x5D, - 0xA1, - 0xAA, - 0xB0, - 0xB0, - 0x04, - 0xAA, - 0x00, - 0x12, - 0xB0, - 0xAA, - 0xAA, - 0xAC, - 0xA3, - 0x75, - 0x75, - 0x6C, - 0x57, - 0x57, - 0x57, - 0x4E, - 0x57, - 0x57, - 0x7B, - 0x57, - 0x75, - 0x6C, - 0x05, - 0x75, - 0x00, - 0x13, - 0x74, - 0x88, - 0x94, - 0x94, - 0xA7, - 0xA9, - 0xAC, - 0xAE, - 0xAE, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0x00, - 0x05, - 0xB1, - 0x00, - 0x04, - 0xB3, - 0xB3, - 0xAE, - 0xB1, - 0x05, - 0xB3, - 0x01, - 0xB1, - 0x04, - 0xB3, - 0x00, - 0x1A, - 0x82, - 0xA7, - 0x74, - 0x75, - 0x7B, - 0x4E, - 0x4E, - 0x4D, - 0xA4, - 0xA7, - 0x3F, - 0x20, - 0x3E, - 0x1F, - 0x21, - 0x2A, - 0x34, - 0x35, - 0x27, - 0x63, - 0xBB, - 0xD7, - 0xD8, - 0xC6, - 0x8E, - 0xA7, - 0x05, - 0xA2, - 0x00, - 0x1C, - 0xA7, - 0x90, - 0x97, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA3, - 0x8E, - 0x7D, - 0x71, - 0x41, - 0x40, - 0x27, - 0x6F, - 0x54, - 0x6F, - 0x42, - 0x43, - 0x71, - 0x69, - 0x71, - 0x71, - 0x63, - 0x71, - 0x66, - 0x70, - 0x43, - 0x0B, - 0x71, - 0x01, - 0x70, - 0x05, - 0x87, - 0x00, - 0x15, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x66, - 0x66, - 0x87, - 0x69, - 0x71, - 0x71, - 0x71, - 0x66, - 0x66, - 0x70, - 0x66, - 0x66, - 0x85, - 0xA3, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x27, - 0x96, - 0x94, - 0x7B, - 0x7E, - 0x2C, - 0x6E, - 0x54, - 0x66, - 0x66, - 0x70, - 0x54, - 0x54, - 0x54, - 0x70, - 0x54, - 0x54, - 0x54, - 0x42, - 0x54, - 0x54, - 0x54, - 0x6F, - 0x41, - 0x54, - 0x6F, - 0x42, - 0x41, - 0x41, - 0x53, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x42, - 0x62, - 0x62, - 0x2F, - 0x41, - 0x41, - 0x00, - 0x06, - 0x40, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF0, - 0xE5, - 0xF8, - 0xE5, - 0xE5, - 0xE5, - 0xF0, - 0xF0, - 0xE5, - 0x00, - 0x06, - 0xF0, - 0x00, - 0x05, - 0xCB, - 0xE6, - 0xDC, - 0xF0, - 0xF0, - 0x00, - 0x05, - 0xDC, - 0x00, - 0x44, - 0xF5, - 0xDD, - 0xEC, - 0xEC, - 0xEA, - 0xF5, - 0xF5, - 0xF5, - 0xF9, - 0xF9, - 0xF9, - 0x29, - 0x1D, - 0x7E, - 0x7B, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x74, - 0x77, - 0x56, - 0x58, - 0x05, - 0x05, - 0x05, - 0x01, - 0x13, - 0x13, - 0x13, - 0x67, - 0x18, - 0x06, - 0x1D, - 0x48, - 0x7C, - 0x7D, - 0x94, - 0x91, - 0x91, - 0x95, - 0x91, - 0x84, - 0x88, - 0x7B, - 0x76, - 0xE7, - 0xF1, - 0xF0, - 0xFA, - 0x29, - 0x05, - 0x09, - 0x01, - 0x0B, - 0xBB, - 0xC6, - 0xD9, - 0x09, - 0x52, - 0xA0, - 0x8E, - 0x1F, - 0x20, - 0x49, - 0x20, - 0x20, - 0x04, - 0x34, - 0x00, - 0x08, - 0x35, - 0x35, - 0x3F, - 0x36, - 0x3F, - 0x3F, - 0x4E, - 0x83, - 0x04, - 0xAA, - 0x00, - 0x03, - 0xB0, - 0xAA, - 0xB0, - 0x00, - 0x04, - 0xAC, - 0x00, - 0x07, - 0xAD, - 0x75, - 0x75, - 0x64, - 0x57, - 0x57, - 0x6C, - 0x00, - 0x04, - 0x57, - 0x00, - 0x14, - 0x4E, - 0x57, - 0x57, - 0x7B, - 0x57, - 0x75, - 0x6C, - 0x75, - 0x7D, - 0x75, - 0x75, - 0x75, - 0x88, - 0x8E, - 0x88, - 0x94, - 0xA3, - 0xA9, - 0xAD, - 0xAE, - 0x04, - 0xB3, - 0x00, - 0x35, - 0xAE, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xB1, - 0x90, - 0x8E, - 0x75, - 0x57, - 0x57, - 0x32, - 0x88, - 0xA2, - 0x6C, - 0x2A, - 0xC6, - 0xD2, - 0xD5, - 0xC6, - 0xE1, - 0x17, - 0x19, - 0x1F, - 0x24, - 0x40, - 0x41, - 0x62, - 0x63, - 0x25, - 0x52, - 0x66, - 0x8E, - 0xA3, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x28, - 0xA3, - 0x8E, - 0x6C, - 0x70, - 0x49, - 0x49, - 0x25, - 0x2E, - 0x6E, - 0x53, - 0x6F, - 0x69, - 0x70, - 0x54, - 0x42, - 0x70, - 0x70, - 0x71, - 0x71, - 0x87, - 0x87, - 0x87, - 0x63, - 0x71, - 0x42, - 0x6F, - 0x55, - 0x2E, - 0x40, - 0x62, - 0x43, - 0x71, - 0x66, - 0x71, - 0x70, - 0x66, - 0x71, - 0x71, - 0x71, - 0x87, - 0x08, - 0x71, - 0x00, - 0x1C, - 0x66, - 0x71, - 0x66, - 0x87, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x66, - 0x66, - 0x43, - 0x70, - 0x71, - 0x85, - 0x98, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0xA2, - 0x9B, - 0xA6, - 0x90, - 0x7B, - 0x52, - 0x2C, - 0x61, - 0x06, - 0x54, - 0x00, - 0x13, - 0x6F, - 0x54, - 0x42, - 0x54, - 0x6F, - 0x54, - 0x54, - 0x54, - 0x41, - 0x54, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x6F, - 0x53, - 0x41, - 0x41, - 0x37, - 0x00, - 0x04, - 0x41, - 0x00, - 0x07, - 0x27, - 0x40, - 0x41, - 0x41, - 0x40, - 0x40, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF0, - 0x00, - 0x13, - 0xF8, - 0xE5, - 0xE5, - 0xE5, - 0xF0, - 0xF0, - 0xDD, - 0xF0, - 0xEA, - 0xF0, - 0xE6, - 0xF0, - 0xF0, - 0xF0, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xDD, - 0x00, - 0x06, - 0xEC, - 0x00, - 0x41, - 0xF5, - 0xEA, - 0xF5, - 0xEA, - 0xF5, - 0xEA, - 0xF5, - 0xC0, - 0x05, - 0xF5, - 0x05, - 0x67, - 0x48, - 0x7C, - 0x75, - 0x90, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x74, - 0x77, - 0x56, - 0x2B, - 0x1A, - 0xFF, - 0x06, - 0x17, - 0x17, - 0x13, - 0x2B, - 0x13, - 0x18, - 0x0E, - 0x14, - 0x6F, - 0x6C, - 0x88, - 0x90, - 0x91, - 0x95, - 0x95, - 0x98, - 0xD5, - 0xD5, - 0xD4, - 0xDF, - 0xEB, - 0xF1, - 0xE6, - 0x04, - 0x05, - 0x09, - 0x13, - 0x0A, - 0x1D, - 0x88, - 0x96, - 0x37, - 0x24, - 0x20, - 0x20, - 0x34, - 0x34, - 0x20, - 0x00, - 0x06, - 0x35, - 0x00, - 0x13, - 0x3F, - 0x3F, - 0x3F, - 0x64, - 0x91, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xAE, - 0x94, - 0x75, - 0x75, - 0x00, - 0x08, - 0x57, - 0x01, - 0x6C, - 0x04, - 0x57, - 0x00, - 0x06, - 0x7B, - 0x57, - 0x75, - 0x7B, - 0x75, - 0x6C, - 0x04, - 0x75, - 0x00, - 0x0B, - 0x88, - 0x88, - 0x8E, - 0x90, - 0xA3, - 0xA3, - 0xA9, - 0xAC, - 0xAE, - 0xB3, - 0xB3, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x1C, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xB1, - 0xB3, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0x97, - 0x75, - 0x6C, - 0x57, - 0x6C, - 0x3F, - 0x4E, - 0xA2, - 0xA3, - 0x2A, - 0x4C, - 0x06, - 0xD2, - 0x00, - 0x41, - 0xD7, - 0xBB, - 0x00, - 0x05, - 0x1F, - 0x27, - 0x53, - 0x40, - 0x52, - 0x35, - 0x41, - 0x40, - 0x66, - 0x85, - 0x7D, - 0x66, - 0x53, - 0x49, - 0x49, - 0x49, - 0x3E, - 0x55, - 0x55, - 0x41, - 0x53, - 0x41, - 0x41, - 0x70, - 0x71, - 0x70, - 0x6F, - 0x62, - 0x62, - 0x55, - 0x49, - 0x2C, - 0x2B, - 0x2B, - 0x2B, - 0x33, - 0x48, - 0x8D, - 0x7C, - 0x77, - 0x7B, - 0x7B, - 0x7B, - 0x6E, - 0x48, - 0x2E, - 0x63, - 0x87, - 0x87, - 0x71, - 0x66, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x87, - 0x71, - 0x87, - 0x87, - 0x66, - 0x00, - 0x04, - 0x71, - 0x00, - 0x11, - 0x66, - 0x66, - 0x70, - 0x71, - 0x87, - 0x69, - 0x71, - 0x66, - 0x66, - 0x70, - 0x70, - 0x43, - 0x66, - 0x85, - 0x98, - 0xA3, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x07, - 0x9F, - 0x97, - 0x75, - 0x6E, - 0x2C, - 0x2D, - 0x41, - 0x00, - 0x05, - 0x54, - 0x00, - 0x10, - 0x41, - 0x54, - 0x54, - 0x41, - 0x54, - 0x54, - 0x6F, - 0x53, - 0x41, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x41, - 0x53, - 0x6E, - 0x04, - 0x41, - 0x00, - 0x07, - 0x37, - 0x53, - 0x62, - 0x2F, - 0x41, - 0x41, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0xF0, - 0xF8, - 0xF0, - 0xF0, - 0xE5, - 0xF0, - 0xF8, - 0xF0, - 0xF0, - 0xE5, - 0xF0, - 0xF0, - 0xDD, - 0xF0, - 0xF0, - 0xE6, - 0xDD, - 0xEA, - 0x04, - 0xF0, - 0x00, - 0x03, - 0xEC, - 0xDC, - 0xDD, - 0x00, - 0x05, - 0xEC, - 0x00, - 0x2A, - 0xF9, - 0xD1, - 0xF5, - 0xF5, - 0xFF, - 0x05, - 0xFB, - 0xFB, - 0xFF, - 0x06, - 0xFF, - 0xFF, - 0xFF, - 0x1D, - 0x76, - 0x52, - 0x7B, - 0x88, - 0x90, - 0x91, - 0x91, - 0x84, - 0x7F, - 0x75, - 0x6B, - 0x5C, - 0x1D, - 0xFF, - 0x1D, - 0x17, - 0x17, - 0x17, - 0x2C, - 0x5A, - 0x14, - 0x17, - 0x14, - 0x4B, - 0x54, - 0x7D, - 0x88, - 0xD7, - 0x05, - 0xD2, - 0x00, - 0x15, - 0xD5, - 0xD6, - 0xDF, - 0xE9, - 0xDD, - 0x05, - 0x0A, - 0x24, - 0x95, - 0x94, - 0x09, - 0x49, - 0x25, - 0x49, - 0x35, - 0x20, - 0x35, - 0x35, - 0x35, - 0x37, - 0x52, - 0x00, - 0x04, - 0x3F, - 0x00, - 0x19, - 0x4E, - 0x68, - 0xA6, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAC, - 0xA9, - 0x74, - 0x75, - 0x57, - 0x57, - 0x57, - 0x6C, - 0x57, - 0x57, - 0x3F, - 0x57, - 0x65, - 0x00, - 0x04, - 0x57, - 0x01, - 0x6C, - 0x05, - 0x57, - 0x00, - 0x11, - 0x64, - 0x75, - 0x6C, - 0x75, - 0x75, - 0x75, - 0x88, - 0x75, - 0x88, - 0x88, - 0x7F, - 0x90, - 0x94, - 0x90, - 0xA7, - 0xA9, - 0xB0, - 0x00, - 0x06, - 0xB3, - 0x00, - 0x19, - 0xB1, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB1, - 0xB3, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xA7, - 0x75, - 0x6C, - 0x75, - 0x57, - 0x4E, - 0x32, - 0xA1, - 0xA2, - 0x3B, - 0x43, - 0xC2, - 0x00, - 0x09, - 0xD2, - 0x00, - 0x39, - 0xD8, - 0x4C, - 0x39, - 0x24, - 0x49, - 0x40, - 0x37, - 0x53, - 0x6F, - 0x42, - 0x27, - 0x35, - 0x35, - 0x40, - 0x6E, - 0x35, - 0x2E, - 0x6E, - 0x55, - 0x55, - 0x4B, - 0x4B, - 0x14, - 0x1F, - 0x1F, - 0x39, - 0x58, - 0x33, - 0x56, - 0x7C, - 0x65, - 0x7B, - 0x88, - 0x88, - 0x90, - 0x97, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA4, - 0x94, - 0x7D, - 0x7C, - 0x2C, - 0x2E, - 0x70, - 0x71, - 0x87, - 0x71, - 0x71, - 0x66, - 0x66, - 0x00, - 0x04, - 0x71, - 0x00, - 0x24, - 0x66, - 0x66, - 0x71, - 0x71, - 0x66, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x87, - 0x87, - 0x87, - 0x71, - 0x70, - 0x66, - 0x70, - 0x54, - 0x70, - 0x54, - 0x42, - 0x59, - 0x8E, - 0xA3, - 0xA4, - 0x9B, - 0x9F, - 0x9B, - 0x9B, - 0x9B, - 0x97, - 0x88, - 0x7C, - 0x48, - 0x2C, - 0x55, - 0x04, - 0x54, - 0x00, - 0x19, - 0x41, - 0x53, - 0x41, - 0x6F, - 0x41, - 0x54, - 0x54, - 0x42, - 0x41, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x41, - 0x3E, - 0x3E, - 0x41, - 0x41, - 0x40, - 0x6E, - 0x27, - 0x2E, - 0x41, - 0x2E, - 0x41, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xF0, - 0xF0, - 0xF0, - 0xF8, - 0xF0, - 0xE5, - 0xE5, - 0xF0, - 0xE5, - 0xF0, - 0xF0, - 0xE5, - 0xF0, - 0xF0, - 0xDC, - 0xF0, - 0xDD, - 0xEA, - 0xDD, - 0xEA, - 0x06, - 0xDD, - 0x00, - 0x2E, - 0xEC, - 0xEC, - 0xEC, - 0xF5, - 0xDD, - 0xF5, - 0xD1, - 0xF5, - 0xEA, - 0xF5, - 0xFF, - 0xFF, - 0xFB, - 0x18, - 0x06, - 0x06, - 0x1D, - 0x18, - 0x06, - 0x06, - 0x1D, - 0x18, - 0x49, - 0x65, - 0x6C, - 0x88, - 0x90, - 0x91, - 0x91, - 0x84, - 0x74, - 0x75, - 0x6D, - 0x60, - 0x39, - 0x1D, - 0x06, - 0x17, - 0x14, - 0x4A, - 0x15, - 0x14, - 0x14, - 0x0E, - 0x02, - 0xD4, - 0x09, - 0xD2, - 0x00, - 0x17, - 0xD5, - 0xE1, - 0x09, - 0x7B, - 0xA0, - 0x65, - 0x2C, - 0x2D, - 0x25, - 0x25, - 0x40, - 0x40, - 0x35, - 0x35, - 0x37, - 0x52, - 0x37, - 0x37, - 0x36, - 0x3F, - 0x3F, - 0x4E, - 0x7F, - 0x00, - 0x04, - 0xAA, - 0x00, - 0x09, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xAA, - 0xAC, - 0xA3, - 0x75, - 0x00, - 0x04, - 0x57, - 0x00, - 0x03, - 0x59, - 0x57, - 0x59, - 0x00, - 0x04, - 0x57, - 0x01, - 0x3F, - 0x04, - 0x57, - 0x00, - 0x1B, - 0x7D, - 0x6C, - 0x6C, - 0x6C, - 0x57, - 0x57, - 0x75, - 0x57, - 0x75, - 0x75, - 0x7D, - 0x75, - 0x88, - 0x75, - 0x75, - 0x75, - 0x6A, - 0x6A, - 0x83, - 0x8B, - 0x84, - 0x91, - 0xA7, - 0xAD, - 0xB3, - 0xB3, - 0xB3, - 0x00, - 0x0A, - 0xAE, - 0x00, - 0x11, - 0xB3, - 0x82, - 0xA7, - 0x88, - 0x75, - 0x75, - 0x57, - 0x57, - 0x32, - 0x74, - 0xA2, - 0x7D, - 0x3F, - 0x66, - 0x44, - 0xC6, - 0xD7, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x1D, - 0xC2, - 0xA9, - 0xA3, - 0x7D, - 0x7C, - 0x34, - 0x24, - 0x34, - 0x40, - 0x40, - 0x49, - 0x24, - 0x1F, - 0x1F, - 0x2B, - 0x1F, - 0x58, - 0x33, - 0x80, - 0x52, - 0x7C, - 0x7B, - 0x7B, - 0x88, - 0x88, - 0x97, - 0x97, - 0xA4, - 0xA6, - 0x00, - 0x08, - 0xA2, - 0x00, - 0x06, - 0xA4, - 0xA7, - 0xA3, - 0xA3, - 0xA3, - 0xA4, - 0x04, - 0xA2, - 0x00, - 0x1E, - 0xA6, - 0x97, - 0x8E, - 0x65, - 0x6E, - 0x61, - 0x62, - 0x66, - 0x87, - 0x71, - 0x71, - 0x66, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x71, - 0x87, - 0x87, - 0x71, - 0x71, - 0x66, - 0x66, - 0x66, - 0x71, - 0x71, - 0x71, - 0x87, - 0x71, - 0x04, - 0x70, - 0x00, - 0x2D, - 0x54, - 0x54, - 0x70, - 0x70, - 0x71, - 0x85, - 0xA3, - 0xA1, - 0xA6, - 0x9B, - 0xA2, - 0x9B, - 0xA2, - 0xA1, - 0x88, - 0x7B, - 0x60, - 0x48, - 0x61, - 0x2F, - 0x54, - 0x54, - 0x41, - 0x54, - 0x54, - 0x49, - 0x2B, - 0x58, - 0x2B, - 0x33, - 0x2B, - 0x49, - 0x53, - 0x41, - 0x62, - 0x41, - 0x55, - 0x55, - 0x41, - 0x55, - 0x40, - 0x37, - 0x40, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF0, - 0xF1, - 0xF0, - 0xF0, - 0xF8, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x40, - 0xE6, - 0xF0, - 0xF0, - 0xDC, - 0xF0, - 0xF0, - 0xDC, - 0xDD, - 0xDD, - 0xEA, - 0xDD, - 0xEC, - 0xDD, - 0xDD, - 0xEC, - 0xEC, - 0xEC, - 0xF5, - 0xD1, - 0xF5, - 0xF5, - 0xF5, - 0x05, - 0xC0, - 0xF5, - 0xFF, - 0xFF, - 0xFF, - 0x1D, - 0x67, - 0x18, - 0x17, - 0x17, - 0x13, - 0x17, - 0x13, - 0x13, - 0x18, - 0x13, - 0x5A, - 0x40, - 0x66, - 0x88, - 0x90, - 0x84, - 0x91, - 0x8C, - 0x84, - 0x7F, - 0x75, - 0x56, - 0x58, - 0x1D, - 0x05, - 0x1D, - 0x0A, - 0x4A, - 0x15, - 0x15, - 0x0B, - 0x4C, - 0xD9, - 0xD7, - 0xD5, - 0x05, - 0xD2, - 0x00, - 0x10, - 0xC2, - 0x0B, - 0x1F, - 0x91, - 0x97, - 0x14, - 0x2D, - 0x25, - 0x2D, - 0x40, - 0x25, - 0x25, - 0x37, - 0x52, - 0x37, - 0x37, - 0x05, - 0x3F, - 0x00, - 0x10, - 0x57, - 0x97, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAD, - 0x8E, - 0x7D, - 0x75, - 0x05, - 0x57, - 0x00, - 0x16, - 0x65, - 0x57, - 0x59, - 0x57, - 0x65, - 0x57, - 0x65, - 0x57, - 0x3F, - 0x57, - 0x57, - 0x57, - 0x7D, - 0x57, - 0x57, - 0x57, - 0x7D, - 0x6C, - 0x57, - 0x57, - 0x75, - 0x57, - 0x04, - 0x75, - 0x00, - 0x04, - 0x68, - 0x83, - 0x83, - 0x7A, - 0x04, - 0x8B, - 0x00, - 0x26, - 0x8C, - 0xA1, - 0xA9, - 0xB0, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xAD, - 0xA3, - 0x88, - 0x75, - 0x75, - 0x57, - 0x57, - 0x3F, - 0x3C, - 0xA2, - 0xA3, - 0x34, - 0x2A, - 0x2A, - 0x34, - 0x34, - 0x37, - 0x69, - 0xBB, - 0xD7, - 0xD8, - 0xD2, - 0xD2, - 0xD2, - 0xAD, - 0x04, - 0xA2, - 0x00, - 0x0D, - 0xA7, - 0x8E, - 0x65, - 0x60, - 0x5C, - 0x5F, - 0x6D, - 0x7B, - 0x7B, - 0x88, - 0x90, - 0xA1, - 0xA4, - 0x00, - 0x0A, - 0xA2, - 0x00, - 0x13, - 0xA7, - 0xA7, - 0xA3, - 0xA3, - 0x98, - 0x98, - 0x85, - 0x85, - 0x59, - 0x71, - 0x71, - 0x69, - 0x69, - 0x63, - 0x71, - 0x7D, - 0xA3, - 0xA7, - 0x9B, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x18, - 0xA4, - 0x8E, - 0x65, - 0x53, - 0x61, - 0x40, - 0x71, - 0x59, - 0x66, - 0x71, - 0x69, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x87, - 0x71, - 0x70, - 0x70, - 0x70, - 0x66, - 0x70, - 0x70, - 0x05, - 0x66, - 0x00, - 0x2E, - 0x70, - 0x70, - 0x66, - 0x54, - 0x66, - 0x54, - 0x54, - 0x63, - 0x42, - 0x85, - 0x94, - 0xA1, - 0xA6, - 0x9B, - 0xA2, - 0xA2, - 0x9B, - 0xA4, - 0x94, - 0x7B, - 0x8D, - 0x2C, - 0x2D, - 0x40, - 0x24, - 0x58, - 0x56, - 0x7B, - 0x7F, - 0x91, - 0x97, - 0x8E, - 0x7B, - 0x49, - 0x40, - 0x53, - 0x53, - 0x41, - 0x41, - 0x2F, - 0x40, - 0x40, - 0x40, - 0x41, - 0x41, - 0x40, - 0x00, - 0x00, - 0x00, - 0x07, - 0xF8, - 0xF0, - 0xF0, - 0xE5, - 0xE5, - 0xF0, - 0xEA, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x4F, - 0xDC, - 0xF0, - 0xDD, - 0xDC, - 0xF0, - 0xDC, - 0xF0, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xEC, - 0xEC, - 0xDD, - 0xDD, - 0xF9, - 0xDD, - 0xF5, - 0xF5, - 0xF5, - 0xC0, - 0xF5, - 0xFF, - 0xFF, - 0x01, - 0x06, - 0x18, - 0x18, - 0x18, - 0x13, - 0x17, - 0x13, - 0x4A, - 0x13, - 0x5A, - 0x2C, - 0x14, - 0x2C, - 0x2C, - 0x13, - 0x13, - 0x4A, - 0x53, - 0x7B, - 0x88, - 0x90, - 0x91, - 0x8C, - 0x91, - 0x84, - 0x7F, - 0x77, - 0x60, - 0x58, - 0x1D, - 0xFB, - 0xEC, - 0x29, - 0xFF, - 0x01, - 0x0E, - 0x0B, - 0xBB, - 0xC6, - 0xD8, - 0xD5, - 0xD2, - 0xC6, - 0x1D, - 0x65, - 0xA0, - 0x6C, - 0x14, - 0x25, - 0x25, - 0x40, - 0x2E, - 0x25, - 0x40, - 0x00, - 0x04, - 0x37, - 0x00, - 0x1F, - 0x36, - 0x36, - 0x3F, - 0x3B, - 0x57, - 0x64, - 0xA7, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xAA, - 0xB1, - 0xA3, - 0x75, - 0x75, - 0x57, - 0x57, - 0x6C, - 0x6C, - 0x57, - 0x57, - 0x65, - 0x57, - 0x65, - 0x57, - 0x65, - 0x00, - 0x04, - 0x57, - 0x01, - 0x6C, - 0x01, - 0x65, - 0x05, - 0x57, - 0x00, - 0x3A, - 0x85, - 0x7D, - 0x7D, - 0x7D, - 0x57, - 0x75, - 0x57, - 0x75, - 0x75, - 0x5D, - 0x72, - 0x83, - 0x95, - 0xA6, - 0xA2, - 0xA6, - 0x96, - 0x8C, - 0x8B, - 0x8B, - 0x8B, - 0x84, - 0xA1, - 0xA9, - 0xAD, - 0xAD, - 0xAD, - 0xAE, - 0xAD, - 0xA9, - 0xA3, - 0x8E, - 0x88, - 0x7D, - 0x7D, - 0x57, - 0x57, - 0x3F, - 0x32, - 0x91, - 0xA7, - 0x3F, - 0x35, - 0xD9, - 0xE1, - 0x14, - 0x1D, - 0x1F, - 0x33, - 0x34, - 0x27, - 0x2E, - 0x69, - 0xC6, - 0xBB, - 0x66, - 0x8E, - 0xA3, - 0x0F, - 0xA2, - 0x00, - 0x20, - 0xA7, - 0xA1, - 0xA3, - 0xA3, - 0x98, - 0x98, - 0x85, - 0x7D, - 0x59, - 0x71, - 0x71, - 0x43, - 0x70, - 0x70, - 0x42, - 0x42, - 0x70, - 0x70, - 0x66, - 0x63, - 0x66, - 0x87, - 0x69, - 0x87, - 0x69, - 0x69, - 0x63, - 0x66, - 0x87, - 0x98, - 0xA3, - 0xA6, - 0x04, - 0xA2, - 0x00, - 0x15, - 0xA6, - 0x90, - 0x7B, - 0x6E, - 0x7E, - 0x49, - 0x63, - 0x87, - 0x87, - 0x87, - 0x69, - 0x71, - 0x71, - 0x66, - 0x66, - 0x70, - 0x66, - 0x71, - 0x66, - 0x71, - 0x66, - 0x00, - 0x06, - 0x70, - 0x00, - 0x19, - 0x66, - 0x70, - 0x70, - 0x70, - 0x66, - 0x66, - 0x54, - 0x54, - 0x70, - 0x41, - 0x43, - 0x59, - 0x98, - 0xA1, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7B, - 0x60, - 0x77, - 0x91, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x05, - 0x9B, - 0x9B, - 0x9B, - 0x97, - 0x53, - 0x00, - 0x04, - 0x41, - 0x00, - 0x07, - 0x53, - 0x40, - 0x40, - 0x41, - 0x41, - 0x41, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF0, - 0xF0, - 0xF0, - 0xF8, - 0x04, - 0xF0, - 0x00, - 0x04, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0x04, - 0xF0, - 0x00, - 0x4B, - 0xDC, - 0xF0, - 0xDD, - 0xEC, - 0xEC, - 0xDD, - 0xDD, - 0xDD, - 0xEC, - 0xEC, - 0xEC, - 0xF9, - 0xF5, - 0xD1, - 0xF5, - 0xF5, - 0xF5, - 0xC0, - 0xF5, - 0xFF, - 0x05, - 0xFF, - 0x01, - 0x18, - 0x0E, - 0x17, - 0x17, - 0x17, - 0x5A, - 0x17, - 0x14, - 0x5A, - 0x2C, - 0x2C, - 0x4A, - 0x14, - 0x4B, - 0x15, - 0x2C, - 0x4A, - 0x14, - 0x2C, - 0x14, - 0x61, - 0x65, - 0x7D, - 0x90, - 0x90, - 0x91, - 0x95, - 0x91, - 0x84, - 0x75, - 0x62, - 0xDA, - 0xE7, - 0xF1, - 0xEA, - 0xF5, - 0x05, - 0x06, - 0x14, - 0x0B, - 0x3E, - 0xBB, - 0x3E, - 0x09, - 0x90, - 0xA1, - 0x40, - 0x2D, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x00, - 0x04, - 0x37, - 0x00, - 0x16, - 0x53, - 0x36, - 0x36, - 0x65, - 0x3B, - 0x57, - 0x57, - 0x6C, - 0xA9, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xAA, - 0x7F, - 0x75, - 0x6C, - 0x06, - 0x57, - 0x00, - 0x0C, - 0x6C, - 0x59, - 0x57, - 0x65, - 0x57, - 0x57, - 0x57, - 0x65, - 0x57, - 0x57, - 0x57, - 0x6C, - 0x06, - 0x57, - 0x00, - 0x3B, - 0x7D, - 0x75, - 0x6C, - 0x7D, - 0x75, - 0x6C, - 0x64, - 0x5D, - 0x83, - 0x91, - 0xB0, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xB0, - 0xA2, - 0xA6, - 0x95, - 0x8B, - 0x7F, - 0x88, - 0x98, - 0x94, - 0x94, - 0x94, - 0x88, - 0x8E, - 0x75, - 0x75, - 0x6C, - 0x75, - 0x57, - 0x6C, - 0x6C, - 0x3F, - 0x75, - 0xA2, - 0x8E, - 0x2A, - 0xD9, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0xBB, - 0x00, - 0x09, - 0x1D, - 0x1F, - 0x24, - 0x20, - 0x49, - 0x25, - 0x2D, - 0x35, - 0x54, - 0x85, - 0xA3, - 0x00, - 0x04, - 0xA7, - 0x00, - 0x17, - 0xA3, - 0xA3, - 0x94, - 0x98, - 0x7D, - 0x85, - 0x87, - 0x54, - 0x53, - 0x41, - 0x41, - 0x62, - 0x62, - 0x41, - 0x41, - 0x42, - 0x63, - 0x70, - 0x70, - 0x70, - 0x43, - 0x71, - 0x63, - 0x00, - 0x04, - 0x71, - 0x00, - 0x41, - 0x63, - 0x71, - 0x71, - 0x71, - 0x69, - 0x69, - 0x87, - 0x69, - 0x71, - 0x69, - 0x70, - 0x71, - 0x59, - 0x8E, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0xA2, - 0x9B, - 0x97, - 0x7D, - 0x7C, - 0x6E, - 0x40, - 0x3E, - 0x71, - 0x87, - 0x69, - 0x71, - 0x71, - 0x66, - 0x70, - 0x70, - 0x70, - 0x71, - 0x71, - 0x71, - 0x70, - 0x71, - 0x54, - 0x70, - 0x70, - 0x54, - 0x42, - 0x70, - 0x70, - 0x70, - 0x42, - 0x70, - 0x42, - 0x54, - 0x70, - 0x54, - 0x54, - 0x6F, - 0x42, - 0x59, - 0x8E, - 0xA3, - 0xA4, - 0xA2, - 0x9B, - 0x9B, - 0x00, - 0x04, - 0x9F, - 0x00, - 0x14, - 0x90, - 0x85, - 0xBB, - 0xB4, - 0x98, - 0x96, - 0xA6, - 0x9F, - 0xA1, - 0x41, - 0x41, - 0x40, - 0x41, - 0x2E, - 0x40, - 0x37, - 0x2E, - 0x40, - 0x2E, - 0x41, - 0x00, - 0x00, - 0x01, - 0xF0, - 0x01, - 0xDD, - 0x08, - 0xF0, - 0x00, - 0x70, - 0xDD, - 0xF0, - 0xDD, - 0xEA, - 0xDD, - 0xDC, - 0xF0, - 0xDC, - 0xF0, - 0xDC, - 0xDD, - 0xDC, - 0xF5, - 0xEA, - 0xEC, - 0xDD, - 0xEC, - 0xDD, - 0xF9, - 0xEC, - 0xF5, - 0xF5, - 0xF5, - 0xEA, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0x06, - 0x06, - 0x13, - 0x13, - 0x0E, - 0x0E, - 0x4A, - 0x4B, - 0x4A, - 0x15, - 0x14, - 0x14, - 0x4A, - 0x14, - 0x4A, - 0x2D, - 0x15, - 0x4B, - 0x2D, - 0x4B, - 0x2D, - 0x2D, - 0x4A, - 0x14, - 0x15, - 0x40, - 0x65, - 0x8E, - 0x90, - 0x91, - 0x91, - 0xD4, - 0xD2, - 0xD2, - 0xD2, - 0xD4, - 0xDA, - 0xE7, - 0xF1, - 0xF5, - 0xF9, - 0x06, - 0x14, - 0x14, - 0x53, - 0x96, - 0x8E, - 0x15, - 0x2F, - 0x62, - 0x2E, - 0x41, - 0x40, - 0x40, - 0x27, - 0x41, - 0x41, - 0x36, - 0x3B, - 0x3B, - 0x3B, - 0x57, - 0x3B, - 0x57, - 0x75, - 0xA9, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAC, - 0xAA, - 0xAC, - 0xA9, - 0x74, - 0x64, - 0x75, - 0x57, - 0x7D, - 0x6C, - 0x57, - 0x6C, - 0x05, - 0x57, - 0x01, - 0x3B, - 0x01, - 0x6C, - 0x07, - 0x57, - 0x01, - 0x6C, - 0x09, - 0x57, - 0x00, - 0x23, - 0x75, - 0x64, - 0x6A, - 0x8B, - 0xA9, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB3, - 0xB3, - 0xB3, - 0xA7, - 0x7F, - 0x74, - 0x88, - 0x88, - 0x7D, - 0x8E, - 0x85, - 0x8E, - 0x7D, - 0x85, - 0x6C, - 0x6C, - 0x57, - 0x57, - 0x3F, - 0x3C, - 0xA2, - 0xA3, - 0x35, - 0x69, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x19, - 0xD5, - 0xC6, - 0xE1, - 0x01, - 0x11, - 0x35, - 0x40, - 0x35, - 0x40, - 0x40, - 0x35, - 0x35, - 0x53, - 0x70, - 0x42, - 0x53, - 0x41, - 0x40, - 0x40, - 0x49, - 0x61, - 0x4C, - 0x55, - 0x3E, - 0x4C, - 0x00, - 0x04, - 0x41, - 0x00, - 0x0C, - 0x6F, - 0x70, - 0x63, - 0x71, - 0x69, - 0x69, - 0x63, - 0x71, - 0x70, - 0x66, - 0x43, - 0x43, - 0x04, - 0x71, - 0x01, - 0x66, - 0x01, - 0x70, - 0x04, - 0x71, - 0x01, - 0x87, - 0x01, - 0x71, - 0x04, - 0x69, - 0x00, - 0x06, - 0x70, - 0x71, - 0x85, - 0x98, - 0xA4, - 0xA6, - 0x04, - 0xA2, - 0x00, - 0x08, - 0x96, - 0x94, - 0x7C, - 0x7E, - 0x40, - 0x55, - 0x69, - 0x71, - 0x04, - 0x66, - 0x00, - 0x03, - 0x70, - 0x66, - 0x66, - 0x00, - 0x04, - 0x71, - 0x00, - 0x05, - 0x63, - 0x66, - 0x70, - 0x54, - 0x42, - 0x00, - 0x04, - 0x54, - 0x00, - 0x1F, - 0x70, - 0x70, - 0x63, - 0x42, - 0x54, - 0x54, - 0x36, - 0x41, - 0x42, - 0x54, - 0x7D, - 0x94, - 0xA1, - 0xA6, - 0x9F, - 0x9F, - 0x8E, - 0xC6, - 0xD7, - 0xC6, - 0xC6, - 0xD5, - 0xB4, - 0xA6, - 0x9F, - 0x9B, - 0x66, - 0x40, - 0x37, - 0x40, - 0x37, - 0x00, - 0x04, - 0x41, - 0x01, - 0x40, - 0x01, - 0x53, - 0x00, - 0x00, - 0x00, - 0x03, - 0xF8, - 0xF8, - 0xE5, - 0x00, - 0x07, - 0xF0, - 0x00, - 0x25, - 0xE6, - 0xF0, - 0xF0, - 0xDD, - 0xF0, - 0xF0, - 0xDC, - 0xEC, - 0xDD, - 0xF0, - 0xEC, - 0xDC, - 0xEC, - 0xDD, - 0xEC, - 0xEC, - 0xDD, - 0xEA, - 0xEA, - 0xF5, - 0xF5, - 0xF5, - 0xC0, - 0xC0, - 0xF5, - 0xFF, - 0xFF, - 0x06, - 0x1D, - 0x67, - 0x18, - 0x5A, - 0x5A, - 0x13, - 0x14, - 0x4A, - 0x4A, - 0x00, - 0x05, - 0x4B, - 0x00, - 0x12, - 0x2D, - 0x4A, - 0x4B, - 0x2D, - 0x15, - 0x55, - 0x4B, - 0x16, - 0x4B, - 0x15, - 0x2E, - 0x4B, - 0x15, - 0x15, - 0x61, - 0x53, - 0x69, - 0xD5, - 0x06, - 0xD2, - 0x00, - 0x14, - 0xD5, - 0xD4, - 0xDF, - 0xE9, - 0x02, - 0x09, - 0x88, - 0xA4, - 0x6F, - 0x15, - 0x2F, - 0x2F, - 0x2F, - 0x62, - 0x27, - 0x62, - 0x41, - 0x41, - 0x54, - 0x54, - 0x04, - 0x3B, - 0x00, - 0x13, - 0x57, - 0x57, - 0x7D, - 0xA9, - 0xAC, - 0xAA, - 0xAA, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xA2, - 0x83, - 0x5D, - 0x57, - 0x6C, - 0x7D, - 0x00, - 0x05, - 0x6C, - 0x04, - 0x57, - 0x00, - 0x04, - 0x59, - 0x57, - 0x59, - 0x6C, - 0x06, - 0x57, - 0x00, - 0x2C, - 0x6C, - 0x6C, - 0x7D, - 0x6C, - 0x57, - 0x57, - 0x75, - 0x57, - 0x5B, - 0x5D, - 0x83, - 0xA4, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0x8E, - 0x88, - 0x7D, - 0x88, - 0x75, - 0x75, - 0x75, - 0x57, - 0x7D, - 0x7D, - 0x7D, - 0x6C, - 0x57, - 0x65, - 0x32, - 0x97, - 0xA2, - 0x3B, - 0x3F, - 0xC6, - 0xC2, - 0x09, - 0xD2, - 0x00, - 0x3F, - 0x8A, - 0x6D, - 0x34, - 0x24, - 0x24, - 0x35, - 0x52, - 0x37, - 0x40, - 0x40, - 0x6F, - 0x6F, - 0x42, - 0x63, - 0x6F, - 0x62, - 0x6E, - 0x41, - 0x6E, - 0x55, - 0x3E, - 0x62, - 0x53, - 0x41, - 0x70, - 0x62, - 0x42, - 0x42, - 0x70, - 0x70, - 0x71, - 0x71, - 0x71, - 0x69, - 0x71, - 0x69, - 0x70, - 0x70, - 0x66, - 0x71, - 0x71, - 0x70, - 0x71, - 0x63, - 0x71, - 0x71, - 0x63, - 0x71, - 0x71, - 0x63, - 0x71, - 0x71, - 0x87, - 0x69, - 0x87, - 0x71, - 0x71, - 0x63, - 0x71, - 0x59, - 0x98, - 0xA7, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x0A, - 0xA6, - 0x97, - 0x7B, - 0x60, - 0x49, - 0x2D, - 0x42, - 0x71, - 0x66, - 0x66, - 0x04, - 0x70, - 0x00, - 0x30, - 0x66, - 0x66, - 0x71, - 0x70, - 0x63, - 0x43, - 0x70, - 0x70, - 0x42, - 0x54, - 0x54, - 0x54, - 0x70, - 0x63, - 0x70, - 0x71, - 0x70, - 0x70, - 0x42, - 0x54, - 0x54, - 0x41, - 0x2E, - 0x7C, - 0x9F, - 0x9F, - 0x97, - 0xD6, - 0xC6, - 0x27, - 0x25, - 0x19, - 0xD9, - 0xC2, - 0x96, - 0x9F, - 0xA4, - 0x54, - 0x37, - 0x6E, - 0x37, - 0x40, - 0x53, - 0x41, - 0x40, - 0x2C, - 0x2B, - 0x2B, - 0x00, - 0x00, - 0x0A, - 0xF0, - 0x00, - 0x18, - 0xE6, - 0xF0, - 0xDD, - 0xF0, - 0xDC, - 0xF0, - 0xDC, - 0xF0, - 0xEC, - 0xDC, - 0xDD, - 0xEC, - 0xDD, - 0xEC, - 0xDD, - 0xEC, - 0xDD, - 0xF9, - 0xF5, - 0xEA, - 0xEA, - 0xFB, - 0xFB, - 0xFB, - 0x04, - 0xFF, - 0x00, - 0x17, - 0x06, - 0x18, - 0x18, - 0x17, - 0x0B, - 0x17, - 0x4A, - 0x14, - 0x2C, - 0x4A, - 0x2D, - 0x4B, - 0x4B, - 0x4B, - 0x55, - 0x2D, - 0x55, - 0x4A, - 0x4B, - 0x61, - 0x15, - 0x55, - 0x2E, - 0x00, - 0x04, - 0x55, - 0x00, - 0x07, - 0x4B, - 0x2E, - 0x15, - 0x3E, - 0xC6, - 0xD8, - 0xD5, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x29, - 0xD8, - 0x0E, - 0x35, - 0x95, - 0x94, - 0x15, - 0x2E, - 0x55, - 0x41, - 0x55, - 0x41, - 0x41, - 0x42, - 0x62, - 0x63, - 0x42, - 0x43, - 0x3B, - 0x3B, - 0x3B, - 0x6C, - 0x6C, - 0x57, - 0x7D, - 0xA9, - 0xAA, - 0xB0, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xA9, - 0x83, - 0x5D, - 0x5B, - 0x57, - 0x6C, - 0x57, - 0x00, - 0x04, - 0x6C, - 0x00, - 0x07, - 0x59, - 0x7D, - 0x6C, - 0x6C, - 0x57, - 0x57, - 0x6C, - 0x00, - 0x04, - 0x57, - 0x00, - 0x03, - 0x6C, - 0x6C, - 0x6C, - 0x00, - 0x04, - 0x57, - 0x00, - 0x2B, - 0x6C, - 0x75, - 0x57, - 0x57, - 0x5D, - 0x72, - 0x8B, - 0xB0, - 0xB3, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xA7, - 0x74, - 0x7D, - 0x75, - 0x7D, - 0x6C, - 0x6C, - 0x57, - 0x6C, - 0x57, - 0x57, - 0x57, - 0x6C, - 0x65, - 0x32, - 0x64, - 0xA2, - 0x94, - 0x35, - 0x3F, - 0x36, - 0x36, - 0x69, - 0xC6, - 0xD8, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x2A, - 0xC2, - 0xA2, - 0xA2, - 0xA4, - 0x94, - 0x7B, - 0x60, - 0x24, - 0x48, - 0x35, - 0x37, - 0x53, - 0x53, - 0x62, - 0x6F, - 0x69, - 0x3E, - 0x62, - 0x63, - 0x6F, - 0x6F, - 0x41, - 0x53, - 0x41, - 0x6F, - 0x42, - 0x42, - 0x62, - 0x63, - 0x70, - 0x70, - 0x42, - 0x70, - 0x71, - 0x70, - 0x71, - 0x71, - 0x70, - 0x66, - 0x63, - 0x71, - 0x63, - 0x07, - 0x71, - 0x00, - 0x12, - 0x70, - 0x66, - 0x66, - 0x63, - 0x66, - 0x70, - 0x71, - 0x71, - 0x87, - 0x87, - 0x71, - 0x87, - 0x63, - 0x43, - 0x71, - 0x85, - 0xA3, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x15, - 0xA6, - 0xA1, - 0x88, - 0x8D, - 0x7E, - 0x40, - 0x41, - 0x66, - 0x71, - 0x66, - 0x70, - 0x70, - 0x54, - 0x54, - 0x70, - 0x66, - 0x71, - 0x70, - 0x66, - 0x70, - 0x70, - 0x00, - 0x04, - 0x54, - 0x00, - 0x22, - 0x70, - 0x42, - 0x70, - 0x63, - 0x71, - 0x71, - 0x54, - 0x54, - 0x40, - 0x75, - 0x9F, - 0x9F, - 0xA3, - 0xD2, - 0xE1, - 0x29, - 0x04, - 0xF1, - 0xD4, - 0xA9, - 0xA0, - 0x9F, - 0x94, - 0x40, - 0x41, - 0x37, - 0x6E, - 0x41, - 0x20, - 0x39, - 0x39, - 0x56, - 0x75, - 0x7F, - 0x00, - 0x00, - 0x01, - 0xF0, - 0x01, - 0xE5, - 0x05, - 0xF0, - 0x00, - 0x44, - 0xE6, - 0xF0, - 0xDC, - 0xF0, - 0xF0, - 0xDD, - 0xDD, - 0xF0, - 0xDD, - 0xEC, - 0xDD, - 0xF0, - 0xDC, - 0xEC, - 0xEC, - 0xDD, - 0xDD, - 0xF5, - 0xDD, - 0xF9, - 0xDD, - 0xF5, - 0xF9, - 0xF5, - 0xEA, - 0xFB, - 0xFF, - 0x06, - 0xFF, - 0xFF, - 0x06, - 0x18, - 0x18, - 0x13, - 0x13, - 0x17, - 0x2C, - 0x4A, - 0x14, - 0x4A, - 0x2C, - 0x4A, - 0x4A, - 0x2D, - 0x4B, - 0x4B, - 0x4B, - 0x3E, - 0x4B, - 0x3E, - 0x55, - 0x4B, - 0x2E, - 0x4B, - 0x55, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x3E, - 0x55, - 0x2F, - 0x4B, - 0x16, - 0x3E, - 0xBB, - 0xD7, - 0xD8, - 0x04, - 0xD2, - 0x00, - 0x27, - 0xD9, - 0x09, - 0x7B, - 0xA0, - 0x66, - 0x2E, - 0x62, - 0x62, - 0x2F, - 0x62, - 0x2F, - 0x2F, - 0x62, - 0x28, - 0x42, - 0x42, - 0x71, - 0x66, - 0x59, - 0x59, - 0x59, - 0x6C, - 0x6C, - 0x7D, - 0xA7, - 0xAC, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xB1, - 0xAC, - 0xAA, - 0x8B, - 0x72, - 0x51, - 0x4E, - 0x00, - 0x09, - 0x6C, - 0x00, - 0x03, - 0x59, - 0x7D, - 0x7D, - 0x00, - 0x06, - 0x6C, - 0x00, - 0x1D, - 0x57, - 0x6C, - 0x57, - 0x6C, - 0x6C, - 0x6C, - 0x57, - 0x57, - 0x57, - 0x51, - 0x5D, - 0x83, - 0xA4, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xAE, - 0xB3, - 0xB1, - 0xAE, - 0xB3, - 0xAD, - 0x94, - 0x8E, - 0x6C, - 0x75, - 0x57, - 0x00, - 0x06, - 0x6C, - 0x00, - 0x15, - 0x57, - 0x57, - 0x3F, - 0x32, - 0xA4, - 0xA7, - 0x35, - 0x24, - 0x24, - 0x1F, - 0x24, - 0x35, - 0x25, - 0x27, - 0x63, - 0xBB, - 0xD7, - 0xC2, - 0xD2, - 0xB4, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x21, - 0xA6, - 0xA1, - 0x7D, - 0x8D, - 0x33, - 0x48, - 0x49, - 0x40, - 0x53, - 0x6F, - 0x53, - 0x6F, - 0x62, - 0x63, - 0x3E, - 0x41, - 0x6E, - 0x6F, - 0x62, - 0x42, - 0x6F, - 0x70, - 0x70, - 0x63, - 0x63, - 0x70, - 0x70, - 0x70, - 0x71, - 0x63, - 0x71, - 0x70, - 0x63, - 0x00, - 0x06, - 0x71, - 0x00, - 0x07, - 0x70, - 0x71, - 0x71, - 0x63, - 0x66, - 0x71, - 0x69, - 0x00, - 0x08, - 0x71, - 0x04, - 0x87, - 0x00, - 0x42, - 0x71, - 0x70, - 0x71, - 0x7D, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0xA2, - 0x9B, - 0xA1, - 0x88, - 0x6D, - 0x7E, - 0x49, - 0x6E, - 0x54, - 0x66, - 0x66, - 0x70, - 0x54, - 0x54, - 0x54, - 0x70, - 0x42, - 0x70, - 0x70, - 0x42, - 0x42, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x42, - 0x54, - 0x70, - 0x42, - 0x41, - 0x41, - 0x41, - 0x6C, - 0x9F, - 0x9F, - 0xA0, - 0xA9, - 0xD2, - 0xD6, - 0xC6, - 0xD8, - 0xAA, - 0xA0, - 0x9B, - 0xA1, - 0x53, - 0x37, - 0x6E, - 0x41, - 0x53, - 0x24, - 0x5C, - 0x88, - 0x9A, - 0x9F, - 0x9F, - 0x9A, - 0x00, - 0x00, - 0x0B, - 0xF0, - 0x00, - 0x62, - 0xDC, - 0xF0, - 0xDC, - 0xDC, - 0xF0, - 0xDD, - 0xDD, - 0xEC, - 0xDD, - 0xEC, - 0xDD, - 0xEC, - 0xEC, - 0xDD, - 0xF9, - 0xDD, - 0xD1, - 0xF5, - 0xC0, - 0xEA, - 0xC0, - 0xC0, - 0xF5, - 0xFF, - 0xFF, - 0x06, - 0x18, - 0x18, - 0x5A, - 0x13, - 0x5A, - 0x13, - 0x4A, - 0x14, - 0x2C, - 0x14, - 0x2D, - 0x2D, - 0x15, - 0x2D, - 0x61, - 0x2D, - 0x2D, - 0x61, - 0x15, - 0x55, - 0x2E, - 0x3E, - 0x55, - 0x55, - 0x55, - 0x2E, - 0x2E, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x3E, - 0x2F, - 0x3E, - 0x55, - 0x55, - 0x55, - 0x3E, - 0x4C, - 0xBB, - 0xD7, - 0xD8, - 0x3E, - 0x2D, - 0x97, - 0x97, - 0x0B, - 0x2F, - 0x2F, - 0x2F, - 0x62, - 0x3E, - 0x42, - 0x42, - 0x42, - 0x63, - 0x42, - 0x70, - 0x43, - 0x3B, - 0x59, - 0x66, - 0x7D, - 0x44, - 0x7D, - 0x7D, - 0xA3, - 0xAA, - 0xAA, - 0xB0, - 0xB0, - 0xB0, - 0x04, - 0xAA, - 0x00, - 0x0B, - 0xB0, - 0x8F, - 0x83, - 0x5D, - 0x51, - 0x51, - 0x57, - 0x6C, - 0x7D, - 0x7D, - 0x7D, - 0x00, - 0x04, - 0x6C, - 0x00, - 0x26, - 0x59, - 0x7D, - 0x6C, - 0x85, - 0x6C, - 0x7D, - 0x6C, - 0x6C, - 0x6C, - 0x57, - 0x6C, - 0x57, - 0x7D, - 0x7D, - 0x6C, - 0x57, - 0x5B, - 0x5D, - 0x72, - 0x8C, - 0xAC, - 0xB1, - 0xAC, - 0xB1, - 0xB1, - 0xAE, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xA3, - 0x8E, - 0x8E, - 0x8E, - 0x85, - 0x7D, - 0x6C, - 0x05, - 0x57, - 0x00, - 0x18, - 0x3B, - 0x57, - 0x32, - 0x90, - 0xA2, - 0x57, - 0x24, - 0xD8, - 0xD5, - 0xC6, - 0xBB, - 0x01, - 0x1D, - 0x1F, - 0x24, - 0x35, - 0x2E, - 0x2F, - 0x63, - 0x27, - 0x53, - 0x66, - 0x8E, - 0xA7, - 0x05, - 0xA2, - 0x00, - 0x12, - 0xA4, - 0x94, - 0x7B, - 0x34, - 0x48, - 0x2C, - 0x49, - 0x53, - 0x41, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x4C, - 0x69, - 0x62, - 0x70, - 0x42, - 0x05, - 0x70, - 0x00, - 0x10, - 0x71, - 0x71, - 0x71, - 0x69, - 0x71, - 0x71, - 0x71, - 0x63, - 0x71, - 0x71, - 0x87, - 0x69, - 0x71, - 0x71, - 0x71, - 0x70, - 0x04, - 0x71, - 0x00, - 0x15, - 0x87, - 0x71, - 0x71, - 0x69, - 0x71, - 0x63, - 0x66, - 0x66, - 0x71, - 0x71, - 0x87, - 0x71, - 0x87, - 0x71, - 0x71, - 0x66, - 0x66, - 0x87, - 0x8E, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x0A, - 0xA4, - 0x97, - 0x6C, - 0x7E, - 0x49, - 0x40, - 0x41, - 0x70, - 0x66, - 0x70, - 0x06, - 0x54, - 0x00, - 0x24, - 0x42, - 0x54, - 0x42, - 0x42, - 0x54, - 0x41, - 0x41, - 0x6F, - 0x53, - 0x54, - 0x6F, - 0x53, - 0x97, - 0x9B, - 0x9B, - 0xA6, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0x9F, - 0xA6, - 0x94, - 0x41, - 0x53, - 0x41, - 0x37, - 0x53, - 0x24, - 0x77, - 0x9A, - 0x9F, - 0x95, - 0x88, - 0x87, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xF0, - 0xE5, - 0xF7, - 0xF4, - 0xFC, - 0xF4, - 0xF7, - 0xE5, - 0xE5, - 0xF0, - 0xF0, - 0xF0, - 0xDC, - 0xF0, - 0x04, - 0xDC, - 0x00, - 0x05, - 0xEC, - 0xDD, - 0xDD, - 0xEA, - 0xF5, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x06, - 0xD1, - 0xF5, - 0xF5, - 0xF5, - 0xEA, - 0x05, - 0x04, - 0xFF, - 0x00, - 0x1B, - 0x06, - 0x18, - 0x13, - 0x13, - 0x2C, - 0x4A, - 0x4A, - 0x4A, - 0x15, - 0x2D, - 0x4A, - 0x2D, - 0x2D, - 0x2D, - 0x15, - 0x61, - 0x2E, - 0x4B, - 0x61, - 0x2D, - 0x4B, - 0x2E, - 0x4B, - 0x2F, - 0x55, - 0x4B, - 0x2E, - 0x00, - 0x06, - 0x55, - 0x00, - 0x22, - 0x2F, - 0x2F, - 0x3E, - 0x3E, - 0x2F, - 0x55, - 0x2F, - 0x55, - 0x3E, - 0x15, - 0x7B, - 0xA0, - 0x7D, - 0x2F, - 0x4C, - 0x63, - 0x2F, - 0x09, - 0x08, - 0x05, - 0x11, - 0x63, - 0x63, - 0x70, - 0x69, - 0x66, - 0x66, - 0x66, - 0x59, - 0x59, - 0x7D, - 0x85, - 0x7D, - 0x8E, - 0x04, - 0xAA, - 0x00, - 0x13, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xB1, - 0xA6, - 0x8B, - 0x83, - 0x51, - 0x51, - 0x46, - 0x4E, - 0x6C, - 0x6C, - 0x7D, - 0x6C, - 0x6C, - 0x7D, - 0x00, - 0x06, - 0x6C, - 0x00, - 0x2D, - 0x85, - 0x6C, - 0x7D, - 0x6C, - 0x7D, - 0x6C, - 0x6C, - 0x6C, - 0x57, - 0x4E, - 0x4E, - 0x51, - 0x68, - 0x8B, - 0xA9, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xAE, - 0xAD, - 0x88, - 0x8E, - 0x75, - 0x7D, - 0x7D, - 0x6C, - 0x7D, - 0x7D, - 0x7D, - 0x6C, - 0x57, - 0x57, - 0x57, - 0x35, - 0x4E, - 0x9B, - 0x98, - 0x2A, - 0xD9, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x10, - 0xD8, - 0xD9, - 0xE8, - 0x0A, - 0x09, - 0x2F, - 0x62, - 0x37, - 0x40, - 0x35, - 0x40, - 0x41, - 0x66, - 0x85, - 0xA3, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x1D, - 0xA6, - 0x97, - 0x88, - 0x52, - 0x58, - 0x24, - 0x49, - 0x53, - 0x54, - 0x6F, - 0x70, - 0x63, - 0x63, - 0x71, - 0x42, - 0x42, - 0x63, - 0x71, - 0x70, - 0x43, - 0x63, - 0x43, - 0x87, - 0x69, - 0x87, - 0x87, - 0x71, - 0x69, - 0x66, - 0x00, - 0x04, - 0x71, - 0x00, - 0x06, - 0x63, - 0x70, - 0x66, - 0x71, - 0x71, - 0x70, - 0x05, - 0x71, - 0x00, - 0x14, - 0x87, - 0x71, - 0x70, - 0x71, - 0x63, - 0x71, - 0x66, - 0x71, - 0x71, - 0x71, - 0x87, - 0x69, - 0x87, - 0x70, - 0x42, - 0x70, - 0x59, - 0x7D, - 0xA3, - 0xA4, - 0x04, - 0xA2, - 0x00, - 0x1C, - 0xA6, - 0x97, - 0x8E, - 0x8D, - 0x48, - 0x40, - 0x41, - 0x54, - 0x70, - 0x70, - 0x42, - 0x54, - 0x54, - 0x54, - 0x41, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x6F, - 0x54, - 0x41, - 0x54, - 0x54, - 0x36, - 0x41, - 0x7D, - 0xA1, - 0x04, - 0xA6, - 0x00, - 0x11, - 0xA1, - 0x8E, - 0x66, - 0x2E, - 0x41, - 0x41, - 0x53, - 0x53, - 0x24, - 0x77, - 0x9A, - 0x9A, - 0x97, - 0xD9, - 0xD6, - 0xD9, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2D, - 0xFE, - 0x19, - 0x4F, - 0x5F, - 0x6B, - 0x5B, - 0x5E, - 0x4F, - 0x3D, - 0xF4, - 0xF4, - 0xE5, - 0xF0, - 0xE6, - 0xF0, - 0xEC, - 0xEA, - 0xDD, - 0xDD, - 0xDD, - 0xEC, - 0xDD, - 0xEC, - 0xEC, - 0xEC, - 0xF5, - 0xEA, - 0xF5, - 0xEA, - 0xF5, - 0xF5, - 0x05, - 0xC0, - 0xFF, - 0xFF, - 0x06, - 0x06, - 0x67, - 0x18, - 0x13, - 0x17, - 0x17, - 0x14, - 0x4A, - 0x2D, - 0x00, - 0x05, - 0x4B, - 0x00, - 0x12, - 0x15, - 0x61, - 0x15, - 0x4B, - 0x61, - 0x61, - 0x4B, - 0x3E, - 0x0B, - 0x55, - 0x0B, - 0x4B, - 0x2E, - 0x2E, - 0x55, - 0x2F, - 0x55, - 0x2F, - 0x04, - 0x55, - 0x00, - 0x19, - 0x62, - 0x62, - 0x55, - 0x2F, - 0x4C, - 0x4C, - 0x62, - 0x15, - 0x90, - 0xA1, - 0x2E, - 0x2F, - 0x63, - 0x3E, - 0x0B, - 0xE4, - 0xDA, - 0xD9, - 0xEE, - 0x20, - 0x43, - 0x42, - 0x43, - 0x43, - 0x71, - 0x00, - 0x04, - 0x59, - 0x00, - 0x4C, - 0x6C, - 0x7D, - 0x8E, - 0xA7, - 0xAC, - 0xAA, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0x95, - 0x8B, - 0x83, - 0x51, - 0x51, - 0x46, - 0x46, - 0x4E, - 0x57, - 0x6C, - 0x7D, - 0x6C, - 0x7D, - 0x85, - 0x6C, - 0x85, - 0x6C, - 0x7D, - 0x6C, - 0x6C, - 0x7D, - 0x6C, - 0x7D, - 0x7D, - 0x6C, - 0x57, - 0x3C, - 0x46, - 0x51, - 0x5D, - 0x83, - 0x95, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xB3, - 0xAE, - 0xAE, - 0xAE, - 0xB1, - 0x94, - 0x88, - 0x7D, - 0x7D, - 0x6C, - 0x57, - 0x6C, - 0x57, - 0x59, - 0x59, - 0x6C, - 0x57, - 0x3B, - 0x3B, - 0x32, - 0xA1, - 0xA7, - 0x36, - 0x43, - 0x09, - 0xD2, - 0x00, - 0x10, - 0xD5, - 0xC6, - 0x15, - 0x25, - 0x25, - 0x41, - 0x62, - 0x41, - 0x52, - 0x40, - 0x40, - 0x41, - 0x66, - 0x59, - 0x98, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x50, - 0x9B, - 0xA1, - 0x94, - 0x7B, - 0x48, - 0x48, - 0x2D, - 0x6E, - 0x54, - 0x70, - 0x70, - 0x70, - 0x42, - 0x71, - 0x69, - 0x71, - 0x71, - 0x71, - 0x70, - 0x70, - 0x71, - 0x71, - 0x71, - 0x87, - 0x69, - 0x71, - 0x63, - 0x66, - 0x71, - 0x70, - 0x66, - 0x66, - 0x63, - 0x71, - 0x63, - 0x71, - 0x70, - 0x71, - 0x66, - 0x71, - 0x66, - 0x71, - 0x66, - 0x66, - 0x71, - 0x87, - 0x71, - 0x71, - 0x71, - 0x66, - 0x66, - 0x70, - 0x66, - 0x69, - 0x71, - 0x87, - 0x66, - 0x70, - 0x42, - 0x70, - 0x66, - 0x7D, - 0x94, - 0xA4, - 0xA6, - 0x9B, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x7C, - 0x48, - 0x49, - 0x40, - 0x54, - 0x66, - 0x70, - 0x70, - 0x66, - 0x07, - 0x54, - 0x00, - 0x06, - 0x6F, - 0x71, - 0x70, - 0x53, - 0x53, - 0x41, - 0x04, - 0x66, - 0x00, - 0x11, - 0x6F, - 0x37, - 0x40, - 0x53, - 0x53, - 0x37, - 0x40, - 0x40, - 0x60, - 0x95, - 0x9B, - 0xA1, - 0xD9, - 0xD7, - 0x16, - 0x35, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x64, - 0x64, - 0x68, - 0x64, - 0x64, - 0x64, - 0x75, - 0x68, - 0x68, - 0x5B, - 0x5E, - 0x4F, - 0x86, - 0xFE, - 0xE0, - 0xE6, - 0xF0, - 0xEC, - 0xEA, - 0xF5, - 0xF5, - 0xF5, - 0xDD, - 0xF5, - 0xEC, - 0xD1, - 0xF5, - 0xF5, - 0xFB, - 0xC0, - 0xFF, - 0xEA, - 0xFB, - 0xFF, - 0xFF, - 0x06, - 0x67, - 0x18, - 0x2B, - 0x0E, - 0x0B, - 0x4A, - 0x2C, - 0x14, - 0x2C, - 0x2D, - 0x2D, - 0x2D, - 0x4B, - 0x2E, - 0x55, - 0x2E, - 0x55, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x00, - 0x04, - 0x55, - 0x00, - 0x0D, - 0x3E, - 0x3E, - 0x2E, - 0x55, - 0x2E, - 0x55, - 0x55, - 0x2F, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x55, - 0x00, - 0x04, - 0x62, - 0x00, - 0x34, - 0x3E, - 0x41, - 0x91, - 0x7D, - 0x4B, - 0x3E, - 0x3E, - 0x41, - 0xBB, - 0xD2, - 0xE1, - 0xE4, - 0xD2, - 0xE1, - 0x42, - 0x69, - 0x43, - 0x66, - 0x43, - 0x66, - 0x59, - 0x59, - 0x6C, - 0x7D, - 0x85, - 0x7D, - 0x98, - 0xAC, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAC, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0x8B, - 0x8B, - 0x83, - 0x5D, - 0x51, - 0x46, - 0x46, - 0x46, - 0x3C, - 0x4E, - 0x57, - 0x6C, - 0x6C, - 0x6C, - 0x05, - 0x7D, - 0x00, - 0x2D, - 0x6C, - 0x57, - 0x57, - 0x3C, - 0x46, - 0x46, - 0x46, - 0x51, - 0x5D, - 0x83, - 0x7A, - 0xAA, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xB3, - 0xA7, - 0x8E, - 0x8E, - 0x7D, - 0x7D, - 0x6C, - 0x7D, - 0x6C, - 0x6C, - 0x6C, - 0x57, - 0x6C, - 0x3B, - 0x3B, - 0x32, - 0x88, - 0xA2, - 0x7D, - 0x3B, - 0x59, - 0xBB, - 0xC6, - 0xC2, - 0x00, - 0x07, - 0xD2, - 0x00, - 0x20, - 0xB1, - 0xA1, - 0x94, - 0x66, - 0x35, - 0x40, - 0x40, - 0x41, - 0x6F, - 0x41, - 0x53, - 0x40, - 0x53, - 0x37, - 0x6E, - 0x66, - 0x7D, - 0xA3, - 0xA7, - 0xA2, - 0x9B, - 0xA2, - 0x9B, - 0xA4, - 0x97, - 0x88, - 0x52, - 0x48, - 0x61, - 0x55, - 0x42, - 0x71, - 0x04, - 0x70, - 0x00, - 0x33, - 0x43, - 0x70, - 0x71, - 0x87, - 0x63, - 0x63, - 0x66, - 0x70, - 0x70, - 0x66, - 0x87, - 0x71, - 0x69, - 0x71, - 0x71, - 0x71, - 0x66, - 0x66, - 0x71, - 0x71, - 0x71, - 0x63, - 0x71, - 0x63, - 0x66, - 0x63, - 0x66, - 0x63, - 0x71, - 0x71, - 0x71, - 0x66, - 0x71, - 0x70, - 0x71, - 0x70, - 0x66, - 0x66, - 0x66, - 0x70, - 0x70, - 0x71, - 0x87, - 0x43, - 0x63, - 0x54, - 0x66, - 0x59, - 0x8E, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0x9B, - 0x00, - 0x19, - 0xA4, - 0x94, - 0x7B, - 0x48, - 0x49, - 0x61, - 0x3E, - 0x42, - 0x70, - 0x42, - 0x54, - 0x41, - 0x25, - 0x24, - 0x58, - 0x2B, - 0x48, - 0x2C, - 0x25, - 0x41, - 0x41, - 0x53, - 0x37, - 0x41, - 0x53, - 0x00, - 0x05, - 0x41, - 0x00, - 0x0C, - 0x6E, - 0x37, - 0x25, - 0x7B, - 0x9F, - 0xA6, - 0x97, - 0xD8, - 0xD9, - 0xF9, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x29, - 0x6D, - 0x80, - 0x89, - 0xC0, - 0xEC, - 0xF5, - 0xA5, - 0x80, - 0x6D, - 0x75, - 0x68, - 0x74, - 0x68, - 0x64, - 0x5E, - 0x4F, - 0x3D, - 0xFE, - 0xF4, - 0xE6, - 0xEC, - 0xDD, - 0xFB, - 0xEA, - 0xF5, - 0xEA, - 0xF5, - 0xF9, - 0xF5, - 0xF5, - 0xF5, - 0xFF, - 0xFB, - 0x06, - 0x06, - 0x18, - 0x18, - 0x17, - 0x13, - 0x17, - 0x0E, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x09, - 0x2D, - 0x15, - 0x2D, - 0x2D, - 0x4B, - 0x4B, - 0x2E, - 0x55, - 0x2E, - 0x00, - 0x04, - 0x55, - 0x00, - 0x11, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x3E, - 0x55, - 0x2E, - 0x62, - 0x3E, - 0x62, - 0x62, - 0x55, - 0x55, - 0x55, - 0x2F, - 0x62, - 0x2F, - 0x00, - 0x04, - 0x62, - 0x00, - 0x32, - 0x2F, - 0x95, - 0x75, - 0x09, - 0x69, - 0x63, - 0x42, - 0xBB, - 0xD7, - 0xD7, - 0xDA, - 0xC2, - 0x69, - 0x63, - 0x87, - 0x71, - 0x66, - 0x71, - 0x87, - 0x87, - 0x59, - 0x87, - 0x59, - 0x7D, - 0x85, - 0x8E, - 0xA7, - 0xAC, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0x8B, - 0x8B, - 0x83, - 0x72, - 0x5D, - 0x51, - 0x46, - 0x46, - 0x46, - 0x3A, - 0x46, - 0x46, - 0x06, - 0x3C, - 0x00, - 0x18, - 0x46, - 0x46, - 0x3A, - 0x3A, - 0x46, - 0x46, - 0x51, - 0x72, - 0x83, - 0x8B, - 0xAA, - 0xB3, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAD, - 0x94, - 0x8E, - 0x04, - 0x7D, - 0x00, - 0x18, - 0x6C, - 0x7D, - 0x59, - 0x6C, - 0x6C, - 0x59, - 0x6C, - 0x3F, - 0x6B, - 0xA2, - 0xA3, - 0x35, - 0x39, - 0x20, - 0x41, - 0x66, - 0x44, - 0x87, - 0xD9, - 0xD7, - 0xC2, - 0xD2, - 0xD2, - 0xC2, - 0x04, - 0xA2, - 0x00, - 0x28, - 0xA4, - 0xA3, - 0x7D, - 0x7C, - 0x34, - 0x61, - 0x41, - 0x37, - 0x53, - 0x37, - 0x53, - 0x53, - 0x40, - 0x6F, - 0x70, - 0x7D, - 0x98, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0xA1, - 0x8E, - 0x7B, - 0x6E, - 0x4A, - 0x40, - 0x70, - 0x66, - 0x66, - 0x70, - 0x70, - 0x71, - 0x69, - 0x87, - 0x87, - 0x71, - 0x87, - 0x04, - 0x71, - 0x04, - 0x87, - 0x04, - 0x71, - 0x00, - 0x06, - 0x66, - 0x66, - 0x71, - 0x66, - 0x71, - 0x71, - 0x04, - 0x66, - 0x00, - 0x43, - 0x71, - 0x70, - 0x66, - 0x71, - 0x87, - 0x66, - 0x71, - 0x70, - 0x66, - 0x66, - 0x70, - 0x66, - 0x70, - 0x71, - 0x71, - 0x71, - 0x43, - 0x70, - 0x42, - 0x54, - 0x66, - 0x8E, - 0x94, - 0xA4, - 0xA6, - 0x9B, - 0x9B, - 0xA2, - 0xA4, - 0x97, - 0x88, - 0x7C, - 0x48, - 0x20, - 0x40, - 0x24, - 0x58, - 0x77, - 0x88, - 0x90, - 0x91, - 0x97, - 0x90, - 0x7B, - 0x49, - 0x2F, - 0x54, - 0x42, - 0x53, - 0x41, - 0x53, - 0x53, - 0x41, - 0x37, - 0x40, - 0x37, - 0x62, - 0x55, - 0x54, - 0xA0, - 0x9F, - 0xA0, - 0xA7, - 0xC2, - 0xD7, - 0xDA, - 0xB5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF0, - 0xE5, - 0xF8, - 0xE6, - 0x04, - 0xF0, - 0x00, - 0x75, - 0xF5, - 0xC0, - 0x67, - 0x80, - 0x77, - 0x75, - 0x6A, - 0x74, - 0x68, - 0x64, - 0x5E, - 0x4F, - 0x3D, - 0xFE, - 0xF4, - 0xEC, - 0xF5, - 0xC0, - 0xEA, - 0xF5, - 0xF5, - 0xFF, - 0xFB, - 0x05, - 0xFF, - 0xFF, - 0x06, - 0x18, - 0x17, - 0x17, - 0x17, - 0x13, - 0x2C, - 0x14, - 0x14, - 0x4A, - 0x2D, - 0x2D, - 0x61, - 0x4B, - 0x61, - 0x2E, - 0x4B, - 0x2E, - 0x4B, - 0x4B, - 0x2E, - 0x55, - 0x2F, - 0x55, - 0x3E, - 0x62, - 0x2F, - 0x55, - 0x55, - 0x2F, - 0x55, - 0x62, - 0x3E, - 0x62, - 0x4C, - 0x4C, - 0x4C, - 0x3E, - 0x62, - 0x62, - 0x2F, - 0x62, - 0x3E, - 0x3E, - 0x3E, - 0x55, - 0x8E, - 0x96, - 0x79, - 0x06, - 0x42, - 0x69, - 0x63, - 0x63, - 0xBB, - 0xB4, - 0xBB, - 0x63, - 0x71, - 0x43, - 0x43, - 0x43, - 0x71, - 0x87, - 0x87, - 0x87, - 0x85, - 0x87, - 0x85, - 0x7D, - 0x85, - 0x8E, - 0xA9, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAC, - 0xB0, - 0xAA, - 0x95, - 0x8B, - 0x83, - 0x83, - 0x72, - 0x5D, - 0x51, - 0x00, - 0x04, - 0x46, - 0x01, - 0x3A, - 0x01, - 0x46, - 0x05, - 0x3A, - 0x00, - 0x1A, - 0x46, - 0x46, - 0x51, - 0x51, - 0x72, - 0x72, - 0x83, - 0x8B, - 0xA9, - 0xB3, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB3, - 0xA3, - 0x8E, - 0x7D, - 0x8E, - 0x7D, - 0x7D, - 0x07, - 0x6C, - 0x00, - 0x15, - 0x59, - 0x34, - 0x91, - 0xA7, - 0x36, - 0x0F, - 0xC6, - 0xBB, - 0x00, - 0x01, - 0x0A, - 0x25, - 0x43, - 0x63, - 0x44, - 0xBB, - 0xC6, - 0x87, - 0x59, - 0x94, - 0xA3, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x13, - 0x9B, - 0xA1, - 0x8E, - 0x7B, - 0x60, - 0x2B, - 0x49, - 0x40, - 0x62, - 0x42, - 0x53, - 0x53, - 0x41, - 0x53, - 0x6F, - 0x66, - 0x7D, - 0xA3, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x2F, - 0xA4, - 0x97, - 0x7D, - 0x6F, - 0x2C, - 0x4B, - 0x62, - 0x71, - 0x71, - 0x66, - 0x71, - 0x63, - 0x69, - 0x62, - 0x55, - 0x55, - 0x4B, - 0x49, - 0x2B, - 0x2B, - 0x2B, - 0x48, - 0x2C, - 0x55, - 0x71, - 0x69, - 0x87, - 0x71, - 0x66, - 0x70, - 0x66, - 0x70, - 0x71, - 0x70, - 0x71, - 0x66, - 0x70, - 0x66, - 0x69, - 0x66, - 0x70, - 0x66, - 0x66, - 0x43, - 0x71, - 0x70, - 0x43, - 0x00, - 0x05, - 0x70, - 0x00, - 0x33, - 0x66, - 0x71, - 0x70, - 0x43, - 0x70, - 0x42, - 0x54, - 0x54, - 0x7D, - 0x94, - 0xA1, - 0xA2, - 0x9B, - 0x9B, - 0xA2, - 0xA6, - 0xA1, - 0x88, - 0x7C, - 0x7B, - 0x95, - 0x9F, - 0x9B, - 0xA0, - 0xA0, - 0x9F, - 0x9B, - 0x9F, - 0x91, - 0x53, - 0x41, - 0x41, - 0x6F, - 0x42, - 0x6F, - 0x62, - 0x53, - 0x40, - 0x40, - 0x37, - 0x55, - 0x2E, - 0x16, - 0x88, - 0x9F, - 0x9F, - 0x9A, - 0xA6, - 0xA2, - 0xA2, - 0x9F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x35, - 0xF0, - 0xE6, - 0xE5, - 0xF7, - 0xE5, - 0xE5, - 0xF0, - 0xF0, - 0xDD, - 0xF0, - 0xEC, - 0xF0, - 0xF5, - 0xC0, - 0x67, - 0x8D, - 0x77, - 0x75, - 0x74, - 0x74, - 0x74, - 0x64, - 0x56, - 0x4F, - 0x3D, - 0xFA, - 0xE6, - 0xFA, - 0xF9, - 0xFB, - 0xFB, - 0x06, - 0xFB, - 0xFF, - 0x01, - 0x18, - 0x18, - 0x5A, - 0x13, - 0x5A, - 0x14, - 0x4A, - 0x4A, - 0x15, - 0x15, - 0x2D, - 0x2E, - 0x4B, - 0x15, - 0x4B, - 0x2E, - 0x4B, - 0x4B, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x12, - 0x2F, - 0x2F, - 0x62, - 0x3E, - 0x2F, - 0x62, - 0x55, - 0x2F, - 0x2F, - 0x62, - 0x3E, - 0x62, - 0x69, - 0x4C, - 0x69, - 0x3E, - 0x63, - 0x63, - 0x04, - 0x62, - 0x00, - 0x32, - 0x42, - 0x97, - 0x91, - 0x5C, - 0x08, - 0x06, - 0x2E, - 0x42, - 0x43, - 0x63, - 0x43, - 0x69, - 0x69, - 0x71, - 0x87, - 0x71, - 0x71, - 0x44, - 0x87, - 0x87, - 0x87, - 0x85, - 0x85, - 0x85, - 0x7D, - 0x8E, - 0x98, - 0xAA, - 0xAC, - 0xAA, - 0xAC, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xA4, - 0x8B, - 0x8B, - 0x83, - 0x83, - 0x83, - 0x72, - 0x72, - 0x51, - 0x51, - 0x51, - 0x04, - 0x46, - 0x00, - 0x18, - 0x51, - 0x51, - 0x51, - 0x5D, - 0x72, - 0x72, - 0x83, - 0x83, - 0x91, - 0xAA, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB3, - 0xA7, - 0x94, - 0x8E, - 0x04, - 0x7D, - 0x00, - 0x20, - 0x6C, - 0x85, - 0x85, - 0x59, - 0x44, - 0x6C, - 0x59, - 0x35, - 0x75, - 0xA2, - 0x85, - 0x24, - 0xD7, - 0xD2, - 0xD2, - 0xD2, - 0xD8, - 0xD9, - 0xE1, - 0x02, - 0x09, - 0x15, - 0x42, - 0x69, - 0x42, - 0x42, - 0x27, - 0x53, - 0x66, - 0x7D, - 0x94, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x12, - 0xA6, - 0x90, - 0x88, - 0x6D, - 0x2C, - 0x49, - 0x55, - 0x3E, - 0x6F, - 0x53, - 0x41, - 0x53, - 0x41, - 0x41, - 0x71, - 0x7D, - 0x94, - 0xA7, - 0x05, - 0xA2, - 0x00, - 0x63, - 0xA1, - 0x8E, - 0x6C, - 0x61, - 0x2B, - 0x58, - 0x33, - 0x60, - 0x6D, - 0x7C, - 0x7B, - 0x7B, - 0x75, - 0x88, - 0x88, - 0x90, - 0x97, - 0x97, - 0x97, - 0x8E, - 0x66, - 0x6E, - 0x55, - 0x62, - 0x87, - 0x87, - 0x71, - 0x71, - 0x70, - 0x66, - 0x66, - 0x70, - 0x70, - 0x71, - 0x69, - 0x71, - 0x70, - 0x70, - 0x70, - 0x66, - 0x70, - 0x70, - 0x71, - 0x71, - 0x43, - 0x71, - 0x70, - 0x70, - 0x70, - 0x42, - 0x54, - 0x43, - 0x71, - 0x43, - 0x70, - 0x70, - 0x42, - 0x41, - 0x54, - 0x6C, - 0x8E, - 0x97, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0x9F, - 0x94, - 0x87, - 0xB4, - 0xC6, - 0xB4, - 0xA1, - 0x9F, - 0x9B, - 0x97, - 0x40, - 0x53, - 0x42, - 0x41, - 0x42, - 0x41, - 0x40, - 0x40, - 0x37, - 0x40, - 0x40, - 0x37, - 0x40, - 0x25, - 0x6C, - 0x97, - 0xA4, - 0xA0, - 0xA0, - 0x96, - 0x97, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0xFE, - 0x29, - 0x39, - 0x5C, - 0x4F, - 0x3D, - 0xB6, - 0xF4, - 0xF7, - 0xE6, - 0xE6, - 0xF0, - 0xF5, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x28, - 0x81, - 0x89, - 0x8D, - 0x7B, - 0x74, - 0x7F, - 0x7F, - 0x74, - 0x64, - 0x5E, - 0x4F, - 0x1A, - 0xD3, - 0xFA, - 0xF5, - 0xFF, - 0x06, - 0x02, - 0x13, - 0x18, - 0x13, - 0x2C, - 0x14, - 0x14, - 0x4A, - 0x14, - 0x1D, - 0xFA, - 0xFA, - 0xF5, - 0x1D, - 0x4A, - 0x2E, - 0x2E, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x55, - 0x2E, - 0x05, - 0x55, - 0x00, - 0x3E, - 0x2F, - 0x62, - 0x41, - 0x62, - 0x62, - 0x63, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x3E, - 0x63, - 0x4C, - 0x69, - 0x63, - 0x69, - 0x63, - 0x63, - 0x3E, - 0x42, - 0x8E, - 0x95, - 0x75, - 0x5F, - 0x31, - 0x08, - 0x1D, - 0x14, - 0x28, - 0x71, - 0x44, - 0x44, - 0x87, - 0x71, - 0x71, - 0x59, - 0x87, - 0x59, - 0x59, - 0x7D, - 0x85, - 0x7D, - 0x85, - 0x85, - 0x8E, - 0xA3, - 0xAD, - 0xAC, - 0xAA, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAA, - 0x96, - 0x8B, - 0x8B, - 0x05, - 0x83, - 0x07, - 0x72, - 0x04, - 0x83, - 0x00, - 0x22, - 0x84, - 0xA4, - 0xAC, - 0xB1, - 0xB1, - 0xB0, - 0xB1, - 0xAC, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xB1, - 0xB3, - 0xA9, - 0x98, - 0x98, - 0x8E, - 0x8E, - 0x85, - 0x85, - 0x7D, - 0x6C, - 0x85, - 0x44, - 0x6C, - 0x7D, - 0x59, - 0x43, - 0x32, - 0xA6, - 0xA3, - 0x37, - 0xBB, - 0x07, - 0xD2, - 0x00, - 0x10, - 0xD5, - 0xD7, - 0xBB, - 0x00, - 0x3E, - 0x63, - 0x71, - 0x66, - 0x43, - 0x42, - 0x53, - 0x37, - 0x54, - 0x6C, - 0x98, - 0xA3, - 0x04, - 0xA2, - 0x00, - 0x13, - 0x9B, - 0xA1, - 0x8E, - 0x7B, - 0x7E, - 0x33, - 0x2C, - 0x27, - 0x54, - 0x54, - 0x70, - 0x54, - 0x54, - 0x62, - 0x42, - 0x7D, - 0x8E, - 0xA3, - 0xA4, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x09, - 0xA4, - 0x97, - 0xA1, - 0xA4, - 0x9B, - 0x9B, - 0x9B, - 0xA2, - 0x9B, - 0x00, - 0x08, - 0xA2, - 0x00, - 0x4F, - 0x9B, - 0xA4, - 0x94, - 0x7D, - 0x6F, - 0x49, - 0x3E, - 0x63, - 0x87, - 0x87, - 0x66, - 0x70, - 0x70, - 0x66, - 0x63, - 0x71, - 0x69, - 0x63, - 0x71, - 0x70, - 0x63, - 0x70, - 0x66, - 0x70, - 0x70, - 0x70, - 0x71, - 0x43, - 0x70, - 0x70, - 0x70, - 0x42, - 0x54, - 0x54, - 0x42, - 0x42, - 0x70, - 0x66, - 0x70, - 0x42, - 0x41, - 0x41, - 0x66, - 0x8E, - 0x94, - 0xA6, - 0xA6, - 0xA6, - 0x98, - 0xD6, - 0xC6, - 0xD9, - 0xD9, - 0xD8, - 0xB4, - 0xA0, - 0xA6, - 0xA6, - 0x42, - 0x41, - 0x53, - 0x40, - 0x40, - 0x40, - 0x37, - 0x53, - 0x40, - 0x6E, - 0x37, - 0x40, - 0x40, - 0x40, - 0x25, - 0x25, - 0x41, - 0x54, - 0x65, - 0x6F, - 0x41, - 0x00, - 0x00, - 0x00, - 0x01, - 0x5B, - 0x01, - 0x64, - 0x04, - 0x68, - 0x00, - 0x31, - 0x64, - 0x5E, - 0x4F, - 0x92, - 0x86, - 0xCF, - 0xF4, - 0xE6, - 0xDC, - 0xEC, - 0xEC, - 0xDC, - 0xEC, - 0xF5, - 0xEA, - 0xFF, - 0x7E, - 0x6D, - 0x7B, - 0x74, - 0x7F, - 0x7F, - 0x74, - 0x64, - 0x6D, - 0x4F, - 0x39, - 0x29, - 0xF5, - 0xFF, - 0x06, - 0x5A, - 0x4A, - 0x4A, - 0x14, - 0x14, - 0x1D, - 0x79, - 0x6D, - 0x6D, - 0x5F, - 0x92, - 0x04, - 0xF9, - 0x05, - 0x06, - 0x4A, - 0x2E, - 0x2E, - 0x00, - 0x05, - 0x55, - 0x00, - 0x06, - 0x2F, - 0x55, - 0x2F, - 0x55, - 0x55, - 0x2F, - 0x04, - 0x62, - 0x00, - 0x39, - 0x2F, - 0x62, - 0x3E, - 0x62, - 0x62, - 0x62, - 0x63, - 0x4C, - 0x69, - 0x69, - 0x63, - 0x62, - 0x2F, - 0x87, - 0x94, - 0x97, - 0x97, - 0x88, - 0x77, - 0x5C, - 0x19, - 0x19, - 0x1D, - 0x2D, - 0x42, - 0x44, - 0x44, - 0x59, - 0x87, - 0x44, - 0x85, - 0x87, - 0x85, - 0x7D, - 0x85, - 0x85, - 0x8E, - 0x98, - 0xA3, - 0xAD, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xAA, - 0xAA, - 0xA4, - 0x95, - 0x8B, - 0x8B, - 0x00, - 0x0A, - 0x83, - 0x00, - 0x15, - 0x7A, - 0x91, - 0xA4, - 0xAA, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB0, - 0xAE, - 0xB3, - 0xAD, - 0x94, - 0x8E, - 0x85, - 0x8E, - 0x00, - 0x04, - 0x85, - 0x00, - 0x0E, - 0x7D, - 0x7D, - 0x85, - 0x59, - 0x59, - 0x59, - 0x32, - 0x97, - 0xA2, - 0x59, - 0x44, - 0xB4, - 0xD8, - 0xC2, - 0x08, - 0xD2, - 0x00, - 0x11, - 0xA3, - 0x7B, - 0x53, - 0x35, - 0x15, - 0x63, - 0x70, - 0x44, - 0x70, - 0x54, - 0x41, - 0x37, - 0x53, - 0x66, - 0x85, - 0x94, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x24, - 0xA4, - 0x94, - 0x88, - 0x7C, - 0x7E, - 0x2C, - 0x6E, - 0x42, - 0x66, - 0x66, - 0x66, - 0x70, - 0x42, - 0x54, - 0x87, - 0x98, - 0x94, - 0xA7, - 0xA7, - 0xA2, - 0xA2, - 0xA7, - 0xA7, - 0xA3, - 0xA3, - 0xA3, - 0x98, - 0x98, - 0x8E, - 0x85, - 0x85, - 0x87, - 0x59, - 0x85, - 0xA3, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x13, - 0xA6, - 0x97, - 0x8E, - 0x65, - 0x6F, - 0x61, - 0x62, - 0x71, - 0x87, - 0x71, - 0x66, - 0x71, - 0x66, - 0x71, - 0x70, - 0x66, - 0x71, - 0x63, - 0x71, - 0x00, - 0x04, - 0x70, - 0x00, - 0x24, - 0x54, - 0x70, - 0x70, - 0x66, - 0x42, - 0x54, - 0x70, - 0x42, - 0x54, - 0x70, - 0x42, - 0x54, - 0x70, - 0x42, - 0x42, - 0x6F, - 0x37, - 0x52, - 0xA0, - 0x9B, - 0xA1, - 0xD7, - 0xD9, - 0x24, - 0x20, - 0x08, - 0xD9, - 0xC2, - 0xA6, - 0x9B, - 0xA1, - 0x41, - 0x53, - 0x40, - 0x53, - 0x41, - 0x08, - 0x40, - 0x00, - 0x08, - 0x37, - 0x40, - 0x40, - 0x40, - 0x35, - 0x2D, - 0x25, - 0x40, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x6B, - 0x8D, - 0x89, - 0xFF, - 0x76, - 0x6D, - 0x77, - 0x68, - 0x74, - 0x68, - 0x64, - 0x3C, - 0x5C, - 0x3D, - 0x22, - 0xFE, - 0xF4, - 0xE6, - 0xEC, - 0xF5, - 0xF9, - 0xEA, - 0xF5, - 0xF5, - 0xEA, - 0x1D, - 0x60, - 0x7C, - 0x7B, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x75, - 0x5E, - 0x4F, - 0x39, - 0x05, - 0x05, - 0x1D, - 0x13, - 0x0A, - 0x34, - 0x84, - 0x88, - 0xB2, - 0x8D, - 0x77, - 0x68, - 0x77, - 0x80, - 0x3D, - 0x81, - 0x2E, - 0x13, - 0x18, - 0x2D, - 0x55, - 0x41, - 0x2F, - 0x2F, - 0x55, - 0x2F, - 0x62, - 0x2F, - 0x62, - 0x55, - 0x55, - 0x62, - 0x62, - 0x2F, - 0x2F, - 0x62, - 0x62, - 0x2F, - 0x63, - 0x63, - 0x42, - 0x62, - 0x63, - 0x63, - 0x62, - 0x4C, - 0x69, - 0x4C, - 0x4C, - 0x87, - 0x7D, - 0x88, - 0x97, - 0x91, - 0x88, - 0x6B, - 0x4F, - 0x31, - 0x19, - 0x24, - 0x27, - 0x59, - 0x87, - 0x87, - 0x85, - 0x87, - 0x85, - 0x7D, - 0x85, - 0x85, - 0x85, - 0x8E, - 0xA3, - 0xA9, - 0xAA, - 0xB0, - 0xAA, - 0xAA, - 0xAA, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xAA, - 0xA2, - 0xA4, - 0x95, - 0x95, - 0x8C, - 0x8C, - 0x8C, - 0x91, - 0x95, - 0xA4, - 0xA2, - 0xAA, - 0xAC, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xB1, - 0xAC, - 0xAE, - 0xAE, - 0xB0, - 0xAE, - 0xB3, - 0xAD, - 0x94, - 0x8E, - 0x98, - 0x8E, - 0x8E, - 0x7D, - 0x85, - 0x85, - 0x59, - 0x7D, - 0x59, - 0x85, - 0x85, - 0x87, - 0x36, - 0x7B, - 0xA2, - 0x85, - 0x35, - 0x35, - 0x54, - 0x43, - 0x44, - 0xB4, - 0xD7, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x7D, - 0xB1, - 0xA2, - 0xA2, - 0xA2, - 0xA7, - 0x88, - 0x7C, - 0x52, - 0x2D, - 0x40, - 0x63, - 0x42, - 0x54, - 0x54, - 0x6F, - 0x41, - 0x53, - 0x6F, - 0x59, - 0x98, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0x96, - 0x8E, - 0x65, - 0x6E, - 0x49, - 0x61, - 0x62, - 0x66, - 0x71, - 0x66, - 0x66, - 0x70, - 0x63, - 0x71, - 0x87, - 0x87, - 0x71, - 0x66, - 0x66, - 0x42, - 0x70, - 0x70, - 0x43, - 0x70, - 0x70, - 0x43, - 0x66, - 0x71, - 0x70, - 0x70, - 0x70, - 0x71, - 0x7D, - 0x98, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0x96, - 0x8E, - 0x7B, - 0x53, - 0x2E, - 0x61, - 0x63, - 0x70, - 0x87, - 0x66, - 0x66, - 0x70, - 0x42, - 0x63, - 0x63, - 0x63, - 0x71, - 0x70, - 0x54, - 0x70, - 0x66, - 0x70, - 0x70, - 0x54, - 0x70, - 0x71, - 0x43, - 0x70, - 0x42, - 0x53, - 0x41, - 0x54, - 0x42, - 0x54, - 0x54, - 0x37, - 0x7B, - 0x9F, - 0xA6, - 0x96, - 0xD8, - 0xD6, - 0xFB, - 0xEA, - 0xE7, - 0xD5, - 0xA2, - 0xA6, - 0x9B, - 0x7D, - 0x40, - 0x41, - 0x6E, - 0x40, - 0x41, - 0x37, - 0x41, - 0x6E, - 0x37, - 0x00, - 0x08, - 0x40, - 0x00, - 0x04, - 0x2E, - 0x40, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x42, - 0xF0, - 0xE5, - 0xE5, - 0xE5, - 0xDD, - 0xF0, - 0xEA, - 0xC4, - 0x76, - 0x6D, - 0x7B, - 0x74, - 0x74, - 0x74, - 0x68, - 0x6B, - 0x5C, - 0x19, - 0x86, - 0xFA, - 0xF4, - 0xEC, - 0xEC, - 0xF5, - 0xF5, - 0xEA, - 0xEA, - 0xF5, - 0xFF, - 0x2B, - 0x52, - 0x7B, - 0x75, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x68, - 0x56, - 0x79, - 0x39, - 0x1A, - 0x77, - 0x90, - 0x18, - 0xDF, - 0xDF, - 0xE7, - 0xE9, - 0xB2, - 0x7B, - 0x90, - 0x65, - 0x0A, - 0x79, - 0x92, - 0x04, - 0x04, - 0xFF, - 0x17, - 0x61, - 0x2F, - 0x62, - 0x55, - 0x41, - 0x55, - 0x04, - 0x3E, - 0x05, - 0x62, - 0x06, - 0x63, - 0x00, - 0x16, - 0x42, - 0x63, - 0x69, - 0x69, - 0x69, - 0x4C, - 0x02, - 0xF1, - 0x05, - 0x06, - 0x65, - 0x94, - 0xA1, - 0x97, - 0x75, - 0x6B, - 0x2A, - 0x31, - 0x1F, - 0x34, - 0x54, - 0x59, - 0x04, - 0x85, - 0x04, - 0x98, - 0x00, - 0x4B, - 0xA9, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAA, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAE, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xAE, - 0xAE, - 0xB1, - 0xB1, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xAC, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xB3, - 0xB3, - 0xA9, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x85, - 0x7D, - 0x85, - 0x85, - 0x7D, - 0x85, - 0x7D, - 0x85, - 0x85, - 0x7D, - 0x44, - 0x56, - 0xA4, - 0xA7, - 0x37, - 0x16, - 0xE8, - 0x01, - 0x09, - 0x34, - 0x37, - 0x70, - 0x44, - 0xBB, - 0xC6, - 0xD8, - 0xD7, - 0x8E, - 0xA3, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x13, - 0xA6, - 0x90, - 0x7B, - 0x7C, - 0x34, - 0x48, - 0x37, - 0x63, - 0x63, - 0x63, - 0x54, - 0x53, - 0x53, - 0x41, - 0x66, - 0x7D, - 0xA3, - 0xA1, - 0xA6, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x07, - 0x97, - 0x7B, - 0x7C, - 0x52, - 0x49, - 0x3E, - 0x63, - 0x00, - 0x05, - 0x71, - 0x00, - 0x55, - 0x66, - 0x66, - 0x71, - 0x87, - 0x71, - 0x87, - 0x71, - 0x71, - 0x71, - 0x66, - 0x71, - 0x66, - 0x71, - 0x71, - 0x71, - 0x66, - 0x66, - 0x70, - 0x66, - 0x87, - 0x98, - 0xA3, - 0xA7, - 0xA6, - 0xA2, - 0x9B, - 0xA2, - 0xA6, - 0x97, - 0x7D, - 0x7C, - 0x49, - 0x49, - 0x62, - 0x87, - 0x66, - 0x66, - 0x70, - 0x70, - 0x71, - 0x66, - 0x41, - 0x40, - 0x2C, - 0x2D, - 0x40, - 0x41, - 0x70, - 0x42, - 0x54, - 0x42, - 0x42, - 0x42, - 0x6F, - 0x42, - 0x70, - 0x54, - 0x42, - 0x54, - 0x41, - 0x53, - 0xA1, - 0x9F, - 0xA6, - 0xA6, - 0xB3, - 0xC2, - 0xB5, - 0xB3, - 0xA6, - 0x9B, - 0xA6, - 0x8E, - 0x25, - 0x41, - 0x41, - 0x41, - 0x37, - 0x53, - 0x40, - 0x40, - 0x37, - 0x41, - 0x40, - 0x41, - 0x00, - 0x04, - 0x40, - 0x00, - 0x06, - 0x35, - 0x40, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x44, - 0xDD, - 0xEC, - 0xF0, - 0xE6, - 0xF0, - 0xE6, - 0xF0, - 0xF0, - 0xF0, - 0xDD, - 0xDD, - 0xC4, - 0x60, - 0x7C, - 0x7B, - 0x74, - 0x74, - 0x74, - 0x75, - 0x5B, - 0x5C, - 0x39, - 0x29, - 0xFA, - 0xDC, - 0xEC, - 0xE6, - 0xD0, - 0xF5, - 0xEA, - 0xFB, - 0xFB, - 0x18, - 0x49, - 0x7C, - 0x7B, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x77, - 0x74, - 0x75, - 0xDB, - 0xD5, - 0xD2, - 0xD2, - 0xD5, - 0xD4, - 0xEE, - 0x15, - 0x2E, - 0x55, - 0x7D, - 0x75, - 0x64, - 0x6B, - 0x5C, - 0x3D, - 0x04, - 0x05, - 0x2D, - 0x41, - 0x2F, - 0x41, - 0x2F, - 0x2F, - 0x04, - 0x3E, - 0x00, - 0x09, - 0x4C, - 0x3E, - 0x62, - 0x3E, - 0x70, - 0x63, - 0x63, - 0x63, - 0x4C, - 0x00, - 0x05, - 0x63, - 0x00, - 0x16, - 0x25, - 0xD9, - 0xD2, - 0xD4, - 0xD9, - 0xE8, - 0x02, - 0x43, - 0x85, - 0x94, - 0x94, - 0x91, - 0x97, - 0x75, - 0x5E, - 0x38, - 0x2A, - 0x33, - 0x3F, - 0x59, - 0x85, - 0x85, - 0x04, - 0x98, - 0x00, - 0x2D, - 0xA3, - 0xAD, - 0xAE, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAE, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB1, - 0xB1, - 0xAE, - 0xB0, - 0xAE, - 0xAC, - 0xB1, - 0xAE, - 0xB1, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xB1, - 0xB1, - 0xAE, - 0xB1, - 0xAD, - 0xA3, - 0x98, - 0x94, - 0x98, - 0x8E, - 0x85, - 0x8E, - 0x00, - 0x04, - 0x85, - 0x00, - 0x33, - 0x7D, - 0x87, - 0x7D, - 0x59, - 0x59, - 0x35, - 0x90, - 0xA2, - 0x66, - 0x15, - 0xD5, - 0xD2, - 0xD2, - 0xD7, - 0xE4, - 0x00, - 0x01, - 0x11, - 0x20, - 0x41, - 0x71, - 0x69, - 0x70, - 0x70, - 0x66, - 0x7D, - 0x98, - 0xA1, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x65, - 0x6E, - 0x34, - 0x2E, - 0x41, - 0x54, - 0x54, - 0x70, - 0x6F, - 0x41, - 0x41, - 0x54, - 0x85, - 0x98, - 0xA3, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x58, - 0xA1, - 0x8E, - 0x7B, - 0x6E, - 0x55, - 0x4B, - 0x4B, - 0x4A, - 0x49, - 0x4A, - 0x2C, - 0x49, - 0x49, - 0x2D, - 0x61, - 0x61, - 0x2D, - 0x49, - 0x55, - 0x41, - 0x43, - 0x71, - 0x71, - 0x66, - 0x71, - 0x71, - 0x66, - 0x42, - 0x2E, - 0x2D, - 0x2D, - 0x41, - 0x7D, - 0x98, - 0xA1, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA1, - 0x88, - 0x7C, - 0x52, - 0x7E, - 0x40, - 0x54, - 0x70, - 0x49, - 0x33, - 0x80, - 0x6D, - 0x77, - 0x77, - 0x7C, - 0x7C, - 0x4B, - 0x6F, - 0x70, - 0x42, - 0x54, - 0x54, - 0x54, - 0x42, - 0x70, - 0x41, - 0x54, - 0x41, - 0x54, - 0x53, - 0x66, - 0xA1, - 0x9F, - 0x9B, - 0x9F, - 0x9B, - 0x9F, - 0x9F, - 0xA6, - 0xA3, - 0x6C, - 0x40, - 0x41, - 0x53, - 0x41, - 0x2F, - 0x41, - 0x55, - 0x04, - 0x40, - 0x01, - 0x37, - 0x04, - 0x40, - 0x00, - 0x07, - 0x2E, - 0x40, - 0x40, - 0x35, - 0x40, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x00, - 0x42, - 0xE6, - 0xF0, - 0xF0, - 0xF0, - 0xDD, - 0xDD, - 0xEA, - 0xEC, - 0xF0, - 0xDC, - 0xE6, - 0xDD, - 0xF0, - 0xEC, - 0xF5, - 0xC0, - 0x80, - 0x6D, - 0x64, - 0x74, - 0x74, - 0x74, - 0x68, - 0x64, - 0x5F, - 0xC4, - 0xEB, - 0xF3, - 0xF8, - 0xE5, - 0xFA, - 0x29, - 0x06, - 0x06, - 0x01, - 0x17, - 0x14, - 0x40, - 0x65, - 0x75, - 0x88, - 0x75, - 0x90, - 0x7F, - 0xC6, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xD8, - 0x15, - 0x2E, - 0x2E, - 0x3E, - 0x0B, - 0xE9, - 0xDB, - 0xB2, - 0x7B, - 0x75, - 0x74, - 0x6B, - 0x81, - 0x15, - 0x41, - 0x2F, - 0x04, - 0x62, - 0x00, - 0x12, - 0x2F, - 0x62, - 0x4C, - 0x3E, - 0x4C, - 0x4C, - 0x3E, - 0x62, - 0x62, - 0x63, - 0x42, - 0x70, - 0x63, - 0x63, - 0x69, - 0x42, - 0xE8, - 0xD5, - 0x04, - 0xD2, - 0x00, - 0x4F, - 0xD9, - 0x42, - 0x69, - 0x16, - 0xFB, - 0x05, - 0x34, - 0x6C, - 0x97, - 0xA1, - 0x90, - 0x75, - 0x5E, - 0x38, - 0x2A, - 0x32, - 0x3B, - 0x7D, - 0x85, - 0x98, - 0x98, - 0xA3, - 0xA3, - 0xAD, - 0xAA, - 0xAE, - 0xAC, - 0xAA, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB1, - 0xAE, - 0xAE, - 0xB1, - 0xA9, - 0xA3, - 0x94, - 0x98, - 0x8E, - 0x98, - 0x8E, - 0x85, - 0x85, - 0x85, - 0x7D, - 0x85, - 0x87, - 0x7D, - 0x85, - 0x85, - 0x87, - 0x36, - 0x77, - 0x9B, - 0x98, - 0x0F, - 0xD7, - 0x00, - 0x06, - 0xD2, - 0x00, - 0x10, - 0xD5, - 0xD6, - 0xE1, - 0x02, - 0x55, - 0x43, - 0x71, - 0x71, - 0x66, - 0x42, - 0x54, - 0x70, - 0x59, - 0x7D, - 0xA3, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x19, - 0xA6, - 0x97, - 0x7D, - 0x8D, - 0x49, - 0x49, - 0x40, - 0x54, - 0x66, - 0x70, - 0x54, - 0x41, - 0x41, - 0x70, - 0x71, - 0x7D, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x00, - 0x0C, - 0x90, - 0x00, - 0x21, - 0x88, - 0x7C, - 0x7E, - 0x40, - 0x2E, - 0x70, - 0x66, - 0x40, - 0x24, - 0x80, - 0x8D, - 0x7B, - 0x7B, - 0x7C, - 0x52, - 0x49, - 0x41, - 0x59, - 0x85, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0x97, - 0x7B, - 0x52, - 0x33, - 0x7C, - 0x97, - 0xA6, - 0x00, - 0x05, - 0x9B, - 0x00, - 0x27, - 0x97, - 0x6F, - 0x3E, - 0x54, - 0x41, - 0x54, - 0x42, - 0x54, - 0x41, - 0x53, - 0x6F, - 0x54, - 0x41, - 0x42, - 0x41, - 0x41, - 0x7D, - 0x94, - 0x97, - 0x97, - 0x94, - 0x8E, - 0x66, - 0x41, - 0x37, - 0x41, - 0x53, - 0x41, - 0x6E, - 0x40, - 0x55, - 0x40, - 0x40, - 0x37, - 0x40, - 0x40, - 0x40, - 0x49, - 0x35, - 0x00, - 0x05, - 0x40, - 0x00, - 0x04, - 0x35, - 0x40, - 0x40, - 0x35, - 0x00, - 0x00, - 0x00, - 0x2D, - 0xE5, - 0xE6, - 0xCB, - 0xE6, - 0xE6, - 0xF0, - 0xDD, - 0xDD, - 0xEA, - 0xEC, - 0xDD, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xDC, - 0xD1, - 0xFF, - 0x60, - 0x77, - 0x75, - 0x74, - 0x74, - 0xDA, - 0xD4, - 0xD5, - 0xD4, - 0xDF, - 0xEB, - 0xF3, - 0xF8, - 0xE6, - 0xD3, - 0x05, - 0x17, - 0x0E, - 0x17, - 0x14, - 0x09, - 0x7B, - 0x90, - 0x66, - 0xD4, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x26, - 0xD9, - 0x14, - 0x55, - 0x55, - 0x16, - 0xDB, - 0xD4, - 0xD2, - 0xD4, - 0xDF, - 0xE7, - 0x4B, - 0x90, - 0x88, - 0x2C, - 0x2F, - 0x2F, - 0x6F, - 0x2F, - 0x2F, - 0x62, - 0x62, - 0x3E, - 0x62, - 0x62, - 0x3E, - 0x63, - 0x42, - 0x62, - 0x3E, - 0x63, - 0x63, - 0x4C, - 0x63, - 0x63, - 0x63, - 0x15, - 0xD9, - 0x04, - 0xD2, - 0x00, - 0x3E, - 0xD8, - 0x63, - 0x69, - 0x42, - 0xE1, - 0xD2, - 0xD4, - 0xD9, - 0xEE, - 0x0A, - 0x87, - 0x98, - 0xA3, - 0xA1, - 0xA1, - 0x84, - 0x75, - 0x4D, - 0x47, - 0x47, - 0x3F, - 0x6C, - 0x8E, - 0x98, - 0x98, - 0xA7, - 0xA9, - 0xB0, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB0, - 0xAC, - 0xB0, - 0xB0, - 0xB1, - 0xB1, - 0xB0, - 0xB1, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xAC, - 0xB0, - 0xAC, - 0xB1, - 0xAE, - 0xAE, - 0xB0, - 0xAD, - 0xA9, - 0xA3, - 0x98, - 0x98, - 0x98, - 0x85, - 0x98, - 0x04, - 0x85, - 0x00, - 0x0F, - 0x7D, - 0x85, - 0x85, - 0x85, - 0x87, - 0x7D, - 0x44, - 0x59, - 0x33, - 0xA4, - 0xA7, - 0x44, - 0x87, - 0xD8, - 0xC2, - 0x00, - 0x08, - 0xD2, - 0x00, - 0x11, - 0xB5, - 0x65, - 0x52, - 0x35, - 0x2E, - 0x42, - 0x43, - 0x71, - 0x71, - 0x66, - 0x42, - 0x54, - 0x70, - 0x6C, - 0x98, - 0xA3, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x13, - 0xA4, - 0x94, - 0x65, - 0x60, - 0x49, - 0x2D, - 0x41, - 0x70, - 0x71, - 0x66, - 0x66, - 0x42, - 0x42, - 0x71, - 0x59, - 0x98, - 0xA7, - 0xA7, - 0xA6, - 0x00, - 0x0F, - 0xA2, - 0x00, - 0x08, - 0x9B, - 0xA6, - 0x97, - 0x7B, - 0x6E, - 0x48, - 0x77, - 0x97, - 0x04, - 0x9B, - 0x00, - 0x30, - 0xA2, - 0xA6, - 0x97, - 0x7C, - 0x42, - 0x42, - 0x54, - 0x70, - 0x7D, - 0x98, - 0xA1, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0xA4, - 0x9B, - 0xA2, - 0x97, - 0x85, - 0x98, - 0x98, - 0x97, - 0xA6, - 0x9B, - 0xA6, - 0x54, - 0x41, - 0x41, - 0x63, - 0x63, - 0x70, - 0x63, - 0x42, - 0x54, - 0x53, - 0x41, - 0x41, - 0x41, - 0x54, - 0x41, - 0x2F, - 0x41, - 0x41, - 0x53, - 0x27, - 0x53, - 0x07, - 0x41, - 0x01, - 0x37, - 0x09, - 0x40, - 0x00, - 0x08, - 0x25, - 0x35, - 0x25, - 0x35, - 0x49, - 0x25, - 0x40, - 0x40, - 0x00, - 0x00, - 0x00, - 0x12, - 0xE5, - 0xF0, - 0xE6, - 0xF0, - 0xE6, - 0xE6, - 0xE6, - 0xF0, - 0xEC, - 0xEC, - 0xDD, - 0xEC, - 0xEA, - 0xEA, - 0xEC, - 0xEC, - 0xEC, - 0xDC, - 0x04, - 0xEC, - 0x00, - 0x04, - 0xC0, - 0xFF, - 0x7E, - 0xD4, - 0x06, - 0xD5, - 0x00, - 0x0D, - 0xD4, - 0xDF, - 0xEB, - 0xF1, - 0x18, - 0x14, - 0x14, - 0x14, - 0x2C, - 0x7F, - 0x75, - 0xE9, - 0xD5, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x06, - 0x0B, - 0x4B, - 0x16, - 0x55, - 0x15, - 0xE8, - 0x05, - 0xD2, - 0x00, - 0x08, - 0x02, - 0x75, - 0x90, - 0x16, - 0x3E, - 0x62, - 0x2F, - 0x2F, - 0x05, - 0x62, - 0x00, - 0x0E, - 0x3E, - 0x42, - 0x62, - 0x62, - 0x62, - 0x63, - 0x63, - 0x63, - 0x4C, - 0x63, - 0x69, - 0x63, - 0x0B, - 0xD5, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xC6, - 0x42, - 0x69, - 0x16, - 0xD7, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x1A, - 0xD7, - 0x44, - 0x87, - 0x44, - 0x09, - 0x24, - 0x57, - 0x94, - 0xA1, - 0x91, - 0x90, - 0x64, - 0x4D, - 0x32, - 0x3C, - 0x57, - 0x7D, - 0x98, - 0xA3, - 0xA9, - 0xAD, - 0xB0, - 0xAE, - 0xAE, - 0xAC, - 0xB1, - 0x04, - 0xAC, - 0x00, - 0x10, - 0xAE, - 0xAC, - 0xAC, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAC, - 0xB0, - 0xAE, - 0xB1, - 0xAE, - 0xB0, - 0xA9, - 0xA9, - 0xA3, - 0x07, - 0x98, - 0x00, - 0x16, - 0x85, - 0x98, - 0x85, - 0x85, - 0x87, - 0x85, - 0x85, - 0x87, - 0x85, - 0x87, - 0x7D, - 0x35, - 0x90, - 0xA2, - 0x44, - 0x37, - 0x42, - 0x44, - 0x85, - 0xC6, - 0xD7, - 0xD8, - 0x05, - 0xD2, - 0x00, - 0x14, - 0xA2, - 0xA2, - 0xA6, - 0xA1, - 0x88, - 0x6D, - 0x7E, - 0x35, - 0x40, - 0x42, - 0x66, - 0x66, - 0x66, - 0x70, - 0x42, - 0x54, - 0x66, - 0x7D, - 0xA3, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x0F, - 0xA6, - 0xA1, - 0x88, - 0x8D, - 0x60, - 0x49, - 0x37, - 0x70, - 0x66, - 0x71, - 0x66, - 0x70, - 0x70, - 0x70, - 0x59, - 0x00, - 0x05, - 0x85, - 0x00, - 0x05, - 0x7D, - 0x87, - 0x7D, - 0x87, - 0x7D, - 0x00, - 0x04, - 0x85, - 0x00, - 0x4C, - 0x94, - 0xA7, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0xA4, - 0x9B, - 0x9B, - 0x97, - 0x85, - 0x85, - 0xB4, - 0x97, - 0xA6, - 0x9B, - 0xA4, - 0x66, - 0x70, - 0x71, - 0x71, - 0x70, - 0x42, - 0x42, - 0x59, - 0x8E, - 0xA3, - 0xA4, - 0xA6, - 0xA2, - 0xA6, - 0x85, - 0xC6, - 0xD7, - 0xC6, - 0xD8, - 0xD7, - 0xA3, - 0xA6, - 0x9B, - 0x94, - 0x27, - 0x6F, - 0x41, - 0x54, - 0x42, - 0x42, - 0x70, - 0x62, - 0x63, - 0x42, - 0x41, - 0x53, - 0x41, - 0x41, - 0x54, - 0x6F, - 0x42, - 0x41, - 0x41, - 0x53, - 0x37, - 0x53, - 0x37, - 0x41, - 0x53, - 0x41, - 0x40, - 0x6E, - 0x40, - 0x37, - 0x40, - 0x40, - 0x40, - 0x35, - 0x04, - 0x40, - 0x00, - 0x07, - 0x35, - 0x40, - 0x49, - 0x35, - 0x49, - 0x35, - 0x25, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xDC, - 0x01, - 0xF0, - 0x06, - 0xDC, - 0x00, - 0x13, - 0xEC, - 0xDD, - 0xEC, - 0xDC, - 0xF5, - 0xFB, - 0xF5, - 0xDD, - 0xDD, - 0xF9, - 0xF5, - 0xF9, - 0xEA, - 0xE3, - 0xD6, - 0xD4, - 0xD5, - 0xD5, - 0xD5, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x09, - 0xD6, - 0x01, - 0x4A, - 0x15, - 0x17, - 0x52, - 0x84, - 0x48, - 0xDF, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x07, - 0xD7, - 0x0E, - 0x4B, - 0x16, - 0x2E, - 0x14, - 0xD6, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x0B, - 0xC6, - 0x58, - 0x91, - 0x7B, - 0x0E, - 0x4C, - 0x3E, - 0x63, - 0x63, - 0x3E, - 0x3E, - 0x00, - 0x04, - 0x62, - 0x00, - 0x0C, - 0x3E, - 0x62, - 0x63, - 0x42, - 0x63, - 0x62, - 0x42, - 0x42, - 0x63, - 0x63, - 0x2F, - 0xD9, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xC2, - 0x4C, - 0x69, - 0x42, - 0xE1, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x1F, - 0xBB, - 0x59, - 0x87, - 0x2F, - 0xD7, - 0xD7, - 0xE4, - 0x0A, - 0x11, - 0x7D, - 0xA3, - 0xA7, - 0xA4, - 0x95, - 0x7F, - 0x64, - 0x3C, - 0x4D, - 0x4E, - 0x6C, - 0x8E, - 0xA3, - 0xA3, - 0xAD, - 0xAD, - 0xAA, - 0xB0, - 0xB1, - 0xB1, - 0xB1, - 0xB0, - 0x00, - 0x04, - 0xB1, - 0x00, - 0x08, - 0xB0, - 0xB0, - 0xB1, - 0xAD, - 0xAD, - 0xA9, - 0xA3, - 0xA3, - 0x06, - 0x98, - 0x0A, - 0x85, - 0x00, - 0x17, - 0x87, - 0x7D, - 0x85, - 0x87, - 0x36, - 0x6D, - 0xA2, - 0x98, - 0x25, - 0xEE, - 0x01, - 0x06, - 0x11, - 0x2E, - 0x63, - 0x44, - 0xBB, - 0xC6, - 0xD8, - 0xC2, - 0xB4, - 0xA3, - 0xA7, - 0x00, - 0x04, - 0xA2, - 0x00, - 0x43, - 0xA4, - 0x90, - 0x7B, - 0x60, - 0x60, - 0x2D, - 0x41, - 0x42, - 0x71, - 0x66, - 0x70, - 0x54, - 0x54, - 0x70, - 0x59, - 0x8E, - 0xA3, - 0xA4, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0xA4, - 0x90, - 0x7C, - 0x60, - 0x49, - 0x6E, - 0x6F, - 0x66, - 0x71, - 0x71, - 0x66, - 0x70, - 0x70, - 0x70, - 0x87, - 0x70, - 0x70, - 0x43, - 0x69, - 0x71, - 0x63, - 0x66, - 0x70, - 0x70, - 0x63, - 0x63, - 0x71, - 0x87, - 0x8E, - 0xA3, - 0xA7, - 0xA2, - 0xA6, - 0xA6, - 0x98, - 0xDA, - 0xD7, - 0xC6, - 0xD8, - 0xD7, - 0xA3, - 0xA6, - 0x9B, - 0x94, - 0x42, - 0x00, - 0x05, - 0x71, - 0x00, - 0x3E, - 0x70, - 0x42, - 0x41, - 0x6C, - 0x9B, - 0xA2, - 0x94, - 0xD4, - 0xD9, - 0x36, - 0x40, - 0x18, - 0xD5, - 0xAD, - 0xA6, - 0x9B, - 0x94, - 0x41, - 0x54, - 0x41, - 0x54, - 0x41, - 0x41, - 0x41, - 0x42, - 0x70, - 0x6F, - 0x53, - 0x41, - 0x62, - 0x41, - 0x53, - 0x53, - 0x37, - 0x41, - 0x41, - 0x37, - 0x6E, - 0x62, - 0x41, - 0x37, - 0x40, - 0x37, - 0x40, - 0x37, - 0x37, - 0x41, - 0x41, - 0x2E, - 0x40, - 0x40, - 0x40, - 0x52, - 0x49, - 0x35, - 0x61, - 0x40, - 0x25, - 0x25, - 0x35, - 0x49, - 0x49, - 0x00, - 0x00, - 0x00, - 0x15, - 0xEC, - 0xF0, - 0xE6, - 0xF0, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xE6, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xEC, - 0xEC, - 0xF5, - 0xF5, - 0xF5, - 0xF9, - 0x00, - 0x04, - 0xEA, - 0x00, - 0x1E, - 0xF9, - 0xF5, - 0xFB, - 0xEE, - 0xE4, - 0xD6, - 0xD5, - 0xD5, - 0xD2, - 0xD2, - 0xBB, - 0x2B, - 0x14, - 0x0B, - 0x15, - 0x55, - 0x7F, - 0x77, - 0xC4, - 0xEE, - 0xE4, - 0xD4, - 0xD5, - 0xBB, - 0x15, - 0x2F, - 0x55, - 0x2E, - 0xEE, - 0xD5, - 0x04, - 0xD2, - 0x00, - 0x13, - 0x98, - 0x74, - 0x91, - 0x7B, - 0x33, - 0x1D, - 0x2D, - 0x3E, - 0x62, - 0x63, - 0x63, - 0x63, - 0x4C, - 0x63, - 0x4C, - 0x42, - 0x62, - 0x62, - 0x3E, - 0x00, - 0x06, - 0x63, - 0x01, - 0x62, - 0x01, - 0xD7, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xC6, - 0x63, - 0x69, - 0x16, - 0xD6, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xD7, - 0x71, - 0xBB, - 0x2F, - 0xC6, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x17, - 0xD7, - 0x59, - 0x85, - 0x87, - 0x34, - 0x56, - 0x6C, - 0x97, - 0xA4, - 0x91, - 0x7F, - 0x68, - 0x51, - 0x4D, - 0x4E, - 0x6C, - 0x8E, - 0x98, - 0xA3, - 0xA9, - 0xA3, - 0xA9, - 0xA9, - 0x00, - 0x05, - 0xA7, - 0x04, - 0xA3, - 0x05, - 0x98, - 0x00, - 0x06, - 0x8E, - 0x98, - 0x85, - 0x98, - 0x98, - 0x98, - 0x04, - 0x85, - 0x00, - 0x8D, - 0x87, - 0x85, - 0x85, - 0x85, - 0x7D, - 0x87, - 0x59, - 0x59, - 0x34, - 0xA1, - 0xA7, - 0x37, - 0xE1, - 0xD2, - 0xD2, - 0xD4, - 0xD9, - 0xE8, - 0x06, - 0x06, - 0x2C, - 0x27, - 0x43, - 0x69, - 0x43, - 0x71, - 0x87, - 0x85, - 0x98, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0xA1, - 0x90, - 0x7B, - 0x34, - 0x48, - 0x40, - 0x2F, - 0x70, - 0x66, - 0x71, - 0x69, - 0x63, - 0x4C, - 0x70, - 0x7D, - 0x8E, - 0xA7, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0xA1, - 0x88, - 0x65, - 0x48, - 0x49, - 0x2E, - 0x42, - 0x71, - 0x71, - 0x71, - 0x70, - 0x66, - 0x70, - 0x71, - 0x69, - 0x71, - 0x87, - 0x69, - 0x69, - 0x71, - 0x70, - 0x66, - 0x70, - 0x70, - 0x63, - 0x42, - 0x6C, - 0xA6, - 0x9B, - 0x97, - 0xD7, - 0xC6, - 0x41, - 0x36, - 0x01, - 0xD7, - 0xB5, - 0x9F, - 0x9B, - 0xA3, - 0x41, - 0x70, - 0x42, - 0x70, - 0x43, - 0x66, - 0x63, - 0x71, - 0x42, - 0x7D, - 0x9B, - 0xA6, - 0xA3, - 0xD2, - 0xE4, - 0xF5, - 0xF5, - 0xE7, - 0xC2, - 0xA7, - 0x9B, - 0xA6, - 0x66, - 0x41, - 0x54, - 0x41, - 0x54, - 0x54, - 0x41, - 0x53, - 0x41, - 0x41, - 0x53, - 0x41, - 0x62, - 0x3E, - 0x41, - 0x62, - 0x41, - 0x53, - 0x53, - 0x6E, - 0x37, - 0x37, - 0x00, - 0x06, - 0x41, - 0x05, - 0x40, - 0x00, - 0x0D, - 0x2E, - 0x41, - 0x27, - 0x40, - 0x35, - 0x25, - 0x35, - 0x49, - 0x35, - 0x49, - 0x49, - 0x2D, - 0x2E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x36, - 0xF0, - 0xE6, - 0xF0, - 0xDD, - 0xE6, - 0xE6, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xDC, - 0xEC, - 0xDC, - 0xDC, - 0xE6, - 0xE6, - 0xCF, - 0xFA, - 0x86, - 0xFA, - 0xFA, - 0xEC, - 0xEA, - 0xDD, - 0xD1, - 0xFB, - 0xEA, - 0xFF, - 0x05, - 0xFB, - 0xDB, - 0xE8, - 0xE4, - 0xD7, - 0xE8, - 0x17, - 0x14, - 0x4A, - 0x14, - 0x4A, - 0x40, - 0x7B, - 0x75, - 0x75, - 0x6B, - 0x60, - 0x18, - 0xFA, - 0xFF, - 0x16, - 0x4A, - 0x0A, - 0xDA, - 0x04, - 0xD2, - 0x00, - 0x09, - 0xD8, - 0x6C, - 0x7F, - 0x91, - 0x91, - 0x91, - 0x90, - 0x77, - 0x2C, - 0x00, - 0x04, - 0x62, - 0x00, - 0x17, - 0x3E, - 0x63, - 0x4C, - 0x62, - 0x62, - 0x62, - 0x63, - 0x62, - 0x63, - 0x63, - 0x3E, - 0x63, - 0x63, - 0x3E, - 0x7D, - 0xA7, - 0xA9, - 0xB5, - 0xD8, - 0x69, - 0x63, - 0x3E, - 0xE1, - 0x00, - 0x05, - 0xD2, - 0x00, - 0x05, - 0xBB, - 0x71, - 0x87, - 0x3E, - 0xD5, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x15, - 0xC6, - 0x59, - 0x85, - 0x28, - 0xD7, - 0xC6, - 0xE1, - 0x20, - 0x35, - 0x85, - 0xA3, - 0xA7, - 0xA4, - 0x95, - 0x7F, - 0x64, - 0x4D, - 0x3C, - 0x4E, - 0x7D, - 0x8E, - 0x00, - 0x10, - 0x98, - 0x00, - 0x03, - 0x85, - 0x85, - 0x98, - 0x00, - 0x08, - 0x85, - 0x00, - 0x0C, - 0x87, - 0x85, - 0x59, - 0x85, - 0x59, - 0x87, - 0x25, - 0x88, - 0xA2, - 0x87, - 0x0F, - 0xD5, - 0x05, - 0xD2, - 0x00, - 0x08, - 0xD5, - 0xD7, - 0xE4, - 0xEE, - 0x02, - 0x43, - 0x71, - 0x44, - 0x04, - 0x71, - 0x00, - 0x04, - 0x59, - 0x85, - 0x98, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x1F, - 0xA6, - 0x97, - 0x88, - 0x6D, - 0x48, - 0x49, - 0x2F, - 0x63, - 0x69, - 0x87, - 0x69, - 0x4C, - 0x63, - 0x70, - 0x59, - 0x85, - 0x94, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0xA4, - 0x97, - 0x88, - 0x8D, - 0x48, - 0x40, - 0x41, - 0x43, - 0x71, - 0x00, - 0x04, - 0x66, - 0x00, - 0x4F, - 0x70, - 0x71, - 0x87, - 0x66, - 0x70, - 0x43, - 0x71, - 0x43, - 0x66, - 0x42, - 0x6C, - 0xA6, - 0xA6, - 0xA4, - 0xC2, - 0xD9, - 0xF5, - 0xF9, - 0xE9, - 0xD5, - 0xA7, - 0xA6, - 0xA6, - 0x7D, - 0x70, - 0x69, - 0x70, - 0x71, - 0x54, - 0x42, - 0x54, - 0x42, - 0x70, - 0x66, - 0xA4, - 0xA2, - 0xA6, - 0xA9, - 0xC2, - 0xD7, - 0xD7, - 0xB3, - 0xA2, - 0x9B, - 0xA6, - 0x7D, - 0x42, - 0x6F, - 0x54, - 0x41, - 0x54, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x41, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x41, - 0x53, - 0x37, - 0x41, - 0x53, - 0x40, - 0x53, - 0x37, - 0x40, - 0x53, - 0x41, - 0x41, - 0x40, - 0x41, - 0x2E, - 0x40, - 0x40, - 0x52, - 0x00, - 0x06, - 0x40, - 0x00, - 0x07, - 0x25, - 0x25, - 0x49, - 0x35, - 0x49, - 0x25, - 0x2D, - 0x00, - 0x00, - 0x00, - 0x06, - 0xE6, - 0x00, - 0x3E, - 0xDC, - 0xEC, - 0xEC, - 0xDD, - 0xDC, - 0xF4, - 0xF4, - 0xFE, - 0xD3, - 0x50, - 0x5F, - 0x5B, - 0x68, - 0x68, - 0x64, - 0x6B, - 0x5C, - 0xC4, - 0xEF, - 0xF3, - 0xF8, - 0xE5, - 0xF9, - 0xF5, - 0xFF, - 0x06, - 0x06, - 0x18, - 0x18, - 0x17, - 0x14, - 0x4A, - 0x14, - 0x4B, - 0x2D, - 0x4A, - 0x15, - 0x2D, - 0x41, - 0x65, - 0x7D, - 0x74, - 0x88, - 0x52, - 0x14, - 0x1A, - 0xFE, - 0xE4, - 0xD4, - 0xD5, - 0xD2, - 0xD2, - 0xD9, - 0x60, - 0x91, - 0x6C, - 0x6C, - 0x90, - 0x91, - 0x95, - 0x7B, - 0x4A, - 0x08, - 0x62, - 0x00, - 0x12, - 0x3E, - 0x62, - 0x63, - 0x4C, - 0x3E, - 0x42, - 0x63, - 0x63, - 0x2E, - 0x90, - 0x96, - 0xA0, - 0x94, - 0x3E, - 0x69, - 0x69, - 0x70, - 0xC6, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xD7, - 0x43, - 0xBB, - 0x28, - 0xC6, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xD8, - 0x87, - 0x87, - 0x43, - 0xBB, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x10, - 0xD7, - 0x85, - 0x85, - 0x85, - 0x3F, - 0x3F, - 0x8E, - 0xA1, - 0xA4, - 0x91, - 0x74, - 0x5B, - 0x4D, - 0x32, - 0x4E, - 0x7D, - 0x09, - 0x98, - 0x00, - 0x06, - 0x8E, - 0x98, - 0x85, - 0x85, - 0x85, - 0x98, - 0x05, - 0x85, - 0x00, - 0x10, - 0x59, - 0x3F, - 0x54, - 0x87, - 0x85, - 0x87, - 0x85, - 0x87, - 0x87, - 0x43, - 0x56, - 0x9B, - 0xA3, - 0x43, - 0xD9, - 0xC2, - 0x09, - 0xD2, - 0x00, - 0x69, - 0x98, - 0x53, - 0x61, - 0x2E, - 0x62, - 0x71, - 0x59, - 0x71, - 0x71, - 0x43, - 0x43, - 0x66, - 0x87, - 0x8E, - 0xA3, - 0xA4, - 0xA2, - 0x9B, - 0xA2, - 0xA2, - 0xA4, - 0x94, - 0x7B, - 0x60, - 0x49, - 0x40, - 0x62, - 0x71, - 0x87, - 0x69, - 0x69, - 0x69, - 0x63, - 0x71, - 0x7D, - 0x8E, - 0xA7, - 0xA6, - 0x9B, - 0xA2, - 0x9B, - 0xA6, - 0xA1, - 0x8E, - 0x7B, - 0x48, - 0x49, - 0x40, - 0x42, - 0x71, - 0x71, - 0x71, - 0x66, - 0x70, - 0x70, - 0x66, - 0x71, - 0x71, - 0x66, - 0x71, - 0x71, - 0x70, - 0x97, - 0x9B, - 0xA6, - 0xA7, - 0xC2, - 0xD8, - 0xD7, - 0xB5, - 0xA2, - 0xA6, - 0xA2, - 0x94, - 0x42, - 0x66, - 0x71, - 0x71, - 0x87, - 0x71, - 0x71, - 0x42, - 0x70, - 0x54, - 0x6F, - 0x7D, - 0xA4, - 0x9B, - 0x9B, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0xA1, - 0x59, - 0x42, - 0x70, - 0x63, - 0x42, - 0x42, - 0x41, - 0x41, - 0x41, - 0x53, - 0x00, - 0x04, - 0x41, - 0x00, - 0x22, - 0x53, - 0x41, - 0x53, - 0x37, - 0x6E, - 0x53, - 0x53, - 0x53, - 0x41, - 0x41, - 0x53, - 0x53, - 0x53, - 0x37, - 0x37, - 0x53, - 0x37, - 0x41, - 0x37, - 0x41, - 0x2E, - 0x40, - 0x40, - 0x40, - 0x35, - 0x40, - 0x25, - 0x40, - 0x35, - 0x35, - 0x25, - 0x25, - 0x49, - 0x49, - 0x00, - 0x00, - 0x07, - 0xE6, - 0x00, - 0x60, - 0xE5, - 0xF4, - 0xF4, - 0x22, - 0x39, - 0x5F, - 0x6B, - 0x68, - 0x74, - 0x74, - 0x75, - 0x77, - 0x77, - 0x75, - 0x74, - 0x74, - 0xD9, - 0xD4, - 0xD4, - 0xD6, - 0xDF, - 0xEB, - 0xF3, - 0xE5, - 0xE6, - 0xF5, - 0xFB, - 0x02, - 0x0E, - 0x5A, - 0x14, - 0x4A, - 0x2D, - 0x4A, - 0x15, - 0x4B, - 0x4B, - 0x4B, - 0x15, - 0x15, - 0x61, - 0x54, - 0x55, - 0x2D, - 0x75, - 0x75, - 0x77, - 0x7E, - 0x17, - 0xE8, - 0xDF, - 0xFB, - 0x75, - 0x90, - 0x2E, - 0x2F, - 0x2F, - 0x88, - 0x91, - 0x95, - 0x65, - 0x4B, - 0x42, - 0x62, - 0x62, - 0x3E, - 0x62, - 0x63, - 0x62, - 0x62, - 0x42, - 0x3E, - 0x4C, - 0x63, - 0x62, - 0x63, - 0x4C, - 0x57, - 0x95, - 0x96, - 0x96, - 0x70, - 0x63, - 0x63, - 0x71, - 0x4C, - 0x66, - 0xA7, - 0xAD, - 0xC2, - 0xC2, - 0xBB, - 0x87, - 0x87, - 0x3E, - 0xD5, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xC6, - 0x59, - 0x87, - 0x3E, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x17, - 0xB4, - 0x87, - 0x85, - 0x3B, - 0xC6, - 0xD9, - 0x16, - 0x20, - 0x3F, - 0x98, - 0xA7, - 0xA4, - 0xA4, - 0x91, - 0x75, - 0x3C, - 0x47, - 0x32, - 0x3F, - 0x7D, - 0x85, - 0x98, - 0x98, - 0x00, - 0x0C, - 0x85, - 0x00, - 0x14, - 0x43, - 0x0A, - 0x00, - 0x00, - 0x11, - 0x59, - 0x87, - 0x59, - 0x87, - 0x87, - 0x34, - 0x97, - 0xA7, - 0x43, - 0x41, - 0x43, - 0x87, - 0xD9, - 0xB4, - 0xD8, - 0x05, - 0xD2, - 0x00, - 0x2A, - 0xB3, - 0xA2, - 0xA6, - 0xA1, - 0x90, - 0x7B, - 0x48, - 0x49, - 0x41, - 0x42, - 0x43, - 0x71, - 0x71, - 0x43, - 0x43, - 0x66, - 0x71, - 0x7D, - 0x98, - 0xA7, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0x97, - 0x88, - 0x7C, - 0x48, - 0x49, - 0x40, - 0x63, - 0x71, - 0x87, - 0x87, - 0x63, - 0x63, - 0x70, - 0x59, - 0x85, - 0x94, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x62, - 0xA4, - 0x97, - 0x88, - 0x6E, - 0x48, - 0x61, - 0x2F, - 0x70, - 0x71, - 0x71, - 0x66, - 0x66, - 0x70, - 0x70, - 0x70, - 0x71, - 0x71, - 0x87, - 0xA1, - 0xA2, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0xA4, - 0x98, - 0x63, - 0x43, - 0x70, - 0x70, - 0x70, - 0x42, - 0x63, - 0x70, - 0x43, - 0x66, - 0x71, - 0x43, - 0x41, - 0x66, - 0x85, - 0xA3, - 0xA1, - 0xA1, - 0xA3, - 0x94, - 0x59, - 0x54, - 0x41, - 0x6F, - 0x54, - 0x42, - 0x54, - 0x70, - 0x54, - 0x63, - 0x6F, - 0x54, - 0x41, - 0x6E, - 0x53, - 0x37, - 0x41, - 0x41, - 0x6E, - 0x37, - 0x53, - 0x41, - 0x37, - 0x53, - 0x37, - 0x49, - 0x2B, - 0x1F, - 0x58, - 0x1F, - 0x48, - 0x20, - 0x40, - 0x52, - 0x40, - 0x40, - 0x40, - 0x41, - 0x40, - 0x40, - 0x25, - 0x35, - 0x25, - 0x35, - 0x49, - 0x49, - 0x20, - 0x35, - 0x49, - 0x25, - 0x00, - 0x00, - 0x00, - 0x18, - 0xDC, - 0xF0, - 0xE6, - 0xE5, - 0xF7, - 0xF4, - 0x22, - 0x92, - 0x5C, - 0x6B, - 0x64, - 0x6A, - 0x74, - 0x64, - 0x56, - 0x80, - 0xFF, - 0xF5, - 0xF5, - 0xF5, - 0xC0, - 0x67, - 0x89, - 0xDA, - 0x06, - 0xD5, - 0x00, - 0x48, - 0xD6, - 0xDF, - 0xE7, - 0xF1, - 0x01, - 0x17, - 0x0E, - 0x0E, - 0x4A, - 0x4B, - 0x14, - 0x4A, - 0x2D, - 0x15, - 0x4B, - 0x4B, - 0x55, - 0x4B, - 0x15, - 0x2E, - 0x55, - 0x55, - 0x6F, - 0x6C, - 0x88, - 0x88, - 0x75, - 0x6B, - 0x77, - 0x84, - 0x6C, - 0x4B, - 0x2F, - 0x55, - 0x6E, - 0x90, - 0x91, - 0x91, - 0x6F, - 0x55, - 0x2F, - 0x2F, - 0x62, - 0x62, - 0x3E, - 0x42, - 0x3E, - 0x3E, - 0x62, - 0x42, - 0x3E, - 0x63, - 0x63, - 0x55, - 0x90, - 0x95, - 0x96, - 0x94, - 0x63, - 0x69, - 0x69, - 0x69, - 0x41, - 0x94, - 0xA0, - 0xA6, - 0x97, - 0x69, - 0x69, - 0x69, - 0x43, - 0xD9, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xD8, - 0x44, - 0x87, - 0x42, - 0xBB, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x19, - 0xC2, - 0x87, - 0x85, - 0x59, - 0xBB, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xC6, - 0x87, - 0x85, - 0x85, - 0x3F, - 0x57, - 0x94, - 0xA1, - 0xA1, - 0x90, - 0x75, - 0x3C, - 0x2A, - 0x32, - 0x3B, - 0x7D, - 0x00, - 0x0A, - 0x85, - 0x00, - 0x48, - 0x7D, - 0xBB, - 0xD5, - 0xD9, - 0xD7, - 0xD8, - 0x43, - 0x85, - 0x87, - 0x87, - 0x25, - 0x75, - 0xA2, - 0x85, - 0x0A, - 0xE8, - 0x01, - 0x1D, - 0x11, - 0x2E, - 0x44, - 0xBB, - 0xB4, - 0xD7, - 0xD8, - 0xD8, - 0x98, - 0xA7, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0x97, - 0x88, - 0x7B, - 0x52, - 0x49, - 0x2E, - 0x70, - 0x71, - 0x71, - 0x66, - 0x70, - 0x70, - 0x70, - 0x59, - 0x85, - 0x98, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0xA4, - 0x94, - 0x88, - 0x7C, - 0x34, - 0x49, - 0x62, - 0x69, - 0x71, - 0x69, - 0x43, - 0x42, - 0x42, - 0x66, - 0x59, - 0x8E, - 0xA3, - 0xA4, - 0x04, - 0xA2, - 0x00, - 0x32, - 0xA1, - 0x94, - 0x7B, - 0x52, - 0x48, - 0x61, - 0x42, - 0x66, - 0x71, - 0x66, - 0x66, - 0x66, - 0x70, - 0x43, - 0x70, - 0x85, - 0x98, - 0xA3, - 0xA3, - 0xA3, - 0x94, - 0x85, - 0x66, - 0x42, - 0x66, - 0x66, - 0x71, - 0x43, - 0x70, - 0x43, - 0x42, - 0x54, - 0x42, - 0x42, - 0x63, - 0x70, - 0x71, - 0x70, - 0x62, - 0x42, - 0x42, - 0x54, - 0x41, - 0x41, - 0x41, - 0x42, - 0x54, - 0x54, - 0x41, - 0x54, - 0x05, - 0x41, - 0x00, - 0x27, - 0x42, - 0x41, - 0x53, - 0x41, - 0x41, - 0x53, - 0x53, - 0x37, - 0x40, - 0x37, - 0x6E, - 0x37, - 0x24, - 0x39, - 0x56, - 0x75, - 0x88, - 0x90, - 0x90, - 0x88, - 0x7B, - 0x48, - 0x25, - 0x40, - 0x35, - 0x40, - 0x40, - 0x40, - 0x35, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x49, - 0x35, - 0x49, - 0x49, - 0x49, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1A, - 0xE6, - 0xFA, - 0xFE, - 0x3D, - 0x79, - 0x5E, - 0x64, - 0x68, - 0x68, - 0x64, - 0x6D, - 0x80, - 0x81, - 0xF9, - 0xE6, - 0xE6, - 0xDC, - 0xEC, - 0xF5, - 0xF5, - 0xF5, - 0xF9, - 0xEA, - 0xE7, - 0xDA, - 0xD4, - 0x04, - 0xD5, - 0x00, - 0x27, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0x06, - 0x13, - 0x17, - 0x14, - 0x0E, - 0x0E, - 0x4B, - 0x0E, - 0x15, - 0x4B, - 0x2D, - 0x2D, - 0x4B, - 0x4B, - 0x61, - 0x4B, - 0x55, - 0x2E, - 0x55, - 0x4B, - 0x0B, - 0x16, - 0x70, - 0x6C, - 0x7D, - 0x66, - 0x2E, - 0x2F, - 0x55, - 0x2E, - 0x3F, - 0x84, - 0x84, - 0x91, - 0x70, - 0x00, - 0x0A, - 0x62, - 0x00, - 0x20, - 0x3E, - 0x69, - 0x63, - 0x63, - 0x65, - 0x91, - 0x95, - 0x96, - 0x87, - 0x4C, - 0x69, - 0x87, - 0x63, - 0x66, - 0x96, - 0xA4, - 0xA6, - 0x59, - 0x43, - 0x87, - 0x87, - 0x69, - 0x43, - 0xA7, - 0xB1, - 0xB3, - 0xD2, - 0xC6, - 0x87, - 0x44, - 0x2F, - 0xD5, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xC6, - 0x87, - 0x85, - 0x42, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x14, - 0xD7, - 0x85, - 0x85, - 0x43, - 0xD9, - 0xBB, - 0x16, - 0x34, - 0x3F, - 0xA3, - 0xA7, - 0xA4, - 0xA1, - 0x7F, - 0x64, - 0x32, - 0x2A, - 0x34, - 0x3B, - 0x87, - 0x05, - 0x85, - 0x00, - 0x4C, - 0x87, - 0x59, - 0xB4, - 0xD2, - 0xBB, - 0xD6, - 0xC2, - 0x87, - 0x87, - 0x87, - 0x43, - 0x34, - 0xA6, - 0xA3, - 0x0A, - 0xD9, - 0xD2, - 0xD5, - 0xD7, - 0xE4, - 0xEE, - 0xFB, - 0x06, - 0x14, - 0x62, - 0x69, - 0xBB, - 0x69, - 0x69, - 0x85, - 0x85, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0xA4, - 0x94, - 0x75, - 0x7C, - 0x34, - 0x2D, - 0x41, - 0x66, - 0x71, - 0x66, - 0x66, - 0x42, - 0x70, - 0x66, - 0x87, - 0x8E, - 0xA3, - 0xA4, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA1, - 0x88, - 0x7B, - 0x52, - 0x70, - 0x70, - 0x66, - 0x66, - 0x70, - 0x43, - 0x70, - 0x63, - 0x42, - 0x66, - 0x85, - 0x94, - 0xA3, - 0x04, - 0xA2, - 0x00, - 0x08, - 0xA6, - 0x97, - 0x88, - 0x7C, - 0x48, - 0x2C, - 0x41, - 0x70, - 0x04, - 0x66, - 0x00, - 0x4F, - 0x70, - 0x42, - 0x63, - 0x42, - 0x42, - 0x42, - 0x63, - 0x70, - 0x66, - 0x70, - 0x42, - 0x70, - 0x70, - 0x43, - 0x70, - 0x42, - 0x54, - 0x70, - 0x70, - 0x54, - 0x42, - 0x70, - 0x42, - 0x70, - 0x70, - 0x4C, - 0x41, - 0x54, - 0x41, - 0x54, - 0x41, - 0x41, - 0x41, - 0x54, - 0x54, - 0x41, - 0x41, - 0x53, - 0x37, - 0x53, - 0x40, - 0x37, - 0x37, - 0x62, - 0x41, - 0x2F, - 0x41, - 0x53, - 0x41, - 0x37, - 0x37, - 0x58, - 0x6B, - 0x90, - 0x9F, - 0x9A, - 0x93, - 0x95, - 0x9A, - 0x9F, - 0x9F, - 0x97, - 0x52, - 0x25, - 0x40, - 0x40, - 0x35, - 0x49, - 0x35, - 0x49, - 0x40, - 0x25, - 0x25, - 0x49, - 0x49, - 0x40, - 0x40, - 0x35, - 0x49, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6E, - 0x50, - 0x5F, - 0x5B, - 0x64, - 0x68, - 0x64, - 0x6B, - 0x80, - 0x67, - 0xD1, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0xEC, - 0xEC, - 0xEC, - 0xF5, - 0xDD, - 0xEC, - 0xF5, - 0xDD, - 0xF5, - 0xF9, - 0xF9, - 0xEA, - 0xE8, - 0xDF, - 0xDA, - 0xD5, - 0xD5, - 0xD5, - 0xD2, - 0xE4, - 0x67, - 0x14, - 0x14, - 0x2C, - 0x4A, - 0x14, - 0x14, - 0x2D, - 0x15, - 0x4B, - 0x4B, - 0x0B, - 0x4B, - 0x2D, - 0x2D, - 0x16, - 0x2E, - 0x4B, - 0x55, - 0x55, - 0x2F, - 0x55, - 0x55, - 0x55, - 0x16, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x2D, - 0x88, - 0x91, - 0x8C, - 0x90, - 0x0B, - 0x55, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x62, - 0x3E, - 0x62, - 0x62, - 0x42, - 0x42, - 0x63, - 0x63, - 0x55, - 0x88, - 0x93, - 0xA0, - 0x94, - 0x2F, - 0x63, - 0x71, - 0x69, - 0x62, - 0x88, - 0xA0, - 0xA0, - 0x97, - 0x4C, - 0x69, - 0x69, - 0x71, - 0x2F, - 0x88, - 0xA0, - 0x9F, - 0xA3, - 0x87, - 0x87, - 0x87, - 0x71, - 0xC6, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xD8, - 0x87, - 0x85, - 0x43, - 0xBB, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x29, - 0xC2, - 0x85, - 0x85, - 0x59, - 0xBB, - 0xD2, - 0xD2, - 0xD2, - 0xD8, - 0xC6, - 0x44, - 0x85, - 0x85, - 0x3F, - 0x7D, - 0x97, - 0xA4, - 0x97, - 0x88, - 0x6B, - 0x2A, - 0x33, - 0x35, - 0x36, - 0x59, - 0x85, - 0x85, - 0x85, - 0x87, - 0xB4, - 0xD7, - 0x8A, - 0x87, - 0x87, - 0x87, - 0x59, - 0x34, - 0x97, - 0xA2, - 0x42, - 0x3E, - 0x00, - 0x06, - 0xD2, - 0x00, - 0x96, - 0xD8, - 0xDA, - 0xE1, - 0xDB, - 0x4B, - 0x71, - 0x87, - 0x87, - 0x69, - 0x71, - 0x43, - 0x87, - 0x85, - 0x98, - 0xA3, - 0xA4, - 0x9B, - 0x9B, - 0xA2, - 0x9B, - 0xA1, - 0x88, - 0x7B, - 0x52, - 0x48, - 0x40, - 0x42, - 0x66, - 0x71, - 0x66, - 0x43, - 0x70, - 0x70, - 0x59, - 0x85, - 0x94, - 0xA3, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0x97, - 0x6E, - 0x43, - 0x71, - 0x70, - 0x66, - 0x70, - 0x66, - 0x70, - 0x66, - 0x63, - 0x70, - 0x42, - 0x70, - 0x59, - 0x8E, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA1, - 0x90, - 0x7B, - 0x6E, - 0x48, - 0x61, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x27, - 0x53, - 0x41, - 0x41, - 0x41, - 0x2F, - 0x41, - 0x37, - 0x6E, - 0x41, - 0x63, - 0x66, - 0x54, - 0x54, - 0x54, - 0x63, - 0x70, - 0x42, - 0x70, - 0x54, - 0x54, - 0x54, - 0x42, - 0x54, - 0x54, - 0x54, - 0x62, - 0x54, - 0x54, - 0x54, - 0x41, - 0x54, - 0x41, - 0x41, - 0x53, - 0x41, - 0x53, - 0x41, - 0x53, - 0x6E, - 0x53, - 0x37, - 0x53, - 0x41, - 0x41, - 0x62, - 0x41, - 0x41, - 0x48, - 0x88, - 0x9B, - 0x9F, - 0x8E, - 0xBB, - 0xC6, - 0xD7, - 0xB4, - 0x97, - 0xA0, - 0x9F, - 0x90, - 0x20, - 0x35, - 0x35, - 0x40, - 0x25, - 0x40, - 0x25, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x25, - 0x40, - 0x25, - 0x25, - 0x00, - 0x00, - 0x00, - 0x15, - 0x64, - 0x64, - 0x6B, - 0x5C, - 0x81, - 0xD1, - 0xDC, - 0xE6, - 0xDD, - 0xDC, - 0xE6, - 0xDC, - 0xEC, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xEA, - 0xDD, - 0xEC, - 0xEC, - 0x00, - 0x06, - 0xF5, - 0x00, - 0x2E, - 0x05, - 0xFB, - 0x02, - 0xE8, - 0xD9, - 0xC6, - 0x02, - 0x13, - 0x5A, - 0x17, - 0x14, - 0x4A, - 0x4A, - 0x49, - 0x2D, - 0x4A, - 0x2D, - 0x2D, - 0x4B, - 0x4B, - 0x61, - 0x4B, - 0x55, - 0x55, - 0x55, - 0x2E, - 0x2E, - 0x55, - 0x2E, - 0x55, - 0x55, - 0x2F, - 0x2F, - 0x55, - 0x2F, - 0x2E, - 0x52, - 0x7F, - 0x84, - 0x91, - 0x66, - 0x3E, - 0x62, - 0x3E, - 0x62, - 0x2F, - 0x04, - 0x62, - 0x00, - 0x12, - 0x63, - 0x62, - 0x3E, - 0x42, - 0x3E, - 0x53, - 0x91, - 0x95, - 0x95, - 0x59, - 0x63, - 0x69, - 0x69, - 0x3E, - 0x53, - 0x95, - 0x96, - 0x96, - 0x04, - 0x87, - 0x00, - 0x14, - 0x69, - 0x65, - 0x96, - 0xA6, - 0xA6, - 0x85, - 0x71, - 0x87, - 0x87, - 0x69, - 0x87, - 0xA9, - 0xB3, - 0xC2, - 0xD2, - 0xB4, - 0x44, - 0x87, - 0x2F, - 0xD5, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xB4, - 0x87, - 0x85, - 0x3E, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x21, - 0xC6, - 0x85, - 0x85, - 0x3E, - 0xD9, - 0xE1, - 0x01, - 0x24, - 0x66, - 0xA3, - 0xA7, - 0xA4, - 0x97, - 0x75, - 0x56, - 0x21, - 0x39, - 0x20, - 0x36, - 0x71, - 0x87, - 0x87, - 0x87, - 0x85, - 0x87, - 0x44, - 0x24, - 0x7B, - 0x9B, - 0x85, - 0x43, - 0xC6, - 0xC2, - 0x00, - 0x08, - 0xD2, - 0x00, - 0x2E, - 0xC2, - 0x7D, - 0x54, - 0x61, - 0x55, - 0x63, - 0x69, - 0x87, - 0x87, - 0x43, - 0x69, - 0x69, - 0x87, - 0x85, - 0x98, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0x97, - 0x88, - 0x65, - 0x7E, - 0x2C, - 0x2E, - 0x42, - 0x70, - 0x71, - 0x66, - 0x70, - 0x42, - 0x70, - 0x59, - 0x8E, - 0xA3, - 0xA2, - 0xA2, - 0x94, - 0x55, - 0x71, - 0x66, - 0x70, - 0x71, - 0x43, - 0x05, - 0x70, - 0x00, - 0x14, - 0x66, - 0x42, - 0x42, - 0x42, - 0x66, - 0x7D, - 0x8E, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0x97, - 0x88, - 0x65, - 0x7C, - 0x6D, - 0x7C, - 0x77, - 0x04, - 0x7C, - 0x01, - 0x77, - 0x04, - 0x7C, - 0x00, - 0x1C, - 0x49, - 0x4A, - 0x55, - 0x62, - 0x70, - 0x70, - 0x54, - 0x42, - 0x54, - 0x54, - 0x42, - 0x42, - 0x54, - 0x6F, - 0x54, - 0x41, - 0x54, - 0x54, - 0x62, - 0x54, - 0x6F, - 0x41, - 0x53, - 0x53, - 0x41, - 0x53, - 0x53, - 0x37, - 0x04, - 0x41, - 0x00, - 0x16, - 0x6E, - 0x53, - 0x37, - 0x53, - 0x41, - 0x20, - 0x7B, - 0x9F, - 0xA0, - 0x94, - 0xD6, - 0xC6, - 0xBB, - 0x4C, - 0xD7, - 0xD7, - 0x95, - 0xA0, - 0xA1, - 0x41, - 0x37, - 0x40, - 0x04, - 0x35, - 0x00, - 0x09, - 0x2D, - 0x49, - 0x25, - 0x49, - 0x49, - 0x20, - 0x49, - 0x35, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x13, - 0xA5, - 0xD1, - 0xE6, - 0xE5, - 0xE6, - 0xEC, - 0xEC, - 0xDC, - 0xEC, - 0xE6, - 0xDC, - 0xDC, - 0xF9, - 0xEC, - 0xF5, - 0xEC, - 0xEC, - 0xEC, - 0xF9, - 0x00, - 0x04, - 0xEC, - 0x00, - 0x0C, - 0xFA, - 0xD3, - 0x29, - 0x1A, - 0x04, - 0xF9, - 0xF5, - 0xFF, - 0x06, - 0x01, - 0x02, - 0x17, - 0x06, - 0x14, - 0x01, - 0x4A, - 0x04, - 0x2D, - 0x00, - 0x09, - 0x15, - 0x15, - 0x4B, - 0x2E, - 0x16, - 0x55, - 0x55, - 0x4B, - 0x2E, - 0x00, - 0x07, - 0x55, - 0x00, - 0x38, - 0x2D, - 0x7B, - 0x91, - 0x91, - 0x90, - 0x55, - 0x2F, - 0x3E, - 0x3E, - 0x62, - 0x55, - 0x62, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x42, - 0x62, - 0x42, - 0x2E, - 0x88, - 0x96, - 0xA0, - 0x94, - 0x2F, - 0x70, - 0x63, - 0x63, - 0x2F, - 0x88, - 0x93, - 0xA0, - 0x97, - 0x63, - 0x71, - 0x69, - 0x87, - 0x42, - 0x8E, - 0xA0, - 0xA6, - 0x97, - 0x69, - 0x87, - 0x87, - 0x87, - 0x42, - 0x88, - 0xA0, - 0x9F, - 0xA3, - 0xBB, - 0x87, - 0x85, - 0x59, - 0xD9, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xD8, - 0x87, - 0x85, - 0x42, - 0xD9, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x26, - 0xD8, - 0x85, - 0x85, - 0x3B, - 0xD9, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0xBB, - 0x44, - 0x85, - 0x87, - 0x57, - 0x88, - 0xA1, - 0xA1, - 0x90, - 0x77, - 0x5F, - 0x2A, - 0x1F, - 0x24, - 0x20, - 0x20, - 0x1F, - 0x19, - 0x77, - 0x9B, - 0x98, - 0x71, - 0x87, - 0x87, - 0x87, - 0xBB, - 0xC6, - 0xD8, - 0xC2, - 0x04, - 0xD2, - 0x00, - 0x14, - 0xAA, - 0x9B, - 0xA6, - 0x97, - 0x88, - 0x7B, - 0x53, - 0x52, - 0x40, - 0x42, - 0x71, - 0x71, - 0x71, - 0x70, - 0x70, - 0x43, - 0x85, - 0x85, - 0xA3, - 0xA7, - 0x04, - 0xA2, - 0x00, - 0x19, - 0xA4, - 0x90, - 0x7D, - 0x7C, - 0x52, - 0x49, - 0x41, - 0x42, - 0x66, - 0x66, - 0x70, - 0x42, - 0x54, - 0x94, - 0x9B, - 0x9B, - 0x94, - 0x40, - 0x70, - 0x71, - 0x87, - 0x69, - 0x71, - 0x63, - 0x71, - 0x00, - 0x08, - 0x70, - 0x00, - 0x09, - 0x63, - 0x70, - 0x59, - 0x85, - 0x94, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x00, - 0x08, - 0x9B, - 0x00, - 0x10, - 0xA2, - 0xA2, - 0x9B, - 0xA2, - 0xA2, - 0xA2, - 0xA1, - 0x94, - 0x6C, - 0x6F, - 0x2D, - 0x14, - 0x2E, - 0x54, - 0x42, - 0x41, - 0x04, - 0x54, - 0x01, - 0x42, - 0x01, - 0x6F, - 0x05, - 0x54, - 0x00, - 0x2E, - 0x53, - 0x41, - 0x6F, - 0x42, - 0x41, - 0x62, - 0x41, - 0x37, - 0x53, - 0x40, - 0x53, - 0x41, - 0x41, - 0x6E, - 0x40, - 0x53, - 0x35, - 0x91, - 0xA6, - 0x96, - 0xC6, - 0xD7, - 0x08, - 0x19, - 0x07, - 0xDF, - 0xB3, - 0x96, - 0x9F, - 0x90, - 0x48, - 0x2B, - 0x2D, - 0x27, - 0x40, - 0x40, - 0x49, - 0x35, - 0x35, - 0x49, - 0x25, - 0x49, - 0x35, - 0x49, - 0x49, - 0x35, - 0x00, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xDC, - 0x06, - 0xEC, - 0x00, - 0x1B, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xEC, - 0xF5, - 0xEC, - 0xE6, - 0xEC, - 0xD3, - 0x1A, - 0x50, - 0x56, - 0x64, - 0x74, - 0x74, - 0x68, - 0x5E, - 0x79, - 0x39, - 0x1A, - 0x29, - 0xFF, - 0x18, - 0x4A, - 0x4A, - 0x4B, - 0x00, - 0x04, - 0x4A, - 0x04, - 0x2D, - 0x00, - 0x1F, - 0x61, - 0x4B, - 0x4B, - 0x61, - 0x61, - 0x2E, - 0x4B, - 0x2E, - 0x4B, - 0x3E, - 0x2F, - 0x55, - 0x3E, - 0x55, - 0x55, - 0x55, - 0x25, - 0x7F, - 0x84, - 0x95, - 0x7D, - 0x2F, - 0x62, - 0x62, - 0x55, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x62, - 0x3E, - 0x00, - 0x04, - 0x62, - 0x00, - 0x21, - 0x53, - 0x91, - 0x95, - 0x96, - 0x7D, - 0x3E, - 0x70, - 0x63, - 0x63, - 0x65, - 0x91, - 0x95, - 0x96, - 0x7D, - 0x63, - 0x69, - 0x71, - 0x71, - 0x54, - 0x95, - 0x96, - 0xA6, - 0x85, - 0x69, - 0x44, - 0x71, - 0x71, - 0x66, - 0x96, - 0xA0, - 0xA6, - 0x85, - 0x44, - 0x00, - 0x04, - 0x87, - 0x00, - 0x08, - 0xAD, - 0xB3, - 0xC2, - 0xC2, - 0xC6, - 0x85, - 0x87, - 0x3E, - 0x05, - 0xD2, - 0x00, - 0x04, - 0xBB, - 0x87, - 0x87, - 0xE1, - 0x05, - 0xD2, - 0x00, - 0x64, - 0xB4, - 0x87, - 0x87, - 0x16, - 0xE4, - 0x00, - 0x06, - 0x11, - 0x8E, - 0xA7, - 0xA4, - 0xA1, - 0x88, - 0x6B, - 0x5F, - 0x5F, - 0x77, - 0x97, - 0xA4, - 0x98, - 0x71, - 0x87, - 0x44, - 0x87, - 0x87, - 0x87, - 0x44, - 0x87, - 0x87, - 0xBB, - 0xD7, - 0xD8, - 0xD7, - 0x98, - 0xA3, - 0xA6, - 0x9B, - 0xA2, - 0x9B, - 0xA6, - 0x97, - 0x7D, - 0x7C, - 0x52, - 0x49, - 0x2E, - 0x43, - 0x71, - 0x71, - 0x71, - 0x43, - 0x69, - 0x87, - 0x87, - 0x98, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0x96, - 0x88, - 0x7B, - 0x7C, - 0x49, - 0x2D, - 0x62, - 0x66, - 0x70, - 0x54, - 0xA3, - 0xA2, - 0x9B, - 0x8E, - 0x6E, - 0x43, - 0x70, - 0x71, - 0x63, - 0x43, - 0x71, - 0x43, - 0x71, - 0x63, - 0x71, - 0x70, - 0x70, - 0x70, - 0x63, - 0x43, - 0x71, - 0x69, - 0x63, - 0x42, - 0x70, - 0x59, - 0x8E, - 0x98, - 0x94, - 0x07, - 0x98, - 0x00, - 0x12, - 0x8E, - 0x98, - 0x98, - 0x98, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0xA2, - 0x9B, - 0x91, - 0x88, - 0x7C, - 0x6E, - 0x2C, - 0x40, - 0x41, - 0x42, - 0x05, - 0x54, - 0x00, - 0x2C, - 0x55, - 0x2D, - 0x4A, - 0x4A, - 0x2D, - 0x37, - 0x41, - 0x53, - 0x63, - 0x42, - 0x42, - 0x41, - 0x41, - 0x53, - 0x53, - 0x40, - 0x37, - 0x40, - 0x37, - 0x40, - 0x52, - 0x97, - 0x9F, - 0x96, - 0xA9, - 0xD5, - 0xE4, - 0xE9, - 0xDA, - 0xB3, - 0xA6, - 0xA0, - 0x9F, - 0xA0, - 0x95, - 0x88, - 0x7C, - 0x60, - 0x2B, - 0x1F, - 0x25, - 0x40, - 0x35, - 0x35, - 0x04, - 0x49, - 0x01, - 0x35, - 0x01, - 0x1D, - 0x00, - 0x00, - 0x01, - 0xE6, - 0x01, - 0xE6, - 0x06, - 0xDC, - 0x01, - 0xE6, - 0x04, - 0xEC, - 0x00, - 0x3C, - 0xDC, - 0xE6, - 0xF4, - 0xFE, - 0x86, - 0x39, - 0x5E, - 0x64, - 0x74, - 0x7F, - 0x74, - 0x75, - 0x7C, - 0x77, - 0x75, - 0x7F, - 0x7F, - 0x74, - 0x68, - 0x6B, - 0x4F, - 0x39, - 0x1A, - 0x05, - 0x1D, - 0x13, - 0x2D, - 0x2D, - 0x16, - 0x2D, - 0x4B, - 0x2D, - 0x2D, - 0x4B, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x4B, - 0x2E, - 0x61, - 0x2E, - 0x55, - 0x4B, - 0x2E, - 0x55, - 0x2F, - 0x62, - 0x0B, - 0x65, - 0x91, - 0x91, - 0x90, - 0x2F, - 0x2F, - 0x62, - 0x62, - 0x2F, - 0x3E, - 0x3E, - 0x06, - 0x62, - 0x00, - 0x2F, - 0x63, - 0x15, - 0x75, - 0x96, - 0x96, - 0x97, - 0x62, - 0x42, - 0x63, - 0x63, - 0x55, - 0x75, - 0xA0, - 0xA0, - 0x97, - 0x3E, - 0x43, - 0x71, - 0x69, - 0x3E, - 0x88, - 0x9F, - 0xA6, - 0xA3, - 0x43, - 0x71, - 0x71, - 0x71, - 0x3E, - 0x94, - 0x9F, - 0xA6, - 0xA3, - 0x69, - 0x59, - 0x87, - 0x87, - 0x42, - 0x90, - 0xA6, - 0xA6, - 0xA3, - 0xBB, - 0x85, - 0x87, - 0x44, - 0xD7, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xD7, - 0x87, - 0x87, - 0x2F, - 0xC6, - 0x00, - 0x04, - 0xD2, - 0x00, - 0xB5, - 0xD7, - 0x87, - 0x85, - 0x27, - 0xD7, - 0xD2, - 0xD2, - 0xD2, - 0xD6, - 0x4C, - 0x87, - 0x87, - 0x98, - 0xA3, - 0xA3, - 0xA1, - 0xA3, - 0xA3, - 0x98, - 0x87, - 0x87, - 0x44, - 0x87, - 0x87, - 0x87, - 0x44, - 0x71, - 0x87, - 0xBB, - 0x87, - 0x87, - 0x69, - 0x87, - 0x69, - 0x69, - 0x71, - 0x87, - 0x85, - 0xA3, - 0xA1, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA4, - 0x90, - 0x7B, - 0x7C, - 0x52, - 0x2D, - 0x41, - 0x71, - 0x43, - 0x71, - 0x71, - 0x43, - 0x69, - 0x71, - 0x85, - 0x98, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0x9B, - 0xA6, - 0x97, - 0x88, - 0x7C, - 0x62, - 0x71, - 0x70, - 0x66, - 0xA1, - 0x9B, - 0xA2, - 0x6C, - 0x6E, - 0x70, - 0x70, - 0x43, - 0x66, - 0x70, - 0x70, - 0x43, - 0x71, - 0x69, - 0x71, - 0x71, - 0x63, - 0x66, - 0x70, - 0x70, - 0x43, - 0x66, - 0x71, - 0x70, - 0x43, - 0x42, - 0x42, - 0x62, - 0x42, - 0x42, - 0x42, - 0x69, - 0x63, - 0x63, - 0x63, - 0x42, - 0x42, - 0x41, - 0x41, - 0x42, - 0x66, - 0x7D, - 0x94, - 0xA1, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0xA0, - 0x90, - 0x7B, - 0x6E, - 0x49, - 0x2D, - 0x41, - 0x41, - 0x2C, - 0x33, - 0x60, - 0x7C, - 0x77, - 0x7B, - 0x7C, - 0x8D, - 0x49, - 0x37, - 0x53, - 0x53, - 0x53, - 0x41, - 0x63, - 0x62, - 0x41, - 0x41, - 0x41, - 0x37, - 0x40, - 0x37, - 0x35, - 0x6C, - 0xA6, - 0x9F, - 0xA6, - 0xA2, - 0xB1, - 0xB1, - 0xA2, - 0x9F, - 0xA6, - 0x97, - 0x97, - 0xA4, - 0x9F, - 0x9F, - 0x9F, - 0x93, - 0x90, - 0x7B, - 0x8D, - 0x1F, - 0x1D, - 0x24, - 0x35, - 0x49, - 0x35, - 0x35, - 0x1A, - 0x3D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x37, - 0xDC, - 0xE5, - 0xE6, - 0xE6, - 0xDC, - 0xEC, - 0xDD, - 0xEC, - 0xDC, - 0xDC, - 0xE6, - 0xF4, - 0xFE, - 0x29, - 0x50, - 0x5F, - 0x64, - 0x6A, - 0x74, - 0x68, - 0x7B, - 0x6D, - 0x48, - 0xFF, - 0xF5, - 0xF5, - 0x05, - 0xFF, - 0x48, - 0x6D, - 0x7B, - 0x75, - 0x7F, - 0x7F, - 0x7F, - 0x68, - 0x77, - 0x5C, - 0x39, - 0x81, - 0x05, - 0x06, - 0x17, - 0x2D, - 0x2D, - 0x2E, - 0x55, - 0x2D, - 0x61, - 0x2D, - 0x4B, - 0x4B, - 0x4B, - 0x2E, - 0x4B, - 0x00, - 0x04, - 0x2E, - 0x00, - 0x07, - 0x55, - 0x55, - 0x20, - 0x88, - 0x91, - 0x91, - 0x8E, - 0x00, - 0x04, - 0x55, - 0x00, - 0x40, - 0x2F, - 0x62, - 0x62, - 0x3E, - 0x3E, - 0x63, - 0x3E, - 0x3E, - 0x62, - 0x62, - 0x52, - 0x91, - 0x96, - 0xA0, - 0x85, - 0x3E, - 0x4C, - 0x63, - 0x63, - 0x53, - 0x91, - 0x95, - 0x96, - 0x7D, - 0x63, - 0x71, - 0x71, - 0x63, - 0x65, - 0x95, - 0x96, - 0xA6, - 0x7D, - 0x69, - 0x71, - 0x71, - 0x71, - 0x65, - 0x95, - 0xA0, - 0xA6, - 0x87, - 0x87, - 0x87, - 0xBB, - 0x44, - 0x6C, - 0x9F, - 0xA6, - 0xA6, - 0x87, - 0x87, - 0x85, - 0x85, - 0x87, - 0x98, - 0xB1, - 0xB3, - 0xD2, - 0xC2, - 0xBB, - 0x85, - 0x43, - 0xE1, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xC2, - 0xBB, - 0x85, - 0x69, - 0xE4, - 0x00, - 0x04, - 0xD2, - 0x01, - 0xC2, - 0x06, - 0x87, - 0x00, - 0x0C, - 0x44, - 0x87, - 0x71, - 0x44, - 0x87, - 0x59, - 0x87, - 0x59, - 0x87, - 0x87, - 0x87, - 0x71, - 0x05, - 0x87, - 0x00, - 0x40, - 0xBB, - 0x87, - 0x87, - 0x69, - 0x71, - 0x63, - 0x43, - 0x71, - 0x87, - 0x98, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA1, - 0x88, - 0x7B, - 0x53, - 0x60, - 0x40, - 0x41, - 0x43, - 0x71, - 0x71, - 0x71, - 0x43, - 0x43, - 0x71, - 0x98, - 0x94, - 0xA7, - 0xA6, - 0xA2, - 0x9B, - 0xA6, - 0x6C, - 0x41, - 0x87, - 0x43, - 0x59, - 0xA4, - 0xA2, - 0xA6, - 0x6C, - 0x41, - 0x71, - 0x69, - 0x69, - 0x69, - 0x71, - 0x43, - 0x63, - 0x70, - 0x69, - 0x43, - 0x87, - 0x69, - 0x69, - 0x71, - 0x70, - 0x70, - 0x42, - 0x04, - 0x70, - 0x00, - 0x51, - 0x71, - 0x43, - 0x42, - 0x54, - 0x70, - 0x70, - 0x70, - 0x69, - 0x71, - 0x63, - 0x70, - 0x63, - 0x42, - 0x6F, - 0x41, - 0x41, - 0x54, - 0x59, - 0x8E, - 0x97, - 0xA4, - 0xA6, - 0x9B, - 0x9B, - 0x9B, - 0xA1, - 0x7D, - 0x7C, - 0x60, - 0x77, - 0x97, - 0x9F, - 0x9F, - 0xA0, - 0x9F, - 0x9F, - 0x9F, - 0x90, - 0x53, - 0x40, - 0x53, - 0x37, - 0x40, - 0x37, - 0x41, - 0x6E, - 0x41, - 0x62, - 0x53, - 0x37, - 0x41, - 0x41, - 0x35, - 0x6C, - 0x97, - 0xA4, - 0xA6, - 0xA6, - 0x96, - 0xA1, - 0x94, - 0x6C, - 0x35, - 0x35, - 0x65, - 0x88, - 0x97, - 0xA1, - 0x9F, - 0x9F, - 0x9F, - 0x9A, - 0x91, - 0x75, - 0x6D, - 0x48, - 0x1F, - 0x24, - 0x1A, - 0x39, - 0x95, - 0x00, - 0x00, - 0x00, - 0x00, - 0x14, - 0xEC, - 0xF0, - 0xEC, - 0xE6, - 0xF0, - 0xE6, - 0xF4, - 0xF4, - 0xFE, - 0x04, - 0x31, - 0x5F, - 0x77, - 0x68, - 0x6A, - 0x68, - 0x77, - 0x6D, - 0xA5, - 0xC0, - 0x05, - 0xF5, - 0x00, - 0x6D, - 0xC0, - 0x05, - 0xC0, - 0x05, - 0xFB, - 0x1D, - 0x13, - 0x2C, - 0x7C, - 0x75, - 0x88, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x64, - 0x5F, - 0x50, - 0x1A, - 0x1D, - 0x06, - 0x13, - 0x2D, - 0x4B, - 0x2E, - 0x2E, - 0x4B, - 0x2E, - 0x4B, - 0x2E, - 0x4B, - 0x61, - 0x4B, - 0x55, - 0x55, - 0x0B, - 0x52, - 0x90, - 0x91, - 0x91, - 0x54, - 0x55, - 0x2E, - 0x55, - 0x55, - 0x3E, - 0x55, - 0x2F, - 0x55, - 0x2F, - 0x3E, - 0x62, - 0x3E, - 0x63, - 0x2E, - 0x7B, - 0x96, - 0x95, - 0x97, - 0x62, - 0x63, - 0x69, - 0x4C, - 0x3E, - 0x75, - 0x93, - 0x96, - 0x97, - 0x63, - 0x43, - 0x63, - 0x71, - 0x2F, - 0x88, - 0x93, - 0xA0, - 0x97, - 0x63, - 0x71, - 0x71, - 0x71, - 0x41, - 0x90, - 0xA0, - 0xA6, - 0x94, - 0x43, - 0x44, - 0x87, - 0x87, - 0x70, - 0x97, - 0xA6, - 0xA6, - 0x94, - 0x59, - 0x87, - 0x87, - 0x87, - 0x42, - 0x91, - 0xA6, - 0xA2, - 0x98, - 0xBB, - 0x87, - 0x87, - 0x3E, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x05, - 0xC6, - 0x44, - 0x87, - 0x0B, - 0xC2, - 0x00, - 0x04, - 0xD2, - 0x01, - 0xC6, - 0x0C, - 0x87, - 0x00, - 0x0F, - 0x44, - 0x87, - 0x44, - 0x87, - 0x87, - 0x44, - 0x87, - 0x71, - 0x69, - 0x69, - 0x71, - 0x69, - 0x69, - 0x87, - 0x69, - 0x00, - 0x04, - 0x71, - 0x00, - 0x73, - 0x43, - 0x63, - 0x43, - 0x71, - 0x87, - 0x98, - 0xA3, - 0xA4, - 0xA6, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x7C, - 0x6E, - 0x40, - 0x2E, - 0x42, - 0x66, - 0x71, - 0x66, - 0x43, - 0x63, - 0x69, - 0x59, - 0x8E, - 0xA4, - 0x9B, - 0xA6, - 0x65, - 0x42, - 0x71, - 0x63, - 0x59, - 0xA6, - 0xA2, - 0xA4, - 0x65, - 0x2F, - 0x66, - 0x71, - 0x71, - 0x71, - 0x69, - 0x71, - 0x71, - 0x42, - 0x70, - 0x70, - 0x70, - 0x69, - 0x70, - 0x70, - 0x70, - 0x42, - 0x42, - 0x70, - 0x42, - 0x54, - 0x43, - 0x70, - 0x63, - 0x70, - 0x63, - 0x70, - 0x42, - 0x54, - 0x54, - 0x42, - 0x63, - 0x71, - 0x42, - 0x69, - 0x43, - 0x70, - 0x42, - 0x54, - 0x41, - 0x41, - 0x66, - 0x6C, - 0x98, - 0xA1, - 0xA6, - 0x9B, - 0xA2, - 0x9B, - 0xA6, - 0x9B, - 0x96, - 0x94, - 0x87, - 0xBB, - 0xB4, - 0xA3, - 0xA6, - 0x9F, - 0xA1, - 0x53, - 0x53, - 0x37, - 0x41, - 0x55, - 0x37, - 0x41, - 0x37, - 0x37, - 0x40, - 0x53, - 0x41, - 0x53, - 0x41, - 0x40, - 0x40, - 0x00, - 0x04, - 0x54, - 0x00, - 0x16, - 0x37, - 0x49, - 0x49, - 0x40, - 0x35, - 0x35, - 0x20, - 0x49, - 0x52, - 0x65, - 0x8E, - 0x91, - 0x96, - 0x9F, - 0x9F, - 0xA0, - 0x95, - 0x90, - 0x56, - 0x79, - 0x95, - 0x7C, - 0x00, - 0x00, - 0x00, - 0x8E, - 0xE6, - 0xE6, - 0xE5, - 0xE6, - 0xFA, - 0xB6, - 0x3D, - 0x4F, - 0x6B, - 0x64, - 0x68, - 0x68, - 0x64, - 0x56, - 0xA5, - 0xC0, - 0xF9, - 0xEC, - 0xEC, - 0xEC, - 0xF9, - 0xF9, - 0xEA, - 0xF5, - 0xF5, - 0xF5, - 0xFB, - 0x06, - 0xFF, - 0xFF, - 0x06, - 0x67, - 0x06, - 0x06, - 0x13, - 0x13, - 0x49, - 0x65, - 0x75, - 0x88, - 0x7F, - 0x7F, - 0x7F, - 0x74, - 0x64, - 0x5E, - 0x39, - 0x81, - 0x1D, - 0x06, - 0x13, - 0x2D, - 0x61, - 0x2F, - 0x55, - 0x55, - 0x2E, - 0x2E, - 0x4B, - 0x2E, - 0x14, - 0x7B, - 0x84, - 0x8C, - 0x8E, - 0x15, - 0x2E, - 0x2E, - 0x55, - 0x55, - 0x2F, - 0x62, - 0x3E, - 0x3E, - 0x3E, - 0x62, - 0x62, - 0x62, - 0x2F, - 0x40, - 0x90, - 0x95, - 0x96, - 0x7D, - 0x3E, - 0x70, - 0x63, - 0x3E, - 0x53, - 0x91, - 0x96, - 0xA0, - 0x87, - 0x4C, - 0x63, - 0x43, - 0x63, - 0x7C, - 0x95, - 0x96, - 0x96, - 0x59, - 0x63, - 0x71, - 0x71, - 0x70, - 0x65, - 0x96, - 0xA0, - 0x96, - 0x59, - 0x71, - 0x87, - 0x87, - 0x63, - 0x7B, - 0xA6, - 0xA6, - 0xA4, - 0x87, - 0x44, - 0x85, - 0x87, - 0x63, - 0x88, - 0x9B, - 0xA6, - 0xA1, - 0x44, - 0x87, - 0x87, - 0x87, - 0x43, - 0x98, - 0xB1, - 0xC2, - 0xD2, - 0xD8, - 0x87, - 0x87, - 0x2F, - 0xD9, - 0x04, - 0xD2, - 0x00, - 0x10, - 0xD8, - 0x87, - 0x85, - 0x87, - 0x85, - 0x87, - 0x87, - 0x87, - 0x44, - 0x87, - 0x87, - 0x87, - 0x44, - 0x71, - 0x87, - 0x87, - 0x07, - 0x71, - 0x01, - 0x87, - 0x01, - 0x69, - 0x05, - 0x71, - 0x00, - 0x77, - 0x43, - 0x71, - 0x71, - 0x71, - 0x43, - 0x71, - 0x71, - 0x70, - 0x70, - 0x70, - 0x66, - 0x85, - 0x98, - 0xA7, - 0xA6, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0x97, - 0x88, - 0x6E, - 0x40, - 0x2E, - 0x55, - 0x42, - 0x43, - 0x66, - 0x70, - 0x42, - 0x59, - 0xA4, - 0xA2, - 0xA4, - 0x53, - 0x42, - 0x66, - 0x41, - 0x7D, - 0xA2, - 0xA2, - 0xA4, - 0x53, - 0x42, - 0x70, - 0x42, - 0x70, - 0x70, - 0x63, - 0x71, - 0x63, - 0x71, - 0x63, - 0x71, - 0x70, - 0x70, - 0x54, - 0x42, - 0x70, - 0x42, - 0x70, - 0x70, - 0x70, - 0x42, - 0x42, - 0x54, - 0x42, - 0x42, - 0x70, - 0x43, - 0x70, - 0x63, - 0x70, - 0x42, - 0x41, - 0x54, - 0x70, - 0x43, - 0x63, - 0x70, - 0x63, - 0x70, - 0x42, - 0x41, - 0x41, - 0x37, - 0x54, - 0x66, - 0x7D, - 0x97, - 0xA6, - 0xA6, - 0xA1, - 0xD9, - 0xD7, - 0xD9, - 0xBB, - 0xD7, - 0xD7, - 0xA1, - 0xA6, - 0x9B, - 0x65, - 0x25, - 0x40, - 0x53, - 0x41, - 0x62, - 0x62, - 0x41, - 0x2D, - 0x11, - 0x2B, - 0x2B, - 0x2C, - 0x25, - 0x41, - 0x41, - 0x40, - 0x00, - 0x05, - 0x35, - 0x00, - 0x14, - 0x25, - 0x35, - 0x40, - 0x40, - 0x49, - 0x35, - 0x35, - 0x20, - 0x20, - 0x35, - 0x53, - 0x7D, - 0x97, - 0x96, - 0x9F, - 0x93, - 0x7F, - 0x93, - 0x91, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x46, - 0xF4, - 0xB6, - 0x3D, - 0x4F, - 0x5E, - 0x64, - 0x68, - 0x75, - 0x64, - 0x6D, - 0x80, - 0xC0, - 0xEC, - 0xDC, - 0xE6, - 0xDC, - 0xEC, - 0xDD, - 0xF5, - 0xF5, - 0xEA, - 0xD1, - 0xF5, - 0xD1, - 0xF5, - 0xF5, - 0xFF, - 0xC4, - 0x06, - 0x06, - 0x18, - 0x18, - 0x18, - 0x13, - 0x13, - 0x5A, - 0x13, - 0x17, - 0x14, - 0x2C, - 0x40, - 0x7C, - 0x75, - 0x88, - 0x7F, - 0x84, - 0x7F, - 0x7F, - 0x75, - 0x5E, - 0x79, - 0x39, - 0x1D, - 0x06, - 0x17, - 0x2D, - 0x55, - 0x2E, - 0x2E, - 0x4B, - 0x34, - 0x7F, - 0x84, - 0x91, - 0x65, - 0x4B, - 0x55, - 0x55, - 0x55, - 0x3E, - 0x04, - 0x55, - 0x00, - 0x43, - 0x3E, - 0x3E, - 0x63, - 0x62, - 0x55, - 0x65, - 0x8C, - 0x95, - 0x91, - 0x62, - 0x63, - 0x42, - 0x63, - 0x2F, - 0x7B, - 0xA0, - 0xA0, - 0x97, - 0x3E, - 0x63, - 0x69, - 0x71, - 0x2F, - 0x88, - 0x93, - 0xA0, - 0x97, - 0x3E, - 0x71, - 0x71, - 0x71, - 0x41, - 0x90, - 0xA0, - 0xA0, - 0x94, - 0x43, - 0x71, - 0x87, - 0x87, - 0x54, - 0x91, - 0x9F, - 0x9F, - 0x8E, - 0x71, - 0x87, - 0x87, - 0x87, - 0x65, - 0x96, - 0xA6, - 0xA6, - 0x85, - 0x71, - 0x87, - 0x87, - 0x71, - 0x65, - 0xA6, - 0xA6, - 0xA6, - 0x85, - 0xBB, - 0x87, - 0x87, - 0x4C, - 0x00, - 0x05, - 0xD2, - 0x01, - 0xBB, - 0x06, - 0x87, - 0x01, - 0x59, - 0x06, - 0x87, - 0x00, - 0x03, - 0x71, - 0x71, - 0x71, - 0x00, - 0x04, - 0x87, - 0x01, - 0x69, - 0x04, - 0x71, - 0x01, - 0x69, - 0x01, - 0x69, - 0x05, - 0x71, - 0x01, - 0x63, - 0x04, - 0x71, - 0x00, - 0x25, - 0x43, - 0x70, - 0x70, - 0x43, - 0x63, - 0x71, - 0x87, - 0x85, - 0xA3, - 0xA7, - 0xA2, - 0xA2, - 0x9B, - 0x9B, - 0xA4, - 0x90, - 0x7B, - 0x60, - 0x52, - 0x2F, - 0x70, - 0x66, - 0x42, - 0x7D, - 0xA6, - 0x9B, - 0xA1, - 0x53, - 0x70, - 0x71, - 0x42, - 0x8E, - 0xA2, - 0x9B, - 0xA1, - 0x40, - 0x54, - 0x00, - 0x04, - 0x70, - 0x00, - 0x13, - 0x42, - 0x70, - 0x42, - 0x71, - 0x71, - 0x69, - 0x71, - 0x42, - 0x42, - 0x70, - 0x42, - 0x42, - 0x70, - 0x42, - 0x54, - 0x70, - 0x42, - 0x54, - 0x54, - 0x00, - 0x04, - 0x42, - 0x00, - 0x34, - 0x70, - 0x42, - 0x54, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x42, - 0x42, - 0x63, - 0x42, - 0x70, - 0x42, - 0x42, - 0x42, - 0x41, - 0x37, - 0x7C, - 0xA6, - 0x9F, - 0xA3, - 0xD5, - 0x16, - 0x1F, - 0x19, - 0xF1, - 0xD2, - 0xA7, - 0xA0, - 0xA6, - 0x54, - 0x40, - 0x41, - 0x37, - 0x37, - 0x40, - 0x24, - 0x39, - 0x5C, - 0x77, - 0x75, - 0x75, - 0x7B, - 0x60, - 0x34, - 0x35, - 0x40, - 0x52, - 0x40, - 0x40, - 0x40, - 0x52, - 0x06, - 0x35, - 0x00, - 0x0E, - 0x49, - 0x49, - 0x35, - 0x49, - 0x20, - 0x48, - 0x20, - 0x52, - 0x60, - 0x75, - 0x95, - 0x97, - 0xD7, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x10, - 0x5F, - 0x5B, - 0x64, - 0x64, - 0x77, - 0x56, - 0x89, - 0xC0, - 0xD0, - 0xE6, - 0xF0, - 0xDC, - 0xEC, - 0xDD, - 0xF5, - 0xEA, - 0x04, - 0xEC, - 0x00, - 0x48, - 0xF5, - 0xF9, - 0xF5, - 0xD1, - 0xF5, - 0xC0, - 0xFB, - 0x05, - 0xFF, - 0x06, - 0x18, - 0x18, - 0x18, - 0x17, - 0x13, - 0x17, - 0x13, - 0x2C, - 0x5A, - 0x14, - 0x4A, - 0x14, - 0x0E, - 0x49, - 0x52, - 0x65, - 0x75, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x75, - 0x5E, - 0x79, - 0x39, - 0x1D, - 0x1D, - 0x06, - 0x1D, - 0x77, - 0x84, - 0x84, - 0x90, - 0x15, - 0x2E, - 0x4B, - 0x55, - 0x55, - 0x3E, - 0x55, - 0x3E, - 0x62, - 0x3E, - 0x55, - 0x55, - 0x62, - 0x2F, - 0x2E, - 0x7F, - 0x95, - 0x93, - 0x7D, - 0x2F, - 0x42, - 0x62, - 0x3E, - 0x53, - 0x91, - 0x95, - 0x96, - 0x7D, - 0x04, - 0x63, - 0x00, - 0x0D, - 0x7C, - 0x95, - 0x93, - 0x96, - 0x87, - 0x69, - 0x71, - 0x71, - 0x42, - 0x7B, - 0x96, - 0xA0, - 0x96, - 0x00, - 0x04, - 0x71, - 0x00, - 0x21, - 0x42, - 0x75, - 0xA0, - 0xA0, - 0xA1, - 0x71, - 0x44, - 0x87, - 0x87, - 0x42, - 0x88, - 0x9F, - 0xA6, - 0x97, - 0x44, - 0x87, - 0x44, - 0x87, - 0x54, - 0x97, - 0x9B, - 0xA2, - 0x98, - 0x71, - 0x87, - 0x87, - 0x87, - 0x43, - 0xA9, - 0xB3, - 0xC2, - 0xD2, - 0xC6, - 0x00, - 0x06, - 0x87, - 0x01, - 0x44, - 0x01, - 0x71, - 0x07, - 0x87, - 0x00, - 0x09, - 0x71, - 0x71, - 0x71, - 0x87, - 0x69, - 0xBB, - 0x87, - 0xBB, - 0x69, - 0x00, - 0x04, - 0x71, - 0x01, - 0x43, - 0x01, - 0x69, - 0x04, - 0x71, - 0x00, - 0x29, - 0x43, - 0x70, - 0x63, - 0x43, - 0x63, - 0x71, - 0x71, - 0x43, - 0x66, - 0x70, - 0x70, - 0x63, - 0x70, - 0x43, - 0x87, - 0x85, - 0xA3, - 0xA4, - 0xA6, - 0xA2, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x6F, - 0x43, - 0x71, - 0x63, - 0x8E, - 0xA6, - 0xA2, - 0x97, - 0x6E, - 0x70, - 0x70, - 0x42, - 0x94, - 0xA2, - 0xA2, - 0x97, - 0x40, - 0x00, - 0x07, - 0x70, - 0x00, - 0x1F, - 0x42, - 0x70, - 0x70, - 0x42, - 0x42, - 0x70, - 0x69, - 0x63, - 0x70, - 0x70, - 0x42, - 0x42, - 0x42, - 0x54, - 0x42, - 0x6F, - 0x54, - 0x63, - 0x62, - 0x42, - 0x42, - 0x54, - 0x41, - 0x54, - 0x41, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x54, - 0x41, - 0x00, - 0x05, - 0x42, - 0x00, - 0x2A, - 0x2F, - 0x65, - 0xA6, - 0xA6, - 0xA4, - 0xC2, - 0xDA, - 0xF1, - 0xE9, - 0xD7, - 0xAD, - 0xA0, - 0x9B, - 0x94, - 0x35, - 0x53, - 0x41, - 0x37, - 0x20, - 0x33, - 0x7B, - 0x95, - 0x9F, - 0x9F, - 0xA0, - 0x9F, - 0x9B, - 0x9B, - 0x97, - 0x52, - 0x49, - 0x37, - 0x35, - 0x40, - 0x25, - 0x40, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x49, - 0x06, - 0x35, - 0x00, - 0x08, - 0x20, - 0x08, - 0x4F, - 0x95, - 0x7C, - 0xD9, - 0xD2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x87, - 0x5B, - 0x5F, - 0xA5, - 0xB7, - 0xD0, - 0xE6, - 0xE5, - 0xE6, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xDD, - 0xEC, - 0xEA, - 0xF5, - 0xF5, - 0xEA, - 0xEC, - 0xDD, - 0xF9, - 0xF5, - 0xF5, - 0x05, - 0xFF, - 0xFF, - 0x06, - 0xFF, - 0x06, - 0x67, - 0x67, - 0x18, - 0x13, - 0x17, - 0x13, - 0x13, - 0x2C, - 0x14, - 0x2C, - 0x2C, - 0x14, - 0x2C, - 0x14, - 0x14, - 0x14, - 0x40, - 0x2E, - 0x65, - 0x7B, - 0x88, - 0x7F, - 0x84, - 0x84, - 0x7F, - 0x75, - 0x77, - 0x6B, - 0x75, - 0x84, - 0x84, - 0x84, - 0x6C, - 0x0B, - 0x2E, - 0x2E, - 0x55, - 0x55, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x3E, - 0x2F, - 0x2F, - 0x55, - 0x3E, - 0x7C, - 0x8C, - 0x95, - 0x91, - 0x62, - 0x3E, - 0x4C, - 0x63, - 0x55, - 0x7B, - 0x95, - 0x93, - 0x97, - 0x3E, - 0x63, - 0x70, - 0x63, - 0x2F, - 0x88, - 0x96, - 0xA0, - 0x94, - 0x63, - 0x71, - 0x43, - 0x43, - 0x41, - 0x90, - 0xA0, - 0x9F, - 0x8E, - 0x63, - 0x71, - 0x71, - 0x71, - 0x53, - 0x95, - 0xA0, - 0xA0, - 0x85, - 0x71, - 0x59, - 0x87, - 0x71, - 0x65, - 0x96, - 0xA0, - 0xA6, - 0x87, - 0x71, - 0x87, - 0x87, - 0x63, - 0x6C, - 0xA6, - 0xA6, - 0xA4, - 0x00, - 0x04, - 0x87, - 0x00, - 0x11, - 0x3E, - 0x88, - 0x9B, - 0xA2, - 0xA3, - 0xBB, - 0x87, - 0x87, - 0x87, - 0x71, - 0x87, - 0x87, - 0x71, - 0x87, - 0x87, - 0x87, - 0x71, - 0x00, - 0x05, - 0x87, - 0x00, - 0x3E, - 0x71, - 0x71, - 0x87, - 0x71, - 0x71, - 0x71, - 0x69, - 0x87, - 0x69, - 0x71, - 0x69, - 0x87, - 0x69, - 0x71, - 0x71, - 0x63, - 0x43, - 0x63, - 0x71, - 0x63, - 0x87, - 0x71, - 0x71, - 0x43, - 0x43, - 0x70, - 0x70, - 0x43, - 0x71, - 0x87, - 0x69, - 0x71, - 0x43, - 0x70, - 0x42, - 0x70, - 0x66, - 0x87, - 0x8E, - 0xA3, - 0xA6, - 0xA2, - 0xA2, - 0x97, - 0x52, - 0x63, - 0x43, - 0x42, - 0x94, - 0xA2, - 0x9B, - 0x94, - 0x52, - 0x66, - 0x70, - 0x42, - 0x97, - 0xA2, - 0xA2, - 0x94, - 0x40, - 0x70, - 0x05, - 0x42, - 0x00, - 0x4D, - 0x63, - 0x69, - 0x63, - 0x71, - 0x42, - 0x70, - 0x42, - 0x63, - 0x63, - 0x63, - 0x69, - 0x42, - 0x54, - 0x42, - 0x54, - 0x42, - 0x42, - 0x63, - 0x63, - 0x63, - 0x62, - 0x6F, - 0x54, - 0x54, - 0x41, - 0x41, - 0x54, - 0x54, - 0x41, - 0x54, - 0x54, - 0x41, - 0x54, - 0x41, - 0x41, - 0x54, - 0x42, - 0x42, - 0x94, - 0x9B, - 0xA6, - 0xA6, - 0xB0, - 0xB0, - 0xB0, - 0xA2, - 0x9F, - 0xA6, - 0x8E, - 0x37, - 0x41, - 0x53, - 0x37, - 0x49, - 0x60, - 0x91, - 0x9F, - 0x96, - 0x7D, - 0xBB, - 0xC6, - 0xB4, - 0x94, - 0xA6, - 0x9B, - 0xA1, - 0x35, - 0x35, - 0x40, - 0x40, - 0x52, - 0x49, - 0x52, - 0x35, - 0x35, - 0x49, - 0x35, - 0x00, - 0x05, - 0x49, - 0x00, - 0x0A, - 0x20, - 0x49, - 0x39, - 0x5C, - 0x95, - 0x7C, - 0xDA, - 0xD2, - 0xD2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x38, - 0xDC, - 0xE6, - 0xE5, - 0xE5, - 0xF0, - 0xF0, - 0xE6, - 0xDC, - 0xE6, - 0xDC, - 0xEC, - 0xEC, - 0xDD, - 0xDC, - 0xDC, - 0xEC, - 0xDD, - 0xEC, - 0xDD, - 0xF5, - 0xEC, - 0xF9, - 0xD1, - 0xF5, - 0xF5, - 0xEA, - 0x05, - 0xFF, - 0xFF, - 0x06, - 0x18, - 0x06, - 0x13, - 0x13, - 0x17, - 0x13, - 0x13, - 0x5A, - 0x2C, - 0x17, - 0x2C, - 0x4A, - 0x2C, - 0x2C, - 0x4A, - 0x2D, - 0x4A, - 0x4A, - 0x2D, - 0x15, - 0x0E, - 0x4B, - 0x41, - 0x65, - 0x7B, - 0x88, - 0x04, - 0x84, - 0x00, - 0x09, - 0x90, - 0x7D, - 0x6F, - 0x15, - 0x4B, - 0x4B, - 0x55, - 0x55, - 0x2F, - 0x00, - 0x04, - 0x55, - 0x00, - 0x56, - 0x2F, - 0x55, - 0x55, - 0x2F, - 0x0B, - 0x7F, - 0x95, - 0x93, - 0x8E, - 0x2F, - 0x62, - 0x42, - 0x62, - 0x40, - 0x84, - 0x93, - 0xA0, - 0x7D, - 0x3E, - 0x70, - 0x63, - 0x42, - 0x53, - 0x95, - 0x96, - 0x96, - 0x59, - 0x69, - 0x71, - 0x71, - 0x42, - 0x7B, - 0x93, - 0xA0, - 0xA1, - 0x87, - 0x87, - 0x44, - 0x87, - 0x41, - 0x88, - 0xA0, - 0x9F, - 0x97, - 0x43, - 0x71, - 0x71, - 0x87, - 0x41, - 0x90, - 0x9F, - 0x9F, - 0x94, - 0x43, - 0x87, - 0x87, - 0x87, - 0x54, - 0x95, - 0xA6, - 0x9B, - 0x8E, - 0x69, - 0x87, - 0x87, - 0x87, - 0x65, - 0xA6, - 0xA6, - 0xA6, - 0x85, - 0x71, - 0x87, - 0x44, - 0x87, - 0x71, - 0x87, - 0x71, - 0x87, - 0x69, - 0x87, - 0x87, - 0x71, - 0x87, - 0x71, - 0x87, - 0x06, - 0x71, - 0x01, - 0x69, - 0x05, - 0x71, - 0x00, - 0x34, - 0x69, - 0x87, - 0x69, - 0x87, - 0x69, - 0x69, - 0x43, - 0x71, - 0x43, - 0x43, - 0x71, - 0x71, - 0x71, - 0x43, - 0x69, - 0x43, - 0x71, - 0x70, - 0x43, - 0x71, - 0x70, - 0x43, - 0x69, - 0x87, - 0x69, - 0x69, - 0x43, - 0x70, - 0x42, - 0x42, - 0x71, - 0x8E, - 0xA2, - 0x9B, - 0x97, - 0x52, - 0x70, - 0x70, - 0x42, - 0x94, - 0x9B, - 0x9B, - 0x8E, - 0x55, - 0x43, - 0x70, - 0x54, - 0xA3, - 0xA2, - 0xA2, - 0x7D, - 0x2E, - 0x04, - 0x70, - 0x00, - 0x1D, - 0x42, - 0x63, - 0x70, - 0x71, - 0x63, - 0x69, - 0x63, - 0x43, - 0x70, - 0x54, - 0x42, - 0x42, - 0x6F, - 0x54, - 0x6F, - 0x54, - 0x63, - 0x70, - 0x42, - 0x42, - 0x6F, - 0x41, - 0x54, - 0x41, - 0x41, - 0x42, - 0x42, - 0x41, - 0x6F, - 0x00, - 0x0A, - 0x41, - 0x00, - 0x36, - 0x53, - 0x85, - 0xA1, - 0xA6, - 0xA6, - 0xA0, - 0xA6, - 0xA1, - 0x94, - 0x65, - 0x40, - 0x37, - 0x53, - 0x37, - 0x37, - 0x48, - 0x91, - 0x9B, - 0x91, - 0xC6, - 0xD6, - 0xBB, - 0xBB, - 0xC6, - 0xD8, - 0xA1, - 0x9B, - 0xA6, - 0x53, - 0x35, - 0x40, - 0x35, - 0x25, - 0x35, - 0x25, - 0x49, - 0x49, - 0x35, - 0x35, - 0x35, - 0x49, - 0x35, - 0x35, - 0x49, - 0x35, - 0x20, - 0x1F, - 0x90, - 0x91, - 0xFF, - 0xE4, - 0xD6, - 0xD2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x27, - 0xE6, - 0xE5, - 0xE6, - 0xE5, - 0xF0, - 0xDD, - 0xDC, - 0xDD, - 0xF0, - 0xDD, - 0xF0, - 0xE6, - 0xDC, - 0xDC, - 0xE6, - 0xDD, - 0xF5, - 0xDD, - 0xF9, - 0xF9, - 0xF9, - 0xDD, - 0xF5, - 0xF5, - 0xC0, - 0x05, - 0xC0, - 0xFF, - 0xFF, - 0xFF, - 0x67, - 0x06, - 0x18, - 0x18, - 0x17, - 0x17, - 0x17, - 0x2C, - 0x17, - 0x00, - 0x04, - 0x2C, - 0x00, - 0xC9, - 0x4A, - 0x14, - 0x4A, - 0x14, - 0x2D, - 0x4A, - 0x2D, - 0x2D, - 0x2D, - 0x0E, - 0x0E, - 0x0B, - 0x2D, - 0x6E, - 0x54, - 0x54, - 0x6E, - 0x4B, - 0x4B, - 0x0E, - 0x61, - 0x4B, - 0x4B, - 0x61, - 0x4B, - 0x4B, - 0x2E, - 0x55, - 0x4B, - 0x62, - 0x55, - 0x55, - 0x2F, - 0x55, - 0x7C, - 0x8C, - 0x91, - 0x91, - 0x70, - 0x62, - 0x62, - 0x42, - 0x2E, - 0x7B, - 0x93, - 0x96, - 0x97, - 0x42, - 0x63, - 0x42, - 0x63, - 0x2E, - 0x88, - 0xA0, - 0xA0, - 0x94, - 0x3E, - 0x71, - 0x69, - 0x71, - 0x37, - 0x90, - 0xA0, - 0x9F, - 0x8E, - 0x63, - 0x71, - 0x87, - 0x69, - 0x65, - 0x95, - 0xA0, - 0xA0, - 0x87, - 0x71, - 0x71, - 0x87, - 0x43, - 0x7B, - 0xA0, - 0xA6, - 0xA4, - 0x44, - 0x87, - 0x87, - 0x87, - 0x3E, - 0x88, - 0x9F, - 0x9F, - 0xA3, - 0x71, - 0x87, - 0x71, - 0x87, - 0x42, - 0x97, - 0xA6, - 0x9B, - 0x98, - 0x69, - 0x87, - 0x87, - 0x87, - 0x69, - 0x87, - 0x87, - 0x71, - 0x44, - 0x87, - 0x87, - 0x71, - 0x44, - 0x71, - 0x87, - 0x44, - 0x71, - 0x71, - 0x71, - 0x87, - 0x71, - 0x69, - 0x71, - 0x71, - 0x69, - 0x71, - 0x69, - 0x63, - 0x71, - 0x43, - 0x71, - 0x71, - 0x43, - 0x71, - 0x71, - 0x69, - 0x43, - 0x70, - 0x63, - 0x71, - 0x63, - 0x70, - 0x43, - 0x71, - 0x69, - 0x69, - 0x69, - 0x43, - 0x70, - 0x70, - 0x43, - 0x43, - 0x71, - 0x69, - 0x71, - 0x69, - 0x71, - 0x71, - 0x70, - 0x42, - 0x8E, - 0xA2, - 0x9B, - 0x94, - 0x6E, - 0x70, - 0x66, - 0x42, - 0x97, - 0xA2, - 0x9B, - 0x7D, - 0x41, - 0x66, - 0x42, - 0x66, - 0xA1, - 0x9B, - 0xA6, - 0x7B, - 0x48, - 0x49, - 0x55, - 0x3E, - 0x69, - 0x63, - 0x63, - 0x54, - 0x42, - 0x70, - 0x63, - 0x69, - 0x63, - 0x63, - 0x63, - 0x70, - 0x54, - 0x62, - 0x54, - 0x54, - 0x62, - 0x00, - 0x05, - 0x42, - 0x00, - 0x08, - 0x6F, - 0x41, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x6F, - 0x62, - 0x06, - 0x41, - 0x00, - 0x39, - 0x62, - 0x62, - 0x3E, - 0x41, - 0x27, - 0x53, - 0x3B, - 0x6C, - 0x59, - 0x66, - 0x42, - 0x62, - 0x41, - 0x37, - 0x40, - 0x40, - 0x37, - 0x49, - 0x7C, - 0x9F, - 0x9F, - 0x98, - 0xD5, - 0x17, - 0x1A, - 0x07, - 0xE8, - 0xD2, - 0xA4, - 0xA6, - 0xA1, - 0x33, - 0x1F, - 0x48, - 0x49, - 0x35, - 0x52, - 0x35, - 0x35, - 0x35, - 0x2E, - 0x25, - 0x49, - 0x35, - 0x49, - 0x49, - 0x34, - 0x49, - 0x49, - 0x20, - 0x65, - 0x91, - 0x91, - 0x90, - 0x7B, - 0xB2, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0xE6, - 0xF0, - 0xEC, - 0xF0, - 0xDC, - 0xE6, - 0xE6, - 0xF0, - 0xDC, - 0xDD, - 0xDC, - 0xE6, - 0xDC, - 0xEC, - 0xEC, - 0xDC, - 0xEC, - 0xEC, - 0xDD, - 0xDD, - 0xEA, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x07, - 0xEA, - 0x05, - 0xFF, - 0xFF, - 0x06, - 0x06, - 0x01, - 0x00, - 0x04, - 0x18, - 0x00, - 0x09, - 0x17, - 0x5A, - 0x0E, - 0x2C, - 0x4A, - 0x14, - 0x4A, - 0x14, - 0x2C, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x0E, - 0x2D, - 0x4A, - 0x4A, - 0x49, - 0x2D, - 0x15, - 0x4A, - 0x15, - 0x4A, - 0x4B, - 0x15, - 0x4B, - 0x15, - 0x2D, - 0x06, - 0x4B, - 0x00, - 0x38, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x55, - 0x55, - 0x15, - 0x13, - 0x88, - 0x95, - 0x93, - 0x8E, - 0x2E, - 0x62, - 0x62, - 0x62, - 0x40, - 0x90, - 0x95, - 0x93, - 0x7D, - 0x2F, - 0x70, - 0x42, - 0x2F, - 0x7C, - 0x95, - 0x96, - 0x96, - 0x66, - 0x63, - 0x66, - 0x43, - 0x2F, - 0x7B, - 0x93, - 0xA0, - 0xA1, - 0x69, - 0x71, - 0x71, - 0x71, - 0x41, - 0x88, - 0xA0, - 0x9F, - 0x97, - 0x69, - 0x87, - 0x71, - 0x71, - 0x37, - 0x97, - 0x9F, - 0xA6, - 0x8E, - 0x04, - 0x71, - 0x00, - 0x0E, - 0x65, - 0x95, - 0xA6, - 0xA6, - 0x7D, - 0x69, - 0x87, - 0x87, - 0x63, - 0x7B, - 0xA6, - 0x9B, - 0xA4, - 0x44, - 0x06, - 0x87, - 0x00, - 0x07, - 0x71, - 0x71, - 0x71, - 0x87, - 0x87, - 0x87, - 0x69, - 0x00, - 0x05, - 0x71, - 0x04, - 0x87, - 0x07, - 0x71, - 0x00, - 0x09, - 0x69, - 0x69, - 0x43, - 0x63, - 0x43, - 0x63, - 0x43, - 0x70, - 0x43, - 0x00, - 0x04, - 0x69, - 0x00, - 0x87, - 0x71, - 0x63, - 0x70, - 0x43, - 0x43, - 0x70, - 0x70, - 0x69, - 0x71, - 0x63, - 0x70, - 0x70, - 0x70, - 0x43, - 0x69, - 0x71, - 0x69, - 0x69, - 0x42, - 0x94, - 0xA2, - 0xA2, - 0x8E, - 0x40, - 0x70, - 0x63, - 0x69, - 0xA1, - 0x9B, - 0x9B, - 0x7B, - 0x2E, - 0x66, - 0x42, - 0x66, - 0xA4, - 0xA2, - 0x9B, - 0xA1, - 0x90, - 0x7B, - 0x60, - 0x2C, - 0x55, - 0x2F, - 0x42, - 0x54, - 0x42, - 0x54, - 0x54, - 0x42, - 0x42, - 0x63, - 0x63, - 0x63, - 0x71, - 0x63, - 0x63, - 0x54, - 0x62, - 0x54, - 0x54, - 0x70, - 0x42, - 0x63, - 0x42, - 0x42, - 0x41, - 0x41, - 0x54, - 0x41, - 0x42, - 0x42, - 0x6F, - 0x41, - 0x41, - 0x54, - 0x41, - 0x41, - 0x41, - 0x62, - 0x62, - 0x62, - 0x2F, - 0x41, - 0x27, - 0x27, - 0x37, - 0x41, - 0x41, - 0x37, - 0x40, - 0x2F, - 0x62, - 0x40, - 0x25, - 0x65, - 0x9F, - 0x9F, - 0xA1, - 0xC2, - 0xD6, - 0xE8, - 0xE4, - 0xD8, - 0xA7, - 0x9B, - 0x9B, - 0xA0, - 0x95, - 0x90, - 0x7B, - 0x33, - 0x58, - 0x1F, - 0x11, - 0x49, - 0x25, - 0x40, - 0x40, - 0x40, - 0x25, - 0x40, - 0x25, - 0x49, - 0x49, - 0x34, - 0x34, - 0x2C, - 0x20, - 0x53, - 0x6C, - 0x90, - 0x91, - 0x90, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0xE6, - 0xE5, - 0xDC, - 0xE6, - 0xDC, - 0xDC, - 0xDD, - 0xDC, - 0xDC, - 0xF0, - 0xDC, - 0xDC, - 0xF0, - 0xDC, - 0xDC, - 0xDC, - 0x04, - 0xEC, - 0x00, - 0x04, - 0xDD, - 0xF9, - 0xEA, - 0xF5, - 0x04, - 0xFF, - 0x00, - 0x24, - 0xC4, - 0xFF, - 0x06, - 0xC4, - 0x18, - 0x01, - 0x01, - 0x06, - 0x05, - 0x05, - 0x29, - 0x05, - 0x1D, - 0x17, - 0x2D, - 0x4A, - 0x2C, - 0x14, - 0x2D, - 0x14, - 0x4A, - 0x4A, - 0x2C, - 0x4A, - 0x4A, - 0x0B, - 0x4B, - 0x4B, - 0x4A, - 0x4B, - 0x15, - 0x4A, - 0x4A, - 0x4B, - 0x4A, - 0x2D, - 0x06, - 0x4B, - 0x00, - 0x59, - 0x2E, - 0x55, - 0x4B, - 0x13, - 0x1D, - 0x56, - 0x74, - 0x95, - 0x95, - 0x91, - 0x70, - 0x62, - 0x2F, - 0x62, - 0x16, - 0x7B, - 0x93, - 0x93, - 0x97, - 0x2F, - 0x62, - 0x42, - 0x63, - 0x2F, - 0x88, - 0x93, - 0xA0, - 0x8E, - 0x42, - 0x70, - 0x71, - 0x63, - 0x53, - 0x91, - 0xA0, - 0x9F, - 0x7D, - 0x63, - 0x71, - 0x69, - 0x63, - 0x65, - 0x95, - 0xA0, - 0xA4, - 0x59, - 0x69, - 0x71, - 0x71, - 0x2F, - 0x88, - 0xA0, - 0xA0, - 0xA1, - 0x43, - 0x71, - 0x71, - 0x87, - 0x2E, - 0x90, - 0x9F, - 0x9F, - 0x94, - 0x63, - 0x71, - 0x71, - 0x71, - 0x53, - 0xA4, - 0x9B, - 0xA6, - 0x85, - 0x71, - 0x87, - 0x71, - 0x87, - 0x69, - 0x87, - 0x71, - 0x71, - 0x71, - 0x69, - 0x69, - 0x71, - 0x87, - 0x69, - 0x71, - 0x71, - 0x69, - 0x00, - 0x04, - 0x71, - 0x00, - 0x5E, - 0x87, - 0x71, - 0x71, - 0x71, - 0x87, - 0x69, - 0x43, - 0x71, - 0x71, - 0x63, - 0x43, - 0x63, - 0x43, - 0x71, - 0x71, - 0x43, - 0x70, - 0x63, - 0x71, - 0x63, - 0x69, - 0x69, - 0x69, - 0x63, - 0x69, - 0x63, - 0x70, - 0x70, - 0x43, - 0x63, - 0x43, - 0x43, - 0x43, - 0x70, - 0x70, - 0x63, - 0x43, - 0x70, - 0x43, - 0x70, - 0x42, - 0x42, - 0xA3, - 0xA2, - 0x9B, - 0x88, - 0x40, - 0x70, - 0x70, - 0x66, - 0xA4, - 0x9B, - 0xA6, - 0x65, - 0x37, - 0x70, - 0x42, - 0x59, - 0x94, - 0xA4, - 0xA2, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x7B, - 0x60, - 0x2B, - 0x2D, - 0x6F, - 0x70, - 0x42, - 0x6F, - 0x54, - 0x42, - 0x42, - 0x42, - 0x63, - 0x42, - 0x42, - 0x42, - 0x63, - 0x62, - 0x41, - 0x41, - 0x54, - 0x41, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x41, - 0x62, - 0x06, - 0x41, - 0x00, - 0x39, - 0x37, - 0x41, - 0x41, - 0x53, - 0x41, - 0x41, - 0x2F, - 0x62, - 0x2F, - 0x53, - 0x40, - 0x53, - 0x40, - 0x37, - 0x41, - 0x2E, - 0x37, - 0x37, - 0x35, - 0x94, - 0xA6, - 0x9F, - 0xA0, - 0xAA, - 0xAA, - 0xAA, - 0x9B, - 0x9F, - 0x97, - 0x8E, - 0xA1, - 0x9F, - 0x9F, - 0x9F, - 0x93, - 0x91, - 0x88, - 0x77, - 0x33, - 0x39, - 0x1F, - 0x20, - 0x35, - 0x35, - 0x49, - 0x2E, - 0x49, - 0x25, - 0x35, - 0x20, - 0x34, - 0x20, - 0x24, - 0x24, - 0x24, - 0x35, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xF0, - 0xDD, - 0xF0, - 0xE5, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xDC, - 0xEC, - 0xEC, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xEC, - 0xDD, - 0xF5, - 0xF9, - 0xD1, - 0xF5, - 0xEA, - 0xF5, - 0xFB, - 0xFF, - 0x06, - 0x06, - 0x06, - 0x67, - 0x06, - 0x06, - 0x1D, - 0x80, - 0x56, - 0x5E, - 0x6B, - 0x6D, - 0x5C, - 0x39, - 0x05, - 0x18, - 0x2C, - 0x14, - 0x4A, - 0x4A, - 0x2D, - 0x4A, - 0x15, - 0x4A, - 0x14, - 0x4A, - 0x4A, - 0x0E, - 0x4B, - 0x0B, - 0x4B, - 0x4B, - 0x4B, - 0x4A, - 0x4A, - 0x4A, - 0x04, - 0x4B, - 0x00, - 0xA7, - 0x55, - 0x2E, - 0x4A, - 0x1D, - 0x58, - 0x6B, - 0x7F, - 0x8F, - 0x93, - 0x97, - 0x7D, - 0x6F, - 0x55, - 0x62, - 0x55, - 0x14, - 0x48, - 0x90, - 0x95, - 0x93, - 0x7D, - 0x2F, - 0x62, - 0x42, - 0x2F, - 0x7C, - 0x8C, - 0x95, - 0x95, - 0x66, - 0x70, - 0x63, - 0x43, - 0x2F, - 0x7B, - 0xA0, - 0xA0, - 0x97, - 0x70, - 0x70, - 0x69, - 0x71, - 0x41, - 0x7F, - 0xA0, - 0x9F, - 0x8E, - 0x63, - 0x71, - 0x71, - 0x66, - 0x53, - 0x95, - 0xA0, - 0xA6, - 0x7D, - 0x43, - 0x71, - 0x87, - 0x3E, - 0x7B, - 0xA0, - 0x9F, - 0xA1, - 0x44, - 0x87, - 0x87, - 0x87, - 0x62, - 0x88, - 0xA6, - 0x9B, - 0xA3, - 0x71, - 0x87, - 0x87, - 0x87, - 0x71, - 0x44, - 0x87, - 0x71, - 0x71, - 0x69, - 0x87, - 0x87, - 0x87, - 0x69, - 0x87, - 0x71, - 0x71, - 0x43, - 0x71, - 0x87, - 0x55, - 0x2C, - 0x2C, - 0x55, - 0x66, - 0x44, - 0x87, - 0x71, - 0x71, - 0x69, - 0x87, - 0x71, - 0x71, - 0x43, - 0x70, - 0x43, - 0x71, - 0x63, - 0x63, - 0x43, - 0x43, - 0x66, - 0x43, - 0x70, - 0x63, - 0x63, - 0x69, - 0x63, - 0x70, - 0x63, - 0x63, - 0x42, - 0x70, - 0x70, - 0x70, - 0x42, - 0x70, - 0x43, - 0x43, - 0x63, - 0x63, - 0x43, - 0x70, - 0x42, - 0x42, - 0x97, - 0xA6, - 0x9B, - 0x7D, - 0x27, - 0x66, - 0x54, - 0x59, - 0xA4, - 0x9B, - 0xA4, - 0x54, - 0x63, - 0x66, - 0x63, - 0x41, - 0x70, - 0x7D, - 0x8E, - 0xA3, - 0xA4, - 0x9B, - 0xA2, - 0x9B, - 0xA4, - 0x97, - 0x88, - 0x52, - 0x40, - 0x00, - 0x04, - 0x42, - 0x00, - 0x22, - 0x6F, - 0x54, - 0x41, - 0x6F, - 0x41, - 0x62, - 0x63, - 0x42, - 0x42, - 0x6F, - 0x41, - 0x53, - 0x41, - 0x41, - 0x6F, - 0x42, - 0x63, - 0x63, - 0x41, - 0x53, - 0x41, - 0x41, - 0x37, - 0x41, - 0x37, - 0x41, - 0x42, - 0x41, - 0x41, - 0x37, - 0x40, - 0x53, - 0x40, - 0x37, - 0x04, - 0x41, - 0x00, - 0x2B, - 0x40, - 0x37, - 0x40, - 0x37, - 0x52, - 0x2E, - 0x7D, - 0x97, - 0xA1, - 0x96, - 0x96, - 0x97, - 0x94, - 0x6C, - 0x52, - 0x20, - 0x37, - 0x65, - 0x7D, - 0x97, - 0x96, - 0x9F, - 0x9F, - 0x9F, - 0x95, - 0x90, - 0x7B, - 0x8D, - 0x39, - 0x1F, - 0x24, - 0x34, - 0x35, - 0x49, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x20, - 0x34, - 0x48, - 0x24, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0xE6, - 0xF0, - 0xF0, - 0xE6, - 0xE5, - 0xE6, - 0xDC, - 0xE6, - 0xF0, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xDD, - 0xF5, - 0x05, - 0xEC, - 0x00, - 0x21, - 0xDD, - 0xF5, - 0xF5, - 0xC0, - 0xC0, - 0x05, - 0xC0, - 0xFF, - 0xFF, - 0xFF, - 0x06, - 0x06, - 0x58, - 0x64, - 0x74, - 0x73, - 0x74, - 0x74, - 0x74, - 0x73, - 0x7F, - 0x64, - 0x5C, - 0x06, - 0x14, - 0x2C, - 0x14, - 0x4A, - 0x14, - 0x4A, - 0x0E, - 0x4B, - 0x0E, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x51, - 0x4B, - 0x4B, - 0x0B, - 0x4B, - 0x4B, - 0x4A, - 0x4A, - 0x4B, - 0x2D, - 0x17, - 0x1D, - 0x60, - 0x75, - 0x84, - 0x93, - 0x95, - 0x88, - 0x6C, - 0x2E, - 0x2E, - 0x2F, - 0x4B, - 0x2B, - 0x33, - 0x6B, - 0x7F, - 0x93, - 0x95, - 0x94, - 0x2F, - 0x62, - 0x63, - 0x70, - 0x40, - 0x88, - 0x96, - 0xA0, - 0x94, - 0x3E, - 0x71, - 0x69, - 0x69, - 0x40, - 0x91, - 0xA0, - 0xA0, - 0x7D, - 0x62, - 0x71, - 0x69, - 0x4C, - 0x65, - 0xA0, - 0xA0, - 0xA1, - 0x66, - 0x71, - 0x71, - 0x66, - 0x2F, - 0x88, - 0xA0, - 0x9F, - 0x97, - 0x42, - 0x71, - 0x71, - 0x71, - 0x53, - 0x91, - 0xA0, - 0x9F, - 0x8E, - 0x63, - 0x87, - 0x71, - 0x71, - 0x65, - 0xA0, - 0x9F, - 0xA6, - 0x00, - 0x05, - 0x71, - 0x00, - 0x64, - 0x69, - 0x87, - 0x69, - 0x69, - 0x71, - 0x69, - 0x71, - 0x69, - 0x71, - 0x69, - 0x87, - 0x69, - 0x71, - 0x71, - 0x71, - 0x11, - 0x39, - 0x56, - 0x8D, - 0x89, - 0x05, - 0x05, - 0x5A, - 0x2F, - 0x43, - 0x71, - 0x44, - 0x69, - 0x69, - 0x43, - 0x63, - 0x69, - 0x69, - 0x43, - 0x43, - 0x63, - 0x71, - 0x63, - 0x63, - 0x43, - 0x70, - 0x43, - 0x70, - 0x70, - 0x43, - 0x70, - 0x70, - 0x63, - 0x43, - 0x43, - 0x43, - 0x70, - 0x70, - 0x70, - 0x43, - 0x70, - 0x43, - 0x69, - 0x70, - 0x42, - 0x70, - 0x66, - 0xA1, - 0x9B, - 0xA6, - 0x7B, - 0x2E, - 0x70, - 0x42, - 0x6C, - 0xA6, - 0x9B, - 0xA4, - 0x53, - 0x42, - 0x42, - 0x43, - 0x69, - 0x70, - 0x63, - 0x42, - 0x66, - 0x7D, - 0x8E, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0x96, - 0x7B, - 0x2C, - 0x54, - 0x54, - 0x6F, - 0x54, - 0x42, - 0x4C, - 0x63, - 0x62, - 0x42, - 0x05, - 0x41, - 0x01, - 0x62, - 0x06, - 0x41, - 0x00, - 0x3F, - 0x53, - 0x41, - 0x62, - 0x42, - 0x62, - 0x41, - 0x41, - 0x53, - 0x37, - 0x40, - 0x40, - 0x37, - 0x53, - 0x27, - 0x37, - 0x40, - 0x37, - 0x40, - 0x41, - 0x37, - 0x41, - 0x37, - 0x41, - 0x37, - 0x37, - 0x40, - 0x35, - 0x40, - 0x37, - 0x70, - 0x54, - 0x2F, - 0x25, - 0x25, - 0x35, - 0x35, - 0x35, - 0x49, - 0x20, - 0x34, - 0x53, - 0x7B, - 0x8E, - 0x91, - 0xA0, - 0x9F, - 0x9F, - 0x9A, - 0x84, - 0x88, - 0x7C, - 0x33, - 0x39, - 0x1F, - 0x11, - 0x49, - 0x20, - 0x2D, - 0x2D, - 0x20, - 0x2D, - 0x20, - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE5, - 0xE6, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xF0, - 0xE6, - 0xDC, - 0xDC, - 0xDD, - 0xDC, - 0xDC, - 0xF0, - 0xEC, - 0xDC, - 0xEC, - 0xFA, - 0xD3, - 0xD3, - 0x22, - 0xB6, - 0xCF, - 0xEC, - 0xF5, - 0x05, - 0xC0, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x15, - 0x06, - 0xFF, - 0x77, - 0x74, - 0x7F, - 0x7D, - 0xDF, - 0xE4, - 0xDF, - 0xBB, - 0x75, - 0x7F, - 0x7F, - 0x6D, - 0x67, - 0x2C, - 0x0E, - 0x0E, - 0x4A, - 0x0E, - 0x2C, - 0x00, - 0x05, - 0x4A, - 0x01, - 0x2C, - 0x01, - 0x0E, - 0x05, - 0x4A, - 0x00, - 0x4D, - 0x4B, - 0x0E, - 0x18, - 0x1F, - 0x6D, - 0x74, - 0x8C, - 0x93, - 0x91, - 0x88, - 0x70, - 0x4B, - 0x55, - 0x55, - 0x14, - 0x1D, - 0x5F, - 0x75, - 0x84, - 0x93, - 0x95, - 0x90, - 0x66, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x2F, - 0x53, - 0x95, - 0x93, - 0x96, - 0x70, - 0x42, - 0x70, - 0x63, - 0x2F, - 0x75, - 0x93, - 0xA0, - 0x97, - 0x4C, - 0x71, - 0x43, - 0x63, - 0x27, - 0x90, - 0xA0, - 0xA0, - 0x8E, - 0x3E, - 0x71, - 0x63, - 0x63, - 0x53, - 0x95, - 0x9F, - 0xA6, - 0x71, - 0x69, - 0x87, - 0x71, - 0x62, - 0x75, - 0x9F, - 0x9F, - 0x97, - 0x63, - 0x71, - 0x71, - 0x71, - 0x37, - 0x90, - 0x9F, - 0xA6, - 0x8E, - 0x43, - 0x00, - 0x06, - 0x71, - 0x00, - 0x2D, - 0x69, - 0x71, - 0x69, - 0x87, - 0x71, - 0x87, - 0x43, - 0x43, - 0x42, - 0x62, - 0x42, - 0x71, - 0x15, - 0x6D, - 0x96, - 0x7D, - 0x6C, - 0x90, - 0x90, - 0x88, - 0x7C, - 0x39, - 0x2C, - 0x62, - 0x2C, - 0x2F, - 0x42, - 0x43, - 0x71, - 0x44, - 0x71, - 0x63, - 0x69, - 0x71, - 0x63, - 0x70, - 0x70, - 0x70, - 0x63, - 0x63, - 0x70, - 0x63, - 0x43, - 0x70, - 0x42, - 0x00, - 0x05, - 0x70, - 0x00, - 0x04, - 0x63, - 0x42, - 0x70, - 0x63, - 0x04, - 0x42, - 0x00, - 0x2C, - 0x71, - 0x63, - 0x59, - 0xA4, - 0x9B, - 0xA6, - 0x7C, - 0x41, - 0x42, - 0x42, - 0x8E, - 0xA6, - 0x9B, - 0x97, - 0x6E, - 0x54, - 0x70, - 0x54, - 0x63, - 0x43, - 0x71, - 0x63, - 0x63, - 0x42, - 0x54, - 0x66, - 0x8E, - 0xA4, - 0x9B, - 0x9B, - 0x94, - 0x7E, - 0x27, - 0x42, - 0x54, - 0x41, - 0x62, - 0x42, - 0x62, - 0x62, - 0x3E, - 0x3E, - 0x42, - 0x53, - 0x07, - 0x41, - 0x01, - 0x40, - 0x04, - 0x41, - 0x00, - 0x07, - 0x62, - 0x41, - 0x62, - 0x62, - 0x41, - 0x41, - 0x53, - 0x00, - 0x04, - 0x40, - 0x00, - 0x30, - 0x37, - 0x40, - 0x53, - 0x37, - 0x25, - 0x49, - 0x20, - 0x2C, - 0x20, - 0x2E, - 0x27, - 0x41, - 0x35, - 0x25, - 0x35, - 0x40, - 0x40, - 0x37, - 0x55, - 0x40, - 0x40, - 0x35, - 0x35, - 0x49, - 0x35, - 0x20, - 0x34, - 0x20, - 0x35, - 0x65, - 0x7D, - 0x90, - 0x95, - 0xA0, - 0x9A, - 0x9A, - 0x96, - 0x90, - 0x7B, - 0x56, - 0x1F, - 0x1F, - 0x24, - 0x2C, - 0x34, - 0x20, - 0x2D, - 0x20, - 0x00, - 0x00, - 0x00, - 0x03, - 0xD3, - 0xE5, - 0xE5, - 0x00, - 0x07, - 0xE6, - 0x00, - 0x11, - 0xF0, - 0xDC, - 0xDD, - 0xDC, - 0xDC, - 0xD3, - 0x79, - 0x6B, - 0x64, - 0x68, - 0x68, - 0x64, - 0x5B, - 0x5C, - 0x81, - 0xF5, - 0xEA, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x6B, - 0x75, - 0x7F, - 0x74, - 0xD4, - 0xDF, - 0x01, - 0x0B, - 0xDF, - 0xD6, - 0x75, - 0x7F, - 0x7F, - 0x7E, - 0x17, - 0x4A, - 0x14, - 0x0E, - 0x0E, - 0x14, - 0x5A, - 0x17, - 0x17, - 0x2C, - 0x17, - 0x4A, - 0x4A, - 0x0E, - 0x4A, - 0x0E, - 0x17, - 0x06, - 0x1D, - 0x60, - 0x77, - 0x7F, - 0x95, - 0x95, - 0x90, - 0x6C, - 0x55, - 0x15, - 0x4B, - 0x2D, - 0x13, - 0x33, - 0x6B, - 0x74, - 0x95, - 0x93, - 0x91, - 0x8E, - 0x70, - 0x16, - 0x55, - 0x2F, - 0x62, - 0x62, - 0x62, - 0x25, - 0x88, - 0x96, - 0xA0, - 0x8E, - 0x3E, - 0x63, - 0x42, - 0x42, - 0x52, - 0x91, - 0x93, - 0x96, - 0x7D, - 0x4C, - 0x71, - 0x69, - 0x3E, - 0x7B, - 0xA0, - 0xA0, - 0xA1, - 0x70, - 0x63, - 0x43, - 0x71, - 0x41, - 0x7F, - 0xA0, - 0xA6, - 0x94, - 0x63, - 0x71, - 0x71, - 0x43, - 0x53, - 0x95, - 0xA0, - 0xA6, - 0x7D, - 0x43, - 0x71, - 0x71, - 0x62, - 0x7B, - 0x9F, - 0x9F, - 0xA1, - 0x43, - 0x00, - 0x0B, - 0x71, - 0x00, - 0x25, - 0x3E, - 0x2D, - 0x48, - 0x60, - 0x6D, - 0x7C, - 0x7C, - 0x60, - 0x33, - 0xA6, - 0x7D, - 0xE1, - 0xD6, - 0xD9, - 0xBB, - 0x87, - 0xA3, - 0xA1, - 0x59, - 0x20, - 0x8D, - 0x89, - 0x1D, - 0xFF, - 0x5A, - 0x41, - 0x43, - 0x43, - 0x63, - 0x71, - 0x43, - 0x43, - 0x71, - 0x43, - 0x43, - 0x42, - 0x63, - 0x00, - 0x05, - 0x70, - 0x00, - 0x08, - 0x63, - 0x42, - 0x70, - 0x42, - 0x70, - 0x42, - 0x63, - 0x69, - 0x04, - 0x63, - 0x00, - 0x73, - 0x42, - 0x42, - 0x42, - 0x59, - 0xA4, - 0xA2, - 0xA4, - 0x65, - 0x41, - 0x70, - 0x41, - 0x8E, - 0xA6, - 0x9B, - 0x94, - 0x2D, - 0x2E, - 0x42, - 0x70, - 0x70, - 0x70, - 0x42, - 0x70, - 0x42, - 0x54, - 0x6F, - 0x41, - 0x66, - 0xA1, - 0x9B, - 0xA2, - 0xA1, - 0x65, - 0x61, - 0x42, - 0x42, - 0x41, - 0x41, - 0x41, - 0x2F, - 0x62, - 0x3E, - 0x62, - 0x2F, - 0x62, - 0x41, - 0x41, - 0x41, - 0x6E, - 0x41, - 0x37, - 0x37, - 0x41, - 0x41, - 0x41, - 0x53, - 0x40, - 0x37, - 0x40, - 0x2E, - 0x41, - 0x41, - 0x62, - 0x41, - 0x41, - 0x40, - 0x40, - 0x37, - 0x37, - 0x2C, - 0x39, - 0x33, - 0x8D, - 0x7C, - 0x77, - 0x7C, - 0x8D, - 0x48, - 0x35, - 0x52, - 0x40, - 0x27, - 0x52, - 0x40, - 0x35, - 0x35, - 0x40, - 0x35, - 0x49, - 0x35, - 0x25, - 0x49, - 0x35, - 0x49, - 0x35, - 0x49, - 0x20, - 0x24, - 0x2C, - 0x53, - 0x7B, - 0x8E, - 0x97, - 0x96, - 0x9F, - 0x9F, - 0xA0, - 0x90, - 0x75, - 0x6B, - 0x33, - 0x1F, - 0x39, - 0x24, - 0x48, - 0x00, - 0x00, - 0x00, - 0x00, - 0x39, - 0x80, - 0xE5, - 0xE6, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xDC, - 0xF0, - 0xDD, - 0xDC, - 0xF0, - 0xDC, - 0xDC, - 0xE6, - 0x5F, - 0x68, - 0x6A, - 0x77, - 0x6E, - 0x6F, - 0x6F, - 0x7B, - 0x6A, - 0x6A, - 0x6D, - 0x05, - 0xFB, - 0xFF, - 0xFF, - 0xFB, - 0xFF, - 0xFF, - 0x6D, - 0x74, - 0x74, - 0xB5, - 0xDF, - 0xF0, - 0xFC, - 0xF1, - 0xD5, - 0x87, - 0x73, - 0x84, - 0x65, - 0x17, - 0x0E, - 0x17, - 0x4A, - 0x5A, - 0x17, - 0x5A, - 0x17, - 0x17, - 0x17, - 0x4A, - 0x00, - 0x04, - 0x17, - 0x00, - 0x17, - 0x1D, - 0x1D, - 0x5F, - 0x75, - 0x84, - 0x8F, - 0x91, - 0x88, - 0x54, - 0x4A, - 0x15, - 0x15, - 0x13, - 0x1D, - 0x5C, - 0x77, - 0x84, - 0x93, - 0x95, - 0x90, - 0x6C, - 0x2F, - 0x55, - 0x00, - 0x04, - 0x62, - 0x00, - 0x4A, - 0x41, - 0x62, - 0x27, - 0x7C, - 0x95, - 0x93, - 0x91, - 0x54, - 0x62, - 0x70, - 0x42, - 0x2E, - 0x88, - 0x93, - 0xA0, - 0x94, - 0x2F, - 0x70, - 0x70, - 0x63, - 0x53, - 0x91, - 0xA0, - 0xA0, - 0x7D, - 0x63, - 0x43, - 0x71, - 0x62, - 0x7C, - 0xA0, - 0xA0, - 0xA1, - 0x66, - 0x43, - 0x43, - 0x69, - 0x40, - 0x90, - 0x9F, - 0x9F, - 0x94, - 0x69, - 0x87, - 0x69, - 0x71, - 0x53, - 0x95, - 0x9F, - 0xA6, - 0x7D, - 0x70, - 0x71, - 0x69, - 0x69, - 0x69, - 0x71, - 0x71, - 0x71, - 0x63, - 0x43, - 0x71, - 0x2F, - 0x6D, - 0x7B, - 0x91, - 0xA0, - 0x9B, - 0x9F, - 0x9F, - 0x91, - 0x97, - 0xA4, - 0x55, - 0x04, - 0xD2, - 0x00, - 0x23, - 0xD8, - 0x3E, - 0x69, - 0x69, - 0x59, - 0x8E, - 0x90, - 0x90, - 0x75, - 0x8D, - 0x39, - 0x67, - 0x63, - 0x69, - 0x43, - 0x70, - 0x70, - 0x63, - 0x63, - 0x70, - 0x70, - 0x63, - 0x71, - 0x70, - 0x63, - 0x42, - 0x70, - 0x70, - 0x70, - 0x63, - 0x70, - 0x63, - 0x70, - 0x42, - 0x42, - 0x00, - 0x04, - 0x63, - 0x00, - 0x73, - 0x70, - 0x63, - 0x70, - 0x62, - 0x6C, - 0xA6, - 0x9B, - 0xA4, - 0x53, - 0x42, - 0x43, - 0x2F, - 0x94, - 0x9B, - 0x9B, - 0x90, - 0x7C, - 0x52, - 0x2C, - 0x2D, - 0x41, - 0x42, - 0x42, - 0x54, - 0x54, - 0x42, - 0x54, - 0x41, - 0x41, - 0x8E, - 0xA6, - 0xA2, - 0x9B, - 0x88, - 0x49, - 0x27, - 0x36, - 0x41, - 0x41, - 0x6F, - 0x42, - 0x41, - 0x41, - 0x41, - 0x2F, - 0x62, - 0x2F, - 0x41, - 0x41, - 0x41, - 0x53, - 0x41, - 0x37, - 0x53, - 0x2E, - 0x27, - 0x41, - 0x41, - 0x37, - 0x40, - 0x37, - 0x40, - 0x40, - 0x41, - 0x37, - 0x40, - 0x41, - 0x55, - 0x1F, - 0x56, - 0x88, - 0x96, - 0x9F, - 0x9A, - 0x9F, - 0x9F, - 0xA0, - 0x90, - 0x52, - 0x20, - 0x52, - 0x25, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x49, - 0x49, - 0x35, - 0x49, - 0x35, - 0x35, - 0x35, - 0x25, - 0x25, - 0x35, - 0x49, - 0x34, - 0x34, - 0x20, - 0x20, - 0x14, - 0x20, - 0x53, - 0x7D, - 0x94, - 0x91, - 0xA0, - 0x9F, - 0xA0, - 0x93, - 0x90, - 0x7B, - 0x56, - 0x33, - 0x00, - 0x00, - 0x00, - 0x00, - 0xA2, - 0xA5, - 0xE5, - 0xE6, - 0xF0, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xE6, - 0xF0, - 0xDC, - 0xDD, - 0xF0, - 0xDC, - 0xEC, - 0x6B, - 0x68, - 0x7B, - 0xDF, - 0xDF, - 0xE7, - 0xE3, - 0xDF, - 0x71, - 0x75, - 0x74, - 0x6B, - 0xF5, - 0xFF, - 0xFB, - 0xFF, - 0xFB, - 0x06, - 0x06, - 0x77, - 0x7F, - 0x7F, - 0xB4, - 0xD9, - 0xE4, - 0xDA, - 0xB4, - 0x74, - 0x7F, - 0x7F, - 0x7E, - 0x17, - 0x4A, - 0x17, - 0x0E, - 0x0E, - 0x0E, - 0x4A, - 0x0E, - 0x17, - 0x5A, - 0x17, - 0x17, - 0x18, - 0x1D, - 0x39, - 0x6B, - 0x74, - 0x8C, - 0x95, - 0x90, - 0x6C, - 0x61, - 0x17, - 0x0E, - 0x4A, - 0x1D, - 0x58, - 0x56, - 0x74, - 0x8C, - 0x93, - 0x91, - 0x8E, - 0x54, - 0x4B, - 0x55, - 0x55, - 0x55, - 0x2F, - 0x62, - 0x3E, - 0x62, - 0x2F, - 0x62, - 0x15, - 0x88, - 0x95, - 0x93, - 0x8E, - 0x2F, - 0x42, - 0x62, - 0x2F, - 0x52, - 0x91, - 0x96, - 0x96, - 0x66, - 0x42, - 0x70, - 0x43, - 0x16, - 0x7B, - 0x9A, - 0x9A, - 0x97, - 0x42, - 0x43, - 0x63, - 0x69, - 0x37, - 0x90, - 0x9F, - 0x9F, - 0x7D, - 0x63, - 0x71, - 0x69, - 0x63, - 0x7B, - 0x96, - 0xA0, - 0xA4, - 0x66, - 0x71, - 0x71, - 0x69, - 0x41, - 0x88, - 0x9B, - 0xA6, - 0x94, - 0x63, - 0x71, - 0x71, - 0x69, - 0x69, - 0x87, - 0x69, - 0x63, - 0x69, - 0x43, - 0x71, - 0x62, - 0x7B, - 0xA0, - 0x9B, - 0xA6, - 0xA3, - 0x8E, - 0x98, - 0x8E, - 0x90, - 0xA2, - 0xA1, - 0xD8, - 0x04, - 0xD2, - 0x00, - 0x24, - 0xD9, - 0x70, - 0x69, - 0x69, - 0x0E, - 0xE4, - 0xE4, - 0x4C, - 0x87, - 0x8E, - 0xA1, - 0x88, - 0x2E, - 0x69, - 0x43, - 0x69, - 0x63, - 0x69, - 0x70, - 0x63, - 0x70, - 0x63, - 0x43, - 0x43, - 0x63, - 0x63, - 0x43, - 0x63, - 0x70, - 0x42, - 0x70, - 0x42, - 0x42, - 0x42, - 0x70, - 0x70, - 0x05, - 0x42, - 0x00, - 0x2B, - 0x63, - 0x70, - 0x3E, - 0x85, - 0xA6, - 0x9B, - 0xA1, - 0x52, - 0x42, - 0x70, - 0x42, - 0x94, - 0x9B, - 0x9B, - 0x9B, - 0xA0, - 0x90, - 0x7B, - 0x6D, - 0x60, - 0x49, - 0x41, - 0x42, - 0x54, - 0x42, - 0x54, - 0x41, - 0x2F, - 0x59, - 0xA1, - 0xA2, - 0xA2, - 0x91, - 0x8D, - 0x2D, - 0x41, - 0x41, - 0x42, - 0x42, - 0x63, - 0x63, - 0x62, - 0x6F, - 0x00, - 0x06, - 0x41, - 0x00, - 0x0C, - 0x6E, - 0x41, - 0x40, - 0x37, - 0x37, - 0x40, - 0x40, - 0x40, - 0x37, - 0x37, - 0x2E, - 0x37, - 0x04, - 0x40, - 0x00, - 0x30, - 0x24, - 0x88, - 0x9B, - 0x9F, - 0x94, - 0x98, - 0xC6, - 0xB4, - 0xA3, - 0x96, - 0x9B, - 0x95, - 0x40, - 0x25, - 0x40, - 0x35, - 0x35, - 0x25, - 0x49, - 0x35, - 0x35, - 0x40, - 0x40, - 0x40, - 0x20, - 0x49, - 0x35, - 0x49, - 0x35, - 0x49, - 0x35, - 0x20, - 0x34, - 0x34, - 0x34, - 0x20, - 0x2C, - 0x11, - 0x20, - 0x40, - 0x65, - 0x88, - 0x90, - 0x95, - 0xA0, - 0x9A, - 0xA0, - 0x91, - 0x00, - 0x00, - 0x00, - 0x1D, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xE5, - 0xE5, - 0xE6, - 0xF0, - 0xDC, - 0xDC, - 0xDC, - 0xF0, - 0xDC, - 0xF0, - 0xEC, - 0x6B, - 0x68, - 0x7B, - 0xD5, - 0xE9, - 0xF6, - 0xFC, - 0xE9, - 0xD4, - 0x7B, - 0x74, - 0x74, - 0xA5, - 0xEA, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x80, - 0xFB, - 0x06, - 0x52, - 0x75, - 0x74, - 0x7F, - 0x7F, - 0x7F, - 0x73, - 0x7F, - 0x7F, - 0x53, - 0x18, - 0x02, - 0x5A, - 0x17, - 0x5A, - 0x17, - 0x17, - 0x0E, - 0x0E, - 0x17, - 0x0E, - 0x06, - 0x1D, - 0x5C, - 0x77, - 0x7A, - 0x8C, - 0x91, - 0x88, - 0x70, - 0x4A, - 0x0E, - 0x17, - 0x13, - 0x1D, - 0x33, - 0x77, - 0x7F, - 0x8F, - 0x95, - 0x90, - 0x7D, - 0x6E, - 0x15, - 0x4B, - 0x55, - 0x3E, - 0x3E, - 0x3E, - 0x55, - 0x62, - 0x2F, - 0x55, - 0x2F, - 0x15, - 0x7C, - 0x8C, - 0x93, - 0x91, - 0x62, - 0x62, - 0x42, - 0x42, - 0x15, - 0x88, - 0x93, - 0xA0, - 0x94, - 0x2F, - 0x42, - 0x63, - 0x42, - 0x52, - 0x91, - 0xA0, - 0x96, - 0x59, - 0x63, - 0x70, - 0x43, - 0x41, - 0x7B, - 0xA0, - 0x9F, - 0x97, - 0x70, - 0x43, - 0x63, - 0x43, - 0x40, - 0x90, - 0x9F, - 0x9F, - 0x8E, - 0x63, - 0x43, - 0x71, - 0x42, - 0x65, - 0xA0, - 0x9F, - 0xA4, - 0x71, - 0x71, - 0x69, - 0x87, - 0x69, - 0x71, - 0x69, - 0x43, - 0x69, - 0x69, - 0x71, - 0x43, - 0x6E, - 0x91, - 0xA6, - 0xA6, - 0x85, - 0x42, - 0x63, - 0x2F, - 0x1F, - 0x96, - 0x7D, - 0xC6, - 0x04, - 0xD2, - 0x00, - 0x1C, - 0xD7, - 0x63, - 0x69, - 0x71, - 0x2E, - 0xE8, - 0xD2, - 0xD2, - 0xD2, - 0xD5, - 0xE4, - 0x6D, - 0x9B, - 0x59, - 0x62, - 0x70, - 0x70, - 0x43, - 0x43, - 0x63, - 0x43, - 0x43, - 0x63, - 0x63, - 0x63, - 0x42, - 0x63, - 0x42, - 0x04, - 0x63, - 0x00, - 0x41, - 0x42, - 0x42, - 0x70, - 0x70, - 0x42, - 0x70, - 0x42, - 0x62, - 0x42, - 0x63, - 0x42, - 0x42, - 0x63, - 0x2F, - 0x8E, - 0xA6, - 0x9B, - 0x90, - 0x6E, - 0x42, - 0x42, - 0x42, - 0x7D, - 0x94, - 0xA1, - 0xA4, - 0x9B, - 0x9B, - 0x9B, - 0x96, - 0x88, - 0x7C, - 0x2D, - 0x54, - 0x54, - 0x62, - 0x54, - 0x6F, - 0x41, - 0x41, - 0x94, - 0xA6, - 0xA2, - 0xA6, - 0x88, - 0x49, - 0x2E, - 0x36, - 0x41, - 0x54, - 0x41, - 0x42, - 0x62, - 0x41, - 0x62, - 0x41, - 0x41, - 0x53, - 0x27, - 0x41, - 0x40, - 0x37, - 0x2E, - 0x40, - 0x37, - 0x00, - 0x08, - 0x40, - 0x00, - 0x11, - 0x37, - 0x20, - 0x7B, - 0x9B, - 0xA0, - 0x85, - 0xD6, - 0xD9, - 0xBB, - 0xD9, - 0xD8, - 0xA3, - 0xA6, - 0x9F, - 0x65, - 0x25, - 0x37, - 0x00, - 0x05, - 0x35, - 0x00, - 0x1C, - 0x49, - 0x35, - 0x40, - 0x27, - 0x40, - 0x37, - 0x35, - 0x35, - 0x34, - 0x34, - 0x35, - 0x34, - 0x34, - 0x20, - 0x49, - 0x34, - 0x34, - 0x48, - 0x20, - 0x24, - 0x05, - 0xEA, - 0x05, - 0x58, - 0x7C, - 0x88, - 0x91, - 0x96, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE6, - 0xE6, - 0xE6, - 0xE5, - 0x05, - 0xE6, - 0x00, - 0x16, - 0xF0, - 0xCB, - 0xE6, - 0xEC, - 0xDD, - 0xDC, - 0xFF, - 0x64, - 0x68, - 0x85, - 0xD6, - 0xEF, - 0xF0, - 0xE3, - 0xD6, - 0x77, - 0x68, - 0x74, - 0x1D, - 0xEA, - 0xFF, - 0xFB, - 0x04, - 0xFF, - 0x00, - 0x0A, - 0x05, - 0x6B, - 0x73, - 0x7F, - 0x75, - 0x7B, - 0x7B, - 0x6E, - 0x2C, - 0x18, - 0x04, - 0x17, - 0x00, - 0x1E, - 0x01, - 0x17, - 0x5A, - 0x5A, - 0x5A, - 0x18, - 0x67, - 0x5F, - 0x74, - 0x84, - 0x8C, - 0x90, - 0x6C, - 0x4A, - 0x17, - 0x17, - 0x17, - 0x18, - 0x1D, - 0x60, - 0x74, - 0x84, - 0x8F, - 0x91, - 0x88, - 0x54, - 0x2D, - 0x15, - 0x4B, - 0x0B, - 0x04, - 0x55, - 0x00, - 0x4D, - 0x3E, - 0x55, - 0x3E, - 0x3E, - 0x3E, - 0x2C, - 0x5F, - 0x7F, - 0x95, - 0xA0, - 0x8E, - 0x2F, - 0x42, - 0x63, - 0x2F, - 0x6D, - 0x91, - 0x93, - 0x95, - 0x66, - 0x3E, - 0x63, - 0x4C, - 0x2E, - 0x75, - 0xA0, - 0xA0, - 0x94, - 0x2F, - 0x63, - 0x70, - 0x63, - 0x6E, - 0x91, - 0xA0, - 0xA0, - 0x59, - 0x63, - 0x63, - 0x71, - 0x42, - 0x7B, - 0xA0, - 0x9F, - 0x97, - 0x70, - 0x63, - 0x71, - 0x71, - 0x53, - 0x90, - 0x9F, - 0xA6, - 0x8E, - 0x63, - 0x63, - 0x71, - 0x87, - 0x71, - 0x44, - 0x69, - 0x69, - 0x71, - 0x71, - 0x71, - 0x2E, - 0x88, - 0x9F, - 0x9B, - 0x94, - 0x42, - 0x43, - 0x43, - 0x2D, - 0x90, - 0x97, - 0x00, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x07, - 0xC2, - 0x4C, - 0x43, - 0x69, - 0x42, - 0xDB, - 0xD8, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x07, - 0x0B, - 0x97, - 0xA3, - 0x42, - 0x43, - 0x70, - 0x63, - 0x00, - 0x04, - 0x70, - 0x05, - 0x63, - 0x00, - 0x09, - 0x70, - 0x42, - 0x42, - 0x42, - 0x63, - 0x70, - 0x63, - 0x63, - 0x71, - 0x00, - 0x05, - 0x42, - 0x00, - 0x2B, - 0x70, - 0x63, - 0x63, - 0x63, - 0x70, - 0x42, - 0x41, - 0x8E, - 0xA6, - 0x9B, - 0x94, - 0x55, - 0x43, - 0x42, - 0x54, - 0x41, - 0x54, - 0x66, - 0x7D, - 0x94, - 0xA1, - 0xA6, - 0xA2, - 0x9B, - 0x88, - 0x49, - 0x41, - 0x54, - 0x54, - 0x54, - 0x41, - 0x54, - 0x41, - 0x6C, - 0xA1, - 0x9B, - 0x9B, - 0x97, - 0x8D, - 0x48, - 0x48, - 0x49, - 0x2E, - 0x00, - 0x06, - 0x41, - 0x01, - 0x62, - 0x04, - 0x41, - 0x00, - 0x3D, - 0x37, - 0x40, - 0x53, - 0x27, - 0x37, - 0x40, - 0x37, - 0x37, - 0x40, - 0x40, - 0x40, - 0x35, - 0x49, - 0x91, - 0xA6, - 0xA1, - 0xD5, - 0xD9, - 0x08, - 0x07, - 0xEA, - 0xD5, - 0xA7, - 0xA0, - 0xA4, - 0x6D, - 0x1F, - 0x2B, - 0x24, - 0x20, - 0x11, - 0x24, - 0x2B, - 0x1F, - 0x1F, - 0x39, - 0x39, - 0x1D, - 0x39, - 0x1F, - 0x39, - 0x58, - 0x33, - 0x1F, - 0x1F, - 0x48, - 0x34, - 0x34, - 0x20, - 0x34, - 0x34, - 0x20, - 0x29, - 0xE4, - 0xD2, - 0xD7, - 0xE4, - 0xDB, - 0xEA, - 0x19, - 0x33, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0xE5, - 0xE6, - 0xE6, - 0xE5, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xF0, - 0xCB, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xEC, - 0xEC, - 0x81, - 0x6B, - 0x64, - 0x75, - 0x8E, - 0xBB, - 0x85, - 0x75, - 0x6A, - 0x74, - 0x77, - 0x05, - 0xF5, - 0xC0, - 0xFF, - 0xEA, - 0xFF, - 0xFF, - 0xFF, - 0x1D, - 0x74, - 0x7F, - 0x7F, - 0x48, - 0xFB, - 0x06, - 0x06, - 0x00, - 0x05, - 0x17, - 0x00, - 0x7A, - 0x01, - 0x5A, - 0x18, - 0x5A, - 0x5A, - 0x18, - 0x18, - 0x56, - 0x84, - 0x84, - 0x90, - 0x7C, - 0x17, - 0x01, - 0x17, - 0x01, - 0x1D, - 0x39, - 0x6B, - 0x7F, - 0x8C, - 0x8C, - 0x90, - 0x7B, - 0x61, - 0x15, - 0x4B, - 0x15, - 0x4B, - 0x4B, - 0x55, - 0x55, - 0x55, - 0x0B, - 0x3E, - 0x55, - 0x2F, - 0x55, - 0x2B, - 0x60, - 0x74, - 0x8F, - 0x93, - 0x95, - 0x8E, - 0x2F, - 0x2F, - 0x62, - 0x42, - 0x2D, - 0x88, - 0x93, - 0xA0, - 0x8E, - 0x2F, - 0x42, - 0x63, - 0x42, - 0x53, - 0x95, - 0xA0, - 0x96, - 0x66, - 0x42, - 0x42, - 0x63, - 0x2E, - 0x75, - 0x9A, - 0xA0, - 0x94, - 0x63, - 0x63, - 0x71, - 0x63, - 0x52, - 0x91, - 0xA0, - 0xA0, - 0x59, - 0x63, - 0x43, - 0x43, - 0x2F, - 0x7B, - 0x9F, - 0x9F, - 0x97, - 0x42, - 0x63, - 0x43, - 0x43, - 0x43, - 0x70, - 0x63, - 0x69, - 0x69, - 0x71, - 0x87, - 0x4C, - 0x65, - 0xA0, - 0x9F, - 0xA4, - 0x71, - 0x63, - 0x66, - 0x63, - 0x70, - 0xA6, - 0x88, - 0xE8, - 0xC6, - 0xD4, - 0xD2, - 0xD2, - 0xBB, - 0x63, - 0x69, - 0x43, - 0x01, - 0xC6, - 0x04, - 0xD2, - 0x00, - 0x1A, - 0x8A, - 0x90, - 0xA6, - 0x7C, - 0x48, - 0x49, - 0x40, - 0x62, - 0x63, - 0x43, - 0x43, - 0x70, - 0x42, - 0x42, - 0x42, - 0x70, - 0x63, - 0x42, - 0x42, - 0x42, - 0x63, - 0x42, - 0x42, - 0x70, - 0x42, - 0x63, - 0x04, - 0x42, - 0x01, - 0x62, - 0x05, - 0x42, - 0x00, - 0x33, - 0x70, - 0x43, - 0x2F, - 0x94, - 0x9B, - 0x9B, - 0x88, - 0x48, - 0x2C, - 0x40, - 0x42, - 0x70, - 0x70, - 0x42, - 0x54, - 0x54, - 0x66, - 0xA3, - 0xA2, - 0x9B, - 0x97, - 0x53, - 0x2E, - 0x42, - 0x6F, - 0x54, - 0x41, - 0x41, - 0x41, - 0x54, - 0x94, - 0xA6, - 0x9B, - 0x9F, - 0xA1, - 0x8E, - 0x6D, - 0x34, - 0x48, - 0x2C, - 0x25, - 0x37, - 0x53, - 0x41, - 0x40, - 0x27, - 0x41, - 0x62, - 0x41, - 0x2F, - 0x37, - 0x00, - 0x0A, - 0x40, - 0x00, - 0x1B, - 0x35, - 0x97, - 0x9F, - 0x96, - 0xAD, - 0xD8, - 0xE4, - 0xE4, - 0xD8, - 0xAD, - 0xA0, - 0xA0, - 0xA0, - 0x96, - 0x91, - 0x75, - 0x56, - 0x4F, - 0x5C, - 0x5C, - 0x5F, - 0x6B, - 0x77, - 0x75, - 0x74, - 0x7F, - 0x90, - 0x00, - 0x04, - 0x91, - 0x00, - 0x0A, - 0x88, - 0x6D, - 0x33, - 0x1F, - 0x1F, - 0x24, - 0x24, - 0x20, - 0x05, - 0xDA, - 0x05, - 0xD2, - 0x00, - 0x03, - 0xD8, - 0xDA, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x01, - 0xE5, - 0x06, - 0xE6, - 0x00, - 0x03, - 0xE5, - 0xE6, - 0xE6, - 0x00, - 0x06, - 0xDC, - 0x00, - 0x0E, - 0xF0, - 0xEC, - 0x5F, - 0x68, - 0x68, - 0x68, - 0x64, - 0x64, - 0x77, - 0x60, - 0xC0, - 0xEA, - 0xC0, - 0xEA, - 0x04, - 0xFF, - 0x00, - 0x0D, - 0xC0, - 0x56, - 0x74, - 0x7F, - 0x75, - 0x06, - 0x18, - 0x67, - 0x18, - 0x18, - 0x18, - 0x5A, - 0x18, - 0x00, - 0x04, - 0x17, - 0x00, - 0x76, - 0x18, - 0x18, - 0x18, - 0x1D, - 0x75, - 0x84, - 0x84, - 0x7C, - 0x06, - 0x18, - 0x5A, - 0x18, - 0x58, - 0x64, - 0x84, - 0x8C, - 0x91, - 0x88, - 0x6F, - 0x4A, - 0x14, - 0x4A, - 0x4B, - 0x61, - 0x4B, - 0x2E, - 0x2E, - 0x2E, - 0x4B, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x0E, - 0x48, - 0x75, - 0x8C, - 0x93, - 0x95, - 0x94, - 0x70, - 0x55, - 0x62, - 0x62, - 0x63, - 0x62, - 0x3F, - 0x95, - 0x93, - 0x95, - 0x70, - 0x3E, - 0x63, - 0x63, - 0x2F, - 0x88, - 0xA0, - 0xA0, - 0x8E, - 0x2F, - 0x42, - 0x70, - 0x42, - 0x6D, - 0x95, - 0xA0, - 0x96, - 0x66, - 0x63, - 0x43, - 0x69, - 0x2F, - 0x88, - 0xA0, - 0x9F, - 0x94, - 0x62, - 0x43, - 0x43, - 0x63, - 0x7C, - 0x95, - 0x9F, - 0xA0, - 0x59, - 0x63, - 0x66, - 0x70, - 0x63, - 0x43, - 0x63, - 0x43, - 0x63, - 0x63, - 0x43, - 0x63, - 0x40, - 0x91, - 0x9F, - 0xA6, - 0x85, - 0x69, - 0x70, - 0x43, - 0x70, - 0x69, - 0x7D, - 0xA1, - 0x97, - 0x90, - 0x6C, - 0x62, - 0xE8, - 0x13, - 0x63, - 0x55, - 0x4B, - 0xE4, - 0x04, - 0xD2, - 0x00, - 0x13, - 0xD7, - 0x90, - 0xA6, - 0xA6, - 0x9F, - 0x96, - 0x90, - 0x7B, - 0x60, - 0x48, - 0x49, - 0x40, - 0x62, - 0x42, - 0x43, - 0x70, - 0x42, - 0x42, - 0x70, - 0x00, - 0x07, - 0x42, - 0x00, - 0x41, - 0x6F, - 0x42, - 0x42, - 0x62, - 0x42, - 0x42, - 0x42, - 0x70, - 0x42, - 0x6F, - 0x42, - 0x42, - 0x42, - 0x54, - 0x41, - 0x94, - 0x9B, - 0x9B, - 0x96, - 0x90, - 0x7C, - 0x60, - 0x34, - 0x2D, - 0x2E, - 0x63, - 0x63, - 0x42, - 0x36, - 0x94, - 0xA6, - 0x9B, - 0xA6, - 0x7B, - 0x2E, - 0x42, - 0x42, - 0x42, - 0x62, - 0x41, - 0x37, - 0x27, - 0x6C, - 0x97, - 0xA4, - 0xA6, - 0x9B, - 0x9B, - 0xA0, - 0x91, - 0x88, - 0x60, - 0x34, - 0x48, - 0x2C, - 0x35, - 0x53, - 0x53, - 0x41, - 0x40, - 0x41, - 0x41, - 0x40, - 0x41, - 0x41, - 0x00, - 0x05, - 0x40, - 0x00, - 0x2B, - 0x52, - 0x40, - 0x2E, - 0x54, - 0x91, - 0x9F, - 0x9F, - 0xA6, - 0xAA, - 0xA2, - 0x9B, - 0xA0, - 0x97, - 0x8E, - 0x90, - 0xA1, - 0x9F, - 0x9F, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0x9A, - 0x96, - 0x96, - 0x95, - 0xA1, - 0x91, - 0x90, - 0x90, - 0x90, - 0x91, - 0x96, - 0x9F, - 0x9F, - 0x95, - 0x84, - 0x75, - 0x60, - 0x33, - 0x39, - 0xEE, - 0xD8, - 0x00, - 0x08, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x0B, - 0xE6, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xEC, - 0xE6, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x1D, - 0xEC, - 0xDD, - 0xF9, - 0x6B, - 0x68, - 0x74, - 0x60, - 0xF5, - 0xFF, - 0xEA, - 0xEA, - 0xF5, - 0xC0, - 0xC0, - 0xC0, - 0xFF, - 0xEA, - 0xFF, - 0x05, - 0x05, - 0x77, - 0x7F, - 0x7F, - 0x6D, - 0xFB, - 0x67, - 0x06, - 0x18, - 0x67, - 0x00, - 0x09, - 0x18, - 0x00, - 0x8B, - 0x01, - 0x48, - 0x7F, - 0x84, - 0x90, - 0x5A, - 0x18, - 0x5A, - 0x17, - 0x06, - 0x75, - 0x91, - 0x95, - 0x88, - 0x49, - 0x5A, - 0x17, - 0x4B, - 0x4B, - 0x0B, - 0x4B, - 0x15, - 0x4B, - 0x2D, - 0x4B, - 0x4B, - 0x2E, - 0x16, - 0x55, - 0x14, - 0x58, - 0x77, - 0x84, - 0x93, - 0x95, - 0x90, - 0x66, - 0x2E, - 0x55, - 0x2F, - 0x41, - 0x2F, - 0x62, - 0x25, - 0x88, - 0x93, - 0x93, - 0x8E, - 0x2F, - 0x42, - 0x42, - 0x42, - 0x2F, - 0x8E, - 0x9A, - 0x96, - 0x66, - 0x62, - 0x63, - 0x42, - 0x2E, - 0x88, - 0xA0, - 0x9F, - 0x8E, - 0x2F, - 0x70, - 0x63, - 0x42, - 0x6D, - 0x95, - 0xA0, - 0x96, - 0x71, - 0x69, - 0x71, - 0x71, - 0x40, - 0x88, - 0x9F, - 0x9F, - 0x8E, - 0x4C, - 0x69, - 0x69, - 0x69, - 0x43, - 0x63, - 0x63, - 0x43, - 0x70, - 0x43, - 0x43, - 0x2E, - 0x88, - 0x9F, - 0x9F, - 0x94, - 0x63, - 0x71, - 0x69, - 0x71, - 0x70, - 0x70, - 0x4C, - 0x63, - 0x71, - 0x85, - 0xA3, - 0x97, - 0x97, - 0x7D, - 0x14, - 0x39, - 0x05, - 0xD9, - 0xD8, - 0xD2, - 0xD2, - 0xD8, - 0x17, - 0xA1, - 0xA3, - 0x8E, - 0xA3, - 0xA4, - 0x9B, - 0x9B, - 0x9B, - 0x95, - 0x90, - 0x7C, - 0x60, - 0x60, - 0x49, - 0x40, - 0x41, - 0x70, - 0x63, - 0x00, - 0x06, - 0x42, - 0x00, - 0x7A, - 0x62, - 0x42, - 0x62, - 0x6F, - 0x54, - 0x62, - 0x42, - 0x42, - 0x41, - 0x41, - 0x42, - 0x63, - 0x4C, - 0x3E, - 0x42, - 0x62, - 0x41, - 0x8E, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x6D, - 0x60, - 0x40, - 0x42, - 0x42, - 0x2F, - 0x7D, - 0xA4, - 0x9B, - 0x9B, - 0x90, - 0x7E, - 0x2E, - 0x42, - 0x43, - 0x41, - 0x41, - 0x41, - 0x27, - 0x37, - 0x36, - 0x66, - 0x8E, - 0xA3, - 0xA4, - 0x9B, - 0x9B, - 0x9F, - 0x96, - 0x90, - 0x7B, - 0x60, - 0x48, - 0x11, - 0x20, - 0x35, - 0x41, - 0x37, - 0x40, - 0x27, - 0x27, - 0x41, - 0x41, - 0x41, - 0x40, - 0x35, - 0x40, - 0x40, - 0x37, - 0x35, - 0x37, - 0x7D, - 0x94, - 0x97, - 0xA1, - 0x97, - 0x8E, - 0x65, - 0x35, - 0x20, - 0x20, - 0x52, - 0x65, - 0x88, - 0x7D, - 0x75, - 0x57, - 0x65, - 0x53, - 0x53, - 0x52, - 0x35, - 0x35, - 0x48, - 0x20, - 0x24, - 0x24, - 0x35, - 0x53, - 0x88, - 0x90, - 0x91, - 0xA0, - 0xA0, - 0x93, - 0x91, - 0x7F, - 0x6D, - 0x33, - 0x4A, - 0xE1, - 0xC6, - 0xD8, - 0xD2, - 0xD2, - 0xD2, - 0xAD, - 0x00, - 0x00, - 0x04, - 0xE6, - 0x01, - 0xE5, - 0x04, - 0xE6, - 0x00, - 0x0D, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0x81, - 0x64, - 0x68, - 0x68, - 0xC0, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x12, - 0xC0, - 0xEA, - 0xEA, - 0xC0, - 0xF5, - 0xFF, - 0xFF, - 0xEA, - 0x58, - 0x74, - 0x7F, - 0x7F, - 0x67, - 0xFF, - 0x06, - 0x67, - 0x67, - 0x06, - 0x09, - 0x18, - 0x00, - 0x12, - 0xFF, - 0x64, - 0x84, - 0x84, - 0x7B, - 0x18, - 0x17, - 0x18, - 0x06, - 0x60, - 0x84, - 0x91, - 0x90, - 0x4A, - 0x18, - 0x17, - 0x5A, - 0x17, - 0x04, - 0x4A, - 0x00, - 0x79, - 0x2D, - 0x2D, - 0x61, - 0x61, - 0x4B, - 0x4A, - 0x58, - 0x6B, - 0x84, - 0x95, - 0x93, - 0x97, - 0x6C, - 0x55, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x41, - 0x62, - 0x2E, - 0x6D, - 0x95, - 0x95, - 0x91, - 0x41, - 0x2F, - 0x62, - 0x62, - 0x62, - 0x55, - 0x7D, - 0xA0, - 0x93, - 0x7D, - 0x2F, - 0x63, - 0x63, - 0x65, - 0x93, - 0xA0, - 0x97, - 0x62, - 0x42, - 0x70, - 0x70, - 0x25, - 0x90, - 0xA0, - 0xA0, - 0x7D, - 0x3E, - 0x71, - 0x71, - 0x3E, - 0x7B, - 0xA0, - 0xA0, - 0xA1, - 0x70, - 0x63, - 0x63, - 0x69, - 0x69, - 0x63, - 0x43, - 0x71, - 0x43, - 0x43, - 0x63, - 0x42, - 0x7C, - 0xA0, - 0xA6, - 0xA4, - 0x66, - 0x63, - 0x70, - 0x43, - 0x43, - 0x70, - 0x63, - 0x69, - 0x63, - 0x69, - 0x63, - 0x4C, - 0x63, - 0x87, - 0x71, - 0x66, - 0x97, - 0xA1, - 0x94, - 0x7D, - 0x63, - 0xE1, - 0x01, - 0x90, - 0xA7, - 0x63, - 0x63, - 0x4C, - 0x71, - 0x87, - 0x8E, - 0xA3, - 0xA6, - 0xA2, - 0x9B, - 0x9B, - 0xA1, - 0x90, - 0x7B, - 0x60, - 0x2B, - 0x2C, - 0x25, - 0x2F, - 0x70, - 0x70, - 0x00, - 0x07, - 0x42, - 0x00, - 0x25, - 0x2F, - 0x42, - 0x62, - 0x42, - 0x6F, - 0x42, - 0x62, - 0x42, - 0x63, - 0x63, - 0x63, - 0x42, - 0x3E, - 0x42, - 0x66, - 0x7D, - 0x94, - 0xA4, - 0xA2, - 0xA2, - 0x9B, - 0xA0, - 0x88, - 0x49, - 0x41, - 0x54, - 0x62, - 0x54, - 0x94, - 0xA2, - 0x9B, - 0x96, - 0x7B, - 0x48, - 0x25, - 0x41, - 0x54, - 0x00, - 0x04, - 0x41, - 0x00, - 0x4C, - 0x37, - 0x40, - 0x27, - 0x54, - 0x66, - 0x8E, - 0x97, - 0xA4, - 0x9B, - 0x9B, - 0x9F, - 0x91, - 0x90, - 0x7B, - 0x60, - 0x2B, - 0x24, - 0x15, - 0x40, - 0x40, - 0x37, - 0x40, - 0x41, - 0x40, - 0x40, - 0x40, - 0x25, - 0x40, - 0x40, - 0x25, - 0x20, - 0x49, - 0x2E, - 0x40, - 0x40, - 0x25, - 0x49, - 0x25, - 0x49, - 0x35, - 0x49, - 0x20, - 0x34, - 0x20, - 0x2C, - 0x2C, - 0x34, - 0x24, - 0x34, - 0x48, - 0x34, - 0x20, - 0x34, - 0x34, - 0x20, - 0x34, - 0x34, - 0x24, - 0x24, - 0x24, - 0x35, - 0x3F, - 0x88, - 0x90, - 0x95, - 0x9A, - 0x9A, - 0x93, - 0x90, - 0x75, - 0x6D, - 0x2B, - 0x0E, - 0xE4, - 0xE1, - 0x52, - 0x00, - 0x00, - 0x00, - 0x47, - 0xE5, - 0xE5, - 0xE6, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xE6, - 0xDC, - 0xE6, - 0xDC, - 0xE6, - 0xDC, - 0xDC, - 0xEC, - 0xE6, - 0x79, - 0x68, - 0x6A, - 0x6B, - 0xEC, - 0xEA, - 0xF5, - 0xD1, - 0xF5, - 0xC0, - 0xF5, - 0xF5, - 0xC0, - 0xC0, - 0xEA, - 0xF9, - 0x04, - 0x6D, - 0x74, - 0x7F, - 0x77, - 0x05, - 0xFF, - 0xC4, - 0xFF, - 0x06, - 0x67, - 0x06, - 0x67, - 0x18, - 0x06, - 0x06, - 0x06, - 0xC4, - 0x18, - 0x06, - 0x58, - 0x74, - 0x84, - 0x84, - 0x2C, - 0x06, - 0xDB, - 0x17, - 0x01, - 0x77, - 0x84, - 0x8C, - 0x7B, - 0x06, - 0x5A, - 0x5A, - 0x17, - 0x17, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x4D, - 0x2D, - 0x15, - 0x4A, - 0x1D, - 0x56, - 0x7F, - 0x8C, - 0x93, - 0x91, - 0x7D, - 0x55, - 0x16, - 0x2E, - 0x55, - 0x41, - 0x55, - 0x55, - 0x55, - 0x2E, - 0x49, - 0x88, - 0x93, - 0xA0, - 0x7D, - 0x55, - 0x41, - 0x62, - 0x62, - 0x62, - 0x2F, - 0x54, - 0x95, - 0xA0, - 0x90, - 0x2E, - 0x63, - 0x62, - 0x54, - 0x91, - 0x9A, - 0x90, - 0x62, - 0x63, - 0x42, - 0x2F, - 0x7B, - 0x9A, - 0xA0, - 0xA1, - 0x42, - 0x42, - 0x70, - 0x43, - 0x52, - 0x90, - 0x9F, - 0xA0, - 0x7D, - 0x42, - 0x43, - 0x43, - 0x70, - 0x63, - 0x43, - 0x70, - 0x63, - 0x63, - 0x71, - 0x43, - 0x40, - 0x90, - 0x9F, - 0x9B, - 0x7D, - 0x42, - 0x63, - 0x70, - 0x00, - 0x08, - 0x63, - 0x00, - 0x51, - 0x69, - 0x42, - 0x63, - 0x70, - 0x63, - 0x63, - 0x71, - 0x85, - 0x94, - 0x97, - 0x90, - 0x97, - 0xA7, - 0x71, - 0x42, - 0x63, - 0x63, - 0x4C, - 0x63, - 0x3E, - 0x63, - 0x69, - 0x7D, - 0x8E, - 0x97, - 0xA6, - 0x9B, - 0x9B, - 0x9F, - 0x91, - 0x90, - 0x7B, - 0x60, - 0x58, - 0x49, - 0x40, - 0x41, - 0x54, - 0x63, - 0x63, - 0x63, - 0x42, - 0x6F, - 0x62, - 0x54, - 0x62, - 0x42, - 0x42, - 0x42, - 0x41, - 0x41, - 0x41, - 0x62, - 0x62, - 0x63, - 0x42, - 0x41, - 0x41, - 0x27, - 0x54, - 0x66, - 0x7D, - 0xA3, - 0xA6, - 0x9B, - 0x90, - 0x35, - 0x2F, - 0x53, - 0x41, - 0x41, - 0x7D, - 0xA4, - 0x9B, - 0x9F, - 0x90, - 0x6D, - 0x58, - 0x48, - 0x20, - 0x40, - 0x00, - 0x04, - 0x41, - 0x00, - 0x4A, - 0x53, - 0x37, - 0x37, - 0x40, - 0x37, - 0x54, - 0x6C, - 0x8E, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x77, - 0x48, - 0x2B, - 0x11, - 0x2D, - 0x35, - 0x40, - 0x25, - 0x52, - 0x40, - 0x40, - 0x40, - 0x35, - 0x52, - 0x25, - 0x35, - 0x25, - 0x25, - 0x25, - 0x40, - 0x40, - 0x25, - 0x25, - 0x35, - 0x20, - 0x49, - 0x35, - 0x35, - 0x35, - 0x20, - 0x49, - 0x20, - 0x34, - 0x34, - 0x34, - 0x20, - 0x34, - 0x34, - 0x48, - 0x20, - 0x34, - 0x34, - 0x34, - 0x24, - 0x24, - 0x24, - 0x2C, - 0x53, - 0x65, - 0x8E, - 0x91, - 0x93, - 0xA0, - 0x93, - 0x91, - 0x7F, - 0x64, - 0x5C, - 0x39, - 0x00, - 0x00, - 0x00, - 0x04, - 0xE5, - 0xE6, - 0xE5, - 0xE5, - 0x05, - 0xE6, - 0x00, - 0x0D, - 0xDC, - 0xE6, - 0xEC, - 0xEC, - 0xDC, - 0xF4, - 0xF4, - 0x86, - 0x5B, - 0x68, - 0x6A, - 0x80, - 0xDD, - 0x00, - 0x06, - 0xF5, - 0x00, - 0xB3, - 0xD1, - 0xF9, - 0xB6, - 0x3D, - 0x5F, - 0x64, - 0x73, - 0x74, - 0x74, - 0x76, - 0xFF, - 0xFF, - 0xFF, - 0x06, - 0xFF, - 0x06, - 0x67, - 0x06, - 0x06, - 0x67, - 0xC4, - 0x18, - 0x18, - 0x06, - 0xFF, - 0x6D, - 0x7A, - 0x84, - 0x75, - 0xFF, - 0x01, - 0x18, - 0x18, - 0x58, - 0x7F, - 0x84, - 0x84, - 0xB2, - 0x18, - 0x17, - 0x5A, - 0x17, - 0x17, - 0x5A, - 0x14, - 0x0E, - 0x0E, - 0x0B, - 0x0E, - 0x18, - 0x5C, - 0x74, - 0x8C, - 0x8F, - 0x91, - 0x88, - 0x41, - 0x4B, - 0x4B, - 0x2E, - 0x2E, - 0x2E, - 0x4B, - 0x13, - 0x1D, - 0x58, - 0x39, - 0x56, - 0x95, - 0x93, - 0x97, - 0x41, - 0x2F, - 0x2F, - 0x2F, - 0x41, - 0x55, - 0x2F, - 0x41, - 0x90, - 0x9A, - 0x97, - 0x55, - 0x3E, - 0x63, - 0x2F, - 0x94, - 0x9A, - 0x95, - 0x53, - 0x42, - 0x70, - 0x2F, - 0x90, - 0xA0, - 0x96, - 0x59, - 0x70, - 0x70, - 0x43, - 0x16, - 0x75, - 0xA0, - 0x9F, - 0x94, - 0x42, - 0x70, - 0x63, - 0x70, - 0x63, - 0x63, - 0x43, - 0x63, - 0x63, - 0x70, - 0x43, - 0x2E, - 0x75, - 0x9F, - 0x9F, - 0x94, - 0x42, - 0x63, - 0x43, - 0x63, - 0x63, - 0x70, - 0x70, - 0x63, - 0x63, - 0x63, - 0x42, - 0x63, - 0x63, - 0x63, - 0x70, - 0x63, - 0x70, - 0x63, - 0x63, - 0x3E, - 0x3E, - 0x63, - 0x71, - 0x87, - 0x4C, - 0x63, - 0x69, - 0x43, - 0x42, - 0x62, - 0x62, - 0x62, - 0x63, - 0x63, - 0x42, - 0x2F, - 0x42, - 0x66, - 0x7D, - 0x8E, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0x9F, - 0x91, - 0x88, - 0x7B, - 0x48, - 0x2B, - 0x2D, - 0x2E, - 0x63, - 0x63, - 0x63, - 0x42, - 0x63, - 0x42, - 0x00, - 0x04, - 0x41, - 0x00, - 0x06, - 0x6F, - 0x41, - 0x41, - 0x42, - 0x41, - 0x6F, - 0x05, - 0x41, - 0x00, - 0x18, - 0x27, - 0x40, - 0x8E, - 0xA6, - 0x9B, - 0x97, - 0x60, - 0x27, - 0x54, - 0x42, - 0x27, - 0x70, - 0x94, - 0xA6, - 0x9B, - 0x9F, - 0x96, - 0x90, - 0x75, - 0x8D, - 0x33, - 0x48, - 0x20, - 0x40, - 0x04, - 0x41, - 0x00, - 0x1B, - 0x37, - 0x40, - 0x40, - 0x25, - 0x37, - 0x54, - 0x6C, - 0x94, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0x96, - 0x90, - 0x88, - 0x6D, - 0x1F, - 0x1F, - 0x48, - 0x20, - 0x25, - 0x52, - 0x35, - 0x35, - 0x25, - 0x35, - 0x25, - 0x00, - 0x06, - 0x35, - 0x00, - 0x07, - 0x25, - 0x20, - 0x24, - 0x24, - 0x24, - 0x09, - 0x24, - 0x00, - 0x04, - 0x34, - 0x00, - 0x04, - 0x20, - 0x20, - 0x34, - 0x48, - 0x04, - 0x34, - 0x00, - 0x12, - 0x24, - 0x34, - 0x34, - 0x24, - 0x48, - 0x34, - 0x24, - 0x24, - 0x11, - 0x20, - 0x53, - 0x7B, - 0x90, - 0x91, - 0x93, - 0x93, - 0x93, - 0x84, - 0x00, - 0x00, - 0x00, - 0x06, - 0xE6, - 0xE5, - 0xE6, - 0xE5, - 0xE6, - 0xE5, - 0x04, - 0xE6, - 0x00, - 0x1A, - 0xE5, - 0xE6, - 0xF4, - 0x86, - 0x4F, - 0x5E, - 0x68, - 0x68, - 0x64, - 0x5F, - 0xF9, - 0xF5, - 0xEA, - 0xEA, - 0xEA, - 0xEC, - 0xFA, - 0xB6, - 0x31, - 0x5F, - 0x64, - 0x6A, - 0x74, - 0x68, - 0x6D, - 0x89, - 0x05, - 0xFF, - 0x00, - 0x7F, - 0x06, - 0xC4, - 0x18, - 0xC4, - 0x06, - 0xC4, - 0xFF, - 0x06, - 0x18, - 0x18, - 0xC4, - 0x1D, - 0x74, - 0x84, - 0x84, - 0x60, - 0xC4, - 0xDB, - 0x18, - 0xFB, - 0x6D, - 0x84, - 0x8C, - 0x75, - 0x06, - 0x18, - 0x5A, - 0x17, - 0x0E, - 0x17, - 0x0E, - 0x4A, - 0x4A, - 0x4A, - 0x18, - 0x33, - 0x75, - 0x84, - 0x8F, - 0x91, - 0x94, - 0x6F, - 0x15, - 0x4B, - 0x2E, - 0x4B, - 0x2E, - 0x55, - 0x15, - 0x34, - 0x75, - 0x7F, - 0x84, - 0x8C, - 0x91, - 0x93, - 0x96, - 0x75, - 0x2B, - 0x55, - 0x62, - 0x41, - 0x2F, - 0x2F, - 0x62, - 0x55, - 0x88, - 0x93, - 0x96, - 0x54, - 0x62, - 0x42, - 0x2F, - 0x6C, - 0x93, - 0xA0, - 0x7D, - 0x62, - 0x42, - 0x62, - 0x7D, - 0xA0, - 0xA0, - 0x54, - 0x63, - 0x63, - 0x63, - 0x7C, - 0x95, - 0x9F, - 0xA1, - 0x66, - 0x63, - 0x63, - 0x43, - 0x63, - 0x63, - 0x42, - 0x42, - 0x70, - 0x42, - 0x70, - 0x63, - 0x53, - 0x96, - 0xA6, - 0xA4, - 0x66, - 0x42, - 0x71, - 0x69, - 0x43, - 0x63, - 0x42, - 0x63, - 0x70, - 0x42, - 0x42, - 0x70, - 0x63, - 0x63, - 0x63, - 0x69, - 0x63, - 0x42, - 0x63, - 0x42, - 0x00, - 0x05, - 0x63, - 0x00, - 0x2B, - 0x70, - 0x63, - 0x2E, - 0x24, - 0x58, - 0x33, - 0x48, - 0x33, - 0x48, - 0x61, - 0x62, - 0x54, - 0x42, - 0x42, - 0x62, - 0x2F, - 0x42, - 0x66, - 0x7D, - 0x8E, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0x9B, - 0x91, - 0x88, - 0x7B, - 0x48, - 0x2B, - 0x49, - 0x55, - 0x3E, - 0x42, - 0x63, - 0x62, - 0x42, - 0x42, - 0x41, - 0x41, - 0x6F, - 0x41, - 0x2F, - 0x00, - 0x08, - 0x41, - 0x00, - 0x46, - 0x27, - 0x7D, - 0xA6, - 0x9B, - 0xA1, - 0x60, - 0x2E, - 0x41, - 0x54, - 0x2F, - 0x53, - 0x66, - 0x8E, - 0x97, - 0xA4, - 0x9B, - 0x9B, - 0x9F, - 0xA1, - 0x90, - 0x7B, - 0x80, - 0x33, - 0x48, - 0x20, - 0x35, - 0x37, - 0x53, - 0x53, - 0x40, - 0x37, - 0x40, - 0x35, - 0x25, - 0x37, - 0x65, - 0x7D, - 0x97, - 0xA1, - 0x9F, - 0x9F, - 0x9F, - 0x95, - 0x90, - 0x7B, - 0x60, - 0x58, - 0x1F, - 0x24, - 0x2C, - 0x24, - 0x24, - 0x24, - 0x1F, - 0x1D, - 0x1D, - 0x39, - 0x19, - 0x19, - 0x39, - 0x50, - 0x4F, - 0x5F, - 0x6D, - 0x77, - 0x5C, - 0x39, - 0x1F, - 0x1F, - 0x24, - 0x06, - 0x34, - 0x00, - 0x14, - 0x24, - 0x48, - 0x48, - 0x34, - 0x24, - 0x48, - 0x34, - 0x24, - 0x24, - 0x48, - 0x48, - 0x24, - 0x24, - 0x1F, - 0x24, - 0x60, - 0x7C, - 0x88, - 0x90, - 0x95, - 0x00, - 0x00, - 0x00, - 0x26, - 0xE6, - 0xDC, - 0xEC, - 0xE6, - 0xE6, - 0xE6, - 0xE5, - 0xE5, - 0xF2, - 0xFE, - 0x3D, - 0x4F, - 0x5B, - 0x5D, - 0x68, - 0x64, - 0x5C, - 0xA5, - 0xF5, - 0xF9, - 0xF5, - 0xEC, - 0xFA, - 0xFA, - 0x1A, - 0x4F, - 0x5E, - 0x68, - 0x74, - 0x6A, - 0x77, - 0x60, - 0x58, - 0xFF, - 0xF5, - 0xF5, - 0xFF, - 0xC0, - 0x06, - 0xFF, - 0x00, - 0x15, - 0x06, - 0xC4, - 0x18, - 0x18, - 0x06, - 0xFF, - 0x06, - 0xFB, - 0x8D, - 0x7F, - 0x7A, - 0x88, - 0x06, - 0x06, - 0x06, - 0xC4, - 0x1D, - 0x74, - 0x84, - 0x84, - 0x7E, - 0x00, - 0x04, - 0x18, - 0x01, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x40, - 0x2B, - 0x77, - 0x7F, - 0x8F, - 0x95, - 0x90, - 0x54, - 0x0B, - 0x4B, - 0x2D, - 0x4B, - 0x4B, - 0x2E, - 0x2E, - 0x4B, - 0x35, - 0x90, - 0x95, - 0x91, - 0x8E, - 0xBB, - 0x85, - 0x85, - 0x84, - 0x93, - 0x84, - 0x52, - 0x16, - 0x55, - 0x62, - 0x41, - 0x41, - 0x2E, - 0x7D, - 0x93, - 0x9A, - 0x7D, - 0x2E, - 0x62, - 0x42, - 0x6F, - 0x97, - 0x9F, - 0x97, - 0x55, - 0x63, - 0x69, - 0x62, - 0x97, - 0x9F, - 0x90, - 0x2E, - 0x63, - 0x3E, - 0x7D, - 0xA0, - 0xA0, - 0x8E, - 0x2F, - 0x70, - 0x70, - 0x43, - 0x63, - 0x69, - 0x04, - 0x63, - 0x00, - 0x0A, - 0x70, - 0x2F, - 0x90, - 0x9B, - 0xA6, - 0x7D, - 0x42, - 0x70, - 0x42, - 0x70, - 0x07, - 0x63, - 0x01, - 0x42, - 0x01, - 0x42, - 0x05, - 0x63, - 0x06, - 0x42, - 0x00, - 0x2B, - 0x63, - 0x2F, - 0x7E, - 0x7B, - 0x90, - 0x96, - 0xA0, - 0xA6, - 0x96, - 0xA1, - 0x88, - 0x53, - 0x2E, - 0x70, - 0x42, - 0x42, - 0x62, - 0x42, - 0x54, - 0x2F, - 0x41, - 0x42, - 0x66, - 0x7D, - 0x8E, - 0xA3, - 0xA6, - 0x9B, - 0x9B, - 0x96, - 0x91, - 0x88, - 0x7B, - 0x60, - 0x48, - 0x41, - 0x42, - 0x42, - 0x63, - 0x42, - 0x63, - 0x62, - 0x62, - 0x00, - 0x0A, - 0x41, - 0x00, - 0x5F, - 0x2E, - 0x6C, - 0xA6, - 0x9B, - 0xA1, - 0x6D, - 0x25, - 0x41, - 0x41, - 0x41, - 0x37, - 0x37, - 0x2E, - 0x54, - 0x6C, - 0x8E, - 0x97, - 0xA4, - 0x9B, - 0x9B, - 0xA0, - 0x91, - 0x88, - 0x7B, - 0x8D, - 0x1F, - 0x24, - 0x20, - 0x25, - 0x37, - 0x37, - 0x40, - 0x37, - 0x40, - 0x25, - 0x49, - 0x35, - 0x53, - 0x65, - 0x7D, - 0x94, - 0xA4, - 0x9F, - 0x9F, - 0xA0, - 0x91, - 0x88, - 0x7B, - 0x56, - 0x56, - 0x6D, - 0x77, - 0x75, - 0x88, - 0x7F, - 0x90, - 0x91, - 0x91, - 0x95, - 0x93, - 0x96, - 0x96, - 0x9F, - 0x9F, - 0xA0, - 0x91, - 0x88, - 0x7B, - 0x56, - 0x1F, - 0x1D, - 0x24, - 0x24, - 0x20, - 0x34, - 0x48, - 0x34, - 0x24, - 0x48, - 0x24, - 0x24, - 0x24, - 0x48, - 0x24, - 0x24, - 0x24, - 0x48, - 0x24, - 0x24, - 0x33, - 0x24, - 0x1F, - 0x1F, - 0x33, - 0x52, - 0x00, - 0x00, - 0x00, - 0x00, - 0x2B, - 0xE5, - 0xE6, - 0xE6, - 0xE6, - 0xF4, - 0xF4, - 0x22, - 0x50, - 0x5F, - 0x5B, - 0x68, - 0x64, - 0x5E, - 0x79, - 0x81, - 0xEC, - 0xF0, - 0xE6, - 0xE6, - 0xF4, - 0xFA, - 0x50, - 0x5F, - 0x5B, - 0x6A, - 0x6A, - 0x68, - 0x6D, - 0x80, - 0xFF, - 0xF5, - 0xF5, - 0xF5, - 0xEA, - 0xFF, - 0xEA, - 0xFF, - 0xFF, - 0xC0, - 0xFF, - 0xFF, - 0xFF, - 0xFB, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x13, - 0xC4, - 0xFF, - 0xFF, - 0xC4, - 0xFF, - 0x64, - 0x7F, - 0x84, - 0x7C, - 0xFB, - 0xC4, - 0x06, - 0x06, - 0x8D, - 0x7A, - 0x84, - 0x88, - 0x06, - 0x06, - 0x00, - 0x04, - 0x18, - 0x00, - 0x45, - 0x5A, - 0x17, - 0x17, - 0x2B, - 0x74, - 0x8C, - 0x91, - 0x90, - 0x66, - 0x15, - 0x4A, - 0x15, - 0x4B, - 0x4B, - 0x61, - 0x61, - 0x4B, - 0x2E, - 0x15, - 0x7B, - 0x8F, - 0x91, - 0xB4, - 0xD6, - 0xD9, - 0xD9, - 0xD6, - 0xC6, - 0x90, - 0x93, - 0x91, - 0x40, - 0x55, - 0x41, - 0x55, - 0x55, - 0x62, - 0x65, - 0x95, - 0x9A, - 0x88, - 0x2E, - 0x42, - 0x62, - 0x2F, - 0x88, - 0xA0, - 0x96, - 0x65, - 0x2F, - 0x70, - 0x3E, - 0x6C, - 0x93, - 0xA0, - 0x7B, - 0x2F, - 0x70, - 0x42, - 0x90, - 0x9F, - 0x88, - 0x2E, - 0x43, - 0x43, - 0x63, - 0x70, - 0x63, - 0x42, - 0x00, - 0x04, - 0x63, - 0x00, - 0x09, - 0x42, - 0x8E, - 0xA6, - 0xA6, - 0x65, - 0x15, - 0x42, - 0x43, - 0x63, - 0x00, - 0x04, - 0x42, - 0x01, - 0x63, - 0x01, - 0x42, - 0x05, - 0x63, - 0x00, - 0x46, - 0x42, - 0x62, - 0x42, - 0x42, - 0x62, - 0x42, - 0x63, - 0x3E, - 0x42, - 0x42, - 0x52, - 0x90, - 0x9B, - 0xA4, - 0x98, - 0x85, - 0xB4, - 0xB4, - 0x96, - 0x9B, - 0xA4, - 0x65, - 0x2F, - 0x63, - 0x63, - 0x42, - 0x54, - 0x62, - 0x54, - 0x42, - 0x54, - 0x2F, - 0x41, - 0x2F, - 0x2F, - 0x66, - 0x7D, - 0x94, - 0xA1, - 0xA6, - 0x9B, - 0x9F, - 0x9F, - 0x90, - 0x52, - 0x27, - 0x41, - 0x41, - 0x62, - 0x42, - 0x42, - 0x6F, - 0x2F, - 0x6F, - 0x62, - 0x2F, - 0x41, - 0x41, - 0x41, - 0x37, - 0x62, - 0x42, - 0x42, - 0x41, - 0x66, - 0xA4, - 0x9B, - 0x96, - 0x7C, - 0x49, - 0x05, - 0x41, - 0x00, - 0x4B, - 0x37, - 0x40, - 0x2E, - 0x40, - 0x54, - 0x6C, - 0x8E, - 0x97, - 0xA6, - 0x9B, - 0x9B, - 0x9F, - 0x90, - 0x88, - 0x7B, - 0x60, - 0x2B, - 0x11, - 0x2D, - 0x40, - 0x37, - 0x37, - 0x37, - 0x40, - 0x25, - 0x49, - 0x20, - 0x49, - 0x53, - 0x6C, - 0x8E, - 0x97, - 0x96, - 0x9B, - 0x9F, - 0xA0, - 0xA0, - 0xA0, - 0x96, - 0x91, - 0x97, - 0x94, - 0x94, - 0x8E, - 0x7D, - 0x6C, - 0x65, - 0x65, - 0x3F, - 0x65, - 0x7D, - 0x90, - 0x96, - 0xA0, - 0x9F, - 0x93, - 0x90, - 0x75, - 0x6B, - 0x33, - 0x19, - 0x39, - 0x1F, - 0x24, - 0x34, - 0x24, - 0x34, - 0x2C, - 0x20, - 0x24, - 0x33, - 0x24, - 0x24, - 0x24, - 0x33, - 0x00, - 0x06, - 0x24, - 0x01, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x1E, - 0xDE, - 0xF2, - 0xFC, - 0x22, - 0x50, - 0x5E, - 0x5B, - 0x5D, - 0x5B, - 0x56, - 0x58, - 0xC0, - 0xEC, - 0xE6, - 0xE6, - 0xF4, - 0xFE, - 0x86, - 0x50, - 0x5E, - 0x5D, - 0x68, - 0x68, - 0x77, - 0x80, - 0xA5, - 0xC0, - 0xEC, - 0xF5, - 0xEA, - 0x04, - 0xC0, - 0x00, - 0x1F, - 0xEA, - 0xFF, - 0xEA, - 0xFB, - 0xFF, - 0xFB, - 0xFF, - 0xFF, - 0xFB, - 0xFF, - 0xFF, - 0xFB, - 0xFB, - 0xFF, - 0xFB, - 0xFF, - 0xFF, - 0x58, - 0x7F, - 0x7A, - 0x7F, - 0x18, - 0xC4, - 0x06, - 0xC4, - 0xFF, - 0x75, - 0x84, - 0x84, - 0x53, - 0xC4, - 0x00, - 0x06, - 0x18, - 0x00, - 0x09, - 0x17, - 0x01, - 0x6D, - 0x8C, - 0x91, - 0x90, - 0x14, - 0x14, - 0x4A, - 0x00, - 0x07, - 0x4B, - 0x00, - 0x50, - 0x61, - 0x4A, - 0x7B, - 0x95, - 0x91, - 0xB5, - 0xDA, - 0x07, - 0x08, - 0xFB, - 0xD5, - 0x94, - 0x91, - 0x95, - 0x66, - 0x55, - 0x2F, - 0x2F, - 0x55, - 0x41, - 0x2E, - 0x90, - 0xA0, - 0x97, - 0x2E, - 0x62, - 0x62, - 0x2F, - 0x54, - 0x95, - 0xA0, - 0x90, - 0x2E, - 0x42, - 0x42, - 0x2F, - 0x90, - 0x9F, - 0x91, - 0x6E, - 0x63, - 0x63, - 0x59, - 0x95, - 0x9F, - 0x7B, - 0x55, - 0x63, - 0x63, - 0x69, - 0x42, - 0x63, - 0x42, - 0x42, - 0x42, - 0x63, - 0x42, - 0x70, - 0xA1, - 0x9F, - 0x91, - 0x77, - 0x60, - 0x2B, - 0x2C, - 0x2E, - 0x62, - 0x70, - 0x63, - 0x42, - 0x42, - 0x70, - 0x42, - 0x62, - 0x63, - 0x42, - 0x42, - 0x42, - 0x63, - 0x63, - 0x04, - 0x42, - 0x00, - 0x0F, - 0x70, - 0x2E, - 0x8E, - 0x9B, - 0xA4, - 0xB4, - 0xD6, - 0xD9, - 0xD9, - 0xD7, - 0xD7, - 0x96, - 0x9B, - 0x97, - 0x2E, - 0x00, - 0x04, - 0x42, - 0x00, - 0x13, - 0x62, - 0x63, - 0x42, - 0x42, - 0x6F, - 0x2F, - 0x41, - 0x6F, - 0x41, - 0x41, - 0x2F, - 0x41, - 0x66, - 0x7D, - 0x94, - 0xA4, - 0x9B, - 0x97, - 0x49, - 0x00, - 0x04, - 0x41, - 0x00, - 0x08, - 0x2F, - 0x41, - 0x41, - 0x2F, - 0x62, - 0x3E, - 0x42, - 0x2F, - 0x04, - 0x41, - 0x00, - 0x50, - 0x62, - 0x41, - 0x27, - 0x66, - 0xA4, - 0x9F, - 0xA0, - 0x65, - 0x49, - 0x41, - 0x41, - 0x63, - 0x2F, - 0x41, - 0x41, - 0x41, - 0x37, - 0x40, - 0x40, - 0x25, - 0x40, - 0x70, - 0x7D, - 0x94, - 0xA3, - 0xA6, - 0x9B, - 0x9F, - 0x96, - 0x90, - 0x88, - 0x7C, - 0x33, - 0x1F, - 0x24, - 0x49, - 0x25, - 0x40, - 0x37, - 0x52, - 0x35, - 0x25, - 0x35, - 0x20, - 0x25, - 0x54, - 0x6C, - 0x6C, - 0x6C, - 0x65, - 0x53, - 0x37, - 0x35, - 0x20, - 0x20, - 0x24, - 0x11, - 0x2C, - 0x24, - 0x11, - 0x20, - 0x2C, - 0x11, - 0x24, - 0x20, - 0x53, - 0x7B, - 0x88, - 0x97, - 0x93, - 0x9A, - 0x9A, - 0x95, - 0x7F, - 0x7B, - 0x56, - 0x58, - 0x19, - 0x1F, - 0x1F, - 0x05, - 0x24, - 0x01, - 0x33, - 0x04, - 0x24, - 0x00, - 0x05, - 0x1F, - 0x33, - 0x24, - 0x33, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x27, - 0x3D, - 0x4F, - 0x4D, - 0x5B, - 0x64, - 0x5E, - 0x5C, - 0x81, - 0xD0, - 0xE6, - 0xE5, - 0xE5, - 0xF4, - 0xFE, - 0x92, - 0x4F, - 0x5E, - 0x68, - 0x68, - 0x64, - 0x56, - 0x89, - 0x81, - 0xF9, - 0xEC, - 0xEC, - 0xF5, - 0xD1, - 0xF5, - 0xF5, - 0xF5, - 0xD1, - 0xC0, - 0xF5, - 0xC0, - 0xC0, - 0x05, - 0xFF, - 0xEA, - 0x00, - 0x05, - 0xFF, - 0x01, - 0xEA, - 0x04, - 0xFF, - 0x00, - 0x91, - 0xFB, - 0x05, - 0x6B, - 0x7F, - 0x84, - 0x77, - 0xEA, - 0xFF, - 0x06, - 0xFB, - 0x60, - 0x7F, - 0x7A, - 0x7F, - 0x06, - 0xFF, - 0x18, - 0xC4, - 0x18, - 0x18, - 0x67, - 0x18, - 0x17, - 0x2B, - 0x7F, - 0x91, - 0x91, - 0x53, - 0x17, - 0x4A, - 0x2D, - 0x4A, - 0x4A, - 0x15, - 0x15, - 0x4B, - 0x15, - 0x2D, - 0x4B, - 0x16, - 0x40, - 0x90, - 0x8C, - 0xA1, - 0xB5, - 0xD9, - 0xE7, - 0xC6, - 0xB5, - 0x91, - 0x93, - 0x91, - 0x55, - 0x55, - 0x3E, - 0x55, - 0x55, - 0x41, - 0x16, - 0x90, - 0x96, - 0x95, - 0x6F, - 0x2F, - 0x62, - 0x42, - 0x2F, - 0x90, - 0xA0, - 0x95, - 0x6E, - 0x62, - 0x42, - 0x62, - 0x66, - 0x95, - 0x9A, - 0x7D, - 0x2E, - 0x70, - 0x3E, - 0x8E, - 0xA0, - 0x95, - 0x7C, - 0x3E, - 0x63, - 0x42, - 0x42, - 0x63, - 0x62, - 0x42, - 0x4C, - 0x63, - 0x3E, - 0x3E, - 0x66, - 0xA1, - 0xA6, - 0x9F, - 0x93, - 0x90, - 0x75, - 0x77, - 0x60, - 0x2B, - 0x2C, - 0x2E, - 0x2F, - 0x63, - 0x69, - 0x69, - 0x63, - 0x63, - 0x42, - 0x62, - 0x63, - 0x42, - 0x63, - 0x63, - 0x63, - 0x42, - 0x42, - 0x27, - 0x97, - 0x9B, - 0xA1, - 0xD5, - 0xE4, - 0x1A, - 0x08, - 0xE8, - 0xD2, - 0xA1, - 0x9F, - 0xA1, - 0x60, - 0x2B, - 0x2C, - 0x2E, - 0x2F, - 0x54, - 0x28, - 0x41, - 0x62, - 0x00, - 0x04, - 0x42, - 0x05, - 0x41, - 0x00, - 0x07, - 0x27, - 0x2E, - 0x71, - 0x96, - 0x9B, - 0x90, - 0x49, - 0x00, - 0x0E, - 0x41, - 0x00, - 0x0B, - 0x2F, - 0x55, - 0x41, - 0x53, - 0x55, - 0x54, - 0x97, - 0x9B, - 0xA0, - 0x7B, - 0x20, - 0x00, - 0x07, - 0x41, - 0x00, - 0x4E, - 0x2F, - 0x37, - 0x40, - 0x37, - 0x2E, - 0x2D, - 0x16, - 0x55, - 0x71, - 0x7D, - 0x94, - 0xA1, - 0x9F, - 0x9B, - 0x9F, - 0x95, - 0x90, - 0x7B, - 0x6D, - 0x33, - 0x1F, - 0x24, - 0x20, - 0x25, - 0x40, - 0x25, - 0x40, - 0x25, - 0x11, - 0x1F, - 0x1D, - 0x1D, - 0x1F, - 0x11, - 0x25, - 0x25, - 0x49, - 0x49, - 0x35, - 0x20, - 0x34, - 0x34, - 0x49, - 0x2D, - 0x20, - 0x20, - 0x34, - 0x34, - 0x24, - 0x11, - 0x24, - 0x35, - 0x53, - 0x6C, - 0x88, - 0x91, - 0xA0, - 0x9A, - 0x93, - 0x84, - 0x88, - 0x77, - 0x60, - 0x19, - 0x39, - 0x1F, - 0x1F, - 0x24, - 0x24, - 0x1D, - 0x1A, - 0x1A, - 0x31, - 0x19, - 0x19, - 0x19, - 0x1D, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x18, - 0x5B, - 0x5E, - 0x5F, - 0xA5, - 0xB7, - 0xE6, - 0xE5, - 0xF7, - 0xF7, - 0xCF, - 0x22, - 0x50, - 0x47, - 0x5B, - 0x68, - 0x64, - 0x5E, - 0x79, - 0x81, - 0xD1, - 0xEC, - 0xEC, - 0xEC, - 0xD1, - 0x04, - 0xF5, - 0x00, - 0x1B, - 0xD1, - 0xF5, - 0xEA, - 0xF5, - 0xEA, - 0xF5, - 0xC0, - 0xEA, - 0xC0, - 0xEA, - 0xFF, - 0xEA, - 0xFF, - 0xEA, - 0xFF, - 0xFF, - 0xFF, - 0xFB, - 0xFF, - 0xFB, - 0xFF, - 0xFF, - 0xFF, - 0x74, - 0x7F, - 0x7F, - 0x67, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x06, - 0x77, - 0x84, - 0x84, - 0x7C, - 0xFF, - 0xC4, - 0x05, - 0x18, - 0x00, - 0x09, - 0x5A, - 0x18, - 0x6D, - 0x84, - 0x8C, - 0x88, - 0x11, - 0x4A, - 0x14, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x80, - 0x4B, - 0x4A, - 0x4B, - 0x15, - 0x15, - 0x4B, - 0x15, - 0x2E, - 0x88, - 0x84, - 0x95, - 0xA4, - 0xA9, - 0xA4, - 0x8F, - 0x95, - 0x90, - 0x70, - 0x2E, - 0x55, - 0x55, - 0x2E, - 0x2E, - 0x55, - 0x55, - 0x7D, - 0xA0, - 0x93, - 0x7D, - 0x55, - 0x62, - 0x62, - 0x2F, - 0x6C, - 0x96, - 0xA0, - 0x6C, - 0x55, - 0x62, - 0x42, - 0x41, - 0x8E, - 0xA0, - 0x95, - 0x53, - 0x3E, - 0x42, - 0x42, - 0x90, - 0x9F, - 0x90, - 0x2E, - 0x63, - 0x63, - 0x63, - 0x42, - 0x42, - 0x42, - 0x3E, - 0x42, - 0x63, - 0x63, - 0x4C, - 0x63, - 0x85, - 0x8E, - 0x97, - 0x96, - 0x9F, - 0x9F, - 0x96, - 0x90, - 0x88, - 0x7B, - 0x52, - 0x48, - 0x14, - 0x2E, - 0x62, - 0x63, - 0x69, - 0x43, - 0x63, - 0x3E, - 0x42, - 0x62, - 0x42, - 0x62, - 0x42, - 0x3E, - 0x7D, - 0x9F, - 0xA6, - 0xAA, - 0xD8, - 0xE4, - 0xE4, - 0xD8, - 0xAD, - 0xA6, - 0xA6, - 0xA6, - 0xA0, - 0x90, - 0x88, - 0x77, - 0x52, - 0x2E, - 0x62, - 0x42, - 0x41, - 0x41, - 0x41, - 0x62, - 0x62, - 0x41, - 0x41, - 0x62, - 0x42, - 0x6F, - 0x41, - 0x41, - 0x55, - 0x7D, - 0x9F, - 0x9F, - 0x7D, - 0x25, - 0x09, - 0x41, - 0x00, - 0x49, - 0x27, - 0x41, - 0x40, - 0x27, - 0x55, - 0x41, - 0x2F, - 0x2E, - 0x53, - 0x25, - 0x53, - 0x97, - 0x9F, - 0x9F, - 0x7B, - 0x24, - 0x2D, - 0x2E, - 0x37, - 0x37, - 0x6E, - 0x2E, - 0x41, - 0x40, - 0x41, - 0x2F, - 0x37, - 0x41, - 0x37, - 0x40, - 0x25, - 0x2D, - 0x2E, - 0x37, - 0x65, - 0x7D, - 0x94, - 0xA1, - 0x9B, - 0x9F, - 0x9F, - 0x91, - 0x88, - 0x7B, - 0x6D, - 0x33, - 0x1F, - 0x24, - 0x1F, - 0x39, - 0x5F, - 0x77, - 0x75, - 0x75, - 0x77, - 0x6D, - 0x33, - 0x20, - 0x35, - 0x49, - 0x49, - 0x25, - 0x20, - 0x49, - 0x20, - 0x34, - 0x34, - 0x34, - 0x48, - 0x34, - 0x2C, - 0x34, - 0x48, - 0x00, - 0x04, - 0x24, - 0x00, - 0x17, - 0x35, - 0x65, - 0x6C, - 0x90, - 0x91, - 0x93, - 0x93, - 0x93, - 0x90, - 0x75, - 0x6B, - 0x33, - 0x39, - 0x50, - 0x5F, - 0x75, - 0x7F, - 0x84, - 0x84, - 0x90, - 0x88, - 0x56, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0x92, - 0xCF, - 0xE5, - 0xF7, - 0xE2, - 0xE2, - 0xFE, - 0x86, - 0x4F, - 0x4D, - 0x64, - 0x5D, - 0x6B, - 0x5C, - 0xA5, - 0xF5, - 0x05, - 0xEC, - 0x00, - 0x3B, - 0xF9, - 0xDD, - 0xF9, - 0xDD, - 0xD1, - 0xF5, - 0xDD, - 0xD1, - 0xF5, - 0xF5, - 0xEA, - 0xEA, - 0xC0, - 0xEA, - 0xF5, - 0xC0, - 0xC0, - 0xC0, - 0xFF, - 0xFF, - 0xFF, - 0xEA, - 0xFB, - 0xFF, - 0xC0, - 0xFF, - 0xFF, - 0xFF, - 0xF5, - 0x5F, - 0x7F, - 0x7A, - 0x75, - 0xFF, - 0xFF, - 0xFB, - 0xFF, - 0x58, - 0x7F, - 0x84, - 0x90, - 0x67, - 0xFF, - 0x06, - 0xC4, - 0x18, - 0x18, - 0x01, - 0x18, - 0x18, - 0x67, - 0x74, - 0x84, - 0x8C, - 0x6E, - 0x17, - 0x17, - 0x4A, - 0x14, - 0x00, - 0x04, - 0x4A, - 0x01, - 0x15, - 0x05, - 0x4B, - 0x00, - 0x0B, - 0x15, - 0x4A, - 0x6E, - 0x6C, - 0x88, - 0x90, - 0x88, - 0x8E, - 0x6C, - 0x2E, - 0x4B, - 0x00, - 0x04, - 0x2E, - 0x00, - 0x5B, - 0x55, - 0x55, - 0x2E, - 0x65, - 0x95, - 0x9A, - 0x88, - 0x16, - 0x63, - 0x3E, - 0x62, - 0x62, - 0x91, - 0x9A, - 0x90, - 0x2E, - 0x42, - 0x42, - 0x62, - 0x42, - 0x91, - 0x9A, - 0x88, - 0x16, - 0x63, - 0x3E, - 0x54, - 0x95, - 0x9F, - 0x88, - 0x25, - 0x70, - 0x42, - 0x62, - 0x42, - 0x42, - 0x42, - 0x62, - 0x42, - 0x62, - 0x42, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x42, - 0x7D, - 0x8E, - 0x97, - 0x96, - 0x9B, - 0x9B, - 0xA6, - 0x91, - 0x88, - 0x7C, - 0x60, - 0x48, - 0x2C, - 0x4B, - 0x2F, - 0x63, - 0x63, - 0x42, - 0x62, - 0x3E, - 0x42, - 0x42, - 0x2F, - 0x7D, - 0xA4, - 0xA6, - 0x9B, - 0xAA, - 0xA2, - 0xA6, - 0xA6, - 0xA1, - 0x8E, - 0x8E, - 0xA1, - 0xA4, - 0x9B, - 0x9B, - 0xA4, - 0x7C, - 0x25, - 0x41, - 0x41, - 0x41, - 0x62, - 0x00, - 0x04, - 0x41, - 0x00, - 0x13, - 0x42, - 0x2F, - 0x2F, - 0x62, - 0x42, - 0x41, - 0x41, - 0x8E, - 0x9B, - 0x9F, - 0x7C, - 0x2E, - 0x41, - 0x41, - 0x41, - 0x37, - 0x2E, - 0x41, - 0x2E, - 0x00, - 0x04, - 0x41, - 0x00, - 0x61, - 0x27, - 0x37, - 0x2E, - 0x2E, - 0x37, - 0x40, - 0x40, - 0x40, - 0x37, - 0x94, - 0x9F, - 0x9F, - 0x88, - 0x6D, - 0x34, - 0x1F, - 0x11, - 0x25, - 0x27, - 0x41, - 0x40, - 0x6E, - 0x2E, - 0x2E, - 0x55, - 0x41, - 0x41, - 0x2E, - 0x37, - 0x40, - 0x25, - 0x25, - 0x49, - 0x25, - 0x37, - 0x65, - 0x7D, - 0x94, - 0xA1, - 0x9F, - 0x9F, - 0xA0, - 0x95, - 0x88, - 0x6D, - 0x77, - 0x91, - 0x93, - 0x91, - 0x90, - 0x91, - 0xA0, - 0x9F, - 0x90, - 0x60, - 0x11, - 0x34, - 0x20, - 0x20, - 0x49, - 0x20, - 0x48, - 0x34, - 0x20, - 0x20, - 0x48, - 0x24, - 0x34, - 0x2C, - 0x34, - 0x48, - 0x24, - 0x34, - 0x24, - 0x24, - 0x24, - 0x1F, - 0x11, - 0x34, - 0x65, - 0x88, - 0x90, - 0x91, - 0x9A, - 0x93, - 0x95, - 0x7F, - 0x7F, - 0x8C, - 0x7F, - 0x8E, - 0x98, - 0x98, - 0x84, - 0x8F, - 0x95, - 0x77, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xE5, - 0xF7, - 0xF2, - 0xB6, - 0x31, - 0x47, - 0x5B, - 0x5D, - 0x5B, - 0x56, - 0x79, - 0x29, - 0xDC, - 0xE6, - 0xE6, - 0xEC, - 0xDC, - 0xEC, - 0xEC, - 0xF5, - 0xF9, - 0xDD, - 0xD1, - 0xDD, - 0xF9, - 0xF5, - 0xDD, - 0xD1, - 0xF5, - 0xD1, - 0xF5, - 0xD1, - 0xC0, - 0xF5, - 0xEA, - 0xC0, - 0xF5, - 0xF5, - 0xEA, - 0xC0, - 0xEA, - 0xF5, - 0xFB, - 0xFF, - 0xEA, - 0xFF, - 0xFB, - 0xEA, - 0x29, - 0x39, - 0x74, - 0x7F, - 0x84, - 0x48, - 0xEA, - 0xFB, - 0xFF, - 0xF5, - 0x6B, - 0x7A, - 0x84, - 0x77, - 0xEA, - 0x06, - 0xFF, - 0x06, - 0xC4, - 0x06, - 0x67, - 0x18, - 0x06, - 0x60, - 0x84, - 0x8C, - 0x88, - 0x13, - 0x2C, - 0x14, - 0x14, - 0x4A, - 0x4A, - 0x14, - 0x4A, - 0x4A, - 0x4A, - 0x2D, - 0x4A, - 0x00, - 0x04, - 0x4B, - 0x00, - 0x33, - 0x0B, - 0x4B, - 0x4B, - 0x0E, - 0x15, - 0x4B, - 0x0B, - 0x4B, - 0x4B, - 0x61, - 0x55, - 0x4B, - 0x55, - 0x2E, - 0x2E, - 0x55, - 0x55, - 0x41, - 0x91, - 0x93, - 0x90, - 0x40, - 0x2F, - 0x62, - 0x62, - 0x2F, - 0x88, - 0x93, - 0x95, - 0x54, - 0x41, - 0x41, - 0x42, - 0x2F, - 0x7D, - 0x9A, - 0xA0, - 0x65, - 0x2F, - 0x42, - 0x2F, - 0x6C, - 0xA0, - 0xA0, - 0x65, - 0x55, - 0x42, - 0x62, - 0x42, - 0x42, - 0x62, - 0x00, - 0x04, - 0x42, - 0x00, - 0x1F, - 0x2F, - 0x42, - 0x62, - 0x42, - 0x62, - 0x2F, - 0x2F, - 0x2F, - 0x42, - 0x59, - 0x8E, - 0x97, - 0xA1, - 0x9F, - 0x9B, - 0x9F, - 0x95, - 0x88, - 0x77, - 0x60, - 0x49, - 0x2C, - 0x2D, - 0x2F, - 0x63, - 0x4C, - 0x63, - 0x4C, - 0x62, - 0x42, - 0x85, - 0x00, - 0x04, - 0x94, - 0x00, - 0x0E, - 0x7D, - 0x42, - 0x2F, - 0x2F, - 0x41, - 0x54, - 0x7D, - 0x97, - 0x9F, - 0x96, - 0x7C, - 0x2E, - 0x42, - 0x62, - 0x0A, - 0x41, - 0x00, - 0x0A, - 0x62, - 0x2F, - 0x2F, - 0x97, - 0x9F, - 0xA1, - 0x52, - 0x2E, - 0x41, - 0x27, - 0x04, - 0x41, - 0x00, - 0x47, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x40, - 0x41, - 0x27, - 0x40, - 0x27, - 0x27, - 0x27, - 0x37, - 0x40, - 0x40, - 0x8E, - 0xA6, - 0x9F, - 0x9F, - 0x95, - 0x90, - 0x7B, - 0x8D, - 0x34, - 0x13, - 0x14, - 0x25, - 0x2E, - 0x37, - 0x37, - 0x40, - 0x2E, - 0x41, - 0x40, - 0x49, - 0x25, - 0x2D, - 0x25, - 0x25, - 0x25, - 0x49, - 0x20, - 0x25, - 0x40, - 0x65, - 0x8E, - 0x94, - 0x96, - 0xA0, - 0xA0, - 0x9F, - 0x91, - 0x85, - 0xD9, - 0xD9, - 0xC6, - 0xB4, - 0x96, - 0xA6, - 0x91, - 0x34, - 0x20, - 0x20, - 0x49, - 0x20, - 0x20, - 0x34, - 0x2C, - 0x20, - 0x34, - 0x20, - 0x48, - 0x00, - 0x04, - 0x24, - 0x00, - 0x1A, - 0x48, - 0x24, - 0x24, - 0x24, - 0x33, - 0x24, - 0x33, - 0x24, - 0x1F, - 0x24, - 0x1F, - 0x60, - 0x57, - 0x75, - 0x91, - 0x95, - 0x8C, - 0x85, - 0xD9, - 0xD9, - 0xE4, - 0xD6, - 0xB4, - 0x84, - 0x8F, - 0x7F, - 0x00, - 0x00, - 0x00, - 0x1F, - 0x22, - 0x50, - 0x4D, - 0x5B, - 0x5B, - 0x5E, - 0x5C, - 0x81, - 0xD0, - 0xE5, - 0xE5, - 0xE6, - 0xE6, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xDC, - 0xEC, - 0xEC, - 0xDD, - 0xF5, - 0xF5, - 0xF5, - 0xD1, - 0xDD, - 0xF5, - 0xF5, - 0xD1, - 0xF5, - 0xD1, - 0x00, - 0x05, - 0xF5, - 0x06, - 0xC0, - 0x00, - 0x27, - 0xFF, - 0xC0, - 0xFF, - 0xF5, - 0x29, - 0x39, - 0x6B, - 0x7F, - 0x7F, - 0x74, - 0x8D, - 0xEA, - 0xFF, - 0xFF, - 0xFF, - 0x1D, - 0x74, - 0x84, - 0x7F, - 0x76, - 0xFF, - 0xFF, - 0xFF, - 0xC4, - 0xFF, - 0x18, - 0x18, - 0x18, - 0x1D, - 0x74, - 0x84, - 0x91, - 0x6E, - 0x18, - 0x5A, - 0x4A, - 0x4A, - 0x4A, - 0x14, - 0x00, - 0x04, - 0x4A, - 0x00, - 0x39, - 0x14, - 0x4A, - 0x2D, - 0x4A, - 0x2D, - 0x2D, - 0x4B, - 0x4B, - 0x0B, - 0x2D, - 0x2D, - 0x4B, - 0x61, - 0x2D, - 0x4B, - 0x2E, - 0x4B, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x2E, - 0x55, - 0x2D, - 0x90, - 0x93, - 0x91, - 0x6E, - 0x55, - 0x2F, - 0x41, - 0x55, - 0x54, - 0x95, - 0x9A, - 0x88, - 0x15, - 0x62, - 0x42, - 0x62, - 0x41, - 0x97, - 0x9F, - 0x90, - 0x2E, - 0x63, - 0x42, - 0x2F, - 0x8E, - 0x9F, - 0x91, - 0x52, - 0x62, - 0x42, - 0x42, - 0x2F, - 0x42, - 0x00, - 0x05, - 0x62, - 0x00, - 0x34, - 0x42, - 0x42, - 0x42, - 0x62, - 0x62, - 0x62, - 0x42, - 0x2F, - 0x62, - 0x2F, - 0x2F, - 0x42, - 0x59, - 0x8E, - 0x94, - 0xA1, - 0xA6, - 0x9B, - 0x9F, - 0x95, - 0x88, - 0x77, - 0x52, - 0x34, - 0x2C, - 0x2D, - 0x55, - 0x62, - 0x63, - 0x2F, - 0x41, - 0x41, - 0x2F, - 0x2F, - 0x2F, - 0x62, - 0x42, - 0x62, - 0x62, - 0x41, - 0x41, - 0x27, - 0x94, - 0x9F, - 0x96, - 0x52, - 0x11, - 0x2D, - 0x2E, - 0x28, - 0x42, - 0x2F, - 0x09, - 0x41, - 0x00, - 0x13, - 0x54, - 0xA1, - 0x9B, - 0x90, - 0x2D, - 0x41, - 0x41, - 0x41, - 0x2E, - 0x41, - 0x27, - 0x40, - 0x41, - 0x41, - 0x40, - 0x41, - 0x40, - 0x40, - 0x2E, - 0x00, - 0x04, - 0x40, - 0x00, - 0x3F, - 0x37, - 0x40, - 0x25, - 0x65, - 0x7D, - 0x94, - 0xA1, - 0xA6, - 0x9B, - 0x9B, - 0x96, - 0x88, - 0x77, - 0x52, - 0x34, - 0x24, - 0x2C, - 0x25, - 0x2D, - 0x1F, - 0x1F, - 0x33, - 0x60, - 0x52, - 0x52, - 0x48, - 0x2C, - 0x25, - 0x40, - 0x35, - 0x35, - 0x20, - 0x20, - 0x49, - 0x35, - 0x88, - 0xA6, - 0x91, - 0xC6, - 0xD6, - 0x0B, - 0x0A, - 0xE8, - 0xD5, - 0xA1, - 0x96, - 0x91, - 0x20, - 0x48, - 0x20, - 0x20, - 0x2D, - 0x2D, - 0x2D, - 0x20, - 0x2C, - 0x2C, - 0x24, - 0x24, - 0x34, - 0x24, - 0x48, - 0x20, - 0x00, - 0x08, - 0x24, - 0x00, - 0x12, - 0x33, - 0x24, - 0x1F, - 0x1F, - 0x1F, - 0x39, - 0x7F, - 0x8F, - 0x88, - 0xD4, - 0xEE, - 0x0D, - 0x03, - 0xE4, - 0xC2, - 0x84, - 0x8F, - 0x7B, - 0x00, - 0x00, - 0x00, - 0x08, - 0x5B, - 0x5E, - 0x5F, - 0x50, - 0xFA, - 0xE6, - 0xE5, - 0xE5, - 0x04, - 0xE6, - 0x05, - 0xDC, - 0x04, - 0xEC, - 0x00, - 0x09, - 0xD1, - 0xDD, - 0xF9, - 0xEC, - 0xF9, - 0xF5, - 0xEA, - 0xDD, - 0xEA, - 0x00, - 0x05, - 0xF5, - 0x00, - 0x31, - 0xC0, - 0xF5, - 0xF5, - 0xF5, - 0xEA, - 0xC0, - 0xC0, - 0xC0, - 0xF5, - 0xF9, - 0x92, - 0x6B, - 0x74, - 0x7A, - 0x74, - 0x6D, - 0xFF, - 0xF5, - 0xFF, - 0xFB, - 0xFF, - 0xEA, - 0x6D, - 0x7A, - 0x84, - 0x7B, - 0xEA, - 0xFF, - 0xFF, - 0x06, - 0x18, - 0x06, - 0xC4, - 0x06, - 0x06, - 0x80, - 0x84, - 0x84, - 0x7F, - 0x18, - 0x17, - 0x17, - 0x5A, - 0x17, - 0x14, - 0x4A, - 0x0E, - 0x4A, - 0x0E, - 0x00, - 0x07, - 0x4A, - 0x05, - 0x2D, - 0x00, - 0x2B, - 0x4B, - 0x2D, - 0x4B, - 0x4B, - 0x4B, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x55, - 0x2E, - 0x55, - 0x4B, - 0x7D, - 0x93, - 0x93, - 0x6C, - 0x2E, - 0x55, - 0x55, - 0x2F, - 0x2E, - 0x90, - 0xA0, - 0x91, - 0x6E, - 0x2F, - 0x2F, - 0x62, - 0x55, - 0x6C, - 0x96, - 0xA0, - 0x7B, - 0x2E, - 0x42, - 0x42, - 0x42, - 0x90, - 0x9F, - 0x90, - 0x2D, - 0x42, - 0x00, - 0x04, - 0x62, - 0x00, - 0x3D, - 0x42, - 0x62, - 0x42, - 0x62, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x42, - 0x62, - 0x42, - 0x62, - 0x62, - 0x2F, - 0x2F, - 0x42, - 0x66, - 0x7D, - 0x94, - 0xA1, - 0xA6, - 0x9F, - 0x9F, - 0x95, - 0x90, - 0x7B, - 0x60, - 0x48, - 0x49, - 0x41, - 0x41, - 0x41, - 0x62, - 0x41, - 0x41, - 0x41, - 0x2F, - 0x41, - 0x2F, - 0x62, - 0x62, - 0x41, - 0x41, - 0x97, - 0x9B, - 0xA0, - 0x90, - 0x7C, - 0x80, - 0x48, - 0x48, - 0x2D, - 0x41, - 0x2F, - 0x41, - 0x41, - 0x53, - 0x00, - 0x04, - 0x41, - 0x00, - 0x15, - 0x40, - 0x6C, - 0xA0, - 0x9B, - 0x88, - 0x25, - 0x41, - 0x41, - 0x41, - 0x27, - 0x55, - 0x27, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x27, - 0x40, - 0x37, - 0x40, - 0x2E, - 0x00, - 0x04, - 0x40, - 0x00, - 0x33, - 0x25, - 0x2E, - 0x0F, - 0x2E, - 0x37, - 0x54, - 0x7D, - 0x94, - 0xA1, - 0x9F, - 0x9F, - 0xA0, - 0x91, - 0x90, - 0x7C, - 0x60, - 0x33, - 0x75, - 0x84, - 0x95, - 0x95, - 0x95, - 0x96, - 0x95, - 0x75, - 0x25, - 0x40, - 0x25, - 0x49, - 0x49, - 0x49, - 0x35, - 0x24, - 0x88, - 0xA0, - 0xA1, - 0xB5, - 0xDA, - 0xF5, - 0xF5, - 0xDF, - 0xB5, - 0x95, - 0xA0, - 0x88, - 0x11, - 0x20, - 0x2C, - 0x34, - 0x2C, - 0x2C, - 0x00, - 0x05, - 0x20, - 0x05, - 0x24, - 0x00, - 0x03, - 0x48, - 0x24, - 0x2C, - 0x00, - 0x04, - 0x24, - 0x01, - 0x1F, - 0x04, - 0x24, - 0x00, - 0x0E, - 0x1F, - 0x33, - 0x84, - 0x95, - 0x84, - 0xB5, - 0xD6, - 0xEE, - 0xE4, - 0xB5, - 0x95, - 0x8C, - 0x75, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x11, - 0x78, - 0xF4, - 0xE0, - 0xF7, - 0xE5, - 0xE6, - 0xE6, - 0xE5, - 0xE6, - 0xE6, - 0xC7, - 0xC8, - 0xC8, - 0xDE, - 0xDC, - 0xDC, - 0xDC, - 0x00, - 0x06, - 0xEC, - 0x00, - 0x0B, - 0xD1, - 0xF5, - 0xDD, - 0xF9, - 0xD1, - 0xF5, - 0xF5, - 0xEA, - 0xEA, - 0xD1, - 0xD1, - 0x00, - 0x05, - 0xF5, - 0x00, - 0x32, - 0xC0, - 0xEA, - 0xC0, - 0xF9, - 0x29, - 0x5E, - 0x6A, - 0x7A, - 0x74, - 0x6D, - 0x06, - 0xEA, - 0xFB, - 0xFB, - 0xFB, - 0xFF, - 0xEA, - 0x05, - 0x75, - 0x7F, - 0x84, - 0x48, - 0xFF, - 0xFF, - 0xFF, - 0xFB, - 0xC4, - 0x18, - 0x18, - 0x18, - 0x06, - 0x68, - 0x84, - 0x84, - 0x52, - 0x18, - 0x02, - 0x17, - 0x17, - 0x5A, - 0x17, - 0x17, - 0x14, - 0x14, - 0x4A, - 0x4A, - 0x15, - 0x4A, - 0x4A, - 0x14, - 0x06, - 0x4A, - 0x00, - 0x56, - 0x17, - 0x1D, - 0x1D, - 0x39, - 0x39, - 0x1D, - 0x67, - 0x13, - 0x4B, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x4B, - 0x65, - 0x95, - 0x93, - 0x88, - 0x2E, - 0x41, - 0x41, - 0x2F, - 0x16, - 0x7B, - 0x93, - 0xA0, - 0x65, - 0x55, - 0x62, - 0x41, - 0x62, - 0x16, - 0x90, - 0x9A, - 0x91, - 0x40, - 0x2F, - 0x62, - 0x41, - 0x66, - 0x95, - 0x9A, - 0x7B, - 0x55, - 0x42, - 0x42, - 0x62, - 0x62, - 0x2F, - 0x2F, - 0x62, - 0x62, - 0x62, - 0x6F, - 0x3E, - 0x63, - 0x2F, - 0x62, - 0x41, - 0x42, - 0x3E, - 0x63, - 0x3E, - 0x41, - 0x62, - 0x62, - 0x42, - 0x2F, - 0x2F, - 0x2F, - 0x41, - 0x3E, - 0x69, - 0x85, - 0x94, - 0xA1, - 0xA6, - 0x9F, - 0x9F, - 0x95, - 0x88, - 0x49, - 0x62, - 0x41, - 0x41, - 0x2F, - 0x0A, - 0x41, - 0x00, - 0x66, - 0x94, - 0xA1, - 0x9B, - 0xA2, - 0x9F, - 0x91, - 0x88, - 0x7C, - 0x5C, - 0x48, - 0x48, - 0x15, - 0x2F, - 0x41, - 0x41, - 0x2E, - 0x41, - 0x41, - 0x25, - 0x8E, - 0x9F, - 0x9F, - 0x65, - 0x2D, - 0x41, - 0x2E, - 0x41, - 0x27, - 0x41, - 0x55, - 0x41, - 0x2E, - 0x40, - 0x2E, - 0x40, - 0x40, - 0x2E, - 0x27, - 0x40, - 0x2E, - 0x2E, - 0x40, - 0x40, - 0x2E, - 0x2E, - 0x16, - 0x55, - 0x2E, - 0x15, - 0x25, - 0x37, - 0x65, - 0x7D, - 0x97, - 0xA1, - 0xA6, - 0x9B, - 0x96, - 0x96, - 0xA0, - 0x97, - 0x87, - 0xBB, - 0xB4, - 0x98, - 0xA4, - 0x9B, - 0x90, - 0x20, - 0x35, - 0x20, - 0x25, - 0x25, - 0x49, - 0x20, - 0x65, - 0x96, - 0xA0, - 0xA4, - 0xB1, - 0xB5, - 0xB5, - 0xA9, - 0x96, - 0x95, - 0x7D, - 0x34, - 0x24, - 0x34, - 0x20, - 0x34, - 0x14, - 0x20, - 0x48, - 0x24, - 0x48, - 0x48, - 0x2C, - 0x2C, - 0x2C, - 0x20, - 0x48, - 0x09, - 0x24, - 0x06, - 0x1F, - 0x00, - 0x0C, - 0x65, - 0x84, - 0x8F, - 0x8C, - 0xA4, - 0xA2, - 0x96, - 0x8C, - 0x7F, - 0x77, - 0x1F, - 0x1F, - 0x00, - 0x00, - 0x00, - 0xEA, - 0xF4, - 0xF7, - 0xE5, - 0xE6, - 0xE5, - 0xE5, - 0xE5, - 0xE6, - 0xE5, - 0xCB, - 0xF3, - 0xED, - 0xF3, - 0xF3, - 0xF7, - 0xE5, - 0xEC, - 0xDC, - 0xEC, - 0xEC, - 0xDD, - 0xF9, - 0xEC, - 0xEC, - 0xF9, - 0xEC, - 0xF9, - 0xF5, - 0xEA, - 0xF5, - 0xF5, - 0xF5, - 0xD1, - 0xF5, - 0xF5, - 0xD1, - 0xF5, - 0xC0, - 0xF5, - 0xF5, - 0xF5, - 0x29, - 0x5F, - 0x6A, - 0x73, - 0x74, - 0x6D, - 0xFF, - 0xF5, - 0xC0, - 0xF5, - 0xF5, - 0xF5, - 0xEA, - 0xFB, - 0xF5, - 0x5C, - 0x7F, - 0x7A, - 0x75, - 0xFF, - 0xFB, - 0xFB, - 0xFF, - 0xFF, - 0x06, - 0xC4, - 0xFF, - 0x06, - 0x80, - 0x7A, - 0x84, - 0x7F, - 0x67, - 0x18, - 0x18, - 0x5A, - 0x5A, - 0x5A, - 0x13, - 0x5A, - 0x5A, - 0x4A, - 0x17, - 0x14, - 0x17, - 0x4A, - 0x4A, - 0x4A, - 0x14, - 0x4A, - 0x0B, - 0x4A, - 0x4A, - 0x13, - 0x5C, - 0x75, - 0x90, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x77, - 0x58, - 0x14, - 0x61, - 0x2E, - 0x2E, - 0x2E, - 0x53, - 0x91, - 0x93, - 0x90, - 0x15, - 0x2E, - 0x55, - 0x3E, - 0x55, - 0x62, - 0x91, - 0xA0, - 0x90, - 0x2E, - 0x2F, - 0x62, - 0x62, - 0x2F, - 0x54, - 0x95, - 0xA0, - 0x88, - 0x2D, - 0x42, - 0x62, - 0x27, - 0x7D, - 0xA0, - 0x95, - 0x52, - 0x2F, - 0x42, - 0x62, - 0x62, - 0x3E, - 0x62, - 0x42, - 0x62, - 0x2F, - 0x2F, - 0x63, - 0x63, - 0x62, - 0x3E, - 0x63, - 0x3E, - 0x62, - 0x62, - 0x2F, - 0x2F, - 0x2F, - 0x3E, - 0x42, - 0x62, - 0x2F, - 0x62, - 0x2F, - 0x62, - 0x62, - 0x3E, - 0x3E, - 0x3E, - 0x71, - 0x7D, - 0x94, - 0x96, - 0x9B, - 0x94, - 0x2D, - 0x2F, - 0x62, - 0x41, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x41, - 0x41, - 0x55, - 0x41, - 0x41, - 0x41, - 0x2E, - 0x41, - 0x66, - 0x8E, - 0xA3, - 0xA1, - 0x9F, - 0x9B, - 0xA6, - 0xA1, - 0x88, - 0x7C, - 0x2D, - 0x2F, - 0x2F, - 0x2F, - 0x55, - 0x27, - 0x37, - 0x40, - 0x97, - 0x9F, - 0x96, - 0x60, - 0x25, - 0x27, - 0x41, - 0x2E, - 0x2E, - 0x27, - 0x41, - 0x27, - 0x55, - 0x41, - 0x2E, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x27, - 0x27, - 0x2E, - 0x27, - 0x04, - 0x40, - 0x00, - 0x17, - 0x2E, - 0x2E, - 0x55, - 0x25, - 0x2D, - 0x2D, - 0x25, - 0x37, - 0x65, - 0x88, - 0x96, - 0x96, - 0x98, - 0xD6, - 0xD9, - 0x4C, - 0xE4, - 0xD5, - 0xA3, - 0x96, - 0xA4, - 0x53, - 0x2D, - 0x00, - 0x05, - 0x49, - 0x00, - 0x11, - 0x20, - 0x53, - 0x94, - 0x97, - 0x95, - 0x96, - 0x91, - 0x97, - 0x88, - 0x53, - 0x11, - 0x48, - 0x20, - 0x20, - 0x48, - 0x24, - 0x2C, - 0x00, - 0x09, - 0x24, - 0x00, - 0x04, - 0x11, - 0x24, - 0x20, - 0x11, - 0x0A, - 0x24, - 0x00, - 0x0E, - 0x1F, - 0x1F, - 0x1F, - 0x34, - 0x65, - 0x75, - 0x88, - 0x88, - 0x7B, - 0x52, - 0x1F, - 0x1D, - 0x39, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x05, - 0xF7, - 0xE0, - 0xE5, - 0xE6, - 0xE5, - 0x00, - 0x04, - 0xE6, - 0x00, - 0x08, - 0xF7, - 0xED, - 0xD4, - 0xD4, - 0xD4, - 0xD6, - 0xF1, - 0xDC, - 0x06, - 0xEC, - 0x00, - 0x07, - 0xD1, - 0xD1, - 0xF5, - 0xF5, - 0xD1, - 0xDD, - 0xF5, - 0x00, - 0x04, - 0xEA, - 0x06, - 0xF5, - 0x00, - 0x15, - 0xF9, - 0x5C, - 0x73, - 0x73, - 0x64, - 0xFF, - 0xF5, - 0xF5, - 0xC0, - 0xF5, - 0xFA, - 0x86, - 0x3D, - 0x22, - 0xCF, - 0xFE, - 0x77, - 0x7A, - 0x84, - 0x60, - 0xEA, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x5F, - 0xFB, - 0x06, - 0x06, - 0xFF, - 0x64, - 0x84, - 0x84, - 0x7C, - 0x06, - 0x67, - 0x18, - 0x5A, - 0x18, - 0x17, - 0x5A, - 0x13, - 0x5A, - 0x14, - 0x4A, - 0x4A, - 0x14, - 0x2C, - 0x17, - 0x0E, - 0x4A, - 0x4A, - 0x4A, - 0x0E, - 0x02, - 0x6B, - 0x91, - 0x8C, - 0x90, - 0x85, - 0x85, - 0x85, - 0x90, - 0x95, - 0x84, - 0x6D, - 0x14, - 0x2E, - 0x4B, - 0x2E, - 0x2D, - 0x88, - 0x93, - 0x91, - 0x49, - 0x2E, - 0x41, - 0x55, - 0x55, - 0x16, - 0x88, - 0x9A, - 0x95, - 0x53, - 0x55, - 0x2F, - 0x41, - 0x41, - 0x2E, - 0x88, - 0xA0, - 0x95, - 0x6E, - 0x2F, - 0x2F, - 0x62, - 0x2E, - 0x90, - 0xA0, - 0x91, - 0x2D, - 0x63, - 0x42, - 0x2F, - 0x62, - 0x2F, - 0x62, - 0x2F, - 0x41, - 0x62, - 0x2F, - 0x41, - 0x62, - 0x62, - 0x3E, - 0x62, - 0x3E, - 0x62, - 0x62, - 0x3E, - 0x63, - 0x00, - 0x04, - 0x62, - 0x00, - 0x4B, - 0x3E, - 0x3E, - 0x42, - 0x2F, - 0x62, - 0x2F, - 0x62, - 0x2F, - 0x2F, - 0x2E, - 0x66, - 0x96, - 0x9B, - 0x7B, - 0x61, - 0x41, - 0x2F, - 0x2F, - 0x62, - 0x2F, - 0x2E, - 0x41, - 0x41, - 0x41, - 0x2E, - 0x27, - 0x55, - 0x41, - 0x41, - 0x2E, - 0x25, - 0x27, - 0x41, - 0x66, - 0x7D, - 0x97, - 0xA4, - 0x9B, - 0xA0, - 0x65, - 0x2D, - 0x37, - 0x2E, - 0x27, - 0x40, - 0x41, - 0x2E, - 0x53, - 0xA1, - 0x9F, - 0x97, - 0x20, - 0x40, - 0x2F, - 0x2F, - 0x41, - 0x41, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x2F, - 0x2E, - 0x41, - 0x2E, - 0x2E, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x2E, - 0x40, - 0x00, - 0x04, - 0x25, - 0x00, - 0x29, - 0x40, - 0x40, - 0x25, - 0x20, - 0x65, - 0xA0, - 0x95, - 0x8A, - 0xD4, - 0x04, - 0x04, - 0xF1, - 0xD8, - 0xA7, - 0xA0, - 0x97, - 0x35, - 0x2D, - 0x2D, - 0x2D, - 0x25, - 0x2D, - 0x49, - 0x20, - 0x2C, - 0x20, - 0x35, - 0x52, - 0x37, - 0x35, - 0x20, - 0x24, - 0x20, - 0x48, - 0x20, - 0x20, - 0x48, - 0x24, - 0x48, - 0x11, - 0x34, - 0x00, - 0x08, - 0x24, - 0x01, - 0x33, - 0x01, - 0x2B, - 0x05, - 0x24, - 0x00, - 0x04, - 0x1F, - 0x1F, - 0x1F, - 0x24, - 0x07, - 0x1F, - 0x01, - 0x39, - 0x09, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x3E, - 0xF7, - 0xE5, - 0xE0, - 0xE0, - 0xF4, - 0xE5, - 0xE5, - 0xE6, - 0xE5, - 0xCB, - 0xE3, - 0xD4, - 0xD4, - 0xD4, - 0xD6, - 0xDD, - 0xEC, - 0xF9, - 0xDD, - 0xF5, - 0xF9, - 0xF5, - 0xEC, - 0xF9, - 0xEC, - 0xF9, - 0xEC, - 0xF9, - 0xF9, - 0xD1, - 0xD1, - 0xD1, - 0xF5, - 0xF5, - 0xF5, - 0xEA, - 0xEA, - 0xF5, - 0xFF, - 0xEA, - 0x29, - 0x64, - 0x6A, - 0x74, - 0x58, - 0xF5, - 0x05, - 0xC0, - 0xF5, - 0x29, - 0x68, - 0x64, - 0x80, - 0x6D, - 0x5E, - 0x5E, - 0x5B, - 0x64, - 0x6B, - 0xFE, - 0xFE, - 0xF9, - 0x06, - 0xFF, - 0x00, - 0x0D, - 0x58, - 0x84, - 0x84, - 0x7F, - 0x67, - 0x06, - 0x18, - 0x18, - 0x18, - 0x5A, - 0x17, - 0x5A, - 0x5A, - 0x00, - 0x04, - 0x17, - 0x00, - 0x60, - 0x5A, - 0x17, - 0x4A, - 0x0E, - 0x4B, - 0x0E, - 0x4A, - 0x0E, - 0x2C, - 0x7F, - 0x8C, - 0x94, - 0xD6, - 0xD9, - 0xE4, - 0xD9, - 0xD6, - 0x94, - 0x95, - 0x91, - 0x52, - 0x15, - 0x16, - 0x55, - 0x14, - 0x88, - 0x93, - 0x95, - 0x53, - 0x2E, - 0x55, - 0x41, - 0x2F, - 0x2E, - 0x65, - 0x95, - 0x93, - 0x7B, - 0x2E, - 0x41, - 0x62, - 0x62, - 0x2F, - 0x41, - 0x91, - 0xA0, - 0x90, - 0x2D, - 0x3E, - 0x42, - 0x41, - 0x54, - 0x91, - 0x9F, - 0x88, - 0x4B, - 0x62, - 0x63, - 0x3E, - 0x63, - 0x2F, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x2F, - 0x2F, - 0x62, - 0x2F, - 0x42, - 0x14, - 0xFF, - 0x18, - 0x15, - 0x55, - 0x3E, - 0x3E, - 0x2F, - 0x62, - 0x2F, - 0x3E, - 0x2F, - 0x62, - 0x41, - 0x62, - 0x2F, - 0x41, - 0x2E, - 0x6C, - 0x9B, - 0xA6, - 0x65, - 0x16, - 0x62, - 0x04, - 0x41, - 0x00, - 0x2A, - 0x2E, - 0x2F, - 0x2F, - 0x2F, - 0x55, - 0x41, - 0x2E, - 0x41, - 0x2E, - 0x41, - 0x2E, - 0x41, - 0x2E, - 0x40, - 0x2E, - 0x53, - 0x8E, - 0x9B, - 0x96, - 0x7C, - 0x16, - 0x41, - 0x41, - 0x2E, - 0x27, - 0x40, - 0x25, - 0x65, - 0x96, - 0x9F, - 0x88, - 0x20, - 0x55, - 0x27, - 0x2E, - 0x40, - 0x2F, - 0x41, - 0x2F, - 0x2E, - 0x2E, - 0x40, - 0x07, - 0x2E, - 0x00, - 0x1C, - 0x25, - 0x25, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x2E, - 0x25, - 0x35, - 0x2D, - 0x25, - 0x25, - 0x49, - 0x52, - 0xA1, - 0x96, - 0x96, - 0xB5, - 0xD7, - 0xC6, - 0xB5, - 0xA7, - 0xA0, - 0x97, - 0x54, - 0x20, - 0x2D, - 0x49, - 0x05, - 0x20, - 0x00, - 0x0E, - 0x49, - 0x2D, - 0x20, - 0x20, - 0x2C, - 0x2C, - 0x20, - 0x2C, - 0x48, - 0x11, - 0x34, - 0x11, - 0x2C, - 0x24, - 0x05, - 0x2C, - 0x06, - 0x24, - 0x00, - 0x09, - 0x2B, - 0x24, - 0x11, - 0x2B, - 0x24, - 0x1F, - 0x1F, - 0x1F, - 0x24, - 0x00, - 0x07, - 0x1F, - 0x01, - 0x39, - 0x05, - 0x1F, - 0x00, - 0x06, - 0x39, - 0x1F, - 0x39, - 0x1F, - 0x1F, - 0x1D, - 0x00, - 0x00, - 0x01, - 0xE5, - 0x01, - 0xF7, - 0x04, - 0xE5, - 0x00, - 0x0B, - 0xE6, - 0xE5, - 0xE5, - 0xF3, - 0xDA, - 0xDA, - 0xD4, - 0xD4, - 0xE4, - 0xE6, - 0xDC, - 0x00, - 0x05, - 0xEC, - 0x00, - 0x34, - 0xF9, - 0xF5, - 0xF5, - 0xEA, - 0xF5, - 0xDD, - 0xF9, - 0xF5, - 0xF9, - 0xEC, - 0xF9, - 0xD1, - 0xD1, - 0xD1, - 0xF9, - 0xF5, - 0xF5, - 0xF5, - 0x58, - 0x74, - 0x73, - 0x64, - 0xF5, - 0xC0, - 0xF5, - 0xF5, - 0xF9, - 0x79, - 0x7F, - 0xC4, - 0xDA, - 0xD6, - 0xD9, - 0xE1, - 0x7B, - 0x64, - 0x6B, - 0x5E, - 0x5F, - 0x92, - 0xB6, - 0xF5, - 0xFF, - 0xFF, - 0xFF, - 0x05, - 0x77, - 0x84, - 0x84, - 0x7C, - 0xFF, - 0x67, - 0x06, - 0x18, - 0x07, - 0x5A, - 0x00, - 0x38, - 0x17, - 0x5A, - 0x17, - 0x2C, - 0x4A, - 0x0E, - 0x2C, - 0x7F, - 0x8C, - 0x97, - 0xD5, - 0xF1, - 0x03, - 0xFA, - 0xD6, - 0x8A, - 0x84, - 0x95, - 0x7B, - 0x4A, - 0x61, - 0x0E, - 0x6D, - 0x8C, - 0x93, - 0x90, - 0x2E, - 0x55, - 0x2E, - 0x55, - 0x41, - 0x55, - 0x35, - 0x90, - 0x9A, - 0x90, - 0x2E, - 0x41, - 0x2F, - 0x41, - 0x2F, - 0x55, - 0x6C, - 0x93, - 0x95, - 0x65, - 0x55, - 0x2F, - 0x41, - 0x55, - 0x59, - 0x96, - 0xA0, - 0x65, - 0x2E, - 0x2F, - 0x04, - 0x62, - 0x00, - 0x22, - 0x63, - 0x3E, - 0x3E, - 0x2F, - 0x2F, - 0x2F, - 0x41, - 0x2F, - 0x62, - 0x14, - 0xE8, - 0xD6, - 0xE4, - 0xE9, - 0xFB, - 0x2F, - 0x3E, - 0x3E, - 0x16, - 0x28, - 0x42, - 0x2F, - 0x41, - 0x2F, - 0x2F, - 0x2F, - 0x62, - 0x41, - 0x40, - 0x8E, - 0x9B, - 0xA1, - 0x40, - 0x55, - 0x05, - 0x2F, - 0x00, - 0x20, - 0x2E, - 0x41, - 0x55, - 0x41, - 0x41, - 0x40, - 0x2E, - 0x41, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x37, - 0x2E, - 0x37, - 0x97, - 0x9F, - 0xA1, - 0x60, - 0x2E, - 0x41, - 0x2F, - 0x2F, - 0x55, - 0x41, - 0x25, - 0x7D, - 0x9F, - 0xA0, - 0x65, - 0x20, - 0x04, - 0x2E, - 0x00, - 0x14, - 0x40, - 0x40, - 0x2E, - 0x2E, - 0x16, - 0x2E, - 0x25, - 0x40, - 0x25, - 0x40, - 0x40, - 0x2E, - 0x40, - 0x2D, - 0x35, - 0x2D, - 0x25, - 0x2D, - 0x25, - 0x2D, - 0x05, - 0x25, - 0x00, - 0x11, - 0x20, - 0x53, - 0x94, - 0xA1, - 0x96, - 0xA4, - 0xA6, - 0x96, - 0x97, - 0x7D, - 0x25, - 0x20, - 0x25, - 0x15, - 0x2D, - 0x2D, - 0x2D, - 0x00, - 0x09, - 0x20, - 0x00, - 0x08, - 0x48, - 0x20, - 0x11, - 0x34, - 0x11, - 0x14, - 0x14, - 0x48, - 0x06, - 0x24, - 0x01, - 0x11, - 0x01, - 0x11, - 0x05, - 0x24, - 0x00, - 0x04, - 0x2B, - 0x11, - 0x2B, - 0x11, - 0x08, - 0x1F, - 0x01, - 0x39, - 0x0A, - 0x1F, - 0x00, - 0x03, - 0x39, - 0x1F, - 0x1F, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0xE6, - 0xE6, - 0xE6, - 0xF4, - 0xE6, - 0xE5, - 0xE5, - 0xE5, - 0xF2, - 0xEB, - 0xD6, - 0xD4, - 0xD4, - 0xD4, - 0xE9, - 0xF4, - 0xDC, - 0xDC, - 0x07, - 0xF9, - 0x05, - 0xF5, - 0x00, - 0x32, - 0xDD, - 0xF5, - 0xD1, - 0xDD, - 0xF5, - 0xF5, - 0xD1, - 0xD1, - 0xF5, - 0xF9, - 0x5E, - 0x6A, - 0x73, - 0x60, - 0xF5, - 0xFB, - 0xC0, - 0xF5, - 0x29, - 0x68, - 0x64, - 0xE9, - 0xD5, - 0xD2, - 0xD5, - 0xD5, - 0xD5, - 0xD4, - 0xDA, - 0xE1, - 0xB2, - 0x6B, - 0x68, - 0x81, - 0xFF, - 0xFF, - 0xFF, - 0x58, - 0x7F, - 0x84, - 0x90, - 0x06, - 0xC4, - 0x06, - 0xFF, - 0x67, - 0x67, - 0x67, - 0x18, - 0x67, - 0x05, - 0x17, - 0x00, - 0x71, - 0x5A, - 0x5A, - 0x5A, - 0x17, - 0x5A, - 0x17, - 0x14, - 0x5A, - 0x5A, - 0x52, - 0x84, - 0x8C, - 0xA3, - 0xD7, - 0xD9, - 0xDA, - 0xB5, - 0x97, - 0x8C, - 0x91, - 0x6E, - 0x2D, - 0x2D, - 0x11, - 0x7F, - 0x96, - 0x95, - 0x66, - 0x2E, - 0x55, - 0x2F, - 0x62, - 0x2E, - 0x25, - 0x6D, - 0x95, - 0x93, - 0x90, - 0x2E, - 0x55, - 0x2F, - 0x41, - 0x55, - 0x41, - 0x2E, - 0x90, - 0x9F, - 0x97, - 0x15, - 0x63, - 0x3E, - 0x42, - 0x2E, - 0x88, - 0xA0, - 0xA1, - 0x52, - 0x2F, - 0x41, - 0x55, - 0x2F, - 0x41, - 0x62, - 0x2F, - 0x3E, - 0x2F, - 0x62, - 0x3E, - 0x3E, - 0x2F, - 0x55, - 0xDB, - 0xD8, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0x4B, - 0x55, - 0x06, - 0xEA, - 0xEA, - 0xFF, - 0x13, - 0x2F, - 0x41, - 0x55, - 0x41, - 0x41, - 0x27, - 0x2E, - 0x41, - 0x97, - 0x9B, - 0x90, - 0x2C, - 0x27, - 0x55, - 0x41, - 0x62, - 0x55, - 0x2F, - 0x55, - 0x41, - 0x2E, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x41, - 0x2F, - 0x41, - 0x27, - 0x00, - 0x04, - 0x2E, - 0x00, - 0x1D, - 0x53, - 0xA1, - 0x9F, - 0x97, - 0x34, - 0x2E, - 0x40, - 0x2E, - 0x41, - 0x2F, - 0x41, - 0x25, - 0x94, - 0x9F, - 0x96, - 0x52, - 0x49, - 0x40, - 0x40, - 0x40, - 0x25, - 0x25, - 0x40, - 0x25, - 0x2E, - 0x40, - 0x25, - 0x40, - 0x40, - 0x00, - 0x07, - 0x25, - 0x00, - 0x15, - 0x2D, - 0x25, - 0x25, - 0x25, - 0x49, - 0x25, - 0x49, - 0x2D, - 0x49, - 0x25, - 0x25, - 0x2D, - 0x53, - 0x65, - 0x65, - 0x65, - 0x53, - 0x25, - 0x2C, - 0x20, - 0x49, - 0x00, - 0x04, - 0x20, - 0x00, - 0x07, - 0x2D, - 0x2D, - 0x2D, - 0x20, - 0x48, - 0x20, - 0x2C, - 0x00, - 0x06, - 0x20, - 0x00, - 0x08, - 0x2C, - 0x24, - 0x2C, - 0x11, - 0x24, - 0x24, - 0x24, - 0x11, - 0x0C, - 0x24, - 0x00, - 0x07, - 0x1F, - 0x24, - 0x1F, - 0x1F, - 0x11, - 0x24, - 0x2B, - 0x00, - 0x05, - 0x1F, - 0x00, - 0x03, - 0x39, - 0x1F, - 0x1F, - 0x00, - 0x04, - 0x39, - 0x00, - 0x05, - 0x1F, - 0x1F, - 0x1F, - 0x39, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x10, - 0xE0, - 0xE5, - 0xE5, - 0xE5, - 0xE6, - 0xE5, - 0xE6, - 0xE5, - 0xE5, - 0xDD, - 0x6F, - 0xBB, - 0xDA, - 0xDA, - 0xEC, - 0xE6, - 0x04, - 0xEC, - 0x00, - 0x18, - 0xF9, - 0xEC, - 0xF5, - 0xF9, - 0xF5, - 0xF9, - 0xF5, - 0xF9, - 0xF9, - 0xD1, - 0xF5, - 0xF5, - 0xEC, - 0xF9, - 0xD1, - 0xD1, - 0xD1, - 0xF5, - 0xF9, - 0x29, - 0x68, - 0x74, - 0x68, - 0x29, - 0x04, - 0xF5, - 0x00, - 0x1E, - 0x29, - 0x77, - 0x89, - 0xE9, - 0xDA, - 0xD6, - 0xD5, - 0xD5, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xD6, - 0x81, - 0x84, - 0x48, - 0xF5, - 0xFF, - 0x29, - 0x6B, - 0x84, - 0x84, - 0x7C, - 0xFF, - 0x06, - 0xFF, - 0x67, - 0x1D, - 0x67, - 0x06, - 0x04, - 0x18, - 0x00, - 0x4B, - 0x5A, - 0x17, - 0x17, - 0x17, - 0x0E, - 0x17, - 0x17, - 0x5A, - 0x17, - 0x5A, - 0x5A, - 0x17, - 0x13, - 0x49, - 0x75, - 0x8C, - 0x91, - 0x96, - 0x96, - 0x8C, - 0x91, - 0x90, - 0x53, - 0x15, - 0x2D, - 0x14, - 0x77, - 0x95, - 0x93, - 0x8E, - 0x2D, - 0x2E, - 0x2E, - 0x2E, - 0x55, - 0x2E, - 0x20, - 0x90, - 0x93, - 0x95, - 0x66, - 0x16, - 0x41, - 0x55, - 0x2E, - 0x41, - 0x2F, - 0x2E, - 0x6C, - 0x93, - 0x93, - 0x7B, - 0x55, - 0x42, - 0x3E, - 0x2F, - 0x2F, - 0x97, - 0x9B, - 0x90, - 0x4A, - 0x27, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x2F, - 0x41, - 0x55, - 0x2F, - 0x2F, - 0x62, - 0x3E, - 0x18, - 0xC6, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x3C, - 0x4C, - 0x2F, - 0x01, - 0xD9, - 0xD5, - 0xD7, - 0xDF, - 0xE8, - 0x4B, - 0x2F, - 0x41, - 0x2E, - 0x41, - 0x55, - 0x41, - 0x2E, - 0x54, - 0x96, - 0x9B, - 0x7D, - 0x20, - 0x41, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x41, - 0x2F, - 0x62, - 0x2F, - 0x2F, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x2E, - 0x41, - 0x2E, - 0x41, - 0x41, - 0x25, - 0x65, - 0xA4, - 0x9F, - 0x88, - 0x11, - 0x40, - 0x25, - 0x2E, - 0x40, - 0x2E, - 0x40, - 0x37, - 0x97, - 0x9F, - 0x90, - 0x2D, - 0x2E, - 0x25, - 0x05, - 0x40, - 0x00, - 0x1C, - 0x25, - 0x25, - 0x2D, - 0x25, - 0x2D, - 0x25, - 0x2D, - 0x40, - 0x25, - 0x25, - 0x49, - 0x25, - 0x49, - 0x25, - 0x49, - 0x2D, - 0x25, - 0x2D, - 0x2D, - 0x25, - 0x49, - 0x49, - 0x2D, - 0x25, - 0x2D, - 0x2D, - 0x20, - 0x2D, - 0x05, - 0x20, - 0x00, - 0x16, - 0x2D, - 0x15, - 0x20, - 0x20, - 0x2C, - 0x20, - 0x2C, - 0x20, - 0x2C, - 0x2D, - 0x20, - 0x20, - 0x2C, - 0x20, - 0x2C, - 0x11, - 0x24, - 0x11, - 0x24, - 0x11, - 0x24, - 0x11, - 0x09, - 0x24, - 0x00, - 0x08, - 0x1F, - 0x24, - 0x1F, - 0x24, - 0x24, - 0x24, - 0x1F, - 0x24, - 0x05, - 0x1F, - 0x01, - 0x24, - 0x01, - 0x2B, - 0x04, - 0x1F, - 0x00, - 0x06, - 0x1D, - 0x39, - 0x1D, - 0x1F, - 0x1F, - 0x1F, - 0x05, - 0x39, - 0x00, - 0x00, - 0x00, - 0x4F, - 0xF7, - 0xF4, - 0xE5, - 0xF4, - 0xF4, - 0xF4, - 0xE5, - 0xE5, - 0xE5, - 0x3D, - 0x51, - 0x5D, - 0x5F, - 0xF0, - 0xDC, - 0xDC, - 0xDC, - 0xEC, - 0xEC, - 0xF9, - 0xF5, - 0xF9, - 0xF5, - 0xF9, - 0xF9, - 0xF9, - 0xF5, - 0xF9, - 0xF5, - 0xF9, - 0xF5, - 0xF9, - 0xD1, - 0xEC, - 0xD1, - 0xF9, - 0xD1, - 0xD1, - 0xF9, - 0x5C, - 0x6A, - 0x73, - 0x6D, - 0xF9, - 0xEA, - 0xC0, - 0x05, - 0xF5, - 0x78, - 0x39, - 0xF9, - 0xF5, - 0xEA, - 0xFB, - 0xE9, - 0xE8, - 0xE4, - 0xDA, - 0xD4, - 0xD5, - 0xE8, - 0x6B, - 0x88, - 0xFF, - 0xFF, - 0xFB, - 0x39, - 0x74, - 0x84, - 0x7F, - 0x1D, - 0xFF, - 0xFF, - 0x06, - 0x06, - 0xC4, - 0x06, - 0x67, - 0x67, - 0x00, - 0x04, - 0x18, - 0x00, - 0x49, - 0x01, - 0x18, - 0x5A, - 0x5A, - 0x5A, - 0x17, - 0x5A, - 0x5A, - 0x17, - 0x4A, - 0x17, - 0x17, - 0x06, - 0x64, - 0x8C, - 0x8C, - 0x7B, - 0x65, - 0x65, - 0x6E, - 0x14, - 0x4A, - 0x2D, - 0x15, - 0x48, - 0x90, - 0x93, - 0x91, - 0x53, - 0x15, - 0x61, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x77, - 0x93, - 0x93, - 0x7D, - 0x2E, - 0x62, - 0x2F, - 0x2F, - 0x41, - 0x2F, - 0x55, - 0x2F, - 0x27, - 0x88, - 0x9A, - 0x90, - 0x49, - 0x2F, - 0x55, - 0x2F, - 0x55, - 0x54, - 0x95, - 0x9F, - 0x7B, - 0x2E, - 0x2F, - 0x41, - 0x55, - 0x41, - 0x55, - 0x41, - 0x2F, - 0x41, - 0x55, - 0x62, - 0x14, - 0xE4, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x04, - 0xD9, - 0x55, - 0x02, - 0xE8, - 0x04, - 0xD2, - 0x00, - 0x10, - 0xC6, - 0x4B, - 0x41, - 0x55, - 0x2F, - 0x55, - 0x41, - 0x2E, - 0x41, - 0x2E, - 0x6C, - 0xA0, - 0xA0, - 0x7C, - 0x2D, - 0x41, - 0x04, - 0x2E, - 0x01, - 0x40, - 0x04, - 0x2E, - 0x00, - 0x05, - 0x55, - 0x2E, - 0x40, - 0x2E, - 0x55, - 0x00, - 0x04, - 0x2E, - 0x00, - 0x08, - 0x40, - 0x2D, - 0x6C, - 0xA6, - 0x9B, - 0x75, - 0x2C, - 0x27, - 0x04, - 0x40, - 0x00, - 0x31, - 0x2D, - 0x54, - 0x95, - 0x9F, - 0x88, - 0x24, - 0x2D, - 0x41, - 0x27, - 0x40, - 0x2E, - 0x25, - 0x61, - 0x25, - 0x25, - 0x2D, - 0x25, - 0x25, - 0x25, - 0x49, - 0x25, - 0x2D, - 0x2D, - 0x2D, - 0x25, - 0x49, - 0x25, - 0x20, - 0x25, - 0x20, - 0x49, - 0x49, - 0x2D, - 0x20, - 0x49, - 0x20, - 0x49, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x20, - 0x20, - 0x2D, - 0x20, - 0x2C, - 0x20, - 0x2C, - 0x00, - 0x05, - 0x20, - 0x00, - 0x0A, - 0x11, - 0x2C, - 0x20, - 0x20, - 0x20, - 0x48, - 0x11, - 0x2C, - 0x24, - 0x11, - 0x04, - 0x24, - 0x01, - 0x11, - 0x04, - 0x24, - 0x00, - 0x08, - 0x1F, - 0x1F, - 0x24, - 0x1F, - 0x1F, - 0x24, - 0x1F, - 0x24, - 0x05, - 0x1F, - 0x01, - 0x24, - 0x0B, - 0x1F, - 0x00, - 0x08, - 0x39, - 0x19, - 0x39, - 0x39, - 0x1D, - 0x39, - 0x1D, - 0x39, - 0x00, - 0x00, - 0x01, - 0xF4, - 0x04, - 0xE5, - 0x00, - 0x09, - 0xE6, - 0xF4, - 0xE5, - 0xE5, - 0x4F, - 0x5B, - 0x5B, - 0x92, - 0xE6, - 0x00, - 0x06, - 0xEC, - 0x00, - 0x03, - 0xF9, - 0xF9, - 0xF9, - 0x00, - 0x04, - 0xF5, - 0x00, - 0x32, - 0xF9, - 0xF9, - 0xF9, - 0xF5, - 0xF9, - 0xF5, - 0xF9, - 0xF9, - 0xF5, - 0xF5, - 0xF9, - 0xF9, - 0x5B, - 0x6A, - 0x6A, - 0x1D, - 0xF9, - 0x29, - 0xF5, - 0xF5, - 0x29, - 0x74, - 0x8D, - 0xF3, - 0xF0, - 0xF7, - 0xF4, - 0xCF, - 0xFA, - 0xF9, - 0xF5, - 0xC4, - 0xE9, - 0x67, - 0x7A, - 0x60, - 0xF5, - 0xFF, - 0xF5, - 0x6D, - 0x7A, - 0x84, - 0x6D, - 0xC0, - 0xFF, - 0xFF, - 0xFF, - 0x67, - 0x06, - 0x67, - 0x06, - 0x18, - 0x01, - 0x17, - 0x05, - 0x18, - 0x00, - 0x17, - 0x5A, - 0x18, - 0x17, - 0x17, - 0x0E, - 0x17, - 0x80, - 0x8C, - 0x8C, - 0x90, - 0x13, - 0x17, - 0x13, - 0x14, - 0x4A, - 0x4A, - 0x4A, - 0x13, - 0x7B, - 0x8F, - 0x93, - 0x6C, - 0x15, - 0x00, - 0x04, - 0x2E, - 0x00, - 0x1D, - 0x4B, - 0x60, - 0x91, - 0x93, - 0x91, - 0x2E, - 0x2E, - 0x2E, - 0x55, - 0x2E, - 0x55, - 0x2F, - 0x62, - 0x62, - 0x15, - 0x7B, - 0xA0, - 0xA0, - 0x6C, - 0x2E, - 0x41, - 0x41, - 0x55, - 0x2E, - 0x6C, - 0x96, - 0x95, - 0x53, - 0x55, - 0x00, - 0x05, - 0x2F, - 0x00, - 0x0D, - 0x55, - 0x41, - 0x2F, - 0x2F, - 0x0B, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xD7, - 0x16, - 0x0F, - 0xDB, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x20, - 0xD7, - 0x16, - 0x27, - 0x55, - 0x41, - 0x2F, - 0x55, - 0x41, - 0x55, - 0x41, - 0x2E, - 0x25, - 0x8E, - 0x9F, - 0x91, - 0x49, - 0x16, - 0x2E, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x40, - 0x2E, - 0x25, - 0x40, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x16, - 0x2F, - 0x04, - 0x2E, - 0x00, - 0x2D, - 0x40, - 0x2D, - 0x7D, - 0xA0, - 0xA0, - 0x65, - 0x2D, - 0x27, - 0x2E, - 0x40, - 0x25, - 0x40, - 0x20, - 0x6C, - 0x96, - 0xA0, - 0x88, - 0x33, - 0x1F, - 0x2B, - 0x15, - 0x4B, - 0x2E, - 0x27, - 0x2E, - 0x40, - 0x25, - 0x25, - 0x49, - 0x49, - 0x2E, - 0x25, - 0x61, - 0x25, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x49, - 0x20, - 0x2D, - 0x2D, - 0x49, - 0x00, - 0x05, - 0x20, - 0x01, - 0x2C, - 0x05, - 0x20, - 0x00, - 0x1B, - 0x2D, - 0x2D, - 0x20, - 0x20, - 0x20, - 0x2C, - 0x2C, - 0x11, - 0x2C, - 0x2C, - 0x20, - 0x2C, - 0x2C, - 0x11, - 0x24, - 0x24, - 0x11, - 0x24, - 0x24, - 0x11, - 0x11, - 0x24, - 0x24, - 0x1F, - 0x1F, - 0x24, - 0x2B, - 0x00, - 0x04, - 0x24, - 0x00, - 0x1E, - 0x1F, - 0x24, - 0x1F, - 0x1D, - 0x1A, - 0x1A, - 0x19, - 0x50, - 0x19, - 0x19, - 0x19, - 0x1F, - 0x39, - 0x1F, - 0x1F, - 0x39, - 0x1F, - 0x39, - 0x1F, - 0x1F, - 0x1F, - 0x39, - 0x1D, - 0x1F, - 0x1D, - 0x1D, - 0x39, - 0x39, - 0x19, - 0x39, - 0x00, - 0x00, - 0x00, - 0x15, - 0xE5, - 0xE5, - 0xE0, - 0xE6, - 0xDE, - 0xE5, - 0xE5, - 0xE5, - 0xF4, - 0x5C, - 0x5B, - 0x5B, - 0xD3, - 0xEC, - 0xDC, - 0xEC, - 0xFA, - 0xEC, - 0xFA, - 0xFA, - 0xD3, - 0x00, - 0x04, - 0xF9, - 0x01, - 0xF5, - 0x04, - 0xF9, - 0x00, - 0x27, - 0xEC, - 0xD1, - 0xF9, - 0xF9, - 0xEC, - 0xFA, - 0xFA, - 0xC1, - 0x50, - 0x68, - 0x74, - 0x77, - 0xF9, - 0xF5, - 0xC0, - 0xF5, - 0xF9, - 0x5F, - 0x6A, - 0xFB, - 0xD5, - 0xD5, - 0xD6, - 0xDF, - 0xE7, - 0xF1, - 0xF0, - 0xF4, - 0xFE, - 0xF9, - 0xB6, - 0x5C, - 0xFF, - 0xC0, - 0x05, - 0x81, - 0x74, - 0x7A, - 0x7F, - 0x00, - 0x07, - 0xFF, - 0x01, - 0x06, - 0x01, - 0xFF, - 0x0B, - 0x18, - 0x00, - 0x0B, - 0x5A, - 0x13, - 0x5A, - 0x13, - 0x13, - 0x1D, - 0x74, - 0x91, - 0x91, - 0x53, - 0x14, - 0x00, - 0x05, - 0x4A, - 0x00, - 0x59, - 0x14, - 0x60, - 0x84, - 0x8F, - 0x90, - 0x2D, - 0x4B, - 0x2E, - 0x61, - 0x2E, - 0x55, - 0x2C, - 0x74, - 0x93, - 0x93, - 0x66, - 0x2E, - 0x55, - 0x41, - 0x2E, - 0x55, - 0x55, - 0x2E, - 0x41, - 0x2E, - 0x52, - 0x95, - 0xA0, - 0x97, - 0x41, - 0x55, - 0x41, - 0x55, - 0x41, - 0x41, - 0x49, - 0x84, - 0x9A, - 0x88, - 0x25, - 0x2E, - 0x55, - 0x2F, - 0x2F, - 0x55, - 0x2F, - 0x2F, - 0x2F, - 0x16, - 0x52, - 0xA7, - 0xAD, - 0xB5, - 0xD7, - 0x3E, - 0x55, - 0x02, - 0xD6, - 0xD2, - 0xD2, - 0xD2, - 0xD5, - 0x3E, - 0x16, - 0x2F, - 0x2F, - 0x55, - 0x2E, - 0x27, - 0x2E, - 0x2F, - 0x2E, - 0x40, - 0x2E, - 0x27, - 0x97, - 0x9F, - 0x94, - 0x14, - 0x55, - 0x2F, - 0x16, - 0x16, - 0x2E, - 0x2E, - 0x25, - 0x40, - 0x40, - 0x55, - 0x00, - 0x09, - 0x2E, - 0x00, - 0x20, - 0x55, - 0x2E, - 0x2D, - 0x88, - 0x9F, - 0x96, - 0x52, - 0x25, - 0x2E, - 0x2E, - 0x2E, - 0x40, - 0x25, - 0x20, - 0x7D, - 0x96, - 0x9F, - 0x93, - 0x90, - 0x75, - 0x77, - 0x34, - 0x1F, - 0x09, - 0x20, - 0x2E, - 0x2E, - 0x2E, - 0x25, - 0x2D, - 0x25, - 0x2D, - 0x04, - 0x25, - 0x00, - 0x0B, - 0x2D, - 0x25, - 0x20, - 0x49, - 0x20, - 0x2D, - 0x15, - 0x15, - 0x15, - 0x2D, - 0x2D, - 0x00, - 0x06, - 0x20, - 0x01, - 0x2D, - 0x01, - 0x2D, - 0x04, - 0x20, - 0x00, - 0x0E, - 0x14, - 0x20, - 0x20, - 0x20, - 0x2C, - 0x2C, - 0x11, - 0x2C, - 0x2C, - 0x11, - 0x24, - 0x11, - 0x11, - 0x11, - 0x08, - 0x24, - 0x01, - 0x1F, - 0x01, - 0x24, - 0x05, - 0x1F, - 0x00, - 0x0E, - 0x1D, - 0x0C, - 0x5C, - 0x64, - 0x74, - 0x73, - 0x7A, - 0x84, - 0x74, - 0x77, - 0x39, - 0x1F, - 0x39, - 0x39, - 0x04, - 0x1F, - 0x00, - 0x0B, - 0x39, - 0x19, - 0x39, - 0x1F, - 0x1D, - 0x1F, - 0x1D, - 0x19, - 0x39, - 0x19, - 0x39, - 0x00, - 0x00, - 0x00, - 0x00, - 0x12, - 0xDE, - 0xF7, - 0xE5, - 0xE5, - 0xF7, - 0xE5, - 0xE5, - 0xF4, - 0xE5, - 0xD0, - 0x5F, - 0x5D, - 0x4F, - 0xF4, - 0xEC, - 0xF9, - 0xEC, - 0xFA, - 0x04, - 0xF9, - 0x01, - 0xD3, - 0x04, - 0xF9, - 0x01, - 0xF5, - 0x04, - 0xF9, - 0x00, - 0x32, - 0xEC, - 0xD3, - 0x50, - 0x5E, - 0x5B, - 0x5B, - 0x68, - 0x6A, - 0x74, - 0x5E, - 0xFA, - 0xF5, - 0xF5, - 0xF5, - 0x29, - 0x68, - 0x5E, - 0xEB, - 0xD5, - 0xD5, - 0xD5, - 0xD2, - 0xD5, - 0xD5, - 0xD4, - 0xDA, - 0xE7, - 0x29, - 0x64, - 0x58, - 0xF5, - 0x05, - 0xF5, - 0x5F, - 0x7A, - 0x84, - 0x77, - 0xF5, - 0xFF, - 0xFF, - 0xFF, - 0x05, - 0xFF, - 0xFF, - 0xFF, - 0x06, - 0x67, - 0x06, - 0x67, - 0x67, - 0x06, - 0x18, - 0x00, - 0x23, - 0x5A, - 0x18, - 0x18, - 0x13, - 0x5A, - 0x06, - 0x56, - 0x84, - 0x8F, - 0x88, - 0x13, - 0x17, - 0x14, - 0x4A, - 0x14, - 0x17, - 0x14, - 0x1D, - 0x75, - 0x8F, - 0x95, - 0x65, - 0x0E, - 0x0B, - 0x4B, - 0x0B, - 0x2E, - 0x15, - 0x6D, - 0x95, - 0x93, - 0x88, - 0x2E, - 0x55, - 0x55, - 0x00, - 0x04, - 0x2E, - 0x00, - 0x2D, - 0x41, - 0x55, - 0x2C, - 0x88, - 0xA0, - 0x96, - 0x6C, - 0x2E, - 0x55, - 0x2F, - 0x2F, - 0x2F, - 0x15, - 0x6B, - 0x95, - 0xA0, - 0x94, - 0x2E, - 0x55, - 0x41, - 0x41, - 0x55, - 0x2F, - 0x55, - 0x55, - 0x2F, - 0x49, - 0x90, - 0xA0, - 0x96, - 0x6C, - 0x16, - 0x55, - 0x2E, - 0x3E, - 0xC2, - 0xD2, - 0xD2, - 0xD2, - 0xBB, - 0x15, - 0x2F, - 0x55, - 0x2F, - 0x55, - 0x00, - 0x08, - 0x2E, - 0x00, - 0x05, - 0x54, - 0x96, - 0x9F, - 0x7B, - 0x14, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x82, - 0x40, - 0x2E, - 0x25, - 0x25, - 0x40, - 0x25, - 0x2D, - 0x2E, - 0x55, - 0x55, - 0x2E, - 0x25, - 0x25, - 0x2E, - 0x4B, - 0x0F, - 0x25, - 0x94, - 0x9F, - 0x91, - 0x20, - 0x2D, - 0x40, - 0x40, - 0x2E, - 0x2E, - 0x40, - 0x2D, - 0x54, - 0x7D, - 0x94, - 0xA1, - 0xA0, - 0x9F, - 0x96, - 0x90, - 0x88, - 0x7C, - 0x34, - 0x1F, - 0x1F, - 0x11, - 0x20, - 0x2E, - 0x2E, - 0x25, - 0x49, - 0x2D, - 0x20, - 0x2D, - 0x25, - 0x2E, - 0x2D, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x20, - 0x2D, - 0x2D, - 0x15, - 0x14, - 0x2D, - 0x20, - 0x20, - 0x2C, - 0x20, - 0x20, - 0x2D, - 0x2D, - 0x20, - 0x14, - 0x20, - 0x20, - 0x2C, - 0x2C, - 0x20, - 0x2C, - 0x20, - 0x11, - 0x2C, - 0x11, - 0x11, - 0x24, - 0x24, - 0x24, - 0x11, - 0x24, - 0x24, - 0x2B, - 0x24, - 0x2B, - 0x24, - 0x1F, - 0x2B, - 0x1F, - 0x11, - 0x2B, - 0x1F, - 0x1F, - 0x1D, - 0x21, - 0x74, - 0x8C, - 0x7F, - 0x7D, - 0x85, - 0xB4, - 0x8E, - 0x8C, - 0x95, - 0x75, - 0x1D, - 0x1F, - 0x1F, - 0x39, - 0x39, - 0x1F, - 0x39, - 0x39, - 0x1F, - 0x39, - 0x39, - 0x19, - 0x39, - 0x19, - 0x39, - 0x19, - 0x39, - 0x39, - 0x00, - 0x00, - 0x00, - 0x17, - 0xF7, - 0xDE, - 0xF7, - 0xE0, - 0xE5, - 0xE0, - 0xE5, - 0xE5, - 0xF4, - 0xE5, - 0xFA, - 0x5F, - 0x5D, - 0x4F, - 0xF4, - 0xDC, - 0xEC, - 0xEC, - 0xF9, - 0xF9, - 0xFA, - 0xF9, - 0xF5, - 0x00, - 0x04, - 0xF9, - 0x00, - 0x31, - 0xF5, - 0xEC, - 0xF9, - 0xF5, - 0xF5, - 0xF9, - 0x5C, - 0x68, - 0x6A, - 0x7B, - 0x63, - 0x70, - 0x70, - 0x64, - 0x72, - 0x64, - 0x39, - 0xF9, - 0xC0, - 0xF5, - 0x80, - 0x64, - 0x60, - 0xB2, - 0xE1, - 0xD9, - 0xD6, - 0xD4, - 0xD5, - 0xD5, - 0xD2, - 0xE4, - 0x5F, - 0x7F, - 0x1D, - 0xF5, - 0xF5, - 0x29, - 0x74, - 0x7A, - 0x7F, - 0x1D, - 0x05, - 0xC0, - 0x05, - 0xC0, - 0xFF, - 0xC0, - 0x06, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x2A, - 0xC4, - 0x06, - 0x67, - 0x06, - 0x67, - 0x67, - 0x06, - 0x18, - 0x18, - 0x18, - 0x67, - 0x06, - 0x05, - 0x79, - 0x7F, - 0x95, - 0x91, - 0x49, - 0x13, - 0x17, - 0x2C, - 0x17, - 0x2C, - 0x2C, - 0x13, - 0x6D, - 0x8C, - 0x8F, - 0x88, - 0x14, - 0x4A, - 0x2D, - 0x4B, - 0x4B, - 0x0B, - 0x2C, - 0x7F, - 0x8F, - 0x91, - 0x53, - 0x2E, - 0x2E, - 0x04, - 0x55, - 0x00, - 0x7A, - 0x2E, - 0x2E, - 0x15, - 0x77, - 0x96, - 0xA0, - 0x8E, - 0x0B, - 0x2F, - 0x2F, - 0x55, - 0x55, - 0x2E, - 0x34, - 0x91, - 0x9A, - 0x91, - 0x41, - 0x55, - 0x41, - 0x2E, - 0x2E, - 0x55, - 0x2F, - 0x55, - 0x41, - 0x20, - 0x7B, - 0xA0, - 0xA0, - 0x8E, - 0x16, - 0x2F, - 0x41, - 0x14, - 0x7B, - 0xA0, - 0xA4, - 0xB4, - 0xBB, - 0x16, - 0x2F, - 0x2F, - 0x55, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x55, - 0x16, - 0x55, - 0x16, - 0x2E, - 0x55, - 0x15, - 0x6C, - 0x9B, - 0x96, - 0x7C, - 0x2D, - 0x40, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x25, - 0x61, - 0x2E, - 0x40, - 0x2E, - 0x25, - 0x61, - 0x25, - 0x25, - 0x2E, - 0x40, - 0x25, - 0x25, - 0x40, - 0x40, - 0x2D, - 0x37, - 0x97, - 0x9F, - 0x90, - 0x20, - 0x2E, - 0x2E, - 0x40, - 0x25, - 0x25, - 0x25, - 0x2D, - 0x2D, - 0x2D, - 0x37, - 0x66, - 0x7D, - 0x94, - 0x97, - 0xA0, - 0x9F, - 0x93, - 0x90, - 0x75, - 0x6B, - 0x60, - 0x24, - 0x1D, - 0x0A, - 0x15, - 0x2E, - 0x49, - 0x11, - 0x1D, - 0x1D, - 0x1F, - 0x1F, - 0x09, - 0x09, - 0x2D, - 0x2D, - 0x06, - 0x20, - 0x00, - 0x12, - 0x2C, - 0x20, - 0x20, - 0x2C, - 0x2C, - 0x2C, - 0x20, - 0x2D, - 0x2C, - 0x20, - 0x14, - 0x20, - 0x20, - 0x14, - 0x11, - 0x11, - 0x11, - 0x14, - 0x05, - 0x11, - 0x00, - 0x2B, - 0x24, - 0x24, - 0x24, - 0x2B, - 0x24, - 0x2B, - 0x24, - 0x1F, - 0x2B, - 0x24, - 0x24, - 0x11, - 0x09, - 0x39, - 0x7F, - 0x8F, - 0x8E, - 0xD9, - 0xE4, - 0xE1, - 0xE4, - 0xD4, - 0x94, - 0x8C, - 0x7F, - 0x1F, - 0x39, - 0x1F, - 0x1F, - 0x39, - 0x39, - 0x1F, - 0x1D, - 0x39, - 0x19, - 0x39, - 0x39, - 0x1D, - 0x39, - 0x39, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x15, - 0xDE, - 0xF7, - 0xDE, - 0xF7, - 0xE5, - 0xE5, - 0xE0, - 0xE5, - 0xE5, - 0xF4, - 0xE6, - 0xE6, - 0x5F, - 0x5D, - 0x47, - 0xFE, - 0xFA, - 0xFA, - 0xF9, - 0xFA, - 0xD3, - 0x00, - 0x04, - 0xF9, - 0x01, - 0xF5, - 0x04, - 0xF9, - 0x00, - 0x50, - 0xF5, - 0xF9, - 0xF5, - 0x6B, - 0x6A, - 0x75, - 0xDA, - 0xE7, - 0xE9, - 0xE7, - 0xDA, - 0x7B, - 0x6A, - 0x6A, - 0x81, - 0xF9, - 0xF5, - 0xF9, - 0xFF, - 0x80, - 0x56, - 0x5E, - 0x5B, - 0x6B, - 0x65, - 0x55, - 0xE4, - 0xDF, - 0xFF, - 0x74, - 0x6D, - 0xF9, - 0xC0, - 0xF9, - 0x5F, - 0x7A, - 0x84, - 0x77, - 0xF5, - 0x05, - 0xFF, - 0xC0, - 0xFF, - 0x05, - 0xFF, - 0xFF, - 0xC4, - 0x18, - 0x06, - 0x06, - 0x67, - 0x06, - 0x67, - 0xC4, - 0x06, - 0x67, - 0x67, - 0x18, - 0x67, - 0x05, - 0x39, - 0x5F, - 0x75, - 0x8C, - 0x91, - 0x90, - 0x54, - 0x13, - 0x5A, - 0x5A, - 0x14, - 0x5A, - 0x5A, - 0x0E, - 0x2B, - 0x7F, - 0x8F, - 0x91, - 0x6E, - 0x14, - 0x04, - 0x2D, - 0x00, - 0x08, - 0x13, - 0x64, - 0x8F, - 0x93, - 0x7D, - 0x15, - 0x2E, - 0x4B, - 0x06, - 0x2E, - 0x00, - 0x2D, - 0x60, - 0x84, - 0xA0, - 0x97, - 0x41, - 0x2E, - 0x2F, - 0x55, - 0x2F, - 0x55, - 0x2C, - 0x74, - 0xA0, - 0x96, - 0x66, - 0x2E, - 0x2F, - 0x41, - 0x2F, - 0x27, - 0x55, - 0x2E, - 0x41, - 0x15, - 0x56, - 0x95, - 0xA0, - 0x97, - 0x2F, - 0x55, - 0x41, - 0x15, - 0x6D, - 0x96, - 0xA0, - 0x97, - 0x25, - 0x2E, - 0x55, - 0x55, - 0x55, - 0x2E, - 0x2E, - 0x2E, - 0x55, - 0x00, - 0x06, - 0x2E, - 0x00, - 0x08, - 0x16, - 0x2E, - 0x2E, - 0x8E, - 0x9F, - 0x97, - 0x48, - 0x25, - 0x05, - 0x2E, - 0x00, - 0x16, - 0x25, - 0x40, - 0x2D, - 0x2D, - 0x25, - 0x25, - 0x4B, - 0x16, - 0x2D, - 0x25, - 0x49, - 0x2D, - 0x2D, - 0x25, - 0x25, - 0x2D, - 0x53, - 0x97, - 0x9F, - 0x88, - 0x2B, - 0x14, - 0x04, - 0x2E, - 0x00, - 0x43, - 0x2D, - 0x2D, - 0x25, - 0x49, - 0x15, - 0x2D, - 0x15, - 0x2E, - 0x54, - 0x6C, - 0x94, - 0x97, - 0x96, - 0x9F, - 0x93, - 0x91, - 0x75, - 0x6B, - 0x60, - 0x1F, - 0x1F, - 0x5C, - 0x77, - 0x74, - 0x90, - 0x84, - 0x7F, - 0x7B, - 0x60, - 0x11, - 0x2D, - 0x2D, - 0x2D, - 0x2C, - 0x20, - 0x20, - 0x11, - 0x2C, - 0x20, - 0x2C, - 0x20, - 0x20, - 0x2C, - 0x24, - 0x11, - 0x11, - 0x20, - 0x09, - 0x1D, - 0x39, - 0x39, - 0x58, - 0x1F, - 0x19, - 0x1F, - 0x11, - 0x11, - 0x11, - 0x24, - 0x1D, - 0x1F, - 0x11, - 0x11, - 0x11, - 0x2B, - 0x1F, - 0x2B, - 0x00, - 0x05, - 0x1F, - 0x00, - 0x1E, - 0x56, - 0x95, - 0x91, - 0xB4, - 0xD6, - 0xFA, - 0x03, - 0xF1, - 0xD8, - 0x97, - 0x8C, - 0x7F, - 0x5F, - 0x39, - 0x1A, - 0x19, - 0x19, - 0x39, - 0x39, - 0x39, - 0x1D, - 0x39, - 0x19, - 0x19, - 0x39, - 0x19, - 0x19, - 0x39, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x18, - 0xF7, - 0xF7, - 0xDE, - 0xF7, - 0xDE, - 0xF7, - 0xE5, - 0xE0, - 0xE5, - 0xF4, - 0xE6, - 0xF4, - 0xFA, - 0x5C, - 0x5D, - 0x5F, - 0xB6, - 0xFA, - 0xFA, - 0xD3, - 0xF9, - 0xD3, - 0xF9, - 0xD3, - 0x06, - 0xF9, - 0x00, - 0x2A, - 0xF5, - 0xF9, - 0xF9, - 0x5C, - 0x68, - 0x75, - 0xD4, - 0xE9, - 0xF2, - 0xE2, - 0xDA, - 0xD9, - 0x68, - 0x73, - 0x5F, - 0xF9, - 0xF5, - 0x29, - 0xF5, - 0xF9, - 0xF9, - 0x56, - 0x74, - 0x73, - 0x6B, - 0x56, - 0x5E, - 0x5F, - 0x6B, - 0x75, - 0xFF, - 0xF5, - 0xF5, - 0x1A, - 0x68, - 0x7F, - 0x7F, - 0x1D, - 0xF5, - 0xC0, - 0xFF, - 0x05, - 0x07, - 0xFF, - 0x00, - 0x2A, - 0x18, - 0x06, - 0x06, - 0x18, - 0x18, - 0x67, - 0x67, - 0x06, - 0x06, - 0x1D, - 0x5B, - 0x84, - 0x8C, - 0x7F, - 0x7B, - 0x49, - 0x13, - 0x18, - 0x13, - 0x17, - 0x4A, - 0x13, - 0x17, - 0x14, - 0x06, - 0x77, - 0x95, - 0x8F, - 0x6C, - 0x17, - 0x15, - 0x4A, - 0x2D, - 0x2D, - 0x4A, - 0x60, - 0x8C, - 0x93, - 0x90, - 0x2D, - 0x2E, - 0x4B, - 0x06, - 0x2E, - 0x00, - 0x10, - 0x11, - 0x75, - 0x93, - 0x95, - 0x6C, - 0x2E, - 0x2F, - 0x55, - 0x41, - 0x2E, - 0x2D, - 0x6B, - 0x93, - 0x93, - 0x8E, - 0x40, - 0x04, - 0x2E, - 0x00, - 0x11, - 0x55, - 0x41, - 0x2E, - 0x2E, - 0x48, - 0x90, - 0xA0, - 0x95, - 0x42, - 0x55, - 0x2F, - 0x2F, - 0x49, - 0x91, - 0x9F, - 0xA1, - 0x62, - 0x00, - 0x07, - 0x2E, - 0x00, - 0x03, - 0x40, - 0x2E, - 0x40, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x6A, - 0x25, - 0x25, - 0x15, - 0x2E, - 0x97, - 0x9B, - 0x90, - 0x14, - 0x25, - 0x25, - 0x25, - 0x61, - 0x2E, - 0x40, - 0x15, - 0x2E, - 0x25, - 0x2D, - 0x2D, - 0x25, - 0x15, - 0x2E, - 0x15, - 0x25, - 0x2D, - 0x25, - 0x2D, - 0x2D, - 0x25, - 0x20, - 0x65, - 0x95, - 0xA0, - 0x75, - 0x56, - 0x34, - 0x1F, - 0x2B, - 0x11, - 0x40, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x49, - 0x25, - 0x25, - 0x2D, - 0x20, - 0x20, - 0x2D, - 0x53, - 0x6C, - 0x8E, - 0x97, - 0x96, - 0x9F, - 0x93, - 0x90, - 0x7F, - 0x93, - 0x97, - 0x98, - 0x98, - 0x98, - 0x97, - 0xA0, - 0x95, - 0x57, - 0x24, - 0x20, - 0x20, - 0x2C, - 0x20, - 0x15, - 0x14, - 0x20, - 0x2C, - 0x11, - 0x2C, - 0x11, - 0x11, - 0x11, - 0x2C, - 0x13, - 0x39, - 0x5C, - 0x75, - 0x7F, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x6D, - 0x1F, - 0x11, - 0x2B, - 0x04, - 0xF1, - 0xFB, - 0xF5, - 0x1A, - 0x19, - 0x1F, - 0x09, - 0x2B, - 0x05, - 0x1F, - 0x00, - 0x15, - 0x34, - 0x90, - 0x8C, - 0x91, - 0xB5, - 0xD7, - 0xD9, - 0xB5, - 0x91, - 0x84, - 0x7F, - 0x84, - 0x8C, - 0x84, - 0x68, - 0x5E, - 0x4F, - 0x50, - 0x08, - 0x1A, - 0x19, - 0x00, - 0x04, - 0x39, - 0x00, - 0x05, - 0x19, - 0x39, - 0x19, - 0x19, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x1B, - 0xE0, - 0xE5, - 0xE0, - 0xE5, - 0xF7, - 0xE0, - 0xE0, - 0xE5, - 0xE5, - 0xF4, - 0xF4, - 0xE6, - 0xF4, - 0xFA, - 0x5C, - 0x5B, - 0x47, - 0xB6, - 0xFA, - 0xF9, - 0xD3, - 0xF9, - 0xD3, - 0xF9, - 0xF9, - 0xF9, - 0xD3, - 0x00, - 0x07, - 0xF9, - 0x00, - 0x0C, - 0x5F, - 0x68, - 0x75, - 0xB4, - 0xE4, - 0xE4, - 0xC6, - 0x75, - 0x6A, - 0x68, - 0x1D, - 0xF9, - 0x04, - 0xF5, - 0x00, - 0x18, - 0x1A, - 0x68, - 0x73, - 0x74, - 0xC0, - 0xF5, - 0xC0, - 0xFF, - 0x67, - 0xF5, - 0xEC, - 0xFA, - 0xFE, - 0x5C, - 0x73, - 0x84, - 0x77, - 0xF9, - 0x05, - 0xC0, - 0x29, - 0xEA, - 0xFF, - 0xC0, - 0x04, - 0xFF, - 0x00, - 0x56, - 0x06, - 0xFF, - 0x06, - 0xFF, - 0x18, - 0x67, - 0x06, - 0x06, - 0x18, - 0xFF, - 0x6B, - 0x8C, - 0x8C, - 0x7B, - 0x06, - 0x06, - 0x18, - 0x5A, - 0x13, - 0x5A, - 0x13, - 0x13, - 0x17, - 0x14, - 0x17, - 0x33, - 0x84, - 0x8C, - 0x90, - 0x49, - 0x14, - 0x4A, - 0x14, - 0x2D, - 0x4A, - 0x11, - 0x74, - 0x8F, - 0x91, - 0x54, - 0x15, - 0x2E, - 0x55, - 0x16, - 0x55, - 0x2E, - 0x2E, - 0x2E, - 0x2D, - 0x6D, - 0x8F, - 0x93, - 0x8E, - 0x2D, - 0x2E, - 0x2E, - 0x41, - 0x2E, - 0x25, - 0x60, - 0x84, - 0x93, - 0x91, - 0x2E, - 0x2E, - 0x2E, - 0x55, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x27, - 0x24, - 0x75, - 0x9A, - 0x96, - 0x7D, - 0x2E, - 0x2E, - 0x2E, - 0x2C, - 0x88, - 0x9F, - 0xA4, - 0x59, - 0x16, - 0x06, - 0x2E, - 0x00, - 0x46, - 0x61, - 0x15, - 0x2E, - 0x0B, - 0x2E, - 0x2E, - 0x2E, - 0x61, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x2D, - 0x53, - 0x95, - 0xA0, - 0x7B, - 0x2D, - 0x40, - 0x2D, - 0x25, - 0x25, - 0x2D, - 0x40, - 0x25, - 0x2D, - 0x2D, - 0x2E, - 0x15, - 0x2E, - 0x2D, - 0x2D, - 0x2D, - 0x25, - 0x2D, - 0x25, - 0x49, - 0x25, - 0x25, - 0x20, - 0x65, - 0x97, - 0xA0, - 0x9F, - 0x95, - 0x90, - 0x7B, - 0x6D, - 0x33, - 0x24, - 0x13, - 0x2C, - 0x2D, - 0x2E, - 0x2E, - 0x25, - 0x2D, - 0x2D, - 0x49, - 0x20, - 0x20, - 0x2C, - 0x20, - 0x20, - 0x53, - 0x6C, - 0x8E, - 0x96, - 0x96, - 0x97, - 0x04, - 0xD9, - 0x00, - 0x2B, - 0xD7, - 0x94, - 0x96, - 0x91, - 0x11, - 0x20, - 0x2C, - 0x2C, - 0x20, - 0x2C, - 0x2C, - 0x2C, - 0x20, - 0x14, - 0x2D, - 0x14, - 0x20, - 0x11, - 0x11, - 0x33, - 0x74, - 0x93, - 0x90, - 0x85, - 0x85, - 0xB4, - 0x94, - 0x91, - 0x93, - 0x75, - 0x09, - 0x04, - 0xE4, - 0xD2, - 0xD5, - 0xD6, - 0xE4, - 0xE9, - 0xFB, - 0x29, - 0x19, - 0x1F, - 0x24, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x15, - 0x34, - 0x88, - 0x90, - 0x84, - 0x91, - 0x84, - 0x7F, - 0x75, - 0x52, - 0x24, - 0x3F, - 0x64, - 0x74, - 0x7F, - 0x8C, - 0x84, - 0x7F, - 0x64, - 0x5E, - 0x4F, - 0x31, - 0x00, - 0x04, - 0x08, - 0x00, - 0x04, - 0x1C, - 0x08, - 0x1C, - 0x08, - 0x00, - 0x00, - 0x00, - 0x14, - 0xF7, - 0xDE, - 0xF7, - 0xE0, - 0xE5, - 0xF4, - 0xF7, - 0xE0, - 0xF4, - 0xF4, - 0xF4, - 0xE6, - 0xCF, - 0xF4, - 0xCF, - 0x4F, - 0x5D, - 0x5E, - 0x22, - 0xFA, - 0x04, - 0xF9, - 0x01, - 0xD3, - 0x04, - 0xF9, - 0x00, - 0x2F, - 0xF5, - 0xD1, - 0xF9, - 0xF9, - 0xD0, - 0xFA, - 0x81, - 0x5F, - 0x5B, - 0x68, - 0x68, - 0x5D, - 0x68, - 0x6B, - 0x39, - 0xF9, - 0xC0, - 0xF5, - 0x29, - 0xF5, - 0xFA, - 0x5F, - 0x74, - 0x73, - 0x60, - 0xF9, - 0xF5, - 0xF5, - 0xF5, - 0xF9, - 0x3D, - 0x78, - 0x5F, - 0x5E, - 0x68, - 0x73, - 0x73, - 0x81, - 0xF9, - 0xC0, - 0x29, - 0xF5, - 0xFF, - 0xFF, - 0xFB, - 0xFF, - 0x05, - 0x00, - 0x05, - 0xFF, - 0x00, - 0x32, - 0x06, - 0x06, - 0x06, - 0x67, - 0x06, - 0xFF, - 0x58, - 0x7F, - 0x84, - 0x7F, - 0x17, - 0x01, - 0x5A, - 0x5A, - 0x13, - 0x18, - 0x5A, - 0x5A, - 0x5A, - 0x13, - 0x5A, - 0x1D, - 0x75, - 0x8C, - 0x8C, - 0x65, - 0x17, - 0x4A, - 0x14, - 0x4A, - 0x4A, - 0x14, - 0x3F, - 0x95, - 0x8C, - 0x88, - 0x2D, - 0x15, - 0x4B, - 0x2E, - 0x61, - 0x16, - 0x16, - 0x55, - 0x16, - 0x49, - 0x84, - 0x93, - 0x91, - 0x41, - 0x05, - 0x2E, - 0x00, - 0x1F, - 0x2C, - 0x74, - 0x93, - 0x95, - 0x65, - 0x15, - 0x41, - 0x2E, - 0x2E, - 0x27, - 0x2E, - 0x2E, - 0x2E, - 0x14, - 0x7C, - 0x93, - 0x9A, - 0x8E, - 0x15, - 0x2E, - 0x2E, - 0x11, - 0x7B, - 0xA0, - 0xA0, - 0x8E, - 0x15, - 0x2E, - 0x61, - 0x2E, - 0x16, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x23, - 0x15, - 0x2E, - 0x15, - 0x40, - 0x2D, - 0x2E, - 0x25, - 0x25, - 0x40, - 0x61, - 0x25, - 0x2D, - 0x57, - 0xA0, - 0x95, - 0x52, - 0x20, - 0x2D, - 0x25, - 0x2D, - 0x2D, - 0x25, - 0x2D, - 0x2D, - 0x25, - 0x2D, - 0x25, - 0x25, - 0x2E, - 0x25, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x25, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x41, - 0x25, - 0x53, - 0x6C, - 0x94, - 0x91, - 0x96, - 0xA0, - 0x96, - 0x84, - 0x75, - 0x56, - 0x33, - 0x1F, - 0x1F, - 0x09, - 0x2D, - 0x25, - 0x2D, - 0x49, - 0x2D, - 0x20, - 0x49, - 0x20, - 0x20, - 0x0A, - 0x34, - 0x91, - 0x95, - 0xB4, - 0xD4, - 0xF5, - 0x03, - 0xF1, - 0xD5, - 0xA1, - 0x95, - 0x90, - 0x11, - 0x2C, - 0x11, - 0x11, - 0x11, - 0x2C, - 0x11, - 0x48, - 0x11, - 0x2C, - 0x11, - 0x14, - 0x2C, - 0x11, - 0x1F, - 0x7F, - 0x96, - 0x8E, - 0xC6, - 0xE4, - 0x00, - 0xE4, - 0xD4, - 0x94, - 0x95, - 0x90, - 0x19, - 0xE4, - 0x00, - 0x06, - 0xD2, - 0x00, - 0x26, - 0xD5, - 0xD4, - 0xE8, - 0x19, - 0x19, - 0x19, - 0x1D, - 0x1D, - 0x19, - 0x19, - 0x0C, - 0x19, - 0x39, - 0x39, - 0x39, - 0x19, - 0x08, - 0x0C, - 0x31, - 0x08, - 0x0C, - 0x19, - 0x33, - 0x52, - 0x64, - 0x74, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x68, - 0x5E, - 0x5E, - 0x5E, - 0x5B, - 0x64, - 0x68, - 0x68, - 0x00, - 0x00, - 0x00, - 0x09, - 0xE2, - 0xF7, - 0xDE, - 0xF7, - 0xDE, - 0xE0, - 0xF7, - 0xE5, - 0xF4, - 0x00, - 0x05, - 0xE6, - 0x00, - 0x3F, - 0xFA, - 0xE6, - 0x4F, - 0x5B, - 0x5B, - 0x22, - 0xFA, - 0x04, - 0xF9, - 0xD3, - 0xF9, - 0xD3, - 0xF9, - 0xD3, - 0xF9, - 0xFA, - 0xF9, - 0xF9, - 0xEC, - 0xFA, - 0xF9, - 0xEC, - 0xFA, - 0xF9, - 0x29, - 0x81, - 0x81, - 0x29, - 0xF9, - 0xF9, - 0xF5, - 0xF5, - 0x29, - 0xF5, - 0xF9, - 0x29, - 0x64, - 0x6A, - 0x74, - 0x81, - 0xF9, - 0xD1, - 0xF5, - 0xD1, - 0x5F, - 0x6A, - 0x73, - 0x74, - 0x75, - 0x75, - 0x68, - 0x73, - 0x64, - 0x50, - 0xF9, - 0x05, - 0xC0, - 0xC0, - 0xF5, - 0x05, - 0xC0, - 0xC0, - 0x29, - 0x00, - 0x07, - 0xFF, - 0x00, - 0x2E, - 0x06, - 0x67, - 0x05, - 0x77, - 0x84, - 0x8C, - 0x7C, - 0x06, - 0x13, - 0x17, - 0x01, - 0x17, - 0x13, - 0x17, - 0x18, - 0x13, - 0x13, - 0x67, - 0x60, - 0x84, - 0x8F, - 0x88, - 0x13, - 0x17, - 0x2C, - 0x14, - 0x14, - 0x2D, - 0x4A, - 0x52, - 0x84, - 0x8F, - 0x7B, - 0x14, - 0x2D, - 0x4B, - 0x4B, - 0x2E, - 0x61, - 0x2E, - 0x2E, - 0x2C, - 0x75, - 0x93, - 0x95, - 0x6C, - 0x05, - 0x2E, - 0x00, - 0x06, - 0x14, - 0x6B, - 0x93, - 0x93, - 0x8E, - 0x15, - 0x04, - 0x2E, - 0x00, - 0x11, - 0x55, - 0x55, - 0x2E, - 0x2E, - 0x60, - 0x91, - 0xA0, - 0x97, - 0x27, - 0x2E, - 0x2E, - 0x25, - 0x60, - 0x95, - 0xA0, - 0x94, - 0x0F, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x09, - 0x40, - 0x15, - 0x2E, - 0x55, - 0x16, - 0x55, - 0x2E, - 0x2E, - 0x15, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x0D, - 0x25, - 0x2D, - 0x2D, - 0x25, - 0x14, - 0x88, - 0xA0, - 0x91, - 0x34, - 0x2B, - 0x14, - 0x2D, - 0x25, - 0x00, - 0x08, - 0x2D, - 0x01, - 0x49, - 0x06, - 0x2D, - 0x00, - 0x2D, - 0x25, - 0x2D, - 0x49, - 0x2D, - 0x20, - 0x20, - 0x2D, - 0x25, - 0x53, - 0x6C, - 0x8E, - 0x97, - 0x96, - 0xA0, - 0x96, - 0x91, - 0x88, - 0x6D, - 0x33, - 0x1F, - 0x1F, - 0x09, - 0x14, - 0x2D, - 0x0F, - 0x15, - 0x2D, - 0x20, - 0x2C, - 0x90, - 0x93, - 0x96, - 0xB5, - 0xD7, - 0xD9, - 0xB5, - 0xA7, - 0x93, - 0x90, - 0x37, - 0x14, - 0x20, - 0x20, - 0x2C, - 0x2C, - 0x00, - 0x05, - 0x11, - 0x00, - 0x3E, - 0x24, - 0x11, - 0x11, - 0x13, - 0x35, - 0x95, - 0x91, - 0xB4, - 0xD4, - 0xF5, - 0xFE, - 0xE9, - 0xD8, - 0x97, - 0x91, - 0x90, - 0x56, - 0x2D, - 0xE8, - 0xD9, - 0xD4, - 0xD5, - 0xD2, - 0xD2, - 0xD2, - 0xC2, - 0xA1, - 0x7F, - 0x75, - 0x56, - 0x50, - 0x39, - 0x4F, - 0x5C, - 0x5F, - 0x5E, - 0x5B, - 0x64, - 0x68, - 0x74, - 0x74, - 0x7F, - 0x7F, - 0x75, - 0x5F, - 0x50, - 0x31, - 0x08, - 0x08, - 0x19, - 0x33, - 0x56, - 0x64, - 0x74, - 0x7F, - 0x74, - 0x74, - 0x74, - 0x75, - 0x68, - 0x64, - 0x64, - 0x00, - 0x00, - 0x00, - 0x1A, - 0xF7, - 0xE2, - 0xF7, - 0xE2, - 0xF7, - 0xE0, - 0xE6, - 0xF7, - 0xF4, - 0xE5, - 0xF4, - 0xF4, - 0xE6, - 0xFA, - 0xE6, - 0xFA, - 0xFA, - 0x79, - 0x5B, - 0x5B, - 0x86, - 0xFA, - 0x04, - 0xF9, - 0xF9, - 0xFA, - 0x05, - 0xF9, - 0x00, - 0x07, - 0xD0, - 0xF9, - 0xF9, - 0xD0, - 0xF9, - 0xD3, - 0xEC, - 0x00, - 0x06, - 0xF9, - 0x00, - 0x21, - 0xF5, - 0x29, - 0xF5, - 0xF5, - 0xFA, - 0x79, - 0x6A, - 0x73, - 0x6D, - 0xF9, - 0xD1, - 0xF5, - 0xF9, - 0x39, - 0x6A, - 0x73, - 0x7D, - 0xDF, - 0xE4, - 0xDF, - 0xD9, - 0x6C, - 0x73, - 0x7F, - 0x79, - 0xF5, - 0x29, - 0xF5, - 0x29, - 0xC0, - 0xFB, - 0xFF, - 0xFB, - 0x00, - 0x06, - 0xFF, - 0x00, - 0x3B, - 0x06, - 0x18, - 0xFB, - 0x58, - 0x73, - 0x84, - 0x74, - 0x06, - 0x18, - 0x06, - 0x18, - 0x06, - 0x18, - 0x13, - 0x17, - 0x13, - 0x13, - 0x5A, - 0x09, - 0x74, - 0x8C, - 0x84, - 0x52, - 0x13, - 0x2C, - 0x2C, - 0x2C, - 0x4A, - 0x15, - 0x2D, - 0x14, - 0x88, - 0x8F, - 0x90, - 0x2C, - 0x15, - 0x4B, - 0x2D, - 0x15, - 0x4B, - 0x2E, - 0x14, - 0x6D, - 0x8C, - 0x93, - 0x8E, - 0x40, - 0x2E, - 0x2E, - 0x2E, - 0x40, - 0x15, - 0x60, - 0x84, - 0x93, - 0x90, - 0x2E, - 0x2E, - 0x55, - 0x00, - 0x06, - 0x2E, - 0x00, - 0x19, - 0x11, - 0x74, - 0xA0, - 0x96, - 0x66, - 0x2D, - 0x40, - 0x2E, - 0x48, - 0x90, - 0x9F, - 0xA1, - 0x41, - 0x40, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x4B, - 0x2E, - 0x15, - 0x61, - 0x2D, - 0x25, - 0x15, - 0x00, - 0x05, - 0x2E, - 0x00, - 0x1B, - 0x15, - 0x15, - 0x15, - 0x2D, - 0x2D, - 0x25, - 0x2D, - 0x20, - 0x94, - 0x9F, - 0x91, - 0x75, - 0x56, - 0x33, - 0x2B, - 0x2B, - 0x11, - 0x2C, - 0x2D, - 0x25, - 0x2D, - 0x2D, - 0x2D, - 0x20, - 0x2D, - 0x2D, - 0x20, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x03, - 0x20, - 0x20, - 0x2D, - 0x00, - 0x05, - 0x20, - 0x00, - 0x25, - 0x2C, - 0x20, - 0x53, - 0x6C, - 0x8E, - 0x97, - 0x96, - 0xA6, - 0x96, - 0x91, - 0x88, - 0x6B, - 0x5C, - 0x1F, - 0x2B, - 0x09, - 0x14, - 0x15, - 0x15, - 0x25, - 0x7D, - 0x97, - 0x91, - 0x96, - 0xA4, - 0x91, - 0x90, - 0x6C, - 0x20, - 0x11, - 0x2C, - 0x2C, - 0x11, - 0x20, - 0x14, - 0x2C, - 0x2C, - 0x00, - 0x06, - 0x11, - 0x00, - 0x35, - 0x13, - 0x11, - 0x88, - 0x95, - 0x91, - 0xAD, - 0xB5, - 0xC6, - 0xB5, - 0xA1, - 0x91, - 0x90, - 0x91, - 0x95, - 0x84, - 0x7F, - 0x64, - 0x60, - 0x4A, - 0xE8, - 0xDA, - 0xDA, - 0x36, - 0x75, - 0x90, - 0x84, - 0x8C, - 0x84, - 0x84, - 0x84, - 0x7F, - 0x7F, - 0x7F, - 0x75, - 0x75, - 0x7B, - 0x77, - 0x77, - 0x75, - 0x74, - 0x84, - 0x84, - 0x84, - 0x74, - 0x64, - 0x47, - 0x50, - 0x0C, - 0x08, - 0x08, - 0x39, - 0x39, - 0x39, - 0x00, - 0x04, - 0x19, - 0x01, - 0x1A, - 0x01, - 0x08, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xF7, - 0xE2, - 0xF7, - 0xE2, - 0xF7, - 0xE2, - 0xE5, - 0xE0, - 0xE6, - 0xF4, - 0xE0, - 0xF4, - 0xE6, - 0xE6, - 0x04, - 0xFA, - 0x00, - 0x3D, - 0x39, - 0x5B, - 0x51, - 0x3D, - 0xFA, - 0x04, - 0x04, - 0xF9, - 0x04, - 0xF9, - 0xF9, - 0xF9, - 0xD0, - 0xF9, - 0xFA, - 0xD0, - 0xEC, - 0xFA, - 0xEC, - 0xF9, - 0xD3, - 0xEC, - 0xD3, - 0xF9, - 0xF9, - 0xD1, - 0xF9, - 0xF9, - 0xD1, - 0xF9, - 0xF9, - 0x5B, - 0x6A, - 0x6A, - 0x81, - 0xF9, - 0xD1, - 0xF9, - 0xF9, - 0xA5, - 0x6A, - 0x6A, - 0xB4, - 0xDA, - 0xF2, - 0xFC, - 0xE9, - 0xD4, - 0x68, - 0x7A, - 0x75, - 0xF9, - 0x05, - 0xC0, - 0x05, - 0xF5, - 0x05, - 0xFF, - 0xEA, - 0xFF, - 0xFB, - 0x00, - 0x04, - 0xFF, - 0x00, - 0x2F, - 0x05, - 0xFF, - 0x19, - 0x64, - 0x8B, - 0x84, - 0x52, - 0x06, - 0x18, - 0x18, - 0x06, - 0x18, - 0x13, - 0x18, - 0x18, - 0x13, - 0x18, - 0x13, - 0x2B, - 0x7F, - 0x8F, - 0x75, - 0x18, - 0x17, - 0x17, - 0x2C, - 0x17, - 0x4A, - 0x4A, - 0x4B, - 0x14, - 0x65, - 0x91, - 0x95, - 0x7C, - 0x14, - 0x4B, - 0x15, - 0x2E, - 0x61, - 0x15, - 0x20, - 0x7F, - 0x8F, - 0x90, - 0x41, - 0x2D, - 0x00, - 0x04, - 0x2E, - 0x00, - 0x2F, - 0x11, - 0x74, - 0x93, - 0x91, - 0x65, - 0x15, - 0x2E, - 0x2E, - 0x40, - 0x2E, - 0x2E, - 0x2E, - 0x2F, - 0x0A, - 0x77, - 0x93, - 0x96, - 0x7D, - 0x2D, - 0x2E, - 0x2E, - 0x11, - 0x75, - 0x9A, - 0x96, - 0x66, - 0x2D, - 0x2E, - 0x61, - 0x2E, - 0x40, - 0x2D, - 0x25, - 0x2D, - 0x15, - 0x15, - 0x2E, - 0x15, - 0x2D, - 0x2D, - 0x15, - 0x2D, - 0x2D, - 0x2D, - 0x2E, - 0x15, - 0x2E, - 0x00, - 0x04, - 0x2D, - 0x00, - 0x3C, - 0x20, - 0x25, - 0x88, - 0x97, - 0x96, - 0xA0, - 0x95, - 0x84, - 0x75, - 0x6D, - 0x33, - 0x2B, - 0x09, - 0x13, - 0x20, - 0x20, - 0x2D, - 0x49, - 0x2D, - 0x2D, - 0x2D, - 0x49, - 0x20, - 0x2D, - 0x49, - 0x20, - 0x2D, - 0x49, - 0x20, - 0x2D, - 0x20, - 0x20, - 0x20, - 0x2D, - 0x20, - 0x2D, - 0x14, - 0x14, - 0x2D, - 0x37, - 0x66, - 0x8E, - 0x97, - 0xA1, - 0x96, - 0x95, - 0x84, - 0x74, - 0x6B, - 0x5C, - 0x1F, - 0x1F, - 0x09, - 0x09, - 0x25, - 0x36, - 0x36, - 0x53, - 0x35, - 0x20, - 0x05, - 0x11, - 0x01, - 0x14, - 0x06, - 0x11, - 0x00, - 0x37, - 0x13, - 0x11, - 0x11, - 0x13, - 0x24, - 0x13, - 0x24, - 0x7B, - 0x90, - 0x90, - 0x84, - 0x91, - 0x90, - 0x75, - 0x52, - 0x11, - 0x35, - 0x65, - 0x88, - 0x90, - 0x91, - 0x91, - 0x84, - 0x74, - 0x77, - 0x5C, - 0x39, - 0x19, - 0x19, - 0x39, - 0x1F, - 0x39, - 0x39, - 0x31, - 0x19, - 0x19, - 0x31, - 0x50, - 0x21, - 0x50, - 0x4F, - 0x31, - 0x0C, - 0x19, - 0x39, - 0x56, - 0x75, - 0x74, - 0x84, - 0x84, - 0x7A, - 0x74, - 0x5B, - 0x4F, - 0x50, - 0x00, - 0x04, - 0x08, - 0x00, - 0x04, - 0x3D, - 0x08, - 0x1C, - 0x1C, - 0x00, - 0x00, - 0x00, - 0x09, - 0xE2, - 0xF7, - 0xF7, - 0xF2, - 0xF7, - 0xF7, - 0xE0, - 0xF2, - 0xF7, - 0x00, - 0x04, - 0xE6, - 0x04, - 0xFA, - 0x00, - 0x36, - 0xF9, - 0xFA, - 0x39, - 0x5B, - 0x5B, - 0x3D, - 0xFA, - 0xF9, - 0xFA, - 0xFA, - 0xF9, - 0xF9, - 0xFA, - 0xFA, - 0xFA, - 0xEC, - 0xD0, - 0xFA, - 0xF9, - 0xF9, - 0xFA, - 0xEC, - 0xF9, - 0xEC, - 0xD3, - 0xF9, - 0xF9, - 0xD3, - 0xF9, - 0xF9, - 0xFA, - 0x39, - 0x6A, - 0x6A, - 0x77, - 0xF9, - 0xF9, - 0xF9, - 0xF5, - 0xF5, - 0xF5, - 0x60, - 0x6A, - 0x7F, - 0xB4, - 0xDF, - 0xE8, - 0xDA, - 0xB4, - 0x74, - 0x7A, - 0x6B, - 0xF9, - 0xF5, - 0x04, - 0xC0, - 0x00, - 0x5D, - 0x05, - 0x05, - 0xC0, - 0xFF, - 0xC0, - 0xFF, - 0x05, - 0x29, - 0x92, - 0x5B, - 0x73, - 0x84, - 0x7F, - 0x7C, - 0x06, - 0x18, - 0x18, - 0x18, - 0x17, - 0x18, - 0x18, - 0x18, - 0x13, - 0x18, - 0x13, - 0x18, - 0x13, - 0x75, - 0x8C, - 0x90, - 0x13, - 0x17, - 0x0E, - 0x0E, - 0x2C, - 0x14, - 0x4A, - 0x4A, - 0x4A, - 0x2D, - 0x7F, - 0x93, - 0x90, - 0x14, - 0x2E, - 0x4B, - 0x2D, - 0x15, - 0x15, - 0x40, - 0x84, - 0x93, - 0x75, - 0x11, - 0x0F, - 0x61, - 0x2E, - 0x2E, - 0x15, - 0x77, - 0x8F, - 0x93, - 0x7D, - 0x2D, - 0x2E, - 0x25, - 0x2E, - 0x4B, - 0x2E, - 0x2D, - 0x40, - 0x15, - 0x6D, - 0x8C, - 0xA0, - 0x90, - 0x2D, - 0x2E, - 0x41, - 0x11, - 0x6B, - 0x93, - 0xA0, - 0x88, - 0x2D, - 0x2E, - 0x2E, - 0x25, - 0x2D, - 0x15, - 0x2D, - 0x2D, - 0x15, - 0x00, - 0x07, - 0x2D, - 0x00, - 0x03, - 0x15, - 0x15, - 0x15, - 0x00, - 0x07, - 0x2D, - 0x00, - 0x1D, - 0x15, - 0x20, - 0x2C, - 0x2D, - 0x37, - 0x65, - 0x88, - 0x97, - 0x95, - 0xA0, - 0x96, - 0x91, - 0x7F, - 0x7B, - 0x5C, - 0x39, - 0x1D, - 0x09, - 0x13, - 0x20, - 0x2D, - 0x20, - 0x20, - 0x2D, - 0x20, - 0x20, - 0x2D, - 0x20, - 0x2D, - 0x00, - 0x0B, - 0x20, - 0x00, - 0x19, - 0x0A, - 0x14, - 0x20, - 0x40, - 0x65, - 0x7D, - 0x94, - 0x91, - 0x96, - 0x95, - 0x91, - 0x74, - 0x75, - 0x34, - 0x39, - 0x1D, - 0x09, - 0x09, - 0x11, - 0x14, - 0x20, - 0x11, - 0x2C, - 0x11, - 0x2C, - 0x00, - 0x05, - 0x11, - 0x00, - 0x04, - 0x13, - 0x24, - 0x11, - 0x13, - 0x04, - 0x11, - 0x00, - 0x1D, - 0x13, - 0x09, - 0x11, - 0x11, - 0x20, - 0x48, - 0x09, - 0x1F, - 0x09, - 0x1F, - 0x1F, - 0x09, - 0x1F, - 0x11, - 0x35, - 0x36, - 0x75, - 0x90, - 0x84, - 0x91, - 0x84, - 0x7F, - 0x75, - 0x64, - 0x75, - 0x6A, - 0x74, - 0x74, - 0x73, - 0x00, - 0x04, - 0x7F, - 0x00, - 0x18, - 0x84, - 0x84, - 0x84, - 0x74, - 0x64, - 0x47, - 0x31, - 0x1C, - 0x19, - 0x39, - 0x56, - 0x64, - 0x74, - 0x84, - 0x7A, - 0x73, - 0x6A, - 0x64, - 0x5B, - 0x64, - 0x68, - 0x68, - 0x6A, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x09, - 0xE2, - 0xDE, - 0xF7, - 0xF7, - 0xE0, - 0xE0, - 0xF7, - 0xE5, - 0xE0, - 0x00, - 0x04, - 0xF4, - 0x01, - 0xE6, - 0x01, - 0xFE, - 0x04, - 0xFA, - 0x00, - 0x08, - 0xF9, - 0x19, - 0x5B, - 0x5D, - 0x92, - 0xFE, - 0xF9, - 0x04, - 0x05, - 0xF9, - 0x00, - 0x4F, - 0xFA, - 0xD0, - 0xFA, - 0xEC, - 0xEC, - 0xD1, - 0xF9, - 0xF5, - 0xF9, - 0xEC, - 0xD3, - 0xF9, - 0xF9, - 0xD3, - 0xF9, - 0xD3, - 0x5E, - 0x6A, - 0x6A, - 0x39, - 0xFA, - 0xD1, - 0xF9, - 0xD1, - 0xD1, - 0xF9, - 0xF9, - 0x39, - 0x6B, - 0x6A, - 0x90, - 0x97, - 0x90, - 0x73, - 0x74, - 0x6B, - 0x29, - 0xD1, - 0x29, - 0xF5, - 0x29, - 0xF5, - 0xF5, - 0xC0, - 0x05, - 0x05, - 0xFF, - 0x05, - 0x04, - 0x50, - 0x64, - 0x7A, - 0x84, - 0x74, - 0x6D, - 0x67, - 0xFF, - 0x67, - 0x06, - 0x67, - 0x06, - 0x18, - 0x18, - 0x5A, - 0x18, - 0x17, - 0x18, - 0x5A, - 0x13, - 0x06, - 0x7B, - 0x8C, - 0x84, - 0x49, - 0x13, - 0x17, - 0x5A, - 0x5A, - 0x2C, - 0x00, - 0x04, - 0x14, - 0x00, - 0x34, - 0x7B, - 0x8C, - 0x91, - 0x52, - 0x15, - 0x4B, - 0x4B, - 0x4B, - 0x2E, - 0x15, - 0x6C, - 0x8F, - 0x84, - 0x60, - 0x2D, - 0x2E, - 0x4B, - 0x25, - 0x14, - 0x88, - 0x93, - 0x90, - 0x2C, - 0x2E, - 0x4B, - 0x2E, - 0x2E, - 0x25, - 0x40, - 0x2E, - 0x25, - 0x2B, - 0x7F, - 0xA0, - 0xA1, - 0x41, - 0x2D, - 0x2E, - 0x15, - 0x60, - 0x91, - 0xA0, - 0x90, - 0x2E, - 0x15, - 0x40, - 0x15, - 0x2E, - 0x15, - 0x2D, - 0x15, - 0x2E, - 0x09, - 0x2D, - 0x00, - 0x25, - 0x20, - 0x2D, - 0x2D, - 0x2D, - 0x15, - 0x2D, - 0x14, - 0x20, - 0x2D, - 0x2D, - 0x2D, - 0x20, - 0x2D, - 0x15, - 0x15, - 0x14, - 0x20, - 0x40, - 0x65, - 0x7D, - 0x90, - 0xA1, - 0xA0, - 0x96, - 0x91, - 0x7F, - 0x75, - 0x56, - 0x39, - 0x1D, - 0x1F, - 0x2C, - 0x20, - 0x20, - 0x2C, - 0x20, - 0x2C, - 0x00, - 0x05, - 0x20, - 0x01, - 0x2C, - 0x04, - 0x20, - 0x00, - 0x27, - 0x2C, - 0x20, - 0x20, - 0x14, - 0x20, - 0x11, - 0x11, - 0x0A, - 0x2D, - 0x25, - 0x53, - 0x6C, - 0x94, - 0xA1, - 0x96, - 0x93, - 0x91, - 0x88, - 0x75, - 0x56, - 0x39, - 0x19, - 0x1D, - 0x09, - 0x11, - 0x14, - 0x11, - 0x14, - 0x11, - 0x11, - 0x11, - 0x13, - 0x11, - 0x13, - 0x13, - 0x24, - 0x11, - 0x13, - 0x09, - 0x00, - 0x04, - 0x11, - 0x00, - 0x36, - 0x13, - 0x09, - 0x2B, - 0x09, - 0x2B, - 0x09, - 0x09, - 0x2B, - 0x09, - 0x1F, - 0x1F, - 0x1D, - 0x1D, - 0x1D, - 0x1F, - 0x35, - 0x3F, - 0x6C, - 0x88, - 0x88, - 0x75, - 0x7B, - 0x57, - 0x3F, - 0x3F, - 0x52, - 0x60, - 0x34, - 0x33, - 0x1F, - 0x34, - 0x56, - 0x75, - 0x74, - 0x84, - 0x84, - 0x7F, - 0x74, - 0x5B, - 0x4F, - 0x1C, - 0x08, - 0x0C, - 0x39, - 0x56, - 0x64, - 0x75, - 0x64, - 0x64, - 0x6B, - 0x5E, - 0x56, - 0x5F, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x07, - 0xE2, - 0xF7, - 0xE2, - 0xDE, - 0xF7, - 0xF7, - 0xE0, - 0x00, - 0x05, - 0xF4, - 0x00, - 0x05, - 0xE6, - 0xF4, - 0xE6, - 0xFA, - 0xFE, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x0A, - 0x1A, - 0x4D, - 0x5D, - 0x50, - 0xFA, - 0xF9, - 0xF9, - 0xFA, - 0xF9, - 0xFA, - 0x04, - 0xF9, - 0x00, - 0x12, - 0xFA, - 0xEC, - 0xFA, - 0xEC, - 0xEC, - 0xF9, - 0xF5, - 0xF9, - 0xD0, - 0xF9, - 0xF9, - 0xFA, - 0x1A, - 0x5D, - 0x6A, - 0x64, - 0xF9, - 0xD0, - 0x04, - 0xF9, - 0x00, - 0x0A, - 0xD1, - 0xF9, - 0xEC, - 0xD1, - 0x81, - 0xA5, - 0x5C, - 0x80, - 0x58, - 0xFF, - 0x04, - 0xF5, - 0x00, - 0x5C, - 0x29, - 0xF5, - 0x29, - 0xFF, - 0xFF, - 0xEA, - 0xF5, - 0x04, - 0x50, - 0x64, - 0x7A, - 0x7A, - 0x74, - 0x52, - 0x67, - 0xFF, - 0x06, - 0xFF, - 0x06, - 0xFF, - 0x06, - 0x67, - 0x67, - 0x18, - 0x06, - 0x18, - 0x18, - 0x18, - 0x13, - 0x17, - 0x18, - 0x7C, - 0x84, - 0x8C, - 0x7C, - 0x09, - 0x5A, - 0x11, - 0x14, - 0x14, - 0x14, - 0x2D, - 0x4A, - 0x14, - 0x35, - 0x84, - 0x8C, - 0x75, - 0x14, - 0x2D, - 0x15, - 0x15, - 0x15, - 0x16, - 0x2D, - 0x7F, - 0x93, - 0x90, - 0x48, - 0x15, - 0x2D, - 0x2D, - 0x2D, - 0x53, - 0x91, - 0x8C, - 0x6D, - 0x14, - 0x40, - 0x2E, - 0x15, - 0x2D, - 0x2D, - 0x2E, - 0x11, - 0x75, - 0x93, - 0x95, - 0x66, - 0x15, - 0x40, - 0x2D, - 0x24, - 0x7F, - 0xA0, - 0x91, - 0x41, - 0x2E, - 0x2E, - 0x16, - 0x2E, - 0x2E, - 0x06, - 0x2D, - 0x01, - 0x15, - 0x05, - 0x2D, - 0x01, - 0x14, - 0x05, - 0x2D, - 0x01, - 0x14, - 0x01, - 0x20, - 0x08, - 0x2D, - 0x00, - 0x12, - 0x15, - 0x15, - 0x15, - 0x14, - 0x11, - 0x2C, - 0x25, - 0x53, - 0x6C, - 0x94, - 0x91, - 0x96, - 0xA0, - 0x91, - 0x7F, - 0x75, - 0x33, - 0x11, - 0x05, - 0x20, - 0x00, - 0x3F, - 0x2C, - 0x2C, - 0x2C, - 0x20, - 0x20, - 0x20, - 0x2C, - 0x2C, - 0x20, - 0x20, - 0x2C, - 0x15, - 0x14, - 0x14, - 0x20, - 0x14, - 0x09, - 0x39, - 0x19, - 0x19, - 0x19, - 0x1D, - 0x11, - 0x53, - 0x6C, - 0x8E, - 0x91, - 0x95, - 0x95, - 0x8C, - 0x7F, - 0x75, - 0x56, - 0x39, - 0x39, - 0x1D, - 0x09, - 0x0A, - 0x0A, - 0x0A, - 0x11, - 0x2B, - 0x11, - 0x24, - 0x13, - 0x2B, - 0x13, - 0x24, - 0x2B, - 0x09, - 0x09, - 0x13, - 0x2B, - 0x09, - 0x09, - 0x13, - 0x09, - 0x2B, - 0x1F, - 0x1F, - 0x1F, - 0x09, - 0x1D, - 0x00, - 0x04, - 0x1F, - 0x00, - 0x27, - 0x1D, - 0x19, - 0x1D, - 0x1F, - 0x1F, - 0x19, - 0x1D, - 0x19, - 0x19, - 0x1D, - 0x19, - 0x19, - 0x19, - 0x1D, - 0x1D, - 0x19, - 0x19, - 0x19, - 0x39, - 0x33, - 0x56, - 0x64, - 0x74, - 0x7A, - 0x84, - 0x73, - 0x68, - 0x6B, - 0x4F, - 0x1C, - 0x1C, - 0x31, - 0x31, - 0x31, - 0x21, - 0x4F, - 0x4F, - 0x47, - 0x47, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0xE2, - 0xE2, - 0xE2, - 0xF7, - 0xDE, - 0xE2, - 0xDE, - 0xF7, - 0x04, - 0xF4, - 0x00, - 0x03, - 0xFE, - 0xFA, - 0xFE, - 0x00, - 0x07, - 0xFA, - 0x00, - 0x1E, - 0x1A, - 0x4D, - 0x5D, - 0x50, - 0xF4, - 0xF9, - 0xF9, - 0xF9, - 0xFA, - 0xFA, - 0xD0, - 0xFA, - 0xEC, - 0xFA, - 0xEC, - 0xEC, - 0xF9, - 0xF9, - 0xF9, - 0xFA, - 0xFA, - 0xF9, - 0xF9, - 0xF9, - 0xFA, - 0x5C, - 0x72, - 0x6A, - 0x79, - 0xFA, - 0x0C, - 0xF9, - 0x00, - 0x38, - 0xFA, - 0xF9, - 0xF5, - 0xF5, - 0xC0, - 0x29, - 0xFF, - 0xF5, - 0xD1, - 0x29, - 0xF5, - 0xF9, - 0x04, - 0x78, - 0x64, - 0x7A, - 0x7A, - 0x75, - 0x80, - 0xFF, - 0x05, - 0xFF, - 0x06, - 0xFF, - 0x1D, - 0x18, - 0x18, - 0x06, - 0x67, - 0x06, - 0x06, - 0x06, - 0x67, - 0x06, - 0x18, - 0x09, - 0x18, - 0x06, - 0x60, - 0x84, - 0x8C, - 0x77, - 0x18, - 0x13, - 0x17, - 0x5A, - 0x2C, - 0x14, - 0x4A, - 0x14, - 0x2D, - 0x14, - 0x75, - 0x8F, - 0x7F, - 0x2C, - 0x05, - 0x2D, - 0x00, - 0x2D, - 0x15, - 0x53, - 0x91, - 0x93, - 0x7B, - 0x0A, - 0x25, - 0x2D, - 0x15, - 0x2D, - 0x65, - 0x95, - 0x91, - 0x48, - 0x15, - 0x2D, - 0x25, - 0x2D, - 0x15, - 0x15, - 0x6D, - 0x8C, - 0x95, - 0x88, - 0x15, - 0x2D, - 0x25, - 0x09, - 0x75, - 0xA0, - 0x96, - 0x6C, - 0x14, - 0x2D, - 0x2D, - 0x2D, - 0x0F, - 0x15, - 0x2D, - 0x15, - 0x4B, - 0x15, - 0x2D, - 0x2D, - 0x15, - 0x00, - 0x08, - 0x2D, - 0x00, - 0x5D, - 0x14, - 0x2D, - 0x20, - 0x20, - 0x15, - 0x2D, - 0x2D, - 0x14, - 0x2D, - 0x2D, - 0x20, - 0x2C, - 0x20, - 0x14, - 0x20, - 0x2D, - 0x20, - 0x14, - 0x20, - 0x14, - 0x2C, - 0x11, - 0x2C, - 0x2D, - 0x53, - 0x65, - 0x8E, - 0x91, - 0xA0, - 0x91, - 0x34, - 0x09, - 0x20, - 0x2C, - 0x2C, - 0x2C, - 0x14, - 0x14, - 0x20, - 0x2C, - 0x2C, - 0x2C, - 0x11, - 0x2C, - 0x2D, - 0x14, - 0x20, - 0x20, - 0x2C, - 0x14, - 0x09, - 0x19, - 0x5E, - 0x75, - 0x74, - 0x73, - 0x7F, - 0x75, - 0x6B, - 0x1F, - 0x09, - 0x11, - 0x20, - 0x37, - 0x65, - 0x8E, - 0x97, - 0x95, - 0x95, - 0x84, - 0x7F, - 0x75, - 0x56, - 0x39, - 0x19, - 0x1D, - 0x1D, - 0x09, - 0x09, - 0x11, - 0x09, - 0x09, - 0x2B, - 0x09, - 0x09, - 0x13, - 0x13, - 0x11, - 0x13, - 0x09, - 0x2B, - 0x09, - 0x1F, - 0x00, - 0x04, - 0x09, - 0x00, - 0x03, - 0x1D, - 0x1F, - 0x09, - 0x00, - 0x04, - 0x1D, - 0x01, - 0x1F, - 0x05, - 0x1D, - 0x00, - 0x20, - 0x1F, - 0x1D, - 0x1D, - 0x19, - 0x1D, - 0x1D, - 0x19, - 0x19, - 0x19, - 0x1D, - 0x19, - 0x1D, - 0x19, - 0x1A, - 0x19, - 0x39, - 0x33, - 0x56, - 0x75, - 0x74, - 0x84, - 0x7A, - 0x73, - 0x6A, - 0x6A, - 0x73, - 0x6A, - 0x73, - 0x6A, - 0x6A, - 0x74, - 0x6A, - 0x00, - 0x00, - 0x00, - 0x0E, - 0xE2, - 0xF7, - 0xE2, - 0xE2, - 0xF7, - 0xF7, - 0xDE, - 0xF7, - 0xF4, - 0xF4, - 0xE6, - 0xE6, - 0xFA, - 0xE6, - 0x06, - 0xFA, - 0x00, - 0x08, - 0x04, - 0xFA, - 0xFA, - 0x29, - 0x4D, - 0x5D, - 0x4F, - 0xFE, - 0x06, - 0xFA, - 0x01, - 0xD0, - 0x05, - 0xFA, - 0x00, - 0x12, - 0xF9, - 0xEC, - 0xD0, - 0xF9, - 0xF9, - 0xFA, - 0x29, - 0x5D, - 0x6A, - 0x64, - 0xF9, - 0xD0, - 0xF9, - 0xD0, - 0xD0, - 0xF9, - 0xF9, - 0xEC, - 0x07, - 0xF9, - 0x06, - 0xF5, - 0x00, - 0x0C, - 0x29, - 0xF5, - 0xF9, - 0x86, - 0x4F, - 0x5D, - 0x7A, - 0x7A, - 0x77, - 0x48, - 0xFF, - 0x05, - 0x04, - 0xFF, - 0x00, - 0x22, - 0x06, - 0xFF, - 0x06, - 0x06, - 0x18, - 0x06, - 0x06, - 0x67, - 0x18, - 0x18, - 0x18, - 0x67, - 0x18, - 0x18, - 0x18, - 0x2B, - 0x73, - 0x8C, - 0x75, - 0x06, - 0x13, - 0x17, - 0x02, - 0x17, - 0x14, - 0x14, - 0x0E, - 0x2D, - 0x18, - 0x64, - 0x8C, - 0x91, - 0x37, - 0x14, - 0x05, - 0x2D, - 0x00, - 0x1F, - 0x14, - 0x7B, - 0x95, - 0x91, - 0x6D, - 0x14, - 0x2D, - 0x2D, - 0x2D, - 0x14, - 0x88, - 0x8F, - 0x7F, - 0x2B, - 0x2D, - 0x2D, - 0x40, - 0x2D, - 0x2D, - 0x37, - 0x91, - 0x93, - 0x6D, - 0x14, - 0x0F, - 0x2D, - 0x6D, - 0x95, - 0xA0, - 0x8E, - 0x14, - 0x00, - 0x09, - 0x2D, - 0x00, - 0x61, - 0x15, - 0x15, - 0x15, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x2D, - 0x14, - 0x2D, - 0x15, - 0x20, - 0x20, - 0x14, - 0x20, - 0x14, - 0x14, - 0x14, - 0x15, - 0x4A, - 0x15, - 0x20, - 0x14, - 0x2C, - 0x20, - 0x20, - 0x14, - 0x20, - 0x14, - 0x20, - 0x2C, - 0x20, - 0x20, - 0x20, - 0x2C, - 0x20, - 0x2C, - 0x11, - 0x11, - 0x20, - 0x88, - 0xA0, - 0x91, - 0x60, - 0x14, - 0x20, - 0x14, - 0x14, - 0x20, - 0x2C, - 0x2C, - 0x2C, - 0x11, - 0x2C, - 0x2C, - 0x11, - 0x2C, - 0x11, - 0x2C, - 0x14, - 0x20, - 0x1F, - 0x6B, - 0x84, - 0x8C, - 0x8E, - 0x85, - 0xB4, - 0x98, - 0x91, - 0x95, - 0x74, - 0x34, - 0x11, - 0x11, - 0x11, - 0x13, - 0x11, - 0x11, - 0x37, - 0x65, - 0x7D, - 0x90, - 0x91, - 0x8F, - 0x91, - 0x7F, - 0x75, - 0x6B, - 0x33, - 0x19, - 0x05, - 0x1D, - 0x09, - 0x13, - 0x09, - 0x2B, - 0x00, - 0x04, - 0x09, - 0x00, - 0x0E, - 0x1F, - 0x09, - 0x09, - 0x09, - 0x1F, - 0x09, - 0x1D, - 0x1F, - 0x09, - 0x1F, - 0x1D, - 0x09, - 0x09, - 0x1F, - 0x05, - 0x1D, - 0x01, - 0x19, - 0x01, - 0x1D, - 0x06, - 0x19, - 0x00, - 0x04, - 0x1D, - 0x1D, - 0x19, - 0x1D, - 0x07, - 0x19, - 0x00, - 0x0F, - 0x08, - 0x19, - 0x19, - 0x33, - 0x5C, - 0x34, - 0x33, - 0x33, - 0x1F, - 0x39, - 0x50, - 0x19, - 0x19, - 0x31, - 0x19, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xF7, - 0xE2, - 0xE2, - 0xE2, - 0xDE, - 0xE2, - 0xF7, - 0xF2, - 0xF7, - 0xE0, - 0xF4, - 0xF4, - 0x0A, - 0xFA, - 0x00, - 0x12, - 0xD3, - 0xFA, - 0x29, - 0x5E, - 0x5D, - 0x4F, - 0xF4, - 0xFA, - 0xFA, - 0xFA, - 0xD0, - 0xFA, - 0xD0, - 0xFA, - 0xD0, - 0xFA, - 0xD0, - 0xEC, - 0x04, - 0xFA, - 0x00, - 0x26, - 0xD0, - 0xFA, - 0x78, - 0x68, - 0x6A, - 0x5C, - 0xFA, - 0xF9, - 0xEC, - 0xF9, - 0xEC, - 0xEC, - 0xF9, - 0xEC, - 0xF9, - 0xF9, - 0xEC, - 0xF9, - 0xF9, - 0xF9, - 0xD1, - 0xD1, - 0xF9, - 0xD1, - 0xD1, - 0xF5, - 0xF5, - 0xFA, - 0x22, - 0x5C, - 0x5D, - 0x7A, - 0x7F, - 0x77, - 0x58, - 0x29, - 0xF5, - 0x05, - 0x07, - 0xFF, - 0x00, - 0x20, - 0x1D, - 0x06, - 0x06, - 0x1D, - 0x06, - 0x06, - 0x18, - 0x18, - 0x18, - 0x01, - 0x18, - 0x18, - 0x18, - 0x06, - 0x75, - 0x8C, - 0x74, - 0x2B, - 0x13, - 0x13, - 0x13, - 0x17, - 0x01, - 0x06, - 0xFF, - 0x05, - 0x5C, - 0x84, - 0x8C, - 0x88, - 0x14, - 0x4A, - 0x04, - 0x15, - 0x00, - 0x07, - 0x2D, - 0x2D, - 0x2C, - 0x88, - 0x93, - 0x88, - 0x2C, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x15, - 0x90, - 0x93, - 0x75, - 0x13, - 0x15, - 0x15, - 0x15, - 0x2D, - 0x14, - 0x6C, - 0x93, - 0x84, - 0x48, - 0x2D, - 0x14, - 0x88, - 0xA0, - 0x90, - 0x20, - 0x2D, - 0x15, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x15, - 0x14, - 0x2D, - 0x20, - 0x2D, - 0x2D, - 0x14, - 0x4A, - 0x2D, - 0x14, - 0x2D, - 0x15, - 0x2D, - 0x14, - 0x14, - 0x14, - 0x2C, - 0x14, - 0x14, - 0x2D, - 0x14, - 0x20, - 0x00, - 0x05, - 0x14, - 0x00, - 0x06, - 0x2C, - 0x2C, - 0x14, - 0x2C, - 0x2C, - 0x2C, - 0x05, - 0x14, - 0x00, - 0x0D, - 0x2C, - 0x20, - 0x2C, - 0x2C, - 0x2C, - 0x11, - 0x2D, - 0x88, - 0x96, - 0x84, - 0x33, - 0x09, - 0x20, - 0x00, - 0x04, - 0x14, - 0x01, - 0x2C, - 0x01, - 0x11, - 0x05, - 0x2C, - 0x00, - 0x28, - 0x11, - 0x11, - 0x09, - 0x56, - 0x91, - 0x91, - 0xBB, - 0xDA, - 0xE1, - 0xE1, - 0xDA, - 0xB4, - 0x91, - 0x95, - 0x53, - 0x09, - 0x0A, - 0x11, - 0x0A, - 0x11, - 0x13, - 0x09, - 0x09, - 0x09, - 0x11, - 0x35, - 0x36, - 0x75, - 0x88, - 0x91, - 0x95, - 0x8C, - 0x7F, - 0x75, - 0x6B, - 0x33, - 0x19, - 0x19, - 0x05, - 0x1D, - 0x04, - 0x09, - 0x01, - 0x1F, - 0x01, - 0x1D, - 0x04, - 0x09, - 0x00, - 0x04, - 0x1D, - 0x1D, - 0x1D, - 0x1F, - 0x06, - 0x1D, - 0x01, - 0x19, - 0x05, - 0x1D, - 0x00, - 0x03, - 0x19, - 0x1D, - 0x1D, - 0x00, - 0x08, - 0x19, - 0x00, - 0x13, - 0x1A, - 0x19, - 0x19, - 0x1A, - 0x19, - 0x1A, - 0x19, - 0x08, - 0x08, - 0x08, - 0x1A, - 0x1A, - 0x08, - 0x1A, - 0x1A, - 0x08, - 0x1A, - 0x08, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0F, - 0xE2, - 0xE2, - 0xF7, - 0xF7, - 0xF2, - 0xF7, - 0xDE, - 0xF2, - 0xE0, - 0xF4, - 0xF4, - 0xE6, - 0xE6, - 0xE6, - 0xFE, - 0x00, - 0x04, - 0xFA, - 0x00, - 0x29, - 0xF9, - 0xFA, - 0xFA, - 0xFA, - 0x04, - 0xFA, - 0x04, - 0x5F, - 0x5D, - 0x4F, - 0xFA, - 0xFA, - 0xFA, - 0xD0, - 0xFA, - 0xFA, - 0xEC, - 0xF9, - 0xEC, - 0xFA, - 0xFA, - 0xD0, - 0xFA, - 0xD0, - 0xFA, - 0xFA, - 0xD3, - 0x51, - 0x68, - 0x5D, - 0xB7, - 0xFA, - 0xEC, - 0xD0, - 0xF9, - 0xF9, - 0xF9, - 0xEC, - 0xF9, - 0xD0, - 0xFA, - 0x00, - 0x0A, - 0xF9, - 0x00, - 0x0E, - 0x29, - 0x4F, - 0x68, - 0x73, - 0x74, - 0x6D, - 0x1D, - 0xF5, - 0xF5, - 0x05, - 0xC0, - 0x05, - 0xFF, - 0x05, - 0x04, - 0xFF, - 0x00, - 0x20, - 0x1D, - 0xFF, - 0xFF, - 0xFF, - 0x06, - 0xFF, - 0x67, - 0xFF, - 0x06, - 0x06, - 0x18, - 0x18, - 0x18, - 0x13, - 0x06, - 0x77, - 0x8C, - 0x84, - 0x48, - 0x18, - 0x13, - 0x13, - 0x1D, - 0x5C, - 0x5E, - 0x64, - 0x68, - 0x73, - 0x8C, - 0x84, - 0x80, - 0x13, - 0x05, - 0x2D, - 0x00, - 0x06, - 0x15, - 0x15, - 0x13, - 0x74, - 0x95, - 0x84, - 0x05, - 0x2D, - 0x00, - 0x19, - 0x14, - 0x37, - 0x84, - 0x95, - 0x6D, - 0x14, - 0x2E, - 0x4B, - 0x15, - 0x4B, - 0x14, - 0x88, - 0x93, - 0x75, - 0x24, - 0x15, - 0x52, - 0x91, - 0x91, - 0x60, - 0x14, - 0x2D, - 0x2D, - 0x2D, - 0x20, - 0x00, - 0x05, - 0x2D, - 0x00, - 0x04, - 0x14, - 0x20, - 0x2D, - 0x20, - 0x06, - 0x14, - 0x00, - 0x03, - 0x2D, - 0x14, - 0x2D, - 0x00, - 0x08, - 0x14, - 0x00, - 0x21, - 0x2C, - 0x2C, - 0x2C, - 0x14, - 0x2C, - 0x2C, - 0x14, - 0x2C, - 0x2C, - 0x11, - 0x2C, - 0x2C, - 0x2C, - 0x14, - 0x14, - 0x14, - 0x2C, - 0x11, - 0x2C, - 0x11, - 0x20, - 0x90, - 0x96, - 0x90, - 0x34, - 0x13, - 0x11, - 0x2C, - 0x2C, - 0x11, - 0x14, - 0x14, - 0x14, - 0x00, - 0x06, - 0x11, - 0x00, - 0x3C, - 0x09, - 0x65, - 0x95, - 0x84, - 0xB5, - 0xDA, - 0xF4, - 0xF8, - 0xDA, - 0xB5, - 0x84, - 0x95, - 0x75, - 0x5C, - 0x39, - 0x05, - 0x1D, - 0x09, - 0x0A, - 0x11, - 0x11, - 0x13, - 0x2B, - 0x09, - 0x1F, - 0x1D, - 0x09, - 0x49, - 0x3F, - 0x7B, - 0x88, - 0x91, - 0x8C, - 0x8C, - 0x7F, - 0x75, - 0x6B, - 0x33, - 0x19, - 0x05, - 0x05, - 0x06, - 0x09, - 0x09, - 0x09, - 0x1D, - 0x1D, - 0x1D, - 0x09, - 0x09, - 0x09, - 0x1D, - 0x1D, - 0x1D, - 0x19, - 0x1D, - 0x19, - 0x19, - 0x1D, - 0x1D, - 0x04, - 0x19, - 0x00, - 0x09, - 0x05, - 0x05, - 0x1D, - 0x05, - 0x1D, - 0x19, - 0x19, - 0x19, - 0x1A, - 0x00, - 0x04, - 0x19, - 0x00, - 0x11, - 0x05, - 0x19, - 0x1A, - 0x19, - 0x1A, - 0x19, - 0x19, - 0x1A, - 0x0C, - 0x08, - 0x1A, - 0x08, - 0x08, - 0x1A, - 0x08, - 0x1A, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0C, - 0xF7, - 0xF7, - 0xF7, - 0xE0, - 0xE5, - 0xE5, - 0xF4, - 0xF4, - 0xF4, - 0xE6, - 0xF4, - 0xE6, - 0x07, - 0xFA, - 0x01, - 0xF9, - 0x01, - 0xFA, - 0x05, - 0xF9, - 0x00, - 0x07, - 0x50, - 0x5B, - 0x5B, - 0x1A, - 0xFA, - 0xF9, - 0xF9, - 0x00, - 0x06, - 0xEC, - 0x01, - 0xD0, - 0x04, - 0xF9, - 0x00, - 0x06, - 0xEC, - 0x39, - 0x64, - 0x68, - 0x5F, - 0xFA, - 0x08, - 0xF9, - 0x00, - 0x04, - 0xF5, - 0xF5, - 0xF5, - 0xF9, - 0x04, - 0xD1, - 0x00, - 0x0E, - 0xF5, - 0xD1, - 0xD1, - 0xF9, - 0x5C, - 0x73, - 0x74, - 0x6B, - 0x81, - 0xF5, - 0x05, - 0xC0, - 0x05, - 0x05, - 0x0A, - 0xFF, - 0x01, - 0x1D, - 0x06, - 0x06, - 0x00, - 0x43, - 0x67, - 0x06, - 0x18, - 0x06, - 0x18, - 0x06, - 0x6D, - 0x84, - 0x84, - 0x60, - 0x01, - 0x13, - 0x06, - 0x6B, - 0x7A, - 0x84, - 0x75, - 0x7C, - 0x7C, - 0x74, - 0x84, - 0x74, - 0x60, - 0x13, - 0x4A, - 0x14, - 0x4A, - 0x2D, - 0x2D, - 0x13, - 0x6B, - 0x84, - 0x8C, - 0x6C, - 0x14, - 0x14, - 0x2D, - 0x15, - 0x2D, - 0x2D, - 0x14, - 0x65, - 0x91, - 0x84, - 0x34, - 0x14, - 0x2D, - 0x2D, - 0x15, - 0x15, - 0x40, - 0x90, - 0x8C, - 0x7C, - 0x13, - 0x14, - 0x7B, - 0x91, - 0x7F, - 0x24, - 0x14, - 0x2D, - 0x2D, - 0x2D, - 0x14, - 0x14, - 0x2D, - 0x00, - 0x06, - 0x14, - 0x01, - 0x2C, - 0x09, - 0x14, - 0x01, - 0x0E, - 0x01, - 0x4A, - 0x04, - 0x14, - 0x00, - 0x09, - 0x2C, - 0x2C, - 0x2C, - 0x14, - 0x14, - 0x14, - 0x2C, - 0x2C, - 0x11, - 0x00, - 0x04, - 0x2C, - 0x00, - 0x0F, - 0x11, - 0x11, - 0x2C, - 0x11, - 0x14, - 0x2C, - 0x2C, - 0x2C, - 0x11, - 0x2C, - 0x88, - 0x95, - 0x90, - 0x24, - 0x13, - 0x00, - 0x08, - 0x11, - 0x00, - 0x34, - 0x0A, - 0x14, - 0x11, - 0x11, - 0x11, - 0x2C, - 0x88, - 0x91, - 0x97, - 0x8A, - 0xB4, - 0xB4, - 0xA9, - 0x97, - 0x90, - 0x94, - 0x91, - 0x84, - 0x7F, - 0x75, - 0x77, - 0x60, - 0x19, - 0x05, - 0x13, - 0x13, - 0x09, - 0x09, - 0x13, - 0x09, - 0x2B, - 0x09, - 0x09, - 0x06, - 0x09, - 0x48, - 0x52, - 0x65, - 0x88, - 0x90, - 0x84, - 0x84, - 0x74, - 0x75, - 0x6D, - 0x4F, - 0x1A, - 0x05, - 0x1D, - 0x09, - 0x06, - 0x09, - 0x10, - 0x1D, - 0x00, - 0x12, - 0x19, - 0x1D, - 0x19, - 0x05, - 0x19, - 0x19, - 0x05, - 0x1D, - 0x1D, - 0x19, - 0x05, - 0x19, - 0x1A, - 0x19, - 0x1A, - 0x19, - 0x1A, - 0x19, - 0x05, - 0x1A, - 0x01, - 0x19, - 0x04, - 0x1A, - 0x02, - 0x08, - 0x00, - 0x01, - 0x00, - 0x00, - 0x0B, - 0x04, - 0x00, - 0x00, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x69, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDF, - 0x56, - 0xF7, - 0x56, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x55, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB8, - 0x04, - 0xDF, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x54, - 0xDF, - 0xDA, - 0x04, - 0xDD, - 0xF7, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x53, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x04, - 0x57, - 0x00, - 0xF4, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xC6, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF6, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD5, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x53, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x53, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF4, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x5B, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x53, - 0x00, - 0x00, - 0x53, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xFA, - 0xB3, - 0x00, - 0x54, - 0x00, - 0xF5, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x54, - 0x54, - 0x00, - 0xF6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x54, - 0x53, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x54, - 0x54, - 0xF7, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x09, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0xB3, - 0x00, - 0x00, - 0x53, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x54, - 0x54, - 0x55, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x5E, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB3, - 0x56, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x54, - 0x00, - 0x54, - 0x00, - 0xF3, - 0x59, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x09, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xF7, - 0x53, - 0x00, - 0x54, - 0x00, - 0x54, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xF7, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x55, - 0x54, - 0x00, - 0x54, - 0x00, - 0xF3, - 0x59, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xB3, - 0x00, - 0x54, - 0x00, - 0x53, - 0xF7, - 0xDB, - 0xDA, - 0x56, - 0x54, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x54, - 0x53, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0xF3, - 0x00, - 0x54, - 0x54, - 0xF7, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF6, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF4, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x58, - 0xB3, - 0x00, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x57, - 0x53, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0xB3, - 0x00, - 0x54, - 0x00, - 0xF6, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0xF3, - 0x00, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x56, - 0x53, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB8, - 0xC6, - 0x00, - 0x00, - 0x53, - 0x58, - 0xDA, - 0xF3, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0x00, - 0x54, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x56, - 0x53, - 0x00, - 0x54, - 0x54, - 0xF7, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x56, - 0xC6, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0xB3, - 0x00, - 0x54, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xC6, - 0x54, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0xC6, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x54, - 0x55, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xC6, - 0x00, - 0x00, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x04, - 0x04, - 0xF1, - 0x00, - 0x00, - 0xF5, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xF3, - 0x00, - 0xC6, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xF5, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x54, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xC6, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF7, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x53, - 0x00, - 0x00, - 0xF4, - 0xF7, - 0xB8, - 0x55, - 0x00, - 0x00, - 0x55, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0xDA, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0xB8, - 0x55, - 0x53, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0xF4, - 0xF7, - 0xB8, - 0x55, - 0x54, - 0x00, - 0x54, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0xB8, - 0xF7, - 0xF4, - 0x00, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0xDF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0xB3, - 0x55, - 0xB8, - 0xF7, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xB3, - 0x54, - 0xF6, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0xB8, - 0x55, - 0x54, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x53, - 0x55, - 0xB8, - 0x55, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x54, - 0x00, - 0x55, - 0xB8, - 0xF4, - 0x54, - 0xB3, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xF5, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xC6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xF7, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x53, - 0x00, - 0x54, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB3, - 0x00, - 0x53, - 0xF7, - 0xB8, - 0xF5, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB3, - 0x00, - 0x54, - 0x55, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xD6, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDB, - 0xC6, - 0x00, - 0xB3, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x54, - 0x00, - 0xF3, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0xF6, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xDD, - 0x54, - 0x00, - 0xB3, - 0xF7, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0x54, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB3, - 0x00, - 0x53, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0x5D, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xB3, - 0xB8, - 0xF3, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xB3, - 0x00, - 0xB3, - 0xF7, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xB8, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0xDF, - 0xDA, - 0xDD, - 0xF3, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xE1, - 0x04, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x53, - 0x04, - 0x57, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF3, - 0x00, - 0x17, - 0xD3, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xDB, - 0x54, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x54, - 0xDA, - 0x04, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x00, - 0xF3, - 0x17, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF3, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0xF5, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x55, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0xF4, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0xF3, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xD4, - 0xF4, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x54, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x54, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF4, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0xD8, - 0x04, - 0xDA, - 0x53, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xB3, - 0x00, - 0x21, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xDA, - 0xC6, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xD4, - 0x54, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xD4, - 0x54, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x54, - 0xD8, - 0x04, - 0xDA, - 0x53, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x54, - 0x09, - 0xDA, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x59, - 0x54, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD9, - 0xC6, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x60, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0xF5, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0x04, - 0x04, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x04, - 0x04, - 0xD3, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x53, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x53, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0xDE, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xC6, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF3, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xDA, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0xB8, - 0x04, - 0x57, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF6, - 0x55, - 0x04, - 0x04, - 0x57, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0xF6, - 0x04, - 0x56, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x58, - 0xDA, - 0xF7, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xB8, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF7, - 0x04, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x54, - 0xB8, - 0x04, - 0x57, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x16, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0xDE, - 0xB8, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0xDB, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB3, - 0xB3, - 0xD7, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD6, - 0xDB, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xDF, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFB, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0xF7, - 0x54, - 0x59, - 0x17, - 0x17, - 0x55, - 0x00, - 0xFA, - 0x17, - 0x17, - 0x04, - 0xF7, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xDC, - 0x54, - 0x54, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF7, - 0x04, - 0xB3, - 0x00, - 0xD0, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0xF5, - 0xDD, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0xB8, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0xD0, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x59, - 0x54, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x54, - 0x54, - 0x5B, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x04, - 0xDF, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xD0, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x5D, - 0xDD, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x5E, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x59, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x50, - 0x00, - 0x58, - 0x04, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x53, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0xD7, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x55, - 0x00, - 0x00, - 0xD2, - 0xD8, - 0xC6, - 0x00, - 0xD3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD4, - 0x54, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0xF6, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x54, - 0xB8, - 0x04, - 0xF7, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD8, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDB, - 0x55, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x00, - 0xD9, - 0x04, - 0xD9, - 0x00, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x58, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xC6, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF6, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xC6, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x54, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x53, - 0x04, - 0xDB, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0xB3, - 0xF3, - 0x04, - 0xD9, - 0x00, - 0x57, - 0x04, - 0x53, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xE1, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD9, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0x59, - 0x53, - 0x00, - 0x17, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x17, - 0x17, - 0x17, - 0xF3, - 0x00, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x53, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xDF, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0xDC, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD8, - 0xDF, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x56, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0xE0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDB, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDA, - 0x04, - 0xD0, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x5B, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x55, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0xF6, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x5E, - 0x00, - 0xB3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD8, - 0x04, - 0x5B, - 0x54, - 0x17, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0xD7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD2, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x5C, - 0x5E, - 0x56, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x55, - 0x00, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDB, - 0x04, - 0xDD, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x5C, - 0x54, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0xDF, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0xDA, - 0xF6, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD8, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xB3, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x58, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0xC6, - 0xDD, - 0x04, - 0x57, - 0x00, - 0xD9, - 0x59, - 0x00, - 0xDB, - 0x04, - 0x57, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xB8, - 0x04, - 0xD7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xF4, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xF7, - 0xDC, - 0x04, - 0xB3, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x54, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x87, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xDD, - 0x00, - 0x55, - 0xDD, - 0xDD, - 0xDC, - 0x00, - 0xF7, - 0xDC, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD9, - 0xDF, - 0x54, - 0x00, - 0x00, - 0x54, - 0x50, - 0x04, - 0x04, - 0x55, - 0x00, - 0xFA, - 0xDA, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x54, - 0x5D, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0xC6, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x50, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x09, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x53, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xF6, - 0xDE, - 0xF1, - 0x5C, - 0x54, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xDF, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x55, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x57, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x56, - 0x04, - 0x00, - 0xF3, - 0x17, - 0x17, - 0x17, - 0x50, - 0xD0, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x55, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xDF, - 0x00, - 0x54, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xB8, - 0x04, - 0xDB, - 0x00, - 0xB8, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x55, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xF7, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x55, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDC, - 0x00, - 0x00, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD8, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xB3, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xD4, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0xF7, - 0x58, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xB8, - 0x04, - 0x04, - 0xD8, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0x55, - 0xD8, - 0x59, - 0x00, - 0xC6, - 0xD9, - 0x04, - 0xF3, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xF5, - 0x00, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD6, - 0x04, - 0xF5, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0xB8, - 0x04, - 0x5D, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x54, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x53, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xC6, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD3, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0x5C, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x17, - 0x60, - 0x5D, - 0x57, - 0xF6, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF3, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0xD5, - 0x04, - 0x00, - 0xF3, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0xE1, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xD5, - 0x04, - 0x00, - 0xF3, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x17, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF1, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0xDB, - 0xDB, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD2, - 0xEF, - 0x5D, - 0xF7, - 0x00, - 0xC6, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x57, - 0x53, - 0x00, - 0x53, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xDF, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0x04, - 0x53, - 0x00, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x5E, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xC6, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xB3, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE0, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xC6, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x55, - 0xD3, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD9, - 0x04, - 0xD8, - 0xB3, - 0xF5, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xDF, - 0xD0, - 0xDA, - 0x04, - 0xF6, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x53, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xFA, - 0xF7, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xC6, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF4, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF4, - 0x5A, - 0x5B, - 0xF5, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0xB3, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0xD0, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0xF5, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDA, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xDD, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDA, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF7, - 0x04, - 0x00, - 0xF5, - 0xDD, - 0xDD, - 0xDD, - 0xD3, - 0xDF, - 0xF6, - 0x54, - 0x54, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF3, - 0x54, - 0x00, - 0x54, - 0x57, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD8, - 0x04, - 0x55, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x56, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0xDB, - 0xB8, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x54, - 0xB8, - 0x04, - 0x56, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF3, - 0xF5, - 0x04, - 0x04, - 0x56, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0xF6, - 0x04, - 0xB8, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x60, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x55, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x57, - 0x04, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0x53, - 0x04, - 0xB8, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x54, - 0xB8, - 0x04, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x54, - 0xB8, - 0x04, - 0x56, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0xDB, - 0xD9, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x58, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x5C, - 0xDC, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDA, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xD0, - 0x55, - 0x00, - 0xD0, - 0xD0, - 0xD0, - 0xF5, - 0x00, - 0xD0, - 0xD0, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x00, - 0x00, - 0x55, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0xD2, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x53, - 0x57, - 0x5D, - 0x55, - 0x54, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xC6, - 0x57, - 0xFA, - 0xF7, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0x04, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x53, - 0x00, - 0xDB, - 0x04, - 0x54, - 0x53, - 0x04, - 0xD6, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x17, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0xDD, - 0xDD, - 0xD7, - 0x60, - 0xB3, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x00, - 0xF5, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xD8, - 0x04, - 0x00, - 0xF5, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDB, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0xDD, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x0A, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x57, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x60, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF1, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xD6, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0xD8, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x54, - 0xD8, - 0x04, - 0xDA, - 0x53, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB3, - 0x00, - 0x5E, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xD8, - 0x54, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x54, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xF5, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDA, - 0xC6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x53, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xB3, - 0x00, - 0xDD, - 0x04, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xB8, - 0x04, - 0xD8, - 0x54, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0xD8, - 0x04, - 0xDA, - 0x54, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x54, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDC, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xC6, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x56, - 0x00, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x56, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xF6, - 0xD7, - 0xD6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF3, - 0xDB, - 0xF7, - 0x00, - 0x54, - 0xD8, - 0x04, - 0xD9, - 0x17, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0xF7, - 0xDC, - 0xDB, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x5A, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0x5E, - 0x54, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF6, - 0xDE, - 0xD7, - 0xF6, - 0x00, - 0x57, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0xF3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x5C, - 0x00, - 0xF5, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x53, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0xF4, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xB8, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x54, - 0xE0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x57, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0xDB, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xF6, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD3, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0xDA, - 0xF3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF5, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF7, - 0xDB, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x54, - 0xD9, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x56, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x53, - 0x00, - 0x53, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xDF, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF3, - 0xF7, - 0xF7, - 0xF3, - 0x54, - 0x54, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x53, - 0x00, - 0x53, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB3, - 0x54, - 0x53, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0x59, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xDD, - 0x54, - 0x54, - 0xF4, - 0xF7, - 0xF7, - 0xF3, - 0x54, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x56, - 0x56, - 0x00, - 0x53, - 0x56, - 0x56, - 0x04, - 0x04, - 0xF1, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0xF5, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xC6, - 0xD4, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0x55, - 0x00, - 0x00, - 0xD6, - 0xF6, - 0x00, - 0xF3, - 0xB8, - 0xF7, - 0x54, - 0x00, - 0x56, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0x53, - 0x54, - 0xB3, - 0xD8, - 0x04, - 0x04, - 0xDD, - 0x54, - 0x00, - 0xF3, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF4, - 0xF7, - 0xF7, - 0xB3, - 0x54, - 0x54, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x53, - 0x00, - 0x53, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0x5C, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x09, - 0xF4, - 0x58, - 0x04, - 0xD3, - 0x00, - 0x54, - 0xB8, - 0xB3, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x56, - 0x53, - 0x00, - 0x56, - 0x56, - 0x56, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0xDF, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x50, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0xB8, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x00, - 0xF6, - 0x04, - 0xD8, - 0xD8, - 0xD9, - 0x00, - 0x58, - 0xD8, - 0xD8, - 0xD7, - 0x00, - 0x60, - 0xD8, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDF, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0xD8, - 0xDB, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0xDB, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x56, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x56, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0xF1, - 0x00, - 0xF5, - 0x04, - 0xDB, - 0x54, - 0x54, - 0xB8, - 0x5A, - 0x00, - 0x53, - 0x00, - 0xD8, - 0xF6, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF3, - 0x04, - 0xDA, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xDF, - 0xDB, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x5E, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xF7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xE1, - 0x09, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF4, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD7, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x5E, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xE1, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x58, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDD, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x57, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x58, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xF1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x59, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB8, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF7, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x5C, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xE1, - 0xB3, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x17, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDD, - 0xF5, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x56, - 0x53, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x57, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x59, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x57, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD6, - 0xC6, - 0x00, - 0x54, - 0x5C, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xF6, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x56, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x59, - 0x04, - 0xB8, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF3, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD9, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0xF7, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x17, - 0x59, - 0x00, - 0x09, - 0x57, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xDF, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x5E, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDE, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x56, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x58, - 0x04, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xD8, - 0x04, - 0x60, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDC, - 0x5A, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x53, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xD6, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x5C, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF7, - 0x54, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x00, - 0xF1, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x53, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF3, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x5A, - 0x04, - 0x56, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0xDA, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x58, - 0x09, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x5A, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x57, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x55, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD8, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x53, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xB3, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x50, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x55, - 0xD8, - 0x04, - 0xD8, - 0xD9, - 0x04, - 0xDA, - 0xB8, - 0x54, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0x55, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x56, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF6, - 0x00, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xF6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x50, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF3, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0xF6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF6, - 0x00, - 0x53, - 0xD8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x5D, - 0x04, - 0xD5, - 0x00, - 0x54, - 0xD5, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x5E, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF3, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xD9, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF6, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xF7, - 0xD9, - 0xD8, - 0xF7, - 0x00, - 0x58, - 0x04, - 0xD6, - 0x00, - 0x54, - 0xF7, - 0xF6, - 0x00, - 0x53, - 0xDA, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0xC6, - 0xB8, - 0xF6, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x54, - 0x04, - 0x5C, - 0x54, - 0xB3, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0xDF, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xC6, - 0xF7, - 0xB8, - 0xF5, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x17, - 0x56, - 0x56, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xF5, - 0x54, - 0x53, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xF4, - 0xB8, - 0xF6, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF5, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x54, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xF3, - 0x00, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x00, - 0xF3, - 0xB8, - 0xF7, - 0x00, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF4, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0xF4, - 0xF7, - 0xB8, - 0x55, - 0x54, - 0x53, - 0x54, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0xB8, - 0x55, - 0xF3, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0xDF, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0xB3, - 0x55, - 0xB8, - 0xF7, - 0xF3, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x50, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0xF3, - 0xF7, - 0xB8, - 0x55, - 0x54, - 0x54, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0xB8, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0xF3, - 0x55, - 0xB8, - 0xF7, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x56, - 0x56, - 0xB8, - 0x55, - 0xB3, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x54, - 0xF6, - 0xB8, - 0xB3, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x56, - 0x56, - 0x56, - 0x53, - 0x00, - 0x56, - 0x56, - 0x56, - 0x56, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xD7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xF1, - 0x04, - 0x5B, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x50, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x60, - 0x04, - 0x04, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0x56, - 0xB8, - 0x54, - 0x00, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF4, - 0x00, - 0x54, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF7, - 0xD5, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xD0, - 0xF3, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x56, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF5, - 0x04, - 0x5A, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x50, - 0x04, - 0x04, - 0x04, - 0xFA, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0x53, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0xB3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x55, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x55, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF7, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x54, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xF7, - 0x53, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF4, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0x55, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF7, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xF5, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xDA, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0x00, - 0x55, - 0x04, - 0xF5, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD2, - 0x04, - 0xF2, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x54, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF5, - 0x04, - 0xD8, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0xC6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x54, - 0x00, - 0xD6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF7, - 0x00, - 0xF4, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0xD5, - 0xD9, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x00, - 0x00, - 0x0B, - 0x04, - 0x00, - 0x00, - 0x1A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3A, - 0x69, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x59, - 0xF7, - 0xF7, - 0xB8, - 0xF9, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x55, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x04, - 0x59, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xB8, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x54, - 0x59, - 0xDB, - 0x04, - 0xE1, - 0x55, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0xF5, - 0x53, - 0xB3, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x53, - 0x54, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF5, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x04, - 0xB8, - 0x54, - 0xF4, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xC6, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0xF3, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x56, - 0x00, - 0x53, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x53, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0x04, - 0xE1, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF3, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x60, - 0xF3, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB8, - 0x53, - 0x00, - 0x00, - 0xB3, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xB3, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD6, - 0x53, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x54, - 0x55, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xB3, - 0x00, - 0x00, - 0x53, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD8, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x58, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x09, - 0x57, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF7, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF6, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x55, - 0x53, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF7, - 0x04, - 0x00, - 0x00, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x00, - 0xD0, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x55, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0xF7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF7, - 0xDE, - 0xDB, - 0xF7, - 0x54, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x59, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x55, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xF6, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0xDB, - 0x53, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xD9, - 0xB8, - 0x53, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x56, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xB8, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xF7, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0xC6, - 0x00, - 0x00, - 0x53, - 0xB8, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x54, - 0xDD, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xF7, - 0x53, - 0x00, - 0x00, - 0x54, - 0x55, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD9, - 0xB8, - 0xC6, - 0x00, - 0x00, - 0x53, - 0xF7, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x56, - 0xB3, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF7, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x17, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x54, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xC6, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x55, - 0x55, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xD8, - 0xF3, - 0x00, - 0x53, - 0xF7, - 0x55, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x54, - 0x55, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x54, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0xF5, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x55, - 0xF7, - 0xF3, - 0x00, - 0xC6, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0xF6, - 0xF7, - 0xF4, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xC6, - 0x55, - 0x55, - 0x53, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0xF4, - 0x55, - 0xF7, - 0x55, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0xF6, - 0x53, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0x55, - 0xF7, - 0xF6, - 0x54, - 0x00, - 0x54, - 0x17, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x59, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0xB3, - 0x55, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x60, - 0x00, - 0x00, - 0xF6, - 0xF7, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xF3, - 0xD8, - 0x04, - 0x00, - 0xB3, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0xF3, - 0x55, - 0xF7, - 0xF6, - 0x54, - 0x00, - 0x00, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x53, - 0x55, - 0xF7, - 0x55, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF6, - 0xF7, - 0xF4, - 0x00, - 0xB3, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x55, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x11, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x11, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xC6, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x54, - 0x55, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0x5A, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x55, - 0x55, - 0xF3, - 0x00, - 0x54, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xF2, - 0xB3, - 0x00, - 0x53, - 0x55, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0xB3, - 0x00, - 0x54, - 0x55, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0x5B, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xC6, - 0x00, - 0xB3, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x53, - 0x00, - 0xF3, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0xF5, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x54, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xE1, - 0x53, - 0x00, - 0xB3, - 0x55, - 0xF7, - 0xF3, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0xF2, - 0xB3, - 0x00, - 0x53, - 0x55, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0x57, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xB3, - 0xF7, - 0xF3, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xB3, - 0x00, - 0xB3, - 0x55, - 0x55, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x09, - 0xC6, - 0x59, - 0xDB, - 0xE1, - 0xF3, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x5C, - 0x04, - 0x53, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x53, - 0x04, - 0xB8, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF3, - 0x00, - 0x58, - 0x0A, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF4, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xDE, - 0x54, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0xDB, - 0x04, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x00, - 0xF3, - 0x58, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF3, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x17, - 0x00, - 0x53, - 0xD7, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x54, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0xD5, - 0xF6, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0xF5, - 0x54, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD7, - 0x54, - 0x00, - 0xF6, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x60, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x57, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x53, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x55, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0xF3, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD6, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x54, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x54, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x53, - 0xF4, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x54, - 0xDC, - 0x04, - 0xD9, - 0x53, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x57, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xDB, - 0xC6, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x09, - 0xC6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF3, - 0x04, - 0x04, - 0xD8, - 0xF3, - 0x54, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xDC, - 0x54, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x00, - 0x54, - 0xDC, - 0x04, - 0xDB, - 0x53, - 0x54, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0xD9, - 0x04, - 0xD8, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0xB8, - 0x53, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x56, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x57, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF2, - 0xC6, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x60, - 0x04, - 0xF4, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x5E, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0x0A, - 0x04, - 0x04, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x04, - 0x04, - 0x0A, - 0xF5, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x09, - 0xB3, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xB3, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x53, - 0x53, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x54, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x54, - 0x60, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xC6, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xF3, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x56, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDB, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xF7, - 0x04, - 0xB8, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF5, - 0xF6, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0xF6, - 0x04, - 0xB8, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x56, - 0xDA, - 0x55, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xF7, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0x55, - 0x04, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF7, - 0x04, - 0xB8, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x57, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x60, - 0xF7, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xDE, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xB3, - 0xB3, - 0x0D, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x5A, - 0xDE, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x59, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFB, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x55, - 0x00, - 0x56, - 0x58, - 0x58, - 0xF6, - 0x09, - 0x57, - 0x58, - 0x58, - 0x04, - 0x55, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD6, - 0x54, - 0xC6, - 0xDB, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x54, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x53, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x55, - 0x04, - 0xB3, - 0x54, - 0x16, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0x00, - 0xF4, - 0xE1, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF7, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x5B, - 0xF9, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x56, - 0x54, - 0x54, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x54, - 0x57, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0xDB, - 0x55, - 0x00, - 0x00, - 0xD8, - 0x59, - 0x00, - 0xF4, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0xF9, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x57, - 0xE1, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xC6, - 0x56, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD9, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0xB8, - 0x04, - 0x53, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x0D, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0xDF, - 0xD5, - 0xE0, - 0x00, - 0x0A, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDB, - 0xC6, - 0x09, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF7, - 0x04, - 0x55, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD3, - 0xF5, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDE, - 0xF6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x00, - 0xD7, - 0x04, - 0xD7, - 0x00, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x56, - 0xC6, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xC6, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xC6, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF6, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xC6, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xE0, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x53, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0xF7, - 0x04, - 0xB3, - 0xF3, - 0x04, - 0xF2, - 0x54, - 0xB8, - 0x04, - 0x53, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x00, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0xF6, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x09, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x60, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5D, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x04, - 0xD7, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB3, - 0x56, - 0x56, - 0x53, - 0x00, - 0x58, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x58, - 0x58, - 0x58, - 0xF3, - 0x00, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x59, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0xD6, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD5, - 0x59, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0xDB, - 0xF6, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDE, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD8, - 0x04, - 0x5E, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x57, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x55, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0xF5, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF4, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x57, - 0x09, - 0xB3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x59, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDC, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF6, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x55, - 0x57, - 0x57, - 0xB8, - 0xF4, - 0x00, - 0x00, - 0xF5, - 0xD7, - 0x04, - 0x04, - 0x16, - 0x09, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDE, - 0x04, - 0xE1, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x57, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x59, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x00, - 0xF5, - 0xDA, - 0xF5, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD5, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xB3, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xB8, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xE1, - 0x04, - 0xB8, - 0x54, - 0xD7, - 0x56, - 0x00, - 0xDE, - 0x04, - 0xB8, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x54, - 0xF7, - 0x04, - 0x0D, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x55, - 0x13, - 0x04, - 0xB3, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xAD, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xE1, - 0x00, - 0xF6, - 0xE1, - 0xE1, - 0xD6, - 0x00, - 0x55, - 0xE1, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD2, - 0x59, - 0x53, - 0x00, - 0x00, - 0x54, - 0x59, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x54, - 0x57, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xB8, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0x55, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x09, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xF5, - 0x16, - 0xD6, - 0x57, - 0x54, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x59, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x54, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x54, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xB8, - 0x04, - 0x00, - 0xF3, - 0x58, - 0x58, - 0x58, - 0x59, - 0xF9, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x59, - 0x54, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0xD5, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x55, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x53, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x55, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xE1, - 0x09, - 0xC6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF3, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0xF9, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xB3, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDE, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x55, - 0x04, - 0x5B, - 0x53, - 0x55, - 0xB8, - 0x53, - 0x54, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x53, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0xF7, - 0x04, - 0x04, - 0xD3, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x54, - 0x00, - 0x55, - 0xDC, - 0x56, - 0x00, - 0xC6, - 0xF2, - 0x04, - 0xF3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xF4, - 0x00, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xB3, - 0x09, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0x00, - 0xF2, - 0x04, - 0x04, - 0xD8, - 0x53, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x5A, - 0x04, - 0xF5, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xF7, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x54, - 0x54, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0xC6, - 0x57, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF5, - 0x04, - 0x04, - 0x60, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x0A, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0x57, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x58, - 0x58, - 0x57, - 0xB8, - 0xF5, - 0x00, - 0x53, - 0xD7, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF3, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0xD0, - 0x04, - 0x00, - 0xF3, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x5D, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xD0, - 0x04, - 0x00, - 0xF3, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x58, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x54, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0xD8, - 0xDE, - 0xDE, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x17, - 0x5A, - 0x57, - 0x55, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xB8, - 0x53, - 0x54, - 0x53, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x17, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x59, - 0x00, - 0x59, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF6, - 0x04, - 0x54, - 0x00, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0x00, - 0x09, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xC6, - 0xC6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x57, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x09, - 0xC6, - 0x04, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xB3, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x58, - 0xC6, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xC6, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xDF, - 0xF3, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF6, - 0x0A, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xD7, - 0x04, - 0xD5, - 0xB3, - 0xF5, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x59, - 0x5E, - 0xD9, - 0x04, - 0xF5, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x53, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x57, - 0xF7, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0xD8, - 0x04, - 0x04, - 0xDA, - 0xDF, - 0x00, - 0xC6, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF4, - 0x56, - 0x57, - 0xF5, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0xB3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x5E, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x5A, - 0xF3, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0D, - 0xF5, - 0x00, - 0x00, - 0xF3, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x57, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0xF4, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDB, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0x00, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x00, - 0x56, - 0x04, - 0x00, - 0x00, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x53, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x54, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xE1, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDC, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF4, - 0xE1, - 0xE1, - 0xE1, - 0x0A, - 0x59, - 0xF6, - 0x00, - 0x54, - 0xD9, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF3, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0x55, - 0x00, - 0xDC, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x03, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDE, - 0xF7, - 0xC6, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x09, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF7, - 0x04, - 0xB8, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF4, - 0xF5, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0xF6, - 0x04, - 0xF7, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF6, - 0x09, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x54, - 0xB8, - 0x04, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x54, - 0x04, - 0xF7, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF7, - 0x04, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF7, - 0x04, - 0xF7, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xF2, - 0x04, - 0x04, - 0xDE, - 0xD2, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x57, - 0xD6, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0xDD, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0xF9, - 0x55, - 0x00, - 0xF9, - 0xF9, - 0xF9, - 0xF5, - 0x00, - 0xF9, - 0xF9, - 0x04, - 0x04, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x55, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x17, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x09, - 0xC6, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x53, - 0xB8, - 0x57, - 0x55, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xC6, - 0xB8, - 0x57, - 0x55, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0xF5, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0x04, - 0x04, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0x04, - 0x04, - 0x5C, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x53, - 0x00, - 0xDE, - 0x04, - 0x54, - 0x53, - 0x04, - 0x5A, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x58, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0xC6, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0xE1, - 0xE1, - 0x0D, - 0x58, - 0xB3, - 0x00, - 0x59, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x04, - 0x00, - 0xF4, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xDC, - 0x04, - 0x00, - 0xF4, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xDE, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0xE1, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x5A, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xB8, - 0x54, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x58, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x00, - 0xF7, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x5B, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xC6, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0xDC, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x00, - 0x57, - 0x04, - 0xDA, - 0xDA, - 0x04, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x54, - 0xDC, - 0x04, - 0xDB, - 0x53, - 0x00, - 0x58, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD2, - 0xB3, - 0x54, - 0x57, - 0x04, - 0x04, - 0xDB, - 0x53, - 0x00, - 0x58, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xDC, - 0x54, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDA, - 0xDA, - 0x04, - 0x5D, - 0x54, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xDA, - 0xDA, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDB, - 0xC6, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x53, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xB3, - 0x00, - 0xE1, - 0x04, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0x55, - 0x00, - 0xF7, - 0x04, - 0xDC, - 0x54, - 0x00, - 0xF9, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x5C, - 0x54, - 0x54, - 0xDC, - 0x04, - 0xDB, - 0x54, - 0x00, - 0x58, - 0x04, - 0xDA, - 0xDA, - 0x04, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD6, - 0x04, - 0xDC, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xC6, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF5, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF4, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF6, - 0xDF, - 0x5B, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xF3, - 0xDE, - 0x55, - 0x00, - 0x54, - 0xDC, - 0x04, - 0xF2, - 0x58, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x55, - 0xE1, - 0xDE, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x56, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xD6, - 0x57, - 0x09, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xC6, - 0x00, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x16, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xF5, - 0x60, - 0xDF, - 0xF6, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF7, - 0xDA, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x60, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF4, - 0x04, - 0x5E, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0x5B, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x53, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF4, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xF7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0xDE, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x0A, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x55, - 0xDA, - 0xF4, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF5, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x53, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x55, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x54, - 0xF2, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDE, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x09, - 0xD8, - 0x04, - 0xD9, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x54, - 0x53, - 0x55, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0x59, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB3, - 0x55, - 0xF7, - 0xF3, - 0x00, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x53, - 0x55, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0xB3, - 0xC6, - 0x53, - 0x55, - 0xF7, - 0xF5, - 0x54, - 0x00, - 0x56, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF3, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0x54, - 0x0D, - 0x04, - 0x04, - 0xF7, - 0xF7, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x55, - 0xF3, - 0x00, - 0xF5, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x55, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xC6, - 0xDB, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0x55, - 0x00, - 0x00, - 0x5B, - 0xF6, - 0x54, - 0xF3, - 0xF7, - 0x55, - 0x54, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x53, - 0x55, - 0x55, - 0x53, - 0x00, - 0xB3, - 0xD5, - 0x04, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF3, - 0x55, - 0xF7, - 0xF3, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0x55, - 0xF7, - 0xB3, - 0x00, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x53, - 0x55, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0x57, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x54, - 0xF3, - 0x56, - 0x04, - 0x0A, - 0x00, - 0x09, - 0xF7, - 0xB3, - 0x00, - 0xF9, - 0x04, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x60, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD7, - 0x04, - 0x59, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDC, - 0x04, - 0xD8, - 0x53, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x16, - 0x09, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x00, - 0xF6, - 0x04, - 0xDC, - 0xDC, - 0xF2, - 0x00, - 0x56, - 0xDC, - 0xDC, - 0xDF, - 0xC6, - 0x57, - 0xDC, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x57, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0xDC, - 0xDE, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0xDE, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xB8, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB8, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0xD6, - 0x00, - 0xF5, - 0x04, - 0xDE, - 0x54, - 0x00, - 0xF7, - 0x56, - 0x00, - 0x53, - 0x00, - 0xD5, - 0xF5, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF3, - 0x04, - 0xDB, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x5C, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x59, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x09, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF7, - 0x55, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x5C, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF3, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x0D, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x57, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x5D, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x5E, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x5B, - 0x04, - 0x5B, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x59, - 0xDA, - 0x58, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xD8, - 0xB8, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xF7, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x0D, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xF7, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF7, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x57, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x0D, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x5C, - 0xB3, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xB3, - 0x58, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xE1, - 0xF4, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x53, - 0x00, - 0x00, - 0x54, - 0x55, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD8, - 0xB8, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xF7, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xB8, - 0x00, - 0x09, - 0x04, - 0x04, - 0x5B, - 0xC6, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xF5, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x54, - 0xB8, - 0x04, - 0xF4, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x56, - 0x04, - 0xF7, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF3, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x55, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF6, - 0xD8, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x0D, - 0x00, - 0xF3, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x58, - 0x56, - 0x00, - 0x54, - 0xB8, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x59, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xB3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x04, - 0x04, - 0x57, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x60, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x55, - 0x54, - 0xB8, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0x04, - 0x58, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD6, - 0x56, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xC6, - 0x09, - 0xDC, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x53, - 0xD8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x5B, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x57, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x55, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x55, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x56, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x57, - 0x09, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x53, - 0x09, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xF9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xF3, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x0D, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF4, - 0x04, - 0xB3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x53, - 0x00, - 0xD2, - 0xDA, - 0x04, - 0x57, - 0x00, - 0x56, - 0x04, - 0xF7, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE0, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x59, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x56, - 0x54, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF5, - 0xD9, - 0xDA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x56, - 0x00, - 0x55, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0xF7, - 0x00, - 0xB8, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x57, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0x04, - 0x04, - 0x53, - 0x00, - 0xD3, - 0xDA, - 0xDA, - 0xD3, - 0x00, - 0x53, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xB3, - 0xDC, - 0xDA, - 0x04, - 0x04, - 0x59, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD8, - 0xF4, - 0x00, - 0x55, - 0xD3, - 0x04, - 0xF1, - 0xF2, - 0x04, - 0xDB, - 0xF7, - 0x00, - 0x54, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x55, - 0xD3, - 0x04, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x16, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0xF4, - 0xE1, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0xF3, - 0xD9, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF3, - 0x00, - 0x5C, - 0x04, - 0x04, - 0xF2, - 0x54, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0xDE, - 0xF5, - 0x54, - 0x53, - 0xDC, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0D, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x17, - 0xDA, - 0x04, - 0x04, - 0x55, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xC6, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x57, - 0xC6, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0xF3, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x09, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x55, - 0xD2, - 0xDC, - 0xF7, - 0x00, - 0x56, - 0x04, - 0x5B, - 0x54, - 0x54, - 0x55, - 0xF6, - 0x00, - 0x53, - 0xDB, - 0x04, - 0xD7, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x09, - 0xC6, - 0xF7, - 0xF6, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x54, - 0x04, - 0x57, - 0x00, - 0xB3, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x5B, - 0x00, - 0x00, - 0x59, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xF6, - 0x54, - 0x53, - 0x55, - 0xF7, - 0xF5, - 0x54, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x58, - 0xF7, - 0xF7, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xF4, - 0x00, - 0x53, - 0x55, - 0x55, - 0x53, - 0x54, - 0xF4, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xF4, - 0xF7, - 0xF5, - 0x00, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x54, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF4, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x54, - 0x55, - 0x55, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x56, - 0xC6, - 0x09, - 0x55, - 0xF7, - 0xF3, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x00, - 0xF3, - 0xF7, - 0x55, - 0x00, - 0x54, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0xF4, - 0x55, - 0xF7, - 0xF5, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0x55, - 0xF4, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0x55, - 0xF7, - 0xF6, - 0x54, - 0x00, - 0xC6, - 0x60, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x59, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF5, - 0x54, - 0x54, - 0xB3, - 0x55, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF3, - 0x55, - 0xF7, - 0xF6, - 0x54, - 0x00, - 0xC6, - 0x5E, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0x55, - 0xF5, - 0x00, - 0x09, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0x55, - 0xF7, - 0x55, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0xF7, - 0x55, - 0xB3, - 0x00, - 0x00, - 0xF9, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF6, - 0xF7, - 0xB3, - 0x00, - 0xF4, - 0x04, - 0x04, - 0xF7, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xDF, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x58, - 0x04, - 0x04, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0xF4, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x54, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x53, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x55, - 0x0C, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xF9, - 0xF3, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF2, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF9, - 0xB3, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x53, - 0x00, - 0x00, - 0xF5, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0xF5, - 0x04, - 0x56, - 0x56, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x57, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x56, - 0xB3, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0xB3, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x54, - 0x55, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x55, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF6, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF7, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x55, - 0x53, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF4, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF5, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD9, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF6, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0xF5, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD0, - 0x04, - 0x16, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x54, - 0xD8, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x0A, - 0xF4, - 0x04, - 0xDC, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x54, - 0x00, - 0x56, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0xC6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x5B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF7, - 0x00, - 0xF4, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF3, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0xD0, - 0xD7, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x00, - 0x00, - 0x49, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x74, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB8, - 0x5D, - 0x17, - 0x17, - 0x5D, - 0xF7, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDC, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0x5D, - 0x54, - 0x5D, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD9, - 0xDF, - 0xB8, - 0x55, - 0xF7, - 0x5A, - 0xD2, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0xD9, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDC, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x5B, - 0x00, - 0x5B, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xDE, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD3, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD9, - 0x58, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDA, - 0x60, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDD, - 0x5A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD3, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0xDB, - 0xD8, - 0xD7, - 0x60, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xD0, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD8, - 0xD8, - 0xD7, - 0x12, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x53, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xD3, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x16, - 0xF2, - 0xD9, - 0xD9, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0xD2, - 0xD9, - 0xD9, - 0xDE, - 0xFA, - 0xB3, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xDC, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x03, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDB, - 0xD2, - 0xD6, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF5, - 0xFA, - 0xD0, - 0xDC, - 0xDA, - 0xD9, - 0xD3, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD3, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xE1, - 0xD7, - 0xD9, - 0xDA, - 0xD5, - 0xDE, - 0x60, - 0xF6, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xDA, - 0xDD, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x5D, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xD0, - 0xDC, - 0xD8, - 0xD8, - 0xD3, - 0xE1, - 0x5A, - 0xF3, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x59, - 0xE1, - 0xF1, - 0xD8, - 0xD9, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0xF5, - 0xDF, - 0xD7, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xEF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5E, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDF, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD8, - 0xD9, - 0xD7, - 0xDF, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x09, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x58, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xF1, - 0xD8, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD7, - 0xD9, - 0xD8, - 0xD2, - 0x17, - 0xF5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xE1, - 0xB8, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xDD, - 0xDA, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0xD0, - 0xD5, - 0xDA, - 0xDD, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD0, - 0xD5, - 0xDA, - 0xD5, - 0xD0, - 0x56, - 0xC6, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xDE, - 0xDB, - 0x04, - 0xD5, - 0xD6, - 0xF5, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xF2, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD9, - 0x55, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD8, - 0xD0, - 0xE1, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xDB, - 0xE1, - 0xD6, - 0xF1, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x53, - 0x59, - 0xD8, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xDC, - 0x04, - 0xD7, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDA, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x60, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDC, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xE1, - 0xD2, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD6, - 0xDE, - 0xD5, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD7, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDB, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDC, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD7, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x16, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD5, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0x04, - 0xF2, - 0xD6, - 0xD6, - 0xD3, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0xD2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xEF, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x16, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xE1, - 0xF1, - 0x04, - 0xDC, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD8, - 0x59, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xF2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x60, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x16, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0x56, - 0xD8, - 0xD9, - 0xE1, - 0xD6, - 0xDB, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0x54, - 0xEF, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xDE, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0xE1, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x45, - 0x3E, - 0x54, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xF2, - 0xB8, - 0xF3, - 0xB8, - 0xD7, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xDF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD5, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xFC, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xD7, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x12, - 0x04, - 0xE1, - 0x54, - 0x00, - 0xF6, - 0xDC, - 0xD8, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xD5, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x0A, - 0xD9, - 0x04, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0x04, - 0xDB, - 0xEF, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD5, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD0, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDB, - 0x60, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xDB, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x58, - 0xD9, - 0xDA, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD3, - 0xDA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xD5, - 0x56, - 0x00, - 0x00, - 0x00, - 0x53, - 0x60, - 0x04, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0x04, - 0x04, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0xD9, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDC, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xD6, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x54, - 0x54, - 0xE1, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7D, - 0x3B, - 0x45, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDB, - 0xF5, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0xEF, - 0xDA, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD2, - 0xD8, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x54, - 0xDF, - 0x04, - 0x16, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x56, - 0xD0, - 0xDA, - 0x04, - 0xD2, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD2, - 0x04, - 0xDA, - 0xE1, - 0x56, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDA, - 0xFA, - 0x00, - 0xF4, - 0xF7, - 0xF5, - 0x54, - 0x54, - 0xF3, - 0xF7, - 0x04, - 0x04, - 0x0A, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x60, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0xDA, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0xD8, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD9, - 0xD9, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x5B, - 0x53, - 0xF5, - 0xD7, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x54, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDD, - 0xDE, - 0xF6, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0x00, - 0xD2, - 0xD2, - 0xB8, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x54, - 0x59, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x69, - 0xFF, - 0xAD, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x60, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xDB, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0xDB, - 0x04, - 0xD6, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0xE1, - 0xD4, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xD7, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x59, - 0xF2, - 0x04, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xFA, - 0x00, - 0x60, - 0xD9, - 0x04, - 0xDA, - 0xD6, - 0xB8, - 0xDD, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD6, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x09, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0xF5, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF4, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xDC, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x0D, - 0x04, - 0xFD, - 0xF7, - 0x57, - 0xDA, - 0xF1, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDD, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0xB3, - 0xDC, - 0xF2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xDF, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xD4, - 0xB8, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xDA, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF2, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x54, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x54, - 0xE1, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x5E, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xD0, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD0, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0x04, - 0x5A, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF4, - 0x59, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x17, - 0x00, - 0xD2, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD9, - 0xB8, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x60, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD7, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x04, - 0xDE, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0xD5, - 0x0A, - 0x0A, - 0x0A, - 0x54, - 0x59, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDC, - 0xF3, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD0, - 0x00, - 0xDB, - 0xD2, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xF1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x60, - 0x0D, - 0x5E, - 0x04, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x60, - 0xF1, - 0x04, - 0xD9, - 0xD6, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xF1, - 0x60, - 0x17, - 0xF1, - 0x04, - 0x04, - 0x56, - 0x55, - 0xEF, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x17, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0xC6, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x56, - 0xF5, - 0x53, - 0xF5, - 0x56, - 0xDF, - 0xD5, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x53, - 0xDE, - 0xDA, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDD, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDE, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD5, - 0xF3, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0xD6, - 0x00, - 0xF4, - 0xD9, - 0xEF, - 0x00, - 0x5E, - 0x04, - 0xF7, - 0x00, - 0x60, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0xF7, - 0xC6, - 0x00, - 0x0A, - 0xE1, - 0x00, - 0x54, - 0x53, - 0x53, - 0x57, - 0xDE, - 0xD9, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x56, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0xD6, - 0xD9, - 0xD5, - 0xF7, - 0x00, - 0xD0, - 0xDA, - 0xB8, - 0x53, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDD, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0x0A, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xF1, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x58, - 0x00, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0xD2, - 0x04, - 0x59, - 0x54, - 0x00, - 0xFA, - 0xD7, - 0xE0, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xDF, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x59, - 0x54, - 0x00, - 0x55, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xB3, - 0x00, - 0x03, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x54, - 0xDD, - 0xF2, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xDA, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD2, - 0x04, - 0xD8, - 0xEF, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD5, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x57, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0xDE, - 0xD7, - 0x00, - 0x00, - 0x55, - 0xD8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDA, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0xFA, - 0x00, - 0x5A, - 0x04, - 0xFA, - 0xF3, - 0x57, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x4D, - 0xF9, - 0x69, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD0, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x53, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x56, - 0xD4, - 0xDC, - 0xB8, - 0x54, - 0xB3, - 0xE1, - 0x04, - 0xD0, - 0xF3, - 0x17, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0xDE, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xD0, - 0xB8, - 0xF3, - 0xF5, - 0x59, - 0xD3, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x56, - 0xC6, - 0x00, - 0x00, - 0xDB, - 0xF6, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x16, - 0xC6, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD0, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xF7, - 0xF1, - 0xD9, - 0xF7, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDD, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x00, - 0xDC, - 0xF1, - 0x55, - 0x5A, - 0x17, - 0xEF, - 0xDF, - 0x5D, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0xD0, - 0xDE, - 0xD7, - 0xD8, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xD9, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x54, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0x04, - 0x04, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0x04, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x17, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDC, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0xD3, - 0x60, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x57, - 0xD4, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0x16, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD6, - 0x56, - 0xF4, - 0x5A, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x0A, - 0xDB, - 0x04, - 0xFC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x59, - 0xD9, - 0xD8, - 0xEF, - 0xD0, - 0x04, - 0xD6, - 0x53, - 0x00, - 0xF4, - 0xDC, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x5A, - 0xDA, - 0xF1, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x56, - 0x00, - 0x5A, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xD8, - 0x17, - 0x55, - 0xB3, - 0xF7, - 0xE1, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x5B, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD3, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD7, - 0x04, - 0xDA, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD6, - 0xD8, - 0x04, - 0xD7, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x04, - 0x53, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x56, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xF2, - 0xDA, - 0xDB, - 0x57, - 0x00, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x56, - 0xD8, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD2, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xDA, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x60, - 0xDE, - 0xDA, - 0x04, - 0xB6, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x5C, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0x60, - 0x04, - 0x56, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x58, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDC, - 0xD2, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x03, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xF5, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xD7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0D, - 0x04, - 0xB8, - 0x00, - 0x04, - 0xF1, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD5, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD8, - 0x5A, - 0xD8, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x53, - 0x16, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0xDF, - 0x5D, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x56, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDE, - 0x04, - 0xDA, - 0xD9, - 0xD6, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xDF, - 0xDF, - 0x57, - 0x00, - 0x54, - 0xDE, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xD6, - 0xD2, - 0x04, - 0xF1, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x0A, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x53, - 0xD2, - 0xD8, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x59, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDE, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0x04, - 0x04, - 0xDE, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDB, - 0xD9, - 0xF7, - 0x00, - 0xD9, - 0xF6, - 0x00, - 0x58, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF4, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xE1, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x09, - 0xF5, - 0xDB, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC6, - 0xF2, - 0xD9, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xDC, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x53, - 0xF1, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD5, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDF, - 0x00, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xD8, - 0x04, - 0xD2, - 0xDF, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD3, - 0x00, - 0x00, - 0xD0, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x12, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xF2, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDC, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDB, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x12, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xE1, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD8, - 0xF4, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xD0, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x58, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0xD0, - 0x04, - 0x57, - 0x00, - 0x58, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF4, - 0x5B, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xDF, - 0x00, - 0x16, - 0x04, - 0x17, - 0x54, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x0A, - 0x54, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEC, - 0xFF, - 0xFF, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x58, - 0xFA, - 0x04, - 0xDF, - 0x58, - 0x58, - 0x58, - 0x04, - 0xF2, - 0x58, - 0x58, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0xD2, - 0xFA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD0, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x57, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xDB, - 0xDA, - 0xDF, - 0x53, - 0x00, - 0x53, - 0xD2, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD6, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0xD3, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0x04, - 0xD2, - 0xD6, - 0xD6, - 0xF1, - 0x04, - 0xF2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDE, - 0xD6, - 0xD0, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x04, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xE1, - 0xD8, - 0x04, - 0xD2, - 0x5C, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xD2, - 0x04, - 0xD4, - 0xE1, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xE1, - 0x00, - 0xD2, - 0x59, - 0x54, - 0x53, - 0xD7, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x53, - 0x04, - 0xD3, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0x55, - 0x5A, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD9, - 0xD2, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x58, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD9, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xDE, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDA, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0xD7, - 0xD9, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD9, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD0, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDA, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDC, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0xF3, - 0xD9, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x57, - 0x54, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xF1, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDB, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0xDE, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD5, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xEF, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x12, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0xD4, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD7, - 0x04, - 0x56, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDA, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x59, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xE1, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x57, - 0x53, - 0x00, - 0x5A, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x54, - 0xF2, - 0xDD, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x54, - 0x53, - 0xDC, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0xDA, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0xDE, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x54, - 0xF2, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD0, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x41, - 0x74, - 0xEC, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x60, - 0x04, - 0xD6, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD6, - 0xF6, - 0xF6, - 0xD6, - 0x04, - 0xDF, - 0x00, - 0xD2, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0xD6, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x56, - 0x58, - 0x00, - 0x57, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xEE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x56, - 0xD2, - 0xD8, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xDF, - 0xDE, - 0xDB, - 0xD9, - 0xF2, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDC, - 0xD9, - 0xD2, - 0x17, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDF, - 0xDB, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x04, - 0xDB, - 0x0D, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xEE, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0xDF, - 0xDE, - 0x00, - 0x00, - 0xB8, - 0xD8, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x57, - 0x00, - 0x57, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDD, - 0xF3, - 0x54, - 0x53, - 0xD3, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x0D, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0xD9, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x60, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xD7, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xFA, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0xFA, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x0A, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xD2, - 0xD8, - 0xB8, - 0x55, - 0xD9, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xB6, - 0xC6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0x04, - 0x60, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5A, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xDA, - 0xDE, - 0xD6, - 0xD6, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDF, - 0x04, - 0xD8, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDA, - 0xD8, - 0xDE, - 0xD6, - 0xE1, - 0xD7, - 0x04, - 0xD5, - 0x56, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0xD9, - 0x59, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x17, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x12, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xD6, - 0xD6, - 0xDC, - 0x04, - 0x60, - 0xB8, - 0xDB, - 0xD9, - 0xD0, - 0xD6, - 0xF2, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD0, - 0xF4, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xFA, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xE1, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0x60, - 0xDE, - 0x04, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xD6, - 0x56, - 0x00, - 0xF7, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xD5, - 0x55, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xB8, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF5, - 0x00, - 0x57, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xF9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x17, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDB, - 0xD7, - 0xF3, - 0x00, - 0xB8, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDD, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0x56, - 0x94, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x53, - 0xF6, - 0x55, - 0x55, - 0xDE, - 0xDE, - 0x55, - 0x55, - 0x55, - 0x17, - 0x04, - 0xB8, - 0x55, - 0x00, - 0xD0, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x53, - 0xF1, - 0xDC, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF1, - 0xD5, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0xDC, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0xDD, - 0x55, - 0xDC, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD5, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x00, - 0x00, - 0xF4, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xF1, - 0xD7, - 0xF4, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xF2, - 0xDA, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD9, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0x16, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0x00, - 0x55, - 0xD9, - 0x60, - 0x00, - 0x00, - 0x58, - 0xD9, - 0xD8, - 0xD0, - 0xD6, - 0xDD, - 0xDE, - 0xD7, - 0xE1, - 0x53, - 0xDE, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x5B, - 0x00, - 0x58, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xD5, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x56, - 0xD6, - 0x58, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD2, - 0xDA, - 0xF7, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD3, - 0x53, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0x04, - 0xFA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF4, - 0xF1, - 0xDB, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDC, - 0xF3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xD8, - 0x00, - 0xF7, - 0xDA, - 0xDC, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDC, - 0xD9, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xDA, - 0x56, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDC, - 0xF1, - 0x53, - 0x00, - 0xD7, - 0xDD, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF4, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD3, - 0xD9, - 0xD9, - 0xF2, - 0x17, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0xD0, - 0xDD, - 0xD8, - 0xDC, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD0, - 0xD5, - 0xD8, - 0xDC, - 0xD6, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xF5, - 0xDF, - 0xD3, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x55, - 0xD0, - 0xDB, - 0xD9, - 0xDE, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xD5, - 0xD0, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD0, - 0xDC, - 0xD8, - 0xD5, - 0xD0, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x54, - 0xB8, - 0xE1, - 0xDD, - 0xDA, - 0xD5, - 0xD0, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD0, - 0xDD, - 0xD8, - 0xD5, - 0xD0, - 0x56, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0xB8, - 0xD7, - 0x04, - 0x17, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xF7, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0xFA, - 0x00, - 0xE1, - 0xD8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xD7, - 0x00, - 0x00, - 0x60, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x0D, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD5, - 0xF3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x8C, - 0x3B, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xEF, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0x58, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD7, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xD9, - 0x00, - 0xF3, - 0xDC, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDD, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xDE, - 0x53, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x5E, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD0, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDA, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD0, - 0x09, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD4, - 0x55, - 0x00, - 0x00, - 0xDB, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0xDB, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xF2, - 0x00, - 0x00, - 0x5B, - 0xDA, - 0x5E, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xD5, - 0xD9, - 0xD0, - 0x55, - 0x00, - 0xF3, - 0x04, - 0xD5, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDD, - 0xD2, - 0x00, - 0xDE, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0xB8, - 0xD5, - 0xDB, - 0x55, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xE1, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x59, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x09, - 0x16, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x57, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x56, - 0xD8, - 0xD7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xDA, - 0x57, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0xF1, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xF2, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xF2, - 0x04, - 0x16, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xDC, - 0xDC, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x59, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x54, - 0xDE, - 0xDB, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0xDB, - 0x53, - 0x00, - 0x00, - 0xC6, - 0xB8, - 0xD8, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD7, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xD2, - 0xB3, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xC3, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x59, - 0x57, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x3B, - 0xC8, - 0xE3, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x17, - 0x00, - 0x00, - 0x17, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDB, - 0xDE, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x54, - 0x00, - 0xB8, - 0xD4, - 0xDE, - 0x00, - 0x00, - 0x16, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xD9, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0xD9, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0xD5, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x59, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xDD, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5C, - 0xD4, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x56, - 0x04, - 0xD7, - 0x55, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD2, - 0x04, - 0x57, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDC, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x16, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0x59, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0xDB, - 0x57, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xDF, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD7, - 0xD8, - 0x5A, - 0x54, - 0x00, - 0x54, - 0xF5, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0xDE, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x59, - 0xD7, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x60, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xD6, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0xDD, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0x60, - 0xD9, - 0xD9, - 0x56, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x54, - 0x00, - 0xB3, - 0x58, - 0xD2, - 0x04, - 0xD0, - 0xB3, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x53, - 0xD0, - 0x04, - 0xDB, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x5A, - 0xDC, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5B, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDB, - 0x5E, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x17, - 0xD9, - 0xD8, - 0x59, - 0x54, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD0, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x53, - 0xD6, - 0x04, - 0xDC, - 0x5A, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5C, - 0xDD, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xD8, - 0xDC, - 0xF5, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x0D, - 0x53, - 0x00, - 0x54, - 0xF5, - 0xDE, - 0x04, - 0x57, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD3, - 0xD5, - 0xF3, - 0x00, - 0xF5, - 0xD4, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFA, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x56, - 0x00, - 0x00, - 0xB3, - 0xD2, - 0xD8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD9, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x5B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x00, - 0xF6, - 0xDB, - 0xDB, - 0x56, - 0x00, - 0x00, - 0x00, - 0xF5, - 0xDB, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x17, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0xD8, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xFA, - 0x5D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD2, - 0xD8, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD5, - 0xD0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD9, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x55, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xC0, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x59, - 0x54, - 0x00, - 0x00, - 0xD3, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xF1, - 0xD3, - 0x56, - 0xF3, - 0x55, - 0xD0, - 0x04, - 0x5A, - 0x00, - 0xB8, - 0xDB, - 0xD9, - 0xE1, - 0xE1, - 0xD9, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0xF4, - 0xDB, - 0x0D, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xD9, - 0xDB, - 0xE1, - 0xE1, - 0xD9, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD9, - 0xDC, - 0x56, - 0x00, - 0x57, - 0xDB, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x0A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x59, - 0xD8, - 0x04, - 0xDE, - 0xD6, - 0xD6, - 0xD7, - 0x04, - 0xD5, - 0xB8, - 0x54, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x5E, - 0xD4, - 0xD9, - 0xD0, - 0xD6, - 0xD0, - 0xD9, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDC, - 0xD4, - 0xD0, - 0xD6, - 0xDE, - 0x04, - 0xD7, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD5, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xD9, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x55, - 0xF1, - 0x04, - 0xDE, - 0xD6, - 0xDE, - 0x04, - 0xDC, - 0x55, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD5, - 0x04, - 0xDE, - 0xD6, - 0xE1, - 0xDC, - 0x04, - 0xDE, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0xDB, - 0x04, - 0xD2, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xDC, - 0x04, - 0xDD, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xDE, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD9, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xD0, - 0xDD, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5D, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD2, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0xD6, - 0xE1, - 0xDE, - 0xDB, - 0x04, - 0xD9, - 0x17, - 0x53, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x57, - 0x54, - 0x00, - 0x00, - 0xB3, - 0xEF, - 0x04, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0x04, - 0xD7, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x0D, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB8, - 0xD2, - 0x04, - 0xD9, - 0xDE, - 0xD6, - 0xD6, - 0xDE, - 0xD9, - 0x04, - 0xD7, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xD2, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0xDB, - 0x04, - 0xDB, - 0xD0, - 0xD6, - 0xD6, - 0xD0, - 0xDB, - 0xDA, - 0xDB, - 0x5C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x12, - 0xD6, - 0xDE, - 0xDB, - 0x04, - 0xDC, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xF4, - 0xDE, - 0x04, - 0xD7, - 0xD6, - 0xE1, - 0xD5, - 0x04, - 0xD6, - 0x00, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x04, - 0xDC, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x04, - 0x5A, - 0x54, - 0x59, - 0x04, - 0xF9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x56, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDF, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0xF1, - 0xF3, - 0x00, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0x0A, - 0xD6, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD9, - 0xDA, - 0x5A, - 0x00, - 0x00, - 0x16, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD2, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xC1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0xD7, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0xD4, - 0xD8, - 0xD0, - 0xD6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0xD0, - 0x57, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0A, - 0xD7, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x3B, - 0xD8, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDB, - 0xDF, - 0x00, - 0x00, - 0x00, - 0xD0, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x17, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0xDB, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDF, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xD0, - 0xD9, - 0xDB, - 0xD0, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD0, - 0x17, - 0x00, - 0x17, - 0xD0, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD9, - 0xF4, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD6, - 0xD7, - 0xD9, - 0xD9, - 0xD2, - 0xDF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xDC, - 0xD8, - 0xDC, - 0xD0, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD6, - 0xD5, - 0xD8, - 0xF1, - 0xEF, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD5, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0x12, - 0xDC, - 0xD8, - 0xDC, - 0xD6, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDF, - 0xD7, - 0xD9, - 0xDB, - 0xDE, - 0x5D, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xE1, - 0xDD, - 0x04, - 0xDB, - 0xDE, - 0x59, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x5B, - 0xD0, - 0xF1, - 0xD8, - 0xD9, - 0xD7, - 0xD6, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xDE, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF5, - 0x16, - 0xD0, - 0xDD, - 0xD8, - 0xD9, - 0xD7, - 0xE1, - 0x58, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xDB, - 0xD7, - 0xD0, - 0x5E, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x0A, - 0xD7, - 0xD9, - 0x04, - 0xD9, - 0xD7, - 0xD6, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDE, - 0x04, - 0x5A, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0x58, - 0xE1, - 0xD3, - 0xD8, - 0xD8, - 0xF1, - 0xE1, - 0x59, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xDC, - 0xD0, - 0xFA, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x60, - 0xDE, - 0xDD, - 0xDA, - 0xD8, - 0xDC, - 0xD0, - 0xFA, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD9, - 0xD3, - 0xD0, - 0xFA, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x60, - 0xD2, - 0xD9, - 0xDB, - 0xDE, - 0x5A, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x0D, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xD9, - 0xDE, - 0x00, - 0xD6, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0xD8, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD5, - 0xD2, - 0x00, - 0xF7, - 0xD8, - 0xD2, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0xDA, - 0x56, - 0x00, - 0xE1, - 0x04, - 0x56, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x5E, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xDE, - 0x17, - 0x00, - 0x00, - 0xD7, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDB, - 0xEF, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0xD7, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0xE1, - 0xF1, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF2, - 0xD8, - 0x17, - 0x00, - 0x04, - 0xDE, - 0x00, - 0xD8, - 0xDC, - 0xD6, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0x04, - 0xF2, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD6, - 0xD2, - 0x53, - 0xD0, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDE, - 0x16, - 0xB3, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x5E, - 0x3B, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xDE, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x55, - 0x00, - 0xF6, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0x00, - 0x00, - 0x49, - 0x04, - 0x00, - 0x00, - 0x1B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x06, - 0x74, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x60, - 0x58, - 0x58, - 0x60, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x53, - 0xB8, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x60, - 0x04, - 0x60, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x56, - 0xD7, - 0xD9, - 0xDB, - 0xDF, - 0xF3, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0x17, - 0x04, - 0x17, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x53, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB3, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF3, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x53, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF5, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x53, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x54, - 0x54, - 0x55, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x54, - 0x00, - 0xF3, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB8, - 0xF3, - 0x00, - 0x00, - 0xF3, - 0xB8, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xF7, - 0x53, - 0x54, - 0xB3, - 0x56, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x57, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF7, - 0x53, - 0x54, - 0x53, - 0xB8, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDA, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x17, - 0x55, - 0x53, - 0x54, - 0x53, - 0xF3, - 0xB8, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF7, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x54, - 0xF4, - 0xB8, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xFA, - 0xF6, - 0x53, - 0x54, - 0x00, - 0x53, - 0xF7, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x00, - 0x53, - 0x55, - 0x5C, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xF7, - 0xF3, - 0x00, - 0x54, - 0x53, - 0xF6, - 0x5A, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xDB, - 0xF7, - 0x53, - 0x00, - 0x46, - 0xB8, - 0xD8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x17, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x55, - 0x53, - 0x54, - 0x53, - 0xB3, - 0xF7, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF7, - 0xB3, - 0x00, - 0x54, - 0xB3, - 0xF7, - 0xD6, - 0x04, - 0xDA, - 0x57, - 0xF3, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xB8, - 0xF3, - 0x54, - 0x54, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xB8, - 0xF3, - 0x54, - 0x53, - 0xF5, - 0x5C, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x04, - 0x57, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x57, - 0x04, - 0x04, - 0xDA, - 0xF4, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0xB3, - 0x54, - 0x54, - 0xF3, - 0x57, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD7, - 0xF7, - 0x53, - 0x54, - 0x53, - 0x55, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF7, - 0xB3, - 0x54, - 0x00, - 0xF4, - 0x59, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xB8, - 0xF3, - 0x54, - 0x54, - 0xF3, - 0x57, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x55, - 0x53, - 0x54, - 0x53, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0C, - 0x55, - 0x53, - 0x54, - 0x53, - 0xF7, - 0xDC, - 0x04, - 0xB3, - 0xF3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0C, - 0x55, - 0x53, - 0x54, - 0x54, - 0xF6, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD2, - 0x55, - 0x54, - 0x54, - 0x53, - 0x55, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0C, - 0x55, - 0x54, - 0x54, - 0x53, - 0x55, - 0xD2, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0xF5, - 0x54, - 0x54, - 0x53, - 0xB8, - 0xD4, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x51, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x55, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF4, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xD9, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x00, - 0x55, - 0xF7, - 0x00, - 0x54, - 0xD5, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x54, - 0xF7, - 0xF7, - 0xB3, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0xF5, - 0xF7, - 0xF7, - 0xF4, - 0x00, - 0x54, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x53, - 0x00, - 0x54, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xF5, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0xF5, - 0x00, - 0xF3, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x53, - 0x00, - 0xF3, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0xF5, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xF6, - 0x00, - 0x54, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x59, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x5A, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x53, - 0x00, - 0x53, - 0x55, - 0xB8, - 0xB8, - 0xF6, - 0x54, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDC, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0xF4, - 0x00, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0xC6, - 0x09, - 0x54, - 0xF6, - 0xB8, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0xF6, - 0x53, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xD0, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0xF7, - 0xB8, - 0x55, - 0x54, - 0x00, - 0x54, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD9, - 0x54, - 0x00, - 0xF6, - 0xB8, - 0xF5, - 0x00, - 0xF3, - 0xD4, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0x00, - 0xF6, - 0xB8, - 0xB8, - 0xF6, - 0x09, - 0x09, - 0xF3, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF4, - 0x00, - 0x00, - 0xF5, - 0xF7, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0xF5, - 0x5B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x54, - 0x00, - 0xF4, - 0xB8, - 0xF7, - 0x53, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x00, - 0xF4, - 0xB8, - 0xF7, - 0xB3, - 0x54, - 0xF3, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x54, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0xF3, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0xF5, - 0xB8, - 0xF7, - 0xF4, - 0x00, - 0xB3, - 0xD5, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x5D, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0xF6, - 0xB8, - 0xF7, - 0xB3, - 0x00, - 0x53, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0x00, - 0xF5, - 0xB8, - 0xF7, - 0xF4, - 0x00, - 0xB3, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0xF7, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x00, - 0x00, - 0xE1, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xD4, - 0xF7, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x5A, - 0x00, - 0x54, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x54, - 0x55, - 0xB8, - 0x55, - 0x00, - 0x00, - 0x5B, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x54, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0x55, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0xF7, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFE, - 0xFF, - 0xF9, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x53, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF5, - 0xDC, - 0x04, - 0xD7, - 0xF3, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x53, - 0x56, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDE, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0xDA, - 0xE1, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xB8, - 0x04, - 0xEF, - 0x00, - 0x53, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDB, - 0xB3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x54, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xB8, - 0x54, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x54, - 0xB8, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC6, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF6, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xF3, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xC6, - 0x54, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x58, - 0x00, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF6, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0x54, - 0x5A, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x53, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF7, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x59, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF4, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x00, - 0x54, - 0x5C, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x16, - 0xC6, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x56, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x54, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x00, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xF5, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x53, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x55, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xF5, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x53, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB8, - 0x53, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xB8, - 0x54, - 0xF6, - 0xDA, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDD, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF4, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xC8, - 0xFF, - 0xFE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xD8, - 0x04, - 0x04, - 0xD4, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x53, - 0xD4, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0xF6, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xB8, - 0x54, - 0xF3, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0xEF, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x00, - 0x00, - 0x54, - 0x53, - 0x04, - 0xD6, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD7, - 0x04, - 0x57, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x53, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x55, - 0x00, - 0x00, - 0xF4, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xFA, - 0x04, - 0xDA, - 0xD5, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0xD5, - 0x00, - 0x00, - 0xB8, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0xD6, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x57, - 0x04, - 0x04, - 0x16, - 0x09, - 0xF3, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x54, - 0x53, - 0xD9, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF4, - 0x00, - 0x59, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF5, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xDE, - 0x00, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x00, - 0x00, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xE1, - 0x04, - 0xD2, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF5, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x00, - 0xF6, - 0xDA, - 0xD2, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x17, - 0x04, - 0xD4, - 0xF3, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xD0, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDF, - 0x04, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xE1, - 0x04, - 0xD0, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF5, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xF4, - 0xD7, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xFA, - 0x04, - 0x0A, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE3, - 0x3B, - 0x6E, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x59, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0xF4, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF5, - 0x00, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x09, - 0x00, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x53, - 0x54, - 0xB8, - 0xB8, - 0x04, - 0xF7, - 0x53, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x56, - 0x04, - 0xF3, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0xF5, - 0x00, - 0x00, - 0xF6, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xFA, - 0x04, - 0x59, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xDC, - 0x53, - 0x00, - 0x00, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x53, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0xDA, - 0x54, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0xF7, - 0xDF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD5, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD0, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF4, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xDA, - 0xD0, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF3, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0xDA, - 0x53, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x53, - 0xD4, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x56, - 0x00, - 0xB3, - 0xDD, - 0xDE, - 0x54, - 0xB3, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x53, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDB, - 0x04, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x57, - 0xDD, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD7, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDF, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x55, - 0x04, - 0xF7, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF6, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x5C, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0xD3, - 0x55, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xDF, - 0x04, - 0xF7, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDA, - 0x0A, - 0x00, - 0xDE, - 0x04, - 0xD9, - 0x00, - 0x58, - 0x04, - 0xF3, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD3, - 0x53, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x54, - 0x5A, - 0xDE, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF3, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xF7, - 0x00, - 0xF6, - 0xB8, - 0xB8, - 0xB8, - 0x53, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0xEF, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x53, - 0x04, - 0x55, - 0x00, - 0xD7, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x55, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0xF6, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x16, - 0x54, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x59, - 0x56, - 0x5C, - 0x00, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x5A, - 0xB3, - 0x00, - 0x00, - 0xF7, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0xF3, - 0xFA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0xF6, - 0x04, - 0xD0, - 0x00, - 0xB3, - 0x5A, - 0x58, - 0xB3, - 0x00, - 0x00, - 0xD7, - 0xD9, - 0xB8, - 0xC6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x59, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x56, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x56, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0xB8, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x16, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF9, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0xD2, - 0xDA, - 0x04, - 0xDA, - 0xD7, - 0x57, - 0x53, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x16, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD4, - 0xF4, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xD2, - 0x04, - 0x53, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0xDA, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF3, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF6, - 0x54, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x54, - 0xDA, - 0x04, - 0xD7, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF7, - 0x04, - 0xDA, - 0x00, - 0xB8, - 0x04, - 0x5C, - 0x00, - 0xDD, - 0x04, - 0x5A, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD8, - 0x04, - 0xF4, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xD9, - 0x04, - 0x04, - 0xB8, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0xF5, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x3B, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x54, - 0x53, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x54, - 0xDB, - 0x04, - 0xF6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x53, - 0x53, - 0x53, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xC6, - 0xF7, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0xDA, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xD4, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0xE1, - 0x04, - 0xF7, - 0x00, - 0xDD, - 0x04, - 0x04, - 0xDA, - 0xF4, - 0x00, - 0x0A, - 0x04, - 0x04, - 0xFA, - 0xF3, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0x53, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x57, - 0x04, - 0xF5, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF4, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0x00, - 0xF3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x17, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x5D, - 0x54, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0x57, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF6, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF4, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x57, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xD6, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF4, - 0x04, - 0x04, - 0xF5, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x00, - 0x00, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x57, - 0x53, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x54, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xD2, - 0x00, - 0x00, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x16, - 0xF5, - 0x54, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x55, - 0x53, - 0x04, - 0xF5, - 0xF3, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x16, - 0x09, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x00, - 0x16, - 0x04, - 0xDF, - 0x00, - 0x16, - 0xDA, - 0xD0, - 0xF5, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xD9, - 0x04, - 0x04, - 0xFC, - 0x3B, - 0xE3, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x04, - 0xDB, - 0x55, - 0x54, - 0x54, - 0x55, - 0xD5, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x53, - 0xDC, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x55, - 0x04, - 0x58, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x53, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x16, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x56, - 0x04, - 0xF6, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDF, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x55, - 0xD7, - 0x04, - 0xDA, - 0xD6, - 0xB3, - 0xC6, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0x09, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x54, - 0xDA, - 0x04, - 0x55, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x55, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x55, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x55, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB3, - 0x00, - 0xD9, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x53, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x54, - 0xF4, - 0x59, - 0xDA, - 0x04, - 0x04, - 0x53, - 0xB3, - 0xD9, - 0xDF, - 0x57, - 0xB8, - 0x57, - 0x17, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xD5, - 0x55, - 0xF6, - 0xF3, - 0x00, - 0x00, - 0xF5, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x57, - 0x00, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x03, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x57, - 0x04, - 0x04, - 0x57, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x53, - 0x00, - 0x00, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xD8, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0xDA, - 0x54, - 0x00, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x59, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF3, - 0x00, - 0xB3, - 0x59, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xD0, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0x54, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDE, - 0x04, - 0x04, - 0xDA, - 0x53, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x00, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0x5D, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xF2, - 0xDA, - 0xDF, - 0x09, - 0xF7, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x45, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xDA, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xB8, - 0x54, - 0x00, - 0xB3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x00, - 0xB8, - 0x55, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xB3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD7, - 0x04, - 0xDF, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF4, - 0x00, - 0x58, - 0xD9, - 0x04, - 0xD5, - 0xF7, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB3, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x16, - 0xF3, - 0x00, - 0x00, - 0x55, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0x00, - 0x00, - 0xF4, - 0x16, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x54, - 0xF2, - 0x04, - 0x04, - 0x00, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xD9, - 0x04, - 0x04, - 0xD2, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0xF4, - 0x00, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x54, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x53, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xD2, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF4, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x59, - 0x53, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x5A, - 0xF5, - 0x00, - 0x00, - 0xF5, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x5B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x17, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xD2, - 0x04, - 0x04, - 0xD7, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xE1, - 0xF7, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0xDA, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xDA, - 0x04, - 0x04, - 0x55, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x00, - 0xF6, - 0xDA, - 0xF6, - 0x00, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x04, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xDC, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0xDA, - 0xF6, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x55, - 0x04, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x55, - 0xDA, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0xEF, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0xF3, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEF, - 0x56, - 0x17, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0xD7, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF5, - 0x00, - 0x00, - 0x00, - 0xF7, - 0xD8, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD0, - 0x57, - 0x57, - 0xD0, - 0x04, - 0xDA, - 0xF6, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0B, - 0xF7, - 0xF4, - 0x00, - 0xB3, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0xDA, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x59, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF6, - 0x00, - 0x00, - 0xF6, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xF6, - 0x00, - 0x00, - 0xF5, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x00, - 0xDB, - 0x04, - 0x00, - 0xD8, - 0x04, - 0xD0, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x58, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xD0, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x53, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xFA, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xB3, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x57, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x60, - 0x04, - 0x04, - 0xDA, - 0x57, - 0x00, - 0x00, - 0xF3, - 0x57, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xF5, - 0xB3, - 0x04, - 0x04, - 0xF6, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF4, - 0x04, - 0xD9, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x54, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xD0, - 0x04, - 0xDE, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0xF5, - 0x04, - 0x04, - 0xDE, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x00, - 0xF6, - 0x04, - 0xE1, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF7, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD8, - 0x53, - 0xC6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDA, - 0x04, - 0x00, - 0x00, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF6, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xE1, - 0x04, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xD0, - 0x04, - 0xD0, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0x17, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x17, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x54, - 0x57, - 0x04, - 0x5D, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3C, - 0x3B, - 0x3B, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xD0, - 0x16, - 0x00, - 0x56, - 0xD0, - 0xD0, - 0xD0, - 0x00, - 0xF4, - 0xD0, - 0xD0, - 0x04, - 0xDA, - 0x53, - 0x54, - 0xF3, - 0xFA, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0x00, - 0x00, - 0x54, - 0x55, - 0xDA, - 0xD0, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x54, - 0xF6, - 0x54, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x00, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xB3, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x54, - 0x00, - 0xF4, - 0xB8, - 0xF7, - 0xB3, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0xF5, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF7, - 0x00, - 0x00, - 0xF3, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0xF4, - 0x00, - 0x00, - 0xF7, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0xF7, - 0x04, - 0xF4, - 0xD6, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xB3, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xEF, - 0x53, - 0x54, - 0xD9, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xD0, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xF5, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF3, - 0x04, - 0xF4, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF5, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xF6, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDB, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD0, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xD4, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xF5, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0xB3, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0xC6, - 0x55, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x54, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x55, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xB8, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xB8, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF3, - 0x00, - 0xD2, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x55, - 0xD4, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x00, - 0x53, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0x00, - 0xF3, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF3, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x55, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0x00, - 0xC6, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xF7, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x54, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0xF5, - 0xD4, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xD0, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0xF5, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5E, - 0x09, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0xD8, - 0x3E, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0x54, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x5A, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0xB8, - 0xD8, - 0xDA, - 0xB8, - 0x54, - 0x56, - 0x04, - 0xF4, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0xB8, - 0x04, - 0xD8, - 0xF6, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0xB6, - 0xD0, - 0x04, - 0xDE, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xF6, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xD2, - 0xF4, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDE, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5A, - 0x54, - 0x57, - 0xF6, - 0x54, - 0x00, - 0xF4, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0x00, - 0x53, - 0x00, - 0xF3, - 0x59, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x55, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x56, - 0x54, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x00, - 0x54, - 0x56, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x57, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0x57, - 0xF5, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xB3, - 0xD5, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x00, - 0xDE, - 0x04, - 0xDE, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x53, - 0x04, - 0x04, - 0x04, - 0xB3, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x56, - 0x04, - 0x04, - 0x58, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x56, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xF6, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x5A, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0xD4, - 0xF3, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xFA, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0x16, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0x04, - 0xB8, - 0x54, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x57, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xF3, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x58, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x00, - 0x00, - 0x00, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xDC, - 0xD9, - 0x00, - 0xF3, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x59, - 0x04, - 0x04, - 0x5D, - 0x54, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0xF5, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0xB3, - 0xD5, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0x0B, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF7, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x00, - 0xF6, - 0xB8, - 0xF7, - 0xF3, - 0x00, - 0x53, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x54, - 0xF6, - 0xB8, - 0xF7, - 0xF3, - 0x00, - 0x53, - 0xD2, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0x54, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0x54, - 0x55, - 0xB8, - 0x55, - 0x00, - 0x00, - 0x0A, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0xB8, - 0x55, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF7, - 0xF7, - 0x53, - 0x00, - 0x5A, - 0xDC, - 0x54, - 0x00, - 0x55, - 0xB8, - 0xF5, - 0x53, - 0xF3, - 0xD9, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF6, - 0xB8, - 0xF6, - 0x00, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x0B, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF7, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x54, - 0x00, - 0x59, - 0xF6, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF7, - 0xD7, - 0x04, - 0xDB, - 0x54, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x54, - 0xD9, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0x53, - 0xB8, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xDC, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDA, - 0x04, - 0xD0, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x16, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0x59, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0xDD, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0xF3, - 0xDA, - 0x04, - 0xDC, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x57, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0x00, - 0x53, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0xF9, - 0x94, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xF6, - 0x00, - 0x04, - 0xD9, - 0xD9, - 0xD9, - 0xF5, - 0xF5, - 0xD9, - 0xD9, - 0xD9, - 0x58, - 0x00, - 0xD7, - 0xD9, - 0xDA, - 0x55, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x53, - 0x04, - 0xDF, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x54, - 0xDA, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x57, - 0x53, - 0xD9, - 0x53, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x53, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0x04, - 0xD4, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xB3, - 0xF3, - 0xD4, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x00, - 0x04, - 0x04, - 0xF3, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x5B, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0x5B, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0xD9, - 0x00, - 0x5A, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x53, - 0xF5, - 0xF3, - 0xF7, - 0x04, - 0xF5, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x17, - 0x04, - 0xE1, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x55, - 0x04, - 0x04, - 0xD8, - 0x09, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0xB8, - 0xD0, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0xD5, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF7, - 0x56, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x54, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xD5, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0xB3, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xB8, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xDA, - 0xB3, - 0xC6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0xD5, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0xD9, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x00, - 0x00, - 0xC6, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0x57, - 0x04, - 0x04, - 0xFA, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x54, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xB3, - 0x04, - 0x04, - 0xF3, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF7, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0x59, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD3, - 0xF7, - 0x53, - 0x00, - 0x54, - 0x55, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF7, - 0xB3, - 0x00, - 0x00, - 0xF4, - 0x59, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xB8, - 0xF3, - 0x00, - 0x00, - 0xF4, - 0x57, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x55, - 0x53, - 0x00, - 0x53, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF6, - 0x53, - 0x00, - 0x53, - 0xF7, - 0xD5, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x56, - 0xB3, - 0x00, - 0x54, - 0x55, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xD9, - 0x55, - 0x54, - 0x00, - 0xF5, - 0xD6, - 0x04, - 0x04, - 0xDB, - 0x55, - 0x54, - 0x00, - 0xB3, - 0xB8, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x59, - 0xF3, - 0x00, - 0x54, - 0xF6, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x55, - 0x53, - 0x00, - 0x54, - 0xF6, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD3, - 0xF7, - 0x53, - 0x00, - 0x54, - 0xF6, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x55, - 0x53, - 0x00, - 0x53, - 0x55, - 0xD2, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xD7, - 0xF3, - 0x54, - 0x57, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x54, - 0xF6, - 0xDD, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0xB8, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x16, - 0x04, - 0xF7, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0xF3, - 0x04, - 0x04, - 0x59, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x60, - 0x00, - 0x56, - 0x04, - 0xB8, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x54, - 0xDA, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x9E, - 0xFF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0xD0, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0xF3, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDA, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x5C, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x55, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF5, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x54, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0x04, - 0x04, - 0x57, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF2, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x17, - 0x00, - 0x5C, - 0x04, - 0x04, - 0xD5, - 0xF7, - 0x54, - 0x00, - 0xF6, - 0xD9, - 0x04, - 0x04, - 0x00, - 0x53, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF4, - 0x04, - 0xF6, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x16, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x54, - 0x54, - 0xD9, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF3, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF3, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xDE, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD2, - 0x00, - 0xF3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x53, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x57, - 0x00, - 0xF5, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF4, - 0x53, - 0x5D, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xFA, - 0x04, - 0x04, - 0x53, - 0x53, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD6, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x54, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x53, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0xEF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xE1, - 0xDE, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFF, - 0x54, - 0x41, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0xDB, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x57, - 0x04, - 0x04, - 0x59, - 0x00, - 0xDE, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x54, - 0xF5, - 0x04, - 0xF6, - 0x00, - 0xD7, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x5B, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD5, - 0x04, - 0x04, - 0xDD, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0xF4, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x53, - 0x54, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x53, - 0x54, - 0x00, - 0x00, - 0x00, - 0x53, - 0x54, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x54, - 0xD6, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x53, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0xD2, - 0x00, - 0xF3, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF4, - 0x00, - 0xDE, - 0x04, - 0x04, - 0xB8, - 0x54, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x58, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x55, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x55, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x54, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0xF6, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF3, - 0x54, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0x5A, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x56, - 0x00, - 0x53, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x5A, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0xF4, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x00, - 0x54, - 0x16, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x53, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x00, - 0x54, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x00, - 0x54, - 0x5B, - 0xD4, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x58, - 0x00, - 0x00, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x55, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x53, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x53, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xFA, - 0x00, - 0x53, - 0xDA, - 0x04, - 0x04, - 0x56, - 0x00, - 0x56, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF6, - 0x54, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x53, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0x00, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xD2, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x00, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5B, - 0x54, - 0x5B, - 0x04, - 0x04, - 0xD8, - 0x54, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x54, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0xC6, - 0xF3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x16, - 0x60, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x54, - 0x55, - 0xDA, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x59, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0xD6, - 0x04, - 0x04, - 0x04, - 0xB3, - 0x55, - 0x04, - 0x04, - 0xDA, - 0x53, - 0xB3, - 0xD2, - 0x04, - 0xD9, - 0x55, - 0x00, - 0xEF, - 0x04, - 0xDC, - 0x54, - 0x00, - 0xF7, - 0xF7, - 0x00, - 0x54, - 0xDC, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x56, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD2, - 0x00, - 0x54, - 0xF7, - 0xF7, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x53, - 0xD7, - 0x04, - 0xDE, - 0x54, - 0x54, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0x54, - 0x00, - 0x00, - 0xB8, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x0A, - 0x00, - 0x54, - 0xF5, - 0xF7, - 0xF7, - 0xF3, - 0x00, - 0x53, - 0xD3, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0xF6, - 0xDA, - 0x04, - 0x5C, - 0x00, - 0x00, - 0x55, - 0xB8, - 0x55, - 0x00, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x00, - 0xF6, - 0xB8, - 0xF5, - 0x53, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x54, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x55, - 0x54, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0x00, - 0x04, - 0x04, - 0xD9, - 0x53, - 0x54, - 0xF6, - 0xB8, - 0xF6, - 0x54, - 0x53, - 0xD9, - 0x04, - 0x04, - 0x04, - 0xD3, - 0x53, - 0x00, - 0xF5, - 0xB8, - 0xF7, - 0x53, - 0x00, - 0xF6, - 0xD4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x54, - 0x00, - 0xF4, - 0xB8, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0x53, - 0x00, - 0x53, - 0x55, - 0xB8, - 0xF7, - 0xF6, - 0x54, - 0x00, - 0xF5, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0x00, - 0x00, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0x55, - 0x53, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x17, - 0x54, - 0x00, - 0x54, - 0x55, - 0xB8, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0xF4, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0xF5, - 0x54, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xD0, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x54, - 0x00, - 0xF6, - 0xB8, - 0xB8, - 0x55, - 0x54, - 0x00, - 0xF3, - 0xDE, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0x56, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x54, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF4, - 0x00, - 0x00, - 0xF6, - 0xF7, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0xF3, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0xF4, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5C, - 0x54, - 0x00, - 0x54, - 0xF6, - 0xB8, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0x54, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xF7, - 0xF6, - 0x00, - 0x00, - 0x53, - 0xDC, - 0x04, - 0x04, - 0x04, - 0xDA, - 0xF5, - 0x53, - 0xF3, - 0xF7, - 0xF7, - 0x54, - 0x00, - 0xB8, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0x53, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xDB, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x59, - 0x54, - 0xDF, - 0x04, - 0xD6, - 0x00, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD7, - 0x00, - 0x57, - 0x04, - 0x04, - 0x58, - 0x00, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x54, - 0x56, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x53, - 0xB3, - 0x04, - 0x04, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0xB8, - 0x54, - 0x54, - 0x04, - 0x04, - 0x04, - 0xDE, - 0x00, - 0x00, - 0xDF, - 0x04, - 0x04, - 0x5D, - 0x54, - 0xDC, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF4, - 0x54, - 0xB3, - 0xDB, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0x00, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF3, - 0x54, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD0, - 0x00, - 0x00, - 0xF6, - 0xB8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x55, - 0xDE, - 0x04, - 0x00, - 0xF6, - 0xDA, - 0xB8, - 0xF3, - 0x00, - 0x5A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x81, - 0xFF, - 0x45, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0xF6, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0x56, - 0x04, - 0x04, - 0x04, - 0x55, - 0x53, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x58, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x55, - 0x54, - 0x54, - 0xF6, - 0xDD, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x54, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x00, - 0x54, - 0xF6, - 0xD3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF6, - 0x58, - 0x04, - 0x58, - 0x55, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x00, - 0x00, - 0x00, - 0xD5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xB8, - 0xF3, - 0x00, - 0x00, - 0xF3, - 0x57, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0xD7, - 0xF7, - 0x53, - 0x00, - 0x53, - 0x55, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0xF7, - 0x53, - 0x00, - 0xB3, - 0xB8, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDF, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x57, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x54, - 0xF3, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xB8, - 0x53, - 0x00, - 0x53, - 0xB8, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x56, - 0xF3, - 0x00, - 0x54, - 0xF5, - 0x17, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0xF7, - 0x53, - 0x00, - 0x54, - 0xF6, - 0x0A, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x17, - 0x55, - 0xB3, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF7, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF6, - 0x16, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x5D, - 0xF6, - 0x53, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0xF3, - 0x55, - 0x5C, - 0xD8, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x54, - 0x57, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0xB8, - 0xF3, - 0x00, - 0x00, - 0x00, - 0xF3, - 0xF7, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x00, - 0xDF, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0xB3, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0x00, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x00, - 0x55, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xE1, - 0xF7, - 0xB3, - 0x00, - 0x00, - 0xB3, - 0xF7, - 0xD6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x53, - 0xF6, - 0x16, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x5A, - 0xF6, - 0x53, - 0x00, - 0x00, - 0x53, - 0xF6, - 0xFA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB3, - 0x55, - 0xFA, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD4, - 0x59, - 0xF4, - 0x00, - 0x54, - 0xF5, - 0xDF, - 0x04, - 0x04, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x56, - 0x00, - 0xD0, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0x00, - 0xF5, - 0x04, - 0xF7, - 0x00, - 0xD9, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF3, - 0x00, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x54, - 0xF4, - 0x04, - 0xDD, - 0x00, - 0xF4, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF5, - 0x00, - 0xD7, - 0x04, - 0xF7, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x5D, - 0x00, - 0x5C, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDC, - 0xF5, - 0x58, - 0x04, - 0x04, - 0xF3, - 0xF5, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x53, - 0xB8, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDD, - 0x00, - 0x00, - 0xD7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD8, - 0xF5, - 0x54, - 0xF3, - 0xE1, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD3, - 0xF7, - 0xB3, - 0x00, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD5, - 0xF4, - 0x54, - 0x57, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x00, - 0x53, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDB, - 0x00, - 0xF4, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xB8, - 0xF4, - 0x04, - 0x55, - 0xF7, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xF6, - 0x5D, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xEC, - 0xFF, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x00, - 0xF6, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0xD9, - 0x04, - 0xD8, - 0xDA, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x04, - 0x3B, - 0x3B, - 0x3B, - 0x00, - 0x00, -}; diff --git a/Examples/MAX32572/TFT_Demo/resources/bitmap.h b/Examples/MAX32572/TFT_Demo/resources/bitmap.h deleted file mode 100644 index 93b15c2fa0b..00000000000 --- a/Examples/MAX32572/TFT_Demo/resources/bitmap.h +++ /dev/null @@ -1,92 +0,0 @@ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_TFT_DEMO_RESOURCES_BITMAP_H_ -#define EXAMPLES_MAX32572_TFT_DEMO_RESOURCES_BITMAP_H_ - -// bitmaps id -#define check_empty_bg_white_bmp 0 -#define check_empty_bg_darkgrey_bmp 1 -#define check_empty_bg_lightgrey_bmp 2 -#define check_fail_bg_darkgrey_bmp 3 -#define check_fail_bg_lightgrey_bmp 4 -#define check_fail_bg_white_bmp 5 -#define check_success_bg_darkgrey_bmp 6 -#define check_success_bg_lightgrey_bmp 7 -#define check_success_bg_white_bmp 8 -#define footer_darkgrey_bottom_bmp 9 -#define footer_darkgrey_top_bg_darkgrey_bmp 10 -#define footer_lightgrey_bottom_bmp 11 -#define footer_lightgrey_top_bg_lightgrey_bmp 12 -#define footer_lightgrey_top_bg_white_bmp 13 -#define footer_lightgrey_top_full_bg_white_bmp 14 -#define home_bmp 15 -#define info_bg_lightgrey_bmp 16 -#define keyboard_bg_lightgrey_bmp 17 -#define key_0_bg_white_bmp 18 -#define key_00_bg_white_bmp 19 -#define key_1_bg_white_bmp 20 -#define key_2_bg_white_bmp 21 -#define key_3_bg_white_bmp 22 -#define key_4_bg_white_bmp 23 -#define key_5_bg_white_bmp 24 -#define key_6_bg_white_bmp 25 -#define key_7_bg_white_bmp 26 -#define key_8_bg_white_bmp 27 -#define key_9_bg_white_bmp 28 -#define key_cancel_bg_white_bmp 29 -#define key_clear_bg_white_bmp 30 -#define key_empty_bg_white_bmp 31 -#define key_enter_bg_white_bmp 32 -#define key_point_comma_bg_white_bmp 33 -#define left_arrow_bmp 34 -#define logo_white_bg_darkgrey_bmp 35 -#define logo_white_bg_lightgrey_bmp 36 -#define logo_white_bg_white_bmp 37 -#define right_arrow_bmp 38 -#define slideshow_bg_lightgrey_bmp 39 -#define img_1_bmp 40 -#define img_2_bmp 41 -#define img_3_bmp 42 -#define img_4_bmp 43 - -// fonts id -#define urw_gothic_12_grey_bg_white 0 -#define urw_gothic_12_white_bg_grey 1 -#define urw_gothic_13_grey_bg_white 2 -#define urw_gothic_13_white_bg_grey 3 - -#endif // EXAMPLES_MAX32572_TFT_DEMO_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg-white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg-white.bmp deleted file mode 100644 index dd56c1c02e8..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg_darkgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg_darkgrey.bmp deleted file mode 100644 index 199fc1aa671..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg_darkgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg_lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg_lightgrey.bmp deleted file mode 100644 index 4c27493346b..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_empty-bg_lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-darkgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-darkgrey.bmp deleted file mode 100644 index 2023f4b9c0f..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-darkgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-lightgrey.bmp deleted file mode 100644 index aa81127d52a..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-white.bmp deleted file mode 100644 index 1feec8732ca..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_fail-bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_darkgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_darkgrey.bmp deleted file mode 100644 index b627314c906..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_darkgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_lightgrey.bmp deleted file mode 100644 index bbf4da65d62..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_white.bmp deleted file mode 100644 index b501be1fbbd..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/check_success-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_darkgrey_bottom.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_darkgrey_bottom.bmp deleted file mode 100644 index e0f0830d145..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_darkgrey_bottom.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_darkgrey_top-bg_darkgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_darkgrey_top-bg_darkgrey.bmp deleted file mode 100644 index fdb7a00d4f1..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_darkgrey_top-bg_darkgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_bottom.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_bottom.bmp deleted file mode 100644 index c6c997c5050..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_bottom.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top-bg_lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top-bg_lightgrey.bmp deleted file mode 100644 index b6c94a66a56..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top-bg_lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top-bg_white.bmp deleted file mode 100644 index 0aa0dd21f3a..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top_full-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top_full-bg_white.bmp deleted file mode 100644 index 2a77bc23c3e..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/footer_lightgrey_top_full-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/home.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/home.bmp deleted file mode 100644 index 0855c6f85d3..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/home.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/info-bg_lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/info-bg_lightgrey.bmp deleted file mode 100644 index d6de2f51ab3..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/info-bg_lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_0-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_0-bg_white.bmp deleted file mode 100644 index 94112162413..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_0-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_00-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_00-bg_white.bmp deleted file mode 100644 index ed64f42e65c..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_00-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_1-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_1-bg_white.bmp deleted file mode 100644 index 399bb1ca33c..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_1-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_2-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_2-bg_white.bmp deleted file mode 100644 index 5c15ca628c3..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_2-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_3-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_3-bg_white.bmp deleted file mode 100644 index 747e5400b51..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_3-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_4-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_4-bg_white.bmp deleted file mode 100644 index 7ee8c9f2de3..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_4-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_5-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_5-bg_white.bmp deleted file mode 100644 index 5672c282701..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_5-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_6-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_6-bg_white.bmp deleted file mode 100644 index dcf162672cd..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_6-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_7-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_7-bg_white.bmp deleted file mode 100644 index a9edd0c2442..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_7-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_8-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_8-bg_white.bmp deleted file mode 100644 index 6994618efbc..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_8-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_9-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_9-bg_white.bmp deleted file mode 100644 index 82bfb850ffc..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_9-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_cancel-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_cancel-bg_white.bmp deleted file mode 100644 index 11becd098b9..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_cancel-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_clear-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_clear-bg_white.bmp deleted file mode 100644 index 8fe4aed2c2f..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_clear-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_empty-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_empty-bg_white.bmp deleted file mode 100644 index a4d8d2ca886..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_empty-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_enter-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_enter-bg_white.bmp deleted file mode 100644 index aa09594dd50..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_enter-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_point_comma-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_point_comma-bg_white.bmp deleted file mode 100644 index 707ce5cdf8e..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/key_point_comma-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/keyboard-bg_lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/keyboard-bg_lightgrey.bmp deleted file mode 100644 index 3e49979f3f8..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/keyboard-bg_lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/left_arrow.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/left_arrow.bmp deleted file mode 100644 index 11ae92410e7..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/left_arrow.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_darkgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_darkgrey.bmp deleted file mode 100644 index fdc9e3da342..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_darkgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_lightgrey.bmp deleted file mode 100644 index d481a460faa..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_white.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_white.bmp deleted file mode 100644 index 43362ab9476..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/logo_white-bg_white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/right_arrow.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/right_arrow.bmp deleted file mode 100644 index 14aa3e9bcbd..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/right_arrow.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/slideshow-bg_lightgrey.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_rle/slideshow-bg_lightgrey.bmp deleted file mode 100644 index c1c0a996b9a..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_rle/slideshow-bg_lightgrey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_1.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_1.bmp deleted file mode 100644 index b6b4f3db57a..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_1.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_2.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_2.bmp deleted file mode 100644 index bd49257eed3..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_2.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_3.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_3.bmp deleted file mode 100644 index 239185c687a..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_3.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_4.bmp b/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_4.bmp deleted file mode 100644 index ef432a2394a..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/bmp_slides/img_4.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-grey_bg-white.bmp b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-grey_bg-white.bmp deleted file mode 100644 index cd2cf93446c..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-grey_bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-grey_bg-white.mff b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-grey_bg-white.mff deleted file mode 100644 index b5d99ed93fd..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-grey_bg-white.mff and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-white_bg-grey.bmp b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-white_bg-grey.bmp deleted file mode 100644 index b4749ebf295..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-white_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-white_bg-grey.mff b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-white_bg-grey.mff deleted file mode 100644 index b5d99ed93fd..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_12-white_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-grey_bg-white.bmp b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-grey_bg-white.bmp deleted file mode 100644 index 9030c466136..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-grey_bg-white.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-grey_bg-white.mff b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-grey_bg-white.mff deleted file mode 100644 index d854b3a9fe5..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-grey_bg-white.mff and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-white_bg-grey.bmp b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-white_bg-grey.bmp deleted file mode 100644 index 6ddcefbb74b..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-white_bg-grey.bmp and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-white_bg-grey.mff b/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-white_bg-grey.mff deleted file mode 100644 index d854b3a9fe5..00000000000 Binary files a/Examples/MAX32572/TFT_Demo/resources/fonts/urw_gothic_13-white_bg-grey.mff and /dev/null differ diff --git a/Examples/MAX32572/TFT_Demo/src/keypad.c b/Examples/MAX32572/TFT_Demo/src/keypad.c deleted file mode 100644 index fbd4d694e93..00000000000 --- a/Examples/MAX32572/TFT_Demo/src/keypad.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * @file keypad.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -/* Global includes */ -#include -#include -/* Local includes */ -#include "keypad.h" -#include "skbd.h" -#include "max32572.h" - -/********************************* Variables **************************/ -static volatile int is_pressed = 0; - -/* keys mapping on the keyboard */ -static unsigned char keyboard_map[16] = { KEY_F, KEY_E, KEY_D, KEY_C, KEY_3, KEY_6, KEY_9, KEY_B, - KEY_2, KEY_5, KEY_8, KEY_0, KEY_1, KEY_4, KEY_7, KEY_A }; - -/********************************* Static Functions **************************/ -static void keypadHandler(void) -{ - unsigned int status; - - MXC_SKBD_InterruptStatus(&status); - - if (MXC_F_SKBD_ISR_OVERIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_OVERIS); - } - - if (MXC_F_SKBD_ISR_PUSHIS & status) { - is_pressed = 1; - /* Clear interruption */ - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_PUSHIS); - } - - if (MXC_F_SKBD_ISR_RELEASEIS & status) { - MXC_SKBD_ClearInterruptStatus(MXC_F_SKBD_ISR_RELEASEIS); - } - - return; -} - -/********************************* Public Functions *************************/ -int keypad_init(void) -{ - int rv = 0; - mxc_skbd_config_t skb_cfg; - - skb_cfg.inputs = MXC_SKBD_KBDIO4 | MXC_SKBD_KBDIO5 | MXC_SKBD_KBDIO6 | MXC_SKBD_KBDIO7; - skb_cfg.outputs = MXC_SKBD_KBDIO0 | MXC_SKBD_KBDIO1 | MXC_SKBD_KBDIO2 | MXC_SKBD_KBDIO3; - skb_cfg.debounce = MXC_V_SKBD_CR1_DBTM_TIME10MS; - skb_cfg.ioselect = 0; - skb_cfg.irq_handler = (irq_handler_t)keypadHandler; - skb_cfg.reg_erase = 1; - - MXC_SKBD_PreInit(); - - rv = MXC_SKBD_Init(skb_cfg); - - if (rv) { - return E_UNINITIALIZED; - } - - rv = MXC_SKBD_EnableInterruptEvents(MXC_SKBD_INTERRUPT_STATUS_PUSHIS); - - if (rv) { - return E_UNINITIALIZED; - } - - return 0; -} - -int keypad_getkey(void) -{ - volatile unsigned int in; - volatile unsigned int out; - volatile unsigned int i; - uint16_t *key; - mxc_skbd_keys_t keys = { 0, 0, 0, 0 }; - int pressed_key = 0; - - if (is_pressed == 1) { - MXC_SKBD_ReadKeys(&keys); - key = &keys.key0; - - for (i = 0; i < 4; i++) { - in = 0x0f & *key; - out = (0xf0 & *key) >> 4; - - if (*key) { - pressed_key = keyboard_map[(in - 4) * 4 + out]; - } - - *key = 0; - key++; - } - - is_pressed = 0; - } - - return pressed_key; -} diff --git a/Examples/MAX32572/TFT_Demo/src/state.c b/Examples/MAX32572/TFT_Demo/src/state.c deleted file mode 100644 index 8f465122961..00000000000 --- a/Examples/MAX32572/TFT_Demo/src/state.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * @file state.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ - -#include -#include "state.h" - -static State *g_state = NULL; - -/********************************* Public Functions **************************/ -void state_init(void) -{ - state_set_current(get_home_state()); -} - -int state_set_current(State *state) -{ - g_state = state; - g_state->init(); - - return 0; -} - -State *state_get_current(void) -{ - return g_state; -} diff --git a/Examples/MAX32572/TFT_Demo/src/state_home.c b/Examples/MAX32572/TFT_Demo/src/state_home.c deleted file mode 100644 index fe6a86deef6..00000000000 --- a/Examples/MAX32572/TFT_Demo/src/state_home.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * @file state_home.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "bitmap.h" -#include "keypad.h" -#include "state.h" -#include "tft.h" - -/********************************* DEFINES *************************/ -#define TICK_TIMEOUT 2000 - -/********************************* VARIABLES *************************/ -static int slide_mode = 0; - -/********************************* Static Functions **************************/ -static int init(void) -{ - MXC_TFT_SetPalette(footer_lightgrey_bottom_bmp); - MXC_TFT_SetBackGroundColor(3); - - MXC_TFT_ShowImage(0, 240 - 48, footer_lightgrey_bottom_bmp); - MXC_TFT_ShowImage(0, 240 - 48 - 8, footer_lightgrey_top_bg_lightgrey_bmp); - MXC_TFT_ShowImage(11, 7, logo_white_bg_lightgrey_bmp); - MXC_TFT_ShowImage(11, 77, slideshow_bg_lightgrey_bmp); - MXC_TFT_ShowImage(117, 77, keyboard_bg_lightgrey_bmp); - MXC_TFT_ShowImage(221, 77, info_bg_lightgrey_bmp); - - slide_mode = 0; - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(11, 77, 11 + 87, 77 + 62, KEY_A); - MXC_TS_AddButton(117, 77, 117 + 87, 77 + 62, KEY_0); - MXC_TS_AddButton(221, 77, 221 + 87, 77 + 62, KEY_B); - - return 0; -} - -static void time_tick(void) -{ - switch (slide_mode) { - case 1: - MXC_TFT_ShowImage(0, 0, img_1_bmp); - break; - - case 2: - MXC_TFT_ShowImage(0, 0, img_2_bmp); - break; - - case 3: - MXC_TFT_ShowImage(0, 0, img_3_bmp); - break; - - case 4: - MXC_TFT_ShowImage(0, 0, img_4_bmp); - break; - - default: - break; - } - - if (slide_mode > 0) { - if (++slide_mode > 5) { - slide_mode = 1; // go first slide - } - } -} - -static int key_process(int key) -{ - switch (key) { - case KEY_0: - state_set_current(get_keypad_state()); - break; - - case KEY_1: - break; - - case KEY_2: - break; - - case KEY_3: - break; - - case KEY_4: - break; - - case KEY_5: - break; - - case KEY_6: - break; - - case KEY_7: - break; - - case KEY_8: - break; - - case KEY_9: - break; - - case KEY_A: - if (slide_mode == 0) { - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(0, 0, 320, 240, KEY_C); - - slide_mode = 1; - time_tick(); - } - - break; - - case KEY_B: - state_set_current(get_info_state()); - break; - - case KEY_C: - if (slide_mode != 0) { - init(); // go home - } - - break; - - case KEY_D: - break; - - case KEY_E: - break; - - case KEY_F: - break; - - default: - break; - } - - return 0; -} - -static State g_state = { "home", init, key_process, time_tick, TICK_TIMEOUT }; - -/********************************* Public Functions **************************/ -State *get_home_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/TFT_Demo/src/state_info.c b/Examples/MAX32572/TFT_Demo/src/state_info.c deleted file mode 100644 index df85d277761..00000000000 --- a/Examples/MAX32572/TFT_Demo/src/state_info.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - * @file state_info.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "bitmap.h" -#include "keypad.h" -#include "state.h" -#include "utils.h" -#include "tft.h" - -// -#define urw_gothic_16_white_bg_grey 0 - -/********************************** Type Defines *****************************/ -typedef void (*ScreenFunc)(void); - -/************************************ VARIABLES ******************************/ -static void screen_info(void); -static void screen_info1(void); -static void screen_info2(void); -static void screen_info3(void); - -static ScreenFunc info_screens[] = { screen_info, screen_info1, screen_info2, screen_info3 }; -static unsigned int screen_index = 0; - -static text_t screen_msg[] = { - // info - { (char *)"INFORMATION", 11 }, - { (char *)"Scroll through pages", 20 }, - { (char *)"TEXT 1", 6 }, - { (char *)"TEXT 2", 6 }, - { (char *)"TEXT 3", 6 }, - // pages 1 - { (char *)"Cortex M4 @ 150MHz", 18 }, - { (char *)"1MB Flash, 760KB SRAM", 21 }, - { (char *)"TFT, ISO7816 PHY, MSR", 21 }, - // pages 2 - { (char *)"6 dynamic sensor pairs", 22 }, - { (char *)"Hardware crypto blocks", 22 }, - { (char *)"ECDSA Bootloader", 16 }, - // pages 3 - { (char *)"EMV-L1 stack", 12 }, - { (char *)"Cryptographic library", 21 }, - { (char *)"FreeRTOS OS", 11 } -}; - -/********************************* Static Functions **************************/ -static void screen_info(void) -{ - MXC_TFT_SetPalette(logo_white_bg_darkgrey_bmp); - MXC_TFT_SetBackGroundColor(4); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 80, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 110, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 140, check_success_bg_darkgrey_bmp); - - MXC_TFT_PrintFont(110, 12, urw_gothic_16_white_bg_grey, &screen_msg[0], NULL); // information - MXC_TFT_PrintFont(50, 50, urw_gothic_12_white_bg_grey, &screen_msg[1], - NULL); // scroll through pages - // texts - MXC_TFT_PrintFont(46, 80, urw_gothic_16_white_bg_grey, &screen_msg[2], NULL); // text 1 - MXC_TFT_PrintFont(46, 110, urw_gothic_16_white_bg_grey, &screen_msg[3], NULL); // text 2 - MXC_TFT_PrintFont(46, 140, urw_gothic_16_white_bg_grey, &screen_msg[4], NULL); // text 3 - - MXC_TFT_ShowImage(12, 191, left_arrow_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - MXC_TFT_ShowImage(259, 191, right_arrow_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(12, 191, 12 + 48, 191 + 39, KEY_1); - MXC_TS_AddButton(135, 191, 135 + 48, 191 + 39, KEY_2); - MXC_TS_AddButton(259, 191, 259 + 48, 191 + 39, KEY_3); -} - -static void screen_info1(void) -{ - MXC_TFT_SetBackGroundColor(4); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 80, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 110, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 140, check_success_bg_darkgrey_bmp); - - MXC_TFT_PrintFont(110, 12, urw_gothic_16_white_bg_grey, &screen_msg[0], NULL); // information - MXC_TFT_PrintFont(50, 50, urw_gothic_12_white_bg_grey, &screen_msg[1], - NULL); // scroll through pages - // texts - MXC_TFT_PrintFont(46, 80, urw_gothic_12_white_bg_grey, &screen_msg[5], NULL); // text 1 - MXC_TFT_PrintFont(46, 110, urw_gothic_12_white_bg_grey, &screen_msg[6], NULL); // text 2 - MXC_TFT_PrintFont(46, 140, urw_gothic_12_white_bg_grey, &screen_msg[7], NULL); // text 3 - - MXC_TFT_ShowImage(12, 191, left_arrow_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - MXC_TFT_ShowImage(259, 191, right_arrow_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(12, 191, 12 + 48, 191 + 39, KEY_1); - MXC_TS_AddButton(135, 191, 135 + 48, 191 + 39, KEY_2); - MXC_TS_AddButton(259, 191, 259 + 48, 191 + 39, KEY_3); -} - -static void screen_info2(void) -{ - MXC_TFT_SetBackGroundColor(4); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 80, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 110, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 140, check_success_bg_darkgrey_bmp); - - MXC_TFT_PrintFont(110, 12, urw_gothic_16_white_bg_grey, &screen_msg[0], NULL); // information - MXC_TFT_PrintFont(50, 50, urw_gothic_12_white_bg_grey, &screen_msg[1], - NULL); // scroll through pages - // texts - MXC_TFT_PrintFont(46, 80, urw_gothic_12_white_bg_grey, &screen_msg[8], NULL); // text 1 - MXC_TFT_PrintFont(46, 110, urw_gothic_12_white_bg_grey, &screen_msg[9], NULL); // text 2 - MXC_TFT_PrintFont(46, 140, urw_gothic_12_white_bg_grey, &screen_msg[10], NULL); // text 3 - - MXC_TFT_ShowImage(12, 191, left_arrow_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - MXC_TFT_ShowImage(259, 191, right_arrow_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(12, 191, 12 + 48, 191 + 39, KEY_1); - MXC_TS_AddButton(135, 191, 135 + 48, 191 + 39, KEY_2); - MXC_TS_AddButton(259, 191, 259 + 48, 191 + 39, KEY_3); -} - -static void screen_info3(void) -{ - MXC_TFT_SetBackGroundColor(4); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 80, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 110, check_success_bg_darkgrey_bmp); - MXC_TFT_ShowImage(16, 140, check_success_bg_darkgrey_bmp); - - MXC_TFT_PrintFont(110, 12, urw_gothic_16_white_bg_grey, &screen_msg[0], NULL); // information - MXC_TFT_PrintFont(50, 50, urw_gothic_12_white_bg_grey, &screen_msg[1], - NULL); // scroll through pages - // texts - MXC_TFT_PrintFont(46, 80, urw_gothic_12_white_bg_grey, &screen_msg[11], NULL); // text 1 - MXC_TFT_PrintFont(46, 110, urw_gothic_12_white_bg_grey, &screen_msg[12], NULL); // text 2 - MXC_TFT_PrintFont(46, 140, urw_gothic_12_white_bg_grey, &screen_msg[13], NULL); // text 3 - - MXC_TFT_ShowImage(12, 191, left_arrow_bmp); - MXC_TFT_ShowImage(135, 191, home_bmp); - MXC_TFT_ShowImage(259, 191, right_arrow_bmp); - - MXC_TS_RemoveAllButton(); - MXC_TS_AddButton(12, 191, 12 + 48, 191 + 39, KEY_1); - MXC_TS_AddButton(135, 191, 135 + 48, 191 + 39, KEY_2); - MXC_TS_AddButton(259, 191, 259 + 48, 191 + 39, KEY_3); -} - -static int init(void) -{ - screen_info(); - screen_index = 0; - return 0; -} - -static int key_process(int key) -{ - switch (key) { - case KEY_1: - if (screen_index > 0) { - --screen_index; - info_screens[screen_index](); - } - - break; - - case KEY_2: - state_set_current(get_home_state()); - break; - - case KEY_3: - if (screen_index < (ARRAY_SIZE(info_screens) - 1)) { - ++screen_index; - info_screens[screen_index](); - } - - break; - - case KEY_A: - break; - - case KEY_B: - break; - - case KEY_C: - state_set_current(get_home_state()); - break; - - case KEY_D: - break; - - case KEY_E: - break; - - case KEY_F: - break; - - default: - break; - } - - return 0; -} - -static State g_state = { "info", init, key_process, NULL, 0 }; - -/********************************* Public Functions **************************/ -State *get_info_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/TFT_Demo/src/state_keypad.c b/Examples/MAX32572/TFT_Demo/src/state_keypad.c deleted file mode 100644 index 2fd4a4ee619..00000000000 --- a/Examples/MAX32572/TFT_Demo/src/state_keypad.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - * @file state_home.c - * - ****************************************************************************** - * Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - ****************************************************************************** - */ -#include - -#include "bitmap.h" -#include "keypad.h" -#include "state.h" -#include "tft.h" - -/********************************* DEFINES *************************/ -#define BUTTON_SIZE_X 42 + 4 // 6 for free space -#define BUTTON_SIZE_Y 41 + 6 // 6 for free space - -#define MAX_CHAR_ON_SCREEN 8 - -/********************************* VARIABLES *************************/ -static unsigned char input_buf[MAX_CHAR_ON_SCREEN + 1] = { 0 }; - -static text_t text_msg[] = { { (char *)"Pressed", 7 }, { (char *)input_buf, 0 } }; - -static text_t *input_text = &text_msg[1]; - -/********************************* Static Functions **************************/ -static int init(void) -{ - int x, y; - int x0 = 120; - int y0 = 40; - - MXC_TS_RemoveAllButton(); - MXC_TFT_SetPalette(logo_white_bg_white_bmp); - MXC_TFT_SetBackGroundColor(0); - - MXC_TFT_ShowImage(11, 7, logo_white_bg_white_bmp); - - x = x0; - y = y0; - MXC_TFT_ShowImage(x, y, key_1_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_1); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_2_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_2); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_3_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_3); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_clear_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_F); - - // - x = x0; - y += BUTTON_SIZE_Y; - MXC_TFT_ShowImage(x, y, key_4_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_4); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_5_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_5); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_6_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_6); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_cancel_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_E); - - // - x = x0; - y += BUTTON_SIZE_Y; - MXC_TFT_ShowImage(x, y, key_7_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_7); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_8_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_8); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_9_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_9); - - x += BUTTON_SIZE_X; - MXC_TFT_ShowImage(x, y, key_enter_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_D); - - // - x = x0; - x += BUTTON_SIZE_X; - y += BUTTON_SIZE_Y; - MXC_TFT_ShowImage(x, y, key_0_bg_white_bmp); - MXC_TS_AddButton(x, y, x + 42, y + 41, KEY_0); - - MXC_TFT_PrintFont(11, 80, urw_gothic_13_grey_bg_white, &text_msg[0], NULL); - input_text->len = 0; - - return 0; -} - -static void print_inputs(int key) -{ - static area_t area; - - if (key == 0) { // means clear screen - MXC_TFT_ClearArea(&area, 0); - input_text->len = 0; - } else if (key == -1) { // means clear last key - if (input_text->len > 0) { - input_text->len--; - MXC_TFT_ClearArea(&area, 0); - MXC_TFT_PrintFont(11, 120, urw_gothic_13_grey_bg_white, input_text, &area); - } - } else if (input_text->len < MAX_CHAR_ON_SCREEN) { - input_text->data[input_text->len++] = key; - MXC_TFT_PrintFont(11, 120, urw_gothic_13_grey_bg_white, input_text, &area); - } -} - -static int key_process(int key) -{ - switch (key) { - case KEY_0: - case KEY_1: - case KEY_2: - case KEY_3: - case KEY_4: - case KEY_5: - case KEY_6: - case KEY_7: - case KEY_8: - case KEY_9: - case KEY_A: - case KEY_B: - print_inputs(key); - break; - - case KEY_C: // exit - state_set_current(get_home_state()); - break; - - case KEY_D: // enter - state_set_current(get_home_state()); - break; - - case KEY_E: // cancel - print_inputs(-1); - break; - - case KEY_F: // clear - print_inputs(0); - break; - - default: - break; - } - - return 0; -} - -static State g_state = { "keypad", init, key_process, NULL, 0 }; - -/********************************* Public Functions **************************/ -State *get_keypad_state(void) -{ - return &g_state; -} diff --git a/Examples/MAX32572/TFT_Demo/src/utils.c b/Examples/MAX32572/TFT_Demo/src/utils.c deleted file mode 100644 index 0864f29c1ca..00000000000 --- a/Examples/MAX32572/TFT_Demo/src/utils.c +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ -#include - -#include "utils.h" -#include "mxc_delay.h" -#include "rtc.h" - -/***************************** VARIABLES *************************************/ - -/************************ STATIC FUNCTIONS *******************************/ - -/************************ PUBLIC FUNCTIONS *******************************/ -unsigned int utils_get_time_ms(void) -{ - uint32_t sec, ssec; - double subsec; - uint32_t ms; - - MXC_RTC_GetSubSeconds(&ssec); - subsec = (double)ssec / (double)(4096.0); - - MXC_RTC_GetSeconds(&sec); - - ms = (sec * 1000) + (int)(subsec * 1000); - - return ms; -} - -void utils_delay_ms(unsigned int ms) -{ - MXC_Delay(ms * 1000UL); -} diff --git a/Examples/MAX32572/TMR/.cproject b/Examples/MAX32572/TMR/.cproject deleted file mode 100644 index c76d20d64ec..00000000000 --- a/Examples/MAX32572/TMR/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/TMR/.project b/Examples/MAX32572/TMR/.project deleted file mode 100644 index b0ef5efe666..00000000000 --- a/Examples/MAX32572/TMR/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - TMR - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/TMR/.vscode/c_cpp_properties.json b/Examples/MAX32572/TMR/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/TMR/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/TMR/.vscode/launch.json b/Examples/MAX32572/TMR/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/TMR/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/TMR/.vscode/settings.json b/Examples/MAX32572/TMR/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/TMR/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/TMR/.vscode/tasks.json b/Examples/MAX32572/TMR/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/TMR/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/TMR/Makefile b/Examples/MAX32572/TMR/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/TMR/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/TMR/README.md b/Examples/MAX32572/TMR/README.md deleted file mode 100644 index 6125b5cb5b0..00000000000 --- a/Examples/MAX32572/TMR/README.md +++ /dev/null @@ -1,43 +0,0 @@ -## Description - -Two timers are used to demonstrate two different modes of the general purpose timers. - -1. A continuous mode timer is used to create an interrupt at freq of 1 Hz. LED0 (Port 1.06) will toggle each time the interrupt occurs. - -2. Timer 0 is used to output a PWM signal on Port 1.0. The PWM frequency is 200 Hz and the duty cycle is 75%. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -************************** Timer Example ************************** - -1. A continuous mode timer is used to create an interrupt every 1 sec. - LED0 (Port 3.05) will toggle each time the interrupt occurs. - -2. Timer 0 is used to output a PWM signal on Port 1.14. - The PWM frequency is 200 Hz and the duty cycle is 75%. - -PWM started. - -Continuous timer started. -``` - diff --git a/Examples/MAX32572/TMR/TMR.launch b/Examples/MAX32572/TMR/TMR.launch deleted file mode 100644 index 5826b9bfd76..00000000000 --- a/Examples/MAX32572/TMR/TMR.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/TMR/main.c b/Examples/MAX32572/TMR/main.c deleted file mode 100644 index edfb7e3caf0..00000000000 --- a/Examples/MAX32572/TMR/main.c +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Timer example - * @details PWM Timer - Outputs a PWM signal (2Hz, 30% duty cycle) on 3.7 - * Continuous Timer - Outputs a continuous 1s timer on LED0 (GPIO toggles every 500s) - */ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ - -// Parameters for PWM output -#define FREQ 200 // (Hz) -#define DUTY_CYCLE 75 // (%) -#define PWM_TIMER MXC_TMR0 // must change PWM_PORT and PWM_PIN if changed - -// Parameters for Continuous timer -#define INTERVAL_TIME_CONT 1 // (s) will toggle after every interval -#define CONT_TIMER MXC_TMR1 // Can be MXC_TMR0 through MXC_TMR5 - -// Check Frequency bounds -#if (FREQ == 0) -#error "Frequency cannot be 0." -#elif (FREQ > 100000) -#error "Frequency cannot be over 10000." -#endif - -// Check duty cycle bounds -#if (DUTY_CYCLE < 0) || (DUTY_CYCLE > 100) -#error "Duty Cycle must be between 0 and 100." -#endif - -/***** Globals *****/ - -/***** Functions *****/ - -void PWMTimer(void) -{ - // Declare variables - mxc_tmr_cfg_t tmr; // to configure timer - unsigned int periodTicks = PeripheralClock / FREQ; - unsigned int dutyTicks = periodTicks * DUTY_CYCLE / 100; - - /* - Steps for configuring a timer for PWM mode: - 1. Disable the timer - 2. Set the pre-scale value - 3. Set polarity, PWM parameters - 4. Configure the timer for PWM mode - 5. Enable Timer - */ - - MXC_TMR_Shutdown(PWM_TIMER); - - tmr.pres = TMR_PRES_1; - tmr.mode = TMR_MODE_PWM; - tmr.cmp_cnt = periodTicks; - tmr.pol = 1; - - MXC_TMR_Init(PWM_TIMER, &tmr); - - if (MXC_TMR_SetPWM(PWM_TIMER, dutyTicks) != E_NO_ERROR) { - printf("Failed TMR_PWMConfig.\n"); - } - - MXC_TMR_Start(PWM_TIMER); - - printf("PWM started.\n\n"); -} - -// Toggles GPIO when continuous timer repeats -void ContinuousTimerHandler(void) -{ - // Clear interrupt - MXC_TMR_ClearFlags(CONT_TIMER); - MXC_GPIO_OutToggle(led_pin[0].port, led_pin[0].mask); -} - -void ContinuousTimer(void) -{ - // Declare variables - mxc_tmr_cfg_t tmr; - uint32_t periodTicks = PeripheralClock / 4 * INTERVAL_TIME_CONT; - - /* - Steps for configuring a timer for PWM mode: - 1. Disable the timer - 2. Set the prescale value - 3 Configure the timer for continuous mode - 4. Set polarity, timer parameters - 5. Enable Timer - */ - - MXC_TMR_Shutdown(CONT_TIMER); - - tmr.pres = TMR_PRES_4; - tmr.mode = TMR_MODE_CONTINUOUS; - tmr.cmp_cnt = periodTicks; //SystemCoreClock*(1/interval_time); - tmr.pol = 0; - - MXC_TMR_Init(CONT_TIMER, &tmr); - - MXC_TMR_Start(CONT_TIMER); - - printf("Continuous timer started.\n\n"); -} - -// ***************************************************************************** -int main(void) -{ - //Exact timer operations can be found in tmr_utils.c - - printf("\n************************** Timer Example **************************\n\n"); - printf("1. A continuous mode timer is used to create an interrupt every %d sec.\n", - INTERVAL_TIME_CONT); - printf(" LED0 (Port 3.05) will toggle each time the interrupt occurs.\n\n"); - printf("2. Timer 0 is used to output a PWM signal on Port 1.14.\n"); - printf(" The PWM frequency is %d Hz and the duty cycle is %d%%.\n\n", FREQ, DUTY_CYCLE); - - PWMTimer(); - - NVIC_SetVector(TMR1_IRQn, ContinuousTimerHandler); - NVIC_EnableIRQ(TMR1_IRQn); - ContinuousTimer(); - - while (1) {} - - return 0; -} diff --git a/Examples/MAX32572/TRNG/.cproject b/Examples/MAX32572/TRNG/.cproject deleted file mode 100644 index b824152918c..00000000000 --- a/Examples/MAX32572/TRNG/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/TRNG/.project b/Examples/MAX32572/TRNG/.project deleted file mode 100644 index 821f6a089af..00000000000 --- a/Examples/MAX32572/TRNG/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - TRNG - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/TRNG/.vscode/c_cpp_properties.json b/Examples/MAX32572/TRNG/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/TRNG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/TRNG/.vscode/launch.json b/Examples/MAX32572/TRNG/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/TRNG/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/TRNG/.vscode/settings.json b/Examples/MAX32572/TRNG/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/TRNG/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/TRNG/.vscode/tasks.json b/Examples/MAX32572/TRNG/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/TRNG/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/TRNG/Makefile b/Examples/MAX32572/TRNG/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/TRNG/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/TRNG/README.md b/Examples/MAX32572/TRNG/README.md deleted file mode 100644 index 060820e12e7..00000000000 --- a/Examples/MAX32572/TRNG/README.md +++ /dev/null @@ -1,40 +0,0 @@ -## Description - -The true random number generator (TRNG) hardware is exercised in this example. Random values are generated both using the blocking and non-blocking (asynchronous) functions. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -********** TRNG Example ********** - -Test TRNG Sync -0x15 0x93 0xcb 0x69 -0xaa 0xb6 0x73 0xf9 -0x87 0x04 0x81 0xc4 -0xd8 0x7f 0x15 0x01 - -Test TRNG Async -0x4b 0x5c 0xec 0x30 -0x52 0x9e 0x67 0x7e -0x6b 0xd7 0xb5 0xd8 -0xad 0x95 0x66 0xbe -``` diff --git a/Examples/MAX32572/TRNG/TRNG.launch b/Examples/MAX32572/TRNG/TRNG.launch deleted file mode 100644 index 2a395018915..00000000000 --- a/Examples/MAX32572/TRNG/TRNG.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/TRNG/main.c b/Examples/MAX32572/TRNG/main.c deleted file mode 100644 index b2d5d2356c0..00000000000 --- a/Examples/MAX32572/TRNG/main.c +++ /dev/null @@ -1,110 +0,0 @@ -/** - * @file main.c - * @brief True Random Number Generator (TRNG) example - * @details - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -#include -#include -#include - -#include - -volatile int wait; -volatile int callback_result; - -/***** Globals *****/ -uint8_t var_rnd_no[16] = { 0 }; - -void TRNG_IRQHandler(void) -{ - MXC_CTB_Handler(); -} - -void Test_Callback(void *req, int result) -{ - wait = 0; - callback_result = result; -} - -void print(char *stuff) -{ - int i, j, size = 4; - - for (i = 0; i < 4; ++i) { - for (j = 0; j < 4; ++j) { - printf("0x%02x ", stuff[i * size + j]); - } - - printf("\n"); - } - - return; -} - -void Test_TRNG(int asynchronous) -{ - printf(asynchronous ? "\nTest TRNG Async\n" : "\nTest TRNG Sync\n"); - - int num_bytes = 16; - - memset(var_rnd_no, 0, sizeof(var_rnd_no)); - - MXC_CTB_Init(MXC_CTB_FEATURE_TRNG); - - if (asynchronous) { - wait = 1; - MXC_CTB_TRNG_RandomAsync(var_rnd_no, num_bytes, &Test_Callback); - - while (wait) {} - } else { - MXC_CTB_TRNG_Random(var_rnd_no, num_bytes); - } - - print((char *)var_rnd_no); - - MXC_CTB_Shutdown(MXC_CTB_FEATURE_TRNG); -} - -int main(void) -{ - printf("\n\n********** TRNG Example **********\n"); - - Test_TRNG(0); - Test_TRNG(1); - - return 0; -} diff --git a/Examples/MAX32572/Temp_Monitor/.cproject b/Examples/MAX32572/Temp_Monitor/.cproject deleted file mode 100644 index a3278ff3919..00000000000 --- a/Examples/MAX32572/Temp_Monitor/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Temp_Monitor/.project b/Examples/MAX32572/Temp_Monitor/.project deleted file mode 100644 index 5fe288f5e8a..00000000000 --- a/Examples/MAX32572/Temp_Monitor/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Temp_Monitor - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Temp_Monitor/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/Temp_Monitor/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index c18699d1de6..00000000000 --- a/Examples/MAX32572/Temp_Monitor/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=Temp_Monitor -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32572 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/Temp_Monitor/.vscode/README.md b/Examples/MAX32572/Temp_Monitor/.vscode/README.md deleted file mode 100644 index f57d4364851..00000000000 --- a/Examples/MAX32572/Temp_Monitor/.vscode/README.md +++ /dev/null @@ -1,547 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) -* [Wiki](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/wiki) - * If it's not in the readme, check the wiki. - * If it's not in the wiki, open a ticket! - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX-series](https://www.maximintegrated.com/en/products/microcontrollers.html) microcontrollers. - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) -* [C/C++ VSCode Extension](https://github.com/microsoft/vscode-cpptools) -* [Maxim Micros SDK](https://www.maximintegrated.com/content/maximintegrated/en/design/software-description.html/swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.maximintegrated.com/en/products/microcontrollers/artificial-intelligence.html/tab4/vd_1_2eaktism#.YyDxHaE8U_Y.mailto). - -1. Download & install the Maxim Microcontrollers SDK for your OS from the links below. - * [Windows](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018720A) - * [MacOS](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MaximSDK installation, taking note of where the MaximSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -8. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/open_settings_json.jpg) - -9. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the MaximSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -10. Save your changes to the file with `CTRL + S` and restart VS Code. - -11. That's it! You're ready to start using Visual Studio Code to develop with Maxim's Microcontrollers. The MaximSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the SDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MaximSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for Maxim's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, Maxim's microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MaximSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/MaximIntegratedTechSupport/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MaximSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, Maxim's perpiheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MaximSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operater is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The following configuration variables are available. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MaximSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MaximSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MaximSDK. By default, the Makefile will attempt to locate the MaximSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the SDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MaximSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MaximSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.maximintegrated.com/en/design/technical-documents/userguides-and-manuals/7/7637.html). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MaximSDK will be searched. If the [SBT installer](https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the Maxim test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the MaximSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the SDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/MaximIntegratedTechSupport/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/Temp_Monitor/.vscode/launch.json b/Examples/MAX32572/Temp_Monitor/.vscode/launch.json deleted file mode 100644 index 2e118bf25b0..00000000000 --- a/Examples/MAX32572/Temp_Monitor/.vscode/launch.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"set $pc=Reset_Handler"}, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Temp_Monitor/.vscode/settings.json b/Examples/MAX32572/Temp_Monitor/.vscode/settings.json deleted file mode 100644 index cbd6aed18ac..00000000000 --- a/Examples/MAX32572/Temp_Monitor/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"max32670.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Temp_Monitor/.vscode/tasks.json b/Examples/MAX32572/Temp_Monitor/.vscode/tasks.json deleted file mode 100644 index 81917f6f083..00000000000 --- a/Examples/MAX32572/Temp_Monitor/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Temp_Monitor/Makefile b/Examples/MAX32572/Temp_Monitor/Makefile deleted file mode 100644 index c43a758f235..00000000000 --- a/Examples/MAX32572/Temp_Monitor/Makefile +++ /dev/null @@ -1,399 +0,0 @@ -# /******************************************************************************* -# * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. -# * -# * Permission is hereby granted, free of charge, to any person obtaining a -# * copy of this software and associated documentation files (the "Software"), -# * to deal in the Software without restriction, including without limitation -# * the rights to use, copy, modify, merge, publish, distribute, sublicense, -# * and/or sell copies of the Software, and to permit persons to whom the -# * Software is furnished to do so, subject to the following conditions: -# * -# * The above copyright notice and this permission notice shall be included -# * in all copies or substantial portions of the Software. -# * -# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# * OTHER DEALINGS IN THE SOFTWARE. -# * -# * Except as contained in this notice, the name of Maxim Integrated -# * Products, Inc. shall not be used except as stated in the Maxim Integrated -# * Products, Inc. Branding Policy. -# * -# * The mere transfer of this software does not imply any licenses -# * of trade secrets, proprietary technology, copyrights, patents, -# * trademarks, maskwork rights, or any other form of intellectual -# * property whatsoever. Maxim Integrated Products, Inc. retains all -# * ownership rights. -# ******************************************************************************* -# */ - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32572 -TARGET_UC := MAX32572 -TARGET_LC := max32572 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -include ./project.mk -$(info Loaded project.mk) - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Default optimization level for debug builds (make DEBUG=1 ...) -# gcc.mk checks for this flag to add some additional debug -# info to the build, and should be used when you really need to -# debug. -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Fallback default optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles, who check this too -export MFLOAT_ABI - -ifeq "$(RISCV_CORE)" "" -# Default linkerfile is only specified for standard Arm-core projects. -# Otherwise, gcc_riscv.mk sets the appropriate riscv linkerfile. -LINKERFILE ?= $(TARGET_LC).ld -LINKERPATH ?= $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC - -# Check if linkerfile exists -ifeq ("$(wildcard $(LINKERPATH)/$(LINKERFILE))","") -# Doesn't exists, attempt to use root project folder. -LINKERPATH:=. -endif - -# Form full path to linkerfile. Works around MSYS2 edge case from (see MSDK-903). -LINKERFILE:=$(LINKERPATH)/$(LINKERFILE) -endif - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/Temp_Monitor/README.md b/Examples/MAX32572/Temp_Monitor/README.md deleted file mode 100644 index 4b391e137b1..00000000000 --- a/Examples/MAX32572/Temp_Monitor/README.md +++ /dev/null @@ -1,53 +0,0 @@ -## Description - -This simple application demonstrates the use of the MAX32572 as a temperature monitor. **NOTE: A MAX31889EVSYS is required to run the example.** - -The device uses the RTC to trigger periodic measurements of the air temperature. Each time the RTC time-of-day alarm expires, the latest temperature reading is taken from an external MAX31889 temperature sensor which is connected to the device via I2C. The measurment is then time-stamped with the current time in the RTC and placed in a buffer. Once four successful measurements have been taken, they are stored in flash. - -If a temperature reading exceeds the upper or lower limits, a warning message will be printed in the terminal and the red warning LED will begin to blink at a frequnecy of 4Hz. Otherwise if the temperature is within the defined limits, the green LED will continue to toggle each time a new measurement is taken. - -Additionally, pressing push button SW3 will print the last 12 temperature readings in the terminal. - -The temperature limits, flash storage page, and RTC time-of-day alarm period are defined in [temp_monitor.c](./temp_monitor.c) with the HI/LO\_TEMP\_THRESHOLD, TR\_STORAGE\_PAGE, and TEMP\_CHECK\_PERIOD defines respectively. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Select RX0 and TX0 on Headers JP1 and JP3 (UART 0). -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Close jumper JP1 (LED1 EN). -- Close jumper JP2 (LED2 EN). -- Make the following connections between the MAX32572 and MAX31889 EV Kits: P0.6-->SCL(J2.11), P0.7-->SDA(J2.12), VDD(JH3.7)-->VDD(J1.2), GND(JH3.8)-->GND(J1.4) - -## Expected Output - -The Console UART of the device will output these messages: - -``` -********************** Temperature Monitor Demo ********************** -This simple example demonstrates the use of the MAX32572 as a temperature -monitor. - -The device periodically measures the air temperature using an external -MAX31889 temperature sensor. - -If a temperature reading exceeds the upper or lower limits, a warning message -will be printed in the terminal and the red warning LED will begin to blink. -Otherwise if the temperature is within the defined limits, the green LED -will continue to toggle each time a new measurement is taken. - -Press SW3 to print the last 12 temperature readings taken. -``` - -Additonally you should see either LED 0 or LED 1 being toggled periodically. \ No newline at end of file diff --git a/Examples/MAX32572/Temp_Monitor/Temp_Monitor.launch b/Examples/MAX32572/Temp_Monitor/Temp_Monitor.launch deleted file mode 100644 index dac1da669c2..00000000000 --- a/Examples/MAX32572/Temp_Monitor/Temp_Monitor.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Temp_Monitor/main.c b/Examples/MAX32572/Temp_Monitor/main.c deleted file mode 100644 index a92882c9ded..00000000000 --- a/Examples/MAX32572/Temp_Monitor/main.c +++ /dev/null @@ -1,114 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Low-Power Temp Monitor example. - * @details In this example the MCU is used monitor the air temperature. Temperature - * readings are timestamped and placed in flash. If a reading exceeds the - * user defined temperature limits a warning message will be printed to the - * terminal and the red warning light will begin to flash. - */ - -/***** Included Files *****/ -#include -#include "board.h" -#include "lp.h" -#include "temp_monitor.h" -#include "mxc_delay.h" -#include "mxc_device.h" -#include "pb.h" -#include "rtc.h" -#include "uart.h" - -/***** Functions *****/ -void RTC_IRQHandler(void) -{ - int flags = MXC_RTC_GetFlags(); - MXC_RTC_ClearFlags(flags); - - // RTC TOD alarm --> check temperature - if (flags & MXC_RTC_INT_FL_LONG) { - temp_monitor_check_temp(); - } - - // RTC SSEC alarm --> toggle warning light - if (flags & MXC_RTC_INT_FL_SHORT) { - temp_monitor_flash_warning_light(); - } -} - -void PB_Handler(void *pb) -{ - temp_monitor_print_temps(); -} - -int main(void) -{ - int err; - - MXC_Delay(MXC_DELAY_SEC(2)); //Delay to give debugger a connection window - - printf("\n********************** Temperature Monitor Demo **********************\n"); - - printf("This simple example demonstrates the use of the MAX32572 as a temperature\n"); - printf("monitor.\n\n"); - - printf("The device periodically measures the air temperature using an external\n"); - printf("MAX31889 temperature sensor.\n\n"); - - printf("If a temperature reading exceeds the upper or lower limits, a warning message\n"); - printf("will be printed in the terminal and the red warning LED will begin to blink.\n"); - printf("Otherwise if the temperature is within the defined limits, the green LED\n"); - printf("will continue to toggle each time a new measurement is taken.\n\n"); - - printf("Press SW3 to print the last 12 temperature readings taken.\n\n"); - - // Initialize Temperature Monitor - if ((err = temp_monitor_init()) != E_NO_ERROR) { - return err; - } - - // Configure pushbutton as a wakeup source and set interrupt callback - MXC_LP_EnableGPIOWakeup((mxc_gpio_cfg_t *)&pb_pin[0]); - PB_RegisterCallback(0, PB_Handler); - PB_IntEnable(0); - - while (1) { - while (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART))) {} - //Make sure print statements have finished before sleeping - MXC_LP_EnterSleepMode(); //Wait for next RTC interrupt - } - - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/Temp_Monitor/project.mk b/Examples/MAX32572/Temp_Monitor/project.mk deleted file mode 100644 index 7e3d664eac1..00000000000 --- a/Examples/MAX32572/Temp_Monitor/project.mk +++ /dev/null @@ -1,14 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -# ********************************************************** - -# Include MAX31889 drivers from MiscDrivers library. -SRCS+=max31889_driver.c - -VPATH+=$(LIBS_DIR)/MiscDrivers/TempSensor -IPATH+=$(LIBS_DIR)/MiscDrivers/TempSensor diff --git a/Examples/MAX32572/Temp_Monitor/temp_monitor.c b/Examples/MAX32572/Temp_Monitor/temp_monitor.c deleted file mode 100644 index b1726e41d99..00000000000 --- a/Examples/MAX32572/Temp_Monitor/temp_monitor.c +++ /dev/null @@ -1,293 +0,0 @@ -/******************************************************************************* -* Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ -#include -#include -#include "flc.h" -#include "i2c.h" -#include "icc.h" -#include "led.h" -#include "lp.h" -#include "max31889_driver.h" -#include "mxc_device.h" -#include "rtc.h" -#include "temp_monitor.h" - -/***** Definitions *****/ -/***** Modifiable defines *****/ -#define HI_TEMP_THRESHOLD 30 -#define LO_TEMP_THRESHOLD 15 -#define TEMP_CHECK_PERIOD 5 -#define TR_STORAGE_PAGE 1 -//NOTE: Ensure "TR_STORAGE_PAGE" is less than the total number of flash pages in the device. -// If you select a higher value, consider setting LINKERFILE to $(TARGET_LC)_ram.ld in -// project.mk otherwise application code may get overwritten. - -/****** Do not Modify these Defines *****/ -#define TR_STORAGE_BASE_ADDR \ - (MXC_FLASH_MEM_BASE + MXC_FLASH_MEM_SIZE - (TR_STORAGE_PAGE * MXC_FLASH_PAGE_SIZE)) - -#define TEMP_SENS_I2C MXC_I2C0 -#define TEMP_SENS_FREQ 100000 - -#define MSEC_TO_RSSA(msec) ((msec * 4096) / 1000) -#define WARN_LIGHT_PERIOD (0xFFFFFFFF - MSEC_TO_RSSA(250)) - -#define TEMPERATURE_MASK 0x0000FFFF -#define TIMESTAMP_MASK 0xFFFF0000 -#define TIMESTAMP_OFFSET 16 - -/***** Global Variables *****/ -static max31889_driver_t g_temp_sensor; -static bool g_temp_warning = false; -static uint32_t g_temp_readings[4]; -static uint32_t g_num_readings = 0; - -/******************************************************************/ -/************************ Private Functions ***********************/ -/******************************************************************/ - -/***** Flash Functions *****/ -static int init_flash(void) -{ - int err; - - // Initialize flash controller - err = MXC_FLC_Init(); - - // Clear flash page used to store temperature readings - err += MXC_FLC_PageErase(TR_STORAGE_BASE_ADDR); - - return err; -} - -static void store_temp_readings(void) -{ - // Calculate flash address to store temperature readings at - int flash_addr = TR_STORAGE_BASE_ADDR + (g_num_readings - 4) * sizeof(g_temp_readings[0]); - - // Write last 4 temp readings to flash - MXC_ICC_Disable(); - if (MXC_FLC_Write128(flash_addr, g_temp_readings) != E_NO_ERROR) { - //Failed to write to flash, decrement num_readings to reflect fact - //that the last 4 readings taken are not stored in flash - g_num_readings -= 4; - } - MXC_ICC_Enable(); -} - -/***** Temperature Sensor Functions *****/ -static int init_temp_sensor(void) -{ - int err; - - // Initialize I2C connected to temperature sensor - if ((err = MXC_I2C_Init(TEMP_SENS_I2C, 1, 0)) != E_NO_ERROR) { - return err; - } - MXC_I2C_SetFrequency(TEMP_SENS_I2C, TEMP_SENS_FREQ); - - // Get MAX31889 function pointers - g_temp_sensor = MAX31889_Open(); - - // Initialize MAX31889 temperature sensor - return g_temp_sensor.init(TEMP_SENS_I2C, MAX31889_I2C_SLAVE_ADDR0); -} - -static void record_current_temp(uint32_t current_time) -{ - uint32_t temp_reading; - float temp_reading_float; - - // Get current temperature - if (g_temp_sensor.read((void *)&temp_reading_float) != E_NO_ERROR) { - return; - } - - // Record current temperature with timestamp - temp_reading = (uint32_t)temp_reading_float; - g_temp_readings[(g_num_readings % 4)] = (current_time << TIMESTAMP_OFFSET) | temp_reading; - - // Increment readings counter (reset to 0 if flash page has been filled) - g_num_readings = (g_num_readings + 1) % (MXC_FLASH_PAGE_SIZE / sizeof(g_temp_readings[0])); - - // Store temperatures to flash if 4 readings have been taken - // Note: we store them every 4 readings so we are able to do a 128-bit write - if (g_num_readings % 4 == 0) { - store_temp_readings(); - } - - // Check if temperature has exceeded a threshold - if (temp_reading > HI_TEMP_THRESHOLD) { - LED_Off(1); - g_temp_warning = true; - printf("Temperature exceeded upper threshold!\n"); - } else if (temp_reading < LO_TEMP_THRESHOLD) { - LED_Off(1); - g_temp_warning = true; - printf("Temperature exceeded lower threshold!\n"); - } else { - LED_Toggle(1); //Heartbeat - g_temp_warning = false; - } - - return; -} - -/***** RTC Functions *****/ -static int start_rtc(void) -{ - int err; - - // Initialize RTC - if ((err = MXC_RTC_Init(0, 0)) != E_NO_ERROR) { - return err; - } - - // Setup TOD alarm - MXC_RTC_DisableInt(MXC_RTC_INT_EN_LONG); //TOD alarm interrupt most be disabled to set period - if ((err = MXC_RTC_SetTimeofdayAlarm(TEMP_CHECK_PERIOD)) != E_NO_ERROR) { - return err; - } - MXC_RTC_EnableInt(MXC_RTC_INT_EN_LONG); - - // Enable RTC Wakeup - MXC_LP_EnableRTCAlarmWakeup(); - NVIC_EnableIRQ(RTC_IRQn); - - // Start RTC - return MXC_RTC_Start(); -} - -static void enable_warning_light(void) -{ - // Set subsecond alarm period and enable interrupt - MXC_RTC_DisableInt(MXC_RTC_INT_EN_SHORT); //SSEC alarm must be disabled to set period - MXC_RTC_SetSubsecondAlarm(WARN_LIGHT_PERIOD); - MXC_RTC_EnableInt(MXC_RTC_INT_EN_SHORT); - return; -} - -static void disable_warning_light(void) -{ - // Disable SSEC alarm - MXC_RTC_DisableInt(MXC_RTC_INT_EN_SHORT); - - LED_Off(0); //Make sure warning light is off - return; -} - -/******************************************************************/ -/************************ Public Functions ************************/ -/******************************************************************/ - -/***** Initialization Function *****/ -int temp_monitor_init(void) -{ - int err; - - if ((err = init_flash()) != E_NO_ERROR) { //Init flash space used to store temp readings - return err; - } else if ((err = init_temp_sensor()) != E_NO_ERROR) { //Init temperature sensor (and I2C) - return err; - } else if ((err = start_rtc()) != E_NO_ERROR) { //Init and start RTC, and set up TOD alarm - return err; - } - - return E_NO_ERROR; -} - -/***** Push Button ISR *****/ -void temp_monitor_print_temps(void) -{ - int addr_offset; - int num_temp; - uint32_t temps[12]; //Read a maximum of 12 temperatures - uint16_t time, temp; - - // Calculate the number of temperature readings currently stored in flash - num_temp = g_num_readings - (g_num_readings % 4); - - // Determine how many temperatures to read (limit 12) and where in flash they're located - if (num_temp == 0) { - printf("\nNo temperatures recorded, try reading again later.\n"); - return; - } else if (num_temp < 12) { - addr_offset = 0; - } else { - addr_offset = (num_temp - 12) * sizeof(g_temp_readings[0]); - num_temp = 12; - } - - // Read all temperature readings stored in flash - MXC_FLC_Read(TR_STORAGE_BASE_ADDR + addr_offset, temps, sizeof(temps)); - - // Print out each temperature reading with it's timestamp - printf("\nLast %d temperature Readings:\n", num_temp); - for (int i = 0; i < num_temp; i++) { - time = (temps[i] & TIMESTAMP_MASK) >> TIMESTAMP_OFFSET; - temp = temps[i] & TEMPERATURE_MASK; - printf("%ds - Temp: %dC\n", time, temp); - } -} - -/***** RTC Alarm ISRs *****/ -void temp_monitor_check_temp(void) -{ - uint32_t current_sec, dummy; - - // Get current time - while (MXC_RTC_GetTime(¤t_sec, &dummy) == E_BUSY) {} - - // Set next TOD alarm TEMP_CHECK_PERIOD seconds into the future - MXC_RTC_DisableInt(MXC_RTC_INT_EN_LONG); - while (MXC_RTC_SetTimeofdayAlarm(current_sec + TEMP_CHECK_PERIOD) == E_BUSY) {} - MXC_RTC_EnableInt(MXC_RTC_INT_EN_LONG); - - // Take temperature readinf - record_current_temp(current_sec); - - // Enable or disable warning light if necessary - if (g_temp_warning && !(MXC_RTC->ctrl & MXC_RTC_INT_EN_SHORT)) { - //Temp warning active and warning light inactive --> enable - enable_warning_light(); - } else if (!g_temp_warning && (MXC_RTC->ctrl & MXC_RTC_INT_EN_SHORT)) { - //Temp warning inactive and warning light active --> disable - disable_warning_light(); - } -} - -void temp_monitor_flash_warning_light(void) -{ - // Toggle warning light - LED_Toggle(0); -} diff --git a/Examples/MAX32572/Temp_Monitor/temp_monitor.h b/Examples/MAX32572/Temp_Monitor/temp_monitor.h deleted file mode 100644 index b2bb890b54c..00000000000 --- a/Examples/MAX32572/Temp_Monitor/temp_monitor.h +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* -* Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ - -#ifndef EXAMPLES_MAX32572_TEMP_MONITOR_TEMP_MONITOR_H_ -#define EXAMPLES_MAX32572_TEMP_MONITOR_TEMP_MONITOR_H_ - -/* - * @brief Initializes the components of the temperature monitor (Flash, RTC, I2C, and MAX31889). - */ -int temp_monitor_init(void); - -/* - * @brief Reads the latest temperature readings from flash and prints them to the terminal. - */ -void temp_monitor_print_temps(void); - -/* - * @brief Checks the current air temperature. This function will activate or deactivate the warning - * light if necessary, and will also print a temperature warning message if necessary. - */ -void temp_monitor_check_temp(void); - -/* - * @brief Toggles warning light. - */ -void temp_monitor_flash_warning_light(void); - -#endif // EXAMPLES_MAX32572_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32572/UART/.cproject b/Examples/MAX32572/UART/.cproject deleted file mode 100644 index 7328e943945..00000000000 --- a/Examples/MAX32572/UART/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/UART/.project b/Examples/MAX32572/UART/.project deleted file mode 100644 index 5b8e6ef7a15..00000000000 --- a/Examples/MAX32572/UART/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - UART - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/UART/.vscode/c_cpp_properties.json b/Examples/MAX32572/UART/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/UART/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/UART/.vscode/launch.json b/Examples/MAX32572/UART/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/UART/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/UART/.vscode/settings.json b/Examples/MAX32572/UART/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/UART/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/UART/.vscode/tasks.json b/Examples/MAX32572/UART/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/UART/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/UART/ARM/Abstract.txt b/Examples/MAX32572/UART/ARM/Abstract.txt deleted file mode 100644 index b5cef133386..00000000000 --- a/Examples/MAX32572/UART/ARM/Abstract.txt +++ /dev/null @@ -1 +0,0 @@ -Hello World Example! \ No newline at end of file diff --git a/Examples/MAX32572/UART/ARM/JLinkSettings.ini b/Examples/MAX32572/UART/ARM/JLinkSettings.ini deleted file mode 100644 index 39b6d054aa3..00000000000 --- a/Examples/MAX32572/UART/ARM/JLinkSettings.ini +++ /dev/null @@ -1,39 +0,0 @@ -[BREAKPOINTS] -ForceImpTypeAny = 0 -ShowInfoWin = 1 -EnableFlashBP = 2 -BPDuringExecution = 0 -[CFI] -CFISize = 0x00 -CFIAddr = 0x00 -[CPU] -MonModeVTableAddr = 0xFFFFFFFF -MonModeDebug = 0 -MaxNumAPs = 0 -LowPowerHandlingMode = 0 -OverrideMemMap = 0 -AllowSimulation = 1 -ScriptFile="" -[FLASH] -CacheExcludeSize = 0x00 -CacheExcludeAddr = 0x00 -MinNumBytesFlashDL = 0 -SkipProgOnCRCMatch = 1 -VerifyDownload = 1 -AllowCaching = 1 -EnableFlashDL = 2 -Override = 0 -Device="ARM7" -[GENERAL] -WorkRAMSize = 0x00 -WorkRAMAddr = 0x00 -RAMUsageLimit = 0x00 -[SWO] -SWOLogFile="" -[MEM] -RdOverrideOrMask = 0x00 -RdOverrideAndMask = 0xFFFFFFFF -RdOverrideAddr = 0xFFFFFFFF -WrOverrideOrMask = 0x00 -WrOverrideAndMask = 0xFFFFFFFF -WrOverrideAddr = 0xFFFFFFFF diff --git a/Examples/MAX32572/UART/ARM/UART.uvoptx b/Examples/MAX32572/UART/ARM/UART.uvoptx deleted file mode 100644 index 46cd4c19998..00000000000 --- a/Examples/MAX32572/UART/ARM/UART.uvoptx +++ /dev/null @@ -1,302 +0,0 @@ - - - - 1.0 - -
### uVision Project, (C) Keil Software
- - - *.c - *.s*; *.src; *.a* - *.obj - *.lib - *.txt; *.h; *.inc - *.plm - *.cpp - 0 - - - - 0 - 0 - - - - Flash Debug - 0x4 - ARM-ADS - - 96000000 - - 1 - 1 - 0 - 1 - 0 - - - 1 - 65535 - 0 - 0 - 0 - - - 79 - 66 - 8 - .\Listings\ - - - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - - - 1 - 0 - 1 - - 255 - - - 0 - Evaluation Kit Datasheet and Configuration (MAX32630_EVKIT) - C:\Keil_v522\ARM\PACK\Maxim\MAX32630\0.0.0-1.alpha\Documents\MAX32630_EVKIT_Datasheet.pdf - - - 1 - Schematic (MAX32630_EVKIT) - C:\Keil_v522\ARM\PACK\Maxim\MAX32630\0.0.0-1.alpha\Documents\MAX32630_EVKIT_Schematic.pdf - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 1 - 1 - 0 - 0 - 1 - 3 - - - - - - - - - - - Segger\JL2CM3.dll - - - - 0 - DLGUARM - / - - - 0 - ARMRTXEVENTFLAGS - -L70 -Z18 -C0 -M0 -T1 - - - 0 - DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=105,140,543,412,0)(1009=-1,-1,-1,-1,0) - - - 0 - ARMDBGFLAGS - - - - 0 - JL2CM3 - -U228204079 -O47 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -N01("Unknown JTAG device") -D01(07F6C197) -L01(4) -TO18 -TC96000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0MAX32630.FLM -FS00 -FL0200000 -FP0($$Device:MAX32630$Flash\MAX32630.FLM) - - - 0 - UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0MAX32630 -FS00 -FL0200000 -FP0($$Device:MAX32630$Flash\MAX32630.FLM)) - - - - - - 1 - 0 - 0x4001F000 - 0 - - - - 0 - - - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - - - System Viewer\UART1 - 35905 - - - - 1 - 0 - 1 - 1000000 - - - - - - Source - 1 - 0 - 0 - 0 - - 1 - 1 - 1 - 0 - 0 - 0 - ..\main.c - main.c - 0 - 0 - - - 1 - 2 - 5 - 0 - 0 - 0 - .\Abstract.txt - Abstract.txt - 0 - 0 - - - - - ::BSP - 0 - 0 - 0 - 1 - - - - ::CMSIS - 0 - 0 - 0 - 1 - - - - ::Communications - 0 - 0 - 0 - 1 - - - - ::Device - 0 - 0 - 0 - 1 - - - - ::HAL - 0 - 0 - 0 - 1 - - - - ::Peripherals - 0 - 0 - 0 - 1 - - -
diff --git a/Examples/MAX32572/UART/ARM/UART.uvprojx b/Examples/MAX32572/UART/ARM/UART.uvprojx deleted file mode 100644 index 72951c6ce80..00000000000 --- a/Examples/MAX32572/UART/ARM/UART.uvprojx +++ /dev/null @@ -1,557 +0,0 @@ - - - - 2.1 - -
### uVision Project, (C) Keil Software
- - - - Flash Debug - 0x4 - ARM-ADS - 5060422::V5.06 update 4 (build 422)::ARMCC - - - MAX32630 - Maxim - Maxim.MAX32630.0.0.0-1.alpha - http://dal-mac-cware.maxim-ic.com/tools/pack/ - IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00200000) CPUTYPE("Cortex-M4") FPU2 CLOCK(96000000) ELITTLE - - - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0MAX32630 -FS00 -FL0200000 -FP0($$Device:MAX32630$Flash\MAX32630.FLM)) - 0 - $$Device:MAX32630$Libraries\Device\Maxim\MAX32630\Include\max32630.h - - - - - - - - - - $$Device:MAX32630$SVD\MAX32630\max32630.svd - 0 - 0 - - - - - - - 0 - 0 - 0 - 0 - 1 - - .\Objects\ - UART - 1 - 0 - 0 - 1 - 1 - .\Listings\ - 1 - 0 - 0 - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - 0 - 0 - - 1 - - - - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 3 - - - 1 - - - SARMCM3.DLL - - DCM.DLL - -pCM4 - SARMCM3.DLL - - TCM.DLL - -pCM4 - - - - 1 - 0 - 0 - 0 - 16 - - - - - 1 - 0 - 0 - 1 - 1 - 4096 - - 1 - BIN\UL2CM3.DLL - "" () - - - - - 0 - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - "Cortex-M4" - - 0 - 0 - 0 - 1 - 1 - 0 - 0 - 2 - 0 - 0 - 8 - 1 - 0 - 0 - 0 - 3 - 3 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x20000 - - - 1 - 0x0 - 0x200000 - - - 0 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x200000 - - - 1 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x20000 - - - 0 - 0x0 - 0x0 - - - - - - 1 - 1 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 2 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - - --diag_suppress=1295,1296 --library_type=microlib - TARGET=MAX32630, TARGET_REV=0x4132, BOARD=EvKit_V1 - - - - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - 1 - 0 - 0 - 0 - 1 - 0 - 0x00000000 - 0x20000000 - - - - - - - - - - - - - Source - - - main.c - 1 - ..\main.c - - - Abstract.txt - 5 - .\Abstract.txt - - - - - ::BSP - - - ::CMSIS - - - ::Communications - - - ::Device - - - ::HAL - - - ::Peripherals - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RTE\Device\MAX32630\max32630.h - - - - - - - - RTE\Device\MAX32630\startup_max32630.s - - - - - - - - RTE\Device\MAX32630\system_max32630.c - - - - - - - - RTE\HAL\MAX32630\max32630.h - - - - - - - - RTE\HAL\MAX32630\mxc_device.h - - - - - - - - - -
diff --git a/Examples/MAX32572/UART/Makefile b/Examples/MAX32572/UART/Makefile deleted file mode 100644 index 6865c52e2e3..00000000000 --- a/Examples/MAX32572/UART/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/UART/README.md b/Examples/MAX32572/UART/README.md deleted file mode 100644 index 66b302b366a..00000000000 --- a/Examples/MAX32572/UART/README.md +++ /dev/null @@ -1,51 +0,0 @@ -## Description - -This application uses two serial ports to send and receive data. One serial port transmits data while the other receives it. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- Connect P1.12 to P1.21. -- Connect P1.13 to P1.20. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -**************** UART Example ****************** -This example sends data from one UART to another - -The LED (P2.17) is used to indicate the success of the test. -LED ON -> Success - - -Connect UART1 to UART3 for this example. -P1.12 -> P1.21 and P1.13 -> P1.20 - - --->UART Baud : 115200 Hz - --->Test Length : 1024 bytes - --->UART Initialized - --->Data verified - --->Example Succeeded -``` - -The LED (P2.17) will illuminate to indicate the success of the test. diff --git a/Examples/MAX32572/UART/UART.launch b/Examples/MAX32572/UART/UART.launch deleted file mode 100644 index 4aa8c1f8cff..00000000000 --- a/Examples/MAX32572/UART/UART.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/UART/main.c b/Examples/MAX32572/UART/main.c deleted file mode 100644 index 3499cbd0f89..00000000000 --- a/Examples/MAX32572/UART/main.c +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Main for UART example. - * @details This example sends data from TX on UART1 to the RX on UART3. For this example - * you must connect a jumper across P1.20 to P1.17 and P1.21 to P1.16. UART_BAUD - * and the BUFF_SIZE can be changed in this example. - */ - -/***** Includes *****/ -#include -#include -#include - -#include - -/***** Definitions *****/ -// #define DMA - -#define UART_BAUD 115200 -#define BUFF_SIZE 256 - -/***** Globals *****/ -volatile int READ_FLAG; -volatile int DMA_FLAG; - -/***** Functions *****/ - -/******************************************************************************/ -void readCallback(mxc_uart_req_t *req, int error) -{ - READ_FLAG = error; -} - -/******************************************************************************/ -void UART3_Handler(void) -{ - MXC_UART_AsyncHandler(MXC_UART3); -} - -#ifdef DMA -void DMA_Handler(void) -{ - MXC_DMA_Handler(); - DMA_FLAG = 0; -} -#else -void UART1_Handler(void) -{ - MXC_UART_AsyncHandler(MXC_UART1); -} -#endif -/******************************************************************************/ -int main(void) -{ - int error, i, fail = 0; - uint8_t TxData[BUFF_SIZE]; - uint8_t RxData[BUFF_SIZE]; - - printf("\n\n**************** UART Example ******************\n"); - printf("This example sends data from one UART to another\n"); - printf("\nThe LED (P2.17) is used to indicate the success of the test.\nLED ON -> Success\n"); - printf("\n\nConnect UART1 to UART3 for this example.\n"); - printf("P1.12 -> P1.21 and P1.13 -> P1.20\n\n"); - - printf("\n-->UART Baud \t: %d Hz\n", UART_BAUD); - printf("\n-->Test Length \t: %d bytes\n\n", BUFF_SIZE); - - // Initialize the data buffers - for (i = 0; i < BUFF_SIZE; i++) { - TxData[i] = i; - } - - memset(RxData, 0x0, BUFF_SIZE); - - // Setup the interrupt - NVIC_ClearPendingIRQ(UART3_IRQn); - NVIC_DisableIRQ(UART3_IRQn); - NVIC_SetVector(UART3_IRQn, UART3_Handler); - NVIC_EnableIRQ(UART3_IRQn); - -#ifdef DMA - MXC_DMA_ReleaseChannel(0); - NVIC_SetVector(DMA0_IRQn, DMA_Handler); - NVIC_EnableIRQ(DMA0_IRQn); -#else - NVIC_ClearPendingIRQ(UART1_IRQn); - NVIC_DisableIRQ(UART1_IRQn); - NVIC_SetVector(UART1_IRQn, UART1_Handler); - NVIC_EnableIRQ(UART1_IRQn); -#endif - - // Initialize the UART - if ((error = MXC_UART_Init(MXC_UART1, UART_BAUD)) != E_NO_ERROR) { - printf("-->Error initializing UART: %d\n", error); - printf("-->Example Failed\n"); - return -1; - } - - if ((error = MXC_UART_Init(MXC_UART3, UART_BAUD)) != E_NO_ERROR) { - printf("-->Error initializing UART: %d\n", error); - printf("-->Example Failed\n"); - return -1; - } - - printf("-->UART Initialized\n\n"); - - // Setup the asynchronous request - mxc_uart_req_t read_req; - read_req.uart = MXC_UART1; - read_req.rxData = RxData; - read_req.rxLen = BUFF_SIZE; - read_req.txLen = 0; - read_req.callback = readCallback; - - mxc_uart_req_t write_req; - write_req.uart = MXC_UART3; - write_req.txData = TxData; - write_req.txLen = BUFF_SIZE; - write_req.rxLen = 0; - write_req.callback = NULL; - - READ_FLAG = 1; - DMA_FLAG = 1; - -#ifdef DMA - error = MXC_UART_TransactionDMA(&read_req); -#else - error = MXC_UART_TransactionAsync(&read_req); -#endif - - if (error != E_NO_ERROR) { - printf("-->Error starting async read: %d\n", error); - printf("-->Example Failed\n"); - - return -1; - } - - error = MXC_UART_Transaction(&write_req); - - if (error != E_NO_ERROR) { - printf("-->Error starting sync write: %d\n", error); - printf("-->Example Failed\n"); - - return -1; - } - -#ifdef DMA - - while (DMA_FLAG) {} - -#else - - while (READ_FLAG) {} - - if (READ_FLAG != E_NO_ERROR) { - printf("-->Error with UART_ReadAsync callback; %d\n", READ_FLAG); - fail++; - } - -#endif - - if ((error = memcmp(RxData, TxData, BUFF_SIZE)) != 0) { - printf("-->Error verifying Data: %d\n", error); - fail++; - } else { - printf("-->Data verified\n"); - } - - if (fail != 0) { - printf("\nExample Failed\n"); - return E_FAIL; - } - - LED_On(0); - printf("\nExample Succeeded\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/USB_CDCACM/.cproject b/Examples/MAX32572/USB_CDCACM/.cproject deleted file mode 100644 index f508227ef91..00000000000 --- a/Examples/MAX32572/USB_CDCACM/.cproject +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_CDCACM/.vscode/c_cpp_properties.json b/Examples/MAX32572/USB_CDCACM/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/USB_CDCACM/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CDCACM/.vscode/launch.json b/Examples/MAX32572/USB_CDCACM/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/USB_CDCACM/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CDCACM/.vscode/settings.json b/Examples/MAX32572/USB_CDCACM/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/USB_CDCACM/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/USB_CDCACM/.vscode/tasks.json b/Examples/MAX32572/USB_CDCACM/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/USB_CDCACM/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CDCACM/Makefile b/Examples/MAX32572/USB_CDCACM/Makefile deleted file mode 100644 index db1000d7252..00000000000 --- a/Examples/MAX32572/USB_CDCACM/Makefile +++ /dev/null @@ -1,157 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=${abspath $(LIBS_DIR)/PeriphDrivers} -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -MAXUSB_DIR=$(LIBS_DIR)/MAXUSB -include $(MAXUSB_DIR)/maxusb.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/USB_CDCACM/README.md b/Examples/MAX32572/USB_CDCACM/README.md deleted file mode 100644 index fb67e163351..00000000000 --- a/Examples/MAX32572/USB_CDCACM/README.md +++ /dev/null @@ -1,34 +0,0 @@ -## Description - -The example demonstartes the use of USB CDC-ACM driver class. After doing the required connections given below, run the program and a new serial terminal (COM port) appears in the device manager. Open a terminal application on the PC at 9600 baud rate, and echo the characters on the terminal. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open a terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** MAX32572 USB CDC-ACM Example ***** -Waiting for VBUS... -VBUS Connect -Suspended -Bus Reset -Bus Reset -Enumeration complete. Waiting for characters... -``` diff --git a/Examples/MAX32572/USB_CDCACM/USB_CDCACM.launch b/Examples/MAX32572/USB_CDCACM/USB_CDCACM.launch deleted file mode 100644 index a772a86cc9b..00000000000 --- a/Examples/MAX32572/USB_CDCACM/USB_CDCACM.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_CDCACM/descriptors.h b/Examples/MAX32572/USB_CDCACM/descriptors.h deleted file mode 100644 index 4081ecbfc90..00000000000 --- a/Examples/MAX32572/USB_CDCACM/descriptors.h +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_USB_CDCACM_DESCRIPTORS_H_ -#define EXAMPLES_MAX32572_USB_CDCACM_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = comm class (2) */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { - { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xE0, /* bmAttributes (self-powered, remote wakeup) */ - 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x00, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x00, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, - ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32572_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX32572/USB_CDCACM/main.c b/Examples/MAX32572/USB_CDCACM/main.c deleted file mode 100644 index 6d45a15fd91..00000000000 --- a/Examples/MAX32572/USB_CDCACM/main.c +++ /dev/null @@ -1,381 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief USB CDC-ACM example - * @details This project creates a virtual COM port, which loops back data sent to it. - * Load the project, connect a cable from the PC to the USB connector - * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. - * A driver for the COM port, if needed, is located in the Driver/ subdirectory. - * - */ - -#include -#include - -#include - -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "descriptors.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/***** Function Prototypes *****/ -int usbStartupCallback(); -int usbShutdownCallback(); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static int usbReadCallback(void); -static void echoUSB(void); - -/***** File Scope Variables *****/ - -/* This EP assignment must match the Configuration Descriptor */ -static const acm_cfg_t acm_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 3, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - acm_register_callback(ACM_CB_READ_READY, usbReadCallback); - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echoUSB(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete. Waiting for characters...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/* This callback is used to allow the driver to call part specific initialization functions. */ -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkctrl & MXC_F_GCR_CLKCTRL_IPO_EN)) { - MXC_GCR->clkctrl |= MXC_F_GCR_CLKCTRL_IPO_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCTRL_IPO_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static void echoUSB(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - // Read the data from USB - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - // Echo it back - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - return acm_configure(&acm_cfg); /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - return acm_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - acm_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -static int usbReadCallback(void) -{ - usb_read_complete = 1; - return 0; -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -void SysTick_Handler(void) -{ - MXC_DelayHandler(); -} diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.cproject b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.cproject deleted file mode 100644 index 712003513f7..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.cproject +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/launch.json b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/settings.json b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/Makefile deleted file mode 100644 index cb22b3cfc0c..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += mscmem.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=${abspath $(LIBS_DIR)/PeriphDrivers} -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -MAXUSB_DIR=$(LIBS_DIR)/MAXUSB -include $(MAXUSB_DIR)/maxusb.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/README.md b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/README.md deleted file mode 100644 index 7015a80c402..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## Description - -The example demonstartes the use of USB composite device with Mass Storage driver class and CDC-ACM driver class. After doing the required connections given below, run the program and two new devices appear in the device manager, a Portable device and COM Port. The portable device can be read and written to. Open a terminal application on the PC at 9600 baud rate, and echo the characters on the terminal. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -****** MAX32572 USB Composite Device (CDC and Mass Storage) Example ****** -Waiting for VBUS... -VBUS Connect -Suspended -Bus Reset -Bus Reset -Enumeration complete. -``` - diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch deleted file mode 100644 index f38b8117116..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/descriptors.h deleted file mode 100644 index d059d2a79a4..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/descriptors.h +++ /dev/null @@ -1,302 +0,0 @@ -/* ***************************************************************************** - * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2018-07-05 16:28:44 -0500 (Thu, 05 Jul 2018) $ - * $Revision: 36014 $ - * - * - **************************************************************************** */ - -#ifndef EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ -#define EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0xEF, /* bDeviceClass = code specified by interface descriptors */ - 0x02, /* bDeviceSubClass = code specified by interface descriptors */ - 0x01, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0xEF, /* bDeviceClass = Unspecified */ - 0x02, /* bDeviceSubClass */ - 0x01, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) = 98 bytes */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ /// - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/main.c deleted file mode 100644 index fd83e53594b..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/main.c +++ /dev/null @@ -1,426 +0,0 @@ -/* ***************************************************************************** - * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2018-07-18 13:53:37 -0500 (Wed, 18 Jul 2018) $ - * $Revision: 36256 $ - * - **************************************************************************** */ - -#include -#include - -#include - -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; -static volatile int usb_read_complete; - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 3, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 4, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 5, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* **** Function Prototypes **** */ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usbReadCallback(void); -int usbStartupCallback(); -int usbShutdownCallback(); -static void echoUSB(void); - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n****** " TOSTRING( - TARGET) " USB Composite Device (CDC and Mass Storage) Example ******\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - - while (1) {} - } - - if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - acm_register_callback(ACM_CB_READ_READY, usbReadCallback); - - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echoUSB(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkctrl & MXC_F_GCR_CLKCTRL_IPO_EN)) { - MXC_GCR->clkctrl |= MXC_F_GCR_CLKCTRL_IPO_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCTRL_IPO_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - - acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - 0x7; - acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - msc_configure(&msc_cfg, - composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - return acm_configure(&acm_cfg); - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - acm_deconfigure(); - msc_deconfigure(composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - acm_deconfigure(); - msc_deconfigure(composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -static void echoUSB(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - // Read the data from USB - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - // Echo it back - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -static int usbReadCallback(void) -{ - usb_read_complete = 1; - return 0; -} diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/mscmem.c deleted file mode 100644 index 7a211a4f588..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/mscmem.c +++ /dev/null @@ -1,327 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * Description: Communications Device Class ACM (Serial Port) over USB - * $Id: descriptors.h 31172 2017-10-05 19:05:57Z zach.metzinger $ - * - ******************************************************************************* - */ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "mx25.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ - -#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ -#define MX25_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ - -#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ - -#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[MX25_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); - /* Write the new */ - MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(MX25_BAUD); - MX25_Init(); - MX25_Reset(); - - if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { - MX25_Quad(1); - } else { - MX25_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the MX25 contains. */ - return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the MX25 if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/mscmem.h deleted file mode 100644 index 0ca0b8aaf63..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/mscmem.h +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ -#define EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ - -#include - -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ - -int mscmem_Init(void); -int mscmem_Start(void); -int mscmem_Stop(void); -int mscmem_Ready(); -uint32_t mscmem_Size(void); -int mscmem_Read(uint32_t lba, uint8_t *buffer); -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -#endif // EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.cproject b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.cproject deleted file mode 100644 index 83584a0a988..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.cproject +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/launch.json b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/settings.json b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/tasks.json b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/Makefile deleted file mode 100644 index cb22b3cfc0c..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += mscmem.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=${abspath $(LIBS_DIR)/PeriphDrivers} -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -MAXUSB_DIR=$(LIBS_DIR)/MAXUSB -include $(MAXUSB_DIR)/maxusb.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/README.md b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/README.md deleted file mode 100644 index 9339e2ec93a..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/README.md +++ /dev/null @@ -1,34 +0,0 @@ -## Description - -The example demonstartes the use of USB composite device with Mass Storage driver class and HID driver class. After doing the required connections given below, run the program and two new devices appear in the device manager, a Portable device and a HID keyboard device. The portable device can be read and written to. Open any text editor in the PC, pressing the switch SW1 on the evkit wil print out 'Maxin Integrated' in the editor one letter at a time. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** MAX32572 USB Composite Device (Keyboard and Mass Storage) Example ***** -Waiting for VBUS... -VBUS Connect -Suspended -Bus Reset -Bus Reset -Enumeration complete. Press SW2 to send character. -``` diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch deleted file mode 100644 index 35551e4fd79..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/descriptors.h deleted file mode 100644 index ce6be87b508..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/descriptors.h +++ /dev/null @@ -1,232 +0,0 @@ -/* ***************************************************************************** - * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2018-07-05 16:28:44 -0500 (Thu, 05 Jul 2018) $ - * $Revision: 36014 $ - * - * - **************************************************************************** */ - -#ifndef EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ -#define EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0x00, /* bDeviceClass = code specified by interface descriptors */ - 0x00, /* bDeviceSubClass = code specified by interface descriptors */ - 0x00, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x01, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 HID Keyboard */ - MXC_USB_interface_descriptor_t hid_interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0039, /* wTotalLength(L/H) = 57 bytes */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : HID Keyboard **********/ - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x04, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - }, - /********** Interface #1 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { - 0x24, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/main.c deleted file mode 100644 index d3bebcac1c7..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/main.c +++ /dev/null @@ -1,414 +0,0 @@ -/* ***************************************************************************** - * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * $Date: 2018-07-18 13:53:37 -0500 (Wed, 18 Jul 2018) $ - * $Revision: 36256 $ - * - **************************************************************************** */ - -#include -#include - -#include - -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* **** Function Prototypes **** */ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -int usbStartupCallback(); -int usbShutdownCallback(); - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - - while (1) {} - } - - if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, - &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkctrl & MXC_F_GCR_CLKCTRL_IPO_EN)) { - MXC_GCR->clkctrl |= MXC_F_GCR_CLKCTRL_IPO_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCTRL_IPO_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - - msc_configure(&msc_cfg, - composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - return hidkbd_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(composite_config_descriptor.msc_interface_descriptor.bInterfaceNumber); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remote_wake_en) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/mscmem.c deleted file mode 100644 index 7a211a4f588..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/mscmem.c +++ /dev/null @@ -1,327 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * Description: Communications Device Class ACM (Serial Port) over USB - * $Id: descriptors.h 31172 2017-10-05 19:05:57Z zach.metzinger $ - * - ******************************************************************************* - */ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "mx25.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ - -#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ -#define MX25_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ - -#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ - -#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[MX25_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); - /* Write the new */ - MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(MX25_BAUD); - MX25_Init(); - MX25_Reset(); - - if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { - MX25_Quad(1); - } else { - MX25_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the MX25 contains. */ - return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the MX25 if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX32572/USB_CompositeDevice_MSC_HID/mscmem.h deleted file mode 100644 index 2e062de4a5a..00000000000 --- a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/mscmem.h +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ -#define EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ - -#include - -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ - -int mscmem_Init(void); -int mscmem_Start(void); -int mscmem_Stop(void); -int mscmem_Ready(); -uint32_t mscmem_Size(void); -int mscmem_Read(uint32_t lba, uint8_t *buffer); -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -#endif // EXAMPLES_MAX32572_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX32572/USB_HIDKeyboard/.cproject b/Examples/MAX32572/USB_HIDKeyboard/.cproject deleted file mode 100644 index b7a8d5d75cd..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/.cproject +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_HIDKeyboard/.vscode/c_cpp_properties.json b/Examples/MAX32572/USB_HIDKeyboard/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_HIDKeyboard/.vscode/launch.json b/Examples/MAX32572/USB_HIDKeyboard/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_HIDKeyboard/.vscode/settings.json b/Examples/MAX32572/USB_HIDKeyboard/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/USB_HIDKeyboard/.vscode/tasks.json b/Examples/MAX32572/USB_HIDKeyboard/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_HIDKeyboard/Makefile b/Examples/MAX32572/USB_HIDKeyboard/Makefile deleted file mode 100644 index db1000d7252..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/Makefile +++ /dev/null @@ -1,157 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=${abspath $(LIBS_DIR)/PeriphDrivers} -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -MAXUSB_DIR=$(LIBS_DIR)/MAXUSB -include $(MAXUSB_DIR)/maxusb.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/USB_HIDKeyboard/README.md b/Examples/MAX32572/USB_HIDKeyboard/README.md deleted file mode 100644 index c2002ac9293..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/README.md +++ /dev/null @@ -1,34 +0,0 @@ -## Description - -The example demonstartes the use of USB HID driver class. After doing the required connections given below, run the program and a new HID keyboard device appears in the device manager. Open any text editor in the PC, pressing the switch SW1 on the evkit wil print out 'Maxin Integrated' in the editor one letter at a time. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -***** MAX32572 USB HID Keyboard Example ***** -Waiting for VBUS... -VBUS Connect -Suspended -Bus Reset -Bus Reset -Enumeration complete. Press SW1 to send character. -``` diff --git a/Examples/MAX32572/USB_HIDKeyboard/USB_HIDKeyboard.launch b/Examples/MAX32572/USB_HIDKeyboard/USB_HIDKeyboard.launch deleted file mode 100644 index 5aedd996584..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/USB_HIDKeyboard.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_HIDKeyboard/descriptors.h b/Examples/MAX32572/USB_HIDKeyboard/descriptors.h deleted file mode 100644 index 9c71deb21d8..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/descriptors.h +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_USB_HIDKEYBOARD_DESCRIPTORS_H_ -#define EXAMPLES_MAX32572_USB_HIDKEYBOARD_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor; -} config_descriptor = { { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0022, /* wTotalLength(L/H) = 34 bytes */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x00, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x00, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - } }; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x2c, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, - 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32572_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX32572/USB_HIDKeyboard/main.c b/Examples/MAX32572/USB_HIDKeyboard/main.c deleted file mode 100644 index 52ed4a3c633..00000000000 --- a/Examples/MAX32572/USB_HIDKeyboard/main.c +++ /dev/null @@ -1,371 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device - * @details The EvKit should enumerate as a HID Keyboard device after loading the project and - * attaching a cable from the PC to the USB connector on the Evaluation Kit. - * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. - * 2. Open a text editor on the PC host and place cursor in edit box. - * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. - * - */ - -#include -#include - -#include - -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "descriptors.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -int remoteWake; -volatile int configured; -volatile int suspended; -volatile unsigned int evtFlags; - -/***** Function Prototypes *****/ -int usbStartupCallback(); -int usbShutdownCallback(); -void usDelay(unsigned int usec); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - evtFlags = 0; - remoteWake = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = usDelay; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, - report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (evtFlags) { - /* Display events */ - if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW1 to send character.\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkctrl & MXC_F_GCR_CLKCTRL_IPO_EN)) { - MXC_GCR->clkctrl |= MXC_F_GCR_CLKCTRL_IPO_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCTRL_IPO_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -/* User-supplied function to delay usec micro-seconds */ -void usDelay(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remoteWake) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); - return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - return hidkbd_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&evtFlags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} diff --git a/Examples/MAX32572/USB_MassStorage/.cproject b/Examples/MAX32572/USB_MassStorage/.cproject deleted file mode 100644 index 176645a2e5d..00000000000 --- a/Examples/MAX32572/USB_MassStorage/.cproject +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_MassStorage/.vscode/c_cpp_properties.json b/Examples/MAX32572/USB_MassStorage/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/USB_MassStorage/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_MassStorage/.vscode/launch.json b/Examples/MAX32572/USB_MassStorage/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/USB_MassStorage/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_MassStorage/.vscode/settings.json b/Examples/MAX32572/USB_MassStorage/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/USB_MassStorage/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/USB_MassStorage/.vscode/tasks.json b/Examples/MAX32572/USB_MassStorage/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/USB_MassStorage/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/USB_MassStorage/Makefile b/Examples/MAX32572/USB_MassStorage/Makefile deleted file mode 100644 index cb22b3cfc0c..00000000000 --- a/Examples/MAX32572/USB_MassStorage/Makefile +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += mscmem.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=${abspath $(LIBS_DIR)/PeriphDrivers} -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -MAXUSB_DIR=$(LIBS_DIR)/MAXUSB -include $(MAXUSB_DIR)/maxusb.mk -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/USB_MassStorage/README.md b/Examples/MAX32572/USB_MassStorage/README.md deleted file mode 100644 index 0ecbd68aa29..00000000000 --- a/Examples/MAX32572/USB_MassStorage/README.md +++ /dev/null @@ -1,32 +0,0 @@ -## Description - -The example demonstartes the use of USB Mass Storage driver class. After doing the required connections given below, run the program and a new portable device appears in the device manager. It will appear as a new drive which can be read and written to. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -``` -***** MAX32572 USB Mass Storage Example ***** -Waiting for VBUS... -VBUS Connect -Suspended -Bus Reset -Bus Reset -Enumeration complete. -``` diff --git a/Examples/MAX32572/USB_MassStorage/USB_MassStorage.launch b/Examples/MAX32572/USB_MassStorage/USB_MassStorage.launch deleted file mode 100644 index fc9dd75f084..00000000000 --- a/Examples/MAX32572/USB_MassStorage/USB_MassStorage.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/USB_MassStorage/descriptors.h b/Examples/MAX32572/USB_MassStorage/descriptors.h deleted file mode 100644 index 47d6f15aeea..00000000000 --- a/Examples/MAX32572/USB_MassStorage/descriptors.h +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_USB_MASSSTORAGE_DESCRIPTORS_H_ -#define EXAMPLES_MAX32572_USB_MASSSTORAGE_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" -#include "usb_protocol.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = mass storage (0) */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } }; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x38, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, - 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, - 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) -uint8_t serial_id_desc[] = { 26, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32572_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX32572/USB_MassStorage/main.c b/Examples/MAX32572/USB_MassStorage/main.c deleted file mode 100644 index 4a1c20fade8..00000000000 --- a/Examples/MAX32572/USB_MassStorage/main.c +++ /dev/null @@ -1,352 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/** - * @file main.c - * @brief USB Mass Storage Class example - * @details This project creates a mass storage device using either on-board RAM or - * external SPI flash memory. Load the project, connect a cable from the PC - * to the USB connector. A new external drive should appear than can be read - * and written. - */ - -#include -#include - -#include - -#include "usb.h" -#include "usb_event.h" -#include "usb_protocol.h" -#include "enumerate.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -int remoteWake; -volatile int configured; -volatile int suspended; -volatile unsigned int evtFlags; - -/***** Function Prototypes *****/ -int usbStartupCallback(); -int usbShutdownCallback(); -void usDelay(unsigned int usec); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); - -/***** File Scope Variables *****/ - -/* This EP assignment must match the Configuration Descriptor */ -static const msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/******************************************************************************/ -void SysTick_Handler(void) -{ - MXC_DelayHandler(); -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - evtFlags = 0; - remoteWake = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = usDelay; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - - while (1) {} - } - - /* Register callback */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (evtFlags) { - /* Display events */ - if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); - printf("Enumeration complete.\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/* This callback is used to allow the driver to call part specific initialization functions. */ -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkctrl & MXC_F_GCR_CLKCTRL_IPO_EN)) { - MXC_GCR->clkctrl |= MXC_F_GCR_CLKCTRL_IPO_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCTRL_IPO_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* User-supplied function to delay usec micro-seconds */ -/******************************************************************************/ -void usDelay(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); - return msc_configure(&msc_cfg, config_descriptor.msc_interface_descriptor - .bInterfaceNumber); /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - return msc_deconfigure(config_descriptor.msc_interface_descriptor.bInterfaceNumber); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&evtFlags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(config_descriptor.msc_interface_descriptor.bInterfaceNumber); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(config_descriptor.msc_interface_descriptor.bInterfaceNumber); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} diff --git a/Examples/MAX32572/USB_MassStorage/mscmem.c b/Examples/MAX32572/USB_MassStorage/mscmem.c deleted file mode 100644 index 7a211a4f588..00000000000 --- a/Examples/MAX32572/USB_MassStorage/mscmem.c +++ /dev/null @@ -1,327 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - * Description: Communications Device Class ACM (Serial Port) over USB - * $Id: descriptors.h 31172 2017-10-05 19:05:57Z zach.metzinger $ - * - ******************************************************************************* - */ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "mx25.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ - -#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ -#define MX25_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ - -#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ - -#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[MX25_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); - /* Write the new */ - MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(MX25_BAUD); - MX25_Init(); - MX25_Reset(); - - if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { - MX25_Quad(1); - } else { - MX25_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the MX25 contains. */ - return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the MX25 if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32572/USB_MassStorage/mscmem.h b/Examples/MAX32572/USB_MassStorage/mscmem.h deleted file mode 100644 index 1a3eb91a15b..00000000000 --- a/Examples/MAX32572/USB_MassStorage/mscmem.h +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32572_USB_MASSSTORAGE_MSCMEM_H_ -#define EXAMPLES_MAX32572_USB_MASSSTORAGE_MSCMEM_H_ - -#include - -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ - -int mscmem_Init(void); -int mscmem_Start(void); -int mscmem_Stop(void); -int mscmem_Ready(); -uint32_t mscmem_Size(void); -int mscmem_Read(uint32_t lba, uint8_t *buffer); -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -#endif // EXAMPLES_MAX32572_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX32572/Watchdog/.cproject b/Examples/MAX32572/Watchdog/.cproject deleted file mode 100644 index 8f6a0efae18..00000000000 --- a/Examples/MAX32572/Watchdog/.cproject +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Watchdog/.project b/Examples/MAX32572/Watchdog/.project deleted file mode 100644 index 3b965cc27c1..00000000000 --- a/Examples/MAX32572/Watchdog/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - Watchdog - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/Watchdog/.vscode/c_cpp_properties.json b/Examples/MAX32572/Watchdog/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/Watchdog/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/Watchdog/.vscode/launch.json b/Examples/MAX32572/Watchdog/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/Watchdog/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Watchdog/.vscode/settings.json b/Examples/MAX32572/Watchdog/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/Watchdog/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/Watchdog/.vscode/tasks.json b/Examples/MAX32572/Watchdog/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/Watchdog/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/Watchdog/ARM/Abstract.txt b/Examples/MAX32572/Watchdog/ARM/Abstract.txt deleted file mode 100644 index b5cef133386..00000000000 --- a/Examples/MAX32572/Watchdog/ARM/Abstract.txt +++ /dev/null @@ -1 +0,0 @@ -Hello World Example! \ No newline at end of file diff --git a/Examples/MAX32572/Watchdog/ARM/JLinkSettings.ini b/Examples/MAX32572/Watchdog/ARM/JLinkSettings.ini deleted file mode 100644 index 39b6d054aa3..00000000000 --- a/Examples/MAX32572/Watchdog/ARM/JLinkSettings.ini +++ /dev/null @@ -1,39 +0,0 @@ -[BREAKPOINTS] -ForceImpTypeAny = 0 -ShowInfoWin = 1 -EnableFlashBP = 2 -BPDuringExecution = 0 -[CFI] -CFISize = 0x00 -CFIAddr = 0x00 -[CPU] -MonModeVTableAddr = 0xFFFFFFFF -MonModeDebug = 0 -MaxNumAPs = 0 -LowPowerHandlingMode = 0 -OverrideMemMap = 0 -AllowSimulation = 1 -ScriptFile="" -[FLASH] -CacheExcludeSize = 0x00 -CacheExcludeAddr = 0x00 -MinNumBytesFlashDL = 0 -SkipProgOnCRCMatch = 1 -VerifyDownload = 1 -AllowCaching = 1 -EnableFlashDL = 2 -Override = 0 -Device="ARM7" -[GENERAL] -WorkRAMSize = 0x00 -WorkRAMAddr = 0x00 -RAMUsageLimit = 0x00 -[SWO] -SWOLogFile="" -[MEM] -RdOverrideOrMask = 0x00 -RdOverrideAndMask = 0xFFFFFFFF -RdOverrideAddr = 0xFFFFFFFF -WrOverrideOrMask = 0x00 -WrOverrideAndMask = 0xFFFFFFFF -WrOverrideAddr = 0xFFFFFFFF diff --git a/Examples/MAX32572/Watchdog/ARM/Watchdog.uvoptx b/Examples/MAX32572/Watchdog/ARM/Watchdog.uvoptx deleted file mode 100644 index 2b13772ff77..00000000000 --- a/Examples/MAX32572/Watchdog/ARM/Watchdog.uvoptx +++ /dev/null @@ -1,296 +0,0 @@ - - - - 1.0 - -
### uVision Project, (C) Keil Software
- - - *.c - *.s*; *.src; *.a* - *.obj - *.lib - *.txt; *.h; *.inc - *.plm - *.cpp - 0 - - - - 0 - 0 - - - - Flash Debug - 0x4 - ARM-ADS - - 96000000 - - 1 - 1 - 0 - 1 - 0 - - - 1 - 65535 - 0 - 0 - 0 - - - 79 - 66 - 8 - .\Listings\ - - - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - - - 1 - 0 - 1 - - 255 - - - 0 - Evaluation Kit Datasheet and Configuration (MAX32630_EVKIT) - C:\Keil_v522\ARM\PACK\Maxim\MAX32630\0.0.0-1.alpha\Documents\MAX32630_EVKIT_Datasheet.pdf - - - 1 - Schematic (MAX32630_EVKIT) - C:\Keil_v522\ARM\PACK\Maxim\MAX32630\0.0.0-1.alpha\Documents\MAX32630_EVKIT_Schematic.pdf - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 1 - 1 - 0 - 0 - 1 - 3 - - - - - - - - - - - Segger\JL2CM3.dll - - - - 0 - DLGUARM - / - - - 0 - ARMRTXEVENTFLAGS - -L70 -Z18 -C0 -M0 -T1 - - - 0 - DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=105,140,543,412,0)(1009=-1,-1,-1,-1,0) - - - 0 - ARMDBGFLAGS - - - - 0 - JL2CM3 - -U228204079 -O47 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -N01("Unknown JTAG device") -D01(07F6C197) -L01(4) -TO18 -TC96000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0MAX32630.FLM -FS00 -FL0200000 -FP0($$Device:MAX32630$Flash\MAX32630.FLM) - - - 0 - UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0MAX32630 -FS00 -FL0200000 -FP0($$Device:MAX32630$Flash\MAX32630.FLM)) - - - - - - 1 - 0 - 0x4001F000 - 0 - - - - 0 - - - 0 - 1 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - - 1 - 0 - 1 - 1000000 - - - - - - Source - 1 - 0 - 0 - 0 - - 1 - 1 - 1 - 0 - 0 - 0 - ..\main.c - main.c - 0 - 0 - - - 1 - 2 - 5 - 0 - 0 - 0 - .\Abstract.txt - Abstract.txt - 0 - 0 - - - - - ::BSP - 0 - 0 - 0 - 1 - - - - ::CMSIS - 0 - 0 - 0 - 1 - - - - ::Communications - 0 - 0 - 0 - 1 - - - - ::Device - 0 - 0 - 0 - 1 - - - - ::HAL - 0 - 0 - 0 - 1 - - - - ::Peripherals - 0 - 0 - 0 - 1 - - -
diff --git a/Examples/MAX32572/Watchdog/ARM/Watchdog.uvprojx b/Examples/MAX32572/Watchdog/ARM/Watchdog.uvprojx deleted file mode 100644 index 9161d46f2e6..00000000000 --- a/Examples/MAX32572/Watchdog/ARM/Watchdog.uvprojx +++ /dev/null @@ -1,563 +0,0 @@ - - - - 2.1 - -
### uVision Project, (C) Keil Software
- - - - Flash Debug - 0x4 - ARM-ADS - 5060422::V5.06 update 4 (build 422)::ARMCC - - - MAX32630 - Maxim - Maxim.MAX32630.0.0.0-1.alpha - http://dal-mac-cware.maxim-ic.com/tools/pack/ - IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00200000) CPUTYPE("Cortex-M4") FPU2 CLOCK(96000000) ELITTLE - - - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0MAX32630 -FS00 -FL0200000 -FP0($$Device:MAX32630$Flash\MAX32630.FLM)) - 0 - $$Device:MAX32630$Libraries\Device\Maxim\MAX32630\Include\max32630.h - - - - - - - - - - $$Device:MAX32630$SVD\MAX32630\max32630.svd - 0 - 0 - - - - - - - 0 - 0 - 0 - 0 - 1 - - .\Objects\ - Watchdog - 1 - 0 - 0 - 1 - 1 - .\Listings\ - 1 - 0 - 0 - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - 0 - 0 - - 1 - - - - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 3 - - - 1 - - - SARMCM3.DLL - - DCM.DLL - -pCM4 - SARMCM3.DLL - - TCM.DLL - -pCM4 - - - - 1 - 0 - 0 - 0 - 16 - - - - - 1 - 0 - 0 - 1 - 1 - 4096 - - 1 - BIN\UL2CM3.DLL - "" () - - - - - 0 - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - "Cortex-M4" - - 0 - 0 - 0 - 1 - 1 - 0 - 0 - 2 - 0 - 0 - 8 - 1 - 0 - 0 - 0 - 3 - 3 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x20000 - - - 1 - 0x0 - 0x200000 - - - 0 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x200000 - - - 1 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x20000 - - - 0 - 0x0 - 0x0 - - - - - - 1 - 1 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 2 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - - --diag_suppress=1295,1296 --library_type=microlib - TARGET=MAX32630, TARGET_REV=0x4132, BOARD=EvKit_V1 - - - - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - 1 - 0 - 0 - 0 - 1 - 0 - 0x00000000 - 0x20000000 - - - - - - - - - - - - - Source - - - main.c - 1 - ..\main.c - - - Abstract.txt - 5 - .\Abstract.txt - - - - - ::BSP - - - ::CMSIS - - - ::Communications - - - ::Device - - - ::HAL - - - ::Peripherals - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RTE\Device\MAX32630\max32630.h - - - - - - - - RTE\Device\MAX32630\startup_max32630.s - - - - - - - - RTE\Device\MAX32630\system_max32630.c - - - - - - - - RTE\HAL\MAX32630\max32630.h - - - - - - - - RTE\HAL\MAX32630\mxc_device.h - - - - - - - - - -
diff --git a/Examples/MAX32572/Watchdog/Makefile b/Examples/MAX32572/Watchdog/Makefile deleted file mode 100644 index 0c8c1473311..00000000000 --- a/Examples/MAX32572/Watchdog/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/Watchdog/README.md b/Examples/MAX32572/Watchdog/README.md deleted file mode 100644 index fdd1248c6b3..00000000000 --- a/Examples/MAX32572/Watchdog/README.md +++ /dev/null @@ -1,41 +0,0 @@ -## Description - -A demonstration of the watchdog timer. - -When the application begins, it initializes and starts the watchdog timer. The application then begins to reset the watchdog. Use PB1 on the evaluation kit to control if and when the application attempts to reset the timer. - -- Push PB1 to trigger the watchdog reset. This will stop resetting the watchdog timer until it generates the interrupt. After that it will reset the watchdog timer only once, allowing it to pass the reset timeout period. - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -************** Watchdog Timer Demo **************** -Press a button to create watchdog interrupt or reset: -SW2 (P0.16)= reset program -SW3 (P0.17)= timeout interrupt - -Enabling Timeout Interrupt... - -TIMEOUT! - -Watchdog reset -``` diff --git a/Examples/MAX32572/Watchdog/Watchdog.launch b/Examples/MAX32572/Watchdog/Watchdog.launch deleted file mode 100644 index 10d81aa51d3..00000000000 --- a/Examples/MAX32572/Watchdog/Watchdog.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/Watchdog/main.c b/Examples/MAX32572/Watchdog/main.c deleted file mode 100644 index 726f2d2d4a8..00000000000 --- a/Examples/MAX32572/Watchdog/main.c +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/* - * @file main.c - * @brief Demonstrates a watchdog timer in run mode - * - * @details When the program starts LED3 blinks three times and stops. - * Then LED0 start blinking continuously. - * Open a terminal program to see interrupt messages. - * - * SW2: Push SW2 to trigger a watchdog reset. This will reset the watchdog before - * the wait period has expired and trigger an interrupt. - * - * SW3: Push SW3 to trigger a delay and see LED0 stop blinking momentarily. - * This delay long enough for the timeout period to expire and trigger an interrupt. - * - * SW3: Push SW3 to trigger a longer delay and see the program restart by blinking LED3 three times. - * This delay is long enough for the reset period to expire and trigger a reset. - */ - -/***** Includes *****/ -#include -#include - -#include - -/***** Definitions *****/ -/***** Globals *****/ -//use push buttons defined in board.h -extern const mxc_gpio_cfg_t pb_pin[]; -extern const mxc_gpio_cfg_t led_pin[]; - -// refers to array, do not change constants -#define SW1 0 -#define LED 0 -/***** Functions *****/ - -// ***************************************************************************** -void watchdogHandler() -{ - //get and clear flag - MXC_WDT_GetIntFlag(MXC_WDT0); - MXC_WDT_ClearIntFlag(MXC_WDT0); - printf("TIMEOUT! \n"); -} - -// ***************************************************************************** -void WDT0_IRQHandler(void) -{ - watchdogHandler(); -} -// ***************************************************************************** -void MXC_WDT_Setup() -{ - MXC_WDT_Disable(MXC_WDT0); - MXC_WDT_Enable(MXC_WDT0); -} - -// ***************************************************************************** -int main(void) -{ - MXC_WDT_Init(MXC_WDT0); - - if (MXC_WDT_GetResetFlag(MXC_WDT0)) { - MXC_WDT_ClearResetFlag(MXC_WDT0); - MXC_WDT_EnableReset(MXC_WDT0); - MXC_WDT_Enable(MXC_WDT0); - printf("Watchdog reset\n"); - } - - printf("\n************** Watchdog Timer Demo ****************\n"); - printf("Press a button to create watchdog interrupt or reset:\n"); - printf("SW2 (P0.16)= reset program\n"); - printf("SW3 (P0.17)= timeout interrupt\n\n"); - - //Blink LED - MXC_GPIO_OutClr(led_pin[0].port, led_pin[0].mask); - - //Blink LED three times at startup - int numBlinks = 3; - - while (numBlinks) { - MXC_GPIO_OutSet(led_pin[0].port, led_pin[0].mask); - MXC_Delay(MXC_DELAY_MSEC(100)); - MXC_GPIO_OutClr(led_pin[0].port, led_pin[0].mask); - MXC_Delay(MXC_DELAY_MSEC(100)); - numBlinks--; - } - - //Setup watchdog - MXC_WDT_Setup(); - - while (1) { - //Push SW1 to reset watchdog - if (MXC_GPIO_InGet(pb_pin[SW1].port, pb_pin[SW1].mask) == 0) { - printf("Enabling Timeout Interrupt...\n"); - MXC_WDT_SetResetPeriod(MXC_WDT0, MXC_WDT_PERIOD_2_27); - MXC_WDT_SetIntPeriod(MXC_WDT0, MXC_WDT_PERIOD_2_26); - MXC_WDT_EnableReset(MXC_WDT0); - MXC_WDT_EnableInt(MXC_WDT0); - NVIC_EnableIRQ(WDT0_IRQn); - - while (1) {} - } - - //blink LED0 - MXC_Delay(MXC_DELAY_MSEC(500)); - MXC_GPIO_OutSet(led_pin[0].port, led_pin[0].mask); - MXC_Delay(MXC_DELAY_MSEC(500)); - MXC_GPIO_OutClr(led_pin[0].port, led_pin[0].mask); - - //Reset watchdog - MXC_WDT_ResetTimer(MXC_WDT0); - } -} diff --git a/Examples/MAX32572/WearLeveling/.cproject b/Examples/MAX32572/WearLeveling/.cproject deleted file mode 100644 index 41986f0c526..00000000000 --- a/Examples/MAX32572/WearLeveling/.cproject +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/WearLeveling/.project b/Examples/MAX32572/WearLeveling/.project deleted file mode 100644 index 6e17569048a..00000000000 --- a/Examples/MAX32572/WearLeveling/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - WearLeveling - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/WearLeveling/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32572/WearLeveling/.settings/org.eclipse.cdt.core.prefs deleted file mode 100644 index 388dbfff576..00000000000 --- a/Examples/MAX32572/WearLeveling/.settings/org.eclipse.cdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/BOARD/value=EvKit_V1 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/operation=replace -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/GCC_PREFIX/value=arm-none-eabi- -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/PROJECT/value=WearLeveling -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/delimiter=; -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/operation=append -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/TARGET/value=MAX32572 -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/append=true -environment/project/cdt.managedbuild.toolchain.gnu.cross.base.1028364529/appendContributed=true diff --git a/Examples/MAX32572/WearLeveling/.vscode/README.md b/Examples/MAX32572/WearLeveling/.vscode/README.md deleted file mode 100644 index d289bba0d6b..00000000000 --- a/Examples/MAX32572/WearLeveling/.vscode/README.md +++ /dev/null @@ -1,550 +0,0 @@ -# VSCode-Maxim - -_(If you're viewing this document from within Visual Studio Code you can press `CTRL+SHIFT+V` to open a Markdown preview window.)_ - -## Quick Links - -* [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * If it's not in the README, check the UG. - * If it's not in the UG, open a ticket! -* [VSCode-Maxim Github](https://github.com/Analog-Devices-MSDK/VSCode-Maxim) - -## Introduction - -VSCode-Maxim is a set of [Visual Studio Code](https://code.visualstudio.com/) project configurations and utilities for enabling embedded development for [Analog Device's MSDK](https://github.com/Analog-Devices-MSDK/msdk) and the [MAX32xxx/MAX78xxx microcontrollers](https://www.analog.com/en/product-category/microcontrollers.html). - -The following features are supported: - -* Code editing with intellisense down to the register level -* Code compilation with the ability to easily re-target a project for different microcontrollers and boards -* Flashing programs -* GUI and command-line debugging - -## Dependencies - -* [Visual Studio Code](https://code.visualstudio.com/) - * [C/C++ VSCode Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) - * [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) -* [Analog Devices MSDK](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - -## Installation - -The steps below are also available in video form in "Understanding Artificial Intelligence Episode 8.5 - Visual Studio Code" [here](https://www.analog.com/en/education/education-library/videos/6313212752112.html). - -1. Download and install the Analog Devices MSDK for your OS from the links below. For more detailed instructions on installing the MSDK, see the [MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/) - * [Windows](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0010820A) - * [Linux (Ubuntu)](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018720A) - * [MacOS](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download?swpart=SFW0018610A) - -2. Run the installer executable, and ensure that "Visual Studio Code Support" is enabled for your installation. - - ![Selected Components](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/installer_components.JPG) - -3. Finish the MSDK installation, taking note of where the MSDK was installed. - -4. Download & install Visual Studio Code for your OS [here](https://code.visualstudio.com/Download). - -5. Launch Visual Studio Code. - -6. Install the Microsoft [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools). - -7. Install the [Cortex-Debug Extension](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) - -8. Use `CTRL + SHIFT + P` (or `COMMAND + SHIFT + P` on MacOS) to open the developer prompt. - -9. Type "open settings json" and select the "Preferences: Open Settings (JSON)" option (_not_ the "Preferences: Open _Default_ Settings (JSON)"). This will open your user settings.json file in VS Code's editor. - - ![Open Settings JSON Command](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/open_settings_json.jpg) - -10. Add the entries below into your user settings.json file. - - ```json - { - // There may be other settings up here... - - "MAXIM_PATH":"C:/MaximSDK", // Set this to the installed location of the Analog Devices MSDK. Only use forward slashes '/' when setting this path! - "update.mode": "manual", - "extensions.autoUpdate": false, - - // There may be other settings down here... - } - ``` - -11. Save your changes to the file with `CTRL + S` and restart VS Code. - -12. That's it! You're ready to start using Visual Studio Code to develop with Analog Devices MAX-series Microcontrollers. The MSDK examples come pre-populated with .vscode project folders, and the `Tools/VSCode-Maxim` folder of the MSDK contains documentation and templates. See [Usage](#usage) below for more details. - -## Usage - -This section covers basic usage of the VSCode-Maxim project files. For documentation on Visual Studio Code itself, please refer to the official docs [here](https://code.visualstudio.com/Docs). - -### Opening Projects - -Visual Studio Code is built around a "working directory" paradigm. The editor is always rooted in a working directory, and the main mechanism for changing that directory is `File -> Open Folder...`. - -![File -> Open Folder](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/file_openfolder.JPG) - -As a result, you'll notice that there is no "New Project" mechanism. A "project" in VS Code is simply a folder. It will look inside of the opened folder for a `.vscode` _sub_-folder to load project-specific settings from. - -A project that is configured for VS Code will have, at minimum, a .vscode sub-folder and a Makefile in its directory _(Note: You may need to enable viewing of hidden items in your file explorer to see the .vscode sub-folder)_. - -Ex: - -![Example Directory Contents](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/opening_projects_2.jpg) - -### Where to Find Projects - -The [Examples](https://github.com/Analog-Devices-MSDK/msdk/tree/main/Examples) in the MSDK come with with pre-configured .vscode project folders. These projects can be opened "out of the box", but it's good practice to copy example folders _outside_ of the MSDK so that the original copies are kept as clean references. The examples can be freely moved to any location _without a space in its path_. - -Additionally, empty project templates and a drag-and-drop folder for "injecting" a VSCode-Maxim project can be found under `Tools/VSCode-Maxim` in the MSDK installation. - -### Build Tasks - -Once a project is opened 4 available build tasks will become available via `Terminal > Run Build task...` or the shortcut `Ctrl+Shift+B`. These tasks are configured by the `.vscode/task.json` file. - -![Build Tasks Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/buildtasks.JPG) - -#### Build - -* Compiles the code with a `make all` command. -* Additional options are passed into Make on the command-line based on the project's settings.json file. -* The `./build` directory will be created and will contain the output binary, as well as all intermediary object files. - -#### Clean - -* Cleans the build output, removing the `./build` directory and all of its contents. - -#### Clean-Periph - -* This task is the same as 'clean', but it also removes the build output for the MSDK's peripheral drivers. -* Use this if you would like to recompile the peripheral drivers from source on the next build. - -#### Flash - -* Launching this task automatically runs the `Build` task first. Then, it flashes the output binary to the microcontroller. -* It uses the GDB `load` and `compare-sections` commands, and handles launching an OpenOCD internally via a pipe connection. -* The flashed program will be halted until the microcontroller is reset, power cycled, or a debugger is connected. -* A debugger must be connected correctly to use this task. Refer to the datasheet of your microcontroller's evaluation board for instructions. - -#### Flash & Run - -* This is the same as the `Flash` task, but it also will launch execution of the program once flashing is complete. - -#### Erase Flash - -* Completely erases all of the application code in the flash memory bank. -* Once complete, the target microcontroller will be effectively "blank". -* This can be useful for recovering from Low-Power (LP) lockouts, bad firmware, etc. - -### Debugging - -![Debug Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger.JPG) - -Debugging is enabled by Visual Studio Code's integrated debugger. Launch configurations can be found in the `.vscode/launch.json` file. - -* Note: **Flashing does not happen automatically when launching the debugger.** Run the "Flash" [build task](#build-tasks) for your program _before_ debugging. - -#### Debugger Limitations - -In general, the MAX-series microcontrollers have the following debugger limitations at the hardware level: - -* The debugger can not be connected _while_ the device is in reset. - -* The device can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode. These modes shut down the SWD clock. - -* These limitations can sometimes make the device difficult or impossible to connect to if firmware has locked out the debugger. In such cases, the ["Erase Flash"](#erase-flash) task can be used to recover the part. - -#### Launching the Debugger - -1. Attach your debugger to the SWD port on the target microcontroller. (Refer to the datasheet of your evaluation board for instructions on connecting a debugger) - -2. Flash the program to the microcontroller with the "Flash" [Build Task](#build-tasks). **Flashing does not happen automatically when launching the debugger.** - -3. Launch the debugger with `Run > Start Debugging`, with the shortcut `F5`, or via the `Run and Debug` window (Ctrl + Shift + D) and the green "launch" arrow. - - ![Debug Tab](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_window.JPG) - -4. The debugger will launch a GDB client & OpenOCD server, reset the microcontroller, and should break on entry into `main`. - - ![Debugger Break on Main](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_breakmain.JPG) - -#### Using the Debugger - -* For full usage details, please refer to the [official VS Code debugger documentation](https://code.visualstudio.com/docs/editor/debugging). - -The main interface for the debugger is the debugger control bar: - -![Debugger Control Bar Image](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/debugger_bar.JPG) - -`Continue | Step Over | Step Into | Step Out | Restart | Stop` - -Breakpoints can be set by clicking in the space next to the line number in a source code file. A red dot indicates a line to break on. Breakpoints can be removed by clicking on them again. Ex: - -![Breakpoint](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/breakpoint.JPG) - -## Project Configuration - -### Project Settings - -`.vscode/settings.json` is the main project configuration file. Values set here are parsed into the other .json config files. - -**When a change is made to this file, VS Code should be reloaded with CTRL+SHIFT+P -> Reload Window (or alternatively restarted completely) to force a re-parse.** - -![Reload Window](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/reload_window.JPG) - -The default project configuration should work for most use cases as long as `"target"` and `"board"` are set correctly. - -Any field from `settings.json` can be referenced from any other config file (including itself) with `"${config:[fieldname]}"` - -The following configuration options are available: - -### Basic Config Options - -#### `"target"` - -* This sets the target microcontroller for the project. -* It sets the `TARGET` [Build Configuration](#build-configuration) variable. -* Supported values: - * `"MAX32520"` - * `"MAX32570"` - * `"MAX32650"` - * `"MAX32655"` - * `"MAX32660"` - * `"MAX32662"` - * `"MAX32665"` (for MAX32665-MAX32668) - * `"MAX32670"` - * `"MAX32672"` - * `"MAX32675"` - * `"MAX32680"` - * `"MAX32690"` - * `"MAX78000"` - * `"MAX78002"` - -#### `"board"` - -* This sets the target board for the project (ie. Evaluation Kit, Feather board, etc.) -* Supported values: - * ... can be found in the `Libraries/Boards` folder of the MSDK - * For example, the supported options for the MAX78000 are `"EvKit_V1"`, `"FTHR_RevA"`, and `"MAXREFDES178"`. - - ![MAX78000 Boards](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/main/img/78000_boards.JPG) - -### Advanced Config Options - -#### `"MAXIM_PATH"` - -* This option must point to the root installation directory of the MSDK. -* It should be placed in the _global_ user settings.json file during first-time VSCode-Maxim setup. See [Installation](#installation). - -#### `"terminal.integrated.env.[platform]:Path"` - -* This prepends the location of the MSDK toolchain binaries to the system `Path` used by VSCode's integrated terminal. -* The Path is not sanitized by default, which means that the terminal inherits the system path. -* Don't touch unless you know what you're doing :) - -#### `"project_name"` - -* Sets the name of project. This is used in other config options such as `program_file`. -* Default value: `"${workspaceFolderBasename}"` - -#### `"program_file"` - -* Sets the name of the file to flash and debug. This is provided in case it's needed, but for most use cases should be left at its default. -* File extension must be included. -* Default value: `"${config:project_name}.elf"` - -#### `"symbol_file"` - -* Sets the name of the file that GDB will load debug symbols from. -* File extension must be included. -* Default value: `"${config:program_file}"` - -#### `"M4_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the Arm M4 core. This should match the debugger being used for the M4 core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"cmsis-dap.cfg"` - -#### `"M4_OCD_target_file"` - -* Sets the OpenOCD target file to use for the Arm M4 core. This should match the target microcontroller. -* `.cfg` file extension must be included. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* Default value: `"${config:target}.cfg"` - -#### `"RV_OCD_interface_file"` - -* Sets the OpenOCD interface file to use to connect to the RISC-V core. This should match the debugger being used for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/interface` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"ftdi/olimex-arm-usb-ocd-h.cfg"` - -#### `"RV_OCD_target_file"` - -* Sets the OpenOCD target file to use for the RISC-V core. -* The `MaximSDK/Tools/OpenOCD/scripts/target` folder is searched for the file specified by this setting. -* `.cfg` file extension must be included. -* Default value: `"${config:target}_riscv.cfg"` - -#### `"v_Arm_GCC"` - -* Sets the version of the Arm Embedded GCC to use, including toolchain binaries and the standard library version. -* This gets parsed into `ARM_GCC_path`. -* Default value: `"10.3"` - -#### `"v_xPack_GCC"` - -* Sets the version of the xPack RISC-V GCC to use. -* This gets parsed into `xPack_GCC_path`. -* Default value: `"10.2.0-1.2"` - -#### `"OCD_path"` - -* Where to find the OpenOCD. -* Default value: `"${config:MAXIM_PATH}/Tools/OpenOCD"` - -#### `"ARM_GCC_path"` - -* Where to find the Arm Embedded GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}"` - -#### `"xPack_GCC_path"` - -* Where to find the RISC-V GCC Toolchain. -* Default value: `"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}"` - -#### `"Make_path"` - -* Where to find Make binaries (only used on Windows) -* Default value: `"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin"` - -#### `"C_Cpp.default.includePath"` - -* Which paths to search to find header (.h) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.browse.path"` - -* Which paths to search to find source (.c) files. -* Does not recursively search by default. To recursively search, use `/**`. - -#### `"C_Cpp.default.defines"` - -* Sets the compiler definitions to use for the intellisense engine. -* Most definitions should be defined in header files, but if a definition is missing it can be entered here to get the intellisense engine to recognize it. - -### Setting Search Paths for Intellisense - -VS Code's intellisense engine must be told where to find the header files for your source code. By default, the MSDK's peripheral drivers, the C standard libraries, and all of the sub-directories of the workspace will be searched for header files to use with Intellisense. If VS Code throws an error on an `#include` statement (and the file exists), then a search path is most likely missing. - -To add additional search paths : - -1. Open the `.vscode/settings.json` file. - -2. Add the include path(s) to the `C_Cpp.default.includePath` list. The paths set here should contain header files, and will be searched by the Intellisense engine and when using "Go to Declaration" in the editor. - -3. Add the path(s) to any relevant implementation files to the `C_Cpp.default.browse.path` list. This list contains the paths that will be searched when using "Go to Definition". - -## Build Configuration - -A project's build system is managed by two files found in the project's root directory. These files are used alongside the [GNU Make](https://www.gnu.org/software/make/) program (which is a part of the MSDK toolchain) to locate and build a project's source code for the correct microcontroller. - -* `Makefile` -* `project.mk` - -![Files are located in the root directory](https://raw.githubusercontent.com/Analog-Devices-MSDK/VSCode-Maxim/65af7c61800c7039956f3c1971ffd7915008668d/img/projectmk.JPG) - -When the command... - -```shell -make -``` - -... is run, the program `make` will load settings from these two files. Then, it will use them to build the project's source code. VSCode-Maxim is a "wrapper" around this Makefile system. - -The file named `Makefile` is the "core" file for the project. It should not be edited directly. Instead, it offers a number of configuration variables that can be overridden in the `project.mk` file, on the command-line, in your system's environment, or via your IDE. It also comes with a default configuration that is suitable for most projects. - -### Default Build Behavior - -By default, the build system will auto-search the root project directory source code (`*.c`) and header files (`*.h`). The optional "include" and "src" directories are also searched if they exist. - -```shell -Root Project Directory -├─ project.mk -├─ Makefile -├─ *.h -├─ *.c -├─include # <-- Optional - └─ *.h -├─src # <-- Optional - └─ *.c -``` - -Additionally, the "core" `Makefile` will come pre-configured for a specific target microcontroller and Board Support Package (BSP). The default BSP will match the main EVKIT for the device. In VSCode-Maxim, the two [Basic Config Options](#basic-config-options) can be used to easily override the target microcontroller and BSP. These options are passed to `make` on the command-line when the ["Build" task](#build-tasks) is run. - -For more advanced build configuration, configuration variables should be used. - -### How to Set a Configuration Variable - -A configuration variable is a [Makefile variable](https://www.gnu.org/software/make/manual/make.html#Using-Variables), and therefore follows the same rules. However, they have been streamlined to be made much easier to use, so most of the official GNU Make documentation is only needed for advanced use-cases. - -To set a configuration variable, use the syntax... - -```Makefile -VARIABLE=VALUE -``` - -The `=` operator is used for _most_ configuration variables with a few exceptions (that are clearly documented) when a variable should contain a _list_ of values. In such cases, use the syntax... - -```Makefile -VARIABLE+=VALUE1 -VARIABLE+=VALUE2 -``` - -... to _add_ values to the list. - -In most cases, you should do this from inside of **project.mk**. - -For example, if I wanted to enable hardware floating-point acceleration for my project, I would use the `MFLOAT_ABI` configuration variable to set its value to `hard`. The contents of **project.mk** might then look as follows: - -(_Inside project.mk_) - -```Makefile -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://github.com/Analog-Devices-MSDK/VSCode-Maxim/tree/develop#build-configuration - -#BOARD=FTHR_RevA -# ^ For example, you can uncomment this line to make the -# project build for the "FTHR_RevA" board. - -# ********************************************************** - -MFLOAT_ABI=hard # Enable hardware floating point acceleration -``` - -It should also be noted that configuration variables can be set on the **command-line** as well. For example... - -```shell -make MFLOAT_ABI=hard -``` - -... will have the same effect. - -Additionally, **environment variables** can be used. For example (on linux)... - -```shell -export TARGET=MAX78000 -``` - -... will set all projects to build for the MAX78000. - -However, there is a precedence hierarchy that should be taken into consideration. - -### Precedence Hierarchy - -The precedence hierarchy for the value of a configuration variable is: - -* **IDE/command-line > project.mk > environment variable > default value** - -...meaning if a value is set on the command-line _and_ project.mk, the command-line value will take precedence. However, the ["override" directive](https://www.gnu.org/software/make/manual/make.html#Override-Directive) can be used in project.mk to give it max precedence. - -### Configuration Variables Table - -The following configuration variables are available. - -| Variable | Description | Example | Details | -|--- | --- | --- | ---| -**Target** -| `TARGET` | Set the target microcontroller | `TARGET=MAX78000` | -| `BOARD` | Set the Board Support Package (BSP) | `BOARD=FTHR_RevA` | Every microcontroller has a number of BSPs available for it that can be found in the `Libraries/Boards/TARGET` folder of the MSDK. When you change this option, it's usually a good idea to fully clean your project, then re-build. -**SDK** -| `MAXIM_PATH` | (Optional) Specify the location of the MSDK | `MAXIM_PATH=/path/to/MSDK` | This optional variable can be used to change where the Makefile looks for the MSDK. By default, the Makefile will attempt to locate the MSDK with a relative path moving "up" from its original location. This option is most useful when a project is moved _outside_ of the MSDK and you're developing on the command-line, since VS Code and Eclipse will set this via an environment variable. It's also useful for re-targeting a project to point to the development repository. -| `CAMERA` | (Optional) Set the Camera drivers to use | `CAMERA=HM0360_MONO` | This option is only useful for the MAX78000 and MAX78002, and sets the camera drivers to use for the project. Permitted values are `HM01B0`, `HM0360_MONO`, `HM0360_COLOR`, `OV5642`, `OV7692` (default), or `PAG7920`. Camera drivers can be found in the `Libraries/MiscDrivers/Camera` folder of the MSDK. Depending on the selected camera, a compiler definition may be added to the build. See the `board.mk` Makefile in the active BSP for more details. -**Source Code** -| `VPATH` | Where to search for source (.c) files | `VPATH+=your/source/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **source code** files. If `AUTOSEARCH` is enabled (which it is by default) this controls which paths will be searched. If `AUTOSEARCH` is disabled, this tells the Makefile where to look for the files specified by `SRCS`. -| `IPATH` | Where to search for header (.h) files | `IPATH+=your/include/path` | **Use the `+=` operator with this option**. This controls where the Makefile will look for **header** files. _Unlike_ the `VPATH` option, this is not related to `AUTOSEARCH`. Individual header files are _not_ ever manually added into the build. Instead, you only need to specify the _location_ of your header files. -| `AUTOSEARCH` | Automatically search for source (.c) files | `AUTOSEARCH=0` | Enable or disable the automatic detection of .c files on `VPATH` (enabled by default). Set to `0` to disable, or `1` to enable. If autosearch is disabled, source files must be manually added to `SRCS`. -| `SRCS` | List of source (.c) files to add to the build | `SRCS+=./my/other/source.c` | **Use the `+=` operator with this option**. All of the files in this list will be added to the build. If `AUTOSEARCH` is enabled, this is most useful for adding the full absolute path to a singular source file to selectively add to the build. If `AUTOSEARCH` is disabled, _all_ of the source files for the project must be added to `SRCS`, and they must also all be located on an entry in `VPATH`. Otherwise, a full path relative to the Makefile must be used. -| `PROJECT` | Set the output filename | `PROJECT=MyProject` | This controls the output filename of the build. File extensions should _not_ be set here since the output file format may vary depending on the build recipe. For VSCode-Maxim, you should use the [project_name](#project_name) advanced config option instead, which sets `PROJECT` on the command-line [Build Tasks](#build-tasks). -**Compiler** -| `MXC_OPTIMIZE_CFLAGS` | Set the optimization level | `MXC_OPTIMIZE_CFLAGS=-O2` | See [Optimize Options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) for more details. Normal builds will default to `-Og`, which is good for debugging, while release builds will default to `-O2`. -| `PROJ_CFLAGS` | Add a compiler flag to the build | `PROJ_CFLAGS+=-Wextra`, `PROJ_CFLAGS+=-DMYDEFINE` | Compiler flags can be added with this option, including compiler definitions. For each value, the same syntax should be used as if the compiler flag was passed in via the command-line. These can include standard [GCC options](https://gcc.gnu.org/onlinedocs/gcc-10.4.0/gcc/Option-Summary.html#Option-Summary) and/or [ARM-specific](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html) options. -| `MFLOAT_ABI` | Set the floating point acceleration level | `MFLOAT_ABI=hard` | Sets the floating-point acceleration level. Permitted values are `hard`, `soft`, `softfp` (default). To enable full hardware acceleration instructions use `hard`, but keep in mind that _all_ libraries your source code uses must also be compiled with `hard`. If there is any conflict, you'll get a linker error. For more details, see `-mfloat-abi` under [ARM Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html). -**Linker** -| `LINKERFILE` | Set the linkerfile to use | `LINKERFILE=newlinker.ld` | You can use a different linkerfile with this option. The file should exists in `Libraries/CMSIS/Device/Maxim/TARGET/Source/GCC` in the MSDK, or it should be placed inside the root directory of the project. -**Libraries** -| `LIB_BOARD` | Include the BSP library (enabled by default) | `LIB_BOARD=0` | Inclusion of the Board-Support Package (BSP) library, which is enabled by default, can be toggled with this variable. This library contains important startup code specific to a microcontroller's evaluation platform, such as serial port initialization, power sequencing, external peripheral initalization, etc. Set to `0` to disable, or `1` to enable. -| `LIB_PERIPHDRIVERS` | Include the peripheral driver library (enabled by default) | `LIB_PERIPHDRIVERS=0` | The peripheral driver library can be toggled with this option. If disabled, you'll lose access to the higher-level driver functions but still have access to the register-level files. Set to `0` to disable, or `1` to enable. -| `LIB_CMSIS_DSP` | Include the CMSIS-DSP library | `LIB_CMSIS_DSP=1` | The [CMSIS-DSP library](https://www.keil.com/pack/doc/CMSIS/DSP/html/index.html) can be enabled with this option. Set to `0` to disable, or `1` to enable. -| `LIB_CORDIO` | Include the Cordio library | `LIB_CORDIO=1` | The Cordio BLE library can be included with this option. This is only applicable towards microcontrollers with an integrated BLE controller. -| `LIB_FCL` | Include the Free Cryptographic Library (FCL) | `LIB_FCL=1` | This option toggles the Free Cryptographic Library (FCL), which is a collection of software-implemented common cryptographic functions can be included with this option. Set to `0` to disable, or `1` to enable. -| `LIB_FREERTOS` | Include the FreeRTOS library | `LIB_FREERTOS=1` | The [FreeRTOS](https://freertos.org/) library can be enabled with this option, which is an open-source Real-Time Operating System (RTOS). Set to `0` to disable, or `1` to enable. -| `LIB_LC3` | Include the LC3 codec library | `LIB_LC3=1` | This option enables the inclusion of the Low Complexity Communication Codec (LC3), which is an efficient low latency audio codec. Set to `0` to disable, or `1` to enable. -| `LIB_LITTLEFS` | Include the littleFS library | `LIB_LITTLEFS=1` | This option toggles the ["Little File System"](https://github.com/littlefs-project/littlefs) library - a small filesystem library designed for microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_LWIP` | Include the lwIP library | `LIB_LWIP=1` | | -| `LIB_MAXUSB` | Include the MaxUSB library | `LIB_MAXUSB=1` | This option toggles the inclusion of the MAXUSB library, which facilitates the use of the native USB peripherals on some microcontrollers. Set to `0` to disable, or `1` to enable. -| `LIB_SDHC` | Include the SDHC library | `LIB_SDHC=1` | This options toggles the Secure Digital High Capacity (SDHC) library, which can be used to interface with SD cards. Additionally, it enables the [FatFS](http://elm-chan.org/fsw/ff/00index_e.html) library, which implements a generic FAT filesystem. -**Secure Boot Tools (SBT)** -| `SBT` | Toggle SBT integration | `SBT=1` | Toggles integration with the [Secure Boot Tools (SBTs)](https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download.html?swpart=SFW0015360C). These are a suite of applications designed for use with microcontrollers that have secure bootloaders. When this is enabled, some additional rules become available such as `make sla` and `make scpa`. Set to `0` to disable or `1` to enable. -| `MAXIM_SBT_DIR` | Where to find the SBTs | `MAXIM_SBT_DIR=C:/MaximSBT` | This option can be used to manually specify the location of the SBTs. Usually, this is not necessary. By default, the `Tools/SBT` directory of the MSDK will be searched. If the [SBT installer](hhttps://www.analog.com/en/design-center/evaluation-hardware-and-software/software/software-download.html?swpart=SFW0015360C) is used, it will set the `MAXIM_SBT_DIR` environment variable to point to itself automatically. -| `TARGET_SEC` | Secure part number to use | `TARGET_SEC=MAX32651` | Some secure microcontrollers have multiple secure variants, and this option can be used to specify the variant to use with the SBTs. Defaults are intelligently selected, and can be found in `$(MAXIM_SBT_DIR)/SBT-config.mk` -| `SCP_PACKETS` | Where to build the scp_packets folder | | Defaults to `build/scp_packets` | -| `TEST_KEY` | Which test key to sign applications with | | Defaults to `$(MAXIM_SBT_DIR)/devices/$(TARGET_SEC)/keys/maximtestcrk.key`, which is the test key that can be used for development. - -## Project Creation - -### Option 1. Copying a Pre-Made Project - -Copying a pre-made example project is a great way to get rolling quickly, and is currently the recommended method for creating new projects. - -The release package for this project (Located at Tools/VSCode-Maxim in the Analog Devices MSDK) contains a `New_Project` folder designed for such purposes. Additionally, any of the VS Code-enabled Example projects can be copied from the MSDK. - -1. Copy the existing project folder to an accessible location. This will be the location of your new project. - -2. (Optional) Rename the folder. For example, I might rename the folder to `MyProject`. - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller and board correctly. See [Basic Config Options](#basic-config-options) - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. That's it! The existing project is ready to build, debug, and modify. - -### Option 2 - Creating a Project from Scratch - -If you want to start from scratch, take this option. - -1. Create your project folder. For example, I might create a new project in a workspace folder with the path: `C:\Users\Jake.Carter\workspace\MyNewProject`. - -2. Copy the **contents** of the `Inject` folder into the project folder created in step 2. This includes a `.vscode` folder and a `Makefile`. In the example above, the contents of the 'MyProject' folder would be the following : - - ```shell - C:\Users\Jake.Carter\workspace\MyNewProject - +-- \.vscode - +-- Makefile - ``` - -3. Open the project in VS Code (`File -> Open Folder...`) - -4. Set your target microcontroller correctly. See [Basic Config Options](#basic-config-options). - -5. `CTRL+SHIFT+P -> Reload Window` to re-parse the project settings. - -6. Fundamentally, that's it. Your new empty project can now be opened with `File > Open Folder` from within VS Code. - -## Issue Tracker - -Bug reports, feature requests, and contributions are welcome via the [issues](https://github.com/Analog-Devices-MSDK/VSCode-Maxim/issues) tracker on Github. - -New issues should contain _at minimum_ the following information: - -* Visual Studio Code version #s (see `Help -> About`) -* C/C++ Extension version # -* Target microcontroller and evaluation platform -* The projects `.vscode` folder and `Makefile` (where applicable). Standard compression formats such as `.zip`, `.rar`, `.tar.gz`, etc. are all acceptable. diff --git a/Examples/MAX32572/WearLeveling/.vscode/launch.json b/Examples/MAX32572/WearLeveling/.vscode/launch.json deleted file mode 100755 index a3900ecf2ad..00000000000 --- a/Examples/MAX32572/WearLeveling/.vscode/launch.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "configurations": [ - { - "name": "Debug Arm (Cortex-debug)", - "cwd":"${workspaceRoot}", - "executable": "${workspaceFolder}/build/${config:program_file}", - "loadFiles": ["${workspaceFolder}/build/${config:program_file}"], - "symbolFiles": [{ - "file": "${workspaceFolder}/build/${config:symbol_file}" - }], - "request": "launch", - "type": "cortex-debug", - "servertype": "openocd", - "linux": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "serverpath": "${config:OCD_path}/openocd", - }, - "windows": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "serverpath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "gdbPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "serverpath": "${config:OCD_path}/openocd", - }, - "searchDir": ["${config:OCD_path}/scripts"], - "configFiles": ["interface/${config:M4_OCD_interface_file}", "target/${config:M4_OCD_target_file}"], - "interface": "swd", - "runToEntryPoint": "main", - "svdFile": "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include/${config:target}.svd" - }, - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"set $pc=Reset_Handler"}, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/WearLeveling/.vscode/settings.json b/Examples/MAX32572/WearLeveling/.vscode/settings.json deleted file mode 100755 index 0f5b6e20489..00000000000 --- a/Examples/MAX32572/WearLeveling/.vscode/settings.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"max32572.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/littlefs", - "${config:MAXIM_PATH}/Libraries/littlefs/bd" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers", - "${config:MAXIM_PATH}/Libraries/littlefs", - "${config:MAXIM_PATH}/Libraries/littlefs/bd" - ], - "C_Cpp.default.defines": [ - "${config:board}", - "TARGET=${config:target}", - "TARGET_REV=0x4131", - "__GNUC__" - ] -} - diff --git a/Examples/MAX32572/WearLeveling/.vscode/tasks.json b/Examples/MAX32572/WearLeveling/.vscode/tasks.json deleted file mode 100755 index 23f00049c4e..00000000000 --- a/Examples/MAX32572/WearLeveling/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean --output-sync=target --no-print-directory TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/WearLeveling/Makefile b/Examples/MAX32572/WearLeveling/Makefile deleted file mode 100644 index b5723d74220..00000000000 --- a/Examples/MAX32572/WearLeveling/Makefile +++ /dev/null @@ -1,408 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX32572 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32572 -TARGET_UC := MAX32572 -TARGET_LC := max32572 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -include ./project.mk -$(info Loaded project.mk) - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX32572.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -ifeq "$(RISCV_CORE)" "" -# Default linkerfile is only specified for standard Arm-core projects. -# Otherwise, gcc_riscv.mk sets the appropriate riscv linkerfile. -LINKERFILE ?= $(TARGET_LC).ld -LINKERPATH ?= $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC - -# Check if linkerfile exists -ifeq ("$(wildcard $(LINKERPATH)/$(LINKERFILE))","") -# Doesn't exists, attempt to use root project folder. -LINKERPATH:=. -endif - -# Form full path to linkerfile. Works around MSYS2 edge case from (see MSDK-903). -LINKERFILE:=$(LINKERPATH)/$(LINKERFILE) -endif - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32572/WearLeveling/README.md b/Examples/MAX32572/WearLeveling/README.md deleted file mode 100644 index 8dde31e84d6..00000000000 --- a/Examples/MAX32572/WearLeveling/README.md +++ /dev/null @@ -1,107 +0,0 @@ -## Description - -In this example, the MAX32572 accepts commands from the user which demonstrate various features of the LittleFS library, including flash wear leveling. User's may send commands to the device with their terminal application. - -Below is a list of the supported commands: -* help: Prints out the list of available commands and describes how each command is used. -* stop: Ends the example. -* read: Reads data from a file and prints it to the terminal. -* write: Writes data to a file and can optionally create the file to write to if it does not already exist. -* swl: Stands for "show wear leveling". This command performs a specified number of writes (passed as an argument on the command line) to a test file and prints out the number of times each filesystem block was written to. Users should see the writes occur somewhat evenly across most filesystem blocks. - -Enter "help" in the command line to see more details on the usage of each of the commands including what arguments/options need to be specified to successfully execute each command. - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -* This project comes pre-configured for the MAX32572EVKIT. See [Board Support Packages](https://analog-devices-msdk.github.io/msdk/USERGUIDE/#board-support-packages) in the UG for instructions on changing the target board. - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Select RX0 and TX0 on Headers JP1 and JP3 (UART 0). -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -The Console UART of the device will output these messages: - -``` -********** Wear Leveling Example ********** -Mounting the filesystem... -C:/MaximSDK/Libraries/littlefs/lfs.c:1224:error: Corrupted dir pair at {0x0, 0x1} -Filesystem is invalid, formatting... -Filesystem is mounted! Ready for commands. - -cmd> help - -The available commands are: - * help - Description: Prints out list of available commands. - Usage: help - - * stop - Description: Ends the example. - Usage: stop - - * read - Description: Reads data from a specific location within a file. If - the read is successful, the data read is printed to the - terminal. - Usage: read - - * write - Description: Writes a character string to a specific location within - a file. - Usage: write (--create) - Options: - --create: Creates file if it does not already exist. - * swl - DDescription: Stands for "show wear leveling". Writes to a file the - specified number of times. Once all writes have completed, - the number of times each flash page (filesystem block) - was written to is printed to the terminal. This command may - take a while to complete. LED0 is used as a heartbeat while - the command is executing. - Usage: swl - - -cmd> write --create demo_file thisisanexampledatastringtowritetodemofile 0 -42 bytes were written to demo_file in filesystem block 6. - -cmd> read demo_file 42 0 -42 bytes were read from demo_file in filesystem block 6. -The following string was read from file demo_file: -thisisanexampledatastringtowritetodemofile - -cmd> swl 1000 -All writes have completed. Here are the results: -Block 0 was written to 0 times. -Block 1 was written to 0 times. -Block 2 was written to 83 times. -Block 3 was written to 83 times. -Block 4 was written to 42 times. -Block 5 was written to 42 times. -Block 6 was written to 0 times. -Block 7 was written to 84 times. -Block 8 was written to 84 times. -Block 9 was written to 84 times. -Block 10 was written to 83 times. -Block 11 was written to 83 times. -Block 12 was written to 83 times. -Block 13 was written to 83 times. -Block 14 was written to 83 times. -Block 15 was written to 83 times. - - -cmd> stop - -Filesystem resources released. -Example complete! -``` - diff --git a/Examples/MAX32572/WearLeveling/WearLeveling.launch b/Examples/MAX32572/WearLeveling/WearLeveling.launch deleted file mode 100644 index c8e88795ae2..00000000000 --- a/Examples/MAX32572/WearLeveling/WearLeveling.launch +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/WearLeveling/include/cli.h b/Examples/MAX32572/WearLeveling/include/cli.h deleted file mode 100644 index 595ddaf892d..00000000000 --- a/Examples/MAX32572/WearLeveling/include/cli.h +++ /dev/null @@ -1,60 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_CLI_H_ -#define EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_CLI_H_ - -#include "lfs.h" - -/* - * @brief Function to receive next command from the command line. - * - * @param cmd Buffer to store command into. - * @param size Size of the command buffer. - * - * @return The size of the command if successful, otherwise an error code. - */ -int cmd_get(char *cmd, size_t size); - -/* - * @brief Function to process command and call appropriate command handler. - * - * @param lfs Pointer to mounted filesystem instance - * @param cmd Buffer containing characters read from the command line. - * @param size Number of characters in the command buffer. - * - * @return E_NO_ERROR if command processed successfully, otherwise an error code. - */ -int cmd_process(lfs_t *lfs, char *cmd, size_t size); - -#endif // EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32572/WearLeveling/include/file.h b/Examples/MAX32572/WearLeveling/include/file.h deleted file mode 100644 index 26dbe352db2..00000000000 --- a/Examples/MAX32572/WearLeveling/include/file.h +++ /dev/null @@ -1,76 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_FILE_H_ -#define EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_FILE_H_ - -#include -#include -#include "lfs.h" - -/***** Macros *****/ -#define MAX_FILE_READ_SIZE 1024 - -/* - * @brief Write data to a file. - * - * @param filesys Pointer to the LittleFS file system instance. - * @param file Pointer to a LittleFS file instance. - * @param filename Name of the file to write to. - * @param write_buf Buffer containing the data to write to the file - * @param len Number of bytes to write to the file. - * @param pos Position within the file to start writing data at. - * @param create Determines behavior if file doesn't already exist, "true" will create the - * file and complete the write, and "false" will return an error. - * - * @return The number of bytes written to flash if successful, otherwise an error code. - */ -int file_write(lfs_t *filesys, lfs_file_t *file, const char *filename, char *write_buf, - uint32_t len, uint32_t pos, bool create); - -/* - * @brief Read data from a file. - * - * @param filesys Pointer to the LittleFS file system instance. - * @param file Pointer to a LittleFS file instance. - * @param filename Name of the file to read from. - * @param read_buf Buffer to store data from the file. - * @param len Number of bytes to read from the file. - * @param pos Position within the file to start reading data from. - * - * @return The number of bytes read if successful, otherwise an error code. - */ -int file_read(lfs_t *filesys, lfs_file_t *file, const char *filename, char *read_buf, uint32_t len, - uint32_t pos); - -#endif // EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32572/WearLeveling/include/flash.h b/Examples/MAX32572/WearLeveling/include/flash.h deleted file mode 100644 index 1a21f13b8df..00000000000 --- a/Examples/MAX32572/WearLeveling/include/flash.h +++ /dev/null @@ -1,109 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file flash.h - * @brief Flash read/write/erase functions declaration - */ - -#ifndef EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_FLASH_H_ -#define EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_FLASH_H_ - -// Flash operations log -//#define FLASH_DEBUG -#ifdef FLASH_DEBUG -#define LOGF(...) printf(__VA_ARGS__) -#else -#define LOGF(...) -#endif - -#include -#include - -#include "lfs.h" - -/** - * @brief Copies contents of flash into a data buffer. - * - * @note LittleFS callback method - * - * @param c LittleFS config - * @param block Flash memory block number - * @param off Data offset in the block - * @param buffer Buffer to copy flash data into - * @param size Number of bytes to read - * - * @return LFS_ERR_OK if successful otherwise and error code. - */ -int flash_read(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, void *buffer, - lfs_size_t size); - -/** - * @brief Writes data to flash memory. - * - * @note LittleFS callback method - * - * @param c LittleFS config - * @param block Flash memory block number - * @param off Data offset in the block - * @param buffer Buffer containing data to write to flash. - * @param size Number of bytes to write to flash. - * - * @return LFS_ERR_OK if successful otherwise and error code. - */ -int flash_write(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, const void *buffer, - lfs_size_t size); - -/** - * @brief Erases a flash memory block. - * - * @note LittleFS callback method - * - * @param c LittleFS config - * @param block Number of the flash memory block to erase - * - * @return LFS_ERR_OK if successful otherwise and error code. - */ -int flash_erase(const struct lfs_config *c, lfs_block_t block); - -/** - * @brief Performs pending flash operations - * @note LittleFS callback method. Not supported by Maxim SDK. - * - * @param c LittleFS config - * - * @return LFS_ERR_OK if successful otherwise and error code. - */ -int flash_sync(const struct lfs_config *c); - -#endif // EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_FLASH_H_ diff --git a/Examples/MAX32572/WearLeveling/include/main.h b/Examples/MAX32572/WearLeveling/include/main.h deleted file mode 100644 index e6ae0308c2a..00000000000 --- a/Examples/MAX32572/WearLeveling/include/main.h +++ /dev/null @@ -1,42 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_MAIN_H_ -#define EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_MAIN_H_ - -/***** Definitions *****/ -#define LFS_START_PAGE 48 // First flash memory block used by LFS -#define LFS_PAGE_CNT 16 // Number of flash memory blocks reserved for LFS -#define CMD_MAX_SIZE 256 // Size of the command buffer - -#endif // EXAMPLES_MAX32572_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32572/WearLeveling/main.c b/Examples/MAX32572/WearLeveling/main.c deleted file mode 100644 index d88bff87cf6..00000000000 --- a/Examples/MAX32572/WearLeveling/main.c +++ /dev/null @@ -1,122 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief LittleFS and wear leveling example. - * @details This example shows the basic functionality of the LittleFS - * file system, including it's ability to distibute wear across - * the flash memory. - */ - -/***** Includes *****/ -#include -#include -#include -#include "cli.h" -#include "flash.h" -#include "file.h" -#include "lfs.h" -#include "main.h" -#include "mxc_device.h" - -/***** Globals *****/ -uint32_t start_block = LFS_START_PAGE; - -const struct lfs_config cfg = { - .context = &start_block, - - // block device operations - .read = flash_read, - .prog = flash_write, - .erase = flash_erase, - .sync = flash_sync, - - // block device configuration - .read_size = 1, - .prog_size = 4, - .block_size = MXC_FLASH_PAGE_SIZE, - .block_count = LFS_PAGE_CNT, - .cache_size = 16, - .lookahead_size = 16, - .block_cycles = 500, -}; - -//****************************************************************************** -/** - * @brief Application entry point - * @return Exit code - */ -int main(void) -{ - lfs_t lfs; // File system instance - char cmd_buf[CMD_MAX_SIZE]; - int cmd_len, err; - - printf("\n\n********** Wear Leveling Example **********\n"); - - // mount the filesystem - printf("Mounting the filesystem...\n"); - err = lfs_mount(&lfs, &cfg); - - // reformat if we can't mount the filesystem - // this should only happen on the first boot - if (err) { - printf("Filesystem is invalid, formatting...\n"); - lfs_format(&lfs, &cfg); - err = lfs_mount(&lfs, &cfg); - } - - if (!err) { - printf("Filesystem is mounted! Ready for commands.\n"); - } else { - printf("Unable to initialize file system!\n"); - return E_BAD_STATE; - } - - // Continue to receive and process commands until 'stop' command received - while (err != E_SHUTDOWN) { - printf("\ncmd> "); - fflush(stdout); - - cmd_len = cmd_get(cmd_buf, CMD_MAX_SIZE); - err = cmd_process(&lfs, cmd_buf, cmd_len); - } - - // release any resources we were using - lfs_unmount(&lfs); - printf("\nFilesystem resources released.\n"); - - printf("Example complete!\n"); - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/WearLeveling/project.mk b/Examples/MAX32572/WearLeveling/project.mk deleted file mode 100644 index 16e450a8b6a..00000000000 --- a/Examples/MAX32572/WearLeveling/project.mk +++ /dev/null @@ -1,16 +0,0 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. - -# For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system - -#MXC_OPTIMIZE_CFLAGS = -Og -# ^ For example, you can uncomment this line to -# optimize the project for debugging - -# ********************************************************** - -# Add your config here! - -LIB_LITTLEFS = 1 \ No newline at end of file diff --git a/Examples/MAX32572/WearLeveling/src/cli.c b/Examples/MAX32572/WearLeveling/src/cli.c deleted file mode 100644 index 4284b92cd88..00000000000 --- a/Examples/MAX32572/WearLeveling/src/cli.c +++ /dev/null @@ -1,313 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include -#include -#include -#include -#include "board.h" -#include "cli.h" -#include "file.h" -#include "led.h" -#include "main.h" -#include "mxc_device.h" -#include "mxc_errors.h" -#include "uart.h" - -/********************************************************************************/ -/******************************* Private Functions ******************************/ -/********************************************************************************/ - -/***** Handler Functions *****/ -static int help_CmdHandler(void) -{ - // Print command descriptions - printf("\nThe available commands are:\n"); - printf(" * help\n"); - printf(" Description: Prints out list of available commands.\n"); - printf(" Usage: help\n\n"); - printf(" * stop\n"); - printf(" Description: Ends the example.\n"); - printf(" Usage: stop\n\n"); - printf(" * read\n"); - printf(" Description: Reads data from a specific location within a file. If\n"); - printf(" the read is successful, the data read is printed to the\n"); - printf(" terminal.\n"); - printf(" Usage: read \n\n"); - printf(" * write\n"); - printf(" Description: Writes a character string to a specific location within\n"); - printf(" a file.\n"); - printf(" Usage: write (--create) \n"); - printf(" Options:\n"); - printf(" --create: Creates file if it does not already exist.\n"); - printf(" * swl\n"); - printf(" Description: Stands for \"show wear leveling\". Writes to a file the\n"); - printf(" specified number of times. Once all writes have completed,\n"); - printf(" the number of times each flash page (filesystem block)\n"); - printf(" was written to is printed to the terminal. This command may\n"); - printf(" take a while to complete. LED0 is used as a heartbeat while\n"); - printf(" the command is executing.\n"); - printf(" Usage: swl \n\n"); - - return E_NO_ERROR; -} - -static int stop_CmdHandler(void) -{ - return E_SHUTDOWN; -} - -static int read_CmdHandler(lfs_t *lfs, char *args) -{ - // Check for invalid arguments - if (lfs == NULL || args == NULL) { - printf("Invalid argument string. Read failed.\n"); - return E_NULL_PTR; - } - - char *save_ptr = args; - - // Parse arguments sting - strtok_r(args, " ", &save_ptr); - char *filename = strtok_r(NULL, " ", &save_ptr); - char *str_num_bytes = strtok_r(NULL, " ", &save_ptr); - char *str_pos = strtok_r(NULL, "\r\n", &save_ptr); - char data[MAX_FILE_READ_SIZE]; - lfs_file_t file; - - memset(data, '\0', sizeof(data)); - - // Convert arguments to integers - int num = atoi(str_num_bytes); - int pos = atoi(str_pos); - - // Read data from file - num = file_read(lfs, &file, filename, data, num, pos); - if (num < LFS_ERR_OK) { - printf("Read failed with error code %d.\n", num); - return num; - } else { - printf("%d bytes were read from %s in filesystem block %d.\n", num, filename, file.block); - } - - // Print data read from file to the terminal - printf("The following string was read from file %s:\n", filename); - - for (int i = 0; i < num; i++) { - printf("%c", data[i]); - } - printf("\n"); - - return E_NO_ERROR; -} - -static int write_CmdHandler(lfs_t *lfs, char *args) -{ - // Check for invalid arguments - if (lfs == NULL) { - printf("Invalid filesystem instance. Write failed.\n"); - return E_NULL_PTR; - } else if (args == NULL) { - printf("Invalid argument string. Write failed.\n"); - return E_INVALID; - } - - lfs_file_t file; - char *create_fl; - char *filename; - char *data; - char *str_pos; - int pos, err; - bool create; - char *save_ptr = args; - - // Parse arguments - strtok_r(args, " ", &save_ptr); - create_fl = strtok_r(NULL, " ", &save_ptr); - - // Parse remainder of the arguments based on whether not create flag was passed - if (memcmp(create_fl, "--create", sizeof("--create") - 1) == 0) { - // Create flag passed, next argument is filename - create = true; - filename = strtok_r(NULL, " ", &save_ptr); - data = strtok_r(NULL, " ", &save_ptr); - str_pos = strtok_r(NULL, "\r\n", &save_ptr); - } else { - // create flag not passed, last argument parsed was file name - create = false; - filename = create_fl; - data = strtok_r(NULL, " ", &save_ptr); - str_pos = strtok_r(NULL, "\r\n", &save_ptr); - } - - // Convert position to an integer value - pos = atoi(str_pos); - - // Write data to the file - err = file_write(lfs, &file, filename, data, strlen(data), pos, create); - if (err < LFS_ERR_OK) { - printf("Write failed with error code %d.\n", err); - } else { - printf("%d bytes were written to %s in filesystem block %d.\n", err, filename, file.block); - } - - return err; -} - -static int swl_CmdHandler(lfs_t *lfs, char *args) -{ - // Check for invalid arguments - if (lfs == NULL) { - printf("Invalid filesystem instance. Write failed.\n"); - return E_NULL_PTR; - } else if (args == NULL) { - printf("Invalid argument string. Write failed.\n"); - return E_INVALID; - } - - char *save_ptr = args; - char *str_num_writes; - int num_writes, err; - int hit_count[LFS_PAGE_CNT] = { 0 }; - - // Parse argument string - strtok_r(args, " ", &save_ptr); - str_num_writes = strtok_r(NULL, "\r\n", &save_ptr); - num_writes = atoi(str_num_writes); - - //Set up dummy arguments - char filename[] = "swl_test_file"; - char data[] = "show_littlefs_wear_leveling"; // Length of this string must exceed lfs.cache_size - lfs_file_t file; - - // Write to the test file the specified number of writes and - // track how many times each flash page is written to - for (int i = 0; i < num_writes; i++) { - // Do next write - err = file_write(lfs, &file, filename, data, strlen(data), 0, true); - if (err < LFS_ERR_OK) { - printf("Failed to write to test file. Aborting \"swl\" command.\n"); - return err; - } - - // Increment the hit count - if (file.block >= 0 && file.block < LFS_PAGE_CNT) { - hit_count[file.block]++; - } - - // Heartbeat, this loop can take a while if num_writes is large - if (i % 50 == 0) { - LED_Toggle(0); - } - } - - // Print results - printf("All writes have completed. Here are the results:\n"); - for (int i = 0; i < LFS_PAGE_CNT; i++) { - printf("Block %d was written to %d times.\n", i, hit_count[i]); - } - printf("\n"); - - return E_NO_ERROR; -} - -/********************************************************************************/ -/******************************* Public Functions *******************************/ -/********************************************************************************/ -int cmd_get(char *cmd, size_t size) -{ - if (cmd == NULL) { - return E_NULL_PTR; - } else if (size < 0) { - return E_BAD_PARAM; - } - - bool eoc = false; - int num_recv = 0; - int next_ch; - - while (!eoc) { - // Read character from RX FIFO, wait here until 1 is available - while ((next_ch = MXC_UART_ReadCharacter(MXC_UART_GET_UART(CONSOLE_UART))) < E_NO_ERROR) {} - MXC_UART_WriteCharacter(MXC_UART_GET_UART(CONSOLE_UART), next_ch); //Echo - if (next_ch == 0x08) { // backspace - if (num_recv != 0) { - num_recv--; - } - } else { // Store character - cmd[num_recv++] = (char)next_ch; - } - - // if buffer full or EOC received, exit loop - if (num_recv == size || next_ch == '\r' || next_ch == '\n') { - eoc = true; - } - } - - return num_recv; -} - -int cmd_process(lfs_t *lfs, char *cmd, size_t size) -{ - // Check for invalid parameters - if (lfs == NULL || cmd == NULL) { - return E_NULL_PTR; - } else if (size <= 0) { - return E_BAD_PARAM; - } - - // Parse out command and argument strings - int err = E_INVALID; - - // Call appropriate command handler for valid commands - if (memcmp(cmd, "help", sizeof("help") - 1) == 0) { - // Process help command - err = help_CmdHandler(); - } else if (memcmp(cmd, "stop", sizeof("stop") - 1) == 0) { - // Process stop command - err = stop_CmdHandler(); - } else if (memcmp(cmd, "read", sizeof("read") - 1) == 0) { - // Process file read command - err = read_CmdHandler(lfs, cmd); - } else if (memcmp(cmd, "write", sizeof("write") - 1) == 0) { - // Process file write command - err = write_CmdHandler(lfs, cmd); - } else if (memcmp(cmd, "swl", sizeof("swl") - 1) == 0) { - // Process show wear leveling command - err = swl_CmdHandler(lfs, cmd); - } - - memset(cmd, '\0', size); - - return err; -} diff --git a/Examples/MAX32572/WearLeveling/src/file.c b/Examples/MAX32572/WearLeveling/src/file.c deleted file mode 100644 index 55e04cc5d71..00000000000 --- a/Examples/MAX32572/WearLeveling/src/file.c +++ /dev/null @@ -1,110 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include "file.h" -#include "lfs.h" -#include "mxc_errors.h" - -int file_write(lfs_t *filesys, lfs_file_t *file, const char *filename, char *write_buf, - uint32_t len, uint32_t pos, bool create) -{ - int err; - int lfs_open_flags = LFS_O_WRONLY; - - // Check for bad params - if (filesys == NULL || write_buf == NULL || filename == NULL) { - return E_NULL_PTR; - } - - // Set appropriate LFS flags - if (create) { - lfs_open_flags |= LFS_O_CREAT; - } - - // Open up the file to write to - err = lfs_file_open(filesys, file, filename, lfs_open_flags); - if (err != LFS_ERR_OK) { - printf("Unable to open file.\n"); - return err; - } - - // Set write position within the file - err = lfs_file_seek(filesys, file, pos, LFS_SEEK_SET); - if (err < LFS_ERR_OK || err != pos) { - printf("Unable to set write pointer to specified position.\n"); - lfs_file_close(filesys, file); - return err; - } - - // Write data to file - err = lfs_file_write(filesys, file, write_buf, len); - - // Close the file. File not written to storage unless the file is explicitly closed. - lfs_file_close(filesys, file); - - return err; -} - -int file_read(lfs_t *filesys, lfs_file_t *file, const char *filename, char *read_buf, uint32_t len, - uint32_t pos) -{ - int err; - - // Check for bad params - if (filesys == NULL || read_buf == NULL || filename == NULL) { - return E_NULL_PTR; - } - - // Open up the file to read from - err = lfs_file_open(filesys, file, filename, LFS_O_RDONLY); - if (err != LFS_ERR_OK) { - printf("Unable to open file.\n"); - return err; - } - - // Set read position within the file - err = lfs_file_seek(filesys, file, pos, LFS_SEEK_SET); - if (err < LFS_ERR_OK || err != pos) { - printf("Unable to set read pointer to specified position.\n"); - lfs_file_close(filesys, file); - return err; - } - - // Read from file - err = lfs_file_read(filesys, file, (void *)read_buf, len); - - // Close the file. - lfs_file_close(filesys, file); - - return err; -} diff --git a/Examples/MAX32572/WearLeveling/src/flash.c b/Examples/MAX32572/WearLeveling/src/flash.c deleted file mode 100644 index e48065cec60..00000000000 --- a/Examples/MAX32572/WearLeveling/src/flash.c +++ /dev/null @@ -1,173 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file flash.c - * @brief Flash read/write/erase functions implementation - */ - -#include "flash.h" -#include -#include "icc.h" -#include "flc.h" -#include "flc_regs.h" -#include "gcr_regs.h" - -/***** Functions *****/ -static int flash_write4(uint32_t startaddr, uint32_t length, uint32_t *data, bool verify); - -//****************************************************************************** -int flash_read(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, void *buffer, - lfs_size_t size) -{ - uint32_t first_block = *(uint32_t *)c->context; - uint32_t startaddr = MXC_FLASH_PAGE_ADDR((first_block + block)) + off; - uint8_t *data = (uint8_t *)buffer; - - // Copy data from flash into the data buffer - for (uint8_t *ptr = (uint8_t *)startaddr; ptr < (uint8_t *)(startaddr + size); ptr++, data++) { - *data = *ptr; - } - - return LFS_ERR_OK; -} - -//****************************************************************************** -int flash_write(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, const void *buffer, - lfs_size_t size) -{ - uint32_t first_block = *(uint32_t *)c->context; - - // Get starting address of the write - uint32_t startaddr = MXC_FLASH_PAGE_ADDR((first_block + block)) + off; - uint32_t *data = (uint32_t *)buffer; - - // Write data to flash 4 bytes at a time - return flash_write4(startaddr, size / c->prog_size, data, FALSE); -} - -//****************************************************************************** -int flash_erase(const struct lfs_config *c, lfs_block_t block) -{ - uint32_t first_block = *(uint32_t *)c->context; - - // Get address of filesystem block - int addr = MXC_FLASH_PAGE_ADDR((first_block + block)); - LOGF("Erasing page at address %08x\n", addr); - - // Erase filesystem block - int error_status = MXC_FLC_PageErase(addr); - if (error_status != E_NO_ERROR) { - return error_status; - } - return LFS_ERR_OK; -} - -//****************************************************************************** -int flash_sync(const struct lfs_config *c) -{ - // Not provided by the SDK - return LFS_ERR_OK; -} - -//****************************************************************************** -int flash_verify(uint32_t address, uint32_t length, uint8_t *data) -{ - volatile uint8_t *ptr; - - // Scan through section of flash and check if it matches the data buffer - for (ptr = (uint8_t *)address; ptr < (uint8_t *)(address + length); ptr++, data++) { - if (*ptr != *data) { - printf("Verify failed at 0x%x (0x%x != 0x%x)\n", (unsigned int)ptr, (unsigned int)*ptr, - (unsigned int)*data); - return E_UNKNOWN; - } - } - - return E_NO_ERROR; -} - -//****************************************************************************** -int check_mem(uint32_t startaddr, uint32_t length, uint32_t data) -{ - uint32_t *ptr; - - // Scan section of flash to see if it matches the expected value - for (ptr = (uint32_t *)startaddr; ptr < (uint32_t *)(startaddr + length); ptr++) { - if (*ptr != data) { - return 0; - } - } - - return 1; -} - -//****************************************************************************** -int check_erased(uint32_t startaddr, uint32_t length) -{ - // Scan through section of flash to see if it matches the erased value (0xFFFFFFFF) - return check_mem(startaddr, length, 0xFFFFFFFF); -} - -//****************************************************************************** -int flash_write4(uint32_t startaddr, uint32_t length, uint32_t *data, bool verify) -{ - int i = 0; - - MXC_ICC_Disable(MXC_ICC0); - - // Write data to flash 4 bytes at a time - for (uint32_t testaddr = startaddr; i < length; testaddr += 4) { - // Write a word - int error_status = MXC_FLC_Write(testaddr, 4, &data[i]); - if (error_status != E_NO_ERROR) { - printf("Failure in writing a word : error %i addr: 0x%08x\n", error_status, testaddr); - return error_status; - } else { - LOGF("Word %u is written to the flash at addr 0x%08x\n", data[i], testaddr); - } - - if (verify) { - // Verify that word is written properly - if (flash_verify(testaddr, 4, (uint8_t *)&data[i]) != E_NO_ERROR) { - printf("Word is not written properly.\n"); - return E_UNKNOWN; - } - } - i++; - } - - MXC_ICC_Enable(MXC_ICC0); - - return E_NO_ERROR; -} diff --git a/Examples/MAX32572/lwIP_Ping/.cproject b/Examples/MAX32572/lwIP_Ping/.cproject deleted file mode 100644 index bf54eb53c57..00000000000 --- a/Examples/MAX32572/lwIP_Ping/.cproject +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/lwIP_Ping/.project b/Examples/MAX32572/lwIP_Ping/.project deleted file mode 100644 index d15245fef58..00000000000 --- a/Examples/MAX32572/lwIP_Ping/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - lwIP_Ping - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/lwIP_Ping/.vscode/c_cpp_properties.json b/Examples/MAX32572/lwIP_Ping/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/lwIP_Ping/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/lwIP_Ping/.vscode/launch.json b/Examples/MAX32572/lwIP_Ping/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/lwIP_Ping/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/lwIP_Ping/.vscode/settings.json b/Examples/MAX32572/lwIP_Ping/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/lwIP_Ping/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/lwIP_Ping/.vscode/tasks.json b/Examples/MAX32572/lwIP_Ping/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/lwIP_Ping/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/lwIP_Ping/Makefile b/Examples/MAX32572/lwIP_Ping/Makefile deleted file mode 100644 index 9aed51935fb..00000000000 --- a/Examples/MAX32572/lwIP_Ping/Makefile +++ /dev/null @@ -1,164 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += ping.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -PROJ_CFLAGS += -DLWIP_DEBUG -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -LWIP_DIR=$(LIBS_DIR)/lwIP -include $(LWIP_DIR)/lwip.mk -export LWIP_DIR -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -lwipclean: - $(MAKE) -f ${LWIP_DIR}/lwip.mk clean.lwip - -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/lwIP_Ping/README.md b/Examples/MAX32572/lwIP_Ping/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/lwIP_Ping/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/lwIP_Ping/lwIP_Ping.launch b/Examples/MAX32572/lwIP_Ping/lwIP_Ping.launch deleted file mode 100644 index 4d45ad2e2ec..00000000000 --- a/Examples/MAX32572/lwIP_Ping/lwIP_Ping.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/lwIP_Ping/main.c b/Examples/MAX32572/lwIP_Ping/main.c deleted file mode 100644 index 8c71757044e..00000000000 --- a/Examples/MAX32572/lwIP_Ping/main.c +++ /dev/null @@ -1,194 +0,0 @@ -/** - * @file main.c - * @brief lwIP Ping Example - * @details This example shows how to ping with lwIP library - * @note - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include - -#include - -#include "mxc_eth.h" -#include "lwipcfg.h" -#include "ping.h" - -/***** Definitions *****/ -#define ETH_RX_BUFFER_SIZE (4096) -#define ETH_RX_RING_BUFFER_SIZE (256) -#define ETH_TX_RING_BUFFER_SIZE (128) -#define ETH_TOTAL_BUFFER_SIZE \ - (ETH_RX_BUFFER_SIZE + ETH_RX_RING_BUFFER_SIZE + ETH_TX_RING_BUFFER_SIZE) - -/***** Globals *****/ -unsigned char eth_buffer[ETH_TOTAL_BUFFER_SIZE]; - -/***** Functions *****/ -static void rxcmpl_handler_func(void) -{ - MXC_ETH_RecvIrq(); -} - -static int config_emac(void) -{ - int result = E_UNKNOWN; - mxc_emac_config_t emac_config; - unsigned char hwaddr[MAC_LEN] = { MAC_BYTE1, MAC_BYTE2, MAC_BYTE3, - MAC_BYTE4, MAC_BYTE5, MAC_BYTE6 }; - - memset(&emac_config, 0, sizeof(emac_config)); - - emac_config.rx_ring_buff = ð_buffer[0]; - emac_config.rx_ring_buff_size = ETH_RX_RING_BUFFER_SIZE; - - emac_config.tx_ring_buff = ð_buffer[ETH_RX_RING_BUFFER_SIZE]; - emac_config.tx_ring_buff_size = ETH_TX_RING_BUFFER_SIZE; - - emac_config.rx_buff = ð_buffer[ETH_RX_RING_BUFFER_SIZE + ETH_TX_RING_BUFFER_SIZE]; - emac_config.rx_buff_size = ETH_RX_BUFFER_SIZE; - - emac_config.phy_addr = 0; - emac_config.delay_us = MXC_Delay; - - emac_config.interrupt_mode = 1; - emac_config.interrupt_events = MXC_EMAC_EVENT_RXCMPL; - - emac_config.conf_cb_funcs.rxcmpl_handler = rxcmpl_handler_func; - - result = MXC_EMAC_Init(&emac_config); - - if (result) { - return result; - } - - result = MXC_EMAC_SetHwAddr(hwaddr); - - if (result) { - return result; - } - - NVIC_SetVector(EMAC_IRQn, MXC_EMAC_IrqHandler); - NVIC_EnableIRQ(EMAC_IRQn); - __enable_irq(); - - return E_NO_ERROR; -} - -static void link_callback_func(struct netif *netif) -{ - if (netif->flags & NETIF_FLAG_LINK_UP) { - printf("Link Status: Up\n"); - } else { - printf("Link Status: Down\n"); - } -} - -static unsigned int sys_get_ms(void) -{ - uint32_t sec, ssec; - double subsec; - uint32_t ms; - - MXC_RTC_GetSubSeconds(&ssec); - subsec = (double)ssec / (double)(4096.0); - - MXC_RTC_GetSeconds(&sec); - - ms = (sec * 1000) + (int)(subsec * 1000); - - return ms; -} - -int main(void) -{ - int result; - mxc_eth_config_t lwip_config; - ip_addr_t ping_target_ip; - - printf("*** Ping Example ***\n"); - - result = MXC_RTC_Init(0, 0); - - if (result) { - printf("RTC Initialization Failed ( 0x%X )\n", result); - return result; - } - - if (MXC_RTC_Start() != E_NO_ERROR) { - printf("RTC Start Failed ( 0x%X )\n", result); - return result; - } - - result = config_emac(); - - if (result) { - printf("EMAC Driver Initialization Failed ( 0x%X )\n", result); - return result; - } - - lwip_config.name[0] = 'e'; - lwip_config.name[1] = '0'; - lwip_config.link_callback = link_callback_func; - lwip_config.sys_get_ms = sys_get_ms; - - result = MXC_ETH_Init(&lwip_config); - - if (result) { - printf("LWIP Initialization Failed ( 0x%X )\n", result); - return result; - } - - /** - * Ping Example Configuration: - * To use DHCP instead of static ip, set "USE_DHCP" definition - * in the "lwipcfg.h" and update the "ping_target_ip" if necessary - */ - LWIP_PORT_INIT_GW(&ping_target_ip); - ping_init(&ping_target_ip); - - while (1) { - result = MXC_ETH_Tick(); - - if (result) { - printf("Error Occurred ( 0x%X )\n", result); - break; - } - } - - return result; -} diff --git a/Examples/MAX32572/lwIP_Ping/ping.c b/Examples/MAX32572/lwIP_Ping/ping.c deleted file mode 100644 index 82e683dba17..00000000000 --- a/Examples/MAX32572/lwIP_Ping/ping.c +++ /dev/null @@ -1,413 +0,0 @@ -/** - * @file - * Ping sender module - * - */ - -/* - * Copyright (c) 2001-2004 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - */ - -/** - * This is an example of a "ping" sender (with raw API and socket API). - * It can be used as a start point to maintain opened a network connection, or - * like a network "watchdog" for your device. - * - */ - -#include -#include "lwip/opt.h" - -#if LWIP_RAW /* don't build if not configured for use in lwipopts.h */ - -#include "ping.h" - -#include "lwip/mem.h" -#include "lwip/raw.h" -#include "lwip/icmp.h" -#include "lwip/netif.h" -#include "lwip/sys.h" -#include "lwip/timeouts.h" -#include "lwip/inet_chksum.h" -#include "lwip/prot/ip4.h" - -#if PING_USE_SOCKETS -#include "lwip/sockets.h" -#include "lwip/inet.h" -#endif /* PING_USE_SOCKETS */ - -/** - * PING_DEBUG: Enable debugging for PING. - */ -#ifndef PING_DEBUG -#define PING_DEBUG LWIP_DBG_ON -#endif - -/** ping receive timeout - in milliseconds */ -#ifndef PING_RCV_TIMEO -#define PING_RCV_TIMEO 1000 -#endif - -/** ping delay - in milliseconds */ -#ifndef PING_DELAY -#define PING_DELAY 2000 -#endif - -/** ping identifier - must fit on a u16_t */ -#ifndef PING_ID -#define PING_ID 0xAFAF -#endif - -/** ping additional data size to include in the packet */ -#ifndef PING_DATA_SIZE -#define PING_DATA_SIZE 32 -#endif - -/** ping result action - no default action */ -#ifndef PING_RESULT -#define PING_RESULT(ping_ok) -#endif - -/* ping variables */ -static const ip_addr_t *ping_target; -static u16_t ping_seq_num; -#ifdef LWIP_DEBUG -static u32_t ping_time; -#endif /* LWIP_DEBUG */ -#if !PING_USE_SOCKETS -static struct raw_pcb *ping_pcb; -#endif /* PING_USE_SOCKETS */ - -/** Prepare a echo ICMP request */ -static void ping_prepare_echo(struct icmp_echo_hdr *iecho, u16_t len) -{ - size_t i; - size_t data_len = len - sizeof(struct icmp_echo_hdr); - - ICMPH_TYPE_SET(iecho, ICMP_ECHO); - ICMPH_CODE_SET(iecho, 0); - iecho->chksum = 0; - iecho->id = PING_ID; - iecho->seqno = lwip_htons(++ping_seq_num); - - /* fill the additional data buffer with some data */ - for (i = 0; i < data_len; i++) { - ((char *)iecho)[sizeof(struct icmp_echo_hdr) + i] = (char)i; - } - - iecho->chksum = inet_chksum(iecho, len); -} - -#if PING_USE_SOCKETS - -/* Ping using the socket ip */ -static err_t ping_send(int s, const ip_addr_t *addr) -{ - int err; - struct icmp_echo_hdr *iecho; - struct sockaddr_storage to; - size_t ping_size = sizeof(struct icmp_echo_hdr) + PING_DATA_SIZE; - LWIP_ASSERT("ping_size is too big", ping_size <= 0xffff); - -#if LWIP_IPV6 - - if (IP_IS_V6(addr) && !ip6_addr_isipv4mappedipv6(ip_2_ip6(addr))) { - /* todo: support ICMP6 echo */ - return ERR_VAL; - } - -#endif /* LWIP_IPV6 */ - - iecho = (struct icmp_echo_hdr *)mem_malloc((mem_size_t)ping_size); - - if (!iecho) { - return ERR_MEM; - } - - ping_prepare_echo(iecho, (u16_t)ping_size); - -#if LWIP_IPV4 - - if (IP_IS_V4(addr)) { - struct sockaddr_in *to4 = (struct sockaddr_in *)&to; - to4->sin_len = sizeof(to4); - to4->sin_family = AF_INET; - inet_addr_from_ip4addr(&to4->sin_addr, ip_2_ip4(addr)); - } - -#endif /* LWIP_IPV4 */ - -#if LWIP_IPV6 - - if (IP_IS_V6(addr)) { - struct sockaddr_in6 *to6 = (struct sockaddr_in6 *)&to; - to6->sin6_len = sizeof(to6); - to6->sin6_family = AF_INET6; - inet6_addr_from_ip6addr(&to6->sin6_addr, ip_2_ip6(addr)); - } - -#endif /* LWIP_IPV6 */ - - err = lwip_sendto(s, iecho, ping_size, 0, (struct sockaddr *)&to, sizeof(to)); - - mem_free(iecho); - - return (err ? ERR_OK : ERR_VAL); -} - -static void ping_recv(int s) -{ - char buf[64]; - int len; - struct sockaddr_storage from; - int fromlen = sizeof(from); - - while ((len = lwip_recvfrom(s, buf, sizeof(buf), 0, (struct sockaddr *)&from, - (socklen_t *)&fromlen)) > 0) { - if (len >= (int)(sizeof(struct ip_hdr) + sizeof(struct icmp_echo_hdr))) { - ip_addr_t fromaddr; - memset(&fromaddr, 0, sizeof(fromaddr)); - -#if LWIP_IPV4 - - if (from.ss_family == AF_INET) { - struct sockaddr_in *from4 = (struct sockaddr_in *)&from; - inet_addr_to_ip4addr(ip_2_ip4(&fromaddr), &from4->sin_addr); - IP_SET_TYPE_VAL(fromaddr, IPADDR_TYPE_V4); - } - -#endif /* LWIP_IPV4 */ - -#if LWIP_IPV6 - - if (from.ss_family == AF_INET6) { - struct sockaddr_in6 *from6 = (struct sockaddr_in6 *)&from; - inet6_addr_to_ip6addr(ip_2_ip6(&fromaddr), &from6->sin6_addr); - IP_SET_TYPE_VAL(fromaddr, IPADDR_TYPE_V6); - } - -#endif /* LWIP_IPV6 */ - - LWIP_DEBUGF(PING_DEBUG, ("ping: recv ")); - ip_addr_debug_print_val(PING_DEBUG, fromaddr); - LWIP_DEBUGF(PING_DEBUG, (" %" U32_F " ms\n", (sys_now() - ping_time))); - - /* todo: support ICMP6 echo */ -#if LWIP_IPV4 - - if (IP_IS_V4_VAL(fromaddr)) { - struct ip_hdr *iphdr; - struct icmp_echo_hdr *iecho; - - iphdr = (struct ip_hdr *)buf; - iecho = (struct icmp_echo_hdr *)(buf + (IPH_HL(iphdr) * 4)); - - if ((iecho->id == PING_ID) && (iecho->seqno == lwip_htons(ping_seq_num))) { - /* do some ping result processing */ - PING_RESULT((ICMPH_TYPE(iecho) == ICMP_ER)); - return; - } else { - LWIP_DEBUGF(PING_DEBUG, ("ping: drop\n")); - } - } - -#endif /* LWIP_IPV4 */ - } - - fromlen = sizeof(from); - } - - if (len == 0) { - LWIP_DEBUGF(PING_DEBUG, - ("ping: recv - %" U32_F " ms - timeout\n", (sys_now() - ping_time))); - } - - /* do some ping result processing */ - PING_RESULT(0); -} - -static void ping_thread(void *arg) -{ - int s; - int ret; - -#if LWIP_SO_SNDRCVTIMEO_NONSTANDARD - int timeout = PING_RCV_TIMEO; -#else - struct timeval timeout; - timeout.tv_sec = PING_RCV_TIMEO / 1000; - timeout.tv_usec = (PING_RCV_TIMEO % 1000) * 1000; -#endif - LWIP_UNUSED_ARG(arg); - -#if LWIP_IPV6 - - if (IP_IS_V4(ping_target) || ip6_addr_isipv4mappedipv6(ip_2_ip6(ping_target))) { - s = lwip_socket(AF_INET6, SOCK_RAW, IP_PROTO_ICMP); - } else { - s = lwip_socket(AF_INET6, SOCK_RAW, IP6_NEXTH_ICMP6); - } - -#else - s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP); -#endif - - if (s < 0) { - return; - } - - ret = lwip_setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); - LWIP_ASSERT("setting receive timeout failed", ret == 0); - LWIP_UNUSED_ARG(ret); - - while (1) { - if (ping_send(s, ping_target) == ERR_OK) { - LWIP_DEBUGF(PING_DEBUG, ("ping: send ")); - ip_addr_debug_print(PING_DEBUG, ping_target); - LWIP_DEBUGF(PING_DEBUG, ("\n")); - -#ifdef LWIP_DEBUG - ping_time = sys_now(); -#endif /* LWIP_DEBUG */ - ping_recv(s); - } else { - LWIP_DEBUGF(PING_DEBUG, ("ping: send ")); - ip_addr_debug_print(PING_DEBUG, ping_target); - LWIP_DEBUGF(PING_DEBUG, (" - error\n")); - } - - sys_msleep(PING_DELAY); - } -} - -#else /* PING_USE_SOCKETS */ - -/* Ping using the raw ip */ -static u8_t ping_recv(void *arg, struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *addr) -{ - struct icmp_echo_hdr *iecho; - LWIP_UNUSED_ARG(arg); - LWIP_UNUSED_ARG(pcb); - LWIP_UNUSED_ARG(addr); - LWIP_ASSERT("p != NULL", p != NULL); - - if ((p->tot_len >= (PBUF_IP_HLEN + sizeof(struct icmp_echo_hdr))) && - pbuf_remove_header(p, PBUF_IP_HLEN) == 0) { - iecho = (struct icmp_echo_hdr *)p->payload; - - if ((iecho->id == PING_ID) && (iecho->seqno == lwip_htons(ping_seq_num))) { - LWIP_DEBUGF(PING_DEBUG, ("ping: recv ")); - ip_addr_debug_print(PING_DEBUG, addr); - LWIP_DEBUGF(PING_DEBUG, (" %" U32_F " ms\n", (sys_now() - ping_time))); - - /* do some ping result processing */ - PING_RESULT(1); - pbuf_free(p); - return 1; /* eat the packet */ - } - - /* not eaten, restore original packet */ - pbuf_add_header(p, PBUF_IP_HLEN); - } - - return 0; /* don't eat the packet */ -} - -static void ping_send(struct raw_pcb *raw, const ip_addr_t *addr) -{ - struct pbuf *p; - struct icmp_echo_hdr *iecho; - size_t ping_size = sizeof(struct icmp_echo_hdr) + PING_DATA_SIZE; - - LWIP_DEBUGF(PING_DEBUG, ("ping: send ")); - ip_addr_debug_print(PING_DEBUG, addr); - LWIP_DEBUGF(PING_DEBUG, ("\n")); - LWIP_ASSERT("ping_size <= 0xffff", ping_size <= 0xffff); - - p = pbuf_alloc(PBUF_IP, (u16_t)ping_size, PBUF_RAM); - - if (!p) { - return; - } - - if ((p->len == p->tot_len) && (p->next == NULL)) { - iecho = (struct icmp_echo_hdr *)p->payload; - - ping_prepare_echo(iecho, (u16_t)ping_size); - - raw_sendto(raw, p, addr); -#ifdef LWIP_DEBUG - ping_time = sys_now(); -#endif /* LWIP_DEBUG */ - } - - pbuf_free(p); -} - -static void ping_timeout(void *arg) -{ - struct raw_pcb *pcb = (struct raw_pcb *)arg; - - LWIP_ASSERT("ping_timeout: no pcb given!", pcb != NULL); - - ping_send(pcb, ping_target); - - sys_timeout(PING_DELAY, ping_timeout, pcb); -} - -static void ping_raw_init(void) -{ - ping_pcb = raw_new(IP_PROTO_ICMP); - LWIP_ASSERT("ping_pcb != NULL", ping_pcb != NULL); - - raw_recv(ping_pcb, ping_recv, NULL); - raw_bind(ping_pcb, IP_ADDR_ANY); - sys_timeout(PING_DELAY, ping_timeout, ping_pcb); -} - -void ping_send_now(void) -{ - LWIP_ASSERT("ping_pcb != NULL", ping_pcb != NULL); - ping_send(ping_pcb, ping_target); -} - -#endif /* PING_USE_SOCKETS */ - -void ping_init(const ip_addr_t *ping_addr) -{ - ping_target = ping_addr; - -#if PING_USE_SOCKETS - sys_thread_new("ping_thread", ping_thread, NULL, DEFAULT_THREAD_STACKSIZE, DEFAULT_THREAD_PRIO); -#else /* PING_USE_SOCKETS */ - ping_raw_init(); -#endif /* PING_USE_SOCKETS */ -} - -#endif /* LWIP_RAW */ diff --git a/Examples/MAX32572/lwIP_Ping/ping.h b/Examples/MAX32572/lwIP_Ping/ping.h deleted file mode 100644 index b889155de27..00000000000 --- a/Examples/MAX32572/lwIP_Ping/ping.h +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************/ - -#ifndef EXAMPLES_MAX32572_LWIP_PING_PING_H_ -#define EXAMPLES_MAX32572_LWIP_PING_PING_H_ - -#include "lwip/ip_addr.h" - -/** - * PING_USE_SOCKETS: Set to 1 to use sockets, otherwise the raw api is used - */ -#ifndef PING_USE_SOCKETS -#define PING_USE_SOCKETS LWIP_SOCKET -#endif - -void ping_init(const ip_addr_t *ping_addr); - -#if !PING_USE_SOCKETS -void ping_send_now(void); -#endif /* !PING_USE_SOCKETS */ - -#endif // EXAMPLES_MAX32572_LWIP_PING_PING_H_ diff --git a/Examples/MAX32572/lwIP_TCP/.cproject b/Examples/MAX32572/lwIP_TCP/.cproject deleted file mode 100644 index 182a011f2ab..00000000000 --- a/Examples/MAX32572/lwIP_TCP/.cproject +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/lwIP_TCP/.project b/Examples/MAX32572/lwIP_TCP/.project deleted file mode 100644 index 69a273e7194..00000000000 --- a/Examples/MAX32572/lwIP_TCP/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - lwIP_TCP - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX32572/lwIP_TCP/.vscode/c_cpp_properties.json b/Examples/MAX32572/lwIP_TCP/.vscode/c_cpp_properties.json deleted file mode 100755 index bd9d5efd0c4..00000000000 --- a/Examples/MAX32572/lwIP_TCP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32572/lwIP_TCP/.vscode/launch.json b/Examples/MAX32572/lwIP_TCP/.vscode/launch.json deleted file mode 100755 index a6009335454..00000000000 --- a/Examples/MAX32572/lwIP_TCP/.vscode/launch.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "configurations": [ - { - "name": "GDB (Arm M4)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/${config:program_file}", - "args": [], - "stopAtEntry": true, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3333", - "debugServerArgs": "-s ${config:OCD_path}/scripts -f interface/${config:M4_OCD_interface_file} -f target/${config:M4_OCD_target_file} -c \"init; reset halt\"", - "serverStarted": "Info : Listening on port 3333 for gdb connections", - "filterStderr": true, - "targetArchitecture": "arm", - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-arm.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text":"exec-file build/${config:program_file}" }, - { "text":"symbol-file build/${config:symbol_file}" }, - { "text":"target remote localhost:3333" }, - { "text":"monitor reset halt" }, - { "text":"b main" } - ] - }, - { - "name": "GDB (RISC-V)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/buildrv/${config:program_file}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "linux": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/openocd", - }, - "windows": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe", - "debugServerPath": "${config:OCD_path}/openocd.exe", - }, - "osx": { - "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb", - "debugServerPath": "${config:OCD_path}/bin/openocd", - }, - "logging": { - "exceptions": true, - "trace": false, - "traceResponse": false, - "engineLogging": false - }, - "miDebuggerServerAddress": "localhost:3334", - "debugServerArgs": "-c \"gdb_port 3334\" -s ${config:OCD_path}/scripts -f interface/${config:RV_OCD_interface_file} -f target/${config:RV_OCD_target_file}", - "serverStarted": "Info : Listening on port 3334 for gdb connections", - "filterStderr": true, - "customLaunchSetupCommands": [ - {"text":"-list-features"} - ], - "targetArchitecture": "arm", - "setupCommands": [ - { "text":"set logging overwrite on"}, - { "text":"set logging file debug-riscv.log"}, - { "text":"set logging on"}, - { "text":"cd ${workspaceFolder}" }, - { "text": "set architecture riscv:rv32", "ignoreFailures": false }, - { "text":"exec-file build/${config:program_file}", "ignoreFailures": false }, - { "text":"symbol-file buildrv/${config:symbol_file}", "ignoreFailures": false }, - { "text":"target remote localhost:3334" }, - { "text":"b main" }, - { "text": "set $pc=Reset_Handler","ignoreFailures": false } - ] - } - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/lwIP_TCP/.vscode/settings.json b/Examples/MAX32572/lwIP_TCP/.vscode/settings.json deleted file mode 100755 index de06b0b4b58..00000000000 --- a/Examples/MAX32572/lwIP_TCP/.vscode/settings.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.defaultProfile.windows": "Command Prompt", - - "terminal.integrated.env.linux": { - "PATH":"${config:OCD_path}:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - "terminal.integrated.env.osx": { - "PATH":"${config:OCD_path}/bin:${config:ARM_GCC_path}/bin:${config:xPack_GCC_path}/bin:${env:PATH}", - "MAXIM_PATH":"${config:MAXIM_PATH}" - }, - - "target":"MAX32572", - "board":"EvKit_V1", - - "project_name":"${workspaceFolderBasename}", - - "program_file":"${config:project_name}.elf", - "symbol_file":"${config:program_file}", - - "M4_OCD_interface_file":"cmsis-dap.cfg", - "M4_OCD_target_file":"${config:target}.cfg", - "RV_OCD_interface_file":"ftdi/olimex-arm-usb-ocd-h.cfg", - "RV_OCD_target_file":"${config:target}_riscv.cfg", - - "v_Arm_GCC":"10.3", - "v_xPack_GCC":"10.2.0-1.2", - - "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD", - "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}", - "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-embed-gcc/${config:v_xPack_GCC}", - "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin", - - "C_Cpp.default.includePath": [ - "${workspaceFolder}", - "${workspaceFolder}/**", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Device/Maxim/${config:target}/Include", - "${config:MAXIM_PATH}/Libraries/CMSIS/Include", - "${config:ARM_GCC_path}/arm-none-eabi/include", - "${config:ARM_GCC_path}/lib/gcc/arm-none-eabi/${config:v_Arm_GCC}/include", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Include/${config:target}", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/ExtMemory", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen" - ], - "C_Cpp.default.browse.path": [ - "${workspaceFolder}", - "${config:MAXIM_PATH}/Libraries/Boards/${config:target}/${config:board}/Source", - "${config:MAXIM_PATH}/Libraries/PeriphDrivers/Source", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Camera", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Display", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/LED", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PMIC", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/PushButton", - "${config:MAXIM_PATH}/Libraries/MiscDrivers/Touchscreen", - "${config:MAXIM_PATH}/Libraries/MiscDrivers" - ], - "C_Cpp.default.defines": [ - "${config:board}" - ] -} - diff --git a/Examples/MAX32572/lwIP_TCP/.vscode/tasks.json b/Examples/MAX32572/lwIP_TCP/.vscode/tasks.json deleted file mode 100755 index 3951f3508da..00000000000 --- a/Examples/MAX32572/lwIP_TCP/.vscode/tasks.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "make -r -j 8 all TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean", - "type": "shell", - "command": "make -j 8 clean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "clean-periph", - "type": "shell", - "command": "make -j 8 distclean TARGET=${config:target} BOARD=${config:board} MAXIM_PATH=${config:MAXIM_PATH} MAKE=make PROJECT=${config:project_name}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4 ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "flash & run", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--cd=\"${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "-x=\"${workspaceFolder}/.vscode/flash.gdb\"", - "--ex=\"flash_m4_run ${config:OCD_path} ${config:M4_OCD_interface_file} ${config:M4_OCD_target_file}\"", - "--batch" - ], - "group": "build", - "problemMatcher": [], - "dependsOn":["build"] - }, - { - "label": "erase flash", - "type": "shell", - "command": "openocd", - "args": [ - "-s", "${config:OCD_path}/scripts", - "-f", "interface/${config:M4_OCD_interface_file}", - "-f", "target/${config:M4_OCD_target_file}", - "-c", "\"init; reset halt; max32xxx mass_erase 0;\"", - "-c", "exit" - ], - "group":"build", - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "openocd (m4)", - "type": "shell", - "command": "openocd", - "args": [ - "-s", - "${config:OCD_path}/scripts", - "-f", - "interface/${config:M4_OCD_interface_file}", - "-f", - "target/${config:M4_OCD_target_file}", - "-c", - "\"init; reset halt\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - { - "label": "gdb (m4)", - "type": "shell", - "command": "arm-none-eabi-gdb", - "args": [ - "--ex=\"cd ${workspaceFolder}\"", - "--se=\"build/${config:program_file}\"", - "--symbols=build/${config:symbol_file}", - "--ex=\"target remote localhost:3333\"", - "--ex=\"monitor reset halt\"", - "--ex=\"b main\"", - "--ex=\"c\"" - ], - "problemMatcher": [], - "dependsOn":[] - }, - ] -} \ No newline at end of file diff --git a/Examples/MAX32572/lwIP_TCP/Makefile b/Examples/MAX32572/lwIP_TCP/Makefile deleted file mode 100644 index d2a40bdfb0c..00000000000 --- a/Examples/MAX32572/lwIP_TCP/Makefile +++ /dev/null @@ -1,163 +0,0 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - # - ############################################################################### - -# This is the name of the build output file -ifeq "$(PROJECT)" "" -PROJECT=max32572 -endif - -# Specify the target processor -ifeq "$(TARGET)" "" -TARGET=MAX32572 -endif - -# Create Target name variables -TARGET_UC:=$(shell echo $(TARGET) | tr a-z A-Z) -TARGET_LC:=$(shell echo $(TARGET) | tr A-Z a-z) - -# Select 'GCC' or 'IAR' compiler -COMPILER=GCC - -# Specify the board used -ifeq "$(BOARD)" "" -BOARD=EvKit_V1 -endif - -# This is the path to the CMSIS root directory -ifeq "$(MAXIM_PATH)" "" -LIBS_DIR=../../../Libraries -else -LIBS_DIR=/$(subst \,/,$(subst :,,$(MAXIM_PATH))/Libraries) -endif - -CMSIS_ROOT=$(LIBS_DIR)/CMSIS -SECURE_BOOT_TOOLS_DIR=$(LIBS_DIR)/../Tools/SBT -CA_SIGN_BUILD=$(SECURE_BOOT_TOOLS_DIR)/bin/sign_app -BUILD_SESSION=$(SECURE_BOOT_TOOLS_DIR)/bin/build_scp_session -ifeq ($(OS), Windows_NT) -CA_SIGN_BUILD := $(CA_SIGN_BUILD).exe -BUILD_SESSION := $(BUILD_SESSION).exe -# Must use .exe extension on Windows -endif -TEST_KEY=$(SECURE_BOOT_TOOLS_DIR)/devices/$(TARGET_UC)/keys/maximtestcrk.key -SCP_PACKETS=scp_packets - -#Use this for other library make files so they are all based off the same as root as the project -export CMSIS_ROOT - -# Source files for this test (add path to VPATH below) -SRCS = main.c -SRCS += header_MAX32572.c -SRCS += tcpecho_raw.c - -# Where to find source files for this test -VPATH=. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# Where to find header files for this test -IPATH = . - -# Enable assertion checking for development -PROJ_CFLAGS+=-DMXC_ASSERT_ENABLE - -# Enable all warnings -PROJ_CFLAGS+=-Wall - -# Specify the target revision to override default -# "A2" in ASCII -# TARGET_REV=0x4132 - -# Use this variables to specify and alternate tool path -#TOOL_DIR=/opt/gcc-arm-none-eabi-4_8-2013q4/bin - - -# Use these variables to add project specific tool options -#PROJ_CFLAGS+=--specs=nano.specs -#PROJ_LDFLAGS+=--specs=nano.specs - -# Point this variable to a startup file to override the default file -#STARTUPFILE=start.S - -# Set MXC_OPTIMIZE to override the default optimization level -#MXC_OPTIMIZE_CFLAGS=-O1 - -# Point this variable to a linker file to override the default file -LINKER=$(TARGET_LC).ld -LINKERFILE=$(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC/$(LINKER) - -################################################################################ -# Include external library makefiles here - -# Include the BSP -BOARD_DIR=$(LIBS_DIR)/Boards/$(TARGET_UC)/$(BOARD) -include $(BOARD_DIR)/board.mk - -# Include the peripheral driver -PERIPH_DRIVER_DIR=$(LIBS_DIR)/PeriphDrivers -include $(PERIPH_DRIVER_DIR)/periphdriver.mk -export PERIPH_DRIVER_DIR - -LWIP_DIR=$(LIBS_DIR)/lwIP -include $(LWIP_DIR)/lwip.mk -export LWIP_DIR -################################################################################ -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -all: -ifneq "$(LINKER)" "$(TARGET_LC)_ram.ld" - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf -R .sig -O binary $(BUILD_DIR)/$(PROJECT).bin - @echo " " - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - @echo " " - $(CA_SIGN_BUILD) -c $(TARGET_UC) key_file=$(TEST_KEY) algo=ecdsa header=no ca=$(BUILD_DIR)/$(PROJECT).bin sca=$(BUILD_DIR)/$(PROJECT).sbin - @echo " " - arm-none-eabi-objcopy $(BUILD_DIR)/$(PROJECT).elf --update-section .sig=$(BUILD_DIR)/$(PROJECT).sig -endif - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -lwipclean: - $(MAKE) -f ${LWIP_DIR}/lwip.mk clean.lwip - -slaclean: - rm -r ${SCP_PACKETS}/ - -# The rule to clean out all the build products. -distclean: clean libclean slaclean - -sla: all - $(BUILD_SESSION) -c $(TARGET_UC) key_file=$(TEST_KEY) ${SCP_PACKETS} $(BUILD_DIR)/$(PROJECT).sbin diff --git a/Examples/MAX32572/lwIP_TCP/README.md b/Examples/MAX32572/lwIP_TCP/README.md deleted file mode 100644 index 91c2d496f47..00000000000 --- a/Examples/MAX32572/lwIP_TCP/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## Description - -TBD - - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Project-Specific Build Notes - -(None - this project builds as a standard example) - -## Required Connections - -- Connect a USB cable between the PC and the CN1 (USB/PWR) connector. -- Connect a USB cable between the PC and the CN1 (USB/UART0) connector. -- Open an terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - -## Expected Output - -TBD - diff --git a/Examples/MAX32572/lwIP_TCP/lwIP_TCP.launch b/Examples/MAX32572/lwIP_TCP/lwIP_TCP.launch deleted file mode 100644 index ae0bef1a1b4..00000000000 --- a/Examples/MAX32572/lwIP_TCP/lwIP_TCP.launch +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/MAX32572/lwIP_TCP/main.c b/Examples/MAX32572/lwIP_TCP/main.c deleted file mode 100644 index bfb4ecb7323..00000000000 --- a/Examples/MAX32572/lwIP_TCP/main.c +++ /dev/null @@ -1,188 +0,0 @@ -/** - * @file main.c - * @brief lwIP TCP Example - * @details This example shows how to use TCP functions with lwIP library - * @note - */ - -/******************************************************************************* -* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a -* copy of this software and associated documentation files (the "Software"), -* to deal in the Software without restriction, including without limitation -* the rights to use, copy, modify, merge, publish, distribute, sublicense, -* and/or sell copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* -******************************************************************************/ - -/***** Includes *****/ -#include -#include - -#include - -#include "mxc_eth.h" -#include "lwipcfg.h" -#include "tcpecho_raw.h" - -/***** Definitions *****/ -#define ETH_RX_BUFFER_SIZE (4096) -#define ETH_RX_RING_BUFFER_SIZE (256) -#define ETH_TX_RING_BUFFER_SIZE (128) -#define ETH_TOTAL_BUFFER_SIZE \ - (ETH_RX_BUFFER_SIZE + ETH_RX_RING_BUFFER_SIZE + ETH_TX_RING_BUFFER_SIZE) - -/***** Globals *****/ -unsigned char eth_buffer[ETH_TOTAL_BUFFER_SIZE]; - -/***** Functions *****/ -static void rxcmpl_handler_func(void) -{ - MXC_ETH_RecvIrq(); -} - -static int config_emac(void) -{ - int result; - mxc_emac_config_t emac_config; - unsigned char hwaddr[MAC_LEN] = { MAC_BYTE1, MAC_BYTE2, MAC_BYTE3, - MAC_BYTE4, MAC_BYTE5, MAC_BYTE6 }; - - memset(&emac_config, 0, sizeof(emac_config)); - - emac_config.rx_ring_buff = ð_buffer[0]; - emac_config.rx_ring_buff_size = ETH_RX_RING_BUFFER_SIZE; - - emac_config.tx_ring_buff = ð_buffer[ETH_RX_RING_BUFFER_SIZE]; - emac_config.tx_ring_buff_size = ETH_TX_RING_BUFFER_SIZE; - - emac_config.rx_buff = ð_buffer[ETH_RX_RING_BUFFER_SIZE + ETH_TX_RING_BUFFER_SIZE]; - emac_config.rx_buff_size = ETH_RX_BUFFER_SIZE; - - emac_config.phy_addr = 0; - emac_config.delay_us = MXC_Delay; - - emac_config.interrupt_mode = 1; - emac_config.interrupt_events = MXC_EMAC_EVENT_RXCMPL; - - emac_config.conf_cb_funcs.rxcmpl_handler = rxcmpl_handler_func; - - result = MXC_EMAC_Init(&emac_config); - - if (result) { - return result; - } - - result = MXC_EMAC_SetHwAddr(hwaddr); - - if (result) { - return result; - } - - NVIC_SetVector(EMAC_IRQn, MXC_EMAC_IrqHandler); - NVIC_EnableIRQ(EMAC_IRQn); - __enable_irq(); - - return E_NO_ERROR; -} - -static void link_callback_func(struct netif *netif) -{ - if (netif->flags & NETIF_FLAG_LINK_UP) { - printf("Link Status: Up\n"); - } else { - printf("Link Status: Down\n"); - } -} - -static unsigned int sys_get_ms(void) -{ - uint32_t sec, ssec; - double subsec; - uint32_t ms; - - MXC_RTC_GetSubSeconds(&ssec); - subsec = (double)ssec / (double)(4096.0); - - MXC_RTC_GetSeconds(&sec); - - ms = (sec * 1000) + (int)(subsec * 1000); - - return ms; -} - -int main(void) -{ - int result; - mxc_eth_config_t lwip_config; - - printf("*** TCP Echo Server Example ***\n"); - - result = MXC_RTC_Init(0, 0); - - if (result) { - printf("RTC Initialization Failed ( 0x%X )\n", result); - return result; - } - - if (MXC_RTC_Start() != E_NO_ERROR) { - printf("RTC Start Failed ( 0x%X )\n", result); - return result; - } - - result = config_emac(); - - if (result) { - printf("EMAC Driver Initialization Failed ( 0x%X )\n", result); - return result; - } - - lwip_config.name[0] = 'e'; - lwip_config.name[1] = '0'; - lwip_config.link_callback = link_callback_func; - lwip_config.sys_get_ms = sys_get_ms; - - result = MXC_ETH_Init(&lwip_config); - - if (result) { - printf("LWIP Initialization Failed ( 0x%X )\n", result); - return result; - } - - /* TCP Echo Server */ - tcpecho_raw_init(); - - while (1) { - result = MXC_ETH_Tick(); - - if (result) { - printf("Error Occurred ( 0x%X )\n", result); - break; - } - } - - return result; -} diff --git a/Examples/MAX32572/lwIP_TCP/tcpecho_raw.c b/Examples/MAX32572/lwIP_TCP/tcpecho_raw.c deleted file mode 100644 index d013b425fad..00000000000 --- a/Examples/MAX32572/lwIP_TCP/tcpecho_raw.c +++ /dev/null @@ -1,302 +0,0 @@ -/* - * Copyright (c) 2001-2004 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of and a contribution to the lwIP TCP/IP stack. - * - * Credits go to Adam Dunkels (and the current maintainers) of this software. - * - * Christiaan Simons rewrote this file to get a more stable echo example. - */ - -/** - * @file - * TCP echo server example using raw API. - * - * Echos all bytes sent by connecting client, - * and passively closes when client is done. - * - */ - -#include "lwip/opt.h" -#include "lwip/debug.h" -#include "lwip/stats.h" -#include "lwip/tcp.h" -#include "tcpecho_raw.h" - -#if LWIP_TCP && LWIP_CALLBACK_API - -static struct tcp_pcb *tcpecho_raw_pcb; - -enum tcpecho_raw_states { ES_NONE = 0, ES_ACCEPTED, ES_RECEIVED, ES_CLOSING }; - -struct tcpecho_raw_state { - u8_t state; - u8_t retries; - struct tcp_pcb *pcb; - /* pbuf (chain) to recycle */ - struct pbuf *p; -}; - -static void tcpecho_raw_free(struct tcpecho_raw_state *es) -{ - if (es != NULL) { - if (es->p) { - /* free the buffer chain if present */ - pbuf_free(es->p); - } - - mem_free(es); - } -} - -static void tcpecho_raw_close(struct tcp_pcb *tpcb, struct tcpecho_raw_state *es) -{ - tcp_arg(tpcb, NULL); - tcp_sent(tpcb, NULL); - tcp_recv(tpcb, NULL); - tcp_err(tpcb, NULL); - tcp_poll(tpcb, NULL, 0); - - tcpecho_raw_free(es); - - tcp_close(tpcb); -} - -static void tcpecho_raw_send(struct tcp_pcb *tpcb, struct tcpecho_raw_state *es) -{ - struct pbuf *ptr; - err_t wr_err = ERR_OK; - - while ((wr_err == ERR_OK) && (es->p != NULL) && (es->p->len <= tcp_sndbuf(tpcb))) { - ptr = es->p; - - /* enqueue data for transmission */ - wr_err = tcp_write(tpcb, ptr->payload, ptr->len, 1); - - if (wr_err == ERR_OK) { - u16_t plen; - - plen = ptr->len; - /* continue with next pbuf in chain (if any) */ - es->p = ptr->next; - - if (es->p != NULL) { - /* new reference! */ - pbuf_ref(es->p); - } - - /* chop first pbuf from chain */ - pbuf_free(ptr); - /* we can read more data now */ - tcp_recved(tpcb, plen); - } else if (wr_err == ERR_MEM) { - /* we are low on memory, try later / harder, defer to poll */ - es->p = ptr; - } else { - /* other problem ?? */ - } - } -} - -static void tcpecho_raw_error(void *arg, err_t err) -{ - struct tcpecho_raw_state *es; - - LWIP_UNUSED_ARG(err); - - es = (struct tcpecho_raw_state *)arg; - - tcpecho_raw_free(es); -} - -static err_t tcpecho_raw_poll(void *arg, struct tcp_pcb *tpcb) -{ - err_t ret_err; - struct tcpecho_raw_state *es; - - es = (struct tcpecho_raw_state *)arg; - - if (es != NULL) { - if (es->p != NULL) { - /* there is a remaining pbuf (chain) */ - tcpecho_raw_send(tpcb, es); - } else { - /* no remaining pbuf (chain) */ - if (es->state == ES_CLOSING) { - tcpecho_raw_close(tpcb, es); - } - } - - ret_err = ERR_OK; - } else { - /* nothing to be done */ - tcp_abort(tpcb); - ret_err = ERR_ABRT; - } - - return ret_err; -} - -static err_t tcpecho_raw_sent(void *arg, struct tcp_pcb *tpcb, u16_t len) -{ - struct tcpecho_raw_state *es; - - LWIP_UNUSED_ARG(len); - - es = (struct tcpecho_raw_state *)arg; - es->retries = 0; - - if (es->p != NULL) { - /* still got pbufs to send */ - tcp_sent(tpcb, tcpecho_raw_sent); - tcpecho_raw_send(tpcb, es); - } else { - /* no more pbufs to send */ - if (es->state == ES_CLOSING) { - tcpecho_raw_close(tpcb, es); - } - } - - return ERR_OK; -} - -static err_t tcpecho_raw_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) -{ - struct tcpecho_raw_state *es; - err_t ret_err; - - LWIP_ASSERT("arg != NULL", arg != NULL); - es = (struct tcpecho_raw_state *)arg; - - if (p == NULL) { - /* remote host closed connection */ - es->state = ES_CLOSING; - - if (es->p == NULL) { - /* we're done sending, close it */ - tcpecho_raw_close(tpcb, es); - } else { - /* we're not done yet */ - tcpecho_raw_send(tpcb, es); - } - - ret_err = ERR_OK; - } else if (err != ERR_OK) { - /* cleanup, for unknown reason */ - if (p != NULL) { - pbuf_free(p); - } - - ret_err = err; - } else if (es->state == ES_ACCEPTED) { - /* first data chunk in p->payload */ - es->state = ES_RECEIVED; - /* store reference to incoming pbuf (chain) */ - es->p = p; - tcpecho_raw_send(tpcb, es); - ret_err = ERR_OK; - } else if (es->state == ES_RECEIVED) { - /* read some more data */ - if (es->p == NULL) { - es->p = p; - tcpecho_raw_send(tpcb, es); - } else { - struct pbuf *ptr; - - /* chain pbufs to the end of what we recv'ed previously */ - ptr = es->p; - pbuf_cat(ptr, p); - } - - ret_err = ERR_OK; - } else { - /* unkown es->state, trash data */ - tcp_recved(tpcb, p->tot_len); - pbuf_free(p); - ret_err = ERR_OK; - } - - return ret_err; -} - -static err_t tcpecho_raw_accept(void *arg, struct tcp_pcb *newpcb, err_t err) -{ - err_t ret_err; - struct tcpecho_raw_state *es; - - LWIP_UNUSED_ARG(arg); - - if ((err != ERR_OK) || (newpcb == NULL)) { - return ERR_VAL; - } - - /* Unless this pcb should have NORMAL priority, set its priority now. - When running out of pcbs, low priority pcbs can be aborted to create - new pcbs of higher priority. */ - tcp_setprio(newpcb, TCP_PRIO_MIN); - - es = (struct tcpecho_raw_state *)mem_malloc(sizeof(struct tcpecho_raw_state)); - - if (es != NULL) { - es->state = ES_ACCEPTED; - es->pcb = newpcb; - es->retries = 0; - es->p = NULL; - /* pass newly allocated es to our callbacks */ - tcp_arg(newpcb, es); - tcp_recv(newpcb, tcpecho_raw_recv); - tcp_err(newpcb, tcpecho_raw_error); - tcp_poll(newpcb, tcpecho_raw_poll, 0); - tcp_sent(newpcb, tcpecho_raw_sent); - ret_err = ERR_OK; - } else { - ret_err = ERR_MEM; - } - - return ret_err; -} - -void tcpecho_raw_init(void) -{ - tcpecho_raw_pcb = tcp_new_ip_type(IPADDR_TYPE_ANY); - - if (tcpecho_raw_pcb != NULL) { - err_t err; - - err = tcp_bind(tcpecho_raw_pcb, IP_ANY_TYPE, 7); - - if (err == ERR_OK) { - tcpecho_raw_pcb = tcp_listen(tcpecho_raw_pcb); - tcp_accept(tcpecho_raw_pcb, tcpecho_raw_accept); - } else { - /* abort? output diagnostic? */ - } - } else { - /* abort? output diagnostic? */ - } -} - -#endif /* LWIP_TCP && LWIP_CALLBACK_API */ diff --git a/Examples/MAX32572/lwIP_TCP/tcpecho_raw.h b/Examples/MAX32572/lwIP_TCP/tcpecho_raw.h deleted file mode 100644 index cb72ebdf3b8..00000000000 --- a/Examples/MAX32572/lwIP_TCP/tcpecho_raw.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2001-2004 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - */ -#ifndef EXAMPLES_MAX32572_LWIP_TCP_TCPECHO_RAW_H_ -#define EXAMPLES_MAX32572_LWIP_TCP_TCPECHO_RAW_H_ - -void tcpecho_raw_init(void); - -#endif // EXAMPLES_MAX32572_LWIP_TCP_TCPECHO_RAW_H_ diff --git a/Examples/MAX32650/ADC/Makefile b/Examples/MAX32650/ADC/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/ADC/Makefile +++ b/Examples/MAX32650/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ADC/main.c b/Examples/MAX32650/ADC/main.c index 127baf3731f..87701d1902c 100644 --- a/Examples/MAX32650/ADC/main.c +++ b/Examples/MAX32650/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/ADC_MAX11261/Makefile b/Examples/MAX32650/ADC_MAX11261/Makefile index 4523f278387..a45fa443190 100644 --- a/Examples/MAX32650/ADC_MAX11261/Makefile +++ b/Examples/MAX32650/ADC_MAX11261/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ADC_MAX11261/main.c b/Examples/MAX32650/ADC_MAX11261/main.c index a8173b39c10..fb8af84294f 100644 --- a/Examples/MAX32650/ADC_MAX11261/main.c +++ b/Examples/MAX32650/ADC_MAX11261/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/AES/Makefile b/Examples/MAX32650/AES/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/AES/Makefile +++ b/Examples/MAX32650/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/AES/main.c b/Examples/MAX32650/AES/main.c index fd90112bdec..0bf066834ca 100644 --- a/Examples/MAX32650/AES/main.c +++ b/Examples/MAX32650/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_bayes_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_class_marks_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_convolution_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32650/ARM-DSP/arm_dotproduct_example_f32/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_fft_bin_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_fir_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_graphic_equalizer_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_linear_interp_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_matrix_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_signal_converge_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_sin_cos_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_svm_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32650/ARM-DSP/arm_variance_example/Makefile index 8cf71fe218f..62705ce06ab 100644 --- a/Examples/MAX32650/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32650/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/CLCD/Makefile b/Examples/MAX32650/CLCD/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/CLCD/Makefile +++ b/Examples/MAX32650/CLCD/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/CLCD/frame.h b/Examples/MAX32650/CLCD/frame.h index 526ebeb013f..b9859062e91 100644 --- a/Examples/MAX32650/CLCD/frame.h +++ b/Examples/MAX32650/CLCD/frame.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Examples/MAX32650/CLCD/main.c b/Examples/MAX32650/CLCD/main.c index a5d3b61bdd2..42cdca7804f 100644 --- a/Examples/MAX32650/CLCD/main.c +++ b/Examples/MAX32650/CLCD/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/CRC/Makefile b/Examples/MAX32650/CRC/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/CRC/Makefile +++ b/Examples/MAX32650/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/CRC/main.c b/Examples/MAX32650/CRC/main.c index 25e14cd9c61..903d01a6e5e 100644 --- a/Examples/MAX32650/CRC/main.c +++ b/Examples/MAX32650/CRC/main.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/Coremark/Makefile b/Examples/MAX32650/Coremark/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Coremark/Makefile +++ b/Examples/MAX32650/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/DES/Makefile b/Examples/MAX32650/DES/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/DES/Makefile +++ b/Examples/MAX32650/DES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/DES/main.c b/Examples/MAX32650/DES/main.c index 5959edcb0ac..ca3546cf846 100644 --- a/Examples/MAX32650/DES/main.c +++ b/Examples/MAX32650/DES/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/DMA/Makefile b/Examples/MAX32650/DMA/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/DMA/Makefile +++ b/Examples/MAX32650/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/DMA/main.c b/Examples/MAX32650/DMA/main.c index dcb23e71d2d..b7b532783ee 100644 --- a/Examples/MAX32650/DMA/main.c +++ b/Examples/MAX32650/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/EEPROM_Emulator/Makefile b/Examples/MAX32650/EEPROM_Emulator/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/EEPROM_Emulator/Makefile +++ b/Examples/MAX32650/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/EEPROM_Emulator/include/cache.h b/Examples/MAX32650/EEPROM_Emulator/include/cache.h index 9263b1016d4..14476c4cce7 100644 --- a/Examples/MAX32650/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32650/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32650_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32650_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32650_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32650/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32650/EEPROM_Emulator/include/eeprom.h index e4956f57a15..95a5bd60253 100644 --- a/Examples/MAX32650/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32650/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32650_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32650_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32650_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32650/EEPROM_Emulator/main.c b/Examples/MAX32650/EEPROM_Emulator/main.c index 1f233e9a1e0..1dacc225f0f 100644 --- a/Examples/MAX32650/EEPROM_Emulator/main.c +++ b/Examples/MAX32650/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/EEPROM_Emulator/src/cache.c b/Examples/MAX32650/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32650/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32650/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32650/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32650/EEPROM_Emulator/src/eeprom.c index 924c774a609..b8f11c39d7f 100644 --- a/Examples/MAX32650/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32650/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32650/EMCC/Makefile b/Examples/MAX32650/EMCC/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/EMCC/Makefile +++ b/Examples/MAX32650/EMCC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/EMCC/main.c b/Examples/MAX32650/EMCC/main.c index 33c2a1790a6..116227dd895 100644 --- a/Examples/MAX32650/EMCC/main.c +++ b/Examples/MAX32650/EMCC/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/Flash/Makefile b/Examples/MAX32650/Flash/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Flash/Makefile +++ b/Examples/MAX32650/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Flash/main.c b/Examples/MAX32650/Flash/main.c index 09c3b0f1c32..0e957da4869 100644 --- a/Examples/MAX32650/Flash/main.c +++ b/Examples/MAX32650/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32650/Flash_CLI/FreeRTOSConfig.h index 739d8fc0939..c4350a970f4 100644 --- a/Examples/MAX32650/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32650/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32650/Flash_CLI/Makefile b/Examples/MAX32650/Flash_CLI/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Flash_CLI/Makefile +++ b/Examples/MAX32650/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Flash_CLI/definitions.h b/Examples/MAX32650/Flash_CLI/definitions.h index 89180e5f9f1..156c15f18b0 100644 --- a/Examples/MAX32650/Flash_CLI/definitions.h +++ b/Examples/MAX32650/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32650/Flash_CLI/main.c b/Examples/MAX32650/Flash_CLI/main.c index 21b3553cf31..7a55ba7f7e3 100644 --- a/Examples/MAX32650/Flash_CLI/main.c +++ b/Examples/MAX32650/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32650/FreeRTOSDemo/FreeRTOSConfig.h index 05f052b85af..f258eef14c7 100644 --- a/Examples/MAX32650/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32650/FreeRTOSDemo/FreeRTOSConfig.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Examples/MAX32650/FreeRTOSDemo/Makefile b/Examples/MAX32650/FreeRTOSDemo/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/FreeRTOSDemo/Makefile +++ b/Examples/MAX32650/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32650/FreeRTOSDemo/freertos_tickless.c index f5d7637d60a..67191e2ace3 100644 --- a/Examples/MAX32650/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32650/FreeRTOSDemo/freertos_tickless.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32650/FreeRTOSDemo/main.c b/Examples/MAX32650/FreeRTOSDemo/main.c index 06491a97d5a..0530f099664 100644 --- a/Examples/MAX32650/FreeRTOSDemo/main.c +++ b/Examples/MAX32650/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/GPIO/Makefile b/Examples/MAX32650/GPIO/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/GPIO/Makefile +++ b/Examples/MAX32650/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/GPIO/main.c b/Examples/MAX32650/GPIO/main.c index 179f868da18..f69bd4c312a 100644 --- a/Examples/MAX32650/GPIO/main.c +++ b/Examples/MAX32650/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32650/HBMC/Makefile b/Examples/MAX32650/HBMC/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/HBMC/Makefile +++ b/Examples/MAX32650/HBMC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/HBMC/main.c b/Examples/MAX32650/HBMC/main.c index f76e7b071ab..364ae49f25f 100644 --- a/Examples/MAX32650/HBMC/main.c +++ b/Examples/MAX32650/HBMC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/HBMC/ramfunc.c b/Examples/MAX32650/HBMC/ramfunc.c index 600591daea4..b4a83fdcfb6 100644 --- a/Examples/MAX32650/HBMC/ramfunc.c +++ b/Examples/MAX32650/HBMC/ramfunc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "led.h" diff --git a/Examples/MAX32650/Hello_World/Makefile b/Examples/MAX32650/Hello_World/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Hello_World/Makefile +++ b/Examples/MAX32650/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Hello_World/main.c b/Examples/MAX32650/Hello_World/main.c index c9a142be8b7..3ae710fe5d8 100644 --- a/Examples/MAX32650/Hello_World/main.c +++ b/Examples/MAX32650/Hello_World/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/Hello_World_Cpp/Makefile b/Examples/MAX32650/Hello_World_Cpp/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Hello_World_Cpp/Makefile +++ b/Examples/MAX32650/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Hello_World_Cpp/main.cpp b/Examples/MAX32650/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32650/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32650/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/I2C/Makefile b/Examples/MAX32650/I2C/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/I2C/Makefile +++ b/Examples/MAX32650/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/I2C/main.c b/Examples/MAX32650/I2C/main.c index 5fdfef5c642..78ef89ea51d 100644 --- a/Examples/MAX32650/I2C/main.c +++ b/Examples/MAX32650/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32650/I2C_MNGR/FreeRTOSConfig.h index a9874c6ef2d..431631f2415 100644 --- a/Examples/MAX32650/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32650/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32650/I2C_MNGR/Makefile b/Examples/MAX32650/I2C_MNGR/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/I2C_MNGR/Makefile +++ b/Examples/MAX32650/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.c index 393523ba9bf..7a4c93c635f 100644 --- a/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.h index ec7d97625d7..c08265149d6 100644 --- a/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32650/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32650/I2C_MNGR/main.c b/Examples/MAX32650/I2C_MNGR/main.c index bae0f1234e3..e0d288dd375 100644 --- a/Examples/MAX32650/I2C_MNGR/main.c +++ b/Examples/MAX32650/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/I2C_SCAN/Makefile b/Examples/MAX32650/I2C_SCAN/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/I2C_SCAN/Makefile +++ b/Examples/MAX32650/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/I2C_SCAN/main.c b/Examples/MAX32650/I2C_SCAN/main.c index c96571a535a..3cedb26cf5f 100644 --- a/Examples/MAX32650/I2C_SCAN/main.c +++ b/Examples/MAX32650/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32650/I2C_Sensor/Makefile b/Examples/MAX32650/I2C_Sensor/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/I2C_Sensor/Makefile +++ b/Examples/MAX32650/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/I2C_Sensor/main.c b/Examples/MAX32650/I2C_Sensor/main.c index bd51b3af76a..3bef0ecd7db 100644 --- a/Examples/MAX32650/I2C_Sensor/main.c +++ b/Examples/MAX32650/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32650/I2S/Makefile b/Examples/MAX32650/I2S/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/I2S/Makefile +++ b/Examples/MAX32650/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/I2S/main.c b/Examples/MAX32650/I2S/main.c index 604d6f1be99..757d8e42664 100644 --- a/Examples/MAX32650/I2S/main.c +++ b/Examples/MAX32650/I2S/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/ICC/Makefile b/Examples/MAX32650/ICC/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/ICC/Makefile +++ b/Examples/MAX32650/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/ICC/main.c b/Examples/MAX32650/ICC/main.c index dc7d00c8dbf..657c7eb43b1 100644 --- a/Examples/MAX32650/ICC/main.c +++ b/Examples/MAX32650/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32650/LP/Makefile b/Examples/MAX32650/LP/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/LP/Makefile +++ b/Examples/MAX32650/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/LP/lp-nonsecure.ld b/Examples/MAX32650/LP/lp-nonsecure.ld index 166926543ec..487f65ed8fb 100644 --- a/Examples/MAX32650/LP/lp-nonsecure.ld +++ b/Examples/MAX32650/LP/lp-nonsecure.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32650/LP/lp-sla.ld b/Examples/MAX32650/LP/lp-sla.ld index a4476c215e1..59b1495d98b 100644 --- a/Examples/MAX32650/LP/lp-sla.ld +++ b/Examples/MAX32650/LP/lp-sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32650/LP/main.c b/Examples/MAX32650/LP/main.c index 905cdb2f6dd..1625ffcad76 100644 --- a/Examples/MAX32650/LP/main.c +++ b/Examples/MAX32650/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32650/Library_Generate/Makefile b/Examples/MAX32650/Library_Generate/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Library_Generate/Makefile +++ b/Examples/MAX32650/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Library_Generate/gpiolib.c b/Examples/MAX32650/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32650/Library_Generate/gpiolib.c +++ b/Examples/MAX32650/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32650/Library_Generate/gpiolib.h b/Examples/MAX32650/Library_Generate/gpiolib.h index 2c77d1b836e..9d365f92e6b 100644 --- a/Examples/MAX32650/Library_Generate/gpiolib.h +++ b/Examples/MAX32650/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32650/Library_Use/Makefile b/Examples/MAX32650/Library_Use/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Library_Use/Makefile +++ b/Examples/MAX32650/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Library_Use/lib/include/gpiolib.h b/Examples/MAX32650/Library_Use/lib/include/gpiolib.h index 85c4b6416c1..29ba0c33c87 100644 --- a/Examples/MAX32650/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32650/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32650/Library_Use/main.c b/Examples/MAX32650/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32650/Library_Use/main.c +++ b/Examples/MAX32650/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/MAA/Makefile b/Examples/MAX32650/MAA/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/MAA/Makefile +++ b/Examples/MAX32650/MAA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/MAA/main.c b/Examples/MAX32650/MAA/main.c index e658acfd976..0a310b74654 100644 --- a/Examples/MAX32650/MAA/main.c +++ b/Examples/MAX32650/MAA/main.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/OTP_Dump/Makefile b/Examples/MAX32650/OTP_Dump/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/OTP_Dump/Makefile +++ b/Examples/MAX32650/OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/OWM/Makefile b/Examples/MAX32650/OWM/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/OWM/Makefile +++ b/Examples/MAX32650/OWM/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/OWM/main.c b/Examples/MAX32650/OWM/main.c index ca426dcc8e8..143b8f5b20d 100644 --- a/Examples/MAX32650/OWM/main.c +++ b/Examples/MAX32650/OWM/main.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* One wire API Test, for use with DS2401 */ diff --git a/Examples/MAX32650/Pulse_Train/Makefile b/Examples/MAX32650/Pulse_Train/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Pulse_Train/Makefile +++ b/Examples/MAX32650/Pulse_Train/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Pulse_Train/main.c b/Examples/MAX32650/Pulse_Train/main.c index df9df7dd431..8ea376cd2a4 100644 --- a/Examples/MAX32650/Pulse_Train/main.c +++ b/Examples/MAX32650/Pulse_Train/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/RTC/Makefile b/Examples/MAX32650/RTC/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/RTC/Makefile +++ b/Examples/MAX32650/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/RTC/main.c b/Examples/MAX32650/RTC/main.c index 16d8f568e51..195cf14ff66 100644 --- a/Examples/MAX32650/RTC/main.c +++ b/Examples/MAX32650/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/RTC_Backup/Makefile b/Examples/MAX32650/RTC_Backup/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/RTC_Backup/Makefile +++ b/Examples/MAX32650/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/RTC_Backup/main.c b/Examples/MAX32650/RTC_Backup/main.c index 6c43791c31c..5c1b544f034 100644 --- a/Examples/MAX32650/RTC_Backup/main.c +++ b/Examples/MAX32650/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/SCPA_OTP_Dump/Makefile b/Examples/MAX32650/SCPA_OTP_Dump/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SCPA_OTP_Dump/Makefile +++ b/Examples/MAX32650/SCPA_OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SCPA_OTP_Dump/main.c b/Examples/MAX32650/SCPA_OTP_Dump/main.c index a42a5c2983d..0f7845f52ca 100644 --- a/Examples/MAX32650/SCPA_OTP_Dump/main.c +++ b/Examples/MAX32650/SCPA_OTP_Dump/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/SCPA_OTP_Dump/utils.c b/Examples/MAX32650/SCPA_OTP_Dump/utils.c index 3a84ee68f25..ff7ccf8019a 100644 --- a/Examples/MAX32650/SCPA_OTP_Dump/utils.c +++ b/Examples/MAX32650/SCPA_OTP_Dump/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32650/SCPA_OTP_Dump/utils.h b/Examples/MAX32650/SCPA_OTP_Dump/utils.h index 55252c5c608..d48f98c6936 100644 --- a/Examples/MAX32650/SCPA_OTP_Dump/utils.h +++ b/Examples/MAX32650/SCPA_OTP_Dump/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_SCPA_OTP_DUMP_UTILS_H_ diff --git a/Examples/MAX32650/SDHC_FAT/Makefile b/Examples/MAX32650/SDHC_FAT/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SDHC_FAT/Makefile +++ b/Examples/MAX32650/SDHC_FAT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SDHC_FAT/main.c b/Examples/MAX32650/SDHC_FAT/main.c index 02a748f9384..130a31f35ef 100644 --- a/Examples/MAX32650/SDHC_FAT/main.c +++ b/Examples/MAX32650/SDHC_FAT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/SDHC_Raw/Makefile b/Examples/MAX32650/SDHC_Raw/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SDHC_Raw/Makefile +++ b/Examples/MAX32650/SDHC_Raw/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SDHC_Raw/main.c b/Examples/MAX32650/SDHC_Raw/main.c index 14bdfca0f5f..4663af387a2 100644 --- a/Examples/MAX32650/SDHC_Raw/main.c +++ b/Examples/MAX32650/SDHC_Raw/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/SPI/Makefile b/Examples/MAX32650/SPI/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SPI/Makefile +++ b/Examples/MAX32650/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SPI/main.c b/Examples/MAX32650/SPI/main.c index 10b2695e8fc..c1f292efb41 100644 --- a/Examples/MAX32650/SPI/main.c +++ b/Examples/MAX32650/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32650/SPIMSS/Makefile b/Examples/MAX32650/SPIMSS/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SPIMSS/Makefile +++ b/Examples/MAX32650/SPIMSS/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SPIMSS/main.c b/Examples/MAX32650/SPIMSS/main.c index c801ee4f15b..f6d9b2c784d 100644 --- a/Examples/MAX32650/SPIMSS/main.c +++ b/Examples/MAX32650/SPIMSS/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32650/SPIXF/Makefile b/Examples/MAX32650/SPIXF/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SPIXF/Makefile +++ b/Examples/MAX32650/SPIXF/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SPIXF/main.c b/Examples/MAX32650/SPIXF/main.c index 93eb3a7c6e1..db9b6bce48e 100644 --- a/Examples/MAX32650/SPIXF/main.c +++ b/Examples/MAX32650/SPIXF/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/SPIXF/ramfunc.c b/Examples/MAX32650/SPIXF/ramfunc.c index 909b13120e6..8cfbe728776 100644 --- a/Examples/MAX32650/SPIXF/ramfunc.c +++ b/Examples/MAX32650/SPIXF/ramfunc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "max32650.h" diff --git a/Examples/MAX32650/SPIXF_ICC/Makefile b/Examples/MAX32650/SPIXF_ICC/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SPIXF_ICC/Makefile +++ b/Examples/MAX32650/SPIXF_ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SPIXF_ICC/main.c b/Examples/MAX32650/SPIXF_ICC/main.c index 6ab42a5e953..e91c235330c 100644 --- a/Examples/MAX32650/SPIXF_ICC/main.c +++ b/Examples/MAX32650/SPIXF_ICC/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/SPIXR/Makefile b/Examples/MAX32650/SPIXR/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SPIXR/Makefile +++ b/Examples/MAX32650/SPIXR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SPIXR/main.c b/Examples/MAX32650/SPIXR/main.c index b4bd971b892..1681868ae19 100644 --- a/Examples/MAX32650/SPIXR/main.c +++ b/Examples/MAX32650/SPIXR/main.c @@ -1,13 +1,7 @@ -/** - * @file - * @brief SPIXR example writing to External SRAM - * @details Setup, Initialize, Write, and verifies the data written to SRAM. - * This example shows how to configure the External SRAM and - * uses the SPIXR library to write and read data from it in Quad mode. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file + * @brief SPIXR example writing to External SRAM + * @details Setup, Initialize, Write, and verifies the data written to SRAM. + * This example shows how to configure the External SRAM and + * uses the SPIXR library to write and read data from it in Quad mode. + */ + /* **** Includes **** */ #include #include diff --git a/Examples/MAX32650/SPI_MasterSlave/Makefile b/Examples/MAX32650/SPI_MasterSlave/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SPI_MasterSlave/Makefile +++ b/Examples/MAX32650/SPI_MasterSlave/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SPI_MasterSlave/main.c b/Examples/MAX32650/SPI_MasterSlave/main.c index 5f488ac0348..0295f4793b8 100644 --- a/Examples/MAX32650/SPI_MasterSlave/main.c +++ b/Examples/MAX32650/SPI_MasterSlave/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32650/Semaphore/Makefile b/Examples/MAX32650/Semaphore/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Semaphore/Makefile +++ b/Examples/MAX32650/Semaphore/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Semaphore/main.c b/Examples/MAX32650/Semaphore/main.c index 1d8d797ec0a..abc7f8da338 100644 --- a/Examples/MAX32650/Semaphore/main.c +++ b/Examples/MAX32650/Semaphore/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32650/SysTick/Makefile b/Examples/MAX32650/SysTick/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/SysTick/Makefile +++ b/Examples/MAX32650/SysTick/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/SysTick/main.c b/Examples/MAX32650/SysTick/main.c index e4920ef641e..747c440b76a 100644 --- a/Examples/MAX32650/SysTick/main.c +++ b/Examples/MAX32650/SysTick/main.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/TMR/Makefile b/Examples/MAX32650/TMR/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/TMR/Makefile +++ b/Examples/MAX32650/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/TMR/main.c b/Examples/MAX32650/TMR/main.c index 2d2534ed63f..bdf3ffe9f5f 100644 --- a/Examples/MAX32650/TMR/main.c +++ b/Examples/MAX32650/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/TRNG/Makefile b/Examples/MAX32650/TRNG/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/TRNG/Makefile +++ b/Examples/MAX32650/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/TRNG/main.c b/Examples/MAX32650/TRNG/main.c index 910b84d8029..9804b02b956 100644 --- a/Examples/MAX32650/TRNG/main.c +++ b/Examples/MAX32650/TRNG/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32650/Temp_Monitor/Makefile b/Examples/MAX32650/Temp_Monitor/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Temp_Monitor/Makefile +++ b/Examples/MAX32650/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Temp_Monitor/main.c b/Examples/MAX32650/Temp_Monitor/main.c index 5d7843bec78..ac5edc65782 100644 --- a/Examples/MAX32650/Temp_Monitor/main.c +++ b/Examples/MAX32650/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/Temp_Monitor/temp_monitor.c b/Examples/MAX32650/Temp_Monitor/temp_monitor.c index 545ee070888..ab2954fb8d2 100644 --- a/Examples/MAX32650/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32650/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32650/Temp_Monitor/temp_monitor.h b/Examples/MAX32650/Temp_Monitor/temp_monitor.h index 2149334e706..124eea62db5 100644 --- a/Examples/MAX32650/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32650/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32650/UART/Makefile b/Examples/MAX32650/UART/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/UART/Makefile +++ b/Examples/MAX32650/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/UART/main.c b/Examples/MAX32650/UART/main.c index 15fc5386e5f..c14cb787a9b 100644 --- a/Examples/MAX32650/UART/main.c +++ b/Examples/MAX32650/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/UCL/Makefile b/Examples/MAX32650/UCL/Makefile index b8fa9b7b7d3..4778b46d79f 100644 --- a/Examples/MAX32650/UCL/Makefile +++ b/Examples/MAX32650/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/USB_CDCACM/.cproject b/Examples/MAX32650/USB/USB_CDCACM/.cproject similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.cproject rename to Examples/MAX32650/USB/USB_CDCACM/.cproject diff --git a/Examples/MAX32572/USB_CDCACM/.project b/Examples/MAX32650/USB/USB_CDCACM/.project similarity index 100% rename from Examples/MAX32572/USB_CDCACM/.project rename to Examples/MAX32650/USB/USB_CDCACM/.project diff --git a/Examples/MAX32572/Flash/.settings/language.settings.xml b/Examples/MAX32650/USB/USB_CDCACM/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32572/Flash/.settings/language.settings.xml rename to Examples/MAX32650/USB/USB_CDCACM/.settings/language.settings.xml diff --git a/Examples/MAX32572/Coremark/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32650/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/Coremark/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32650/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32650/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32650/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32650/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32650/USB_CDCACM/.vscode/README.md b/Examples/MAX32650/USB/USB_CDCACM/.vscode/README.md similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.vscode/README.md rename to Examples/MAX32650/USB/USB_CDCACM/.vscode/README.md diff --git a/Examples/MAX32572/Coremark/.vscode/c_cpp_properties.json b/Examples/MAX32650/USB/USB_CDCACM/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32572/Coremark/.vscode/c_cpp_properties.json rename to Examples/MAX32650/USB/USB_CDCACM/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/ADC/.vscode/flash.gdb b/Examples/MAX32650/USB/USB_CDCACM/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/ADC/.vscode/flash.gdb rename to Examples/MAX32650/USB/USB_CDCACM/.vscode/flash.gdb diff --git a/Examples/MAX32650/USB_CDCACM/.vscode/launch.json b/Examples/MAX32650/USB/USB_CDCACM/.vscode/launch.json similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.vscode/launch.json rename to Examples/MAX32650/USB/USB_CDCACM/.vscode/launch.json diff --git a/Examples/MAX32650/USB_CDCACM/.vscode/settings.json b/Examples/MAX32650/USB/USB_CDCACM/.vscode/settings.json similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.vscode/settings.json rename to Examples/MAX32650/USB/USB_CDCACM/.vscode/settings.json diff --git a/Examples/MAX32650/USB_CDCACM/.vscode/tasks.json b/Examples/MAX32650/USB/USB_CDCACM/.vscode/tasks.json similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.vscode/tasks.json rename to Examples/MAX32650/USB/USB_CDCACM/.vscode/tasks.json diff --git a/Examples/MAX32572/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat b/Examples/MAX32650/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat similarity index 100% rename from Examples/MAX32572/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat rename to Examples/MAX32650/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat diff --git a/Examples/MAX32572/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf b/Examples/MAX32650/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf similarity index 100% rename from Examples/MAX32572/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf rename to Examples/MAX32650/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf diff --git a/Examples/MAX32650/USB/USB_CDCACM/Makefile b/Examples/MAX32650/USB/USB_CDCACM/Makefile new file mode 100644 index 00000000000..47461179883 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CDCACM/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32650 +TARGET_UC := MAX32650 +TARGET_LC := max32650 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32650/USB_CDCACM/README.md b/Examples/MAX32650/USB/USB_CDCACM/README.md similarity index 100% rename from Examples/MAX32650/USB_CDCACM/README.md rename to Examples/MAX32650/USB/USB_CDCACM/README.md diff --git a/Examples/MAX32650/USB_CDCACM/USB_CDCACM.launch b/Examples/MAX32650/USB/USB_CDCACM/USB_CDCACM.launch similarity index 100% rename from Examples/MAX32650/USB_CDCACM/USB_CDCACM.launch rename to Examples/MAX32650/USB/USB_CDCACM/USB_CDCACM.launch diff --git a/Examples/MAX32650/USB/USB_CDCACM/descriptors.h b/Examples/MAX32650/USB/USB_CDCACM/descriptors.h new file mode 100644 index 00000000000..228d620159e --- /dev/null +++ b/Examples/MAX32650/USB/USB_CDCACM/descriptors.h @@ -0,0 +1,359 @@ +/** + * @file descriptors.h + * @brief descriptors listed here + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Define to prevent redundant inclusion */ +#ifndef EXAMPLES_MAX32650_USB_USB_CDCACM_DESCRIPTORS_H_ +#define EXAMPLES_MAX32650_USB_USB_CDCACM_DESCRIPTORS_H_ + +/* **** Includes **** */ +#include +#include "usb.h" +#include "hid_kbd.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* **** Definitions **** */ + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x02, /* bDeviceClass = comm class (2) */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x02, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + /* Interface #2 CDC Data*/ + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +config_descriptor = { + { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0043, /* wTotalLength(L/H) */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (self-powered, remote wakeup) */ + 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDCACM Data */ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +config_descriptor_hs = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0043, /* wTotalLength(L/H) */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0200, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, + ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { + 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', + 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +#ifdef __cplusplus +} +#endif + +#endif // EXAMPLES_MAX32650_USB_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB/USB_CDCACM/main.c b/Examples/MAX32650/USB/USB_CDCACM/main.c new file mode 100644 index 00000000000..025f1b47f5b --- /dev/null +++ b/Examples/MAX32650/USB/USB_CDCACM/main.c @@ -0,0 +1,431 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file + * @brief USB CDC-ACM example + * @details This project creates a virtual COM port, which loops back data sent to it. + * Load the project, connect a cable from the PC to the USB connector + * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. + * A driver for the COM port, if needed, is located in the Driver/ subdirectory. + * + */ + +/* **** Includes **** */ +#include +#include +#include "mxc_errors.h" //#include "mxc_config.h" //SJ +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "descriptors.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* **** Function Prototypes **** */ +static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int event_callback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int usb_read_callback(void); +static void echo_usb(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/* **** File Scope Variables **** */ + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 2, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 3, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 4, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfig_callback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, event_callback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, event_callback, NULL); + acm_register_callback(ACM_CB_READ_READY, usb_read_callback); + + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echo_usb(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/* ************************************************************************** */ +static void echo_usb(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + /* Read the data from USB */ + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + /* Echo it back */ + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { + MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + return MXC_SYS_USBHS_Shutdown(); +} + +/* ************************************************************************** */ +static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + acm_cfg.out_ep = config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_4.wMaxPacketSize; + acm_cfg.in_ep = config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_5.wMaxPacketSize; + acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; + acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + return acm_configure(&acm_cfg); /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + return acm_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/* ************************************************************************** */ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/* ************************************************************************** */ +static void usbAppSleep(void) +{ + suspended = 1; +} + +/* ************************************************************************** */ +static void usbAppWakeup(void) +{ + suspended = 0; +} + +/* ************************************************************************** */ +static int event_callback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + acm_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, event_callback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, event_callback, NULL); /// + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, event_callback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: /// + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +static int usb_read_callback(void) +{ + usb_read_complete = 1; + return 0; +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/* ************************************************************************** */ + +void SysTick_Handler(void) +{ + MXC_DelayHandler(); +} diff --git a/Examples/MAX32650/USB_CDCACM/project.mk b/Examples/MAX32650/USB/USB_CDCACM/project.mk similarity index 100% rename from Examples/MAX32650/USB_CDCACM/project.mk rename to Examples/MAX32650/USB/USB_CDCACM/project.mk diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.cproject b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.cproject similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.cproject rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.cproject diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.project b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.project similarity index 100% rename from Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.project rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.project diff --git a/Examples/MAX32572/Hello_World_Cpp/.settings/language.settings.xml b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32572/Hello_World_Cpp/.settings/language.settings.xml rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml diff --git a/Examples/MAX32572/Flash/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/Flash/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/README.md b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/README.md rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md diff --git a/Examples/MAX32572/Hello_World_Cpp/.vscode/c_cpp_properties.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32572/Hello_World_Cpp/.vscode/c_cpp_properties.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/AES/.vscode/flash.gdb b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/AES/.vscode/flash.gdb rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/launch.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/launch.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/settings.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/settings.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/Makefile new file mode 100644 index 00000000000..47461179883 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32650 +TARGET_UC := MAX32650 +TARGET_LC := max32650 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/README.md b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/README.md similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/README.md rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/README.md diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/descriptors.h new file mode 100644 index 00000000000..5d33fd60f19 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/descriptors.h @@ -0,0 +1,474 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ +#define EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0xEF, /* bDeviceClass = code specified by interface descriptors */ + 0x02, /* bDeviceSubClass = code specified by interface descriptors */ + 0x01, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0xEF, /* bDeviceClass = Unspecified */ + 0x02, /* bDeviceSubClass */ + 0x01, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) = 98 bytes */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ /// + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor_hs = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0200, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { + 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', + 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/main.c new file mode 100644 index 00000000000..d039e1ab405 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/main.c @@ -0,0 +1,474 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. +*/ + +#include +#include +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* **** Function Prototypes **** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int usbReadCallback(void); +int usbStartupCallback(); +int usbShutdownCallback(); +static void echoUSB(void); + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 2, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 3, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 4, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, + mscmem_Size, mscmem_Read, mscmem_Write }; + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, + 0); + } + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + acm_register_callback(ACM_CB_READ_READY, usbReadCallback); + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echoUSB(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static void echoUSB(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + // Read the data from USB + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + // Echo it back + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { + MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// + msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; + acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; + acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + 0x7; + acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + msc_configure(&msc_cfg); + return acm_configure(&acm_cfg); + /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return acm_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/* ************************************************************************** */ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + usbAppSleep(); + break; + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + case MAXUSB_EVENT_BRSTDN: /// + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, + 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, + 0); + } + break; + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +static int usbReadCallback(void) +{ + usb_read_complete = 1; + return 0; +} diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/mscmem.c new file mode 100644 index 00000000000..2ed7e72a8f7 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/mscmem.c @@ -0,0 +1,343 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +#include "Ext_Flash.h" +#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 1 +#define RAM_DISK 0 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/mscmem.h new file mode 100644 index 00000000000..0ddaea27735 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/mscmem.h @@ -0,0 +1,115 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ +#define EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ + +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/project.mk b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/project.mk similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/project.mk rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_CDC/project.mk diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.cproject b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.cproject similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.cproject rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.cproject diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.project b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.project similarity index 100% rename from Examples/MAX32572/USB_CompositeDevice_MSC_HID/.project rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.project diff --git a/Examples/MAX32572/I2C_Sensor/.settings/language.settings.xml b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32572/I2C_Sensor/.settings/language.settings.xml rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml diff --git a/Examples/MAX32572/Hello_World_Cpp/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/Hello_World_Cpp/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/README.md b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/README.md rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md diff --git a/Examples/MAX32572/I2C_Sensor/.vscode/c_cpp_properties.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/I2C_Sensor/.vscode/c_cpp_properties.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Barcode_Decoder/.vscode/flash.gdb b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Barcode_Decoder/.vscode/flash.gdb rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/launch.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/launch.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/settings.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/settings.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/tasks.json b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/tasks.json rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/Makefile new file mode 100644 index 00000000000..47461179883 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32650 +TARGET_UC := MAX32650 +TARGET_LC := max32650 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/README.md b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/README.md similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/README.md rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/README.md diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/descriptors.h new file mode 100644 index 00000000000..a2ebd112376 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/descriptors.h @@ -0,0 +1,246 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ +#define EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0x00, /* bDeviceClass = code specified by interface descriptors */ + 0x00, /* bDeviceSubClass = code specified by interface descriptors */ + 0x00, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x01, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 HID Keyboard */ + MXC_USB_interface_descriptor_t hid_interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0039, /* wTotalLength(L/H) = 57 bytes */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : HID Keyboard **********/ + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x04, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + }, + /********** Interface #1 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { + 0x24, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/main.c new file mode 100644 index 00000000000..b05a4438f05 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/main.c @@ -0,0 +1,433 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and HID driver class. +*/ + +#include +#include +#include "led.h" +#include "pb.h" +#include "mxc_delay.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* **** Function Prototypes **** */ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +int usbStartupCallback(); +int usbShutdownCallback(); + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + + while (1) {} + } + + if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, + &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("PB_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW2 to send character.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { + MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + + msc_configure(&msc_cfg); + return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return hidkbd_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (PB_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remote_wake_en) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/mscmem.c new file mode 100644 index 00000000000..0bb6818b160 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/mscmem.c @@ -0,0 +1,342 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +#include "Ext_Flash.h" +#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 1 +#define RAM_DISK 0 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/mscmem.h new file mode 100644 index 00000000000..c792a8356a8 --- /dev/null +++ b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/mscmem.h @@ -0,0 +1,115 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ +#define EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ + +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32650_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/project.mk b/Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/project.mk similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/project.mk rename to Examples/MAX32650/USB/USB_CompositeDevice_MSC_HID/project.mk diff --git a/Examples/MAX32650/USB_HIDKeyboard/.cproject b/Examples/MAX32650/USB/USB_HIDKeyboard/.cproject similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.cproject rename to Examples/MAX32650/USB/USB_HIDKeyboard/.cproject diff --git a/Examples/MAX32572/USB_HIDKeyboard/.project b/Examples/MAX32650/USB/USB_HIDKeyboard/.project similarity index 100% rename from Examples/MAX32572/USB_HIDKeyboard/.project rename to Examples/MAX32650/USB/USB_HIDKeyboard/.project diff --git a/Examples/MAX32572/SPI_MasterSlave/.settings/language.settings.xml b/Examples/MAX32650/USB/USB_HIDKeyboard/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32572/SPI_MasterSlave/.settings/language.settings.xml rename to Examples/MAX32650/USB/USB_HIDKeyboard/.settings/language.settings.xml diff --git a/Examples/MAX32572/I2C_Sensor/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32650/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/I2C_Sensor/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32650/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32650/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32650/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32650/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32650/USB_HIDKeyboard/.vscode/README.md b/Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/README.md similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.vscode/README.md rename to Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/README.md diff --git a/Examples/MAX32572/Library_Generate/.vscode/c_cpp_properties.json b/Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32572/Library_Generate/.vscode/c_cpp_properties.json rename to Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/CRC/.vscode/flash.gdb b/Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/CRC/.vscode/flash.gdb rename to Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/flash.gdb diff --git a/Examples/MAX32650/USB_HIDKeyboard/.vscode/launch.json b/Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/launch.json similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.vscode/launch.json rename to Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/launch.json diff --git a/Examples/MAX32650/USB_HIDKeyboard/.vscode/settings.json b/Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/settings.json similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.vscode/settings.json rename to Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/settings.json diff --git a/Examples/MAX32650/USB_HIDKeyboard/.vscode/tasks.json b/Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/tasks.json similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.vscode/tasks.json rename to Examples/MAX32650/USB/USB_HIDKeyboard/.vscode/tasks.json diff --git a/Examples/MAX32650/USB/USB_HIDKeyboard/Makefile b/Examples/MAX32650/USB/USB_HIDKeyboard/Makefile new file mode 100644 index 00000000000..47461179883 --- /dev/null +++ b/Examples/MAX32650/USB/USB_HIDKeyboard/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32650 +TARGET_UC := MAX32650 +TARGET_LC := max32650 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32650/USB_HIDKeyboard/README.md b/Examples/MAX32650/USB/USB_HIDKeyboard/README.md similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/README.md rename to Examples/MAX32650/USB/USB_HIDKeyboard/README.md diff --git a/Examples/MAX32650/USB_HIDKeyboard/USB_HIDKeyboard.launch b/Examples/MAX32650/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/USB_HIDKeyboard.launch rename to Examples/MAX32650/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch diff --git a/Examples/MAX32650/USB/USB_HIDKeyboard/descriptors.h b/Examples/MAX32650/USB/USB_HIDKeyboard/descriptors.h new file mode 100644 index 00000000000..b92ca9777e8 --- /dev/null +++ b/Examples/MAX32650/USB/USB_HIDKeyboard/descriptors.h @@ -0,0 +1,173 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32650_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ +#define EXAMPLES_MAX32650_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + MXC_USB_interface_descriptor_t interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor; +} config_descriptor = { { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0022, /* wTotalLength(L/H) = 34 bytes */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x00, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x00, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + } }; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x2c, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, + 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX32650_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB/USB_HIDKeyboard/main.c b/Examples/MAX32650/USB/USB_HIDKeyboard/main.c new file mode 100644 index 00000000000..d19d9323736 --- /dev/null +++ b/Examples/MAX32650/USB/USB_HIDKeyboard/main.c @@ -0,0 +1,391 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device + * @details The EvKit should enumerate as a HID Keyboard device after loading the project and + * attaching a cable from the PC to the USB connector on the Evaluation Kit. + * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. + * 2. Open a text editor on the PC host and place cursor in edit box. + * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. + * + */ + +#include +#include +#include "led.h" +#include "pb.h" +#include "mxc_delay.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "descriptors.h" +#include "gcr_regs.h" +#include "mxc_sys.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +int remoteWake; +volatile int configured; +volatile int suspended; +volatile unsigned int evtFlags; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +void usDelay(unsigned int usec); +int usbStartupCallback(); +int usbShutdownCallback(); + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + evtFlags = 0; + remoteWake = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = usDelay; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("MXC_USB_Init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, + report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("PB_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (evtFlags) { + /* Display events */ + if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW2 to send character.\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { + MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +/* User-supplied function to delay usec micro-seconds */ +void usDelay(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/******************************************************************************/ +static void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (PB_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remoteWake) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); + return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + return hidkbd_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&evtFlags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} diff --git a/Examples/MAX32650/USB_HIDKeyboard/project.mk b/Examples/MAX32650/USB/USB_HIDKeyboard/project.mk similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/project.mk rename to Examples/MAX32650/USB/USB_HIDKeyboard/project.mk diff --git a/Examples/MAX32650/USB_MassStorage/.cproject b/Examples/MAX32650/USB/USB_MassStorage/.cproject similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.cproject rename to Examples/MAX32650/USB/USB_MassStorage/.cproject diff --git a/Examples/MAX32572/USB_MassStorage/.project b/Examples/MAX32650/USB/USB_MassStorage/.project similarity index 100% rename from Examples/MAX32572/USB_MassStorage/.project rename to Examples/MAX32650/USB/USB_MassStorage/.project diff --git a/Examples/MAX32572/Temp_Monitor/.settings/language.settings.xml b/Examples/MAX32650/USB/USB_MassStorage/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32572/Temp_Monitor/.settings/language.settings.xml rename to Examples/MAX32650/USB/USB_MassStorage/.settings/language.settings.xml diff --git a/Examples/MAX32572/Library_Generate/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32650/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/Library_Generate/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32650/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32650/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32650/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32650/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32650/USB_MassStorage/.vscode/README.md b/Examples/MAX32650/USB/USB_MassStorage/.vscode/README.md similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.vscode/README.md rename to Examples/MAX32650/USB/USB_MassStorage/.vscode/README.md diff --git a/Examples/MAX32572/Library_Use/.vscode/c_cpp_properties.json b/Examples/MAX32650/USB/USB_MassStorage/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32572/Library_Use/.vscode/c_cpp_properties.json rename to Examples/MAX32650/USB/USB_MassStorage/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/CameraIF/.vscode/flash.gdb b/Examples/MAX32650/USB/USB_MassStorage/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/CameraIF/.vscode/flash.gdb rename to Examples/MAX32650/USB/USB_MassStorage/.vscode/flash.gdb diff --git a/Examples/MAX32650/USB_MassStorage/.vscode/launch.json b/Examples/MAX32650/USB/USB_MassStorage/.vscode/launch.json similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.vscode/launch.json rename to Examples/MAX32650/USB/USB_MassStorage/.vscode/launch.json diff --git a/Examples/MAX32650/USB_MassStorage/.vscode/settings.json b/Examples/MAX32650/USB/USB_MassStorage/.vscode/settings.json similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.vscode/settings.json rename to Examples/MAX32650/USB/USB_MassStorage/.vscode/settings.json diff --git a/Examples/MAX32650/USB_MassStorage/.vscode/tasks.json b/Examples/MAX32650/USB/USB_MassStorage/.vscode/tasks.json similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.vscode/tasks.json rename to Examples/MAX32650/USB/USB_MassStorage/.vscode/tasks.json diff --git a/Examples/MAX32650/USB/USB_MassStorage/Makefile b/Examples/MAX32650/USB/USB_MassStorage/Makefile new file mode 100644 index 00000000000..47461179883 --- /dev/null +++ b/Examples/MAX32650/USB/USB_MassStorage/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32650 +TARGET_UC := MAX32650 +TARGET_LC := max32650 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32650/USB_MassStorage/README.md b/Examples/MAX32650/USB/USB_MassStorage/README.md similarity index 100% rename from Examples/MAX32650/USB_MassStorage/README.md rename to Examples/MAX32650/USB/USB_MassStorage/README.md diff --git a/Examples/MAX32650/USB_MassStorage/USB_MassStorage.launch b/Examples/MAX32650/USB/USB_MassStorage/USB_MassStorage.launch similarity index 100% rename from Examples/MAX32650/USB_MassStorage/USB_MassStorage.launch rename to Examples/MAX32650/USB/USB_MassStorage/USB_MassStorage.launch diff --git a/Examples/MAX32650/USB/USB_MassStorage/descriptors.h b/Examples/MAX32650/USB/USB_MassStorage/descriptors.h new file mode 100644 index 00000000000..84864f4621c --- /dev/null +++ b/Examples/MAX32650/USB/USB_MassStorage/descriptors.h @@ -0,0 +1,211 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32650_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ +#define EXAMPLES_MAX32650_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x4402, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } }; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor_hs = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval */ + } }; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x38, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, + 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, + 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) +uint8_t serial_id_desc[] = { 26, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX32650_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB/USB_MassStorage/main.c b/Examples/MAX32650/USB/USB_MassStorage/main.c new file mode 100644 index 00000000000..e01bbc79392 --- /dev/null +++ b/Examples/MAX32650/USB/USB_MassStorage/main.c @@ -0,0 +1,396 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB Mass Storage Class example + * @details This project creates a mass storage device using either on-board RAM or + * external SPI flash memory. Load the project, connect a cable from the PC + * to the USB connector. A new external drive should appear than can be read + * and written. + */ + +#include +#include +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/***** File Scope Variables *****/ + +/* Defaults, which will be changed by the configuration code */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + return msc_configure(&msc_cfg); /* Configure the device class */ + + } else if (sud->wValue == 0) { + configured = 0; + return msc_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { + MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} diff --git a/Examples/MAX32650/USB/USB_MassStorage/mscmem.c b/Examples/MAX32650/USB/USB_MassStorage/mscmem.c new file mode 100644 index 00000000000..2ed7e72a8f7 --- /dev/null +++ b/Examples/MAX32650/USB/USB_MassStorage/mscmem.c @@ -0,0 +1,343 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +#include "Ext_Flash.h" +#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 1 +#define RAM_DISK 0 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32650/USB/USB_MassStorage/mscmem.h b/Examples/MAX32650/USB/USB_MassStorage/mscmem.h new file mode 100644 index 00000000000..5ec533869c5 --- /dev/null +++ b/Examples/MAX32650/USB/USB_MassStorage/mscmem.h @@ -0,0 +1,115 @@ +/** + * @file + * @brief Memory routines used by the USB Mass Storage Class example. + * See the @ref msc_mem_t structure in msc.h for function details. + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef EXAMPLES_MAX32650_USB_USB_MASSSTORAGE_MSCMEM_H_ +#define EXAMPLES_MAX32650_USB_USB_MASSSTORAGE_MSCMEM_H_ + +/* **** Include Files **** */ +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32650_USB_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX32650/USB_MassStorage/project.mk b/Examples/MAX32650/USB/USB_MassStorage/project.mk similarity index 100% rename from Examples/MAX32650/USB_MassStorage/project.mk rename to Examples/MAX32650/USB/USB_MassStorage/project.mk diff --git a/Examples/MAX32650/USB_CDCACM/Makefile b/Examples/MAX32650/USB_CDCACM/Makefile deleted file mode 100644 index 0603f592cf3..00000000000 --- a/Examples/MAX32650/USB_CDCACM/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32650 -TARGET_UC := MAX32650 -TARGET_LC := max32650 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32650/USB_CDCACM/descriptors.h b/Examples/MAX32650/USB_CDCACM/descriptors.h deleted file mode 100644 index 2b76c5c7995..00000000000 --- a/Examples/MAX32650/USB_CDCACM/descriptors.h +++ /dev/null @@ -1,341 +0,0 @@ -/** - * @file descriptors.h - * @brief descriptors listed here - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Define to prevent redundant inclusion */ -#ifndef EXAMPLES_MAX32650_USB_CDCACM_DESCRIPTORS_H_ -#define EXAMPLES_MAX32650_USB_CDCACM_DESCRIPTORS_H_ - -/* **** Includes **** */ -#include -#include "usb.h" -#include "hid_kbd.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* **** Definitions **** */ - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = comm class (2) */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - /* Interface #2 CDC Data*/ - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -config_descriptor = { - { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (self-powered, remote wakeup) */ - 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDCACM Data */ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -config_descriptor_hs = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0200, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, - ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32650_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB_CDCACM/main.c b/Examples/MAX32650/USB_CDCACM/main.c deleted file mode 100644 index 806af67e644..00000000000 --- a/Examples/MAX32650/USB_CDCACM/main.c +++ /dev/null @@ -1,413 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file - * @brief USB CDC-ACM example - * @details This project creates a virtual COM port, which loops back data sent to it. - * Load the project, connect a cable from the PC to the USB connector - * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. - * A driver for the COM port, if needed, is located in the Driver/ subdirectory. - * - */ - -/* **** Includes **** */ -#include -#include -#include "mxc_errors.h" //#include "mxc_config.h" //SJ -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "descriptors.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* **** Function Prototypes **** */ -static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int event_callback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usb_read_callback(void); -static void echo_usb(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/* **** File Scope Variables **** */ - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 2, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 3, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 4, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfig_callback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, event_callback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, event_callback, NULL); - acm_register_callback(ACM_CB_READ_READY, usb_read_callback); - - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echo_usb(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/* ************************************************************************** */ -static void echo_usb(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - /* Read the data from USB */ - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - /* Echo it back */ - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { - MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - return MXC_SYS_USBHS_Shutdown(); -} - -/* ************************************************************************** */ -static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - acm_cfg.out_ep = config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; - acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - return acm_configure(&acm_cfg); /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/* ************************************************************************** */ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/* ************************************************************************** */ -static void usbAppSleep(void) -{ - suspended = 1; -} - -/* ************************************************************************** */ -static void usbAppWakeup(void) -{ - suspended = 0; -} - -/* ************************************************************************** */ -static int event_callback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - acm_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, event_callback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, event_callback, NULL); /// - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, event_callback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: /// - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -static int usb_read_callback(void) -{ - usb_read_complete = 1; - return 0; -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ - -void SysTick_Handler(void) -{ - MXC_DelayHandler(); -} diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/Makefile deleted file mode 100644 index 0603f592cf3..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32650 -TARGET_UC := MAX32650 -TARGET_LC := max32650 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/descriptors.h deleted file mode 100644 index a4b61477616..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/descriptors.h +++ /dev/null @@ -1,456 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ -#define EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0xEF, /* bDeviceClass = code specified by interface descriptors */ - 0x02, /* bDeviceSubClass = code specified by interface descriptors */ - 0x01, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0xEF, /* bDeviceClass = Unspecified */ - 0x02, /* bDeviceSubClass */ - 0x01, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) = 98 bytes */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ /// - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor_hs = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0200, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/main.c deleted file mode 100644 index 5c3611ac535..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/main.c +++ /dev/null @@ -1,456 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. -*/ - -#include -#include -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* **** Function Prototypes **** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usbReadCallback(void); -int usbStartupCallback(); -int usbShutdownCallback(); -static void echoUSB(void); - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 2, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 3, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 4, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, - mscmem_Size, mscmem_Read, mscmem_Write }; - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, - 0); - } - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - acm_register_callback(ACM_CB_READ_READY, usbReadCallback); - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echoUSB(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static void echoUSB(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - // Read the data from USB - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - // Echo it back - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { - MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// - msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - 0x7; - acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - msc_configure(&msc_cfg); - return acm_configure(&acm_cfg); - /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - usbAppSleep(); - break; - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - case MAXUSB_EVENT_BRSTDN: /// - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, - 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, - 0); - } - break; - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -static int usbReadCallback(void) -{ - usb_read_complete = 1; - return 0; -} diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/mscmem.c deleted file mode 100644 index f125ab250aa..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/mscmem.c +++ /dev/null @@ -1,325 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "Ext_Flash.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/mscmem.h deleted file mode 100644 index 5927c1c8c40..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ -#define EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ - -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX32650/USB_CompositeDevice_MSC_HID/Makefile deleted file mode 100644 index 0603f592cf3..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32650 -TARGET_UC := MAX32650 -TARGET_LC := max32650 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX32650/USB_CompositeDevice_MSC_HID/descriptors.h deleted file mode 100644 index 03a51f73a9d..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/descriptors.h +++ /dev/null @@ -1,228 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ -#define EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0x00, /* bDeviceClass = code specified by interface descriptors */ - 0x00, /* bDeviceSubClass = code specified by interface descriptors */ - 0x00, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x01, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 HID Keyboard */ - MXC_USB_interface_descriptor_t hid_interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0039, /* wTotalLength(L/H) = 57 bytes */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : HID Keyboard **********/ - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x04, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - }, - /********** Interface #1 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { - 0x24, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX32650/USB_CompositeDevice_MSC_HID/main.c deleted file mode 100644 index 008542db96d..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/main.c +++ /dev/null @@ -1,415 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and HID driver class. -*/ - -#include -#include -#include "led.h" -#include "pb.h" -#include "mxc_delay.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* **** Function Prototypes **** */ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -int usbStartupCallback(); -int usbShutdownCallback(); - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - - while (1) {} - } - - if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, - &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { - MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - - msc_configure(&msc_cfg); - return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return hidkbd_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remote_wake_en) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX32650/USB_CompositeDevice_MSC_HID/mscmem.c deleted file mode 100644 index 91df2a28a3f..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/mscmem.c +++ /dev/null @@ -1,324 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "Ext_Flash.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX32650/USB_CompositeDevice_MSC_HID/mscmem.h deleted file mode 100644 index 24015581749..00000000000 --- a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ -#define EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ - -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32650_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX32650/USB_HIDKeyboard/Makefile b/Examples/MAX32650/USB_HIDKeyboard/Makefile deleted file mode 100644 index 0603f592cf3..00000000000 --- a/Examples/MAX32650/USB_HIDKeyboard/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32650 -TARGET_UC := MAX32650 -TARGET_LC := max32650 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32650/USB_HIDKeyboard/descriptors.h b/Examples/MAX32650/USB_HIDKeyboard/descriptors.h deleted file mode 100644 index c0e95465b3e..00000000000 --- a/Examples/MAX32650/USB_HIDKeyboard/descriptors.h +++ /dev/null @@ -1,155 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32650_USB_HIDKEYBOARD_DESCRIPTORS_H_ -#define EXAMPLES_MAX32650_USB_HIDKEYBOARD_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor; -} config_descriptor = { { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0022, /* wTotalLength(L/H) = 34 bytes */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x00, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x00, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - } }; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x2c, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, - 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32650_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB_HIDKeyboard/main.c b/Examples/MAX32650/USB_HIDKeyboard/main.c deleted file mode 100644 index e595a4bb8c5..00000000000 --- a/Examples/MAX32650/USB_HIDKeyboard/main.c +++ /dev/null @@ -1,373 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device - * @details The EvKit should enumerate as a HID Keyboard device after loading the project and - * attaching a cable from the PC to the USB connector on the Evaluation Kit. - * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. - * 2. Open a text editor on the PC host and place cursor in edit box. - * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. - * - */ - -#include -#include -#include "led.h" -#include "pb.h" -#include "mxc_delay.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "descriptors.h" -#include "gcr_regs.h" -#include "mxc_sys.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -int remoteWake; -volatile int configured; -volatile int suspended; -volatile unsigned int evtFlags; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -void usDelay(unsigned int usec); -int usbStartupCallback(); -int usbShutdownCallback(); - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - evtFlags = 0; - remoteWake = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = usDelay; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, - report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (evtFlags) { - /* Display events */ - if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { - MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -/* User-supplied function to delay usec micro-seconds */ -void usDelay(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remoteWake) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); - return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - return hidkbd_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&evtFlags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} diff --git a/Examples/MAX32650/USB_MassStorage/Makefile b/Examples/MAX32650/USB_MassStorage/Makefile deleted file mode 100644 index 0603f592cf3..00000000000 --- a/Examples/MAX32650/USB_MassStorage/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32650 -TARGET_UC := MAX32650 -TARGET_LC := max32650 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32650/USB_MassStorage/descriptors.h b/Examples/MAX32650/USB_MassStorage/descriptors.h deleted file mode 100644 index dde2e312032..00000000000 --- a/Examples/MAX32650/USB_MassStorage/descriptors.h +++ /dev/null @@ -1,193 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32650_USB_MASSSTORAGE_DESCRIPTORS_H_ -#define EXAMPLES_MAX32650_USB_MASSSTORAGE_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x4402, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } }; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor_hs = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval */ - } }; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x38, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, - 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, - 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) -uint8_t serial_id_desc[] = { 26, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32650_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX32650/USB_MassStorage/main.c b/Examples/MAX32650/USB_MassStorage/main.c deleted file mode 100644 index 1ed169df519..00000000000 --- a/Examples/MAX32650/USB_MassStorage/main.c +++ /dev/null @@ -1,378 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB Mass Storage Class example - * @details This project creates a mass storage device using either on-board RAM or - * external SPI flash memory. Load the project, connect a cable from the PC - * to the USB connector. A new external drive should appear than can be read - * and written. - */ - -#include -#include -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/***** File Scope Variables *****/ - -/* Defaults, which will be changed by the configuration code */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - return msc_configure(&msc_cfg); /* Configure the device class */ - - } else if (sud->wValue == 0) { - configured = 0; - return msc_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clk_ctrl & MXC_F_GCR_CLK_CTRL_HIRC96_EN)) { - MXC_GCR->clk_ctrl |= MXC_F_GCR_CLK_CTRL_HIRC96_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLK_CTRL_HIRC96_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} diff --git a/Examples/MAX32650/USB_MassStorage/mscmem.c b/Examples/MAX32650/USB_MassStorage/mscmem.c deleted file mode 100644 index f125ab250aa..00000000000 --- a/Examples/MAX32650/USB_MassStorage/mscmem.c +++ /dev/null @@ -1,325 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "Ext_Flash.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32650/USB_MassStorage/mscmem.h b/Examples/MAX32650/USB_MassStorage/mscmem.h deleted file mode 100644 index ddea50c8c2d..00000000000 --- a/Examples/MAX32650/USB_MassStorage/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file - * @brief Memory routines used by the USB Mass Storage Class example. - * See the @ref msc_mem_t structure in msc.h for function details. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ -#ifndef EXAMPLES_MAX32650_USB_MASSSTORAGE_MSCMEM_H_ -#define EXAMPLES_MAX32650_USB_MASSSTORAGE_MSCMEM_H_ - -/* **** Include Files **** */ -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32650_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX32650/Watchdog/Makefile b/Examples/MAX32650/Watchdog/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/Watchdog/Makefile +++ b/Examples/MAX32650/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/Watchdog/main.c b/Examples/MAX32650/Watchdog/main.c index 96fcc169a9d..5b62a0822b8 100644 --- a/Examples/MAX32650/Watchdog/main.c +++ b/Examples/MAX32650/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32650/WearLeveling/Makefile b/Examples/MAX32650/WearLeveling/Makefile index 0603f592cf3..47461179883 100644 --- a/Examples/MAX32650/WearLeveling/Makefile +++ b/Examples/MAX32650/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32650/WearLeveling/include/cli.h b/Examples/MAX32650/WearLeveling/include/cli.h index 87ca992547c..6269cdd838f 100644 --- a/Examples/MAX32650/WearLeveling/include/cli.h +++ b/Examples/MAX32650/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32650/WearLeveling/include/file.h b/Examples/MAX32650/WearLeveling/include/file.h index 66d7542f926..020a5b9bbca 100644 --- a/Examples/MAX32650/WearLeveling/include/file.h +++ b/Examples/MAX32650/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32650/WearLeveling/include/flash.h b/Examples/MAX32650/WearLeveling/include/flash.h index 2bacbe268c4..98b2dfea75b 100644 --- a/Examples/MAX32650/WearLeveling/include/flash.h +++ b/Examples/MAX32650/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/WearLeveling/include/main.h b/Examples/MAX32650/WearLeveling/include/main.h index a0012d0ad39..85e35f5e746 100644 --- a/Examples/MAX32650/WearLeveling/include/main.h +++ b/Examples/MAX32650/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32650_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32650/WearLeveling/main.c b/Examples/MAX32650/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32650/WearLeveling/main.c +++ b/Examples/MAX32650/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32650/WearLeveling/src/cli.c b/Examples/MAX32650/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32650/WearLeveling/src/cli.c +++ b/Examples/MAX32650/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32650/WearLeveling/src/file.c b/Examples/MAX32650/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32650/WearLeveling/src/file.c +++ b/Examples/MAX32650/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32650/WearLeveling/src/flash.c b/Examples/MAX32650/WearLeveling/src/flash.c index 7925deed0d8..e1bbd27be40 100644 --- a/Examples/MAX32650/WearLeveling/src/flash.c +++ b/Examples/MAX32650/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/ADC/Makefile b/Examples/MAX32655/ADC/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/ADC/Makefile +++ b/Examples/MAX32655/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ADC/main.c b/Examples/MAX32655/ADC/main.c index 1666ac8c4db..35b741c5613 100644 --- a/Examples/MAX32655/ADC/main.c +++ b/Examples/MAX32655/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/AES/Makefile b/Examples/MAX32655/AES/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/AES/Makefile +++ b/Examples/MAX32655/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/AES/main.c b/Examples/MAX32655/AES/main.c index eb32dd040ca..4368fcf142a 100644 --- a/Examples/MAX32655/AES/main.c +++ b/Examples/MAX32655/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_bayes_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_class_marks_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_convolution_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32655/ARM-DSP/arm_dotproduct_example_f32/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_fft_bin_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_fir_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_graphic_equalizer_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_linear_interp_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_matrix_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_signal_converge_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_sin_cos_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_svm_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32655/ARM-DSP/arm_variance_example/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32655/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/BLE4_ctr/Makefile b/Examples/MAX32655/BLE4_ctr/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE4_ctr/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE4_ctr/main.c b/Examples/MAX32655/BLE4_ctr/main.c deleted file mode 100644 index 4166b973549..00000000000 --- a/Examples/MAX32655/BLE4_ctr/main.c +++ /dev/null @@ -1,201 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - - /* Set 4.2 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) { - eventPending = WsfTokenService(); - } -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) { - eventPending = LhciSnifferHandler(); - } -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - LlSetAdvTxPower(DEFAULT_TX_POWER); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE5_ctr/Makefile b/Examples/MAX32655/BLE5_ctr/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE5_ctr/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE5_ctr/main.c b/Examples/MAX32655/BLE5_ctr/main.c deleted file mode 100644 index b8a2286fb7d..00000000000 --- a/Examples/MAX32655/BLE5_ctr/main.c +++ /dev/null @@ -1,286 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth version 5.2 controller, accepts HCI commands via Serial Port. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_cs.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "mxc_device.h" -#include "uart.h" -#include "nvic_table.h" -#include "board.h" -#include "pal_timer.h" - -#define MAX_PRIORITY ((0x1 << __NVIC_PRIO_BITS) - 1) - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = BT_VER; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; - - /* Adjust the extended advertising and ISO settings */ - mainLlRtCfg.maxAdvSets = 2; - mainLlRtCfg.maxAdvReports = 4; - mainLlRtCfg.numIsoTxBuf = 8; - mainLlRtCfg.maxCis = 2; - mainLlRtCfg.maxBis = 2; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Use single pool for data buffers. */ -#if (BT_VER > 9) - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) { - eventPending = WsfTokenService(); - } -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) { - eventPending = LhciSnifferHandler(); - } -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Adjust interrupt priorities to let HCI UART interrupt have second highest after PAL timer - * - * \return None - */ -/*************************************************************************************************/ -void setInterruptPriority(void) -{ - /* Interrupts using FreeRTOS functions must have priorities between MAX_PRIORITY and - configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ - - /* Setup BLE hardware interrupt priorities */ - NVIC_SetPriority(BTLE_TX_DONE_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SFD_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SFD_TO_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_CFO_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SIG_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_TX_AES_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_AES_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (MAX_PRIORITY - 2)); - - /* Setup scheduler timer priorities */ - NVIC_SetPriority(TMR0_IRQn, (MAX_PRIORITY - 1)); - NVIC_SetPriority(TMR1_IRQn, (MAX_PRIORITY - 1)); - - NVIC_SetPriority(WUT_IRQn, (MAX_PRIORITY - 1)); - - /* Setup additional peripheral timer priorities */ - NVIC_SetPriority(UART1_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(UART2_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(DMA0_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA1_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA2_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA3_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(GPIO0_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(GPIO1_IRQn, (MAX_PRIORITY - 0)); - - /* Trace UART */ - NVIC_SetPriority(UART0_IRQn, 3); - /* HCI UART highest priority */ - NVIC_SetPriority(MXC_UART_GET_IRQ(MXC_UART_GET_UART(HCI_UART)), 0); - /* PAL Timer */ - PalTimerSetIRQPriority(2); -} -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - LlSetAdvTxPower(DEFAULT_TX_POWER); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - setInterruptPriority(); - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32655/BLE_FreeRTOS/FreeRTOSConfig.h deleted file mode 100644 index 54f0ac13ed7..00000000000 --- a/Examples/MAX32655/BLE_FreeRTOS/FreeRTOSConfig.h +++ /dev/null @@ -1,134 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32655_BLE_FREERTOS_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32655_BLE_FREERTOS_FREERTOSCONFIG_H_ - -#include -#include "max32655.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) - -#define SLEEP_LED 1 -#define DEEPSLEEP_LED 0 - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -// #define configUSE_TICKLESS_IDLE 1 - -/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will -increase the amount of time spent in standby mode, thus reducing average power consumption. */ -#ifdef configUSE_TICKLESS_IDLE -#define configTICK_RATE_HZ ((portTickType)10000) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#endif - -#define configRTC_TICK_RATE_HZ (32768) - -#define configTOTAL_HEAP_SIZE ((size_t)(70 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -/* Define to trap errors during development. */ -void vAssertCalled(const char *const pcFileName, uint32_t ulLine); -#define configASSERT(x) \ - if ((x) == 0) \ - vAssertCalled(__FILE__, __LINE__) - -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) - -/* Only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY \ - ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -#endif // EXAMPLES_MAX32655_BLE_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/BLE_FreeRTOS/Makefile b/Examples/MAX32655/BLE_FreeRTOS/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_FreeRTOS/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_FreeRTOS/dats_api.h b/Examples/MAX32655/BLE_FreeRTOS/dats_api.h deleted file mode 100644 index 8a570fb12e0..00000000000 --- a/Examples/MAX32655/BLE_FreeRTOS/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_FREERTOS_DATS_API_H_ -#define EXAMPLES_MAX32655_BLE_FREERTOS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_FREERTOS_DATS_API_H_ diff --git a/Examples/MAX32655/BLE_FreeRTOS/dats_main.c b/Examples/MAX32655/BLE_FreeRTOS/dats_main.c deleted file mode 100644 index c2b119c705c..00000000000 --- a/Examples/MAX32655/BLE_FreeRTOS/dats_main.c +++ /dev/null @@ -1,925 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_1M 1 -#define DATS_PHY_2M 2 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 60000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 5000, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - (50 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (100 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'D', - 'A', - 'T', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello back"; - - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datsCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - if (len < 64) { - /* print received data if not a speed test message */ - APP_TRACE_INFO0((const char *)pValue); - - /* send back some data */ - datsSendData(connId); - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datsOobCfg != NULL) { - DmSecSetOob(connId, datsOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32655/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32655/BLE_FreeRTOS/freertos_tickless.c deleted file mode 100644 index 6d497e85ba4..00000000000 --- a/Examples/MAX32655/BLE_FreeRTOS/freertos_tickless.c +++ /dev/null @@ -1,271 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Maxim CMSIS */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" -#include "lp.h" -#include "pwrseq_regs.h" -#include "wut.h" -#include "mcr_regs.h" -#include "icc.h" -#include "pb.h" -#include "led.h" -#include "uart.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Bluetooth Cordio library */ -#include "pal_timer.h" -#include "pal_uart.h" -#include "pal_bb.h" - -#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ -#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ -#define WAKEUP_US 700 /* Deep sleep recovery time, units of us */ - -/* Minimum ticks before SysTick interrupt, units of system clock ticks. - * Convert CPU_CLOCK_HZ to units of ticks per us - */ -#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -int freertos_permit_tickless(void) -{ - /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ - if (MXC_WUT_TrimPending(MXC_WUT0) != E_NO_ERROR) { - return E_BUSY; - } - - /* Figure out if the UART is active */ - if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { - return E_BUSY; - } - - /* Prevent characters from being corrupted if still transmitting, - UART will shutdown in deep sleep */ - if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { - return E_BUSY; - } - - return E_NO_ERROR; -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the WUT to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; - uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; - bool_t schTimerActive; - - /* We do not currently handle to case where the WUT is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Calculate the number of WUT ticks, but we need one to synchronize */ - idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / - (uint64_t)configTICK_RATE_HZ; - - if (idleTicks > MAX_WUT_TICKS) { - idleTicks = MAX_WUT_TICKS; - } - - /* Check to see if we meet the minimum requirements for deep sleep */ - if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { - return; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - - /* Determine if the Bluetooth scheduler is running */ - if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { - schTimerActive = TRUE; - } else { - schTimerActive = FALSE; - } - - if (!schTimerActive) { - uint32_t ts; - if (PalBbGetTimestamp(&ts)) { - /*Determine if PalBb is active, return if we get a valid time stamp indicating - * that the scheduler is waiting for a PalBb event */ - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - } - - /* Disable SysTick */ - SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); - - /* Enable wakeup from WUT */ - NVIC_EnableIRQ(WUT_IRQn); - MXC_LP_EnableWUTAlarmWakeup(); - - /* Determine if we need to snapshot the PalBb clock */ - if (schTimerActive) { - /* Snapshot the current WUT value with the PalBb clock */ - MXC_WUT_Store(MXC_WUT0); - preCapture = MXC_WUT_GetCount(MXC_WUT0); - schUsec = PalTimerGetExpTime(); - - /* Adjust idleTicks for the time it takes to restart the BLE hardware */ - idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); - - /* Calculate the time to the next BLE scheduler event */ - if (schUsec < WAKEUP_US) { - bleSleepTicks = 0; - } else { - bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * - (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; - } - } else { - /* Snapshot the current WUT value */ - MXC_WUT_Edge(MXC_WUT0); - preCapture = MXC_WUT_GetCount(MXC_WUT0); - bleSleepTicks = 0; - schUsec = 0; - } - - /* Sleep for the shortest tick duration */ - if ((schTimerActive) && (bleSleepTicks < idleTicks)) { - dsTicks = bleSleepTicks; - } else { - dsTicks = idleTicks; - } - - /* Bound the deep sleep time */ - if (dsTicks > MAX_WUT_TICKS) { - dsTicks = MAX_WUT_TICKS; - } - - /* Don't deep sleep if we don't have time */ - if (dsTicks >= MIN_WUT_TICKS) { - /* Arm the WUT interrupt */ - MXC_WUT->cmp = preCapture + dsTicks; - - if (schTimerActive) { - /* Stop the BLE scheduler timer */ - PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); - } - - LED_Off(SLEEP_LED); - LED_Off(DEEPSLEEP_LED); - - MXC_LP_EnterStandbyMode(); - - LED_On(DEEPSLEEP_LED); - LED_On(SLEEP_LED); - - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); - - /* Restore the BB counter */ - MXC_WUT_RestoreBBClock(MXC_WUT0, BB_CLK_RATE_HZ); - - /* Restart the BLE scheduler timer */ - dsWutTicks = MXC_WUT->cnt - preCapture; - schUsecElapsed = - (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; - - int palTimerStartTicks = schUsec - schUsecElapsed; - if (palTimerStartTicks < 1) { - palTimerStartTicks = 1; - } - PalTimerStart(palTimerStartTicks); - } - } - - /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ - MXC_WUT_Edge(MXC_WUT0); - postCapture = MXC_WUT_GetCount(MXC_WUT0); - dsWutTicks = postCapture - preCapture; - - /* - * Advance ticks by # actually elapsed - */ - dsSysTickPeriods = - (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; - vTaskStepTick(dsSysTickPeriods); - - /* Re-enable SysTick */ - SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); -} diff --git a/Examples/MAX32655/BLE_FreeRTOS/main.c b/Examples/MAX32655/BLE_FreeRTOS/main.c deleted file mode 100644 index e20969e66e5..00000000000 --- a/Examples/MAX32655/BLE_FreeRTOS/main.c +++ /dev/null @@ -1,173 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief BLE_FreeRTOS - * @details This example demonstrates FreeRTOS with BLE capabilities. - */ - -#include -#include -#include -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "mxc_device.h" -#include "wut.h" -#include "lp.h" -#include "led.h" -#include "board.h" - -/* Stringification macros */ -#define STRING(x) STRING_(x) -#define STRING_(x) #x - -extern void bleStartup(void); - -/***** Functions *****/ - -/* =| vAssertCalled |============================== - * - * Called when an assertion is detected. Use debugger to backtrace and - * continue. - * - * ======================================================= - */ -void vAssertCalled(const char *const pcFileName, uint32_t ulLine) -{ - volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; - - /* Parameters are not used. */ - (void)ulLine; - (void)pcFileName; - - __asm volatile("cpsid i"); - { - /* You can step out of this function to debug the assertion by using - the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero - value. */ - while (ulSetToNonZeroInDebuggerToContinue == 0) {} - } - __asm volatile("cpsie i"); -} - -/* =| vApplicationIdleHook |============================== - * - * Call the user defined function from within the idle task. This - * allows the application designer to add background functionality - * without the overhead of a separate task. - * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, - * CALL A FUNCTION THAT MIGHT BLOCK. - * - * ======================================================= - */ -void vApplicationIdleHook(void) -{ - /* Sleep while idle */ - LED_Off(SLEEP_LED); - - MXC_LP_EnterSleepMode(); - - LED_On(SLEEP_LED); -} - -/* =| main |============================================== - * - * This program demonstrates FreeRTOS tasks, mutexes. - * - * ======================================================= - */ -int main(void) -{ - /* Print banner (RTOS scheduler not running) */ - printf("\n-=- %s BLE FreeRTOS (%s) Demo -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); -#if configUSE_TICKLESS_IDLE - printf("Tickless idle is enabled\n"); - /* Initialize CPU Active LED */ - LED_On(SLEEP_LED); - LED_On(DEEPSLEEP_LED); -#endif - printf("SystemCoreClock = %d\n", SystemCoreClock); - - /* Delay to prevent bricks */ - volatile int i; - for (i = 0; i < 0x3FFFFF; i++) {} - - GPIO_PrepForSleep(); - - /* Start the BLE application */ - bleStartup(); - - /* Start scheduler */ - vTaskStartScheduler(); - - /* This code is only reached if the scheduler failed to start */ - printf("ERROR: FreeRTOS did not start due to above error!\n"); - while (1) { - __NOP(); - } - - /* Quiet GCC warnings */ - return -1; -} - -typedef struct __attribute__((packed)) ContextStateFrame { - uint32_t r0; - uint32_t r1; - uint32_t r2; - uint32_t r3; - uint32_t r12; - uint32_t lr; - uint32_t return_address; - uint32_t xpsr; -} sContextStateFrame; - -/*****************************************************************/ -void HardFault_Handler(void) -{ - __asm(" TST LR, #4\n" - " ITE EQ \n" - " MRSEQ R0, MSP \n" - " MRSNE R0, PSP \n" - " B HardFault_Decoder \n"); -} - -/*****************************************************************/ -/* Disable optimizations for this function so "frame" argument */ -/* does not get optimized away */ -__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) -{ - /* Hang here */ - while (1) {} -} diff --git a/Examples/MAX32655/BLE_FreeRTOS/stack_dats.c b/Examples/MAX32655/BLE_FreeRTOS/stack_dats.c deleted file mode 100644 index 1a93b685276..00000000000 --- a/Examples/MAX32655/BLE_FreeRTOS/stack_dats.c +++ /dev/null @@ -1,383 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file stack_dats.c - * - * \brief Stack initialization for dats. - * - * Copyright (c) 2016-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include - -#include "app_api.h" -#include "app_terminal.h" -#include "app_ui.h" -#include "att_api.h" -#include "att_handler.h" -#include "dats_api.h" -#include "dm_handler.h" -#include "hci_core.h" -#include "hci_defs.h" -#include "hci_handler.h" -#include "l2c_api.h" -#include "l2c_handler.h" -#include "ll_init_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "sec_api.h" -#include "smp_api.h" -#include "smp_handler.h" -#include "svc_core.h" -#include "svc_dis.h" -#include "util/bstream.h" -#include "wdxs/wdxs_api.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_bufio.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_msg.h" -#include "wsf_os.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_types.h" -#include "pal_led.h" - -#include "FreeRTOSConfig.h" - -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" -#include "mxc_device.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, - { 32, 4 }, - { 192, 8 }, - { 256, 16 }, - { 512, 4 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Initialize stack. - * - * \return None. - */ -/*************************************************************************************************/ -void StackInitDats(void) -{ - wsfHandlerId_t handlerId; - - SecInit(); - SecAesInit(); - SecCmacInit(); - SecEccInit(); - - handlerId = WsfOsSetNextHandler(HciHandler); - HciHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(DmHandler); - DmDevVsInit(0); - DmConnInit(); - DmAdvInit(); - DmConnSlaveInit(); - DmSecInit(); - DmSecLescInit(); - DmPrivInit(); - DmHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(L2cSlaveHandler); - L2cSlaveHandlerInit(handlerId); - L2cInit(); - L2cSlaveInit(); - - handlerId = WsfOsSetNextHandler(AttHandler); - AttHandlerInit(handlerId); - AttsInit(); - AttsIndInit(); - - handlerId = WsfOsSetNextHandler(SmpHandler); - SmpHandlerInit(handlerId); - SmprInit(); - SmprScInit(); - HciSetMaxRxAclLen(100); - - handlerId = WsfOsSetNextHandler(AppHandler); - AppHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(DatsHandler); - DatsHandlerInit(handlerId); -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_IntClear(MXC_WUT0); - NVIC_ClearPendingIRQ(WUT_IRQn); - MXC_WUT_Handler(MXC_WUT0); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> - MXC_F_TRIMSIR_RTC_X1TRIM_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -void setInterruptPriority(void) -{ - /* Interrupts using FreeRTOS functions must have priorities between configMAX_PRIORITIES and - configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ - - /* Setup BLE hardware interrupt priorities */ - NVIC_SetPriority(BTLE_TX_DONE_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SFD_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SFD_TO_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_CFO_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SIG_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_TX_AES_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_AES_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (configMAX_PRIORITIES - 2)); - - /* Setup scheduler timer priorities */ - NVIC_SetPriority(TMR0_IRQn, (configMAX_PRIORITIES - 1)); - NVIC_SetPriority(TMR1_IRQn, (configMAX_PRIORITIES - 1)); - - NVIC_SetPriority(WUT_IRQn, configMAX_PRIORITIES - 1); - - /* Setup additional peripheral timer priorities */ - NVIC_SetPriority(UART0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART1_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART2_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART3_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(DMA0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA1_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA2_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA3_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(GPIO0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(GPIO1_IRQn, (configMAX_PRIORITIES - 0)); -} - -void trim32k(void) -{ - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - NVIC_EnableIRQ(WUT_IRQn); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb) != E_NO_ERROR) { - APP_TRACE_INFO0("Error with 32k trim"); - } else { - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -} - -/*************************************************************************************************/ -/*! - * \brief Initialize BLE. - * - * \return None. - */ -/*************************************************************************************************/ -void bleStartup(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - trim32k(); -#endif - - setInterruptPriority(); - -#if configUSE_TICKLESS_IDLE - /* Disable Cordio stack usage of the LEDs */ - PalLedDeInit(); -#endif - - StackInitDats(); - DatsStart(); -} diff --git a/Examples/MAX32655/BLE_datc/ARM/BTLE_datc.uvguix.Faisal.Tariq b/Examples/MAX32655/BLE_datc/ARM/BTLE_datc.uvguix.Faisal.Tariq deleted file mode 100644 index d3a8e282ada..00000000000 --- a/Examples/MAX32655/BLE_datc/ARM/BTLE_datc.uvguix.Faisal.Tariq +++ /dev/null @@ -1,3628 +0,0 @@ - - - - -6.1 - -
### uVision Project, (C) Keil Software
- - - - - - - - - - 38003 - Registers - 140 30 - - - 346 - Code Coverage - 665 160 - - - 204 - Performance Analyzer - 247 123 123 330 - - - - - - 35141 - Event Statistics - - 250 50 529 - - - 1506 - Symbols - - 56 56 56 - - - 1936 - Watch 1 - - 200 133 133 - - - 1937 - Watch 2 - - 200 133 133 - - - 1935 - Call Stack + Locals - - 200 133 133 - - - 2506 - Trace Data - - 75 135 130 95 70 230 200 150 - - - 466 - Source Browser - 500 - 166 - - - - - - - - 0 - 0 - 0 - 50 - 16 - - - - - - - 44 - 2 - 3 - - -1 - -1 - - - -1 - -1 - - - 190 - -3569 - -2205 - 918 - - - - 0 - - 432 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000200000001000000010000005C433A5C55736572735C66616973616C2E74617269715C4465736B746F705C6D6531375F4D415833323635355F5C4D415833323635355F5041434B5C4578616D706C65735C4D415833323635355C424C455F646174635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF74433A5C55736572735C66616973616C2E74617269715C417070446174615C4C6F63616C5C41726D5C5061636B735F3533365C4D6178696D5C4D415833323635355C312E302E305C4C69627261726965735C506572697068447269766572735C536F757263655C544D525C746D725F6D6531372E63000000000A746D725F6D6531372E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000AEF1FFFF6700000080F8FFFF6A030000 - - - - 0 - Build - - -1 - -1 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - AE0000004F00000090050000DF000000 - - - 16 - AEF1FFFF6700000090F6FFFFF7000000 - - - - 1005 - 1005 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000039030000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 109 - 109 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000039030000 - - - 16 - 70F1FFFF880000008CF2FFFFC8020000 - - - - 1465 - 1465 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1466 - 1466 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1467 - 1467 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1468 - 1468 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1506 - 1506 - 0 - 0 - 0 - 0 - 32767 - 0 - 16384 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 1913 - 1913 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1935 - 1935 - 0 - 0 - 0 - 0 - 32767 - 0 - 32768 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 1936 - 1936 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 1937 - 1937 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 1939 - 1939 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1940 - 1940 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1941 - 1941 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 1942 - 1942 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 195 - 195 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000039030000 - - - 16 - 70F1FFFF880000008CF2FFFFC8020000 - - - - 196 - 196 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000039030000 - - - 16 - 70F1FFFF880000008CF2FFFFC8020000 - - - - 197 - 197 - 1 - 0 - 0 - 0 - 32767 - 0 - 32768 - 0 - - 16 - 000000006A03000080070000E6030000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 198 - 198 - 0 - 0 - 0 - 0 - 32767 - 0 - 32768 - 0 - - 16 - 000000001902000090050000BD020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 199 - 199 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 030000006D0300007D070000CD030000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 203 - 203 - 0 - 0 - 0 - 0 - 32767 - 0 - 8192 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 204 - 204 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 221 - 221 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 00000000000000000000000000000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 2506 - 2506 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 2507 - 2507 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 343 - 343 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 346 - 346 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 35141 - 35141 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35824 - 35824 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 35885 - 35885 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35886 - 35886 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35887 - 35887 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35888 - 35888 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35889 - 35889 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35890 - 35890 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35891 - 35891 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35892 - 35892 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35893 - 35893 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35894 - 35894 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35895 - 35895 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35896 - 35896 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35897 - 35897 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35898 - 35898 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35899 - 35899 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35900 - 35900 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35901 - 35901 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35902 - 35902 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35903 - 35903 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35904 - 35904 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 35905 - 35905 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 38003 - 38003 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000039030000 - - - 16 - 70F1FFFF880000008CF2FFFFC8020000 - - - - 38007 - 38007 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 030000006D0300007D070000CD030000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 436 - 436 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 030000006D0300007D070000CD030000 - - - 16 - 70F1FFFF880000008CF2FFFFC8020000 - - - - 437 - 437 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 440 - 440 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 463 - 463 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 030000006D0300007D070000CD030000 - - - 16 - 70F1FFFF880000008CF2FFFFC8020000 - - - - 466 - 466 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 030000006D0300007D070000CD030000 - - - 16 - 70F1FFFF880000008CF2FFFFC8020000 - - - - 470 - 470 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B1000000660000008D050000C6000000 - - - 16 - 70F1FFFF8800000038F4FFFF18010000 - - - - 50000 - 50000 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50001 - 50001 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50002 - 50002 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50003 - 50003 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50004 - 50004 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50005 - 50005 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50006 - 50006 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50007 - 50007 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50008 - 50008 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50009 - 50009 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50010 - 50010 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50011 - 50011 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50012 - 50012 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50013 - 50013 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50014 - 50014 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50015 - 50015 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50016 - 50016 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50017 - 50017 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50018 - 50018 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 50019 - 50019 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - E9040000660000008D05000010020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 59392 - 59392 - 1 - 0 - 0 - 0 - 966 - 0 - 8192 - 0 - - 16 - 0000000000000000D10300001C000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 59393 - 0 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 00000000E603000080070000F9030000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 59399 - 59399 - 1 - 0 - 0 - 0 - 476 - 0 - 8192 - 1 - - 16 - 000000001C000000E701000038000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 59400 - 59400 - 0 - 0 - 0 - 0 - 612 - 0 - 8192 - 2 - - 16 - 00000000380000006F02000054000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 824 - 824 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 03000000300200008D050000A4020000 - - - 16 - 70F1FFFF880000001AF2FFFF15010000 - - - - 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFAE000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000AEF1FFFF6700000090F6FFFFF7000000AE0000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFE20400004F000000E604000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000E6F5FFFF6700000090F6FFFF41020000E60400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFAA0000004F000000AE00000052030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000F1FFFF67000000AAF1FFFF6A030000000000004F000000AA000000520300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000F1FFFF3102000090F6FFFFD5020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000520300008007000056030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000F1FFFF6E03000080F8FFFFFE030000000000005603000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 - - - 59392 - File - - 2564 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B46697420676F7420657674960000000000000001000B46697420676F742065767400000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 - - - 1423 - 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 - - - 1423 - 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 - - - - 59399 - Build - - 982 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000B466C617368204465627567960000000000000001000B466C617368204465627567000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 - - - 583 - 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 - - - 583 - 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 - - - - 59400 - Debug - - 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 - - - 898 - 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 - - - 898 - 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 - - - - 0 - 1366 - 768 - - - - 1 - Debug - - -1 - -1 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - AE0000004F00000080070000B3000000 - - - 16 - AEF1FFFF67000000F1F4FFFFCB000000 - - - - 1005 - 1005 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000054030000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 109 - 109 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000041010000 - - - 16 - 3C0000005300000005010000D8010000 - - - - 1465 - 1465 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C7030000880300007D070000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1466 - 1466 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1467 - 1467 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1468 - 1468 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1506 - 1506 - 0 - 0 - 0 - 0 - 32767 - 0 - 16384 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 1913 - 1913 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B100000066000000EE0300009A000000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1935 - 1935 - 1 - 0 - 0 - 0 - 32767 - 0 - 32768 - 0 - - 16 - C7030000880300007D070000CD030000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 1936 - 1936 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 1937 - 1937 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 1939 - 1939 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1940 - 1940 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1941 - 1941 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 1942 - 1942 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 195 - 195 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000041010000 - - - 16 - 3C0000005300000005010000D8010000 - - - - 196 - 196 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000041010000 - - - 16 - 3C0000005300000005010000D8010000 - - - - 197 - 197 - 0 - 0 - 0 - 0 - 32767 - 0 - 32768 - 0 - - 16 - 0300000086010000EE030000BA010000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 198 - 198 - 1 - 0 - 0 - 0 - 32767 - 0 - 32768 - 0 - - 16 - 0000000071030000C0030000E6030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 199 - 199 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000086010000EE030000BA010000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 203 - 203 - 1 - 0 - 0 - 0 - 32767 - 0 - 8192 - 0 - - 16 - AE0000006300000080070000B3000000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 204 - 204 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B100000066000000EE0300009A000000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 221 - 221 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 00000000000000000000000000000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 2506 - 2506 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 2507 - 2507 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 343 - 343 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B100000066000000EE0300009A000000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 346 - 346 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B100000066000000EE0300009A000000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 35141 - 35141 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B100000066000000EE0300009A000000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35824 - 35824 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B100000066000000EE0300009A000000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 35885 - 35885 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35886 - 35886 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35887 - 35887 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35888 - 35888 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35889 - 35889 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35890 - 35890 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35891 - 35891 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35892 - 35892 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35893 - 35893 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35894 - 35894 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35895 - 35895 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35896 - 35896 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35897 - 35897 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35898 - 35898 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35899 - 35899 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35900 - 35900 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35901 - 35901 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35902 - 35902 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35903 - 35903 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35904 - 35904 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 35905 - 35905 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 38003 - 38003 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000066000000A700000054030000 - - - 16 - 3C0000005300000005010000D8010000 - - - - 38007 - 38007 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000086010000EE030000BA010000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 436 - 436 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000086010000EE030000BA010000 - - - 16 - 3C0000005300000005010000D8010000 - - - - 437 - 437 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 440 - 440 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 463 - 463 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000086010000EE030000BA010000 - - - 16 - 3C0000005300000005010000D8010000 - - - - 466 - 466 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 0300000086010000EE030000BA010000 - - - 16 - 3C0000005300000005010000D8010000 - - - - 470 - 470 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - B100000066000000EE0300009A000000 - - - 16 - 3C0000005300000034020000B4000000 - - - - 50000 - 50000 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50001 - 50001 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50002 - 50002 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50003 - 50003 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50004 - 50004 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50005 - 50005 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50006 - 50006 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50007 - 50007 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50008 - 50008 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50009 - 50009 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50010 - 50010 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50011 - 50011 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50012 - 50012 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50013 - 50013 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50014 - 50014 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50015 - 50015 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50016 - 50016 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50017 - 50017 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50018 - 50018 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 50019 - 50019 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 4A03000066000000EE03000052010000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 59392 - 59392 - 1 - 0 - 0 - 0 - 966 - 0 - 8192 - 0 - - 16 - 0000000000000000D10300001C000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 59393 - 0 - 1 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 00000000E603000080070000F9030000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 59399 - 59399 - 0 - 0 - 0 - 0 - 476 - 0 - 8192 - 1 - - 16 - 000000001C000000E701000038000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 59400 - 59400 - 1 - 0 - 0 - 0 - 612 - 0 - 8192 - 2 - - 16 - 000000001C0000006F02000038000000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 824 - 824 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - C703000088030000B5050000CD030000 - - - 16 - 3C00000053000000E6000000E0000000 - - - - 3311 - 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFAE000000B300000080070000B7000000010000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000001000000AEF1FFFF67000000F1F4FFFFCB000000AE0000004F00000080070000B30000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF430300004F000000470300006B010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000047F4FFFF67000000F1F4FFFF83010000470300004F000000F10300006B01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFAA0000004F000000AE0000006D030000010000000200000004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000F1FFFF67000000AAF1FFFF72010000000000004F000000AA0000006D0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000006D030000800700007103000001000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000FDF2FFFF76010000F1F4FFFFEB010000C40300007103000080070000E603000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFFC003000071030000C4030000E603000001000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000006B010000F10300006F010000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000000000000F1FFFF87010000F1F4FFFFEB010000000000006F010000F1030000D30100000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 - - - 59392 - File - - 2564 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000B46697420676F7420657674960000000000000001000B46697420676F742065767400000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 - - - 1423 - 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 - - - 1423 - 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 - - - - 59399 - Build - - 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 - - - 583 - 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 - - - 583 - 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 - - - - 59400 - Debug - - 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 - - - 898 - 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 - - - 898 - 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 - - - - 0 - 1366 - 768 - - - - - - 1 - 0 - - 100 - 1 - - ..\main.c - 0 - 146 - 159 - 1 - - 0 - - - C:\Users\faisal.tariq\AppData\Local\Arm\Packs_536\Maxim\MAX32655\1.0.0\Libraries\PeriphDrivers\Source\TMR\tmr_me17.c - 0 - 325 - 338 - 1 - - 0 - - - - -
diff --git a/Examples/MAX32655/BLE_datc/Makefile b/Examples/MAX32655/BLE_datc/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_datc/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_datc/datc_api.h b/Examples/MAX32655/BLE_datc/datc_api.h deleted file mode 100644 index 4eff88922ba..00000000000 --- a/Examples/MAX32655/BLE_datc/datc_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_DATC_DATC_API_H_ -#define EXAMPLES_MAX32655_BLE_DATC_DATC_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_DATC_DATC_API_H_ diff --git a/Examples/MAX32655/BLE_datc/datc_main.c b/Examples/MAX32655/BLE_datc/datc_main.c deleted file mode 100644 index 206636847a5..00000000000 --- a/Examples/MAX32655/BLE_datc/datc_main.c +++ /dev/null @@ -1,1400 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application for Nordic-ble. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "dm_api.h" -#include "dm_priv.h" -#include "gap/gap_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_cfg.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_core.h" -#include "svc_ch.h" -#include "gatt/gatt_api.h" -#include "wpc/wpc_api.h" -#include "datc_api.h" -#include "util/calc128.h" -#include "pal_btn.h" -#include "pal_uart.h" -#include "tmr.h" -#include "sdsc_api.h" -/************************************************************************************************** -Macros -**************************************************************************************************/ -#if (BT_VER > 8) -/* PHY Test Modes */ -#define DATC_PHY_1M 1 -#define DATC_PHY_2M 2 -#define DATC_PHY_CODED 3 -#endif /* BT_VER */ - -#define SPEED_TEST_COUNT 5000 - -/* Max value is 238 */ -#define SPEED_TEST_PACKET_LEN 238 -#define SPEED_TEST_TMR MXC_TMR3 - -#define SCAN_START_EVT 0x99 -#define SCAN_START_MS 500 - -/* Down sample the number of scan reports we print */ -#define SCAN_REPORT_DOWN_SAMPLE 20 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR2 - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -struct { - uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ - wsfHandlerId_t handlerId; /*! WSF hander ID */ - bool_t scanning; /*! TRUE if scanning */ - bool_t autoConnect; /*! TRUE if auto-connecting */ - uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ - uint8_t hdlListLen; /*! Cached handle list length */ - uint8_t btnConnId; /*! The index of the connection ID for button presses */ -#if (BT_VER > 8) - uint8_t phyMode[DM_CONN_MAX]; /*! PHY Test Mode */ -#endif /* BT_VER */ - appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ - unsigned speedTestCounter; - wsfTimer_t scanTimer; /* Timer for starting the scanner */ -} datcCb; - -/*! connection control block */ -typedef struct { - appDbHdl_t dbHdl; /*! Device database record handle type */ - uint8_t addrType; /*! Type of address of device to connect to */ - bdAddr_t addr; /*! Address of device to connect to */ - bool_t doConnect; /*! TRUE to issue connect on scan complete */ -} datcConnInfo_t; - -datcConnInfo_t datcConnInfo; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for master */ -static const appMasterCfg_t datcMasterCfg = { - 96, /*! The scan interval, in 0.625 ms units */ - 48, /*! The scan window, in 0.625 ms units */ - 0, /*! The scan duration in ms */ - DM_DISC_MODE_NONE, /*! The GAP discovery mode */ - DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ -}; - -/*! Configurable security parameters to set -* pairing and authentication requirements. -* -* Authentication and bonding flags -* -DM_AUTH_BOND_FLAG : Bonding requested -* -DM_AUTH_KP_FLAG : Keypress notifications requested -* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested, - pairing method is determined by IO capabilities below -* -DM_AUTH_SC_FLAG : LE Secure Connections requested -* -* Initiator key distribution flags -* -DM_KEY_DIST_LTK : Distribute LTK used for encryption -* -DM_KEY_DIST_IRK : Distribute IRK used for privacy -* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data -*/ -static const appSecCfg_t datcSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/* OOB UART parameters */ -#define OOB_BAUD 115200 -#define OOB_FLOW FALSE - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datcSendOobData = FALSE; - -/* OOB Connection identifier */ -dmConnId_t oobConnId; - -/*! SMP security parameter configuration -* -* I/O Capability Codes to be set for -* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets -* when the MITM flag is set in Configurable security parameters above. -* -SMP_IO_DISP_ONLY : Display only. -* -SMP_IO_DISP_YES_NO : Display yes/no. -* -SMP_IO_KEY_ONLY : Keyboard only. -* -SMP_IO_NO_IN_NO_OUT : No input, no output. -* -SMP_IO_KEY_DISP : Keyboard display. -*/ -static const smpCfg_t datcSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_KEY_ONLY, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! Connection parameters */ -static const hciConnSpec_t datcConnCfg = { - 6, /*! Minimum connection interval in 1.25ms units */ - 6, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 0, /*! Unused */ - 0 /*! Unused */ -}; - -/*! Configurable parameters for service and characteristic discovery */ -static const appDiscCfg_t datcDiscCfg = { - FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ - TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ -}; - -static const appCfg_t datcAppCfg = { - FALSE, /*! TRUE to abort service discovery if service not found */ - TRUE /*! TRUE to disconnect if ATT transaction times out */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datcAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, - 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; - -/************************************************************************************************** - ATT Client Discovery Data -**************************************************************************************************/ - -/*! Discovery states: enumeration of services to be discovered */ -enum { - DATC_DISC_GATT_SVC, /*! GATT service */ - DATC_DISC_GAP_SVC, /*! GAP service */ - DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ - DATC_DISC_SDS_SVC, /*! Secured Data Service */ - DATC_DISC_SVC_MAX /*! Discovery complete */ -}; - -/*! the Client handle list, datcCb.hdlList[], is set as follows: - * - * ------------------------------- <- DATC_DISC_GATT_START - * | GATT svc changed handle | - * ------------------------------- - * | GATT svc changed ccc handle | - * ------------------------------- <- DATC_DISC_GAP_START - * | GAP central addr res handle | - * ------------------------------- - * | GAP RPA Only handle | - * ------------------------------- <- DATC_DISC_WP_START - * | WP handles | - * | ... | - * ------------------------------- - */ - -/*! Start of each service's handles in the the handle list */ -#define DATC_DISC_GATT_START 0 -#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) -#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) -#define DATC_DISC_SDS_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) -#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_SDS_START + SEC_HDL_LIST_LEN) - -/*! Pointers into handle list for each service's handles */ -static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; -static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; -static uint16_t *pSecDatHdlList[DM_CONN_MAX]; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datcOobCfg; - -/************************************************************************************************** - ATT Client Configuration Data -**************************************************************************************************/ - -/* - * Data for configuration after service discovery - */ - -/* Default value for CCC indications */ -const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; - -/* Default value for CCC notifications */ -const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; - -/* Default value for Client Supported Features (enable Robust Caching) */ -const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; - -/* List of characteristics to configure after service discovery */ -static const attcDiscCfg_t datcDiscCfgList[] = { - /* Write: GATT service changed ccc descriptor */ - { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: GATT client supported features */ - { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: Proprietary data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, - - /* Write: Secured data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (SEC_DAT_CCC_HDL_IDX + DATC_DISC_SDS_START) }, -}; - -/* Characteristic configuration list length */ -#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) - -/* sanity check: make sure configuration list length is <= handle list length */ -WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); - -/*************************************************************************************************/ -/*! - * \brief OOB RX callback. - * - * \return None. - */ -/*************************************************************************************************/ -void oobRxCback(void) -{ - if (datcOobCfg != NULL) { - DmSecSetOob(oobConnId, datcOobCfg); - } - - DmSecAuthRsp(oobConnId, 0, NULL); -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - uint16_t reportLen; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datcSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - - /* Setup HCI UART for OOB */ - PalUartConfig_t hciUartCfg; - hciUartCfg.rdCback = oobRxCback; - hciUartCfg.wrCback = NULL; - hciUartCfg.baud = OOB_BAUD; - hciUartCfg.hwFlow = OOB_FLOW; - - PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datcOobCfg == NULL) { - datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - memset(datcOobCfg, 0, sizeof(dmSecLescOobCfg_t)); - } - - if (datcOobCfg) { - Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); - - /* Start the RX for the peer OOB data */ - PalUartReadData(PAL_UART_ID_CHCI, datcOobCfg->peerRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - } else { - APP_TRACE_ERR0("Error allocating OOB data"); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - reportLen = pDmEvt->scanReport.len; - } else { - reportLen = 0; - } - - if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { - memcpy(pMsg, pDmEvt, len); - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); - memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); - } - WsfMsgSend(datcCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datcCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning handler. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanningHandler(void) -{ - datcCb.autoConnect = TRUE; - datcConnInfo.doConnect = FALSE; - AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanning(void) -{ - /* Start the scanning start timer */ - WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan start. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStart(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan stop. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStop(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - - /* Open connection */ - if (datcConnInfo.doConnect) { - AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); - datcConnInfo.doConnect = FALSE; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Print the name value from a scan report. - * - * \param name Pointer to name parameter from a scan report. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrintName(uint8_t *name) -{ - /* Allocate a buffer for the device name */ - uint8_t *printBuf; - printBuf = WsfBufAlloc(name[DM_AD_LEN_IDX]); - - if (printBuf != NULL) { - /* Copy in the data and null terminate the string */ - memcpy(printBuf, &name[DM_AD_DATA_IDX], name[DM_AD_LEN_IDX] - 1); - printBuf[name[DM_AD_LEN_IDX] - 1] = 0; - - APP_TRACE_INFO1(" Name: %s", printBuf); - WsfBufFree(printBuf); - } -} - -/*************************************************************************************************/ -/*! - * \brief Print the contents of a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrintScanReport(dmEvt_t *pMsg) -{ -#if WSF_TRACE_ENABLED == TRUE - uint8_t *pData; - - APP_TRACE_INFO0("Scan Report:"); - WsfTrace(" %02x:%02x:%02x:%02x:%02x:%02x", pMsg->scanReport.addr[5], pMsg->scanReport.addr[4], - pMsg->scanReport.addr[3], pMsg->scanReport.addr[2], pMsg->scanReport.addr[1], - pMsg->scanReport.addr[0]); - - if ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL) { - datcPrintName(pData); - } else if ((pData = DmFindAdType(DM_ADV_TYPE_SHORT_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL) { - datcPrintName(pData); - } -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Handle a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanReport(dmEvt_t *pMsg) -{ - uint8_t *pData; - appDbHdl_t dbHdl; - bool_t connect = FALSE; - - /* disregard if not scanning or autoconnecting */ - if (!datcCb.scanning || !datcCb.autoConnect) { - return; - } - - /* if we already have a bond with this device then connect to it */ - if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != - APP_DB_HDL_NONE) { - /* if this is a directed advertisement where the initiator address is an RPA */ - if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { - /* resolve direct address to see if it's addressed to us */ - AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); - } else { - connect = TRUE; - } - } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { - /* if the peer device uses an RPA */ - /* resolve advertiser's RPA to see if we already have a bond with this device */ - AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); - } - - /* find device name */ - if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL)) { - /* check length and device name */ - if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'D') && - (pData[DM_AD_DATA_IDX + 1] == 'A') && (pData[DM_AD_DATA_IDX + 2] == 'T') && - (pData[DM_AD_DATA_IDX + 3] == 'S')) { - connect = TRUE; - } - } - - if (connect) { - datcPrintScanReport(pMsg); - - /* stop scanning and connect */ - datcCb.autoConnect = FALSE; - AppScanStop(); - - /* Store peer information for connect on scan stop */ - datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); - memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); - datcConnInfo.dbHdl = dbHdl; - datcConnInfo.doConnect = TRUE; - } else { - static int scanReportDownSample = 0; - - /* Down sample the number of scan reports we print */ - if (scanReportDownSample++ == SCAN_REPORT_DOWN_SAMPLE) { - scanReportDownSample = 0; - datcPrintScanReport(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection open. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcOpen(dmEvt_t *pMsg) -{ -#if (BT_VER > 8) - datcCb.phyMode[pMsg->hdr.param - 1] = DATC_PHY_1M; -#endif /* BT_VER */ -} - -/*************************************************************************************************/ -/*! - * \brief Process a received ATT notification. - * - * \param pMsg Pointer to ATT callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcValueNtf(attEvt_t *pMsg) -{ - if (pMsg->handle == pSecDatHdlList[pMsg->hdr.param - 1][SEC_DAT_HDL_IDX]) - APP_TRACE_INFO0(">> Notification from secure data service <<<"); - /* print the received data */ - if (datcCb.speedTestCounter == 0) { - APP_TRACE_INFO0((const char *)pMsg->pValue); - } -} - -/*************************************************************************************************/ -/*! - * \brief Set up procedures that need to be performed after device reset. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSetup(dmEvt_t *pMsg) -{ - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - datcConnInfo.doConnect = FALSE; - datcCb.restoringResList = FALSE; - - DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datcSetup(pMsg); - } else { - datcCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datcCb.restoringResList) { - /* Retore next device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datcSetup(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Send example data. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello world"; - - if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send example data to secured charactersitic. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void secDatSendData(dmConnId_t connId) -{ - uint8_t str[] = "Secret number is 0x42"; - - if (pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX], sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief GAP service discovery has completed. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscGapCmpl(dmConnId_t connId) -{ - appDbHdl_t dbHdl; - - /* if RPA Only attribute found on peer device */ - if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { - /* update DB */ - AppDbSetPeerRpao(dbHdl, TRUE); - AppDbNvmStorePeerRpao(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Handler for the speed test. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSpeedTestHandler(dmConnId_t connId) -{ - static uint8_t speedTestData[SPEED_TEST_PACKET_LEN]; - uint16_t handle; - - if (datcCb.speedTestCounter == SPEED_TEST_COUNT) { - unsigned us = MXC_TMR_SW_Stop(SPEED_TEST_TMR); - - /* Calculate the throughput */ - unsigned bits = SPEED_TEST_COUNT * SPEED_TEST_PACKET_LEN * 8; - APP_TRACE_INFO2("%d bits transferred in %d us", bits, us); - - float bps = (float)bits / ((float)us / (float)1000000); - APP_TRACE_INFO1("%d bps", (unsigned)bps); - - /* Reset the counter for the next test */ - datcCb.speedTestCounter = 0; - return; - } - - /* Write the next packet */ - handle = pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX]; - AttcWriteCmd(connId, handle, (uint16_t)SPEED_TEST_PACKET_LEN, speedTestData); - - if (datcCb.speedTestCounter == 0) { - /* Start the throughput timer */ - MXC_TMR_SW_Start(SPEED_TEST_TMR); - } - - datcCb.speedTestCounter++; -} - -/*************************************************************************************************/ -/*! - * \brief Starts the speed test. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcStartSpeedTest(dmConnId_t connId) -{ - if (datcCb.speedTestCounter != 0) { - APP_TRACE_ERR0("Speed test already running"); - return; - } - - APP_TRACE_INFO0("Starting speed test"); - datcSpeedTestHandler(connId); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcBtnCback(uint8_t btn) -{ - dmConnId_t connId = datcCb.btnConnId; - dmConnId_t connIdList[DM_CONN_MAX]; - uint8_t numConnections = AppConnOpenList(connIdList); - - /* button actions when connected */ - if (numConnections > 0) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (numConnections < DM_CONN_MAX - 1) { - /* if scanning cancel scanning */ - if (datcCb.scanning) { - AppScanStop(); - } else if (!datcCb.autoConnect) { - /* else auto connect */ - datcRestartScanning(); - } - } else { - APP_TRACE_INFO0("datcBtnCback: Max connections reached."); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID used in button presses */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* disconnect */ - AppConnClose(connId); - break; - -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - datcCb.phyMode[connId - 1] = DATC_PHY_1M; - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - datcCb.phyMode[connId - 1] = DATC_PHY_2M; - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - datcCb.phyMode[connId - 1] = DATC_PHY_CODED; - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - datcCb.phyMode[connId - 1] = DATC_PHY_CODED; - break; - } - break; - } -#endif /* BT_VER */ - case APP_UI_BTN_2_MED: - secDatSendData(connId); - break; - case APP_UI_BTN_2_LONG: - /* send data */ - datcSendData(connId); - break; - - case APP_UI_BTN_2_EX_LONG: - /* Start the speed test */ - datcStartSpeedTest(connId); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* if scanning cancel scanning */ - if (datcCb.scanning) { - AppScanStop(); - } else if (!datcCb.autoConnect) { - /* else auto connect */ - datcRestartScanning(); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID buttons apply to */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: - /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ - SvcCoreGapAddRpaoCh(); - break; - - case APP_UI_BTN_2_EX_LONG: - /* enable device privacy -- start generating local RPAs every 15 minutes */ - DmDevPrivStart(15 * 60); - - /* set Scanning filter policy to accept directed advertisements with RPAs */ - DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Discovery callback. - * - * \param connId Connection identifier. - * \param status Service or configuration status. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscCback(dmConnId_t connId, uint8_t status) -{ - switch (status) { - case APP_DISC_INIT: - /* set handle list when initialization requested */ - AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_READ_DATABASE_HASH: - /* Read peer's database hash */ - AppDiscReadDatabaseHash(connId); - break; - - case APP_DISC_SEC_REQUIRED: - /* initiate security */ - AppMasterSecurityReq(connId); - break; - - case APP_DISC_START: - /* initialize discovery state */ - datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; - - /* store possible change in cache by hash */ - AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); - - /* discover GATT service */ - GattDiscover(connId, pDatcGattHdlList[connId - 1]); - break; - - case APP_DISC_FAILED: - if (pAppCfg->abortDisc) { - /* if discovery failed for proprietary data service then disconnect */ - if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { - AppConnClose(connId); - break; - } - } - /* Else falls through. */ - - case APP_DISC_CMPL: - /* next discovery state */ - datcCb.discState[connId - 1]++; - - if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { - /* discover GAP service */ - GapDiscover(connId, pDatcGapHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { - /* discover proprietary data service */ - WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_SDS_SVC) { - /* discover secured data service */ - SecDatSvcDiscover(connId, pSecDatHdlList[connId - 1]); - } else { - /* discovery complete */ - AppDiscComplete(connId, APP_DISC_CMPL); - - /* GAP service discovery completed */ - datcDiscGapCmpl(connId); - - /* store cached handle list in NVM */ - AppDbNvmStoreHdlList(AppDbGetHdl(connId)); - - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - } - break; - - case APP_DISC_CFG_START: - case APP_DISC_CFG_CONN_START: - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_CFG_CMPL: - AppDiscComplete(connId, status); - break; - - default: - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTC_WRITE_CMD_RSP: { - if (datcCb.speedTestCounter != 0) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - datcSpeedTestHandler(connId); - } - } break; - - case ATTC_HANDLE_VALUE_NTF: - datcValueNtf((attEvt_t *)pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datcRestoreResolvingList(pMsg); - datcRestartScanning(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_SCAN_START_IND: - datcScanStart(pMsg); - uiEvent = APP_UI_SCAN_START; - break; - - case DM_SCAN_STOP_IND: - datcScanStop(pMsg); - uiEvent = APP_UI_SCAN_STOP; - break; - - case DM_SCAN_REPORT_IND: - datcScanReport(pMsg); - break; - - case DM_CONN_OPEN_IND: - datcOpen(pMsg); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - datcRestartScanning(); - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - APP_TRACE_INFO0("Sending OOB data"); - oobConnId = connId; - - /* Start the TX to send the local OOB data */ - PalUartWriteData(PAL_UART_ID_CHCI, datcOobCfg->localRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datcPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case SCAN_START_EVT: - datcRestartScanningHandler(); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatcHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - - /* store handler ID */ - datcCb.handlerId = handlerId; - - /* set handle list length */ - datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; - - datcCb.btnConnId = 1; - /* Set configuration pointers */ - pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; - pAppSecCfg = (appSecCfg_t *)&datcSecCfg; - pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; - pAppCfg = (appCfg_t *)&datcAppCfg; - pSmpCfg = (smpCfg_t *)&datcSmpCfg; - pAttCfg = (attCfg_t *)&datcAttCfg; - - /* Initialize application framework */ - AppMasterInit(); - AppDiscInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup scan start timer */ - datcCb.scanTimer.handlerId = handlerId; - datcCb.scanTimer.msg.event = SCAN_START_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - if (datcCb.speedTestCounter == 0 && pMsg->event != DM_SCAN_REPORT_IND) { - APP_TRACE_INFO1("Datc got evt %d", pMsg->event); - } - - if (pMsg->event <= ATT_CBACK_END) { /* process ATT messages */ - /* process discovery-related ATT messages */ - AppDiscProcAttMsg((attEvt_t *)pMsg); - - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ - /* process advertising and connection-related messages */ - AppMasterProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppMasterSecProcDmMsg((dmEvt_t *)pMsg); - - /* process discovery-related messages */ - AppDiscProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datcProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the pointers into the handle list. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcInitSvcHdlList() -{ - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++) { - /*! Pointers into handle list for each service's handles */ - pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; - pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; - pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; - pSecDatHdlList[i] = &datcCb.hdlList[i][DATC_DISC_SDS_START]; - } -} -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void) -{ - /* Initialize handle pointers */ - datcInitSvcHdlList(); - - /* Register for stack callbacks */ - DmRegister(datcDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); - AttRegister(datcAttCback); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datcBtnCback); - - /* Register for app framework discovery callbacks */ - AppDiscRegister(datcDiscCback); - - /* Initialize attribute server database */ - SvcCoreAddGroup(); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32655/BLE_datc/main.c b/Examples/MAX32655/BLE_datc/main.c deleted file mode 100644 index c471e2c3c9a..00000000000 --- a/Examples/MAX32655/BLE_datc/main.c +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE Data Client for unformatted data exchange. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "datc_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDatc(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(MXC_WUT0); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> - MXC_F_TRIMSIR_RTC_X1TRIM_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Increase the default ACL buffer size and count */ - mainLlRtCfg.numTxBufs = 8; - mainLlRtCfg.numRxBufs = 8; - mainLlRtCfg.maxAclLen = 256; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDatc(); - DatcStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_datc/sdsc_api.h b/Examples/MAX32655/BLE_datc/sdsc_api.h deleted file mode 100644 index 6c0492abec1..00000000000 --- a/Examples/MAX32655/BLE_datc/sdsc_api.h +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/*************************************************************************************************/ -/*! Secure Data Service Client -* Implements the necessary handles list to perform service -* and characteristic discovery of custom secured service . -* - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32655_BLE_DATC_SDSC_API_H_ -#define EXAMPLES_MAX32655_BLE_DATC_SDSC_API_H_ - -#include "att_api.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ -enum { - SEC_DAT_HDL_IDX, /*!< \brief Secured data */ - SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ - SEC_HDL_LIST_LEN /*!< \brief Handle list length */ -}; - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for Secured service . - * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_DATC_SDSC_API_H_ diff --git a/Examples/MAX32655/BLE_datc/sdsc_main.c b/Examples/MAX32655/BLE_datc/sdsc_main.c deleted file mode 100644 index b20cdced9cd..00000000000 --- a/Examples/MAX32655/BLE_datc/sdsc_main.c +++ /dev/null @@ -1,92 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_assert.h" -#include "util/bstream.h" -#include "app_api.h" -#include "sdsc_api.h" - -/************************************************************************************************** - Secure Service and Data UUIDs -**************************************************************************************************/ -#define ATT_UUID_SEC_DATA_SERVICE \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_SEC_DATA \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/* UUIDs */ -static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ -static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ - -/* Characteristics for discovery */ - -/*! Secured data */ -static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; - -/*! Secured data descriptor */ -static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, - ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; - -/*! List of characteristics to be discovered; order matches handle index enumeration */ -static const attcDiscChar_t *secDatDiscCharList[] = { - &secDat, /*! Secured data */ - &secDatCcc /*! Secured data descriptor */ -}; - -/* sanity check: make sure handle list length matches characteristic list length */ -WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for custom secured service . - * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) -{ - AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, - (attcDiscChar_t **)secDatDiscCharList, pHdlList); -} diff --git a/Examples/MAX32655/BLE_dats/Makefile b/Examples/MAX32655/BLE_dats/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_dats/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_dats/dats_api.h b/Examples/MAX32655/BLE_dats/dats_api.h deleted file mode 100644 index 8593dedb4b1..00000000000 --- a/Examples/MAX32655/BLE_dats/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_DATS_DATS_API_H_ -#define EXAMPLES_MAX32655_BLE_DATS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32655/BLE_dats/dats_main.c b/Examples/MAX32655/BLE_dats/dats_main.c deleted file mode 100644 index ced4b90e6ba..00000000000 --- a/Examples/MAX32655/BLE_dats/dats_main.c +++ /dev/null @@ -1,1028 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "pal_uart.h" -#include "tmr.h" -#include "svc_sds.h" -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_1M 1 -#define DATS_PHY_2M 2 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 60000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_SEC_DAT_CCC_IDX, - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! Configurable security parameters to set -* pairing and authentication requirements. -* -* Authentication and bonding flags -* -DM_AUTH_BOND_FLAG : Bonding requested -* -DM_AUTH_SC_FLAG : LE Secure Connections requested -* -DM_AUTH_KP_FLAG : Keypress notifications requested -* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested - pairing method is determined by IO capabilities below -* -* Initiator key distribution flags -* -DM_KEY_DIST_LTK : Distribute LTK used for encryption -* -DM_KEY_DIST_IRK : Distribute IRK used for privacy -* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data -*/ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG | DM_AUTH_MITM_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/* OOB UART parameters */ -#define OOB_BAUD 115200 -#define OOB_FLOW FALSE - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/* OOB Connection identifier */ -dmConnId_t oobConnId; - -/*! SMP security parameter configuration -* -* I/O Capability Codes to be set for -* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets -* when the MITM flag is set in Configurable security parameters above. -* -SMP_IO_DISP_ONLY : Display only. -* -SMP_IO_DISP_YES_NO : Display yes/no. -* -SMP_IO_KEY_ONLY : Keyboard only. -* -SMP_IO_NO_IN_NO_OUT : No input, no output. -* -SMP_IO_KEY_DISP : Keyboard display. -*/ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_KEY_ONLY, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update. set to zero to disable */ - (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'D', - 'A', - 'T', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* DATS_WP_DAT_CCC_IDX */ - { SEC_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_SEC_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief OOB RX callback. - * - * \return None. - */ -/*************************************************************************************************/ -void oobRxCback(void) -{ - if (datsOobCfg != NULL) { - DmSecSetOob(oobConnId, datsOobCfg); - } - - DmSecAuthRsp(oobConnId, 0, NULL); -} - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello back"; - - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - - /* Setup HCI UART for OOB */ - PalUartConfig_t hciUartCfg; - hciUartCfg.rdCback = oobRxCback; - hciUartCfg.wrCback = NULL; - hciUartCfg.baud = OOB_BAUD; - hciUartCfg.hwFlow = OOB_FLOW; - - PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - memset(datsOobCfg, 0, sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - - /* Start the RX for the peer OOB data */ - PalUartReadData(PAL_UART_ID_CHCI, datsOobCfg->peerRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - } else { - APP_TRACE_ERR0("Error allocating OOB data"); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datsCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - static uint32_t packetCount = 0; - - if (len < 64) { - /* print received data if not a speed test message */ - APP_TRACE_INFO0((const char *)pValue); - - /* send back some data */ - datsSendData(connId); - } else { - APP_TRACE_INFO1("Speed test packet Count [%d]", packetCount++); - if (packetCount >= 5000) { - packetCount = 0; - } - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for secured data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t secDatWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - uint8_t str[] = "Secure data received!"; - APP_TRACE_INFO0(">> Received secure data <<"); - APP_TRACE_INFO0((const char *)pValue); - - /* Write data recevied into characteristic */ - AttsSetAttr(SEC_DAT_HDL, len, (uint8_t *)pValue); - /* if notifications are enabled send one */ - if (AttsCccEnabled(connId, DATS_SEC_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, SEC_DAT_HDL, sizeof(str), str); - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - if (datsSecCfg.initiateSec) { - AppSlaveSecurityReq((dmConnId_t)pMsg->hdr.param); - } - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - APP_TRACE_INFO0("Sending OOB data"); - oobConnId = connId; - - /* Start the TX to send the local OOB data */ - PalUartWriteData(PAL_UART_ID_CHCI, datsOobCfg->localRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /*register secure data write callback */ - SvcSecDataCbackRegister(NULL, secDatWriteCback); - /* Register secure data service */ - SvcSecDataAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32655/BLE_dats/main.c b/Examples/MAX32655/BLE_dats/main.c deleted file mode 100644 index 150f91817c2..00000000000 --- a/Examples/MAX32655/BLE_dats/main.c +++ /dev/null @@ -1,273 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE Data Server for unformatted data exchange. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "dats_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDats(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(MXC_WUT0); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> - MXC_F_TRIMSIR_RTC_X1TRIM_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDats(); - DatsStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_dats/services/svc_sds.c b/Examples/MAX32655/BLE_dats/services/svc_sds.c deleted file mode 100644 index 1b5127215b0..00000000000 --- a/Examples/MAX32655/BLE_dats/services/svc_sds.c +++ /dev/null @@ -1,158 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include "wsf_types.h" -#include "att_api.h" -#include "wsf_trace.h" -#include "util/bstream.h" -#include "svc_ch.h" -#include "svc_sds.h" -#include "svc_cfg.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Characteristic read/write permissions */ -#ifndef SEC_DATA_PERMIT_READ -#define SEC_DATA_PERMIT_READ SVC_SEC_PERMIT_READ -#endif - -#ifndef SEC_DATA_PERMIT_READ_ENC -#define SEC_DATA_PERMIT_READ_ENC ATTS_PERMIT_READ_ENC -#endif - -#ifndef SEC_DATA_PERMIT_READ_AUTH -#define SEC_DATA_PERMIT_READ_AUTH ATTS_PERMIT_READ_AUTH -#endif - -#ifndef SEC_DATA_PERMIT_WRITE -#define SEC_DATA_PERMIT_WRITE SVC_SEC_PERMIT_WRITE -#endif - -#ifndef SEC_DATA_PERMIT_WRITE_ENC -#define SEC_DATA_PERMIT_WRITE_ENC ATTS_PERMIT_WRITE_ENC -#endif - -#ifndef SEC_DATA_PERMIT_WRITE_AUTH -#define SEC_DATA_PERMIT_WRITE_AUTH ATTS_PERMIT_WRITE_AUTH -#endif - -/************************************************************************************************** - Static Variables -**************************************************************************************************/ - -/* UUIDs */ -static const uint8_t svcSecDatUuid[] = { ATT_UUID_SEC_DATA }; - -/* Proprietary service declaration */ -static const uint8_t secDatSvc[] = { ATT_UUID_SEC_DATA_SERVICE }; -static const uint16_t secDatLenSvc = sizeof(secDatSvc); - -/* Secured data characteristic */ -static const uint8_t secDatCh[] = { ATT_PROP_NOTIFY | ATT_PROP_WRITE_NO_RSP | ATT_PROP_WRITE, - UINT16_TO_BYTES(SEC_DAT_HDL), ATT_UUID_SEC_DATA }; - -static const uint16_t secDatLenDatCh = sizeof(secDatCh); - -/* Secured data */ -static const uint8_t secDatVal[] = { 0 }; -static const uint16_t secDatLenDat = sizeof(secDatVal); - -/* Secured data client characteristic configuration */ -static uint8_t secDatChCcc[] = { UINT16_TO_BYTES(0x0000) }; -static const uint16_t secDatLenDatChCcc = sizeof(secDatChCcc); - -/* Attribute list for Secured Data group */ -static const attsAttr_t secDatList[] = { - /* Service declaration */ - { attPrimSvcUuid, (uint8_t *)secDatSvc, (uint16_t *)&secDatLenSvc, sizeof(secDatSvc), 0, - ATTS_PERMIT_READ }, - - /* Secure data characteristic declaration */ - { attChUuid, (uint8_t *)secDatCh, (uint16_t *)&secDatLenDatCh, sizeof(secDatCh), 0, - ATTS_PERMIT_READ }, - - /* Secure data characteristic value */ - { svcSecDatUuid, (uint8_t *)secDatVal, (uint16_t *)&secDatLenDat, ATT_VALUE_MAX_LEN, - (ATTS_SET_UUID_128 | ATTS_SET_VARIABLE_LEN | ATTS_SET_WRITE_CBACK), - SEC_DATA_PERMIT_WRITE | SEC_DATA_PERMIT_WRITE_ENC | SEC_DATA_PERMIT_WRITE_AUTH }, - - /*Secure data characteristic value descriptor*/ - { attCliChCfgUuid, (uint8_t *)secDatChCcc, (uint16_t *)&secDatLenDatChCcc, sizeof(secDatChCcc), - ATTS_SET_CCC, (ATTS_PERMIT_READ | ATTS_PERMIT_WRITE) } -}; - -/* Secured Data group structure */ -static attsGroup_t svcSecDatGroup = { NULL, (attsAttr_t *)secDatList, NULL, - NULL, SEC_DATA_START_HDL, SEC_DATA_END_HDL }; - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataAddGroup(void) -{ - AttsAddGroup(&svcSecDatGroup); -} - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataRemoveGroup(void) -{ - AttsRemoveGroup(SEC_DATA_START_HDL); -} - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) -{ - svcSecDatGroup.readCback = readCback; - svcSecDatGroup.writeCback = writeCback; -} diff --git a/Examples/MAX32655/BLE_dats/services/svc_sds.h b/Examples/MAX32655/BLE_dats/services/svc_sds.h deleted file mode 100644 index 5ac232d8254..00000000000 --- a/Examples/MAX32655/BLE_dats/services/svc_sds.h +++ /dev/null @@ -1,120 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/*************************************************************************************************/ -/*! Secure Data Service -* Implementation of a characteristic with elevated security features. -* The connection must be encrypted with an authenticated key to read/write -* the attributes value. -* - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32655_BLE_DATS_SERVICES_SVC_SDS_H_ -#define EXAMPLES_MAX32655_BLE_DATS_SERVICES_SVC_SDS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Service and Characteristic UUIDs -**************************************************************************************************/ -#define ATT_UUID_SEC_DATA_SERVICE \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_SEC_DATA \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 - -/************************************************************************************************** - Handle Ranges -**************************************************************************************************/ -/*! \brief Secured Data Service */ -#define SEC_DATA_START_HDL 0x300 /*!< \brief Start handle. */ -#define SEC_DATA_END_HDL (SEC_DAT_MAX_HDL - 1) /*!< \brief End handle. */ - -/************************************************************************************************** - Handles -**************************************************************************************************/ - -/*! \brief Secured Service Handles */ -enum { - SEC_DATA_SVC_HDL = SEC_DATA_START_HDL, /*!< \brief Secured Data service declaration */ - SEC_DAT_CH_HDL, /*!< \brief Secured Data characteristic */ - SEC_DAT_HDL, /*!< \brief Secured Data */ - SEC_DAT_CH_CCC_HDL, /*!< \brief Secured Data client characteristic configuration */ - SEC_DAT_MAX_HDL /*!< \brief Maximum handle. */ -}; -/**@}*/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataAddGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataRemoveGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); - -/*! \} */ /* WP_SERVICE */ - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_DATS_SERVICES_SVC_SDS_H_ diff --git a/Examples/MAX32655/BLE_fcc/Makefile b/Examples/MAX32655/BLE_fcc/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_fcc/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_fcc/main.c b/Examples/MAX32655/BLE_fcc/main.c deleted file mode 100644 index ab276d5b05c..00000000000 --- a/Examples/MAX32655/BLE_fcc/main.c +++ /dev/null @@ -1,533 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief BLE project with simple serial console for FCC testing - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "tmr.h" - -/************************************************************************************************** - Definitions -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define FREQ_HOP_PERIOD_US 20000 - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -static uint8_t phy = LL_PHY_LE_1M; -static uint8_t phy_str[16]; -static uint8_t txFreqHopCh; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Physical layer functions. */ -extern void llc_api_set_txpower(int8_t power); -extern void dbb_seq_select_rf_channel(uint32_t rf_channel); -extern void llc_api_tx_ldo_setup(void); -extern void dbb_seq_tx_enable(void); -extern void dbb_seq_tx_disable(void); - -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPhyStr(uint8_t phy) -{ - switch (phy) { - case LL_TEST_PHY_LE_1M: - default: - memcpy(phy_str, "1M PHY", 7); - break; - case LL_TEST_PHY_LE_2M: - memcpy(phy_str, "2M PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S8: - memcpy(phy_str, "S8 PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S2: - memcpy(phy_str, "S2 PHY", 7); - break; - } - return phy_str; -} - -/*************************************************************************************************/ -/*! - * \fn Timer 2 interrupts handler. - * - * \brief Controls the frequency hopping. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void TMR2_IRQHandler(void) -{ - int res; - - MXC_TMR_TO_Clear(MXC_TMR2); - - /* Start the next channel */ - res = LlEnhancedTxTest(txFreqHopCh++, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - if (res != LL_SUCCESS) - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - - /* Wrap the channels */ - if (txFreqHopCh == 40) - txFreqHopCh = 0; - - /* Restart the timeout */ - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); -} - -/*************************************************************************************************/ -/*! - * \fn Usage statement - * - * \brief Prints the usage statement. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void printUsage(void) -{ - APP_TRACE_INFO0("Usage: "); - APP_TRACE_INFO0(" (0) Transmit on RF channel 0 (2402 MHz)"); - APP_TRACE_INFO0(" (1) Transmit on RF channel 19 (2440 MHz)"); - APP_TRACE_INFO0(" (2) Transmit on RF channel 39 (2480 MHz)"); - APP_TRACE_INFO0(" (3) Receive on RF channel 39 (2480 MHz)"); - APP_TRACE_INFO0(" (4) Set Transmit power"); - APP_TRACE_INFO0(" (5) Enable constant TX"); - APP_TRACE_INFO0(" (6) Disable constant TX -- MUST be called after (5)"); - /* APP_TRACE_INFO0(" (7) Set PA value"); */ - APP_TRACE_INFO0(" (8) Set PHY"); - APP_TRACE_INFO0(" (9) TX Frequency Hop"); - APP_TRACE_INFO0(" (e) End transmission -- MUST be used after each (0-3, 9)"); - APP_TRACE_INFO0(" (u) Print usage"); -} - -/*************************************************************************************************/ -/*! - * \fn Process the Console RX - * - * \brief State machine for the console inputs. - * - * \param rxByte Character received from the console. - * - * \return None. - */ -/*************************************************************************************************/ -static void processConsoleRX(uint8_t rxByte) -{ - int res; - - /* Holds the state of the command and the parameter */ - static uint8_t cmd = 0; - static uint8_t param = 0; - - /* Determines if the incoming character is a command or a parameter */ - if (cmd == 0) - cmd = rxByte; - else - param = rxByte; - - switch (cmd) { - case '0': - - APP_TRACE_INFO1("Transmit RF channel 0, 255 bytes/pkt, 0xAA, %s, forever ..", - getPhyStr(phy)); - res = LlEnhancedTxTest(0, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '1': - - APP_TRACE_INFO1("Transmit RF channel 19, 255 bytes/pkt, 0xAA, %s, forever ..", - getPhyStr(phy)); - res = LlEnhancedTxTest(19, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '2': - - APP_TRACE_INFO1("Transmit RF channel 39, 255 bytes/pkt, 0xAA, %s, forever ..", - getPhyStr(phy)); - res = LlEnhancedTxTest(39, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '3': - - APP_TRACE_INFO1("Receive RF channel 39, %s, forever ..", getPhyStr(phy)); - res = LlEnhancedRxTest(39, phy, 0, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '4': - - if (param == 0) { - APP_TRACE_INFO0("Select transmit power"); - APP_TRACE_INFO0(" 0: -10 dBm"); - APP_TRACE_INFO0(" 1: 0 dBm"); - APP_TRACE_INFO0(" 2: 4.5 dBm"); - break; - } - - switch (param) { - case '0': - llc_api_set_txpower(-10); - LlSetAdvTxPower(-10); - APP_TRACE_INFO0("Power set to -10 dBm"); - break; - case '1': - llc_api_set_txpower(0); - LlSetAdvTxPower(0); - APP_TRACE_INFO0("Power set to 0 dBm"); - break; - case '2': - llc_api_set_txpower(4); - LlSetAdvTxPower(4); - APP_TRACE_INFO0("Power set to 4.5 dBm"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - cmd = 0; - param = 0; - break; - - case '5': - if (param == 0) { - APP_TRACE_INFO0("Select transmit channel"); - APP_TRACE_INFO0(" 0: 0"); - APP_TRACE_INFO0(" 1: 19"); - APP_TRACE_INFO0(" 2: 39"); - break; - } - - switch (param) { - case '0': - dbb_seq_select_rf_channel(0); - APP_TRACE_INFO0("Channel set to 0"); - break; - case '1': - dbb_seq_select_rf_channel(19); - APP_TRACE_INFO0("Channel set to 19"); - break; - case '2': - dbb_seq_select_rf_channel(39); - APP_TRACE_INFO0("Channel set to 39"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - - APP_TRACE_INFO0("Starting TX"); - - PalBbEnable(); - - llc_api_tx_ldo_setup(); - - /* Enable constant TX */ - dbb_seq_tx_enable(); - - cmd = 0; - param = 0; - break; - - case '6': - APP_TRACE_INFO0("Disabling TX"); - - /* Disable constant TX */ - dbb_seq_tx_disable(); - - PalBbDisable(); - - cmd = 0; - break; - - case '8': - if (param == 0) { - /* Set the PHY */ - APP_TRACE_INFO0("Select PHY"); - APP_TRACE_INFO0("1: 1M"); - APP_TRACE_INFO0("2: 2M"); - APP_TRACE_INFO0("3: S8"); - APP_TRACE_INFO0("4: S2"); - break; - } - - switch (param) { - case '1': - phy = LL_TEST_PHY_LE_1M; - APP_TRACE_INFO0("PHY set to 1M"); - break; - case '2': - phy = LL_TEST_PHY_LE_2M; - APP_TRACE_INFO0("PHY set to 2M"); - break; - case '3': - phy = LL_TEST_PHY_LE_CODED_S8; - APP_TRACE_INFO0("PHY set to S8"); - break; - case '4': - phy = LL_TEST_PHY_LE_CODED_S2; - APP_TRACE_INFO0("PHY set to S2"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - - cmd = 0; - param = 0; - break; - case '9': - /* Frequency hopping TX */ - APP_TRACE_INFO0("Starting frequency hopping"); - NVIC_EnableIRQ(TMR2_IRQn); - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); - cmd = 0; - break; - - case 'E': - case 'e': - - APP_TRACE_INFO0("End test"); - MXC_TMR_Stop(MXC_TMR2); - LlEndTest(NULL); - cmd = 0; - break; - - case 'U': - case 'u': - printUsage(); - cmd = 0; - break; - - default: - APP_TRACE_INFO0("Invalid selection"); - cmd = 0; - param = 0; - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.1 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; -#if (BT_VER > 9) - /* Use single pool for data buffers. */ - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) - eventPending = WsfTokenService(); -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) - eventPending = LhciSnifferHandler(); -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - - /* Register the UART RX request */ - WsfBufIoUartRegister(processConsoleRX); - - printUsage(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_fit/Makefile b/Examples/MAX32655/BLE_fit/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_fit/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_fit/fit_api.h b/Examples/MAX32655/BLE_fit/fit_api.h deleted file mode 100644 index 9b69b512d22..00000000000 --- a/Examples/MAX32655/BLE_fit/fit_api.h +++ /dev/null @@ -1,80 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Fitness sample application interface. - * - * Copyright (c) 2011-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_FIT_FIT_API_H_ -#define EXAMPLES_MAX32655_BLE_FIT_FIT_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -#ifndef FIT_CONN_MAX -#define FIT_CONN_MAX 1 -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void FitStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_FIT_FIT_API_H_ diff --git a/Examples/MAX32655/BLE_fit/fit_main.c b/Examples/MAX32655/BLE_fit/fit_main.c deleted file mode 100644 index ed9b4f7f471..00000000000 --- a/Examples/MAX32655/BLE_fit/fit_main.c +++ /dev/null @@ -1,803 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Fitness sample application for the following profiles: - * Heart Rate profile - * - * Copyright (c) 2011-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "hci_api.h" -#include "dm_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "app_hw.h" -#include "app_main.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_hrs.h" -#include "svc_dis.h" -#include "svc_batt.h" -#include "svc_rscs.h" -#include "gatt/gatt_api.h" -#include "bas/bas_api.h" -#include "hrps/hrps_api.h" -#include "rscp/rscp_api.h" -#include "fit_api.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! WSF message event starting value */ -#define FIT_MSG_START 0xA0 - -/* Default Running Speed and Cadence Measurement period (seconds) */ -#define FIT_DEFAULT_RSCM_PERIOD 1 - -/*! WSF message event enumeration */ -enum { - FIT_HR_TIMER_IND = FIT_MSG_START, /*! Heart rate measurement timer expired */ - FIT_BATT_TIMER_IND, /*! Battery measurement timer expired */ - FIT_RUNNING_TIMER_IND /*! Running speed and cadence measurement timer expired */ -}; - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/************************************************************************************************** - Data Types -**************************************************************************************************/ - -/*! Application message type */ -typedef union { - wsfMsgHdr_t hdr; - dmEvt_t dm; - attsCccEvt_t ccc; - attEvt_t att; -} fitMsg_t; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t fitAdvCfg = { - { 60000, 0, 0 }, /*! Advertising durations in ms */ - { 800, 0, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t fitSlaveCfg = { - FIT_CONN_MAX, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t fitSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - 0, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t fitUpdateCfg = { - 6000, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - 640, /*! Minimum connection interval in 1.25ms units */ - 800, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 900, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! heart rate measurement configuration */ -static const hrpsCfg_t fitHrpsCfg = { - 2000 /*! Measurement timer expiration period in ms */ -}; - -/*! battery measurement configuration */ -static const basCfg_t fitBasCfg = { - 30, /*! Battery measurement timer expiration period in seconds */ - 1, /*! Perform battery measurement after this many timer periods */ - 100 /*! Send battery level notification to peer when below this level. */ -}; - -/*! SMP security parameter configuration */ -static const smpCfg_t fitSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t fitAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! tx power */ - 2, /*! length */ - DM_ADV_TYPE_TX_POWER, /*! AD type */ - 0, /*! tx power */ - - /*! service UUID list */ - 9, /*! length */ - DM_ADV_TYPE_16_UUID, /*! AD type */ - UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), - UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), UINT16_TO_BYTES(ATT_UUID_BATTERY_SERVICE) -}; - -/*! scan data, discoverable mode */ -static const uint8_t fitScanDataDisc[] = { - /*! device name */ - 4, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'F', 'i', 't' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! enumeration of client characteristic configuration descriptors */ -enum { - FIT_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - FIT_HRS_HRM_CCC_IDX, /*! Heart rate service, heart rate monitor characteristic */ - FIT_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ - FIT_RSCS_SM_CCC_IDX, /*! Runninc speed and cadence measurement characteristic */ - FIT_NUM_CCC_IDX -}; - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* FIT_GATT_SC_CCC_IDX */ - { HRS_HRM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_HRS_HRM_CCC_IDX */ - { BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_BATT_LVL_CCC_IDX */ - { RSCS_RSM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* FIT_RSCS_SM_CCC_IDX */ -}; - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! WSF handler ID */ -wsfHandlerId_t fitHandlerId; - -/* WSF Timer to send running speed and cadence measurement data */ -wsfTimer_t fitRscmTimer; - -/* Running Speed and Cadence Measurement period - Can be changed at runtime to vary period */ -static uint16_t fitRscmPeriod = FIT_DEFAULT_RSCM_PERIOD; - -/* Heart Rate Monitor feature flags */ -static uint8_t fitHrmFlags = CH_HRM_FLAGS_VALUE_8BIT | CH_HRM_FLAGS_ENERGY_EXP; - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitCccCback(attsCccEvt_t *pEvt) -{ - attsCccEvt_t *pMsg; - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - } - - if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { - memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! -* \brief Send a Running Speed and Cadence Measurement Notification. -* -* \param connId connection ID -* -* \return None. -*/ -/*************************************************************************************************/ -static void fitSendRunningSpeedMeasurement(dmConnId_t connId) -{ - if (AttsCccEnabled(connId, FIT_RSCS_SM_CCC_IDX)) { - static uint8_t walk_run = 1; - - /* TODO: Set Running Speed and Cadence Measurement Parameters */ - - RscpsSetParameter(RSCP_SM_PARAM_SPEED, 1); - RscpsSetParameter(RSCP_SM_PARAM_CADENCE, 2); - RscpsSetParameter(RSCP_SM_PARAM_STRIDE_LENGTH, 3); - RscpsSetParameter(RSCP_SM_PARAM_TOTAL_DISTANCE, 4); - - /* Toggle running/walking */ - walk_run = walk_run ? 0 : 1; - RscpsSetParameter(RSCP_SM_PARAM_STATUS, walk_run); - - RscpsSendSpeedMeasurement(connId); - } - - /* Configure and start timer to send the next measurement */ - fitRscmTimer.msg.event = FIT_RUNNING_TIMER_IND; - fitRscmTimer.msg.status = FIT_RSCS_SM_CCC_IDX; - fitRscmTimer.handlerId = fitHandlerId; - fitRscmTimer.msg.param = connId; - - WsfTimerStartSec(&fitRscmTimer, fitRscmPeriod); -} - -/*************************************************************************************************/ -/*! - * \brief Process CCC state change. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitProcCccState(fitMsg_t *pMsg) -{ - APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, - pMsg->ccc.idx); - - /* handle heart rate measurement CCC */ - if (pMsg->ccc.idx == FIT_HRS_HRM_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - HrpsMeasStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_HR_TIMER_IND, FIT_HRS_HRM_CCC_IDX); - } else { - HrpsMeasStop((dmConnId_t)pMsg->ccc.hdr.param); - } - return; - } - - /* handle running speed and cadence measurement CCC */ - if (pMsg->ccc.idx == FIT_RSCS_SM_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - } else { - WsfTimerStop(&fitRscmTimer); - } - return; - } - - /* handle battery level CCC */ - if (pMsg->ccc.idx == FIT_BATT_LVL_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - BasMeasBattStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_BATT_TIMER_IND, - FIT_BATT_LVL_CCC_IDX); - } else { - BasMeasBattStop((dmConnId_t)pMsg->ccc.hdr.param); - } - return; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection close. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitClose(fitMsg_t *pMsg) -{ - /* stop heart rate measurement */ - HrpsMeasStop((dmConnId_t)pMsg->hdr.param); - - /* stop battery measurement */ - BasMeasBattStop((dmConnId_t)pMsg->hdr.param); - - /* Stop running speed and cadence timer */ - WsfTimerStop(&fitRscmTimer); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitSetup(fitMsg_t *pMsg) -{ - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(fitAdvDataDisc), (uint8_t *)fitAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(fitScanDataDisc), (uint8_t *)fitScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, 0, NULL); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, 0, NULL); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitBtnCback(uint8_t btn) -{ - dmConnId_t connId; - static uint8_t heartRate = 78; /* for testing/demonstration */ - - /* button actions when connected */ - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* increment the heart rate */ - AppHwHrmTest(++heartRate); - break; - - case APP_UI_BTN_1_MED: - break; - - case APP_UI_BTN_1_LONG: - AppConnClose(connId); - break; - - case APP_UI_BTN_2_SHORT: - /* decrement the heart rate */ - AppHwHrmTest(--heartRate); - break; - - case APP_UI_BTN_2_MED: - /* Toggle HRM Sensor DET flags */ - if (!(fitHrmFlags & (CH_HRM_FLAGS_SENSOR_DET | CH_HRM_FLAGS_SENSOR_NOT_DET))) { - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_DET; - } else if (fitHrmFlags & CH_HRM_FLAGS_SENSOR_DET) { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_DET; - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_NOT_DET; - } else { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_NOT_DET; - } - - HrpsSetFlags(fitHrmFlags); - break; - - case APP_UI_BTN_2_LONG: - /* Toggle HRM RR Interval feature flag */ - if (fitHrmFlags & CH_HRM_FLAGS_RR_INTERVAL) { - fitHrmFlags &= ~CH_HRM_FLAGS_RR_INTERVAL; - } else { - fitHrmFlags |= CH_HRM_FLAGS_RR_INTERVAL; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start or restart advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* enter discoverable and bondable mode */ - AppSetBondable(TRUE); - AppAdvStart(APP_MODE_DISCOVERABLE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - - /* restart advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_2_SHORT: - /* Toggle HRM Flag for 8 and 16 bit values */ - if (fitHrmFlags & CH_HRM_FLAGS_VALUE_16BIT) { - fitHrmFlags &= ~CH_HRM_FLAGS_VALUE_16BIT; - } else { - fitHrmFlags |= CH_HRM_FLAGS_VALUE_16BIT; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitProcMsg(fitMsg_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case FIT_RUNNING_TIMER_IND: - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - break; - - case FIT_HR_TIMER_IND: - HrpsProcMsg(&pMsg->hdr); - break; - - case FIT_BATT_TIMER_IND: - BasProcMsg(&pMsg->hdr); - break; - - case ATTS_HANDLE_VALUE_CNF: - HrpsProcMsg(&pMsg->hdr); - BasProcMsg(&pMsg->hdr); - break; - - case ATTS_CCC_STATE_IND: - fitProcCccState(pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - fitSetup(pMsg); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_SET_START_IND: - uiEvent = APP_UI_ADV_SET_START_IND; - break; - - case DM_ADV_SET_STOP_IND: - uiEvent = APP_UI_ADV_SET_STOP_IND; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - HrpsProcMsg(&pMsg->hdr); - BasProcMsg(&pMsg->hdr); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - fitClose(pMsg); - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - AppHandlePasskey(&pMsg->dm.authReq); - break; - - case DM_SEC_ECC_KEY_IND: - DmSecSetEccKey(&pMsg->dm.eccMsg.data.key); - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->dm.cnfInd); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - - case DM_HW_ERROR_IND: - uiEvent = APP_UI_HW_ERROR; - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("FitHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &fitScanDataDisc[2]); - - /* store handler ID */ - fitHandlerId = handlerId; - - /* Set configuration pointers */ - pAppAdvCfg = (appAdvCfg_t *)&fitAdvCfg; - pAppSlaveCfg = (appSlaveCfg_t *)&fitSlaveCfg; - pAppSecCfg = (appSecCfg_t *)&fitSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&fitUpdateCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set stack configuration pointers */ - pSmpCfg = (smpCfg_t *)&fitSmpCfg; - - /* initialize heart rate profile sensor */ - HrpsInit(handlerId, (hrpsCfg_t *)&fitHrpsCfg); - HrpsSetFlags(fitHrmFlags); - - /* initialize battery service server */ - BasInit(handlerId, (basCfg_t *)&fitBasCfg); -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Fit got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - fitProcMsg((fitMsg_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void FitStart(void) -{ - /* Register for stack callbacks */ - DmRegister(fitDmCback); - DmConnRegister(DM_CLIENT_ID_APP, fitDmCback); - AttRegister(fitAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(FIT_NUM_CCC_IDX, (attsCccSet_t *)fitCccSet, fitCccCback); - - /* Register for app framework callbacks */ - AppUiBtnRegister(fitBtnCback); - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcHrsCbackRegister(NULL, HrpsWriteCback); - SvcHrsAddGroup(); - SvcDisAddGroup(); - SvcBattCbackRegister(BasReadCback, NULL); - SvcBattAddGroup(); - SvcRscsAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(FIT_GATT_SC_CCC_IDX); - - /* Set running speed and cadence features */ - RscpsSetFeatures(RSCS_ALL_FEATURES); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32655/BLE_fit/main.c b/Examples/MAX32655/BLE_fit/main.c deleted file mode 100644 index 3116b67370b..00000000000 --- a/Examples/MAX32655/BLE_fit/main.c +++ /dev/null @@ -1,258 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth fitness device. Showcases heart rate, battery level, running speed and cadence. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "fit_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitFit(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(MXC_WUT0); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> - MXC_F_TRIMSIR_RTC_X1TRIM_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitFit(); - FitStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/flash.gdb b/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32655/BLE_fit_FreeRTOS/FreeRTOSConfig.h deleted file mode 100644 index 8318dd60297..00000000000 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/FreeRTOSConfig.h +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32655_FREERTOSDEMO_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32655_FREERTOSDEMO_FREERTOSCONFIG_H_ - -#include -#include "max32655.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) - -#define SLEEP_LED 1 -#define DEEPSLEEP_LED 0 - -// #define configUSE_TICKLESS_IDLE 1 - -#define configTICK_RATE_HZ ((portTickType)1000) -#define configRTC_TICK_RATE_HZ (32768) - -#define configTOTAL_HEAP_SIZE ((size_t)(100 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configMAX_PRIORITIES 5 -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE - -/* Run time and task stats gathering related definitions. */ -#define configGENERATE_RUN_TIME_STATS 1 - -#if configGENERATE_RUN_TIME_STATS == 1 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() -#define portGET_RUN_TIME_COUNTER_VALUE() xTaskGetTickCount() -#endif - -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -/* Priority 7, or 255 as only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY ((unsigned char)7 << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -#endif // EXAMPLES_MAX32655_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/Makefile b/Examples/MAX32655/BLE_fit_FreeRTOS/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/freertos_tickless.c b/Examples/MAX32655/BLE_fit_FreeRTOS/freertos_tickless.c deleted file mode 100644 index 6d497e85ba4..00000000000 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/freertos_tickless.c +++ /dev/null @@ -1,271 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Maxim CMSIS */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" -#include "lp.h" -#include "pwrseq_regs.h" -#include "wut.h" -#include "mcr_regs.h" -#include "icc.h" -#include "pb.h" -#include "led.h" -#include "uart.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Bluetooth Cordio library */ -#include "pal_timer.h" -#include "pal_uart.h" -#include "pal_bb.h" - -#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ -#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ -#define WAKEUP_US 700 /* Deep sleep recovery time, units of us */ - -/* Minimum ticks before SysTick interrupt, units of system clock ticks. - * Convert CPU_CLOCK_HZ to units of ticks per us - */ -#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -int freertos_permit_tickless(void) -{ - /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ - if (MXC_WUT_TrimPending(MXC_WUT0) != E_NO_ERROR) { - return E_BUSY; - } - - /* Figure out if the UART is active */ - if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { - return E_BUSY; - } - - /* Prevent characters from being corrupted if still transmitting, - UART will shutdown in deep sleep */ - if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { - return E_BUSY; - } - - return E_NO_ERROR; -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the WUT to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; - uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; - bool_t schTimerActive; - - /* We do not currently handle to case where the WUT is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Calculate the number of WUT ticks, but we need one to synchronize */ - idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / - (uint64_t)configTICK_RATE_HZ; - - if (idleTicks > MAX_WUT_TICKS) { - idleTicks = MAX_WUT_TICKS; - } - - /* Check to see if we meet the minimum requirements for deep sleep */ - if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { - return; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - - /* Determine if the Bluetooth scheduler is running */ - if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { - schTimerActive = TRUE; - } else { - schTimerActive = FALSE; - } - - if (!schTimerActive) { - uint32_t ts; - if (PalBbGetTimestamp(&ts)) { - /*Determine if PalBb is active, return if we get a valid time stamp indicating - * that the scheduler is waiting for a PalBb event */ - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - } - - /* Disable SysTick */ - SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); - - /* Enable wakeup from WUT */ - NVIC_EnableIRQ(WUT_IRQn); - MXC_LP_EnableWUTAlarmWakeup(); - - /* Determine if we need to snapshot the PalBb clock */ - if (schTimerActive) { - /* Snapshot the current WUT value with the PalBb clock */ - MXC_WUT_Store(MXC_WUT0); - preCapture = MXC_WUT_GetCount(MXC_WUT0); - schUsec = PalTimerGetExpTime(); - - /* Adjust idleTicks for the time it takes to restart the BLE hardware */ - idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); - - /* Calculate the time to the next BLE scheduler event */ - if (schUsec < WAKEUP_US) { - bleSleepTicks = 0; - } else { - bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * - (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; - } - } else { - /* Snapshot the current WUT value */ - MXC_WUT_Edge(MXC_WUT0); - preCapture = MXC_WUT_GetCount(MXC_WUT0); - bleSleepTicks = 0; - schUsec = 0; - } - - /* Sleep for the shortest tick duration */ - if ((schTimerActive) && (bleSleepTicks < idleTicks)) { - dsTicks = bleSleepTicks; - } else { - dsTicks = idleTicks; - } - - /* Bound the deep sleep time */ - if (dsTicks > MAX_WUT_TICKS) { - dsTicks = MAX_WUT_TICKS; - } - - /* Don't deep sleep if we don't have time */ - if (dsTicks >= MIN_WUT_TICKS) { - /* Arm the WUT interrupt */ - MXC_WUT->cmp = preCapture + dsTicks; - - if (schTimerActive) { - /* Stop the BLE scheduler timer */ - PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); - } - - LED_Off(SLEEP_LED); - LED_Off(DEEPSLEEP_LED); - - MXC_LP_EnterStandbyMode(); - - LED_On(DEEPSLEEP_LED); - LED_On(SLEEP_LED); - - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); - - /* Restore the BB counter */ - MXC_WUT_RestoreBBClock(MXC_WUT0, BB_CLK_RATE_HZ); - - /* Restart the BLE scheduler timer */ - dsWutTicks = MXC_WUT->cnt - preCapture; - schUsecElapsed = - (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; - - int palTimerStartTicks = schUsec - schUsecElapsed; - if (palTimerStartTicks < 1) { - palTimerStartTicks = 1; - } - PalTimerStart(palTimerStartTicks); - } - } - - /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ - MXC_WUT_Edge(MXC_WUT0); - postCapture = MXC_WUT_GetCount(MXC_WUT0); - dsWutTicks = postCapture - preCapture; - - /* - * Advance ticks by # actually elapsed - */ - dsSysTickPeriods = - (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; - vTaskStepTick(dsSysTickPeriods); - - /* Re-enable SysTick */ - SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); -} diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/main.c b/Examples/MAX32655/BLE_fit_FreeRTOS/main.c deleted file mode 100644 index b9dc09d1152..00000000000 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/main.c +++ /dev/null @@ -1,173 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief BLE_fit_FreeRTOS - * @details This example demonstrates FreeRTOS with BLE capabilities. - */ - -#include -#include -#include -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "mxc_device.h" -#include "wut.h" -#include "lp.h" -#include "led.h" -#include "board.h" - -/* Stringification macros */ -#define STRING(x) STRING_(x) -#define STRING_(x) #x - -extern void btStartup(void); - -/***** Functions *****/ - -/* =| vAssertCalled |============================== - * - * Called when an assertion is detected. Use debugger to backtrace and - * continue. - * - * ======================================================= - */ -void vAssertCalled(const char *const pcFileName, uint32_t ulLine) -{ - volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; - - /* Parameters are not used. */ - (void)ulLine; - (void)pcFileName; - - __asm volatile("cpsid i"); - { - /* You can step out of this function to debug the assertion by using - the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero - value. */ - while (ulSetToNonZeroInDebuggerToContinue == 0) {} - } - __asm volatile("cpsie i"); -} - -/* =| vApplicationIdleHook |============================== - * - * Call the user defined function from within the idle task. This - * allows the application designer to add background functionality - * without the overhead of a separate task. - * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, - * CALL A FUNCTION THAT MIGHT BLOCK. - * - * ======================================================= - */ -void vApplicationIdleHook(void) -{ - /* Sleep while idle */ - LED_Off(SLEEP_LED); - - MXC_LP_EnterSleepMode(); - - LED_On(SLEEP_LED); -} - -/* =| main |============================================== - * - * This program demonstrates FreeRTOS tasks, mutexes. - * - * ======================================================= - */ -int main(void) -{ - /* Print banner (RTOS scheduler not running) */ - printf("\n-=- %s BLE FreeRTOS (%s) App -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); - -#if configUSE_TICKLESS_IDLE - printf("Tickless idle is enabled\n"); - /* Initialize CPU Active LED */ - LED_On(SLEEP_LED); - LED_On(DEEPSLEEP_LED); -#endif - - printf("SystemCoreClock = %d\n", SystemCoreClock); - - /* Delay to prevent bricks */ - volatile int i; - for (i = 0; i < 0x3FFFFF; i++) {} - - /* Start the Bluetooth application */ - btStartup(); - - /* Start scheduler */ - vTaskStartScheduler(); - - /* This code is only reached if the scheduler failed to start */ - printf("ERROR: FreeRTOS did not start due to above error!\n"); - while (1) { - __NOP(); - } - - /* Quiet GCC warnings */ - return -1; -} - -typedef struct __attribute__((packed)) ContextStateFrame { - uint32_t r0; - uint32_t r1; - uint32_t r2; - uint32_t r3; - uint32_t r12; - uint32_t lr; - uint32_t return_address; - uint32_t xpsr; -} sContextStateFrame; - -/*****************************************************************/ -void HardFault_Handler(void) -{ - __asm(" TST LR, #4\n" - " ITE EQ \n" - " MRSEQ R0, MSP \n" - " MRSNE R0, PSP \n" - " B HardFault_Decoder \n"); -} - -/*****************************************************************/ -/* Disable optimizations for this function so "frame" argument */ -/* does not get optimized away */ -__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) -{ - /* Hang here */ - while (1) {} -} diff --git a/Examples/MAX32655/BLE_mcs/.vscode/flash.gdb b/Examples/MAX32655/BLE_mcs/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32655/BLE_mcs/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32655/BLE_mcs/Makefile b/Examples/MAX32655/BLE_mcs/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_mcs/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_mcs/main.c b/Examples/MAX32655/BLE_mcs/main.c deleted file mode 100644 index 57168c815c4..00000000000 --- a/Examples/MAX32655/BLE_mcs/main.c +++ /dev/null @@ -1,218 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Maxim custom Bluetooth profile and service that advertises as "MCS" and accepts -connection requests. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "mcs_app_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitMcsApp(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); -#endif - - StackInitMcsApp(); - McsAppStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_mcs/mcs_app_api.h b/Examples/MAX32655/BLE_mcs/mcs_app_api.h deleted file mode 100644 index 70809e7a3cd..00000000000 --- a/Examples/MAX32655/BLE_mcs/mcs_app_api.h +++ /dev/null @@ -1,85 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file mcs_app_api.h - * - * \brief Maxim Custom Service server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_MCS_MCS_APP_API_H_ -#define EXAMPLES_MAX32655_BLE_MCS_MCS_APP_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! WSF message event starting value */ -#define MCS_MSG_START 0xA0 - -/*! WSF message event enumeration */ -enum { - MCS_BUTTON_TIMER_IND = MCS_MSG_START, /*/< Button state BLE notify timer event */ - MCS_BUTTON_PRESS_DUR /*/< Button press duration timer event */ -}; - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_MCS_MCS_APP_API_H_ diff --git a/Examples/MAX32655/BLE_mcs/mcs_app_main.c b/Examples/MAX32655/BLE_mcs/mcs_app_main.c deleted file mode 100644 index a9bbb3b8374..00000000000 --- a/Examples/MAX32655/BLE_mcs/mcs_app_main.c +++ /dev/null @@ -1,793 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_mcs.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "mcs_app_api.h" -#include "mcs_api.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - MCS_APP_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - MCS_APP_BT_CCC_IDX, /*! MCS characteristic */ - MCS_APP_NUM_CCC_IDX -}; - -/************************************************************************************************** - Data Types -**************************************************************************************************/ - -/*! Application message type */ -typedef union { - wsfMsgHdr_t hdr; - dmEvt_t dm; - attsCccEvt_t ccc; - attEvt_t att; -} mcsMsg_t; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t mcsAppAdvCfg = { - { 30000, 0, 0 }, /*! Advertising durations in ms */ - { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t mcsAppSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t mcsAppSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t mcsAppSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t mcsAppSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t mcsAppUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - 640, /*! Minimum connection interval in 1.25ms units */ - 800, /*! Maximum connection interval in 1.25ms units */ - 3, /*! Connection latency */ - 900, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t mcsAppAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t mcsAppAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t mcsAppScanDataDisc[] = { - /*! device name */ - 4, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'M', - 'C', - 'S', -}; - -/*! Mcs measurement configuration */ -static const mcsCfg_t mcsMcsCfg = { - 2, /*! Mcs measurement timer expiration period in seconds */ - 1, /*! Perform mcs measurement after this many timer periods */ - 3 /*! Send mcs level notification to peer when below this level. */ -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t mcsAppCccSet[MCS_APP_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, - DM_SEC_LEVEL_NONE }, /* MCS_APP_GATT_SC_CCC_IDX */ - { MCS_BUTTON_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* MCS_BUTTON_SM_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} mcsAppCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *mcsAppOobCfg; - -extern void setAdvTxPower(void); -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (mcsAppSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (mcsAppOobCfg == NULL) { - mcsAppOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (mcsAppOobCfg) { - Calc128Cpy(mcsAppOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(mcsAppOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - attsCccEvt_t *pMsg; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } - - if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { - memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process CCC state change. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppProcCccState(mcsMsg_t *pMsg) -{ - APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, - pMsg->ccc.idx); -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void mcsAppPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void mcsAppPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection close. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppClose(dmEvt_t *pMsg) -{ - /* stop mcs measurement */ - McsButtonCheckStop((dmConnId_t)pMsg->hdr.param); -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void mcsAppDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - mcsAppCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(mcsAppAdvDataDisc), - (uint8_t *)mcsAppAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(mcsAppScanDataDisc), - (uint8_t *)mcsAppScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(mcsAppAdvDataDisc), - (uint8_t *)mcsAppAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(mcsAppScanDataDisc), - (uint8_t *)mcsAppScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - mcsAppSetup(pMsg); - } else { - mcsAppCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (mcsAppCb.restoringResList) { - /* Set the advertising peer address. */ - mcsAppPrivAddDevToResList(mcsAppCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(mcsAppCb.resListRestoreHdl); - - if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - mcsAppSetup(pMsg); - } - } else { - mcsAppPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTS_CCC_STATE_IND: - mcsAppProcCccState((mcsMsg_t *)pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - mcsAppRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - mcsAppClose(pMsg); - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill mcsAppOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (mcsAppOobCfg != NULL) { - DmSecSetOob(connId, mcsAppOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - mcsAppPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - mcsAppPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("McsAppHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &mcsAppScanDataDisc[2]); - - /* store handler ID */ - mcsAppCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&mcsAppSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&mcsAppAdvCfg; - pAppSecCfg = (appSecCfg_t *)&mcsAppSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&mcsAppUpdateCfg; - pSmpCfg = (smpCfg_t *)&mcsAppSmpCfg; - pAttCfg = (attCfg_t *)&mcsAppAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* initialize mcs server */ - McsInit(handlerId, (mcsCfg_t *)&mcsMcsCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppBtnCback(uint8_t btn) -{ - APP_TRACE_INFO1("mcsAppBtnCback; %d", btn); - McsSetFeatures(btn); -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("McsApp got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("McsApp got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - mcsAppProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppStart(void) -{ - /* Register for stack callbacks */ - DmRegister(mcsAppDmCback); - DmConnRegister(DM_CLIENT_ID_APP, mcsAppDmCback); - AttRegister(mcsAppAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(MCS_APP_NUM_CCC_IDX, (attsCccSet_t *)mcsAppCccSet, mcsAppCccCback); - - SvcMcsCbackRegister(NULL, McsWriteCback); - SvcMcsAddGroup(); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(MCS_APP_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(mcsAppBtnCback); - - WsfNvmInit(); - - WsfBufDiagRegister(mcsAppWsfBufDiagnostics); - - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32655/BLE_mcs/profiles/mcs/mcs_api.h b/Examples/MAX32655/BLE_mcs/profiles/mcs/mcs_api.h deleted file mode 100644 index 86e901fdbc0..00000000000 --- a/Examples/MAX32655/BLE_mcs/profiles/mcs/mcs_api.h +++ /dev/null @@ -1,116 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32655_BLE_MCS_PROFILES_MCS_MCS_API_H_ -#define EXAMPLES_MAX32655_BLE_MCS_PROFILES_MCS_MCS_API_H_ - -#include "wsf_types.h" -#include "att_api.h" -#include "app_api.h" -#include "svc_mcs.h" -#include "board.h" -#include "led.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Data Types -**************************************************************************************************/ -/*! \brief Maxim custom service configurable parameters */ -typedef struct { - wsfTimerTicks_t period; /*!< \brief Button timer expiration period in seconds */ - uint16_t count; /*!< \brief Perform button after this many timer periods */ - uint8_t threshold; /*!< \brief Send button notification to peer when below this level. */ -} mcsCfg_t; - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for maxim custom service Use this function as a parameter - * to SvcMcsCbackRegister(). - * - * \param connId DM connection identifier. - * \param handle ATT handle. - * \param operation ATT operation. - * \param offset Write offset. - * \param len Write length. - * \param pValue Value to write. - * \param pAttr Attribute to write. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr); - -/*************************************************************************************************/ -/*! - * \brief Setting characteristic value and send the button value to the peer device. - * - * \param features The button value. - * - * \return None. - */ -/*************************************************************************************************/ -void McsSetFeatures(uint8_t features); - -/*************************************************************************************************/ -/*! - * \brief Initialize the mcs server. - * - * \param handlerId WSF handler ID of the application using this service. - * \param pCfg mcs configurable parameters. - * - * \return None. - */ -/*************************************************************************************************/ -void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg); - -/*************************************************************************************************/ -/*! - * \brief Start periodic mcs button state read. This function starts a timer to perform - * periodic button read. - * - * \param connId DM connection identifier. - * \param timerEvt WSF event designated by the application for the timer. - * \param mcsCccIdx Index of mcs level CCC descriptor in CCC descriptor handle table. - * \param btnState State of the push button. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState); - -/*************************************************************************************************/ -/*! - * \brief Stop periodic mcs button read. - * - * \param connId DM connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStop(dmConnId_t connId); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_MCS_PROFILES_MCS_MCS_API_H_ diff --git a/Examples/MAX32655/BLE_mcs/profiles/mcs/mcs_main.c b/Examples/MAX32655/BLE_mcs/profiles/mcs/mcs_main.c deleted file mode 100644 index e3738ac8eb8..00000000000 --- a/Examples/MAX32655/BLE_mcs/profiles/mcs/mcs_main.c +++ /dev/null @@ -1,207 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include "mcs_api.h" -#include "app_ui.h" -#include "pal_led.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -#ifndef LED_RED -#define LED_RED 0 -#endif - -#ifndef LED_GREEN -#define LED_GREEN 1 -#endif - -#ifndef LED_BLUE -#define LED_BLUE LED_GREEN -#endif - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! \brief Connection control block */ -typedef struct { - dmConnId_t connId; /*! \brief Connection ID */ - bool_t mcsToSend; /*! \brief mcs measurement ready to be sent on this channel */ - uint8_t sentMcsBtnState; /*! \brief value of last sent mcs button state */ -} mcsConn_t; - -/*! \brief Control block */ -static struct { - mcsConn_t conn[DM_CONN_MAX]; /*! \brief connection control block */ - wsfTimer_t btnStateChkTimer; /*! \brief periodic check timer */ - mcsCfg_t cfg; /*! \brief configurable parameters */ - uint16_t currCount; /*! \brief current measurement period count */ - bool_t txReady; /*! \brief TRUE if ready to send notifications */ - uint8_t btnState; /*! \brief value of last button state */ -} mcsCb; - -/*************************************************************************************************/ -/*! - * \brief Return TRUE if no connections with active measurements. - * - * \return TRUE if no connections active. - */ -/*************************************************************************************************/ -static bool_t mcsNoConnActive(void) -{ - mcsConn_t *pConn = mcsCb.conn; - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++, pConn++) { - if (pConn->connId != DM_CONN_ID_NONE) { - return FALSE; - } - } - return TRUE; -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for maxim custom service. Use this function as a parameter - * to SvcMcsCbackRegister(). - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - AttsSetAttr(handle, sizeof(*pValue), (uint8_t *)pValue); - /* Turn LED on if non-zero value was written */ - bool on = *pValue != 0; - - /* Get LED ID */ - uint8_t ch = 0; - switch (handle) { - case MCS_R_HDL: - ch = LED_RED; - break; - case MCS_B_HDL: - ch = LED_BLUE; - break; - case MCS_G_HDL: - ch = LED_GREEN; - break; - } - - if (on) - LED_On(ch); - else - LED_Off(ch); - return ATT_SUCCESS; -} - -/*************************************************************************************************/ - -/*! - * \brief Setting characteristic value and send the button value to the peer device - * - * \return None. - */ -/*************************************************************************************************/ -void McsSetFeatures(uint8_t features) -{ - AttsSetAttr(MCS_BUTTON_HDL, sizeof(features), - (uint8_t *)&features); /*Setting mcsButtonVal characteristic value */ - dmConnId_t connId = AppConnIsOpen(); /*Getting connected */ - if (connId != DM_CONN_ID_NONE) { - AttsHandleValueNtf(connId, MCS_BUTTON_HDL, sizeof(features), - (uint8_t *)&features); /*Send notify */ - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the mcs server. - * - * \param handerId WSF handler ID of the application using this service. - * \param pCfg mcs configurable parameters. - * - * \return None. - */ -/*************************************************************************************************/ -void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg) -{ - mcsCb.btnStateChkTimer.handlerId = handlerId; - mcsCb.cfg = *pCfg; - - /* De-init the PAL LEDs so we can control them here */ - PalLedDeInit(); -} - -/*************************************************************************************************/ -/*! - * \brief Start periodic mcs button state check. This function starts a timer to perform - * periodic button checks. - * - * \param connId DM connection identifier. - * \param timerEvt WSF event designated by the application for the timer. - * \param mcsCccIdx Index of mcs button state CCC descriptor in CCC descriptor handle table. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState) -{ - /* if this is first connection */ - if (mcsNoConnActive()) { - /* initialize control block */ - mcsCb.btnStateChkTimer.msg.event = timerEvt; - mcsCb.btnStateChkTimer.msg.status = mcsCccIdx; - mcsCb.btnState = btnState; - mcsCb.currCount = mcsCb.cfg.count; - - /* start timer */ - WsfTimerStartSec(&mcsCb.btnStateChkTimer, mcsCb.cfg.period); - } - - /* set conn id and last sent button level */ - mcsCb.conn[connId - 1].connId = connId; - mcsCb.conn[connId - 1].sentMcsBtnState = btnState; -} - -/*************************************************************************************************/ -/*! - * \brief Stop periodic button state check. - * - * \param connId DM connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStop(dmConnId_t connId) -{ - /* clear connection */ - mcsCb.conn[connId - 1].connId = DM_CONN_ID_NONE; - mcsCb.conn[connId - 1].mcsToSend = FALSE; - - /* if no remaining connections */ - if (mcsNoConnActive()) { - /* stop timer */ - WsfTimerStop(&mcsCb.btnStateChkTimer); - } -} diff --git a/Examples/MAX32655/BLE_mcs/services/svc_mcs.c b/Examples/MAX32655/BLE_mcs/services/svc_mcs.c deleted file mode 100644 index 9c23868ae18..00000000000 --- a/Examples/MAX32655/BLE_mcs/services/svc_mcs.c +++ /dev/null @@ -1,173 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include "svc_mcs.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Characteristic read permissions */ -#ifndef MCS_SEC_PERMIT_READ -#define MCS_SEC_PERMIT_READ SVC_SEC_PERMIT_READ -#endif - -/*! Characteristic write permissions */ -#ifndef MCS_SEC_PERMIT_WRITE -#define MCS_SEC_PERMIT_WRITE SVC_SEC_PERMIT_WRITE -#endif - -/************************************************************************************************** - Service variables -**************************************************************************************************/ - -/*Service variables declaration*/ -const uint8_t attMcsSvcUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_SERVICE }; - -/*Characteristic variables declaration*/ -const uint8_t svcMcsButtonUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_BUTTON }; -const uint8_t svcMcsRUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_R }; -const uint8_t svcMcsGUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_G }; -const uint8_t svcMcsBUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_B }; - -static const uint8_t mcsValSvc[] = { ATT_UUID_MCS_SERVICE }; -static const uint16_t mcsLenSvc = sizeof(mcsValSvc); - -static const uint8_t mcsButtonValCh[] = { ATT_PROP_READ | ATT_PROP_NOTIFY, - UINT16_TO_BYTES(MCS_BUTTON_HDL), ATT_UUID_MCS_BUTTON }; -static const uint16_t mcsButtonLenCh = sizeof(mcsButtonValCh); - -static const uint8_t mcsRValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_R_HDL), - ATT_UUID_MCS_R }; -static const uint16_t mcsRLenCh = sizeof(mcsRValCh); - -static const uint8_t mcsGValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_G_HDL), - ATT_UUID_MCS_G }; -static const uint16_t mcsGLenCh = sizeof(mcsGValCh); - -static const uint8_t mcsBValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_B_HDL), - ATT_UUID_MCS_B }; -static const uint16_t mcsBLenCh = sizeof(mcsBValCh); - -/*Characteristic values declaration*/ -static uint8_t mcsButtonVal[] = { 0 }; -static const uint16_t mcsButtonValLen = sizeof(mcsButtonVal); - -static uint8_t mcsButtonValChCcc[] = { UINT16_TO_BYTES(0x0000) }; -static const uint16_t mcsButtonLenValChCcc = sizeof(mcsButtonValChCcc); - -static uint8_t mcsRVal[] = { 0 }; -static const uint16_t mcsRValLen = sizeof(mcsRVal); - -static uint8_t mcsGVal[] = { 0 }; -static const uint16_t mcsGValLen = sizeof(mcsGVal); - -static uint8_t mcsBVal[] = { 0 }; -static const uint16_t mcsBValLen = sizeof(mcsBVal); - -/************************************************************************************************** - Maxim Custom Service group -**************************************************************************************************/ - -/* Attribute list for mcs group */ -static const attsAttr_t mcsList[] = { - /*-----------------------------*/ - /* Service declaration */ - { attPrimSvcUuid, (uint8_t *)mcsValSvc, (uint16_t *)&mcsLenSvc, sizeof(mcsValSvc), 0, - MCS_SEC_PERMIT_READ }, - - /*----------------------------*/ - /* Button characteristic declaration */ - { attChUuid, (uint8_t *)mcsButtonValCh, (uint16_t *)&mcsButtonLenCh, sizeof(mcsButtonValCh), 0, - MCS_SEC_PERMIT_READ }, - /* Button characteristic value */ - { svcMcsButtonUuid, (uint8_t *)mcsButtonVal, (uint16_t *)&mcsButtonValLen, sizeof(mcsButtonVal), - 0, MCS_SEC_PERMIT_READ }, - /*Button characteristic value descriptor*/ - { attCliChCfgUuid, (uint8_t *)mcsButtonValChCcc, (uint16_t *)&mcsButtonLenValChCcc, - sizeof(mcsButtonValChCcc), ATTS_SET_CCC, (ATTS_PERMIT_READ | SVC_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* R characteristic declaration */ - { attChUuid, (uint8_t *)mcsRValCh, (uint16_t *)&mcsRLenCh, sizeof(mcsRValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* R characteristic characteristic value */ - { svcMcsRUuid, (uint8_t *)mcsRVal, (uint16_t *)&mcsRValLen, sizeof(mcsRVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* G characteristic declaration */ - { attChUuid, (uint8_t *)mcsGValCh, (uint16_t *)&mcsGLenCh, sizeof(mcsGValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* G characteristic characteristic value */ - { svcMcsGUuid, (uint8_t *)mcsGVal, (uint16_t *)&mcsGValLen, sizeof(mcsGVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* B characteristic declaration */ - { attChUuid, (uint8_t *)mcsBValCh, (uint16_t *)&mcsBLenCh, sizeof(mcsBValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* B characteristic value */ - { svcMcsBUuid, (uint8_t *)mcsBVal, (uint16_t *)&mcsBValLen, sizeof(mcsBVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) } -}; - -/* Test group structure */ -static attsGroup_t svcMcsGroup = { NULL, (attsAttr_t *)mcsList, NULL, - NULL, MCS_START_HDL, MCS_END_HDL }; - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsAddGroup(void) -{ - AttsAddGroup(&svcMcsGroup); -} - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsRemoveGroup(void) -{ - AttsRemoveGroup(MCS_START_HDL); -} - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) -{ - svcMcsGroup.readCback = readCback; - svcMcsGroup.writeCback = writeCback; -} diff --git a/Examples/MAX32655/BLE_mcs/services/svc_mcs.h b/Examples/MAX32655/BLE_mcs/services/svc_mcs.h deleted file mode 100644 index b89eb036b0a..00000000000 --- a/Examples/MAX32655/BLE_mcs/services/svc_mcs.h +++ /dev/null @@ -1,123 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32655_BLE_MCS_SERVICES_SVC_MCS_H_ -#define EXAMPLES_MAX32655_BLE_MCS_SERVICES_SVC_MCS_H_ - -#include "wsf_types.h" -#include "att_api.h" -#include "util/bstream.h" -#include "svc_cfg.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \addtogroup Mcs - * \{ */ -/************************************************************************************************** - Macros -**************************************************************************************************/ -/*MCS service UUID*/ -#define ATT_UUID_MCS_SERVICE \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7D, 0x56, 0xFC, \ - 0x85 /*!< \brief Test Service UUID*/ - -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_MCS_BUTTON \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7E, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_R \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7F, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_G \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x80, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_B \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x81, 0x56, 0xFC, 0x85 - -/************************************************************************************************** - Handle Ranges -**************************************************************************************************/ - -/** \name Maxim custom Service Handles - * - */ -/**@{*/ -#define MCS_START_HDL 0x1500 /*!< \brief Start handle. */ -#define MCS_END_HDL (MCS_MAX_HDL - 1) /*!< \brief End handle. */ - -/************************************************************************************************** - Handles -**************************************************************************************************/ - -/*! \brief Maxim custom Service Handles */ -enum { - MCS_SVC_HDL = MCS_START_HDL, /*!< \brief Maxim custom service declaration */ - MCS_BUTTON_CH_HDL, /*!< \brief Button characteristic */ - MCS_BUTTON_HDL, /*!< \brief Button*/ - MCS_BUTTON_CH_CCC_HDL, /*!< \brief Button CCCD*/ - MCS_R_CH_HDL, /*!< \brief R characteristic */ - MCS_R_HDL, /*!< \brief R*/ - MCS_G_CH_HDL, /*!< \brief G characteristic */ - MCS_G_HDL, /*!< \brief G*/ - MCS_B_CH_HDL, /*!< \brief B characteristic */ - MCS_B_HDL, /*!< \brief B*/ - MCS_MAX_HDL /*!< \brief Maximum handle. */ -}; -/**@}*/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsAddGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsRemoveGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); - -/*! \} */ /* TEST_SERVICE */ - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_MCS_SERVICES_SVC_MCS_H_ diff --git a/Examples/MAX32655/BLE_otac/.vscode/flash.gdb b/Examples/MAX32655/BLE_otac/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32655/BLE_otac/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32655/BLE_otac/Makefile b/Examples/MAX32655/BLE_otac/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_otac/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_otac/datc_api.h b/Examples/MAX32655/BLE_otac/datc_api.h deleted file mode 100644 index a290701a2a6..00000000000 --- a/Examples/MAX32655/BLE_otac/datc_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_OTAC_DATC_API_H_ -#define EXAMPLES_MAX32655_BLE_OTAC_DATC_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_OTAC_DATC_API_H_ diff --git a/Examples/MAX32655/BLE_otac/datc_main.c b/Examples/MAX32655/BLE_otac/datc_main.c deleted file mode 100644 index 5575542f762..00000000000 --- a/Examples/MAX32655/BLE_otac/datc_main.c +++ /dev/null @@ -1,1420 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application for Nordic-ble. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "dm_api.h" -#include "dm_priv.h" -#include "gap/gap_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_cfg.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_core.h" -#include "svc_ch.h" -#include "gatt/gatt_api.h" -#include "wpc/wpc_api.h" -#include "datc_api.h" -#include "util/calc128.h" -#include "wsf_efs.h" -#include "wdxc/wdxc_api.h" -#include "wdxc/wdxc_main.h" -#include "wdx_defs.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** -Macros -**************************************************************************************************/ -#if (BT_VER > 8) -/* PHY Test Modes */ -#define DATC_PHY_1M 1 -#define DATC_PHY_2M 2 -#define DATC_PHY_CODED 3 -#endif /* BT_VER */ - -/* Size of WDXC file discovery dataset */ -#define DATC_WDXC_MAX_FILES 4 - -/*! WSF message event starting value */ -#define DATC_MSG_START 0xA0 - -/*! Data rate timer period in seconds */ -#define DATC_WDXS_DATA_RATE_TIMEOUT 4 - -extern uint32_t _binary_fw_update_bin_start; -extern uint32_t _binary_fw_update_bin_end; - -#define FILE_SIZE \ - (uint32_t)(((uint32_t)&_binary_fw_update_bin_end) - ((uint32_t)&_binary_fw_update_bin_start)) -#define BLOCK_OFFSET_INIT 0x0 -#define BLOCK_SIZE 224 -#define CRC32_LEN 4 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -#define SCAN_START_EVT 0x99 -#define SCAN_START_MS 500 - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; -fileHeader_t fileHeader; -/*! application control block */ -struct { - uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ - wsfHandlerId_t handlerId; /*! WSF hander ID */ - bool_t scanning; /*! TRUE if scanning */ - bool_t autoConnect; /*! TRUE if auto-connecting */ - uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ - uint8_t hdlListLen; /*! Cached handle list length */ - uint8_t btnConnId; /*! The index of the connection ID for button presses */ - bool_t sendingFile[DM_CONN_MAX]; - bool_t fileVerified[DM_CONN_MAX]; - uint32_t blockOffset[DM_CONN_MAX]; - wsfEfsFileInfo_t fileList[DM_CONN_MAX][DATC_WDXC_MAX_FILES]; /*! Buffer to hold WDXC file list */ - uint8_t *fileData; /*! Pointer for accessing the fw_update image*/ - uint32_t fileCRC; /*! Holds the CRC32 value of the file */ - uint32_t blockSize; - - appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ - wsfTimer_t scanTimer; /* Timer for starting the scanner */ -} datcCb; - -/*! connection control block */ -typedef struct { - appDbHdl_t dbHdl; /*! Device database record handle type */ - uint8_t addrType; /*! Type of address of device to connect to */ - bdAddr_t addr; /*! Address of device to connect to */ - bool_t doConnect; /*! TRUE to issue connect on scan complete */ -} datcConnInfo_t; - -datcConnInfo_t datcConnInfo; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for master */ -static const appMasterCfg_t datcMasterCfg = { - 96, /*! The scan interval, in 0.625 ms units */ - 48, /*! The scan window, in 0.625 ms units */ - 0, /*! The scan duration in ms */ - DM_DISC_MODE_NONE, /*! The GAP discovery mode */ - DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datcSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datcSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datcSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! Connection parameters */ -static const hciConnSpec_t datcConnCfg = { - 6, /*! Minimum connection interval in 1.25ms units */ - 6, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 0, /*! Unused */ - 0 /*! Unused */ -}; - -/*! Configurable parameters for service and characteristic discovery */ -static const appDiscCfg_t datcDiscCfg = { - FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ - TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ -}; - -static const appCfg_t datcAppCfg = { - FALSE, /*! TRUE to abort service discovery if service not found */ - TRUE /*! TRUE to disconnect if ATT transaction times out */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datcAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, - 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; - -/************************************************************************************************** - ATT Client Discovery Data -**************************************************************************************************/ - -/*! Discovery states: enumeration of services to be discovered */ -enum { - DATC_DISC_GATT_SVC, /*! GATT service */ - DATC_DISC_GAP_SVC, /*! GAP service */ - DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ - DATC_DISC_WDXC_SCV, /*! Arm Ltd. Wireless Data Exchange service */ - DATC_DISC_SVC_MAX /*! Discovery complete */ -}; - -/*! the Client handle list, datcCb.hdlList[], is set as follows: - * - * ------------------------------- <- DATC_DISC_GATT_START - * | GATT svc changed handle | - * ------------------------------- - * | GATT svc changed ccc handle | - * ------------------------------- <- DATC_DISC_GAP_START - * | GAP central addr res handle | - * ------------------------------- - * | GAP RPA Only handle | - * ------------------------------- <- DATC_DISC_WP_START - * | WP handles | - * | ... | - * ------------------------------- - */ - -/*! Start of each service's handles in the the handle list */ -#define DATC_DISC_GATT_START 0 -#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) -#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) -#define DATC_DISC_WDXC_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) -#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_WDXC_START + WDXC_HDL_LIST_LEN) - -/*! Pointers into handle list for each service's handles */ -static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; -static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWdxHdlList[DM_CONN_MAX]; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datcOobCfg; - -/************************************************************************************************** - ATT Client Configuration Data -**************************************************************************************************/ - -/* - * Data for configuration after service discovery - */ - -/* Default value for CCC indications */ -const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; - -/* Default value for CCC notifications */ -const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; - -/* Default value for Client Supported Features (enable Robust Caching) */ -const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; - -/* List of characteristics to configure after service discovery */ -static const attcDiscCfg_t datcDiscCfgList[] = { - /* Write: GATT service changed ccc descriptor */ - { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: GATT client supported features */ - { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: Proprietary data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, - - /* Write: WDXC ccc descriptors */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_DC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTD_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_AU_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, -}; - -/* Characteristic configuration list length */ -#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) - -/* sanity check: make sure configuration list length is <= handle list length */ -WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Reset the OTA state. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcResetOTAState(void) -{ - int i; - for (i = 0; i < DM_CONN_MAX; i++) { - datcCb.sendingFile[i] = FALSE; - datcCb.fileVerified[i] = FALSE; - datcCb.blockOffset[i] = BLOCK_OFFSET_INIT; - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - uint16_t reportLen; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datcSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datcOobCfg == NULL) { - datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datcOobCfg) { - Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - reportLen = pDmEvt->scanReport.len; - } else { - reportLen = 0; - } - - if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { - memcpy(pMsg, pDmEvt, len); - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); - memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); - } - WsfMsgSend(datcCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datcCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning handler. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanningHandler(void) -{ - datcCb.autoConnect = TRUE; - datcConnInfo.doConnect = FALSE; - AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanning(void) -{ - /* Start the scanning start timer */ - WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan start. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStart(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan stop. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStop(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - - /* Open connection */ - if (datcConnInfo.doConnect) { - AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); - datcConnInfo.doConnect = FALSE; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Handle a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanReport(dmEvt_t *pMsg) -{ - uint8_t *pData; - appDbHdl_t dbHdl; - bool_t connect = FALSE; - - /* disregard if not scanning or autoconnecting */ - if (!datcCb.scanning || !datcCb.autoConnect) { - return; - } - - /* if we already have a bond with this device then connect to it */ - if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != - APP_DB_HDL_NONE) { - /* if this is a directed advertisement where the initiator address is an RPA */ - if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { - /* resolve direct address to see if it's addressed to us */ - AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); - } else { - connect = TRUE; - } - } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { - /* if the peer device uses an RPA */ - /* resolve advertiser's RPA to see if we already have a bond with this device */ - AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); - } - /* Search for "OTAS" name */ - if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL)) { - /* check length and device name */ - if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'O') && - (pData[DM_AD_DATA_IDX + 1] == 'T') && (pData[DM_AD_DATA_IDX + 2] == 'A') && - (pData[DM_AD_DATA_IDX + 3] == 'S')) { - connect = TRUE; - } - } - - if (connect) { - /* stop scanning and connect */ - datcCb.autoConnect = FALSE; - AppScanStop(); - - /* Store peer information for connect on scan stop */ - datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); - memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); - datcConnInfo.dbHdl = dbHdl; - datcConnInfo.doConnect = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection open. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcOpen(dmEvt_t *pMsg) -{ - datcResetOTAState(); -} - -/*************************************************************************************************/ -/*! - * \brief Process a received ATT notification. - * - * \param pMsg Pointer to ATT callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcValueNtf(attEvt_t *pMsg) -{ - /* print received message */ - APP_TRACE_INFO0((const char *)pMsg->pValue); -} - -/*************************************************************************************************/ -/*! - * \brief Set up procedures that need to be performed after device reset. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSetup(dmEvt_t *pMsg) -{ - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - datcConnInfo.doConnect = FALSE; - datcCb.restoringResList = FALSE; - - DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datcSetup(pMsg); - } else { - datcCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datcCb.restoringResList) { - /* Retore next device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datcSetup(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief GAP service discovery has completed. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscGapCmpl(dmConnId_t connId) -{ - appDbHdl_t dbHdl; - - /* if RPA Only attribute found on peer device */ - if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { - /* update DB */ - AppDbSetPeerRpao(dbHdl, TRUE); - AppDbNvmStorePeerRpao(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief WDXC File Transfer Data Callback. - * - * \param connId Connection ID. - * \param fileHdl Handle of the file. - * \param len length of pData in bytes. - * \param pData File data. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcWdxcFtdCallback(dmConnId_t connId, uint16_t fileHdl, uint16_t len, uint8_t *pData) -{ -} - -/*************************************************************************************************/ -/*! - * \brief Send file header. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void sendFileHeader(dmConnId_t connId) -{ - if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(fileHeader_t), - (uint8_t *)&fileHeader); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send a block of file data to the peer. Combines the address with the data. - * - * \param connId Connection identifier. - * \param address Address of the block. - * \param len Length of the data. - * \param pData Pointer to the data to send. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSendBlock(dmConnId_t connId, uint32_t address, uint32_t len, uint8_t *pData) -{ - uint8_t *addrData = WsfBufAlloc(datcCb.blockSize + sizeof(uint32_t)); - - /* Insert the address into the block */ - memcpy(addrData, &address, sizeof(uint32_t)); - memcpy(&addrData[sizeof(uint32_t)], pData, len); - - // APP_TRACE_INFO2("Sending addr: 0x%08X len: 0x%04X", address, len); - - /* Send the address and data, add the length of the address to the length */ - WdxcFtdSendBlock(connId, len + sizeof(uint32_t), addrData); - - /* Clear out the buf->free field to prevent un-intended assertion in WsfBufFree */ - addrData[4] = 0; - addrData[5] = 0; - addrData[6] = 0; - addrData[7] = 0; - - WsfBufFree(addrData); - - /* Increment the address of the data that we're sending */ - datcCb.blockOffset[connId - 1] += len; -} - -/*************************************************************************************************/ -/*! - * \brief WDXC File Transfer Control Callback. - * - * \param connId Connection ID. - * \param op Control operation. - * \param status Status of operation. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcWdxcFtcCallback(dmConnId_t connId, uint16_t handle, uint8_t op, uint8_t status) -{ - APP_TRACE_INFO2("FTC op: %d status: %d", op, status); - - if (op == WDX_FTC_OP_PUT_RSP) { - /* Start timer */ - APP_TRACE_INFO0(">>> Starting file transfer <<<\n"); - - MXC_TMR_SW_Start(MXC_TMR2); - datcCb.sendingFile[connId - 1] = TRUE; - uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; - datcSendBlock(connId, address, datcCb.blockSize, (uint8_t *)&datcCb.fileData[address]); - - } else if (op == WDX_FTC_OP_EOF) { - if (handle == WDX_FLIST_HANDLE) { - /* on discovery completion we can send the header */ - sendFileHeader(connId); - /* File discovery complete */ - APP_TRACE_INFO0(">>> File discovery complete <<<\n"); - } else { - /* Stop timer, calculate time and Bps */ - uint32_t usec = MXC_TMR_SW_Stop(MXC_TMR2); - APP_TRACE_INFO1(">>> File transfer complete %d us <<<\n", usec); - APP_TRACE_INFO3("file_size = %d usec = %d bps = %d\n", FILE_SIZE, usec, - ((FILE_SIZE * 1000) / (usec / 1000)) * 8); - datcCb.sendingFile[connId - 1] = FALSE; - } - } else if (op == WDX_FTC_OP_VERIFY_RSP) { - APP_TRACE_INFO1(">>> Verify complete status: %d <<<\n", status); - if (status) - datcCb.fileVerified[connId - 1] = FALSE; - else - datcCb.fileVerified[connId - 1] = TRUE; - } -} -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcBtnCback(uint8_t btn) -{ - dmConnId_t connId = datcCb.btnConnId; - dmConnId_t connIdList[DM_CONN_MAX]; - uint8_t numConnections = AppConnOpenList(connIdList); - - /* button actions when connected */ - if (numConnections > 0) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (numConnections < DM_CONN_MAX - 1) { - if (datcCb.scanning) { /* if scanning cancel scanning */ - AppScanStop(); - } else if (!datcCb.autoConnect) { /* else auto connect */ - datcRestartScanning(); - } - } else { - APP_TRACE_INFO0("datcBtnCback: Max connections reached."); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID used in button presses */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* disconnect */ - AppConnClose(connId); - break; - -#if (BT_VER > 8) - case APP_UI_BTN_1_EX_LONG: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - case APP_UI_BTN_2_SHORT: - if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { - WdxcDiscoverFiles(connId, datcCb.fileList[connId - 1], DATC_WDXC_MAX_FILES); - datcCb.blockSize = AttGetMtu(connId); - - /* Subtract for the address and message overhead */ - datcCb.blockSize = datcCb.blockSize - 8; - if (datcCb.blockSize > BLOCK_SIZE) { - datcCb.blockSize = BLOCK_SIZE; - } - } - break; - - case APP_UI_BTN_2_MED: - if ((datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) && - (datcCb.sendingFile[connId - 1] == FALSE)) { - /* Start the WDXC data stream */ - datcCb.blockOffset[connId - 1] = BLOCK_OFFSET_INIT; - - /* Put file request */ - WdxcFtcSendPutReq(connId, datcCb.fileList[connId - 1][0].handle, BLOCK_OFFSET_INIT, - FILE_SIZE, BLOCK_OFFSET_INIT + FILE_SIZE, 0); - } - break; - - case APP_UI_BTN_2_LONG: - if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { - /* Send verification request */ - WdxcFtcSendVerifyFile(connId, datcCb.fileList[connId - 1][0].handle); - } - break; - - case APP_UI_BTN_2_EX_LONG: - if (datcCb.fileVerified[connId - 1]) { - /* Send Disconnect and Reset request to apply firmware update */ - WdxcDcSendDisconnectAndReset(connId); - datcCb.fileVerified[connId - 1] = FALSE; - } - break; - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (datcCb.scanning) { /* if scanning cancel scanning */ - AppScanStop(); - } else if (!datcCb.autoConnect) { /* else auto connect */ - datcRestartScanning(); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID buttons apply to */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: - /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ - SvcCoreGapAddRpaoCh(); - break; - - case APP_UI_BTN_2_EX_LONG: - /* enable device privacy -- start generating local RPAs every 15 minutes */ - DmDevPrivStart(15 * 60); - - /* set Scanning filter policy to accept directed advertisements with RPAs */ - DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Discovery callback. - * - * \param connId Connection identifier. - * \param status Service or configuration status. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscCback(dmConnId_t connId, uint8_t status) -{ - switch (status) { - case APP_DISC_INIT: - /* set handle list when initialization requested */ - AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_READ_DATABASE_HASH: - /* Read peer's database hash */ - AppDiscReadDatabaseHash(connId); - break; - - case APP_DISC_SEC_REQUIRED: - /* initiate security */ - AppMasterSecurityReq(connId); - break; - - case APP_DISC_START: - /* initialize discovery state */ - datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; - - /* store possible change in cache by hash */ - AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); - - /* discover GATT service */ - GattDiscover(connId, pDatcGattHdlList[connId - 1]); - break; - - case APP_DISC_FAILED: - if (pAppCfg->abortDisc) { - /* if discovery failed for any service then disconnect */ - if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { - AppConnClose(connId); - break; - } - } - /* Else falls through. */ - - case APP_DISC_CMPL: - /* next discovery state */ - datcCb.discState[connId - 1]++; - - if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { - /* discover GAP service */ - GapDiscover(connId, pDatcGapHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { - /* discover proprietary data service */ - WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WDXC_SCV) { - WdxcWdxsDiscover(connId, pDatcWdxHdlList[connId - 1]); - } else { - /* discovery complete */ - AppDiscComplete(connId, APP_DISC_CMPL); - - /* GAP service discovery completed */ - datcDiscGapCmpl(connId); - - /* store cached handle list in NVM */ - AppDbNvmStoreHdlList(AppDbGetHdl(connId)); - - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - } - break; - - case APP_DISC_CFG_START: - case APP_DISC_CFG_CONN_START: - /* start configuration */ - WdxcStoreAttrHandles(connId, pDatcWdxHdlList[connId - 1]); - datcCb.discState[connId - 1] = DATC_DISC_SVC_MAX; - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_CFG_CMPL: - AppDiscComplete(connId, status); - break; - - default: - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTC_HANDLE_VALUE_NTF: - datcValueNtf((attEvt_t *)pMsg); - break; - - case ATTC_WRITE_CMD_RSP: - case ATTC_WRITE_RSP: { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - if ((((attEvt_t *)pMsg)->hdr.status == ATT_SUCCESS) && - (((attEvt_t *)pMsg)->handle == pDatcWdxHdlList[connId - 1][WDXC_FTD_HDL_IDX])) { - if (datcCb.sendingFile[connId - 1] == TRUE) { - uint32_t tempBlockSize; - if ((datcCb.blockOffset[connId - 1] + datcCb.blockSize) > FILE_SIZE) { - tempBlockSize = FILE_SIZE - datcCb.blockOffset[connId - 1]; - } else { - tempBlockSize = datcCb.blockSize; - } - - /* Keep writing the file */ - uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; - datcSendBlock(connId, address, tempBlockSize, (uint8_t *)&datcCb.fileData[address]); - } - } - break; - } - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - setAdvTxPower(); - datcRestoreResolvingList(pMsg); - datcRestartScanning(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_SCAN_START_IND: - datcScanStart(pMsg); - uiEvent = APP_UI_SCAN_START; - break; - - case DM_SCAN_STOP_IND: - datcScanStop(pMsg); - uiEvent = APP_UI_SCAN_STOP; - break; - - case DM_SCAN_REPORT_IND: - datcScanReport(pMsg); - break; - - case DM_CONN_OPEN_IND: - datcOpen(pMsg); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - datcRestartScanning(); - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datcOobCfg != NULL) { - DmSecSetOob(connId, datcOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datcPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case SCAN_START_EVT: - datcRestartScanningHandler(); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatcHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - - /* store handler ID */ - datcCb.handlerId = handlerId; - - /* set handle list length */ - datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; - - datcCb.btnConnId = 1; - /* Set configuration pointers */ - pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; - pAppSecCfg = (appSecCfg_t *)&datcSecCfg; - pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; - pAppCfg = (appCfg_t *)&datcAppCfg; - pSmpCfg = (smpCfg_t *)&datcSmpCfg; - pAttCfg = (attCfg_t *)&datcAttCfg; - - /* Initialize application framework */ - AppMasterInit(); - AppDiscInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Set the pointer for the fw_update image */ - datcCb.fileData = (uint8_t *)&_binary_fw_update_bin_start; - - /* Calculate the update image CRC */ - datcCb.fileCRC = 0; - crc32(datcCb.fileData, FILE_SIZE, &datcCb.fileCRC); - fileHeader.fileCRC = datcCb.fileCRC; - fileHeader.fileLen = FILE_SIZE; - APP_TRACE_INFO2("File addr: %08X file size: %08X", (uint32_t)datcCb.fileData, FILE_SIZE); - APP_TRACE_INFO1("Update File CRC: 0x%08X", datcCb.fileCRC); - - datcResetOTAState(); - - /* Setup scan start timer */ - datcCb.scanTimer.handlerId = handlerId; - datcCb.scanTimer.msg.event = SCAN_START_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - /* process ATT messages */ - if (pMsg->event <= ATT_CBACK_END) { - /* process discovery-related ATT messages */ - AppDiscProcAttMsg((attEvt_t *)pMsg); - - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ - /* process advertising and connection-related messages */ - AppMasterProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppMasterSecProcDmMsg((dmEvt_t *)pMsg); - - /* process discovery-related messages */ - AppDiscProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datcProcMsg((dmEvt_t *)pMsg); - - /* perform wdxc operations */ - WdxcProcMsg((wsfMsgHdr_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the pointers into the handle list. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcInitSvcHdlList() -{ - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++) { - /*! Pointers into handle list for each service's handles */ - pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; - pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; - pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; - pDatcWdxHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WDXC_START]; - } -} -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void) -{ - /* Initialize handle pointers */ - datcInitSvcHdlList(); - - /* Register for stack callbacks */ - DmRegister(datcDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); - AttRegister(datcAttCback); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datcBtnCback); - - /* Register for app framework discovery callbacks */ - AppDiscRegister(datcDiscCback); - - /* Initialize attribute server database */ - SvcCoreAddGroup(); - - /* Initialize the WDXC and set the WDXC application callbacks */ - WdxcInit(datcWdxcFtdCallback, datcWdxcFtcCallback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32655/BLE_otac/fw_update.S b/Examples/MAX32655/BLE_otac/fw_update.S deleted file mode 100644 index b9bdc5effa0..00000000000 --- a/Examples/MAX32655/BLE_otac/fw_update.S +++ /dev/null @@ -1,9 +0,0 @@ -.section .text - -/* Include the fw_update binary file, include global symbols we can use at link time */ -_binary_fw_update_bin_start: -.incbin "build/buildfw/fw_update.bin" -_binary_fw_update_bin_end: - -.globl _binary_fw_update_bin_start -.globl _binary_fw_update_bin_end diff --git a/Examples/MAX32655/BLE_otac/main.c b/Examples/MAX32655/BLE_otac/main.c deleted file mode 100644 index 757a35d9886..00000000000 --- a/Examples/MAX32655/BLE_otac/main.c +++ /dev/null @@ -1,272 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth data client that scans for and connects to advertisers with the name of "OTAS". Demonstrates Over-the-Air (OTA) firmware updates. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "datc_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDatc(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(MXC_WUT0); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> - MXC_F_TRIMSIR_RTC_X1TRIM_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDatc(); - DatcStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_otas/.vscode/flash.gdb b/Examples/MAX32655/BLE_otas/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32655/BLE_otas/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32655/BLE_otas/Makefile b/Examples/MAX32655/BLE_otas/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_otas/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_otas/bl_build.S b/Examples/MAX32655/BLE_otas/bl_build.S deleted file mode 100644 index a279ea24f4e..00000000000 --- a/Examples/MAX32655/BLE_otas/bl_build.S +++ /dev/null @@ -1,8 +0,0 @@ -/* Include the bl_update binary file, plus a reference for addition into linker script */ -.section .text -_binary_bootloader_bin_start: -.incbin "build/buildbl/bootloader.bin" -_binary_bootloader_bin_end: - -.globl _binary_bootloader_bin_start -.globl _binary_bootloader_bin_end \ No newline at end of file diff --git a/Examples/MAX32655/BLE_otas/dats_api.h b/Examples/MAX32655/BLE_otas/dats_api.h deleted file mode 100644 index 599c6d11e2e..00000000000 --- a/Examples/MAX32655/BLE_otas/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_OTAS_DATS_API_H_ -#define EXAMPLES_MAX32655_BLE_OTAS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_OTAS_DATS_API_H_ diff --git a/Examples/MAX32655/BLE_otas/main.c b/Examples/MAX32655/BLE_otas/main.c deleted file mode 100644 index c812c78f39d..00000000000 --- a/Examples/MAX32655/BLE_otas/main.c +++ /dev/null @@ -1,282 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth data server that advertises as "OTAS" and accepts connection requests. - Demonstrates Over-the-Air (OTA) firmware updates. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "dats_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDats(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); - -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); - - AppTerminalInit(); - -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(MXC_WUT0); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> - MXC_F_TRIMSIR_RTC_X1TRIM_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - mainWsfInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); - while (!wutTrimComplete) {} - - /* Stop here to measure the 32 kHz clock */ - /* while(1) {} */ - MXC_RTC_SquareWaveStop(); - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDats(); - DatsStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32655/BLE_otas/ota_external_mem.ld b/Examples/MAX32655/BLE_otas/ota_external_mem.ld deleted file mode 100644 index 8d9344dd7f7..00000000000 --- a/Examples/MAX32655/BLE_otas/ota_external_mem.ld +++ /dev/null @@ -1,152 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -BOOTLOADER_LEN = 0x4000; -FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; -FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; -FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; -PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; - -MEMORY { - BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN - FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN - PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 -} - -SECTIONS { - - .bootloader : - { - KEEP(*bootloader.o) - } > BOOT - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ - EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude Bootloader code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.flashprog*) /* Flash program */ - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - .pal_nvm_db : - { - /* Align to the sector size */ - . = ALIGN(0x2000); - __pal_nvm_db_start__ = .; - . = . + _PAL_NVM_SIZE; - __pal_nvm_db_end__ = .; - } > PAL_NVM_DB - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32655/BLE_otas/ota_internal_mem.ld b/Examples/MAX32655/BLE_otas/ota_internal_mem.ld deleted file mode 100644 index bc7b43dc7a7..00000000000 --- a/Examples/MAX32655/BLE_otas/ota_internal_mem.ld +++ /dev/null @@ -1,159 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -BOOTLOADER_LEN = 0x4000; -FLASH_SECTION_LEN = 0x40000 - BOOTLOADER_LEN; -FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; -FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; -PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; - -MEMORY { - BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN - FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN - PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE - FLASH_UP (rx) : ORIGIN = 0x10040000, LENGTH = FLASH_SECTION_LEN - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 -} - -SECTIONS { - .bootloader : - { - KEEP(*bootloader.o) - } > BOOT - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ - EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude bootloader code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - .flash_update (NOLOAD) : - { - _flash_update = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash_update = ALIGN(., 4); - } > FLASH_UP - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.flashprog*) /* Flash program */ - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - .pal_nvm_db : - { - /* Align to the sector size */ - . = ALIGN(0x2000); - __pal_nvm_db_start__ = .; - . = . + _PAL_NVM_SIZE; - __pal_nvm_db_end__ = .; - } > PAL_NVM_DB - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32655/BLE_otas/wdxs_file.h b/Examples/MAX32655/BLE_otas/wdxs_file.h deleted file mode 100644 index 4529ad3b994..00000000000 --- a/Examples/MAX32655/BLE_otas/wdxs_file.h +++ /dev/null @@ -1,92 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32655_BLE_OTAS_WDXS_FILE_H_ -#define EXAMPLES_MAX32655_BLE_OTAS_WDXS_FILE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; - -/*! \addtogroup WIRELESS_DATA_EXCHANGE_PROFILE - * \{ */ - -/************************************************************************************************** - Constant Definitions -**************************************************************************************************/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Initialize the WDXS File. - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void); - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void); - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void); - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of the WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void); -/*************************************************************************************************/ -/*! - * \brief set the length of the expected file - * - * \return None. - */ -/*************************************************************************************************/ -void initHeader(fileHeader_t *header); -/*! \} */ /* WIRELESS_DATA_EXCHANGE_PROFILE */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32655_BLE_OTAS_WDXS_FILE_H_ diff --git a/Examples/MAX32655/BLE_otas/wdxs_file_ext.c b/Examples/MAX32655/BLE_otas/wdxs_file_ext.c deleted file mode 100644 index aec6553ab4c..00000000000 --- a/Examples/MAX32655/BLE_otas/wdxs_file_ext.c +++ /dev/null @@ -1,430 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include -#include "mxc_device.h" -#include "wsf_types.h" -#include "util/wstr.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_efs.h" -#include "wsf_cs.h" -#include "wsf_msg.h" -#include "util/bstream.h" -#include "svc_wdxs.h" -#include "wdxs/wdxs_api.h" -#include "wdxs/wdxs_main.h" -#include "wdxs_file.h" -#include "dm_api.h" -#include "att_api.h" -#include "app_api.h" -#include "flc.h" -#include "Ext_Flash.h" - -#ifndef FW_VERSION_MAJOR -#define FW_VERSION_MAJOR 1 -#define FW_VERSION_MINOR 0 -#endif - -#define EXT_FLASH_PAGE_SIZE 256 -#define EXT_FLASH_SECTOR_SIZE ((uint32_t)0x0001000) -#define HEADER_LOCATION ((uint32_t)0x00000000) -#define ERASE_DELAY 50 // ms - -static volatile uint32_t verifyLen; -static volatile uint8_t *lastWriteAddr; -static volatile uint32_t lastWriteLen; -static uint32_t crcResult; - -static uint32_t eraseAddress, eraseSectors; -wsfHandlerId_t eraseHandlerId; -wsfTimer_t eraseTimer; - -/* Prototypes for file functions */ -static uint8_t wdxsFileInitMedia(void); -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); - -static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; -wsfEfsHandle_t otaFileHdl; -#define HEADER_LEN (sizeof(fileHeader_t)) -/* Use the second half of the flash space for scratch space */ -static const wsfEfsMedia_t WDXS_FileMedia = { - /* uint32_t startAddress; Start address + size of header. */ ( - (uint32_t)0x00000000), - /* uint32_t endAddress; End address. */ ((uint32_t)0x01000000), - /* uint32_t pageSize; Page size. */ EXT_FLASH_PAGE_SIZE, - /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, - /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, - /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, - /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, - /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle -}; - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for file erase. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (eraseSectors) { - APP_TRACE_INFO1(">>> Erasing address 0x%x in external flash <<<", eraseAddress); - - /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ - Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); - eraseSectors--; - eraseAddress += EXT_FLASH_SECTOR_SIZE; - - /* Continue next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - } else { - /* Erase is complete */ - APP_TRACE_INFO0(">>> External flash erase complete <<<"); - wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); - } -} - -/*************************************************************************************************/ -/*! - * \brief Media Init function, called when media is registered. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileInitMedia(void) -{ - int err = 0; - MXC_FLC_Init(); - err += Ext_Flash_Init(); - err += Ext_Flash_Quad(1); - if (err) { - APP_TRACE_INFO0("Error initializing external flash"); - } - - APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); - - /* Setup the erase handler */ - eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); - eraseTimer.handlerId = eraseHandlerId; - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File erase function. Must be page aligned. - * - * \param pAddress Address in media to start erasing. - * \param size Number of bytes to erase. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) -{ - uint32_t address32 = (uint32_t)address; - uint32_t sectors = 0; // hard coded for now because image has no len data - - if (fileHeader.fileLen != 0) { - /* calculate sectors needed to erase */ - sectors = (fileHeader.fileLen / EXT_FLASH_SECTOR_SIZE) + 1; - APP_TRACE_INFO1(">>> Initiating erase of %d 4K sectors in external flash <<<", sectors); - - /* Setup the erase handler variables */ - eraseAddress = address32; - eraseSectors = sectors; - - /* Initiate the erase */ - Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); - eraseSectors--; - eraseAddress += EXT_FLASH_SECTOR_SIZE; - - /* Wait ERASE_DELAY ms before staring next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - - /* TODO: We will have to disconnect the completion of this with the - erase actually being complete */ - - return WSF_EFS_SUCCESS; - } else { - APP_TRACE_INFO0(">>> File size is unknown <<<"); - return WSF_EFS_FAILURE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Media Read function. - * - * \param pBuf Buffer to hold data. - * \param pAddress Address in media to read from. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - Ext_Flash_Read((uint32_t)pAddress, pBuf, size, Ext_Flash_DataLine_Quad); - return WSF_EFS_SUCCESS; -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} -/*************************************************************************************************/ -/*! - * \brief File Write function. - * - * \param pBuf Buffer with data to be written. - * \param address Address in media to write to. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - static bool_t savedHeader = FALSE; - int err = 0; - uint8_t attempts = 2; - uint8_t *tempBuff = (uint8_t *)malloc(size); - /* helps silence compiler warnings over discarded const qualifier */ - uint32_t addressToBuf = (uint32_t)pBuf; - /* write the header in flash device */ - if (!savedHeader) { - err += Ext_Flash_Program_Page(HEADER_LOCATION, (uint8_t *)&fileHeader, sizeof(fileHeader_t), - Ext_Flash_DataLine_Quad); - /* verify header was written correctly */ - err += Ext_Flash_Read(HEADER_LOCATION, tempBuff, sizeof(fileHeader_t), - Ext_Flash_DataLine_Quad); - if (memcmp(tempBuff, (uint8_t *)&fileHeader, sizeof(fileHeader_t)) != 0) { - APP_TRACE_INFO0("Error writting header to external flash"); - } - savedHeader = TRUE; - } - /* offset by the header thats already written */ - pAddress += HEADER_LEN; - crc32((const void *)pBuf, size, &crcResult); - while (attempts) { - err += Ext_Flash_Program_Page((uint32_t)pAddress, (uint8_t *)addressToBuf, size, - Ext_Flash_DataLine_Quad); - err += Ext_Flash_Read((uint32_t)pAddress, tempBuff, size, Ext_Flash_DataLine_Quad); - /* verify data was written correctly */ - if (memcmp(tempBuff, pBuf, size) != 0) { - attempts--; - if (attempts == 0) - err++; - } else { - attempts = 0; - } - } - if (err == E_NO_ERROR) { - lastWriteAddr = pAddress; - lastWriteLen = size; - APP_TRACE_INFO2("Ext Flash: Wrote %d bytes @ 0x%08x", size, pAddress); - } else { - APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); - /* force a crc error so device does not reboot into bootloader */ - crcResult = 0; - err = WSF_EFS_FAILURE; - } - - free(tempBuff); - return err; -} - -/*************************************************************************************************/ -/*! - * \brief Media Specific Command handler. - * - * \param cmd Identifier of the media specific command. - * \param param Optional Parameter to the command. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) -{ - switch (cmd) { - case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { - /* Currently unimplemented */ - return WDX_FTC_ST_SUCCESS; - } break; - case WSF_EFS_VALIDATE_CMD: - default: { - verifyLen = (uint32_t)lastWriteAddr - WDXS_FileMedia.startAddress - sizeof(fileHeader_t) + - lastWriteLen; - - APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, - verifyLen); - APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); - APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); - - /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ - if (fileHeader.fileCRC != crcResult) { - APP_TRACE_INFO0("Update file verification failure"); - APP_TRACE_INFO0("Erasing first sector of external flash"); - Ext_Flash_Erase(HEADER_LOCATION, Ext_Flash_Erase_4K); - crcResult = 0; - return WDX_FTC_ST_VERIFICATION; - } - crcResult = 0; - return WDX_FTC_ST_SUCCESS; - } break; - } - return WDX_FTC_ST_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Example of creating a WDXS stream. - * - * \param none - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void) -{ - wsfEsfAttributes_t attr; - char versionString[WSF_EFS_VERSION_LEN]; - - /* Add major number */ - versionString[0] = FW_VERSION_MAJOR; - /* Add "." */ - versionString[1] = '.'; - /* Minor number */ - versionString[2] = FW_VERSION_MINOR; - /* Add termination character */ - versionString[3] = 0; - - /* Register the media for the stream */ - WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); - - /* Set the attributes for the stream */ - attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | - WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | - WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | - WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); - - attr.type = WSF_EFS_FILE_TYPE_BULK; - - /* Potential buffer overrun is intentional to zero out fixed length field */ - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); - - /* Add a file for the stream */ - otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, - WDX_FLASH_MEDIA, &attr, 0); - APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); -} - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void) -{ - return WDXS_FileMedia.startAddress; -} - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void) -{ - return verifyLen; -} - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void) -{ - wsfEsfAttributes_t attr; - uint8_t minor, major; - - WsfEfsGetAttributes(otaFileHdl, &attr); - major = attr.version[0]; - minor = attr.version[2]; - // store major in upper byte and minor in lower byte - return (uint16_t)major << 8 | minor; -} - -void initHeader(fileHeader_t *header) -{ - fileHeader.fileLen = header->fileLen; - fileHeader.fileCRC = header->fileCRC; -} diff --git a/Examples/MAX32655/BLE_otas/wdxs_file_int.c b/Examples/MAX32655/BLE_otas/wdxs_file_int.c deleted file mode 100644 index b93692bc8a9..00000000000 --- a/Examples/MAX32655/BLE_otas/wdxs_file_int.c +++ /dev/null @@ -1,514 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include -#include "mxc_device.h" -#include "mxc_delay.h" -#include "wsf_types.h" -#include "util/wstr.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_efs.h" -#include "wsf_cs.h" -#include "wsf_msg.h" -#include "wsf_buf.h" -#include "util/bstream.h" -#include "svc_wdxs.h" -#include "wdxs/wdxs_api.h" -#include "wdxs/wdxs_main.h" -#include "wdxs_file.h" -#include "dm_api.h" -#include "att_api.h" -#include "app_api.h" -#include "flc.h" -#include "sch_api.h" - -#ifndef FW_VERSION_MAJOR -#define FW_VERSION_MAJOR 1 -#define FW_VERSION_MINOR 0 -#endif - -#define ERASE_DELAY 1 // ms - -extern uint32_t _flash_update; -extern uint32_t _eflash_update; - -static uint32_t eraseAddress, erasePages; -wsfHandlerId_t eraseHandlerId; -wsfTimer_t eraseTimer; - -wsfHandlerId_t writeHandlerId; -wsfQueue_t writeQueue; -static bool_t savedHeader = FALSE; - -/* Prototypes for file functions */ -static uint8_t wdxsFileInitMedia(void); -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); - -static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; -wsfEfsHandle_t otaFileHdl; - -/* Use the second half of the flash space for scratch space */ -static const wsfEfsMedia_t WDXS_FileMedia = { - - /* uint32_t startAddress; Start address. */ ((uint32_t)&_flash_update), - /* uint32_t endAddress; End address. */ ((uint32_t)&_eflash_update), - /* uint32_t pageSize; Page size. */ MXC_FLASH_PAGE_SIZE, - /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, - /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, - /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, - /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, - /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle -}; - -#define HEADER_LEN (sizeof(fileHeader_t)) -#define HEADER_LOCATION WDXS_FileMedia.startAddress - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for file erase. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - int err = 0; - - if (erasePages) { - /* Only erase the flash if the scheduler is idle. */ - if (SchGetState() != SCH_STATE_IDLE) { - /* Pend the erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - return; - } - - APP_TRACE_INFO1(">>> Erasing address 0x%x in internal flash <<<", eraseAddress); - - /* The flash can not be accessed while the write is being performed. */ - WsfCsEnter(); - err = MXC_FLC_PageErase((uint32_t)eraseAddress); - WsfCsExit(); - if (err != E_NO_ERROR) { - APP_TRACE_INFO0("There was an erase error"); - return; - } - erasePages--; - eraseAddress += MXC_FLASH_PAGE_SIZE; - /* Continue next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - } else { - /* Erase is complete */ - APP_TRACE_INFO0(">>> Internal flash erase complete <<<"); - wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); - } -} - -/*************************************************************************************************/ -/*! - * \brief Enqueue the next message and send an indication to the handler. - * - * \param address Flash address. - * \param size Data length. - * \param pBuf Data to write. - * - * \return None. - */ -/*************************************************************************************************/ -static void wdxsFileWriteMessage(uint32_t address, uint32_t size, const uint8_t *pBuf) -{ - /* Allocate the message */ - uint8_t *writeBuf = WsfMsgAlloc(size + 4 + 4); - - if (writeBuf == NULL) { - WSF_ASSERT(0); - } - - /* Copy in the address, size, and data */ - memcpy(&writeBuf[0], &address, sizeof(uint32_t)); - memcpy(&writeBuf[sizeof(uint32_t)], &size, sizeof(uint32_t)); - memcpy(&writeBuf[2 * sizeof(uint32_t)], pBuf, size); - - /* Enqueue the message */ - WsfMsgEnq(&writeQueue, 0, writeBuf); - - /* Signal the handler */ - WsfSetEvent(writeHandlerId, 1); -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for file write. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void wdxsFileWriteHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - int err; - static const unsigned writeBufLen = 256; - uint32_t writeAddress, writeLen; - uint32_t writeBuf[writeBufLen / sizeof(uint32_t)]; - uint8_t *pBuf; - wsfHandlerId_t retHandler; - wsfMsgHdr_t *queueMsg; - - /* Dequeue the next message */ - queueMsg = WsfMsgDeq(&writeQueue, &retHandler); - - /* Perform all of the pending writes */ - while (queueMsg != NULL) { - /* Get a uint8_t pointer into the message */ - pBuf = (uint8_t *)queueMsg; - - /* Get the address and length from the buffer */ - memcpy(&writeAddress, &pBuf[0], sizeof(uint32_t)); - memcpy(&writeLen, &pBuf[sizeof(uint32_t)], sizeof(uint32_t)); - - /* Make sure message doesn't overflow */ - WSF_ASSERT(writeLen <= writeBufLen); - - /* Align the data */ - memcpy(writeBuf, &pBuf[2 * sizeof(uint32_t)], writeLen); - - /* Only write the flash if the scheduler is idle. */ - if (SchGetState() != SCH_STATE_IDLE) { - /* Re-queue the message */ - WsfMsgFree(queueMsg); - wdxsFileWriteMessage(writeAddress, writeLen, (const uint8_t *)writeBuf); - return; - } - - /* Perform the write, use critical section because we must execute from SRAM. - * The flash can not be accessed while the write is being performed. - */ - WsfCsEnter(); - err = MXC_FLC_Write(writeAddress, writeLen, writeBuf); - WSF_ASSERT(err == E_NO_ERROR); - - /* Free the message */ - WsfMsgFree(queueMsg); - - WsfCsExit(); - - APP_TRACE_INFO2("Int. Flash: Wrote %d bytes @ 0x%x", writeLen, writeAddress); - - /* Get the next message */ - queueMsg = WsfMsgDeq(&writeQueue, &retHandler); - } -} -/*************************************************************************************************/ -/*! - * \brief Media Init function, called when media is registered. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileInitMedia(void) -{ - MXC_FLC_Init(); - APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); - - /* Setup the erase handler */ - eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); - eraseTimer.handlerId = eraseHandlerId; - - /* Setup the write handler */ - writeHandlerId = WsfOsSetNextHandler(wdxsFileWriteHandler); - WSF_QUEUE_INIT(&writeQueue); - - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File erase function. Must be page aligned. - * - * \param pAddress Address in media to start erasing. - * \param size Number of bytes to erase. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) -{ - uint32_t address32 = (uint32_t)address; - - if (fileHeader.fileLen != 0) { - int err = 0; - /* Setup the erase handler variables */ - eraseAddress = address32; - /* calculate pages needed to erase */ - erasePages = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; - /* Initiate the erase */ - WsfCsEnter(); - err = MXC_FLC_PageErase((uint32_t)address32); - WsfCsExit(); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Flash page erase error at 0x%0x", address32); - return WSF_EFS_FAILURE; - } else { - APP_TRACE_INFO1(">>> Initiating erase of %d pages of internal flash <<<", erasePages); - } - erasePages--; - eraseAddress += MXC_FLASH_PAGE_SIZE; - - savedHeader = FALSE; - - /* Wait ERASE_DELAY ms before staring next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - - return WSF_EFS_SUCCESS; - } else { - APP_TRACE_INFO0(">>> File size is unknown <<<"); - return WSF_EFS_FAILURE; - } - - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Media Read function. - * - * \param pBuf Buffer to hold data. - * \param pAddress Address in media to read from. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - memcpy(pBuf, pAddress, size); - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File Write function. - * - * \param pBuf Buffer with data to be written. - * \param address Address in media to write to. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - uint32_t address = (uint32_t)pAddress; - - if (!savedHeader) { - wdxsFileWriteMessage(HEADER_LOCATION, HEADER_LEN, (const uint8_t *)&fileHeader); - savedHeader = TRUE; - } - - /* offset by the header length written into flash */ - address += HEADER_LEN; - - wdxsFileWriteMessage(address, size, pBuf); - - return WSF_EFS_SUCCESS; -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -/*************************************************************************************************/ -/*! - * \brief Media Specific Command handler. - * - * \param cmd Identifier of the media specific command. - * \param param Optional Parameter to the command. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) -{ - switch (cmd) { - case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { - /* Currently unimplemented */ - return WDX_FTC_ST_SUCCESS; - } break; - case WSF_EFS_VALIDATE_CMD: - default: { - /* Validate the image with CRC32 */ - uint32_t crcResult = 0; - - APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, - fileHeader.fileLen); - - crc32((const void *)(WDXS_FileMedia.startAddress + HEADER_LEN), fileHeader.fileLen, - &crcResult); - - APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); - APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); - - /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ - if (fileHeader.fileCRC != crcResult) { - APP_TRACE_INFO0("Update file verification failure"); - return WDX_FTC_ST_VERIFICATION; - } - return WDX_FTC_ST_SUCCESS; - } break; - } - return WDX_FTC_ST_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Example of creating a WDXS stream. - * - * \param none - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void) -{ - wsfEsfAttributes_t attr; - char versionString[WSF_EFS_VERSION_LEN]; - - /* Add major number */ - versionString[0] = FW_VERSION_MAJOR; - /* Add "." */ - versionString[1] = '.'; - /* Minor number */ - versionString[2] = FW_VERSION_MINOR; - /* Add termination character */ - versionString[3] = 0; - - /* Register the media for the stream */ - WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); - - /* Set the attributes for the stream */ - attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | - WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | - WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | - WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); - - attr.type = WSF_EFS_FILE_TYPE_BULK; - - /* Potential buffer overrun is intentional to zero out fixed length field */ - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); - - /* Add a file for the stream */ - otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, - WDX_FLASH_MEDIA, &attr, 0); - APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); -} - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void) -{ - return WDXS_FileMedia.startAddress; -} - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void) -{ - return fileHeader.fileLen; -} - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void) -{ - wsfEsfAttributes_t attr; - uint8_t minor, major; - - WsfEfsGetAttributes(otaFileHdl, &attr); - major = attr.version[0]; - minor = attr.version[2]; - // store major in upper byte and minor in lower byte - return (uint16_t)major << 8 | minor; -} - -void initHeader(fileHeader_t *header) -{ - fileHeader.fileLen = header->fileLen; - fileHeader.fileCRC = header->fileCRC; -} diff --git a/Examples/MAX32655/BLE_periph/.vscode/flash.gdb b/Examples/MAX32655/BLE_periph/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32655/BLE_periph/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32655/BLE_periph/Makefile b/Examples/MAX32655/BLE_periph/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/BLE_periph/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/BLE_periph/README.md b/Examples/MAX32655/BLE_periph/README.md deleted file mode 100644 index 59a1830ff79..00000000000 --- a/Examples/MAX32655/BLE_periph/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# BLE_periph -Refer to the [BLE_periph](../../../Libraries/Cordio/docs/Applications/BLE_periph.md) documentation in the Cordio Library. - -# NOTE: BLE_periph is a bare bones example with no security and is not guaranteed nor intended to work with Windows, IOS, Android, etc. The example is only designed to operate with other embedded devices with loose security requirements. For a more fully featured application, please checkout BLE_dat(c/s) - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Required Connections -* Connect a USB cable between the PC and the (USB/PWR - UART) connector. An anteanna or wired connection can be used if SMA is available on the board. - -### Project-Specific Build Notes - Setting `TRACE=1` in [**project.mk**](project.mk) initializes the on-board USB-to-UART adapter for -viewing the trace messages and interacting with the application. Port uses settings: - - Baud : 115200 - - Char size : 8 - - Parity : None - - Stop bits : 1 - - HW Flow Control : No - - SW Flow Control : No diff --git a/Examples/MAX32655/BLE_periph/main.c b/Examples/MAX32655/BLE_periph/main.c deleted file mode 100644 index 72e8dd03b44..00000000000 --- a/Examples/MAX32655/BLE_periph/main.c +++ /dev/null @@ -1,216 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE app that advertises as "Periph". Recommended app for getting started with MSDK BLE. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include - -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "periph_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitPeriph(void); - -/*************************************************************************************************/ -/*! - * \brief RX data received callback. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - */ -/*************************************************************************************************/ -static void appRxCallback(uint8_t *data, uint16_t len) -{ - unsigned i; - - /* Print the received data */ - printf("App received: "); - - for (i = 0; i < len; i++) { - printf("0x%02X ", data[i]); - } - printf("\n"); - - /* Echo the data back to the central */ - if (!PeriphTXData(data, len)) { - printf("Error sending data to peer\n"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif - - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); -#endif - - StackInitPeriph(); - PeriphStart(); - - PeriphRegisterRXCallback(appRxCallback); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ - mainWsfInit(); - - while (1) { - /* Run the WSF OS */ - wsfOsDispatcher(); - - if (!WsfOsActive()) { - /* No WSF tasks are active, optionally sleep */ - } - } - - return 0; -} diff --git a/Examples/MAX32655/BLE_periph/periph_api.h b/Examples/MAX32655/BLE_periph/periph_api.h deleted file mode 100644 index 8ec621f6e3b..00000000000 --- a/Examples/MAX32655/BLE_periph/periph_api.h +++ /dev/null @@ -1,106 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_PERIPH_PERIPH_API_H_ -#define EXAMPLES_MAX32655_BLE_PERIPH_PERIPH_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************************************************************************/ -/*! - * \brief Peripheral RX callback function. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - */ -/*************************************************************************************************/ -typedef void (*periphRxCb_t)(uint8_t *data, uint16_t len); - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Register the callback for received data. - * - * \param cb Callback function for when data is received. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphRegisterRXCallback(periphRxCb_t cb); - -/*************************************************************************************************/ -/*! - * \brief Send data to the peer. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - * - * \return TRUE if data send, FALSE if error. - */ -/*************************************************************************************************/ -bool_t PeriphTXData(uint8_t *data, uint16_t len); - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32655_BLE_PERIPH_PERIPH_API_H_ diff --git a/Examples/MAX32655/BLE_periph/periph_main.c b/Examples/MAX32655/BLE_periph/periph_main.c deleted file mode 100644 index 5ce69999d70..00000000000 --- a/Examples/MAX32655/BLE_periph/periph_main.c +++ /dev/null @@ -1,400 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "periph_api.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - PERIPH_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - PERIPH_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - PERIPH_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t periphAdvCfg = { - { 30000, 0, 0 }, /*! Advertising durations in ms, 0 corresponds to infinite */ - { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t periphSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t periphAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t periphAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - /*! device name */ - 7, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'P', 'e', 'r', 'i', 'p', 'h' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t periphCccSet[PERIPH_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* PERIPH_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - periphRxCb_t rxCb; /* RX Callback function */ - dmConnId_t connId; /* Connection ID */ - bool_t connected; /* Connection state */ -} periphCb; - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(periphCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(periphCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphCccCback(attsCccEvt_t *pEvt) {} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t periphWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - /* Call callback with data */ - if (periphCb.rxCb != NULL) { - periphCb.rxCb(pValue, len); - } - - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void periphSetup(dmEvt_t *pMsg) -{ - /* set advertising data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(periphAdvDataDisc), - (uint8_t *)periphAdvDataDisc); - - /* set advertising data or connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(periphAdvDataDisc), - (uint8_t *)periphAdvDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void periphProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - periphSetup(pMsg); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - /* Save connId */ - periphCb.connId = (dmConnId_t)pMsg->hdr.param; - periphCb.connected = TRUE; - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - periphCb.connected = FALSE; - uiEvent = APP_UI_CONN_CLOSE; - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send data to the peer. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - * - * \return TRUE if data send, FALSE if error. - */ -/*************************************************************************************************/ -bool_t PeriphTXData(uint8_t *data, uint16_t len) -{ - /* Make sure we're connected */ - if (!periphCb.connected) { - return FALSE; - } - - /* Check if a client characteristic configuration descriptor is enabled and if - the characteristic's security level has been met. */ - if (AttsCccEnabled(periphCb.connId, PERIPH_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(periphCb.connId, WP_DAT_HDL, len, data); - - return TRUE; - } - - return FALSE; -} - -/*************************************************************************************************/ -/*! - * \brief Register the callback for received data. - * - * \param cb Callback function for when data is received. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphRegisterRXCallback(periphRxCb_t cb) -{ - periphCb.rxCb = cb; -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("PeriphHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &periphAdvDataDisc[5]); - - /* store handler ID */ - periphCb.handlerId = handlerId; - - /* Initialize the RX Callback to NULL */ - periphCb.rxCb = NULL; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&periphSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&periphAdvCfg; - pAttCfg = (attCfg_t *)&periphAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Periph got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - periphProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphStart(void) -{ - /* Register for stack callbacks */ - DmRegister(periphDmCback); - DmConnRegister(DM_CLIENT_ID_APP, periphDmCback); - AttRegister(periphAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(PERIPH_NUM_CCC_IDX, (attsCccSet_t *)periphCccSet, periphCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, periphWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(PERIPH_GATT_SC_CCC_IDX); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32655/BLE4_ctr/.cproject b/Examples/MAX32655/Bluetooth/BLE4_ctr/.cproject similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.cproject rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.cproject diff --git a/Examples/MAX32655/BLE4_ctr/.project b/Examples/MAX32655/Bluetooth/BLE4_ctr/.project similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.project rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.project diff --git a/Examples/MAX32572/WearLeveling/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE4_ctr/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32572/WearLeveling/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.settings/language.settings.xml diff --git a/Examples/MAX32572/Library_Use/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/Library_Use/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE4_ctr/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/README.md diff --git a/Examples/MAX32572/SPI_MasterSlave/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32572/SPI_MasterSlave/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Coremark/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/Coremark/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE4_ctr/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/launch.json diff --git a/Examples/MAX32655/BLE4_ctr/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/settings.json diff --git a/Examples/MAX32655/BLE4_ctr/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE4_ctr/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE4_ctr/ARM/Abstract.txt b/Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32655/BLE4_ctr/ARM/Abstract.txt rename to Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/Abstract.txt diff --git a/Examples/MAX32655/BLE4_ctr/ARM/BLE.sct b/Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/BLE.sct similarity index 100% rename from Examples/MAX32655/BLE4_ctr/ARM/BLE.sct rename to Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/BLE.sct diff --git a/Examples/MAX32655/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvoptx b/Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvoptx similarity index 100% rename from Examples/MAX32655/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvoptx rename to Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvoptx diff --git a/Examples/MAX32655/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvprojx b/Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvprojx similarity index 100% rename from Examples/MAX32655/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvprojx rename to Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/BTLE_BLE4_ctr.uvprojx diff --git a/Examples/MAX32655/BLE4_ctr/ARM/EventRecorderStub.scvd b/Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/EventRecorderStub.scvd similarity index 100% rename from Examples/MAX32655/BLE4_ctr/ARM/EventRecorderStub.scvd rename to Examples/MAX32655/Bluetooth/BLE4_ctr/ARM/EventRecorderStub.scvd diff --git a/Examples/MAX32655/BLE4_ctr/BLE4_ctr.launch b/Examples/MAX32655/Bluetooth/BLE4_ctr/BLE4_ctr.launch similarity index 100% rename from Examples/MAX32655/BLE4_ctr/BLE4_ctr.launch rename to Examples/MAX32655/Bluetooth/BLE4_ctr/BLE4_ctr.launch diff --git a/Examples/MAX32655/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewd b/Examples/MAX32655/Bluetooth/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewd similarity index 100% rename from Examples/MAX32655/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewd rename to Examples/MAX32655/Bluetooth/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewd diff --git a/Examples/MAX32655/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewp b/Examples/MAX32655/Bluetooth/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewp similarity index 100% rename from Examples/MAX32655/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewp rename to Examples/MAX32655/Bluetooth/BLE4_ctr/IAR/BTLE_BLE4_ctr.ewp diff --git a/Examples/MAX32655/Bluetooth/BLE4_ctr/Makefile b/Examples/MAX32655/Bluetooth/BLE4_ctr/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE4_ctr/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE4_ctr/README.md b/Examples/MAX32655/Bluetooth/BLE4_ctr/README.md similarity index 100% rename from Examples/MAX32655/BLE4_ctr/README.md rename to Examples/MAX32655/Bluetooth/BLE4_ctr/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE4_ctr/main.c b/Examples/MAX32655/Bluetooth/BLE4_ctr/main.c new file mode 100644 index 00000000000..cdcd9b61eeb --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE4_ctr/main.c @@ -0,0 +1,203 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + + /* Set 4.2 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) { + eventPending = WsfTokenService(); + } +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) { + eventPending = LhciSnifferHandler(); + } +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + LlSetAdvTxPower(DEFAULT_TX_POWER); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/BLE4_ctr/project.mk b/Examples/MAX32655/Bluetooth/BLE4_ctr/project.mk similarity index 100% rename from Examples/MAX32655/BLE4_ctr/project.mk rename to Examples/MAX32655/Bluetooth/BLE4_ctr/project.mk diff --git a/Examples/MAX32655/BLE5_ctr/.cproject b/Examples/MAX32655/Bluetooth/BLE5_ctr/.cproject similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.cproject rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.cproject diff --git a/Examples/MAX32655/BLE5_ctr/.project b/Examples/MAX32655/Bluetooth/BLE5_ctr/.project similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.project rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.project diff --git a/Examples/MAX32650/USB_CDCACM/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE5_ctr/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.settings/language.settings.xml diff --git a/Examples/MAX32572/SPI_MasterSlave/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/SPI_MasterSlave/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE5_ctr/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/README.md diff --git a/Examples/MAX32572/Temp_Monitor/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/c_cpp_properties.json old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32572/Temp_Monitor/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/DES/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/DES/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE5_ctr/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/launch.json diff --git a/Examples/MAX32655/BLE5_ctr/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/settings.json diff --git a/Examples/MAX32655/BLE5_ctr/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE5_ctr/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE5_ctr/ARM/Abstract.txt b/Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32655/BLE5_ctr/ARM/Abstract.txt rename to Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/Abstract.txt diff --git a/Examples/MAX32655/BLE5_ctr/ARM/BLE.sct b/Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/BLE.sct similarity index 100% rename from Examples/MAX32655/BLE5_ctr/ARM/BLE.sct rename to Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/BLE.sct diff --git a/Examples/MAX32655/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvoptx b/Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvoptx similarity index 100% rename from Examples/MAX32655/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvoptx rename to Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvoptx diff --git a/Examples/MAX32655/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvprojx b/Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvprojx similarity index 100% rename from Examples/MAX32655/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvprojx rename to Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/BTLE_BLE5_ctr.uvprojx diff --git a/Examples/MAX32655/BLE5_ctr/ARM/EventRecorderStub.scvd b/Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/EventRecorderStub.scvd similarity index 100% rename from Examples/MAX32655/BLE5_ctr/ARM/EventRecorderStub.scvd rename to Examples/MAX32655/Bluetooth/BLE5_ctr/ARM/EventRecorderStub.scvd diff --git a/Examples/MAX32655/BLE5_ctr/BLE5_ctr.launch b/Examples/MAX32655/Bluetooth/BLE5_ctr/BLE5_ctr.launch similarity index 100% rename from Examples/MAX32655/BLE5_ctr/BLE5_ctr.launch rename to Examples/MAX32655/Bluetooth/BLE5_ctr/BLE5_ctr.launch diff --git a/Examples/MAX32655/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewd b/Examples/MAX32655/Bluetooth/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewd similarity index 100% rename from Examples/MAX32655/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewd rename to Examples/MAX32655/Bluetooth/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewd diff --git a/Examples/MAX32655/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewp b/Examples/MAX32655/Bluetooth/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewp similarity index 100% rename from Examples/MAX32655/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewp rename to Examples/MAX32655/Bluetooth/BLE5_ctr/IAR/BTLE_BLE5_ctr.ewp diff --git a/Examples/MAX32655/Bluetooth/BLE5_ctr/Makefile b/Examples/MAX32655/Bluetooth/BLE5_ctr/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE5_ctr/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE5_ctr/README.md b/Examples/MAX32655/Bluetooth/BLE5_ctr/README.md similarity index 100% rename from Examples/MAX32655/BLE5_ctr/README.md rename to Examples/MAX32655/Bluetooth/BLE5_ctr/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE5_ctr/main.c b/Examples/MAX32655/Bluetooth/BLE5_ctr/main.c new file mode 100644 index 00000000000..a8b1f7bb664 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE5_ctr/main.c @@ -0,0 +1,288 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth version 5.2 controller, accepts HCI commands via Serial Port. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_cs.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "mxc_device.h" +#include "uart.h" +#include "nvic_table.h" +#include "board.h" +#include "pal_timer.h" + +#define MAX_PRIORITY ((0x1 << __NVIC_PRIO_BITS) - 1) + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = BT_VER; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; + + /* Adjust the extended advertising and ISO settings */ + mainLlRtCfg.maxAdvSets = 2; + mainLlRtCfg.maxAdvReports = 4; + mainLlRtCfg.numIsoTxBuf = 8; + mainLlRtCfg.maxCis = 2; + mainLlRtCfg.maxBis = 2; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Use single pool for data buffers. */ +#if (BT_VER > 9) + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) { + eventPending = WsfTokenService(); + } +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) { + eventPending = LhciSnifferHandler(); + } +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Adjust interrupt priorities to let HCI UART interrupt have second highest after PAL timer + * + * \return None + */ +/*************************************************************************************************/ +void setInterruptPriority(void) +{ + /* Interrupts using FreeRTOS functions must have priorities between MAX_PRIORITY and + configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ + + /* Setup BLE hardware interrupt priorities */ + NVIC_SetPriority(BTLE_TX_DONE_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SFD_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SFD_TO_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_CFO_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SIG_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_TX_AES_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_AES_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (MAX_PRIORITY - 2)); + + /* Setup scheduler timer priorities */ + NVIC_SetPriority(TMR0_IRQn, (MAX_PRIORITY - 1)); + NVIC_SetPriority(TMR1_IRQn, (MAX_PRIORITY - 1)); + + NVIC_SetPriority(WUT_IRQn, (MAX_PRIORITY - 1)); + + /* Setup additional peripheral timer priorities */ + NVIC_SetPriority(UART1_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(UART2_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(DMA0_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA1_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA2_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA3_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(GPIO0_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(GPIO1_IRQn, (MAX_PRIORITY - 0)); + + /* Trace UART */ + NVIC_SetPriority(UART0_IRQn, 3); + /* HCI UART highest priority */ + NVIC_SetPriority(MXC_UART_GET_IRQ(MXC_UART_GET_UART(HCI_UART)), 0); + /* PAL Timer */ + PalTimerSetIRQPriority(2); +} +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + LlSetAdvTxPower(DEFAULT_TX_POWER); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + setInterruptPriority(); + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/BLE5_ctr/project.mk b/Examples/MAX32655/Bluetooth/BLE5_ctr/project.mk similarity index 100% rename from Examples/MAX32655/BLE5_ctr/project.mk rename to Examples/MAX32655/Bluetooth/BLE5_ctr/project.mk diff --git a/Examples/MAX32655/BLE_FreeRTOS/.cproject b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.cproject similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.cproject rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.cproject diff --git a/Examples/MAX32655/BLE_FreeRTOS/.project b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.project similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.project rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.project diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.settings/language.settings.xml diff --git a/Examples/MAX32572/Temp_Monitor/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/Temp_Monitor/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_FreeRTOS/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/README.md diff --git a/Examples/MAX32572/WearLeveling/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32572/WearLeveling/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/DMA/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/DMA/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_FreeRTOS/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_FreeRTOS/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_FreeRTOS/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_FreeRTOS/BLE_FreeRTOS.launch b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/BLE_FreeRTOS.launch similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/BLE_FreeRTOS.launch rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/BLE_FreeRTOS.launch diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h new file mode 100644 index 00000000000..c62f4ecb198 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h @@ -0,0 +1,152 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ + +#include +#include "max32655.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* CMSIS keeps a global updated with current system clock in Hz */ +#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) + +#define SLEEP_LED 1 +#define DEEPSLEEP_LED 0 + +/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ +// #define configUSE_TICKLESS_IDLE 1 + +/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will +increase the amount of time spent in standby mode, thus reducing average power consumption. */ +#ifdef configUSE_TICKLESS_IDLE +#define configTICK_RATE_HZ ((portTickType)10000) +#else +#define configTICK_RATE_HZ ((portTickType)1000) +#endif + +#define configRTC_TICK_RATE_HZ (32768) + +#define configTOTAL_HEAP_SIZE ((size_t)(70 * 1024)) + +#define configMINIMAL_STACK_SIZE ((uint16_t)128) + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 0 +#define configUSE_CO_ROUTINES 0 +#define configUSE_16_BIT_TICKS 0 +#define configUSE_MUTEXES 1 + +/* Define to trap errors during development. */ +void vAssertCalled(const char *const pcFileName, uint32_t ulLine); +#define configASSERT(x) \ + if ((x) == 0) \ + vAssertCalled(__FILE__, __LINE__) + +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) +#define configTIMER_QUEUE_LENGTH 8 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE + +/* Run time and task stats gathering related definitions. */ +#define configUSE_TRACE_FACILITY 1 +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelay 1 + +/* # of priority bits (configured in hardware) is provided by CMSIS */ +#define configPRIO_BITS __NVIC_PRIO_BITS + +#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) + +/* Only the top three bits are implemented. This is the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY \ + ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) + +/* Priority 5, or 160 as only the top three bits are implemented. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) + +/* Alias the default handler names to match CMSIS weak symbols */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#ifdef configUSE_TICKLESS_IDLE +/* Provide routines for tickless idle pre- and post- processing */ +void vPreSleepProcessing(uint32_t *); +void vPostSleepProcessing(uint32_t); +#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); +#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); +#endif + +/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/Makefile b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_FreeRTOS/README.md b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/README.md similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/README.md rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/dats_api.h b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/dats_api.h new file mode 100644 index 00000000000..76acf5c09b1 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/dats_main.c b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/dats_main.c new file mode 100644 index 00000000000..4e3e6fc638e --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/dats_main.c @@ -0,0 +1,927 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_1M 1 +#define DATS_PHY_2M 2 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 60000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 5000, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + (50 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (100 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'D', + 'A', + 'T', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello back"; + + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datsCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + if (len < 64) { + /* print received data if not a speed test message */ + APP_TRACE_INFO0((const char *)pValue); + + /* send back some data */ + datsSendData(connId); + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datsOobCfg != NULL) { + DmSecSetOob(connId, datsOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/freertos_tickless.c new file mode 100644 index 00000000000..394d92fbef9 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/freertos_tickless.c @@ -0,0 +1,289 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Maxim CMSIS */ +#include "mxc_device.h" +#include "board.h" +#include "mxc_assert.h" +#include "lp.h" +#include "pwrseq_regs.h" +#include "wut.h" +#include "mcr_regs.h" +#include "icc.h" +#include "pb.h" +#include "led.h" +#include "uart.h" + +/* FreeRTOS includes */ +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +/* Bluetooth Cordio library */ +#include "pal_timer.h" +#include "pal_uart.h" +#include "pal_bb.h" + +#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ +#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ +#define WAKEUP_US 700 /* Deep sleep recovery time, units of us */ + +/* Minimum ticks before SysTick interrupt, units of system clock ticks. + * Convert CPU_CLOCK_HZ to units of ticks per us + */ +#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) + +/* + * Sleep-check function + * + * Your code should over-ride this weak function and return E_NO_ERROR if + * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other + * return code will prevent FreeRTOS from entering tickless idle. + */ +int freertos_permit_tickless(void) +{ + /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ + if (MXC_WUT_TrimPending(MXC_WUT0) != E_NO_ERROR) { + return E_BUSY; + } + + /* Figure out if the UART is active */ + if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { + return E_BUSY; + } + + /* Prevent characters from being corrupted if still transmitting, + UART will shutdown in deep sleep */ + if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { + return E_BUSY; + } + + return E_NO_ERROR; +} + +/* + * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c + * + * DEEPSLEEP mode will stop SysTick from counting, so that can't be + * used to wake up. Instead, calculate a wake-up period for the WUT to + * interrupt the WFI and continue execution. + * + */ +void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) +{ + uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; + uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; + bool_t schTimerActive; + + /* We do not currently handle to case where the WUT is slower than the RTOS tick */ + MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); + + if (SysTick->VAL < MIN_SYSTICK) { + /* Avoid sleeping too close to a systick interrupt */ + return; + } + + /* Calculate the number of WUT ticks, but we need one to synchronize */ + idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / + (uint64_t)configTICK_RATE_HZ; + + if (idleTicks > MAX_WUT_TICKS) { + idleTicks = MAX_WUT_TICKS; + } + + /* Check to see if we meet the minimum requirements for deep sleep */ + if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { + return; + } + + /* Enter a critical section but don't use the taskENTER_CRITICAL() + method as that will mask interrupts that should exit sleep mode. */ + __asm volatile("cpsid i"); + + /* If a context switch is pending or a task is waiting for the scheduler + to be unsuspended then abandon the low power entry. */ + /* Also check the MXC drivers for any in-progress activity */ + if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || + (freertos_permit_tickless() != E_NO_ERROR)) { + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + + /* Determine if the Bluetooth scheduler is running */ + if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { + schTimerActive = TRUE; + } else { + schTimerActive = FALSE; + } + + if (!schTimerActive) { + uint32_t ts; + if (PalBbGetTimestamp(&ts)) { + /*Determine if PalBb is active, return if we get a valid time stamp indicating + * that the scheduler is waiting for a PalBb event */ + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + } + + /* Disable SysTick */ + SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); + + /* Enable wakeup from WUT */ + NVIC_EnableIRQ(WUT_IRQn); + MXC_LP_EnableWUTAlarmWakeup(); + + /* Determine if we need to snapshot the PalBb clock */ + if (schTimerActive) { + /* Snapshot the current WUT value with the PalBb clock */ + MXC_WUT_Store(MXC_WUT0); + preCapture = MXC_WUT_GetCount(MXC_WUT0); + schUsec = PalTimerGetExpTime(); + + /* Adjust idleTicks for the time it takes to restart the BLE hardware */ + idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); + + /* Calculate the time to the next BLE scheduler event */ + if (schUsec < WAKEUP_US) { + bleSleepTicks = 0; + } else { + bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * + (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; + } + } else { + /* Snapshot the current WUT value */ + MXC_WUT_Edge(MXC_WUT0); + preCapture = MXC_WUT_GetCount(MXC_WUT0); + bleSleepTicks = 0; + schUsec = 0; + } + + /* Sleep for the shortest tick duration */ + if ((schTimerActive) && (bleSleepTicks < idleTicks)) { + dsTicks = bleSleepTicks; + } else { + dsTicks = idleTicks; + } + + /* Bound the deep sleep time */ + if (dsTicks > MAX_WUT_TICKS) { + dsTicks = MAX_WUT_TICKS; + } + + /* Don't deep sleep if we don't have time */ + if (dsTicks >= MIN_WUT_TICKS) { + /* Arm the WUT interrupt */ + MXC_WUT->cmp = preCapture + dsTicks; + + if (schTimerActive) { + /* Stop the BLE scheduler timer */ + PalTimerStop(); + + /* Shutdown BB hardware */ + PalBbDisable(); + } + + LED_Off(SLEEP_LED); + LED_Off(DEEPSLEEP_LED); + + MXC_LP_EnterStandbyMode(); + + LED_On(DEEPSLEEP_LED); + LED_On(SLEEP_LED); + + if (schTimerActive) { + /* Enable and restore the BB hardware */ + PalBbEnable(); + + PalBbRestore(); + + /* Restore the BB counter */ + MXC_WUT_RestoreBBClock(MXC_WUT0, BB_CLK_RATE_HZ); + + /* Restart the BLE scheduler timer */ + dsWutTicks = MXC_WUT->cnt - preCapture; + schUsecElapsed = + (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; + + int palTimerStartTicks = schUsec - schUsecElapsed; + if (palTimerStartTicks < 1) { + palTimerStartTicks = 1; + } + PalTimerStart(palTimerStartTicks); + } + } + + /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ + MXC_WUT_Edge(MXC_WUT0); + postCapture = MXC_WUT_GetCount(MXC_WUT0); + dsWutTicks = postCapture - preCapture; + + /* + * Advance ticks by # actually elapsed + */ + dsSysTickPeriods = + (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; + vTaskStepTick(dsSysTickPeriods); + + /* Re-enable SysTick */ + SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/main.c b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/main.c new file mode 100644 index 00000000000..e206c015db2 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/main.c @@ -0,0 +1,191 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief BLE_FreeRTOS + * @details This example demonstrates FreeRTOS with BLE capabilities. + */ + +#include +#include +#include +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "mxc_device.h" +#include "wut.h" +#include "lp.h" +#include "led.h" +#include "board.h" + +/* Stringification macros */ +#define STRING(x) STRING_(x) +#define STRING_(x) #x + +extern void bleStartup(void); + +/***** Functions *****/ + +/* =| vAssertCalled |============================== + * + * Called when an assertion is detected. Use debugger to backtrace and + * continue. + * + * ======================================================= + */ +void vAssertCalled(const char *const pcFileName, uint32_t ulLine) +{ + volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; + + /* Parameters are not used. */ + (void)ulLine; + (void)pcFileName; + + __asm volatile("cpsid i"); + { + /* You can step out of this function to debug the assertion by using + the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero + value. */ + while (ulSetToNonZeroInDebuggerToContinue == 0) {} + } + __asm volatile("cpsie i"); +} + +/* =| vApplicationIdleHook |============================== + * + * Call the user defined function from within the idle task. This + * allows the application designer to add background functionality + * without the overhead of a separate task. + * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, + * CALL A FUNCTION THAT MIGHT BLOCK. + * + * ======================================================= + */ +void vApplicationIdleHook(void) +{ + /* Sleep while idle */ + LED_Off(SLEEP_LED); + + MXC_LP_EnterSleepMode(); + + LED_On(SLEEP_LED); +} + +/* =| main |============================================== + * + * This program demonstrates FreeRTOS tasks, mutexes. + * + * ======================================================= + */ +int main(void) +{ + /* Print banner (RTOS scheduler not running) */ + printf("\n-=- %s BLE FreeRTOS (%s) Demo -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); +#if configUSE_TICKLESS_IDLE + printf("Tickless idle is enabled\n"); + /* Initialize CPU Active LED */ + LED_On(SLEEP_LED); + LED_On(DEEPSLEEP_LED); +#endif + printf("SystemCoreClock = %d\n", SystemCoreClock); + + /* Delay to prevent bricks */ + volatile int i; + for (i = 0; i < 0x3FFFFF; i++) {} + + GPIO_PrepForSleep(); + + /* Start the BLE application */ + bleStartup(); + + /* Start scheduler */ + vTaskStartScheduler(); + + /* This code is only reached if the scheduler failed to start */ + printf("ERROR: FreeRTOS did not start due to above error!\n"); + while (1) { + __NOP(); + } + + /* Quiet GCC warnings */ + return -1; +} + +typedef struct __attribute__((packed)) ContextStateFrame { + uint32_t r0; + uint32_t r1; + uint32_t r2; + uint32_t r3; + uint32_t r12; + uint32_t lr; + uint32_t return_address; + uint32_t xpsr; +} sContextStateFrame; + +/*****************************************************************/ +void HardFault_Handler(void) +{ + __asm(" TST LR, #4\n" + " ITE EQ \n" + " MRSEQ R0, MSP \n" + " MRSNE R0, PSP \n" + " B HardFault_Decoder \n"); +} + +/*****************************************************************/ +/* Disable optimizations for this function so "frame" argument */ +/* does not get optimized away */ +__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) +{ + /* Hang here */ + while (1) {} +} diff --git a/Examples/MAX32655/BLE_FreeRTOS/project.mk b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/project.mk similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/project.mk rename to Examples/MAX32655/Bluetooth/BLE_FreeRTOS/project.mk diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/stack_dats.c b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/stack_dats.c new file mode 100644 index 00000000000..a7231b28891 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/stack_dats.c @@ -0,0 +1,385 @@ +/*************************************************************************************************/ +/*! + * \file stack_dats.c + * + * \brief Stack initialization for dats. + * + * Copyright (c) 2016-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include + +#include "app_api.h" +#include "app_terminal.h" +#include "app_ui.h" +#include "att_api.h" +#include "att_handler.h" +#include "dats_api.h" +#include "dm_handler.h" +#include "hci_core.h" +#include "hci_defs.h" +#include "hci_handler.h" +#include "l2c_api.h" +#include "l2c_handler.h" +#include "ll_init_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "sec_api.h" +#include "smp_api.h" +#include "smp_handler.h" +#include "svc_core.h" +#include "svc_dis.h" +#include "util/bstream.h" +#include "wdxs/wdxs_api.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_bufio.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_msg.h" +#include "wsf_os.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_types.h" +#include "pal_led.h" + +#include "FreeRTOSConfig.h" + +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" +#include "mxc_device.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, + { 32, 4 }, + { 192, 8 }, + { 256, 16 }, + { 512, 4 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Initialize stack. + * + * \return None. + */ +/*************************************************************************************************/ +void StackInitDats(void) +{ + wsfHandlerId_t handlerId; + + SecInit(); + SecAesInit(); + SecCmacInit(); + SecEccInit(); + + handlerId = WsfOsSetNextHandler(HciHandler); + HciHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(DmHandler); + DmDevVsInit(0); + DmConnInit(); + DmAdvInit(); + DmConnSlaveInit(); + DmSecInit(); + DmSecLescInit(); + DmPrivInit(); + DmHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(L2cSlaveHandler); + L2cSlaveHandlerInit(handlerId); + L2cInit(); + L2cSlaveInit(); + + handlerId = WsfOsSetNextHandler(AttHandler); + AttHandlerInit(handlerId); + AttsInit(); + AttsIndInit(); + + handlerId = WsfOsSetNextHandler(SmpHandler); + SmpHandlerInit(handlerId); + SmprInit(); + SmprScInit(); + HciSetMaxRxAclLen(100); + + handlerId = WsfOsSetNextHandler(AppHandler); + AppHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(DatsHandler); + DatsHandlerInit(handlerId); +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_IntClear(MXC_WUT0); + NVIC_ClearPendingIRQ(WUT_IRQn); + MXC_WUT_Handler(MXC_WUT0); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> + MXC_F_TRIMSIR_RTC_X1TRIM_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +void setInterruptPriority(void) +{ + /* Interrupts using FreeRTOS functions must have priorities between configMAX_PRIORITIES and + configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ + + /* Setup BLE hardware interrupt priorities */ + NVIC_SetPriority(BTLE_TX_DONE_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SFD_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SFD_TO_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_CFO_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SIG_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_TX_AES_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_AES_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (configMAX_PRIORITIES - 2)); + + /* Setup scheduler timer priorities */ + NVIC_SetPriority(TMR0_IRQn, (configMAX_PRIORITIES - 1)); + NVIC_SetPriority(TMR1_IRQn, (configMAX_PRIORITIES - 1)); + + NVIC_SetPriority(WUT_IRQn, configMAX_PRIORITIES - 1); + + /* Setup additional peripheral timer priorities */ + NVIC_SetPriority(UART0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART1_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART2_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART3_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(DMA0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA1_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA2_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA3_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(GPIO0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(GPIO1_IRQn, (configMAX_PRIORITIES - 0)); +} + +void trim32k(void) +{ + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + NVIC_EnableIRQ(WUT_IRQn); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb) != E_NO_ERROR) { + APP_TRACE_INFO0("Error with 32k trim"); + } else { + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +} + +/*************************************************************************************************/ +/*! + * \brief Initialize BLE. + * + * \return None. + */ +/*************************************************************************************************/ +void bleStartup(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + trim32k(); +#endif + + setInterruptPriority(); + +#if configUSE_TICKLESS_IDLE + /* Disable Cordio stack usage of the LEDs */ + PalLedDeInit(); +#endif + + StackInitDats(); + DatsStart(); +} diff --git a/Examples/MAX32655/BLE_datc/.cproject b/Examples/MAX32655/Bluetooth/BLE_datc/.cproject similarity index 100% rename from Examples/MAX32655/BLE_datc/.cproject rename to Examples/MAX32655/Bluetooth/BLE_datc/.cproject diff --git a/Examples/MAX32655/BLE_datc/.project b/Examples/MAX32655/Bluetooth/BLE_datc/.project similarity index 100% rename from Examples/MAX32655/BLE_datc/.project rename to Examples/MAX32655/Bluetooth/BLE_datc/.project diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_datc/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_datc/.settings/language.settings.xml diff --git a/Examples/MAX32572/WearLeveling/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32572/WearLeveling/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_datc/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_datc/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_datc/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_datc/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_datc/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_datc/.vscode/README.md diff --git a/Examples/MAX32650/USB_CDCACM/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_datc/.vscode/c_cpp_properties.json old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_datc/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Flash/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_datc/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Flash/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_datc/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_datc/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_datc/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_datc/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_datc/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_datc/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_datc/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_datc/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_datc/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_datc/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_datc/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_datc/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_datc/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_datc/ARM/Abstract.txt b/Examples/MAX32655/Bluetooth/BLE_datc/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32655/BLE_datc/ARM/Abstract.txt rename to Examples/MAX32655/Bluetooth/BLE_datc/ARM/Abstract.txt diff --git a/Examples/MAX32655/BLE_datc/ARM/BLE.sct b/Examples/MAX32655/Bluetooth/BLE_datc/ARM/BLE.sct similarity index 100% rename from Examples/MAX32655/BLE_datc/ARM/BLE.sct rename to Examples/MAX32655/Bluetooth/BLE_datc/ARM/BLE.sct diff --git a/Examples/MAX32655/BLE_datc/ARM/BTLE_datc.uvoptx b/Examples/MAX32655/Bluetooth/BLE_datc/ARM/BTLE_datc.uvoptx similarity index 100% rename from Examples/MAX32655/BLE_datc/ARM/BTLE_datc.uvoptx rename to Examples/MAX32655/Bluetooth/BLE_datc/ARM/BTLE_datc.uvoptx diff --git a/Examples/MAX32655/BLE_datc/ARM/BTLE_datc.uvprojx b/Examples/MAX32655/Bluetooth/BLE_datc/ARM/BTLE_datc.uvprojx similarity index 100% rename from Examples/MAX32655/BLE_datc/ARM/BTLE_datc.uvprojx rename to Examples/MAX32655/Bluetooth/BLE_datc/ARM/BTLE_datc.uvprojx diff --git a/Examples/MAX32655/BLE_datc/ARM/EventRecorderStub.scvd b/Examples/MAX32655/Bluetooth/BLE_datc/ARM/EventRecorderStub.scvd similarity index 100% rename from Examples/MAX32655/BLE_datc/ARM/EventRecorderStub.scvd rename to Examples/MAX32655/Bluetooth/BLE_datc/ARM/EventRecorderStub.scvd diff --git a/Examples/MAX32655/BLE_datc/BLE_datc.launch b/Examples/MAX32655/Bluetooth/BLE_datc/BLE_datc.launch similarity index 100% rename from Examples/MAX32655/BLE_datc/BLE_datc.launch rename to Examples/MAX32655/Bluetooth/BLE_datc/BLE_datc.launch diff --git a/Examples/MAX32655/BLE_datc/IAR/BLE_datc.ewd b/Examples/MAX32655/Bluetooth/BLE_datc/IAR/BLE_datc.ewd similarity index 100% rename from Examples/MAX32655/BLE_datc/IAR/BLE_datc.ewd rename to Examples/MAX32655/Bluetooth/BLE_datc/IAR/BLE_datc.ewd diff --git a/Examples/MAX32655/BLE_datc/IAR/BLE_datc.ewp b/Examples/MAX32655/Bluetooth/BLE_datc/IAR/BLE_datc.ewp similarity index 100% rename from Examples/MAX32655/BLE_datc/IAR/BLE_datc.ewp rename to Examples/MAX32655/Bluetooth/BLE_datc/IAR/BLE_datc.ewp diff --git a/Examples/MAX32655/Bluetooth/BLE_datc/Makefile b/Examples/MAX32655/Bluetooth/BLE_datc/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_datc/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_datc/README.md b/Examples/MAX32655/Bluetooth/BLE_datc/README.md similarity index 100% rename from Examples/MAX32655/BLE_datc/README.md rename to Examples/MAX32655/Bluetooth/BLE_datc/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_datc/datc_api.h b/Examples/MAX32655/Bluetooth/BLE_datc/datc_api.h new file mode 100644 index 00000000000..7acd87d1047 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_datc/datc_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_DATC_DATC_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_DATC_DATC_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_DATC_DATC_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_datc/datc_main.c b/Examples/MAX32655/Bluetooth/BLE_datc/datc_main.c new file mode 100644 index 00000000000..160e8dc8033 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_datc/datc_main.c @@ -0,0 +1,1402 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application for Nordic-ble. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "dm_api.h" +#include "dm_priv.h" +#include "gap/gap_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_cfg.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_core.h" +#include "svc_ch.h" +#include "gatt/gatt_api.h" +#include "wpc/wpc_api.h" +#include "datc_api.h" +#include "util/calc128.h" +#include "pal_btn.h" +#include "pal_uart.h" +#include "tmr.h" +#include "sdsc_api.h" +/************************************************************************************************** +Macros +**************************************************************************************************/ +#if (BT_VER > 8) +/* PHY Test Modes */ +#define DATC_PHY_1M 1 +#define DATC_PHY_2M 2 +#define DATC_PHY_CODED 3 +#endif /* BT_VER */ + +#define SPEED_TEST_COUNT 5000 + +/* Max value is 238 */ +#define SPEED_TEST_PACKET_LEN 238 +#define SPEED_TEST_TMR MXC_TMR3 + +#define SCAN_START_EVT 0x99 +#define SCAN_START_MS 500 + +/* Down sample the number of scan reports we print */ +#define SCAN_REPORT_DOWN_SAMPLE 20 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR2 + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +struct { + uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ + wsfHandlerId_t handlerId; /*! WSF hander ID */ + bool_t scanning; /*! TRUE if scanning */ + bool_t autoConnect; /*! TRUE if auto-connecting */ + uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ + uint8_t hdlListLen; /*! Cached handle list length */ + uint8_t btnConnId; /*! The index of the connection ID for button presses */ +#if (BT_VER > 8) + uint8_t phyMode[DM_CONN_MAX]; /*! PHY Test Mode */ +#endif /* BT_VER */ + appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ + unsigned speedTestCounter; + wsfTimer_t scanTimer; /* Timer for starting the scanner */ +} datcCb; + +/*! connection control block */ +typedef struct { + appDbHdl_t dbHdl; /*! Device database record handle type */ + uint8_t addrType; /*! Type of address of device to connect to */ + bdAddr_t addr; /*! Address of device to connect to */ + bool_t doConnect; /*! TRUE to issue connect on scan complete */ +} datcConnInfo_t; + +datcConnInfo_t datcConnInfo; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for master */ +static const appMasterCfg_t datcMasterCfg = { + 96, /*! The scan interval, in 0.625 ms units */ + 48, /*! The scan window, in 0.625 ms units */ + 0, /*! The scan duration in ms */ + DM_DISC_MODE_NONE, /*! The GAP discovery mode */ + DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ +}; + +/*! Configurable security parameters to set +* pairing and authentication requirements. +* +* Authentication and bonding flags +* -DM_AUTH_BOND_FLAG : Bonding requested +* -DM_AUTH_KP_FLAG : Keypress notifications requested +* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested, + pairing method is determined by IO capabilities below +* -DM_AUTH_SC_FLAG : LE Secure Connections requested +* +* Initiator key distribution flags +* -DM_KEY_DIST_LTK : Distribute LTK used for encryption +* -DM_KEY_DIST_IRK : Distribute IRK used for privacy +* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data +*/ +static const appSecCfg_t datcSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/* OOB UART parameters */ +#define OOB_BAUD 115200 +#define OOB_FLOW FALSE + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datcSendOobData = FALSE; + +/* OOB Connection identifier */ +dmConnId_t oobConnId; + +/*! SMP security parameter configuration +* +* I/O Capability Codes to be set for +* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets +* when the MITM flag is set in Configurable security parameters above. +* -SMP_IO_DISP_ONLY : Display only. +* -SMP_IO_DISP_YES_NO : Display yes/no. +* -SMP_IO_KEY_ONLY : Keyboard only. +* -SMP_IO_NO_IN_NO_OUT : No input, no output. +* -SMP_IO_KEY_DISP : Keyboard display. +*/ +static const smpCfg_t datcSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_KEY_ONLY, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! Connection parameters */ +static const hciConnSpec_t datcConnCfg = { + 6, /*! Minimum connection interval in 1.25ms units */ + 6, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 0, /*! Unused */ + 0 /*! Unused */ +}; + +/*! Configurable parameters for service and characteristic discovery */ +static const appDiscCfg_t datcDiscCfg = { + FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ + TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ +}; + +static const appCfg_t datcAppCfg = { + FALSE, /*! TRUE to abort service discovery if service not found */ + TRUE /*! TRUE to disconnect if ATT transaction times out */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datcAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, + 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; + +/************************************************************************************************** + ATT Client Discovery Data +**************************************************************************************************/ + +/*! Discovery states: enumeration of services to be discovered */ +enum { + DATC_DISC_GATT_SVC, /*! GATT service */ + DATC_DISC_GAP_SVC, /*! GAP service */ + DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ + DATC_DISC_SDS_SVC, /*! Secured Data Service */ + DATC_DISC_SVC_MAX /*! Discovery complete */ +}; + +/*! the Client handle list, datcCb.hdlList[], is set as follows: + * + * ------------------------------- <- DATC_DISC_GATT_START + * | GATT svc changed handle | + * ------------------------------- + * | GATT svc changed ccc handle | + * ------------------------------- <- DATC_DISC_GAP_START + * | GAP central addr res handle | + * ------------------------------- + * | GAP RPA Only handle | + * ------------------------------- <- DATC_DISC_WP_START + * | WP handles | + * | ... | + * ------------------------------- + */ + +/*! Start of each service's handles in the the handle list */ +#define DATC_DISC_GATT_START 0 +#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) +#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) +#define DATC_DISC_SDS_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) +#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_SDS_START + SEC_HDL_LIST_LEN) + +/*! Pointers into handle list for each service's handles */ +static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; +static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; +static uint16_t *pSecDatHdlList[DM_CONN_MAX]; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datcOobCfg; + +/************************************************************************************************** + ATT Client Configuration Data +**************************************************************************************************/ + +/* + * Data for configuration after service discovery + */ + +/* Default value for CCC indications */ +const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; + +/* Default value for CCC notifications */ +const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; + +/* Default value for Client Supported Features (enable Robust Caching) */ +const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; + +/* List of characteristics to configure after service discovery */ +static const attcDiscCfg_t datcDiscCfgList[] = { + /* Write: GATT service changed ccc descriptor */ + { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: GATT client supported features */ + { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: Proprietary data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, + + /* Write: Secured data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (SEC_DAT_CCC_HDL_IDX + DATC_DISC_SDS_START) }, +}; + +/* Characteristic configuration list length */ +#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) + +/* sanity check: make sure configuration list length is <= handle list length */ +WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); + +/*************************************************************************************************/ +/*! + * \brief OOB RX callback. + * + * \return None. + */ +/*************************************************************************************************/ +void oobRxCback(void) +{ + if (datcOobCfg != NULL) { + DmSecSetOob(oobConnId, datcOobCfg); + } + + DmSecAuthRsp(oobConnId, 0, NULL); +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + uint16_t reportLen; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datcSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + + /* Setup HCI UART for OOB */ + PalUartConfig_t hciUartCfg; + hciUartCfg.rdCback = oobRxCback; + hciUartCfg.wrCback = NULL; + hciUartCfg.baud = OOB_BAUD; + hciUartCfg.hwFlow = OOB_FLOW; + + PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datcOobCfg == NULL) { + datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + memset(datcOobCfg, 0, sizeof(dmSecLescOobCfg_t)); + } + + if (datcOobCfg) { + Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); + + /* Start the RX for the peer OOB data */ + PalUartReadData(PAL_UART_ID_CHCI, datcOobCfg->peerRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + } else { + APP_TRACE_ERR0("Error allocating OOB data"); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + reportLen = pDmEvt->scanReport.len; + } else { + reportLen = 0; + } + + if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { + memcpy(pMsg, pDmEvt, len); + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); + memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); + } + WsfMsgSend(datcCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datcCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning handler. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanningHandler(void) +{ + datcCb.autoConnect = TRUE; + datcConnInfo.doConnect = FALSE; + AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanning(void) +{ + /* Start the scanning start timer */ + WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan start. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStart(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan stop. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStop(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + + /* Open connection */ + if (datcConnInfo.doConnect) { + AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); + datcConnInfo.doConnect = FALSE; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Print the name value from a scan report. + * + * \param name Pointer to name parameter from a scan report. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrintName(uint8_t *name) +{ + /* Allocate a buffer for the device name */ + uint8_t *printBuf; + printBuf = WsfBufAlloc(name[DM_AD_LEN_IDX]); + + if (printBuf != NULL) { + /* Copy in the data and null terminate the string */ + memcpy(printBuf, &name[DM_AD_DATA_IDX], name[DM_AD_LEN_IDX] - 1); + printBuf[name[DM_AD_LEN_IDX] - 1] = 0; + + APP_TRACE_INFO1(" Name: %s", printBuf); + WsfBufFree(printBuf); + } +} + +/*************************************************************************************************/ +/*! + * \brief Print the contents of a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrintScanReport(dmEvt_t *pMsg) +{ +#if WSF_TRACE_ENABLED == TRUE + uint8_t *pData; + + APP_TRACE_INFO0("Scan Report:"); + WsfTrace(" %02x:%02x:%02x:%02x:%02x:%02x", pMsg->scanReport.addr[5], pMsg->scanReport.addr[4], + pMsg->scanReport.addr[3], pMsg->scanReport.addr[2], pMsg->scanReport.addr[1], + pMsg->scanReport.addr[0]); + + if ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL) { + datcPrintName(pData); + } else if ((pData = DmFindAdType(DM_ADV_TYPE_SHORT_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL) { + datcPrintName(pData); + } +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Handle a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanReport(dmEvt_t *pMsg) +{ + uint8_t *pData; + appDbHdl_t dbHdl; + bool_t connect = FALSE; + + /* disregard if not scanning or autoconnecting */ + if (!datcCb.scanning || !datcCb.autoConnect) { + return; + } + + /* if we already have a bond with this device then connect to it */ + if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != + APP_DB_HDL_NONE) { + /* if this is a directed advertisement where the initiator address is an RPA */ + if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { + /* resolve direct address to see if it's addressed to us */ + AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); + } else { + connect = TRUE; + } + } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { + /* if the peer device uses an RPA */ + /* resolve advertiser's RPA to see if we already have a bond with this device */ + AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); + } + + /* find device name */ + if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL)) { + /* check length and device name */ + if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'D') && + (pData[DM_AD_DATA_IDX + 1] == 'A') && (pData[DM_AD_DATA_IDX + 2] == 'T') && + (pData[DM_AD_DATA_IDX + 3] == 'S')) { + connect = TRUE; + } + } + + if (connect) { + datcPrintScanReport(pMsg); + + /* stop scanning and connect */ + datcCb.autoConnect = FALSE; + AppScanStop(); + + /* Store peer information for connect on scan stop */ + datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); + memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); + datcConnInfo.dbHdl = dbHdl; + datcConnInfo.doConnect = TRUE; + } else { + static int scanReportDownSample = 0; + + /* Down sample the number of scan reports we print */ + if (scanReportDownSample++ == SCAN_REPORT_DOWN_SAMPLE) { + scanReportDownSample = 0; + datcPrintScanReport(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection open. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcOpen(dmEvt_t *pMsg) +{ +#if (BT_VER > 8) + datcCb.phyMode[pMsg->hdr.param - 1] = DATC_PHY_1M; +#endif /* BT_VER */ +} + +/*************************************************************************************************/ +/*! + * \brief Process a received ATT notification. + * + * \param pMsg Pointer to ATT callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcValueNtf(attEvt_t *pMsg) +{ + if (pMsg->handle == pSecDatHdlList[pMsg->hdr.param - 1][SEC_DAT_HDL_IDX]) + APP_TRACE_INFO0(">> Notification from secure data service <<<"); + /* print the received data */ + if (datcCb.speedTestCounter == 0) { + APP_TRACE_INFO0((const char *)pMsg->pValue); + } +} + +/*************************************************************************************************/ +/*! + * \brief Set up procedures that need to be performed after device reset. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSetup(dmEvt_t *pMsg) +{ + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + datcConnInfo.doConnect = FALSE; + datcCb.restoringResList = FALSE; + + DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datcSetup(pMsg); + } else { + datcCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datcCb.restoringResList) { + /* Retore next device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datcSetup(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Send example data. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello world"; + + if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send example data to secured charactersitic. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void secDatSendData(dmConnId_t connId) +{ + uint8_t str[] = "Secret number is 0x42"; + + if (pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX], sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief GAP service discovery has completed. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscGapCmpl(dmConnId_t connId) +{ + appDbHdl_t dbHdl; + + /* if RPA Only attribute found on peer device */ + if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { + /* update DB */ + AppDbSetPeerRpao(dbHdl, TRUE); + AppDbNvmStorePeerRpao(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Handler for the speed test. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSpeedTestHandler(dmConnId_t connId) +{ + static uint8_t speedTestData[SPEED_TEST_PACKET_LEN]; + uint16_t handle; + + if (datcCb.speedTestCounter == SPEED_TEST_COUNT) { + unsigned us = MXC_TMR_SW_Stop(SPEED_TEST_TMR); + + /* Calculate the throughput */ + unsigned bits = SPEED_TEST_COUNT * SPEED_TEST_PACKET_LEN * 8; + APP_TRACE_INFO2("%d bits transferred in %d us", bits, us); + + float bps = (float)bits / ((float)us / (float)1000000); + APP_TRACE_INFO1("%d bps", (unsigned)bps); + + /* Reset the counter for the next test */ + datcCb.speedTestCounter = 0; + return; + } + + /* Write the next packet */ + handle = pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX]; + AttcWriteCmd(connId, handle, (uint16_t)SPEED_TEST_PACKET_LEN, speedTestData); + + if (datcCb.speedTestCounter == 0) { + /* Start the throughput timer */ + MXC_TMR_SW_Start(SPEED_TEST_TMR); + } + + datcCb.speedTestCounter++; +} + +/*************************************************************************************************/ +/*! + * \brief Starts the speed test. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcStartSpeedTest(dmConnId_t connId) +{ + if (datcCb.speedTestCounter != 0) { + APP_TRACE_ERR0("Speed test already running"); + return; + } + + APP_TRACE_INFO0("Starting speed test"); + datcSpeedTestHandler(connId); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcBtnCback(uint8_t btn) +{ + dmConnId_t connId = datcCb.btnConnId; + dmConnId_t connIdList[DM_CONN_MAX]; + uint8_t numConnections = AppConnOpenList(connIdList); + + /* button actions when connected */ + if (numConnections > 0) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (numConnections < DM_CONN_MAX - 1) { + /* if scanning cancel scanning */ + if (datcCb.scanning) { + AppScanStop(); + } else if (!datcCb.autoConnect) { + /* else auto connect */ + datcRestartScanning(); + } + } else { + APP_TRACE_INFO0("datcBtnCback: Max connections reached."); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID used in button presses */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* disconnect */ + AppConnClose(connId); + break; + +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + datcCb.phyMode[connId - 1] = DATC_PHY_1M; + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + datcCb.phyMode[connId - 1] = DATC_PHY_2M; + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + datcCb.phyMode[connId - 1] = DATC_PHY_CODED; + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + datcCb.phyMode[connId - 1] = DATC_PHY_CODED; + break; + } + break; + } +#endif /* BT_VER */ + case APP_UI_BTN_2_MED: + secDatSendData(connId); + break; + case APP_UI_BTN_2_LONG: + /* send data */ + datcSendData(connId); + break; + + case APP_UI_BTN_2_EX_LONG: + /* Start the speed test */ + datcStartSpeedTest(connId); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* if scanning cancel scanning */ + if (datcCb.scanning) { + AppScanStop(); + } else if (!datcCb.autoConnect) { + /* else auto connect */ + datcRestartScanning(); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID buttons apply to */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: + /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ + SvcCoreGapAddRpaoCh(); + break; + + case APP_UI_BTN_2_EX_LONG: + /* enable device privacy -- start generating local RPAs every 15 minutes */ + DmDevPrivStart(15 * 60); + + /* set Scanning filter policy to accept directed advertisements with RPAs */ + DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Discovery callback. + * + * \param connId Connection identifier. + * \param status Service or configuration status. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscCback(dmConnId_t connId, uint8_t status) +{ + switch (status) { + case APP_DISC_INIT: + /* set handle list when initialization requested */ + AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_READ_DATABASE_HASH: + /* Read peer's database hash */ + AppDiscReadDatabaseHash(connId); + break; + + case APP_DISC_SEC_REQUIRED: + /* initiate security */ + AppMasterSecurityReq(connId); + break; + + case APP_DISC_START: + /* initialize discovery state */ + datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; + + /* store possible change in cache by hash */ + AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); + + /* discover GATT service */ + GattDiscover(connId, pDatcGattHdlList[connId - 1]); + break; + + case APP_DISC_FAILED: + if (pAppCfg->abortDisc) { + /* if discovery failed for proprietary data service then disconnect */ + if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { + AppConnClose(connId); + break; + } + } + /* Else falls through. */ + + case APP_DISC_CMPL: + /* next discovery state */ + datcCb.discState[connId - 1]++; + + if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { + /* discover GAP service */ + GapDiscover(connId, pDatcGapHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { + /* discover proprietary data service */ + WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_SDS_SVC) { + /* discover secured data service */ + SecDatSvcDiscover(connId, pSecDatHdlList[connId - 1]); + } else { + /* discovery complete */ + AppDiscComplete(connId, APP_DISC_CMPL); + + /* GAP service discovery completed */ + datcDiscGapCmpl(connId); + + /* store cached handle list in NVM */ + AppDbNvmStoreHdlList(AppDbGetHdl(connId)); + + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + } + break; + + case APP_DISC_CFG_START: + case APP_DISC_CFG_CONN_START: + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_CFG_CMPL: + AppDiscComplete(connId, status); + break; + + default: + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTC_WRITE_CMD_RSP: { + if (datcCb.speedTestCounter != 0) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + datcSpeedTestHandler(connId); + } + } break; + + case ATTC_HANDLE_VALUE_NTF: + datcValueNtf((attEvt_t *)pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datcRestoreResolvingList(pMsg); + datcRestartScanning(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_SCAN_START_IND: + datcScanStart(pMsg); + uiEvent = APP_UI_SCAN_START; + break; + + case DM_SCAN_STOP_IND: + datcScanStop(pMsg); + uiEvent = APP_UI_SCAN_STOP; + break; + + case DM_SCAN_REPORT_IND: + datcScanReport(pMsg); + break; + + case DM_CONN_OPEN_IND: + datcOpen(pMsg); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + datcRestartScanning(); + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + APP_TRACE_INFO0("Sending OOB data"); + oobConnId = connId; + + /* Start the TX to send the local OOB data */ + PalUartWriteData(PAL_UART_ID_CHCI, datcOobCfg->localRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datcPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case SCAN_START_EVT: + datcRestartScanningHandler(); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatcHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + + /* store handler ID */ + datcCb.handlerId = handlerId; + + /* set handle list length */ + datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; + + datcCb.btnConnId = 1; + /* Set configuration pointers */ + pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; + pAppSecCfg = (appSecCfg_t *)&datcSecCfg; + pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; + pAppCfg = (appCfg_t *)&datcAppCfg; + pSmpCfg = (smpCfg_t *)&datcSmpCfg; + pAttCfg = (attCfg_t *)&datcAttCfg; + + /* Initialize application framework */ + AppMasterInit(); + AppDiscInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup scan start timer */ + datcCb.scanTimer.handlerId = handlerId; + datcCb.scanTimer.msg.event = SCAN_START_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + if (datcCb.speedTestCounter == 0 && pMsg->event != DM_SCAN_REPORT_IND) { + APP_TRACE_INFO1("Datc got evt %d", pMsg->event); + } + + if (pMsg->event <= ATT_CBACK_END) { /* process ATT messages */ + /* process discovery-related ATT messages */ + AppDiscProcAttMsg((attEvt_t *)pMsg); + + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ + /* process advertising and connection-related messages */ + AppMasterProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppMasterSecProcDmMsg((dmEvt_t *)pMsg); + + /* process discovery-related messages */ + AppDiscProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datcProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the pointers into the handle list. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcInitSvcHdlList() +{ + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++) { + /*! Pointers into handle list for each service's handles */ + pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; + pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; + pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; + pSecDatHdlList[i] = &datcCb.hdlList[i][DATC_DISC_SDS_START]; + } +} +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void) +{ + /* Initialize handle pointers */ + datcInitSvcHdlList(); + + /* Register for stack callbacks */ + DmRegister(datcDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); + AttRegister(datcAttCback); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datcBtnCback); + + /* Register for app framework discovery callbacks */ + AppDiscRegister(datcDiscCback); + + /* Initialize attribute server database */ + SvcCoreAddGroup(); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_datc/main.c b/Examples/MAX32655/Bluetooth/BLE_datc/main.c new file mode 100644 index 00000000000..4c2326dcbf2 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_datc/main.c @@ -0,0 +1,279 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE Data Client for unformatted data exchange. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "datc_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDatc(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(MXC_WUT0); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> + MXC_F_TRIMSIR_RTC_X1TRIM_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Increase the default ACL buffer size and count */ + mainLlRtCfg.numTxBufs = 8; + mainLlRtCfg.numRxBufs = 8; + mainLlRtCfg.maxAclLen = 256; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDatc(); + DatcStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/BLE_datc/project.mk b/Examples/MAX32655/Bluetooth/BLE_datc/project.mk similarity index 100% rename from Examples/MAX32655/BLE_datc/project.mk rename to Examples/MAX32655/Bluetooth/BLE_datc/project.mk diff --git a/Examples/MAX32655/Bluetooth/BLE_datc/sdsc_api.h b/Examples/MAX32655/Bluetooth/BLE_datc/sdsc_api.h new file mode 100644 index 00000000000..1e61c069fc4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_datc/sdsc_api.h @@ -0,0 +1,99 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/*************************************************************************************************/ +/*! Secure Data Service Client +* Implements the necessary handles list to perform service +* and characteristic discovery of custom secured service . +* + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_DATC_SDSC_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_DATC_SDSC_API_H_ + +#include "att_api.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ +enum { + SEC_DAT_HDL_IDX, /*!< \brief Secured data */ + SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ + SEC_HDL_LIST_LEN /*!< \brief Handle list length */ +}; + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for Secured service . + * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_DATC_SDSC_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_datc/sdsc_main.c b/Examples/MAX32655/Bluetooth/BLE_datc/sdsc_main.c new file mode 100644 index 00000000000..5a8af6c5d4c --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_datc/sdsc_main.c @@ -0,0 +1,110 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_assert.h" +#include "util/bstream.h" +#include "app_api.h" +#include "sdsc_api.h" + +/************************************************************************************************** + Secure Service and Data UUIDs +**************************************************************************************************/ +#define ATT_UUID_SEC_DATA_SERVICE \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_SEC_DATA \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/* UUIDs */ +static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ +static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ + +/* Characteristics for discovery */ + +/*! Secured data */ +static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; + +/*! Secured data descriptor */ +static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, + ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; + +/*! List of characteristics to be discovered; order matches handle index enumeration */ +static const attcDiscChar_t *secDatDiscCharList[] = { + &secDat, /*! Secured data */ + &secDatCcc /*! Secured data descriptor */ +}; + +/* sanity check: make sure handle list length matches characteristic list length */ +WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for custom secured service . + * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) +{ + AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, + (attcDiscChar_t **)secDatDiscCharList, pHdlList); +} diff --git a/Examples/MAX32655/BLE_datc/stack_datc.c b/Examples/MAX32655/Bluetooth/BLE_datc/stack_datc.c similarity index 100% rename from Examples/MAX32655/BLE_datc/stack_datc.c rename to Examples/MAX32655/Bluetooth/BLE_datc/stack_datc.c diff --git a/Examples/MAX32655/BLE_dats/.cproject b/Examples/MAX32655/Bluetooth/BLE_dats/.cproject similarity index 100% rename from Examples/MAX32655/BLE_dats/.cproject rename to Examples/MAX32655/Bluetooth/BLE_dats/.cproject diff --git a/Examples/MAX32655/BLE_dats/.project b/Examples/MAX32655/Bluetooth/BLE_dats/.project similarity index 100% rename from Examples/MAX32655/BLE_dats/.project rename to Examples/MAX32655/Bluetooth/BLE_dats/.project diff --git a/Examples/MAX32650/USB_HIDKeyboard/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_dats/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_dats/.settings/language.settings.xml diff --git a/Examples/MAX32650/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_dats/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_dats/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_dats/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_dats/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_dats/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_dats/.vscode/README.md diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/FreeRTOSDemo/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_dats/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/FreeRTOSDemo/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_dats/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_dats/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_dats/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_dats/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_dats/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_dats/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_dats/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_dats/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_dats/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_dats/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_dats/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_dats/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_dats/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_dats/ARM/Abstract.txt b/Examples/MAX32655/Bluetooth/BLE_dats/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32655/BLE_dats/ARM/Abstract.txt rename to Examples/MAX32655/Bluetooth/BLE_dats/ARM/Abstract.txt diff --git a/Examples/MAX32655/BLE_dats/ARM/BLE.sct b/Examples/MAX32655/Bluetooth/BLE_dats/ARM/BLE.sct similarity index 100% rename from Examples/MAX32655/BLE_dats/ARM/BLE.sct rename to Examples/MAX32655/Bluetooth/BLE_dats/ARM/BLE.sct diff --git a/Examples/MAX32655/BLE_dats/ARM/BTLE_fit.uvoptx b/Examples/MAX32655/Bluetooth/BLE_dats/ARM/BTLE_fit.uvoptx similarity index 100% rename from Examples/MAX32655/BLE_dats/ARM/BTLE_fit.uvoptx rename to Examples/MAX32655/Bluetooth/BLE_dats/ARM/BTLE_fit.uvoptx diff --git a/Examples/MAX32655/BLE_dats/ARM/BTLE_fit.uvprojx b/Examples/MAX32655/Bluetooth/BLE_dats/ARM/BTLE_fit.uvprojx similarity index 100% rename from Examples/MAX32655/BLE_dats/ARM/BTLE_fit.uvprojx rename to Examples/MAX32655/Bluetooth/BLE_dats/ARM/BTLE_fit.uvprojx diff --git a/Examples/MAX32655/BLE_dats/ARM/EventRecorderStub.scvd b/Examples/MAX32655/Bluetooth/BLE_dats/ARM/EventRecorderStub.scvd similarity index 100% rename from Examples/MAX32655/BLE_dats/ARM/EventRecorderStub.scvd rename to Examples/MAX32655/Bluetooth/BLE_dats/ARM/EventRecorderStub.scvd diff --git a/Examples/MAX32655/BLE_dats/BLE_dats.launch b/Examples/MAX32655/Bluetooth/BLE_dats/BLE_dats.launch similarity index 100% rename from Examples/MAX32655/BLE_dats/BLE_dats.launch rename to Examples/MAX32655/Bluetooth/BLE_dats/BLE_dats.launch diff --git a/Examples/MAX32655/BLE_dats/IAR/BLE_fit.ewd b/Examples/MAX32655/Bluetooth/BLE_dats/IAR/BLE_fit.ewd similarity index 100% rename from Examples/MAX32655/BLE_dats/IAR/BLE_fit.ewd rename to Examples/MAX32655/Bluetooth/BLE_dats/IAR/BLE_fit.ewd diff --git a/Examples/MAX32655/BLE_dats/IAR/BLE_fit.ewp b/Examples/MAX32655/Bluetooth/BLE_dats/IAR/BLE_fit.ewp similarity index 100% rename from Examples/MAX32655/BLE_dats/IAR/BLE_fit.ewp rename to Examples/MAX32655/Bluetooth/BLE_dats/IAR/BLE_fit.ewp diff --git a/Examples/MAX32655/Bluetooth/BLE_dats/Makefile b/Examples/MAX32655/Bluetooth/BLE_dats/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_dats/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_dats/README.md b/Examples/MAX32655/Bluetooth/BLE_dats/README.md similarity index 100% rename from Examples/MAX32655/BLE_dats/README.md rename to Examples/MAX32655/Bluetooth/BLE_dats/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_dats/dats_api.h b/Examples/MAX32655/Bluetooth/BLE_dats/dats_api.h new file mode 100644 index 00000000000..fe7e1b2fe38 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_dats/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_DATS_DATS_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_DATS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_dats/dats_main.c b/Examples/MAX32655/Bluetooth/BLE_dats/dats_main.c new file mode 100644 index 00000000000..0bab2fd13f0 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_dats/dats_main.c @@ -0,0 +1,1031 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "pal_uart.h" +#include "tmr.h" +#include "svc_sds.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_1M 1 +#define DATS_PHY_2M 2 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 60000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_SEC_DAT_CCC_IDX, + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! Configurable security parameters to set +* pairing and authentication requirements. +* +* Authentication and bonding flags +* -DM_AUTH_BOND_FLAG : Bonding requested +* -DM_AUTH_SC_FLAG : LE Secure Connections requested +* -DM_AUTH_KP_FLAG : Keypress notifications requested +* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested + pairing method is determined by IO capabilities below +* +* Initiator key distribution flags +* -DM_KEY_DIST_LTK : Distribute LTK used for encryption +* -DM_KEY_DIST_IRK : Distribute IRK used for privacy +* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data +*/ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG | DM_AUTH_MITM_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/* OOB UART parameters */ +#define OOB_BAUD 115200 +#define OOB_FLOW FALSE + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/* OOB Connection identifier */ +dmConnId_t oobConnId; + +/*! SMP security parameter configuration +* +* I/O Capability Codes to be set for +* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets +* when the MITM flag is set in Configurable security parameters above. +* -SMP_IO_DISP_ONLY : Display only. +* -SMP_IO_DISP_YES_NO : Display yes/no. +* -SMP_IO_KEY_ONLY : Keyboard only. +* -SMP_IO_NO_IN_NO_OUT : No input, no output. +* -SMP_IO_KEY_DISP : Keyboard display. +*/ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_KEY_ONLY, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update. set to zero to disable */ + (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'D', + 'A', + 'T', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* DATS_WP_DAT_CCC_IDX */ + { SEC_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_SEC_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief OOB RX callback. + * + * \return None. + */ +/*************************************************************************************************/ +void oobRxCback(void) +{ + if (datsOobCfg != NULL) { + DmSecSetOob(oobConnId, datsOobCfg); + } + + DmSecAuthRsp(oobConnId, 0, NULL); +} + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello back"; + + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + + /* Setup HCI UART for OOB */ + PalUartConfig_t hciUartCfg; + hciUartCfg.rdCback = oobRxCback; + hciUartCfg.wrCback = NULL; + hciUartCfg.baud = OOB_BAUD; + hciUartCfg.hwFlow = OOB_FLOW; + + PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + memset(datsOobCfg, 0, sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + + /* Start the RX for the peer OOB data */ + PalUartReadData(PAL_UART_ID_CHCI, datsOobCfg->peerRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + } else { + APP_TRACE_ERR0("Error allocating OOB data"); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datsCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + static uint32_t packetCount = 0; + + if (len < 64) { + /* print received data if not a speed test message */ + APP_TRACE_INFO0((const char *)pValue); + + /* send back some data */ + datsSendData(connId); + } else { + APP_TRACE_INFO1("Speed test packet Count [%d]", packetCount++); + if (packetCount >= 5000) { + packetCount = 0; + } + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for secured data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t secDatWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + uint8_t str[] = "Secure data received!"; + APP_TRACE_INFO0(">> Received secure data <<"); + APP_TRACE_INFO0((const char *)pValue); + + /* Write data recevied into characteristic */ + AttsSetAttr(SEC_DAT_HDL, len, (uint8_t *)pValue); + /* if notifications are enabled send one */ + if (AttsCccEnabled(connId, DATS_SEC_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, SEC_DAT_HDL, sizeof(str), str); + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + if (datsSecCfg.initiateSec) { + AppSlaveSecurityReq((dmConnId_t)pMsg->hdr.param); + } + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + APP_TRACE_INFO0("Sending OOB data"); + oobConnId = connId; + + /* Start the TX to send the local OOB data */ + PalUartWriteData(PAL_UART_ID_CHCI, datsOobCfg->localRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /*register secure data write callback */ + SvcSecDataCbackRegister(NULL, secDatWriteCback); + /* Register secure data service */ + SvcSecDataAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_dats/main.c b/Examples/MAX32655/Bluetooth/BLE_dats/main.c new file mode 100644 index 00000000000..57d45ee6509 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_dats/main.c @@ -0,0 +1,275 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE Data Server for unformatted data exchange. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "dats_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDats(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(MXC_WUT0); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> + MXC_F_TRIMSIR_RTC_X1TRIM_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDats(); + DatsStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/BLE_dats/project.mk b/Examples/MAX32655/Bluetooth/BLE_dats/project.mk similarity index 100% rename from Examples/MAX32655/BLE_dats/project.mk rename to Examples/MAX32655/Bluetooth/BLE_dats/project.mk diff --git a/Examples/MAX32655/Bluetooth/BLE_dats/services/svc_sds.c b/Examples/MAX32655/Bluetooth/BLE_dats/services/svc_sds.c new file mode 100644 index 00000000000..ee4c2ed527c --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_dats/services/svc_sds.c @@ -0,0 +1,176 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#include "wsf_types.h" +#include "att_api.h" +#include "wsf_trace.h" +#include "util/bstream.h" +#include "svc_ch.h" +#include "svc_sds.h" +#include "svc_cfg.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Characteristic read/write permissions */ +#ifndef SEC_DATA_PERMIT_READ +#define SEC_DATA_PERMIT_READ SVC_SEC_PERMIT_READ +#endif + +#ifndef SEC_DATA_PERMIT_READ_ENC +#define SEC_DATA_PERMIT_READ_ENC ATTS_PERMIT_READ_ENC +#endif + +#ifndef SEC_DATA_PERMIT_READ_AUTH +#define SEC_DATA_PERMIT_READ_AUTH ATTS_PERMIT_READ_AUTH +#endif + +#ifndef SEC_DATA_PERMIT_WRITE +#define SEC_DATA_PERMIT_WRITE SVC_SEC_PERMIT_WRITE +#endif + +#ifndef SEC_DATA_PERMIT_WRITE_ENC +#define SEC_DATA_PERMIT_WRITE_ENC ATTS_PERMIT_WRITE_ENC +#endif + +#ifndef SEC_DATA_PERMIT_WRITE_AUTH +#define SEC_DATA_PERMIT_WRITE_AUTH ATTS_PERMIT_WRITE_AUTH +#endif + +/************************************************************************************************** + Static Variables +**************************************************************************************************/ + +/* UUIDs */ +static const uint8_t svcSecDatUuid[] = { ATT_UUID_SEC_DATA }; + +/* Proprietary service declaration */ +static const uint8_t secDatSvc[] = { ATT_UUID_SEC_DATA_SERVICE }; +static const uint16_t secDatLenSvc = sizeof(secDatSvc); + +/* Secured data characteristic */ +static const uint8_t secDatCh[] = { ATT_PROP_NOTIFY | ATT_PROP_WRITE_NO_RSP | ATT_PROP_WRITE, + UINT16_TO_BYTES(SEC_DAT_HDL), ATT_UUID_SEC_DATA }; + +static const uint16_t secDatLenDatCh = sizeof(secDatCh); + +/* Secured data */ +static const uint8_t secDatVal[] = { 0 }; +static const uint16_t secDatLenDat = sizeof(secDatVal); + +/* Secured data client characteristic configuration */ +static uint8_t secDatChCcc[] = { UINT16_TO_BYTES(0x0000) }; +static const uint16_t secDatLenDatChCcc = sizeof(secDatChCcc); + +/* Attribute list for Secured Data group */ +static const attsAttr_t secDatList[] = { + /* Service declaration */ + { attPrimSvcUuid, (uint8_t *)secDatSvc, (uint16_t *)&secDatLenSvc, sizeof(secDatSvc), 0, + ATTS_PERMIT_READ }, + + /* Secure data characteristic declaration */ + { attChUuid, (uint8_t *)secDatCh, (uint16_t *)&secDatLenDatCh, sizeof(secDatCh), 0, + ATTS_PERMIT_READ }, + + /* Secure data characteristic value */ + { svcSecDatUuid, (uint8_t *)secDatVal, (uint16_t *)&secDatLenDat, ATT_VALUE_MAX_LEN, + (ATTS_SET_UUID_128 | ATTS_SET_VARIABLE_LEN | ATTS_SET_WRITE_CBACK), + SEC_DATA_PERMIT_WRITE | SEC_DATA_PERMIT_WRITE_ENC | SEC_DATA_PERMIT_WRITE_AUTH }, + + /*Secure data characteristic value descriptor*/ + { attCliChCfgUuid, (uint8_t *)secDatChCcc, (uint16_t *)&secDatLenDatChCcc, sizeof(secDatChCcc), + ATTS_SET_CCC, (ATTS_PERMIT_READ | ATTS_PERMIT_WRITE) } +}; + +/* Secured Data group structure */ +static attsGroup_t svcSecDatGroup = { NULL, (attsAttr_t *)secDatList, NULL, + NULL, SEC_DATA_START_HDL, SEC_DATA_END_HDL }; + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataAddGroup(void) +{ + AttsAddGroup(&svcSecDatGroup); +} + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataRemoveGroup(void) +{ + AttsRemoveGroup(SEC_DATA_START_HDL); +} + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) +{ + svcSecDatGroup.readCback = readCback; + svcSecDatGroup.writeCback = writeCback; +} diff --git a/Examples/MAX32655/Bluetooth/BLE_dats/services/svc_sds.h b/Examples/MAX32655/Bluetooth/BLE_dats/services/svc_sds.h new file mode 100644 index 00000000000..c4cdef61133 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_dats/services/svc_sds.h @@ -0,0 +1,138 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/*************************************************************************************************/ +/*! Secure Data Service +* Implementation of a characteristic with elevated security features. +* The connection must be encrypted with an authenticated key to read/write +* the attributes value. +* + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Service and Characteristic UUIDs +**************************************************************************************************/ +#define ATT_UUID_SEC_DATA_SERVICE \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_SEC_DATA \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 + +/************************************************************************************************** + Handle Ranges +**************************************************************************************************/ +/*! \brief Secured Data Service */ +#define SEC_DATA_START_HDL 0x300 /*!< \brief Start handle. */ +#define SEC_DATA_END_HDL (SEC_DAT_MAX_HDL - 1) /*!< \brief End handle. */ + +/************************************************************************************************** + Handles +**************************************************************************************************/ + +/*! \brief Secured Service Handles */ +enum { + SEC_DATA_SVC_HDL = SEC_DATA_START_HDL, /*!< \brief Secured Data service declaration */ + SEC_DAT_CH_HDL, /*!< \brief Secured Data characteristic */ + SEC_DAT_HDL, /*!< \brief Secured Data */ + SEC_DAT_CH_CCC_HDL, /*!< \brief Secured Data client characteristic configuration */ + SEC_DAT_MAX_HDL /*!< \brief Maximum handle. */ +}; +/**@}*/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataAddGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataRemoveGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); + +/*! \} */ /* WP_SERVICE */ + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ diff --git a/Examples/MAX32655/BLE_dats/stack_dats.c b/Examples/MAX32655/Bluetooth/BLE_dats/stack_dats.c similarity index 100% rename from Examples/MAX32655/BLE_dats/stack_dats.c rename to Examples/MAX32655/Bluetooth/BLE_dats/stack_dats.c diff --git a/Examples/MAX32655/BLE_fcc/.cproject b/Examples/MAX32655/Bluetooth/BLE_fcc/.cproject similarity index 100% rename from Examples/MAX32655/BLE_fcc/.cproject rename to Examples/MAX32655/Bluetooth/BLE_fcc/.cproject diff --git a/Examples/MAX32655/BLE_fcc/.project b/Examples/MAX32655/Bluetooth/BLE_fcc/.project similarity index 100% rename from Examples/MAX32655/BLE_fcc/.project rename to Examples/MAX32655/Bluetooth/BLE_fcc/.project diff --git a/Examples/MAX32650/USB_MassStorage/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_fcc/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_fcc/.settings/language.settings.xml diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_fcc/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_fcc/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_fcc/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_fcc/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/README.md diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/c_cpp_properties.json old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/GPIO/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/GPIO/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_fcc/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_fcc/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_fcc/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_fcc/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_fcc/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_fcc/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_fcc/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_fcc/BLE_fcc.launch b/Examples/MAX32655/Bluetooth/BLE_fcc/BLE_fcc.launch similarity index 100% rename from Examples/MAX32655/BLE_fcc/BLE_fcc.launch rename to Examples/MAX32655/Bluetooth/BLE_fcc/BLE_fcc.launch diff --git a/Examples/MAX32655/Bluetooth/BLE_fcc/Makefile b/Examples/MAX32655/Bluetooth/BLE_fcc/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fcc/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_fcc/README.md b/Examples/MAX32655/Bluetooth/BLE_fcc/README.md similarity index 100% rename from Examples/MAX32655/BLE_fcc/README.md rename to Examples/MAX32655/Bluetooth/BLE_fcc/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_fcc/main.c b/Examples/MAX32655/Bluetooth/BLE_fcc/main.c new file mode 100644 index 00000000000..6149e1fdc4a --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fcc/main.c @@ -0,0 +1,535 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief BLE project with simple serial console for FCC testing + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "tmr.h" + +/************************************************************************************************** + Definitions +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define FREQ_HOP_PERIOD_US 20000 + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +static uint8_t phy = LL_PHY_LE_1M; +static uint8_t phy_str[16]; +static uint8_t txFreqHopCh; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Physical layer functions. */ +extern void llc_api_set_txpower(int8_t power); +extern void dbb_seq_select_rf_channel(uint32_t rf_channel); +extern void llc_api_tx_ldo_setup(void); +extern void dbb_seq_tx_enable(void); +extern void dbb_seq_tx_disable(void); + +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPhyStr(uint8_t phy) +{ + switch (phy) { + case LL_TEST_PHY_LE_1M: + default: + memcpy(phy_str, "1M PHY", 7); + break; + case LL_TEST_PHY_LE_2M: + memcpy(phy_str, "2M PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S8: + memcpy(phy_str, "S8 PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S2: + memcpy(phy_str, "S2 PHY", 7); + break; + } + return phy_str; +} + +/*************************************************************************************************/ +/*! + * \fn Timer 2 interrupts handler. + * + * \brief Controls the frequency hopping. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void TMR2_IRQHandler(void) +{ + int res; + + MXC_TMR_TO_Clear(MXC_TMR2); + + /* Start the next channel */ + res = LlEnhancedTxTest(txFreqHopCh++, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + if (res != LL_SUCCESS) + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + + /* Wrap the channels */ + if (txFreqHopCh == 40) + txFreqHopCh = 0; + + /* Restart the timeout */ + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); + MXC_TMR_EnableInt(MXC_TMR2); +} + +/*************************************************************************************************/ +/*! + * \fn Usage statement + * + * \brief Prints the usage statement. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void printUsage(void) +{ + APP_TRACE_INFO0("Usage: "); + APP_TRACE_INFO0(" (0) Transmit on RF channel 0 (2402 MHz)"); + APP_TRACE_INFO0(" (1) Transmit on RF channel 19 (2440 MHz)"); + APP_TRACE_INFO0(" (2) Transmit on RF channel 39 (2480 MHz)"); + APP_TRACE_INFO0(" (3) Receive on RF channel 39 (2480 MHz)"); + APP_TRACE_INFO0(" (4) Set Transmit power"); + APP_TRACE_INFO0(" (5) Enable constant TX"); + APP_TRACE_INFO0(" (6) Disable constant TX -- MUST be called after (5)"); + /* APP_TRACE_INFO0(" (7) Set PA value"); */ + APP_TRACE_INFO0(" (8) Set PHY"); + APP_TRACE_INFO0(" (9) TX Frequency Hop"); + APP_TRACE_INFO0(" (e) End transmission -- MUST be used after each (0-3, 9)"); + APP_TRACE_INFO0(" (u) Print usage"); +} + +/*************************************************************************************************/ +/*! + * \fn Process the Console RX + * + * \brief State machine for the console inputs. + * + * \param rxByte Character received from the console. + * + * \return None. + */ +/*************************************************************************************************/ +static void processConsoleRX(uint8_t rxByte) +{ + int res; + + /* Holds the state of the command and the parameter */ + static uint8_t cmd = 0; + static uint8_t param = 0; + + /* Determines if the incoming character is a command or a parameter */ + if (cmd == 0) + cmd = rxByte; + else + param = rxByte; + + switch (cmd) { + case '0': + + APP_TRACE_INFO1("Transmit RF channel 0, 255 bytes/pkt, 0xAA, %s, forever ..", + getPhyStr(phy)); + res = LlEnhancedTxTest(0, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '1': + + APP_TRACE_INFO1("Transmit RF channel 19, 255 bytes/pkt, 0xAA, %s, forever ..", + getPhyStr(phy)); + res = LlEnhancedTxTest(19, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '2': + + APP_TRACE_INFO1("Transmit RF channel 39, 255 bytes/pkt, 0xAA, %s, forever ..", + getPhyStr(phy)); + res = LlEnhancedTxTest(39, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '3': + + APP_TRACE_INFO1("Receive RF channel 39, %s, forever ..", getPhyStr(phy)); + res = LlEnhancedRxTest(39, phy, 0, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '4': + + if (param == 0) { + APP_TRACE_INFO0("Select transmit power"); + APP_TRACE_INFO0(" 0: -10 dBm"); + APP_TRACE_INFO0(" 1: 0 dBm"); + APP_TRACE_INFO0(" 2: 4.5 dBm"); + break; + } + + switch (param) { + case '0': + llc_api_set_txpower(-10); + LlSetAdvTxPower(-10); + APP_TRACE_INFO0("Power set to -10 dBm"); + break; + case '1': + llc_api_set_txpower(0); + LlSetAdvTxPower(0); + APP_TRACE_INFO0("Power set to 0 dBm"); + break; + case '2': + llc_api_set_txpower(4); + LlSetAdvTxPower(4); + APP_TRACE_INFO0("Power set to 4.5 dBm"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + cmd = 0; + param = 0; + break; + + case '5': + if (param == 0) { + APP_TRACE_INFO0("Select transmit channel"); + APP_TRACE_INFO0(" 0: 0"); + APP_TRACE_INFO0(" 1: 19"); + APP_TRACE_INFO0(" 2: 39"); + break; + } + + switch (param) { + case '0': + dbb_seq_select_rf_channel(0); + APP_TRACE_INFO0("Channel set to 0"); + break; + case '1': + dbb_seq_select_rf_channel(19); + APP_TRACE_INFO0("Channel set to 19"); + break; + case '2': + dbb_seq_select_rf_channel(39); + APP_TRACE_INFO0("Channel set to 39"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + + APP_TRACE_INFO0("Starting TX"); + + PalBbEnable(); + + llc_api_tx_ldo_setup(); + + /* Enable constant TX */ + dbb_seq_tx_enable(); + + cmd = 0; + param = 0; + break; + + case '6': + APP_TRACE_INFO0("Disabling TX"); + + /* Disable constant TX */ + dbb_seq_tx_disable(); + + PalBbDisable(); + + cmd = 0; + break; + + case '8': + if (param == 0) { + /* Set the PHY */ + APP_TRACE_INFO0("Select PHY"); + APP_TRACE_INFO0("1: 1M"); + APP_TRACE_INFO0("2: 2M"); + APP_TRACE_INFO0("3: S8"); + APP_TRACE_INFO0("4: S2"); + break; + } + + switch (param) { + case '1': + phy = LL_TEST_PHY_LE_1M; + APP_TRACE_INFO0("PHY set to 1M"); + break; + case '2': + phy = LL_TEST_PHY_LE_2M; + APP_TRACE_INFO0("PHY set to 2M"); + break; + case '3': + phy = LL_TEST_PHY_LE_CODED_S8; + APP_TRACE_INFO0("PHY set to S8"); + break; + case '4': + phy = LL_TEST_PHY_LE_CODED_S2; + APP_TRACE_INFO0("PHY set to S2"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + + cmd = 0; + param = 0; + break; + case '9': + /* Frequency hopping TX */ + APP_TRACE_INFO0("Starting frequency hopping"); + NVIC_EnableIRQ(TMR2_IRQn); + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); + MXC_TMR_EnableInt(MXC_TMR2); + cmd = 0; + break; + + case 'E': + case 'e': + + APP_TRACE_INFO0("End test"); + MXC_TMR_Stop(MXC_TMR2); + LlEndTest(NULL); + cmd = 0; + break; + + case 'U': + case 'u': + printUsage(); + cmd = 0; + break; + + default: + APP_TRACE_INFO0("Invalid selection"); + cmd = 0; + param = 0; + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.1 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; +#if (BT_VER > 9) + /* Use single pool for data buffers. */ + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) + eventPending = WsfTokenService(); +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) + eventPending = LhciSnifferHandler(); +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + + /* Register the UART RX request */ + WsfBufIoUartRegister(processConsoleRX); + + printUsage(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/BLE_fcc/project.mk b/Examples/MAX32655/Bluetooth/BLE_fcc/project.mk similarity index 100% rename from Examples/MAX32655/BLE_fcc/project.mk rename to Examples/MAX32655/Bluetooth/BLE_fcc/project.mk diff --git a/Examples/MAX32655/BLE_fit/.cproject b/Examples/MAX32655/Bluetooth/BLE_fit/.cproject similarity index 100% rename from Examples/MAX32655/BLE_fit/.cproject rename to Examples/MAX32655/Bluetooth/BLE_fit/.cproject diff --git a/Examples/MAX32655/BLE_fit/.project b/Examples/MAX32655/Bluetooth/BLE_fit/.project similarity index 100% rename from Examples/MAX32655/BLE_fit/.project rename to Examples/MAX32655/Bluetooth/BLE_fit/.project diff --git a/Examples/MAX32655/BLE4_ctr/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_fit/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_fit/.settings/language.settings.xml diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_fit/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_fit/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_fit/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_fit/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_fit/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_fit/.vscode/README.md diff --git a/Examples/MAX32650/USB_HIDKeyboard/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_fit/.vscode/c_cpp_properties.json old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_fit/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/HTMR/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_fit/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/HTMR/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_fit/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_fit/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_fit/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_fit/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_fit/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_fit/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_fit/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_fit/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_fit/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_fit/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_fit/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_fit/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_fit/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_fit/ARM/Abstract.txt b/Examples/MAX32655/Bluetooth/BLE_fit/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32655/BLE_fit/ARM/Abstract.txt rename to Examples/MAX32655/Bluetooth/BLE_fit/ARM/Abstract.txt diff --git a/Examples/MAX32655/BLE_fit/ARM/BLE.sct b/Examples/MAX32655/Bluetooth/BLE_fit/ARM/BLE.sct similarity index 100% rename from Examples/MAX32655/BLE_fit/ARM/BLE.sct rename to Examples/MAX32655/Bluetooth/BLE_fit/ARM/BLE.sct diff --git a/Examples/MAX32655/BLE_fit/ARM/BTLE_fit.uvoptx b/Examples/MAX32655/Bluetooth/BLE_fit/ARM/BTLE_fit.uvoptx similarity index 100% rename from Examples/MAX32655/BLE_fit/ARM/BTLE_fit.uvoptx rename to Examples/MAX32655/Bluetooth/BLE_fit/ARM/BTLE_fit.uvoptx diff --git a/Examples/MAX32655/BLE_fit/ARM/BTLE_fit.uvprojx b/Examples/MAX32655/Bluetooth/BLE_fit/ARM/BTLE_fit.uvprojx similarity index 100% rename from Examples/MAX32655/BLE_fit/ARM/BTLE_fit.uvprojx rename to Examples/MAX32655/Bluetooth/BLE_fit/ARM/BTLE_fit.uvprojx diff --git a/Examples/MAX32655/BLE_fit/ARM/EventRecorderStub.scvd b/Examples/MAX32655/Bluetooth/BLE_fit/ARM/EventRecorderStub.scvd similarity index 100% rename from Examples/MAX32655/BLE_fit/ARM/EventRecorderStub.scvd rename to Examples/MAX32655/Bluetooth/BLE_fit/ARM/EventRecorderStub.scvd diff --git a/Examples/MAX32655/BLE_fit/BLE_fit.launch b/Examples/MAX32655/Bluetooth/BLE_fit/BLE_fit.launch similarity index 100% rename from Examples/MAX32655/BLE_fit/BLE_fit.launch rename to Examples/MAX32655/Bluetooth/BLE_fit/BLE_fit.launch diff --git a/Examples/MAX32655/BLE_fit/IAR/BLE_fit.ewd b/Examples/MAX32655/Bluetooth/BLE_fit/IAR/BLE_fit.ewd similarity index 100% rename from Examples/MAX32655/BLE_fit/IAR/BLE_fit.ewd rename to Examples/MAX32655/Bluetooth/BLE_fit/IAR/BLE_fit.ewd diff --git a/Examples/MAX32655/BLE_fit/IAR/BLE_fit.ewp b/Examples/MAX32655/Bluetooth/BLE_fit/IAR/BLE_fit.ewp similarity index 100% rename from Examples/MAX32655/BLE_fit/IAR/BLE_fit.ewp rename to Examples/MAX32655/Bluetooth/BLE_fit/IAR/BLE_fit.ewp diff --git a/Examples/MAX32655/Bluetooth/BLE_fit/Makefile b/Examples/MAX32655/Bluetooth/BLE_fit/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_fit/README.md b/Examples/MAX32655/Bluetooth/BLE_fit/README.md similarity index 100% rename from Examples/MAX32655/BLE_fit/README.md rename to Examples/MAX32655/Bluetooth/BLE_fit/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_fit/fit_api.h b/Examples/MAX32655/Bluetooth/BLE_fit/fit_api.h new file mode 100644 index 00000000000..ee0007d2a3e --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit/fit_api.h @@ -0,0 +1,83 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Fitness sample application interface. + * + * Copyright (c) 2011-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FIT_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FIT_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +#ifndef FIT_CONN_MAX +#define FIT_CONN_MAX 1 +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void FitStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FIT_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_fit/fit_main.c b/Examples/MAX32655/Bluetooth/BLE_fit/fit_main.c new file mode 100644 index 00000000000..36ed8feb7c7 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit/fit_main.c @@ -0,0 +1,805 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Fitness sample application for the following profiles: + * Heart Rate profile + * + * Copyright (c) 2011-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "hci_api.h" +#include "dm_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "app_hw.h" +#include "app_main.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_hrs.h" +#include "svc_dis.h" +#include "svc_batt.h" +#include "svc_rscs.h" +#include "gatt/gatt_api.h" +#include "bas/bas_api.h" +#include "hrps/hrps_api.h" +#include "rscp/rscp_api.h" +#include "fit_api.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! WSF message event starting value */ +#define FIT_MSG_START 0xA0 + +/* Default Running Speed and Cadence Measurement period (seconds) */ +#define FIT_DEFAULT_RSCM_PERIOD 1 + +/*! WSF message event enumeration */ +enum { + FIT_HR_TIMER_IND = FIT_MSG_START, /*! Heart rate measurement timer expired */ + FIT_BATT_TIMER_IND, /*! Battery measurement timer expired */ + FIT_RUNNING_TIMER_IND /*! Running speed and cadence measurement timer expired */ +}; + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/************************************************************************************************** + Data Types +**************************************************************************************************/ + +/*! Application message type */ +typedef union { + wsfMsgHdr_t hdr; + dmEvt_t dm; + attsCccEvt_t ccc; + attEvt_t att; +} fitMsg_t; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t fitAdvCfg = { + { 60000, 0, 0 }, /*! Advertising durations in ms */ + { 800, 0, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t fitSlaveCfg = { + FIT_CONN_MAX, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t fitSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + 0, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t fitUpdateCfg = { + 6000, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + 640, /*! Minimum connection interval in 1.25ms units */ + 800, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 900, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! heart rate measurement configuration */ +static const hrpsCfg_t fitHrpsCfg = { + 2000 /*! Measurement timer expiration period in ms */ +}; + +/*! battery measurement configuration */ +static const basCfg_t fitBasCfg = { + 30, /*! Battery measurement timer expiration period in seconds */ + 1, /*! Perform battery measurement after this many timer periods */ + 100 /*! Send battery level notification to peer when below this level. */ +}; + +/*! SMP security parameter configuration */ +static const smpCfg_t fitSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t fitAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! tx power */ + 2, /*! length */ + DM_ADV_TYPE_TX_POWER, /*! AD type */ + 0, /*! tx power */ + + /*! service UUID list */ + 9, /*! length */ + DM_ADV_TYPE_16_UUID, /*! AD type */ + UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), + UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), UINT16_TO_BYTES(ATT_UUID_BATTERY_SERVICE) +}; + +/*! scan data, discoverable mode */ +static const uint8_t fitScanDataDisc[] = { + /*! device name */ + 4, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'F', 'i', 't' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! enumeration of client characteristic configuration descriptors */ +enum { + FIT_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + FIT_HRS_HRM_CCC_IDX, /*! Heart rate service, heart rate monitor characteristic */ + FIT_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ + FIT_RSCS_SM_CCC_IDX, /*! Runninc speed and cadence measurement characteristic */ + FIT_NUM_CCC_IDX +}; + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* FIT_GATT_SC_CCC_IDX */ + { HRS_HRM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_HRS_HRM_CCC_IDX */ + { BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_BATT_LVL_CCC_IDX */ + { RSCS_RSM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* FIT_RSCS_SM_CCC_IDX */ +}; + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! WSF handler ID */ +wsfHandlerId_t fitHandlerId; + +/* WSF Timer to send running speed and cadence measurement data */ +wsfTimer_t fitRscmTimer; + +/* Running Speed and Cadence Measurement period - Can be changed at runtime to vary period */ +static uint16_t fitRscmPeriod = FIT_DEFAULT_RSCM_PERIOD; + +/* Heart Rate Monitor feature flags */ +static uint8_t fitHrmFlags = CH_HRM_FLAGS_VALUE_8BIT | CH_HRM_FLAGS_ENERGY_EXP; + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitCccCback(attsCccEvt_t *pEvt) +{ + attsCccEvt_t *pMsg; + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + } + + if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { + memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! +* \brief Send a Running Speed and Cadence Measurement Notification. +* +* \param connId connection ID +* +* \return None. +*/ +/*************************************************************************************************/ +static void fitSendRunningSpeedMeasurement(dmConnId_t connId) +{ + if (AttsCccEnabled(connId, FIT_RSCS_SM_CCC_IDX)) { + static uint8_t walk_run = 1; + + /* TODO: Set Running Speed and Cadence Measurement Parameters */ + + RscpsSetParameter(RSCP_SM_PARAM_SPEED, 1); + RscpsSetParameter(RSCP_SM_PARAM_CADENCE, 2); + RscpsSetParameter(RSCP_SM_PARAM_STRIDE_LENGTH, 3); + RscpsSetParameter(RSCP_SM_PARAM_TOTAL_DISTANCE, 4); + + /* Toggle running/walking */ + walk_run = walk_run ? 0 : 1; + RscpsSetParameter(RSCP_SM_PARAM_STATUS, walk_run); + + RscpsSendSpeedMeasurement(connId); + } + + /* Configure and start timer to send the next measurement */ + fitRscmTimer.msg.event = FIT_RUNNING_TIMER_IND; + fitRscmTimer.msg.status = FIT_RSCS_SM_CCC_IDX; + fitRscmTimer.handlerId = fitHandlerId; + fitRscmTimer.msg.param = connId; + + WsfTimerStartSec(&fitRscmTimer, fitRscmPeriod); +} + +/*************************************************************************************************/ +/*! + * \brief Process CCC state change. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitProcCccState(fitMsg_t *pMsg) +{ + APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, + pMsg->ccc.idx); + + /* handle heart rate measurement CCC */ + if (pMsg->ccc.idx == FIT_HRS_HRM_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + HrpsMeasStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_HR_TIMER_IND, FIT_HRS_HRM_CCC_IDX); + } else { + HrpsMeasStop((dmConnId_t)pMsg->ccc.hdr.param); + } + return; + } + + /* handle running speed and cadence measurement CCC */ + if (pMsg->ccc.idx == FIT_RSCS_SM_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); + } else { + WsfTimerStop(&fitRscmTimer); + } + return; + } + + /* handle battery level CCC */ + if (pMsg->ccc.idx == FIT_BATT_LVL_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + BasMeasBattStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_BATT_TIMER_IND, + FIT_BATT_LVL_CCC_IDX); + } else { + BasMeasBattStop((dmConnId_t)pMsg->ccc.hdr.param); + } + return; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection close. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitClose(fitMsg_t *pMsg) +{ + /* stop heart rate measurement */ + HrpsMeasStop((dmConnId_t)pMsg->hdr.param); + + /* stop battery measurement */ + BasMeasBattStop((dmConnId_t)pMsg->hdr.param); + + /* Stop running speed and cadence timer */ + WsfTimerStop(&fitRscmTimer); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitSetup(fitMsg_t *pMsg) +{ + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(fitAdvDataDisc), (uint8_t *)fitAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(fitScanDataDisc), (uint8_t *)fitScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, 0, NULL); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, 0, NULL); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitBtnCback(uint8_t btn) +{ + dmConnId_t connId; + static uint8_t heartRate = 78; /* for testing/demonstration */ + + /* button actions when connected */ + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* increment the heart rate */ + AppHwHrmTest(++heartRate); + break; + + case APP_UI_BTN_1_MED: + break; + + case APP_UI_BTN_1_LONG: + AppConnClose(connId); + break; + + case APP_UI_BTN_2_SHORT: + /* decrement the heart rate */ + AppHwHrmTest(--heartRate); + break; + + case APP_UI_BTN_2_MED: + /* Toggle HRM Sensor DET flags */ + if (!(fitHrmFlags & (CH_HRM_FLAGS_SENSOR_DET | CH_HRM_FLAGS_SENSOR_NOT_DET))) { + fitHrmFlags |= CH_HRM_FLAGS_SENSOR_DET; + } else if (fitHrmFlags & CH_HRM_FLAGS_SENSOR_DET) { + fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_DET; + fitHrmFlags |= CH_HRM_FLAGS_SENSOR_NOT_DET; + } else { + fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_NOT_DET; + } + + HrpsSetFlags(fitHrmFlags); + break; + + case APP_UI_BTN_2_LONG: + /* Toggle HRM RR Interval feature flag */ + if (fitHrmFlags & CH_HRM_FLAGS_RR_INTERVAL) { + fitHrmFlags &= ~CH_HRM_FLAGS_RR_INTERVAL; + } else { + fitHrmFlags |= CH_HRM_FLAGS_RR_INTERVAL; + } + + HrpsSetFlags(fitHrmFlags); + break; + + default: + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start or restart advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* enter discoverable and bondable mode */ + AppSetBondable(TRUE); + AppAdvStart(APP_MODE_DISCOVERABLE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + + /* restart advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_2_SHORT: + /* Toggle HRM Flag for 8 and 16 bit values */ + if (fitHrmFlags & CH_HRM_FLAGS_VALUE_16BIT) { + fitHrmFlags &= ~CH_HRM_FLAGS_VALUE_16BIT; + } else { + fitHrmFlags |= CH_HRM_FLAGS_VALUE_16BIT; + } + + HrpsSetFlags(fitHrmFlags); + break; + + default: + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitProcMsg(fitMsg_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case FIT_RUNNING_TIMER_IND: + fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); + break; + + case FIT_HR_TIMER_IND: + HrpsProcMsg(&pMsg->hdr); + break; + + case FIT_BATT_TIMER_IND: + BasProcMsg(&pMsg->hdr); + break; + + case ATTS_HANDLE_VALUE_CNF: + HrpsProcMsg(&pMsg->hdr); + BasProcMsg(&pMsg->hdr); + break; + + case ATTS_CCC_STATE_IND: + fitProcCccState(pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + fitSetup(pMsg); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_SET_START_IND: + uiEvent = APP_UI_ADV_SET_START_IND; + break; + + case DM_ADV_SET_STOP_IND: + uiEvent = APP_UI_ADV_SET_STOP_IND; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + HrpsProcMsg(&pMsg->hdr); + BasProcMsg(&pMsg->hdr); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + fitClose(pMsg); + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + AppHandlePasskey(&pMsg->dm.authReq); + break; + + case DM_SEC_ECC_KEY_IND: + DmSecSetEccKey(&pMsg->dm.eccMsg.data.key); + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->dm.cnfInd); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + + case DM_HW_ERROR_IND: + uiEvent = APP_UI_HW_ERROR; + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("FitHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &fitScanDataDisc[2]); + + /* store handler ID */ + fitHandlerId = handlerId; + + /* Set configuration pointers */ + pAppAdvCfg = (appAdvCfg_t *)&fitAdvCfg; + pAppSlaveCfg = (appSlaveCfg_t *)&fitSlaveCfg; + pAppSecCfg = (appSecCfg_t *)&fitSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&fitUpdateCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set stack configuration pointers */ + pSmpCfg = (smpCfg_t *)&fitSmpCfg; + + /* initialize heart rate profile sensor */ + HrpsInit(handlerId, (hrpsCfg_t *)&fitHrpsCfg); + HrpsSetFlags(fitHrmFlags); + + /* initialize battery service server */ + BasInit(handlerId, (basCfg_t *)&fitBasCfg); +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Fit got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + fitProcMsg((fitMsg_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void FitStart(void) +{ + /* Register for stack callbacks */ + DmRegister(fitDmCback); + DmConnRegister(DM_CLIENT_ID_APP, fitDmCback); + AttRegister(fitAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(FIT_NUM_CCC_IDX, (attsCccSet_t *)fitCccSet, fitCccCback); + + /* Register for app framework callbacks */ + AppUiBtnRegister(fitBtnCback); + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcHrsCbackRegister(NULL, HrpsWriteCback); + SvcHrsAddGroup(); + SvcDisAddGroup(); + SvcBattCbackRegister(BasReadCback, NULL); + SvcBattAddGroup(); + SvcRscsAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(FIT_GATT_SC_CCC_IDX); + + /* Set running speed and cadence features */ + RscpsSetFeatures(RSCS_ALL_FEATURES); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_fit/main.c b/Examples/MAX32655/Bluetooth/BLE_fit/main.c new file mode 100644 index 00000000000..5dfc4a55fdf --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit/main.c @@ -0,0 +1,260 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth fitness device. Showcases heart rate, battery level, running speed and cadence. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "fit_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitFit(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(MXC_WUT0); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> + MXC_F_TRIMSIR_RTC_X1TRIM_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitFit(); + FitStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/BLE_fit/project.mk b/Examples/MAX32655/Bluetooth/BLE_fit/project.mk similarity index 100% rename from Examples/MAX32655/BLE_fit/project.mk rename to Examples/MAX32655/Bluetooth/BLE_fit/project.mk diff --git a/Examples/MAX32655/BLE_fit/stack_fit.c b/Examples/MAX32655/Bluetooth/BLE_fit/stack_fit.c similarity index 100% rename from Examples/MAX32655/BLE_fit/stack_fit.c rename to Examples/MAX32655/Bluetooth/BLE_fit/stack_fit.c diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.cproject b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.cproject similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.cproject rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.cproject diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.project b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.project similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.project rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.project diff --git a/Examples/MAX32655/BLE5_ctr/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.settings/language.settings.xml diff --git a/Examples/MAX32650/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/README.md diff --git a/Examples/MAX32650/USB_MassStorage/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/c_cpp_properties.json old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Hash/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Hash/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/BLE_fit_FreeRTOS.launch b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/BLE_fit_FreeRTOS.launch similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/BLE_fit_FreeRTOS.launch rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/BLE_fit_FreeRTOS.launch diff --git a/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/FreeRTOSConfig.h new file mode 100644 index 00000000000..680aafa1d77 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/FreeRTOSConfig.h @@ -0,0 +1,143 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FREERTOS_FREERTOSCONFIG_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FREERTOS_FREERTOSCONFIG_H_ + +#include +#include "max32655.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* CMSIS keeps a global updated with current system clock in Hz */ +#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) + +#define SLEEP_LED 1 +#define DEEPSLEEP_LED 0 + +// #define configUSE_TICKLESS_IDLE 1 + +#define configTICK_RATE_HZ ((portTickType)1000) +#define configRTC_TICK_RATE_HZ (32768) + +#define configTOTAL_HEAP_SIZE ((size_t)(100 * 1024)) + +#define configMINIMAL_STACK_SIZE ((uint16_t)128) + +#define configMAX_PRIORITIES 5 +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configUSE_CO_ROUTINES 0 +#define configUSE_16_BIT_TICKS 0 +#define configUSE_MUTEXES 1 + +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) +#define configTIMER_QUEUE_LENGTH 8 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE + +/* Run time and task stats gathering related definitions. */ +#define configGENERATE_RUN_TIME_STATS 1 + +#if configGENERATE_RUN_TIME_STATS == 1 +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() +#define portGET_RUN_TIME_COUNTER_VALUE() xTaskGetTickCount() +#endif + +#define configUSE_TRACE_FACILITY 1 +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +/* Set the following definitions to 1 to include the API function,or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelay 1 + +/* # of priority bits (configured in hardware) is provided by CMSIS */ +#define configPRIO_BITS __NVIC_PRIO_BITS + +/* Priority 7,or 255 as only the top three bits are implemented. This is the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY ((unsigned char)7 << (8 - configPRIO_BITS)) + +/* Priority 5,or 160 as only the top three bits are implemented. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) + +/* Alias the default handler names to match CMSIS weak symbols */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#ifdef configUSE_TICKLESS_IDLE +/* Provide routines for tickless idle pre- and post- processing */ +void vPreSleepProcessing(uint32_t *); +void vPostSleepProcessing(uint32_t); +#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); +#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); +#endif + +/* FreeRTOS+CLI requires this size to be defined,but we do not use it */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/Makefile b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/README.md b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/README.md similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/README.md rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/README.md diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/bt_app_api.c b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_app_api.c similarity index 99% rename from Examples/MAX32655/BLE_fit_FreeRTOS/bt_app_api.c rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_app_api.c index 5b62df23cb6..e1c5c0fdc1d 100644 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/bt_app_api.c +++ b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_app_api.c @@ -8,6 +8,8 @@ * * Copyright (c) 2019-2020 Packetcraft, Inc. * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/bt_app_api.h b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_app_api.h similarity index 90% rename from Examples/MAX32655/BLE_fit_FreeRTOS/bt_app_api.h rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_app_api.h index 0265a8f7c27..b2c98bebff6 100644 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/bt_app_api.h +++ b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_app_api.h @@ -8,6 +8,8 @@ * * Copyright (c) 2019 Packetcraft, Inc. * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -21,8 +23,9 @@ * limitations under the License. */ /*************************************************************************************************/ -#ifndef EXAMPLES_MAX32655_BLE_FIT_FREERTOS_API_H_ -#define EXAMPLES_MAX32655_BLE_FIT_FREERTOS_API_H_ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FREERTOS_BT_APP_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FREERTOS_BT_APP_API_H_ #include "wsf_os.h" @@ -73,4 +76,4 @@ void AppEventHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); }; #endif -#endif // EXAMPLES_MAX32655_BLE_FIT_FREERTOS_API_H_ +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_FIT_FREERTOS_BT_APP_API_H_ diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/bt_stack.c b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_stack.c similarity index 99% rename from Examples/MAX32655/BLE_fit_FreeRTOS/bt_stack.c rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_stack.c index bda759a933f..3d5086705f2 100644 --- a/Examples/MAX32655/BLE_fit_FreeRTOS/bt_stack.c +++ b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/bt_stack.c @@ -8,6 +8,8 @@ * * Copyright (c) 2019 Packetcraft, Inc. * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/freertos_tickless.c b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/freertos_tickless.c new file mode 100644 index 00000000000..394d92fbef9 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/freertos_tickless.c @@ -0,0 +1,289 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Maxim CMSIS */ +#include "mxc_device.h" +#include "board.h" +#include "mxc_assert.h" +#include "lp.h" +#include "pwrseq_regs.h" +#include "wut.h" +#include "mcr_regs.h" +#include "icc.h" +#include "pb.h" +#include "led.h" +#include "uart.h" + +/* FreeRTOS includes */ +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +/* Bluetooth Cordio library */ +#include "pal_timer.h" +#include "pal_uart.h" +#include "pal_bb.h" + +#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ +#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ +#define WAKEUP_US 700 /* Deep sleep recovery time, units of us */ + +/* Minimum ticks before SysTick interrupt, units of system clock ticks. + * Convert CPU_CLOCK_HZ to units of ticks per us + */ +#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) + +/* + * Sleep-check function + * + * Your code should over-ride this weak function and return E_NO_ERROR if + * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other + * return code will prevent FreeRTOS from entering tickless idle. + */ +int freertos_permit_tickless(void) +{ + /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ + if (MXC_WUT_TrimPending(MXC_WUT0) != E_NO_ERROR) { + return E_BUSY; + } + + /* Figure out if the UART is active */ + if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { + return E_BUSY; + } + + /* Prevent characters from being corrupted if still transmitting, + UART will shutdown in deep sleep */ + if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { + return E_BUSY; + } + + return E_NO_ERROR; +} + +/* + * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c + * + * DEEPSLEEP mode will stop SysTick from counting, so that can't be + * used to wake up. Instead, calculate a wake-up period for the WUT to + * interrupt the WFI and continue execution. + * + */ +void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) +{ + uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; + uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; + bool_t schTimerActive; + + /* We do not currently handle to case where the WUT is slower than the RTOS tick */ + MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); + + if (SysTick->VAL < MIN_SYSTICK) { + /* Avoid sleeping too close to a systick interrupt */ + return; + } + + /* Calculate the number of WUT ticks, but we need one to synchronize */ + idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / + (uint64_t)configTICK_RATE_HZ; + + if (idleTicks > MAX_WUT_TICKS) { + idleTicks = MAX_WUT_TICKS; + } + + /* Check to see if we meet the minimum requirements for deep sleep */ + if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { + return; + } + + /* Enter a critical section but don't use the taskENTER_CRITICAL() + method as that will mask interrupts that should exit sleep mode. */ + __asm volatile("cpsid i"); + + /* If a context switch is pending or a task is waiting for the scheduler + to be unsuspended then abandon the low power entry. */ + /* Also check the MXC drivers for any in-progress activity */ + if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || + (freertos_permit_tickless() != E_NO_ERROR)) { + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + + /* Determine if the Bluetooth scheduler is running */ + if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { + schTimerActive = TRUE; + } else { + schTimerActive = FALSE; + } + + if (!schTimerActive) { + uint32_t ts; + if (PalBbGetTimestamp(&ts)) { + /*Determine if PalBb is active, return if we get a valid time stamp indicating + * that the scheduler is waiting for a PalBb event */ + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + } + + /* Disable SysTick */ + SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); + + /* Enable wakeup from WUT */ + NVIC_EnableIRQ(WUT_IRQn); + MXC_LP_EnableWUTAlarmWakeup(); + + /* Determine if we need to snapshot the PalBb clock */ + if (schTimerActive) { + /* Snapshot the current WUT value with the PalBb clock */ + MXC_WUT_Store(MXC_WUT0); + preCapture = MXC_WUT_GetCount(MXC_WUT0); + schUsec = PalTimerGetExpTime(); + + /* Adjust idleTicks for the time it takes to restart the BLE hardware */ + idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); + + /* Calculate the time to the next BLE scheduler event */ + if (schUsec < WAKEUP_US) { + bleSleepTicks = 0; + } else { + bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * + (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; + } + } else { + /* Snapshot the current WUT value */ + MXC_WUT_Edge(MXC_WUT0); + preCapture = MXC_WUT_GetCount(MXC_WUT0); + bleSleepTicks = 0; + schUsec = 0; + } + + /* Sleep for the shortest tick duration */ + if ((schTimerActive) && (bleSleepTicks < idleTicks)) { + dsTicks = bleSleepTicks; + } else { + dsTicks = idleTicks; + } + + /* Bound the deep sleep time */ + if (dsTicks > MAX_WUT_TICKS) { + dsTicks = MAX_WUT_TICKS; + } + + /* Don't deep sleep if we don't have time */ + if (dsTicks >= MIN_WUT_TICKS) { + /* Arm the WUT interrupt */ + MXC_WUT->cmp = preCapture + dsTicks; + + if (schTimerActive) { + /* Stop the BLE scheduler timer */ + PalTimerStop(); + + /* Shutdown BB hardware */ + PalBbDisable(); + } + + LED_Off(SLEEP_LED); + LED_Off(DEEPSLEEP_LED); + + MXC_LP_EnterStandbyMode(); + + LED_On(DEEPSLEEP_LED); + LED_On(SLEEP_LED); + + if (schTimerActive) { + /* Enable and restore the BB hardware */ + PalBbEnable(); + + PalBbRestore(); + + /* Restore the BB counter */ + MXC_WUT_RestoreBBClock(MXC_WUT0, BB_CLK_RATE_HZ); + + /* Restart the BLE scheduler timer */ + dsWutTicks = MXC_WUT->cnt - preCapture; + schUsecElapsed = + (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; + + int palTimerStartTicks = schUsec - schUsecElapsed; + if (palTimerStartTicks < 1) { + palTimerStartTicks = 1; + } + PalTimerStart(palTimerStartTicks); + } + } + + /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ + MXC_WUT_Edge(MXC_WUT0); + postCapture = MXC_WUT_GetCount(MXC_WUT0); + dsWutTicks = postCapture - preCapture; + + /* + * Advance ticks by # actually elapsed + */ + dsSysTickPeriods = + (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; + vTaskStepTick(dsSysTickPeriods); + + /* Re-enable SysTick */ + SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/main.c b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/main.c new file mode 100644 index 00000000000..573e28feb32 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/main.c @@ -0,0 +1,191 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief BLE_fit_FreeRTOS + * @details This example demonstrates FreeRTOS with BLE capabilities. + */ + +#include +#include +#include +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "mxc_device.h" +#include "wut.h" +#include "lp.h" +#include "led.h" +#include "board.h" + +/* Stringification macros */ +#define STRING(x) STRING_(x) +#define STRING_(x) #x + +extern void btStartup(void); + +/***** Functions *****/ + +/* =| vAssertCalled |============================== + * + * Called when an assertion is detected. Use debugger to backtrace and + * continue. + * + * ======================================================= + */ +void vAssertCalled(const char *const pcFileName, uint32_t ulLine) +{ + volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; + + /* Parameters are not used. */ + (void)ulLine; + (void)pcFileName; + + __asm volatile("cpsid i"); + { + /* You can step out of this function to debug the assertion by using + the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero + value. */ + while (ulSetToNonZeroInDebuggerToContinue == 0) {} + } + __asm volatile("cpsie i"); +} + +/* =| vApplicationIdleHook |============================== + * + * Call the user defined function from within the idle task. This + * allows the application designer to add background functionality + * without the overhead of a separate task. + * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, + * CALL A FUNCTION THAT MIGHT BLOCK. + * + * ======================================================= + */ +void vApplicationIdleHook(void) +{ + /* Sleep while idle */ + LED_Off(SLEEP_LED); + + MXC_LP_EnterSleepMode(); + + LED_On(SLEEP_LED); +} + +/* =| main |============================================== + * + * This program demonstrates FreeRTOS tasks, mutexes. + * + * ======================================================= + */ +int main(void) +{ + /* Print banner (RTOS scheduler not running) */ + printf("\n-=- %s BLE FreeRTOS (%s) App -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); + +#if configUSE_TICKLESS_IDLE + printf("Tickless idle is enabled\n"); + /* Initialize CPU Active LED */ + LED_On(SLEEP_LED); + LED_On(DEEPSLEEP_LED); +#endif + + printf("SystemCoreClock = %d\n", SystemCoreClock); + + /* Delay to prevent bricks */ + volatile int i; + for (i = 0; i < 0x3FFFFF; i++) {} + + /* Start the Bluetooth application */ + btStartup(); + + /* Start scheduler */ + vTaskStartScheduler(); + + /* This code is only reached if the scheduler failed to start */ + printf("ERROR: FreeRTOS did not start due to above error!\n"); + while (1) { + __NOP(); + } + + /* Quiet GCC warnings */ + return -1; +} + +typedef struct __attribute__((packed)) ContextStateFrame { + uint32_t r0; + uint32_t r1; + uint32_t r2; + uint32_t r3; + uint32_t r12; + uint32_t lr; + uint32_t return_address; + uint32_t xpsr; +} sContextStateFrame; + +/*****************************************************************/ +void HardFault_Handler(void) +{ + __asm(" TST LR, #4\n" + " ITE EQ \n" + " MRSEQ R0, MSP \n" + " MRSNE R0, PSP \n" + " B HardFault_Decoder \n"); +} + +/*****************************************************************/ +/* Disable optimizations for this function so "frame" argument */ +/* does not get optimized away */ +__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) +{ + /* Hang here */ + while (1) {} +} diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/project.mk b/Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/project.mk similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/project.mk rename to Examples/MAX32655/Bluetooth/BLE_fit_FreeRTOS/project.mk diff --git a/Examples/MAX32655/BLE_mcs/.cproject b/Examples/MAX32655/Bluetooth/BLE_mcs/.cproject similarity index 100% rename from Examples/MAX32655/BLE_mcs/.cproject rename to Examples/MAX32655/Bluetooth/BLE_mcs/.cproject diff --git a/Examples/MAX32655/BLE_mcs/.project b/Examples/MAX32655/Bluetooth/BLE_mcs/.project similarity index 100% rename from Examples/MAX32655/BLE_mcs/.project rename to Examples/MAX32655/Bluetooth/BLE_mcs/.project diff --git a/Examples/MAX32655/BLE_FreeRTOS/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_mcs/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_mcs/.settings/language.settings.xml diff --git a/Examples/MAX32650/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_mcs/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_mcs/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_mcs/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_mcs/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/README.md diff --git a/Examples/MAX32655/BLE4_ctr/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Hello_World/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Hello_World/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_mcs/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_mcs/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_mcs/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_mcs/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_mcs/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_mcs/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_mcs/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_mcs/BLE_mcs.launch b/Examples/MAX32655/Bluetooth/BLE_mcs/BLE_mcs.launch similarity index 100% rename from Examples/MAX32655/BLE_mcs/BLE_mcs.launch rename to Examples/MAX32655/Bluetooth/BLE_mcs/BLE_mcs.launch diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/Makefile b/Examples/MAX32655/Bluetooth/BLE_mcs/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_mcs/README.md b/Examples/MAX32655/Bluetooth/BLE_mcs/README.md similarity index 100% rename from Examples/MAX32655/BLE_mcs/README.md rename to Examples/MAX32655/Bluetooth/BLE_mcs/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/main.c b/Examples/MAX32655/Bluetooth/BLE_mcs/main.c new file mode 100644 index 00000000000..a53eb4a80ca --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/main.c @@ -0,0 +1,220 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Maxim custom Bluetooth profile and service that advertises as "MCS" and accepts + * connection requests. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "mcs_app_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitMcsApp(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); +#endif + + StackInitMcsApp(); + McsAppStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/mcs_app_api.h b/Examples/MAX32655/Bluetooth/BLE_mcs/mcs_app_api.h new file mode 100644 index 00000000000..23548551f01 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/mcs_app_api.h @@ -0,0 +1,88 @@ +/*************************************************************************************************/ +/*! + * \file mcs_app_api.h + * + * \brief Maxim Custom Service server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! WSF message event starting value */ +#define MCS_MSG_START 0xA0 + +/*! WSF message event enumeration */ +enum { + MCS_BUTTON_TIMER_IND = MCS_MSG_START, /*/< Button state BLE notify timer event */ + MCS_BUTTON_PRESS_DUR /*/< Button press duration timer event */ +}; + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/mcs_app_main.c b/Examples/MAX32655/Bluetooth/BLE_mcs/mcs_app_main.c new file mode 100644 index 00000000000..d94603bd1bc --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/mcs_app_main.c @@ -0,0 +1,795 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_mcs.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "mcs_app_api.h" +#include "mcs_api.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + MCS_APP_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + MCS_APP_BT_CCC_IDX, /*! MCS characteristic */ + MCS_APP_NUM_CCC_IDX +}; + +/************************************************************************************************** + Data Types +**************************************************************************************************/ + +/*! Application message type */ +typedef union { + wsfMsgHdr_t hdr; + dmEvt_t dm; + attsCccEvt_t ccc; + attEvt_t att; +} mcsMsg_t; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t mcsAppAdvCfg = { + { 30000, 0, 0 }, /*! Advertising durations in ms */ + { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t mcsAppSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t mcsAppSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t mcsAppSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t mcsAppSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t mcsAppUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + 640, /*! Minimum connection interval in 1.25ms units */ + 800, /*! Maximum connection interval in 1.25ms units */ + 3, /*! Connection latency */ + 900, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t mcsAppAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t mcsAppAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t mcsAppScanDataDisc[] = { + /*! device name */ + 4, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'M', + 'C', + 'S', +}; + +/*! Mcs measurement configuration */ +static const mcsCfg_t mcsMcsCfg = { + 2, /*! Mcs measurement timer expiration period in seconds */ + 1, /*! Perform mcs measurement after this many timer periods */ + 3 /*! Send mcs level notification to peer when below this level. */ +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t mcsAppCccSet[MCS_APP_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, + DM_SEC_LEVEL_NONE }, /* MCS_APP_GATT_SC_CCC_IDX */ + { MCS_BUTTON_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* MCS_BUTTON_SM_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} mcsAppCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *mcsAppOobCfg; + +extern void setAdvTxPower(void); +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (mcsAppSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (mcsAppOobCfg == NULL) { + mcsAppOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (mcsAppOobCfg) { + Calc128Cpy(mcsAppOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(mcsAppOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + attsCccEvt_t *pMsg; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } + + if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { + memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process CCC state change. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppProcCccState(mcsMsg_t *pMsg) +{ + APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, + pMsg->ccc.idx); +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void mcsAppPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void mcsAppPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection close. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppClose(dmEvt_t *pMsg) +{ + /* stop mcs measurement */ + McsButtonCheckStop((dmConnId_t)pMsg->hdr.param); +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void mcsAppDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + mcsAppCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(mcsAppAdvDataDisc), + (uint8_t *)mcsAppAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(mcsAppScanDataDisc), + (uint8_t *)mcsAppScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(mcsAppAdvDataDisc), + (uint8_t *)mcsAppAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(mcsAppScanDataDisc), + (uint8_t *)mcsAppScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + mcsAppSetup(pMsg); + } else { + mcsAppCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (mcsAppCb.restoringResList) { + /* Set the advertising peer address. */ + mcsAppPrivAddDevToResList(mcsAppCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(mcsAppCb.resListRestoreHdl); + + if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + mcsAppSetup(pMsg); + } + } else { + mcsAppPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTS_CCC_STATE_IND: + mcsAppProcCccState((mcsMsg_t *)pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + mcsAppRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + mcsAppClose(pMsg); + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill mcsAppOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (mcsAppOobCfg != NULL) { + DmSecSetOob(connId, mcsAppOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + mcsAppPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + mcsAppPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("McsAppHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &mcsAppScanDataDisc[2]); + + /* store handler ID */ + mcsAppCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&mcsAppSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&mcsAppAdvCfg; + pAppSecCfg = (appSecCfg_t *)&mcsAppSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&mcsAppUpdateCfg; + pSmpCfg = (smpCfg_t *)&mcsAppSmpCfg; + pAttCfg = (attCfg_t *)&mcsAppAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* initialize mcs server */ + McsInit(handlerId, (mcsCfg_t *)&mcsMcsCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppBtnCback(uint8_t btn) +{ + APP_TRACE_INFO1("mcsAppBtnCback; %d", btn); + McsSetFeatures(btn); +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("McsApp got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("McsApp got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + mcsAppProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppStart(void) +{ + /* Register for stack callbacks */ + DmRegister(mcsAppDmCback); + DmConnRegister(DM_CLIENT_ID_APP, mcsAppDmCback); + AttRegister(mcsAppAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(MCS_APP_NUM_CCC_IDX, (attsCccSet_t *)mcsAppCccSet, mcsAppCccCback); + + SvcMcsCbackRegister(NULL, McsWriteCback); + SvcMcsAddGroup(); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(MCS_APP_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(mcsAppBtnCback); + + WsfNvmInit(); + + WsfBufDiagRegister(mcsAppWsfBufDiagnostics); + + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h b/Examples/MAX32655/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h new file mode 100644 index 00000000000..976a127754e --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h @@ -0,0 +1,121 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ + +#include "wsf_types.h" +#include "att_api.h" +#include "app_api.h" +#include "svc_mcs.h" +#include "board.h" +#include "led.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Data Types +**************************************************************************************************/ +/*! \brief Maxim custom service configurable parameters */ +typedef struct { + wsfTimerTicks_t period; /*!< \brief Button timer expiration period in seconds */ + uint16_t count; /*!< \brief Perform button after this many timer periods */ + uint8_t threshold; /*!< \brief Send button notification to peer when below this level. */ +} mcsCfg_t; + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for maxim custom service Use this function as a parameter + * to SvcMcsCbackRegister(). + * + * \param connId DM connection identifier. + * \param handle ATT handle. + * \param operation ATT operation. + * \param offset Write offset. + * \param len Write length. + * \param pValue Value to write. + * \param pAttr Attribute to write. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr); + +/*************************************************************************************************/ +/*! + * \brief Setting characteristic value and send the button value to the peer device. + * + * \param features The button value. + * + * \return None. + */ +/*************************************************************************************************/ +void McsSetFeatures(uint8_t features); + +/*************************************************************************************************/ +/*! + * \brief Initialize the mcs server. + * + * \param handlerId WSF handler ID of the application using this service. + * \param pCfg mcs configurable parameters. + * + * \return None. + */ +/*************************************************************************************************/ +void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg); + +/*************************************************************************************************/ +/*! + * \brief Start periodic mcs button state read. This function starts a timer to perform + * periodic button read. + * + * \param connId DM connection identifier. + * \param timerEvt WSF event designated by the application for the timer. + * \param mcsCccIdx Index of mcs level CCC descriptor in CCC descriptor handle table. + * \param btnState State of the push button. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState); + +/*************************************************************************************************/ +/*! + * \brief Stop periodic mcs button read. + * + * \param connId DM connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStop(dmConnId_t connId); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c b/Examples/MAX32655/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c new file mode 100644 index 00000000000..c90378f5767 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c @@ -0,0 +1,212 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "mcs_api.h" +#include "app_ui.h" +#include "pal_led.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +#ifndef LED_RED +#define LED_RED 0 +#endif + +#ifndef LED_GREEN +#define LED_GREEN 1 +#endif + +#ifndef LED_BLUE +#define LED_BLUE LED_GREEN +#endif + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! \brief Connection control block */ +typedef struct { + dmConnId_t connId; /*! \brief Connection ID */ + bool_t mcsToSend; /*! \brief mcs measurement ready to be sent on this channel */ + uint8_t sentMcsBtnState; /*! \brief value of last sent mcs button state */ +} mcsConn_t; + +/*! \brief Control block */ +static struct { + mcsConn_t conn[DM_CONN_MAX]; /*! \brief connection control block */ + wsfTimer_t btnStateChkTimer; /*! \brief periodic check timer */ + mcsCfg_t cfg; /*! \brief configurable parameters */ + uint16_t currCount; /*! \brief current measurement period count */ + bool_t txReady; /*! \brief TRUE if ready to send notifications */ + uint8_t btnState; /*! \brief value of last button state */ +} mcsCb; + +/*************************************************************************************************/ +/*! + * \brief Return TRUE if no connections with active measurements. + * + * \return TRUE if no connections active. + */ +/*************************************************************************************************/ +static bool_t mcsNoConnActive(void) +{ + mcsConn_t *pConn = mcsCb.conn; + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++, pConn++) { + if (pConn->connId != DM_CONN_ID_NONE) { + return FALSE; + } + } + return TRUE; +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for maxim custom service. Use this function as a parameter + * to SvcMcsCbackRegister(). + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + AttsSetAttr(handle, sizeof(*pValue), (uint8_t *)pValue); + /* Turn LED on if non-zero value was written */ + bool on = *pValue != 0; + + /* Get LED ID */ + uint8_t ch = 0; + switch (handle) { + case MCS_R_HDL: + ch = LED_RED; + break; + case MCS_B_HDL: + ch = LED_BLUE; + break; + case MCS_G_HDL: + ch = LED_GREEN; + break; + } + + if (on) + LED_On(ch); + else + LED_Off(ch); + return ATT_SUCCESS; +} + +/*************************************************************************************************/ + +/*! + * \brief Setting characteristic value and send the button value to the peer device + * + * \return None. + */ +/*************************************************************************************************/ +void McsSetFeatures(uint8_t features) +{ + AttsSetAttr(MCS_BUTTON_HDL, sizeof(features), + (uint8_t *)&features); /*Setting mcsButtonVal characteristic value */ + dmConnId_t connId = AppConnIsOpen(); /*Getting connected */ + if (connId != DM_CONN_ID_NONE) { + AttsHandleValueNtf(connId, MCS_BUTTON_HDL, sizeof(features), + (uint8_t *)&features); /*Send notify */ + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the mcs server. + * + * \param handerId WSF handler ID of the application using this service. + * \param pCfg mcs configurable parameters. + * + * \return None. + */ +/*************************************************************************************************/ +void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg) +{ + mcsCb.btnStateChkTimer.handlerId = handlerId; + mcsCb.cfg = *pCfg; + + /* De-init the PAL LEDs so we can control them here */ + PalLedDeInit(); +} + +/*************************************************************************************************/ +/*! + * \brief Start periodic mcs button state check. This function starts a timer to perform + * periodic button checks. + * + * \param connId DM connection identifier. + * \param timerEvt WSF event designated by the application for the timer. + * \param mcsCccIdx Index of mcs button state CCC descriptor in CCC descriptor handle table. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState) +{ + /* if this is first connection */ + if (mcsNoConnActive()) { + /* initialize control block */ + mcsCb.btnStateChkTimer.msg.event = timerEvt; + mcsCb.btnStateChkTimer.msg.status = mcsCccIdx; + mcsCb.btnState = btnState; + mcsCb.currCount = mcsCb.cfg.count; + + /* start timer */ + WsfTimerStartSec(&mcsCb.btnStateChkTimer, mcsCb.cfg.period); + } + + /* set conn id and last sent button level */ + mcsCb.conn[connId - 1].connId = connId; + mcsCb.conn[connId - 1].sentMcsBtnState = btnState; +} + +/*************************************************************************************************/ +/*! + * \brief Stop periodic button state check. + * + * \param connId DM connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStop(dmConnId_t connId) +{ + /* clear connection */ + mcsCb.conn[connId - 1].connId = DM_CONN_ID_NONE; + mcsCb.conn[connId - 1].mcsToSend = FALSE; + + /* if no remaining connections */ + if (mcsNoConnActive()) { + /* stop timer */ + WsfTimerStop(&mcsCb.btnStateChkTimer); + } +} diff --git a/Examples/MAX32655/BLE_mcs/project.mk b/Examples/MAX32655/Bluetooth/BLE_mcs/project.mk similarity index 100% rename from Examples/MAX32655/BLE_mcs/project.mk rename to Examples/MAX32655/Bluetooth/BLE_mcs/project.mk diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/services/svc_mcs.c b/Examples/MAX32655/Bluetooth/BLE_mcs/services/svc_mcs.c new file mode 100644 index 00000000000..2c4791ee2c9 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/services/svc_mcs.c @@ -0,0 +1,178 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "svc_mcs.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Characteristic read permissions */ +#ifndef MCS_SEC_PERMIT_READ +#define MCS_SEC_PERMIT_READ SVC_SEC_PERMIT_READ +#endif + +/*! Characteristic write permissions */ +#ifndef MCS_SEC_PERMIT_WRITE +#define MCS_SEC_PERMIT_WRITE SVC_SEC_PERMIT_WRITE +#endif + +/************************************************************************************************** + Service variables +**************************************************************************************************/ + +/*Service variables declaration*/ +const uint8_t attMcsSvcUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_SERVICE }; + +/*Characteristic variables declaration*/ +const uint8_t svcMcsButtonUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_BUTTON }; +const uint8_t svcMcsRUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_R }; +const uint8_t svcMcsGUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_G }; +const uint8_t svcMcsBUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_B }; + +static const uint8_t mcsValSvc[] = { ATT_UUID_MCS_SERVICE }; +static const uint16_t mcsLenSvc = sizeof(mcsValSvc); + +static const uint8_t mcsButtonValCh[] = { ATT_PROP_READ | ATT_PROP_NOTIFY, + UINT16_TO_BYTES(MCS_BUTTON_HDL), ATT_UUID_MCS_BUTTON }; +static const uint16_t mcsButtonLenCh = sizeof(mcsButtonValCh); + +static const uint8_t mcsRValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_R_HDL), + ATT_UUID_MCS_R }; +static const uint16_t mcsRLenCh = sizeof(mcsRValCh); + +static const uint8_t mcsGValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_G_HDL), + ATT_UUID_MCS_G }; +static const uint16_t mcsGLenCh = sizeof(mcsGValCh); + +static const uint8_t mcsBValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_B_HDL), + ATT_UUID_MCS_B }; +static const uint16_t mcsBLenCh = sizeof(mcsBValCh); + +/*Characteristic values declaration*/ +static uint8_t mcsButtonVal[] = { 0 }; +static const uint16_t mcsButtonValLen = sizeof(mcsButtonVal); + +static uint8_t mcsButtonValChCcc[] = { UINT16_TO_BYTES(0x0000) }; +static const uint16_t mcsButtonLenValChCcc = sizeof(mcsButtonValChCcc); + +static uint8_t mcsRVal[] = { 0 }; +static const uint16_t mcsRValLen = sizeof(mcsRVal); + +static uint8_t mcsGVal[] = { 0 }; +static const uint16_t mcsGValLen = sizeof(mcsGVal); + +static uint8_t mcsBVal[] = { 0 }; +static const uint16_t mcsBValLen = sizeof(mcsBVal); + +/************************************************************************************************** + Maxim Custom Service group +**************************************************************************************************/ + +/* Attribute list for mcs group */ +static const attsAttr_t mcsList[] = { + /*-----------------------------*/ + /* Service declaration */ + { attPrimSvcUuid, (uint8_t *)mcsValSvc, (uint16_t *)&mcsLenSvc, sizeof(mcsValSvc), 0, + MCS_SEC_PERMIT_READ }, + + /*----------------------------*/ + /* Button characteristic declaration */ + { attChUuid, (uint8_t *)mcsButtonValCh, (uint16_t *)&mcsButtonLenCh, sizeof(mcsButtonValCh), 0, + MCS_SEC_PERMIT_READ }, + /* Button characteristic value */ + { svcMcsButtonUuid, (uint8_t *)mcsButtonVal, (uint16_t *)&mcsButtonValLen, sizeof(mcsButtonVal), + 0, MCS_SEC_PERMIT_READ }, + /*Button characteristic value descriptor*/ + { attCliChCfgUuid, (uint8_t *)mcsButtonValChCcc, (uint16_t *)&mcsButtonLenValChCcc, + sizeof(mcsButtonValChCcc), ATTS_SET_CCC, (ATTS_PERMIT_READ | SVC_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* R characteristic declaration */ + { attChUuid, (uint8_t *)mcsRValCh, (uint16_t *)&mcsRLenCh, sizeof(mcsRValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* R characteristic characteristic value */ + { svcMcsRUuid, (uint8_t *)mcsRVal, (uint16_t *)&mcsRValLen, sizeof(mcsRVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* G characteristic declaration */ + { attChUuid, (uint8_t *)mcsGValCh, (uint16_t *)&mcsGLenCh, sizeof(mcsGValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* G characteristic characteristic value */ + { svcMcsGUuid, (uint8_t *)mcsGVal, (uint16_t *)&mcsGValLen, sizeof(mcsGVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* B characteristic declaration */ + { attChUuid, (uint8_t *)mcsBValCh, (uint16_t *)&mcsBLenCh, sizeof(mcsBValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* B characteristic value */ + { svcMcsBUuid, (uint8_t *)mcsBVal, (uint16_t *)&mcsBValLen, sizeof(mcsBVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) } +}; + +/* Test group structure */ +static attsGroup_t svcMcsGroup = { NULL, (attsAttr_t *)mcsList, NULL, + NULL, MCS_START_HDL, MCS_END_HDL }; + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsAddGroup(void) +{ + AttsAddGroup(&svcMcsGroup); +} + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsRemoveGroup(void) +{ + AttsRemoveGroup(MCS_START_HDL); +} + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) +{ + svcMcsGroup.readCback = readCback; + svcMcsGroup.writeCback = writeCback; +} diff --git a/Examples/MAX32655/Bluetooth/BLE_mcs/services/svc_mcs.h b/Examples/MAX32655/Bluetooth/BLE_mcs/services/svc_mcs.h new file mode 100644 index 00000000000..1da4bfc41fc --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_mcs/services/svc_mcs.h @@ -0,0 +1,128 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ + +#include "wsf_types.h" +#include "att_api.h" +#include "util/bstream.h" +#include "svc_cfg.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*! \addtogroup Mcs + * \{ */ +/************************************************************************************************** + Macros +**************************************************************************************************/ +/*MCS service UUID*/ +#define ATT_UUID_MCS_SERVICE \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7D, 0x56, 0xFC, \ + 0x85 /*!< \brief Test Service UUID*/ + +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_MCS_BUTTON \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7E, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_R \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7F, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_G \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x80, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_B \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x81, 0x56, 0xFC, 0x85 + +/************************************************************************************************** + Handle Ranges +**************************************************************************************************/ + +/** \name Maxim custom Service Handles + * + */ +/**@{*/ +#define MCS_START_HDL 0x1500 /*!< \brief Start handle. */ +#define MCS_END_HDL (MCS_MAX_HDL - 1) /*!< \brief End handle. */ + +/************************************************************************************************** + Handles +**************************************************************************************************/ + +/*! \brief Maxim custom Service Handles */ +enum { + MCS_SVC_HDL = MCS_START_HDL, /*!< \brief Maxim custom service declaration */ + MCS_BUTTON_CH_HDL, /*!< \brief Button characteristic */ + MCS_BUTTON_HDL, /*!< \brief Button*/ + MCS_BUTTON_CH_CCC_HDL, /*!< \brief Button CCCD*/ + MCS_R_CH_HDL, /*!< \brief R characteristic */ + MCS_R_HDL, /*!< \brief R*/ + MCS_G_CH_HDL, /*!< \brief G characteristic */ + MCS_G_HDL, /*!< \brief G*/ + MCS_B_CH_HDL, /*!< \brief B characteristic */ + MCS_B_HDL, /*!< \brief B*/ + MCS_MAX_HDL /*!< \brief Maximum handle. */ +}; +/**@}*/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsAddGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsRemoveGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); + +/*! \} */ /* TEST_SERVICE */ + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ diff --git a/Examples/MAX32655/BLE_mcs/stack_mcs_app.c b/Examples/MAX32655/Bluetooth/BLE_mcs/stack_mcs_app.c similarity index 100% rename from Examples/MAX32655/BLE_mcs/stack_mcs_app.c rename to Examples/MAX32655/Bluetooth/BLE_mcs/stack_mcs_app.c diff --git a/Examples/MAX32655/BLE_otac/.cproject b/Examples/MAX32655/Bluetooth/BLE_otac/.cproject similarity index 100% rename from Examples/MAX32655/BLE_otac/.cproject rename to Examples/MAX32655/Bluetooth/BLE_otac/.cproject diff --git a/Examples/MAX32655/BLE_otac/.project b/Examples/MAX32655/Bluetooth/BLE_otac/.project similarity index 100% rename from Examples/MAX32655/BLE_otac/.project rename to Examples/MAX32655/Bluetooth/BLE_otac/.project diff --git a/Examples/MAX32655/BLE_datc/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_otac/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_datc/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_otac/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_otac/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_otac/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_otac/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_otac/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_otac/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_otac/.vscode/README.md diff --git a/Examples/MAX32655/BLE5_ctr/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_otac/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_otac/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Hello_World_Cpp/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_otac/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/Hello_World_Cpp/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_otac/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_otac/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_otac/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_otac/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_otac/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_otac/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_otac/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_otac/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_otac/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_otac/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_otac/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_otac/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_otac/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_otac/BLE_otac.launch b/Examples/MAX32655/Bluetooth/BLE_otac/BLE_otac.launch similarity index 100% rename from Examples/MAX32655/BLE_otac/BLE_otac.launch rename to Examples/MAX32655/Bluetooth/BLE_otac/BLE_otac.launch diff --git a/Examples/MAX32655/Bluetooth/BLE_otac/Makefile b/Examples/MAX32655/Bluetooth/BLE_otac/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otac/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_otac/README.md b/Examples/MAX32655/Bluetooth/BLE_otac/README.md similarity index 100% rename from Examples/MAX32655/BLE_otac/README.md rename to Examples/MAX32655/Bluetooth/BLE_otac/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_otac/datc_api.h b/Examples/MAX32655/Bluetooth/BLE_otac/datc_api.h new file mode 100644 index 00000000000..e066105b336 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otac/datc_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAC_DATC_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAC_DATC_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAC_DATC_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_otac/datc_main.c b/Examples/MAX32655/Bluetooth/BLE_otac/datc_main.c new file mode 100644 index 00000000000..0250242462c --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otac/datc_main.c @@ -0,0 +1,1422 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application for Nordic-ble. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "dm_api.h" +#include "dm_priv.h" +#include "gap/gap_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_cfg.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_core.h" +#include "svc_ch.h" +#include "gatt/gatt_api.h" +#include "wpc/wpc_api.h" +#include "datc_api.h" +#include "util/calc128.h" +#include "wsf_efs.h" +#include "wdxc/wdxc_api.h" +#include "wdxc/wdxc_main.h" +#include "wdx_defs.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** +Macros +**************************************************************************************************/ +#if (BT_VER > 8) +/* PHY Test Modes */ +#define DATC_PHY_1M 1 +#define DATC_PHY_2M 2 +#define DATC_PHY_CODED 3 +#endif /* BT_VER */ + +/* Size of WDXC file discovery dataset */ +#define DATC_WDXC_MAX_FILES 4 + +/*! WSF message event starting value */ +#define DATC_MSG_START 0xA0 + +/*! Data rate timer period in seconds */ +#define DATC_WDXS_DATA_RATE_TIMEOUT 4 + +extern uint32_t _binary_fw_update_bin_start; +extern uint32_t _binary_fw_update_bin_end; + +#define FILE_SIZE \ + (uint32_t)(((uint32_t)&_binary_fw_update_bin_end) - ((uint32_t)&_binary_fw_update_bin_start)) +#define BLOCK_OFFSET_INIT 0x0 +#define BLOCK_SIZE 224 +#define CRC32_LEN 4 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +#define SCAN_START_EVT 0x99 +#define SCAN_START_MS 500 + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; +fileHeader_t fileHeader; +/*! application control block */ +struct { + uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ + wsfHandlerId_t handlerId; /*! WSF hander ID */ + bool_t scanning; /*! TRUE if scanning */ + bool_t autoConnect; /*! TRUE if auto-connecting */ + uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ + uint8_t hdlListLen; /*! Cached handle list length */ + uint8_t btnConnId; /*! The index of the connection ID for button presses */ + bool_t sendingFile[DM_CONN_MAX]; + bool_t fileVerified[DM_CONN_MAX]; + uint32_t blockOffset[DM_CONN_MAX]; + wsfEfsFileInfo_t fileList[DM_CONN_MAX][DATC_WDXC_MAX_FILES]; /*! Buffer to hold WDXC file list */ + uint8_t *fileData; /*! Pointer for accessing the fw_update image*/ + uint32_t fileCRC; /*! Holds the CRC32 value of the file */ + uint32_t blockSize; + + appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ + wsfTimer_t scanTimer; /* Timer for starting the scanner */ +} datcCb; + +/*! connection control block */ +typedef struct { + appDbHdl_t dbHdl; /*! Device database record handle type */ + uint8_t addrType; /*! Type of address of device to connect to */ + bdAddr_t addr; /*! Address of device to connect to */ + bool_t doConnect; /*! TRUE to issue connect on scan complete */ +} datcConnInfo_t; + +datcConnInfo_t datcConnInfo; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for master */ +static const appMasterCfg_t datcMasterCfg = { + 96, /*! The scan interval, in 0.625 ms units */ + 48, /*! The scan window, in 0.625 ms units */ + 0, /*! The scan duration in ms */ + DM_DISC_MODE_NONE, /*! The GAP discovery mode */ + DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datcSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datcSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datcSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! Connection parameters */ +static const hciConnSpec_t datcConnCfg = { + 6, /*! Minimum connection interval in 1.25ms units */ + 6, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 0, /*! Unused */ + 0 /*! Unused */ +}; + +/*! Configurable parameters for service and characteristic discovery */ +static const appDiscCfg_t datcDiscCfg = { + FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ + TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ +}; + +static const appCfg_t datcAppCfg = { + FALSE, /*! TRUE to abort service discovery if service not found */ + TRUE /*! TRUE to disconnect if ATT transaction times out */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datcAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, + 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; + +/************************************************************************************************** + ATT Client Discovery Data +**************************************************************************************************/ + +/*! Discovery states: enumeration of services to be discovered */ +enum { + DATC_DISC_GATT_SVC, /*! GATT service */ + DATC_DISC_GAP_SVC, /*! GAP service */ + DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ + DATC_DISC_WDXC_SCV, /*! Arm Ltd. Wireless Data Exchange service */ + DATC_DISC_SVC_MAX /*! Discovery complete */ +}; + +/*! the Client handle list, datcCb.hdlList[], is set as follows: + * + * ------------------------------- <- DATC_DISC_GATT_START + * | GATT svc changed handle | + * ------------------------------- + * | GATT svc changed ccc handle | + * ------------------------------- <- DATC_DISC_GAP_START + * | GAP central addr res handle | + * ------------------------------- + * | GAP RPA Only handle | + * ------------------------------- <- DATC_DISC_WP_START + * | WP handles | + * | ... | + * ------------------------------- + */ + +/*! Start of each service's handles in the the handle list */ +#define DATC_DISC_GATT_START 0 +#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) +#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) +#define DATC_DISC_WDXC_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) +#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_WDXC_START + WDXC_HDL_LIST_LEN) + +/*! Pointers into handle list for each service's handles */ +static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; +static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWdxHdlList[DM_CONN_MAX]; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datcOobCfg; + +/************************************************************************************************** + ATT Client Configuration Data +**************************************************************************************************/ + +/* + * Data for configuration after service discovery + */ + +/* Default value for CCC indications */ +const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; + +/* Default value for CCC notifications */ +const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; + +/* Default value for Client Supported Features (enable Robust Caching) */ +const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; + +/* List of characteristics to configure after service discovery */ +static const attcDiscCfg_t datcDiscCfgList[] = { + /* Write: GATT service changed ccc descriptor */ + { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: GATT client supported features */ + { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: Proprietary data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, + + /* Write: WDXC ccc descriptors */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_DC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTD_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_AU_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, +}; + +/* Characteristic configuration list length */ +#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) + +/* sanity check: make sure configuration list length is <= handle list length */ +WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Reset the OTA state. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcResetOTAState(void) +{ + int i; + for (i = 0; i < DM_CONN_MAX; i++) { + datcCb.sendingFile[i] = FALSE; + datcCb.fileVerified[i] = FALSE; + datcCb.blockOffset[i] = BLOCK_OFFSET_INIT; + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + uint16_t reportLen; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datcSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datcOobCfg == NULL) { + datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datcOobCfg) { + Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + reportLen = pDmEvt->scanReport.len; + } else { + reportLen = 0; + } + + if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { + memcpy(pMsg, pDmEvt, len); + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); + memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); + } + WsfMsgSend(datcCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datcCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning handler. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanningHandler(void) +{ + datcCb.autoConnect = TRUE; + datcConnInfo.doConnect = FALSE; + AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanning(void) +{ + /* Start the scanning start timer */ + WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan start. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStart(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan stop. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStop(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + + /* Open connection */ + if (datcConnInfo.doConnect) { + AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); + datcConnInfo.doConnect = FALSE; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Handle a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanReport(dmEvt_t *pMsg) +{ + uint8_t *pData; + appDbHdl_t dbHdl; + bool_t connect = FALSE; + + /* disregard if not scanning or autoconnecting */ + if (!datcCb.scanning || !datcCb.autoConnect) { + return; + } + + /* if we already have a bond with this device then connect to it */ + if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != + APP_DB_HDL_NONE) { + /* if this is a directed advertisement where the initiator address is an RPA */ + if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { + /* resolve direct address to see if it's addressed to us */ + AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); + } else { + connect = TRUE; + } + } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { + /* if the peer device uses an RPA */ + /* resolve advertiser's RPA to see if we already have a bond with this device */ + AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); + } + /* Search for "OTAS" name */ + if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL)) { + /* check length and device name */ + if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'O') && + (pData[DM_AD_DATA_IDX + 1] == 'T') && (pData[DM_AD_DATA_IDX + 2] == 'A') && + (pData[DM_AD_DATA_IDX + 3] == 'S')) { + connect = TRUE; + } + } + + if (connect) { + /* stop scanning and connect */ + datcCb.autoConnect = FALSE; + AppScanStop(); + + /* Store peer information for connect on scan stop */ + datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); + memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); + datcConnInfo.dbHdl = dbHdl; + datcConnInfo.doConnect = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection open. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcOpen(dmEvt_t *pMsg) +{ + datcResetOTAState(); +} + +/*************************************************************************************************/ +/*! + * \brief Process a received ATT notification. + * + * \param pMsg Pointer to ATT callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcValueNtf(attEvt_t *pMsg) +{ + /* print received message */ + APP_TRACE_INFO0((const char *)pMsg->pValue); +} + +/*************************************************************************************************/ +/*! + * \brief Set up procedures that need to be performed after device reset. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSetup(dmEvt_t *pMsg) +{ + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + datcConnInfo.doConnect = FALSE; + datcCb.restoringResList = FALSE; + + DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datcSetup(pMsg); + } else { + datcCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datcCb.restoringResList) { + /* Retore next device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datcSetup(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief GAP service discovery has completed. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscGapCmpl(dmConnId_t connId) +{ + appDbHdl_t dbHdl; + + /* if RPA Only attribute found on peer device */ + if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { + /* update DB */ + AppDbSetPeerRpao(dbHdl, TRUE); + AppDbNvmStorePeerRpao(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief WDXC File Transfer Data Callback. + * + * \param connId Connection ID. + * \param fileHdl Handle of the file. + * \param len length of pData in bytes. + * \param pData File data. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcWdxcFtdCallback(dmConnId_t connId, uint16_t fileHdl, uint16_t len, uint8_t *pData) +{ +} + +/*************************************************************************************************/ +/*! + * \brief Send file header. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void sendFileHeader(dmConnId_t connId) +{ + if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(fileHeader_t), + (uint8_t *)&fileHeader); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send a block of file data to the peer. Combines the address with the data. + * + * \param connId Connection identifier. + * \param address Address of the block. + * \param len Length of the data. + * \param pData Pointer to the data to send. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSendBlock(dmConnId_t connId, uint32_t address, uint32_t len, uint8_t *pData) +{ + uint8_t *addrData = WsfBufAlloc(datcCb.blockSize + sizeof(uint32_t)); + + /* Insert the address into the block */ + memcpy(addrData, &address, sizeof(uint32_t)); + memcpy(&addrData[sizeof(uint32_t)], pData, len); + + // APP_TRACE_INFO2("Sending addr: 0x%08X len: 0x%04X", address, len); + + /* Send the address and data, add the length of the address to the length */ + WdxcFtdSendBlock(connId, len + sizeof(uint32_t), addrData); + + /* Clear out the buf->free field to prevent un-intended assertion in WsfBufFree */ + addrData[4] = 0; + addrData[5] = 0; + addrData[6] = 0; + addrData[7] = 0; + + WsfBufFree(addrData); + + /* Increment the address of the data that we're sending */ + datcCb.blockOffset[connId - 1] += len; +} + +/*************************************************************************************************/ +/*! + * \brief WDXC File Transfer Control Callback. + * + * \param connId Connection ID. + * \param op Control operation. + * \param status Status of operation. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcWdxcFtcCallback(dmConnId_t connId, uint16_t handle, uint8_t op, uint8_t status) +{ + APP_TRACE_INFO2("FTC op: %d status: %d", op, status); + + if (op == WDX_FTC_OP_PUT_RSP) { + /* Start timer */ + APP_TRACE_INFO0(">>> Starting file transfer <<<\n"); + + MXC_TMR_SW_Start(MXC_TMR2); + datcCb.sendingFile[connId - 1] = TRUE; + uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; + datcSendBlock(connId, address, datcCb.blockSize, (uint8_t *)&datcCb.fileData[address]); + + } else if (op == WDX_FTC_OP_EOF) { + if (handle == WDX_FLIST_HANDLE) { + /* on discovery completion we can send the header */ + sendFileHeader(connId); + /* File discovery complete */ + APP_TRACE_INFO0(">>> File discovery complete <<<\n"); + } else { + /* Stop timer, calculate time and Bps */ + uint32_t usec = MXC_TMR_SW_Stop(MXC_TMR2); + APP_TRACE_INFO1(">>> File transfer complete %d us <<<\n", usec); + APP_TRACE_INFO3("file_size = %d usec = %d bps = %d\n", FILE_SIZE, usec, + ((FILE_SIZE * 1000) / (usec / 1000)) * 8); + datcCb.sendingFile[connId - 1] = FALSE; + } + } else if (op == WDX_FTC_OP_VERIFY_RSP) { + APP_TRACE_INFO1(">>> Verify complete status: %d <<<\n", status); + if (status) + datcCb.fileVerified[connId - 1] = FALSE; + else + datcCb.fileVerified[connId - 1] = TRUE; + } +} +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcBtnCback(uint8_t btn) +{ + dmConnId_t connId = datcCb.btnConnId; + dmConnId_t connIdList[DM_CONN_MAX]; + uint8_t numConnections = AppConnOpenList(connIdList); + + /* button actions when connected */ + if (numConnections > 0) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (numConnections < DM_CONN_MAX - 1) { + if (datcCb.scanning) { /* if scanning cancel scanning */ + AppScanStop(); + } else if (!datcCb.autoConnect) { /* else auto connect */ + datcRestartScanning(); + } + } else { + APP_TRACE_INFO0("datcBtnCback: Max connections reached."); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID used in button presses */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* disconnect */ + AppConnClose(connId); + break; + +#if (BT_VER > 8) + case APP_UI_BTN_1_EX_LONG: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + case APP_UI_BTN_2_SHORT: + if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { + WdxcDiscoverFiles(connId, datcCb.fileList[connId - 1], DATC_WDXC_MAX_FILES); + datcCb.blockSize = AttGetMtu(connId); + + /* Subtract for the address and message overhead */ + datcCb.blockSize = datcCb.blockSize - 8; + if (datcCb.blockSize > BLOCK_SIZE) { + datcCb.blockSize = BLOCK_SIZE; + } + } + break; + + case APP_UI_BTN_2_MED: + if ((datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) && + (datcCb.sendingFile[connId - 1] == FALSE)) { + /* Start the WDXC data stream */ + datcCb.blockOffset[connId - 1] = BLOCK_OFFSET_INIT; + + /* Put file request */ + WdxcFtcSendPutReq(connId, datcCb.fileList[connId - 1][0].handle, BLOCK_OFFSET_INIT, + FILE_SIZE, BLOCK_OFFSET_INIT + FILE_SIZE, 0); + } + break; + + case APP_UI_BTN_2_LONG: + if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { + /* Send verification request */ + WdxcFtcSendVerifyFile(connId, datcCb.fileList[connId - 1][0].handle); + } + break; + + case APP_UI_BTN_2_EX_LONG: + if (datcCb.fileVerified[connId - 1]) { + /* Send Disconnect and Reset request to apply firmware update */ + WdxcDcSendDisconnectAndReset(connId); + datcCb.fileVerified[connId - 1] = FALSE; + } + break; + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (datcCb.scanning) { /* if scanning cancel scanning */ + AppScanStop(); + } else if (!datcCb.autoConnect) { /* else auto connect */ + datcRestartScanning(); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID buttons apply to */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: + /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ + SvcCoreGapAddRpaoCh(); + break; + + case APP_UI_BTN_2_EX_LONG: + /* enable device privacy -- start generating local RPAs every 15 minutes */ + DmDevPrivStart(15 * 60); + + /* set Scanning filter policy to accept directed advertisements with RPAs */ + DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Discovery callback. + * + * \param connId Connection identifier. + * \param status Service or configuration status. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscCback(dmConnId_t connId, uint8_t status) +{ + switch (status) { + case APP_DISC_INIT: + /* set handle list when initialization requested */ + AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_READ_DATABASE_HASH: + /* Read peer's database hash */ + AppDiscReadDatabaseHash(connId); + break; + + case APP_DISC_SEC_REQUIRED: + /* initiate security */ + AppMasterSecurityReq(connId); + break; + + case APP_DISC_START: + /* initialize discovery state */ + datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; + + /* store possible change in cache by hash */ + AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); + + /* discover GATT service */ + GattDiscover(connId, pDatcGattHdlList[connId - 1]); + break; + + case APP_DISC_FAILED: + if (pAppCfg->abortDisc) { + /* if discovery failed for any service then disconnect */ + if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { + AppConnClose(connId); + break; + } + } + /* Else falls through. */ + + case APP_DISC_CMPL: + /* next discovery state */ + datcCb.discState[connId - 1]++; + + if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { + /* discover GAP service */ + GapDiscover(connId, pDatcGapHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { + /* discover proprietary data service */ + WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WDXC_SCV) { + WdxcWdxsDiscover(connId, pDatcWdxHdlList[connId - 1]); + } else { + /* discovery complete */ + AppDiscComplete(connId, APP_DISC_CMPL); + + /* GAP service discovery completed */ + datcDiscGapCmpl(connId); + + /* store cached handle list in NVM */ + AppDbNvmStoreHdlList(AppDbGetHdl(connId)); + + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + } + break; + + case APP_DISC_CFG_START: + case APP_DISC_CFG_CONN_START: + /* start configuration */ + WdxcStoreAttrHandles(connId, pDatcWdxHdlList[connId - 1]); + datcCb.discState[connId - 1] = DATC_DISC_SVC_MAX; + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_CFG_CMPL: + AppDiscComplete(connId, status); + break; + + default: + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTC_HANDLE_VALUE_NTF: + datcValueNtf((attEvt_t *)pMsg); + break; + + case ATTC_WRITE_CMD_RSP: + case ATTC_WRITE_RSP: { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + if ((((attEvt_t *)pMsg)->hdr.status == ATT_SUCCESS) && + (((attEvt_t *)pMsg)->handle == pDatcWdxHdlList[connId - 1][WDXC_FTD_HDL_IDX])) { + if (datcCb.sendingFile[connId - 1] == TRUE) { + uint32_t tempBlockSize; + if ((datcCb.blockOffset[connId - 1] + datcCb.blockSize) > FILE_SIZE) { + tempBlockSize = FILE_SIZE - datcCb.blockOffset[connId - 1]; + } else { + tempBlockSize = datcCb.blockSize; + } + + /* Keep writing the file */ + uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; + datcSendBlock(connId, address, tempBlockSize, (uint8_t *)&datcCb.fileData[address]); + } + } + break; + } + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + setAdvTxPower(); + datcRestoreResolvingList(pMsg); + datcRestartScanning(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_SCAN_START_IND: + datcScanStart(pMsg); + uiEvent = APP_UI_SCAN_START; + break; + + case DM_SCAN_STOP_IND: + datcScanStop(pMsg); + uiEvent = APP_UI_SCAN_STOP; + break; + + case DM_SCAN_REPORT_IND: + datcScanReport(pMsg); + break; + + case DM_CONN_OPEN_IND: + datcOpen(pMsg); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + datcRestartScanning(); + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datcOobCfg != NULL) { + DmSecSetOob(connId, datcOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datcPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case SCAN_START_EVT: + datcRestartScanningHandler(); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatcHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + + /* store handler ID */ + datcCb.handlerId = handlerId; + + /* set handle list length */ + datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; + + datcCb.btnConnId = 1; + /* Set configuration pointers */ + pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; + pAppSecCfg = (appSecCfg_t *)&datcSecCfg; + pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; + pAppCfg = (appCfg_t *)&datcAppCfg; + pSmpCfg = (smpCfg_t *)&datcSmpCfg; + pAttCfg = (attCfg_t *)&datcAttCfg; + + /* Initialize application framework */ + AppMasterInit(); + AppDiscInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Set the pointer for the fw_update image */ + datcCb.fileData = (uint8_t *)&_binary_fw_update_bin_start; + + /* Calculate the update image CRC */ + datcCb.fileCRC = 0; + crc32(datcCb.fileData, FILE_SIZE, &datcCb.fileCRC); + fileHeader.fileCRC = datcCb.fileCRC; + fileHeader.fileLen = FILE_SIZE; + APP_TRACE_INFO2("File addr: %08X file size: %08X", (uint32_t)datcCb.fileData, FILE_SIZE); + APP_TRACE_INFO1("Update File CRC: 0x%08X", datcCb.fileCRC); + + datcResetOTAState(); + + /* Setup scan start timer */ + datcCb.scanTimer.handlerId = handlerId; + datcCb.scanTimer.msg.event = SCAN_START_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + /* process ATT messages */ + if (pMsg->event <= ATT_CBACK_END) { + /* process discovery-related ATT messages */ + AppDiscProcAttMsg((attEvt_t *)pMsg); + + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ + /* process advertising and connection-related messages */ + AppMasterProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppMasterSecProcDmMsg((dmEvt_t *)pMsg); + + /* process discovery-related messages */ + AppDiscProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datcProcMsg((dmEvt_t *)pMsg); + + /* perform wdxc operations */ + WdxcProcMsg((wsfMsgHdr_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the pointers into the handle list. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcInitSvcHdlList() +{ + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++) { + /*! Pointers into handle list for each service's handles */ + pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; + pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; + pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; + pDatcWdxHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WDXC_START]; + } +} +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void) +{ + /* Initialize handle pointers */ + datcInitSvcHdlList(); + + /* Register for stack callbacks */ + DmRegister(datcDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); + AttRegister(datcAttCback); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datcBtnCback); + + /* Register for app framework discovery callbacks */ + AppDiscRegister(datcDiscCback); + + /* Initialize attribute server database */ + SvcCoreAddGroup(); + + /* Initialize the WDXC and set the WDXC application callbacks */ + WdxcInit(datcWdxcFtdCallback, datcWdxcFtcCallback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32655/Bluetooth/BLE_otac/fw_update.S b/Examples/MAX32655/Bluetooth/BLE_otac/fw_update.S new file mode 100644 index 00000000000..59a340ddc68 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otac/fw_update.S @@ -0,0 +1,60 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +.section .text + +/* Include the fw_update binary file, include global symbols we can use at link time */ +_binary_fw_update_bin_start: +.incbin "build/buildfw/fw_update.bin" +_binary_fw_update_bin_end: + +.globl _binary_fw_update_bin_start +.globl _binary_fw_update_bin_end diff --git a/Examples/MAX32655/Bluetooth/BLE_otac/main.c b/Examples/MAX32655/Bluetooth/BLE_otac/main.c new file mode 100644 index 00000000000..918140f3535 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otac/main.c @@ -0,0 +1,275 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth data client that scans for and connects to advertisers with the name of "OTAS". + * Demonstrates Over-the-Air (OTA) firmware updates. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "datc_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDatc(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(MXC_WUT0); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> + MXC_F_TRIMSIR_RTC_X1TRIM_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDatc(); + DatcStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/BLE_otac/project.mk b/Examples/MAX32655/Bluetooth/BLE_otac/project.mk similarity index 100% rename from Examples/MAX32655/BLE_otac/project.mk rename to Examples/MAX32655/Bluetooth/BLE_otac/project.mk diff --git a/Examples/MAX32655/BLE_otac/stack_datc.c b/Examples/MAX32655/Bluetooth/BLE_otac/stack_datc.c similarity index 100% rename from Examples/MAX32655/BLE_otac/stack_datc.c rename to Examples/MAX32655/Bluetooth/BLE_otac/stack_datc.c diff --git a/Examples/MAX32655/BLE_otas/.cproject b/Examples/MAX32655/Bluetooth/BLE_otas/.cproject similarity index 100% rename from Examples/MAX32655/BLE_otas/.cproject rename to Examples/MAX32655/Bluetooth/BLE_otas/.cproject diff --git a/Examples/MAX32655/BLE_otas/.project b/Examples/MAX32655/Bluetooth/BLE_otas/.project similarity index 100% rename from Examples/MAX32655/BLE_otas/.project rename to Examples/MAX32655/Bluetooth/BLE_otas/.project diff --git a/Examples/MAX32655/BLE_dats/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_otas/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_dats/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_otas/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_otas/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_otas/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_otas/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_otas/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_otas/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_otas/.vscode/README.md diff --git a/Examples/MAX32655/BLE_FreeRTOS/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_otas/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_otas/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/I2C/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_otas/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/I2C/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_otas/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_otas/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_otas/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_otas/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_otas/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_otas/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_otas/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_otas/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_otas/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_otas/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_otas/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_otas/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_otas/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_otas/BLE_otas.launch b/Examples/MAX32655/Bluetooth/BLE_otas/BLE_otas.launch similarity index 100% rename from Examples/MAX32655/BLE_otas/BLE_otas.launch rename to Examples/MAX32655/Bluetooth/BLE_otas/BLE_otas.launch diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/Makefile b/Examples/MAX32655/Bluetooth/BLE_otas/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/BLE_otas/README.md b/Examples/MAX32655/Bluetooth/BLE_otas/README.md similarity index 100% rename from Examples/MAX32655/BLE_otas/README.md rename to Examples/MAX32655/Bluetooth/BLE_otas/README.md diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/bl_build.S b/Examples/MAX32655/Bluetooth/BLE_otas/bl_build.S new file mode 100644 index 00000000000..b38959a73cb --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/bl_build.S @@ -0,0 +1,59 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Include the bl_update binary file, plus a reference for addition into linker script */ +.section .text +_binary_bootloader_bin_start: +.incbin "build/buildbl/bootloader.bin" +_binary_bootloader_bin_end: + +.globl _binary_bootloader_bin_start +.globl _binary_bootloader_bin_end \ No newline at end of file diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/dats_api.h b/Examples/MAX32655/Bluetooth/BLE_otas/dats_api.h new file mode 100644 index 00000000000..80a542460f3 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAS_DATS_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAS_DATS_API_H_ diff --git a/Examples/MAX32655/BLE_otas/dats_main.c b/Examples/MAX32655/Bluetooth/BLE_otas/dats_main.c similarity index 100% rename from Examples/MAX32655/BLE_otas/dats_main.c rename to Examples/MAX32655/Bluetooth/BLE_otas/dats_main.c diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/main.c b/Examples/MAX32655/Bluetooth/BLE_otas/main.c new file mode 100644 index 00000000000..64faf40a83a --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/main.c @@ -0,0 +1,284 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth data server that advertises as "OTAS" and accepts connection requests. + * Demonstrates Over-the-Air (OTA) firmware updates. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "dats_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDats(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); + +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); + + AppTerminalInit(); + +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(MXC_WUT0); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> + MXC_F_TRIMSIR_RTC_X1TRIM_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + mainWsfInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(MXC_WUT0, wutTrimCb); + while (!wutTrimComplete) {} + + /* Stop here to measure the 32 kHz clock */ + /* while(1) {} */ + MXC_RTC_SquareWaveStop(); + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDats(); + DatsStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/ota_external_mem.ld b/Examples/MAX32655/Bluetooth/BLE_otas/ota_external_mem.ld new file mode 100644 index 00000000000..29d307486c3 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/ota_external_mem.ld @@ -0,0 +1,170 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +BOOTLOADER_LEN = 0x4000; +FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; +FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; +FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; +PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; + +MEMORY { + BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN + FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN + PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 +} + +SECTIONS { + + .bootloader : + { + KEEP(*bootloader.o) + } > BOOT + + .text : + { + _text = .; + KEEP(*(.isr_vector)) + EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ + EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude Bootloader code */ + *(.rodata*) /* read-only data: "const" */ + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* C++ Exception handling */ + KEEP(*(.eh_frame*)) + _etext = .; + } > FLASH + + /* it's used for C++ exception handling */ + /* we need to keep this to avoid overlapping */ + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > FLASH + + .data : + { + _data = ALIGN(., 4); + *(.data*) /*read-write initialized data: initialized global variable*/ + *(.flashprog*) /* Flash program */ + + /* These array sections are used by __libc_init_array to call static C++ constructors */ + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + _edata = ALIGN(., 4); + } > SRAM AT>FLASH + __load_data = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _bss = .; + *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ + *(COMMON) + _ebss = ALIGN(., 4); + } > SRAM + + .pal_nvm_db : + { + /* Align to the sector size */ + . = ALIGN(0x2000); + __pal_nvm_db_start__ = .; + . = . + _PAL_NVM_SIZE; + __pal_nvm_db_end__ = .; + } > PAL_NVM_DB + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + *(.stack*) + } > SRAM + + .heap (COPY): + { + . = ALIGN(4); + *(.heap*) + __HeapLimit = ABSOLUTE(__StackLimit); + } > SRAM + + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") +} diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/ota_internal_mem.ld b/Examples/MAX32655/Bluetooth/BLE_otas/ota_internal_mem.ld new file mode 100644 index 00000000000..50530e3f2d7 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/ota_internal_mem.ld @@ -0,0 +1,177 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +BOOTLOADER_LEN = 0x4000; +FLASH_SECTION_LEN = 0x40000 - BOOTLOADER_LEN; +FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; +FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; +PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; + +MEMORY { + BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN + FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN + PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE + FLASH_UP (rx) : ORIGIN = 0x10040000, LENGTH = FLASH_SECTION_LEN + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 +} + +SECTIONS { + .bootloader : + { + KEEP(*bootloader.o) + } > BOOT + + .text : + { + _text = .; + KEEP(*(.isr_vector)) + EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ + EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude bootloader code */ + *(.rodata*) /* read-only data: "const" */ + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* C++ Exception handling */ + KEEP(*(.eh_frame*)) + _etext = .; + } > FLASH + + .flash_update (NOLOAD) : + { + _flash_update = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash_update = ALIGN(., 4); + } > FLASH_UP + + /* it's used for C++ exception handling */ + /* we need to keep this to avoid overlapping */ + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > FLASH + + .data : + { + _data = ALIGN(., 4); + *(.data*) /*read-write initialized data: initialized global variable*/ + *(.flashprog*) /* Flash program */ + + /* These array sections are used by __libc_init_array to call static C++ constructors */ + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + _edata = ALIGN(., 4); + } > SRAM AT>FLASH + __load_data = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _bss = .; + *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ + *(COMMON) + _ebss = ALIGN(., 4); + } > SRAM + + .pal_nvm_db : + { + /* Align to the sector size */ + . = ALIGN(0x2000); + __pal_nvm_db_start__ = .; + . = . + _PAL_NVM_SIZE; + __pal_nvm_db_end__ = .; + } > PAL_NVM_DB + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + *(.stack*) + } > SRAM + + .heap (COPY): + { + . = ALIGN(4); + *(.heap*) + __HeapLimit = ABSOLUTE(__StackLimit); + } > SRAM + + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") +} diff --git a/Examples/MAX32655/BLE_otas/project.mk b/Examples/MAX32655/Bluetooth/BLE_otas/project.mk similarity index 100% rename from Examples/MAX32655/BLE_otas/project.mk rename to Examples/MAX32655/Bluetooth/BLE_otas/project.mk diff --git a/Examples/MAX32655/BLE_otas/stack_dats.c b/Examples/MAX32655/Bluetooth/BLE_otas/stack_dats.c similarity index 100% rename from Examples/MAX32655/BLE_otas/stack_dats.c rename to Examples/MAX32655/Bluetooth/BLE_otas/stack_dats.c diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file.h b/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file.h new file mode 100644 index 00000000000..35e3452e167 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file.h @@ -0,0 +1,97 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; + +/*! \addtogroup WIRELESS_DATA_EXCHANGE_PROFILE + * \{ */ + +/************************************************************************************************** + Constant Definitions +**************************************************************************************************/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Initialize the WDXS File. + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void); + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void); + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void); + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of the WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void); +/*************************************************************************************************/ +/*! + * \brief set the length of the expected file + * + * \return None. + */ +/*************************************************************************************************/ +void initHeader(fileHeader_t *header); +/*! \} */ /* WIRELESS_DATA_EXCHANGE_PROFILE */ + +#ifdef __cplusplus +} +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file_ext.c b/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file_ext.c new file mode 100644 index 00000000000..5b61e51e81a --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file_ext.c @@ -0,0 +1,435 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "mxc_device.h" +#include "wsf_types.h" +#include "util/wstr.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_efs.h" +#include "wsf_cs.h" +#include "wsf_msg.h" +#include "util/bstream.h" +#include "svc_wdxs.h" +#include "wdxs/wdxs_api.h" +#include "wdxs/wdxs_main.h" +#include "wdxs_file.h" +#include "dm_api.h" +#include "att_api.h" +#include "app_api.h" +#include "flc.h" +#include "Ext_Flash.h" + +#ifndef FW_VERSION_MAJOR +#define FW_VERSION_MAJOR 1 +#define FW_VERSION_MINOR 0 +#endif + +#define EXT_FLASH_PAGE_SIZE 256 +#define EXT_FLASH_SECTOR_SIZE ((uint32_t)0x0001000) +#define HEADER_LOCATION ((uint32_t)0x00000000) +#define ERASE_DELAY 50 // ms + +static volatile uint32_t verifyLen; +static volatile uint8_t *lastWriteAddr; +static volatile uint32_t lastWriteLen; +static uint32_t crcResult; + +static uint32_t eraseAddress, eraseSectors; +wsfHandlerId_t eraseHandlerId; +wsfTimer_t eraseTimer; + +/* Prototypes for file functions */ +static uint8_t wdxsFileInitMedia(void); +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); + +static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; +wsfEfsHandle_t otaFileHdl; +#define HEADER_LEN (sizeof(fileHeader_t)) +/* Use the second half of the flash space for scratch space */ +static const wsfEfsMedia_t WDXS_FileMedia = { + /* uint32_t startAddress; Start address + size of header. */ ( + (uint32_t)0x00000000), + /* uint32_t endAddress; End address. */ ((uint32_t)0x01000000), + /* uint32_t pageSize; Page size. */ EXT_FLASH_PAGE_SIZE, + /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, + /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, + /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, + /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, + /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle +}; + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for file erase. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (eraseSectors) { + APP_TRACE_INFO1(">>> Erasing address 0x%x in external flash <<<", eraseAddress); + + /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ + Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); + eraseSectors--; + eraseAddress += EXT_FLASH_SECTOR_SIZE; + + /* Continue next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + } else { + /* Erase is complete */ + APP_TRACE_INFO0(">>> External flash erase complete <<<"); + wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); + } +} + +/*************************************************************************************************/ +/*! + * \brief Media Init function, called when media is registered. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileInitMedia(void) +{ + int err = 0; + MXC_FLC_Init(); + err += Ext_Flash_Init(); + err += Ext_Flash_Quad(1); + if (err) { + APP_TRACE_INFO0("Error initializing external flash"); + } + + APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); + + /* Setup the erase handler */ + eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); + eraseTimer.handlerId = eraseHandlerId; + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File erase function. Must be page aligned. + * + * \param pAddress Address in media to start erasing. + * \param size Number of bytes to erase. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) +{ + uint32_t address32 = (uint32_t)address; + uint32_t sectors = 0; // hard coded for now because image has no len data + + if (fileHeader.fileLen != 0) { + /* calculate sectors needed to erase */ + sectors = (fileHeader.fileLen / EXT_FLASH_SECTOR_SIZE) + 1; + APP_TRACE_INFO1(">>> Initiating erase of %d 4K sectors in external flash <<<", sectors); + + /* Setup the erase handler variables */ + eraseAddress = address32; + eraseSectors = sectors; + + /* Initiate the erase */ + Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); + eraseSectors--; + eraseAddress += EXT_FLASH_SECTOR_SIZE; + + /* Wait ERASE_DELAY ms before staring next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + + /* TODO: We will have to disconnect the completion of this with the + erase actually being complete */ + + return WSF_EFS_SUCCESS; + } else { + APP_TRACE_INFO0(">>> File size is unknown <<<"); + return WSF_EFS_FAILURE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Media Read function. + * + * \param pBuf Buffer to hold data. + * \param pAddress Address in media to read from. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + Ext_Flash_Read((uint32_t)pAddress, pBuf, size, Ext_Flash_DataLine_Quad); + return WSF_EFS_SUCCESS; +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} +/*************************************************************************************************/ +/*! + * \brief File Write function. + * + * \param pBuf Buffer with data to be written. + * \param address Address in media to write to. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + static bool_t savedHeader = FALSE; + int err = 0; + uint8_t attempts = 2; + uint8_t *tempBuff = (uint8_t *)malloc(size); + /* helps silence compiler warnings over discarded const qualifier */ + uint32_t addressToBuf = (uint32_t)pBuf; + /* write the header in flash device */ + if (!savedHeader) { + err += Ext_Flash_Program_Page(HEADER_LOCATION, (uint8_t *)&fileHeader, sizeof(fileHeader_t), + Ext_Flash_DataLine_Quad); + /* verify header was written correctly */ + err += Ext_Flash_Read(HEADER_LOCATION, tempBuff, sizeof(fileHeader_t), + Ext_Flash_DataLine_Quad); + if (memcmp(tempBuff, (uint8_t *)&fileHeader, sizeof(fileHeader_t)) != 0) { + APP_TRACE_INFO0("Error writting header to external flash"); + } + savedHeader = TRUE; + } + /* offset by the header thats already written */ + pAddress += HEADER_LEN; + crc32((const void *)pBuf, size, &crcResult); + while (attempts) { + err += Ext_Flash_Program_Page((uint32_t)pAddress, (uint8_t *)addressToBuf, size, + Ext_Flash_DataLine_Quad); + err += Ext_Flash_Read((uint32_t)pAddress, tempBuff, size, Ext_Flash_DataLine_Quad); + /* verify data was written correctly */ + if (memcmp(tempBuff, pBuf, size) != 0) { + attempts--; + if (attempts == 0) + err++; + } else { + attempts = 0; + } + } + if (err == E_NO_ERROR) { + lastWriteAddr = pAddress; + lastWriteLen = size; + APP_TRACE_INFO2("Ext Flash: Wrote %d bytes @ 0x%08x", size, pAddress); + } else { + APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); + /* force a crc error so device does not reboot into bootloader */ + crcResult = 0; + err = WSF_EFS_FAILURE; + } + + free(tempBuff); + return err; +} + +/*************************************************************************************************/ +/*! + * \brief Media Specific Command handler. + * + * \param cmd Identifier of the media specific command. + * \param param Optional Parameter to the command. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) +{ + switch (cmd) { + case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { + /* Currently unimplemented */ + return WDX_FTC_ST_SUCCESS; + } break; + case WSF_EFS_VALIDATE_CMD: + default: { + verifyLen = (uint32_t)lastWriteAddr - WDXS_FileMedia.startAddress - sizeof(fileHeader_t) + + lastWriteLen; + + APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, + verifyLen); + APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); + APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); + + /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ + if (fileHeader.fileCRC != crcResult) { + APP_TRACE_INFO0("Update file verification failure"); + APP_TRACE_INFO0("Erasing first sector of external flash"); + Ext_Flash_Erase(HEADER_LOCATION, Ext_Flash_Erase_4K); + crcResult = 0; + return WDX_FTC_ST_VERIFICATION; + } + crcResult = 0; + return WDX_FTC_ST_SUCCESS; + } break; + } + return WDX_FTC_ST_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Example of creating a WDXS stream. + * + * \param none + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void) +{ + wsfEsfAttributes_t attr; + char versionString[WSF_EFS_VERSION_LEN]; + + /* Add major number */ + versionString[0] = FW_VERSION_MAJOR; + /* Add "." */ + versionString[1] = '.'; + /* Minor number */ + versionString[2] = FW_VERSION_MINOR; + /* Add termination character */ + versionString[3] = 0; + + /* Register the media for the stream */ + WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); + + /* Set the attributes for the stream */ + attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | + WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | + WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | + WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); + + attr.type = WSF_EFS_FILE_TYPE_BULK; + + /* Potential buffer overrun is intentional to zero out fixed length field */ + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); + + /* Add a file for the stream */ + otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, + WDX_FLASH_MEDIA, &attr, 0); + APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); +} + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void) +{ + return WDXS_FileMedia.startAddress; +} + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void) +{ + return verifyLen; +} + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void) +{ + wsfEsfAttributes_t attr; + uint8_t minor, major; + + WsfEfsGetAttributes(otaFileHdl, &attr); + major = attr.version[0]; + minor = attr.version[2]; + // store major in upper byte and minor in lower byte + return (uint16_t)major << 8 | minor; +} + +void initHeader(fileHeader_t *header) +{ + fileHeader.fileLen = header->fileLen; + fileHeader.fileCRC = header->fileCRC; +} diff --git a/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file_int.c b/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file_int.c new file mode 100644 index 00000000000..5ecd659b5fa --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_otas/wdxs_file_int.c @@ -0,0 +1,517 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "mxc_device.h" +#include "mxc_delay.h" +#include "wsf_types.h" +#include "util/wstr.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_efs.h" +#include "wsf_cs.h" +#include "wsf_msg.h" +#include "wsf_buf.h" +#include "util/bstream.h" +#include "svc_wdxs.h" +#include "wdxs/wdxs_api.h" +#include "wdxs/wdxs_main.h" +#include "wdxs_file.h" +#include "dm_api.h" +#include "att_api.h" +#include "app_api.h" +#include "flc.h" +#include "sch_api.h" + +#ifndef FW_VERSION_MAJOR +#define FW_VERSION_MAJOR 1 +#define FW_VERSION_MINOR 0 +#endif + +#define ERASE_DELAY 1 // ms + +extern uint32_t _flash_update; +extern uint32_t _eflash_update; + +static uint32_t eraseAddress, erasePages; +wsfHandlerId_t eraseHandlerId; +wsfTimer_t eraseTimer; + +wsfHandlerId_t writeHandlerId; +wsfQueue_t writeQueue; +static bool_t savedHeader = FALSE; + +/* Prototypes for file functions */ +static uint8_t wdxsFileInitMedia(void); +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); +static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; +wsfEfsHandle_t otaFileHdl; + +/* Use the second half of the flash space for scratch space */ +static const wsfEfsMedia_t WDXS_FileMedia = { + /* uint32_t startAddress; Start address. */ ((uint32_t)&_flash_update), + /* uint32_t endAddress; End address. */ ((uint32_t)&_eflash_update), + /* uint32_t pageSize; Page size. */ MXC_FLASH_PAGE_SIZE, + /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, + /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, + /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, + /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, + /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle +}; + +#define HEADER_LEN (sizeof(fileHeader_t)) +#define HEADER_LOCATION WDXS_FileMedia.startAddress + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for file erase. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + int err = 0; + + if (erasePages) { + /* Only erase the flash if the scheduler is idle. */ + if (SchGetState() != SCH_STATE_IDLE) { + /* Pend the erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + return; + } + + APP_TRACE_INFO1(">>> Erasing address 0x%x in internal flash <<<", eraseAddress); + + /* The flash can not be accessed while the write is being performed. */ + WsfCsEnter(); + err = MXC_FLC_PageErase((uint32_t)eraseAddress); + WsfCsExit(); + if (err != E_NO_ERROR) { + APP_TRACE_INFO0("There was an erase error"); + return; + } + erasePages--; + eraseAddress += MXC_FLASH_PAGE_SIZE; + /* Continue next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + } else { + /* Erase is complete */ + APP_TRACE_INFO0(">>> Internal flash erase complete <<<"); + wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); + } +} + +/*************************************************************************************************/ +/*! + * \brief Enqueue the next message and send an indication to the handler. + * + * \param address Flash address. + * \param size Data length. + * \param pBuf Data to write. + * + * \return None. + */ +/*************************************************************************************************/ +static void wdxsFileWriteMessage(uint32_t address, uint32_t size, const uint8_t *pBuf) +{ + /* Allocate the message */ + uint8_t *writeBuf = WsfMsgAlloc(size + 4 + 4); + + if (writeBuf == NULL) { + WSF_ASSERT(0); + } + + /* Copy in the address, size, and data */ + memcpy(&writeBuf[0], &address, sizeof(uint32_t)); + memcpy(&writeBuf[sizeof(uint32_t)], &size, sizeof(uint32_t)); + memcpy(&writeBuf[2 * sizeof(uint32_t)], pBuf, size); + + /* Enqueue the message */ + WsfMsgEnq(&writeQueue, 0, writeBuf); + + /* Signal the handler */ + WsfSetEvent(writeHandlerId, 1); +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for file write. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void wdxsFileWriteHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + int err; + static const unsigned kWriteBufLen = 256; + uint32_t writeAddress, writeLen; + uint32_t writeBuf[kWriteBufLen / sizeof(uint32_t)]; + uint8_t *pBuf; + wsfHandlerId_t retHandler; + wsfMsgHdr_t *queueMsg; + + /* Dequeue the next message */ + queueMsg = WsfMsgDeq(&writeQueue, &retHandler); + + /* Perform all of the pending writes */ + while (queueMsg != NULL) { + /* Get a uint8_t pointer into the message */ + pBuf = (uint8_t *)queueMsg; + + /* Get the address and length from the buffer */ + memcpy(&writeAddress, &pBuf[0], sizeof(uint32_t)); + memcpy(&writeLen, &pBuf[sizeof(uint32_t)], sizeof(uint32_t)); + + /* Make sure message doesn't overflow */ + WSF_ASSERT(writeLen <= kWriteBufLen); + + /* Align the data */ + memcpy(writeBuf, &pBuf[2 * sizeof(uint32_t)], writeLen); + + /* Only write the flash if the scheduler is idle. */ + if (SchGetState() != SCH_STATE_IDLE) { + /* Re-queue the message */ + WsfMsgFree(queueMsg); + wdxsFileWriteMessage(writeAddress, writeLen, (const uint8_t *)writeBuf); + return; + } + + /* Perform the write, use critical section because we must execute from SRAM. + * The flash can not be accessed while the write is being performed. + */ + WsfCsEnter(); + err = MXC_FLC_Write(writeAddress, writeLen, writeBuf); + WSF_ASSERT(err == E_NO_ERROR); + + /* Free the message */ + WsfMsgFree(queueMsg); + + WsfCsExit(); + + APP_TRACE_INFO2("Int. Flash: Wrote %d bytes @ 0x%x", writeLen, writeAddress); + + /* Get the next message */ + queueMsg = WsfMsgDeq(&writeQueue, &retHandler); + } +} +/*************************************************************************************************/ +/*! + * \brief Media Init function, called when media is registered. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileInitMedia(void) +{ + MXC_FLC_Init(); + APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); + + /* Setup the erase handler */ + eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); + eraseTimer.handlerId = eraseHandlerId; + + /* Setup the write handler */ + writeHandlerId = WsfOsSetNextHandler(wdxsFileWriteHandler); + WSF_QUEUE_INIT(&writeQueue); + + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File erase function. Must be page aligned. + * + * \param pAddress Address in media to start erasing. + * \param size Number of bytes to erase. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) +{ + uint32_t address32 = (uint32_t)address; + + if (fileHeader.fileLen != 0) { + int err = 0; + /* Setup the erase handler variables */ + eraseAddress = address32; + /* calculate pages needed to erase */ + erasePages = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; + /* Initiate the erase */ + WsfCsEnter(); + err = MXC_FLC_PageErase((uint32_t)address32); + WsfCsExit(); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Flash page erase error at 0x%0x", address32); + return WSF_EFS_FAILURE; + } else { + APP_TRACE_INFO1(">>> Initiating erase of %d pages of internal flash <<<", erasePages); + } + erasePages--; + eraseAddress += MXC_FLASH_PAGE_SIZE; + + savedHeader = FALSE; + + /* Wait ERASE_DELAY ms before staring next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + + return WSF_EFS_SUCCESS; + } else { + APP_TRACE_INFO0(">>> File size is unknown <<<"); + return WSF_EFS_FAILURE; + } + + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Media Read function. + * + * \param pBuf Buffer to hold data. + * \param pAddress Address in media to read from. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + memcpy(pBuf, pAddress, size); + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File Write function. + * + * \param pBuf Buffer with data to be written. + * \param address Address in media to write to. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + uint32_t address = (uint32_t)pAddress; + + if (!savedHeader) { + wdxsFileWriteMessage(HEADER_LOCATION, HEADER_LEN, (const uint8_t *)&fileHeader); + savedHeader = TRUE; + } + + /* offset by the header length written into flash */ + address += HEADER_LEN; + + wdxsFileWriteMessage(address, size, pBuf); + + return WSF_EFS_SUCCESS; +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +/*************************************************************************************************/ +/*! + * \brief Media Specific Command handler. + * + * \param cmd Identifier of the media specific command. + * \param param Optional Parameter to the command. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) +{ + switch (cmd) { + case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { + /* Currently unimplemented */ + return WDX_FTC_ST_SUCCESS; + } break; + case WSF_EFS_VALIDATE_CMD: + default: { + /* Validate the image with CRC32 */ + uint32_t crcResult = 0; + + APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, + fileHeader.fileLen); + + crc32((const void *)(WDXS_FileMedia.startAddress + HEADER_LEN), fileHeader.fileLen, + &crcResult); + + APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); + APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); + + /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ + if (fileHeader.fileCRC != crcResult) { + APP_TRACE_INFO0("Update file verification failure"); + return WDX_FTC_ST_VERIFICATION; + } + return WDX_FTC_ST_SUCCESS; + } break; + } + return WDX_FTC_ST_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Example of creating a WDXS stream. + * + * \param none + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void) +{ + wsfEsfAttributes_t attr; + char versionString[WSF_EFS_VERSION_LEN]; + + /* Add major number */ + versionString[0] = FW_VERSION_MAJOR; + /* Add "." */ + versionString[1] = '.'; + /* Minor number */ + versionString[2] = FW_VERSION_MINOR; + /* Add termination character */ + versionString[3] = 0; + + /* Register the media for the stream */ + WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); + + /* Set the attributes for the stream */ + attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | + WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | + WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | + WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); + + attr.type = WSF_EFS_FILE_TYPE_BULK; + + /* Potential buffer overrun is intentional to zero out fixed length field */ + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); + + /* Add a file for the stream */ + otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, + WDX_FLASH_MEDIA, &attr, 0); + APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); +} + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void) +{ + return WDXS_FileMedia.startAddress; +} + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void) +{ + return fileHeader.fileLen; +} + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void) +{ + wsfEsfAttributes_t attr; + uint8_t minor, major; + + WsfEfsGetAttributes(otaFileHdl, &attr); + major = attr.version[0]; + minor = attr.version[2]; + // store major in upper byte and minor in lower byte + return (uint16_t)major << 8 | minor; +} + +void initHeader(fileHeader_t *header) +{ + fileHeader.fileLen = header->fileLen; + fileHeader.fileCRC = header->fileCRC; +} diff --git a/Examples/MAX32655/BLE_periph/.cproject b/Examples/MAX32655/Bluetooth/BLE_periph/.cproject similarity index 100% rename from Examples/MAX32655/BLE_periph/.cproject rename to Examples/MAX32655/Bluetooth/BLE_periph/.cproject diff --git a/Examples/MAX32655/BLE_periph/.project b/Examples/MAX32655/Bluetooth/BLE_periph/.project similarity index 100% rename from Examples/MAX32655/BLE_periph/.project rename to Examples/MAX32655/Bluetooth/BLE_periph/.project diff --git a/Examples/MAX32655/BLE_fcc/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/BLE_periph/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_fcc/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/BLE_periph/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/BLE_periph/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_periph/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/BLE_periph/.vscode/README.md b/Examples/MAX32655/Bluetooth/BLE_periph/.vscode/README.md similarity index 100% rename from Examples/MAX32655/BLE_periph/.vscode/README.md rename to Examples/MAX32655/Bluetooth/BLE_periph/.vscode/README.md diff --git a/Examples/MAX32655/BLE_datc/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/BLE_periph/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_datc/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/BLE_periph/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/I2C_Sensor/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/BLE_periph/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/I2C_Sensor/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/BLE_periph/.vscode/flash.gdb diff --git a/Examples/MAX32655/BLE_periph/.vscode/launch.json b/Examples/MAX32655/Bluetooth/BLE_periph/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/BLE_periph/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/BLE_periph/.vscode/launch.json diff --git a/Examples/MAX32655/BLE_periph/.vscode/settings.json b/Examples/MAX32655/Bluetooth/BLE_periph/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/BLE_periph/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/BLE_periph/.vscode/settings.json diff --git a/Examples/MAX32655/BLE_periph/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/BLE_periph/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/BLE_periph/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/BLE_periph/.vscode/tasks.json diff --git a/Examples/MAX32655/BLE_periph/BLE_periph.launch b/Examples/MAX32655/Bluetooth/BLE_periph/BLE_periph.launch similarity index 100% rename from Examples/MAX32655/BLE_periph/BLE_periph.launch rename to Examples/MAX32655/Bluetooth/BLE_periph/BLE_periph.launch diff --git a/Examples/MAX32655/Bluetooth/BLE_periph/Makefile b/Examples/MAX32655/Bluetooth/BLE_periph/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_periph/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/Bluetooth/BLE_periph/README.md b/Examples/MAX32655/Bluetooth/BLE_periph/README.md new file mode 100644 index 00000000000..f825b4d0c10 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_periph/README.md @@ -0,0 +1,21 @@ +# BLE_periph +Refer to the [BLE_periph](../../../Libraries/Cordio/docs/Applications/BLE_periph.md) documentation in the Cordio Library. + +## Software + +### Project Usage + +Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. + +### Required Connections +* Connect a USB cable between the PC and the (USB/PWR - UART) connector. An anteanna or wired connection can be used if SMA is available on the board. + +### Project-Specific Build Notes + Setting `TRACE=1` in [**project.mk**](project.mk) initializes the on-board USB-to-UART adapter for +viewing the trace messages and interacting with the application. Port uses settings: + - Baud : 115200 + - Char size : 8 + - Parity : None + - Stop bits : 1 + - HW Flow Control : No + - SW Flow Control : No diff --git a/Examples/MAX32655/Bluetooth/BLE_periph/main.c b/Examples/MAX32655/Bluetooth/BLE_periph/main.c new file mode 100644 index 00000000000..d4b86f7c404 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_periph/main.c @@ -0,0 +1,218 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE app that advertises as "Periph". Recommended app for getting started with MSDK BLE. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include + +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "periph_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitPeriph(void); + +/*************************************************************************************************/ +/*! + * \brief RX data received callback. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + */ +/*************************************************************************************************/ +static void appRxCallback(uint8_t *data, uint16_t len) +{ + unsigned i; + + /* Print the received data */ + printf("App received: "); + + for (i = 0; i < len; i++) { + printf("0x%02X ", data[i]); + } + printf("\n"); + + /* Echo the data back to the central */ + if (!PeriphTXData(data, len)) { + printf("Error sending data to peer\n"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif + + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); +#endif + + StackInitPeriph(); + PeriphStart(); + + PeriphRegisterRXCallback(appRxCallback); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ + mainWsfInit(); + + while (1) { + /* Run the WSF OS */ + wsfOsDispatcher(); + + if (!WsfOsActive()) { + /* No WSF tasks are active, optionally sleep */ + } + } + + return 0; +} diff --git a/Examples/MAX32655/Bluetooth/BLE_periph/periph_api.h b/Examples/MAX32655/Bluetooth/BLE_periph/periph_api.h new file mode 100644 index 00000000000..e333c2042db --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_periph/periph_api.h @@ -0,0 +1,109 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************************************************/ +/*! + * \brief Peripheral RX callback function. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + */ +/*************************************************************************************************/ +typedef void (*periphRxCb_t)(uint8_t *data, uint16_t len); + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Register the callback for received data. + * + * \param cb Callback function for when data is received. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphRegisterRXCallback(periphRxCb_t cb); + +/*************************************************************************************************/ +/*! + * \brief Send data to the peer. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + * + * \return TRUE if data send, FALSE if error. + */ +/*************************************************************************************************/ +bool_t PeriphTXData(uint8_t *data, uint16_t len); + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32655_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ diff --git a/Examples/MAX32655/Bluetooth/BLE_periph/periph_main.c b/Examples/MAX32655/Bluetooth/BLE_periph/periph_main.c new file mode 100644 index 00000000000..419e9087b8b --- /dev/null +++ b/Examples/MAX32655/Bluetooth/BLE_periph/periph_main.c @@ -0,0 +1,402 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "periph_api.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + PERIPH_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + PERIPH_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + PERIPH_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t periphAdvCfg = { + { 30000, 0, 0 }, /*! Advertising durations in ms, 0 corresponds to infinite */ + { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t periphSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t periphAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t periphAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + /*! device name */ + 7, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'P', 'e', 'r', 'i', 'p', 'h' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t periphCccSet[PERIPH_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* PERIPH_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + periphRxCb_t rxCb; /* RX Callback function */ + dmConnId_t connId; /* Connection ID */ + bool_t connected; /* Connection state */ +} periphCb; + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(periphCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(periphCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphCccCback(attsCccEvt_t *pEvt) {} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t periphWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + /* Call callback with data */ + if (periphCb.rxCb != NULL) { + periphCb.rxCb(pValue, len); + } + + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void periphSetup(dmEvt_t *pMsg) +{ + /* set advertising data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(periphAdvDataDisc), + (uint8_t *)periphAdvDataDisc); + + /* set advertising data or connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(periphAdvDataDisc), + (uint8_t *)periphAdvDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void periphProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + periphSetup(pMsg); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + /* Save connId */ + periphCb.connId = (dmConnId_t)pMsg->hdr.param; + periphCb.connected = TRUE; + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + periphCb.connected = FALSE; + uiEvent = APP_UI_CONN_CLOSE; + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send data to the peer. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + * + * \return TRUE if data send, FALSE if error. + */ +/*************************************************************************************************/ +bool_t PeriphTXData(uint8_t *data, uint16_t len) +{ + /* Make sure we're connected */ + if (!periphCb.connected) { + return FALSE; + } + + /* Check if a client characteristic configuration descriptor is enabled and if + the characteristic's security level has been met. */ + if (AttsCccEnabled(periphCb.connId, PERIPH_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(periphCb.connId, WP_DAT_HDL, len, data); + + return TRUE; + } + + return FALSE; +} + +/*************************************************************************************************/ +/*! + * \brief Register the callback for received data. + * + * \param cb Callback function for when data is received. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphRegisterRXCallback(periphRxCb_t cb) +{ + periphCb.rxCb = cb; +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("PeriphHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &periphAdvDataDisc[5]); + + /* store handler ID */ + periphCb.handlerId = handlerId; + + /* Initialize the RX Callback to NULL */ + periphCb.rxCb = NULL; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&periphSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&periphAdvCfg; + pAttCfg = (attCfg_t *)&periphAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Periph got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + periphProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphStart(void) +{ + /* Register for stack callbacks */ + DmRegister(periphDmCback); + DmConnRegister(DM_CLIENT_ID_APP, periphDmCback); + AttRegister(periphAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(PERIPH_NUM_CCC_IDX, (attsCccSet_t *)periphCccSet, periphCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, periphWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(PERIPH_GATT_SC_CCC_IDX); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32655/BLE_periph/project.mk b/Examples/MAX32655/Bluetooth/BLE_periph/project.mk similarity index 100% rename from Examples/MAX32655/BLE_periph/project.mk rename to Examples/MAX32655/Bluetooth/BLE_periph/project.mk diff --git a/Examples/MAX32655/BLE_periph/stack_periph.c b/Examples/MAX32655/Bluetooth/BLE_periph/stack_periph.c similarity index 100% rename from Examples/MAX32655/BLE_periph/stack_periph.c rename to Examples/MAX32655/Bluetooth/BLE_periph/stack_periph.c diff --git a/Examples/MAX32655/Bootloader/.cproject b/Examples/MAX32655/Bluetooth/Bootloader/.cproject similarity index 100% rename from Examples/MAX32655/Bootloader/.cproject rename to Examples/MAX32655/Bluetooth/Bootloader/.cproject diff --git a/Examples/MAX32655/Bootloader/.project b/Examples/MAX32655/Bluetooth/Bootloader/.project similarity index 100% rename from Examples/MAX32655/Bootloader/.project rename to Examples/MAX32655/Bluetooth/Bootloader/.project diff --git a/Examples/MAX32655/BLE_fit/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/Bootloader/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_fit/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/Bootloader/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/Bootloader/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/Bootloader/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/Bootloader/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/Bootloader/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/Bootloader/.vscode/README.md b/Examples/MAX32655/Bluetooth/Bootloader/.vscode/README.md similarity index 100% rename from Examples/MAX32655/Bootloader/.vscode/README.md rename to Examples/MAX32655/Bluetooth/Bootloader/.vscode/README.md diff --git a/Examples/MAX32655/BLE_dats/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/Bootloader/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_dats/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/Bootloader/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/ICC/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/Bootloader/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/ICC/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/Bootloader/.vscode/flash.gdb diff --git a/Examples/MAX32655/Bootloader/.vscode/launch.json b/Examples/MAX32655/Bluetooth/Bootloader/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/Bootloader/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/Bootloader/.vscode/launch.json diff --git a/Examples/MAX32655/Bootloader/.vscode/settings.json b/Examples/MAX32655/Bluetooth/Bootloader/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/Bootloader/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/Bootloader/.vscode/settings.json diff --git a/Examples/MAX32655/Bootloader/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/Bootloader/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/Bootloader/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/Bootloader/.vscode/tasks.json diff --git a/Examples/MAX32655/Bootloader/Bootloader.launch b/Examples/MAX32655/Bluetooth/Bootloader/Bootloader.launch similarity index 100% rename from Examples/MAX32655/Bootloader/Bootloader.launch rename to Examples/MAX32655/Bluetooth/Bootloader/Bootloader.launch diff --git a/Examples/MAX32655/Bluetooth/Bootloader/Makefile b/Examples/MAX32655/Bluetooth/Bootloader/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/Bootloader/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/Bootloader/README.md b/Examples/MAX32655/Bluetooth/Bootloader/README.md similarity index 100% rename from Examples/MAX32655/Bootloader/README.md rename to Examples/MAX32655/Bluetooth/Bootloader/README.md diff --git a/Examples/MAX32655/Bluetooth/Bootloader/boot_lower.S b/Examples/MAX32655/Bluetooth/Bootloader/boot_lower.S new file mode 100644 index 00000000000..4236373a167 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/Bootloader/boot_lower.S @@ -0,0 +1,78 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + + .syntax unified + .arch armv7-m + .text + .thumb + .thumb_func + .align 2 + + + .globl Boot_Lower + .type Boot_Lower %function +/* Boot from the lower flash array */ +Boot_Lower: + + ldr r0,=0x10004000 /* Address for main flash image */ + ldr r1,=0xE000ED08 /* Address for SCB_VTOR_REG */ + + /* First 32-bit word in image is initial stack pointer */ + /* Second 32-bit word in image is Address of the Reset Handler */ + + /* Set VTOR with vector table base address */ + str r0,[r1] + /* Load initial SP */ + ldr sp,[r0] + /* Load LR with address of the Reset Handler */ + ldr lr,[r0,#4] + /* Jump to Reset Handler. */ + bx lr diff --git a/Examples/MAX32655/Bluetooth/Bootloader/bootloader.ld b/Examples/MAX32655/Bluetooth/Bootloader/bootloader.ld new file mode 100644 index 00000000000..33db6043f0f --- /dev/null +++ b/Examples/MAX32655/Bluetooth/Bootloader/bootloader.ld @@ -0,0 +1,168 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +BOOTLOADER_ORIGIN = 0x10000000; +BOOTLOADER_LEN = 0x4000; +FLASH_SECTION_LEN = 0x40000 - BOOTLOADER_LEN; +FLASH0_ORIGIN = BOOTLOADER_ORIGIN + BOOTLOADER_LEN; +FLASH0_LEN = 0x40000; +MEMORY { + FLASH (rx) : ORIGIN = BOOTLOADER_ORIGIN, LENGTH = BOOTLOADER_LEN + FLASH0 (rx) : ORIGIN = FLASH0_ORIGIN, LENGTH = FLASH0_LEN + FLASH1 (rx) : ORIGIN = 0x10040000, LENGTH = 0x40000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 +} + +SECTIONS { + + .text : + { + _text = .; + KEEP(*(.isr_vector)) + EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ + *(.rodata*) /* read-only data: "const" */ + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* C++ Exception handling */ + KEEP(*(.eh_frame*)) + _etext = .; + } > FLASH + + .flash0 (NOLOAD) : + { + _flash0 = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash0 = ALIGN(., 4); + } > FLASH0 + + .flash1 (NOLOAD) : + { + _flash1 = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash1 = ALIGN(., 4); + } > FLASH1 + + /* it's used for C++ exception handling */ + /* we need to keep this to avoid overlapping */ + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > FLASH + + .data : + { + _data = ALIGN(., 4); + *(.data*) /*read-write initialized data: initialized global variable*/ + *(.flashprog*) /* Flash program */ + + /* These array sections are used by __libc_init_array to call static C++ constructors */ + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + _edata = ALIGN(., 4); + } > SRAM AT>FLASH + __load_data = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _bss = .; + *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ + *(COMMON) + _ebss = ALIGN(., 4); + } > SRAM + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + *(.stack*) + } > SRAM + + .heap (COPY): + { + . = ALIGN(4); + *(.heap*) + __HeapLimit = ABSOLUTE(__StackLimit); + } > SRAM + + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") +} diff --git a/Examples/MAX32655/Bluetooth/Bootloader/main_ext.c b/Examples/MAX32655/Bluetooth/Bootloader/main_ext.c new file mode 100644 index 00000000000..8f2a444d9f6 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/Bootloader/main_ext.c @@ -0,0 +1,368 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Bootloader + * @details Simple bootloader to verify and replace images. + */ + +/***** Includes *****/ +#include +#include +#include +#include +#include "mxc_device.h" +#include "led.h" +#include "pb.h" +#include "board.h" +#include "mxc_delay.h" +#include "flc.h" +#include "Ext_Flash.h" +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/* Addresses for the flash sections, defined in the linker file */ +extern uint32_t _flash0; +extern uint32_t _flash1; + +#define FLASH0_START ((uint32_t)&_flash0) +#define FLASH1_START ((uint32_t)&_flash1) +#define FLASH_ERASED_WORD 0xFFFFFFFF +#define CRC32_LEN 4 +#define EXT_FLASH_BLOCK_SIZE 224 + +#define DELAY(loopCount) \ + for (i = 0; i < loopCount; i++) {} + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; +fileHeader_t fileHeader; + +typedef enum { COPY_FILE_OP, CALC_CRC32_OP } externFileOp_t; +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/* Defined in boot_lower.S */ +extern void Boot_Lower(void); + +void led_On(unsigned int idx) +{ + MXC_GPIO_OutClr(led_pin[idx].port, led_pin[idx].mask); +} + +void led_Off(unsigned int idx) +{ + MXC_GPIO_OutSet(led_pin[idx].port, led_pin[idx].mask); +} + +void led_Toggle(unsigned int idx) +{ + MXC_GPIO_OutToggle(led_pin[idx].port, led_pin[idx].mask); +} + +void ledSuccessPattern(void) +{ + /* Green LED blinks */ + volatile int i, j; + for (j = 0; j < 10; j++) { + led_Toggle(1); + DELAY(0xFFFFF); + } +} +void ledFailPattern(void) +{ + /* Red LED blinks */ + volatile int i, j; + for (j = 0; j < 10; j++) { + led_Toggle(0); + DELAY(0xFFFFF); + } +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) { + table[i] = crc32_for_byte(i); + } + } + + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +void bootError(void) +{ + /* Flash the failure LED */ + ledFailPattern(); + NVIC_SystemReset(); +} + +int flashPageErased(uint32_t *addr) +{ + /* Determine if this page is totally erased */ + int i; + for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { + if (*(addr + i) != FLASH_ERASED_WORD) { + return 0; + } + } + + return 1; +} + +static int multiPageErase(uint8_t *address, uint32_t pages) +{ + int err; + volatile uint32_t address32 = (uint32_t)address; + address32 &= 0xFFFFF; + + while (pages) { + err = MXC_FLC_PageErase((uint32_t)address); + if (err != E_NO_ERROR) { + return err; + } + + address += MXC_FLASH_PAGE_SIZE; + pages--; + } + + return E_NO_ERROR; +} + +static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) +{ + int err; + + while ((len / 16) > 0) { + err = MXC_FLC_Write128((uint32_t)address, data); + if (err != E_NO_ERROR) { + return err; + } + len -= 16; + address += 4; + data += 4; + } + while (len) { + err = MXC_FLC_Write32((uint32_t)address, *data); + if (err != E_NO_ERROR) { + return err; + } + len -= 4; + address += 1; + data += 1; + } + return E_NO_ERROR; +} + +uint32_t externFileOperation(externFileOp_t fileOperation) +{ + uint32_t internalFlashStartingAddress = FLASH0_START; + uint8_t extFlashBlockBuff[EXT_FLASH_BLOCK_SIZE] = { 0 }; + uint32_t startingAddress = 0x00000000 + sizeof(fileHeader_t); + uint32_t fileLen = fileHeader.fileLen; + uint32_t crcResult = 0; + uint32_t err = 0; + /* Read blocks from ext flash and perform desired fileOperation */ + while (fileLen >= EXT_FLASH_BLOCK_SIZE) { + Ext_Flash_Read(startingAddress, extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, + Ext_Flash_DataLine_Quad); + if (fileOperation == CALC_CRC32_OP) { + crc32(extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, &crcResult); + } else if (fileOperation == COPY_FILE_OP) { + err += flashWrite((uint32_t *)internalFlashStartingAddress, + (uint32_t *)extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE); + internalFlashStartingAddress += EXT_FLASH_BLOCK_SIZE; + } + fileLen -= EXT_FLASH_BLOCK_SIZE; + startingAddress += EXT_FLASH_BLOCK_SIZE; + } + /* Read remaining data that did not fill a block */ + if (fileLen) { + Ext_Flash_Read(startingAddress, extFlashBlockBuff, fileLen, Ext_Flash_DataLine_Quad); + if (fileOperation == CALC_CRC32_OP) { + crc32(extFlashBlockBuff, fileLen, &crcResult); + } else if (fileOperation == COPY_FILE_OP) { + err += flashWrite((uint32_t *)internalFlashStartingAddress, + (uint32_t *)extFlashBlockBuff, fileLen); + } + } + if (fileOperation == COPY_FILE_OP) + return err; + + return crcResult; +} + +int main(void) +{ + volatile int i; + int err = 0x00000000; + uint32_t startingAddress = 0x00000000; + uint32_t crcResult = 0x00000000; + int numLedsBlink; + + /* Limit the number of LED blinks */ + if (num_leds > 2) { + numLedsBlink = 2; + } else { + numLedsBlink = num_leds; + } + + /* Prevent bricks */ + if (numLedsBlink == 0) { + DELAY(0x3FFFFF); + } + + LED_Init(); + for (int led = 0; led < numLedsBlink; led++) { + led_On(led); + DELAY(0x1FFFFF); + led_Off(led); + DELAY(0x1FFFFF); + } + + /* disable interrupts to prevent these operations from being interrupted */ + __disable_irq(); + + /* init external flash */ + err += Ext_Flash_Init(); + err += Ext_Flash_Quad(1); + + if (err == 0) { + /* Get header from ext flash */ + Ext_Flash_Read(startingAddress, (uint8_t *)&fileHeader, sizeof(fileHeader_t), + Ext_Flash_DataLine_Quad); + + /* Verify header integrity */ + if (fileHeader.fileLen != 0xFFFFFFFF && fileHeader.fileCRC != 0xFFFFFFFF) { + crcResult = externFileOperation(CALC_CRC32_OP); + /* Check the calculated digest against what was received */ + if (fileHeader.fileCRC != crcResult) { + ledFailPattern(); + } else { + /* Calculate how many pages the new image will occupy, +1 for remainder */ + uint32_t pagesToErase = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; + /* Erase the destination pages */ + if (multiPageErase((uint8_t *)FLASH0_START, pagesToErase) != E_NO_ERROR) { + /* Failed to erase pages */ + bootError(); + } + /* copy external file */ + err = externFileOperation(COPY_FILE_OP); + if (err) { + bootError(); + } + /* check what was written to flash */ + crcResult = 0; + crc32((const void *)FLASH0_START, fileHeader.fileLen, &crcResult); + if (crcResult != fileHeader.fileCRC) { + /* Bad firmware was written to internal flash */ + while (1) { + ledFailPattern(); + } + } + /* As long as first sector is erased so the bootloader does not try to reload its contents */ + Ext_Flash_Erase(0x00000000, Ext_Flash_Erase_64K); + if (err == 0) { + ledSuccessPattern(); + } + } + } + } else { + /* external flash init error */ + ledFailPattern(); + bootError(); + } + + /* Boot from lower image */ + Boot_Lower(); + + while (1) {} + + return 0; +} diff --git a/Examples/MAX32655/Bluetooth/Bootloader/main_int.c b/Examples/MAX32655/Bluetooth/Bootloader/main_int.c new file mode 100644 index 00000000000..5984f30d882 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/Bootloader/main_int.c @@ -0,0 +1,297 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Bootloader + * @details Simple bootloader to verify and replace images. + */ + +/***** Includes *****/ +#include +#include +#include +#include "mxc_device.h" +#include "led.h" +#include "pb.h" +#include "board.h" +#include "mxc_delay.h" +#include "flc.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/* Addresses for the flash sections, defined in the linker file */ +extern uint32_t _flash0; +extern uint32_t _flash1; + +#define FLASH0_START ((uint32_t)&_flash0) +#define FLASH1_START ((uint32_t)&_flash1) +#define FLASH_ERASED_WORD 0xFFFFFFFF +#define CRC32_LEN 4 + +#define DELAY(loopCount) \ + for (i = 0; i < loopCount; i++) {} + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; +fileHeader_t fileHeader; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/* Defined in boot_lower.S */ +extern void Boot_Lower(void); + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) { + table[i] = crc32_for_byte(i); + } + } + + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +void bootError(void) +{ + /* Flash the failure LED */ + int j; + volatile int i; + for (j = 0; j < 10; j++) { + LED_Toggle(0); + for (i = 0; i < 0xFFFFF; i++) {} + } + NVIC_SystemReset(); +} + +int flashPageErased(uint32_t *addr) +{ + /* Determine if this page is totally erased */ + int i; + for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { + if (*(addr + i) != FLASH_ERASED_WORD) { + return 0; + } + } + + return 1; +} + +static int multiPageErase(uint8_t *address, uint32_t size) +{ + int err; + volatile uint32_t address32 = (uint32_t)address; + address32 &= 0xFFFFF; + + /* Page align the size */ + size += MXC_FLASH_PAGE_SIZE - (size % MXC_FLASH_PAGE_SIZE); + + while (size) { + err = MXC_FLC_PageErase((uint32_t)address); + if (err != E_NO_ERROR) { + return err; + } + + address += MXC_FLASH_PAGE_SIZE; + size -= MXC_FLASH_PAGE_SIZE; + } + + return E_NO_ERROR; +} + +static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) +{ + int err; + + while ((len / 16) > 0) { + err = MXC_FLC_Write128((uint32_t)address, data); + if (err != E_NO_ERROR) { + return err; + } + len -= 16; + address += 4; + data += 4; + } + while (len) { + err = MXC_FLC_Write32((uint32_t)address, *data); + if (err != E_NO_ERROR) { + return err; + } + len -= 4; + address += 1; + data += 1; + } + return E_NO_ERROR; +} + +int main(void) +{ + volatile int i; + int numLedsBlink; + + /* Limit the number of LED blinks */ + if (num_leds > 2) { + numLedsBlink = 2; + } else { + numLedsBlink = num_leds; + } + + /* Prevent bricks */ + if (numLedsBlink == 0) { + DELAY(0x3FFFFF); + } + + LED_Init(); + for (int led = 0; led < numLedsBlink; led++) { + LED_On(led); + DELAY(0x1FFFFF); + LED_Off(led); + DELAY(0x1FFFFF); + } + + /* disable interrupts to prevent these operations from being interrupted */ + __disable_irq(); + + /* Get the file header */ + fileHeader.fileLen = (uint32_t) * (uint32_t *)FLASH1_START; + fileHeader.fileCRC = (uint32_t) * (uint32_t *)(FLASH1_START + sizeof(uint32_t)); + + /* Check if FLASH1 is erased */ + if (fileHeader.fileLen == 0xFFFFFFFF) { + fileHeader.fileLen = 0; + } + + /* Attempt to verify the upper image if we get a valid length */ + if (fileHeader.fileLen) { + /* Validate the image with CRC32 */ + uint32_t crcResult = 0; + + crc32((const void *)(FLASH1_START + sizeof(fileHeader)), fileHeader.fileLen, &crcResult); + + /* Check the calculated digest against what was received */ + if (crcResult == fileHeader.fileCRC) { + /* Erase the destination pages */ + if (multiPageErase((uint8_t *)FLASH0_START, fileHeader.fileLen) != E_NO_ERROR) { + /* Failed to erase pages */ + bootError(); + } + /* Copy the new firmware image */ + if (flashWrite((uint32_t *)FLASH0_START, + (uint32_t *)(FLASH1_START + sizeof(fileHeader)), + fileHeader.fileLen) != E_NO_ERROR) { + /* Failed to write new image */ + bootError(); + } else { + /* Flash the success LED for a successful update */ + int j; + for (j = 0; j < 10; j++) { + LED_Toggle(1); + for (i = 0; i < 0xFFFFF; i++) {} + } + } + /* Erase the update pages */ + if (multiPageErase((uint8_t *)FLASH1_START, fileHeader.fileLen) != E_NO_ERROR) { + /* Failed to erase pages, continue to boot from the lower pages */ + } + } else { + /* Flash the error LED for a CRC failure */ + int j; + for (j = 0; j < 10; j++) { + LED_Toggle(0); + for (i = 0; i < 0xFFFFF; i++) {} + } + } + } + + /* Boot from lower image */ + Boot_Lower(); + + while (1) {} +} diff --git a/Examples/MAX32655/Bootloader/project.mk b/Examples/MAX32655/Bluetooth/Bootloader/project.mk similarity index 100% rename from Examples/MAX32655/Bootloader/project.mk rename to Examples/MAX32655/Bluetooth/Bootloader/project.mk diff --git a/Examples/MAX32655/RF_Test/.cproject b/Examples/MAX32655/Bluetooth/RF_Test/.cproject similarity index 100% rename from Examples/MAX32655/RF_Test/.cproject rename to Examples/MAX32655/Bluetooth/RF_Test/.cproject diff --git a/Examples/MAX32655/RF_Test/.project b/Examples/MAX32655/Bluetooth/RF_Test/.project similarity index 100% rename from Examples/MAX32655/RF_Test/.project rename to Examples/MAX32655/Bluetooth/RF_Test/.project diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.settings/language.settings.xml b/Examples/MAX32655/Bluetooth/RF_Test/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.settings/language.settings.xml rename to Examples/MAX32655/Bluetooth/RF_Test/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32655/Bluetooth/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32655/Bluetooth/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32655/RF_Test/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32655/Bluetooth/RF_Test/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32655/RF_Test/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32655/Bluetooth/RF_Test/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32655/RF_Test/.vscode/README.md b/Examples/MAX32655/Bluetooth/RF_Test/.vscode/README.md similarity index 100% rename from Examples/MAX32655/RF_Test/.vscode/README.md rename to Examples/MAX32655/Bluetooth/RF_Test/.vscode/README.md diff --git a/Examples/MAX32655/BLE_fcc/.vscode/c_cpp_properties.json b/Examples/MAX32655/Bluetooth/RF_Test/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_fcc/.vscode/c_cpp_properties.json rename to Examples/MAX32655/Bluetooth/RF_Test/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/LP/.vscode/flash.gdb b/Examples/MAX32655/Bluetooth/RF_Test/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/LP/.vscode/flash.gdb rename to Examples/MAX32655/Bluetooth/RF_Test/.vscode/flash.gdb diff --git a/Examples/MAX32655/RF_Test/.vscode/launch.json b/Examples/MAX32655/Bluetooth/RF_Test/.vscode/launch.json similarity index 100% rename from Examples/MAX32655/RF_Test/.vscode/launch.json rename to Examples/MAX32655/Bluetooth/RF_Test/.vscode/launch.json diff --git a/Examples/MAX32655/RF_Test/.vscode/settings.json b/Examples/MAX32655/Bluetooth/RF_Test/.vscode/settings.json similarity index 100% rename from Examples/MAX32655/RF_Test/.vscode/settings.json rename to Examples/MAX32655/Bluetooth/RF_Test/.vscode/settings.json diff --git a/Examples/MAX32655/RF_Test/.vscode/tasks.json b/Examples/MAX32655/Bluetooth/RF_Test/.vscode/tasks.json similarity index 100% rename from Examples/MAX32655/RF_Test/.vscode/tasks.json rename to Examples/MAX32655/Bluetooth/RF_Test/.vscode/tasks.json diff --git a/Examples/MAX32655/RF_Test/BLE_fcc.launch b/Examples/MAX32655/Bluetooth/RF_Test/BLE_fcc.launch similarity index 100% rename from Examples/MAX32655/RF_Test/BLE_fcc.launch rename to Examples/MAX32655/Bluetooth/RF_Test/BLE_fcc.launch diff --git a/Examples/MAX32655/RF_Test/CLI-commands.c b/Examples/MAX32655/Bluetooth/RF_Test/CLI-commands.c similarity index 100% rename from Examples/MAX32655/RF_Test/CLI-commands.c rename to Examples/MAX32655/Bluetooth/RF_Test/CLI-commands.c diff --git a/Examples/MAX32655/Bluetooth/RF_Test/FreeRTOSConfig.h b/Examples/MAX32655/Bluetooth/RF_Test/FreeRTOSConfig.h new file mode 100644 index 00000000000..bcf592d74aa --- /dev/null +++ b/Examples/MAX32655/Bluetooth/RF_Test/FreeRTOSConfig.h @@ -0,0 +1,149 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ + +#include +#include "max32655.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* CMSIS keeps a global updated with current system clock in Hz */ +#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) + +#define SLEEP_LED 1 +#define DEEPSLEEP_LED 0 + +/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ +// #define configUSE_TICKLESS_IDLE 1 + +/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will +increase the amount of time spent in standby mode, thus reducing average power consumption. */ +#ifdef configUSE_TICKLESS_IDLE +#define configTICK_RATE_HZ ((portTickType)10000) +#else +#define configTICK_RATE_HZ ((portTickType)1000) +#endif + +#define configRTC_TICK_RATE_HZ (32768) + +#define configTOTAL_HEAP_SIZE ((size_t)(100 * 1024)) + +#define configMINIMAL_STACK_SIZE ((uint16_t)128) + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configUSE_CO_ROUTINES 0 +#define configUSE_16_BIT_TICKS 0 +#define configUSE_MUTEXES 1 + +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) +#define configTIMER_QUEUE_LENGTH 8 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE + +/* Run time and task stats gathering related definitions. */ +#define configUSE_TRACE_FACILITY 1 +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelay 1 + +/* # of priority bits (configured in hardware) is provided by CMSIS */ +#define configPRIO_BITS __NVIC_PRIO_BITS + +#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) + +/* Only the top three bits are implemented. This is the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY \ + ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) + +/* Priority 5, or 160 as only the top three bits are implemented. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) + +/* Alias the default handler names to match CMSIS weak symbols */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#ifdef configUSE_TICKLESS_IDLE +/* Provide routines for tickless idle pre- and post- processing */ +void vPreSleepProcessing(uint32_t *); +void vPostSleepProcessing(uint32_t); +#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); +#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); +#endif + +/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 + +/* Overides FreeRTOS+CLI help command formatting*/ +#define configUSE_CUSTOM_HELP_COMMAND 1 + +#endif // EXAMPLES_MAX32655_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/Bluetooth/RF_Test/Makefile b/Examples/MAX32655/Bluetooth/RF_Test/Makefile new file mode 100644 index 00000000000..0ae1a17ffe4 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/RF_Test/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32655 +TARGET_UC := MAX32655 +TARGET_LC := max32655 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32655/RF_Test/README.md b/Examples/MAX32655/Bluetooth/RF_Test/README.md similarity index 100% rename from Examples/MAX32655/RF_Test/README.md rename to Examples/MAX32655/Bluetooth/RF_Test/README.md diff --git a/Examples/MAX32655/RF_Test/RF_Test.launch b/Examples/MAX32655/Bluetooth/RF_Test/RF_Test.launch similarity index 100% rename from Examples/MAX32655/RF_Test/RF_Test.launch rename to Examples/MAX32655/Bluetooth/RF_Test/RF_Test.launch diff --git a/Examples/MAX32655/Bluetooth/RF_Test/freertos_tickless.c b/Examples/MAX32655/Bluetooth/RF_Test/freertos_tickless.c new file mode 100644 index 00000000000..1f58867382f --- /dev/null +++ b/Examples/MAX32655/Bluetooth/RF_Test/freertos_tickless.c @@ -0,0 +1,203 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* MXC */ +#include "mxc_device.h" +#include "board.h" +#include "mxc_assert.h" + +/* FreeRTOS includes */ +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +/* Maxim CMSIS */ +#include "lp.h" +#include "pwrseq_regs.h" +#include "wut.h" +#include "mcr_regs.h" +#include "simo.h" +#include "icc.h" +#include "pb.h" +#include "led.h" + +#define WUT_RATIO (configRTC_TICK_RATE_HZ / configTICK_RATE_HZ) +#define MAX_WUT_SNOOZE (5 * configRTC_TICK_RATE_HZ) +#define MIN_SYSTICK 2 +#define MIN_WUT_TICKS 50 + +static uint32_t wutSnooze = 0; +static int wutSnoozeValid = 0; + +extern mxc_gpio_cfg_t uart_cts; +extern mxc_gpio_cfg_t uart_rts; + +/* + * Sleep-check function + * + * Your code should over-ride this weak function and return E_NO_ERROR if + * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other + * return code will prevent FreeRTOS from entering tickless idle. + */ +__attribute__((weak)) int freertos_permit_tickless(void) +{ + return E_NO_ERROR; +} + +/* + * Snooze the wake up timer + * + * Prevent the system from entering deep sleep for MAX_WUT_SNOOZE WUT ticks. + */ +void wutHitSnooze(void) +{ + wutSnooze = MXC_WUT_GetCount(MXC_WUT0) + MAX_WUT_SNOOZE; + wutSnoozeValid = 1; +} + +/* + * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c + * + * DEEPSLEEP mode will stop SysTick from counting, so that can't be + * used to wake up. Instead, calculate a wake-up period for the WUT to + * interrupt the WFI and continue execution. + * + */ +void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) +{ + uint32_t wut_ticks; + uint32_t actual_ticks; + uint32_t pre_capture, post_capture; + + /* We do not currently handle to case where the WUT is slower than the RTOS tick */ + MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); + + if (SysTick->VAL < MIN_SYSTICK) { + /* Avoid sleeping too close to a systick interrupt */ + return; + } + + /* Calculate the number of WUT ticks, but we need one to synchronize */ + wut_ticks = (xExpectedIdleTime - 1) * WUT_RATIO; + + if (wut_ticks > MAX_WUT_SNOOZE) { + wut_ticks = MAX_WUT_SNOOZE; + } + + /* Check to see if we meet the minimum requirements for deep sleep */ + if (wut_ticks < MIN_WUT_TICKS) { + /* Finish out the rest of this tick with normal sleep */ + MXC_LP_EnterSleepMode(); + return; + } + + /* Check the WUT snooze */ + if (wutSnoozeValid && (MXC_WUT_GetCount(MXC_WUT0) < wutSnooze)) { + /* Finish out the rest of this tick with normal sleep */ + MXC_LP_EnterSleepMode(); + return; + } + wutSnoozeValid = 0; + + /* Enter a critical section but don't use the taskENTER_CRITICAL() + method as that will mask interrupts that should exit sleep mode. */ + __asm volatile("cpsid i"); + + /* If a context switch is pending or a task is waiting for the scheduler + to be unsuspended then abandon the low power entry. */ + /* Also check the MXC drivers for any in-progress activity */ + if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || + (freertos_permit_tickless() != E_NO_ERROR)) { + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + return; + } + + /* Set RTS to prevent the console UART from transmitting */ + MXC_GPIO_OutSet(uart_rts.port, uart_rts.mask); + + /* Snapshot the current WUT value */ + MXC_WUT_Edge(MXC_WUT0); + pre_capture = MXC_WUT_GetCount(MXC_WUT0); + MXC_WUT_SetCompare(MXC_WUT0, pre_capture + wut_ticks); + MXC_WUT_Edge(MXC_WUT0); + + LED_Off(1); + + MXC_LP_EnterStandbyMode(); + + post_capture = MXC_WUT_GetCount(MXC_WUT0); + actual_ticks = post_capture - pre_capture; + + LED_On(1); + + /* Snooze the deep sleep if we woke up on the UART CTS GPIO */ + if ((uart_cts.port == MXC_GPIO0) && (MXC_PWRSEQ->lpwkst0 & uart_cts.mask)) { + wutHitSnooze(); + } else if ((uart_cts.port == MXC_GPIO1) && (MXC_PWRSEQ->lpwkst1 & uart_cts.mask)) { + wutHitSnooze(); + } + + /* Clear RTS */ + MXC_GPIO_OutClr(uart_rts.port, uart_rts.mask); + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + /* + * Advance ticks by # actually elapsed + */ + portENTER_CRITICAL(); + vTaskStepTick((actual_ticks / WUT_RATIO)); + portEXIT_CRITICAL(); +} diff --git a/Examples/MAX32655/Bluetooth/RF_Test/main.c b/Examples/MAX32655/Bluetooth/RF_Test/main.c new file mode 100644 index 00000000000..d9861254be5 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/RF_Test/main.c @@ -0,0 +1,920 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Main module. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ +#include "main.h" +/************************************************************************************************** + Definitions +**************************************************************************************************/ +/*! UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define FREQ_HOP_PERIOD_US 20000 +#define HISTORY_MEMORY_LENGTH 10 +/* FreeRTOS */ +#define CMD_LINE_BUF_SIZE 100 +#define OUTPUT_BUF_SIZE 512 +#define CONSOLE_UART 0 //EvKit/FTHR +/* Task IDs */ +TaskHandle_t cmd_task_id; +TaskHandle_t tx_task_id; +TaskHandle_t sweep_task_id; +TaskHandle_t help_task_id; +/* FreeRTOS+CLI */ +xSemaphoreHandle rfTestMutex; + +mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(CONSOLE_UART); +unsigned int disable_tickless = 1; /* Enables/disables tick-less mode */ +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/* Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/* Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +static uint8_t phy = LL_PHY_LE_1M; +static uint8_t phy_str[16]; +static uint8_t packetType_str[16]; +static uint8_t txFreqHopCh; +static uint8_t packetLen = 255; +static uint8_t packetType = LL_TEST_PKT_TYPE_AA; +static int8_t txPower = 10; +/* UART RX */ +char inputBuffer[CMD_LINE_BUF_SIZE]; /* Buffer for input */ +unsigned int bufferIndex; /* Index into buffer */ +char receivedChar; +/* CLI escape sequences*/ +uint8_t backspace[] = "\x08 \x08"; +enum { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW }; +/* CLI History */ +cmd_history_t cmd_history[HISTORY_MEMORY_LENGTH]; +static uint32_t escCounter = 0; +static uint8_t keyBoardSequenceBuff[3] = { 0 }; +queue_t historyQueue; + +/* CLI Prompt */ +test_t activeTest = NO_TEST; +bool clearScreen = false; +bool pausePrompt = false; + +/************************************************************************************************** + Functions +**************************************************************************************************/ +/* Physical layer functions. */ +extern void llc_api_set_txpower(int8_t power); +extern void dbb_seq_select_rf_channel(uint32_t rf_channel); +extern void llc_api_tx_ldo_setup(void); +extern void dbb_seq_tx_enable(void); +extern void dbb_seq_tx_disable(void); +extern const CLI_Command_Definition_t xCommandList[]; +void vRegisterCLICommands(void); +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPhyStr(uint8_t phy) +{ + switch (phy) { + case LL_TEST_PHY_LE_1M: + default: + memcpy(phy_str, "1M PHY", 7); + break; + case LL_TEST_PHY_LE_2M: + memcpy(phy_str, "2M PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S8: + memcpy(phy_str, "S8 PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S2: + memcpy(phy_str, "S2 PHY", 7); + break; + } + return phy_str; +} +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPacketTypeStr(void) +{ + switch (packetType) { + case LL_TEST_PKT_TYPE_PRBS9: + memcpy(packetType_str, "PRBS9", 6); + break; + case LL_TEST_PKT_TYPE_0F: + memcpy(packetType_str, "0x0F", 5); + break; + case LL_TEST_PKT_TYPE_55: + memcpy(packetType_str, "0x55", 5); + break; + case LL_TEST_PKT_TYPE_PRBS15: + memcpy(packetType_str, "PRBS15", 7); + break; + case LL_TEST_PKT_TYPE_FF: + memcpy(packetType_str, "0xFF", 5); + break; + case LL_TEST_PKT_TYPE_00: + memcpy(packetType_str, "0x00", 5); + break; + case LL_TEST_PKT_TYPE_F0: + memcpy(packetType_str, "0xF0", 5); + break; + case LL_TEST_PKT_TYPE_AA: + default: + memcpy(packetType_str, "0xAA", 5); + break; + } + return packetType_str; +} +/*************************************************************************************************/ +/*! + * \fn Timer 2 interrupts handler. + * + * \brief Controls the frequency hopping. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void TMR2_IRQHandler(void) +{ + int res; + + MXC_TMR_TO_Clear(MXC_TMR2); + + /* Start the next channel */ + res = LlEnhancedTxTest(txFreqHopCh++, packetLen, packetType, phy, 0); + if (res != LL_SUCCESS) + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + + /* Wrap the channels */ + if (txFreqHopCh == 40) + txFreqHopCh = 0; + + /* Restart the timeout */ + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); + MXC_TMR_EnableInt(MXC_TMR2); +} +/*************************************************************************************************/ +/*! + * \fn processEscSequence. + * + * \brief Compares keyboard sequence to ansi escape codes. + * + * \param seq keyboard sequence. + * + * \return None. + */ +/*************************************************************************************************/ +uint8_t processEscSequence(uint8_t *seq) +{ + uint8_t retVal = 0; + + uint8_t arrows[4][3] = { + /* Order of arrows here alligns with enum uptop */ + { 27, 91, 65 }, /* up arrow */ + + { 27, 91, 66 }, /* down arrow */ + + { 27, 91, 67 }, /* right arrow */ + + { 27, 91, 68 }, /* left arrow */ + }; + + /*arrows*/ + for (int arrowKey = 0; arrowKey < 4; arrowKey++) { //cycle through 4 arrow keys + for (int i = 0; i < 3; i++) { //cycle thorugh each index of each arrow key sequence + //compare each index of arrow key to each index of typed sequence buffer + for (int j = 0; j < 3; j++) { + if (seq[j] == arrows[arrowKey][i]) { + retVal++; + break; + } + } + } + /* If 3 motches found */ + if (retVal == 3) + return arrowKey; + else + retVal = 0; + } + + return 0xFF; +} +/*************************************************************************************************/ +/*! + * \fn cmdHistoryAdd. + * + * \brief adds latest command to command history buffer + * + * \param q pointer to the circular buffer holding command history + * \param cmd pointer to the command string to be added + * + * \return None. + */ +/*************************************************************************************************/ +void cmdHistoryAdd(queue_t *q, const uint8_t *cmd) +{ + /* clear command history slot of any previous data */ + memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); + /* copy new command histroy */ + memcpy(&q->command[q->head], cmd, strlen((const char *)cmd)); + q->command[q->head].length = strlen((const char *)cmd); + + /* update head, and push tail up if we have looped back around */ + q->head = (q->head + 1) % HISTORY_MEMORY_LENGTH; + if (q->head == q->tail) { + q->tail = (q->tail + 1) % HISTORY_MEMORY_LENGTH; + } + memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); + /* update pointer */ + q->queuePointer = historyQueue.head; +} +/*************************************************************************************************/ +/*! + * \fn updateQueuePointer. + * + * \brief Updates an internal marker pointing to historical command to be printed, based on up/down arrow + * + * \param q pointer to the circular buffer holding command history + * + * \param upArrow flag used to upated the queuePoniter delimiting which command to print + * + * \return None. + */ +/*************************************************************************************************/ +void updateQueuePointer(queue_t *q, bool upArrow) +{ + if (upArrow) { + /* empty queue or reached tail already */ + if (q->head == q->tail || q->queuePointer == q->tail) + return; + if (q->queuePointer == 0) + q->queuePointer = HISTORY_MEMORY_LENGTH - 1; + else + q->queuePointer = (q->queuePointer - 1) % HISTORY_MEMORY_LENGTH; + + } else { + /* empty queue or reached head already */ + if (q->head == q->tail || q->queuePointer == q->head) + return; + q->queuePointer = (q->queuePointer + 1) % HISTORY_MEMORY_LENGTH; + } +} +/*************************************************************************************************/ +/*! + * \fn printHistory. + * + * \brief prints previously typed commands + * + * \param upArrow flag used to upated the queuePoniter delimiting which command to print + * + * \return None. + */ +/*************************************************************************************************/ +void printHistory(bool upArrow) +{ + uint8_t numCharsToDelete = strlen(inputBuffer); + uint8_t moveForwardCount = 0; + updateQueuePointer(&historyQueue, upArrow); + uint8_t right[] = "\x1b\x5b\x43"; + /* no history yet */ + if (historyQueue.queuePointer < 0) + return; + /* if cursor is not at the end then move it forward */ + if (bufferIndex != strlen(inputBuffer)) { + moveForwardCount = strlen(inputBuffer) - bufferIndex; + for (int i = 0; i < moveForwardCount; i++) { + WsfBufIoWrite((const uint8_t *)right, sizeof(right)); + vTaskDelay(1); //give UART time to print + bufferIndex++; + } + } + /* send backspace to delete any currently typed text */ + if (numCharsToDelete) { + for (int i = 0; i < numCharsToDelete; i++) printf("%s", backspace); + } + /* copy history into inputBuffer */ + memset(inputBuffer, 0x00, 100); + memcpy(inputBuffer, historyQueue.command[historyQueue.queuePointer].cmd, + strlen((const char *)historyQueue.command[historyQueue.queuePointer].cmd)); + printf("%s", inputBuffer); + bufferIndex = strlen(inputBuffer); + + fflush(stdout); +} + +/*************************************************************************************************/ +/*! + * \fn cls + * + * \brief Clears screen + * + * \return None. + */ +/*************************************************************************************************/ +void cls(void) +{ + char str[7]; + snprintf(str, sizeof(str), "%s", "\033[2J"); + WsfBufIoWrite((const uint8_t *)str, 5); + clearScreen = false; +} +/*************************************************************************************************/ +/*! + * \fn prompt + * + * \brief Prints prompt to screen, indicates if a test is active + * + * \return None. + */ +/*************************************************************************************************/ +void prompt(void) +{ + char str[25]; + uint8_t len = 0; + + if (pausePrompt) + return; + + if (activeTest) { + snprintf(str, sizeof(str), "%s", "\r\n(active test) cmd:"); + len = 21; + } else { + snprintf(str, sizeof(str), "%s", "\r\ncmd:"); + len = 7; + } + + fflush(stdout); + if (clearScreen) { + cls(); + } + //using app_trace would add newline after prompt which does not look right + WsfBufIoWrite((const uint8_t *)str, len); +} +/*************************************************************************************************/ +/*! + * \fn printHint + * + * \brief Prints the help string of any command matching the current inputbuffer + * + * \param buff pointer to the inputbuffer + * + * \return None. + */ +/*************************************************************************************************/ +void printHint(char *buff) +{ + int i = 0; + uint8_t bufflen = strlen((const char *)buff); + bool foundMatch = false; + do { + if (memcmp(buff, xCommandList[i].pcCommand, bufflen) == 0 && bufflen > 0) { + if (foundMatch == false) + printf("\r\n"); + printf("\r\n> %s : %s", xCommandList[i].pcCommand, xCommandList[i].pcHelpString); + foundMatch = true; + } + i++; + } while (xCommandList[i].pcCommand != NULL); + if (foundMatch) { + /* print new prompt with what user had previouslly typed */ + printf("\r\n"); + prompt(); + vTaskDelay(5); + printf("%s", buff); + fflush(stdout); + } +} +/*************************************************************************************************/ +/*! + * \fn Process the Console RX + * + * \brief State machine for the console inputs. + * + * \param rxByte Character received from the console. + * + * \return None. + */ +/*************************************************************************************************/ +static void processConsoleRX(uint8_t rxByte) +{ + static uint32_t i = 0; + + BaseType_t xHigherPriorityTaskWoken; + // static uint8_t keyBoardSequenceBuff[3] = {0}; + receivedChar = rxByte; + keyBoardSequenceBuff[i++ % 3] = rxByte; + + // TODO(BLE): put all of this in command line task + /* if received esc character start escape sequence counter */ + if (rxByte == 27) + escCounter++; + + /* Wake the task */ + xHigherPriorityTaskWoken = pdFALSE; + vTaskNotifyGiveFromISR(cmd_task_id, &xHigherPriorityTaskWoken); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); +} +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.1 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; +} +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Use single pool for data buffers. */ +#if (BT_VER > 9) + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} +/*************************************************************************************************/ +void vCmdLineTask(void *pvParameters) +{ + unsigned char tmp; + unsigned int x; + int uartReadLen; + char output[OUTPUT_BUF_SIZE]; /* Buffer for output */ + BaseType_t xMore; + mxc_uart_req_t async_read_req; + memset(inputBuffer, 0, CMD_LINE_BUF_SIZE); + bufferIndex = 0; + + /* Register available CLI commands */ + vRegisterCLICommands(); + vTaskDelay(100); /* give time for ll api to print things */ + fflush(stdout); + /* clear screen and print help table */ + cls(); + pausePrompt = true; + xTaskNotify(help_task_id, 0xFF, eSetBits); + + memset(cmd_history, 0, sizeof(cmd_history_t) * HISTORY_MEMORY_LENGTH); + historyQueue.head = 0; + historyQueue.tail = 0; + while (1) { + ulTaskNotifyTake(pdTRUE, portMAX_DELAY); + + tmp = receivedChar; + /* Check that we have a valid character */ + if (escCounter > 0 && escCounter < 4) { + switch (processEscSequence(keyBoardSequenceBuff)) { + case UP_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + printHistory(true); + break; + + case DOWN_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + printHistory(false); + break; + + case RIGHT_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + if (bufferIndex < strlen(inputBuffer)) { + uint8_t right[] = "\x1b\x5b\x43"; + WsfBufIoWrite((const uint8_t *)right, sizeof(right)); + bufferIndex++; + } + escCounter = 0; + + break; + case LEFT_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + if (bufferIndex > 0) { + uint8_t left[] = "\x1b\x5b\x44"; + WsfBufIoWrite((const uint8_t *)left, sizeof(left)); + bufferIndex--; + } + break; + + default: + escCounter++; + break; + } + } else { + escCounter = 0; + if (async_read_req.rxCnt > 0) { + /* Process character */ + do { + /* 0x08 BS linux , 127 Del windows/putty */ + if (tmp == 0x08 || tmp == 127) { + /* Backspace */ + if (bufferIndex > 0) { + bufferIndex--; + memset(&inputBuffer[bufferIndex], 0x00, 1); + printf("%s", backspace); + } + fflush(stdout); + + } else if (tmp == 0x09) { + /* tab hint */ + printHint(inputBuffer); + + } else if ((char)tmp == 'e' && activeTest == BLE_FHOP_TEST) { + /* since freq hop does not allow user to see what they are typing, simply typing + * 'e' without the need to press enter willl stop the frequency hopping test */ + LlEndTest(NULL); + MXC_TMR_Stop(MXC_TMR2); + activeTest = NO_TEST; + + xSemaphoreGive(rfTestMutex); + prompt(); + + } else if (tmp == 0x03) { + /* ^C abort */ + bufferIndex = 0; + APP_TRACE_INFO0("^C"); + prompt(); + + } else if ((tmp == '\r') || (tmp == '\n')) { + historyQueue.queuePointer = historyQueue.head; + if (strlen(inputBuffer) > 0) { + APP_TRACE_INFO0("\r\n"); + /* save to history */ + cmdHistoryAdd(&historyQueue, (const uint8_t *)inputBuffer); + /* Evaluate */ + do { + xMore = FreeRTOS_CLIProcessCommand(inputBuffer, output, + OUTPUT_BUF_SIZE); + for (x = 0; + x < (xMore == pdTRUE ? OUTPUT_BUF_SIZE : strlen(output)); + x++) { + putchar(*(output + x)); + } + } while (xMore != pdFALSE); + } + /* New prompt */ + bufferIndex = 0; + memset(inputBuffer, 0x00, 100); + prompt(); + + } else if (bufferIndex < CMD_LINE_BUF_SIZE) { + putchar(tmp); + inputBuffer[bufferIndex++] = tmp; + fflush(stdout); + + } else { + /* Throw away data and beep terminal */ + putchar(0x07); + fflush(stdout); + } + + uartReadLen = 1; + /* If more characters are ready, process them here */ + } while ((MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) > 0) && + (MXC_UART_Read(ConsoleUART, (uint8_t *)&tmp, &uartReadLen) == 0)); + } + } + } +} +/*************************************************************************************************/ +void txTestTask(void *pvParameters) +{ + static int res = 0xff; + uint32_t notifVal = 0; + tx_config_t testConfig; + char str[80]; + while (1) { + /* Wait for notification to initiate TX/RX */ + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + /* Get test settings from the notification value */ + testConfig.allData = notifVal; + + if (testConfig.testType == BLE_TX_TEST) { + snprintf(str, sizeof(str), + "Transmit RF channel %d on Freq %dMHz, %dbytes/pkt : ", testConfig.channel, + getFreqFromRfChannel(testConfig.channel), packetLen); + snprintf(str, sizeof(str), "%s%s", str, (const char *)getPacketTypeStr()); + } else { + snprintf(str, sizeof(str), "Receive RF channel %d Freq %dMHz: ", testConfig.channel, + getFreqFromRfChannel(testConfig.channel)); + } + + snprintf(str, sizeof(str), "%s%s", str, " : "); + snprintf(str, sizeof(str), "%s%s", str, (const char *)getPhyStr(phy)); + APP_TRACE_INFO1("%s", str); + + /* stat test */ + if (testConfig.testType == BLE_TX_TEST) { + res = LlEnhancedTxTest(testConfig.channel, packetLen, packetType, phy, 0); + } else { + res = LlEnhancedRxTest(testConfig.channel, phy, 0, 0); + } + APP_TRACE_INFO2("result = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + /* if duration value was given then let the test run that amount of time and end */ + if (testConfig.duration_ms) { + vTaskDelay(testConfig.duration_ms); + LlEndTest(NULL); + xSemaphoreGive(rfTestMutex); + } + pausePrompt = false; + + prompt(); + } +} +/*************************************************************************************************/ +void sweepTestTask(void *pvParameters) +{ + uint32_t notifVal = 0; + sweep_config_t sweepConfig; + + while (1) { + /* Wait for notification to initiate sweep */ + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + sweepConfig.allData = notifVal; + APP_TRACE_INFO3("\r\nStarting TX sweep from Ch %d to Ch %d @ %d ms per channel", + sweepConfig.start_channel, sweepConfig.end_channel, + sweepConfig.duration_per_ch_ms); + + char str[6] = ""; + + snprintf(str, sizeof(str), "%s", (const char *)getPhyStr(phy)); + + /* sweep channels */ + for (int i = sweepConfig.start_channel; i <= sweepConfig.end_channel; i++) { + APP_TRACE_INFO3( + "\r\n-----------------| RF channel %d %s Freq: %dMHz |----------------------\r\n", + i, str, getFreqFromRfChannel(i)); + + LlEnhancedTxTest(i, packetLen, packetType, phy, 0); + vTaskDelay(sweepConfig.duration_per_ch_ms); + LlEndTest(NULL); + xSemaphoreGive(rfTestMutex); + vTaskDelay(50); /* give console time to print end of test reuslts */ + } + activeTest = NO_TEST; + pausePrompt = false; + prompt(); + } +} +/*************************************************************************************************/ +void helpTask(void *pvParameters) +{ + uint32_t notifVal = 0; + while (1) { + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + + // clang-format off + printf("┌─────────┬──────────────────────────────────┬───────────────────────────────────────────────────────â”\r\n"); + printf("│ Command │ parameters [optional] │ description │\r\n"); + printf("├─────────┼──────────────────────────────────┼───────────────────────────────────────────────────────┤\r\n"); + printf("│ cls │ N/A │ clears the screen │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ constTx │ │ Constant TX on given channel. │\r\n"); + printf("│ │ ex: constTx 0 1M │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ e │ N/A │ Ends any active RX/TX/Constant/Freq.hop RF test │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ ps │ N/A │ Display freeRTOS task stats │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ rx │ │ RX test on given channel. │\r\n"); + printf("│ │ ex: rx 0 2M 500 │ Duration of 0 is max duration until stopped │\r\n"); + printf("│ │ │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); + printf("│ │ │ (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ sweep │ │ Sweeps TX tests through a range of RF channels given │\r\n"); + printf("│ │ │ their order of appearance on the spectrum. │\r\n"); + printf("│ │ ex: sweep 0 10 255 FF 2M 500 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); + printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); + printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ tx │ │ TX test on given RF channel. │\r\n"); + printf("│ │ │ Duration of 0 is max duration until stopped │\r\n"); + printf("│ │ ex: tx 0 255 FF 2M 1000 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); + printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); + printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ power │ │ Select transmit power. Supported power levels (dBm) │\r\n"); + printf("│ │ ex: power -10 │ -10 , 0 , 4 │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ help │ N/A │ Displays this help table │\r\n"); + printf("└─────────┴──────────────────────────────────┴───────────────────────────────────────────────────────┘\r\n"); + // clang-format on + + pausePrompt = false; + prompt(); + } +} +/*************************************************************************************************/ +void setPhy(uint8_t newPhy) +{ + phy = newPhy; + char str[20] = "> Phy now set to "; + snprintf(str, sizeof(str), "%s%s", "> Phy now set to ", + (phy == LL_TEST_PHY_LE_1M) ? "1M PHY" : + (phy == LL_TEST_PHY_LE_2M) ? "2M PHY" : + (phy == LL_TEST_PHY_LE_CODED_S8) ? "S8 PHY" : + (phy == LL_TEST_PHY_LE_CODED_S2) ? "S2 PHY" : + ""); + APP_TRACE_INFO1("%s", str); +} +/*************************************************************************************************/ +void startFreqHopping(void) +{ + NVIC_EnableIRQ(TMR2_IRQn); + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); + MXC_TMR_EnableInt(MXC_TMR2); +} /*************************************************************************************************/ +void setPacketLen(uint8_t len) +{ + packetLen = len; + APP_TRACE_INFO1("> Packet length set to %d", len); +} +/*************************************************************************************************/ +void setPacketType(uint8_t type) +{ + packetType = type; + APP_TRACE_INFO1("> Packet type set to %s", getPacketTypeStr()); +} +/*************************************************************************************************/ +void setTxPower(int8_t power) +{ + // TODO(BLE): validate value + txPower = power; + llc_api_set_txpower((int8_t)power); + LlSetAdvTxPower((int8_t)power); + printf("> Power set to %d dBm\n", power); +} +/*************************************************************************************************/ +void printConfigs(void) +{ + printf("-----| Current RF Configrations |-----\r\n"); + printf("Phy : %s \r\nPayload packet : %s\r\nPayload length : %d \r\nTX Power : %d dbm\r\n", + getPhyStr(phy), getPacketTypeStr(), packetLen, txPower); +} +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); +#endif + + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Register the UART RX request */ + WsfBufIoUartRegister(processConsoleRX); + + /* FreeRTOS */ + rfTestMutex = xSemaphoreCreateMutex(); + if (rfTestMutex == NULL) { + printf("xSemaphoreCreateMutex failed to create a mutex.\n"); + printf("necessary for operation...\r\n"); + while (1) { + //hang here.... + } + } + xTaskCreate(vCmdLineTask, (const char *)"CmdLineTask", + 1024 + CMD_LINE_BUF_SIZE + OUTPUT_BUF_SIZE, NULL, tskIDLE_PRIORITY + 1, + &cmd_task_id); + // TX tranismit test task + xTaskCreate(txTestTask, (const char *)"Tx Task", 1024, NULL, tskIDLE_PRIORITY + 1, &tx_task_id); + + // Sweep test task + xTaskCreate(sweepTestTask, (const char *)"Sweep Task", 1024, NULL, tskIDLE_PRIORITY + 1, + &sweep_task_id); + + // help task + xTaskCreate(helpTask, (const char *)"Help Task", 1024, NULL, tskIDLE_PRIORITY + 1, + &help_task_id); + + /* Start scheduler */ + APP_TRACE_INFO0(">> Starting scheduler.\r\n"); + + vTaskStartScheduler(); + + return 0; +} +/*************************************************************************************************/ +/*! + * \brief Calculates frequency of given RF channel + * \return Returns frequency of given RF channel + */ +/*************************************************************************************************/ +uint16_t getFreqFromRfChannel(uint8_t ch) +{ + return 2402 + (ch * 2); +} diff --git a/Examples/MAX32655/Bluetooth/RF_Test/main.h b/Examples/MAX32655/Bluetooth/RF_Test/main.h new file mode 100644 index 00000000000..ba8486b1f02 --- /dev/null +++ b/Examples/MAX32655/Bluetooth/RF_Test/main.h @@ -0,0 +1,106 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Main module. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32655_BLUETOOTH_RF_TEST_MAIN_H_ +#define EXAMPLES_MAX32655_BLUETOOTH_RF_TEST_MAIN_H_ + +#include +#include +#include +#include "ll_init_api.h" +#include "ll_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "tmr.h" +#include "wut_regs.h" +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "portmacro.h" +#include "task.h" +#include "semphr.h" +#include "FreeRTOS_CLI.h" +#include "uart.h" +#include "mxc_delay.h" +#include "mxc_errors.h" + +typedef enum uint8_t { + NO_TEST, + BLE_RX_TEST, + BLE_TX_TEST, + BLE_CONST_TX, + BLE_SWEEP_TEST, + BLE_FHOP_TEST, +} test_t; + +typedef union { + struct { + uint16_t duration_ms; + uint8_t channel; + test_t testType; + }; + uint32_t allData; +} tx_config_t; + +typedef union { + struct { + uint8_t start_channel; + uint8_t end_channel; + uint16_t duration_per_ch_ms; + }; + uint32_t allData; +} sweep_config_t; + +typedef struct { + uint8_t cmd[100]; + uint8_t length; +} cmd_history_t; + +typedef struct { + cmd_history_t command[10]; + uint8_t head; + uint8_t tail; + int queuePointer; +} queue_t; + +void setPhy(uint8_t newPhy); +void startFreqHopping(void); +void setPacketLen(uint8_t len); +void setPacketType(uint8_t type); +void setTxPower(int8_t power); +void printConfigs(void); +uint16_t getFreqFromRfChannel(uint8_t ch); + +#endif // EXAMPLES_MAX32655_BLUETOOTH_RF_TEST_MAIN_H_ diff --git a/Examples/MAX32655/RF_Test/project.mk b/Examples/MAX32655/Bluetooth/RF_Test/project.mk similarity index 100% rename from Examples/MAX32655/RF_Test/project.mk rename to Examples/MAX32655/Bluetooth/RF_Test/project.mk diff --git a/Examples/MAX32655/Bootloader/.vscode/flash.gdb b/Examples/MAX32655/Bootloader/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32655/Bootloader/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32655/Bootloader/Makefile b/Examples/MAX32655/Bootloader/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/Bootloader/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/Bootloader/boot_lower.S b/Examples/MAX32655/Bootloader/boot_lower.S deleted file mode 100644 index 64f067e73d6..00000000000 --- a/Examples/MAX32655/Bootloader/boot_lower.S +++ /dev/null @@ -1,60 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - - .syntax unified - .arch armv7-m - .text - .thumb - .thumb_func - .align 2 - - - .globl Boot_Lower - .type Boot_Lower %function -/* Boot from the lower flash array */ -Boot_Lower: - - ldr r0,=0x10004000 /* Address for main flash image */ - ldr r1,=0xE000ED08 /* Address for SCB_VTOR_REG */ - - /* First 32-bit word in image is initial stack pointer */ - /* Second 32-bit word in image is Address of the Reset Handler */ - - /* Set VTOR with vector table base address */ - str r0,[r1] - /* Load initial SP */ - ldr sp,[r0] - /* Load LR with address of the Reset Handler */ - ldr lr,[r0,#4] - /* Jump to Reset Handler. */ - bx lr diff --git a/Examples/MAX32655/Bootloader/bootloader.ld b/Examples/MAX32655/Bootloader/bootloader.ld deleted file mode 100644 index ffaee837805..00000000000 --- a/Examples/MAX32655/Bootloader/bootloader.ld +++ /dev/null @@ -1,150 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -BOOTLOADER_ORIGIN = 0x10000000; -BOOTLOADER_LEN = 0x4000; -FLASH_SECTION_LEN = 0x40000 - BOOTLOADER_LEN; -FLASH0_ORIGIN = BOOTLOADER_ORIGIN + BOOTLOADER_LEN; -FLASH0_LEN = 0x40000; -MEMORY { - FLASH (rx) : ORIGIN = BOOTLOADER_ORIGIN, LENGTH = BOOTLOADER_LEN - FLASH0 (rx) : ORIGIN = FLASH0_ORIGIN, LENGTH = FLASH0_LEN - FLASH1 (rx) : ORIGIN = 0x10040000, LENGTH = 0x40000 - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 -} - -SECTIONS { - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - .flash0 (NOLOAD) : - { - _flash0 = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash0 = ALIGN(., 4); - } > FLASH0 - - .flash1 (NOLOAD) : - { - _flash1 = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash1 = ALIGN(., 4); - } > FLASH1 - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.flashprog*) /* Flash program */ - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32655/Bootloader/main_ext.c b/Examples/MAX32655/Bootloader/main_ext.c deleted file mode 100644 index 365494e8332..00000000000 --- a/Examples/MAX32655/Bootloader/main_ext.c +++ /dev/null @@ -1,350 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Bootloader - * @details Simple bootloader to verify and replace images. - */ - -/***** Includes *****/ -#include -#include -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "pb.h" -#include "board.h" -#include "mxc_delay.h" -#include "flc.h" -#include "Ext_Flash.h" -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/* Addresses for the flash sections, defined in the linker file */ -extern uint32_t _flash0; -extern uint32_t _flash1; - -#define FLASH0_START ((uint32_t)&_flash0) -#define FLASH1_START ((uint32_t)&_flash1) -#define FLASH_ERASED_WORD 0xFFFFFFFF -#define CRC32_LEN 4 -#define EXT_FLASH_BLOCK_SIZE 224 - -#define DELAY(loopCount) \ - for (i = 0; i < loopCount; i++) {} - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; -fileHeader_t fileHeader; - -typedef enum { COPY_FILE_OP, CALC_CRC32_OP } externFileOp_t; -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/* Defined in boot_lower.S */ -extern void Boot_Lower(void); - -void led_On(unsigned int idx) -{ - MXC_GPIO_OutClr(led_pin[idx].port, led_pin[idx].mask); -} - -void led_Off(unsigned int idx) -{ - MXC_GPIO_OutSet(led_pin[idx].port, led_pin[idx].mask); -} - -void led_Toggle(unsigned int idx) -{ - MXC_GPIO_OutToggle(led_pin[idx].port, led_pin[idx].mask); -} - -void ledSuccessPattern(void) -{ - /* Green LED blinks */ - volatile int i, j; - for (j = 0; j < 10; j++) { - led_Toggle(1); - DELAY(0xFFFFF); - } -} -void ledFailPattern(void) -{ - /* Red LED blinks */ - volatile int i, j; - for (j = 0; j < 10; j++) { - led_Toggle(0); - DELAY(0xFFFFF); - } -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) { - table[i] = crc32_for_byte(i); - } - } - - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -void bootError(void) -{ - /* Flash the failure LED */ - ledFailPattern(); - NVIC_SystemReset(); -} - -int flashPageErased(uint32_t *addr) -{ - /* Determine if this page is totally erased */ - int i; - for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { - if (*(addr + i) != FLASH_ERASED_WORD) { - return 0; - } - } - - return 1; -} - -static int multiPageErase(uint8_t *address, uint32_t pages) -{ - int err; - volatile uint32_t address32 = (uint32_t)address; - address32 &= 0xFFFFF; - - while (pages) { - err = MXC_FLC_PageErase((uint32_t)address); - if (err != E_NO_ERROR) { - return err; - } - - address += MXC_FLASH_PAGE_SIZE; - pages--; - } - - return E_NO_ERROR; -} - -static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) -{ - int err; - - while ((len / 16) > 0) { - err = MXC_FLC_Write128((uint32_t)address, data); - if (err != E_NO_ERROR) { - return err; - } - len -= 16; - address += 4; - data += 4; - } - while (len) { - err = MXC_FLC_Write32((uint32_t)address, *data); - if (err != E_NO_ERROR) { - return err; - } - len -= 4; - address += 1; - data += 1; - } - return E_NO_ERROR; -} - -uint32_t externFileOperation(externFileOp_t fileOperation) -{ - uint32_t internalFlashStartingAddress = FLASH0_START; - uint8_t extFlashBlockBuff[EXT_FLASH_BLOCK_SIZE] = { 0 }; - uint32_t startingAddress = 0x00000000 + sizeof(fileHeader_t); - uint32_t fileLen = fileHeader.fileLen; - uint32_t crcResult = 0; - uint32_t err = 0; - /* Read blocks from ext flash and perform desired fileOperation */ - while (fileLen >= EXT_FLASH_BLOCK_SIZE) { - Ext_Flash_Read(startingAddress, extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, - Ext_Flash_DataLine_Quad); - if (fileOperation == CALC_CRC32_OP) { - crc32(extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, &crcResult); - } else if (fileOperation == COPY_FILE_OP) { - err += flashWrite((uint32_t *)internalFlashStartingAddress, - (uint32_t *)extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE); - internalFlashStartingAddress += EXT_FLASH_BLOCK_SIZE; - } - fileLen -= EXT_FLASH_BLOCK_SIZE; - startingAddress += EXT_FLASH_BLOCK_SIZE; - } - /* Read remaining data that did not fill a block */ - if (fileLen) { - Ext_Flash_Read(startingAddress, extFlashBlockBuff, fileLen, Ext_Flash_DataLine_Quad); - if (fileOperation == CALC_CRC32_OP) { - crc32(extFlashBlockBuff, fileLen, &crcResult); - } else if (fileOperation == COPY_FILE_OP) { - err += flashWrite((uint32_t *)internalFlashStartingAddress, - (uint32_t *)extFlashBlockBuff, fileLen); - } - } - if (fileOperation == COPY_FILE_OP) - return err; - - return crcResult; -} - -int main(void) -{ - volatile int i; - int err = 0x00000000; - uint32_t startingAddress = 0x00000000; - uint32_t crcResult = 0x00000000; - int numLedsBlink; - - /* Limit the number of LED blinks */ - if (num_leds > 2) { - numLedsBlink = 2; - } else { - numLedsBlink = num_leds; - } - - /* Prevent bricks */ - if (numLedsBlink == 0) { - DELAY(0x3FFFFF); - } - - LED_Init(); - for (int led = 0; led < numLedsBlink; led++) { - led_On(led); - DELAY(0x1FFFFF); - led_Off(led); - DELAY(0x1FFFFF); - } - - /* disable interrupts to prevent these operations from being interrupted */ - __disable_irq(); - - /* init external flash */ - err += Ext_Flash_Init(); - err += Ext_Flash_Quad(1); - - if (err == 0) { - /* Get header from ext flash */ - Ext_Flash_Read(startingAddress, (uint8_t *)&fileHeader, sizeof(fileHeader_t), - Ext_Flash_DataLine_Quad); - - /* Verify header integrity */ - if (fileHeader.fileLen != 0xFFFFFFFF && fileHeader.fileCRC != 0xFFFFFFFF) { - crcResult = externFileOperation(CALC_CRC32_OP); - /* Check the calculated digest against what was received */ - if (fileHeader.fileCRC != crcResult) { - ledFailPattern(); - } else { - /* Calculate how many pages the new image will occupy, +1 for remainder */ - uint32_t pagesToErase = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; - /* Erase the destination pages */ - if (multiPageErase((uint8_t *)FLASH0_START, pagesToErase) != E_NO_ERROR) { - /* Failed to erase pages */ - bootError(); - } - /* copy external file */ - err = externFileOperation(COPY_FILE_OP); - if (err) { - bootError(); - } - /* check what was written to flash */ - crcResult = 0; - crc32((const void *)FLASH0_START, fileHeader.fileLen, &crcResult); - if (crcResult != fileHeader.fileCRC) { - /* Bad firmware was written to internal flash */ - while (1) { - ledFailPattern(); - } - } - /* As long as first sector is erased so the bootloader does not try to reload its contents */ - Ext_Flash_Erase(0x00000000, Ext_Flash_Erase_64K); - if (err == 0) { - ledSuccessPattern(); - } - } - } - } else { - /* external flash init error */ - ledFailPattern(); - bootError(); - } - - /* Boot from lower image */ - Boot_Lower(); - - while (1) {} - - return 0; -} diff --git a/Examples/MAX32655/Bootloader/main_int.c b/Examples/MAX32655/Bootloader/main_int.c deleted file mode 100644 index 431e64ca843..00000000000 --- a/Examples/MAX32655/Bootloader/main_int.c +++ /dev/null @@ -1,279 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Bootloader - * @details Simple bootloader to verify and replace images. - */ - -/***** Includes *****/ -#include -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "pb.h" -#include "board.h" -#include "mxc_delay.h" -#include "flc.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/* Addresses for the flash sections, defined in the linker file */ -extern uint32_t _flash0; -extern uint32_t _flash1; - -#define FLASH0_START ((uint32_t)&_flash0) -#define FLASH1_START ((uint32_t)&_flash1) -#define FLASH_ERASED_WORD 0xFFFFFFFF -#define CRC32_LEN 4 - -#define DELAY(loopCount) \ - for (i = 0; i < loopCount; i++) {} - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; -fileHeader_t fileHeader; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/* Defined in boot_lower.S */ -extern void Boot_Lower(void); - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) { - table[i] = crc32_for_byte(i); - } - } - - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -void bootError(void) -{ - /* Flash the failure LED */ - int j; - volatile int i; - for (j = 0; j < 10; j++) { - LED_Toggle(0); - for (i = 0; i < 0xFFFFF; i++) {} - } - NVIC_SystemReset(); -} - -int flashPageErased(uint32_t *addr) -{ - /* Determine if this page is totally erased */ - int i; - for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { - if (*(addr + i) != FLASH_ERASED_WORD) { - return 0; - } - } - - return 1; -} - -static int multiPageErase(uint8_t *address, uint32_t size) -{ - int err; - volatile uint32_t address32 = (uint32_t)address; - address32 &= 0xFFFFF; - - /* Page align the size */ - size += MXC_FLASH_PAGE_SIZE - (size % MXC_FLASH_PAGE_SIZE); - - while (size) { - err = MXC_FLC_PageErase((uint32_t)address); - if (err != E_NO_ERROR) { - return err; - } - - address += MXC_FLASH_PAGE_SIZE; - size -= MXC_FLASH_PAGE_SIZE; - } - - return E_NO_ERROR; -} - -static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) -{ - int err; - - while ((len / 16) > 0) { - err = MXC_FLC_Write128((uint32_t)address, data); - if (err != E_NO_ERROR) { - return err; - } - len -= 16; - address += 4; - data += 4; - } - while (len) { - err = MXC_FLC_Write32((uint32_t)address, *data); - if (err != E_NO_ERROR) { - return err; - } - len -= 4; - address += 1; - data += 1; - } - return E_NO_ERROR; -} - -int main(void) -{ - volatile int i; - int numLedsBlink; - - /* Limit the number of LED blinks */ - if (num_leds > 2) { - numLedsBlink = 2; - } else { - numLedsBlink = num_leds; - } - - /* Prevent bricks */ - if (numLedsBlink == 0) { - DELAY(0x3FFFFF); - } - - LED_Init(); - for (int led = 0; led < numLedsBlink; led++) { - LED_On(led); - DELAY(0x1FFFFF); - LED_Off(led); - DELAY(0x1FFFFF); - } - - /* disable interrupts to prevent these operations from being interrupted */ - __disable_irq(); - - /* Get the file header */ - fileHeader.fileLen = (uint32_t) * (uint32_t *)FLASH1_START; - fileHeader.fileCRC = (uint32_t) * (uint32_t *)(FLASH1_START + sizeof(uint32_t)); - - /* Check if FLASH1 is erased */ - if (fileHeader.fileLen == 0xFFFFFFFF) { - fileHeader.fileLen = 0; - } - - /* Attempt to verify the upper image if we get a valid length */ - if (fileHeader.fileLen) { - /* Validate the image with CRC32 */ - uint32_t crcResult = 0; - - crc32((const void *)(FLASH1_START + sizeof(fileHeader)), fileHeader.fileLen, &crcResult); - - /* Check the calculated digest against what was received */ - if (crcResult == fileHeader.fileCRC) { - /* Erase the destination pages */ - if (multiPageErase((uint8_t *)FLASH0_START, fileHeader.fileLen) != E_NO_ERROR) { - /* Failed to erase pages */ - bootError(); - } - /* Copy the new firmware image */ - if (flashWrite((uint32_t *)FLASH0_START, - (uint32_t *)(FLASH1_START + sizeof(fileHeader)), - fileHeader.fileLen) != E_NO_ERROR) { - /* Failed to write new image */ - bootError(); - } else { - /* Flash the success LED for a successful update */ - int j; - for (j = 0; j < 10; j++) { - LED_Toggle(1); - for (i = 0; i < 0xFFFFF; i++) {} - } - } - /* Erase the update pages */ - if (multiPageErase((uint8_t *)FLASH1_START, fileHeader.fileLen) != E_NO_ERROR) { - /* Failed to erase pages, continue to boot from the lower pages */ - } - } else { - /* Flash the error LED for a CRC failure */ - int j; - for (j = 0; j < 10; j++) { - LED_Toggle(0); - for (i = 0; i < 0xFFFFF; i++) {} - } - } - } - - /* Boot from lower image */ - Boot_Lower(); - - while (1) {} -} diff --git a/Examples/MAX32655/CRC/Makefile b/Examples/MAX32655/CRC/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/CRC/Makefile +++ b/Examples/MAX32655/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/CRC/main.c b/Examples/MAX32655/CRC/main.c index 0954beeaec8..4e4528b1f3d 100644 --- a/Examples/MAX32655/CRC/main.c +++ b/Examples/MAX32655/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Coremark/Makefile b/Examples/MAX32655/Coremark/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Coremark/Makefile +++ b/Examples/MAX32655/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/DMA/Makefile b/Examples/MAX32655/DMA/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/DMA/Makefile +++ b/Examples/MAX32655/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/DMA/main.c b/Examples/MAX32655/DMA/main.c index 830bde4c743..089c5da738e 100644 --- a/Examples/MAX32655/DMA/main.c +++ b/Examples/MAX32655/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/Makefile b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/Makefile +++ b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/main.c b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/main.c index 14fa1af07e7..9930f2934e0 100644 --- a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/main.c +++ b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_arm/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/Makefile b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/Makefile index 61627dc2553..141e75f32f6 100644 --- a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/Makefile +++ b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/main.c b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/main.c index f24220907e3..9f00b88786a 100644 --- a/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/main.c +++ b/Examples/MAX32655/Dual_core_sync/Dual_core_sync_riscv/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/EEPROM_Emulator/Makefile b/Examples/MAX32655/EEPROM_Emulator/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/EEPROM_Emulator/Makefile +++ b/Examples/MAX32655/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/EEPROM_Emulator/include/cache.h b/Examples/MAX32655/EEPROM_Emulator/include/cache.h index 9263b1016d4..0d0776dca28 100644 --- a/Examples/MAX32655/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32655/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32655_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32655_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32655_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32655/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32655/EEPROM_Emulator/include/eeprom.h index e4956f57a15..2cc6e46b70c 100644 --- a/Examples/MAX32655/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32655/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32655_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32655_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32655_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32655/EEPROM_Emulator/main.c b/Examples/MAX32655/EEPROM_Emulator/main.c index 528dd5d3049..b8872469ce0 100644 --- a/Examples/MAX32655/EEPROM_Emulator/main.c +++ b/Examples/MAX32655/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/EEPROM_Emulator/src/cache.c b/Examples/MAX32655/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32655/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32655/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32655/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32655/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX32655/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32655/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32655/External_Flash/Makefile b/Examples/MAX32655/External_Flash/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/External_Flash/Makefile +++ b/Examples/MAX32655/External_Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/External_Flash/main.c b/Examples/MAX32655/External_Flash/main.c index 88eb5b48a43..0ea409b257f 100644 --- a/Examples/MAX32655/External_Flash/main.c +++ b/Examples/MAX32655/External_Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/FTHR_I2C/Makefile b/Examples/MAX32655/FTHR_I2C/Makefile index 22428411dd8..45b14e753ab 100644 --- a/Examples/MAX32655/FTHR_I2C/Makefile +++ b/Examples/MAX32655/FTHR_I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/FTHR_I2C/main.c b/Examples/MAX32655/FTHR_I2C/main.c index 7b50312742d..0eb4546637b 100644 --- a/Examples/MAX32655/FTHR_I2C/main.c +++ b/Examples/MAX32655/FTHR_I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Flash/Makefile b/Examples/MAX32655/Flash/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Flash/Makefile +++ b/Examples/MAX32655/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Flash/main.c b/Examples/MAX32655/Flash/main.c index a5a7230e32e..3685a5bece8 100644 --- a/Examples/MAX32655/Flash/main.c +++ b/Examples/MAX32655/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32655/Flash_CLI/FreeRTOSConfig.h index 4c0e00f90b4..e83670cb1ea 100644 --- a/Examples/MAX32655/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32655/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/Flash_CLI/Makefile b/Examples/MAX32655/Flash_CLI/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Flash_CLI/Makefile +++ b/Examples/MAX32655/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Flash_CLI/definitions.h b/Examples/MAX32655/Flash_CLI/definitions.h index 4598e35f1f7..f8a7b35e729 100644 --- a/Examples/MAX32655/Flash_CLI/definitions.h +++ b/Examples/MAX32655/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32655/Flash_CLI/main.c b/Examples/MAX32655/Flash_CLI/main.c index 844c22cb2f3..74451d901e8 100644 --- a/Examples/MAX32655/Flash_CLI/main.c +++ b/Examples/MAX32655/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32655/FreeRTOSDemo/FreeRTOSConfig.h index 79652803c04..f7fcbe6dcbb 100644 --- a/Examples/MAX32655/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32655/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/FreeRTOSDemo/Makefile b/Examples/MAX32655/FreeRTOSDemo/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/FreeRTOSDemo/Makefile +++ b/Examples/MAX32655/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32655/FreeRTOSDemo/freertos_tickless.c index ed98fe7606f..1f58867382f 100644 --- a/Examples/MAX32655/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32655/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32655/FreeRTOSDemo/main.c b/Examples/MAX32655/FreeRTOSDemo/main.c index 0a7362dea4e..36be2cbaf03 100644 --- a/Examples/MAX32655/FreeRTOSDemo/main.c +++ b/Examples/MAX32655/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/GPIO/Makefile b/Examples/MAX32655/GPIO/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/GPIO/Makefile +++ b/Examples/MAX32655/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/GPIO/main.c b/Examples/MAX32655/GPIO/main.c index 3fc4f348a99..f19f9c63a35 100644 --- a/Examples/MAX32655/GPIO/main.c +++ b/Examples/MAX32655/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32655/Hello_World-riscv/Makefile b/Examples/MAX32655/Hello_World-riscv/Makefile index 803a47276ae..593910737e3 100644 --- a/Examples/MAX32655/Hello_World-riscv/Makefile +++ b/Examples/MAX32655/Hello_World-riscv/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(PROJECT)" "" PROJECT=max32655 diff --git a/Examples/MAX32655/Hello_World-riscv/Makefile.ARM b/Examples/MAX32655/Hello_World-riscv/Makefile.ARM index 3379358e485..bf8dfdb01a7 100644 --- a/Examples/MAX32655/Hello_World-riscv/Makefile.ARM +++ b/Examples/MAX32655/Hello_World-riscv/Makefile.ARM @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX32655/Hello_World-riscv/Makefile.RISCV b/Examples/MAX32655/Hello_World-riscv/Makefile.RISCV index 2b1b7bc17a8..91637b1ea76 100644 --- a/Examples/MAX32655/Hello_World-riscv/Makefile.RISCV +++ b/Examples/MAX32655/Hello_World-riscv/Makefile.RISCV @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX32655/Hello_World-riscv/main.c b/Examples/MAX32655/Hello_World-riscv/main.c index ad68fc68cdc..7b67ca6d4c6 100644 --- a/Examples/MAX32655/Hello_World-riscv/main.c +++ b/Examples/MAX32655/Hello_World-riscv/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Hello_World-riscv/main_riscv.c b/Examples/MAX32655/Hello_World-riscv/main_riscv.c index d44565df65a..3f2578738de 100644 --- a/Examples/MAX32655/Hello_World-riscv/main_riscv.c +++ b/Examples/MAX32655/Hello_World-riscv/main_riscv.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/Hello_World/Makefile b/Examples/MAX32655/Hello_World/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Hello_World/Makefile +++ b/Examples/MAX32655/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Hello_World/main.c b/Examples/MAX32655/Hello_World/main.c index 90fa908fac8..909989e7fa7 100644 --- a/Examples/MAX32655/Hello_World/main.c +++ b/Examples/MAX32655/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Hello_World_Cpp/Makefile b/Examples/MAX32655/Hello_World_Cpp/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Hello_World_Cpp/Makefile +++ b/Examples/MAX32655/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Hello_World_Cpp/main.cpp b/Examples/MAX32655/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32655/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32655/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/I2C/Makefile b/Examples/MAX32655/I2C/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/I2C/Makefile +++ b/Examples/MAX32655/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/I2C/main.c b/Examples/MAX32655/I2C/main.c index 12225190d40..9add8ef3710 100644 --- a/Examples/MAX32655/I2C/main.c +++ b/Examples/MAX32655/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/I2C_EEPROM/Makefile b/Examples/MAX32655/I2C_EEPROM/Makefile index a780185d5f8..0c6139e8a35 100644 --- a/Examples/MAX32655/I2C_EEPROM/Makefile +++ b/Examples/MAX32655/I2C_EEPROM/Makefile @@ -1,35 +1,20 @@ ################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: + # Copyright 2023 Analog Devices, Inc. # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. + # http://www.apache.org/licenses/LICENSE-2.0 # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/I2C_EEPROM/main.c b/Examples/MAX32655/I2C_EEPROM/main.c index d437ac42ff9..794b29f8ec0 100644 --- a/Examples/MAX32655/I2C_EEPROM/main.c +++ b/Examples/MAX32655/I2C_EEPROM/main.c @@ -5,35 +5,20 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * Copyright 2023 Analog Devices, Inc. * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. + * http://www.apache.org/licenses/LICENSE-2.0 * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * ******************************************************************************/ diff --git a/Examples/MAX32655/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32655/I2C_MNGR/FreeRTOSConfig.h index b49d31b4fe4..ef68c1fc14e 100644 --- a/Examples/MAX32655/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32655/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/I2C_MNGR/Makefile b/Examples/MAX32655/I2C_MNGR/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/I2C_MNGR/Makefile +++ b/Examples/MAX32655/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.c index 84e6bd1d361..c4ad58f485d 100644 --- a/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.h index 25d75582f22..80f5bfad307 100644 --- a/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32655/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32655/I2C_MNGR/main.c b/Examples/MAX32655/I2C_MNGR/main.c index 3643a2a9578..940d318ab24 100644 --- a/Examples/MAX32655/I2C_MNGR/main.c +++ b/Examples/MAX32655/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/I2C_SCAN/Makefile b/Examples/MAX32655/I2C_SCAN/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/I2C_SCAN/Makefile +++ b/Examples/MAX32655/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/I2C_SCAN/main.c b/Examples/MAX32655/I2C_SCAN/main.c index 1d74df1c9c5..4426d0852da 100644 --- a/Examples/MAX32655/I2C_SCAN/main.c +++ b/Examples/MAX32655/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32655/I2C_Sensor/Makefile b/Examples/MAX32655/I2C_Sensor/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/I2C_Sensor/Makefile +++ b/Examples/MAX32655/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/I2C_Sensor/main.c b/Examples/MAX32655/I2C_Sensor/main.c index bd51b3af76a..3bef0ecd7db 100644 --- a/Examples/MAX32655/I2C_Sensor/main.c +++ b/Examples/MAX32655/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32655/I2S/Makefile b/Examples/MAX32655/I2S/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/I2S/Makefile +++ b/Examples/MAX32655/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/I2S/main.c b/Examples/MAX32655/I2S/main.c index af5c6b46ea4..39cab7bed61 100644 --- a/Examples/MAX32655/I2S/main.c +++ b/Examples/MAX32655/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32655/I2S_Playback/Makefile b/Examples/MAX32655/I2S_Playback/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/I2S_Playback/Makefile +++ b/Examples/MAX32655/I2S_Playback/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/I2S_Playback/main.c b/Examples/MAX32655/I2S_Playback/main.c index 774228b4450..60486a5450c 100644 --- a/Examples/MAX32655/I2S_Playback/main.c +++ b/Examples/MAX32655/I2S_Playback/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32655/I2S_Playback/max9867.c b/Examples/MAX32655/I2S_Playback/max9867.c index 4f6aeeac1e9..3d7755ae34d 100644 --- a/Examples/MAX32655/I2S_Playback/max9867.c +++ b/Examples/MAX32655/I2S_Playback/max9867.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //----------------------------------------------------------------------------- diff --git a/Examples/MAX32655/I2S_Playback/max9867.h b/Examples/MAX32655/I2S_Playback/max9867.h index f6a02dfdf55..9465277ad6e 100644 --- a/Examples/MAX32655/I2S_Playback/max9867.h +++ b/Examples/MAX32655/I2S_Playback/max9867.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_I2S_PLAYBACK_MAX9867_H_ diff --git a/Examples/MAX32655/ICC/Makefile b/Examples/MAX32655/ICC/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/ICC/Makefile +++ b/Examples/MAX32655/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/ICC/main.c b/Examples/MAX32655/ICC/main.c index f927e15f847..b09bbe18147 100644 --- a/Examples/MAX32655/ICC/main.c +++ b/Examples/MAX32655/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32655/LP/Makefile b/Examples/MAX32655/LP/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/LP/Makefile +++ b/Examples/MAX32655/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/LP/main.c b/Examples/MAX32655/LP/main.c index 0a31a9f080f..881daffe52c 100644 --- a/Examples/MAX32655/LP/main.c +++ b/Examples/MAX32655/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32655/LPCMP/Makefile b/Examples/MAX32655/LPCMP/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/LPCMP/Makefile +++ b/Examples/MAX32655/LPCMP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/LPCMP/main.c b/Examples/MAX32655/LPCMP/main.c index dde32ac24e5..2390512a89d 100644 --- a/Examples/MAX32655/LPCMP/main.c +++ b/Examples/MAX32655/LPCMP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Library_Generate/Makefile b/Examples/MAX32655/Library_Generate/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Library_Generate/Makefile +++ b/Examples/MAX32655/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Library_Generate/gpiolib.c b/Examples/MAX32655/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32655/Library_Generate/gpiolib.c +++ b/Examples/MAX32655/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32655/Library_Generate/gpiolib.h b/Examples/MAX32655/Library_Generate/gpiolib.h index 7cbd63b5122..eb1ed8b59ae 100644 --- a/Examples/MAX32655/Library_Generate/gpiolib.h +++ b/Examples/MAX32655/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32655/Library_Use/Makefile b/Examples/MAX32655/Library_Use/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Library_Use/Makefile +++ b/Examples/MAX32655/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Library_Use/lib/include/gpiolib.h b/Examples/MAX32655/Library_Use/lib/include/gpiolib.h index 9025b12a931..377a8b37729 100644 --- a/Examples/MAX32655/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32655/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32655/Library_Use/main.c b/Examples/MAX32655/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32655/Library_Use/main.c +++ b/Examples/MAX32655/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32655/Pulse_Train/Makefile b/Examples/MAX32655/Pulse_Train/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Pulse_Train/Makefile +++ b/Examples/MAX32655/Pulse_Train/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Pulse_Train/main.c b/Examples/MAX32655/Pulse_Train/main.c index f7dc8b4a0b4..8f5672d5406 100644 --- a/Examples/MAX32655/Pulse_Train/main.c +++ b/Examples/MAX32655/Pulse_Train/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/RF_Test/.vscode/flash.gdb b/Examples/MAX32655/RF_Test/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32655/RF_Test/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32655/RF_Test/FreeRTOSConfig.h b/Examples/MAX32655/RF_Test/FreeRTOSConfig.h deleted file mode 100644 index a58db8baa4a..00000000000 --- a/Examples/MAX32655/RF_Test/FreeRTOSConfig.h +++ /dev/null @@ -1,131 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32655_RF_TEST_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32655_RF_TEST_FREERTOSCONFIG_H_ - -#include -#include "max32655.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) - -#define SLEEP_LED 1 -#define DEEPSLEEP_LED 0 - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -// #define configUSE_TICKLESS_IDLE 1 - -/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will -increase the amount of time spent in standby mode, thus reducing average power consumption. */ -#ifdef configUSE_TICKLESS_IDLE -#define configTICK_RATE_HZ ((portTickType)10000) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#endif - -#define configRTC_TICK_RATE_HZ (32768) - -#define configTOTAL_HEAP_SIZE ((size_t)(100 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) - -/* Only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY \ - ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -/* Overides FreeRTOS+CLI help command formatting*/ -#define configUSE_CUSTOM_HELP_COMMAND 1 - -#endif // EXAMPLES_MAX32655_RF_TEST_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32655/RF_Test/Makefile b/Examples/MAX32655/RF_Test/Makefile deleted file mode 100644 index a780185d5f8..00000000000 --- a/Examples/MAX32655/RF_Test/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32655 -TARGET_UC := MAX32655 -TARGET_LC := max32655 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32655/RF_Test/freertos_tickless.c b/Examples/MAX32655/RF_Test/freertos_tickless.c deleted file mode 100644 index ed98fe7606f..00000000000 --- a/Examples/MAX32655/RF_Test/freertos_tickless.c +++ /dev/null @@ -1,185 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* MXC */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Maxim CMSIS */ -#include "lp.h" -#include "pwrseq_regs.h" -#include "wut.h" -#include "mcr_regs.h" -#include "simo.h" -#include "icc.h" -#include "pb.h" -#include "led.h" - -#define WUT_RATIO (configRTC_TICK_RATE_HZ / configTICK_RATE_HZ) -#define MAX_WUT_SNOOZE (5 * configRTC_TICK_RATE_HZ) -#define MIN_SYSTICK 2 -#define MIN_WUT_TICKS 50 - -static uint32_t wutSnooze = 0; -static int wutSnoozeValid = 0; - -extern mxc_gpio_cfg_t uart_cts; -extern mxc_gpio_cfg_t uart_rts; - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -__attribute__((weak)) int freertos_permit_tickless(void) -{ - return E_NO_ERROR; -} - -/* - * Snooze the wake up timer - * - * Prevent the system from entering deep sleep for MAX_WUT_SNOOZE WUT ticks. - */ -void wutHitSnooze(void) -{ - wutSnooze = MXC_WUT_GetCount(MXC_WUT0) + MAX_WUT_SNOOZE; - wutSnoozeValid = 1; -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the WUT to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - uint32_t wut_ticks; - uint32_t actual_ticks; - uint32_t pre_capture, post_capture; - - /* We do not currently handle to case where the WUT is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Calculate the number of WUT ticks, but we need one to synchronize */ - wut_ticks = (xExpectedIdleTime - 1) * WUT_RATIO; - - if (wut_ticks > MAX_WUT_SNOOZE) { - wut_ticks = MAX_WUT_SNOOZE; - } - - /* Check to see if we meet the minimum requirements for deep sleep */ - if (wut_ticks < MIN_WUT_TICKS) { - /* Finish out the rest of this tick with normal sleep */ - MXC_LP_EnterSleepMode(); - return; - } - - /* Check the WUT snooze */ - if (wutSnoozeValid && (MXC_WUT_GetCount(MXC_WUT0) < wutSnooze)) { - /* Finish out the rest of this tick with normal sleep */ - MXC_LP_EnterSleepMode(); - return; - } - wutSnoozeValid = 0; - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - return; - } - - /* Set RTS to prevent the console UART from transmitting */ - MXC_GPIO_OutSet(uart_rts.port, uart_rts.mask); - - /* Snapshot the current WUT value */ - MXC_WUT_Edge(MXC_WUT0); - pre_capture = MXC_WUT_GetCount(MXC_WUT0); - MXC_WUT_SetCompare(MXC_WUT0, pre_capture + wut_ticks); - MXC_WUT_Edge(MXC_WUT0); - - LED_Off(1); - - MXC_LP_EnterStandbyMode(); - - post_capture = MXC_WUT_GetCount(MXC_WUT0); - actual_ticks = post_capture - pre_capture; - - LED_On(1); - - /* Snooze the deep sleep if we woke up on the UART CTS GPIO */ - if ((uart_cts.port == MXC_GPIO0) && (MXC_PWRSEQ->lpwkst0 & uart_cts.mask)) { - wutHitSnooze(); - } else if ((uart_cts.port == MXC_GPIO1) && (MXC_PWRSEQ->lpwkst1 & uart_cts.mask)) { - wutHitSnooze(); - } - - /* Clear RTS */ - MXC_GPIO_OutClr(uart_rts.port, uart_rts.mask); - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - /* - * Advance ticks by # actually elapsed - */ - portENTER_CRITICAL(); - vTaskStepTick((actual_ticks / WUT_RATIO)); - portEXIT_CRITICAL(); -} diff --git a/Examples/MAX32655/RF_Test/main.c b/Examples/MAX32655/RF_Test/main.c deleted file mode 100644 index 7c5c6abd1e1..00000000000 --- a/Examples/MAX32655/RF_Test/main.c +++ /dev/null @@ -1,913 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Main module. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#include "main.h" -/************************************************************************************************** - Definitions -**************************************************************************************************/ -/*! UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define FREQ_HOP_PERIOD_US 20000 -#define HISTORY_MEMORY_LENGTH 10 -/* FreeRTOS */ -#define CMD_LINE_BUF_SIZE 100 -#define OUTPUT_BUF_SIZE 512 -#define CONSOLE_UART 0 //EvKit/FTHR -/* Task IDs */ -TaskHandle_t cmd_task_id; -TaskHandle_t tx_task_id; -TaskHandle_t sweep_task_id; -TaskHandle_t help_task_id; -/* FreeRTOS+CLI */ -xSemaphoreHandle rfTestMutex; - -mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(CONSOLE_UART); -unsigned int disable_tickless = 1; /* Enables/disables tick-less mode */ -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/* Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/* Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -static uint8_t phy = LL_PHY_LE_1M; -static uint8_t phy_str[16]; -static uint8_t packetType_str[16]; -static uint8_t txFreqHopCh; -static uint8_t packetLen = 255; -static uint8_t packetType = LL_TEST_PKT_TYPE_AA; -static int8_t txPower = 10; -/* UART RX */ -char inputBuffer[CMD_LINE_BUF_SIZE]; /* Buffer for input */ -unsigned int bufferIndex; /* Index into buffer */ -char receivedChar; -/* CLI escape sequences*/ -uint8_t backspace[] = "\x08 \x08"; -enum { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW }; -/* CLI History */ -cmd_history_t cmd_history[HISTORY_MEMORY_LENGTH]; -static uint32_t escCounter = 0; -static uint8_t keyBoardSequenceBuff[3] = { 0 }; -queue_t historyQueue; - -/* CLI Prompt */ -test_t activeTest = NO_TEST; -bool clearScreen = false; -bool pausePrompt = false; - -/************************************************************************************************** - Functions -**************************************************************************************************/ -/* Physical layer functions. */ -extern void llc_api_set_txpower(int8_t power); -extern void dbb_seq_select_rf_channel(uint32_t rf_channel); -extern void llc_api_tx_ldo_setup(void); -extern void dbb_seq_tx_enable(void); -extern void dbb_seq_tx_disable(void); -extern const CLI_Command_Definition_t xCommandList[]; -void vRegisterCLICommands(void); -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPhyStr(uint8_t phy) -{ - switch (phy) { - case LL_TEST_PHY_LE_1M: - default: - memcpy(phy_str, "1M PHY", 7); - break; - case LL_TEST_PHY_LE_2M: - memcpy(phy_str, "2M PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S8: - memcpy(phy_str, "S8 PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S2: - memcpy(phy_str, "S2 PHY", 7); - break; - } - return phy_str; -} -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPacketTypeStr(void) -{ - switch (packetType) { - case LL_TEST_PKT_TYPE_PRBS9: - memcpy(packetType_str, "PRBS9", 6); - break; - case LL_TEST_PKT_TYPE_0F: - memcpy(packetType_str, "0x0F", 5); - break; - case LL_TEST_PKT_TYPE_55: - memcpy(packetType_str, "0x55", 5); - break; - case LL_TEST_PKT_TYPE_PRBS15: - memcpy(packetType_str, "PRBS15", 7); - break; - case LL_TEST_PKT_TYPE_FF: - memcpy(packetType_str, "0xFF", 5); - break; - case LL_TEST_PKT_TYPE_00: - memcpy(packetType_str, "0x00", 5); - break; - case LL_TEST_PKT_TYPE_F0: - memcpy(packetType_str, "0xF0", 5); - break; - case LL_TEST_PKT_TYPE_AA: - default: - memcpy(packetType_str, "0xAA", 5); - break; - } - return packetType_str; -} -/*************************************************************************************************/ -/*! - * \fn Timer 2 interrupts handler. - * - * \brief Controls the frequency hopping. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void TMR2_IRQHandler(void) -{ - int res; - - MXC_TMR_TO_Clear(MXC_TMR2); - - /* Start the next channel */ - res = LlEnhancedTxTest(txFreqHopCh++, packetLen, packetType, phy, 0); - if (res != LL_SUCCESS) - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - - /* Wrap the channels */ - if (txFreqHopCh == 40) - txFreqHopCh = 0; - - /* Restart the timeout */ - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); -} -/*************************************************************************************************/ -/*! - * \fn processEscSequence. - * - * \brief Compares keyboard sequence to ansi escape codes. - * - * \param seq keyboard sequence. - * - * \return None. - */ -/*************************************************************************************************/ -uint8_t processEscSequence(uint8_t *seq) -{ - uint8_t retVal = 0; - - uint8_t arrows[4][3] = { - /* Order of arrows here alligns with enum uptop */ - { 27, 91, 65 }, /* up arrow */ - - { 27, 91, 66 }, /* down arrow */ - - { 27, 91, 67 }, /* right arrow */ - - { 27, 91, 68 }, /* left arrow */ - }; - - /*arrows*/ - for (int arrowKey = 0; arrowKey < 4; arrowKey++) { //cycle through 4 arrow keys - for (int i = 0; i < 3; i++) { //cycle thorugh each index of each arrow key sequence - //compare each index of arrow key to each index of typed sequence buffer - for (int j = 0; j < 3; j++) { - if (seq[j] == arrows[arrowKey][i]) { - retVal++; - break; - } - } - } - /* If 3 motches found */ - if (retVal == 3) - return arrowKey; - else - retVal = 0; - } - - return 0xFF; -} -/*************************************************************************************************/ -/*! - * \fn cmdHistoryAdd. - * - * \brief adds latest command to command history buffer - * - * \param q pointer to the circular buffer holding command history - * \param cmd pointer to the command string to be added - * - * \return None. - */ -/*************************************************************************************************/ -void cmdHistoryAdd(queue_t *q, const uint8_t *cmd) -{ - /* clear command history slot of any previous data */ - memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); - /* copy new command histroy */ - memcpy(&q->command[q->head], cmd, strlen((const char *)cmd)); - q->command[q->head].length = strlen((const char *)cmd); - - /* update head, and push tail up if we have looped back around */ - q->head = (q->head + 1) % HISTORY_MEMORY_LENGTH; - if (q->head == q->tail) { - q->tail = (q->tail + 1) % HISTORY_MEMORY_LENGTH; - } - memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); - /* update pointer */ - q->queuePointer = historyQueue.head; -} -/*************************************************************************************************/ -/*! - * \fn updateQueuePointer. - * - * \brief Updates an internal marker pointing to historical command to be printed, based on up/down arrow - * - * \param q pointer to the circular buffer holding command history - * - * \param upArrow flag used to upated the queuePoniter delimiting which command to print - * - * \return None. - */ -/*************************************************************************************************/ -void updateQueuePointer(queue_t *q, bool upArrow) -{ - if (upArrow) { - /* empty queue or reached tail already */ - if (q->head == q->tail || q->queuePointer == q->tail) - return; - if (q->queuePointer == 0) - q->queuePointer = HISTORY_MEMORY_LENGTH - 1; - else - q->queuePointer = (q->queuePointer - 1) % HISTORY_MEMORY_LENGTH; - - } else { - /* empty queue or reached head already */ - if (q->head == q->tail || q->queuePointer == q->head) - return; - q->queuePointer = (q->queuePointer + 1) % HISTORY_MEMORY_LENGTH; - } -} -/*************************************************************************************************/ -/*! - * \fn printHistory. - * - * \brief prints previously typed commands - * - * \param upArrow flag used to upated the queuePoniter delimiting which command to print - * - * \return None. - */ -/*************************************************************************************************/ -void printHistory(bool upArrow) -{ - uint8_t numCharsToDelete = strlen(inputBuffer); - uint8_t moveForwardCount = 0; - updateQueuePointer(&historyQueue, upArrow); - uint8_t right[] = "\x1b\x5b\x43"; - /* no history yet */ - if (historyQueue.queuePointer < 0) - return; - /* if cursor is not at the end then move it forward */ - if (bufferIndex != strlen(inputBuffer)) { - moveForwardCount = strlen(inputBuffer) - bufferIndex; - for (int i = 0; i < moveForwardCount; i++) { - WsfBufIoWrite((const uint8_t *)right, sizeof(right)); - vTaskDelay(1); //give UART time to print - bufferIndex++; - } - } - /* send backspace to delete any currently typed text */ - if (numCharsToDelete) { - for (int i = 0; i < numCharsToDelete; i++) printf("%s", backspace); - } - /* copy history into inputBuffer */ - memset(inputBuffer, 0x00, 100); - memcpy(inputBuffer, historyQueue.command[historyQueue.queuePointer].cmd, - strlen((const char *)historyQueue.command[historyQueue.queuePointer].cmd)); - printf("%s", inputBuffer); - bufferIndex = strlen(inputBuffer); - - fflush(stdout); -} - -/*************************************************************************************************/ -/*! - * \fn cls - * - * \brief Clears screen - * - * \return None. - */ -/*************************************************************************************************/ -void cls(void) -{ - char str[7]; - sprintf(str, "\033[2J"); - WsfBufIoWrite((const uint8_t *)str, 5); - clearScreen = false; -} -/*************************************************************************************************/ -/*! - * \fn prompt - * - * \brief Prints prompt to screen, indicates if a test is active - * - * \return None. - */ -/*************************************************************************************************/ -void prompt(void) -{ - char str[25]; - uint8_t len = 0; - - if (pausePrompt) - return; - - if (activeTest) { - sprintf(str, "\r\n(active test) cmd:"); - len = 21; - } else { - sprintf(str, "\r\ncmd:"); - len = 7; - } - - fflush(stdout); - if (clearScreen) { - cls(); - } - //using app_trace would add newline after prompt which does not look right - WsfBufIoWrite((const uint8_t *)str, len); -} -/*************************************************************************************************/ -/*! - * \fn printHint - * - * \brief Prints the help string of any command matching the current inputbuffer - * - * \param buff pointer to the inputbuffer - * - * \return None. - */ -/*************************************************************************************************/ -void printHint(char *buff) -{ - int i = 0; - uint8_t bufflen = strlen((const char *)buff); - bool foundMatch = false; - do { - if (memcmp(buff, xCommandList[i].pcCommand, bufflen) == 0 && bufflen > 0) { - if (foundMatch == false) - printf("\r\n"); - printf("\r\n> %s : %s", xCommandList[i].pcCommand, xCommandList[i].pcHelpString); - foundMatch = true; - } - i++; - } while (xCommandList[i].pcCommand != NULL); - if (foundMatch) { - /* print new prompt with what user had previouslly typed */ - printf("\r\n"); - prompt(); - vTaskDelay(5); - printf("%s", buff); - fflush(stdout); - } -} -/*************************************************************************************************/ -/*! - * \fn Process the Console RX - * - * \brief State machine for the console inputs. - * - * \param rxByte Character received from the console. - * - * \return None. - */ -/*************************************************************************************************/ -static void processConsoleRX(uint8_t rxByte) -{ - static uint32_t i = 0; - - BaseType_t xHigherPriorityTaskWoken; - // static uint8_t keyBoardSequenceBuff[3] = {0}; - receivedChar = rxByte; - keyBoardSequenceBuff[i++ % 3] = rxByte; - - // TODO put all of this in command line task - /* if received esc character start escape sequence counter */ - if (rxByte == 27) - escCounter++; - - /* Wake the task */ - xHigherPriorityTaskWoken = pdFALSE; - vTaskNotifyGiveFromISR(cmd_task_id, &xHigherPriorityTaskWoken); - portYIELD_FROM_ISR(xHigherPriorityTaskWoken); -} -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.1 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; -} -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Use single pool for data buffers. */ -#if (BT_VER > 9) - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} -/*************************************************************************************************/ -void vCmdLineTask(void *pvParameters) -{ - unsigned char tmp; - unsigned int x; - int uartReadLen; - char output[OUTPUT_BUF_SIZE]; /* Buffer for output */ - BaseType_t xMore; - mxc_uart_req_t async_read_req; - memset(inputBuffer, 0, CMD_LINE_BUF_SIZE); - bufferIndex = 0; - - /* Register available CLI commands */ - vRegisterCLICommands(); - vTaskDelay(100); /* give time for ll api to print things */ - fflush(stdout); - /* clear screen and print help table */ - cls(); - pausePrompt = true; - xTaskNotify(help_task_id, 0xFF, eSetBits); - - memset(cmd_history, 0, sizeof(cmd_history_t) * HISTORY_MEMORY_LENGTH); - historyQueue.head = 0; - historyQueue.tail = 0; - while (1) { - ulTaskNotifyTake(pdTRUE, portMAX_DELAY); - - tmp = receivedChar; - /* Check that we have a valid character */ - if (escCounter > 0 && escCounter < 4) { - switch (processEscSequence(keyBoardSequenceBuff)) { - case UP_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - printHistory(true); - break; - - case DOWN_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - printHistory(false); - break; - - case RIGHT_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - if (bufferIndex < strlen(inputBuffer)) { - uint8_t right[] = "\x1b\x5b\x43"; - WsfBufIoWrite((const uint8_t *)right, sizeof(right)); - bufferIndex++; - } - escCounter = 0; - - break; - case LEFT_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - if (bufferIndex > 0) { - uint8_t left[] = "\x1b\x5b\x44"; - WsfBufIoWrite((const uint8_t *)left, sizeof(left)); - bufferIndex--; - } - break; - - default: - escCounter++; - break; - } - } else { - escCounter = 0; - if (async_read_req.rxCnt > 0) { - /* Process character */ - do { - /* 0x08 BS linux , 127 Del windows/putty */ - if (tmp == 0x08 || tmp == 127) { - /* Backspace */ - if (bufferIndex > 0) { - bufferIndex--; - memset(&inputBuffer[bufferIndex], 0x00, 1); - printf("%s", backspace); - } - fflush(stdout); - } else if (tmp == 0x09) - /* tab hint */ - { - printHint(inputBuffer); - - } - /*since freq hop does not allow user to see what they are typing, simply typing - 'e' without the need to press enter willl stop the frequency hopping test */ - else if ((char)tmp == 'e' && activeTest == BLE_FHOP_TEST) { - LlEndTest(NULL); - MXC_TMR_Stop(MXC_TMR2); - activeTest = NO_TEST; - - xSemaphoreGive(rfTestMutex); - prompt(); - } else if (tmp == 0x03) { - /* ^C abort */ - bufferIndex = 0; - APP_TRACE_INFO0("^C"); - prompt(); - } else if ((tmp == '\r') || (tmp == '\n')) { - historyQueue.queuePointer = historyQueue.head; - if (strlen(inputBuffer) > 0) { - APP_TRACE_INFO0("\r\n"); - /* save to history */ - cmdHistoryAdd(&historyQueue, (const uint8_t *)inputBuffer); - /* Evaluate */ - do { - xMore = FreeRTOS_CLIProcessCommand(inputBuffer, output, - OUTPUT_BUF_SIZE); - for (x = 0; - x < (xMore == pdTRUE ? OUTPUT_BUF_SIZE : strlen(output)); - x++) { - putchar(*(output + x)); - } - } while (xMore != pdFALSE); - } - /* New prompt */ - bufferIndex = 0; - memset(inputBuffer, 0x00, 100); - prompt(); - } else if (bufferIndex < CMD_LINE_BUF_SIZE) { - putchar(tmp); - inputBuffer[bufferIndex++] = tmp; - fflush(stdout); - - } else { - /* Throw away data and beep terminal */ - putchar(0x07); - fflush(stdout); - } - uartReadLen = 1; - /* If more characters are ready, process them here */ - } while ((MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) > 0) && - (MXC_UART_Read(ConsoleUART, (uint8_t *)&tmp, &uartReadLen) == 0)); - } - } - } -} -/*************************************************************************************************/ -void txTestTask(void *pvParameters) -{ - static int res = 0xff; - uint32_t notifVal = 0; - tx_config_t testConfig; - char str[80]; - while (1) { - /* Wait for notification to initiate TX/RX */ - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - /* Get test settings from the notification value */ - testConfig.allData = notifVal; - - if (testConfig.testType == BLE_TX_TEST) { - sprintf(str, "Transmit RF channel %d on Freq %dMHz bytes/pkt : ", testConfig.channel, - getFreqFromRfChannel(testConfig.channel), packetLen); - strcat(str, (const char *)getPacketTypeStr()); - } else { - sprintf(str, "Receive RF channel %d Freq %dMHz: ", testConfig.channel, - getFreqFromRfChannel(testConfig.channel)); - } - strcat(str, " : "); - strcat(str, (const char *)getPhyStr(phy)); - APP_TRACE_INFO1("%s", str); - - /* stat test */ - if (testConfig.testType == BLE_TX_TEST) { - res = LlEnhancedTxTest(testConfig.channel, packetLen, packetType, phy, 0); - } else { - res = LlEnhancedRxTest(testConfig.channel, phy, 0, 0); - } - APP_TRACE_INFO2("result = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - /* if duration value was given then let the test run that amount of time and end */ - if (testConfig.duration_ms) { - vTaskDelay(testConfig.duration_ms); - LlEndTest(NULL); - xSemaphoreGive(rfTestMutex); - } - pausePrompt = false; - - prompt(); - } -} -/*************************************************************************************************/ -void sweepTestTask(void *pvParameters) -{ - uint32_t notifVal = 0; - sweep_config_t sweepConfig; - - while (1) { - /* Wait for notification to initiate sweep */ - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - sweepConfig.allData = notifVal; - APP_TRACE_INFO3("\r\nStarting TX sweep from Ch %d to Ch %d @ %d ms per channel", - sweepConfig.start_channel, sweepConfig.end_channel, - sweepConfig.duration_per_ch_ms); - - char str[6] = ""; - - strcat(str, (const char *)getPhyStr(phy)); - /* sweep channels */ - for (int i = sweepConfig.start_channel; i <= sweepConfig.end_channel; i++) { - APP_TRACE_INFO3( - "\r\n-----------------| RF channel %d %s Freq: %dMHz |----------------------\r\n", - i, str, getFreqFromRfChannel(i)); - - LlEnhancedTxTest(i, packetLen, packetType, phy, 0); - vTaskDelay(sweepConfig.duration_per_ch_ms); - LlEndTest(NULL); - xSemaphoreGive(rfTestMutex); - vTaskDelay(50); /* give console time to print end of test reuslts */ - } - activeTest = NO_TEST; - pausePrompt = false; - prompt(); - } -} -/*************************************************************************************************/ -void helpTask(void *pvParameters) -{ - uint32_t notifVal = 0; - while (1) { - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - - // clang-format off - printf("┌─────────┬──────────────────────────────────┬───────────────────────────────────────────────────────â”\r\n"); - printf("│ Command │ parameters [optional] │ description │\r\n"); - printf("├─────────┼──────────────────────────────────┼───────────────────────────────────────────────────────┤\r\n"); - printf("│ cls │ N/A │ clears the screen │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ constTx │ │ Constant TX on given channel. │\r\n"); - printf("│ │ ex: constTx 0 1M │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ e │ N/A │ Ends any active RX/TX/Constant/Freq.hop RF test │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ ps │ N/A │ Display freeRTOS task stats │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ rx │ │ RX test on given channel. │\r\n"); - printf("│ │ ex: rx 0 2M 500 │ Duration of 0 is max duration until stopped │\r\n"); - printf("│ │ │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); - printf("│ │ │ (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ sweep │ │ Sweeps TX tests through a range of RF channels given │\r\n"); - printf("│ │ │ their order of appearance on the spectrum. │\r\n"); - printf("│ │ ex: sweep 0 10 255 FF 2M 500 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); - printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); - printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ tx │ │ TX test on given RF channel. │\r\n"); - printf("│ │ │ Duration of 0 is max duration until stopped │\r\n"); - printf("│ │ ex: tx 0 255 FF 2M 1000 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); - printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); - printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ power │ │ Select transmit power. Supported power levels (dBm) │\r\n"); - printf("│ │ ex: power -10 │ -10 , 0 , 4 │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ help │ N/A │ Displays this help table │\r\n"); - printf("└─────────┴──────────────────────────────────┴───────────────────────────────────────────────────────┘\r\n"); - // clang-format on - - pausePrompt = false; - prompt(); - } -} -/*************************************************************************************************/ -void setPhy(uint8_t newPhy) -{ - phy = newPhy; - char str[20] = "> Phy now set to "; - strcat(str, (phy == LL_TEST_PHY_LE_1M) ? "1M PHY" : - (phy == LL_TEST_PHY_LE_2M) ? "2M PHY" : - (phy == LL_TEST_PHY_LE_CODED_S8) ? "S8 PHY" : - (phy == LL_TEST_PHY_LE_CODED_S2) ? "S2 PHY" : - ""); - APP_TRACE_INFO1("%s", str); -} -/*************************************************************************************************/ -void startFreqHopping(void) -{ - NVIC_EnableIRQ(TMR2_IRQn); - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); -} /*************************************************************************************************/ -void setPacketLen(uint8_t len) -{ - packetLen = len; - APP_TRACE_INFO1("> Packet length set to %d", len); -} -/*************************************************************************************************/ -void setPacketType(uint8_t type) -{ - packetType = type; - APP_TRACE_INFO1("> Packet type set to %s", getPacketTypeStr()); -} -/*************************************************************************************************/ -void setTxPower(int8_t power) -{ - // TODO : validate value - txPower = power; - llc_api_set_txpower((int8_t)power); - LlSetAdvTxPower((int8_t)power); - printf("> Power set to %d dBm\n", power); -} -/*************************************************************************************************/ -void printConfigs(void) -{ - printf("-----| Current RF Configrations |-----\r\n"); - printf("Phy : %s \r\nPayload packet : %s\r\nPayload length : %d \r\nTX Power : %d dbm\r\n", - getPhyStr(phy), getPacketTypeStr(), packetLen, txPower); -} -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); -#endif - - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Register the UART RX request */ - WsfBufIoUartRegister(processConsoleRX); - - /* FreeRTOS */ - rfTestMutex = xSemaphoreCreateMutex(); - if (rfTestMutex == NULL) { - printf("xSemaphoreCreateMutex failed to create a mutex.\n"); - printf("necessary for operation...\r\n"); - while (1) { - //hang here.... - } - } - xTaskCreate(vCmdLineTask, (const char *)"CmdLineTask", - 1024 + CMD_LINE_BUF_SIZE + OUTPUT_BUF_SIZE, NULL, tskIDLE_PRIORITY + 1, - &cmd_task_id); - // TX tranismit test task - xTaskCreate(txTestTask, (const char *)"Tx Task", 1024, NULL, tskIDLE_PRIORITY + 1, &tx_task_id); - - // Sweep test task - xTaskCreate(sweepTestTask, (const char *)"Sweep Task", 1024, NULL, tskIDLE_PRIORITY + 1, - &sweep_task_id); - - // help task - xTaskCreate(helpTask, (const char *)"Help Task", 1024, NULL, tskIDLE_PRIORITY + 1, - &help_task_id); - - /* Start scheduler */ - APP_TRACE_INFO0(">> Starting scheduler.\r\n"); - - vTaskStartScheduler(); - - return 0; -} -/*************************************************************************************************/ -/*! - * \brief Calculates frequency of given RF channel - * \return Returns frequency of given RF channel - */ -/*************************************************************************************************/ -uint16_t getFreqFromRfChannel(uint8_t ch) -{ - return 2402 + (ch * 2); -} \ No newline at end of file diff --git a/Examples/MAX32655/RF_Test/main.h b/Examples/MAX32655/RF_Test/main.h deleted file mode 100644 index 677ba0d82a1..00000000000 --- a/Examples/MAX32655/RF_Test/main.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef _MAIN_H_ -#define _MAIN_H_ - -#include -#include -#include -#include "ll_init_api.h" -#include "ll_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "tmr.h" -#include "wut_regs.h" -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "portmacro.h" -#include "task.h" -#include "semphr.h" -#include "FreeRTOS_CLI.h" -#include "uart.h" -#include "mxc_delay.h" -#include "mxc_errors.h" - -typedef enum uint8_t { - NO_TEST, - BLE_RX_TEST, - BLE_TX_TEST, - BLE_CONST_TX, - BLE_SWEEP_TEST, - BLE_FHOP_TEST, -} test_t; - -typedef union { - struct { - uint16_t duration_ms; - uint8_t channel; - test_t testType; - }; - uint32_t allData; -} tx_config_t; - -typedef union { - struct { - uint8_t start_channel; - uint8_t end_channel; - uint16_t duration_per_ch_ms; - }; - uint32_t allData; -} sweep_config_t; - -typedef struct { - uint8_t cmd[100]; - uint8_t length; -} cmd_history_t; - -typedef struct { - cmd_history_t command[10]; - uint8_t head; - uint8_t tail; - int queuePointer; -} queue_t; - -void setPhy(uint8_t newPhy); -void startFreqHopping(void); -void setPacketLen(uint8_t len); -void setPacketType(uint8_t type); -void setTxPower(int8_t power); -void printConfigs(void); -uint16_t getFreqFromRfChannel(uint8_t ch); -#endif \ No newline at end of file diff --git a/Examples/MAX32655/RTC/Makefile b/Examples/MAX32655/RTC/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/RTC/Makefile +++ b/Examples/MAX32655/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/RTC/main.c b/Examples/MAX32655/RTC/main.c index 3a80d6f1863..5bc43546133 100644 --- a/Examples/MAX32655/RTC/main.c +++ b/Examples/MAX32655/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/RTC_Backup/Makefile b/Examples/MAX32655/RTC_Backup/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/RTC_Backup/Makefile +++ b/Examples/MAX32655/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/RTC_Backup/main.c b/Examples/MAX32655/RTC_Backup/main.c index bbc8d51f049..24a3aa53ff9 100644 --- a/Examples/MAX32655/RTC_Backup/main.c +++ b/Examples/MAX32655/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/RV_ARM_Loader/Makefile b/Examples/MAX32655/RV_ARM_Loader/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/RV_ARM_Loader/Makefile +++ b/Examples/MAX32655/RV_ARM_Loader/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/RV_ARM_Loader/main.c b/Examples/MAX32655/RV_ARM_Loader/main.c index c6ba02a877b..964a41d49fb 100644 --- a/Examples/MAX32655/RV_ARM_Loader/main.c +++ b/Examples/MAX32655/RV_ARM_Loader/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/SPI/Makefile b/Examples/MAX32655/SPI/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/SPI/Makefile +++ b/Examples/MAX32655/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/SPI/main.c b/Examples/MAX32655/SPI/main.c index 2929bfe8d19..c76deedfc73 100644 --- a/Examples/MAX32655/SPI/main.c +++ b/Examples/MAX32655/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32655/TFT_Demo/Makefile b/Examples/MAX32655/TFT_Demo/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/TFT_Demo/Makefile +++ b/Examples/MAX32655/TFT_Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/TFT_Demo/include/keypad.h b/Examples/MAX32655/TFT_Demo/include/keypad.h index baac1df081a..446444e6e4b 100644 --- a/Examples/MAX32655/TFT_Demo/include/keypad.h +++ b/Examples/MAX32655/TFT_Demo/include/keypad.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_TFT_DEMO_INCLUDE_KEYPAD_H_ diff --git a/Examples/MAX32655/TFT_Demo/include/state.h b/Examples/MAX32655/TFT_Demo/include/state.h index ae464576c28..67cea3867b4 100644 --- a/Examples/MAX32655/TFT_Demo/include/state.h +++ b/Examples/MAX32655/TFT_Demo/include/state.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_TFT_DEMO_INCLUDE_STATE_H_ diff --git a/Examples/MAX32655/TFT_Demo/include/utils.h b/Examples/MAX32655/TFT_Demo/include/utils.h index 3e770878986..ebf4c6bc3b5 100644 --- a/Examples/MAX32655/TFT_Demo/include/utils.h +++ b/Examples/MAX32655/TFT_Demo/include/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_TFT_DEMO_INCLUDE_UTILS_H_ diff --git a/Examples/MAX32655/TFT_Demo/main.c b/Examples/MAX32655/TFT_Demo/main.c index 4e03137e1d0..20ceeb67477 100644 --- a/Examples/MAX32655/TFT_Demo/main.c +++ b/Examples/MAX32655/TFT_Demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/TFT_Demo/resources/all_imgs.c b/Examples/MAX32655/TFT_Demo/resources/all_imgs.c index b8e4d9f75c0..315fca2cab2 100644 --- a/Examples/MAX32655/TFT_Demo/resources/all_imgs.c +++ b/Examples/MAX32655/TFT_Demo/resources/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX32655/TFT_Demo/resources/bitmap.h b/Examples/MAX32655/TFT_Demo/resources/bitmap.h index ef6daa68725..dde0deba784 100644 --- a/Examples/MAX32655/TFT_Demo/resources/bitmap.h +++ b/Examples/MAX32655/TFT_Demo/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_TFT_DEMO_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py index a3e70210081..95cf1554563 100644 --- a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py +++ b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/template.txt b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/template.txt index 05b576d0692..b8fef26a011 100644 --- a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/template.txt +++ b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/image_pattern_rgb565.c b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/image_pattern_rgb565.c index 330d67ae543..b823a7e3172 100644 --- a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/image_pattern_rgb565.c +++ b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/image_pattern_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) diff --git a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_1_rgb565.c b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_1_rgb565.c index 93b65ccf6da..541c4508ebf 100644 --- a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_1_rgb565.c +++ b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) diff --git a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_2_rgb565.c b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_2_rgb565.c index 71f4b64b54b..e225045b402 100644 --- a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_2_rgb565.c +++ b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_2_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) diff --git a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_3_rgb565.c b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_3_rgb565.c index eece516dac1..6f64dc696ab 100644 --- a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_3_rgb565.c +++ b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_3_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) diff --git a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_4_rgb565.c b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_4_rgb565.c index e479d619831..8bd80a2ec56 100644 --- a/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_4_rgb565.c +++ b/Examples/MAX32655/TFT_Demo/resources/tft_fthr/img_4_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) diff --git a/Examples/MAX32655/TFT_Demo/src/state.c b/Examples/MAX32655/TFT_Demo/src/state.c index ea1eb7701cf..b26f46a8a44 100644 --- a/Examples/MAX32655/TFT_Demo/src/state.c +++ b/Examples/MAX32655/TFT_Demo/src/state.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/TFT_Demo/src/state_home.c b/Examples/MAX32655/TFT_Demo/src/state_home.c index 9460fb2c4d4..91a360839d0 100644 --- a/Examples/MAX32655/TFT_Demo/src/state_home.c +++ b/Examples/MAX32655/TFT_Demo/src/state_home.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/TFT_Demo/src/state_info.c b/Examples/MAX32655/TFT_Demo/src/state_info.c index 65bb1a822c2..78ab44d3253 100644 --- a/Examples/MAX32655/TFT_Demo/src/state_info.c +++ b/Examples/MAX32655/TFT_Demo/src/state_info.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/TFT_Demo/src/state_keypad.c b/Examples/MAX32655/TFT_Demo/src/state_keypad.c index 3fff56a877f..fd82d0c29da 100644 --- a/Examples/MAX32655/TFT_Demo/src/state_keypad.c +++ b/Examples/MAX32655/TFT_Demo/src/state_keypad.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/TFT_Demo/src/utils.c b/Examples/MAX32655/TFT_Demo/src/utils.c index 15fe54b23ea..f19b9ad6f33 100644 --- a/Examples/MAX32655/TFT_Demo/src/utils.c +++ b/Examples/MAX32655/TFT_Demo/src/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/TMR/Makefile b/Examples/MAX32655/TMR/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/TMR/Makefile +++ b/Examples/MAX32655/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/TMR/main.c b/Examples/MAX32655/TMR/main.c index 4d8786100e0..f03080aa6c7 100644 --- a/Examples/MAX32655/TMR/main.c +++ b/Examples/MAX32655/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/TRNG/Makefile b/Examples/MAX32655/TRNG/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/TRNG/Makefile +++ b/Examples/MAX32655/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/TRNG/main.c b/Examples/MAX32655/TRNG/main.c index 88faf8aeb49..2bb59f0050d 100644 --- a/Examples/MAX32655/TRNG/main.c +++ b/Examples/MAX32655/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/Temp_Monitor/Makefile b/Examples/MAX32655/Temp_Monitor/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Temp_Monitor/Makefile +++ b/Examples/MAX32655/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Temp_Monitor/main.c b/Examples/MAX32655/Temp_Monitor/main.c index 7b239540860..dfa8bb4abab 100644 --- a/Examples/MAX32655/Temp_Monitor/main.c +++ b/Examples/MAX32655/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Temp_Monitor/temp_monitor.c b/Examples/MAX32655/Temp_Monitor/temp_monitor.c index d55555ed6a1..7305b28ee99 100644 --- a/Examples/MAX32655/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32655/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32655/Temp_Monitor/temp_monitor.h b/Examples/MAX32655/Temp_Monitor/temp_monitor.h index e546a7eb015..be92d5b3145 100644 --- a/Examples/MAX32655/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32655/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32655/UART/Makefile b/Examples/MAX32655/UART/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/UART/Makefile +++ b/Examples/MAX32655/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/UART/main.c b/Examples/MAX32655/UART/main.c index 2461a2de00c..16023f7e618 100644 --- a/Examples/MAX32655/UART/main.c +++ b/Examples/MAX32655/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/UCL/Makefile b/Examples/MAX32655/UCL/Makefile index 45e43459b74..b2a3a380125 100644 --- a/Examples/MAX32655/UCL/Makefile +++ b/Examples/MAX32655/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/WUT/Makefile b/Examples/MAX32655/WUT/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/WUT/Makefile +++ b/Examples/MAX32655/WUT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/WUT/main.c b/Examples/MAX32655/WUT/main.c index db44950c922..bcd82217ace 100644 --- a/Examples/MAX32655/WUT/main.c +++ b/Examples/MAX32655/WUT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/Watchdog/Makefile b/Examples/MAX32655/Watchdog/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/Watchdog/Makefile +++ b/Examples/MAX32655/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/Watchdog/main.c b/Examples/MAX32655/Watchdog/main.c index 3310ce1050e..f9071698f63 100644 --- a/Examples/MAX32655/Watchdog/main.c +++ b/Examples/MAX32655/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32655/WearLeveling/Makefile b/Examples/MAX32655/WearLeveling/Makefile index a780185d5f8..0ae1a17ffe4 100644 --- a/Examples/MAX32655/WearLeveling/Makefile +++ b/Examples/MAX32655/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32655/WearLeveling/include/cli.h b/Examples/MAX32655/WearLeveling/include/cli.h index 3efceb04b2a..b47879bd937 100644 --- a/Examples/MAX32655/WearLeveling/include/cli.h +++ b/Examples/MAX32655/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32655/WearLeveling/include/file.h b/Examples/MAX32655/WearLeveling/include/file.h index 6a246c3426b..2f6e8784730 100644 --- a/Examples/MAX32655/WearLeveling/include/file.h +++ b/Examples/MAX32655/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32655/WearLeveling/include/flash.h b/Examples/MAX32655/WearLeveling/include/flash.h index 0ff81fd2bf3..126c3d88763 100644 --- a/Examples/MAX32655/WearLeveling/include/flash.h +++ b/Examples/MAX32655/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/WearLeveling/include/main.h b/Examples/MAX32655/WearLeveling/include/main.h index b752a40ad88..1cfc600eae8 100644 --- a/Examples/MAX32655/WearLeveling/include/main.h +++ b/Examples/MAX32655/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32655_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32655/WearLeveling/main.c b/Examples/MAX32655/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32655/WearLeveling/main.c +++ b/Examples/MAX32655/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32655/WearLeveling/src/cli.c b/Examples/MAX32655/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32655/WearLeveling/src/cli.c +++ b/Examples/MAX32655/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32655/WearLeveling/src/file.c b/Examples/MAX32655/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32655/WearLeveling/src/file.c +++ b/Examples/MAX32655/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32655/WearLeveling/src/flash.c b/Examples/MAX32655/WearLeveling/src/flash.c index e48065cec60..296bb629604 100644 --- a/Examples/MAX32655/WearLeveling/src/flash.c +++ b/Examples/MAX32655/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_bayes_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_class_marks_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_convolution_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32660/ARM-DSP/arm_dotproduct_example_f32/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_fft_bin_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_fir_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_graphic_equalizer_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_linear_interp_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_matrix_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_signal_converge_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_sin_cos_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_svm_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32660/ARM-DSP/arm_variance_example/Makefile index ee383c25469..617816a2766 100644 --- a/Examples/MAX32660/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32660/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Bootloader_Host/Makefile b/Examples/MAX32660/Bootloader_Host/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Bootloader_Host/Makefile +++ b/Examples/MAX32660/Bootloader_Host/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.c b/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.c index 4ba209aed39..381dc481f6f 100644 --- a/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.c +++ b/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.h b/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.h index db814398cff..19d3fa39d56 100644 --- a/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.h +++ b/Examples/MAX32660/Bootloader_Host/bootloader/bootloader.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ diff --git a/Examples/MAX32660/Bootloader_Host/bootloader/bootloader_cmd.h b/Examples/MAX32660/Bootloader_Host/bootloader/bootloader_cmd.h index 69975babafa..bc8ba7952c3 100644 --- a/Examples/MAX32660/Bootloader_Host/bootloader/bootloader_cmd.h +++ b/Examples/MAX32660/Bootloader_Host/bootloader/bootloader_cmd.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ diff --git a/Examples/MAX32660/Bootloader_Host/include/platform.h b/Examples/MAX32660/Bootloader_Host/include/platform.h index 125a9fae744..b8c0d03ab82 100644 --- a/Examples/MAX32660/Bootloader_Host/include/platform.h +++ b/Examples/MAX32660/Bootloader_Host/include/platform.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_BOOTLOADER_HOST_INCLUDE_PLATFORM_H_ diff --git a/Examples/MAX32660/Bootloader_Host/include/terminal.h b/Examples/MAX32660/Bootloader_Host/include/terminal.h index 699617d9724..908785808f8 100644 --- a/Examples/MAX32660/Bootloader_Host/include/terminal.h +++ b/Examples/MAX32660/Bootloader_Host/include/terminal.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_BOOTLOADER_HOST_INCLUDE_TERMINAL_H_ diff --git a/Examples/MAX32660/Bootloader_Host/src/bootloader_menu.c b/Examples/MAX32660/Bootloader_Host/src/bootloader_menu.c index d38ac802165..8590af8f807 100644 --- a/Examples/MAX32660/Bootloader_Host/src/bootloader_menu.c +++ b/Examples/MAX32660/Bootloader_Host/src/bootloader_menu.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32660/Bootloader_Host/src/main.c b/Examples/MAX32660/Bootloader_Host/src/main.c index c598ceb34b8..b0848a08a2e 100644 --- a/Examples/MAX32660/Bootloader_Host/src/main.c +++ b/Examples/MAX32660/Bootloader_Host/src/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/Bootloader_Host/src/platform_max32660.c b/Examples/MAX32660/Bootloader_Host/src/platform_max32660.c index 01979dc4e39..dc55fc4f63e 100644 --- a/Examples/MAX32660/Bootloader_Host/src/platform_max32660.c +++ b/Examples/MAX32660/Bootloader_Host/src/platform_max32660.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32660/Bootloader_Host/src/terminal.c b/Examples/MAX32660/Bootloader_Host/src/terminal.c index 066ba01e40a..548c657cd63 100644 --- a/Examples/MAX32660/Bootloader_Host/src/terminal.c +++ b/Examples/MAX32660/Bootloader_Host/src/terminal.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c index cdf3c2492ef..704448aac15 100644 --- a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c +++ b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32660_blinkled_fast_P0_13[] = { diff --git a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c index 0dcca9149cf..70f4180fed7 100644 --- a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c +++ b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32660_blinkled_slow_P0_13[] = { diff --git a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c index fa7aadab548..77b1a9d230e 100644 --- a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c +++ b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char nonsecure_MAX32660_blinkled_fast_P0_13[] = { diff --git a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c index e07a11aede2..6a53a8234db 100644 --- a/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c +++ b/Examples/MAX32660/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char nonsecure_MAX32660_blinkled_slow_P0_13[] = { diff --git a/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c b/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c index c51f8edc6a5..d8df94695ba 100644 --- a/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c +++ b/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32670_blinkled_P0_22[] = { diff --git a/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c b/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c index e524c063fb2..31796a84170 100644 --- a/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c +++ b/Examples/MAX32660/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32670_blinkled_P0_23[] = { diff --git a/Examples/MAX32660/Bootloader_Host/test_images/test_images.h b/Examples/MAX32660/Bootloader_Host/test_images/test_images.h index e4dcdb492b1..98ad0cb2141 100644 --- a/Examples/MAX32660/Bootloader_Host/test_images/test_images.h +++ b/Examples/MAX32660/Bootloader_Host/test_images/test_images.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ diff --git a/Examples/MAX32660/Coremark/Makefile b/Examples/MAX32660/Coremark/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Coremark/Makefile +++ b/Examples/MAX32660/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/DMA/Makefile b/Examples/MAX32660/DMA/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/DMA/Makefile +++ b/Examples/MAX32660/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/DMA/main.c b/Examples/MAX32660/DMA/main.c index 67c5ad0dff7..96d3ade5224 100644 --- a/Examples/MAX32660/DMA/main.c +++ b/Examples/MAX32660/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/EEPROM_Emulator/Makefile b/Examples/MAX32660/EEPROM_Emulator/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/EEPROM_Emulator/Makefile +++ b/Examples/MAX32660/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/EEPROM_Emulator/include/cache.h b/Examples/MAX32660/EEPROM_Emulator/include/cache.h index 9263b1016d4..1a881c18a2b 100644 --- a/Examples/MAX32660/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32660/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32660_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32660_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32660_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32660/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32660/EEPROM_Emulator/include/eeprom.h index e4956f57a15..2fe037bdf16 100644 --- a/Examples/MAX32660/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32660/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32660_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32660_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32660_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32660/EEPROM_Emulator/main.c b/Examples/MAX32660/EEPROM_Emulator/main.c index d1f2a76cf09..b4e7604945b 100644 --- a/Examples/MAX32660/EEPROM_Emulator/main.c +++ b/Examples/MAX32660/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/EEPROM_Emulator/src/cache.c b/Examples/MAX32660/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32660/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32660/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32660/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32660/EEPROM_Emulator/src/eeprom.c index c56f9349971..f83537c2064 100644 --- a/Examples/MAX32660/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32660/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32660/Flash/Makefile b/Examples/MAX32660/Flash/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Flash/Makefile +++ b/Examples/MAX32660/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Flash/main.c b/Examples/MAX32660/Flash/main.c index 09c3b0f1c32..0e957da4869 100644 --- a/Examples/MAX32660/Flash/main.c +++ b/Examples/MAX32660/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32660/Flash_CLI/FreeRTOSConfig.h index 37cb47d23e5..aedc0ce7857 100644 --- a/Examples/MAX32660/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32660/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32660/Flash_CLI/Makefile b/Examples/MAX32660/Flash_CLI/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Flash_CLI/Makefile +++ b/Examples/MAX32660/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Flash_CLI/definitions.h b/Examples/MAX32660/Flash_CLI/definitions.h index d35dbb9d384..bbebe1a01ab 100644 --- a/Examples/MAX32660/Flash_CLI/definitions.h +++ b/Examples/MAX32660/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32660/Flash_CLI/main.c b/Examples/MAX32660/Flash_CLI/main.c index ea3f8308966..9e964868798 100644 --- a/Examples/MAX32660/Flash_CLI/main.c +++ b/Examples/MAX32660/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32660/FreeRTOSDemo/FreeRTOSConfig.h index 14699e845ff..d04aebe7406 100644 --- a/Examples/MAX32660/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32660/FreeRTOSDemo/FreeRTOSConfig.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Examples/MAX32660/FreeRTOSDemo/Makefile b/Examples/MAX32660/FreeRTOSDemo/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/FreeRTOSDemo/Makefile +++ b/Examples/MAX32660/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32660/FreeRTOSDemo/freertos_tickless.c index 00b0e75310f..b0b17f06078 100644 --- a/Examples/MAX32660/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32660/FreeRTOSDemo/freertos_tickless.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32660/FreeRTOSDemo/main.c b/Examples/MAX32660/FreeRTOSDemo/main.c index e5ee49dbc2d..6c070bfd6af 100644 --- a/Examples/MAX32660/FreeRTOSDemo/main.c +++ b/Examples/MAX32660/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/GPIO/Makefile b/Examples/MAX32660/GPIO/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/GPIO/Makefile +++ b/Examples/MAX32660/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/GPIO/main.c b/Examples/MAX32660/GPIO/main.c index 16afc684e42..924d5d60afa 100644 --- a/Examples/MAX32660/GPIO/main.c +++ b/Examples/MAX32660/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/Hello_World/Makefile b/Examples/MAX32660/Hello_World/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Hello_World/Makefile +++ b/Examples/MAX32660/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Hello_World/main.c b/Examples/MAX32660/Hello_World/main.c index 9e07784672f..f669e3d944c 100644 --- a/Examples/MAX32660/Hello_World/main.c +++ b/Examples/MAX32660/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/Hello_World_Cpp/Makefile b/Examples/MAX32660/Hello_World_Cpp/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Hello_World_Cpp/Makefile +++ b/Examples/MAX32660/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Hello_World_Cpp/main.cpp b/Examples/MAX32660/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32660/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32660/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/I2C/Makefile b/Examples/MAX32660/I2C/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/I2C/Makefile +++ b/Examples/MAX32660/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/I2C/main.c b/Examples/MAX32660/I2C/main.c index 1700b564e62..924a8ca284d 100644 --- a/Examples/MAX32660/I2C/main.c +++ b/Examples/MAX32660/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32660/I2C_MNGR/FreeRTOSConfig.h index 160ca2188ea..0dc0025022d 100644 --- a/Examples/MAX32660/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32660/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32660/I2C_MNGR/Makefile b/Examples/MAX32660/I2C_MNGR/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/I2C_MNGR/Makefile +++ b/Examples/MAX32660/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.c index 393523ba9bf..7a4c93c635f 100644 --- a/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.h index 5303e6c9968..72db49cb1c9 100644 --- a/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32660/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32660/I2C_MNGR/main.c b/Examples/MAX32660/I2C_MNGR/main.c index 2e7eec8aeb5..d639081481a 100644 --- a/Examples/MAX32660/I2C_MNGR/main.c +++ b/Examples/MAX32660/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/I2C_SCAN/Makefile b/Examples/MAX32660/I2C_SCAN/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/I2C_SCAN/Makefile +++ b/Examples/MAX32660/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/I2C_SCAN/main.c b/Examples/MAX32660/I2C_SCAN/main.c index 9c35a3ddc9b..51d676e049a 100644 --- a/Examples/MAX32660/I2C_SCAN/main.c +++ b/Examples/MAX32660/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up resistor on the line - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up resistor on the line + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32660/I2C_Sensor/Makefile b/Examples/MAX32660/I2C_Sensor/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/I2C_Sensor/Makefile +++ b/Examples/MAX32660/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/I2C_Sensor/main.c b/Examples/MAX32660/I2C_Sensor/main.c index bd51b3af76a..3bef0ecd7db 100644 --- a/Examples/MAX32660/I2C_Sensor/main.c +++ b/Examples/MAX32660/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/I2S/Makefile b/Examples/MAX32660/I2S/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/I2S/Makefile +++ b/Examples/MAX32660/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/I2S/main.c b/Examples/MAX32660/I2S/main.c index dcb6ea9a0df..37da67105dd 100644 --- a/Examples/MAX32660/I2S/main.c +++ b/Examples/MAX32660/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/ICC/Makefile b/Examples/MAX32660/ICC/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/ICC/Makefile +++ b/Examples/MAX32660/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/ICC/main.c b/Examples/MAX32660/ICC/main.c index 1eced7a6e0c..53897ef9c6d 100644 --- a/Examples/MAX32660/ICC/main.c +++ b/Examples/MAX32660/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/Info_Block_Usecase/Makefile b/Examples/MAX32660/Info_Block_Usecase/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Info_Block_Usecase/Makefile +++ b/Examples/MAX32660/Info_Block_Usecase/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Info_Block_Usecase/main.c b/Examples/MAX32660/Info_Block_Usecase/main.c index 45ef5b633b9..ba7fb7000fb 100644 --- a/Examples/MAX32660/Info_Block_Usecase/main.c +++ b/Examples/MAX32660/Info_Block_Usecase/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/LP/Makefile b/Examples/MAX32660/LP/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/LP/Makefile +++ b/Examples/MAX32660/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/LP/lp.ld b/Examples/MAX32660/LP/lp.ld index b1400af921d..996957896ad 100644 --- a/Examples/MAX32660/LP/lp.ld +++ b/Examples/MAX32660/LP/lp.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32660/LP/main.c b/Examples/MAX32660/LP/main.c index 3f05f24e316..accc8a59dbc 100644 --- a/Examples/MAX32660/LP/main.c +++ b/Examples/MAX32660/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32660/Library_Generate/Makefile b/Examples/MAX32660/Library_Generate/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Library_Generate/Makefile +++ b/Examples/MAX32660/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Library_Generate/gpiolib.c b/Examples/MAX32660/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32660/Library_Generate/gpiolib.c +++ b/Examples/MAX32660/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32660/Library_Generate/gpiolib.h b/Examples/MAX32660/Library_Generate/gpiolib.h index 54740011ca2..7c0242e4bf1 100644 --- a/Examples/MAX32660/Library_Generate/gpiolib.h +++ b/Examples/MAX32660/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32660/Library_Use/Makefile b/Examples/MAX32660/Library_Use/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Library_Use/Makefile +++ b/Examples/MAX32660/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Library_Use/lib/include/gpiolib.h b/Examples/MAX32660/Library_Use/lib/include/gpiolib.h index 27d72b1cefa..0ded9edb16c 100644 --- a/Examples/MAX32660/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32660/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32660/Library_Use/main.c b/Examples/MAX32660/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32660/Library_Use/main.c +++ b/Examples/MAX32660/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32660/RTC/Makefile b/Examples/MAX32660/RTC/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/RTC/Makefile +++ b/Examples/MAX32660/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/RTC/main.c b/Examples/MAX32660/RTC/main.c index 0729fe9a12c..b976151e36b 100644 --- a/Examples/MAX32660/RTC/main.c +++ b/Examples/MAX32660/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/RTC_Backup/Makefile b/Examples/MAX32660/RTC_Backup/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/RTC_Backup/Makefile +++ b/Examples/MAX32660/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/RTC_Backup/main.c b/Examples/MAX32660/RTC_Backup/main.c index 12b0f2738b6..eba39115f9a 100644 --- a/Examples/MAX32660/RTC_Backup/main.c +++ b/Examples/MAX32660/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/SPI/Makefile b/Examples/MAX32660/SPI/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/SPI/Makefile +++ b/Examples/MAX32660/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/SPI/main.c b/Examples/MAX32660/SPI/main.c index 6f6b2142d05..3805e49ad76 100644 --- a/Examples/MAX32660/SPI/main.c +++ b/Examples/MAX32660/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/SPIMSS/Makefile b/Examples/MAX32660/SPIMSS/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/SPIMSS/Makefile +++ b/Examples/MAX32660/SPIMSS/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/SPIMSS/main.c b/Examples/MAX32660/SPIMSS/main.c index 16266b399d1..ad2b34fbbd3 100644 --- a/Examples/MAX32660/SPIMSS/main.c +++ b/Examples/MAX32660/SPIMSS/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/SPI_MasterSlave/Makefile b/Examples/MAX32660/SPI_MasterSlave/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/SPI_MasterSlave/Makefile +++ b/Examples/MAX32660/SPI_MasterSlave/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/SPI_MasterSlave/main.c b/Examples/MAX32660/SPI_MasterSlave/main.c index c0bdd140aa2..e1008e3c3c8 100644 --- a/Examples/MAX32660/SPI_MasterSlave/main.c +++ b/Examples/MAX32660/SPI_MasterSlave/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/SecureROM_BL_Host/Makefile b/Examples/MAX32660/SecureROM_BL_Host/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/Makefile +++ b/Examples/MAX32660/SecureROM_BL_Host/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.c b/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.c index 443f35c3875..c95d2bdf885 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.c +++ b/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************** INCLUDES ****************************/ diff --git a/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h b/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h index e8d7a72a4a7..b0840a5e00d 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h +++ b/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,12 +31,29 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX32660_SECUREROM_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ -#define EXAMPLES_MAX32660_SECUREROM_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ +#ifndef EXAMPLES_MAX32660_SECUREROM_BL_HOST_BOOTLOADER_BOOTLOADER_H_ +#define EXAMPLES_MAX32660_SECUREROM_BL_HOST_BOOTLOADER_BOOTLOADER_H_ /******************************* INCLUDES ****************************/ +#include /******************************* DEFINES ****************************/ // RESET pin used to restart target before SCP communication @@ -71,7 +90,7 @@ typedef struct { typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + uint16_t len; const unsigned char *data; } scp_packet_struct; @@ -79,4 +98,4 @@ typedef struct { int sbl_init(bl_conf_struct_t *plt_funcs); int sbl_load(scp_packet_struct *scp_packets); -#endif // EXAMPLES_MAX32660_SECUREROM_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ +#endif // EXAMPLES_MAX32660_SECUREROM_BL_HOST_BOOTLOADER_BOOTLOADER_H_ diff --git a/Examples/MAX32660/SecureROM_BL_Host/include/platform.h b/Examples/MAX32660/SecureROM_BL_Host/include/platform.h index 40ef66c2d12..966896bd9a4 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/include/platform.h +++ b/Examples/MAX32660/SecureROM_BL_Host/include/platform.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_SECUREROM_BL_HOST_INCLUDE_PLATFORM_H_ diff --git a/Examples/MAX32660/SecureROM_BL_Host/include/terminal.h b/Examples/MAX32660/SecureROM_BL_Host/include/terminal.h index 076ce19967b..ae711341765 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/include/terminal.h +++ b/Examples/MAX32660/SecureROM_BL_Host/include/terminal.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_SECUREROM_BL_HOST_INCLUDE_TERMINAL_H_ diff --git a/Examples/MAX32660/SecureROM_BL_Host/script/scp_to_c_array.py b/Examples/MAX32660/SecureROM_BL_Host/script/scp_to_c_array.py index 71cb456aadb..1dccf2a6ad5 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/script/scp_to_c_array.py +++ b/Examples/MAX32660/SecureROM_BL_Host/script/scp_to_c_array.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## copy_right='''/****************************************************************************** diff --git a/Examples/MAX32660/SecureROM_BL_Host/src/main.c b/Examples/MAX32660/SecureROM_BL_Host/src/main.c index 9f88db8b218..e54edf0d27c 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/src/main.c +++ b/Examples/MAX32660/SecureROM_BL_Host/src/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/SecureROM_BL_Host/src/platform_max32660.c b/Examples/MAX32660/SecureROM_BL_Host/src/platform_max32660.c index ca60d3a9d09..ac3fb6600ce 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/src/platform_max32660.c +++ b/Examples/MAX32660/SecureROM_BL_Host/src/platform_max32660.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32660/SecureROM_BL_Host/src/terminal.c b/Examples/MAX32660/SecureROM_BL_Host/src/terminal.c index 53bdbccd4b3..185ef436290 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/src/terminal.c +++ b/Examples/MAX32660/SecureROM_BL_Host/src/terminal.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c index 1c2adcc6d69..824b08843f6 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c +++ b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +#include + static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, 0x00, 0x00, 0x90, 0xf3 }; @@ -2285,7 +2305,7 @@ static const unsigned char scp_0000033_disconnection_reply[] = { 0xbe, 0xef, 0xe typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + uint16_t len; const unsigned char *data; } scp_packet_struct; diff --git a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c index 46b7b5f48d8..757a1e82dd9 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c +++ b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +#include + static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, 0x00, 0x00, 0x90, 0xf3 }; @@ -2285,7 +2305,7 @@ static const unsigned char scp_0000033_disconnection_reply[] = { 0xbe, 0xef, 0xe typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + uint16_t len; const unsigned char *data; } scp_packet_struct; diff --git a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c index b7f327f76d8..44de7d2a13b 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c +++ b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +#include + static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, 0x00, 0x00, 0x90, 0xf3 }; @@ -2870,7 +2890,7 @@ static const unsigned char scp_0000037_disconnection_reply[] = { 0xbe, 0xef, 0xe typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + uint16_t len; const unsigned char *data; } scp_packet_struct; diff --git a/Examples/MAX32660/SecureROM_BL_Host/test_images/test_images.h b/Examples/MAX32660/SecureROM_BL_Host/test_images/test_images.h index 2fd72497d71..ecaf69426cf 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/test_images/test_images.h +++ b/Examples/MAX32660/SecureROM_BL_Host/test_images/test_images.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX32660_SECURE_ROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ -#define EXAMPLES_MAX32660_SECURE_ROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ +#ifndef EXAMPLES_MAX32660_SECUREROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ +#define EXAMPLES_MAX32660_SECUREROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ /******************************* INCLUDES ****************************/ @@ -47,4 +65,4 @@ extern scp_packet_struct scp_MAX32651EVKIT_blinkled_P2_25[]; /******************************* Public Functions ****************************/ -#endif // EXAMPLES_MAX32660_SECURE_ROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ +#endif // EXAMPLES_MAX32660_SECUREROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ diff --git a/Examples/MAX32660/TMR/Makefile b/Examples/MAX32660/TMR/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/TMR/Makefile +++ b/Examples/MAX32660/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/TMR/main.c b/Examples/MAX32660/TMR/main.c index 64baab06d27..3c1e5406abe 100644 --- a/Examples/MAX32660/TMR/main.c +++ b/Examples/MAX32660/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/Temp_Monitor/Makefile b/Examples/MAX32660/Temp_Monitor/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Temp_Monitor/Makefile +++ b/Examples/MAX32660/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Temp_Monitor/main.c b/Examples/MAX32660/Temp_Monitor/main.c index 7752be8713b..ae3a3776509 100644 --- a/Examples/MAX32660/Temp_Monitor/main.c +++ b/Examples/MAX32660/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/Temp_Monitor/temp_monitor.c b/Examples/MAX32660/Temp_Monitor/temp_monitor.c index fd4e27ef1e2..dcab4aa30d2 100644 --- a/Examples/MAX32660/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32660/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32660/Temp_Monitor/temp_monitor.h b/Examples/MAX32660/Temp_Monitor/temp_monitor.h index 7b722fcdd86..13c12944a3e 100644 --- a/Examples/MAX32660/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32660/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32660/UART/Makefile b/Examples/MAX32660/UART/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/UART/Makefile +++ b/Examples/MAX32660/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/UART/main.c b/Examples/MAX32660/UART/main.c index 1a926b1c2cc..4572752f383 100644 --- a/Examples/MAX32660/UART/main.c +++ b/Examples/MAX32660/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/UART_Wakeup/Makefile b/Examples/MAX32660/UART_Wakeup/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/UART_Wakeup/Makefile +++ b/Examples/MAX32660/UART_Wakeup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/UART_Wakeup/main.c b/Examples/MAX32660/UART_Wakeup/main.c index 30a66c7f7c7..58da3ad7e18 100644 --- a/Examples/MAX32660/UART_Wakeup/main.c +++ b/Examples/MAX32660/UART_Wakeup/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32660/Watchdog/Makefile b/Examples/MAX32660/Watchdog/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/Watchdog/Makefile +++ b/Examples/MAX32660/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/Watchdog/main.c b/Examples/MAX32660/Watchdog/main.c index 633d9a8fc88..52393fa8d1f 100644 --- a/Examples/MAX32660/Watchdog/main.c +++ b/Examples/MAX32660/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32660/WearLeveling/Makefile b/Examples/MAX32660/WearLeveling/Makefile index 471990c4402..1c53194b5e7 100644 --- a/Examples/MAX32660/WearLeveling/Makefile +++ b/Examples/MAX32660/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32660/WearLeveling/include/cli.h b/Examples/MAX32660/WearLeveling/include/cli.h index 9a209ce6652..c72123a73f7 100644 --- a/Examples/MAX32660/WearLeveling/include/cli.h +++ b/Examples/MAX32660/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32660/WearLeveling/include/file.h b/Examples/MAX32660/WearLeveling/include/file.h index 63ed687a2d8..7c04a3ee557 100644 --- a/Examples/MAX32660/WearLeveling/include/file.h +++ b/Examples/MAX32660/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32660/WearLeveling/include/flash.h b/Examples/MAX32660/WearLeveling/include/flash.h index 254039dfd60..4be23f44caf 100644 --- a/Examples/MAX32660/WearLeveling/include/flash.h +++ b/Examples/MAX32660/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/WearLeveling/include/main.h b/Examples/MAX32660/WearLeveling/include/main.h index 406ed327785..6b73211cec9 100644 --- a/Examples/MAX32660/WearLeveling/include/main.h +++ b/Examples/MAX32660/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32660_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32660/WearLeveling/main.c b/Examples/MAX32660/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32660/WearLeveling/main.c +++ b/Examples/MAX32660/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32660/WearLeveling/src/cli.c b/Examples/MAX32660/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32660/WearLeveling/src/cli.c +++ b/Examples/MAX32660/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32660/WearLeveling/src/file.c b/Examples/MAX32660/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32660/WearLeveling/src/file.c +++ b/Examples/MAX32660/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32660/WearLeveling/src/flash.c b/Examples/MAX32660/WearLeveling/src/flash.c index 0798620793a..e803060447c 100644 --- a/Examples/MAX32660/WearLeveling/src/flash.c +++ b/Examples/MAX32660/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/ADC/Makefile b/Examples/MAX32662/ADC/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/ADC/Makefile +++ b/Examples/MAX32662/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ADC/main.c b/Examples/MAX32662/ADC/main.c index de5f5979c1d..c2778c65b68 100644 --- a/Examples/MAX32662/ADC/main.c +++ b/Examples/MAX32662/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_bayes_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_class_marks_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_convolution_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32662/ARM-DSP/arm_dotproduct_example_f32/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_fft_bin_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_fir_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_graphic_equalizer_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_linear_interp_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_matrix_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_signal_converge_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_sin_cos_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_svm_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32662/ARM-DSP/arm_variance_example/Makefile index 0cafaa33855..5559ec60633 100644 --- a/Examples/MAX32662/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32662/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Bootloader_Host/Makefile b/Examples/MAX32662/Bootloader_Host/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Bootloader_Host/Makefile +++ b/Examples/MAX32662/Bootloader_Host/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.c b/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.c index 9fb50f44ac0..124ecdf78b8 100644 --- a/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.c +++ b/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.h b/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.h index d0259a6a666..7baa83ae5a2 100644 --- a/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.h +++ b/Examples/MAX32662/Bootloader_Host/bootloader/bootloader.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ diff --git a/Examples/MAX32662/Bootloader_Host/bootloader/bootloader_cmd.h b/Examples/MAX32662/Bootloader_Host/bootloader/bootloader_cmd.h index f3e506ddebf..9c5bc9b2bec 100644 --- a/Examples/MAX32662/Bootloader_Host/bootloader/bootloader_cmd.h +++ b/Examples/MAX32662/Bootloader_Host/bootloader/bootloader_cmd.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ diff --git a/Examples/MAX32662/Bootloader_Host/inc/platform.h b/Examples/MAX32662/Bootloader_Host/inc/platform.h index a71d58a4eec..0df7d04e4d2 100644 --- a/Examples/MAX32662/Bootloader_Host/inc/platform.h +++ b/Examples/MAX32662/Bootloader_Host/inc/platform.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_BOOTLOADER_HOST_INC_PLATFORM_H_ diff --git a/Examples/MAX32662/Bootloader_Host/inc/terminal.h b/Examples/MAX32662/Bootloader_Host/inc/terminal.h index 4155c99f04c..b4ddcbf6fbe 100644 --- a/Examples/MAX32662/Bootloader_Host/inc/terminal.h +++ b/Examples/MAX32662/Bootloader_Host/inc/terminal.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_BOOTLOADER_HOST_INC_TERMINAL_H_ diff --git a/Examples/MAX32662/Bootloader_Host/src/bootloader_menu.c b/Examples/MAX32662/Bootloader_Host/src/bootloader_menu.c index d38ac802165..8590af8f807 100644 --- a/Examples/MAX32662/Bootloader_Host/src/bootloader_menu.c +++ b/Examples/MAX32662/Bootloader_Host/src/bootloader_menu.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32662/Bootloader_Host/src/main.c b/Examples/MAX32662/Bootloader_Host/src/main.c index eab0e1e35e0..8cf114ca45c 100644 --- a/Examples/MAX32662/Bootloader_Host/src/main.c +++ b/Examples/MAX32662/Bootloader_Host/src/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Bootloader_Host/src/platform_max32662.c b/Examples/MAX32662/Bootloader_Host/src/platform_max32662.c index 0dc41e97d79..2109a47db90 100644 --- a/Examples/MAX32662/Bootloader_Host/src/platform_max32662.c +++ b/Examples/MAX32662/Bootloader_Host/src/platform_max32662.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32662/Bootloader_Host/src/terminal.c b/Examples/MAX32662/Bootloader_Host/src/terminal.c index 561873159ee..6910bc7eae9 100644 --- a/Examples/MAX32662/Bootloader_Host/src/terminal.c +++ b/Examples/MAX32662/Bootloader_Host/src/terminal.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_fast_P0_13.c b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_fast_P0_13.c index 9ed605ec621..1046c3c511f 100644 --- a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_fast_P0_13.c +++ b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_fast_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32662_blinkled_fast_P0_13[] = { diff --git a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_slow_P0_13.c b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_slow_P0_13.c index 702087f6e9c..772123cd720 100644 --- a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_slow_P0_13.c +++ b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/devkey_MAX32662_blinkled_slow_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32662_blinkled_slow_P0_13[] = { diff --git a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_fast_P0_13.c b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_fast_P0_13.c index e2e547e7a68..59ffcc3bba8 100644 --- a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_fast_P0_13.c +++ b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_fast_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char nonsecure_MAX32662_blinkled_fast_P0_13[] = { diff --git a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_slow_P0_13.c b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_slow_P0_13.c index c2568a36802..b4d0cc80d46 100644 --- a/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_slow_P0_13.c +++ b/Examples/MAX32662/Bootloader_Host/test_images/MAX32662/nonsecure_MAX32662_blinkled_slow_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char nonsecure_MAX32662_blinkled_slow_P0_13[] = { diff --git a/Examples/MAX32662/Bootloader_Host/test_images/test_images.h b/Examples/MAX32662/Bootloader_Host/test_images/test_images.h index ab59eab59c3..34538e10a8d 100644 --- a/Examples/MAX32662/Bootloader_Host/test_images/test_images.h +++ b/Examples/MAX32662/Bootloader_Host/test_images/test_images.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ diff --git a/Examples/MAX32662/CAN/Makefile b/Examples/MAX32662/CAN/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/CAN/Makefile +++ b/Examples/MAX32662/CAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/CAN/main.c b/Examples/MAX32662/CAN/main.c index 2b231fd1279..327cb80482a 100644 --- a/Examples/MAX32662/CAN/main.c +++ b/Examples/MAX32662/CAN/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Coremark/Makefile b/Examples/MAX32662/Coremark/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Coremark/Makefile +++ b/Examples/MAX32662/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/DMA/Makefile b/Examples/MAX32662/DMA/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/DMA/Makefile +++ b/Examples/MAX32662/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/DMA/main.c b/Examples/MAX32662/DMA/main.c index 67c5ad0dff7..96d3ade5224 100644 --- a/Examples/MAX32662/DMA/main.c +++ b/Examples/MAX32662/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Demo/Makefile b/Examples/MAX32662/Demo/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Demo/Makefile +++ b/Examples/MAX32662/Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Demo/main.c b/Examples/MAX32662/Demo/main.c index 022a05cf8da..447232182c0 100644 --- a/Examples/MAX32662/Demo/main.c +++ b/Examples/MAX32662/Demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Demo/resources/bitmap.h b/Examples/MAX32662/Demo/resources/bitmap.h index 213dd5da1c4..d95a54501a6 100644 --- a/Examples/MAX32662/Demo/resources/bitmap.h +++ b/Examples/MAX32662/Demo/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_DEMO_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32662/Demo/resources/tft_demo/bmp/bmp2c.py b/Examples/MAX32662/Demo/resources/tft_demo/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX32662/Demo/resources/tft_demo/bmp/bmp2c.py +++ b/Examples/MAX32662/Demo/resources/tft_demo/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX32662/Demo/resources/tft_demo/bmp/image_rgb565.c b/Examples/MAX32662/Demo/resources/tft_demo/bmp/image_rgb565.c index 250d80a0e26..074cceedf32 100644 --- a/Examples/MAX32662/Demo/resources/tft_demo/bmp/image_rgb565.c +++ b/Examples/MAX32662/Demo/resources/tft_demo/bmp/image_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char image_rgb565[4036] = { diff --git a/Examples/MAX32662/Demo/resources/tft_demo/bmp/template.txt b/Examples/MAX32662/Demo/resources/tft_demo/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX32662/Demo/resources/tft_demo/bmp/template.txt +++ b/Examples/MAX32662/Demo/resources/tft_demo/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX32662/Demo/resources/tft_demo/logo_rgb565.c b/Examples/MAX32662/Demo/resources/tft_demo/logo_rgb565.c index 8aeb67ba8fd..c688d7d8a9e 100644 --- a/Examples/MAX32662/Demo/resources/tft_demo/logo_rgb565.c +++ b/Examples/MAX32662/Demo/resources/tft_demo/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[32772] = { diff --git a/Examples/MAX32662/EEPROM_Emulator/Makefile b/Examples/MAX32662/EEPROM_Emulator/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/EEPROM_Emulator/Makefile +++ b/Examples/MAX32662/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/EEPROM_Emulator/include/cache.h b/Examples/MAX32662/EEPROM_Emulator/include/cache.h index 9263b1016d4..f262e205bc0 100644 --- a/Examples/MAX32662/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32662/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32662_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32662_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32662_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32662/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32662/EEPROM_Emulator/include/eeprom.h index e4956f57a15..feb1adf7383 100644 --- a/Examples/MAX32662/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32662/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32662_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32662_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32662_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32662/EEPROM_Emulator/main.c b/Examples/MAX32662/EEPROM_Emulator/main.c index 96bf9796ac4..02deeb9f7ea 100644 --- a/Examples/MAX32662/EEPROM_Emulator/main.c +++ b/Examples/MAX32662/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/EEPROM_Emulator/src/cache.c b/Examples/MAX32662/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32662/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32662/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32662/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32662/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX32662/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32662/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32662/Flash/Makefile b/Examples/MAX32662/Flash/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Flash/Makefile +++ b/Examples/MAX32662/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Flash/main.c b/Examples/MAX32662/Flash/main.c index a96b264f0f9..94f1716d498 100644 --- a/Examples/MAX32662/Flash/main.c +++ b/Examples/MAX32662/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32662/Flash_CLI/FreeRTOSConfig.h index 12618c759d2..e856f1dab77 100644 --- a/Examples/MAX32662/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32662/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32662/Flash_CLI/Makefile b/Examples/MAX32662/Flash_CLI/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Flash_CLI/Makefile +++ b/Examples/MAX32662/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Flash_CLI/definitions.h b/Examples/MAX32662/Flash_CLI/definitions.h index 0095f482cd4..147fcbcd0aa 100644 --- a/Examples/MAX32662/Flash_CLI/definitions.h +++ b/Examples/MAX32662/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32662/Flash_CLI/main.c b/Examples/MAX32662/Flash_CLI/main.c index c29016b0c5f..b6f42172396 100644 --- a/Examples/MAX32662/Flash_CLI/main.c +++ b/Examples/MAX32662/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/GPIO/Makefile b/Examples/MAX32662/GPIO/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/GPIO/Makefile +++ b/Examples/MAX32662/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/GPIO/main.c b/Examples/MAX32662/GPIO/main.c index 349c0281131..d526fb23f9b 100644 --- a/Examples/MAX32662/GPIO/main.c +++ b/Examples/MAX32662/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32662/Hello_World/Makefile b/Examples/MAX32662/Hello_World/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Hello_World/Makefile +++ b/Examples/MAX32662/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Hello_World/main.c b/Examples/MAX32662/Hello_World/main.c index 279f50ab504..53eda3decce 100644 --- a/Examples/MAX32662/Hello_World/main.c +++ b/Examples/MAX32662/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Hello_World_Cpp/Makefile b/Examples/MAX32662/Hello_World_Cpp/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Hello_World_Cpp/Makefile +++ b/Examples/MAX32662/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Hello_World_Cpp/main.cpp b/Examples/MAX32662/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32662/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32662/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/I2C/Makefile b/Examples/MAX32662/I2C/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/I2C/Makefile +++ b/Examples/MAX32662/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/I2C/main.c b/Examples/MAX32662/I2C/main.c index fae45a3f729..75203de302a 100644 --- a/Examples/MAX32662/I2C/main.c +++ b/Examples/MAX32662/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32662/I2C_MNGR/FreeRTOSConfig.h index e2451b78fb5..00fa78dc87d 100644 --- a/Examples/MAX32662/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32662/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32662/I2C_MNGR/Makefile b/Examples/MAX32662/I2C_MNGR/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/I2C_MNGR/Makefile +++ b/Examples/MAX32662/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.c index 393523ba9bf..7a4c93c635f 100644 --- a/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.h index f0afc3976cd..cf40af3de1c 100644 --- a/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32662/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32662/I2C_MNGR/main.c b/Examples/MAX32662/I2C_MNGR/main.c index 5fb5de3f1d7..b70400cded0 100644 --- a/Examples/MAX32662/I2C_MNGR/main.c +++ b/Examples/MAX32662/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/I2C_SCAN/Makefile b/Examples/MAX32662/I2C_SCAN/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/I2C_SCAN/Makefile +++ b/Examples/MAX32662/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/I2C_SCAN/main.c b/Examples/MAX32662/I2C_SCAN/main.c index f94827194d9..da29c7e9a0b 100644 --- a/Examples/MAX32662/I2C_SCAN/main.c +++ b/Examples/MAX32662/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32662/I2C_Sensor/Makefile b/Examples/MAX32662/I2C_Sensor/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/I2C_Sensor/Makefile +++ b/Examples/MAX32662/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/I2C_Sensor/main.c b/Examples/MAX32662/I2C_Sensor/main.c index bd51b3af76a..3bef0ecd7db 100644 --- a/Examples/MAX32662/I2C_Sensor/main.c +++ b/Examples/MAX32662/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32662/I2S/Makefile b/Examples/MAX32662/I2S/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/I2S/Makefile +++ b/Examples/MAX32662/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/I2S/main.c b/Examples/MAX32662/I2S/main.c index bb07097923a..7943c5387dc 100644 --- a/Examples/MAX32662/I2S/main.c +++ b/Examples/MAX32662/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32662/ICC/Makefile b/Examples/MAX32662/ICC/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/ICC/Makefile +++ b/Examples/MAX32662/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/ICC/main.c b/Examples/MAX32662/ICC/main.c index 1eced7a6e0c..53897ef9c6d 100644 --- a/Examples/MAX32662/ICC/main.c +++ b/Examples/MAX32662/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32662/Info_Block_Usecase/Makefile b/Examples/MAX32662/Info_Block_Usecase/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Info_Block_Usecase/Makefile +++ b/Examples/MAX32662/Info_Block_Usecase/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Info_Block_Usecase/main.c b/Examples/MAX32662/Info_Block_Usecase/main.c index 259e5eacf98..1ddf6dcfc92 100644 --- a/Examples/MAX32662/Info_Block_Usecase/main.c +++ b/Examples/MAX32662/Info_Block_Usecase/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/LP/Makefile b/Examples/MAX32662/LP/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/LP/Makefile +++ b/Examples/MAX32662/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/LP/lp-nonsecure.ld b/Examples/MAX32662/LP/lp-nonsecure.ld index 0323131e0e8..d2a5505c1bc 100644 --- a/Examples/MAX32662/LP/lp-nonsecure.ld +++ b/Examples/MAX32662/LP/lp-nonsecure.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32662/LP/lp-sla.ld b/Examples/MAX32662/LP/lp-sla.ld index 92095cfe6be..4dea3f92268 100644 --- a/Examples/MAX32662/LP/lp-sla.ld +++ b/Examples/MAX32662/LP/lp-sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32662/LP/main.c b/Examples/MAX32662/LP/main.c index cfdcc106c23..758d4933230 100644 --- a/Examples/MAX32662/LP/main.c +++ b/Examples/MAX32662/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32662/Library_Generate/Makefile b/Examples/MAX32662/Library_Generate/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Library_Generate/Makefile +++ b/Examples/MAX32662/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Library_Generate/gpiolib.c b/Examples/MAX32662/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32662/Library_Generate/gpiolib.c +++ b/Examples/MAX32662/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32662/Library_Generate/gpiolib.h b/Examples/MAX32662/Library_Generate/gpiolib.h index e850f650367..d3ba13f7d62 100644 --- a/Examples/MAX32662/Library_Generate/gpiolib.h +++ b/Examples/MAX32662/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32662/Library_Use/Makefile b/Examples/MAX32662/Library_Use/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Library_Use/Makefile +++ b/Examples/MAX32662/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Library_Use/lib/include/gpiolib.h b/Examples/MAX32662/Library_Use/lib/include/gpiolib.h index 57bab19016c..7e8f47caf92 100644 --- a/Examples/MAX32662/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32662/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32662/Library_Use/main.c b/Examples/MAX32662/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32662/Library_Use/main.c +++ b/Examples/MAX32662/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32662/RTC/Makefile b/Examples/MAX32662/RTC/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/RTC/Makefile +++ b/Examples/MAX32662/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/RTC/main.c b/Examples/MAX32662/RTC/main.c index 629428752dc..a29b8c6c729 100644 --- a/Examples/MAX32662/RTC/main.c +++ b/Examples/MAX32662/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/RTC_Backup/Makefile b/Examples/MAX32662/RTC_Backup/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/RTC_Backup/Makefile +++ b/Examples/MAX32662/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/RTC_Backup/main.c b/Examples/MAX32662/RTC_Backup/main.c index e3e67fb4a4b..3ff2f709e8a 100644 --- a/Examples/MAX32662/RTC_Backup/main.c +++ b/Examples/MAX32662/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/SCPA_OTP_Dump/Makefile b/Examples/MAX32662/SCPA_OTP_Dump/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/SCPA_OTP_Dump/Makefile +++ b/Examples/MAX32662/SCPA_OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/SCPA_OTP_Dump/main.c b/Examples/MAX32662/SCPA_OTP_Dump/main.c index 1161d658512..c2ec856f325 100644 --- a/Examples/MAX32662/SCPA_OTP_Dump/main.c +++ b/Examples/MAX32662/SCPA_OTP_Dump/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/SCPA_OTP_Dump/utils.c b/Examples/MAX32662/SCPA_OTP_Dump/utils.c index 3a84ee68f25..ff7ccf8019a 100644 --- a/Examples/MAX32662/SCPA_OTP_Dump/utils.c +++ b/Examples/MAX32662/SCPA_OTP_Dump/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32662/SCPA_OTP_Dump/utils.h b/Examples/MAX32662/SCPA_OTP_Dump/utils.h index 1a3d9ecd715..f615a037338 100644 --- a/Examples/MAX32662/SCPA_OTP_Dump/utils.h +++ b/Examples/MAX32662/SCPA_OTP_Dump/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_SCPA_OTP_DUMP_UTILS_H_ diff --git a/Examples/MAX32662/SPI/Makefile b/Examples/MAX32662/SPI/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/SPI/Makefile +++ b/Examples/MAX32662/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/SPI/main.c b/Examples/MAX32662/SPI/main.c index 71b16d4c5d1..b3e47931926 100644 --- a/Examples/MAX32662/SPI/main.c +++ b/Examples/MAX32662/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32662/SPI_MasterSlave/Makefile b/Examples/MAX32662/SPI_MasterSlave/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/SPI_MasterSlave/Makefile +++ b/Examples/MAX32662/SPI_MasterSlave/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/SPI_MasterSlave/main.c b/Examples/MAX32662/SPI_MasterSlave/main.c index ed3b01cc5d3..95f0e57eeb7 100644 --- a/Examples/MAX32662/SPI_MasterSlave/main.c +++ b/Examples/MAX32662/SPI_MasterSlave/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32662/TMR/Makefile b/Examples/MAX32662/TMR/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/TMR/Makefile +++ b/Examples/MAX32662/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/TMR/main.c b/Examples/MAX32662/TMR/main.c index 9b17463fd43..3d8526f46e5 100644 --- a/Examples/MAX32662/TMR/main.c +++ b/Examples/MAX32662/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Temp_Monitor/Makefile b/Examples/MAX32662/Temp_Monitor/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Temp_Monitor/Makefile +++ b/Examples/MAX32662/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Temp_Monitor/main.c b/Examples/MAX32662/Temp_Monitor/main.c index b94e99868bc..914098bb653 100644 --- a/Examples/MAX32662/Temp_Monitor/main.c +++ b/Examples/MAX32662/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/Temp_Monitor/temp_monitor.c b/Examples/MAX32662/Temp_Monitor/temp_monitor.c index fd4e27ef1e2..dcab4aa30d2 100644 --- a/Examples/MAX32662/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32662/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32662/Temp_Monitor/temp_monitor.h b/Examples/MAX32662/Temp_Monitor/temp_monitor.h index 55b9951b8cd..dd17a342fc5 100644 --- a/Examples/MAX32662/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32662/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32662/UART/Makefile b/Examples/MAX32662/UART/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/UART/Makefile +++ b/Examples/MAX32662/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/UART/main.c b/Examples/MAX32662/UART/main.c index e6b84b3eaa2..0317ac6948e 100644 --- a/Examples/MAX32662/UART/main.c +++ b/Examples/MAX32662/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/UART_Wakeup/Makefile b/Examples/MAX32662/UART_Wakeup/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/UART_Wakeup/Makefile +++ b/Examples/MAX32662/UART_Wakeup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/UART_Wakeup/main.c b/Examples/MAX32662/UART_Wakeup/main.c index 253dadbe0fc..ad303199e15 100644 --- a/Examples/MAX32662/UART_Wakeup/main.c +++ b/Examples/MAX32662/UART_Wakeup/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32662/UCL/Makefile b/Examples/MAX32662/UCL/Makefile index 43604672123..1718a90e7b5 100644 --- a/Examples/MAX32662/UCL/Makefile +++ b/Examples/MAX32662/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Watchdog/Makefile b/Examples/MAX32662/Watchdog/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/Watchdog/Makefile +++ b/Examples/MAX32662/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/Watchdog/main.c b/Examples/MAX32662/Watchdog/main.c index 98e28b49c85..0062e3ffc78 100644 --- a/Examples/MAX32662/Watchdog/main.c +++ b/Examples/MAX32662/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32662/WearLeveling/Makefile b/Examples/MAX32662/WearLeveling/Makefile index 1a63ad0bcb5..0dd49ceb749 100644 --- a/Examples/MAX32662/WearLeveling/Makefile +++ b/Examples/MAX32662/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32662/WearLeveling/include/cli.h b/Examples/MAX32662/WearLeveling/include/cli.h index 62b7c2a5904..2f3e9a76d40 100644 --- a/Examples/MAX32662/WearLeveling/include/cli.h +++ b/Examples/MAX32662/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32662/WearLeveling/include/file.h b/Examples/MAX32662/WearLeveling/include/file.h index 7c9d13a4c4f..df2850dcba5 100644 --- a/Examples/MAX32662/WearLeveling/include/file.h +++ b/Examples/MAX32662/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32662/WearLeveling/include/flash.h b/Examples/MAX32662/WearLeveling/include/flash.h index 4ec9cf058c0..984e7521895 100644 --- a/Examples/MAX32662/WearLeveling/include/flash.h +++ b/Examples/MAX32662/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/WearLeveling/include/main.h b/Examples/MAX32662/WearLeveling/include/main.h index 3368770e84c..9393d0af54d 100644 --- a/Examples/MAX32662/WearLeveling/include/main.h +++ b/Examples/MAX32662/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32662_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32662/WearLeveling/main.c b/Examples/MAX32662/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32662/WearLeveling/main.c +++ b/Examples/MAX32662/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32662/WearLeveling/src/cli.c b/Examples/MAX32662/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32662/WearLeveling/src/cli.c +++ b/Examples/MAX32662/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32662/WearLeveling/src/file.c b/Examples/MAX32662/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32662/WearLeveling/src/file.c +++ b/Examples/MAX32662/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32662/WearLeveling/src/flash.c b/Examples/MAX32662/WearLeveling/src/flash.c index 0798620793a..e803060447c 100644 --- a/Examples/MAX32662/WearLeveling/src/flash.c +++ b/Examples/MAX32662/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/ADC/Makefile b/Examples/MAX32665/ADC/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/ADC/Makefile +++ b/Examples/MAX32665/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ADC/main.c b/Examples/MAX32665/ADC/main.c index a6886a87381..ac420fa6dfe 100644 --- a/Examples/MAX32665/ADC/main.c +++ b/Examples/MAX32665/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32665/AES/Makefile b/Examples/MAX32665/AES/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/AES/Makefile +++ b/Examples/MAX32665/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/AES/main.c b/Examples/MAX32665/AES/main.c index baf8457048a..e88c6710318 100644 --- a/Examples/MAX32665/AES/main.c +++ b/Examples/MAX32665/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_bayes_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_class_marks_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_convolution_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32665/ARM-DSP/arm_dotproduct_example_f32/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_fft_bin_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_fir_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_graphic_equalizer_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_linear_interp_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_matrix_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_signal_converge_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_sin_cos_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_svm_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32665/ARM-DSP/arm_variance_example/Makefile index 4def6dfdf1a..c2910ecdecf 100644 --- a/Examples/MAX32665/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32665/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/BLE4_ctr/.vscode/flash.gdb b/Examples/MAX32665/BLE4_ctr/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE4_ctr/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE4_ctr/Makefile b/Examples/MAX32665/BLE4_ctr/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE4_ctr/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE4_ctr/main.c b/Examples/MAX32665/BLE4_ctr/main.c deleted file mode 100644 index 4166b973549..00000000000 --- a/Examples/MAX32665/BLE4_ctr/main.c +++ /dev/null @@ -1,201 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - - /* Set 4.2 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) { - eventPending = WsfTokenService(); - } -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) { - eventPending = LhciSnifferHandler(); - } -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - LlSetAdvTxPower(DEFAULT_TX_POWER); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE5_ctr/.vscode/flash.gdb b/Examples/MAX32665/BLE5_ctr/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE5_ctr/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE5_ctr/Makefile b/Examples/MAX32665/BLE5_ctr/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE5_ctr/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE5_ctr/main.c b/Examples/MAX32665/BLE5_ctr/main.c deleted file mode 100644 index 7731aa9278e..00000000000 --- a/Examples/MAX32665/BLE5_ctr/main.c +++ /dev/null @@ -1,304 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth version 5.2 controller, accepts HCI commands via Serial Port. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_cs.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "mxc_device.h" -#include "uart.h" -#include "nvic_table.h" -#include "board.h" -#include "pal_timer.h" - -#define MAX_PRIORITY ((0x1 << __NVIC_PRIO_BITS) - 1) - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = BT_VER; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; - - /* Adjust the extended advertising and ISO settings */ - mainLlRtCfg.maxAdvSets = 2; - mainLlRtCfg.maxAdvReports = 4; - mainLlRtCfg.numIsoTxBuf = 8; - mainLlRtCfg.maxCis = 2; - mainLlRtCfg.maxBis = 2; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Use single pool for data buffers. */ -#if (BT_VER > 9) - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) { - eventPending = WsfTokenService(); - } -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) { - eventPending = LhciSnifferHandler(); - } -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Adjust interrupt priorities to let HCI UART interrupt have second highest after PAL timer - * - * \return None - */ -/*************************************************************************************************/ -void setInterruptPriority(void) -{ - /* Interrupts using FreeRTOS functions must have priorities between MAX_PRIORITY and - configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ - - /* Setup BLE hardware interrupt priorities */ - NVIC_SetPriority(BTLE_TX_DONE_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SFD_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SFD_TO_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_CFO_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SIG_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_TX_AES_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_AES_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (MAX_PRIORITY - 2)); - - /* Setup scheduler timer priorities */ - NVIC_SetPriority(TMR0_IRQn, (MAX_PRIORITY - 1)); - NVIC_SetPriority(TMR1_IRQn, (MAX_PRIORITY - 1)); - - NVIC_SetPriority(WUT_IRQn, (MAX_PRIORITY - 1)); - - /* Setup additional peripheral timer priorities */ - NVIC_SetPriority(UART0_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(UART1_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(UART2_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(UART3_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(DMA0_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA1_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA2_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA3_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(DMA4_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA5_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA6_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA7_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(DMA8_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA9_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA10_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA11_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(DMA12_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA13_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA14_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA15_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(GPIO0_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(GPIO1_IRQn, (MAX_PRIORITY - 0)); - - /* Trace UART */ - NVIC_SetPriority(UART0_IRQn, 3); - /* HCI UART highest priority */ - NVIC_SetPriority(MXC_UART_GET_IRQ(MXC_UART_GET_UART(HCI_UART)), 0); - /* PAL Timer */ - PalTimerSetIRQPriority(2); -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - LlSetAdvTxPower(DEFAULT_TX_POWER); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - setInterruptPriority(); - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_FreeRTOS/.vscode/flash.gdb b/Examples/MAX32665/BLE_FreeRTOS/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32665/BLE_FreeRTOS/FreeRTOSConfig.h deleted file mode 100644 index b38d8ef704b..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/FreeRTOSConfig.h +++ /dev/null @@ -1,134 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BLE_FREERTOS_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32665_BLE_FREERTOS_FREERTOSCONFIG_H_ - -#include -#include "max32665.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)HIRC96_FREQ) - -#define SLEEP_LED 1 -#define DEEPSLEEP_LED 0 - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -// #define configUSE_TICKLESS_IDLE 1 - -/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will -increase the amount of time spent in standby mode, thus reducing average power consumption. */ -#ifdef configUSE_TICKLESS_IDLE -#define configTICK_RATE_HZ ((portTickType)10000) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#endif - -#define configRTC_TICK_RATE_HZ (32768) - -#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -/* Define to trap errors during development. */ -void vAssertCalled(const char *const pcFileName, uint32_t ulLine); -#define configASSERT(x) \ - if ((x) == 0) \ - vAssertCalled(__FILE__, __LINE__) - -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) - -/* Only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY \ - ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -#endif // EXAMPLES_MAX32665_BLE_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32665/BLE_FreeRTOS/Makefile b/Examples/MAX32665/BLE_FreeRTOS/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_FreeRTOS/dats_api.h b/Examples/MAX32665/BLE_FreeRTOS/dats_api.h deleted file mode 100644 index 50c603d627c..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_FREERTOS_DATS_API_H_ -#define EXAMPLES_MAX32665_BLE_FREERTOS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_FREERTOS_DATS_API_H_ diff --git a/Examples/MAX32665/BLE_FreeRTOS/dats_main.c b/Examples/MAX32665/BLE_FreeRTOS/dats_main.c deleted file mode 100644 index 97d8af655ad..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/dats_main.c +++ /dev/null @@ -1,925 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_1M 1 -#define DATS_PHY_2M 2 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 60000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 5000, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - (50 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (100 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'D', - 'A', - 'T', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello back"; - - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datsCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - if (len < 64) { - /* print received data if not a speed test message */ - APP_TRACE_INFO0((const char *)pValue); - - /* send back some data */ - datsSendData(connId); - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datsOobCfg != NULL) { - DmSecSetOob(connId, datsOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32665/BLE_FreeRTOS/freertos_tickless.c deleted file mode 100644 index c5b18f06113..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/freertos_tickless.c +++ /dev/null @@ -1,359 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Maxim CMSIS */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" -#include "lp.h" -#include "pwrseq_regs.h" -#include "wut.h" -#include "mcr_regs.h" -#include "icc.h" -#include "pb.h" -#include "led.h" -#include "uart.h" -#include "simo.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Bluetooth Cordio library */ -#include "pal_timer.h" -#include "pal_uart.h" -#include "pal_bb.h" - -#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ -#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ -#define WAKEUP_US 1500 /* Deep sleep recovery time, units of us */ - -/* Minimum ticks before SysTick interrupt, units of system clock ticks. - * Convert CPU_CLOCK_HZ to units of ticks per us - */ -#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -int freertos_permit_tickless(void) -{ - /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ - if (MXC_WUT_TrimPending() != E_NO_ERROR) { - return E_BUSY; - } - - /* Figure out if the UART is active */ - if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { - return E_BUSY; - } - - /* Prevent characters from being corrupted if still transmitting, - UART will shutdown in deep sleep */ - if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { - return E_BUSY; - } - - return E_NO_ERROR; -} - -/* - * Switch the system clock to the HIRC / 4 - * - * Enable the HIRC, set the divide ration to /4, and disable the HIRC96 oscillator. - */ -void switchToHIRCD4(void) -{ - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV4); - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC_EN; - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC); - /* Disable unused clocks */ - while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} - /* Wait for the switch to occur */ - MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC96M_EN); - SystemCoreClockUpdate(); -} - -/* - * Switch the system clock to the HIRC96 - * - * Enable the HIRC96, set the divide ration to /1, and disable the HIRC oscillator. - */ -void switchToHIRC(void) -{ - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV1); - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC96); - /* Disable unused clocks */ - while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} - /* Wait for the switch to occur */ - MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC_EN); - SystemCoreClockUpdate(); -} - -/* - * Enter deep sleep mode - * - * Adjust system clocks and voltages for deep sleep. - */ -static void deepSleep(void) -{ - MXC_ICC_Disable(); - MXC_LP_ICache0Shutdown(); - - /* Shutdown unused power domains */ - MXC_PWRSEQ->lpcn |= MXC_F_PWRSEQ_LPCN_BGOFF; - - /* Prevent SIMO soft start on wakeup */ - MXC_LP_FastWakeupDisable(); - - /* Enable VDDCSWEN=1 prior to enter backup/deepsleep mode */ - MXC_MCR->ctrl |= MXC_F_MCR_CTRL_VDDCSWEN; - - /* Switch the system clock to a lower frequency to conserve power in deep sleep - and reduce current inrush on wakeup */ - switchToHIRCD4(); - - /* Reduce VCOREB to 0.81v */ - MXC_SIMO_SetVregO_B(810); - - MXC_LP_EnterDeepSleepMode(); - - /* If VCOREA not ready and VCOREB ready, switch VCORE=VCOREB - (set VDDCSW=2’b01). Configure VCOREB=1.1V wait for VCOREB ready. */ - - /* Check to see if VCOREA is ready on */ - if (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYC)) { - /* Wait for VCOREB to be ready */ - while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} - - /* Move VCORE switch back to VCOREB */ - MXC_MCR->ctrl = (MXC_MCR->ctrl & ~(MXC_F_MCR_CTRL_VDDCSW)) | - (0x1 << MXC_F_MCR_CTRL_VDDCSW_POS); - - /* Raise the VCORE_B voltage */ - while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} - MXC_SIMO_SetVregO_B(1000); - while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} - } - - MXC_LP_ICache0PowerUp(); - MXC_ICC_Enable(); - - /* Restore the system clock */ - switchToHIRC(); -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the WUT to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; - uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; - bool_t schTimerActive; - - /* We do not currently handle to case where the WUT is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Calculate the number of WUT ticks, but we need one to synchronize */ - idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / - (uint64_t)configTICK_RATE_HZ; - - if (idleTicks > MAX_WUT_TICKS) { - idleTicks = MAX_WUT_TICKS; - } - - /* Check to see if we meet the minimum requirements for deep sleep */ - if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { - return; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - - /* Determine if the Bluetooth scheduler is running */ - if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { - schTimerActive = TRUE; - } else { - schTimerActive = FALSE; - } - - if (!schTimerActive) { - uint32_t ts; - if (PalBbGetTimestamp(&ts)) { - /*Determine if PalBb is active, return if we get a valid time stamp indicating - * that the scheduler is waiting for a PalBb event */ - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - } - - /* Disable SysTick */ - SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); - - /* Enable wakeup from WUT */ - NVIC_EnableIRQ(WUT_IRQn); - MXC_LP_EnableWUTAlarmWakeup(); - - /* Determine if we need to snapshot the PalBb clock */ - if (schTimerActive) { - /* Snapshot the current WUT value with the PalBb clock */ - MXC_WUT_Store(); - preCapture = MXC_WUT_GetCount(); - schUsec = PalTimerGetExpTime(); - - /* Adjust idleTicks for the time it takes to restart the BLE hardware */ - idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); - - /* Calculate the time to the next BLE scheduler event */ - if (schUsec < WAKEUP_US) { - bleSleepTicks = 0; - } else { - bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * - (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; - } - } else { - /* Snapshot the current WUT value */ - MXC_WUT_Edge(); - preCapture = MXC_WUT_GetCount(); - bleSleepTicks = 0; - schUsec = 0; - } - - /* Sleep for the shortest tick duration */ - if ((schTimerActive) && (bleSleepTicks < idleTicks)) { - dsTicks = bleSleepTicks; - } else { - dsTicks = idleTicks; - } - - /* Bound the deep sleep time */ - if (dsTicks > MAX_WUT_TICKS) { - dsTicks = MAX_WUT_TICKS; - } - - /* Don't deep sleep if we don't have time */ - if (dsTicks >= MIN_WUT_TICKS) { - /* Arm the WUT interrupt */ - MXC_WUT->cmp = preCapture + dsTicks; - - if (schTimerActive) { - /* Stop the BLE scheduler timer */ - PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); - } - - LED_Off(SLEEP_LED); - LED_Off(DEEPSLEEP_LED); - - deepSleep(); - - LED_On(DEEPSLEEP_LED); - LED_On(SLEEP_LED); - - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); - - /* Restore the BB counter */ - MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); - - /* Restart the BLE scheduler timer */ - dsWutTicks = MXC_WUT->cnt - preCapture; - schUsecElapsed = - (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; - - int palTimerStartTicks = schUsec - schUsecElapsed; - if (palTimerStartTicks < 1) { - palTimerStartTicks = 1; - } - PalTimerStart(palTimerStartTicks); - } - } - - /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ - MXC_WUT_Edge(); - postCapture = MXC_WUT_GetCount(); - dsWutTicks = postCapture - preCapture; - - /* - * Advance ticks by # actually elapsed - */ - dsSysTickPeriods = - (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; - vTaskStepTick(dsSysTickPeriods); - - /* Re-enable SysTick */ - SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); -} diff --git a/Examples/MAX32665/BLE_FreeRTOS/main.c b/Examples/MAX32665/BLE_FreeRTOS/main.c deleted file mode 100644 index 87323edf563..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/main.c +++ /dev/null @@ -1,197 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief BLE_FreeRTOS - * @details This example demonstrates FreeRTOS with BLE capabilities. - */ - -#include -#include -#include -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "mxc_device.h" -#include "wut.h" -#include "lp.h" -#include "led.h" -#include "board.h" - -/* Shadow register definitions */ -#define MXC_R_SIR_SHR13 *((uint32_t *)(0x40005434)) -#define MXC_R_SIR_SHR17 *((uint32_t *)(0x40005444)) - -/* Stringification macros */ -#define STRING(x) STRING_(x) -#define STRING_(x) #x - -extern void bleStartup(void); - -/***** Functions *****/ - -/* =| vAssertCalled |============================== - * - * Called when an assertion is detected. Use debugger to backtrace and - * continue. - * - * ======================================================= - */ -void vAssertCalled(const char *const pcFileName, uint32_t ulLine) -{ - volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; - - /* Parameters are not used. */ - (void)ulLine; - (void)pcFileName; - - __asm volatile("cpsid i"); - { - /* You can step out of this function to debug the assertion by using - the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero - value. */ - while (ulSetToNonZeroInDebuggerToContinue == 0) {} - } - __asm volatile("cpsie i"); -} - -/* =| vApplicationIdleHook |============================== - * - * Call the user defined function from within the idle task. This - * allows the application designer to add background functionality - * without the overhead of a separate task. - * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, - * CALL A FUNCTION THAT MIGHT BLOCK. - * - * ======================================================= - */ -void vApplicationIdleHook(void) -{ - /* Sleep while idle */ - LED_Off(SLEEP_LED); - - MXC_LP_EnterSleepMode(); - - LED_On(SLEEP_LED); -} - -/* =| turnOffUnused |========================== - * - * Disable unused hardware to conserve power. - * - * ======================================================= - */ -void turnOffUnused(void) -{ - /* Prevent SIMO leakage in DS by reducing the SIMO buck clock */ - if (MXC_GCR->revision == 0xA2) { - MXC_R_SIR_SHR13 = 0x0; - MXC_R_SIR_SHR17 &= ~(0xC0); - } else if (MXC_GCR->revision == 0xA4) { - MXC_R_SIR_SHR17 &= ~(0xC0); - } - - MXC_LP_USBSWLPDisable(); -} - -/* =| main |============================================== - * - * This program demonstrates FreeRTOS tasks, mutexes. - * - * ======================================================= - */ -int main(void) -{ - /* Print banner (RTOS scheduler not running) */ - printf("\n-=- %s BLE FreeRTOS (%s) Demo -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); -#if configUSE_TICKLESS_IDLE - printf("Tickless idle is enabled\n"); - /* Initialize CPU Active LED */ - LED_On(SLEEP_LED); - LED_On(DEEPSLEEP_LED); -#endif - printf("SystemCoreClock = %d\n", SystemCoreClock); - - /* Delay to prevent bricks */ - volatile int i; - for (i = 0; i < 0x3FFFFF; i++) {} - - /* Turn off unused hardware to conserve power */ - turnOffUnused(); - - /* Start the BLE application */ - bleStartup(); - - /* Start scheduler */ - vTaskStartScheduler(); - - /* This code is only reached if the scheduler failed to start */ - printf("ERROR: FreeRTOS did not start due to above error!\n"); - while (1) { - __NOP(); - } - - /* Quiet GCC warnings */ - return -1; -} - -typedef struct __attribute__((packed)) ContextStateFrame { - uint32_t r0; - uint32_t r1; - uint32_t r2; - uint32_t r3; - uint32_t r12; - uint32_t lr; - uint32_t return_address; - uint32_t xpsr; -} sContextStateFrame; - -/*****************************************************************/ -void HardFault_Handler(void) -{ - __asm(" TST LR, #4\n" - " ITE EQ \n" - " MRSEQ R0, MSP \n" - " MRSNE R0, PSP \n" - " B HardFault_Decoder \n"); -} - -/*****************************************************************/ -/* Disable optimizations for this function so "frame" argument */ -/* does not get optimized away */ -__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) -{ - /* Hang here */ - while (1) {} -} diff --git a/Examples/MAX32665/BLE_FreeRTOS/stack_dats.c b/Examples/MAX32665/BLE_FreeRTOS/stack_dats.c deleted file mode 100644 index a6f0bd59b4b..00000000000 --- a/Examples/MAX32665/BLE_FreeRTOS/stack_dats.c +++ /dev/null @@ -1,400 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file stack_dats.c - * - * \brief Stack initialization for dats. - * - * Copyright (c) 2016-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include - -#include "app_api.h" -#include "app_terminal.h" -#include "app_ui.h" -#include "att_api.h" -#include "att_handler.h" -#include "dats_api.h" -#include "dm_handler.h" -#include "hci_core.h" -#include "hci_defs.h" -#include "hci_handler.h" -#include "l2c_api.h" -#include "l2c_handler.h" -#include "ll_init_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "sec_api.h" -#include "smp_api.h" -#include "smp_handler.h" -#include "svc_core.h" -#include "svc_dis.h" -#include "util/bstream.h" -#include "wdxs/wdxs_api.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_bufio.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_msg.h" -#include "wsf_os.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_types.h" -#include "pal_led.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#include "FreeRTOSConfig.h" - -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" -#include "mxc_device.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, - { 32, 4 }, - { 192, 8 }, - { 256, 16 }, - { 512, 4 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Initialize stack. - * - * \return None. - */ -/*************************************************************************************************/ -void StackInitDats(void) -{ - wsfHandlerId_t handlerId; - - SecInit(); - SecAesInit(); - SecCmacInit(); - SecEccInit(); - - handlerId = WsfOsSetNextHandler(HciHandler); - HciHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(DmHandler); - DmDevVsInit(0); - DmConnInit(); - DmAdvInit(); - DmConnSlaveInit(); - DmSecInit(); - DmSecLescInit(); - DmPrivInit(); - DmHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(L2cSlaveHandler); - L2cSlaveHandlerInit(handlerId); - L2cInit(); - L2cSlaveInit(); - - handlerId = WsfOsSetNextHandler(AttHandler); - AttHandlerInit(handlerId); - AttsInit(); - AttsIndInit(); - - handlerId = WsfOsSetNextHandler(SmpHandler); - SmpHandlerInit(handlerId); - SmprInit(); - SmprScInit(); - HciSetMaxRxAclLen(100); - - handlerId = WsfOsSetNextHandler(AppHandler); - AppHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(DatsHandler); - DatsHandlerInit(handlerId); -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_IntClear(); - NVIC_ClearPendingIRQ(WUT_IRQn); - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -void setInterruptPriority(void) -{ - /* Interrupts using FreeRTOS functions must have priorities between configMAX_PRIORITIES and - configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ - - /* Setup BLE hardware interrupt priorities */ - NVIC_SetPriority(BTLE_TX_DONE_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SFD_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SFD_TO_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_CFO_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SIG_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_TX_AES_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_AES_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (configMAX_PRIORITIES - 2)); - - /* Setup scheduler timer priorities */ - NVIC_SetPriority(TMR0_IRQn, (configMAX_PRIORITIES - 1)); - NVIC_SetPriority(TMR1_IRQn, (configMAX_PRIORITIES - 1)); - - NVIC_SetPriority(WUT_IRQn, configMAX_PRIORITIES - 1); - - /* Setup additional peripheral timer priorities */ - NVIC_SetPriority(UART0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART1_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART2_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART3_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(DMA0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA1_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA2_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA3_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(DMA4_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA5_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA6_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA7_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(DMA8_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA9_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA10_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA11_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(DMA12_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA13_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA14_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA15_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(GPIO0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(GPIO1_IRQn, (configMAX_PRIORITIES - 0)); -} - -void trim32k(void) -{ - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - NVIC_EnableIRQ(WUT_IRQn); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -} - -/*************************************************************************************************/ -/*! - * \brief Initialize BLE. - * - * \return None. - */ -/*************************************************************************************************/ -void bleStartup(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - trim32k(); -#endif - - setInterruptPriority(); - -#if configUSE_TICKLESS_IDLE - /* Disable Cordio stack usage of the LEDs */ - PalLedDeInit(); -#endif - - StackInitDats(); - DatsStart(); -} diff --git a/Examples/MAX32665/BLE_LR_Central/.vscode/flash.gdb b/Examples/MAX32665/BLE_LR_Central/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_LR_Central/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_LR_Central/Makefile b/Examples/MAX32665/BLE_LR_Central/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_LR_Central/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_LR_Central/main.c b/Examples/MAX32665/BLE_LR_Central/main.c deleted file mode 100644 index 66d40ecf49d..00000000000 --- a/Examples/MAX32665/BLE_LR_Central/main.c +++ /dev/null @@ -1,292 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Long range demo on a central device -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Partial Copyright (c) 2023 Analog Devices, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#include "lr_central_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 4 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -extern uint8_t appCodedPhyDemo; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDatc(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Increase the default ACL buffer size and count */ - mainLlRtCfg.numTxBufs = 8; - mainLlRtCfg.numRxBufs = 8; - mainLlRtCfg.maxAclLen = 256; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - - APP_TRACE_INFO0("=========================================="); - APP_TRACE_INFO0("Long distance scanner demo (CODED PHY S=8)"); - APP_TRACE_INFO1("BT_VER=%d", BT_VER); - APP_TRACE_INFO0("=========================================="); - appCodedPhyDemo = 1; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDatc(); - DatcStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_LR_Central/sdsc_api.h b/Examples/MAX32665/BLE_LR_Central/sdsc_api.h deleted file mode 100644 index 2fd5c1b2208..00000000000 --- a/Examples/MAX32665/BLE_LR_Central/sdsc_api.h +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/*************************************************************************************************/ -/*! Secure Data Service Client -* Implements the necessary handles list to perform service -* and characteristic discovery of custom secured service . -* - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BLE_LR_CENTRAL_SDSC_API_H_ -#define EXAMPLES_MAX32665_BLE_LR_CENTRAL_SDSC_API_H_ - -#include "att_api.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ -enum { - SEC_DAT_HDL_IDX, /*!< \brief Secured data */ - SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ - SEC_HDL_LIST_LEN /*!< \brief Handle list length */ -}; - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for Secured service . - * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_LR_CENTRAL_SDSC_API_H_ diff --git a/Examples/MAX32665/BLE_LR_Central/sdsc_main.c b/Examples/MAX32665/BLE_LR_Central/sdsc_main.c deleted file mode 100644 index b20cdced9cd..00000000000 --- a/Examples/MAX32665/BLE_LR_Central/sdsc_main.c +++ /dev/null @@ -1,92 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_assert.h" -#include "util/bstream.h" -#include "app_api.h" -#include "sdsc_api.h" - -/************************************************************************************************** - Secure Service and Data UUIDs -**************************************************************************************************/ -#define ATT_UUID_SEC_DATA_SERVICE \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_SEC_DATA \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/* UUIDs */ -static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ -static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ - -/* Characteristics for discovery */ - -/*! Secured data */ -static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; - -/*! Secured data descriptor */ -static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, - ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; - -/*! List of characteristics to be discovered; order matches handle index enumeration */ -static const attcDiscChar_t *secDatDiscCharList[] = { - &secDat, /*! Secured data */ - &secDatCcc /*! Secured data descriptor */ -}; - -/* sanity check: make sure handle list length matches characteristic list length */ -WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for custom secured service . - * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) -{ - AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, - (attcDiscChar_t **)secDatDiscCharList, pHdlList); -} diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.vscode/flash.gdb b/Examples/MAX32665/BLE_LR_Peripheral/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_LR_Peripheral/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_LR_Peripheral/Makefile b/Examples/MAX32665/BLE_LR_Peripheral/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_LR_Peripheral/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_LR_Peripheral/main.c b/Examples/MAX32665/BLE_LR_Peripheral/main.c deleted file mode 100644 index 7b2d15bc886..00000000000 --- a/Examples/MAX32665/BLE_LR_Peripheral/main.c +++ /dev/null @@ -1,287 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief BLE long range application demo on a peripheral device. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Paritial Copyright (c) 2023 Analog Devices, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" -#include "pal_timer.h" -#include "pal_sys.h" -#include "pal_uart.h" - -#include "lr_periph_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ -extern uint8_t appCodedPhyDemo; - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitFit(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - - APP_TRACE_INFO0("==============================="); - APP_TRACE_INFO0("Long range demo (coded-PHY s=8)"); - APP_TRACE_INFO0("==============================="); - APP_TRACE_INFO1("BT_VER: %d", BT_VER); - appCodedPhyDemo = 1; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitFit(); - FitStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_datc/.vscode/flash.gdb b/Examples/MAX32665/BLE_datc/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_datc/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_datc/Makefile b/Examples/MAX32665/BLE_datc/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_datc/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_datc/datc_api.h b/Examples/MAX32665/BLE_datc/datc_api.h deleted file mode 100644 index ce7cda5ea67..00000000000 --- a/Examples/MAX32665/BLE_datc/datc_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_DATC_DATC_API_H_ -#define EXAMPLES_MAX32665_BLE_DATC_DATC_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_DATC_DATC_API_H_ diff --git a/Examples/MAX32665/BLE_datc/datc_main.c b/Examples/MAX32665/BLE_datc/datc_main.c deleted file mode 100644 index 206636847a5..00000000000 --- a/Examples/MAX32665/BLE_datc/datc_main.c +++ /dev/null @@ -1,1400 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application for Nordic-ble. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "dm_api.h" -#include "dm_priv.h" -#include "gap/gap_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_cfg.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_core.h" -#include "svc_ch.h" -#include "gatt/gatt_api.h" -#include "wpc/wpc_api.h" -#include "datc_api.h" -#include "util/calc128.h" -#include "pal_btn.h" -#include "pal_uart.h" -#include "tmr.h" -#include "sdsc_api.h" -/************************************************************************************************** -Macros -**************************************************************************************************/ -#if (BT_VER > 8) -/* PHY Test Modes */ -#define DATC_PHY_1M 1 -#define DATC_PHY_2M 2 -#define DATC_PHY_CODED 3 -#endif /* BT_VER */ - -#define SPEED_TEST_COUNT 5000 - -/* Max value is 238 */ -#define SPEED_TEST_PACKET_LEN 238 -#define SPEED_TEST_TMR MXC_TMR3 - -#define SCAN_START_EVT 0x99 -#define SCAN_START_MS 500 - -/* Down sample the number of scan reports we print */ -#define SCAN_REPORT_DOWN_SAMPLE 20 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR2 - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -struct { - uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ - wsfHandlerId_t handlerId; /*! WSF hander ID */ - bool_t scanning; /*! TRUE if scanning */ - bool_t autoConnect; /*! TRUE if auto-connecting */ - uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ - uint8_t hdlListLen; /*! Cached handle list length */ - uint8_t btnConnId; /*! The index of the connection ID for button presses */ -#if (BT_VER > 8) - uint8_t phyMode[DM_CONN_MAX]; /*! PHY Test Mode */ -#endif /* BT_VER */ - appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ - unsigned speedTestCounter; - wsfTimer_t scanTimer; /* Timer for starting the scanner */ -} datcCb; - -/*! connection control block */ -typedef struct { - appDbHdl_t dbHdl; /*! Device database record handle type */ - uint8_t addrType; /*! Type of address of device to connect to */ - bdAddr_t addr; /*! Address of device to connect to */ - bool_t doConnect; /*! TRUE to issue connect on scan complete */ -} datcConnInfo_t; - -datcConnInfo_t datcConnInfo; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for master */ -static const appMasterCfg_t datcMasterCfg = { - 96, /*! The scan interval, in 0.625 ms units */ - 48, /*! The scan window, in 0.625 ms units */ - 0, /*! The scan duration in ms */ - DM_DISC_MODE_NONE, /*! The GAP discovery mode */ - DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ -}; - -/*! Configurable security parameters to set -* pairing and authentication requirements. -* -* Authentication and bonding flags -* -DM_AUTH_BOND_FLAG : Bonding requested -* -DM_AUTH_KP_FLAG : Keypress notifications requested -* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested, - pairing method is determined by IO capabilities below -* -DM_AUTH_SC_FLAG : LE Secure Connections requested -* -* Initiator key distribution flags -* -DM_KEY_DIST_LTK : Distribute LTK used for encryption -* -DM_KEY_DIST_IRK : Distribute IRK used for privacy -* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data -*/ -static const appSecCfg_t datcSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/* OOB UART parameters */ -#define OOB_BAUD 115200 -#define OOB_FLOW FALSE - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datcSendOobData = FALSE; - -/* OOB Connection identifier */ -dmConnId_t oobConnId; - -/*! SMP security parameter configuration -* -* I/O Capability Codes to be set for -* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets -* when the MITM flag is set in Configurable security parameters above. -* -SMP_IO_DISP_ONLY : Display only. -* -SMP_IO_DISP_YES_NO : Display yes/no. -* -SMP_IO_KEY_ONLY : Keyboard only. -* -SMP_IO_NO_IN_NO_OUT : No input, no output. -* -SMP_IO_KEY_DISP : Keyboard display. -*/ -static const smpCfg_t datcSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_KEY_ONLY, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! Connection parameters */ -static const hciConnSpec_t datcConnCfg = { - 6, /*! Minimum connection interval in 1.25ms units */ - 6, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 0, /*! Unused */ - 0 /*! Unused */ -}; - -/*! Configurable parameters for service and characteristic discovery */ -static const appDiscCfg_t datcDiscCfg = { - FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ - TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ -}; - -static const appCfg_t datcAppCfg = { - FALSE, /*! TRUE to abort service discovery if service not found */ - TRUE /*! TRUE to disconnect if ATT transaction times out */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datcAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, - 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; - -/************************************************************************************************** - ATT Client Discovery Data -**************************************************************************************************/ - -/*! Discovery states: enumeration of services to be discovered */ -enum { - DATC_DISC_GATT_SVC, /*! GATT service */ - DATC_DISC_GAP_SVC, /*! GAP service */ - DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ - DATC_DISC_SDS_SVC, /*! Secured Data Service */ - DATC_DISC_SVC_MAX /*! Discovery complete */ -}; - -/*! the Client handle list, datcCb.hdlList[], is set as follows: - * - * ------------------------------- <- DATC_DISC_GATT_START - * | GATT svc changed handle | - * ------------------------------- - * | GATT svc changed ccc handle | - * ------------------------------- <- DATC_DISC_GAP_START - * | GAP central addr res handle | - * ------------------------------- - * | GAP RPA Only handle | - * ------------------------------- <- DATC_DISC_WP_START - * | WP handles | - * | ... | - * ------------------------------- - */ - -/*! Start of each service's handles in the the handle list */ -#define DATC_DISC_GATT_START 0 -#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) -#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) -#define DATC_DISC_SDS_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) -#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_SDS_START + SEC_HDL_LIST_LEN) - -/*! Pointers into handle list for each service's handles */ -static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; -static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; -static uint16_t *pSecDatHdlList[DM_CONN_MAX]; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datcOobCfg; - -/************************************************************************************************** - ATT Client Configuration Data -**************************************************************************************************/ - -/* - * Data for configuration after service discovery - */ - -/* Default value for CCC indications */ -const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; - -/* Default value for CCC notifications */ -const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; - -/* Default value for Client Supported Features (enable Robust Caching) */ -const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; - -/* List of characteristics to configure after service discovery */ -static const attcDiscCfg_t datcDiscCfgList[] = { - /* Write: GATT service changed ccc descriptor */ - { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: GATT client supported features */ - { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: Proprietary data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, - - /* Write: Secured data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (SEC_DAT_CCC_HDL_IDX + DATC_DISC_SDS_START) }, -}; - -/* Characteristic configuration list length */ -#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) - -/* sanity check: make sure configuration list length is <= handle list length */ -WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); - -/*************************************************************************************************/ -/*! - * \brief OOB RX callback. - * - * \return None. - */ -/*************************************************************************************************/ -void oobRxCback(void) -{ - if (datcOobCfg != NULL) { - DmSecSetOob(oobConnId, datcOobCfg); - } - - DmSecAuthRsp(oobConnId, 0, NULL); -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - uint16_t reportLen; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datcSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - - /* Setup HCI UART for OOB */ - PalUartConfig_t hciUartCfg; - hciUartCfg.rdCback = oobRxCback; - hciUartCfg.wrCback = NULL; - hciUartCfg.baud = OOB_BAUD; - hciUartCfg.hwFlow = OOB_FLOW; - - PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datcOobCfg == NULL) { - datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - memset(datcOobCfg, 0, sizeof(dmSecLescOobCfg_t)); - } - - if (datcOobCfg) { - Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); - - /* Start the RX for the peer OOB data */ - PalUartReadData(PAL_UART_ID_CHCI, datcOobCfg->peerRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - } else { - APP_TRACE_ERR0("Error allocating OOB data"); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - reportLen = pDmEvt->scanReport.len; - } else { - reportLen = 0; - } - - if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { - memcpy(pMsg, pDmEvt, len); - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); - memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); - } - WsfMsgSend(datcCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datcCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning handler. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanningHandler(void) -{ - datcCb.autoConnect = TRUE; - datcConnInfo.doConnect = FALSE; - AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanning(void) -{ - /* Start the scanning start timer */ - WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan start. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStart(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan stop. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStop(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - - /* Open connection */ - if (datcConnInfo.doConnect) { - AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); - datcConnInfo.doConnect = FALSE; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Print the name value from a scan report. - * - * \param name Pointer to name parameter from a scan report. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrintName(uint8_t *name) -{ - /* Allocate a buffer for the device name */ - uint8_t *printBuf; - printBuf = WsfBufAlloc(name[DM_AD_LEN_IDX]); - - if (printBuf != NULL) { - /* Copy in the data and null terminate the string */ - memcpy(printBuf, &name[DM_AD_DATA_IDX], name[DM_AD_LEN_IDX] - 1); - printBuf[name[DM_AD_LEN_IDX] - 1] = 0; - - APP_TRACE_INFO1(" Name: %s", printBuf); - WsfBufFree(printBuf); - } -} - -/*************************************************************************************************/ -/*! - * \brief Print the contents of a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrintScanReport(dmEvt_t *pMsg) -{ -#if WSF_TRACE_ENABLED == TRUE - uint8_t *pData; - - APP_TRACE_INFO0("Scan Report:"); - WsfTrace(" %02x:%02x:%02x:%02x:%02x:%02x", pMsg->scanReport.addr[5], pMsg->scanReport.addr[4], - pMsg->scanReport.addr[3], pMsg->scanReport.addr[2], pMsg->scanReport.addr[1], - pMsg->scanReport.addr[0]); - - if ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL) { - datcPrintName(pData); - } else if ((pData = DmFindAdType(DM_ADV_TYPE_SHORT_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL) { - datcPrintName(pData); - } -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Handle a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanReport(dmEvt_t *pMsg) -{ - uint8_t *pData; - appDbHdl_t dbHdl; - bool_t connect = FALSE; - - /* disregard if not scanning or autoconnecting */ - if (!datcCb.scanning || !datcCb.autoConnect) { - return; - } - - /* if we already have a bond with this device then connect to it */ - if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != - APP_DB_HDL_NONE) { - /* if this is a directed advertisement where the initiator address is an RPA */ - if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { - /* resolve direct address to see if it's addressed to us */ - AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); - } else { - connect = TRUE; - } - } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { - /* if the peer device uses an RPA */ - /* resolve advertiser's RPA to see if we already have a bond with this device */ - AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); - } - - /* find device name */ - if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL)) { - /* check length and device name */ - if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'D') && - (pData[DM_AD_DATA_IDX + 1] == 'A') && (pData[DM_AD_DATA_IDX + 2] == 'T') && - (pData[DM_AD_DATA_IDX + 3] == 'S')) { - connect = TRUE; - } - } - - if (connect) { - datcPrintScanReport(pMsg); - - /* stop scanning and connect */ - datcCb.autoConnect = FALSE; - AppScanStop(); - - /* Store peer information for connect on scan stop */ - datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); - memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); - datcConnInfo.dbHdl = dbHdl; - datcConnInfo.doConnect = TRUE; - } else { - static int scanReportDownSample = 0; - - /* Down sample the number of scan reports we print */ - if (scanReportDownSample++ == SCAN_REPORT_DOWN_SAMPLE) { - scanReportDownSample = 0; - datcPrintScanReport(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection open. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcOpen(dmEvt_t *pMsg) -{ -#if (BT_VER > 8) - datcCb.phyMode[pMsg->hdr.param - 1] = DATC_PHY_1M; -#endif /* BT_VER */ -} - -/*************************************************************************************************/ -/*! - * \brief Process a received ATT notification. - * - * \param pMsg Pointer to ATT callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcValueNtf(attEvt_t *pMsg) -{ - if (pMsg->handle == pSecDatHdlList[pMsg->hdr.param - 1][SEC_DAT_HDL_IDX]) - APP_TRACE_INFO0(">> Notification from secure data service <<<"); - /* print the received data */ - if (datcCb.speedTestCounter == 0) { - APP_TRACE_INFO0((const char *)pMsg->pValue); - } -} - -/*************************************************************************************************/ -/*! - * \brief Set up procedures that need to be performed after device reset. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSetup(dmEvt_t *pMsg) -{ - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - datcConnInfo.doConnect = FALSE; - datcCb.restoringResList = FALSE; - - DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datcSetup(pMsg); - } else { - datcCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datcCb.restoringResList) { - /* Retore next device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datcSetup(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Send example data. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello world"; - - if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send example data to secured charactersitic. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void secDatSendData(dmConnId_t connId) -{ - uint8_t str[] = "Secret number is 0x42"; - - if (pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX], sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief GAP service discovery has completed. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscGapCmpl(dmConnId_t connId) -{ - appDbHdl_t dbHdl; - - /* if RPA Only attribute found on peer device */ - if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { - /* update DB */ - AppDbSetPeerRpao(dbHdl, TRUE); - AppDbNvmStorePeerRpao(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Handler for the speed test. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSpeedTestHandler(dmConnId_t connId) -{ - static uint8_t speedTestData[SPEED_TEST_PACKET_LEN]; - uint16_t handle; - - if (datcCb.speedTestCounter == SPEED_TEST_COUNT) { - unsigned us = MXC_TMR_SW_Stop(SPEED_TEST_TMR); - - /* Calculate the throughput */ - unsigned bits = SPEED_TEST_COUNT * SPEED_TEST_PACKET_LEN * 8; - APP_TRACE_INFO2("%d bits transferred in %d us", bits, us); - - float bps = (float)bits / ((float)us / (float)1000000); - APP_TRACE_INFO1("%d bps", (unsigned)bps); - - /* Reset the counter for the next test */ - datcCb.speedTestCounter = 0; - return; - } - - /* Write the next packet */ - handle = pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX]; - AttcWriteCmd(connId, handle, (uint16_t)SPEED_TEST_PACKET_LEN, speedTestData); - - if (datcCb.speedTestCounter == 0) { - /* Start the throughput timer */ - MXC_TMR_SW_Start(SPEED_TEST_TMR); - } - - datcCb.speedTestCounter++; -} - -/*************************************************************************************************/ -/*! - * \brief Starts the speed test. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcStartSpeedTest(dmConnId_t connId) -{ - if (datcCb.speedTestCounter != 0) { - APP_TRACE_ERR0("Speed test already running"); - return; - } - - APP_TRACE_INFO0("Starting speed test"); - datcSpeedTestHandler(connId); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcBtnCback(uint8_t btn) -{ - dmConnId_t connId = datcCb.btnConnId; - dmConnId_t connIdList[DM_CONN_MAX]; - uint8_t numConnections = AppConnOpenList(connIdList); - - /* button actions when connected */ - if (numConnections > 0) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (numConnections < DM_CONN_MAX - 1) { - /* if scanning cancel scanning */ - if (datcCb.scanning) { - AppScanStop(); - } else if (!datcCb.autoConnect) { - /* else auto connect */ - datcRestartScanning(); - } - } else { - APP_TRACE_INFO0("datcBtnCback: Max connections reached."); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID used in button presses */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* disconnect */ - AppConnClose(connId); - break; - -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - datcCb.phyMode[connId - 1] = DATC_PHY_1M; - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - datcCb.phyMode[connId - 1] = DATC_PHY_2M; - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - datcCb.phyMode[connId - 1] = DATC_PHY_CODED; - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - datcCb.phyMode[connId - 1] = DATC_PHY_CODED; - break; - } - break; - } -#endif /* BT_VER */ - case APP_UI_BTN_2_MED: - secDatSendData(connId); - break; - case APP_UI_BTN_2_LONG: - /* send data */ - datcSendData(connId); - break; - - case APP_UI_BTN_2_EX_LONG: - /* Start the speed test */ - datcStartSpeedTest(connId); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* if scanning cancel scanning */ - if (datcCb.scanning) { - AppScanStop(); - } else if (!datcCb.autoConnect) { - /* else auto connect */ - datcRestartScanning(); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID buttons apply to */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: - /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ - SvcCoreGapAddRpaoCh(); - break; - - case APP_UI_BTN_2_EX_LONG: - /* enable device privacy -- start generating local RPAs every 15 minutes */ - DmDevPrivStart(15 * 60); - - /* set Scanning filter policy to accept directed advertisements with RPAs */ - DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Discovery callback. - * - * \param connId Connection identifier. - * \param status Service or configuration status. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscCback(dmConnId_t connId, uint8_t status) -{ - switch (status) { - case APP_DISC_INIT: - /* set handle list when initialization requested */ - AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_READ_DATABASE_HASH: - /* Read peer's database hash */ - AppDiscReadDatabaseHash(connId); - break; - - case APP_DISC_SEC_REQUIRED: - /* initiate security */ - AppMasterSecurityReq(connId); - break; - - case APP_DISC_START: - /* initialize discovery state */ - datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; - - /* store possible change in cache by hash */ - AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); - - /* discover GATT service */ - GattDiscover(connId, pDatcGattHdlList[connId - 1]); - break; - - case APP_DISC_FAILED: - if (pAppCfg->abortDisc) { - /* if discovery failed for proprietary data service then disconnect */ - if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { - AppConnClose(connId); - break; - } - } - /* Else falls through. */ - - case APP_DISC_CMPL: - /* next discovery state */ - datcCb.discState[connId - 1]++; - - if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { - /* discover GAP service */ - GapDiscover(connId, pDatcGapHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { - /* discover proprietary data service */ - WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_SDS_SVC) { - /* discover secured data service */ - SecDatSvcDiscover(connId, pSecDatHdlList[connId - 1]); - } else { - /* discovery complete */ - AppDiscComplete(connId, APP_DISC_CMPL); - - /* GAP service discovery completed */ - datcDiscGapCmpl(connId); - - /* store cached handle list in NVM */ - AppDbNvmStoreHdlList(AppDbGetHdl(connId)); - - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - } - break; - - case APP_DISC_CFG_START: - case APP_DISC_CFG_CONN_START: - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_CFG_CMPL: - AppDiscComplete(connId, status); - break; - - default: - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTC_WRITE_CMD_RSP: { - if (datcCb.speedTestCounter != 0) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - datcSpeedTestHandler(connId); - } - } break; - - case ATTC_HANDLE_VALUE_NTF: - datcValueNtf((attEvt_t *)pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datcRestoreResolvingList(pMsg); - datcRestartScanning(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_SCAN_START_IND: - datcScanStart(pMsg); - uiEvent = APP_UI_SCAN_START; - break; - - case DM_SCAN_STOP_IND: - datcScanStop(pMsg); - uiEvent = APP_UI_SCAN_STOP; - break; - - case DM_SCAN_REPORT_IND: - datcScanReport(pMsg); - break; - - case DM_CONN_OPEN_IND: - datcOpen(pMsg); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - datcRestartScanning(); - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - APP_TRACE_INFO0("Sending OOB data"); - oobConnId = connId; - - /* Start the TX to send the local OOB data */ - PalUartWriteData(PAL_UART_ID_CHCI, datcOobCfg->localRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datcPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case SCAN_START_EVT: - datcRestartScanningHandler(); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatcHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - - /* store handler ID */ - datcCb.handlerId = handlerId; - - /* set handle list length */ - datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; - - datcCb.btnConnId = 1; - /* Set configuration pointers */ - pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; - pAppSecCfg = (appSecCfg_t *)&datcSecCfg; - pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; - pAppCfg = (appCfg_t *)&datcAppCfg; - pSmpCfg = (smpCfg_t *)&datcSmpCfg; - pAttCfg = (attCfg_t *)&datcAttCfg; - - /* Initialize application framework */ - AppMasterInit(); - AppDiscInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup scan start timer */ - datcCb.scanTimer.handlerId = handlerId; - datcCb.scanTimer.msg.event = SCAN_START_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - if (datcCb.speedTestCounter == 0 && pMsg->event != DM_SCAN_REPORT_IND) { - APP_TRACE_INFO1("Datc got evt %d", pMsg->event); - } - - if (pMsg->event <= ATT_CBACK_END) { /* process ATT messages */ - /* process discovery-related ATT messages */ - AppDiscProcAttMsg((attEvt_t *)pMsg); - - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ - /* process advertising and connection-related messages */ - AppMasterProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppMasterSecProcDmMsg((dmEvt_t *)pMsg); - - /* process discovery-related messages */ - AppDiscProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datcProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the pointers into the handle list. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcInitSvcHdlList() -{ - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++) { - /*! Pointers into handle list for each service's handles */ - pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; - pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; - pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; - pSecDatHdlList[i] = &datcCb.hdlList[i][DATC_DISC_SDS_START]; - } -} -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void) -{ - /* Initialize handle pointers */ - datcInitSvcHdlList(); - - /* Register for stack callbacks */ - DmRegister(datcDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); - AttRegister(datcAttCback); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datcBtnCback); - - /* Register for app framework discovery callbacks */ - AppDiscRegister(datcDiscCback); - - /* Initialize attribute server database */ - SvcCoreAddGroup(); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE_datc/main.c b/Examples/MAX32665/BLE_datc/main.c deleted file mode 100644 index ec019ebe3fc..00000000000 --- a/Examples/MAX32665/BLE_datc/main.c +++ /dev/null @@ -1,282 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE Data Client for unformatted data exchange. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#include "datc_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDatc(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Increase the default ACL buffer size and count */ - mainLlRtCfg.numTxBufs = 8; - mainLlRtCfg.numRxBufs = 8; - mainLlRtCfg.maxAclLen = 256; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDatc(); - DatcStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_datc/sdsc_api.h b/Examples/MAX32665/BLE_datc/sdsc_api.h deleted file mode 100644 index 913101c8900..00000000000 --- a/Examples/MAX32665/BLE_datc/sdsc_api.h +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/*************************************************************************************************/ -/*! Secure Data Service Client -* Implements the necessary handles list to perform service -* and characteristic discovery of custom secured service . -* - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BLE_DATC_SDSC_API_H_ -#define EXAMPLES_MAX32665_BLE_DATC_SDSC_API_H_ - -#include "att_api.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ -enum { - SEC_DAT_HDL_IDX, /*!< \brief Secured data */ - SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ - SEC_HDL_LIST_LEN /*!< \brief Handle list length */ -}; - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for Secured service . - * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_DATC_SDSC_API_H_ diff --git a/Examples/MAX32665/BLE_datc/sdsc_main.c b/Examples/MAX32665/BLE_datc/sdsc_main.c deleted file mode 100644 index b20cdced9cd..00000000000 --- a/Examples/MAX32665/BLE_datc/sdsc_main.c +++ /dev/null @@ -1,92 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_assert.h" -#include "util/bstream.h" -#include "app_api.h" -#include "sdsc_api.h" - -/************************************************************************************************** - Secure Service and Data UUIDs -**************************************************************************************************/ -#define ATT_UUID_SEC_DATA_SERVICE \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_SEC_DATA \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/* UUIDs */ -static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ -static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ - -/* Characteristics for discovery */ - -/*! Secured data */ -static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; - -/*! Secured data descriptor */ -static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, - ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; - -/*! List of characteristics to be discovered; order matches handle index enumeration */ -static const attcDiscChar_t *secDatDiscCharList[] = { - &secDat, /*! Secured data */ - &secDatCcc /*! Secured data descriptor */ -}; - -/* sanity check: make sure handle list length matches characteristic list length */ -WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for custom secured service . - * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) -{ - AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, - (attcDiscChar_t **)secDatDiscCharList, pHdlList); -} diff --git a/Examples/MAX32665/BLE_dats/.vscode/flash.gdb b/Examples/MAX32665/BLE_dats/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_dats/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_dats/Makefile b/Examples/MAX32665/BLE_dats/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_dats/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_dats/dats_api.h b/Examples/MAX32665/BLE_dats/dats_api.h deleted file mode 100644 index 959aa81052d..00000000000 --- a/Examples/MAX32665/BLE_dats/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_DATS_DATS_API_H_ -#define EXAMPLES_MAX32665_BLE_DATS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32665/BLE_dats/dats_main.c b/Examples/MAX32665/BLE_dats/dats_main.c deleted file mode 100644 index 87b4b912036..00000000000 --- a/Examples/MAX32665/BLE_dats/dats_main.c +++ /dev/null @@ -1,1028 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "pal_uart.h" -#include "tmr.h" -#include "svc_sds.h" -#include "ll_api.h" -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_1M 1 -#define DATS_PHY_2M 2 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 60000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_SEC_DAT_CCC_IDX, - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! Configurable security parameters to set -* pairing and authentication requirements. -* -* Authentication and bonding flags -* -DM_AUTH_BOND_FLAG : Bonding requested -* -DM_AUTH_SC_FLAG : LE Secure Connections requested -* -DM_AUTH_KP_FLAG : Keypress notifications requested -* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested - pairing method is determined by IO capabilities below -* -* Initiator key distribution flags -* -DM_KEY_DIST_LTK : Distribute LTK used for encryption -* -DM_KEY_DIST_IRK : Distribute IRK used for privacy -* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data -*/ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG | DM_AUTH_MITM_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/* OOB UART parameters */ -#define OOB_BAUD 115200 -#define OOB_FLOW FALSE - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/* OOB Connection identifier */ -dmConnId_t oobConnId; - -/*! SMP security parameter configuration -* -* I/O Capability Codes to be set for -* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets -* when the MITM flag is set in Configurable security parameters above. -* -SMP_IO_DISP_ONLY : Display only. -* -SMP_IO_DISP_YES_NO : Display yes/no. -* -SMP_IO_KEY_ONLY : Keyboard only. -* -SMP_IO_NO_IN_NO_OUT : No input, no output. -* -SMP_IO_KEY_DISP : Keyboard display. -*/ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_KEY_ONLY, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update. set to zero to disable */ - (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'D', - 'A', - 'T', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* DATS_WP_DAT_CCC_IDX */ - { SEC_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_SEC_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief OOB RX callback. - * - * \return None. - */ -/*************************************************************************************************/ -void oobRxCback(void) -{ - if (datsOobCfg != NULL) { - DmSecSetOob(oobConnId, datsOobCfg); - } - - DmSecAuthRsp(oobConnId, 0, NULL); -} - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello back"; - - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - - /* Setup HCI UART for OOB */ - PalUartConfig_t hciUartCfg; - hciUartCfg.rdCback = oobRxCback; - hciUartCfg.wrCback = NULL; - hciUartCfg.baud = OOB_BAUD; - hciUartCfg.hwFlow = OOB_FLOW; - - PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - memset(datsOobCfg, 0, sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - - /* Start the RX for the peer OOB data */ - PalUartReadData(PAL_UART_ID_CHCI, datsOobCfg->peerRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - } else { - APP_TRACE_ERR0("Error allocating OOB data"); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datsCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - static uint32_t packetCount = 0; - if (len < 64) { - /* print received data if not a speed test message */ - APP_TRACE_INFO0((const char *)pValue); - - /* send back some data */ - datsSendData(connId); - } else { - APP_TRACE_INFO1("Speed test packet Count [%d]", packetCount++); - if (packetCount >= 5000) { - packetCount = 0; - } - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for secured data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t secDatWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - uint8_t str[] = "Secure data received!"; - APP_TRACE_INFO0(">> Received secure data <<"); - APP_TRACE_INFO0((const char *)pValue); - - /* Write data recevied into characteristic */ - AttsSetAttr(SEC_DAT_HDL, len, (uint8_t *)pValue); - /* if notifications are enabled send one */ - if (AttsCccEnabled(connId, DATS_SEC_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, SEC_DAT_HDL, sizeof(str), str); - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - if (datsSecCfg.initiateSec) { - AppSlaveSecurityReq((dmConnId_t)pMsg->hdr.param); - } - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - APP_TRACE_INFO0("Sending OOB data"); - oobConnId = connId; - - /* Start the TX to send the local OOB data */ - PalUartWriteData(PAL_UART_ID_CHCI, datsOobCfg->localRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /*register secure data write callback */ - SvcSecDataCbackRegister(NULL, secDatWriteCback); - /* Register secure data service */ - SvcSecDataAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE_dats/main.c b/Examples/MAX32665/BLE_dats/main.c deleted file mode 100644 index 9a69b3a4346..00000000000 --- a/Examples/MAX32665/BLE_dats/main.c +++ /dev/null @@ -1,279 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE Data Server for unformatted data exchange. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "dats_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDats(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); - NVIC_ClearPendingIRQ(WUT_IRQn); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDats(); - DatsStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_dats/services/svc_sds.c b/Examples/MAX32665/BLE_dats/services/svc_sds.c deleted file mode 100644 index 1b5127215b0..00000000000 --- a/Examples/MAX32665/BLE_dats/services/svc_sds.c +++ /dev/null @@ -1,158 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include "wsf_types.h" -#include "att_api.h" -#include "wsf_trace.h" -#include "util/bstream.h" -#include "svc_ch.h" -#include "svc_sds.h" -#include "svc_cfg.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Characteristic read/write permissions */ -#ifndef SEC_DATA_PERMIT_READ -#define SEC_DATA_PERMIT_READ SVC_SEC_PERMIT_READ -#endif - -#ifndef SEC_DATA_PERMIT_READ_ENC -#define SEC_DATA_PERMIT_READ_ENC ATTS_PERMIT_READ_ENC -#endif - -#ifndef SEC_DATA_PERMIT_READ_AUTH -#define SEC_DATA_PERMIT_READ_AUTH ATTS_PERMIT_READ_AUTH -#endif - -#ifndef SEC_DATA_PERMIT_WRITE -#define SEC_DATA_PERMIT_WRITE SVC_SEC_PERMIT_WRITE -#endif - -#ifndef SEC_DATA_PERMIT_WRITE_ENC -#define SEC_DATA_PERMIT_WRITE_ENC ATTS_PERMIT_WRITE_ENC -#endif - -#ifndef SEC_DATA_PERMIT_WRITE_AUTH -#define SEC_DATA_PERMIT_WRITE_AUTH ATTS_PERMIT_WRITE_AUTH -#endif - -/************************************************************************************************** - Static Variables -**************************************************************************************************/ - -/* UUIDs */ -static const uint8_t svcSecDatUuid[] = { ATT_UUID_SEC_DATA }; - -/* Proprietary service declaration */ -static const uint8_t secDatSvc[] = { ATT_UUID_SEC_DATA_SERVICE }; -static const uint16_t secDatLenSvc = sizeof(secDatSvc); - -/* Secured data characteristic */ -static const uint8_t secDatCh[] = { ATT_PROP_NOTIFY | ATT_PROP_WRITE_NO_RSP | ATT_PROP_WRITE, - UINT16_TO_BYTES(SEC_DAT_HDL), ATT_UUID_SEC_DATA }; - -static const uint16_t secDatLenDatCh = sizeof(secDatCh); - -/* Secured data */ -static const uint8_t secDatVal[] = { 0 }; -static const uint16_t secDatLenDat = sizeof(secDatVal); - -/* Secured data client characteristic configuration */ -static uint8_t secDatChCcc[] = { UINT16_TO_BYTES(0x0000) }; -static const uint16_t secDatLenDatChCcc = sizeof(secDatChCcc); - -/* Attribute list for Secured Data group */ -static const attsAttr_t secDatList[] = { - /* Service declaration */ - { attPrimSvcUuid, (uint8_t *)secDatSvc, (uint16_t *)&secDatLenSvc, sizeof(secDatSvc), 0, - ATTS_PERMIT_READ }, - - /* Secure data characteristic declaration */ - { attChUuid, (uint8_t *)secDatCh, (uint16_t *)&secDatLenDatCh, sizeof(secDatCh), 0, - ATTS_PERMIT_READ }, - - /* Secure data characteristic value */ - { svcSecDatUuid, (uint8_t *)secDatVal, (uint16_t *)&secDatLenDat, ATT_VALUE_MAX_LEN, - (ATTS_SET_UUID_128 | ATTS_SET_VARIABLE_LEN | ATTS_SET_WRITE_CBACK), - SEC_DATA_PERMIT_WRITE | SEC_DATA_PERMIT_WRITE_ENC | SEC_DATA_PERMIT_WRITE_AUTH }, - - /*Secure data characteristic value descriptor*/ - { attCliChCfgUuid, (uint8_t *)secDatChCcc, (uint16_t *)&secDatLenDatChCcc, sizeof(secDatChCcc), - ATTS_SET_CCC, (ATTS_PERMIT_READ | ATTS_PERMIT_WRITE) } -}; - -/* Secured Data group structure */ -static attsGroup_t svcSecDatGroup = { NULL, (attsAttr_t *)secDatList, NULL, - NULL, SEC_DATA_START_HDL, SEC_DATA_END_HDL }; - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataAddGroup(void) -{ - AttsAddGroup(&svcSecDatGroup); -} - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataRemoveGroup(void) -{ - AttsRemoveGroup(SEC_DATA_START_HDL); -} - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) -{ - svcSecDatGroup.readCback = readCback; - svcSecDatGroup.writeCback = writeCback; -} diff --git a/Examples/MAX32665/BLE_dats/services/svc_sds.h b/Examples/MAX32665/BLE_dats/services/svc_sds.h deleted file mode 100644 index b1ab4008a93..00000000000 --- a/Examples/MAX32665/BLE_dats/services/svc_sds.h +++ /dev/null @@ -1,120 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/*************************************************************************************************/ -/*! Secure Data Service -* Implementation of a characteristic with elevated security features. -* The connection must be encrypted with an authenticated key to read/write -* the attributes value. -* - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BLE_DATS_SERVICES_SVC_SDS_H_ -#define EXAMPLES_MAX32665_BLE_DATS_SERVICES_SVC_SDS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Service and Characteristic UUIDs -**************************************************************************************************/ -#define ATT_UUID_SEC_DATA_SERVICE \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_SEC_DATA \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 - -/************************************************************************************************** - Handle Ranges -**************************************************************************************************/ -/*! \brief Secured Data Service */ -#define SEC_DATA_START_HDL 0x300 /*!< \brief Start handle. */ -#define SEC_DATA_END_HDL (SEC_DAT_MAX_HDL - 1) /*!< \brief End handle. */ - -/************************************************************************************************** - Handles -**************************************************************************************************/ - -/*! \brief Secured Service Handles */ -enum { - SEC_DATA_SVC_HDL = SEC_DATA_START_HDL, /*!< \brief Secured Data service declaration */ - SEC_DAT_CH_HDL, /*!< \brief Secured Data characteristic */ - SEC_DAT_HDL, /*!< \brief Secured Data */ - SEC_DAT_CH_CCC_HDL, /*!< \brief Secured Data client characteristic configuration */ - SEC_DAT_MAX_HDL /*!< \brief Maximum handle. */ -}; -/**@}*/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataAddGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataRemoveGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); - -/*! \} */ /* WP_SERVICE */ - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_DATS_SERVICES_SVC_SDS_H_ diff --git a/Examples/MAX32665/BLE_fcc/.vscode/flash.gdb b/Examples/MAX32665/BLE_fcc/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_fcc/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_fcc/Makefile b/Examples/MAX32665/BLE_fcc/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_fcc/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_fcc/main.c b/Examples/MAX32665/BLE_fcc/main.c deleted file mode 100644 index a5df0e19048..00000000000 --- a/Examples/MAX32665/BLE_fcc/main.c +++ /dev/null @@ -1,579 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief BLE project with simple serial console for FCC testing - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "tmr.h" - -/************************************************************************************************** - Definitions -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define FREQ_HOP_PERIOD_US 20000 - -/* Bluetooth DBB registers */ -#define MXC_R_CONST_OUPUT *((volatile uint16_t *)(0x40052040)) -#define MXC_R_PATTERN_GEN *((volatile uint16_t *)(0x4005203C)) -#define MXC_R_TX_CTRL *((volatile uint16_t *)(0x4005101C)) - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -static uint8_t phy = LL_PHY_LE_1M; -static uint8_t phy_str[16]; -static uint8_t txFreqHopCh; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Physical layer functions. */ -extern void llc_api_set_txpower(int8_t power); -extern void dbb_seq_select_rf_channel(uint32_t rf_channel); -extern uint8_t dbb_seq_get_rfpower(int8_t rf_power); -extern void llc_api_tx_ldo_setup(void); -extern void llc_api_set_phy(uint8_t phy, uint8_t phy_options); - -extern volatile int8_t tx_rfpower_idx; -extern volatile int8_t tx_rfpower_on; - -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPhyStr(void) -{ - switch (phy) { - case LL_TEST_PHY_LE_1M: - default: - memcpy(phy_str, "1M PHY", 7); - break; - case LL_TEST_PHY_LE_2M: - memcpy(phy_str, "2M PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S8: - memcpy(phy_str, "S8 PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S2: - memcpy(phy_str, "S2 PHY", 7); - break; - } - return phy_str; -} - -/*************************************************************************************************/ -/*! - * \fn Timer 2 interrupts handler. - * - * \brief Controls the frequency hopping. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void TMR2_IRQHandler(void) -{ - int res; - - MXC_TMR_TO_Clear(MXC_TMR2); - - /* Start the next channel */ - res = LlEnhancedTxTest(txFreqHopCh++, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - if (res != LL_SUCCESS) - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - - /* Wrap the channels */ - if (txFreqHopCh == 40) - txFreqHopCh = 0; - - /* Restart the timeout */ - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); -} - -/*************************************************************************************************/ -/*! - * \fn Usage statement - * - * \brief Prints the usage statement. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void printUsage(void) -{ - APP_TRACE_INFO0("Usage: "); - APP_TRACE_INFO0(" (0) Transmit on RF channel 0 (2402 MHz)"); - APP_TRACE_INFO0(" (1) Transmit on RF channel 19 (2440 MHz)"); - APP_TRACE_INFO0(" (2) Transmit on RF channel 39 (2480 MHz)"); - APP_TRACE_INFO0(" (3) Receive on RF channel 39 (2480 MHz)"); - APP_TRACE_INFO0(" (4) Set Transmit power"); - APP_TRACE_INFO0(" (5) Enable constant PRBS9 TX"); - APP_TRACE_INFO0(" (6) Disable constant TX -- MUST be called after (5)"); - APP_TRACE_INFO0(" (8) Set PHY"); - APP_TRACE_INFO0(" (9) TX Frequency Hop"); - APP_TRACE_INFO0(" (e) End transmission -- MUST be used after each (0-3, 9)"); - APP_TRACE_INFO0(" (u) Print usage"); -} - -/*************************************************************************************************/ -/*! - * \fn Process the Console RX - * - * \brief State machine for the console inputs. - * - * \param rxByte Character received from the console. - * - * \return None. - */ -/*************************************************************************************************/ -static void processConsoleRX(uint8_t rxByte) -{ - int res; - - /* Holds the state of the command and the parameter */ - static uint8_t cmd = 0; - static uint8_t param = 0; - - /* Determines if the incoming character is a command or a parameter */ - if (cmd == 0) - cmd = rxByte; - else - param = rxByte; - - switch (cmd) { - case '0': - - APP_TRACE_INFO1("Transmit RF channel 0 (2402M), 255 bytes/pkt, 0xPRBS9, %s, forever ..", - getPhyStr()); - res = LlEnhancedTxTest(0, 255, LL_TEST_PKT_TYPE_PRBS9, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '1': - - APP_TRACE_INFO1("Transmit RF channel 19 (2440M), 255 bytes/pkt, 0xPRBS9, %s, forever ..", - getPhyStr()); - res = LlEnhancedTxTest(19, 255, LL_TEST_PKT_TYPE_PRBS9, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '2': - - APP_TRACE_INFO1("Transmit RF channel 39 (2480M), 255 bytes/pkt, 0xPRBS9, %s, forever ..", - getPhyStr()); - res = LlEnhancedTxTest(39, 255, LL_TEST_PKT_TYPE_PRBS9, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '3': - - APP_TRACE_INFO1("Receive RF channel 39 (2480M), %s, forever ..", getPhyStr()); - res = LlEnhancedRxTest(39, phy, 0, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '4': - - if (param == 0) { - APP_TRACE_INFO0("Select transmit power"); - APP_TRACE_INFO0(" 0: -15 dBm"); - APP_TRACE_INFO0(" 1: -10 dBm"); - APP_TRACE_INFO0(" 2: -5 dBm"); - APP_TRACE_INFO0(" 3: -2 dBm"); - APP_TRACE_INFO0(" 4: 0 dBm"); - APP_TRACE_INFO0(" 5: 2 dBm"); - APP_TRACE_INFO0(" 6: 4.5 dBm"); - break; - } - - switch (param) { - case '0': - llc_api_set_txpower(-15); - LlSetAdvTxPower(-15); - APP_TRACE_INFO1("Power set to -15, Amp_coef = %x", dbb_seq_get_rfpower(-15)); - break; - case '1': - llc_api_set_txpower(-10); - LlSetAdvTxPower(-10); - APP_TRACE_INFO1("Power set to -10, Amp_coef = %x", dbb_seq_get_rfpower(-10)); - break; - case '2': - llc_api_set_txpower(-5); - LlSetAdvTxPower(-5); - APP_TRACE_INFO1("Power set to -5, Amp_coef = %x", dbb_seq_get_rfpower(-5)); - break; - case '3': - llc_api_set_txpower(-2); - LlSetAdvTxPower(-2); - APP_TRACE_INFO1("Power set to -2, Amp_coef = %x", dbb_seq_get_rfpower(-2)); - break; - case '4': - llc_api_set_txpower(0); - LlSetAdvTxPower(0); - APP_TRACE_INFO1("Power set to 0, Amp_coef = %x", dbb_seq_get_rfpower(0)); - break; - case '5': - llc_api_set_txpower(2); - LlSetAdvTxPower(2); - APP_TRACE_INFO1("Power set to 2, Amp_coef = %x", dbb_seq_get_rfpower(2)); - break; - case '6': - llc_api_set_txpower(4); - LlSetAdvTxPower(4); - APP_TRACE_INFO1("Power set to 4.5, Amp_coef = %x", dbb_seq_get_rfpower(4)); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - cmd = 0; - param = 0; - break; - - case '5': - if (param == 0) { - APP_TRACE_INFO0("Select transmit channel"); - APP_TRACE_INFO0(" 0: 0 (2402M)"); - APP_TRACE_INFO0(" 1: 19 (2440M)"); - APP_TRACE_INFO0(" 2: 33 (2468M)"); - APP_TRACE_INFO0(" 3: 36 (2474M)"); - APP_TRACE_INFO0(" 4: 39 (2480M)"); - break; - } - - switch (param) { - case '0': - dbb_seq_select_rf_channel(0); - APP_TRACE_INFO0("Channel set to 0 (2402M)"); - break; - case '1': - dbb_seq_select_rf_channel(19); - APP_TRACE_INFO0("Channel set to 19 (2440M)"); - break; - case '2': - dbb_seq_select_rf_channel(33); - APP_TRACE_INFO0("Channel set to 33 (2468M)"); - break; - case '3': - dbb_seq_select_rf_channel(36); - APP_TRACE_INFO0("Channel set to 36 (2474M)"); - break; - case '4': - dbb_seq_select_rf_channel(39); - APP_TRACE_INFO0("Channel set to 39 (2480M)"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - - APP_TRACE_INFO0("Starting PRBS9 TX"); - - PalBbEnable(); - - llc_api_tx_ldo_setup(); - - /* Enable constant TX */ - MXC_R_TX_CTRL = 0x1; - - /* Enable pattern generator, set PRBS-9 */ - MXC_R_CONST_OUPUT = 0x0; - MXC_R_PATTERN_GEN = 0x4B; - - cmd = 0; - param = 0; - break; - - case '6': - APP_TRACE_INFO0("Disabling TX"); - - /* Disable constant TX */ - MXC_R_TX_CTRL = 0x2; - MXC_R_PATTERN_GEN = 0x48; - - PalBbDisable(); - - cmd = 0; - break; - - case '8': - if (param == 0) { - /* Set the PHY */ - APP_TRACE_INFO0("Select PHY"); - APP_TRACE_INFO0("1: 1M"); - APP_TRACE_INFO0("2: 2M"); - APP_TRACE_INFO0("3: S8"); - APP_TRACE_INFO0("4: S2"); - break; - } - - switch (param) { - case '1': - phy = LL_TEST_PHY_LE_1M; - APP_TRACE_INFO0("PHY set to 1M"); - break; - case '2': - phy = LL_TEST_PHY_LE_2M; - APP_TRACE_INFO0("PHY set to 2M"); - break; - case '3': - phy = LL_TEST_PHY_LE_CODED_S8; - APP_TRACE_INFO0("PHY set to S8"); - break; - case '4': - phy = LL_TEST_PHY_LE_CODED_S2; - APP_TRACE_INFO0("PHY set to S2"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - - llc_api_set_phy(phy, BB_PHY_OPTIONS_DEFAULT); - - cmd = 0; - param = 0; - break; - case '9': - /* Frequency hopping TX */ - APP_TRACE_INFO0("Starting frequency hopping"); - NVIC_EnableIRQ(TMR2_IRQn); - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - cmd = 0; - break; - - case 'E': - case 'e': - - APP_TRACE_INFO0("End test"); - MXC_TMR_Stop(MXC_TMR2); - LlEndTest(NULL); - cmd = 0; - break; - - case 'U': - case 'u': - printUsage(); - cmd = 0; - break; - - default: - APP_TRACE_INFO0("Invalid selection"); - cmd = 0; - param = 0; - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.1 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; -#if (BT_VER > 9) - /* Use single pool for data buffers. */ - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) - eventPending = WsfTokenService(); -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) - eventPending = LhciSnifferHandler(); -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - - /* Register the UART RX request */ - WsfBufIoUartRegister(processConsoleRX); - - printUsage(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_fit/.vscode/flash.gdb b/Examples/MAX32665/BLE_fit/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_fit/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_fit/Makefile b/Examples/MAX32665/BLE_fit/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_fit/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_fit/fit_api.h b/Examples/MAX32665/BLE_fit/fit_api.h deleted file mode 100644 index 1b6b781a484..00000000000 --- a/Examples/MAX32665/BLE_fit/fit_api.h +++ /dev/null @@ -1,80 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Fitness sample application interface. - * - * Copyright (c) 2011-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_FIT_FIT_API_H_ -#define EXAMPLES_MAX32665_BLE_FIT_FIT_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -#ifndef FIT_CONN_MAX -#define FIT_CONN_MAX 1 -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void FitStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_FIT_FIT_API_H_ diff --git a/Examples/MAX32665/BLE_fit/fit_main.c b/Examples/MAX32665/BLE_fit/fit_main.c deleted file mode 100644 index ed9b4f7f471..00000000000 --- a/Examples/MAX32665/BLE_fit/fit_main.c +++ /dev/null @@ -1,803 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Fitness sample application for the following profiles: - * Heart Rate profile - * - * Copyright (c) 2011-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "hci_api.h" -#include "dm_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "app_hw.h" -#include "app_main.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_hrs.h" -#include "svc_dis.h" -#include "svc_batt.h" -#include "svc_rscs.h" -#include "gatt/gatt_api.h" -#include "bas/bas_api.h" -#include "hrps/hrps_api.h" -#include "rscp/rscp_api.h" -#include "fit_api.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! WSF message event starting value */ -#define FIT_MSG_START 0xA0 - -/* Default Running Speed and Cadence Measurement period (seconds) */ -#define FIT_DEFAULT_RSCM_PERIOD 1 - -/*! WSF message event enumeration */ -enum { - FIT_HR_TIMER_IND = FIT_MSG_START, /*! Heart rate measurement timer expired */ - FIT_BATT_TIMER_IND, /*! Battery measurement timer expired */ - FIT_RUNNING_TIMER_IND /*! Running speed and cadence measurement timer expired */ -}; - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/************************************************************************************************** - Data Types -**************************************************************************************************/ - -/*! Application message type */ -typedef union { - wsfMsgHdr_t hdr; - dmEvt_t dm; - attsCccEvt_t ccc; - attEvt_t att; -} fitMsg_t; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t fitAdvCfg = { - { 60000, 0, 0 }, /*! Advertising durations in ms */ - { 800, 0, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t fitSlaveCfg = { - FIT_CONN_MAX, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t fitSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - 0, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t fitUpdateCfg = { - 6000, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - 640, /*! Minimum connection interval in 1.25ms units */ - 800, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 900, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! heart rate measurement configuration */ -static const hrpsCfg_t fitHrpsCfg = { - 2000 /*! Measurement timer expiration period in ms */ -}; - -/*! battery measurement configuration */ -static const basCfg_t fitBasCfg = { - 30, /*! Battery measurement timer expiration period in seconds */ - 1, /*! Perform battery measurement after this many timer periods */ - 100 /*! Send battery level notification to peer when below this level. */ -}; - -/*! SMP security parameter configuration */ -static const smpCfg_t fitSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t fitAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! tx power */ - 2, /*! length */ - DM_ADV_TYPE_TX_POWER, /*! AD type */ - 0, /*! tx power */ - - /*! service UUID list */ - 9, /*! length */ - DM_ADV_TYPE_16_UUID, /*! AD type */ - UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), - UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), UINT16_TO_BYTES(ATT_UUID_BATTERY_SERVICE) -}; - -/*! scan data, discoverable mode */ -static const uint8_t fitScanDataDisc[] = { - /*! device name */ - 4, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'F', 'i', 't' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! enumeration of client characteristic configuration descriptors */ -enum { - FIT_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - FIT_HRS_HRM_CCC_IDX, /*! Heart rate service, heart rate monitor characteristic */ - FIT_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ - FIT_RSCS_SM_CCC_IDX, /*! Runninc speed and cadence measurement characteristic */ - FIT_NUM_CCC_IDX -}; - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* FIT_GATT_SC_CCC_IDX */ - { HRS_HRM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_HRS_HRM_CCC_IDX */ - { BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_BATT_LVL_CCC_IDX */ - { RSCS_RSM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* FIT_RSCS_SM_CCC_IDX */ -}; - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! WSF handler ID */ -wsfHandlerId_t fitHandlerId; - -/* WSF Timer to send running speed and cadence measurement data */ -wsfTimer_t fitRscmTimer; - -/* Running Speed and Cadence Measurement period - Can be changed at runtime to vary period */ -static uint16_t fitRscmPeriod = FIT_DEFAULT_RSCM_PERIOD; - -/* Heart Rate Monitor feature flags */ -static uint8_t fitHrmFlags = CH_HRM_FLAGS_VALUE_8BIT | CH_HRM_FLAGS_ENERGY_EXP; - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitCccCback(attsCccEvt_t *pEvt) -{ - attsCccEvt_t *pMsg; - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - } - - if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { - memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! -* \brief Send a Running Speed and Cadence Measurement Notification. -* -* \param connId connection ID -* -* \return None. -*/ -/*************************************************************************************************/ -static void fitSendRunningSpeedMeasurement(dmConnId_t connId) -{ - if (AttsCccEnabled(connId, FIT_RSCS_SM_CCC_IDX)) { - static uint8_t walk_run = 1; - - /* TODO: Set Running Speed and Cadence Measurement Parameters */ - - RscpsSetParameter(RSCP_SM_PARAM_SPEED, 1); - RscpsSetParameter(RSCP_SM_PARAM_CADENCE, 2); - RscpsSetParameter(RSCP_SM_PARAM_STRIDE_LENGTH, 3); - RscpsSetParameter(RSCP_SM_PARAM_TOTAL_DISTANCE, 4); - - /* Toggle running/walking */ - walk_run = walk_run ? 0 : 1; - RscpsSetParameter(RSCP_SM_PARAM_STATUS, walk_run); - - RscpsSendSpeedMeasurement(connId); - } - - /* Configure and start timer to send the next measurement */ - fitRscmTimer.msg.event = FIT_RUNNING_TIMER_IND; - fitRscmTimer.msg.status = FIT_RSCS_SM_CCC_IDX; - fitRscmTimer.handlerId = fitHandlerId; - fitRscmTimer.msg.param = connId; - - WsfTimerStartSec(&fitRscmTimer, fitRscmPeriod); -} - -/*************************************************************************************************/ -/*! - * \brief Process CCC state change. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitProcCccState(fitMsg_t *pMsg) -{ - APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, - pMsg->ccc.idx); - - /* handle heart rate measurement CCC */ - if (pMsg->ccc.idx == FIT_HRS_HRM_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - HrpsMeasStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_HR_TIMER_IND, FIT_HRS_HRM_CCC_IDX); - } else { - HrpsMeasStop((dmConnId_t)pMsg->ccc.hdr.param); - } - return; - } - - /* handle running speed and cadence measurement CCC */ - if (pMsg->ccc.idx == FIT_RSCS_SM_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - } else { - WsfTimerStop(&fitRscmTimer); - } - return; - } - - /* handle battery level CCC */ - if (pMsg->ccc.idx == FIT_BATT_LVL_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - BasMeasBattStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_BATT_TIMER_IND, - FIT_BATT_LVL_CCC_IDX); - } else { - BasMeasBattStop((dmConnId_t)pMsg->ccc.hdr.param); - } - return; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection close. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitClose(fitMsg_t *pMsg) -{ - /* stop heart rate measurement */ - HrpsMeasStop((dmConnId_t)pMsg->hdr.param); - - /* stop battery measurement */ - BasMeasBattStop((dmConnId_t)pMsg->hdr.param); - - /* Stop running speed and cadence timer */ - WsfTimerStop(&fitRscmTimer); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitSetup(fitMsg_t *pMsg) -{ - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(fitAdvDataDisc), (uint8_t *)fitAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(fitScanDataDisc), (uint8_t *)fitScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, 0, NULL); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, 0, NULL); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitBtnCback(uint8_t btn) -{ - dmConnId_t connId; - static uint8_t heartRate = 78; /* for testing/demonstration */ - - /* button actions when connected */ - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* increment the heart rate */ - AppHwHrmTest(++heartRate); - break; - - case APP_UI_BTN_1_MED: - break; - - case APP_UI_BTN_1_LONG: - AppConnClose(connId); - break; - - case APP_UI_BTN_2_SHORT: - /* decrement the heart rate */ - AppHwHrmTest(--heartRate); - break; - - case APP_UI_BTN_2_MED: - /* Toggle HRM Sensor DET flags */ - if (!(fitHrmFlags & (CH_HRM_FLAGS_SENSOR_DET | CH_HRM_FLAGS_SENSOR_NOT_DET))) { - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_DET; - } else if (fitHrmFlags & CH_HRM_FLAGS_SENSOR_DET) { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_DET; - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_NOT_DET; - } else { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_NOT_DET; - } - - HrpsSetFlags(fitHrmFlags); - break; - - case APP_UI_BTN_2_LONG: - /* Toggle HRM RR Interval feature flag */ - if (fitHrmFlags & CH_HRM_FLAGS_RR_INTERVAL) { - fitHrmFlags &= ~CH_HRM_FLAGS_RR_INTERVAL; - } else { - fitHrmFlags |= CH_HRM_FLAGS_RR_INTERVAL; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start or restart advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* enter discoverable and bondable mode */ - AppSetBondable(TRUE); - AppAdvStart(APP_MODE_DISCOVERABLE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - - /* restart advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_2_SHORT: - /* Toggle HRM Flag for 8 and 16 bit values */ - if (fitHrmFlags & CH_HRM_FLAGS_VALUE_16BIT) { - fitHrmFlags &= ~CH_HRM_FLAGS_VALUE_16BIT; - } else { - fitHrmFlags |= CH_HRM_FLAGS_VALUE_16BIT; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitProcMsg(fitMsg_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case FIT_RUNNING_TIMER_IND: - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - break; - - case FIT_HR_TIMER_IND: - HrpsProcMsg(&pMsg->hdr); - break; - - case FIT_BATT_TIMER_IND: - BasProcMsg(&pMsg->hdr); - break; - - case ATTS_HANDLE_VALUE_CNF: - HrpsProcMsg(&pMsg->hdr); - BasProcMsg(&pMsg->hdr); - break; - - case ATTS_CCC_STATE_IND: - fitProcCccState(pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - fitSetup(pMsg); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_SET_START_IND: - uiEvent = APP_UI_ADV_SET_START_IND; - break; - - case DM_ADV_SET_STOP_IND: - uiEvent = APP_UI_ADV_SET_STOP_IND; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - HrpsProcMsg(&pMsg->hdr); - BasProcMsg(&pMsg->hdr); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - fitClose(pMsg); - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - AppHandlePasskey(&pMsg->dm.authReq); - break; - - case DM_SEC_ECC_KEY_IND: - DmSecSetEccKey(&pMsg->dm.eccMsg.data.key); - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->dm.cnfInd); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - - case DM_HW_ERROR_IND: - uiEvent = APP_UI_HW_ERROR; - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("FitHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &fitScanDataDisc[2]); - - /* store handler ID */ - fitHandlerId = handlerId; - - /* Set configuration pointers */ - pAppAdvCfg = (appAdvCfg_t *)&fitAdvCfg; - pAppSlaveCfg = (appSlaveCfg_t *)&fitSlaveCfg; - pAppSecCfg = (appSecCfg_t *)&fitSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&fitUpdateCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set stack configuration pointers */ - pSmpCfg = (smpCfg_t *)&fitSmpCfg; - - /* initialize heart rate profile sensor */ - HrpsInit(handlerId, (hrpsCfg_t *)&fitHrpsCfg); - HrpsSetFlags(fitHrmFlags); - - /* initialize battery service server */ - BasInit(handlerId, (basCfg_t *)&fitBasCfg); -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Fit got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - fitProcMsg((fitMsg_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void FitStart(void) -{ - /* Register for stack callbacks */ - DmRegister(fitDmCback); - DmConnRegister(DM_CLIENT_ID_APP, fitDmCback); - AttRegister(fitAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(FIT_NUM_CCC_IDX, (attsCccSet_t *)fitCccSet, fitCccCback); - - /* Register for app framework callbacks */ - AppUiBtnRegister(fitBtnCback); - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcHrsCbackRegister(NULL, HrpsWriteCback); - SvcHrsAddGroup(); - SvcDisAddGroup(); - SvcBattCbackRegister(BasReadCback, NULL); - SvcBattAddGroup(); - SvcRscsAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(FIT_GATT_SC_CCC_IDX); - - /* Set running speed and cadence features */ - RscpsSetFeatures(RSCS_ALL_FEATURES); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE_fit/main.c b/Examples/MAX32665/BLE_fit/main.c deleted file mode 100644 index 14a54d221b4..00000000000 --- a/Examples/MAX32665/BLE_fit/main.c +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth fitness device. Showcases heart rate, battery level, running speed and cadence. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#include "fit_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitFit(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitFit(); - FitStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_mcs/.vscode/flash.gdb b/Examples/MAX32665/BLE_mcs/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_mcs/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_mcs/Makefile b/Examples/MAX32665/BLE_mcs/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_mcs/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_mcs/main.c b/Examples/MAX32665/BLE_mcs/main.c deleted file mode 100644 index 41f26c2279e..00000000000 --- a/Examples/MAX32665/BLE_mcs/main.c +++ /dev/null @@ -1,236 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Maxim custom Bluetooth profile and service that advertises as "MCS" and accepts -connection requests. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#include "mcs_app_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitMcsApp(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); -#endif - - StackInitMcsApp(); - McsAppStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_mcs/mcs_app_api.h b/Examples/MAX32665/BLE_mcs/mcs_app_api.h deleted file mode 100644 index 35522434969..00000000000 --- a/Examples/MAX32665/BLE_mcs/mcs_app_api.h +++ /dev/null @@ -1,85 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file mcs_app_api.h - * - * \brief Maxim Custom Service server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_MCS_MCS_APP_API_H_ -#define EXAMPLES_MAX32665_BLE_MCS_MCS_APP_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! WSF message event starting value */ -#define MCS_MSG_START 0xA0 - -/*! WSF message event enumeration */ -enum { - MCS_BUTTON_TIMER_IND = MCS_MSG_START, /*/< Button state BLE notify timer event */ - MCS_BUTTON_PRESS_DUR /*/< Button press duration timer event */ -}; - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_MCS_MCS_APP_API_H_ diff --git a/Examples/MAX32665/BLE_mcs/mcs_app_main.c b/Examples/MAX32665/BLE_mcs/mcs_app_main.c deleted file mode 100644 index a9bbb3b8374..00000000000 --- a/Examples/MAX32665/BLE_mcs/mcs_app_main.c +++ /dev/null @@ -1,793 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_mcs.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "mcs_app_api.h" -#include "mcs_api.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - MCS_APP_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - MCS_APP_BT_CCC_IDX, /*! MCS characteristic */ - MCS_APP_NUM_CCC_IDX -}; - -/************************************************************************************************** - Data Types -**************************************************************************************************/ - -/*! Application message type */ -typedef union { - wsfMsgHdr_t hdr; - dmEvt_t dm; - attsCccEvt_t ccc; - attEvt_t att; -} mcsMsg_t; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t mcsAppAdvCfg = { - { 30000, 0, 0 }, /*! Advertising durations in ms */ - { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t mcsAppSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t mcsAppSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t mcsAppSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t mcsAppSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t mcsAppUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - 640, /*! Minimum connection interval in 1.25ms units */ - 800, /*! Maximum connection interval in 1.25ms units */ - 3, /*! Connection latency */ - 900, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t mcsAppAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t mcsAppAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t mcsAppScanDataDisc[] = { - /*! device name */ - 4, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'M', - 'C', - 'S', -}; - -/*! Mcs measurement configuration */ -static const mcsCfg_t mcsMcsCfg = { - 2, /*! Mcs measurement timer expiration period in seconds */ - 1, /*! Perform mcs measurement after this many timer periods */ - 3 /*! Send mcs level notification to peer when below this level. */ -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t mcsAppCccSet[MCS_APP_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, - DM_SEC_LEVEL_NONE }, /* MCS_APP_GATT_SC_CCC_IDX */ - { MCS_BUTTON_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* MCS_BUTTON_SM_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} mcsAppCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *mcsAppOobCfg; - -extern void setAdvTxPower(void); -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (mcsAppSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (mcsAppOobCfg == NULL) { - mcsAppOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (mcsAppOobCfg) { - Calc128Cpy(mcsAppOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(mcsAppOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - attsCccEvt_t *pMsg; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } - - if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { - memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process CCC state change. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppProcCccState(mcsMsg_t *pMsg) -{ - APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, - pMsg->ccc.idx); -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void mcsAppPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void mcsAppPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection close. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppClose(dmEvt_t *pMsg) -{ - /* stop mcs measurement */ - McsButtonCheckStop((dmConnId_t)pMsg->hdr.param); -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void mcsAppDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - mcsAppCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(mcsAppAdvDataDisc), - (uint8_t *)mcsAppAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(mcsAppScanDataDisc), - (uint8_t *)mcsAppScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(mcsAppAdvDataDisc), - (uint8_t *)mcsAppAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(mcsAppScanDataDisc), - (uint8_t *)mcsAppScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - mcsAppSetup(pMsg); - } else { - mcsAppCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (mcsAppCb.restoringResList) { - /* Set the advertising peer address. */ - mcsAppPrivAddDevToResList(mcsAppCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(mcsAppCb.resListRestoreHdl); - - if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - mcsAppSetup(pMsg); - } - } else { - mcsAppPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTS_CCC_STATE_IND: - mcsAppProcCccState((mcsMsg_t *)pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - mcsAppRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - mcsAppClose(pMsg); - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill mcsAppOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (mcsAppOobCfg != NULL) { - DmSecSetOob(connId, mcsAppOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - mcsAppPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - mcsAppPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("McsAppHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &mcsAppScanDataDisc[2]); - - /* store handler ID */ - mcsAppCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&mcsAppSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&mcsAppAdvCfg; - pAppSecCfg = (appSecCfg_t *)&mcsAppSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&mcsAppUpdateCfg; - pSmpCfg = (smpCfg_t *)&mcsAppSmpCfg; - pAttCfg = (attCfg_t *)&mcsAppAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* initialize mcs server */ - McsInit(handlerId, (mcsCfg_t *)&mcsMcsCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppBtnCback(uint8_t btn) -{ - APP_TRACE_INFO1("mcsAppBtnCback; %d", btn); - McsSetFeatures(btn); -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("McsApp got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("McsApp got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - mcsAppProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppStart(void) -{ - /* Register for stack callbacks */ - DmRegister(mcsAppDmCback); - DmConnRegister(DM_CLIENT_ID_APP, mcsAppDmCback); - AttRegister(mcsAppAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(MCS_APP_NUM_CCC_IDX, (attsCccSet_t *)mcsAppCccSet, mcsAppCccCback); - - SvcMcsCbackRegister(NULL, McsWriteCback); - SvcMcsAddGroup(); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(MCS_APP_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(mcsAppBtnCback); - - WsfNvmInit(); - - WsfBufDiagRegister(mcsAppWsfBufDiagnostics); - - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE_mcs/profiles/mcs/mcs_api.h b/Examples/MAX32665/BLE_mcs/profiles/mcs/mcs_api.h deleted file mode 100644 index 5c1d3ff887d..00000000000 --- a/Examples/MAX32665/BLE_mcs/profiles/mcs/mcs_api.h +++ /dev/null @@ -1,116 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BLE_MCS_PROFILES_MCS_MCS_API_H_ -#define EXAMPLES_MAX32665_BLE_MCS_PROFILES_MCS_MCS_API_H_ - -#include "wsf_types.h" -#include "att_api.h" -#include "app_api.h" -#include "svc_mcs.h" -#include "board.h" -#include "led.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Data Types -**************************************************************************************************/ -/*! \brief Maxim custom service configurable parameters */ -typedef struct { - wsfTimerTicks_t period; /*!< \brief Button timer expiration period in seconds */ - uint16_t count; /*!< \brief Perform button after this many timer periods */ - uint8_t threshold; /*!< \brief Send button notification to peer when below this level. */ -} mcsCfg_t; - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for maxim custom service Use this function as a parameter - * to SvcMcsCbackRegister(). - * - * \param connId DM connection identifier. - * \param handle ATT handle. - * \param operation ATT operation. - * \param offset Write offset. - * \param len Write length. - * \param pValue Value to write. - * \param pAttr Attribute to write. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr); - -/*************************************************************************************************/ -/*! - * \brief Setting characteristic value and send the button value to the peer device. - * - * \param features The button value. - * - * \return None. - */ -/*************************************************************************************************/ -void McsSetFeatures(uint8_t features); - -/*************************************************************************************************/ -/*! - * \brief Initialize the mcs server. - * - * \param handlerId WSF handler ID of the application using this service. - * \param pCfg mcs configurable parameters. - * - * \return None. - */ -/*************************************************************************************************/ -void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg); - -/*************************************************************************************************/ -/*! - * \brief Start periodic mcs button state read. This function starts a timer to perform - * periodic button read. - * - * \param connId DM connection identifier. - * \param timerEvt WSF event designated by the application for the timer. - * \param mcsCccIdx Index of mcs level CCC descriptor in CCC descriptor handle table. - * \param btnState State of the push button. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState); - -/*************************************************************************************************/ -/*! - * \brief Stop periodic mcs button read. - * - * \param connId DM connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStop(dmConnId_t connId); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_MCS_PROFILES_MCS_MCS_API_H_ diff --git a/Examples/MAX32665/BLE_mcs/profiles/mcs/mcs_main.c b/Examples/MAX32665/BLE_mcs/profiles/mcs/mcs_main.c deleted file mode 100644 index e3738ac8eb8..00000000000 --- a/Examples/MAX32665/BLE_mcs/profiles/mcs/mcs_main.c +++ /dev/null @@ -1,207 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include "mcs_api.h" -#include "app_ui.h" -#include "pal_led.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -#ifndef LED_RED -#define LED_RED 0 -#endif - -#ifndef LED_GREEN -#define LED_GREEN 1 -#endif - -#ifndef LED_BLUE -#define LED_BLUE LED_GREEN -#endif - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! \brief Connection control block */ -typedef struct { - dmConnId_t connId; /*! \brief Connection ID */ - bool_t mcsToSend; /*! \brief mcs measurement ready to be sent on this channel */ - uint8_t sentMcsBtnState; /*! \brief value of last sent mcs button state */ -} mcsConn_t; - -/*! \brief Control block */ -static struct { - mcsConn_t conn[DM_CONN_MAX]; /*! \brief connection control block */ - wsfTimer_t btnStateChkTimer; /*! \brief periodic check timer */ - mcsCfg_t cfg; /*! \brief configurable parameters */ - uint16_t currCount; /*! \brief current measurement period count */ - bool_t txReady; /*! \brief TRUE if ready to send notifications */ - uint8_t btnState; /*! \brief value of last button state */ -} mcsCb; - -/*************************************************************************************************/ -/*! - * \brief Return TRUE if no connections with active measurements. - * - * \return TRUE if no connections active. - */ -/*************************************************************************************************/ -static bool_t mcsNoConnActive(void) -{ - mcsConn_t *pConn = mcsCb.conn; - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++, pConn++) { - if (pConn->connId != DM_CONN_ID_NONE) { - return FALSE; - } - } - return TRUE; -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for maxim custom service. Use this function as a parameter - * to SvcMcsCbackRegister(). - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - AttsSetAttr(handle, sizeof(*pValue), (uint8_t *)pValue); - /* Turn LED on if non-zero value was written */ - bool on = *pValue != 0; - - /* Get LED ID */ - uint8_t ch = 0; - switch (handle) { - case MCS_R_HDL: - ch = LED_RED; - break; - case MCS_B_HDL: - ch = LED_BLUE; - break; - case MCS_G_HDL: - ch = LED_GREEN; - break; - } - - if (on) - LED_On(ch); - else - LED_Off(ch); - return ATT_SUCCESS; -} - -/*************************************************************************************************/ - -/*! - * \brief Setting characteristic value and send the button value to the peer device - * - * \return None. - */ -/*************************************************************************************************/ -void McsSetFeatures(uint8_t features) -{ - AttsSetAttr(MCS_BUTTON_HDL, sizeof(features), - (uint8_t *)&features); /*Setting mcsButtonVal characteristic value */ - dmConnId_t connId = AppConnIsOpen(); /*Getting connected */ - if (connId != DM_CONN_ID_NONE) { - AttsHandleValueNtf(connId, MCS_BUTTON_HDL, sizeof(features), - (uint8_t *)&features); /*Send notify */ - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the mcs server. - * - * \param handerId WSF handler ID of the application using this service. - * \param pCfg mcs configurable parameters. - * - * \return None. - */ -/*************************************************************************************************/ -void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg) -{ - mcsCb.btnStateChkTimer.handlerId = handlerId; - mcsCb.cfg = *pCfg; - - /* De-init the PAL LEDs so we can control them here */ - PalLedDeInit(); -} - -/*************************************************************************************************/ -/*! - * \brief Start periodic mcs button state check. This function starts a timer to perform - * periodic button checks. - * - * \param connId DM connection identifier. - * \param timerEvt WSF event designated by the application for the timer. - * \param mcsCccIdx Index of mcs button state CCC descriptor in CCC descriptor handle table. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState) -{ - /* if this is first connection */ - if (mcsNoConnActive()) { - /* initialize control block */ - mcsCb.btnStateChkTimer.msg.event = timerEvt; - mcsCb.btnStateChkTimer.msg.status = mcsCccIdx; - mcsCb.btnState = btnState; - mcsCb.currCount = mcsCb.cfg.count; - - /* start timer */ - WsfTimerStartSec(&mcsCb.btnStateChkTimer, mcsCb.cfg.period); - } - - /* set conn id and last sent button level */ - mcsCb.conn[connId - 1].connId = connId; - mcsCb.conn[connId - 1].sentMcsBtnState = btnState; -} - -/*************************************************************************************************/ -/*! - * \brief Stop periodic button state check. - * - * \param connId DM connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStop(dmConnId_t connId) -{ - /* clear connection */ - mcsCb.conn[connId - 1].connId = DM_CONN_ID_NONE; - mcsCb.conn[connId - 1].mcsToSend = FALSE; - - /* if no remaining connections */ - if (mcsNoConnActive()) { - /* stop timer */ - WsfTimerStop(&mcsCb.btnStateChkTimer); - } -} diff --git a/Examples/MAX32665/BLE_mcs/services/svc_mcs.c b/Examples/MAX32665/BLE_mcs/services/svc_mcs.c deleted file mode 100644 index 9c23868ae18..00000000000 --- a/Examples/MAX32665/BLE_mcs/services/svc_mcs.c +++ /dev/null @@ -1,173 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include "svc_mcs.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Characteristic read permissions */ -#ifndef MCS_SEC_PERMIT_READ -#define MCS_SEC_PERMIT_READ SVC_SEC_PERMIT_READ -#endif - -/*! Characteristic write permissions */ -#ifndef MCS_SEC_PERMIT_WRITE -#define MCS_SEC_PERMIT_WRITE SVC_SEC_PERMIT_WRITE -#endif - -/************************************************************************************************** - Service variables -**************************************************************************************************/ - -/*Service variables declaration*/ -const uint8_t attMcsSvcUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_SERVICE }; - -/*Characteristic variables declaration*/ -const uint8_t svcMcsButtonUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_BUTTON }; -const uint8_t svcMcsRUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_R }; -const uint8_t svcMcsGUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_G }; -const uint8_t svcMcsBUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_B }; - -static const uint8_t mcsValSvc[] = { ATT_UUID_MCS_SERVICE }; -static const uint16_t mcsLenSvc = sizeof(mcsValSvc); - -static const uint8_t mcsButtonValCh[] = { ATT_PROP_READ | ATT_PROP_NOTIFY, - UINT16_TO_BYTES(MCS_BUTTON_HDL), ATT_UUID_MCS_BUTTON }; -static const uint16_t mcsButtonLenCh = sizeof(mcsButtonValCh); - -static const uint8_t mcsRValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_R_HDL), - ATT_UUID_MCS_R }; -static const uint16_t mcsRLenCh = sizeof(mcsRValCh); - -static const uint8_t mcsGValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_G_HDL), - ATT_UUID_MCS_G }; -static const uint16_t mcsGLenCh = sizeof(mcsGValCh); - -static const uint8_t mcsBValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_B_HDL), - ATT_UUID_MCS_B }; -static const uint16_t mcsBLenCh = sizeof(mcsBValCh); - -/*Characteristic values declaration*/ -static uint8_t mcsButtonVal[] = { 0 }; -static const uint16_t mcsButtonValLen = sizeof(mcsButtonVal); - -static uint8_t mcsButtonValChCcc[] = { UINT16_TO_BYTES(0x0000) }; -static const uint16_t mcsButtonLenValChCcc = sizeof(mcsButtonValChCcc); - -static uint8_t mcsRVal[] = { 0 }; -static const uint16_t mcsRValLen = sizeof(mcsRVal); - -static uint8_t mcsGVal[] = { 0 }; -static const uint16_t mcsGValLen = sizeof(mcsGVal); - -static uint8_t mcsBVal[] = { 0 }; -static const uint16_t mcsBValLen = sizeof(mcsBVal); - -/************************************************************************************************** - Maxim Custom Service group -**************************************************************************************************/ - -/* Attribute list for mcs group */ -static const attsAttr_t mcsList[] = { - /*-----------------------------*/ - /* Service declaration */ - { attPrimSvcUuid, (uint8_t *)mcsValSvc, (uint16_t *)&mcsLenSvc, sizeof(mcsValSvc), 0, - MCS_SEC_PERMIT_READ }, - - /*----------------------------*/ - /* Button characteristic declaration */ - { attChUuid, (uint8_t *)mcsButtonValCh, (uint16_t *)&mcsButtonLenCh, sizeof(mcsButtonValCh), 0, - MCS_SEC_PERMIT_READ }, - /* Button characteristic value */ - { svcMcsButtonUuid, (uint8_t *)mcsButtonVal, (uint16_t *)&mcsButtonValLen, sizeof(mcsButtonVal), - 0, MCS_SEC_PERMIT_READ }, - /*Button characteristic value descriptor*/ - { attCliChCfgUuid, (uint8_t *)mcsButtonValChCcc, (uint16_t *)&mcsButtonLenValChCcc, - sizeof(mcsButtonValChCcc), ATTS_SET_CCC, (ATTS_PERMIT_READ | SVC_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* R characteristic declaration */ - { attChUuid, (uint8_t *)mcsRValCh, (uint16_t *)&mcsRLenCh, sizeof(mcsRValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* R characteristic characteristic value */ - { svcMcsRUuid, (uint8_t *)mcsRVal, (uint16_t *)&mcsRValLen, sizeof(mcsRVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* G characteristic declaration */ - { attChUuid, (uint8_t *)mcsGValCh, (uint16_t *)&mcsGLenCh, sizeof(mcsGValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* G characteristic characteristic value */ - { svcMcsGUuid, (uint8_t *)mcsGVal, (uint16_t *)&mcsGValLen, sizeof(mcsGVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* B characteristic declaration */ - { attChUuid, (uint8_t *)mcsBValCh, (uint16_t *)&mcsBLenCh, sizeof(mcsBValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* B characteristic value */ - { svcMcsBUuid, (uint8_t *)mcsBVal, (uint16_t *)&mcsBValLen, sizeof(mcsBVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) } -}; - -/* Test group structure */ -static attsGroup_t svcMcsGroup = { NULL, (attsAttr_t *)mcsList, NULL, - NULL, MCS_START_HDL, MCS_END_HDL }; - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsAddGroup(void) -{ - AttsAddGroup(&svcMcsGroup); -} - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsRemoveGroup(void) -{ - AttsRemoveGroup(MCS_START_HDL); -} - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) -{ - svcMcsGroup.readCback = readCback; - svcMcsGroup.writeCback = writeCback; -} diff --git a/Examples/MAX32665/BLE_mcs/services/svc_mcs.h b/Examples/MAX32665/BLE_mcs/services/svc_mcs.h deleted file mode 100644 index 9b4eefda60e..00000000000 --- a/Examples/MAX32665/BLE_mcs/services/svc_mcs.h +++ /dev/null @@ -1,123 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BLE_MCS_SERVICES_SVC_MCS_H_ -#define EXAMPLES_MAX32665_BLE_MCS_SERVICES_SVC_MCS_H_ - -#include "wsf_types.h" -#include "att_api.h" -#include "util/bstream.h" -#include "svc_cfg.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \addtogroup Mcs - * \{ */ -/************************************************************************************************** - Macros -**************************************************************************************************/ -/*MCS service UUID*/ -#define ATT_UUID_MCS_SERVICE \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7D, 0x56, 0xFC, \ - 0x85 /*!< \brief Test Service UUID*/ - -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_MCS_BUTTON \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7E, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_R \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7F, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_G \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x80, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_B \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x81, 0x56, 0xFC, 0x85 - -/************************************************************************************************** - Handle Ranges -**************************************************************************************************/ - -/** \name Maxim custom Service Handles - * - */ -/**@{*/ -#define MCS_START_HDL 0x1500 /*!< \brief Start handle. */ -#define MCS_END_HDL (MCS_MAX_HDL - 1) /*!< \brief End handle. */ - -/************************************************************************************************** - Handles -**************************************************************************************************/ - -/*! \brief Maxim custom Service Handles */ -enum { - MCS_SVC_HDL = MCS_START_HDL, /*!< \brief Maxim custom service declaration */ - MCS_BUTTON_CH_HDL, /*!< \brief Button characteristic */ - MCS_BUTTON_HDL, /*!< \brief Button*/ - MCS_BUTTON_CH_CCC_HDL, /*!< \brief Button CCCD*/ - MCS_R_CH_HDL, /*!< \brief R characteristic */ - MCS_R_HDL, /*!< \brief R*/ - MCS_G_CH_HDL, /*!< \brief G characteristic */ - MCS_G_HDL, /*!< \brief G*/ - MCS_B_CH_HDL, /*!< \brief B characteristic */ - MCS_B_HDL, /*!< \brief B*/ - MCS_MAX_HDL /*!< \brief Maximum handle. */ -}; -/**@}*/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsAddGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsRemoveGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); - -/*! \} */ /* TEST_SERVICE */ - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_MCS_SERVICES_SVC_MCS_H_ diff --git a/Examples/MAX32665/BLE_otac/.vscode/flash.gdb b/Examples/MAX32665/BLE_otac/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_otac/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_otac/Makefile b/Examples/MAX32665/BLE_otac/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_otac/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_otac/datc_api.h b/Examples/MAX32665/BLE_otac/datc_api.h deleted file mode 100644 index e5fe3bcecce..00000000000 --- a/Examples/MAX32665/BLE_otac/datc_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_OTAC_DATC_API_H_ -#define EXAMPLES_MAX32665_BLE_OTAC_DATC_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_OTAC_DATC_API_H_ diff --git a/Examples/MAX32665/BLE_otac/datc_main.c b/Examples/MAX32665/BLE_otac/datc_main.c deleted file mode 100644 index 4451bc19b24..00000000000 --- a/Examples/MAX32665/BLE_otac/datc_main.c +++ /dev/null @@ -1,1418 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application for Nordic-ble. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "dm_api.h" -#include "dm_priv.h" -#include "gap/gap_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_cfg.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_core.h" -#include "svc_ch.h" -#include "gatt/gatt_api.h" -#include "wpc/wpc_api.h" -#include "datc_api.h" -#include "util/calc128.h" -#include "wsf_efs.h" -#include "wdxc/wdxc_api.h" -#include "wdxc/wdxc_main.h" -#include "wdx_defs.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** -Macros -**************************************************************************************************/ -#if (BT_VER > 8) -/* PHY Test Modes */ -#define DATC_PHY_1M 1 -#define DATC_PHY_2M 2 -#define DATC_PHY_CODED 3 -#endif /* BT_VER */ - -/* Size of WDXC file discovery dataset */ -#define DATC_WDXC_MAX_FILES 4 - -/*! WSF message event starting value */ -#define DATC_MSG_START 0xA0 - -/*! Data rate timer period in seconds */ -#define DATC_WDXS_DATA_RATE_TIMEOUT 4 - -extern uint32_t _binary_fw_update_bin_start; -extern uint32_t _binary_fw_update_bin_end; - -#define FILE_SIZE \ - (uint32_t)(((uint32_t)&_binary_fw_update_bin_end) - ((uint32_t)&_binary_fw_update_bin_start)) -#define BLOCK_OFFSET_INIT 0x0 -#define BLOCK_SIZE 224 -#define CRC32_LEN 4 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -#define SCAN_START_EVT 0x99 -#define SCAN_START_MS 500 - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; -fileHeader_t fileHeader; -/*! application control block */ -struct { - uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ - wsfHandlerId_t handlerId; /*! WSF hander ID */ - bool_t scanning; /*! TRUE if scanning */ - bool_t autoConnect; /*! TRUE if auto-connecting */ - uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ - uint8_t hdlListLen; /*! Cached handle list length */ - uint8_t btnConnId; /*! The index of the connection ID for button presses */ - bool_t sendingFile[DM_CONN_MAX]; - bool_t fileVerified[DM_CONN_MAX]; - uint32_t blockOffset[DM_CONN_MAX]; - wsfEfsFileInfo_t fileList[DM_CONN_MAX][DATC_WDXC_MAX_FILES]; /*! Buffer to hold WDXC file list */ - uint8_t *fileData; /*! Pointer for accessing the fw_update image*/ - uint32_t fileCRC; /*! Holds the CRC32 value of the file */ - uint32_t blockSize; - - appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ - wsfTimer_t scanTimer; /* Timer for starting the scanner */ -} datcCb; - -/*! connection control block */ -typedef struct { - appDbHdl_t dbHdl; /*! Device database record handle type */ - uint8_t addrType; /*! Type of address of device to connect to */ - bdAddr_t addr; /*! Address of device to connect to */ - bool_t doConnect; /*! TRUE to issue connect on scan complete */ -} datcConnInfo_t; - -datcConnInfo_t datcConnInfo; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for master */ -static const appMasterCfg_t datcMasterCfg = { - 96, /*! The scan interval, in 0.625 ms units */ - 48, /*! The scan window, in 0.625 ms units */ - 0, /*! The scan duration in ms */ - DM_DISC_MODE_NONE, /*! The GAP discovery mode */ - DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datcSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datcSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datcSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! Connection parameters */ -static const hciConnSpec_t datcConnCfg = { - 6, /*! Minimum connection interval in 1.25ms units */ - 6, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 0, /*! Unused */ - 0 /*! Unused */ -}; - -/*! Configurable parameters for service and characteristic discovery */ -static const appDiscCfg_t datcDiscCfg = { - FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ - TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ -}; - -static const appCfg_t datcAppCfg = { - FALSE, /*! TRUE to abort service discovery if service not found */ - TRUE /*! TRUE to disconnect if ATT transaction times out */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datcAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, - 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; - -/************************************************************************************************** - ATT Client Discovery Data -**************************************************************************************************/ - -/*! Discovery states: enumeration of services to be discovered */ -enum { - DATC_DISC_GATT_SVC, /*! GATT service */ - DATC_DISC_GAP_SVC, /*! GAP service */ - DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ - DATC_DISC_WDXC_SCV, /*! Arm Ltd. Wireless Data Exchange service */ - DATC_DISC_SVC_MAX /*! Discovery complete */ -}; - -/*! the Client handle list, datcCb.hdlList[], is set as follows: - * - * ------------------------------- <- DATC_DISC_GATT_START - * | GATT svc changed handle | - * ------------------------------- - * | GATT svc changed ccc handle | - * ------------------------------- <- DATC_DISC_GAP_START - * | GAP central addr res handle | - * ------------------------------- - * | GAP RPA Only handle | - * ------------------------------- <- DATC_DISC_WP_START - * | WP handles | - * | ... | - * ------------------------------- - */ - -/*! Start of each service's handles in the the handle list */ -#define DATC_DISC_GATT_START 0 -#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) -#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) -#define DATC_DISC_WDXC_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) -#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_WDXC_START + WDXC_HDL_LIST_LEN) - -/*! Pointers into handle list for each service's handles */ -static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; -static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWdxHdlList[DM_CONN_MAX]; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datcOobCfg; - -/************************************************************************************************** - ATT Client Configuration Data -**************************************************************************************************/ - -/* - * Data for configuration after service discovery - */ - -/* Default value for CCC indications */ -const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; - -/* Default value for CCC notifications */ -const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; - -/* Default value for Client Supported Features (enable Robust Caching) */ -const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; - -/* List of characteristics to configure after service discovery */ -static const attcDiscCfg_t datcDiscCfgList[] = { - /* Write: GATT service changed ccc descriptor */ - { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: GATT client supported features */ - { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: Proprietary data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, - - /* Write: WDXC ccc descriptors */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_DC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTD_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_AU_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, -}; - -/* Characteristic configuration list length */ -#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) - -/* sanity check: make sure configuration list length is <= handle list length */ -WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Reset the OTA state. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcResetOTAState(void) -{ - int i; - for (i = 0; i < DM_CONN_MAX; i++) { - datcCb.sendingFile[i] = FALSE; - datcCb.fileVerified[i] = FALSE; - datcCb.blockOffset[i] = BLOCK_OFFSET_INIT; - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - uint16_t reportLen; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datcSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datcOobCfg == NULL) { - datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datcOobCfg) { - Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - reportLen = pDmEvt->scanReport.len; - } else { - reportLen = 0; - } - - if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { - memcpy(pMsg, pDmEvt, len); - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); - memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); - } - WsfMsgSend(datcCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datcCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning handler. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanningHandler(void) -{ - datcCb.autoConnect = TRUE; - datcConnInfo.doConnect = FALSE; - AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanning(void) -{ - /* Start the scanning start timer */ - WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan start. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStart(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan stop. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStop(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - - /* Open connection */ - if (datcConnInfo.doConnect) { - AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); - datcConnInfo.doConnect = FALSE; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Handle a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanReport(dmEvt_t *pMsg) -{ - uint8_t *pData; - appDbHdl_t dbHdl; - bool_t connect = FALSE; - - /* disregard if not scanning or autoconnecting */ - if (!datcCb.scanning || !datcCb.autoConnect) { - return; - } - - /* if we already have a bond with this device then connect to it */ - if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != - APP_DB_HDL_NONE) { - /* if this is a directed advertisement where the initiator address is an RPA */ - if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { - /* resolve direct address to see if it's addressed to us */ - AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); - } else { - connect = TRUE; - } - } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { - /* if the peer device uses an RPA */ - /* resolve advertiser's RPA to see if we already have a bond with this device */ - AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); - } - /* Search for "OTAS" name */ - if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL)) { - /* check length and device name */ - if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'O') && - (pData[DM_AD_DATA_IDX + 1] == 'T') && (pData[DM_AD_DATA_IDX + 2] == 'A') && - (pData[DM_AD_DATA_IDX + 3] == 'S')) { - connect = TRUE; - } - } - - if (connect) { - /* stop scanning and connect */ - datcCb.autoConnect = FALSE; - AppScanStop(); - - /* Store peer information for connect on scan stop */ - datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); - memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); - datcConnInfo.dbHdl = dbHdl; - datcConnInfo.doConnect = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection open. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcOpen(dmEvt_t *pMsg) -{ - datcResetOTAState(); -} - -/*************************************************************************************************/ -/*! - * \brief Process a received ATT notification. - * - * \param pMsg Pointer to ATT callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcValueNtf(attEvt_t *pMsg) -{ - /* print received message */ - APP_TRACE_INFO0((const char *)pMsg->pValue); -} - -/*************************************************************************************************/ -/*! - * \brief Set up procedures that need to be performed after device reset. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSetup(dmEvt_t *pMsg) -{ - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - datcConnInfo.doConnect = FALSE; - datcCb.restoringResList = FALSE; - - DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datcSetup(pMsg); - } else { - datcCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datcCb.restoringResList) { - /* Retore next device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datcSetup(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief GAP service discovery has completed. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscGapCmpl(dmConnId_t connId) -{ - appDbHdl_t dbHdl; - - /* if RPA Only attribute found on peer device */ - if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { - /* update DB */ - AppDbSetPeerRpao(dbHdl, TRUE); - AppDbNvmStorePeerRpao(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief WDXC File Transfer Data Callback. - * - * \param connId Connection ID. - * \param fileHdl Handle of the file. - * \param len length of pData in bytes. - * \param pData File data. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcWdxcFtdCallback(dmConnId_t connId, uint16_t fileHdl, uint16_t len, uint8_t *pData) -{ -} - -/*************************************************************************************************/ -/*! - * \brief Send file header. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void sendFileHeader(dmConnId_t connId) -{ - if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(fileHeader_t), - (uint8_t *)&fileHeader); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send a block of file data to the peer. Combines the address with the data. - * - * \param connId Connection identifier. - * \param address Address of the block. - * \param len Length of the data. - * \param pData Pointer to the data to send. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSendBlock(dmConnId_t connId, uint32_t address, uint32_t len, uint8_t *pData) -{ - uint8_t *addrData = WsfBufAlloc(datcCb.blockSize + sizeof(uint32_t)); - - /* Insert the address into the block */ - memcpy(addrData, &address, sizeof(uint32_t)); - memcpy(&addrData[sizeof(uint32_t)], pData, len); - - // APP_TRACE_INFO2("Sending addr: 0x%08X len: 0x%04X", address, len); - - /* Send the address and data, add the length of the address to the length */ - WdxcFtdSendBlock(connId, len + sizeof(uint32_t), addrData); - - /* Clear out the buf->free field to prevent un-intended assertion in WsfBufFree */ - addrData[4] = 0; - addrData[5] = 0; - addrData[6] = 0; - addrData[7] = 0; - - WsfBufFree(addrData); - - /* Increment the address of the data that we're sending */ - datcCb.blockOffset[connId - 1] += len; -} - -/*************************************************************************************************/ -/*! - * \brief WDXC File Transfer Control Callback. - * - * \param connId Connection ID. - * \param op Control operation. - * \param status Status of operation. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcWdxcFtcCallback(dmConnId_t connId, uint16_t handle, uint8_t op, uint8_t status) -{ - APP_TRACE_INFO2("FTC op: %d status: %d", op, status); - - if (op == WDX_FTC_OP_PUT_RSP) { - /* Start timer */ - APP_TRACE_INFO0(">>> Starting file transfer <<<\n"); - - MXC_TMR_SW_Start(MXC_TMR2); - datcCb.sendingFile[connId - 1] = TRUE; - uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; - datcSendBlock(connId, address, datcCb.blockSize, (uint8_t *)&datcCb.fileData[address]); - - } else if (op == WDX_FTC_OP_EOF) { - if (handle == WDX_FLIST_HANDLE) { - /* on discovery completion we can send the header */ - sendFileHeader(connId); - /* File discovery complete */ - APP_TRACE_INFO0(">>> File discovery complete <<<\n"); - } else { - /* Stop timer, calculate time and Bps */ - uint32_t usec = MXC_TMR_SW_Stop(MXC_TMR2); - APP_TRACE_INFO1(">>> File transfer complete %d us <<<\n", usec); - APP_TRACE_INFO3("file_size = %d usec = %d bps = %d\n", FILE_SIZE, usec, - ((FILE_SIZE * 1000) / (usec / 1000)) * 8); - datcCb.sendingFile[connId - 1] = FALSE; - } - } else if (op == WDX_FTC_OP_VERIFY_RSP) { - APP_TRACE_INFO1(">>> Verify complete status: %d <<<\n", status); - if (status) - datcCb.fileVerified[connId - 1] = FALSE; - else - datcCb.fileVerified[connId - 1] = TRUE; - } -} -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcBtnCback(uint8_t btn) -{ - dmConnId_t connId = datcCb.btnConnId; - dmConnId_t connIdList[DM_CONN_MAX]; - uint8_t numConnections = AppConnOpenList(connIdList); - - /* button actions when connected */ - if (numConnections > 0) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (numConnections < DM_CONN_MAX - 1) { - if (datcCb.scanning) { /* if scanning cancel scanning */ - AppScanStop(); - } else if (!datcCb.autoConnect) { /* else auto connect */ - datcRestartScanning(); - } - } else { - APP_TRACE_INFO0("datcBtnCback: Max connections reached."); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID used in button presses */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* disconnect */ - AppConnClose(connId); - break; - -#if (BT_VER > 8) - case APP_UI_BTN_1_EX_LONG: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - case APP_UI_BTN_2_SHORT: - if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { - WdxcDiscoverFiles(connId, datcCb.fileList[connId - 1], DATC_WDXC_MAX_FILES); - datcCb.blockSize = AttGetMtu(connId); - - /* Subtract for the address and message overhead */ - datcCb.blockSize = datcCb.blockSize - 8; - if (datcCb.blockSize > BLOCK_SIZE) { - datcCb.blockSize = BLOCK_SIZE; - } - } - break; - - case APP_UI_BTN_2_MED: - if ((datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) && - (datcCb.sendingFile[connId - 1] == FALSE)) { - /* Start the WDXC data stream */ - datcCb.blockOffset[connId - 1] = BLOCK_OFFSET_INIT; - - /* Put file request */ - WdxcFtcSendPutReq(connId, datcCb.fileList[connId - 1][0].handle, BLOCK_OFFSET_INIT, - FILE_SIZE, BLOCK_OFFSET_INIT + FILE_SIZE, 0); - } - break; - - case APP_UI_BTN_2_LONG: - if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { - /* Send verification request */ - WdxcFtcSendVerifyFile(connId, datcCb.fileList[connId - 1][0].handle); - } - break; - - case APP_UI_BTN_2_EX_LONG: - if (datcCb.fileVerified[connId - 1]) { - /* Send Disconnect and Reset request to apply firmware update */ - WdxcDcSendDisconnectAndReset(connId); - datcCb.fileVerified[connId - 1] = FALSE; - } - break; - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (datcCb.scanning) { /* if scanning cancel scanning */ - AppScanStop(); - } else if (!datcCb.autoConnect) { /* else auto connect */ - datcRestartScanning(); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID buttons apply to */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: - /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ - SvcCoreGapAddRpaoCh(); - break; - - case APP_UI_BTN_2_EX_LONG: - /* enable device privacy -- start generating local RPAs every 15 minutes */ - DmDevPrivStart(15 * 60); - - /* set Scanning filter policy to accept directed advertisements with RPAs */ - DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Discovery callback. - * - * \param connId Connection identifier. - * \param status Service or configuration status. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscCback(dmConnId_t connId, uint8_t status) -{ - switch (status) { - case APP_DISC_INIT: - /* set handle list when initialization requested */ - AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_READ_DATABASE_HASH: - /* Read peer's database hash */ - AppDiscReadDatabaseHash(connId); - break; - - case APP_DISC_SEC_REQUIRED: - /* initiate security */ - AppMasterSecurityReq(connId); - break; - - case APP_DISC_START: - /* initialize discovery state */ - datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; - - /* store possible change in cache by hash */ - AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); - - /* discover GATT service */ - GattDiscover(connId, pDatcGattHdlList[connId - 1]); - break; - - case APP_DISC_FAILED: - if (pAppCfg->abortDisc) { - /* if discovery failed for proprietary data service then disconnect */ - if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { - AppConnClose(connId); - break; - } - } - /* Else falls through. */ - - case APP_DISC_CMPL: - /* next discovery state */ - datcCb.discState[connId - 1]++; - - if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { - /* discover GAP service */ - GapDiscover(connId, pDatcGapHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { - /* discover proprietary data service */ - WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WDXC_SCV) { - WdxcWdxsDiscover(connId, pDatcWdxHdlList[connId - 1]); - } else { - /* discovery complete */ - AppDiscComplete(connId, APP_DISC_CMPL); - - /* GAP service discovery completed */ - datcDiscGapCmpl(connId); - - /* store cached handle list in NVM */ - AppDbNvmStoreHdlList(AppDbGetHdl(connId)); - - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - } - break; - - case APP_DISC_CFG_START: - case APP_DISC_CFG_CONN_START: - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_CFG_CMPL: - AppDiscComplete(connId, status); - break; - - default: - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTC_HANDLE_VALUE_NTF: - datcValueNtf((attEvt_t *)pMsg); - break; - - case ATTC_WRITE_CMD_RSP: - case ATTC_WRITE_RSP: { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - if ((((attEvt_t *)pMsg)->hdr.status == ATT_SUCCESS) && - (((attEvt_t *)pMsg)->handle == pDatcWdxHdlList[connId - 1][WDXC_FTD_HDL_IDX])) { - if (datcCb.sendingFile[connId - 1] == TRUE) { - uint32_t tempBlockSize; - if ((datcCb.blockOffset[connId - 1] + datcCb.blockSize) > FILE_SIZE) { - tempBlockSize = FILE_SIZE - datcCb.blockOffset[connId - 1]; - } else { - tempBlockSize = datcCb.blockSize; - } - - /* Keep writing the file */ - uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; - datcSendBlock(connId, address, tempBlockSize, (uint8_t *)&datcCb.fileData[address]); - } - } - break; - } - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - setAdvTxPower(); - datcRestoreResolvingList(pMsg); - datcRestartScanning(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_SCAN_START_IND: - datcScanStart(pMsg); - uiEvent = APP_UI_SCAN_START; - break; - - case DM_SCAN_STOP_IND: - datcScanStop(pMsg); - uiEvent = APP_UI_SCAN_STOP; - break; - - case DM_SCAN_REPORT_IND: - datcScanReport(pMsg); - break; - - case DM_CONN_OPEN_IND: - datcOpen(pMsg); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - datcRestartScanning(); - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datcOobCfg != NULL) { - DmSecSetOob(connId, datcOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datcPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case SCAN_START_EVT: - datcRestartScanningHandler(); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatcHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - - /* store handler ID */ - datcCb.handlerId = handlerId; - - /* set handle list length */ - datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; - - datcCb.btnConnId = 1; - /* Set configuration pointers */ - pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; - pAppSecCfg = (appSecCfg_t *)&datcSecCfg; - pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; - pAppCfg = (appCfg_t *)&datcAppCfg; - pSmpCfg = (smpCfg_t *)&datcSmpCfg; - pAttCfg = (attCfg_t *)&datcAttCfg; - - /* Initialize application framework */ - AppMasterInit(); - AppDiscInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Set the pointer for the fw_update image */ - datcCb.fileData = (uint8_t *)&_binary_fw_update_bin_start; - - /* Calculate the update image CRC */ - datcCb.fileCRC = 0; - crc32(datcCb.fileData, FILE_SIZE, &datcCb.fileCRC); - fileHeader.fileCRC = datcCb.fileCRC; - fileHeader.fileLen = FILE_SIZE; - APP_TRACE_INFO2("File addr: %08X file size: %08X", (uint32_t)datcCb.fileData, FILE_SIZE); - APP_TRACE_INFO1("Update File CRC: 0x%08X", datcCb.fileCRC); - - datcResetOTAState(); - - /* Setup scan start timer */ - datcCb.scanTimer.handlerId = handlerId; - datcCb.scanTimer.msg.event = SCAN_START_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - /* process ATT messages */ - if (pMsg->event <= ATT_CBACK_END) { - /* process discovery-related ATT messages */ - AppDiscProcAttMsg((attEvt_t *)pMsg); - - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ - /* process advertising and connection-related messages */ - AppMasterProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppMasterSecProcDmMsg((dmEvt_t *)pMsg); - - /* process discovery-related messages */ - AppDiscProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datcProcMsg((dmEvt_t *)pMsg); - - /* perform wdxc operations */ - WdxcProcMsg((wsfMsgHdr_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the pointers into the handle list. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcInitSvcHdlList() -{ - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++) { - /*! Pointers into handle list for each service's handles */ - pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; - pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; - pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; - pDatcWdxHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WDXC_START]; - } -} -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void) -{ - /* Initialize handle pointers */ - datcInitSvcHdlList(); - - /* Register for stack callbacks */ - DmRegister(datcDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); - AttRegister(datcAttCback); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datcBtnCback); - - /* Register for app framework discovery callbacks */ - AppDiscRegister(datcDiscCback); - - /* Initialize attribute server database */ - SvcCoreAddGroup(); - - /* Initialize the WDXC and set the WDXC application callbacks */ - WdxcInit(datcWdxcFtdCallback, datcWdxcFtcCallback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE_otac/fw_update.S b/Examples/MAX32665/BLE_otac/fw_update.S deleted file mode 100644 index b9bdc5effa0..00000000000 --- a/Examples/MAX32665/BLE_otac/fw_update.S +++ /dev/null @@ -1,9 +0,0 @@ -.section .text - -/* Include the fw_update binary file, include global symbols we can use at link time */ -_binary_fw_update_bin_start: -.incbin "build/buildfw/fw_update.bin" -_binary_fw_update_bin_end: - -.globl _binary_fw_update_bin_start -.globl _binary_fw_update_bin_end diff --git a/Examples/MAX32665/BLE_otac/main.c b/Examples/MAX32665/BLE_otac/main.c deleted file mode 100644 index e9ce0359008..00000000000 --- a/Examples/MAX32665/BLE_otac/main.c +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth data client that scans for and connects to advertisers with the name of "OTAS". Demonstrates Over-the-Air (OTA) firmware updates. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#include "datc_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDatc(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDatc(); - DatcStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_otas/.vscode/flash.gdb b/Examples/MAX32665/BLE_otas/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_otas/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_otas/Makefile b/Examples/MAX32665/BLE_otas/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_otas/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_otas/bl_build.S b/Examples/MAX32665/BLE_otas/bl_build.S deleted file mode 100644 index c1af83df520..00000000000 --- a/Examples/MAX32665/BLE_otas/bl_build.S +++ /dev/null @@ -1,8 +0,0 @@ -/* Include the bl binary file, plus a reference for addition into linker script */ -.section .text -_binary_bootloader_bin_start: -.incbin "build/buildbl/bootloader.bin" -_binary_bootloader_bin_end: - -.globl _binary_bootloader_bin_start -.globl _binary_bootloader_bin_end diff --git a/Examples/MAX32665/BLE_otas/dats_api.h b/Examples/MAX32665/BLE_otas/dats_api.h deleted file mode 100644 index eda3797d0b9..00000000000 --- a/Examples/MAX32665/BLE_otas/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_OTAS_DATS_API_H_ -#define EXAMPLES_MAX32665_BLE_OTAS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_OTAS_DATS_API_H_ diff --git a/Examples/MAX32665/BLE_otas/dats_main.c b/Examples/MAX32665/BLE_otas/dats_main.c deleted file mode 100644 index fe30582b568..00000000000 --- a/Examples/MAX32665/BLE_otas/dats_main.c +++ /dev/null @@ -1,984 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "mxc_device.h" -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "tmr.h" -#include "wsf_efs.h" -#include "svc_wdxs.h" -#include "wdxs/wdxs_api.h" -#include "wdxs/wdxs_main.h" -#include "wdxs/wdxs_stream.h" -#include "wdxs_file.h" -#include "board.h" -#include "flc.h" -#include "wsf_cs.h" -#ifndef OTA_INTERNAL -#include "Ext_Flash.h" -#endif -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_2M 2 -#define DATS_PHY_1M 1 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 100000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - WDXS_DC_CH_CCC_IDX, /*! WDXS DC service, service changed characteristic */ - WDXS_FTC_CH_CCC_IDX, /*! WDXS FTC service, service changed characteristic */ - WDXS_FTD_CH_CCC_IDX, /*! WDXS FTD service, service changed characteristic */ - WDXS_AU_CH_CCC_IDX, /*! WDXS AU service, service changed characteristic */ - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update. set to zero to disable */ - (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'O', - 'T', - 'A', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { WDXS_DC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_DC_CH_CCC_IDX */ - { WDXS_FTC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTC_CH_CCC_IDX */ - { WDXS_FTD_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTD_CH_CCC_IDX */ - { WDXS_AU_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_AU_CH_CCC_IDX */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ -#if (BT_VER > 8) - uint8_t phyMode; /*! PHY Test Mode */ -#endif /* BT_VER */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * \param size Size of message to send. - * \param msg Message to send - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId, uint8_t size, uint8_t *msg) -{ - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, size, msg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - WdxsAttCback(pEvt); -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ - -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - if (len == sizeof(fileHeader_t)) { - uint8_t str[50]; - uint16_t version = WdxsFileGetFirmwareVersion(); - snprintf((char *)str, sizeof(str), ">>> Current fw version: %d.%d <<<", - ((version & 0xFF00) >> 8), version & 0xFF); - fileHeader_t *tmpHeader; - tmpHeader = (fileHeader_t *)pValue; - initHeader(tmpHeader); - datsSendData(connId, sizeof(str), str); - } - return ATT_SUCCESS; -} -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datsOobCfg != NULL) { - DmSecSetOob(connId, datsOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: - - { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } - -#endif /* BT_VER */ - case APP_UI_BTN_2_MED: { - uint16_t version = WdxsFileGetFirmwareVersion(); - APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); - break; - } - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - case APP_UI_BTN_2_MED: { - uint16_t version = WdxsFileGetFirmwareVersion(); - APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); - break; - } - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - - /* process WDXS-related messages */ - WdxsProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Resets the system. - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsResetSystem(void) -{ - APP_TRACE_INFO0("Reseting!"); - /* Wait for the console to finish printing */ - volatile int i; - for (i = 0; i < 0xFFFFF; i++) {} - NVIC_SystemReset(); -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - - /* Initialize the WDXS File */ - WdxsFileInit(); - - /* Set the WDXS CCC Identifiers */ - WdxsSetCccIdx(WDXS_DC_CH_CCC_IDX, WDXS_AU_CH_CCC_IDX, WDXS_FTC_CH_CCC_IDX, WDXS_FTD_CH_CCC_IDX); - -#if (BT_VER > 8) - WdxsPhyInit(); -#endif /* BT_VER */ - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE_otas/main.c b/Examples/MAX32665/BLE_otas/main.c deleted file mode 100644 index efc7c6dfb7f..00000000000 --- a/Examples/MAX32665/BLE_otas/main.c +++ /dev/null @@ -1,282 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth data server that advertises as "OTAS" and accepts connection requests. - Demonstrates Over-the-Air (OTA) firmware updates. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" -#include "pal_timer.h" -#include "pal_sys.h" - -#include "dats_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDats(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUT interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(); - PalTimerIRQCallBack(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (PalSharedTimerIsInit()) { - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - } - - /* Stop here to measure the 32 kHz clock */ - /* while(1) {} */ - MXC_RTC_SquareWaveStop(); - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDats(); - DatsStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32665/BLE_otas/ota_external_mem.ld b/Examples/MAX32665/BLE_otas/ota_external_mem.ld deleted file mode 100644 index 5317d9bd69a..00000000000 --- a/Examples/MAX32665/BLE_otas/ota_external_mem.ld +++ /dev/null @@ -1,152 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -BOOTLOADER_LEN = 0x4000; -FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; -FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; -FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; -PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; - -MEMORY { - BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN - FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN - PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8C000 -} - -SECTIONS { - - .bootloader : - { - KEEP(*bootloader.o) - } > BOOT - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ - EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude bootloader code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.flashprog*) /* Flash program */ - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - .pal_nvm_db : - { - /* Align to the sector size */ - . = ALIGN(0x2000); - __pal_nvm_db_start__ = .; - . = . + _PAL_NVM_SIZE; - __pal_nvm_db_end__ = .; - } > PAL_NVM_DB - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32665/BLE_otas/ota_internal_mem.ld b/Examples/MAX32665/BLE_otas/ota_internal_mem.ld deleted file mode 100644 index 332a0f7ab62..00000000000 --- a/Examples/MAX32665/BLE_otas/ota_internal_mem.ld +++ /dev/null @@ -1,160 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -BOOTLOADER_LEN = 0x4000; -FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; -FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; -FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; -PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; - -MEMORY { - BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN - FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN - PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE - FLASH_UP (rx) : ORIGIN = 0x10080000, LENGTH = FLASH_SECTION_LEN - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8C000 -} - -SECTIONS { - .bootloader : - { - KEEP(*bootloader.o) - } > BOOT - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ - EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude bootloader code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - .flash_update (NOLOAD) : - { - _flash_update = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash_update = ALIGN(., 4); - } > FLASH_UP - - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.flashprog*) /* Flash program */ - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - .pal_nvm_db : - { - /* Align to the sector size */ - . = ALIGN(0x2000); - __pal_nvm_db_start__ = .; - . = . + _PAL_NVM_SIZE; - __pal_nvm_db_end__ = .; - } > PAL_NVM_DB - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32665/BLE_otas/wdxs_file.h b/Examples/MAX32665/BLE_otas/wdxs_file.h deleted file mode 100644 index 1ca1e7b22b2..00000000000 --- a/Examples/MAX32665/BLE_otas/wdxs_file.h +++ /dev/null @@ -1,93 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BLE_OTAS_WDXS_FILE_H_ -#define EXAMPLES_MAX32665_BLE_OTAS_WDXS_FILE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; - -/*! \addtogroup WIRELESS_DATA_EXCHANGE_PROFILE - * \{ */ - -/************************************************************************************************** - Constant Definitions -**************************************************************************************************/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Initialize the WDXS File. - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void); - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void); - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void); - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of the WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void); -/*************************************************************************************************/ -/*! - * \brief set the length of the expected file - * - * \return None. - */ -/*************************************************************************************************/ -void initHeader(fileHeader_t *header); - -/*! \} */ /* WIRELESS_DATA_EXCHANGE_PROFILE */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32665_BLE_OTAS_WDXS_FILE_H_ diff --git a/Examples/MAX32665/BLE_otas/wdxs_file_ext.c b/Examples/MAX32665/BLE_otas/wdxs_file_ext.c deleted file mode 100644 index aec6553ab4c..00000000000 --- a/Examples/MAX32665/BLE_otas/wdxs_file_ext.c +++ /dev/null @@ -1,430 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include -#include "mxc_device.h" -#include "wsf_types.h" -#include "util/wstr.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_efs.h" -#include "wsf_cs.h" -#include "wsf_msg.h" -#include "util/bstream.h" -#include "svc_wdxs.h" -#include "wdxs/wdxs_api.h" -#include "wdxs/wdxs_main.h" -#include "wdxs_file.h" -#include "dm_api.h" -#include "att_api.h" -#include "app_api.h" -#include "flc.h" -#include "Ext_Flash.h" - -#ifndef FW_VERSION_MAJOR -#define FW_VERSION_MAJOR 1 -#define FW_VERSION_MINOR 0 -#endif - -#define EXT_FLASH_PAGE_SIZE 256 -#define EXT_FLASH_SECTOR_SIZE ((uint32_t)0x0001000) -#define HEADER_LOCATION ((uint32_t)0x00000000) -#define ERASE_DELAY 50 // ms - -static volatile uint32_t verifyLen; -static volatile uint8_t *lastWriteAddr; -static volatile uint32_t lastWriteLen; -static uint32_t crcResult; - -static uint32_t eraseAddress, eraseSectors; -wsfHandlerId_t eraseHandlerId; -wsfTimer_t eraseTimer; - -/* Prototypes for file functions */ -static uint8_t wdxsFileInitMedia(void); -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); - -static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; -wsfEfsHandle_t otaFileHdl; -#define HEADER_LEN (sizeof(fileHeader_t)) -/* Use the second half of the flash space for scratch space */ -static const wsfEfsMedia_t WDXS_FileMedia = { - /* uint32_t startAddress; Start address + size of header. */ ( - (uint32_t)0x00000000), - /* uint32_t endAddress; End address. */ ((uint32_t)0x01000000), - /* uint32_t pageSize; Page size. */ EXT_FLASH_PAGE_SIZE, - /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, - /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, - /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, - /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, - /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle -}; - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for file erase. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (eraseSectors) { - APP_TRACE_INFO1(">>> Erasing address 0x%x in external flash <<<", eraseAddress); - - /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ - Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); - eraseSectors--; - eraseAddress += EXT_FLASH_SECTOR_SIZE; - - /* Continue next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - } else { - /* Erase is complete */ - APP_TRACE_INFO0(">>> External flash erase complete <<<"); - wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); - } -} - -/*************************************************************************************************/ -/*! - * \brief Media Init function, called when media is registered. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileInitMedia(void) -{ - int err = 0; - MXC_FLC_Init(); - err += Ext_Flash_Init(); - err += Ext_Flash_Quad(1); - if (err) { - APP_TRACE_INFO0("Error initializing external flash"); - } - - APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); - - /* Setup the erase handler */ - eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); - eraseTimer.handlerId = eraseHandlerId; - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File erase function. Must be page aligned. - * - * \param pAddress Address in media to start erasing. - * \param size Number of bytes to erase. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) -{ - uint32_t address32 = (uint32_t)address; - uint32_t sectors = 0; // hard coded for now because image has no len data - - if (fileHeader.fileLen != 0) { - /* calculate sectors needed to erase */ - sectors = (fileHeader.fileLen / EXT_FLASH_SECTOR_SIZE) + 1; - APP_TRACE_INFO1(">>> Initiating erase of %d 4K sectors in external flash <<<", sectors); - - /* Setup the erase handler variables */ - eraseAddress = address32; - eraseSectors = sectors; - - /* Initiate the erase */ - Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); - eraseSectors--; - eraseAddress += EXT_FLASH_SECTOR_SIZE; - - /* Wait ERASE_DELAY ms before staring next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - - /* TODO: We will have to disconnect the completion of this with the - erase actually being complete */ - - return WSF_EFS_SUCCESS; - } else { - APP_TRACE_INFO0(">>> File size is unknown <<<"); - return WSF_EFS_FAILURE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Media Read function. - * - * \param pBuf Buffer to hold data. - * \param pAddress Address in media to read from. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - Ext_Flash_Read((uint32_t)pAddress, pBuf, size, Ext_Flash_DataLine_Quad); - return WSF_EFS_SUCCESS; -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} -/*************************************************************************************************/ -/*! - * \brief File Write function. - * - * \param pBuf Buffer with data to be written. - * \param address Address in media to write to. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - static bool_t savedHeader = FALSE; - int err = 0; - uint8_t attempts = 2; - uint8_t *tempBuff = (uint8_t *)malloc(size); - /* helps silence compiler warnings over discarded const qualifier */ - uint32_t addressToBuf = (uint32_t)pBuf; - /* write the header in flash device */ - if (!savedHeader) { - err += Ext_Flash_Program_Page(HEADER_LOCATION, (uint8_t *)&fileHeader, sizeof(fileHeader_t), - Ext_Flash_DataLine_Quad); - /* verify header was written correctly */ - err += Ext_Flash_Read(HEADER_LOCATION, tempBuff, sizeof(fileHeader_t), - Ext_Flash_DataLine_Quad); - if (memcmp(tempBuff, (uint8_t *)&fileHeader, sizeof(fileHeader_t)) != 0) { - APP_TRACE_INFO0("Error writting header to external flash"); - } - savedHeader = TRUE; - } - /* offset by the header thats already written */ - pAddress += HEADER_LEN; - crc32((const void *)pBuf, size, &crcResult); - while (attempts) { - err += Ext_Flash_Program_Page((uint32_t)pAddress, (uint8_t *)addressToBuf, size, - Ext_Flash_DataLine_Quad); - err += Ext_Flash_Read((uint32_t)pAddress, tempBuff, size, Ext_Flash_DataLine_Quad); - /* verify data was written correctly */ - if (memcmp(tempBuff, pBuf, size) != 0) { - attempts--; - if (attempts == 0) - err++; - } else { - attempts = 0; - } - } - if (err == E_NO_ERROR) { - lastWriteAddr = pAddress; - lastWriteLen = size; - APP_TRACE_INFO2("Ext Flash: Wrote %d bytes @ 0x%08x", size, pAddress); - } else { - APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); - /* force a crc error so device does not reboot into bootloader */ - crcResult = 0; - err = WSF_EFS_FAILURE; - } - - free(tempBuff); - return err; -} - -/*************************************************************************************************/ -/*! - * \brief Media Specific Command handler. - * - * \param cmd Identifier of the media specific command. - * \param param Optional Parameter to the command. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) -{ - switch (cmd) { - case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { - /* Currently unimplemented */ - return WDX_FTC_ST_SUCCESS; - } break; - case WSF_EFS_VALIDATE_CMD: - default: { - verifyLen = (uint32_t)lastWriteAddr - WDXS_FileMedia.startAddress - sizeof(fileHeader_t) + - lastWriteLen; - - APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, - verifyLen); - APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); - APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); - - /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ - if (fileHeader.fileCRC != crcResult) { - APP_TRACE_INFO0("Update file verification failure"); - APP_TRACE_INFO0("Erasing first sector of external flash"); - Ext_Flash_Erase(HEADER_LOCATION, Ext_Flash_Erase_4K); - crcResult = 0; - return WDX_FTC_ST_VERIFICATION; - } - crcResult = 0; - return WDX_FTC_ST_SUCCESS; - } break; - } - return WDX_FTC_ST_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Example of creating a WDXS stream. - * - * \param none - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void) -{ - wsfEsfAttributes_t attr; - char versionString[WSF_EFS_VERSION_LEN]; - - /* Add major number */ - versionString[0] = FW_VERSION_MAJOR; - /* Add "." */ - versionString[1] = '.'; - /* Minor number */ - versionString[2] = FW_VERSION_MINOR; - /* Add termination character */ - versionString[3] = 0; - - /* Register the media for the stream */ - WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); - - /* Set the attributes for the stream */ - attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | - WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | - WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | - WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); - - attr.type = WSF_EFS_FILE_TYPE_BULK; - - /* Potential buffer overrun is intentional to zero out fixed length field */ - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); - - /* Add a file for the stream */ - otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, - WDX_FLASH_MEDIA, &attr, 0); - APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); -} - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void) -{ - return WDXS_FileMedia.startAddress; -} - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void) -{ - return verifyLen; -} - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void) -{ - wsfEsfAttributes_t attr; - uint8_t minor, major; - - WsfEfsGetAttributes(otaFileHdl, &attr); - major = attr.version[0]; - minor = attr.version[2]; - // store major in upper byte and minor in lower byte - return (uint16_t)major << 8 | minor; -} - -void initHeader(fileHeader_t *header) -{ - fileHeader.fileLen = header->fileLen; - fileHeader.fileCRC = header->fileCRC; -} diff --git a/Examples/MAX32665/BLE_otas/wdxs_file_int.c b/Examples/MAX32665/BLE_otas/wdxs_file_int.c deleted file mode 100644 index a888713c7e1..00000000000 --- a/Examples/MAX32665/BLE_otas/wdxs_file_int.c +++ /dev/null @@ -1,404 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include -#include "mxc_device.h" -#include "wsf_types.h" -#include "util/wstr.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_efs.h" -#include "wsf_cs.h" -#include "wsf_msg.h" -#include "util/bstream.h" -#include "svc_wdxs.h" -#include "wdxs/wdxs_api.h" -#include "wdxs/wdxs_main.h" -#include "wdxs_file.h" -#include "dm_api.h" -#include "att_api.h" -#include "app_api.h" -#include "flc.h" - -#ifndef FW_VERSION_MAJOR -#define FW_VERSION_MAJOR 1 -#define FW_VERSION_MINOR 0 -#endif - -#define ERASE_DELAY 50 // ms - -extern uint32_t _flash_update; -extern uint32_t _eflash_update; -static volatile uint32_t verifyLen; -static volatile uint8_t *lastWriteAddr; -static volatile uint32_t lastWriteLen; - -static uint32_t eraseAddress, erasePages; -wsfHandlerId_t eraseHandlerId; -wsfTimer_t eraseTimer; - -/* Prototypes for file functions */ -static uint8_t wdxsFileInitMedia(void); -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); - -static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; -wsfEfsHandle_t otaFileHdl; -#define HEADER_LEN (sizeof(fileHeader_t)) -/* Use the second half of the flash space for scratch space */ -static const wsfEfsMedia_t WDXS_FileMedia = { - - /* uint32_t startAddress; Start address. */ ((uint32_t)&_flash_update), - /* uint32_t endAddress; End address. */ ((uint32_t)&_eflash_update), - /* uint32_t pageSize; Page size. */ MXC_FLASH_PAGE_SIZE, - /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, - /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, - /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, - /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, - /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle -}; - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for file erase. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - int err = 0; - if (erasePages) { - APP_TRACE_INFO1(">>> Erasing address 0x%x in internal flash <<<", eraseAddress); - - /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ - err = MXC_FLC_PageErase((uint32_t)eraseAddress); - if (err != E_NO_ERROR) { - APP_TRACE_INFO0("There was an erase error"); - return; - } - erasePages--; - eraseAddress += MXC_FLASH_PAGE_SIZE; - /* Continue next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - } else { - /* Erase is complete */ - APP_TRACE_INFO0(">>> Internal flash erase complete <<<"); - wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); - } -} -/*************************************************************************************************/ -/*! - * \brief Media Init function, called when media is registered. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileInitMedia(void) -{ - MXC_FLC_Init(); - APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); - - /* Setup the erase handler */ - eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); - eraseTimer.handlerId = eraseHandlerId; - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File erase function. Must be page aligned. - * - * \param pAddress Address in media to start erasing. - * \param size Number of bytes to erase. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) -{ - uint32_t address32 = (uint32_t)address; - - if (fileHeader.fileLen != 0) { - int err = 0; - /* Setup the erase handler variables */ - eraseAddress = address32; - /* calculate pages needed to erase */ - erasePages = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; - /* Initiate the erase */ - err = MXC_FLC_PageErase((uint32_t)address32); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Flash page erase error at 0x%0x", address32); - return WSF_EFS_FAILURE; - } else { - APP_TRACE_INFO1(">>> Initiating erase of %d pages of internal flash <<<", erasePages); - } - erasePages--; - eraseAddress += MXC_FLASH_PAGE_SIZE; - /* Wait ERASE_DELAY ms before staring next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - - return WSF_EFS_SUCCESS; - } else { - APP_TRACE_INFO0(">>> File size is unknown <<<"); - return WSF_EFS_FAILURE; - } - - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Media Read function. - * - * \param pBuf Buffer to hold data. - * \param pAddress Address in media to read from. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - memcpy(pBuf, pAddress, size); - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File Write function. - * - * \param pBuf Buffer with data to be written. - * \param address Address in media to write to. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - int err = 0; - err += MXC_FLC_Write((uint32_t)pAddress, size, (uint32_t *)pBuf); - /* verify data was written*/ - err += memcmp(pAddress, pBuf, size); - - if (err == E_NO_ERROR) { - lastWriteAddr = pAddress; - lastWriteLen = size; - APP_TRACE_INFO2("Int. Flash: Wrote %d bytes @ 0x%x", size, pAddress); - return WSF_EFS_SUCCESS; - } - APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); - return err; -} -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -/*************************************************************************************************/ -/*! - * \brief Media Specific Command handler. - * - * \param cmd Identifier of the media specific command. - * \param param Optional Parameter to the command. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) -{ - switch (cmd) { - case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { - /* Currently unimplemented */ - return WDX_FTC_ST_SUCCESS; - } break; - case WSF_EFS_VALIDATE_CMD: - default: { - /* Validate the image with CRC32 */ - uint32_t crcResult = 0; - int err = 0; - - verifyLen = ((uint32_t)lastWriteAddr + lastWriteLen) - WDXS_FileMedia.startAddress; - - APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, - verifyLen); - - crc32((const void *)WDXS_FileMedia.startAddress, verifyLen, &crcResult); - - APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); - APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); - - /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ - if (fileHeader.fileCRC != crcResult) { - APP_TRACE_INFO0("Update file verification failure"); - return WDX_FTC_ST_VERIFICATION; - } - - /* if crc are ok write it to end of file*/ - err += MXC_FLC_Write((WDXS_FileMedia.startAddress + verifyLen), sizeof(crcResult), - (uint32_t *)&crcResult); - uint32_t *temp = (uint32_t *)(WDXS_FileMedia.startAddress + verifyLen); - /* verify data was written*/ - err += memcmp(temp, &crcResult, sizeof(crcResult)); - if (err) { - APP_TRACE_INFO0("Error appending CRC to flash"); - return WDX_FTC_ST_VERIFICATION; - } - - crcResult = 0; - return WDX_FTC_ST_SUCCESS; - } break; - } - return WDX_FTC_ST_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Example of creating a WDXS stream. - * - * \param none - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void) -{ - wsfEsfAttributes_t attr; - char versionString[WSF_EFS_VERSION_LEN]; - - /* Add major number */ - versionString[0] = FW_VERSION_MAJOR; - /* Add "." */ - versionString[1] = '.'; - /* Minor number */ - versionString[2] = FW_VERSION_MINOR; - /* Add termination character */ - versionString[3] = 0; - - /* Register the media for the stream */ - WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); - - /* Set the attributes for the stream */ - attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | - WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | - WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | - WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); - - attr.type = WSF_EFS_FILE_TYPE_BULK; - - /* Potential buffer overrun is intentional to zero out fixed length field */ - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); - - /* Add a file for the stream */ - otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, - WDX_FLASH_MEDIA, &attr, 0); - APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); -} - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void) -{ - return WDXS_FileMedia.startAddress; -} - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void) -{ - return verifyLen; -} - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void) -{ - wsfEsfAttributes_t attr; - uint8_t minor, major; - - WsfEfsGetAttributes(otaFileHdl, &attr); - major = attr.version[0]; - minor = attr.version[2]; - // store major in upper byte and minor in lower byte - return (uint16_t)major << 8 | minor; -} - -void initHeader(fileHeader_t *header) -{ - fileHeader.fileLen = header->fileLen; - fileHeader.fileCRC = header->fileCRC; -} diff --git a/Examples/MAX32665/BLE_periph/.vscode/flash.gdb b/Examples/MAX32665/BLE_periph/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/BLE_periph/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/BLE_periph/Makefile b/Examples/MAX32665/BLE_periph/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/BLE_periph/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/BLE_periph/README.md b/Examples/MAX32665/BLE_periph/README.md deleted file mode 100644 index 59a1830ff79..00000000000 --- a/Examples/MAX32665/BLE_periph/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# BLE_periph -Refer to the [BLE_periph](../../../Libraries/Cordio/docs/Applications/BLE_periph.md) documentation in the Cordio Library. - -# NOTE: BLE_periph is a bare bones example with no security and is not guaranteed nor intended to work with Windows, IOS, Android, etc. The example is only designed to operate with other embedded devices with loose security requirements. For a more fully featured application, please checkout BLE_dat(c/s) - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Required Connections -* Connect a USB cable between the PC and the (USB/PWR - UART) connector. An anteanna or wired connection can be used if SMA is available on the board. - -### Project-Specific Build Notes - Setting `TRACE=1` in [**project.mk**](project.mk) initializes the on-board USB-to-UART adapter for -viewing the trace messages and interacting with the application. Port uses settings: - - Baud : 115200 - - Char size : 8 - - Parity : None - - Stop bits : 1 - - HW Flow Control : No - - SW Flow Control : No diff --git a/Examples/MAX32665/BLE_periph/main.c b/Examples/MAX32665/BLE_periph/main.c deleted file mode 100644 index 72e8dd03b44..00000000000 --- a/Examples/MAX32665/BLE_periph/main.c +++ /dev/null @@ -1,216 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE app that advertises as "Periph". Recommended app for getting started with MSDK BLE. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include - -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "periph_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitPeriph(void); - -/*************************************************************************************************/ -/*! - * \brief RX data received callback. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - */ -/*************************************************************************************************/ -static void appRxCallback(uint8_t *data, uint16_t len) -{ - unsigned i; - - /* Print the received data */ - printf("App received: "); - - for (i = 0; i < len; i++) { - printf("0x%02X ", data[i]); - } - printf("\n"); - - /* Echo the data back to the central */ - if (!PeriphTXData(data, len)) { - printf("Error sending data to peer\n"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif - - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); -#endif - - StackInitPeriph(); - PeriphStart(); - - PeriphRegisterRXCallback(appRxCallback); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ - mainWsfInit(); - - while (1) { - /* Run the WSF OS */ - wsfOsDispatcher(); - - if (!WsfOsActive()) { - /* No WSF tasks are active, optionally sleep */ - } - } - - return 0; -} diff --git a/Examples/MAX32665/BLE_periph/periph_api.h b/Examples/MAX32665/BLE_periph/periph_api.h deleted file mode 100644 index a2328535ba3..00000000000 --- a/Examples/MAX32665/BLE_periph/periph_api.h +++ /dev/null @@ -1,106 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_PERIPH_PERIPH_API_H_ -#define EXAMPLES_MAX32665_BLE_PERIPH_PERIPH_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************************************************************************/ -/*! - * \brief Peripheral RX callback function. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - */ -/*************************************************************************************************/ -typedef void (*periphRxCb_t)(uint8_t *data, uint16_t len); - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Register the callback for received data. - * - * \param cb Callback function for when data is received. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphRegisterRXCallback(periphRxCb_t cb); - -/*************************************************************************************************/ -/*! - * \brief Send data to the peer. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - * - * \return TRUE if data send, FALSE if error. - */ -/*************************************************************************************************/ -bool_t PeriphTXData(uint8_t *data, uint16_t len); - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32665_BLE_PERIPH_PERIPH_API_H_ diff --git a/Examples/MAX32665/BLE_periph/periph_main.c b/Examples/MAX32665/BLE_periph/periph_main.c deleted file mode 100644 index 586f5ca9a50..00000000000 --- a/Examples/MAX32665/BLE_periph/periph_main.c +++ /dev/null @@ -1,399 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "periph_api.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - PERIPH_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - PERIPH_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - PERIPH_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t periphAdvCfg = { - { 30000, 0, 0 }, /*! Advertising durations in ms, 0 corresponds to infinite */ - { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t periphSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t periphAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t periphAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - /*! device name */ - 7, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'P', 'e', 'r', 'i', 'p', 'h' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t periphCccSet[PERIPH_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* PERIPH_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - periphRxCb_t rxCb; /* RX Callback function */ - dmConnId_t connId; /* Connection ID */ - bool_t connected; /* Connection state */ -} periphCb; - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(periphCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(periphCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphCccCback(attsCccEvt_t *pEvt) {} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t periphWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - /* Call callback with data */ - if (periphCb.rxCb != NULL) { - periphCb.rxCb(pValue, len); - } - - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void periphSetup(dmEvt_t *pMsg) -{ - /* set advertising data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(periphAdvDataDisc), - (uint8_t *)periphAdvDataDisc); - - /* set advertising data or connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(periphAdvDataDisc), - (uint8_t *)periphAdvDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void periphProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - periphSetup(pMsg); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - /* Save connId */ - periphCb.connId = (dmConnId_t)pMsg->hdr.param; - periphCb.connected = TRUE; - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - periphCb.connected = FALSE; - uiEvent = APP_UI_CONN_CLOSE; - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send data to the peer. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - * - * \return TRUE if data send, FALSE if error. - */ -/*************************************************************************************************/ -bool_t PeriphTXData(uint8_t *data, uint16_t len) -{ - /* Make sure we're connected */ - if (!periphCb.connected) { - return FALSE; - } - - /* Check if a client characteristic configuration descriptor is enabled and if - the characteristic's security level has been met. */ - if (AttsCccEnabled(periphCb.connId, PERIPH_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(periphCb.connId, WP_DAT_HDL, len, data); - - return TRUE; - } - - return FALSE; -} - -/*************************************************************************************************/ -/*! - * \brief Register the callback for received data. - * - * \param cb Callback function for when data is received. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphRegisterRXCallback(periphRxCb_t cb) -{ - periphCb.rxCb = cb; -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("PeriphHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &periphAdvDataDisc[5]); - - /* store handler ID */ - periphCb.handlerId = handlerId; - - /* Initialize the RX Callback to NULL */ - periphCb.rxCb = NULL; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&periphSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&periphAdvCfg; - pAttCfg = (attCfg_t *)&periphAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Periph got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - periphProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphStart(void) -{ - /* Register for stack callbacks */ - DmRegister(periphDmCback); - DmConnRegister(DM_CLIENT_ID_APP, periphDmCback); - AttRegister(periphAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(PERIPH_NUM_CCC_IDX, (attsCccSet_t *)periphCccSet, periphCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, periphWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(PERIPH_GATT_SC_CCC_IDX); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32665/BLE4_ctr/.cproject b/Examples/MAX32665/Bluetooth/BLE4_ctr/.cproject similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.cproject rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.cproject diff --git a/Examples/MAX32665/BLE4_ctr/.project b/Examples/MAX32665/Bluetooth/BLE4_ctr/.project similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.project rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.project diff --git a/Examples/MAX32655/BLE_mcs/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE4_ctr/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_mcs/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE4_ctr/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/README.md diff --git a/Examples/MAX32655/BLE_fit/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_fit/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Library_Generate/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/Library_Generate/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE4_ctr/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/launch.json diff --git a/Examples/MAX32665/BLE4_ctr/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/settings.json diff --git a/Examples/MAX32665/BLE4_ctr/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE4_ctr/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE4_ctr/BLE4_ctr.launch b/Examples/MAX32665/Bluetooth/BLE4_ctr/BLE4_ctr.launch similarity index 100% rename from Examples/MAX32665/BLE4_ctr/BLE4_ctr.launch rename to Examples/MAX32665/Bluetooth/BLE4_ctr/BLE4_ctr.launch diff --git a/Examples/MAX32665/Bluetooth/BLE4_ctr/Makefile b/Examples/MAX32665/Bluetooth/BLE4_ctr/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE4_ctr/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE4_ctr/README.md b/Examples/MAX32665/Bluetooth/BLE4_ctr/README.md similarity index 100% rename from Examples/MAX32665/BLE4_ctr/README.md rename to Examples/MAX32665/Bluetooth/BLE4_ctr/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE4_ctr/main.c b/Examples/MAX32665/Bluetooth/BLE4_ctr/main.c new file mode 100644 index 00000000000..cdcd9b61eeb --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE4_ctr/main.c @@ -0,0 +1,203 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + + /* Set 4.2 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) { + eventPending = WsfTokenService(); + } +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) { + eventPending = LhciSnifferHandler(); + } +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + LlSetAdvTxPower(DEFAULT_TX_POWER); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE4_ctr/project.mk b/Examples/MAX32665/Bluetooth/BLE4_ctr/project.mk similarity index 100% rename from Examples/MAX32665/BLE4_ctr/project.mk rename to Examples/MAX32665/Bluetooth/BLE4_ctr/project.mk diff --git a/Examples/MAX32665/BLE5_ctr/.cproject b/Examples/MAX32665/Bluetooth/BLE5_ctr/.cproject similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.cproject rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.cproject diff --git a/Examples/MAX32665/BLE5_ctr/.project b/Examples/MAX32665/Bluetooth/BLE5_ctr/.project similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.project rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.project diff --git a/Examples/MAX32655/BLE_otac/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE5_ctr/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_otac/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE5_ctr/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/README.md diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Library_Use/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/Library_Use/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE5_ctr/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/launch.json diff --git a/Examples/MAX32665/BLE5_ctr/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/settings.json diff --git a/Examples/MAX32665/BLE5_ctr/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE5_ctr/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE5_ctr/BLE5_ctr.launch b/Examples/MAX32665/Bluetooth/BLE5_ctr/BLE5_ctr.launch similarity index 100% rename from Examples/MAX32665/BLE5_ctr/BLE5_ctr.launch rename to Examples/MAX32665/Bluetooth/BLE5_ctr/BLE5_ctr.launch diff --git a/Examples/MAX32665/Bluetooth/BLE5_ctr/Makefile b/Examples/MAX32665/Bluetooth/BLE5_ctr/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE5_ctr/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE5_ctr/README.md b/Examples/MAX32665/Bluetooth/BLE5_ctr/README.md similarity index 100% rename from Examples/MAX32665/BLE5_ctr/README.md rename to Examples/MAX32665/Bluetooth/BLE5_ctr/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE5_ctr/main.c b/Examples/MAX32665/Bluetooth/BLE5_ctr/main.c new file mode 100644 index 00000000000..4df76f046c3 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE5_ctr/main.c @@ -0,0 +1,306 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth version 5.2 controller, accepts HCI commands via Serial Port. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_cs.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "mxc_device.h" +#include "uart.h" +#include "nvic_table.h" +#include "board.h" +#include "pal_timer.h" + +#define MAX_PRIORITY ((0x1 << __NVIC_PRIO_BITS) - 1) + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = BT_VER; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; + + /* Adjust the extended advertising and ISO settings */ + mainLlRtCfg.maxAdvSets = 2; + mainLlRtCfg.maxAdvReports = 4; + mainLlRtCfg.numIsoTxBuf = 8; + mainLlRtCfg.maxCis = 2; + mainLlRtCfg.maxBis = 2; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Use single pool for data buffers. */ +#if (BT_VER > 9) + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) { + eventPending = WsfTokenService(); + } +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) { + eventPending = LhciSnifferHandler(); + } +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Adjust interrupt priorities to let HCI UART interrupt have second highest after PAL timer + * + * \return None + */ +/*************************************************************************************************/ +void setInterruptPriority(void) +{ + /* Interrupts using FreeRTOS functions must have priorities between MAX_PRIORITY and + configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ + + /* Setup BLE hardware interrupt priorities */ + NVIC_SetPriority(BTLE_TX_DONE_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SFD_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SFD_TO_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_CFO_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SIG_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_TX_AES_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_AES_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (MAX_PRIORITY - 2)); + + /* Setup scheduler timer priorities */ + NVIC_SetPriority(TMR0_IRQn, (MAX_PRIORITY - 1)); + NVIC_SetPriority(TMR1_IRQn, (MAX_PRIORITY - 1)); + + NVIC_SetPriority(WUT_IRQn, (MAX_PRIORITY - 1)); + + /* Setup additional peripheral timer priorities */ + NVIC_SetPriority(UART0_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(UART1_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(UART2_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(UART3_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(DMA0_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA1_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA2_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA3_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(DMA4_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA5_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA6_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA7_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(DMA8_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA9_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA10_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA11_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(DMA12_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA13_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA14_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA15_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(GPIO0_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(GPIO1_IRQn, (MAX_PRIORITY - 0)); + + /* Trace UART */ + NVIC_SetPriority(UART0_IRQn, 3); + /* HCI UART highest priority */ + NVIC_SetPriority(MXC_UART_GET_IRQ(MXC_UART_GET_UART(HCI_UART)), 0); + /* PAL Timer */ + PalTimerSetIRQPriority(2); +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + LlSetAdvTxPower(DEFAULT_TX_POWER); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + setInterruptPriority(); + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE5_ctr/project.mk b/Examples/MAX32665/Bluetooth/BLE5_ctr/project.mk similarity index 100% rename from Examples/MAX32665/BLE5_ctr/project.mk rename to Examples/MAX32665/Bluetooth/BLE5_ctr/project.mk diff --git a/Examples/MAX32665/BLE_FreeRTOS/.cproject b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.cproject similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.cproject rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.cproject diff --git a/Examples/MAX32665/BLE_FreeRTOS/.project b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.project similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.project rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.project diff --git a/Examples/MAX32655/BLE_otas/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_otas/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_fit_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_FreeRTOS/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/README.md diff --git a/Examples/MAX32655/BLE_mcs/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_mcs/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/MAX32572_Demo_BareMetal/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_FreeRTOS/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_FreeRTOS/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_FreeRTOS/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_FreeRTOS/BLE_FreeRTOS.launch b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/BLE_FreeRTOS.launch similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/BLE_FreeRTOS.launch rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/BLE_FreeRTOS.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h new file mode 100644 index 00000000000..8ce25d43bde --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h @@ -0,0 +1,152 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ + +#include +#include "max32665.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* CMSIS keeps a global updated with current system clock in Hz */ +#define configCPU_CLOCK_HZ ((uint32_t)HIRC96_FREQ) + +#define SLEEP_LED 1 +#define DEEPSLEEP_LED 0 + +/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ +// #define configUSE_TICKLESS_IDLE 1 + +/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will +increase the amount of time spent in standby mode, thus reducing average power consumption. */ +#ifdef configUSE_TICKLESS_IDLE +#define configTICK_RATE_HZ ((portTickType)10000) +#else +#define configTICK_RATE_HZ ((portTickType)1000) +#endif + +#define configRTC_TICK_RATE_HZ (32768) + +#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) + +#define configMINIMAL_STACK_SIZE ((uint16_t)128) + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 0 +#define configUSE_CO_ROUTINES 0 +#define configUSE_16_BIT_TICKS 0 +#define configUSE_MUTEXES 1 + +/* Define to trap errors during development. */ +void vAssertCalled(const char *const pcFileName, uint32_t ulLine); +#define configASSERT(x) \ + if ((x) == 0) \ + vAssertCalled(__FILE__, __LINE__) + +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) +#define configTIMER_QUEUE_LENGTH 8 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE + +/* Run time and task stats gathering related definitions. */ +#define configUSE_TRACE_FACILITY 1 +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelay 1 + +/* # of priority bits (configured in hardware) is provided by CMSIS */ +#define configPRIO_BITS __NVIC_PRIO_BITS + +#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) + +/* Only the top three bits are implemented. This is the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY \ + ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) + +/* Priority 5, or 160 as only the top three bits are implemented. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) + +/* Alias the default handler names to match CMSIS weak symbols */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#ifdef configUSE_TICKLESS_IDLE +/* Provide routines for tickless idle pre- and post- processing */ +void vPreSleepProcessing(uint32_t *); +void vPostSleepProcessing(uint32_t); +#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); +#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); +#endif + +/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/Makefile b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_FreeRTOS/README.md b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/README.md similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/README.md rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/dats_api.h b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/dats_api.h new file mode 100644 index 00000000000..1bdf540f1a7 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/dats_main.c b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/dats_main.c new file mode 100644 index 00000000000..4987581980b --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/dats_main.c @@ -0,0 +1,927 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_1M 1 +#define DATS_PHY_2M 2 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 60000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 5000, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + (50 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (100 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'D', + 'A', + 'T', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello back"; + + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datsCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + if (len < 64) { + /* print received data if not a speed test message */ + APP_TRACE_INFO0((const char *)pValue); + + /* send back some data */ + datsSendData(connId); + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datsOobCfg != NULL) { + DmSecSetOob(connId, datsOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/freertos_tickless.c new file mode 100644 index 00000000000..05779133a33 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/freertos_tickless.c @@ -0,0 +1,377 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Maxim CMSIS */ +#include "mxc_device.h" +#include "board.h" +#include "mxc_assert.h" +#include "lp.h" +#include "pwrseq_regs.h" +#include "wut.h" +#include "mcr_regs.h" +#include "icc.h" +#include "pb.h" +#include "led.h" +#include "uart.h" +#include "simo.h" + +/* FreeRTOS includes */ +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +/* Bluetooth Cordio library */ +#include "pal_timer.h" +#include "pal_uart.h" +#include "pal_bb.h" + +#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ +#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ +#define WAKEUP_US 1500 /* Deep sleep recovery time, units of us */ + +/* Minimum ticks before SysTick interrupt, units of system clock ticks. + * Convert CPU_CLOCK_HZ to units of ticks per us + */ +#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) + +/* + * Sleep-check function + * + * Your code should over-ride this weak function and return E_NO_ERROR if + * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other + * return code will prevent FreeRTOS from entering tickless idle. + */ +int freertos_permit_tickless(void) +{ + /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ + if (MXC_WUT_TrimPending() != E_NO_ERROR) { + return E_BUSY; + } + + /* Figure out if the UART is active */ + if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { + return E_BUSY; + } + + /* Prevent characters from being corrupted if still transmitting, + UART will shutdown in deep sleep */ + if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { + return E_BUSY; + } + + return E_NO_ERROR; +} + +/* + * Switch the system clock to the HIRC / 4 + * + * Enable the HIRC, set the divide ration to /4, and disable the HIRC96 oscillator. + */ +void switchToHIRCD4(void) +{ + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV4); + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC_EN; + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC); + /* Disable unused clocks */ + while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} + /* Wait for the switch to occur */ + MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC96M_EN); + SystemCoreClockUpdate(); +} + +/* + * Switch the system clock to the HIRC96 + * + * Enable the HIRC96, set the divide ration to /1, and disable the HIRC oscillator. + */ +void switchToHIRC(void) +{ + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV1); + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC96); + /* Disable unused clocks */ + while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} + /* Wait for the switch to occur */ + MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC_EN); + SystemCoreClockUpdate(); +} + +/* + * Enter deep sleep mode + * + * Adjust system clocks and voltages for deep sleep. + */ +static void deepSleep(void) +{ + MXC_ICC_Disable(); + MXC_LP_ICache0Shutdown(); + + /* Shutdown unused power domains */ + MXC_PWRSEQ->lpcn |= MXC_F_PWRSEQ_LPCN_BGOFF; + + /* Prevent SIMO soft start on wakeup */ + MXC_LP_FastWakeupDisable(); + + /* Enable VDDCSWEN=1 prior to enter backup/deepsleep mode */ + MXC_MCR->ctrl |= MXC_F_MCR_CTRL_VDDCSWEN; + + /* Switch the system clock to a lower frequency to conserve power in deep sleep + and reduce current inrush on wakeup */ + switchToHIRCD4(); + + /* Reduce VCOREB to 0.81v */ + MXC_SIMO_SetVregO_B(810); + + MXC_LP_EnterDeepSleepMode(); + + /* If VCOREA not ready and VCOREB ready, switch VCORE=VCOREB + (set VDDCSW=2’b01). Configure VCOREB=1.1V wait for VCOREB ready. */ + + /* Check to see if VCOREA is ready on */ + if (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYC)) { + /* Wait for VCOREB to be ready */ + while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} + + /* Move VCORE switch back to VCOREB */ + MXC_MCR->ctrl = (MXC_MCR->ctrl & ~(MXC_F_MCR_CTRL_VDDCSW)) | + (0x1 << MXC_F_MCR_CTRL_VDDCSW_POS); + + /* Raise the VCORE_B voltage */ + while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} + MXC_SIMO_SetVregO_B(1000); + while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} + } + + MXC_LP_ICache0PowerUp(); + MXC_ICC_Enable(); + + /* Restore the system clock */ + switchToHIRC(); +} + +/* + * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c + * + * DEEPSLEEP mode will stop SysTick from counting, so that can't be + * used to wake up. Instead, calculate a wake-up period for the WUT to + * interrupt the WFI and continue execution. + * + */ +void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) +{ + uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; + uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; + bool_t schTimerActive; + + /* We do not currently handle to case where the WUT is slower than the RTOS tick */ + MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); + + if (SysTick->VAL < MIN_SYSTICK) { + /* Avoid sleeping too close to a systick interrupt */ + return; + } + + /* Calculate the number of WUT ticks, but we need one to synchronize */ + idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / + (uint64_t)configTICK_RATE_HZ; + + if (idleTicks > MAX_WUT_TICKS) { + idleTicks = MAX_WUT_TICKS; + } + + /* Check to see if we meet the minimum requirements for deep sleep */ + if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { + return; + } + + /* Enter a critical section but don't use the taskENTER_CRITICAL() + method as that will mask interrupts that should exit sleep mode. */ + __asm volatile("cpsid i"); + + /* If a context switch is pending or a task is waiting for the scheduler + to be unsuspended then abandon the low power entry. */ + /* Also check the MXC drivers for any in-progress activity */ + if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || + (freertos_permit_tickless() != E_NO_ERROR)) { + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + + /* Determine if the Bluetooth scheduler is running */ + if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { + schTimerActive = TRUE; + } else { + schTimerActive = FALSE; + } + + if (!schTimerActive) { + uint32_t ts; + if (PalBbGetTimestamp(&ts)) { + /*Determine if PalBb is active, return if we get a valid time stamp indicating + * that the scheduler is waiting for a PalBb event */ + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + } + + /* Disable SysTick */ + SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); + + /* Enable wakeup from WUT */ + NVIC_EnableIRQ(WUT_IRQn); + MXC_LP_EnableWUTAlarmWakeup(); + + /* Determine if we need to snapshot the PalBb clock */ + if (schTimerActive) { + /* Snapshot the current WUT value with the PalBb clock */ + MXC_WUT_Store(); + preCapture = MXC_WUT_GetCount(); + schUsec = PalTimerGetExpTime(); + + /* Adjust idleTicks for the time it takes to restart the BLE hardware */ + idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); + + /* Calculate the time to the next BLE scheduler event */ + if (schUsec < WAKEUP_US) { + bleSleepTicks = 0; + } else { + bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * + (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; + } + } else { + /* Snapshot the current WUT value */ + MXC_WUT_Edge(); + preCapture = MXC_WUT_GetCount(); + bleSleepTicks = 0; + schUsec = 0; + } + + /* Sleep for the shortest tick duration */ + if ((schTimerActive) && (bleSleepTicks < idleTicks)) { + dsTicks = bleSleepTicks; + } else { + dsTicks = idleTicks; + } + + /* Bound the deep sleep time */ + if (dsTicks > MAX_WUT_TICKS) { + dsTicks = MAX_WUT_TICKS; + } + + /* Don't deep sleep if we don't have time */ + if (dsTicks >= MIN_WUT_TICKS) { + /* Arm the WUT interrupt */ + MXC_WUT->cmp = preCapture + dsTicks; + + if (schTimerActive) { + /* Stop the BLE scheduler timer */ + PalTimerStop(); + + /* Shutdown BB hardware */ + PalBbDisable(); + } + + LED_Off(SLEEP_LED); + LED_Off(DEEPSLEEP_LED); + + deepSleep(); + + LED_On(DEEPSLEEP_LED); + LED_On(SLEEP_LED); + + if (schTimerActive) { + /* Enable and restore the BB hardware */ + PalBbEnable(); + + PalBbRestore(); + + /* Restore the BB counter */ + MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); + + /* Restart the BLE scheduler timer */ + dsWutTicks = MXC_WUT->cnt - preCapture; + schUsecElapsed = + (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; + + int palTimerStartTicks = schUsec - schUsecElapsed; + if (palTimerStartTicks < 1) { + palTimerStartTicks = 1; + } + PalTimerStart(palTimerStartTicks); + } + } + + /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ + MXC_WUT_Edge(); + postCapture = MXC_WUT_GetCount(); + dsWutTicks = postCapture - preCapture; + + /* + * Advance ticks by # actually elapsed + */ + dsSysTickPeriods = + (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; + vTaskStepTick(dsSysTickPeriods); + + /* Re-enable SysTick */ + SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/main.c b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/main.c new file mode 100644 index 00000000000..97e09ce45d2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/main.c @@ -0,0 +1,215 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief BLE_FreeRTOS + * @details This example demonstrates FreeRTOS with BLE capabilities. + */ + +#include +#include +#include +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "mxc_device.h" +#include "wut.h" +#include "lp.h" +#include "led.h" +#include "board.h" + +/* Shadow register definitions */ +#define MXC_R_SIR_SHR13 *((uint32_t *)(0x40005434)) +#define MXC_R_SIR_SHR17 *((uint32_t *)(0x40005444)) + +/* Stringification macros */ +#define STRING(x) STRING_(x) +#define STRING_(x) #x + +extern void bleStartup(void); + +/***** Functions *****/ + +/* =| vAssertCalled |============================== + * + * Called when an assertion is detected. Use debugger to backtrace and + * continue. + * + * ======================================================= + */ +void vAssertCalled(const char *const pcFileName, uint32_t ulLine) +{ + volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; + + /* Parameters are not used. */ + (void)ulLine; + (void)pcFileName; + + __asm volatile("cpsid i"); + { + /* You can step out of this function to debug the assertion by using + the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero + value. */ + while (ulSetToNonZeroInDebuggerToContinue == 0) {} + } + __asm volatile("cpsie i"); +} + +/* =| vApplicationIdleHook |============================== + * + * Call the user defined function from within the idle task. This + * allows the application designer to add background functionality + * without the overhead of a separate task. + * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, + * CALL A FUNCTION THAT MIGHT BLOCK. + * + * ======================================================= + */ +void vApplicationIdleHook(void) +{ + /* Sleep while idle */ + LED_Off(SLEEP_LED); + + MXC_LP_EnterSleepMode(); + + LED_On(SLEEP_LED); +} + +/* =| turnOffUnused |========================== + * + * Disable unused hardware to conserve power. + * + * ======================================================= + */ +void turnOffUnused(void) +{ + /* Prevent SIMO leakage in DS by reducing the SIMO buck clock */ + if (MXC_GCR->revision == 0xA2) { + MXC_R_SIR_SHR13 = 0x0; + MXC_R_SIR_SHR17 &= ~(0xC0); + } else if (MXC_GCR->revision == 0xA4) { + MXC_R_SIR_SHR17 &= ~(0xC0); + } + + MXC_LP_USBSWLPDisable(); +} + +/* =| main |============================================== + * + * This program demonstrates FreeRTOS tasks, mutexes. + * + * ======================================================= + */ +int main(void) +{ + /* Print banner (RTOS scheduler not running) */ + printf("\n-=- %s BLE FreeRTOS (%s) Demo -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); +#if configUSE_TICKLESS_IDLE + printf("Tickless idle is enabled\n"); + /* Initialize CPU Active LED */ + LED_On(SLEEP_LED); + LED_On(DEEPSLEEP_LED); +#endif + printf("SystemCoreClock = %d\n", SystemCoreClock); + + /* Delay to prevent bricks */ + volatile int i; + for (i = 0; i < 0x3FFFFF; i++) {} + + /* Turn off unused hardware to conserve power */ + turnOffUnused(); + + /* Start the BLE application */ + bleStartup(); + + /* Start scheduler */ + vTaskStartScheduler(); + + /* This code is only reached if the scheduler failed to start */ + printf("ERROR: FreeRTOS did not start due to above error!\n"); + while (1) { + __NOP(); + } + + /* Quiet GCC warnings */ + return -1; +} + +typedef struct __attribute__((packed)) ContextStateFrame { + uint32_t r0; + uint32_t r1; + uint32_t r2; + uint32_t r3; + uint32_t r12; + uint32_t lr; + uint32_t return_address; + uint32_t xpsr; +} sContextStateFrame; + +/*****************************************************************/ +void HardFault_Handler(void) +{ + __asm(" TST LR, #4\n" + " ITE EQ \n" + " MRSEQ R0, MSP \n" + " MRSNE R0, PSP \n" + " B HardFault_Decoder \n"); +} + +/*****************************************************************/ +/* Disable optimizations for this function so "frame" argument */ +/* does not get optimized away */ +__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) +{ + /* Hang here */ + while (1) {} +} diff --git a/Examples/MAX32665/BLE_FreeRTOS/project.mk b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/project.mk similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/project.mk rename to Examples/MAX32665/Bluetooth/BLE_FreeRTOS/project.mk diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/stack_dats.c b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/stack_dats.c new file mode 100644 index 00000000000..4c4a35eb7d8 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/stack_dats.c @@ -0,0 +1,402 @@ +/*************************************************************************************************/ +/*! + * \file stack_dats.c + * + * \brief Stack initialization for dats. + * + * Copyright (c) 2016-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include + +#include "app_api.h" +#include "app_terminal.h" +#include "app_ui.h" +#include "att_api.h" +#include "att_handler.h" +#include "dats_api.h" +#include "dm_handler.h" +#include "hci_core.h" +#include "hci_defs.h" +#include "hci_handler.h" +#include "l2c_api.h" +#include "l2c_handler.h" +#include "ll_init_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "sec_api.h" +#include "smp_api.h" +#include "smp_handler.h" +#include "svc_core.h" +#include "svc_dis.h" +#include "util/bstream.h" +#include "wdxs/wdxs_api.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_bufio.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_msg.h" +#include "wsf_os.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_types.h" +#include "pal_led.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#include "FreeRTOSConfig.h" + +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" +#include "mxc_device.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, + { 32, 4 }, + { 192, 8 }, + { 256, 16 }, + { 512, 4 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Initialize stack. + * + * \return None. + */ +/*************************************************************************************************/ +void StackInitDats(void) +{ + wsfHandlerId_t handlerId; + + SecInit(); + SecAesInit(); + SecCmacInit(); + SecEccInit(); + + handlerId = WsfOsSetNextHandler(HciHandler); + HciHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(DmHandler); + DmDevVsInit(0); + DmConnInit(); + DmAdvInit(); + DmConnSlaveInit(); + DmSecInit(); + DmSecLescInit(); + DmPrivInit(); + DmHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(L2cSlaveHandler); + L2cSlaveHandlerInit(handlerId); + L2cInit(); + L2cSlaveInit(); + + handlerId = WsfOsSetNextHandler(AttHandler); + AttHandlerInit(handlerId); + AttsInit(); + AttsIndInit(); + + handlerId = WsfOsSetNextHandler(SmpHandler); + SmpHandlerInit(handlerId); + SmprInit(); + SmprScInit(); + HciSetMaxRxAclLen(100); + + handlerId = WsfOsSetNextHandler(AppHandler); + AppHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(DatsHandler); + DatsHandlerInit(handlerId); +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_IntClear(); + NVIC_ClearPendingIRQ(WUT_IRQn); + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +void setInterruptPriority(void) +{ + /* Interrupts using FreeRTOS functions must have priorities between configMAX_PRIORITIES and + configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ + + /* Setup BLE hardware interrupt priorities */ + NVIC_SetPriority(BTLE_TX_DONE_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SFD_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SFD_TO_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_CFO_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SIG_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_TX_AES_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_AES_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (configMAX_PRIORITIES - 2)); + + /* Setup scheduler timer priorities */ + NVIC_SetPriority(TMR0_IRQn, (configMAX_PRIORITIES - 1)); + NVIC_SetPriority(TMR1_IRQn, (configMAX_PRIORITIES - 1)); + + NVIC_SetPriority(WUT_IRQn, configMAX_PRIORITIES - 1); + + /* Setup additional peripheral timer priorities */ + NVIC_SetPriority(UART0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART1_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART2_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART3_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(DMA0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA1_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA2_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA3_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(DMA4_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA5_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA6_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA7_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(DMA8_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA9_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA10_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA11_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(DMA12_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA13_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA14_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA15_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(GPIO0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(GPIO1_IRQn, (configMAX_PRIORITIES - 0)); +} + +void trim32k(void) +{ + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + NVIC_EnableIRQ(WUT_IRQn); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +} + +/*************************************************************************************************/ +/*! + * \brief Initialize BLE. + * + * \return None. + */ +/*************************************************************************************************/ +void bleStartup(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + trim32k(); +#endif + + setInterruptPriority(); + +#if configUSE_TICKLESS_IDLE + /* Disable Cordio stack usage of the LEDs */ + PalLedDeInit(); +#endif + + StackInitDats(); + DatsStart(); +} diff --git a/Examples/MAX32665/BLE_LR_Central/.cproject b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.cproject similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.cproject rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.cproject diff --git a/Examples/MAX32665/BLE_LR_Central/.project b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.project similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.project rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.project diff --git a/Examples/MAX32655/BLE_periph/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/BLE_periph/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_LR_Central/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_LR_Central/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/README.md diff --git a/Examples/MAX32655/BLE_otac/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_otac/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/MAX32572_Demo_FreeRTOS/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_LR_Central/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_LR_Central/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_LR_Central/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_LR_Central/BLE_LR_Central.launch b/Examples/MAX32665/Bluetooth/BLE_LR_Central/BLE_LR_Central.launch similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/BLE_LR_Central.launch rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/BLE_LR_Central.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_LR_Central/Makefile b/Examples/MAX32665/Bluetooth/BLE_LR_Central/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Central/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_LR_Central/README.md b/Examples/MAX32665/Bluetooth/BLE_LR_Central/README.md similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/README.md rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/README.md diff --git a/Examples/MAX32665/BLE_LR_Central/lr_central_api.h b/Examples/MAX32665/Bluetooth/BLE_LR_Central/lr_central_api.h similarity index 89% rename from Examples/MAX32665/BLE_LR_Central/lr_central_api.h rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/lr_central_api.h index 173c1d17484..9e54015d373 100644 --- a/Examples/MAX32665/BLE_LR_Central/lr_central_api.h +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Central/lr_central_api.h @@ -8,7 +8,7 @@ * * Copyright (c) 2019 Packetcraft, Inc. * - * Partial Copyright (c) 2023 Analog Devices, Inc. + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,8 +23,9 @@ * limitations under the License. */ /*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_LR_CENTRAL_LR_CENTRAL_API_H_ -#define EXAMPLES_MAX32665_BLE_LR_CENTRAL_LR_CENTRAL_API_H_ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_CENTRAL_LR_CENTRAL_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_CENTRAL_LR_CENTRAL_API_H_ #include "wsf_os.h" @@ -71,4 +72,4 @@ void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); }; #endif -#endif // EXAMPLES_MAX32665_BLE_LR_CENTRAL_LR_CENTRAL_API_H_ +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_CENTRAL_LR_CENTRAL_API_H_ diff --git a/Examples/MAX32665/BLE_LR_Central/lr_central_main.c b/Examples/MAX32665/Bluetooth/BLE_LR_Central/lr_central_main.c similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/lr_central_main.c rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/lr_central_main.c diff --git a/Examples/MAX32665/Bluetooth/BLE_LR_Central/main.c b/Examples/MAX32665/Bluetooth/BLE_LR_Central/main.c new file mode 100644 index 00000000000..07691c39a1e --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Central/main.c @@ -0,0 +1,292 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Long range demo on a central device + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#include "lr_central_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 4 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +extern uint8_t appCodedPhyDemo; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDatc(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Increase the default ACL buffer size and count */ + mainLlRtCfg.numTxBufs = 8; + mainLlRtCfg.numRxBufs = 8; + mainLlRtCfg.maxAclLen = 256; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + + APP_TRACE_INFO0("=========================================="); + APP_TRACE_INFO0("Long distance scanner demo (CODED PHY S=8)"); + APP_TRACE_INFO1("BT_VER=%d", BT_VER); + APP_TRACE_INFO0("=========================================="); + appCodedPhyDemo = 1; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDatc(); + DatcStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE_LR_Central/project.mk b/Examples/MAX32665/Bluetooth/BLE_LR_Central/project.mk similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/project.mk rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/project.mk diff --git a/Examples/MAX32665/Bluetooth/BLE_LR_Central/sdsc_api.h b/Examples/MAX32665/Bluetooth/BLE_LR_Central/sdsc_api.h new file mode 100644 index 00000000000..d3e62aae1e6 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Central/sdsc_api.h @@ -0,0 +1,99 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/*************************************************************************************************/ +/*! Secure Data Service Client +* Implements the necessary handles list to perform service +* and characteristic discovery of custom secured service . +* + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_CENTRAL_SDSC_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_CENTRAL_SDSC_API_H_ + +#include "att_api.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ +enum { + SEC_DAT_HDL_IDX, /*!< \brief Secured data */ + SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ + SEC_HDL_LIST_LEN /*!< \brief Handle list length */ +}; + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for Secured service . + * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_CENTRAL_SDSC_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_LR_Central/sdsc_main.c b/Examples/MAX32665/Bluetooth/BLE_LR_Central/sdsc_main.c new file mode 100644 index 00000000000..5a8af6c5d4c --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Central/sdsc_main.c @@ -0,0 +1,110 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_assert.h" +#include "util/bstream.h" +#include "app_api.h" +#include "sdsc_api.h" + +/************************************************************************************************** + Secure Service and Data UUIDs +**************************************************************************************************/ +#define ATT_UUID_SEC_DATA_SERVICE \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_SEC_DATA \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/* UUIDs */ +static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ +static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ + +/* Characteristics for discovery */ + +/*! Secured data */ +static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; + +/*! Secured data descriptor */ +static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, + ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; + +/*! List of characteristics to be discovered; order matches handle index enumeration */ +static const attcDiscChar_t *secDatDiscCharList[] = { + &secDat, /*! Secured data */ + &secDatCcc /*! Secured data descriptor */ +}; + +/* sanity check: make sure handle list length matches characteristic list length */ +WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for custom secured service . + * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) +{ + AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, + (attcDiscChar_t **)secDatDiscCharList, pHdlList); +} diff --git a/Examples/MAX32665/BLE_LR_Central/stack_lr_central.c b/Examples/MAX32665/Bluetooth/BLE_LR_Central/stack_lr_central.c similarity index 97% rename from Examples/MAX32665/BLE_LR_Central/stack_lr_central.c rename to Examples/MAX32665/Bluetooth/BLE_LR_Central/stack_lr_central.c index e6d416a7dc5..33a33583959 100644 --- a/Examples/MAX32665/BLE_LR_Central/stack_lr_central.c +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Central/stack_lr_central.c @@ -8,7 +8,7 @@ * * Copyright (c) 2019 Packetcraft, Inc. * - * Partial Copyright (c) 2023 Analog Devices, Inc. + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.cproject b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.cproject similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.cproject rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.cproject diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.project b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.project similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.project rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.project diff --git a/Examples/MAX32655/Bootloader/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/Bootloader/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/README.md diff --git a/Examples/MAX32655/BLE_otas/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_otas/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/MSR/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/MSR/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_LR_Peripheral/BLE_LR_Peripheral.launch b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/BLE_LR_Peripheral.launch similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/BLE_LR_Peripheral.launch rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/BLE_LR_Peripheral.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/Makefile b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_LR_Peripheral/README.md b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/README.md similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/README.md rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/README.md diff --git a/Examples/MAX32665/BLE_LR_Peripheral/lr_periph_api.h b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/lr_periph_api.h similarity index 90% rename from Examples/MAX32665/BLE_LR_Peripheral/lr_periph_api.h rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/lr_periph_api.h index 2d14e2be379..ff1f04e7af5 100644 --- a/Examples/MAX32665/BLE_LR_Peripheral/lr_periph_api.h +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/lr_periph_api.h @@ -8,7 +8,7 @@ * * Copyright (c) 2019 Packetcraft, Inc. * - * Paritial Copyright (c) 2023 Analog Devices, Inc. + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,8 +23,9 @@ * limitations under the License. */ /*************************************************************************************************/ -#ifndef EXAMPLES_MAX32665_BLE_LR_PERIPHERAL_LR_PERIPH_API_H_ -#define EXAMPLES_MAX32665_BLE_LR_PERIPHERAL_LR_PERIPH_API_H_ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_PERIPHERAL_LR_PERIPH_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_PERIPHERAL_LR_PERIPH_API_H_ #include "wsf_os.h" @@ -81,4 +82,4 @@ void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); }; #endif -#endif // EXAMPLES_MAX32665_BLE_LR_PERIPHERAL_LR_PERIPH_API_H_ +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_LR_PERIPHERAL_LR_PERIPH_API_H_ diff --git a/Examples/MAX32665/BLE_LR_Peripheral/lr_periph_main.c b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/lr_periph_main.c similarity index 99% rename from Examples/MAX32665/BLE_LR_Peripheral/lr_periph_main.c rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/lr_periph_main.c index 37d71be1b78..deeaa203b30 100644 --- a/Examples/MAX32665/BLE_LR_Peripheral/lr_periph_main.c +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/lr_periph_main.c @@ -8,7 +8,7 @@ * * Copyright (c) 2019 Packetcraft, Inc. * - * Paritial Copyright (c) 2023 Analog Devices, Inc. + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/main.c b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/main.c new file mode 100644 index 00000000000..737b6312990 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/main.c @@ -0,0 +1,287 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief BLE long range application demo on a peripheral device. +* +* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. +* +* Copyright (c) 2019 Packetcraft, Inc. +* +* Portions Copyright (c) 2022-2023 Analog Devices, Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +/*************************************************************************************************/ + +#include +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" +#include "pal_timer.h" +#include "pal_sys.h" +#include "pal_uart.h" + +#include "lr_periph_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ +extern uint8_t appCodedPhyDemo; + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitFit(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + + APP_TRACE_INFO0("==============================="); + APP_TRACE_INFO0("Long range demo (coded-PHY s=8)"); + APP_TRACE_INFO0("==============================="); + APP_TRACE_INFO1("BT_VER: %d", BT_VER); + appCodedPhyDemo = 1; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitFit(); + FitStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE_LR_Peripheral/project.mk b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/project.mk similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/project.mk rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/project.mk diff --git a/Examples/MAX32665/BLE_LR_Peripheral/stack_lr_periph.c b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/stack_lr_periph.c similarity index 98% rename from Examples/MAX32665/BLE_LR_Peripheral/stack_lr_periph.c rename to Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/stack_lr_periph.c index e124ab46a6f..1ab8ab16b34 100644 --- a/Examples/MAX32665/BLE_LR_Peripheral/stack_lr_periph.c +++ b/Examples/MAX32665/Bluetooth/BLE_LR_Peripheral/stack_lr_periph.c @@ -8,7 +8,7 @@ * * Copyright (c) 2019 Packetcraft, Inc. * - * Paritial Copyright (c) 2023 Analog Devices, Inc. + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Examples/MAX32665/BLE_datc/.cproject b/Examples/MAX32665/Bluetooth/BLE_datc/.cproject similarity index 100% rename from Examples/MAX32665/BLE_datc/.cproject rename to Examples/MAX32665/Bluetooth/BLE_datc/.cproject diff --git a/Examples/MAX32665/BLE_datc/.project b/Examples/MAX32665/Bluetooth/BLE_datc/.project similarity index 100% rename from Examples/MAX32665/BLE_datc/.project rename to Examples/MAX32665/Bluetooth/BLE_datc/.project diff --git a/Examples/MAX32655/RF_Test/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_datc/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32655/RF_Test/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_datc/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_datc/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_datc/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_datc/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_datc/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_datc/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_datc/.vscode/README.md diff --git a/Examples/MAX32655/BLE_periph/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_datc/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/BLE_periph/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_datc/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/OTP_Dump/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_datc/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/OTP_Dump/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_datc/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_datc/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_datc/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_datc/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_datc/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_datc/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_datc/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_datc/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_datc/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_datc/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_datc/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_datc/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_datc/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_datc/BLE_datc.launch b/Examples/MAX32665/Bluetooth/BLE_datc/BLE_datc.launch similarity index 100% rename from Examples/MAX32665/BLE_datc/BLE_datc.launch rename to Examples/MAX32665/Bluetooth/BLE_datc/BLE_datc.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_datc/Makefile b/Examples/MAX32665/Bluetooth/BLE_datc/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_datc/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_datc/README.md b/Examples/MAX32665/Bluetooth/BLE_datc/README.md similarity index 100% rename from Examples/MAX32665/BLE_datc/README.md rename to Examples/MAX32665/Bluetooth/BLE_datc/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_datc/datc_api.h b/Examples/MAX32665/Bluetooth/BLE_datc/datc_api.h new file mode 100644 index 00000000000..064345e6ce8 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_datc/datc_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_DATC_DATC_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_DATC_DATC_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_DATC_DATC_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_datc/datc_main.c b/Examples/MAX32665/Bluetooth/BLE_datc/datc_main.c new file mode 100644 index 00000000000..160e8dc8033 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_datc/datc_main.c @@ -0,0 +1,1402 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application for Nordic-ble. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "dm_api.h" +#include "dm_priv.h" +#include "gap/gap_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_cfg.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_core.h" +#include "svc_ch.h" +#include "gatt/gatt_api.h" +#include "wpc/wpc_api.h" +#include "datc_api.h" +#include "util/calc128.h" +#include "pal_btn.h" +#include "pal_uart.h" +#include "tmr.h" +#include "sdsc_api.h" +/************************************************************************************************** +Macros +**************************************************************************************************/ +#if (BT_VER > 8) +/* PHY Test Modes */ +#define DATC_PHY_1M 1 +#define DATC_PHY_2M 2 +#define DATC_PHY_CODED 3 +#endif /* BT_VER */ + +#define SPEED_TEST_COUNT 5000 + +/* Max value is 238 */ +#define SPEED_TEST_PACKET_LEN 238 +#define SPEED_TEST_TMR MXC_TMR3 + +#define SCAN_START_EVT 0x99 +#define SCAN_START_MS 500 + +/* Down sample the number of scan reports we print */ +#define SCAN_REPORT_DOWN_SAMPLE 20 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR2 + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +struct { + uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ + wsfHandlerId_t handlerId; /*! WSF hander ID */ + bool_t scanning; /*! TRUE if scanning */ + bool_t autoConnect; /*! TRUE if auto-connecting */ + uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ + uint8_t hdlListLen; /*! Cached handle list length */ + uint8_t btnConnId; /*! The index of the connection ID for button presses */ +#if (BT_VER > 8) + uint8_t phyMode[DM_CONN_MAX]; /*! PHY Test Mode */ +#endif /* BT_VER */ + appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ + unsigned speedTestCounter; + wsfTimer_t scanTimer; /* Timer for starting the scanner */ +} datcCb; + +/*! connection control block */ +typedef struct { + appDbHdl_t dbHdl; /*! Device database record handle type */ + uint8_t addrType; /*! Type of address of device to connect to */ + bdAddr_t addr; /*! Address of device to connect to */ + bool_t doConnect; /*! TRUE to issue connect on scan complete */ +} datcConnInfo_t; + +datcConnInfo_t datcConnInfo; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for master */ +static const appMasterCfg_t datcMasterCfg = { + 96, /*! The scan interval, in 0.625 ms units */ + 48, /*! The scan window, in 0.625 ms units */ + 0, /*! The scan duration in ms */ + DM_DISC_MODE_NONE, /*! The GAP discovery mode */ + DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ +}; + +/*! Configurable security parameters to set +* pairing and authentication requirements. +* +* Authentication and bonding flags +* -DM_AUTH_BOND_FLAG : Bonding requested +* -DM_AUTH_KP_FLAG : Keypress notifications requested +* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested, + pairing method is determined by IO capabilities below +* -DM_AUTH_SC_FLAG : LE Secure Connections requested +* +* Initiator key distribution flags +* -DM_KEY_DIST_LTK : Distribute LTK used for encryption +* -DM_KEY_DIST_IRK : Distribute IRK used for privacy +* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data +*/ +static const appSecCfg_t datcSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/* OOB UART parameters */ +#define OOB_BAUD 115200 +#define OOB_FLOW FALSE + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datcSendOobData = FALSE; + +/* OOB Connection identifier */ +dmConnId_t oobConnId; + +/*! SMP security parameter configuration +* +* I/O Capability Codes to be set for +* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets +* when the MITM flag is set in Configurable security parameters above. +* -SMP_IO_DISP_ONLY : Display only. +* -SMP_IO_DISP_YES_NO : Display yes/no. +* -SMP_IO_KEY_ONLY : Keyboard only. +* -SMP_IO_NO_IN_NO_OUT : No input, no output. +* -SMP_IO_KEY_DISP : Keyboard display. +*/ +static const smpCfg_t datcSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_KEY_ONLY, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! Connection parameters */ +static const hciConnSpec_t datcConnCfg = { + 6, /*! Minimum connection interval in 1.25ms units */ + 6, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 0, /*! Unused */ + 0 /*! Unused */ +}; + +/*! Configurable parameters for service and characteristic discovery */ +static const appDiscCfg_t datcDiscCfg = { + FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ + TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ +}; + +static const appCfg_t datcAppCfg = { + FALSE, /*! TRUE to abort service discovery if service not found */ + TRUE /*! TRUE to disconnect if ATT transaction times out */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datcAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, + 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; + +/************************************************************************************************** + ATT Client Discovery Data +**************************************************************************************************/ + +/*! Discovery states: enumeration of services to be discovered */ +enum { + DATC_DISC_GATT_SVC, /*! GATT service */ + DATC_DISC_GAP_SVC, /*! GAP service */ + DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ + DATC_DISC_SDS_SVC, /*! Secured Data Service */ + DATC_DISC_SVC_MAX /*! Discovery complete */ +}; + +/*! the Client handle list, datcCb.hdlList[], is set as follows: + * + * ------------------------------- <- DATC_DISC_GATT_START + * | GATT svc changed handle | + * ------------------------------- + * | GATT svc changed ccc handle | + * ------------------------------- <- DATC_DISC_GAP_START + * | GAP central addr res handle | + * ------------------------------- + * | GAP RPA Only handle | + * ------------------------------- <- DATC_DISC_WP_START + * | WP handles | + * | ... | + * ------------------------------- + */ + +/*! Start of each service's handles in the the handle list */ +#define DATC_DISC_GATT_START 0 +#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) +#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) +#define DATC_DISC_SDS_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) +#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_SDS_START + SEC_HDL_LIST_LEN) + +/*! Pointers into handle list for each service's handles */ +static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; +static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; +static uint16_t *pSecDatHdlList[DM_CONN_MAX]; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datcOobCfg; + +/************************************************************************************************** + ATT Client Configuration Data +**************************************************************************************************/ + +/* + * Data for configuration after service discovery + */ + +/* Default value for CCC indications */ +const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; + +/* Default value for CCC notifications */ +const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; + +/* Default value for Client Supported Features (enable Robust Caching) */ +const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; + +/* List of characteristics to configure after service discovery */ +static const attcDiscCfg_t datcDiscCfgList[] = { + /* Write: GATT service changed ccc descriptor */ + { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: GATT client supported features */ + { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: Proprietary data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, + + /* Write: Secured data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (SEC_DAT_CCC_HDL_IDX + DATC_DISC_SDS_START) }, +}; + +/* Characteristic configuration list length */ +#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) + +/* sanity check: make sure configuration list length is <= handle list length */ +WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); + +/*************************************************************************************************/ +/*! + * \brief OOB RX callback. + * + * \return None. + */ +/*************************************************************************************************/ +void oobRxCback(void) +{ + if (datcOobCfg != NULL) { + DmSecSetOob(oobConnId, datcOobCfg); + } + + DmSecAuthRsp(oobConnId, 0, NULL); +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + uint16_t reportLen; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datcSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + + /* Setup HCI UART for OOB */ + PalUartConfig_t hciUartCfg; + hciUartCfg.rdCback = oobRxCback; + hciUartCfg.wrCback = NULL; + hciUartCfg.baud = OOB_BAUD; + hciUartCfg.hwFlow = OOB_FLOW; + + PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datcOobCfg == NULL) { + datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + memset(datcOobCfg, 0, sizeof(dmSecLescOobCfg_t)); + } + + if (datcOobCfg) { + Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); + + /* Start the RX for the peer OOB data */ + PalUartReadData(PAL_UART_ID_CHCI, datcOobCfg->peerRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + } else { + APP_TRACE_ERR0("Error allocating OOB data"); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + reportLen = pDmEvt->scanReport.len; + } else { + reportLen = 0; + } + + if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { + memcpy(pMsg, pDmEvt, len); + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); + memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); + } + WsfMsgSend(datcCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datcCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning handler. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanningHandler(void) +{ + datcCb.autoConnect = TRUE; + datcConnInfo.doConnect = FALSE; + AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanning(void) +{ + /* Start the scanning start timer */ + WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan start. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStart(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan stop. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStop(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + + /* Open connection */ + if (datcConnInfo.doConnect) { + AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); + datcConnInfo.doConnect = FALSE; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Print the name value from a scan report. + * + * \param name Pointer to name parameter from a scan report. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrintName(uint8_t *name) +{ + /* Allocate a buffer for the device name */ + uint8_t *printBuf; + printBuf = WsfBufAlloc(name[DM_AD_LEN_IDX]); + + if (printBuf != NULL) { + /* Copy in the data and null terminate the string */ + memcpy(printBuf, &name[DM_AD_DATA_IDX], name[DM_AD_LEN_IDX] - 1); + printBuf[name[DM_AD_LEN_IDX] - 1] = 0; + + APP_TRACE_INFO1(" Name: %s", printBuf); + WsfBufFree(printBuf); + } +} + +/*************************************************************************************************/ +/*! + * \brief Print the contents of a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrintScanReport(dmEvt_t *pMsg) +{ +#if WSF_TRACE_ENABLED == TRUE + uint8_t *pData; + + APP_TRACE_INFO0("Scan Report:"); + WsfTrace(" %02x:%02x:%02x:%02x:%02x:%02x", pMsg->scanReport.addr[5], pMsg->scanReport.addr[4], + pMsg->scanReport.addr[3], pMsg->scanReport.addr[2], pMsg->scanReport.addr[1], + pMsg->scanReport.addr[0]); + + if ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL) { + datcPrintName(pData); + } else if ((pData = DmFindAdType(DM_ADV_TYPE_SHORT_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL) { + datcPrintName(pData); + } +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Handle a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanReport(dmEvt_t *pMsg) +{ + uint8_t *pData; + appDbHdl_t dbHdl; + bool_t connect = FALSE; + + /* disregard if not scanning or autoconnecting */ + if (!datcCb.scanning || !datcCb.autoConnect) { + return; + } + + /* if we already have a bond with this device then connect to it */ + if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != + APP_DB_HDL_NONE) { + /* if this is a directed advertisement where the initiator address is an RPA */ + if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { + /* resolve direct address to see if it's addressed to us */ + AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); + } else { + connect = TRUE; + } + } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { + /* if the peer device uses an RPA */ + /* resolve advertiser's RPA to see if we already have a bond with this device */ + AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); + } + + /* find device name */ + if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL)) { + /* check length and device name */ + if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'D') && + (pData[DM_AD_DATA_IDX + 1] == 'A') && (pData[DM_AD_DATA_IDX + 2] == 'T') && + (pData[DM_AD_DATA_IDX + 3] == 'S')) { + connect = TRUE; + } + } + + if (connect) { + datcPrintScanReport(pMsg); + + /* stop scanning and connect */ + datcCb.autoConnect = FALSE; + AppScanStop(); + + /* Store peer information for connect on scan stop */ + datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); + memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); + datcConnInfo.dbHdl = dbHdl; + datcConnInfo.doConnect = TRUE; + } else { + static int scanReportDownSample = 0; + + /* Down sample the number of scan reports we print */ + if (scanReportDownSample++ == SCAN_REPORT_DOWN_SAMPLE) { + scanReportDownSample = 0; + datcPrintScanReport(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection open. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcOpen(dmEvt_t *pMsg) +{ +#if (BT_VER > 8) + datcCb.phyMode[pMsg->hdr.param - 1] = DATC_PHY_1M; +#endif /* BT_VER */ +} + +/*************************************************************************************************/ +/*! + * \brief Process a received ATT notification. + * + * \param pMsg Pointer to ATT callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcValueNtf(attEvt_t *pMsg) +{ + if (pMsg->handle == pSecDatHdlList[pMsg->hdr.param - 1][SEC_DAT_HDL_IDX]) + APP_TRACE_INFO0(">> Notification from secure data service <<<"); + /* print the received data */ + if (datcCb.speedTestCounter == 0) { + APP_TRACE_INFO0((const char *)pMsg->pValue); + } +} + +/*************************************************************************************************/ +/*! + * \brief Set up procedures that need to be performed after device reset. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSetup(dmEvt_t *pMsg) +{ + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + datcConnInfo.doConnect = FALSE; + datcCb.restoringResList = FALSE; + + DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datcSetup(pMsg); + } else { + datcCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datcCb.restoringResList) { + /* Retore next device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datcSetup(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Send example data. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello world"; + + if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send example data to secured charactersitic. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void secDatSendData(dmConnId_t connId) +{ + uint8_t str[] = "Secret number is 0x42"; + + if (pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX], sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief GAP service discovery has completed. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscGapCmpl(dmConnId_t connId) +{ + appDbHdl_t dbHdl; + + /* if RPA Only attribute found on peer device */ + if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { + /* update DB */ + AppDbSetPeerRpao(dbHdl, TRUE); + AppDbNvmStorePeerRpao(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Handler for the speed test. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSpeedTestHandler(dmConnId_t connId) +{ + static uint8_t speedTestData[SPEED_TEST_PACKET_LEN]; + uint16_t handle; + + if (datcCb.speedTestCounter == SPEED_TEST_COUNT) { + unsigned us = MXC_TMR_SW_Stop(SPEED_TEST_TMR); + + /* Calculate the throughput */ + unsigned bits = SPEED_TEST_COUNT * SPEED_TEST_PACKET_LEN * 8; + APP_TRACE_INFO2("%d bits transferred in %d us", bits, us); + + float bps = (float)bits / ((float)us / (float)1000000); + APP_TRACE_INFO1("%d bps", (unsigned)bps); + + /* Reset the counter for the next test */ + datcCb.speedTestCounter = 0; + return; + } + + /* Write the next packet */ + handle = pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX]; + AttcWriteCmd(connId, handle, (uint16_t)SPEED_TEST_PACKET_LEN, speedTestData); + + if (datcCb.speedTestCounter == 0) { + /* Start the throughput timer */ + MXC_TMR_SW_Start(SPEED_TEST_TMR); + } + + datcCb.speedTestCounter++; +} + +/*************************************************************************************************/ +/*! + * \brief Starts the speed test. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcStartSpeedTest(dmConnId_t connId) +{ + if (datcCb.speedTestCounter != 0) { + APP_TRACE_ERR0("Speed test already running"); + return; + } + + APP_TRACE_INFO0("Starting speed test"); + datcSpeedTestHandler(connId); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcBtnCback(uint8_t btn) +{ + dmConnId_t connId = datcCb.btnConnId; + dmConnId_t connIdList[DM_CONN_MAX]; + uint8_t numConnections = AppConnOpenList(connIdList); + + /* button actions when connected */ + if (numConnections > 0) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (numConnections < DM_CONN_MAX - 1) { + /* if scanning cancel scanning */ + if (datcCb.scanning) { + AppScanStop(); + } else if (!datcCb.autoConnect) { + /* else auto connect */ + datcRestartScanning(); + } + } else { + APP_TRACE_INFO0("datcBtnCback: Max connections reached."); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID used in button presses */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* disconnect */ + AppConnClose(connId); + break; + +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + datcCb.phyMode[connId - 1] = DATC_PHY_1M; + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + datcCb.phyMode[connId - 1] = DATC_PHY_2M; + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + datcCb.phyMode[connId - 1] = DATC_PHY_CODED; + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + datcCb.phyMode[connId - 1] = DATC_PHY_CODED; + break; + } + break; + } +#endif /* BT_VER */ + case APP_UI_BTN_2_MED: + secDatSendData(connId); + break; + case APP_UI_BTN_2_LONG: + /* send data */ + datcSendData(connId); + break; + + case APP_UI_BTN_2_EX_LONG: + /* Start the speed test */ + datcStartSpeedTest(connId); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* if scanning cancel scanning */ + if (datcCb.scanning) { + AppScanStop(); + } else if (!datcCb.autoConnect) { + /* else auto connect */ + datcRestartScanning(); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID buttons apply to */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: + /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ + SvcCoreGapAddRpaoCh(); + break; + + case APP_UI_BTN_2_EX_LONG: + /* enable device privacy -- start generating local RPAs every 15 minutes */ + DmDevPrivStart(15 * 60); + + /* set Scanning filter policy to accept directed advertisements with RPAs */ + DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Discovery callback. + * + * \param connId Connection identifier. + * \param status Service or configuration status. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscCback(dmConnId_t connId, uint8_t status) +{ + switch (status) { + case APP_DISC_INIT: + /* set handle list when initialization requested */ + AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_READ_DATABASE_HASH: + /* Read peer's database hash */ + AppDiscReadDatabaseHash(connId); + break; + + case APP_DISC_SEC_REQUIRED: + /* initiate security */ + AppMasterSecurityReq(connId); + break; + + case APP_DISC_START: + /* initialize discovery state */ + datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; + + /* store possible change in cache by hash */ + AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); + + /* discover GATT service */ + GattDiscover(connId, pDatcGattHdlList[connId - 1]); + break; + + case APP_DISC_FAILED: + if (pAppCfg->abortDisc) { + /* if discovery failed for proprietary data service then disconnect */ + if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { + AppConnClose(connId); + break; + } + } + /* Else falls through. */ + + case APP_DISC_CMPL: + /* next discovery state */ + datcCb.discState[connId - 1]++; + + if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { + /* discover GAP service */ + GapDiscover(connId, pDatcGapHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { + /* discover proprietary data service */ + WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_SDS_SVC) { + /* discover secured data service */ + SecDatSvcDiscover(connId, pSecDatHdlList[connId - 1]); + } else { + /* discovery complete */ + AppDiscComplete(connId, APP_DISC_CMPL); + + /* GAP service discovery completed */ + datcDiscGapCmpl(connId); + + /* store cached handle list in NVM */ + AppDbNvmStoreHdlList(AppDbGetHdl(connId)); + + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + } + break; + + case APP_DISC_CFG_START: + case APP_DISC_CFG_CONN_START: + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_CFG_CMPL: + AppDiscComplete(connId, status); + break; + + default: + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTC_WRITE_CMD_RSP: { + if (datcCb.speedTestCounter != 0) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + datcSpeedTestHandler(connId); + } + } break; + + case ATTC_HANDLE_VALUE_NTF: + datcValueNtf((attEvt_t *)pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datcRestoreResolvingList(pMsg); + datcRestartScanning(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_SCAN_START_IND: + datcScanStart(pMsg); + uiEvent = APP_UI_SCAN_START; + break; + + case DM_SCAN_STOP_IND: + datcScanStop(pMsg); + uiEvent = APP_UI_SCAN_STOP; + break; + + case DM_SCAN_REPORT_IND: + datcScanReport(pMsg); + break; + + case DM_CONN_OPEN_IND: + datcOpen(pMsg); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + datcRestartScanning(); + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + APP_TRACE_INFO0("Sending OOB data"); + oobConnId = connId; + + /* Start the TX to send the local OOB data */ + PalUartWriteData(PAL_UART_ID_CHCI, datcOobCfg->localRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datcPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case SCAN_START_EVT: + datcRestartScanningHandler(); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatcHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + + /* store handler ID */ + datcCb.handlerId = handlerId; + + /* set handle list length */ + datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; + + datcCb.btnConnId = 1; + /* Set configuration pointers */ + pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; + pAppSecCfg = (appSecCfg_t *)&datcSecCfg; + pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; + pAppCfg = (appCfg_t *)&datcAppCfg; + pSmpCfg = (smpCfg_t *)&datcSmpCfg; + pAttCfg = (attCfg_t *)&datcAttCfg; + + /* Initialize application framework */ + AppMasterInit(); + AppDiscInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup scan start timer */ + datcCb.scanTimer.handlerId = handlerId; + datcCb.scanTimer.msg.event = SCAN_START_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + if (datcCb.speedTestCounter == 0 && pMsg->event != DM_SCAN_REPORT_IND) { + APP_TRACE_INFO1("Datc got evt %d", pMsg->event); + } + + if (pMsg->event <= ATT_CBACK_END) { /* process ATT messages */ + /* process discovery-related ATT messages */ + AppDiscProcAttMsg((attEvt_t *)pMsg); + + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ + /* process advertising and connection-related messages */ + AppMasterProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppMasterSecProcDmMsg((dmEvt_t *)pMsg); + + /* process discovery-related messages */ + AppDiscProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datcProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the pointers into the handle list. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcInitSvcHdlList() +{ + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++) { + /*! Pointers into handle list for each service's handles */ + pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; + pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; + pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; + pSecDatHdlList[i] = &datcCb.hdlList[i][DATC_DISC_SDS_START]; + } +} +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void) +{ + /* Initialize handle pointers */ + datcInitSvcHdlList(); + + /* Register for stack callbacks */ + DmRegister(datcDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); + AttRegister(datcAttCback); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datcBtnCback); + + /* Register for app framework discovery callbacks */ + AppDiscRegister(datcDiscCback); + + /* Initialize attribute server database */ + SvcCoreAddGroup(); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_datc/main.c b/Examples/MAX32665/Bluetooth/BLE_datc/main.c new file mode 100644 index 00000000000..f0700a02017 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_datc/main.c @@ -0,0 +1,284 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE Data Client for unformatted data exchange. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#include "datc_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDatc(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Increase the default ACL buffer size and count */ + mainLlRtCfg.numTxBufs = 8; + mainLlRtCfg.numRxBufs = 8; + mainLlRtCfg.maxAclLen = 256; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDatc(); + DatcStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE_datc/project.mk b/Examples/MAX32665/Bluetooth/BLE_datc/project.mk similarity index 100% rename from Examples/MAX32665/BLE_datc/project.mk rename to Examples/MAX32665/Bluetooth/BLE_datc/project.mk diff --git a/Examples/MAX32665/Bluetooth/BLE_datc/sdsc_api.h b/Examples/MAX32665/Bluetooth/BLE_datc/sdsc_api.h new file mode 100644 index 00000000000..adfdf4b42e0 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_datc/sdsc_api.h @@ -0,0 +1,99 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/*************************************************************************************************/ +/*! Secure Data Service Client +* Implements the necessary handles list to perform service +* and characteristic discovery of custom secured service . +* + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_DATC_SDSC_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_DATC_SDSC_API_H_ + +#include "att_api.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ +enum { + SEC_DAT_HDL_IDX, /*!< \brief Secured data */ + SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ + SEC_HDL_LIST_LEN /*!< \brief Handle list length */ +}; + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for Secured service . + * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_DATC_SDSC_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_datc/sdsc_main.c b/Examples/MAX32665/Bluetooth/BLE_datc/sdsc_main.c new file mode 100644 index 00000000000..5a8af6c5d4c --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_datc/sdsc_main.c @@ -0,0 +1,110 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_assert.h" +#include "util/bstream.h" +#include "app_api.h" +#include "sdsc_api.h" + +/************************************************************************************************** + Secure Service and Data UUIDs +**************************************************************************************************/ +#define ATT_UUID_SEC_DATA_SERVICE \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_SEC_DATA \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/* UUIDs */ +static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ +static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ + +/* Characteristics for discovery */ + +/*! Secured data */ +static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; + +/*! Secured data descriptor */ +static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, + ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; + +/*! List of characteristics to be discovered; order matches handle index enumeration */ +static const attcDiscChar_t *secDatDiscCharList[] = { + &secDat, /*! Secured data */ + &secDatCcc /*! Secured data descriptor */ +}; + +/* sanity check: make sure handle list length matches characteristic list length */ +WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for custom secured service . + * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) +{ + AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, + (attcDiscChar_t **)secDatDiscCharList, pHdlList); +} diff --git a/Examples/MAX32690/BLE_otac/stack_datc.c b/Examples/MAX32665/Bluetooth/BLE_datc/stack_datc.c similarity index 97% rename from Examples/MAX32690/BLE_otac/stack_datc.c rename to Examples/MAX32665/Bluetooth/BLE_datc/stack_datc.c index 5c5d198adc7..5add5de4c54 100644 --- a/Examples/MAX32690/BLE_otac/stack_datc.c +++ b/Examples/MAX32665/Bluetooth/BLE_datc/stack_datc.c @@ -8,6 +8,8 @@ * * Copyright (c) 2019 Packetcraft, Inc. * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/Examples/MAX32665/BLE_dats/.cproject b/Examples/MAX32665/Bluetooth/BLE_dats/.cproject similarity index 100% rename from Examples/MAX32665/BLE_dats/.cproject rename to Examples/MAX32665/Bluetooth/BLE_dats/.cproject diff --git a/Examples/MAX32665/BLE_dats/.project b/Examples/MAX32665/Bluetooth/BLE_dats/.project similarity index 100% rename from Examples/MAX32665/BLE_dats/.project rename to Examples/MAX32665/Bluetooth/BLE_dats/.project diff --git a/Examples/MAX32665/BLE4_ctr/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_dats/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_dats/.settings/language.settings.xml diff --git a/Examples/MAX32655/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_dats/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_dats/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_dats/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_dats/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_dats/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_dats/.vscode/README.md diff --git a/Examples/MAX32655/Bootloader/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/Bootloader/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/OWM/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_dats/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/OWM/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_dats/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_dats/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_dats/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_dats/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_dats/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_dats/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_dats/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_dats/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_dats/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_dats/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_dats/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_dats/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_dats/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_dats/BLE_dats.launch b/Examples/MAX32665/Bluetooth/BLE_dats/BLE_dats.launch similarity index 100% rename from Examples/MAX32665/BLE_dats/BLE_dats.launch rename to Examples/MAX32665/Bluetooth/BLE_dats/BLE_dats.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_dats/Makefile b/Examples/MAX32665/Bluetooth/BLE_dats/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_dats/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_dats/README.md b/Examples/MAX32665/Bluetooth/BLE_dats/README.md similarity index 100% rename from Examples/MAX32665/BLE_dats/README.md rename to Examples/MAX32665/Bluetooth/BLE_dats/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_dats/dats_api.h b/Examples/MAX32665/Bluetooth/BLE_dats/dats_api.h new file mode 100644 index 00000000000..51998bc0174 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_dats/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_DATS_DATS_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_DATS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_dats/dats_main.c b/Examples/MAX32665/Bluetooth/BLE_dats/dats_main.c new file mode 100644 index 00000000000..65fb72c0e98 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_dats/dats_main.c @@ -0,0 +1,1030 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "pal_uart.h" +#include "tmr.h" +#include "svc_sds.h" +#include "ll_api.h" +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_1M 1 +#define DATS_PHY_2M 2 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 60000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_SEC_DAT_CCC_IDX, + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! Configurable security parameters to set +* pairing and authentication requirements. +* +* Authentication and bonding flags +* -DM_AUTH_BOND_FLAG : Bonding requested +* -DM_AUTH_SC_FLAG : LE Secure Connections requested +* -DM_AUTH_KP_FLAG : Keypress notifications requested +* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested + pairing method is determined by IO capabilities below +* +* Initiator key distribution flags +* -DM_KEY_DIST_LTK : Distribute LTK used for encryption +* -DM_KEY_DIST_IRK : Distribute IRK used for privacy +* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data +*/ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG | DM_AUTH_MITM_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/* OOB UART parameters */ +#define OOB_BAUD 115200 +#define OOB_FLOW FALSE + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/* OOB Connection identifier */ +dmConnId_t oobConnId; + +/*! SMP security parameter configuration +* +* I/O Capability Codes to be set for +* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets +* when the MITM flag is set in Configurable security parameters above. +* -SMP_IO_DISP_ONLY : Display only. +* -SMP_IO_DISP_YES_NO : Display yes/no. +* -SMP_IO_KEY_ONLY : Keyboard only. +* -SMP_IO_NO_IN_NO_OUT : No input, no output. +* -SMP_IO_KEY_DISP : Keyboard display. +*/ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_KEY_ONLY, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update. set to zero to disable */ + (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'D', + 'A', + 'T', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* DATS_WP_DAT_CCC_IDX */ + { SEC_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_SEC_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief OOB RX callback. + * + * \return None. + */ +/*************************************************************************************************/ +void oobRxCback(void) +{ + if (datsOobCfg != NULL) { + DmSecSetOob(oobConnId, datsOobCfg); + } + + DmSecAuthRsp(oobConnId, 0, NULL); +} + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello back"; + + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + + /* Setup HCI UART for OOB */ + PalUartConfig_t hciUartCfg; + hciUartCfg.rdCback = oobRxCback; + hciUartCfg.wrCback = NULL; + hciUartCfg.baud = OOB_BAUD; + hciUartCfg.hwFlow = OOB_FLOW; + + PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + memset(datsOobCfg, 0, sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + + /* Start the RX for the peer OOB data */ + PalUartReadData(PAL_UART_ID_CHCI, datsOobCfg->peerRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + } else { + APP_TRACE_ERR0("Error allocating OOB data"); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datsCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + static uint32_t packetCount = 0; + if (len < 64) { + /* print received data if not a speed test message */ + APP_TRACE_INFO0((const char *)pValue); + + /* send back some data */ + datsSendData(connId); + } else { + APP_TRACE_INFO1("Speed test packet Count [%d]", packetCount++); + if (packetCount >= 5000) { + packetCount = 0; + } + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for secured data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t secDatWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + uint8_t str[] = "Secure data received!"; + APP_TRACE_INFO0(">> Received secure data <<"); + APP_TRACE_INFO0((const char *)pValue); + + /* Write data recevied into characteristic */ + AttsSetAttr(SEC_DAT_HDL, len, (uint8_t *)pValue); + /* if notifications are enabled send one */ + if (AttsCccEnabled(connId, DATS_SEC_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, SEC_DAT_HDL, sizeof(str), str); + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + if (datsSecCfg.initiateSec) { + AppSlaveSecurityReq((dmConnId_t)pMsg->hdr.param); + } + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + APP_TRACE_INFO0("Sending OOB data"); + oobConnId = connId; + + /* Start the TX to send the local OOB data */ + PalUartWriteData(PAL_UART_ID_CHCI, datsOobCfg->localRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /*register secure data write callback */ + SvcSecDataCbackRegister(NULL, secDatWriteCback); + /* Register secure data service */ + SvcSecDataAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_dats/main.c b/Examples/MAX32665/Bluetooth/BLE_dats/main.c new file mode 100644 index 00000000000..bdd2cbd8b0d --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_dats/main.c @@ -0,0 +1,281 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE Data Server for unformatted data exchange. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "dats_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDats(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); + NVIC_ClearPendingIRQ(WUT_IRQn); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDats(); + DatsStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE_dats/project.mk b/Examples/MAX32665/Bluetooth/BLE_dats/project.mk similarity index 100% rename from Examples/MAX32665/BLE_dats/project.mk rename to Examples/MAX32665/Bluetooth/BLE_dats/project.mk diff --git a/Examples/MAX32665/Bluetooth/BLE_dats/services/svc_sds.c b/Examples/MAX32665/Bluetooth/BLE_dats/services/svc_sds.c new file mode 100644 index 00000000000..ee4c2ed527c --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_dats/services/svc_sds.c @@ -0,0 +1,176 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#include "wsf_types.h" +#include "att_api.h" +#include "wsf_trace.h" +#include "util/bstream.h" +#include "svc_ch.h" +#include "svc_sds.h" +#include "svc_cfg.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Characteristic read/write permissions */ +#ifndef SEC_DATA_PERMIT_READ +#define SEC_DATA_PERMIT_READ SVC_SEC_PERMIT_READ +#endif + +#ifndef SEC_DATA_PERMIT_READ_ENC +#define SEC_DATA_PERMIT_READ_ENC ATTS_PERMIT_READ_ENC +#endif + +#ifndef SEC_DATA_PERMIT_READ_AUTH +#define SEC_DATA_PERMIT_READ_AUTH ATTS_PERMIT_READ_AUTH +#endif + +#ifndef SEC_DATA_PERMIT_WRITE +#define SEC_DATA_PERMIT_WRITE SVC_SEC_PERMIT_WRITE +#endif + +#ifndef SEC_DATA_PERMIT_WRITE_ENC +#define SEC_DATA_PERMIT_WRITE_ENC ATTS_PERMIT_WRITE_ENC +#endif + +#ifndef SEC_DATA_PERMIT_WRITE_AUTH +#define SEC_DATA_PERMIT_WRITE_AUTH ATTS_PERMIT_WRITE_AUTH +#endif + +/************************************************************************************************** + Static Variables +**************************************************************************************************/ + +/* UUIDs */ +static const uint8_t svcSecDatUuid[] = { ATT_UUID_SEC_DATA }; + +/* Proprietary service declaration */ +static const uint8_t secDatSvc[] = { ATT_UUID_SEC_DATA_SERVICE }; +static const uint16_t secDatLenSvc = sizeof(secDatSvc); + +/* Secured data characteristic */ +static const uint8_t secDatCh[] = { ATT_PROP_NOTIFY | ATT_PROP_WRITE_NO_RSP | ATT_PROP_WRITE, + UINT16_TO_BYTES(SEC_DAT_HDL), ATT_UUID_SEC_DATA }; + +static const uint16_t secDatLenDatCh = sizeof(secDatCh); + +/* Secured data */ +static const uint8_t secDatVal[] = { 0 }; +static const uint16_t secDatLenDat = sizeof(secDatVal); + +/* Secured data client characteristic configuration */ +static uint8_t secDatChCcc[] = { UINT16_TO_BYTES(0x0000) }; +static const uint16_t secDatLenDatChCcc = sizeof(secDatChCcc); + +/* Attribute list for Secured Data group */ +static const attsAttr_t secDatList[] = { + /* Service declaration */ + { attPrimSvcUuid, (uint8_t *)secDatSvc, (uint16_t *)&secDatLenSvc, sizeof(secDatSvc), 0, + ATTS_PERMIT_READ }, + + /* Secure data characteristic declaration */ + { attChUuid, (uint8_t *)secDatCh, (uint16_t *)&secDatLenDatCh, sizeof(secDatCh), 0, + ATTS_PERMIT_READ }, + + /* Secure data characteristic value */ + { svcSecDatUuid, (uint8_t *)secDatVal, (uint16_t *)&secDatLenDat, ATT_VALUE_MAX_LEN, + (ATTS_SET_UUID_128 | ATTS_SET_VARIABLE_LEN | ATTS_SET_WRITE_CBACK), + SEC_DATA_PERMIT_WRITE | SEC_DATA_PERMIT_WRITE_ENC | SEC_DATA_PERMIT_WRITE_AUTH }, + + /*Secure data characteristic value descriptor*/ + { attCliChCfgUuid, (uint8_t *)secDatChCcc, (uint16_t *)&secDatLenDatChCcc, sizeof(secDatChCcc), + ATTS_SET_CCC, (ATTS_PERMIT_READ | ATTS_PERMIT_WRITE) } +}; + +/* Secured Data group structure */ +static attsGroup_t svcSecDatGroup = { NULL, (attsAttr_t *)secDatList, NULL, + NULL, SEC_DATA_START_HDL, SEC_DATA_END_HDL }; + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataAddGroup(void) +{ + AttsAddGroup(&svcSecDatGroup); +} + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataRemoveGroup(void) +{ + AttsRemoveGroup(SEC_DATA_START_HDL); +} + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) +{ + svcSecDatGroup.readCback = readCback; + svcSecDatGroup.writeCback = writeCback; +} diff --git a/Examples/MAX32665/Bluetooth/BLE_dats/services/svc_sds.h b/Examples/MAX32665/Bluetooth/BLE_dats/services/svc_sds.h new file mode 100644 index 00000000000..6daf1191b28 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_dats/services/svc_sds.h @@ -0,0 +1,138 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/*************************************************************************************************/ +/*! Secure Data Service +* Implementation of a characteristic with elevated security features. +* The connection must be encrypted with an authenticated key to read/write +* the attributes value. +* + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Service and Characteristic UUIDs +**************************************************************************************************/ +#define ATT_UUID_SEC_DATA_SERVICE \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_SEC_DATA \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 + +/************************************************************************************************** + Handle Ranges +**************************************************************************************************/ +/*! \brief Secured Data Service */ +#define SEC_DATA_START_HDL 0x300 /*!< \brief Start handle. */ +#define SEC_DATA_END_HDL (SEC_DAT_MAX_HDL - 1) /*!< \brief End handle. */ + +/************************************************************************************************** + Handles +**************************************************************************************************/ + +/*! \brief Secured Service Handles */ +enum { + SEC_DATA_SVC_HDL = SEC_DATA_START_HDL, /*!< \brief Secured Data service declaration */ + SEC_DAT_CH_HDL, /*!< \brief Secured Data characteristic */ + SEC_DAT_HDL, /*!< \brief Secured Data */ + SEC_DAT_CH_CCC_HDL, /*!< \brief Secured Data client characteristic configuration */ + SEC_DAT_MAX_HDL /*!< \brief Maximum handle. */ +}; +/**@}*/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataAddGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataRemoveGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); + +/*! \} */ /* WP_SERVICE */ + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ diff --git a/Examples/MAX32665/BLE_dats/stack_dats.c b/Examples/MAX32665/Bluetooth/BLE_dats/stack_dats.c similarity index 100% rename from Examples/MAX32665/BLE_dats/stack_dats.c rename to Examples/MAX32665/Bluetooth/BLE_dats/stack_dats.c diff --git a/Examples/MAX32665/BLE_fcc/.cproject b/Examples/MAX32665/Bluetooth/BLE_fcc/.cproject similarity index 100% rename from Examples/MAX32665/BLE_fcc/.cproject rename to Examples/MAX32665/Bluetooth/BLE_fcc/.cproject diff --git a/Examples/MAX32665/BLE_fcc/.project b/Examples/MAX32665/Bluetooth/BLE_fcc/.project similarity index 100% rename from Examples/MAX32665/BLE_fcc/.project rename to Examples/MAX32665/Bluetooth/BLE_fcc/.project diff --git a/Examples/MAX32665/BLE5_ctr/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_fcc/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_fcc/.settings/language.settings.xml diff --git a/Examples/MAX32655/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_fcc/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_fcc/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_fcc/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_fcc/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/README.md diff --git a/Examples/MAX32655/RF_Test/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32655/RF_Test/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Pulse_Train/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Pulse_Train/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_fcc/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_fcc/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_fcc/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_fcc/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_fcc/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_fcc/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_fcc/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_fcc/BLE_fcc.launch b/Examples/MAX32665/Bluetooth/BLE_fcc/BLE_fcc.launch similarity index 100% rename from Examples/MAX32665/BLE_fcc/BLE_fcc.launch rename to Examples/MAX32665/Bluetooth/BLE_fcc/BLE_fcc.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_fcc/Makefile b/Examples/MAX32665/Bluetooth/BLE_fcc/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_fcc/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_fcc/README.md b/Examples/MAX32665/Bluetooth/BLE_fcc/README.md similarity index 100% rename from Examples/MAX32665/BLE_fcc/README.md rename to Examples/MAX32665/Bluetooth/BLE_fcc/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_fcc/main.c b/Examples/MAX32665/Bluetooth/BLE_fcc/main.c new file mode 100644 index 00000000000..1ccc33ea20c --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_fcc/main.c @@ -0,0 +1,581 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief BLE project with simple serial console for FCC testing + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "tmr.h" + +/************************************************************************************************** + Definitions +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define FREQ_HOP_PERIOD_US 20000 + +/* Bluetooth DBB registers */ +#define MXC_R_CONST_OUPUT *((volatile uint16_t *)(0x40052040)) +#define MXC_R_PATTERN_GEN *((volatile uint16_t *)(0x4005203C)) +#define MXC_R_TX_CTRL *((volatile uint16_t *)(0x4005101C)) + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +static uint8_t phy = LL_PHY_LE_1M; +static uint8_t phy_str[16]; +static uint8_t txFreqHopCh; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Physical layer functions. */ +extern void llc_api_set_txpower(int8_t power); +extern void dbb_seq_select_rf_channel(uint32_t rf_channel); +extern uint8_t dbb_seq_get_rfpower(int8_t rf_power); +extern void llc_api_tx_ldo_setup(void); +extern void llc_api_set_phy(uint8_t phy, uint8_t phy_options); + +extern volatile int8_t tx_rfpower_idx; +extern volatile int8_t tx_rfpower_on; + +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPhyStr(void) +{ + switch (phy) { + case LL_TEST_PHY_LE_1M: + default: + memcpy(phy_str, "1M PHY", 7); + break; + case LL_TEST_PHY_LE_2M: + memcpy(phy_str, "2M PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S8: + memcpy(phy_str, "S8 PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S2: + memcpy(phy_str, "S2 PHY", 7); + break; + } + return phy_str; +} + +/*************************************************************************************************/ +/*! + * \fn Timer 2 interrupts handler. + * + * \brief Controls the frequency hopping. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void TMR2_IRQHandler(void) +{ + int res; + + MXC_TMR_TO_Clear(MXC_TMR2); + + /* Start the next channel */ + res = LlEnhancedTxTest(txFreqHopCh++, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + if (res != LL_SUCCESS) + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + + /* Wrap the channels */ + if (txFreqHopCh == 40) + txFreqHopCh = 0; + + /* Restart the timeout */ + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); +} + +/*************************************************************************************************/ +/*! + * \fn Usage statement + * + * \brief Prints the usage statement. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void printUsage(void) +{ + APP_TRACE_INFO0("Usage: "); + APP_TRACE_INFO0(" (0) Transmit on RF channel 0 (2402 MHz)"); + APP_TRACE_INFO0(" (1) Transmit on RF channel 19 (2440 MHz)"); + APP_TRACE_INFO0(" (2) Transmit on RF channel 39 (2480 MHz)"); + APP_TRACE_INFO0(" (3) Receive on RF channel 39 (2480 MHz)"); + APP_TRACE_INFO0(" (4) Set Transmit power"); + APP_TRACE_INFO0(" (5) Enable constant PRBS9 TX"); + APP_TRACE_INFO0(" (6) Disable constant TX -- MUST be called after (5)"); + APP_TRACE_INFO0(" (8) Set PHY"); + APP_TRACE_INFO0(" (9) TX Frequency Hop"); + APP_TRACE_INFO0(" (e) End transmission -- MUST be used after each (0-3, 9)"); + APP_TRACE_INFO0(" (u) Print usage"); +} + +/*************************************************************************************************/ +/*! + * \fn Process the Console RX + * + * \brief State machine for the console inputs. + * + * \param rxByte Character received from the console. + * + * \return None. + */ +/*************************************************************************************************/ +static void processConsoleRX(uint8_t rxByte) +{ + int res; + + /* Holds the state of the command and the parameter */ + static uint8_t cmd = 0; + static uint8_t param = 0; + + /* Determines if the incoming character is a command or a parameter */ + if (cmd == 0) + cmd = rxByte; + else + param = rxByte; + + switch (cmd) { + case '0': + + APP_TRACE_INFO1("Transmit RF channel 0 (2402M), 255 bytes/pkt, 0xPRBS9, %s, forever ..", + getPhyStr()); + res = LlEnhancedTxTest(0, 255, LL_TEST_PKT_TYPE_PRBS9, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '1': + + APP_TRACE_INFO1("Transmit RF channel 19 (2440M), 255 bytes/pkt, 0xPRBS9, %s, forever ..", + getPhyStr()); + res = LlEnhancedTxTest(19, 255, LL_TEST_PKT_TYPE_PRBS9, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '2': + + APP_TRACE_INFO1("Transmit RF channel 39 (2480M), 255 bytes/pkt, 0xPRBS9, %s, forever ..", + getPhyStr()); + res = LlEnhancedTxTest(39, 255, LL_TEST_PKT_TYPE_PRBS9, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '3': + + APP_TRACE_INFO1("Receive RF channel 39 (2480M), %s, forever ..", getPhyStr()); + res = LlEnhancedRxTest(39, phy, 0, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '4': + + if (param == 0) { + APP_TRACE_INFO0("Select transmit power"); + APP_TRACE_INFO0(" 0: -15 dBm"); + APP_TRACE_INFO0(" 1: -10 dBm"); + APP_TRACE_INFO0(" 2: -5 dBm"); + APP_TRACE_INFO0(" 3: -2 dBm"); + APP_TRACE_INFO0(" 4: 0 dBm"); + APP_TRACE_INFO0(" 5: 2 dBm"); + APP_TRACE_INFO0(" 6: 4.5 dBm"); + break; + } + + switch (param) { + case '0': + llc_api_set_txpower(-15); + LlSetAdvTxPower(-15); + APP_TRACE_INFO1("Power set to -15, Amp_coef = %x", dbb_seq_get_rfpower(-15)); + break; + case '1': + llc_api_set_txpower(-10); + LlSetAdvTxPower(-10); + APP_TRACE_INFO1("Power set to -10, Amp_coef = %x", dbb_seq_get_rfpower(-10)); + break; + case '2': + llc_api_set_txpower(-5); + LlSetAdvTxPower(-5); + APP_TRACE_INFO1("Power set to -5, Amp_coef = %x", dbb_seq_get_rfpower(-5)); + break; + case '3': + llc_api_set_txpower(-2); + LlSetAdvTxPower(-2); + APP_TRACE_INFO1("Power set to -2, Amp_coef = %x", dbb_seq_get_rfpower(-2)); + break; + case '4': + llc_api_set_txpower(0); + LlSetAdvTxPower(0); + APP_TRACE_INFO1("Power set to 0, Amp_coef = %x", dbb_seq_get_rfpower(0)); + break; + case '5': + llc_api_set_txpower(2); + LlSetAdvTxPower(2); + APP_TRACE_INFO1("Power set to 2, Amp_coef = %x", dbb_seq_get_rfpower(2)); + break; + case '6': + llc_api_set_txpower(4); + LlSetAdvTxPower(4); + APP_TRACE_INFO1("Power set to 4.5, Amp_coef = %x", dbb_seq_get_rfpower(4)); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + cmd = 0; + param = 0; + break; + + case '5': + if (param == 0) { + APP_TRACE_INFO0("Select transmit channel"); + APP_TRACE_INFO0(" 0: 0 (2402M)"); + APP_TRACE_INFO0(" 1: 19 (2440M)"); + APP_TRACE_INFO0(" 2: 33 (2468M)"); + APP_TRACE_INFO0(" 3: 36 (2474M)"); + APP_TRACE_INFO0(" 4: 39 (2480M)"); + break; + } + + switch (param) { + case '0': + dbb_seq_select_rf_channel(0); + APP_TRACE_INFO0("Channel set to 0 (2402M)"); + break; + case '1': + dbb_seq_select_rf_channel(19); + APP_TRACE_INFO0("Channel set to 19 (2440M)"); + break; + case '2': + dbb_seq_select_rf_channel(33); + APP_TRACE_INFO0("Channel set to 33 (2468M)"); + break; + case '3': + dbb_seq_select_rf_channel(36); + APP_TRACE_INFO0("Channel set to 36 (2474M)"); + break; + case '4': + dbb_seq_select_rf_channel(39); + APP_TRACE_INFO0("Channel set to 39 (2480M)"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + + APP_TRACE_INFO0("Starting PRBS9 TX"); + + PalBbEnable(); + + llc_api_tx_ldo_setup(); + + /* Enable constant TX */ + MXC_R_TX_CTRL = 0x1; + + /* Enable pattern generator, set PRBS-9 */ + MXC_R_CONST_OUPUT = 0x0; + MXC_R_PATTERN_GEN = 0x4B; + + cmd = 0; + param = 0; + break; + + case '6': + APP_TRACE_INFO0("Disabling TX"); + + /* Disable constant TX */ + MXC_R_TX_CTRL = 0x2; + MXC_R_PATTERN_GEN = 0x48; + + PalBbDisable(); + + cmd = 0; + break; + + case '8': + if (param == 0) { + /* Set the PHY */ + APP_TRACE_INFO0("Select PHY"); + APP_TRACE_INFO0("1: 1M"); + APP_TRACE_INFO0("2: 2M"); + APP_TRACE_INFO0("3: S8"); + APP_TRACE_INFO0("4: S2"); + break; + } + + switch (param) { + case '1': + phy = LL_TEST_PHY_LE_1M; + APP_TRACE_INFO0("PHY set to 1M"); + break; + case '2': + phy = LL_TEST_PHY_LE_2M; + APP_TRACE_INFO0("PHY set to 2M"); + break; + case '3': + phy = LL_TEST_PHY_LE_CODED_S8; + APP_TRACE_INFO0("PHY set to S8"); + break; + case '4': + phy = LL_TEST_PHY_LE_CODED_S2; + APP_TRACE_INFO0("PHY set to S2"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + + llc_api_set_phy(phy, BB_PHY_OPTIONS_DEFAULT); + + cmd = 0; + param = 0; + break; + case '9': + /* Frequency hopping TX */ + APP_TRACE_INFO0("Starting frequency hopping"); + NVIC_EnableIRQ(TMR2_IRQn); + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); + cmd = 0; + break; + + case 'E': + case 'e': + + APP_TRACE_INFO0("End test"); + MXC_TMR_Stop(MXC_TMR2); + LlEndTest(NULL); + cmd = 0; + break; + + case 'U': + case 'u': + printUsage(); + cmd = 0; + break; + + default: + APP_TRACE_INFO0("Invalid selection"); + cmd = 0; + param = 0; + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.1 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; +#if (BT_VER > 9) + /* Use single pool for data buffers. */ + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) + eventPending = WsfTokenService(); +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) + eventPending = LhciSnifferHandler(); +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + + /* Register the UART RX request */ + WsfBufIoUartRegister(processConsoleRX); + + printUsage(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE_fcc/project.mk b/Examples/MAX32665/Bluetooth/BLE_fcc/project.mk similarity index 100% rename from Examples/MAX32665/BLE_fcc/project.mk rename to Examples/MAX32665/Bluetooth/BLE_fcc/project.mk diff --git a/Examples/MAX32665/BLE_fit/.cproject b/Examples/MAX32665/Bluetooth/BLE_fit/.cproject similarity index 100% rename from Examples/MAX32665/BLE_fit/.cproject rename to Examples/MAX32665/Bluetooth/BLE_fit/.cproject diff --git a/Examples/MAX32665/BLE_fit/.project b/Examples/MAX32665/Bluetooth/BLE_fit/.project similarity index 100% rename from Examples/MAX32665/BLE_fit/.project rename to Examples/MAX32665/Bluetooth/BLE_fit/.project diff --git a/Examples/MAX32665/BLE_FreeRTOS/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_fit/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_fit/.settings/language.settings.xml diff --git a/Examples/MAX32655/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32655/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_fit/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_fit/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_fit/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_fit/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_fit/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_fit/.vscode/README.md diff --git a/Examples/MAX32665/BLE4_ctr/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_fit/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_fit/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/RTC/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_fit/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/RTC/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_fit/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_fit/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_fit/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_fit/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_fit/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_fit/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_fit/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_fit/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_fit/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_fit/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_fit/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_fit/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_fit/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_fit/BLE_fit.launch b/Examples/MAX32665/Bluetooth/BLE_fit/BLE_fit.launch similarity index 100% rename from Examples/MAX32665/BLE_fit/BLE_fit.launch rename to Examples/MAX32665/Bluetooth/BLE_fit/BLE_fit.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_fit/Makefile b/Examples/MAX32665/Bluetooth/BLE_fit/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_fit/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_fit/README.md b/Examples/MAX32665/Bluetooth/BLE_fit/README.md similarity index 100% rename from Examples/MAX32665/BLE_fit/README.md rename to Examples/MAX32665/Bluetooth/BLE_fit/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_fit/fit_api.h b/Examples/MAX32665/Bluetooth/BLE_fit/fit_api.h new file mode 100644 index 00000000000..462764bf85e --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_fit/fit_api.h @@ -0,0 +1,83 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Fitness sample application interface. + * + * Copyright (c) 2011-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_FIT_FIT_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_FIT_FIT_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +#ifndef FIT_CONN_MAX +#define FIT_CONN_MAX 1 +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void FitStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_FIT_FIT_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_fit/fit_main.c b/Examples/MAX32665/Bluetooth/BLE_fit/fit_main.c new file mode 100644 index 00000000000..36ed8feb7c7 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_fit/fit_main.c @@ -0,0 +1,805 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Fitness sample application for the following profiles: + * Heart Rate profile + * + * Copyright (c) 2011-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "hci_api.h" +#include "dm_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "app_hw.h" +#include "app_main.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_hrs.h" +#include "svc_dis.h" +#include "svc_batt.h" +#include "svc_rscs.h" +#include "gatt/gatt_api.h" +#include "bas/bas_api.h" +#include "hrps/hrps_api.h" +#include "rscp/rscp_api.h" +#include "fit_api.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! WSF message event starting value */ +#define FIT_MSG_START 0xA0 + +/* Default Running Speed and Cadence Measurement period (seconds) */ +#define FIT_DEFAULT_RSCM_PERIOD 1 + +/*! WSF message event enumeration */ +enum { + FIT_HR_TIMER_IND = FIT_MSG_START, /*! Heart rate measurement timer expired */ + FIT_BATT_TIMER_IND, /*! Battery measurement timer expired */ + FIT_RUNNING_TIMER_IND /*! Running speed and cadence measurement timer expired */ +}; + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/************************************************************************************************** + Data Types +**************************************************************************************************/ + +/*! Application message type */ +typedef union { + wsfMsgHdr_t hdr; + dmEvt_t dm; + attsCccEvt_t ccc; + attEvt_t att; +} fitMsg_t; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t fitAdvCfg = { + { 60000, 0, 0 }, /*! Advertising durations in ms */ + { 800, 0, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t fitSlaveCfg = { + FIT_CONN_MAX, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t fitSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + 0, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t fitUpdateCfg = { + 6000, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + 640, /*! Minimum connection interval in 1.25ms units */ + 800, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 900, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! heart rate measurement configuration */ +static const hrpsCfg_t fitHrpsCfg = { + 2000 /*! Measurement timer expiration period in ms */ +}; + +/*! battery measurement configuration */ +static const basCfg_t fitBasCfg = { + 30, /*! Battery measurement timer expiration period in seconds */ + 1, /*! Perform battery measurement after this many timer periods */ + 100 /*! Send battery level notification to peer when below this level. */ +}; + +/*! SMP security parameter configuration */ +static const smpCfg_t fitSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t fitAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! tx power */ + 2, /*! length */ + DM_ADV_TYPE_TX_POWER, /*! AD type */ + 0, /*! tx power */ + + /*! service UUID list */ + 9, /*! length */ + DM_ADV_TYPE_16_UUID, /*! AD type */ + UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), + UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), UINT16_TO_BYTES(ATT_UUID_BATTERY_SERVICE) +}; + +/*! scan data, discoverable mode */ +static const uint8_t fitScanDataDisc[] = { + /*! device name */ + 4, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'F', 'i', 't' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! enumeration of client characteristic configuration descriptors */ +enum { + FIT_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + FIT_HRS_HRM_CCC_IDX, /*! Heart rate service, heart rate monitor characteristic */ + FIT_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ + FIT_RSCS_SM_CCC_IDX, /*! Runninc speed and cadence measurement characteristic */ + FIT_NUM_CCC_IDX +}; + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* FIT_GATT_SC_CCC_IDX */ + { HRS_HRM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_HRS_HRM_CCC_IDX */ + { BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_BATT_LVL_CCC_IDX */ + { RSCS_RSM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* FIT_RSCS_SM_CCC_IDX */ +}; + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! WSF handler ID */ +wsfHandlerId_t fitHandlerId; + +/* WSF Timer to send running speed and cadence measurement data */ +wsfTimer_t fitRscmTimer; + +/* Running Speed and Cadence Measurement period - Can be changed at runtime to vary period */ +static uint16_t fitRscmPeriod = FIT_DEFAULT_RSCM_PERIOD; + +/* Heart Rate Monitor feature flags */ +static uint8_t fitHrmFlags = CH_HRM_FLAGS_VALUE_8BIT | CH_HRM_FLAGS_ENERGY_EXP; + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitCccCback(attsCccEvt_t *pEvt) +{ + attsCccEvt_t *pMsg; + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + } + + if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { + memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! +* \brief Send a Running Speed and Cadence Measurement Notification. +* +* \param connId connection ID +* +* \return None. +*/ +/*************************************************************************************************/ +static void fitSendRunningSpeedMeasurement(dmConnId_t connId) +{ + if (AttsCccEnabled(connId, FIT_RSCS_SM_CCC_IDX)) { + static uint8_t walk_run = 1; + + /* TODO: Set Running Speed and Cadence Measurement Parameters */ + + RscpsSetParameter(RSCP_SM_PARAM_SPEED, 1); + RscpsSetParameter(RSCP_SM_PARAM_CADENCE, 2); + RscpsSetParameter(RSCP_SM_PARAM_STRIDE_LENGTH, 3); + RscpsSetParameter(RSCP_SM_PARAM_TOTAL_DISTANCE, 4); + + /* Toggle running/walking */ + walk_run = walk_run ? 0 : 1; + RscpsSetParameter(RSCP_SM_PARAM_STATUS, walk_run); + + RscpsSendSpeedMeasurement(connId); + } + + /* Configure and start timer to send the next measurement */ + fitRscmTimer.msg.event = FIT_RUNNING_TIMER_IND; + fitRscmTimer.msg.status = FIT_RSCS_SM_CCC_IDX; + fitRscmTimer.handlerId = fitHandlerId; + fitRscmTimer.msg.param = connId; + + WsfTimerStartSec(&fitRscmTimer, fitRscmPeriod); +} + +/*************************************************************************************************/ +/*! + * \brief Process CCC state change. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitProcCccState(fitMsg_t *pMsg) +{ + APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, + pMsg->ccc.idx); + + /* handle heart rate measurement CCC */ + if (pMsg->ccc.idx == FIT_HRS_HRM_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + HrpsMeasStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_HR_TIMER_IND, FIT_HRS_HRM_CCC_IDX); + } else { + HrpsMeasStop((dmConnId_t)pMsg->ccc.hdr.param); + } + return; + } + + /* handle running speed and cadence measurement CCC */ + if (pMsg->ccc.idx == FIT_RSCS_SM_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); + } else { + WsfTimerStop(&fitRscmTimer); + } + return; + } + + /* handle battery level CCC */ + if (pMsg->ccc.idx == FIT_BATT_LVL_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + BasMeasBattStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_BATT_TIMER_IND, + FIT_BATT_LVL_CCC_IDX); + } else { + BasMeasBattStop((dmConnId_t)pMsg->ccc.hdr.param); + } + return; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection close. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitClose(fitMsg_t *pMsg) +{ + /* stop heart rate measurement */ + HrpsMeasStop((dmConnId_t)pMsg->hdr.param); + + /* stop battery measurement */ + BasMeasBattStop((dmConnId_t)pMsg->hdr.param); + + /* Stop running speed and cadence timer */ + WsfTimerStop(&fitRscmTimer); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitSetup(fitMsg_t *pMsg) +{ + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(fitAdvDataDisc), (uint8_t *)fitAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(fitScanDataDisc), (uint8_t *)fitScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, 0, NULL); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, 0, NULL); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitBtnCback(uint8_t btn) +{ + dmConnId_t connId; + static uint8_t heartRate = 78; /* for testing/demonstration */ + + /* button actions when connected */ + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* increment the heart rate */ + AppHwHrmTest(++heartRate); + break; + + case APP_UI_BTN_1_MED: + break; + + case APP_UI_BTN_1_LONG: + AppConnClose(connId); + break; + + case APP_UI_BTN_2_SHORT: + /* decrement the heart rate */ + AppHwHrmTest(--heartRate); + break; + + case APP_UI_BTN_2_MED: + /* Toggle HRM Sensor DET flags */ + if (!(fitHrmFlags & (CH_HRM_FLAGS_SENSOR_DET | CH_HRM_FLAGS_SENSOR_NOT_DET))) { + fitHrmFlags |= CH_HRM_FLAGS_SENSOR_DET; + } else if (fitHrmFlags & CH_HRM_FLAGS_SENSOR_DET) { + fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_DET; + fitHrmFlags |= CH_HRM_FLAGS_SENSOR_NOT_DET; + } else { + fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_NOT_DET; + } + + HrpsSetFlags(fitHrmFlags); + break; + + case APP_UI_BTN_2_LONG: + /* Toggle HRM RR Interval feature flag */ + if (fitHrmFlags & CH_HRM_FLAGS_RR_INTERVAL) { + fitHrmFlags &= ~CH_HRM_FLAGS_RR_INTERVAL; + } else { + fitHrmFlags |= CH_HRM_FLAGS_RR_INTERVAL; + } + + HrpsSetFlags(fitHrmFlags); + break; + + default: + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start or restart advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* enter discoverable and bondable mode */ + AppSetBondable(TRUE); + AppAdvStart(APP_MODE_DISCOVERABLE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + + /* restart advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_2_SHORT: + /* Toggle HRM Flag for 8 and 16 bit values */ + if (fitHrmFlags & CH_HRM_FLAGS_VALUE_16BIT) { + fitHrmFlags &= ~CH_HRM_FLAGS_VALUE_16BIT; + } else { + fitHrmFlags |= CH_HRM_FLAGS_VALUE_16BIT; + } + + HrpsSetFlags(fitHrmFlags); + break; + + default: + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitProcMsg(fitMsg_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case FIT_RUNNING_TIMER_IND: + fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); + break; + + case FIT_HR_TIMER_IND: + HrpsProcMsg(&pMsg->hdr); + break; + + case FIT_BATT_TIMER_IND: + BasProcMsg(&pMsg->hdr); + break; + + case ATTS_HANDLE_VALUE_CNF: + HrpsProcMsg(&pMsg->hdr); + BasProcMsg(&pMsg->hdr); + break; + + case ATTS_CCC_STATE_IND: + fitProcCccState(pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + fitSetup(pMsg); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_SET_START_IND: + uiEvent = APP_UI_ADV_SET_START_IND; + break; + + case DM_ADV_SET_STOP_IND: + uiEvent = APP_UI_ADV_SET_STOP_IND; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + HrpsProcMsg(&pMsg->hdr); + BasProcMsg(&pMsg->hdr); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + fitClose(pMsg); + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + AppHandlePasskey(&pMsg->dm.authReq); + break; + + case DM_SEC_ECC_KEY_IND: + DmSecSetEccKey(&pMsg->dm.eccMsg.data.key); + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->dm.cnfInd); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + + case DM_HW_ERROR_IND: + uiEvent = APP_UI_HW_ERROR; + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("FitHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &fitScanDataDisc[2]); + + /* store handler ID */ + fitHandlerId = handlerId; + + /* Set configuration pointers */ + pAppAdvCfg = (appAdvCfg_t *)&fitAdvCfg; + pAppSlaveCfg = (appSlaveCfg_t *)&fitSlaveCfg; + pAppSecCfg = (appSecCfg_t *)&fitSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&fitUpdateCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set stack configuration pointers */ + pSmpCfg = (smpCfg_t *)&fitSmpCfg; + + /* initialize heart rate profile sensor */ + HrpsInit(handlerId, (hrpsCfg_t *)&fitHrpsCfg); + HrpsSetFlags(fitHrmFlags); + + /* initialize battery service server */ + BasInit(handlerId, (basCfg_t *)&fitBasCfg); +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Fit got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + fitProcMsg((fitMsg_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void FitStart(void) +{ + /* Register for stack callbacks */ + DmRegister(fitDmCback); + DmConnRegister(DM_CLIENT_ID_APP, fitDmCback); + AttRegister(fitAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(FIT_NUM_CCC_IDX, (attsCccSet_t *)fitCccSet, fitCccCback); + + /* Register for app framework callbacks */ + AppUiBtnRegister(fitBtnCback); + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcHrsCbackRegister(NULL, HrpsWriteCback); + SvcHrsAddGroup(); + SvcDisAddGroup(); + SvcBattCbackRegister(BasReadCback, NULL); + SvcBattAddGroup(); + SvcRscsAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(FIT_GATT_SC_CCC_IDX); + + /* Set running speed and cadence features */ + RscpsSetFeatures(RSCS_ALL_FEATURES); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_fit/main.c b/Examples/MAX32665/Bluetooth/BLE_fit/main.c new file mode 100644 index 00000000000..6650ab98da2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_fit/main.c @@ -0,0 +1,279 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth fitness device. Showcases heart rate, battery level, running speed and cadence. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc.) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#include "fit_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitFit(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitFit(); + FitStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE_fit/project.mk b/Examples/MAX32665/Bluetooth/BLE_fit/project.mk similarity index 100% rename from Examples/MAX32665/BLE_fit/project.mk rename to Examples/MAX32665/Bluetooth/BLE_fit/project.mk diff --git a/Examples/MAX32665/BLE_fit/stack_fit.c b/Examples/MAX32665/Bluetooth/BLE_fit/stack_fit.c similarity index 100% rename from Examples/MAX32665/BLE_fit/stack_fit.c rename to Examples/MAX32665/Bluetooth/BLE_fit/stack_fit.c diff --git a/Examples/MAX32665/BLE_mcs/.cproject b/Examples/MAX32665/Bluetooth/BLE_mcs/.cproject similarity index 100% rename from Examples/MAX32665/BLE_mcs/.cproject rename to Examples/MAX32665/Bluetooth/BLE_mcs/.cproject diff --git a/Examples/MAX32665/BLE_mcs/.project b/Examples/MAX32665/Bluetooth/BLE_mcs/.project similarity index 100% rename from Examples/MAX32665/BLE_mcs/.project rename to Examples/MAX32665/Bluetooth/BLE_mcs/.project diff --git a/Examples/MAX32665/BLE_LR_Central/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_mcs/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_mcs/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_mcs/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_mcs/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_mcs/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_mcs/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/README.md diff --git a/Examples/MAX32665/BLE5_ctr/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SDHC_FAT/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/SDHC_FAT/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_mcs/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_mcs/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_mcs/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_mcs/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_mcs/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_mcs/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_mcs/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_mcs/BLE_mcs.launch b/Examples/MAX32665/Bluetooth/BLE_mcs/BLE_mcs.launch similarity index 100% rename from Examples/MAX32665/BLE_mcs/BLE_mcs.launch rename to Examples/MAX32665/Bluetooth/BLE_mcs/BLE_mcs.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/Makefile b/Examples/MAX32665/Bluetooth/BLE_mcs/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_mcs/README.md b/Examples/MAX32665/Bluetooth/BLE_mcs/README.md similarity index 100% rename from Examples/MAX32665/BLE_mcs/README.md rename to Examples/MAX32665/Bluetooth/BLE_mcs/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/main.c b/Examples/MAX32665/Bluetooth/BLE_mcs/main.c new file mode 100644 index 00000000000..f8efc506743 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/main.c @@ -0,0 +1,238 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Maxim custom Bluetooth profile and service that advertises as "MCS" and accepts + * connection requests. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#include "mcs_app_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitMcsApp(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); +#endif + + StackInitMcsApp(); + McsAppStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/mcs_app_api.h b/Examples/MAX32665/Bluetooth/BLE_mcs/mcs_app_api.h new file mode 100644 index 00000000000..21b790a2d0b --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/mcs_app_api.h @@ -0,0 +1,88 @@ +/*************************************************************************************************/ +/*! + * \file mcs_app_api.h + * + * \brief Maxim Custom Service server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! WSF message event starting value */ +#define MCS_MSG_START 0xA0 + +/*! WSF message event enumeration */ +enum { + MCS_BUTTON_TIMER_IND = MCS_MSG_START, /*/< Button state BLE notify timer event */ + MCS_BUTTON_PRESS_DUR /*/< Button press duration timer event */ +}; + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/mcs_app_main.c b/Examples/MAX32665/Bluetooth/BLE_mcs/mcs_app_main.c new file mode 100644 index 00000000000..d94603bd1bc --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/mcs_app_main.c @@ -0,0 +1,795 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_mcs.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "mcs_app_api.h" +#include "mcs_api.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + MCS_APP_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + MCS_APP_BT_CCC_IDX, /*! MCS characteristic */ + MCS_APP_NUM_CCC_IDX +}; + +/************************************************************************************************** + Data Types +**************************************************************************************************/ + +/*! Application message type */ +typedef union { + wsfMsgHdr_t hdr; + dmEvt_t dm; + attsCccEvt_t ccc; + attEvt_t att; +} mcsMsg_t; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t mcsAppAdvCfg = { + { 30000, 0, 0 }, /*! Advertising durations in ms */ + { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t mcsAppSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t mcsAppSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t mcsAppSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t mcsAppSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t mcsAppUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + 640, /*! Minimum connection interval in 1.25ms units */ + 800, /*! Maximum connection interval in 1.25ms units */ + 3, /*! Connection latency */ + 900, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t mcsAppAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t mcsAppAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t mcsAppScanDataDisc[] = { + /*! device name */ + 4, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'M', + 'C', + 'S', +}; + +/*! Mcs measurement configuration */ +static const mcsCfg_t mcsMcsCfg = { + 2, /*! Mcs measurement timer expiration period in seconds */ + 1, /*! Perform mcs measurement after this many timer periods */ + 3 /*! Send mcs level notification to peer when below this level. */ +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t mcsAppCccSet[MCS_APP_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, + DM_SEC_LEVEL_NONE }, /* MCS_APP_GATT_SC_CCC_IDX */ + { MCS_BUTTON_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* MCS_BUTTON_SM_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} mcsAppCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *mcsAppOobCfg; + +extern void setAdvTxPower(void); +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (mcsAppSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (mcsAppOobCfg == NULL) { + mcsAppOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (mcsAppOobCfg) { + Calc128Cpy(mcsAppOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(mcsAppOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + attsCccEvt_t *pMsg; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } + + if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { + memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process CCC state change. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppProcCccState(mcsMsg_t *pMsg) +{ + APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, + pMsg->ccc.idx); +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void mcsAppPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void mcsAppPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection close. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppClose(dmEvt_t *pMsg) +{ + /* stop mcs measurement */ + McsButtonCheckStop((dmConnId_t)pMsg->hdr.param); +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void mcsAppDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + mcsAppCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(mcsAppAdvDataDisc), + (uint8_t *)mcsAppAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(mcsAppScanDataDisc), + (uint8_t *)mcsAppScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(mcsAppAdvDataDisc), + (uint8_t *)mcsAppAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(mcsAppScanDataDisc), + (uint8_t *)mcsAppScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + mcsAppSetup(pMsg); + } else { + mcsAppCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (mcsAppCb.restoringResList) { + /* Set the advertising peer address. */ + mcsAppPrivAddDevToResList(mcsAppCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(mcsAppCb.resListRestoreHdl); + + if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + mcsAppSetup(pMsg); + } + } else { + mcsAppPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTS_CCC_STATE_IND: + mcsAppProcCccState((mcsMsg_t *)pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + mcsAppRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + mcsAppClose(pMsg); + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill mcsAppOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (mcsAppOobCfg != NULL) { + DmSecSetOob(connId, mcsAppOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + mcsAppPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + mcsAppPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("McsAppHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &mcsAppScanDataDisc[2]); + + /* store handler ID */ + mcsAppCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&mcsAppSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&mcsAppAdvCfg; + pAppSecCfg = (appSecCfg_t *)&mcsAppSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&mcsAppUpdateCfg; + pSmpCfg = (smpCfg_t *)&mcsAppSmpCfg; + pAttCfg = (attCfg_t *)&mcsAppAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* initialize mcs server */ + McsInit(handlerId, (mcsCfg_t *)&mcsMcsCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppBtnCback(uint8_t btn) +{ + APP_TRACE_INFO1("mcsAppBtnCback; %d", btn); + McsSetFeatures(btn); +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("McsApp got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("McsApp got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + mcsAppProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppStart(void) +{ + /* Register for stack callbacks */ + DmRegister(mcsAppDmCback); + DmConnRegister(DM_CLIENT_ID_APP, mcsAppDmCback); + AttRegister(mcsAppAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(MCS_APP_NUM_CCC_IDX, (attsCccSet_t *)mcsAppCccSet, mcsAppCccCback); + + SvcMcsCbackRegister(NULL, McsWriteCback); + SvcMcsAddGroup(); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(MCS_APP_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(mcsAppBtnCback); + + WsfNvmInit(); + + WsfBufDiagRegister(mcsAppWsfBufDiagnostics); + + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h b/Examples/MAX32665/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h new file mode 100644 index 00000000000..3529a01454c --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h @@ -0,0 +1,121 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ + +#include "wsf_types.h" +#include "att_api.h" +#include "app_api.h" +#include "svc_mcs.h" +#include "board.h" +#include "led.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Data Types +**************************************************************************************************/ +/*! \brief Maxim custom service configurable parameters */ +typedef struct { + wsfTimerTicks_t period; /*!< \brief Button timer expiration period in seconds */ + uint16_t count; /*!< \brief Perform button after this many timer periods */ + uint8_t threshold; /*!< \brief Send button notification to peer when below this level. */ +} mcsCfg_t; + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for maxim custom service Use this function as a parameter + * to SvcMcsCbackRegister(). + * + * \param connId DM connection identifier. + * \param handle ATT handle. + * \param operation ATT operation. + * \param offset Write offset. + * \param len Write length. + * \param pValue Value to write. + * \param pAttr Attribute to write. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr); + +/*************************************************************************************************/ +/*! + * \brief Setting characteristic value and send the button value to the peer device. + * + * \param features The button value. + * + * \return None. + */ +/*************************************************************************************************/ +void McsSetFeatures(uint8_t features); + +/*************************************************************************************************/ +/*! + * \brief Initialize the mcs server. + * + * \param handlerId WSF handler ID of the application using this service. + * \param pCfg mcs configurable parameters. + * + * \return None. + */ +/*************************************************************************************************/ +void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg); + +/*************************************************************************************************/ +/*! + * \brief Start periodic mcs button state read. This function starts a timer to perform + * periodic button read. + * + * \param connId DM connection identifier. + * \param timerEvt WSF event designated by the application for the timer. + * \param mcsCccIdx Index of mcs level CCC descriptor in CCC descriptor handle table. + * \param btnState State of the push button. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState); + +/*************************************************************************************************/ +/*! + * \brief Stop periodic mcs button read. + * + * \param connId DM connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStop(dmConnId_t connId); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c b/Examples/MAX32665/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c new file mode 100644 index 00000000000..c90378f5767 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c @@ -0,0 +1,212 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "mcs_api.h" +#include "app_ui.h" +#include "pal_led.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +#ifndef LED_RED +#define LED_RED 0 +#endif + +#ifndef LED_GREEN +#define LED_GREEN 1 +#endif + +#ifndef LED_BLUE +#define LED_BLUE LED_GREEN +#endif + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! \brief Connection control block */ +typedef struct { + dmConnId_t connId; /*! \brief Connection ID */ + bool_t mcsToSend; /*! \brief mcs measurement ready to be sent on this channel */ + uint8_t sentMcsBtnState; /*! \brief value of last sent mcs button state */ +} mcsConn_t; + +/*! \brief Control block */ +static struct { + mcsConn_t conn[DM_CONN_MAX]; /*! \brief connection control block */ + wsfTimer_t btnStateChkTimer; /*! \brief periodic check timer */ + mcsCfg_t cfg; /*! \brief configurable parameters */ + uint16_t currCount; /*! \brief current measurement period count */ + bool_t txReady; /*! \brief TRUE if ready to send notifications */ + uint8_t btnState; /*! \brief value of last button state */ +} mcsCb; + +/*************************************************************************************************/ +/*! + * \brief Return TRUE if no connections with active measurements. + * + * \return TRUE if no connections active. + */ +/*************************************************************************************************/ +static bool_t mcsNoConnActive(void) +{ + mcsConn_t *pConn = mcsCb.conn; + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++, pConn++) { + if (pConn->connId != DM_CONN_ID_NONE) { + return FALSE; + } + } + return TRUE; +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for maxim custom service. Use this function as a parameter + * to SvcMcsCbackRegister(). + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + AttsSetAttr(handle, sizeof(*pValue), (uint8_t *)pValue); + /* Turn LED on if non-zero value was written */ + bool on = *pValue != 0; + + /* Get LED ID */ + uint8_t ch = 0; + switch (handle) { + case MCS_R_HDL: + ch = LED_RED; + break; + case MCS_B_HDL: + ch = LED_BLUE; + break; + case MCS_G_HDL: + ch = LED_GREEN; + break; + } + + if (on) + LED_On(ch); + else + LED_Off(ch); + return ATT_SUCCESS; +} + +/*************************************************************************************************/ + +/*! + * \brief Setting characteristic value and send the button value to the peer device + * + * \return None. + */ +/*************************************************************************************************/ +void McsSetFeatures(uint8_t features) +{ + AttsSetAttr(MCS_BUTTON_HDL, sizeof(features), + (uint8_t *)&features); /*Setting mcsButtonVal characteristic value */ + dmConnId_t connId = AppConnIsOpen(); /*Getting connected */ + if (connId != DM_CONN_ID_NONE) { + AttsHandleValueNtf(connId, MCS_BUTTON_HDL, sizeof(features), + (uint8_t *)&features); /*Send notify */ + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the mcs server. + * + * \param handerId WSF handler ID of the application using this service. + * \param pCfg mcs configurable parameters. + * + * \return None. + */ +/*************************************************************************************************/ +void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg) +{ + mcsCb.btnStateChkTimer.handlerId = handlerId; + mcsCb.cfg = *pCfg; + + /* De-init the PAL LEDs so we can control them here */ + PalLedDeInit(); +} + +/*************************************************************************************************/ +/*! + * \brief Start periodic mcs button state check. This function starts a timer to perform + * periodic button checks. + * + * \param connId DM connection identifier. + * \param timerEvt WSF event designated by the application for the timer. + * \param mcsCccIdx Index of mcs button state CCC descriptor in CCC descriptor handle table. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState) +{ + /* if this is first connection */ + if (mcsNoConnActive()) { + /* initialize control block */ + mcsCb.btnStateChkTimer.msg.event = timerEvt; + mcsCb.btnStateChkTimer.msg.status = mcsCccIdx; + mcsCb.btnState = btnState; + mcsCb.currCount = mcsCb.cfg.count; + + /* start timer */ + WsfTimerStartSec(&mcsCb.btnStateChkTimer, mcsCb.cfg.period); + } + + /* set conn id and last sent button level */ + mcsCb.conn[connId - 1].connId = connId; + mcsCb.conn[connId - 1].sentMcsBtnState = btnState; +} + +/*************************************************************************************************/ +/*! + * \brief Stop periodic button state check. + * + * \param connId DM connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStop(dmConnId_t connId) +{ + /* clear connection */ + mcsCb.conn[connId - 1].connId = DM_CONN_ID_NONE; + mcsCb.conn[connId - 1].mcsToSend = FALSE; + + /* if no remaining connections */ + if (mcsNoConnActive()) { + /* stop timer */ + WsfTimerStop(&mcsCb.btnStateChkTimer); + } +} diff --git a/Examples/MAX32665/BLE_mcs/project.mk b/Examples/MAX32665/Bluetooth/BLE_mcs/project.mk similarity index 100% rename from Examples/MAX32665/BLE_mcs/project.mk rename to Examples/MAX32665/Bluetooth/BLE_mcs/project.mk diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/services/svc_mcs.c b/Examples/MAX32665/Bluetooth/BLE_mcs/services/svc_mcs.c new file mode 100644 index 00000000000..2c4791ee2c9 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/services/svc_mcs.c @@ -0,0 +1,178 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "svc_mcs.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Characteristic read permissions */ +#ifndef MCS_SEC_PERMIT_READ +#define MCS_SEC_PERMIT_READ SVC_SEC_PERMIT_READ +#endif + +/*! Characteristic write permissions */ +#ifndef MCS_SEC_PERMIT_WRITE +#define MCS_SEC_PERMIT_WRITE SVC_SEC_PERMIT_WRITE +#endif + +/************************************************************************************************** + Service variables +**************************************************************************************************/ + +/*Service variables declaration*/ +const uint8_t attMcsSvcUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_SERVICE }; + +/*Characteristic variables declaration*/ +const uint8_t svcMcsButtonUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_BUTTON }; +const uint8_t svcMcsRUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_R }; +const uint8_t svcMcsGUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_G }; +const uint8_t svcMcsBUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_B }; + +static const uint8_t mcsValSvc[] = { ATT_UUID_MCS_SERVICE }; +static const uint16_t mcsLenSvc = sizeof(mcsValSvc); + +static const uint8_t mcsButtonValCh[] = { ATT_PROP_READ | ATT_PROP_NOTIFY, + UINT16_TO_BYTES(MCS_BUTTON_HDL), ATT_UUID_MCS_BUTTON }; +static const uint16_t mcsButtonLenCh = sizeof(mcsButtonValCh); + +static const uint8_t mcsRValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_R_HDL), + ATT_UUID_MCS_R }; +static const uint16_t mcsRLenCh = sizeof(mcsRValCh); + +static const uint8_t mcsGValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_G_HDL), + ATT_UUID_MCS_G }; +static const uint16_t mcsGLenCh = sizeof(mcsGValCh); + +static const uint8_t mcsBValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_B_HDL), + ATT_UUID_MCS_B }; +static const uint16_t mcsBLenCh = sizeof(mcsBValCh); + +/*Characteristic values declaration*/ +static uint8_t mcsButtonVal[] = { 0 }; +static const uint16_t mcsButtonValLen = sizeof(mcsButtonVal); + +static uint8_t mcsButtonValChCcc[] = { UINT16_TO_BYTES(0x0000) }; +static const uint16_t mcsButtonLenValChCcc = sizeof(mcsButtonValChCcc); + +static uint8_t mcsRVal[] = { 0 }; +static const uint16_t mcsRValLen = sizeof(mcsRVal); + +static uint8_t mcsGVal[] = { 0 }; +static const uint16_t mcsGValLen = sizeof(mcsGVal); + +static uint8_t mcsBVal[] = { 0 }; +static const uint16_t mcsBValLen = sizeof(mcsBVal); + +/************************************************************************************************** + Maxim Custom Service group +**************************************************************************************************/ + +/* Attribute list for mcs group */ +static const attsAttr_t mcsList[] = { + /*-----------------------------*/ + /* Service declaration */ + { attPrimSvcUuid, (uint8_t *)mcsValSvc, (uint16_t *)&mcsLenSvc, sizeof(mcsValSvc), 0, + MCS_SEC_PERMIT_READ }, + + /*----------------------------*/ + /* Button characteristic declaration */ + { attChUuid, (uint8_t *)mcsButtonValCh, (uint16_t *)&mcsButtonLenCh, sizeof(mcsButtonValCh), 0, + MCS_SEC_PERMIT_READ }, + /* Button characteristic value */ + { svcMcsButtonUuid, (uint8_t *)mcsButtonVal, (uint16_t *)&mcsButtonValLen, sizeof(mcsButtonVal), + 0, MCS_SEC_PERMIT_READ }, + /*Button characteristic value descriptor*/ + { attCliChCfgUuid, (uint8_t *)mcsButtonValChCcc, (uint16_t *)&mcsButtonLenValChCcc, + sizeof(mcsButtonValChCcc), ATTS_SET_CCC, (ATTS_PERMIT_READ | SVC_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* R characteristic declaration */ + { attChUuid, (uint8_t *)mcsRValCh, (uint16_t *)&mcsRLenCh, sizeof(mcsRValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* R characteristic characteristic value */ + { svcMcsRUuid, (uint8_t *)mcsRVal, (uint16_t *)&mcsRValLen, sizeof(mcsRVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* G characteristic declaration */ + { attChUuid, (uint8_t *)mcsGValCh, (uint16_t *)&mcsGLenCh, sizeof(mcsGValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* G characteristic characteristic value */ + { svcMcsGUuid, (uint8_t *)mcsGVal, (uint16_t *)&mcsGValLen, sizeof(mcsGVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* B characteristic declaration */ + { attChUuid, (uint8_t *)mcsBValCh, (uint16_t *)&mcsBLenCh, sizeof(mcsBValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* B characteristic value */ + { svcMcsBUuid, (uint8_t *)mcsBVal, (uint16_t *)&mcsBValLen, sizeof(mcsBVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) } +}; + +/* Test group structure */ +static attsGroup_t svcMcsGroup = { NULL, (attsAttr_t *)mcsList, NULL, + NULL, MCS_START_HDL, MCS_END_HDL }; + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsAddGroup(void) +{ + AttsAddGroup(&svcMcsGroup); +} + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsRemoveGroup(void) +{ + AttsRemoveGroup(MCS_START_HDL); +} + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) +{ + svcMcsGroup.readCback = readCback; + svcMcsGroup.writeCback = writeCback; +} diff --git a/Examples/MAX32665/Bluetooth/BLE_mcs/services/svc_mcs.h b/Examples/MAX32665/Bluetooth/BLE_mcs/services/svc_mcs.h new file mode 100644 index 00000000000..f8e08e44c0d --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_mcs/services/svc_mcs.h @@ -0,0 +1,128 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ + +#include "wsf_types.h" +#include "att_api.h" +#include "util/bstream.h" +#include "svc_cfg.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*! \addtogroup Mcs + * \{ */ +/************************************************************************************************** + Macros +**************************************************************************************************/ +/*MCS service UUID*/ +#define ATT_UUID_MCS_SERVICE \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7D, 0x56, 0xFC, \ + 0x85 /*!< \brief Test Service UUID*/ + +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_MCS_BUTTON \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7E, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_R \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7F, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_G \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x80, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_B \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x81, 0x56, 0xFC, 0x85 + +/************************************************************************************************** + Handle Ranges +**************************************************************************************************/ + +/** \name Maxim custom Service Handles + * + */ +/**@{*/ +#define MCS_START_HDL 0x1500 /*!< \brief Start handle. */ +#define MCS_END_HDL (MCS_MAX_HDL - 1) /*!< \brief End handle. */ + +/************************************************************************************************** + Handles +**************************************************************************************************/ + +/*! \brief Maxim custom Service Handles */ +enum { + MCS_SVC_HDL = MCS_START_HDL, /*!< \brief Maxim custom service declaration */ + MCS_BUTTON_CH_HDL, /*!< \brief Button characteristic */ + MCS_BUTTON_HDL, /*!< \brief Button*/ + MCS_BUTTON_CH_CCC_HDL, /*!< \brief Button CCCD*/ + MCS_R_CH_HDL, /*!< \brief R characteristic */ + MCS_R_HDL, /*!< \brief R*/ + MCS_G_CH_HDL, /*!< \brief G characteristic */ + MCS_G_HDL, /*!< \brief G*/ + MCS_B_CH_HDL, /*!< \brief B characteristic */ + MCS_B_HDL, /*!< \brief B*/ + MCS_MAX_HDL /*!< \brief Maximum handle. */ +}; +/**@}*/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsAddGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsRemoveGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); + +/*! \} */ /* TEST_SERVICE */ + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ diff --git a/Examples/MAX32665/BLE_mcs/stack_mcs_app.c b/Examples/MAX32665/Bluetooth/BLE_mcs/stack_mcs_app.c similarity index 100% rename from Examples/MAX32665/BLE_mcs/stack_mcs_app.c rename to Examples/MAX32665/Bluetooth/BLE_mcs/stack_mcs_app.c diff --git a/Examples/MAX32665/BLE_otac/.cproject b/Examples/MAX32665/Bluetooth/BLE_otac/.cproject similarity index 100% rename from Examples/MAX32665/BLE_otac/.cproject rename to Examples/MAX32665/Bluetooth/BLE_otac/.cproject diff --git a/Examples/MAX32665/BLE_otac/.project b/Examples/MAX32665/Bluetooth/BLE_otac/.project similarity index 100% rename from Examples/MAX32665/BLE_otac/.project rename to Examples/MAX32665/Bluetooth/BLE_otac/.project diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_otac/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_otac/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_otac/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_otac/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_otac/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_otac/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_otac/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_otac/.vscode/README.md diff --git a/Examples/MAX32665/BLE_FreeRTOS/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_otac/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_otac/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SDHC_Raw/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_otac/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/SDHC_Raw/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_otac/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_otac/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_otac/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_otac/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_otac/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_otac/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_otac/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_otac/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_otac/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_otac/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_otac/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_otac/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_otac/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_otac/BLE_otac.launch b/Examples/MAX32665/Bluetooth/BLE_otac/BLE_otac.launch similarity index 100% rename from Examples/MAX32665/BLE_otac/BLE_otac.launch rename to Examples/MAX32665/Bluetooth/BLE_otac/BLE_otac.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_otac/Makefile b/Examples/MAX32665/Bluetooth/BLE_otac/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otac/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_otac/README.md b/Examples/MAX32665/Bluetooth/BLE_otac/README.md similarity index 100% rename from Examples/MAX32665/BLE_otac/README.md rename to Examples/MAX32665/Bluetooth/BLE_otac/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_otac/datc_api.h b/Examples/MAX32665/Bluetooth/BLE_otac/datc_api.h new file mode 100644 index 00000000000..e211c1c44fd --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otac/datc_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAC_DATC_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAC_DATC_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAC_DATC_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_otac/datc_main.c b/Examples/MAX32665/Bluetooth/BLE_otac/datc_main.c new file mode 100644 index 00000000000..391ad8e7cea --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otac/datc_main.c @@ -0,0 +1,1420 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application for Nordic-ble. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "dm_api.h" +#include "dm_priv.h" +#include "gap/gap_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_cfg.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_core.h" +#include "svc_ch.h" +#include "gatt/gatt_api.h" +#include "wpc/wpc_api.h" +#include "datc_api.h" +#include "util/calc128.h" +#include "wsf_efs.h" +#include "wdxc/wdxc_api.h" +#include "wdxc/wdxc_main.h" +#include "wdx_defs.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** +Macros +**************************************************************************************************/ +#if (BT_VER > 8) +/* PHY Test Modes */ +#define DATC_PHY_1M 1 +#define DATC_PHY_2M 2 +#define DATC_PHY_CODED 3 +#endif /* BT_VER */ + +/* Size of WDXC file discovery dataset */ +#define DATC_WDXC_MAX_FILES 4 + +/*! WSF message event starting value */ +#define DATC_MSG_START 0xA0 + +/*! Data rate timer period in seconds */ +#define DATC_WDXS_DATA_RATE_TIMEOUT 4 + +extern uint32_t _binary_fw_update_bin_start; +extern uint32_t _binary_fw_update_bin_end; + +#define FILE_SIZE \ + (uint32_t)(((uint32_t)&_binary_fw_update_bin_end) - ((uint32_t)&_binary_fw_update_bin_start)) +#define BLOCK_OFFSET_INIT 0x0 +#define BLOCK_SIZE 224 +#define CRC32_LEN 4 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +#define SCAN_START_EVT 0x99 +#define SCAN_START_MS 500 + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; +fileHeader_t fileHeader; +/*! application control block */ +struct { + uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ + wsfHandlerId_t handlerId; /*! WSF hander ID */ + bool_t scanning; /*! TRUE if scanning */ + bool_t autoConnect; /*! TRUE if auto-connecting */ + uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ + uint8_t hdlListLen; /*! Cached handle list length */ + uint8_t btnConnId; /*! The index of the connection ID for button presses */ + bool_t sendingFile[DM_CONN_MAX]; + bool_t fileVerified[DM_CONN_MAX]; + uint32_t blockOffset[DM_CONN_MAX]; + wsfEfsFileInfo_t fileList[DM_CONN_MAX][DATC_WDXC_MAX_FILES]; /*! Buffer to hold WDXC file list */ + uint8_t *fileData; /*! Pointer for accessing the fw_update image*/ + uint32_t fileCRC; /*! Holds the CRC32 value of the file */ + uint32_t blockSize; + + appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ + wsfTimer_t scanTimer; /* Timer for starting the scanner */ +} datcCb; + +/*! connection control block */ +typedef struct { + appDbHdl_t dbHdl; /*! Device database record handle type */ + uint8_t addrType; /*! Type of address of device to connect to */ + bdAddr_t addr; /*! Address of device to connect to */ + bool_t doConnect; /*! TRUE to issue connect on scan complete */ +} datcConnInfo_t; + +datcConnInfo_t datcConnInfo; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for master */ +static const appMasterCfg_t datcMasterCfg = { + 96, /*! The scan interval, in 0.625 ms units */ + 48, /*! The scan window, in 0.625 ms units */ + 0, /*! The scan duration in ms */ + DM_DISC_MODE_NONE, /*! The GAP discovery mode */ + DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datcSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datcSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datcSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! Connection parameters */ +static const hciConnSpec_t datcConnCfg = { + 6, /*! Minimum connection interval in 1.25ms units */ + 6, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 0, /*! Unused */ + 0 /*! Unused */ +}; + +/*! Configurable parameters for service and characteristic discovery */ +static const appDiscCfg_t datcDiscCfg = { + FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ + TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ +}; + +static const appCfg_t datcAppCfg = { + FALSE, /*! TRUE to abort service discovery if service not found */ + TRUE /*! TRUE to disconnect if ATT transaction times out */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datcAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, + 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; + +/************************************************************************************************** + ATT Client Discovery Data +**************************************************************************************************/ + +/*! Discovery states: enumeration of services to be discovered */ +enum { + DATC_DISC_GATT_SVC, /*! GATT service */ + DATC_DISC_GAP_SVC, /*! GAP service */ + DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ + DATC_DISC_WDXC_SCV, /*! Arm Ltd. Wireless Data Exchange service */ + DATC_DISC_SVC_MAX /*! Discovery complete */ +}; + +/*! the Client handle list, datcCb.hdlList[], is set as follows: + * + * ------------------------------- <- DATC_DISC_GATT_START + * | GATT svc changed handle | + * ------------------------------- + * | GATT svc changed ccc handle | + * ------------------------------- <- DATC_DISC_GAP_START + * | GAP central addr res handle | + * ------------------------------- + * | GAP RPA Only handle | + * ------------------------------- <- DATC_DISC_WP_START + * | WP handles | + * | ... | + * ------------------------------- + */ + +/*! Start of each service's handles in the the handle list */ +#define DATC_DISC_GATT_START 0 +#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) +#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) +#define DATC_DISC_WDXC_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) +#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_WDXC_START + WDXC_HDL_LIST_LEN) + +/*! Pointers into handle list for each service's handles */ +static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; +static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWdxHdlList[DM_CONN_MAX]; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datcOobCfg; + +/************************************************************************************************** + ATT Client Configuration Data +**************************************************************************************************/ + +/* + * Data for configuration after service discovery + */ + +/* Default value for CCC indications */ +const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; + +/* Default value for CCC notifications */ +const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; + +/* Default value for Client Supported Features (enable Robust Caching) */ +const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; + +/* List of characteristics to configure after service discovery */ +static const attcDiscCfg_t datcDiscCfgList[] = { + /* Write: GATT service changed ccc descriptor */ + { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: GATT client supported features */ + { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: Proprietary data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, + + /* Write: WDXC ccc descriptors */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_DC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTD_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_AU_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, +}; + +/* Characteristic configuration list length */ +#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) + +/* sanity check: make sure configuration list length is <= handle list length */ +WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Reset the OTA state. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcResetOTAState(void) +{ + int i; + for (i = 0; i < DM_CONN_MAX; i++) { + datcCb.sendingFile[i] = FALSE; + datcCb.fileVerified[i] = FALSE; + datcCb.blockOffset[i] = BLOCK_OFFSET_INIT; + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + uint16_t reportLen; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datcSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datcOobCfg == NULL) { + datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datcOobCfg) { + Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + reportLen = pDmEvt->scanReport.len; + } else { + reportLen = 0; + } + + if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { + memcpy(pMsg, pDmEvt, len); + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); + memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); + } + WsfMsgSend(datcCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datcCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning handler. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanningHandler(void) +{ + datcCb.autoConnect = TRUE; + datcConnInfo.doConnect = FALSE; + AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanning(void) +{ + /* Start the scanning start timer */ + WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan start. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStart(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan stop. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStop(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + + /* Open connection */ + if (datcConnInfo.doConnect) { + AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); + datcConnInfo.doConnect = FALSE; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Handle a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanReport(dmEvt_t *pMsg) +{ + uint8_t *pData; + appDbHdl_t dbHdl; + bool_t connect = FALSE; + + /* disregard if not scanning or autoconnecting */ + if (!datcCb.scanning || !datcCb.autoConnect) { + return; + } + + /* if we already have a bond with this device then connect to it */ + if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != + APP_DB_HDL_NONE) { + /* if this is a directed advertisement where the initiator address is an RPA */ + if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { + /* resolve direct address to see if it's addressed to us */ + AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); + } else { + connect = TRUE; + } + } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { + /* if the peer device uses an RPA */ + /* resolve advertiser's RPA to see if we already have a bond with this device */ + AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); + } + /* Search for "OTAS" name */ + if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL)) { + /* check length and device name */ + if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'O') && + (pData[DM_AD_DATA_IDX + 1] == 'T') && (pData[DM_AD_DATA_IDX + 2] == 'A') && + (pData[DM_AD_DATA_IDX + 3] == 'S')) { + connect = TRUE; + } + } + + if (connect) { + /* stop scanning and connect */ + datcCb.autoConnect = FALSE; + AppScanStop(); + + /* Store peer information for connect on scan stop */ + datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); + memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); + datcConnInfo.dbHdl = dbHdl; + datcConnInfo.doConnect = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection open. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcOpen(dmEvt_t *pMsg) +{ + datcResetOTAState(); +} + +/*************************************************************************************************/ +/*! + * \brief Process a received ATT notification. + * + * \param pMsg Pointer to ATT callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcValueNtf(attEvt_t *pMsg) +{ + /* print received message */ + APP_TRACE_INFO0((const char *)pMsg->pValue); +} + +/*************************************************************************************************/ +/*! + * \brief Set up procedures that need to be performed after device reset. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSetup(dmEvt_t *pMsg) +{ + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + datcConnInfo.doConnect = FALSE; + datcCb.restoringResList = FALSE; + + DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datcSetup(pMsg); + } else { + datcCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datcCb.restoringResList) { + /* Retore next device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datcSetup(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief GAP service discovery has completed. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscGapCmpl(dmConnId_t connId) +{ + appDbHdl_t dbHdl; + + /* if RPA Only attribute found on peer device */ + if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { + /* update DB */ + AppDbSetPeerRpao(dbHdl, TRUE); + AppDbNvmStorePeerRpao(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief WDXC File Transfer Data Callback. + * + * \param connId Connection ID. + * \param fileHdl Handle of the file. + * \param len length of pData in bytes. + * \param pData File data. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcWdxcFtdCallback(dmConnId_t connId, uint16_t fileHdl, uint16_t len, uint8_t *pData) +{ +} + +/*************************************************************************************************/ +/*! + * \brief Send file header. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void sendFileHeader(dmConnId_t connId) +{ + if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(fileHeader_t), + (uint8_t *)&fileHeader); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send a block of file data to the peer. Combines the address with the data. + * + * \param connId Connection identifier. + * \param address Address of the block. + * \param len Length of the data. + * \param pData Pointer to the data to send. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSendBlock(dmConnId_t connId, uint32_t address, uint32_t len, uint8_t *pData) +{ + uint8_t *addrData = WsfBufAlloc(datcCb.blockSize + sizeof(uint32_t)); + + /* Insert the address into the block */ + memcpy(addrData, &address, sizeof(uint32_t)); + memcpy(&addrData[sizeof(uint32_t)], pData, len); + + // APP_TRACE_INFO2("Sending addr: 0x%08X len: 0x%04X", address, len); + + /* Send the address and data, add the length of the address to the length */ + WdxcFtdSendBlock(connId, len + sizeof(uint32_t), addrData); + + /* Clear out the buf->free field to prevent un-intended assertion in WsfBufFree */ + addrData[4] = 0; + addrData[5] = 0; + addrData[6] = 0; + addrData[7] = 0; + + WsfBufFree(addrData); + + /* Increment the address of the data that we're sending */ + datcCb.blockOffset[connId - 1] += len; +} + +/*************************************************************************************************/ +/*! + * \brief WDXC File Transfer Control Callback. + * + * \param connId Connection ID. + * \param op Control operation. + * \param status Status of operation. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcWdxcFtcCallback(dmConnId_t connId, uint16_t handle, uint8_t op, uint8_t status) +{ + APP_TRACE_INFO2("FTC op: %d status: %d", op, status); + + if (op == WDX_FTC_OP_PUT_RSP) { + /* Start timer */ + APP_TRACE_INFO0(">>> Starting file transfer <<<\n"); + + MXC_TMR_SW_Start(MXC_TMR2); + datcCb.sendingFile[connId - 1] = TRUE; + uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; + datcSendBlock(connId, address, datcCb.blockSize, (uint8_t *)&datcCb.fileData[address]); + + } else if (op == WDX_FTC_OP_EOF) { + if (handle == WDX_FLIST_HANDLE) { + /* on discovery completion we can send the header */ + sendFileHeader(connId); + /* File discovery complete */ + APP_TRACE_INFO0(">>> File discovery complete <<<\n"); + } else { + /* Stop timer, calculate time and Bps */ + uint32_t usec = MXC_TMR_SW_Stop(MXC_TMR2); + APP_TRACE_INFO1(">>> File transfer complete %d us <<<\n", usec); + APP_TRACE_INFO3("file_size = %d usec = %d bps = %d\n", FILE_SIZE, usec, + ((FILE_SIZE * 1000) / (usec / 1000)) * 8); + datcCb.sendingFile[connId - 1] = FALSE; + } + } else if (op == WDX_FTC_OP_VERIFY_RSP) { + APP_TRACE_INFO1(">>> Verify complete status: %d <<<\n", status); + if (status) + datcCb.fileVerified[connId - 1] = FALSE; + else + datcCb.fileVerified[connId - 1] = TRUE; + } +} +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcBtnCback(uint8_t btn) +{ + dmConnId_t connId = datcCb.btnConnId; + dmConnId_t connIdList[DM_CONN_MAX]; + uint8_t numConnections = AppConnOpenList(connIdList); + + /* button actions when connected */ + if (numConnections > 0) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (numConnections < DM_CONN_MAX - 1) { + if (datcCb.scanning) { /* if scanning cancel scanning */ + AppScanStop(); + } else if (!datcCb.autoConnect) { /* else auto connect */ + datcRestartScanning(); + } + } else { + APP_TRACE_INFO0("datcBtnCback: Max connections reached."); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID used in button presses */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* disconnect */ + AppConnClose(connId); + break; + +#if (BT_VER > 8) + case APP_UI_BTN_1_EX_LONG: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + case APP_UI_BTN_2_SHORT: + if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { + WdxcDiscoverFiles(connId, datcCb.fileList[connId - 1], DATC_WDXC_MAX_FILES); + datcCb.blockSize = AttGetMtu(connId); + + /* Subtract for the address and message overhead */ + datcCb.blockSize = datcCb.blockSize - 8; + if (datcCb.blockSize > BLOCK_SIZE) { + datcCb.blockSize = BLOCK_SIZE; + } + } + break; + + case APP_UI_BTN_2_MED: + if ((datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) && + (datcCb.sendingFile[connId - 1] == FALSE)) { + /* Start the WDXC data stream */ + datcCb.blockOffset[connId - 1] = BLOCK_OFFSET_INIT; + + /* Put file request */ + WdxcFtcSendPutReq(connId, datcCb.fileList[connId - 1][0].handle, BLOCK_OFFSET_INIT, + FILE_SIZE, BLOCK_OFFSET_INIT + FILE_SIZE, 0); + } + break; + + case APP_UI_BTN_2_LONG: + if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { + /* Send verification request */ + WdxcFtcSendVerifyFile(connId, datcCb.fileList[connId - 1][0].handle); + } + break; + + case APP_UI_BTN_2_EX_LONG: + if (datcCb.fileVerified[connId - 1]) { + /* Send Disconnect and Reset request to apply firmware update */ + WdxcDcSendDisconnectAndReset(connId); + datcCb.fileVerified[connId - 1] = FALSE; + } + break; + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (datcCb.scanning) { /* if scanning cancel scanning */ + AppScanStop(); + } else if (!datcCb.autoConnect) { /* else auto connect */ + datcRestartScanning(); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID buttons apply to */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: + /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ + SvcCoreGapAddRpaoCh(); + break; + + case APP_UI_BTN_2_EX_LONG: + /* enable device privacy -- start generating local RPAs every 15 minutes */ + DmDevPrivStart(15 * 60); + + /* set Scanning filter policy to accept directed advertisements with RPAs */ + DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Discovery callback. + * + * \param connId Connection identifier. + * \param status Service or configuration status. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscCback(dmConnId_t connId, uint8_t status) +{ + switch (status) { + case APP_DISC_INIT: + /* set handle list when initialization requested */ + AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_READ_DATABASE_HASH: + /* Read peer's database hash */ + AppDiscReadDatabaseHash(connId); + break; + + case APP_DISC_SEC_REQUIRED: + /* initiate security */ + AppMasterSecurityReq(connId); + break; + + case APP_DISC_START: + /* initialize discovery state */ + datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; + + /* store possible change in cache by hash */ + AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); + + /* discover GATT service */ + GattDiscover(connId, pDatcGattHdlList[connId - 1]); + break; + + case APP_DISC_FAILED: + if (pAppCfg->abortDisc) { + /* if discovery failed for proprietary data service then disconnect */ + if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { + AppConnClose(connId); + break; + } + } + /* Else falls through. */ + + case APP_DISC_CMPL: + /* next discovery state */ + datcCb.discState[connId - 1]++; + + if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { + /* discover GAP service */ + GapDiscover(connId, pDatcGapHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { + /* discover proprietary data service */ + WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WDXC_SCV) { + WdxcWdxsDiscover(connId, pDatcWdxHdlList[connId - 1]); + } else { + /* discovery complete */ + AppDiscComplete(connId, APP_DISC_CMPL); + + /* GAP service discovery completed */ + datcDiscGapCmpl(connId); + + /* store cached handle list in NVM */ + AppDbNvmStoreHdlList(AppDbGetHdl(connId)); + + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + } + break; + + case APP_DISC_CFG_START: + case APP_DISC_CFG_CONN_START: + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_CFG_CMPL: + AppDiscComplete(connId, status); + break; + + default: + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTC_HANDLE_VALUE_NTF: + datcValueNtf((attEvt_t *)pMsg); + break; + + case ATTC_WRITE_CMD_RSP: + case ATTC_WRITE_RSP: { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + if ((((attEvt_t *)pMsg)->hdr.status == ATT_SUCCESS) && + (((attEvt_t *)pMsg)->handle == pDatcWdxHdlList[connId - 1][WDXC_FTD_HDL_IDX])) { + if (datcCb.sendingFile[connId - 1] == TRUE) { + uint32_t tempBlockSize; + if ((datcCb.blockOffset[connId - 1] + datcCb.blockSize) > FILE_SIZE) { + tempBlockSize = FILE_SIZE - datcCb.blockOffset[connId - 1]; + } else { + tempBlockSize = datcCb.blockSize; + } + + /* Keep writing the file */ + uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; + datcSendBlock(connId, address, tempBlockSize, (uint8_t *)&datcCb.fileData[address]); + } + } + break; + } + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + setAdvTxPower(); + datcRestoreResolvingList(pMsg); + datcRestartScanning(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_SCAN_START_IND: + datcScanStart(pMsg); + uiEvent = APP_UI_SCAN_START; + break; + + case DM_SCAN_STOP_IND: + datcScanStop(pMsg); + uiEvent = APP_UI_SCAN_STOP; + break; + + case DM_SCAN_REPORT_IND: + datcScanReport(pMsg); + break; + + case DM_CONN_OPEN_IND: + datcOpen(pMsg); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + datcRestartScanning(); + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datcOobCfg != NULL) { + DmSecSetOob(connId, datcOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datcPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case SCAN_START_EVT: + datcRestartScanningHandler(); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatcHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + + /* store handler ID */ + datcCb.handlerId = handlerId; + + /* set handle list length */ + datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; + + datcCb.btnConnId = 1; + /* Set configuration pointers */ + pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; + pAppSecCfg = (appSecCfg_t *)&datcSecCfg; + pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; + pAppCfg = (appCfg_t *)&datcAppCfg; + pSmpCfg = (smpCfg_t *)&datcSmpCfg; + pAttCfg = (attCfg_t *)&datcAttCfg; + + /* Initialize application framework */ + AppMasterInit(); + AppDiscInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Set the pointer for the fw_update image */ + datcCb.fileData = (uint8_t *)&_binary_fw_update_bin_start; + + /* Calculate the update image CRC */ + datcCb.fileCRC = 0; + crc32(datcCb.fileData, FILE_SIZE, &datcCb.fileCRC); + fileHeader.fileCRC = datcCb.fileCRC; + fileHeader.fileLen = FILE_SIZE; + APP_TRACE_INFO2("File addr: %08X file size: %08X", (uint32_t)datcCb.fileData, FILE_SIZE); + APP_TRACE_INFO1("Update File CRC: 0x%08X", datcCb.fileCRC); + + datcResetOTAState(); + + /* Setup scan start timer */ + datcCb.scanTimer.handlerId = handlerId; + datcCb.scanTimer.msg.event = SCAN_START_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + /* process ATT messages */ + if (pMsg->event <= ATT_CBACK_END) { + /* process discovery-related ATT messages */ + AppDiscProcAttMsg((attEvt_t *)pMsg); + + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ + /* process advertising and connection-related messages */ + AppMasterProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppMasterSecProcDmMsg((dmEvt_t *)pMsg); + + /* process discovery-related messages */ + AppDiscProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datcProcMsg((dmEvt_t *)pMsg); + + /* perform wdxc operations */ + WdxcProcMsg((wsfMsgHdr_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the pointers into the handle list. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcInitSvcHdlList() +{ + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++) { + /*! Pointers into handle list for each service's handles */ + pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; + pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; + pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; + pDatcWdxHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WDXC_START]; + } +} +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void) +{ + /* Initialize handle pointers */ + datcInitSvcHdlList(); + + /* Register for stack callbacks */ + DmRegister(datcDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); + AttRegister(datcAttCback); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datcBtnCback); + + /* Register for app framework discovery callbacks */ + AppDiscRegister(datcDiscCback); + + /* Initialize attribute server database */ + SvcCoreAddGroup(); + + /* Initialize the WDXC and set the WDXC application callbacks */ + WdxcInit(datcWdxcFtdCallback, datcWdxcFtcCallback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_otac/fw_update.S b/Examples/MAX32665/Bluetooth/BLE_otac/fw_update.S new file mode 100644 index 00000000000..59a340ddc68 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otac/fw_update.S @@ -0,0 +1,60 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +.section .text + +/* Include the fw_update binary file, include global symbols we can use at link time */ +_binary_fw_update_bin_start: +.incbin "build/buildfw/fw_update.bin" +_binary_fw_update_bin_end: + +.globl _binary_fw_update_bin_start +.globl _binary_fw_update_bin_end diff --git a/Examples/MAX32665/Bluetooth/BLE_otac/main.c b/Examples/MAX32665/Bluetooth/BLE_otac/main.c new file mode 100644 index 00000000000..dfeed8d3355 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otac/main.c @@ -0,0 +1,280 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth data client that scans for and connects to advertisers with the name of "OTAS". + * Demonstrates Over-the-Air (OTA) firmware updates. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#include "datc_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDatc(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDatc(); + DatcStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/BLE_otac/project.mk b/Examples/MAX32665/Bluetooth/BLE_otac/project.mk similarity index 100% rename from Examples/MAX32665/BLE_otac/project.mk rename to Examples/MAX32665/Bluetooth/BLE_otac/project.mk diff --git a/Examples/MAX32665/BLE_datc/stack_datc.c b/Examples/MAX32665/Bluetooth/BLE_otac/stack_datc.c similarity index 100% rename from Examples/MAX32665/BLE_datc/stack_datc.c rename to Examples/MAX32665/Bluetooth/BLE_otac/stack_datc.c diff --git a/Examples/MAX32665/BLE_otas/.cproject b/Examples/MAX32665/Bluetooth/BLE_otas/.cproject similarity index 100% rename from Examples/MAX32665/BLE_otas/.cproject rename to Examples/MAX32665/Bluetooth/BLE_otas/.cproject diff --git a/Examples/MAX32665/BLE_otas/.project b/Examples/MAX32665/Bluetooth/BLE_otas/.project similarity index 100% rename from Examples/MAX32665/BLE_otas/.project rename to Examples/MAX32665/Bluetooth/BLE_otas/.project diff --git a/Examples/MAX32665/BLE_datc/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_otas/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_datc/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_otas/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_otas/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_otas/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_otas/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_otas/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_otas/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_otas/.vscode/README.md diff --git a/Examples/MAX32665/BLE_LR_Central/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_otas/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_otas/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SKB/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_otas/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/SKB/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_otas/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_otas/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_otas/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_otas/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_otas/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_otas/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_otas/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_otas/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_otas/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_otas/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_otas/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_otas/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_otas/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_otas/BLE_otas.launch b/Examples/MAX32665/Bluetooth/BLE_otas/BLE_otas.launch similarity index 100% rename from Examples/MAX32665/BLE_otas/BLE_otas.launch rename to Examples/MAX32665/Bluetooth/BLE_otas/BLE_otas.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/Makefile b/Examples/MAX32665/Bluetooth/BLE_otas/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/BLE_otas/README.md b/Examples/MAX32665/Bluetooth/BLE_otas/README.md similarity index 100% rename from Examples/MAX32665/BLE_otas/README.md rename to Examples/MAX32665/Bluetooth/BLE_otas/README.md diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/bl_build.S b/Examples/MAX32665/Bluetooth/BLE_otas/bl_build.S new file mode 100644 index 00000000000..61693b5bc63 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/bl_build.S @@ -0,0 +1,59 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Include the bl binary file, plus a reference for addition into linker script */ +.section .text +_binary_bootloader_bin_start: +.incbin "build/buildbl/bootloader.bin" +_binary_bootloader_bin_end: + +.globl _binary_bootloader_bin_start +.globl _binary_bootloader_bin_end diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/dats_api.h b/Examples/MAX32665/Bluetooth/BLE_otas/dats_api.h new file mode 100644 index 00000000000..4bf8829b6a0 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAS_DATS_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAS_DATS_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/dats_main.c b/Examples/MAX32665/Bluetooth/BLE_otas/dats_main.c new file mode 100644 index 00000000000..f07f4a2766b --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/dats_main.c @@ -0,0 +1,987 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "mxc_device.h" +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "tmr.h" +#include "wsf_efs.h" +#include "svc_wdxs.h" +#include "wdxs/wdxs_api.h" +#include "wdxs/wdxs_main.h" +#include "wdxs/wdxs_stream.h" +#include "wdxs_file.h" +#include "board.h" +#include "flc.h" +#include "wsf_cs.h" +#ifndef OTA_INTERNAL +#include "Ext_Flash.h" +#endif + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_2M 2 +#define DATS_PHY_1M 1 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 100000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + WDXS_DC_CH_CCC_IDX, /*! WDXS DC service, service changed characteristic */ + WDXS_FTC_CH_CCC_IDX, /*! WDXS FTC service, service changed characteristic */ + WDXS_FTD_CH_CCC_IDX, /*! WDXS FTD service, service changed characteristic */ + WDXS_AU_CH_CCC_IDX, /*! WDXS AU service, service changed characteristic */ + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update. set to zero to disable */ + (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'O', + 'T', + 'A', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { WDXS_DC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_DC_CH_CCC_IDX */ + { WDXS_FTC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTC_CH_CCC_IDX */ + { WDXS_FTD_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTD_CH_CCC_IDX */ + { WDXS_AU_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_AU_CH_CCC_IDX */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ +#if (BT_VER > 8) + uint8_t phyMode; /*! PHY Test Mode */ +#endif /* BT_VER */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * \param size Size of message to send. + * \param msg Message to send + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId, uint8_t size, uint8_t *msg) +{ + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, size, msg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + WdxsAttCback(pEvt); +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ + +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + if (len == sizeof(fileHeader_t)) { + uint8_t str[50]; + uint16_t version = WdxsFileGetFirmwareVersion(); + snprintf((char *)str, sizeof(str), ">>> Current fw version: %d.%d <<<", + ((version & 0xFF00) >> 8), version & 0xFF); + fileHeader_t *tmpHeader; + tmpHeader = (fileHeader_t *)pValue; + initHeader(tmpHeader); + datsSendData(connId, sizeof(str), str); + } + return ATT_SUCCESS; +} +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datsOobCfg != NULL) { + DmSecSetOob(connId, datsOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: + + { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } + +#endif /* BT_VER */ + case APP_UI_BTN_2_MED: { + uint16_t version = WdxsFileGetFirmwareVersion(); + APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); + break; + } + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + case APP_UI_BTN_2_MED: { + uint16_t version = WdxsFileGetFirmwareVersion(); + APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); + break; + } + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + + /* process WDXS-related messages */ + WdxsProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Resets the system. + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsResetSystem(void) +{ + APP_TRACE_INFO0("Reseting!"); + /* Wait for the console to finish printing */ + volatile int i; + for (i = 0; i < 0xFFFFF; i++) {} + NVIC_SystemReset(); +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + + /* Initialize the WDXS File */ + WdxsFileInit(); + + /* Set the WDXS CCC Identifiers */ + WdxsSetCccIdx(WDXS_DC_CH_CCC_IDX, WDXS_AU_CH_CCC_IDX, WDXS_FTC_CH_CCC_IDX, WDXS_FTD_CH_CCC_IDX); + +#if (BT_VER > 8) + WdxsPhyInit(); +#endif /* BT_VER */ + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/main.c b/Examples/MAX32665/Bluetooth/BLE_otas/main.c new file mode 100644 index 00000000000..6bd44b24959 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/main.c @@ -0,0 +1,284 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth data server that advertises as "OTAS" and accepts connection requests. + * Demonstrates Over-the-Air (OTA) firmware updates. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" +#include "pal_timer.h" +#include "pal_sys.h" + +#include "dats_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDats(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUT interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(); + PalTimerIRQCallBack(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (PalSharedTimerIsInit()) { + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + } + + /* Stop here to measure the 32 kHz clock */ + /* while(1) {} */ + MXC_RTC_SquareWaveStop(); + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDats(); + DatsStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/ota_external_mem.ld b/Examples/MAX32665/Bluetooth/BLE_otas/ota_external_mem.ld new file mode 100644 index 00000000000..19e3338cff0 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/ota_external_mem.ld @@ -0,0 +1,170 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +BOOTLOADER_LEN = 0x4000; +FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; +FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; +FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; +PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; + +MEMORY { + BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN + FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN + PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8C000 +} + +SECTIONS { + + .bootloader : + { + KEEP(*bootloader.o) + } > BOOT + + .text : + { + _text = .; + KEEP(*(.isr_vector)) + EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ + EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude bootloader code */ + *(.rodata*) /* read-only data: "const" */ + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* C++ Exception handling */ + KEEP(*(.eh_frame*)) + _etext = .; + } > FLASH + + /* it's used for C++ exception handling */ + /* we need to keep this to avoid overlapping */ + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > FLASH + + .data : + { + _data = ALIGN(., 4); + *(.data*) /*read-write initialized data: initialized global variable*/ + *(.flashprog*) /* Flash program */ + + /* These array sections are used by __libc_init_array to call static C++ constructors */ + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + _edata = ALIGN(., 4); + } > SRAM AT>FLASH + __load_data = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _bss = .; + *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ + *(COMMON) + _ebss = ALIGN(., 4); + } > SRAM + + .pal_nvm_db : + { + /* Align to the sector size */ + . = ALIGN(0x2000); + __pal_nvm_db_start__ = .; + . = . + _PAL_NVM_SIZE; + __pal_nvm_db_end__ = .; + } > PAL_NVM_DB + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + *(.stack*) + } > SRAM + + .heap (COPY): + { + . = ALIGN(4); + *(.heap*) + __HeapLimit = ABSOLUTE(__StackLimit); + } > SRAM + + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") +} diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/ota_internal_mem.ld b/Examples/MAX32665/Bluetooth/BLE_otas/ota_internal_mem.ld new file mode 100644 index 00000000000..f6df02e1175 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/ota_internal_mem.ld @@ -0,0 +1,178 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +BOOTLOADER_LEN = 0x4000; +FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; +FLASH_MAIN_ORIGIN = 0x10000000 + BOOTLOADER_LEN; +FLASH_MAIN_LEN = FLASH_SECTION_LEN - _PAL_NVM_SIZE; +PAL_NVM_ORIGIN = FLASH_MAIN_ORIGIN + FLASH_SECTION_LEN - _PAL_NVM_SIZE; + +MEMORY { + BOOT (rx) : ORIGIN = 0x10000000, LENGTH = BOOTLOADER_LEN + FLASH (rx) : ORIGIN = FLASH_MAIN_ORIGIN, LENGTH = FLASH_MAIN_LEN + PAL_NVM_DB (r) : ORIGIN = PAL_NVM_ORIGIN, LENGTH = _PAL_NVM_SIZE + FLASH_UP (rx) : ORIGIN = 0x10080000, LENGTH = FLASH_SECTION_LEN + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8C000 +} + +SECTIONS { + .bootloader : + { + KEEP(*bootloader.o) + } > BOOT + + .text : + { + _text = .; + KEEP(*(.isr_vector)) + EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ + EXCLUDE_FILE (*bootloader.o) *(.text*) /* program code, exclude bootloader code */ + *(.rodata*) /* read-only data: "const" */ + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* C++ Exception handling */ + KEEP(*(.eh_frame*)) + _etext = .; + } > FLASH + + .flash_update (NOLOAD) : + { + _flash_update = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash_update = ALIGN(., 4); + } > FLASH_UP + + + /* it's used for C++ exception handling */ + /* we need to keep this to avoid overlapping */ + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > FLASH + + .data : + { + _data = ALIGN(., 4); + *(.data*) /*read-write initialized data: initialized global variable*/ + *(.flashprog*) /* Flash program */ + + /* These array sections are used by __libc_init_array to call static C++ constructors */ + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + _edata = ALIGN(., 4); + } > SRAM AT>FLASH + __load_data = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _bss = .; + *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ + *(COMMON) + _ebss = ALIGN(., 4); + } > SRAM + + .pal_nvm_db : + { + /* Align to the sector size */ + . = ALIGN(0x2000); + __pal_nvm_db_start__ = .; + . = . + _PAL_NVM_SIZE; + __pal_nvm_db_end__ = .; + } > PAL_NVM_DB + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + *(.stack*) + } > SRAM + + .heap (COPY): + { + . = ALIGN(4); + *(.heap*) + __HeapLimit = ABSOLUTE(__StackLimit); + } > SRAM + + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") +} diff --git a/Examples/MAX32665/BLE_otas/project.mk b/Examples/MAX32665/Bluetooth/BLE_otas/project.mk similarity index 100% rename from Examples/MAX32665/BLE_otas/project.mk rename to Examples/MAX32665/Bluetooth/BLE_otas/project.mk diff --git a/Examples/MAX32665/BLE_otas/stack_dats.c b/Examples/MAX32665/Bluetooth/BLE_otas/stack_dats.c similarity index 100% rename from Examples/MAX32665/BLE_otas/stack_dats.c rename to Examples/MAX32665/Bluetooth/BLE_otas/stack_dats.c diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file.h b/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file.h new file mode 100644 index 00000000000..68343f0bd24 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file.h @@ -0,0 +1,98 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; + +/*! \addtogroup WIRELESS_DATA_EXCHANGE_PROFILE + * \{ */ + +/************************************************************************************************** + Constant Definitions +**************************************************************************************************/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Initialize the WDXS File. + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void); + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void); + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void); + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of the WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void); +/*************************************************************************************************/ +/*! + * \brief set the length of the expected file + * + * \return None. + */ +/*************************************************************************************************/ +void initHeader(fileHeader_t *header); + +/*! \} */ /* WIRELESS_DATA_EXCHANGE_PROFILE */ + +#ifdef __cplusplus +} +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file_ext.c b/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file_ext.c new file mode 100644 index 00000000000..5b61e51e81a --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file_ext.c @@ -0,0 +1,435 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "mxc_device.h" +#include "wsf_types.h" +#include "util/wstr.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_efs.h" +#include "wsf_cs.h" +#include "wsf_msg.h" +#include "util/bstream.h" +#include "svc_wdxs.h" +#include "wdxs/wdxs_api.h" +#include "wdxs/wdxs_main.h" +#include "wdxs_file.h" +#include "dm_api.h" +#include "att_api.h" +#include "app_api.h" +#include "flc.h" +#include "Ext_Flash.h" + +#ifndef FW_VERSION_MAJOR +#define FW_VERSION_MAJOR 1 +#define FW_VERSION_MINOR 0 +#endif + +#define EXT_FLASH_PAGE_SIZE 256 +#define EXT_FLASH_SECTOR_SIZE ((uint32_t)0x0001000) +#define HEADER_LOCATION ((uint32_t)0x00000000) +#define ERASE_DELAY 50 // ms + +static volatile uint32_t verifyLen; +static volatile uint8_t *lastWriteAddr; +static volatile uint32_t lastWriteLen; +static uint32_t crcResult; + +static uint32_t eraseAddress, eraseSectors; +wsfHandlerId_t eraseHandlerId; +wsfTimer_t eraseTimer; + +/* Prototypes for file functions */ +static uint8_t wdxsFileInitMedia(void); +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); + +static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; +wsfEfsHandle_t otaFileHdl; +#define HEADER_LEN (sizeof(fileHeader_t)) +/* Use the second half of the flash space for scratch space */ +static const wsfEfsMedia_t WDXS_FileMedia = { + /* uint32_t startAddress; Start address + size of header. */ ( + (uint32_t)0x00000000), + /* uint32_t endAddress; End address. */ ((uint32_t)0x01000000), + /* uint32_t pageSize; Page size. */ EXT_FLASH_PAGE_SIZE, + /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, + /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, + /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, + /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, + /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle +}; + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for file erase. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (eraseSectors) { + APP_TRACE_INFO1(">>> Erasing address 0x%x in external flash <<<", eraseAddress); + + /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ + Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); + eraseSectors--; + eraseAddress += EXT_FLASH_SECTOR_SIZE; + + /* Continue next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + } else { + /* Erase is complete */ + APP_TRACE_INFO0(">>> External flash erase complete <<<"); + wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); + } +} + +/*************************************************************************************************/ +/*! + * \brief Media Init function, called when media is registered. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileInitMedia(void) +{ + int err = 0; + MXC_FLC_Init(); + err += Ext_Flash_Init(); + err += Ext_Flash_Quad(1); + if (err) { + APP_TRACE_INFO0("Error initializing external flash"); + } + + APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); + + /* Setup the erase handler */ + eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); + eraseTimer.handlerId = eraseHandlerId; + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File erase function. Must be page aligned. + * + * \param pAddress Address in media to start erasing. + * \param size Number of bytes to erase. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) +{ + uint32_t address32 = (uint32_t)address; + uint32_t sectors = 0; // hard coded for now because image has no len data + + if (fileHeader.fileLen != 0) { + /* calculate sectors needed to erase */ + sectors = (fileHeader.fileLen / EXT_FLASH_SECTOR_SIZE) + 1; + APP_TRACE_INFO1(">>> Initiating erase of %d 4K sectors in external flash <<<", sectors); + + /* Setup the erase handler variables */ + eraseAddress = address32; + eraseSectors = sectors; + + /* Initiate the erase */ + Ext_Flash_Erase(eraseAddress, Ext_Flash_Erase_4K); + eraseSectors--; + eraseAddress += EXT_FLASH_SECTOR_SIZE; + + /* Wait ERASE_DELAY ms before staring next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + + /* TODO: We will have to disconnect the completion of this with the + erase actually being complete */ + + return WSF_EFS_SUCCESS; + } else { + APP_TRACE_INFO0(">>> File size is unknown <<<"); + return WSF_EFS_FAILURE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Media Read function. + * + * \param pBuf Buffer to hold data. + * \param pAddress Address in media to read from. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + Ext_Flash_Read((uint32_t)pAddress, pBuf, size, Ext_Flash_DataLine_Quad); + return WSF_EFS_SUCCESS; +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} +/*************************************************************************************************/ +/*! + * \brief File Write function. + * + * \param pBuf Buffer with data to be written. + * \param address Address in media to write to. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + static bool_t savedHeader = FALSE; + int err = 0; + uint8_t attempts = 2; + uint8_t *tempBuff = (uint8_t *)malloc(size); + /* helps silence compiler warnings over discarded const qualifier */ + uint32_t addressToBuf = (uint32_t)pBuf; + /* write the header in flash device */ + if (!savedHeader) { + err += Ext_Flash_Program_Page(HEADER_LOCATION, (uint8_t *)&fileHeader, sizeof(fileHeader_t), + Ext_Flash_DataLine_Quad); + /* verify header was written correctly */ + err += Ext_Flash_Read(HEADER_LOCATION, tempBuff, sizeof(fileHeader_t), + Ext_Flash_DataLine_Quad); + if (memcmp(tempBuff, (uint8_t *)&fileHeader, sizeof(fileHeader_t)) != 0) { + APP_TRACE_INFO0("Error writting header to external flash"); + } + savedHeader = TRUE; + } + /* offset by the header thats already written */ + pAddress += HEADER_LEN; + crc32((const void *)pBuf, size, &crcResult); + while (attempts) { + err += Ext_Flash_Program_Page((uint32_t)pAddress, (uint8_t *)addressToBuf, size, + Ext_Flash_DataLine_Quad); + err += Ext_Flash_Read((uint32_t)pAddress, tempBuff, size, Ext_Flash_DataLine_Quad); + /* verify data was written correctly */ + if (memcmp(tempBuff, pBuf, size) != 0) { + attempts--; + if (attempts == 0) + err++; + } else { + attempts = 0; + } + } + if (err == E_NO_ERROR) { + lastWriteAddr = pAddress; + lastWriteLen = size; + APP_TRACE_INFO2("Ext Flash: Wrote %d bytes @ 0x%08x", size, pAddress); + } else { + APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); + /* force a crc error so device does not reboot into bootloader */ + crcResult = 0; + err = WSF_EFS_FAILURE; + } + + free(tempBuff); + return err; +} + +/*************************************************************************************************/ +/*! + * \brief Media Specific Command handler. + * + * \param cmd Identifier of the media specific command. + * \param param Optional Parameter to the command. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) +{ + switch (cmd) { + case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { + /* Currently unimplemented */ + return WDX_FTC_ST_SUCCESS; + } break; + case WSF_EFS_VALIDATE_CMD: + default: { + verifyLen = (uint32_t)lastWriteAddr - WDXS_FileMedia.startAddress - sizeof(fileHeader_t) + + lastWriteLen; + + APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, + verifyLen); + APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); + APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); + + /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ + if (fileHeader.fileCRC != crcResult) { + APP_TRACE_INFO0("Update file verification failure"); + APP_TRACE_INFO0("Erasing first sector of external flash"); + Ext_Flash_Erase(HEADER_LOCATION, Ext_Flash_Erase_4K); + crcResult = 0; + return WDX_FTC_ST_VERIFICATION; + } + crcResult = 0; + return WDX_FTC_ST_SUCCESS; + } break; + } + return WDX_FTC_ST_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Example of creating a WDXS stream. + * + * \param none + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void) +{ + wsfEsfAttributes_t attr; + char versionString[WSF_EFS_VERSION_LEN]; + + /* Add major number */ + versionString[0] = FW_VERSION_MAJOR; + /* Add "." */ + versionString[1] = '.'; + /* Minor number */ + versionString[2] = FW_VERSION_MINOR; + /* Add termination character */ + versionString[3] = 0; + + /* Register the media for the stream */ + WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); + + /* Set the attributes for the stream */ + attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | + WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | + WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | + WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); + + attr.type = WSF_EFS_FILE_TYPE_BULK; + + /* Potential buffer overrun is intentional to zero out fixed length field */ + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); + + /* Add a file for the stream */ + otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, + WDX_FLASH_MEDIA, &attr, 0); + APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); +} + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void) +{ + return WDXS_FileMedia.startAddress; +} + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void) +{ + return verifyLen; +} + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void) +{ + wsfEsfAttributes_t attr; + uint8_t minor, major; + + WsfEfsGetAttributes(otaFileHdl, &attr); + major = attr.version[0]; + minor = attr.version[2]; + // store major in upper byte and minor in lower byte + return (uint16_t)major << 8 | minor; +} + +void initHeader(fileHeader_t *header) +{ + fileHeader.fileLen = header->fileLen; + fileHeader.fileCRC = header->fileCRC; +} diff --git a/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file_int.c b/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file_int.c new file mode 100644 index 00000000000..fa8ef21ba6e --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_otas/wdxs_file_int.c @@ -0,0 +1,408 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "mxc_device.h" +#include "wsf_types.h" +#include "util/wstr.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_efs.h" +#include "wsf_cs.h" +#include "wsf_msg.h" +#include "util/bstream.h" +#include "svc_wdxs.h" +#include "wdxs/wdxs_api.h" +#include "wdxs/wdxs_main.h" +#include "wdxs_file.h" +#include "dm_api.h" +#include "att_api.h" +#include "app_api.h" +#include "flc.h" + +#ifndef FW_VERSION_MAJOR +#define FW_VERSION_MAJOR 1 +#define FW_VERSION_MINOR 0 +#endif + +#define ERASE_DELAY 50 // ms + +extern uint32_t _flash_update; +extern uint32_t _eflash_update; +static volatile uint32_t verifyLen; +static volatile uint8_t *lastWriteAddr; +static volatile uint32_t lastWriteLen; + +static uint32_t eraseAddress, erasePages; +wsfHandlerId_t eraseHandlerId; +wsfTimer_t eraseTimer; + +/* Prototypes for file functions */ +static uint8_t wdxsFileInitMedia(void); +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); + +static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; +wsfEfsHandle_t otaFileHdl; +#define HEADER_LEN (sizeof(fileHeader_t)) +/* Use the second half of the flash space for scratch space */ +static const wsfEfsMedia_t WDXS_FileMedia = { + /* uint32_t startAddress; Start address. */ ((uint32_t)&_flash_update), + /* uint32_t endAddress; End address. */ ((uint32_t)&_eflash_update), + /* uint32_t pageSize; Page size. */ MXC_FLASH_PAGE_SIZE, + /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, + /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, + /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, + /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, + /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle +}; + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for file erase. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + int err = 0; + if (erasePages) { + APP_TRACE_INFO1(">>> Erasing address 0x%x in internal flash <<<", eraseAddress); + + /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ + err = MXC_FLC_PageErase((uint32_t)eraseAddress); + if (err != E_NO_ERROR) { + APP_TRACE_INFO0("There was an erase error"); + return; + } + erasePages--; + eraseAddress += MXC_FLASH_PAGE_SIZE; + /* Continue next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + } else { + /* Erase is complete */ + APP_TRACE_INFO0(">>> Internal flash erase complete <<<"); + wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); + } +} +/*************************************************************************************************/ +/*! + * \brief Media Init function, called when media is registered. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileInitMedia(void) +{ + MXC_FLC_Init(); + APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); + + /* Setup the erase handler */ + eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); + eraseTimer.handlerId = eraseHandlerId; + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File erase function. Must be page aligned. + * + * \param pAddress Address in media to start erasing. + * \param size Number of bytes to erase. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) +{ + uint32_t address32 = (uint32_t)address; + + if (fileHeader.fileLen != 0) { + int err = 0; + /* Setup the erase handler variables */ + eraseAddress = address32; + /* calculate pages needed to erase */ + erasePages = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; + /* Initiate the erase */ + err = MXC_FLC_PageErase((uint32_t)address32); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Flash page erase error at 0x%0x", address32); + return WSF_EFS_FAILURE; + } else { + APP_TRACE_INFO1(">>> Initiating erase of %d pages of internal flash <<<", erasePages); + } + erasePages--; + eraseAddress += MXC_FLASH_PAGE_SIZE; + /* Wait ERASE_DELAY ms before staring next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + + return WSF_EFS_SUCCESS; + } else { + APP_TRACE_INFO0(">>> File size is unknown <<<"); + return WSF_EFS_FAILURE; + } + + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Media Read function. + * + * \param pBuf Buffer to hold data. + * \param pAddress Address in media to read from. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + memcpy(pBuf, pAddress, size); + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File Write function. + * + * \param pBuf Buffer with data to be written. + * \param address Address in media to write to. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + int err = 0; + err += MXC_FLC_Write((uint32_t)pAddress, size, (uint32_t *)pBuf); + /* verify data was written*/ + err += memcmp(pAddress, pBuf, size); + + if (err == E_NO_ERROR) { + lastWriteAddr = pAddress; + lastWriteLen = size; + APP_TRACE_INFO2("Int. Flash: Wrote %d bytes @ 0x%x", size, pAddress); + return WSF_EFS_SUCCESS; + } + APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); + return err; +} +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +/*************************************************************************************************/ +/*! + * \brief Media Specific Command handler. + * + * \param cmd Identifier of the media specific command. + * \param param Optional Parameter to the command. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) +{ + switch (cmd) { + case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { + /* Currently unimplemented */ + return WDX_FTC_ST_SUCCESS; + } break; + case WSF_EFS_VALIDATE_CMD: + default: { + /* Validate the image with CRC32 */ + uint32_t crcResult = 0; + int err = 0; + + verifyLen = ((uint32_t)lastWriteAddr + lastWriteLen) - WDXS_FileMedia.startAddress; + + APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, + verifyLen); + + crc32((const void *)WDXS_FileMedia.startAddress, verifyLen, &crcResult); + + APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); + APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); + + /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ + if (fileHeader.fileCRC != crcResult) { + APP_TRACE_INFO0("Update file verification failure"); + return WDX_FTC_ST_VERIFICATION; + } + + /* if crc are ok write it to end of file*/ + err += MXC_FLC_Write((WDXS_FileMedia.startAddress + verifyLen), sizeof(crcResult), + (uint32_t *)&crcResult); + uint32_t *temp = (uint32_t *)(WDXS_FileMedia.startAddress + verifyLen); + /* verify data was written*/ + err += memcmp(temp, &crcResult, sizeof(crcResult)); + if (err) { + APP_TRACE_INFO0("Error appending CRC to flash"); + return WDX_FTC_ST_VERIFICATION; + } + + crcResult = 0; + return WDX_FTC_ST_SUCCESS; + } break; + } + return WDX_FTC_ST_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Example of creating a WDXS stream. + * + * \param none + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void) +{ + wsfEsfAttributes_t attr; + char versionString[WSF_EFS_VERSION_LEN]; + + /* Add major number */ + versionString[0] = FW_VERSION_MAJOR; + /* Add "." */ + versionString[1] = '.'; + /* Minor number */ + versionString[2] = FW_VERSION_MINOR; + /* Add termination character */ + versionString[3] = 0; + + /* Register the media for the stream */ + WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); + + /* Set the attributes for the stream */ + attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | + WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | + WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | + WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); + + attr.type = WSF_EFS_FILE_TYPE_BULK; + + /* Potential buffer overrun is intentional to zero out fixed length field */ + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); + + /* Add a file for the stream */ + otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, + WDX_FLASH_MEDIA, &attr, 0); + APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); +} + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void) +{ + return WDXS_FileMedia.startAddress; +} + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void) +{ + return verifyLen; +} + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void) +{ + wsfEsfAttributes_t attr; + uint8_t minor, major; + + WsfEfsGetAttributes(otaFileHdl, &attr); + major = attr.version[0]; + minor = attr.version[2]; + // store major in upper byte and minor in lower byte + return (uint16_t)major << 8 | minor; +} + +void initHeader(fileHeader_t *header) +{ + fileHeader.fileLen = header->fileLen; + fileHeader.fileCRC = header->fileCRC; +} diff --git a/Examples/MAX32665/BLE_periph/.cproject b/Examples/MAX32665/Bluetooth/BLE_periph/.cproject similarity index 100% rename from Examples/MAX32665/BLE_periph/.cproject rename to Examples/MAX32665/Bluetooth/BLE_periph/.cproject diff --git a/Examples/MAX32665/BLE_periph/.project b/Examples/MAX32665/Bluetooth/BLE_periph/.project similarity index 100% rename from Examples/MAX32665/BLE_periph/.project rename to Examples/MAX32665/Bluetooth/BLE_periph/.project diff --git a/Examples/MAX32665/BLE_dats/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/BLE_periph/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_dats/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/BLE_periph/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_LR_Central/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_LR_Central/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/BLE_periph/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_periph/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/BLE_periph/.vscode/README.md b/Examples/MAX32665/Bluetooth/BLE_periph/.vscode/README.md similarity index 100% rename from Examples/MAX32665/BLE_periph/.vscode/README.md rename to Examples/MAX32665/Bluetooth/BLE_periph/.vscode/README.md diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/BLE_periph/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/BLE_periph/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SMON/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/BLE_periph/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/SMON/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/BLE_periph/.vscode/flash.gdb diff --git a/Examples/MAX32665/BLE_periph/.vscode/launch.json b/Examples/MAX32665/Bluetooth/BLE_periph/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/BLE_periph/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/BLE_periph/.vscode/launch.json diff --git a/Examples/MAX32665/BLE_periph/.vscode/settings.json b/Examples/MAX32665/Bluetooth/BLE_periph/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/BLE_periph/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/BLE_periph/.vscode/settings.json diff --git a/Examples/MAX32665/BLE_periph/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/BLE_periph/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/BLE_periph/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/BLE_periph/.vscode/tasks.json diff --git a/Examples/MAX32665/BLE_periph/BLE_periph.launch b/Examples/MAX32665/Bluetooth/BLE_periph/BLE_periph.launch similarity index 100% rename from Examples/MAX32665/BLE_periph/BLE_periph.launch rename to Examples/MAX32665/Bluetooth/BLE_periph/BLE_periph.launch diff --git a/Examples/MAX32665/Bluetooth/BLE_periph/Makefile b/Examples/MAX32665/Bluetooth/BLE_periph/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_periph/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/Bluetooth/BLE_periph/README.md b/Examples/MAX32665/Bluetooth/BLE_periph/README.md new file mode 100644 index 00000000000..f825b4d0c10 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_periph/README.md @@ -0,0 +1,21 @@ +# BLE_periph +Refer to the [BLE_periph](../../../Libraries/Cordio/docs/Applications/BLE_periph.md) documentation in the Cordio Library. + +## Software + +### Project Usage + +Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. + +### Required Connections +* Connect a USB cable between the PC and the (USB/PWR - UART) connector. An anteanna or wired connection can be used if SMA is available on the board. + +### Project-Specific Build Notes + Setting `TRACE=1` in [**project.mk**](project.mk) initializes the on-board USB-to-UART adapter for +viewing the trace messages and interacting with the application. Port uses settings: + - Baud : 115200 + - Char size : 8 + - Parity : None + - Stop bits : 1 + - HW Flow Control : No + - SW Flow Control : No diff --git a/Examples/MAX32665/Bluetooth/BLE_periph/main.c b/Examples/MAX32665/Bluetooth/BLE_periph/main.c new file mode 100644 index 00000000000..d4b86f7c404 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_periph/main.c @@ -0,0 +1,218 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE app that advertises as "Periph". Recommended app for getting started with MSDK BLE. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include + +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "periph_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitPeriph(void); + +/*************************************************************************************************/ +/*! + * \brief RX data received callback. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + */ +/*************************************************************************************************/ +static void appRxCallback(uint8_t *data, uint16_t len) +{ + unsigned i; + + /* Print the received data */ + printf("App received: "); + + for (i = 0; i < len; i++) { + printf("0x%02X ", data[i]); + } + printf("\n"); + + /* Echo the data back to the central */ + if (!PeriphTXData(data, len)) { + printf("Error sending data to peer\n"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif + + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); +#endif + + StackInitPeriph(); + PeriphStart(); + + PeriphRegisterRXCallback(appRxCallback); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ + mainWsfInit(); + + while (1) { + /* Run the WSF OS */ + wsfOsDispatcher(); + + if (!WsfOsActive()) { + /* No WSF tasks are active, optionally sleep */ + } + } + + return 0; +} diff --git a/Examples/MAX32665/Bluetooth/BLE_periph/periph_api.h b/Examples/MAX32665/Bluetooth/BLE_periph/periph_api.h new file mode 100644 index 00000000000..07df3742ee9 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_periph/periph_api.h @@ -0,0 +1,109 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************************************************/ +/*! + * \brief Peripheral RX callback function. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + */ +/*************************************************************************************************/ +typedef void (*periphRxCb_t)(uint8_t *data, uint16_t len); + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Register the callback for received data. + * + * \param cb Callback function for when data is received. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphRegisterRXCallback(periphRxCb_t cb); + +/*************************************************************************************************/ +/*! + * \brief Send data to the peer. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + * + * \return TRUE if data send, FALSE if error. + */ +/*************************************************************************************************/ +bool_t PeriphTXData(uint8_t *data, uint16_t len); + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ diff --git a/Examples/MAX32665/Bluetooth/BLE_periph/periph_main.c b/Examples/MAX32665/Bluetooth/BLE_periph/periph_main.c new file mode 100644 index 00000000000..84b149d5bcb --- /dev/null +++ b/Examples/MAX32665/Bluetooth/BLE_periph/periph_main.c @@ -0,0 +1,401 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "periph_api.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + PERIPH_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + PERIPH_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + PERIPH_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t periphAdvCfg = { + { 30000, 0, 0 }, /*! Advertising durations in ms, 0 corresponds to infinite */ + { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t periphSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t periphAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t periphAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + /*! device name */ + 7, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'P', 'e', 'r', 'i', 'p', 'h' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t periphCccSet[PERIPH_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* PERIPH_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + periphRxCb_t rxCb; /* RX Callback function */ + dmConnId_t connId; /* Connection ID */ + bool_t connected; /* Connection state */ +} periphCb; + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(periphCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(periphCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphCccCback(attsCccEvt_t *pEvt) {} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t periphWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + /* Call callback with data */ + if (periphCb.rxCb != NULL) { + periphCb.rxCb(pValue, len); + } + + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void periphSetup(dmEvt_t *pMsg) +{ + /* set advertising data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(periphAdvDataDisc), + (uint8_t *)periphAdvDataDisc); + + /* set advertising data or connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(periphAdvDataDisc), + (uint8_t *)periphAdvDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void periphProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + periphSetup(pMsg); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + /* Save connId */ + periphCb.connId = (dmConnId_t)pMsg->hdr.param; + periphCb.connected = TRUE; + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + periphCb.connected = FALSE; + uiEvent = APP_UI_CONN_CLOSE; + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send data to the peer. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + * + * \return TRUE if data send, FALSE if error. + */ +/*************************************************************************************************/ +bool_t PeriphTXData(uint8_t *data, uint16_t len) +{ + /* Make sure we're connected */ + if (!periphCb.connected) { + return FALSE; + } + + /* Check if a client characteristic configuration descriptor is enabled and if + the characteristic's security level has been met. */ + if (AttsCccEnabled(periphCb.connId, PERIPH_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(periphCb.connId, WP_DAT_HDL, len, data); + + return TRUE; + } + + return FALSE; +} + +/*************************************************************************************************/ +/*! + * \brief Register the callback for received data. + * + * \param cb Callback function for when data is received. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphRegisterRXCallback(periphRxCb_t cb) +{ + periphCb.rxCb = cb; +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("PeriphHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &periphAdvDataDisc[5]); + + /* store handler ID */ + periphCb.handlerId = handlerId; + + /* Initialize the RX Callback to NULL */ + periphCb.rxCb = NULL; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&periphSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&periphAdvCfg; + pAttCfg = (attCfg_t *)&periphAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Periph got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + periphProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphStart(void) +{ + /* Register for stack callbacks */ + DmRegister(periphDmCback); + DmConnRegister(DM_CLIENT_ID_APP, periphDmCback); + AttRegister(periphAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(PERIPH_NUM_CCC_IDX, (attsCccSet_t *)periphCccSet, periphCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, periphWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(PERIPH_GATT_SC_CCC_IDX); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32665/BLE_periph/project.mk b/Examples/MAX32665/Bluetooth/BLE_periph/project.mk similarity index 100% rename from Examples/MAX32665/BLE_periph/project.mk rename to Examples/MAX32665/Bluetooth/BLE_periph/project.mk diff --git a/Examples/MAX32665/BLE_periph/stack_periph.c b/Examples/MAX32665/Bluetooth/BLE_periph/stack_periph.c similarity index 100% rename from Examples/MAX32665/BLE_periph/stack_periph.c rename to Examples/MAX32665/Bluetooth/BLE_periph/stack_periph.c diff --git a/Examples/MAX32665/Bootloader/.cproject b/Examples/MAX32665/Bluetooth/Bootloader/.cproject similarity index 100% rename from Examples/MAX32665/Bootloader/.cproject rename to Examples/MAX32665/Bluetooth/Bootloader/.cproject diff --git a/Examples/MAX32665/Bootloader/.project b/Examples/MAX32665/Bluetooth/Bootloader/.project similarity index 100% rename from Examples/MAX32665/Bootloader/.project rename to Examples/MAX32665/Bluetooth/Bootloader/.project diff --git a/Examples/MAX32665/BLE_fcc/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/Bootloader/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_fcc/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/Bootloader/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_LR_Peripheral/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_LR_Peripheral/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/Bootloader/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/Bootloader/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/Bootloader/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/Bootloader/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/Bootloader/.vscode/README.md b/Examples/MAX32665/Bluetooth/Bootloader/.vscode/README.md similarity index 100% rename from Examples/MAX32665/Bootloader/.vscode/README.md rename to Examples/MAX32665/Bluetooth/Bootloader/.vscode/README.md diff --git a/Examples/MAX32665/BLE_datc/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/Bootloader/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_datc/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/Bootloader/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SPI/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/Bootloader/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/SPI/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/Bootloader/.vscode/flash.gdb diff --git a/Examples/MAX32665/Bootloader/.vscode/launch.json b/Examples/MAX32665/Bluetooth/Bootloader/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/Bootloader/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/Bootloader/.vscode/launch.json diff --git a/Examples/MAX32665/Bootloader/.vscode/settings.json b/Examples/MAX32665/Bluetooth/Bootloader/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/Bootloader/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/Bootloader/.vscode/settings.json diff --git a/Examples/MAX32665/Bootloader/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/Bootloader/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/Bootloader/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/Bootloader/.vscode/tasks.json diff --git a/Examples/MAX32665/Bootloader/Bootloader.launch b/Examples/MAX32665/Bluetooth/Bootloader/Bootloader.launch similarity index 100% rename from Examples/MAX32665/Bootloader/Bootloader.launch rename to Examples/MAX32665/Bluetooth/Bootloader/Bootloader.launch diff --git a/Examples/MAX32665/Bluetooth/Bootloader/Makefile b/Examples/MAX32665/Bluetooth/Bootloader/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/Bootloader/README.md b/Examples/MAX32665/Bluetooth/Bootloader/README.md similarity index 100% rename from Examples/MAX32665/Bootloader/README.md rename to Examples/MAX32665/Bluetooth/Bootloader/README.md diff --git a/Examples/MAX32665/Bluetooth/Bootloader/boot_lower.S b/Examples/MAX32665/Bluetooth/Bootloader/boot_lower.S new file mode 100644 index 00000000000..6e484d97705 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader/boot_lower.S @@ -0,0 +1,78 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + + .syntax unified + .arch armv7-m + .text + .thumb + .thumb_func + .align 2 + + + .globl Boot_Lower + .type Boot_Lower %function +/* Boot from the lower flash array */ +Boot_Lower: + + ldr r0,=0x10004000 /* Address for main flash image */ + ldr r1,=0xE000ED08 /* Address for SCB_VTOR_REG */ + + /* First 32-bit word in image is initial stack pointer */ + /* Second 32-bit word in image is Address of the Reset Handler */ + + /* Set VTOR with vector table base address */ + str r0,[r1] + /* Load initial SP */ + ldr sp,[r0] + /* Load LR with address of the Reset Handler */ + ldr lr,[r0,#4] + /* Jump to Reset Handler. */ + bx lr diff --git a/Examples/MAX32665/Bluetooth/Bootloader/bootloader.ld b/Examples/MAX32665/Bluetooth/Bootloader/bootloader.ld new file mode 100644 index 00000000000..196d2465f62 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader/bootloader.ld @@ -0,0 +1,168 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +BOOTLOADER_ORIGIN = 0x10000000; +BOOTLOADER_LEN = 0x4000; +FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; +FLASH0_ORIGIN = BOOTLOADER_ORIGIN + BOOTLOADER_LEN; + +MEMORY { + FLASH (rx) : ORIGIN = BOOTLOADER_ORIGIN, LENGTH = BOOTLOADER_LEN + FLASH0 (rx) : ORIGIN = FLASH0_ORIGIN, LENGTH = FLASH_SECTION_LEN + FLASH1 (rx) : ORIGIN = 0x10080000, LENGTH = FLASH_SECTION_LEN + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 +} + +SECTIONS { + + .text : + { + _text = .; + KEEP(*(.isr_vector)) + EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ + *(.rodata*) /* read-only data: "const" */ + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* C++ Exception handling */ + KEEP(*(.eh_frame*)) + _etext = .; + } > FLASH + + .flash0 (NOLOAD) : + { + _flash0 = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash0 = ALIGN(., 4); + } > FLASH0 + + .flash1 (NOLOAD) : + { + _flash1 = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash1 = ALIGN(., 4); + } > FLASH1 + + /* it's used for C++ exception handling */ + /* we need to keep this to avoid overlapping */ + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > FLASH + + .data : + { + _data = ALIGN(., 4); + *(.data*) /*read-write initialized data: initialized global variable*/ + *(.flashprog*) /* Flash program */ + + /* These array sections are used by __libc_init_array to call static C++ constructors */ + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + _edata = ALIGN(., 4); + } > SRAM AT>FLASH + __load_data = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _bss = .; + *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ + *(COMMON) + _ebss = ALIGN(., 4); + } > SRAM + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + *(.stack*) + } > SRAM + + .heap (COPY): + { + . = ALIGN(4); + *(.heap*) + __HeapLimit = ABSOLUTE(__StackLimit); + } > SRAM + + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") +} diff --git a/Examples/MAX32665/Bluetooth/Bootloader/main_ext.c b/Examples/MAX32665/Bluetooth/Bootloader/main_ext.c new file mode 100644 index 00000000000..42c0543b5cd --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader/main_ext.c @@ -0,0 +1,353 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Bootloader + * @details Simple bootloader to verify and replace images. + */ + +/***** Includes *****/ +#include +#include +#include +#include +#include "mxc_device.h" +#include "led.h" +#include "pb.h" +#include "board.h" +#include "mxc_delay.h" +#include "flc.h" +#include "Ext_Flash.h" +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/* Addresses for the flash sections, defined in the linker file */ +extern uint32_t _flash0; +extern uint32_t _flash1; + +#define FLASH0_START ((uint32_t)&_flash0) +#define FLASH1_START ((uint32_t)&_flash1) +#define FLASH_ERASED_WORD 0xFFFFFFFF +#define CRC32_LEN 4 +#define EXT_FLASH_BLOCK_SIZE 224 + +#define DELAY(loopCount) \ + for (i = 0; i < loopCount; i++) {} + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; +fileHeader_t fileHeader; + +typedef enum { COPY_FILE_OP, CALC_CRC32_OP } externFileOp_t; +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/* Defined in boot_lower.S */ +extern void Boot_Lower(void); + +void ledSuccessPattern(void) +{ + /* Green LED blinks */ + volatile int i, j; + for (j = 0; j < 10; j++) { + LED_Toggle(1); + DELAY(0xFFFFF); + } +} +void ledFailPattern(void) +{ + /* Red LED blinks */ + volatile int i, j; + for (j = 0; j < 10; j++) { + LED_Toggle(0); + DELAY(0xFFFFF); + } +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) { + table[i] = crc32_for_byte(i); + } + } + + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +void bootError(void) +{ + /* Flash the failure LED */ + ledFailPattern(); + NVIC_SystemReset(); +} + +int flashPageErased(uint32_t *addr) +{ + /* Determine if this page is totally erased */ + int i; + for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { + if (*(addr + i) != FLASH_ERASED_WORD) { + return 0; + } + } + + return 1; +} + +static int multiPageErase(uint8_t *address, uint32_t pages) +{ + int err; + volatile uint32_t address32 = (uint32_t)address; + address32 &= 0xFFFFF; + + while (pages) { + err = MXC_FLC_PageErase((uint32_t)address); + if (err != E_NO_ERROR) { + return err; + } + + address += MXC_FLASH_PAGE_SIZE; + pages--; + } + + return E_NO_ERROR; +} + +static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) +{ + int err; + + while ((len / 16) > 0) { + err = MXC_FLC_Write128((uint32_t)address, data); + if (err != E_NO_ERROR) { + return err; + } + len -= 16; + address += 4; + data += 4; + } + while (len) { + err = MXC_FLC_Write32((uint32_t)address, *data); + if (err != E_NO_ERROR) { + return err; + } + len -= 4; + address += 1; + data += 1; + } + return E_NO_ERROR; +} + +uint32_t externFileOperation(externFileOp_t fileOperation) +{ + uint32_t internalFlashStartingAddress = FLASH0_START; + uint8_t extFlashBlockBuff[EXT_FLASH_BLOCK_SIZE] = { 0 }; + uint32_t startingAddress = 0x00000000 + sizeof(fileHeader_t); + uint32_t fileLen = fileHeader.fileLen; + uint32_t crcResult = 0; + uint32_t err = 0; + /* Read blocks from ext flash and perform desired fileOperation */ + while (fileLen >= EXT_FLASH_BLOCK_SIZE) { + Ext_Flash_Read(startingAddress, extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, + Ext_Flash_DataLine_Quad); + if (fileOperation == CALC_CRC32_OP) { + crc32(extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, &crcResult); + } else if (fileOperation == COPY_FILE_OP) { + err += flashWrite((uint32_t *)internalFlashStartingAddress, + (uint32_t *)extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE); + internalFlashStartingAddress += EXT_FLASH_BLOCK_SIZE; + } + fileLen -= EXT_FLASH_BLOCK_SIZE; + startingAddress += EXT_FLASH_BLOCK_SIZE; + } + /* Read remaining data that did not fill a block */ + if (fileLen) { + Ext_Flash_Read(startingAddress, extFlashBlockBuff, fileLen, Ext_Flash_DataLine_Quad); + if (fileOperation == CALC_CRC32_OP) { + crc32(extFlashBlockBuff, fileLen, &crcResult); + } else if (fileOperation == COPY_FILE_OP) { + err += flashWrite((uint32_t *)internalFlashStartingAddress, + (uint32_t *)extFlashBlockBuff, fileLen); + } + } + if (fileOperation == COPY_FILE_OP) + return err; + + return crcResult; +} + +int main(void) +{ + volatile int i; + int err = 0x00000000; + uint32_t startingAddress = 0x00000000; + uint32_t crcResult = 0x00000000; + int numLedsBlink; + + /* Limit the number of LED blinks */ + if (num_leds > 2) { + numLedsBlink = 2; + } else { + numLedsBlink = num_leds; + } + + /* Prevent bricks */ + if (numLedsBlink == 0) { + DELAY(0x3FFFFF); + } + + LED_Init(); + for (int led = 0; led < numLedsBlink; led++) { + LED_On(led); + DELAY(0x1FFFFF); + LED_Off(led); + DELAY(0x1FFFFF); + } + + /* disable interrupts to prevent these operations from being interrupted */ + __disable_irq(); + + /* init external flash */ + err += Ext_Flash_Init(); + err += Ext_Flash_Quad(1); + + if (err == 0) { + /* Get header from ext flash */ + Ext_Flash_Read(startingAddress, (uint8_t *)&fileHeader, sizeof(fileHeader_t), + Ext_Flash_DataLine_Quad); + + /* Verify header integrity */ + if (fileHeader.fileLen != 0xFFFFFFFF && fileHeader.fileCRC != 0xFFFFFFFF) { + crcResult = externFileOperation(CALC_CRC32_OP); + /* Check the calculated digest against what was received */ + if (fileHeader.fileCRC != crcResult) { + ledFailPattern(); + } else { + /* Calculate how many pages the new image will occupy, +1 for remainder */ + uint32_t pagesToErase = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; + /* Erase the destination pages */ + if (multiPageErase((uint8_t *)FLASH0_START, pagesToErase) != E_NO_ERROR) { + /* Failed to erase pages */ + bootError(); + } + /* copy external file */ + err = externFileOperation(COPY_FILE_OP); + if (err) { + bootError(); + } + /* check what was written to flash */ + crcResult = 0; + crc32((const void *)FLASH0_START, fileHeader.fileLen, &crcResult); + if (crcResult != fileHeader.fileCRC) { + /* Bad firmware was written to internal flash */ + while (1) { + ledFailPattern(); + } + } + /* As long as first sector is erased so the bootloader does not try to reload its contents */ + Ext_Flash_Erase(0x00000000, Ext_Flash_Erase_64K); + if (err == 0) { + ledSuccessPattern(); + } + } + } + } else { + /* external flash init error */ + ledFailPattern(); + bootError(); + } + + /* Boot from lower image */ + Boot_Lower(); + + while (1) {} + + return 0; +} diff --git a/Examples/MAX32665/Bluetooth/Bootloader/main_int.c b/Examples/MAX32665/Bluetooth/Bootloader/main_int.c new file mode 100644 index 00000000000..3d10bd7e05d --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader/main_int.c @@ -0,0 +1,313 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Bootloader + * @details Simple bootloader to verify and replace images. + */ + +/***** Includes *****/ +#include +#include +#include +#include "mxc_device.h" +#include "led.h" +#include "pb.h" +#include "board.h" +#include "mxc_delay.h" +#include "flc.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/* Addresses for the flash sections, defined in the linker file */ +extern uint32_t _flash0; +extern uint32_t _flash1; + +#define FLASH0_START ((uint32_t)&_flash0) +#define FLASH1_START ((uint32_t)&_flash1) +#define FLASH_ERASED_WORD 0xFFFFFFFF +#define CRC32_LEN 4 + +#define DELAY(loopCount) \ + for (i = 0; i < loopCount; i++) {} + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/* Defined in boot_lower.S */ +extern void Boot_Lower(void); + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) { + table[i] = crc32_for_byte(i); + } + } + + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +void bootError(void) +{ + /* Flash the failure LED */ + int j; + volatile int i; + for (j = 0; j < 10; j++) { + LED_Toggle(0); + for (i = 0; i < 0xFFFFF; i++) {} + } + NVIC_SystemReset(); +} + +int flashPageErased(uint32_t *addr) +{ + /* Determine if this page is totally erased */ + int i; + for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { + if (*(addr + i) != FLASH_ERASED_WORD) { + return 0; + } + } + + return 1; +} + +uint32_t findUpperLen(void) +{ + uint32_t *flashPagePointer = (uint32_t *)FLASH1_START; + + /* Find the first erased page in the upper flash*/ + while (1) { + if (*flashPagePointer == FLASH_ERASED_WORD) { + /* Make sure the entire page is erased */ + if (flashPageErased(flashPagePointer)) { + break; + } + } + + flashPagePointer += (MXC_FLASH_PAGE_SIZE / 4); + } + + /* Length is 0 */ + if (flashPagePointer == (uint32_t *)FLASH1_START) { + return 0; + } + + /* search backwards for the first bytes that isn't erased */ + while (*(flashPagePointer--) == FLASH_ERASED_WORD) {} + flashPagePointer += 2; + + /* return the starting address of the CRC, last address of the image */ + return (uint32_t)(flashPagePointer - (4 / 4) - (FLASH1_START / 4)); +} + +static int multiPageErase(uint8_t *address, uint32_t size) +{ + int err; + volatile uint32_t address32 = (uint32_t)address; + address32 &= 0xFFFFF; + + /* Page align the size */ + size += MXC_FLASH_PAGE_SIZE - (size % MXC_FLASH_PAGE_SIZE); + + while (size) { + err = MXC_FLC_PageErase((uint32_t)address); + if (err != E_NO_ERROR) { + return err; + } + + address += MXC_FLASH_PAGE_SIZE; + size -= MXC_FLASH_PAGE_SIZE; + } + + return E_NO_ERROR; +} + +static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) +{ + int err; + + while ((len / 16) > 0) { + err = MXC_FLC_Write128((uint32_t)address, data); + if (err != E_NO_ERROR) { + return err; + } + len -= 16; + address += 4; + data += 4; + } + while (len) { + err = MXC_FLC_Write32((uint32_t)address, *data); + if (err != E_NO_ERROR) { + return err; + } + len -= 4; + address += 1; + data += 1; + } + return E_NO_ERROR; +} + +int main(void) +{ + volatile int i; + int numLedsBlink; + + /* Limit the number of LED blinks */ + if (num_leds > 2) { + numLedsBlink = 2; + } else { + numLedsBlink = num_leds; + } + + /* Prevent bricks */ + if (numLedsBlink == 0) { + DELAY(0x3FFFFF); + } + + LED_Init(); + for (int led = 0; led < numLedsBlink; led++) { + LED_On(led); + DELAY(0x1FFFFF); + LED_Off(led); + DELAY(0x1FFFFF); + } + + /* disable interrupts to prevent these operations from being interrupted */ + __disable_irq(); + + /* Get the length of the image in the upper flash array */ + uint32_t len = findUpperLen(); + + /* Attempt to verify the upper image if we get a valid length */ + if (len) { + /* Validate the image with CRC32 */ + uint32_t crcResult = 0; + + crc32((const void *)FLASH1_START, len, &crcResult); + + /* Check the calculated digest against what was received */ + if (crcResult == (uint32_t) * (uint32_t *)(FLASH1_START + len)) { + /* Erase the destination pages */ + if (multiPageErase((uint8_t *)FLASH0_START, len) != E_NO_ERROR) { + /* Failed to erase pages */ + bootError(); + } + /* Copy the new firmware image */ + if (flashWrite((uint32_t *)FLASH0_START, (uint32_t *)FLASH1_START, len) != E_NO_ERROR) { + /* Failed to write new image */ + bootError(); + } else { + /* Flash the success LED for a successful update */ + int j; + for (j = 0; j < 10; j++) { + LED_Toggle(1); + for (i = 0; i < 0xFFFFF; i++) {} + } + } + /* Erase the update pages */ + if (multiPageErase((uint8_t *)FLASH1_START, len) != E_NO_ERROR) { + /* Failed to erase pages, continue to boot from the lower pages */ + } + } else { + /* Flash the error LED for a CRC failure */ + int j; + for (j = 0; j < 10; j++) { + LED_Toggle(0); + for (i = 0; i < 0xFFFFF; i++) {} + } + } + } + + /* Boot from lower image */ + Boot_Lower(); + + while (1) {} +} diff --git a/Examples/MAX32665/Bootloader/project.mk b/Examples/MAX32665/Bluetooth/Bootloader/project.mk similarity index 100% rename from Examples/MAX32665/Bootloader/project.mk rename to Examples/MAX32665/Bluetooth/Bootloader/project.mk diff --git a/Examples/MAX32665/Bootloader_Host/.cproject b/Examples/MAX32665/Bluetooth/Bootloader_Host/.cproject similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.cproject rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.cproject diff --git a/Examples/MAX32665/Bootloader_Host/.project b/Examples/MAX32665/Bluetooth/Bootloader_Host/.project similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.project rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.project diff --git a/Examples/MAX32665/BLE_fit/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/Bootloader_Host/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_fit/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/Bootloader_Host/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/Bootloader_Host/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/Bootloader_Host/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/Bootloader_Host/.vscode/README.md b/Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/README.md similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.vscode/README.md rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/README.md diff --git a/Examples/MAX32665/BLE_dats/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_dats/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SPIXF/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/SPIXF/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/flash.gdb diff --git a/Examples/MAX32665/Bootloader_Host/.vscode/launch.json b/Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/launch.json diff --git a/Examples/MAX32665/Bootloader_Host/.vscode/settings.json b/Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/settings.json diff --git a/Examples/MAX32665/Bootloader_Host/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/Bootloader_Host/.vscode/tasks.json diff --git a/Examples/MAX32665/Bootloader_Host/Bootloader_Host.launch b/Examples/MAX32665/Bluetooth/Bootloader_Host/Bootloader_Host.launch similarity index 100% rename from Examples/MAX32665/Bootloader_Host/Bootloader_Host.launch rename to Examples/MAX32665/Bluetooth/Bootloader_Host/Bootloader_Host.launch diff --git a/Examples/MAX32665/Bluetooth/Bootloader_Host/Makefile b/Examples/MAX32665/Bluetooth/Bootloader_Host/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/Bootloader_Host/README.md b/Examples/MAX32665/Bluetooth/Bootloader_Host/README.md similarity index 100% rename from Examples/MAX32665/Bootloader_Host/README.md rename to Examples/MAX32665/Bluetooth/Bootloader_Host/README.md diff --git a/Examples/MAX32665/Bootloader_Host/bootloader/bootloader.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader.c similarity index 95% rename from Examples/MAX32665/Bootloader_Host/bootloader/bootloader.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader.c index db69d2124e1..94167bc73e9 100644 --- a/Examples/MAX32665/Bootloader_Host/bootloader/bootloader.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32665/Bootloader_Host/bootloader/bootloader.h b/Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader.h similarity index 78% rename from Examples/MAX32665/Bootloader_Host/bootloader/bootloader.h rename to Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader.h index 0f440af0055..1c4908d7644 100644 --- a/Examples/MAX32665/Bootloader_Host/bootloader/bootloader.h +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX32665_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ -#define EXAMPLES_MAX32665_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ /******************************* INCLUDES ****************************/ #include "bootloader_cmd.h" @@ -87,4 +105,4 @@ int bl_update_cfg_set_bl_exit_mode(BLExitMode_t mode); int b_update_cfg_set_bl_exit_timeout(uint16_t timeout); int bl_flash_bl_cfg(void); -#endif // EXAMPLES_MAX32665_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ +#endif // EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ diff --git a/Examples/MAX32665/Bootloader_Host/bootloader/bootloader_cmd.h b/Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader_cmd.h similarity index 86% rename from Examples/MAX32665/Bootloader_Host/bootloader/bootloader_cmd.h rename to Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader_cmd.h index b6617a8cabf..c167bc0a723 100644 --- a/Examples/MAX32665/Bootloader_Host/bootloader/bootloader_cmd.h +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/bootloader/bootloader_cmd.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX32665_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ -#define EXAMPLES_MAX32665_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ /******************************* INCLUDES ****************************/ @@ -181,4 +199,4 @@ typedef union { /******************************* Public Functions ****************************/ -#endif // EXAMPLES_MAX32665_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ +#endif // EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_CMD_H_ diff --git a/Examples/MAX32665/Bluetooth/Bootloader_Host/include/platform.h b/Examples/MAX32665/Bluetooth/Bootloader_Host/include/platform.h new file mode 100644 index 00000000000..1e3f13d52a5 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/include/platform.h @@ -0,0 +1,80 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_INCLUDE_PLATFORM_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_INCLUDE_PLATFORM_H_ + +/******************************* INCLUDES ****************************/ + +/******************************* DEFINES ****************************/ + +/******************************* Type Definitions ****************************/ + +/******************************* Public Functions ****************************/ +// i2c +int plt_i2c_init(void); +int plt_i2c_write(unsigned char *src, unsigned int len); +int plt_i2c_read(unsigned char *dst, unsigned int len); + +// spi +int plt_spi_init(void); +int plt_spi_write(unsigned char *src, unsigned int len); +int plt_spi_read(unsigned char *dst, unsigned int len); + +// gpio +int plt_gpio_init(void); +void plt_gpio_set(unsigned int idx, int state); +int plt_gpio_get(unsigned int idx); + +// delay +void plt_delay_ms(unsigned int ms); + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_INCLUDE_PLATFORM_H_ diff --git a/Examples/MAX32665/Bluetooth/Bootloader_Host/include/terminal.h b/Examples/MAX32665/Bluetooth/Bootloader_Host/include/terminal.h new file mode 100644 index 00000000000..b4837458ccd --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/include/terminal.h @@ -0,0 +1,74 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_INCLUDE_TERMINAL_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_INCLUDE_TERMINAL_H_ + +/******************************* INCLUDES ****************************/ + +/******************************* DEFINES ****************************/ +#define KEY_ESC -1 +#define KEY_CANCEL -1 + +/******************************* Type Definitions ****************************/ +typedef struct { + const char *name; + int (*callback)(const char *parentName); +} list_t; + +/******************************* Public Functions ****************************/ +int terminal_init(void); +int terminal_printf(const char *format, ...); +void terminal_hexdump(const char *title, char *buf, unsigned int len); +int terminal_read_num(unsigned int timeout); +int terminal_select_from_list(const char *title, const list_t *items, int nb_items, int nb_col); + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_INCLUDE_TERMINAL_H_ diff --git a/Examples/MAX32665/Bootloader_Host/project.mk b/Examples/MAX32665/Bluetooth/Bootloader_Host/project.mk similarity index 100% rename from Examples/MAX32665/Bootloader_Host/project.mk rename to Examples/MAX32665/Bluetooth/Bootloader_Host/project.mk diff --git a/Examples/MAX32665/Bootloader_Host/src/bootloader_menu.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/bootloader_menu.c similarity index 90% rename from Examples/MAX32665/Bootloader_Host/src/bootloader_menu.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/src/bootloader_menu.c index d38ac802165..8590af8f807 100644 --- a/Examples/MAX32665/Bootloader_Host/src/bootloader_menu.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/bootloader_menu.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32665/Bluetooth/Bootloader_Host/src/main.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/main.c new file mode 100644 index 00000000000..d87175bc4ea --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/main.c @@ -0,0 +1,202 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Bootloader Host Example + * + * @details This example provide a menu on terminal, depend on the selection it run tests. + */ + +/******************************* INCLUDES ****************************/ +#include +#include + +#include "terminal.h" +#include "bootloader.h" +#include "platform.h" +#include "board.h" + +#include "test_images.h" + +/******************************* DEFINES ****************************/ + +/******************************* Type Definitions ****************************/ + +/******************************* Variables ****************************/ +extern int bootloader_menu(const char *parentName); + +/******************************* Static Functions ****************************/ +static int select_interface(const char *parentName) +{ + int ret; + + list_t list[] = { + { "I2C", NULL }, + { "SPI", NULL }, + }; + + while (1) { + ret = terminal_select_from_list(parentName, list, sizeof(list) / sizeof(list[0]), 1); + if (ret == KEY_CANCEL) { + break; + } + + if (ret == 1) { + bl_update_interface(plt_i2c_read, plt_i2c_write); + terminal_printf("Host-<->Target interface configured as I2C\r\n"); + ret = 0; // means success + break; + } else if (ret == 2) { + bl_update_interface(plt_spi_read, plt_spi_write); + terminal_printf("Host-<->Target interface configured as SPI\r\n"); + ret = 0; // means success + break; + } + } + + return ret; +} + +static int update_fw_nonsecure_MAX32660_blinkled_slow_P0_13(const char *parentName) +{ + return bl_flash_image(nonsecure_MAX32660_blinkled_slow_P0_13); +} + +static int update_fw_nonsecure_MAX32660_blinkled_fast_P0_13(const char *parentName) +{ + return bl_flash_image(nonsecure_MAX32660_blinkled_fast_P0_13); +} + +static int update_fw_devkey_MAX32660_blinkled_fast_P0_13(const char *parentName) +{ + return bl_flash_image(devkey_MAX32660_blinkled_fast_P0_13); +} + +static int update_fw_devkey_MAX32660_blinkled_slow_P0_13(const char *parentName) +{ + return bl_flash_image(devkey_MAX32660_blinkled_slow_P0_13); +} + +static int update_fw_devkey_MAX32670_blinkled_P0_22(const char *parentName) +{ + return bl_flash_image(devkey_MAX32670_blinkled_P0_22); +} + +static int update_fw_devkey_MAX32670_blinkled_P0_23(const char *parentName) +{ + return bl_flash_image(devkey_MAX32670_blinkled_P0_23); +} + +/******************************* Public Functions ****************************/ +static list_t list[] = { + { "Select Interface", select_interface }, + { "Bootloader Test Menu", bootloader_menu }, + { "Load MSBL: Non-secure MAX32660 blinkled fast P0.13", + update_fw_nonsecure_MAX32660_blinkled_fast_P0_13 }, + { "Load MSBL: Non-secure MAX32660 blinkled slow P0.13", + update_fw_nonsecure_MAX32660_blinkled_slow_P0_13 }, + { "Load MSBL: MAX32660 blinkled fast P0.13 (development key)", + update_fw_devkey_MAX32660_blinkled_fast_P0_13 }, + { "Load MSBL: MAX32660 blinkled slow P0.13 (development key)", + update_fw_devkey_MAX32660_blinkled_slow_P0_13 }, + { "Load MSBL: MAX32670 blinkled P0.22 (development key)", + update_fw_devkey_MAX32670_blinkled_P0_22 }, + { "Load MSBL: MAX32670 blinkled P0.23 (development key)", + update_fw_devkey_MAX32670_blinkled_P0_23 }, +}; + +int main(void) +{ + plt_i2c_init(); + plt_spi_init(); + plt_gpio_init(); + + // Initialize terminal uart after SPI initialization because some pins (P0.20, P0.21) are overlaps + terminal_init(); + terminal_printf("\r\n***********Bootloader Host Example***********\r\n"); + terminal_printf("The purpose of this example is:\r\n"); + terminal_printf(" 1- Demonstrate how bootloader device can be program\r\n"); + terminal_printf(" 2- Provide platform independent bootloader protocol (files under " + "bootloader folder)\r\n"); + terminal_printf("\r\nThis example can be ported on any platform\r\n"); + terminal_printf("If you would like to port it on other platform\r\n"); + terminal_printf("you need to update terminal.c and platform_max32665.c files\r\n"); + terminal_printf("\r\n"); + terminal_printf("\tHW Pins\r\n"); + terminal_printf("\tI2C: SCL(P0.6), SDA(P0.7) (Note: I2C requires pullup resistor) \r\n"); + terminal_printf("\tSPI: MISO(P0.17), MOSI(P0.18), SCK(P0.19), SS(P0.16)\r\n"); +#if defined(BOARD_FTHR) || defined(BOARD_FTHR2) + terminal_printf("\tTarget: RESET(P0.20), MFIO(P0.21)\r\n"); +#else + terminal_printf("\tTarget: RESET(P0.14), MFIO(P0.15)\r\n"); +#endif + terminal_printf("\r\n"); +#if defined(BOARD_FTHR2) + terminal_printf("UART0 is used as terminal comport\r\n"); +#else + terminal_printf("UART1 is used as terminal comport\r\n"); +#endif + + bl_conf_struct_t plt; + + plt.read = plt_i2c_read; + plt.write = plt_i2c_write; + plt.gpio_set = plt_gpio_set; + plt.delay_ms = plt_delay_ms; + plt.printf = terminal_printf; + + bl_init(&plt); + + while (1) { + terminal_select_from_list("Main Menu", list, sizeof(list) / sizeof(list[0]), 1); + } +} diff --git a/Examples/MAX32665/Bootloader_Host/src/platform_max32665.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/platform_max32665.c similarity index 88% rename from Examples/MAX32665/Bootloader_Host/src/platform_max32665.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/src/platform_max32665.c index ad2a683ca8b..f95fbaf7d41 100644 --- a/Examples/MAX32665/Bootloader_Host/src/platform_max32665.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/platform_max32665.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32665/Bootloader_Host/src/terminal.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/terminal.c similarity index 87% rename from Examples/MAX32665/Bootloader_Host/src/terminal.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/src/terminal.c index ef1f6ca97ba..08658ccea00 100644 --- a/Examples/MAX32665/Bootloader_Host/src/terminal.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/src/terminal.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c similarity index 99% rename from Examples/MAX32665/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c index cdf3c2492ef..704448aac15 100644 --- a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_fast_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32660_blinkled_fast_P0_13[] = { diff --git a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c similarity index 99% rename from Examples/MAX32665/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c index 0dcca9149cf..70f4180fed7 100644 --- a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/devkey_MAX32660_blinkled_slow_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32660_blinkled_slow_P0_13[] = { diff --git a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c similarity index 99% rename from Examples/MAX32665/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c index fa7aadab548..77b1a9d230e 100644 --- a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_fast_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char nonsecure_MAX32660_blinkled_fast_P0_13[] = { diff --git a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c similarity index 99% rename from Examples/MAX32665/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c index e07a11aede2..6a53a8234db 100644 --- a/Examples/MAX32665/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32660/nonsecure_MAX32660_blinkled_slow_P0_13.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char nonsecure_MAX32660_blinkled_slow_P0_13[] = { diff --git a/Examples/MAX32665/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c similarity index 99% rename from Examples/MAX32665/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c index c51f8edc6a5..d8df94695ba 100644 --- a/Examples/MAX32665/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_22.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32670_blinkled_P0_22[] = { diff --git a/Examples/MAX32665/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c similarity index 99% rename from Examples/MAX32665/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c rename to Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c index e524c063fb2..31796a84170 100644 --- a/Examples/MAX32665/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/MAX32670/devkey_MAX32670_blinkled_P0_23.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ const char devkey_MAX32670_blinkled_P0_23[] = { diff --git a/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/test_images.h b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/test_images.h new file mode 100644 index 00000000000..6c36d974fb5 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/Bootloader_Host/test_images/test_images.h @@ -0,0 +1,71 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ + +/******************************* INCLUDES ****************************/ + +/******************************* DEFINES ****************************/ + +/******************************* Type Definitions ****************************/ + +/******************************* Global Variables ****************************/ +extern const char devkey_MAX32660_blinkled_fast_P0_13[]; +extern const char devkey_MAX32660_blinkled_slow_P0_13[]; +extern const char nonsecure_MAX32660_blinkled_fast_P0_13[]; +extern const char nonsecure_MAX32660_blinkled_slow_P0_13[]; +extern const char devkey_MAX32670_blinkled_P0_22[]; +extern const char devkey_MAX32670_blinkled_P0_23[]; + +/******************************* Public Functions ****************************/ + +#endif // EXAMPLES_MAX32665_BLUETOOTH_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ diff --git a/Examples/MAX32665/RF_Test/.cproject b/Examples/MAX32665/Bluetooth/RF_Test/.cproject similarity index 100% rename from Examples/MAX32665/RF_Test/.cproject rename to Examples/MAX32665/Bluetooth/RF_Test/.cproject diff --git a/Examples/MAX32665/RF_Test/.project b/Examples/MAX32665/Bluetooth/RF_Test/.project similarity index 100% rename from Examples/MAX32665/RF_Test/.project rename to Examples/MAX32665/Bluetooth/RF_Test/.project diff --git a/Examples/MAX32665/BLE_mcs/.settings/language.settings.xml b/Examples/MAX32665/Bluetooth/RF_Test/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_mcs/.settings/language.settings.xml rename to Examples/MAX32665/Bluetooth/RF_Test/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/Bluetooth/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/Bluetooth/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/RF_Test/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/Bluetooth/RF_Test/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/RF_Test/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/Bluetooth/RF_Test/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/RF_Test/.vscode/README.md b/Examples/MAX32665/Bluetooth/RF_Test/.vscode/README.md similarity index 100% rename from Examples/MAX32665/RF_Test/.vscode/README.md rename to Examples/MAX32665/Bluetooth/RF_Test/.vscode/README.md diff --git a/Examples/MAX32665/BLE_fcc/.vscode/c_cpp_properties.json b/Examples/MAX32665/Bluetooth/RF_Test/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_fcc/.vscode/c_cpp_properties.json rename to Examples/MAX32665/Bluetooth/RF_Test/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SPIXR/.vscode/flash.gdb b/Examples/MAX32665/Bluetooth/RF_Test/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/SPIXR/.vscode/flash.gdb rename to Examples/MAX32665/Bluetooth/RF_Test/.vscode/flash.gdb diff --git a/Examples/MAX32665/RF_Test/.vscode/launch.json b/Examples/MAX32665/Bluetooth/RF_Test/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/RF_Test/.vscode/launch.json rename to Examples/MAX32665/Bluetooth/RF_Test/.vscode/launch.json diff --git a/Examples/MAX32665/RF_Test/.vscode/settings.json b/Examples/MAX32665/Bluetooth/RF_Test/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/RF_Test/.vscode/settings.json rename to Examples/MAX32665/Bluetooth/RF_Test/.vscode/settings.json diff --git a/Examples/MAX32665/RF_Test/.vscode/tasks.json b/Examples/MAX32665/Bluetooth/RF_Test/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/RF_Test/.vscode/tasks.json rename to Examples/MAX32665/Bluetooth/RF_Test/.vscode/tasks.json diff --git a/Examples/MAX32665/RF_Test/BLE_fcc.launch b/Examples/MAX32665/Bluetooth/RF_Test/BLE_fcc.launch similarity index 100% rename from Examples/MAX32665/RF_Test/BLE_fcc.launch rename to Examples/MAX32665/Bluetooth/RF_Test/BLE_fcc.launch diff --git a/Examples/MAX32665/RF_Test/CLI-commands.c b/Examples/MAX32665/Bluetooth/RF_Test/CLI-commands.c similarity index 100% rename from Examples/MAX32665/RF_Test/CLI-commands.c rename to Examples/MAX32665/Bluetooth/RF_Test/CLI-commands.c diff --git a/Examples/MAX32665/Bluetooth/RF_Test/FreeRTOSConfig.h b/Examples/MAX32665/Bluetooth/RF_Test/FreeRTOSConfig.h new file mode 100644 index 00000000000..f2d115fe870 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/RF_Test/FreeRTOSConfig.h @@ -0,0 +1,149 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ + +#include +#include "max32665.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* CMSIS keeps a global updated with current system clock in Hz */ +#define configCPU_CLOCK_HZ ((uint32_t)HIRC96_FREQ) + +#define SLEEP_LED 1 +#define DEEPSLEEP_LED 0 + +/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ +// #define configUSE_TICKLESS_IDLE 1 + +/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will +increase the amount of time spent in standby mode, thus reducing average power consumption. */ +#ifdef configUSE_TICKLESS_IDLE +#define configTICK_RATE_HZ ((portTickType)10000) +#else +#define configTICK_RATE_HZ ((portTickType)1000) +#endif + +#define configRTC_TICK_RATE_HZ (32768) + +#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) + +#define configMINIMAL_STACK_SIZE ((uint16_t)128) + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configUSE_CO_ROUTINES 0 +#define configUSE_16_BIT_TICKS 0 +#define configUSE_MUTEXES 1 + +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) +#define configTIMER_QUEUE_LENGTH 8 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE + +/* Run time and task stats gathering related definitions. */ +#define configUSE_TRACE_FACILITY 1 +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelay 1 + +/* # of priority bits (configured in hardware) is provided by CMSIS */ +#define configPRIO_BITS __NVIC_PRIO_BITS + +#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) + +/* Only the top three bits are implemented. This is the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY \ + ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) + +/* Priority 5, or 160 as only the top three bits are implemented. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) + +/* Alias the default handler names to match CMSIS weak symbols */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#ifdef configUSE_TICKLESS_IDLE +/* Provide routines for tickless idle pre- and post- processing */ +void vPreSleepProcessing(uint32_t *); +void vPostSleepProcessing(uint32_t); +#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); +#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); +#endif + +/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 + +/* Overides FreeRTOS+CLI help command formatting*/ +#define configUSE_CUSTOM_HELP_COMMAND 1 + +#endif // EXAMPLES_MAX32665_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32665/Bluetooth/RF_Test/Makefile b/Examples/MAX32665/Bluetooth/RF_Test/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/RF_Test/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/RF_Test/README.md b/Examples/MAX32665/Bluetooth/RF_Test/README.md similarity index 100% rename from Examples/MAX32665/RF_Test/README.md rename to Examples/MAX32665/Bluetooth/RF_Test/README.md diff --git a/Examples/MAX32665/RF_Test/RF_Test.launch b/Examples/MAX32665/Bluetooth/RF_Test/RF_Test.launch similarity index 100% rename from Examples/MAX32665/RF_Test/RF_Test.launch rename to Examples/MAX32665/Bluetooth/RF_Test/RF_Test.launch diff --git a/Examples/MAX32665/Bluetooth/RF_Test/freertos_tickless.c b/Examples/MAX32665/Bluetooth/RF_Test/freertos_tickless.c new file mode 100644 index 00000000000..05779133a33 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/RF_Test/freertos_tickless.c @@ -0,0 +1,377 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Maxim CMSIS */ +#include "mxc_device.h" +#include "board.h" +#include "mxc_assert.h" +#include "lp.h" +#include "pwrseq_regs.h" +#include "wut.h" +#include "mcr_regs.h" +#include "icc.h" +#include "pb.h" +#include "led.h" +#include "uart.h" +#include "simo.h" + +/* FreeRTOS includes */ +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +/* Bluetooth Cordio library */ +#include "pal_timer.h" +#include "pal_uart.h" +#include "pal_bb.h" + +#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ +#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ +#define WAKEUP_US 1500 /* Deep sleep recovery time, units of us */ + +/* Minimum ticks before SysTick interrupt, units of system clock ticks. + * Convert CPU_CLOCK_HZ to units of ticks per us + */ +#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) + +/* + * Sleep-check function + * + * Your code should over-ride this weak function and return E_NO_ERROR if + * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other + * return code will prevent FreeRTOS from entering tickless idle. + */ +int freertos_permit_tickless(void) +{ + /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ + if (MXC_WUT_TrimPending() != E_NO_ERROR) { + return E_BUSY; + } + + /* Figure out if the UART is active */ + if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { + return E_BUSY; + } + + /* Prevent characters from being corrupted if still transmitting, + UART will shutdown in deep sleep */ + if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { + return E_BUSY; + } + + return E_NO_ERROR; +} + +/* + * Switch the system clock to the HIRC / 4 + * + * Enable the HIRC, set the divide ration to /4, and disable the HIRC96 oscillator. + */ +void switchToHIRCD4(void) +{ + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV4); + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC_EN; + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC); + /* Disable unused clocks */ + while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} + /* Wait for the switch to occur */ + MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC96M_EN); + SystemCoreClockUpdate(); +} + +/* + * Switch the system clock to the HIRC96 + * + * Enable the HIRC96, set the divide ration to /1, and disable the HIRC oscillator. + */ +void switchToHIRC(void) +{ + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV1); + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; + MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC96); + /* Disable unused clocks */ + while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} + /* Wait for the switch to occur */ + MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC_EN); + SystemCoreClockUpdate(); +} + +/* + * Enter deep sleep mode + * + * Adjust system clocks and voltages for deep sleep. + */ +static void deepSleep(void) +{ + MXC_ICC_Disable(); + MXC_LP_ICache0Shutdown(); + + /* Shutdown unused power domains */ + MXC_PWRSEQ->lpcn |= MXC_F_PWRSEQ_LPCN_BGOFF; + + /* Prevent SIMO soft start on wakeup */ + MXC_LP_FastWakeupDisable(); + + /* Enable VDDCSWEN=1 prior to enter backup/deepsleep mode */ + MXC_MCR->ctrl |= MXC_F_MCR_CTRL_VDDCSWEN; + + /* Switch the system clock to a lower frequency to conserve power in deep sleep + and reduce current inrush on wakeup */ + switchToHIRCD4(); + + /* Reduce VCOREB to 0.81v */ + MXC_SIMO_SetVregO_B(810); + + MXC_LP_EnterDeepSleepMode(); + + /* If VCOREA not ready and VCOREB ready, switch VCORE=VCOREB + (set VDDCSW=2’b01). Configure VCOREB=1.1V wait for VCOREB ready. */ + + /* Check to see if VCOREA is ready on */ + if (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYC)) { + /* Wait for VCOREB to be ready */ + while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} + + /* Move VCORE switch back to VCOREB */ + MXC_MCR->ctrl = (MXC_MCR->ctrl & ~(MXC_F_MCR_CTRL_VDDCSW)) | + (0x1 << MXC_F_MCR_CTRL_VDDCSW_POS); + + /* Raise the VCORE_B voltage */ + while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} + MXC_SIMO_SetVregO_B(1000); + while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} + } + + MXC_LP_ICache0PowerUp(); + MXC_ICC_Enable(); + + /* Restore the system clock */ + switchToHIRC(); +} + +/* + * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c + * + * DEEPSLEEP mode will stop SysTick from counting, so that can't be + * used to wake up. Instead, calculate a wake-up period for the WUT to + * interrupt the WFI and continue execution. + * + */ +void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) +{ + uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; + uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; + bool_t schTimerActive; + + /* We do not currently handle to case where the WUT is slower than the RTOS tick */ + MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); + + if (SysTick->VAL < MIN_SYSTICK) { + /* Avoid sleeping too close to a systick interrupt */ + return; + } + + /* Calculate the number of WUT ticks, but we need one to synchronize */ + idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / + (uint64_t)configTICK_RATE_HZ; + + if (idleTicks > MAX_WUT_TICKS) { + idleTicks = MAX_WUT_TICKS; + } + + /* Check to see if we meet the minimum requirements for deep sleep */ + if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { + return; + } + + /* Enter a critical section but don't use the taskENTER_CRITICAL() + method as that will mask interrupts that should exit sleep mode. */ + __asm volatile("cpsid i"); + + /* If a context switch is pending or a task is waiting for the scheduler + to be unsuspended then abandon the low power entry. */ + /* Also check the MXC drivers for any in-progress activity */ + if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || + (freertos_permit_tickless() != E_NO_ERROR)) { + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + + /* Determine if the Bluetooth scheduler is running */ + if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { + schTimerActive = TRUE; + } else { + schTimerActive = FALSE; + } + + if (!schTimerActive) { + uint32_t ts; + if (PalBbGetTimestamp(&ts)) { + /*Determine if PalBb is active, return if we get a valid time stamp indicating + * that the scheduler is waiting for a PalBb event */ + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + } + + /* Disable SysTick */ + SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); + + /* Enable wakeup from WUT */ + NVIC_EnableIRQ(WUT_IRQn); + MXC_LP_EnableWUTAlarmWakeup(); + + /* Determine if we need to snapshot the PalBb clock */ + if (schTimerActive) { + /* Snapshot the current WUT value with the PalBb clock */ + MXC_WUT_Store(); + preCapture = MXC_WUT_GetCount(); + schUsec = PalTimerGetExpTime(); + + /* Adjust idleTicks for the time it takes to restart the BLE hardware */ + idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); + + /* Calculate the time to the next BLE scheduler event */ + if (schUsec < WAKEUP_US) { + bleSleepTicks = 0; + } else { + bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * + (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; + } + } else { + /* Snapshot the current WUT value */ + MXC_WUT_Edge(); + preCapture = MXC_WUT_GetCount(); + bleSleepTicks = 0; + schUsec = 0; + } + + /* Sleep for the shortest tick duration */ + if ((schTimerActive) && (bleSleepTicks < idleTicks)) { + dsTicks = bleSleepTicks; + } else { + dsTicks = idleTicks; + } + + /* Bound the deep sleep time */ + if (dsTicks > MAX_WUT_TICKS) { + dsTicks = MAX_WUT_TICKS; + } + + /* Don't deep sleep if we don't have time */ + if (dsTicks >= MIN_WUT_TICKS) { + /* Arm the WUT interrupt */ + MXC_WUT->cmp = preCapture + dsTicks; + + if (schTimerActive) { + /* Stop the BLE scheduler timer */ + PalTimerStop(); + + /* Shutdown BB hardware */ + PalBbDisable(); + } + + LED_Off(SLEEP_LED); + LED_Off(DEEPSLEEP_LED); + + deepSleep(); + + LED_On(DEEPSLEEP_LED); + LED_On(SLEEP_LED); + + if (schTimerActive) { + /* Enable and restore the BB hardware */ + PalBbEnable(); + + PalBbRestore(); + + /* Restore the BB counter */ + MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); + + /* Restart the BLE scheduler timer */ + dsWutTicks = MXC_WUT->cnt - preCapture; + schUsecElapsed = + (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; + + int palTimerStartTicks = schUsec - schUsecElapsed; + if (palTimerStartTicks < 1) { + palTimerStartTicks = 1; + } + PalTimerStart(palTimerStartTicks); + } + } + + /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ + MXC_WUT_Edge(); + postCapture = MXC_WUT_GetCount(); + dsWutTicks = postCapture - preCapture; + + /* + * Advance ticks by # actually elapsed + */ + dsSysTickPeriods = + (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; + vTaskStepTick(dsSysTickPeriods); + + /* Re-enable SysTick */ + SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); +} diff --git a/Examples/MAX32665/Bluetooth/RF_Test/main.c b/Examples/MAX32665/Bluetooth/RF_Test/main.c new file mode 100644 index 00000000000..22f2e38ca2d --- /dev/null +++ b/Examples/MAX32665/Bluetooth/RF_Test/main.c @@ -0,0 +1,920 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Main module. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "main.h" + +/************************************************************************************************** + Definitions +**************************************************************************************************/ +/*! UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define FREQ_HOP_PERIOD_US 20000 +#define HISTORY_MEMORY_LENGTH 10 +/* FreeRTOS */ +#define CMD_LINE_BUF_SIZE 100 +#define OUTPUT_BUF_SIZE 512 +#define CONSOLE_UART 0 //EvKit/FTHR +/* Task IDs */ +TaskHandle_t cmd_task_id; +TaskHandle_t tx_task_id; +TaskHandle_t sweep_task_id; +TaskHandle_t help_task_id; +/* FreeRTOS+CLI */ +xSemaphoreHandle rfTestMutex; + +mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(CONSOLE_UART); +unsigned int disable_tickless = 1; /* Enables/disables tick-less mode */ +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/* Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/* Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +static uint8_t phy = LL_PHY_LE_1M; +static uint8_t phy_str[16]; +static uint8_t packetType_str[16]; +static uint8_t txFreqHopCh; +static uint8_t packetLen = 255; +static uint8_t packetType = LL_TEST_PKT_TYPE_AA; +static int8_t txPower = 10; +/* UART RX */ +char inputBuffer[CMD_LINE_BUF_SIZE]; /* Buffer for input */ +unsigned int bufferIndex; /* Index into buffer */ +char receivedChar; +/* CLI escape sequences*/ +uint8_t backspace[] = "\x08 \x08"; +enum { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW }; +/* CLI History */ +cmd_history_t cmd_history[HISTORY_MEMORY_LENGTH]; +static uint32_t escCounter = 0; +static uint8_t keyBoardSequenceBuff[3] = { 0 }; +queue_t historyQueue; + +/* CLI Prompt */ +test_t activeTest = NO_TEST; +bool clearScreen = false; +bool pausePrompt = false; + +/************************************************************************************************** + Functions +**************************************************************************************************/ +/* Physical layer functions. */ +extern void llc_api_set_txpower(int8_t power); +extern void dbb_seq_select_rf_channel(uint32_t rf_channel); +extern void llc_api_tx_ldo_setup(void); +extern void dbb_seq_tx_enable(void); +extern void dbb_seq_tx_disable(void); +extern const CLI_Command_Definition_t xCommandList[]; +void vRegisterCLICommands(void); +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPhyStr(uint8_t phy) +{ + switch (phy) { + case LL_TEST_PHY_LE_1M: + default: + memcpy(phy_str, "1M PHY", 7); + break; + case LL_TEST_PHY_LE_2M: + memcpy(phy_str, "2M PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S8: + memcpy(phy_str, "S8 PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S2: + memcpy(phy_str, "S2 PHY", 7); + break; + } + return phy_str; +} +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPacketTypeStr(void) +{ + switch (packetType) { + case LL_TEST_PKT_TYPE_PRBS9: + memcpy(packetType_str, "PRBS9", 6); + break; + case LL_TEST_PKT_TYPE_0F: + memcpy(packetType_str, "0x0F", 5); + break; + case LL_TEST_PKT_TYPE_55: + memcpy(packetType_str, "0x55", 5); + break; + case LL_TEST_PKT_TYPE_PRBS15: + memcpy(packetType_str, "PRBS15", 7); + break; + case LL_TEST_PKT_TYPE_FF: + memcpy(packetType_str, "0xFF", 5); + break; + case LL_TEST_PKT_TYPE_00: + memcpy(packetType_str, "0x00", 5); + break; + case LL_TEST_PKT_TYPE_F0: + memcpy(packetType_str, "0xF0", 5); + break; + case LL_TEST_PKT_TYPE_AA: + default: + memcpy(packetType_str, "0xAA", 5); + break; + } + return packetType_str; +} +/*************************************************************************************************/ +/*! + * \fn Timer 2 interrupts handler. + * + * \brief Controls the frequency hopping. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void TMR2_IRQHandler(void) +{ + int res; + + MXC_TMR_TO_Clear(MXC_TMR2); + + /* Start the next channel */ + res = LlEnhancedTxTest(txFreqHopCh++, packetLen, packetType, phy, 0); + if (res != LL_SUCCESS) + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + + /* Wrap the channels */ + if (txFreqHopCh == 40) + txFreqHopCh = 0; + + /* Restart the timeout */ + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); +} +/*************************************************************************************************/ +/*! + * \fn processEscSequence. + * + * \brief Compares keyboard sequence to ansi escape codes. + * + * \param seq keyboard sequence. + * + * \return None. + */ +/*************************************************************************************************/ +uint8_t processEscSequence(uint8_t *seq) +{ + uint8_t retVal = 0; + + uint8_t arrows[4][3] = { + /* Order of arrows here alligns with enum uptop */ + { 27, 91, 65 }, /* up arrow */ + + { 27, 91, 66 }, /* down arrow */ + + { 27, 91, 67 }, /* right arrow */ + + { 27, 91, 68 }, /* left arrow */ + }; + + /*arrows*/ + for (int arrowKey = 0; arrowKey < 4; arrowKey++) { //cycle through 4 arrow keys + for (int i = 0; i < 3; i++) { //cycle thorugh each index of each arrow key sequence + //compare each index of arrow key to each index of typed sequence buffer + for (int j = 0; j < 3; j++) { + if (seq[j] == arrows[arrowKey][i]) { + retVal++; + break; + } + } + } + /* If 3 motches found */ + if (retVal == 3) + return arrowKey; + else + retVal = 0; + } + + return 0xFF; +} +/*************************************************************************************************/ +/*! + * \fn cmdHistoryAdd. + * + * \brief adds latest command to command history buffer + * + * \param q pointer to the circular buffer holding command history + * \param cmd pointer to the command string to be added + * + * \return None. + */ +/*************************************************************************************************/ +void cmdHistoryAdd(queue_t *q, const uint8_t *cmd) +{ + /* clear command history slot of any previous data */ + memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); + /* copy new command histroy */ + memcpy(&q->command[q->head], cmd, strlen((const char *)cmd)); + q->command[q->head].length = strlen((const char *)cmd); + + /* update head, and push tail up if we have looped back around */ + q->head = (q->head + 1) % HISTORY_MEMORY_LENGTH; + if (q->head == q->tail) { + q->tail = (q->tail + 1) % HISTORY_MEMORY_LENGTH; + } + memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); + /* update pointer */ + q->queuePointer = historyQueue.head; +} +/*************************************************************************************************/ +/*! + * \fn updateQueuePointer. + * + * \brief Updates an internal marker pointing to historical command to be printed, based on up/down arrow + * + * \param q pointer to the circular buffer holding command history + * + * \param upArrow flag used to upated the queuePoniter delimiting which command to print + * + * \return None. + */ +/*************************************************************************************************/ +void updateQueuePointer(queue_t *q, bool upArrow) +{ + if (upArrow) { + /* empty queue or reached tail already */ + if (q->head == q->tail || q->queuePointer == q->tail) + return; + if (q->queuePointer == 0) + q->queuePointer = HISTORY_MEMORY_LENGTH - 1; + else + q->queuePointer = (q->queuePointer - 1) % HISTORY_MEMORY_LENGTH; + + } else { + /* empty queue or reached head already */ + if (q->head == q->tail || q->queuePointer == q->head) + return; + q->queuePointer = (q->queuePointer + 1) % HISTORY_MEMORY_LENGTH; + } +} +/*************************************************************************************************/ +/*! + * \fn printHistory. + * + * \brief prints previously typed commands + * + * \param upArrow flag used to upated the queuePoniter delimiting which command to print + * + * \return None. + */ +/*************************************************************************************************/ +void printHistory(bool upArrow) +{ + uint8_t numCharsToDelete = strlen(inputBuffer); + uint8_t moveForwardCount = 0; + updateQueuePointer(&historyQueue, upArrow); + uint8_t right[] = "\x1b\x5b\x43"; + /* no history yet */ + if (historyQueue.queuePointer < 0) + return; + /* if cursor is not at the end then move it forward */ + if (bufferIndex != strlen(inputBuffer)) { + moveForwardCount = strlen(inputBuffer) - bufferIndex; + for (int i = 0; i < moveForwardCount; i++) { + WsfBufIoWrite((const uint8_t *)right, sizeof(right)); + vTaskDelay(1); //give UART time to print + bufferIndex++; + } + } + /* send backspace to delete any currently typed text */ + if (numCharsToDelete) { + for (int i = 0; i < numCharsToDelete; i++) printf("%s", backspace); + } + /* copy history into inputBuffer */ + memset(inputBuffer, 0x00, 100); + memcpy(inputBuffer, historyQueue.command[historyQueue.queuePointer].cmd, + strlen((const char *)historyQueue.command[historyQueue.queuePointer].cmd)); + printf("%s", inputBuffer); + bufferIndex = strlen(inputBuffer); + + fflush(stdout); +} + +/*************************************************************************************************/ +/*! + * \fn cls + * + * \brief Clears screen + * + * \return None. + */ +/*************************************************************************************************/ +void cls(void) +{ + char str[7]; + snprintf(str, sizeof(str), "%s", "\033[2J"); + WsfBufIoWrite((const uint8_t *)str, 5); + clearScreen = false; +} +/*************************************************************************************************/ +/*! + * \fn prompt + * + * \brief Prints prompt to screen, indicates if a test is active + * + * \return None. + */ +/*************************************************************************************************/ +void prompt(void) +{ + char str[25]; + uint8_t len = 0; + + if (pausePrompt) + return; + + if (activeTest) { + snprintf(str, sizeof(str), "%s", "\r\n(active test) cmd:"); + len = 21; + } else { + snprintf(str, sizeof(str), "%s", "\r\ncmd:"); + len = 7; + } + + fflush(stdout); + if (clearScreen) { + cls(); + } + //using app_trace would add newline after prompt which does not look right + WsfBufIoWrite((const uint8_t *)str, len); +} +/*************************************************************************************************/ +/*! + * \fn printHint + * + * \brief Prints the help string of any command matching the current inputbuffer + * + * \param buff pointer to the inputbuffer + * + * \return None. + */ +/*************************************************************************************************/ +void printHint(char *buff) +{ + int i = 0; + uint8_t bufflen = strlen((const char *)buff); + bool foundMatch = false; + do { + if (memcmp(buff, xCommandList[i].pcCommand, bufflen) == 0 && bufflen > 0) { + if (foundMatch == false) + printf("\r\n"); + printf("\r\n> %s : %s", xCommandList[i].pcCommand, xCommandList[i].pcHelpString); + foundMatch = true; + } + i++; + } while (xCommandList[i].pcCommand != NULL); + if (foundMatch) { + /* print new prompt with what user had previouslly typed */ + printf("\r\n"); + prompt(); + vTaskDelay(5); + printf("%s", buff); + fflush(stdout); + } +} +/*************************************************************************************************/ +/*! + * \fn Process the Console RX + * + * \brief State machine for the console inputs. + * + * \param rxByte Character received from the console. + * + * \return None. + */ +/*************************************************************************************************/ +static void processConsoleRX(uint8_t rxByte) +{ + static uint32_t i = 0; + + BaseType_t xHigherPriorityTaskWoken; + // static uint8_t keyBoardSequenceBuff[3] = {0}; + receivedChar = rxByte; + keyBoardSequenceBuff[i++ % 3] = rxByte; + + // TODO(BLE): put all of this in command line task + /* if received esc character start escape sequence counter */ + if (rxByte == 27) + escCounter++; + + /* Wake the task */ + xHigherPriorityTaskWoken = pdFALSE; + vTaskNotifyGiveFromISR(cmd_task_id, &xHigherPriorityTaskWoken); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); +} +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.1 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; +} +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + +/* Use single pool for data buffers. */ +#if (BT_VER > 9) + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} +/*************************************************************************************************/ +void vCmdLineTask(void *pvParameters) +{ + unsigned char tmp; + unsigned int x; + int uartReadLen; + char output[OUTPUT_BUF_SIZE]; /* Buffer for output */ + BaseType_t xMore; + mxc_uart_req_t async_read_req; + memset(inputBuffer, 0, CMD_LINE_BUF_SIZE); + bufferIndex = 0; + + /* Register available CLI commands */ + vRegisterCLICommands(); + vTaskDelay(100); /* give time for ll api to print things */ + fflush(stdout); + /* clear screen and print help table */ + cls(); + pausePrompt = true; + xTaskNotify(help_task_id, 0xFF, eSetBits); + + memset(cmd_history, 0, sizeof(cmd_history_t) * HISTORY_MEMORY_LENGTH); + historyQueue.head = 0; + historyQueue.tail = 0; + while (1) { + ulTaskNotifyTake(pdTRUE, portMAX_DELAY); + + tmp = receivedChar; + /* Check that we have a valid character */ + if (escCounter > 0 && escCounter < 4) { + switch (processEscSequence(keyBoardSequenceBuff)) { + case UP_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + printHistory(true); + break; + + case DOWN_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + printHistory(false); + break; + + case RIGHT_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + if (bufferIndex < strlen(inputBuffer)) { + uint8_t right[] = "\x1b\x5b\x43"; + WsfBufIoWrite((const uint8_t *)right, sizeof(right)); + bufferIndex++; + } + escCounter = 0; + + break; + case LEFT_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + if (bufferIndex > 0) { + uint8_t left[] = "\x1b\x5b\x44"; + WsfBufIoWrite((const uint8_t *)left, sizeof(left)); + bufferIndex--; + } + break; + + default: + escCounter++; + break; + } + } else { + escCounter = 0; + if (async_read_req.rxCnt > 0) { + /* Process character */ + do { + /* 0x08 BS linux , 127 Del windows/putty */ + if (tmp == 0x08 || tmp == 127) { + /* Backspace */ + if (bufferIndex > 0) { + bufferIndex--; + memset(&inputBuffer[bufferIndex], 0x00, 1); + WsfBufIoWrite((const uint8_t *)backspace, sizeof(backspace)); + } + fflush(stdout); + + } else if (tmp == 0x09) { + /* tab hint */ + printHint(inputBuffer); + + } else if ((char)tmp == 'e' && activeTest == BLE_FHOP_TEST) { + /* since freq hop does not allow user to see what they are typing, simply typing + * 'e' without the need to press enter willl stop the frequency hopping test */ + LlEndTest(NULL); + MXC_TMR_Stop(MXC_TMR2); + activeTest = NO_TEST; + + xSemaphoreGive(rfTestMutex); + prompt(); + + } else if (tmp == 0x03) { + /* ^C abort */ + bufferIndex = 0; + APP_TRACE_INFO0("^C"); + prompt(); + + } else if ((tmp == '\r') || (tmp == '\n')) { + historyQueue.queuePointer = historyQueue.head; + if (strlen(inputBuffer) > 0) { + APP_TRACE_INFO0("\r\n"); + /* save to history */ + cmdHistoryAdd(&historyQueue, (const uint8_t *)inputBuffer); + /* Evaluate */ + do { + xMore = FreeRTOS_CLIProcessCommand(inputBuffer, output, + OUTPUT_BUF_SIZE); + for (x = 0; + x < (xMore == pdTRUE ? OUTPUT_BUF_SIZE : strlen(output)); + x++) { + putchar(*(output + x)); + } + } while (xMore != pdFALSE); + } + + /* New prompt */ + bufferIndex = 0; + memset(inputBuffer, 0x00, 100); + prompt(); + } else if (bufferIndex < CMD_LINE_BUF_SIZE) { + putchar(tmp); + inputBuffer[bufferIndex++] = tmp; + fflush(stdout); + + } else { + /* Throw away data and beep terminal */ + putchar(0x07); + fflush(stdout); + } + uartReadLen = 1; + /* If more characters are ready, process them here */ + } while ((MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) > 0) && + (MXC_UART_Read(ConsoleUART, (uint8_t *)&tmp, &uartReadLen) == 0)); + } + } + } +} +/*************************************************************************************************/ +void txTestTask(void *pvParameters) +{ + static int res = 0xff; + uint32_t notifVal = 0; + tx_config_t testConfig; + char str[80] = ""; + while (1) { + /* Wait for notification to initiate TX/RX */ + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + /* Get test settings from the notification value */ + testConfig.allData = notifVal; + + if (testConfig.testType == BLE_TX_TEST) { + snprintf(str, sizeof(str), + "Transmit RF channel %d on Freq %dMHz, %dbytes/pkt : ", testConfig.channel, + getFreqFromRfChannel(testConfig.channel), packetLen); + snprintf(str, sizeof(str), "%s%s", str, (const char *)getPacketTypeStr()); + } else { + snprintf(str, sizeof(str), "Receive RF channel %d Freq %dMHz: ", testConfig.channel, + getFreqFromRfChannel(testConfig.channel)); + } + + snprintf(str, sizeof(str), "%s%s", str, " : "); + snprintf(str, sizeof(str), "%s%s", str, (const char *)getPhyStr(phy)); + APP_TRACE_INFO1("%s", str); + + /* stat test */ + if (testConfig.testType == BLE_TX_TEST) { + res = LlEnhancedTxTest(testConfig.channel, packetLen, packetType, phy, 0); + } else { + res = LlEnhancedRxTest(testConfig.channel, phy, 0, 0); + } + APP_TRACE_INFO2("result = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + /* if duration value was given then let the test run that amount of time and end */ + if (testConfig.duration_ms) { + vTaskDelay(testConfig.duration_ms); + LlEndTest(NULL); + xSemaphoreGive(rfTestMutex); + } + pausePrompt = false; + + prompt(); + } +} +/*************************************************************************************************/ +void sweepTestTask(void *pvParameters) +{ + uint32_t notifVal = 0; + sweep_config_t sweepConfig; + + while (1) { + /* Wait for notification to initiate sweep */ + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + sweepConfig.allData = notifVal; + APP_TRACE_INFO3("\r\nStarting TX sweep from Ch %d to Ch %d @ %d ms per channel", + sweepConfig.start_channel, sweepConfig.end_channel, + sweepConfig.duration_per_ch_ms); + + char str[6] = ""; + + snprintf(str, sizeof(str), "%s", (const char *)getPhyStr(phy)); + + /* sweep channels */ + for (int i = sweepConfig.start_channel; i <= sweepConfig.end_channel; i++) { + APP_TRACE_INFO3( + "\r\n-----------------| RF channel %d %s Freq: %dMHz |----------------------\r\n", + i, str, getFreqFromRfChannel(i)); + + LlEnhancedTxTest(i, packetLen, packetType, phy, 0); + vTaskDelay(sweepConfig.duration_per_ch_ms); + LlEndTest(NULL); + xSemaphoreGive(rfTestMutex); + vTaskDelay(50); /* give console time to print end of test reuslts */ + } + activeTest = NO_TEST; + pausePrompt = false; + prompt(); + } +} +/*************************************************************************************************/ +void helpTask(void *pvParameters) +{ + uint32_t notifVal = 0; + while (1) { + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + + // clang-format off + printf("┌─────────┬──────────────────────────────────┬───────────────────────────────────────────────────────â”\r\n"); + printf("│ Command │ parameters [optional] │ description │\r\n"); + printf("├─────────┼──────────────────────────────────┼───────────────────────────────────────────────────────┤\r\n"); + printf("│ cls │ N/A │ clears the screen │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ constTx │ │ Constant TX on given channel. │\r\n"); + printf("│ │ ex: constTx 0 1M │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ e │ N/A │ Ends any active RX/TX/Constant/Freq.hop RF test │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ ps │ N/A │ Display freeRTOS task stats │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ rx │ │ RX test on given channel. │\r\n"); + printf("│ │ ex: rx 0 2M 500 │ Duration of 0 is max duration until stopped │\r\n"); + printf("│ │ │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); + printf("│ │ │ (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ sweep │ │ Sweeps TX tests through a range of RF channels given │\r\n"); + printf("│ │ │ their order of appearance on the spectrum. │\r\n"); + printf("│ │ ex: sweep 0 10 255 FF 2M 500 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); + printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); + printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ tx │ │ TX test on given RF channel. │\r\n"); + printf("│ │ │ Duration of 0 is max duration until stopped │\r\n"); + printf("│ │ ex: tx 0 255 FF 2M 1000 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); + printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); + printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ power │ │ Select transmit power. Supported power levels (dBm) │\r\n"); + printf("│ │ ex: power -10 │ -10 , 0 , 4 │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ help │ N/A │ Displays this help table │\r\n"); + printf("└─────────┴──────────────────────────────────┴───────────────────────────────────────────────────────┘\r\n"); + // clang-format on + + pausePrompt = false; + prompt(); + } +} +/*************************************************************************************************/ +void setPhy(uint8_t newPhy) +{ + phy = newPhy; + char str[20] = "> Phy now set to "; + snprintf(str, sizeof(str), "%s%s", "> Phy now set to ", + (phy == LL_TEST_PHY_LE_1M) ? "1M PHY" : + (phy == LL_TEST_PHY_LE_2M) ? "2M PHY" : + (phy == LL_TEST_PHY_LE_CODED_S8) ? "S8 PHY" : + (phy == LL_TEST_PHY_LE_CODED_S2) ? "S2 PHY" : + ""); + APP_TRACE_INFO1("%s", str); +} +/*************************************************************************************************/ +void startFreqHopping(void) +{ + NVIC_EnableIRQ(TMR2_IRQn); + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); +} /*************************************************************************************************/ +void setPacketLen(uint8_t len) +{ + packetLen = len; + APP_TRACE_INFO1("> Packet length set to %d", len); +} +/*************************************************************************************************/ +void setPacketType(uint8_t type) +{ + packetType = type; + APP_TRACE_INFO1("> Packet type set to %s", getPacketTypeStr()); +} +/*************************************************************************************************/ +void setTxPower(int8_t power) +{ + // TODO(BLE): validate value + txPower = power; + llc_api_set_txpower((int8_t)power); + LlSetAdvTxPower((int8_t)power); + printf("> Power set to %d dBm\n", power); +} +/*************************************************************************************************/ +void printConfigs(void) +{ + printf("-----| Current RF Configrations |-----\r\n"); + printf("Phy : %s \r\nPayload packet : %s\r\nPayload length : %d \r\nTX Power : %d dbm\r\n", + getPhyStr(phy), getPacketTypeStr(), packetLen, txPower); +} +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); +#endif + + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Register the UART RX request */ + WsfBufIoUartRegister(processConsoleRX); + + /* FreeRTOS */ + rfTestMutex = xSemaphoreCreateMutex(); + if (rfTestMutex == NULL) { + printf("xSemaphoreCreateMutex failed to create a mutex.\n"); + printf("necessary for operation...\r\n"); + while (1) { + //hang here.... + } + } + xTaskCreate(vCmdLineTask, (const char *)"CmdLineTask", + 1024 + CMD_LINE_BUF_SIZE + OUTPUT_BUF_SIZE, NULL, tskIDLE_PRIORITY + 1, + &cmd_task_id); + // TX tranismit test task + xTaskCreate(txTestTask, (const char *)"Tx Task", 1024, NULL, tskIDLE_PRIORITY + 1, &tx_task_id); + + // Sweep test task + xTaskCreate(sweepTestTask, (const char *)"Sweep Task", 1024, NULL, tskIDLE_PRIORITY + 1, + &sweep_task_id); + + // help task + xTaskCreate(helpTask, (const char *)"Help Task", 1024, NULL, tskIDLE_PRIORITY + 1, + &help_task_id); + + /* Start scheduler */ + APP_TRACE_INFO0(">> Starting scheduler.\r\n"); + + vTaskStartScheduler(); + + return 0; +} +/*************************************************************************************************/ +/*! + * \brief Calculates frequency of given RF channel + * \return Returns frequency of given RF channel + */ +/*************************************************************************************************/ +uint16_t getFreqFromRfChannel(uint8_t ch) +{ + return 2402 + (ch * 2); +} diff --git a/Examples/MAX32665/Bluetooth/RF_Test/main.h b/Examples/MAX32665/Bluetooth/RF_Test/main.h new file mode 100644 index 00000000000..7b2d776b009 --- /dev/null +++ b/Examples/MAX32665/Bluetooth/RF_Test/main.h @@ -0,0 +1,107 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Main module. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32665_BLUETOOTH_RF_TEST_MAIN_H_ +#define EXAMPLES_MAX32665_BLUETOOTH_RF_TEST_MAIN_H_ + +#include +#include +#include +#include "ll_init_api.h" +#include "ll_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "tmr.h" +#include "wut_regs.h" +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "portmacro.h" +#include "task.h" +#include "semphr.h" +#include "FreeRTOS_CLI.h" +#include "uart.h" +#include "mxc_delay.h" +#include "mxc_errors.h" +#include "nvic_table.h" + +typedef enum uint8_t { + NO_TEST, + BLE_RX_TEST, + BLE_TX_TEST, + BLE_CONST_TX, + BLE_SWEEP_TEST, + BLE_FHOP_TEST, +} test_t; + +typedef union { + struct { + uint16_t duration_ms; + uint8_t channel; + test_t testType; + }; + uint32_t allData; +} tx_config_t; + +typedef union { + struct { + uint8_t start_channel; + uint8_t end_channel; + uint16_t duration_per_ch_ms; + }; + uint32_t allData; +} sweep_config_t; + +typedef struct { + uint8_t cmd[100]; + uint8_t length; +} cmd_history_t; + +typedef struct { + cmd_history_t command[10]; + uint8_t head; + uint8_t tail; + int queuePointer; +} queue_t; + +void setPhy(uint8_t newPhy); +void startFreqHopping(void); +void setPacketLen(uint8_t len); +void setPacketType(uint8_t type); +void setTxPower(int8_t power); +void printConfigs(void); +uint16_t getFreqFromRfChannel(uint8_t ch); + +#endif // EXAMPLES_MAX32665_BLUETOOTH_RF_TEST_MAIN_H_ diff --git a/Examples/MAX32665/RF_Test/project.mk b/Examples/MAX32665/Bluetooth/RF_Test/project.mk similarity index 100% rename from Examples/MAX32665/RF_Test/project.mk rename to Examples/MAX32665/Bluetooth/RF_Test/project.mk diff --git a/Examples/MAX32665/Bootloader/.vscode/flash.gdb b/Examples/MAX32665/Bootloader/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/Bootloader/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/Bootloader/Makefile b/Examples/MAX32665/Bootloader/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/Bootloader/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/Bootloader/boot_lower.S b/Examples/MAX32665/Bootloader/boot_lower.S deleted file mode 100644 index 401c381f915..00000000000 --- a/Examples/MAX32665/Bootloader/boot_lower.S +++ /dev/null @@ -1,60 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - - .syntax unified - .arch armv7-m - .text - .thumb - .thumb_func - .align 2 - - - .globl Boot_Lower - .type Boot_Lower %function -/* Boot from the lower flash array */ -Boot_Lower: - - ldr r0,=0x10004000 /* Address for main flash image */ - ldr r1,=0xE000ED08 /* Address for SCB_VTOR_REG */ - - /* First 32-bit word in image is initial stack pointer */ - /* Second 32-bit word in image is Address of the Reset Handler */ - - /* Set VTOR with vector table base address */ - str r0,[r1] - /* Load initial SP */ - ldr sp,[r0] - /* Load LR with address of the Reset Handler */ - ldr lr,[r0,#4] - /* Jump to Reset Handler. */ - bx lr diff --git a/Examples/MAX32665/Bootloader/bootloader.ld b/Examples/MAX32665/Bootloader/bootloader.ld deleted file mode 100644 index 2a37c60cb37..00000000000 --- a/Examples/MAX32665/Bootloader/bootloader.ld +++ /dev/null @@ -1,150 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -BOOTLOADER_ORIGIN = 0x10000000; -BOOTLOADER_LEN = 0x4000; -FLASH_SECTION_LEN = 0x80000 - BOOTLOADER_LEN; -FLASH0_ORIGIN = BOOTLOADER_ORIGIN + BOOTLOADER_LEN; - -MEMORY { - FLASH (rx) : ORIGIN = BOOTLOADER_ORIGIN, LENGTH = BOOTLOADER_LEN - FLASH0 (rx) : ORIGIN = FLASH0_ORIGIN, LENGTH = FLASH_SECTION_LEN - FLASH1 (rx) : ORIGIN = 0x10080000, LENGTH = FLASH_SECTION_LEN - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 -} - -SECTIONS { - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - .flash0 (NOLOAD) : - { - _flash0 = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash0 = ALIGN(., 4); - } > FLASH0 - - .flash1 (NOLOAD) : - { - _flash1 = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash1 = ALIGN(., 4); - } > FLASH1 - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.flashprog*) /* Flash program */ - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32665/Bootloader/main_ext.c b/Examples/MAX32665/Bootloader/main_ext.c deleted file mode 100644 index b2544fd432c..00000000000 --- a/Examples/MAX32665/Bootloader/main_ext.c +++ /dev/null @@ -1,335 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Bootloader - * @details Simple bootloader to verify and replace images. - */ - -/***** Includes *****/ -#include -#include -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "pb.h" -#include "board.h" -#include "mxc_delay.h" -#include "flc.h" -#include "Ext_Flash.h" -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/* Addresses for the flash sections, defined in the linker file */ -extern uint32_t _flash0; -extern uint32_t _flash1; - -#define FLASH0_START ((uint32_t)&_flash0) -#define FLASH1_START ((uint32_t)&_flash1) -#define FLASH_ERASED_WORD 0xFFFFFFFF -#define CRC32_LEN 4 -#define EXT_FLASH_BLOCK_SIZE 224 - -#define DELAY(loopCount) \ - for (i = 0; i < loopCount; i++) {} - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; -fileHeader_t fileHeader; - -typedef enum { COPY_FILE_OP, CALC_CRC32_OP } externFileOp_t; -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/* Defined in boot_lower.S */ -extern void Boot_Lower(void); - -void ledSuccessPattern(void) -{ - /* Green LED blinks */ - volatile int i, j; - for (j = 0; j < 10; j++) { - LED_Toggle(1); - DELAY(0xFFFFF); - } -} -void ledFailPattern(void) -{ - /* Red LED blinks */ - volatile int i, j; - for (j = 0; j < 10; j++) { - LED_Toggle(0); - DELAY(0xFFFFF); - } -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) { - table[i] = crc32_for_byte(i); - } - } - - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -void bootError(void) -{ - /* Flash the failure LED */ - ledFailPattern(); - NVIC_SystemReset(); -} - -int flashPageErased(uint32_t *addr) -{ - /* Determine if this page is totally erased */ - int i; - for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { - if (*(addr + i) != FLASH_ERASED_WORD) { - return 0; - } - } - - return 1; -} - -static int multiPageErase(uint8_t *address, uint32_t pages) -{ - int err; - volatile uint32_t address32 = (uint32_t)address; - address32 &= 0xFFFFF; - - while (pages) { - err = MXC_FLC_PageErase((uint32_t)address); - if (err != E_NO_ERROR) { - return err; - } - - address += MXC_FLASH_PAGE_SIZE; - pages--; - } - - return E_NO_ERROR; -} - -static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) -{ - int err; - - while ((len / 16) > 0) { - err = MXC_FLC_Write128((uint32_t)address, data); - if (err != E_NO_ERROR) { - return err; - } - len -= 16; - address += 4; - data += 4; - } - while (len) { - err = MXC_FLC_Write32((uint32_t)address, *data); - if (err != E_NO_ERROR) { - return err; - } - len -= 4; - address += 1; - data += 1; - } - return E_NO_ERROR; -} - -uint32_t externFileOperation(externFileOp_t fileOperation) -{ - uint32_t internalFlashStartingAddress = FLASH0_START; - uint8_t extFlashBlockBuff[EXT_FLASH_BLOCK_SIZE] = { 0 }; - uint32_t startingAddress = 0x00000000 + sizeof(fileHeader_t); - uint32_t fileLen = fileHeader.fileLen; - uint32_t crcResult = 0; - uint32_t err = 0; - /* Read blocks from ext flash and perform desired fileOperation */ - while (fileLen >= EXT_FLASH_BLOCK_SIZE) { - Ext_Flash_Read(startingAddress, extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, - Ext_Flash_DataLine_Quad); - if (fileOperation == CALC_CRC32_OP) { - crc32(extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE, &crcResult); - } else if (fileOperation == COPY_FILE_OP) { - err += flashWrite((uint32_t *)internalFlashStartingAddress, - (uint32_t *)extFlashBlockBuff, EXT_FLASH_BLOCK_SIZE); - internalFlashStartingAddress += EXT_FLASH_BLOCK_SIZE; - } - fileLen -= EXT_FLASH_BLOCK_SIZE; - startingAddress += EXT_FLASH_BLOCK_SIZE; - } - /* Read remaining data that did not fill a block */ - if (fileLen) { - Ext_Flash_Read(startingAddress, extFlashBlockBuff, fileLen, Ext_Flash_DataLine_Quad); - if (fileOperation == CALC_CRC32_OP) { - crc32(extFlashBlockBuff, fileLen, &crcResult); - } else if (fileOperation == COPY_FILE_OP) { - err += flashWrite((uint32_t *)internalFlashStartingAddress, - (uint32_t *)extFlashBlockBuff, fileLen); - } - } - if (fileOperation == COPY_FILE_OP) - return err; - - return crcResult; -} - -int main(void) -{ - volatile int i; - int err = 0x00000000; - uint32_t startingAddress = 0x00000000; - uint32_t crcResult = 0x00000000; - int numLedsBlink; - - /* Limit the number of LED blinks */ - if (num_leds > 2) { - numLedsBlink = 2; - } else { - numLedsBlink = num_leds; - } - - /* Prevent bricks */ - if (numLedsBlink == 0) { - DELAY(0x3FFFFF); - } - - LED_Init(); - for (int led = 0; led < numLedsBlink; led++) { - LED_On(led); - DELAY(0x1FFFFF); - LED_Off(led); - DELAY(0x1FFFFF); - } - - /* disable interrupts to prevent these operations from being interrupted */ - __disable_irq(); - - /* init external flash */ - err += Ext_Flash_Init(); - err += Ext_Flash_Quad(1); - - if (err == 0) { - /* Get header from ext flash */ - Ext_Flash_Read(startingAddress, (uint8_t *)&fileHeader, sizeof(fileHeader_t), - Ext_Flash_DataLine_Quad); - - /* Verify header integrity */ - if (fileHeader.fileLen != 0xFFFFFFFF && fileHeader.fileCRC != 0xFFFFFFFF) { - crcResult = externFileOperation(CALC_CRC32_OP); - /* Check the calculated digest against what was received */ - if (fileHeader.fileCRC != crcResult) { - ledFailPattern(); - } else { - /* Calculate how many pages the new image will occupy, +1 for remainder */ - uint32_t pagesToErase = (fileHeader.fileLen / MXC_FLASH_PAGE_SIZE) + 1; - /* Erase the destination pages */ - if (multiPageErase((uint8_t *)FLASH0_START, pagesToErase) != E_NO_ERROR) { - /* Failed to erase pages */ - bootError(); - } - /* copy external file */ - err = externFileOperation(COPY_FILE_OP); - if (err) { - bootError(); - } - /* check what was written to flash */ - crcResult = 0; - crc32((const void *)FLASH0_START, fileHeader.fileLen, &crcResult); - if (crcResult != fileHeader.fileCRC) { - /* Bad firmware was written to internal flash */ - while (1) { - ledFailPattern(); - } - } - /* As long as first sector is erased so the bootloader does not try to reload its contents */ - Ext_Flash_Erase(0x00000000, Ext_Flash_Erase_64K); - if (err == 0) { - ledSuccessPattern(); - } - } - } - } else { - /* external flash init error */ - ledFailPattern(); - bootError(); - } - - /* Boot from lower image */ - Boot_Lower(); - - while (1) {} - - return 0; -} diff --git a/Examples/MAX32665/Bootloader/main_int.c b/Examples/MAX32665/Bootloader/main_int.c deleted file mode 100644 index e057405df38..00000000000 --- a/Examples/MAX32665/Bootloader/main_int.c +++ /dev/null @@ -1,295 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Bootloader - * @details Simple bootloader to verify and replace images. - */ - -/***** Includes *****/ -#include -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "pb.h" -#include "board.h" -#include "mxc_delay.h" -#include "flc.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/* Addresses for the flash sections, defined in the linker file */ -extern uint32_t _flash0; -extern uint32_t _flash1; - -#define FLASH0_START ((uint32_t)&_flash0) -#define FLASH1_START ((uint32_t)&_flash1) -#define FLASH_ERASED_WORD 0xFFFFFFFF -#define CRC32_LEN 4 - -#define DELAY(loopCount) \ - for (i = 0; i < loopCount; i++) {} - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/* Defined in boot_lower.S */ -extern void Boot_Lower(void); - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) { - table[i] = crc32_for_byte(i); - } - } - - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -void bootError(void) -{ - /* Flash the failure LED */ - int j; - volatile int i; - for (j = 0; j < 10; j++) { - LED_Toggle(0); - for (i = 0; i < 0xFFFFF; i++) {} - } - NVIC_SystemReset(); -} - -int flashPageErased(uint32_t *addr) -{ - /* Determine if this page is totally erased */ - int i; - for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { - if (*(addr + i) != FLASH_ERASED_WORD) { - return 0; - } - } - - return 1; -} - -uint32_t findUpperLen(void) -{ - uint32_t *flashPagePointer = (uint32_t *)FLASH1_START; - - /* Find the first erased page in the upper flash*/ - while (1) { - if (*flashPagePointer == FLASH_ERASED_WORD) { - /* Make sure the entire page is erased */ - if (flashPageErased(flashPagePointer)) { - break; - } - } - - flashPagePointer += (MXC_FLASH_PAGE_SIZE / 4); - } - - /* Length is 0 */ - if (flashPagePointer == (uint32_t *)FLASH1_START) { - return 0; - } - - /* search backwards for the first bytes that isn't erased */ - while (*(flashPagePointer--) == FLASH_ERASED_WORD) {} - flashPagePointer += 2; - - /* return the starting address of the CRC, last address of the image */ - return (uint32_t)(flashPagePointer - (4 / 4) - (FLASH1_START / 4)); -} - -static int multiPageErase(uint8_t *address, uint32_t size) -{ - int err; - volatile uint32_t address32 = (uint32_t)address; - address32 &= 0xFFFFF; - - /* Page align the size */ - size += MXC_FLASH_PAGE_SIZE - (size % MXC_FLASH_PAGE_SIZE); - - while (size) { - err = MXC_FLC_PageErase((uint32_t)address); - if (err != E_NO_ERROR) { - return err; - } - - address += MXC_FLASH_PAGE_SIZE; - size -= MXC_FLASH_PAGE_SIZE; - } - - return E_NO_ERROR; -} - -static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) -{ - int err; - - while ((len / 16) > 0) { - err = MXC_FLC_Write128((uint32_t)address, data); - if (err != E_NO_ERROR) { - return err; - } - len -= 16; - address += 4; - data += 4; - } - while (len) { - err = MXC_FLC_Write32((uint32_t)address, *data); - if (err != E_NO_ERROR) { - return err; - } - len -= 4; - address += 1; - data += 1; - } - return E_NO_ERROR; -} - -int main(void) -{ - volatile int i; - int numLedsBlink; - - /* Limit the number of LED blinks */ - if (num_leds > 2) { - numLedsBlink = 2; - } else { - numLedsBlink = num_leds; - } - - /* Prevent bricks */ - if (numLedsBlink == 0) { - DELAY(0x3FFFFF); - } - - LED_Init(); - for (int led = 0; led < numLedsBlink; led++) { - LED_On(led); - DELAY(0x1FFFFF); - LED_Off(led); - DELAY(0x1FFFFF); - } - - /* disable interrupts to prevent these operations from being interrupted */ - __disable_irq(); - - /* Get the length of the image in the upper flash array */ - uint32_t len = findUpperLen(); - - /* Attempt to verify the upper image if we get a valid length */ - if (len) { - /* Validate the image with CRC32 */ - uint32_t crcResult = 0; - - crc32((const void *)FLASH1_START, len, &crcResult); - - /* Check the calculated digest against what was received */ - if (crcResult == (uint32_t) * (uint32_t *)(FLASH1_START + len)) { - /* Erase the destination pages */ - if (multiPageErase((uint8_t *)FLASH0_START, len) != E_NO_ERROR) { - /* Failed to erase pages */ - bootError(); - } - /* Copy the new firmware image */ - if (flashWrite((uint32_t *)FLASH0_START, (uint32_t *)FLASH1_START, len) != E_NO_ERROR) { - /* Failed to write new image */ - bootError(); - } else { - /* Flash the success LED for a successful update */ - int j; - for (j = 0; j < 10; j++) { - LED_Toggle(1); - for (i = 0; i < 0xFFFFF; i++) {} - } - } - /* Erase the update pages */ - if (multiPageErase((uint8_t *)FLASH1_START, len) != E_NO_ERROR) { - /* Failed to erase pages, continue to boot from the lower pages */ - } - } else { - /* Flash the error LED for a CRC failure */ - int j; - for (j = 0; j < 10; j++) { - LED_Toggle(0); - for (i = 0; i < 0xFFFFF; i++) {} - } - } - } - - /* Boot from lower image */ - Boot_Lower(); - - while (1) {} -} diff --git a/Examples/MAX32665/Bootloader_Host/.vscode/flash.gdb b/Examples/MAX32665/Bootloader_Host/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/Bootloader_Host/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/Bootloader_Host/Makefile b/Examples/MAX32665/Bootloader_Host/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/Bootloader_Host/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/Bootloader_Host/include/platform.h b/Examples/MAX32665/Bootloader_Host/include/platform.h deleted file mode 100644 index 40d74a352af..00000000000 --- a/Examples/MAX32665/Bootloader_Host/include/platform.h +++ /dev/null @@ -1,62 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BOOTLOADER_HOST_INCLUDE_PLATFORM_H_ -#define EXAMPLES_MAX32665_BOOTLOADER_HOST_INCLUDE_PLATFORM_H_ - -/******************************* INCLUDES ****************************/ - -/******************************* DEFINES ****************************/ - -/******************************* Type Definitions ****************************/ - -/******************************* Public Functions ****************************/ -// i2c -int plt_i2c_init(void); -int plt_i2c_write(unsigned char *src, unsigned int len); -int plt_i2c_read(unsigned char *dst, unsigned int len); - -// spi -int plt_spi_init(void); -int plt_spi_write(unsigned char *src, unsigned int len); -int plt_spi_read(unsigned char *dst, unsigned int len); - -// gpio -int plt_gpio_init(void); -void plt_gpio_set(unsigned int idx, int state); -int plt_gpio_get(unsigned int idx); - -// delay -void plt_delay_ms(unsigned int ms); - -#endif // EXAMPLES_MAX32665_BOOTLOADER_HOST_INCLUDE_PLATFORM_H_ diff --git a/Examples/MAX32665/Bootloader_Host/include/terminal.h b/Examples/MAX32665/Bootloader_Host/include/terminal.h deleted file mode 100644 index 18a042bfd34..00000000000 --- a/Examples/MAX32665/Bootloader_Host/include/terminal.h +++ /dev/null @@ -1,56 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BOOTLOADER_HOST_INCLUDE_TERMINAL_H_ -#define EXAMPLES_MAX32665_BOOTLOADER_HOST_INCLUDE_TERMINAL_H_ - -/******************************* INCLUDES ****************************/ - -/******************************* DEFINES ****************************/ -#define KEY_ESC -1 -#define KEY_CANCEL -1 - -/******************************* Type Definitions ****************************/ -typedef struct { - const char *name; - int (*callback)(const char *parentName); -} list_t; - -/******************************* Public Functions ****************************/ -int terminal_init(void); -int terminal_printf(const char *format, ...); -void terminal_hexdump(const char *title, char *buf, unsigned int len); -int terminal_read_num(unsigned int timeout); -int terminal_select_from_list(const char *title, const list_t *items, int nb_items, int nb_col); - -#endif // EXAMPLES_MAX32665_BOOTLOADER_HOST_INCLUDE_TERMINAL_H_ diff --git a/Examples/MAX32665/Bootloader_Host/src/main.c b/Examples/MAX32665/Bootloader_Host/src/main.c deleted file mode 100644 index 21e300fc88b..00000000000 --- a/Examples/MAX32665/Bootloader_Host/src/main.c +++ /dev/null @@ -1,184 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Bootloader Host Example - * - * @details This example provide a menu on terminal, depend on the selection it run tests. - */ - -/******************************* INCLUDES ****************************/ -#include -#include - -#include "terminal.h" -#include "bootloader.h" -#include "platform.h" -#include "board.h" - -#include "test_images.h" - -/******************************* DEFINES ****************************/ - -/******************************* Type Definitions ****************************/ - -/******************************* Variables ****************************/ -extern int bootloader_menu(const char *parentName); - -/******************************* Static Functions ****************************/ -static int select_interface(const char *parentName) -{ - int ret; - - list_t list[] = { - { "I2C", NULL }, - { "SPI", NULL }, - }; - - while (1) { - ret = terminal_select_from_list(parentName, list, sizeof(list) / sizeof(list[0]), 1); - if (ret == KEY_CANCEL) { - break; - } - - if (ret == 1) { - bl_update_interface(plt_i2c_read, plt_i2c_write); - terminal_printf("Host-<->Target interface configured as I2C\r\n"); - ret = 0; // means success - break; - } else if (ret == 2) { - bl_update_interface(plt_spi_read, plt_spi_write); - terminal_printf("Host-<->Target interface configured as SPI\r\n"); - ret = 0; // means success - break; - } - } - - return ret; -} - -static int update_fw_nonsecure_MAX32660_blinkled_slow_P0_13(const char *parentName) -{ - return bl_flash_image(nonsecure_MAX32660_blinkled_slow_P0_13); -} - -static int update_fw_nonsecure_MAX32660_blinkled_fast_P0_13(const char *parentName) -{ - return bl_flash_image(nonsecure_MAX32660_blinkled_fast_P0_13); -} - -static int update_fw_devkey_MAX32660_blinkled_fast_P0_13(const char *parentName) -{ - return bl_flash_image(devkey_MAX32660_blinkled_fast_P0_13); -} - -static int update_fw_devkey_MAX32660_blinkled_slow_P0_13(const char *parentName) -{ - return bl_flash_image(devkey_MAX32660_blinkled_slow_P0_13); -} - -static int update_fw_devkey_MAX32670_blinkled_P0_22(const char *parentName) -{ - return bl_flash_image(devkey_MAX32670_blinkled_P0_22); -} - -static int update_fw_devkey_MAX32670_blinkled_P0_23(const char *parentName) -{ - return bl_flash_image(devkey_MAX32670_blinkled_P0_23); -} - -/******************************* Public Functions ****************************/ -static list_t list[] = { - { "Select Interface", select_interface }, - { "Bootloader Test Menu", bootloader_menu }, - { "Load MSBL: Non-secure MAX32660 blinkled fast P0.13", - update_fw_nonsecure_MAX32660_blinkled_fast_P0_13 }, - { "Load MSBL: Non-secure MAX32660 blinkled slow P0.13", - update_fw_nonsecure_MAX32660_blinkled_slow_P0_13 }, - { "Load MSBL: MAX32660 blinkled fast P0.13 (development key)", - update_fw_devkey_MAX32660_blinkled_fast_P0_13 }, - { "Load MSBL: MAX32660 blinkled slow P0.13 (development key)", - update_fw_devkey_MAX32660_blinkled_slow_P0_13 }, - { "Load MSBL: MAX32670 blinkled P0.22 (development key)", - update_fw_devkey_MAX32670_blinkled_P0_22 }, - { "Load MSBL: MAX32670 blinkled P0.23 (development key)", - update_fw_devkey_MAX32670_blinkled_P0_23 }, -}; - -int main(void) -{ - plt_i2c_init(); - plt_spi_init(); - plt_gpio_init(); - - // Initialize terminal uart after SPI initialization because some pins (P0.20, P0.21) are overlaps - terminal_init(); - terminal_printf("\r\n***********Bootloader Host Example***********\r\n"); - terminal_printf("The purpose of this example is:\r\n"); - terminal_printf(" 1- Demonstrate how bootloader device can be program\r\n"); - terminal_printf(" 2- Provide platform independent bootloader protocol (files under " - "bootloader folder)\r\n"); - terminal_printf("\r\nThis example can be ported on any platform\r\n"); - terminal_printf("If you would like to port it on other platform\r\n"); - terminal_printf("you need to update terminal.c and platform_max32665.c files\r\n"); - terminal_printf("\r\n"); - terminal_printf("\tHW Pins\r\n"); - terminal_printf("\tI2C: SCL(P0.6), SDA(P0.7) (Note: I2C requires pullup resistor) \r\n"); - terminal_printf("\tSPI: MISO(P0.17), MOSI(P0.18), SCK(P0.19), SS(P0.16)\r\n"); -#if defined(BOARD_FTHR) || defined(BOARD_FTHR2) - terminal_printf("\tTarget: RESET(P0.20), MFIO(P0.21)\r\n"); -#else - terminal_printf("\tTarget: RESET(P0.14), MFIO(P0.15)\r\n"); -#endif - terminal_printf("\r\n"); -#if defined(BOARD_FTHR2) - terminal_printf("UART0 is used as terminal comport\r\n"); -#else - terminal_printf("UART1 is used as terminal comport\r\n"); -#endif - - bl_conf_struct_t plt; - - plt.read = plt_i2c_read; - plt.write = plt_i2c_write; - plt.gpio_set = plt_gpio_set; - plt.delay_ms = plt_delay_ms; - plt.printf = terminal_printf; - - bl_init(&plt); - - while (1) { - terminal_select_from_list("Main Menu", list, sizeof(list) / sizeof(list[0]), 1); - } -} diff --git a/Examples/MAX32665/Bootloader_Host/test_images/test_images.h b/Examples/MAX32665/Bootloader_Host/test_images/test_images.h deleted file mode 100644 index c69ff422396..00000000000 --- a/Examples/MAX32665/Bootloader_Host/test_images/test_images.h +++ /dev/null @@ -1,53 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ -#define EXAMPLES_MAX32665_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ - -/******************************* INCLUDES ****************************/ - -/******************************* DEFINES ****************************/ - -/******************************* Type Definitions ****************************/ - -/******************************* Global Variables ****************************/ -extern const char devkey_MAX32660_blinkled_fast_P0_13[]; -extern const char devkey_MAX32660_blinkled_slow_P0_13[]; -extern const char nonsecure_MAX32660_blinkled_fast_P0_13[]; -extern const char nonsecure_MAX32660_blinkled_slow_P0_13[]; -extern const char devkey_MAX32670_blinkled_P0_22[]; -extern const char devkey_MAX32670_blinkled_P0_23[]; - -/******************************* Public Functions ****************************/ - -#endif // EXAMPLES_MAX32665_BOOTLOADER_HOST_TEST_IMAGES_TEST_IMAGES_H_ diff --git a/Examples/MAX32665/CRC/Makefile b/Examples/MAX32665/CRC/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/CRC/Makefile +++ b/Examples/MAX32665/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/CRC/main.c b/Examples/MAX32665/CRC/main.c index 9fa5c763cdd..bfd2e7d7876 100644 --- a/Examples/MAX32665/CRC/main.c +++ b/Examples/MAX32665/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Coremark/Makefile b/Examples/MAX32665/Coremark/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Coremark/Makefile +++ b/Examples/MAX32665/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/DES/Makefile b/Examples/MAX32665/DES/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/DES/Makefile +++ b/Examples/MAX32665/DES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/DES/main.c b/Examples/MAX32665/DES/main.c index f89c40f0a72..4b66cdbca60 100644 --- a/Examples/MAX32665/DES/main.c +++ b/Examples/MAX32665/DES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/DMA/Makefile b/Examples/MAX32665/DMA/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/DMA/Makefile +++ b/Examples/MAX32665/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/DMA/main.c b/Examples/MAX32665/DMA/main.c index 51e8ecfcd74..a5d01a28f73 100644 --- a/Examples/MAX32665/DMA/main.c +++ b/Examples/MAX32665/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Demo/Makefile b/Examples/MAX32665/Demo/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Demo/Makefile +++ b/Examples/MAX32665/Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Demo/main.c b/Examples/MAX32665/Demo/main.c index d801cc17fbd..f725143d8b6 100644 --- a/Examples/MAX32665/Demo/main.c +++ b/Examples/MAX32665/Demo/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/Demo/resources/adi_logo_alpha1.c b/Examples/MAX32665/Demo/resources/adi_logo_alpha1.c index 2acc6aaac9b..5c7417020aa 100644 --- a/Examples/MAX32665/Demo/resources/adi_logo_alpha1.c +++ b/Examples/MAX32665/Demo/resources/adi_logo_alpha1.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #if defined(LV_LVGL_H_INCLUDE_SIMPLE) diff --git a/Examples/MAX32665/Display/Makefile b/Examples/MAX32665/Display/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Display/Makefile +++ b/Examples/MAX32665/Display/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Display/main.c b/Examples/MAX32665/Display/main.c index d4c98bb74c1..fa16c80f3d0 100644 --- a/Examples/MAX32665/Display/main.c +++ b/Examples/MAX32665/Display/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/Display/resources/adi_logo_alpha1.c b/Examples/MAX32665/Display/resources/adi_logo_alpha1.c index 2acc6aaac9b..5c7417020aa 100644 --- a/Examples/MAX32665/Display/resources/adi_logo_alpha1.c +++ b/Examples/MAX32665/Display/resources/adi_logo_alpha1.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #if defined(LV_LVGL_H_INCLUDE_SIMPLE) diff --git a/Examples/MAX32665/Display/test_screen.c b/Examples/MAX32665/Display/test_screen.c index ab402bae1a0..dc16e622b78 100644 --- a/Examples/MAX32665/Display/test_screen.c +++ b/Examples/MAX32665/Display/test_screen.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "test_screen.h" diff --git a/Examples/MAX32665/Display/test_screen.h b/Examples/MAX32665/Display/test_screen.h index d395ede2966..070df1e568a 100644 --- a/Examples/MAX32665/Display/test_screen.h +++ b/Examples/MAX32665/Display/test_screen.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef TEST_SCREEN_H_ -#define TEST_SCREEN_H_ +#ifndef EXAMPLES_MAX32665_DISPLAY_TEST_SCREEN_H_ +#define EXAMPLES_MAX32665_DISPLAY_TEST_SCREEN_H_ #include "lvgl.h" @@ -41,4 +59,4 @@ extern lv_obj_t *chart; void test_screen(void); -#endif /* TEST_SCREEN_H_ */ +#endif // EXAMPLES_MAX32665_DISPLAY_TEST_SCREEN_H_ diff --git a/Examples/MAX32665/ECC/Makefile b/Examples/MAX32665/ECC/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/ECC/Makefile +++ b/Examples/MAX32665/ECC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ECC/main.c b/Examples/MAX32665/ECC/main.c index a7c248b0233..12d9815f5fd 100644 --- a/Examples/MAX32665/ECC/main.c +++ b/Examples/MAX32665/ECC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/EEPROM_Emulator/Makefile b/Examples/MAX32665/EEPROM_Emulator/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/EEPROM_Emulator/Makefile +++ b/Examples/MAX32665/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/EEPROM_Emulator/include/cache.h b/Examples/MAX32665/EEPROM_Emulator/include/cache.h index 9263b1016d4..86cfaade2c4 100644 --- a/Examples/MAX32665/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32665/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32665_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32665_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32665_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32665/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32665/EEPROM_Emulator/include/eeprom.h index e4956f57a15..6e4fd1372f0 100644 --- a/Examples/MAX32665/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32665/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32665_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32665_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32665_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32665/EEPROM_Emulator/main.c b/Examples/MAX32665/EEPROM_Emulator/main.c index b63dda2665a..d508f4f6061 100644 --- a/Examples/MAX32665/EEPROM_Emulator/main.c +++ b/Examples/MAX32665/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/EEPROM_Emulator/src/cache.c b/Examples/MAX32665/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32665/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32665/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32665/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32665/EEPROM_Emulator/src/eeprom.c index 14e2dff007b..cedfd59140c 100644 --- a/Examples/MAX32665/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32665/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32665/Flash/Makefile b/Examples/MAX32665/Flash/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Flash/Makefile +++ b/Examples/MAX32665/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Flash/main.c b/Examples/MAX32665/Flash/main.c index 065111614ec..a60196e5d86 100644 --- a/Examples/MAX32665/Flash/main.c +++ b/Examples/MAX32665/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32665/Flash_CLI/FreeRTOSConfig.h index d844758f547..2af333aa0b7 100644 --- a/Examples/MAX32665/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32665/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32665/Flash_CLI/Makefile b/Examples/MAX32665/Flash_CLI/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Flash_CLI/Makefile +++ b/Examples/MAX32665/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Flash_CLI/definitions.h b/Examples/MAX32665/Flash_CLI/definitions.h index 0303af85d09..b2f1e8ac851 100644 --- a/Examples/MAX32665/Flash_CLI/definitions.h +++ b/Examples/MAX32665/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32665/Flash_CLI/main.c b/Examples/MAX32665/Flash_CLI/main.c index 58b249dae43..4adc754a156 100644 --- a/Examples/MAX32665/Flash_CLI/main.c +++ b/Examples/MAX32665/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32665/FreeRTOSDemo/FreeRTOSConfig.h index 076b2cc859d..1051dee9638 100644 --- a/Examples/MAX32665/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32665/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32665/FreeRTOSDemo/Makefile b/Examples/MAX32665/FreeRTOSDemo/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/FreeRTOSDemo/Makefile +++ b/Examples/MAX32665/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32665/FreeRTOSDemo/freertos_tickless.c index abf1110658e..2122b10b88c 100644 --- a/Examples/MAX32665/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32665/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* FreeRTOS includes */ diff --git a/Examples/MAX32665/FreeRTOSDemo/main.c b/Examples/MAX32665/FreeRTOSDemo/main.c index 960ecb0ea68..d38cdc5574b 100644 --- a/Examples/MAX32665/FreeRTOSDemo/main.c +++ b/Examples/MAX32665/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/GPIO/Makefile b/Examples/MAX32665/GPIO/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/GPIO/Makefile +++ b/Examples/MAX32665/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/GPIO/example_config.h b/Examples/MAX32665/GPIO/example_config.h index 2e9bfed9411..5ff937fd9aa 100644 --- a/Examples/MAX32665/GPIO/example_config.h +++ b/Examples/MAX32665/GPIO/example_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_GPIO_EXAMPLE_CONFIG_H_ diff --git a/Examples/MAX32665/GPIO/main.c b/Examples/MAX32665/GPIO/main.c index 39b47509f56..731d917dcfb 100644 --- a/Examples/MAX32665/GPIO/main.c +++ b/Examples/MAX32665/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/HTMR/Makefile b/Examples/MAX32665/HTMR/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/HTMR/Makefile +++ b/Examples/MAX32665/HTMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/HTMR/main.c b/Examples/MAX32665/HTMR/main.c index b3e216f46e8..b06ad9383c2 100644 --- a/Examples/MAX32665/HTMR/main.c +++ b/Examples/MAX32665/HTMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Hash/Makefile b/Examples/MAX32665/Hash/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Hash/Makefile +++ b/Examples/MAX32665/Hash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Hash/main.c b/Examples/MAX32665/Hash/main.c index bb90b7b0199..d7f6bbc076b 100644 --- a/Examples/MAX32665/Hash/main.c +++ b/Examples/MAX32665/Hash/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32665/Hello_World/Makefile b/Examples/MAX32665/Hello_World/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Hello_World/Makefile +++ b/Examples/MAX32665/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Hello_World/main.c b/Examples/MAX32665/Hello_World/main.c index 279f50ab504..53eda3decce 100644 --- a/Examples/MAX32665/Hello_World/main.c +++ b/Examples/MAX32665/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Hello_World_Cpp/Makefile b/Examples/MAX32665/Hello_World_Cpp/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Hello_World_Cpp/Makefile +++ b/Examples/MAX32665/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Hello_World_Cpp/main.cpp b/Examples/MAX32665/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32665/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32665/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/I2C/Makefile b/Examples/MAX32665/I2C/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/I2C/Makefile +++ b/Examples/MAX32665/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/I2C/main.c b/Examples/MAX32665/I2C/main.c index 37191c86975..36fa94abc2a 100644 --- a/Examples/MAX32665/I2C/main.c +++ b/Examples/MAX32665/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32665/I2C_MNGR/FreeRTOSConfig.h index bdaff365e9c..bae6903ac55 100644 --- a/Examples/MAX32665/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32665/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32665/I2C_MNGR/Makefile b/Examples/MAX32665/I2C_MNGR/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/I2C_MNGR/Makefile +++ b/Examples/MAX32665/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.c index 8f5876f4d94..72c781176bc 100644 --- a/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.h index a12c5835a5e..c0027887aaa 100644 --- a/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32665/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32665/I2C_MNGR/main.c b/Examples/MAX32665/I2C_MNGR/main.c index 6f7d7ef9f4a..1aa46ca9f2c 100644 --- a/Examples/MAX32665/I2C_MNGR/main.c +++ b/Examples/MAX32665/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/I2C_SCAN/Makefile b/Examples/MAX32665/I2C_SCAN/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/I2C_SCAN/Makefile +++ b/Examples/MAX32665/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/I2C_SCAN/main.c b/Examples/MAX32665/I2C_SCAN/main.c index f4152726db2..f02925c76a3 100644 --- a/Examples/MAX32665/I2C_SCAN/main.c +++ b/Examples/MAX32665/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32665/I2C_Sensor/Makefile b/Examples/MAX32665/I2C_Sensor/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/I2C_Sensor/Makefile +++ b/Examples/MAX32665/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/I2C_Sensor/main.c b/Examples/MAX32665/I2C_Sensor/main.c index 1be221715fa..7b45234feb4 100644 --- a/Examples/MAX32665/I2C_Sensor/main.c +++ b/Examples/MAX32665/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/ICC/Makefile b/Examples/MAX32665/ICC/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/ICC/Makefile +++ b/Examples/MAX32665/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/ICC/main.c b/Examples/MAX32665/ICC/main.c index 1dfb4344a0b..706b54cbfa3 100644 --- a/Examples/MAX32665/ICC/main.c +++ b/Examples/MAX32665/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/LP/Makefile b/Examples/MAX32665/LP/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/LP/Makefile +++ b/Examples/MAX32665/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/LP/lp-nonsecure.ld b/Examples/MAX32665/LP/lp-nonsecure.ld index 4c3bb2b5da6..64fe0c6ca40 100644 --- a/Examples/MAX32665/LP/lp-nonsecure.ld +++ b/Examples/MAX32665/LP/lp-nonsecure.ld @@ -1,5 +1,7 @@ -/******************************************************************************* - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,21 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - * $Date: 2019-11-25 16:16:00 -0600 (Mon, 25 Nov 2019) $ - * $Revision: 49208 $ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * ******************************************************************************/ diff --git a/Examples/MAX32665/LP/lp-sla.ld b/Examples/MAX32665/LP/lp-sla.ld index b5914038196..e21f07dbf3f 100644 --- a/Examples/MAX32665/LP/lp-sla.ld +++ b/Examples/MAX32665/LP/lp-sla.ld @@ -1,5 +1,7 @@ -/******************************************************************************* - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,21 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - * $Date: 2019-11-25 16:16:00 -0600 (Mon, 25 Nov 2019) $ - * $Revision: 49208 $ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * ******************************************************************************/ diff --git a/Examples/MAX32665/LP/main.c b/Examples/MAX32665/LP/main.c index a7e4530c262..0cd8f0f29e7 100644 --- a/Examples/MAX32665/LP/main.c +++ b/Examples/MAX32665/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32665/Library_Generate/Makefile b/Examples/MAX32665/Library_Generate/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Library_Generate/Makefile +++ b/Examples/MAX32665/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Library_Generate/gpiolib.c b/Examples/MAX32665/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32665/Library_Generate/gpiolib.c +++ b/Examples/MAX32665/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32665/Library_Generate/gpiolib.h b/Examples/MAX32665/Library_Generate/gpiolib.h index a43236f5dd4..1426d1b6bb4 100644 --- a/Examples/MAX32665/Library_Generate/gpiolib.h +++ b/Examples/MAX32665/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32665/Library_Use/Makefile b/Examples/MAX32665/Library_Use/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Library_Use/Makefile +++ b/Examples/MAX32665/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Library_Use/lib/include/gpiolib.h b/Examples/MAX32665/Library_Use/lib/include/gpiolib.h index afbbb6ecd71..f70cbe3cfc2 100644 --- a/Examples/MAX32665/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32665/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32665/Library_Use/main.c b/Examples/MAX32665/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32665/Library_Use/main.c +++ b/Examples/MAX32665/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32665/MAA/Makefile b/Examples/MAX32665/MAA/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/MAA/Makefile +++ b/Examples/MAX32665/MAA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/MAA/main.c b/Examples/MAX32665/MAA/main.c index 02476b63148..05c4042f1ae 100644 --- a/Examples/MAX32665/MAA/main.c +++ b/Examples/MAX32665/MAA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/OTP_Dump/Makefile b/Examples/MAX32665/OTP_Dump/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/OTP_Dump/Makefile +++ b/Examples/MAX32665/OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/OWM/Makefile b/Examples/MAX32665/OWM/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/OWM/Makefile +++ b/Examples/MAX32665/OWM/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/OWM/main.c b/Examples/MAX32665/OWM/main.c index f3fdb533bee..4449ffea5e4 100644 --- a/Examples/MAX32665/OWM/main.c +++ b/Examples/MAX32665/OWM/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* One wire API Test, for use with DS2401 */ diff --git a/Examples/MAX32665/Pulse_Train/Makefile b/Examples/MAX32665/Pulse_Train/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Pulse_Train/Makefile +++ b/Examples/MAX32665/Pulse_Train/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Pulse_Train/main.c b/Examples/MAX32665/Pulse_Train/main.c index 569e03fb049..a91147b3c60 100644 --- a/Examples/MAX32665/Pulse_Train/main.c +++ b/Examples/MAX32665/Pulse_Train/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/RF_Test/.vscode/flash.gdb b/Examples/MAX32665/RF_Test/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/RF_Test/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/RF_Test/FreeRTOSConfig.h b/Examples/MAX32665/RF_Test/FreeRTOSConfig.h deleted file mode 100644 index e7e4261d9b8..00000000000 --- a/Examples/MAX32665/RF_Test/FreeRTOSConfig.h +++ /dev/null @@ -1,131 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_RF_TEST_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32665_RF_TEST_FREERTOSCONFIG_H_ - -#include -#include "max32665.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)HIRC96_FREQ) - -#define SLEEP_LED 1 -#define DEEPSLEEP_LED 0 - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -// #define configUSE_TICKLESS_IDLE 1 - -/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will -increase the amount of time spent in standby mode, thus reducing average power consumption. */ -#ifdef configUSE_TICKLESS_IDLE -#define configTICK_RATE_HZ ((portTickType)10000) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#endif - -#define configRTC_TICK_RATE_HZ (32768) - -#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) - -/* Only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY \ - ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -/* Overides FreeRTOS+CLI help command formatting*/ -#define configUSE_CUSTOM_HELP_COMMAND 1 - -#endif // EXAMPLES_MAX32665_RF_TEST_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32665/RF_Test/Makefile b/Examples/MAX32665/RF_Test/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/RF_Test/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/RF_Test/freertos_tickless.c b/Examples/MAX32665/RF_Test/freertos_tickless.c deleted file mode 100644 index c5b18f06113..00000000000 --- a/Examples/MAX32665/RF_Test/freertos_tickless.c +++ /dev/null @@ -1,359 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Maxim CMSIS */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" -#include "lp.h" -#include "pwrseq_regs.h" -#include "wut.h" -#include "mcr_regs.h" -#include "icc.h" -#include "pb.h" -#include "led.h" -#include "uart.h" -#include "simo.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Bluetooth Cordio library */ -#include "pal_timer.h" -#include "pal_uart.h" -#include "pal_bb.h" - -#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ -#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ -#define WAKEUP_US 1500 /* Deep sleep recovery time, units of us */ - -/* Minimum ticks before SysTick interrupt, units of system clock ticks. - * Convert CPU_CLOCK_HZ to units of ticks per us - */ -#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -int freertos_permit_tickless(void) -{ - /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ - if (MXC_WUT_TrimPending() != E_NO_ERROR) { - return E_BUSY; - } - - /* Figure out if the UART is active */ - if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { - return E_BUSY; - } - - /* Prevent characters from being corrupted if still transmitting, - UART will shutdown in deep sleep */ - if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { - return E_BUSY; - } - - return E_NO_ERROR; -} - -/* - * Switch the system clock to the HIRC / 4 - * - * Enable the HIRC, set the divide ration to /4, and disable the HIRC96 oscillator. - */ -void switchToHIRCD4(void) -{ - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV4); - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC_EN; - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC); - /* Disable unused clocks */ - while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} - /* Wait for the switch to occur */ - MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC96M_EN); - SystemCoreClockUpdate(); -} - -/* - * Switch the system clock to the HIRC96 - * - * Enable the HIRC96, set the divide ration to /1, and disable the HIRC oscillator. - */ -void switchToHIRC(void) -{ - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_PSC, MXC_S_GCR_CLKCN_PSC_DIV1); - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; - MXC_SETFIELD(MXC_GCR->clkcn, MXC_F_GCR_CLKCN_CLKSEL, MXC_S_GCR_CLKCN_CLKSEL_HIRC96); - /* Disable unused clocks */ - while (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_CKRDY)) {} - /* Wait for the switch to occur */ - MXC_GCR->clkcn &= ~(MXC_F_GCR_CLKCN_HIRC_EN); - SystemCoreClockUpdate(); -} - -/* - * Enter deep sleep mode - * - * Adjust system clocks and voltages for deep sleep. - */ -static void deepSleep(void) -{ - MXC_ICC_Disable(); - MXC_LP_ICache0Shutdown(); - - /* Shutdown unused power domains */ - MXC_PWRSEQ->lpcn |= MXC_F_PWRSEQ_LPCN_BGOFF; - - /* Prevent SIMO soft start on wakeup */ - MXC_LP_FastWakeupDisable(); - - /* Enable VDDCSWEN=1 prior to enter backup/deepsleep mode */ - MXC_MCR->ctrl |= MXC_F_MCR_CTRL_VDDCSWEN; - - /* Switch the system clock to a lower frequency to conserve power in deep sleep - and reduce current inrush on wakeup */ - switchToHIRCD4(); - - /* Reduce VCOREB to 0.81v */ - MXC_SIMO_SetVregO_B(810); - - MXC_LP_EnterDeepSleepMode(); - - /* If VCOREA not ready and VCOREB ready, switch VCORE=VCOREB - (set VDDCSW=2’b01). Configure VCOREB=1.1V wait for VCOREB ready. */ - - /* Check to see if VCOREA is ready on */ - if (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYC)) { - /* Wait for VCOREB to be ready */ - while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} - - /* Move VCORE switch back to VCOREB */ - MXC_MCR->ctrl = (MXC_MCR->ctrl & ~(MXC_F_MCR_CTRL_VDDCSW)) | - (0x1 << MXC_F_MCR_CTRL_VDDCSW_POS); - - /* Raise the VCORE_B voltage */ - while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} - MXC_SIMO_SetVregO_B(1000); - while (!(MXC_SIMO->buck_out_ready & MXC_F_SIMO_BUCK_OUT_READY_BUCKOUTRDYB)) {} - } - - MXC_LP_ICache0PowerUp(); - MXC_ICC_Enable(); - - /* Restore the system clock */ - switchToHIRC(); -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the WUT to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; - uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; - bool_t schTimerActive; - - /* We do not currently handle to case where the WUT is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Calculate the number of WUT ticks, but we need one to synchronize */ - idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / - (uint64_t)configTICK_RATE_HZ; - - if (idleTicks > MAX_WUT_TICKS) { - idleTicks = MAX_WUT_TICKS; - } - - /* Check to see if we meet the minimum requirements for deep sleep */ - if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { - return; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - - /* Determine if the Bluetooth scheduler is running */ - if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { - schTimerActive = TRUE; - } else { - schTimerActive = FALSE; - } - - if (!schTimerActive) { - uint32_t ts; - if (PalBbGetTimestamp(&ts)) { - /*Determine if PalBb is active, return if we get a valid time stamp indicating - * that the scheduler is waiting for a PalBb event */ - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - } - - /* Disable SysTick */ - SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); - - /* Enable wakeup from WUT */ - NVIC_EnableIRQ(WUT_IRQn); - MXC_LP_EnableWUTAlarmWakeup(); - - /* Determine if we need to snapshot the PalBb clock */ - if (schTimerActive) { - /* Snapshot the current WUT value with the PalBb clock */ - MXC_WUT_Store(); - preCapture = MXC_WUT_GetCount(); - schUsec = PalTimerGetExpTime(); - - /* Adjust idleTicks for the time it takes to restart the BLE hardware */ - idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); - - /* Calculate the time to the next BLE scheduler event */ - if (schUsec < WAKEUP_US) { - bleSleepTicks = 0; - } else { - bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * - (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; - } - } else { - /* Snapshot the current WUT value */ - MXC_WUT_Edge(); - preCapture = MXC_WUT_GetCount(); - bleSleepTicks = 0; - schUsec = 0; - } - - /* Sleep for the shortest tick duration */ - if ((schTimerActive) && (bleSleepTicks < idleTicks)) { - dsTicks = bleSleepTicks; - } else { - dsTicks = idleTicks; - } - - /* Bound the deep sleep time */ - if (dsTicks > MAX_WUT_TICKS) { - dsTicks = MAX_WUT_TICKS; - } - - /* Don't deep sleep if we don't have time */ - if (dsTicks >= MIN_WUT_TICKS) { - /* Arm the WUT interrupt */ - MXC_WUT->cmp = preCapture + dsTicks; - - if (schTimerActive) { - /* Stop the BLE scheduler timer */ - PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); - } - - LED_Off(SLEEP_LED); - LED_Off(DEEPSLEEP_LED); - - deepSleep(); - - LED_On(DEEPSLEEP_LED); - LED_On(SLEEP_LED); - - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); - - /* Restore the BB counter */ - MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); - - /* Restart the BLE scheduler timer */ - dsWutTicks = MXC_WUT->cnt - preCapture; - schUsecElapsed = - (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; - - int palTimerStartTicks = schUsec - schUsecElapsed; - if (palTimerStartTicks < 1) { - palTimerStartTicks = 1; - } - PalTimerStart(palTimerStartTicks); - } - } - - /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ - MXC_WUT_Edge(); - postCapture = MXC_WUT_GetCount(); - dsWutTicks = postCapture - preCapture; - - /* - * Advance ticks by # actually elapsed - */ - dsSysTickPeriods = - (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; - vTaskStepTick(dsSysTickPeriods); - - /* Re-enable SysTick */ - SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); -} diff --git a/Examples/MAX32665/RF_Test/main.c b/Examples/MAX32665/RF_Test/main.c deleted file mode 100644 index fd139e019d6..00000000000 --- a/Examples/MAX32665/RF_Test/main.c +++ /dev/null @@ -1,910 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Main module. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#include "main.h" -/************************************************************************************************** - Definitions -**************************************************************************************************/ -/*! UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define FREQ_HOP_PERIOD_US 20000 -#define HISTORY_MEMORY_LENGTH 10 -/* FreeRTOS */ -#define CMD_LINE_BUF_SIZE 100 -#define OUTPUT_BUF_SIZE 512 -#define CONSOLE_UART 0 //EvKit/FTHR -/* Task IDs */ -TaskHandle_t cmd_task_id; -TaskHandle_t tx_task_id; -TaskHandle_t sweep_task_id; -TaskHandle_t help_task_id; -/* FreeRTOS+CLI */ -xSemaphoreHandle rfTestMutex; - -mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(CONSOLE_UART); -unsigned int disable_tickless = 1; /* Enables/disables tick-less mode */ -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/* Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/* Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -static uint8_t phy = LL_PHY_LE_1M; -static uint8_t phy_str[16]; -static uint8_t packetType_str[16]; -static uint8_t txFreqHopCh; -static uint8_t packetLen = 255; -static uint8_t packetType = LL_TEST_PKT_TYPE_AA; -static int8_t txPower = 10; -/* UART RX */ -char inputBuffer[CMD_LINE_BUF_SIZE]; /* Buffer for input */ -unsigned int bufferIndex; /* Index into buffer */ -char receivedChar; -/* CLI escape sequences*/ -uint8_t backspace[] = "\x08 \x08"; -enum { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW }; -/* CLI History */ -cmd_history_t cmd_history[HISTORY_MEMORY_LENGTH]; -static uint32_t escCounter = 0; -static uint8_t keyBoardSequenceBuff[3] = { 0 }; -queue_t historyQueue; - -/* CLI Prompt */ -test_t activeTest = NO_TEST; -bool clearScreen = false; -bool pausePrompt = false; - -/************************************************************************************************** - Functions -**************************************************************************************************/ -/* Physical layer functions. */ -extern void llc_api_set_txpower(int8_t power); -extern void dbb_seq_select_rf_channel(uint32_t rf_channel); -extern void llc_api_tx_ldo_setup(void); -extern void dbb_seq_tx_enable(void); -extern void dbb_seq_tx_disable(void); -extern const CLI_Command_Definition_t xCommandList[]; -void vRegisterCLICommands(void); -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPhyStr(uint8_t phy) -{ - switch (phy) { - case LL_TEST_PHY_LE_1M: - default: - memcpy(phy_str, "1M PHY", 7); - break; - case LL_TEST_PHY_LE_2M: - memcpy(phy_str, "2M PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S8: - memcpy(phy_str, "S8 PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S2: - memcpy(phy_str, "S2 PHY", 7); - break; - } - return phy_str; -} -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPacketTypeStr(void) -{ - switch (packetType) { - case LL_TEST_PKT_TYPE_PRBS9: - memcpy(packetType_str, "PRBS9", 6); - break; - case LL_TEST_PKT_TYPE_0F: - memcpy(packetType_str, "0x0F", 5); - break; - case LL_TEST_PKT_TYPE_55: - memcpy(packetType_str, "0x55", 5); - break; - case LL_TEST_PKT_TYPE_PRBS15: - memcpy(packetType_str, "PRBS15", 7); - break; - case LL_TEST_PKT_TYPE_FF: - memcpy(packetType_str, "0xFF", 5); - break; - case LL_TEST_PKT_TYPE_00: - memcpy(packetType_str, "0x00", 5); - break; - case LL_TEST_PKT_TYPE_F0: - memcpy(packetType_str, "0xF0", 5); - break; - case LL_TEST_PKT_TYPE_AA: - default: - memcpy(packetType_str, "0xAA", 5); - break; - } - return packetType_str; -} -/*************************************************************************************************/ -/*! - * \fn Timer 2 interrupts handler. - * - * \brief Controls the frequency hopping. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void TMR2_IRQHandler(void) -{ - int res; - - MXC_TMR_TO_Clear(MXC_TMR2); - - /* Start the next channel */ - res = LlEnhancedTxTest(txFreqHopCh++, packetLen, packetType, phy, 0); - if (res != LL_SUCCESS) - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - - /* Wrap the channels */ - if (txFreqHopCh == 40) - txFreqHopCh = 0; - - /* Restart the timeout */ - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); -} -/*************************************************************************************************/ -/*! - * \fn processEscSequence. - * - * \brief Compares keyboard sequence to ansi escape codes. - * - * \param seq keyboard sequence. - * - * \return None. - */ -/*************************************************************************************************/ -uint8_t processEscSequence(uint8_t *seq) -{ - uint8_t retVal = 0; - - uint8_t arrows[4][3] = { - /* Order of arrows here alligns with enum uptop */ - { 27, 91, 65 }, /* up arrow */ - - { 27, 91, 66 }, /* down arrow */ - - { 27, 91, 67 }, /* right arrow */ - - { 27, 91, 68 }, /* left arrow */ - }; - - /*arrows*/ - for (int arrowKey = 0; arrowKey < 4; arrowKey++) { //cycle through 4 arrow keys - for (int i = 0; i < 3; i++) { //cycle thorugh each index of each arrow key sequence - //compare each index of arrow key to each index of typed sequence buffer - for (int j = 0; j < 3; j++) { - if (seq[j] == arrows[arrowKey][i]) { - retVal++; - break; - } - } - } - /* If 3 motches found */ - if (retVal == 3) - return arrowKey; - else - retVal = 0; - } - - return 0xFF; -} -/*************************************************************************************************/ -/*! - * \fn cmdHistoryAdd. - * - * \brief adds latest command to command history buffer - * - * \param q pointer to the circular buffer holding command history - * \param cmd pointer to the command string to be added - * - * \return None. - */ -/*************************************************************************************************/ -void cmdHistoryAdd(queue_t *q, const uint8_t *cmd) -{ - /* clear command history slot of any previous data */ - memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); - /* copy new command histroy */ - memcpy(&q->command[q->head], cmd, strlen((const char *)cmd)); - q->command[q->head].length = strlen((const char *)cmd); - - /* update head, and push tail up if we have looped back around */ - q->head = (q->head + 1) % HISTORY_MEMORY_LENGTH; - if (q->head == q->tail) { - q->tail = (q->tail + 1) % HISTORY_MEMORY_LENGTH; - } - memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); - /* update pointer */ - q->queuePointer = historyQueue.head; -} -/*************************************************************************************************/ -/*! - * \fn updateQueuePointer. - * - * \brief Updates an internal marker pointing to historical command to be printed, based on up/down arrow - * - * \param q pointer to the circular buffer holding command history - * - * \param upArrow flag used to upated the queuePoniter delimiting which command to print - * - * \return None. - */ -/*************************************************************************************************/ -void updateQueuePointer(queue_t *q, bool upArrow) -{ - if (upArrow) { - /* empty queue or reached tail already */ - if (q->head == q->tail || q->queuePointer == q->tail) - return; - if (q->queuePointer == 0) - q->queuePointer = HISTORY_MEMORY_LENGTH - 1; - else - q->queuePointer = (q->queuePointer - 1) % HISTORY_MEMORY_LENGTH; - - } else { - /* empty queue or reached head already */ - if (q->head == q->tail || q->queuePointer == q->head) - return; - q->queuePointer = (q->queuePointer + 1) % HISTORY_MEMORY_LENGTH; - } -} -/*************************************************************************************************/ -/*! - * \fn printHistory. - * - * \brief prints previously typed commands - * - * \param upArrow flag used to upated the queuePoniter delimiting which command to print - * - * \return None. - */ -/*************************************************************************************************/ -void printHistory(bool upArrow) -{ - uint8_t numCharsToDelete = strlen(inputBuffer); - uint8_t moveForwardCount = 0; - updateQueuePointer(&historyQueue, upArrow); - uint8_t right[] = "\x1b\x5b\x43"; - /* no history yet */ - if (historyQueue.queuePointer < 0) - return; - /* if cursor is not at the end then move it forward */ - if (bufferIndex != strlen(inputBuffer)) { - moveForwardCount = strlen(inputBuffer) - bufferIndex; - for (int i = 0; i < moveForwardCount; i++) { - WsfBufIoWrite((const uint8_t *)right, sizeof(right)); - vTaskDelay(1); //give UART time to print - bufferIndex++; - } - } - /* send backspace to delete any currently typed text */ - if (numCharsToDelete) { - for (int i = 0; i < numCharsToDelete; i++) printf("%s", backspace); - } - /* copy history into inputBuffer */ - memset(inputBuffer, 0x00, 100); - memcpy(inputBuffer, historyQueue.command[historyQueue.queuePointer].cmd, - strlen((const char *)historyQueue.command[historyQueue.queuePointer].cmd)); - printf("%s", inputBuffer); - bufferIndex = strlen(inputBuffer); - - fflush(stdout); -} - -/*************************************************************************************************/ -/*! - * \fn cls - * - * \brief Clears screen - * - * \return None. - */ -/*************************************************************************************************/ -void cls(void) -{ - char str[7]; - sprintf(str, "\033[2J"); - WsfBufIoWrite((const uint8_t *)str, 5); - clearScreen = false; -} -/*************************************************************************************************/ -/*! - * \fn prompt - * - * \brief Prints prompt to screen, indicates if a test is active - * - * \return None. - */ -/*************************************************************************************************/ -void prompt(void) -{ - char str[25]; - uint8_t len = 0; - - if (pausePrompt) - return; - - if (activeTest) { - sprintf(str, "\r\n(active test) cmd:"); - len = 21; - } else { - sprintf(str, "\r\ncmd:"); - len = 7; - } - - fflush(stdout); - if (clearScreen) { - cls(); - } - //using app_trace would add newline after prompt which does not look right - WsfBufIoWrite((const uint8_t *)str, len); -} -/*************************************************************************************************/ -/*! - * \fn printHint - * - * \brief Prints the help string of any command matching the current inputbuffer - * - * \param buff pointer to the inputbuffer - * - * \return None. - */ -/*************************************************************************************************/ -void printHint(char *buff) -{ - int i = 0; - uint8_t bufflen = strlen((const char *)buff); - bool foundMatch = false; - do { - if (memcmp(buff, xCommandList[i].pcCommand, bufflen) == 0 && bufflen > 0) { - if (foundMatch == false) - printf("\r\n"); - printf("\r\n> %s : %s", xCommandList[i].pcCommand, xCommandList[i].pcHelpString); - foundMatch = true; - } - i++; - } while (xCommandList[i].pcCommand != NULL); - if (foundMatch) { - /* print new prompt with what user had previouslly typed */ - printf("\r\n"); - prompt(); - vTaskDelay(5); - printf("%s", buff); - fflush(stdout); - } -} -/*************************************************************************************************/ -/*! - * \fn Process the Console RX - * - * \brief State machine for the console inputs. - * - * \param rxByte Character received from the console. - * - * \return None. - */ -/*************************************************************************************************/ -static void processConsoleRX(uint8_t rxByte) -{ - static uint32_t i = 0; - - BaseType_t xHigherPriorityTaskWoken; - // static uint8_t keyBoardSequenceBuff[3] = {0}; - receivedChar = rxByte; - keyBoardSequenceBuff[i++ % 3] = rxByte; - - // TODO put all of this in command line task - /* if received esc character start escape sequence counter */ - if (rxByte == 27) - escCounter++; - - /* Wake the task */ - xHigherPriorityTaskWoken = pdFALSE; - vTaskNotifyGiveFromISR(cmd_task_id, &xHigherPriorityTaskWoken); - portYIELD_FROM_ISR(xHigherPriorityTaskWoken); -} -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.1 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; -} -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - -/* Use single pool for data buffers. */ -#if (BT_VER > 9) - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} -/*************************************************************************************************/ -void vCmdLineTask(void *pvParameters) -{ - unsigned char tmp; - unsigned int x; - int uartReadLen; - char output[OUTPUT_BUF_SIZE]; /* Buffer for output */ - BaseType_t xMore; - mxc_uart_req_t async_read_req; - memset(inputBuffer, 0, CMD_LINE_BUF_SIZE); - bufferIndex = 0; - - /* Register available CLI commands */ - vRegisterCLICommands(); - vTaskDelay(100); /* give time for ll api to print things */ - fflush(stdout); - /* clear screen and print help table */ - cls(); - pausePrompt = true; - xTaskNotify(help_task_id, 0xFF, eSetBits); - - memset(cmd_history, 0, sizeof(cmd_history_t) * HISTORY_MEMORY_LENGTH); - historyQueue.head = 0; - historyQueue.tail = 0; - while (1) { - ulTaskNotifyTake(pdTRUE, portMAX_DELAY); - - tmp = receivedChar; - /* Check that we have a valid character */ - if (escCounter > 0 && escCounter < 4) { - switch (processEscSequence(keyBoardSequenceBuff)) { - case UP_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - printHistory(true); - break; - - case DOWN_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - printHistory(false); - break; - - case RIGHT_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - if (bufferIndex < strlen(inputBuffer)) { - uint8_t right[] = "\x1b\x5b\x43"; - WsfBufIoWrite((const uint8_t *)right, sizeof(right)); - bufferIndex++; - } - escCounter = 0; - - break; - case LEFT_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - if (bufferIndex > 0) { - uint8_t left[] = "\x1b\x5b\x44"; - WsfBufIoWrite((const uint8_t *)left, sizeof(left)); - bufferIndex--; - } - break; - - default: - escCounter++; - break; - } - } else { - escCounter = 0; - if (async_read_req.rxCnt > 0) { - /* Process character */ - do { - /* 0x08 BS linux , 127 Del windows/putty */ - if (tmp == 0x08 || tmp == 127) { - /* Backspace */ - if (bufferIndex > 0) { - bufferIndex--; - memset(&inputBuffer[bufferIndex], 0x00, 1); - WsfBufIoWrite((const uint8_t *)backspace, sizeof(backspace)); - } - fflush(stdout); - } else if (tmp == 0x09) - /* tab hint */ - { - printHint(inputBuffer); - - } - /*since freq hop does not allow user to see what they are typing, simply typing - 'e' without the need to press enter willl stop the frequency hopping test */ - else if ((char)tmp == 'e' && activeTest == BLE_FHOP_TEST) { - LlEndTest(NULL); - MXC_TMR_Stop(MXC_TMR2); - activeTest = NO_TEST; - - xSemaphoreGive(rfTestMutex); - prompt(); - } else if (tmp == 0x03) { - /* ^C abort */ - bufferIndex = 0; - APP_TRACE_INFO0("^C"); - prompt(); - } else if ((tmp == '\r') || (tmp == '\n')) { - historyQueue.queuePointer = historyQueue.head; - if (strlen(inputBuffer) > 0) { - APP_TRACE_INFO0("\r\n"); - /* save to history */ - cmdHistoryAdd(&historyQueue, (const uint8_t *)inputBuffer); - /* Evaluate */ - do { - xMore = FreeRTOS_CLIProcessCommand(inputBuffer, output, - OUTPUT_BUF_SIZE); - for (x = 0; - x < (xMore == pdTRUE ? OUTPUT_BUF_SIZE : strlen(output)); - x++) { - putchar(*(output + x)); - } - } while (xMore != pdFALSE); - } - /* New prompt */ - bufferIndex = 0; - memset(inputBuffer, 0x00, 100); - prompt(); - } else if (bufferIndex < CMD_LINE_BUF_SIZE) { - putchar(tmp); - inputBuffer[bufferIndex++] = tmp; - fflush(stdout); - - } else { - /* Throw away data and beep terminal */ - putchar(0x07); - fflush(stdout); - } - uartReadLen = 1; - /* If more characters are ready, process them here */ - } while ((MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) > 0) && - (MXC_UART_Read(ConsoleUART, (uint8_t *)&tmp, &uartReadLen) == 0)); - } - } - } -} -/*************************************************************************************************/ -void txTestTask(void *pvParameters) -{ - static int res = 0xff; - uint32_t notifVal = 0; - tx_config_t testConfig; - char str[80]; - while (1) { - /* Wait for notification to initiate TX/RX */ - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - /* Get test settings from the notification value */ - testConfig.allData = notifVal; - - if (testConfig.testType == BLE_TX_TEST) { - sprintf(str, "Transmit RF channel %d on Freq %dMHz bytes/pkt : ", testConfig.channel, - getFreqFromRfChannel(testConfig.channel), packetLen); - strcat(str, (const char *)getPacketTypeStr()); - } else { - sprintf(str, "Receive RF channel %d Freq %dMHz: ", testConfig.channel, - getFreqFromRfChannel(testConfig.channel)); - } - strcat(str, " : "); - strcat(str, (const char *)getPhyStr(phy)); - APP_TRACE_INFO1("%s", str); - - /* stat test */ - if (testConfig.testType == BLE_TX_TEST) { - res = LlEnhancedTxTest(testConfig.channel, packetLen, packetType, phy, 0); - } else { - res = LlEnhancedRxTest(testConfig.channel, phy, 0, 0); - } - APP_TRACE_INFO2("result = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - /* if duration value was given then let the test run that amount of time and end */ - if (testConfig.duration_ms) { - vTaskDelay(testConfig.duration_ms); - LlEndTest(NULL); - xSemaphoreGive(rfTestMutex); - } - pausePrompt = false; - - prompt(); - } -} -/*************************************************************************************************/ -void sweepTestTask(void *pvParameters) -{ - uint32_t notifVal = 0; - sweep_config_t sweepConfig; - - while (1) { - /* Wait for notification to initiate sweep */ - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - sweepConfig.allData = notifVal; - APP_TRACE_INFO3("\r\nStarting TX sweep from Ch %d to Ch %d @ %d ms per channel", - sweepConfig.start_channel, sweepConfig.end_channel, - sweepConfig.duration_per_ch_ms); - - char str[6] = ""; - - strcat(str, (const char *)getPhyStr(phy)); - /* sweep channels */ - for (int i = sweepConfig.start_channel; i <= sweepConfig.end_channel; i++) { - APP_TRACE_INFO3( - "\r\n-----------------| RF channel %d %s Freq: %dMHz |----------------------\r\n", - i, str, getFreqFromRfChannel(i)); - - LlEnhancedTxTest(i, packetLen, packetType, phy, 0); - vTaskDelay(sweepConfig.duration_per_ch_ms); - LlEndTest(NULL); - xSemaphoreGive(rfTestMutex); - vTaskDelay(50); /* give console time to print end of test reuslts */ - } - activeTest = NO_TEST; - pausePrompt = false; - prompt(); - } -} -/*************************************************************************************************/ -void helpTask(void *pvParameters) -{ - uint32_t notifVal = 0; - while (1) { - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - - // clang-format off - printf("┌─────────┬──────────────────────────────────┬───────────────────────────────────────────────────────â”\r\n"); - printf("│ Command │ parameters [optional] │ description │\r\n"); - printf("├─────────┼──────────────────────────────────┼───────────────────────────────────────────────────────┤\r\n"); - printf("│ cls │ N/A │ clears the screen │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ constTx │ │ Constant TX on given channel. │\r\n"); - printf("│ │ ex: constTx 0 1M │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ e │ N/A │ Ends any active RX/TX/Constant/Freq.hop RF test │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ ps │ N/A │ Display freeRTOS task stats │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ rx │ │ RX test on given channel. │\r\n"); - printf("│ │ ex: rx 0 2M 500 │ Duration of 0 is max duration until stopped │\r\n"); - printf("│ │ │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); - printf("│ │ │ (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ sweep │ │ Sweeps TX tests through a range of RF channels given │\r\n"); - printf("│ │ │ their order of appearance on the spectrum. │\r\n"); - printf("│ │ ex: sweep 0 10 255 FF 2M 500 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); - printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); - printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ tx │ │ TX test on given RF channel. │\r\n"); - printf("│ │ │ Duration of 0 is max duration until stopped │\r\n"); - printf("│ │ ex: tx 0 255 FF 2M 1000 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); - printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); - printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ power │ │ Select transmit power. Supported power levels (dBm) │\r\n"); - printf("│ │ ex: power -10 │ -10 , 0 , 4 │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ help │ N/A │ Displays this help table │\r\n"); - printf("└─────────┴──────────────────────────────────┴───────────────────────────────────────────────────────┘\r\n"); - // clang-format on - - pausePrompt = false; - prompt(); - } -} -/*************************************************************************************************/ -void setPhy(uint8_t newPhy) -{ - phy = newPhy; - char str[20] = "> Phy now set to "; - strcat(str, (phy == LL_TEST_PHY_LE_1M) ? "1M PHY" : - (phy == LL_TEST_PHY_LE_2M) ? "2M PHY" : - (phy == LL_TEST_PHY_LE_CODED_S8) ? "S8 PHY" : - (phy == LL_TEST_PHY_LE_CODED_S2) ? "S2 PHY" : - ""); - APP_TRACE_INFO1("%s", str); -} -/*************************************************************************************************/ -void startFreqHopping(void) -{ - NVIC_EnableIRQ(TMR2_IRQn); - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); -} /*************************************************************************************************/ -void setPacketLen(uint8_t len) -{ - packetLen = len; - APP_TRACE_INFO1("> Packet length set to %d", len); -} -/*************************************************************************************************/ -void setPacketType(uint8_t type) -{ - packetType = type; - APP_TRACE_INFO1("> Packet type set to %s", getPacketTypeStr()); -} -/*************************************************************************************************/ -void setTxPower(int8_t power) -{ - // TODO : validate value - txPower = power; - llc_api_set_txpower((int8_t)power); - LlSetAdvTxPower((int8_t)power); - printf("> Power set to %d dBm\n", power); -} -/*************************************************************************************************/ -void printConfigs(void) -{ - printf("-----| Current RF Configrations |-----\r\n"); - printf("Phy : %s \r\nPayload packet : %s\r\nPayload length : %d \r\nTX Power : %d dbm\r\n", - getPhyStr(phy), getPacketTypeStr(), packetLen, txPower); -} -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); -#endif - - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Register the UART RX request */ - WsfBufIoUartRegister(processConsoleRX); - - /* FreeRTOS */ - rfTestMutex = xSemaphoreCreateMutex(); - if (rfTestMutex == NULL) { - printf("xSemaphoreCreateMutex failed to create a mutex.\n"); - printf("necessary for operation...\r\n"); - while (1) { - //hang here.... - } - } - xTaskCreate(vCmdLineTask, (const char *)"CmdLineTask", - 1024 + CMD_LINE_BUF_SIZE + OUTPUT_BUF_SIZE, NULL, tskIDLE_PRIORITY + 1, - &cmd_task_id); - // TX tranismit test task - xTaskCreate(txTestTask, (const char *)"Tx Task", 1024, NULL, tskIDLE_PRIORITY + 1, &tx_task_id); - - // Sweep test task - xTaskCreate(sweepTestTask, (const char *)"Sweep Task", 1024, NULL, tskIDLE_PRIORITY + 1, - &sweep_task_id); - - // help task - xTaskCreate(helpTask, (const char *)"Help Task", 1024, NULL, tskIDLE_PRIORITY + 1, - &help_task_id); - - /* Start scheduler */ - APP_TRACE_INFO0(">> Starting scheduler.\r\n"); - - vTaskStartScheduler(); - - return 0; -} -/*************************************************************************************************/ -/*! - * \brief Calculates frequency of given RF channel - * \return Returns frequency of given RF channel - */ -/*************************************************************************************************/ -uint16_t getFreqFromRfChannel(uint8_t ch) -{ - return 2402 + (ch * 2); -} \ No newline at end of file diff --git a/Examples/MAX32665/RF_Test/main.h b/Examples/MAX32665/RF_Test/main.h deleted file mode 100644 index 0580970fca0..00000000000 --- a/Examples/MAX32665/RF_Test/main.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef _MAIN_H_ -#define _MAIN_H_ - -#include -#include -#include -#include "ll_init_api.h" -#include "ll_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "tmr.h" -#include "wut_regs.h" -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "portmacro.h" -#include "task.h" -#include "semphr.h" -#include "FreeRTOS_CLI.h" -#include "uart.h" -#include "mxc_delay.h" -#include "mxc_errors.h" -#include "nvic_table.h" -typedef enum uint8_t { - NO_TEST, - BLE_RX_TEST, - BLE_TX_TEST, - BLE_CONST_TX, - BLE_SWEEP_TEST, - BLE_FHOP_TEST, -} test_t; - -typedef union { - struct { - uint16_t duration_ms; - uint8_t channel; - test_t testType; - }; - uint32_t allData; -} tx_config_t; - -typedef union { - struct { - uint8_t start_channel; - uint8_t end_channel; - uint16_t duration_per_ch_ms; - }; - uint32_t allData; -} sweep_config_t; - -typedef struct { - uint8_t cmd[100]; - uint8_t length; -} cmd_history_t; - -typedef struct { - cmd_history_t command[10]; - uint8_t head; - uint8_t tail; - int queuePointer; -} queue_t; - -void setPhy(uint8_t newPhy); -void startFreqHopping(void); -void setPacketLen(uint8_t len); -void setPacketType(uint8_t type); -void setTxPower(int8_t power); -void printConfigs(void); -uint16_t getFreqFromRfChannel(uint8_t ch); -#endif \ No newline at end of file diff --git a/Examples/MAX32665/RPU/Makefile b/Examples/MAX32665/RPU/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/RPU/Makefile +++ b/Examples/MAX32665/RPU/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/RPU/main.c b/Examples/MAX32665/RPU/main.c index cab97352551..58a6206a5b0 100644 --- a/Examples/MAX32665/RPU/main.c +++ b/Examples/MAX32665/RPU/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/RTC/Makefile b/Examples/MAX32665/RTC/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/RTC/Makefile +++ b/Examples/MAX32665/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/RTC/main.c b/Examples/MAX32665/RTC/main.c index 434f5ae5af9..e60f40be9b9 100644 --- a/Examples/MAX32665/RTC/main.c +++ b/Examples/MAX32665/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/RTC_Backup/Makefile b/Examples/MAX32665/RTC_Backup/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/RTC_Backup/Makefile +++ b/Examples/MAX32665/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/RTC_Backup/main.c b/Examples/MAX32665/RTC_Backup/main.c index 2b658967c8f..f1f8cfa9a94 100644 --- a/Examples/MAX32665/RTC_Backup/main.c +++ b/Examples/MAX32665/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/SCPA_OTP_Dump/Makefile b/Examples/MAX32665/SCPA_OTP_Dump/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SCPA_OTP_Dump/Makefile +++ b/Examples/MAX32665/SCPA_OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SCPA_OTP_Dump/main.c b/Examples/MAX32665/SCPA_OTP_Dump/main.c index c0b15107995..6eaed3b4d6c 100644 --- a/Examples/MAX32665/SCPA_OTP_Dump/main.c +++ b/Examples/MAX32665/SCPA_OTP_Dump/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/SCPA_OTP_Dump/utils.c b/Examples/MAX32665/SCPA_OTP_Dump/utils.c index 3a84ee68f25..ff7ccf8019a 100644 --- a/Examples/MAX32665/SCPA_OTP_Dump/utils.c +++ b/Examples/MAX32665/SCPA_OTP_Dump/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32665/SCPA_OTP_Dump/utils.h b/Examples/MAX32665/SCPA_OTP_Dump/utils.h index d6cc3bbe04b..c189ffc1635 100644 --- a/Examples/MAX32665/SCPA_OTP_Dump/utils.h +++ b/Examples/MAX32665/SCPA_OTP_Dump/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_SCPA_OTP_DUMP_UTILS_H_ diff --git a/Examples/MAX32665/SDHC_FAT/Makefile b/Examples/MAX32665/SDHC_FAT/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SDHC_FAT/Makefile +++ b/Examples/MAX32665/SDHC_FAT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SDHC_FAT/main.c b/Examples/MAX32665/SDHC_FAT/main.c index 5ff1b98056e..7b6adc88654 100644 --- a/Examples/MAX32665/SDHC_FAT/main.c +++ b/Examples/MAX32665/SDHC_FAT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/SDHC_Raw/Makefile b/Examples/MAX32665/SDHC_Raw/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SDHC_Raw/Makefile +++ b/Examples/MAX32665/SDHC_Raw/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SDHC_Raw/main.c b/Examples/MAX32665/SDHC_Raw/main.c index 3b69e7171c7..45e094f92f3 100644 --- a/Examples/MAX32665/SDHC_Raw/main.c +++ b/Examples/MAX32665/SDHC_Raw/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/SPI/Makefile b/Examples/MAX32665/SPI/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SPI/Makefile +++ b/Examples/MAX32665/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SPI/main.c b/Examples/MAX32665/SPI/main.c index 6ba1e6b2fe8..3b1287725d3 100644 --- a/Examples/MAX32665/SPI/main.c +++ b/Examples/MAX32665/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/SPIXF/Makefile b/Examples/MAX32665/SPIXF/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SPIXF/Makefile +++ b/Examples/MAX32665/SPIXF/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SPIXF/main.c b/Examples/MAX32665/SPIXF/main.c index 0a9db8b3aa1..a3cb9362180 100644 --- a/Examples/MAX32665/SPIXF/main.c +++ b/Examples/MAX32665/SPIXF/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/SPIXF/ramfunc.c b/Examples/MAX32665/SPIXF/ramfunc.c index 52cc44d10e4..e9d716e527f 100644 --- a/Examples/MAX32665/SPIXF/ramfunc.c +++ b/Examples/MAX32665/SPIXF/ramfunc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Examples/MAX32665/SPIXF_SFCC/Makefile b/Examples/MAX32665/SPIXF_SFCC/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SPIXF_SFCC/Makefile +++ b/Examples/MAX32665/SPIXF_SFCC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SPIXF_SFCC/main.c b/Examples/MAX32665/SPIXF_SFCC/main.c index 285930374b7..d7897e7204f 100644 --- a/Examples/MAX32665/SPIXF_SFCC/main.c +++ b/Examples/MAX32665/SPIXF_SFCC/main.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32665/SPIXR/Makefile b/Examples/MAX32665/SPIXR/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SPIXR/Makefile +++ b/Examples/MAX32665/SPIXR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SPIXR/main.c b/Examples/MAX32665/SPIXR/main.c index aa5c643a5ab..92722f3cefb 100644 --- a/Examples/MAX32665/SPIXR/main.c +++ b/Examples/MAX32665/SPIXR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/SRCC/Makefile b/Examples/MAX32665/SRCC/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/SRCC/Makefile +++ b/Examples/MAX32665/SRCC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/SRCC/main.c b/Examples/MAX32665/SRCC/main.c index e1e2465c11c..bf6aea59346 100644 --- a/Examples/MAX32665/SRCC/main.c +++ b/Examples/MAX32665/SRCC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Semaphore/Makefile b/Examples/MAX32665/Semaphore/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Semaphore/Makefile +++ b/Examples/MAX32665/Semaphore/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Semaphore/main.c b/Examples/MAX32665/Semaphore/main.c index 0954c992495..dbaf655c2b7 100644 --- a/Examples/MAX32665/Semaphore/main.c +++ b/Examples/MAX32665/Semaphore/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32665/TMR/Makefile b/Examples/MAX32665/TMR/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/TMR/Makefile +++ b/Examples/MAX32665/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/TMR/main.c b/Examples/MAX32665/TMR/main.c index 61c41b69618..2b4dc91df4a 100644 --- a/Examples/MAX32665/TMR/main.c +++ b/Examples/MAX32665/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/TRNG/Makefile b/Examples/MAX32665/TRNG/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/TRNG/Makefile +++ b/Examples/MAX32665/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/TRNG/main.c b/Examples/MAX32665/TRNG/main.c index 8f9932756ce..498acbc0514 100644 --- a/Examples/MAX32665/TRNG/main.c +++ b/Examples/MAX32665/TRNG/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Temp_Monitor/Makefile b/Examples/MAX32665/Temp_Monitor/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Temp_Monitor/Makefile +++ b/Examples/MAX32665/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Temp_Monitor/main.c b/Examples/MAX32665/Temp_Monitor/main.c index 2ea35c5624e..b3ca4ef3228 100644 --- a/Examples/MAX32665/Temp_Monitor/main.c +++ b/Examples/MAX32665/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Temp_Monitor/temp_monitor.c b/Examples/MAX32665/Temp_Monitor/temp_monitor.c index d36f70817c2..30663b28585 100644 --- a/Examples/MAX32665/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32665/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32665/Temp_Monitor/temp_monitor.h b/Examples/MAX32665/Temp_Monitor/temp_monitor.h index 3c4e806acd9..39fb2d27569 100644 --- a/Examples/MAX32665/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32665/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32665/UART/Makefile b/Examples/MAX32665/UART/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/UART/Makefile +++ b/Examples/MAX32665/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/UART/main.c b/Examples/MAX32665/UART/main.c index f12166b7e6b..af25a3f3a7b 100644 --- a/Examples/MAX32665/UART/main.c +++ b/Examples/MAX32665/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/UCL/Makefile b/Examples/MAX32665/UCL/Makefile index 1ee5c754322..7c20e1056c1 100644 --- a/Examples/MAX32665/UCL/Makefile +++ b/Examples/MAX32665/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/USB_CDCACM/.cproject b/Examples/MAX32665/USB/USB_CDCACM/.cproject similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.cproject rename to Examples/MAX32665/USB/USB_CDCACM/.cproject diff --git a/Examples/MAX32650/USB_CDCACM/.project b/Examples/MAX32665/USB/USB_CDCACM/.project similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.project rename to Examples/MAX32665/USB/USB_CDCACM/.project diff --git a/Examples/MAX32665/BLE_otac/.settings/language.settings.xml b/Examples/MAX32665/USB/USB_CDCACM/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_otac/.settings/language.settings.xml rename to Examples/MAX32665/USB/USB_CDCACM/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/USB_CDCACM/.vscode/README.md b/Examples/MAX32665/USB/USB_CDCACM/.vscode/README.md similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.vscode/README.md rename to Examples/MAX32665/USB/USB_CDCACM/.vscode/README.md diff --git a/Examples/MAX32665/BLE_fit/.vscode/c_cpp_properties.json b/Examples/MAX32665/USB/USB_CDCACM/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_fit/.vscode/c_cpp_properties.json rename to Examples/MAX32665/USB/USB_CDCACM/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SPI_MasterSlave/.vscode/flash.gdb b/Examples/MAX32665/USB/USB_CDCACM/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/SPI_MasterSlave/.vscode/flash.gdb rename to Examples/MAX32665/USB/USB_CDCACM/.vscode/flash.gdb diff --git a/Examples/MAX32665/USB_CDCACM/.vscode/launch.json b/Examples/MAX32665/USB/USB_CDCACM/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.vscode/launch.json rename to Examples/MAX32665/USB/USB_CDCACM/.vscode/launch.json diff --git a/Examples/MAX32665/USB_CDCACM/.vscode/settings.json b/Examples/MAX32665/USB/USB_CDCACM/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.vscode/settings.json rename to Examples/MAX32665/USB/USB_CDCACM/.vscode/settings.json diff --git a/Examples/MAX32665/USB_CDCACM/.vscode/tasks.json b/Examples/MAX32665/USB/USB_CDCACM/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.vscode/tasks.json rename to Examples/MAX32665/USB/USB_CDCACM/.vscode/tasks.json diff --git a/Examples/MAX32650/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat b/Examples/MAX32665/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat similarity index 100% rename from Examples/MAX32650/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat rename to Examples/MAX32665/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat diff --git a/Examples/MAX32650/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf b/Examples/MAX32665/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf similarity index 100% rename from Examples/MAX32650/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf rename to Examples/MAX32665/USB/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf diff --git a/Examples/MAX32665/USB/USB_CDCACM/Makefile b/Examples/MAX32665/USB/USB_CDCACM/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CDCACM/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/USB_CDCACM/README.md b/Examples/MAX32665/USB/USB_CDCACM/README.md similarity index 100% rename from Examples/MAX32665/USB_CDCACM/README.md rename to Examples/MAX32665/USB/USB_CDCACM/README.md diff --git a/Examples/MAX32665/USB_CDCACM/USB_CDCACM.launch b/Examples/MAX32665/USB/USB_CDCACM/USB_CDCACM.launch similarity index 100% rename from Examples/MAX32665/USB_CDCACM/USB_CDCACM.launch rename to Examples/MAX32665/USB/USB_CDCACM/USB_CDCACM.launch diff --git a/Examples/MAX32665/USB/USB_CDCACM/descriptors.h b/Examples/MAX32665/USB/USB_CDCACM/descriptors.h new file mode 100644 index 00000000000..a69211afb76 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CDCACM/descriptors.h @@ -0,0 +1,207 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_USB_USB_CDCACM_DESCRIPTORS_H_ +#define EXAMPLES_MAX32665_USB_USB_CDCACM_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x02, /* bDeviceClass = comm class (2) */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor = { + { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0043, /* wTotalLength(L/H) */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xE0, /* bmAttributes (self-powered, remote wakeup) */ + 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x00, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x00, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, + ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX32665_USB_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB/USB_CDCACM/main.c b/Examples/MAX32665/USB/USB_CDCACM/main.c new file mode 100644 index 00000000000..8ada4aa5ebf --- /dev/null +++ b/Examples/MAX32665/USB/USB_CDCACM/main.c @@ -0,0 +1,410 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB CDC-ACM example + * @details This project creates a virtual COM port, which loops back data sent to it. + * Load the project, connect a cable from the PC to the USB connector + * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. + * A driver for the COM port, if needed, is located in the Driver/ subdirectory. + * + */ + +#include +#include +#include "led.h" +#include "pb.h" +#include "mxc_delay.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "descriptors.h" +#include "gcr_regs.h" +#include "mxc_sys.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/***** Function Prototypes *****/ +int usbStartupCallback(); +int usbShutdownCallback(); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static int usbReadCallback(void); +static void echoUSB(void); + +/***** File Scope Variables *****/ + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 3, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("MXC_USB_Init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + acm_register_callback(ACM_CB_READ_READY, usbReadCallback); + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echoUSB(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete. Waiting for characters from serial port just " + "created...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/* This callback is used to allow the driver to call part specific initialization functions. */ +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/******************************************************************************/ +static void echoUSB(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + // Read the data from USB + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + // Echo it back + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + acm_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + acm_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; + acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + return acm_configure(&acm_cfg); /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + return acm_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + acm_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/******************************************************************************/ +static int usbReadCallback(void) +{ + usb_read_complete = 1; + return 0; +} + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +void SysTick_Handler(void) +{ + MXC_DelayHandler(); +} diff --git a/Examples/MAX32665/USB_CDCACM/project.mk b/Examples/MAX32665/USB/USB_CDCACM/project.mk similarity index 100% rename from Examples/MAX32665/USB_CDCACM/project.mk rename to Examples/MAX32665/USB/USB_CDCACM/project.mk diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.cproject b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.cproject similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.cproject rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.cproject diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.project b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.project similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.project rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.project diff --git a/Examples/MAX32665/BLE_otas/.settings/language.settings.xml b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_otas/.settings/language.settings.xml rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/README.md b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/README.md rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md diff --git a/Examples/MAX32665/BLE_mcs/.vscode/c_cpp_properties.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_mcs/.vscode/c_cpp_properties.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SPI_Usecase/.vscode/flash.gdb b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/SPI_Usecase/.vscode/flash.gdb rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/launch.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/launch.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/settings.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/settings.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/README.md b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/README.md similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/README.md rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/README.md diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/descriptors.h new file mode 100644 index 00000000000..786ede27e9a --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/descriptors.h @@ -0,0 +1,474 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ +#define EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0xEF, /* bDeviceClass = code specified by interface descriptors */ + 0x02, /* bDeviceSubClass = code specified by interface descriptors */ + 0x01, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0xEF, /* bDeviceClass = Unspecified */ + 0x02, /* bDeviceSubClass */ + 0x01, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) = 98 bytes */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ /// + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor_hs = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0200, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { + 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', + 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/main.c new file mode 100644 index 00000000000..65818046ad1 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/main.c @@ -0,0 +1,475 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. +*/ + +#include +#include +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" +#include "gcr_regs.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* **** Function Prototypes **** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int usbReadCallback(void); +int usbStartupCallback(); +int usbShutdownCallback(); +static void echoUSB(void); + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 2, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 3, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 4, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, + mscmem_Size, mscmem_Read, mscmem_Write }; + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, + 0); + } + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + acm_register_callback(ACM_CB_READ_READY, usbReadCallback); + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echoUSB(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static void echoUSB(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + // Read the data from USB + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + // Echo it back + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// + msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; + acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; + acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + 0x7; + acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + msc_configure(&msc_cfg); + return acm_configure(&acm_cfg); + /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return acm_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/* ************************************************************************** */ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + usbAppSleep(); + break; + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + case MAXUSB_EVENT_BRSTDN: /// + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, + 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, + 0); + } + break; + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +static int usbReadCallback(void) +{ + usb_read_complete = 1; + return 0; +} diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/mscmem.c new file mode 100644 index 00000000000..2ed7e72a8f7 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/mscmem.c @@ -0,0 +1,343 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +#include "Ext_Flash.h" +#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 1 +#define RAM_DISK 0 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/mscmem.h new file mode 100644 index 00000000000..38d968290e5 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/mscmem.h @@ -0,0 +1,115 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ +#define EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ + +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/project.mk b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/project.mk similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/project.mk rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_CDC/project.mk diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.cproject b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.cproject similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.cproject rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.cproject diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.project b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.project similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.project rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.project diff --git a/Examples/MAX32665/BLE_periph/.settings/language.settings.xml b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/BLE_periph/.settings/language.settings.xml rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/README.md b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/README.md rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md diff --git a/Examples/MAX32665/BLE_otac/.vscode/c_cpp_properties.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_otac/.vscode/c_cpp_properties.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/SRCC/.vscode/flash.gdb b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/SRCC/.vscode/flash.gdb rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/launch.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/launch.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/settings.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/settings.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/tasks.json b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/tasks.json rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/README.md b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/README.md similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/README.md rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/README.md diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/descriptors.h new file mode 100644 index 00000000000..30c75f0c5f8 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/descriptors.h @@ -0,0 +1,246 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ +#define EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0x00, /* bDeviceClass = code specified by interface descriptors */ + 0x00, /* bDeviceSubClass = code specified by interface descriptors */ + 0x00, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x01, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 HID Keyboard */ + MXC_USB_interface_descriptor_t hid_interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0039, /* wTotalLength(L/H) = 57 bytes */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : HID Keyboard **********/ + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x04, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + }, + /********** Interface #1 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { + 0x24, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/main.c new file mode 100644 index 00000000000..545f4b15c37 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/main.c @@ -0,0 +1,435 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and HID driver class. +*/ + +#include +#include +#include "gcr_regs.h" +#include "mxc_sys.h" +#include "led.h" +#include "pb.h" +#include "mxc_delay.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* **** Function Prototypes **** */ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +int usbStartupCallback(); +int usbShutdownCallback(); + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + + while (1) {} + } + + if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, + &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("PB_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW2 to send character.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + + msc_configure(&msc_cfg); + return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return hidkbd_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (PB_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remote_wake_en) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/mscmem.c new file mode 100644 index 00000000000..2ed7e72a8f7 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/mscmem.c @@ -0,0 +1,343 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +#include "Ext_Flash.h" +#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 1 +#define RAM_DISK 0 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/mscmem.h new file mode 100644 index 00000000000..5a736808f72 --- /dev/null +++ b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/mscmem.h @@ -0,0 +1,75 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ +#define EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ + +#include + +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ + +int mscmem_Init(void); +int mscmem_Start(void); +int mscmem_Stop(void); +int mscmem_Ready(); +uint32_t mscmem_Size(void); +int mscmem_Read(uint32_t lba, uint8_t *buffer); +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +#endif // EXAMPLES_MAX32665_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/project.mk b/Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/project.mk similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/project.mk rename to Examples/MAX32665/USB/USB_CompositeDevice_MSC_HID/project.mk diff --git a/Examples/MAX32665/USB_HIDKeyboard/.cproject b/Examples/MAX32665/USB/USB_HIDKeyboard/.cproject similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.cproject rename to Examples/MAX32665/USB/USB_HIDKeyboard/.cproject diff --git a/Examples/MAX32650/USB_HIDKeyboard/.project b/Examples/MAX32665/USB/USB_HIDKeyboard/.project similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.project rename to Examples/MAX32665/USB/USB_HIDKeyboard/.project diff --git a/Examples/MAX32665/Bootloader/.settings/language.settings.xml b/Examples/MAX32665/USB/USB_HIDKeyboard/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/Bootloader/.settings/language.settings.xml rename to Examples/MAX32665/USB/USB_HIDKeyboard/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/USB_HIDKeyboard/.vscode/README.md b/Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/README.md similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.vscode/README.md rename to Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/README.md diff --git a/Examples/MAX32665/BLE_otas/.vscode/c_cpp_properties.json b/Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_otas/.vscode/c_cpp_properties.json rename to Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Security_Monitor/.vscode/flash.gdb b/Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Security_Monitor/.vscode/flash.gdb rename to Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/flash.gdb diff --git a/Examples/MAX32665/USB_HIDKeyboard/.vscode/launch.json b/Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.vscode/launch.json rename to Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/launch.json diff --git a/Examples/MAX32665/USB_HIDKeyboard/.vscode/settings.json b/Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.vscode/settings.json rename to Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/settings.json diff --git a/Examples/MAX32665/USB_HIDKeyboard/.vscode/tasks.json b/Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.vscode/tasks.json rename to Examples/MAX32665/USB/USB_HIDKeyboard/.vscode/tasks.json diff --git a/Examples/MAX32665/USB/USB_HIDKeyboard/Makefile b/Examples/MAX32665/USB/USB_HIDKeyboard/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/USB/USB_HIDKeyboard/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/USB_HIDKeyboard/README.md b/Examples/MAX32665/USB/USB_HIDKeyboard/README.md similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/README.md rename to Examples/MAX32665/USB/USB_HIDKeyboard/README.md diff --git a/Examples/MAX32665/USB_HIDKeyboard/USB_HIDKeyboard.launch b/Examples/MAX32665/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/USB_HIDKeyboard.launch rename to Examples/MAX32665/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch diff --git a/Examples/MAX32665/USB/USB_HIDKeyboard/descriptors.h b/Examples/MAX32665/USB/USB_HIDKeyboard/descriptors.h new file mode 100644 index 00000000000..fa101e99923 --- /dev/null +++ b/Examples/MAX32665/USB/USB_HIDKeyboard/descriptors.h @@ -0,0 +1,173 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ +#define EXAMPLES_MAX32665_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + MXC_USB_interface_descriptor_t interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor; +} config_descriptor = { { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0022, /* wTotalLength(L/H) = 34 bytes */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x00, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x00, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + } }; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x2c, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, + 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX32665_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB/USB_HIDKeyboard/main.c b/Examples/MAX32665/USB/USB_HIDKeyboard/main.c new file mode 100644 index 00000000000..f92380e28c5 --- /dev/null +++ b/Examples/MAX32665/USB/USB_HIDKeyboard/main.c @@ -0,0 +1,391 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device + * @details The EvKit should enumerate as a HID Keyboard device after loading the project and + * attaching a cable from the PC to the USB connector on the Evaluation Kit. + * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. + * 2. Open a text editor on the PC host and place cursor in edit box. + * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. + * + */ + +#include +#include +#include "led.h" +#include "pb.h" +#include "mxc_delay.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "descriptors.h" +#include "gcr_regs.h" +#include "mxc_sys.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +int remoteWake; +volatile int configured; +volatile int suspended; +volatile unsigned int evtFlags; + +/***** Function Prototypes *****/ +int usbStartupCallback(); +int usbShutdownCallback(); +void usDelay(unsigned int usec); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + evtFlags = 0; + remoteWake = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = usDelay; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("MXC_USB_Init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, + report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("PB_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (evtFlags) { + /* Display events */ + if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW1 to send character.\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +/* User-supplied function to delay usec micro-seconds */ +void usDelay(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/******************************************************************************/ +static void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (PB_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remoteWake) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); + return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + return hidkbd_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&evtFlags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} diff --git a/Examples/MAX32665/USB_HIDKeyboard/project.mk b/Examples/MAX32665/USB/USB_HIDKeyboard/project.mk similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/project.mk rename to Examples/MAX32665/USB/USB_HIDKeyboard/project.mk diff --git a/Examples/MAX32665/USB_MassStorage/.cproject b/Examples/MAX32665/USB/USB_MassStorage/.cproject similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.cproject rename to Examples/MAX32665/USB/USB_MassStorage/.cproject diff --git a/Examples/MAX32650/USB_MassStorage/.project b/Examples/MAX32665/USB/USB_MassStorage/.project similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.project rename to Examples/MAX32665/USB/USB_MassStorage/.project diff --git a/Examples/MAX32665/Bootloader_Host/.settings/language.settings.xml b/Examples/MAX32665/USB/USB_MassStorage/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.settings/language.settings.xml rename to Examples/MAX32665/USB/USB_MassStorage/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32665/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32665/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32665/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32665/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32665/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32665/USB_MassStorage/.vscode/README.md b/Examples/MAX32665/USB/USB_MassStorage/.vscode/README.md similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.vscode/README.md rename to Examples/MAX32665/USB/USB_MassStorage/.vscode/README.md diff --git a/Examples/MAX32665/BLE_periph/.vscode/c_cpp_properties.json b/Examples/MAX32665/USB/USB_MassStorage/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/BLE_periph/.vscode/c_cpp_properties.json rename to Examples/MAX32665/USB/USB_MassStorage/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Semaphore/.vscode/flash.gdb b/Examples/MAX32665/USB/USB_MassStorage/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Semaphore/.vscode/flash.gdb rename to Examples/MAX32665/USB/USB_MassStorage/.vscode/flash.gdb diff --git a/Examples/MAX32665/USB_MassStorage/.vscode/launch.json b/Examples/MAX32665/USB/USB_MassStorage/.vscode/launch.json similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.vscode/launch.json rename to Examples/MAX32665/USB/USB_MassStorage/.vscode/launch.json diff --git a/Examples/MAX32665/USB_MassStorage/.vscode/settings.json b/Examples/MAX32665/USB/USB_MassStorage/.vscode/settings.json similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.vscode/settings.json rename to Examples/MAX32665/USB/USB_MassStorage/.vscode/settings.json diff --git a/Examples/MAX32665/USB_MassStorage/.vscode/tasks.json b/Examples/MAX32665/USB/USB_MassStorage/.vscode/tasks.json similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.vscode/tasks.json rename to Examples/MAX32665/USB/USB_MassStorage/.vscode/tasks.json diff --git a/Examples/MAX32665/USB/USB_MassStorage/Makefile b/Examples/MAX32665/USB/USB_MassStorage/Makefile new file mode 100644 index 00000000000..7d521b4c9c2 --- /dev/null +++ b/Examples/MAX32665/USB/USB_MassStorage/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32665 +TARGET_UC := MAX32665 +TARGET_LC := max32665 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32665/USB_MassStorage/README.md b/Examples/MAX32665/USB/USB_MassStorage/README.md similarity index 100% rename from Examples/MAX32665/USB_MassStorage/README.md rename to Examples/MAX32665/USB/USB_MassStorage/README.md diff --git a/Examples/MAX32665/USB_MassStorage/USB_MassStorage.launch b/Examples/MAX32665/USB/USB_MassStorage/USB_MassStorage.launch similarity index 100% rename from Examples/MAX32665/USB_MassStorage/USB_MassStorage.launch rename to Examples/MAX32665/USB/USB_MassStorage/USB_MassStorage.launch diff --git a/Examples/MAX32665/USB/USB_MassStorage/descriptors.h b/Examples/MAX32665/USB/USB_MassStorage/descriptors.h new file mode 100644 index 00000000000..9753290c85d --- /dev/null +++ b/Examples/MAX32665/USB/USB_MassStorage/descriptors.h @@ -0,0 +1,211 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ +#define EXAMPLES_MAX32665_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x4402, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } }; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor_hs = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval */ + } }; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x38, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, + 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, + 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) +uint8_t serial_id_desc[] = { 26, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX32665_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB/USB_MassStorage/main.c b/Examples/MAX32665/USB/USB_MassStorage/main.c new file mode 100644 index 00000000000..cae4dfd7474 --- /dev/null +++ b/Examples/MAX32665/USB/USB_MassStorage/main.c @@ -0,0 +1,397 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB Mass Storage Class example + * @details This project creates a mass storage device using either on-board RAM or + * external SPI flash memory. Load the project, connect a cable from the PC + * to the USB connector. A new external drive should appear than can be read + * and written. + */ + +#include +#include +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" +#include "gcr_regs.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/***** File Scope Variables *****/ + +/* Defaults, which will be changed by the configuration code */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + return msc_configure(&msc_cfg); /* Configure the device class */ + + } else if (sud->wValue == 0) { + configured = 0; + return msc_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +int usbStartupCallback() +{ + // Startup the HIRC96M clock if it's not on already + if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { + MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; + + if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { + return E_TIME_OUT; + } + } + + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} diff --git a/Examples/MAX32665/USB/USB_MassStorage/mscmem.c b/Examples/MAX32665/USB/USB_MassStorage/mscmem.c new file mode 100644 index 00000000000..2ed7e72a8f7 --- /dev/null +++ b/Examples/MAX32665/USB/USB_MassStorage/mscmem.c @@ -0,0 +1,343 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +#include "Ext_Flash.h" +#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 1 +#define RAM_DISK 0 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32665/USB/USB_MassStorage/mscmem.h b/Examples/MAX32665/USB/USB_MassStorage/mscmem.h new file mode 100644 index 00000000000..b6b84314d7f --- /dev/null +++ b/Examples/MAX32665/USB/USB_MassStorage/mscmem.h @@ -0,0 +1,116 @@ +/** + * @file + * @brief Memory routines used by the USB Mass Storage Class example. + * See the @ref msc_mem_t structure in msc.h for function details. + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32665_USB_USB_MASSSTORAGE_MSCMEM_H_ +#define EXAMPLES_MAX32665_USB_USB_MASSSTORAGE_MSCMEM_H_ + +/* **** Include Files **** */ +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32665_USB_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX32665/USB_MassStorage/project.mk b/Examples/MAX32665/USB/USB_MassStorage/project.mk similarity index 100% rename from Examples/MAX32665/USB_MassStorage/project.mk rename to Examples/MAX32665/USB/USB_MassStorage/project.mk diff --git a/Examples/MAX32665/USB_CDCACM/.vscode/flash.gdb b/Examples/MAX32665/USB_CDCACM/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/USB_CDCACM/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat b/Examples/MAX32665/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat deleted file mode 100644 index bfb6612922e..00000000000 Binary files a/Examples/MAX32665/USB_CDCACM/Driver/maxim_usb-uart_adapter.cat and /dev/null differ diff --git a/Examples/MAX32665/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf b/Examples/MAX32665/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf deleted file mode 100644 index 9f1a7469ba7..00000000000 --- a/Examples/MAX32665/USB_CDCACM/Driver/maxim_usb-uart_adapter.inf +++ /dev/null @@ -1,48 +0,0 @@ -[Version] -Signature="$Windows NT$" -Class=Ports -ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} -Provider=%Maxim% -LayoutFile=layout.inf -DriverVer=02/20/2015,1.0.0000.0 -CatalogFile=maxim_usb-uart_adapter.cat - -[Manufacturer] -%Maxim%=Maxim_Serial,NT,NTamd64 - -[DestinationDirs] -DefaultDestDir = 12 - -[Maxim_Serial.NT] -%DESCRIPTION%=Maxim_SerialInstall,USB\VID_0B6A&PID_003C - -[Maxim_Serial.NTamd64] -%DESCRIPTION%=Maxim_SerialInstall,USB\VID_0B6A&PID_003C - -[Maxim_SerialInstall.NT] -Include=mdmcpq.inf -CopyFiles=FakeModemCopyFileSection -AddReg=Maxim_SerialInstall.NT.AddReg - -[Maxim_SerialInstall.NT.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,usbser.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[Maxim_SerialInstall.NT.Services] -AddService=usbser, 0x00000002, DriverServiceInst - -[DriverServiceInst] -DisplayName=%SERVICE% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\usbser.sys - -[Strings] -DESCRIPTION = "Maxim USB-to-UART Adapter" -SERVICE = "USB RS-232 Emulation Driver" -Maxim = "Maxim Integrated" -Maxim_Serial = "Maxim USB Serial Port" - - diff --git a/Examples/MAX32665/USB_CDCACM/Makefile b/Examples/MAX32665/USB_CDCACM/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/USB_CDCACM/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/USB_CDCACM/descriptors.h b/Examples/MAX32665/USB_CDCACM/descriptors.h deleted file mode 100644 index df3806160c2..00000000000 --- a/Examples/MAX32665/USB_CDCACM/descriptors.h +++ /dev/null @@ -1,189 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_USB_CDCACM_DESCRIPTORS_H_ -#define EXAMPLES_MAX32665_USB_CDCACM_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = comm class (2) */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { - { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xE0, /* bmAttributes (self-powered, remote wakeup) */ - 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x00, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x00, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, - ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32665_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB_CDCACM/main.c b/Examples/MAX32665/USB_CDCACM/main.c deleted file mode 100644 index 283392076c2..00000000000 --- a/Examples/MAX32665/USB_CDCACM/main.c +++ /dev/null @@ -1,392 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB CDC-ACM example - * @details This project creates a virtual COM port, which loops back data sent to it. - * Load the project, connect a cable from the PC to the USB connector - * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. - * A driver for the COM port, if needed, is located in the Driver/ subdirectory. - * - */ - -#include -#include -#include "led.h" -#include "pb.h" -#include "mxc_delay.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "descriptors.h" -#include "gcr_regs.h" -#include "mxc_sys.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/***** Function Prototypes *****/ -int usbStartupCallback(); -int usbShutdownCallback(); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static int usbReadCallback(void); -static void echoUSB(void); - -/***** File Scope Variables *****/ - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 3, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - acm_register_callback(ACM_CB_READ_READY, usbReadCallback); - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echoUSB(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete. Waiting for characters from serial port just " - "created...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/* This callback is used to allow the driver to call part specific initialization functions. */ -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static void echoUSB(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - // Read the data from USB - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - // Echo it back - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - acm_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - acm_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; - acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - return acm_configure(&acm_cfg); /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - return acm_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - acm_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -static int usbReadCallback(void) -{ - usb_read_complete = 1; - return 0; -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -void SysTick_Handler(void) -{ - MXC_DelayHandler(); -} diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb b/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/descriptors.h deleted file mode 100644 index f33df7a7c26..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/descriptors.h +++ /dev/null @@ -1,456 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ -#define EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0xEF, /* bDeviceClass = code specified by interface descriptors */ - 0x02, /* bDeviceSubClass = code specified by interface descriptors */ - 0x01, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0xEF, /* bDeviceClass = Unspecified */ - 0x02, /* bDeviceSubClass */ - 0x01, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) = 98 bytes */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ /// - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor_hs = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0200, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/main.c deleted file mode 100644 index c19458e978e..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/main.c +++ /dev/null @@ -1,457 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. -*/ - -#include -#include -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" -#include "gcr_regs.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* **** Function Prototypes **** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usbReadCallback(void); -int usbStartupCallback(); -int usbShutdownCallback(); -static void echoUSB(void); - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 2, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 3, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 4, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, - mscmem_Size, mscmem_Read, mscmem_Write }; - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, - 0); - } - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - acm_register_callback(ACM_CB_READ_READY, usbReadCallback); - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echoUSB(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static void echoUSB(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - // Read the data from USB - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - // Echo it back - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// - msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - 0x7; - acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - msc_configure(&msc_cfg); - return acm_configure(&acm_cfg); - /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - usbAppSleep(); - break; - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - case MAXUSB_EVENT_BRSTDN: /// - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, - 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, - 0); - } - break; - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -static int usbReadCallback(void) -{ - usb_read_complete = 1; - return 0; -} diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/mscmem.c deleted file mode 100644 index f125ab250aa..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/mscmem.c +++ /dev/null @@ -1,325 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "Ext_Flash.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/mscmem.h deleted file mode 100644 index 50e00272dbe..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ -#define EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ - -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb b/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX32665/USB_CompositeDevice_MSC_HID/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX32665/USB_CompositeDevice_MSC_HID/descriptors.h deleted file mode 100644 index c3bea218e23..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/descriptors.h +++ /dev/null @@ -1,228 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ -#define EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0x00, /* bDeviceClass = code specified by interface descriptors */ - 0x00, /* bDeviceSubClass = code specified by interface descriptors */ - 0x00, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x01, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 HID Keyboard */ - MXC_USB_interface_descriptor_t hid_interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0039, /* wTotalLength(L/H) = 57 bytes */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : HID Keyboard **********/ - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x04, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - }, - /********** Interface #1 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { - 0x24, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX32665/USB_CompositeDevice_MSC_HID/main.c deleted file mode 100644 index 96259681223..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/main.c +++ /dev/null @@ -1,417 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and HID driver class. -*/ - -#include -#include -#include "gcr_regs.h" -#include "mxc_sys.h" -#include "led.h" -#include "pb.h" -#include "mxc_delay.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* **** Function Prototypes **** */ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -int usbStartupCallback(); -int usbShutdownCallback(); - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - - while (1) {} - } - - if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, - &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - - msc_configure(&msc_cfg); - return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return hidkbd_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remote_wake_en) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX32665/USB_CompositeDevice_MSC_HID/mscmem.c deleted file mode 100644 index f125ab250aa..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/mscmem.c +++ /dev/null @@ -1,325 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "Ext_Flash.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX32665/USB_CompositeDevice_MSC_HID/mscmem.h deleted file mode 100644 index 8a09838727f..00000000000 --- a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/mscmem.h +++ /dev/null @@ -1,57 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ -#define EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ - -#include - -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ - -int mscmem_Init(void); -int mscmem_Start(void); -int mscmem_Stop(void); -int mscmem_Ready(); -uint32_t mscmem_Size(void); -int mscmem_Read(uint32_t lba, uint8_t *buffer); -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -#endif // EXAMPLES_MAX32665_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX32665/USB_HIDKeyboard/.vscode/flash.gdb b/Examples/MAX32665/USB_HIDKeyboard/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/USB_HIDKeyboard/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/USB_HIDKeyboard/Makefile b/Examples/MAX32665/USB_HIDKeyboard/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/USB_HIDKeyboard/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/USB_HIDKeyboard/descriptors.h b/Examples/MAX32665/USB_HIDKeyboard/descriptors.h deleted file mode 100644 index 51cc62c346d..00000000000 --- a/Examples/MAX32665/USB_HIDKeyboard/descriptors.h +++ /dev/null @@ -1,155 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_USB_HIDKEYBOARD_DESCRIPTORS_H_ -#define EXAMPLES_MAX32665_USB_HIDKEYBOARD_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor; -} config_descriptor = { { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0022, /* wTotalLength(L/H) = 34 bytes */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x00, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x00, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - } }; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x2c, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, - 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32665_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB_HIDKeyboard/main.c b/Examples/MAX32665/USB_HIDKeyboard/main.c deleted file mode 100644 index 8b92b69d5a8..00000000000 --- a/Examples/MAX32665/USB_HIDKeyboard/main.c +++ /dev/null @@ -1,373 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device - * @details The EvKit should enumerate as a HID Keyboard device after loading the project and - * attaching a cable from the PC to the USB connector on the Evaluation Kit. - * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. - * 2. Open a text editor on the PC host and place cursor in edit box. - * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. - * - */ - -#include -#include -#include "led.h" -#include "pb.h" -#include "mxc_delay.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "descriptors.h" -#include "gcr_regs.h" -#include "mxc_sys.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -int remoteWake; -volatile int configured; -volatile int suspended; -volatile unsigned int evtFlags; - -/***** Function Prototypes *****/ -int usbStartupCallback(); -int usbShutdownCallback(); -void usDelay(unsigned int usec); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - evtFlags = 0; - remoteWake = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = usDelay; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, - report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (evtFlags) { - /* Display events */ - if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW1 to send character.\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -/* User-supplied function to delay usec micro-seconds */ -void usDelay(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remoteWake) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); - return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - return hidkbd_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&evtFlags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} diff --git a/Examples/MAX32665/USB_MassStorage/.vscode/flash.gdb b/Examples/MAX32665/USB_MassStorage/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32665/USB_MassStorage/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32665/USB_MassStorage/Makefile b/Examples/MAX32665/USB_MassStorage/Makefile deleted file mode 100644 index ba87cf69828..00000000000 --- a/Examples/MAX32665/USB_MassStorage/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32665 -TARGET_UC := MAX32665 -TARGET_LC := max32665 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32665/USB_MassStorage/descriptors.h b/Examples/MAX32665/USB_MassStorage/descriptors.h deleted file mode 100644 index d428b738d26..00000000000 --- a/Examples/MAX32665/USB_MassStorage/descriptors.h +++ /dev/null @@ -1,193 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32665_USB_MASSSTORAGE_DESCRIPTORS_H_ -#define EXAMPLES_MAX32665_USB_MASSSTORAGE_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x4402, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } }; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor_hs = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval */ - } }; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x38, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, - 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, - 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) -uint8_t serial_id_desc[] = { 26, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32665_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX32665/USB_MassStorage/main.c b/Examples/MAX32665/USB_MassStorage/main.c deleted file mode 100644 index fcc04b9a2bd..00000000000 --- a/Examples/MAX32665/USB_MassStorage/main.c +++ /dev/null @@ -1,379 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB Mass Storage Class example - * @details This project creates a mass storage device using either on-board RAM or - * external SPI flash memory. Load the project, connect a cable from the PC - * to the USB connector. A new external drive should appear than can be read - * and written. - */ - -#include -#include -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" -#include "gcr_regs.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/***** File Scope Variables *****/ - -/* Defaults, which will be changed by the configuration code */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - return msc_configure(&msc_cfg); /* Configure the device class */ - - } else if (sud->wValue == 0) { - configured = 0; - return msc_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -int usbStartupCallback() -{ - // Startup the HIRC96M clock if it's not on already - if (!(MXC_GCR->clkcn & MXC_F_GCR_CLKCN_HIRC96M_EN)) { - MXC_GCR->clkcn |= MXC_F_GCR_CLKCN_HIRC96M_EN; - - if (MXC_SYS_Clock_Timeout(MXC_F_GCR_CLKCN_HIRC96M_RDY) != E_NO_ERROR) { - return E_TIME_OUT; - } - } - - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} diff --git a/Examples/MAX32665/USB_MassStorage/mscmem.c b/Examples/MAX32665/USB_MassStorage/mscmem.c deleted file mode 100644 index f125ab250aa..00000000000 --- a/Examples/MAX32665/USB_MassStorage/mscmem.c +++ /dev/null @@ -1,325 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -#include "Ext_Flash.h" -#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 1 -#define RAM_DISK 0 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32665/USB_MassStorage/mscmem.h b/Examples/MAX32665/USB_MassStorage/mscmem.h deleted file mode 100644 index 2216a3b6b6c..00000000000 --- a/Examples/MAX32665/USB_MassStorage/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file - * @brief Memory routines used by the USB Mass Storage Class example. - * See the @ref msc_mem_t structure in msc.h for function details. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ -#ifndef EXAMPLES_MAX32665_USB_MASSSTORAGE_MSCMEM_H_ -#define EXAMPLES_MAX32665_USB_MASSSTORAGE_MSCMEM_H_ - -/* **** Include Files **** */ -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32665_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX32665/WUT/Makefile b/Examples/MAX32665/WUT/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/WUT/Makefile +++ b/Examples/MAX32665/WUT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/WUT/main.c b/Examples/MAX32665/WUT/main.c index d52efbcabf8..fc550149572 100644 --- a/Examples/MAX32665/WUT/main.c +++ b/Examples/MAX32665/WUT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/Watchdog/Makefile b/Examples/MAX32665/Watchdog/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/Watchdog/Makefile +++ b/Examples/MAX32665/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/Watchdog/main.c b/Examples/MAX32665/Watchdog/main.c index 01778e59dd9..88969a04410 100644 --- a/Examples/MAX32665/Watchdog/main.c +++ b/Examples/MAX32665/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32665/WearLeveling/Makefile b/Examples/MAX32665/WearLeveling/Makefile index ba87cf69828..7d521b4c9c2 100644 --- a/Examples/MAX32665/WearLeveling/Makefile +++ b/Examples/MAX32665/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32665/WearLeveling/include/cli.h b/Examples/MAX32665/WearLeveling/include/cli.h index 2ddabee4930..f62f9f0cc8a 100644 --- a/Examples/MAX32665/WearLeveling/include/cli.h +++ b/Examples/MAX32665/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32665/WearLeveling/include/file.h b/Examples/MAX32665/WearLeveling/include/file.h index 762d3d4501c..a00f67881be 100644 --- a/Examples/MAX32665/WearLeveling/include/file.h +++ b/Examples/MAX32665/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32665/WearLeveling/include/flash.h b/Examples/MAX32665/WearLeveling/include/flash.h index 1ac0d73bf26..d187b7f7674 100644 --- a/Examples/MAX32665/WearLeveling/include/flash.h +++ b/Examples/MAX32665/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/WearLeveling/include/main.h b/Examples/MAX32665/WearLeveling/include/main.h index fe39eb55387..d04d6ece45d 100644 --- a/Examples/MAX32665/WearLeveling/include/main.h +++ b/Examples/MAX32665/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32665_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32665/WearLeveling/main.c b/Examples/MAX32665/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32665/WearLeveling/main.c +++ b/Examples/MAX32665/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32665/WearLeveling/src/cli.c b/Examples/MAX32665/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32665/WearLeveling/src/cli.c +++ b/Examples/MAX32665/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32665/WearLeveling/src/file.c b/Examples/MAX32665/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32665/WearLeveling/src/file.c +++ b/Examples/MAX32665/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32665/WearLeveling/src/flash.c b/Examples/MAX32665/WearLeveling/src/flash.c index d4fa767301a..d34aad25080 100644 --- a/Examples/MAX32665/WearLeveling/src/flash.c +++ b/Examples/MAX32665/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/AES/ARM/sct_config.h b/Examples/MAX32670/AES/ARM/sct_config.h index 30647b8c845..28a4334d563 100644 --- a/Examples/MAX32670/AES/ARM/sct_config.h +++ b/Examples/MAX32670/AES/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_AES_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/AES/Makefile b/Examples/MAX32670/AES/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/AES/Makefile +++ b/Examples/MAX32670/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/AES/main.c b/Examples/MAX32670/AES/main.c index f24f8385065..84eab63d6d7 100644 --- a/Examples/MAX32670/AES/main.c +++ b/Examples/MAX32670/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_bayes_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_class_marks_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_convolution_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32670/ARM-DSP/arm_dotproduct_example_f32/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_fft_bin_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_fir_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_graphic_equalizer_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_linear_interp_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_matrix_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_signal_converge_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_sin_cos_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_svm_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32670/ARM-DSP/arm_variance_example/Makefile index 1875ea9b93e..3ce9fddd11b 100644 --- a/Examples/MAX32670/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32670/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/CRC/ARM/sct_config.h b/Examples/MAX32670/CRC/ARM/sct_config.h index 44c8eee95ce..d3776d8ed6d 100644 --- a/Examples/MAX32670/CRC/ARM/sct_config.h +++ b/Examples/MAX32670/CRC/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_CRC_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/CRC/Makefile b/Examples/MAX32670/CRC/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/CRC/Makefile +++ b/Examples/MAX32670/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/CRC/main.c b/Examples/MAX32670/CRC/main.c index d0dbfa5a664..217ae48c451 100644 --- a/Examples/MAX32670/CRC/main.c +++ b/Examples/MAX32670/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/Coremark/ARM/sct_config.h b/Examples/MAX32670/Coremark/ARM/sct_config.h index fb59c514cd1..dd6958bdbf3 100644 --- a/Examples/MAX32670/Coremark/ARM/sct_config.h +++ b/Examples/MAX32670/Coremark/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_COREMARK_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Coremark/Makefile b/Examples/MAX32670/Coremark/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Coremark/Makefile +++ b/Examples/MAX32670/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/DMA/ARM/sct_config.h b/Examples/MAX32670/DMA/ARM/sct_config.h index 232a61d4ff7..2cdb4e1131c 100644 --- a/Examples/MAX32670/DMA/ARM/sct_config.h +++ b/Examples/MAX32670/DMA/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_DMA_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/DMA/Makefile b/Examples/MAX32670/DMA/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/DMA/Makefile +++ b/Examples/MAX32670/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/DMA/main.c b/Examples/MAX32670/DMA/main.c index 9f027f3cfa3..e16a0f7907f 100644 --- a/Examples/MAX32670/DMA/main.c +++ b/Examples/MAX32670/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/EEPROM_Emulator/ARM/sct_config.h b/Examples/MAX32670/EEPROM_Emulator/ARM/sct_config.h index 99dcff0f83f..9626f164beb 100644 --- a/Examples/MAX32670/EEPROM_Emulator/ARM/sct_config.h +++ b/Examples/MAX32670/EEPROM_Emulator/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_EEPROM_EMULATOR_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/EEPROM_Emulator/Makefile b/Examples/MAX32670/EEPROM_Emulator/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/EEPROM_Emulator/Makefile +++ b/Examples/MAX32670/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/EEPROM_Emulator/include/cache.h b/Examples/MAX32670/EEPROM_Emulator/include/cache.h index 9263b1016d4..8164915e242 100644 --- a/Examples/MAX32670/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32670/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32670_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32670_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32670_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32670/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32670/EEPROM_Emulator/include/eeprom.h index e4956f57a15..683c2eee319 100644 --- a/Examples/MAX32670/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32670/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32670_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32670_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32670_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32670/EEPROM_Emulator/main.c b/Examples/MAX32670/EEPROM_Emulator/main.c index 3e4006d01d0..d997f25fa08 100644 --- a/Examples/MAX32670/EEPROM_Emulator/main.c +++ b/Examples/MAX32670/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/EEPROM_Emulator/src/cache.c b/Examples/MAX32670/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32670/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32670/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32670/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32670/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX32670/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32670/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32670/EXT_CLK/ARM/sct_config.h b/Examples/MAX32670/EXT_CLK/ARM/sct_config.h index b71394bbd58..0bc563f0268 100644 --- a/Examples/MAX32670/EXT_CLK/ARM/sct_config.h +++ b/Examples/MAX32670/EXT_CLK/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_EXT_CLK_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/EXT_CLK/Makefile b/Examples/MAX32670/EXT_CLK/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/EXT_CLK/Makefile +++ b/Examples/MAX32670/EXT_CLK/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/EXT_CLK/main.c b/Examples/MAX32670/EXT_CLK/main.c index 59e7bf80831..388df26c995 100644 --- a/Examples/MAX32670/EXT_CLK/main.c +++ b/Examples/MAX32670/EXT_CLK/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/Flash/ARM/sct_config.h b/Examples/MAX32670/Flash/ARM/sct_config.h index 483d536a135..abb6467c90b 100644 --- a/Examples/MAX32670/Flash/ARM/sct_config.h +++ b/Examples/MAX32670/Flash/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_FLASH_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Flash/Makefile b/Examples/MAX32670/Flash/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Flash/Makefile +++ b/Examples/MAX32670/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Flash/main.c b/Examples/MAX32670/Flash/main.c index 18debb9fac2..26d1fbbc19b 100644 --- a/Examples/MAX32670/Flash/main.c +++ b/Examples/MAX32670/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/Flash_CLI/ARM/sct_config.h b/Examples/MAX32670/Flash_CLI/ARM/sct_config.h index f107c2d4479..87b09705803 100644 --- a/Examples/MAX32670/Flash_CLI/ARM/sct_config.h +++ b/Examples/MAX32670/Flash_CLI/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_FLASH_CLI_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32670/Flash_CLI/FreeRTOSConfig.h index 26b1c4d2dc8..51c198c92e4 100644 --- a/Examples/MAX32670/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32670/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32670/Flash_CLI/Makefile b/Examples/MAX32670/Flash_CLI/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Flash_CLI/Makefile +++ b/Examples/MAX32670/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Flash_CLI/definitions.h b/Examples/MAX32670/Flash_CLI/definitions.h index 0b0ed99e9b0..0a37851600b 100644 --- a/Examples/MAX32670/Flash_CLI/definitions.h +++ b/Examples/MAX32670/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32670/Flash_CLI/main.c b/Examples/MAX32670/Flash_CLI/main.c index b8932ebabb7..fd3cd48dbab 100644 --- a/Examples/MAX32670/Flash_CLI/main.c +++ b/Examples/MAX32670/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/FreeRTOSDemo/ARM/sct_config.h b/Examples/MAX32670/FreeRTOSDemo/ARM/sct_config.h index 360b8a83bdc..201e50a99f4 100644 --- a/Examples/MAX32670/FreeRTOSDemo/ARM/sct_config.h +++ b/Examples/MAX32670/FreeRTOSDemo/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_FREERTOSDEMO_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32670/FreeRTOSDemo/FreeRTOSConfig.h index cf85a39cc70..fdfcdd368f7 100644 --- a/Examples/MAX32670/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32670/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32670/FreeRTOSDemo/Makefile b/Examples/MAX32670/FreeRTOSDemo/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/FreeRTOSDemo/Makefile +++ b/Examples/MAX32670/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32670/FreeRTOSDemo/freertos_tickless.c index 077cb86d6f6..dde8d87068e 100644 --- a/Examples/MAX32670/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32670/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32670/FreeRTOSDemo/main.c b/Examples/MAX32670/FreeRTOSDemo/main.c index 53a67ae7d0a..444f21a3215 100644 --- a/Examples/MAX32670/FreeRTOSDemo/main.c +++ b/Examples/MAX32670/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/GPIO/ARM/sct_config.h b/Examples/MAX32670/GPIO/ARM/sct_config.h index a554cc775e4..e39cb9fc347 100644 --- a/Examples/MAX32670/GPIO/ARM/sct_config.h +++ b/Examples/MAX32670/GPIO/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_GPIO_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/GPIO/Makefile b/Examples/MAX32670/GPIO/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/GPIO/Makefile +++ b/Examples/MAX32670/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/GPIO/main.c b/Examples/MAX32670/GPIO/main.c index 2865139aba0..56e681c3295 100644 --- a/Examples/MAX32670/GPIO/main.c +++ b/Examples/MAX32670/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32670/Hello_World/ARM/sct_config.h b/Examples/MAX32670/Hello_World/ARM/sct_config.h index 5d0219a564a..fdae252011b 100644 --- a/Examples/MAX32670/Hello_World/ARM/sct_config.h +++ b/Examples/MAX32670/Hello_World/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_HELLO_WORLD_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Hello_World/Makefile b/Examples/MAX32670/Hello_World/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Hello_World/Makefile +++ b/Examples/MAX32670/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Hello_World/main.c b/Examples/MAX32670/Hello_World/main.c index 279f50ab504..53eda3decce 100644 --- a/Examples/MAX32670/Hello_World/main.c +++ b/Examples/MAX32670/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/Hello_World_Cpp/ARM/sct_config.h b/Examples/MAX32670/Hello_World_Cpp/ARM/sct_config.h index 3106f08fee8..6a7f972ded1 100644 --- a/Examples/MAX32670/Hello_World_Cpp/ARM/sct_config.h +++ b/Examples/MAX32670/Hello_World_Cpp/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_HELLO_WORLD_CPP_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Hello_World_Cpp/Makefile b/Examples/MAX32670/Hello_World_Cpp/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Hello_World_Cpp/Makefile +++ b/Examples/MAX32670/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Hello_World_Cpp/main.cpp b/Examples/MAX32670/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32670/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32670/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/I2C/ARM/sct_config.h b/Examples/MAX32670/I2C/ARM/sct_config.h index f4237a60bbb..0bd5fa6ed8f 100644 --- a/Examples/MAX32670/I2C/ARM/sct_config.h +++ b/Examples/MAX32670/I2C/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_I2C_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/I2C/Makefile b/Examples/MAX32670/I2C/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/I2C/Makefile +++ b/Examples/MAX32670/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/I2C/main.c b/Examples/MAX32670/I2C/main.c index 688e50cd39d..076852ea839 100644 --- a/Examples/MAX32670/I2C/main.c +++ b/Examples/MAX32670/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/I2C_MNGR/ARM/sct_config.h b/Examples/MAX32670/I2C_MNGR/ARM/sct_config.h index 44b5fd2cfe8..f38d7c31a12 100644 --- a/Examples/MAX32670/I2C_MNGR/ARM/sct_config.h +++ b/Examples/MAX32670/I2C_MNGR/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_I2C_MNGR_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32670/I2C_MNGR/FreeRTOSConfig.h index c7a5acfc039..07fd5823ae2 100644 --- a/Examples/MAX32670/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32670/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32670/I2C_MNGR/Makefile b/Examples/MAX32670/I2C_MNGR/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/I2C_MNGR/Makefile +++ b/Examples/MAX32670/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.c index 84e6bd1d361..c4ad58f485d 100644 --- a/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.h index 981d31c7e74..d70007d0bf2 100644 --- a/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32670/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32670/I2C_MNGR/main.c b/Examples/MAX32670/I2C_MNGR/main.c index 3d0b355d713..624db858881 100644 --- a/Examples/MAX32670/I2C_MNGR/main.c +++ b/Examples/MAX32670/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/I2C_SCAN/ARM/sct_config.h b/Examples/MAX32670/I2C_SCAN/ARM/sct_config.h index 7e7de3b68e5..fa77be6a94d 100644 --- a/Examples/MAX32670/I2C_SCAN/ARM/sct_config.h +++ b/Examples/MAX32670/I2C_SCAN/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_I2C_SCAN_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/I2C_SCAN/Makefile b/Examples/MAX32670/I2C_SCAN/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/I2C_SCAN/Makefile +++ b/Examples/MAX32670/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/I2C_SCAN/main.c b/Examples/MAX32670/I2C_SCAN/main.c index c75823c7f9c..06bd25256ae 100644 --- a/Examples/MAX32670/I2C_SCAN/main.c +++ b/Examples/MAX32670/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32670/I2C_Sensor/ARM/sct_config.h b/Examples/MAX32670/I2C_Sensor/ARM/sct_config.h index 27dd592b37a..a1d9fae602e 100644 --- a/Examples/MAX32670/I2C_Sensor/ARM/sct_config.h +++ b/Examples/MAX32670/I2C_Sensor/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_I2C_SENSOR_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/I2C_Sensor/Makefile b/Examples/MAX32670/I2C_Sensor/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/I2C_Sensor/Makefile +++ b/Examples/MAX32670/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/I2C_Sensor/main.c b/Examples/MAX32670/I2C_Sensor/main.c index bd51b3af76a..3bef0ecd7db 100644 --- a/Examples/MAX32670/I2C_Sensor/main.c +++ b/Examples/MAX32670/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32670/I2S/ARM/sct_config.h b/Examples/MAX32670/I2S/ARM/sct_config.h index b2b393fa33c..06f45131271 100644 --- a/Examples/MAX32670/I2S/ARM/sct_config.h +++ b/Examples/MAX32670/I2S/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_I2S_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/I2S/Makefile b/Examples/MAX32670/I2S/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/I2S/Makefile +++ b/Examples/MAX32670/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/I2S/main.c b/Examples/MAX32670/I2S/main.c index f1767b275de..284c46cf366 100644 --- a/Examples/MAX32670/I2S/main.c +++ b/Examples/MAX32670/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32670/ICC/ARM/sct_config.h b/Examples/MAX32670/ICC/ARM/sct_config.h index ca7f9d325b3..ed5b06cdec1 100644 --- a/Examples/MAX32670/ICC/ARM/sct_config.h +++ b/Examples/MAX32670/ICC/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_ICC_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/ICC/Makefile b/Examples/MAX32670/ICC/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/ICC/Makefile +++ b/Examples/MAX32670/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/ICC/main.c b/Examples/MAX32670/ICC/main.c index d4809db1e08..d8a9f0e1497 100644 --- a/Examples/MAX32670/ICC/main.c +++ b/Examples/MAX32670/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32670/LP/ARM/sct_config.h b/Examples/MAX32670/LP/ARM/sct_config.h index 1548e0fd580..5eb97179ffe 100644 --- a/Examples/MAX32670/LP/ARM/sct_config.h +++ b/Examples/MAX32670/LP/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_LP_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/LP/Makefile b/Examples/MAX32670/LP/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/LP/Makefile +++ b/Examples/MAX32670/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/LP/lp.ld b/Examples/MAX32670/LP/lp.ld index 79c270b2af7..f48d3e5abde 100644 --- a/Examples/MAX32670/LP/lp.ld +++ b/Examples/MAX32670/LP/lp.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32670/LP/main.c b/Examples/MAX32670/LP/main.c index 08d16d95068..e20084c6b41 100644 --- a/Examples/MAX32670/LP/main.c +++ b/Examples/MAX32670/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32670/Library_Generate/ARM/sct_config.h b/Examples/MAX32670/Library_Generate/ARM/sct_config.h index 5b6461ab33f..55cbed7e86c 100644 --- a/Examples/MAX32670/Library_Generate/ARM/sct_config.h +++ b/Examples/MAX32670/Library_Generate/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_LIBRARY_GENERATE_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Library_Generate/Makefile b/Examples/MAX32670/Library_Generate/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Library_Generate/Makefile +++ b/Examples/MAX32670/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Library_Generate/gpiolib.c b/Examples/MAX32670/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32670/Library_Generate/gpiolib.c +++ b/Examples/MAX32670/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32670/Library_Generate/gpiolib.h b/Examples/MAX32670/Library_Generate/gpiolib.h index a8aa5830c24..348293ae0b0 100644 --- a/Examples/MAX32670/Library_Generate/gpiolib.h +++ b/Examples/MAX32670/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32670/Library_Use/ARM/sct_config.h b/Examples/MAX32670/Library_Use/ARM/sct_config.h index 9d5a1d5bb33..0098841231a 100644 --- a/Examples/MAX32670/Library_Use/ARM/sct_config.h +++ b/Examples/MAX32670/Library_Use/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_LIBRARY_USE_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Library_Use/Makefile b/Examples/MAX32670/Library_Use/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Library_Use/Makefile +++ b/Examples/MAX32670/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Library_Use/lib/include/gpiolib.h b/Examples/MAX32670/Library_Use/lib/include/gpiolib.h index 3f5af7a2e2f..a4facabb5b6 100644 --- a/Examples/MAX32670/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32670/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32670/Library_Use/main.c b/Examples/MAX32670/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32670/Library_Use/main.c +++ b/Examples/MAX32670/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32670/RTC/ARM/sct_config.h b/Examples/MAX32670/RTC/ARM/sct_config.h index c503c03c018..040ef79fd64 100644 --- a/Examples/MAX32670/RTC/ARM/sct_config.h +++ b/Examples/MAX32670/RTC/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_RTC_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/RTC/Makefile b/Examples/MAX32670/RTC/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/RTC/Makefile +++ b/Examples/MAX32670/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/RTC/main.c b/Examples/MAX32670/RTC/main.c index 316f130bb82..f172b7eb2f5 100644 --- a/Examples/MAX32670/RTC/main.c +++ b/Examples/MAX32670/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/RTC_Backup/ARM/sct_config.h b/Examples/MAX32670/RTC_Backup/ARM/sct_config.h index 6404895fb54..f42629251c4 100644 --- a/Examples/MAX32670/RTC_Backup/ARM/sct_config.h +++ b/Examples/MAX32670/RTC_Backup/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_RTC_BACKUP_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/RTC_Backup/Makefile b/Examples/MAX32670/RTC_Backup/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/RTC_Backup/Makefile +++ b/Examples/MAX32670/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/RTC_Backup/main.c b/Examples/MAX32670/RTC_Backup/main.c index e3e67fb4a4b..3ff2f709e8a 100644 --- a/Examples/MAX32670/RTC_Backup/main.c +++ b/Examples/MAX32670/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/SPI/ARM/sct_config.h b/Examples/MAX32670/SPI/ARM/sct_config.h index e054f7ae68f..740315c2e1f 100644 --- a/Examples/MAX32670/SPI/ARM/sct_config.h +++ b/Examples/MAX32670/SPI/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_SPI_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/SPI/Makefile b/Examples/MAX32670/SPI/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/SPI/Makefile +++ b/Examples/MAX32670/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/SPI/main.c b/Examples/MAX32670/SPI/main.c index c6c8966d39e..8d9226b2182 100644 --- a/Examples/MAX32670/SPI/main.c +++ b/Examples/MAX32670/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32670/SPI_MasterSlave/ARM/sct_config.h b/Examples/MAX32670/SPI_MasterSlave/ARM/sct_config.h index 62d6151a7e5..9ebaf0a0004 100644 --- a/Examples/MAX32670/SPI_MasterSlave/ARM/sct_config.h +++ b/Examples/MAX32670/SPI_MasterSlave/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_SPI_MASTERSLAVE_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/SPI_MasterSlave/Makefile b/Examples/MAX32670/SPI_MasterSlave/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/SPI_MasterSlave/Makefile +++ b/Examples/MAX32670/SPI_MasterSlave/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/SPI_MasterSlave/main.c b/Examples/MAX32670/SPI_MasterSlave/main.c index 32749cd2be6..637603abfa6 100644 --- a/Examples/MAX32670/SPI_MasterSlave/main.c +++ b/Examples/MAX32670/SPI_MasterSlave/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32670/SPI_Usecase/ARM/sct_config.h b/Examples/MAX32670/SPI_Usecase/ARM/sct_config.h index fddecef9b78..550a1834984 100644 --- a/Examples/MAX32670/SPI_Usecase/ARM/sct_config.h +++ b/Examples/MAX32670/SPI_Usecase/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_SPI_USECASE_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/SPI_Usecase/Makefile b/Examples/MAX32670/SPI_Usecase/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/SPI_Usecase/Makefile +++ b/Examples/MAX32670/SPI_Usecase/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/SPI_Usecase/main.c b/Examples/MAX32670/SPI_Usecase/main.c index 54cef6fed91..dcbeabfe3bd 100644 --- a/Examples/MAX32670/SPI_Usecase/main.c +++ b/Examples/MAX32670/SPI_Usecase/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/SPI_Usecase/spi_config.h b/Examples/MAX32670/SPI_Usecase/spi_config.h index 4a6de7cb42c..5d413da363c 100644 --- a/Examples/MAX32670/SPI_Usecase/spi_config.h +++ b/Examples/MAX32670/SPI_Usecase/spi_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_SPI_USECASE_SPI_CONFIG_H_ diff --git a/Examples/MAX32670/SPI_Usecase/spi_master.c b/Examples/MAX32670/SPI_Usecase/spi_master.c index 080f01da7eb..4bbc9807e72 100644 --- a/Examples/MAX32670/SPI_Usecase/spi_master.c +++ b/Examples/MAX32670/SPI_Usecase/spi_master.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32670/SPI_Usecase/spi_slave.c b/Examples/MAX32670/SPI_Usecase/spi_slave.c index b833ea4c27a..221e6394dd6 100644 --- a/Examples/MAX32670/SPI_Usecase/spi_slave.c +++ b/Examples/MAX32670/SPI_Usecase/spi_slave.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32670/SecureROM_BL_Host/ARM/sct_config.h b/Examples/MAX32670/SecureROM_BL_Host/ARM/sct_config.h index 8cdfabfdd4b..dae4dee3d72 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/ARM/sct_config.h +++ b/Examples/MAX32670/SecureROM_BL_Host/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_SECUREROM_BL_HOST_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/SecureROM_BL_Host/Makefile b/Examples/MAX32670/SecureROM_BL_Host/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/Makefile +++ b/Examples/MAX32670/SecureROM_BL_Host/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.c b/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.c index 443f35c3875..c95d2bdf885 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.c +++ b/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************** INCLUDES ****************************/ diff --git a/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h b/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h index 1d08899a93a..37fee9040d7 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h +++ b/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,12 +31,29 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX32670_SECUREROM_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ -#define EXAMPLES_MAX32670_SECUREROM_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ +#ifndef EXAMPLES_MAX32670_SECUREROM_BL_HOST_BOOTLOADER_BOOTLOADER_H_ +#define EXAMPLES_MAX32670_SECUREROM_BL_HOST_BOOTLOADER_BOOTLOADER_H_ /******************************* INCLUDES ****************************/ +#include /******************************* DEFINES ****************************/ // RESET pin used to restart target before SCP communication @@ -70,8 +89,8 @@ typedef struct { typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem - unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + unsigned char is_tx; // 1: From host to target,0: From target to host + uint16_t len; const unsigned char *data; } scp_packet_struct; @@ -79,4 +98,4 @@ typedef struct { int sbl_init(bl_conf_struct_t *plt_funcs); int sbl_load(scp_packet_struct *scp_packets); -#endif // EXAMPLES_MAX32670_SECUREROM_BOOTLOADER_HOST_BOOTLOADER_BOOTLOADER_H_ +#endif // EXAMPLES_MAX32670_SECUREROM_BL_HOST_BOOTLOADER_BOOTLOADER_H_ diff --git a/Examples/MAX32670/SecureROM_BL_Host/include/platform.h b/Examples/MAX32670/SecureROM_BL_Host/include/platform.h index 83c6fe34f99..51177f69c70 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/include/platform.h +++ b/Examples/MAX32670/SecureROM_BL_Host/include/platform.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_SECUREROM_BL_HOST_INCLUDE_PLATFORM_H_ diff --git a/Examples/MAX32670/SecureROM_BL_Host/include/terminal.h b/Examples/MAX32670/SecureROM_BL_Host/include/terminal.h index 66b84865149..f94b5204455 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/include/terminal.h +++ b/Examples/MAX32670/SecureROM_BL_Host/include/terminal.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_SECUREROM_BL_HOST_INCLUDE_TERMINAL_H_ diff --git a/Examples/MAX32670/SecureROM_BL_Host/script/scp_to_c_array.py b/Examples/MAX32670/SecureROM_BL_Host/script/scp_to_c_array.py index 71cb456aadb..1dccf2a6ad5 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/script/scp_to_c_array.py +++ b/Examples/MAX32670/SecureROM_BL_Host/script/scp_to_c_array.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## copy_right='''/****************************************************************************** diff --git a/Examples/MAX32670/SecureROM_BL_Host/src/main.c b/Examples/MAX32670/SecureROM_BL_Host/src/main.c index 1ef7c69f2d0..ebbf0af5422 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/src/main.c +++ b/Examples/MAX32670/SecureROM_BL_Host/src/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/SecureROM_BL_Host/src/platform_max32670.c b/Examples/MAX32670/SecureROM_BL_Host/src/platform_max32670.c index 5001e1ee0b3..12ce4fa8327 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/src/platform_max32670.c +++ b/Examples/MAX32670/SecureROM_BL_Host/src/platform_max32670.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32670/SecureROM_BL_Host/src/terminal.c b/Examples/MAX32670/SecureROM_BL_Host/src/terminal.c index 150fb8d0b20..158819a987c 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/src/terminal.c +++ b/Examples/MAX32670/SecureROM_BL_Host/src/terminal.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******************************* INCLUDES ****************************/ diff --git a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c index 1c2adcc6d69..824b08843f6 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c +++ b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +#include + static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, 0x00, 0x00, 0x90, 0xf3 }; @@ -2285,7 +2305,7 @@ static const unsigned char scp_0000033_disconnection_reply[] = { 0xbe, 0xef, 0xe typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + uint16_t len; const unsigned char *data; } scp_packet_struct; diff --git a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c index 46b7b5f48d8..757a1e82dd9 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c +++ b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_7.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +#include + static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, 0x00, 0x00, 0x90, 0xf3 }; @@ -2285,7 +2305,7 @@ static const unsigned char scp_0000033_disconnection_reply[] = { 0xbe, 0xef, 0xe typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + uint16_t len; const unsigned char *data; } scp_packet_struct; diff --git a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c index b7f327f76d8..44de7d2a13b 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c +++ b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +#include + static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, 0x00, 0x00, 0x90, 0xf3 }; @@ -2870,7 +2890,7 @@ static const unsigned char scp_0000037_disconnection_reply[] = { 0xbe, 0xef, 0xe typedef struct { unsigned char type; // 1:hello_reply, 2:erase/del_mem unsigned char is_tx; // 1: From host to target, 0: From target to host - unsigned short len; + uint16_t len; const unsigned char *data; } scp_packet_struct; diff --git a/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h b/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h index ad539cbed77..f9b93348fce 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h +++ b/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX32670_SECURE_ROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ -#define EXAMPLES_MAX32670_SECURE_ROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ +#ifndef EXAMPLES_MAX32670_SECUREROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ +#define EXAMPLES_MAX32670_SECUREROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ /******************************* INCLUDES ****************************/ @@ -47,4 +65,4 @@ extern scp_packet_struct scp_MAX32651EVKIT_blinkled_P2_25[]; /******************************* Public Functions ****************************/ -#endif // EXAMPLES_MAX32670_SECURE_ROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ +#endif // EXAMPLES_MAX32670_SECUREROM_BL_HOST_TEST_IMAGES_TEST_IMAGES_H_ diff --git a/Examples/MAX32670/TMR/ARM/sct_config.h b/Examples/MAX32670/TMR/ARM/sct_config.h index fdd2dd21058..71558f1414f 100644 --- a/Examples/MAX32670/TMR/ARM/sct_config.h +++ b/Examples/MAX32670/TMR/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_TMR_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/TMR/Makefile b/Examples/MAX32670/TMR/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/TMR/Makefile +++ b/Examples/MAX32670/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/TMR/main.c b/Examples/MAX32670/TMR/main.c index d1d42f93e00..59427a479dd 100644 --- a/Examples/MAX32670/TMR/main.c +++ b/Examples/MAX32670/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/TRNG/ARM/sct_config.h b/Examples/MAX32670/TRNG/ARM/sct_config.h index e4b2b4c2e44..50e32c8769f 100644 --- a/Examples/MAX32670/TRNG/ARM/sct_config.h +++ b/Examples/MAX32670/TRNG/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_TRNG_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/TRNG/Makefile b/Examples/MAX32670/TRNG/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/TRNG/Makefile +++ b/Examples/MAX32670/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/TRNG/main.c b/Examples/MAX32670/TRNG/main.c index afbf3a5056a..c820ed56cda 100644 --- a/Examples/MAX32670/TRNG/main.c +++ b/Examples/MAX32670/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32670/Temp_Monitor/ARM/sct_config.h b/Examples/MAX32670/Temp_Monitor/ARM/sct_config.h index 2c7e58553c4..ecf7ddc3a2d 100644 --- a/Examples/MAX32670/Temp_Monitor/ARM/sct_config.h +++ b/Examples/MAX32670/Temp_Monitor/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_TEMP_MONITOR_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Temp_Monitor/Makefile b/Examples/MAX32670/Temp_Monitor/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Temp_Monitor/Makefile +++ b/Examples/MAX32670/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Temp_Monitor/main.c b/Examples/MAX32670/Temp_Monitor/main.c index 815d6aa4a49..550eda2a1d5 100644 --- a/Examples/MAX32670/Temp_Monitor/main.c +++ b/Examples/MAX32670/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/Temp_Monitor/temp_monitor.c b/Examples/MAX32670/Temp_Monitor/temp_monitor.c index 545ee070888..ab2954fb8d2 100644 --- a/Examples/MAX32670/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32670/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32670/Temp_Monitor/temp_monitor.h b/Examples/MAX32670/Temp_Monitor/temp_monitor.h index ffb3aa37f9a..cbd6dee295e 100644 --- a/Examples/MAX32670/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32670/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32670/UART/ARM/sct_config.h b/Examples/MAX32670/UART/ARM/sct_config.h index 5ca73920f9c..66210d27078 100644 --- a/Examples/MAX32670/UART/ARM/sct_config.h +++ b/Examples/MAX32670/UART/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_UART_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/UART/Makefile b/Examples/MAX32670/UART/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/UART/Makefile +++ b/Examples/MAX32670/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/UART/main.c b/Examples/MAX32670/UART/main.c index 953cfdc1fe9..cd9775b981b 100644 --- a/Examples/MAX32670/UART/main.c +++ b/Examples/MAX32670/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/UCL/ARM/sct_config.h b/Examples/MAX32670/UCL/ARM/sct_config.h index 8f64d6de6e5..197b29dfe1f 100644 --- a/Examples/MAX32670/UCL/ARM/sct_config.h +++ b/Examples/MAX32670/UCL/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_UCL_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/UCL/Makefile b/Examples/MAX32670/UCL/Makefile index 02f7454cebe..68b9e4213de 100644 --- a/Examples/MAX32670/UCL/Makefile +++ b/Examples/MAX32670/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Watchdog/ARM/sct_config.h b/Examples/MAX32670/Watchdog/ARM/sct_config.h index 3932e08a64e..d34a30fcfcc 100644 --- a/Examples/MAX32670/Watchdog/ARM/sct_config.h +++ b/Examples/MAX32670/Watchdog/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_WATCHDOG_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/Watchdog/Makefile b/Examples/MAX32670/Watchdog/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/Watchdog/Makefile +++ b/Examples/MAX32670/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/Watchdog/main.c b/Examples/MAX32670/Watchdog/main.c index 99e1a6ed5a9..2695eb62181 100644 --- a/Examples/MAX32670/Watchdog/main.c +++ b/Examples/MAX32670/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32670/WearLeveling/ARM/sct_config.h b/Examples/MAX32670/WearLeveling/ARM/sct_config.h index df152b6f1c0..24b25063c62 100644 --- a/Examples/MAX32670/WearLeveling/ARM/sct_config.h +++ b/Examples/MAX32670/WearLeveling/ARM/sct_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_WEARLEVELING_ARM_SCT_CONFIG_H_ diff --git a/Examples/MAX32670/WearLeveling/Makefile b/Examples/MAX32670/WearLeveling/Makefile index ee119213e4b..5dac7f28527 100644 --- a/Examples/MAX32670/WearLeveling/Makefile +++ b/Examples/MAX32670/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32670/WearLeveling/include/cli.h b/Examples/MAX32670/WearLeveling/include/cli.h index 27b08e20398..e5950c97b6b 100644 --- a/Examples/MAX32670/WearLeveling/include/cli.h +++ b/Examples/MAX32670/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32670/WearLeveling/include/file.h b/Examples/MAX32670/WearLeveling/include/file.h index 1f6ab853130..6045f8bcb3f 100644 --- a/Examples/MAX32670/WearLeveling/include/file.h +++ b/Examples/MAX32670/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32670/WearLeveling/include/flash.h b/Examples/MAX32670/WearLeveling/include/flash.h index 6a7f9fd1349..ed262bc0de8 100644 --- a/Examples/MAX32670/WearLeveling/include/flash.h +++ b/Examples/MAX32670/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/WearLeveling/include/main.h b/Examples/MAX32670/WearLeveling/include/main.h index 7e85286168a..c7a163dfa3a 100644 --- a/Examples/MAX32670/WearLeveling/include/main.h +++ b/Examples/MAX32670/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32670_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32670/WearLeveling/main.c b/Examples/MAX32670/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32670/WearLeveling/main.c +++ b/Examples/MAX32670/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32670/WearLeveling/src/cli.c b/Examples/MAX32670/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32670/WearLeveling/src/cli.c +++ b/Examples/MAX32670/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32670/WearLeveling/src/file.c b/Examples/MAX32670/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32670/WearLeveling/src/file.c +++ b/Examples/MAX32670/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32670/WearLeveling/src/flash.c b/Examples/MAX32670/WearLeveling/src/flash.c index d4fa767301a..d34aad25080 100644 --- a/Examples/MAX32670/WearLeveling/src/flash.c +++ b/Examples/MAX32670/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/ADC/Makefile b/Examples/MAX32672/ADC/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/ADC/Makefile +++ b/Examples/MAX32672/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ADC/main.c b/Examples/MAX32672/ADC/main.c index 1917667df21..a0250cd54c9 100644 --- a/Examples/MAX32672/ADC/main.c +++ b/Examples/MAX32672/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/AES/Makefile b/Examples/MAX32672/AES/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/AES/Makefile +++ b/Examples/MAX32672/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/AES/main.c b/Examples/MAX32672/AES/main.c index bb3f4f2f7d7..170375d28af 100644 --- a/Examples/MAX32672/AES/main.c +++ b/Examples/MAX32672/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_bayes_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_class_marks_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_convolution_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32672/ARM-DSP/arm_dotproduct_example_f32/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_fft_bin_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_fir_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_graphic_equalizer_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_linear_interp_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_matrix_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_signal_converge_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_sin_cos_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_svm_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32672/ARM-DSP/arm_variance_example/Makefile index 03db96c7de3..81078213985 100644 --- a/Examples/MAX32672/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32672/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/CRC/Makefile b/Examples/MAX32672/CRC/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/CRC/Makefile +++ b/Examples/MAX32672/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/CRC/main.c b/Examples/MAX32672/CRC/main.c index 466f6e41542..457d578b197 100644 --- a/Examples/MAX32672/CRC/main.c +++ b/Examples/MAX32672/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/CTB_AES/Makefile b/Examples/MAX32672/CTB_AES/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/CTB_AES/Makefile +++ b/Examples/MAX32672/CTB_AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/CTB_AES/main.c b/Examples/MAX32672/CTB_AES/main.c index 50e1a2f7221..2b4b0d8d06c 100644 --- a/Examples/MAX32672/CTB_AES/main.c +++ b/Examples/MAX32672/CTB_AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/Comparator/Makefile b/Examples/MAX32672/Comparator/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Comparator/Makefile +++ b/Examples/MAX32672/Comparator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Comparator/main.c b/Examples/MAX32672/Comparator/main.c index 82de960c10e..2e415c3c24c 100644 --- a/Examples/MAX32672/Comparator/main.c +++ b/Examples/MAX32672/Comparator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/Coremark/Makefile b/Examples/MAX32672/Coremark/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Coremark/Makefile +++ b/Examples/MAX32672/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/DMA/Makefile b/Examples/MAX32672/DMA/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/DMA/Makefile +++ b/Examples/MAX32672/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/DMA/main.c b/Examples/MAX32672/DMA/main.c index b1ee4c7f963..e7506596435 100644 --- a/Examples/MAX32672/DMA/main.c +++ b/Examples/MAX32672/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/Demo/Makefile b/Examples/MAX32672/Demo/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Demo/Makefile +++ b/Examples/MAX32672/Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Demo/main.c b/Examples/MAX32672/Demo/main.c index 7bb84ad490d..5a4d8c72b07 100644 --- a/Examples/MAX32672/Demo/main.c +++ b/Examples/MAX32672/Demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/Demo/resources/bitmap.h b/Examples/MAX32672/Demo/resources/bitmap.h index 59eaab21cfd..5c3784c70dc 100644 --- a/Examples/MAX32672/Demo/resources/bitmap.h +++ b/Examples/MAX32672/Demo/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_DEMO_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32672/Demo/resources/tft_demo/bmp/bmp2c.py b/Examples/MAX32672/Demo/resources/tft_demo/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX32672/Demo/resources/tft_demo/bmp/bmp2c.py +++ b/Examples/MAX32672/Demo/resources/tft_demo/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX32672/Demo/resources/tft_demo/bmp/image_rgb565.c b/Examples/MAX32672/Demo/resources/tft_demo/bmp/image_rgb565.c index 250d80a0e26..074cceedf32 100644 --- a/Examples/MAX32672/Demo/resources/tft_demo/bmp/image_rgb565.c +++ b/Examples/MAX32672/Demo/resources/tft_demo/bmp/image_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char image_rgb565[4036] = { diff --git a/Examples/MAX32672/Demo/resources/tft_demo/bmp/template.txt b/Examples/MAX32672/Demo/resources/tft_demo/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX32672/Demo/resources/tft_demo/bmp/template.txt +++ b/Examples/MAX32672/Demo/resources/tft_demo/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX32672/Demo/resources/tft_demo/logo_rgb565.c b/Examples/MAX32672/Demo/resources/tft_demo/logo_rgb565.c index 8aeb67ba8fd..c688d7d8a9e 100644 --- a/Examples/MAX32672/Demo/resources/tft_demo/logo_rgb565.c +++ b/Examples/MAX32672/Demo/resources/tft_demo/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[32772] = { diff --git a/Examples/MAX32672/Display/Makefile b/Examples/MAX32672/Display/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Display/Makefile +++ b/Examples/MAX32672/Display/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Display/lv_conf.h b/Examples/MAX32672/Display/lv_conf.h index c58af1ac2cd..9cf5e6a4b99 100644 --- a/Examples/MAX32672/Display/lv_conf.h +++ b/Examples/MAX32672/Display/lv_conf.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** @@ -45,10 +63,10 @@ */ /* clang-format off */ -#if 1 /*Set it to "1" to enable content*/ +#ifndef EXAMPLES_MAX32672_DISPLAY_LV_CONF_H_ +#define EXAMPLES_MAX32672_DISPLAY_LV_CONF_H_ -#ifndef LV_CONF_H -#define LV_CONF_H +#if 1 /*Set it to "1" to enable content*/ #include @@ -90,7 +108,7 @@ #if LV_MEM_ADR == 0 #undef LV_MEM_POOL_INCLUDE #undef LV_MEM_POOL_ALLOC - #endif +#endif #else /*LV_MEM_CUSTOM*/ #define LV_MEM_CUSTOM_INCLUDE /*Header for the dynamic memory function*/ @@ -240,7 +258,7 @@ /*Use SDL renderer API*/ #define LV_USE_GPU_SDL 0 #if LV_USE_GPU_SDL - #define LV_GPU_SDL_INCLUDE_PATH + #define LV_GPU_SDL_INCLUDE_PATH < SDL2/SDL.h> /*Texture cache size, 8MB by default*/ #define LV_GPU_SDL_LRU_SIZE (1024 * 1024 * 8) /*Custom blend mode for mask drawing, disable if you need to link with older SDL2 lib*/ @@ -294,7 +312,7 @@ /*Add a custom handler when assert happens e.g. to restart the MCU*/ #define LV_ASSERT_HANDLER_INCLUDE -#define LV_ASSERT_HANDLER while(1); /*Halt by default*/ +#define LV_ASSERT_HANDLER while (1); /*Halt by default*/ /*------------- * Others @@ -370,7 +388,7 @@ /*Prefix variables that are used in GPU accelerated operations, often these need to be placed in RAM sections that are DMA accessible*/ #define LV_ATTRIBUTE_DMA -/*Export integer constant to binding. This macro is used with constants in the form of LV_ that +/*Export integer constant to binding. This macro is used with constants in the form of LV_ < CONST> that *should also appear on LVGL binding API such as Micropython.*/ #define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/ @@ -487,11 +505,11 @@ *In these languages characters should be replaced with an other form based on their position in the text*/ #define LV_USE_ARABIC_PERSIAN_CHARS 0 -/*================== +/*================ * WIDGET USAGE *================*/ -/*Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html*/ +// Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html #define LV_USE_ARC 1 @@ -549,9 +567,9 @@ #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"} #else #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"} - #endif +#endif - #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} + #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} #define LV_USE_CALENDAR_HEADER_ARROW 1 #define LV_USE_CALENDAR_HEADER_DROPDOWN 1 #endif /*LV_USE_CALENDAR*/ @@ -691,7 +709,7 @@ /* (0:use system defaults) */ #define LV_FREETYPE_CACHE_FT_FACES 0 #define LV_FREETYPE_CACHE_FT_SIZES 0 - #endif +#endif #endif /*Rlottie library*/ @@ -742,7 +760,7 @@ #define LV_IME_PINYIN_USE_K9_MODE 1 #if LV_IME_PINYIN_USE_K9_MODE == 1 #define LV_IME_PINYIN_K9_CAND_TEXT_NUM 3 - #endif // LV_IME_PINYIN_USE_K9_MODE +#endif // LV_IME_PINYIN_USE_K9_MODE #endif /*================== @@ -787,6 +805,6 @@ /*--END OF LV_CONF_H--*/ -#endif /*LV_CONF_H*/ +#endif // End of "Content enable" -#endif /*End of "Content enable"*/ +#endif // EXAMPLES_MAX32672_DISPLAY_LV_CONF_H_ diff --git a/Examples/MAX32672/Display/main.c b/Examples/MAX32672/Display/main.c index 068e6e65abf..be2a2767433 100644 --- a/Examples/MAX32672/Display/main.c +++ b/Examples/MAX32672/Display/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/EEPROM_Emulator/Makefile b/Examples/MAX32672/EEPROM_Emulator/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/EEPROM_Emulator/Makefile +++ b/Examples/MAX32672/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/EEPROM_Emulator/include/cache.h b/Examples/MAX32672/EEPROM_Emulator/include/cache.h index 9263b1016d4..5e0c5843922 100644 --- a/Examples/MAX32672/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32672/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32672_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32672_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32672_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32672/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32672/EEPROM_Emulator/include/eeprom.h index e4956f57a15..3e5cf0d463b 100644 --- a/Examples/MAX32672/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32672/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32672_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32672_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32672_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32672/EEPROM_Emulator/main.c b/Examples/MAX32672/EEPROM_Emulator/main.c index 85059bdb41b..27c737ac9f5 100644 --- a/Examples/MAX32672/EEPROM_Emulator/main.c +++ b/Examples/MAX32672/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/EEPROM_Emulator/src/cache.c b/Examples/MAX32672/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32672/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32672/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32672/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32672/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX32672/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32672/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32672/Flash/Makefile b/Examples/MAX32672/Flash/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Flash/Makefile +++ b/Examples/MAX32672/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Flash/main.c b/Examples/MAX32672/Flash/main.c index 973f2800673..ba6936ceeaf 100644 --- a/Examples/MAX32672/Flash/main.c +++ b/Examples/MAX32672/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32672/Flash_CLI/FreeRTOSConfig.h index fb09278a03b..693d4c1d981 100644 --- a/Examples/MAX32672/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32672/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32672/Flash_CLI/Makefile b/Examples/MAX32672/Flash_CLI/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Flash_CLI/Makefile +++ b/Examples/MAX32672/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Flash_CLI/definitions.h b/Examples/MAX32672/Flash_CLI/definitions.h index d941b0c2a7f..b8e84566b6d 100644 --- a/Examples/MAX32672/Flash_CLI/definitions.h +++ b/Examples/MAX32672/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32672/Flash_CLI/main.c b/Examples/MAX32672/Flash_CLI/main.c index e256c36f897..6f621ce384c 100644 --- a/Examples/MAX32672/Flash_CLI/main.c +++ b/Examples/MAX32672/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32672/FreeRTOSDemo/FreeRTOSConfig.h index 119a334ba47..4862d002256 100644 --- a/Examples/MAX32672/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32672/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32672/FreeRTOSDemo/Makefile b/Examples/MAX32672/FreeRTOSDemo/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/FreeRTOSDemo/Makefile +++ b/Examples/MAX32672/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32672/FreeRTOSDemo/freertos_tickless.c index 077cb86d6f6..dde8d87068e 100644 --- a/Examples/MAX32672/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32672/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32672/FreeRTOSDemo/main.c b/Examples/MAX32672/FreeRTOSDemo/main.c index 29d64b0bce8..b69888742a2 100644 --- a/Examples/MAX32672/FreeRTOSDemo/main.c +++ b/Examples/MAX32672/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/GPIO/Makefile b/Examples/MAX32672/GPIO/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/GPIO/Makefile +++ b/Examples/MAX32672/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/GPIO/main.c b/Examples/MAX32672/GPIO/main.c index 08babec88ed..fb5370a467c 100644 --- a/Examples/MAX32672/GPIO/main.c +++ b/Examples/MAX32672/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/Hello_World/Makefile b/Examples/MAX32672/Hello_World/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Hello_World/Makefile +++ b/Examples/MAX32672/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Hello_World/main.c b/Examples/MAX32672/Hello_World/main.c index 1a0fdc9f1eb..2b7549cf995 100644 --- a/Examples/MAX32672/Hello_World/main.c +++ b/Examples/MAX32672/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/Hello_World_Cpp/Makefile b/Examples/MAX32672/Hello_World_Cpp/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Hello_World_Cpp/Makefile +++ b/Examples/MAX32672/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Hello_World_Cpp/main.cpp b/Examples/MAX32672/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32672/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32672/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/I2C/Makefile b/Examples/MAX32672/I2C/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/I2C/Makefile +++ b/Examples/MAX32672/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/I2C/main.c b/Examples/MAX32672/I2C/main.c index bd756309957..696ff3aa907 100644 --- a/Examples/MAX32672/I2C/main.c +++ b/Examples/MAX32672/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32672/I2C_MNGR/FreeRTOSConfig.h index 6500ebf6d05..9316d679bdb 100644 --- a/Examples/MAX32672/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32672/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32672/I2C_MNGR/Makefile b/Examples/MAX32672/I2C_MNGR/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/I2C_MNGR/Makefile +++ b/Examples/MAX32672/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.c index 84e6bd1d361..c4ad58f485d 100644 --- a/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.h index c55c96cc90f..babebb695f5 100644 --- a/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32672/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32672/I2C_MNGR/main.c b/Examples/MAX32672/I2C_MNGR/main.c index 787ebe2e5a4..b29be1309ca 100644 --- a/Examples/MAX32672/I2C_MNGR/main.c +++ b/Examples/MAX32672/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/I2C_SCAN/Makefile b/Examples/MAX32672/I2C_SCAN/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/I2C_SCAN/Makefile +++ b/Examples/MAX32672/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/I2C_SCAN/main.c b/Examples/MAX32672/I2C_SCAN/main.c index 27677964021..ae2222ba57e 100644 --- a/Examples/MAX32672/I2C_SCAN/main.c +++ b/Examples/MAX32672/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must set the pull-up jumpers on the line - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must set the pull-up jumpers on the line + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32672/I2C_Sensor/Makefile b/Examples/MAX32672/I2C_Sensor/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/I2C_Sensor/Makefile +++ b/Examples/MAX32672/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/I2C_Sensor/main.c b/Examples/MAX32672/I2C_Sensor/main.c index 718add32f3d..f54efb12a97 100644 --- a/Examples/MAX32672/I2C_Sensor/main.c +++ b/Examples/MAX32672/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/I2S/Makefile b/Examples/MAX32672/I2S/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/I2S/Makefile +++ b/Examples/MAX32672/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/I2S/main.c b/Examples/MAX32672/I2S/main.c index 5811524b3ee..9dd5ed2eecf 100644 --- a/Examples/MAX32672/I2S/main.c +++ b/Examples/MAX32672/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/ICC/Makefile b/Examples/MAX32672/ICC/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/ICC/Makefile +++ b/Examples/MAX32672/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/ICC/main.c b/Examples/MAX32672/ICC/main.c index 679697ac527..54b88a819dd 100644 --- a/Examples/MAX32672/ICC/main.c +++ b/Examples/MAX32672/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/LP/Makefile b/Examples/MAX32672/LP/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/LP/Makefile +++ b/Examples/MAX32672/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/LP/lp-nonsecure.ld b/Examples/MAX32672/LP/lp-nonsecure.ld index f811f29c904..e57f96b9578 100644 --- a/Examples/MAX32672/LP/lp-nonsecure.ld +++ b/Examples/MAX32672/LP/lp-nonsecure.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32672/LP/lp-sla.ld b/Examples/MAX32672/LP/lp-sla.ld index 35f295c41b6..8a94b89be68 100644 --- a/Examples/MAX32672/LP/lp-sla.ld +++ b/Examples/MAX32672/LP/lp-sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32672/LP/main.c b/Examples/MAX32672/LP/main.c index d22c950afe0..7329a675ced 100644 --- a/Examples/MAX32672/LP/main.c +++ b/Examples/MAX32672/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32672/Library_Generate/Makefile b/Examples/MAX32672/Library_Generate/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Library_Generate/Makefile +++ b/Examples/MAX32672/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Library_Generate/gpiolib.c b/Examples/MAX32672/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32672/Library_Generate/gpiolib.c +++ b/Examples/MAX32672/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32672/Library_Generate/gpiolib.h b/Examples/MAX32672/Library_Generate/gpiolib.h index 36e60aea08a..6e38ff6378b 100644 --- a/Examples/MAX32672/Library_Generate/gpiolib.h +++ b/Examples/MAX32672/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32672/Library_Use/Makefile b/Examples/MAX32672/Library_Use/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Library_Use/Makefile +++ b/Examples/MAX32672/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Library_Use/lib/include/gpiolib.h b/Examples/MAX32672/Library_Use/lib/include/gpiolib.h index 4e0f30b44c0..2fe54fc7394 100644 --- a/Examples/MAX32672/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32672/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32672/Library_Use/main.c b/Examples/MAX32672/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32672/Library_Use/main.c +++ b/Examples/MAX32672/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32672/OLED_Demo/Makefile b/Examples/MAX32672/OLED_Demo/Makefile index 2639e0003ce..78dd1dbadf4 100644 --- a/Examples/MAX32672/OLED_Demo/Makefile +++ b/Examples/MAX32672/OLED_Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/OLED_Demo/main.c b/Examples/MAX32672/OLED_Demo/main.c index 879c0e5bcb8..df4581cba73 100644 --- a/Examples/MAX32672/OLED_Demo/main.c +++ b/Examples/MAX32672/OLED_Demo/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/OLED_Demo/resources/adi_logo_alpha1.c b/Examples/MAX32672/OLED_Demo/resources/adi_logo_alpha1.c index 2acc6aaac9b..5c7417020aa 100644 --- a/Examples/MAX32672/OLED_Demo/resources/adi_logo_alpha1.c +++ b/Examples/MAX32672/OLED_Demo/resources/adi_logo_alpha1.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #if defined(LV_LVGL_H_INCLUDE_SIMPLE) diff --git a/Examples/MAX32672/QDEC/Makefile b/Examples/MAX32672/QDEC/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/QDEC/Makefile +++ b/Examples/MAX32672/QDEC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/QDEC/main.c b/Examples/MAX32672/QDEC/main.c index 979095206c8..ceb58647018 100644 --- a/Examples/MAX32672/QDEC/main.c +++ b/Examples/MAX32672/QDEC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/RTC/Makefile b/Examples/MAX32672/RTC/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/RTC/Makefile +++ b/Examples/MAX32672/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/RTC/main.c b/Examples/MAX32672/RTC/main.c index c2f31b908cc..3aecf4db888 100644 --- a/Examples/MAX32672/RTC/main.c +++ b/Examples/MAX32672/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/RTC_Backup/Makefile b/Examples/MAX32672/RTC_Backup/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/RTC_Backup/Makefile +++ b/Examples/MAX32672/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/RTC_Backup/main.c b/Examples/MAX32672/RTC_Backup/main.c index ffd4ae7af3f..238ab70af0d 100644 --- a/Examples/MAX32672/RTC_Backup/main.c +++ b/Examples/MAX32672/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/SCPA_OTP_Dump/Makefile b/Examples/MAX32672/SCPA_OTP_Dump/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/SCPA_OTP_Dump/Makefile +++ b/Examples/MAX32672/SCPA_OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/SCPA_OTP_Dump/main.c b/Examples/MAX32672/SCPA_OTP_Dump/main.c index 1161d658512..c2ec856f325 100644 --- a/Examples/MAX32672/SCPA_OTP_Dump/main.c +++ b/Examples/MAX32672/SCPA_OTP_Dump/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/SCPA_OTP_Dump/utils.c b/Examples/MAX32672/SCPA_OTP_Dump/utils.c index 3a84ee68f25..ff7ccf8019a 100644 --- a/Examples/MAX32672/SCPA_OTP_Dump/utils.c +++ b/Examples/MAX32672/SCPA_OTP_Dump/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32672/SCPA_OTP_Dump/utils.h b/Examples/MAX32672/SCPA_OTP_Dump/utils.h index 932e0e0fa1e..90106f2a2e5 100644 --- a/Examples/MAX32672/SCPA_OTP_Dump/utils.h +++ b/Examples/MAX32672/SCPA_OTP_Dump/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_SCPA_OTP_DUMP_UTILS_H_ diff --git a/Examples/MAX32672/SPI/Makefile b/Examples/MAX32672/SPI/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/SPI/Makefile +++ b/Examples/MAX32672/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/SPI/main.c b/Examples/MAX32672/SPI/main.c index e393e697c2d..2e3ff17cf25 100644 --- a/Examples/MAX32672/SPI/main.c +++ b/Examples/MAX32672/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/SPI_MasterSlave/Makefile b/Examples/MAX32672/SPI_MasterSlave/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/SPI_MasterSlave/Makefile +++ b/Examples/MAX32672/SPI_MasterSlave/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/SPI_MasterSlave/main.c b/Examples/MAX32672/SPI_MasterSlave/main.c index bdf40b9fb94..e39ba232e70 100644 --- a/Examples/MAX32672/SPI_MasterSlave/main.c +++ b/Examples/MAX32672/SPI_MasterSlave/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32672/TMR/Makefile b/Examples/MAX32672/TMR/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/TMR/Makefile +++ b/Examples/MAX32672/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/TMR/main.c b/Examples/MAX32672/TMR/main.c index 06477823d45..497817e6415 100644 --- a/Examples/MAX32672/TMR/main.c +++ b/Examples/MAX32672/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/TRNG/Makefile b/Examples/MAX32672/TRNG/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/TRNG/Makefile +++ b/Examples/MAX32672/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/TRNG/main.c b/Examples/MAX32672/TRNG/main.c index 1621fdca404..31c46b6ebff 100644 --- a/Examples/MAX32672/TRNG/main.c +++ b/Examples/MAX32672/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32672/Temp_Monitor/Makefile b/Examples/MAX32672/Temp_Monitor/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Temp_Monitor/Makefile +++ b/Examples/MAX32672/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Temp_Monitor/main.c b/Examples/MAX32672/Temp_Monitor/main.c index 7c74c616607..9d1652c777f 100644 --- a/Examples/MAX32672/Temp_Monitor/main.c +++ b/Examples/MAX32672/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/Temp_Monitor/temp_monitor.c b/Examples/MAX32672/Temp_Monitor/temp_monitor.c index 28abc158e6a..f12cff3721f 100644 --- a/Examples/MAX32672/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32672/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32672/Temp_Monitor/temp_monitor.h b/Examples/MAX32672/Temp_Monitor/temp_monitor.h index 5eddc8f60a5..e1d719dc8a9 100644 --- a/Examples/MAX32672/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32672/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32672/UART/Makefile b/Examples/MAX32672/UART/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/UART/Makefile +++ b/Examples/MAX32672/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/UART/main.c b/Examples/MAX32672/UART/main.c index 4a1da080be2..0801a00af58 100644 --- a/Examples/MAX32672/UART/main.c +++ b/Examples/MAX32672/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/UCL/Makefile b/Examples/MAX32672/UCL/Makefile index 3f9b9092566..6dab4cd9836 100644 --- a/Examples/MAX32672/UCL/Makefile +++ b/Examples/MAX32672/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Watchdog/Makefile b/Examples/MAX32672/Watchdog/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/Watchdog/Makefile +++ b/Examples/MAX32672/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/Watchdog/main.c b/Examples/MAX32672/Watchdog/main.c index ef792500f29..b4e33d7093b 100644 --- a/Examples/MAX32672/Watchdog/main.c +++ b/Examples/MAX32672/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32672/WearLeveling/Makefile b/Examples/MAX32672/WearLeveling/Makefile index bc85587f4b0..4211a919230 100644 --- a/Examples/MAX32672/WearLeveling/Makefile +++ b/Examples/MAX32672/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32672/WearLeveling/include/cli.h b/Examples/MAX32672/WearLeveling/include/cli.h index e0f9c920f17..9e2e4637063 100644 --- a/Examples/MAX32672/WearLeveling/include/cli.h +++ b/Examples/MAX32672/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32672/WearLeveling/include/file.h b/Examples/MAX32672/WearLeveling/include/file.h index 4236c2a5d38..2f9a7507ec3 100644 --- a/Examples/MAX32672/WearLeveling/include/file.h +++ b/Examples/MAX32672/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32672/WearLeveling/include/flash.h b/Examples/MAX32672/WearLeveling/include/flash.h index 80dfa750310..a3e3a4dd552 100644 --- a/Examples/MAX32672/WearLeveling/include/flash.h +++ b/Examples/MAX32672/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/WearLeveling/include/main.h b/Examples/MAX32672/WearLeveling/include/main.h index 7355fb963fc..71e67866501 100644 --- a/Examples/MAX32672/WearLeveling/include/main.h +++ b/Examples/MAX32672/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32672_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32672/WearLeveling/main.c b/Examples/MAX32672/WearLeveling/main.c index 805d5380e74..c9b90d5bfa5 100644 --- a/Examples/MAX32672/WearLeveling/main.c +++ b/Examples/MAX32672/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32672/WearLeveling/src/cli.c b/Examples/MAX32672/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32672/WearLeveling/src/cli.c +++ b/Examples/MAX32672/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32672/WearLeveling/src/file.c b/Examples/MAX32672/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32672/WearLeveling/src/file.c +++ b/Examples/MAX32672/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32672/WearLeveling/src/flash.c b/Examples/MAX32672/WearLeveling/src/flash.c index 582eedc34fc..33056ec4696 100644 --- a/Examples/MAX32672/WearLeveling/src/flash.c +++ b/Examples/MAX32672/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/ADC/Makefile b/Examples/MAX32675/ADC/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/ADC/Makefile +++ b/Examples/MAX32675/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ADC/main.c b/Examples/MAX32675/ADC/main.c index 91c27f1075a..c4a55f5023b 100644 --- a/Examples/MAX32675/ADC/main.c +++ b/Examples/MAX32675/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/AES/Makefile b/Examples/MAX32675/AES/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/AES/Makefile +++ b/Examples/MAX32675/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/AES/main.c b/Examples/MAX32675/AES/main.c index 906d4139da7..66117324295 100644 --- a/Examples/MAX32675/AES/main.c +++ b/Examples/MAX32675/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/AFE_DAC/Makefile b/Examples/MAX32675/AFE_DAC/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/AFE_DAC/Makefile +++ b/Examples/MAX32675/AFE_DAC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/AFE_DAC/main.c b/Examples/MAX32675/AFE_DAC/main.c index b82ee8540e5..51e67f986fd 100644 --- a/Examples/MAX32675/AFE_DAC/main.c +++ b/Examples/MAX32675/AFE_DAC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_bayes_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_class_marks_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_convolution_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32675/ARM-DSP/arm_dotproduct_example_f32/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_fft_bin_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_fir_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_graphic_equalizer_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_linear_interp_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_matrix_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_signal_converge_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_sin_cos_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_svm_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32675/ARM-DSP/arm_variance_example/Makefile index fa678bb4394..abd54dad7c4 100644 --- a/Examples/MAX32675/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32675/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/CRC/Makefile b/Examples/MAX32675/CRC/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/CRC/Makefile +++ b/Examples/MAX32675/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/CRC/main.c b/Examples/MAX32675/CRC/main.c index 884b8d5a9f1..b60715d902d 100644 --- a/Examples/MAX32675/CRC/main.c +++ b/Examples/MAX32675/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/Coremark/Makefile b/Examples/MAX32675/Coremark/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Coremark/Makefile +++ b/Examples/MAX32675/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/DMA/Makefile b/Examples/MAX32675/DMA/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/DMA/Makefile +++ b/Examples/MAX32675/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/DMA/main.c b/Examples/MAX32675/DMA/main.c index 1462358b9fa..2408d51db71 100644 --- a/Examples/MAX32675/DMA/main.c +++ b/Examples/MAX32675/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/EEPROM_Emulator/Makefile b/Examples/MAX32675/EEPROM_Emulator/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/EEPROM_Emulator/Makefile +++ b/Examples/MAX32675/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/EEPROM_Emulator/include/cache.h b/Examples/MAX32675/EEPROM_Emulator/include/cache.h index 9263b1016d4..08e756de465 100644 --- a/Examples/MAX32675/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32675/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32675_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32675_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32675_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32675/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32675/EEPROM_Emulator/include/eeprom.h index e4956f57a15..22fb3d4f076 100644 --- a/Examples/MAX32675/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32675/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32675_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32675_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32675_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32675/EEPROM_Emulator/main.c b/Examples/MAX32675/EEPROM_Emulator/main.c index 3e4006d01d0..d997f25fa08 100644 --- a/Examples/MAX32675/EEPROM_Emulator/main.c +++ b/Examples/MAX32675/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/EEPROM_Emulator/src/cache.c b/Examples/MAX32675/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32675/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32675/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32675/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32675/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX32675/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32675/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32675/Flash/Makefile b/Examples/MAX32675/Flash/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Flash/Makefile +++ b/Examples/MAX32675/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/Flash/main.c b/Examples/MAX32675/Flash/main.c index 985a299d60c..3c7e4f53800 100644 --- a/Examples/MAX32675/Flash/main.c +++ b/Examples/MAX32675/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32675/Flash_CLI/FreeRTOSConfig.h index 83640837de9..53034358071 100644 --- a/Examples/MAX32675/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32675/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32675/Flash_CLI/Makefile b/Examples/MAX32675/Flash_CLI/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Flash_CLI/Makefile +++ b/Examples/MAX32675/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/Flash_CLI/definitions.h b/Examples/MAX32675/Flash_CLI/definitions.h index 7cd98aa4162..0291b9105bf 100644 --- a/Examples/MAX32675/Flash_CLI/definitions.h +++ b/Examples/MAX32675/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32675/Flash_CLI/main.c b/Examples/MAX32675/Flash_CLI/main.c index a70489bce51..881807fe98f 100644 --- a/Examples/MAX32675/Flash_CLI/main.c +++ b/Examples/MAX32675/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32675/FreeRTOSDemo/FreeRTOSConfig.h index ff933db122e..ce3a80ac78c 100644 --- a/Examples/MAX32675/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32675/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32675/FreeRTOSDemo/Makefile b/Examples/MAX32675/FreeRTOSDemo/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/FreeRTOSDemo/Makefile +++ b/Examples/MAX32675/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32675/FreeRTOSDemo/freertos_tickless.c index 077cb86d6f6..dde8d87068e 100644 --- a/Examples/MAX32675/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32675/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32675/FreeRTOSDemo/main.c b/Examples/MAX32675/FreeRTOSDemo/main.c index 89b470f5ee5..8a5de669f41 100644 --- a/Examples/MAX32675/FreeRTOSDemo/main.c +++ b/Examples/MAX32675/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/GPIO/Makefile b/Examples/MAX32675/GPIO/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/GPIO/Makefile +++ b/Examples/MAX32675/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/GPIO/main.c b/Examples/MAX32675/GPIO/main.c index 03da5f92cf5..b71fbce0d9c 100644 --- a/Examples/MAX32675/GPIO/main.c +++ b/Examples/MAX32675/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32675/HART_UART/Makefile b/Examples/MAX32675/HART_UART/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/HART_UART/Makefile +++ b/Examples/MAX32675/HART_UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/HART_UART/main.c b/Examples/MAX32675/HART_UART/main.c index 9982d1f174b..8535f9bc9ec 100644 --- a/Examples/MAX32675/HART_UART/main.c +++ b/Examples/MAX32675/HART_UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/Hello_World/Makefile b/Examples/MAX32675/Hello_World/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Hello_World/Makefile +++ b/Examples/MAX32675/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/Hello_World/main.c b/Examples/MAX32675/Hello_World/main.c index 279f50ab504..53eda3decce 100644 --- a/Examples/MAX32675/Hello_World/main.c +++ b/Examples/MAX32675/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/Hello_World_Cpp/Makefile b/Examples/MAX32675/Hello_World_Cpp/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Hello_World_Cpp/Makefile +++ b/Examples/MAX32675/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/Hello_World_Cpp/main.cpp b/Examples/MAX32675/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32675/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32675/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/I2C/Makefile b/Examples/MAX32675/I2C/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/I2C/Makefile +++ b/Examples/MAX32675/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/I2C/main.c b/Examples/MAX32675/I2C/main.c index 0d84ece7ecb..f9b2336f92b 100644 --- a/Examples/MAX32675/I2C/main.c +++ b/Examples/MAX32675/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32675/I2C_MNGR/FreeRTOSConfig.h index 9f38f25f95d..7f0f7d04a71 100644 --- a/Examples/MAX32675/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32675/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32675/I2C_MNGR/Makefile b/Examples/MAX32675/I2C_MNGR/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/I2C_MNGR/Makefile +++ b/Examples/MAX32675/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.c index 84e6bd1d361..c4ad58f485d 100644 --- a/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.h index 1496ef1b557..ebad72c7eeb 100644 --- a/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32675/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32675/I2C_MNGR/main.c b/Examples/MAX32675/I2C_MNGR/main.c index 3d0b355d713..624db858881 100644 --- a/Examples/MAX32675/I2C_MNGR/main.c +++ b/Examples/MAX32675/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/I2C_SCAN/Makefile b/Examples/MAX32675/I2C_SCAN/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/I2C_SCAN/Makefile +++ b/Examples/MAX32675/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/I2C_SCAN/main.c b/Examples/MAX32675/I2C_SCAN/main.c index c5e9cec6a13..ee367136b1d 100644 --- a/Examples/MAX32675/I2C_SCAN/main.c +++ b/Examples/MAX32675/I2C_SCAN/main.c @@ -1,12 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. Please be sure pull-up resistor exist on the I2C bus. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,8 +31,31 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. Please be sure pull-up resistor exist on the I2C bus. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32675/I2C_Sensor/Makefile b/Examples/MAX32675/I2C_Sensor/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/I2C_Sensor/Makefile +++ b/Examples/MAX32675/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/I2C_Sensor/main.c b/Examples/MAX32675/I2C_Sensor/main.c index 054dd52105a..b42b676bef6 100644 --- a/Examples/MAX32675/I2C_Sensor/main.c +++ b/Examples/MAX32675/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32675/I2S/Makefile b/Examples/MAX32675/I2S/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/I2S/Makefile +++ b/Examples/MAX32675/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/I2S/main.c b/Examples/MAX32675/I2S/main.c index 89b42b01354..2533e0aad8f 100644 --- a/Examples/MAX32675/I2S/main.c +++ b/Examples/MAX32675/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32675/ICC/Makefile b/Examples/MAX32675/ICC/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/ICC/Makefile +++ b/Examples/MAX32675/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/ICC/main.c b/Examples/MAX32675/ICC/main.c index d4809db1e08..d8a9f0e1497 100644 --- a/Examples/MAX32675/ICC/main.c +++ b/Examples/MAX32675/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32675/LP/Makefile b/Examples/MAX32675/LP/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/LP/Makefile +++ b/Examples/MAX32675/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/LP/lp.ld b/Examples/MAX32675/LP/lp.ld index 012fb72f1be..a6226da94c1 100644 --- a/Examples/MAX32675/LP/lp.ld +++ b/Examples/MAX32675/LP/lp.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32675/LP/main.c b/Examples/MAX32675/LP/main.c index a4815bb3d65..e3754eb2910 100644 --- a/Examples/MAX32675/LP/main.c +++ b/Examples/MAX32675/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32675/Library_Generate/Makefile b/Examples/MAX32675/Library_Generate/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Library_Generate/Makefile +++ b/Examples/MAX32675/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/Library_Generate/gpiolib.c b/Examples/MAX32675/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32675/Library_Generate/gpiolib.c +++ b/Examples/MAX32675/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32675/Library_Generate/gpiolib.h b/Examples/MAX32675/Library_Generate/gpiolib.h index e63403cbc22..3471d796b2c 100644 --- a/Examples/MAX32675/Library_Generate/gpiolib.h +++ b/Examples/MAX32675/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32675/Library_Use/Makefile b/Examples/MAX32675/Library_Use/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Library_Use/Makefile +++ b/Examples/MAX32675/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/Library_Use/lib/include/gpiolib.h b/Examples/MAX32675/Library_Use/lib/include/gpiolib.h index 398a006f608..23621f5870f 100644 --- a/Examples/MAX32675/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32675/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32675/Library_Use/main.c b/Examples/MAX32675/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32675/Library_Use/main.c +++ b/Examples/MAX32675/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32675/SPI/Makefile b/Examples/MAX32675/SPI/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/SPI/Makefile +++ b/Examples/MAX32675/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/SPI/main.c b/Examples/MAX32675/SPI/main.c index f1636a5633a..901fdcc8ff5 100644 --- a/Examples/MAX32675/SPI/main.c +++ b/Examples/MAX32675/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32675/TMR/Makefile b/Examples/MAX32675/TMR/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/TMR/Makefile +++ b/Examples/MAX32675/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/TMR/main.c b/Examples/MAX32675/TMR/main.c index 62c23b903fa..44b619deca0 100644 --- a/Examples/MAX32675/TMR/main.c +++ b/Examples/MAX32675/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/TRNG/Makefile b/Examples/MAX32675/TRNG/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/TRNG/Makefile +++ b/Examples/MAX32675/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/TRNG/main.c b/Examples/MAX32675/TRNG/main.c index 88faf8aeb49..2bb59f0050d 100644 --- a/Examples/MAX32675/TRNG/main.c +++ b/Examples/MAX32675/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32675/UART/Makefile b/Examples/MAX32675/UART/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/UART/Makefile +++ b/Examples/MAX32675/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/UART/main.c b/Examples/MAX32675/UART/main.c index f8efb494b74..3be9cfa70b7 100644 --- a/Examples/MAX32675/UART/main.c +++ b/Examples/MAX32675/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/Watchdog/Makefile b/Examples/MAX32675/Watchdog/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/Watchdog/Makefile +++ b/Examples/MAX32675/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/Watchdog/main.c b/Examples/MAX32675/Watchdog/main.c index e7c3cfae54d..1883559db47 100644 --- a/Examples/MAX32675/Watchdog/main.c +++ b/Examples/MAX32675/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32675/WearLeveling/Makefile b/Examples/MAX32675/WearLeveling/Makefile index 31998c037ea..70a74ddf526 100644 --- a/Examples/MAX32675/WearLeveling/Makefile +++ b/Examples/MAX32675/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32675/WearLeveling/include/cli.h b/Examples/MAX32675/WearLeveling/include/cli.h index 9e1e5c8c52e..9b82c82a46f 100644 --- a/Examples/MAX32675/WearLeveling/include/cli.h +++ b/Examples/MAX32675/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32675/WearLeveling/include/file.h b/Examples/MAX32675/WearLeveling/include/file.h index 6218ac28aed..68c2ee61c17 100644 --- a/Examples/MAX32675/WearLeveling/include/file.h +++ b/Examples/MAX32675/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32675/WearLeveling/include/flash.h b/Examples/MAX32675/WearLeveling/include/flash.h index 70fe4906af0..6f55798e164 100644 --- a/Examples/MAX32675/WearLeveling/include/flash.h +++ b/Examples/MAX32675/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/WearLeveling/include/main.h b/Examples/MAX32675/WearLeveling/include/main.h index 3466596abb8..77e670c915f 100644 --- a/Examples/MAX32675/WearLeveling/include/main.h +++ b/Examples/MAX32675/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32675_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32675/WearLeveling/main.c b/Examples/MAX32675/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32675/WearLeveling/main.c +++ b/Examples/MAX32675/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32675/WearLeveling/src/cli.c b/Examples/MAX32675/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32675/WearLeveling/src/cli.c +++ b/Examples/MAX32675/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32675/WearLeveling/src/file.c b/Examples/MAX32675/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32675/WearLeveling/src/file.c +++ b/Examples/MAX32675/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32675/WearLeveling/src/flash.c b/Examples/MAX32675/WearLeveling/src/flash.c index d4fa767301a..d34aad25080 100644 --- a/Examples/MAX32675/WearLeveling/src/flash.c +++ b/Examples/MAX32675/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/ADC/Makefile b/Examples/MAX32680/ADC/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/ADC/Makefile +++ b/Examples/MAX32680/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ADC/main.c b/Examples/MAX32680/ADC/main.c index aa20d4aada6..52849c841ad 100644 --- a/Examples/MAX32680/ADC/main.c +++ b/Examples/MAX32680/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/AES/Makefile b/Examples/MAX32680/AES/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/AES/Makefile +++ b/Examples/MAX32680/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/AES/main.c b/Examples/MAX32680/AES/main.c index 9e67f5acd79..39c807d141d 100644 --- a/Examples/MAX32680/AES/main.c +++ b/Examples/MAX32680/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/AFE_ADC/Makefile b/Examples/MAX32680/AFE_ADC/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/AFE_ADC/Makefile +++ b/Examples/MAX32680/AFE_ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/AFE_ADC/main.c b/Examples/MAX32680/AFE_ADC/main.c index 53bcef63808..1d75e28f0cf 100644 --- a/Examples/MAX32680/AFE_ADC/main.c +++ b/Examples/MAX32680/AFE_ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_bayes_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_class_marks_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_convolution_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32680/ARM-DSP/arm_dotproduct_example_f32/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_fft_bin_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_fir_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_graphic_equalizer_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_linear_interp_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_matrix_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_signal_converge_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_sin_cos_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_svm_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32680/ARM-DSP/arm_variance_example/Makefile index 237e9e484b5..316e0a8830a 100644 --- a/Examples/MAX32680/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32680/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/BLE4_ctr/.vscode/flash.gdb b/Examples/MAX32680/BLE4_ctr/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32680/BLE4_ctr/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32680/BLE4_ctr/Makefile b/Examples/MAX32680/BLE4_ctr/Makefile deleted file mode 100644 index ed22e913bc6..00000000000 --- a/Examples/MAX32680/BLE4_ctr/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32680 -TARGET_UC := MAX32680 -TARGET_LC := max32680 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32680/BLE4_ctr/main.c b/Examples/MAX32680/BLE4_ctr/main.c deleted file mode 100644 index 467b98daf28..00000000000 --- a/Examples/MAX32680/BLE4_ctr/main.c +++ /dev/null @@ -1,190 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - - /* Set 4.2 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) { - eventPending = WsfTokenService(); - } -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) { - eventPending = LhciSnifferHandler(); - } -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); -#endif - - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - LlSetAdvTxPower(DEFAULT_TX_POWER); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32680/BLE_dats/.vscode/flash.gdb b/Examples/MAX32680/BLE_dats/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32680/BLE_dats/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32680/BLE_dats/Makefile b/Examples/MAX32680/BLE_dats/Makefile deleted file mode 100644 index ed22e913bc6..00000000000 --- a/Examples/MAX32680/BLE_dats/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32680 -TARGET_UC := MAX32680 -TARGET_LC := max32680 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32680/BLE_dats/dats_api.h b/Examples/MAX32680/BLE_dats/dats_api.h deleted file mode 100644 index 612f275acc4..00000000000 --- a/Examples/MAX32680/BLE_dats/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32680_BLE_DATS_DATS_API_H_ -#define EXAMPLES_MAX32680_BLE_DATS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32680_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32680/BLE_dats/dats_main.c b/Examples/MAX32680/BLE_dats/dats_main.c deleted file mode 100644 index 916af900682..00000000000 --- a/Examples/MAX32680/BLE_dats/dats_main.c +++ /dev/null @@ -1,920 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_1M 1 -#define DATS_PHY_2M 2 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 60000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'D', - 'A', - 'T', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello back"; - - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datsCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(MXC_WUT, wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - if (len < 64) { - /* print received data if not a speed test message */ - APP_TRACE_INFO0((const char *)pValue); - - /* send back some data */ - datsSendData(connId); - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datsOobCfg != NULL) { - DmSecSetOob(connId, datsOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - APP_TRACE_INFO0("DatsHandlerInit"); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32680/BLE_dats/main.c b/Examples/MAX32680/BLE_dats/main.c deleted file mode 100644 index 9e1ba2bed64..00000000000 --- a/Examples/MAX32680/BLE_dats/main.c +++ /dev/null @@ -1,266 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE Data Server for unformatted data exchange. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "dats_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDats(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT_IRQHandler(void) -{ - MXC_WUT_Handler(MXC_WUT); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> - MXC_F_TRIMSIR_RTC_X1TRIM_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); -#endif - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(MXC_WUT, wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); - - StackInitDats(); - DatsStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32680/BLE4_ctr/.cproject b/Examples/MAX32680/Bluetooth/BLE4_ctr/.cproject similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.cproject rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.cproject diff --git a/Examples/MAX32680/BLE4_ctr/.project b/Examples/MAX32680/Bluetooth/BLE4_ctr/.project similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.project rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.project diff --git a/Examples/MAX32665/RF_Test/.settings/language.settings.xml b/Examples/MAX32680/Bluetooth/BLE4_ctr/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/RF_Test/.settings/language.settings.xml rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.settings/language.settings.xml diff --git a/Examples/MAX32665/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32680/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32680/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32680/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32680/BLE4_ctr/.vscode/README.md b/Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/README.md similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.vscode/README.md rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/README.md diff --git a/Examples/MAX32665/Bootloader/.vscode/c_cpp_properties.json b/Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/Bootloader/.vscode/c_cpp_properties.json rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/TFT_Demo/.vscode/flash.gdb b/Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/TFT_Demo/.vscode/flash.gdb rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/flash.gdb diff --git a/Examples/MAX32680/BLE4_ctr/.vscode/launch.json b/Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/launch.json similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.vscode/launch.json rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/launch.json diff --git a/Examples/MAX32680/BLE4_ctr/.vscode/settings.json b/Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/settings.json similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.vscode/settings.json rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/settings.json diff --git a/Examples/MAX32680/BLE4_ctr/.vscode/tasks.json b/Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/tasks.json similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.vscode/tasks.json rename to Examples/MAX32680/Bluetooth/BLE4_ctr/.vscode/tasks.json diff --git a/Examples/MAX32680/BLE4_ctr/BLE4_ctr.launch b/Examples/MAX32680/Bluetooth/BLE4_ctr/BLE4_ctr.launch similarity index 100% rename from Examples/MAX32680/BLE4_ctr/BLE4_ctr.launch rename to Examples/MAX32680/Bluetooth/BLE4_ctr/BLE4_ctr.launch diff --git a/Examples/MAX32680/Bluetooth/BLE4_ctr/Makefile b/Examples/MAX32680/Bluetooth/BLE4_ctr/Makefile new file mode 100644 index 00000000000..ee2184d1a96 --- /dev/null +++ b/Examples/MAX32680/Bluetooth/BLE4_ctr/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32680 +TARGET_UC := MAX32680 +TARGET_LC := max32680 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32680/BLE4_ctr/README.md b/Examples/MAX32680/Bluetooth/BLE4_ctr/README.md similarity index 100% rename from Examples/MAX32680/BLE4_ctr/README.md rename to Examples/MAX32680/Bluetooth/BLE4_ctr/README.md diff --git a/Examples/MAX32680/Bluetooth/BLE4_ctr/main.c b/Examples/MAX32680/Bluetooth/BLE4_ctr/main.c new file mode 100644 index 00000000000..f97c54d0963 --- /dev/null +++ b/Examples/MAX32680/Bluetooth/BLE4_ctr/main.c @@ -0,0 +1,192 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + + /* Set 4.2 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) { + eventPending = WsfTokenService(); + } +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) { + eventPending = LhciSnifferHandler(); + } +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); +#endif + + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + LlSetAdvTxPower(DEFAULT_TX_POWER); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32680/BLE4_ctr/project.mk b/Examples/MAX32680/Bluetooth/BLE4_ctr/project.mk similarity index 100% rename from Examples/MAX32680/BLE4_ctr/project.mk rename to Examples/MAX32680/Bluetooth/BLE4_ctr/project.mk diff --git a/Examples/MAX32680/BLE_dats/.cproject b/Examples/MAX32680/Bluetooth/BLE_dats/.cproject similarity index 100% rename from Examples/MAX32680/BLE_dats/.cproject rename to Examples/MAX32680/Bluetooth/BLE_dats/.cproject diff --git a/Examples/MAX32680/BLE_dats/.project b/Examples/MAX32680/Bluetooth/BLE_dats/.project similarity index 100% rename from Examples/MAX32680/BLE_dats/.project rename to Examples/MAX32680/Bluetooth/BLE_dats/.project diff --git a/Examples/MAX32665/USB_CDCACM/.settings/language.settings.xml b/Examples/MAX32680/Bluetooth/BLE_dats/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.settings/language.settings.xml rename to Examples/MAX32680/Bluetooth/BLE_dats/.settings/language.settings.xml diff --git a/Examples/MAX32665/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32680/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32680/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32680/BLE_dats/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32680/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32680/BLE_dats/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32680/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32680/BLE_dats/.vscode/README.md b/Examples/MAX32680/Bluetooth/BLE_dats/.vscode/README.md similarity index 100% rename from Examples/MAX32680/BLE_dats/.vscode/README.md rename to Examples/MAX32680/Bluetooth/BLE_dats/.vscode/README.md diff --git a/Examples/MAX32665/Bootloader_Host/.vscode/c_cpp_properties.json b/Examples/MAX32680/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.vscode/c_cpp_properties.json rename to Examples/MAX32680/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/TMR/.vscode/flash.gdb b/Examples/MAX32680/Bluetooth/BLE_dats/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/TMR/.vscode/flash.gdb rename to Examples/MAX32680/Bluetooth/BLE_dats/.vscode/flash.gdb diff --git a/Examples/MAX32680/BLE_dats/.vscode/launch.json b/Examples/MAX32680/Bluetooth/BLE_dats/.vscode/launch.json similarity index 100% rename from Examples/MAX32680/BLE_dats/.vscode/launch.json rename to Examples/MAX32680/Bluetooth/BLE_dats/.vscode/launch.json diff --git a/Examples/MAX32680/BLE_dats/.vscode/settings.json b/Examples/MAX32680/Bluetooth/BLE_dats/.vscode/settings.json similarity index 100% rename from Examples/MAX32680/BLE_dats/.vscode/settings.json rename to Examples/MAX32680/Bluetooth/BLE_dats/.vscode/settings.json diff --git a/Examples/MAX32680/BLE_dats/.vscode/tasks.json b/Examples/MAX32680/Bluetooth/BLE_dats/.vscode/tasks.json similarity index 100% rename from Examples/MAX32680/BLE_dats/.vscode/tasks.json rename to Examples/MAX32680/Bluetooth/BLE_dats/.vscode/tasks.json diff --git a/Examples/MAX32680/BLE_dats/BLE_dats.launch b/Examples/MAX32680/Bluetooth/BLE_dats/BLE_dats.launch similarity index 100% rename from Examples/MAX32680/BLE_dats/BLE_dats.launch rename to Examples/MAX32680/Bluetooth/BLE_dats/BLE_dats.launch diff --git a/Examples/MAX32680/Bluetooth/BLE_dats/Makefile b/Examples/MAX32680/Bluetooth/BLE_dats/Makefile new file mode 100644 index 00000000000..ee2184d1a96 --- /dev/null +++ b/Examples/MAX32680/Bluetooth/BLE_dats/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32680 +TARGET_UC := MAX32680 +TARGET_LC := max32680 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32680/BLE_dats/README.md b/Examples/MAX32680/Bluetooth/BLE_dats/README.md similarity index 100% rename from Examples/MAX32680/BLE_dats/README.md rename to Examples/MAX32680/Bluetooth/BLE_dats/README.md diff --git a/Examples/MAX32680/Bluetooth/BLE_dats/dats_api.h b/Examples/MAX32680/Bluetooth/BLE_dats/dats_api.h new file mode 100644 index 00000000000..0a911b7ea05 --- /dev/null +++ b/Examples/MAX32680/Bluetooth/BLE_dats/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32680_BLUETOOTH_BLE_DATS_DATS_API_H_ +#define EXAMPLES_MAX32680_BLUETOOTH_BLE_DATS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32680_BLUETOOTH_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32680/Bluetooth/BLE_dats/dats_main.c b/Examples/MAX32680/Bluetooth/BLE_dats/dats_main.c new file mode 100644 index 00000000000..1226ed1a42d --- /dev/null +++ b/Examples/MAX32680/Bluetooth/BLE_dats/dats_main.c @@ -0,0 +1,922 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_1M 1 +#define DATS_PHY_2M 2 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 60000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'D', + 'A', + 'T', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello back"; + + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datsCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(MXC_WUT, wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + if (len < 64) { + /* print received data if not a speed test message */ + APP_TRACE_INFO0((const char *)pValue); + + /* send back some data */ + datsSendData(connId); + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datsOobCfg != NULL) { + DmSecSetOob(connId, datsOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + APP_TRACE_INFO0("DatsHandlerInit"); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32680/Bluetooth/BLE_dats/main.c b/Examples/MAX32680/Bluetooth/BLE_dats/main.c new file mode 100644 index 00000000000..bc2d8735206 --- /dev/null +++ b/Examples/MAX32680/Bluetooth/BLE_dats/main.c @@ -0,0 +1,268 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE Data Server for unformatted data exchange. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "dats_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDats(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT_IRQHandler(void) +{ + MXC_WUT_Handler(MXC_WUT); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_X1TRIM) >> + MXC_F_TRIMSIR_RTC_X1TRIM_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); +#endif + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(MXC_WUT, wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); + + StackInitDats(); + DatsStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32680/BLE_dats/project.mk b/Examples/MAX32680/Bluetooth/BLE_dats/project.mk similarity index 100% rename from Examples/MAX32680/BLE_dats/project.mk rename to Examples/MAX32680/Bluetooth/BLE_dats/project.mk diff --git a/Examples/MAX32680/BLE_dats/stack_dats.c b/Examples/MAX32680/Bluetooth/BLE_dats/stack_dats.c similarity index 100% rename from Examples/MAX32680/BLE_dats/stack_dats.c rename to Examples/MAX32680/Bluetooth/BLE_dats/stack_dats.c diff --git a/Examples/MAX32680/CRC/Makefile b/Examples/MAX32680/CRC/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/CRC/Makefile +++ b/Examples/MAX32680/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/CRC/main.c b/Examples/MAX32680/CRC/main.c index 7b232ee437d..c4a096be809 100644 --- a/Examples/MAX32680/CRC/main.c +++ b/Examples/MAX32680/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/Coremark/Makefile b/Examples/MAX32680/Coremark/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Coremark/Makefile +++ b/Examples/MAX32680/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/DMA/Makefile b/Examples/MAX32680/DMA/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/DMA/Makefile +++ b/Examples/MAX32680/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/DMA/main.c b/Examples/MAX32680/DMA/main.c index 830bde4c743..089c5da738e 100644 --- a/Examples/MAX32680/DMA/main.c +++ b/Examples/MAX32680/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/EEPROM_Emulator/Makefile b/Examples/MAX32680/EEPROM_Emulator/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/EEPROM_Emulator/Makefile +++ b/Examples/MAX32680/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/EEPROM_Emulator/include/cache.h b/Examples/MAX32680/EEPROM_Emulator/include/cache.h index 9263b1016d4..7c3761079b1 100644 --- a/Examples/MAX32680/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32680/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32680_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32680_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32680_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32680/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32680/EEPROM_Emulator/include/eeprom.h index e4956f57a15..a59463e22eb 100644 --- a/Examples/MAX32680/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32680/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32680_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32680_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32680_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32680/EEPROM_Emulator/main.c b/Examples/MAX32680/EEPROM_Emulator/main.c index 9d116f314d4..3df9e154cab 100644 --- a/Examples/MAX32680/EEPROM_Emulator/main.c +++ b/Examples/MAX32680/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/EEPROM_Emulator/src/cache.c b/Examples/MAX32680/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX32680/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32680/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32680/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32680/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX32680/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32680/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32680/Flash/Makefile b/Examples/MAX32680/Flash/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Flash/Makefile +++ b/Examples/MAX32680/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Flash/main.c b/Examples/MAX32680/Flash/main.c index 171b0083e3d..bd57552d735 100644 --- a/Examples/MAX32680/Flash/main.c +++ b/Examples/MAX32680/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32680/Flash_CLI/FreeRTOSConfig.h index ac3bcc36d4b..5cb88486b9d 100644 --- a/Examples/MAX32680/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32680/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32680/Flash_CLI/Makefile b/Examples/MAX32680/Flash_CLI/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Flash_CLI/Makefile +++ b/Examples/MAX32680/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Flash_CLI/definitions.h b/Examples/MAX32680/Flash_CLI/definitions.h index 5eb090f31bb..60ecbe34553 100644 --- a/Examples/MAX32680/Flash_CLI/definitions.h +++ b/Examples/MAX32680/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32680/Flash_CLI/main.c b/Examples/MAX32680/Flash_CLI/main.c index 844c22cb2f3..74451d901e8 100644 --- a/Examples/MAX32680/Flash_CLI/main.c +++ b/Examples/MAX32680/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32680/FreeRTOSDemo/FreeRTOSConfig.h index b4f08c0bc94..072f9ea4b01 100644 --- a/Examples/MAX32680/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32680/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32680/FreeRTOSDemo/Makefile b/Examples/MAX32680/FreeRTOSDemo/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/FreeRTOSDemo/Makefile +++ b/Examples/MAX32680/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32680/FreeRTOSDemo/freertos_tickless.c index 13c54c0d800..53b50b14926 100644 --- a/Examples/MAX32680/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32680/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32680/FreeRTOSDemo/main.c b/Examples/MAX32680/FreeRTOSDemo/main.c index a4771d25b8b..c68fc4cbc25 100644 --- a/Examples/MAX32680/FreeRTOSDemo/main.c +++ b/Examples/MAX32680/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/GPIO/Makefile b/Examples/MAX32680/GPIO/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/GPIO/Makefile +++ b/Examples/MAX32680/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/GPIO/main.c b/Examples/MAX32680/GPIO/main.c index adc2d0b50d9..b36dffdb0fb 100644 --- a/Examples/MAX32680/GPIO/main.c +++ b/Examples/MAX32680/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32680/HART_UART/Makefile b/Examples/MAX32680/HART_UART/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/HART_UART/Makefile +++ b/Examples/MAX32680/HART_UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/HART_UART/main.c b/Examples/MAX32680/HART_UART/main.c index 9982d1f174b..8535f9bc9ec 100644 --- a/Examples/MAX32680/HART_UART/main.c +++ b/Examples/MAX32680/HART_UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/Hello_World-riscv/Makefile b/Examples/MAX32680/Hello_World-riscv/Makefile index 0eeb8fba465..88b69b38399 100644 --- a/Examples/MAX32680/Hello_World-riscv/Makefile +++ b/Examples/MAX32680/Hello_World-riscv/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(PROJECT)" "" PROJECT=max32680 diff --git a/Examples/MAX32680/Hello_World-riscv/Makefile.ARM b/Examples/MAX32680/Hello_World-riscv/Makefile.ARM index b9d49ea89e8..fcd4f41de81 100644 --- a/Examples/MAX32680/Hello_World-riscv/Makefile.ARM +++ b/Examples/MAX32680/Hello_World-riscv/Makefile.ARM @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX32680/Hello_World-riscv/Makefile.RISCV b/Examples/MAX32680/Hello_World-riscv/Makefile.RISCV index 749f351a37a..104ea876791 100644 --- a/Examples/MAX32680/Hello_World-riscv/Makefile.RISCV +++ b/Examples/MAX32680/Hello_World-riscv/Makefile.RISCV @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX32680/Hello_World-riscv/main.c b/Examples/MAX32680/Hello_World-riscv/main.c index ad68fc68cdc..7b67ca6d4c6 100644 --- a/Examples/MAX32680/Hello_World-riscv/main.c +++ b/Examples/MAX32680/Hello_World-riscv/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/Hello_World-riscv/main_riscv.c b/Examples/MAX32680/Hello_World-riscv/main_riscv.c index d44565df65a..3f2578738de 100644 --- a/Examples/MAX32680/Hello_World-riscv/main_riscv.c +++ b/Examples/MAX32680/Hello_World-riscv/main_riscv.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32680/Hello_World/Makefile b/Examples/MAX32680/Hello_World/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Hello_World/Makefile +++ b/Examples/MAX32680/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Hello_World/main.c b/Examples/MAX32680/Hello_World/main.c index 90fa908fac8..909989e7fa7 100644 --- a/Examples/MAX32680/Hello_World/main.c +++ b/Examples/MAX32680/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/Hello_World_Cpp/Makefile b/Examples/MAX32680/Hello_World_Cpp/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Hello_World_Cpp/Makefile +++ b/Examples/MAX32680/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Hello_World_Cpp/main.cpp b/Examples/MAX32680/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32680/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32680/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/I2C/Makefile b/Examples/MAX32680/I2C/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/I2C/Makefile +++ b/Examples/MAX32680/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/I2C/main.c b/Examples/MAX32680/I2C/main.c index a442856629a..fb906384bee 100644 --- a/Examples/MAX32680/I2C/main.c +++ b/Examples/MAX32680/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32680/I2C_MNGR/FreeRTOSConfig.h index ac2926c353a..5f354633c8f 100644 --- a/Examples/MAX32680/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32680/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32680/I2C_MNGR/Makefile b/Examples/MAX32680/I2C_MNGR/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/I2C_MNGR/Makefile +++ b/Examples/MAX32680/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.c index 84e6bd1d361..c4ad58f485d 100644 --- a/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.h index 5bbd1550939..94d63986b88 100644 --- a/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32680/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32680/I2C_MNGR/main.c b/Examples/MAX32680/I2C_MNGR/main.c index eade5da754b..7479d7816b4 100644 --- a/Examples/MAX32680/I2C_MNGR/main.c +++ b/Examples/MAX32680/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/I2C_SCAN/Makefile b/Examples/MAX32680/I2C_SCAN/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/I2C_SCAN/Makefile +++ b/Examples/MAX32680/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/I2C_SCAN/main.c b/Examples/MAX32680/I2C_SCAN/main.c index 11e2e952e52..f894ba16c2d 100644 --- a/Examples/MAX32680/I2C_SCAN/main.c +++ b/Examples/MAX32680/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32680/I2C_Sensor/Makefile b/Examples/MAX32680/I2C_Sensor/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/I2C_Sensor/Makefile +++ b/Examples/MAX32680/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/I2C_Sensor/main.c b/Examples/MAX32680/I2C_Sensor/main.c index bd51b3af76a..3bef0ecd7db 100644 --- a/Examples/MAX32680/I2C_Sensor/main.c +++ b/Examples/MAX32680/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32680/I2S/Makefile b/Examples/MAX32680/I2S/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/I2S/Makefile +++ b/Examples/MAX32680/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/I2S/main.c b/Examples/MAX32680/I2S/main.c index 7ffb7697b87..910aba39ad1 100644 --- a/Examples/MAX32680/I2S/main.c +++ b/Examples/MAX32680/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32680/ICC/Makefile b/Examples/MAX32680/ICC/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/ICC/Makefile +++ b/Examples/MAX32680/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/ICC/main.c b/Examples/MAX32680/ICC/main.c index f927e15f847..b09bbe18147 100644 --- a/Examples/MAX32680/ICC/main.c +++ b/Examples/MAX32680/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32680/LP/Makefile b/Examples/MAX32680/LP/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/LP/Makefile +++ b/Examples/MAX32680/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/LP/main.c b/Examples/MAX32680/LP/main.c index cfccd86ff26..48986fdd919 100644 --- a/Examples/MAX32680/LP/main.c +++ b/Examples/MAX32680/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32680/Library_Generate/Makefile b/Examples/MAX32680/Library_Generate/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Library_Generate/Makefile +++ b/Examples/MAX32680/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Library_Generate/gpiolib.c b/Examples/MAX32680/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32680/Library_Generate/gpiolib.c +++ b/Examples/MAX32680/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32680/Library_Generate/gpiolib.h b/Examples/MAX32680/Library_Generate/gpiolib.h index 932ea994dad..1a12984e87f 100644 --- a/Examples/MAX32680/Library_Generate/gpiolib.h +++ b/Examples/MAX32680/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32680/Library_Use/Makefile b/Examples/MAX32680/Library_Use/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Library_Use/Makefile +++ b/Examples/MAX32680/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Library_Use/lib/include/gpiolib.h b/Examples/MAX32680/Library_Use/lib/include/gpiolib.h index f92dae5e649..b892d36878e 100644 --- a/Examples/MAX32680/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32680/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32680/Library_Use/main.c b/Examples/MAX32680/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32680/Library_Use/main.c +++ b/Examples/MAX32680/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32680/Pulse_Train/Makefile b/Examples/MAX32680/Pulse_Train/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Pulse_Train/Makefile +++ b/Examples/MAX32680/Pulse_Train/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Pulse_Train/main.c b/Examples/MAX32680/Pulse_Train/main.c index 08956b8555a..43e57688961 100644 --- a/Examples/MAX32680/Pulse_Train/main.c +++ b/Examples/MAX32680/Pulse_Train/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/RV_ARM_Loader/Makefile b/Examples/MAX32680/RV_ARM_Loader/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/RV_ARM_Loader/Makefile +++ b/Examples/MAX32680/RV_ARM_Loader/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/RV_ARM_Loader/main.c b/Examples/MAX32680/RV_ARM_Loader/main.c index ea70af931df..456d073ab21 100644 --- a/Examples/MAX32680/RV_ARM_Loader/main.c +++ b/Examples/MAX32680/RV_ARM_Loader/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/SPI/Makefile b/Examples/MAX32680/SPI/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/SPI/Makefile +++ b/Examples/MAX32680/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/SPI/main.c b/Examples/MAX32680/SPI/main.c index 1a6c43cd13c..e105b4709c3 100644 --- a/Examples/MAX32680/SPI/main.c +++ b/Examples/MAX32680/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32680/TMR/Makefile b/Examples/MAX32680/TMR/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/TMR/Makefile +++ b/Examples/MAX32680/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/TMR/main.c b/Examples/MAX32680/TMR/main.c index bc9c676f62c..3e45a0616fe 100644 --- a/Examples/MAX32680/TMR/main.c +++ b/Examples/MAX32680/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/TRNG/Makefile b/Examples/MAX32680/TRNG/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/TRNG/Makefile +++ b/Examples/MAX32680/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/TRNG/main.c b/Examples/MAX32680/TRNG/main.c index 88faf8aeb49..2bb59f0050d 100644 --- a/Examples/MAX32680/TRNG/main.c +++ b/Examples/MAX32680/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32680/Temp_Monitor/Makefile b/Examples/MAX32680/Temp_Monitor/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Temp_Monitor/Makefile +++ b/Examples/MAX32680/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Temp_Monitor/main.c b/Examples/MAX32680/Temp_Monitor/main.c index e1aef078c43..8f607bc3705 100644 --- a/Examples/MAX32680/Temp_Monitor/main.c +++ b/Examples/MAX32680/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/Temp_Monitor/temp_monitor.c b/Examples/MAX32680/Temp_Monitor/temp_monitor.c index 0d25a875572..79b12172e69 100644 --- a/Examples/MAX32680/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32680/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32680/Temp_Monitor/temp_monitor.h b/Examples/MAX32680/Temp_Monitor/temp_monitor.h index ead32964039..ff6d99bf66b 100644 --- a/Examples/MAX32680/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32680/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32680/UART/Makefile b/Examples/MAX32680/UART/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/UART/Makefile +++ b/Examples/MAX32680/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/UART/main.c b/Examples/MAX32680/UART/main.c index 2461a2de00c..16023f7e618 100644 --- a/Examples/MAX32680/UART/main.c +++ b/Examples/MAX32680/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/WUT/Makefile b/Examples/MAX32680/WUT/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/WUT/Makefile +++ b/Examples/MAX32680/WUT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/WUT/main.c b/Examples/MAX32680/WUT/main.c index 61f4393f11b..cbc46264ee5 100644 --- a/Examples/MAX32680/WUT/main.c +++ b/Examples/MAX32680/WUT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/Watchdog/Makefile b/Examples/MAX32680/Watchdog/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/Watchdog/Makefile +++ b/Examples/MAX32680/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/Watchdog/main.c b/Examples/MAX32680/Watchdog/main.c index 1e126c2f46c..992bc804fc9 100644 --- a/Examples/MAX32680/Watchdog/main.c +++ b/Examples/MAX32680/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32680/WearLeveling/Makefile b/Examples/MAX32680/WearLeveling/Makefile index ed22e913bc6..ee2184d1a96 100644 --- a/Examples/MAX32680/WearLeveling/Makefile +++ b/Examples/MAX32680/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32680/WearLeveling/include/cli.h b/Examples/MAX32680/WearLeveling/include/cli.h index b90929cbe22..ab844e013f9 100644 --- a/Examples/MAX32680/WearLeveling/include/cli.h +++ b/Examples/MAX32680/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32680/WearLeveling/include/file.h b/Examples/MAX32680/WearLeveling/include/file.h index 4f51aca0624..5c39ed6abc3 100644 --- a/Examples/MAX32680/WearLeveling/include/file.h +++ b/Examples/MAX32680/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32680/WearLeveling/include/flash.h b/Examples/MAX32680/WearLeveling/include/flash.h index 0213427396d..4e66d69c717 100644 --- a/Examples/MAX32680/WearLeveling/include/flash.h +++ b/Examples/MAX32680/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/WearLeveling/include/main.h b/Examples/MAX32680/WearLeveling/include/main.h index ec438a40e23..36fcd9ecfc5 100644 --- a/Examples/MAX32680/WearLeveling/include/main.h +++ b/Examples/MAX32680/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32680_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32680/WearLeveling/main.c b/Examples/MAX32680/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32680/WearLeveling/main.c +++ b/Examples/MAX32680/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32680/WearLeveling/src/cli.c b/Examples/MAX32680/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32680/WearLeveling/src/cli.c +++ b/Examples/MAX32680/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32680/WearLeveling/src/file.c b/Examples/MAX32680/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32680/WearLeveling/src/file.c +++ b/Examples/MAX32680/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32680/WearLeveling/src/flash.c b/Examples/MAX32680/WearLeveling/src/flash.c index e48065cec60..296bb629604 100644 --- a/Examples/MAX32680/WearLeveling/src/flash.c +++ b/Examples/MAX32680/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/ADC/Makefile b/Examples/MAX32690/ADC/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/ADC/Makefile +++ b/Examples/MAX32690/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ADC/main.c b/Examples/MAX32690/ADC/main.c index d5d7f6006b2..027e6ca7569 100644 --- a/Examples/MAX32690/ADC/main.c +++ b/Examples/MAX32690/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_bayes_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_class_marks_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_convolution_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX32690/ARM-DSP/arm_dotproduct_example_f32/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_fft_bin_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_fir_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_graphic_equalizer_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_linear_interp_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_matrix_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_signal_converge_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_sin_cos_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_svm_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX32690/ARM-DSP/arm_variance_example/Makefile index ddfc7b2bf21..43683480c4c 100644 --- a/Examples/MAX32690/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX32690/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/BLE4_ctr/.vscode/flash.gdb b/Examples/MAX32690/BLE4_ctr/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE4_ctr/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE4_ctr/Makefile b/Examples/MAX32690/BLE4_ctr/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE4_ctr/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE4_ctr/main.c b/Examples/MAX32690/BLE4_ctr/main.c deleted file mode 100644 index 4166b973549..00000000000 --- a/Examples/MAX32690/BLE4_ctr/main.c +++ /dev/null @@ -1,201 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - - /* Set 4.2 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) { - eventPending = WsfTokenService(); - } -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) { - eventPending = LhciSnifferHandler(); - } -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - LlSetAdvTxPower(DEFAULT_TX_POWER); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE5_ctr/.vscode/flash.gdb b/Examples/MAX32690/BLE5_ctr/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE5_ctr/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE5_ctr/Makefile b/Examples/MAX32690/BLE5_ctr/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE5_ctr/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE5_ctr/main.c b/Examples/MAX32690/BLE5_ctr/main.c deleted file mode 100644 index 5b32c568617..00000000000 --- a/Examples/MAX32690/BLE5_ctr/main.c +++ /dev/null @@ -1,288 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth version 5.2 controller, accepts HCI commands via Serial Port. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_cs.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "mxc_device.h" -#include "uart.h" -#include "nvic_table.h" -#include "board.h" -#include "pal_timer.h" - -#define MAX_PRIORITY ((0x1 << __NVIC_PRIO_BITS) - 1) - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = BT_VER; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; - - /* Adjust the extended advertising and ISO settings */ - mainLlRtCfg.maxAdvSets = 2; - mainLlRtCfg.maxAdvReports = 4; - mainLlRtCfg.numIsoTxBuf = 8; - mainLlRtCfg.maxCis = 2; - mainLlRtCfg.maxBis = 2; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Use single pool for data buffers. */ -#if (BT_VER > 9) - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) { - eventPending = WsfTokenService(); - } -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) { - eventPending = LhciSnifferHandler(); - } -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Adjust interrupt priorities to let HCI UART interrupt have second highest after PAL timer - * - * \return None - */ -/*************************************************************************************************/ -void setInterruptPriority(void) -{ - /* Interrupts using FreeRTOS functions must have priorities between MAX_PRIORITY and - configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ - - /* Setup BLE hardware interrupt priorities */ - NVIC_SetPriority(BTLE_TX_DONE_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SFD_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SFD_TO_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_CFO_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_SIG_DET_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_TX_AES_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_RX_AES_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (MAX_PRIORITY - 2)); - NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (MAX_PRIORITY - 2)); - - /* Setup scheduler timer priorities */ - NVIC_SetPriority(TMR0_IRQn, (MAX_PRIORITY - 1)); - NVIC_SetPriority(TMR1_IRQn, (MAX_PRIORITY - 1)); - - NVIC_SetPriority(WUT0_IRQn, (MAX_PRIORITY - 1)); - - /* Setup additional peripheral timer priorities */ - NVIC_SetPriority(UART1_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(UART2_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(UART3_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(DMA0_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA1_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA2_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(DMA3_IRQn, (MAX_PRIORITY - 0)); - - NVIC_SetPriority(GPIO0_IRQn, (MAX_PRIORITY - 0)); - NVIC_SetPriority(GPIO1_IRQn, (MAX_PRIORITY - 0)); - - /* Trace UART */ - NVIC_SetPriority(UART0_IRQn, 3); - /* HCI UART highest priority */ - NVIC_SetPriority(MXC_UART_GET_IRQ(MXC_UART_GET_UART(HCI_UART)), 0); - /* PAL Timer */ - PalTimerSetIRQPriority(2); -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - LlSetAdvTxPower(DEFAULT_TX_POWER); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - setInterruptPriority(); - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_FreeRTOS/.vscode/flash.gdb b/Examples/MAX32690/BLE_FreeRTOS/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32690/BLE_FreeRTOS/FreeRTOSConfig.h deleted file mode 100644 index d4c01bdef74..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/FreeRTOSConfig.h +++ /dev/null @@ -1,134 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32690_BLE_FREERTOS_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32690_BLE_FREERTOS_FREERTOSCONFIG_H_ - -#include -#include "max32690.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) - -#define SLEEP_LED 1 -#define DEEPSLEEP_LED 0 - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -// #define configUSE_TICKLESS_IDLE 1 - -/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will -increase the amount of time spent in standby mode, thus reducing average power consumption. */ -#ifdef configUSE_TICKLESS_IDLE -#define configTICK_RATE_HZ ((portTickType)10000) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#endif - -#define configRTC_TICK_RATE_HZ (32768) - -#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -/* Define to trap errors during development. */ -void vAssertCalled(const char *const pcFileName, uint32_t ulLine); -#define configASSERT(x) \ - if ((x) == 0) \ - vAssertCalled(__FILE__, __LINE__) - -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) - -/* Only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY \ - ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -#endif // EXAMPLES_MAX32690_BLE_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32690/BLE_FreeRTOS/Makefile b/Examples/MAX32690/BLE_FreeRTOS/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_FreeRTOS/dats_api.h b/Examples/MAX32690/BLE_FreeRTOS/dats_api.h deleted file mode 100644 index db40e0ed953..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_FREERTOS_DATS_API_H_ -#define EXAMPLES_MAX32690_BLE_FREERTOS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_FREERTOS_DATS_API_H_ diff --git a/Examples/MAX32690/BLE_FreeRTOS/dats_main.c b/Examples/MAX32690/BLE_FreeRTOS/dats_main.c deleted file mode 100644 index 97d8af655ad..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/dats_main.c +++ /dev/null @@ -1,925 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_1M 1 -#define DATS_PHY_2M 2 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 60000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 5000, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - (50 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (100 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'D', - 'A', - 'T', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello back"; - - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datsCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - if (len < 64) { - /* print received data if not a speed test message */ - APP_TRACE_INFO0((const char *)pValue); - - /* send back some data */ - datsSendData(connId); - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datsOobCfg != NULL) { - DmSecSetOob(connId, datsOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32690/BLE_FreeRTOS/freertos_tickless.c deleted file mode 100644 index b67cc987782..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/freertos_tickless.c +++ /dev/null @@ -1,271 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Maxim CMSIS */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" -#include "lp.h" -#include "pwrseq_regs.h" -#include "wut.h" -#include "mcr_regs.h" -#include "icc.h" -#include "pb.h" -#include "led.h" -#include "uart.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Bluetooth Cordio library */ -#include "pal_timer.h" -#include "pal_uart.h" -#include "pal_bb.h" - -#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ -#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ -#define WAKEUP_US 500 /* Deep sleep recovery time, units of us */ - -/* Minimum ticks before SysTick interrupt, units of system clock ticks. - * Convert CPU_CLOCK_HZ to units of ticks per us - */ -#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -int freertos_permit_tickless(void) -{ - /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ - if (MXC_WUT_TrimPending() != E_NO_ERROR) { - return E_BUSY; - } - - /* Figure out if the UART is active */ - if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { - return E_BUSY; - } - - /* Prevent characters from being corrupted if still transmitting, - UART will shutdown in deep sleep */ - if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { - return E_BUSY; - } - - return E_NO_ERROR; -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the WUT to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; - uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; - bool_t schTimerActive; - - /* We do not currently handle to case where the WUT is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Calculate the number of WUT ticks, but we need one to synchronize */ - idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / - (uint64_t)configTICK_RATE_HZ; - - if (idleTicks > MAX_WUT_TICKS) { - idleTicks = MAX_WUT_TICKS; - } - - /* Check to see if we meet the minimum requirements for deep sleep */ - if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { - return; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - - /* Determine if the Bluetooth scheduler is running */ - if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { - schTimerActive = TRUE; - } else { - schTimerActive = FALSE; - } - - if (!schTimerActive) { - uint32_t ts; - if (PalBbGetTimestamp(&ts)) { - /*Determine if PalBb is active, return if we get a valid time stamp indicating - * that the scheduler is waiting for a PalBb event */ - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - } - - /* Disable SysTick */ - SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); - - /* Enable wakeup from WUT */ - NVIC_EnableIRQ(WUT0_IRQn); - MXC_LP_EnableWUTAlarmWakeup(); - - /* Determine if we need to snapshot the PalBb clock */ - if (schTimerActive) { - /* Snapshot the current WUT value with the PalBb clock */ - MXC_WUT_Store(); - preCapture = MXC_WUT_GetCount(); - schUsec = PalTimerGetExpTime(); - - /* Adjust idleTicks for the time it takes to restart the BLE hardware */ - idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); - - /* Calculate the time to the next BLE scheduler event */ - if (schUsec < WAKEUP_US) { - bleSleepTicks = 0; - } else { - bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * - (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; - } - } else { - /* Snapshot the current WUT value */ - MXC_WUT_Edge(); - preCapture = MXC_WUT_GetCount(); - bleSleepTicks = 0; - schUsec = 0; - } - - /* Sleep for the shortest tick duration */ - if ((schTimerActive) && (bleSleepTicks < idleTicks)) { - dsTicks = bleSleepTicks; - } else { - dsTicks = idleTicks; - } - - /* Bound the deep sleep time */ - if (dsTicks > MAX_WUT_TICKS) { - dsTicks = MAX_WUT_TICKS; - } - - /* Don't deep sleep if we don't have time */ - if (dsTicks >= MIN_WUT_TICKS) { - /* Arm the WUT interrupt */ - MXC_WUT->cmp = preCapture + dsTicks; - - if (schTimerActive) { - /* Stop the BLE scheduler timer */ - PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); - } - - LED_Off(SLEEP_LED); - LED_Off(DEEPSLEEP_LED); - - MXC_LP_EnterStandbyMode(); - - LED_On(DEEPSLEEP_LED); - LED_On(SLEEP_LED); - - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); - - /* Restore the BB counter */ - MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); - - /* Restart the BLE scheduler timer */ - dsWutTicks = MXC_WUT->cnt - preCapture; - schUsecElapsed = - (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; - - int palTimerStartTicks = schUsec - schUsecElapsed; - if (palTimerStartTicks < 1) { - palTimerStartTicks = 1; - } - PalTimerStart(palTimerStartTicks); - } - } - - /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ - MXC_WUT_Edge(); - postCapture = MXC_WUT_GetCount(); - dsWutTicks = postCapture - preCapture; - - /* - * Advance ticks by # actually elapsed - */ - dsSysTickPeriods = - (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; - vTaskStepTick(dsSysTickPeriods); - - /* Re-enable SysTick */ - SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); -} diff --git a/Examples/MAX32690/BLE_FreeRTOS/main.c b/Examples/MAX32690/BLE_FreeRTOS/main.c deleted file mode 100644 index 85e20df1576..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/main.c +++ /dev/null @@ -1,171 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief BLE_FreeRTOS - * @details This example demonstrates FreeRTOS with BLE capabilities. - */ - -#include -#include -#include -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "mxc_device.h" -#include "wut.h" -#include "lp.h" -#include "led.h" -#include "board.h" - -/* Stringification macros */ -#define STRING(x) STRING_(x) -#define STRING_(x) #x - -extern void bleStartup(void); - -/***** Functions *****/ - -/* =| vAssertCalled |============================== - * - * Called when an assertion is detected. Use debugger to backtrace and - * continue. - * - * ======================================================= - */ -void vAssertCalled(const char *const pcFileName, uint32_t ulLine) -{ - volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; - - /* Parameters are not used. */ - (void)ulLine; - (void)pcFileName; - - __asm volatile("cpsid i"); - { - /* You can step out of this function to debug the assertion by using - the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero - value. */ - while (ulSetToNonZeroInDebuggerToContinue == 0) {} - } - __asm volatile("cpsie i"); -} - -/* =| vApplicationIdleHook |============================== - * - * Call the user defined function from within the idle task. This - * allows the application designer to add background functionality - * without the overhead of a separate task. - * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, - * CALL A FUNCTION THAT MIGHT BLOCK. - * - * ======================================================= - */ -void vApplicationIdleHook(void) -{ - /* Sleep while idle */ - LED_Off(SLEEP_LED); - - MXC_LP_EnterSleepMode(); - - LED_On(SLEEP_LED); -} - -/* =| main |============================================== - * - * This program demonstrates FreeRTOS tasks, mutexes. - * - * ======================================================= - */ -int main(void) -{ - /* Print banner (RTOS scheduler not running) */ - printf("\n-=- %s BLE FreeRTOS (%s) Demo -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); -#if configUSE_TICKLESS_IDLE - printf("Tickless idle is enabled\n"); - /* Initialize CPU Active LED */ - LED_On(SLEEP_LED); - LED_On(DEEPSLEEP_LED); -#endif - printf("SystemCoreClock = %d\n", SystemCoreClock); - - /* Delay to prevent bricks */ - volatile int i; - for (i = 0; i < 0x3FFFFF; i++) {} - - /* Start the BLE application */ - bleStartup(); - - /* Start scheduler */ - vTaskStartScheduler(); - - /* This code is only reached if the scheduler failed to start */ - printf("ERROR: FreeRTOS did not start due to above error!\n"); - while (1) { - __NOP(); - } - - /* Quiet GCC warnings */ - return -1; -} - -typedef struct __attribute__((packed)) ContextStateFrame { - uint32_t r0; - uint32_t r1; - uint32_t r2; - uint32_t r3; - uint32_t r12; - uint32_t lr; - uint32_t return_address; - uint32_t xpsr; -} sContextStateFrame; - -/*****************************************************************/ -void HardFault_Handler(void) -{ - __asm(" TST LR, #4\n" - " ITE EQ \n" - " MRSEQ R0, MSP \n" - " MRSNE R0, PSP \n" - " B HardFault_Decoder \n"); -} - -/*****************************************************************/ -/* Disable optimizations for this function so "frame" argument */ -/* does not get optimized away */ -__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) -{ - /* Hang here */ - while (1) {} -} diff --git a/Examples/MAX32690/BLE_FreeRTOS/stack_dats.c b/Examples/MAX32690/BLE_FreeRTOS/stack_dats.c deleted file mode 100644 index b05b2e551fe..00000000000 --- a/Examples/MAX32690/BLE_FreeRTOS/stack_dats.c +++ /dev/null @@ -1,383 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file stack_dats.c - * - * \brief Stack initialization for dats. - * - * Copyright (c) 2016-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include - -#include "app_api.h" -#include "app_terminal.h" -#include "app_ui.h" -#include "att_api.h" -#include "att_handler.h" -#include "dats_api.h" -#include "dm_handler.h" -#include "hci_core.h" -#include "hci_defs.h" -#include "hci_handler.h" -#include "l2c_api.h" -#include "l2c_handler.h" -#include "ll_init_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "sec_api.h" -#include "smp_api.h" -#include "smp_handler.h" -#include "svc_core.h" -#include "svc_dis.h" -#include "util/bstream.h" -#include "wdxs/wdxs_api.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_bufio.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_msg.h" -#include "wsf_os.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_types.h" -#include "pal_led.h" - -#include "FreeRTOSConfig.h" - -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" -#include "mxc_device.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, - { 32, 4 }, - { 192, 8 }, - { 256, 16 }, - { 512, 4 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Initialize stack. - * - * \return None. - */ -/*************************************************************************************************/ -void StackInitDats(void) -{ - wsfHandlerId_t handlerId; - - SecInit(); - SecAesInit(); - SecCmacInit(); - SecEccInit(); - - handlerId = WsfOsSetNextHandler(HciHandler); - HciHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(DmHandler); - DmDevVsInit(0); - DmConnInit(); - DmAdvInit(); - DmConnSlaveInit(); - DmSecInit(); - DmSecLescInit(); - DmPrivInit(); - DmHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(L2cSlaveHandler); - L2cSlaveHandlerInit(handlerId); - L2cInit(); - L2cSlaveInit(); - - handlerId = WsfOsSetNextHandler(AttHandler); - AttHandlerInit(handlerId); - AttsInit(); - AttsIndInit(); - - handlerId = WsfOsSetNextHandler(SmpHandler); - SmpHandlerInit(handlerId); - SmprInit(); - SmprScInit(); - HciSetMaxRxAclLen(100); - - handlerId = WsfOsSetNextHandler(AppHandler); - AppHandlerInit(handlerId); - - handlerId = WsfOsSetNextHandler(DatsHandler); - DatsHandlerInit(handlerId); -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT0_IRQHandler(void) -{ - MXC_WUT_IntClear(); - NVIC_ClearPendingIRQ(WUT0_IRQn); - MXC_WUT_Handler(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -void setInterruptPriority(void) -{ - /* Interrupts using FreeRTOS functions must have priorities between configMAX_PRIORITIES and - configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ - - /* Setup BLE hardware interrupt priorities */ - NVIC_SetPriority(BTLE_TX_DONE_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SFD_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SFD_TO_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_CFO_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_SIG_DET_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_TX_AES_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_RX_AES_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (configMAX_PRIORITIES - 2)); - NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (configMAX_PRIORITIES - 2)); - - /* Setup scheduler timer priorities */ - NVIC_SetPriority(TMR0_IRQn, (configMAX_PRIORITIES - 1)); - NVIC_SetPriority(TMR1_IRQn, (configMAX_PRIORITIES - 1)); - - NVIC_SetPriority(WUT0_IRQn, configMAX_PRIORITIES - 1); - - /* Setup additional peripheral timer priorities */ - NVIC_SetPriority(UART0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART1_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART2_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(UART3_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(DMA0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA1_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA2_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(DMA3_IRQn, (configMAX_PRIORITIES - 0)); - - NVIC_SetPriority(GPIO0_IRQn, (configMAX_PRIORITIES - 0)); - NVIC_SetPriority(GPIO1_IRQn, (configMAX_PRIORITIES - 0)); -} - -void trim32k(void) -{ - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - NVIC_EnableIRQ(WUT0_IRQn); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - if (MXC_WUT_TrimCrystalAsync(wutTrimCb) != E_NO_ERROR) { - APP_TRACE_INFO0("Error with 32k trim"); - } else { - while (!wutTrimComplete) {} - } - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -} - -/*************************************************************************************************/ -/*! - * \brief Initialize BLE. - * - * \return None. - */ -/*************************************************************************************************/ -void bleStartup(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - trim32k(); -#endif - - setInterruptPriority(); - -#if configUSE_TICKLESS_IDLE - /* Disable Cordio stack usage of the LEDs */ - PalLedDeInit(); -#endif - - StackInitDats(); - DatsStart(); -} diff --git a/Examples/MAX32690/BLE_datc/.vscode/flash.gdb b/Examples/MAX32690/BLE_datc/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_datc/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_datc/Makefile b/Examples/MAX32690/BLE_datc/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_datc/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_datc/datc_api.h b/Examples/MAX32690/BLE_datc/datc_api.h deleted file mode 100644 index 60fbee8bdbf..00000000000 --- a/Examples/MAX32690/BLE_datc/datc_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_DATC_DATC_API_H_ -#define EXAMPLES_MAX32690_BLE_DATC_DATC_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_DATC_DATC_API_H_ diff --git a/Examples/MAX32690/BLE_datc/datc_main.c b/Examples/MAX32690/BLE_datc/datc_main.c deleted file mode 100644 index 206636847a5..00000000000 --- a/Examples/MAX32690/BLE_datc/datc_main.c +++ /dev/null @@ -1,1400 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application for Nordic-ble. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "dm_api.h" -#include "dm_priv.h" -#include "gap/gap_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_cfg.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_core.h" -#include "svc_ch.h" -#include "gatt/gatt_api.h" -#include "wpc/wpc_api.h" -#include "datc_api.h" -#include "util/calc128.h" -#include "pal_btn.h" -#include "pal_uart.h" -#include "tmr.h" -#include "sdsc_api.h" -/************************************************************************************************** -Macros -**************************************************************************************************/ -#if (BT_VER > 8) -/* PHY Test Modes */ -#define DATC_PHY_1M 1 -#define DATC_PHY_2M 2 -#define DATC_PHY_CODED 3 -#endif /* BT_VER */ - -#define SPEED_TEST_COUNT 5000 - -/* Max value is 238 */ -#define SPEED_TEST_PACKET_LEN 238 -#define SPEED_TEST_TMR MXC_TMR3 - -#define SCAN_START_EVT 0x99 -#define SCAN_START_MS 500 - -/* Down sample the number of scan reports we print */ -#define SCAN_REPORT_DOWN_SAMPLE 20 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR2 - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -struct { - uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ - wsfHandlerId_t handlerId; /*! WSF hander ID */ - bool_t scanning; /*! TRUE if scanning */ - bool_t autoConnect; /*! TRUE if auto-connecting */ - uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ - uint8_t hdlListLen; /*! Cached handle list length */ - uint8_t btnConnId; /*! The index of the connection ID for button presses */ -#if (BT_VER > 8) - uint8_t phyMode[DM_CONN_MAX]; /*! PHY Test Mode */ -#endif /* BT_VER */ - appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ - unsigned speedTestCounter; - wsfTimer_t scanTimer; /* Timer for starting the scanner */ -} datcCb; - -/*! connection control block */ -typedef struct { - appDbHdl_t dbHdl; /*! Device database record handle type */ - uint8_t addrType; /*! Type of address of device to connect to */ - bdAddr_t addr; /*! Address of device to connect to */ - bool_t doConnect; /*! TRUE to issue connect on scan complete */ -} datcConnInfo_t; - -datcConnInfo_t datcConnInfo; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for master */ -static const appMasterCfg_t datcMasterCfg = { - 96, /*! The scan interval, in 0.625 ms units */ - 48, /*! The scan window, in 0.625 ms units */ - 0, /*! The scan duration in ms */ - DM_DISC_MODE_NONE, /*! The GAP discovery mode */ - DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ -}; - -/*! Configurable security parameters to set -* pairing and authentication requirements. -* -* Authentication and bonding flags -* -DM_AUTH_BOND_FLAG : Bonding requested -* -DM_AUTH_KP_FLAG : Keypress notifications requested -* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested, - pairing method is determined by IO capabilities below -* -DM_AUTH_SC_FLAG : LE Secure Connections requested -* -* Initiator key distribution flags -* -DM_KEY_DIST_LTK : Distribute LTK used for encryption -* -DM_KEY_DIST_IRK : Distribute IRK used for privacy -* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data -*/ -static const appSecCfg_t datcSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/* OOB UART parameters */ -#define OOB_BAUD 115200 -#define OOB_FLOW FALSE - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datcSendOobData = FALSE; - -/* OOB Connection identifier */ -dmConnId_t oobConnId; - -/*! SMP security parameter configuration -* -* I/O Capability Codes to be set for -* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets -* when the MITM flag is set in Configurable security parameters above. -* -SMP_IO_DISP_ONLY : Display only. -* -SMP_IO_DISP_YES_NO : Display yes/no. -* -SMP_IO_KEY_ONLY : Keyboard only. -* -SMP_IO_NO_IN_NO_OUT : No input, no output. -* -SMP_IO_KEY_DISP : Keyboard display. -*/ -static const smpCfg_t datcSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_KEY_ONLY, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! Connection parameters */ -static const hciConnSpec_t datcConnCfg = { - 6, /*! Minimum connection interval in 1.25ms units */ - 6, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 0, /*! Unused */ - 0 /*! Unused */ -}; - -/*! Configurable parameters for service and characteristic discovery */ -static const appDiscCfg_t datcDiscCfg = { - FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ - TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ -}; - -static const appCfg_t datcAppCfg = { - FALSE, /*! TRUE to abort service discovery if service not found */ - TRUE /*! TRUE to disconnect if ATT transaction times out */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datcAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, - 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; - -/************************************************************************************************** - ATT Client Discovery Data -**************************************************************************************************/ - -/*! Discovery states: enumeration of services to be discovered */ -enum { - DATC_DISC_GATT_SVC, /*! GATT service */ - DATC_DISC_GAP_SVC, /*! GAP service */ - DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ - DATC_DISC_SDS_SVC, /*! Secured Data Service */ - DATC_DISC_SVC_MAX /*! Discovery complete */ -}; - -/*! the Client handle list, datcCb.hdlList[], is set as follows: - * - * ------------------------------- <- DATC_DISC_GATT_START - * | GATT svc changed handle | - * ------------------------------- - * | GATT svc changed ccc handle | - * ------------------------------- <- DATC_DISC_GAP_START - * | GAP central addr res handle | - * ------------------------------- - * | GAP RPA Only handle | - * ------------------------------- <- DATC_DISC_WP_START - * | WP handles | - * | ... | - * ------------------------------- - */ - -/*! Start of each service's handles in the the handle list */ -#define DATC_DISC_GATT_START 0 -#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) -#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) -#define DATC_DISC_SDS_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) -#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_SDS_START + SEC_HDL_LIST_LEN) - -/*! Pointers into handle list for each service's handles */ -static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; -static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; -static uint16_t *pSecDatHdlList[DM_CONN_MAX]; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datcOobCfg; - -/************************************************************************************************** - ATT Client Configuration Data -**************************************************************************************************/ - -/* - * Data for configuration after service discovery - */ - -/* Default value for CCC indications */ -const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; - -/* Default value for CCC notifications */ -const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; - -/* Default value for Client Supported Features (enable Robust Caching) */ -const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; - -/* List of characteristics to configure after service discovery */ -static const attcDiscCfg_t datcDiscCfgList[] = { - /* Write: GATT service changed ccc descriptor */ - { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: GATT client supported features */ - { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: Proprietary data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, - - /* Write: Secured data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (SEC_DAT_CCC_HDL_IDX + DATC_DISC_SDS_START) }, -}; - -/* Characteristic configuration list length */ -#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) - -/* sanity check: make sure configuration list length is <= handle list length */ -WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); - -/*************************************************************************************************/ -/*! - * \brief OOB RX callback. - * - * \return None. - */ -/*************************************************************************************************/ -void oobRxCback(void) -{ - if (datcOobCfg != NULL) { - DmSecSetOob(oobConnId, datcOobCfg); - } - - DmSecAuthRsp(oobConnId, 0, NULL); -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - uint16_t reportLen; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datcSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - - /* Setup HCI UART for OOB */ - PalUartConfig_t hciUartCfg; - hciUartCfg.rdCback = oobRxCback; - hciUartCfg.wrCback = NULL; - hciUartCfg.baud = OOB_BAUD; - hciUartCfg.hwFlow = OOB_FLOW; - - PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datcOobCfg == NULL) { - datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - memset(datcOobCfg, 0, sizeof(dmSecLescOobCfg_t)); - } - - if (datcOobCfg) { - Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); - - /* Start the RX for the peer OOB data */ - PalUartReadData(PAL_UART_ID_CHCI, datcOobCfg->peerRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - } else { - APP_TRACE_ERR0("Error allocating OOB data"); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - reportLen = pDmEvt->scanReport.len; - } else { - reportLen = 0; - } - - if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { - memcpy(pMsg, pDmEvt, len); - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); - memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); - } - WsfMsgSend(datcCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datcCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning handler. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanningHandler(void) -{ - datcCb.autoConnect = TRUE; - datcConnInfo.doConnect = FALSE; - AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanning(void) -{ - /* Start the scanning start timer */ - WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan start. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStart(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan stop. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStop(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - - /* Open connection */ - if (datcConnInfo.doConnect) { - AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); - datcConnInfo.doConnect = FALSE; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Print the name value from a scan report. - * - * \param name Pointer to name parameter from a scan report. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrintName(uint8_t *name) -{ - /* Allocate a buffer for the device name */ - uint8_t *printBuf; - printBuf = WsfBufAlloc(name[DM_AD_LEN_IDX]); - - if (printBuf != NULL) { - /* Copy in the data and null terminate the string */ - memcpy(printBuf, &name[DM_AD_DATA_IDX], name[DM_AD_LEN_IDX] - 1); - printBuf[name[DM_AD_LEN_IDX] - 1] = 0; - - APP_TRACE_INFO1(" Name: %s", printBuf); - WsfBufFree(printBuf); - } -} - -/*************************************************************************************************/ -/*! - * \brief Print the contents of a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrintScanReport(dmEvt_t *pMsg) -{ -#if WSF_TRACE_ENABLED == TRUE - uint8_t *pData; - - APP_TRACE_INFO0("Scan Report:"); - WsfTrace(" %02x:%02x:%02x:%02x:%02x:%02x", pMsg->scanReport.addr[5], pMsg->scanReport.addr[4], - pMsg->scanReport.addr[3], pMsg->scanReport.addr[2], pMsg->scanReport.addr[1], - pMsg->scanReport.addr[0]); - - if ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL) { - datcPrintName(pData); - } else if ((pData = DmFindAdType(DM_ADV_TYPE_SHORT_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL) { - datcPrintName(pData); - } -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Handle a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanReport(dmEvt_t *pMsg) -{ - uint8_t *pData; - appDbHdl_t dbHdl; - bool_t connect = FALSE; - - /* disregard if not scanning or autoconnecting */ - if (!datcCb.scanning || !datcCb.autoConnect) { - return; - } - - /* if we already have a bond with this device then connect to it */ - if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != - APP_DB_HDL_NONE) { - /* if this is a directed advertisement where the initiator address is an RPA */ - if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { - /* resolve direct address to see if it's addressed to us */ - AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); - } else { - connect = TRUE; - } - } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { - /* if the peer device uses an RPA */ - /* resolve advertiser's RPA to see if we already have a bond with this device */ - AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); - } - - /* find device name */ - if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL)) { - /* check length and device name */ - if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'D') && - (pData[DM_AD_DATA_IDX + 1] == 'A') && (pData[DM_AD_DATA_IDX + 2] == 'T') && - (pData[DM_AD_DATA_IDX + 3] == 'S')) { - connect = TRUE; - } - } - - if (connect) { - datcPrintScanReport(pMsg); - - /* stop scanning and connect */ - datcCb.autoConnect = FALSE; - AppScanStop(); - - /* Store peer information for connect on scan stop */ - datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); - memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); - datcConnInfo.dbHdl = dbHdl; - datcConnInfo.doConnect = TRUE; - } else { - static int scanReportDownSample = 0; - - /* Down sample the number of scan reports we print */ - if (scanReportDownSample++ == SCAN_REPORT_DOWN_SAMPLE) { - scanReportDownSample = 0; - datcPrintScanReport(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection open. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcOpen(dmEvt_t *pMsg) -{ -#if (BT_VER > 8) - datcCb.phyMode[pMsg->hdr.param - 1] = DATC_PHY_1M; -#endif /* BT_VER */ -} - -/*************************************************************************************************/ -/*! - * \brief Process a received ATT notification. - * - * \param pMsg Pointer to ATT callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcValueNtf(attEvt_t *pMsg) -{ - if (pMsg->handle == pSecDatHdlList[pMsg->hdr.param - 1][SEC_DAT_HDL_IDX]) - APP_TRACE_INFO0(">> Notification from secure data service <<<"); - /* print the received data */ - if (datcCb.speedTestCounter == 0) { - APP_TRACE_INFO0((const char *)pMsg->pValue); - } -} - -/*************************************************************************************************/ -/*! - * \brief Set up procedures that need to be performed after device reset. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSetup(dmEvt_t *pMsg) -{ - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - datcConnInfo.doConnect = FALSE; - datcCb.restoringResList = FALSE; - - DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datcSetup(pMsg); - } else { - datcCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datcCb.restoringResList) { - /* Retore next device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datcSetup(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Send example data. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello world"; - - if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send example data to secured charactersitic. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void secDatSendData(dmConnId_t connId) -{ - uint8_t str[] = "Secret number is 0x42"; - - if (pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX], sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief GAP service discovery has completed. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscGapCmpl(dmConnId_t connId) -{ - appDbHdl_t dbHdl; - - /* if RPA Only attribute found on peer device */ - if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { - /* update DB */ - AppDbSetPeerRpao(dbHdl, TRUE); - AppDbNvmStorePeerRpao(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Handler for the speed test. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSpeedTestHandler(dmConnId_t connId) -{ - static uint8_t speedTestData[SPEED_TEST_PACKET_LEN]; - uint16_t handle; - - if (datcCb.speedTestCounter == SPEED_TEST_COUNT) { - unsigned us = MXC_TMR_SW_Stop(SPEED_TEST_TMR); - - /* Calculate the throughput */ - unsigned bits = SPEED_TEST_COUNT * SPEED_TEST_PACKET_LEN * 8; - APP_TRACE_INFO2("%d bits transferred in %d us", bits, us); - - float bps = (float)bits / ((float)us / (float)1000000); - APP_TRACE_INFO1("%d bps", (unsigned)bps); - - /* Reset the counter for the next test */ - datcCb.speedTestCounter = 0; - return; - } - - /* Write the next packet */ - handle = pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX]; - AttcWriteCmd(connId, handle, (uint16_t)SPEED_TEST_PACKET_LEN, speedTestData); - - if (datcCb.speedTestCounter == 0) { - /* Start the throughput timer */ - MXC_TMR_SW_Start(SPEED_TEST_TMR); - } - - datcCb.speedTestCounter++; -} - -/*************************************************************************************************/ -/*! - * \brief Starts the speed test. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcStartSpeedTest(dmConnId_t connId) -{ - if (datcCb.speedTestCounter != 0) { - APP_TRACE_ERR0("Speed test already running"); - return; - } - - APP_TRACE_INFO0("Starting speed test"); - datcSpeedTestHandler(connId); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcBtnCback(uint8_t btn) -{ - dmConnId_t connId = datcCb.btnConnId; - dmConnId_t connIdList[DM_CONN_MAX]; - uint8_t numConnections = AppConnOpenList(connIdList); - - /* button actions when connected */ - if (numConnections > 0) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (numConnections < DM_CONN_MAX - 1) { - /* if scanning cancel scanning */ - if (datcCb.scanning) { - AppScanStop(); - } else if (!datcCb.autoConnect) { - /* else auto connect */ - datcRestartScanning(); - } - } else { - APP_TRACE_INFO0("datcBtnCback: Max connections reached."); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID used in button presses */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* disconnect */ - AppConnClose(connId); - break; - -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - datcCb.phyMode[connId - 1] = DATC_PHY_1M; - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - datcCb.phyMode[connId - 1] = DATC_PHY_2M; - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - datcCb.phyMode[connId - 1] = DATC_PHY_CODED; - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - datcCb.phyMode[connId - 1] = DATC_PHY_CODED; - break; - } - break; - } -#endif /* BT_VER */ - case APP_UI_BTN_2_MED: - secDatSendData(connId); - break; - case APP_UI_BTN_2_LONG: - /* send data */ - datcSendData(connId); - break; - - case APP_UI_BTN_2_EX_LONG: - /* Start the speed test */ - datcStartSpeedTest(connId); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* if scanning cancel scanning */ - if (datcCb.scanning) { - AppScanStop(); - } else if (!datcCb.autoConnect) { - /* else auto connect */ - datcRestartScanning(); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID buttons apply to */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: - /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ - SvcCoreGapAddRpaoCh(); - break; - - case APP_UI_BTN_2_EX_LONG: - /* enable device privacy -- start generating local RPAs every 15 minutes */ - DmDevPrivStart(15 * 60); - - /* set Scanning filter policy to accept directed advertisements with RPAs */ - DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Discovery callback. - * - * \param connId Connection identifier. - * \param status Service or configuration status. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscCback(dmConnId_t connId, uint8_t status) -{ - switch (status) { - case APP_DISC_INIT: - /* set handle list when initialization requested */ - AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_READ_DATABASE_HASH: - /* Read peer's database hash */ - AppDiscReadDatabaseHash(connId); - break; - - case APP_DISC_SEC_REQUIRED: - /* initiate security */ - AppMasterSecurityReq(connId); - break; - - case APP_DISC_START: - /* initialize discovery state */ - datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; - - /* store possible change in cache by hash */ - AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); - - /* discover GATT service */ - GattDiscover(connId, pDatcGattHdlList[connId - 1]); - break; - - case APP_DISC_FAILED: - if (pAppCfg->abortDisc) { - /* if discovery failed for proprietary data service then disconnect */ - if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { - AppConnClose(connId); - break; - } - } - /* Else falls through. */ - - case APP_DISC_CMPL: - /* next discovery state */ - datcCb.discState[connId - 1]++; - - if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { - /* discover GAP service */ - GapDiscover(connId, pDatcGapHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { - /* discover proprietary data service */ - WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_SDS_SVC) { - /* discover secured data service */ - SecDatSvcDiscover(connId, pSecDatHdlList[connId - 1]); - } else { - /* discovery complete */ - AppDiscComplete(connId, APP_DISC_CMPL); - - /* GAP service discovery completed */ - datcDiscGapCmpl(connId); - - /* store cached handle list in NVM */ - AppDbNvmStoreHdlList(AppDbGetHdl(connId)); - - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - } - break; - - case APP_DISC_CFG_START: - case APP_DISC_CFG_CONN_START: - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_CFG_CMPL: - AppDiscComplete(connId, status); - break; - - default: - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTC_WRITE_CMD_RSP: { - if (datcCb.speedTestCounter != 0) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - datcSpeedTestHandler(connId); - } - } break; - - case ATTC_HANDLE_VALUE_NTF: - datcValueNtf((attEvt_t *)pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datcRestoreResolvingList(pMsg); - datcRestartScanning(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_SCAN_START_IND: - datcScanStart(pMsg); - uiEvent = APP_UI_SCAN_START; - break; - - case DM_SCAN_STOP_IND: - datcScanStop(pMsg); - uiEvent = APP_UI_SCAN_STOP; - break; - - case DM_SCAN_REPORT_IND: - datcScanReport(pMsg); - break; - - case DM_CONN_OPEN_IND: - datcOpen(pMsg); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - datcRestartScanning(); - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - APP_TRACE_INFO0("Sending OOB data"); - oobConnId = connId; - - /* Start the TX to send the local OOB data */ - PalUartWriteData(PAL_UART_ID_CHCI, datcOobCfg->localRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datcPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case SCAN_START_EVT: - datcRestartScanningHandler(); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatcHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - - /* store handler ID */ - datcCb.handlerId = handlerId; - - /* set handle list length */ - datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; - - datcCb.btnConnId = 1; - /* Set configuration pointers */ - pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; - pAppSecCfg = (appSecCfg_t *)&datcSecCfg; - pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; - pAppCfg = (appCfg_t *)&datcAppCfg; - pSmpCfg = (smpCfg_t *)&datcSmpCfg; - pAttCfg = (attCfg_t *)&datcAttCfg; - - /* Initialize application framework */ - AppMasterInit(); - AppDiscInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup scan start timer */ - datcCb.scanTimer.handlerId = handlerId; - datcCb.scanTimer.msg.event = SCAN_START_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - if (datcCb.speedTestCounter == 0 && pMsg->event != DM_SCAN_REPORT_IND) { - APP_TRACE_INFO1("Datc got evt %d", pMsg->event); - } - - if (pMsg->event <= ATT_CBACK_END) { /* process ATT messages */ - /* process discovery-related ATT messages */ - AppDiscProcAttMsg((attEvt_t *)pMsg); - - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ - /* process advertising and connection-related messages */ - AppMasterProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppMasterSecProcDmMsg((dmEvt_t *)pMsg); - - /* process discovery-related messages */ - AppDiscProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datcProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the pointers into the handle list. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcInitSvcHdlList() -{ - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++) { - /*! Pointers into handle list for each service's handles */ - pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; - pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; - pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; - pSecDatHdlList[i] = &datcCb.hdlList[i][DATC_DISC_SDS_START]; - } -} -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void) -{ - /* Initialize handle pointers */ - datcInitSvcHdlList(); - - /* Register for stack callbacks */ - DmRegister(datcDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); - AttRegister(datcAttCback); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datcBtnCback); - - /* Register for app framework discovery callbacks */ - AppDiscRegister(datcDiscCback); - - /* Initialize attribute server database */ - SvcCoreAddGroup(); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE_datc/main.c b/Examples/MAX32690/BLE_datc/main.c deleted file mode 100644 index b6a403c67d0..00000000000 --- a/Examples/MAX32690/BLE_datc/main.c +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE Data Client for unformatted data exchange. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "datc_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDatc(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT0_IRQHandler(void) -{ - MXC_WUT_Handler(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Increase the default ACL buffer size and count */ - mainLlRtCfg.numTxBufs = 8; - mainLlRtCfg.numRxBufs = 8; - mainLlRtCfg.maxAclLen = 256; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDatc(); - DatcStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_datc/sdsc_api.h b/Examples/MAX32690/BLE_datc/sdsc_api.h deleted file mode 100644 index 58502dee8e3..00000000000 --- a/Examples/MAX32690/BLE_datc/sdsc_api.h +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/*************************************************************************************************/ -/*! Secure Data Service Client -* Implements the necessary handles list to perform service -* and characteristic discovery of custom secured service . -* - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32690_BLE_DATC_SDSC_API_H_ -#define EXAMPLES_MAX32690_BLE_DATC_SDSC_API_H_ - -#include "att_api.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ -enum { - SEC_DAT_HDL_IDX, /*!< \brief Secured data */ - SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ - SEC_HDL_LIST_LEN /*!< \brief Handle list length */ -}; - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for Secured service . - * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_DATC_SDSC_API_H_ diff --git a/Examples/MAX32690/BLE_datc/sdsc_main.c b/Examples/MAX32690/BLE_datc/sdsc_main.c deleted file mode 100644 index b20cdced9cd..00000000000 --- a/Examples/MAX32690/BLE_datc/sdsc_main.c +++ /dev/null @@ -1,92 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_assert.h" -#include "util/bstream.h" -#include "app_api.h" -#include "sdsc_api.h" - -/************************************************************************************************** - Secure Service and Data UUIDs -**************************************************************************************************/ -#define ATT_UUID_SEC_DATA_SERVICE \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_SEC_DATA \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/* UUIDs */ -static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ -static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ - -/* Characteristics for discovery */ - -/*! Secured data */ -static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; - -/*! Secured data descriptor */ -static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, - ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; - -/*! List of characteristics to be discovered; order matches handle index enumeration */ -static const attcDiscChar_t *secDatDiscCharList[] = { - &secDat, /*! Secured data */ - &secDatCcc /*! Secured data descriptor */ -}; - -/* sanity check: make sure handle list length matches characteristic list length */ -WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); - -/*************************************************************************************************/ -/*! - * \brief Perform service and characteristic discovery for custom secured service . - * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. - * If discovery is successful the handles of discovered characteristics and - * descriptors will be set in pHdlList. - * - * \param connId Connection identifier. - * \param pHdlList Characteristic handle list. - * - * \return None. - */ -/*************************************************************************************************/ -void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) -{ - AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, - (attcDiscChar_t **)secDatDiscCharList, pHdlList); -} diff --git a/Examples/MAX32690/BLE_dats/.vscode/flash.gdb b/Examples/MAX32690/BLE_dats/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_dats/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_dats/Makefile b/Examples/MAX32690/BLE_dats/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_dats/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_dats/dats_api.h b/Examples/MAX32690/BLE_dats/dats_api.h deleted file mode 100644 index 284e90d9f9d..00000000000 --- a/Examples/MAX32690/BLE_dats/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_DATS_DATS_API_H_ -#define EXAMPLES_MAX32690_BLE_DATS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32690/BLE_dats/dats_main.c b/Examples/MAX32690/BLE_dats/dats_main.c deleted file mode 100644 index 7d8ac53855b..00000000000 --- a/Examples/MAX32690/BLE_dats/dats_main.c +++ /dev/null @@ -1,1028 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "pal_uart.h" -#include "tmr.h" -#include "svc_sds.h" -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_1M 1 -#define DATS_PHY_2M 2 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 60000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_SEC_DAT_CCC_IDX, - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! Configurable security parameters to set -* pairing and authentication requirements. -* -* Authentication and bonding flags -* -DM_AUTH_BOND_FLAG : Bonding requested -* -DM_AUTH_SC_FLAG : LE Secure Connections requested -* -DM_AUTH_KP_FLAG : Keypress notifications requested -* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested - pairing method is determined by IO capabilities below -* -* Initiator key distribution flags -* -DM_KEY_DIST_LTK : Distribute LTK used for encryption -* -DM_KEY_DIST_IRK : Distribute IRK used for privacy -* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data -*/ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG | DM_AUTH_MITM_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/* OOB UART parameters */ -#define OOB_BAUD 115200 -#define OOB_FLOW FALSE - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/* OOB Connection identifier */ -dmConnId_t oobConnId; - -/*! SMP security parameter configuration -* -* I/O Capability Codes to be set for -* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets -* when the MITM flag is set in Configurable security parameters above. -* -SMP_IO_DISP_ONLY : Display only. -* -SMP_IO_DISP_YES_NO : Display yes/no. -* -SMP_IO_KEY_ONLY : Keyboard only. -* -SMP_IO_NO_IN_NO_OUT : No input, no output. -* -SMP_IO_KEY_DISP : Keyboard display. -*/ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_KEY_ONLY, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update. set to zero to disable */ - (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'D', - 'A', - 'T', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* DATS_WP_DAT_CCC_IDX */ - { SEC_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_SEC_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief OOB RX callback. - * - * \return None. - */ -/*************************************************************************************************/ -void oobRxCback(void) -{ - if (datsOobCfg != NULL) { - DmSecSetOob(oobConnId, datsOobCfg); - } - - DmSecAuthRsp(oobConnId, 0, NULL); -} - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId) -{ - uint8_t str[] = "hello back"; - - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - - /* Setup HCI UART for OOB */ - PalUartConfig_t hciUartCfg; - hciUartCfg.rdCback = oobRxCback; - hciUartCfg.wrCback = NULL; - hciUartCfg.baud = OOB_BAUD; - hciUartCfg.hwFlow = OOB_FLOW; - - PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - memset(datsOobCfg, 0, sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - - /* Start the RX for the peer OOB data */ - PalUartReadData(PAL_UART_ID_CHCI, datsOobCfg->peerRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - } else { - APP_TRACE_ERR0("Error allocating OOB data"); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datsCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - static uint32_t packetCount = 0; - - if (len < 64) { - /* print received data if not a speed test message */ - APP_TRACE_INFO0((const char *)pValue); - - /* send back some data */ - datsSendData(connId); - } else { - APP_TRACE_INFO1("Speed test packet Count [%d]", packetCount++); - if (packetCount >= 5000) { - packetCount = 0; - } - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for secured data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t secDatWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - uint8_t str[] = "Secure data received!"; - APP_TRACE_INFO0(">> Received secure data <<"); - APP_TRACE_INFO0((const char *)pValue); - - /* Write data recevied into characteristic */ - AttsSetAttr(SEC_DAT_HDL, len, (uint8_t *)pValue); - /* if notifications are enabled send one */ - if (AttsCccEnabled(connId, DATS_SEC_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, SEC_DAT_HDL, sizeof(str), str); - } - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - if (datsSecCfg.initiateSec) { - AppSlaveSecurityReq((dmConnId_t)pMsg->hdr.param); - } - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - APP_TRACE_INFO0("Sending OOB data"); - oobConnId = connId; - - /* Start the TX to send the local OOB data */ - PalUartWriteData(PAL_UART_ID_CHCI, datsOobCfg->localRandom, - (SMP_RAND_LEN + SMP_CONFIRM_LEN)); - - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /*register secure data write callback */ - SvcSecDataCbackRegister(NULL, secDatWriteCback); - /* Register secure data service */ - SvcSecDataAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE_dats/main.c b/Examples/MAX32690/BLE_dats/main.c deleted file mode 100644 index 5913aba6d3e..00000000000 --- a/Examples/MAX32690/BLE_dats/main.c +++ /dev/null @@ -1,273 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE Data Server for unformatted data exchange. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "dats_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDats(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT0_IRQHandler(void) -{ - MXC_WUT_Handler(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDats(); - DatsStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_dats/services/svc_sds.c b/Examples/MAX32690/BLE_dats/services/svc_sds.c deleted file mode 100644 index 1b5127215b0..00000000000 --- a/Examples/MAX32690/BLE_dats/services/svc_sds.c +++ /dev/null @@ -1,158 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#include "wsf_types.h" -#include "att_api.h" -#include "wsf_trace.h" -#include "util/bstream.h" -#include "svc_ch.h" -#include "svc_sds.h" -#include "svc_cfg.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Characteristic read/write permissions */ -#ifndef SEC_DATA_PERMIT_READ -#define SEC_DATA_PERMIT_READ SVC_SEC_PERMIT_READ -#endif - -#ifndef SEC_DATA_PERMIT_READ_ENC -#define SEC_DATA_PERMIT_READ_ENC ATTS_PERMIT_READ_ENC -#endif - -#ifndef SEC_DATA_PERMIT_READ_AUTH -#define SEC_DATA_PERMIT_READ_AUTH ATTS_PERMIT_READ_AUTH -#endif - -#ifndef SEC_DATA_PERMIT_WRITE -#define SEC_DATA_PERMIT_WRITE SVC_SEC_PERMIT_WRITE -#endif - -#ifndef SEC_DATA_PERMIT_WRITE_ENC -#define SEC_DATA_PERMIT_WRITE_ENC ATTS_PERMIT_WRITE_ENC -#endif - -#ifndef SEC_DATA_PERMIT_WRITE_AUTH -#define SEC_DATA_PERMIT_WRITE_AUTH ATTS_PERMIT_WRITE_AUTH -#endif - -/************************************************************************************************** - Static Variables -**************************************************************************************************/ - -/* UUIDs */ -static const uint8_t svcSecDatUuid[] = { ATT_UUID_SEC_DATA }; - -/* Proprietary service declaration */ -static const uint8_t secDatSvc[] = { ATT_UUID_SEC_DATA_SERVICE }; -static const uint16_t secDatLenSvc = sizeof(secDatSvc); - -/* Secured data characteristic */ -static const uint8_t secDatCh[] = { ATT_PROP_NOTIFY | ATT_PROP_WRITE_NO_RSP | ATT_PROP_WRITE, - UINT16_TO_BYTES(SEC_DAT_HDL), ATT_UUID_SEC_DATA }; - -static const uint16_t secDatLenDatCh = sizeof(secDatCh); - -/* Secured data */ -static const uint8_t secDatVal[] = { 0 }; -static const uint16_t secDatLenDat = sizeof(secDatVal); - -/* Secured data client characteristic configuration */ -static uint8_t secDatChCcc[] = { UINT16_TO_BYTES(0x0000) }; -static const uint16_t secDatLenDatChCcc = sizeof(secDatChCcc); - -/* Attribute list for Secured Data group */ -static const attsAttr_t secDatList[] = { - /* Service declaration */ - { attPrimSvcUuid, (uint8_t *)secDatSvc, (uint16_t *)&secDatLenSvc, sizeof(secDatSvc), 0, - ATTS_PERMIT_READ }, - - /* Secure data characteristic declaration */ - { attChUuid, (uint8_t *)secDatCh, (uint16_t *)&secDatLenDatCh, sizeof(secDatCh), 0, - ATTS_PERMIT_READ }, - - /* Secure data characteristic value */ - { svcSecDatUuid, (uint8_t *)secDatVal, (uint16_t *)&secDatLenDat, ATT_VALUE_MAX_LEN, - (ATTS_SET_UUID_128 | ATTS_SET_VARIABLE_LEN | ATTS_SET_WRITE_CBACK), - SEC_DATA_PERMIT_WRITE | SEC_DATA_PERMIT_WRITE_ENC | SEC_DATA_PERMIT_WRITE_AUTH }, - - /*Secure data characteristic value descriptor*/ - { attCliChCfgUuid, (uint8_t *)secDatChCcc, (uint16_t *)&secDatLenDatChCcc, sizeof(secDatChCcc), - ATTS_SET_CCC, (ATTS_PERMIT_READ | ATTS_PERMIT_WRITE) } -}; - -/* Secured Data group structure */ -static attsGroup_t svcSecDatGroup = { NULL, (attsAttr_t *)secDatList, NULL, - NULL, SEC_DATA_START_HDL, SEC_DATA_END_HDL }; - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataAddGroup(void) -{ - AttsAddGroup(&svcSecDatGroup); -} - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataRemoveGroup(void) -{ - AttsRemoveGroup(SEC_DATA_START_HDL); -} - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) -{ - svcSecDatGroup.readCback = readCback; - svcSecDatGroup.writeCback = writeCback; -} diff --git a/Examples/MAX32690/BLE_dats/services/svc_sds.h b/Examples/MAX32690/BLE_dats/services/svc_sds.h deleted file mode 100644 index 051e7d8da1a..00000000000 --- a/Examples/MAX32690/BLE_dats/services/svc_sds.h +++ /dev/null @@ -1,120 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/*************************************************************************************************/ -/*! Secure Data Service -* Implementation of a characteristic with elevated security features. -* The connection must be encrypted with an authenticated key to read/write -* the attributes value. -* - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32690_BLE_DATS_SERVICES_SVC_SDS_H_ -#define EXAMPLES_MAX32690_BLE_DATS_SERVICES_SVC_SDS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Service and Characteristic UUIDs -**************************************************************************************************/ -#define ATT_UUID_SEC_DATA_SERVICE \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_SEC_DATA \ - 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 - -/************************************************************************************************** - Handle Ranges -**************************************************************************************************/ -/*! \brief Secured Data Service */ -#define SEC_DATA_START_HDL 0x300 /*!< \brief Start handle. */ -#define SEC_DATA_END_HDL (SEC_DAT_MAX_HDL - 1) /*!< \brief End handle. */ - -/************************************************************************************************** - Handles -**************************************************************************************************/ - -/*! \brief Secured Service Handles */ -enum { - SEC_DATA_SVC_HDL = SEC_DATA_START_HDL, /*!< \brief Secured Data service declaration */ - SEC_DAT_CH_HDL, /*!< \brief Secured Data characteristic */ - SEC_DAT_HDL, /*!< \brief Secured Data */ - SEC_DAT_CH_CCC_HDL, /*!< \brief Secured Data client characteristic configuration */ - SEC_DAT_MAX_HDL /*!< \brief Maximum handle. */ -}; -/**@}*/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataAddGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataRemoveGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); - -/*! \} */ /* WP_SERVICE */ - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_DATS_SERVICES_SVC_SDS_H_ diff --git a/Examples/MAX32690/BLE_fcc/.vscode/flash.gdb b/Examples/MAX32690/BLE_fcc/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_fcc/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_fcc/Makefile b/Examples/MAX32690/BLE_fcc/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_fcc/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_fcc/main.c b/Examples/MAX32690/BLE_fcc/main.c deleted file mode 100644 index 9fb8aa504ce..00000000000 --- a/Examples/MAX32690/BLE_fcc/main.c +++ /dev/null @@ -1,535 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief BLE project with simple serial console for FCC testing - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include -#include "ll_init_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_cs.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "tmr.h" - -/************************************************************************************************** - Definitions -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -#define FREQ_HOP_PERIOD_US 20000 - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/*! \brief Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -static uint8_t phy = LL_PHY_LE_1M; -static uint8_t phy_str[16]; -static uint8_t txFreqHopCh; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Physical layer functions. */ -extern void llc_api_set_txpower(int8_t power); -extern void dbb_seq_select_rf_channel(uint32_t rf_channel); -extern void llc_api_tx_ldo_setup(void); -extern void dbb_seq_tx_enable(void); -extern void dbb_seq_tx_disable(void); - -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPhyStr(uint8_t phy) -{ - switch (phy) { - case LL_TEST_PHY_LE_1M: - default: - memcpy(phy_str, "1M PHY", 7); - break; - case LL_TEST_PHY_LE_2M: - memcpy(phy_str, "2M PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S8: - memcpy(phy_str, "S8 PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S2: - memcpy(phy_str, "S2 PHY", 7); - break; - } - return phy_str; -} - -/*************************************************************************************************/ -/*! - * \fn Timer 2 interrupts handler. - * - * \brief Controls the frequency hopping. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void TMR2_IRQHandler(void) -{ - int res; - - MXC_TMR_TO_Clear(MXC_TMR2); - - /* Start the next channel */ - res = LlEnhancedTxTest(txFreqHopCh++, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - if (res != LL_SUCCESS) - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - - /* Wrap the channels */ - if (txFreqHopCh == 40) - txFreqHopCh = 0; - - /* Restart the timeout */ - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); -} - -/*************************************************************************************************/ -/*! - * \fn Usage statement - * - * \brief Prints the usage statement. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void printUsage(void) -{ - APP_TRACE_INFO0("Usage: "); - APP_TRACE_INFO0(" (0) Transmit on RF channel 0 (2402 MHz)"); - APP_TRACE_INFO0(" (1) Transmit on RF channel 19 (2440 MHz)"); - APP_TRACE_INFO0(" (2) Transmit on RF channel 39 (2480 MHz)"); - APP_TRACE_INFO0(" (3) Receive on RF channel 39 (2480 MHz)"); - APP_TRACE_INFO0(" (4) Set Transmit power"); - APP_TRACE_INFO0(" (5) Enable constant TX"); - APP_TRACE_INFO0(" (6) Disable constant TX -- MUST be called after (5)"); - /* APP_TRACE_INFO0(" (7) Set PA value"); */ - APP_TRACE_INFO0(" (8) Set PHY"); - APP_TRACE_INFO0(" (9) TX Frequency Hop"); - APP_TRACE_INFO0(" (e) End transmission -- MUST be used after each (0-3, 9)"); - APP_TRACE_INFO0(" (u) Print usage"); -} - -/*************************************************************************************************/ -/*! - * \fn Process the Console RX - * - * \brief State machine for the console inputs. - * - * \param rxByte Character received from the console. - * - * \return None. - */ -/*************************************************************************************************/ -static void processConsoleRX(uint8_t rxByte) -{ - int res; - - /* Holds the state of the command and the parameter */ - static uint8_t cmd = 0; - static uint8_t param = 0; - - /* Determines if the incoming character is a command or a parameter */ - if (cmd == 0) - cmd = rxByte; - else - param = rxByte; - - switch (cmd) { - case '0': - - APP_TRACE_INFO1("Transmit RF channel 0, 255 bytes/pkt, 0xAA, %s, forever ..", - getPhyStr(phy)); - res = LlEnhancedTxTest(0, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '1': - - APP_TRACE_INFO1("Transmit RF channel 19, 255 bytes/pkt, 0xAA, %s, forever ..", - getPhyStr(phy)); - res = LlEnhancedTxTest(19, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '2': - - APP_TRACE_INFO1("Transmit RF channel 39, 255 bytes/pkt, 0xAA, %s, forever ..", - getPhyStr(phy)); - res = LlEnhancedTxTest(39, 255, LL_TEST_PKT_TYPE_AA, phy, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '3': - - APP_TRACE_INFO1("Receive RF channel 39, %s, forever ..", getPhyStr(phy)); - res = LlEnhancedRxTest(39, phy, 0, 0); - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - cmd = 0; - break; - - case '4': - - if (param == 0) { - APP_TRACE_INFO0("Select transmit power"); - APP_TRACE_INFO0(" 0: -10 dBm"); - APP_TRACE_INFO0(" 1: 0 dBm"); - APP_TRACE_INFO0(" 2: 4.5 dBm"); - break; - } - - switch (param) { - case '0': - llc_api_set_txpower(-10); - LlSetAdvTxPower(-10); - APP_TRACE_INFO0("Power set to -10 dBm"); - break; - case '1': - llc_api_set_txpower(0); - LlSetAdvTxPower(0); - APP_TRACE_INFO0("Power set to 0 dBm"); - break; - case '2': - llc_api_set_txpower(4); - LlSetAdvTxPower(4); - APP_TRACE_INFO0("Power set to 4.5 dBm"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - cmd = 0; - param = 0; - break; - - case '5': - if (param == 0) { - APP_TRACE_INFO0("Select transmit channel"); - APP_TRACE_INFO0(" 0: 0"); - APP_TRACE_INFO0(" 1: 19"); - APP_TRACE_INFO0(" 2: 39"); - break; - } - - switch (param) { - case '0': - dbb_seq_select_rf_channel(0); - APP_TRACE_INFO0("Channel set to 0"); - break; - case '1': - dbb_seq_select_rf_channel(19); - APP_TRACE_INFO0("Channel set to 19"); - break; - case '2': - dbb_seq_select_rf_channel(39); - APP_TRACE_INFO0("Channel set to 39"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - - APP_TRACE_INFO0("Starting TX"); - - PalBbEnable(); - - llc_api_tx_ldo_setup(); - - /* Enable constant TX */ - dbb_seq_tx_enable(); - - cmd = 0; - param = 0; - break; - - case '6': - APP_TRACE_INFO0("Disabling TX"); - - /* Disable constant TX */ - dbb_seq_tx_disable(); - - PalBbDisable(); - - cmd = 0; - break; - - case '8': - if (param == 0) { - /* Set the PHY */ - APP_TRACE_INFO0("Select PHY"); - APP_TRACE_INFO0("1: 1M"); - APP_TRACE_INFO0("2: 2M"); - APP_TRACE_INFO0("3: S8"); - APP_TRACE_INFO0("4: S2"); - break; - } - - switch (param) { - case '1': - phy = LL_TEST_PHY_LE_1M; - APP_TRACE_INFO0("PHY set to 1M"); - break; - case '2': - phy = LL_TEST_PHY_LE_2M; - APP_TRACE_INFO0("PHY set to 2M"); - break; - case '3': - phy = LL_TEST_PHY_LE_CODED_S8; - APP_TRACE_INFO0("PHY set to S8"); - break; - case '4': - phy = LL_TEST_PHY_LE_CODED_S2; - APP_TRACE_INFO0("PHY set to S2"); - break; - default: - APP_TRACE_INFO0("Invalid selection"); - break; - } - - cmd = 0; - param = 0; - break; - case '9': - /* Frequency hopping TX */ - APP_TRACE_INFO0("Starting frequency hopping"); - NVIC_EnableIRQ(TMR2_IRQn); - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); - cmd = 0; - break; - - case 'E': - case 'e': - - APP_TRACE_INFO0("End test"); - MXC_TMR_Stop(MXC_TMR2); - LlEndTest(NULL); - cmd = 0; - break; - - case 'U': - case 'u': - printUsage(); - cmd = 0; - break; - - default: - APP_TRACE_INFO0("Invalid selection"); - cmd = 0; - param = 0; - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.1 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Use single pool for data buffers. */ -#if (BT_VER > 9) - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! - * \brief Check and service tokens (Trace and sniffer). - * - * \return TRUE if there is token pending. - */ -/*************************************************************************************************/ -static bool_t mainCheckServiceTokens(void) -{ - bool_t eventPending = FALSE; - -#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) - eventPending = LhciIsEventPending(); -#endif - -#if WSF_TOKEN_ENABLED == TRUE - /* Allow only a single token to be processed at a time. */ - if (!eventPending) - eventPending = WsfTokenService(); -#endif - -#if (BB_SNIFFER_ENABLED == TRUE) - /* Service one sniffer packet, if in the buffer. */ - if (!eventPending) - eventPending = LhciSnifferHandler(); -#endif - - return eventPending; -} - -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); -#endif - - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - - WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); - WsfOsRegisterSleepCheckFunc(ChciTrService); - - /* Register the UART RX request */ - WsfBufIoUartRegister(processConsoleRX); - - printUsage(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_fit/.vscode/flash.gdb b/Examples/MAX32690/BLE_fit/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_fit/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_fit/Makefile b/Examples/MAX32690/BLE_fit/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_fit/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_fit/fit_api.h b/Examples/MAX32690/BLE_fit/fit_api.h deleted file mode 100644 index cee64cd68f9..00000000000 --- a/Examples/MAX32690/BLE_fit/fit_api.h +++ /dev/null @@ -1,80 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Fitness sample application interface. - * - * Copyright (c) 2011-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_FIT_FIT_API_H_ -#define EXAMPLES_MAX32690_BLE_FIT_FIT_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -#ifndef FIT_CONN_MAX -#define FIT_CONN_MAX 1 -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void FitStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_FIT_FIT_API_H_ diff --git a/Examples/MAX32690/BLE_fit/fit_main.c b/Examples/MAX32690/BLE_fit/fit_main.c deleted file mode 100644 index 6eaf330eec6..00000000000 --- a/Examples/MAX32690/BLE_fit/fit_main.c +++ /dev/null @@ -1,799 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Fitness sample application for the following profiles: - * Heart Rate profile - * - * Copyright (c) 2011-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "hci_api.h" -#include "dm_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "app_hw.h" -#include "app_main.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_hrs.h" -#include "svc_dis.h" -#include "svc_batt.h" -#include "svc_rscs.h" -#include "gatt/gatt_api.h" -#include "bas/bas_api.h" -#include "hrps/hrps_api.h" -#include "rscp/rscp_api.h" -#include "fit_api.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! WSF message event starting value */ -#define FIT_MSG_START 0xA0 - -/* Default Running Speed and Cadence Measurement period (seconds) */ -#define FIT_DEFAULT_RSCM_PERIOD 1 - -/*! WSF message event enumeration */ -enum { - FIT_HR_TIMER_IND = FIT_MSG_START, /*! Heart rate measurement timer expired */ - FIT_BATT_TIMER_IND, /*! Battery measurement timer expired */ - FIT_RUNNING_TIMER_IND /*! Running speed and cadence measurement timer expired */ -}; - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 - -/************************************************************************************************** - Data Types -**************************************************************************************************/ - -/*! Application message type */ -typedef union { - wsfMsgHdr_t hdr; - dmEvt_t dm; - attsCccEvt_t ccc; - attEvt_t att; -} fitMsg_t; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t fitAdvCfg = { - { 60000, 0, 0 }, /*! Advertising durations in ms */ - { 800, 0, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t fitSlaveCfg = { - FIT_CONN_MAX, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t fitSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - 0, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t fitUpdateCfg = { - 6000, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - 640, /*! Minimum connection interval in 1.25ms units */ - 800, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 900, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! heart rate measurement configuration */ -static const hrpsCfg_t fitHrpsCfg = { - 2000 /*! Measurement timer expiration period in ms */ -}; - -/*! battery measurement configuration */ -static const basCfg_t fitBasCfg = { - 30, /*! Battery measurement timer expiration period in seconds */ - 1, /*! Perform battery measurement after this many timer periods */ - 100 /*! Send battery level notification to peer when below this level. */ -}; - -/*! SMP security parameter configuration */ -static const smpCfg_t fitSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t fitAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! tx power */ - 2, /*! length */ - DM_ADV_TYPE_TX_POWER, /*! AD type */ - 0, /*! tx power */ - - /*! service UUID list */ - 9, /*! length */ - DM_ADV_TYPE_16_UUID, /*! AD type */ - UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), - UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), UINT16_TO_BYTES(ATT_UUID_BATTERY_SERVICE) -}; - -/*! scan data, discoverable mode */ -static const uint8_t fitScanDataDisc[] = { - /*! device name */ - 4, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'F', 'i', 't' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! enumeration of client characteristic configuration descriptors */ -enum { - FIT_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - FIT_HRS_HRM_CCC_IDX, /*! Heart rate service, heart rate monitor characteristic */ - FIT_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ - FIT_RSCS_SM_CCC_IDX, /*! Runninc speed and cadence measurement characteristic */ - FIT_NUM_CCC_IDX -}; - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* FIT_GATT_SC_CCC_IDX */ - { HRS_HRM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_HRS_HRM_CCC_IDX */ - { BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_BATT_LVL_CCC_IDX */ - { RSCS_RSM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* FIT_RSCS_SM_CCC_IDX */ -}; - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! WSF handler ID */ -wsfHandlerId_t fitHandlerId; - -/* WSF Timer to send running speed and cadence measurement data */ -wsfTimer_t fitRscmTimer; - -/* Running Speed and Cadence Measurement period - Can be changed at runtime to vary period */ -static uint16_t fitRscmPeriod = FIT_DEFAULT_RSCM_PERIOD; - -/* Heart Rate Monitor feature flags */ -static uint8_t fitHrmFlags = CH_HRM_FLAGS_VALUE_8BIT | CH_HRM_FLAGS_ENERGY_EXP; - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void fitCccCback(attsCccEvt_t *pEvt) -{ - attsCccEvt_t *pMsg; - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - } - - if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { - memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); - WsfMsgSend(fitHandlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! -* \brief Send a Running Speed and Cadence Measurement Notification. -* -* \param connId connection ID -* -* \return None. -*/ -/*************************************************************************************************/ -static void fitSendRunningSpeedMeasurement(dmConnId_t connId) -{ - if (AttsCccEnabled(connId, FIT_RSCS_SM_CCC_IDX)) { - static uint8_t walk_run = 1; - - /* TODO: Set Running Speed and Cadence Measurement Parameters */ - - RscpsSetParameter(RSCP_SM_PARAM_SPEED, 1); - RscpsSetParameter(RSCP_SM_PARAM_CADENCE, 2); - RscpsSetParameter(RSCP_SM_PARAM_STRIDE_LENGTH, 3); - RscpsSetParameter(RSCP_SM_PARAM_TOTAL_DISTANCE, 4); - - /* Toggle running/walking */ - walk_run = walk_run ? 0 : 1; - RscpsSetParameter(RSCP_SM_PARAM_STATUS, walk_run); - - RscpsSendSpeedMeasurement(connId); - } - - /* Configure and start timer to send the next measurement */ - fitRscmTimer.msg.event = FIT_RUNNING_TIMER_IND; - fitRscmTimer.msg.status = FIT_RSCS_SM_CCC_IDX; - fitRscmTimer.handlerId = fitHandlerId; - fitRscmTimer.msg.param = connId; - - WsfTimerStartSec(&fitRscmTimer, fitRscmPeriod); -} - -/*************************************************************************************************/ -/*! - * \brief Process CCC state change. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitProcCccState(fitMsg_t *pMsg) -{ - APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, - pMsg->ccc.idx); - - /* handle heart rate measurement CCC */ - if (pMsg->ccc.idx == FIT_HRS_HRM_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - HrpsMeasStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_HR_TIMER_IND, FIT_HRS_HRM_CCC_IDX); - } else { - HrpsMeasStop((dmConnId_t)pMsg->ccc.hdr.param); - } - return; - } - - /* handle running speed and cadence measurement CCC */ - if (pMsg->ccc.idx == FIT_RSCS_SM_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - } else { - WsfTimerStop(&fitRscmTimer); - } - return; - } - - /* handle battery level CCC */ - if (pMsg->ccc.idx == FIT_BATT_LVL_CCC_IDX) { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - BasMeasBattStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_BATT_TIMER_IND, - FIT_BATT_LVL_CCC_IDX); - } else { - BasMeasBattStop((dmConnId_t)pMsg->ccc.hdr.param); - } - return; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection close. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitClose(fitMsg_t *pMsg) -{ - /* stop heart rate measurement */ - HrpsMeasStop((dmConnId_t)pMsg->hdr.param); - - /* stop battery measurement */ - BasMeasBattStop((dmConnId_t)pMsg->hdr.param); - - /* Stop running speed and cadence timer */ - WsfTimerStop(&fitRscmTimer); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitSetup(fitMsg_t *pMsg) -{ - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(fitAdvDataDisc), (uint8_t *)fitAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(fitScanDataDisc), (uint8_t *)fitScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, 0, NULL); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, 0, NULL); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitBtnCback(uint8_t btn) -{ - dmConnId_t connId; - static uint8_t heartRate = 78; /* for testing/demonstration */ - - /* button actions when connected */ - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* increment the heart rate */ - AppHwHrmTest(++heartRate); - break; - - case APP_UI_BTN_1_MED: - break; - - case APP_UI_BTN_1_LONG: - AppConnClose(connId); - break; - - case APP_UI_BTN_2_SHORT: - /* decrement the heart rate */ - AppHwHrmTest(--heartRate); - break; - - case APP_UI_BTN_2_MED: - /* Toggle HRM Sensor DET flags */ - if (!(fitHrmFlags & (CH_HRM_FLAGS_SENSOR_DET | CH_HRM_FLAGS_SENSOR_NOT_DET))) { - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_DET; - } else if (fitHrmFlags & CH_HRM_FLAGS_SENSOR_DET) { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_DET; - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_NOT_DET; - } else { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_NOT_DET; - } - - HrpsSetFlags(fitHrmFlags); - break; - - case APP_UI_BTN_2_LONG: - /* Toggle HRM RR Interval feature flag */ - if (fitHrmFlags & CH_HRM_FLAGS_RR_INTERVAL) { - fitHrmFlags &= ~CH_HRM_FLAGS_RR_INTERVAL; - } else { - fitHrmFlags |= CH_HRM_FLAGS_RR_INTERVAL; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start or restart advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* enter discoverable and bondable mode */ - AppSetBondable(TRUE); - AppAdvStart(APP_MODE_DISCOVERABLE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - - /* restart advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_2_SHORT: - /* Toggle HRM Flag for 8 and 16 bit values */ - if (fitHrmFlags & CH_HRM_FLAGS_VALUE_16BIT) { - fitHrmFlags &= ~CH_HRM_FLAGS_VALUE_16BIT; - } else { - fitHrmFlags |= CH_HRM_FLAGS_VALUE_16BIT; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitProcMsg(fitMsg_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case FIT_RUNNING_TIMER_IND: - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - break; - - case FIT_HR_TIMER_IND: - HrpsProcMsg(&pMsg->hdr); - break; - - case FIT_BATT_TIMER_IND: - BasProcMsg(&pMsg->hdr); - break; - - case ATTS_HANDLE_VALUE_CNF: - HrpsProcMsg(&pMsg->hdr); - BasProcMsg(&pMsg->hdr); - break; - - case ATTS_CCC_STATE_IND: - fitProcCccState(pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - fitSetup(pMsg); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_SET_START_IND: - uiEvent = APP_UI_ADV_SET_START_IND; - break; - - case DM_ADV_SET_STOP_IND: - uiEvent = APP_UI_ADV_SET_STOP_IND; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - HrpsProcMsg(&pMsg->hdr); - BasProcMsg(&pMsg->hdr); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - switch (pMsg->dm.connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - fitClose(pMsg); - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - AppHandlePasskey(&pMsg->dm.authReq); - break; - - case DM_SEC_ECC_KEY_IND: - DmSecSetEccKey(&pMsg->dm.eccMsg.data.key); - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->dm.cnfInd); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - - case DM_HW_ERROR_IND: - uiEvent = APP_UI_HW_ERROR; - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("FitHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &fitScanDataDisc[2]); - - /* store handler ID */ - fitHandlerId = handlerId; - - /* Set configuration pointers */ - pAppAdvCfg = (appAdvCfg_t *)&fitAdvCfg; - pAppSlaveCfg = (appSlaveCfg_t *)&fitSlaveCfg; - pAppSecCfg = (appSecCfg_t *)&fitSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&fitUpdateCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set stack configuration pointers */ - pSmpCfg = (smpCfg_t *)&fitSmpCfg; - - /* initialize heart rate profile sensor */ - HrpsInit(handlerId, (hrpsCfg_t *)&fitHrpsCfg); - HrpsSetFlags(fitHrmFlags); - - /* initialize battery service server */ - BasInit(handlerId, (basCfg_t *)&fitBasCfg); -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Fit got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - fitProcMsg((fitMsg_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void FitStart(void) -{ - /* Register for stack callbacks */ - DmRegister(fitDmCback); - DmConnRegister(DM_CLIENT_ID_APP, fitDmCback); - AttRegister(fitAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(FIT_NUM_CCC_IDX, (attsCccSet_t *)fitCccSet, fitCccCback); - - /* Register for app framework callbacks */ - AppUiBtnRegister(fitBtnCback); - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcHrsCbackRegister(NULL, HrpsWriteCback); - SvcHrsAddGroup(); - SvcDisAddGroup(); - SvcBattCbackRegister(BasReadCback, NULL); - SvcBattAddGroup(); - SvcRscsAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(FIT_GATT_SC_CCC_IDX); - - /* Set running speed and cadence features */ - RscpsSetFeatures(RSCS_ALL_FEATURES); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE_fit/main.c b/Examples/MAX32690/BLE_fit/main.c deleted file mode 100644 index 6e0cb143e4e..00000000000 --- a/Examples/MAX32690/BLE_fit/main.c +++ /dev/null @@ -1,272 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth fitness device. Showcases heart rate, battery level, running speed and cadence. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "fit_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitFit(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT0_IRQHandler(void) -{ - MXC_WUT_Handler(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitFit(); - FitStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_mcs/.vscode/flash.gdb b/Examples/MAX32690/BLE_mcs/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_mcs/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_mcs/Makefile b/Examples/MAX32690/BLE_mcs/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_mcs/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_mcs/main.c b/Examples/MAX32690/BLE_mcs/main.c deleted file mode 100644 index 57168c815c4..00000000000 --- a/Examples/MAX32690/BLE_mcs/main.c +++ /dev/null @@ -1,218 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Maxim custom Bluetooth profile and service that advertises as "MCS" and accepts -connection requests. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "mcs_app_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitMcsApp(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); -#endif - - StackInitMcsApp(); - McsAppStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_mcs/mcs_app_api.h b/Examples/MAX32690/BLE_mcs/mcs_app_api.h deleted file mode 100644 index 811a442d954..00000000000 --- a/Examples/MAX32690/BLE_mcs/mcs_app_api.h +++ /dev/null @@ -1,85 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file mcs_app_api.h - * - * \brief Maxim Custom Service server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_MCS_MCS_APP_API_H_ -#define EXAMPLES_MAX32690_BLE_MCS_MCS_APP_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! WSF message event starting value */ -#define MCS_MSG_START 0xA0 - -/*! WSF message event enumeration */ -enum { - MCS_BUTTON_TIMER_IND = MCS_MSG_START, /*/< Button state BLE notify timer event */ - MCS_BUTTON_PRESS_DUR /*/< Button press duration timer event */ -}; - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_MCS_MCS_APP_API_H_ diff --git a/Examples/MAX32690/BLE_mcs/mcs_app_main.c b/Examples/MAX32690/BLE_mcs/mcs_app_main.c deleted file mode 100644 index a9bbb3b8374..00000000000 --- a/Examples/MAX32690/BLE_mcs/mcs_app_main.c +++ /dev/null @@ -1,793 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_mcs.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "mcs_app_api.h" -#include "mcs_api.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - MCS_APP_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - MCS_APP_BT_CCC_IDX, /*! MCS characteristic */ - MCS_APP_NUM_CCC_IDX -}; - -/************************************************************************************************** - Data Types -**************************************************************************************************/ - -/*! Application message type */ -typedef union { - wsfMsgHdr_t hdr; - dmEvt_t dm; - attsCccEvt_t ccc; - attEvt_t att; -} mcsMsg_t; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t mcsAppAdvCfg = { - { 30000, 0, 0 }, /*! Advertising durations in ms */ - { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t mcsAppSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t mcsAppSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - FALSE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t mcsAppSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t mcsAppSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t mcsAppUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update; set to zero to disable */ - 640, /*! Minimum connection interval in 1.25ms units */ - 800, /*! Maximum connection interval in 1.25ms units */ - 3, /*! Connection latency */ - 900, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t mcsAppAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t mcsAppAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t mcsAppScanDataDisc[] = { - /*! device name */ - 4, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'M', - 'C', - 'S', -}; - -/*! Mcs measurement configuration */ -static const mcsCfg_t mcsMcsCfg = { - 2, /*! Mcs measurement timer expiration period in seconds */ - 1, /*! Perform mcs measurement after this many timer periods */ - 3 /*! Send mcs level notification to peer when below this level. */ -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t mcsAppCccSet[MCS_APP_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, - DM_SEC_LEVEL_NONE }, /* MCS_APP_GATT_SC_CCC_IDX */ - { MCS_BUTTON_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* MCS_BUTTON_SM_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} mcsAppCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *mcsAppOobCfg; - -extern void setAdvTxPower(void); -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (mcsAppSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (mcsAppOobCfg == NULL) { - mcsAppOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (mcsAppOobCfg) { - Calc128Cpy(mcsAppOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(mcsAppOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - attsCccEvt_t *pMsg; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } - - if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { - memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); - WsfMsgSend(mcsAppCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process CCC state change. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppProcCccState(mcsMsg_t *pMsg) -{ - APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, - pMsg->ccc.idx); -} - -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void mcsAppPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void mcsAppPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection close. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppClose(dmEvt_t *pMsg) -{ - /* stop mcs measurement */ - McsButtonCheckStop((dmConnId_t)pMsg->hdr.param); -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void mcsAppDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - mcsAppCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(mcsAppAdvDataDisc), - (uint8_t *)mcsAppAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(mcsAppScanDataDisc), - (uint8_t *)mcsAppScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(mcsAppAdvDataDisc), - (uint8_t *)mcsAppAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(mcsAppScanDataDisc), - (uint8_t *)mcsAppScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - mcsAppSetup(pMsg); - } else { - mcsAppCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (mcsAppCb.restoringResList) { - /* Set the advertising peer address. */ - mcsAppPrivAddDevToResList(mcsAppCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(mcsAppCb.resListRestoreHdl); - - if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - mcsAppSetup(pMsg); - } - } else { - mcsAppPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTS_CCC_STATE_IND: - mcsAppProcCccState((mcsMsg_t *)pMsg); - break; - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - mcsAppRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - mcsAppClose(pMsg); - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill mcsAppOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (mcsAppOobCfg != NULL) { - DmSecSetOob(connId, mcsAppOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - mcsAppPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - mcsAppPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("McsAppHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &mcsAppScanDataDisc[2]); - - /* store handler ID */ - mcsAppCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&mcsAppSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&mcsAppAdvCfg; - pAppSecCfg = (appSecCfg_t *)&mcsAppSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&mcsAppUpdateCfg; - pSmpCfg = (smpCfg_t *)&mcsAppSmpCfg; - pAttCfg = (attCfg_t *)&mcsAppAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* initialize mcs server */ - McsInit(handlerId, (mcsCfg_t *)&mcsMcsCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppBtnCback(uint8_t btn) -{ - APP_TRACE_INFO1("mcsAppBtnCback; %d", btn); - McsSetFeatures(btn); -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void mcsAppWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("McsApp got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("McsApp got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - mcsAppProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void McsAppStart(void) -{ - /* Register for stack callbacks */ - DmRegister(mcsAppDmCback); - DmConnRegister(DM_CLIENT_ID_APP, mcsAppDmCback); - AttRegister(mcsAppAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(MCS_APP_NUM_CCC_IDX, (attsCccSet_t *)mcsAppCccSet, mcsAppCccCback); - - SvcMcsCbackRegister(NULL, McsWriteCback); - SvcMcsAddGroup(); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(MCS_APP_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(mcsAppBtnCback); - - WsfNvmInit(); - - WsfBufDiagRegister(mcsAppWsfBufDiagnostics); - - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE_mcs/profiles/mcs/mcs_api.h b/Examples/MAX32690/BLE_mcs/profiles/mcs/mcs_api.h deleted file mode 100644 index 82d4e317b27..00000000000 --- a/Examples/MAX32690/BLE_mcs/profiles/mcs/mcs_api.h +++ /dev/null @@ -1,116 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32690_BLE_MCS_PROFILES_MCS_MCS_API_H_ -#define EXAMPLES_MAX32690_BLE_MCS_PROFILES_MCS_MCS_API_H_ - -#include "wsf_types.h" -#include "att_api.h" -#include "app_api.h" -#include "svc_mcs.h" -#include "board.h" -#include "led.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Data Types -**************************************************************************************************/ -/*! \brief Maxim custom service configurable parameters */ -typedef struct { - wsfTimerTicks_t period; /*!< \brief Button timer expiration period in seconds */ - uint16_t count; /*!< \brief Perform button after this many timer periods */ - uint8_t threshold; /*!< \brief Send button notification to peer when below this level. */ -} mcsCfg_t; - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for maxim custom service Use this function as a parameter - * to SvcMcsCbackRegister(). - * - * \param connId DM connection identifier. - * \param handle ATT handle. - * \param operation ATT operation. - * \param offset Write offset. - * \param len Write length. - * \param pValue Value to write. - * \param pAttr Attribute to write. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr); - -/*************************************************************************************************/ -/*! - * \brief Setting characteristic value and send the button value to the peer device. - * - * \param features The button value. - * - * \return None. - */ -/*************************************************************************************************/ -void McsSetFeatures(uint8_t features); - -/*************************************************************************************************/ -/*! - * \brief Initialize the mcs server. - * - * \param handlerId WSF handler ID of the application using this service. - * \param pCfg mcs configurable parameters. - * - * \return None. - */ -/*************************************************************************************************/ -void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg); - -/*************************************************************************************************/ -/*! - * \brief Start periodic mcs button state read. This function starts a timer to perform - * periodic button read. - * - * \param connId DM connection identifier. - * \param timerEvt WSF event designated by the application for the timer. - * \param mcsCccIdx Index of mcs level CCC descriptor in CCC descriptor handle table. - * \param btnState State of the push button. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState); - -/*************************************************************************************************/ -/*! - * \brief Stop periodic mcs button read. - * - * \param connId DM connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStop(dmConnId_t connId); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_MCS_PROFILES_MCS_MCS_API_H_ diff --git a/Examples/MAX32690/BLE_mcs/profiles/mcs/mcs_main.c b/Examples/MAX32690/BLE_mcs/profiles/mcs/mcs_main.c deleted file mode 100644 index e3738ac8eb8..00000000000 --- a/Examples/MAX32690/BLE_mcs/profiles/mcs/mcs_main.c +++ /dev/null @@ -1,207 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include "mcs_api.h" -#include "app_ui.h" -#include "pal_led.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -#ifndef LED_RED -#define LED_RED 0 -#endif - -#ifndef LED_GREEN -#define LED_GREEN 1 -#endif - -#ifndef LED_BLUE -#define LED_BLUE LED_GREEN -#endif - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! \brief Connection control block */ -typedef struct { - dmConnId_t connId; /*! \brief Connection ID */ - bool_t mcsToSend; /*! \brief mcs measurement ready to be sent on this channel */ - uint8_t sentMcsBtnState; /*! \brief value of last sent mcs button state */ -} mcsConn_t; - -/*! \brief Control block */ -static struct { - mcsConn_t conn[DM_CONN_MAX]; /*! \brief connection control block */ - wsfTimer_t btnStateChkTimer; /*! \brief periodic check timer */ - mcsCfg_t cfg; /*! \brief configurable parameters */ - uint16_t currCount; /*! \brief current measurement period count */ - bool_t txReady; /*! \brief TRUE if ready to send notifications */ - uint8_t btnState; /*! \brief value of last button state */ -} mcsCb; - -/*************************************************************************************************/ -/*! - * \brief Return TRUE if no connections with active measurements. - * - * \return TRUE if no connections active. - */ -/*************************************************************************************************/ -static bool_t mcsNoConnActive(void) -{ - mcsConn_t *pConn = mcsCb.conn; - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++, pConn++) { - if (pConn->connId != DM_CONN_ID_NONE) { - return FALSE; - } - } - return TRUE; -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for maxim custom service. Use this function as a parameter - * to SvcMcsCbackRegister(). - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - AttsSetAttr(handle, sizeof(*pValue), (uint8_t *)pValue); - /* Turn LED on if non-zero value was written */ - bool on = *pValue != 0; - - /* Get LED ID */ - uint8_t ch = 0; - switch (handle) { - case MCS_R_HDL: - ch = LED_RED; - break; - case MCS_B_HDL: - ch = LED_BLUE; - break; - case MCS_G_HDL: - ch = LED_GREEN; - break; - } - - if (on) - LED_On(ch); - else - LED_Off(ch); - return ATT_SUCCESS; -} - -/*************************************************************************************************/ - -/*! - * \brief Setting characteristic value and send the button value to the peer device - * - * \return None. - */ -/*************************************************************************************************/ -void McsSetFeatures(uint8_t features) -{ - AttsSetAttr(MCS_BUTTON_HDL, sizeof(features), - (uint8_t *)&features); /*Setting mcsButtonVal characteristic value */ - dmConnId_t connId = AppConnIsOpen(); /*Getting connected */ - if (connId != DM_CONN_ID_NONE) { - AttsHandleValueNtf(connId, MCS_BUTTON_HDL, sizeof(features), - (uint8_t *)&features); /*Send notify */ - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the mcs server. - * - * \param handerId WSF handler ID of the application using this service. - * \param pCfg mcs configurable parameters. - * - * \return None. - */ -/*************************************************************************************************/ -void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg) -{ - mcsCb.btnStateChkTimer.handlerId = handlerId; - mcsCb.cfg = *pCfg; - - /* De-init the PAL LEDs so we can control them here */ - PalLedDeInit(); -} - -/*************************************************************************************************/ -/*! - * \brief Start periodic mcs button state check. This function starts a timer to perform - * periodic button checks. - * - * \param connId DM connection identifier. - * \param timerEvt WSF event designated by the application for the timer. - * \param mcsCccIdx Index of mcs button state CCC descriptor in CCC descriptor handle table. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState) -{ - /* if this is first connection */ - if (mcsNoConnActive()) { - /* initialize control block */ - mcsCb.btnStateChkTimer.msg.event = timerEvt; - mcsCb.btnStateChkTimer.msg.status = mcsCccIdx; - mcsCb.btnState = btnState; - mcsCb.currCount = mcsCb.cfg.count; - - /* start timer */ - WsfTimerStartSec(&mcsCb.btnStateChkTimer, mcsCb.cfg.period); - } - - /* set conn id and last sent button level */ - mcsCb.conn[connId - 1].connId = connId; - mcsCb.conn[connId - 1].sentMcsBtnState = btnState; -} - -/*************************************************************************************************/ -/*! - * \brief Stop periodic button state check. - * - * \param connId DM connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -void McsButtonCheckStop(dmConnId_t connId) -{ - /* clear connection */ - mcsCb.conn[connId - 1].connId = DM_CONN_ID_NONE; - mcsCb.conn[connId - 1].mcsToSend = FALSE; - - /* if no remaining connections */ - if (mcsNoConnActive()) { - /* stop timer */ - WsfTimerStop(&mcsCb.btnStateChkTimer); - } -} diff --git a/Examples/MAX32690/BLE_mcs/services/svc_mcs.c b/Examples/MAX32690/BLE_mcs/services/svc_mcs.c deleted file mode 100644 index 9c23868ae18..00000000000 --- a/Examples/MAX32690/BLE_mcs/services/svc_mcs.c +++ /dev/null @@ -1,173 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include "svc_mcs.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Characteristic read permissions */ -#ifndef MCS_SEC_PERMIT_READ -#define MCS_SEC_PERMIT_READ SVC_SEC_PERMIT_READ -#endif - -/*! Characteristic write permissions */ -#ifndef MCS_SEC_PERMIT_WRITE -#define MCS_SEC_PERMIT_WRITE SVC_SEC_PERMIT_WRITE -#endif - -/************************************************************************************************** - Service variables -**************************************************************************************************/ - -/*Service variables declaration*/ -const uint8_t attMcsSvcUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_SERVICE }; - -/*Characteristic variables declaration*/ -const uint8_t svcMcsButtonUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_BUTTON }; -const uint8_t svcMcsRUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_R }; -const uint8_t svcMcsGUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_G }; -const uint8_t svcMcsBUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_B }; - -static const uint8_t mcsValSvc[] = { ATT_UUID_MCS_SERVICE }; -static const uint16_t mcsLenSvc = sizeof(mcsValSvc); - -static const uint8_t mcsButtonValCh[] = { ATT_PROP_READ | ATT_PROP_NOTIFY, - UINT16_TO_BYTES(MCS_BUTTON_HDL), ATT_UUID_MCS_BUTTON }; -static const uint16_t mcsButtonLenCh = sizeof(mcsButtonValCh); - -static const uint8_t mcsRValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_R_HDL), - ATT_UUID_MCS_R }; -static const uint16_t mcsRLenCh = sizeof(mcsRValCh); - -static const uint8_t mcsGValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_G_HDL), - ATT_UUID_MCS_G }; -static const uint16_t mcsGLenCh = sizeof(mcsGValCh); - -static const uint8_t mcsBValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_B_HDL), - ATT_UUID_MCS_B }; -static const uint16_t mcsBLenCh = sizeof(mcsBValCh); - -/*Characteristic values declaration*/ -static uint8_t mcsButtonVal[] = { 0 }; -static const uint16_t mcsButtonValLen = sizeof(mcsButtonVal); - -static uint8_t mcsButtonValChCcc[] = { UINT16_TO_BYTES(0x0000) }; -static const uint16_t mcsButtonLenValChCcc = sizeof(mcsButtonValChCcc); - -static uint8_t mcsRVal[] = { 0 }; -static const uint16_t mcsRValLen = sizeof(mcsRVal); - -static uint8_t mcsGVal[] = { 0 }; -static const uint16_t mcsGValLen = sizeof(mcsGVal); - -static uint8_t mcsBVal[] = { 0 }; -static const uint16_t mcsBValLen = sizeof(mcsBVal); - -/************************************************************************************************** - Maxim Custom Service group -**************************************************************************************************/ - -/* Attribute list for mcs group */ -static const attsAttr_t mcsList[] = { - /*-----------------------------*/ - /* Service declaration */ - { attPrimSvcUuid, (uint8_t *)mcsValSvc, (uint16_t *)&mcsLenSvc, sizeof(mcsValSvc), 0, - MCS_SEC_PERMIT_READ }, - - /*----------------------------*/ - /* Button characteristic declaration */ - { attChUuid, (uint8_t *)mcsButtonValCh, (uint16_t *)&mcsButtonLenCh, sizeof(mcsButtonValCh), 0, - MCS_SEC_PERMIT_READ }, - /* Button characteristic value */ - { svcMcsButtonUuid, (uint8_t *)mcsButtonVal, (uint16_t *)&mcsButtonValLen, sizeof(mcsButtonVal), - 0, MCS_SEC_PERMIT_READ }, - /*Button characteristic value descriptor*/ - { attCliChCfgUuid, (uint8_t *)mcsButtonValChCcc, (uint16_t *)&mcsButtonLenValChCcc, - sizeof(mcsButtonValChCcc), ATTS_SET_CCC, (ATTS_PERMIT_READ | SVC_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* R characteristic declaration */ - { attChUuid, (uint8_t *)mcsRValCh, (uint16_t *)&mcsRLenCh, sizeof(mcsRValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* R characteristic characteristic value */ - { svcMcsRUuid, (uint8_t *)mcsRVal, (uint16_t *)&mcsRValLen, sizeof(mcsRVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* G characteristic declaration */ - { attChUuid, (uint8_t *)mcsGValCh, (uint16_t *)&mcsGLenCh, sizeof(mcsGValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* G characteristic characteristic value */ - { svcMcsGUuid, (uint8_t *)mcsGVal, (uint16_t *)&mcsGValLen, sizeof(mcsGVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - - /*-----------------------------*/ - /* B characteristic declaration */ - { attChUuid, (uint8_t *)mcsBValCh, (uint16_t *)&mcsBLenCh, sizeof(mcsBValCh), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, - /* B characteristic value */ - { svcMcsBUuid, (uint8_t *)mcsBVal, (uint16_t *)&mcsBValLen, sizeof(mcsBVal), - ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) } -}; - -/* Test group structure */ -static attsGroup_t svcMcsGroup = { NULL, (attsAttr_t *)mcsList, NULL, - NULL, MCS_START_HDL, MCS_END_HDL }; - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsAddGroup(void) -{ - AttsAddGroup(&svcMcsGroup); -} - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsRemoveGroup(void) -{ - AttsRemoveGroup(MCS_START_HDL); -} - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) -{ - svcMcsGroup.readCback = readCback; - svcMcsGroup.writeCback = writeCback; -} diff --git a/Examples/MAX32690/BLE_mcs/services/svc_mcs.h b/Examples/MAX32690/BLE_mcs/services/svc_mcs.h deleted file mode 100644 index a54aff5a057..00000000000 --- a/Examples/MAX32690/BLE_mcs/services/svc_mcs.h +++ /dev/null @@ -1,123 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Maxim Custom service server. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32690_BLE_MCS_SERVICES_SVC_MCS_H_ -#define EXAMPLES_MAX32690_BLE_MCS_SERVICES_SVC_MCS_H_ - -#include "wsf_types.h" -#include "att_api.h" -#include "util/bstream.h" -#include "svc_cfg.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*! \addtogroup Mcs - * \{ */ -/************************************************************************************************** - Macros -**************************************************************************************************/ -/*MCS service UUID*/ -#define ATT_UUID_MCS_SERVICE \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7D, 0x56, 0xFC, \ - 0x85 /*!< \brief Test Service UUID*/ - -/* MCS service GATT characteristic UUIDs*/ -#define ATT_UUID_MCS_BUTTON \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7E, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_R \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7F, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_G \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x80, 0x56, 0xFC, 0x85 -#define ATT_UUID_MCS_B \ - 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x81, 0x56, 0xFC, 0x85 - -/************************************************************************************************** - Handle Ranges -**************************************************************************************************/ - -/** \name Maxim custom Service Handles - * - */ -/**@{*/ -#define MCS_START_HDL 0x1500 /*!< \brief Start handle. */ -#define MCS_END_HDL (MCS_MAX_HDL - 1) /*!< \brief End handle. */ - -/************************************************************************************************** - Handles -**************************************************************************************************/ - -/*! \brief Maxim custom Service Handles */ -enum { - MCS_SVC_HDL = MCS_START_HDL, /*!< \brief Maxim custom service declaration */ - MCS_BUTTON_CH_HDL, /*!< \brief Button characteristic */ - MCS_BUTTON_HDL, /*!< \brief Button*/ - MCS_BUTTON_CH_CCC_HDL, /*!< \brief Button CCCD*/ - MCS_R_CH_HDL, /*!< \brief R characteristic */ - MCS_R_HDL, /*!< \brief R*/ - MCS_G_CH_HDL, /*!< \brief G characteristic */ - MCS_G_HDL, /*!< \brief G*/ - MCS_B_CH_HDL, /*!< \brief B characteristic */ - MCS_B_HDL, /*!< \brief B*/ - MCS_MAX_HDL /*!< \brief Maximum handle. */ -}; -/**@}*/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Add the services to the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsAddGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Remove the services from the attribute server. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsRemoveGroup(void); - -/*************************************************************************************************/ -/*! - * \brief Register callbacks for the service. - * - * \param readCback Read callback function. - * \param writeCback Write callback function. - * - * \return None. - */ -/*************************************************************************************************/ -void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); - -/*! \} */ /* TEST_SERVICE */ - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_MCS_SERVICES_SVC_MCS_H_ diff --git a/Examples/MAX32690/BLE_otac/.vscode/flash.gdb b/Examples/MAX32690/BLE_otac/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_otac/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_otac/Makefile b/Examples/MAX32690/BLE_otac/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_otac/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_otac/datc_api.h b/Examples/MAX32690/BLE_otac/datc_api.h deleted file mode 100644 index a72f43018ef..00000000000 --- a/Examples/MAX32690/BLE_otac/datc_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_OTAC_DATC_API_H_ -#define EXAMPLES_MAX32690_BLE_OTAC_DATC_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_OTAC_DATC_API_H_ diff --git a/Examples/MAX32690/BLE_otac/datc_main.c b/Examples/MAX32690/BLE_otac/datc_main.c deleted file mode 100644 index 4451bc19b24..00000000000 --- a/Examples/MAX32690/BLE_otac/datc_main.c +++ /dev/null @@ -1,1418 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer client sample application for Nordic-ble. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "dm_api.h" -#include "dm_priv.h" -#include "gap/gap_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_cfg.h" -#include "app_api.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_core.h" -#include "svc_ch.h" -#include "gatt/gatt_api.h" -#include "wpc/wpc_api.h" -#include "datc_api.h" -#include "util/calc128.h" -#include "wsf_efs.h" -#include "wdxc/wdxc_api.h" -#include "wdxc/wdxc_main.h" -#include "wdx_defs.h" -#include "pal_btn.h" -#include "tmr.h" - -/************************************************************************************************** -Macros -**************************************************************************************************/ -#if (BT_VER > 8) -/* PHY Test Modes */ -#define DATC_PHY_1M 1 -#define DATC_PHY_2M 2 -#define DATC_PHY_CODED 3 -#endif /* BT_VER */ - -/* Size of WDXC file discovery dataset */ -#define DATC_WDXC_MAX_FILES 4 - -/*! WSF message event starting value */ -#define DATC_MSG_START 0xA0 - -/*! Data rate timer period in seconds */ -#define DATC_WDXS_DATA_RATE_TIMEOUT 4 - -extern uint32_t _binary_fw_update_bin_start; -extern uint32_t _binary_fw_update_bin_end; - -#define FILE_SIZE \ - (uint32_t)(((uint32_t)&_binary_fw_update_bin_end) - ((uint32_t)&_binary_fw_update_bin_start)) -#define BLOCK_OFFSET_INIT 0x0 -#define BLOCK_SIZE 224 -#define CRC32_LEN 4 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -#define SCAN_START_EVT 0x99 -#define SCAN_START_MS 500 - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; -fileHeader_t fileHeader; -/*! application control block */ -struct { - uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ - wsfHandlerId_t handlerId; /*! WSF hander ID */ - bool_t scanning; /*! TRUE if scanning */ - bool_t autoConnect; /*! TRUE if auto-connecting */ - uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ - uint8_t hdlListLen; /*! Cached handle list length */ - uint8_t btnConnId; /*! The index of the connection ID for button presses */ - bool_t sendingFile[DM_CONN_MAX]; - bool_t fileVerified[DM_CONN_MAX]; - uint32_t blockOffset[DM_CONN_MAX]; - wsfEfsFileInfo_t fileList[DM_CONN_MAX][DATC_WDXC_MAX_FILES]; /*! Buffer to hold WDXC file list */ - uint8_t *fileData; /*! Pointer for accessing the fw_update image*/ - uint32_t fileCRC; /*! Holds the CRC32 value of the file */ - uint32_t blockSize; - - appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ - wsfTimer_t scanTimer; /* Timer for starting the scanner */ -} datcCb; - -/*! connection control block */ -typedef struct { - appDbHdl_t dbHdl; /*! Device database record handle type */ - uint8_t addrType; /*! Type of address of device to connect to */ - bdAddr_t addr; /*! Address of device to connect to */ - bool_t doConnect; /*! TRUE to issue connect on scan complete */ -} datcConnInfo_t; - -datcConnInfo_t datcConnInfo; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for master */ -static const appMasterCfg_t datcMasterCfg = { - 96, /*! The scan interval, in 0.625 ms units */ - 48, /*! The scan window, in 0.625 ms units */ - 0, /*! The scan duration in ms */ - DM_DISC_MODE_NONE, /*! The GAP discovery mode */ - DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datcSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datcSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datcSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/*! Connection parameters */ -static const hciConnSpec_t datcConnCfg = { - 6, /*! Minimum connection interval in 1.25ms units */ - 6, /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 0, /*! Unused */ - 0 /*! Unused */ -}; - -/*! Configurable parameters for service and characteristic discovery */ -static const appDiscCfg_t datcDiscCfg = { - FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ - TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ -}; - -static const appCfg_t datcAppCfg = { - FALSE, /*! TRUE to abort service discovery if service not found */ - TRUE /*! TRUE to disconnect if ATT transaction times out */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datcAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, - 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; - -/************************************************************************************************** - ATT Client Discovery Data -**************************************************************************************************/ - -/*! Discovery states: enumeration of services to be discovered */ -enum { - DATC_DISC_GATT_SVC, /*! GATT service */ - DATC_DISC_GAP_SVC, /*! GAP service */ - DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ - DATC_DISC_WDXC_SCV, /*! Arm Ltd. Wireless Data Exchange service */ - DATC_DISC_SVC_MAX /*! Discovery complete */ -}; - -/*! the Client handle list, datcCb.hdlList[], is set as follows: - * - * ------------------------------- <- DATC_DISC_GATT_START - * | GATT svc changed handle | - * ------------------------------- - * | GATT svc changed ccc handle | - * ------------------------------- <- DATC_DISC_GAP_START - * | GAP central addr res handle | - * ------------------------------- - * | GAP RPA Only handle | - * ------------------------------- <- DATC_DISC_WP_START - * | WP handles | - * | ... | - * ------------------------------- - */ - -/*! Start of each service's handles in the the handle list */ -#define DATC_DISC_GATT_START 0 -#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) -#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) -#define DATC_DISC_WDXC_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) -#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_WDXC_START + WDXC_HDL_LIST_LEN) - -/*! Pointers into handle list for each service's handles */ -static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; -static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; -static uint16_t *pDatcWdxHdlList[DM_CONN_MAX]; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datcOobCfg; - -/************************************************************************************************** - ATT Client Configuration Data -**************************************************************************************************/ - -/* - * Data for configuration after service discovery - */ - -/* Default value for CCC indications */ -const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; - -/* Default value for CCC notifications */ -const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; - -/* Default value for Client Supported Features (enable Robust Caching) */ -const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; - -/* List of characteristics to configure after service discovery */ -static const attcDiscCfg_t datcDiscCfgList[] = { - /* Write: GATT service changed ccc descriptor */ - { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: GATT client supported features */ - { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, - - /* Write: Proprietary data service changed ccc descriptor */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, - - /* Write: WDXC ccc descriptors */ - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_DC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTD_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, - { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_AU_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, -}; - -/* Characteristic configuration list length */ -#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) - -/* sanity check: make sure configuration list length is <= handle list length */ -WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Reset the OTA state. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcResetOTAState(void) -{ - int i; - for (i = 0; i < DM_CONN_MAX; i++) { - datcCb.sendingFile[i] = FALSE; - datcCb.fileVerified[i] = FALSE; - datcCb.blockOffset[i] = BLOCK_OFFSET_INIT; - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - uint16_t reportLen; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datcSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datcOobCfg == NULL) { - datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datcOobCfg) { - Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - reportLen = pDmEvt->scanReport.len; - } else { - reportLen = 0; - } - - if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { - memcpy(pMsg, pDmEvt, len); - if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { - pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); - memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); - } - WsfMsgSend(datcCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datcAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(datcCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning handler. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanningHandler(void) -{ - datcCb.autoConnect = TRUE; - datcConnInfo.doConnect = FALSE; - AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); -} - -/*************************************************************************************************/ -/*! - * \brief Restart scanning. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestartScanning(void) -{ - /* Start the scanning start timer */ - WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan start. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStart(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform actions on scan stop. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanStop(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - - /* Open connection */ - if (datcConnInfo.doConnect) { - AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); - datcConnInfo.doConnect = FALSE; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Handle a scan report. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcScanReport(dmEvt_t *pMsg) -{ - uint8_t *pData; - appDbHdl_t dbHdl; - bool_t connect = FALSE; - - /* disregard if not scanning or autoconnecting */ - if (!datcCb.scanning || !datcCb.autoConnect) { - return; - } - - /* if we already have a bond with this device then connect to it */ - if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != - APP_DB_HDL_NONE) { - /* if this is a directed advertisement where the initiator address is an RPA */ - if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { - /* resolve direct address to see if it's addressed to us */ - AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); - } else { - connect = TRUE; - } - } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { - /* if the peer device uses an RPA */ - /* resolve advertiser's RPA to see if we already have a bond with this device */ - AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); - } - /* Search for "OTAS" name */ - if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, - pMsg->scanReport.pData)) != NULL)) { - /* check length and device name */ - if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'O') && - (pData[DM_AD_DATA_IDX + 1] == 'T') && (pData[DM_AD_DATA_IDX + 2] == 'A') && - (pData[DM_AD_DATA_IDX + 3] == 'S')) { - connect = TRUE; - } - } - - if (connect) { - /* stop scanning and connect */ - datcCb.autoConnect = FALSE; - AppScanStop(); - - /* Store peer information for connect on scan stop */ - datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); - memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); - datcConnInfo.dbHdl = dbHdl; - datcConnInfo.doConnect = TRUE; - } -} - -/*************************************************************************************************/ -/*! - * \brief Perform UI actions on connection open. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcOpen(dmEvt_t *pMsg) -{ - datcResetOTAState(); -} - -/*************************************************************************************************/ -/*! - * \brief Process a received ATT notification. - * - * \param pMsg Pointer to ATT callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcValueNtf(attEvt_t *pMsg) -{ - /* print received message */ - APP_TRACE_INFO0((const char *)pMsg->pValue); -} - -/*************************************************************************************************/ -/*! - * \brief Set up procedures that need to be performed after device reset. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSetup(dmEvt_t *pMsg) -{ - datcCb.scanning = FALSE; - datcCb.autoConnect = FALSE; - datcConnInfo.doConnect = FALSE; - datcCb.restoringResList = FALSE; - - DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datcSetup(pMsg); - } else { - datcCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datcCb.restoringResList) { - /* Retore next device to resolving list in Controller. */ - datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); - - if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datcSetup(pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief GAP service discovery has completed. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscGapCmpl(dmConnId_t connId) -{ - appDbHdl_t dbHdl; - - /* if RPA Only attribute found on peer device */ - if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { - /* update DB */ - AppDbSetPeerRpao(dbHdl, TRUE); - AppDbNvmStorePeerRpao(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief WDXC File Transfer Data Callback. - * - * \param connId Connection ID. - * \param fileHdl Handle of the file. - * \param len length of pData in bytes. - * \param pData File data. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcWdxcFtdCallback(dmConnId_t connId, uint16_t fileHdl, uint16_t len, uint8_t *pData) -{ -} - -/*************************************************************************************************/ -/*! - * \brief Send file header. - * - * \param connId Connection identifier. - * - * \return None. - */ -/*************************************************************************************************/ -static void sendFileHeader(dmConnId_t connId) -{ - if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { - AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(fileHeader_t), - (uint8_t *)&fileHeader); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send a block of file data to the peer. Combines the address with the data. - * - * \param connId Connection identifier. - * \param address Address of the block. - * \param len Length of the data. - * \param pData Pointer to the data to send. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcSendBlock(dmConnId_t connId, uint32_t address, uint32_t len, uint8_t *pData) -{ - uint8_t *addrData = WsfBufAlloc(datcCb.blockSize + sizeof(uint32_t)); - - /* Insert the address into the block */ - memcpy(addrData, &address, sizeof(uint32_t)); - memcpy(&addrData[sizeof(uint32_t)], pData, len); - - // APP_TRACE_INFO2("Sending addr: 0x%08X len: 0x%04X", address, len); - - /* Send the address and data, add the length of the address to the length */ - WdxcFtdSendBlock(connId, len + sizeof(uint32_t), addrData); - - /* Clear out the buf->free field to prevent un-intended assertion in WsfBufFree */ - addrData[4] = 0; - addrData[5] = 0; - addrData[6] = 0; - addrData[7] = 0; - - WsfBufFree(addrData); - - /* Increment the address of the data that we're sending */ - datcCb.blockOffset[connId - 1] += len; -} - -/*************************************************************************************************/ -/*! - * \brief WDXC File Transfer Control Callback. - * - * \param connId Connection ID. - * \param op Control operation. - * \param status Status of operation. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcWdxcFtcCallback(dmConnId_t connId, uint16_t handle, uint8_t op, uint8_t status) -{ - APP_TRACE_INFO2("FTC op: %d status: %d", op, status); - - if (op == WDX_FTC_OP_PUT_RSP) { - /* Start timer */ - APP_TRACE_INFO0(">>> Starting file transfer <<<\n"); - - MXC_TMR_SW_Start(MXC_TMR2); - datcCb.sendingFile[connId - 1] = TRUE; - uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; - datcSendBlock(connId, address, datcCb.blockSize, (uint8_t *)&datcCb.fileData[address]); - - } else if (op == WDX_FTC_OP_EOF) { - if (handle == WDX_FLIST_HANDLE) { - /* on discovery completion we can send the header */ - sendFileHeader(connId); - /* File discovery complete */ - APP_TRACE_INFO0(">>> File discovery complete <<<\n"); - } else { - /* Stop timer, calculate time and Bps */ - uint32_t usec = MXC_TMR_SW_Stop(MXC_TMR2); - APP_TRACE_INFO1(">>> File transfer complete %d us <<<\n", usec); - APP_TRACE_INFO3("file_size = %d usec = %d bps = %d\n", FILE_SIZE, usec, - ((FILE_SIZE * 1000) / (usec / 1000)) * 8); - datcCb.sendingFile[connId - 1] = FALSE; - } - } else if (op == WDX_FTC_OP_VERIFY_RSP) { - APP_TRACE_INFO1(">>> Verify complete status: %d <<<\n", status); - if (status) - datcCb.fileVerified[connId - 1] = FALSE; - else - datcCb.fileVerified[connId - 1] = TRUE; - } -} -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcBtnCback(uint8_t btn) -{ - dmConnId_t connId = datcCb.btnConnId; - dmConnId_t connIdList[DM_CONN_MAX]; - uint8_t numConnections = AppConnOpenList(connIdList); - - /* button actions when connected */ - if (numConnections > 0) { - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (numConnections < DM_CONN_MAX - 1) { - if (datcCb.scanning) { /* if scanning cancel scanning */ - AppScanStop(); - } else if (!datcCb.autoConnect) { /* else auto connect */ - datcRestartScanning(); - } - } else { - APP_TRACE_INFO0("datcBtnCback: Max connections reached."); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID used in button presses */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* disconnect */ - AppConnClose(connId); - break; - -#if (BT_VER > 8) - case APP_UI_BTN_1_EX_LONG: { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } -#endif /* BT_VER */ - - case APP_UI_BTN_2_SHORT: - if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { - WdxcDiscoverFiles(connId, datcCb.fileList[connId - 1], DATC_WDXC_MAX_FILES); - datcCb.blockSize = AttGetMtu(connId); - - /* Subtract for the address and message overhead */ - datcCb.blockSize = datcCb.blockSize - 8; - if (datcCb.blockSize > BLOCK_SIZE) { - datcCb.blockSize = BLOCK_SIZE; - } - } - break; - - case APP_UI_BTN_2_MED: - if ((datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) && - (datcCb.sendingFile[connId - 1] == FALSE)) { - /* Start the WDXC data stream */ - datcCb.blockOffset[connId - 1] = BLOCK_OFFSET_INIT; - - /* Put file request */ - WdxcFtcSendPutReq(connId, datcCb.fileList[connId - 1][0].handle, BLOCK_OFFSET_INIT, - FILE_SIZE, BLOCK_OFFSET_INIT + FILE_SIZE, 0); - } - break; - - case APP_UI_BTN_2_LONG: - if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { - /* Send verification request */ - WdxcFtcSendVerifyFile(connId, datcCb.fileList[connId - 1][0].handle); - } - break; - - case APP_UI_BTN_2_EX_LONG: - if (datcCb.fileVerified[connId - 1]) { - /* Send Disconnect and Reset request to apply firmware update */ - WdxcDcSendDisconnectAndReset(connId); - datcCb.fileVerified[connId - 1] = FALSE; - } - break; - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { /* button actions when not connected */ - switch (btn) { - case APP_UI_BTN_1_SHORT: - if (datcCb.scanning) { /* if scanning cancel scanning */ - AppScanStop(); - } else if (!datcCb.autoConnect) { /* else auto connect */ - datcRestartScanning(); - } - break; - - case APP_UI_BTN_1_MED: - /* Increment connection ID buttons apply to */ - if (++datcCb.btnConnId > DM_CONN_MAX) { - datcCb.btnConnId = 1; - } - APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: - /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ - SvcCoreGapAddRpaoCh(); - break; - - case APP_UI_BTN_2_EX_LONG: - /* enable device privacy -- start generating local RPAs every 15 minutes */ - DmDevPrivStart(15 * 60); - - /* set Scanning filter policy to accept directed advertisements with RPAs */ - DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); - break; - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Discovery callback. - * - * \param connId Connection identifier. - * \param status Service or configuration status. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcDiscCback(dmConnId_t connId, uint8_t status) -{ - switch (status) { - case APP_DISC_INIT: - /* set handle list when initialization requested */ - AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_READ_DATABASE_HASH: - /* Read peer's database hash */ - AppDiscReadDatabaseHash(connId); - break; - - case APP_DISC_SEC_REQUIRED: - /* initiate security */ - AppMasterSecurityReq(connId); - break; - - case APP_DISC_START: - /* initialize discovery state */ - datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; - - /* store possible change in cache by hash */ - AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); - - /* discover GATT service */ - GattDiscover(connId, pDatcGattHdlList[connId - 1]); - break; - - case APP_DISC_FAILED: - if (pAppCfg->abortDisc) { - /* if discovery failed for proprietary data service then disconnect */ - if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { - AppConnClose(connId); - break; - } - } - /* Else falls through. */ - - case APP_DISC_CMPL: - /* next discovery state */ - datcCb.discState[connId - 1]++; - - if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { - /* discover GAP service */ - GapDiscover(connId, pDatcGapHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { - /* discover proprietary data service */ - WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); - } else if (datcCb.discState[connId - 1] == DATC_DISC_WDXC_SCV) { - WdxcWdxsDiscover(connId, pDatcWdxHdlList[connId - 1]); - } else { - /* discovery complete */ - AppDiscComplete(connId, APP_DISC_CMPL); - - /* GAP service discovery completed */ - datcDiscGapCmpl(connId); - - /* store cached handle list in NVM */ - AppDbNvmStoreHdlList(AppDbGetHdl(connId)); - - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - } - break; - - case APP_DISC_CFG_START: - case APP_DISC_CFG_CONN_START: - /* start configuration */ - AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, - (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, - datcCb.hdlList[connId - 1]); - break; - - case APP_DISC_CFG_CMPL: - AppDiscComplete(connId, status); - break; - - default: - break; - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case ATTC_HANDLE_VALUE_NTF: - datcValueNtf((attEvt_t *)pMsg); - break; - - case ATTC_WRITE_CMD_RSP: - case ATTC_WRITE_RSP: { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - if ((((attEvt_t *)pMsg)->hdr.status == ATT_SUCCESS) && - (((attEvt_t *)pMsg)->handle == pDatcWdxHdlList[connId - 1][WDXC_FTD_HDL_IDX])) { - if (datcCb.sendingFile[connId - 1] == TRUE) { - uint32_t tempBlockSize; - if ((datcCb.blockOffset[connId - 1] + datcCb.blockSize) > FILE_SIZE) { - tempBlockSize = FILE_SIZE - datcCb.blockOffset[connId - 1]; - } else { - tempBlockSize = datcCb.blockSize; - } - - /* Keep writing the file */ - uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; - datcSendBlock(connId, address, tempBlockSize, (uint8_t *)&datcCb.fileData[address]); - } - } - break; - } - - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - setAdvTxPower(); - datcRestoreResolvingList(pMsg); - datcRestartScanning(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_SCAN_START_IND: - datcScanStart(pMsg); - uiEvent = APP_UI_SCAN_START; - break; - - case DM_SCAN_STOP_IND: - datcScanStop(pMsg); - uiEvent = APP_UI_SCAN_STOP; - break; - - case DM_SCAN_REPORT_IND: - datcScanReport(pMsg); - break; - - case DM_CONN_OPEN_IND: - datcOpen(pMsg); - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - datcRestartScanning(); - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datcOobCfg != NULL) { - DmSecSetOob(connId, datcOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datcPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case SCAN_START_EVT: - datcRestartScanningHandler(); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatcHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - - /* store handler ID */ - datcCb.handlerId = handlerId; - - /* set handle list length */ - datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; - - datcCb.btnConnId = 1; - /* Set configuration pointers */ - pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; - pAppSecCfg = (appSecCfg_t *)&datcSecCfg; - pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; - pAppCfg = (appCfg_t *)&datcAppCfg; - pSmpCfg = (smpCfg_t *)&datcSmpCfg; - pAttCfg = (attCfg_t *)&datcAttCfg; - - /* Initialize application framework */ - AppMasterInit(); - AppDiscInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Set the pointer for the fw_update image */ - datcCb.fileData = (uint8_t *)&_binary_fw_update_bin_start; - - /* Calculate the update image CRC */ - datcCb.fileCRC = 0; - crc32(datcCb.fileData, FILE_SIZE, &datcCb.fileCRC); - fileHeader.fileCRC = datcCb.fileCRC; - fileHeader.fileLen = FILE_SIZE; - APP_TRACE_INFO2("File addr: %08X file size: %08X", (uint32_t)datcCb.fileData, FILE_SIZE); - APP_TRACE_INFO1("Update File CRC: 0x%08X", datcCb.fileCRC); - - datcResetOTAState(); - - /* Setup scan start timer */ - datcCb.scanTimer.handlerId = handlerId; - datcCb.scanTimer.msg.event = SCAN_START_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - /* process ATT messages */ - if (pMsg->event <= ATT_CBACK_END) { - /* process discovery-related ATT messages */ - AppDiscProcAttMsg((attEvt_t *)pMsg); - - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ - /* process advertising and connection-related messages */ - AppMasterProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppMasterSecProcDmMsg((dmEvt_t *)pMsg); - - /* process discovery-related messages */ - AppDiscProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datcProcMsg((dmEvt_t *)pMsg); - - /* perform wdxc operations */ - WdxcProcMsg((wsfMsgHdr_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize the pointers into the handle list. - * - * \return None. - */ -/*************************************************************************************************/ -static void datcInitSvcHdlList() -{ - uint8_t i; - - for (i = 0; i < DM_CONN_MAX; i++) { - /*! Pointers into handle list for each service's handles */ - pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; - pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; - pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; - pDatcWdxHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WDXC_START]; - } -} -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatcStart(void) -{ - /* Initialize handle pointers */ - datcInitSvcHdlList(); - - /* Register for stack callbacks */ - DmRegister(datcDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); - AttRegister(datcAttCback); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datcBtnCback); - - /* Register for app framework discovery callbacks */ - AppDiscRegister(datcDiscCback); - - /* Initialize attribute server database */ - SvcCoreAddGroup(); - - /* Initialize the WDXC and set the WDXC application callbacks */ - WdxcInit(datcWdxcFtdCallback, datcWdxcFtcCallback); - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE_otac/fw_update.S b/Examples/MAX32690/BLE_otac/fw_update.S deleted file mode 100644 index b9bdc5effa0..00000000000 --- a/Examples/MAX32690/BLE_otac/fw_update.S +++ /dev/null @@ -1,9 +0,0 @@ -.section .text - -/* Include the fw_update binary file, include global symbols we can use at link time */ -_binary_fw_update_bin_start: -.incbin "build/buildfw/fw_update.bin" -_binary_fw_update_bin_end: - -.globl _binary_fw_update_bin_start -.globl _binary_fw_update_bin_end diff --git a/Examples/MAX32690/BLE_otac/main.c b/Examples/MAX32690/BLE_otac/main.c deleted file mode 100644 index b80284f25f9..00000000000 --- a/Examples/MAX32690/BLE_otac/main.c +++ /dev/null @@ -1,272 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth data client that scans for and connects to advertisers with the name of "OTAS". Demonstrates Over-the-Air (OTA) firmware updates. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "datc_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDatc(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT0_IRQHandler(void) -{ - MXC_WUT_Handler(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDatc(); - DatcStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_otas/.vscode/flash.gdb b/Examples/MAX32690/BLE_otas/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_otas/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_otas/Makefile b/Examples/MAX32690/BLE_otas/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_otas/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_otas/bl_build.S b/Examples/MAX32690/BLE_otas/bl_build.S deleted file mode 100644 index c1af83df520..00000000000 --- a/Examples/MAX32690/BLE_otas/bl_build.S +++ /dev/null @@ -1,8 +0,0 @@ -/* Include the bl binary file, plus a reference for addition into linker script */ -.section .text -_binary_bootloader_bin_start: -.incbin "build/buildbl/bootloader.bin" -_binary_bootloader_bin_end: - -.globl _binary_bootloader_bin_start -.globl _binary_bootloader_bin_end diff --git a/Examples/MAX32690/BLE_otas/dats_api.h b/Examples/MAX32690/BLE_otas/dats_api.h deleted file mode 100644 index c0b3e4bf1c8..00000000000 --- a/Examples/MAX32690/BLE_otas/dats_api.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_OTAS_DATS_API_H_ -#define EXAMPLES_MAX32690_BLE_OTAS_DATS_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_OTAS_DATS_API_H_ diff --git a/Examples/MAX32690/BLE_otas/dats_main.c b/Examples/MAX32690/BLE_otas/dats_main.c deleted file mode 100644 index 5b17551caca..00000000000 --- a/Examples/MAX32690/BLE_otas/dats_main.c +++ /dev/null @@ -1,982 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "mxc_device.h" -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "wsf_timer.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "dats_api.h" -#include "wut.h" -#include "trimsir_regs.h" -#include "pal_btn.h" -#include "tmr.h" -#include "wsf_efs.h" -#include "svc_wdxs.h" -#include "wdxs/wdxs_api.h" -#include "wdxs/wdxs_main.h" -#include "wdxs/wdxs_stream.h" -#include "wdxs_file.h" -#include "board.h" -#include "flc.h" -#include "wsf_cs.h" -#include "Ext_Flash.h" -/************************************************************************************************** - Macros -**************************************************************************************************/ -#if (BT_VER > 8) - -/* PHY Test Modes */ -#define DATS_PHY_2M 2 -#define DATS_PHY_1M 1 -#define DATS_PHY_CODED 3 - -#endif /* BT_VER */ - -#define TRIM_TIMER_EVT 0x99 - -#define TRIM_TIMER_PERIOD_MS 100000 - -/*! Button press handling constants */ -#define BTN_SHORT_MS 200 -#define BTN_MED_MS 500 -#define BTN_LONG_MS 1000 - -#define BTN_1_TMR MXC_TMR2 -#define BTN_2_TMR MXC_TMR3 - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - WDXS_DC_CH_CCC_IDX, /*! WDXS DC service, service changed characteristic */ - WDXS_FTC_CH_CCC_IDX, /*! WDXS FTC service, service changed characteristic */ - WDXS_FTD_CH_CCC_IDX, /*! WDXS FTD service, service changed characteristic */ - WDXS_AU_CH_CCC_IDX, /*! WDXS AU service, service changed characteristic */ - DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - DATS_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t datsAdvCfg = { - { 0, 0, 0 }, /*! Advertising durations in ms */ - { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t datsSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! configurable parameters for security */ -static const appSecCfg_t datsSecCfg = { - DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ - DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ - DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ - FALSE, /*! TRUE if Out-of-band pairing data is present */ - TRUE /*! TRUE to initiate security upon connection */ -}; - -/*! TRUE if Out-of-band pairing data is to be sent */ -static const bool_t datsSendOobData = FALSE; - -/*! SMP security parameter configuration */ -static const smpCfg_t datsSmpCfg = { - 500, /*! 'Repeated attempts' timeout in msec */ - SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ - 7, /*! Minimum encryption key length */ - 16, /*! Maximum encryption key length */ - 1, /*! Attempts to trigger 'repeated attempts' timeout */ - 0, /*! Device authentication requirements */ - 64000, /*! Maximum repeated attempts timeout in msec */ - 64000, /*! Time msec before attemptExp decreases */ - 2 /*! Repeated attempts multiplier exponent */ -}; - -/* iOS connection parameter update requirements - - The connection parameter request may be rejected if it does not meet the following guidelines: - * Peripheral Latency of up to 30 connection intervals. - * Supervision Timeout from 2 seconds to 6 seconds. - * Interval Min of at least 15 ms. - * Interval Min is a multiple of 15 ms. - * One of the following: - * Interval Max at least 15 ms greater than Interval Min. - * Interval Max and Interval Min both set to 15 ms. - * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. - * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. -*/ - -/*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t datsUpdateCfg = { - 0, - /*! ^ Connection idle period in ms before attempting - connection parameter update. set to zero to disable */ - (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ - (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ - 0, /*! Connection latency */ - 600, /*! Supervision timeout in 10ms units */ - 5 /*! Number of update attempts before giving up */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t datsAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/*! local IRK */ -static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, - 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t datsAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - - /*! manufacturer specific data */ - 3, /*! length */ - DM_ADV_TYPE_MANUFACTURER, /*! AD type */ - UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ -}; - -/*! scan data, discoverable mode */ -static const uint8_t datsScanDataDisc[] = { - /*! device name */ - 5, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'O', - 'T', - 'A', - 'S' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { WDXS_DC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_DC_CH_CCC_IDX */ - { WDXS_FTC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTC_CH_CCC_IDX */ - { WDXS_FTD_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTD_CH_CCC_IDX */ - { WDXS_AU_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_AU_CH_CCC_IDX */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ -#if (BT_VER > 8) - uint8_t phyMode; /*! PHY Test Mode */ -#endif /* BT_VER */ - appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ - bool_t restoringResList; /*! Restoring resolving list from NVM */ -} datsCb; - -/* LESC OOB configuration */ -static dmSecLescOobCfg_t *datsOobCfg; - -/* Timer for trimming of the 32 kHz crystal */ -wsfTimer_t trimTimer; - -extern void setAdvTxPower(void); - -/*************************************************************************************************/ -/*! - * \brief Send notification containing data. - * - * \param connId DM connection ID. - * \param size Size of message to send. - * \param msg Message to send - * \return None. - */ -/*************************************************************************************************/ -static void datsSendData(dmConnId_t connId, uint8_t size, uint8_t *msg) -{ - if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(connId, WP_DAT_HDL, size, msg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { - DmSecSetEccKey(&pDmEvt->eccMsg.data.key); - - /* If the local device sends OOB data. */ - if (datsSendOobData) { - uint8_t oobLocalRandom[SMP_RAND_LEN]; - SecRand(oobLocalRandom, SMP_RAND_LEN); - DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); - } - } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { - if (datsOobCfg == NULL) { - datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); - } - - if (datsOobCfg) { - Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); - Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); - } - } else { - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(datsCb.handlerId, pMsg); - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsAttCback(attEvt_t *pEvt) -{ - WdxsAttCback(pEvt); -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void datsCccCback(attsCccEvt_t *pEvt) -{ - appDbHdl_t dbHdl; - - /* If CCC not set from initialization and there's a device record and currently bonded */ - if ((pEvt->handle != ATT_HANDLE_NONE) && - ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && - AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { - /* Store value in device database. */ - AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); - AppDbNvmStoreCccTbl(dbHdl); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the trim procedure for the 32 kHz crystal. - * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. - * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). - * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. - * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. - * - * \return None. - */ -/*************************************************************************************************/ -static void trimStart(void) -{ - int err; - extern void wutTrimCb(int err); - - /* Start the 32 kHz crystal trim procedure */ - err = MXC_WUT_TrimCrystalAsync(wutTrimCb); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); - } -} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ - -uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - if (len == sizeof(fileHeader_t)) { - uint8_t str[50]; - uint16_t version = WdxsFileGetFirmwareVersion(); - snprintf((char *)str, sizeof(str), ">>> Current fw version: %d.%d <<<", - ((version & 0xFF00) >> 8), version & 0xFF); - fileHeader_t *tmpHeader; - tmpHeader = (fileHeader_t *)pValue; - initHeader(tmpHeader); - datsSendData(connId, sizeof(str), str); - } - return ATT_SUCCESS; -} -/*************************************************************************************************/ -/*! -* -* \brief Add device to resolving list. -* -* \param dbHdl Device DB record handle. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivAddDevToResList(appDbHdl_t dbHdl) -{ - dmSecKey_t *pPeerKey; - - /* if peer IRK present */ - if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { - /* set advertising peer address */ - AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); - } -} - -/*************************************************************************************************/ -/*! -* -* \brief Handle remove device from resolving list indication. -* -* \param pMsg Pointer to DM callback event message. -* -* \return None. -*/ -/*************************************************************************************************/ -static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) -{ - if (pMsg->hdr.status == HCI_SUCCESS) { - if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { - uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; - - /* clear advertising peer address and its type */ - AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); - } - } -} - -/*************************************************************************************************/ -/*! - * - * \brief Display stack version. - * - * \param version version number. - * - * \return None. - */ -/*************************************************************************************************/ -void datsDisplayStackVersion(const char *pVersion) -{ - APP_TRACE_INFO1("Stack Version: %s", pVersion); -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsSetup(dmEvt_t *pMsg) -{ - /* Initialize control information */ - datsCb.restoringResList = FALSE; - - /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), - (uint8_t *)datsScanDataDisc); - - /* set advertising and scan response data for connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Begin restoring the resolving list. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsRestoreResolvingList(dmEvt_t *pMsg) -{ - /* Restore first device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No device to restore. Setup application. */ - datsSetup(pMsg); - } else { - datsCb.restoringResList = TRUE; - } -} - -/*************************************************************************************************/ -/*! -* \brief Handle add device to resolving list indication. - * - * \param pMsg Pointer to DM callback event message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) -{ - /* Check if in the process of restoring the Device List from NV */ - if (datsCb.restoringResList) { - /* Set the advertising peer address. */ - datsPrivAddDevToResList(datsCb.resListRestoreHdl); - - /* Retore next device to resolving list in Controller. */ - datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); - - if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { - /* No additional device to restore. Setup application. */ - datsSetup(pMsg); - } - } else { - datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - } -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - AttsCalculateDbHash(); - DmSecGenerateEccKeyReq(); - AppDbNvmReadAll(); - datsRestoreResolvingList(pMsg); - setAdvTxPower(); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - WsfTimerStop(&trimTimer); - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - WsfTimerStop(&trimTimer); - - APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, - pMsg->connClose.reason); - switch (pMsg->connClose.reason) { - case HCI_ERR_CONN_TIMEOUT: - APP_TRACE_INFO0(" TIMEOUT"); - break; - case HCI_ERR_LOCAL_TERMINATED: - APP_TRACE_INFO0(" LOCAL TERM"); - break; - case HCI_ERR_REMOTE_TERMINATED: - APP_TRACE_INFO0(" REMOTE TERM"); - break; - case HCI_ERR_CONN_FAIL: - APP_TRACE_INFO0(" FAIL ESTABLISH"); - break; - case HCI_ERR_MIC_FAILURE: - APP_TRACE_INFO0(" MIC FAILURE"); - break; - } - uiEvent = APP_UI_CONN_CLOSE; - break; - - case DM_SEC_PAIR_CMPL_IND: - DmSecGenerateEccKeyReq(); - AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); - uiEvent = APP_UI_SEC_PAIR_CMPL; - break; - - case DM_SEC_PAIR_FAIL_IND: - DmSecGenerateEccKeyReq(); - uiEvent = APP_UI_SEC_PAIR_FAIL; - break; - - case DM_SEC_ENCRYPT_IND: - uiEvent = APP_UI_SEC_ENCRYPT; - break; - - case DM_SEC_ENCRYPT_FAIL_IND: - uiEvent = APP_UI_SEC_ENCRYPT_FAIL; - break; - - case DM_SEC_AUTH_REQ_IND: - - if (pMsg->authReq.oob) { - dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; - - /* TODO: Perform OOB Exchange with the peer. */ - - /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ - - if (datsOobCfg != NULL) { - DmSecSetOob(connId, datsOobCfg); - } - - DmSecAuthRsp(connId, 0, NULL); - } else { - AppHandlePasskey(&pMsg->authReq); - } - break; - - case DM_SEC_COMPARE_IND: - AppHandleNumericComparison(&pMsg->cnfInd); - break; - - case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: - datsPrivAddDevToResListInd(pMsg); - break; - - case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: - datsPrivRemDevFromResListInd(pMsg); - break; - - case DM_ADV_NEW_ADDR_IND: - break; - - case DM_PRIV_CLEAR_RES_LIST_IND: - APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); - break; - -#if (BT_VER > 8) - case DM_PHY_UPDATE_IND: - APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, - pMsg->phyUpdate.txPhy); - break; -#endif /* BT_VER */ - - case TRIM_TIMER_EVT: - trimStart(); - WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("DatsHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); - - /* store handler ID */ - datsCb.handlerId = handlerId; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; - pAppSecCfg = (appSecCfg_t *)&datsSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; - pSmpCfg = (smpCfg_t *)&datsSmpCfg; - pAttCfg = (attCfg_t *)&datsAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); - - /* Set IRK for the local device */ - DmSecSetLocalIrk(localIrk); - - /* Setup 32 kHz crystal trim timer */ - trimTimer.handlerId = handlerId; - trimTimer.msg.event = TRIM_TIMER_EVT; -} - -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void datsBtnCback(uint8_t btn) -{ -#if (BT_VER > 8) - dmConnId_t connId; - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) -#else - if (AppConnIsOpen() != DM_CONN_ID_NONE) -#endif /* BT_VER */ - { - switch (btn) { -#if (BT_VER > 8) - case APP_UI_BTN_2_SHORT: - - { - static uint32_t coded_phy_cnt = 0; - /* Toggle PHY Test Mode */ - coded_phy_cnt++; - switch (coded_phy_cnt & 0x3) { - case 0: - /* 1M PHY */ - APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 1: - /* 2M PHY */ - APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, - HCI_PHY_OPTIONS_NONE); - break; - case 2: - /* Coded S2 PHY */ - APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); - break; - case 3: - /* Coded S8 PHY */ - APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); - DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, - HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); - break; - } - break; - } - -#endif /* BT_VER */ - case APP_UI_BTN_2_MED: { - uint16_t version = WdxsFileGetFirmwareVersion(); - APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); - break; - } - - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } else { - switch (btn) { - case APP_UI_BTN_1_SHORT: - /* start advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* Enter bondable mode */ - AppSetBondable(TRUE); - break; - - case APP_UI_BTN_1_LONG: - /* clear all bonding info */ - AppSlaveClearAllBondingInfo(); - AppDbNvmDeleteAll(); - break; - - case APP_UI_BTN_1_EX_LONG: { - const char *pVersion; - StackGetVersionNumber(&pVersion); - datsDisplayStackVersion(pVersion); - } break; - - case APP_UI_BTN_2_SHORT: - /* stop advertising */ - AppAdvStop(); - break; - case APP_UI_BTN_2_MED: { - uint16_t version = WdxsFileGetFirmwareVersion(); - APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); - break; - } - default: - APP_TRACE_INFO0(" - No action assigned"); - break; - } - } -} - -/*************************************************************************************************/ -/*! - * \brief Callback for WSF buffer diagnostic messages. - * - * \param pInfo Diagnostics message - * - * \return None. - */ -/*************************************************************************************************/ -static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) -{ - if (pInfo->type == WSF_BUF_ALLOC_FAILED) { - APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", - pInfo->param.alloc.taskId, pInfo->param.alloc.len); - } -} - -/*************************************************************************************************/ -/*! - * \brief Platform button press handler. - * - * \param[in] btnId button ID. - * \param[in] state button state. See ::PalBtnPos_t. - * - * \return None. - */ -/*************************************************************************************************/ -static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) -{ - if (btnId == 1) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_1_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_1_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_1_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_1_TMR); - } - } else if (btnId == 2) { - /* Start/stop button timer */ - if (state == PAL_BTN_POS_UP) { - /* Button Up, stop the timer, call the action function */ - unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); - if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { - AppUiBtnTest(APP_UI_BTN_2_SHORT); - } else if (btnUs < BTN_MED_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_MED); - } else if (btnUs < BTN_LONG_MS * 1000) { - AppUiBtnTest(APP_UI_BTN_2_LONG); - } else { - AppUiBtnTest(APP_UI_BTN_2_EX_LONG); - } - } else { - /* Button down, start the timer */ - MXC_TMR_SW_Start(BTN_2_TMR); - } - } else { - APP_TRACE_ERR0("Undefined button"); - } -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Dats got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - - /* process security-related messages */ - AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); - - /* process WDXS-related messages */ - WdxsProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - datsProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Resets the system. - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsResetSystem(void) -{ - APP_TRACE_INFO0("Reseting!"); - /* Wait for the console to finish printing */ - volatile int i; - for (i = 0; i < 0xFFFFF; i++) {} - NVIC_SystemReset(); -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void DatsStart(void) -{ - /* Register for stack callbacks */ - DmRegister(datsDmCback); - DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); - AttRegister(datsAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, datsWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); - - /* Register for app framework button callbacks */ - AppUiBtnRegister(datsBtnCback); - - /* Initialize the WDXS File */ - WdxsFileInit(); - - /* Set the WDXS CCC Identifiers */ - WdxsSetCccIdx(WDXS_DC_CH_CCC_IDX, WDXS_AU_CH_CCC_IDX, WDXS_FTC_CH_CCC_IDX, WDXS_FTD_CH_CCC_IDX); - -#if (BT_VER > 8) - WdxsPhyInit(); -#endif /* BT_VER */ - -#if (BT_VER > 8) - DmPhyInit(); -#endif /* BT_VER */ - - WsfNvmInit(); - - WsfBufDiagRegister(datsWsfBufDiagnostics); - - /* Initialize with button press handler */ - PalBtnInit(btnPressHandler); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE_otas/main.c b/Examples/MAX32690/BLE_otas/main.c deleted file mode 100644 index 32c8ff42c84..00000000000 --- a/Examples/MAX32690/BLE_otas/main.c +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Bluetooth data server that advertises as "OTAS" and accepts connection requests. - Demonstrates Over-the-Air (OTA) firmware updates. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" -#include "wut.h" -#include "rtc.h" -#include "trimsir_regs.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "dats_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define DEFAULT_TX_POWER 0 /* dBm */ - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -volatile int wutTrimComplete; - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitDats(void); - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - uint16_t memUsed; - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} - -/*************************************************************************************************/ -/*! -* \fn WUT_IRQHandler -* -* \brief WUY interrupt handler. -* -* \return None. -*/ -/*************************************************************************************************/ -void WUT0_IRQHandler(void) -{ - MXC_WUT_Handler(); -} - -/*************************************************************************************************/ -/*! -* \fn wutTrimCb -* -* \brief Callback function for the WUT 32 kHz crystal trim. -* -* \param err Error code from the WUT driver. -* -* \return None. -*/ -/*************************************************************************************************/ -void wutTrimCb(int err) -{ - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("32 kHz trim error %d\n", err); - } else { - APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> - MXC_F_TRIMSIR_RTC_RTCX1_POS); - } - wutTrimComplete = 1; -} - -/*************************************************************************************************/ -/*! -* \fn setAdvTxPower -* -* \brief Set the default advertising TX power. -* -* \return None. -*/ -/*************************************************************************************************/ -void setAdvTxPower(void) -{ - LlSetAdvTxPower(DEFAULT_TX_POWER); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - /* Set 5.0 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; -#endif - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); -#endif - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; - - /* Set the default connection power level */ - mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - mainWsfInit(); - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ - PalBbEnable(); - - /* Output buffered square wave of 32 kHz clock to GPIO */ - // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); - - /* Execute the trim procedure */ - wutTrimComplete = 0; - MXC_WUT_TrimCrystalAsync(wutTrimCb); - while (!wutTrimComplete) {} - - /* Stop here to measure the 32 kHz clock */ - /* while(1) {} */ - MXC_RTC_SquareWaveStop(); - - /* Shutdown the 32 MHz crystal and the BLE DBB */ - PalBbDisable(); -#endif - - StackInitDats(); - DatsStart(); - - WsfOsEnterMainLoop(); - - /* Does not return. */ - return 0; -} diff --git a/Examples/MAX32690/BLE_otas/wdxs_file.h b/Examples/MAX32690/BLE_otas/wdxs_file.h deleted file mode 100644 index 50a9e31d81f..00000000000 --- a/Examples/MAX32690/BLE_otas/wdxs_file.h +++ /dev/null @@ -1,93 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#ifndef EXAMPLES_MAX32690_BLE_OTAS_WDXS_FILE_H_ -#define EXAMPLES_MAX32690_BLE_OTAS_WDXS_FILE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - uint32_t fileLen; - uint32_t fileCRC; -} fileHeader_t; - -/*! \addtogroup WIRELESS_DATA_EXCHANGE_PROFILE - * \{ */ - -/************************************************************************************************** - Constant Definitions -**************************************************************************************************/ - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Initialize the WDXS File. - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void); - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void); - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void); - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of the WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void); -/*************************************************************************************************/ -/*! - * \brief set the length of the expected file - * - * \return None. - */ -/*************************************************************************************************/ -void initHeader(fileHeader_t *header); - -/*! \} */ /* WIRELESS_DATA_EXCHANGE_PROFILE */ - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32690_BLE_OTAS_WDXS_FILE_H_ diff --git a/Examples/MAX32690/BLE_otas/wdxs_file_int.c b/Examples/MAX32690/BLE_otas/wdxs_file_int.c deleted file mode 100644 index ec93b487091..00000000000 --- a/Examples/MAX32690/BLE_otas/wdxs_file_int.c +++ /dev/null @@ -1,405 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Wireless Data Exchange profile implementation - File Example. - * - * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - -#include -#include -#include "mxc_device.h" -#include "wsf_types.h" -#include "util/wstr.h" -#include "wsf_trace.h" -#include "wsf_assert.h" -#include "wsf_efs.h" -#include "wsf_cs.h" -#include "wsf_msg.h" -#include "util/bstream.h" -#include "svc_wdxs.h" -#include "wdxs/wdxs_api.h" -#include "wdxs/wdxs_main.h" -#include "wdxs_file.h" -#include "dm_api.h" -#include "att_api.h" -#include "app_api.h" -#include "flc.h" - -#ifndef FW_VERSION_MAJOR -#define FW_VERSION_MAJOR 1 -#define FW_VERSION_MINOR 0 -#endif - -#define ERASE_DELAY 50 // ms - -extern uint32_t _flash_update; -extern uint32_t _eflash_update; -static volatile uint32_t verifyLen; -static volatile uint8_t *lastWriteAddr; -static volatile uint32_t lastWriteLen; - -static uint32_t eraseAddress, erasePages; -wsfHandlerId_t eraseHandlerId; -wsfTimer_t eraseTimer; - -/* Prototypes for file functions */ -static uint8_t wdxsFileInitMedia(void); -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); - -static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; -wsfEfsHandle_t otaFileHdl; -#define HEADER_LEN (sizeof(fileHeader_t)) - -/* Use the second half of the flash space for scratch space */ -static const wsfEfsMedia_t WDXS_FileMedia = { - /* uint32_t startAddress; Start address. */ ((uint32_t)&_flash_update), - /* uint32_t endAddress; End address. */ ((uint32_t)&_eflash_update), - /* uint32_t pageSize; Page size. */ MXC_FLASH1_PAGE_SIZE, - /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, - /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, - /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, - /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, - /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle -}; - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for file erase. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - int err; - if (erasePages) { - APP_TRACE_INFO1(">>> Erasing address 0x%x in internal flash <<<", eraseAddress); - - /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ - err = MXC_FLC_PageErase((uint32_t)eraseAddress); - if (err != E_NO_ERROR) { - APP_TRACE_INFO0("There was an erase error"); - return; - } - erasePages--; - eraseAddress += MXC_FLASH1_PAGE_SIZE; - /* Continue next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - } else { - /* Erase is complete */ - APP_TRACE_INFO0(">>> Internal flash erase complete <<<"); - wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); - } -} -/*************************************************************************************************/ -/*! - * \brief Media Init function, called when media is registered. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileInitMedia(void) -{ - MXC_FLC_Init(); - APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); - - /* Setup the erase handler */ - eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); - eraseTimer.handlerId = eraseHandlerId; - - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File erase function. Must be page aligned. - * - * \param pAddress Address in media to start erasing. - * \param size Number of bytes to erase. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) -{ - int err; - volatile uint32_t address32 = (uint32_t)address; - - if (fileHeader.fileLen != 0) { - /* Setup the erase handler variables */ - eraseAddress = address32; - /* calculate pages needed to erase */ - erasePages = (fileHeader.fileLen / MXC_FLASH1_PAGE_SIZE) + 1; - /* Initiate the erase */ - err = MXC_FLC_PageErase((uint32_t)address32); - if (err != E_NO_ERROR) { - APP_TRACE_INFO1("Flash page erase error at 0x%0x", address32); - return WSF_EFS_FAILURE; - } else { - APP_TRACE_INFO1(">>> Initiating erase of %d pages of internal flash <<<", erasePages); - } - erasePages--; - eraseAddress += MXC_FLASH1_PAGE_SIZE; - /* Wait ERASE_DELAY ms before staring next erase */ - WsfTimerStartMs(&eraseTimer, ERASE_DELAY); - - return WSF_EFS_SUCCESS; - } else { - APP_TRACE_INFO0(">>> File size is unknown <<<"); - return WSF_EFS_FAILURE; - } - - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Media Read function. - * - * \param pBuf Buffer to hold data. - * \param pAddress Address in media to read from. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - memcpy(pBuf, pAddress, size); - return WSF_EFS_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief File Write function. - * - * \param pBuf Buffer with data to be written. - * \param address Address in media to write to. - * \param size Size of pBuf in bytes. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) -{ - int err = 0; - err += MXC_FLC_Write((uint32_t)pAddress, size, (uint32_t *)pBuf); - /* verify data was written*/ - err += memcmp(pAddress, pBuf, size); - - if (err == E_NO_ERROR) { - lastWriteAddr = pAddress; - lastWriteLen = size; - APP_TRACE_INFO2("Int. Flash: Wrote %d bytes @ 0x%x", size, pAddress); - return WSF_EFS_SUCCESS; - } - APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); - return WSF_EFS_FAILURE; -} -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); - } - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -/*************************************************************************************************/ -/*! - * \brief Media Specific Command handler. - * - * \param cmd Identifier of the media specific command. - * \param param Optional Parameter to the command. - * - * \return Status of the operation. - */ -/*************************************************************************************************/ -static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) -{ - switch (cmd) { - case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { - /* Currently unimplemented */ - return WDX_FTC_ST_SUCCESS; - } break; - case WSF_EFS_VALIDATE_CMD: - default: { - /* Validate the image with CRC32 */ - uint32_t crcResult = 0; - int err = 0; - - verifyLen = ((uint32_t)lastWriteAddr + lastWriteLen) - WDXS_FileMedia.startAddress; - - APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, - verifyLen); - - crc32((const void *)WDXS_FileMedia.startAddress, verifyLen, &crcResult); - - APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); - APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); - - /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ - if (fileHeader.fileCRC != crcResult) { - APP_TRACE_INFO0("Update file verification failure"); - return WDX_FTC_ST_VERIFICATION; - } - - /* if crc are ok write it to end of file*/ - err += MXC_FLC_Write((WDXS_FileMedia.startAddress + verifyLen), sizeof(crcResult), - (uint32_t *)&crcResult); - uint32_t *temp = (uint32_t *)(WDXS_FileMedia.startAddress + verifyLen); - /* verify data was written*/ - err += memcmp(temp, &crcResult, sizeof(crcResult)); - if (err) { - APP_TRACE_INFO0("Error appending CRC to flash"); - return WDX_FTC_ST_VERIFICATION; - } - - crcResult = 0; - return WDX_FTC_ST_SUCCESS; - } break; - } - return WDX_FTC_ST_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Example of creating a WDXS stream. - * - * \param none - * - * \return None. - */ -/*************************************************************************************************/ -void WdxsFileInit(void) -{ - wsfEsfAttributes_t attr; - char versionString[WSF_EFS_VERSION_LEN]; - - /* Add major number */ - versionString[0] = FW_VERSION_MAJOR; - /* Add "." */ - versionString[1] = '.'; - /* Minor number */ - versionString[2] = FW_VERSION_MINOR; - /* Add termination character */ - versionString[3] = 0; - - /* Register the media for the stream */ - WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); - - /* Set the attributes for the stream */ - attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | - WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | - WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | - WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); - - attr.type = WSF_EFS_FILE_TYPE_BULK; - - /* Potential buffer overrun is intentional to zero out fixed length field */ - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); - /* coverity[overrun-buffer-arg] */ - WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); - - /* Add a file for the stream */ - otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, - WDX_FLASH_MEDIA, &attr, 0); - APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); -} - -/*************************************************************************************************/ -/*! - * \brief Get the base address of the WDXS file. - * - * \return Base address of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetBaseAddr(void) -{ - return WDXS_FileMedia.startAddress; -} - -/*************************************************************************************************/ -/*! - * \brief Get the length of the last verified WDXS file. - * - * \return Verified length of WDXS file. - */ -/*************************************************************************************************/ -uint32_t WdxsFileGetVerifiedLength(void) -{ - return verifyLen; -} - -/*************************************************************************************************/ -/*! - * \brief Get the firmware version of the WDXS file. - * - * \return Firmware version of WDXS file. - */ -/*************************************************************************************************/ -uint16_t WdxsFileGetFirmwareVersion(void) -{ - wsfEsfAttributes_t attr; - uint8_t minor, major; - - WsfEfsGetAttributes(otaFileHdl, &attr); - major = attr.version[0]; - minor = attr.version[2]; - // store major in upper byte and minor in lower byte - return (uint16_t)major << 8 | minor; -} - -void initHeader(fileHeader_t *header) -{ - fileHeader.fileLen = header->fileLen; - fileHeader.fileCRC = header->fileCRC; -} diff --git a/Examples/MAX32690/BLE_periph/.vscode/flash.gdb b/Examples/MAX32690/BLE_periph/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/BLE_periph/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/BLE_periph/Makefile b/Examples/MAX32690/BLE_periph/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/BLE_periph/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/BLE_periph/README.md b/Examples/MAX32690/BLE_periph/README.md deleted file mode 100644 index 4c66022170f..00000000000 --- a/Examples/MAX32690/BLE_periph/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# BLE_periph -Refer to the [BLE_periph](../../../Libraries/Cordio/docs/Applications/BLE_periph.md) documentation in the Cordio Library. - -# NOTE: BLE_periph is a bare bones example with no security and is not guaranteed nor intended to work with Windows, IOS, Android, etc. The example is only designed to operate with other embedded devices with loose security requirements. For a more fully featured application, please checkout BLE_dat(c/s) - -## Software - -### Project Usage - -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. - -### Required Connections - -If using the MAX32690EVKIT: -- Connect a USB cable between the PC and the CN2 (USB/PWR) connector. -- Install headers JP7(RX\_EN) and JP8(TX\_EN). -- Open a terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. -- An antenna or wired connection can be used if SMA is available on the board. - -If using the MAX32690FTHR: -- Connect a USB cable between the PC and the J5 (USB/PWR) connector. -- Open a terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. - - -### Project-Specific Build Notes - Setting `TRACE=1` in [**project.mk**](project.mk) initializes the on-board USB-to-UART adapter for -viewing the trace messages and interacting with the application. Port uses settings: - - Baud : 115200 - - Char size : 8 - - Parity : None - - Stop bits : 1 - - HW Flow Control : No - - SW Flow Control : No -* Setting `SBT=1` in [**project.mk**](project.mk) enables Secure Boot Tools for the project diff --git a/Examples/MAX32690/BLE_periph/main.c b/Examples/MAX32690/BLE_periph/main.c deleted file mode 100644 index 72e8dd03b44..00000000000 --- a/Examples/MAX32690/BLE_periph/main.c +++ /dev/null @@ -1,216 +0,0 @@ -/*************************************************************************************************/ -/*! - * @file main.c - * @brief Simple BLE app that advertises as "Periph". Recommended app for getting started with MSDK BLE. -* -* Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. -* -* Copyright (c) 2019 Packetcraft, Inc. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -/*************************************************************************************************/ - -#include -#include - -#include "wsf_types.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "wsf_msg.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_cs.h" -#include "wsf_timer.h" -#include "wsf_os.h" - -#include "sec_api.h" -#include "hci_handler.h" -#include "dm_handler.h" -#include "l2c_handler.h" -#include "att_handler.h" -#include "smp_handler.h" -#include "l2c_api.h" -#include "att_api.h" -#include "smp_api.h" -#include "app_api.h" -#include "hci_core.h" -#include "app_terminal.h" - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -#include "ll_init_api.h" -#endif - -#include "pal_bb.h" -#include "pal_cfg.h" - -#include "periph_api.h" -#include "app_ui.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! \brief UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U - -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/*! \brief Pool runtime configuration. */ -static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) -static LlRtCfg_t mainLlRtCfg; -#endif - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/*! \brief Stack initialization for app. */ -extern void StackInitPeriph(void); - -/*************************************************************************************************/ -/*! - * \brief RX data received callback. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - */ -/*************************************************************************************************/ -static void appRxCallback(uint8_t *data, uint16_t len) -{ - unsigned i; - - /* Print the received data */ - printf("App received: "); - - for (i = 0; i < len; i++) { - printf("0x%02X ", data[i]); - } - printf("\n"); - - /* Echo the data back to the central */ - if (!PeriphTXData(data, len)) { - printf("Error sending data to peer\n"); - } -} - -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - * - * \return None. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* Configurations must be persistent. */ - static BbRtCfg_t mainBbRtCfg; - - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); -#endif - - uint32_t memUsed; - WsfCsEnter(); - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); - WsfCsExit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +4 for header. */ - const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - - /* Adjust buffer allocation based on platform configuration. */ - mainPoolDesc[2].len = maxRptBufSize; - mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; - mainPoolDesc[3].len = aclBufSize; - mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; -#endif - - const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); - - WsfCsEnter(); - memUsed = WsfBufInit(numPools, mainPoolDesc); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif - - AppTerminalInit(); - -#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) - WsfCsEnter(); - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInit(&llCfg); - WsfHeapAlloc(memUsed); - WsfCsExit(); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - LlSetBdAddr((uint8_t *)&bdAddr); -#endif - - StackInitPeriph(); - PeriphStart(); - - PeriphRegisterRXCallback(appRxCallback); -} - -/*************************************************************************************************/ -/*! -* \fn main -* -* \brief Entry point for demo software. -* -* \param None. -* -* \return None. -*/ -/*************************************************************************************************/ -int main(void) -{ - mainWsfInit(); - - while (1) { - /* Run the WSF OS */ - wsfOsDispatcher(); - - if (!WsfOsActive()) { - /* No WSF tasks are active, optionally sleep */ - } - } - - return 0; -} diff --git a/Examples/MAX32690/BLE_periph/periph_api.h b/Examples/MAX32690/BLE_periph/periph_api.h deleted file mode 100644 index 488aee9339b..00000000000 --- a/Examples/MAX32690/BLE_periph/periph_api.h +++ /dev/null @@ -1,106 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Proprietary data transfer server sample application. - * - * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#ifndef EXAMPLES_MAX32690_BLE_PERIPH_PERIPH_API_H_ -#define EXAMPLES_MAX32690_BLE_PERIPH_PERIPH_API_H_ - -#include "wsf_os.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************************************************************************/ -/*! - * \brief Peripheral RX callback function. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - */ -/*************************************************************************************************/ -typedef void (*periphRxCb_t)(uint8_t *data, uint16_t len); - -/************************************************************************************************** - Function Declarations -**************************************************************************************************/ - -/*************************************************************************************************/ -/*! - * \brief Register the callback for received data. - * - * \param cb Callback function for when data is received. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphRegisterRXCallback(periphRxCb_t cb); - -/*************************************************************************************************/ -/*! - * \brief Send data to the peer. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - * - * \return TRUE if data send, FALSE if error. - */ -/*************************************************************************************************/ -bool_t PeriphTXData(uint8_t *data, uint16_t len); - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphStart(void); - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID for App. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandlerInit(wsfHandlerId_t handlerId); - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for the application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); - -#ifdef __cplusplus -}; -#endif - -#endif // EXAMPLES_MAX32690_BLE_PERIPH_PERIPH_API_H_ diff --git a/Examples/MAX32690/BLE_periph/periph_main.c b/Examples/MAX32690/BLE_periph/periph_main.c deleted file mode 100644 index 5ce69999d70..00000000000 --- a/Examples/MAX32690/BLE_periph/periph_main.c +++ /dev/null @@ -1,400 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Data transmitter sample application. - * - * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ - -#include -#include "wsf_types.h" -#include "util/bstream.h" -#include "wsf_msg.h" -#include "wsf_trace.h" -#include "wsf_buf.h" -#include "wsf_nvm.h" -#include "hci_api.h" -#include "sec_api.h" -#include "dm_api.h" -#include "smp_api.h" -#include "att_api.h" -#include "app_api.h" -#include "app_main.h" -#include "app_db.h" -#include "app_ui.h" -#include "svc_ch.h" -#include "svc_core.h" -#include "svc_wp.h" -#include "util/calc128.h" -#include "gatt/gatt_api.h" -#include "periph_api.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/*! Enumeration of client characteristic configuration descriptors */ -enum { - PERIPH_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - PERIPH_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ - PERIPH_NUM_CCC_IDX -}; - -/************************************************************************************************** - Configurable Parameters -**************************************************************************************************/ - -/*! configurable parameters for advertising */ -static const appAdvCfg_t periphAdvCfg = { - { 30000, 0, 0 }, /*! Advertising durations in ms, 0 corresponds to infinite */ - { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ -}; - -/*! configurable parameters for slave */ -static const appSlaveCfg_t periphSlaveCfg = { - 1, /*! Maximum connections */ -}; - -/*! ATT configurable parameters (increase MTU) */ -static const attCfg_t periphAttCfg = { - 15, /* ATT server service discovery connection idle timeout in seconds */ - 241, /* desired ATT MTU */ - ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ - 4 /* number of queued prepare writes supported by server */ -}; - -/************************************************************************************************** - Advertising Data -**************************************************************************************************/ - -/*! advertising data, discoverable mode */ -static const uint8_t periphAdvDataDisc[] = { - /*! flags */ - 2, /*! length */ - DM_ADV_TYPE_FLAGS, /*! AD type */ - DM_FLAG_LE_GENERAL_DISC | /*! flags */ - DM_FLAG_LE_BREDR_NOT_SUP, - /*! device name */ - 7, /*! length */ - DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ - 'P', 'e', 'r', 'i', 'p', 'h' -}; - -/************************************************************************************************** - Client Characteristic Configuration Descriptors -**************************************************************************************************/ - -/*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t periphCccSet[PERIPH_NUM_CCC_IDX] = { - /* cccd handle value range security level */ - { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* PERIPH_GATT_SC_CCC_IDX */ - { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ -}; - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/*! application control block */ -static struct { - wsfHandlerId_t handlerId; /* WSF handler ID */ - periphRxCb_t rxCb; /* RX Callback function */ - dmConnId_t connId; /* Connection ID */ - bool_t connected; /* Connection state */ -} periphCb; - -/*************************************************************************************************/ -/*! - * \brief Application DM callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphDmCback(dmEvt_t *pDmEvt) -{ - dmEvt_t *pMsg; - uint16_t len; - - len = DmSizeOfEvt(pDmEvt); - - if ((pMsg = WsfMsgAlloc(len)) != NULL) { - memcpy(pMsg, pDmEvt, len); - WsfMsgSend(periphCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATT callback. - * - * \param pEvt ATT callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphAttCback(attEvt_t *pEvt) -{ - attEvt_t *pMsg; - - if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { - memcpy(pMsg, pEvt, sizeof(attEvt_t)); - pMsg->pValue = (uint8_t *)(pMsg + 1); - memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(periphCb.handlerId, pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Application ATTS client characteristic configuration callback. - * - * \param pDmEvt DM callback event - * - * \return None. - */ -/*************************************************************************************************/ -static void periphCccCback(attsCccEvt_t *pEvt) {} - -/*************************************************************************************************/ -/*! - * \brief ATTS write callback for proprietary data service. - * - * \return ATT status. - */ -/*************************************************************************************************/ -uint8_t periphWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, - uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) -{ - /* Call callback with data */ - if (periphCb.rxCb != NULL) { - periphCb.rxCb(pValue, len); - } - - return ATT_SUCCESS; -} - -/*************************************************************************************************/ -/*! - * \brief Set up advertising and other procedures that need to be performed after - * device reset. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void periphSetup(dmEvt_t *pMsg) -{ - /* set advertising data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(periphAdvDataDisc), - (uint8_t *)periphAdvDataDisc); - - /* set advertising data or connectable mode */ - AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(periphAdvDataDisc), - (uint8_t *)periphAdvDataDisc); - - /* start advertising; automatically set connectable/discoverable mode and bondable mode */ - AppAdvStart(APP_MODE_AUTO_INIT); -} - -/*************************************************************************************************/ -/*! - * \brief Process messages from the event handler. - * - * \param pMsg Pointer to message. - * - * \return None. - */ -/*************************************************************************************************/ -static void periphProcMsg(dmEvt_t *pMsg) -{ - uint8_t uiEvent = APP_UI_NONE; - - switch (pMsg->hdr.event) { - case DM_RESET_CMPL_IND: - periphSetup(pMsg); - uiEvent = APP_UI_RESET_CMPL; - break; - - case DM_ADV_START_IND: - uiEvent = APP_UI_ADV_START; - break; - - case DM_ADV_STOP_IND: - uiEvent = APP_UI_ADV_STOP; - break; - - case DM_CONN_OPEN_IND: - /* Save connId */ - periphCb.connId = (dmConnId_t)pMsg->hdr.param; - periphCb.connected = TRUE; - uiEvent = APP_UI_CONN_OPEN; - break; - - case DM_CONN_CLOSE_IND: - periphCb.connected = FALSE; - uiEvent = APP_UI_CONN_CLOSE; - break; - - default: - break; - } - - if (uiEvent != APP_UI_NONE) { - AppUiAction(uiEvent); - } -} - -/*************************************************************************************************/ -/*! - * \brief Send data to the peer. - * - * \param data Pointer to received data. - * \param len Number of bytes received. - * - * \return TRUE if data send, FALSE if error. - */ -/*************************************************************************************************/ -bool_t PeriphTXData(uint8_t *data, uint16_t len) -{ - /* Make sure we're connected */ - if (!periphCb.connected) { - return FALSE; - } - - /* Check if a client characteristic configuration descriptor is enabled and if - the characteristic's security level has been met. */ - if (AttsCccEnabled(periphCb.connId, PERIPH_WP_DAT_CCC_IDX)) { - /* send notification */ - AttsHandleValueNtf(periphCb.connId, WP_DAT_HDL, len, data); - - return TRUE; - } - - return FALSE; -} - -/*************************************************************************************************/ -/*! - * \brief Register the callback for received data. - * - * \param cb Callback function for when data is received. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphRegisterRXCallback(periphRxCb_t cb) -{ - periphCb.rxCb = cb; -} - -/*************************************************************************************************/ -/*! - * \brief Application handler init function called during system initialization. - * - * \param handlerID WSF handler ID. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandlerInit(wsfHandlerId_t handlerId) -{ - uint8_t addr[6] = { 0 }; - APP_TRACE_INFO0("PeriphHandlerInit"); - AppGetBdAddr(addr); - APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], - addr[1], addr[0]); - APP_TRACE_INFO1("Adv local name: %s", &periphAdvDataDisc[5]); - - /* store handler ID */ - periphCb.handlerId = handlerId; - - /* Initialize the RX Callback to NULL */ - periphCb.rxCb = NULL; - - /* Set configuration pointers */ - pAppSlaveCfg = (appSlaveCfg_t *)&periphSlaveCfg; - pAppAdvCfg = (appAdvCfg_t *)&periphAdvCfg; - pAttCfg = (attCfg_t *)&periphAttCfg; - - /* Initialize application framework */ - AppSlaveInit(); - AppServerInit(); -} - -/*************************************************************************************************/ -/*! - * \brief WSF event handler for application. - * - * \param event WSF event mask. - * \param pMsg WSF message. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) -{ - if (pMsg != NULL) { - APP_TRACE_INFO1("Periph got evt %d", pMsg->event); - - /* process ATT messages */ - if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { - /* process server-related ATT messages */ - AppServerProcAttMsg(pMsg); - } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { - /* process DM messages */ - /* process advertising and connection-related messages */ - AppSlaveProcDmMsg((dmEvt_t *)pMsg); - } - - /* perform profile and user interface-related operations */ - periphProcMsg((dmEvt_t *)pMsg); - } -} - -/*************************************************************************************************/ -/*! - * \brief Start the application. - * - * \return None. - */ -/*************************************************************************************************/ -void PeriphStart(void) -{ - /* Register for stack callbacks */ - DmRegister(periphDmCback); - DmConnRegister(DM_CLIENT_ID_APP, periphDmCback); - AttRegister(periphAttCback); - AttConnRegister(AppServerConnCback); - AttsCccRegister(PERIPH_NUM_CCC_IDX, (attsCccSet_t *)periphCccSet, periphCccCback); - - /* Initialize attribute server database */ - SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); - SvcCoreAddGroup(); - SvcWpCbackRegister(NULL, periphWpWriteCback); - SvcWpAddGroup(); - - /* Set Service Changed CCCD index. */ - GattSetSvcChangedIdx(PERIPH_GATT_SC_CCC_IDX); - - /* Reset the device */ - DmDevReset(); -} diff --git a/Examples/MAX32690/BLE4_ctr/.cproject b/Examples/MAX32690/Bluetooth/BLE4_ctr/.cproject similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.cproject rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.cproject diff --git a/Examples/MAX32690/BLE4_ctr/.project b/Examples/MAX32690/Bluetooth/BLE4_ctr/.project similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.project rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.project diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE4_ctr/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.settings/language.settings.xml diff --git a/Examples/MAX32665/Bootloader_Host/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/Bootloader_Host/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE4_ctr/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/README.md diff --git a/Examples/MAX32665/RF_Test/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/RF_Test/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/TRNG/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/TRNG/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE4_ctr/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/launch.json diff --git a/Examples/MAX32690/BLE4_ctr/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/settings.json diff --git a/Examples/MAX32690/BLE4_ctr/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE4_ctr/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE4_ctr/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE4_ctr/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE4_ctr/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE4_ctr/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE4_ctr/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE4_ctr/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE4_ctr/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE4_ctr/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE4_ctr/BLE4_ctr.launch b/Examples/MAX32690/Bluetooth/BLE4_ctr/BLE4_ctr.launch similarity index 100% rename from Examples/MAX32690/BLE4_ctr/BLE4_ctr.launch rename to Examples/MAX32690/Bluetooth/BLE4_ctr/BLE4_ctr.launch diff --git a/Examples/MAX32690/BLE4_ctr/IAR/BLE4_ctr.ewd b/Examples/MAX32690/Bluetooth/BLE4_ctr/IAR/BLE4_ctr.ewd similarity index 100% rename from Examples/MAX32690/BLE4_ctr/IAR/BLE4_ctr.ewd rename to Examples/MAX32690/Bluetooth/BLE4_ctr/IAR/BLE4_ctr.ewd diff --git a/Examples/MAX32690/BLE4_ctr/IAR/BLE4_ctr.ewp b/Examples/MAX32690/Bluetooth/BLE4_ctr/IAR/BLE4_ctr.ewp similarity index 100% rename from Examples/MAX32690/BLE4_ctr/IAR/BLE4_ctr.ewp rename to Examples/MAX32690/Bluetooth/BLE4_ctr/IAR/BLE4_ctr.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE4_ctr/Makefile b/Examples/MAX32690/Bluetooth/BLE4_ctr/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE4_ctr/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE4_ctr/README.md b/Examples/MAX32690/Bluetooth/BLE4_ctr/README.md similarity index 100% rename from Examples/MAX32690/BLE4_ctr/README.md rename to Examples/MAX32690/Bluetooth/BLE4_ctr/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE4_ctr/main.c b/Examples/MAX32690/Bluetooth/BLE4_ctr/main.c new file mode 100644 index 00000000000..cdcd9b61eeb --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE4_ctr/main.c @@ -0,0 +1,203 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth version 4.2 controller, accepts HCI commands via Serial Port. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + + /* Set 4.2 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_4_2; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + wsfBufPoolDesc_t poolDesc[] = { { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { aclBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs } }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) { + eventPending = WsfTokenService(); + } +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) { + eventPending = LhciSnifferHandler(); + } +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + LlSetAdvTxPower(DEFAULT_TX_POWER); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE4_ctr/project.mk b/Examples/MAX32690/Bluetooth/BLE4_ctr/project.mk similarity index 100% rename from Examples/MAX32690/BLE4_ctr/project.mk rename to Examples/MAX32690/Bluetooth/BLE4_ctr/project.mk diff --git a/Examples/MAX32690/BLE5_ctr/.cproject b/Examples/MAX32690/Bluetooth/BLE5_ctr/.cproject similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.cproject rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.cproject diff --git a/Examples/MAX32690/BLE5_ctr/.project b/Examples/MAX32690/Bluetooth/BLE5_ctr/.project similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.project rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.project diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE5_ctr/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.settings/language.settings.xml diff --git a/Examples/MAX32665/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE5_ctr/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/README.md diff --git a/Examples/MAX32665/USB_CDCACM/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Temp_Monitor/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32572/Temp_Monitor/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE5_ctr/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/launch.json diff --git a/Examples/MAX32690/BLE5_ctr/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/settings.json diff --git a/Examples/MAX32690/BLE5_ctr/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE5_ctr/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE5_ctr/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE5_ctr/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE5_ctr/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE5_ctr/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE5_ctr/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE5_ctr/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE5_ctr/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE5_ctr/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE5_ctr/BLE5_ctr.launch b/Examples/MAX32690/Bluetooth/BLE5_ctr/BLE5_ctr.launch similarity index 100% rename from Examples/MAX32690/BLE5_ctr/BLE5_ctr.launch rename to Examples/MAX32690/Bluetooth/BLE5_ctr/BLE5_ctr.launch diff --git a/Examples/MAX32690/BLE5_ctr/IAR/BLE5_ctr.ewd b/Examples/MAX32690/Bluetooth/BLE5_ctr/IAR/BLE5_ctr.ewd similarity index 100% rename from Examples/MAX32690/BLE5_ctr/IAR/BLE5_ctr.ewd rename to Examples/MAX32690/Bluetooth/BLE5_ctr/IAR/BLE5_ctr.ewd diff --git a/Examples/MAX32690/BLE5_ctr/IAR/BLE5_ctr.ewp b/Examples/MAX32690/Bluetooth/BLE5_ctr/IAR/BLE5_ctr.ewp similarity index 100% rename from Examples/MAX32690/BLE5_ctr/IAR/BLE5_ctr.ewp rename to Examples/MAX32690/Bluetooth/BLE5_ctr/IAR/BLE5_ctr.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE5_ctr/Makefile b/Examples/MAX32690/Bluetooth/BLE5_ctr/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE5_ctr/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE5_ctr/README.md b/Examples/MAX32690/Bluetooth/BLE5_ctr/README.md similarity index 100% rename from Examples/MAX32690/BLE5_ctr/README.md rename to Examples/MAX32690/Bluetooth/BLE5_ctr/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE5_ctr/main.c b/Examples/MAX32690/Bluetooth/BLE5_ctr/main.c new file mode 100644 index 00000000000..7bb51c18a2b --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE5_ctr/main.c @@ -0,0 +1,290 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth version 5.2 controller, accepts HCI commands via Serial Port. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_cs.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "mxc_device.h" +#include "uart.h" +#include "nvic_table.h" +#include "board.h" +#include "pal_timer.h" + +#define MAX_PRIORITY ((0x1 << __NVIC_PRIO_BITS) - 1) + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = BT_VER; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; + + /* Adjust the extended advertising and ISO settings */ + mainLlRtCfg.maxAdvSets = 2; + mainLlRtCfg.maxAdvReports = 4; + mainLlRtCfg.numIsoTxBuf = 8; + mainLlRtCfg.maxCis = 2; + mainLlRtCfg.maxBis = 2; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Use single pool for data buffers. */ +#if (BT_VER > 9) + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) { + eventPending = WsfTokenService(); + } +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) { + eventPending = LhciSnifferHandler(); + } +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Adjust interrupt priorities to let HCI UART interrupt have second highest after PAL timer + * + * \return None + */ +/*************************************************************************************************/ +void setInterruptPriority(void) +{ + /* Interrupts using FreeRTOS functions must have priorities between MAX_PRIORITY and + configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ + + /* Setup BLE hardware interrupt priorities */ + NVIC_SetPriority(BTLE_TX_DONE_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SFD_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SFD_TO_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_CFO_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_SIG_DET_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_TX_AES_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_RX_AES_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (MAX_PRIORITY - 2)); + NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (MAX_PRIORITY - 2)); + + /* Setup scheduler timer priorities */ + NVIC_SetPriority(TMR0_IRQn, (MAX_PRIORITY - 1)); + NVIC_SetPriority(TMR1_IRQn, (MAX_PRIORITY - 1)); + + NVIC_SetPriority(WUT0_IRQn, (MAX_PRIORITY - 1)); + + /* Setup additional peripheral timer priorities */ + NVIC_SetPriority(UART1_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(UART2_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(UART3_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(DMA0_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA1_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA2_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(DMA3_IRQn, (MAX_PRIORITY - 0)); + + NVIC_SetPriority(GPIO0_IRQn, (MAX_PRIORITY - 0)); + NVIC_SetPriority(GPIO1_IRQn, (MAX_PRIORITY - 0)); + + /* Trace UART */ + NVIC_SetPriority(UART0_IRQn, 3); + /* HCI UART highest priority */ + NVIC_SetPriority(MXC_UART_GET_IRQ(MXC_UART_GET_UART(HCI_UART)), 0); + /* PAL Timer */ + PalTimerSetIRQPriority(2); +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + LlSetAdvTxPower(DEFAULT_TX_POWER); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + setInterruptPriority(); + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE5_ctr/project.mk b/Examples/MAX32690/Bluetooth/BLE5_ctr/project.mk similarity index 100% rename from Examples/MAX32690/BLE5_ctr/project.mk rename to Examples/MAX32690/Bluetooth/BLE5_ctr/project.mk diff --git a/Examples/MAX32690/BLE_FreeRTOS/.cproject b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.cproject similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.cproject rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.cproject diff --git a/Examples/MAX32690/BLE_FreeRTOS/.project b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.project similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.project rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.project diff --git a/Examples/MAX32665/USB_HIDKeyboard/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.settings/language.settings.xml diff --git a/Examples/MAX32665/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_FreeRTOS/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/README.md diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/UART/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/UART/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_FreeRTOS/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_FreeRTOS/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_FreeRTOS/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_FreeRTOS/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_FreeRTOS/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_FreeRTOS/BLE_FreeRTOS.launch b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/BLE_FreeRTOS.launch similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/BLE_FreeRTOS.launch rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/BLE_FreeRTOS.launch diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h new file mode 100644 index 00000000000..6aaa8d0dacb --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/FreeRTOSConfig.h @@ -0,0 +1,152 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ + +#include +#include "max32690.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* CMSIS keeps a global updated with current system clock in Hz */ +#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) + +#define SLEEP_LED 1 +#define DEEPSLEEP_LED 0 + +/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ +// #define configUSE_TICKLESS_IDLE 1 + +/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will +increase the amount of time spent in standby mode, thus reducing average power consumption. */ +#ifdef configUSE_TICKLESS_IDLE +#define configTICK_RATE_HZ ((portTickType)10000) +#else +#define configTICK_RATE_HZ ((portTickType)1000) +#endif + +#define configRTC_TICK_RATE_HZ (32768) + +#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) + +#define configMINIMAL_STACK_SIZE ((uint16_t)128) + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 0 +#define configUSE_CO_ROUTINES 0 +#define configUSE_16_BIT_TICKS 0 +#define configUSE_MUTEXES 1 + +/* Define to trap errors during development. */ +void vAssertCalled(const char *const pcFileName, uint32_t ulLine); +#define configASSERT(x) \ + if ((x) == 0) \ + vAssertCalled(__FILE__, __LINE__) + +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) +#define configTIMER_QUEUE_LENGTH 8 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE + +/* Run time and task stats gathering related definitions. */ +#define configUSE_TRACE_FACILITY 1 +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelay 1 + +/* # of priority bits (configured in hardware) is provided by CMSIS */ +#define configPRIO_BITS __NVIC_PRIO_BITS + +#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) + +/* Only the top three bits are implemented. This is the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY \ + ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) + +/* Priority 5, or 160 as only the top three bits are implemented. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) + +/* Alias the default handler names to match CMSIS weak symbols */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#ifdef configUSE_TICKLESS_IDLE +/* Provide routines for tickless idle pre- and post- processing */ +void vPreSleepProcessing(uint32_t *); +void vPostSleepProcessing(uint32_t); +#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); +#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); +#endif + +/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_FREERTOS_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32690/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewd b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewd similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewd rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewd diff --git a/Examples/MAX32690/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewp b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewp similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewp rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/IAR/BLE_FreeRTOS.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/Makefile b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_FreeRTOS/README.md b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/README.md similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/README.md rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/dats_api.h b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/dats_api.h new file mode 100644 index 00000000000..646fb83e58d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_FREERTOS_DATS_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/dats_main.c b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/dats_main.c new file mode 100644 index 00000000000..4987581980b --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/dats_main.c @@ -0,0 +1,927 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_1M 1 +#define DATS_PHY_2M 2 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 60000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 5000, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + (50 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (100 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'D', + 'A', + 'T', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello back"; + + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datsCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + if (len < 64) { + /* print received data if not a speed test message */ + APP_TRACE_INFO0((const char *)pValue); + + /* send back some data */ + datsSendData(connId); + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datsOobCfg != NULL) { + DmSecSetOob(connId, datsOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/freertos_tickless.c new file mode 100644 index 00000000000..f62c60b4ddd --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/freertos_tickless.c @@ -0,0 +1,289 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Maxim CMSIS */ +#include "mxc_device.h" +#include "board.h" +#include "mxc_assert.h" +#include "lp.h" +#include "pwrseq_regs.h" +#include "wut.h" +#include "mcr_regs.h" +#include "icc.h" +#include "pb.h" +#include "led.h" +#include "uart.h" + +/* FreeRTOS includes */ +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +/* Bluetooth Cordio library */ +#include "pal_timer.h" +#include "pal_uart.h" +#include "pal_bb.h" + +#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ +#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ +#define WAKEUP_US 500 /* Deep sleep recovery time, units of us */ + +/* Minimum ticks before SysTick interrupt, units of system clock ticks. + * Convert CPU_CLOCK_HZ to units of ticks per us + */ +#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) + +/* + * Sleep-check function + * + * Your code should over-ride this weak function and return E_NO_ERROR if + * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other + * return code will prevent FreeRTOS from entering tickless idle. + */ +int freertos_permit_tickless(void) +{ + /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ + if (MXC_WUT_TrimPending() != E_NO_ERROR) { + return E_BUSY; + } + + /* Figure out if the UART is active */ + if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { + return E_BUSY; + } + + /* Prevent characters from being corrupted if still transmitting, + UART will shutdown in deep sleep */ + if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { + return E_BUSY; + } + + return E_NO_ERROR; +} + +/* + * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c + * + * DEEPSLEEP mode will stop SysTick from counting, so that can't be + * used to wake up. Instead, calculate a wake-up period for the WUT to + * interrupt the WFI and continue execution. + * + */ +void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) +{ + uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; + uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; + bool_t schTimerActive; + + /* We do not currently handle to case where the WUT is slower than the RTOS tick */ + MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); + + if (SysTick->VAL < MIN_SYSTICK) { + /* Avoid sleeping too close to a systick interrupt */ + return; + } + + /* Calculate the number of WUT ticks, but we need one to synchronize */ + idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / + (uint64_t)configTICK_RATE_HZ; + + if (idleTicks > MAX_WUT_TICKS) { + idleTicks = MAX_WUT_TICKS; + } + + /* Check to see if we meet the minimum requirements for deep sleep */ + if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { + return; + } + + /* Enter a critical section but don't use the taskENTER_CRITICAL() + method as that will mask interrupts that should exit sleep mode. */ + __asm volatile("cpsid i"); + + /* If a context switch is pending or a task is waiting for the scheduler + to be unsuspended then abandon the low power entry. */ + /* Also check the MXC drivers for any in-progress activity */ + if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || + (freertos_permit_tickless() != E_NO_ERROR)) { + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + + /* Determine if the Bluetooth scheduler is running */ + if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { + schTimerActive = TRUE; + } else { + schTimerActive = FALSE; + } + + if (!schTimerActive) { + uint32_t ts; + if (PalBbGetTimestamp(&ts)) { + /*Determine if PalBb is active, return if we get a valid time stamp indicating + * that the scheduler is waiting for a PalBb event */ + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + } + + /* Disable SysTick */ + SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); + + /* Enable wakeup from WUT */ + NVIC_EnableIRQ(WUT0_IRQn); + MXC_LP_EnableWUTAlarmWakeup(); + + /* Determine if we need to snapshot the PalBb clock */ + if (schTimerActive) { + /* Snapshot the current WUT value with the PalBb clock */ + MXC_WUT_Store(); + preCapture = MXC_WUT_GetCount(); + schUsec = PalTimerGetExpTime(); + + /* Adjust idleTicks for the time it takes to restart the BLE hardware */ + idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); + + /* Calculate the time to the next BLE scheduler event */ + if (schUsec < WAKEUP_US) { + bleSleepTicks = 0; + } else { + bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * + (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; + } + } else { + /* Snapshot the current WUT value */ + MXC_WUT_Edge(); + preCapture = MXC_WUT_GetCount(); + bleSleepTicks = 0; + schUsec = 0; + } + + /* Sleep for the shortest tick duration */ + if ((schTimerActive) && (bleSleepTicks < idleTicks)) { + dsTicks = bleSleepTicks; + } else { + dsTicks = idleTicks; + } + + /* Bound the deep sleep time */ + if (dsTicks > MAX_WUT_TICKS) { + dsTicks = MAX_WUT_TICKS; + } + + /* Don't deep sleep if we don't have time */ + if (dsTicks >= MIN_WUT_TICKS) { + /* Arm the WUT interrupt */ + MXC_WUT->cmp = preCapture + dsTicks; + + if (schTimerActive) { + /* Stop the BLE scheduler timer */ + PalTimerStop(); + + /* Shutdown BB hardware */ + PalBbDisable(); + } + + LED_Off(SLEEP_LED); + LED_Off(DEEPSLEEP_LED); + + MXC_LP_EnterStandbyMode(); + + LED_On(DEEPSLEEP_LED); + LED_On(SLEEP_LED); + + if (schTimerActive) { + /* Enable and restore the BB hardware */ + PalBbEnable(); + + PalBbRestore(); + + /* Restore the BB counter */ + MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); + + /* Restart the BLE scheduler timer */ + dsWutTicks = MXC_WUT->cnt - preCapture; + schUsecElapsed = + (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; + + int palTimerStartTicks = schUsec - schUsecElapsed; + if (palTimerStartTicks < 1) { + palTimerStartTicks = 1; + } + PalTimerStart(palTimerStartTicks); + } + } + + /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ + MXC_WUT_Edge(); + postCapture = MXC_WUT_GetCount(); + dsWutTicks = postCapture - preCapture; + + /* + * Advance ticks by # actually elapsed + */ + dsSysTickPeriods = + (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; + vTaskStepTick(dsSysTickPeriods); + + /* Re-enable SysTick */ + SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/main.c b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/main.c new file mode 100644 index 00000000000..3b19804581a --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/main.c @@ -0,0 +1,189 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief BLE_FreeRTOS + * @details This example demonstrates FreeRTOS with BLE capabilities. + */ + +#include +#include +#include +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "mxc_device.h" +#include "wut.h" +#include "lp.h" +#include "led.h" +#include "board.h" + +/* Stringification macros */ +#define STRING(x) STRING_(x) +#define STRING_(x) #x + +extern void bleStartup(void); + +/***** Functions *****/ + +/* =| vAssertCalled |============================== + * + * Called when an assertion is detected. Use debugger to backtrace and + * continue. + * + * ======================================================= + */ +void vAssertCalled(const char *const pcFileName, uint32_t ulLine) +{ + volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0; + + /* Parameters are not used. */ + (void)ulLine; + (void)pcFileName; + + __asm volatile("cpsid i"); + { + /* You can step out of this function to debug the assertion by using + the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero + value. */ + while (ulSetToNonZeroInDebuggerToContinue == 0) {} + } + __asm volatile("cpsie i"); +} + +/* =| vApplicationIdleHook |============================== + * + * Call the user defined function from within the idle task. This + * allows the application designer to add background functionality + * without the overhead of a separate task. + * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, + * CALL A FUNCTION THAT MIGHT BLOCK. + * + * ======================================================= + */ +void vApplicationIdleHook(void) +{ + /* Sleep while idle */ + LED_Off(SLEEP_LED); + + MXC_LP_EnterSleepMode(); + + LED_On(SLEEP_LED); +} + +/* =| main |============================================== + * + * This program demonstrates FreeRTOS tasks, mutexes. + * + * ======================================================= + */ +int main(void) +{ + /* Print banner (RTOS scheduler not running) */ + printf("\n-=- %s BLE FreeRTOS (%s) Demo -=-\n", STRING(TARGET), tskKERNEL_VERSION_NUMBER); +#if configUSE_TICKLESS_IDLE + printf("Tickless idle is enabled\n"); + /* Initialize CPU Active LED */ + LED_On(SLEEP_LED); + LED_On(DEEPSLEEP_LED); +#endif + printf("SystemCoreClock = %d\n", SystemCoreClock); + + /* Delay to prevent bricks */ + volatile int i; + for (i = 0; i < 0x3FFFFF; i++) {} + + /* Start the BLE application */ + bleStartup(); + + /* Start scheduler */ + vTaskStartScheduler(); + + /* This code is only reached if the scheduler failed to start */ + printf("ERROR: FreeRTOS did not start due to above error!\n"); + while (1) { + __NOP(); + } + + /* Quiet GCC warnings */ + return -1; +} + +typedef struct __attribute__((packed)) ContextStateFrame { + uint32_t r0; + uint32_t r1; + uint32_t r2; + uint32_t r3; + uint32_t r12; + uint32_t lr; + uint32_t return_address; + uint32_t xpsr; +} sContextStateFrame; + +/*****************************************************************/ +void HardFault_Handler(void) +{ + __asm(" TST LR, #4\n" + " ITE EQ \n" + " MRSEQ R0, MSP \n" + " MRSNE R0, PSP \n" + " B HardFault_Decoder \n"); +} + +/*****************************************************************/ +/* Disable optimizations for this function so "frame" argument */ +/* does not get optimized away */ +__attribute__((optimize("O0"))) void HardFault_Decoder(sContextStateFrame *frame) +{ + /* Hang here */ + while (1) {} +} diff --git a/Examples/MAX32690/BLE_FreeRTOS/project.mk b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/project.mk similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/project.mk rename to Examples/MAX32690/Bluetooth/BLE_FreeRTOS/project.mk diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/stack_dats.c b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/stack_dats.c new file mode 100644 index 00000000000..80a5feec02f --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/stack_dats.c @@ -0,0 +1,385 @@ +/*************************************************************************************************/ +/*! + * \file stack_dats.c + * + * \brief Stack initialization for dats. + * + * Copyright (c) 2016-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include + +#include "app_api.h" +#include "app_terminal.h" +#include "app_ui.h" +#include "att_api.h" +#include "att_handler.h" +#include "dats_api.h" +#include "dm_handler.h" +#include "hci_core.h" +#include "hci_defs.h" +#include "hci_handler.h" +#include "l2c_api.h" +#include "l2c_handler.h" +#include "ll_init_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "sec_api.h" +#include "smp_api.h" +#include "smp_handler.h" +#include "svc_core.h" +#include "svc_dis.h" +#include "util/bstream.h" +#include "wdxs/wdxs_api.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_bufio.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_msg.h" +#include "wsf_os.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_types.h" +#include "pal_led.h" + +#include "FreeRTOSConfig.h" + +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" +#include "mxc_device.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, + { 32, 4 }, + { 192, 8 }, + { 256, 16 }, + { 512, 4 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Initialize stack. + * + * \return None. + */ +/*************************************************************************************************/ +void StackInitDats(void) +{ + wsfHandlerId_t handlerId; + + SecInit(); + SecAesInit(); + SecCmacInit(); + SecEccInit(); + + handlerId = WsfOsSetNextHandler(HciHandler); + HciHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(DmHandler); + DmDevVsInit(0); + DmConnInit(); + DmAdvInit(); + DmConnSlaveInit(); + DmSecInit(); + DmSecLescInit(); + DmPrivInit(); + DmHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(L2cSlaveHandler); + L2cSlaveHandlerInit(handlerId); + L2cInit(); + L2cSlaveInit(); + + handlerId = WsfOsSetNextHandler(AttHandler); + AttHandlerInit(handlerId); + AttsInit(); + AttsIndInit(); + + handlerId = WsfOsSetNextHandler(SmpHandler); + SmpHandlerInit(handlerId); + SmprInit(); + SmprScInit(); + HciSetMaxRxAclLen(100); + + handlerId = WsfOsSetNextHandler(AppHandler); + AppHandlerInit(handlerId); + + handlerId = WsfOsSetNextHandler(DatsHandler); + DatsHandlerInit(handlerId); +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT0_IRQHandler(void) +{ + MXC_WUT_IntClear(); + NVIC_ClearPendingIRQ(WUT0_IRQn); + MXC_WUT_Handler(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +void setInterruptPriority(void) +{ + /* Interrupts using FreeRTOS functions must have priorities between configMAX_PRIORITIES and + configMAX_SYSCALL_INTERRUPT_PRIORITY, lower priority number is higher priority */ + + /* Setup BLE hardware interrupt priorities */ + NVIC_SetPriority(BTLE_TX_DONE_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_RCVD_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_ENG_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SFD_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SFD_TO_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_GP_EVENT_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_CFO_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_SIG_DET_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_AGC_EVENT_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RFFE_SPIM_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_TX_AES_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_RX_AES_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_INV_APB_ADDR_IRQn, (configMAX_PRIORITIES - 2)); + NVIC_SetPriority(BTLE_IQ_DATA_VALID_IRQn, (configMAX_PRIORITIES - 2)); + + /* Setup scheduler timer priorities */ + NVIC_SetPriority(TMR0_IRQn, (configMAX_PRIORITIES - 1)); + NVIC_SetPriority(TMR1_IRQn, (configMAX_PRIORITIES - 1)); + + NVIC_SetPriority(WUT0_IRQn, configMAX_PRIORITIES - 1); + + /* Setup additional peripheral timer priorities */ + NVIC_SetPriority(UART0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART1_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART2_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(UART3_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(DMA0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA1_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA2_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(DMA3_IRQn, (configMAX_PRIORITIES - 0)); + + NVIC_SetPriority(GPIO0_IRQn, (configMAX_PRIORITIES - 0)); + NVIC_SetPriority(GPIO1_IRQn, (configMAX_PRIORITIES - 0)); +} + +void trim32k(void) +{ + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + NVIC_EnableIRQ(WUT0_IRQn); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + if (MXC_WUT_TrimCrystalAsync(wutTrimCb) != E_NO_ERROR) { + APP_TRACE_INFO0("Error with 32k trim"); + } else { + while (!wutTrimComplete) {} + } + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +} + +/*************************************************************************************************/ +/*! + * \brief Initialize BLE. + * + * \return None. + */ +/*************************************************************************************************/ +void bleStartup(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + trim32k(); +#endif + + setInterruptPriority(); + +#if configUSE_TICKLESS_IDLE + /* Disable Cordio stack usage of the LEDs */ + PalLedDeInit(); +#endif + + StackInitDats(); + DatsStart(); +} diff --git a/Examples/MAX32690/BLE_datc/.cproject b/Examples/MAX32690/Bluetooth/BLE_datc/.cproject similarity index 100% rename from Examples/MAX32690/BLE_datc/.cproject rename to Examples/MAX32690/Bluetooth/BLE_datc/.cproject diff --git a/Examples/MAX32690/BLE_datc/.project b/Examples/MAX32690/Bluetooth/BLE_datc/.project similarity index 100% rename from Examples/MAX32690/BLE_datc/.project rename to Examples/MAX32690/Bluetooth/BLE_datc/.project diff --git a/Examples/MAX32665/USB_MassStorage/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_datc/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_datc/.settings/language.settings.xml diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_datc/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_datc/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_datc/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_datc/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_datc/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_datc/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_datc/.vscode/README.md diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_datc/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_datc/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/USB_CDCACM/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_datc/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/USB_CDCACM/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_datc/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_datc/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_datc/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_datc/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_datc/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_datc/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_datc/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_datc/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_datc/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_datc/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_datc/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_datc/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_datc/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_datc/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_datc/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_datc/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_datc/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_datc/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_datc/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_datc/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_datc/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_datc/BLE_datc.launch b/Examples/MAX32690/Bluetooth/BLE_datc/BLE_datc.launch similarity index 100% rename from Examples/MAX32690/BLE_datc/BLE_datc.launch rename to Examples/MAX32690/Bluetooth/BLE_datc/BLE_datc.launch diff --git a/Examples/MAX32690/BLE_datc/IAR/BLE_datc.ewd b/Examples/MAX32690/Bluetooth/BLE_datc/IAR/BLE_datc.ewd similarity index 100% rename from Examples/MAX32690/BLE_datc/IAR/BLE_datc.ewd rename to Examples/MAX32690/Bluetooth/BLE_datc/IAR/BLE_datc.ewd diff --git a/Examples/MAX32690/BLE_datc/IAR/BLE_datc.ewp b/Examples/MAX32690/Bluetooth/BLE_datc/IAR/BLE_datc.ewp similarity index 100% rename from Examples/MAX32690/BLE_datc/IAR/BLE_datc.ewp rename to Examples/MAX32690/Bluetooth/BLE_datc/IAR/BLE_datc.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_datc/Makefile b/Examples/MAX32690/Bluetooth/BLE_datc/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_datc/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_datc/README.md b/Examples/MAX32690/Bluetooth/BLE_datc/README.md similarity index 100% rename from Examples/MAX32690/BLE_datc/README.md rename to Examples/MAX32690/Bluetooth/BLE_datc/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_datc/datc_api.h b/Examples/MAX32690/Bluetooth/BLE_datc/datc_api.h new file mode 100644 index 00000000000..fb07ee8caf1 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_datc/datc_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_DATC_DATC_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_DATC_DATC_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_DATC_DATC_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_datc/datc_main.c b/Examples/MAX32690/Bluetooth/BLE_datc/datc_main.c new file mode 100644 index 00000000000..2432020f45c --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_datc/datc_main.c @@ -0,0 +1,1403 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application for Nordic-ble. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "dm_api.h" +#include "dm_priv.h" +#include "gap/gap_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_cfg.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_core.h" +#include "svc_ch.h" +#include "gatt/gatt_api.h" +#include "wpc/wpc_api.h" +#include "datc_api.h" +#include "util/calc128.h" +#include "pal_btn.h" +#include "pal_uart.h" +#include "tmr.h" +#include "sdsc_api.h" + +/************************************************************************************************** +Macros +**************************************************************************************************/ +#if (BT_VER > 8) +/* PHY Test Modes */ +#define DATC_PHY_1M 1 +#define DATC_PHY_2M 2 +#define DATC_PHY_CODED 3 +#endif /* BT_VER */ + +#define SPEED_TEST_COUNT 5000 + +/* Max value is 238 */ +#define SPEED_TEST_PACKET_LEN 238 +#define SPEED_TEST_TMR MXC_TMR3 + +#define SCAN_START_EVT 0x99 +#define SCAN_START_MS 500 + +/* Down sample the number of scan reports we print */ +#define SCAN_REPORT_DOWN_SAMPLE 20 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR2 + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +struct { + uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ + wsfHandlerId_t handlerId; /*! WSF hander ID */ + bool_t scanning; /*! TRUE if scanning */ + bool_t autoConnect; /*! TRUE if auto-connecting */ + uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ + uint8_t hdlListLen; /*! Cached handle list length */ + uint8_t btnConnId; /*! The index of the connection ID for button presses */ +#if (BT_VER > 8) + uint8_t phyMode[DM_CONN_MAX]; /*! PHY Test Mode */ +#endif /* BT_VER */ + appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ + unsigned speedTestCounter; + wsfTimer_t scanTimer; /* Timer for starting the scanner */ +} datcCb; + +/*! connection control block */ +typedef struct { + appDbHdl_t dbHdl; /*! Device database record handle type */ + uint8_t addrType; /*! Type of address of device to connect to */ + bdAddr_t addr; /*! Address of device to connect to */ + bool_t doConnect; /*! TRUE to issue connect on scan complete */ +} datcConnInfo_t; + +datcConnInfo_t datcConnInfo; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for master */ +static const appMasterCfg_t datcMasterCfg = { + 96, /*! The scan interval, in 0.625 ms units */ + 48, /*! The scan window, in 0.625 ms units */ + 0, /*! The scan duration in ms */ + DM_DISC_MODE_NONE, /*! The GAP discovery mode */ + DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ +}; + +/*! Configurable security parameters to set +* pairing and authentication requirements. +* +* Authentication and bonding flags +* -DM_AUTH_BOND_FLAG : Bonding requested +* -DM_AUTH_KP_FLAG : Keypress notifications requested +* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested, + pairing method is determined by IO capabilities below +* -DM_AUTH_SC_FLAG : LE Secure Connections requested +* +* Initiator key distribution flags +* -DM_KEY_DIST_LTK : Distribute LTK used for encryption +* -DM_KEY_DIST_IRK : Distribute IRK used for privacy +* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data +*/ +static const appSecCfg_t datcSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/* OOB UART parameters */ +#define OOB_BAUD 115200 +#define OOB_FLOW FALSE + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datcSendOobData = FALSE; + +/* OOB Connection identifier */ +dmConnId_t oobConnId; + +/*! SMP security parameter configuration +* +* I/O Capability Codes to be set for +* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets +* when the MITM flag is set in Configurable security parameters above. +* -SMP_IO_DISP_ONLY : Display only. +* -SMP_IO_DISP_YES_NO : Display yes/no. +* -SMP_IO_KEY_ONLY : Keyboard only. +* -SMP_IO_NO_IN_NO_OUT : No input, no output. +* -SMP_IO_KEY_DISP : Keyboard display. +*/ +static const smpCfg_t datcSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_KEY_ONLY, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! Connection parameters */ +static const hciConnSpec_t datcConnCfg = { + 6, /*! Minimum connection interval in 1.25ms units */ + 6, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 0, /*! Unused */ + 0 /*! Unused */ +}; + +/*! Configurable parameters for service and characteristic discovery */ +static const appDiscCfg_t datcDiscCfg = { + FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ + TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ +}; + +static const appCfg_t datcAppCfg = { + FALSE, /*! TRUE to abort service discovery if service not found */ + TRUE /*! TRUE to disconnect if ATT transaction times out */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datcAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, + 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; + +/************************************************************************************************** + ATT Client Discovery Data +**************************************************************************************************/ + +/*! Discovery states: enumeration of services to be discovered */ +enum { + DATC_DISC_GATT_SVC, /*! GATT service */ + DATC_DISC_GAP_SVC, /*! GAP service */ + DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ + DATC_DISC_SDS_SVC, /*! Secured Data Service */ + DATC_DISC_SVC_MAX /*! Discovery complete */ +}; + +/*! the Client handle list, datcCb.hdlList[], is set as follows: + * + * ------------------------------- <- DATC_DISC_GATT_START + * | GATT svc changed handle | + * ------------------------------- + * | GATT svc changed ccc handle | + * ------------------------------- <- DATC_DISC_GAP_START + * | GAP central addr res handle | + * ------------------------------- + * | GAP RPA Only handle | + * ------------------------------- <- DATC_DISC_WP_START + * | WP handles | + * | ... | + * ------------------------------- + */ + +/*! Start of each service's handles in the the handle list */ +#define DATC_DISC_GATT_START 0 +#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) +#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) +#define DATC_DISC_SDS_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) +#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_SDS_START + SEC_HDL_LIST_LEN) + +/*! Pointers into handle list for each service's handles */ +static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; +static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; +static uint16_t *pSecDatHdlList[DM_CONN_MAX]; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datcOobCfg; + +/************************************************************************************************** + ATT Client Configuration Data +**************************************************************************************************/ + +/* + * Data for configuration after service discovery + */ + +/* Default value for CCC indications */ +const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; + +/* Default value for CCC notifications */ +const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; + +/* Default value for Client Supported Features (enable Robust Caching) */ +const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; + +/* List of characteristics to configure after service discovery */ +static const attcDiscCfg_t datcDiscCfgList[] = { + /* Write: GATT service changed ccc descriptor */ + { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: GATT client supported features */ + { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: Proprietary data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, + + /* Write: Secured data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (SEC_DAT_CCC_HDL_IDX + DATC_DISC_SDS_START) }, +}; + +/* Characteristic configuration list length */ +#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) + +/* sanity check: make sure configuration list length is <= handle list length */ +WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); + +/*************************************************************************************************/ +/*! + * \brief OOB RX callback. + * + * \return None. + */ +/*************************************************************************************************/ +void oobRxCback(void) +{ + if (datcOobCfg != NULL) { + DmSecSetOob(oobConnId, datcOobCfg); + } + + DmSecAuthRsp(oobConnId, 0, NULL); +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + uint16_t reportLen; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datcSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + + /* Setup HCI UART for OOB */ + PalUartConfig_t hciUartCfg; + hciUartCfg.rdCback = oobRxCback; + hciUartCfg.wrCback = NULL; + hciUartCfg.baud = OOB_BAUD; + hciUartCfg.hwFlow = OOB_FLOW; + + PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datcOobCfg == NULL) { + datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + memset(datcOobCfg, 0, sizeof(dmSecLescOobCfg_t)); + } + + if (datcOobCfg) { + Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); + + /* Start the RX for the peer OOB data */ + PalUartReadData(PAL_UART_ID_CHCI, datcOobCfg->peerRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + } else { + APP_TRACE_ERR0("Error allocating OOB data"); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + reportLen = pDmEvt->scanReport.len; + } else { + reportLen = 0; + } + + if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { + memcpy(pMsg, pDmEvt, len); + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); + memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); + } + WsfMsgSend(datcCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datcCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning handler. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanningHandler(void) +{ + datcCb.autoConnect = TRUE; + datcConnInfo.doConnect = FALSE; + AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanning(void) +{ + /* Start the scanning start timer */ + WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan start. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStart(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan stop. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStop(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + + /* Open connection */ + if (datcConnInfo.doConnect) { + AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); + datcConnInfo.doConnect = FALSE; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Print the name value from a scan report. + * + * \param name Pointer to name parameter from a scan report. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrintName(uint8_t *name) +{ + /* Allocate a buffer for the device name */ + uint8_t *printBuf; + printBuf = WsfBufAlloc(name[DM_AD_LEN_IDX]); + + if (printBuf != NULL) { + /* Copy in the data and null terminate the string */ + memcpy(printBuf, &name[DM_AD_DATA_IDX], name[DM_AD_LEN_IDX] - 1); + printBuf[name[DM_AD_LEN_IDX] - 1] = 0; + + APP_TRACE_INFO1(" Name: %s", printBuf); + WsfBufFree(printBuf); + } +} + +/*************************************************************************************************/ +/*! + * \brief Print the contents of a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrintScanReport(dmEvt_t *pMsg) +{ +#if WSF_TRACE_ENABLED == TRUE + uint8_t *pData; + + APP_TRACE_INFO0("Scan Report:"); + WsfTrace(" %02x:%02x:%02x:%02x:%02x:%02x", pMsg->scanReport.addr[5], pMsg->scanReport.addr[4], + pMsg->scanReport.addr[3], pMsg->scanReport.addr[2], pMsg->scanReport.addr[1], + pMsg->scanReport.addr[0]); + + if ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL) { + datcPrintName(pData); + } else if ((pData = DmFindAdType(DM_ADV_TYPE_SHORT_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL) { + datcPrintName(pData); + } +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Handle a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanReport(dmEvt_t *pMsg) +{ + uint8_t *pData; + appDbHdl_t dbHdl; + bool_t connect = FALSE; + + /* disregard if not scanning or autoconnecting */ + if (!datcCb.scanning || !datcCb.autoConnect) { + return; + } + + /* if we already have a bond with this device then connect to it */ + if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != + APP_DB_HDL_NONE) { + /* if this is a directed advertisement where the initiator address is an RPA */ + if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { + /* resolve direct address to see if it's addressed to us */ + AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); + } else { + connect = TRUE; + } + } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { + /* if the peer device uses an RPA */ + /* resolve advertiser's RPA to see if we already have a bond with this device */ + AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); + } + + /* find device name */ + if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL)) { + /* check length and device name */ + if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'D') && + (pData[DM_AD_DATA_IDX + 1] == 'A') && (pData[DM_AD_DATA_IDX + 2] == 'T') && + (pData[DM_AD_DATA_IDX + 3] == 'S')) { + connect = TRUE; + } + } + + if (connect) { + datcPrintScanReport(pMsg); + + /* stop scanning and connect */ + datcCb.autoConnect = FALSE; + AppScanStop(); + + /* Store peer information for connect on scan stop */ + datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); + memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); + datcConnInfo.dbHdl = dbHdl; + datcConnInfo.doConnect = TRUE; + } else { + static int scanReportDownSample = 0; + + /* Down sample the number of scan reports we print */ + if (scanReportDownSample++ == SCAN_REPORT_DOWN_SAMPLE) { + scanReportDownSample = 0; + datcPrintScanReport(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection open. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcOpen(dmEvt_t *pMsg) +{ +#if (BT_VER > 8) + datcCb.phyMode[pMsg->hdr.param - 1] = DATC_PHY_1M; +#endif /* BT_VER */ +} + +/*************************************************************************************************/ +/*! + * \brief Process a received ATT notification. + * + * \param pMsg Pointer to ATT callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcValueNtf(attEvt_t *pMsg) +{ + if (pMsg->handle == pSecDatHdlList[pMsg->hdr.param - 1][SEC_DAT_HDL_IDX]) + APP_TRACE_INFO0(">> Notification from secure data service <<<"); + /* print the received data */ + if (datcCb.speedTestCounter == 0) { + APP_TRACE_INFO0((const char *)pMsg->pValue); + } +} + +/*************************************************************************************************/ +/*! + * \brief Set up procedures that need to be performed after device reset. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSetup(dmEvt_t *pMsg) +{ + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + datcConnInfo.doConnect = FALSE; + datcCb.restoringResList = FALSE; + + DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datcSetup(pMsg); + } else { + datcCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datcCb.restoringResList) { + /* Retore next device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datcSetup(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Send example data. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello world"; + + if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send example data to secured charactersitic. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void secDatSendData(dmConnId_t connId) +{ + uint8_t str[] = "Secret number is 0x42"; + + if (pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pSecDatHdlList[connId - 1][SEC_DAT_HDL_IDX], sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief GAP service discovery has completed. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscGapCmpl(dmConnId_t connId) +{ + appDbHdl_t dbHdl; + + /* if RPA Only attribute found on peer device */ + if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { + /* update DB */ + AppDbSetPeerRpao(dbHdl, TRUE); + AppDbNvmStorePeerRpao(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Handler for the speed test. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSpeedTestHandler(dmConnId_t connId) +{ + static uint8_t speedTestData[SPEED_TEST_PACKET_LEN]; + uint16_t handle; + + if (datcCb.speedTestCounter == SPEED_TEST_COUNT) { + unsigned us = MXC_TMR_SW_Stop(SPEED_TEST_TMR); + + /* Calculate the throughput */ + unsigned bits = SPEED_TEST_COUNT * SPEED_TEST_PACKET_LEN * 8; + APP_TRACE_INFO2("%d bits transferred in %d us", bits, us); + + float bps = (float)bits / ((float)us / (float)1000000); + APP_TRACE_INFO1("%d bps", (unsigned)bps); + + /* Reset the counter for the next test */ + datcCb.speedTestCounter = 0; + return; + } + + /* Write the next packet */ + handle = pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX]; + AttcWriteCmd(connId, handle, (uint16_t)SPEED_TEST_PACKET_LEN, speedTestData); + + if (datcCb.speedTestCounter == 0) { + /* Start the throughput timer */ + MXC_TMR_SW_Start(SPEED_TEST_TMR); + } + + datcCb.speedTestCounter++; +} + +/*************************************************************************************************/ +/*! + * \brief Starts the speed test. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcStartSpeedTest(dmConnId_t connId) +{ + if (datcCb.speedTestCounter != 0) { + APP_TRACE_ERR0("Speed test already running"); + return; + } + + APP_TRACE_INFO0("Starting speed test"); + datcSpeedTestHandler(connId); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcBtnCback(uint8_t btn) +{ + dmConnId_t connId = datcCb.btnConnId; + dmConnId_t connIdList[DM_CONN_MAX]; + uint8_t numConnections = AppConnOpenList(connIdList); + + /* button actions when connected */ + if (numConnections > 0) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (numConnections < DM_CONN_MAX - 1) { + /* if scanning cancel scanning */ + if (datcCb.scanning) { + AppScanStop(); + } else if (!datcCb.autoConnect) { + /* else auto connect */ + datcRestartScanning(); + } + } else { + APP_TRACE_INFO0("datcBtnCback: Max connections reached."); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID used in button presses */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* disconnect */ + AppConnClose(connId); + break; + +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + datcCb.phyMode[connId - 1] = DATC_PHY_1M; + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + datcCb.phyMode[connId - 1] = DATC_PHY_2M; + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + datcCb.phyMode[connId - 1] = DATC_PHY_CODED; + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + datcCb.phyMode[connId - 1] = DATC_PHY_CODED; + break; + } + break; + } +#endif /* BT_VER */ + case APP_UI_BTN_2_MED: + secDatSendData(connId); + break; + case APP_UI_BTN_2_LONG: + /* send data */ + datcSendData(connId); + break; + + case APP_UI_BTN_2_EX_LONG: + /* Start the speed test */ + datcStartSpeedTest(connId); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* if scanning cancel scanning */ + if (datcCb.scanning) { + AppScanStop(); + } else if (!datcCb.autoConnect) { + /* else auto connect */ + datcRestartScanning(); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID buttons apply to */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: + /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ + SvcCoreGapAddRpaoCh(); + break; + + case APP_UI_BTN_2_EX_LONG: + /* enable device privacy -- start generating local RPAs every 15 minutes */ + DmDevPrivStart(15 * 60); + + /* set Scanning filter policy to accept directed advertisements with RPAs */ + DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Discovery callback. + * + * \param connId Connection identifier. + * \param status Service or configuration status. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscCback(dmConnId_t connId, uint8_t status) +{ + switch (status) { + case APP_DISC_INIT: + /* set handle list when initialization requested */ + AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_READ_DATABASE_HASH: + /* Read peer's database hash */ + AppDiscReadDatabaseHash(connId); + break; + + case APP_DISC_SEC_REQUIRED: + /* initiate security */ + AppMasterSecurityReq(connId); + break; + + case APP_DISC_START: + /* initialize discovery state */ + datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; + + /* store possible change in cache by hash */ + AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); + + /* discover GATT service */ + GattDiscover(connId, pDatcGattHdlList[connId - 1]); + break; + + case APP_DISC_FAILED: + if (pAppCfg->abortDisc) { + /* if discovery failed for proprietary data service then disconnect */ + if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { + AppConnClose(connId); + break; + } + } + /* Else falls through. */ + + case APP_DISC_CMPL: + /* next discovery state */ + datcCb.discState[connId - 1]++; + + if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { + /* discover GAP service */ + GapDiscover(connId, pDatcGapHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { + /* discover proprietary data service */ + WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_SDS_SVC) { + /* discover secured data service */ + SecDatSvcDiscover(connId, pSecDatHdlList[connId - 1]); + } else { + /* discovery complete */ + AppDiscComplete(connId, APP_DISC_CMPL); + + /* GAP service discovery completed */ + datcDiscGapCmpl(connId); + + /* store cached handle list in NVM */ + AppDbNvmStoreHdlList(AppDbGetHdl(connId)); + + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + } + break; + + case APP_DISC_CFG_START: + case APP_DISC_CFG_CONN_START: + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_CFG_CMPL: + AppDiscComplete(connId, status); + break; + + default: + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTC_WRITE_CMD_RSP: { + if (datcCb.speedTestCounter != 0) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + datcSpeedTestHandler(connId); + } + } break; + + case ATTC_HANDLE_VALUE_NTF: + datcValueNtf((attEvt_t *)pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datcRestoreResolvingList(pMsg); + datcRestartScanning(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_SCAN_START_IND: + datcScanStart(pMsg); + uiEvent = APP_UI_SCAN_START; + break; + + case DM_SCAN_STOP_IND: + datcScanStop(pMsg); + uiEvent = APP_UI_SCAN_STOP; + break; + + case DM_SCAN_REPORT_IND: + datcScanReport(pMsg); + break; + + case DM_CONN_OPEN_IND: + datcOpen(pMsg); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + datcRestartScanning(); + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + APP_TRACE_INFO0("Sending OOB data"); + oobConnId = connId; + + /* Start the TX to send the local OOB data */ + PalUartWriteData(PAL_UART_ID_CHCI, datcOobCfg->localRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datcPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case SCAN_START_EVT: + datcRestartScanningHandler(); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatcHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + + /* store handler ID */ + datcCb.handlerId = handlerId; + + /* set handle list length */ + datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; + + datcCb.btnConnId = 1; + /* Set configuration pointers */ + pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; + pAppSecCfg = (appSecCfg_t *)&datcSecCfg; + pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; + pAppCfg = (appCfg_t *)&datcAppCfg; + pSmpCfg = (smpCfg_t *)&datcSmpCfg; + pAttCfg = (attCfg_t *)&datcAttCfg; + + /* Initialize application framework */ + AppMasterInit(); + AppDiscInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup scan start timer */ + datcCb.scanTimer.handlerId = handlerId; + datcCb.scanTimer.msg.event = SCAN_START_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + if (datcCb.speedTestCounter == 0 && pMsg->event != DM_SCAN_REPORT_IND) { + APP_TRACE_INFO1("Datc got evt %d", pMsg->event); + } + + if (pMsg->event <= ATT_CBACK_END) { /* process ATT messages */ + /* process discovery-related ATT messages */ + AppDiscProcAttMsg((attEvt_t *)pMsg); + + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ + /* process advertising and connection-related messages */ + AppMasterProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppMasterSecProcDmMsg((dmEvt_t *)pMsg); + + /* process discovery-related messages */ + AppDiscProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datcProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the pointers into the handle list. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcInitSvcHdlList() +{ + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++) { + /*! Pointers into handle list for each service's handles */ + pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; + pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; + pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; + pSecDatHdlList[i] = &datcCb.hdlList[i][DATC_DISC_SDS_START]; + } +} +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void) +{ + /* Initialize handle pointers */ + datcInitSvcHdlList(); + + /* Register for stack callbacks */ + DmRegister(datcDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); + AttRegister(datcAttCback); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datcBtnCback); + + /* Register for app framework discovery callbacks */ + AppDiscRegister(datcDiscCback); + + /* Initialize attribute server database */ + SvcCoreAddGroup(); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_datc/main.c b/Examples/MAX32690/Bluetooth/BLE_datc/main.c new file mode 100644 index 00000000000..66f40bd1507 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_datc/main.c @@ -0,0 +1,279 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE Data Client for unformatted data exchange. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "datc_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDatc(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT0_IRQHandler(void) +{ + MXC_WUT_Handler(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Increase the default ACL buffer size and count */ + mainLlRtCfg.numTxBufs = 8; + mainLlRtCfg.numRxBufs = 8; + mainLlRtCfg.maxAclLen = 256; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDatc(); + DatcStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE_datc/project.mk b/Examples/MAX32690/Bluetooth/BLE_datc/project.mk similarity index 100% rename from Examples/MAX32690/BLE_datc/project.mk rename to Examples/MAX32690/Bluetooth/BLE_datc/project.mk diff --git a/Examples/MAX32690/Bluetooth/BLE_datc/sdsc_api.h b/Examples/MAX32690/Bluetooth/BLE_datc/sdsc_api.h new file mode 100644 index 00000000000..b0dadb1756e --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_datc/sdsc_api.h @@ -0,0 +1,99 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/*************************************************************************************************/ +/*! Secure Data Service Client +* Implements the necessary handles list to perform service +* and characteristic discovery of custom secured service . +* + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_DATC_SDSC_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_DATC_SDSC_API_H_ + +#include "att_api.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*! \brief Secured service enumeration of handle indexes of characteristics to be discovered */ +enum { + SEC_DAT_HDL_IDX, /*!< \brief Secured data */ + SEC_DAT_CCC_HDL_IDX, /*!< \brief Secured data client characteristic configuration descriptor */ + SEC_HDL_LIST_LEN /*!< \brief Handle list length */ +}; + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for Secured service . + * Parameter pHdlList must point to an array of length \ref SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_DATC_SDSC_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_datc/sdsc_main.c b/Examples/MAX32690/Bluetooth/BLE_datc/sdsc_main.c new file mode 100644 index 00000000000..5a8af6c5d4c --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_datc/sdsc_main.c @@ -0,0 +1,110 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_assert.h" +#include "util/bstream.h" +#include "app_api.h" +#include "sdsc_api.h" + +/************************************************************************************************** + Secure Service and Data UUIDs +**************************************************************************************************/ +#define ATT_UUID_SEC_DATA_SERVICE \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_SEC_DATA \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/* UUIDs */ +static const uint8_t SecDatSvcUuid[] = { ATT_UUID_SEC_DATA_SERVICE }; /*! Secured service */ +static const uint8_t SecDatChUuid[] = { ATT_UUID_SEC_DATA }; /*! Secured data */ + +/* Characteristics for discovery */ + +/*! Secured data */ +static const attcDiscChar_t secDat = { SecDatChUuid, ATTC_SET_REQUIRED | ATTC_SET_UUID_128 }; + +/*! Secured data descriptor */ +static const attcDiscChar_t secDatCcc = { attCliChCfgUuid, + ATTC_SET_REQUIRED | ATTC_SET_DESCRIPTOR }; + +/*! List of characteristics to be discovered; order matches handle index enumeration */ +static const attcDiscChar_t *secDatDiscCharList[] = { + &secDat, /*! Secured data */ + &secDatCcc /*! Secured data descriptor */ +}; + +/* sanity check: make sure handle list length matches characteristic list length */ +WSF_CT_ASSERT(SEC_HDL_LIST_LEN == ((sizeof(secDatDiscCharList) / sizeof(attcDiscChar_t *)))); + +/*************************************************************************************************/ +/*! + * \brief Perform service and characteristic discovery for custom secured service . + * Parameter pHdlList must point to an array of length SEC_HDL_LIST_LEN. + * If discovery is successful the handles of discovered characteristics and + * descriptors will be set in pHdlList. + * + * \param connId Connection identifier. + * \param pHdlList Characteristic handle list. + * + * \return None. + */ +/*************************************************************************************************/ +void SecDatSvcDiscover(dmConnId_t connId, uint16_t *pHdlList) +{ + AppDiscFindService(connId, ATT_128_UUID_LEN, (uint8_t *)SecDatSvcUuid, SEC_HDL_LIST_LEN, + (attcDiscChar_t **)secDatDiscCharList, pHdlList); +} diff --git a/Examples/MAX32665/BLE_otac/stack_datc.c b/Examples/MAX32690/Bluetooth/BLE_datc/stack_datc.c similarity index 100% rename from Examples/MAX32665/BLE_otac/stack_datc.c rename to Examples/MAX32690/Bluetooth/BLE_datc/stack_datc.c diff --git a/Examples/MAX32690/BLE_dats/.cproject b/Examples/MAX32690/Bluetooth/BLE_dats/.cproject similarity index 100% rename from Examples/MAX32690/BLE_dats/.cproject rename to Examples/MAX32690/Bluetooth/BLE_dats/.cproject diff --git a/Examples/MAX32690/BLE_dats/.project b/Examples/MAX32690/Bluetooth/BLE_dats/.project similarity index 100% rename from Examples/MAX32690/BLE_dats/.project rename to Examples/MAX32690/Bluetooth/BLE_dats/.project diff --git a/Examples/MAX32680/BLE4_ctr/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_dats/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_dats/.settings/language.settings.xml diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_dats/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_dats/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_dats/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_dats/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_dats/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_dats/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_dats/.vscode/README.md diff --git a/Examples/MAX32665/USB_HIDKeyboard/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_dats/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_dats/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_dats/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_dats/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_dats/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_dats/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_dats/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_dats/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_dats/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_dats/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_dats/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_dats/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_dats/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_dats/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_dats/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_dats/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_dats/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_dats/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_dats/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_dats/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_dats/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_dats/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_dats/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_dats/BLE_dats.launch b/Examples/MAX32690/Bluetooth/BLE_dats/BLE_dats.launch similarity index 100% rename from Examples/MAX32690/BLE_dats/BLE_dats.launch rename to Examples/MAX32690/Bluetooth/BLE_dats/BLE_dats.launch diff --git a/Examples/MAX32690/BLE_dats/IAR/BLE_dats.ewd b/Examples/MAX32690/Bluetooth/BLE_dats/IAR/BLE_dats.ewd similarity index 100% rename from Examples/MAX32690/BLE_dats/IAR/BLE_dats.ewd rename to Examples/MAX32690/Bluetooth/BLE_dats/IAR/BLE_dats.ewd diff --git a/Examples/MAX32690/BLE_dats/IAR/BLE_dats.ewp b/Examples/MAX32690/Bluetooth/BLE_dats/IAR/BLE_dats.ewp similarity index 100% rename from Examples/MAX32690/BLE_dats/IAR/BLE_dats.ewp rename to Examples/MAX32690/Bluetooth/BLE_dats/IAR/BLE_dats.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_dats/Makefile b/Examples/MAX32690/Bluetooth/BLE_dats/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_dats/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_dats/README.md b/Examples/MAX32690/Bluetooth/BLE_dats/README.md similarity index 100% rename from Examples/MAX32690/BLE_dats/README.md rename to Examples/MAX32690/Bluetooth/BLE_dats/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_dats/dats_api.h b/Examples/MAX32690/Bluetooth/BLE_dats/dats_api.h new file mode 100644 index 00000000000..0a2100dcdf1 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_dats/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_DATS_DATS_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_DATS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_DATS_DATS_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_dats/dats_main.c b/Examples/MAX32690/Bluetooth/BLE_dats/dats_main.c new file mode 100644 index 00000000000..dd076d2cf50 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_dats/dats_main.c @@ -0,0 +1,1031 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "pal_uart.h" +#include "tmr.h" +#include "svc_sds.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_1M 1 +#define DATS_PHY_2M 2 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 60000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_SEC_DAT_CCC_IDX, + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! Configurable security parameters to set +* pairing and authentication requirements. +* +* Authentication and bonding flags +* -DM_AUTH_BOND_FLAG : Bonding requested +* -DM_AUTH_SC_FLAG : LE Secure Connections requested +* -DM_AUTH_KP_FLAG : Keypress notifications requested +* -DM_AUTH_MITM_FLAG : MITM (authenticated pairing) requested + pairing method is determined by IO capabilities below +* +* Initiator key distribution flags +* -DM_KEY_DIST_LTK : Distribute LTK used for encryption +* -DM_KEY_DIST_IRK : Distribute IRK used for privacy +* -DM_KEY_DIST_CSRK : Distribute CSRK used for signed data +*/ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG | DM_AUTH_MITM_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/* OOB UART parameters */ +#define OOB_BAUD 115200 +#define OOB_FLOW FALSE + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/* OOB Connection identifier */ +dmConnId_t oobConnId; + +/*! SMP security parameter configuration +* +* I/O Capability Codes to be set for +* Pairing Request (SMP_CMD_PAIR_REQ) packets and Pairing Response (SMP_CMD_PAIR_RSP) packets +* when the MITM flag is set in Configurable security parameters above. +* -SMP_IO_DISP_ONLY : Display only. +* -SMP_IO_DISP_YES_NO : Display yes/no. +* -SMP_IO_KEY_ONLY : Keyboard only. +* -SMP_IO_NO_IN_NO_OUT : No input, no output. +* -SMP_IO_KEY_DISP : Keyboard display. +*/ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_KEY_ONLY, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update. set to zero to disable */ + (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'D', + 'A', + 'T', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* DATS_WP_DAT_CCC_IDX */ + { SEC_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_SEC_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief OOB RX callback. + * + * \return None. + */ +/*************************************************************************************************/ +void oobRxCback(void) +{ + if (datsOobCfg != NULL) { + DmSecSetOob(oobConnId, datsOobCfg); + } + + DmSecAuthRsp(oobConnId, 0, NULL); +} + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId) +{ + uint8_t str[] = "hello back"; + + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, sizeof(str), str); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + + /* Setup HCI UART for OOB */ + PalUartConfig_t hciUartCfg; + hciUartCfg.rdCback = oobRxCback; + hciUartCfg.wrCback = NULL; + hciUartCfg.baud = OOB_BAUD; + hciUartCfg.hwFlow = OOB_FLOW; + + PalUartInit(PAL_UART_ID_CHCI, &hciUartCfg); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + memset(datsOobCfg, 0, sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + + /* Start the RX for the peer OOB data */ + PalUartReadData(PAL_UART_ID_CHCI, datsOobCfg->peerRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + } else { + APP_TRACE_ERR0("Error allocating OOB data"); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datsCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + static uint32_t packetCount = 0; + + if (len < 64) { + /* print received data if not a speed test message */ + APP_TRACE_INFO0((const char *)pValue); + + /* send back some data */ + datsSendData(connId); + } else { + APP_TRACE_INFO1("Speed test packet Count [%d]", packetCount++); + if (packetCount >= 5000) { + packetCount = 0; + } + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for secured data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t secDatWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + uint8_t str[] = "Secure data received!"; + APP_TRACE_INFO0(">> Received secure data <<"); + APP_TRACE_INFO0((const char *)pValue); + + /* Write data recevied into characteristic */ + AttsSetAttr(SEC_DAT_HDL, len, (uint8_t *)pValue); + /* if notifications are enabled send one */ + if (AttsCccEnabled(connId, DATS_SEC_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, SEC_DAT_HDL, sizeof(str), str); + } + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + if (datsSecCfg.initiateSec) { + AppSlaveSecurityReq((dmConnId_t)pMsg->hdr.param); + } + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + APP_TRACE_INFO0("Sending OOB data"); + oobConnId = connId; + + /* Start the TX to send the local OOB data */ + PalUartWriteData(PAL_UART_ID_CHCI, datsOobCfg->localRandom, + (SMP_RAND_LEN + SMP_CONFIRM_LEN)); + + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /*register secure data write callback */ + SvcSecDataCbackRegister(NULL, secDatWriteCback); + /* Register secure data service */ + SvcSecDataAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_dats/main.c b/Examples/MAX32690/Bluetooth/BLE_dats/main.c new file mode 100644 index 00000000000..68fa3280960 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_dats/main.c @@ -0,0 +1,275 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE Data Server for unformatted data exchange. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "dats_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDats(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT0_IRQHandler(void) +{ + MXC_WUT_Handler(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDats(); + DatsStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE_dats/project.mk b/Examples/MAX32690/Bluetooth/BLE_dats/project.mk similarity index 100% rename from Examples/MAX32690/BLE_dats/project.mk rename to Examples/MAX32690/Bluetooth/BLE_dats/project.mk diff --git a/Examples/MAX32690/Bluetooth/BLE_dats/services/svc_sds.c b/Examples/MAX32690/Bluetooth/BLE_dats/services/svc_sds.c new file mode 100644 index 00000000000..ee4c2ed527c --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_dats/services/svc_sds.c @@ -0,0 +1,176 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#include "wsf_types.h" +#include "att_api.h" +#include "wsf_trace.h" +#include "util/bstream.h" +#include "svc_ch.h" +#include "svc_sds.h" +#include "svc_cfg.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Characteristic read/write permissions */ +#ifndef SEC_DATA_PERMIT_READ +#define SEC_DATA_PERMIT_READ SVC_SEC_PERMIT_READ +#endif + +#ifndef SEC_DATA_PERMIT_READ_ENC +#define SEC_DATA_PERMIT_READ_ENC ATTS_PERMIT_READ_ENC +#endif + +#ifndef SEC_DATA_PERMIT_READ_AUTH +#define SEC_DATA_PERMIT_READ_AUTH ATTS_PERMIT_READ_AUTH +#endif + +#ifndef SEC_DATA_PERMIT_WRITE +#define SEC_DATA_PERMIT_WRITE SVC_SEC_PERMIT_WRITE +#endif + +#ifndef SEC_DATA_PERMIT_WRITE_ENC +#define SEC_DATA_PERMIT_WRITE_ENC ATTS_PERMIT_WRITE_ENC +#endif + +#ifndef SEC_DATA_PERMIT_WRITE_AUTH +#define SEC_DATA_PERMIT_WRITE_AUTH ATTS_PERMIT_WRITE_AUTH +#endif + +/************************************************************************************************** + Static Variables +**************************************************************************************************/ + +/* UUIDs */ +static const uint8_t svcSecDatUuid[] = { ATT_UUID_SEC_DATA }; + +/* Proprietary service declaration */ +static const uint8_t secDatSvc[] = { ATT_UUID_SEC_DATA_SERVICE }; +static const uint16_t secDatLenSvc = sizeof(secDatSvc); + +/* Secured data characteristic */ +static const uint8_t secDatCh[] = { ATT_PROP_NOTIFY | ATT_PROP_WRITE_NO_RSP | ATT_PROP_WRITE, + UINT16_TO_BYTES(SEC_DAT_HDL), ATT_UUID_SEC_DATA }; + +static const uint16_t secDatLenDatCh = sizeof(secDatCh); + +/* Secured data */ +static const uint8_t secDatVal[] = { 0 }; +static const uint16_t secDatLenDat = sizeof(secDatVal); + +/* Secured data client characteristic configuration */ +static uint8_t secDatChCcc[] = { UINT16_TO_BYTES(0x0000) }; +static const uint16_t secDatLenDatChCcc = sizeof(secDatChCcc); + +/* Attribute list for Secured Data group */ +static const attsAttr_t secDatList[] = { + /* Service declaration */ + { attPrimSvcUuid, (uint8_t *)secDatSvc, (uint16_t *)&secDatLenSvc, sizeof(secDatSvc), 0, + ATTS_PERMIT_READ }, + + /* Secure data characteristic declaration */ + { attChUuid, (uint8_t *)secDatCh, (uint16_t *)&secDatLenDatCh, sizeof(secDatCh), 0, + ATTS_PERMIT_READ }, + + /* Secure data characteristic value */ + { svcSecDatUuid, (uint8_t *)secDatVal, (uint16_t *)&secDatLenDat, ATT_VALUE_MAX_LEN, + (ATTS_SET_UUID_128 | ATTS_SET_VARIABLE_LEN | ATTS_SET_WRITE_CBACK), + SEC_DATA_PERMIT_WRITE | SEC_DATA_PERMIT_WRITE_ENC | SEC_DATA_PERMIT_WRITE_AUTH }, + + /*Secure data characteristic value descriptor*/ + { attCliChCfgUuid, (uint8_t *)secDatChCcc, (uint16_t *)&secDatLenDatChCcc, sizeof(secDatChCcc), + ATTS_SET_CCC, (ATTS_PERMIT_READ | ATTS_PERMIT_WRITE) } +}; + +/* Secured Data group structure */ +static attsGroup_t svcSecDatGroup = { NULL, (attsAttr_t *)secDatList, NULL, + NULL, SEC_DATA_START_HDL, SEC_DATA_END_HDL }; + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataAddGroup(void) +{ + AttsAddGroup(&svcSecDatGroup); +} + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataRemoveGroup(void) +{ + AttsRemoveGroup(SEC_DATA_START_HDL); +} + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) +{ + svcSecDatGroup.readCback = readCback; + svcSecDatGroup.writeCback = writeCback; +} diff --git a/Examples/MAX32690/Bluetooth/BLE_dats/services/svc_sds.h b/Examples/MAX32690/Bluetooth/BLE_dats/services/svc_sds.h new file mode 100644 index 00000000000..a200b74b0dd --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_dats/services/svc_sds.h @@ -0,0 +1,138 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/*************************************************************************************************/ +/*! Secure Data Service +* Implementation of a characteristic with elevated security features. +* The connection must be encrypted with an authenticated key to read/write +* the attributes value. +* + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Service and Characteristic UUIDs +**************************************************************************************************/ +#define ATT_UUID_SEC_DATA_SERVICE \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x42, 0xD9, 0x32, 0x7E, 0x36, 0xFC, 0x42 +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_SEC_DATA \ + 0xBE, 0x35, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x3E, 0x56, 0xFC, 0x42 + +/************************************************************************************************** + Handle Ranges +**************************************************************************************************/ +/*! \brief Secured Data Service */ +#define SEC_DATA_START_HDL 0x300 /*!< \brief Start handle. */ +#define SEC_DATA_END_HDL (SEC_DAT_MAX_HDL - 1) /*!< \brief End handle. */ + +/************************************************************************************************** + Handles +**************************************************************************************************/ + +/*! \brief Secured Service Handles */ +enum { + SEC_DATA_SVC_HDL = SEC_DATA_START_HDL, /*!< \brief Secured Data service declaration */ + SEC_DAT_CH_HDL, /*!< \brief Secured Data characteristic */ + SEC_DAT_HDL, /*!< \brief Secured Data */ + SEC_DAT_CH_CCC_HDL, /*!< \brief Secured Data client characteristic configuration */ + SEC_DAT_MAX_HDL /*!< \brief Maximum handle. */ +}; +/**@}*/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataAddGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataRemoveGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcSecDataCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); + +/*! \} */ /* WP_SERVICE */ + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_DATS_SERVICES_SVC_SDS_H_ diff --git a/Examples/MAX32690/BLE_dats/stack_dats.c b/Examples/MAX32690/Bluetooth/BLE_dats/stack_dats.c similarity index 100% rename from Examples/MAX32690/BLE_dats/stack_dats.c rename to Examples/MAX32690/Bluetooth/BLE_dats/stack_dats.c diff --git a/Examples/MAX32690/BLE_fcc/.cproject b/Examples/MAX32690/Bluetooth/BLE_fcc/.cproject similarity index 100% rename from Examples/MAX32690/BLE_fcc/.cproject rename to Examples/MAX32690/Bluetooth/BLE_fcc/.cproject diff --git a/Examples/MAX32690/BLE_fcc/.project b/Examples/MAX32690/Bluetooth/BLE_fcc/.project similarity index 100% rename from Examples/MAX32690/BLE_fcc/.project rename to Examples/MAX32690/Bluetooth/BLE_fcc/.project diff --git a/Examples/MAX32680/BLE_dats/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_fcc/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32680/BLE_dats/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_fcc/.settings/language.settings.xml diff --git a/Examples/MAX32665/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_fcc/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_fcc/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_fcc/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_fcc/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_fcc/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/README.md diff --git a/Examples/MAX32665/USB_MassStorage/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_fcc/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_fcc/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_fcc/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_fcc/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_fcc/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_fcc/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_fcc/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_fcc/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_fcc/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_fcc/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_fcc/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_fcc/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_fcc/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_fcc/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_fcc/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_fcc/BLE_fcc.launch b/Examples/MAX32690/Bluetooth/BLE_fcc/BLE_fcc.launch similarity index 100% rename from Examples/MAX32690/BLE_fcc/BLE_fcc.launch rename to Examples/MAX32690/Bluetooth/BLE_fcc/BLE_fcc.launch diff --git a/Examples/MAX32690/BLE_fcc/IAR/BLE_dats.ewd b/Examples/MAX32690/Bluetooth/BLE_fcc/IAR/BLE_dats.ewd similarity index 100% rename from Examples/MAX32690/BLE_fcc/IAR/BLE_dats.ewd rename to Examples/MAX32690/Bluetooth/BLE_fcc/IAR/BLE_dats.ewd diff --git a/Examples/MAX32690/BLE_fcc/IAR/BLE_dats.ewp b/Examples/MAX32690/Bluetooth/BLE_fcc/IAR/BLE_dats.ewp similarity index 100% rename from Examples/MAX32690/BLE_fcc/IAR/BLE_dats.ewp rename to Examples/MAX32690/Bluetooth/BLE_fcc/IAR/BLE_dats.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_fcc/Makefile b/Examples/MAX32690/Bluetooth/BLE_fcc/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_fcc/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_fcc/README.md b/Examples/MAX32690/Bluetooth/BLE_fcc/README.md similarity index 100% rename from Examples/MAX32690/BLE_fcc/README.md rename to Examples/MAX32690/Bluetooth/BLE_fcc/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_fcc/main.c b/Examples/MAX32690/Bluetooth/BLE_fcc/main.c new file mode 100644 index 00000000000..41522df380a --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_fcc/main.c @@ -0,0 +1,537 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief BLE project with simple serial console for FCC testing + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "ll_init_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_cs.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "tmr.h" + +/************************************************************************************************** + Definitions +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +#define FREQ_HOP_PERIOD_US 20000 + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/*! \brief Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +static uint8_t phy = LL_PHY_LE_1M; +static uint8_t phy_str[16]; +static uint8_t txFreqHopCh; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Physical layer functions. */ +extern void llc_api_set_txpower(int8_t power); +extern void dbb_seq_select_rf_channel(uint32_t rf_channel); +extern void llc_api_tx_ldo_setup(void); +extern void dbb_seq_tx_enable(void); +extern void dbb_seq_tx_disable(void); + +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPhyStr(uint8_t phy) +{ + switch (phy) { + case LL_TEST_PHY_LE_1M: + default: + memcpy(phy_str, "1M PHY", 7); + break; + case LL_TEST_PHY_LE_2M: + memcpy(phy_str, "2M PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S8: + memcpy(phy_str, "S8 PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S2: + memcpy(phy_str, "S2 PHY", 7); + break; + } + return phy_str; +} + +/*************************************************************************************************/ +/*! + * \fn Timer 2 interrupts handler. + * + * \brief Controls the frequency hopping. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void TMR2_IRQHandler(void) +{ + int res; + + MXC_TMR_TO_Clear(MXC_TMR2); + + /* Start the next channel */ + res = LlEnhancedTxTest(txFreqHopCh++, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + if (res != LL_SUCCESS) + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + + /* Wrap the channels */ + if (txFreqHopCh == 40) + txFreqHopCh = 0; + + /* Restart the timeout */ + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); + MXC_TMR_EnableInt(MXC_TMR2); +} + +/*************************************************************************************************/ +/*! + * \fn Usage statement + * + * \brief Prints the usage statement. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void printUsage(void) +{ + APP_TRACE_INFO0("Usage: "); + APP_TRACE_INFO0(" (0) Transmit on RF channel 0 (2402 MHz)"); + APP_TRACE_INFO0(" (1) Transmit on RF channel 19 (2440 MHz)"); + APP_TRACE_INFO0(" (2) Transmit on RF channel 39 (2480 MHz)"); + APP_TRACE_INFO0(" (3) Receive on RF channel 39 (2480 MHz)"); + APP_TRACE_INFO0(" (4) Set Transmit power"); + APP_TRACE_INFO0(" (5) Enable constant TX"); + APP_TRACE_INFO0(" (6) Disable constant TX -- MUST be called after (5)"); + /* APP_TRACE_INFO0(" (7) Set PA value"); */ + APP_TRACE_INFO0(" (8) Set PHY"); + APP_TRACE_INFO0(" (9) TX Frequency Hop"); + APP_TRACE_INFO0(" (e) End transmission -- MUST be used after each (0-3, 9)"); + APP_TRACE_INFO0(" (u) Print usage"); +} + +/*************************************************************************************************/ +/*! + * \fn Process the Console RX + * + * \brief State machine for the console inputs. + * + * \param rxByte Character received from the console. + * + * \return None. + */ +/*************************************************************************************************/ +static void processConsoleRX(uint8_t rxByte) +{ + int res; + + /* Holds the state of the command and the parameter */ + static uint8_t cmd = 0; + static uint8_t param = 0; + + /* Determines if the incoming character is a command or a parameter */ + if (cmd == 0) + cmd = rxByte; + else + param = rxByte; + + switch (cmd) { + case '0': + + APP_TRACE_INFO1("Transmit RF channel 0, 255 bytes/pkt, 0xAA, %s, forever ..", + getPhyStr(phy)); + res = LlEnhancedTxTest(0, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '1': + + APP_TRACE_INFO1("Transmit RF channel 19, 255 bytes/pkt, 0xAA, %s, forever ..", + getPhyStr(phy)); + res = LlEnhancedTxTest(19, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '2': + + APP_TRACE_INFO1("Transmit RF channel 39, 255 bytes/pkt, 0xAA, %s, forever ..", + getPhyStr(phy)); + res = LlEnhancedTxTest(39, 255, LL_TEST_PKT_TYPE_AA, phy, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '3': + + APP_TRACE_INFO1("Receive RF channel 39, %s, forever ..", getPhyStr(phy)); + res = LlEnhancedRxTest(39, phy, 0, 0); + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + cmd = 0; + break; + + case '4': + + if (param == 0) { + APP_TRACE_INFO0("Select transmit power"); + APP_TRACE_INFO0(" 0: -10 dBm"); + APP_TRACE_INFO0(" 1: 0 dBm"); + APP_TRACE_INFO0(" 2: 4.5 dBm"); + break; + } + + switch (param) { + case '0': + llc_api_set_txpower(-10); + LlSetAdvTxPower(-10); + APP_TRACE_INFO0("Power set to -10 dBm"); + break; + case '1': + llc_api_set_txpower(0); + LlSetAdvTxPower(0); + APP_TRACE_INFO0("Power set to 0 dBm"); + break; + case '2': + llc_api_set_txpower(4); + LlSetAdvTxPower(4); + APP_TRACE_INFO0("Power set to 4.5 dBm"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + cmd = 0; + param = 0; + break; + + case '5': + if (param == 0) { + APP_TRACE_INFO0("Select transmit channel"); + APP_TRACE_INFO0(" 0: 0"); + APP_TRACE_INFO0(" 1: 19"); + APP_TRACE_INFO0(" 2: 39"); + break; + } + + switch (param) { + case '0': + dbb_seq_select_rf_channel(0); + APP_TRACE_INFO0("Channel set to 0"); + break; + case '1': + dbb_seq_select_rf_channel(19); + APP_TRACE_INFO0("Channel set to 19"); + break; + case '2': + dbb_seq_select_rf_channel(39); + APP_TRACE_INFO0("Channel set to 39"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + + APP_TRACE_INFO0("Starting TX"); + + PalBbEnable(); + + llc_api_tx_ldo_setup(); + + /* Enable constant TX */ + dbb_seq_tx_enable(); + + cmd = 0; + param = 0; + break; + + case '6': + APP_TRACE_INFO0("Disabling TX"); + + /* Disable constant TX */ + dbb_seq_tx_disable(); + + PalBbDisable(); + + cmd = 0; + break; + + case '8': + if (param == 0) { + /* Set the PHY */ + APP_TRACE_INFO0("Select PHY"); + APP_TRACE_INFO0("1: 1M"); + APP_TRACE_INFO0("2: 2M"); + APP_TRACE_INFO0("3: S8"); + APP_TRACE_INFO0("4: S2"); + break; + } + + switch (param) { + case '1': + phy = LL_TEST_PHY_LE_1M; + APP_TRACE_INFO0("PHY set to 1M"); + break; + case '2': + phy = LL_TEST_PHY_LE_2M; + APP_TRACE_INFO0("PHY set to 2M"); + break; + case '3': + phy = LL_TEST_PHY_LE_CODED_S8; + APP_TRACE_INFO0("PHY set to S8"); + break; + case '4': + phy = LL_TEST_PHY_LE_CODED_S2; + APP_TRACE_INFO0("PHY set to S2"); + break; + default: + APP_TRACE_INFO0("Invalid selection"); + break; + } + + cmd = 0; + param = 0; + break; + case '9': + /* Frequency hopping TX */ + APP_TRACE_INFO0("Starting frequency hopping"); + NVIC_EnableIRQ(TMR2_IRQn); + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); + MXC_TMR_EnableInt(MXC_TMR2); + cmd = 0; + break; + + case 'E': + case 'e': + + APP_TRACE_INFO0("End test"); + MXC_TMR_Stop(MXC_TMR2); + LlEndTest(NULL); + cmd = 0; + break; + + case 'U': + case 'u': + printUsage(); + cmd = 0; + break; + + default: + APP_TRACE_INFO0("Invalid selection"); + cmd = 0; + param = 0; + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.1 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Use single pool for data buffers. */ +#if (BT_VER > 9) + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! + * \brief Check and service tokens (Trace and sniffer). + * + * \return TRUE if there is token pending. + */ +/*************************************************************************************************/ +static bool_t mainCheckServiceTokens(void) +{ + bool_t eventPending = FALSE; + +#if (WSF_TOKEN_ENABLED == TRUE) || (BB_SNIFFER_ENABLED == TRUE) + eventPending = LhciIsEventPending(); +#endif + +#if WSF_TOKEN_ENABLED == TRUE + /* Allow only a single token to be processed at a time. */ + if (!eventPending) + eventPending = WsfTokenService(); +#endif + +#if (BB_SNIFFER_ENABLED == TRUE) + /* Service one sniffer packet, if in the buffer. */ + if (!eventPending) + eventPending = LhciSnifferHandler(); +#endif + + return eventPending; +} + +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); +#endif + + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + + WsfOsRegisterSleepCheckFunc(mainCheckServiceTokens); + WsfOsRegisterSleepCheckFunc(ChciTrService); + + /* Register the UART RX request */ + WsfBufIoUartRegister(processConsoleRX); + + printUsage(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE_fcc/project.mk b/Examples/MAX32690/Bluetooth/BLE_fcc/project.mk similarity index 100% rename from Examples/MAX32690/BLE_fcc/project.mk rename to Examples/MAX32690/Bluetooth/BLE_fcc/project.mk diff --git a/Examples/MAX32690/BLE_fit/.cproject b/Examples/MAX32690/Bluetooth/BLE_fit/.cproject similarity index 100% rename from Examples/MAX32690/BLE_fit/.cproject rename to Examples/MAX32690/Bluetooth/BLE_fit/.cproject diff --git a/Examples/MAX32690/BLE_fit/.project b/Examples/MAX32690/Bluetooth/BLE_fit/.project similarity index 100% rename from Examples/MAX32690/BLE_fit/.project rename to Examples/MAX32690/Bluetooth/BLE_fit/.project diff --git a/Examples/MAX32690/BLE4_ctr/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_fit/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_fit/.settings/language.settings.xml diff --git a/Examples/MAX32665/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_fit/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_fit/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_fit/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_fit/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_fit/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_fit/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_fit/.vscode/README.md diff --git a/Examples/MAX32680/BLE4_ctr/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_fit/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_fit/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/USB_HIDKeyboard/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_fit/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/USB_HIDKeyboard/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_fit/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_fit/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_fit/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_fit/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_fit/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_fit/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_fit/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_fit/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_fit/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_fit/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_fit/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_fit/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_fit/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_fit/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_fit/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_fit/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_fit/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_fit/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_fit/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_fit/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_fit/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_fit/ARM/BTLE_fit.uvoptx b/Examples/MAX32690/Bluetooth/BLE_fit/ARM/BTLE_fit.uvoptx similarity index 100% rename from Examples/MAX32690/BLE_fit/ARM/BTLE_fit.uvoptx rename to Examples/MAX32690/Bluetooth/BLE_fit/ARM/BTLE_fit.uvoptx diff --git a/Examples/MAX32690/BLE_fit/ARM/BTLE_fit.uvprojx b/Examples/MAX32690/Bluetooth/BLE_fit/ARM/BTLE_fit.uvprojx similarity index 100% rename from Examples/MAX32690/BLE_fit/ARM/BTLE_fit.uvprojx rename to Examples/MAX32690/Bluetooth/BLE_fit/ARM/BTLE_fit.uvprojx diff --git a/Examples/MAX32690/BLE_fit/ARM/EventRecorderStub.scvd b/Examples/MAX32690/Bluetooth/BLE_fit/ARM/EventRecorderStub.scvd similarity index 100% rename from Examples/MAX32690/BLE_fit/ARM/EventRecorderStub.scvd rename to Examples/MAX32690/Bluetooth/BLE_fit/ARM/EventRecorderStub.scvd diff --git a/Examples/MAX32690/BLE_fit/BLE_fit.launch b/Examples/MAX32690/Bluetooth/BLE_fit/BLE_fit.launch similarity index 100% rename from Examples/MAX32690/BLE_fit/BLE_fit.launch rename to Examples/MAX32690/Bluetooth/BLE_fit/BLE_fit.launch diff --git a/Examples/MAX32690/BLE_fit/IAR/BLE_fit.ewd b/Examples/MAX32690/Bluetooth/BLE_fit/IAR/BLE_fit.ewd similarity index 100% rename from Examples/MAX32690/BLE_fit/IAR/BLE_fit.ewd rename to Examples/MAX32690/Bluetooth/BLE_fit/IAR/BLE_fit.ewd diff --git a/Examples/MAX32690/BLE_fit/IAR/BLE_fit.ewp b/Examples/MAX32690/Bluetooth/BLE_fit/IAR/BLE_fit.ewp similarity index 100% rename from Examples/MAX32690/BLE_fit/IAR/BLE_fit.ewp rename to Examples/MAX32690/Bluetooth/BLE_fit/IAR/BLE_fit.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_fit/Makefile b/Examples/MAX32690/Bluetooth/BLE_fit/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_fit/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_fit/README.md b/Examples/MAX32690/Bluetooth/BLE_fit/README.md similarity index 100% rename from Examples/MAX32690/BLE_fit/README.md rename to Examples/MAX32690/Bluetooth/BLE_fit/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_fit/fit_api.h b/Examples/MAX32690/Bluetooth/BLE_fit/fit_api.h new file mode 100644 index 00000000000..7753961b2b5 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_fit/fit_api.h @@ -0,0 +1,83 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Fitness sample application interface. + * + * Copyright (c) 2011-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_FIT_FIT_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_FIT_FIT_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +#ifndef FIT_CONN_MAX +#define FIT_CONN_MAX 1 +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void FitStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_FIT_FIT_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_fit/fit_main.c b/Examples/MAX32690/Bluetooth/BLE_fit/fit_main.c new file mode 100644 index 00000000000..02fc1392879 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_fit/fit_main.c @@ -0,0 +1,801 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Fitness sample application for the following profiles: + * Heart Rate profile + * + * Copyright (c) 2011-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "hci_api.h" +#include "dm_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "app_hw.h" +#include "app_main.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_hrs.h" +#include "svc_dis.h" +#include "svc_batt.h" +#include "svc_rscs.h" +#include "gatt/gatt_api.h" +#include "bas/bas_api.h" +#include "hrps/hrps_api.h" +#include "rscp/rscp_api.h" +#include "fit_api.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! WSF message event starting value */ +#define FIT_MSG_START 0xA0 + +/* Default Running Speed and Cadence Measurement period (seconds) */ +#define FIT_DEFAULT_RSCM_PERIOD 1 + +/*! WSF message event enumeration */ +enum { + FIT_HR_TIMER_IND = FIT_MSG_START, /*! Heart rate measurement timer expired */ + FIT_BATT_TIMER_IND, /*! Battery measurement timer expired */ + FIT_RUNNING_TIMER_IND /*! Running speed and cadence measurement timer expired */ +}; + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 + +/************************************************************************************************** + Data Types +**************************************************************************************************/ + +/*! Application message type */ +typedef union { + wsfMsgHdr_t hdr; + dmEvt_t dm; + attsCccEvt_t ccc; + attEvt_t att; +} fitMsg_t; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t fitAdvCfg = { + { 60000, 0, 0 }, /*! Advertising durations in ms */ + { 800, 0, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t fitSlaveCfg = { + FIT_CONN_MAX, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t fitSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + 0, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t fitUpdateCfg = { + 6000, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + 640, /*! Minimum connection interval in 1.25ms units */ + 800, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 900, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! heart rate measurement configuration */ +static const hrpsCfg_t fitHrpsCfg = { + 2000 /*! Measurement timer expiration period in ms */ +}; + +/*! battery measurement configuration */ +static const basCfg_t fitBasCfg = { + 30, /*! Battery measurement timer expiration period in seconds */ + 1, /*! Perform battery measurement after this many timer periods */ + 100 /*! Send battery level notification to peer when below this level. */ +}; + +/*! SMP security parameter configuration */ +static const smpCfg_t fitSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t fitAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! tx power */ + 2, /*! length */ + DM_ADV_TYPE_TX_POWER, /*! AD type */ + 0, /*! tx power */ + + /*! service UUID list */ + 9, /*! length */ + DM_ADV_TYPE_16_UUID, /*! AD type */ + UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), + UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), UINT16_TO_BYTES(ATT_UUID_BATTERY_SERVICE) +}; + +/*! scan data, discoverable mode */ +static const uint8_t fitScanDataDisc[] = { + /*! device name */ + 4, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'F', 'i', 't' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! enumeration of client characteristic configuration descriptors */ +enum { + FIT_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + FIT_HRS_HRM_CCC_IDX, /*! Heart rate service, heart rate monitor characteristic */ + FIT_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ + FIT_RSCS_SM_CCC_IDX, /*! Runninc speed and cadence measurement characteristic */ + FIT_NUM_CCC_IDX +}; + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* FIT_GATT_SC_CCC_IDX */ + { HRS_HRM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_HRS_HRM_CCC_IDX */ + { BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* FIT_BATT_LVL_CCC_IDX */ + { RSCS_RSM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* FIT_RSCS_SM_CCC_IDX */ +}; + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! WSF handler ID */ +wsfHandlerId_t fitHandlerId; + +/* WSF Timer to send running speed and cadence measurement data */ +wsfTimer_t fitRscmTimer; + +/* Running Speed and Cadence Measurement period - Can be changed at runtime to vary period */ +static uint16_t fitRscmPeriod = FIT_DEFAULT_RSCM_PERIOD; + +/* Heart Rate Monitor feature flags */ +static uint8_t fitHrmFlags = CH_HRM_FLAGS_VALUE_8BIT | CH_HRM_FLAGS_ENERGY_EXP; + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void fitCccCback(attsCccEvt_t *pEvt) +{ + attsCccEvt_t *pMsg; + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + } + + if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { + memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); + WsfMsgSend(fitHandlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! +* \brief Send a Running Speed and Cadence Measurement Notification. +* +* \param connId connection ID +* +* \return None. +*/ +/*************************************************************************************************/ +static void fitSendRunningSpeedMeasurement(dmConnId_t connId) +{ + if (AttsCccEnabled(connId, FIT_RSCS_SM_CCC_IDX)) { + static uint8_t walk_run = 1; + + /* TODO: Set Running Speed and Cadence Measurement Parameters */ + + RscpsSetParameter(RSCP_SM_PARAM_SPEED, 1); + RscpsSetParameter(RSCP_SM_PARAM_CADENCE, 2); + RscpsSetParameter(RSCP_SM_PARAM_STRIDE_LENGTH, 3); + RscpsSetParameter(RSCP_SM_PARAM_TOTAL_DISTANCE, 4); + + /* Toggle running/walking */ + walk_run = walk_run ? 0 : 1; + RscpsSetParameter(RSCP_SM_PARAM_STATUS, walk_run); + + RscpsSendSpeedMeasurement(connId); + } + + /* Configure and start timer to send the next measurement */ + fitRscmTimer.msg.event = FIT_RUNNING_TIMER_IND; + fitRscmTimer.msg.status = FIT_RSCS_SM_CCC_IDX; + fitRscmTimer.handlerId = fitHandlerId; + fitRscmTimer.msg.param = connId; + + WsfTimerStartSec(&fitRscmTimer, fitRscmPeriod); +} + +/*************************************************************************************************/ +/*! + * \brief Process CCC state change. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitProcCccState(fitMsg_t *pMsg) +{ + APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, + pMsg->ccc.idx); + + /* handle heart rate measurement CCC */ + if (pMsg->ccc.idx == FIT_HRS_HRM_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + HrpsMeasStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_HR_TIMER_IND, FIT_HRS_HRM_CCC_IDX); + } else { + HrpsMeasStop((dmConnId_t)pMsg->ccc.hdr.param); + } + return; + } + + /* handle running speed and cadence measurement CCC */ + if (pMsg->ccc.idx == FIT_RSCS_SM_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); + } else { + WsfTimerStop(&fitRscmTimer); + } + return; + } + + /* handle battery level CCC */ + if (pMsg->ccc.idx == FIT_BATT_LVL_CCC_IDX) { + if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { + BasMeasBattStart((dmConnId_t)pMsg->ccc.hdr.param, FIT_BATT_TIMER_IND, + FIT_BATT_LVL_CCC_IDX); + } else { + BasMeasBattStop((dmConnId_t)pMsg->ccc.hdr.param); + } + return; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection close. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitClose(fitMsg_t *pMsg) +{ + /* stop heart rate measurement */ + HrpsMeasStop((dmConnId_t)pMsg->hdr.param); + + /* stop battery measurement */ + BasMeasBattStop((dmConnId_t)pMsg->hdr.param); + + /* Stop running speed and cadence timer */ + WsfTimerStop(&fitRscmTimer); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitSetup(fitMsg_t *pMsg) +{ + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(fitAdvDataDisc), (uint8_t *)fitAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(fitScanDataDisc), (uint8_t *)fitScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, 0, NULL); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, 0, NULL); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitBtnCback(uint8_t btn) +{ + dmConnId_t connId; + static uint8_t heartRate = 78; /* for testing/demonstration */ + + /* button actions when connected */ + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* increment the heart rate */ + AppHwHrmTest(++heartRate); + break; + + case APP_UI_BTN_1_MED: + break; + + case APP_UI_BTN_1_LONG: + AppConnClose(connId); + break; + + case APP_UI_BTN_2_SHORT: + /* decrement the heart rate */ + AppHwHrmTest(--heartRate); + break; + + case APP_UI_BTN_2_MED: + /* Toggle HRM Sensor DET flags */ + if (!(fitHrmFlags & (CH_HRM_FLAGS_SENSOR_DET | CH_HRM_FLAGS_SENSOR_NOT_DET))) { + fitHrmFlags |= CH_HRM_FLAGS_SENSOR_DET; + } else if (fitHrmFlags & CH_HRM_FLAGS_SENSOR_DET) { + fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_DET; + fitHrmFlags |= CH_HRM_FLAGS_SENSOR_NOT_DET; + } else { + fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_NOT_DET; + } + + HrpsSetFlags(fitHrmFlags); + break; + + case APP_UI_BTN_2_LONG: + /* Toggle HRM RR Interval feature flag */ + if (fitHrmFlags & CH_HRM_FLAGS_RR_INTERVAL) { + fitHrmFlags &= ~CH_HRM_FLAGS_RR_INTERVAL; + } else { + fitHrmFlags |= CH_HRM_FLAGS_RR_INTERVAL; + } + + HrpsSetFlags(fitHrmFlags); + break; + + default: + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start or restart advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* enter discoverable and bondable mode */ + AppSetBondable(TRUE); + AppAdvStart(APP_MODE_DISCOVERABLE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + + /* restart advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_2_SHORT: + /* Toggle HRM Flag for 8 and 16 bit values */ + if (fitHrmFlags & CH_HRM_FLAGS_VALUE_16BIT) { + fitHrmFlags &= ~CH_HRM_FLAGS_VALUE_16BIT; + } else { + fitHrmFlags |= CH_HRM_FLAGS_VALUE_16BIT; + } + + HrpsSetFlags(fitHrmFlags); + break; + + default: + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void fitProcMsg(fitMsg_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case FIT_RUNNING_TIMER_IND: + fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); + break; + + case FIT_HR_TIMER_IND: + HrpsProcMsg(&pMsg->hdr); + break; + + case FIT_BATT_TIMER_IND: + BasProcMsg(&pMsg->hdr); + break; + + case ATTS_HANDLE_VALUE_CNF: + HrpsProcMsg(&pMsg->hdr); + BasProcMsg(&pMsg->hdr); + break; + + case ATTS_CCC_STATE_IND: + fitProcCccState(pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + fitSetup(pMsg); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_SET_START_IND: + uiEvent = APP_UI_ADV_SET_START_IND; + break; + + case DM_ADV_SET_STOP_IND: + uiEvent = APP_UI_ADV_SET_STOP_IND; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + HrpsProcMsg(&pMsg->hdr); + BasProcMsg(&pMsg->hdr); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + switch (pMsg->dm.connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + fitClose(pMsg); + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + AppHandlePasskey(&pMsg->dm.authReq); + break; + + case DM_SEC_ECC_KEY_IND: + DmSecSetEccKey(&pMsg->dm.eccMsg.data.key); + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->dm.cnfInd); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + + case DM_HW_ERROR_IND: + uiEvent = APP_UI_HW_ERROR; + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("FitHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &fitScanDataDisc[2]); + + /* store handler ID */ + fitHandlerId = handlerId; + + /* Set configuration pointers */ + pAppAdvCfg = (appAdvCfg_t *)&fitAdvCfg; + pAppSlaveCfg = (appSlaveCfg_t *)&fitSlaveCfg; + pAppSecCfg = (appSecCfg_t *)&fitSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&fitUpdateCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set stack configuration pointers */ + pSmpCfg = (smpCfg_t *)&fitSmpCfg; + + /* initialize heart rate profile sensor */ + HrpsInit(handlerId, (hrpsCfg_t *)&fitHrpsCfg); + HrpsSetFlags(fitHrmFlags); + + /* initialize battery service server */ + BasInit(handlerId, (basCfg_t *)&fitBasCfg); +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Fit got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + fitProcMsg((fitMsg_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void FitStart(void) +{ + /* Register for stack callbacks */ + DmRegister(fitDmCback); + DmConnRegister(DM_CLIENT_ID_APP, fitDmCback); + AttRegister(fitAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(FIT_NUM_CCC_IDX, (attsCccSet_t *)fitCccSet, fitCccCback); + + /* Register for app framework callbacks */ + AppUiBtnRegister(fitBtnCback); + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcHrsCbackRegister(NULL, HrpsWriteCback); + SvcHrsAddGroup(); + SvcDisAddGroup(); + SvcBattCbackRegister(BasReadCback, NULL); + SvcBattAddGroup(); + SvcRscsAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(FIT_GATT_SC_CCC_IDX); + + /* Set running speed and cadence features */ + RscpsSetFeatures(RSCS_ALL_FEATURES); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_fit/main.c b/Examples/MAX32690/Bluetooth/BLE_fit/main.c new file mode 100644 index 00000000000..8295396dc8d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_fit/main.c @@ -0,0 +1,274 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth fitness device. Showcases heart rate, battery level, running speed and cadence. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "fit_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitFit(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT0_IRQHandler(void) +{ + MXC_WUT_Handler(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitFit(); + FitStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE_fit/project.mk b/Examples/MAX32690/Bluetooth/BLE_fit/project.mk similarity index 100% rename from Examples/MAX32690/BLE_fit/project.mk rename to Examples/MAX32690/Bluetooth/BLE_fit/project.mk diff --git a/Examples/MAX32690/BLE_fit/stack_fit.c b/Examples/MAX32690/Bluetooth/BLE_fit/stack_fit.c similarity index 100% rename from Examples/MAX32690/BLE_fit/stack_fit.c rename to Examples/MAX32690/Bluetooth/BLE_fit/stack_fit.c diff --git a/Examples/MAX32690/BLE_mcs/.cproject b/Examples/MAX32690/Bluetooth/BLE_mcs/.cproject similarity index 100% rename from Examples/MAX32690/BLE_mcs/.cproject rename to Examples/MAX32690/Bluetooth/BLE_mcs/.cproject diff --git a/Examples/MAX32690/BLE_mcs/.project b/Examples/MAX32690/Bluetooth/BLE_mcs/.project similarity index 100% rename from Examples/MAX32690/BLE_mcs/.project rename to Examples/MAX32690/Bluetooth/BLE_mcs/.project diff --git a/Examples/MAX32690/BLE5_ctr/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_mcs/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_mcs/.settings/language.settings.xml diff --git a/Examples/MAX32680/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32680/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_mcs/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_mcs/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_mcs/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_mcs/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_mcs/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/README.md diff --git a/Examples/MAX32680/BLE_dats/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32680/BLE_dats/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/USB_MassStorage/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/USB_MassStorage/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_mcs/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_mcs/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_mcs/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_mcs/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_mcs/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_mcs/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_mcs/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_mcs/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_mcs/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_mcs/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_mcs/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_mcs/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_mcs/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_mcs/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_mcs/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_mcs/BLE_mcs.launch b/Examples/MAX32690/Bluetooth/BLE_mcs/BLE_mcs.launch similarity index 100% rename from Examples/MAX32690/BLE_mcs/BLE_mcs.launch rename to Examples/MAX32690/Bluetooth/BLE_mcs/BLE_mcs.launch diff --git a/Examples/MAX32690/BLE_mcs/IAR/BLE_mcs.ewd b/Examples/MAX32690/Bluetooth/BLE_mcs/IAR/BLE_mcs.ewd similarity index 100% rename from Examples/MAX32690/BLE_mcs/IAR/BLE_mcs.ewd rename to Examples/MAX32690/Bluetooth/BLE_mcs/IAR/BLE_mcs.ewd diff --git a/Examples/MAX32690/BLE_mcs/IAR/BLE_mcs.ewp b/Examples/MAX32690/Bluetooth/BLE_mcs/IAR/BLE_mcs.ewp similarity index 100% rename from Examples/MAX32690/BLE_mcs/IAR/BLE_mcs.ewp rename to Examples/MAX32690/Bluetooth/BLE_mcs/IAR/BLE_mcs.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/Makefile b/Examples/MAX32690/Bluetooth/BLE_mcs/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_mcs/README.md b/Examples/MAX32690/Bluetooth/BLE_mcs/README.md similarity index 100% rename from Examples/MAX32690/BLE_mcs/README.md rename to Examples/MAX32690/Bluetooth/BLE_mcs/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/main.c b/Examples/MAX32690/Bluetooth/BLE_mcs/main.c new file mode 100644 index 00000000000..a53eb4a80ca --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/main.c @@ -0,0 +1,220 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Maxim custom Bluetooth profile and service that advertises as "MCS" and accepts + * connection requests. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "mcs_app_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitMcsApp(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); +#endif + + StackInitMcsApp(); + McsAppStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/mcs_app_api.h b/Examples/MAX32690/Bluetooth/BLE_mcs/mcs_app_api.h new file mode 100644 index 00000000000..11244839c4f --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/mcs_app_api.h @@ -0,0 +1,88 @@ +/*************************************************************************************************/ +/*! + * \file mcs_app_api.h + * + * \brief Maxim Custom Service server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! WSF message event starting value */ +#define MCS_MSG_START 0xA0 + +/*! WSF message event enumeration */ +enum { + MCS_BUTTON_TIMER_IND = MCS_MSG_START, /*/< Button state BLE notify timer event */ + MCS_BUTTON_PRESS_DUR /*/< Button press duration timer event */ +}; + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_MCS_APP_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/mcs_app_main.c b/Examples/MAX32690/Bluetooth/BLE_mcs/mcs_app_main.c new file mode 100644 index 00000000000..d94603bd1bc --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/mcs_app_main.c @@ -0,0 +1,795 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_mcs.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "mcs_app_api.h" +#include "mcs_api.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + MCS_APP_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + MCS_APP_BT_CCC_IDX, /*! MCS characteristic */ + MCS_APP_NUM_CCC_IDX +}; + +/************************************************************************************************** + Data Types +**************************************************************************************************/ + +/*! Application message type */ +typedef union { + wsfMsgHdr_t hdr; + dmEvt_t dm; + attsCccEvt_t ccc; + attEvt_t att; +} mcsMsg_t; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t mcsAppAdvCfg = { + { 30000, 0, 0 }, /*! Advertising durations in ms */ + { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t mcsAppSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t mcsAppSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + FALSE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t mcsAppSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t mcsAppSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t mcsAppUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update; set to zero to disable */ + 640, /*! Minimum connection interval in 1.25ms units */ + 800, /*! Maximum connection interval in 1.25ms units */ + 3, /*! Connection latency */ + 900, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t mcsAppAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t mcsAppAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t mcsAppScanDataDisc[] = { + /*! device name */ + 4, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'M', + 'C', + 'S', +}; + +/*! Mcs measurement configuration */ +static const mcsCfg_t mcsMcsCfg = { + 2, /*! Mcs measurement timer expiration period in seconds */ + 1, /*! Perform mcs measurement after this many timer periods */ + 3 /*! Send mcs level notification to peer when below this level. */ +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t mcsAppCccSet[MCS_APP_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, + DM_SEC_LEVEL_NONE }, /* MCS_APP_GATT_SC_CCC_IDX */ + { MCS_BUTTON_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* MCS_BUTTON_SM_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} mcsAppCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *mcsAppOobCfg; + +extern void setAdvTxPower(void); +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (mcsAppSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (mcsAppOobCfg == NULL) { + mcsAppOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (mcsAppOobCfg) { + Calc128Cpy(mcsAppOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(mcsAppOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + attsCccEvt_t *pMsg; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } + + if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { + memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); + WsfMsgSend(mcsAppCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process CCC state change. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppProcCccState(mcsMsg_t *pMsg) +{ + APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, + pMsg->ccc.idx); +} + +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void mcsAppPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void mcsAppPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection close. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppClose(dmEvt_t *pMsg) +{ + /* stop mcs measurement */ + McsButtonCheckStop((dmConnId_t)pMsg->hdr.param); +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void mcsAppDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + mcsAppCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(mcsAppAdvDataDisc), + (uint8_t *)mcsAppAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(mcsAppScanDataDisc), + (uint8_t *)mcsAppScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(mcsAppAdvDataDisc), + (uint8_t *)mcsAppAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(mcsAppScanDataDisc), + (uint8_t *)mcsAppScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + mcsAppSetup(pMsg); + } else { + mcsAppCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (mcsAppCb.restoringResList) { + /* Set the advertising peer address. */ + mcsAppPrivAddDevToResList(mcsAppCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + mcsAppCb.resListRestoreHdl = AppAddNextDevToResList(mcsAppCb.resListRestoreHdl); + + if (mcsAppCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + mcsAppSetup(pMsg); + } + } else { + mcsAppPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTS_CCC_STATE_IND: + mcsAppProcCccState((mcsMsg_t *)pMsg); + break; + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + mcsAppRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + mcsAppClose(pMsg); + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill mcsAppOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (mcsAppOobCfg != NULL) { + DmSecSetOob(connId, mcsAppOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + mcsAppPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + mcsAppPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("McsAppHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &mcsAppScanDataDisc[2]); + + /* store handler ID */ + mcsAppCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&mcsAppSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&mcsAppAdvCfg; + pAppSecCfg = (appSecCfg_t *)&mcsAppSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&mcsAppUpdateCfg; + pSmpCfg = (smpCfg_t *)&mcsAppSmpCfg; + pAttCfg = (attCfg_t *)&mcsAppAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* initialize mcs server */ + McsInit(handlerId, (mcsCfg_t *)&mcsMcsCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppBtnCback(uint8_t btn) +{ + APP_TRACE_INFO1("mcsAppBtnCback; %d", btn); + McsSetFeatures(btn); +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void mcsAppWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("McsApp got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("McsApp got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + mcsAppProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void McsAppStart(void) +{ + /* Register for stack callbacks */ + DmRegister(mcsAppDmCback); + DmConnRegister(DM_CLIENT_ID_APP, mcsAppDmCback); + AttRegister(mcsAppAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(MCS_APP_NUM_CCC_IDX, (attsCccSet_t *)mcsAppCccSet, mcsAppCccCback); + + SvcMcsCbackRegister(NULL, McsWriteCback); + SvcMcsAddGroup(); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(MCS_APP_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(mcsAppBtnCback); + + WsfNvmInit(); + + WsfBufDiagRegister(mcsAppWsfBufDiagnostics); + + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h b/Examples/MAX32690/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h new file mode 100644 index 00000000000..eed63250b5f --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/profiles/mcs/mcs_api.h @@ -0,0 +1,121 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ + +#include "wsf_types.h" +#include "att_api.h" +#include "app_api.h" +#include "svc_mcs.h" +#include "board.h" +#include "led.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Data Types +**************************************************************************************************/ +/*! \brief Maxim custom service configurable parameters */ +typedef struct { + wsfTimerTicks_t period; /*!< \brief Button timer expiration period in seconds */ + uint16_t count; /*!< \brief Perform button after this many timer periods */ + uint8_t threshold; /*!< \brief Send button notification to peer when below this level. */ +} mcsCfg_t; + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for maxim custom service Use this function as a parameter + * to SvcMcsCbackRegister(). + * + * \param connId DM connection identifier. + * \param handle ATT handle. + * \param operation ATT operation. + * \param offset Write offset. + * \param len Write length. + * \param pValue Value to write. + * \param pAttr Attribute to write. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr); + +/*************************************************************************************************/ +/*! + * \brief Setting characteristic value and send the button value to the peer device. + * + * \param features The button value. + * + * \return None. + */ +/*************************************************************************************************/ +void McsSetFeatures(uint8_t features); + +/*************************************************************************************************/ +/*! + * \brief Initialize the mcs server. + * + * \param handlerId WSF handler ID of the application using this service. + * \param pCfg mcs configurable parameters. + * + * \return None. + */ +/*************************************************************************************************/ +void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg); + +/*************************************************************************************************/ +/*! + * \brief Start periodic mcs button state read. This function starts a timer to perform + * periodic button read. + * + * \param connId DM connection identifier. + * \param timerEvt WSF event designated by the application for the timer. + * \param mcsCccIdx Index of mcs level CCC descriptor in CCC descriptor handle table. + * \param btnState State of the push button. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState); + +/*************************************************************************************************/ +/*! + * \brief Stop periodic mcs button read. + * + * \param connId DM connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStop(dmConnId_t connId); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_PROFILES_MCS_MCS_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c b/Examples/MAX32690/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c new file mode 100644 index 00000000000..c90378f5767 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/profiles/mcs/mcs_main.c @@ -0,0 +1,212 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "mcs_api.h" +#include "app_ui.h" +#include "pal_led.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +#ifndef LED_RED +#define LED_RED 0 +#endif + +#ifndef LED_GREEN +#define LED_GREEN 1 +#endif + +#ifndef LED_BLUE +#define LED_BLUE LED_GREEN +#endif + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! \brief Connection control block */ +typedef struct { + dmConnId_t connId; /*! \brief Connection ID */ + bool_t mcsToSend; /*! \brief mcs measurement ready to be sent on this channel */ + uint8_t sentMcsBtnState; /*! \brief value of last sent mcs button state */ +} mcsConn_t; + +/*! \brief Control block */ +static struct { + mcsConn_t conn[DM_CONN_MAX]; /*! \brief connection control block */ + wsfTimer_t btnStateChkTimer; /*! \brief periodic check timer */ + mcsCfg_t cfg; /*! \brief configurable parameters */ + uint16_t currCount; /*! \brief current measurement period count */ + bool_t txReady; /*! \brief TRUE if ready to send notifications */ + uint8_t btnState; /*! \brief value of last button state */ +} mcsCb; + +/*************************************************************************************************/ +/*! + * \brief Return TRUE if no connections with active measurements. + * + * \return TRUE if no connections active. + */ +/*************************************************************************************************/ +static bool_t mcsNoConnActive(void) +{ + mcsConn_t *pConn = mcsCb.conn; + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++, pConn++) { + if (pConn->connId != DM_CONN_ID_NONE) { + return FALSE; + } + } + return TRUE; +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for maxim custom service. Use this function as a parameter + * to SvcMcsCbackRegister(). + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t McsWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + AttsSetAttr(handle, sizeof(*pValue), (uint8_t *)pValue); + /* Turn LED on if non-zero value was written */ + bool on = *pValue != 0; + + /* Get LED ID */ + uint8_t ch = 0; + switch (handle) { + case MCS_R_HDL: + ch = LED_RED; + break; + case MCS_B_HDL: + ch = LED_BLUE; + break; + case MCS_G_HDL: + ch = LED_GREEN; + break; + } + + if (on) + LED_On(ch); + else + LED_Off(ch); + return ATT_SUCCESS; +} + +/*************************************************************************************************/ + +/*! + * \brief Setting characteristic value and send the button value to the peer device + * + * \return None. + */ +/*************************************************************************************************/ +void McsSetFeatures(uint8_t features) +{ + AttsSetAttr(MCS_BUTTON_HDL, sizeof(features), + (uint8_t *)&features); /*Setting mcsButtonVal characteristic value */ + dmConnId_t connId = AppConnIsOpen(); /*Getting connected */ + if (connId != DM_CONN_ID_NONE) { + AttsHandleValueNtf(connId, MCS_BUTTON_HDL, sizeof(features), + (uint8_t *)&features); /*Send notify */ + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the mcs server. + * + * \param handerId WSF handler ID of the application using this service. + * \param pCfg mcs configurable parameters. + * + * \return None. + */ +/*************************************************************************************************/ +void McsInit(wsfHandlerId_t handlerId, mcsCfg_t *pCfg) +{ + mcsCb.btnStateChkTimer.handlerId = handlerId; + mcsCb.cfg = *pCfg; + + /* De-init the PAL LEDs so we can control them here */ + PalLedDeInit(); +} + +/*************************************************************************************************/ +/*! + * \brief Start periodic mcs button state check. This function starts a timer to perform + * periodic button checks. + * + * \param connId DM connection identifier. + * \param timerEvt WSF event designated by the application for the timer. + * \param mcsCccIdx Index of mcs button state CCC descriptor in CCC descriptor handle table. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStart(dmConnId_t connId, uint8_t timerEvt, uint8_t mcsCccIdx, uint8_t btnState) +{ + /* if this is first connection */ + if (mcsNoConnActive()) { + /* initialize control block */ + mcsCb.btnStateChkTimer.msg.event = timerEvt; + mcsCb.btnStateChkTimer.msg.status = mcsCccIdx; + mcsCb.btnState = btnState; + mcsCb.currCount = mcsCb.cfg.count; + + /* start timer */ + WsfTimerStartSec(&mcsCb.btnStateChkTimer, mcsCb.cfg.period); + } + + /* set conn id and last sent button level */ + mcsCb.conn[connId - 1].connId = connId; + mcsCb.conn[connId - 1].sentMcsBtnState = btnState; +} + +/*************************************************************************************************/ +/*! + * \brief Stop periodic button state check. + * + * \param connId DM connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +void McsButtonCheckStop(dmConnId_t connId) +{ + /* clear connection */ + mcsCb.conn[connId - 1].connId = DM_CONN_ID_NONE; + mcsCb.conn[connId - 1].mcsToSend = FALSE; + + /* if no remaining connections */ + if (mcsNoConnActive()) { + /* stop timer */ + WsfTimerStop(&mcsCb.btnStateChkTimer); + } +} diff --git a/Examples/MAX32690/BLE_mcs/project.mk b/Examples/MAX32690/Bluetooth/BLE_mcs/project.mk similarity index 100% rename from Examples/MAX32690/BLE_mcs/project.mk rename to Examples/MAX32690/Bluetooth/BLE_mcs/project.mk diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/services/svc_mcs.c b/Examples/MAX32690/Bluetooth/BLE_mcs/services/svc_mcs.c new file mode 100644 index 00000000000..2c4791ee2c9 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/services/svc_mcs.c @@ -0,0 +1,178 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "svc_mcs.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Characteristic read permissions */ +#ifndef MCS_SEC_PERMIT_READ +#define MCS_SEC_PERMIT_READ SVC_SEC_PERMIT_READ +#endif + +/*! Characteristic write permissions */ +#ifndef MCS_SEC_PERMIT_WRITE +#define MCS_SEC_PERMIT_WRITE SVC_SEC_PERMIT_WRITE +#endif + +/************************************************************************************************** + Service variables +**************************************************************************************************/ + +/*Service variables declaration*/ +const uint8_t attMcsSvcUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_SERVICE }; + +/*Characteristic variables declaration*/ +const uint8_t svcMcsButtonUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_BUTTON }; +const uint8_t svcMcsRUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_R }; +const uint8_t svcMcsGUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_G }; +const uint8_t svcMcsBUuid[ATT_128_UUID_LEN] = { ATT_UUID_MCS_B }; + +static const uint8_t mcsValSvc[] = { ATT_UUID_MCS_SERVICE }; +static const uint16_t mcsLenSvc = sizeof(mcsValSvc); + +static const uint8_t mcsButtonValCh[] = { ATT_PROP_READ | ATT_PROP_NOTIFY, + UINT16_TO_BYTES(MCS_BUTTON_HDL), ATT_UUID_MCS_BUTTON }; +static const uint16_t mcsButtonLenCh = sizeof(mcsButtonValCh); + +static const uint8_t mcsRValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_R_HDL), + ATT_UUID_MCS_R }; +static const uint16_t mcsRLenCh = sizeof(mcsRValCh); + +static const uint8_t mcsGValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_G_HDL), + ATT_UUID_MCS_G }; +static const uint16_t mcsGLenCh = sizeof(mcsGValCh); + +static const uint8_t mcsBValCh[] = { ATT_PROP_READ | ATT_PROP_WRITE, UINT16_TO_BYTES(MCS_B_HDL), + ATT_UUID_MCS_B }; +static const uint16_t mcsBLenCh = sizeof(mcsBValCh); + +/*Characteristic values declaration*/ +static uint8_t mcsButtonVal[] = { 0 }; +static const uint16_t mcsButtonValLen = sizeof(mcsButtonVal); + +static uint8_t mcsButtonValChCcc[] = { UINT16_TO_BYTES(0x0000) }; +static const uint16_t mcsButtonLenValChCcc = sizeof(mcsButtonValChCcc); + +static uint8_t mcsRVal[] = { 0 }; +static const uint16_t mcsRValLen = sizeof(mcsRVal); + +static uint8_t mcsGVal[] = { 0 }; +static const uint16_t mcsGValLen = sizeof(mcsGVal); + +static uint8_t mcsBVal[] = { 0 }; +static const uint16_t mcsBValLen = sizeof(mcsBVal); + +/************************************************************************************************** + Maxim Custom Service group +**************************************************************************************************/ + +/* Attribute list for mcs group */ +static const attsAttr_t mcsList[] = { + /*-----------------------------*/ + /* Service declaration */ + { attPrimSvcUuid, (uint8_t *)mcsValSvc, (uint16_t *)&mcsLenSvc, sizeof(mcsValSvc), 0, + MCS_SEC_PERMIT_READ }, + + /*----------------------------*/ + /* Button characteristic declaration */ + { attChUuid, (uint8_t *)mcsButtonValCh, (uint16_t *)&mcsButtonLenCh, sizeof(mcsButtonValCh), 0, + MCS_SEC_PERMIT_READ }, + /* Button characteristic value */ + { svcMcsButtonUuid, (uint8_t *)mcsButtonVal, (uint16_t *)&mcsButtonValLen, sizeof(mcsButtonVal), + 0, MCS_SEC_PERMIT_READ }, + /*Button characteristic value descriptor*/ + { attCliChCfgUuid, (uint8_t *)mcsButtonValChCcc, (uint16_t *)&mcsButtonLenValChCcc, + sizeof(mcsButtonValChCcc), ATTS_SET_CCC, (ATTS_PERMIT_READ | SVC_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* R characteristic declaration */ + { attChUuid, (uint8_t *)mcsRValCh, (uint16_t *)&mcsRLenCh, sizeof(mcsRValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* R characteristic characteristic value */ + { svcMcsRUuid, (uint8_t *)mcsRVal, (uint16_t *)&mcsRValLen, sizeof(mcsRVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* G characteristic declaration */ + { attChUuid, (uint8_t *)mcsGValCh, (uint16_t *)&mcsGLenCh, sizeof(mcsGValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* G characteristic characteristic value */ + { svcMcsGUuid, (uint8_t *)mcsGVal, (uint16_t *)&mcsGValLen, sizeof(mcsGVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + + /*-----------------------------*/ + /* B characteristic declaration */ + { attChUuid, (uint8_t *)mcsBValCh, (uint16_t *)&mcsBLenCh, sizeof(mcsBValCh), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) }, + /* B characteristic value */ + { svcMcsBUuid, (uint8_t *)mcsBVal, (uint16_t *)&mcsBValLen, sizeof(mcsBVal), + ATTS_SET_WRITE_CBACK, (MCS_SEC_PERMIT_READ | MCS_SEC_PERMIT_WRITE) } +}; + +/* Test group structure */ +static attsGroup_t svcMcsGroup = { NULL, (attsAttr_t *)mcsList, NULL, + NULL, MCS_START_HDL, MCS_END_HDL }; + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsAddGroup(void) +{ + AttsAddGroup(&svcMcsGroup); +} + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsRemoveGroup(void) +{ + AttsRemoveGroup(MCS_START_HDL); +} + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback) +{ + svcMcsGroup.readCback = readCback; + svcMcsGroup.writeCback = writeCback; +} diff --git a/Examples/MAX32690/Bluetooth/BLE_mcs/services/svc_mcs.h b/Examples/MAX32690/Bluetooth/BLE_mcs/services/svc_mcs.h new file mode 100644 index 00000000000..a28814feb1c --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_mcs/services/svc_mcs.h @@ -0,0 +1,128 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Maxim Custom service server. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ + +#include "wsf_types.h" +#include "att_api.h" +#include "util/bstream.h" +#include "svc_cfg.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*! \addtogroup Mcs + * \{ */ +/************************************************************************************************** + Macros +**************************************************************************************************/ +/*MCS service UUID*/ +#define ATT_UUID_MCS_SERVICE \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7D, 0x56, 0xFC, \ + 0x85 /*!< \brief Test Service UUID*/ + +/* MCS service GATT characteristic UUIDs*/ +#define ATT_UUID_MCS_BUTTON \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7E, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_R \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x7F, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_G \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x80, 0x56, 0xFC, 0x85 +#define ATT_UUID_MCS_B \ + 0xBE, 0xC5, 0xD1, 0x24, 0x99, 0x33, 0xC6, 0x87, 0x85, 0x41, 0xD9, 0x31, 0x81, 0x56, 0xFC, 0x85 + +/************************************************************************************************** + Handle Ranges +**************************************************************************************************/ + +/** \name Maxim custom Service Handles + * + */ +/**@{*/ +#define MCS_START_HDL 0x1500 /*!< \brief Start handle. */ +#define MCS_END_HDL (MCS_MAX_HDL - 1) /*!< \brief End handle. */ + +/************************************************************************************************** + Handles +**************************************************************************************************/ + +/*! \brief Maxim custom Service Handles */ +enum { + MCS_SVC_HDL = MCS_START_HDL, /*!< \brief Maxim custom service declaration */ + MCS_BUTTON_CH_HDL, /*!< \brief Button characteristic */ + MCS_BUTTON_HDL, /*!< \brief Button*/ + MCS_BUTTON_CH_CCC_HDL, /*!< \brief Button CCCD*/ + MCS_R_CH_HDL, /*!< \brief R characteristic */ + MCS_R_HDL, /*!< \brief R*/ + MCS_G_CH_HDL, /*!< \brief G characteristic */ + MCS_G_HDL, /*!< \brief G*/ + MCS_B_CH_HDL, /*!< \brief B characteristic */ + MCS_B_HDL, /*!< \brief B*/ + MCS_MAX_HDL /*!< \brief Maximum handle. */ +}; +/**@}*/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Add the services to the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsAddGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Remove the services from the attribute server. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsRemoveGroup(void); + +/*************************************************************************************************/ +/*! + * \brief Register callbacks for the service. + * + * \param readCback Read callback function. + * \param writeCback Write callback function. + * + * \return None. + */ +/*************************************************************************************************/ +void SvcMcsCbackRegister(attsReadCback_t readCback, attsWriteCback_t writeCback); + +/*! \} */ /* TEST_SERVICE */ + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_MCS_SERVICES_SVC_MCS_H_ diff --git a/Examples/MAX32690/BLE_mcs/stack_mcs_app.c b/Examples/MAX32690/Bluetooth/BLE_mcs/stack_mcs_app.c similarity index 100% rename from Examples/MAX32690/BLE_mcs/stack_mcs_app.c rename to Examples/MAX32690/Bluetooth/BLE_mcs/stack_mcs_app.c diff --git a/Examples/MAX32690/BLE_otac/.cproject b/Examples/MAX32690/Bluetooth/BLE_otac/.cproject similarity index 100% rename from Examples/MAX32690/BLE_otac/.cproject rename to Examples/MAX32690/Bluetooth/BLE_otac/.cproject diff --git a/Examples/MAX32690/BLE_otac/.project b/Examples/MAX32690/Bluetooth/BLE_otac/.project similarity index 100% rename from Examples/MAX32690/BLE_otac/.project rename to Examples/MAX32690/Bluetooth/BLE_otac/.project diff --git a/Examples/MAX32690/BLE_FreeRTOS/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_otac/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_otac/.settings/language.settings.xml diff --git a/Examples/MAX32680/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32680/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_otac/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_otac/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_otac/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_otac/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_otac/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_otac/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_otac/.vscode/README.md diff --git a/Examples/MAX32690/BLE4_ctr/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_otac/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_otac/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/Watchdog/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_otac/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/Watchdog/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_otac/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_otac/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_otac/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_otac/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_otac/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_otac/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_otac/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_otac/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_otac/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_otac/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_otac/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_otac/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_otac/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_otac/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_otac/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_otac/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_otac/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_otac/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_otac/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_otac/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_otac/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_otac/BLE_otac.launch b/Examples/MAX32690/Bluetooth/BLE_otac/BLE_otac.launch similarity index 100% rename from Examples/MAX32690/BLE_otac/BLE_otac.launch rename to Examples/MAX32690/Bluetooth/BLE_otac/BLE_otac.launch diff --git a/Examples/MAX32690/BLE_otac/IAR/BLE_otac.ewd b/Examples/MAX32690/Bluetooth/BLE_otac/IAR/BLE_otac.ewd similarity index 100% rename from Examples/MAX32690/BLE_otac/IAR/BLE_otac.ewd rename to Examples/MAX32690/Bluetooth/BLE_otac/IAR/BLE_otac.ewd diff --git a/Examples/MAX32690/BLE_otac/IAR/BLE_otac.ewp b/Examples/MAX32690/Bluetooth/BLE_otac/IAR/BLE_otac.ewp similarity index 100% rename from Examples/MAX32690/BLE_otac/IAR/BLE_otac.ewp rename to Examples/MAX32690/Bluetooth/BLE_otac/IAR/BLE_otac.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_otac/Makefile b/Examples/MAX32690/Bluetooth/BLE_otac/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otac/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_otac/README.md b/Examples/MAX32690/Bluetooth/BLE_otac/README.md similarity index 100% rename from Examples/MAX32690/BLE_otac/README.md rename to Examples/MAX32690/Bluetooth/BLE_otac/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_otac/datc_api.h b/Examples/MAX32690/Bluetooth/BLE_otac/datc_api.h new file mode 100644 index 00000000000..e0ef26dfccd --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otac/datc_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAC_DATC_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAC_DATC_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAC_DATC_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_otac/datc_main.c b/Examples/MAX32690/Bluetooth/BLE_otac/datc_main.c new file mode 100644 index 00000000000..391ad8e7cea --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otac/datc_main.c @@ -0,0 +1,1420 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer client sample application for Nordic-ble. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "dm_api.h" +#include "dm_priv.h" +#include "gap/gap_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_cfg.h" +#include "app_api.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_core.h" +#include "svc_ch.h" +#include "gatt/gatt_api.h" +#include "wpc/wpc_api.h" +#include "datc_api.h" +#include "util/calc128.h" +#include "wsf_efs.h" +#include "wdxc/wdxc_api.h" +#include "wdxc/wdxc_main.h" +#include "wdx_defs.h" +#include "pal_btn.h" +#include "tmr.h" + +/************************************************************************************************** +Macros +**************************************************************************************************/ +#if (BT_VER > 8) +/* PHY Test Modes */ +#define DATC_PHY_1M 1 +#define DATC_PHY_2M 2 +#define DATC_PHY_CODED 3 +#endif /* BT_VER */ + +/* Size of WDXC file discovery dataset */ +#define DATC_WDXC_MAX_FILES 4 + +/*! WSF message event starting value */ +#define DATC_MSG_START 0xA0 + +/*! Data rate timer period in seconds */ +#define DATC_WDXS_DATA_RATE_TIMEOUT 4 + +extern uint32_t _binary_fw_update_bin_start; +extern uint32_t _binary_fw_update_bin_end; + +#define FILE_SIZE \ + (uint32_t)(((uint32_t)&_binary_fw_update_bin_end) - ((uint32_t)&_binary_fw_update_bin_start)) +#define BLOCK_OFFSET_INIT 0x0 +#define BLOCK_SIZE 224 +#define CRC32_LEN 4 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +#define SCAN_START_EVT 0x99 +#define SCAN_START_MS 500 + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; +fileHeader_t fileHeader; +/*! application control block */ +struct { + uint16_t hdlList[DM_CONN_MAX][APP_DB_HDL_LIST_LEN]; /*! Cached handle list */ + wsfHandlerId_t handlerId; /*! WSF hander ID */ + bool_t scanning; /*! TRUE if scanning */ + bool_t autoConnect; /*! TRUE if auto-connecting */ + uint8_t discState[DM_CONN_MAX]; /*! Service discovery state */ + uint8_t hdlListLen; /*! Cached handle list length */ + uint8_t btnConnId; /*! The index of the connection ID for button presses */ + bool_t sendingFile[DM_CONN_MAX]; + bool_t fileVerified[DM_CONN_MAX]; + uint32_t blockOffset[DM_CONN_MAX]; + wsfEfsFileInfo_t fileList[DM_CONN_MAX][DATC_WDXC_MAX_FILES]; /*! Buffer to hold WDXC file list */ + uint8_t *fileData; /*! Pointer for accessing the fw_update image*/ + uint32_t fileCRC; /*! Holds the CRC32 value of the file */ + uint32_t blockSize; + + appDbHdl_t resListRestoreHdl; /*! Resolving List restoration handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ + wsfTimer_t scanTimer; /* Timer for starting the scanner */ +} datcCb; + +/*! connection control block */ +typedef struct { + appDbHdl_t dbHdl; /*! Device database record handle type */ + uint8_t addrType; /*! Type of address of device to connect to */ + bdAddr_t addr; /*! Address of device to connect to */ + bool_t doConnect; /*! TRUE to issue connect on scan complete */ +} datcConnInfo_t; + +datcConnInfo_t datcConnInfo; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for master */ +static const appMasterCfg_t datcMasterCfg = { + 96, /*! The scan interval, in 0.625 ms units */ + 48, /*! The scan window, in 0.625 ms units */ + 0, /*! The scan duration in ms */ + DM_DISC_MODE_NONE, /*! The GAP discovery mode */ + DM_SCAN_TYPE_ACTIVE /*! The scan type (active or passive) */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datcSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datcSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datcSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/*! Connection parameters */ +static const hciConnSpec_t datcConnCfg = { + 6, /*! Minimum connection interval in 1.25ms units */ + 6, /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 0, /*! Unused */ + 0 /*! Unused */ +}; + +/*! Configurable parameters for service and characteristic discovery */ +static const appDiscCfg_t datcDiscCfg = { + FALSE, /*! TRUE to wait for a secure connection before initiating discovery */ + TRUE /*! TRUE to fall back on database hash to verify handles when no bond exists. */ +}; + +static const appCfg_t datcAppCfg = { + FALSE, /*! TRUE to abort service discovery if service not found */ + TRUE /*! TRUE to disconnect if ATT transaction times out */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datcAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0xA6, 0xD9, 0xFF, 0x70, 0xD6, 0x1E, 0xF0, 0xA4, + 0x46, 0x5F, 0x8D, 0x68, 0x19, 0xF3, 0xB4, 0x96 }; + +/************************************************************************************************** + ATT Client Discovery Data +**************************************************************************************************/ + +/*! Discovery states: enumeration of services to be discovered */ +enum { + DATC_DISC_GATT_SVC, /*! GATT service */ + DATC_DISC_GAP_SVC, /*! GAP service */ + DATC_DISC_WP_SVC, /*! Arm Ltd. proprietary service */ + DATC_DISC_WDXC_SCV, /*! Arm Ltd. Wireless Data Exchange service */ + DATC_DISC_SVC_MAX /*! Discovery complete */ +}; + +/*! the Client handle list, datcCb.hdlList[], is set as follows: + * + * ------------------------------- <- DATC_DISC_GATT_START + * | GATT svc changed handle | + * ------------------------------- + * | GATT svc changed ccc handle | + * ------------------------------- <- DATC_DISC_GAP_START + * | GAP central addr res handle | + * ------------------------------- + * | GAP RPA Only handle | + * ------------------------------- <- DATC_DISC_WP_START + * | WP handles | + * | ... | + * ------------------------------- + */ + +/*! Start of each service's handles in the the handle list */ +#define DATC_DISC_GATT_START 0 +#define DATC_DISC_GAP_START (DATC_DISC_GATT_START + GATT_HDL_LIST_LEN) +#define DATC_DISC_WP_START (DATC_DISC_GAP_START + GAP_HDL_LIST_LEN) +#define DATC_DISC_WDXC_START (DATC_DISC_WP_START + WPC_P1_HDL_LIST_LEN) +#define DATC_DISC_HDL_LIST_LEN (DATC_DISC_WDXC_START + WDXC_HDL_LIST_LEN) + +/*! Pointers into handle list for each service's handles */ +static uint16_t *pDatcGattHdlList[DM_CONN_MAX]; +static uint16_t *pDatcGapHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWpHdlList[DM_CONN_MAX]; +static uint16_t *pDatcWdxHdlList[DM_CONN_MAX]; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datcOobCfg; + +/************************************************************************************************** + ATT Client Configuration Data +**************************************************************************************************/ + +/* + * Data for configuration after service discovery + */ + +/* Default value for CCC indications */ +const uint8_t datcCccIndVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_INDICATE) }; + +/* Default value for CCC notifications */ +const uint8_t datcCccNtfVal[2] = { UINT16_TO_BYTES(ATT_CLIENT_CFG_NOTIFY) }; + +/* Default value for Client Supported Features (enable Robust Caching) */ +const uint8_t datcCsfVal[1] = { ATTS_CSF_ROBUST_CACHING }; + +/* List of characteristics to configure after service discovery */ +static const attcDiscCfg_t datcDiscCfgList[] = { + /* Write: GATT service changed ccc descriptor */ + { datcCccIndVal, sizeof(datcCccIndVal), (GATT_SC_CCC_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: GATT client supported features */ + { datcCsfVal, sizeof(datcCsfVal), (GATT_CSF_HDL_IDX + DATC_DISC_GATT_START) }, + + /* Write: Proprietary data service changed ccc descriptor */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WPC_P1_NA_CCC_HDL_IDX + DATC_DISC_WP_START) }, + + /* Write: WDXC ccc descriptors */ + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_DC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTC_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_FTD_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, + { datcCccNtfVal, sizeof(datcCccNtfVal), (WDXC_AU_CCC_HDL_IDX + DATC_DISC_WDXC_START) }, +}; + +/* Characteristic configuration list length */ +#define DATC_DISC_CFG_LIST_LEN (sizeof(datcDiscCfgList) / sizeof(attcDiscCfg_t)) + +/* sanity check: make sure configuration list length is <= handle list length */ +WSF_CT_ASSERT(DATC_DISC_CFG_LIST_LEN <= DATC_DISC_HDL_LIST_LEN); + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Reset the OTA state. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcResetOTAState(void) +{ + int i; + for (i = 0; i < DM_CONN_MAX; i++) { + datcCb.sendingFile[i] = FALSE; + datcCb.fileVerified[i] = FALSE; + datcCb.blockOffset[i] = BLOCK_OFFSET_INIT; + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + uint16_t reportLen; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datcSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datcOobCfg == NULL) { + datcOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datcOobCfg) { + Calc128Cpy(datcOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datcOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + reportLen = pDmEvt->scanReport.len; + } else { + reportLen = 0; + } + + if ((pMsg = WsfMsgAlloc(len + reportLen)) != NULL) { + memcpy(pMsg, pDmEvt, len); + if (pDmEvt->hdr.event == DM_SCAN_REPORT_IND) { + pMsg->scanReport.pData = (uint8_t *)((uint8_t *)pMsg + len); + memcpy(pMsg->scanReport.pData, pDmEvt->scanReport.pData, reportLen); + } + WsfMsgSend(datcCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datcAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(datcCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning handler. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanningHandler(void) +{ + datcCb.autoConnect = TRUE; + datcConnInfo.doConnect = FALSE; + AppScanStart(datcMasterCfg.discMode, datcMasterCfg.scanType, datcMasterCfg.scanDuration); +} + +/*************************************************************************************************/ +/*! + * \brief Restart scanning. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestartScanning(void) +{ + /* Start the scanning start timer */ + WsfTimerStartMs(&datcCb.scanTimer, SCAN_START_MS); +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan start. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStart(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform actions on scan stop. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanStop(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + + /* Open connection */ + if (datcConnInfo.doConnect) { + AppConnOpen(datcConnInfo.addrType, datcConnInfo.addr, datcConnInfo.dbHdl); + datcConnInfo.doConnect = FALSE; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Handle a scan report. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcScanReport(dmEvt_t *pMsg) +{ + uint8_t *pData; + appDbHdl_t dbHdl; + bool_t connect = FALSE; + + /* disregard if not scanning or autoconnecting */ + if (!datcCb.scanning || !datcCb.autoConnect) { + return; + } + + /* if we already have a bond with this device then connect to it */ + if ((dbHdl = AppDbFindByAddr(pMsg->scanReport.addrType, pMsg->scanReport.addr)) != + APP_DB_HDL_NONE) { + /* if this is a directed advertisement where the initiator address is an RPA */ + if (DM_RAND_ADDR_RPA(pMsg->scanReport.directAddr, pMsg->scanReport.directAddrType)) { + /* resolve direct address to see if it's addressed to us */ + AppMasterResolveAddr(pMsg, dbHdl, APP_RESOLVE_DIRECT_RPA); + } else { + connect = TRUE; + } + } else if (DM_RAND_ADDR_RPA(pMsg->scanReport.addr, pMsg->scanReport.addrType)) { + /* if the peer device uses an RPA */ + /* resolve advertiser's RPA to see if we already have a bond with this device */ + AppMasterResolveAddr(pMsg, APP_DB_HDL_NONE, APP_RESOLVE_ADV_RPA); + } + /* Search for "OTAS" name */ + if (!connect && ((pData = DmFindAdType(DM_ADV_TYPE_LOCAL_NAME, pMsg->scanReport.len, + pMsg->scanReport.pData)) != NULL)) { + /* check length and device name */ + if (pData[DM_AD_LEN_IDX] >= 4 && (pData[DM_AD_DATA_IDX] == 'O') && + (pData[DM_AD_DATA_IDX + 1] == 'T') && (pData[DM_AD_DATA_IDX + 2] == 'A') && + (pData[DM_AD_DATA_IDX + 3] == 'S')) { + connect = TRUE; + } + } + + if (connect) { + /* stop scanning and connect */ + datcCb.autoConnect = FALSE; + AppScanStop(); + + /* Store peer information for connect on scan stop */ + datcConnInfo.addrType = DmHostAddrType(pMsg->scanReport.addrType); + memcpy(datcConnInfo.addr, pMsg->scanReport.addr, sizeof(bdAddr_t)); + datcConnInfo.dbHdl = dbHdl; + datcConnInfo.doConnect = TRUE; + } +} + +/*************************************************************************************************/ +/*! + * \brief Perform UI actions on connection open. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcOpen(dmEvt_t *pMsg) +{ + datcResetOTAState(); +} + +/*************************************************************************************************/ +/*! + * \brief Process a received ATT notification. + * + * \param pMsg Pointer to ATT callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcValueNtf(attEvt_t *pMsg) +{ + /* print received message */ + APP_TRACE_INFO0((const char *)pMsg->pValue); +} + +/*************************************************************************************************/ +/*! + * \brief Set up procedures that need to be performed after device reset. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSetup(dmEvt_t *pMsg) +{ + datcCb.scanning = FALSE; + datcCb.autoConnect = FALSE; + datcConnInfo.doConnect = FALSE; + datcCb.restoringResList = FALSE; + + DmConnSetConnSpec((hciConnSpec_t *)&datcConnCfg); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datcSetup(pMsg); + } else { + datcCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datcCb.restoringResList) { + /* Retore next device to resolving list in Controller. */ + datcCb.resListRestoreHdl = AppAddNextDevToResList(datcCb.resListRestoreHdl); + + if (datcCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datcSetup(pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief GAP service discovery has completed. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscGapCmpl(dmConnId_t connId) +{ + appDbHdl_t dbHdl; + + /* if RPA Only attribute found on peer device */ + if ((pDatcGapHdlList[connId - 1][GAP_RPAO_HDL_IDX] != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl(connId)) != APP_DB_HDL_NONE)) { + /* update DB */ + AppDbSetPeerRpao(dbHdl, TRUE); + AppDbNvmStorePeerRpao(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief WDXC File Transfer Data Callback. + * + * \param connId Connection ID. + * \param fileHdl Handle of the file. + * \param len length of pData in bytes. + * \param pData File data. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcWdxcFtdCallback(dmConnId_t connId, uint16_t fileHdl, uint16_t len, uint8_t *pData) +{ +} + +/*************************************************************************************************/ +/*! + * \brief Send file header. + * + * \param connId Connection identifier. + * + * \return None. + */ +/*************************************************************************************************/ +static void sendFileHeader(dmConnId_t connId) +{ + if (pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX] != ATT_HANDLE_NONE) { + AttcWriteCmd(connId, pDatcWpHdlList[connId - 1][WPC_P1_DAT_HDL_IDX], sizeof(fileHeader_t), + (uint8_t *)&fileHeader); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send a block of file data to the peer. Combines the address with the data. + * + * \param connId Connection identifier. + * \param address Address of the block. + * \param len Length of the data. + * \param pData Pointer to the data to send. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcSendBlock(dmConnId_t connId, uint32_t address, uint32_t len, uint8_t *pData) +{ + uint8_t *addrData = WsfBufAlloc(datcCb.blockSize + sizeof(uint32_t)); + + /* Insert the address into the block */ + memcpy(addrData, &address, sizeof(uint32_t)); + memcpy(&addrData[sizeof(uint32_t)], pData, len); + + // APP_TRACE_INFO2("Sending addr: 0x%08X len: 0x%04X", address, len); + + /* Send the address and data, add the length of the address to the length */ + WdxcFtdSendBlock(connId, len + sizeof(uint32_t), addrData); + + /* Clear out the buf->free field to prevent un-intended assertion in WsfBufFree */ + addrData[4] = 0; + addrData[5] = 0; + addrData[6] = 0; + addrData[7] = 0; + + WsfBufFree(addrData); + + /* Increment the address of the data that we're sending */ + datcCb.blockOffset[connId - 1] += len; +} + +/*************************************************************************************************/ +/*! + * \brief WDXC File Transfer Control Callback. + * + * \param connId Connection ID. + * \param op Control operation. + * \param status Status of operation. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcWdxcFtcCallback(dmConnId_t connId, uint16_t handle, uint8_t op, uint8_t status) +{ + APP_TRACE_INFO2("FTC op: %d status: %d", op, status); + + if (op == WDX_FTC_OP_PUT_RSP) { + /* Start timer */ + APP_TRACE_INFO0(">>> Starting file transfer <<<\n"); + + MXC_TMR_SW_Start(MXC_TMR2); + datcCb.sendingFile[connId - 1] = TRUE; + uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; + datcSendBlock(connId, address, datcCb.blockSize, (uint8_t *)&datcCb.fileData[address]); + + } else if (op == WDX_FTC_OP_EOF) { + if (handle == WDX_FLIST_HANDLE) { + /* on discovery completion we can send the header */ + sendFileHeader(connId); + /* File discovery complete */ + APP_TRACE_INFO0(">>> File discovery complete <<<\n"); + } else { + /* Stop timer, calculate time and Bps */ + uint32_t usec = MXC_TMR_SW_Stop(MXC_TMR2); + APP_TRACE_INFO1(">>> File transfer complete %d us <<<\n", usec); + APP_TRACE_INFO3("file_size = %d usec = %d bps = %d\n", FILE_SIZE, usec, + ((FILE_SIZE * 1000) / (usec / 1000)) * 8); + datcCb.sendingFile[connId - 1] = FALSE; + } + } else if (op == WDX_FTC_OP_VERIFY_RSP) { + APP_TRACE_INFO1(">>> Verify complete status: %d <<<\n", status); + if (status) + datcCb.fileVerified[connId - 1] = FALSE; + else + datcCb.fileVerified[connId - 1] = TRUE; + } +} +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcBtnCback(uint8_t btn) +{ + dmConnId_t connId = datcCb.btnConnId; + dmConnId_t connIdList[DM_CONN_MAX]; + uint8_t numConnections = AppConnOpenList(connIdList); + + /* button actions when connected */ + if (numConnections > 0) { + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (numConnections < DM_CONN_MAX - 1) { + if (datcCb.scanning) { /* if scanning cancel scanning */ + AppScanStop(); + } else if (!datcCb.autoConnect) { /* else auto connect */ + datcRestartScanning(); + } + } else { + APP_TRACE_INFO0("datcBtnCback: Max connections reached."); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID used in button presses */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnId for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* disconnect */ + AppConnClose(connId); + break; + +#if (BT_VER > 8) + case APP_UI_BTN_1_EX_LONG: { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } +#endif /* BT_VER */ + + case APP_UI_BTN_2_SHORT: + if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { + WdxcDiscoverFiles(connId, datcCb.fileList[connId - 1], DATC_WDXC_MAX_FILES); + datcCb.blockSize = AttGetMtu(connId); + + /* Subtract for the address and message overhead */ + datcCb.blockSize = datcCb.blockSize - 8; + if (datcCb.blockSize > BLOCK_SIZE) { + datcCb.blockSize = BLOCK_SIZE; + } + } + break; + + case APP_UI_BTN_2_MED: + if ((datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) && + (datcCb.sendingFile[connId - 1] == FALSE)) { + /* Start the WDXC data stream */ + datcCb.blockOffset[connId - 1] = BLOCK_OFFSET_INIT; + + /* Put file request */ + WdxcFtcSendPutReq(connId, datcCb.fileList[connId - 1][0].handle, BLOCK_OFFSET_INIT, + FILE_SIZE, BLOCK_OFFSET_INIT + FILE_SIZE, 0); + } + break; + + case APP_UI_BTN_2_LONG: + if (datcCb.discState[connId - 1] > DATC_DISC_WDXC_SCV) { + /* Send verification request */ + WdxcFtcSendVerifyFile(connId, datcCb.fileList[connId - 1][0].handle); + } + break; + + case APP_UI_BTN_2_EX_LONG: + if (datcCb.fileVerified[connId - 1]) { + /* Send Disconnect and Reset request to apply firmware update */ + WdxcDcSendDisconnectAndReset(connId); + datcCb.fileVerified[connId - 1] = FALSE; + } + break; + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { /* button actions when not connected */ + switch (btn) { + case APP_UI_BTN_1_SHORT: + if (datcCb.scanning) { /* if scanning cancel scanning */ + AppScanStop(); + } else if (!datcCb.autoConnect) { /* else auto connect */ + datcRestartScanning(); + } + break; + + case APP_UI_BTN_1_MED: + /* Increment connection ID buttons apply to */ + if (++datcCb.btnConnId > DM_CONN_MAX) { + datcCb.btnConnId = 1; + } + APP_TRACE_INFO1("ConnID for Button Press: %d", datcCb.btnConnId); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: + /* add RPAO characteristic to GAP service -- needed only when DM Privacy enabled */ + SvcCoreGapAddRpaoCh(); + break; + + case APP_UI_BTN_2_EX_LONG: + /* enable device privacy -- start generating local RPAs every 15 minutes */ + DmDevPrivStart(15 * 60); + + /* set Scanning filter policy to accept directed advertisements with RPAs */ + DmDevSetFilterPolicy(DM_FILT_POLICY_MODE_SCAN, HCI_FILT_RES_INIT); + break; + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Discovery callback. + * + * \param connId Connection identifier. + * \param status Service or configuration status. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcDiscCback(dmConnId_t connId, uint8_t status) +{ + switch (status) { + case APP_DISC_INIT: + /* set handle list when initialization requested */ + AppDiscSetHdlList(connId, datcCb.hdlListLen, datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_READ_DATABASE_HASH: + /* Read peer's database hash */ + AppDiscReadDatabaseHash(connId); + break; + + case APP_DISC_SEC_REQUIRED: + /* initiate security */ + AppMasterSecurityReq(connId); + break; + + case APP_DISC_START: + /* initialize discovery state */ + datcCb.discState[connId - 1] = DATC_DISC_GATT_SVC; + + /* store possible change in cache by hash */ + AppDbNvmStoreCacheByHash(AppDbGetHdl(connId)); + + /* discover GATT service */ + GattDiscover(connId, pDatcGattHdlList[connId - 1]); + break; + + case APP_DISC_FAILED: + if (pAppCfg->abortDisc) { + /* if discovery failed for proprietary data service then disconnect */ + if (datcCb.discState[connId - 1] < DATC_DISC_SVC_MAX) { + AppConnClose(connId); + break; + } + } + /* Else falls through. */ + + case APP_DISC_CMPL: + /* next discovery state */ + datcCb.discState[connId - 1]++; + + if (datcCb.discState[connId - 1] == DATC_DISC_GAP_SVC) { + /* discover GAP service */ + GapDiscover(connId, pDatcGapHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WP_SVC) { + /* discover proprietary data service */ + WpcP1Discover(connId, pDatcWpHdlList[connId - 1]); + } else if (datcCb.discState[connId - 1] == DATC_DISC_WDXC_SCV) { + WdxcWdxsDiscover(connId, pDatcWdxHdlList[connId - 1]); + } else { + /* discovery complete */ + AppDiscComplete(connId, APP_DISC_CMPL); + + /* GAP service discovery completed */ + datcDiscGapCmpl(connId); + + /* store cached handle list in NVM */ + AppDbNvmStoreHdlList(AppDbGetHdl(connId)); + + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + } + break; + + case APP_DISC_CFG_START: + case APP_DISC_CFG_CONN_START: + /* start configuration */ + AppDiscConfigure(connId, APP_DISC_CFG_START, DATC_DISC_CFG_LIST_LEN, + (attcDiscCfg_t *)datcDiscCfgList, DATC_DISC_HDL_LIST_LEN, + datcCb.hdlList[connId - 1]); + break; + + case APP_DISC_CFG_CMPL: + AppDiscComplete(connId, status); + break; + + default: + break; + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case ATTC_HANDLE_VALUE_NTF: + datcValueNtf((attEvt_t *)pMsg); + break; + + case ATTC_WRITE_CMD_RSP: + case ATTC_WRITE_RSP: { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + if ((((attEvt_t *)pMsg)->hdr.status == ATT_SUCCESS) && + (((attEvt_t *)pMsg)->handle == pDatcWdxHdlList[connId - 1][WDXC_FTD_HDL_IDX])) { + if (datcCb.sendingFile[connId - 1] == TRUE) { + uint32_t tempBlockSize; + if ((datcCb.blockOffset[connId - 1] + datcCb.blockSize) > FILE_SIZE) { + tempBlockSize = FILE_SIZE - datcCb.blockOffset[connId - 1]; + } else { + tempBlockSize = datcCb.blockSize; + } + + /* Keep writing the file */ + uint32_t address = datcCb.blockOffset[connId - 1] - BLOCK_OFFSET_INIT; + datcSendBlock(connId, address, tempBlockSize, (uint8_t *)&datcCb.fileData[address]); + } + } + break; + } + + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + setAdvTxPower(); + datcRestoreResolvingList(pMsg); + datcRestartScanning(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_SCAN_START_IND: + datcScanStart(pMsg); + uiEvent = APP_UI_SCAN_START; + break; + + case DM_SCAN_STOP_IND: + datcScanStop(pMsg); + uiEvent = APP_UI_SCAN_STOP; + break; + + case DM_SCAN_REPORT_IND: + datcScanReport(pMsg); + break; + + case DM_CONN_OPEN_IND: + datcOpen(pMsg); + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + datcRestartScanning(); + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datcOobCfg != NULL) { + DmSecSetOob(connId, datcOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datcPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case SCAN_START_EVT: + datcRestartScanningHandler(); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatcHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + + /* store handler ID */ + datcCb.handlerId = handlerId; + + /* set handle list length */ + datcCb.hdlListLen = DATC_DISC_HDL_LIST_LEN; + + datcCb.btnConnId = 1; + /* Set configuration pointers */ + pAppMasterCfg = (appMasterCfg_t *)&datcMasterCfg; + pAppSecCfg = (appSecCfg_t *)&datcSecCfg; + pAppDiscCfg = (appDiscCfg_t *)&datcDiscCfg; + pAppCfg = (appCfg_t *)&datcAppCfg; + pSmpCfg = (smpCfg_t *)&datcSmpCfg; + pAttCfg = (attCfg_t *)&datcAttCfg; + + /* Initialize application framework */ + AppMasterInit(); + AppDiscInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Set the pointer for the fw_update image */ + datcCb.fileData = (uint8_t *)&_binary_fw_update_bin_start; + + /* Calculate the update image CRC */ + datcCb.fileCRC = 0; + crc32(datcCb.fileData, FILE_SIZE, &datcCb.fileCRC); + fileHeader.fileCRC = datcCb.fileCRC; + fileHeader.fileLen = FILE_SIZE; + APP_TRACE_INFO2("File addr: %08X file size: %08X", (uint32_t)datcCb.fileData, FILE_SIZE); + APP_TRACE_INFO1("Update File CRC: 0x%08X", datcCb.fileCRC); + + datcResetOTAState(); + + /* Setup scan start timer */ + datcCb.scanTimer.handlerId = handlerId; + datcCb.scanTimer.msg.event = SCAN_START_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + /* process ATT messages */ + if (pMsg->event <= ATT_CBACK_END) { + /* process discovery-related ATT messages */ + AppDiscProcAttMsg((attEvt_t *)pMsg); + + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event <= DM_CBACK_END) { /* process DM messages */ + /* process advertising and connection-related messages */ + AppMasterProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppMasterSecProcDmMsg((dmEvt_t *)pMsg); + + /* process discovery-related messages */ + AppDiscProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datcProcMsg((dmEvt_t *)pMsg); + + /* perform wdxc operations */ + WdxcProcMsg((wsfMsgHdr_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize the pointers into the handle list. + * + * \return None. + */ +/*************************************************************************************************/ +static void datcInitSvcHdlList() +{ + uint8_t i; + + for (i = 0; i < DM_CONN_MAX; i++) { + /*! Pointers into handle list for each service's handles */ + pDatcGattHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GATT_START]; + pDatcGapHdlList[i] = &datcCb.hdlList[i][DATC_DISC_GAP_START]; + pDatcWpHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WP_START]; + pDatcWdxHdlList[i] = &datcCb.hdlList[i][DATC_DISC_WDXC_START]; + } +} +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatcStart(void) +{ + /* Initialize handle pointers */ + datcInitSvcHdlList(); + + /* Register for stack callbacks */ + DmRegister(datcDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datcDmCback); + AttRegister(datcAttCback); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datcBtnCback); + + /* Register for app framework discovery callbacks */ + AppDiscRegister(datcDiscCback); + + /* Initialize attribute server database */ + SvcCoreAddGroup(); + + /* Initialize the WDXC and set the WDXC application callbacks */ + WdxcInit(datcWdxcFtdCallback, datcWdxcFtcCallback); + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_otac/fw_update.S b/Examples/MAX32690/Bluetooth/BLE_otac/fw_update.S new file mode 100644 index 00000000000..59a340ddc68 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otac/fw_update.S @@ -0,0 +1,60 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +.section .text + +/* Include the fw_update binary file, include global symbols we can use at link time */ +_binary_fw_update_bin_start: +.incbin "build/buildfw/fw_update.bin" +_binary_fw_update_bin_end: + +.globl _binary_fw_update_bin_start +.globl _binary_fw_update_bin_end diff --git a/Examples/MAX32690/Bluetooth/BLE_otac/main.c b/Examples/MAX32690/Bluetooth/BLE_otac/main.c new file mode 100644 index 00000000000..8985f1f15c6 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otac/main.c @@ -0,0 +1,275 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth data client that scans for and connects to advertisers with the name of "OTAS". + * Demonstrates Over-the-Air (OTA) firmware updates. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "datc_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDatc(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT0_IRQHandler(void) +{ + MXC_WUT_Handler(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDatc(); + DatcStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE_otac/project.mk b/Examples/MAX32690/Bluetooth/BLE_otac/project.mk similarity index 100% rename from Examples/MAX32690/BLE_otac/project.mk rename to Examples/MAX32690/Bluetooth/BLE_otac/project.mk diff --git a/Examples/MAX32690/BLE_datc/stack_datc.c b/Examples/MAX32690/Bluetooth/BLE_otac/stack_datc.c similarity index 100% rename from Examples/MAX32690/BLE_datc/stack_datc.c rename to Examples/MAX32690/Bluetooth/BLE_otac/stack_datc.c diff --git a/Examples/MAX32690/BLE_otas/.cproject b/Examples/MAX32690/Bluetooth/BLE_otas/.cproject similarity index 100% rename from Examples/MAX32690/BLE_otas/.cproject rename to Examples/MAX32690/Bluetooth/BLE_otas/.cproject diff --git a/Examples/MAX32690/BLE_otas/.project b/Examples/MAX32690/Bluetooth/BLE_otas/.project similarity index 100% rename from Examples/MAX32690/BLE_otas/.project rename to Examples/MAX32690/Bluetooth/BLE_otas/.project diff --git a/Examples/MAX32690/BLE_datc/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_otas/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_datc/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_otas/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE4_ctr/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_otas/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_otas/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_otas/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_otas/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_otas/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_otas/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_otas/.vscode/README.md diff --git a/Examples/MAX32690/BLE5_ctr/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_otas/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_otas/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/WearLeveling/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_otas/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/WearLeveling/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_otas/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_otas/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_otas/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_otas/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_otas/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_otas/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_otas/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_otas/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_otas/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_otas/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_otas/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_otas/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_otas/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_otas/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_otas/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_otas/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_otas/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_otas/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_otas/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_otas/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_otas/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_otas/BLE_otas.launch b/Examples/MAX32690/Bluetooth/BLE_otas/BLE_otas.launch similarity index 100% rename from Examples/MAX32690/BLE_otas/BLE_otas.launch rename to Examples/MAX32690/Bluetooth/BLE_otas/BLE_otas.launch diff --git a/Examples/MAX32690/BLE_otas/IAR/BLE_otas.ewd b/Examples/MAX32690/Bluetooth/BLE_otas/IAR/BLE_otas.ewd similarity index 100% rename from Examples/MAX32690/BLE_otas/IAR/BLE_otas.ewd rename to Examples/MAX32690/Bluetooth/BLE_otas/IAR/BLE_otas.ewd diff --git a/Examples/MAX32690/BLE_otas/IAR/BLE_otas.ewp b/Examples/MAX32690/Bluetooth/BLE_otas/IAR/BLE_otas.ewp similarity index 100% rename from Examples/MAX32690/BLE_otas/IAR/BLE_otas.ewp rename to Examples/MAX32690/Bluetooth/BLE_otas/IAR/BLE_otas.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_otas/Makefile b/Examples/MAX32690/Bluetooth/BLE_otas/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otas/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/BLE_otas/README.md b/Examples/MAX32690/Bluetooth/BLE_otas/README.md similarity index 100% rename from Examples/MAX32690/BLE_otas/README.md rename to Examples/MAX32690/Bluetooth/BLE_otas/README.md diff --git a/Examples/MAX32690/Bluetooth/BLE_otas/bl_build.S b/Examples/MAX32690/Bluetooth/BLE_otas/bl_build.S new file mode 100644 index 00000000000..61693b5bc63 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otas/bl_build.S @@ -0,0 +1,59 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Include the bl binary file, plus a reference for addition into linker script */ +.section .text +_binary_bootloader_bin_start: +.incbin "build/buildbl/bootloader.bin" +_binary_bootloader_bin_end: + +.globl _binary_bootloader_bin_start +.globl _binary_bootloader_bin_end diff --git a/Examples/MAX32690/Bluetooth/BLE_otas/dats_api.h b/Examples/MAX32690/Bluetooth/BLE_otas/dats_api.h new file mode 100644 index 00000000000..2895a928379 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otas/dats_api.h @@ -0,0 +1,75 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAS_DATS_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAS_DATS_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAS_DATS_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_otas/dats_main.c b/Examples/MAX32690/Bluetooth/BLE_otas/dats_main.c new file mode 100644 index 00000000000..aea4d4ff213 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otas/dats_main.c @@ -0,0 +1,985 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "mxc_device.h" +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "wsf_timer.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "dats_api.h" +#include "wut.h" +#include "trimsir_regs.h" +#include "pal_btn.h" +#include "tmr.h" +#include "wsf_efs.h" +#include "svc_wdxs.h" +#include "wdxs/wdxs_api.h" +#include "wdxs/wdxs_main.h" +#include "wdxs/wdxs_stream.h" +#include "wdxs_file.h" +#include "board.h" +#include "flc.h" +#include "wsf_cs.h" +#include "Ext_Flash.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ +#if (BT_VER > 8) + +/* PHY Test Modes */ +#define DATS_PHY_2M 2 +#define DATS_PHY_1M 1 +#define DATS_PHY_CODED 3 + +#endif /* BT_VER */ + +#define TRIM_TIMER_EVT 0x99 + +#define TRIM_TIMER_PERIOD_MS 100000 + +/*! Button press handling constants */ +#define BTN_SHORT_MS 200 +#define BTN_MED_MS 500 +#define BTN_LONG_MS 1000 + +#define BTN_1_TMR MXC_TMR2 +#define BTN_2_TMR MXC_TMR3 + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + WDXS_DC_CH_CCC_IDX, /*! WDXS DC service, service changed characteristic */ + WDXS_FTC_CH_CCC_IDX, /*! WDXS FTC service, service changed characteristic */ + WDXS_FTD_CH_CCC_IDX, /*! WDXS FTD service, service changed characteristic */ + WDXS_AU_CH_CCC_IDX, /*! WDXS AU service, service changed characteristic */ + DATS_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + DATS_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + DATS_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t datsAdvCfg = { + { 0, 0, 0 }, /*! Advertising durations in ms */ + { 300, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t datsSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! configurable parameters for security */ +static const appSecCfg_t datsSecCfg = { + DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ + DM_KEY_DIST_IRK, /*! Initiator key distribution flags */ + DM_KEY_DIST_LTK | DM_KEY_DIST_IRK, /*! Responder key distribution flags */ + FALSE, /*! TRUE if Out-of-band pairing data is present */ + TRUE /*! TRUE to initiate security upon connection */ +}; + +/*! TRUE if Out-of-band pairing data is to be sent */ +static const bool_t datsSendOobData = FALSE; + +/*! SMP security parameter configuration */ +static const smpCfg_t datsSmpCfg = { + 500, /*! 'Repeated attempts' timeout in msec */ + SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ + 7, /*! Minimum encryption key length */ + 16, /*! Maximum encryption key length */ + 1, /*! Attempts to trigger 'repeated attempts' timeout */ + 0, /*! Device authentication requirements */ + 64000, /*! Maximum repeated attempts timeout in msec */ + 64000, /*! Time msec before attemptExp decreases */ + 2 /*! Repeated attempts multiplier exponent */ +}; + +/* iOS connection parameter update requirements + + The connection parameter request may be rejected if it does not meet the following guidelines: + * Peripheral Latency of up to 30 connection intervals. + * Supervision Timeout from 2 seconds to 6 seconds. + * Interval Min of at least 15 ms. + * Interval Min is a multiple of 15 ms. + * One of the following: + * Interval Max at least 15 ms greater than Interval Min. + * Interval Max and Interval Min both set to 15 ms. + * Interval Max * (Peripheral Latency + 1) of 2 seconds or less. + * Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3. +*/ + +/*! configurable parameters for connection parameter update */ +static const appUpdateCfg_t datsUpdateCfg = { + 0, + /*! ^ Connection idle period in ms before attempting + connection parameter update. set to zero to disable */ + (15 * 8 / 1.25), /*! Minimum connection interval in 1.25ms units */ + (15 * 12 / 1.25), /*! Maximum connection interval in 1.25ms units */ + 0, /*! Connection latency */ + 600, /*! Supervision timeout in 10ms units */ + 5 /*! Number of update attempts before giving up */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t datsAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/*! local IRK */ +static uint8_t localIrk[] = { 0x95, 0xC8, 0xEE, 0x6F, 0xC5, 0x0D, 0xEF, 0x93, + 0x35, 0x4E, 0x7C, 0x57, 0x08, 0xE2, 0xA3, 0x85 }; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t datsAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + /*! manufacturer specific data */ + 3, /*! length */ + DM_ADV_TYPE_MANUFACTURER, /*! AD type */ + UINT16_TO_BYTES(HCI_ID_ANALOG) /*! company ID */ +}; + +/*! scan data, discoverable mode */ +static const uint8_t datsScanDataDisc[] = { + /*! device name */ + 5, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'O', + 'T', + 'A', + 'S' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t datsCccSet[DATS_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { WDXS_DC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_DC_CH_CCC_IDX */ + { WDXS_FTC_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTC_CH_CCC_IDX */ + { WDXS_FTD_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_FTD_CH_CCC_IDX */ + { WDXS_AU_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE }, /* WDXS_AU_CH_CCC_IDX */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* DATS_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ +#if (BT_VER > 8) + uint8_t phyMode; /*! PHY Test Mode */ +#endif /* BT_VER */ + appDbHdl_t resListRestoreHdl; /*! Resolving List last restored handle */ + bool_t restoringResList; /*! Restoring resolving list from NVM */ +} datsCb; + +/* LESC OOB configuration */ +static dmSecLescOobCfg_t *datsOobCfg; + +/* Timer for trimming of the 32 kHz crystal */ +wsfTimer_t trimTimer; + +extern void setAdvTxPower(void); + +/*************************************************************************************************/ +/*! + * \brief Send notification containing data. + * + * \param connId DM connection ID. + * \param size Size of message to send. + * \param msg Message to send + * \return None. + */ +/*************************************************************************************************/ +static void datsSendData(dmConnId_t connId, uint8_t size, uint8_t *msg) +{ + if (AttsCccEnabled(connId, DATS_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(connId, WP_DAT_HDL, size, msg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + if (pDmEvt->hdr.event == DM_SEC_ECC_KEY_IND) { + DmSecSetEccKey(&pDmEvt->eccMsg.data.key); + + /* If the local device sends OOB data. */ + if (datsSendOobData) { + uint8_t oobLocalRandom[SMP_RAND_LEN]; + SecRand(oobLocalRandom, SMP_RAND_LEN); + DmSecCalcOobReq(oobLocalRandom, pDmEvt->eccMsg.data.key.pubKey_x); + } + } else if (pDmEvt->hdr.event == DM_SEC_CALC_OOB_IND) { + if (datsOobCfg == NULL) { + datsOobCfg = WsfBufAlloc(sizeof(dmSecLescOobCfg_t)); + } + + if (datsOobCfg) { + Calc128Cpy(datsOobCfg->localConfirm, pDmEvt->oobCalcInd.confirm); + Calc128Cpy(datsOobCfg->localRandom, pDmEvt->oobCalcInd.random); + } + } else { + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(datsCb.handlerId, pMsg); + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsAttCback(attEvt_t *pEvt) +{ + WdxsAttCback(pEvt); +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void datsCccCback(attsCccEvt_t *pEvt) +{ + appDbHdl_t dbHdl; + + /* If CCC not set from initialization and there's a device record and currently bonded */ + if ((pEvt->handle != ATT_HANDLE_NONE) && + ((dbHdl = AppDbGetHdl((dmConnId_t)pEvt->hdr.param)) != APP_DB_HDL_NONE) && + AppCheckBonded((dmConnId_t)pEvt->hdr.param)) { + /* Store value in device database. */ + AppDbSetCccTblValue(dbHdl, pEvt->idx, pEvt->value); + AppDbNvmStoreCccTbl(dbHdl); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the trim procedure for the 32 kHz crystal. + * \details 32 kHz crystal will drift over temperature, execute this trim procedure to align with 32 MHz clock. + * System will not be able to enter standby mode while this procedure is in progress (200-600 ms). + * Larger period values will save power. Do not execute this procedure while BLE hardware is disabled. + * Disable this periodic trim if under constant temperature. Refer to 32 kHz crystal data sheet for temperature variance. + * + * \return None. + */ +/*************************************************************************************************/ +static void trimStart(void) +{ + int err; + extern void wutTrimCb(int err); + + /* Start the 32 kHz crystal trim procedure */ + err = MXC_WUT_TrimCrystalAsync(wutTrimCb); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Error starting 32kHz crystal trim %d", err); + } +} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ + +uint8_t datsWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + if (len == sizeof(fileHeader_t)) { + uint8_t str[50]; + uint16_t version = WdxsFileGetFirmwareVersion(); + snprintf((char *)str, sizeof(str), ">>> Current fw version: %d.%d <<<", + ((version & 0xFF00) >> 8), version & 0xFF); + fileHeader_t *tmpHeader; + tmpHeader = (fileHeader_t *)pValue; + initHeader(tmpHeader); + datsSendData(connId, sizeof(str), str); + } + return ATT_SUCCESS; +} +/*************************************************************************************************/ +/*! +* +* \brief Add device to resolving list. +* +* \param dbHdl Device DB record handle. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivAddDevToResList(appDbHdl_t dbHdl) +{ + dmSecKey_t *pPeerKey; + + /* if peer IRK present */ + if ((pPeerKey = AppDbGetKey(dbHdl, DM_KEY_IRK, NULL)) != NULL) { + /* set advertising peer address */ + AppSetAdvPeerAddr(pPeerKey->irk.addrType, pPeerKey->irk.bdAddr); + } +} + +/*************************************************************************************************/ +/*! +* +* \brief Handle remove device from resolving list indication. +* +* \param pMsg Pointer to DM callback event message. +* +* \return None. +*/ +/*************************************************************************************************/ +static void datsPrivRemDevFromResListInd(dmEvt_t *pMsg) +{ + if (pMsg->hdr.status == HCI_SUCCESS) { + if (AppDbGetHdl((dmConnId_t)pMsg->hdr.param) != APP_DB_HDL_NONE) { + uint8_t addrZeros[BDA_ADDR_LEN] = { 0 }; + + /* clear advertising peer address and its type */ + AppSetAdvPeerAddr(HCI_ADDR_TYPE_PUBLIC, addrZeros); + } + } +} + +/*************************************************************************************************/ +/*! + * + * \brief Display stack version. + * + * \param version version number. + * + * \return None. + */ +/*************************************************************************************************/ +void datsDisplayStackVersion(const char *pVersion) +{ + APP_TRACE_INFO1("Stack Version: %s", pVersion); +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsSetup(dmEvt_t *pMsg) +{ + /* Initialize control information */ + datsCb.restoringResList = FALSE; + + /* set advertising and scan response data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(datsScanDataDisc), + (uint8_t *)datsScanDataDisc); + + /* set advertising and scan response data for connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(datsAdvDataDisc), (uint8_t *)datsAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_CONNECTABLE, sizeof(datsScanDataDisc), (uint8_t *)datsScanDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Begin restoring the resolving list. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsRestoreResolvingList(dmEvt_t *pMsg) +{ + /* Restore first device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(APP_DB_HDL_NONE); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No device to restore. Setup application. */ + datsSetup(pMsg); + } else { + datsCb.restoringResList = TRUE; + } +} + +/*************************************************************************************************/ +/*! +* \brief Handle add device to resolving list indication. + * + * \param pMsg Pointer to DM callback event message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsPrivAddDevToResListInd(dmEvt_t *pMsg) +{ + /* Check if in the process of restoring the Device List from NV */ + if (datsCb.restoringResList) { + /* Set the advertising peer address. */ + datsPrivAddDevToResList(datsCb.resListRestoreHdl); + + /* Retore next device to resolving list in Controller. */ + datsCb.resListRestoreHdl = AppAddNextDevToResList(datsCb.resListRestoreHdl); + + if (datsCb.resListRestoreHdl == APP_DB_HDL_NONE) { + /* No additional device to restore. Setup application. */ + datsSetup(pMsg); + } + } else { + datsPrivAddDevToResList(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + } +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + AttsCalculateDbHash(); + DmSecGenerateEccKeyReq(); + AppDbNvmReadAll(); + datsRestoreResolvingList(pMsg); + setAdvTxPower(); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + WsfTimerStop(&trimTimer); + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + WsfTimerStop(&trimTimer); + + APP_TRACE_INFO2("Connection closed status 0x%x, reason 0x%x", pMsg->connClose.status, + pMsg->connClose.reason); + switch (pMsg->connClose.reason) { + case HCI_ERR_CONN_TIMEOUT: + APP_TRACE_INFO0(" TIMEOUT"); + break; + case HCI_ERR_LOCAL_TERMINATED: + APP_TRACE_INFO0(" LOCAL TERM"); + break; + case HCI_ERR_REMOTE_TERMINATED: + APP_TRACE_INFO0(" REMOTE TERM"); + break; + case HCI_ERR_CONN_FAIL: + APP_TRACE_INFO0(" FAIL ESTABLISH"); + break; + case HCI_ERR_MIC_FAILURE: + APP_TRACE_INFO0(" MIC FAILURE"); + break; + } + uiEvent = APP_UI_CONN_CLOSE; + break; + + case DM_SEC_PAIR_CMPL_IND: + DmSecGenerateEccKeyReq(); + AppDbNvmStoreBond(AppDbGetHdl((dmConnId_t)pMsg->hdr.param)); + uiEvent = APP_UI_SEC_PAIR_CMPL; + break; + + case DM_SEC_PAIR_FAIL_IND: + DmSecGenerateEccKeyReq(); + uiEvent = APP_UI_SEC_PAIR_FAIL; + break; + + case DM_SEC_ENCRYPT_IND: + uiEvent = APP_UI_SEC_ENCRYPT; + break; + + case DM_SEC_ENCRYPT_FAIL_IND: + uiEvent = APP_UI_SEC_ENCRYPT_FAIL; + break; + + case DM_SEC_AUTH_REQ_IND: + + if (pMsg->authReq.oob) { + dmConnId_t connId = (dmConnId_t)pMsg->hdr.param; + + /* TODO: Perform OOB Exchange with the peer. */ + + /* TODO: Fill datsOobCfg peerConfirm and peerRandom with value passed out of band */ + + if (datsOobCfg != NULL) { + DmSecSetOob(connId, datsOobCfg); + } + + DmSecAuthRsp(connId, 0, NULL); + } else { + AppHandlePasskey(&pMsg->authReq); + } + break; + + case DM_SEC_COMPARE_IND: + AppHandleNumericComparison(&pMsg->cnfInd); + break; + + case DM_PRIV_ADD_DEV_TO_RES_LIST_IND: + datsPrivAddDevToResListInd(pMsg); + break; + + case DM_PRIV_REM_DEV_FROM_RES_LIST_IND: + datsPrivRemDevFromResListInd(pMsg); + break; + + case DM_ADV_NEW_ADDR_IND: + break; + + case DM_PRIV_CLEAR_RES_LIST_IND: + APP_TRACE_INFO1("Clear resolving list status 0x%02x", pMsg->hdr.status); + break; + +#if (BT_VER > 8) + case DM_PHY_UPDATE_IND: + APP_TRACE_INFO2("DM_PHY_UPDATE_IND - RX: %d, TX: %d", pMsg->phyUpdate.rxPhy, + pMsg->phyUpdate.txPhy); + break; +#endif /* BT_VER */ + + case TRIM_TIMER_EVT: + trimStart(); + WsfTimerStartMs(&trimTimer, TRIM_TIMER_PERIOD_MS); + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("DatsHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &datsScanDataDisc[2]); + + /* store handler ID */ + datsCb.handlerId = handlerId; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&datsSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&datsAdvCfg; + pAppSecCfg = (appSecCfg_t *)&datsSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *)&datsUpdateCfg; + pSmpCfg = (smpCfg_t *)&datsSmpCfg; + pAttCfg = (attCfg_t *)&datsAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); + + /* Set IRK for the local device */ + DmSecSetLocalIrk(localIrk); + + /* Setup 32 kHz crystal trim timer */ + trimTimer.handlerId = handlerId; + trimTimer.msg.event = TRIM_TIMER_EVT; +} + +/*************************************************************************************************/ +/*! + * \brief Button press callback. + * + * \param btn Button press. + * + * \return None. + */ +/*************************************************************************************************/ +static void datsBtnCback(uint8_t btn) +{ +#if (BT_VER > 8) + dmConnId_t connId; + if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) +#else + if (AppConnIsOpen() != DM_CONN_ID_NONE) +#endif /* BT_VER */ + { + switch (btn) { +#if (BT_VER > 8) + case APP_UI_BTN_2_SHORT: + + { + static uint32_t coded_phy_cnt = 0; + /* Toggle PHY Test Mode */ + coded_phy_cnt++; + switch (coded_phy_cnt & 0x3) { + case 0: + /* 1M PHY */ + APP_TRACE_INFO0("1 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_1M_BIT, HCI_PHY_LE_1M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 1: + /* 2M PHY */ + APP_TRACE_INFO0("2 MBit TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_2M_BIT, HCI_PHY_LE_2M_BIT, + HCI_PHY_OPTIONS_NONE); + break; + case 2: + /* Coded S2 PHY */ + APP_TRACE_INFO0("LE Coded S2 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S2_PREFERRED); + break; + case 3: + /* Coded S8 PHY */ + APP_TRACE_INFO0("LE Coded S8 TX and RX PHY Requested"); + DmSetPhy(connId, HCI_ALL_PHY_ALL_PREFERENCES, HCI_PHY_LE_CODED_BIT, + HCI_PHY_LE_CODED_BIT, HCI_PHY_OPTIONS_S8_PREFERRED); + break; + } + break; + } + +#endif /* BT_VER */ + case APP_UI_BTN_2_MED: { + uint16_t version = WdxsFileGetFirmwareVersion(); + APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); + break; + } + + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } else { + switch (btn) { + case APP_UI_BTN_1_SHORT: + /* start advertising */ + AppAdvStart(APP_MODE_AUTO_INIT); + break; + + case APP_UI_BTN_1_MED: + /* Enter bondable mode */ + AppSetBondable(TRUE); + break; + + case APP_UI_BTN_1_LONG: + /* clear all bonding info */ + AppSlaveClearAllBondingInfo(); + AppDbNvmDeleteAll(); + break; + + case APP_UI_BTN_1_EX_LONG: { + const char *pVersion; + StackGetVersionNumber(&pVersion); + datsDisplayStackVersion(pVersion); + } break; + + case APP_UI_BTN_2_SHORT: + /* stop advertising */ + AppAdvStop(); + break; + case APP_UI_BTN_2_MED: { + uint16_t version = WdxsFileGetFirmwareVersion(); + APP_TRACE_INFO2("FW_VERSION: %d.%d", ((version & 0xFF00) >> 8), version & 0xFF); + break; + } + default: + APP_TRACE_INFO0(" - No action assigned"); + break; + } + } +} + +/*************************************************************************************************/ +/*! + * \brief Callback for WSF buffer diagnostic messages. + * + * \param pInfo Diagnostics message + * + * \return None. + */ +/*************************************************************************************************/ +static void datsWsfBufDiagnostics(WsfBufDiag_t *pInfo) +{ + if (pInfo->type == WSF_BUF_ALLOC_FAILED) { + APP_TRACE_INFO2("Dats got WSF Buffer Allocation Failure - Task: %d Len: %d", + pInfo->param.alloc.taskId, pInfo->param.alloc.len); + } +} + +/*************************************************************************************************/ +/*! + * \brief Platform button press handler. + * + * \param[in] btnId button ID. + * \param[in] state button state. See ::PalBtnPos_t. + * + * \return None. + */ +/*************************************************************************************************/ +static void btnPressHandler(uint8_t btnId, PalBtnPos_t state) +{ + if (btnId == 1) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_1_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_1_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_1_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_1_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_1_TMR); + } + } else if (btnId == 2) { + /* Start/stop button timer */ + if (state == PAL_BTN_POS_UP) { + /* Button Up, stop the timer, call the action function */ + unsigned btnUs = MXC_TMR_SW_Stop(BTN_2_TMR); + if ((btnUs > 0) && (btnUs < BTN_SHORT_MS * 1000)) { + AppUiBtnTest(APP_UI_BTN_2_SHORT); + } else if (btnUs < BTN_MED_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_MED); + } else if (btnUs < BTN_LONG_MS * 1000) { + AppUiBtnTest(APP_UI_BTN_2_LONG); + } else { + AppUiBtnTest(APP_UI_BTN_2_EX_LONG); + } + } else { + /* Button down, start the timer */ + MXC_TMR_SW_Start(BTN_2_TMR); + } + } else { + APP_TRACE_ERR0("Undefined button"); + } +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Dats got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + + /* process security-related messages */ + AppSlaveSecProcDmMsg((dmEvt_t *)pMsg); + + /* process WDXS-related messages */ + WdxsProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + datsProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Resets the system. + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsResetSystem(void) +{ + APP_TRACE_INFO0("Reseting!"); + /* Wait for the console to finish printing */ + volatile int i; + for (i = 0; i < 0xFFFFF; i++) {} + NVIC_SystemReset(); +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void DatsStart(void) +{ + /* Register for stack callbacks */ + DmRegister(datsDmCback); + DmConnRegister(DM_CLIENT_ID_APP, datsDmCback); + AttRegister(datsAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(DATS_NUM_CCC_IDX, (attsCccSet_t *)datsCccSet, datsCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, datsWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(DATS_GATT_SC_CCC_IDX); + + /* Register for app framework button callbacks */ + AppUiBtnRegister(datsBtnCback); + + /* Initialize the WDXS File */ + WdxsFileInit(); + + /* Set the WDXS CCC Identifiers */ + WdxsSetCccIdx(WDXS_DC_CH_CCC_IDX, WDXS_AU_CH_CCC_IDX, WDXS_FTC_CH_CCC_IDX, WDXS_FTD_CH_CCC_IDX); + +#if (BT_VER > 8) + WdxsPhyInit(); +#endif /* BT_VER */ + +#if (BT_VER > 8) + DmPhyInit(); +#endif /* BT_VER */ + + WsfNvmInit(); + + WsfBufDiagRegister(datsWsfBufDiagnostics); + + /* Initialize with button press handler */ + PalBtnInit(btnPressHandler); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/Bluetooth/BLE_otas/main.c b/Examples/MAX32690/Bluetooth/BLE_otas/main.c new file mode 100644 index 00000000000..60b3199be03 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otas/main.c @@ -0,0 +1,279 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Bluetooth data server that advertises as "OTAS" and accepts connection requests. + * Demonstrates Over-the-Air (OTA) firmware updates. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" +#include "wut.h" +#include "rtc.h" +#include "trimsir_regs.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "dats_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define DEFAULT_TX_POWER 0 /* dBm */ + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 16 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +volatile int wutTrimComplete; + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitDats(void); + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + uint16_t memUsed; + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} + +/*************************************************************************************************/ +/*! +* \fn WUT_IRQHandler +* +* \brief WUY interrupt handler. +* +* \return None. +*/ +/*************************************************************************************************/ +void WUT0_IRQHandler(void) +{ + MXC_WUT_Handler(); +} + +/*************************************************************************************************/ +/*! +* \fn wutTrimCb +* +* \brief Callback function for the WUT 32 kHz crystal trim. +* +* \param err Error code from the WUT driver. +* +* \return None. +*/ +/*************************************************************************************************/ +void wutTrimCb(int err) +{ + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("32 kHz trim error %d\n", err); + } else { + APP_TRACE_INFO1("32kHz trimmed to 0x%x", (MXC_TRIMSIR->rtc & MXC_F_TRIMSIR_RTC_RTCX1) >> + MXC_F_TRIMSIR_RTC_RTCX1_POS); + } + wutTrimComplete = 1; +} + +/*************************************************************************************************/ +/*! +* \fn setAdvTxPower +* +* \brief Set the default advertising TX power. +* +* \return None. +*/ +/*************************************************************************************************/ +void setAdvTxPower(void) +{ + LlSetAdvTxPower(DEFAULT_TX_POWER); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + /* Set 5.0 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; +#endif + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#if (BT_VER >= LL_VER_BT_CORE_SPEC_5_0) + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); +#endif + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; + + /* Set the default connection power level */ + mainLlRtCfg.defTxPwrLvl = DEFAULT_TX_POWER; +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + mainWsfInit(); + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Start the 32 MHz crystal and the BLE DBB counter to trim the 32 kHz crystal */ + PalBbEnable(); + + /* Output buffered square wave of 32 kHz clock to GPIO */ + // MXC_RTC_SquareWaveStart(MXC_RTC_F_32KHZ); + + /* Execute the trim procedure */ + wutTrimComplete = 0; + MXC_WUT_TrimCrystalAsync(wutTrimCb); + while (!wutTrimComplete) {} + + /* Stop here to measure the 32 kHz clock */ + /* while(1) {} */ + MXC_RTC_SquareWaveStop(); + + /* Shutdown the 32 MHz crystal and the BLE DBB */ + PalBbDisable(); +#endif + + StackInitDats(); + DatsStart(); + + WsfOsEnterMainLoop(); + + /* Does not return. */ + return 0; +} diff --git a/Examples/MAX32690/BLE_otas/ota.ld b/Examples/MAX32690/Bluetooth/BLE_otas/ota.ld similarity index 86% rename from Examples/MAX32690/BLE_otas/ota.ld rename to Examples/MAX32690/Bluetooth/BLE_otas/ota.ld index 1cc52413d40..3c66e9aae11 100644 --- a/Examples/MAX32690/BLE_otas/ota.ld +++ b/Examples/MAX32690/Bluetooth/BLE_otas/ota.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ BOOTLOADER_LEN = 0x4000; diff --git a/Examples/MAX32690/BLE_otas/project.mk b/Examples/MAX32690/Bluetooth/BLE_otas/project.mk similarity index 100% rename from Examples/MAX32690/BLE_otas/project.mk rename to Examples/MAX32690/Bluetooth/BLE_otas/project.mk diff --git a/Examples/MAX32690/BLE_otas/stack_dats.c b/Examples/MAX32690/Bluetooth/BLE_otas/stack_dats.c similarity index 100% rename from Examples/MAX32690/BLE_otas/stack_dats.c rename to Examples/MAX32690/Bluetooth/BLE_otas/stack_dats.c diff --git a/Examples/MAX32690/Bluetooth/BLE_otas/wdxs_file.h b/Examples/MAX32690/Bluetooth/BLE_otas/wdxs_file.h new file mode 100644 index 00000000000..0319284ba48 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otas/wdxs_file.h @@ -0,0 +1,98 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + uint32_t fileLen; + uint32_t fileCRC; +} fileHeader_t; + +/*! \addtogroup WIRELESS_DATA_EXCHANGE_PROFILE + * \{ */ + +/************************************************************************************************** + Constant Definitions +**************************************************************************************************/ + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Initialize the WDXS File. + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void); + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void); + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void); + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of the WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void); +/*************************************************************************************************/ +/*! + * \brief set the length of the expected file + * + * \return None. + */ +/*************************************************************************************************/ +void initHeader(fileHeader_t *header); + +/*! \} */ /* WIRELESS_DATA_EXCHANGE_PROFILE */ + +#ifdef __cplusplus +} +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_OTAS_WDXS_FILE_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_otas/wdxs_file_int.c b/Examples/MAX32690/Bluetooth/BLE_otas/wdxs_file_int.c new file mode 100644 index 00000000000..eb7fa1f725e --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_otas/wdxs_file_int.c @@ -0,0 +1,410 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Wireless Data Exchange profile implementation - File Example. + * + * Copyright (c) 2013-2018 Arm Ltd. All Rights Reserved. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include +#include "mxc_device.h" +#include "wsf_types.h" +#include "util/wstr.h" +#include "wsf_trace.h" +#include "wsf_assert.h" +#include "wsf_efs.h" +#include "wsf_cs.h" +#include "wsf_msg.h" +#include "util/bstream.h" +#include "svc_wdxs.h" +#include "wdxs/wdxs_api.h" +#include "wdxs/wdxs_main.h" +#include "wdxs_file.h" +#include "dm_api.h" +#include "att_api.h" +#include "app_api.h" +#include "flc.h" + +#ifndef FW_VERSION_MAJOR +#define FW_VERSION_MAJOR 1 +#define FW_VERSION_MINOR 0 +#endif + +#define ERASE_DELAY 50 // ms + +extern uint32_t _flash_update; +extern uint32_t _eflash_update; +static volatile uint32_t verifyLen; +static volatile uint8_t *lastWriteAddr; +static volatile uint32_t lastWriteLen; + +static uint32_t eraseAddress, erasePages; +wsfHandlerId_t eraseHandlerId; +wsfTimer_t eraseTimer; + +/* Prototypes for file functions */ +static uint8_t wdxsFileInitMedia(void); +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size); +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size); +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param); + +static fileHeader_t fileHeader = { .fileCRC = 0, .fileLen = 0 }; +wsfEfsHandle_t otaFileHdl; +#define HEADER_LEN (sizeof(fileHeader_t)) + +/* Use the second half of the flash space for scratch space */ +static const wsfEfsMedia_t WDXS_FileMedia = { + /* uint32_t startAddress; Start address. */ ((uint32_t)&_flash_update), + /* uint32_t endAddress; End address. */ ((uint32_t)&_eflash_update), + /* uint32_t pageSize; Page size. */ MXC_FLASH1_PAGE_SIZE, + /* wsfMediaInitFunc_t *init; Media intialization callback. */ wdxsFileInitMedia, + /* wsfMediaEraseFunc_t *erase; Media erase callback. */ wdxsFileErase, + /* wsfMediaReadFunc_t *read; Media read callback. */ wdxsFileRead, + /* wsfMediaWriteFunc_t *write; Media write callback. */ wdxsFileWrite, + /* wsfMediaHandleCmdFunc_t *handleCmd; Media command handler callback. */ wsfFileHandle +}; + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for file erase. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void wdxsFileEraseHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + int err; + if (erasePages) { + APP_TRACE_INFO1(">>> Erasing address 0x%x in internal flash <<<", eraseAddress); + + /* TODO: Once this is non-blocking, check for ongoing erase, start the next erase */ + err = MXC_FLC_PageErase((uint32_t)eraseAddress); + if (err != E_NO_ERROR) { + APP_TRACE_INFO0("There was an erase error"); + return; + } + erasePages--; + eraseAddress += MXC_FLASH1_PAGE_SIZE; + /* Continue next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + } else { + /* Erase is complete */ + APP_TRACE_INFO0(">>> Internal flash erase complete <<<"); + wdxsFtcSendRsp(AppConnIsOpen(), WDX_FTC_OP_PUT_RSP, otaFileHdl, WDX_FTC_ST_SUCCESS); + } +} +/*************************************************************************************************/ +/*! + * \brief Media Init function, called when media is registered. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileInitMedia(void) +{ + MXC_FLC_Init(); + APP_TRACE_INFO2("FW_VERSION: %d.%d", FW_VERSION_MAJOR, FW_VERSION_MINOR); + + /* Setup the erase handler */ + eraseHandlerId = WsfOsSetNextHandler(wdxsFileEraseHandler); + eraseTimer.handlerId = eraseHandlerId; + + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File erase function. Must be page aligned. + * + * \param pAddress Address in media to start erasing. + * \param size Number of bytes to erase. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileErase(uint8_t *address, uint32_t size) +{ + int err; + volatile uint32_t address32 = (uint32_t)address; + + if (fileHeader.fileLen != 0) { + /* Setup the erase handler variables */ + eraseAddress = address32; + /* calculate pages needed to erase */ + erasePages = (fileHeader.fileLen / MXC_FLASH1_PAGE_SIZE) + 1; + /* Initiate the erase */ + err = MXC_FLC_PageErase((uint32_t)address32); + if (err != E_NO_ERROR) { + APP_TRACE_INFO1("Flash page erase error at 0x%0x", address32); + return WSF_EFS_FAILURE; + } else { + APP_TRACE_INFO1(">>> Initiating erase of %d pages of internal flash <<<", erasePages); + } + erasePages--; + eraseAddress += MXC_FLASH1_PAGE_SIZE; + /* Wait ERASE_DELAY ms before staring next erase */ + WsfTimerStartMs(&eraseTimer, ERASE_DELAY); + + return WSF_EFS_SUCCESS; + } else { + APP_TRACE_INFO0(">>> File size is unknown <<<"); + return WSF_EFS_FAILURE; + } + + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Media Read function. + * + * \param pBuf Buffer to hold data. + * \param pAddress Address in media to read from. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileRead(uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + memcpy(pBuf, pAddress, size); + return WSF_EFS_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief File Write function. + * + * \param pBuf Buffer with data to be written. + * \param address Address in media to write to. + * \param size Size of pBuf in bytes. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wdxsFileWrite(const uint8_t *pBuf, uint8_t *pAddress, uint32_t size) +{ + int err = 0; + err += MXC_FLC_Write((uint32_t)pAddress, size, (uint32_t *)pBuf); + /* verify data was written*/ + err += memcmp(pAddress, pBuf, size); + + if (err == E_NO_ERROR) { + lastWriteAddr = pAddress; + lastWriteLen = size; + APP_TRACE_INFO2("Int. Flash: Wrote %d bytes @ 0x%x", size, pAddress); + return WSF_EFS_SUCCESS; + } + APP_TRACE_ERR1("Error writing to flash 0x%08X", (uint32_t)pAddress); + return WSF_EFS_FAILURE; +} +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) table[i] = crc32_for_byte(i); + } + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +/*************************************************************************************************/ +/*! + * \brief Media Specific Command handler. + * + * \param cmd Identifier of the media specific command. + * \param param Optional Parameter to the command. + * + * \return Status of the operation. + */ +/*************************************************************************************************/ +static uint8_t wsfFileHandle(uint8_t cmd, uint32_t param) +{ + switch (cmd) { + case WSF_EFS_WDXS_PUT_COMPLETE_CMD: { + /* Currently unimplemented */ + return WDX_FTC_ST_SUCCESS; + } break; + case WSF_EFS_VALIDATE_CMD: + default: { + /* Validate the image with CRC32 */ + uint32_t crcResult = 0; + int err = 0; + + verifyLen = ((uint32_t)lastWriteAddr + lastWriteLen) - WDXS_FileMedia.startAddress; + + APP_TRACE_INFO2("CRC start addr: 0x%08X Len: 0x%08X", WDXS_FileMedia.startAddress, + verifyLen); + + crc32((const void *)WDXS_FileMedia.startAddress, verifyLen, &crcResult); + + APP_TRACE_INFO1("CRC From File : 0x%08x", fileHeader.fileCRC); + APP_TRACE_INFO1("CRC Calculated: 0x%08X", crcResult); + + /* Check the calculated CRC32 against what was received, 32 bits is 4 bytes */ + if (fileHeader.fileCRC != crcResult) { + APP_TRACE_INFO0("Update file verification failure"); + return WDX_FTC_ST_VERIFICATION; + } + + /* if crc are ok write it to end of file*/ + err += MXC_FLC_Write((WDXS_FileMedia.startAddress + verifyLen), sizeof(crcResult), + (uint32_t *)&crcResult); + uint32_t *temp = (uint32_t *)(WDXS_FileMedia.startAddress + verifyLen); + /* verify data was written*/ + err += memcmp(temp, &crcResult, sizeof(crcResult)); + if (err) { + APP_TRACE_INFO0("Error appending CRC to flash"); + return WDX_FTC_ST_VERIFICATION; + } + + crcResult = 0; + return WDX_FTC_ST_SUCCESS; + } break; + } + return WDX_FTC_ST_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Example of creating a WDXS stream. + * + * \param none + * + * \return None. + */ +/*************************************************************************************************/ +void WdxsFileInit(void) +{ + wsfEsfAttributes_t attr; + char versionString[WSF_EFS_VERSION_LEN]; + + /* Add major number */ + versionString[0] = FW_VERSION_MAJOR; + /* Add "." */ + versionString[1] = '.'; + /* Minor number */ + versionString[2] = FW_VERSION_MINOR; + /* Add termination character */ + versionString[3] = 0; + + /* Register the media for the stream */ + WsfEfsRegisterMedia(&WDXS_FileMedia, WDX_FLASH_MEDIA); + + /* Set the attributes for the stream */ + attr.permissions = (WSF_EFS_REMOTE_GET_PERMITTED | WSF_EFS_REMOTE_PUT_PERMITTED | + WSF_EFS_REMOTE_ERASE_PERMITTED | WSF_EFS_REMOTE_VERIFY_PERMITTED | + WSF_EFS_LOCAL_GET_PERMITTED | WSF_EFS_LOCAL_PUT_PERMITTED | + WSF_EFS_LOCAL_ERASE_PERMITTED | WSF_EFS_REMOTE_VISIBLE); + + attr.type = WSF_EFS_FILE_TYPE_BULK; + + /* Potential buffer overrun is intentional to zero out fixed length field */ + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.name, "File", WSF_EFS_NAME_LEN); + /* coverity[overrun-buffer-arg] */ + WstrnCpy(attr.version, versionString, WSF_EFS_VERSION_LEN); + + /* Add a file for the stream */ + otaFileHdl = WsfEfsAddFile(WDXS_FileMedia.endAddress - WDXS_FileMedia.startAddress, + WDX_FLASH_MEDIA, &attr, 0); + APP_TRACE_INFO1("File Hdl: %d", otaFileHdl); +} + +/*************************************************************************************************/ +/*! + * \brief Get the base address of the WDXS file. + * + * \return Base address of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetBaseAddr(void) +{ + return WDXS_FileMedia.startAddress; +} + +/*************************************************************************************************/ +/*! + * \brief Get the length of the last verified WDXS file. + * + * \return Verified length of WDXS file. + */ +/*************************************************************************************************/ +uint32_t WdxsFileGetVerifiedLength(void) +{ + return verifyLen; +} + +/*************************************************************************************************/ +/*! + * \brief Get the firmware version of the WDXS file. + * + * \return Firmware version of WDXS file. + */ +/*************************************************************************************************/ +uint16_t WdxsFileGetFirmwareVersion(void) +{ + wsfEsfAttributes_t attr; + uint8_t minor, major; + + WsfEfsGetAttributes(otaFileHdl, &attr); + major = attr.version[0]; + minor = attr.version[2]; + // store major in upper byte and minor in lower byte + return (uint16_t)major << 8 | minor; +} + +void initHeader(fileHeader_t *header) +{ + fileHeader.fileLen = header->fileLen; + fileHeader.fileCRC = header->fileCRC; +} diff --git a/Examples/MAX32690/BLE_periph/.cproject b/Examples/MAX32690/Bluetooth/BLE_periph/.cproject similarity index 100% rename from Examples/MAX32690/BLE_periph/.cproject rename to Examples/MAX32690/Bluetooth/BLE_periph/.cproject diff --git a/Examples/MAX32690/BLE_periph/.project b/Examples/MAX32690/Bluetooth/BLE_periph/.project similarity index 100% rename from Examples/MAX32690/BLE_periph/.project rename to Examples/MAX32690/Bluetooth/BLE_periph/.project diff --git a/Examples/MAX32690/BLE_dats/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/BLE_periph/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_dats/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/BLE_periph/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE5_ctr/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/BLE_periph/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_periph/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/BLE_periph/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/BLE_periph/.vscode/README.md b/Examples/MAX32690/Bluetooth/BLE_periph/.vscode/README.md similarity index 100% rename from Examples/MAX32690/BLE_periph/.vscode/README.md rename to Examples/MAX32690/Bluetooth/BLE_periph/.vscode/README.md diff --git a/Examples/MAX32690/BLE_FreeRTOS/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/BLE_periph/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/BLE_periph/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/lwIP_Ping/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/BLE_periph/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/lwIP_Ping/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/BLE_periph/.vscode/flash.gdb diff --git a/Examples/MAX32690/BLE_periph/.vscode/launch.json b/Examples/MAX32690/Bluetooth/BLE_periph/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/BLE_periph/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/BLE_periph/.vscode/launch.json diff --git a/Examples/MAX32690/BLE_periph/.vscode/settings.json b/Examples/MAX32690/Bluetooth/BLE_periph/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/BLE_periph/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/BLE_periph/.vscode/settings.json diff --git a/Examples/MAX32690/BLE_periph/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/BLE_periph/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/BLE_periph/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/BLE_periph/.vscode/tasks.json diff --git a/Examples/MAX32690/BLE_periph/ARM/Abstract.txt b/Examples/MAX32690/Bluetooth/BLE_periph/ARM/Abstract.txt similarity index 100% rename from Examples/MAX32690/BLE_periph/ARM/Abstract.txt rename to Examples/MAX32690/Bluetooth/BLE_periph/ARM/Abstract.txt diff --git a/Examples/MAX32690/BLE_periph/ARM/BLE.sct b/Examples/MAX32690/Bluetooth/BLE_periph/ARM/BLE.sct similarity index 100% rename from Examples/MAX32690/BLE_periph/ARM/BLE.sct rename to Examples/MAX32690/Bluetooth/BLE_periph/ARM/BLE.sct diff --git a/Examples/MAX32690/BLE_periph/BLE_periph.launch b/Examples/MAX32690/Bluetooth/BLE_periph/BLE_periph.launch similarity index 100% rename from Examples/MAX32690/BLE_periph/BLE_periph.launch rename to Examples/MAX32690/Bluetooth/BLE_periph/BLE_periph.launch diff --git a/Examples/MAX32690/BLE_periph/IAR/BLE_periph.ewd b/Examples/MAX32690/Bluetooth/BLE_periph/IAR/BLE_periph.ewd similarity index 100% rename from Examples/MAX32690/BLE_periph/IAR/BLE_periph.ewd rename to Examples/MAX32690/Bluetooth/BLE_periph/IAR/BLE_periph.ewd diff --git a/Examples/MAX32690/BLE_periph/IAR/BLE_periph.ewp b/Examples/MAX32690/Bluetooth/BLE_periph/IAR/BLE_periph.ewp similarity index 100% rename from Examples/MAX32690/BLE_periph/IAR/BLE_periph.ewp rename to Examples/MAX32690/Bluetooth/BLE_periph/IAR/BLE_periph.ewp diff --git a/Examples/MAX32690/Bluetooth/BLE_periph/Makefile b/Examples/MAX32690/Bluetooth/BLE_periph/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_periph/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/Bluetooth/BLE_periph/README.md b/Examples/MAX32690/Bluetooth/BLE_periph/README.md new file mode 100644 index 00000000000..de174eff335 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_periph/README.md @@ -0,0 +1,32 @@ +# BLE_periph +Refer to the [BLE_periph](../../../Libraries/Cordio/docs/Applications/BLE_periph.md) documentation in the Cordio Library. + +## Software + +### Project Usage + +Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. + +### Required Connections + +If using the MAX32690EVKIT: +- Connect a USB cable between the PC and the CN2 (USB/PWR) connector. +- Install headers JP7(RX\_EN) and JP8(TX\_EN). +- Open a terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. +- An antenna or wired connection can be used if SMA is available on the board. + +If using the MAX32690FTHR: +- Connect a USB cable between the PC and the J5 (USB/PWR) connector. +- Open a terminal application on the PC and connect to the EV kit's console UART at 115200, 8-N-1. + + +### Project-Specific Build Notes + Setting `TRACE=1` in [**project.mk**](project.mk) initializes the on-board USB-to-UART adapter for +viewing the trace messages and interacting with the application. Port uses settings: + - Baud : 115200 + - Char size : 8 + - Parity : None + - Stop bits : 1 + - HW Flow Control : No + - SW Flow Control : No +* Setting `SBT=1` in [**project.mk**](project.mk) enables Secure Boot Tools for the project diff --git a/Examples/MAX32690/Bluetooth/BLE_periph/main.c b/Examples/MAX32690/Bluetooth/BLE_periph/main.c new file mode 100644 index 00000000000..d4b86f7c404 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_periph/main.c @@ -0,0 +1,218 @@ +/*************************************************************************************************/ +/*! + * @file main.c + * @brief Simple BLE app that advertises as "Periph". Recommended app for getting started with MSDK BLE. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include + +#include "wsf_types.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "wsf_msg.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_cs.h" +#include "wsf_timer.h" +#include "wsf_os.h" + +#include "sec_api.h" +#include "hci_handler.h" +#include "dm_handler.h" +#include "l2c_handler.h" +#include "att_handler.h" +#include "smp_handler.h" +#include "l2c_api.h" +#include "att_api.h" +#include "smp_api.h" +#include "app_api.h" +#include "hci_core.h" +#include "app_terminal.h" + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +#include "ll_init_api.h" +#endif + +#include "pal_bb.h" +#include "pal_cfg.h" + +#include "periph_api.h" +#include "app_ui.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! \brief UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U + +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/*! \brief Pool runtime configuration. */ +static wsfBufPoolDesc_t mainPoolDesc[] = { { 16, 8 }, { 32, 4 }, { 192, 8 }, { 256, 8 } }; + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) +static LlRtCfg_t mainLlRtCfg; +#endif + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/*! \brief Stack initialization for app. */ +extern void StackInitPeriph(void); + +/*************************************************************************************************/ +/*! + * \brief RX data received callback. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + */ +/*************************************************************************************************/ +static void appRxCallback(uint8_t *data, uint16_t len) +{ + unsigned i; + + /* Print the received data */ + printf("App received: "); + + for (i = 0; i < len; i++) { + printf("0x%02X ", data[i]); + } + printf("\n"); + + /* Echo the data back to the central */ + if (!PeriphTXData(data, len)) { + printf("Error sending data to peer\n"); + } +} + +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + * + * \return None. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* Configurations must be persistent. */ + static BbRtCfg_t mainBbRtCfg; + + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); +#endif + + uint32_t memUsed; + WsfCsEnter(); + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); + WsfCsExit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +4 for header. */ + const uint16_t aclBufSize = 12 + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + + /* Adjust buffer allocation based on platform configuration. */ + mainPoolDesc[2].len = maxRptBufSize; + mainPoolDesc[2].num = mainLlRtCfg.maxAdvReports; + mainPoolDesc[3].len = aclBufSize; + mainPoolDesc[3].num = mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs; +#endif + + const uint8_t numPools = sizeof(mainPoolDesc) / sizeof(mainPoolDesc[0]); + + WsfCsEnter(); + memUsed = WsfBufInit(numPools, mainPoolDesc); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TOKEN_ENABLED == TRUE) || (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif + + AppTerminalInit(); + +#if defined(HCI_TR_EXACTLE) && (HCI_TR_EXACTLE == 1) + WsfCsEnter(); + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInit(&llCfg); + WsfHeapAlloc(memUsed); + WsfCsExit(); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + LlSetBdAddr((uint8_t *)&bdAddr); +#endif + + StackInitPeriph(); + PeriphStart(); + + PeriphRegisterRXCallback(appRxCallback); +} + +/*************************************************************************************************/ +/*! +* \fn main +* +* \brief Entry point for demo software. +* +* \param None. +* +* \return None. +*/ +/*************************************************************************************************/ +int main(void) +{ + mainWsfInit(); + + while (1) { + /* Run the WSF OS */ + wsfOsDispatcher(); + + if (!WsfOsActive()) { + /* No WSF tasks are active, optionally sleep */ + } + } + + return 0; +} diff --git a/Examples/MAX32690/Bluetooth/BLE_periph/periph_api.h b/Examples/MAX32690/Bluetooth/BLE_periph/periph_api.h new file mode 100644 index 00000000000..803d515e519 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_periph/periph_api.h @@ -0,0 +1,109 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Proprietary data transfer server sample application. + * + * Copyright (c) 2012-2018 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ + +#include "wsf_os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************************************************/ +/*! + * \brief Peripheral RX callback function. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + */ +/*************************************************************************************************/ +typedef void (*periphRxCb_t)(uint8_t *data, uint16_t len); + +/************************************************************************************************** + Function Declarations +**************************************************************************************************/ + +/*************************************************************************************************/ +/*! + * \brief Register the callback for received data. + * + * \param cb Callback function for when data is received. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphRegisterRXCallback(periphRxCb_t cb); + +/*************************************************************************************************/ +/*! + * \brief Send data to the peer. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + * + * \return TRUE if data send, FALSE if error. + */ +/*************************************************************************************************/ +bool_t PeriphTXData(uint8_t *data, uint16_t len); + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphStart(void); + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID for App. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandlerInit(wsfHandlerId_t handlerId); + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for the application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); + +#ifdef __cplusplus +}; +#endif + +#endif // EXAMPLES_MAX32690_BLUETOOTH_BLE_PERIPH_PERIPH_API_H_ diff --git a/Examples/MAX32690/Bluetooth/BLE_periph/periph_main.c b/Examples/MAX32690/Bluetooth/BLE_periph/periph_main.c new file mode 100644 index 00000000000..419e9087b8b --- /dev/null +++ b/Examples/MAX32690/Bluetooth/BLE_periph/periph_main.c @@ -0,0 +1,402 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Data transmitter sample application. + * + * Copyright (c) 2012-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include +#include "wsf_types.h" +#include "util/bstream.h" +#include "wsf_msg.h" +#include "wsf_trace.h" +#include "wsf_buf.h" +#include "wsf_nvm.h" +#include "hci_api.h" +#include "sec_api.h" +#include "dm_api.h" +#include "smp_api.h" +#include "att_api.h" +#include "app_api.h" +#include "app_main.h" +#include "app_db.h" +#include "app_ui.h" +#include "svc_ch.h" +#include "svc_core.h" +#include "svc_wp.h" +#include "util/calc128.h" +#include "gatt/gatt_api.h" +#include "periph_api.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/*! Enumeration of client characteristic configuration descriptors */ +enum { + PERIPH_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + PERIPH_WP_DAT_CCC_IDX, /*! Arm Ltd. proprietary service, data transfer characteristic */ + PERIPH_NUM_CCC_IDX +}; + +/************************************************************************************************** + Configurable Parameters +**************************************************************************************************/ + +/*! configurable parameters for advertising */ +static const appAdvCfg_t periphAdvCfg = { + { 30000, 0, 0 }, /*! Advertising durations in ms, 0 corresponds to infinite */ + { 96, 1600, 0 } /*! Advertising intervals in 0.625 ms units */ +}; + +/*! configurable parameters for slave */ +static const appSlaveCfg_t periphSlaveCfg = { + 1, /*! Maximum connections */ +}; + +/*! ATT configurable parameters (increase MTU) */ +static const attCfg_t periphAttCfg = { + 15, /* ATT server service discovery connection idle timeout in seconds */ + 241, /* desired ATT MTU */ + ATT_MAX_TRANS_TIMEOUT, /* transcation timeout in seconds */ + 4 /* number of queued prepare writes supported by server */ +}; + +/************************************************************************************************** + Advertising Data +**************************************************************************************************/ + +/*! advertising data, discoverable mode */ +static const uint8_t periphAdvDataDisc[] = { + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_GENERAL_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + /*! device name */ + 7, /*! length */ + DM_ADV_TYPE_LOCAL_NAME, /*! AD type */ + 'P', 'e', 'r', 'i', 'p', 'h' +}; + +/************************************************************************************************** + Client Characteristic Configuration Descriptors +**************************************************************************************************/ + +/*! client characteristic configuration descriptors settings, indexed by above enumeration */ +static const attsCccSet_t periphCccSet[PERIPH_NUM_CCC_IDX] = { + /* cccd handle value range security level */ + { GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE }, /* PERIPH_GATT_SC_CCC_IDX */ + { WP_DAT_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE } /* DATS_WP_DAT_CCC_IDX */ +}; + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/*! application control block */ +static struct { + wsfHandlerId_t handlerId; /* WSF handler ID */ + periphRxCb_t rxCb; /* RX Callback function */ + dmConnId_t connId; /* Connection ID */ + bool_t connected; /* Connection state */ +} periphCb; + +/*************************************************************************************************/ +/*! + * \brief Application DM callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphDmCback(dmEvt_t *pDmEvt) +{ + dmEvt_t *pMsg; + uint16_t len; + + len = DmSizeOfEvt(pDmEvt); + + if ((pMsg = WsfMsgAlloc(len)) != NULL) { + memcpy(pMsg, pDmEvt, len); + WsfMsgSend(periphCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATT callback. + * + * \param pEvt ATT callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphAttCback(attEvt_t *pEvt) +{ + attEvt_t *pMsg; + + if ((pMsg = WsfMsgAlloc(sizeof(attEvt_t) + pEvt->valueLen)) != NULL) { + memcpy(pMsg, pEvt, sizeof(attEvt_t)); + pMsg->pValue = (uint8_t *)(pMsg + 1); + memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); + WsfMsgSend(periphCb.handlerId, pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Application ATTS client characteristic configuration callback. + * + * \param pDmEvt DM callback event + * + * \return None. + */ +/*************************************************************************************************/ +static void periphCccCback(attsCccEvt_t *pEvt) {} + +/*************************************************************************************************/ +/*! + * \brief ATTS write callback for proprietary data service. + * + * \return ATT status. + */ +/*************************************************************************************************/ +uint8_t periphWpWriteCback(dmConnId_t connId, uint16_t handle, uint8_t operation, uint16_t offset, + uint16_t len, uint8_t *pValue, attsAttr_t *pAttr) +{ + /* Call callback with data */ + if (periphCb.rxCb != NULL) { + periphCb.rxCb(pValue, len); + } + + return ATT_SUCCESS; +} + +/*************************************************************************************************/ +/*! + * \brief Set up advertising and other procedures that need to be performed after + * device reset. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void periphSetup(dmEvt_t *pMsg) +{ + /* set advertising data for discoverable mode */ + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(periphAdvDataDisc), + (uint8_t *)periphAdvDataDisc); + + /* set advertising data or connectable mode */ + AppAdvSetData(APP_ADV_DATA_CONNECTABLE, sizeof(periphAdvDataDisc), + (uint8_t *)periphAdvDataDisc); + + /* start advertising; automatically set connectable/discoverable mode and bondable mode */ + AppAdvStart(APP_MODE_AUTO_INIT); +} + +/*************************************************************************************************/ +/*! + * \brief Process messages from the event handler. + * + * \param pMsg Pointer to message. + * + * \return None. + */ +/*************************************************************************************************/ +static void periphProcMsg(dmEvt_t *pMsg) +{ + uint8_t uiEvent = APP_UI_NONE; + + switch (pMsg->hdr.event) { + case DM_RESET_CMPL_IND: + periphSetup(pMsg); + uiEvent = APP_UI_RESET_CMPL; + break; + + case DM_ADV_START_IND: + uiEvent = APP_UI_ADV_START; + break; + + case DM_ADV_STOP_IND: + uiEvent = APP_UI_ADV_STOP; + break; + + case DM_CONN_OPEN_IND: + /* Save connId */ + periphCb.connId = (dmConnId_t)pMsg->hdr.param; + periphCb.connected = TRUE; + uiEvent = APP_UI_CONN_OPEN; + break; + + case DM_CONN_CLOSE_IND: + periphCb.connected = FALSE; + uiEvent = APP_UI_CONN_CLOSE; + break; + + default: + break; + } + + if (uiEvent != APP_UI_NONE) { + AppUiAction(uiEvent); + } +} + +/*************************************************************************************************/ +/*! + * \brief Send data to the peer. + * + * \param data Pointer to received data. + * \param len Number of bytes received. + * + * \return TRUE if data send, FALSE if error. + */ +/*************************************************************************************************/ +bool_t PeriphTXData(uint8_t *data, uint16_t len) +{ + /* Make sure we're connected */ + if (!periphCb.connected) { + return FALSE; + } + + /* Check if a client characteristic configuration descriptor is enabled and if + the characteristic's security level has been met. */ + if (AttsCccEnabled(periphCb.connId, PERIPH_WP_DAT_CCC_IDX)) { + /* send notification */ + AttsHandleValueNtf(periphCb.connId, WP_DAT_HDL, len, data); + + return TRUE; + } + + return FALSE; +} + +/*************************************************************************************************/ +/*! + * \brief Register the callback for received data. + * + * \param cb Callback function for when data is received. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphRegisterRXCallback(periphRxCb_t cb) +{ + periphCb.rxCb = cb; +} + +/*************************************************************************************************/ +/*! + * \brief Application handler init function called during system initialization. + * + * \param handlerID WSF handler ID. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandlerInit(wsfHandlerId_t handlerId) +{ + uint8_t addr[6] = { 0 }; + APP_TRACE_INFO0("PeriphHandlerInit"); + AppGetBdAddr(addr); + APP_TRACE_INFO6("MAC Addr: %02x:%02x:%02x:%02x:%02x:%02x", addr[5], addr[4], addr[3], addr[2], + addr[1], addr[0]); + APP_TRACE_INFO1("Adv local name: %s", &periphAdvDataDisc[5]); + + /* store handler ID */ + periphCb.handlerId = handlerId; + + /* Initialize the RX Callback to NULL */ + periphCb.rxCb = NULL; + + /* Set configuration pointers */ + pAppSlaveCfg = (appSlaveCfg_t *)&periphSlaveCfg; + pAppAdvCfg = (appAdvCfg_t *)&periphAdvCfg; + pAttCfg = (attCfg_t *)&periphAttCfg; + + /* Initialize application framework */ + AppSlaveInit(); + AppServerInit(); +} + +/*************************************************************************************************/ +/*! + * \brief WSF event handler for application. + * + * \param event WSF event mask. + * \param pMsg WSF message. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +{ + if (pMsg != NULL) { + APP_TRACE_INFO1("Periph got evt %d", pMsg->event); + + /* process ATT messages */ + if (pMsg->event >= ATT_CBACK_START && pMsg->event <= ATT_CBACK_END) { + /* process server-related ATT messages */ + AppServerProcAttMsg(pMsg); + } else if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { + /* process DM messages */ + /* process advertising and connection-related messages */ + AppSlaveProcDmMsg((dmEvt_t *)pMsg); + } + + /* perform profile and user interface-related operations */ + periphProcMsg((dmEvt_t *)pMsg); + } +} + +/*************************************************************************************************/ +/*! + * \brief Start the application. + * + * \return None. + */ +/*************************************************************************************************/ +void PeriphStart(void) +{ + /* Register for stack callbacks */ + DmRegister(periphDmCback); + DmConnRegister(DM_CLIENT_ID_APP, periphDmCback); + AttRegister(periphAttCback); + AttConnRegister(AppServerConnCback); + AttsCccRegister(PERIPH_NUM_CCC_IDX, (attsCccSet_t *)periphCccSet, periphCccCback); + + /* Initialize attribute server database */ + SvcCoreGattCbackRegister(GattReadCback, GattWriteCback); + SvcCoreAddGroup(); + SvcWpCbackRegister(NULL, periphWpWriteCback); + SvcWpAddGroup(); + + /* Set Service Changed CCCD index. */ + GattSetSvcChangedIdx(PERIPH_GATT_SC_CCC_IDX); + + /* Reset the device */ + DmDevReset(); +} diff --git a/Examples/MAX32690/BLE_periph/project.mk b/Examples/MAX32690/Bluetooth/BLE_periph/project.mk similarity index 100% rename from Examples/MAX32690/BLE_periph/project.mk rename to Examples/MAX32690/Bluetooth/BLE_periph/project.mk diff --git a/Examples/MAX32690/BLE_periph/stack_periph.c b/Examples/MAX32690/Bluetooth/BLE_periph/stack_periph.c similarity index 100% rename from Examples/MAX32690/BLE_periph/stack_periph.c rename to Examples/MAX32690/Bluetooth/BLE_periph/stack_periph.c diff --git a/Examples/MAX32690/Bootloader/.cproject b/Examples/MAX32690/Bluetooth/Bootloader/.cproject similarity index 100% rename from Examples/MAX32690/Bootloader/.cproject rename to Examples/MAX32690/Bluetooth/Bootloader/.cproject diff --git a/Examples/MAX32690/Bootloader/.project b/Examples/MAX32690/Bluetooth/Bootloader/.project similarity index 100% rename from Examples/MAX32690/Bootloader/.project rename to Examples/MAX32690/Bluetooth/Bootloader/.project diff --git a/Examples/MAX32690/BLE_fcc/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/Bootloader/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_fcc/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/Bootloader/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_FreeRTOS/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/Bootloader/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/Bootloader/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/Bootloader/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/Bootloader/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/Bootloader/.vscode/README.md b/Examples/MAX32690/Bluetooth/Bootloader/.vscode/README.md similarity index 100% rename from Examples/MAX32690/Bootloader/.vscode/README.md rename to Examples/MAX32690/Bluetooth/Bootloader/.vscode/README.md diff --git a/Examples/MAX32690/BLE_datc/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/Bootloader/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_datc/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/Bootloader/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32572/lwIP_TCP/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/Bootloader/.vscode/flash.gdb old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32572/lwIP_TCP/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/Bootloader/.vscode/flash.gdb diff --git a/Examples/MAX32690/Bootloader/.vscode/launch.json b/Examples/MAX32690/Bluetooth/Bootloader/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/Bootloader/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/Bootloader/.vscode/launch.json diff --git a/Examples/MAX32690/Bootloader/.vscode/settings.json b/Examples/MAX32690/Bluetooth/Bootloader/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/Bootloader/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/Bootloader/.vscode/settings.json diff --git a/Examples/MAX32690/Bootloader/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/Bootloader/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/Bootloader/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/Bootloader/.vscode/tasks.json diff --git a/Examples/MAX32690/Bootloader/Bootloader.launch b/Examples/MAX32690/Bluetooth/Bootloader/Bootloader.launch similarity index 100% rename from Examples/MAX32690/Bootloader/Bootloader.launch rename to Examples/MAX32690/Bluetooth/Bootloader/Bootloader.launch diff --git a/Examples/MAX32690/Bluetooth/Bootloader/Makefile b/Examples/MAX32690/Bluetooth/Bootloader/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/Bootloader/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/Bootloader/README.md b/Examples/MAX32690/Bluetooth/Bootloader/README.md similarity index 100% rename from Examples/MAX32690/Bootloader/README.md rename to Examples/MAX32690/Bluetooth/Bootloader/README.md diff --git a/Examples/MAX32690/Bluetooth/Bootloader/boot_lower.S b/Examples/MAX32690/Bluetooth/Bootloader/boot_lower.S new file mode 100644 index 00000000000..6e484d97705 --- /dev/null +++ b/Examples/MAX32690/Bluetooth/Bootloader/boot_lower.S @@ -0,0 +1,78 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + + .syntax unified + .arch armv7-m + .text + .thumb + .thumb_func + .align 2 + + + .globl Boot_Lower + .type Boot_Lower %function +/* Boot from the lower flash array */ +Boot_Lower: + + ldr r0,=0x10004000 /* Address for main flash image */ + ldr r1,=0xE000ED08 /* Address for SCB_VTOR_REG */ + + /* First 32-bit word in image is initial stack pointer */ + /* Second 32-bit word in image is Address of the Reset Handler */ + + /* Set VTOR with vector table base address */ + str r0,[r1] + /* Load initial SP */ + ldr sp,[r0] + /* Load LR with address of the Reset Handler */ + ldr lr,[r0,#4] + /* Jump to Reset Handler. */ + bx lr diff --git a/Examples/MAX32690/Bluetooth/Bootloader/bootloader.ld b/Examples/MAX32690/Bluetooth/Bootloader/bootloader.ld new file mode 100644 index 00000000000..e6484af47db --- /dev/null +++ b/Examples/MAX32690/Bluetooth/Bootloader/bootloader.ld @@ -0,0 +1,168 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +BOOTLOADER_ORIGIN = 0x10000000; +BOOTLOADER_LEN = 0x4000; +FLASH_SECTION_LEN = 0x40000 - BOOTLOADER_LEN; +FLASH0_ORIGIN = BOOTLOADER_ORIGIN + BOOTLOADER_LEN; + +MEMORY { + FLASH (rx) : ORIGIN = BOOTLOADER_ORIGIN, LENGTH = BOOTLOADER_LEN + FLASH0 (rx) : ORIGIN = FLASH0_ORIGIN, LENGTH = FLASH_SECTION_LEN + FLASH1 (rx) : ORIGIN = 0x10300000, LENGTH = FLASH_SECTION_LEN + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 +} + +SECTIONS { + + .text : + { + _text = .; + KEEP(*(.isr_vector)) + EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ + *(.rodata*) /* read-only data: "const" */ + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* C++ Exception handling */ + KEEP(*(.eh_frame*)) + _etext = .; + } > FLASH + + .flash0 (NOLOAD) : + { + _flash0 = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash0 = ALIGN(., 4); + } > FLASH0 + + .flash1 (NOLOAD) : + { + _flash1 = ALIGN(., 4); + . = . + FLASH_SECTION_LEN; + _eflash1 = ALIGN(., 4); + } > FLASH1 + + /* it's used for C++ exception handling */ + /* we need to keep this to avoid overlapping */ + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > FLASH + + .data : + { + _data = ALIGN(., 4); + *(.data*) /*read-write initialized data: initialized global variable*/ + *(.flashprog*) /* Flash program */ + + /* These array sections are used by __libc_init_array to call static C++ constructors */ + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + _edata = ALIGN(., 4); + } > SRAM AT>FLASH + __load_data = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _bss = .; + *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ + *(COMMON) + _ebss = ALIGN(., 4); + } > SRAM + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + *(.stack*) + } > SRAM + + .heap (COPY): + { + . = ALIGN(4); + *(.heap*) + __HeapLimit = ABSOLUTE(__StackLimit); + } > SRAM + + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") +} diff --git a/Examples/MAX32690/Bluetooth/Bootloader/main.c b/Examples/MAX32690/Bluetooth/Bootloader/main.c new file mode 100644 index 00000000000..3d10bd7e05d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/Bootloader/main.c @@ -0,0 +1,313 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Bootloader + * @details Simple bootloader to verify and replace images. + */ + +/***** Includes *****/ +#include +#include +#include +#include "mxc_device.h" +#include "led.h" +#include "pb.h" +#include "board.h" +#include "mxc_delay.h" +#include "flc.h" + +/************************************************************************************************** + Macros +**************************************************************************************************/ + +/* Addresses for the flash sections, defined in the linker file */ +extern uint32_t _flash0; +extern uint32_t _flash1; + +#define FLASH0_START ((uint32_t)&_flash0) +#define FLASH1_START ((uint32_t)&_flash1) +#define FLASH_ERASED_WORD 0xFFFFFFFF +#define CRC32_LEN 4 + +#define DELAY(loopCount) \ + for (i = 0; i < loopCount; i++) {} + +/************************************************************************************************** + Local Variables +**************************************************************************************************/ + +/************************************************************************************************** + Functions +**************************************************************************************************/ + +/* Defined in boot_lower.S */ +extern void Boot_Lower(void); + +// http://home.thep.lu.se/~bjorn/crc/ +/*************************************************************************************************/ +/*! + * \brief Create the CRC32 table. + * + * \param r Index into the table + * + * \return None. + */ +/*************************************************************************************************/ +uint32_t crc32_for_byte(uint32_t r) +{ + for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; + return r ^ (uint32_t)0xFF000000L; +} + +/*************************************************************************************************/ +/*! + * \brief Calculate the CRC32 value for the given buffer. + * + * \param data Pointer to the data. + * \param n_bytes Number of bytes in the buffer. + * \param crc Pointer to store the result. + * + * \return None. + */ +/*************************************************************************************************/ +static uint32_t table[0x100] = { 0 }; +void crc32(const void *data, size_t n_bytes, uint32_t *crc) +{ + if (!*table) { + for (size_t i = 0; i < 0x100; ++i) { + table[i] = crc32_for_byte(i); + } + } + + for (size_t i = 0; i < n_bytes; ++i) { + *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; + } +} + +void bootError(void) +{ + /* Flash the failure LED */ + int j; + volatile int i; + for (j = 0; j < 10; j++) { + LED_Toggle(0); + for (i = 0; i < 0xFFFFF; i++) {} + } + NVIC_SystemReset(); +} + +int flashPageErased(uint32_t *addr) +{ + /* Determine if this page is totally erased */ + int i; + for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { + if (*(addr + i) != FLASH_ERASED_WORD) { + return 0; + } + } + + return 1; +} + +uint32_t findUpperLen(void) +{ + uint32_t *flashPagePointer = (uint32_t *)FLASH1_START; + + /* Find the first erased page in the upper flash*/ + while (1) { + if (*flashPagePointer == FLASH_ERASED_WORD) { + /* Make sure the entire page is erased */ + if (flashPageErased(flashPagePointer)) { + break; + } + } + + flashPagePointer += (MXC_FLASH_PAGE_SIZE / 4); + } + + /* Length is 0 */ + if (flashPagePointer == (uint32_t *)FLASH1_START) { + return 0; + } + + /* search backwards for the first bytes that isn't erased */ + while (*(flashPagePointer--) == FLASH_ERASED_WORD) {} + flashPagePointer += 2; + + /* return the starting address of the CRC, last address of the image */ + return (uint32_t)(flashPagePointer - (4 / 4) - (FLASH1_START / 4)); +} + +static int multiPageErase(uint8_t *address, uint32_t size) +{ + int err; + volatile uint32_t address32 = (uint32_t)address; + address32 &= 0xFFFFF; + + /* Page align the size */ + size += MXC_FLASH_PAGE_SIZE - (size % MXC_FLASH_PAGE_SIZE); + + while (size) { + err = MXC_FLC_PageErase((uint32_t)address); + if (err != E_NO_ERROR) { + return err; + } + + address += MXC_FLASH_PAGE_SIZE; + size -= MXC_FLASH_PAGE_SIZE; + } + + return E_NO_ERROR; +} + +static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) +{ + int err; + + while ((len / 16) > 0) { + err = MXC_FLC_Write128((uint32_t)address, data); + if (err != E_NO_ERROR) { + return err; + } + len -= 16; + address += 4; + data += 4; + } + while (len) { + err = MXC_FLC_Write32((uint32_t)address, *data); + if (err != E_NO_ERROR) { + return err; + } + len -= 4; + address += 1; + data += 1; + } + return E_NO_ERROR; +} + +int main(void) +{ + volatile int i; + int numLedsBlink; + + /* Limit the number of LED blinks */ + if (num_leds > 2) { + numLedsBlink = 2; + } else { + numLedsBlink = num_leds; + } + + /* Prevent bricks */ + if (numLedsBlink == 0) { + DELAY(0x3FFFFF); + } + + LED_Init(); + for (int led = 0; led < numLedsBlink; led++) { + LED_On(led); + DELAY(0x1FFFFF); + LED_Off(led); + DELAY(0x1FFFFF); + } + + /* disable interrupts to prevent these operations from being interrupted */ + __disable_irq(); + + /* Get the length of the image in the upper flash array */ + uint32_t len = findUpperLen(); + + /* Attempt to verify the upper image if we get a valid length */ + if (len) { + /* Validate the image with CRC32 */ + uint32_t crcResult = 0; + + crc32((const void *)FLASH1_START, len, &crcResult); + + /* Check the calculated digest against what was received */ + if (crcResult == (uint32_t) * (uint32_t *)(FLASH1_START + len)) { + /* Erase the destination pages */ + if (multiPageErase((uint8_t *)FLASH0_START, len) != E_NO_ERROR) { + /* Failed to erase pages */ + bootError(); + } + /* Copy the new firmware image */ + if (flashWrite((uint32_t *)FLASH0_START, (uint32_t *)FLASH1_START, len) != E_NO_ERROR) { + /* Failed to write new image */ + bootError(); + } else { + /* Flash the success LED for a successful update */ + int j; + for (j = 0; j < 10; j++) { + LED_Toggle(1); + for (i = 0; i < 0xFFFFF; i++) {} + } + } + /* Erase the update pages */ + if (multiPageErase((uint8_t *)FLASH1_START, len) != E_NO_ERROR) { + /* Failed to erase pages, continue to boot from the lower pages */ + } + } else { + /* Flash the error LED for a CRC failure */ + int j; + for (j = 0; j < 10; j++) { + LED_Toggle(0); + for (i = 0; i < 0xFFFFF; i++) {} + } + } + } + + /* Boot from lower image */ + Boot_Lower(); + + while (1) {} +} diff --git a/Examples/MAX32690/Bootloader/project.mk b/Examples/MAX32690/Bluetooth/Bootloader/project.mk similarity index 100% rename from Examples/MAX32690/Bootloader/project.mk rename to Examples/MAX32690/Bluetooth/Bootloader/project.mk diff --git a/Examples/MAX32690/RF_Test/.cproject b/Examples/MAX32690/Bluetooth/RF_Test/.cproject similarity index 100% rename from Examples/MAX32690/RF_Test/.cproject rename to Examples/MAX32690/Bluetooth/RF_Test/.cproject diff --git a/Examples/MAX32690/RF_Test/.project b/Examples/MAX32690/Bluetooth/RF_Test/.project similarity index 100% rename from Examples/MAX32690/RF_Test/.project rename to Examples/MAX32690/Bluetooth/RF_Test/.project diff --git a/Examples/MAX32690/BLE_fit/.settings/language.settings.xml b/Examples/MAX32690/Bluetooth/RF_Test/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_fit/.settings/language.settings.xml rename to Examples/MAX32690/Bluetooth/RF_Test/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/Bluetooth/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_datc/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/Bluetooth/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/RF_Test/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/Bluetooth/RF_Test/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/RF_Test/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/Bluetooth/RF_Test/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/RF_Test/.vscode/README.md b/Examples/MAX32690/Bluetooth/RF_Test/.vscode/README.md similarity index 100% rename from Examples/MAX32690/RF_Test/.vscode/README.md rename to Examples/MAX32690/Bluetooth/RF_Test/.vscode/README.md diff --git a/Examples/MAX32690/BLE_dats/.vscode/c_cpp_properties.json b/Examples/MAX32690/Bluetooth/RF_Test/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_dats/.vscode/c_cpp_properties.json rename to Examples/MAX32690/Bluetooth/RF_Test/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32650/USB_CDCACM/.vscode/flash.gdb b/Examples/MAX32690/Bluetooth/RF_Test/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_CDCACM/.vscode/flash.gdb rename to Examples/MAX32690/Bluetooth/RF_Test/.vscode/flash.gdb diff --git a/Examples/MAX32690/RF_Test/.vscode/launch.json b/Examples/MAX32690/Bluetooth/RF_Test/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/RF_Test/.vscode/launch.json rename to Examples/MAX32690/Bluetooth/RF_Test/.vscode/launch.json diff --git a/Examples/MAX32690/RF_Test/.vscode/settings.json b/Examples/MAX32690/Bluetooth/RF_Test/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/RF_Test/.vscode/settings.json rename to Examples/MAX32690/Bluetooth/RF_Test/.vscode/settings.json diff --git a/Examples/MAX32690/RF_Test/.vscode/tasks.json b/Examples/MAX32690/Bluetooth/RF_Test/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/RF_Test/.vscode/tasks.json rename to Examples/MAX32690/Bluetooth/RF_Test/.vscode/tasks.json diff --git a/Examples/MAX32690/RF_Test/BLE_fcc.launch b/Examples/MAX32690/Bluetooth/RF_Test/BLE_fcc.launch similarity index 100% rename from Examples/MAX32690/RF_Test/BLE_fcc.launch rename to Examples/MAX32690/Bluetooth/RF_Test/BLE_fcc.launch diff --git a/Examples/MAX32690/RF_Test/CLI-commands.c b/Examples/MAX32690/Bluetooth/RF_Test/CLI-commands.c similarity index 100% rename from Examples/MAX32690/RF_Test/CLI-commands.c rename to Examples/MAX32690/Bluetooth/RF_Test/CLI-commands.c diff --git a/Examples/MAX32690/Bluetooth/RF_Test/FreeRTOSConfig.h b/Examples/MAX32690/Bluetooth/RF_Test/FreeRTOSConfig.h new file mode 100644 index 00000000000..29aae91119b --- /dev/null +++ b/Examples/MAX32690/Bluetooth/RF_Test/FreeRTOSConfig.h @@ -0,0 +1,149 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ + +#include +#include "max32690.h" + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* CMSIS keeps a global updated with current system clock in Hz */ +#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) + +#define SLEEP_LED 1 +#define DEEPSLEEP_LED 0 + +/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ +// #define configUSE_TICKLESS_IDLE 1 + +/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will +increase the amount of time spent in standby mode, thus reducing average power consumption. */ +#ifdef configUSE_TICKLESS_IDLE +#define configTICK_RATE_HZ ((portTickType)10000) +#else +#define configTICK_RATE_HZ ((portTickType)1000) +#endif + +#define configRTC_TICK_RATE_HZ (32768) + +#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) + +#define configMINIMAL_STACK_SIZE ((uint16_t)128) + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configUSE_CO_ROUTINES 0 +#define configUSE_16_BIT_TICKS 0 +#define configUSE_MUTEXES 1 + +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) +#define configTIMER_QUEUE_LENGTH 8 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE + +/* Run time and task stats gathering related definitions. */ +#define configUSE_TRACE_FACILITY 1 +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelay 1 + +/* # of priority bits (configured in hardware) is provided by CMSIS */ +#define configPRIO_BITS __NVIC_PRIO_BITS + +#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) + +/* Only the top three bits are implemented. This is the lowest priority. */ +#define configKERNEL_INTERRUPT_PRIORITY \ + ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) + +/* Priority 5, or 160 as only the top three bits are implemented. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) + +/* Alias the default handler names to match CMSIS weak symbols */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#ifdef configUSE_TICKLESS_IDLE +/* Provide routines for tickless idle pre- and post- processing */ +void vPreSleepProcessing(uint32_t *); +void vPostSleepProcessing(uint32_t); +#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); +#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); +#endif + +/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 + +/* Overides FreeRTOS+CLI help command formatting*/ +#define configUSE_CUSTOM_HELP_COMMAND 1 + +#endif // EXAMPLES_MAX32690_BLUETOOTH_RF_TEST_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32690/Bluetooth/RF_Test/Makefile b/Examples/MAX32690/Bluetooth/RF_Test/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/RF_Test/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/RF_Test/README.md b/Examples/MAX32690/Bluetooth/RF_Test/README.md similarity index 100% rename from Examples/MAX32690/RF_Test/README.md rename to Examples/MAX32690/Bluetooth/RF_Test/README.md diff --git a/Examples/MAX32690/RF_Test/RF_Test.launch b/Examples/MAX32690/Bluetooth/RF_Test/RF_Test.launch similarity index 100% rename from Examples/MAX32690/RF_Test/RF_Test.launch rename to Examples/MAX32690/Bluetooth/RF_Test/RF_Test.launch diff --git a/Examples/MAX32690/Bluetooth/RF_Test/freertos_tickless.c b/Examples/MAX32690/Bluetooth/RF_Test/freertos_tickless.c new file mode 100644 index 00000000000..f62c60b4ddd --- /dev/null +++ b/Examples/MAX32690/Bluetooth/RF_Test/freertos_tickless.c @@ -0,0 +1,289 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Maxim CMSIS */ +#include "mxc_device.h" +#include "board.h" +#include "mxc_assert.h" +#include "lp.h" +#include "pwrseq_regs.h" +#include "wut.h" +#include "mcr_regs.h" +#include "icc.h" +#include "pb.h" +#include "led.h" +#include "uart.h" + +/* FreeRTOS includes */ +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +/* Bluetooth Cordio library */ +#include "pal_timer.h" +#include "pal_uart.h" +#include "pal_bb.h" + +#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ +#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ +#define WAKEUP_US 500 /* Deep sleep recovery time, units of us */ + +/* Minimum ticks before SysTick interrupt, units of system clock ticks. + * Convert CPU_CLOCK_HZ to units of ticks per us + */ +#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) + +/* + * Sleep-check function + * + * Your code should over-ride this weak function and return E_NO_ERROR if + * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other + * return code will prevent FreeRTOS from entering tickless idle. + */ +int freertos_permit_tickless(void) +{ + /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ + if (MXC_WUT_TrimPending() != E_NO_ERROR) { + return E_BUSY; + } + + /* Figure out if the UART is active */ + if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { + return E_BUSY; + } + + /* Prevent characters from being corrupted if still transmitting, + UART will shutdown in deep sleep */ + if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { + return E_BUSY; + } + + return E_NO_ERROR; +} + +/* + * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c + * + * DEEPSLEEP mode will stop SysTick from counting, so that can't be + * used to wake up. Instead, calculate a wake-up period for the WUT to + * interrupt the WFI and continue execution. + * + */ +void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) +{ + uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; + uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; + bool_t schTimerActive; + + /* We do not currently handle to case where the WUT is slower than the RTOS tick */ + MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); + + if (SysTick->VAL < MIN_SYSTICK) { + /* Avoid sleeping too close to a systick interrupt */ + return; + } + + /* Calculate the number of WUT ticks, but we need one to synchronize */ + idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / + (uint64_t)configTICK_RATE_HZ; + + if (idleTicks > MAX_WUT_TICKS) { + idleTicks = MAX_WUT_TICKS; + } + + /* Check to see if we meet the minimum requirements for deep sleep */ + if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { + return; + } + + /* Enter a critical section but don't use the taskENTER_CRITICAL() + method as that will mask interrupts that should exit sleep mode. */ + __asm volatile("cpsid i"); + + /* If a context switch is pending or a task is waiting for the scheduler + to be unsuspended then abandon the low power entry. */ + /* Also check the MXC drivers for any in-progress activity */ + if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || + (freertos_permit_tickless() != E_NO_ERROR)) { + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + + /* Determine if the Bluetooth scheduler is running */ + if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { + schTimerActive = TRUE; + } else { + schTimerActive = FALSE; + } + + if (!schTimerActive) { + uint32_t ts; + if (PalBbGetTimestamp(&ts)) { + /*Determine if PalBb is active, return if we get a valid time stamp indicating + * that the scheduler is waiting for a PalBb event */ + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); + + return; + } + } + + /* Disable SysTick */ + SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); + + /* Enable wakeup from WUT */ + NVIC_EnableIRQ(WUT0_IRQn); + MXC_LP_EnableWUTAlarmWakeup(); + + /* Determine if we need to snapshot the PalBb clock */ + if (schTimerActive) { + /* Snapshot the current WUT value with the PalBb clock */ + MXC_WUT_Store(); + preCapture = MXC_WUT_GetCount(); + schUsec = PalTimerGetExpTime(); + + /* Adjust idleTicks for the time it takes to restart the BLE hardware */ + idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); + + /* Calculate the time to the next BLE scheduler event */ + if (schUsec < WAKEUP_US) { + bleSleepTicks = 0; + } else { + bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * + (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; + } + } else { + /* Snapshot the current WUT value */ + MXC_WUT_Edge(); + preCapture = MXC_WUT_GetCount(); + bleSleepTicks = 0; + schUsec = 0; + } + + /* Sleep for the shortest tick duration */ + if ((schTimerActive) && (bleSleepTicks < idleTicks)) { + dsTicks = bleSleepTicks; + } else { + dsTicks = idleTicks; + } + + /* Bound the deep sleep time */ + if (dsTicks > MAX_WUT_TICKS) { + dsTicks = MAX_WUT_TICKS; + } + + /* Don't deep sleep if we don't have time */ + if (dsTicks >= MIN_WUT_TICKS) { + /* Arm the WUT interrupt */ + MXC_WUT->cmp = preCapture + dsTicks; + + if (schTimerActive) { + /* Stop the BLE scheduler timer */ + PalTimerStop(); + + /* Shutdown BB hardware */ + PalBbDisable(); + } + + LED_Off(SLEEP_LED); + LED_Off(DEEPSLEEP_LED); + + MXC_LP_EnterStandbyMode(); + + LED_On(DEEPSLEEP_LED); + LED_On(SLEEP_LED); + + if (schTimerActive) { + /* Enable and restore the BB hardware */ + PalBbEnable(); + + PalBbRestore(); + + /* Restore the BB counter */ + MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); + + /* Restart the BLE scheduler timer */ + dsWutTicks = MXC_WUT->cnt - preCapture; + schUsecElapsed = + (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; + + int palTimerStartTicks = schUsec - schUsecElapsed; + if (palTimerStartTicks < 1) { + palTimerStartTicks = 1; + } + PalTimerStart(palTimerStartTicks); + } + } + + /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ + MXC_WUT_Edge(); + postCapture = MXC_WUT_GetCount(); + dsWutTicks = postCapture - preCapture; + + /* + * Advance ticks by # actually elapsed + */ + dsSysTickPeriods = + (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; + vTaskStepTick(dsSysTickPeriods); + + /* Re-enable SysTick */ + SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; + + /* Re-enable interrupts - see comments above the cpsid instruction() + above. */ + __asm volatile("cpsie i"); +} diff --git a/Examples/MAX32690/Bluetooth/RF_Test/main.c b/Examples/MAX32690/Bluetooth/RF_Test/main.c new file mode 100644 index 00000000000..22f2e38ca2d --- /dev/null +++ b/Examples/MAX32690/Bluetooth/RF_Test/main.c @@ -0,0 +1,920 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Main module. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#include "main.h" + +/************************************************************************************************** + Definitions +**************************************************************************************************/ +/*! UART TX buffer size */ +#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U +#define FREQ_HOP_PERIOD_US 20000 +#define HISTORY_MEMORY_LENGTH 10 +/* FreeRTOS */ +#define CMD_LINE_BUF_SIZE 100 +#define OUTPUT_BUF_SIZE 512 +#define CONSOLE_UART 0 //EvKit/FTHR +/* Task IDs */ +TaskHandle_t cmd_task_id; +TaskHandle_t tx_task_id; +TaskHandle_t sweep_task_id; +TaskHandle_t help_task_id; +/* FreeRTOS+CLI */ +xSemaphoreHandle rfTestMutex; + +mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(CONSOLE_UART); +unsigned int disable_tickless = 1; /* Enables/disables tick-less mode */ +/************************************************************************************************** + Global Variables +**************************************************************************************************/ + +/* Persistent BB runtime configuration. */ +static BbRtCfg_t mainBbRtCfg; + +/* Persistent LL runtime configuration. */ +static LlRtCfg_t mainLlRtCfg; + +static uint8_t phy = LL_PHY_LE_1M; +static uint8_t phy_str[16]; +static uint8_t packetType_str[16]; +static uint8_t txFreqHopCh; +static uint8_t packetLen = 255; +static uint8_t packetType = LL_TEST_PKT_TYPE_AA; +static int8_t txPower = 10; +/* UART RX */ +char inputBuffer[CMD_LINE_BUF_SIZE]; /* Buffer for input */ +unsigned int bufferIndex; /* Index into buffer */ +char receivedChar; +/* CLI escape sequences*/ +uint8_t backspace[] = "\x08 \x08"; +enum { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW }; +/* CLI History */ +cmd_history_t cmd_history[HISTORY_MEMORY_LENGTH]; +static uint32_t escCounter = 0; +static uint8_t keyBoardSequenceBuff[3] = { 0 }; +queue_t historyQueue; + +/* CLI Prompt */ +test_t activeTest = NO_TEST; +bool clearScreen = false; +bool pausePrompt = false; + +/************************************************************************************************** + Functions +**************************************************************************************************/ +/* Physical layer functions. */ +extern void llc_api_set_txpower(int8_t power); +extern void dbb_seq_select_rf_channel(uint32_t rf_channel); +extern void llc_api_tx_ldo_setup(void); +extern void dbb_seq_tx_enable(void); +extern void dbb_seq_tx_disable(void); +extern const CLI_Command_Definition_t xCommandList[]; +void vRegisterCLICommands(void); +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPhyStr(uint8_t phy) +{ + switch (phy) { + case LL_TEST_PHY_LE_1M: + default: + memcpy(phy_str, "1M PHY", 7); + break; + case LL_TEST_PHY_LE_2M: + memcpy(phy_str, "2M PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S8: + memcpy(phy_str, "S8 PHY", 7); + break; + case LL_TEST_PHY_LE_CODED_S2: + memcpy(phy_str, "S2 PHY", 7); + break; + } + return phy_str; +} +/*************************************************************************************************/ +/*! + * \fn Get PHY String. + * + * \brief Convert the PHY definition to a string. + * + * \param phy PHY definition. + * + * \return Pointer to string describing the PHY. + */ +/*************************************************************************************************/ +static uint8_t *getPacketTypeStr(void) +{ + switch (packetType) { + case LL_TEST_PKT_TYPE_PRBS9: + memcpy(packetType_str, "PRBS9", 6); + break; + case LL_TEST_PKT_TYPE_0F: + memcpy(packetType_str, "0x0F", 5); + break; + case LL_TEST_PKT_TYPE_55: + memcpy(packetType_str, "0x55", 5); + break; + case LL_TEST_PKT_TYPE_PRBS15: + memcpy(packetType_str, "PRBS15", 7); + break; + case LL_TEST_PKT_TYPE_FF: + memcpy(packetType_str, "0xFF", 5); + break; + case LL_TEST_PKT_TYPE_00: + memcpy(packetType_str, "0x00", 5); + break; + case LL_TEST_PKT_TYPE_F0: + memcpy(packetType_str, "0xF0", 5); + break; + case LL_TEST_PKT_TYPE_AA: + default: + memcpy(packetType_str, "0xAA", 5); + break; + } + return packetType_str; +} +/*************************************************************************************************/ +/*! + * \fn Timer 2 interrupts handler. + * + * \brief Controls the frequency hopping. + * + * \param None. + * + * \return None. + */ +/*************************************************************************************************/ +void TMR2_IRQHandler(void) +{ + int res; + + MXC_TMR_TO_Clear(MXC_TMR2); + + /* Start the next channel */ + res = LlEnhancedTxTest(txFreqHopCh++, packetLen, packetType, phy, 0); + if (res != LL_SUCCESS) + APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + + /* Wrap the channels */ + if (txFreqHopCh == 40) + txFreqHopCh = 0; + + /* Restart the timeout */ + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); +} +/*************************************************************************************************/ +/*! + * \fn processEscSequence. + * + * \brief Compares keyboard sequence to ansi escape codes. + * + * \param seq keyboard sequence. + * + * \return None. + */ +/*************************************************************************************************/ +uint8_t processEscSequence(uint8_t *seq) +{ + uint8_t retVal = 0; + + uint8_t arrows[4][3] = { + /* Order of arrows here alligns with enum uptop */ + { 27, 91, 65 }, /* up arrow */ + + { 27, 91, 66 }, /* down arrow */ + + { 27, 91, 67 }, /* right arrow */ + + { 27, 91, 68 }, /* left arrow */ + }; + + /*arrows*/ + for (int arrowKey = 0; arrowKey < 4; arrowKey++) { //cycle through 4 arrow keys + for (int i = 0; i < 3; i++) { //cycle thorugh each index of each arrow key sequence + //compare each index of arrow key to each index of typed sequence buffer + for (int j = 0; j < 3; j++) { + if (seq[j] == arrows[arrowKey][i]) { + retVal++; + break; + } + } + } + /* If 3 motches found */ + if (retVal == 3) + return arrowKey; + else + retVal = 0; + } + + return 0xFF; +} +/*************************************************************************************************/ +/*! + * \fn cmdHistoryAdd. + * + * \brief adds latest command to command history buffer + * + * \param q pointer to the circular buffer holding command history + * \param cmd pointer to the command string to be added + * + * \return None. + */ +/*************************************************************************************************/ +void cmdHistoryAdd(queue_t *q, const uint8_t *cmd) +{ + /* clear command history slot of any previous data */ + memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); + /* copy new command histroy */ + memcpy(&q->command[q->head], cmd, strlen((const char *)cmd)); + q->command[q->head].length = strlen((const char *)cmd); + + /* update head, and push tail up if we have looped back around */ + q->head = (q->head + 1) % HISTORY_MEMORY_LENGTH; + if (q->head == q->tail) { + q->tail = (q->tail + 1) % HISTORY_MEMORY_LENGTH; + } + memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); + /* update pointer */ + q->queuePointer = historyQueue.head; +} +/*************************************************************************************************/ +/*! + * \fn updateQueuePointer. + * + * \brief Updates an internal marker pointing to historical command to be printed, based on up/down arrow + * + * \param q pointer to the circular buffer holding command history + * + * \param upArrow flag used to upated the queuePoniter delimiting which command to print + * + * \return None. + */ +/*************************************************************************************************/ +void updateQueuePointer(queue_t *q, bool upArrow) +{ + if (upArrow) { + /* empty queue or reached tail already */ + if (q->head == q->tail || q->queuePointer == q->tail) + return; + if (q->queuePointer == 0) + q->queuePointer = HISTORY_MEMORY_LENGTH - 1; + else + q->queuePointer = (q->queuePointer - 1) % HISTORY_MEMORY_LENGTH; + + } else { + /* empty queue or reached head already */ + if (q->head == q->tail || q->queuePointer == q->head) + return; + q->queuePointer = (q->queuePointer + 1) % HISTORY_MEMORY_LENGTH; + } +} +/*************************************************************************************************/ +/*! + * \fn printHistory. + * + * \brief prints previously typed commands + * + * \param upArrow flag used to upated the queuePoniter delimiting which command to print + * + * \return None. + */ +/*************************************************************************************************/ +void printHistory(bool upArrow) +{ + uint8_t numCharsToDelete = strlen(inputBuffer); + uint8_t moveForwardCount = 0; + updateQueuePointer(&historyQueue, upArrow); + uint8_t right[] = "\x1b\x5b\x43"; + /* no history yet */ + if (historyQueue.queuePointer < 0) + return; + /* if cursor is not at the end then move it forward */ + if (bufferIndex != strlen(inputBuffer)) { + moveForwardCount = strlen(inputBuffer) - bufferIndex; + for (int i = 0; i < moveForwardCount; i++) { + WsfBufIoWrite((const uint8_t *)right, sizeof(right)); + vTaskDelay(1); //give UART time to print + bufferIndex++; + } + } + /* send backspace to delete any currently typed text */ + if (numCharsToDelete) { + for (int i = 0; i < numCharsToDelete; i++) printf("%s", backspace); + } + /* copy history into inputBuffer */ + memset(inputBuffer, 0x00, 100); + memcpy(inputBuffer, historyQueue.command[historyQueue.queuePointer].cmd, + strlen((const char *)historyQueue.command[historyQueue.queuePointer].cmd)); + printf("%s", inputBuffer); + bufferIndex = strlen(inputBuffer); + + fflush(stdout); +} + +/*************************************************************************************************/ +/*! + * \fn cls + * + * \brief Clears screen + * + * \return None. + */ +/*************************************************************************************************/ +void cls(void) +{ + char str[7]; + snprintf(str, sizeof(str), "%s", "\033[2J"); + WsfBufIoWrite((const uint8_t *)str, 5); + clearScreen = false; +} +/*************************************************************************************************/ +/*! + * \fn prompt + * + * \brief Prints prompt to screen, indicates if a test is active + * + * \return None. + */ +/*************************************************************************************************/ +void prompt(void) +{ + char str[25]; + uint8_t len = 0; + + if (pausePrompt) + return; + + if (activeTest) { + snprintf(str, sizeof(str), "%s", "\r\n(active test) cmd:"); + len = 21; + } else { + snprintf(str, sizeof(str), "%s", "\r\ncmd:"); + len = 7; + } + + fflush(stdout); + if (clearScreen) { + cls(); + } + //using app_trace would add newline after prompt which does not look right + WsfBufIoWrite((const uint8_t *)str, len); +} +/*************************************************************************************************/ +/*! + * \fn printHint + * + * \brief Prints the help string of any command matching the current inputbuffer + * + * \param buff pointer to the inputbuffer + * + * \return None. + */ +/*************************************************************************************************/ +void printHint(char *buff) +{ + int i = 0; + uint8_t bufflen = strlen((const char *)buff); + bool foundMatch = false; + do { + if (memcmp(buff, xCommandList[i].pcCommand, bufflen) == 0 && bufflen > 0) { + if (foundMatch == false) + printf("\r\n"); + printf("\r\n> %s : %s", xCommandList[i].pcCommand, xCommandList[i].pcHelpString); + foundMatch = true; + } + i++; + } while (xCommandList[i].pcCommand != NULL); + if (foundMatch) { + /* print new prompt with what user had previouslly typed */ + printf("\r\n"); + prompt(); + vTaskDelay(5); + printf("%s", buff); + fflush(stdout); + } +} +/*************************************************************************************************/ +/*! + * \fn Process the Console RX + * + * \brief State machine for the console inputs. + * + * \param rxByte Character received from the console. + * + * \return None. + */ +/*************************************************************************************************/ +static void processConsoleRX(uint8_t rxByte) +{ + static uint32_t i = 0; + + BaseType_t xHigherPriorityTaskWoken; + // static uint8_t keyBoardSequenceBuff[3] = {0}; + receivedChar = rxByte; + keyBoardSequenceBuff[i++ % 3] = rxByte; + + // TODO(BLE): put all of this in command line task + /* if received esc character start escape sequence counter */ + if (rxByte == 27) + escCounter++; + + /* Wake the task */ + xHigherPriorityTaskWoken = pdFALSE; + vTaskNotifyGiveFromISR(cmd_task_id, &xHigherPriorityTaskWoken); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); +} +/*************************************************************************************************/ +/*! + * \brief Load runtime configuration. + */ +/*************************************************************************************************/ +static void mainLoadConfiguration(void) +{ + PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); + LlGetDefaultRunTimeCfg(&mainLlRtCfg); + PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); + PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); + + /* Set 5.1 requirements. */ + mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; + + /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 + HCI_CLOCK_500PPM + HCI_CLOCK_250PPM + HCI_CLOCK_150PPM + HCI_CLOCK_100PPM + HCI_CLOCK_75PPM + HCI_CLOCK_50PPM + HCI_CLOCK_30PPM + HCI_CLOCK_20PPM + */ + mainBbRtCfg.clkPpm = 20; +} +/*************************************************************************************************/ +/*! + * \brief Initialize WSF. + */ +/*************************************************************************************************/ +static void mainWsfInit(void) +{ + /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ + const uint16_t maxRptBufSize = 12 + 2 + 255; + + /* +12 for message headroom, +ISO Data Load, +4 for header. */ + const uint16_t dataBufSize = + 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; + +/* Use single pool for data buffers. */ +#if (BT_VER > 9) + WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); +#endif + /* Ensure pool buffers are ordered correctly. */ + WSF_ASSERT(maxRptBufSize < dataBufSize); + + wsfBufPoolDesc_t poolDesc[] = { + { 16, 8 }, + { 32, 4 }, + { 128, mainLlRtCfg.maxAdvReports }, + { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ + { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + + mainLlRtCfg.numIsoRxBuf } + }; + + const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); + + /* Initial buffer configuration. */ + uint16_t memUsed; + memUsed = WsfBufInit(numPools, poolDesc); + WsfHeapAlloc(memUsed); + WsfOsInit(); + WsfTimerInit(); +#if (WSF_TRACE_ENABLED == TRUE) + WsfTraceRegisterHandler(WsfBufIoWrite); + WsfTraceEnable(TRUE); +#endif +} +/*************************************************************************************************/ +void vCmdLineTask(void *pvParameters) +{ + unsigned char tmp; + unsigned int x; + int uartReadLen; + char output[OUTPUT_BUF_SIZE]; /* Buffer for output */ + BaseType_t xMore; + mxc_uart_req_t async_read_req; + memset(inputBuffer, 0, CMD_LINE_BUF_SIZE); + bufferIndex = 0; + + /* Register available CLI commands */ + vRegisterCLICommands(); + vTaskDelay(100); /* give time for ll api to print things */ + fflush(stdout); + /* clear screen and print help table */ + cls(); + pausePrompt = true; + xTaskNotify(help_task_id, 0xFF, eSetBits); + + memset(cmd_history, 0, sizeof(cmd_history_t) * HISTORY_MEMORY_LENGTH); + historyQueue.head = 0; + historyQueue.tail = 0; + while (1) { + ulTaskNotifyTake(pdTRUE, portMAX_DELAY); + + tmp = receivedChar; + /* Check that we have a valid character */ + if (escCounter > 0 && escCounter < 4) { + switch (processEscSequence(keyBoardSequenceBuff)) { + case UP_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + printHistory(true); + break; + + case DOWN_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + printHistory(false); + break; + + case RIGHT_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + if (bufferIndex < strlen(inputBuffer)) { + uint8_t right[] = "\x1b\x5b\x43"; + WsfBufIoWrite((const uint8_t *)right, sizeof(right)); + bufferIndex++; + } + escCounter = 0; + + break; + case LEFT_ARROW: + memset(keyBoardSequenceBuff, 0, 3); + escCounter = 0; + if (bufferIndex > 0) { + uint8_t left[] = "\x1b\x5b\x44"; + WsfBufIoWrite((const uint8_t *)left, sizeof(left)); + bufferIndex--; + } + break; + + default: + escCounter++; + break; + } + } else { + escCounter = 0; + if (async_read_req.rxCnt > 0) { + /* Process character */ + do { + /* 0x08 BS linux , 127 Del windows/putty */ + if (tmp == 0x08 || tmp == 127) { + /* Backspace */ + if (bufferIndex > 0) { + bufferIndex--; + memset(&inputBuffer[bufferIndex], 0x00, 1); + WsfBufIoWrite((const uint8_t *)backspace, sizeof(backspace)); + } + fflush(stdout); + + } else if (tmp == 0x09) { + /* tab hint */ + printHint(inputBuffer); + + } else if ((char)tmp == 'e' && activeTest == BLE_FHOP_TEST) { + /* since freq hop does not allow user to see what they are typing, simply typing + * 'e' without the need to press enter willl stop the frequency hopping test */ + LlEndTest(NULL); + MXC_TMR_Stop(MXC_TMR2); + activeTest = NO_TEST; + + xSemaphoreGive(rfTestMutex); + prompt(); + + } else if (tmp == 0x03) { + /* ^C abort */ + bufferIndex = 0; + APP_TRACE_INFO0("^C"); + prompt(); + + } else if ((tmp == '\r') || (tmp == '\n')) { + historyQueue.queuePointer = historyQueue.head; + if (strlen(inputBuffer) > 0) { + APP_TRACE_INFO0("\r\n"); + /* save to history */ + cmdHistoryAdd(&historyQueue, (const uint8_t *)inputBuffer); + /* Evaluate */ + do { + xMore = FreeRTOS_CLIProcessCommand(inputBuffer, output, + OUTPUT_BUF_SIZE); + for (x = 0; + x < (xMore == pdTRUE ? OUTPUT_BUF_SIZE : strlen(output)); + x++) { + putchar(*(output + x)); + } + } while (xMore != pdFALSE); + } + + /* New prompt */ + bufferIndex = 0; + memset(inputBuffer, 0x00, 100); + prompt(); + } else if (bufferIndex < CMD_LINE_BUF_SIZE) { + putchar(tmp); + inputBuffer[bufferIndex++] = tmp; + fflush(stdout); + + } else { + /* Throw away data and beep terminal */ + putchar(0x07); + fflush(stdout); + } + uartReadLen = 1; + /* If more characters are ready, process them here */ + } while ((MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) > 0) && + (MXC_UART_Read(ConsoleUART, (uint8_t *)&tmp, &uartReadLen) == 0)); + } + } + } +} +/*************************************************************************************************/ +void txTestTask(void *pvParameters) +{ + static int res = 0xff; + uint32_t notifVal = 0; + tx_config_t testConfig; + char str[80] = ""; + while (1) { + /* Wait for notification to initiate TX/RX */ + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + /* Get test settings from the notification value */ + testConfig.allData = notifVal; + + if (testConfig.testType == BLE_TX_TEST) { + snprintf(str, sizeof(str), + "Transmit RF channel %d on Freq %dMHz, %dbytes/pkt : ", testConfig.channel, + getFreqFromRfChannel(testConfig.channel), packetLen); + snprintf(str, sizeof(str), "%s%s", str, (const char *)getPacketTypeStr()); + } else { + snprintf(str, sizeof(str), "Receive RF channel %d Freq %dMHz: ", testConfig.channel, + getFreqFromRfChannel(testConfig.channel)); + } + + snprintf(str, sizeof(str), "%s%s", str, " : "); + snprintf(str, sizeof(str), "%s%s", str, (const char *)getPhyStr(phy)); + APP_TRACE_INFO1("%s", str); + + /* stat test */ + if (testConfig.testType == BLE_TX_TEST) { + res = LlEnhancedTxTest(testConfig.channel, packetLen, packetType, phy, 0); + } else { + res = LlEnhancedRxTest(testConfig.channel, phy, 0, 0); + } + APP_TRACE_INFO2("result = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); + /* if duration value was given then let the test run that amount of time and end */ + if (testConfig.duration_ms) { + vTaskDelay(testConfig.duration_ms); + LlEndTest(NULL); + xSemaphoreGive(rfTestMutex); + } + pausePrompt = false; + + prompt(); + } +} +/*************************************************************************************************/ +void sweepTestTask(void *pvParameters) +{ + uint32_t notifVal = 0; + sweep_config_t sweepConfig; + + while (1) { + /* Wait for notification to initiate sweep */ + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + sweepConfig.allData = notifVal; + APP_TRACE_INFO3("\r\nStarting TX sweep from Ch %d to Ch %d @ %d ms per channel", + sweepConfig.start_channel, sweepConfig.end_channel, + sweepConfig.duration_per_ch_ms); + + char str[6] = ""; + + snprintf(str, sizeof(str), "%s", (const char *)getPhyStr(phy)); + + /* sweep channels */ + for (int i = sweepConfig.start_channel; i <= sweepConfig.end_channel; i++) { + APP_TRACE_INFO3( + "\r\n-----------------| RF channel %d %s Freq: %dMHz |----------------------\r\n", + i, str, getFreqFromRfChannel(i)); + + LlEnhancedTxTest(i, packetLen, packetType, phy, 0); + vTaskDelay(sweepConfig.duration_per_ch_ms); + LlEndTest(NULL); + xSemaphoreGive(rfTestMutex); + vTaskDelay(50); /* give console time to print end of test reuslts */ + } + activeTest = NO_TEST; + pausePrompt = false; + prompt(); + } +} +/*************************************************************************************************/ +void helpTask(void *pvParameters) +{ + uint32_t notifVal = 0; + while (1) { + xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); + + // clang-format off + printf("┌─────────┬──────────────────────────────────┬───────────────────────────────────────────────────────â”\r\n"); + printf("│ Command │ parameters [optional] │ description │\r\n"); + printf("├─────────┼──────────────────────────────────┼───────────────────────────────────────────────────────┤\r\n"); + printf("│ cls │ N/A │ clears the screen │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ constTx │ │ Constant TX on given channel. │\r\n"); + printf("│ │ ex: constTx 0 1M │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ e │ N/A │ Ends any active RX/TX/Constant/Freq.hop RF test │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ ps │ N/A │ Display freeRTOS task stats │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ rx │ │ RX test on given channel. │\r\n"); + printf("│ │ ex: rx 0 2M 500 │ Duration of 0 is max duration until stopped │\r\n"); + printf("│ │ │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); + printf("│ │ │ (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ sweep │ │ Sweeps TX tests through a range of RF channels given │\r\n"); + printf("│ │ │ their order of appearance on the spectrum. │\r\n"); + printf("│ │ ex: sweep 0 10 255 FF 2M 500 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); + printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); + printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ tx │ │ TX test on given RF channel. │\r\n"); + printf("│ │ │ Duration of 0 is max duration until stopped │\r\n"); + printf("│ │ ex: tx 0 255 FF 2M 1000 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); + printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); + printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ power │ │ Select transmit power. Supported power levels (dBm) │\r\n"); + printf("│ │ ex: power -10 │ -10 , 0 , 4 │\r\n"); + printf("│ │ │ │\r\n"); + printf("│ help │ N/A │ Displays this help table │\r\n"); + printf("└─────────┴──────────────────────────────────┴───────────────────────────────────────────────────────┘\r\n"); + // clang-format on + + pausePrompt = false; + prompt(); + } +} +/*************************************************************************************************/ +void setPhy(uint8_t newPhy) +{ + phy = newPhy; + char str[20] = "> Phy now set to "; + snprintf(str, sizeof(str), "%s%s", "> Phy now set to ", + (phy == LL_TEST_PHY_LE_1M) ? "1M PHY" : + (phy == LL_TEST_PHY_LE_2M) ? "2M PHY" : + (phy == LL_TEST_PHY_LE_CODED_S8) ? "S8 PHY" : + (phy == LL_TEST_PHY_LE_CODED_S2) ? "S2 PHY" : + ""); + APP_TRACE_INFO1("%s", str); +} +/*************************************************************************************************/ +void startFreqHopping(void) +{ + NVIC_EnableIRQ(TMR2_IRQn); + MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); +} /*************************************************************************************************/ +void setPacketLen(uint8_t len) +{ + packetLen = len; + APP_TRACE_INFO1("> Packet length set to %d", len); +} +/*************************************************************************************************/ +void setPacketType(uint8_t type) +{ + packetType = type; + APP_TRACE_INFO1("> Packet type set to %s", getPacketTypeStr()); +} +/*************************************************************************************************/ +void setTxPower(int8_t power) +{ + // TODO(BLE): validate value + txPower = power; + llc_api_set_txpower((int8_t)power); + LlSetAdvTxPower((int8_t)power); + printf("> Power set to %d dBm\n", power); +} +/*************************************************************************************************/ +void printConfigs(void) +{ + printf("-----| Current RF Configrations |-----\r\n"); + printf("Phy : %s \r\nPayload packet : %s\r\nPayload length : %d \r\nTX Power : %d dbm\r\n", + getPhyStr(phy), getPacketTypeStr(), packetLen, txPower); +} +/*************************************************************************************************/ +/*! + * \brief Main entry point. + */ +/*************************************************************************************************/ +int main(void) +{ + uint32_t memUsed; + + mainLoadConfiguration(); + mainWsfInit(); + +#if (WSF_TRACE_ENABLED == TRUE) + memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); + WsfHeapAlloc(memUsed); +#endif + + LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, + .wlSizeCfg = 4, + .rlSizeCfg = 4, + .plSizeCfg = 4, + .pLlRtCfg = &mainLlRtCfg, + .pFreeMem = WsfHeapGetFreeStartAddress(), + .freeMemAvail = WsfHeapCountAvailable() }; + + memUsed = LlInitControllerInit(&llCfg); + WsfHeapAlloc(memUsed); + + bdAddr_t bdAddr; + PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); + /* Coverity[uninit_use_in_call] */ + LlSetBdAddr((uint8_t *)&bdAddr); + + /* Register the UART RX request */ + WsfBufIoUartRegister(processConsoleRX); + + /* FreeRTOS */ + rfTestMutex = xSemaphoreCreateMutex(); + if (rfTestMutex == NULL) { + printf("xSemaphoreCreateMutex failed to create a mutex.\n"); + printf("necessary for operation...\r\n"); + while (1) { + //hang here.... + } + } + xTaskCreate(vCmdLineTask, (const char *)"CmdLineTask", + 1024 + CMD_LINE_BUF_SIZE + OUTPUT_BUF_SIZE, NULL, tskIDLE_PRIORITY + 1, + &cmd_task_id); + // TX tranismit test task + xTaskCreate(txTestTask, (const char *)"Tx Task", 1024, NULL, tskIDLE_PRIORITY + 1, &tx_task_id); + + // Sweep test task + xTaskCreate(sweepTestTask, (const char *)"Sweep Task", 1024, NULL, tskIDLE_PRIORITY + 1, + &sweep_task_id); + + // help task + xTaskCreate(helpTask, (const char *)"Help Task", 1024, NULL, tskIDLE_PRIORITY + 1, + &help_task_id); + + /* Start scheduler */ + APP_TRACE_INFO0(">> Starting scheduler.\r\n"); + + vTaskStartScheduler(); + + return 0; +} +/*************************************************************************************************/ +/*! + * \brief Calculates frequency of given RF channel + * \return Returns frequency of given RF channel + */ +/*************************************************************************************************/ +uint16_t getFreqFromRfChannel(uint8_t ch) +{ + return 2402 + (ch * 2); +} diff --git a/Examples/MAX32690/Bluetooth/RF_Test/main.h b/Examples/MAX32690/Bluetooth/RF_Test/main.h new file mode 100644 index 00000000000..7f526c7b6cb --- /dev/null +++ b/Examples/MAX32690/Bluetooth/RF_Test/main.h @@ -0,0 +1,106 @@ +/*************************************************************************************************/ +/*! + * \file + * + * \brief Main module. + * + * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. + * + * Copyright (c) 2019-2020 Packetcraft, Inc. + * + * Portions Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*************************************************************************************************/ + +#ifndef EXAMPLES_MAX32690_BLUETOOTH_RF_TEST_MAIN_H_ +#define EXAMPLES_MAX32690_BLUETOOTH_RF_TEST_MAIN_H_ + +#include +#include +#include +#include "ll_init_api.h" +#include "ll_api.h" +#include "chci_tr.h" +#include "lhci_api.h" +#include "hci_defs.h" +#include "wsf_assert.h" +#include "wsf_buf.h" +#include "wsf_heap.h" +#include "wsf_timer.h" +#include "wsf_trace.h" +#include "wsf_bufio.h" +#include "bb_ble_sniffer_api.h" +#include "pal_bb.h" +#include "pal_cfg.h" +#include "tmr.h" +#include "wut_regs.h" +#include "FreeRTOS.h" +#include "FreeRTOSConfig.h" +#include "portmacro.h" +#include "task.h" +#include "semphr.h" +#include "FreeRTOS_CLI.h" +#include "uart.h" +#include "mxc_delay.h" +#include "mxc_errors.h" + +typedef enum uint8_t { + NO_TEST, + BLE_RX_TEST, + BLE_TX_TEST, + BLE_CONST_TX, + BLE_SWEEP_TEST, + BLE_FHOP_TEST, +} test_t; + +typedef union { + struct { + uint16_t duration_ms; + uint8_t channel; + test_t testType; + }; + uint32_t allData; +} tx_config_t; + +typedef union { + struct { + uint8_t start_channel; + uint8_t end_channel; + uint16_t duration_per_ch_ms; + }; + uint32_t allData; +} sweep_config_t; + +typedef struct { + uint8_t cmd[100]; + uint8_t length; +} cmd_history_t; + +typedef struct { + cmd_history_t command[10]; + uint8_t head; + uint8_t tail; + int queuePointer; +} queue_t; + +void setPhy(uint8_t newPhy); +void startFreqHopping(void); +void setPacketLen(uint8_t len); +void setPacketType(uint8_t type); +void setTxPower(int8_t power); +void printConfigs(void); +uint16_t getFreqFromRfChannel(uint8_t ch); + +#endif // EXAMPLES_MAX32690_BLUETOOTH_RF_TEST_MAIN_H_ diff --git a/Examples/MAX32690/RF_Test/project.mk b/Examples/MAX32690/Bluetooth/RF_Test/project.mk similarity index 100% rename from Examples/MAX32690/RF_Test/project.mk rename to Examples/MAX32690/Bluetooth/RF_Test/project.mk diff --git a/Examples/MAX32690/Bootloader/.vscode/flash.gdb b/Examples/MAX32690/Bootloader/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/Bootloader/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/Bootloader/Makefile b/Examples/MAX32690/Bootloader/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/Bootloader/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/Bootloader/boot_lower.S b/Examples/MAX32690/Bootloader/boot_lower.S deleted file mode 100644 index 401c381f915..00000000000 --- a/Examples/MAX32690/Bootloader/boot_lower.S +++ /dev/null @@ -1,60 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - - .syntax unified - .arch armv7-m - .text - .thumb - .thumb_func - .align 2 - - - .globl Boot_Lower - .type Boot_Lower %function -/* Boot from the lower flash array */ -Boot_Lower: - - ldr r0,=0x10004000 /* Address for main flash image */ - ldr r1,=0xE000ED08 /* Address for SCB_VTOR_REG */ - - /* First 32-bit word in image is initial stack pointer */ - /* Second 32-bit word in image is Address of the Reset Handler */ - - /* Set VTOR with vector table base address */ - str r0,[r1] - /* Load initial SP */ - ldr sp,[r0] - /* Load LR with address of the Reset Handler */ - ldr lr,[r0,#4] - /* Jump to Reset Handler. */ - bx lr diff --git a/Examples/MAX32690/Bootloader/bootloader.ld b/Examples/MAX32690/Bootloader/bootloader.ld deleted file mode 100644 index 797ecbe1353..00000000000 --- a/Examples/MAX32690/Bootloader/bootloader.ld +++ /dev/null @@ -1,150 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -BOOTLOADER_ORIGIN = 0x10000000; -BOOTLOADER_LEN = 0x4000; -FLASH_SECTION_LEN = 0x40000 - BOOTLOADER_LEN; -FLASH0_ORIGIN = BOOTLOADER_ORIGIN + BOOTLOADER_LEN; - -MEMORY { - FLASH (rx) : ORIGIN = BOOTLOADER_ORIGIN, LENGTH = BOOTLOADER_LEN - FLASH0 (rx) : ORIGIN = FLASH0_ORIGIN, LENGTH = FLASH_SECTION_LEN - FLASH1 (rx) : ORIGIN = 0x10300000, LENGTH = FLASH_SECTION_LEN - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 -} - -SECTIONS { - - .text : - { - _text = .; - KEEP(*(.isr_vector)) - EXCLUDE_FILE (*riscv.o) *(.text*) /* program code, exclude RISCV code */ - *(.rodata*) /* read-only data: "const" */ - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* C++ Exception handling */ - KEEP(*(.eh_frame*)) - _etext = .; - } > FLASH - - .flash0 (NOLOAD) : - { - _flash0 = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash0 = ALIGN(., 4); - } > FLASH0 - - .flash1 (NOLOAD) : - { - _flash1 = ALIGN(., 4); - . = . + FLASH_SECTION_LEN; - _eflash1 = ALIGN(., 4); - } > FLASH1 - - /* it's used for C++ exception handling */ - /* we need to keep this to avoid overlapping */ - .ARM.exidx : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > FLASH - - .data : - { - _data = ALIGN(., 4); - *(.data*) /*read-write initialized data: initialized global variable*/ - *(.flashprog*) /* Flash program */ - - /* These array sections are used by __libc_init_array to call static C++ constructors */ - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - _edata = ALIGN(., 4); - } > SRAM AT>FLASH - __load_data = LOADADDR(.data); - - .bss : - { - . = ALIGN(4); - _bss = .; - *(.bss*) /*read-write zero initialized data: uninitialzed global variable*/ - *(COMMON) - _ebss = ALIGN(., 4); - } > SRAM - - /* Set stack top to end of RAM, and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(SRAM) + LENGTH(SRAM); - __StackLimit = __StackTop - SIZEOF(.stack_dummy); - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .stack_dummy (COPY): - { - *(.stack*) - } > SRAM - - .heap (COPY): - { - . = ALIGN(4); - *(.heap*) - __HeapLimit = ABSOLUTE(__StackLimit); - } > SRAM - - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds RAM limit */ - ASSERT(__StackLimit >= _ebss, "region RAM overflowed with stack") -} diff --git a/Examples/MAX32690/Bootloader/main.c b/Examples/MAX32690/Bootloader/main.c deleted file mode 100644 index e057405df38..00000000000 --- a/Examples/MAX32690/Bootloader/main.c +++ /dev/null @@ -1,295 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Bootloader - * @details Simple bootloader to verify and replace images. - */ - -/***** Includes *****/ -#include -#include -#include -#include "mxc_device.h" -#include "led.h" -#include "pb.h" -#include "board.h" -#include "mxc_delay.h" -#include "flc.h" - -/************************************************************************************************** - Macros -**************************************************************************************************/ - -/* Addresses for the flash sections, defined in the linker file */ -extern uint32_t _flash0; -extern uint32_t _flash1; - -#define FLASH0_START ((uint32_t)&_flash0) -#define FLASH1_START ((uint32_t)&_flash1) -#define FLASH_ERASED_WORD 0xFFFFFFFF -#define CRC32_LEN 4 - -#define DELAY(loopCount) \ - for (i = 0; i < loopCount; i++) {} - -/************************************************************************************************** - Local Variables -**************************************************************************************************/ - -/************************************************************************************************** - Functions -**************************************************************************************************/ - -/* Defined in boot_lower.S */ -extern void Boot_Lower(void); - -// http://home.thep.lu.se/~bjorn/crc/ -/*************************************************************************************************/ -/*! - * \brief Create the CRC32 table. - * - * \param r Index into the table - * - * \return None. - */ -/*************************************************************************************************/ -uint32_t crc32_for_byte(uint32_t r) -{ - for (int j = 0; j < 8; ++j) r = (r & 1 ? 0 : (uint32_t)0xEDB88320L) ^ r >> 1; - return r ^ (uint32_t)0xFF000000L; -} - -/*************************************************************************************************/ -/*! - * \brief Calculate the CRC32 value for the given buffer. - * - * \param data Pointer to the data. - * \param n_bytes Number of bytes in the buffer. - * \param crc Pointer to store the result. - * - * \return None. - */ -/*************************************************************************************************/ -static uint32_t table[0x100] = { 0 }; -void crc32(const void *data, size_t n_bytes, uint32_t *crc) -{ - if (!*table) { - for (size_t i = 0; i < 0x100; ++i) { - table[i] = crc32_for_byte(i); - } - } - - for (size_t i = 0; i < n_bytes; ++i) { - *crc = table[(uint8_t)*crc ^ ((uint8_t *)data)[i]] ^ *crc >> 8; - } -} - -void bootError(void) -{ - /* Flash the failure LED */ - int j; - volatile int i; - for (j = 0; j < 10; j++) { - LED_Toggle(0); - for (i = 0; i < 0xFFFFF; i++) {} - } - NVIC_SystemReset(); -} - -int flashPageErased(uint32_t *addr) -{ - /* Determine if this page is totally erased */ - int i; - for (i = 0; i < (MXC_FLASH_PAGE_SIZE / 4); i++) { - if (*(addr + i) != FLASH_ERASED_WORD) { - return 0; - } - } - - return 1; -} - -uint32_t findUpperLen(void) -{ - uint32_t *flashPagePointer = (uint32_t *)FLASH1_START; - - /* Find the first erased page in the upper flash*/ - while (1) { - if (*flashPagePointer == FLASH_ERASED_WORD) { - /* Make sure the entire page is erased */ - if (flashPageErased(flashPagePointer)) { - break; - } - } - - flashPagePointer += (MXC_FLASH_PAGE_SIZE / 4); - } - - /* Length is 0 */ - if (flashPagePointer == (uint32_t *)FLASH1_START) { - return 0; - } - - /* search backwards for the first bytes that isn't erased */ - while (*(flashPagePointer--) == FLASH_ERASED_WORD) {} - flashPagePointer += 2; - - /* return the starting address of the CRC, last address of the image */ - return (uint32_t)(flashPagePointer - (4 / 4) - (FLASH1_START / 4)); -} - -static int multiPageErase(uint8_t *address, uint32_t size) -{ - int err; - volatile uint32_t address32 = (uint32_t)address; - address32 &= 0xFFFFF; - - /* Page align the size */ - size += MXC_FLASH_PAGE_SIZE - (size % MXC_FLASH_PAGE_SIZE); - - while (size) { - err = MXC_FLC_PageErase((uint32_t)address); - if (err != E_NO_ERROR) { - return err; - } - - address += MXC_FLASH_PAGE_SIZE; - size -= MXC_FLASH_PAGE_SIZE; - } - - return E_NO_ERROR; -} - -static int flashWrite(uint32_t *address, uint32_t *data, uint32_t len) -{ - int err; - - while ((len / 16) > 0) { - err = MXC_FLC_Write128((uint32_t)address, data); - if (err != E_NO_ERROR) { - return err; - } - len -= 16; - address += 4; - data += 4; - } - while (len) { - err = MXC_FLC_Write32((uint32_t)address, *data); - if (err != E_NO_ERROR) { - return err; - } - len -= 4; - address += 1; - data += 1; - } - return E_NO_ERROR; -} - -int main(void) -{ - volatile int i; - int numLedsBlink; - - /* Limit the number of LED blinks */ - if (num_leds > 2) { - numLedsBlink = 2; - } else { - numLedsBlink = num_leds; - } - - /* Prevent bricks */ - if (numLedsBlink == 0) { - DELAY(0x3FFFFF); - } - - LED_Init(); - for (int led = 0; led < numLedsBlink; led++) { - LED_On(led); - DELAY(0x1FFFFF); - LED_Off(led); - DELAY(0x1FFFFF); - } - - /* disable interrupts to prevent these operations from being interrupted */ - __disable_irq(); - - /* Get the length of the image in the upper flash array */ - uint32_t len = findUpperLen(); - - /* Attempt to verify the upper image if we get a valid length */ - if (len) { - /* Validate the image with CRC32 */ - uint32_t crcResult = 0; - - crc32((const void *)FLASH1_START, len, &crcResult); - - /* Check the calculated digest against what was received */ - if (crcResult == (uint32_t) * (uint32_t *)(FLASH1_START + len)) { - /* Erase the destination pages */ - if (multiPageErase((uint8_t *)FLASH0_START, len) != E_NO_ERROR) { - /* Failed to erase pages */ - bootError(); - } - /* Copy the new firmware image */ - if (flashWrite((uint32_t *)FLASH0_START, (uint32_t *)FLASH1_START, len) != E_NO_ERROR) { - /* Failed to write new image */ - bootError(); - } else { - /* Flash the success LED for a successful update */ - int j; - for (j = 0; j < 10; j++) { - LED_Toggle(1); - for (i = 0; i < 0xFFFFF; i++) {} - } - } - /* Erase the update pages */ - if (multiPageErase((uint8_t *)FLASH1_START, len) != E_NO_ERROR) { - /* Failed to erase pages, continue to boot from the lower pages */ - } - } else { - /* Flash the error LED for a CRC failure */ - int j; - for (j = 0; j < 10; j++) { - LED_Toggle(0); - for (i = 0; i < 0xFFFFF; i++) {} - } - } - } - - /* Boot from lower image */ - Boot_Lower(); - - while (1) {} -} diff --git a/Examples/MAX32690/CAN/Makefile b/Examples/MAX32690/CAN/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/CAN/Makefile +++ b/Examples/MAX32690/CAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/CAN/main.c b/Examples/MAX32690/CAN/main.c index 686eb777b3e..5ff4e2769b6 100644 --- a/Examples/MAX32690/CAN/main.c +++ b/Examples/MAX32690/CAN/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/CRC/Makefile b/Examples/MAX32690/CRC/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/CRC/Makefile +++ b/Examples/MAX32690/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/CRC/main.c b/Examples/MAX32690/CRC/main.c index 7195c4ce65c..5b50de8a586 100644 --- a/Examples/MAX32690/CRC/main.c +++ b/Examples/MAX32690/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/CTB_AES/Makefile b/Examples/MAX32690/CTB_AES/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/CTB_AES/Makefile +++ b/Examples/MAX32690/CTB_AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/CTB_AES/main.c b/Examples/MAX32690/CTB_AES/main.c index 223fbdce770..df77e3a13db 100644 --- a/Examples/MAX32690/CTB_AES/main.c +++ b/Examples/MAX32690/CTB_AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/Coremark/Makefile b/Examples/MAX32690/Coremark/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Coremark/Makefile +++ b/Examples/MAX32690/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/DMA/Makefile b/Examples/MAX32690/DMA/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/DMA/Makefile +++ b/Examples/MAX32690/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/DMA/main.c b/Examples/MAX32690/DMA/main.c index 830bde4c743..089c5da738e 100644 --- a/Examples/MAX32690/DMA/main.c +++ b/Examples/MAX32690/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/EEPROM_Emulator/Makefile b/Examples/MAX32690/EEPROM_Emulator/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/EEPROM_Emulator/Makefile +++ b/Examples/MAX32690/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/EEPROM_Emulator/include/cache.h b/Examples/MAX32690/EEPROM_Emulator/include/cache.h index 9263b1016d4..e821f3f3ef1 100644 --- a/Examples/MAX32690/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX32690/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX32690_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX32690_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX32690_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX32690/EEPROM_Emulator/include/eeprom.h b/Examples/MAX32690/EEPROM_Emulator/include/eeprom.h index aac9b08ff9b..e3d60be2a39 100644 --- a/Examples/MAX32690/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX32690/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX32690_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX32690_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX32690_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX32690/EEPROM_Emulator/main.c b/Examples/MAX32690/EEPROM_Emulator/main.c index abdce676bf3..8aabba4f422 100644 --- a/Examples/MAX32690/EEPROM_Emulator/main.c +++ b/Examples/MAX32690/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/EEPROM_Emulator/src/cache.c b/Examples/MAX32690/EEPROM_Emulator/src/cache.c index 8fcebd42841..ef9456aaee6 100644 --- a/Examples/MAX32690/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX32690/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX32690/EEPROM_Emulator/src/eeprom.c b/Examples/MAX32690/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX32690/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX32690/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX32690/Flash/Makefile b/Examples/MAX32690/Flash/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Flash/Makefile +++ b/Examples/MAX32690/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Flash/main.c b/Examples/MAX32690/Flash/main.c index 8d69a211000..c41c026c98a 100644 --- a/Examples/MAX32690/Flash/main.c +++ b/Examples/MAX32690/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX32690/Flash_CLI/FreeRTOSConfig.h index 37af39fb0a5..fb4cce92a9a 100644 --- a/Examples/MAX32690/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX32690/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32690/Flash_CLI/Makefile b/Examples/MAX32690/Flash_CLI/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Flash_CLI/Makefile +++ b/Examples/MAX32690/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Flash_CLI/definitions.h b/Examples/MAX32690/Flash_CLI/definitions.h index 9c62f01bfb6..e98b858ca5f 100644 --- a/Examples/MAX32690/Flash_CLI/definitions.h +++ b/Examples/MAX32690/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX32690/Flash_CLI/main.c b/Examples/MAX32690/Flash_CLI/main.c index 10dc047af2a..2ef4422b6c8 100644 --- a/Examples/MAX32690/Flash_CLI/main.c +++ b/Examples/MAX32690/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX32690/FreeRTOSDemo/FreeRTOSConfig.h index a8aba4795ef..3200ffd1c77 100644 --- a/Examples/MAX32690/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX32690/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32690/FreeRTOSDemo/Makefile b/Examples/MAX32690/FreeRTOSDemo/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/FreeRTOSDemo/Makefile +++ b/Examples/MAX32690/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX32690/FreeRTOSDemo/freertos_tickless.c index a8c3a5c508d..3f525e223a5 100644 --- a/Examples/MAX32690/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX32690/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX32690/FreeRTOSDemo/main.c b/Examples/MAX32690/FreeRTOSDemo/main.c index 5a95c9f4609..0e08e66981c 100644 --- a/Examples/MAX32690/FreeRTOSDemo/main.c +++ b/Examples/MAX32690/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/GPIO/Makefile b/Examples/MAX32690/GPIO/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/GPIO/Makefile +++ b/Examples/MAX32690/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/GPIO/main.c b/Examples/MAX32690/GPIO/main.c index 28396a60f2e..a224b5aa4f4 100644 --- a/Examples/MAX32690/GPIO/main.c +++ b/Examples/MAX32690/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32690/HBMC/Makefile b/Examples/MAX32690/HBMC/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/HBMC/Makefile +++ b/Examples/MAX32690/HBMC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/HBMC/main.c b/Examples/MAX32690/HBMC/main.c index a3e2555b694..8b66ef73fb0 100644 --- a/Examples/MAX32690/HBMC/main.c +++ b/Examples/MAX32690/HBMC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32690/HBMC/ramfunc.c b/Examples/MAX32690/HBMC/ramfunc.c index 4f22dc2eb2c..ebbaf1bcf04 100644 --- a/Examples/MAX32690/HBMC/ramfunc.c +++ b/Examples/MAX32690/HBMC/ramfunc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "led.h" diff --git a/Examples/MAX32690/Hash/Makefile b/Examples/MAX32690/Hash/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Hash/Makefile +++ b/Examples/MAX32690/Hash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Hash/main.c b/Examples/MAX32690/Hash/main.c index aec0e4e9d42..cbe53a475ec 100644 --- a/Examples/MAX32690/Hash/main.c +++ b/Examples/MAX32690/Hash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/Hello_World/Makefile b/Examples/MAX32690/Hello_World/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Hello_World/Makefile +++ b/Examples/MAX32690/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Hello_World/main.c b/Examples/MAX32690/Hello_World/main.c index 90fa908fac8..909989e7fa7 100644 --- a/Examples/MAX32690/Hello_World/main.c +++ b/Examples/MAX32690/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/Hello_World_Cpp/Makefile b/Examples/MAX32690/Hello_World_Cpp/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Hello_World_Cpp/Makefile +++ b/Examples/MAX32690/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Hello_World_Cpp/main.cpp b/Examples/MAX32690/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX32690/Hello_World_Cpp/main.cpp +++ b/Examples/MAX32690/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/I2C/Makefile b/Examples/MAX32690/I2C/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/I2C/Makefile +++ b/Examples/MAX32690/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/I2C/main.c b/Examples/MAX32690/I2C/main.c index f2db68c9437..dd20bda7a09 100644 --- a/Examples/MAX32690/I2C/main.c +++ b/Examples/MAX32690/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX32690/I2C_MNGR/FreeRTOSConfig.h index a31cbf1db76..c8fe552cbb2 100644 --- a/Examples/MAX32690/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX32690/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32690/I2C_MNGR/Makefile b/Examples/MAX32690/I2C_MNGR/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/I2C_MNGR/Makefile +++ b/Examples/MAX32690/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.c index 84e6bd1d361..c4ad58f485d 100644 --- a/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.h index e89015ef5fd..87500876e3d 100644 --- a/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX32690/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX32690/I2C_MNGR/main.c b/Examples/MAX32690/I2C_MNGR/main.c index 333a6951f10..fc7e0250057 100644 --- a/Examples/MAX32690/I2C_MNGR/main.c +++ b/Examples/MAX32690/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/I2C_SCAN/Makefile b/Examples/MAX32690/I2C_SCAN/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/I2C_SCAN/Makefile +++ b/Examples/MAX32690/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/I2C_SCAN/main.c b/Examples/MAX32690/I2C_SCAN/main.c index 3957c6cb05d..333c73e5922 100644 --- a/Examples/MAX32690/I2C_SCAN/main.c +++ b/Examples/MAX32690/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. If using EvKit, you must connect the pull-up jumpers - * (JP21 and JP22) to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. If using EvKit, you must connect the pull-up jumpers + * (JP21 and JP22) to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX32690/I2C_Sensor/Makefile b/Examples/MAX32690/I2C_Sensor/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/I2C_Sensor/Makefile +++ b/Examples/MAX32690/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/I2C_Sensor/main.c b/Examples/MAX32690/I2C_Sensor/main.c index 054dd52105a..b42b676bef6 100644 --- a/Examples/MAX32690/I2C_Sensor/main.c +++ b/Examples/MAX32690/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32690/I2S/Makefile b/Examples/MAX32690/I2S/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/I2S/Makefile +++ b/Examples/MAX32690/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/I2S/main.c b/Examples/MAX32690/I2S/main.c index 46a6a378d75..1df63d56dd3 100644 --- a/Examples/MAX32690/I2S/main.c +++ b/Examples/MAX32690/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32690/ICC/Makefile b/Examples/MAX32690/ICC/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/ICC/Makefile +++ b/Examples/MAX32690/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/ICC/main.c b/Examples/MAX32690/ICC/main.c index f927e15f847..b09bbe18147 100644 --- a/Examples/MAX32690/ICC/main.c +++ b/Examples/MAX32690/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32690/LP/Makefile b/Examples/MAX32690/LP/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/LP/Makefile +++ b/Examples/MAX32690/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/LP/lp.ld b/Examples/MAX32690/LP/lp.ld index dc5956f62e0..bd32a20c3a9 100644 --- a/Examples/MAX32690/LP/lp.ld +++ b/Examples/MAX32690/LP/lp.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Examples/MAX32690/LP/main.c b/Examples/MAX32690/LP/main.c index b3f530c6713..6ee166143c2 100644 --- a/Examples/MAX32690/LP/main.c +++ b/Examples/MAX32690/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32690/LPCMP/Makefile b/Examples/MAX32690/LPCMP/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/LPCMP/Makefile +++ b/Examples/MAX32690/LPCMP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/LPCMP/main.c b/Examples/MAX32690/LPCMP/main.c index 3e22f723ef9..21cf0fa8e65 100644 --- a/Examples/MAX32690/LPCMP/main.c +++ b/Examples/MAX32690/LPCMP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/Library_Generate/Makefile b/Examples/MAX32690/Library_Generate/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Library_Generate/Makefile +++ b/Examples/MAX32690/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Library_Generate/gpiolib.c b/Examples/MAX32690/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX32690/Library_Generate/gpiolib.c +++ b/Examples/MAX32690/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX32690/Library_Generate/gpiolib.h b/Examples/MAX32690/Library_Generate/gpiolib.h index 8763aa24725..1a6e0637e61 100644 --- a/Examples/MAX32690/Library_Generate/gpiolib.h +++ b/Examples/MAX32690/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX32690/Library_Use/Makefile b/Examples/MAX32690/Library_Use/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Library_Use/Makefile +++ b/Examples/MAX32690/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Library_Use/lib/include/gpiolib.h b/Examples/MAX32690/Library_Use/lib/include/gpiolib.h index 7333d11d9f7..5e046a04148 100644 --- a/Examples/MAX32690/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX32690/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX32690/Library_Use/main.c b/Examples/MAX32690/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX32690/Library_Use/main.c +++ b/Examples/MAX32690/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX32690/Pulse_Train/Makefile b/Examples/MAX32690/Pulse_Train/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Pulse_Train/Makefile +++ b/Examples/MAX32690/Pulse_Train/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Pulse_Train/main.c b/Examples/MAX32690/Pulse_Train/main.c index fb2505c5d11..cbca4fea145 100644 --- a/Examples/MAX32690/Pulse_Train/main.c +++ b/Examples/MAX32690/Pulse_Train/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/RF_Test/.vscode/flash.gdb b/Examples/MAX32690/RF_Test/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/RF_Test/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/RF_Test/FreeRTOSConfig.h b/Examples/MAX32690/RF_Test/FreeRTOSConfig.h deleted file mode 100644 index f927e494476..00000000000 --- a/Examples/MAX32690/RF_Test/FreeRTOSConfig.h +++ /dev/null @@ -1,131 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32690_RF_TEST_FREERTOSCONFIG_H_ -#define EXAMPLES_MAX32690_RF_TEST_FREERTOSCONFIG_H_ - -#include -#include "max32690.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* CMSIS keeps a global updated with current system clock in Hz */ -#define configCPU_CLOCK_HZ ((uint32_t)IPO_FREQ) - -#define SLEEP_LED 1 -#define DEEPSLEEP_LED 0 - -/* Tick-less idle forces a 32768 Hz RTC-derived SysTick source, and a 256 Hz task tick */ -// #define configUSE_TICKLESS_IDLE 1 - -/* Faster tick rate will result in more CPU interrupts while not in standby mode, but will -increase the amount of time spent in standby mode, thus reducing average power consumption. */ -#ifdef configUSE_TICKLESS_IDLE -#define configTICK_RATE_HZ ((portTickType)10000) -#else -#define configTICK_RATE_HZ ((portTickType)1000) -#endif - -#define configRTC_TICK_RATE_HZ (32768) - -#define configTOTAL_HEAP_SIZE ((size_t)(256 * 1024)) - -#define configMINIMAL_STACK_SIZE ((uint16_t)128) - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_16_BIT_TICKS 0 -#define configUSE_MUTEXES 1 - -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 3) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE - -/* Run time and task stats gathering related definitions. */ -#define configUSE_TRACE_FACILITY 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 0 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_uxTaskPriorityGet 0 -#define INCLUDE_vTaskDelay 1 - -/* # of priority bits (configured in hardware) is provided by CMSIS */ -#define configPRIO_BITS __NVIC_PRIO_BITS - -#define configMAX_PRIORITIES ((0x1 << configPRIO_BITS) - 1) - -/* Only the top three bits are implemented. This is the lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY \ - ((unsigned char)configMAX_PRIORITIES << (8 - configPRIO_BITS)) - -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ((unsigned char)5 << (8 - configPRIO_BITS)) - -/* Alias the default handler names to match CMSIS weak symbols */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#ifdef configUSE_TICKLESS_IDLE -/* Provide routines for tickless idle pre- and post- processing */ -void vPreSleepProcessing(uint32_t *); -void vPostSleepProcessing(uint32_t); -#define configPRE_SLEEP_PROCESSING(idletime) vPreSleepProcessing(&idletime); -#define configPOST_SLEEP_PROCESSING(idletime) vPostSleepProcessing(idletime); -#endif - -/* FreeRTOS+CLI requires this size to be defined, but we do not use it */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1 - -/* Overides FreeRTOS+CLI help command formatting*/ -#define configUSE_CUSTOM_HELP_COMMAND 1 - -#endif // EXAMPLES_MAX32690_RF_TEST_FREERTOSCONFIG_H_ diff --git a/Examples/MAX32690/RF_Test/Makefile b/Examples/MAX32690/RF_Test/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/RF_Test/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/RF_Test/freertos_tickless.c b/Examples/MAX32690/RF_Test/freertos_tickless.c deleted file mode 100644 index b67cc987782..00000000000 --- a/Examples/MAX32690/RF_Test/freertos_tickless.c +++ /dev/null @@ -1,271 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Maxim CMSIS */ -#include "mxc_device.h" -#include "board.h" -#include "mxc_assert.h" -#include "lp.h" -#include "pwrseq_regs.h" -#include "wut.h" -#include "mcr_regs.h" -#include "icc.h" -#include "pb.h" -#include "led.h" -#include "uart.h" - -/* FreeRTOS includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "task.h" - -/* Bluetooth Cordio library */ -#include "pal_timer.h" -#include "pal_uart.h" -#include "pal_bb.h" - -#define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ -#define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ -#define WAKEUP_US 500 /* Deep sleep recovery time, units of us */ - -/* Minimum ticks before SysTick interrupt, units of system clock ticks. - * Convert CPU_CLOCK_HZ to units of ticks per us - */ -#define MIN_SYSTICK (configCPU_CLOCK_HZ / 1000000 /* ticks / us */ * 10 /* us */) - -/* - * Sleep-check function - * - * Your code should over-ride this weak function and return E_NO_ERROR if - * tickless sleep is permissible (ie. no UART/SPI/I2C activity). Any other - * return code will prevent FreeRTOS from entering tickless idle. - */ -int freertos_permit_tickless(void) -{ - /* Can not disable BLE DBB and 32 MHz clock while trim procedure is ongoing */ - if (MXC_WUT_TrimPending() != E_NO_ERROR) { - return E_BUSY; - } - - /* Figure out if the UART is active */ - if (PalUartGetState(PAL_UART_ID_TERMINAL) == PAL_UART_STATE_BUSY) { - return E_BUSY; - } - - /* Prevent characters from being corrupted if still transmitting, - UART will shutdown in deep sleep */ - if (MXC_UART_GetActive(MXC_UART_GET_UART(CONSOLE_UART)) != E_NO_ERROR) { - return E_BUSY; - } - - return E_NO_ERROR; -} - -/* - * This function overrides vPortSuppressTicksAndSleep in portable/.../ARM_CM4F/port.c - * - * DEEPSLEEP mode will stop SysTick from counting, so that can't be - * used to wake up. Instead, calculate a wake-up period for the WUT to - * interrupt the WFI and continue execution. - * - */ -void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) -{ - uint32_t preCapture, postCapture, schUsec, dsTicks, dsWutTicks; - uint64_t bleSleepTicks, idleTicks, dsSysTickPeriods, schUsecElapsed; - bool_t schTimerActive; - - /* We do not currently handle to case where the WUT is slower than the RTOS tick */ - MXC_ASSERT(configRTC_TICK_RATE_HZ >= configTICK_RATE_HZ); - - if (SysTick->VAL < MIN_SYSTICK) { - /* Avoid sleeping too close to a systick interrupt */ - return; - } - - /* Calculate the number of WUT ticks, but we need one to synchronize */ - idleTicks = (uint64_t)(xExpectedIdleTime - 1) * (uint64_t)configRTC_TICK_RATE_HZ / - (uint64_t)configTICK_RATE_HZ; - - if (idleTicks > MAX_WUT_TICKS) { - idleTicks = MAX_WUT_TICKS; - } - - /* Check to see if we meet the minimum requirements for deep sleep */ - if (idleTicks < (MIN_WUT_TICKS + WAKEUP_US)) { - return; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __asm volatile("cpsid i"); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - /* Also check the MXC drivers for any in-progress activity */ - if ((eTaskConfirmSleepModeStatus() == eAbortSleep) || - (freertos_permit_tickless() != E_NO_ERROR)) { - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - - /* Determine if the Bluetooth scheduler is running */ - if (PalTimerGetState() == PAL_TIMER_STATE_BUSY) { - schTimerActive = TRUE; - } else { - schTimerActive = FALSE; - } - - if (!schTimerActive) { - uint32_t ts; - if (PalBbGetTimestamp(&ts)) { - /*Determine if PalBb is active, return if we get a valid time stamp indicating - * that the scheduler is waiting for a PalBb event */ - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); - - return; - } - } - - /* Disable SysTick */ - SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); - - /* Enable wakeup from WUT */ - NVIC_EnableIRQ(WUT0_IRQn); - MXC_LP_EnableWUTAlarmWakeup(); - - /* Determine if we need to snapshot the PalBb clock */ - if (schTimerActive) { - /* Snapshot the current WUT value with the PalBb clock */ - MXC_WUT_Store(); - preCapture = MXC_WUT_GetCount(); - schUsec = PalTimerGetExpTime(); - - /* Adjust idleTicks for the time it takes to restart the BLE hardware */ - idleTicks -= ((WAKEUP_US)*configRTC_TICK_RATE_HZ / 1000000); - - /* Calculate the time to the next BLE scheduler event */ - if (schUsec < WAKEUP_US) { - bleSleepTicks = 0; - } else { - bleSleepTicks = ((uint64_t)schUsec - (uint64_t)WAKEUP_US) * - (uint64_t)configRTC_TICK_RATE_HZ / (uint64_t)BB_CLK_RATE_HZ; - } - } else { - /* Snapshot the current WUT value */ - MXC_WUT_Edge(); - preCapture = MXC_WUT_GetCount(); - bleSleepTicks = 0; - schUsec = 0; - } - - /* Sleep for the shortest tick duration */ - if ((schTimerActive) && (bleSleepTicks < idleTicks)) { - dsTicks = bleSleepTicks; - } else { - dsTicks = idleTicks; - } - - /* Bound the deep sleep time */ - if (dsTicks > MAX_WUT_TICKS) { - dsTicks = MAX_WUT_TICKS; - } - - /* Don't deep sleep if we don't have time */ - if (dsTicks >= MIN_WUT_TICKS) { - /* Arm the WUT interrupt */ - MXC_WUT->cmp = preCapture + dsTicks; - - if (schTimerActive) { - /* Stop the BLE scheduler timer */ - PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); - } - - LED_Off(SLEEP_LED); - LED_Off(DEEPSLEEP_LED); - - MXC_LP_EnterStandbyMode(); - - LED_On(DEEPSLEEP_LED); - LED_On(SLEEP_LED); - - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); - - /* Restore the BB counter */ - MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); - - /* Restart the BLE scheduler timer */ - dsWutTicks = MXC_WUT->cnt - preCapture; - schUsecElapsed = - (uint64_t)dsWutTicks * (uint64_t)1000000 / (uint64_t)configRTC_TICK_RATE_HZ; - - int palTimerStartTicks = schUsec - schUsecElapsed; - if (palTimerStartTicks < 1) { - palTimerStartTicks = 1; - } - PalTimerStart(palTimerStartTicks); - } - } - - /* Recalculate dsWutTicks for the FreeRTOS tick counter update */ - MXC_WUT_Edge(); - postCapture = MXC_WUT_GetCount(); - dsWutTicks = postCapture - preCapture; - - /* - * Advance ticks by # actually elapsed - */ - dsSysTickPeriods = - (uint64_t)dsWutTicks * (uint64_t)configTICK_RATE_HZ / (uint64_t)configRTC_TICK_RATE_HZ; - vTaskStepTick(dsSysTickPeriods); - - /* Re-enable SysTick */ - SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; - - /* Re-enable interrupts - see comments above the cpsid instruction() - above. */ - __asm volatile("cpsie i"); -} diff --git a/Examples/MAX32690/RF_Test/main.c b/Examples/MAX32690/RF_Test/main.c deleted file mode 100644 index 9dda0634df9..00000000000 --- a/Examples/MAX32690/RF_Test/main.c +++ /dev/null @@ -1,912 +0,0 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Main module. - * - * Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved. - * - * Copyright (c) 2019-2020 Packetcraft, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*************************************************************************************************/ -#include "main.h" -/************************************************************************************************** - Definitions -**************************************************************************************************/ -/*! UART TX buffer size */ -#define PLATFORM_UART_TERMINAL_BUFFER_SIZE 2048U -#define FREQ_HOP_PERIOD_US 20000 -#define HISTORY_MEMORY_LENGTH 10 -/* FreeRTOS */ -#define CMD_LINE_BUF_SIZE 100 -#define OUTPUT_BUF_SIZE 512 -#define CONSOLE_UART 0 //EvKit/FTHR -/* Task IDs */ -TaskHandle_t cmd_task_id; -TaskHandle_t tx_task_id; -TaskHandle_t sweep_task_id; -TaskHandle_t help_task_id; -/* FreeRTOS+CLI */ -xSemaphoreHandle rfTestMutex; - -mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(CONSOLE_UART); -unsigned int disable_tickless = 1; /* Enables/disables tick-less mode */ -/************************************************************************************************** - Global Variables -**************************************************************************************************/ - -/* Persistent BB runtime configuration. */ -static BbRtCfg_t mainBbRtCfg; - -/* Persistent LL runtime configuration. */ -static LlRtCfg_t mainLlRtCfg; - -static uint8_t phy = LL_PHY_LE_1M; -static uint8_t phy_str[16]; -static uint8_t packetType_str[16]; -static uint8_t txFreqHopCh; -static uint8_t packetLen = 255; -static uint8_t packetType = LL_TEST_PKT_TYPE_AA; -static int8_t txPower = 10; -/* UART RX */ -char inputBuffer[CMD_LINE_BUF_SIZE]; /* Buffer for input */ -unsigned int bufferIndex; /* Index into buffer */ -char receivedChar; -/* CLI escape sequences*/ -uint8_t backspace[] = "\x08 \x08"; -enum { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW }; -/* CLI History */ -cmd_history_t cmd_history[HISTORY_MEMORY_LENGTH]; -static uint32_t escCounter = 0; -static uint8_t keyBoardSequenceBuff[3] = { 0 }; -queue_t historyQueue; - -/* CLI Prompt */ -test_t activeTest = NO_TEST; -bool clearScreen = false; -bool pausePrompt = false; - -/************************************************************************************************** - Functions -**************************************************************************************************/ -/* Physical layer functions. */ -extern void llc_api_set_txpower(int8_t power); -extern void dbb_seq_select_rf_channel(uint32_t rf_channel); -extern void llc_api_tx_ldo_setup(void); -extern void dbb_seq_tx_enable(void); -extern void dbb_seq_tx_disable(void); -extern const CLI_Command_Definition_t xCommandList[]; -void vRegisterCLICommands(void); -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPhyStr(uint8_t phy) -{ - switch (phy) { - case LL_TEST_PHY_LE_1M: - default: - memcpy(phy_str, "1M PHY", 7); - break; - case LL_TEST_PHY_LE_2M: - memcpy(phy_str, "2M PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S8: - memcpy(phy_str, "S8 PHY", 7); - break; - case LL_TEST_PHY_LE_CODED_S2: - memcpy(phy_str, "S2 PHY", 7); - break; - } - return phy_str; -} -/*************************************************************************************************/ -/*! - * \fn Get PHY String. - * - * \brief Convert the PHY definition to a string. - * - * \param phy PHY definition. - * - * \return Pointer to string describing the PHY. - */ -/*************************************************************************************************/ -static uint8_t *getPacketTypeStr(void) -{ - switch (packetType) { - case LL_TEST_PKT_TYPE_PRBS9: - memcpy(packetType_str, "PRBS9", 6); - break; - case LL_TEST_PKT_TYPE_0F: - memcpy(packetType_str, "0x0F", 5); - break; - case LL_TEST_PKT_TYPE_55: - memcpy(packetType_str, "0x55", 5); - break; - case LL_TEST_PKT_TYPE_PRBS15: - memcpy(packetType_str, "PRBS15", 7); - break; - case LL_TEST_PKT_TYPE_FF: - memcpy(packetType_str, "0xFF", 5); - break; - case LL_TEST_PKT_TYPE_00: - memcpy(packetType_str, "0x00", 5); - break; - case LL_TEST_PKT_TYPE_F0: - memcpy(packetType_str, "0xF0", 5); - break; - case LL_TEST_PKT_TYPE_AA: - default: - memcpy(packetType_str, "0xAA", 5); - break; - } - return packetType_str; -} -/*************************************************************************************************/ -/*! - * \fn Timer 2 interrupts handler. - * - * \brief Controls the frequency hopping. - * - * \param None. - * - * \return None. - */ -/*************************************************************************************************/ -void TMR2_IRQHandler(void) -{ - int res; - - MXC_TMR_TO_Clear(MXC_TMR2); - - /* Start the next channel */ - res = LlEnhancedTxTest(txFreqHopCh++, packetLen, packetType, phy, 0); - if (res != LL_SUCCESS) - APP_TRACE_INFO2("res = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - - /* Wrap the channels */ - if (txFreqHopCh == 40) - txFreqHopCh = 0; - - /* Restart the timeout */ - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); -} -/*************************************************************************************************/ -/*! - * \fn processEscSequence. - * - * \brief Compares keyboard sequence to ansi escape codes. - * - * \param seq keyboard sequence. - * - * \return None. - */ -/*************************************************************************************************/ -uint8_t processEscSequence(uint8_t *seq) -{ - uint8_t retVal = 0; - - uint8_t arrows[4][3] = { - /* Order of arrows here alligns with enum uptop */ - { 27, 91, 65 }, /* up arrow */ - - { 27, 91, 66 }, /* down arrow */ - - { 27, 91, 67 }, /* right arrow */ - - { 27, 91, 68 }, /* left arrow */ - }; - - /*arrows*/ - for (int arrowKey = 0; arrowKey < 4; arrowKey++) { //cycle through 4 arrow keys - for (int i = 0; i < 3; i++) { //cycle thorugh each index of each arrow key sequence - //compare each index of arrow key to each index of typed sequence buffer - for (int j = 0; j < 3; j++) { - if (seq[j] == arrows[arrowKey][i]) { - retVal++; - break; - } - } - } - /* If 3 motches found */ - if (retVal == 3) - return arrowKey; - else - retVal = 0; - } - - return 0xFF; -} -/*************************************************************************************************/ -/*! - * \fn cmdHistoryAdd. - * - * \brief adds latest command to command history buffer - * - * \param q pointer to the circular buffer holding command history - * \param cmd pointer to the command string to be added - * - * \return None. - */ -/*************************************************************************************************/ -void cmdHistoryAdd(queue_t *q, const uint8_t *cmd) -{ - /* clear command history slot of any previous data */ - memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); - /* copy new command histroy */ - memcpy(&q->command[q->head], cmd, strlen((const char *)cmd)); - q->command[q->head].length = strlen((const char *)cmd); - - /* update head, and push tail up if we have looped back around */ - q->head = (q->head + 1) % HISTORY_MEMORY_LENGTH; - if (q->head == q->tail) { - q->tail = (q->tail + 1) % HISTORY_MEMORY_LENGTH; - } - memset(&q->command[q->head].cmd, 0x00, CMD_LINE_BUF_SIZE); - /* update pointer */ - q->queuePointer = historyQueue.head; -} -/*************************************************************************************************/ -/*! - * \fn updateQueuePointer. - * - * \brief Updates an internal marker pointing to historical command to be printed, based on up/down arrow - * - * \param q pointer to the circular buffer holding command history - * - * \param upArrow flag used to upated the queuePoniter delimiting which command to print - * - * \return None. - */ -/*************************************************************************************************/ -void updateQueuePointer(queue_t *q, bool upArrow) -{ - if (upArrow) { - /* empty queue or reached tail already */ - if (q->head == q->tail || q->queuePointer == q->tail) - return; - if (q->queuePointer == 0) - q->queuePointer = HISTORY_MEMORY_LENGTH - 1; - else - q->queuePointer = (q->queuePointer - 1) % HISTORY_MEMORY_LENGTH; - - } else { - /* empty queue or reached head already */ - if (q->head == q->tail || q->queuePointer == q->head) - return; - q->queuePointer = (q->queuePointer + 1) % HISTORY_MEMORY_LENGTH; - } -} -/*************************************************************************************************/ -/*! - * \fn printHistory. - * - * \brief prints previously typed commands - * - * \param upArrow flag used to upated the queuePoniter delimiting which command to print - * - * \return None. - */ -/*************************************************************************************************/ -void printHistory(bool upArrow) -{ - uint8_t numCharsToDelete = strlen(inputBuffer); - uint8_t moveForwardCount = 0; - updateQueuePointer(&historyQueue, upArrow); - uint8_t right[] = "\x1b\x5b\x43"; - /* no history yet */ - if (historyQueue.queuePointer < 0) - return; - /* if cursor is not at the end then move it forward */ - if (bufferIndex != strlen(inputBuffer)) { - moveForwardCount = strlen(inputBuffer) - bufferIndex; - for (int i = 0; i < moveForwardCount; i++) { - WsfBufIoWrite((const uint8_t *)right, sizeof(right)); - vTaskDelay(1); //give UART time to print - bufferIndex++; - } - } - /* send backspace to delete any currently typed text */ - if (numCharsToDelete) { - for (int i = 0; i < numCharsToDelete; i++) printf("%s", backspace); - } - /* copy history into inputBuffer */ - memset(inputBuffer, 0x00, 100); - memcpy(inputBuffer, historyQueue.command[historyQueue.queuePointer].cmd, - strlen((const char *)historyQueue.command[historyQueue.queuePointer].cmd)); - printf("%s", inputBuffer); - bufferIndex = strlen(inputBuffer); - - fflush(stdout); -} - -/*************************************************************************************************/ -/*! - * \fn cls - * - * \brief Clears screen - * - * \return None. - */ -/*************************************************************************************************/ -void cls(void) -{ - char str[7]; - sprintf(str, "\033[2J"); - WsfBufIoWrite((const uint8_t *)str, 5); - clearScreen = false; -} -/*************************************************************************************************/ -/*! - * \fn prompt - * - * \brief Prints prompt to screen, indicates if a test is active - * - * \return None. - */ -/*************************************************************************************************/ -void prompt(void) -{ - char str[25]; - uint8_t len = 0; - - if (pausePrompt) - return; - - if (activeTest) { - sprintf(str, "\r\n(active test) cmd:"); - len = 21; - } else { - sprintf(str, "\r\ncmd:"); - len = 7; - } - - fflush(stdout); - if (clearScreen) { - cls(); - } - //using app_trace would add newline after prompt which does not look right - WsfBufIoWrite((const uint8_t *)str, len); -} -/*************************************************************************************************/ -/*! - * \fn printHint - * - * \brief Prints the help string of any command matching the current inputbuffer - * - * \param buff pointer to the inputbuffer - * - * \return None. - */ -/*************************************************************************************************/ -void printHint(char *buff) -{ - int i = 0; - uint8_t bufflen = strlen((const char *)buff); - bool foundMatch = false; - do { - if (memcmp(buff, xCommandList[i].pcCommand, bufflen) == 0 && bufflen > 0) { - if (foundMatch == false) - printf("\r\n"); - printf("\r\n> %s : %s", xCommandList[i].pcCommand, xCommandList[i].pcHelpString); - foundMatch = true; - } - i++; - } while (xCommandList[i].pcCommand != NULL); - if (foundMatch) { - /* print new prompt with what user had previouslly typed */ - printf("\r\n"); - prompt(); - vTaskDelay(5); - printf("%s", buff); - fflush(stdout); - } -} -/*************************************************************************************************/ -/*! - * \fn Process the Console RX - * - * \brief State machine for the console inputs. - * - * \param rxByte Character received from the console. - * - * \return None. - */ -/*************************************************************************************************/ -static void processConsoleRX(uint8_t rxByte) -{ - static uint32_t i = 0; - - BaseType_t xHigherPriorityTaskWoken; - // static uint8_t keyBoardSequenceBuff[3] = {0}; - receivedChar = rxByte; - keyBoardSequenceBuff[i++ % 3] = rxByte; - - // TODO put all of this in command line task - /* if received esc character start escape sequence counter */ - if (rxByte == 27) - escCounter++; - - /* Wake the task */ - xHigherPriorityTaskWoken = pdFALSE; - vTaskNotifyGiveFromISR(cmd_task_id, &xHigherPriorityTaskWoken); - portYIELD_FROM_ISR(xHigherPriorityTaskWoken); -} -/*************************************************************************************************/ -/*! - * \brief Load runtime configuration. - */ -/*************************************************************************************************/ -static void mainLoadConfiguration(void) -{ - PalBbLoadCfg((PalBbCfg_t *)&mainBbRtCfg); - LlGetDefaultRunTimeCfg(&mainLlRtCfg); - PalCfgLoadData(PAL_CFG_ID_LL_PARAM, &mainLlRtCfg.maxAdvSets, sizeof(LlRtCfg_t) - 9); - PalCfgLoadData(PAL_CFG_ID_BLE_PHY, &mainLlRtCfg.phy2mSup, 4); - - /* Set 5.1 requirements. */ - mainLlRtCfg.btVer = LL_VER_BT_CORE_SPEC_5_0; - - /* Set the 32k sleep clock accuracy into one of the following bins, default is 20 - HCI_CLOCK_500PPM - HCI_CLOCK_250PPM - HCI_CLOCK_150PPM - HCI_CLOCK_100PPM - HCI_CLOCK_75PPM - HCI_CLOCK_50PPM - HCI_CLOCK_30PPM - HCI_CLOCK_20PPM - */ - mainBbRtCfg.clkPpm = 20; -} -/*************************************************************************************************/ -/*! - * \brief Initialize WSF. - */ -/*************************************************************************************************/ -static void mainWsfInit(void) -{ - /* +12 for message headroom, + 2 event header, +255 maximum parameter length. */ - const uint16_t maxRptBufSize = 12 + 2 + 255; - - /* +12 for message headroom, +ISO Data Load, +4 for header. */ - const uint16_t dataBufSize = - 12 + HCI_ISO_DL_MAX_LEN + mainLlRtCfg.maxAclLen + 4 + BB_DATA_PDU_TAILROOM; - -/* Use single pool for data buffers. */ -#if (BT_VER > 9) - WSF_ASSERT(mainLlRtCfg.maxAclLen == mainLlRtCfg.maxIsoSduLen); -#endif - /* Ensure pool buffers are ordered correctly. */ - WSF_ASSERT(maxRptBufSize < dataBufSize); - - wsfBufPoolDesc_t poolDesc[] = { - { 16, 8 }, - { 32, 4 }, - { 128, mainLlRtCfg.maxAdvReports }, - { maxRptBufSize, mainLlRtCfg.maxAdvReports }, /* Extended reports. */ - { dataBufSize, mainLlRtCfg.numTxBufs + mainLlRtCfg.numRxBufs + mainLlRtCfg.numIsoTxBuf + - mainLlRtCfg.numIsoRxBuf } - }; - - const uint8_t numPools = sizeof(poolDesc) / sizeof(poolDesc[0]); - - /* Initial buffer configuration. */ - uint16_t memUsed; - memUsed = WsfBufInit(numPools, poolDesc); - WsfHeapAlloc(memUsed); - WsfOsInit(); - WsfTimerInit(); -#if (WSF_TRACE_ENABLED == TRUE) - WsfTraceRegisterHandler(WsfBufIoWrite); - WsfTraceEnable(TRUE); -#endif -} -/*************************************************************************************************/ -void vCmdLineTask(void *pvParameters) -{ - unsigned char tmp; - unsigned int x; - int uartReadLen; - char output[OUTPUT_BUF_SIZE]; /* Buffer for output */ - BaseType_t xMore; - mxc_uart_req_t async_read_req; - memset(inputBuffer, 0, CMD_LINE_BUF_SIZE); - bufferIndex = 0; - - /* Register available CLI commands */ - vRegisterCLICommands(); - vTaskDelay(100); /* give time for ll api to print things */ - fflush(stdout); - /* clear screen and print help table */ - cls(); - pausePrompt = true; - xTaskNotify(help_task_id, 0xFF, eSetBits); - - memset(cmd_history, 0, sizeof(cmd_history_t) * HISTORY_MEMORY_LENGTH); - historyQueue.head = 0; - historyQueue.tail = 0; - while (1) { - ulTaskNotifyTake(pdTRUE, portMAX_DELAY); - - tmp = receivedChar; - /* Check that we have a valid character */ - if (escCounter > 0 && escCounter < 4) { - switch (processEscSequence(keyBoardSequenceBuff)) { - case UP_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - printHistory(true); - break; - - case DOWN_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - printHistory(false); - break; - - case RIGHT_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - if (bufferIndex < strlen(inputBuffer)) { - uint8_t right[] = "\x1b\x5b\x43"; - WsfBufIoWrite((const uint8_t *)right, sizeof(right)); - bufferIndex++; - } - escCounter = 0; - - break; - case LEFT_ARROW: - memset(keyBoardSequenceBuff, 0, 3); - escCounter = 0; - if (bufferIndex > 0) { - uint8_t left[] = "\x1b\x5b\x44"; - WsfBufIoWrite((const uint8_t *)left, sizeof(left)); - bufferIndex--; - } - break; - - default: - escCounter++; - break; - } - } else { - escCounter = 0; - if (async_read_req.rxCnt > 0) { - /* Process character */ - do { - /* 0x08 BS linux , 127 Del windows/putty */ - if (tmp == 0x08 || tmp == 127) { - /* Backspace */ - if (bufferIndex > 0) { - bufferIndex--; - memset(&inputBuffer[bufferIndex], 0x00, 1); - WsfBufIoWrite((const uint8_t *)backspace, sizeof(backspace)); - } - fflush(stdout); - } else if (tmp == 0x09) - /* tab hint */ - { - printHint(inputBuffer); - - } - /*since freq hop does not allow user to see what they are typing, simply typing - 'e' without the need to press enter willl stop the frequency hopping test */ - else if ((char)tmp == 'e' && activeTest == BLE_FHOP_TEST) { - LlEndTest(NULL); - MXC_TMR_Stop(MXC_TMR2); - activeTest = NO_TEST; - - xSemaphoreGive(rfTestMutex); - prompt(); - } else if (tmp == 0x03) { - /* ^C abort */ - bufferIndex = 0; - APP_TRACE_INFO0("^C"); - prompt(); - } else if ((tmp == '\r') || (tmp == '\n')) { - historyQueue.queuePointer = historyQueue.head; - if (strlen(inputBuffer) > 0) { - APP_TRACE_INFO0("\r\n"); - /* save to history */ - cmdHistoryAdd(&historyQueue, (const uint8_t *)inputBuffer); - /* Evaluate */ - do { - xMore = FreeRTOS_CLIProcessCommand(inputBuffer, output, - OUTPUT_BUF_SIZE); - for (x = 0; - x < (xMore == pdTRUE ? OUTPUT_BUF_SIZE : strlen(output)); - x++) { - putchar(*(output + x)); - } - } while (xMore != pdFALSE); - } - /* New prompt */ - bufferIndex = 0; - memset(inputBuffer, 0x00, 100); - prompt(); - } else if (bufferIndex < CMD_LINE_BUF_SIZE) { - putchar(tmp); - inputBuffer[bufferIndex++] = tmp; - fflush(stdout); - - } else { - /* Throw away data and beep terminal */ - putchar(0x07); - fflush(stdout); - } - uartReadLen = 1; - /* If more characters are ready, process them here */ - } while ((MXC_UART_GetRXFIFOAvailable(MXC_UART_GET_UART(CONSOLE_UART)) > 0) && - (MXC_UART_Read(ConsoleUART, (uint8_t *)&tmp, &uartReadLen) == 0)); - } - } - } -} -/*************************************************************************************************/ -void txTestTask(void *pvParameters) -{ - static int res = 0xff; - uint32_t notifVal = 0; - tx_config_t testConfig; - char str[80]; - while (1) { - /* Wait for notification to initiate TX/RX */ - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - /* Get test settings from the notification value */ - testConfig.allData = notifVal; - - if (testConfig.testType == BLE_TX_TEST) { - sprintf(str, "Transmit RF channel %d on Freq %dMHz bytes/pkt : ", testConfig.channel, - getFreqFromRfChannel(testConfig.channel), packetLen); - strcat(str, (const char *)getPacketTypeStr()); - } else { - sprintf(str, "Receive RF channel %d Freq %dMHz: ", testConfig.channel, - getFreqFromRfChannel(testConfig.channel)); - } - strcat(str, " : "); - strcat(str, (const char *)getPhyStr(phy)); - APP_TRACE_INFO1("%s", str); - - /* stat test */ - if (testConfig.testType == BLE_TX_TEST) { - res = LlEnhancedTxTest(testConfig.channel, packetLen, packetType, phy, 0); - } else { - res = LlEnhancedRxTest(testConfig.channel, phy, 0, 0); - } - APP_TRACE_INFO2("result = %u %s", res, res == LL_SUCCESS ? "(SUCCESS)" : "(FAIL)"); - /* if duration value was given then let the test run that amount of time and end */ - if (testConfig.duration_ms) { - vTaskDelay(testConfig.duration_ms); - LlEndTest(NULL); - xSemaphoreGive(rfTestMutex); - } - pausePrompt = false; - - prompt(); - } -} -/*************************************************************************************************/ -void sweepTestTask(void *pvParameters) -{ - uint32_t notifVal = 0; - sweep_config_t sweepConfig; - - while (1) { - /* Wait for notification to initiate sweep */ - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - sweepConfig.allData = notifVal; - APP_TRACE_INFO3("\r\nStarting TX sweep from Ch %d to Ch %d @ %d ms per channel", - sweepConfig.start_channel, sweepConfig.end_channel, - sweepConfig.duration_per_ch_ms); - - char str[6] = ""; - - strcat(str, (const char *)getPhyStr(phy)); - /* sweep channels */ - for (int i = sweepConfig.start_channel; i <= sweepConfig.end_channel; i++) { - APP_TRACE_INFO3( - "\r\n-----------------| RF channel %d %s Freq: %dMHz |----------------------\r\n", - i, str, getFreqFromRfChannel(i)); - - LlEnhancedTxTest(i, packetLen, packetType, phy, 0); - vTaskDelay(sweepConfig.duration_per_ch_ms); - LlEndTest(NULL); - xSemaphoreGive(rfTestMutex); - vTaskDelay(50); /* give console time to print end of test reuslts */ - } - activeTest = NO_TEST; - pausePrompt = false; - prompt(); - } -} -/*************************************************************************************************/ -void helpTask(void *pvParameters) -{ - uint32_t notifVal = 0; - while (1) { - xTaskNotifyWait(0, 0xFFFFFFFF, ¬ifVal, portMAX_DELAY); - - // clang-format off - printf("┌─────────┬──────────────────────────────────┬───────────────────────────────────────────────────────â”\r\n"); - printf("│ Command │ parameters [optional] │ description │\r\n"); - printf("├─────────┼──────────────────────────────────┼───────────────────────────────────────────────────────┤\r\n"); - printf("│ cls │ N/A │ clears the screen │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ constTx │ │ Constant TX on given channel. │\r\n"); - printf("│ │ ex: constTx 0 1M │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ e │ N/A │ Ends any active RX/TX/Constant/Freq.hop RF test │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ ps │ N/A │ Display freeRTOS task stats │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ rx │ │ RX test on given channel. │\r\n"); - printf("│ │ ex: rx 0 2M 500 │ Duration of 0 is max duration until stopped │\r\n"); - printf("│ │ │ (channel: 0-39 ) (phy: 1M 2M S2 S8) │\r\n"); - printf("│ │ │ (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ sweep │ │ Sweeps TX tests through a range of RF channels given │\r\n"); - printf("│ │ │ their order of appearance on the spectrum. │\r\n"); - printf("│ │ ex: sweep 0 10 255 FF 2M 500 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); - printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); - printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ tx │ │ TX test on given RF channel. │\r\n"); - printf("│ │ │ Duration of 0 is max duration until stopped │\r\n"); - printf("│ │ ex: tx 0 255 FF 2M 1000 │ (channel: 0-39 ) (packet len: 0-255) │\r\n"); - printf("│ │ │ (packet type: PRBS9,PRBS15,00,FF,F0,0F,55,AA) │\r\n"); - printf("│ │ │ (phy: 1M 2M S2 S8) (duaration in ms: 0 65535 ) │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ power │ │ Select transmit power. Supported power levels (dBm) │\r\n"); - printf("│ │ ex: power -10 │ -10 , 0 , 4 │\r\n"); - printf("│ │ │ │\r\n"); - printf("│ help │ N/A │ Displays this help table │\r\n"); - printf("└─────────┴──────────────────────────────────┴───────────────────────────────────────────────────────┘\r\n"); - // clang-format on - - pausePrompt = false; - prompt(); - } -} -/*************************************************************************************************/ -void setPhy(uint8_t newPhy) -{ - phy = newPhy; - char str[20] = "> Phy now set to "; - strcat(str, (phy == LL_TEST_PHY_LE_1M) ? "1M PHY" : - (phy == LL_TEST_PHY_LE_2M) ? "2M PHY" : - (phy == LL_TEST_PHY_LE_CODED_S8) ? "S8 PHY" : - (phy == LL_TEST_PHY_LE_CODED_S2) ? "S2 PHY" : - ""); - APP_TRACE_INFO1("%s", str); -} -/*************************************************************************************************/ -void startFreqHopping(void) -{ - NVIC_EnableIRQ(TMR2_IRQn); - MXC_TMR_TO_Start(MXC_TMR2, FREQ_HOP_PERIOD_US); - MXC_TMR_EnableInt(MXC_TMR2); -} /*************************************************************************************************/ -void setPacketLen(uint8_t len) -{ - packetLen = len; - APP_TRACE_INFO1("> Packet length set to %d", len); -} -/*************************************************************************************************/ -void setPacketType(uint8_t type) -{ - packetType = type; - APP_TRACE_INFO1("> Packet type set to %s", getPacketTypeStr()); -} -/*************************************************************************************************/ -void setTxPower(int8_t power) -{ - // TODO : validate value - txPower = power; - llc_api_set_txpower((int8_t)power); - LlSetAdvTxPower((int8_t)power); - printf("> Power set to %d dBm\n", power); -} -/*************************************************************************************************/ -void printConfigs(void) -{ - printf("-----| Current RF Configrations |-----\r\n"); - printf("Phy : %s \r\nPayload packet : %s\r\nPayload length : %d \r\nTX Power : %d dbm\r\n", - getPhyStr(phy), getPacketTypeStr(), packetLen, txPower); -} -/*************************************************************************************************/ -/*! - * \brief Main entry point. - */ -/*************************************************************************************************/ -int main(void) -{ - uint32_t memUsed; - - mainLoadConfiguration(); - mainWsfInit(); - -#if (WSF_TRACE_ENABLED == TRUE) - memUsed = WsfBufIoUartInit(WsfHeapGetFreeStartAddress(), PLATFORM_UART_TERMINAL_BUFFER_SIZE); - WsfHeapAlloc(memUsed); -#endif - - LlInitRtCfg_t llCfg = { .pBbRtCfg = &mainBbRtCfg, - .wlSizeCfg = 4, - .rlSizeCfg = 4, - .plSizeCfg = 4, - .pLlRtCfg = &mainLlRtCfg, - .pFreeMem = WsfHeapGetFreeStartAddress(), - .freeMemAvail = WsfHeapCountAvailable() }; - - memUsed = LlInitControllerInit(&llCfg); - WsfHeapAlloc(memUsed); - - bdAddr_t bdAddr; - PalCfgLoadData(PAL_CFG_ID_BD_ADDR, bdAddr, sizeof(bdAddr_t)); - /* Coverity[uninit_use_in_call] */ - LlSetBdAddr((uint8_t *)&bdAddr); - - /* Register the UART RX request */ - WsfBufIoUartRegister(processConsoleRX); - - /* FreeRTOS */ - rfTestMutex = xSemaphoreCreateMutex(); - if (rfTestMutex == NULL) { - printf("xSemaphoreCreateMutex failed to create a mutex.\n"); - printf("necessary for operation...\r\n"); - while (1) { - //hang here.... - } - } - xTaskCreate(vCmdLineTask, (const char *)"CmdLineTask", - 1024 + CMD_LINE_BUF_SIZE + OUTPUT_BUF_SIZE, NULL, tskIDLE_PRIORITY + 1, - &cmd_task_id); - // TX tranismit test task - xTaskCreate(txTestTask, (const char *)"Tx Task", 1024, NULL, tskIDLE_PRIORITY + 1, &tx_task_id); - - // Sweep test task - xTaskCreate(sweepTestTask, (const char *)"Sweep Task", 1024, NULL, tskIDLE_PRIORITY + 1, - &sweep_task_id); - - // help task - xTaskCreate(helpTask, (const char *)"Help Task", 1024, NULL, tskIDLE_PRIORITY + 1, - &help_task_id); - - /* Start scheduler */ - APP_TRACE_INFO0(">> Starting scheduler.\r\n"); - - vTaskStartScheduler(); - - return 0; -} -/*************************************************************************************************/ -/*! - * \brief Calculates frequency of given RF channel - * \return Returns frequency of given RF channel - */ -/*************************************************************************************************/ -uint16_t getFreqFromRfChannel(uint8_t ch) -{ - return 2402 + (ch * 2); -} \ No newline at end of file diff --git a/Examples/MAX32690/RF_Test/main.h b/Examples/MAX32690/RF_Test/main.h deleted file mode 100644 index 677ba0d82a1..00000000000 --- a/Examples/MAX32690/RF_Test/main.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef _MAIN_H_ -#define _MAIN_H_ - -#include -#include -#include -#include "ll_init_api.h" -#include "ll_api.h" -#include "chci_tr.h" -#include "lhci_api.h" -#include "hci_defs.h" -#include "wsf_assert.h" -#include "wsf_buf.h" -#include "wsf_heap.h" -#include "wsf_timer.h" -#include "wsf_trace.h" -#include "wsf_bufio.h" -#include "bb_ble_sniffer_api.h" -#include "pal_bb.h" -#include "pal_cfg.h" -#include "tmr.h" -#include "wut_regs.h" -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "portmacro.h" -#include "task.h" -#include "semphr.h" -#include "FreeRTOS_CLI.h" -#include "uart.h" -#include "mxc_delay.h" -#include "mxc_errors.h" - -typedef enum uint8_t { - NO_TEST, - BLE_RX_TEST, - BLE_TX_TEST, - BLE_CONST_TX, - BLE_SWEEP_TEST, - BLE_FHOP_TEST, -} test_t; - -typedef union { - struct { - uint16_t duration_ms; - uint8_t channel; - test_t testType; - }; - uint32_t allData; -} tx_config_t; - -typedef union { - struct { - uint8_t start_channel; - uint8_t end_channel; - uint16_t duration_per_ch_ms; - }; - uint32_t allData; -} sweep_config_t; - -typedef struct { - uint8_t cmd[100]; - uint8_t length; -} cmd_history_t; - -typedef struct { - cmd_history_t command[10]; - uint8_t head; - uint8_t tail; - int queuePointer; -} queue_t; - -void setPhy(uint8_t newPhy); -void startFreqHopping(void); -void setPacketLen(uint8_t len); -void setPacketType(uint8_t type); -void setTxPower(int8_t power); -void printConfigs(void); -uint16_t getFreqFromRfChannel(uint8_t ch); -#endif \ No newline at end of file diff --git a/Examples/MAX32690/RTC/Makefile b/Examples/MAX32690/RTC/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/RTC/Makefile +++ b/Examples/MAX32690/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/RTC/main.c b/Examples/MAX32690/RTC/main.c index ce53949891f..52530f2ce49 100644 --- a/Examples/MAX32690/RTC/main.c +++ b/Examples/MAX32690/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/RTC_Backup/Makefile b/Examples/MAX32690/RTC_Backup/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/RTC_Backup/Makefile +++ b/Examples/MAX32690/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/RTC_Backup/main.c b/Examples/MAX32690/RTC_Backup/main.c index bce40754a96..2bb48e442c6 100644 --- a/Examples/MAX32690/RTC_Backup/main.c +++ b/Examples/MAX32690/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/RV_ARM_Loader/Makefile b/Examples/MAX32690/RV_ARM_Loader/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/RV_ARM_Loader/Makefile +++ b/Examples/MAX32690/RV_ARM_Loader/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/RV_ARM_Loader/main.c b/Examples/MAX32690/RV_ARM_Loader/main.c index c6ba02a877b..964a41d49fb 100644 --- a/Examples/MAX32690/RV_ARM_Loader/main.c +++ b/Examples/MAX32690/RV_ARM_Loader/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/SCPA_OTP_Dump/Makefile b/Examples/MAX32690/SCPA_OTP_Dump/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/SCPA_OTP_Dump/Makefile +++ b/Examples/MAX32690/SCPA_OTP_Dump/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/SCPA_OTP_Dump/main.c b/Examples/MAX32690/SCPA_OTP_Dump/main.c index c0b15107995..6eaed3b4d6c 100644 --- a/Examples/MAX32690/SCPA_OTP_Dump/main.c +++ b/Examples/MAX32690/SCPA_OTP_Dump/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/SCPA_OTP_Dump/utils.c b/Examples/MAX32690/SCPA_OTP_Dump/utils.c index 3a84ee68f25..ff7ccf8019a 100644 --- a/Examples/MAX32690/SCPA_OTP_Dump/utils.c +++ b/Examples/MAX32690/SCPA_OTP_Dump/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32690/SCPA_OTP_Dump/utils.h b/Examples/MAX32690/SCPA_OTP_Dump/utils.h index 94742822f2e..fae1c50e64b 100644 --- a/Examples/MAX32690/SCPA_OTP_Dump/utils.h +++ b/Examples/MAX32690/SCPA_OTP_Dump/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_SCPA_OTP_DUMP_UTILS_H_ diff --git a/Examples/MAX32690/SPI/Makefile b/Examples/MAX32690/SPI/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/SPI/Makefile +++ b/Examples/MAX32690/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/SPI/main.c b/Examples/MAX32690/SPI/main.c index d6b047afce5..3fe7829e035 100644 --- a/Examples/MAX32690/SPI/main.c +++ b/Examples/MAX32690/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX32690/TFT_Demo/Makefile b/Examples/MAX32690/TFT_Demo/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/TFT_Demo/Makefile +++ b/Examples/MAX32690/TFT_Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/TFT_Demo/main.c b/Examples/MAX32690/TFT_Demo/main.c index 03fecd4b820..c678e9531ff 100644 --- a/Examples/MAX32690/TFT_Demo/main.c +++ b/Examples/MAX32690/TFT_Demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/TFT_Demo/resources/bitmap.h b/Examples/MAX32690/TFT_Demo/resources/bitmap.h index d385d7cae8b..a0ba681c6b5 100644 --- a/Examples/MAX32690/TFT_Demo/resources/bitmap.h +++ b/Examples/MAX32690/TFT_Demo/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_TFT_DEMO_RESOURCES_BITMAP_H_ -#define EXAMPLES_MAX78000_TFT_DEMO_RESOURCES_BITMAP_H_ +#ifndef EXAMPLES_MAX32690_TFT_DEMO_RESOURCES_BITMAP_H_ +#define EXAMPLES_MAX32690_TFT_DEMO_RESOURCES_BITMAP_H_ // bitmaps id #define check_empty_bg_white_bmp 0 @@ -86,4 +104,4 @@ #define urw_gothic_13_grey_bg_white 2 #define urw_gothic_13_white_bg_grey 3 -#endif // EXAMPLES_MAX78000_TFT_DEMO_RESOURCES_BITMAP_H_ +#endif // EXAMPLES_MAX32690_TFT_DEMO_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/bmp2c.py b/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/bmp2c.py +++ b/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/image_rgb565.c b/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/image_rgb565.c index 250d80a0e26..074cceedf32 100644 --- a/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/image_rgb565.c +++ b/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/image_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char image_rgb565[4036] = { diff --git a/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/template.txt b/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/template.txt +++ b/Examples/MAX32690/TFT_Demo/resources/tft_demo/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX32690/TFT_Demo/resources/tft_demo/logo_rgb565.c b/Examples/MAX32690/TFT_Demo/resources/tft_demo/logo_rgb565.c index 8aeb67ba8fd..c688d7d8a9e 100644 --- a/Examples/MAX32690/TFT_Demo/resources/tft_demo/logo_rgb565.c +++ b/Examples/MAX32690/TFT_Demo/resources/tft_demo/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[32772] = { diff --git a/Examples/MAX32690/TMR/Makefile b/Examples/MAX32690/TMR/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/TMR/Makefile +++ b/Examples/MAX32690/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/TMR/main.c b/Examples/MAX32690/TMR/main.c index 32f8a43a2a0..4d12833cd6b 100644 --- a/Examples/MAX32690/TMR/main.c +++ b/Examples/MAX32690/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/TRNG/Makefile b/Examples/MAX32690/TRNG/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/TRNG/Makefile +++ b/Examples/MAX32690/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/TRNG/main.c b/Examples/MAX32690/TRNG/main.c index 88faf8aeb49..2bb59f0050d 100644 --- a/Examples/MAX32690/TRNG/main.c +++ b/Examples/MAX32690/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32690/Temp_Monitor/Makefile b/Examples/MAX32690/Temp_Monitor/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Temp_Monitor/Makefile +++ b/Examples/MAX32690/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Temp_Monitor/main.c b/Examples/MAX32690/Temp_Monitor/main.c index d715b944f67..3859ca750c2 100644 --- a/Examples/MAX32690/Temp_Monitor/main.c +++ b/Examples/MAX32690/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/Temp_Monitor/temp_monitor.c b/Examples/MAX32690/Temp_Monitor/temp_monitor.c index 2b167c709e4..a13b6e64c8c 100644 --- a/Examples/MAX32690/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX32690/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX32690/Temp_Monitor/temp_monitor.h b/Examples/MAX32690/Temp_Monitor/temp_monitor.h index 6c795b5f1de..09ad18c3bf9 100644 --- a/Examples/MAX32690/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX32690/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX32690/UART/Makefile b/Examples/MAX32690/UART/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/UART/Makefile +++ b/Examples/MAX32690/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/UART/main.c b/Examples/MAX32690/UART/main.c index 2db8339e65c..891e44c0653 100644 --- a/Examples/MAX32690/UART/main.c +++ b/Examples/MAX32690/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/UCL/Makefile b/Examples/MAX32690/UCL/Makefile index 09922e13b5e..3923c25b0c6 100644 --- a/Examples/MAX32690/UCL/Makefile +++ b/Examples/MAX32690/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/USB_CDCACM/.cproject b/Examples/MAX32690/USB/USB_CDCACM/.cproject similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.cproject rename to Examples/MAX32690/USB/USB_CDCACM/.cproject diff --git a/Examples/MAX32665/USB_CDCACM/.project b/Examples/MAX32690/USB/USB_CDCACM/.project similarity index 100% rename from Examples/MAX32665/USB_CDCACM/.project rename to Examples/MAX32690/USB/USB_CDCACM/.project diff --git a/Examples/MAX32690/BLE_mcs/.settings/language.settings.xml b/Examples/MAX32690/USB/USB_CDCACM/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_mcs/.settings/language.settings.xml rename to Examples/MAX32690/USB/USB_CDCACM/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_dats/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/USB_CDCACM/.vscode/README.md b/Examples/MAX32690/USB/USB_CDCACM/.vscode/README.md similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.vscode/README.md rename to Examples/MAX32690/USB/USB_CDCACM/.vscode/README.md diff --git a/Examples/MAX32690/BLE_fcc/.vscode/c_cpp_properties.json b/Examples/MAX32690/USB/USB_CDCACM/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_fcc/.vscode/c_cpp_properties.json rename to Examples/MAX32690/USB/USB_CDCACM/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb b/Examples/MAX32690/USB/USB_CDCACM/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb rename to Examples/MAX32690/USB/USB_CDCACM/.vscode/flash.gdb diff --git a/Examples/MAX32690/USB_CDCACM/.vscode/launch.json b/Examples/MAX32690/USB/USB_CDCACM/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.vscode/launch.json rename to Examples/MAX32690/USB/USB_CDCACM/.vscode/launch.json diff --git a/Examples/MAX32690/USB_CDCACM/.vscode/settings.json b/Examples/MAX32690/USB/USB_CDCACM/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.vscode/settings.json rename to Examples/MAX32690/USB/USB_CDCACM/.vscode/settings.json diff --git a/Examples/MAX32690/USB_CDCACM/.vscode/tasks.json b/Examples/MAX32690/USB/USB_CDCACM/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.vscode/tasks.json rename to Examples/MAX32690/USB/USB_CDCACM/.vscode/tasks.json diff --git a/Examples/MAX32690/USB/USB_CDCACM/Makefile b/Examples/MAX32690/USB/USB_CDCACM/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/USB/USB_CDCACM/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/USB_CDCACM/README.md b/Examples/MAX32690/USB/USB_CDCACM/README.md similarity index 100% rename from Examples/MAX32690/USB_CDCACM/README.md rename to Examples/MAX32690/USB/USB_CDCACM/README.md diff --git a/Examples/MAX32690/USB_CDCACM/USB_CDCACM.launch b/Examples/MAX32690/USB/USB_CDCACM/USB_CDCACM.launch similarity index 100% rename from Examples/MAX32690/USB_CDCACM/USB_CDCACM.launch rename to Examples/MAX32690/USB/USB_CDCACM/USB_CDCACM.launch diff --git a/Examples/MAX32690/USB/USB_CDCACM/descriptors.h b/Examples/MAX32690/USB/USB_CDCACM/descriptors.h new file mode 100644 index 00000000000..dd2c29e78d9 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CDCACM/descriptors.h @@ -0,0 +1,359 @@ +/** + * @file descriptors.h + * @brief descriptors listed here + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Define to prevent redundant inclusion */ +#ifndef EXAMPLES_MAX32690_USB_USB_CDCACM_DESCRIPTORS_H_ +#define EXAMPLES_MAX32690_USB_USB_CDCACM_DESCRIPTORS_H_ + +/* **** Includes **** */ +#include +#include "usb.h" +#include "hid_kbd.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* **** Definitions **** */ + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x02, /* bDeviceClass = comm class (2) */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x02, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + /* Interface #2 CDC Data*/ + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +config_descriptor = { + { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0043, /* wTotalLength(L/H) */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (self-powered, remote wakeup) */ + 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDCACM Data */ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +config_descriptor_hs = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0043, /* wTotalLength(L/H) */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0200, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, + ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { + 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', + 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +#ifdef __cplusplus +} +#endif + +#endif // EXAMPLES_MAX32690_USB_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB/USB_CDCACM/main.c b/Examples/MAX32690/USB/USB_CDCACM/main.c new file mode 100644 index 00000000000..9ff672fc6eb --- /dev/null +++ b/Examples/MAX32690/USB/USB_CDCACM/main.c @@ -0,0 +1,429 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file + * @brief USB CDC-ACM example + * @details This project creates a virtual COM port, which loops back data sent to it. + * Load the project, connect a cable from the PC to the USB connector + * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. + * A driver for the COM port, if needed, is located in the Driver/ subdirectory. + * + */ + +/* **** Includes **** */ +#include +#include +#include "mxc_errors.h" +#include "mcr_regs.h" +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "descriptors.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* **** Function Prototypes **** */ +static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int event_callback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int usb_read_callback(void); +static void echo_usb(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/* **** File Scope Variables **** */ + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 2, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 3, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 4, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfig_callback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, event_callback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, event_callback, NULL); + acm_register_callback(ACM_CB_READ_READY, usb_read_callback); + + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echo_usb(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/* ************************************************************************** */ +static void echo_usb(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + /* Read the data from USB */ + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + /* Echo it back */ + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + //return MXC_SYS_USBHS_Shutdown(); + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ +static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + acm_cfg.out_ep = config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_4.wMaxPacketSize; + acm_cfg.in_ep = config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_5.wMaxPacketSize; + acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; + acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + return acm_configure(&acm_cfg); /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + return acm_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/* ************************************************************************** */ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/* ************************************************************************** */ +static void usbAppSleep(void) +{ + suspended = 1; +} + +/* ************************************************************************** */ +static void usbAppWakeup(void) +{ + suspended = 0; +} + +/* ************************************************************************** */ +static int event_callback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + acm_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, event_callback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, event_callback, NULL); /// + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, event_callback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: /// + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +static int usb_read_callback(void) +{ + usb_read_complete = 1; + return 0; +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/* ************************************************************************** */ + +void SysTick_Handler(void) +{ + MXC_DelayHandler(); +} diff --git a/Examples/MAX32690/USB_CDCACM/project.mk b/Examples/MAX32690/USB/USB_CDCACM/project.mk similarity index 100% rename from Examples/MAX32690/USB_CDCACM/project.mk rename to Examples/MAX32690/USB/USB_CDCACM/project.mk diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.cproject b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.cproject similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.cproject rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.cproject diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.project b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.project similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_CDC/.project rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.project diff --git a/Examples/MAX32690/BLE_otac/.settings/language.settings.xml b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_otac/.settings/language.settings.xml rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_fcc/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/README.md b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/README.md rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md diff --git a/Examples/MAX32690/BLE_fit/.vscode/c_cpp_properties.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_fit/.vscode/c_cpp_properties.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/launch.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/launch.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/settings.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/settings.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/README.md b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/README.md similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/README.md rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/README.md diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/descriptors.h new file mode 100644 index 00000000000..2011e369a2f --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/descriptors.h @@ -0,0 +1,474 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ +#define EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0xEF, /* bDeviceClass = code specified by interface descriptors */ + 0x02, /* bDeviceSubClass = code specified by interface descriptors */ + 0x01, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0xEF, /* bDeviceClass = Unspecified */ + 0x02, /* bDeviceSubClass */ + 0x01, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) = 98 bytes */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ /// + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor_hs = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0200, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { + 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', + 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/main.c new file mode 100644 index 00000000000..fd149029d26 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/main.c @@ -0,0 +1,469 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. +*/ + +#include +#include +#include "mxc_sys.h" +#include "mcr_regs.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "mscmem.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "msc.h" +#include "descriptors.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* **** Function Prototypes **** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int usbReadCallback(void); +int usbStartupCallback(); +int usbShutdownCallback(); +static void echoUSB(void); + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 2, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 3, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 4, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, + mscmem_Size, mscmem_Read, mscmem_Write }; + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, + 0); + } + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + acm_register_callback(ACM_CB_READ_READY, usbReadCallback); + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echoUSB(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static void echoUSB(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + // Read the data from USB + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + // Echo it back + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// + msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; + acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; + acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + 0x7; + acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + msc_configure(&msc_cfg); + return acm_configure(&acm_cfg); + /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return acm_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/* ************************************************************************** */ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + usbAppSleep(); + break; + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + case MAXUSB_EVENT_BRSTDN: /// + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, + 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, + 0); + } + break; + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +static int usbReadCallback(void) +{ + usb_read_complete = 1; + return 0; +} diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/mscmem.c new file mode 100644 index 00000000000..c6e36aa8cb8 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/mscmem.c @@ -0,0 +1,341 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +//#include "mx25.h" +//#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 0 +#define RAM_DISK 1 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ + +#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ +#define MX25_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ + +#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ + +#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[MX25_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); + /* Write the new */ + MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(MX25_BAUD); + MX25_Init(); + MX25_Reset(); + + if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { + MX25_Quad(1); + } else { + MX25_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the MX25 contains. */ + return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to MX25 sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from MX25 */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to MX25 sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from MX25 */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the MX25 if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/mscmem.h new file mode 100644 index 00000000000..dd44d750b77 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/mscmem.h @@ -0,0 +1,115 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ +#define EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ + +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/project.mk b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/project.mk similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/project.mk rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_CDC/project.mk diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.cproject b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.cproject similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.cproject rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.cproject diff --git a/Examples/MAX32665/USB_CompositeDevice_MSC_HID/.project b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.project similarity index 100% rename from Examples/MAX32665/USB_CompositeDevice_MSC_HID/.project rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.project diff --git a/Examples/MAX32690/BLE_otas/.settings/language.settings.xml b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_otas/.settings/language.settings.xml rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_fit/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/README.md b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/README.md rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md diff --git a/Examples/MAX32690/BLE_mcs/.vscode/c_cpp_properties.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_mcs/.vscode/c_cpp_properties.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32650/USB_HIDKeyboard/.vscode/flash.gdb b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_HIDKeyboard/.vscode/flash.gdb rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/launch.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/launch.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/settings.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/settings.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/tasks.json b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/tasks.json rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/README.md b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/README.md similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/README.md rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/README.md diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/descriptors.h new file mode 100644 index 00000000000..561f373f583 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/descriptors.h @@ -0,0 +1,246 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ +#define EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0x00, /* bDeviceClass = code specified by interface descriptors */ + 0x00, /* bDeviceSubClass = code specified by interface descriptors */ + 0x00, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x01, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 HID Keyboard */ + MXC_USB_interface_descriptor_t hid_interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0039, /* wTotalLength(L/H) = 57 bytes */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : HID Keyboard **********/ + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x04, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + }, + /********** Interface #1 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { + 0x24, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/main.c new file mode 100644 index 00000000000..32364f8c044 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/main.c @@ -0,0 +1,486 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and HID driver class. +*/ + +#include +#include +#include "mxc_sys.h" +#include "led.h" +#include "pb.h" +#include "mxc_delay.h" +#include "mcr_regs.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" +#include "nvic_table.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* **** Function Prototypes **** */ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +int usbStartupCallback(); +int usbShutdownCallback(); + +const mxc_gpio_cfg_t hid_sw[] = { + // Even though SW2 in EVK defined at Port 4.0 but this goes not have GPIO interrupt + // Using P0.7 for SW2. Connect Port 4.0 to Port 0.7. + { MXC_GPIO0, MXC_GPIO_PIN_7, MXC_GPIO_FUNC_IN, MXC_GPIO_PAD_PULL_UP, MXC_GPIO_VSSEL_VDDIO }, +}; + +/******************************************************************************/ +int Hid_SW_Init(void) +{ + int retval = E_NO_ERROR; + + if (MXC_GPIO_Config(&hid_sw[0]) != E_NO_ERROR) { + retval = E_UNKNOWN; + } + + return retval; +} + +/******************************************************************************/ +void HID_SW_Handler(void) +{ + MXC_GPIO_Handler(MXC_GPIO_GET_IDX(hid_sw[0].port)); +} + +int Hid_SW_RegisterCallback(unsigned int pb, pb_callback callback) +{ + if (pb != 0) { + return E_INVALID; + } + + if (callback) { + // Register callback + MXC_GPIO_RegisterCallback(&hid_sw[pb], callback, (void *)pb); + + // Configure and enable interrupt + MXC_GPIO_IntConfig(&hid_sw[pb], MXC_GPIO_INT_FALLING); + MXC_GPIO_EnableInt(hid_sw[pb].port, hid_sw[pb].mask); + MXC_NVIC_SetVector(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port)), HID_SW_Handler); + NVIC_EnableIRQ(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port))); + } else { // Disable interrupt and clear callback + MXC_GPIO_DisableInt(hid_sw[pb].port, hid_sw[pb].mask); + MXC_GPIO_RegisterCallback(&hid_sw[pb], NULL, NULL); + } + + return E_NO_ERROR; +} + +int HID_SW_Get(unsigned int pb) +{ + return !MXC_GPIO_InGet(hid_sw[pb].port, hid_sw[pb].mask); +} + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + Hid_SW_Init(); + + printf("\n Connect Port 0.7 to Port 4.0"); + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + + while (1) {} + } + + if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, + &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (Hid_SW_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("HID_SW_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW2 to send character.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + + msc_configure(&msc_cfg); + return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return hidkbd_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (HID_SW_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remote_wake_en) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/mscmem.c new file mode 100644 index 00000000000..c6e36aa8cb8 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/mscmem.c @@ -0,0 +1,341 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +//#include "mx25.h" +//#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 0 +#define RAM_DISK 1 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ + +#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ +#define MX25_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ + +#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ + +#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[MX25_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); + /* Write the new */ + MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(MX25_BAUD); + MX25_Init(); + MX25_Reset(); + + if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { + MX25_Quad(1); + } else { + MX25_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the MX25 contains. */ + return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to MX25 sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from MX25 */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to MX25 sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from MX25 */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the MX25 if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/mscmem.h new file mode 100644 index 00000000000..28d96828510 --- /dev/null +++ b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/mscmem.h @@ -0,0 +1,115 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ +#define EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ + +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32690_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/project.mk b/Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/project.mk similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/project.mk rename to Examples/MAX32690/USB/USB_CompositeDevice_MSC_HID/project.mk diff --git a/Examples/MAX32690/USB_HIDKeyboard/.cproject b/Examples/MAX32690/USB/USB_HIDKeyboard/.cproject similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.cproject rename to Examples/MAX32690/USB/USB_HIDKeyboard/.cproject diff --git a/Examples/MAX32665/USB_HIDKeyboard/.project b/Examples/MAX32690/USB/USB_HIDKeyboard/.project similarity index 100% rename from Examples/MAX32665/USB_HIDKeyboard/.project rename to Examples/MAX32690/USB/USB_HIDKeyboard/.project diff --git a/Examples/MAX32690/BLE_periph/.settings/language.settings.xml b/Examples/MAX32690/USB/USB_HIDKeyboard/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/BLE_periph/.settings/language.settings.xml rename to Examples/MAX32690/USB/USB_HIDKeyboard/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_mcs/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/USB_HIDKeyboard/.vscode/README.md b/Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/README.md similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.vscode/README.md rename to Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/README.md diff --git a/Examples/MAX32690/BLE_otac/.vscode/c_cpp_properties.json b/Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_otac/.vscode/c_cpp_properties.json rename to Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32650/USB_MassStorage/.vscode/flash.gdb b/Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32650/USB_MassStorage/.vscode/flash.gdb rename to Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/flash.gdb diff --git a/Examples/MAX32690/USB_HIDKeyboard/.vscode/launch.json b/Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.vscode/launch.json rename to Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/launch.json diff --git a/Examples/MAX32690/USB_HIDKeyboard/.vscode/settings.json b/Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.vscode/settings.json rename to Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/settings.json diff --git a/Examples/MAX32690/USB_HIDKeyboard/.vscode/tasks.json b/Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.vscode/tasks.json rename to Examples/MAX32690/USB/USB_HIDKeyboard/.vscode/tasks.json diff --git a/Examples/MAX32690/USB/USB_HIDKeyboard/Makefile b/Examples/MAX32690/USB/USB_HIDKeyboard/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/USB/USB_HIDKeyboard/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/USB_HIDKeyboard/README.md b/Examples/MAX32690/USB/USB_HIDKeyboard/README.md similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/README.md rename to Examples/MAX32690/USB/USB_HIDKeyboard/README.md diff --git a/Examples/MAX32690/USB_HIDKeyboard/USB_HIDKeyboard.launch b/Examples/MAX32690/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/USB_HIDKeyboard.launch rename to Examples/MAX32690/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch diff --git a/Examples/MAX32690/USB/USB_HIDKeyboard/descriptors.h b/Examples/MAX32690/USB/USB_HIDKeyboard/descriptors.h new file mode 100644 index 00000000000..e3ef798393e --- /dev/null +++ b/Examples/MAX32690/USB/USB_HIDKeyboard/descriptors.h @@ -0,0 +1,173 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32690_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ +#define EXAMPLES_MAX32690_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + MXC_USB_interface_descriptor_t interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor; +} config_descriptor = { { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0022, /* wTotalLength(L/H) = 34 bytes */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x00, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x00, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + } }; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x2c, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, + 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX32690_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB/USB_HIDKeyboard/main.c b/Examples/MAX32690/USB/USB_HIDKeyboard/main.c new file mode 100644 index 00000000000..68cf72b1e03 --- /dev/null +++ b/Examples/MAX32690/USB/USB_HIDKeyboard/main.c @@ -0,0 +1,440 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device + * @details The EvKit should enumerate as a HID Keyboard device after loading the project and + * attaching a cable from the PC to the USB connector on the Evaluation Kit. + * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. + * 2. Open a text editor on the PC host and place cursor in edit box. + * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. + * + */ + +#include +#include +#include "mxc_sys.h" +#include "mcr_regs.h" +#include "led.h" +#include "pb.h" +#include "mxc_delay.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "descriptors.h" +#include "nvic_table.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +int remoteWake; +volatile int configured; +volatile int suspended; +volatile unsigned int evtFlags; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +void usDelay(unsigned int usec); +int usbStartupCallback(); +int usbShutdownCallback(); + +const mxc_gpio_cfg_t hid_sw[] = { + // Even though SW2 in EVK defined at Port 4.0 but this goes not have GPIO interrupt + // Using P0.7 for SW2. Connect Port 4.0 to Port 0.7. + { MXC_GPIO0, MXC_GPIO_PIN_7, MXC_GPIO_FUNC_IN, MXC_GPIO_PAD_PULL_UP, MXC_GPIO_VSSEL_VDDIO }, +}; + +/******************************************************************************/ +int Hid_SW_Init(void) +{ + int retval = E_NO_ERROR; + + if (MXC_GPIO_Config(&hid_sw[0]) != E_NO_ERROR) { + retval = E_UNKNOWN; + } + + return retval; +} + +/******************************************************************************/ +void HID_SW_Handler(void) +{ + MXC_GPIO_Handler(MXC_GPIO_GET_IDX(hid_sw[0].port)); +} + +int Hid_SW_RegisterCallback(unsigned int pb, pb_callback callback) +{ + if (pb != 0) { + return E_INVALID; + } + + if (callback) { + // Register callback + MXC_GPIO_RegisterCallback(&hid_sw[pb], callback, (void *)pb); + + // Configure and enable interrupt + MXC_GPIO_IntConfig(&hid_sw[pb], MXC_GPIO_INT_FALLING); + MXC_GPIO_EnableInt(hid_sw[pb].port, hid_sw[pb].mask); + MXC_NVIC_SetVector(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port)), HID_SW_Handler); + NVIC_EnableIRQ(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port))); + } else { // Disable interrupt and clear callback + MXC_GPIO_DisableInt(hid_sw[pb].port, hid_sw[pb].mask); + MXC_GPIO_RegisterCallback(&hid_sw[pb], NULL, NULL); + } + + return E_NO_ERROR; +} + +int HID_SW_Get(unsigned int pb) +{ + return !MXC_GPIO_InGet(hid_sw[pb].port, hid_sw[pb].mask); +} + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + Hid_SW_Init(); + + printf("\n Connect Port 0.7 to Port 4.0"); + printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + evtFlags = 0; + remoteWake = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = usDelay; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("MXC_USB_Init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, + report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (Hid_SW_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("HID_SW_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (evtFlags) { + /* Display events */ + if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW2 to send character.\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +/* User-supplied function to delay usec micro-seconds */ +void usDelay(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/******************************************************************************/ +static void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (HID_SW_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remoteWake) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); + return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + return hidkbd_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&evtFlags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} diff --git a/Examples/MAX32690/USB_HIDKeyboard/project.mk b/Examples/MAX32690/USB/USB_HIDKeyboard/project.mk similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/project.mk rename to Examples/MAX32690/USB/USB_HIDKeyboard/project.mk diff --git a/Examples/MAX32690/USB_MassStorage/.cproject b/Examples/MAX32690/USB/USB_MassStorage/.cproject similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.cproject rename to Examples/MAX32690/USB/USB_MassStorage/.cproject diff --git a/Examples/MAX32665/USB_MassStorage/.project b/Examples/MAX32690/USB/USB_MassStorage/.project similarity index 100% rename from Examples/MAX32665/USB_MassStorage/.project rename to Examples/MAX32690/USB/USB_MassStorage/.project diff --git a/Examples/MAX32690/Bootloader/.settings/language.settings.xml b/Examples/MAX32690/USB/USB_MassStorage/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/Bootloader/.settings/language.settings.xml rename to Examples/MAX32690/USB/USB_MassStorage/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_otac/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX32690/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX32690/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX32690/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX32690/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX32690/USB_MassStorage/.vscode/README.md b/Examples/MAX32690/USB/USB_MassStorage/.vscode/README.md similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.vscode/README.md rename to Examples/MAX32690/USB/USB_MassStorage/.vscode/README.md diff --git a/Examples/MAX32690/BLE_otas/.vscode/c_cpp_properties.json b/Examples/MAX32690/USB/USB_MassStorage/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/BLE_otas/.vscode/c_cpp_properties.json rename to Examples/MAX32690/USB/USB_MassStorage/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32655/BLE4_ctr/.vscode/flash.gdb b/Examples/MAX32690/USB/USB_MassStorage/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32655/BLE4_ctr/.vscode/flash.gdb rename to Examples/MAX32690/USB/USB_MassStorage/.vscode/flash.gdb diff --git a/Examples/MAX32690/USB_MassStorage/.vscode/launch.json b/Examples/MAX32690/USB/USB_MassStorage/.vscode/launch.json similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.vscode/launch.json rename to Examples/MAX32690/USB/USB_MassStorage/.vscode/launch.json diff --git a/Examples/MAX32690/USB_MassStorage/.vscode/settings.json b/Examples/MAX32690/USB/USB_MassStorage/.vscode/settings.json similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.vscode/settings.json rename to Examples/MAX32690/USB/USB_MassStorage/.vscode/settings.json diff --git a/Examples/MAX32690/USB_MassStorage/.vscode/tasks.json b/Examples/MAX32690/USB/USB_MassStorage/.vscode/tasks.json similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.vscode/tasks.json rename to Examples/MAX32690/USB/USB_MassStorage/.vscode/tasks.json diff --git a/Examples/MAX32690/USB/USB_MassStorage/Makefile b/Examples/MAX32690/USB/USB_MassStorage/Makefile new file mode 100644 index 00000000000..e2ca6fdca6d --- /dev/null +++ b/Examples/MAX32690/USB/USB_MassStorage/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX32690 +TARGET_UC := MAX32690 +TARGET_LC := max32690 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -Og + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX32690/USB_MassStorage/README.md b/Examples/MAX32690/USB/USB_MassStorage/README.md similarity index 100% rename from Examples/MAX32690/USB_MassStorage/README.md rename to Examples/MAX32690/USB/USB_MassStorage/README.md diff --git a/Examples/MAX32690/USB_MassStorage/USB_MassStorage.launch b/Examples/MAX32690/USB/USB_MassStorage/USB_MassStorage.launch similarity index 100% rename from Examples/MAX32690/USB_MassStorage/USB_MassStorage.launch rename to Examples/MAX32690/USB/USB_MassStorage/USB_MassStorage.launch diff --git a/Examples/MAX32690/USB/USB_MassStorage/descriptors.h b/Examples/MAX32690/USB/USB_MassStorage/descriptors.h new file mode 100644 index 00000000000..fcdd3ec982f --- /dev/null +++ b/Examples/MAX32690/USB/USB_MassStorage/descriptors.h @@ -0,0 +1,211 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX32690_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ +#define EXAMPLES_MAX32690_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x4402, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } }; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor_hs = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval */ + } }; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x38, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, + 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, + 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) +uint8_t serial_id_desc[] = { 26, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX32690_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB/USB_MassStorage/main.c b/Examples/MAX32690/USB/USB_MassStorage/main.c new file mode 100644 index 00000000000..609915bb0c8 --- /dev/null +++ b/Examples/MAX32690/USB/USB_MassStorage/main.c @@ -0,0 +1,391 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB Mass Storage Class example + * @details This project creates a mass storage device using either on-board RAM or + * external SPI flash memory. Load the project, connect a cable from the PC + * to the USB connector. A new external drive should appear than can be read + * and written. + */ + +#include +#include +#include "mxc_sys.h" +#include "mcr_regs.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/***** File Scope Variables *****/ + +/* Defaults, which will be changed by the configuration code */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + return msc_configure(&msc_cfg); /* Configure the device class */ + + } else if (sud->wValue == 0) { + configured = 0; + return msc_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* TODO: Place low-power code here */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* TODO: Place low-power code here */ + suspended = 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} diff --git a/Examples/MAX32690/USB/USB_MassStorage/mscmem.c b/Examples/MAX32690/USB/USB_MassStorage/mscmem.c new file mode 100644 index 00000000000..b9ace5dfddb --- /dev/null +++ b/Examples/MAX32690/USB/USB_MassStorage/mscmem.c @@ -0,0 +1,343 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +//#include "Ext_Flash.h" +//#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 0 +#define RAM_DISK 1 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX32690/USB/USB_MassStorage/mscmem.h b/Examples/MAX32690/USB/USB_MassStorage/mscmem.h new file mode 100644 index 00000000000..6358a5d4e75 --- /dev/null +++ b/Examples/MAX32690/USB/USB_MassStorage/mscmem.h @@ -0,0 +1,115 @@ +/** + * @file + * @brief Memory routines used by the USB Mass Storage Class example. + * See the @ref msc_mem_t structure in msc.h for function details. + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef EXAMPLES_MAX32690_USB_USB_MASSSTORAGE_MSCMEM_H_ +#define EXAMPLES_MAX32690_USB_USB_MASSSTORAGE_MSCMEM_H_ + +/* **** Include Files **** */ +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX32690_USB_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX32690/USB_MassStorage/project.mk b/Examples/MAX32690/USB/USB_MassStorage/project.mk similarity index 100% rename from Examples/MAX32690/USB_MassStorage/project.mk rename to Examples/MAX32690/USB/USB_MassStorage/project.mk diff --git a/Examples/MAX32690/USB_CDCACM/.vscode/flash.gdb b/Examples/MAX32690/USB_CDCACM/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/USB_CDCACM/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/USB_CDCACM/Makefile b/Examples/MAX32690/USB_CDCACM/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/USB_CDCACM/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/USB_CDCACM/descriptors.h b/Examples/MAX32690/USB_CDCACM/descriptors.h deleted file mode 100644 index b3790e01fba..00000000000 --- a/Examples/MAX32690/USB_CDCACM/descriptors.h +++ /dev/null @@ -1,341 +0,0 @@ -/** - * @file descriptors.h - * @brief descriptors listed here - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Define to prevent redundant inclusion */ -#ifndef EXAMPLES_MAX32690_USB_CDCACM_DESCRIPTORS_H_ -#define EXAMPLES_MAX32690_USB_CDCACM_DESCRIPTORS_H_ - -/* **** Includes **** */ -#include -#include "usb.h" -#include "hid_kbd.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* **** Definitions **** */ - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = comm class (2) */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - /* Interface #2 CDC Data*/ - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -config_descriptor = { - { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (self-powered, remote wakeup) */ - 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDCACM Data */ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -config_descriptor_hs = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0200, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, - ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX32690_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB_CDCACM/main.c b/Examples/MAX32690/USB_CDCACM/main.c deleted file mode 100644 index a81687805fc..00000000000 --- a/Examples/MAX32690/USB_CDCACM/main.c +++ /dev/null @@ -1,411 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file - * @brief USB CDC-ACM example - * @details This project creates a virtual COM port, which loops back data sent to it. - * Load the project, connect a cable from the PC to the USB connector - * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. - * A driver for the COM port, if needed, is located in the Driver/ subdirectory. - * - */ - -/* **** Includes **** */ -#include -#include -#include "mxc_errors.h" -#include "mcr_regs.h" -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "descriptors.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* **** Function Prototypes **** */ -static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int event_callback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usb_read_callback(void); -static void echo_usb(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/* **** File Scope Variables **** */ - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 2, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 3, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 4, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfig_callback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, event_callback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, event_callback, NULL); - acm_register_callback(ACM_CB_READ_READY, usb_read_callback); - - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echo_usb(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/* ************************************************************************** */ -static void echo_usb(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - /* Read the data from USB */ - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - /* Echo it back */ - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - //return MXC_SYS_USBHS_Shutdown(); - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ -static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - acm_cfg.out_ep = config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; - acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - return acm_configure(&acm_cfg); /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/* ************************************************************************** */ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/* ************************************************************************** */ -static void usbAppSleep(void) -{ - suspended = 1; -} - -/* ************************************************************************** */ -static void usbAppWakeup(void) -{ - suspended = 0; -} - -/* ************************************************************************** */ -static int event_callback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - acm_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, event_callback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, event_callback, NULL); /// - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, event_callback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: /// - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -static int usb_read_callback(void) -{ - usb_read_complete = 1; - return 0; -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ - -void SysTick_Handler(void) -{ - MXC_DelayHandler(); -} diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb b/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/descriptors.h deleted file mode 100644 index c846adb3e0a..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/descriptors.h +++ /dev/null @@ -1,456 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ -#define EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0xEF, /* bDeviceClass = code specified by interface descriptors */ - 0x02, /* bDeviceSubClass = code specified by interface descriptors */ - 0x01, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0xEF, /* bDeviceClass = Unspecified */ - 0x02, /* bDeviceSubClass */ - 0x01, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) = 98 bytes */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ /// - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor_hs = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0200, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/main.c deleted file mode 100644 index 345d4d6ca28..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/main.c +++ /dev/null @@ -1,451 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. -*/ - -#include -#include -#include "mxc_sys.h" -#include "mcr_regs.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "mscmem.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "msc.h" -#include "descriptors.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* **** Function Prototypes **** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usbReadCallback(void); -int usbStartupCallback(); -int usbShutdownCallback(); -static void echoUSB(void); - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 2, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 3, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 4, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, - mscmem_Size, mscmem_Read, mscmem_Write }; - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, - 0); - } - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - acm_register_callback(ACM_CB_READ_READY, usbReadCallback); - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echoUSB(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static void echoUSB(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - // Read the data from USB - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - // Echo it back - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// - msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - 0x7; - acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - msc_configure(&msc_cfg); - return acm_configure(&acm_cfg); - /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - usbAppSleep(); - break; - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - case MAXUSB_EVENT_BRSTDN: /// - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, - 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, - 0); - } - break; - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -static int usbReadCallback(void) -{ - usb_read_complete = 1; - return 0; -} diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/mscmem.c deleted file mode 100644 index 3359ce15efa..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/mscmem.c +++ /dev/null @@ -1,323 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -//#include "mx25.h" -//#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 0 -#define RAM_DISK 1 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ - -#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ -#define MX25_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ - -#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ - -#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[MX25_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); - /* Write the new */ - MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(MX25_BAUD); - MX25_Init(); - MX25_Reset(); - - if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { - MX25_Quad(1); - } else { - MX25_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the MX25 contains. */ - return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the MX25 if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/mscmem.h deleted file mode 100644 index 41b738071e6..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ -#define EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ - -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb b/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX32690/USB_CompositeDevice_MSC_HID/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX32690/USB_CompositeDevice_MSC_HID/descriptors.h deleted file mode 100644 index eb3bdfd6a10..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/descriptors.h +++ /dev/null @@ -1,228 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ -#define EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0x00, /* bDeviceClass = code specified by interface descriptors */ - 0x00, /* bDeviceSubClass = code specified by interface descriptors */ - 0x00, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x01, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 HID Keyboard */ - MXC_USB_interface_descriptor_t hid_interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0039, /* wTotalLength(L/H) = 57 bytes */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : HID Keyboard **********/ - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x04, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - }, - /********** Interface #1 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { - 0x24, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX32690/USB_CompositeDevice_MSC_HID/main.c deleted file mode 100644 index b506a70e1b5..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/main.c +++ /dev/null @@ -1,468 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and HID driver class. -*/ - -#include -#include -#include "mxc_sys.h" -#include "led.h" -#include "pb.h" -#include "mxc_delay.h" -#include "mcr_regs.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" -#include "nvic_table.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* **** Function Prototypes **** */ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -int usbStartupCallback(); -int usbShutdownCallback(); - -const mxc_gpio_cfg_t hid_sw[] = { - // Even though SW2 in EVK defined at Port 4.0 but this goes not have GPIO interrupt - // Using P0.7 for SW2. Connect Port 4.0 to Port 0.7. - { MXC_GPIO0, MXC_GPIO_PIN_7, MXC_GPIO_FUNC_IN, MXC_GPIO_PAD_PULL_UP, MXC_GPIO_VSSEL_VDDIO }, -}; - -/******************************************************************************/ -int Hid_SW_Init(void) -{ - int retval = E_NO_ERROR; - - if (MXC_GPIO_Config(&hid_sw[0]) != E_NO_ERROR) { - retval = E_UNKNOWN; - } - - return retval; -} - -/******************************************************************************/ -void HID_SW_Handler(void) -{ - MXC_GPIO_Handler(MXC_GPIO_GET_IDX(hid_sw[0].port)); -} - -int Hid_SW_RegisterCallback(unsigned int pb, pb_callback callback) -{ - if (pb != 0) { - return E_INVALID; - } - - if (callback) { - // Register callback - MXC_GPIO_RegisterCallback(&hid_sw[pb], callback, (void *)pb); - - // Configure and enable interrupt - MXC_GPIO_IntConfig(&hid_sw[pb], MXC_GPIO_INT_FALLING); - MXC_GPIO_EnableInt(hid_sw[pb].port, hid_sw[pb].mask); - MXC_NVIC_SetVector(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port)), HID_SW_Handler); - NVIC_EnableIRQ(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port))); - } else { // Disable interrupt and clear callback - MXC_GPIO_DisableInt(hid_sw[pb].port, hid_sw[pb].mask); - MXC_GPIO_RegisterCallback(&hid_sw[pb], NULL, NULL); - } - - return E_NO_ERROR; -} - -int HID_SW_Get(unsigned int pb) -{ - return !MXC_GPIO_InGet(hid_sw[pb].port, hid_sw[pb].mask); -} - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - Hid_SW_Init(); - - printf("\n Connect Port 0.7 to Port 4.0"); - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - - while (1) {} - } - - if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, - &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (Hid_SW_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("HID_SW_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - - msc_configure(&msc_cfg); - return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return hidkbd_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (HID_SW_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remote_wake_en) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX32690/USB_CompositeDevice_MSC_HID/mscmem.c deleted file mode 100644 index 3359ce15efa..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/mscmem.c +++ /dev/null @@ -1,323 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -//#include "mx25.h" -//#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 0 -#define RAM_DISK 1 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ - -#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ -#define MX25_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ - -#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ - -#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[MX25_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); - /* Write the new */ - MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(MX25_BAUD); - MX25_Init(); - MX25_Reset(); - - if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { - MX25_Quad(1); - } else { - MX25_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the MX25 contains. */ - return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the MX25 if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX32690/USB_CompositeDevice_MSC_HID/mscmem.h deleted file mode 100644 index eb2640fedd1..00000000000 --- a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ -#define EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ - -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32690_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX32690/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX32690/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX32690/USB_HIDKeyboard/.vscode/c_cpp_properties.json b/Examples/MAX32690/USB_HIDKeyboard/.vscode/c_cpp_properties.json deleted file mode 100755 index dfbed47b581..00000000000 --- a/Examples/MAX32690/USB_HIDKeyboard/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32690/USB_HIDKeyboard/.vscode/flash.gdb b/Examples/MAX32690/USB_HIDKeyboard/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/USB_HIDKeyboard/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/USB_HIDKeyboard/Makefile b/Examples/MAX32690/USB_HIDKeyboard/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/USB_HIDKeyboard/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/USB_HIDKeyboard/descriptors.h b/Examples/MAX32690/USB_HIDKeyboard/descriptors.h deleted file mode 100644 index 3a1f0db3f50..00000000000 --- a/Examples/MAX32690/USB_HIDKeyboard/descriptors.h +++ /dev/null @@ -1,155 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32690_USB_HIDKEYBOARD_DESCRIPTORS_H_ -#define EXAMPLES_MAX32690_USB_HIDKEYBOARD_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor; -} config_descriptor = { { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0022, /* wTotalLength(L/H) = 34 bytes */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x00, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x00, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - } }; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x2c, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, - 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32690_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB_HIDKeyboard/main.c b/Examples/MAX32690/USB_HIDKeyboard/main.c deleted file mode 100644 index 8b82e7651db..00000000000 --- a/Examples/MAX32690/USB_HIDKeyboard/main.c +++ /dev/null @@ -1,422 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device - * @details The EvKit should enumerate as a HID Keyboard device after loading the project and - * attaching a cable from the PC to the USB connector on the Evaluation Kit. - * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. - * 2. Open a text editor on the PC host and place cursor in edit box. - * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. - * - */ - -#include -#include -#include "mxc_sys.h" -#include "mcr_regs.h" -#include "led.h" -#include "pb.h" -#include "mxc_delay.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "descriptors.h" -#include "nvic_table.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -int remoteWake; -volatile int configured; -volatile int suspended; -volatile unsigned int evtFlags; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -void usDelay(unsigned int usec); -int usbStartupCallback(); -int usbShutdownCallback(); - -const mxc_gpio_cfg_t hid_sw[] = { - // Even though SW2 in EVK defined at Port 4.0 but this goes not have GPIO interrupt - // Using P0.7 for SW2. Connect Port 4.0 to Port 0.7. - { MXC_GPIO0, MXC_GPIO_PIN_7, MXC_GPIO_FUNC_IN, MXC_GPIO_PAD_PULL_UP, MXC_GPIO_VSSEL_VDDIO }, -}; - -/******************************************************************************/ -int Hid_SW_Init(void) -{ - int retval = E_NO_ERROR; - - if (MXC_GPIO_Config(&hid_sw[0]) != E_NO_ERROR) { - retval = E_UNKNOWN; - } - - return retval; -} - -/******************************************************************************/ -void HID_SW_Handler(void) -{ - MXC_GPIO_Handler(MXC_GPIO_GET_IDX(hid_sw[0].port)); -} - -int Hid_SW_RegisterCallback(unsigned int pb, pb_callback callback) -{ - if (pb != 0) { - return E_INVALID; - } - - if (callback) { - // Register callback - MXC_GPIO_RegisterCallback(&hid_sw[pb], callback, (void *)pb); - - // Configure and enable interrupt - MXC_GPIO_IntConfig(&hid_sw[pb], MXC_GPIO_INT_FALLING); - MXC_GPIO_EnableInt(hid_sw[pb].port, hid_sw[pb].mask); - MXC_NVIC_SetVector(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port)), HID_SW_Handler); - NVIC_EnableIRQ(MXC_GPIO_GET_IRQ(MXC_GPIO_GET_IDX(hid_sw[pb].port))); - } else { // Disable interrupt and clear callback - MXC_GPIO_DisableInt(hid_sw[pb].port, hid_sw[pb].mask); - MXC_GPIO_RegisterCallback(&hid_sw[pb], NULL, NULL); - } - - return E_NO_ERROR; -} - -int HID_SW_Get(unsigned int pb) -{ - return !MXC_GPIO_InGet(hid_sw[pb].port, hid_sw[pb].mask); -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - Hid_SW_Init(); - - printf("\n Connect Port 0.7 to Port 4.0"); - printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - evtFlags = 0; - remoteWake = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = usDelay; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, - report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (Hid_SW_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("HID_SW_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (evtFlags) { - /* Display events */ - if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -/* User-supplied function to delay usec micro-seconds */ -void usDelay(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (HID_SW_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remoteWake) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); - return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - return hidkbd_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&evtFlags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} diff --git a/Examples/MAX32690/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX32690/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX32690/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX32690/USB_MassStorage/.vscode/c_cpp_properties.json b/Examples/MAX32690/USB_MassStorage/.vscode/c_cpp_properties.json deleted file mode 100755 index dfbed47b581..00000000000 --- a/Examples/MAX32690/USB_MassStorage/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX32690/USB_MassStorage/.vscode/flash.gdb b/Examples/MAX32690/USB_MassStorage/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX32690/USB_MassStorage/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX32690/USB_MassStorage/Makefile b/Examples/MAX32690/USB_MassStorage/Makefile deleted file mode 100644 index 6a02bf53c6c..00000000000 --- a/Examples/MAX32690/USB_MassStorage/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX32690 -TARGET_UC := MAX32690 -TARGET_LC := max32690 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -Og - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX32690/USB_MassStorage/descriptors.h b/Examples/MAX32690/USB_MassStorage/descriptors.h deleted file mode 100644 index ab49dc1bbde..00000000000 --- a/Examples/MAX32690/USB_MassStorage/descriptors.h +++ /dev/null @@ -1,193 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX32690_USB_MASSSTORAGE_DESCRIPTORS_H_ -#define EXAMPLES_MAX32690_USB_MASSSTORAGE_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x4402, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } }; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor_hs = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval */ - } }; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x38, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, - 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, - 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) -uint8_t serial_id_desc[] = { 26, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX32690_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX32690/USB_MassStorage/main.c b/Examples/MAX32690/USB_MassStorage/main.c deleted file mode 100644 index a8285caa9a7..00000000000 --- a/Examples/MAX32690/USB_MassStorage/main.c +++ /dev/null @@ -1,373 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB Mass Storage Class example - * @details This project creates a mass storage device using either on-board RAM or - * external SPI flash memory. Load the project, connect a cable from the PC - * to the USB connector. A new external drive should appear than can be read - * and written. - */ - -#include -#include -#include "mxc_sys.h" -#include "mcr_regs.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/***** File Scope Variables *****/ - -/* Defaults, which will be changed by the configuration code */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - return msc_configure(&msc_cfg); /* Configure the device class */ - - } else if (sud->wValue == 0) { - configured = 0; - return msc_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockSourceEnable(MXC_SYS_CLOCK_IPO); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_SYS_Reset_Periph(MXC_SYS_RESET0_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* TODO: Place low-power code here */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* TODO: Place low-power code here */ - suspended = 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} diff --git a/Examples/MAX32690/USB_MassStorage/mscmem.c b/Examples/MAX32690/USB_MassStorage/mscmem.c deleted file mode 100644 index 60a0c98700c..00000000000 --- a/Examples/MAX32690/USB_MassStorage/mscmem.c +++ /dev/null @@ -1,325 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -//#include "Ext_Flash.h" -//#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 0 -#define RAM_DISK 1 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX32690/USB_MassStorage/mscmem.h b/Examples/MAX32690/USB_MassStorage/mscmem.h deleted file mode 100644 index 020c37d3306..00000000000 --- a/Examples/MAX32690/USB_MassStorage/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file - * @brief Memory routines used by the USB Mass Storage Class example. - * See the @ref msc_mem_t structure in msc.h for function details. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ -#ifndef EXAMPLES_MAX32690_USB_MASSSTORAGE_MSCMEM_H_ -#define EXAMPLES_MAX32690_USB_MASSSTORAGE_MSCMEM_H_ - -/* **** Include Files **** */ -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX32690_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX32690/WUT/Makefile b/Examples/MAX32690/WUT/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/WUT/Makefile +++ b/Examples/MAX32690/WUT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/WUT/main.c b/Examples/MAX32690/WUT/main.c index 8a2889e6830..f07845faee6 100644 --- a/Examples/MAX32690/WUT/main.c +++ b/Examples/MAX32690/WUT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/Watchdog/Makefile b/Examples/MAX32690/Watchdog/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/Watchdog/Makefile +++ b/Examples/MAX32690/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/Watchdog/main.c b/Examples/MAX32690/Watchdog/main.c index 2807805b4c1..5577cfe343c 100644 --- a/Examples/MAX32690/Watchdog/main.c +++ b/Examples/MAX32690/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX32690/WearLeveling/Makefile b/Examples/MAX32690/WearLeveling/Makefile index 6a02bf53c6c..e2ca6fdca6d 100644 --- a/Examples/MAX32690/WearLeveling/Makefile +++ b/Examples/MAX32690/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX32690/WearLeveling/include/cli.h b/Examples/MAX32690/WearLeveling/include/cli.h index 719eef372fc..c5afdcad1b2 100644 --- a/Examples/MAX32690/WearLeveling/include/cli.h +++ b/Examples/MAX32690/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX32690/WearLeveling/include/file.h b/Examples/MAX32690/WearLeveling/include/file.h index 9bd7f2ff96b..6f7419d05fc 100644 --- a/Examples/MAX32690/WearLeveling/include/file.h +++ b/Examples/MAX32690/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX32690/WearLeveling/include/flash.h b/Examples/MAX32690/WearLeveling/include/flash.h index 65a723b42f9..bd1e24ea056 100644 --- a/Examples/MAX32690/WearLeveling/include/flash.h +++ b/Examples/MAX32690/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/WearLeveling/include/main.h b/Examples/MAX32690/WearLeveling/include/main.h index f3f5f958399..73dd9d52b7f 100644 --- a/Examples/MAX32690/WearLeveling/include/main.h +++ b/Examples/MAX32690/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX32690_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX32690/WearLeveling/main.c b/Examples/MAX32690/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX32690/WearLeveling/main.c +++ b/Examples/MAX32690/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX32690/WearLeveling/src/cli.c b/Examples/MAX32690/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX32690/WearLeveling/src/cli.c +++ b/Examples/MAX32690/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX32690/WearLeveling/src/file.c b/Examples/MAX32690/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX32690/WearLeveling/src/file.c +++ b/Examples/MAX32690/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX32690/WearLeveling/src/flash.c b/Examples/MAX32690/WearLeveling/src/flash.c index ca62267cfc3..da03c413282 100644 --- a/Examples/MAX32690/WearLeveling/src/flash.c +++ b/Examples/MAX32690/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/ADC/Makefile b/Examples/MAX78000/ADC/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/ADC/Makefile +++ b/Examples/MAX78000/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ADC/example_config.h b/Examples/MAX78000/ADC/example_config.h index c2e8509dc3a..6fe5520db2a 100644 --- a/Examples/MAX78000/ADC/example_config.h +++ b/Examples/MAX78000/ADC/example_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_ADC_EXAMPLE_CONFIG_H_ diff --git a/Examples/MAX78000/ADC/main.c b/Examples/MAX78000/ADC/main.c index 77cc2f0fb3a..aa7e1d95a58 100644 --- a/Examples/MAX78000/ADC/main.c +++ b/Examples/MAX78000/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/AES/Makefile b/Examples/MAX78000/AES/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/AES/Makefile +++ b/Examples/MAX78000/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/AES/main.c b/Examples/MAX78000/AES/main.c index f24cf901e1c..ec9e03d230d 100644 --- a/Examples/MAX78000/AES/main.c +++ b/Examples/MAX78000/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_bayes_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_class_marks_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_convolution_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX78000/ARM-DSP/arm_dotproduct_example_f32/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_fft_bin_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_fir_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_graphic_equalizer_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_linear_interp_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_matrix_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_signal_converge_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_sin_cos_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_svm_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX78000/ARM-DSP/arm_variance_example/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX78000/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/UNet-demo/Makefile b/Examples/MAX78000/CNN/UNet-demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/UNet-demo/Makefile +++ b/Examples/MAX78000/CNN/UNet-demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/all_imgs.c index d3bd85667b6..b17637cbe95 100644 --- a/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/bitmap.h index ddf640aa869..6c9b745e8e1 100644 --- a/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/UNet-demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/img_1_rgb565.c b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/UNet-demo/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/UNet-demo/Utility/main.py b/Examples/MAX78000/CNN/UNet-demo/Utility/main.py index 8c28a6fd63c..829c477c841 100644 --- a/Examples/MAX78000/CNN/UNet-demo/Utility/main.py +++ b/Examples/MAX78000/CNN/UNet-demo/Utility/main.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ''' diff --git a/Examples/MAX78000/CNN/UNet-demo/cnn.c b/Examples/MAX78000/CNN/UNet-demo/cnn.c index 44a9bf2e8ef..f7728b33320 100644 --- a/Examples/MAX78000/CNN/UNet-demo/cnn.c +++ b/Examples/MAX78000/CNN/UNet-demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // unet_v5 diff --git a/Examples/MAX78000/CNN/UNet-demo/cnn.h b/Examples/MAX78000/CNN/UNet-demo/cnn.h index 50e89d119be..b8aa5b7cd40 100644 --- a/Examples/MAX78000/CNN/UNet-demo/cnn.h +++ b/Examples/MAX78000/CNN/UNet-demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/UNet-demo/main.c b/Examples/MAX78000/CNN/UNet-demo/main.c index 69794ec1ea1..c672744c300 100644 --- a/Examples/MAX78000/CNN/UNet-demo/main.c +++ b/Examples/MAX78000/CNN/UNet-demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/UNet-demo/softmax.c b/Examples/MAX78000/CNN/UNet-demo/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/UNet-demo/softmax.c +++ b/Examples/MAX78000/CNN/UNet-demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/Makefile b/Examples/MAX78000/CNN/UNet-highres-demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/Makefile +++ b/Examples/MAX78000/CNN/UNet-highres-demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/all_imgs.c index 5f3279ced05..ba5b5aaf053 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/bitmap.h index 65f6f1bc625..a3ee3e73b7c 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/img_1_rgb565.c b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/logo_rgb565.c b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/logo_rgb565.c +++ b/Examples/MAX78000/CNN/UNet-highres-demo/TFT/fthr/img/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.c b/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.c index 66c06581c38..0f3d4d9569b 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.c +++ b/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.h b/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.h index f20522105f7..f55c847ba1e 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.h +++ b/Examples/MAX78000/CNN/UNet-highres-demo/camera_util.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef __CAMERA_UTIL_H__ #define __CAMERA_UTIL_H__ diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/cnn.c b/Examples/MAX78000/CNN/UNet-highres-demo/cnn.c index 23c28fd2cab..836ffb4783d 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/cnn.c +++ b/Examples/MAX78000/CNN/UNet-highres-demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // camvid_unet diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/cnn.h b/Examples/MAX78000/CNN/UNet-highres-demo/cnn.h index f13098b5118..2f8ccfa6c2b 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/cnn.h +++ b/Examples/MAX78000/CNN/UNet-highres-demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/main.c b/Examples/MAX78000/CNN/UNet-highres-demo/main.c index 48de20d2b0c..edc7a0306dd 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/main.c +++ b/Examples/MAX78000/CNN/UNet-highres-demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // unet_v7_fake_passthr diff --git a/Examples/MAX78000/CNN/UNet-highres-demo/softmax.c b/Examples/MAX78000/CNN/UNet-highres-demo/softmax.c index 445714e325d..c5573ac4016 100644 --- a/Examples/MAX78000/CNN/UNet-highres-demo/softmax.c +++ b/Examples/MAX78000/CNN/UNet-highres-demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/Makefile b/Examples/MAX78000/CNN/aisegment_unet-demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/Makefile +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/all_imgs.c index 398b9fee6f7..a1d06e4b373 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) const unsigned char imgs_arr[] = { diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/bitmap.h index 65f6f1bc625..a3ee3e73b7c 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/img_1_rgb565.c b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/logo_rgb565.c b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/logo_rgb565.c +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/TFT/fthr/img/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.c b/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.c index dedeeb640ae..11e56e1d6e6 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.c +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.h b/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.h index f20522105f7..f55c847ba1e 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.h +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/camera_util.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef __CAMERA_UTIL_H__ #define __CAMERA_UTIL_H__ diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.c b/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.c index bcad6bb4035..69698b89820 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.c +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // aisegment_unet diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.h b/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.h index 9dfe96517f9..83a3400d9ed 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.h +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/main.c b/Examples/MAX78000/CNN/aisegment_unet-demo/main.c index 66cf470eb84..9dae41911fb 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/main.c +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/aisegment_unet-demo/softmax.c b/Examples/MAX78000/CNN/aisegment_unet-demo/softmax.c index 445714e325d..c5573ac4016 100644 --- a/Examples/MAX78000/CNN/aisegment_unet-demo/softmax.c +++ b/Examples/MAX78000/CNN/aisegment_unet-demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/aisegment_unet/Makefile b/Examples/MAX78000/CNN/aisegment_unet/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/aisegment_unet/Makefile +++ b/Examples/MAX78000/CNN/aisegment_unet/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/aisegment_unet/cnn.c b/Examples/MAX78000/CNN/aisegment_unet/cnn.c index 41a9a4075d6..395bff137ed 100644 --- a/Examples/MAX78000/CNN/aisegment_unet/cnn.c +++ b/Examples/MAX78000/CNN/aisegment_unet/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // aisegment_unet diff --git a/Examples/MAX78000/CNN/aisegment_unet/cnn.h b/Examples/MAX78000/CNN/aisegment_unet/cnn.h index eae1810ab5a..83eae5171bc 100644 --- a/Examples/MAX78000/CNN/aisegment_unet/cnn.h +++ b/Examples/MAX78000/CNN/aisegment_unet/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/aisegment_unet/main.c b/Examples/MAX78000/CNN/aisegment_unet/main.c index 55d31b128f1..6a65f9a1ba7 100644 --- a/Examples/MAX78000/CNN/aisegment_unet/main.c +++ b/Examples/MAX78000/CNN/aisegment_unet/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // aisegment_unet diff --git a/Examples/MAX78000/CNN/aisegment_unet/softmax.c b/Examples/MAX78000/CNN/aisegment_unet/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/aisegment_unet/softmax.c +++ b/Examples/MAX78000/CNN/aisegment_unet/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/asl/Makefile b/Examples/MAX78000/CNN/asl/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/asl/Makefile +++ b/Examples/MAX78000/CNN/asl/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/asl/cnn.c b/Examples/MAX78000/CNN/asl/cnn.c index 1fc17063fa1..578c8cf0e6a 100644 --- a/Examples/MAX78000/CNN/asl/cnn.c +++ b/Examples/MAX78000/CNN/asl/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // pt-asl_big diff --git a/Examples/MAX78000/CNN/asl/cnn.h b/Examples/MAX78000/CNN/asl/cnn.h index 44d2c45d48b..604442d05b5 100644 --- a/Examples/MAX78000/CNN/asl/cnn.h +++ b/Examples/MAX78000/CNN/asl/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/asl/main.c b/Examples/MAX78000/CNN/asl/main.c index ca79c554b84..7536d8944b4 100644 --- a/Examples/MAX78000/CNN/asl/main.c +++ b/Examples/MAX78000/CNN/asl/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // asl diff --git a/Examples/MAX78000/CNN/asl/softmax.c b/Examples/MAX78000/CNN/asl/softmax.c index 8e9acf2de8a..53e427f516c 100644 --- a/Examples/MAX78000/CNN/asl/softmax.c +++ b/Examples/MAX78000/CNN/asl/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/asl_demo/Makefile b/Examples/MAX78000/CNN/asl_demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/asl_demo/Makefile +++ b/Examples/MAX78000/CNN/asl_demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/asl_demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/asl_demo/TFT/evkit/all_imgs.c index e7fade84f4f..626d6448c5b 100644 --- a/Examples/MAX78000/CNN/asl_demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/asl_demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/asl_demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/asl_demo/TFT/evkit/bitmap.h index b9d2a1f54b2..e2829fdc130 100644 --- a/Examples/MAX78000/CNN/asl_demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/asl_demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/img_1_rgb565.c b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/img_1_rgb565.c index 588018a2da3..914ffdf9e9e 100644 --- a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { // 320x240x2 + 4(header) diff --git a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/logo_rgb565.c index 37448fd1e15..b603d094027 100644 --- a/Examples/MAX78000/CNN/asl_demo/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/asl_demo/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4084] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/asl_demo/cnn.c b/Examples/MAX78000/CNN/asl_demo/cnn.c index eaa7d59c6c3..f3804edb3ee 100644 --- a/Examples/MAX78000/CNN/asl_demo/cnn.c +++ b/Examples/MAX78000/CNN/asl_demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // pt-asl_big diff --git a/Examples/MAX78000/CNN/asl_demo/cnn.h b/Examples/MAX78000/CNN/asl_demo/cnn.h index 44d2c45d48b..604442d05b5 100644 --- a/Examples/MAX78000/CNN/asl_demo/cnn.h +++ b/Examples/MAX78000/CNN/asl_demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/asl_demo/main.c b/Examples/MAX78000/CNN/asl_demo/main.c index bc4987a36a3..947c3607e01 100644 --- a/Examples/MAX78000/CNN/asl_demo/main.c +++ b/Examples/MAX78000/CNN/asl_demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/asl_demo/softmax.c b/Examples/MAX78000/CNN/asl_demo/softmax.c index 445714e325d..c5573ac4016 100644 --- a/Examples/MAX78000/CNN/asl_demo/softmax.c +++ b/Examples/MAX78000/CNN/asl_demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cam01_facedetect_demo/Makefile b/Examples/MAX78000/CNN/cam01_facedetect_demo/Makefile index 128489f8e0c..fec87107890 100644 --- a/Examples/MAX78000/CNN/cam01_facedetect_demo/Makefile +++ b/Examples/MAX78000/CNN/cam01_facedetect_demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.c b/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.c index 859c7559370..911f709a065 100644 --- a/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.c +++ b/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2023 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // facedet_tinierssd // This file was @generated by ai8xize.py --test-dir sdk/Examples/MAX78000/CNN --prefix facedet_tinierssd --checkpoint-file trained/ai85-facedet-tinierssd-qat8-q.pth.tar --config-file networks/ai85-facedet-tinierssd.yaml --sample-input tests/sample_vggface2_facedetection.npy --fifo --device MAX78000 --timer 0 --display-checkpoint --verbose diff --git a/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.h b/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.h index 158830fc0ff..d3304156bff 100644 --- a/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.h +++ b/Examples/MAX78000/CNN/cam01_facedetect_demo/cnn.h @@ -1,9 +1,37 @@ -/************************************************************************************************** -* Copyright (C) 2019-2021 Maxim Integrated Products, Inc. All Rights Reserved. -* -* Maxim Integrated Products, Inc. Default Copyright Notice: -* https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -**************************************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ /* * This header file was automatically @generated for the facedet_tinierssd network from a template. diff --git a/Examples/MAX78000/CNN/cam01_facedetect_demo/main.c b/Examples/MAX78000/CNN/cam01_facedetect_demo/main.c index c517835bd85..ca5f5f21574 100644 --- a/Examples/MAX78000/CNN/cam01_facedetect_demo/main.c +++ b/Examples/MAX78000/CNN/cam01_facedetect_demo/main.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2023 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // facedet_tinierssd // This file was @generated by ai8xize.py --test-dir sdk/Examples/MAX78000/CNN --prefix facedet_tinierssd --checkpoint-file trained/ai85-facedet-tinierssd-qat8-q.pth.tar --config-file networks/ai85-facedet-tinierssd.yaml --sample-input tests/sample_vggface2_facedetection.npy --fifo --device MAX78000 --timer 0 --display-checkpoint --verbose diff --git a/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.c b/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.c index 55cfd388d47..bd295df81b8 100644 --- a/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.c +++ b/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.c @@ -1,6 +1,6 @@ -/******************************************************************************* - * Copyright (C) 2022 Maxim Integrated Products, Inc., All rights Reserved. - * +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * * This software is protected by copyright laws of the United States and * of foreign countries. This material may also be protected by patent laws * and technology transfer regulations of the United States and of foreign @@ -30,7 +30,8 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - *******************************************************************************/ + * + ******************************************************************************/ #include "post_process.h" // #include "facedetection.h" #include "mxc_device.h" diff --git a/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.h b/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.h index 67690f5524f..bf4dbe7ddb7 100644 --- a/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.h +++ b/Examples/MAX78000/CNN/cam01_facedetect_demo/post_process.h @@ -1,6 +1,6 @@ -/******************************************************************************* - * Copyright (C) 2022 Maxim Integrated Products, Inc., All rights Reserved. - * +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * * This software is protected by copyright laws of the United States and * of foreign countries. This material may also be protected by patent laws * and technology transfer regulations of the United States and of foreign @@ -30,7 +30,8 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - *******************************************************************************/ + * + ******************************************************************************/ #include #include #include diff --git a/Examples/MAX78000/CNN/cam01_facedetect_demo/softmax.c b/Examples/MAX78000/CNN/cam01_facedetect_demo/softmax.c index 2d149c7f3a1..b880a713016 100644 --- a/Examples/MAX78000/CNN/cam01_facedetect_demo/softmax.c +++ b/Examples/MAX78000/CNN/cam01_facedetect_demo/softmax.c @@ -16,9 +16,56 @@ * limitations under the License. */ -/* - * Portions Copyright (C) 2020 Maxim Integrated Products, Inc. - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ /* ---------------------------------------------------------------------- * Project: NN Library diff --git a/Examples/MAX78000/CNN/camvid_unet/Makefile b/Examples/MAX78000/CNN/camvid_unet/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/camvid_unet/Makefile +++ b/Examples/MAX78000/CNN/camvid_unet/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/camvid_unet/cnn.c b/Examples/MAX78000/CNN/camvid_unet/cnn.c index 800b5371fae..b463deed442 100644 --- a/Examples/MAX78000/CNN/camvid_unet/cnn.c +++ b/Examples/MAX78000/CNN/camvid_unet/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // camvid_unet diff --git a/Examples/MAX78000/CNN/camvid_unet/cnn.h b/Examples/MAX78000/CNN/camvid_unet/cnn.h index 69eb69a7e8a..ae3c3360bc8 100644 --- a/Examples/MAX78000/CNN/camvid_unet/cnn.h +++ b/Examples/MAX78000/CNN/camvid_unet/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/camvid_unet/main.c b/Examples/MAX78000/CNN/camvid_unet/main.c index 386c745821d..1644441b389 100644 --- a/Examples/MAX78000/CNN/camvid_unet/main.c +++ b/Examples/MAX78000/CNN/camvid_unet/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // camvid_unet diff --git a/Examples/MAX78000/CNN/camvid_unet/softmax.c b/Examples/MAX78000/CNN/camvid_unet/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/camvid_unet/softmax.c +++ b/Examples/MAX78000/CNN/camvid_unet/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cats-dogs/Makefile b/Examples/MAX78000/CNN/cats-dogs/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cats-dogs/Makefile +++ b/Examples/MAX78000/CNN/cats-dogs/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cats-dogs/cnn.c b/Examples/MAX78000/CNN/cats-dogs/cnn.c index 12bc3aa24c4..e7623d03e0a 100644 --- a/Examples/MAX78000/CNN/cats-dogs/cnn.c +++ b/Examples/MAX78000/CNN/cats-dogs/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cats-dogs diff --git a/Examples/MAX78000/CNN/cats-dogs/cnn.h b/Examples/MAX78000/CNN/cats-dogs/cnn.h index 2f8c137e70b..2a0a646429a 100644 --- a/Examples/MAX78000/CNN/cats-dogs/cnn.h +++ b/Examples/MAX78000/CNN/cats-dogs/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cats-dogs/main.c b/Examples/MAX78000/CNN/cats-dogs/main.c index 273c59b0030..15bcae01ace 100644 --- a/Examples/MAX78000/CNN/cats-dogs/main.c +++ b/Examples/MAX78000/CNN/cats-dogs/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cats-dogs diff --git a/Examples/MAX78000/CNN/cats-dogs/softmax.c b/Examples/MAX78000/CNN/cats-dogs/softmax.c index 2d149c7f3a1..b880a713016 100644 --- a/Examples/MAX78000/CNN/cats-dogs/softmax.c +++ b/Examples/MAX78000/CNN/cats-dogs/softmax.c @@ -16,9 +16,56 @@ * limitations under the License. */ -/* - * Portions Copyright (C) 2020 Maxim Integrated Products, Inc. - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ /* ---------------------------------------------------------------------- * Project: NN Library diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/Makefile b/Examples/MAX78000/CNN/cats-dogs_demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/Makefile +++ b/Examples/MAX78000/CNN/cats-dogs_demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/all_imgs.c index d3bd85667b6..b17637cbe95 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/bitmap.h index ddf640aa869..6c9b745e8e1 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/img_1_rgb565.c b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/cats-dogs_demo/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/cnn.c b/Examples/MAX78000/CNN/cats-dogs_demo/cnn.c index 12bc3aa24c4..e7623d03e0a 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/cnn.c +++ b/Examples/MAX78000/CNN/cats-dogs_demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cats-dogs diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/cnn.h b/Examples/MAX78000/CNN/cats-dogs_demo/cnn.h index 2f8c137e70b..2a0a646429a 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/cnn.h +++ b/Examples/MAX78000/CNN/cats-dogs_demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/main.c b/Examples/MAX78000/CNN/cats-dogs_demo/main.c index a2f86342f68..d664b12b36e 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/main.c +++ b/Examples/MAX78000/CNN/cats-dogs_demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/cats-dogs_demo/softmax.c b/Examples/MAX78000/CNN/cats-dogs_demo/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/cats-dogs_demo/softmax.c +++ b/Examples/MAX78000/CNN/cats-dogs_demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cifar-10-auto-test/Makefile b/Examples/MAX78000/CNN/cifar-10-auto-test/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cifar-10-auto-test/Makefile +++ b/Examples/MAX78000/CNN/cifar-10-auto-test/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cifar-10-auto-test/cifar-10-png-loader/main.py b/Examples/MAX78000/CNN/cifar-10-auto-test/cifar-10-png-loader/main.py index 5f69cf8e611..b0e90def0d5 100644 --- a/Examples/MAX78000/CNN/cifar-10-auto-test/cifar-10-png-loader/main.py +++ b/Examples/MAX78000/CNN/cifar-10-auto-test/cifar-10-png-loader/main.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ''' diff --git a/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.c b/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.c index 197a3c4dfc4..6a2fce8d954 100644 --- a/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.c +++ b/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-10 diff --git a/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.h b/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.h index d54bcd06d6c..4d7f340fc11 100644 --- a/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.h +++ b/Examples/MAX78000/CNN/cifar-10-auto-test/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cifar-10-auto-test/main.c b/Examples/MAX78000/CNN/cifar-10-auto-test/main.c index b8dde541a18..1adffe41578 100644 --- a/Examples/MAX78000/CNN/cifar-10-auto-test/main.c +++ b/Examples/MAX78000/CNN/cifar-10-auto-test/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-10-auto-test diff --git a/Examples/MAX78000/CNN/cifar-10-auto-test/softmax.c b/Examples/MAX78000/CNN/cifar-10-auto-test/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/cifar-10-auto-test/softmax.c +++ b/Examples/MAX78000/CNN/cifar-10-auto-test/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cifar-10/Makefile b/Examples/MAX78000/CNN/cifar-10/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cifar-10/Makefile +++ b/Examples/MAX78000/CNN/cifar-10/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cifar-10/cnn.c b/Examples/MAX78000/CNN/cifar-10/cnn.c index 34fd64bd5f5..320d186a576 100644 --- a/Examples/MAX78000/CNN/cifar-10/cnn.c +++ b/Examples/MAX78000/CNN/cifar-10/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-10 diff --git a/Examples/MAX78000/CNN/cifar-10/cnn.h b/Examples/MAX78000/CNN/cifar-10/cnn.h index d3b0483cffc..cb64124449a 100644 --- a/Examples/MAX78000/CNN/cifar-10/cnn.h +++ b/Examples/MAX78000/CNN/cifar-10/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cifar-10/main.c b/Examples/MAX78000/CNN/cifar-10/main.c index 60130bafa6f..4a0f155de15 100644 --- a/Examples/MAX78000/CNN/cifar-10/main.c +++ b/Examples/MAX78000/CNN/cifar-10/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-10 diff --git a/Examples/MAX78000/CNN/cifar-10/softmax.c b/Examples/MAX78000/CNN/cifar-10/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/cifar-10/softmax.c +++ b/Examples/MAX78000/CNN/cifar-10/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cifar-100-mixed/Makefile b/Examples/MAX78000/CNN/cifar-100-mixed/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cifar-100-mixed/Makefile +++ b/Examples/MAX78000/CNN/cifar-100-mixed/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cifar-100-mixed/cnn.c b/Examples/MAX78000/CNN/cifar-100-mixed/cnn.c index c848ebcd875..5959eb6b72a 100644 --- a/Examples/MAX78000/CNN/cifar-100-mixed/cnn.c +++ b/Examples/MAX78000/CNN/cifar-100-mixed/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-mixed diff --git a/Examples/MAX78000/CNN/cifar-100-mixed/cnn.h b/Examples/MAX78000/CNN/cifar-100-mixed/cnn.h index bf0020c0668..fef963e47d3 100644 --- a/Examples/MAX78000/CNN/cifar-100-mixed/cnn.h +++ b/Examples/MAX78000/CNN/cifar-100-mixed/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cifar-100-mixed/main.c b/Examples/MAX78000/CNN/cifar-100-mixed/main.c index 29325800bc4..9481a57d7f8 100644 --- a/Examples/MAX78000/CNN/cifar-100-mixed/main.c +++ b/Examples/MAX78000/CNN/cifar-100-mixed/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-mixed diff --git a/Examples/MAX78000/CNN/cifar-100-mixed/softmax.c b/Examples/MAX78000/CNN/cifar-100-mixed/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/cifar-100-mixed/softmax.c +++ b/Examples/MAX78000/CNN/cifar-100-mixed/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cifar-100-residual/Makefile b/Examples/MAX78000/CNN/cifar-100-residual/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cifar-100-residual/Makefile +++ b/Examples/MAX78000/CNN/cifar-100-residual/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cifar-100-residual/cnn.c b/Examples/MAX78000/CNN/cifar-100-residual/cnn.c index 47713c7be72..e753f03481e 100644 --- a/Examples/MAX78000/CNN/cifar-100-residual/cnn.c +++ b/Examples/MAX78000/CNN/cifar-100-residual/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-residual diff --git a/Examples/MAX78000/CNN/cifar-100-residual/cnn.h b/Examples/MAX78000/CNN/cifar-100-residual/cnn.h index 1c381d7c58f..171338c2ce6 100644 --- a/Examples/MAX78000/CNN/cifar-100-residual/cnn.h +++ b/Examples/MAX78000/CNN/cifar-100-residual/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cifar-100-residual/main.c b/Examples/MAX78000/CNN/cifar-100-residual/main.c index 111b43c4033..1e00b81e704 100644 --- a/Examples/MAX78000/CNN/cifar-100-residual/main.c +++ b/Examples/MAX78000/CNN/cifar-100-residual/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-residual diff --git a/Examples/MAX78000/CNN/cifar-100-residual/softmax.c b/Examples/MAX78000/CNN/cifar-100-residual/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/cifar-100-residual/softmax.c +++ b/Examples/MAX78000/CNN/cifar-100-residual/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/Makefile b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/Makefile +++ b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.c b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.c index eb46e32f42a..e561179d8a4 100644 --- a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.c +++ b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-simplewide2x-mixed diff --git a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.h b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.h index a10cd655818..65173b3f55d 100644 --- a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.h +++ b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/main.c b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/main.c index 16e083a2d6c..42cbfeb6f9c 100644 --- a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/main.c +++ b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-simplewide2x-mixed diff --git a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/softmax.c b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/softmax.c +++ b/Examples/MAX78000/CNN/cifar-100-simplewide2x-mixed/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/cifar-100/Makefile b/Examples/MAX78000/CNN/cifar-100/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/cifar-100/Makefile +++ b/Examples/MAX78000/CNN/cifar-100/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/cifar-100/cnn.c b/Examples/MAX78000/CNN/cifar-100/cnn.c index ae85bfcf12f..29451edf3ac 100644 --- a/Examples/MAX78000/CNN/cifar-100/cnn.c +++ b/Examples/MAX78000/CNN/cifar-100/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100 diff --git a/Examples/MAX78000/CNN/cifar-100/cnn.h b/Examples/MAX78000/CNN/cifar-100/cnn.h index 274c87bb379..7687b513e4d 100644 --- a/Examples/MAX78000/CNN/cifar-100/cnn.h +++ b/Examples/MAX78000/CNN/cifar-100/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/cifar-100/main.c b/Examples/MAX78000/CNN/cifar-100/main.c index 1872cea2da8..842cdc6ea94 100644 --- a/Examples/MAX78000/CNN/cifar-100/main.c +++ b/Examples/MAX78000/CNN/cifar-100/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100 diff --git a/Examples/MAX78000/CNN/cifar-100/softmax.c b/Examples/MAX78000/CNN/cifar-100/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/cifar-100/softmax.c +++ b/Examples/MAX78000/CNN/cifar-100/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/digit-detection-demo/Makefile b/Examples/MAX78000/CNN/digit-detection-demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/Makefile +++ b/Examples/MAX78000/CNN/digit-detection-demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/all_imgs.c b/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/all_imgs.c index 060e80a7f7c..bcab7140b4c 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/all_imgs.c +++ b/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/bitmap.h b/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/bitmap.h index 65f6f1bc625..a3ee3e73b7c 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/bitmap.h +++ b/Examples/MAX78000/CNN/digit-detection-demo/TFT/evkit/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/img_1_rgb565.c b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/logo_rgb565.c b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/logo_rgb565.c +++ b/Examples/MAX78000/CNN/digit-detection-demo/TFT/fthr/img/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/digit-detection-demo/cnn.c b/Examples/MAX78000/CNN/digit-detection-demo/cnn.c index 693eac7adea..23c4768670d 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/cnn.c +++ b/Examples/MAX78000/CNN/digit-detection-demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // tinyssd_svhn_prior_unload diff --git a/Examples/MAX78000/CNN/digit-detection-demo/cnn.h b/Examples/MAX78000/CNN/digit-detection-demo/cnn.h index 1c1d682f9ef..daef04bba34 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/cnn.h +++ b/Examples/MAX78000/CNN/digit-detection-demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/digit-detection-demo/main.c b/Examples/MAX78000/CNN/digit-detection-demo/main.c index 72900c8c102..751e9d34a4c 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/main.c +++ b/Examples/MAX78000/CNN/digit-detection-demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/digit-detection-demo/post_process.c b/Examples/MAX78000/CNN/digit-detection-demo/post_process.c index be960529026..87c2eabd140 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/post_process.c +++ b/Examples/MAX78000/CNN/digit-detection-demo/post_process.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "post_process.h" #include "tft_utils.h" diff --git a/Examples/MAX78000/CNN/digit-detection-demo/post_process.h b/Examples/MAX78000/CNN/digit-detection-demo/post_process.h index cb8396b62eb..622138850cd 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/post_process.h +++ b/Examples/MAX78000/CNN/digit-detection-demo/post_process.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.c b/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.c index 7bd9485b6c2..cd01b0bb7d6 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.c +++ b/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.h b/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.h index 33e9cb2d049..371ceee790c 100644 --- a/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.h +++ b/Examples/MAX78000/CNN/digit-detection-demo/tft_utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifdef BOARD_EVKIT_V1 #include "bitmap.h" diff --git a/Examples/MAX78000/CNN/faceid/Makefile b/Examples/MAX78000/CNN/faceid/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/faceid/Makefile +++ b/Examples/MAX78000/CNN/faceid/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/faceid/cnn.c b/Examples/MAX78000/CNN/faceid/cnn.c index 4f7b5d1df4f..c4e0cda086f 100644 --- a/Examples/MAX78000/CNN/faceid/cnn.c +++ b/Examples/MAX78000/CNN/faceid/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // faceid diff --git a/Examples/MAX78000/CNN/faceid/cnn.h b/Examples/MAX78000/CNN/faceid/cnn.h index c6428c2169d..3c2fb0c8f8d 100644 --- a/Examples/MAX78000/CNN/faceid/cnn.h +++ b/Examples/MAX78000/CNN/faceid/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/faceid/main.c b/Examples/MAX78000/CNN/faceid/main.c index 97cf8bbf8f2..0515cda0dfb 100644 --- a/Examples/MAX78000/CNN/faceid/main.c +++ b/Examples/MAX78000/CNN/faceid/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/faceid/softmax.c b/Examples/MAX78000/CNN/faceid/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/faceid/softmax.c +++ b/Examples/MAX78000/CNN/faceid/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/faceid_demo/Makefile b/Examples/MAX78000/CNN/faceid_demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/faceid_demo/Makefile +++ b/Examples/MAX78000/CNN/faceid_demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/ai85_adapter.py b/Examples/MAX78000/CNN/faceid_demo/demo/ai85_adapter.py index cb0897d58d1..3396bfd1a52 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/ai85_adapter.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/ai85_adapter.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains adapter implementations for MAX78000 EvKit to get CNN model output. """ diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/cam_thread.py b/Examples/MAX78000/CNN/faceid_demo/demo/cam_thread.py index 8f85b5d649d..070d8839c9b 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/cam_thread.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/cam_thread.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Thread to capture image from camera continiously """ import time diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/camera.py b/Examples/MAX78000/CNN/faceid_demo/demo/camera.py index 6ca75b93322..31c003e41e9 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/camera.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/camera.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Includes camera class to capture image """ import cv2 diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/face_identifier.py b/Examples/MAX78000/CNN/faceid_demo/demo/face_identifier.py index ef198c8a9cd..210fc561458 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/face_identifier.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/face_identifier.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Includes face identifier class to decide on person for given embedding """ import time diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/image_utils.py b/Examples/MAX78000/CNN/faceid_demo/demo/image_utils.py index d1a5dffdd8d..600b4df069e 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/image_utils.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/image_utils.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Functions for image processing """ diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/mtcnn.py b/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/mtcnn.py index 205fb35b36f..9c8778228fb 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/mtcnn.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/mtcnn.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/utils/detect_face.py b/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/utils/detect_face.py index 2490cf1c5aa..9b9536eea65 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/utils/detect_face.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/mtcnn/utils/detect_face.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78000/CNN/faceid_demo/demo/run_demo.py b/Examples/MAX78000/CNN/faceid_demo/demo/run_demo.py index 92d6dd29cf9..d50c6a43340 100644 --- a/Examples/MAX78000/CNN/faceid_demo/demo/run_demo.py +++ b/Examples/MAX78000/CNN/faceid_demo/demo/run_demo.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """This is the demo application for Face Identification which utilizes MAX78000 EvKit to get CNN model output. diff --git a/Examples/MAX78000/CNN/faceid_demo/main_faceid.c b/Examples/MAX78000/CNN/faceid_demo/main_faceid.c index 74c3aeac479..eba02226c54 100644 --- a/Examples/MAX78000/CNN/faceid_demo/main_faceid.c +++ b/Examples/MAX78000/CNN/faceid_demo/main_faceid.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // faceid_seq_nobias diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile b/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile index 0ecfa0fa9a8..0d6b752a17a 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(PROJECT)" "" PROJECT=max78000 diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.ARM b/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.ARM index 85610a4468a..e7fea5161c9 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.ARM +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.ARM @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.RISCV b/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.RISCV index dc1d8cbc746..77530ec94e1 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.RISCV +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/Makefile.RISCV @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/all_imgs.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/all_imgs.c index 35432b80d0a..a8e7a1b1041 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/all_imgs.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/bitmap.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/bitmap.h index 7b72311be5f..ef5202f9e01 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/bitmap.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/evkit/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/bmp2c.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/bmp2c.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/template.txt b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/template.txt +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/Utility/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/logo_rgb565.c index 37448fd1e15..b603d094027 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4084] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/AI85FaceIDNetNoBias.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/AI85FaceIDNetNoBias.py index 9c5c8ad2852..b2812f74476 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/AI85FaceIDNetNoBias.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/AI85FaceIDNetNoBias.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ FaceID network for AI85/AI86 diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_adapter.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_adapter.py index 95e2c822c5b..a5925300fca 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_adapter.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_adapter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains adapter implementations for MAX78000 EvKit to get CNN model output. """ import time diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_simulator.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_simulator.py index 2e054e53f42..77e5dd5750f 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_simulator.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai85_simulator.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains MAX78000 simulator implementations to get CNN model output. """ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai8x.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai8x.py index effb88c4a64..895b511db37 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai8x.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/ai85/ai8x.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Contains the limits of the AI84/AI85/AI86 implementations and custom PyTorch modules that take the limits into account. diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/generate_face_db.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/generate_face_db.py index 931dd310990..cd630e7679d 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/generate_face_db.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/generate_face_db.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Script to generate Face Id embeddings diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/mtcnn.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/mtcnn.py index 205fb35b36f..9c8778228fb 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/mtcnn.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/mtcnn.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/utils/detect_face.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/utils/detect_face.py index 2490cf1c5aa..9b9536eea65 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/utils/detect_face.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/mtcnn/utils/detect_face.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/utils.py b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/utils.py index b24fd0f532f..77caf86c68a 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/utils.py +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/db_gen/utils.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Utility functions to generate embeddings and I/O operations diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/MAXCAM_Debug.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/MAXCAM_Debug.h index ba68441b603..eff55656f07 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/MAXCAM_Debug.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/MAXCAM_Debug.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef MAXCAM_DEBUG_H_ #define MAXCAM_DEBUG_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/cnn.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/cnn.h index 030045b5883..4fb5a4ffe03 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/cnn.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embedding_process.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embedding_process.h index 71a85daa541..e584700d724 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embedding_process.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embedding_process.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMBEDDINGS_PROCESS_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embeddings.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embeddings.h index 46b8ce37114..4b5799e0feb 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embeddings.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/embeddings.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMBEDDINGS_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/faceID.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/faceID.h index a4956a1c86e..da97ae5d24d 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/faceID.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/faceID.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _FACEID_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/keypad.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/keypad.h index 597c1327029..3991d2eb5d5 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/keypad.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/keypad.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _KEYPAD_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/state.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/state.h index 8be6a3a1794..556f43bf469 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/state.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/state.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _STATE_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/utils.h b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/utils.h index b8f63d1e621..f4bd1ed71de 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/include/utils.h +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/include/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _UTILS_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/main.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/main.c index abedf80f034..dc70a7874fa 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/main.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/main_riscv.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/main_riscv.c index c804f830b3f..ec09dd5d8bf 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/main_riscv.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/main_riscv.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/cnn.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/cnn.c index c21cc6754e7..5d0a1faa1d1 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/cnn.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // faceid diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/embedding_process.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/embedding_process.c index 0ffc4e9283e..2d5c621031c 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/embedding_process.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/embedding_process.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state.c index ea1eb7701cf..b26f46a8a44 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_faceID.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_faceID.c index 25f63ab5565..b20d97dbb7f 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_faceID.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_faceID.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "board.h" diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_home.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_home.c index 0dbbb189b36..e964d25c328 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_home.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/state_home.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "board.h" diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c index fa849683033..036626b47ec 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/faceid_evkit/Makefile b/Examples/MAX78000/CNN/faceid_evkit/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/Makefile +++ b/Examples/MAX78000/CNN/faceid_evkit/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/all_imgs.c b/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/all_imgs.c index 35432b80d0a..a8e7a1b1041 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/all_imgs.c +++ b/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/bitmap.h b/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/bitmap.h index 7b72311be5f..ef5202f9e01 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/bitmap.h +++ b/Examples/MAX78000/CNN/faceid_evkit/TFT/evkit/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/bmp2c.py b/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/bmp2c.py +++ b/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/template.txt b/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/template.txt +++ b/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/Utility/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/logo_rgb565.c index 37448fd1e15..b603d094027 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/faceid_evkit/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4084] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py index 6cade7617de..115f5711206 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ FaceID network for AI85/AI86 diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py index 95e2c822c5b..a5925300fca 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains adapter implementations for MAX78000 EvKit to get CNN model output. """ import time diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py index 71264abd0b5..7379fc7cd23 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains MAX78000 simulator implementations to get CNN model output. """ diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai8x.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai8x.py index f970b38ec4f..7697e0f4b66 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai8x.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/ai8x.py @@ -1,11 +1,37 @@ -################################################################################################### -# -# Copyright (C) 2020-2022 Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Contains the limits of the MAX78000 implementations and custom PyTorch modules that take the limits into account. diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/devices.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/devices.py index ab72514a716..b922bc56759 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/devices.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/ai85/devices.py @@ -1,10 +1,37 @@ -################################################################################################### -# Copyright (C) Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Part number and device type conversion """ diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/generate_face_db.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/generate_face_db.py index 78b8276ce1f..67212665a66 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/generate_face_db.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/generate_face_db.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Script to generate Face Id embeddings diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py index 205fb35b36f..9c8778228fb 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py index a0d8d87ec07..f018a91bc4f 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78000/CNN/faceid_evkit/db_gen/utils.py b/Examples/MAX78000/CNN/faceid_evkit/db_gen/utils.py index 3ffbade2d5b..3e94beb942a 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/db_gen/utils.py +++ b/Examples/MAX78000/CNN/faceid_evkit/db_gen/utils.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Utility functions to generate embeddings and I/O operations diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/MAXCAM_Debug.h b/Examples/MAX78000/CNN/faceid_evkit/include/MAXCAM_Debug.h index ba68441b603..eff55656f07 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/MAXCAM_Debug.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/MAXCAM_Debug.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef MAXCAM_DEBUG_H_ #define MAXCAM_DEBUG_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/cnn.h b/Examples/MAX78000/CNN/faceid_evkit/include/cnn.h index 030045b5883..4fb5a4ffe03 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/cnn.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/embedding_process.h b/Examples/MAX78000/CNN/faceid_evkit/include/embedding_process.h index 71a85daa541..e584700d724 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/embedding_process.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/embedding_process.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMBEDDINGS_PROCESS_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/embeddings.h b/Examples/MAX78000/CNN/faceid_evkit/include/embeddings.h index 46b8ce37114..4b5799e0feb 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/embeddings.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/embeddings.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMBEDDINGS_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/faceID.h b/Examples/MAX78000/CNN/faceid_evkit/include/faceID.h index 73f058aaff3..2e800085726 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/faceID.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/faceID.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _FACEID_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/keypad.h b/Examples/MAX78000/CNN/faceid_evkit/include/keypad.h index 597c1327029..3991d2eb5d5 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/keypad.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/keypad.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _KEYPAD_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/state.h b/Examples/MAX78000/CNN/faceid_evkit/include/state.h index 8be6a3a1794..556f43bf469 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/state.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/state.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _STATE_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/include/utils.h b/Examples/MAX78000/CNN/faceid_evkit/include/utils.h index b8f63d1e621..f4bd1ed71de 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/include/utils.h +++ b/Examples/MAX78000/CNN/faceid_evkit/include/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _UTILS_H_ diff --git a/Examples/MAX78000/CNN/faceid_evkit/main.c b/Examples/MAX78000/CNN/faceid_evkit/main.c index bd4957d16f9..41d47d340d2 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/main.c +++ b/Examples/MAX78000/CNN/faceid_evkit/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/faceid_evkit/src/cnn.c b/Examples/MAX78000/CNN/faceid_evkit/src/cnn.c index 89d48483a71..061f2b7fac1 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/src/cnn.c +++ b/Examples/MAX78000/CNN/faceid_evkit/src/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // faceid diff --git a/Examples/MAX78000/CNN/faceid_evkit/src/embedding_process.c b/Examples/MAX78000/CNN/faceid_evkit/src/embedding_process.c index 0ffc4e9283e..2d5c621031c 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/src/embedding_process.c +++ b/Examples/MAX78000/CNN/faceid_evkit/src/embedding_process.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/faceid_evkit/src/state.c b/Examples/MAX78000/CNN/faceid_evkit/src/state.c index ea1eb7701cf..b26f46a8a44 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/src/state.c +++ b/Examples/MAX78000/CNN/faceid_evkit/src/state.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/faceid_evkit/src/state_faceID.c b/Examples/MAX78000/CNN/faceid_evkit/src/state_faceID.c index 902641f4c69..01b9dfb7b61 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/src/state_faceID.c +++ b/Examples/MAX78000/CNN/faceid_evkit/src/state_faceID.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/faceid_evkit/src/state_home.c b/Examples/MAX78000/CNN/faceid_evkit/src/state_home.c index b494582627e..409ded3ca55 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/src/state_home.c +++ b/Examples/MAX78000/CNN/faceid_evkit/src/state_home.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "board.h" diff --git a/Examples/MAX78000/CNN/faceid_evkit/src/utils.c b/Examples/MAX78000/CNN/faceid_evkit/src/utils.c index d563e6092e8..3f8aefbd4dc 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/src/utils.c +++ b/Examples/MAX78000/CNN/faceid_evkit/src/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/facial_recognition/Makefile b/Examples/MAX78000/CNN/facial_recognition/Makefile index 5163ab38db1..58480a6cf4b 100644 --- a/Examples/MAX78000/CNN/facial_recognition/Makefile +++ b/Examples/MAX78000/CNN/facial_recognition/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/Makefile b/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/Makefile index 92d9d0d55c8..e0d25cf3fbc 100644 --- a/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/Makefile +++ b/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/main.c b/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/main.c index 1fc502300b0..e9d529b426d 100644 --- a/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/main.c +++ b/Examples/MAX78000/CNN/facial_recognition/SDHC_weights/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/bmp2c.py b/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/bmp2c.py index 7c2ec62315c..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/bmp2c.py +++ b/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/template.txt b/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/template.txt index bc07bf2f842..3531d061f59 100644 --- a/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/template.txt +++ b/Examples/MAX78000/CNN/facial_recognition/TFT/fthr/Utility/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_adapter.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_adapter.py index d51c0787698..015a84ba898 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_adapter.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_adapter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains adapter implementations for MAX78000 EvKit to get CNN model output. """ import time diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_adapter.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_adapter.py index 52b71ff5206..0fa9e9c205c 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_adapter.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_adapter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains adapter implementations for MAX78000 EvKit to get CNN model output. """ import time diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_simulator.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_simulator.py index f60be698aec..290201711c7 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_simulator.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_facedet_simulator.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains MAX78000 simulator implementations to get CNN model output. """ import numpy as np diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_simulator.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_simulator.py index 07ac271c259..a7b6c17f3f8 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_simulator.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85_simulator.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains MAX78000 simulator implementations to get CNN model output. """ import numpy as np diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_faceid.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_faceid.py index 26de4ceba5e..2dbdc29bff2 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_faceid.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_faceid.py @@ -1,11 +1,37 @@ -################################################################################################### -# -# Copyright (C) 2019-2020 Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ FaceID network for AI85/AI86 diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_tinierssd_face.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_tinierssd_face.py index b0ce947feaf..d722631221c 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_tinierssd_face.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai85net_tinierssd_face.py @@ -1,15 +1,37 @@ -################################################################################################### -# -# Copyright (C) 2022 Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -# detect_objects function is adopted from: GitHub repository: -# https://github.com/sgrvinod/a-PyTorch-Tutorial-to-Object-Detection: -# MIT License -# Copyright (c) 2019 Sagar Vinodababu -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Tiny SSD (Single Shot Detector) Variant Model for Face Detection """ diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai8x.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai8x.py index 5bad29f7742..9d6b98daa89 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai8x.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/ai8x.py @@ -1,11 +1,37 @@ -################################################################################################### -# -# Copyright (C) 2020-2022 Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Contains the limits of the MAX78000 implementations and custom PyTorch modules that take the limits into account. diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/devices.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/devices.py index ab72514a716..b922bc56759 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/devices.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/ai85/devices.py @@ -1,10 +1,37 @@ -################################################################################################### -# Copyright (C) Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Part number and device type conversion """ diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/generate_face_db.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/generate_face_db.py index 017e91535ec..0929730d38f 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/generate_face_db.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/generate_face_db.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Script to generate Face Id embeddings diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/object_detection_utils.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/object_detection_utils.py index 43b449d9caf..6d15866140d 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/object_detection_utils.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/object_detection_utils.py @@ -1,10 +1,37 @@ -################################################################################################### -# -# Copyright (C) 2022 Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### # # GitHub repo for the below helper methods: # https://github.com/sgrvinod/a-PyTorch-Tutorial-to-Object-Detection: diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/parse_qat_yaml.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/parse_qat_yaml.py index 5d2b12ade79..9d7ce3c3c98 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/parse_qat_yaml.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/parse_qat_yaml.py @@ -1,11 +1,37 @@ -################################################################################################### -# -# Copyright (C) 2020-2021 Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Parses YAML file used to define Quantization Aware Training """ diff --git a/Examples/MAX78000/CNN/facial_recognition/db_gen/utils.py b/Examples/MAX78000/CNN/facial_recognition/db_gen/utils.py index a2507e02b81..2fea8bec356 100644 --- a/Examples/MAX78000/CNN/facial_recognition/db_gen/utils.py +++ b/Examples/MAX78000/CNN/facial_recognition/db_gen/utils.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Utility functions to generate embeddings and I/O operations diff --git a/Examples/MAX78000/CNN/facial_recognition/include/MAXCAM_Debug.h b/Examples/MAX78000/CNN/facial_recognition/include/MAXCAM_Debug.h index fecb7f7085a..eff55656f07 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/MAXCAM_Debug.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/MAXCAM_Debug.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef MAXCAM_DEBUG_H_ #define MAXCAM_DEBUG_H_ diff --git a/Examples/MAX78000/CNN/facial_recognition/include/cnn_1.h b/Examples/MAX78000/CNN/facial_recognition/include/cnn_1.h index c1c34fc0844..1d2cbaf97b3 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/cnn_1.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/cnn_1.h @@ -1,9 +1,37 @@ -/************************************************************************************************** -* Copyright (C) 2019-2021 Maxim Integrated Products, Inc. All Rights Reserved. -* -* Maxim Integrated Products, Inc. Default Copyright Notice: -* https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -**************************************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ /* * This header file was automatically generated for the facedetection network from a template. diff --git a/Examples/MAX78000/CNN/facial_recognition/include/cnn_2.h b/Examples/MAX78000/CNN/facial_recognition/include/cnn_2.h index a2374e1184b..18b97d8700a 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/cnn_2.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/cnn_2.h @@ -1,9 +1,37 @@ -/************************************************************************************************** -* Copyright (C) 2019-2023 Maxim Integrated Products, Inc. All Rights Reserved. -* -* Maxim Integrated Products, Inc. Default Copyright Notice: -* https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -**************************************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ /* * This header file was automatically generated for the faceid_aug_qat_best network from a template. diff --git a/Examples/MAX78000/CNN/facial_recognition/include/embedding_process.h b/Examples/MAX78000/CNN/facial_recognition/include/embedding_process.h index a6c45b2cac5..ddc5ee1e101 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/embedding_process.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/embedding_process.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMBEDDINGS_PROCESS_H_ diff --git a/Examples/MAX78000/CNN/facial_recognition/include/faceID.h b/Examples/MAX78000/CNN/facial_recognition/include/faceID.h index f9fcbac2483..4e9cdeb837b 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/faceID.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/faceID.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _FACEID_H_ diff --git a/Examples/MAX78000/CNN/facial_recognition/include/facedetection.h b/Examples/MAX78000/CNN/facial_recognition/include/facedetection.h index 7a9de40ac7d..97b803e45b1 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/facedetection.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/facedetection.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _FACEDETECTION_H_ diff --git a/Examples/MAX78000/CNN/facial_recognition/include/post_process.h b/Examples/MAX78000/CNN/facial_recognition/include/post_process.h index 62364dd93f1..2e43ca54589 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/post_process.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/post_process.h @@ -1,6 +1,6 @@ -/******************************************************************************* - * Copyright (C) 2022 Maxim Integrated Products, Inc., All rights Reserved. - * +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * * This software is protected by copyright laws of the United States and * of foreign countries. This material may also be protected by patent laws * and technology transfer regulations of the United States and of foreign @@ -30,7 +30,8 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - *******************************************************************************/ + * + ******************************************************************************/ #include #include #include diff --git a/Examples/MAX78000/CNN/facial_recognition/include/tft_utils.h b/Examples/MAX78000/CNN/facial_recognition/include/tft_utils.h index fa51ca23941..6af05a6f5ab 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/tft_utils.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/tft_utils.h @@ -1,6 +1,6 @@ -/******************************************************************************* - * Copyright (C) 2022 Maxim Integrated Products, Inc., All rights Reserved. - * +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * * This software is protected by copyright laws of the United States and * of foreign countries. This material may also be protected by patent laws * and technology transfer regulations of the United States and of foreign @@ -30,7 +30,8 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - *******************************************************************************/ + * + ******************************************************************************/ void draw_obj_rect(float *xy, uint32_t w, uint32_t h); void setup_dma_tft(uint32_t *src_ptr); diff --git a/Examples/MAX78000/CNN/facial_recognition/include/utils.h b/Examples/MAX78000/CNN/facial_recognition/include/utils.h index 06fab57e800..f4bd1ed71de 100644 --- a/Examples/MAX78000/CNN/facial_recognition/include/utils.h +++ b/Examples/MAX78000/CNN/facial_recognition/include/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _UTILS_H_ diff --git a/Examples/MAX78000/CNN/facial_recognition/main.c b/Examples/MAX78000/CNN/facial_recognition/main.c index 0e06f365523..ee9f0ae7a47 100644 --- a/Examples/MAX78000/CNN/facial_recognition/main.c +++ b/Examples/MAX78000/CNN/facial_recognition/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/facial_recognition/src/cnn_1.c b/Examples/MAX78000/CNN/facial_recognition/src/cnn_1.c index 90d658a5dce..41a0604ba4d 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/cnn_1.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/cnn_1.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2022 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // facedetection // Created using ai8xize.py --test-dir sdk/Examples/MAX78000/CNN --prefix facedetection --checkpoint-file trained/ai85-facedetection3-qat8-q.pth.tar --config-file networks/face-tinierssd.yaml --overwrite --fifo --device MAX78000 --timer 0 --display-checkpoint --verbose diff --git a/Examples/MAX78000/CNN/facial_recognition/src/cnn_2.c b/Examples/MAX78000/CNN/facial_recognition/src/cnn_2.c index e9c998f633d..9fe8b4382d5 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/cnn_2.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/cnn_2.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2023 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // faceid_aug_qat_best // This file was @generated by ai8xize.py --test-dir sdk/Examples/MAX78000/CNN --prefix faceid_aug_qat_best --checkpoint-file trained/ai85_faceid_aug_qat_best-q.pth.tar --config-file networks/faceid.yaml --fifo --overwrite --device MAX78000 --timer 0 --display-checkpoint --verbose diff --git a/Examples/MAX78000/CNN/facial_recognition/src/embedding_process.c b/Examples/MAX78000/CNN/facial_recognition/src/embedding_process.c index 2c64c6196c4..fa4f23f4d38 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/embedding_process.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/embedding_process.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/facial_recognition/src/faceID.c b/Examples/MAX78000/CNN/facial_recognition/src/faceID.c index f4fa292f214..f55f0fc9147 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/faceID.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/faceID.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/facial_recognition/src/facedetection.c b/Examples/MAX78000/CNN/facial_recognition/src/facedetection.c index d02ebe01984..8aa33749ee9 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/facedetection.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/facedetection.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/CNN/facial_recognition/src/post_process.c b/Examples/MAX78000/CNN/facial_recognition/src/post_process.c index c976577b17d..f16155fe742 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/post_process.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/post_process.c @@ -1,6 +1,6 @@ -/******************************************************************************* - * Copyright (C) 2022 Maxim Integrated Products, Inc., All rights Reserved. - * +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * * This software is protected by copyright laws of the United States and * of foreign countries. This material may also be protected by patent laws * and technology transfer regulations of the United States and of foreign @@ -30,7 +30,8 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - *******************************************************************************/ + * + ******************************************************************************/ #include "post_process.h" #include "tft_utils.h" #include "facedetection.h" diff --git a/Examples/MAX78000/CNN/facial_recognition/src/sd.c b/Examples/MAX78000/CNN/facial_recognition/src/sd.c index 645600945a8..1554950cb83 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/sd.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/sd.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/CNN/facial_recognition/src/tft_utils.c b/Examples/MAX78000/CNN/facial_recognition/src/tft_utils.c index 6e18ee46cc2..1f8c9821911 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/tft_utils.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/tft_utils.c @@ -1,6 +1,6 @@ -/******************************************************************************* - * Copyright (C) 2022 Maxim Integrated Products, Inc., All rights Reserved. - * +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * * This software is protected by copyright laws of the United States and * of foreign countries. This material may also be protected by patent laws * and technology transfer regulations of the United States and of foreign @@ -30,7 +30,8 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - *******************************************************************************/ + * + ******************************************************************************/ #include #include #include "mxc.h" diff --git a/Examples/MAX78000/CNN/facial_recognition/src/utils.c b/Examples/MAX78000/CNN/facial_recognition/src/utils.c index d04f91aa676..036626b47ec 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/utils.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile b/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile index 0ecfa0fa9a8..0d6b752a17a 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(PROJECT)" "" PROJECT=max78000 diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.ARM b/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.ARM index 0af47154081..a7b27ef8773 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.ARM +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.ARM @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.RISCV b/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.RISCV index 32571f9588c..0f44aaa4d08 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.RISCV +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/Makefile.RISCV @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/all_imgs.c index d3bd85667b6..b17637cbe95 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/bitmap.h index ddf640aa869..6c9b745e8e1 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/img_1_rgb565.c b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/RealtimeAudio.py b/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/RealtimeAudio.py index 71ced758a68..0d618828528 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/RealtimeAudio.py +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/RealtimeAudio.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Utility to load a wave file and convert to headerfile, detect silence and keywords, split into 16K samples and display waveform diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/VoiceRecorder.py b/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/VoiceRecorder.py index 8177f6c055b..11a86233418 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/VoiceRecorder.py +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/Utility/VoiceRecorder.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Voice recorder """ diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.c b/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.c index 56d167b59f8..cd37ce41c16 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.c +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // kws20_v3 diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.h b/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.h index a42c9c3851f..d1e7e9e8e73 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.h +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/main.c b/Examples/MAX78000/CNN/kws20_demo-riscv/main.c index 5b87a797195..a171c772e61 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/main.c +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // ARM wrapper code diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/main_riscv.c b/Examples/MAX78000/CNN/kws20_demo-riscv/main_riscv.c index 09be6650e06..49e71832d4a 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/main_riscv.c +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/main_riscv.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/kws20_demo-riscv/softmax.c b/Examples/MAX78000/CNN/kws20_demo-riscv/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/kws20_demo-riscv/softmax.c +++ b/Examples/MAX78000/CNN/kws20_demo-riscv/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/kws20_demo/Makefile b/Examples/MAX78000/CNN/kws20_demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/kws20_demo/Makefile +++ b/Examples/MAX78000/CNN/kws20_demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/all_imgs.c index d3bd85667b6..b17637cbe95 100644 --- a/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/bitmap.h index ddf640aa869..6c9b745e8e1 100644 --- a/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/kws20_demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/img_1_rgb565.c b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/kws20_demo/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/kws20_demo/Utility/RealtimeAudio.py b/Examples/MAX78000/CNN/kws20_demo/Utility/RealtimeAudio.py index 71ced758a68..0d618828528 100644 --- a/Examples/MAX78000/CNN/kws20_demo/Utility/RealtimeAudio.py +++ b/Examples/MAX78000/CNN/kws20_demo/Utility/RealtimeAudio.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 ################################################################################################### -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Utility to load a wave file and convert to headerfile, detect silence and keywords, split into 16K samples and display waveform diff --git a/Examples/MAX78000/CNN/kws20_demo/Utility/VoiceRecorder.py b/Examples/MAX78000/CNN/kws20_demo/Utility/VoiceRecorder.py index 8177f6c055b..11a86233418 100644 --- a/Examples/MAX78000/CNN/kws20_demo/Utility/VoiceRecorder.py +++ b/Examples/MAX78000/CNN/kws20_demo/Utility/VoiceRecorder.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Voice recorder """ diff --git a/Examples/MAX78000/CNN/kws20_demo/Utility/bin2wav.py b/Examples/MAX78000/CNN/kws20_demo/Utility/bin2wav.py index 85a6ab0c1e4..10bc16e8fc5 100644 --- a/Examples/MAX78000/CNN/kws20_demo/Utility/bin2wav.py +++ b/Examples/MAX78000/CNN/kws20_demo/Utility/bin2wav.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import os import argparse import soundfile as sf diff --git a/Examples/MAX78000/CNN/kws20_demo/Utility/capture_serial_bin.py b/Examples/MAX78000/CNN/kws20_demo/Utility/capture_serial_bin.py index 0c04a94e146..2cd64014c06 100644 --- a/Examples/MAX78000/CNN/kws20_demo/Utility/capture_serial_bin.py +++ b/Examples/MAX78000/CNN/kws20_demo/Utility/capture_serial_bin.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import os import argparse import soundfile as sf diff --git a/Examples/MAX78000/CNN/kws20_demo/Utility/convert_segment_wav.py b/Examples/MAX78000/CNN/kws20_demo/Utility/convert_segment_wav.py index 04498ad7ff7..797a8799f3e 100644 --- a/Examples/MAX78000/CNN/kws20_demo/Utility/convert_segment_wav.py +++ b/Examples/MAX78000/CNN/kws20_demo/Utility/convert_segment_wav.py @@ -1,35 +1,53 @@ -################################################################################ -# Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of Maxim Integrated -# Products, Inc. shall not be used except as stated in the Maxim Integrated -# Products, Inc. Branding Policy. -# -# The mere transfer of this software does not imply any licenses -# of trade secrets, proprietary technology, copyrights, patents, -# trademarks, maskwork rights, or any other form of intellectual -# property whatsoever. Maxim Integrated Products, Inc. retains all -# ownership rights. -# ############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import errno import os import argparse diff --git a/Examples/MAX78000/CNN/kws20_demo/cnn.c b/Examples/MAX78000/CNN/kws20_demo/cnn.c index 8dd2be6bc3f..bea2dc8e659 100644 --- a/Examples/MAX78000/CNN/kws20_demo/cnn.c +++ b/Examples/MAX78000/CNN/kws20_demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // kws20_v3 diff --git a/Examples/MAX78000/CNN/kws20_demo/cnn.h b/Examples/MAX78000/CNN/kws20_demo/cnn.h index 5af83f1f608..8c860932122 100644 --- a/Examples/MAX78000/CNN/kws20_demo/cnn.h +++ b/Examples/MAX78000/CNN/kws20_demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/kws20_demo/main.c b/Examples/MAX78000/CNN/kws20_demo/main.c index 818acd0475c..34d58cd3b11 100644 --- a/Examples/MAX78000/CNN/kws20_demo/main.c +++ b/Examples/MAX78000/CNN/kws20_demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/kws20_demo/sd_util.c b/Examples/MAX78000/CNN/kws20_demo/sd_util.c index 8d95266c3e0..7934fc398af 100644 --- a/Examples/MAX78000/CNN/kws20_demo/sd_util.c +++ b/Examples/MAX78000/CNN/kws20_demo/sd_util.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/kws20_demo/softmax.c b/Examples/MAX78000/CNN/kws20_demo/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/kws20_demo/softmax.c +++ b/Examples/MAX78000/CNN/kws20_demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/kws20_v3/Makefile b/Examples/MAX78000/CNN/kws20_v3/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/kws20_v3/Makefile +++ b/Examples/MAX78000/CNN/kws20_v3/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/kws20_v3/cnn.c b/Examples/MAX78000/CNN/kws20_v3/cnn.c index 8dd2be6bc3f..bea2dc8e659 100644 --- a/Examples/MAX78000/CNN/kws20_v3/cnn.c +++ b/Examples/MAX78000/CNN/kws20_v3/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // kws20_v3 diff --git a/Examples/MAX78000/CNN/kws20_v3/cnn.h b/Examples/MAX78000/CNN/kws20_v3/cnn.h index 5af83f1f608..8c860932122 100644 --- a/Examples/MAX78000/CNN/kws20_v3/cnn.h +++ b/Examples/MAX78000/CNN/kws20_v3/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/kws20_v3/main.c b/Examples/MAX78000/CNN/kws20_v3/main.c index 32d3bbf1b51..1cbd2c95602 100644 --- a/Examples/MAX78000/CNN/kws20_v3/main.c +++ b/Examples/MAX78000/CNN/kws20_v3/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // kws20_v3 diff --git a/Examples/MAX78000/CNN/kws20_v3/softmax.c b/Examples/MAX78000/CNN/kws20_v3/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/kws20_v3/softmax.c +++ b/Examples/MAX78000/CNN/kws20_v3/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/mnist-riscv/Makefile b/Examples/MAX78000/CNN/mnist-riscv/Makefile index dee8d56614b..4766365cf60 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/Makefile +++ b/Examples/MAX78000/CNN/mnist-riscv/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # Command-line option for overriding output filename. # Ex: make all OUTFILE="filename" ... results in filename.elf diff --git a/Examples/MAX78000/CNN/mnist-riscv/Makefile.ARM b/Examples/MAX78000/CNN/mnist-riscv/Makefile.ARM index cfc088b4189..02072d2c439 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/Makefile.ARM +++ b/Examples/MAX78000/CNN/mnist-riscv/Makefile.ARM @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78000/CNN/mnist-riscv/Makefile.RISCV b/Examples/MAX78000/CNN/mnist-riscv/Makefile.RISCV index c534ba72ae0..668ca1983b6 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/Makefile.RISCV +++ b/Examples/MAX78000/CNN/mnist-riscv/Makefile.RISCV @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78000/CNN/mnist-riscv/cnn.c b/Examples/MAX78000/CNN/mnist-riscv/cnn.c index ad4a7bc6cb0..90ef9d4d8de 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/cnn.c +++ b/Examples/MAX78000/CNN/mnist-riscv/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // mnist-riscv diff --git a/Examples/MAX78000/CNN/mnist-riscv/cnn.h b/Examples/MAX78000/CNN/mnist-riscv/cnn.h index b54e4717b38..73a8320ec72 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/cnn.h +++ b/Examples/MAX78000/CNN/mnist-riscv/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/mnist-riscv/main.c b/Examples/MAX78000/CNN/mnist-riscv/main.c index 7951b6cc1db..803329ff35e 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/main.c +++ b/Examples/MAX78000/CNN/mnist-riscv/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // ARM wrapper code diff --git a/Examples/MAX78000/CNN/mnist-riscv/main_riscv.c b/Examples/MAX78000/CNN/mnist-riscv/main_riscv.c index 12497d5fe75..555a16420c4 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/main_riscv.c +++ b/Examples/MAX78000/CNN/mnist-riscv/main_riscv.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // mnist-riscv diff --git a/Examples/MAX78000/CNN/mnist-riscv/softmax.c b/Examples/MAX78000/CNN/mnist-riscv/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/mnist-riscv/softmax.c +++ b/Examples/MAX78000/CNN/mnist-riscv/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/mnist/Makefile b/Examples/MAX78000/CNN/mnist/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/mnist/Makefile +++ b/Examples/MAX78000/CNN/mnist/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/mnist/cnn.c b/Examples/MAX78000/CNN/mnist/cnn.c index 7759fa5f3f8..b094249caed 100644 --- a/Examples/MAX78000/CNN/mnist/cnn.c +++ b/Examples/MAX78000/CNN/mnist/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // mnist diff --git a/Examples/MAX78000/CNN/mnist/cnn.h b/Examples/MAX78000/CNN/mnist/cnn.h index e57bbc110fa..0e1077c7bc3 100644 --- a/Examples/MAX78000/CNN/mnist/cnn.h +++ b/Examples/MAX78000/CNN/mnist/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/mnist/main.c b/Examples/MAX78000/CNN/mnist/main.c index 2a37de5732d..9461898c47d 100644 --- a/Examples/MAX78000/CNN/mnist/main.c +++ b/Examples/MAX78000/CNN/mnist/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // mnist diff --git a/Examples/MAX78000/CNN/mnist/softmax.c b/Examples/MAX78000/CNN/mnist/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/mnist/softmax.c +++ b/Examples/MAX78000/CNN/mnist/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/rps-demo/Makefile b/Examples/MAX78000/CNN/rps-demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/rps-demo/Makefile +++ b/Examples/MAX78000/CNN/rps-demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/rps-demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/rps-demo/TFT/evkit/all_imgs.c index d3bd85667b6..b17637cbe95 100644 --- a/Examples/MAX78000/CNN/rps-demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/rps-demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/rps-demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/rps-demo/TFT/evkit/bitmap.h index ddf640aa869..6c9b745e8e1 100644 --- a/Examples/MAX78000/CNN/rps-demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/rps-demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/img_1_rgb565.c b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/rps-demo/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/rps-demo/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/rps-demo/cnn.c b/Examples/MAX78000/CNN/rps-demo/cnn.c index fe82a3ee498..fcf4156f788 100644 --- a/Examples/MAX78000/CNN/rps-demo/cnn.c +++ b/Examples/MAX78000/CNN/rps-demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // pt-rps82 diff --git a/Examples/MAX78000/CNN/rps-demo/cnn.h b/Examples/MAX78000/CNN/rps-demo/cnn.h index d7dd7a5037b..f6568974ba5 100644 --- a/Examples/MAX78000/CNN/rps-demo/cnn.h +++ b/Examples/MAX78000/CNN/rps-demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/rps-demo/main.c b/Examples/MAX78000/CNN/rps-demo/main.c index b7bf2f76519..b2928f2e8dc 100644 --- a/Examples/MAX78000/CNN/rps-demo/main.c +++ b/Examples/MAX78000/CNN/rps-demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // rps-demo diff --git a/Examples/MAX78000/CNN/rps-demo/softmax.c b/Examples/MAX78000/CNN/rps-demo/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/rps-demo/softmax.c +++ b/Examples/MAX78000/CNN/rps-demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/rps/Makefile b/Examples/MAX78000/CNN/rps/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/rps/Makefile +++ b/Examples/MAX78000/CNN/rps/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/rps/cnn.c b/Examples/MAX78000/CNN/rps/cnn.c index fe82a3ee498..fcf4156f788 100644 --- a/Examples/MAX78000/CNN/rps/cnn.c +++ b/Examples/MAX78000/CNN/rps/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // pt-rps82 diff --git a/Examples/MAX78000/CNN/rps/cnn.h b/Examples/MAX78000/CNN/rps/cnn.h index d7dd7a5037b..f6568974ba5 100644 --- a/Examples/MAX78000/CNN/rps/cnn.h +++ b/Examples/MAX78000/CNN/rps/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/rps/main.c b/Examples/MAX78000/CNN/rps/main.c index 72d0641dec6..5ad3ed57a72 100644 --- a/Examples/MAX78000/CNN/rps/main.c +++ b/Examples/MAX78000/CNN/rps/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // pt-rps82 diff --git a/Examples/MAX78000/CNN/rps/softmax.c b/Examples/MAX78000/CNN/rps/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/rps/softmax.c +++ b/Examples/MAX78000/CNN/rps/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/snake_game_demo/Makefile b/Examples/MAX78000/CNN/snake_game_demo/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/Makefile +++ b/Examples/MAX78000/CNN/snake_game_demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/all_imgs.c b/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/all_imgs.c index d3bd85667b6..b17637cbe95 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/all_imgs.c +++ b/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/bitmap.h b/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/bitmap.h index ddf640aa869..6c9b745e8e1 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/bitmap.h +++ b/Examples/MAX78000/CNN/snake_game_demo/TFT/evkit/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BITMAP_H_ diff --git a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/bmp2c.py b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/template.txt b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/template.txt +++ b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/img_1_rgb565.c b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/img_1_rgb565.c index 24bc30bbf51..1e3a5865bba 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/img_1_rgb565.c +++ b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/logo_rgb565.c b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/logo_rgb565.c index aa806cb5e20..ffde18faacb 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/logo_rgb565.c +++ b/Examples/MAX78000/CNN/snake_game_demo/TFT/fthr/logo_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char logo_rgb565[4036] = { // 85x24x2 + 4(header) diff --git a/Examples/MAX78000/CNN/snake_game_demo/cnn.c b/Examples/MAX78000/CNN/snake_game_demo/cnn.c index f0c4899641c..75743247342 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/cnn.c +++ b/Examples/MAX78000/CNN/snake_game_demo/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // kws20_v3 diff --git a/Examples/MAX78000/CNN/snake_game_demo/cnn.h b/Examples/MAX78000/CNN/snake_game_demo/cnn.h index a42c9c3851f..d1e7e9e8e73 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/cnn.h +++ b/Examples/MAX78000/CNN/snake_game_demo/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/snake_game_demo/main.c b/Examples/MAX78000/CNN/snake_game_demo/main.c index 12fd11f451b..eb01a5b7b57 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/main.c +++ b/Examples/MAX78000/CNN/snake_game_demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CNN/snake_game_demo/softmax.c b/Examples/MAX78000/CNN/snake_game_demo/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/snake_game_demo/softmax.c +++ b/Examples/MAX78000/CNN/snake_game_demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CNN/svhn_tinierssd/Makefile b/Examples/MAX78000/CNN/svhn_tinierssd/Makefile index 16b4c61ceb2..518e141fc69 100644 --- a/Examples/MAX78000/CNN/svhn_tinierssd/Makefile +++ b/Examples/MAX78000/CNN/svhn_tinierssd/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CNN/svhn_tinierssd/cnn.c b/Examples/MAX78000/CNN/svhn_tinierssd/cnn.c index 3c70370109f..c4073fc791e 100644 --- a/Examples/MAX78000/CNN/svhn_tinierssd/cnn.c +++ b/Examples/MAX78000/CNN/svhn_tinierssd/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // svhn_tinierssd diff --git a/Examples/MAX78000/CNN/svhn_tinierssd/cnn.h b/Examples/MAX78000/CNN/svhn_tinierssd/cnn.h index d6de90ba300..eeec9b01688 100644 --- a/Examples/MAX78000/CNN/svhn_tinierssd/cnn.h +++ b/Examples/MAX78000/CNN/svhn_tinierssd/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/CNN/svhn_tinierssd/main.c b/Examples/MAX78000/CNN/svhn_tinierssd/main.c index 6a2bcc42b1c..ce6bde7119f 100644 --- a/Examples/MAX78000/CNN/svhn_tinierssd/main.c +++ b/Examples/MAX78000/CNN/svhn_tinierssd/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // svhn_tinierssd diff --git a/Examples/MAX78000/CNN/svhn_tinierssd/softmax.c b/Examples/MAX78000/CNN/svhn_tinierssd/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78000/CNN/svhn_tinierssd/softmax.c +++ b/Examples/MAX78000/CNN/svhn_tinierssd/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78000/CRC/Makefile b/Examples/MAX78000/CRC/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/CRC/Makefile +++ b/Examples/MAX78000/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CRC/main.c b/Examples/MAX78000/CRC/main.c index 8a8706ceb92..f90aa1701e3 100644 --- a/Examples/MAX78000/CRC/main.c +++ b/Examples/MAX78000/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CameraIF/Makefile b/Examples/MAX78000/CameraIF/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/CameraIF/Makefile +++ b/Examples/MAX78000/CameraIF/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CameraIF/main.c b/Examples/MAX78000/CameraIF/main.c index 5fc43f3ae13..c03a079d636 100644 --- a/Examples/MAX78000/CameraIF/main.c +++ b/Examples/MAX78000/CameraIF/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CameraIF/pc_utility/comManager.py b/Examples/MAX78000/CameraIF/pc_utility/comManager.py index 8d9e050b394..f01d667971b 100644 --- a/Examples/MAX78000/CameraIF/pc_utility/comManager.py +++ b/Examples/MAX78000/CameraIF/pc_utility/comManager.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time import os diff --git a/Examples/MAX78000/CameraIF/pc_utility/grab_image.py b/Examples/MAX78000/CameraIF/pc_utility/grab_image.py index 4c8fd894639..4e32380a436 100644 --- a/Examples/MAX78000/CameraIF/pc_utility/grab_image.py +++ b/Examples/MAX78000/CameraIF/pc_utility/grab_image.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import time from datetime import datetime import sys diff --git a/Examples/MAX78000/CameraIF/pc_utility/imgConverter.py b/Examples/MAX78000/CameraIF/pc_utility/imgConverter.py index 433f9881a6a..575b9ed291a 100644 --- a/Examples/MAX78000/CameraIF/pc_utility/imgConverter.py +++ b/Examples/MAX78000/CameraIF/pc_utility/imgConverter.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import struct from PIL import Image diff --git a/Examples/MAX78000/CameraIF/utils.c b/Examples/MAX78000/CameraIF/utils.c index 87cdf974007..7d733a45ab4 100644 --- a/Examples/MAX78000/CameraIF/utils.c +++ b/Examples/MAX78000/CameraIF/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,24 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ + #include #include #include diff --git a/Examples/MAX78000/CameraIF/utils.h b/Examples/MAX78000/CameraIF/utils.h index 48dedc583cf..e0c9982bceb 100644 --- a/Examples/MAX78000/CameraIF/utils.h +++ b/Examples/MAX78000/CameraIF/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,24 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ + #ifndef EXAMPLES_MAX78000_CAMERAIF_UTILS_H_ #define EXAMPLES_MAX78000_CAMERAIF_UTILS_H_ diff --git a/Examples/MAX78000/CameraIF_Debayer/Makefile b/Examples/MAX78000/CameraIF_Debayer/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/CameraIF_Debayer/Makefile +++ b/Examples/MAX78000/CameraIF_Debayer/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/CameraIF_Debayer/main.c b/Examples/MAX78000/CameraIF_Debayer/main.c index 723432d12fb..fcfab143127 100644 --- a/Examples/MAX78000/CameraIF_Debayer/main.c +++ b/Examples/MAX78000/CameraIF_Debayer/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/CameraIF_Debayer/pc_utility/comManager.py b/Examples/MAX78000/CameraIF_Debayer/pc_utility/comManager.py index 8d9e050b394..f01d667971b 100644 --- a/Examples/MAX78000/CameraIF_Debayer/pc_utility/comManager.py +++ b/Examples/MAX78000/CameraIF_Debayer/pc_utility/comManager.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time import os diff --git a/Examples/MAX78000/CameraIF_Debayer/pc_utility/grab_image.py b/Examples/MAX78000/CameraIF_Debayer/pc_utility/grab_image.py index 08e72833dac..5e28ae66e37 100644 --- a/Examples/MAX78000/CameraIF_Debayer/pc_utility/grab_image.py +++ b/Examples/MAX78000/CameraIF_Debayer/pc_utility/grab_image.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time from datetime import datetime diff --git a/Examples/MAX78000/CameraIF_Debayer/pc_utility/imgConverter.py b/Examples/MAX78000/CameraIF_Debayer/pc_utility/imgConverter.py index 5a4db33dbe0..5e652d04450 100644 --- a/Examples/MAX78000/CameraIF_Debayer/pc_utility/imgConverter.py +++ b/Examples/MAX78000/CameraIF_Debayer/pc_utility/imgConverter.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import time import os import sys diff --git a/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/comManager.py b/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/comManager.py index 8d9e050b394..f01d667971b 100644 --- a/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/comManager.py +++ b/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/comManager.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time import os diff --git a/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/grab_image.py b/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/grab_image.py index d636f25872f..2c60df7a40c 100644 --- a/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/grab_image.py +++ b/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/grab_image.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time from datetime import datetime diff --git a/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/imgConverter.py b/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/imgConverter.py index 9b8adc98406..b17a0653d03 100644 --- a/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/imgConverter.py +++ b/Examples/MAX78000/CameraIF_Debayer/pc_utility/temo/imgConverter.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import time import os import sys diff --git a/Examples/MAX78000/CameraIF_Debayer/utils.c b/Examples/MAX78000/CameraIF_Debayer/utils.c index 4b917735f4a..ab65c7c7bd4 100644 --- a/Examples/MAX78000/CameraIF_Debayer/utils.c +++ b/Examples/MAX78000/CameraIF_Debayer/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,24 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ + #include #include #include diff --git a/Examples/MAX78000/CameraIF_Debayer/utils.h b/Examples/MAX78000/CameraIF_Debayer/utils.h index f67b1f9981d..30446992ab8 100644 --- a/Examples/MAX78000/CameraIF_Debayer/utils.h +++ b/Examples/MAX78000/CameraIF_Debayer/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,24 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ + #ifndef EXAMPLES_MAX78000_CAMERAIF_DEBAYER_UTILS_H_ #define EXAMPLES_MAX78000_CAMERAIF_DEBAYER_UTILS_H_ diff --git a/Examples/MAX78000/Coremark/Makefile b/Examples/MAX78000/Coremark/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Coremark/Makefile +++ b/Examples/MAX78000/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/DMA/Makefile b/Examples/MAX78000/DMA/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/DMA/Makefile +++ b/Examples/MAX78000/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/DMA/main.c b/Examples/MAX78000/DMA/main.c index c20481dcd45..49c514f748b 100644 --- a/Examples/MAX78000/DMA/main.c +++ b/Examples/MAX78000/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/ECC/Makefile b/Examples/MAX78000/ECC/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/ECC/Makefile +++ b/Examples/MAX78000/ECC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ECC/main.c b/Examples/MAX78000/ECC/main.c index 17ba35bd71d..430e958c14d 100644 --- a/Examples/MAX78000/ECC/main.c +++ b/Examples/MAX78000/ECC/main.c @@ -1,13 +1,7 @@ - -/** - * @file main.c - * @brief Demonstration of SRAM Error Correcting Code (ECC) features - * @details This program demonstrates single and double-bit error detection and - * single-bit correction for SRAM memories. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,31 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Demonstration of SRAM Error Correcting Code (ECC) features + * @details This program demonstrates single and double-bit error detection and + * single-bit correction for SRAM memories. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX78000/EEPROM_Emulator/Makefile b/Examples/MAX78000/EEPROM_Emulator/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/EEPROM_Emulator/Makefile +++ b/Examples/MAX78000/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/EEPROM_Emulator/include/cache.h b/Examples/MAX78000/EEPROM_Emulator/include/cache.h index 9263b1016d4..6715a9959d3 100644 --- a/Examples/MAX78000/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX78000/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX78000_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX78000/EEPROM_Emulator/include/eeprom.h b/Examples/MAX78000/EEPROM_Emulator/include/eeprom.h index e4956f57a15..e5bc10c4cae 100644 --- a/Examples/MAX78000/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX78000/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX78000_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX78000/EEPROM_Emulator/main.c b/Examples/MAX78000/EEPROM_Emulator/main.c index 184b28824b1..f4095caa566 100644 --- a/Examples/MAX78000/EEPROM_Emulator/main.c +++ b/Examples/MAX78000/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/EEPROM_Emulator/src/cache.c b/Examples/MAX78000/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX78000/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX78000/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX78000/EEPROM_Emulator/src/eeprom.c b/Examples/MAX78000/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX78000/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX78000/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX78000/FTHR_I2C/Makefile b/Examples/MAX78000/FTHR_I2C/Makefile index ed8289f7c63..ca41dfc1de5 100644 --- a/Examples/MAX78000/FTHR_I2C/Makefile +++ b/Examples/MAX78000/FTHR_I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/FTHR_I2C/main.c b/Examples/MAX78000/FTHR_I2C/main.c index 11690892844..9eaffdc8c6f 100644 --- a/Examples/MAX78000/FTHR_I2C/main.c +++ b/Examples/MAX78000/FTHR_I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/Flash/Makefile b/Examples/MAX78000/Flash/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Flash/Makefile +++ b/Examples/MAX78000/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Flash/main.c b/Examples/MAX78000/Flash/main.c index 0c9d1d0ae24..02cb239bc08 100644 --- a/Examples/MAX78000/Flash/main.c +++ b/Examples/MAX78000/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX78000/Flash_CLI/FreeRTOSConfig.h index 57df12ee76c..748b53168d4 100644 --- a/Examples/MAX78000/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX78000/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX78000/Flash_CLI/Makefile b/Examples/MAX78000/Flash_CLI/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Flash_CLI/Makefile +++ b/Examples/MAX78000/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Flash_CLI/definitions.h b/Examples/MAX78000/Flash_CLI/definitions.h index 95da8324523..c87133f39a6 100644 --- a/Examples/MAX78000/Flash_CLI/definitions.h +++ b/Examples/MAX78000/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX78000/Flash_CLI/main.c b/Examples/MAX78000/Flash_CLI/main.c index 45e183970ae..db7a1f1dd01 100644 --- a/Examples/MAX78000/Flash_CLI/main.c +++ b/Examples/MAX78000/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h index 45135cd48ee..851790e8cf9 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX78000/FreeRTOSDemo/Makefile b/Examples/MAX78000/FreeRTOSDemo/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/FreeRTOSDemo/Makefile +++ b/Examples/MAX78000/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX78000/FreeRTOSDemo/freertos_tickless.c index a8c3a5c508d..3f525e223a5 100644 --- a/Examples/MAX78000/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX78000/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX78000/FreeRTOSDemo/main.c b/Examples/MAX78000/FreeRTOSDemo/main.c index 277bd93e64c..702c0e39a1b 100644 --- a/Examples/MAX78000/FreeRTOSDemo/main.c +++ b/Examples/MAX78000/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/GPIO/Makefile b/Examples/MAX78000/GPIO/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/GPIO/Makefile +++ b/Examples/MAX78000/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/GPIO/main.c b/Examples/MAX78000/GPIO/main.c index e067ead2358..f384849a910 100644 --- a/Examples/MAX78000/GPIO/main.c +++ b/Examples/MAX78000/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/Hello_World/Makefile b/Examples/MAX78000/Hello_World/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Hello_World/Makefile +++ b/Examples/MAX78000/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Hello_World/main.c b/Examples/MAX78000/Hello_World/main.c index 223e8b45d05..11f2a84731c 100644 --- a/Examples/MAX78000/Hello_World/main.c +++ b/Examples/MAX78000/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/Hello_World_Cpp/Makefile b/Examples/MAX78000/Hello_World_Cpp/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Hello_World_Cpp/Makefile +++ b/Examples/MAX78000/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Hello_World_Cpp/main.cpp b/Examples/MAX78000/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX78000/Hello_World_Cpp/main.cpp +++ b/Examples/MAX78000/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/I2C_ADXL343/Makefile b/Examples/MAX78000/I2C_ADXL343/Makefile index ed8289f7c63..ca41dfc1de5 100644 --- a/Examples/MAX78000/I2C_ADXL343/Makefile +++ b/Examples/MAX78000/I2C_ADXL343/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/I2C_ADXL343/adxl343.c b/Examples/MAX78000/I2C_ADXL343/adxl343.c index a86a5ba84be..999e5da626f 100644 --- a/Examples/MAX78000/I2C_ADXL343/adxl343.c +++ b/Examples/MAX78000/I2C_ADXL343/adxl343.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/I2C_ADXL343/adxl343.h b/Examples/MAX78000/I2C_ADXL343/adxl343.h index d291c0745a6..8ec4ffe19dd 100644 --- a/Examples/MAX78000/I2C_ADXL343/adxl343.h +++ b/Examples/MAX78000/I2C_ADXL343/adxl343.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/I2C_ADXL343/main.c b/Examples/MAX78000/I2C_ADXL343/main.c index 22be28507af..445ae555a03 100644 --- a/Examples/MAX78000/I2C_ADXL343/main.c +++ b/Examples/MAX78000/I2C_ADXL343/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX78000/I2C_MNGR/FreeRTOSConfig.h index a36c16df873..e4ccff58b93 100644 --- a/Examples/MAX78000/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX78000/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX78000/I2C_MNGR/Makefile b/Examples/MAX78000/I2C_MNGR/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/I2C_MNGR/Makefile +++ b/Examples/MAX78000/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.c index 84e6bd1d361..c4ad58f485d 100644 --- a/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "i2c_mngr.h" diff --git a/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.h index 49dd7facdb1..ebedcda7490 100644 --- a/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX78000/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX78000/I2C_MNGR/main.c b/Examples/MAX78000/I2C_MNGR/main.c index 94091ca4d64..2e2089f3856 100644 --- a/Examples/MAX78000/I2C_MNGR/main.c +++ b/Examples/MAX78000/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/I2C_SCAN/Makefile b/Examples/MAX78000/I2C_SCAN/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/I2C_SCAN/Makefile +++ b/Examples/MAX78000/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/I2C_SCAN/main.c b/Examples/MAX78000/I2C_SCAN/main.c index 6b0620d30a3..09a03db9be9 100644 --- a/Examples/MAX78000/I2C_SCAN/main.c +++ b/Examples/MAX78000/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX78000/I2C_Sensor/Makefile b/Examples/MAX78000/I2C_Sensor/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/I2C_Sensor/Makefile +++ b/Examples/MAX78000/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/I2C_Sensor/main.c b/Examples/MAX78000/I2C_Sensor/main.c index cb1e08edf4c..749e4a9456d 100644 --- a/Examples/MAX78000/I2C_Sensor/main.c +++ b/Examples/MAX78000/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/I2S/Makefile b/Examples/MAX78000/I2S/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/I2S/Makefile +++ b/Examples/MAX78000/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/I2S/main.c b/Examples/MAX78000/I2S/main.c index ba7af5a12e4..945e47c980a 100644 --- a/Examples/MAX78000/I2S/main.c +++ b/Examples/MAX78000/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/I2S_DMA/Makefile b/Examples/MAX78000/I2S_DMA/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/I2S_DMA/Makefile +++ b/Examples/MAX78000/I2S_DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/I2S_DMA/main.c b/Examples/MAX78000/I2S_DMA/main.c index a61f8220f8e..675eb84a81c 100644 --- a/Examples/MAX78000/I2S_DMA/main.c +++ b/Examples/MAX78000/I2S_DMA/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/I2S_DMA_Target/Makefile b/Examples/MAX78000/I2S_DMA_Target/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/I2S_DMA_Target/Makefile +++ b/Examples/MAX78000/I2S_DMA_Target/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/I2S_DMA_Target/main.c b/Examples/MAX78000/I2S_DMA_Target/main.c index 103cfca068b..4198d1b58d3 100644 --- a/Examples/MAX78000/I2S_DMA_Target/main.c +++ b/Examples/MAX78000/I2S_DMA_Target/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/ICC/Makefile b/Examples/MAX78000/ICC/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/ICC/Makefile +++ b/Examples/MAX78000/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ICC/main.c b/Examples/MAX78000/ICC/main.c index f927e15f847..b09bbe18147 100644 --- a/Examples/MAX78000/ICC/main.c +++ b/Examples/MAX78000/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/ImgCapture/Makefile b/Examples/MAX78000/ImgCapture/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/ImgCapture/Makefile +++ b/Examples/MAX78000/ImgCapture/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/ImgCapture/include/cnn_memutils.h b/Examples/MAX78000/ImgCapture/include/cnn_memutils.h index 659d2ab6eaa..98b54600c33 100644 --- a/Examples/MAX78000/ImgCapture/include/cnn_memutils.h +++ b/Examples/MAX78000/ImgCapture/include/cnn_memutils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file cnn_memutils.h diff --git a/Examples/MAX78000/ImgCapture/include/console.h b/Examples/MAX78000/ImgCapture/include/console.h index 3b3a77826f2..0a22a43826c 100644 --- a/Examples/MAX78000/ImgCapture/include/console.h +++ b/Examples/MAX78000/ImgCapture/include/console.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file console.h diff --git a/Examples/MAX78000/ImgCapture/include/example_config.h b/Examples/MAX78000/ImgCapture/include/example_config.h index c57aebc095e..5997d279bb9 100644 --- a/Examples/MAX78000/ImgCapture/include/example_config.h +++ b/Examples/MAX78000/ImgCapture/include/example_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_IMGCAPTURE_INCLUDE_EXAMPLE_CONFIG_H_ #define EXAMPLES_MAX78000_IMGCAPTURE_INCLUDE_EXAMPLE_CONFIG_H_ diff --git a/Examples/MAX78000/ImgCapture/include/sd.h b/Examples/MAX78000/ImgCapture/include/sd.h index 0978ebf9404..8b40864cb26 100644 --- a/Examples/MAX78000/ImgCapture/include/sd.h +++ b/Examples/MAX78000/ImgCapture/include/sd.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/ImgCapture/main.c b/Examples/MAX78000/ImgCapture/main.c index 322e3fd43b1..9a454cc1b79 100644 --- a/Examples/MAX78000/ImgCapture/main.c +++ b/Examples/MAX78000/ImgCapture/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file main.c diff --git a/Examples/MAX78000/ImgCapture/src/console/console.c b/Examples/MAX78000/ImgCapture/src/console/console.c index cea86942abd..33c8f9ebf2a 100644 --- a/Examples/MAX78000/ImgCapture/src/console/console.c +++ b/Examples/MAX78000/ImgCapture/src/console/console.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file console.c diff --git a/Examples/MAX78000/ImgCapture/src/sd/sd.c b/Examples/MAX78000/ImgCapture/src/sd/sd.c index 1107605662f..9e252bc4fc4 100644 --- a/Examples/MAX78000/ImgCapture/src/sd/sd.c +++ b/Examples/MAX78000/ImgCapture/src/sd/sd.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "sd.h" diff --git a/Examples/MAX78000/ImgCapture/utils/batchconvert.py b/Examples/MAX78000/ImgCapture/utils/batchconvert.py index 64310db9b92..97890051f02 100644 --- a/Examples/MAX78000/ImgCapture/utils/batchconvert.py +++ b/Examples/MAX78000/ImgCapture/utils/batchconvert.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## from pathlib import Path import re diff --git a/Examples/MAX78000/ImgCapture/utils/console.py b/Examples/MAX78000/ImgCapture/utils/console.py index 92dc0a7e46e..dd57d3b8019 100644 --- a/Examples/MAX78000/ImgCapture/utils/console.py +++ b/Examples/MAX78000/ImgCapture/utils/console.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ This file implements a simple console program for communicating diff --git a/Examples/MAX78000/ImgCapture/utils/imgConverter.py b/Examples/MAX78000/ImgCapture/utils/imgConverter.py index 86bdb4b8ae9..9065c159eae 100644 --- a/Examples/MAX78000/ImgCapture/utils/imgConverter.py +++ b/Examples/MAX78000/ImgCapture/utils/imgConverter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import struct from PIL import Image diff --git a/Examples/MAX78000/LP/Makefile b/Examples/MAX78000/LP/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/LP/Makefile +++ b/Examples/MAX78000/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/LP/main.c b/Examples/MAX78000/LP/main.c index 237d4e1b120..38c5dcd92dd 100644 --- a/Examples/MAX78000/LP/main.c +++ b/Examples/MAX78000/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/LPCMP/Makefile b/Examples/MAX78000/LPCMP/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/LPCMP/Makefile +++ b/Examples/MAX78000/LPCMP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/LPCMP/main.c b/Examples/MAX78000/LPCMP/main.c index ff5ab4ddb0e..af05082a6cb 100644 --- a/Examples/MAX78000/LPCMP/main.c +++ b/Examples/MAX78000/LPCMP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/Library_Generate/Makefile b/Examples/MAX78000/Library_Generate/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Library_Generate/Makefile +++ b/Examples/MAX78000/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Library_Generate/gpiolib.c b/Examples/MAX78000/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX78000/Library_Generate/gpiolib.c +++ b/Examples/MAX78000/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX78000/Library_Generate/gpiolib.h b/Examples/MAX78000/Library_Generate/gpiolib.h index 3f6bb285eee..79a7ddb7d98 100644 --- a/Examples/MAX78000/Library_Generate/gpiolib.h +++ b/Examples/MAX78000/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX78000/Library_Use/Makefile b/Examples/MAX78000/Library_Use/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Library_Use/Makefile +++ b/Examples/MAX78000/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Library_Use/lib/include/gpiolib.h b/Examples/MAX78000/Library_Use/lib/include/gpiolib.h index be95c1084f8..f7f0d5d26d9 100644 --- a/Examples/MAX78000/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX78000/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX78000/Library_Use/main.c b/Examples/MAX78000/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX78000/Library_Use/main.c +++ b/Examples/MAX78000/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX78000/Pulse_Train/Makefile b/Examples/MAX78000/Pulse_Train/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Pulse_Train/Makefile +++ b/Examples/MAX78000/Pulse_Train/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Pulse_Train/main.c b/Examples/MAX78000/Pulse_Train/main.c index a10fe9c15bb..3c40c1dc8b7 100644 --- a/Examples/MAX78000/Pulse_Train/main.c +++ b/Examples/MAX78000/Pulse_Train/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/RTC/Makefile b/Examples/MAX78000/RTC/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/RTC/Makefile +++ b/Examples/MAX78000/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/RTC/main.c b/Examples/MAX78000/RTC/main.c index b2f27ceb29a..e54608db392 100644 --- a/Examples/MAX78000/RTC/main.c +++ b/Examples/MAX78000/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/RTC_Backup/Makefile b/Examples/MAX78000/RTC_Backup/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/RTC_Backup/Makefile +++ b/Examples/MAX78000/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/RTC_Backup/main.c b/Examples/MAX78000/RTC_Backup/main.c index ca561b04c44..0dd4d5e684f 100644 --- a/Examples/MAX78000/RTC_Backup/main.c +++ b/Examples/MAX78000/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/RV_ARM_Loader/Makefile b/Examples/MAX78000/RV_ARM_Loader/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/RV_ARM_Loader/Makefile +++ b/Examples/MAX78000/RV_ARM_Loader/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/RV_ARM_Loader/main.c b/Examples/MAX78000/RV_ARM_Loader/main.c index b680643e6cc..fded68a79bc 100644 --- a/Examples/MAX78000/RV_ARM_Loader/main.c +++ b/Examples/MAX78000/RV_ARM_Loader/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/SDHC_FTHR/Makefile b/Examples/MAX78000/SDHC_FTHR/Makefile index ed8289f7c63..ca41dfc1de5 100644 --- a/Examples/MAX78000/SDHC_FTHR/Makefile +++ b/Examples/MAX78000/SDHC_FTHR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/SDHC_FTHR/include/sdhc.h b/Examples/MAX78000/SDHC_FTHR/include/sdhc.h index 0ed2f804344..f1159a422c1 100644 --- a/Examples/MAX78000/SDHC_FTHR/include/sdhc.h +++ b/Examples/MAX78000/SDHC_FTHR/include/sdhc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_SDHC_FTHR_INCLUDE_SDHC_H_ #define EXAMPLES_MAX78000_SDHC_FTHR_INCLUDE_SDHC_H_ diff --git a/Examples/MAX78000/SDHC_FTHR/include/user-cli.h b/Examples/MAX78000/SDHC_FTHR/include/user-cli.h index ecb8850eab8..2e997a9f10b 100644 --- a/Examples/MAX78000/SDHC_FTHR/include/user-cli.h +++ b/Examples/MAX78000/SDHC_FTHR/include/user-cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_SDHC_FTHR_INCLUDE_USER_CLI_H_ #define EXAMPLES_MAX78000_SDHC_FTHR_INCLUDE_USER_CLI_H_ diff --git a/Examples/MAX78000/SDHC_FTHR/main.c b/Examples/MAX78000/SDHC_FTHR/main.c index fb72a39f3e7..9f139270b94 100644 --- a/Examples/MAX78000/SDHC_FTHR/main.c +++ b/Examples/MAX78000/SDHC_FTHR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/SDHC_FTHR/src/sdhc.c b/Examples/MAX78000/SDHC_FTHR/src/sdhc.c index 6ba635d097b..4419b4b8251 100644 --- a/Examples/MAX78000/SDHC_FTHR/src/sdhc.c +++ b/Examples/MAX78000/SDHC_FTHR/src/sdhc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "sdhc.h" diff --git a/Examples/MAX78000/SDHC_FTHR/src/user-cli.c b/Examples/MAX78000/SDHC_FTHR/src/user-cli.c index 5800768c471..582d0b973e9 100644 --- a/Examples/MAX78000/SDHC_FTHR/src/user-cli.c +++ b/Examples/MAX78000/SDHC_FTHR/src/user-cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/SPI/Makefile b/Examples/MAX78000/SPI/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/SPI/Makefile +++ b/Examples/MAX78000/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/SPI/main.c b/Examples/MAX78000/SPI/main.c index 0406d7ec666..7213e3b9c5c 100644 --- a/Examples/MAX78000/SPI/main.c +++ b/Examples/MAX78000/SPI/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78000/TFT_Demo/Makefile b/Examples/MAX78000/TFT_Demo/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/TFT_Demo/Makefile +++ b/Examples/MAX78000/TFT_Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/TFT_Demo/example_config.h b/Examples/MAX78000/TFT_Demo/example_config.h index 1b4a4305250..6f94711ed8c 100644 --- a/Examples/MAX78000/TFT_Demo/example_config.h +++ b/Examples/MAX78000/TFT_Demo/example_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_TFT_DEMO_EXAMPLE_CONFIG_H_ diff --git a/Examples/MAX78000/TFT_Demo/include/keypad.h b/Examples/MAX78000/TFT_Demo/include/keypad.h index fc7a8a121c9..650d4d429cf 100644 --- a/Examples/MAX78000/TFT_Demo/include/keypad.h +++ b/Examples/MAX78000/TFT_Demo/include/keypad.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_TFT_DEMO_INCLUDE_KEYPAD_H_ diff --git a/Examples/MAX78000/TFT_Demo/include/state.h b/Examples/MAX78000/TFT_Demo/include/state.h index 9f68a049586..9217cf62bfa 100644 --- a/Examples/MAX78000/TFT_Demo/include/state.h +++ b/Examples/MAX78000/TFT_Demo/include/state.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_TFT_DEMO_INCLUDE_STATE_H_ diff --git a/Examples/MAX78000/TFT_Demo/include/utils.h b/Examples/MAX78000/TFT_Demo/include/utils.h index 3e11d0e3ecb..b82ce3dd700 100644 --- a/Examples/MAX78000/TFT_Demo/include/utils.h +++ b/Examples/MAX78000/TFT_Demo/include/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_TFT_DEMO_INCLUDE_UTILS_H_ diff --git a/Examples/MAX78000/TFT_Demo/main.c b/Examples/MAX78000/TFT_Demo/main.c index d1009b7f549..67fb1153a14 100644 --- a/Examples/MAX78000/TFT_Demo/main.c +++ b/Examples/MAX78000/TFT_Demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/TFT_Demo/resources/bitmap.h b/Examples/MAX78000/TFT_Demo/resources/bitmap.h index d385d7cae8b..176ed22a13e 100644 --- a/Examples/MAX78000/TFT_Demo/resources/bitmap.h +++ b/Examples/MAX78000/TFT_Demo/resources/bitmap.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_TFT_DEMO_RESOURCES_BITMAP_H_ diff --git a/Examples/MAX78000/TFT_Demo/resources/tft_evkit/all_imgs.c b/Examples/MAX78000/TFT_Demo/resources/tft_evkit/all_imgs.c index b8e4d9f75c0..315fca2cab2 100644 --- a/Examples/MAX78000/TFT_Demo/resources/tft_evkit/all_imgs.c +++ b/Examples/MAX78000/TFT_Demo/resources/tft_evkit/all_imgs.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) diff --git a/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py b/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py index 5fe647b646b..90633ab5c5d 100644 --- a/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py +++ b/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/template.txt b/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/template.txt +++ b/Examples/MAX78000/TFT_Demo/resources/tft_fthr/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78000/TFT_Demo/resources/tft_fthr/img_1_rgb565.c b/Examples/MAX78000/TFT_Demo/resources/tft_fthr/img_1_rgb565.c index 93b65ccf6da..541c4508ebf 100644 --- a/Examples/MAX78000/TFT_Demo/resources/tft_fthr/img_1_rgb565.c +++ b/Examples/MAX78000/TFT_Demo/resources/tft_fthr/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) diff --git a/Examples/MAX78000/TFT_Demo/src/state.c b/Examples/MAX78000/TFT_Demo/src/state.c index 4520d7bfcfe..cb9d13dae5c 100644 --- a/Examples/MAX78000/TFT_Demo/src/state.c +++ b/Examples/MAX78000/TFT_Demo/src/state.c @@ -3,7 +3,9 @@ * */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/TFT_Demo/src/state_home.c b/Examples/MAX78000/TFT_Demo/src/state_home.c index 0f8d9e7f2af..4263c211f61 100644 --- a/Examples/MAX78000/TFT_Demo/src/state_home.c +++ b/Examples/MAX78000/TFT_Demo/src/state_home.c @@ -3,7 +3,9 @@ * */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/TFT_Demo/src/state_info.c b/Examples/MAX78000/TFT_Demo/src/state_info.c index c4e45ce3ea2..ec2c418bfc4 100644 --- a/Examples/MAX78000/TFT_Demo/src/state_info.c +++ b/Examples/MAX78000/TFT_Demo/src/state_info.c @@ -3,7 +3,9 @@ * */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/TFT_Demo/src/state_keypad.c b/Examples/MAX78000/TFT_Demo/src/state_keypad.c index bf2497e69b2..949bbbb0472 100644 --- a/Examples/MAX78000/TFT_Demo/src/state_keypad.c +++ b/Examples/MAX78000/TFT_Demo/src/state_keypad.c @@ -3,7 +3,9 @@ * */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/TFT_Demo/src/utils.c b/Examples/MAX78000/TFT_Demo/src/utils.c index ffd8660378a..093e31071fc 100644 --- a/Examples/MAX78000/TFT_Demo/src/utils.c +++ b/Examples/MAX78000/TFT_Demo/src/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/TMR/Makefile b/Examples/MAX78000/TMR/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/TMR/Makefile +++ b/Examples/MAX78000/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/TMR/main.c b/Examples/MAX78000/TMR/main.c index e462b92f796..1dc5cc493b9 100644 --- a/Examples/MAX78000/TMR/main.c +++ b/Examples/MAX78000/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/TRNG/Makefile b/Examples/MAX78000/TRNG/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/TRNG/Makefile +++ b/Examples/MAX78000/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/TRNG/main.c b/Examples/MAX78000/TRNG/main.c index 88faf8aeb49..2bb59f0050d 100644 --- a/Examples/MAX78000/TRNG/main.c +++ b/Examples/MAX78000/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/Temp_Monitor/Makefile b/Examples/MAX78000/Temp_Monitor/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Temp_Monitor/Makefile +++ b/Examples/MAX78000/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Temp_Monitor/main.c b/Examples/MAX78000/Temp_Monitor/main.c index bd7c221c5f6..8b1ce77df67 100644 --- a/Examples/MAX78000/Temp_Monitor/main.c +++ b/Examples/MAX78000/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/Temp_Monitor/temp_monitor.c b/Examples/MAX78000/Temp_Monitor/temp_monitor.c index e9cbd0ab5ee..b3afab61918 100644 --- a/Examples/MAX78000/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX78000/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78000/Temp_Monitor/temp_monitor.h b/Examples/MAX78000/Temp_Monitor/temp_monitor.h index 2cc4d44de58..179ce987c61 100644 --- a/Examples/MAX78000/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX78000/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX78000/UART/Makefile b/Examples/MAX78000/UART/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/UART/Makefile +++ b/Examples/MAX78000/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/UART/main.c b/Examples/MAX78000/UART/main.c index 54c6d5683cc..a15656848bf 100644 --- a/Examples/MAX78000/UART/main.c +++ b/Examples/MAX78000/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/UCL/Makefile b/Examples/MAX78000/UCL/Makefile index bce5af0dadf..bf515b8613c 100644 --- a/Examples/MAX78000/UCL/Makefile +++ b/Examples/MAX78000/UCL/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/WUT/Makefile b/Examples/MAX78000/WUT/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/WUT/Makefile +++ b/Examples/MAX78000/WUT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/WUT/main.c b/Examples/MAX78000/WUT/main.c index 4d4afa85dd6..f8b70cee0e8 100644 --- a/Examples/MAX78000/WUT/main.c +++ b/Examples/MAX78000/WUT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/Watchdog/Makefile b/Examples/MAX78000/Watchdog/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/Watchdog/Makefile +++ b/Examples/MAX78000/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/Watchdog/main.c b/Examples/MAX78000/Watchdog/main.c index 126bd2bbd88..ff565bdd8aa 100644 --- a/Examples/MAX78000/Watchdog/main.c +++ b/Examples/MAX78000/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78000/WearLeveling/Makefile b/Examples/MAX78000/WearLeveling/Makefile index e28d58f8f45..a4a6c101801 100644 --- a/Examples/MAX78000/WearLeveling/Makefile +++ b/Examples/MAX78000/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78000/WearLeveling/include/cli.h b/Examples/MAX78000/WearLeveling/include/cli.h index d3a841659e6..5a4646d6716 100644 --- a/Examples/MAX78000/WearLeveling/include/cli.h +++ b/Examples/MAX78000/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX78000/WearLeveling/include/file.h b/Examples/MAX78000/WearLeveling/include/file.h index 12c5596ccc8..e049b4bcbb2 100644 --- a/Examples/MAX78000/WearLeveling/include/file.h +++ b/Examples/MAX78000/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX78000/WearLeveling/include/flash.h b/Examples/MAX78000/WearLeveling/include/flash.h index b73c53ea86a..47669aec58d 100644 --- a/Examples/MAX78000/WearLeveling/include/flash.h +++ b/Examples/MAX78000/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/WearLeveling/include/main.h b/Examples/MAX78000/WearLeveling/include/main.h index 7400fcd34cc..2eb94f3d062 100644 --- a/Examples/MAX78000/WearLeveling/include/main.h +++ b/Examples/MAX78000/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78000_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX78000/WearLeveling/main.c b/Examples/MAX78000/WearLeveling/main.c index d88bff87cf6..a7df2988c32 100644 --- a/Examples/MAX78000/WearLeveling/main.c +++ b/Examples/MAX78000/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78000/WearLeveling/src/cli.c b/Examples/MAX78000/WearLeveling/src/cli.c index 930592a68ec..41ebff390e4 100644 --- a/Examples/MAX78000/WearLeveling/src/cli.c +++ b/Examples/MAX78000/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78000/WearLeveling/src/file.c b/Examples/MAX78000/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX78000/WearLeveling/src/file.c +++ b/Examples/MAX78000/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX78000/WearLeveling/src/flash.c b/Examples/MAX78000/WearLeveling/src/flash.c index e48065cec60..296bb629604 100644 --- a/Examples/MAX78000/WearLeveling/src/flash.c +++ b/Examples/MAX78000/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/ADC/Makefile b/Examples/MAX78002/ADC/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/ADC/Makefile +++ b/Examples/MAX78002/ADC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ADC/main.c b/Examples/MAX78002/ADC/main.c index 3275405da77..df87660ab47 100644 --- a/Examples/MAX78002/ADC/main.c +++ b/Examples/MAX78002/ADC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/AES/Makefile b/Examples/MAX78002/AES/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/AES/Makefile +++ b/Examples/MAX78002/AES/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/AES/main.c b/Examples/MAX78002/AES/main.c index f24cf901e1c..ec9e03d230d 100644 --- a/Examples/MAX78002/AES/main.c +++ b/Examples/MAX78002/AES/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/ARM-DSP/arm_bayes_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_bayes_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_bayes_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_bayes_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_class_marks_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_class_marks_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_class_marks_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_class_marks_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_convolution_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_convolution_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_convolution_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_convolution_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_dotproduct_example_f32/Makefile b/Examples/MAX78002/ARM-DSP/arm_dotproduct_example_f32/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_dotproduct_example_f32/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_dotproduct_example_f32/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_fft_bin_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_fft_bin_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_fft_bin_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_fft_bin_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_fir_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_fir_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_fir_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_fir_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_graphic_equalizer_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_graphic_equalizer_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_graphic_equalizer_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_graphic_equalizer_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_linear_interp_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_linear_interp_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_linear_interp_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_linear_interp_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_matrix_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_matrix_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_matrix_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_matrix_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_signal_converge_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_signal_converge_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_signal_converge_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_signal_converge_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_sin_cos_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_sin_cos_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_sin_cos_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_sin_cos_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_svm_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_svm_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_svm_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_svm_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ARM-DSP/arm_variance_example/Makefile b/Examples/MAX78002/ARM-DSP/arm_variance_example/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/ARM-DSP/arm_variance_example/Makefile +++ b/Examples/MAX78002/ARM-DSP/arm_variance_example/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CNN/cifar-100-effnet2/Makefile b/Examples/MAX78002/CNN/cifar-100-effnet2/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/CNN/cifar-100-effnet2/Makefile +++ b/Examples/MAX78002/CNN/cifar-100-effnet2/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.c b/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.c index a068bbc3cac..52f80c7488e 100644 --- a/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.c +++ b/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-effnet2 diff --git a/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.h b/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.h index 86eed989025..872cc0c79c6 100644 --- a/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.h +++ b/Examples/MAX78002/CNN/cifar-100-effnet2/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78002/CNN/cifar-100-effnet2/main.c b/Examples/MAX78002/CNN/cifar-100-effnet2/main.c index ed26ba6a382..dcf93760777 100644 --- a/Examples/MAX78002/CNN/cifar-100-effnet2/main.c +++ b/Examples/MAX78002/CNN/cifar-100-effnet2/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-effnet2 diff --git a/Examples/MAX78002/CNN/cifar-100-effnet2/softmax.c b/Examples/MAX78002/CNN/cifar-100-effnet2/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78002/CNN/cifar-100-effnet2/softmax.c +++ b/Examples/MAX78002/CNN/cifar-100-effnet2/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/Makefile b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/Makefile index 574b9f5bc50..d4ebc6b1724 100644 --- a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/Makefile +++ b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # /******************************************************************************* # * Copyright (C) 2021 Maxim Integrated Products, Inc., All Rights Reserved. # * diff --git a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.c b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.c index 297ced8e30b..625579c5205 100644 --- a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.c +++ b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-mobilenet-v2-0.75 diff --git a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.h b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.h index cec65747fee..b04c2b4fe62 100644 --- a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.h +++ b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/main.c b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/main.c index 5ac2a456efa..6d48d0c8c6a 100644 --- a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/main.c +++ b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // cifar-100-mobilenet-v2-0.75 diff --git a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/softmax.c b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/softmax.c +++ b/Examples/MAX78002/CNN/cifar-100-mobilenet-v2-0.75/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78002/CNN/faceid/Makefile b/Examples/MAX78002/CNN/faceid/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/CNN/faceid/Makefile +++ b/Examples/MAX78002/CNN/faceid/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CNN/faceid/cnn.c b/Examples/MAX78002/CNN/faceid/cnn.c index 03dd5339a79..37bdd0492df 100644 --- a/Examples/MAX78002/CNN/faceid/cnn.c +++ b/Examples/MAX78002/CNN/faceid/cnn.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2022 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // faceid // This file was @generated by ai8xize.py --test-dir sdk/Examples/MAX78002/CNN --prefix faceid --checkpoint-file trained/ai85-faceid-qat8-q.pth.tar --config-file networks/faceid.yaml --fifo --device MAX78002 --timer 0 --display-checkpoint --verbose --overwrite diff --git a/Examples/MAX78002/CNN/faceid/cnn.h b/Examples/MAX78002/CNN/faceid/cnn.h index 138d681def1..594b4dcd90c 100644 --- a/Examples/MAX78002/CNN/faceid/cnn.h +++ b/Examples/MAX78002/CNN/faceid/cnn.h @@ -1,9 +1,37 @@ -/************************************************************************************************** -* Copyright (C) 2019-2021 Maxim Integrated Products, Inc. All Rights Reserved. -* -* Maxim Integrated Products, Inc. Default Copyright Notice: -* https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -**************************************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ /* * This header file was automatically @generated for the faceid network from a template. diff --git a/Examples/MAX78002/CNN/faceid/main.c b/Examples/MAX78002/CNN/faceid/main.c index 3cd16f14576..cdfd7919f22 100644 --- a/Examples/MAX78002/CNN/faceid/main.c +++ b/Examples/MAX78002/CNN/faceid/main.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2022 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ /** * @file main.c diff --git a/Examples/MAX78002/CNN/faceid/softmax.c b/Examples/MAX78002/CNN/faceid/softmax.c index 8ef5ef8c1d9..ad087f50ebc 100644 --- a/Examples/MAX78002/CNN/faceid/softmax.c +++ b/Examples/MAX78002/CNN/faceid/softmax.c @@ -16,9 +16,56 @@ * limitations under the License. */ -/* - * Portions Copyright (C) 2020 Maxim Integrated Products, Inc. - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ /* ---------------------------------------------------------------------- * Project: NN Library diff --git a/Examples/MAX78002/CNN/faceid_evkit/Makefile b/Examples/MAX78002/CNN/faceid_evkit/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/Makefile +++ b/Examples/MAX78002/CNN/faceid_evkit/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py index 6cade7617de..115f5711206 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/AI85FaceIDNetNoBias.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ FaceID network for AI85/AI86 diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py index 95e2c822c5b..a5925300fca 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_adapter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains adapter implementations for MAX78000 EvKit to get CNN model output. """ import time diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py index 71264abd0b5..7379fc7cd23 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai85_simulator.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """Contains MAX78000 simulator implementations to get CNN model output. """ diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai8x.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai8x.py index f970b38ec4f..7697e0f4b66 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai8x.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/ai8x.py @@ -1,11 +1,37 @@ -################################################################################################### -# -# Copyright (C) 2020-2022 Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Contains the limits of the MAX78000 implementations and custom PyTorch modules that take the limits into account. diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/devices.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/devices.py index ab72514a716..b922bc56759 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/devices.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/ai85/devices.py @@ -1,10 +1,37 @@ -################################################################################################### -# Copyright (C) Maxim Integrated Products, Inc. All Rights Reserved. -# -# Maxim Integrated Products, Inc. Default Copyright Notice: -# https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -# -################################################################################################### +################################################################################ + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # This software is protected by copyright laws of the United States and + # of foreign countries. This material may also be protected by patent laws + # and technology transfer regulations of the United States and of foreign + # countries. This software is furnished under a license agreement and/or a + # nondisclosure agreement and may only be used or reproduced in accordance + # with the terms of those agreements. Dissemination of this information to + # any party or parties not specified in the license agreement and/or + # nondisclosure agreement is expressly prohibited. + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################### """ Part number and device type conversion """ diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/generate_face_db.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/generate_face_db.py index 78b8276ce1f..67212665a66 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/generate_face_db.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/generate_face_db.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Script to generate Face Id embeddings diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py index 205fb35b36f..9c8778228fb 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/mtcnn.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py index a0d8d87ec07..f018a91bc4f 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/mtcnn/utils/detect_face.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # MIT License # Copyright (c) 2019 Timothy Esler diff --git a/Examples/MAX78002/CNN/faceid_evkit/db_gen/utils.py b/Examples/MAX78002/CNN/faceid_evkit/db_gen/utils.py index 3ffbade2d5b..3e94beb942a 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/db_gen/utils.py +++ b/Examples/MAX78002/CNN/faceid_evkit/db_gen/utils.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Utility functions to generate embeddings and I/O operations diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/MAXCAM_Debug.h b/Examples/MAX78002/CNN/faceid_evkit/include/MAXCAM_Debug.h index ba68441b603..eff55656f07 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/MAXCAM_Debug.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/MAXCAM_Debug.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef MAXCAM_DEBUG_H_ #define MAXCAM_DEBUG_H_ diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/cnn.h b/Examples/MAX78002/CNN/faceid_evkit/include/cnn.h index 138d681def1..594b4dcd90c 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/cnn.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/cnn.h @@ -1,9 +1,37 @@ -/************************************************************************************************** -* Copyright (C) 2019-2021 Maxim Integrated Products, Inc. All Rights Reserved. -* -* Maxim Integrated Products, Inc. Default Copyright Notice: -* https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -**************************************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ /* * This header file was automatically @generated for the faceid network from a template. diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/embedding_process.h b/Examples/MAX78002/CNN/faceid_evkit/include/embedding_process.h index 71a85daa541..e584700d724 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/embedding_process.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/embedding_process.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMBEDDINGS_PROCESS_H_ diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/embeddings.h b/Examples/MAX78002/CNN/faceid_evkit/include/embeddings.h index 46b8ce37114..4b5799e0feb 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/embeddings.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/embeddings.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMBEDDINGS_H_ diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/faceID.h b/Examples/MAX78002/CNN/faceid_evkit/include/faceID.h index a5437999737..4ebf7e8fba6 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/faceID.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/faceID.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _FACEID_H_ diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/keypad.h b/Examples/MAX78002/CNN/faceid_evkit/include/keypad.h index 597c1327029..3991d2eb5d5 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/keypad.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/keypad.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _KEYPAD_H_ diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/state.h b/Examples/MAX78002/CNN/faceid_evkit/include/state.h index 8be6a3a1794..556f43bf469 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/state.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/state.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _STATE_H_ diff --git a/Examples/MAX78002/CNN/faceid_evkit/include/utils.h b/Examples/MAX78002/CNN/faceid_evkit/include/utils.h index b8f63d1e621..f4bd1ed71de 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/include/utils.h +++ b/Examples/MAX78002/CNN/faceid_evkit/include/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _UTILS_H_ diff --git a/Examples/MAX78002/CNN/faceid_evkit/main.c b/Examples/MAX78002/CNN/faceid_evkit/main.c index 5661e612dfc..0105a56e8a4 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/main.c +++ b/Examples/MAX78002/CNN/faceid_evkit/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/CNN/faceid_evkit/src/cnn.c b/Examples/MAX78002/CNN/faceid_evkit/src/cnn.c index 03dd5339a79..37bdd0492df 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/src/cnn.c +++ b/Examples/MAX78002/CNN/faceid_evkit/src/cnn.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2022 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // faceid // This file was @generated by ai8xize.py --test-dir sdk/Examples/MAX78002/CNN --prefix faceid --checkpoint-file trained/ai85-faceid-qat8-q.pth.tar --config-file networks/faceid.yaml --fifo --device MAX78002 --timer 0 --display-checkpoint --verbose --overwrite diff --git a/Examples/MAX78002/CNN/faceid_evkit/src/embedding_process.c b/Examples/MAX78002/CNN/faceid_evkit/src/embedding_process.c index 0ffc4e9283e..2d5c621031c 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/src/embedding_process.c +++ b/Examples/MAX78002/CNN/faceid_evkit/src/embedding_process.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78002/CNN/faceid_evkit/src/state.c b/Examples/MAX78002/CNN/faceid_evkit/src/state.c index ea1eb7701cf..b26f46a8a44 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/src/state.c +++ b/Examples/MAX78002/CNN/faceid_evkit/src/state.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CNN/faceid_evkit/src/state_faceID.c b/Examples/MAX78002/CNN/faceid_evkit/src/state_faceID.c index e7a061fcfa5..00e0b95bd3a 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/src/state_faceID.c +++ b/Examples/MAX78002/CNN/faceid_evkit/src/state_faceID.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CNN/faceid_evkit/src/state_home.c b/Examples/MAX78002/CNN/faceid_evkit/src/state_home.c index 91f0319ce07..9fa3e9246c1 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/src/state_home.c +++ b/Examples/MAX78002/CNN/faceid_evkit/src/state_home.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "board.h" diff --git a/Examples/MAX78002/CNN/faceid_evkit/src/utils.c b/Examples/MAX78002/CNN/faceid_evkit/src/utils.c index 5b9a97597b7..1c1525753d9 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/src/utils.c +++ b/Examples/MAX78002/CNN/faceid_evkit/src/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/bmp2c.py b/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/bmp2c.py index e24ac4f328f..fef6f4ae3e3 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/bmp2c.py +++ b/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/template.txt b/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/template.txt +++ b/Examples/MAX78002/CNN/faceid_evkit/tft/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78002/CNN/faceid_evkit/tft/img_1_rgb565.c b/Examples/MAX78002/CNN/faceid_evkit/tft/img_1_rgb565.c index bcf2acb4cee..16ba3b522b5 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/tft/img_1_rgb565.c +++ b/Examples/MAX78002/CNN/faceid_evkit/tft/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78002/CNN/imagenet-riscv/Makefile b/Examples/MAX78002/CNN/imagenet-riscv/Makefile index 0bfe3083047..314ea110da7 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/Makefile +++ b/Examples/MAX78002/CNN/imagenet-riscv/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2019-2021 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # Command-line option for overriding output filename. # Ex: make all OUTFILE="filename" ... results in filename.elf diff --git a/Examples/MAX78002/CNN/imagenet-riscv/Makefile.ARM b/Examples/MAX78002/CNN/imagenet-riscv/Makefile.ARM index e57dda73fb3..52e9dd33bc2 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/Makefile.ARM +++ b/Examples/MAX78002/CNN/imagenet-riscv/Makefile.ARM @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2019-2021 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78002/CNN/imagenet-riscv/Makefile.RISCV b/Examples/MAX78002/CNN/imagenet-riscv/Makefile.RISCV index 11d3c559f90..6d9f46d0930 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/Makefile.RISCV +++ b/Examples/MAX78002/CNN/imagenet-riscv/Makefile.RISCV @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2019-2021 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file ifeq "$(PROJECT)" "" diff --git a/Examples/MAX78002/CNN/imagenet-riscv/cnn.c b/Examples/MAX78002/CNN/imagenet-riscv/cnn.c index 09d14ae6012..bc3a98b5442 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/cnn.c +++ b/Examples/MAX78002/CNN/imagenet-riscv/cnn.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2022 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // imagenet-riscv // This file was @generated by ai8xize.py --test-dir sdk/Examples/MAX78002/CNN --prefix imagenet-riscv --checkpoint-file trained/ai87-imagenet-effnet2-q.pth.tar --config-file networks/ai87-imagenet-effnet2.yaml --riscv --riscv-debug --device MAX78002 --timer 0 --display-checkpoint --verbose --overwrite diff --git a/Examples/MAX78002/CNN/imagenet-riscv/cnn.h b/Examples/MAX78002/CNN/imagenet-riscv/cnn.h index c6a777cbe38..b37b63a6535 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/cnn.h +++ b/Examples/MAX78002/CNN/imagenet-riscv/cnn.h @@ -1,9 +1,37 @@ -/************************************************************************************************** -* Copyright (C) 2019-2021 Maxim Integrated Products, Inc. All Rights Reserved. -* -* Maxim Integrated Products, Inc. Default Copyright Notice: -* https://www.maximintegrated.com/en/aboutus/legal/copyrights.html -**************************************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ /* * This header file was automatically @generated for the imagenet-riscv network from a template. diff --git a/Examples/MAX78002/CNN/imagenet-riscv/main.c b/Examples/MAX78002/CNN/imagenet-riscv/main.c index 3ea6fbc5137..72ff64a4432 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/main.c +++ b/Examples/MAX78002/CNN/imagenet-riscv/main.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2022 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // ARM wrapper code // imagenet-riscv diff --git a/Examples/MAX78002/CNN/imagenet-riscv/main_riscv.c b/Examples/MAX78002/CNN/imagenet-riscv/main_riscv.c index 4d4a91e9ffb..1545a1e8152 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/main_riscv.c +++ b/Examples/MAX78002/CNN/imagenet-riscv/main_riscv.c @@ -1,36 +1,37 @@ -/******************************************************************************* -* Copyright (C) 2019-2022 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. + * + * This software is protected by copyright laws of the United States and + * of foreign countries. This material may also be protected by patent laws + * and technology transfer regulations of the United States and of foreign + * countries. This software is furnished under a license agreement and/or a + * nondisclosure agreement and may only be used or reproduced in accordance + * with the terms of those agreements. Dissemination of this information to + * any party or parties not specified in the license agreement and/or + * nondisclosure agreement is expressly prohibited. + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ******************************************************************************/ // imagenet-riscv // This file was @generated by ai8xize.py --test-dir sdk/Examples/MAX78002/CNN --prefix imagenet-riscv --checkpoint-file trained/ai87-imagenet-effnet2-q.pth.tar --config-file networks/ai87-imagenet-effnet2.yaml --riscv --riscv-debug --device MAX78002 --timer 0 --display-checkpoint --verbose --overwrite diff --git a/Examples/MAX78002/CNN/imagenet-riscv/softmax.c b/Examples/MAX78002/CNN/imagenet-riscv/softmax.c index 2d149c7f3a1..b880a713016 100644 --- a/Examples/MAX78002/CNN/imagenet-riscv/softmax.c +++ b/Examples/MAX78002/CNN/imagenet-riscv/softmax.c @@ -16,9 +16,56 @@ * limitations under the License. */ -/* - * Portions Copyright (C) 2020 Maxim Integrated Products, Inc. - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ /* ---------------------------------------------------------------------- * Project: NN Library diff --git a/Examples/MAX78002/CNN/imagenet/Makefile b/Examples/MAX78002/CNN/imagenet/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/CNN/imagenet/Makefile +++ b/Examples/MAX78002/CNN/imagenet/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CNN/imagenet/cnn.c b/Examples/MAX78002/CNN/imagenet/cnn.c index 9ea1ce5e851..f7be5c01025 100644 --- a/Examples/MAX78002/CNN/imagenet/cnn.c +++ b/Examples/MAX78002/CNN/imagenet/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // imagenet diff --git a/Examples/MAX78002/CNN/imagenet/cnn.h b/Examples/MAX78002/CNN/imagenet/cnn.h index e74690f4221..2622fd1b74e 100644 --- a/Examples/MAX78002/CNN/imagenet/cnn.h +++ b/Examples/MAX78002/CNN/imagenet/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78002/CNN/imagenet/main.c b/Examples/MAX78002/CNN/imagenet/main.c index ca14b47f120..1950d608b10 100644 --- a/Examples/MAX78002/CNN/imagenet/main.c +++ b/Examples/MAX78002/CNN/imagenet/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // imagenet diff --git a/Examples/MAX78002/CNN/imagenet/softmax.c b/Examples/MAX78002/CNN/imagenet/softmax.c index 337fc32c1e5..ad087f50ebc 100644 --- a/Examples/MAX78002/CNN/imagenet/softmax.c +++ b/Examples/MAX78002/CNN/imagenet/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78002/CNN/kws20_demo/Makefile b/Examples/MAX78002/CNN/kws20_demo/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/CNN/kws20_demo/Makefile +++ b/Examples/MAX78002/CNN/kws20_demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CNN/kws20_demo/Utility/capture_serial_bin.py b/Examples/MAX78002/CNN/kws20_demo/Utility/capture_serial_bin.py index cbe4c9a0d16..9a262b0d69c 100644 --- a/Examples/MAX78002/CNN/kws20_demo/Utility/capture_serial_bin.py +++ b/Examples/MAX78002/CNN/kws20_demo/Utility/capture_serial_bin.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import os import argparse import soundfile as sf diff --git a/Examples/MAX78002/CNN/kws20_demo/Utility/convert_segment_wav.py b/Examples/MAX78002/CNN/kws20_demo/Utility/convert_segment_wav.py index 04498ad7ff7..797a8799f3e 100644 --- a/Examples/MAX78002/CNN/kws20_demo/Utility/convert_segment_wav.py +++ b/Examples/MAX78002/CNN/kws20_demo/Utility/convert_segment_wav.py @@ -1,35 +1,53 @@ -################################################################################ -# Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of Maxim Integrated -# Products, Inc. shall not be used except as stated in the Maxim Integrated -# Products, Inc. Branding Policy. -# -# The mere transfer of this software does not imply any licenses -# of trade secrets, proprietary technology, copyrights, patents, -# trademarks, maskwork rights, or any other form of intellectual -# property whatsoever. Maxim Integrated Products, Inc. retains all -# ownership rights. -# ############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import errno import os import argparse diff --git a/Examples/MAX78002/CNN/kws20_demo/softmax.c b/Examples/MAX78002/CNN/kws20_demo/softmax.c index 69898e50358..b880a713016 100644 --- a/Examples/MAX78002/CNN/kws20_demo/softmax.c +++ b/Examples/MAX78002/CNN/kws20_demo/softmax.c @@ -17,7 +17,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -47,6 +49,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* ---------------------------------------------------------------------- diff --git a/Examples/MAX78002/CNN/kws20_demo/tft/bmp/bmp2c.py b/Examples/MAX78002/CNN/kws20_demo/tft/bmp/bmp2c.py index e24ac4f328f..fef6f4ae3e3 100644 --- a/Examples/MAX78002/CNN/kws20_demo/tft/bmp/bmp2c.py +++ b/Examples/MAX78002/CNN/kws20_demo/tft/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78002/CNN/kws20_demo/tft/bmp/template.txt b/Examples/MAX78002/CNN/kws20_demo/tft/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78002/CNN/kws20_demo/tft/bmp/template.txt +++ b/Examples/MAX78002/CNN/kws20_demo/tft/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78002/CNN/kws20_demo/tft/img_1_rgb565.c b/Examples/MAX78002/CNN/kws20_demo/tft/img_1_rgb565.c index bcf2acb4cee..16ba3b522b5 100644 --- a/Examples/MAX78002/CNN/kws20_demo/tft/img_1_rgb565.c +++ b/Examples/MAX78002/CNN/kws20_demo/tft/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/Makefile b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/Makefile index 93b29defd5b..a5477ec9551 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/Makefile +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/main.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/main.c index 9bea5dbd14a..cb72d5860f3 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/main.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // pascalvoc-retinanetv7_3 diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.c index 59212a64cd1..fd6dcd43935 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.h index a8b427d49e4..54f964ae0cf 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/camera/camera.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef CAMERA_H diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.c index bd532e9f0bd..dcc3ad38b76 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // pascalvoc_fpndetector diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.h index 857cf83d3e3..266a15634c4 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/cnn.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/labels.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/labels.h index c7a4a80d83c..4cfc978aa67 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/labels.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/labels.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LABELS_H diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c index 80a04421f4b..fd7c4cbe6e6 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.h index 7846cf3f967..9c11639b27e 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef NMS_H diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/sampledata.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/sampledata.h index 53b666b95eb..cc06b2ab673 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/sampledata.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/sampledata.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // This file was @generated automatically diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/softmax.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/softmax.c index 2d149c7f3a1..b880a713016 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/softmax.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/softmax.c @@ -16,9 +16,56 @@ * limitations under the License. */ -/* - * Portions Copyright (C) 2020 Maxim Integrated Products, Inc. - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ /* ---------------------------------------------------------------------- * Project: NN Library diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/weights.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/weights.h index ea56321fd4d..8e9538691b9 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/weights.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/weights.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // This file was @generated automatically diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.c index d703be26889..a1085018b8d 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.h index 88cbfa0f308..12c413751c8 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/aps6404.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef APS6404_H diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.c index 4a1954e0c32..af194dcf20b 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.h index 6c4a83cd96c..697067c9886 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef FASTSPI_H diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi_config.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi_config.h index a14ee632fcc..82088174089 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi_config.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/sram/fastspi_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef FASTSPI_CONFIG_H diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.c index afb8b80f4bb..c8a08df512b 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.h b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.h index e520f53f6e2..7e8d2afbb17 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.h +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/tft/tft_utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef TFT_UTILS_H diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/batchconvert.py b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/batchconvert.py index 64310db9b92..97890051f02 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/batchconvert.py +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/batchconvert.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## from pathlib import Path import re diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/console.py b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/console.py index 572bfc8849d..20c9b937def 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/console.py +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/console.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ This file implements a simple console program for communicating diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/imgConverter.py b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/imgConverter.py index 86bdb4b8ae9..9065c159eae 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/imgConverter.py +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/utils/imgConverter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import struct from PIL import Image diff --git a/Examples/MAX78002/CRC/Makefile b/Examples/MAX78002/CRC/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/CRC/Makefile +++ b/Examples/MAX78002/CRC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CRC/main.c b/Examples/MAX78002/CRC/main.c index e65133bef95..221673dcefd 100644 --- a/Examples/MAX78002/CRC/main.c +++ b/Examples/MAX78002/CRC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/CSI2/Makefile b/Examples/MAX78002/CSI2/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/CSI2/Makefile +++ b/Examples/MAX78002/CSI2/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CSI2/console.c b/Examples/MAX78002/CSI2/console.c index cda76d68ff8..802be176e22 100644 --- a/Examples/MAX78002/CSI2/console.c +++ b/Examples/MAX78002/CSI2/console.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file console.c diff --git a/Examples/MAX78002/CSI2/console.h b/Examples/MAX78002/CSI2/console.h index 550bb00695c..d576eca8cad 100644 --- a/Examples/MAX78002/CSI2/console.h +++ b/Examples/MAX78002/CSI2/console.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file console.h diff --git a/Examples/MAX78002/CSI2/main.c b/Examples/MAX78002/CSI2/main.c index 1f8fee28ee0..31cb9cd4e8e 100644 --- a/Examples/MAX78002/CSI2/main.c +++ b/Examples/MAX78002/CSI2/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78002/CSI2/src/sram/aps6404.c b/Examples/MAX78002/CSI2/src/sram/aps6404.c index 53045895537..922e48f6565 100644 --- a/Examples/MAX78002/CSI2/src/sram/aps6404.c +++ b/Examples/MAX78002/CSI2/src/sram/aps6404.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CSI2/src/sram/aps6404.h b/Examples/MAX78002/CSI2/src/sram/aps6404.h index 9134b19fbca..e265c2b67b8 100644 --- a/Examples/MAX78002/CSI2/src/sram/aps6404.h +++ b/Examples/MAX78002/CSI2/src/sram/aps6404.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_CSI2_SRC_SRAM_APS6404_H_ #define EXAMPLES_MAX78002_CSI2_SRC_SRAM_APS6404_H_ diff --git a/Examples/MAX78002/CSI2/src/sram/fastspi.c b/Examples/MAX78002/CSI2/src/sram/fastspi.c index a792e0192f2..4399dcaeb57 100644 --- a/Examples/MAX78002/CSI2/src/sram/fastspi.c +++ b/Examples/MAX78002/CSI2/src/sram/fastspi.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/CSI2/src/sram/fastspi.h b/Examples/MAX78002/CSI2/src/sram/fastspi.h index e28d69e125c..d7dba3920f2 100644 --- a/Examples/MAX78002/CSI2/src/sram/fastspi.h +++ b/Examples/MAX78002/CSI2/src/sram/fastspi.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_CSI2_SRC_SRAM_FASTSPI_H_ #define EXAMPLES_MAX78002_CSI2_SRC_SRAM_FASTSPI_H_ diff --git a/Examples/MAX78002/CSI2/src/sram/fastspi_config.h b/Examples/MAX78002/CSI2/src/sram/fastspi_config.h index 41de7cc720b..c928d8bdc18 100644 --- a/Examples/MAX78002/CSI2/src/sram/fastspi_config.h +++ b/Examples/MAX78002/CSI2/src/sram/fastspi_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_CSI2_SRC_SRAM_FASTSPI_CONFIG_H_ #define EXAMPLES_MAX78002_CSI2_SRC_SRAM_FASTSPI_CONFIG_H_ diff --git a/Examples/MAX78002/CSI2/utils.c b/Examples/MAX78002/CSI2/utils.c index 87cdf974007..ce71d2d2e11 100644 --- a/Examples/MAX78002/CSI2/utils.c +++ b/Examples/MAX78002/CSI2/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78002/CSI2/utils.h b/Examples/MAX78002/CSI2/utils.h index 79c598888bb..0a61373942f 100644 --- a/Examples/MAX78002/CSI2/utils.h +++ b/Examples/MAX78002/CSI2/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_CSI2_UTILS_H_ #define EXAMPLES_MAX78002_CSI2_UTILS_H_ diff --git a/Examples/MAX78002/CSI2/utils/batchconvert.py b/Examples/MAX78002/CSI2/utils/batchconvert.py index 64310db9b92..97890051f02 100644 --- a/Examples/MAX78002/CSI2/utils/batchconvert.py +++ b/Examples/MAX78002/CSI2/utils/batchconvert.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## from pathlib import Path import re diff --git a/Examples/MAX78002/CSI2/utils/console.py b/Examples/MAX78002/CSI2/utils/console.py index 572bfc8849d..20c9b937def 100644 --- a/Examples/MAX78002/CSI2/utils/console.py +++ b/Examples/MAX78002/CSI2/utils/console.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ This file implements a simple console program for communicating diff --git a/Examples/MAX78002/CSI2/utils/imgConverter.py b/Examples/MAX78002/CSI2/utils/imgConverter.py index 86bdb4b8ae9..9065c159eae 100644 --- a/Examples/MAX78002/CSI2/utils/imgConverter.py +++ b/Examples/MAX78002/CSI2/utils/imgConverter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import struct from PIL import Image diff --git a/Examples/MAX78002/CameraIF/Makefile b/Examples/MAX78002/CameraIF/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/CameraIF/Makefile +++ b/Examples/MAX78002/CameraIF/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CameraIF/main.c b/Examples/MAX78002/CameraIF/main.c index 5432c163246..46a815df1bb 100644 --- a/Examples/MAX78002/CameraIF/main.c +++ b/Examples/MAX78002/CameraIF/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/CameraIF/pc_utility/comManager.py b/Examples/MAX78002/CameraIF/pc_utility/comManager.py index 8d9e050b394..f01d667971b 100644 --- a/Examples/MAX78002/CameraIF/pc_utility/comManager.py +++ b/Examples/MAX78002/CameraIF/pc_utility/comManager.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time import os diff --git a/Examples/MAX78002/CameraIF/pc_utility/grab_image.py b/Examples/MAX78002/CameraIF/pc_utility/grab_image.py index f3500128742..e0d7c0f464c 100644 --- a/Examples/MAX78002/CameraIF/pc_utility/grab_image.py +++ b/Examples/MAX78002/CameraIF/pc_utility/grab_image.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import time from datetime import datetime import sys diff --git a/Examples/MAX78002/CameraIF/pc_utility/imgConverter.py b/Examples/MAX78002/CameraIF/pc_utility/imgConverter.py index 433f9881a6a..575b9ed291a 100644 --- a/Examples/MAX78002/CameraIF/pc_utility/imgConverter.py +++ b/Examples/MAX78002/CameraIF/pc_utility/imgConverter.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import struct from PIL import Image diff --git a/Examples/MAX78002/CameraIF/utils.c b/Examples/MAX78002/CameraIF/utils.c index 87cdf974007..ce71d2d2e11 100644 --- a/Examples/MAX78002/CameraIF/utils.c +++ b/Examples/MAX78002/CameraIF/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78002/CameraIF/utils.h b/Examples/MAX78002/CameraIF/utils.h index f7bfac5a259..c49e9b13c79 100644 --- a/Examples/MAX78002/CameraIF/utils.h +++ b/Examples/MAX78002/CameraIF/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_CAMERAIF_UTILS_H_ #define EXAMPLES_MAX78002_CAMERAIF_UTILS_H_ diff --git a/Examples/MAX78002/CameraIF_Debayer/Makefile b/Examples/MAX78002/CameraIF_Debayer/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/CameraIF_Debayer/Makefile +++ b/Examples/MAX78002/CameraIF_Debayer/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/CameraIF_Debayer/main.c b/Examples/MAX78002/CameraIF_Debayer/main.c index 6bfba7996fa..21a45b8803e 100644 --- a/Examples/MAX78002/CameraIF_Debayer/main.c +++ b/Examples/MAX78002/CameraIF_Debayer/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/CameraIF_Debayer/pc_utility/comManager.py b/Examples/MAX78002/CameraIF_Debayer/pc_utility/comManager.py index 8d9e050b394..f01d667971b 100644 --- a/Examples/MAX78002/CameraIF_Debayer/pc_utility/comManager.py +++ b/Examples/MAX78002/CameraIF_Debayer/pc_utility/comManager.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time import os diff --git a/Examples/MAX78002/CameraIF_Debayer/pc_utility/grab_image.py b/Examples/MAX78002/CameraIF_Debayer/pc_utility/grab_image.py index 08e72833dac..5e28ae66e37 100644 --- a/Examples/MAX78002/CameraIF_Debayer/pc_utility/grab_image.py +++ b/Examples/MAX78002/CameraIF_Debayer/pc_utility/grab_image.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import serial import time from datetime import datetime diff --git a/Examples/MAX78002/CameraIF_Debayer/pc_utility/imgConverter.py b/Examples/MAX78002/CameraIF_Debayer/pc_utility/imgConverter.py index 5a4db33dbe0..5e652d04450 100644 --- a/Examples/MAX78002/CameraIF_Debayer/pc_utility/imgConverter.py +++ b/Examples/MAX78002/CameraIF_Debayer/pc_utility/imgConverter.py @@ -1,3 +1,54 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + import time import os import sys diff --git a/Examples/MAX78002/CameraIF_Debayer/utils.c b/Examples/MAX78002/CameraIF_Debayer/utils.c index 4b917735f4a..e2f24dd266b 100644 --- a/Examples/MAX78002/CameraIF_Debayer/utils.c +++ b/Examples/MAX78002/CameraIF_Debayer/utils.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78002/CameraIF_Debayer/utils.h b/Examples/MAX78002/CameraIF_Debayer/utils.h index 42f0e64398b..964a5013c5b 100644 --- a/Examples/MAX78002/CameraIF_Debayer/utils.h +++ b/Examples/MAX78002/CameraIF_Debayer/utils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_CAMERAIF_DEBAYER_UTILS_H_ #define EXAMPLES_MAX78002_CAMERAIF_DEBAYER_UTILS_H_ diff --git a/Examples/MAX78002/Coremark/Makefile b/Examples/MAX78002/Coremark/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Coremark/Makefile +++ b/Examples/MAX78002/Coremark/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/DMA/Makefile b/Examples/MAX78002/DMA/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/DMA/Makefile +++ b/Examples/MAX78002/DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/DMA/main.c b/Examples/MAX78002/DMA/main.c index 830bde4c743..089c5da738e 100644 --- a/Examples/MAX78002/DMA/main.c +++ b/Examples/MAX78002/DMA/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/ECC/Makefile b/Examples/MAX78002/ECC/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/ECC/Makefile +++ b/Examples/MAX78002/ECC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ECC/main.c b/Examples/MAX78002/ECC/main.c index 5a63ea4c59c..3c257698145 100644 --- a/Examples/MAX78002/ECC/main.c +++ b/Examples/MAX78002/ECC/main.c @@ -1,13 +1,7 @@ - -/** - * @file main.c - * @brief Demonstration of SRAM Error Correcting Code (ECC) features - * @details This program demonstrates single and double-bit error detection and - * single-bit correction for SRAM memories. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,31 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Demonstration of SRAM Error Correcting Code (ECC) features + * @details This program demonstrates single and double-bit error detection and + * single-bit correction for SRAM memories. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX78002/EEPROM_Emulator/Makefile b/Examples/MAX78002/EEPROM_Emulator/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/EEPROM_Emulator/Makefile +++ b/Examples/MAX78002/EEPROM_Emulator/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/EEPROM_Emulator/include/cache.h b/Examples/MAX78002/EEPROM_Emulator/include/cache.h index 9263b1016d4..c3256ddc643 100644 --- a/Examples/MAX78002/EEPROM_Emulator/include/cache.h +++ b/Examples/MAX78002/EEPROM_Emulator/include/cache.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#ifndef EXAMPLES_MAX78002_EEPROM_EMULATOR_INCLUDE_CACHE_H_ +#define EXAMPLES_MAX78002_EEPROM_EMULATOR_INCLUDE_CACHE_H_ /***** Included Files *****/ #include @@ -79,4 +97,4 @@ int cache_refresh(cache_t *cache, uint32_t next_addr); */ int cache_write_back(cache_t *cache); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_CACHE_H_ +#endif // EXAMPLES_MAX78002_EEPROM_EMULATOR_INCLUDE_CACHE_H_ diff --git a/Examples/MAX78002/EEPROM_Emulator/include/eeprom.h b/Examples/MAX78002/EEPROM_Emulator/include/eeprom.h index e4956f57a15..d6ece1042bf 100644 --- a/Examples/MAX78002/EEPROM_Emulator/include/eeprom.h +++ b/Examples/MAX78002/EEPROM_Emulator/include/eeprom.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ -#define EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#ifndef EXAMPLES_MAX78002_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ +#define EXAMPLES_MAX78002_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ /***** Included Files *****/ #include @@ -80,4 +98,4 @@ int eeprom_init(mxc_i2c_regs_t *eeprom_i2c, mxc_gpio_cfg_t rdy_pin); */ void eeprom_prep_for_txn(void); -#endif // EXAMPLES_MAX78000_EEPROM_EMULATOR_EEPROM_H_ +#endif // EXAMPLES_MAX78002_EEPROM_EMULATOR_INCLUDE_EEPROM_H_ diff --git a/Examples/MAX78002/EEPROM_Emulator/main.c b/Examples/MAX78002/EEPROM_Emulator/main.c index 3e4006d01d0..d997f25fa08 100644 --- a/Examples/MAX78002/EEPROM_Emulator/main.c +++ b/Examples/MAX78002/EEPROM_Emulator/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/EEPROM_Emulator/src/cache.c b/Examples/MAX78002/EEPROM_Emulator/src/cache.c index 6941b9794e4..c04614f7b05 100644 --- a/Examples/MAX78002/EEPROM_Emulator/src/cache.c +++ b/Examples/MAX78002/EEPROM_Emulator/src/cache.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "cache.h" diff --git a/Examples/MAX78002/EEPROM_Emulator/src/eeprom.c b/Examples/MAX78002/EEPROM_Emulator/src/eeprom.c index 38e3748ac22..8b27d039bd6 100644 --- a/Examples/MAX78002/EEPROM_Emulator/src/eeprom.c +++ b/Examples/MAX78002/EEPROM_Emulator/src/eeprom.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "include/eeprom.h" diff --git a/Examples/MAX78002/Flash/Makefile b/Examples/MAX78002/Flash/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Flash/Makefile +++ b/Examples/MAX78002/Flash/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Flash/main.c b/Examples/MAX78002/Flash/main.c index fac495daca6..a2c1e86fcba 100644 --- a/Examples/MAX78002/Flash/main.c +++ b/Examples/MAX78002/Flash/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/Flash_CLI/FreeRTOSConfig.h b/Examples/MAX78002/Flash_CLI/FreeRTOSConfig.h index 2b9b0eadd62..3ea14671ccd 100644 --- a/Examples/MAX78002/Flash_CLI/FreeRTOSConfig.h +++ b/Examples/MAX78002/Flash_CLI/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_FLASH_CLI_FREERTOSCONFIG_H_ diff --git a/Examples/MAX78002/Flash_CLI/Makefile b/Examples/MAX78002/Flash_CLI/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Flash_CLI/Makefile +++ b/Examples/MAX78002/Flash_CLI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Flash_CLI/definitions.h b/Examples/MAX78002/Flash_CLI/definitions.h index 1f3b2047513..3be5d46ee07 100644 --- a/Examples/MAX78002/Flash_CLI/definitions.h +++ b/Examples/MAX78002/Flash_CLI/definitions.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_FLASH_CLI_DEFINITIONS_H_ diff --git a/Examples/MAX78002/Flash_CLI/main.c b/Examples/MAX78002/Flash_CLI/main.c index 844c22cb2f3..74451d901e8 100644 --- a/Examples/MAX78002/Flash_CLI/main.c +++ b/Examples/MAX78002/Flash_CLI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78002/FreeRTOSDemo/FreeRTOSConfig.h index b4e9adb5b0b..dcd33fe3cb9 100644 --- a/Examples/MAX78002/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78002/FreeRTOSDemo/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_FREERTOSDEMO_FREERTOSCONFIG_H_ diff --git a/Examples/MAX78002/FreeRTOSDemo/Makefile b/Examples/MAX78002/FreeRTOSDemo/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/FreeRTOSDemo/Makefile +++ b/Examples/MAX78002/FreeRTOSDemo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/FreeRTOSDemo/freertos_tickless.c b/Examples/MAX78002/FreeRTOSDemo/freertos_tickless.c index a8c3a5c508d..3f525e223a5 100644 --- a/Examples/MAX78002/FreeRTOSDemo/freertos_tickless.c +++ b/Examples/MAX78002/FreeRTOSDemo/freertos_tickless.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* MXC */ diff --git a/Examples/MAX78002/FreeRTOSDemo/main.c b/Examples/MAX78002/FreeRTOSDemo/main.c index 277bd93e64c..702c0e39a1b 100644 --- a/Examples/MAX78002/FreeRTOSDemo/main.c +++ b/Examples/MAX78002/FreeRTOSDemo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/GPIO/Makefile b/Examples/MAX78002/GPIO/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/GPIO/Makefile +++ b/Examples/MAX78002/GPIO/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/GPIO/main.c b/Examples/MAX78002/GPIO/main.c index b54885b127a..f9cc7c2d751 100644 --- a/Examples/MAX78002/GPIO/main.c +++ b/Examples/MAX78002/GPIO/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78002/Hello_World/Makefile b/Examples/MAX78002/Hello_World/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Hello_World/Makefile +++ b/Examples/MAX78002/Hello_World/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Hello_World/main.c b/Examples/MAX78002/Hello_World/main.c index 223e8b45d05..11f2a84731c 100644 --- a/Examples/MAX78002/Hello_World/main.c +++ b/Examples/MAX78002/Hello_World/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/Hello_World_Cpp/Makefile b/Examples/MAX78002/Hello_World_Cpp/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Hello_World_Cpp/Makefile +++ b/Examples/MAX78002/Hello_World_Cpp/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Hello_World_Cpp/main.cpp b/Examples/MAX78002/Hello_World_Cpp/main.cpp index aee9ae17fcf..e5c2d7c440e 100644 --- a/Examples/MAX78002/Hello_World_Cpp/main.cpp +++ b/Examples/MAX78002/Hello_World_Cpp/main.cpp @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/I2C/Makefile b/Examples/MAX78002/I2C/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/I2C/Makefile +++ b/Examples/MAX78002/I2C/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/I2C/main.c b/Examples/MAX78002/I2C/main.c index 89119c4cf31..44f9edc7eff 100644 --- a/Examples/MAX78002/I2C/main.c +++ b/Examples/MAX78002/I2C/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/I2C_MNGR/FreeRTOSConfig.h b/Examples/MAX78002/I2C_MNGR/FreeRTOSConfig.h index fbd5f3daed5..d851690307a 100644 --- a/Examples/MAX78002/I2C_MNGR/FreeRTOSConfig.h +++ b/Examples/MAX78002/I2C_MNGR/FreeRTOSConfig.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_I2C_MNGR_FREERTOSCONFIG_H_ diff --git a/Examples/MAX78002/I2C_MNGR/Makefile b/Examples/MAX78002/I2C_MNGR/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/I2C_MNGR/Makefile +++ b/Examples/MAX78002/I2C_MNGR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.c b/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.c index 6eb07a9630c..2f70b1ad178 100644 --- a/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.c +++ b/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.h b/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.h index 61b9f0f52d3..f208e722367 100644 --- a/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.h +++ b/Examples/MAX78002/I2C_MNGR/i2c_mngr/i2c_mngr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_I2C_MNGR_I2C_MNGR_I2C_MNGR_H_ diff --git a/Examples/MAX78002/I2C_MNGR/main.c b/Examples/MAX78002/I2C_MNGR/main.c index 179def6b716..cfa9cf00bb5 100644 --- a/Examples/MAX78002/I2C_MNGR/main.c +++ b/Examples/MAX78002/I2C_MNGR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/I2C_SCAN/Makefile b/Examples/MAX78002/I2C_SCAN/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/I2C_SCAN/Makefile +++ b/Examples/MAX78002/I2C_SCAN/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/I2C_SCAN/main.c b/Examples/MAX78002/I2C_SCAN/main.c index 86f9695226f..02680711a9e 100644 --- a/Examples/MAX78002/I2C_SCAN/main.c +++ b/Examples/MAX78002/I2C_SCAN/main.c @@ -1,13 +1,7 @@ -/** - * @file main.c - * @brief Example code for scanning the available addresses on an I2C bus - * @details This example uses the I2C Master to found addresses of the I2C Slave devices - * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) - * to the proper I/O voltage. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file main.c + * @brief Example code for scanning the available addresses on an I2C bus + * @details This example uses the I2C Master to found addresses of the I2C Slave devices + * connected to the bus. You must connect the pull-up jumpers (JP21 and JP22) + * to the proper I/O voltage. + */ + /***** Includes *****/ #include #include diff --git a/Examples/MAX78002/I2C_Sensor/Makefile b/Examples/MAX78002/I2C_Sensor/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/I2C_Sensor/Makefile +++ b/Examples/MAX78002/I2C_Sensor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/I2C_Sensor/main.c b/Examples/MAX78002/I2C_Sensor/main.c index 054dd52105a..b42b676bef6 100644 --- a/Examples/MAX78002/I2C_Sensor/main.c +++ b/Examples/MAX78002/I2C_Sensor/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78002/I2S/Makefile b/Examples/MAX78002/I2S/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/I2S/Makefile +++ b/Examples/MAX78002/I2S/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/I2S/main.c b/Examples/MAX78002/I2S/main.c index 30c434bac5e..30c5c844419 100644 --- a/Examples/MAX78002/I2S/main.c +++ b/Examples/MAX78002/I2S/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78002/I2S_DMA/Makefile b/Examples/MAX78002/I2S_DMA/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/I2S_DMA/Makefile +++ b/Examples/MAX78002/I2S_DMA/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/I2S_DMA/main.c b/Examples/MAX78002/I2S_DMA/main.c index 34e3f3b57ff..fc962d5452a 100644 --- a/Examples/MAX78002/I2S_DMA/main.c +++ b/Examples/MAX78002/I2S_DMA/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78002/ICC/Makefile b/Examples/MAX78002/ICC/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/ICC/Makefile +++ b/Examples/MAX78002/ICC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ICC/main.c b/Examples/MAX78002/ICC/main.c index f927e15f847..b09bbe18147 100644 --- a/Examples/MAX78002/ICC/main.c +++ b/Examples/MAX78002/ICC/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78002/ImgCapture/Makefile b/Examples/MAX78002/ImgCapture/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/ImgCapture/Makefile +++ b/Examples/MAX78002/ImgCapture/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/ImgCapture/include/cnn_memutils.h b/Examples/MAX78002/ImgCapture/include/cnn_memutils.h index 5d1a59da424..734b7037be7 100644 --- a/Examples/MAX78002/ImgCapture/include/cnn_memutils.h +++ b/Examples/MAX78002/ImgCapture/include/cnn_memutils.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file cnn_memutils.h diff --git a/Examples/MAX78002/ImgCapture/include/console.h b/Examples/MAX78002/ImgCapture/include/console.h index 53514f5598b..2f470ddc1ec 100644 --- a/Examples/MAX78002/ImgCapture/include/console.h +++ b/Examples/MAX78002/ImgCapture/include/console.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file console.h diff --git a/Examples/MAX78002/ImgCapture/include/example_config.h b/Examples/MAX78002/ImgCapture/include/example_config.h index 8c6eb22ada8..50c22e2cae4 100644 --- a/Examples/MAX78002/ImgCapture/include/example_config.h +++ b/Examples/MAX78002/ImgCapture/include/example_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_IMGCAPTURE_INCLUDE_EXAMPLE_CONFIG_H_ #define EXAMPLES_MAX78002_IMGCAPTURE_INCLUDE_EXAMPLE_CONFIG_H_ diff --git a/Examples/MAX78002/ImgCapture/include/sd.h b/Examples/MAX78002/ImgCapture/include/sd.h index 2c31e8c4660..75b79a68725 100644 --- a/Examples/MAX78002/ImgCapture/include/sd.h +++ b/Examples/MAX78002/ImgCapture/include/sd.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/ImgCapture/main.c b/Examples/MAX78002/ImgCapture/main.c index 50b6755dfd0..aaa0a54fe82 100644 --- a/Examples/MAX78002/ImgCapture/main.c +++ b/Examples/MAX78002/ImgCapture/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file main.c diff --git a/Examples/MAX78002/ImgCapture/src/console/console.c b/Examples/MAX78002/ImgCapture/src/console/console.c index d7a91fd005a..5b14cc9db93 100644 --- a/Examples/MAX78002/ImgCapture/src/console/console.c +++ b/Examples/MAX78002/ImgCapture/src/console/console.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** * @file console.c diff --git a/Examples/MAX78002/ImgCapture/src/sd/sd.c b/Examples/MAX78002/ImgCapture/src/sd/sd.c index 1107605662f..9e252bc4fc4 100644 --- a/Examples/MAX78002/ImgCapture/src/sd/sd.c +++ b/Examples/MAX78002/ImgCapture/src/sd/sd.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "sd.h" diff --git a/Examples/MAX78002/ImgCapture/utils/batchconvert.py b/Examples/MAX78002/ImgCapture/utils/batchconvert.py index 64310db9b92..97890051f02 100644 --- a/Examples/MAX78002/ImgCapture/utils/batchconvert.py +++ b/Examples/MAX78002/ImgCapture/utils/batchconvert.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## from pathlib import Path import re diff --git a/Examples/MAX78002/ImgCapture/utils/console.py b/Examples/MAX78002/ImgCapture/utils/console.py index aba21370a92..aeae8f6aa01 100644 --- a/Examples/MAX78002/ImgCapture/utils/console.py +++ b/Examples/MAX78002/ImgCapture/utils/console.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ This file implements a simple console program for communicating diff --git a/Examples/MAX78002/ImgCapture/utils/imgConverter.py b/Examples/MAX78002/ImgCapture/utils/imgConverter.py index 86bdb4b8ae9..9065c159eae 100644 --- a/Examples/MAX78002/ImgCapture/utils/imgConverter.py +++ b/Examples/MAX78002/ImgCapture/utils/imgConverter.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## import struct from PIL import Image diff --git a/Examples/MAX78002/LP/Makefile b/Examples/MAX78002/LP/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/LP/Makefile +++ b/Examples/MAX78002/LP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/LP/main.c b/Examples/MAX78002/LP/main.c index e3fb5420148..1db1398d97d 100644 --- a/Examples/MAX78002/LP/main.c +++ b/Examples/MAX78002/LP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78002/LPCMP/Makefile b/Examples/MAX78002/LPCMP/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/LPCMP/Makefile +++ b/Examples/MAX78002/LPCMP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/LPCMP/main.c b/Examples/MAX78002/LPCMP/main.c index c0b28443c48..5216c67751a 100644 --- a/Examples/MAX78002/LPCMP/main.c +++ b/Examples/MAX78002/LPCMP/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/Library_Generate/Makefile b/Examples/MAX78002/Library_Generate/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Library_Generate/Makefile +++ b/Examples/MAX78002/Library_Generate/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Library_Generate/gpiolib.c b/Examples/MAX78002/Library_Generate/gpiolib.c index 8b107a6a87f..0f4d9cd8a28 100644 --- a/Examples/MAX78002/Library_Generate/gpiolib.c +++ b/Examples/MAX78002/Library_Generate/gpiolib.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_errors.h" diff --git a/Examples/MAX78002/Library_Generate/gpiolib.h b/Examples/MAX78002/Library_Generate/gpiolib.h index 393420617d3..5bb55d78627 100644 --- a/Examples/MAX78002/Library_Generate/gpiolib.h +++ b/Examples/MAX78002/Library_Generate/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_LIBRARY_GENERATE_GPIOLIB_H_ diff --git a/Examples/MAX78002/Library_Use/Makefile b/Examples/MAX78002/Library_Use/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Library_Use/Makefile +++ b/Examples/MAX78002/Library_Use/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Library_Use/lib/include/gpiolib.h b/Examples/MAX78002/Library_Use/lib/include/gpiolib.h index de20b8ae781..c73398e3fb2 100644 --- a/Examples/MAX78002/Library_Use/lib/include/gpiolib.h +++ b/Examples/MAX78002/Library_Use/lib/include/gpiolib.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_LIBRARY_USE_LIB_INCLUDE_GPIOLIB_H_ diff --git a/Examples/MAX78002/Library_Use/main.c b/Examples/MAX78002/Library_Use/main.c index 45383105662..c0c61b30a48 100644 --- a/Examples/MAX78002/Library_Use/main.c +++ b/Examples/MAX78002/Library_Use/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Examples/MAX78002/Pulse_Train/Makefile b/Examples/MAX78002/Pulse_Train/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Pulse_Train/Makefile +++ b/Examples/MAX78002/Pulse_Train/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Pulse_Train/main.c b/Examples/MAX78002/Pulse_Train/main.c index b29544f6cfb..35de02c8497 100644 --- a/Examples/MAX78002/Pulse_Train/main.c +++ b/Examples/MAX78002/Pulse_Train/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/QSPI/Makefile b/Examples/MAX78002/QSPI/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/QSPI/Makefile +++ b/Examples/MAX78002/QSPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/QSPI/aps6404.c b/Examples/MAX78002/QSPI/aps6404.c index 36c23f6a0d1..28e1d3478b8 100644 --- a/Examples/MAX78002/QSPI/aps6404.c +++ b/Examples/MAX78002/QSPI/aps6404.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include // For memset diff --git a/Examples/MAX78002/QSPI/aps6404.h b/Examples/MAX78002/QSPI/aps6404.h index 10d3f801625..17812ac517f 100644 --- a/Examples/MAX78002/QSPI/aps6404.h +++ b/Examples/MAX78002/QSPI/aps6404.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_QSPI_APS6404_H_ #define EXAMPLES_MAX78002_QSPI_APS6404_H_ diff --git a/Examples/MAX78002/QSPI/fastspi.c b/Examples/MAX78002/QSPI/fastspi.c index 16d508a54ac..bb44b47bf58 100644 --- a/Examples/MAX78002/QSPI/fastspi.c +++ b/Examples/MAX78002/QSPI/fastspi.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78002/QSPI/fastspi.h b/Examples/MAX78002/QSPI/fastspi.h index 9a6e068ff3d..4caf7508800 100644 --- a/Examples/MAX78002/QSPI/fastspi.h +++ b/Examples/MAX78002/QSPI/fastspi.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_QSPI_FASTSPI_H_ #define EXAMPLES_MAX78002_QSPI_FASTSPI_H_ diff --git a/Examples/MAX78002/QSPI/fastspi_config.h b/Examples/MAX78002/QSPI/fastspi_config.h index 0d997b14e72..a7699c2f922 100644 --- a/Examples/MAX78002/QSPI/fastspi_config.h +++ b/Examples/MAX78002/QSPI/fastspi_config.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_QSPI_FASTSPI_CONFIG_H_ #define EXAMPLES_MAX78002_QSPI_FASTSPI_CONFIG_H_ diff --git a/Examples/MAX78002/QSPI/main.c b/Examples/MAX78002/QSPI/main.c index 314564afd0a..6d34136acc4 100644 --- a/Examples/MAX78002/QSPI/main.c +++ b/Examples/MAX78002/QSPI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/RTC/Makefile b/Examples/MAX78002/RTC/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/RTC/Makefile +++ b/Examples/MAX78002/RTC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/RTC/main.c b/Examples/MAX78002/RTC/main.c index f63547dca15..6132675e5b1 100644 --- a/Examples/MAX78002/RTC/main.c +++ b/Examples/MAX78002/RTC/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/RTC_Backup/Makefile b/Examples/MAX78002/RTC_Backup/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/RTC_Backup/Makefile +++ b/Examples/MAX78002/RTC_Backup/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/RTC_Backup/main.c b/Examples/MAX78002/RTC_Backup/main.c index 17ac1ded33f..bc3a81795be 100644 --- a/Examples/MAX78002/RTC_Backup/main.c +++ b/Examples/MAX78002/RTC_Backup/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/RV_ARM_Loader/Makefile b/Examples/MAX78002/RV_ARM_Loader/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/RV_ARM_Loader/Makefile +++ b/Examples/MAX78002/RV_ARM_Loader/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/RV_ARM_Loader/main.c b/Examples/MAX78002/RV_ARM_Loader/main.c index b680643e6cc..fded68a79bc 100644 --- a/Examples/MAX78002/RV_ARM_Loader/main.c +++ b/Examples/MAX78002/RV_ARM_Loader/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/SDHC_FAT/Makefile b/Examples/MAX78002/SDHC_FAT/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/SDHC_FAT/Makefile +++ b/Examples/MAX78002/SDHC_FAT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/SDHC_FAT/main.c b/Examples/MAX78002/SDHC_FAT/main.c index ed6438e5007..032ef6f9079 100644 --- a/Examples/MAX78002/SDHC_FAT/main.c +++ b/Examples/MAX78002/SDHC_FAT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/SDHC_Raw/Makefile b/Examples/MAX78002/SDHC_Raw/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/SDHC_Raw/Makefile +++ b/Examples/MAX78002/SDHC_Raw/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/SDHC_Raw/main.c b/Examples/MAX78002/SDHC_Raw/main.c index d3961362c72..2f57636d7ce 100644 --- a/Examples/MAX78002/SDHC_Raw/main.c +++ b/Examples/MAX78002/SDHC_Raw/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/SPI/Makefile b/Examples/MAX78002/SPI/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/SPI/Makefile +++ b/Examples/MAX78002/SPI/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/SPI/main.c b/Examples/MAX78002/SPI/main.c index c41f06a7b51..4c8740eff66 100644 --- a/Examples/MAX78002/SPI/main.c +++ b/Examples/MAX78002/SPI/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/SPI_ControllerTarget/Makefile b/Examples/MAX78002/SPI_ControllerTarget/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/SPI_ControllerTarget/Makefile +++ b/Examples/MAX78002/SPI_ControllerTarget/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/SPI_ControllerTarget/main.c b/Examples/MAX78002/SPI_ControllerTarget/main.c index f2bd715ce67..eced8dbad02 100644 --- a/Examples/MAX78002/SPI_ControllerTarget/main.c +++ b/Examples/MAX78002/SPI_ControllerTarget/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/SPI_MasterSlave/Makefile b/Examples/MAX78002/SPI_MasterSlave/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/SPI_MasterSlave/Makefile +++ b/Examples/MAX78002/SPI_MasterSlave/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/SPI_MasterSlave/main.c b/Examples/MAX78002/SPI_MasterSlave/main.c index cd191ab307f..5fdbde56f03 100644 --- a/Examples/MAX78002/SPI_MasterSlave/main.c +++ b/Examples/MAX78002/SPI_MasterSlave/main.c @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Examples/MAX78002/TFT_Demo/Makefile b/Examples/MAX78002/TFT_Demo/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/TFT_Demo/Makefile +++ b/Examples/MAX78002/TFT_Demo/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/TFT_Demo/main.c b/Examples/MAX78002/TFT_Demo/main.c index 316b10b24fd..e4e22f4cfce 100644 --- a/Examples/MAX78002/TFT_Demo/main.c +++ b/Examples/MAX78002/TFT_Demo/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/TFT_Demo/resources/tft/bmp/bmp2c.py b/Examples/MAX78002/TFT_Demo/resources/tft/bmp/bmp2c.py index e24ac4f328f..fef6f4ae3e3 100644 --- a/Examples/MAX78002/TFT_Demo/resources/tft/bmp/bmp2c.py +++ b/Examples/MAX78002/TFT_Demo/resources/tft/bmp/bmp2c.py @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## """ Creates a C file of RGB565 pixel format resized to 320x240 from a JPEG, or 24bit BMP file. """ diff --git a/Examples/MAX78002/TFT_Demo/resources/tft/bmp/template.txt b/Examples/MAX78002/TFT_Demo/resources/tft/bmp/template.txt index 490d63575fb..3531d061f59 100644 --- a/Examples/MAX78002/TFT_Demo/resources/tft/bmp/template.txt +++ b/Examples/MAX78002/TFT_Demo/resources/tft/bmp/template.txt @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__ ((aligned (2))) diff --git a/Examples/MAX78002/TFT_Demo/resources/tft/img_1_rgb565.c b/Examples/MAX78002/TFT_Demo/resources/tft/img_1_rgb565.c index bcf2acb4cee..16ba3b522b5 100644 --- a/Examples/MAX78002/TFT_Demo/resources/tft/img_1_rgb565.c +++ b/Examples/MAX78002/TFT_Demo/resources/tft/img_1_rgb565.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __attribute__((section(".bin_storage_img"))) __attribute__((__used__)) __attribute__((aligned(2))) const unsigned char img_1_rgb565[153604] = { diff --git a/Examples/MAX78002/TMR/Makefile b/Examples/MAX78002/TMR/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/TMR/Makefile +++ b/Examples/MAX78002/TMR/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/TMR/main.c b/Examples/MAX78002/TMR/main.c index f1fe23c939b..fa49eef9d8f 100644 --- a/Examples/MAX78002/TMR/main.c +++ b/Examples/MAX78002/TMR/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/TRNG/Makefile b/Examples/MAX78002/TRNG/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/TRNG/Makefile +++ b/Examples/MAX78002/TRNG/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/TRNG/main.c b/Examples/MAX78002/TRNG/main.c index 88faf8aeb49..2bb59f0050d 100644 --- a/Examples/MAX78002/TRNG/main.c +++ b/Examples/MAX78002/TRNG/main.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/Temp_Monitor/Makefile b/Examples/MAX78002/Temp_Monitor/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Temp_Monitor/Makefile +++ b/Examples/MAX78002/Temp_Monitor/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Temp_Monitor/main.c b/Examples/MAX78002/Temp_Monitor/main.c index 7122c984bfb..5240a18cb30 100644 --- a/Examples/MAX78002/Temp_Monitor/main.c +++ b/Examples/MAX78002/Temp_Monitor/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/Temp_Monitor/temp_monitor.c b/Examples/MAX78002/Temp_Monitor/temp_monitor.c index 7e3a9feaf68..3470942d2c4 100644 --- a/Examples/MAX78002/Temp_Monitor/temp_monitor.c +++ b/Examples/MAX78002/Temp_Monitor/temp_monitor.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Examples/MAX78002/Temp_Monitor/temp_monitor.h b/Examples/MAX78002/Temp_Monitor/temp_monitor.h index 2fbcd07f1d7..93d8646fdce 100644 --- a/Examples/MAX78002/Temp_Monitor/temp_monitor.h +++ b/Examples/MAX78002/Temp_Monitor/temp_monitor.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_TEMP_MONITOR_TEMP_MONITOR_H_ diff --git a/Examples/MAX78002/UART/Makefile b/Examples/MAX78002/UART/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/UART/Makefile +++ b/Examples/MAX78002/UART/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/UART/main.c b/Examples/MAX78002/UART/main.c index 66ac5ccec70..245497edfe2 100644 --- a/Examples/MAX78002/UART/main.c +++ b/Examples/MAX78002/UART/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/USB_CDCACM/.cproject b/Examples/MAX78002/USB/USB_CDCACM/.cproject similarity index 100% rename from Examples/MAX78002/USB_CDCACM/.cproject rename to Examples/MAX78002/USB/USB_CDCACM/.cproject diff --git a/Examples/MAX32690/USB_CDCACM/.project b/Examples/MAX78002/USB/USB_CDCACM/.project similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.project rename to Examples/MAX78002/USB/USB_CDCACM/.project diff --git a/Examples/MAX32690/RF_Test/.settings/language.settings.xml b/Examples/MAX78002/USB/USB_CDCACM/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/RF_Test/.settings/language.settings.xml rename to Examples/MAX78002/USB/USB_CDCACM/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_otas/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX78002/USB/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX78002/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX78002/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX78002/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX78002/USB/USB_CDCACM/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX78002/USB_CDCACM/.vscode/README.md b/Examples/MAX78002/USB/USB_CDCACM/.vscode/README.md similarity index 100% rename from Examples/MAX78002/USB_CDCACM/.vscode/README.md rename to Examples/MAX78002/USB/USB_CDCACM/.vscode/README.md diff --git a/Examples/MAX32690/BLE_periph/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB/USB_CDCACM/.vscode/c_cpp_properties.json old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32690/BLE_periph/.vscode/c_cpp_properties.json rename to Examples/MAX78002/USB/USB_CDCACM/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32655/BLE5_ctr/.vscode/flash.gdb b/Examples/MAX78002/USB/USB_CDCACM/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32655/BLE5_ctr/.vscode/flash.gdb rename to Examples/MAX78002/USB/USB_CDCACM/.vscode/flash.gdb diff --git a/Examples/MAX78002/USB_CDCACM/.vscode/launch.json b/Examples/MAX78002/USB/USB_CDCACM/.vscode/launch.json similarity index 100% rename from Examples/MAX78002/USB_CDCACM/.vscode/launch.json rename to Examples/MAX78002/USB/USB_CDCACM/.vscode/launch.json diff --git a/Examples/MAX78002/USB_CDCACM/.vscode/settings.json b/Examples/MAX78002/USB/USB_CDCACM/.vscode/settings.json similarity index 100% rename from Examples/MAX78002/USB_CDCACM/.vscode/settings.json rename to Examples/MAX78002/USB/USB_CDCACM/.vscode/settings.json diff --git a/Examples/MAX78002/USB_CDCACM/.vscode/tasks.json b/Examples/MAX78002/USB/USB_CDCACM/.vscode/tasks.json similarity index 100% rename from Examples/MAX78002/USB_CDCACM/.vscode/tasks.json rename to Examples/MAX78002/USB/USB_CDCACM/.vscode/tasks.json diff --git a/Examples/MAX78002/USB/USB_CDCACM/Makefile b/Examples/MAX78002/USB/USB_CDCACM/Makefile new file mode 100644 index 00000000000..8a9ad64a8dc --- /dev/null +++ b/Examples/MAX78002/USB/USB_CDCACM/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX78002 +TARGET_UC := MAX78002 +TARGET_LC := max78002 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -O2 + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX78002/USB_CDCACM/README.md b/Examples/MAX78002/USB/USB_CDCACM/README.md similarity index 100% rename from Examples/MAX78002/USB_CDCACM/README.md rename to Examples/MAX78002/USB/USB_CDCACM/README.md diff --git a/Examples/MAX78002/USB_CDCACM/USB_CDCACM.launch b/Examples/MAX78002/USB/USB_CDCACM/USB_CDCACM.launch similarity index 100% rename from Examples/MAX78002/USB_CDCACM/USB_CDCACM.launch rename to Examples/MAX78002/USB/USB_CDCACM/USB_CDCACM.launch diff --git a/Examples/MAX78002/USB/USB_CDCACM/descriptors.h b/Examples/MAX78002/USB/USB_CDCACM/descriptors.h new file mode 100644 index 00000000000..0a906b7f20d --- /dev/null +++ b/Examples/MAX78002/USB/USB_CDCACM/descriptors.h @@ -0,0 +1,359 @@ +/** + * @file descriptors.h + * @brief descriptors listed here + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/* Define to prevent redundant inclusion */ +#ifndef EXAMPLES_MAX78002_USB_USB_CDCACM_DESCRIPTORS_H_ +#define EXAMPLES_MAX78002_USB_USB_CDCACM_DESCRIPTORS_H_ + +/* **** Includes **** */ +#include +#include "usb.h" +#include "hid_kbd.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* **** Definitions **** */ + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x02, /* bDeviceClass = comm class (2) */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x02, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + /* Interface #2 CDC Data*/ + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +config_descriptor = { + { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0043, /* wTotalLength(L/H) */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (self-powered, remote wakeup) */ + 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDCACM Data */ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +config_descriptor_hs = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0043, /* wTotalLength(L/H) */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0200, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, + ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { + 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', + 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +#ifdef __cplusplus +} +#endif + +#endif // EXAMPLES_MAX78002_USB_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB/USB_CDCACM/main.c b/Examples/MAX78002/USB/USB_CDCACM/main.c new file mode 100644 index 00000000000..f6d062dc8d1 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CDCACM/main.c @@ -0,0 +1,427 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file + * @brief USB CDC-ACM example + * @details This project creates a virtual COM port, which loops back data sent to it. + * Load the project, connect a cable from the PC to the USB connector + * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. + * A driver for the COM port, if needed, is located in the Driver/ subdirectory. + * + */ + +/* **** Includes **** */ +#include +#include +#include "mxc_errors.h" +#include "mcr_regs.h" +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "descriptors.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* **** Function Prototypes **** */ +static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int event_callback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int usb_read_callback(void); +static void echo_usb(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/* **** File Scope Variables **** */ + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 2, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 3, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 4, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfig_callback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, event_callback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, event_callback, NULL); + acm_register_callback(ACM_CB_READ_READY, usb_read_callback); + + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echo_usb(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/* ************************************************************************** */ +static void echo_usb(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + /* Read the data from USB */ + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + /* Echo it back */ + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + //return MXC_SYS_USBHS_Shutdown(); + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ +static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + acm_cfg.out_ep = config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_4.wMaxPacketSize; + acm_cfg.in_ep = config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_5.wMaxPacketSize; + acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; + acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + return acm_configure(&acm_cfg); /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + return acm_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/* ************************************************************************** */ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/* ************************************************************************** */ +static void usbAppSleep(void) +{ + suspended = 1; +} + +/* ************************************************************************** */ +static void usbAppWakeup(void) +{ + suspended = 0; +} + +/* ************************************************************************** */ +static int event_callback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + acm_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, event_callback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, event_callback, NULL); /// + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, event_callback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: /// + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +static int usb_read_callback(void) +{ + usb_read_complete = 1; + return 0; +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/* ************************************************************************** */ + +void SysTick_Handler(void) +{ + MXC_DelayHandler(); +} diff --git a/Examples/MAX78002/USB_CDCACM/project.mk b/Examples/MAX78002/USB/USB_CDCACM/project.mk similarity index 100% rename from Examples/MAX78002/USB_CDCACM/project.mk rename to Examples/MAX78002/USB/USB_CDCACM/project.mk diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.cproject b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.cproject similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.cproject rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.cproject diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.project b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.project similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.project rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.project diff --git a/Examples/MAX32690/USB_CDCACM/.settings/language.settings.xml b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.settings/language.settings.xml rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml diff --git a/Examples/MAX32690/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/BLE_periph/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/README.md b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/README.md rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/README.md diff --git a/Examples/MAX32690/Bootloader/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/Bootloader/.vscode/c_cpp_properties.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32655/BLE_FreeRTOS/.vscode/flash.gdb b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32655/BLE_FreeRTOS/.vscode/flash.gdb rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/launch.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/launch.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/launch.json diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/settings.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/settings.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/settings.json diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/.vscode/tasks.json diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/Makefile new file mode 100644 index 00000000000..8a9ad64a8dc --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX78002 +TARGET_UC := MAX78002 +TARGET_LC := max78002 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -O2 + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/README.md b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/README.md similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/README.md rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/README.md diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/USB_CompositeDevice_MSC_CDC.launch diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/descriptors.h new file mode 100644 index 00000000000..f971e1d1ae4 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/descriptors.h @@ -0,0 +1,474 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ +#define EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0xEF, /* bDeviceClass = code specified by interface descriptors */ + 0x02, /* bDeviceSubClass = code specified by interface descriptors */ + 0x01, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x00, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0xEF, /* bDeviceClass = Unspecified */ + 0x02, /* bDeviceSubClass */ + 0x01, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) = 98 bytes */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ /// + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; + /* Interface Association Descriptor */ + uint8_t interface_association_descriptor[8]; + /* Interface #1 CDCACM Device */ + MXC_USB_interface_descriptor_t comm_interface_descriptor; + uint8_t header_functional_descriptor[5]; + uint8_t call_management_descriptor[5]; + uint8_t acm_functional_descriptor[4]; + uint8_t union_functional_descriptor[5]; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 CDC Data*/ + MXC_USB_interface_descriptor_t data_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; +} + +composite_config_descriptor_hs = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0062, /* wTotalLength(L/H) */ + 0x03, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval (N/A) */ + }, + /********** Interface Association Descriptor **********/ + { + 0x08, /* bLength */ + 0x0B, /* bDescriptorType */ + 0x01, /* bFirstInterface */ + 0x02, /* bInterfaceCount */ + 0x02, /* bFunctionClass */ + 0x02, /* bFunctionSubClass */ + 0x01, /* bFunctionProtocol */ + 0x00, /* iFunction */ + }, + /********** Interface #1 : COMM Interface **********/ + { + /* First Interface Descriptor For Comm Class Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x02, /* bInterfaceClass = Communications Interface Class (2) */ + 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ + 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ + 0x04, /* iInterface */ + }, + { + /* Header Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x00, /* bDescriptorSubtype */ + 0x10, 0x01, /* bcdCDC */ + }, + { + /* Call Management Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x01, /* bDescriptorSubtype */ + 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ + 0x01, /* bmDataInterface */ + }, + { + /* Abstract Control Management Functional Descriptor */ + 0x04, /* bFunctionalLength = 4 */ + 0x24, /* bDescriptorType */ + 0x02, /* bDescriptorSubtype */ + 0x02, /* bmCapabilities */ + }, + { + /* Union Functional Descriptor */ + 0x05, /* bFunctionalLength = 5 */ + 0x24, /* bDescriptorType */ + 0x06, /* bDescriptorSubtype */ + 0x00, /* bmMasterInterface */ + 0x01, /* bmSlaveInterface0 */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x84, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0200, /* wMaxPacketSize */ + 0xff, /* bInterval (milliseconds) */ + }, + { + /* Second Interface Descriptor For Data Interface */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType (Interface) */ + 0x02, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints */ + 0x0a, /* bInterfaceClass = Data Interface (10) */ + 0x00, /* bInterfaceSubClass = none (0) */ + 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ + 0x04, /* biInterface = No Text String (0) */ + }, + { + /* OUT Endpoint 1 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x05, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #3) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { + 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', + 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/main.c new file mode 100644 index 00000000000..542e7e49521 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/main.c @@ -0,0 +1,467 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. +*/ + +#include +#include +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "cdc_acm.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" +#include "mcr_regs.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* **** Function Prototypes **** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static int usbReadCallback(void); +int usbStartupCallback(); +int usbShutdownCallback(); +static void echoUSB(void); + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* This EP assignment must match the Configuration Descriptor */ +static acm_cfg_t acm_cfg = { + 2, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 3, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ + 4, /* EP Notify */ + MXC_USBHS_MAX_PACKET, /* Notify max packet size */ +}; + +static volatile int usb_read_complete; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, + mscmem_Size, mscmem_Read, mscmem_Write }; + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, + 0); + } + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { + printf("acm_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + acm_register_callback(ACM_CB_READ_READY, usbReadCallback); + usb_read_complete = 0; + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + echoUSB(); + + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete...\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static void echoUSB(void) +{ + int chars; + uint8_t buffer[BUFFER_SIZE]; + + if ((chars = acm_canread()) > 0) { + if (chars > BUFFER_SIZE) { + chars = BUFFER_SIZE; + } + + // Read the data from USB + if (acm_read(buffer, chars) != chars) { + printf("acm_read() failed\n"); + return; + } + + // Echo it back + if (acm_present()) { + if (acm_write(buffer, chars) != chars) { + printf("acm_write() failed\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// + msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = + composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & + 0x7; + msc_cfg.out_maxpacket = + composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & + 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; + acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; + acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; + acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; + acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + 0x7; + acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; + + msc_configure(&msc_cfg); + return acm_configure(&acm_cfg); + /* Configure the device class */ + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return acm_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* Place low-power code here if application needed */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* Place low-power wakeup code here if application needed */ + suspended = 0; +} + +/* ************************************************************************** */ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + usbAppSleep(); + break; + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + acm_deconfigure(); + configured = 0; + suspended = 0; + break; + case MAXUSB_EVENT_BRSTDN: /// + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, + 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, + 0); + } + break; + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +static int usbReadCallback(void) +{ + usb_read_complete = 1; + return 0; +} diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/mscmem.c new file mode 100644 index 00000000000..5674fda40e6 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/mscmem.c @@ -0,0 +1,342 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +//#include "Ext_Flash.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 0 +#define RAM_DISK 1 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/mscmem.h new file mode 100644 index 00000000000..d89b13f8d47 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/mscmem.h @@ -0,0 +1,115 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ +#define EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ + +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/project.mk b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/project.mk similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_CDC/project.mk rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_CDC/project.mk diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.cproject b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.cproject similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/.cproject rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.cproject diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.project b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.project similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.project rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.project diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml diff --git a/Examples/MAX32690/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/Bootloader/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/README.md b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/README.md rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/README.md diff --git a/Examples/MAX32690/RF_Test/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32690/RF_Test/.vscode/c_cpp_properties.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32655/BLE_datc/.vscode/flash.gdb b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32655/BLE_datc/.vscode/flash.gdb rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/launch.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/launch.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/launch.json diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/settings.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/settings.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/settings.json diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/tasks.json b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/tasks.json rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/.vscode/tasks.json diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/Makefile new file mode 100644 index 00000000000..8a9ad64a8dc --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX78002 +TARGET_UC := MAX78002 +TARGET_LC := max78002 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -O2 + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/README.md b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/README.md similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/README.md rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/README.md diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/USB_CompositeDevice_MSC_HID.launch diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/descriptors.h new file mode 100644 index 00000000000..0c426357866 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/descriptors.h @@ -0,0 +1,246 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ +#define EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, + /* bcdUSB USB spec rev (BCD) */ /// + 0x00, /* bDeviceClass = code specified by interface descriptors */ + 0x00, /* bDeviceSubClass = code specified by interface descriptors */ + 0x00, /* bDeviceProtocol = code specified by interface descriptors */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, + /* idProduct */ /// + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) +composite_device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x01, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #1 HID Keyboard */ + MXC_USB_interface_descriptor_t hid_interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; + /* Interface #2 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} + +composite_config_descriptor = { + { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0039, /* wTotalLength(L/H) = 57 bytes */ + 0x02, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x02, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + /********** Interface #0 : HID Keyboard **********/ + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x04, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + }, + /********** Interface #1 : Mass Storage Device **********/ + { + /* Second Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x01, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for IN one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x05, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + }, +}; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x34, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { + 0x24, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', + 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t msc_func_desc[] = { + 0x3A, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', + 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, + 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, +}; + +#endif // EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/main.c new file mode 100644 index 00000000000..775fa0583d0 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/main.c @@ -0,0 +1,426 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB composite device with Mass Storage driver class and HID driver class. +*/ + +#include +#include +#include "led.h" +#include "pb.h" +#include "mcr_regs.h" +#include "mxc_delay.h" +#include "mxc_sys.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" + +/* **** Definitions **** */ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/* **** Global Data **** */ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/* This EP assignment must match the Configuration Descriptor */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* **** Function Prototypes **** */ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +int usbStartupCallback(); +int usbShutdownCallback(); + +/** + * User-supplied function to delay usec micro-seconds + * + * @param[in] usec The usec time to delay. + */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/* ************************************************************************** */ + +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/* ************************************************************************** */ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING( + TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); + enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + + while (1) {} + } + + if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, + &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("PB_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW2 to send character.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/* ************************************************************************** */ + +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/* ************************************************************************** */ + +static void usbAppSleep(void) +{ + /* Place low-power code here if application needed */ + suspended = 1; +} + +/* ************************************************************************** */ + +static void usbAppWakeup(void) +{ + /* Place low-power wakeup code here if application needed */ + suspended = 0; +} + +/* ************************************************************************** */ + +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { + // on++; + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + + msc_configure(&msc_cfg); + return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + msc_deconfigure(); + return hidkbd_deconfigure(); + } + + return -1; +} + +/* ************************************************************************** */ + +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/* ************************************************************************** */ + +void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (PB_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remote_wake_en) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/mscmem.c new file mode 100644 index 00000000000..c6e36aa8cb8 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/mscmem.c @@ -0,0 +1,341 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +//#include "mx25.h" +//#include "spixf.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 0 +#define RAM_DISK 1 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ + +#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ +#define MX25_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ + +#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ + +#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[MX25_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); + /* Write the new */ + MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(MX25_BAUD); + MX25_Init(); + MX25_Reset(); + + if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { + MX25_Quad(1); + } else { + MX25_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the MX25 contains. */ + return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to MX25 sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from MX25 */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to MX25 sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from MX25 */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the MX25 if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/mscmem.h new file mode 100644 index 00000000000..fc8d8cb0637 --- /dev/null +++ b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/mscmem.h @@ -0,0 +1,115 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + */ + +#ifndef EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ +#define EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ + +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX78002_USB_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/project.mk b/Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/project.mk similarity index 100% rename from Examples/MAX78002/USB_CompositeDevice_MSC_HID/project.mk rename to Examples/MAX78002/USB/USB_CompositeDevice_MSC_HID/project.mk diff --git a/Examples/MAX78002/USB_HIDKeyboard/.cproject b/Examples/MAX78002/USB/USB_HIDKeyboard/.cproject similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/.cproject rename to Examples/MAX78002/USB/USB_HIDKeyboard/.cproject diff --git a/Examples/MAX32690/USB_HIDKeyboard/.project b/Examples/MAX78002/USB/USB_HIDKeyboard/.project similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.project rename to Examples/MAX78002/USB/USB_HIDKeyboard/.project diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml b/Examples/MAX78002/USB/USB_HIDKeyboard/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml rename to Examples/MAX78002/USB/USB_HIDKeyboard/.settings/language.settings.xml diff --git a/Examples/MAX32690/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/RF_Test/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX78002/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX78002/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX78002/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX78002/USB/USB_HIDKeyboard/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX78002/USB_HIDKeyboard/.vscode/README.md b/Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/README.md similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/.vscode/README.md rename to Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/README.md diff --git a/Examples/MAX32690/USB_CDCACM/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json old mode 100755 new mode 100644 similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.vscode/c_cpp_properties.json rename to Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32655/BLE_dats/.vscode/flash.gdb b/Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/flash.gdb similarity index 100% rename from Examples/MAX32655/BLE_dats/.vscode/flash.gdb rename to Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/flash.gdb diff --git a/Examples/MAX78002/USB_HIDKeyboard/.vscode/launch.json b/Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/launch.json similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/.vscode/launch.json rename to Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/launch.json diff --git a/Examples/MAX78002/USB_HIDKeyboard/.vscode/settings.json b/Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/settings.json similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/.vscode/settings.json rename to Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/settings.json diff --git a/Examples/MAX78002/USB_HIDKeyboard/.vscode/tasks.json b/Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/tasks.json similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/.vscode/tasks.json rename to Examples/MAX78002/USB/USB_HIDKeyboard/.vscode/tasks.json diff --git a/Examples/MAX78002/USB/USB_HIDKeyboard/Makefile b/Examples/MAX78002/USB/USB_HIDKeyboard/Makefile new file mode 100644 index 00000000000..8a9ad64a8dc --- /dev/null +++ b/Examples/MAX78002/USB/USB_HIDKeyboard/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX78002 +TARGET_UC := MAX78002 +TARGET_LC := max78002 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -O2 + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX78002/USB_HIDKeyboard/README.md b/Examples/MAX78002/USB/USB_HIDKeyboard/README.md similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/README.md rename to Examples/MAX78002/USB/USB_HIDKeyboard/README.md diff --git a/Examples/MAX78002/USB_HIDKeyboard/USB_HIDKeyboard.launch b/Examples/MAX78002/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/USB_HIDKeyboard.launch rename to Examples/MAX78002/USB/USB_HIDKeyboard/USB_HIDKeyboard.launch diff --git a/Examples/MAX78002/USB/USB_HIDKeyboard/descriptors.h b/Examples/MAX78002/USB/USB_HIDKeyboard/descriptors.h new file mode 100644 index 00000000000..6bcb4dd668c --- /dev/null +++ b/Examples/MAX78002/USB/USB_HIDKeyboard/descriptors.h @@ -0,0 +1,173 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX78002_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ +#define EXAMPLES_MAX78002_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x003C, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber Descriptor ID */ + 0x01 /* bNumConfigurations */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + MXC_USB_interface_descriptor_t interface_descriptor; + hid_descriptor_t hid_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor; +} config_descriptor = { { + 0x09, /* bLength */ + 0x02, /* bDescriptorType = Config */ + 0x0022, /* wTotalLength(L/H) = 34 bytes */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigurationValue */ + 0x00, /* iConfiguration */ + 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor */ + 0x09, /* bLength */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x01, /* bNumEndpoints (one for OUT) */ + 0x03, /* bInterfaceClass = HID */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x00, /* iInterface */ + }, + { + /* HID Descriptor */ + 0x09, /* bFunctionalLength */ + 0x21, /* bDescriptorType = HID */ + 0x0110, /* bcdHID Rev 1.1 */ + 0x00, /* bCountryCode */ + 0x01, /* bNumDescriptors */ + 0x22, /* bDescriptorType = Report */ + 0x002b, /* wDescriptorLength */ + }, + { + /* IN Endpoint 3 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x83, /* bEndpointAddress (EP3-IN) */ + 0x03, /* bmAttributes (interrupt) */ + 0x0040, /* wMaxPacketSize */ + 0x0a /* bInterval (milliseconds) */ + } }; + +__attribute__((aligned(4))) uint8_t report_descriptor[] = { + 0x05, 0x01, /* Usage Page (generic desktop) */ + 0x09, 0x06, /* Usage (keyboard) */ + 0xa1, 0x01, /* Collection */ + 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ + 0x19, 0xe0, /* Usage Minimum = 224 */ + 0x29, 0xe7, /* Usage Maximum = 231 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x01, /* Logical Maximum = 1 */ + 0x75, 0x01, /* Report Size = 1 */ + 0x95, 0x08, /* Report Count = 8 */ + 0x81, 0x02, /* Input(Data,Variable,Absolute) */ + 0x95, 0x01, /* Report Count = 1 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x81, 0x01, /* Input(Constant) */ + 0x19, 0x00, /* Usage Minimum = 0 */ + 0x29, 0x65, /* Usage Maximum = 101 */ + 0x15, 0x00, /* Logical Minimum = 0 */ + 0x25, 0x65, /* Logical Maximum = 101 */ + 0x75, 0x08, /* Report Size = 8 */ + 0x95, 0x01, /* Report Count = 1 */ + 0x81, 0x00, /* Input(Data,Variable,Array) */ + 0xc0 /* End Collection */ +}; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x2c, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, + 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX78002_USB_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB/USB_HIDKeyboard/main.c b/Examples/MAX78002/USB/USB_HIDKeyboard/main.c new file mode 100644 index 00000000000..ece57d0f794 --- /dev/null +++ b/Examples/MAX78002/USB/USB_HIDKeyboard/main.c @@ -0,0 +1,383 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device + * @details The EvKit should enumerate as a HID Keyboard device after loading the project and + * attaching a cable from the PC to the USB connector on the Evaluation Kit. + * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. + * 2. Open a text editor on the PC host and place cursor in edit box. + * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. + * + */ + +#include +#include +#include "mxc_errors.h" +#include "led.h" +#include "mxc_sys.h" +#include "mcr_regs.h" +#include "pb.h" +#include "mxc_delay.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "hid_kbd.h" +#include "descriptors.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +int remoteWake; +volatile int configured; +volatile int suspended; +volatile unsigned int evtFlags; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +static void buttonCallback(void *pb); +void usDelay(unsigned int usec); +int usbStartupCallback(); +int usbShutdownCallback(); + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + evtFlags = 0; + remoteWake = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 0; + usb_opts.delay_us = usDelay; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("MXC_USB_Init() failed\n"); + + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, + report_descriptor) != 0) { + printf("hidkbd_init() failed\n"); + + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Register callback for keyboard events */ + if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { + printf("PB_RegisterCallback() failed\n"); + + while (1) {} + } + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (evtFlags) { + /* Display events */ + if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); + printf("Enumeration complete. Press SW2 to send character.\n"); + } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +/* User-supplied function to delay usec micro-seconds */ +void usDelay(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* Place low-power code here if application needed */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* Place low-power wakeup code here if application needed */ + suspended = 0; +} + +/******************************************************************************/ +static void buttonCallback(void *pb) +{ + static const uint8_t chars[] = "Maxim Integrated\n"; + static int i = 0; + int count = 0; + int button_pressed = 0; + + //determine if interrupt triggered by bounce or a true button press + while (PB_Get(0) && !button_pressed) { + count++; + + if (count > 1000) { + button_pressed = 1; + } + } + + if (button_pressed) { + LED_Toggle(0); + + if (configured) { + if (suspended && remoteWake) { + /* The bus is suspended. Wake up the host */ + suspended = 0; + usbAppWakeup(); + MXC_USB_RemoteWakeup(); + MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); + } else { + if (i >= (sizeof(chars) - 1)) { + i = 0; + } + + hidkbd_keypress(chars[i++]); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); + return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & + USB_EP_NUM_MASK); + } else if (sud->wValue == 0) { + configured = 0; + return hidkbd_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 1; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remoteWake = 0; + } else { + // Unknown callback + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&evtFlags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + hidkbd_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + hidkbd_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} diff --git a/Examples/MAX78002/USB_HIDKeyboard/project.mk b/Examples/MAX78002/USB/USB_HIDKeyboard/project.mk similarity index 100% rename from Examples/MAX78002/USB_HIDKeyboard/project.mk rename to Examples/MAX78002/USB/USB_HIDKeyboard/project.mk diff --git a/Examples/MAX78002/USB_MassStorage/.cproject b/Examples/MAX78002/USB/USB_MassStorage/.cproject similarity index 100% rename from Examples/MAX78002/USB_MassStorage/.cproject rename to Examples/MAX78002/USB/USB_MassStorage/.cproject diff --git a/Examples/MAX32690/USB_MassStorage/.project b/Examples/MAX78002/USB/USB_MassStorage/.project similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.project rename to Examples/MAX78002/USB/USB_MassStorage/.project diff --git a/Examples/MAX32690/USB_HIDKeyboard/.settings/language.settings.xml b/Examples/MAX78002/USB/USB_MassStorage/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/USB_HIDKeyboard/.settings/language.settings.xml rename to Examples/MAX78002/USB/USB_MassStorage/.settings/language.settings.xml diff --git a/Examples/MAX32690/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX78002/USB/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX78002/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX78002/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX78002/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX78002/USB/USB_MassStorage/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX78002/USB_MassStorage/.vscode/README.md b/Examples/MAX78002/USB/USB_MassStorage/.vscode/README.md similarity index 100% rename from Examples/MAX78002/USB_MassStorage/.vscode/README.md rename to Examples/MAX78002/USB/USB_MassStorage/.vscode/README.md diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB/USB_MassStorage/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json rename to Examples/MAX78002/USB/USB_MassStorage/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32655/BLE_fcc/.vscode/flash.gdb b/Examples/MAX78002/USB/USB_MassStorage/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32655/BLE_fcc/.vscode/flash.gdb rename to Examples/MAX78002/USB/USB_MassStorage/.vscode/flash.gdb diff --git a/Examples/MAX78002/USB_MassStorage/.vscode/launch.json b/Examples/MAX78002/USB/USB_MassStorage/.vscode/launch.json similarity index 100% rename from Examples/MAX78002/USB_MassStorage/.vscode/launch.json rename to Examples/MAX78002/USB/USB_MassStorage/.vscode/launch.json diff --git a/Examples/MAX78002/USB_MassStorage/.vscode/settings.json b/Examples/MAX78002/USB/USB_MassStorage/.vscode/settings.json similarity index 100% rename from Examples/MAX78002/USB_MassStorage/.vscode/settings.json rename to Examples/MAX78002/USB/USB_MassStorage/.vscode/settings.json diff --git a/Examples/MAX78002/USB_MassStorage/.vscode/tasks.json b/Examples/MAX78002/USB/USB_MassStorage/.vscode/tasks.json similarity index 100% rename from Examples/MAX78002/USB_MassStorage/.vscode/tasks.json rename to Examples/MAX78002/USB/USB_MassStorage/.vscode/tasks.json diff --git a/Examples/MAX78002/USB/USB_MassStorage/Makefile b/Examples/MAX78002/USB/USB_MassStorage/Makefile new file mode 100644 index 00000000000..8a9ad64a8dc --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX78002 +TARGET_UC := MAX78002 +TARGET_LC := max78002 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -O2 + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX78002/USB_MassStorage/README.md b/Examples/MAX78002/USB/USB_MassStorage/README.md similarity index 100% rename from Examples/MAX78002/USB_MassStorage/README.md rename to Examples/MAX78002/USB/USB_MassStorage/README.md diff --git a/Examples/MAX78002/USB_MassStorage/USB_MassStorage.launch b/Examples/MAX78002/USB/USB_MassStorage/USB_MassStorage.launch similarity index 100% rename from Examples/MAX78002/USB_MassStorage/USB_MassStorage.launch rename to Examples/MAX78002/USB/USB_MassStorage/USB_MassStorage.launch diff --git a/Examples/MAX78002/USB/USB_MassStorage/descriptors.h b/Examples/MAX78002/USB/USB_MassStorage/descriptors.h new file mode 100644 index 00000000000..5d7ccfc64b4 --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage/descriptors.h @@ -0,0 +1,211 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ +#define EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x4402, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } }; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor_hs = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval */ + } }; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x38, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, + 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, + 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) +uint8_t serial_id_desc[] = { 26, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB/USB_MassStorage/main.c b/Examples/MAX78002/USB/USB_MassStorage/main.c new file mode 100644 index 00000000000..0a10c92c8af --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage/main.c @@ -0,0 +1,389 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB Mass Storage Class example + * @details This project creates a mass storage device using either on-board RAM or + * external SPI flash memory. Load the project, connect a cable from the PC + * to the USB connector. A new external drive should appear than can be read + * and written. + */ + +#include +#include +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" +#include "mcr_regs.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/***** File Scope Variables *****/ + +/* Defaults, which will be changed by the configuration code */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + return msc_configure(&msc_cfg); /* Configure the device class */ + + } else if (sud->wValue == 0) { + configured = 0; + return msc_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + /* Place low-power code here if application needed */ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + /* Place low-power wakeup code here if application needed */ + suspended = 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} diff --git a/Examples/MAX78002/USB/USB_MassStorage/mscmem.c b/Examples/MAX78002/USB/USB_MassStorage/mscmem.c new file mode 100644 index 00000000000..5674fda40e6 --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage/mscmem.c @@ -0,0 +1,342 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include +//#include "Ext_Flash.h" + +/***** Definitions *****/ + +#define SPIXF_DISK 0 +#define RAM_DISK 1 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +#define NUM_PAGES 0x100 +static uint8_t mem[NUM_PAGES][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX78002/USB/USB_MassStorage/mscmem.h b/Examples/MAX78002/USB/USB_MassStorage/mscmem.h new file mode 100644 index 00000000000..15c4c0a27f3 --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage/mscmem.h @@ -0,0 +1,116 @@ +/** + * @file + * @brief Memory routines used by the USB Mass Storage Class example. + * See the @ref msc_mem_t structure in msc.h for function details. + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_MSCMEM_H_ +#define EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_MSCMEM_H_ + +/* **** Include Files **** */ +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX78002/USB_MassStorage/project.mk b/Examples/MAX78002/USB/USB_MassStorage/project.mk similarity index 100% rename from Examples/MAX78002/USB_MassStorage/project.mk rename to Examples/MAX78002/USB/USB_MassStorage/project.mk diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.cproject b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.cproject similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/.cproject rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.cproject diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.project b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.project similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/.project rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.project diff --git a/Examples/MAX32690/USB_MassStorage/.settings/language.settings.xml b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.settings/language.settings.xml similarity index 100% rename from Examples/MAX32690/USB_MassStorage/.settings/language.settings.xml rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.settings/language.settings.xml diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.core.prefs b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.core.prefs similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.core.prefs rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.core.prefs diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/README.md b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/README.md similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/README.md rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/README.md diff --git a/Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/c_cpp_properties.json similarity index 100% rename from Examples/MAX32690/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/c_cpp_properties.json diff --git a/Examples/MAX32655/BLE_fit/.vscode/flash.gdb b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/flash.gdb old mode 100644 new mode 100755 similarity index 100% rename from Examples/MAX32655/BLE_fit/.vscode/flash.gdb rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/flash.gdb diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/launch.json b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/launch.json similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/launch.json rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/launch.json diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/settings.json b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/settings.json similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/settings.json rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/settings.json diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/tasks.json b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/tasks.json similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/tasks.json rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/.vscode/tasks.json diff --git a/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/Makefile b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/Makefile new file mode 100644 index 00000000000..8a9ad64a8dc --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/Makefile @@ -0,0 +1,413 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +# ** Readme! ** +# Don't edit this file! This is the core Makefile for a MaximSDK +# project. The available configuration options can be overridden +# in "project.mk", on the command-line, or with system environment +# variables. + +# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# for more detailed instructions on how to use this system. + +# The detailed instructions mentioned above are easier to read than +# this file, but the comments found in this file also outline the +# available configuration variables. This file is organized into +# sub-sections, some of which expose config variables. + + +# ******************************************************************************* +# Set the target microcontroller and board to compile for. + +# Every TARGET microcontroller has some Board Support Packages (BSPs) that are +# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP +# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. + +# Configuration Variables: +# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 +# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA + + +ifeq "$(TARGET)" "" +# Default target microcontroller +TARGET := MAX78002 +TARGET_UC := MAX78002 +TARGET_LC := max78002 +else +# "TARGET" has been overridden in the environment or on the command-line. +# We need to calculate an upper and lowercase version of the part number, +# because paths on Linux and MacOS are case-sensitive. +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +endif + +# Default board. +BOARD ?= EvKit_V1 + +# ******************************************************************************* +# Locate the MaximSDK + +# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +# should point to the root directory of the MaximSDK installation. Setting this manually +# is usually only required if you're working on the command-line. + +# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +# and move up from this project's original location. + +# Configuration Variables: +# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK + + +ifneq "$(MAXIM_PATH)" "" +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +# Locate some other useful paths... +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS +endif + +# ******************************************************************************* +# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH +# in case project.mk needs to reference those values. However, we also include +# this as early as possible in the Makefile so that it can append to or override +# the variables below. + + +PROJECTMK ?= $(abspath ./project.mk) +include $(PROJECTMK) +$(info Loaded project.mk) +# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +# ******************************************************************************* +# Final path sanitization and re-calculation. No options here. + +ifeq "$(MAXIM_PATH)" "" +# MAXIM_PATH is still not defined... +DEPTH := ../../../ +MAXIM_PATH := $(abspath $(DEPTH)) +$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) +$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) +else +# Sanitize MAXIM_PATH for backslashes +MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) +endif + +# Final recalculation of LIBS_DIR/CMSIS_ROOT +LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) +CMSIS_ROOT := $(LIBS_DIR)/CMSIS + +# One final UC/LC check in case user set TARGET in project.mk +TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) +TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) + +export TARGET +export TARGET_UC +export TARGET_LC +export CMSIS_ROOT +# TODO: Remove dependency on exports for these variables. + +# ******************************************************************************* +# Set up search paths, and auto-detect all source code on those paths. + +# The following paths are searched by default, where "./" is the project directory. +# ./ +# |- *.h +# |- *.c +# |-include (optional) +# |- *.h +# |-src (optional) +# |- *.c + +# Configuration Variables: +# - VPATH : Tell this Makefile to search additional locations for source (.c) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - IPATH : Tell this Makefile to search additional locations for header (.h) files. +# You should use the "+=" operator with this option. +# Ex: VPATH += your/new/path +# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. +# This is really only useful if you want to add a source file that isn't +# on any VPATH, in which case you can add the full path to the file here. +# You should use the "+=" operator with this option. +# Ex: SRCS += your/specific/source/file.c +# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on +# VPATH and add them to the build. This is enabled by default. Set +# to 0 to disable. If autosearch is disabled, source files must be +# manually added to SRCS. +# Ex: AUTOSEARCH = 0 + + +# Where to find source files for this project. +VPATH += . +VPATH += src +VPATH := $(VPATH) + +# Where to find header files for this project +IPATH += . +IPATH += include +IPATH := $(IPATH) + +AUTOSEARCH ?= 1 +ifeq ($(AUTOSEARCH), 1) +# Auto-detect all C/C++ source files on VPATH +SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) +endif + +# Collapse SRCS before passing them on to the next stage +SRCS := $(SRCS) + +# ******************************************************************************* +# Set the output filename + +# Configuration Variables: +# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject + + +# The default value creates a file named after the target micro. Ex: MAX78000.elf +PROJECT ?= $(TARGET_LC) + +# ******************************************************************************* +# Compiler options + +# Configuration Variables: +# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional +# symbols and sets -Og as the default optimization level. +# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. +# Ex: MXC_OPTIMIZE_CFLAGS = -O2 +# - PROJ_CFLAGS : Add additional compiler flags to the build. +# You should use the "+=" operator with this option. +# Ex: PROJ_CFLAGS += -Wextra +# - MFLOAT_ABI : Set the floating point acceleration level. +# The only options are "hard", "soft", or "softfp". +# Ex: MFLOAT_ABI = hard +# - LINKERFILE : Override the default linkerfile. +# Ex: LINKERFILE = customlinkerfile.ld +# - LINKERPATH : Override the default search location for $(LINKERFILE) +# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC +# If $(LINKERFILE) cannot be found at this path, then the root project +# directory will be used as a fallback. + +# Select 'GCC' or 'IAR' compiler +ifeq "$(COMPILER)" "" +COMPILER := GCC +endif + +# Set default compiler optimization levels +ifeq "$(MAKECMDGOALS)" "release" +# Default optimization level for "release" builds (make release) +MXC_OPTIMIZE_CFLAGS ?= -O2 +DEBUG = 0 +endif + +ifeq ($(DEBUG),1) +# Optimizes for debugging as recommended +# by GNU for code-edit-debug cycles +# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options +MXC_OPTIMIZE_CFLAGS := -Og +endif + +# Default level if not building for release or explicitly for debug +MXC_OPTIMIZE_CFLAGS ?= -O2 + +# Set compiler flags +PROJ_CFLAGS += -Wall # Enable warnings +PROJ_CFLAGS += -DMXC_ASSERT_ENABLE + +# Set hardware floating point acceleration. +# Options are: +# - hard +# - soft +# - softfp (default if MFLOAT_ABI is not set) +MFLOAT_ABI ?= softfp +# MFLOAT_ABI must be exported to other Makefiles +export MFLOAT_ABI + +# This path contains system-level intialization files for the target micro. Add to the build. +VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source + +# ******************************************************************************* +# Secure Boot Tools (SBT) + +# This section integrates the Secure Boot Tools. It's intended for use with +# microcontrollers that have a secure bootloader. + +# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. + +# Configuration variables: +# SBT : Toggle SBT integration. Set to 1 to enable, or 0 +# to disable +# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to +# Tools/SBT in the MaximSDK. The standalone SBT installer will override +# this via an environment variable. +# TARGET_SEC : Specify the part number to be passed into the SBT. This should match +# the secure variant part #. The default value will depend on TARGET. +# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and +# the default selection happens in Tools/SBT/SBT-config. +# However, if there are multiple secure part #s for the target +# microcontroller this variable may need to be changed. + +SBT ?= 0 +ifeq ($(SBT), 1) +MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT +MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) +# ^ Must sanitize path for \ on Windows, since this may come from an environment +# variable. + +export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work + +# SBT-config.mk and SBT-rules.mk are included further down this Makefile. + +endif # SBT + +# ******************************************************************************* +# Default goal selection. This section allows you to override the default goal +# that will run if no targets are specified on the command-line. +# (ie. just running 'make' instead of 'make all') + +# Configuration variables: +# .DEFAULT_GOAL : Set the default goal if no targets were specified on the +# command-line +# ** "override" must be used with this variable. ** +# Ex: "override .DEFAULT_GOAL = mygoal" + +ifeq "$(.DEFAULT_GOAL)" "" +ifeq ($(SBT),1) +override .DEFAULT_GOAL := sla +else +override .DEFAULT_GOAL := all +endif +endif + +# Developer note: 'override' is used above for legacy Makefile compatibility. +# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system +# uses 'override' to come in over the top without breaking old projects. + +# It's also necessary to explicitly set MAKECMDGOALS... +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + +# Enable colors when --sync-output is used. +# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) +ifneq ($(MAKE_TERMOUT),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +ifneq ($(FORCE_COLOR),) +PROJ_CFLAGS += -fdiagnostics-color=always +endif + +# ******************************************************************************* +# Include SBT config. We need to do this here because it needs to know +# the current MAKECMDGOAL. +ifeq ($(SBT),1) +include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk +endif + +# ******************************************************************************* +# Libraries + +# This section offers "toggle switches" to include or exclude the libraries that +# are available in the MaximSDK. Set a configuration variable to 1 to include the +# library in the build, or 0 to exclude. + +# Each library may also have its own library specific configuration variables. See +# Libraries/libs.mk for more details. + +# Configuration variables: +# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) +# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) +# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. +# - LIB_CORDIO : Include the Cordio BLE library +# - LIB_FCL : Include the Free Cryptographic Library (FCL) +# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries +# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library +# - LIB_LITTLEFS : Include the "little file system" (littleFS) library +# - LIB_LWIP : Include the lwIP library +# - LIB_MAXUSB : Include the MAXUSB library +# - LIB_SDHC : Include the SDHC library + +include $(LIBS_DIR)/libs.mk + + +# ******************************************************************************* +# Rules + +# Include the rules for building for this target. All other makefiles should be +# included before this one. +include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk + +# Include the rules that integrate the SBTs. SBTs are a special case that must be +# include after the core gcc rules to extend them. +ifeq ($(SBT), 1) +include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk +endif + + +# Get .DEFAULT_GOAL working. +ifeq "$(MAKECMDGOALS)" "" +MAKECMDGOALS:=$(.DEFAULT_GOAL) +endif + + +all: +# Extend the functionality of the "all" recipe here + arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf + +libclean: + $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph + +clean: +# Extend the functionality of the "clean" recipe here + +# The rule to clean out all the build products. +distclean: clean libclean diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/README.md b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/README.md similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/README.md rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/README.md diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/USB_MassStorage_ThroughPut.launch b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/USB_MassStorage_ThroughPut.launch similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/USB_MassStorage_ThroughPut.launch rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/USB_MassStorage_ThroughPut.launch diff --git a/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/descriptors.h b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/descriptors.h new file mode 100644 index 00000000000..31e5fe84188 --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/descriptors.h @@ -0,0 +1,211 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_THROUGHPUT_DESCRIPTORS_H_ +#define EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_THROUGHPUT_DESCRIPTORS_H_ + +#include +#include "usb.h" +#include "hid_kbd.h" + +MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { + 0x12, /* bLength = 18 */ + 0x01, /* bDescriptorType = Device */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x0B6A, /* idVendor (Maxim Integrated) */ + 0x4402, /* idProduct */ + 0x0100, /* bcdDevice */ + 0x01, /* iManufacturer Descriptor ID */ + 0x02, /* iProduct Descriptor ID */ + 0x03, /* iSerialNumber = (0) No string */ + 0x01 /* bNumConfigurations */ +}; + +/* Device qualifier needed for high-speed operation */ +MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { + 0x0A, /* bLength = 10 */ + 0x06, /* bDescriptorType = Device Qualifier */ + 0x0200, /* bcdUSB USB spec rev (BCD) */ + 0x00, /* bDeviceClass = Unspecified */ + 0x00, /* bDeviceSubClass */ + 0x00, /* bDeviceProtocol */ + 0x40, /* bMaxPacketSize0 is 64 bytes */ + 0x01, /* bNumConfigurations */ + 0x00 /* Reserved, must be 0 */ +}; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00, /* bInterval (N/A) */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0040, /* wMaxPacketSize */ + 0x00 /* bInterval (N/A) */ + } }; + +__attribute__((aligned(4))) struct __attribute__((packed)) { + MXC_USB_configuration_descriptor_t config_descriptor; + /* Interface #0 Mass Storage Device */ + MXC_USB_interface_descriptor_t msc_interface_descriptor; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; + MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; +} config_descriptor_hs = { { + 0x09, /* bLength = 9 */ + 0x02, /* bDescriptorType = Config (2) */ + 0x0020, /* wTotalLength(L/H) */ + 0x01, /* bNumInterfaces */ + 0x01, /* bConfigValue */ + 0x00, /* iConfiguration */ + 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ + 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ + }, + { + /* First Interface Descriptor For MSC Interface */ + 0x09, /* bLength = 9 */ + 0x04, /* bDescriptorType = Interface (4) */ + 0x00, /* bInterfaceNumber */ + 0x00, /* bAlternateSetting */ + 0x02, /* bNumEndpoints (one for INm one for OUT) */ + 0x08, /* bInterfaceClass = Mass Storage (8) */ + 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ + 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ + 0x00, /* iInterface */ + }, + { + /* OUT Endpoint 1 (Descriptor #1) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x01, /* bEndpointAddress (EP1-OUT) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01, /* bInterval */ + }, + { + /* IN Endpoint 2 (Descriptor #2) */ + 0x07, /* bLength */ + 0x05, /* bDescriptorType (Endpoint) */ + 0x82, /* bEndpointAddress (EP2-IN) */ + 0x02, /* bmAttributes (bulk) */ + 0x0200, /* wMaxPacketSize */ + 0x01 /* bInterval */ + } }; + +__attribute__((aligned(4))) uint8_t lang_id_desc[] = { + 0x04, /* bLength */ + 0x03, /* bDescriptorType */ + 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ +}; + +__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { + 0x22, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, + 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, +}; + +__attribute__((aligned(4))) uint8_t prod_id_desc[] = { + 0x38, /* bLength */ + 0x03, /* bDescriptorType */ + 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, + 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, + 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, +}; + +/* Not currently used (see device descriptor), but could be enabled if desired */ +__attribute__((aligned(4))) +uint8_t serial_id_desc[] = { 26, /* bLength */ + 0x03, /* bDescriptorType */ + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, + '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; + +#endif // EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_THROUGHPUT_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/main.c b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/main.c new file mode 100644 index 00000000000..d68dbecf554 --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/main.c @@ -0,0 +1,387 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file main.c + * @brief USB Mass Storage Class example + * @details This project creates a mass storage device using either on-board RAM or + * external SPI flash memory. Load the project, connect a cable from the PC + * to the USB connector. A new external drive should appear than can be read + * and written. + */ + +#include +#include +#include "mxc_sys.h" +#include "mxc_delay.h" +#include "board.h" +#include "led.h" +#include "usb.h" +#include "usb_event.h" +#include "enumerate.h" +#include "msc.h" +#include "descriptors.h" +#include "mscmem.h" +#include "mcr_regs.h" + +/***** Definitions *****/ +#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS +#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) + +#define BUFFER_SIZE 64 + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) + +/***** Global Data *****/ +volatile int configured; +volatile int suspended; +volatile unsigned int event_flags; +int remote_wake_en; + +/***** Function Prototypes *****/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); +static int eventCallback(maxusb_event_t evt, void *data); +static void usbAppSleep(void); +static void usbAppWakeup(void); +int usbStartupCallback(); +int usbShutdownCallback(); + +/***** File Scope Variables *****/ + +/* Defaults, which will be changed by the configuration code */ +static msc_cfg_t msc_cfg = { + 1, /* EP OUT */ + MXC_USBHS_MAX_PACKET, /* OUT max packet size */ + 2, /* EP IN */ + MXC_USBHS_MAX_PACKET, /* IN max packet size */ +}; + +static const msc_idstrings_t ids = { + "MAXIM", /* Vendor string. Maximum of 8 bytes */ + "MSC Example", /* Product string. Maximum of 16 bytes */ + "1.0" /* Version string. Maximum of 4 bytes */ +}; + +/* Functions to control "disk" memory. See msc.h for definitions. */ +static const msc_mem_t mem = { + mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, +}; + +/* User-supplied function to delay usec micro-seconds */ +void delay_us(unsigned int usec) +{ + /* mxc_delay() takes unsigned long, so can't use it directly */ + MXC_Delay(usec); +} + +/******************************************************************************/ +int main(void) +{ + maxusb_cfg_options_t usb_opts; + + printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); + printf("Waiting for VBUS...\n"); + + /* Initialize state */ + configured = 0; + suspended = 0; + event_flags = 0; + remote_wake_en = 0; + + /* Start out in full speed */ + usb_opts.enable_hs = 1; + usb_opts.delay_us = delay_us; /* Function which will be used for delays */ + usb_opts.init_callback = usbStartupCallback; + usb_opts.shutdown_callback = usbShutdownCallback; + + /* Initialize the usb module */ + if (MXC_USB_Init(&usb_opts) != 0) { + printf("usb_init() failed\n"); + while (1) {} + } + + /* Initialize the enumeration module */ + if (enum_init() != 0) { + printf("enum_init() failed\n"); + while (1) {} + } + + /* Register enumeration data */ + enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + + if (usb_opts.enable_hs) { + /* Two additional descriptors needed for high-speed operation */ + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); + } + + enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); + enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); + enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); + enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); + + /* Handle configuration */ + enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); + + /* Handle feature set/clear */ + enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); + enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); + + /* Initialize the class driver */ + if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { + printf("msc_init() failed\n"); + while (1) {} + } + + /* Register callbacks */ + MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); + MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); + + /* Start with USB in low power mode */ + usbAppSleep(); + NVIC_EnableIRQ(USB_IRQn); + + /* Wait for events */ + while (1) { + if (suspended || !configured) { + LED_Off(0); + } else { + LED_On(0); + } + + if (event_flags) { + /* Display events */ + if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); + printf("VBUS Disconnect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); + printf("VBUS Connect\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); + printf("Bus Reset\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); + printf("Bus Reset Done: %s speed\n", + (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); + printf("Suspended\n"); + } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { + MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); + printf("Resume\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { + MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); + printf("Enumeration complete.\n"); + } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { + MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); + printf("Remote Wakeup\n"); + } + } + } +} + +/******************************************************************************/ +static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + /* Confirm the configuration value */ + if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { + configured = 1; + MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); + + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; + } else { + msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; + msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; + msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; + msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; + } + + return msc_configure(&msc_cfg); /* Configure the device class */ + + } else if (sud->wValue == 0) { + configured = 0; + return msc_deconfigure(); + } + + return -1; +} + +/******************************************************************************/ +int usbStartupCallback() +{ + MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); + MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; + + return E_NO_ERROR; +} + +/******************************************************************************/ +int usbShutdownCallback() +{ + MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); + + return E_NO_ERROR; +} + +/******************************************************************************/ +static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 1; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) +{ + if (sud->wValue == FEAT_REMOTE_WAKE) { + remote_wake_en = 0; + } else { + /* Unknown callback */ + return -1; + } + + return 0; +} + +/******************************************************************************/ +static void usbAppSleep(void) +{ + suspended = 1; +} + +/******************************************************************************/ +static void usbAppWakeup(void) +{ + suspended = 0; +} + +/******************************************************************************/ +static int eventCallback(maxusb_event_t evt, void *data) +{ + /* Set event flag */ + MXC_SETBIT(&event_flags, evt); + + switch (evt) { + case MAXUSB_EVENT_NOVBUS: + MXC_USB_EventDisable(MAXUSB_EVENT_BRST); + MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); + MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); + MXC_USB_Disconnect(); + configured = 0; + enum_clearconfig(); + msc_deconfigure(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_VBUS: + MXC_USB_EventClear(MAXUSB_EVENT_BRST); + MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); + MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); + MXC_USB_EventClear(MAXUSB_EVENT_SUSP); + MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); + MXC_USB_Connect(); + usbAppSleep(); + break; + + case MAXUSB_EVENT_BRST: + usbAppWakeup(); + enum_clearconfig(); + msc_deconfigure(); + configured = 0; + suspended = 0; + break; + + case MAXUSB_EVENT_BRSTDN: + if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); + } else { + enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); + enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); + } + break; + + case MAXUSB_EVENT_SUSP: + usbAppSleep(); + break; + + case MAXUSB_EVENT_DPACT: + usbAppWakeup(); + break; + + default: + break; + } + + return 0; +} + +/******************************************************************************/ +void USB_IRQHandler(void) +{ + MXC_USB_EventHandler(); +} diff --git a/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/mscmem.c b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/mscmem.c new file mode 100644 index 00000000000..ebb6db56f9f --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/mscmem.c @@ -0,0 +1,343 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file mscmem.h + * @brief Memory routines used by the USB Mass Storage Class example. + * See the msc_mem_t structure in msc.h for function details. + * @details Functions are provided for using the internal RAM of the + * device or the external SPI flash memory. Use the SPIXF_DISK + * and RAM_DISK defines to select the desired memory at compile + * time. + */ + +#include "mscmem.h" +#include +#include + +/***** Definitions *****/ +#define SPIXF_DISK 0 +#define RAM_DISK 1 + +#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ +#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ + +/***** Global Data *****/ + +/***** File Scope Variables *****/ + +static int initialized = 0; +static int running = 0; + +#if SPIXF_DISK + +#undef EXT_FLASH_BAUD +#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ + +#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ +#define EXT_FLASH_SECTOR_SIZE_SHIFT \ + 12 /* The shift value used to convert between addresses and block numbers */ +#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ + +#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ + +#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) +#define INVALID_SECTOR \ + EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ + +/***** File Scope Variables *****/ +static uint32_t sectorNum = INVALID_SECTOR; +static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; +static int sectorDirty = 0; + +/***** Function Prototypes *****/ +static uint32_t getSectorNum(uint32_t lba); +static uint32_t getSectorAddr(uint32_t lba); +static uint32_t getSector(uint32_t num); + +/******************************************************************************/ +static uint32_t getSectorNum(uint32_t lba) +{ + /* Absolute_address = lba * LBA_SIZE */ + /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ + /* Sector_num = lba * 512 / 4096 */ + return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); +} + +/******************************************************************************/ +static uint32_t getSectorAddr(uint32_t lba) +{ + /* eight 512 byte blocks in each sector */ + return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; +} + +/******************************************************************************/ +static uint32_t getSector(uint32_t num) +{ + /* New sector requested? */ + if (sectorNum != num) { + /* Is the current sector real? */ + if (sectorNum != INVALID_SECTOR) { + /* Was it written to after it was read from memory? */ + if (sectorDirty) { + /* Erase the old data. */ + Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); + /* Write the new */ + Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, + EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); + /* Mark data as clean */ + sectorDirty = 0; + } + } + + /* Requesting a new valid sector? */ + if (num != INVALID_SECTOR) { + Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, + MXC_SPIXF_WIDTH); + sectorDirty = 0; + sectorNum = num; + } + } + + return 0; +} + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); + Ext_Flash_Init(); + Ext_Flash_Reset(); + + if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { + Ext_Flash_Quad(1); + } else { + Ext_Flash_Quad(0); + } + + initialized = 1; + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + /* Get number of 512 byte chunks the external flash contains. */ + return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(buffer, sector + addr, LBA_SIZE); + + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + uint32_t addr; + + /* Convert to external flash sector number. */ + uint32_t sNum = getSectorNum(lba); + + if (getSector(sNum)) { + /* Failed to write/read from external flash */ + return 1; + } + + /* Get the offset into the current sector */ + addr = getSectorAddr(lba); + + memcpy(sector + addr, buffer, LBA_SIZE); + sectorDirty = 1; + + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Turn on the external flash if it is not already. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the initialization succeeded. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* TODO - could shut down XIPF interface here. */ + + /* Flush the currently cached sector if necessary. */ + if (getSector(INVALID_SECTOR)) { + return 1; + } + + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#elif RAM_DISK + +/* Dummy 1GB RAM */ +#define NUM_PAGES 0x200000 +static uint8_t mem[0x100][LBA_SIZE]; + +/******************************************************************************/ +int mscmem_Init() +{ + if (!initialized) { + initialized = 1; +#if (ERASE_MEMORY_ON_INIT) + memset(mem, 0, sizeof(mem)); +#endif + } + + return 0; +} + +/******************************************************************************/ +uint32_t mscmem_Size(void) +{ + return NUM_PAGES; +} + +/******************************************************************************/ +int mscmem_Read(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + lba &= 0xFF; + memcpy(buffer, mem[lba], LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Write(uint32_t lba, uint8_t *buffer) +{ + if (lba >= NUM_PAGES) { + return 1; + } + + lba &= 0xFF; + memcpy(mem[lba], buffer, LBA_SIZE); + return 0; +} + +/******************************************************************************/ +int mscmem_Start() +{ + /* Not much to do for this implementation. The RAM is always ready. */ + if (!initialized) { + mscmem_Init(); + } + + /* Check if the RAM has been initialized. If it has, start running. */ + if (initialized) { + running = 1; + } + + /* Start should return fail (non-zero) if the memory cannot be initialized. */ + return !initialized; +} + +/******************************************************************************/ +int mscmem_Stop() +{ + /* Nothing to do for this implementation. All data is written as it is */ + /* received so there are no pending writes that need to be flushed. */ + running = 0; + return 0; +} + +/******************************************************************************/ +int mscmem_Ready() +{ + return running; +} + +#else +#error "You must assign either RAM_DISK or SPIXF_DISK to 1." +#endif diff --git a/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/mscmem.h b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/mscmem.h new file mode 100644 index 00000000000..24a279cca62 --- /dev/null +++ b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/mscmem.h @@ -0,0 +1,116 @@ +/** + * @file + * @brief Memory routines used by the USB Mass Storage Class example. + * See the @ref msc_mem_t structure in msc.h for function details. + */ + +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_THROUGHPUT_MSCMEM_H_ +#define EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_THROUGHPUT_MSCMEM_H_ + +/* **** Include Files **** */ +#include + +/* **** Definitions **** */ +#define ERASE_MEMORY_ON_INIT \ + 1 /* Configuration option to clear the memory (to 0s) on initialization. */ +/* Use 1 to clear or 0 to leave untouched. */ +/** + * @brief Perform any initialization necessary to prepare the memory for reading/writing data. + * @returns 0 if initialization is successful, non-zero if an error occurred. + */ +int mscmem_Init(void); + +/** + * @brief Activates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Start(void); + +/** + * @brief Deactivates the memory. + * @returns 0 if activation is successful, non-zero if an error occurred. + */ +int mscmem_Stop(void); + +/** + * @brief Reports the total size of the mass-storage memory. + * @returns The number of 512 byte blocks contained in the memory. + */ +uint32_t mscmem_Size(void); + +/** + * @brief Reads 512 bytes of data from the memory. + * @param lba The index of the 512 byte block to read. + * @param buffer A byte array of at least 512 bytes to hold the values read. + * @returns 0 if reading is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Read(uint32_t lba, uint8_t *buffer); + +/** + * @brief Writes 512 bytes of data to the memory. + * @param lba The index of the 512 byte block to write. + * @param buffer A byte array of at least 512 bytes holding the values to write. + * @returns 0 if writing is successful, non-zero if an error occurred. + * @returns + */ +int mscmem_Write(uint32_t lba, uint8_t *buffer); + +/** + * @brief Checks if the memory is ready to be read/written. + * @returns non-zero if the memory is ready, 0 otherwise. + */ +int mscmem_Ready(void); + +#endif // EXAMPLES_MAX78002_USB_USB_MASSSTORAGE_THROUGHPUT_MSCMEM_H_ diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/project.mk b/Examples/MAX78002/USB/USB_MassStorage_ThroughPut/project.mk similarity index 100% rename from Examples/MAX78002/USB_MassStorage_ThroughPut/project.mk rename to Examples/MAX78002/USB/USB_MassStorage_ThroughPut/project.mk diff --git a/Examples/MAX78002/USB_CDCACM/.project b/Examples/MAX78002/USB_CDCACM/.project deleted file mode 100644 index 529bc8894de..00000000000 --- a/Examples/MAX78002/USB_CDCACM/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - USB_CDCACM - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX78002/USB_CDCACM/.settings/language.settings.xml b/Examples/MAX78002/USB_CDCACM/.settings/language.settings.xml deleted file mode 100644 index d32717b6f37..00000000000 --- a/Examples/MAX78002/USB_CDCACM/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Examples/MAX78002/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX78002/USB_CDCACM/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX78002/USB_CDCACM/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB_CDCACM/.vscode/c_cpp_properties.json deleted file mode 100644 index dfbed47b581..00000000000 --- a/Examples/MAX78002/USB_CDCACM/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX78002/USB_CDCACM/.vscode/flash.gdb b/Examples/MAX78002/USB_CDCACM/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX78002/USB_CDCACM/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX78002/USB_CDCACM/Makefile b/Examples/MAX78002/USB_CDCACM/Makefile deleted file mode 100644 index 80ac4541473..00000000000 --- a/Examples/MAX78002/USB_CDCACM/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78002 -TARGET_UC := MAX78002 -TARGET_LC := max78002 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX78002/USB_CDCACM/descriptors.h b/Examples/MAX78002/USB_CDCACM/descriptors.h deleted file mode 100644 index f4030c964d4..00000000000 --- a/Examples/MAX78002/USB_CDCACM/descriptors.h +++ /dev/null @@ -1,341 +0,0 @@ -/** - * @file descriptors.h - * @brief descriptors listed here - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/* Define to prevent redundant inclusion */ -#ifndef EXAMPLES_MAX78002_USB_CDCACM_DESCRIPTORS_H_ -#define EXAMPLES_MAX78002_USB_CDCACM_DESCRIPTORS_H_ - -/* **** Includes **** */ -#include -#include "usb.h" -#include "hid_kbd.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* **** Definitions **** */ - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = comm class (2) */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x02, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - /* Interface #2 CDC Data*/ - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -config_descriptor = { - { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (self-powered, remote wakeup) */ - 0x01, /* MaxPower is 2ma (units are 2ma/bit) */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDCACM Data */ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -config_descriptor_hs = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0043, /* wTotalLength(L/H) */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0200, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, - ' ', 0, 'C', 0, 'D', 0, 'C', 0, '-', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -#ifdef __cplusplus -} -#endif - -#endif // EXAMPLES_MAX78002_USB_CDCACM_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB_CDCACM/main.c b/Examples/MAX78002/USB_CDCACM/main.c deleted file mode 100644 index f5453f5374d..00000000000 --- a/Examples/MAX78002/USB_CDCACM/main.c +++ /dev/null @@ -1,409 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file - * @brief USB CDC-ACM example - * @details This project creates a virtual COM port, which loops back data sent to it. - * Load the project, connect a cable from the PC to the USB connector - * on the Evaluation Kit, and observe that the PC now recognizes a new COM port. - * A driver for the COM port, if needed, is located in the Driver/ subdirectory. - * - */ - -/* **** Includes **** */ -#include -#include -#include "mxc_errors.h" -#include "mcr_regs.h" -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "descriptors.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* **** Function Prototypes **** */ -static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int event_callback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usb_read_callback(void); -static void echo_usb(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/* **** File Scope Variables **** */ - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 2, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 3, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 4, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB CDC-ACM Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfig_callback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (acm_init(&config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, event_callback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, event_callback, NULL); - acm_register_callback(ACM_CB_READ_READY, usb_read_callback); - - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echo_usb(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/* ************************************************************************** */ -static void echo_usb(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - /* Read the data from USB */ - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - /* Echo it back */ - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - //return MXC_SYS_USBHS_Shutdown(); - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ -static int setconfig_callback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - acm_cfg.out_ep = config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = config_descriptor.endpoint_descriptor_3.bEndpointAddress & 0x7; - acm_cfg.notify_maxpacket = config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - return acm_configure(&acm_cfg); /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/* ************************************************************************** */ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/* ************************************************************************** */ -static void usbAppSleep(void) -{ - suspended = 1; -} - -/* ************************************************************************** */ -static void usbAppWakeup(void) -{ - suspended = 0; -} - -/* ************************************************************************** */ -static int event_callback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - acm_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, event_callback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, event_callback, NULL); /// - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, event_callback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: /// - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -static int usb_read_callback(void) -{ - usb_read_complete = 1; - return 0; -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ - -void SysTick_Handler(void) -{ - MXC_DelayHandler(); -} diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.project b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.project deleted file mode 100644 index 96f3f71ae62..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - USB_CompositeDevice_MSC_CDC - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml deleted file mode 100644 index d32717b6f37..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json deleted file mode 100755 index dfbed47b581..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/Makefile b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/Makefile deleted file mode 100644 index 80ac4541473..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78002 -TARGET_UC := MAX78002 -TARGET_LC := max78002 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/descriptors.h b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/descriptors.h deleted file mode 100644 index 9a901cec2bf..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/descriptors.h +++ /dev/null @@ -1,456 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ -#define EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0xEF, /* bDeviceClass = code specified by interface descriptors */ - 0x02, /* bDeviceSubClass = code specified by interface descriptors */ - 0x01, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x00, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0xEF, /* bDeviceClass = Unspecified */ - 0x02, /* bDeviceSubClass */ - 0x01, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) = 98 bytes */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ /// - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x01, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; - /* Interface Association Descriptor */ - uint8_t interface_association_descriptor[8]; - /* Interface #1 CDCACM Device */ - MXC_USB_interface_descriptor_t comm_interface_descriptor; - uint8_t header_functional_descriptor[5]; - uint8_t call_management_descriptor[5]; - uint8_t acm_functional_descriptor[4]; - uint8_t union_functional_descriptor[5]; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 CDC Data*/ - MXC_USB_interface_descriptor_t data_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_4; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_5; -} - -composite_config_descriptor_hs = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0062, /* wTotalLength(L/H) */ - 0x03, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xE0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval (N/A) */ - }, - /********** Interface Association Descriptor **********/ - { - 0x08, /* bLength */ - 0x0B, /* bDescriptorType */ - 0x01, /* bFirstInterface */ - 0x02, /* bInterfaceCount */ - 0x02, /* bFunctionClass */ - 0x02, /* bFunctionSubClass */ - 0x01, /* bFunctionProtocol */ - 0x00, /* iFunction */ - }, - /********** Interface #1 : COMM Interface **********/ - { - /* First Interface Descriptor For Comm Class Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x02, /* bInterfaceClass = Communications Interface Class (2) */ - 0x02, /* bInterfaceSubClass = Abstract Control Model (2) */ - 0x01, /* bInterfaceProtocol = Common "AT" commands (1), no class specific protocol (0) */ - 0x04, /* iInterface */ - }, - { - /* Header Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x00, /* bDescriptorSubtype */ - 0x10, 0x01, /* bcdCDC */ - }, - { - /* Call Management Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x01, /* bDescriptorSubtype */ - 0x03, /* bmCapabilities = Device handles call management itself (0x01), management over data class (0x02) */ - 0x01, /* bmDataInterface */ - }, - { - /* Abstract Control Management Functional Descriptor */ - 0x04, /* bFunctionalLength = 4 */ - 0x24, /* bDescriptorType */ - 0x02, /* bDescriptorSubtype */ - 0x02, /* bmCapabilities */ - }, - { - /* Union Functional Descriptor */ - 0x05, /* bFunctionalLength = 5 */ - 0x24, /* bDescriptorType */ - 0x06, /* bDescriptorSubtype */ - 0x00, /* bmMasterInterface */ - 0x01, /* bmSlaveInterface0 */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x84, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0200, /* wMaxPacketSize */ - 0xff, /* bInterval (milliseconds) */ - }, - { - /* Second Interface Descriptor For Data Interface */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType (Interface) */ - 0x02, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints */ - 0x0a, /* bInterfaceClass = Data Interface (10) */ - 0x00, /* bInterfaceSubClass = none (0) */ - 0x00, /* bInterfaceProtocol = No class specific protocol (0) */ - 0x04, /* biInterface = No Text String (0) */ - }, - { - /* OUT Endpoint 1 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x05, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #3) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t cdcacm_func_desc[] = { - 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', - 0, ' ', 0, 'C', 0, 'D', 0, 'C', 0, 'A', 0, 'C', 0, 'M', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_CDC_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/main.c b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/main.c deleted file mode 100644 index b8fbf4ade55..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/main.c +++ /dev/null @@ -1,449 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and CDC-SCM driver class. -*/ - -#include -#include -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "cdc_acm.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" -#include "mcr_regs.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* **** Function Prototypes **** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static int usbReadCallback(void); -int usbStartupCallback(); -int usbShutdownCallback(); -static void echoUSB(void); - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* This EP assignment must match the Configuration Descriptor */ -static acm_cfg_t acm_cfg = { - 2, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 3, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ - 4, /* EP Notify */ - MXC_USBHS_MAX_PACKET, /* Notify max packet size */ -}; - -static volatile int usb_read_complete; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, - mscmem_Size, mscmem_Read, mscmem_Write }; - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (CDCACM and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; /* 0:Full Speed 1:High Speed */ - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&composite_device_qualifier_descriptor, - 0); - } - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, cdcacm_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - if (acm_init(&composite_config_descriptor.comm_interface_descriptor) != 0) { - printf("acm_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - acm_register_callback(ACM_CB_READ_READY, usbReadCallback); - usb_read_complete = 0; - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - echoUSB(); - - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { /// - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete...\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static void echoUSB(void) -{ - int chars; - uint8_t buffer[BUFFER_SIZE]; - - if ((chars = acm_canread()) > 0) { - if (chars > BUFFER_SIZE) { - chars = BUFFER_SIZE; - } - - // Read the data from USB - if (acm_read(buffer, chars) != chars) { - printf("acm_read() failed\n"); - return; - } - - // Echo it back - if (acm_present()) { - if (acm_write(buffer, chars) != chars) { - printf("acm_write() failed\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { /// - msc_cfg.out_ep = composite_config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = - composite_config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & - 0x7; - msc_cfg.out_maxpacket = - composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & - 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - acm_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_4.bEndpointAddress & 0x7; - acm_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_4.wMaxPacketSize; - acm_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_5.bEndpointAddress & 0x7; - acm_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_5.wMaxPacketSize; - acm_cfg.notify_ep = composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - 0x7; - acm_cfg.notify_maxpacket = composite_config_descriptor.endpoint_descriptor_3.wMaxPacketSize; - - msc_configure(&msc_cfg); - return acm_configure(&acm_cfg); - /* Configure the device class */ - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return acm_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* Place low-power code here if application needed */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* Place low-power wakeup code here if application needed */ - suspended = 0; -} - -/* ************************************************************************** */ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - usbAppSleep(); - break; - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); /// - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); /// - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - acm_deconfigure(); - configured = 0; - suspended = 0; - break; - case MAXUSB_EVENT_BRSTDN: /// - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor_hs, - 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&composite_config_descriptor_hs, - 0); - } - break; - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -static int usbReadCallback(void) -{ - usb_read_complete = 1; - return 0; -} diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/mscmem.c b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/mscmem.c deleted file mode 100644 index 16232a62411..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/mscmem.c +++ /dev/null @@ -1,324 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -//#include "Ext_Flash.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 0 -#define RAM_DISK 1 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/mscmem.h b/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/mscmem.h deleted file mode 100644 index 5e924a2330a..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_CDC/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ -#define EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ - -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_CDC_MSCMEM_H_ diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.project b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.project deleted file mode 100644 index 843a41dd26b..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - USB_CompositeDevice_MSC_HID - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml deleted file mode 100644 index d32717b6f37..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json deleted file mode 100644 index dfbed47b581..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/Makefile b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/Makefile deleted file mode 100644 index 80ac4541473..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78002 -TARGET_UC := MAX78002 -TARGET_LC := max78002 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/descriptors.h b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/descriptors.h deleted file mode 100644 index 1fd3d432ab2..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/descriptors.h +++ /dev/null @@ -1,228 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ -#define EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) composite_device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, - /* bcdUSB USB spec rev (BCD) */ /// - 0x00, /* bDeviceClass = code specified by interface descriptors */ - 0x00, /* bDeviceSubClass = code specified by interface descriptors */ - 0x00, /* bDeviceProtocol = code specified by interface descriptors */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, - /* idProduct */ /// - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) -composite_device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x01, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #1 HID Keyboard */ - MXC_USB_interface_descriptor_t hid_interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_3; - /* Interface #2 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} - -composite_config_descriptor = { - { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0039, /* wTotalLength(L/H) = 57 bytes */ - 0x02, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x02, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - /********** Interface #0 : HID Keyboard **********/ - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x04, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - }, - /********** Interface #1 : Mass Storage Device **********/ - { - /* Second Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x01, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for IN one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x05, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - }, -}; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x34, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'C', 0, 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, - 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x14, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -__attribute__((aligned(4))) uint8_t hidkbd_func_desc[] = { - 0x24, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', - 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t msc_func_desc[] = { - 0x3A, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '6', 0, '5', 0, ' ', 0, 'M', - 0, 'a', 0, 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, - 'g', 0, 'e', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0, -}; - -#endif // EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_HID_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/main.c b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/main.c deleted file mode 100644 index 56be1dba71f..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/main.c +++ /dev/null @@ -1,408 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB composite device with Mass Storage driver class and HID driver class. -*/ - -#include -#include -#include "led.h" -#include "pb.h" -#include "mcr_regs.h" -#include "mxc_delay.h" -#include "mxc_sys.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" - -/* **** Definitions **** */ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/* **** Global Data **** */ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/* This EP assignment must match the Configuration Descriptor */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* **** Function Prototypes **** */ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -int usbStartupCallback(); -int usbShutdownCallback(); - -/** - * User-supplied function to delay usec micro-seconds - * - * @param[in] usec The usec time to delay. - */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/* ************************************************************************** */ - -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/* ************************************************************************** */ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING( - TARGET) " USB Composite Device (Keyboard and Mass Storage) Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&composite_device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&composite_config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - enum_register_descriptor(ENUM_DESC_STRING, hidkbd_func_desc, 4); - enum_register_descriptor(ENUM_DESC_STRING, msc_func_desc, 5); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&composite_config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - - while (1) {} - } - - if (hidkbd_init(&composite_config_descriptor.hid_interface_descriptor, - &composite_config_descriptor.hid_descriptor, report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/* ************************************************************************** */ - -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/* ************************************************************************** */ - -static void usbAppSleep(void) -{ - /* Place low-power code here if application needed */ - suspended = 1; -} - -/* ************************************************************************** */ - -static void usbAppWakeup(void) -{ - /* Place low-power wakeup code here if application needed */ - suspended = 0; -} - -/* ************************************************************************** */ - -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == composite_config_descriptor.config_descriptor.bConfigurationValue) { - // on++; - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - msc_cfg.out_ep = composite_config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = composite_config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = composite_config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = composite_config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - - msc_configure(&msc_cfg); - return hidkbd_configure(composite_config_descriptor.endpoint_descriptor_3.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - msc_deconfigure(); - return hidkbd_deconfigure(); - } - - return -1; -} - -/* ************************************************************************** */ - -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/* ************************************************************************** */ - -void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remote_wake_en) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&event_flags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/mscmem.c b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/mscmem.c deleted file mode 100644 index 3359ce15efa..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/mscmem.c +++ /dev/null @@ -1,323 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -//#include "mx25.h" -//#include "spixf.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 0 -#define RAM_DISK 1 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#define MX25_BAUD 5000000 /* SPI clock rate to communicate with the MX25 */ - -#define MX25_SECTOR_SIZE 4096 /* Number of bytes in one sector of the MX25 */ -#define MX25_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define MX25_NUM_SECTORS 2048 /* Total number of sectors in the MX25 */ - -#define MXC_SPIXF_WIDTH MXC_SPIXF_WIDTH_1 /*Number of data lines*/ - -#define LBA_PER_SECTOR (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - MX25_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[MX25_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / MX25_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (MX25_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - MX25_Erase(sectorNum << MX25_SECTOR_SIZE_SHIFT, MX25_Erase_4K); - /* Write the new */ - MX25_Program_Page(sectorNum << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - MX25_Read(num << MX25_SECTOR_SIZE_SHIFT, sector, MX25_SECTOR_SIZE, MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(MX25_BAUD); - MX25_Init(); - MX25_Reset(); - - if (MXC_SPIXF_WIDTH == MXC_SPIXF_WIDTH_4) { - MX25_Quad(1); - } else { - MX25_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the MX25 contains. */ - return (MX25_SECTOR_SIZE >> LBA_SIZE_SHIFT) * MX25_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to MX25 sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from MX25 */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the MX25 if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/mscmem.h b/Examples/MAX78002/USB_CompositeDevice_MSC_HID/mscmem.h deleted file mode 100644 index 0fa84f7ec28..00000000000 --- a/Examples/MAX78002/USB_CompositeDevice_MSC_HID/mscmem.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - */ - -#ifndef EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ -#define EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ - -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX78002_USB_COMPOSITEDEVICE_MSC_HID_MSCMEM_H_ diff --git a/Examples/MAX78002/USB_HIDKeyboard/.project b/Examples/MAX78002/USB_HIDKeyboard/.project deleted file mode 100644 index c9a01f43e44..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - USB_HIDKeyboard - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX78002/USB_HIDKeyboard/.settings/language.settings.xml b/Examples/MAX78002/USB_HIDKeyboard/.settings/language.settings.xml deleted file mode 100644 index d32717b6f37..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Examples/MAX78002/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX78002/USB_HIDKeyboard/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB_HIDKeyboard/.vscode/c_cpp_properties.json deleted file mode 100644 index dfbed47b581..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX78002/USB_HIDKeyboard/.vscode/flash.gdb b/Examples/MAX78002/USB_HIDKeyboard/.vscode/flash.gdb deleted file mode 100644 index fc627ae86a3..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX78002/USB_HIDKeyboard/Makefile b/Examples/MAX78002/USB_HIDKeyboard/Makefile deleted file mode 100644 index 80ac4541473..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78002 -TARGET_UC := MAX78002 -TARGET_LC := max78002 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX78002/USB_HIDKeyboard/descriptors.h b/Examples/MAX78002/USB_HIDKeyboard/descriptors.h deleted file mode 100644 index 8cfd15f0f99..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/descriptors.h +++ /dev/null @@ -1,155 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX78002_USB_HIDKEYBOARD_DESCRIPTORS_H_ -#define EXAMPLES_MAX78002_USB_HIDKEYBOARD_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x003C, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber Descriptor ID */ - 0x01 /* bNumConfigurations */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - MXC_USB_interface_descriptor_t interface_descriptor; - hid_descriptor_t hid_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor; -} config_descriptor = { { - 0x09, /* bLength */ - 0x02, /* bDescriptorType = Config */ - 0x0022, /* wTotalLength(L/H) = 34 bytes */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigurationValue */ - 0x00, /* iConfiguration */ - 0xA0, /* bmAttributes (bus-powered, remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor */ - 0x09, /* bLength */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x01, /* bNumEndpoints (one for OUT) */ - 0x03, /* bInterfaceClass = HID */ - 0x00, /* bInterfaceSubClass */ - 0x00, /* bInterfaceProtocol */ - 0x00, /* iInterface */ - }, - { - /* HID Descriptor */ - 0x09, /* bFunctionalLength */ - 0x21, /* bDescriptorType = HID */ - 0x0110, /* bcdHID Rev 1.1 */ - 0x00, /* bCountryCode */ - 0x01, /* bNumDescriptors */ - 0x22, /* bDescriptorType = Report */ - 0x002b, /* wDescriptorLength */ - }, - { - /* IN Endpoint 3 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x83, /* bEndpointAddress (EP3-IN) */ - 0x03, /* bmAttributes (interrupt) */ - 0x0040, /* wMaxPacketSize */ - 0x0a /* bInterval (milliseconds) */ - } }; - -__attribute__((aligned(4))) uint8_t report_descriptor[] = { - 0x05, 0x01, /* Usage Page (generic desktop) */ - 0x09, 0x06, /* Usage (keyboard) */ - 0xa1, 0x01, /* Collection */ - 0x05, 0x07, /* Usage Page 7 (keyboard/keypad) */ - 0x19, 0xe0, /* Usage Minimum = 224 */ - 0x29, 0xe7, /* Usage Maximum = 231 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x01, /* Logical Maximum = 1 */ - 0x75, 0x01, /* Report Size = 1 */ - 0x95, 0x08, /* Report Count = 8 */ - 0x81, 0x02, /* Input(Data,Variable,Absolute) */ - 0x95, 0x01, /* Report Count = 1 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x81, 0x01, /* Input(Constant) */ - 0x19, 0x00, /* Usage Minimum = 0 */ - 0x29, 0x65, /* Usage Maximum = 101 */ - 0x15, 0x00, /* Logical Minimum = 0 */ - 0x25, 0x65, /* Logical Maximum = 101 */ - 0x75, 0x08, /* Report Size = 8 */ - 0x95, 0x01, /* Report Count = 1 */ - 0x81, 0x00, /* Input(Data,Variable,Array) */ - 0xc0 /* End Collection */ -}; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x2c, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, '3', 0, '2', 0, '6', 0, '5', 0, '0', 0, ' ', 0, 'H', 0, 'I', 0, - 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t serial_id_desc[] = { 0x20, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX78002_USB_HIDKEYBOARD_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB_HIDKeyboard/main.c b/Examples/MAX78002/USB_HIDKeyboard/main.c deleted file mode 100644 index 714f74e94c0..00000000000 --- a/Examples/MAX78002/USB_HIDKeyboard/main.c +++ /dev/null @@ -1,365 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief Demonstrates how to configure a the USB device controller as a HID keyboard class device - * @details The EvKit should enumerate as a HID Keyboard device after loading the project and - * attaching a cable from the PC to the USB connector on the Evaluation Kit. - * 1. LED0 (P2.17) will illuminate once enumeration and configuration is complete. - * 2. Open a text editor on the PC host and place cursor in edit box. - * 3. Pressing pushbutton SW1 (P0.16) will cause a message to be typed in on a virtual keyboard one character at a time. - * - */ - -#include -#include -#include "mxc_errors.h" -#include "led.h" -#include "mxc_sys.h" -#include "mcr_regs.h" -#include "pb.h" -#include "mxc_delay.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "hid_kbd.h" -#include "descriptors.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -int remoteWake; -volatile int configured; -volatile int suspended; -volatile unsigned int evtFlags; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -static void buttonCallback(void *pb); -void usDelay(unsigned int usec); -int usbStartupCallback(); -int usbShutdownCallback(); - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB HID Keyboard Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - evtFlags = 0; - remoteWake = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 0; - usb_opts.delay_us = usDelay; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("MXC_USB_Init() failed\n"); - - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (hidkbd_init(&config_descriptor.interface_descriptor, &config_descriptor.hid_descriptor, - report_descriptor) != 0) { - printf("hidkbd_init() failed\n"); - - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Register callback for keyboard events */ - if (PB_RegisterCallback(0, buttonCallback) != E_NO_ERROR) { - printf("PB_RegisterCallback() failed\n"); - - while (1) {} - } - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (evtFlags) { - /* Display events */ - if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&evtFlags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&evtFlags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&evtFlags, EVENT_ENUM_COMP); - printf("Enumeration complete. Press SW2 to send character.\n"); - } else if (MXC_GETBIT(&evtFlags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&evtFlags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -/* User-supplied function to delay usec micro-seconds */ -void usDelay(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* Place low-power code here if application needed */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* Place low-power wakeup code here if application needed */ - suspended = 0; -} - -/******************************************************************************/ -static void buttonCallback(void *pb) -{ - static const uint8_t chars[] = "Maxim Integrated\n"; - static int i = 0; - int count = 0; - int button_pressed = 0; - - //determine if interrupt triggered by bounce or a true button press - while (PB_Get(0) && !button_pressed) { - count++; - - if (count > 1000) { - button_pressed = 1; - } - } - - if (button_pressed) { - LED_Toggle(0); - - if (configured) { - if (suspended && remoteWake) { - /* The bus is suspended. Wake up the host */ - suspended = 0; - usbAppWakeup(); - MXC_USB_RemoteWakeup(); - MXC_SETBIT(&evtFlags, EVENT_REMOTE_WAKE); - } else { - if (i >= (sizeof(chars) - 1)) { - i = 0; - } - - hidkbd_keypress(chars[i++]); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&evtFlags, EVENT_ENUM_COMP); - return hidkbd_configure(config_descriptor.endpoint_descriptor.bEndpointAddress & - USB_EP_NUM_MASK); - } else if (sud->wValue == 0) { - configured = 0; - return hidkbd_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 1; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remoteWake = 0; - } else { - // Unknown callback - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&evtFlags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - hidkbd_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - hidkbd_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} diff --git a/Examples/MAX78002/USB_MassStorage/.project b/Examples/MAX78002/USB_MassStorage/.project deleted file mode 100644 index a1a2d00c2c0..00000000000 --- a/Examples/MAX78002/USB_MassStorage/.project +++ /dev/null @@ -1,26 +0,0 @@ - - - USB_MassStorage - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/Examples/MAX78002/USB_MassStorage/.settings/language.settings.xml b/Examples/MAX78002/USB_MassStorage/.settings/language.settings.xml deleted file mode 100644 index d32717b6f37..00000000000 --- a/Examples/MAX78002/USB_MassStorage/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Examples/MAX78002/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX78002/USB_MassStorage/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX78002/USB_MassStorage/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB_MassStorage/.vscode/c_cpp_properties.json deleted file mode 100755 index dfbed47b581..00000000000 --- a/Examples/MAX78002/USB_MassStorage/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX78002/USB_MassStorage/.vscode/flash.gdb b/Examples/MAX78002/USB_MassStorage/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX78002/USB_MassStorage/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX78002/USB_MassStorage/Makefile b/Examples/MAX78002/USB_MassStorage/Makefile deleted file mode 100644 index 80ac4541473..00000000000 --- a/Examples/MAX78002/USB_MassStorage/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78002 -TARGET_UC := MAX78002 -TARGET_LC := max78002 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX78002/USB_MassStorage/descriptors.h b/Examples/MAX78002/USB_MassStorage/descriptors.h deleted file mode 100644 index 6d11b825d00..00000000000 --- a/Examples/MAX78002/USB_MassStorage/descriptors.h +++ /dev/null @@ -1,193 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX78002_USB_MASSSTORAGE_DESCRIPTORS_H_ -#define EXAMPLES_MAX78002_USB_MASSSTORAGE_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x4402, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } }; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor_hs = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval */ - } }; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x38, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, - 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, - 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) -uint8_t serial_id_desc[] = { 26, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX78002_USB_MASSSTORAGE_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB_MassStorage/main.c b/Examples/MAX78002/USB_MassStorage/main.c deleted file mode 100644 index 414303bc600..00000000000 --- a/Examples/MAX78002/USB_MassStorage/main.c +++ /dev/null @@ -1,371 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB Mass Storage Class example - * @details This project creates a mass storage device using either on-board RAM or - * external SPI flash memory. Load the project, connect a cable from the PC - * to the USB connector. A new external drive should appear than can be read - * and written. - */ - -#include -#include -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" -#include "mcr_regs.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/***** File Scope Variables *****/ - -/* Defaults, which will be changed by the configuration code */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - return msc_configure(&msc_cfg); /* Configure the device class */ - - } else if (sud->wValue == 0) { - configured = 0; - return msc_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - /* Place low-power code here if application needed */ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - /* Place low-power wakeup code here if application needed */ - suspended = 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} diff --git a/Examples/MAX78002/USB_MassStorage/mscmem.c b/Examples/MAX78002/USB_MassStorage/mscmem.c deleted file mode 100644 index 16232a62411..00000000000 --- a/Examples/MAX78002/USB_MassStorage/mscmem.c +++ /dev/null @@ -1,324 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include -//#include "Ext_Flash.h" - -/***** Definitions *****/ - -#define SPIXF_DISK 0 -#define RAM_DISK 1 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -#define NUM_PAGES 0x100 -static uint8_t mem[NUM_PAGES][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX78002/USB_MassStorage/mscmem.h b/Examples/MAX78002/USB_MassStorage/mscmem.h deleted file mode 100644 index 5f24eb077a1..00000000000 --- a/Examples/MAX78002/USB_MassStorage/mscmem.h +++ /dev/null @@ -1,98 +0,0 @@ -/** - * @file - * @brief Memory routines used by the USB Mass Storage Class example. - * See the @ref msc_mem_t structure in msc.h for function details. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX78002_USB_MASSSTORAGE_MSCMEM_H_ -#define EXAMPLES_MAX78002_USB_MASSSTORAGE_MSCMEM_H_ - -/* **** Include Files **** */ -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX78002_USB_MASSSTORAGE_MSCMEM_H_ diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/language.settings.xml b/Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/language.settings.xml deleted file mode 100644 index d32717b6f37..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/language.settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.codan.core.prefs b/Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.codan.core.prefs deleted file mode 100644 index 59c0b37ba75..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/.settings/org.eclipse.cdt.codan.core.prefs +++ /dev/null @@ -1,93 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.cdt.codan.checkers.errnoreturn=Warning -org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} -org.eclipse.cdt.codan.checkers.errreturnvalue=Error -org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} -org.eclipse.cdt.codan.checkers.nocommentinside=-Error -org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} -org.eclipse.cdt.codan.checkers.nolinecomment=-Error -org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} -org.eclipse.cdt.codan.checkers.noreturn=Error -org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error -org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error -org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error -org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")"} -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning -org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} -org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning -org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error -org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning -org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error -org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error -org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error -org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error -org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info -org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning -org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} -org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error -org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error -org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning -org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning -org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning -org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning -org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error -org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error -org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} -org.eclipse.cdt.qt.core.qtproblem=Warning -org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/c_cpp_properties.json b/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/c_cpp_properties.json deleted file mode 100755 index dfbed47b581..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "configurations": [ - { - "name": "Win32", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc.exe", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Linux", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - }, - { - "name": "Mac", - "includePath": [ - "${default}" - ], - "defines": [ - "${default}" - ], - "intelliSenseMode": "gcc-arm", - "compilerPath": "${config:ARM_GCC_path}/bin/arm-none-eabi-gcc", - "browse": { - "path": [ - "${default}" - ] - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/flash.gdb b/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/flash.gdb deleted file mode 100755 index fc627ae86a3..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/.vscode/flash.gdb +++ /dev/null @@ -1,15 +0,0 @@ -define flash_m4 - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor reset halt -end - -define flash_m4_run - set architecture armv7e-m - target remote | openocd -c "gdb_port pipe;log_output flash.log" -s $arg0/scripts -f interface/$arg1 -f target/$arg2 -c "init; reset halt" - load - compare-sections - monitor resume -end \ No newline at end of file diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/Makefile b/Examples/MAX78002/USB_MassStorage_ThroughPut/Makefile deleted file mode 100644 index 80ac4541473..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # -############################################################################### - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78002 -TARGET_UC := MAX78002 -TARGET_LC := max78002 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) -SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) -endif - -# Collapse SRCS before passing them on to the next stage -SRCS := $(SRCS) - -# ******************************************************************************* -# Set the output filename - -# Configuration Variables: -# - PROJECT : Override the default output filename. Ex: PROJECT=MyProject - - -# The default value creates a file named after the target micro. Ex: MAX78000.elf -PROJECT ?= $(TARGET_LC) - -# ******************************************************************************* -# Compiler options - -# Configuration Variables: -# - DEBUG : Set DEBUG=1 to build explicitly for debugging. This adds some additional -# symbols and sets -Og as the default optimization level. -# - MXC_OPTIMIZE_CFLAGS : Override the default compiler optimization level. -# Ex: MXC_OPTIMIZE_CFLAGS = -O2 -# - PROJ_CFLAGS : Add additional compiler flags to the build. -# You should use the "+=" operator with this option. -# Ex: PROJ_CFLAGS += -Wextra -# - MFLOAT_ABI : Set the floating point acceleration level. -# The only options are "hard", "soft", or "softfp". -# Ex: MFLOAT_ABI = hard -# - LINKERFILE : Override the default linkerfile. -# Ex: LINKERFILE = customlinkerfile.ld -# - LINKERPATH : Override the default search location for $(LINKERFILE) -# The default search location is $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/GCC -# If $(LINKERFILE) cannot be found at this path, then the root project -# directory will be used as a fallback. - -# Select 'GCC' or 'IAR' compiler -ifeq "$(COMPILER)" "" -COMPILER := GCC -endif - -# Set default compiler optimization levels -ifeq "$(MAKECMDGOALS)" "release" -# Default optimization level for "release" builds (make release) -MXC_OPTIMIZE_CFLAGS ?= -O2 -DEBUG = 0 -endif - -ifeq ($(DEBUG),1) -# Optimizes for debugging as recommended -# by GNU for code-edit-debug cycles -# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options -MXC_OPTIMIZE_CFLAGS := -Og -endif - -# Default level if not building for release or explicitly for debug -MXC_OPTIMIZE_CFLAGS ?= -O2 - -# Set compiler flags -PROJ_CFLAGS += -Wall # Enable warnings -PROJ_CFLAGS += -DMXC_ASSERT_ENABLE - -# Set hardware floating point acceleration. -# Options are: -# - hard -# - soft -# - softfp (default if MFLOAT_ABI is not set) -MFLOAT_ABI ?= softfp -# MFLOAT_ABI must be exported to other Makefiles -export MFLOAT_ABI - -# This path contains system-level intialization files for the target micro. Add to the build. -VPATH += $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source - -# ******************************************************************************* -# Secure Boot Tools (SBT) - -# This section integrates the Secure Boot Tools. It's intended for use with -# microcontrollers that have a secure bootloader. - -# Enabling SBT integration will add some special rules, such as "make sla", "make scpa", etc. - -# Configuration variables: -# SBT : Toggle SBT integration. Set to 1 to enable, or 0 -# to disable -# MAXIM_SBT_DIR : Specify the location of the SBT tool binaries. This defaults to -# Tools/SBT in the MaximSDK. The standalone SBT installer will override -# this via an environment variable. -# TARGET_SEC : Specify the part number to be passed into the SBT. This should match -# the secure variant part #. The default value will depend on TARGET. -# For example, TARGET=MAX32650 will result in TARGET_SEC=MAX32651, and -# the default selection happens in Tools/SBT/SBT-config. -# However, if there are multiple secure part #s for the target -# microcontroller this variable may need to be changed. - -SBT ?= 0 -ifeq ($(SBT), 1) -MAXIM_SBT_DIR ?= $(MAXIM_PATH)/Tools/SBT -MAXIM_SBT_DIR := $(subst \,/,$(MAXIM_SBT_DIR)) -# ^ Must sanitize path for \ on Windows, since this may come from an environment -# variable. - -export MAXIM_SBT_DIR # SBTs must have this environment variable defined to work - -# SBT-config.mk and SBT-rules.mk are included further down this Makefile. - -endif # SBT - -# ******************************************************************************* -# Default goal selection. This section allows you to override the default goal -# that will run if no targets are specified on the command-line. -# (ie. just running 'make' instead of 'make all') - -# Configuration variables: -# .DEFAULT_GOAL : Set the default goal if no targets were specified on the -# command-line -# ** "override" must be used with this variable. ** -# Ex: "override .DEFAULT_GOAL = mygoal" - -ifeq "$(.DEFAULT_GOAL)" "" -ifeq ($(SBT),1) -override .DEFAULT_GOAL := sla -else -override .DEFAULT_GOAL := all -endif -endif - -# Developer note: 'override' is used above for legacy Makefile compatibility. -# gcc.mk/gcc_riscv.mk need to hard-set 'all' internally, so this new system -# uses 'override' to come in over the top without breaking old projects. - -# It's also necessary to explicitly set MAKECMDGOALS... -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - -# Enable colors when --sync-output is used. -# See https://www.gnu.org/software/make/manual/make.html#Terminal-Output (section 13.2) -ifneq ($(MAKE_TERMOUT),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -ifneq ($(FORCE_COLOR),) -PROJ_CFLAGS += -fdiagnostics-color=always -endif - -# ******************************************************************************* -# Include SBT config. We need to do this here because it needs to know -# the current MAKECMDGOAL. -ifeq ($(SBT),1) -include $(MAXIM_PATH)/Tools/SBT/SBT-config.mk -endif - -# ******************************************************************************* -# Libraries - -# This section offers "toggle switches" to include or exclude the libraries that -# are available in the MaximSDK. Set a configuration variable to 1 to include the -# library in the build, or 0 to exclude. - -# Each library may also have its own library specific configuration variables. See -# Libraries/libs.mk for more details. - -# Configuration variables: -# - LIB_BOARD : Include the Board-Support Package (BSP) library. (Enabled by default) -# - LIB_PERIPHDRIVERS : Include the peripheral driver library. (Enabled by default) -# - LIB_CMSIS_DSP : Include the CMSIS-DSP library. -# - LIB_CORDIO : Include the Cordio BLE library -# - LIB_FCL : Include the Free Cryptographic Library (FCL) -# - LIB_FREERTOS : Include the FreeRTOS and FreeRTOS-Plus-CLI libraries -# - LIB_LC3 : Include the Low Complexity Communication Codec (LC3) library -# - LIB_LITTLEFS : Include the "little file system" (littleFS) library -# - LIB_LWIP : Include the lwIP library -# - LIB_MAXUSB : Include the MAXUSB library -# - LIB_SDHC : Include the SDHC library - -include $(LIBS_DIR)/libs.mk - - -# ******************************************************************************* -# Rules - -# Include the rules for building for this target. All other makefiles should be -# included before this one. -include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk - -# Include the rules that integrate the SBTs. SBTs are a special case that must be -# include after the core gcc rules to extend them. -ifeq ($(SBT), 1) -include $(MAXIM_PATH)/Tools/SBT/SBT-rules.mk -endif - - -# Get .DEFAULT_GOAL working. -ifeq "$(MAKECMDGOALS)" "" -MAKECMDGOALS:=$(.DEFAULT_GOAL) -endif - - -all: -# Extend the functionality of the "all" recipe here - arm-none-eabi-size --format=berkeley $(BUILD_DIR)/$(PROJECT).elf - -libclean: - $(MAKE) -f ${PERIPH_DRIVER_DIR}/periphdriver.mk clean.periph - -clean: -# Extend the functionality of the "clean" recipe here - -# The rule to clean out all the build products. -distclean: clean libclean diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/descriptors.h b/Examples/MAX78002/USB_MassStorage_ThroughPut/descriptors.h deleted file mode 100644 index f53ba028a45..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/descriptors.h +++ /dev/null @@ -1,193 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX78002_USB_MASSSTORAGE_THROUGHPUT_DESCRIPTORS_H_ -#define EXAMPLES_MAX78002_USB_MASSSTORAGE_THROUGHPUT_DESCRIPTORS_H_ - -#include -#include "usb.h" -#include "hid_kbd.h" - -MXC_USB_device_descriptor_t __attribute__((aligned(4))) device_descriptor = { - 0x12, /* bLength = 18 */ - 0x01, /* bDescriptorType = Device */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x0B6A, /* idVendor (Maxim Integrated) */ - 0x4402, /* idProduct */ - 0x0100, /* bcdDevice */ - 0x01, /* iManufacturer Descriptor ID */ - 0x02, /* iProduct Descriptor ID */ - 0x03, /* iSerialNumber = (0) No string */ - 0x01 /* bNumConfigurations */ -}; - -/* Device qualifier needed for high-speed operation */ -MXC_USB_device_qualifier_descriptor_t __attribute__((aligned(4))) device_qualifier_descriptor = { - 0x0A, /* bLength = 10 */ - 0x06, /* bDescriptorType = Device Qualifier */ - 0x0200, /* bcdUSB USB spec rev (BCD) */ - 0x00, /* bDeviceClass = Unspecified */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - 0x40, /* bMaxPacketSize0 is 64 bytes */ - 0x01, /* bNumConfigurations */ - 0x00 /* Reserved, must be 0 */ -}; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00, /* bInterval (N/A) */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0040, /* wMaxPacketSize */ - 0x00 /* bInterval (N/A) */ - } }; - -__attribute__((aligned(4))) struct __attribute__((packed)) { - MXC_USB_configuration_descriptor_t config_descriptor; - /* Interface #0 Mass Storage Device */ - MXC_USB_interface_descriptor_t msc_interface_descriptor; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_1; - MXC_USB_endpoint_descriptor_t endpoint_descriptor_2; -} config_descriptor_hs = { { - 0x09, /* bLength = 9 */ - 0x02, /* bDescriptorType = Config (2) */ - 0x0020, /* wTotalLength(L/H) */ - 0x01, /* bNumInterfaces */ - 0x01, /* bConfigValue */ - 0x00, /* iConfiguration */ - 0xC0, /* bmAttributes (self-powered, no remote wakeup) */ - 0x32, /* MaxPower is 100ma (units are 2ma/bit) */ - }, - { - /* First Interface Descriptor For MSC Interface */ - 0x09, /* bLength = 9 */ - 0x04, /* bDescriptorType = Interface (4) */ - 0x00, /* bInterfaceNumber */ - 0x00, /* bAlternateSetting */ - 0x02, /* bNumEndpoints (one for INm one for OUT) */ - 0x08, /* bInterfaceClass = Mass Storage (8) */ - 0x06, /* bInterfaceSubClass = SCSI Transparent Command Set */ - 0x50, /* bInterfaceProtocol = Bulk-Only Transport */ - 0x00, /* iInterface */ - }, - { - /* OUT Endpoint 1 (Descriptor #1) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x01, /* bEndpointAddress (EP1-OUT) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01, /* bInterval */ - }, - { - /* IN Endpoint 2 (Descriptor #2) */ - 0x07, /* bLength */ - 0x05, /* bDescriptorType (Endpoint) */ - 0x82, /* bEndpointAddress (EP2-IN) */ - 0x02, /* bmAttributes (bulk) */ - 0x0200, /* wMaxPacketSize */ - 0x01 /* bInterval */ - } }; - -__attribute__((aligned(4))) uint8_t lang_id_desc[] = { - 0x04, /* bLength */ - 0x03, /* bDescriptorType */ - 0x09, 0x04 /* bString = wLANGID (see usb_20.pdf 9.6.7 String) */ -}; - -__attribute__((aligned(4))) uint8_t mfg_id_desc[] = { - 0x22, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'a', 0, 'x', 0, 'i', 0, 'm', 0, ' ', 0, 'I', 0, 'n', 0, - 't', 0, 'e', 0, 'g', 0, 'r', 0, 'a', 0, 't', 0, 'e', 0, 'd', 0, -}; - -__attribute__((aligned(4))) uint8_t prod_id_desc[] = { - 0x38, /* bLength */ - 0x03, /* bDescriptorType */ - 'M', 0, 'A', 0, 'X', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'M', 0, 'a', 0, - 's', 0, 's', 0, ' ', 0, 'S', 0, 't', 0, 'o', 0, 'r', 0, 'a', 0, 'g', 0, - 'e', 0, ' ', 0, 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0, -}; - -/* Not currently used (see device descriptor), but could be enabled if desired */ -__attribute__((aligned(4))) -uint8_t serial_id_desc[] = { 26, /* bLength */ - 0x03, /* bDescriptorType */ - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, - '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '1', 0 }; - -#endif // EXAMPLES_MAX78002_USB_MASSSTORAGE_THROUGHPUT_DESCRIPTORS_H_ diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/main.c b/Examples/MAX78002/USB_MassStorage_ThroughPut/main.c deleted file mode 100644 index acbc7b91f0b..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/main.c +++ /dev/null @@ -1,369 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file main.c - * @brief USB Mass Storage Class example - * @details This project creates a mass storage device using either on-board RAM or - * external SPI flash memory. Load the project, connect a cable from the PC - * to the USB connector. A new external drive should appear than can be read - * and written. - */ - -#include -#include -#include "mxc_sys.h" -#include "mxc_delay.h" -#include "board.h" -#include "led.h" -#include "usb.h" -#include "usb_event.h" -#include "enumerate.h" -#include "msc.h" -#include "descriptors.h" -#include "mscmem.h" -#include "mcr_regs.h" - -/***** Definitions *****/ -#define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS -#define EVENT_REMOTE_WAKE (EVENT_ENUM_COMP + 1) - -#define BUFFER_SIZE 64 - -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -/***** Global Data *****/ -volatile int configured; -volatile int suspended; -volatile unsigned int event_flags; -int remote_wake_en; - -/***** Function Prototypes *****/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata); -static int eventCallback(maxusb_event_t evt, void *data); -static void usbAppSleep(void); -static void usbAppWakeup(void); -int usbStartupCallback(); -int usbShutdownCallback(); - -/***** File Scope Variables *****/ - -/* Defaults, which will be changed by the configuration code */ -static msc_cfg_t msc_cfg = { - 1, /* EP OUT */ - MXC_USBHS_MAX_PACKET, /* OUT max packet size */ - 2, /* EP IN */ - MXC_USBHS_MAX_PACKET, /* IN max packet size */ -}; - -static const msc_idstrings_t ids = { - "MAXIM", /* Vendor string. Maximum of 8 bytes */ - "MSC Example", /* Product string. Maximum of 16 bytes */ - "1.0" /* Version string. Maximum of 4 bytes */ -}; - -/* Functions to control "disk" memory. See msc.h for definitions. */ -static const msc_mem_t mem = { - mscmem_Init, mscmem_Start, mscmem_Stop, mscmem_Ready, mscmem_Size, mscmem_Read, mscmem_Write, -}; - -/* User-supplied function to delay usec micro-seconds */ -void delay_us(unsigned int usec) -{ - /* mxc_delay() takes unsigned long, so can't use it directly */ - MXC_Delay(usec); -} - -/******************************************************************************/ -int main(void) -{ - maxusb_cfg_options_t usb_opts; - - printf("\n\n***** " TOSTRING(TARGET) " USB Mass Storage Example *****\n"); - printf("Waiting for VBUS...\n"); - - /* Initialize state */ - configured = 0; - suspended = 0; - event_flags = 0; - remote_wake_en = 0; - - /* Start out in full speed */ - usb_opts.enable_hs = 1; - usb_opts.delay_us = delay_us; /* Function which will be used for delays */ - usb_opts.init_callback = usbStartupCallback; - usb_opts.shutdown_callback = usbShutdownCallback; - - /* Initialize the usb module */ - if (MXC_USB_Init(&usb_opts) != 0) { - printf("usb_init() failed\n"); - while (1) {} - } - - /* Initialize the enumeration module */ - if (enum_init() != 0) { - printf("enum_init() failed\n"); - while (1) {} - } - - /* Register enumeration data */ - enum_register_descriptor(ENUM_DESC_DEVICE, (uint8_t *)&device_descriptor, 0); - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - - if (usb_opts.enable_hs) { - /* Two additional descriptors needed for high-speed operation */ - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_QUAL, (uint8_t *)&device_qualifier_descriptor, 0); - } - - enum_register_descriptor(ENUM_DESC_STRING, lang_id_desc, 0); - enum_register_descriptor(ENUM_DESC_STRING, mfg_id_desc, 1); - enum_register_descriptor(ENUM_DESC_STRING, prod_id_desc, 2); - enum_register_descriptor(ENUM_DESC_STRING, serial_id_desc, 3); - - /* Handle configuration */ - enum_register_callback(ENUM_SETCONFIG, setconfigCallback, NULL); - - /* Handle feature set/clear */ - enum_register_callback(ENUM_SETFEATURE, setfeatureCallback, NULL); - enum_register_callback(ENUM_CLRFEATURE, clrfeatureCallback, NULL); - - /* Initialize the class driver */ - if (msc_init(&config_descriptor.msc_interface_descriptor, &ids, &mem) != 0) { - printf("msc_init() failed\n"); - while (1) {} - } - - /* Register callbacks */ - MXC_USB_EventEnable(MAXUSB_EVENT_NOVBUS, eventCallback, NULL); - MXC_USB_EventEnable(MAXUSB_EVENT_VBUS, eventCallback, NULL); - - /* Start with USB in low power mode */ - usbAppSleep(); - NVIC_EnableIRQ(USB_IRQn); - - /* Wait for events */ - while (1) { - if (suspended || !configured) { - LED_Off(0); - } else { - LED_On(0); - } - - if (event_flags) { - /* Display events */ - if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_NOVBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_NOVBUS); - printf("VBUS Disconnect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_VBUS)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_VBUS); - printf("VBUS Connect\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRST)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRST); - printf("Bus Reset\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_BRSTDN)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_BRSTDN); - printf("Bus Reset Done: %s speed\n", - (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) ? "High" : "Full"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_SUSP)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_SUSP); - printf("Suspended\n"); - } else if (MXC_GETBIT(&event_flags, MAXUSB_EVENT_DPACT)) { - MXC_CLRBIT(&event_flags, MAXUSB_EVENT_DPACT); - printf("Resume\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_ENUM_COMP)) { - MXC_CLRBIT(&event_flags, EVENT_ENUM_COMP); - printf("Enumeration complete.\n"); - } else if (MXC_GETBIT(&event_flags, EVENT_REMOTE_WAKE)) { - MXC_CLRBIT(&event_flags, EVENT_REMOTE_WAKE); - printf("Remote Wakeup\n"); - } - } - } -} - -/******************************************************************************/ -static int setconfigCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - /* Confirm the configuration value */ - if (sud->wValue == config_descriptor.config_descriptor.bConfigurationValue) { - configured = 1; - MXC_SETBIT(&event_flags, EVENT_ENUM_COMP); - - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - msc_cfg.out_ep = config_descriptor_hs.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor_hs.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor_hs.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor_hs.endpoint_descriptor_2.wMaxPacketSize; - } else { - msc_cfg.out_ep = config_descriptor.endpoint_descriptor_1.bEndpointAddress & 0x7; - msc_cfg.out_maxpacket = config_descriptor.endpoint_descriptor_1.wMaxPacketSize; - msc_cfg.in_ep = config_descriptor.endpoint_descriptor_2.bEndpointAddress & 0x7; - msc_cfg.in_maxpacket = config_descriptor.endpoint_descriptor_2.wMaxPacketSize; - } - - return msc_configure(&msc_cfg); /* Configure the device class */ - - } else if (sud->wValue == 0) { - configured = 0; - return msc_deconfigure(); - } - - return -1; -} - -/******************************************************************************/ -int usbStartupCallback() -{ - MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_USB); - MXC_MCR->ldoctrl |= MXC_F_MCR_LDOCTRL_0P9EN; - - return E_NO_ERROR; -} - -/******************************************************************************/ -int usbShutdownCallback() -{ - MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_USB); - - return E_NO_ERROR; -} - -/******************************************************************************/ -static int setfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 1; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static int clrfeatureCallback(MXC_USB_SetupPkt *sud, void *cbdata) -{ - if (sud->wValue == FEAT_REMOTE_WAKE) { - remote_wake_en = 0; - } else { - /* Unknown callback */ - return -1; - } - - return 0; -} - -/******************************************************************************/ -static void usbAppSleep(void) -{ - suspended = 1; -} - -/******************************************************************************/ -static void usbAppWakeup(void) -{ - suspended = 0; -} - -/******************************************************************************/ -static int eventCallback(maxusb_event_t evt, void *data) -{ - /* Set event flag */ - MXC_SETBIT(&event_flags, evt); - - switch (evt) { - case MAXUSB_EVENT_NOVBUS: - MXC_USB_EventDisable(MAXUSB_EVENT_BRST); - MXC_USB_EventDisable(MAXUSB_EVENT_SUSP); - MXC_USB_EventDisable(MAXUSB_EVENT_DPACT); - MXC_USB_Disconnect(); - configured = 0; - enum_clearconfig(); - msc_deconfigure(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_VBUS: - MXC_USB_EventClear(MAXUSB_EVENT_BRST); - MXC_USB_EventEnable(MAXUSB_EVENT_BRST, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_BRSTDN); - MXC_USB_EventEnable(MAXUSB_EVENT_BRSTDN, eventCallback, NULL); - MXC_USB_EventClear(MAXUSB_EVENT_SUSP); - MXC_USB_EventEnable(MAXUSB_EVENT_SUSP, eventCallback, NULL); - MXC_USB_Connect(); - usbAppSleep(); - break; - - case MAXUSB_EVENT_BRST: - usbAppWakeup(); - enum_clearconfig(); - msc_deconfigure(); - configured = 0; - suspended = 0; - break; - - case MAXUSB_EVENT_BRSTDN: - if (MXC_USB_GetStatus() & MAXUSB_STATUS_HIGH_SPEED) { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor_hs, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor, 0); - } else { - enum_register_descriptor(ENUM_DESC_CONFIG, (uint8_t *)&config_descriptor, 0); - enum_register_descriptor(ENUM_DESC_OTHER, (uint8_t *)&config_descriptor_hs, 0); - } - break; - - case MAXUSB_EVENT_SUSP: - usbAppSleep(); - break; - - case MAXUSB_EVENT_DPACT: - usbAppWakeup(); - break; - - default: - break; - } - - return 0; -} - -/******************************************************************************/ -void USB_IRQHandler(void) -{ - MXC_USB_EventHandler(); -} diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/mscmem.c b/Examples/MAX78002/USB_MassStorage_ThroughPut/mscmem.c deleted file mode 100644 index 746cb3b497e..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/mscmem.c +++ /dev/null @@ -1,325 +0,0 @@ -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -/** - * @file mscmem.h - * @brief Memory routines used by the USB Mass Storage Class example. - * See the msc_mem_t structure in msc.h for function details. - * @details Functions are provided for using the internal RAM of the - * device or the external SPI flash memory. Use the SPIXF_DISK - * and RAM_DISK defines to select the desired memory at compile - * time. - */ - -#include "mscmem.h" -#include -#include - -/***** Definitions *****/ -#define SPIXF_DISK 0 -#define RAM_DISK 1 - -#define LBA_SIZE 512 /* Size of "logical blocks" in bytes */ -#define LBA_SIZE_SHIFT 9 /* The shift value used to convert between addresses and block numbers */ - -/***** Global Data *****/ - -/***** File Scope Variables *****/ - -static int initialized = 0; -static int running = 0; - -#if SPIXF_DISK - -#undef EXT_FLASH_BAUD -#define EXT_FLASH_BAUD 5000000 /* SPI clock rate to communicate with the external flash */ - -#define EXT_FLASH_SECTOR_SIZE 4096 /* Number of bytes in one sector of the external flash */ -#define EXT_FLASH_SECTOR_SIZE_SHIFT \ - 12 /* The shift value used to convert between addresses and block numbers */ -#define EXT_FLASH_NUM_SECTORS 2048 /* Total number of sectors in the external flash */ - -#define MXC_SPIXF_WIDTH Ext_Flash_DataLine_Single /*Number of data lines*/ - -#define LBA_PER_SECTOR (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) -#define INVALID_SECTOR \ - EXT_FLASH_NUM_SECTORS /* Use a sector number past the end of memory to indicate invalid */ - -/***** File Scope Variables *****/ -static uint32_t sectorNum = INVALID_SECTOR; -static uint8_t sector[EXT_FLASH_SECTOR_SIZE]; -static int sectorDirty = 0; - -/***** Function Prototypes *****/ -static uint32_t getSectorNum(uint32_t lba); -static uint32_t getSectorAddr(uint32_t lba); -static uint32_t getSector(uint32_t num); - -/******************************************************************************/ -static uint32_t getSectorNum(uint32_t lba) -{ - /* Absolute_address = lba * LBA_SIZE */ - /* Sector_num = Absolute_address / EXT_FLASH_SECTOR_SIZE */ - /* Sector_num = lba * 512 / 4096 */ - return lba >> (EXT_FLASH_SECTOR_SIZE_SHIFT - LBA_SIZE_SHIFT); -} - -/******************************************************************************/ -static uint32_t getSectorAddr(uint32_t lba) -{ - /* eight 512 byte blocks in each sector */ - return (lba & (LBA_PER_SECTOR - 1)) << LBA_SIZE_SHIFT; -} - -/******************************************************************************/ -static uint32_t getSector(uint32_t num) -{ - /* New sector requested? */ - if (sectorNum != num) { - /* Is the current sector real? */ - if (sectorNum != INVALID_SECTOR) { - /* Was it written to after it was read from memory? */ - if (sectorDirty) { - /* Erase the old data. */ - Ext_Flash_Erase(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, Ext_Flash_Erase_4K); - /* Write the new */ - Ext_Flash_Program_Page(sectorNum << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, - EXT_FLASH_SECTOR_SIZE, MXC_SPIXF_WIDTH); - /* Mark data as clean */ - sectorDirty = 0; - } - } - - /* Requesting a new valid sector? */ - if (num != INVALID_SECTOR) { - Ext_Flash_Read(num << EXT_FLASH_SECTOR_SIZE_SHIFT, sector, EXT_FLASH_SECTOR_SIZE, - MXC_SPIXF_WIDTH); - sectorDirty = 0; - sectorNum = num; - } - } - - return 0; -} - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - MXC_SPIXF_SetSPIFrequency(EXT_FLASH_BAUD); - Ext_Flash_Init(); - Ext_Flash_Reset(); - - if (MXC_SPIXF_WIDTH == Ext_Flash_DataLine_Quad) { - Ext_Flash_Quad(1); - } else { - Ext_Flash_Quad(0); - } - - initialized = 1; - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - /* Get number of 512 byte chunks the external flash contains. */ - return (EXT_FLASH_SECTOR_SIZE >> LBA_SIZE_SHIFT) * EXT_FLASH_NUM_SECTORS; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(buffer, sector + addr, LBA_SIZE); - - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - uint32_t addr; - - /* Convert to external flash sector number. */ - uint32_t sNum = getSectorNum(lba); - - if (getSector(sNum)) { - /* Failed to write/read from external flash */ - return 1; - } - - /* Get the offset into the current sector */ - addr = getSectorAddr(lba); - - memcpy(sector + addr, buffer, LBA_SIZE); - sectorDirty = 1; - - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Turn on the external flash if it is not already. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the initialization succeeded. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* TODO - could shut down XIPF interface here. */ - - /* Flush the currently cached sector if necessary. */ - if (getSector(INVALID_SECTOR)) { - return 1; - } - - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#elif RAM_DISK - -/* Dummy 1GB RAM */ -#define NUM_PAGES 0x200000 -static uint8_t mem[0x100][LBA_SIZE]; - -/******************************************************************************/ -int mscmem_Init() -{ - if (!initialized) { - initialized = 1; -#if (ERASE_MEMORY_ON_INIT) - memset(mem, 0, sizeof(mem)); -#endif - } - - return 0; -} - -/******************************************************************************/ -uint32_t mscmem_Size(void) -{ - return NUM_PAGES; -} - -/******************************************************************************/ -int mscmem_Read(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - lba &= 0xFF; - memcpy(buffer, mem[lba], LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Write(uint32_t lba, uint8_t *buffer) -{ - if (lba >= NUM_PAGES) { - return 1; - } - - lba &= 0xFF; - memcpy(mem[lba], buffer, LBA_SIZE); - return 0; -} - -/******************************************************************************/ -int mscmem_Start() -{ - /* Not much to do for this implementation. The RAM is always ready. */ - if (!initialized) { - mscmem_Init(); - } - - /* Check if the RAM has been initialized. If it has, start running. */ - if (initialized) { - running = 1; - } - - /* Start should return fail (non-zero) if the memory cannot be initialized. */ - return !initialized; -} - -/******************************************************************************/ -int mscmem_Stop() -{ - /* Nothing to do for this implementation. All data is written as it is */ - /* received so there are no pending writes that need to be flushed. */ - running = 0; - return 0; -} - -/******************************************************************************/ -int mscmem_Ready() -{ - return running; -} - -#else -#error "You must assign either RAM_DISK or SPIXF_DISK to 1." -#endif diff --git a/Examples/MAX78002/USB_MassStorage_ThroughPut/mscmem.h b/Examples/MAX78002/USB_MassStorage_ThroughPut/mscmem.h deleted file mode 100644 index d24d8443033..00000000000 --- a/Examples/MAX78002/USB_MassStorage_ThroughPut/mscmem.h +++ /dev/null @@ -1,98 +0,0 @@ -/** - * @file - * @brief Memory routines used by the USB Mass Storage Class example. - * See the @ref msc_mem_t structure in msc.h for function details. - */ - -/****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. - * - ******************************************************************************/ - -#ifndef EXAMPLES_MAX78002_USB_MASSSTORAGE_THROUGHPUT_MSCMEM_H_ -#define EXAMPLES_MAX78002_USB_MASSSTORAGE_THROUGHPUT_MSCMEM_H_ - -/* **** Include Files **** */ -#include - -/* **** Definitions **** */ -#define ERASE_MEMORY_ON_INIT \ - 1 /* Configuration option to clear the memory (to 0s) on initialization. */ -/* Use 1 to clear or 0 to leave untouched. */ -/** - * @brief Perform any initialization necessary to prepare the memory for reading/writing data. - * @returns 0 if initialization is successful, non-zero if an error occurred. - */ -int mscmem_Init(void); - -/** - * @brief Activates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Start(void); - -/** - * @brief Deactivates the memory. - * @returns 0 if activation is successful, non-zero if an error occurred. - */ -int mscmem_Stop(void); - -/** - * @brief Reports the total size of the mass-storage memory. - * @returns The number of 512 byte blocks contained in the memory. - */ -uint32_t mscmem_Size(void); - -/** - * @brief Reads 512 bytes of data from the memory. - * @param lba The index of the 512 byte block to read. - * @param buffer A byte array of at least 512 bytes to hold the values read. - * @returns 0 if reading is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Read(uint32_t lba, uint8_t *buffer); - -/** - * @brief Writes 512 bytes of data to the memory. - * @param lba The index of the 512 byte block to write. - * @param buffer A byte array of at least 512 bytes holding the values to write. - * @returns 0 if writing is successful, non-zero if an error occurred. - * @returns - */ -int mscmem_Write(uint32_t lba, uint8_t *buffer); - -/** - * @brief Checks if the memory is ready to be read/written. - * @returns non-zero if the memory is ready, 0 otherwise. - */ -int mscmem_Ready(void); - -#endif // EXAMPLES_MAX78002_USB_MASSSTORAGE_THROUGHPUT_MSCMEM_H_ diff --git a/Examples/MAX78002/WUT/Makefile b/Examples/MAX78002/WUT/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/WUT/Makefile +++ b/Examples/MAX78002/WUT/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/WUT/main.c b/Examples/MAX78002/WUT/main.c index 88f58a1da83..5f2d977d789 100644 --- a/Examples/MAX78002/WUT/main.c +++ b/Examples/MAX78002/WUT/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/Watchdog/Makefile b/Examples/MAX78002/Watchdog/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/Watchdog/Makefile +++ b/Examples/MAX78002/Watchdog/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/Watchdog/main.c b/Examples/MAX78002/Watchdog/main.c index b987dabeeb1..c9d8f7b1e73 100644 --- a/Examples/MAX78002/Watchdog/main.c +++ b/Examples/MAX78002/Watchdog/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Examples/MAX78002/WearLeveling/Makefile b/Examples/MAX78002/WearLeveling/Makefile index 80ac4541473..8a9ad64a8dc 100644 --- a/Examples/MAX78002/WearLeveling/Makefile +++ b/Examples/MAX78002/WearLeveling/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # ** Readme! ** # Don't edit this file! This is the core Makefile for a MaximSDK diff --git a/Examples/MAX78002/WearLeveling/include/cli.h b/Examples/MAX78002/WearLeveling/include/cli.h index 20611da62dd..e2e968b28d8 100644 --- a/Examples/MAX78002/WearLeveling/include/cli.h +++ b/Examples/MAX78002/WearLeveling/include/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_WEARLEVELING_INCLUDE_CLI_H_ diff --git a/Examples/MAX78002/WearLeveling/include/file.h b/Examples/MAX78002/WearLeveling/include/file.h index 3e29e455e13..17a6adb174d 100644 --- a/Examples/MAX78002/WearLeveling/include/file.h +++ b/Examples/MAX78002/WearLeveling/include/file.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_WEARLEVELING_INCLUDE_FILE_H_ diff --git a/Examples/MAX78002/WearLeveling/include/flash.h b/Examples/MAX78002/WearLeveling/include/flash.h index 827ec2095bc..cb4a678ed06 100644 --- a/Examples/MAX78002/WearLeveling/include/flash.h +++ b/Examples/MAX78002/WearLeveling/include/flash.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/WearLeveling/include/main.h b/Examples/MAX78002/WearLeveling/include/main.h index 63655785a6b..43c0f30795b 100644 --- a/Examples/MAX78002/WearLeveling/include/main.h +++ b/Examples/MAX78002/WearLeveling/include/main.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef EXAMPLES_MAX78002_WEARLEVELING_INCLUDE_MAIN_H_ diff --git a/Examples/MAX78002/WearLeveling/main.c b/Examples/MAX78002/WearLeveling/main.c index 5c793043d50..83a5f5108e8 100644 --- a/Examples/MAX78002/WearLeveling/main.c +++ b/Examples/MAX78002/WearLeveling/main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Examples/MAX78002/WearLeveling/src/cli.c b/Examples/MAX78002/WearLeveling/src/cli.c index 4284b92cd88..f942a7265f1 100644 --- a/Examples/MAX78002/WearLeveling/src/cli.c +++ b/Examples/MAX78002/WearLeveling/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Examples/MAX78002/WearLeveling/src/file.c b/Examples/MAX78002/WearLeveling/src/file.c index 55e04cc5d71..1b80a14653d 100644 --- a/Examples/MAX78002/WearLeveling/src/file.c +++ b/Examples/MAX78002/WearLeveling/src/file.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "file.h" diff --git a/Examples/MAX78002/WearLeveling/src/flash.c b/Examples/MAX78002/WearLeveling/src/flash.c index e48065cec60..296bb629604 100644 --- a/Examples/MAX78002/WearLeveling/src/flash.c +++ b/Examples/MAX78002/WearLeveling/src/flash.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/LICENSE.md b/LICENSE.md index f72ae6a00dd..071436ffe9d 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,209 @@ -Copyright (C) Maxim Integrated Products, Inc., All rights Reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Analog Devices, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-=============================================================================- + +Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All rights Reserved. This software is protected by copyright laws of the United States and of foreign countries. This material may also be protected by patent laws diff --git a/Libraries/Boards/MAX32520/BCB/Include/board.h b/Libraries/Boards/MAX32520/BCB/Include/board.h index 3bdf245b910..2bd150e6e3b 100644 --- a/Libraries/Boards/MAX32520/BCB/Include/board.h +++ b/Libraries/Boards/MAX32520/BCB/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32520/BCB/Source/board.c b/Libraries/Boards/MAX32520/BCB/Source/board.c index 280ff835f18..e7d0b13b0d7 100644 --- a/Libraries/Boards/MAX32520/BCB/Source/board.c +++ b/Libraries/Boards/MAX32520/BCB/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32520/BCB/board.mk b/Libraries/Boards/MAX32520/BCB/board.mk index 14472be6279..9464bf1a016 100644 --- a/Libraries/Boards/MAX32520/BCB/board.mk +++ b/Libraries/Boards/MAX32520/BCB/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32520/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32520/EvKit_V1/Include/board.h index d3be08ec9bb..9d503fbd8b5 100644 --- a/Libraries/Boards/MAX32520/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32520/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32520/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32520/EvKit_V1/Source/board.c index 3f1044359d5..775c5f958c7 100644 --- a/Libraries/Boards/MAX32520/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32520/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32520/EvKit_V1/board.mk b/Libraries/Boards/MAX32520/EvKit_V1/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32520/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32520/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32520/MAX32520FTHR/Include/board.h b/Libraries/Boards/MAX32520/MAX32520FTHR/Include/board.h index cb9141f4969..8de7a7c3bca 100644 --- a/Libraries/Boards/MAX32520/MAX32520FTHR/Include/board.h +++ b/Libraries/Boards/MAX32520/MAX32520FTHR/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32520/MAX32520FTHR/Source/board.c b/Libraries/Boards/MAX32520/MAX32520FTHR/Source/board.c index 34f7a54c676..6237bd9f876 100644 --- a/Libraries/Boards/MAX32520/MAX32520FTHR/Source/board.c +++ b/Libraries/Boards/MAX32520/MAX32520FTHR/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32520/MAX32520FTHR/board.mk b/Libraries/Boards/MAX32520/MAX32520FTHR/board.mk index 7d3cc32e21c..3fb3473ad14 100644 --- a/Libraries/Boards/MAX32520/MAX32520FTHR/board.mk +++ b/Libraries/Boards/MAX32520/MAX32520FTHR/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32520/Simulation/Include/aeskeys_regs.h b/Libraries/Boards/MAX32520/Simulation/Include/aeskeys_regs.h index 8bbba746beb..683428e3c34 100644 --- a/Libraries/Boards/MAX32520/Simulation/Include/aeskeys_regs.h +++ b/Libraries/Boards/MAX32520/Simulation/Include/aeskeys_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _AESKEYS_REGS_H_ diff --git a/Libraries/Boards/MAX32520/Simulation/Include/bbsir_tm_regs.h b/Libraries/Boards/MAX32520/Simulation/Include/bbsir_tm_regs.h index c5eea5ec5b7..3de3d1cb190 100644 --- a/Libraries/Boards/MAX32520/Simulation/Include/bbsir_tm_regs.h +++ b/Libraries/Boards/MAX32520/Simulation/Include/bbsir_tm_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BBSIR_TM_REGS_H_ diff --git a/Libraries/Boards/MAX32520/Simulation/Include/bbtm_regs.h b/Libraries/Boards/MAX32520/Simulation/Include/bbtm_regs.h index 5e14f56bc97..698d0023b5b 100644 --- a/Libraries/Boards/MAX32520/Simulation/Include/bbtm_regs.h +++ b/Libraries/Boards/MAX32520/Simulation/Include/bbtm_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _BBTM_REGS_H_ diff --git a/Libraries/Boards/MAX32520/Simulation/Include/board.h b/Libraries/Boards/MAX32520/Simulation/Include/board.h index 232a4b432bc..aeae4eb6ed0 100644 --- a/Libraries/Boards/MAX32520/Simulation/Include/board.h +++ b/Libraries/Boards/MAX32520/Simulation/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32520/Simulation/Include/ram_instance_addrs.h b/Libraries/Boards/MAX32520/Simulation/Include/ram_instance_addrs.h index 7dbaa90d1cd..41e51823da6 100644 --- a/Libraries/Boards/MAX32520/Simulation/Include/ram_instance_addrs.h +++ b/Libraries/Boards/MAX32520/Simulation/Include/ram_instance_addrs.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _RAM_INSTANCE_ADDRS_H_ diff --git a/Libraries/Boards/MAX32520/Simulation/Include/sir_tm_regs.h b/Libraries/Boards/MAX32520/Simulation/Include/sir_tm_regs.h index da0ea147639..d525001f16b 100644 --- a/Libraries/Boards/MAX32520/Simulation/Include/sir_tm_regs.h +++ b/Libraries/Boards/MAX32520/Simulation/Include/sir_tm_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SIR_TM_REGS_H_ diff --git a/Libraries/Boards/MAX32520/Simulation/Include/test_regs.h b/Libraries/Boards/MAX32520/Simulation/Include/test_regs.h index 17a833cd9b6..5f0ab3792d6 100644 --- a/Libraries/Boards/MAX32520/Simulation/Include/test_regs.h +++ b/Libraries/Boards/MAX32520/Simulation/Include/test_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TEST_REGS_H_ diff --git a/Libraries/Boards/MAX32520/Simulation/Source/board.c b/Libraries/Boards/MAX32520/Simulation/Source/board.c index b433accf139..7bc20a95098 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/board.c +++ b/Libraries/Boards/MAX32520/Simulation/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation.ld b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation.ld index 9a2cf26ecfe..2c4965b4868 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation.ld +++ b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap.ld b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap.ld index 172dc7a3475..8983c32cc6c 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap.ld +++ b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap_stack_and_vars_to_ram6.ld b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap_stack_and_vars_to_ram6.ld index 342cf29d438..f7735299f1e 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap_stack_and_vars_to_ram6.ld +++ b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_remap_stack_and_vars_to_ram6.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_rom.ld b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_rom.ld index 68cd5ce27f6..75cff0686b9 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_rom.ld +++ b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_spix_flash.ld b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_spix_flash.ld index 6d35684dedb..a40e8d91826 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_spix_flash.ld +++ b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_spix_flash.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_sysram0.ld b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_sysram0.ld index 6a5c616f0f8..dcb437c3fdb 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_sysram0.ld +++ b/Libraries/Boards/MAX32520/Simulation/Source/max32650_simulation_sysram0.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/Boards/MAX32520/Simulation/Source/rom_stub.c b/Libraries/Boards/MAX32520/Simulation/Source/rom_stub.c index c19ad57f623..700dd1c0e8c 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/rom_stub.c +++ b/Libraries/Boards/MAX32520/Simulation/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "max32650.h" diff --git a/Libraries/Boards/MAX32520/Simulation/Source/stdio_sim.c b/Libraries/Boards/MAX32520/Simulation/Source/stdio_sim.c index 2e71ccb459d..df33d403c94 100644 --- a/Libraries/Boards/MAX32520/Simulation/Source/stdio_sim.c +++ b/Libraries/Boards/MAX32520/Simulation/Source/stdio_sim.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32520/Simulation/board.mk b/Libraries/Boards/MAX32520/Simulation/board.mk index 4c1e748e132..7ca9fade9c3 100644 --- a/Libraries/Boards/MAX32520/Simulation/board.mk +++ b/Libraries/Boards/MAX32520/Simulation/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32650/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32650/EvKit_V1/Include/board.h index c1b68f58852..c7b2cd84f09 100644 --- a/Libraries/Boards/MAX32650/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32650/EvKit_V1/Include/board.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32650/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32650/EvKit_V1/Source/board.c index 541e3f8eff3..18dd4300ba6 100644 --- a/Libraries/Boards/MAX32650/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32650/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32650/EvKit_V1/board.mk b/Libraries/Boards/MAX32650/EvKit_V1/board.mk index 9ef3ebad424..750513eb9f4 100644 --- a/Libraries/Boards/MAX32650/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32650/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32650/EvKit_V1/examples.txt b/Libraries/Boards/MAX32650/EvKit_V1/examples.txt index bbe35e67271..f819f42b53a 100644 --- a/Libraries/Boards/MAX32650/EvKit_V1/examples.txt +++ b/Libraries/Boards/MAX32650/EvKit_V1/examples.txt @@ -55,10 +55,10 @@ Temp_Monitor TMR TRNG UART -USB_CDCACM -USB_CompositeDevice_MSC_CDC -USB_CompositeDevice_MSC_HID -USB_HIDKeyboard -USB_MassStorage +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling diff --git a/Libraries/Boards/MAX32650/FTHR_APPS_A/Include/board.h b/Libraries/Boards/MAX32650/FTHR_APPS_A/Include/board.h index bdc81d5eade..da8d1b4b5eb 100644 --- a/Libraries/Boards/MAX32650/FTHR_APPS_A/Include/board.h +++ b/Libraries/Boards/MAX32650/FTHR_APPS_A/Include/board.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32650/FTHR_APPS_A/Source/board.c b/Libraries/Boards/MAX32650/FTHR_APPS_A/Source/board.c index 138108e07c2..f55f34c115e 100644 --- a/Libraries/Boards/MAX32650/FTHR_APPS_A/Source/board.c +++ b/Libraries/Boards/MAX32650/FTHR_APPS_A/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32650/FTHR_APPS_A/board.mk b/Libraries/Boards/MAX32650/FTHR_APPS_A/board.mk index 8d4cb987a6f..f55bb4355c2 100644 --- a/Libraries/Boards/MAX32650/FTHR_APPS_A/board.mk +++ b/Libraries/Boards/MAX32650/FTHR_APPS_A/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32650/FTHR_APPS_A/examples.txt b/Libraries/Boards/MAX32650/FTHR_APPS_A/examples.txt index a2762d7a4be..8dd9d1ce001 100644 --- a/Libraries/Boards/MAX32650/FTHR_APPS_A/examples.txt +++ b/Libraries/Boards/MAX32650/FTHR_APPS_A/examples.txt @@ -37,10 +37,10 @@ SPI SysTick TMR TRNG -USB_CDCACM -USB_CompositeDevice_MSC_CDC -USB_CompositeDevice_MSC_HID -USB_HIDKeyboard -USB_MassStorage +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling diff --git a/Libraries/Boards/MAX32655/Emulator/Include/board.h b/Libraries/Boards/MAX32655/Emulator/Include/board.h index 7687571eb6b..7815fea5465 100644 --- a/Libraries/Boards/MAX32655/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32655/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32655/Emulator/Source/board.c b/Libraries/Boards/MAX32655/Emulator/Source/board.c index bc0bdfc0bbc..c590c6ed29b 100644 --- a/Libraries/Boards/MAX32655/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32655/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32655/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32655/Emulator/Source/rom_stub.c index 4cef329e706..072afa8f666 100644 --- a/Libraries/Boards/MAX32655/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32655/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //#include "max32650.h" diff --git a/Libraries/Boards/MAX32655/Emulator/board.mk b/Libraries/Boards/MAX32655/Emulator/board.mk index 5554fe4610c..281fa1fc2a9 100644 --- a/Libraries/Boards/MAX32655/Emulator/board.mk +++ b/Libraries/Boards/MAX32655/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32655/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32655/EvKit_V1/Include/board.h index 060f5a1f433..3ce7751356f 100644 --- a/Libraries/Boards/MAX32655/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32655/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32655/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32655/EvKit_V1/Source/board.c index 9d70b832d4c..7427efcaa1f 100644 --- a/Libraries/Boards/MAX32655/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32655/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32655/EvKit_V1/board.mk b/Libraries/Boards/MAX32655/EvKit_V1/board.mk index e26b0bf4c34..7b161b9d59e 100644 --- a/Libraries/Boards/MAX32655/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32655/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32655/EvKit_V1/examples.txt b/Libraries/Boards/MAX32655/EvKit_V1/examples.txt index 46963b4c019..761540407ab 100644 --- a/Libraries/Boards/MAX32655/EvKit_V1/examples.txt +++ b/Libraries/Boards/MAX32655/EvKit_V1/examples.txt @@ -13,19 +13,20 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE4_ctr -BLE5_ctr -BLE_datc -BLE_dats -BLE_fcc -BLE_fit -BLE_fit_FreeRTOS -BLE_FreeRTOS -BLE_mcs -BLE_otac -BLE_otas -BLE_periph -Bootloader +Bluetooth/BLE4_ctr +Bluetooth/BLE5_ctr +Bluetooth/BLE_datc +Bluetooth/BLE_dats +Bluetooth/BLE_fcc +Bluetooth/BLE_fit +Bluetooth/BLE_fit_FreeRTOS +Bluetooth/BLE_FreeRTOS +Bluetooth/BLE_mcs +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE_periph +Bluetooth/Bootloader +Bluetooth/RF_Test Coremark CRC DMA @@ -52,7 +53,6 @@ Library_Use LP LPCMP Pulse_Train -RF_Test RTC RTC_Backup RV_ARM_Loader diff --git a/Libraries/Boards/MAX32655/FTHR_Apps_P1/Include/board.h b/Libraries/Boards/MAX32655/FTHR_Apps_P1/Include/board.h index d4e4a84232c..5f1eb0ab4e0 100644 --- a/Libraries/Boards/MAX32655/FTHR_Apps_P1/Include/board.h +++ b/Libraries/Boards/MAX32655/FTHR_Apps_P1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32655/FTHR_Apps_P1/Source/board.c b/Libraries/Boards/MAX32655/FTHR_Apps_P1/Source/board.c index 74e1d7eddd0..e12593e6fc6 100644 --- a/Libraries/Boards/MAX32655/FTHR_Apps_P1/Source/board.c +++ b/Libraries/Boards/MAX32655/FTHR_Apps_P1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32655/FTHR_Apps_P1/board.mk b/Libraries/Boards/MAX32655/FTHR_Apps_P1/board.mk index 4eee4d08483..eb51076029a 100644 --- a/Libraries/Boards/MAX32655/FTHR_Apps_P1/board.mk +++ b/Libraries/Boards/MAX32655/FTHR_Apps_P1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32655/FTHR_Apps_P1/examples.txt b/Libraries/Boards/MAX32655/FTHR_Apps_P1/examples.txt index 2f0317bfc3d..ed2d9df06da 100644 --- a/Libraries/Boards/MAX32655/FTHR_Apps_P1/examples.txt +++ b/Libraries/Boards/MAX32655/FTHR_Apps_P1/examples.txt @@ -13,18 +13,18 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE4_ctr -BLE5_ctr -BLE_datc -BLE_dats -BLE_fcc -BLE_FreeRTOS -BLE_fit -BLE_mcs -BLE_otac -BLE_otas -BLE_periph -Bootloader +Bluetooth/BLE4_ctr +Bluetooth/BLE5_ctr +Bluetooth/BLE_datc +Bluetooth/BLE_dats +Bluetooth/BLE_fcc +Bluetooth/BLE_FreeRTOS +Bluetooth/BLE_fit +Bluetooth/BLE_mcs +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE_periph +Bluetooth/Bootloader Coremark CRC DMA diff --git a/Libraries/Boards/MAX32660/Emulator/Include/board.h b/Libraries/Boards/MAX32660/Emulator/Include/board.h index 864c63682fb..33d86e1388c 100644 --- a/Libraries/Boards/MAX32660/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32660/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32660/Emulator/Source/board.c b/Libraries/Boards/MAX32660/Emulator/Source/board.c index 6cd53b07295..7237a3a7760 100644 --- a/Libraries/Boards/MAX32660/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32660/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32660/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32660/Emulator/Source/rom_stub.c index 4cef329e706..072afa8f666 100644 --- a/Libraries/Boards/MAX32660/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32660/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //#include "max32650.h" diff --git a/Libraries/Boards/MAX32660/Emulator/board.mk b/Libraries/Boards/MAX32660/Emulator/board.mk index 08370c998a7..d4921f2c256 100644 --- a/Libraries/Boards/MAX32660/Emulator/board.mk +++ b/Libraries/Boards/MAX32660/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32660/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32660/EvKit_V1/Include/board.h index d2cecc5142b..867e3fcdc71 100644 --- a/Libraries/Boards/MAX32660/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32660/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32660/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32660/EvKit_V1/Source/board.c index 3a0419af77b..34e2cc0636c 100644 --- a/Libraries/Boards/MAX32660/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32660/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32660/EvKit_V1/board.mk b/Libraries/Boards/MAX32660/EvKit_V1/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32660/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32660/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32662/BCB/Include/board.h b/Libraries/Boards/MAX32662/BCB/Include/board.h index eac9cf886e3..e184001bd49 100644 --- a/Libraries/Boards/MAX32662/BCB/Include/board.h +++ b/Libraries/Boards/MAX32662/BCB/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32662/BCB/Source/board.c b/Libraries/Boards/MAX32662/BCB/Source/board.c index 89264f66621..fe95a5de108 100644 --- a/Libraries/Boards/MAX32662/BCB/Source/board.c +++ b/Libraries/Boards/MAX32662/BCB/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32662/BCB/board.mk b/Libraries/Boards/MAX32662/BCB/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32662/BCB/board.mk +++ b/Libraries/Boards/MAX32662/BCB/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32662/Emulator/Include/board.h b/Libraries/Boards/MAX32662/Emulator/Include/board.h index 864c63682fb..33d86e1388c 100644 --- a/Libraries/Boards/MAX32662/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32662/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32662/Emulator/Source/board.c b/Libraries/Boards/MAX32662/Emulator/Source/board.c index dfe7f49217e..6c6f02db7b7 100644 --- a/Libraries/Boards/MAX32662/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32662/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32662/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32662/Emulator/Source/rom_stub.c index 4cef329e706..072afa8f666 100644 --- a/Libraries/Boards/MAX32662/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32662/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //#include "max32650.h" diff --git a/Libraries/Boards/MAX32662/Emulator/board.mk b/Libraries/Boards/MAX32662/Emulator/board.mk index 08370c998a7..d4921f2c256 100644 --- a/Libraries/Boards/MAX32662/Emulator/board.mk +++ b/Libraries/Boards/MAX32662/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32662/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32662/EvKit_V1/Include/board.h index 38293add2d4..0295dfd9011 100644 --- a/Libraries/Boards/MAX32662/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32662/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32662/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32662/EvKit_V1/Source/board.c index 49bb9a97c1a..feebea57d28 100644 --- a/Libraries/Boards/MAX32662/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32662/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32662/EvKit_V1/board.mk b/Libraries/Boards/MAX32662/EvKit_V1/board.mk index b11b1dc43e3..aabc79622e5 100644 --- a/Libraries/Boards/MAX32662/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32662/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32662/FTHR/Include/board.h b/Libraries/Boards/MAX32662/FTHR/Include/board.h index 64005425c36..c0572449e36 100644 --- a/Libraries/Boards/MAX32662/FTHR/Include/board.h +++ b/Libraries/Boards/MAX32662/FTHR/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32662/FTHR/Source/board.c b/Libraries/Boards/MAX32662/FTHR/Source/board.c index 2405c855518..7489a15b89e 100644 --- a/Libraries/Boards/MAX32662/FTHR/Source/board.c +++ b/Libraries/Boards/MAX32662/FTHR/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32662/FTHR/board.mk b/Libraries/Boards/MAX32662/FTHR/board.mk index eea4ec884bc..6614bc1748e 100644 --- a/Libraries/Boards/MAX32662/FTHR/board.mk +++ b/Libraries/Boards/MAX32662/FTHR/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/EvKit_129B/Include/board.h b/Libraries/Boards/MAX32665/EvKit_129B/Include/board.h index 4237d6d3b87..2fb159e33a2 100644 --- a/Libraries/Boards/MAX32665/EvKit_129B/Include/board.h +++ b/Libraries/Boards/MAX32665/EvKit_129B/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32665/EvKit_129B/Source/board.c b/Libraries/Boards/MAX32665/EvKit_129B/Source/board.c index 8667d5f9d1f..a43d2a3cdbf 100644 --- a/Libraries/Boards/MAX32665/EvKit_129B/Source/board.c +++ b/Libraries/Boards/MAX32665/EvKit_129B/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32665/EvKit_129B/board.mk b/Libraries/Boards/MAX32665/EvKit_129B/board.mk index a338080504c..161541a52e0 100644 --- a/Libraries/Boards/MAX32665/EvKit_129B/board.mk +++ b/Libraries/Boards/MAX32665/EvKit_129B/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/EvKit_129B/examples.txt b/Libraries/Boards/MAX32665/EvKit_129B/examples.txt index e5862dc6bb6..bff78c973e8 100644 --- a/Libraries/Boards/MAX32665/EvKit_129B/examples.txt +++ b/Libraries/Boards/MAX32665/EvKit_129B/examples.txt @@ -13,10 +13,10 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE4_ctr -BLE_dats -BLE_periph -Bootloader_Host +Bluetooth/BLE4_ctr +Bluetooth/BLE_dats +Bluetooth/BLE_periph +Bluetooth/Bootloader_Host CRC DES DMA @@ -45,11 +45,11 @@ SRCC TMR TRNG UART -USB_CDCACM -USB_CompositeDevice_MSC_CDC -USB_CompositeDevice_MSC_HID -USB_HIDKeyboard -USB_MassStorage +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32665/EvKit_129C/Include/board.h b/Libraries/Boards/MAX32665/EvKit_129C/Include/board.h index dd0fa316036..740742becf3 100644 --- a/Libraries/Boards/MAX32665/EvKit_129C/Include/board.h +++ b/Libraries/Boards/MAX32665/EvKit_129C/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32665/EvKit_129C/Source/board.c b/Libraries/Boards/MAX32665/EvKit_129C/Source/board.c index afc83fe19bd..d7fc47983ab 100644 --- a/Libraries/Boards/MAX32665/EvKit_129C/Source/board.c +++ b/Libraries/Boards/MAX32665/EvKit_129C/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32665/EvKit_129C/board.mk b/Libraries/Boards/MAX32665/EvKit_129C/board.mk index a338080504c..161541a52e0 100644 --- a/Libraries/Boards/MAX32665/EvKit_129C/board.mk +++ b/Libraries/Boards/MAX32665/EvKit_129C/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/EvKit_129C/examples.txt b/Libraries/Boards/MAX32665/EvKit_129C/examples.txt index e5862dc6bb6..bff78c973e8 100644 --- a/Libraries/Boards/MAX32665/EvKit_129C/examples.txt +++ b/Libraries/Boards/MAX32665/EvKit_129C/examples.txt @@ -13,10 +13,10 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE4_ctr -BLE_dats -BLE_periph -Bootloader_Host +Bluetooth/BLE4_ctr +Bluetooth/BLE_dats +Bluetooth/BLE_periph +Bluetooth/Bootloader_Host CRC DES DMA @@ -45,11 +45,11 @@ SRCC TMR TRNG UART -USB_CDCACM -USB_CompositeDevice_MSC_CDC -USB_CompositeDevice_MSC_HID -USB_HIDKeyboard -USB_MassStorage +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32665/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32665/EvKit_V1/Include/board.h index db05bc1d98f..9ae6af0691e 100644 --- a/Libraries/Boards/MAX32665/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32665/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32665/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32665/EvKit_V1/Source/board.c index 90a8a17cbb0..3283e473f2c 100644 --- a/Libraries/Boards/MAX32665/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32665/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32665/EvKit_V1/board.mk b/Libraries/Boards/MAX32665/EvKit_V1/board.mk index da56987d74e..98fdbd42d32 100644 --- a/Libraries/Boards/MAX32665/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32665/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/EvKit_V1/examples.txt b/Libraries/Boards/MAX32665/EvKit_V1/examples.txt index a555c678e72..0c3ae4c9f8a 100644 --- a/Libraries/Boards/MAX32665/EvKit_V1/examples.txt +++ b/Libraries/Boards/MAX32665/EvKit_V1/examples.txt @@ -13,19 +13,20 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE4_ctr -BLE5_ctr -BLE_FreeRTOS -BLE_dats -BLE_datc -BLE_fcc -BLE_fit -BLE_mcs -BLE_otac -BLE_otas -BLE_periph -Bootloader -Bootloader_Host +Bluetooth/BLE4_ctr +Bluetooth/BLE5_ctr +Bluetooth/BLE_FreeRTOS +Bluetooth/BLE_dats +Bluetooth/BLE_datc +Bluetooth/BLE_fcc +Bluetooth/BLE_fit +Bluetooth/BLE_mcs +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE_periph +Bluetooth/Bootloader +Bluetooth/Bootloader_Host +Bluetooth/RF_Test Coremark CRC Demo @@ -68,11 +69,11 @@ Temp_Monitor TMR TRNG UART -USB_CDCACM -USB_CompositeDevice_MSC_CDC -USB_CompositeDevice_MSC_HID -USB_HIDKeyboard -USB_MassStorage +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32665/FTHR/Include/board.h b/Libraries/Boards/MAX32665/FTHR/Include/board.h index 6d259f1275a..0c784efe98a 100644 --- a/Libraries/Boards/MAX32665/FTHR/Include/board.h +++ b/Libraries/Boards/MAX32665/FTHR/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32665/FTHR/Source/board.c b/Libraries/Boards/MAX32665/FTHR/Source/board.c index 9cc075ce697..49ceb5f38c4 100644 --- a/Libraries/Boards/MAX32665/FTHR/Source/board.c +++ b/Libraries/Boards/MAX32665/FTHR/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32665/FTHR/board.mk b/Libraries/Boards/MAX32665/FTHR/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32665/FTHR/board.mk +++ b/Libraries/Boards/MAX32665/FTHR/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/FTHR/examples.txt b/Libraries/Boards/MAX32665/FTHR/examples.txt index bcc26513f9e..262b6334357 100644 --- a/Libraries/Boards/MAX32665/FTHR/examples.txt +++ b/Libraries/Boards/MAX32665/FTHR/examples.txt @@ -13,19 +13,19 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE4_ctr -BLE5_ctr -BLE_FreeRTOS -BLE_dats -BLE_datc -BLE_fcc -BLE_fit -BLE_mcs -BLE_otac -BLE_otas -BLE_periph -Bootloader -Bootloader_Host +Bluetooth/BLE4_ctr +Bluetooth/BLE5_ctr +Bluetooth/BLE_FreeRTOS +Bluetooth/BLE_dats +Bluetooth/BLE_datc +Bluetooth/BLE_fcc +Bluetooth/BLE_fit +Bluetooth/BLE_mcs +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE_periph +Bluetooth/Bootloader +Bluetooth/Bootloader_Host CRC DES DMA @@ -55,8 +55,8 @@ SPI TMR TRNG UART -USB_CDCACM -USB_HIDKeyboard +USB/USB_CDCACM +USB/USB_HIDKeyboard Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32665/FTHR2/Include/board.h b/Libraries/Boards/MAX32665/FTHR2/Include/board.h index 140cea57ae7..adaf8d0861d 100644 --- a/Libraries/Boards/MAX32665/FTHR2/Include/board.h +++ b/Libraries/Boards/MAX32665/FTHR2/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32665/FTHR2/Source/board.c b/Libraries/Boards/MAX32665/FTHR2/Source/board.c index ce0abda08b8..6047d4ed113 100644 --- a/Libraries/Boards/MAX32665/FTHR2/Source/board.c +++ b/Libraries/Boards/MAX32665/FTHR2/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32665/FTHR2/board.mk b/Libraries/Boards/MAX32665/FTHR2/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32665/FTHR2/board.mk +++ b/Libraries/Boards/MAX32665/FTHR2/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/FTHR2/examples.txt b/Libraries/Boards/MAX32665/FTHR2/examples.txt index 1f17f8cbc7b..4fd2e297b28 100644 --- a/Libraries/Boards/MAX32665/FTHR2/examples.txt +++ b/Libraries/Boards/MAX32665/FTHR2/examples.txt @@ -13,19 +13,19 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE4_ctr -BLE5_ctr -BLE_FreeRTOS -BLE_dats -BLE_datc -BLE_fcc -BLE_fit -BLE_mcs -BLE_otac -BLE_otas -BLE_periph -Bootloader -Bootloader_Host +Bluetooth/BLE4_ctr +Bluetooth/BLE5_ctr +Bluetooth/BLE_FreeRTOS +Bluetooth/BLE_dats +Bluetooth/BLE_datc +Bluetooth/BLE_fcc +Bluetooth/BLE_fit +Bluetooth/BLE_mcs +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE_periph +Bluetooth/Bootloader +Bluetooth/Bootloader_Host CRC DES DMA @@ -57,8 +57,8 @@ SPI TMR TRNG UART -USB_CDCACM -USB_HIDKeyboard +USB/USB_CDCACM +USB/USB_HIDKeyboard Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32665/MAXREFDES178/Include/board.h b/Libraries/Boards/MAX32665/MAXREFDES178/Include/board.h index 7d1708e7743..46810461c82 100644 --- a/Libraries/Boards/MAX32665/MAXREFDES178/Include/board.h +++ b/Libraries/Boards/MAX32665/MAXREFDES178/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32665/MAXREFDES178/Source/board.c b/Libraries/Boards/MAX32665/MAXREFDES178/Source/board.c index 93cc2359a8b..5c7218d28e7 100644 --- a/Libraries/Boards/MAX32665/MAXREFDES178/Source/board.c +++ b/Libraries/Boards/MAX32665/MAXREFDES178/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32665/MAXREFDES178/board.mk b/Libraries/Boards/MAX32665/MAXREFDES178/board.mk index c359d94d1ea..a2919cd6d2a 100644 --- a/Libraries/Boards/MAX32665/MAXREFDES178/board.mk +++ b/Libraries/Boards/MAX32665/MAXREFDES178/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/WLP_VAR/Include/board.h b/Libraries/Boards/MAX32665/WLP_VAR/Include/board.h index df37ad80130..7acda9eb100 100644 --- a/Libraries/Boards/MAX32665/WLP_VAR/Include/board.h +++ b/Libraries/Boards/MAX32665/WLP_VAR/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32665/WLP_VAR/Source/board.c b/Libraries/Boards/MAX32665/WLP_VAR/Source/board.c index e0e57909b8b..b827bec1ccb 100644 --- a/Libraries/Boards/MAX32665/WLP_VAR/Source/board.c +++ b/Libraries/Boards/MAX32665/WLP_VAR/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32665/WLP_VAR/board.mk b/Libraries/Boards/MAX32665/WLP_VAR/board.mk index 14472be6279..9464bf1a016 100644 --- a/Libraries/Boards/MAX32665/WLP_VAR/board.mk +++ b/Libraries/Boards/MAX32665/WLP_VAR/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32665/WLP_VAR/examples.txt b/Libraries/Boards/MAX32665/WLP_VAR/examples.txt index 97749c4eb98..83c98e990b5 100644 --- a/Libraries/Boards/MAX32665/WLP_VAR/examples.txt +++ b/Libraries/Boards/MAX32665/WLP_VAR/examples.txt @@ -1,9 +1,9 @@ ADC AES -BLE4_ctr -BLE_dats -BLE_periph -Bootloader_Host +Bluetooth/BLE4_ctr +Bluetooth/BLE_dats +Bluetooth/BLE_periph +Bluetooth/Bootloader_Host CRC DES DMA @@ -32,11 +32,11 @@ SRCC TMR TRNG UART -USB_CDCACM -USB_CompositeDevice_MSC_CDC -USB_CompositeDevice_MSC_HID -USB_HIDKeyboard -USB_MassStorage +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32670/Emulator/Include/board.h b/Libraries/Boards/MAX32670/Emulator/Include/board.h index 864c63682fb..33d86e1388c 100644 --- a/Libraries/Boards/MAX32670/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32670/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32670/Emulator/Source/board.c b/Libraries/Boards/MAX32670/Emulator/Source/board.c index a1c31c2747e..0c6b7cafd54 100644 --- a/Libraries/Boards/MAX32670/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32670/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32670/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32670/Emulator/Source/rom_stub.c index 4cef329e706..072afa8f666 100644 --- a/Libraries/Boards/MAX32670/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32670/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //#include "max32650.h" diff --git a/Libraries/Boards/MAX32670/Emulator/board.mk b/Libraries/Boards/MAX32670/Emulator/board.mk index de9a407fb15..2a970674f3e 100644 --- a/Libraries/Boards/MAX32670/Emulator/board.mk +++ b/Libraries/Boards/MAX32670/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32670/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32670/EvKit_V1/Include/board.h index 53dd2d8e1f3..8b1abc966e3 100644 --- a/Libraries/Boards/MAX32670/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32670/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32670/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32670/EvKit_V1/Source/board.c index 71da07688e7..f698a593ed5 100644 --- a/Libraries/Boards/MAX32670/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32670/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32670/EvKit_V1/board.mk b/Libraries/Boards/MAX32670/EvKit_V1/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32670/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32670/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32672/Emulator/Include/board.h b/Libraries/Boards/MAX32672/Emulator/Include/board.h index 864c63682fb..33d86e1388c 100644 --- a/Libraries/Boards/MAX32672/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32672/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32672/Emulator/Source/board.c b/Libraries/Boards/MAX32672/Emulator/Source/board.c index a1c31c2747e..0c6b7cafd54 100644 --- a/Libraries/Boards/MAX32672/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32672/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32672/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32672/Emulator/Source/rom_stub.c index 4cef329e706..072afa8f666 100644 --- a/Libraries/Boards/MAX32672/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32672/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //#include "max32650.h" diff --git a/Libraries/Boards/MAX32672/Emulator/board.mk b/Libraries/Boards/MAX32672/Emulator/board.mk index 5554fe4610c..281fa1fc2a9 100644 --- a/Libraries/Boards/MAX32672/Emulator/board.mk +++ b/Libraries/Boards/MAX32672/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32672/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32672/EvKit_V1/Include/board.h index 4206f715c29..b4587dee33e 100644 --- a/Libraries/Boards/MAX32672/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32672/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32672/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32672/EvKit_V1/Source/board.c index 183ed88b21e..2443ec87b6f 100644 --- a/Libraries/Boards/MAX32672/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32672/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32672/EvKit_V1/board.mk b/Libraries/Boards/MAX32672/EvKit_V1/board.mk index 7917688a2c3..de31c21e9d4 100644 --- a/Libraries/Boards/MAX32672/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32672/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32672/FTHR/Include/board.h b/Libraries/Boards/MAX32672/FTHR/Include/board.h index 5499dff1677..f83e1162ea3 100644 --- a/Libraries/Boards/MAX32672/FTHR/Include/board.h +++ b/Libraries/Boards/MAX32672/FTHR/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32672/FTHR/Source/board.c b/Libraries/Boards/MAX32672/FTHR/Source/board.c index b69d5438d96..7e8c7216e97 100644 --- a/Libraries/Boards/MAX32672/FTHR/Source/board.c +++ b/Libraries/Boards/MAX32672/FTHR/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32672/FTHR/board.mk b/Libraries/Boards/MAX32672/FTHR/board.mk index d74430ada42..0ecc80ebb1b 100644 --- a/Libraries/Boards/MAX32672/FTHR/board.mk +++ b/Libraries/Boards/MAX32672/FTHR/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32675/Emulator/Include/board.h b/Libraries/Boards/MAX32675/Emulator/Include/board.h index 864c63682fb..33d86e1388c 100644 --- a/Libraries/Boards/MAX32675/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32675/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32675/Emulator/Source/board.c b/Libraries/Boards/MAX32675/Emulator/Source/board.c index a1c31c2747e..0c6b7cafd54 100644 --- a/Libraries/Boards/MAX32675/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32675/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32675/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32675/Emulator/Source/rom_stub.c index 4cef329e706..072afa8f666 100644 --- a/Libraries/Boards/MAX32675/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32675/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //#include "max32650.h" diff --git a/Libraries/Boards/MAX32675/Emulator/board.mk b/Libraries/Boards/MAX32675/Emulator/board.mk index 5554fe4610c..281fa1fc2a9 100644 --- a/Libraries/Boards/MAX32675/Emulator/board.mk +++ b/Libraries/Boards/MAX32675/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32675/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32675/EvKit_V1/Include/board.h index d6eafb30dbd..35b579f8995 100644 --- a/Libraries/Boards/MAX32675/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32675/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32675/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32675/EvKit_V1/Source/board.c index 749f58e54e3..b248d075fb9 100644 --- a/Libraries/Boards/MAX32675/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32675/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32675/EvKit_V1/board.mk b/Libraries/Boards/MAX32675/EvKit_V1/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32675/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32675/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32675/FTHR_Apps_B/Include/board.h b/Libraries/Boards/MAX32675/FTHR_Apps_B/Include/board.h index 30868436fad..8f34bba950c 100644 --- a/Libraries/Boards/MAX32675/FTHR_Apps_B/Include/board.h +++ b/Libraries/Boards/MAX32675/FTHR_Apps_B/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32675/FTHR_Apps_B/Source/board.c b/Libraries/Boards/MAX32675/FTHR_Apps_B/Source/board.c index f8c57880daa..161cd68822a 100644 --- a/Libraries/Boards/MAX32675/FTHR_Apps_B/Source/board.c +++ b/Libraries/Boards/MAX32675/FTHR_Apps_B/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32675/FTHR_Apps_B/board.mk b/Libraries/Boards/MAX32675/FTHR_Apps_B/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32675/FTHR_Apps_B/board.mk +++ b/Libraries/Boards/MAX32675/FTHR_Apps_B/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32680/Emulator/Include/board.h b/Libraries/Boards/MAX32680/Emulator/Include/board.h index 5486dba5439..68340efbca7 100644 --- a/Libraries/Boards/MAX32680/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32680/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32680/Emulator/Source/board.c b/Libraries/Boards/MAX32680/Emulator/Source/board.c index 3df6869deec..103307d5c31 100644 --- a/Libraries/Boards/MAX32680/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32680/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32680/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32680/Emulator/Source/rom_stub.c index 4cef329e706..072afa8f666 100644 --- a/Libraries/Boards/MAX32680/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32680/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ //#include "max32650.h" diff --git a/Libraries/Boards/MAX32680/Emulator/board.mk b/Libraries/Boards/MAX32680/Emulator/board.mk index 5554fe4610c..281fa1fc2a9 100644 --- a/Libraries/Boards/MAX32680/Emulator/board.mk +++ b/Libraries/Boards/MAX32680/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32680/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32680/EvKit_V1/Include/board.h index 2f7090230ce..58553e96910 100644 --- a/Libraries/Boards/MAX32680/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32680/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32680/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32680/EvKit_V1/Source/board.c index b0b244fcbb5..305681edae4 100644 --- a/Libraries/Boards/MAX32680/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32680/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32680/EvKit_V1/board.mk b/Libraries/Boards/MAX32680/EvKit_V1/board.mk index cce47d560a6..6ac6c093e55 100644 --- a/Libraries/Boards/MAX32680/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32680/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32680/EvKit_V1/examples.txt b/Libraries/Boards/MAX32680/EvKit_V1/examples.txt index d273e8070ee..3e8ecec68f5 100644 --- a/Libraries/Boards/MAX32680/EvKit_V1/examples.txt +++ b/Libraries/Boards/MAX32680/EvKit_V1/examples.txt @@ -14,8 +14,8 @@ ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example AES AFE_ADC -BLE4_ctr -BLE_dats +Bluetooth/BLE4_ctr +Bluetooth/BLE_dats Coremark CRC DMA diff --git a/Libraries/Boards/MAX32690/Emulator/Include/board.h b/Libraries/Boards/MAX32690/Emulator/Include/board.h index baa055a840b..482d7654ada 100644 --- a/Libraries/Boards/MAX32690/Emulator/Include/board.h +++ b/Libraries/Boards/MAX32690/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32690/Emulator/Source/board.c b/Libraries/Boards/MAX32690/Emulator/Source/board.c index 8cd73e5a39f..39910d8c5a4 100644 --- a/Libraries/Boards/MAX32690/Emulator/Source/board.c +++ b/Libraries/Boards/MAX32690/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32690/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX32690/Emulator/Source/rom_stub.c index 5e6b3c9a04e..e5a8aa78957 100644 --- a/Libraries/Boards/MAX32690/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX32690/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "max32690.h" diff --git a/Libraries/Boards/MAX32690/Emulator/board.mk b/Libraries/Boards/MAX32690/Emulator/board.mk index 5554fe4610c..281fa1fc2a9 100644 --- a/Libraries/Boards/MAX32690/Emulator/board.mk +++ b/Libraries/Boards/MAX32690/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32690/EvKit_V1/Include/board.h b/Libraries/Boards/MAX32690/EvKit_V1/Include/board.h index 1a3422d12f6..036632ebb56 100644 --- a/Libraries/Boards/MAX32690/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX32690/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32690/EvKit_V1/Source/board.c b/Libraries/Boards/MAX32690/EvKit_V1/Source/board.c index d0f34ca0b40..a3b31d1bf57 100644 --- a/Libraries/Boards/MAX32690/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX32690/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32690/EvKit_V1/board.mk b/Libraries/Boards/MAX32690/EvKit_V1/board.mk index d285f66b3d6..c89eb9aac94 100644 --- a/Libraries/Boards/MAX32690/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX32690/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32690/EvKit_V1/examples.txt b/Libraries/Boards/MAX32690/EvKit_V1/examples.txt index 8e1a40087d5..d98a2ce0a20 100644 --- a/Libraries/Boards/MAX32690/EvKit_V1/examples.txt +++ b/Libraries/Boards/MAX32690/EvKit_V1/examples.txt @@ -12,20 +12,21 @@ ARM-DSP/arm_signal_converge_example ARM-DSP/arm_sin_cos_example ARM-DSP/arm_svm_example ARM-DSP/arm_variance_example -BLE_datc -BLE_dats -BLE_FreeRTOS -BLE_otac -BLE_otas -BLE4_ctr -BLE5_ctr -BLE_fcc -BLE_fit -BLE_mcs -BLE_otac -BLE_otas -BLE_periph -Bootloader +Bluetooth/BLE_datc +Bluetooth/BLE_dats +Bluetooth/BLE_FreeRTOS +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE4_ctr +Bluetooth/BLE5_ctr +Bluetooth/BLE_fcc +Bluetooth/BLE_fit +Bluetooth/BLE_mcs +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE_periph +Bluetooth/Bootloader +Bluetooth/RF_Test CAN Coremark CRC @@ -59,6 +60,11 @@ TFT_Demo TMR TRNG UART +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32690/FTHR/Include/board.h b/Libraries/Boards/MAX32690/FTHR/Include/board.h index 0a2219b3e28..20d98da34fd 100644 --- a/Libraries/Boards/MAX32690/FTHR/Include/board.h +++ b/Libraries/Boards/MAX32690/FTHR/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32690/FTHR/Source/board.c b/Libraries/Boards/MAX32690/FTHR/Source/board.c index 655d1b4441b..d065564ca4d 100644 --- a/Libraries/Boards/MAX32690/FTHR/Source/board.c +++ b/Libraries/Boards/MAX32690/FTHR/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32690/FTHR/board.mk b/Libraries/Boards/MAX32690/FTHR/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32690/FTHR/board.mk +++ b/Libraries/Boards/MAX32690/FTHR/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32690/FTHR/examples.txt b/Libraries/Boards/MAX32690/FTHR/examples.txt index 1dbe20d493f..66d58ae833f 100644 --- a/Libraries/Boards/MAX32690/FTHR/examples.txt +++ b/Libraries/Boards/MAX32690/FTHR/examples.txt @@ -53,9 +53,11 @@ SPI Temp_Monitor TMR TRNG -USB_CDCACM -USB_CompositeDevice_MSC_CDC -USB_MassStorage +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage Watchdog WearLeveling WUT diff --git a/Libraries/Boards/MAX32690/TQFN_DB/Include/board.h b/Libraries/Boards/MAX32690/TQFN_DB/Include/board.h index 549ade7782d..5e7c085f856 100644 --- a/Libraries/Boards/MAX32690/TQFN_DB/Include/board.h +++ b/Libraries/Boards/MAX32690/TQFN_DB/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32690/TQFN_DB/Source/board.c b/Libraries/Boards/MAX32690/TQFN_DB/Source/board.c index b3b3c7720d1..b018c80a4e1 100644 --- a/Libraries/Boards/MAX32690/TQFN_DB/Source/board.c +++ b/Libraries/Boards/MAX32690/TQFN_DB/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32690/TQFN_DB/board.mk b/Libraries/Boards/MAX32690/TQFN_DB/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32690/TQFN_DB/board.mk +++ b/Libraries/Boards/MAX32690/TQFN_DB/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32690/WLP_DB/Include/board.h b/Libraries/Boards/MAX32690/WLP_DB/Include/board.h index 48e2246f9f7..8e6e4bfd7b7 100644 --- a/Libraries/Boards/MAX32690/WLP_DB/Include/board.h +++ b/Libraries/Boards/MAX32690/WLP_DB/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32690/WLP_DB/Source/board.c b/Libraries/Boards/MAX32690/WLP_DB/Source/board.c index 7c71ce6b310..80a838dfe5a 100644 --- a/Libraries/Boards/MAX32690/WLP_DB/Source/board.c +++ b/Libraries/Boards/MAX32690/WLP_DB/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32690/WLP_DB/board.mk b/Libraries/Boards/MAX32690/WLP_DB/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX32690/WLP_DB/board.mk +++ b/Libraries/Boards/MAX32690/WLP_DB/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32690/WLP_V1/Include/board.h b/Libraries/Boards/MAX32690/WLP_V1/Include/board.h index 286b689d68f..7d28cd2826b 100644 --- a/Libraries/Boards/MAX32690/WLP_V1/Include/board.h +++ b/Libraries/Boards/MAX32690/WLP_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX32690/WLP_V1/Source/board.c b/Libraries/Boards/MAX32690/WLP_V1/Source/board.c index d173bf15506..329953ff901 100644 --- a/Libraries/Boards/MAX32690/WLP_V1/Source/board.c +++ b/Libraries/Boards/MAX32690/WLP_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX32690/WLP_V1/board.mk b/Libraries/Boards/MAX32690/WLP_V1/board.mk index acbbbe2a61e..164c24eeec1 100644 --- a/Libraries/Boards/MAX32690/WLP_V1/board.mk +++ b/Libraries/Boards/MAX32690/WLP_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX32690/WLP_V1/examples.txt b/Libraries/Boards/MAX32690/WLP_V1/examples.txt index 0045117e92b..2ac0cdf4570 100644 --- a/Libraries/Boards/MAX32690/WLP_V1/examples.txt +++ b/Libraries/Boards/MAX32690/WLP_V1/examples.txt @@ -1,14 +1,14 @@ -BLE_datc -BLE_dats -BLE_FreeRTOS -BLE_otac -BLE_otas -BLE4_ctr -BLE5_ctr -BLE_fcc -BLE_fit -BLE_mcs -BLE_otac -BLE_otas -BLE_periph +Bluetooth/BLE_datc +Bluetooth/BLE_dats +Bluetooth/BLE_FreeRTOS +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE4_ctr +Bluetooth/BLE5_ctr +Bluetooth/BLE_fcc +Bluetooth/BLE_fit +Bluetooth/BLE_mcs +Bluetooth/BLE_otac +Bluetooth/BLE_otas +Bluetooth/BLE_periph Hello_World diff --git a/Libraries/Boards/MAX78000/Aud01_RevA/Include/board.h b/Libraries/Boards/MAX78000/Aud01_RevA/Include/board.h index df09d78d865..0b8fed7b14b 100644 --- a/Libraries/Boards/MAX78000/Aud01_RevA/Include/board.h +++ b/Libraries/Boards/MAX78000/Aud01_RevA/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78000/Aud01_RevA/Source/board.c b/Libraries/Boards/MAX78000/Aud01_RevA/Source/board.c index 54a5b4dfa73..c797573ca18 100644 --- a/Libraries/Boards/MAX78000/Aud01_RevA/Source/board.c +++ b/Libraries/Boards/MAX78000/Aud01_RevA/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78000/Aud01_RevA/board.mk b/Libraries/Boards/MAX78000/Aud01_RevA/board.mk index 7d3cc32e21c..3fb3473ad14 100644 --- a/Libraries/Boards/MAX78000/Aud01_RevA/board.mk +++ b/Libraries/Boards/MAX78000/Aud01_RevA/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78000/BCB/Include/board.h b/Libraries/Boards/MAX78000/BCB/Include/board.h index 4e44f66452a..51ebb03ec7e 100644 --- a/Libraries/Boards/MAX78000/BCB/Include/board.h +++ b/Libraries/Boards/MAX78000/BCB/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78000/BCB/Source/board.c b/Libraries/Boards/MAX78000/BCB/Source/board.c index c71d03f0cfe..014f8e6f42c 100644 --- a/Libraries/Boards/MAX78000/BCB/Source/board.c +++ b/Libraries/Boards/MAX78000/BCB/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78000/BCB/board.mk b/Libraries/Boards/MAX78000/BCB/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX78000/BCB/board.mk +++ b/Libraries/Boards/MAX78000/BCB/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78000/CAM01_RevA/Include/board.h b/Libraries/Boards/MAX78000/CAM01_RevA/Include/board.h index ef21405310e..a3988036608 100644 --- a/Libraries/Boards/MAX78000/CAM01_RevA/Include/board.h +++ b/Libraries/Boards/MAX78000/CAM01_RevA/Include/board.h @@ -1,5 +1,7 @@ -/******************************************************************************* - * Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78000/CAM01_RevA/Source/board.c b/Libraries/Boards/MAX78000/CAM01_RevA/Source/board.c index 4117d53fe78..71e43d9a4ea 100644 --- a/Libraries/Boards/MAX78000/CAM01_RevA/Source/board.c +++ b/Libraries/Boards/MAX78000/CAM01_RevA/Source/board.c @@ -1,5 +1,7 @@ -/******************************************************************************* - * Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78000/CAM01_RevA/board.mk b/Libraries/Boards/MAX78000/CAM01_RevA/board.mk index 329ceb2d624..6ca7569f0e7 100644 --- a/Libraries/Boards/MAX78000/CAM01_RevA/board.mk +++ b/Libraries/Boards/MAX78000/CAM01_RevA/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78000/Emulator/Include/board.h b/Libraries/Boards/MAX78000/Emulator/Include/board.h index 2ddb57fbb32..42eae1c91bc 100644 --- a/Libraries/Boards/MAX78000/Emulator/Include/board.h +++ b/Libraries/Boards/MAX78000/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78000/Emulator/Source/board.c b/Libraries/Boards/MAX78000/Emulator/Source/board.c index 87221c0d8e5..83ad34b8c4e 100644 --- a/Libraries/Boards/MAX78000/Emulator/Source/board.c +++ b/Libraries/Boards/MAX78000/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78000/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX78000/Emulator/Source/rom_stub.c index 9e68f568d48..ead3fe002cc 100644 --- a/Libraries/Boards/MAX78000/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX78000/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "max78000.h" diff --git a/Libraries/Boards/MAX78000/Emulator/board.mk b/Libraries/Boards/MAX78000/Emulator/board.mk index bb8c1c418f9..2db738e8096 100644 --- a/Libraries/Boards/MAX78000/Emulator/board.mk +++ b/Libraries/Boards/MAX78000/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78000/EvKit_V1/Include/board.h b/Libraries/Boards/MAX78000/EvKit_V1/Include/board.h index cb9389629f7..3bdfcdad291 100644 --- a/Libraries/Boards/MAX78000/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX78000/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78000/EvKit_V1/Source/board.c b/Libraries/Boards/MAX78000/EvKit_V1/Source/board.c index 58b109cbe5c..3a0efeef2ca 100644 --- a/Libraries/Boards/MAX78000/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX78000/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78000/EvKit_V1/board.mk b/Libraries/Boards/MAX78000/EvKit_V1/board.mk index bad3a9cf8c9..38514056b9f 100644 --- a/Libraries/Boards/MAX78000/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX78000/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" # This Makefile will self-locate if BOARD_DIR is not specified. diff --git a/Libraries/Boards/MAX78000/FTHR_RevA/Include/board.h b/Libraries/Boards/MAX78000/FTHR_RevA/Include/board.h index 22a7b315a3f..a43e65e8ae9 100644 --- a/Libraries/Boards/MAX78000/FTHR_RevA/Include/board.h +++ b/Libraries/Boards/MAX78000/FTHR_RevA/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78000/FTHR_RevA/Source/board.c b/Libraries/Boards/MAX78000/FTHR_RevA/Source/board.c index be37cf15977..3e2a748c737 100644 --- a/Libraries/Boards/MAX78000/FTHR_RevA/Source/board.c +++ b/Libraries/Boards/MAX78000/FTHR_RevA/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78000/FTHR_RevA/board.mk b/Libraries/Boards/MAX78000/FTHR_RevA/board.mk index f490556ba78..7a5aba55147 100644 --- a/Libraries/Boards/MAX78000/FTHR_RevA/board.mk +++ b/Libraries/Boards/MAX78000/FTHR_RevA/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" # This Makefile will self-locate if BOARD_DIR is not specified. diff --git a/Libraries/Boards/MAX78000/Include/tft.h b/Libraries/Boards/MAX78000/Include/tft.h index 67f9ea3cf1b..6ff5a9c41fd 100644 --- a/Libraries/Boards/MAX78000/Include/tft.h +++ b/Libraries/Boards/MAX78000/Include/tft.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_BOARDS_MAX78000_INCLUDE_TFT_H_ diff --git a/Libraries/Boards/MAX78000/Include/tft_fthr.h b/Libraries/Boards/MAX78000/Include/tft_fthr.h index 828ff9a835f..da8de31d387 100644 --- a/Libraries/Boards/MAX78000/Include/tft_fthr.h +++ b/Libraries/Boards/MAX78000/Include/tft_fthr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_BOARDS_MAX78000_INCLUDE_TFT_FTHR_H_ diff --git a/Libraries/Boards/MAX78000/Include/touchscreen.h b/Libraries/Boards/MAX78000/Include/touchscreen.h index 407fef5238a..b1eba4d8807 100644 --- a/Libraries/Boards/MAX78000/Include/touchscreen.h +++ b/Libraries/Boards/MAX78000/Include/touchscreen.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_BOARDS_MAX78000_INCLUDE_TOUCHSCREEN_H_ diff --git a/Libraries/Boards/MAX78000/MAXREFDES178/Include/board.h b/Libraries/Boards/MAX78000/MAXREFDES178/Include/board.h index 46c33c2a6e5..ea92ae69bfe 100644 --- a/Libraries/Boards/MAX78000/MAXREFDES178/Include/board.h +++ b/Libraries/Boards/MAX78000/MAXREFDES178/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78000/MAXREFDES178/Source/board.c b/Libraries/Boards/MAX78000/MAXREFDES178/Source/board.c index da7f5a34b8a..dd2d1661658 100644 --- a/Libraries/Boards/MAX78000/MAXREFDES178/Source/board.c +++ b/Libraries/Boards/MAX78000/MAXREFDES178/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78000/MAXREFDES178/board.mk b/Libraries/Boards/MAX78000/MAXREFDES178/board.mk index be7a931f4c2..7cd657aaf15 100644 --- a/Libraries/Boards/MAX78000/MAXREFDES178/board.mk +++ b/Libraries/Boards/MAX78000/MAXREFDES178/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78002/BCB/Include/board.h b/Libraries/Boards/MAX78002/BCB/Include/board.h index 4e44f66452a..51ebb03ec7e 100644 --- a/Libraries/Boards/MAX78002/BCB/Include/board.h +++ b/Libraries/Boards/MAX78002/BCB/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78002/BCB/Source/board.c b/Libraries/Boards/MAX78002/BCB/Source/board.c index c71d03f0cfe..014f8e6f42c 100644 --- a/Libraries/Boards/MAX78002/BCB/Source/board.c +++ b/Libraries/Boards/MAX78002/BCB/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78002/BCB/board.mk b/Libraries/Boards/MAX78002/BCB/board.mk index ab36f9b83f9..72eadbb4daa 100644 --- a/Libraries/Boards/MAX78002/BCB/board.mk +++ b/Libraries/Boards/MAX78002/BCB/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78002/Emulator/Include/board.h b/Libraries/Boards/MAX78002/Emulator/Include/board.h index 60fc9bbbbb4..75beb09ffde 100644 --- a/Libraries/Boards/MAX78002/Emulator/Include/board.h +++ b/Libraries/Boards/MAX78002/Emulator/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/Boards/MAX78002/Emulator/Source/board.c b/Libraries/Boards/MAX78002/Emulator/Source/board.c index 86e60482fa4..e56c3359585 100644 --- a/Libraries/Boards/MAX78002/Emulator/Source/board.c +++ b/Libraries/Boards/MAX78002/Emulator/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78002/Emulator/Source/rom_stub.c b/Libraries/Boards/MAX78002/Emulator/Source/rom_stub.c index 6c9bfcc2e12..75bf95b7fda 100644 --- a/Libraries/Boards/MAX78002/Emulator/Source/rom_stub.c +++ b/Libraries/Boards/MAX78002/Emulator/Source/rom_stub.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "max78002.h" diff --git a/Libraries/Boards/MAX78002/Emulator/board.mk b/Libraries/Boards/MAX78002/Emulator/board.mk index bb8c1c418f9..2db738e8096 100644 --- a/Libraries/Boards/MAX78002/Emulator/board.mk +++ b/Libraries/Boards/MAX78002/Emulator/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78002/EvKit_V1/Include/board.h b/Libraries/Boards/MAX78002/EvKit_V1/Include/board.h index 717381829da..96a728959a3 100644 --- a/Libraries/Boards/MAX78002/EvKit_V1/Include/board.h +++ b/Libraries/Boards/MAX78002/EvKit_V1/Include/board.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_BOARDS_MAX78002_EVKIT_V1_INCLUDE_BOARD_H_ diff --git a/Libraries/Boards/MAX78002/EvKit_V1/Source/board.c b/Libraries/Boards/MAX78002/EvKit_V1/Source/board.c index 64c48be65fc..b9f70bf27f4 100644 --- a/Libraries/Boards/MAX78002/EvKit_V1/Source/board.c +++ b/Libraries/Boards/MAX78002/EvKit_V1/Source/board.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/Boards/MAX78002/EvKit_V1/board.mk b/Libraries/Boards/MAX78002/EvKit_V1/board.mk index 416bb2bc581..c692d329668 100644 --- a/Libraries/Boards/MAX78002/EvKit_V1/board.mk +++ b/Libraries/Boards/MAX78002/EvKit_V1/board.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BOARD_DIR)" "" $(error BOARD_DIR must be set) diff --git a/Libraries/Boards/MAX78002/EvKit_V1/examples.txt b/Libraries/Boards/MAX78002/EvKit_V1/examples.txt index b70e3f39870..7a8dbd40831 100644 --- a/Libraries/Boards/MAX78002/EvKit_V1/examples.txt +++ b/Libraries/Boards/MAX78002/EvKit_V1/examples.txt @@ -64,9 +64,12 @@ TFT_Demo TMR TRNG UART -USB_CDCACM -USB_CompositeDevice_MSC_HID -USB_HIDKeyboard +USB/USB_CDCACM +USB/USB_CompositeDevice_MSC_CDC +USB/USB_CompositeDevice_MSC_HID +USB/USB_HIDKeyboard +USB/USB_MassStorage +USB/USB_MassStorage_Throughput Watchdog WearLeveling WUT diff --git a/Libraries/CLI/CLI.mk b/Libraries/CLI/CLI.mk index fcc5d551ca5..d3a97e099ee 100644 --- a/Libraries/CLI/CLI.mk +++ b/Libraries/CLI/CLI.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/CLI/inc/cli.h b/Libraries/CLI/inc/cli.h index d131e9897f3..2dbe8fa4bb9 100644 --- a/Libraries/CLI/inc/cli.h +++ b/Libraries/CLI/inc/cli.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /*! \file cli.h diff --git a/Libraries/CLI/src/cli.c b/Libraries/CLI/src/cli.c index 008e2aa8bfa..dbc7690c9dd 100644 --- a/Libraries/CLI/src/cli.c +++ b/Libraries/CLI/src/cli.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* -------------------------------------------------- */ diff --git a/Libraries/CMSIS/5.9.0/Core/Include/core_rv32.h b/Libraries/CMSIS/5.9.0/Core/Include/core_rv32.h index dc553089df2..0f047a9230a 100644 --- a/Libraries/CMSIS/5.9.0/Core/Include/core_rv32.h +++ b/Libraries/CMSIS/5.9.0/Core/Include/core_rv32.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_INCLUDE_CORE_RV32_H_ diff --git a/Libraries/CMSIS/Device/Maxim/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/GCC/gcc.mk index 440a58e9088..93d56189ff4 100644 --- a/Libraries/CMSIS/Device/Maxim/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # The build directory ifeq "$(BUILD_DIR)" "" diff --git a/Libraries/CMSIS/Device/Maxim/GCC/gcc_riscv.mk b/Libraries/CMSIS/Device/Maxim/GCC/gcc_riscv.mk index 3fba8338b42..237a8fd5102 100644 --- a/Libraries/CMSIS/Device/Maxim/GCC/gcc_riscv.mk +++ b/Libraries/CMSIS/Device/Maxim/GCC/gcc_riscv.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # The build directory ifeq "$(BUILD_DIR)" "" diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aes_regs.h index 86093b61d6a..0b3f460525e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aes_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aeskeys_regs.h index 001ef0eaee3..4358add8a7b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/ctb_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/ctb_regs.h index 954137bcec8..7e45b87668c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/ctb_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/ctb_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_CTB_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/dma_regs.h index e3ea6ec4287..0067b19b3e1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/fcr_regs.h index c9ff62323b2..f5b11d196e6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/flc_regs.h index d2a25c92379..b7c35dde572 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gcr_regs.h index 1639bbef4e5..e9adf34bc46 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gpio_regs.h index 499a818a052..06ded3cb739 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/i2c_regs.h index d91766bf289..e561694c3ca 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/icc_regs.h index 65e506f1932..284d79dfc30 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/max32520.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/max32520.h index 1872db33858..6fdb651f823 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/max32520.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/max32520.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_MAX32520_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/mcr_regs.h index 9098b9cdac2..40efd9030eb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/pwrseq_regs.h index cba6293545e..15160d671cb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sfe_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sfe_regs.h index f57292cccaf..1c27b65b5af 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sfe_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sfe_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_SFE_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sir_regs.h index 689581794e5..059958c593c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/smon_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/smon_regs.h index a8ce27a4059..b563ac658f2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/smon_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/smon_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_SMON_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/spi_regs.h index 2dee97d4693..deda1beca72 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/system_max32520.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/system_max32520.h index 861babc4565..95efe622f66 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/system_max32520.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/system_max32520.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_SYSTEM_MAX32520_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/tmr_regs.h index 66ebab8bf03..a5e23c84644 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/trng_regs.h index d645dcb682d..132d4b97954 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/uart_regs.h index d12ef6a41af..0248a2db692 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/wdt_regs.h index ac3ffc7642f..1b700c6e8a9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32520_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/startup_max32520.s b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/startup_max32520.s index 17441a952e4..cf1dd5f2539 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/startup_max32520.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/startup_max32520.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + Stack_Size EQU 0x00001000 diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/gcc.mk index 5778f8c1a32..3542aa848d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.ld b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.ld index b08f0f80ccd..88c2ecf4ba0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.mk b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.mk index f93548c7ee7..b5f220ea622 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator.ld b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator.ld index 203d0377ba5..5a6b7db5699 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator_ram.ld index 1d011381ad3..8666a513a4f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_emulator_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_ram.ld index 1d998fafdbd..475a6f31a5f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_rom.ld index 4f88c70e81f..716a5ea1038 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_scpa.ld b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_scpa.ld index 5376cf23f13..911309e3594 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_scpa.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_scpa.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_sla.ld b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_sla.ld index 6a9e79e69ba..0e35e47913b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_sla.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/max32520_sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/startup_max32520.S b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/startup_max32520.S index 23c07e92ece..170a0ab5cba 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/startup_max32520.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/GCC/startup_max32520.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/IAR/startup_max32520.s b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/IAR/startup_max32520.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/IAR/startup_max32520.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/IAR/startup_max32520.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/header_MAX32520.c b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/header_MAX32520.c index 024a7eaa896..b4da922485b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/header_MAX32520.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/header_MAX32520.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #define SWAP(x) \ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/heap.c index c1ab743a7b8..98fe990f153 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/system_max32520.c b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/system_max32520.c index 54643202a13..d23987f9865 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32520/Source/system_max32520.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32520/Source/system_max32520.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/adc_regs.h index 540e955c37a..5eb04ee3e29 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aes_key_regs.h index 8ab580a2336..2be8c989b3c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aeskeys_regs.h index 253ceae989a..2b4d0835d10 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/bbfc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/bbfc_regs.h index 7fe1efe1548..e42f74a6b32 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/bbfc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/bbfc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_BBFC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/clcd_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/clcd_regs.h index 400cca38197..cddb9a46276 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/clcd_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/clcd_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_CLCD_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/dma_regs.h index 31d708d102b..0d2812b90cb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/emcc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/emcc_regs.h index 0c23f95bccd..cab9cc6536c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/emcc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/emcc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_EMCC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/flc_regs.h index fc08ea5e5d9..5e804cc1e2c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gcr_regs.h index d688e8f2af5..6bef42c0244 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gpio_regs.h index 09a0b599c01..c346918baf4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/hpb_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/hpb_regs.h index 71cc2fda881..b8f79e61b57 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/hpb_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/hpb_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_HPB_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/i2c_regs.h index eb439a0a9fd..d931f57ff99 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/icc_regs.h index 27159abceac..b646a10397b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/max32650.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/max32650.h index 96461dc65b9..ac31980328e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/max32650.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/max32650.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_MAX32650_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/nbbfc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/nbbfc_regs.h index 3e6867f8976..d9bdd91dc59 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/nbbfc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/nbbfc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_NBBFC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/owm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/owm_regs.h index a9df236d3a1..b912103fab9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/owm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/owm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_OWM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pt_regs.h index 188423bc085..9def71dd25c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/ptg_regs.h index df1b839c5da..ea28f34ccc1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pwrseq_regs.h index 4c587432475..da8bf53b600 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/rtc_regs.h index 8d84615fced..8a743e58e49 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdhc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdhc_regs.h index 32cdd6dd02f..261e31535be 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdhc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdhc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SDHC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdma_regs.h index deecff6496b..615d83c2cfd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sdma_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SDMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sema_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sema_regs.h index 56fff425d28..a7f62317871 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sema_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sema_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SEMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sir_regs.h index 26a0796ead5..4368486c1af 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/smon_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/smon_regs.h index 9fce645371c..ea891b0ba5a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/smon_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/smon_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SMON_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spi_regs.h index 26eed9dc33c..36ee6523ed8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spimss_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spimss_regs.h index fbd31d33288..98e7a4c2aee 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spimss_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spimss_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SPIMSS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixf_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixf_regs.h index 56e3ba01ba5..1a21f2572f5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixf_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixf_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SPIXF_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_fifo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_fifo_regs.h index bff5aa67226..12374f10d93 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_fifo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_fifo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SPIXFC_FIFO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_regs.h index 571f6ce48be..1fc40a9664f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixfc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SPIXFC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixr_regs.h index d6acf01c0d3..e2e916af4e2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/spixr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SPIXR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/system_max32650.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/system_max32650.h index b343fe50968..c8e3dba9f1a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/system_max32650.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/system_max32650.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_SYSTEM_MAX32650_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tmr_regs.h index 615141794f3..da4cee0043c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tpu_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tpu_regs.h index 73a2c888ff0..ebbae961702 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tpu_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/tpu_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_TPU_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trimsir_regs.h index 474761e2a24..e65bbd9851d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trng_regs.h index fb7fd93d05b..ced03a1da9b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/uart_regs.h index 0e90cf33a11..924846a6647 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/usbhs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/usbhs_regs.h index 856b70e5997..c6ef71edd7d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/usbhs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/usbhs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_USBHS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/wdt_regs.h index fb2412ddce2..4b7a261ed33 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32650_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/gcc.mk index 5778f8c1a32..3542aa848d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/lp.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/lp.ld index 166926543ec..487f65ed8fb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/lp.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/lp.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.ld index 048074c8426..fd718293208 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.mk b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.mk index ec8ad7cc637..765cfae089d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_hpb.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_hpb.ld index 793678b6130..3447b5715fe 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_hpb.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_hpb.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_ram.ld index 51df67d015f..1eeca576c12 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_scpa.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_scpa.ld index ae90fef9e9a..8f48497ebf7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_scpa.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_scpa.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla.ld index a03540498ce..00e50981d28 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_hpb.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_hpb.ld index 7bd5e2ec323..d6dc99bb2bf 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_hpb.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_hpb.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_spix.ld index 68664f3ad81..64458cbeff0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_sla_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_spix.ld index 6b5c7bfd9b1..c042e6d64c3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/max32650_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/startup_max32650.S b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/startup_max32650.S index 712c3aa1dbb..08b99ad503a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/startup_max32650.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/GCC/startup_max32650.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/heap.c index a1779687d56..7eb89a494d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/system_max32650.c b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/system_max32650.c index 237e5c9e9d7..790d4b697ff 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32650/Source/system_max32650.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32650/Source/system_max32650.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/adc_regs.h index 5be1ea925ac..a6fe6a51aa3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_key_regs.h index ea9e501984c..b4cccb3e924 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_regs.h index 23351457c0f..8425ccb1929 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aeskeys_regs.h index 610f1b0bc56..a424b504704 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/crc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/crc_regs.h index 68bd435d485..fa12f9e70b0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/crc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/crc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_CRC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dma_regs.h index 47af15b49b2..35cbb11ba41 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dvs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dvs_regs.h index f8064a9ce71..85bffa99076 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dvs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/dvs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_DVS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/fcr_regs.h index 2ff2d9e51ef..7fab3f4cc85 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/flc_regs.h index 52c572db807..255a7b6e9f4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcfr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcfr_regs.h index ac37251001f..74a0a3154ee 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcfr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcfr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_GCFR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcr_regs.h index 40ec4855726..311aefc15a2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gpio_regs.h index 47fee0558bd..bb71e703541 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2c_regs.h index 2daf81943ac..cc32cd93140 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2s_regs.h index 60905873679..fa753ab7c1a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/icc_regs.h index e4707082837..5cc63ee9e08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpcmp_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpcmp_regs.h index 8e168b04866..e92931ce6b9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpcmp_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpcmp_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_LPCMP_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpgcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpgcr_regs.h index 785623bada9..dd3ede58647 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpgcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/lpgcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_LPGCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/max32655.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/max32655.h index 34cb2c8ebaf..42c754cad79 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/max32655.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/max32655.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_MAX32655_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/mcr_regs.h index 921d611ba45..2355bae7000 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/owm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/owm_regs.h index fdd16c95ff7..4423a9a3b12 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/owm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/owm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_OWM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pt_regs.h index f108d8d9284..dacf5bf951e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/ptg_regs.h index 2720655d4c6..45e4dc4531a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pwrseq_regs.h index cf65285e69f..f2c5267350b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/rtc_regs.h index f7665509e85..8cb73e4ad07 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sema_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sema_regs.h index fff1978456c..56939edd798 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sema_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sema_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_SEMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/simo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/simo_regs.h index efdd83bc22b..e4ab4fca091 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/simo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/simo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_SIMO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sir_regs.h index 19a60fef067..7780e30de5f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/spi_regs.h index a2124e7ddd5..6084c763aa3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/system_max32655.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/system_max32655.h index 2c68525472d..f415e00277b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/system_max32655.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/system_max32655.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_SYSTEM_MAX32655_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/tmr_regs.h index 16b43395259..3d2318b7d28 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trimsir_regs.h index 4f4acf13c72..52ffe35135c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trng_regs.h index cf6793496ed..cd4b10acdee 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/uart_regs.h index 8a25d121b94..af5bd0e6247 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wdt_regs.h index 48cc1a69488..6e17bf3ce7f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wut_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wut_regs.h index 3eb1bc4205e..2f97bf0a55c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wut_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Include/wut_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32655_INCLUDE_WUT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/startup_max32655.s b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/startup_max32655.s index 17441a952e4..cf1dd5f2539 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/startup_max32655.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/startup_max32655.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + Stack_Size EQU 0x00001000 diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc.mk index 5778f8c1a32..3542aa848d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc_riscv.mk b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc_riscv.mk index b460d548b9d..ced3a59aea8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc_riscv.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/gcc_riscv.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_RISCV_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.ld index 7b38c613d87..1e36fc1d090 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Make room for PAL_NVM_DB */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.mk b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.mk index f268403db80..7063051e65c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_arm.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_arm.ld index bf0c5b45862..2c26d02b5fc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_arm.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_arm.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __FlashStart = 0x10000000; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator.ld index 6c77231e629..e9270081611 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_ram.ld index cb9ad91949f..55907b471ff 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_spix.ld index ccfcc789a08..c719294196b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_xip.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_xip.ld index 2709568bb13..a39f3fb9509 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_xip.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_emulator_xip.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_ram.ld index df03d96104c..94ef8aa6577 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_riscv.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_riscv.ld index 2f6cfae6aa5..b30f9e7fae9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_riscv.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_riscv.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ INCLUDE "buildrv/common_riscv.ld" /* Auto-generated by Makefile */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rom.ld index 03a3e155247..b79df08d28a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rv.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rv.ld index 87bf1bee114..d8af46740d5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rv.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_rv.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ FLASH_MEM_SIZE = _RISCV_FLASH_SIZE - _PAL_NVM_SIZE; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_spix.ld index 0b16e882b12..0ad2038d86b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/max32655_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x00020000 /* 128kB ROM */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/startup_max32655.S b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/startup_max32655.S index c05772f4179..dbcc26a663f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/startup_max32655.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/GCC/startup_max32655.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/IAR/startup_max32655.s b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/IAR/startup_max32655.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/IAR/startup_max32655.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/IAR/startup_max32655.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/heap.c index eb9a633a3bc..19718172ea9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_max32655.c b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_max32655.c index 43181a0303f..b4f4b615c82 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_max32655.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_max32655.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_riscv_max32655.c b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_riscv_max32655.c index 690e1fd02fd..10090749083 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_riscv_max32655.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32655/Source/system_riscv_max32655.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/dma_regs.h index 1255bbe5630..261611e97e5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/fcr_regs.h index ae9d0baa5e2..80e73c5920e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/flc_regs.h index 86b750c3b96..9f8694901c6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gcr_regs.h index e1e2899fe6a..6c1dfc98824 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gpio_regs.h index 71f34dfab3b..6f15684867d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/i2c_regs.h index 21d0aa63d82..2d15063bd0c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/icc_regs.h index 7c557256a63..f78b60e2262 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/max32660.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/max32660.h index 628221af1d6..cef16d97383 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/max32660.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/max32660.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_MAX32660_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/pwrseq_regs.h index e2ab542e6bc..3364f236093 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/rtc_regs.h index 533f80ff1ac..8fce1a58eac 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/sir_regs.h index 36479d2373d..490a924260c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spi_regs.h index 858dc012812..6e7c88834bb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spimss_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spimss_regs.h index f7735c0e577..51c688778b2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spimss_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/spimss_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_SPIMSS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/system_max32660.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/system_max32660.h index b398337686e..5cfb233f1df 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/system_max32660.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/system_max32660.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_SYSTEM_MAX32660_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/tmr_regs.h index a9c83477cf3..ff928dea75c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/uart_regs.h index a3d9c5676b2..cd8784091f2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/wdt_regs.h index 6104781ea95..f1a249ef746 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32660_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/startup_max32670.s index 17441a952e4..cf1dd5f2539 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + Stack_Size EQU 0x00001000 diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/gcc.mk index 5778f8c1a32..3542aa848d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.ld b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.ld index 8f96e3209fd..d17c22b8fdc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.mk b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.mk index 6d8f9d4ee3b..0fa593de2c0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660_ram.ld index 00cdf8f10ff..58784c9d51b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/max32660_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/startup_max32660.S b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/startup_max32660.S index d4797e35146..2696eedd6e0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/startup_max32660.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/GCC/startup_max32660.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/IAR/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/IAR/startup_max32670.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/IAR/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/IAR/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/heap.c index c1ab743a7b8..98fe990f153 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/system_max32660.c b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/system_max32660.c index fdb9af0d70e..6e2c860d433 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32660/Source/system_max32660.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32660/Source/system_max32660.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/adc_regs.h index da1319ee219..e712c2904c6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_key_regs.h index d7066670972..d48d2bebc67 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_regs.h index a7f20fd66c5..8f6b393e714 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aeskeys_regs.h index 5008f8369de..1bf52aaec83 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/can_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/can_regs.h index f5dba92b203..4d9eae28ec8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/can_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/can_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_CAN_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/dma_regs.h index 0e92fae78b8..ee80d52cba0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/fcr_regs.h index 93179800e94..c9d2f7dbfb0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/flc_regs.h index 40dac30c729..b7ff43da5bc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gcr_regs.h index 6cfe074c134..f4b5c56d863 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gpio_regs.h index 6d542d467aa..1b6fca74ff1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2c_regs.h index c6d1811c034..1a7cec4c8be 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2s_regs.h index 7fb86ab8fe6..6a07fd9cd1b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/icc_regs.h index 399f905499d..892a2d5a0ea 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/max32662.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/max32662.h index 45ed52b6028..0a22e7396f7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/max32662.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/max32662.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_MAX32662_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/mcr_regs.h index 9321b7c836c..0608fdac04d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pt_regs.h index 2fc4ded4ed5..134320ca17c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/ptg_regs.h index 10316197af6..130c7f6b6c1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pwrseq_regs.h index 1bd5a78d4df..32b8194de91 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/rtc_regs.h index 78526321798..ba4667ce3ff 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/sir_regs.h index bdfcd8a39fc..6a57a6eb0b9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/spi_regs.h index 3ab2341c658..5dc078c90aa 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/system_max32662.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/system_max32662.h index c093b1a780e..6b93006f861 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/system_max32662.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/system_max32662.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_SYSTEM_MAX32662_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/tmr_regs.h index 848bc55f546..0fd07ceca6d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trimsir_regs.h index 77e7023e4f4..8e07c425236 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trng_regs.h index a42ea9173af..07429bf0916 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/uart_regs.h index 712a2b0d0a1..bae46cbc06a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/wdt_regs.h index 473cbcb7a19..d7afec984c7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32662_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/gcc.mk index 33adb5cb291..8a8d63aff94 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.ld b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.ld index ded156441c8..02b4af316b0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.mk b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.mk index 852713eb603..7dfdf3eae18 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_ram.ld index bfad63023b8..60b68da0e0b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_rom.ld index c1ea6fab202..c9cc3038a64 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_scpa.ld b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_scpa.ld index 263c1bb4c4a..f33c6d4ef8c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_scpa.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_scpa.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_sla.ld b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_sla.ld index 32685d0c57d..74af7f8d2df 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_sla.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/max32662_sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/startup_max32662.S b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/startup_max32662.S index d9e527582d2..50f4f003557 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/startup_max32662.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/GCC/startup_max32662.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/header_MAX32662.c b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/header_MAX32662.c index a1ae3e0d8d5..a13c7156735 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/header_MAX32662.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/header_MAX32662.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #define SWAP(x) \ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/heap.c index c1ab743a7b8..98fe990f153 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/system_max32662.c b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/system_max32662.c index 829cd580a3e..3bbbdb15819 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32662/Source/system_max32662.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32662/Source/system_max32662.c @@ -3,7 +3,9 @@ * @brief System-level initialization implementation file */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/adc_regs.h index b91b94d927d..c0afc285168 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aes_key_regs.h index 6bd13fb6e17..5ece4a1e422 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aeskeys_regs.h index 75de7477cc7..ffbb44d59b8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dma_regs.h index d0ea34352de..afd2c43acdc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dvs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dvs_regs.h index 80f56b2aa30..6f9b694e366 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dvs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/dvs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_DVS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/fcr_regs.h index 6af421ac58d..0877032153b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/flc_regs.h index 4b8d381c97a..388e2fb3814 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gcr_regs.h index a3a9c57dba2..3a9ed59ac72 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gpio_regs.h index 237db2bea4a..3dbb9b31fa0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/htmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/htmr_regs.h index 8ad3760e05b..07cf7072297 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/htmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/htmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_HTMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/i2c_regs.h index 08632945795..69a6b1773ab 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/icc_regs.h index 57cdfcbde31..6a01d76c71e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/max32665.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/max32665.h index 1f7bee65b1f..eab6eba61c7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/max32665.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/max32665.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_MAX32665_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/mcr_regs.h index 36f0ebf49fc..c09bfda387c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/owm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/owm_regs.h index e72e34a41af..d915753e598 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/owm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/owm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_OWM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pt_regs.h index 70348a2b079..670d875a716 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/ptg_regs.h index 9fde5909ef1..945096adfdc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pwrseq_regs.h index de7959f6fd5..b91ba4498d6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rpu_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rpu_regs.h index 17572a56046..3c9563124ea 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rpu_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rpu_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_RPU_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rtc_regs.h index 74aa0db9354..2537300d19d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdhc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdhc_regs.h index e16af93ad86..fad879afbc6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdhc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdhc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SDHC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdma_regs.h index 2e8b6bcff09..3f31652e2c4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sdma_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SDMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sema_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sema_regs.h index ebd431e2651..9dd2fba9707 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sema_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sema_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SEMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/simo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/simo_regs.h index 29b8a0fd799..c217df36577 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/simo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/simo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SIMO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sir_regs.h index a98a32876a1..49e1be51a24 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/smon_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/smon_regs.h index 17928c9abca..c79d4df68bb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/smon_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/smon_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SMON_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spi_regs.h index 50c69a3d434..ee6f4d9c65a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_fifo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_fifo_regs.h index b3912c3d75c..5e1a6ca2de7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_fifo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_fifo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SPIXFC_FIFO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_regs.h index a4f1676d1d6..99c7481ca8e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SPIXFC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfm_regs.h index d7433f30e9b..f400acdd72e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixfm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SPIXFM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixr_regs.h index 21215337b7e..364621fe632 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/spixr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SPIXR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/srcc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/srcc_regs.h index d371d803004..28137ecad0f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/srcc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/srcc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SRCC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/system_max32665.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/system_max32665.h index d5ff70ebd96..9a77055c21d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/system_max32665.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/system_max32665.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_SYSTEM_MAX32665_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tmr_regs.h index 8d1abc5d480..31af972a2bc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tpu_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tpu_regs.h index 1caee993a5f..0e7b0f5c667 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tpu_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/tpu_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_TPU_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trimsir_regs.h index 6bb99f3219c..07f6189de4c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trng_regs.h index 8f943cd97f0..a698af87738 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/uart_regs.h index 537a05e1863..87b1b89b91c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/usbhs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/usbhs_regs.h index fd6248f0d69..59f0f6a6d9e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/usbhs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/usbhs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_USBHS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wdt_regs.h index de050ad832b..6790d7dd0a2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wut_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wut_regs.h index 24ead3938ea..09b981cb24b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wut_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Include/wut_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32665_INCLUDE_WUT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/backup_max32665.S b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/backup_max32665.S index 8c33adaa18f..c3856823b3c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/backup_max32665.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/backup_max32665.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/gcc.mk index 33adb5cb291..8a8d63aff94 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld index ea19433c8b5..9ffee3037ea 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.mk b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.mk index 6e6fe81b81b..1ac57fc7f07 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_ram.ld index f33702bf0be..5097e40eadf 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_scpa.ld b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_scpa.ld index c8281745809..427a19f4163 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_scpa.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_scpa.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_sla.ld b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_sla.ld index 2b314804fce..3d02ddc4457 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_sla.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_spix.ld index 01fc6e1ec91..e79571929a4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/max32665_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x00020000 /* 128kB ROM */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/startup_max32665.S b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/startup_max32665.S index fdb25a86897..6711fc9f9ec 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/startup_max32665.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/GCC/startup_max32665.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/header_MAX32665.c b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/header_MAX32665.c index d2393721bce..7a3c19cf367 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/header_MAX32665.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/header_MAX32665.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #define SWAP(x) \ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/heap.c index eb9a633a3bc..19718172ea9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c index 3b2a042080d..955f0cc5c2a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32665/Source/system_max32665.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_key_regs.h index 340685942f4..4c940a6a868 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_regs.h index c94ddd52339..fc5a2be5c57 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aeskeys_regs.h index 162d859fb4c..ccffcea1c09 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/crc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/crc_regs.h index 5edc588fbb7..3ee18690f1b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/crc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/crc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_CRC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/dma_regs.h index df7b0695c01..3c64e78e8aa 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/ecc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/ecc_regs.h index b28dcef9ce1..3e4cd8c8d0a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/ecc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/ecc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_ECC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/fcr_regs.h index 4a085bcf4ea..bf1c80f5b70 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/flc_regs.h index db28450a2e1..bdaab4d1169 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gcr_regs.h index af312f6f1e9..e06c4f17646 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gpio_regs.h index aebffd5a75a..08ef372b174 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2c_regs.h index 838c077079c..782b2e7f0f3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2s_regs.h index ea501db64a6..01ff4a97f50 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/icc_regs.h index 93a5033ca7a..037bc2a228f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/max32670.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/max32670.h index 3785f039aeb..d045eb19153 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/max32670.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/max32670.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_MAX32670_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/mcr_regs.h index 9d7ffd7df2e..643716a588e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/pwrseq_regs.h index 5ce17cc0506..ff3e25761c9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/rtc_regs.h index ce5a87889cc..71c0f4da18b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/sir_regs.h index 1ac5e8fbadd..dca759f5fbf 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/spi_regs.h index 7d0572a1405..35a1a24a649 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/system_max32670.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/system_max32670.h index 83cc40401f9..8034ccdfef9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/system_max32670.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/system_max32670.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_SYSTEM_MAX32670_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/tmr_regs.h index b15c8e0bf92..2139e3b201f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/trng_regs.h index 96f26fe55b4..3be062cd66d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/uart_regs.h index 5843b39b207..c5f7b0a2c1c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/wdt_regs.h index b324aa35bc6..ebf4b67d26a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32670_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/startup_max32670.s index 954b8f411da..243817fb276 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + ; To map FreeRTOS function names to their CMSIS equivalents add following lines to FreeRTOSConfig.h ; #define vPortSVCHandler SVC_Handler diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/gcc.mk index 5778f8c1a32..3542aa848d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.ld index cab69cba54b..c08db0f8ff1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.mk b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.mk index 57060e2741c..26d7964ab6e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator.ld index e1ddb622189..670e5a06420 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_ram.ld index 5387c11bd89..7726595c6f2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_spix.ld index ccfcc789a08..c719294196b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_xip.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_xip.ld index 2709568bb13..a39f3fb9509 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_xip.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_emulator_xip.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_ram.ld index e73addbe25b..8459d5a4607 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_rom.ld index 3af55425b0b..de52392fad9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_spix.ld index 14edb74dfdf..29c341dbb3d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/max32670_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x00020000 /* 128kB ROM */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/startup_max32670.S b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/startup_max32670.S index d49b3f03c92..78c6dc0e005 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/startup_max32670.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/GCC/startup_max32670.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/IAR/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/IAR/startup_max32670.s index 6f959d87a00..af67b964417 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/IAR/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/IAR/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + MODULE ?cstartup ;; Forward declaration of sections. diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/heap.c index c1ab743a7b8..98fe990f153 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/system_max32670.c b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/system_max32670.c index 29397ae0d3e..b1ebf4141b2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32670/Source/system_max32670.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32670/Source/system_max32670.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/adc_regs.h index c09bcf9426d..1f83d10020a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_key_regs.h index ee563f43d0c..2888600084b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_regs.h index e2383b74f52..47cab221e6b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aeskeys_regs.h index ef3a5e11c03..a3dc6740507 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/aeskeys_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ctb_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ctb_regs.h index b6e50881d56..48cad59645c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ctb_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ctb_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_CTB_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/dma_regs.h index de14d480ae0..fdedd8fa681 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ecc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ecc_regs.h index a3e302165da..a2821229c7a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ecc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/ecc_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _ECC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/fcr_regs.h index d8664dc9254..f2e5f719abc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/flc_regs.h index 170b07b8c9f..e93121a7e5d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gcr_regs.h index 957ff778896..e7a488ffa85 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gpio_regs.h index a975cda805e..dd3165d40c9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2c_regs.h index b7d627855ed..fc292877782 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2s_regs.h index 1fa1c1f2f30..5de93f2de4d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/icc_regs.h index ca67f1fe8cb..995a9310160 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/max32672.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/max32672.h index b111e9d80a3..db59a34573e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/max32672.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/max32672.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_MAX32672_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/mcr_regs.h index 0d7dc4c5fcd..31a7d3b916e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/pwrseq_regs.h index 1ddc7466cc2..296df6df9e9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/qdec_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/qdec_regs.h index 5eb5435950e..29d9281d688 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/qdec_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/qdec_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_QDEC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/rtc_regs.h index 39b2b15147c..fab2ca4248b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sir_regs.h index 25f858a733f..a23f86a9f85 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/spi_regs.h index c3bc99dac5d..abc0cb85510 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sys_aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sys_aeskeys_regs.h index 382f87906a5..f2e87640b00 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sys_aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/sys_aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_SYS_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/system_max32672.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/system_max32672.h index 5a11142bd61..7728b164528 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/system_max32672.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/system_max32672.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_SYSTEM_MAX32672_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/tmr_regs.h index dd75bdc3ac9..e52bcd05e26 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trimsir_regs.h index 11d1b51b411..c5c47c542b5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trng_regs.h index 6fbe7018234..40a13ad19ee 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/uart_regs.h index a895d371878..ad4e0026f83 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/usr_aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/usr_aeskeys_regs.h index 7d119bffcaa..241b0fc5b76 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/usr_aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/usr_aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_USR_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/wdt_regs.h index e48b86482ce..2bcfa4a9134 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32672_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/startup_max32670.s index 17441a952e4..cf1dd5f2539 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + Stack_Size EQU 0x00001000 diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/gcc.mk index b1dce98c897..3a30c1f9302 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.ld b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.ld index 3682afb47cd..2d058cebf15 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.mk b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.mk index f93548c7ee7..b5f220ea622 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator.ld b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator.ld index 104e7e95cad..193b1715d65 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator_ram.ld index d215483119f..139edb11f3e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_emulator_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_ram.ld index 66f2d67c537..33149762e91 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_rom.ld index e5187406d74..2fb09a89ad8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_scpa.ld b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_scpa.ld index d9726c4c0c9..dc65d6c55a8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_scpa.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_scpa.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_sla.ld b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_sla.ld index bcc70734e6d..826e3ca9321 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_sla.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/max32672_sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/startup_max32672.S b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/startup_max32672.S index 80ddf9003e4..1c5351b131c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/startup_max32672.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/GCC/startup_max32672.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/IAR/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/IAR/startup_max32670.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/IAR/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/IAR/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/header_MAX32672.c b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/header_MAX32672.c index 1088b85ad4f..2f7e7e72ec6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/header_MAX32672.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/header_MAX32672.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #define SWAP(x) \ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/heap.c index c1ab743a7b8..98fe990f153 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/system_max32672.c b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/system_max32672.c index 2981271a76b..5577c264c0d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32672/Source/system_max32672.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32672/Source/system_max32672.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_key_regs.h index 7cf4213bd3b..388ce3489b2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_regs.h index 5a3344aaef6..75d896424cd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aeskeys_regs.h index e845df404c7..d6eb7f3dab6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_one_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_one_regs.h index 58694757a8c..c44465c4617 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_one_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_one_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_AFE_ADC_ONE_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_zero_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_zero_regs.h index f2c4546115c..6dd18c7727c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_zero_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_adc_zero_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_AFE_ADC_ZERO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_dac_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_dac_regs.h index 15bd43d2917..974d184ecdf 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_dac_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_dac_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_AFE_DAC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_hart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_hart_regs.h index 4fc2a87997f..df05f87d7a8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_hart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/afe_hart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_AFE_HART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/crc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/crc_regs.h index 6d094542112..e2577caecbd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/crc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/crc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_CRC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/dma_regs.h index c4198496cd4..c5b8f0f59f8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/ecc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/ecc_regs.h index abb72a0075c..f353006142c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/ecc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/ecc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_ECC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/fcr_regs.h index 428153be5c5..43738c46ae3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/flc_regs.h index a8b5654f684..74707dc3106 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gcr_regs.h index 42f4bb7cf28..4770cf6f3f5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gpio_regs.h index fa748640e9c..69099f8cda1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2c_regs.h index d445c751135..a695bed917c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2s_regs.h index 09797cfe02c..a745c8708f8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/icc_regs.h index 2deda43be2a..9d1a0615be2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/max32675.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/max32675.h index 98f080c1d7b..d00deca6fb2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/max32675.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/max32675.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_MAX32675_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/mcr_regs.h index 35540a6d33b..29570e49e68 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/pwrseq_regs.h index 0fdf94d338e..e5ed9dd859f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/rtc_regs.h index f18428b0527..41033fcc41a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/sir_regs.h index e58a31af5ef..be22af6efa2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/spi_regs.h index bcef21996bd..b0420706cd5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/system_max32675.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/system_max32675.h index 6954ca1fa8b..dbc3e3ecb2a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/system_max32675.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/system_max32675.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_SYSTEM_MAX32675_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/tmr_regs.h index dff3181f3e3..760e6bb8528 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/trng_regs.h index ffc3ff17d05..edbb990144b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/uart_regs.h index 8f5d70d3307..32d210ac2b6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/wdt_regs.h index 007795eabc8..23443cfa21a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32675_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32670.s index 17441a952e4..cf1dd5f2539 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + Stack_Size EQU 0x00001000 diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32675.s b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32675.s index 57646b56aad..a47d7804925 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32675.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/startup_max32675.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + ; To map FreeRTOS function names to their CMSIS equivalents add following lines to FreeRTOSConfig.h ; #define vPortSVCHandler SVC_Handler diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/gcc.mk index 5778f8c1a32..3542aa848d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.ld index b97b0564f4d..097fa4b957b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.mk b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.mk index 57060e2741c..26d7964ab6e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator.ld index e1ddb622189..670e5a06420 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_ram.ld index 5387c11bd89..7726595c6f2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_spix.ld index ccfcc789a08..c719294196b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_xip.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_xip.ld index 2709568bb13..a39f3fb9509 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_xip.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_emulator_xip.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_ram.ld index e73addbe25b..8459d5a4607 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_rom.ld index 3af55425b0b..de52392fad9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_spix.ld index 14edb74dfdf..29c341dbb3d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/max32675_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x00020000 /* 128kB ROM */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/startup_max32675.S b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/startup_max32675.S index e72483d525f..a60d7b37c6e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/startup_max32675.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/GCC/startup_max32675.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32670.s b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32670.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32670.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32670.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32675.s b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32675.s index 70ea497f51d..89fa6e7c328 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32675.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/IAR/startup_max32675.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + ;; ;; Default interrupt handlers. ;; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/heap.c index c1ab743a7b8..98fe990f153 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/system_max32675.c b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/system_max32675.c index 3f5ab445538..ec8250ffa3e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32675/Source/system_max32675.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32675/Source/system_max32675.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/adc_regs.h index dd19cfbef88..3a65593e8d4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_key_regs.h index 4b8d70e1a1e..ad77fab9bf1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_regs.h index d871b28a50c..bd5d48cae0f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aeskeys_regs.h index 1cc7463139e..064acc0aebd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_one_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_one_regs.h index 3b25730be6d..161bb830a08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_one_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_one_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_AFE_ADC_ONE_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_zero_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_zero_regs.h index 4f61c218626..79519855a7c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_zero_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_adc_zero_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_AFE_ADC_ZERO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_dac_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_dac_regs.h index 60df73f68b7..108327b162e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_dac_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_dac_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_AFE_DAC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_hart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_hart_regs.h index fdb7fe1f286..107327f0562 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_hart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/afe_hart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_AFE_HART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/crc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/crc_regs.h index 66c5401d2d8..5f2ed499c12 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/crc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/crc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_CRC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dma_regs.h index 5a1d84b72f2..96027fcc333 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dvs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dvs_regs.h index 0d6ea15a3d6..d0b69550b31 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dvs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/dvs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_DVS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/fcr_regs.h index c407816bd88..5cdf4068eeb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/flc_regs.h index d699443192b..b19b946b08b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcfr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcfr_regs.h index 26eafa88b0f..ef9d72eac62 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcfr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcfr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_GCFR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcr_regs.h index b1c8ace8332..46986961c10 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gpio_regs.h index ab94cd9aab4..f55e6a31b9d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2c_regs.h index e5b61e05aee..ecb0174f6f6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2s_regs.h index 8ce0026b14c..3bfeddabb00 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/icc_regs.h index 49aad4bbefb..e4ec063c266 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpcmp_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpcmp_regs.h index eb50246be3c..2ea38b7ea96 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpcmp_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpcmp_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_LPCMP_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpgcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpgcr_regs.h index 3bacdd55398..31225581f05 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpgcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/lpgcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_LPGCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/max32680.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/max32680.h index 03406f7bdfc..5c5ca264399 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/max32680.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/max32680.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_MAX32680_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/mcr_regs.h index 75a8197b6ee..9ff9cf4c5a9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/owm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/owm_regs.h index 0c2f3e5303e..15c6159108e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/owm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/owm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_OWM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pt_regs.h index 21e19ca87ae..e79e21db86e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/ptg_regs.h index 86b2f998698..c0dff853a59 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pwrseq_regs.h index 0d1017e6ed5..bd116cb1e8d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/rtc_regs.h index 1cb7842a2df..2ef1b19b670 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sema_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sema_regs.h index 905b68d8109..fa2e14652f7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sema_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sema_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_SEMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/simo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/simo_regs.h index ea034d176f8..2bf243d725a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/simo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/simo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_SIMO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sir_regs.h index 9c5b0665d38..ee891825082 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/spi_regs.h index 14fcf6bb9f1..9bf744209bf 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/system_max32680.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/system_max32680.h index 19181e3079f..0aabbea9bb7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/system_max32680.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/system_max32680.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_SYSTEM_MAX32680_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/tmr_regs.h index a8a3ec4194a..33dd2873fdd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trimsir_regs.h index 42e3d74a4a9..044a3dd472f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trng_regs.h index 09c0451f3fd..2049c5d15ba 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/uart_regs.h index a7d81a28aa6..f544ee1d00d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wdt_regs.h index d990f43617e..e864f31b6c5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wut_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wut_regs.h index 07dd07dcc7c..fab73804636 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wut_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Include/wut_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32680_INCLUDE_WUT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/startup_max32680.s b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/startup_max32680.s index 17441a952e4..cf1dd5f2539 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/startup_max32680.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/startup_max32680.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + Stack_Size EQU 0x00001000 diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc.mk index 5778f8c1a32..3542aa848d7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc_riscv.mk b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc_riscv.mk index 1af1fbf491c..e6fe2e82bf1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc_riscv.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/gcc_riscv.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_RISCV_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.ld index a015def2691..064267aba53 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Make room for PAL_NVM_DB */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.mk b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.mk index 96a899eac01..71a29a20b5c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_arm.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_arm.ld index bf0c5b45862..2c26d02b5fc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_arm.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_arm.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __FlashStart = 0x10000000; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator.ld index 6c77231e629..e9270081611 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_ram.ld index cb9ad91949f..55907b471ff 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_spix.ld index ccfcc789a08..c719294196b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_xip.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_xip.ld index 2709568bb13..a39f3fb9509 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_xip.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_emulator_xip.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_ram.ld index df03d96104c..94ef8aa6577 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_riscv.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_riscv.ld index 2f6cfae6aa5..b30f9e7fae9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_riscv.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_riscv.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ INCLUDE "buildrv/common_riscv.ld" /* Auto-generated by Makefile */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rom.ld index 03a3e155247..b79df08d28a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rv.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rv.ld index 87bf1bee114..d8af46740d5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rv.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_rv.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ FLASH_MEM_SIZE = _RISCV_FLASH_SIZE - _PAL_NVM_SIZE; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_spix.ld index 0b16e882b12..0ad2038d86b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/max32680_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x00020000 /* 128kB ROM */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/startup_max32680.S b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/startup_max32680.S index 8b80a5602ba..db164fc00ea 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/startup_max32680.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/GCC/startup_max32680.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/IAR/startup_max32680.s b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/IAR/startup_max32680.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/IAR/startup_max32680.s +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/IAR/startup_max32680.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/heap.c index eb9a633a3bc..19718172ea9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_max32680.c b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_max32680.c index 2fdd2e7e86a..9d380865d15 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_max32680.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_max32680.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_riscv_max32680.c b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_riscv_max32680.c index 2f750f252dc..6796536381d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_riscv_max32680.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32680/Source/system_riscv_max32680.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/adc_regs.h index 33202ed37e9..bf311f32a84 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aes_key_regs.h index b5c2ebd483e..7dadcdc8184 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aeskeys_regs.h index 6a962470aba..34b83ee82d0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/can_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/can_regs.h index f181a6aa8a8..2916b429211 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/can_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/can_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_CAN_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ctb_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ctb_regs.h index b0abb2423bf..8a41c7b9c42 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ctb_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ctb_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_CTB_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/dma_regs.h index 4130eb7870e..fd5e502ada4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/emcc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/emcc_regs.h index 0dd7f471456..639f6653477 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/emcc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/emcc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_EMCC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/fcr_regs.h index fc7651fce31..eadb7521b88 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/flc_regs.h index 9a05a29ebe2..f328e7557aa 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcfr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcfr_regs.h index faddbcab4b1..2452111876f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcfr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcfr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_GCFR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcr_regs.h index f7bfbf94a65..442b9c856be 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gpio_regs.h index 93c9c4db84f..4db1b325b69 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/hpb_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/hpb_regs.h index f672dad0922..1a7d211c28f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/hpb_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/hpb_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_HPB_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2c_regs.h index 53287044769..fe6137b778d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2s_regs.h index 600e93f4425..2354c390a91 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/icc_regs.h index ef831f9bc5e..d1b1f5bf354 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpcmp_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpcmp_regs.h index 2f03f7b401a..d3ba38c5535 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpcmp_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpcmp_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_LPCMP_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpgcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpgcr_regs.h index f67a159d5e2..a0584716173 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpgcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/lpgcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_LPGCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.h index 267682e93d8..e906771cb5d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_MAX32690_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.svd b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.svd index d84da01b417..0846a01a482 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.svd +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/max32690.svd @@ -16256,7 +16256,7 @@ signal(s) on transition(s) from low to high or high to low when PM.USBWKEN is se SPI1 SPI peripheral. 1 - 0x40047000 + 0x400BE000 SPI1 SPI1 IRQ @@ -16267,7 +16267,7 @@ signal(s) on transition(s) from low to high or high to low when PM.USBWKEN is se SPI2 SPI peripheral. 2 - 0x40048000 + 0x400BE400 SPI2 SPI2 IRQ @@ -16275,28 +16275,6 @@ signal(s) on transition(s) from low to high or high to low when PM.USBWKEN is se - - SPI3 - SPI peripheral. 3 - 0x400BE000 - - SPI3 - SPI3 IRQ - 56 - - - - - SPI4 - SPI peripheral. 4 - 0x400BE400 - - SPI4 - SPI4 IRQ - 105 - - - SPIXR SPIXR peripheral. diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/mcr_regs.h index 14230b7dc29..243ad1e2b6d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/owm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/owm_regs.h index c959015b711..2b124ec0a25 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/owm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/owm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_OWM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pt_regs.h index b32e2826ce7..27c2834d5de 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ptg_regs.h index def74f693c4..b69e32519bc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pwrseq_regs.h index 9be2ffe1cbf..c129aa1d3f1 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/rtc_regs.h index 095235b445d..027089096a0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sema_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sema_regs.h index 8478d8c550c..3366ddc841d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sema_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sema_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SEMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sir_regs.h index af1d5b0c99b..be6af8431a7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/smon_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/smon_regs.h index 2fc1146f7a1..5ba90daa4dd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/smon_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/smon_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SMON_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spi_regs.h index f7b224e9e7f..b75ddc23321 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_fifo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_fifo_regs.h index 27b73c61b26..2a2b50c74c7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_fifo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_fifo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SPIXFC_FIFO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_regs.h index 3ed660afd2a..3ae5e40d45d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SPIXFC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfm_regs.h index 06bf7a6a642..a2178477ec4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixfm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SPIXFM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixr_regs.h index 08dd7425270..17b4ec89526 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/spixr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SPIXR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/system_max32690.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/system_max32690.h index a231bd03cac..679a6ec00b3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/system_max32690.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/system_max32690.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_SYSTEM_MAX32690_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/tmr_regs.h index 861ec5aa7ec..8cde67ca19b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trimsir_regs.h index 999017ccd09..00f55816f23 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trng_regs.h index b0132b4ada8..8b44583d9e2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/uart_regs.h index f6df6ac0cde..3f433f9be85 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/usbhs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/usbhs_regs.h index 5574d5df8a0..dc61cc3411c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/usbhs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/usbhs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_USBHS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wdt_regs.h index 9614834eb11..deb86dbd849 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wut_regs.h b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wut_regs.h index 8a44ee2d044..01622af0da4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wut_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Include/wut_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX32690_INCLUDE_WUT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc.mk index 33adb5cb291..8a8d63aff94 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc_riscv.mk b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc_riscv.mk index 1f95c591f25..552e0c85643 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc_riscv.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/gcc_riscv.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_RISCV_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.ld index 84dd91f3c62..b41ebfc83f4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ ARM_FLASH_ORIGIN = _FLASH_ORIGIN; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.mk b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.mk index 9a6c581650b..61b165da9e2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator.ld index 539b88e681c..c7cf566508a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_ram.ld index cb9ad91949f..55907b471ff 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_spix.ld index ccfcc789a08..c719294196b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_xip.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_xip.ld index 2709568bb13..a39f3fb9509 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_xip.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_emulator_xip.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_ram.ld index 743285b5bdc..12e13b1eec7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_riscv.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_riscv.ld index 5d843d12f98..8e5762aace3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_riscv.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_riscv.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ FLASH_MEM_SIZE = _RISCV_FLASH_SIZE - _PAL_NVM_SIZE; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_rom.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_rom.ld index 5ecd54819c3..c02cb4bab9c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_rom.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_rom.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_scpa.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_scpa.ld index 1664710e884..f4504219d6d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_scpa.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_scpa.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_sla.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_sla.ld index 00da87b073a..6f2a3570ccc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_sla.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_sla.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ ARM_SLA_HEADER_ORIGIN = _FLASH_ORIGIN; ARM_SLA_HEADER_SIZE = 0x200; diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_spix.ld b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_spix.ld index e8ad6db53a2..615c5419ce2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_spix.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/max32690_spix.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x00020000 /* 128kB ROM */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/startup_max32690.S b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/startup_max32690.S index f87f6e11291..c9c260427da 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/startup_max32690.S +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/GCC/startup_max32690.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/heap.c index eb9a633a3bc..19718172ea9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_max32690.c b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_max32690.c index fe925f85e7b..a93b5209604 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_max32690.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_max32690.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_riscv_max32690.c b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_riscv_max32690.c index fa39e938364..01bfba98eeb 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_riscv_max32690.c +++ b/Libraries/CMSIS/Device/Maxim/MAX32690/Source/system_riscv_max32690.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/adc_regs.h index 005f071ba13..076090c1644 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_key_regs.h index 266e2821bbb..b5d08cdb6dd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_regs.h index 08d90c44001..931cc01b527 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aeskeys_regs.h index 9801d7332b1..ffcdf3c85ba 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/bbfc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/bbfc_regs.h index eab2a9f09b5..b5a6106ee73 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/bbfc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/bbfc_regs.h @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_BBFC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/cameraif_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/cameraif_regs.h index 7381862ce86..f5a51eee126 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/cameraif_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/cameraif_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_CAMERAIF_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/crc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/crc_regs.h index 7032f168769..f4af6ba571e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/crc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/crc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_CRC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dma_regs.h index 652849146a6..1f91af160c9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dvs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dvs_regs.h index db7b4e3345f..c45365aedde 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dvs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/dvs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_DVS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/fcr_regs.h index 5e5a4a8f299..3047530c341 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/flc_regs.h index 0b20d12d60d..a409c773686 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcfr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcfr_regs.h index 77cd1b410d7..4c1f618d1ca 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcfr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcfr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_GCFR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcr_regs.h index 7331029ac8b..ba4b2c222e8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gpio_regs.h index ba0c233023e..eb75f747d64 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2c_regs.h index e562242ba8b..d41cd9e20dd 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2s_regs.h index 2f333470d5a..07687119185 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/icc_regs.h index 821a12b432d..36a7725fa7d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpcmp_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpcmp_regs.h index 7528093269c..9f6b0b822b9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpcmp_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpcmp_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_LPCMP_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpgcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpgcr_regs.h index b4c24665dbb..7112c637024 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpgcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/lpgcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_LPGCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/max78000.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/max78000.h index 0e57c95d43e..e63551d6f1a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/max78000.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/max78000.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_MAX78000_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/mcr_regs.h index db9086054bd..ec6a05d352e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/owm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/owm_regs.h index 547fd4e1b65..a7d3c3b85e2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/owm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/owm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_OWM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pt_regs.h index b7b17ebd6bf..d14ea029864 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/ptg_regs.h index c752ed692f0..29ad8370e62 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pwrseq_regs.h index e3f3eae0142..672987a43f4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/rtc_regs.h index 54cac0e187f..0ea94d43aff 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sema_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sema_regs.h index fe840a93652..46798cc3e05 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sema_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sema_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_SEMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/simo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/simo_regs.h index ce1e8163623..4c71d2945f3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/simo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/simo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_SIMO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sir_regs.h index e32f9bf92dd..1e9b1204bc3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/spi_regs.h index a0f26a94a66..a2446345c18 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/system_max78000.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/system_max78000.h index d006fbe73cc..fb18ca777a0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/system_max78000.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/system_max78000.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_SYSTEM_MAX78000_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/tmr_regs.h index c529ea33f83..ba820ffec7a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trimsir_regs.h index a2c1a46fd9e..c41aee1332f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trng_regs.h index d79c059f1dd..4c492cbf638 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/uart_regs.h index 709f6375a37..da8d597224a 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wdt_regs.h index 2c969a8413c..349431b876c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wut_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wut_regs.h index 4bbefa05025..e3fec1a32ab 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wut_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Include/wut_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78000_INCLUDE_WUT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/startup_max32655.s b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/startup_max32655.s index 17441a952e4..0021ba59e40 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/startup_max32655.s +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/startup_max32655.s @@ -1,5 +1,22 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc.mk index 33adb5cb291..8a8d63aff94 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc_riscv.mk b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc_riscv.mk index b460d548b9d..ced3a59aea8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc_riscv.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/gcc_riscv.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_RISCV_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.ld b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.ld index 857f8aba1ee..225791b040c 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.mk b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.mk index ca45e9d3ea1..ce1e6a2cc71 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" # If CMSIS_ROOT is not specified, this Makefile will calculate CMSIS_ROOT relative to itself. diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_arm.ld b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_arm.ld index bf0c5b45862..2c26d02b5fc 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_arm.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_arm.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __FlashStart = 0x10000000; diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_ram.ld index df03d96104c..94ef8aa6577 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_riscv.ld b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_riscv.ld index 2f6cfae6aa5..b30f9e7fae9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_riscv.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/max78000_riscv.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ INCLUDE "buildrv/common_riscv.ld" /* Auto-generated by Makefile */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/startup_max78000.S b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/startup_max78000.S index 36126514516..294081038b0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/startup_max78000.S +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/GCC/startup_max78000.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/IAR/startup_max32655.s b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/IAR/startup_max32655.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/IAR/startup_max32655.s +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/IAR/startup_max32655.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/heap.c index eb9a633a3bc..19718172ea9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_max78000.c b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_max78000.c index f79546f3afa..b787bf7ec99 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_max78000.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_max78000.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_riscv_max78000.c b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_riscv_max78000.c index 44d7e92ceaa..7f4ccc2a409 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_riscv_max78000.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78000/Source/system_riscv_max78000.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/adc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/adc_regs.h index a782a686844..e9692690505 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/adc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/adc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_ADC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_key_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_key_regs.h index a8ed261cd32..fcc36c42db7 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_key_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_key_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_AES_KEY_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_regs.h index 5aea85c82cd..74a3aa2e216 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aes_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_AES_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aeskeys_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aeskeys_regs.h index 23328bc6be2..2716fefc174 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aeskeys_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/aeskeys_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_AESKEYS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/cameraif_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/cameraif_regs.h index 8ee2a2faf26..8fbbe3a3460 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/cameraif_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/cameraif_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_CAMERAIF_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/crc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/crc_regs.h index 8fa1b5c47fb..6cf343a2984 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/crc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/crc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_CRC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/csi2_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/csi2_regs.h index 87992e8368a..1ca20e62362 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/csi2_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/csi2_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_CSI2_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dma_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dma_regs.h index 45770a009f2..90b5d9b8ecf 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dma_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dma_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_DMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dvs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dvs_regs.h index 6b8491b5488..b054cf13709 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dvs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/dvs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_DVS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/fcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/fcr_regs.h index 450fa6030f0..777f82abe91 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/fcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/fcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_FCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/flc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/flc_regs.h index 6cb1660bffa..6421dfd17d5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/flc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/flc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_FLC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcfr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcfr_regs.h index 7c4d449424c..a0a57da7c6f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcfr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcfr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_GCFR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcr_regs.h index 7885cffcecc..dfdc2ce0e5e 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_GCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gpio_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gpio_regs.h index 94a49dde361..e617c0379c8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gpio_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/gpio_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_GPIO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2c_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2c_regs.h index a99c7af780b..9f609b218a9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2c_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2c_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_I2C_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2s_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2s_regs.h index ac4f9e021cc..d5eacd44399 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2s_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/i2s_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_I2S_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/icc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/icc_regs.h index 803df6b0681..2412d55dbce 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/icc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/icc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_ICC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpcmp_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpcmp_regs.h index 608f4aa44d1..64107f63445 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpcmp_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpcmp_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_LPCMP_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpgcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpgcr_regs.h index 8c4f115a8d4..187afdc2774 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpgcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/lpgcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_LPGCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/max78002.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/max78002.h index 675d3ea2534..a43ae455b80 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/max78002.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/max78002.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_MAX78002_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/mcr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/mcr_regs.h index 210f7da3139..26499ef2742 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/mcr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/mcr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_MCR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/owm_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/owm_regs.h index a7e83f15a94..f6712101d9d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/owm_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/owm_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_OWM_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pt_regs.h index 168452fb271..7521d3a6e9d 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_PT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/ptg_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/ptg_regs.h index 4152f974da3..6d67dd259a4 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/ptg_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/ptg_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_PTG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pwrseq_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pwrseq_regs.h index 8356082b2b2..21d6e485601 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pwrseq_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/pwrseq_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_PWRSEQ_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/rtc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/rtc_regs.h index 3c2223252f7..5642f7f6894 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/rtc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/rtc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_RTC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sdhc_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sdhc_regs.h index 08ec66d087e..adf654e37b9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sdhc_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sdhc_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SDHC_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sema_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sema_regs.h index 0ef3531eab1..ce992e600c5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sema_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sema_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SEMA_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/simo_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/simo_regs.h index c3075ab4824..47749c9eb11 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/simo_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/simo_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SIMO_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sir_regs.h index 20904d1ebaa..2da02d01f38 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/sir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/spi_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/spi_regs.h index 3bae949c795..01737836c98 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/spi_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/spi_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SPI_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/system_max78002.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/system_max78002.h index 4cab96be5d1..de8562d24d5 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/system_max78002.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/system_max78002.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_SYSTEM_MAX78002_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/tmr_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/tmr_regs.h index 342512606c9..e493b5b4958 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/tmr_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/tmr_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_TMR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trimsir_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trimsir_regs.h index 25970a24611..acf8e2941c2 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trimsir_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trimsir_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_TRIMSIR_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trng_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trng_regs.h index 32ee4257195..be653d0b9b0 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trng_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/trng_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_TRNG_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/uart_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/uart_regs.h index 85d311e88ff..c6d992e0a88 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/uart_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/uart_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_UART_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/usbhs_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/usbhs_regs.h index 6c7bbdfd65a..45f890ab477 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/usbhs_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/usbhs_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_USBHS_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wdt_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wdt_regs.h index 7abd2da39a3..1a34c5e9c4f 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wdt_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wdt_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_WDT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wut_regs.h b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wut_regs.h index 67f4984b0d8..a6fc4fdfc56 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wut_regs.h +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Include/wut_regs.h @@ -6,24 +6,9 @@ */ /****************************************************************************** - * - * Copyright 2023 Analog Devices, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** * * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -53,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_DEVICE_MAXIM_MAX78002_INCLUDE_WUT_REGS_H_ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/startup_max32655.s b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/startup_max32655.s index 17441a952e4..cf1dd5f2539 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/startup_max32655.s +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/startup_max32655.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + Stack_Size EQU 0x00001000 diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/sub_main.c b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/sub_main.c index 499c0a41af9..d5fe31e499b 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/sub_main.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/ARM/sub_main.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ extern void SystemInit(void); diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc.mk b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc.mk index 33adb5cb291..8a8d63aff94 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc_riscv.mk b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc_riscv.mk index b460d548b9d..ced3a59aea8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc_riscv.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/gcc_riscv.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## OLD_GCC_RISCV_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.ld b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.ld index 8715e67aec4..7fa3c3fecb8 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.mk b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.mk index 047fa38b34a..7cf5a049327 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.mk +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(CMSIS_ROOT)" "" $(error CMSIS_ROOT must be specified) diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_arm.ld b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_arm.ld index 908f88c2802..85d807c9ce3 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_arm.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_arm.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ __FlashStart = 0x10000000; diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_ram.ld b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_ram.ld index 05246d3844f..c0f6969da50 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_ram.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_ram.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ MEMORY { diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_riscv.ld b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_riscv.ld index 88769802499..4655f56f032 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_riscv.ld +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/max78002_riscv.ld @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ INCLUDE "buildrv/common_riscv.ld" /* Auto-generated by Makefile */ diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/startup_max78002.S b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/startup_max78002.S index 138f8be4119..98e2a5a8105 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/startup_max78002.S +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/GCC/startup_max78002.S @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ .syntax unified diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/IAR/startup_max32655.s b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/IAR/startup_max32655.s index 16522e5f233..b71d81add08 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/IAR/startup_max32655.s +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/IAR/startup_max32655.s @@ -1,5 +1,7 @@ ;------------------------------------------------------------------------------ -; Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +; +; Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. +; (now owned by Analog Devices, Inc.) ; ; Permission is hereby granted, free of charge, to any person obtaining a ; copy of this software and associated documentation files (the "Software"), @@ -30,6 +32,23 @@ ; ownership rights. ; ;------------------------------------------------------------------------------ +; +; Copyright 2023 Analog Devices, Inc. +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;------------------------------------------------------------------------------ + DCD Fake17_IRQHandler ; 17:01 -- No IRQ assignments yet */ DCD Fake18_IRQHandler ; 18:01 -- No IRQ assignments yet */ ; Continue this pattern when vectors are eventually assigned by hardware diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/heap.c b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/heap.c index eb9a633a3bc..19718172ea9 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/heap.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/heap.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_max78002.c b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_max78002.c index b97383547cf..91535dbedd6 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_max78002.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_max78002.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_riscv_max78002.c b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_riscv_max78002.c index 9bd8e0f9d1d..f1c8c4341fe 100644 --- a/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_riscv_max78002.c +++ b/Libraries/CMSIS/Device/Maxim/MAX78002/Source/system_riscv_max78002.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/CMSIS/Include/core_rv32.h b/Libraries/CMSIS/Include/core_rv32.h index d91f5e86d1f..9af6b4ff4b8 100644 --- a/Libraries/CMSIS/Include/core_rv32.h +++ b/Libraries/CMSIS/Include/core_rv32.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2022 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_CMSIS_INCLUDE_CORE_RV32_H_ diff --git a/Libraries/Cordio/ble-host/sources/stack/dm/dm_adv_leg.c b/Libraries/Cordio/ble-host/sources/stack/dm/dm_adv_leg.c index 8774e7d396e..a03c16ddebd 100644 --- a/Libraries/Cordio/ble-host/sources/stack/dm/dm_adv_leg.c +++ b/Libraries/Cordio/ble-host/sources/stack/dm/dm_adv_leg.c @@ -7,6 +7,8 @@ * Copyright (c) 2016-2018 Arm Ltd. All Rights Reserved. * * Copyright (c) 2019 Packetcraft, Inc. + * + * Partial Copyright (c) 2023 Analog Devices, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Libraries/Cordio/platform/targets/maxim/build/cordio_lib.mk b/Libraries/Cordio/platform/targets/maxim/build/cordio_lib.mk index 15aeee85fb3..fc5111210ad 100644 --- a/Libraries/Cordio/platform/targets/maxim/build/cordio_lib.mk +++ b/Libraries/Cordio/platform/targets/maxim/build/cordio_lib.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/Cordio/platform/targets/maxim/build/libCordio.mk b/Libraries/Cordio/platform/targets/maxim/build/libCordio.mk index 45e9f149076..37d84cec4be 100644 --- a/Libraries/Cordio/platform/targets/maxim/build/libCordio.mk +++ b/Libraries/Cordio/platform/targets/maxim/build/libCordio.mk @@ -32,6 +32,22 @@ # ownership rights. # ############################################################################### + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file PROJECT_NAME=cordio diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_btn.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_btn.c index c4cbb255502..3330ea7e71d 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_btn.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_btn.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_cfg.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_cfg.c index 456821dd5e0..6e8ae59cc0e 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_cfg.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_cfg.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_codec.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_codec.c index 2d598ca4634..8e4023b3802 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_codec.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_codec.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_crypto.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_crypto.c index a86316ece48..381011f1364 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_crypto.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_crypto.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_flash.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_flash.c index 9a545e10049..b481c8b3e09 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_flash.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_flash.c @@ -16,6 +16,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_i2s.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_i2s.c index 141070c777d..a7238a83e7f 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_i2s.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_i2s.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_led.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_led.c index c60cc2581c2..5a23a616a2f 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_led.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_led.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_rtc.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_rtc.c index a91bb908b7f..08b5fcb7e95 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_rtc.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_rtc.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_sys.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_sys.c index 5ff0eadaa56..a2c9dc73773 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_sys.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_sys.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ #include diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_timer.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_timer.c index d132732b4a9..784eb2290b3 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_timer.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_timer.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_twi.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_twi.c index 357ff8323db..43c6fe7120f 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_twi.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_twi.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_uart.c b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_uart.c index 8b384c9299c..1335481b843 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_uart.c +++ b/Libraries/Cordio/platform/targets/maxim/max32655/sources/pal_uart.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_btn.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_btn.c index c4cbb255502..3330ea7e71d 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_btn.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_btn.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_cfg.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_cfg.c index 3411e185863..371c644d3bc 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_cfg.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_cfg.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_codec.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_codec.c index 2d598ca4634..8e4023b3802 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_codec.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_codec.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_crypto.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_crypto.c index 957f49d98b2..ad99963badf 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_crypto.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_crypto.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_flash.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_flash.c index af68446d663..e5091bb597c 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_flash.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_flash.c @@ -16,6 +16,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_i2s.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_i2s.c index 141070c777d..a7238a83e7f 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_i2s.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_i2s.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_led.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_led.c index 7a3641db088..2573907b222 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_led.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_led.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_rtc.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_rtc.c index 32b5191bbff..6fd97885be9 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_rtc.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_rtc.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_sys.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_sys.c index 4b0a1527654..7e6f722bb1f 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_sys.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_sys.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ #include diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_timer.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_timer.c index f8e8d848981..4c099b04c45 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_timer.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_timer.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_twi.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_twi.c index 69ad1393d0b..4c9a5ee3ef9 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_twi.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_twi.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_uart.c b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_uart.c index 51879e03fe6..bc02a25efbd 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_uart.c +++ b/Libraries/Cordio/platform/targets/maxim/max32665/sources/pal_uart.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_btn.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_btn.c index bfc732167f3..e4969e5367a 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_btn.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_btn.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_cfg.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_cfg.c index 7c10b14a8db..a25166393a1 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_cfg.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_cfg.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_codec.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_codec.c index 2d598ca4634..8e4023b3802 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_codec.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_codec.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_crypto.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_crypto.c index d5bf857e37f..70f99982db2 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_crypto.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_crypto.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_flash.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_flash.c index 2a0e2993703..9f77289670d 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_flash.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_flash.c @@ -16,6 +16,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_i2s.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_i2s.c index 141070c777d..a7238a83e7f 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_i2s.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_i2s.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_led.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_led.c index 57a9e9df59b..38beff9ec38 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_led.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_led.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_rtc.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_rtc.c index 87a9014b522..04fe5ef5931 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_rtc.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_rtc.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_sys.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_sys.c index feb216132da..870544c17a5 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_sys.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_sys.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ #include diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_timer.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_timer.c index 423c80bf67e..28397324f89 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_timer.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_timer.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_twi.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_twi.c index 357ff8323db..43c6fe7120f 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_twi.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_twi.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_uart.c b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_uart.c index 8b384c9299c..1335481b843 100644 --- a/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_uart.c +++ b/Libraries/Cordio/platform/targets/maxim/max32690/sources/pal_uart.c @@ -14,6 +14,20 @@ * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact Packetcraft, Inc. prior * to any use, copying or further distribution of this software. + * + * Copyright (c) 2022-2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ /*************************************************************************************************/ diff --git a/Libraries/FCL/doc/html/index.html b/Libraries/FCL/doc/html/index.html index e6504ed3549..58a8b81b146 100644 --- a/Libraries/FCL/doc/html/index.html +++ b/Libraries/FCL/doc/html/index.html @@ -91,8 +91,6 @@

Reference

        

-Copyright Notice

-
/*****************************************************************************
* Copyright (C) 2015-2018 Maxim Integrated Products, Inc., All rights Reserved.
* This software is protected by copyright laws of the United States and
* of foreign countries. This material may also be protected by patent laws
* and technology transfer regulations of the United States and of foreign
* countries. This software is furnished under a license agreement and/or a
* nondisclosure agreement and may only be used or reproduced in accordance
* with the terms of those agreements. Dissemination of this information to
* any party or parties not specified in the license agreement and/or
* nondisclosure agreement is expressly prohibited.
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Maxim Integrated
* Products, Inc. shall not be used except as stated in the Maxim Integrated
* Products, Inc. Branding Policy.
*
* The mere transfer of this software does not imply any licenses
* of trade secrets, proprietary technology, copyrights, patents,
* trademarks, maskwork rights, or any other form of intellectual
* property whatsoever. Maxim Integrated Products, Inc. retains all
* ownership rights.
******************************************************************************/

Trademarks

  • ARM is a registered trademark and registered service mark and Cortex is a registered trademark of ARM Limited.
  • @@ -102,7 +100,7 @@

    Introduction

    The Free Cryptographic Library (FCL) is a cryptographic library with source code. This source code can be used for demo or test purposes on PCs, on or with embedded platforms. Implemented algorithms are currently: ECDSA signature and verification for P192, P256, P384, P521, BP256, BP384, BP512, SHA256, SHA384, SHA512 and SIA256. AES encryption, decryption in ECB, CBC modes and CBC-MAC, for 128-bit, 192-bit and 256-bit keys. SHA3 is also available.

    For more robust or specific cryptographic needs, see the Universal Cryptographic Library (UCL).

    -
    Warning
    The FCL contains confidential documentation and code. It can be delivered as source code, even externally to Maxim. However, delivery to customers requires an NDA.
    +
    Warning
    The FCL contains confidential documentation and code. It can be delivered as source code, even externally to Maxim. However, delivery to customers requires an NDA.
    • This software is only here for test and demo purposes.
    • This implementation is not secure and does not protect the ECC private/AES secret keys.
    • diff --git a/Libraries/FCL/doc/latex/index.tex b/Libraries/FCL/doc/latex/index.tex index fe9e7863b19..e1f15c2322c 100644 --- a/Libraries/FCL/doc/latex/index.tex +++ b/Libraries/FCL/doc/latex/index.tex @@ -11,38 +11,6 @@ ~~~~~~~~\hypertarget{index_s2}{}\section{Copyright Notice}\label{index_s2} \begin{DoxyCode} -\textcolor{comment}{/*****************************************************************************} -\textcolor{comment}{* Copyright (C) 2015-2018 Maxim Integrated Products, Inc., All rights Reserved.} -\textcolor{comment}{* This software is protected by copyright laws of the United States and} -\textcolor{comment}{* of foreign countries. This material may also be protected by patent laws} -\textcolor{comment}{* and technology transfer regulations of the United States and of foreign} -\textcolor{comment}{* countries. This software is furnished under a license agreement and/or a} -\textcolor{comment}{* nondisclosure agreement and may only be used or reproduced in accordance} -\textcolor{comment}{* with the terms of those agreements. Dissemination of this information to} -\textcolor{comment}{* any party or parties not specified in the license agreement and/or} -\textcolor{comment}{* nondisclosure agreement is expressly prohibited.} -\textcolor{comment}{*} -\textcolor{comment}{* The above copyright notice and this permission notice shall be included} -\textcolor{comment}{* in all copies or substantial portions of the Software.} -\textcolor{comment}{*} -\textcolor{comment}{* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS} -\textcolor{comment}{* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF} -\textcolor{comment}{* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.} -\textcolor{comment}{* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES} -\textcolor{comment}{* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,} -\textcolor{comment}{* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR} -\textcolor{comment}{* OTHER DEALINGS IN THE SOFTWARE.} -\textcolor{comment}{*} -\textcolor{comment}{* Except as contained in this notice, the name of Maxim Integrated} -\textcolor{comment}{* Products, Inc. shall not be used except as stated in the Maxim Integrated} -\textcolor{comment}{* Products, Inc. Branding Policy.} -\textcolor{comment}{*} -\textcolor{comment}{* The mere transfer of this software does not imply any licenses} -\textcolor{comment}{* of trade secrets, proprietary technology, copyrights, patents,} -\textcolor{comment}{* trademarks, maskwork rights, or any other form of intellectual} -\textcolor{comment}{* property whatsoever. Maxim Integrated Products, Inc. retains all} -\textcolor{comment}{* ownership rights.} -\textcolor{comment}{******************************************************************************/} \end{DoxyCode} \hypertarget{index_trademarks}{}\section{Trademarks}\label{index_trademarks} diff --git a/Libraries/FCL/doc/output/html/index.html b/Libraries/FCL/doc/output/html/index.html index 2b2e982f2e9..4ac77b98d5e 100644 --- a/Libraries/FCL/doc/output/html/index.html +++ b/Libraries/FCL/doc/output/html/index.html @@ -91,8 +91,6 @@

      Reference

              SPEC98T17

      -Copyright Notice

      -
      /*****************************************************************************
      * Copyright (C) 2016-2017 Maxim Integrated Products, Inc., All rights Reserved.
      * This software is protected by copyright laws of the United States and
      * of foreign countries. This material may also be protected by patent laws
      * and technology transfer regulations of the United States and of foreign
      * countries. This software is furnished under a license agreement and/or a
      * nondisclosure agreement and may only be used or reproduced in accordance
      * with the terms of those agreements. Dissemination of this information to
      * any party or parties not specified in the license agreement and/or
      * nondisclosure agreement is expressly prohibited.
      *
      * The above copyright notice and this permission notice shall be included
      * in all copies or substantial portions of the Software.
      *
      * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
      * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
      * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
      * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
      * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
      * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
      * OTHER DEALINGS IN THE SOFTWARE.
      *
      * Except as contained in this notice, the name of Maxim Integrated
      * Products, Inc. shall not be used except as stated in the Maxim Integrated
      * Products, Inc. Branding Policy.
      *
      * The mere transfer of this software does not imply any licenses
      * of trade secrets, proprietary technology, copyrights, patents,
      * trademarks, maskwork rights, or any other form of intellectual
      * property whatsoever. Maxim Integrated Products, Inc. retains all
      * ownership rights.
      ******************************************************************************/

      Trademarks

      • ARM is a registered trademark and registered service mark and Cortex is a registered trademark of ARM Limited.
      • diff --git a/Libraries/FCL/doc/res/main.dox b/Libraries/FCL/doc/res/main.dox index b164dee14bb..7926fe0772e 100644 --- a/Libraries/FCL/doc/res/main.dox +++ b/Libraries/FCL/doc/res/main.dox @@ -13,38 +13,6 @@ __Reference__ * * @section s2 Copyright Notice * ~~~~~~~~~~~~~~~{.c} - * /***************************************************************************** - * * Copyright (C) 2015-2018 Maxim Integrated Products, Inc., All rights Reserved. - * * This software is protected by copyright laws of the United States and - * * of foreign countries. This material may also be protected by patent laws - * * and technology transfer regulations of the United States and of foreign - * * countries. This software is furnished under a license agreement and/or a - * * nondisclosure agreement and may only be used or reproduced in accordance - * * with the terms of those agreements. Dissemination of this information to - * * any party or parties not specified in the license agreement and/or - * * nondisclosure agreement is expressly prohibited. - * * - * * The above copyright notice and this permission notice shall be included - * * in all copies or substantial portions of the Software. - * * - * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * * OTHER DEALINGS IN THE SOFTWARE. - * * - * * Except as contained in this notice, the name of Maxim Integrated - * * Products, Inc. shall not be used except as stated in the Maxim Integrated - * * Products, Inc. Branding Policy. - * * - * * The mere transfer of this software does not imply any licenses - * * of trade secrets, proprietary technology, copyrights, patents, - * * trademarks, maskwork rights, or any other form of intellectual - * * property whatsoever. Maxim Integrated Products, Inc. retains all - * * ownership rights. - * ******************************************************************************/ * ~~~~~~~~~~~~~~~ * @section trademarks Trademarks diff --git a/Libraries/FCL/fcl.mk b/Libraries/FCL/fcl.mk index e6a6b49608e..97fdbfac74f 100644 --- a/Libraries/FCL/fcl.mk +++ b/Libraries/FCL/fcl.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(FCL_DIR)" "" $(error FCL_DIR must be specified") @@ -83,4 +101,53 @@ ${FCL_BUILD_DIR}/${FCL_LIB}: ${FCL_C_FILES} ${FCL_H_FILES} $(MAKE) -f ${FCL_DIR}/libfcl.mk lib BUILD_DIR=${FCL_BUILD_DIR} clean.fcl: +############################################################################### + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + # + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## @rm -rf ${FCL_BUILD_DIR}/* \ No newline at end of file diff --git a/Libraries/FCL/fcl_files.mk b/Libraries/FCL/fcl_files.mk index 10f3447e9b6..802c45dd766 100644 --- a/Libraries/FCL/fcl_files.mk +++ b/Libraries/FCL/fcl_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2018-08-31 14:08:14 -0500 (Fri, 31 Aug 2018) $ - # $Revision: 37586 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file @@ -67,4 +82,53 @@ FCL_INCLUDE_DIR += $(PERIPH_DRIVER)/Include/$(TARGET_UC) FCL_C_FILES += $(sort $(wildcard $(FCL_DIR)/src/*.c)) # Where to find header files for this project +############################################################################### + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + # + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## FCL_H_FILES += $(wildcard $(addsuffix /*.h,$(FCL_INCLUDE_DIR))) diff --git a/Libraries/FCL/include/hash/sha256.h b/Libraries/FCL/include/hash/sha256.h index 1055bf74bdb..07c1bd8240f 100644 --- a/Libraries/FCL/include/hash/sha256.h +++ b/Libraries/FCL/include/hash/sha256.h @@ -1,51 +1,63 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SHA256 -* Description: sha256 include file -* Filename: sha256.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef __UCL_SHA256_H_ -#define __UCL_SHA256_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_HASH_SHA256_H_ +#define LIBRARIES_FCL_INCLUDE_HASH_SHA256_H_ #include /** The main loop of sha256. * - * @param[in,out] hash The intermediate hash, u32[8] - * @param[in] stone A "Stone" of the padded message,u32[16] + * @param[in, out] hash The intermediate hash, u32[8] + * @param[in] stone A "Stone" of the padded message, u32[16] * * @ingroup UCL_SHA256 * @internal @@ -53,4 +65,4 @@ void sha256_stone(u32 hash[8], u32 stone[16]); -#endif /* __UCL_SHA256_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_HASH_SHA256_H_ diff --git a/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h b/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h index d3a8b3e7f7e..59159ed9f4e 100644 --- a/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h +++ b/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h @@ -1,46 +1,62 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: ECC -* Description: big numbers include file -* Filename: bignum_ecdsa_generic_api.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_BIGNUM_ECDSA_GENERIC_API_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_BIGNUM_ECDSA_GENERIC_API_H_ + +#include #include "ucl/ucl_config.h" #include "ucl/ucl_types.h" -#define DOUBLE_DIGIT unsigned long long int +#define DOUBLE_DIGIT uint64_t #define MAX_DIGIT 0xFFFFFFFF #define HALF_DIGIT 0xFFFF #define MAX_DIGITS 65 @@ -49,37 +65,38 @@ /* Length of digit in bytes */ #define DIGIT_LEN (DIGIT_BITS / 8) -void bignum_modsquare(u32 *r,u32 *a,u32 *m,u32 k); -int bignum_modmult(u32 *r,u32 *a,u32 *b,u32 *m,u32 k); -void bignum_d2us(u8 *a,u32 len,u32 *b,u32 digits); -void bignum_us2d(u32 *a,u32 digits,u8 *b,u32 len); -int bignum_cmp(u32 *a,u32 *b,u32 s); -int bignum_cmp_zero(u32 *a,int s); -int bignum_isnul(u32 *A,u32 tA); -u32 bignum_digits(u32 *N,u32 tn); +void bignum_modsquare(u32 *r, u32 *a, u32 *m, u32 k); +int bignum_modmult(u32 *r, u32 *a, u32 *b, u32 *m, u32 k); +void bignum_d2us(u8 *a, u32 len, u32 *b, u32 digits); +void bignum_us2d(u32 *a, u32 digits, u8 *b, u32 len); +int bignum_cmp(u32 *a, u32 *b, u32 s); +int bignum_cmp_zero(u32 *a, int s); +int bignum_isnul(u32 *A, u32 tA); +u32 bignum_digits(u32 *N, u32 tn); u32 bignum_digitbits(u32 a); -void bignum_copydigit(u32 *E,u32 F,u32 tE); -void bignum_copyzero(u32 *E,u32 tE); -void bignum_copy(u32 *E,u32 *F,u32 tE); +void bignum_copydigit(u32 *E, u32 F, u32 tE); +void bignum_copyzero(u32 *E, u32 tE); +void bignum_copy(u32 *E, u32 *F, u32 tE); -u32 bignum_add(u32 *w,u32 *x,u32 *y,u32 digits); -u32 bignum_sub(u32 *w,u32 *x,u32 *y,u32 digits); -void bignum_mult(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_mult_operand_scanning_form(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_multopt(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_multlimited(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_multscalar(u32 *t,u32 a,u32 *b,u32 n); -void bignum_mult2sizes(u32 *t,u32 *a,u32 na,u32 *b,u32 nb); -void bignum_square(u32 *a,u32 *b,u32 digits); -u32 bignum_leftshift(u32 *a,u32 *b,u32 c,u32 digits); -u32 bignum_rightshift(u32 *a,u32 *b,u32 c,u32 digits); +u32 bignum_add(u32 *w, u32 *x, u32 *y, u32 digits); +u32 bignum_sub(u32 *w, u32 *x, u32 *y, u32 digits); +void bignum_mult(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_mult_operand_scanning_form(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_multopt(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_multlimited(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_multscalar(u32 *t, u32 a, u32 *b, u32 n); +void bignum_mult2sizes(u32 *t, u32 *a, u32 na, u32 *b, u32 nb); +void bignum_square(u32 *a, u32 *b, u32 digits); +u32 bignum_leftshift(u32 *a, u32 *b, u32 c, u32 digits); +u32 bignum_rightshift(u32 *a, u32 *b, u32 c, u32 digits); -void bignum_modinv(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modinv_subs(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modinv3(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modinv4(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modadd(u32 *r,u32 *a,u32 *b,u32 *m,u32 k); -void bignum_modexp(u32 *r,u32 *a,u32 *b,u32 *m,u32 k); -void bignum_mod(u32 *b,u32 *c,u32 cDigits,u32 *d,u32 dDigits); -void bignum_div(u32 *rmd,u32 *b,u32 *c,u32 cDigits,u32 *d,u32 dDigits); +void bignum_modinv(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modinv_subs(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modinv3(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modinv4(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modadd(u32 *r, u32 *a, u32 *b, u32 *m, u32 k); +void bignum_modexp(u32 *r, u32 *a, u32 *b, u32 *m, u32 k); +void bignum_mod(u32 *b, u32 *c, u32 cDigits, u32 *d, u32 dDigits); +void bignum_div(u32 *rmd, u32 *b, u32 *c, u32 cDigits, u32 *d, u32 dDigits); +#endif // LIBRARIES_FCL_INCLUDE_UCL_BIGNUM_ECDSA_GENERIC_API_H_ diff --git a/Libraries/FCL/include/ucl/defs.h b/Libraries/FCL/include/ucl/defs.h index 3295d641a14..940c3681e6a 100644 --- a/Libraries/FCL/include/ucl/defs.h +++ b/Libraries/FCL/include/ucl/defs.h @@ -1,44 +1,56 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: definition -* Filename: defs.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _DEFS_H_ -#define _DEFS_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_DEFS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_DEFS_H_ #include "ucl/ucl_config.h" #include "ucl/ucl_types.h" @@ -60,4 +72,4 @@ #define __nomips16__ #endif -#endif /* _DEFS_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_DEFS_H_ diff --git a/Libraries/FCL/include/ucl/ecdsa_generic_api.h b/Libraries/FCL/include/ucl/ecdsa_generic_api.h index 15e57cec017..66589e136e9 100644 --- a/Libraries/FCL/include/ucl/ecdsa_generic_api.h +++ b/Libraries/FCL/include/ucl/ecdsa_generic_api.h @@ -1,42 +1,54 @@ -/******************************************************************************* -* Copyright (C) 2015-2018 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: ECC -* Description: ECC definition -* Filename: ecdsa_generic_api.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + /** @file ecdsa_generic_api.h * @defgroup UCL_ECDSA ECDSA * ECDSA, from FIPS 186-4. @@ -49,8 +61,8 @@ */ /** @brief ECDSA signatures computation and verification -* -* Long description of the module. This module is in charge of .... +* +* Long description of the module. This module is in charge of .... * * Elliptic curves have been studied by mathematicians for more than a century. * A rich theory have been developed around them, and cryptography have taken * the advantage to find a way to use it in practice. @@ -74,18 +86,19 @@ * admissible change of variable transforms the equation to :@n * @f$ E ~:~ y^{2} + x.y ~=~x^3+ a.x^2 + b @f$ @n * @n - * A point of the curve is a couple @f$ (x,y) @f$ verifying the equation @a E. @n + * A point of the curve is a couple @f$ (x, y) @f$ verifying the equation @a E. @n * @n * It exists an addition on @a E such as @a E is a group. - * If @a P is point of @a E, then we note @f$ Q = k.P @f$ the result of @p k + * If @a P is point of @a E, then we note @f$ Q = k.P @f$ the result of @p k * successive additions. @n - * The discrete logarithm problem is the problem which consists to find @p k + * The discrete logarithm problem is the problem which consists to find @p k * from @p Q and @p P. * ECDSA is the implementation of the DSA in ECC -*/ +*/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_ECDSA_GENERIC_API_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_ECDSA_GENERIC_API_H_ -#ifndef _UCL_ECDSA_GENERIC_API_NEW_H_ -#define _UCL_ECDSA_GENERIC_API_NEW_H_ #include "ucl/ucl_config.h" #include "ucl/ucl_types.h" #include "ucl/bignum_ecdsa_generic_api.h" @@ -148,10 +161,10 @@ #define BP384 #define BP512 -static const u32 one[ECDSA_DIGITS]={0x00000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; -static const u32 two[ECDSA_DIGITS]={0x00000002,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; -static const u32 three[ECDSA_DIGITS]={0x00000003,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; -static const u32 four[ECDSA_DIGITS]={0x00000004,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; +static const u32 one[ECDSA_DIGITS]={0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; +static const u32 two[ECDSA_DIGITS]={0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; +static const u32 three[ECDSA_DIGITS]={0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; +static const u32 four[ECDSA_DIGITS]={0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; /** ECC Curve Structure. @@ -219,13 +232,13 @@ typedef struct _t_ecdsa_signature } ucl_type_ecdsa_signature; #ifdef P192 - static const u32 local_inv2_p192r1[SECP192R1_WORDSIZE]={0x00000000,0x80000000,0xffffffff,0xffffffff,0xffffffff,0x7fffffff,0x00000000,0x00000000}; - static const u32 local_xg_p192r1[SECP192R1_WORDSIZE]={0x82ff1012,0xf4ff0afd,0x43a18800,0x7cbf20eb,0xb03090f6,0x188da80e,0x00000000,0x00000000}; - static const u32 local_yg_p192r1[SECP192R1_WORDSIZE]={0x1e794811,0x73f977a1,0x6b24cdd5,0x631011ed,0xffc8da78,0x07192b95,0x00000000,0x00000000}; - static const u32 local_a_p192r1[SECP192R1_WORDSIZE]={0xfffffffc,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000}; -static const u32 local_b_p192r1[SECP192R1_WORDSIZE]={0xc146b9b1,0xfeb8deec,0x72243049,0x0fa7e9ab,0xe59c80e7,0x64210519,0x00000000,0x00000000}; - static const u32 local_p_p192r1[SECP192R1_WORDSIZE]={0xffffffff,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000}; - static const u32 local_n_p192r1[SECP192R1_WORDSIZE]={0xb4d22831,0x146bc9b1,0x99def836,0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000}; + static const u32 local_inv2_p192r1[SECP192R1_WORDSIZE]={0x00000000, 0x80000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x7fffffff, 0x00000000, 0x00000000}; + static const u32 local_xg_p192r1[SECP192R1_WORDSIZE]={0x82ff1012, 0xf4ff0afd, 0x43a18800, 0x7cbf20eb, 0xb03090f6, 0x188da80e, 0x00000000, 0x00000000}; + static const u32 local_yg_p192r1[SECP192R1_WORDSIZE]={0x1e794811, 0x73f977a1, 0x6b24cdd5, 0x631011ed, 0xffc8da78, 0x07192b95, 0x00000000, 0x00000000}; + static const u32 local_a_p192r1[SECP192R1_WORDSIZE]={0xfffffffc, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000}; +static const u32 local_b_p192r1[SECP192R1_WORDSIZE]={0xc146b9b1, 0xfeb8deec, 0x72243049, 0x0fa7e9ab, 0xe59c80e7, 0x64210519, 0x00000000, 0x00000000}; + static const u32 local_p_p192r1[SECP192R1_WORDSIZE]={0xffffffff, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000}; + static const u32 local_n_p192r1[SECP192R1_WORDSIZE]={0xb4d22831, 0x146bc9b1, 0x99def836, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000}; /** ECC Curve structure variable for SEC-P192r1. * * @ingroup UCL_ECDSA @@ -234,13 +247,13 @@ extern ucl_type_curve secp192r1; #endif//P192 #ifdef P256 - static const u32 local_inv2_p256r1[SECP256R1_WORDSIZE]={0x00000000,0x00000000,0x80000000,0x00000000,0x00000000,0x80000000,0x80000000,0x7fffffff}; - static const u32 local_xg_p256r1[SECP256R1_WORDSIZE]={0xd898c296,0xf4a13945,0x2deb33a0,0x77037d81,0x63a440f2,0xf8bce6e5,0xe12c4247,0x6b17d1f2}; - static const u32 local_yg_p256r1[SECP256R1_WORDSIZE]={0x37bf51f5,0xcbb64068,0x6b315ece,0x2bce3357,0x7c0f9e16,0x8ee7eb4a,0xfe1a7f9b,0x4fe342e2}; - static const u32 local_a_p256r1[SECP256R1_WORDSIZE]={0xfffffffc,0xffffffff,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000001,0xffffffff}; -static const u32 local_b_p256r1[SECP256R1_WORDSIZE]={0x27d2604b,0x3bce3c3e,0xcc53b0f6,0x651d06b0,0x769886bc,0xb3ebbd55,0xaa3a93e7,0x5ac635d8}; - static const u32 local_p_p256r1[SECP256R1_WORDSIZE]={0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000001,0xffffffff}; - static const u32 local_n_p256r1[SECP256R1_WORDSIZE]={0xfc632551,0xf3b9cac2,0xa7179e84,0xbce6faad,0xffffffff,0xffffffff,0x00000000,0xffffffff}; + static const u32 local_inv2_p256r1[SECP256R1_WORDSIZE]={0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x80000000, 0x80000000, 0x7fffffff}; + static const u32 local_xg_p256r1[SECP256R1_WORDSIZE]={0xd898c296, 0xf4a13945, 0x2deb33a0, 0x77037d81, 0x63a440f2, 0xf8bce6e5, 0xe12c4247, 0x6b17d1f2}; + static const u32 local_yg_p256r1[SECP256R1_WORDSIZE]={0x37bf51f5, 0xcbb64068, 0x6b315ece, 0x2bce3357, 0x7c0f9e16, 0x8ee7eb4a, 0xfe1a7f9b, 0x4fe342e2}; + static const u32 local_a_p256r1[SECP256R1_WORDSIZE]={0xfffffffc, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff}; +static const u32 local_b_p256r1[SECP256R1_WORDSIZE]={0x27d2604b, 0x3bce3c3e, 0xcc53b0f6, 0x651d06b0, 0x769886bc, 0xb3ebbd55, 0xaa3a93e7, 0x5ac635d8}; + static const u32 local_p_p256r1[SECP256R1_WORDSIZE]={0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff}; + static const u32 local_n_p256r1[SECP256R1_WORDSIZE]={0xfc632551, 0xf3b9cac2, 0xa7179e84, 0xbce6faad, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffff}; /** ECC Curve structure variable for SEC-P256r1. * * @ingroup UCL_ECDSA @@ -250,13 +263,13 @@ extern ucl_type_curve secp256r1; #ifdef BP256 - static const u32 local_inv2_bp256r1[BP256R1_WORDSIZE]={0x8fb729bc,0x1009a40e,0xea931014,0x371dfb11,0x4ec1c6b9,0x1f330548,0xd0f754de,0x54fdabed}; - static const u32 local_xg_bp256r1[BP256R1_WORDSIZE]={0x9ace3262,0x3a4453bd,0xe3bd23c2,0xb9de27e1,0xfc81b7af,0x2c4b482f,0xcb7e57cb,0x8bd2aeb9}; - static const u32 local_yg_bp256r1[BP256R1_WORDSIZE]={0x2f046997,0x5c1d54c7,0x2ded8e54,0xc2774513,0x14611dc9,0x97f8461a,0xc3dac4fd,0x547ef835}; - static const u32 local_a_bp256r1[BP256R1_WORDSIZE]={0xf330b5d9,0xe94a4b44,0x26dc5c6c,0xfb8055c1,0x417affe7,0xeef67530,0xfc2c3057,0x7d5a0975}; -static const u32 local_b_bp256r1[BP256R1_WORDSIZE]={0xff8c07b6,0x6bccdc18,0x5cf7e1ce,0x95841629,0xbbd77cbf,0xf330b5d9,0xe94a4b44,0x26dc5c6c}; - static const u32 local_p_bp256r1[BP256R1_WORDSIZE]={0x1f6e5377,0x2013481d,0xd5262028,0x6e3bf623,0x9d838d72,0x3e660a90,0xa1eea9bc,0xa9fb57db}; - static const u32 local_n_bp256r1[BP256R1_WORDSIZE]={0x974856a7,0x901e0e82,0xb561a6f7,0x8c397aa3,0x9d838d71,0x3e660a90,0xa1eea9bc,0xa9fb57db}; + static const u32 local_inv2_bp256r1[BP256R1_WORDSIZE]={0x8fb729bc, 0x1009a40e, 0xea931014, 0x371dfb11, 0x4ec1c6b9, 0x1f330548, 0xd0f754de, 0x54fdabed}; + static const u32 local_xg_bp256r1[BP256R1_WORDSIZE]={0x9ace3262, 0x3a4453bd, 0xe3bd23c2, 0xb9de27e1, 0xfc81b7af, 0x2c4b482f, 0xcb7e57cb, 0x8bd2aeb9}; + static const u32 local_yg_bp256r1[BP256R1_WORDSIZE]={0x2f046997, 0x5c1d54c7, 0x2ded8e54, 0xc2774513, 0x14611dc9, 0x97f8461a, 0xc3dac4fd, 0x547ef835}; + static const u32 local_a_bp256r1[BP256R1_WORDSIZE]={0xf330b5d9, 0xe94a4b44, 0x26dc5c6c, 0xfb8055c1, 0x417affe7, 0xeef67530, 0xfc2c3057, 0x7d5a0975}; +static const u32 local_b_bp256r1[BP256R1_WORDSIZE]={0xff8c07b6, 0x6bccdc18, 0x5cf7e1ce, 0x95841629, 0xbbd77cbf, 0xf330b5d9, 0xe94a4b44, 0x26dc5c6c}; + static const u32 local_p_bp256r1[BP256R1_WORDSIZE]={0x1f6e5377, 0x2013481d, 0xd5262028, 0x6e3bf623, 0x9d838d72, 0x3e660a90, 0xa1eea9bc, 0xa9fb57db}; + static const u32 local_n_bp256r1[BP256R1_WORDSIZE]={0x974856a7, 0x901e0e82, 0xb561a6f7, 0x8c397aa3, 0x9d838d71, 0x3e660a90, 0xa1eea9bc, 0xa9fb57db}; /** ECC Curve structure variable for Brainpool P256r1. * @@ -266,13 +279,13 @@ extern ucl_type_curve bp256r1; #endif//BP256 #ifdef BP384 - static const u32 local_inv2_bp384r1[BP384R1_WORDSIZE]={0x9883f62a,0xc3a38009,0xc80e8d38,0xd669d394,0xbfdb8891,0x0958ed0c,0xf6aa2b5a,0x8a97b884,0x287320ef,0x07aeb7bf,0x519c3694,0x465c8f41}; - static const u32 local_xg_bp384r1[BP384R1_WORDSIZE]={0x47d4af1e,0xef87b2e2,0x36d646aa,0xe826e034,0x0cbd10e8,0xdb7fcafe,0x7ef14fe3,0x8847a3e7,0xb7c13f6b,0xa2a63a81,0x68cf45ff,0x1d1c64f0}; - static const u32 local_yg_bp384r1[BP384R1_WORDSIZE]={0x263c5315,0x42820341,0x77918111,0x0e464621,0xf9912928,0xe19c054f,0xfeec5864,0x62b70b29,0x95cfd552,0x5cb1eb8e,0x20f9c2a4,0x8abe1d75}; - static const u32 local_a_bp384r1[BP384R1_WORDSIZE]={0x22ce2826,0x04a8c7dd,0x503ad4eb,0x8aa5814a,0xba91f90f,0x139165ef,0x4fb22787,0xc2bea28e,0xce05afa0,0x3c72080a,0x3d8c150c,0x7bc382c6}; -static const u32 local_b_bp384r1[BP384R1_WORDSIZE]={0xfa504c11,0x3ab78696,0x95dbc994,0x7cb43902,0x3eeb62d5,0x2e880ea5,0x07dcd2a6,0x2fb77de1,0x16f0447c,0x8b39b554,0x22ce2826,0x04a8c7dd}; -static const u32 local_p_bp384r1[BP384R1_WORDSIZE]={0x3107ec53,0x87470013,0x901d1a71,0xacd3a729,0x7fb71123,0x12b1da19,0xed5456b4,0x152f7109,0x50e641df,0x0f5d6f7e,0xa3386d28,0x8cb91e82}; - static const u32 local_n_bp384r1[BP384R1_WORDSIZE]={0xe9046565,0x3b883202,0x6b7fc310,0xcf3ab6af,0xac0425a7,0x1f166e6c,0xed5456b3,0x152f7109,0x50e641df,0x0f5d6f7e,0xa3386d28,0x8cb91e82}; + static const u32 local_inv2_bp384r1[BP384R1_WORDSIZE]={0x9883f62a, 0xc3a38009, 0xc80e8d38, 0xd669d394, 0xbfdb8891, 0x0958ed0c, 0xf6aa2b5a, 0x8a97b884, 0x287320ef, 0x07aeb7bf, 0x519c3694, 0x465c8f41}; + static const u32 local_xg_bp384r1[BP384R1_WORDSIZE]={0x47d4af1e, 0xef87b2e2, 0x36d646aa, 0xe826e034, 0x0cbd10e8, 0xdb7fcafe, 0x7ef14fe3, 0x8847a3e7, 0xb7c13f6b, 0xa2a63a81, 0x68cf45ff, 0x1d1c64f0}; + static const u32 local_yg_bp384r1[BP384R1_WORDSIZE]={0x263c5315, 0x42820341, 0x77918111, 0x0e464621, 0xf9912928, 0xe19c054f, 0xfeec5864, 0x62b70b29, 0x95cfd552, 0x5cb1eb8e, 0x20f9c2a4, 0x8abe1d75}; + static const u32 local_a_bp384r1[BP384R1_WORDSIZE]={0x22ce2826, 0x04a8c7dd, 0x503ad4eb, 0x8aa5814a, 0xba91f90f, 0x139165ef, 0x4fb22787, 0xc2bea28e, 0xce05afa0, 0x3c72080a, 0x3d8c150c, 0x7bc382c6}; +static const u32 local_b_bp384r1[BP384R1_WORDSIZE]={0xfa504c11, 0x3ab78696, 0x95dbc994, 0x7cb43902, 0x3eeb62d5, 0x2e880ea5, 0x07dcd2a6, 0x2fb77de1, 0x16f0447c, 0x8b39b554, 0x22ce2826, 0x04a8c7dd}; +static const u32 local_p_bp384r1[BP384R1_WORDSIZE]={0x3107ec53, 0x87470013, 0x901d1a71, 0xacd3a729, 0x7fb71123, 0x12b1da19, 0xed5456b4, 0x152f7109, 0x50e641df, 0x0f5d6f7e, 0xa3386d28, 0x8cb91e82}; + static const u32 local_n_bp384r1[BP384R1_WORDSIZE]={0xe9046565, 0x3b883202, 0x6b7fc310, 0xcf3ab6af, 0xac0425a7, 0x1f166e6c, 0xed5456b3, 0x152f7109, 0x50e641df, 0x0f5d6f7e, 0xa3386d28, 0x8cb91e82}; /** ECC Curve structure variable for Brainpool P384r1. * * @ingroup UCL_ECDSA @@ -281,13 +294,13 @@ extern ucl_type_curve bp384r1; #endif #ifdef P384 -static const u32 local_inv2_p384r1[SECP384R1_WORDSIZE]={0x80000000,0x00000000,0x80000000,0x7fffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x7fffffff}; -static const u32 local_xg_p384r1[SECP384R1_WORDSIZE]={0x72760ab7,0x3a545e38,0xbf55296c,0x5502f25d,0x82542a38,0x59f741e0,0x8ba79b98,0x6e1d3b62,0xf320ad74,0x8eb1c71e,0xbe8b0537,0xaa87ca22}; -static const u32 local_yg_p384r1[SECP384R1_WORDSIZE]={0x90ea0e5f,0x7a431d7c,0x1d7e819d,0x0a60b1ce,0xb5f0b8c0,0xe9da3113,0x289a147c,0xf8f41dbd,0x9292dc29,0x5d9e98bf,0x96262c6f,0x3617de4a}; - static const u32 local_a_p384r1[SECP384R1_WORDSIZE]={0xfffffffc,0x00000000,0x00000000,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff}; - static const u32 local_b_p384r1[SECP384R1_WORDSIZE]={0xd3ec2aef,0x2a85c8ed,0x8a2ed19d,0xc656398d,0x5013875a,0x0314088f,0xfe814112,0x181d9c6e,0xe3f82d19,0x988e056b,0xe23ee7e4,0xb3312fa7}; - static const u32 local_p_p384r1[SECP384R1_WORDSIZE]={0xffffffff,0x00000000,0x00000000,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff}; - static const u32 local_n_p384r1[SECP384R1_WORDSIZE]={0xccc52973,0xecec196a,0x48b0a77a,0x581a0db2,0xf4372ddf,0xc7634d81,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff}; +static const u32 local_inv2_p384r1[SECP384R1_WORDSIZE]={0x80000000, 0x00000000, 0x80000000, 0x7fffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x7fffffff}; +static const u32 local_xg_p384r1[SECP384R1_WORDSIZE]={0x72760ab7, 0x3a545e38, 0xbf55296c, 0x5502f25d, 0x82542a38, 0x59f741e0, 0x8ba79b98, 0x6e1d3b62, 0xf320ad74, 0x8eb1c71e, 0xbe8b0537, 0xaa87ca22}; +static const u32 local_yg_p384r1[SECP384R1_WORDSIZE]={0x90ea0e5f, 0x7a431d7c, 0x1d7e819d, 0x0a60b1ce, 0xb5f0b8c0, 0xe9da3113, 0x289a147c, 0xf8f41dbd, 0x9292dc29, 0x5d9e98bf, 0x96262c6f, 0x3617de4a}; + static const u32 local_a_p384r1[SECP384R1_WORDSIZE]={0xfffffffc, 0x00000000, 0x00000000, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}; + static const u32 local_b_p384r1[SECP384R1_WORDSIZE]={0xd3ec2aef, 0x2a85c8ed, 0x8a2ed19d, 0xc656398d, 0x5013875a, 0x0314088f, 0xfe814112, 0x181d9c6e, 0xe3f82d19, 0x988e056b, 0xe23ee7e4, 0xb3312fa7}; + static const u32 local_p_p384r1[SECP384R1_WORDSIZE]={0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}; + static const u32 local_n_p384r1[SECP384R1_WORDSIZE]={0xccc52973, 0xecec196a, 0x48b0a77a, 0x581a0db2, 0xf4372ddf, 0xc7634d81, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}; /** ECC Curve structure variable for SEC-P384r1. * @@ -297,13 +310,13 @@ extern ucl_type_curve secp384r1; #endif//P384 #ifdef P521 - static const u32 local_inv2_p521r1[SECP521R1_WORDSIZE]={0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000100}; - static const u32 local_xg_p521r1[SECP521R1_WORDSIZE]={0xc2e5bd66,0xf97e7e31,0x856a429b,0x3348b3c1,0xa2ffa8de,0xfe1dc127,0xefe75928,0xa14b5e77,0x6b4d3dba,0xf828af60,0x053fb521,0x9c648139,0x2395b442,0x9e3ecb66,0x0404e9cd,0x858e06b7,0x000000c6}; - static const u32 local_yg_p521r1[SECP521R1_WORDSIZE]={0x9fd16650,0x88be9476,0xa272c240,0x353c7086,0x3fad0761,0xc550b901,0x5ef42640,0x97ee7299,0x273e662c,0x17afbd17,0x579b4468,0x98f54449,0x2c7d1bd9,0x5c8a5fb4,0x9a3bc004,0x39296a78,0x00000118}; - static const u32 local_a_p521r1[SECP521R1_WORDSIZE]={0xfffffffc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x000001ff}; -static const u32 local_b_p521r1[SECP521R1_WORDSIZE]={0x6b503f00,0xef451fd4,0x3d2c34f1,0x3573df88,0x3bb1bf07,0x1652c0bd,0xec7e937b,0x56193951,0x8ef109e1,0xb8b48991,0x99b315f3,0xa2da725b,0xb68540ee,0x929a21a0,0x8e1c9a1f,0x953eb961,0x00000051}; - static const u32 local_p_p521r1[SECP521R1_WORDSIZE]={0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x000001ff}; - static const u32 local_n_p521r1[SECP521R1_WORDSIZE]={0x91386409,0xbb6fb71e,0x899c47ae,0x3bb5c9b8,0xf709a5d0,0x7fcc0148,0xbf2f966b,0x51868783,0xfffffffa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x000001ff}; + static const u32 local_inv2_p521r1[SECP521R1_WORDSIZE]={0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100}; + static const u32 local_xg_p521r1[SECP521R1_WORDSIZE]={0xc2e5bd66, 0xf97e7e31, 0x856a429b, 0x3348b3c1, 0xa2ffa8de, 0xfe1dc127, 0xefe75928, 0xa14b5e77, 0x6b4d3dba, 0xf828af60, 0x053fb521, 0x9c648139, 0x2395b442, 0x9e3ecb66, 0x0404e9cd, 0x858e06b7, 0x000000c6}; + static const u32 local_yg_p521r1[SECP521R1_WORDSIZE]={0x9fd16650, 0x88be9476, 0xa272c240, 0x353c7086, 0x3fad0761, 0xc550b901, 0x5ef42640, 0x97ee7299, 0x273e662c, 0x17afbd17, 0x579b4468, 0x98f54449, 0x2c7d1bd9, 0x5c8a5fb4, 0x9a3bc004, 0x39296a78, 0x00000118}; + static const u32 local_a_p521r1[SECP521R1_WORDSIZE]={0xfffffffc, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x000001ff}; +static const u32 local_b_p521r1[SECP521R1_WORDSIZE]={0x6b503f00, 0xef451fd4, 0x3d2c34f1, 0x3573df88, 0x3bb1bf07, 0x1652c0bd, 0xec7e937b, 0x56193951, 0x8ef109e1, 0xb8b48991, 0x99b315f3, 0xa2da725b, 0xb68540ee, 0x929a21a0, 0x8e1c9a1f, 0x953eb961, 0x00000051}; + static const u32 local_p_p521r1[SECP521R1_WORDSIZE]={0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x000001ff}; + static const u32 local_n_p521r1[SECP521R1_WORDSIZE]={0x91386409, 0xbb6fb71e, 0x899c47ae, 0x3bb5c9b8, 0xf709a5d0, 0x7fcc0148, 0xbf2f966b, 0x51868783, 0xfffffffa, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x000001ff}; /** ECC Curve structure variable for SEC-P521r1. * @@ -313,13 +326,13 @@ extern ucl_type_curve secp521r1; #endif//P521 #ifdef BP512 - static const u32 local_inv2_bp512r1[BP512R1_WORDSIZE]={0x2c1d247a,0x9455302b,0x96c16342,0x1440ff97,0x7351c073,0x5766d095,0x4de33421,0xbea6cd80,0x38198438,0x6b31ce65,0xd9e4e907,0xe59846d9,0x19e4fe03,0x9fea7357,0x6df4e245,0x556ecedc}; - static const u32 local_xg_bp512r1[BP512R1_WORDSIZE]={0xbcb9f822,0x8b352209,0x406a5e68,0x7c6d5047,0x93b97d5f,0x50d1687b,0xe2d0d48d,0xff3b1f78,0xf4d0098e,0xb43b62ee,0xb5d916c1,0x85ed9f70,0x9c4c6a93,0x5a21322e,0xd82ed964,0x81aee4bd}; - static const u32 local_yg_bp512r1[BP512R1_WORDSIZE]={0x3ad80892,0x78cd1e0f,0xa8f05406,0xd1ca2b2f,0x8a2763ae,0x5bca4bd8,0x4a5f485e,0xb2dcde49,0x881f8111,0xa000c55b,0x24a57b1a,0xf209f700,0xcf7822fd,0xc0eabfa9,0x566332ec,0x7dde385d}; - static const u32 local_a_bp512r1[BP512R1_WORDSIZE]={0x77fc94ca,0xe7c1ac4d,0x2bf2c7b9,0x7f1117a7,0x8b9ac8b5,0x0a2ef1c9,0xa8253aa1,0x2ded5d5a,0xea9863bc,0xa83441ca,0x3df91610,0x94cbdd8d,0xac234cc5,0xe2327145,0x8b603b89,0x7830a331}; -static const u32 local_b_bp512r1[BP512R1_WORDSIZE]={0x8016f723,0x2809bd63,0x5ebae5dd,0x984050b7,0xdc083e67,0x77fc94ca,0xe7c1ac4d,0x2bf2c7b9,0x7f1117a7,0x8b9ac8b5,0x0a2ef1c9,0xa8253aa1,0x2ded5d5a,0xea9863bc,0xa83441ca,0x3df91610}; - static const u32 local_p_bp512r1[BP512R1_WORDSIZE]={0x583a48f3,0x28aa6056,0x2d82c685,0x2881ff2f,0xe6a380e6,0xaecda12a,0x9bc66842,0x7d4d9b00,0x70330871,0xd6639cca,0xb3c9d20e,0xcb308db3,0x33c9fc07,0x3fd4e6ae,0xdbe9c48b,0xaadd9db8}; - static const u32 local_n_bp512r1[BP512R1_WORDSIZE]={0x9ca90069,0xb5879682,0x085ddadd,0x1db1d381,0x7fac1047,0x41866119,0x4ca92619,0x553e5c41,0x70330870,0xd6639cca,0xb3c9d20e,0xcb308db3,0x33c9fc07,0x3fd4e6ae,0xdbe9c48b,0xaadd9db8}; + static const u32 local_inv2_bp512r1[BP512R1_WORDSIZE]={0x2c1d247a, 0x9455302b, 0x96c16342, 0x1440ff97, 0x7351c073, 0x5766d095, 0x4de33421, 0xbea6cd80, 0x38198438, 0x6b31ce65, 0xd9e4e907, 0xe59846d9, 0x19e4fe03, 0x9fea7357, 0x6df4e245, 0x556ecedc}; + static const u32 local_xg_bp512r1[BP512R1_WORDSIZE]={0xbcb9f822, 0x8b352209, 0x406a5e68, 0x7c6d5047, 0x93b97d5f, 0x50d1687b, 0xe2d0d48d, 0xff3b1f78, 0xf4d0098e, 0xb43b62ee, 0xb5d916c1, 0x85ed9f70, 0x9c4c6a93, 0x5a21322e, 0xd82ed964, 0x81aee4bd}; + static const u32 local_yg_bp512r1[BP512R1_WORDSIZE]={0x3ad80892, 0x78cd1e0f, 0xa8f05406, 0xd1ca2b2f, 0x8a2763ae, 0x5bca4bd8, 0x4a5f485e, 0xb2dcde49, 0x881f8111, 0xa000c55b, 0x24a57b1a, 0xf209f700, 0xcf7822fd, 0xc0eabfa9, 0x566332ec, 0x7dde385d}; + static const u32 local_a_bp512r1[BP512R1_WORDSIZE]={0x77fc94ca, 0xe7c1ac4d, 0x2bf2c7b9, 0x7f1117a7, 0x8b9ac8b5, 0x0a2ef1c9, 0xa8253aa1, 0x2ded5d5a, 0xea9863bc, 0xa83441ca, 0x3df91610, 0x94cbdd8d, 0xac234cc5, 0xe2327145, 0x8b603b89, 0x7830a331}; +static const u32 local_b_bp512r1[BP512R1_WORDSIZE]={0x8016f723, 0x2809bd63, 0x5ebae5dd, 0x984050b7, 0xdc083e67, 0x77fc94ca, 0xe7c1ac4d, 0x2bf2c7b9, 0x7f1117a7, 0x8b9ac8b5, 0x0a2ef1c9, 0xa8253aa1, 0x2ded5d5a, 0xea9863bc, 0xa83441ca, 0x3df91610}; + static const u32 local_p_bp512r1[BP512R1_WORDSIZE]={0x583a48f3, 0x28aa6056, 0x2d82c685, 0x2881ff2f, 0xe6a380e6, 0xaecda12a, 0x9bc66842, 0x7d4d9b00, 0x70330871, 0xd6639cca, 0xb3c9d20e, 0xcb308db3, 0x33c9fc07, 0x3fd4e6ae, 0xdbe9c48b, 0xaadd9db8}; + static const u32 local_n_bp512r1[BP512R1_WORDSIZE]={0x9ca90069, 0xb5879682, 0x085ddadd, 0x1db1d381, 0x7fac1047, 0x41866119, 0x4ca92619, 0x553e5c41, 0x70330870, 0xd6639cca, 0xb3c9d20e, 0xcb308db3, 0x33c9fc07, 0x3fd4e6ae, 0xdbe9c48b, 0xaadd9db8}; /** ECC Curve structure variable for Brainpool P512r1. * * @ingroup UCL_ECDSA @@ -330,13 +343,13 @@ extern ucl_type_curve bp512r1; /** ECDSA signature. * Compute a ECDSA signature, using curve domain parameters * -* @param[out] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r,s) values +* @param[out] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r, s) values * @param[in] *d: input, the secret key * @param[in] *ucl_hash: input, the pointer to the hash function (see hash functions documentation for already available ones) * @param[in] *input: input, the message or the hash digest to be signed, * @param[in] inputlength: input, the input length, in bytes -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) -* @param[in] configuration (combination of any of these lines) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] configuration (combination of any of these lines) - UCL_R_PRECOMP or UCL_PRECOMP_R: - UCL_R_PRECOMP: using precomputed r to finish the signature computation, - UCL_PRECOMP_R: to only pre-compute the r value, @@ -347,7 +360,7 @@ extern ucl_type_curve bp512r1; - Examples are: - UCL_HASH_INPUT<ECDSA signature verification. * Verify a ECDSA signature, using curve domain structure * * @param[in] public key: pointer to a ucl_type_ecc_u8_affine_point structure, containing the ECC public key, used for signature verification -* @param[in] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r,s) values +* @param[in] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r, s) values * @param[in] *ucl_hash: input, the pointer to the hash function (see hash functions documentation for already available ones) * @param[in] *input: input, the message or the hash digest to be signed, * @param[in] inputlength: input, the input length, in bytes -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) -* @param[in] configuration (combination of any of these lines) -* @param[in] +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] configuration (combination of any of these lines) +* @param[in] * @param[in] *ucl_hash: input, the already hashed digest of the message, * @param[in] hashlength: input, the hash length, in bytes * @return Error code * @retval #UCL_OK if the signature is verified * @retval #UCL_ERROR if the signature is not verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q,ucl_type_ecdsa_signature signature,int(*ucl_hash)(u8*,u8*,u32),u8 *input,u32 inputlength,ucl_type_curve *curve_params,u32 configuration); +int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q, ucl_type_ecdsa_signature signature, int(*ucl_hash)(u8*, u8*, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration); /** ECC multiplication. * multiply a scalar by a ECC point, using affine parameters, computation performed in Jacobian parameters @@ -386,14 +399,14 @@ int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q,ucl_type_ecdsa_signatu * @param[out] Q: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC result point, * @param[in] m: pointer to a word array containing the scalar, * @param[in] X1: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be multiplied by the scalar, -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) * @return Error code * @retval #UCL_OK if the signature is verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1,ucl_type_curve *curve_params); +int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params); /** ECC addition. * add two ECC points in affine coordinates @@ -401,28 +414,28 @@ int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_di * @param[out] Q3: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC result point, * @param[in] Q1: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be added with, * @param[in] Q2: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be added with, -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) * @return Error code * @retval #UCL_OK if the signature is verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ecc_add(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1,ucl_type_ecc_digit_affine_point Q2,ucl_type_curve *curve_params); +int ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params); /** ECC doubling. * doubling one ECC point in affine coordinates * * @param[out] Q3: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC result point, * @param[in] Q1: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be doubled -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) * @return Error code * @retval #UCL_OK if the signature is verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ecc_double(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params); +int ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params); -#endif//ECDSA_GENERIC_API +#endif // LIBRARIES_FCL_INCLUDE_UCL_ECDSA_GENERIC_API_H_ diff --git a/Libraries/FCL/include/ucl/info.h b/Libraries/FCL/include/ucl/info.h index 200261ec2dc..77da951458b 100644 --- a/Libraries/FCL/include/ucl/info.h +++ b/Libraries/FCL/include/ucl/info.h @@ -1,45 +1,57 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: info definition -* Filename: info.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef OLD_INFO_H_ -#define OLD_INFO_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_INFO_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_INFO_H_ #include "ucl/ucl_info.h" -#endif /* OLD_INFO_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_INFO_H_ diff --git a/Libraries/FCL/include/ucl/types.h b/Libraries/FCL/include/ucl/types.h index 2d7d780a06e..45000519824 100644 --- a/Libraries/FCL/include/ucl/types.h +++ b/Libraries/FCL/include/ucl/types.h @@ -1,45 +1,57 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: types definition -* Filename: types.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _OLD_TYPES_H_ -#define _OLD_TYPES_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_TYPES_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_TYPES_H_ #include "ucl/ucl_types.h" -#endif /* _OLD_TYPES_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_TYPES_H_ diff --git a/Libraries/FCL/include/ucl/ucl.h b/Libraries/FCL/include/ucl/ucl.h index 739fe594a09..08f35ea3915 100644 --- a/Libraries/FCL/include/ucl/ucl.h +++ b/Libraries/FCL/include/ucl/ucl.h @@ -1,48 +1,60 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: ucl definition -* Filename: ucl.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef UCL_H_ -#define UCL_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_H_ #include "ucl/ucl_types.h" #include "ucl/ucl_config.h" #include "ucl/ucl_defs.h" #include "ucl/ucl_retdefs.h" -#endif /*UCL_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes.h b/Libraries/FCL/include/ucl/ucl_aes.h index 9da08a7a2a7..970e4c5eb88 100644 --- a/Libraries/FCL/include/ucl/ucl_aes.h +++ b/Libraries/FCL/include/ucl/ucl_aes.h @@ -1,14 +1,14 @@ -/******************************************************************************* - * Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -30,9 +30,27 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - ********************************************************************************/ -#ifndef _UCL_AES_H_ -#define _UCL_AES_H_ + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_H_ #include "ucl_types.h" @@ -140,4 +158,4 @@ extern "C" { } #endif /* __cplusplus */ -#endif /*_UCL_AES_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes_cbc.h b/Libraries/FCL/include/ucl/ucl_aes_cbc.h index 167a12ab13e..1ca67335beb 100644 --- a/Libraries/FCL/include/ucl/ucl_aes_cbc.h +++ b/Libraries/FCL/include/ucl/ucl_aes_cbc.h @@ -1,39 +1,56 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ -#ifndef _UCL_AES_CBC_H_ -#define _UCL_AES_CBC_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_H_ #include "ucl/ucl_aes.h" @@ -106,7 +123,7 @@ int ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, * @retval #UCL_INVALID_ARG @p keylen is invalid * @retval #UCL_INVALID_MODE The mode is not one of those described * - * @ingroup UCL_CBC_AES + * @ingroup UCL_CBC_AES */ int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode); @@ -114,7 +131,7 @@ int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode); * Process the Data. * * @param[out] dst Pointer to the processed data - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * @param[in] src Pointer to the data * @param[in] len Data byte length * @@ -128,7 +145,7 @@ int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode); * @retval #UCL_INVALID_ARG The data byte length is not a multiple of * #UCL_AES_BLOCKSIZE * - * @ingroup UCL_CBC_AES + * @ingroup UCL_CBC_AES */ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len); @@ -136,14 +153,14 @@ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, /**AES-CBC Finish. * Zeroize the context. * - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * * @return Error code * * @retval #UCL_OK No error occurred * @retval #UCL_INVALID_OUTPUT The output is the pointer #NULL * - * @ingroup UCL_CBC_AES + * @ingroup UCL_CBC_AES */ int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx); @@ -152,7 +169,7 @@ int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx); * Process the Data. * * @param[out] dst Pointer to the output data - * @param[out,in] ctx AES context + * @param[out, in] ctx AES context * @param[in] src Pointer to the input data * @param[in] len Data byte length * @@ -174,4 +191,4 @@ int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx); } #endif /* __cplusplus */ -#endif /*_UCL_AES_CBC_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h b/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h index 46ea2995960..739944051fd 100644 --- a/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h +++ b/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h @@ -1,39 +1,56 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ -#ifndef _UCL_AES_CBC_MAC_H_ -#define _UCL_AES_CBC_MAC_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_MAC_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_MAC_H_ #include "ucl/ucl_aes.h" @@ -94,14 +111,14 @@ extern "C" { * @retval #UCL_INVALID_OUTPUT The output is the pointer #NULL * @retval #UCL_INVALID_ARG @p keylen is invalid * - * @ingroup UCL_CBC_MAC_AES + * @ingroup UCL_CBC_MAC_AES */ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen); /** AES-CBC_MAC Core. * Process the Data. * - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * @param[in] src Pointer to the data * @param[in] len Data byte length * @@ -115,7 +132,7 @@ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen); * @retval #UCL_INVALID_ARG The data byte length is not a multiple of * #UCL_AES_BLOCKSIZE * - * @ingroup UCL_CBC_MAC_AES + * @ingroup UCL_CBC_MAC_AES */ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len); @@ -124,14 +141,14 @@ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len); * * @param[out] tmac Pointer to the outputted MAC * @param[in] tmac_byteLen outputted MAC byte length - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * * @return Error code * * @retval #UCL_OK No error occurred * @retval #UCL_INVALID_OUTPUT The output is the pointer #NULL * - * @ingroup UCL_CBC_MAC_AES + * @ingroup UCL_CBC_MAC_AES */ int ucl_aes_cbc_mac_finish(u8 *tmac, u32 tmac_byteLen, ucl_aes_ctx_t *ctx); @@ -139,4 +156,4 @@ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len); } #endif /* __cplusplus */ -#endif /*_UCL_AES_CBC_MAC_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_MAC_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes_ecb.h b/Libraries/FCL/include/ucl/ucl_aes_ecb.h index 6395b65d8f5..b1447a8540d 100644 --- a/Libraries/FCL/include/ucl/ucl_aes_ecb.h +++ b/Libraries/FCL/include/ucl/ucl_aes_ecb.h @@ -1,38 +1,56 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -********************************************************************************/ -#ifndef _UCL_AES_ECB_H_ -#define _UCL_AES_ECB_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_ECB_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_ECB_H_ #include "ucl/ucl_aes.h" @@ -75,7 +93,7 @@ extern "C" { * * @ingroup UCL_ECB_AES */ -int ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen,int mode); +int ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, int mode); /** AES-ECB Init. * Initialise AES ECB Context. @@ -109,7 +127,7 @@ int ucl_aes_ecb_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, int mode); * Process the Data. * * @param[out] dst Pointer to the output data - * @param[out,in] ctx AES context + * @param[out, in] ctx AES context * @param[in] src Pointer to the input data * @param[in] len Data byte length * @@ -130,7 +148,7 @@ int ucl_aes_ecb_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len); /** AES-ECB Finish. * Zeroize the context. * - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * * @return Error code * @@ -145,7 +163,7 @@ int ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx); * Process the Data. * * @param[out] dst Pointer to the output data - * @param[out,in] ctx AES context + * @param[out, in] ctx AES context * @param[in] src Pointer to the input data * @param[in] len Data byte length * @@ -167,4 +185,4 @@ int ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx); } #endif /* __cplusplus */ -#endif /*_UCL_AES_ECB_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_ECB_H_ diff --git a/Libraries/FCL/include/ucl/ucl_config.h b/Libraries/FCL/include/ucl/ucl_config.h index dc30c95ff22..3048df0a8c5 100644 --- a/Libraries/FCL/include/ucl/ucl_config.h +++ b/Libraries/FCL/include/ucl/ucl_config.h @@ -1,44 +1,56 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: UCL definition -* Filename: ucl_config.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _UCL_CONFIG_H_ -#define _UCL_CONFIG_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_CONFIG_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_CONFIG_H_ #ifdef __MINGW32__ @@ -102,4 +114,4 @@ * @ingroup UCL_CONFIG */ #define UCL_ECC_PRECISION 17 -#endif /*_UCL_CONFIG_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_CONFIG_H_ diff --git a/Libraries/FCL/include/ucl/ucl_defs.h b/Libraries/FCL/include/ucl/ucl_defs.h index 549c68ae56c..ebc28e8250b 100644 --- a/Libraries/FCL/include/ucl/ucl_defs.h +++ b/Libraries/FCL/include/ucl/ucl_defs.h @@ -1,44 +1,56 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: UCL usual definition -* Filename: ucl_defs.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _UCL_DEFS_H_ -#define _UCL_DEFS_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_DEFS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_DEFS_H_ /** @defgroup UCL_DEFINITIONS Definitions * @@ -113,7 +125,7 @@ */ #define UCL_CIPHER_DECRYPT_EEE 0x3 -#define UCL_CIPHER_MODE_LAST UCL_CIPHER_DECRYPT_EEE +#define UCL_CIPHER_MODE_LAST UCL_CIPHER_DECRYPT_EEE /*============================================================================== * ASN1 @@ -170,15 +182,15 @@ #define UCL_NO_PRECOMP_TRICK 0 #define UCL_PRECOMP_TRICK 1 #define UCL_PRECOMP_FULL_TRICK 2 -#define UCL_PRECOMP_MASK 7//so 3 bits: 9,10,11 -#define UCL_PRECOMP_TRICK_MASK 7// so 3 bits: 12,13,14 -#define UCL_INPUT_MASK 3//so 2 bits: 7,8 -#define UCL_CURVE_MASK 15//so 4 bits: 3,4,5,6 -#define UCL_HASH_MASK 7//so 3 bits: 0,1,2 +#define UCL_PRECOMP_MASK 7//so 3 bits: 9, 10, 11 +#define UCL_PRECOMP_TRICK_MASK 7// so 3 bits: 12, 13, 14 +#define UCL_INPUT_MASK 3//so 2 bits: 7, 8 +#define UCL_CURVE_MASK 15//so 4 bits: 3, 4, 5, 6 +#define UCL_HASH_MASK 7//so 3 bits: 0, 1, 2 #define UCL_HASH_SHIFT 0 #define UCL_CURVE_SHIFT 3 #define UCL_INPUT_SHIFT 7 #define UCL_PRECOMP_SHIFT 9 #define UCL_PRECOMP_TRICK_SHIFT 12 -#endif /*_UCL_DEFS_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_DEFS_H_ diff --git a/Libraries/FCL/include/ucl/ucl_hash.h b/Libraries/FCL/include/ucl/ucl_hash.h index 29f0ac696aa..fefe774d119 100644 --- a/Libraries/FCL/include/ucl/ucl_hash.h +++ b/Libraries/FCL/include/ucl/ucl_hash.h @@ -1,47 +1,58 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: hash definition -* Filename: ucl_hash.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ //these defines are used to select or not hash functions //useful on platforms with limited resources -#ifndef _UCL_HASH_H -#define _UCL_HASH_H +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_HASH_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_HASH_H_ #define HASH_SHA256 #define HASH_SHA384 @@ -52,4 +63,5 @@ #define MAX_HASH_FUNCTIONS 5 extern int hash_size[MAX_HASH_FUNCTIONS]; -#endif//UCL_HASH + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_HASH_H_ diff --git a/Libraries/FCL/include/ucl/ucl_retdefs.h b/Libraries/FCL/include/ucl/ucl_retdefs.h index 7c406d9ce83..62c38e15836 100644 --- a/Libraries/FCL/include/ucl/ucl_retdefs.h +++ b/Libraries/FCL/include/ucl/ucl_retdefs.h @@ -1,44 +1,56 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: return definition -* Filename: ucl_retdefs.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef UCL_RETDEFS_H_ -#define UCL_RETDEFS_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_RETDEFS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_RETDEFS_H_ /** @file ucl_retdefs.h * @defgroup UCL_RETURN Definitions of returns @@ -237,4 +249,4 @@ #define UCL_NOT_IMPLEMENTED -99 -#endif /* UCL_RETDEFS_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_RETDEFS_H_ diff --git a/Libraries/FCL/include/ucl/ucl_rng.h b/Libraries/FCL/include/ucl/ucl_rng.h index bafdf3062de..f8ee4d62b87 100644 --- a/Libraries/FCL/include/ucl/ucl_rng.h +++ b/Libraries/FCL/include/ucl/ucl_rng.h @@ -1,45 +1,57 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: RNG -* Description: RNG interface -* Filename: ucl_rng.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef UCL_RNG_H_ -#define UCL_RNG_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ - int __API__ ucl_rng_read(u8* rand, u32 rand_byteLen); - -#endif /*UCL_RNG_H_*/ +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_RNG_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_RNG_H_ + +int __API__ ucl_rng_read(u8* rand, u32 rand_byteLen); + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_RNG_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha256.h b/Libraries/FCL/include/ucl/ucl_sha256.h index 02bfa3d51b7..644a982e8cd 100644 --- a/Libraries/FCL/include/ucl/ucl_sha256.h +++ b/Libraries/FCL/include/ucl/ucl_sha256.h @@ -1,44 +1,57 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SHA256 -* Description: sha256 definition -* Filename: ucl_sha256.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _UCL_SHA256_H_ -#define _UCL_SHA256_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA256_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA256_H_ + #include #ifdef __cplusplus @@ -138,7 +151,7 @@ int __API__ ucl_sha256(u8 *hash, u8 *data, u32 data_byteLen); /** SHA256 Init. * The initialisation of SHA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -152,7 +165,7 @@ int __API__ ucl_sha256_init(ucl_sha256_ctx_t *context); /** SHA256 Core. * The core of SHA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -175,7 +188,7 @@ int __API__ ucl_sha256_core(ucl_sha256_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 32 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha256_init and #ucl_sha256_core must be processed before. * @@ -193,4 +206,5 @@ int __API__ ucl_sha256_finish(u8 *hash, ucl_sha256_ctx_t *context); #ifdef __cplusplus } #endif /* _ cplusplus */ -#endif /* _UCL_SHA256_H_ */ + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA256_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha3.h b/Libraries/FCL/include/ucl/ucl_sha3.h index 5e9ebc94f9e..0a41ba222c2 100644 --- a/Libraries/FCL/include/ucl/ucl_sha3.h +++ b/Libraries/FCL/include/ucl/ucl_sha3.h @@ -1,6 +1,56 @@ -/* sha3.h */ -#ifndef _UCL_SHA3_H -#define _UCL_SHA3_H +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA3_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA3_H_ #ifdef __cplusplus extern "C" { @@ -21,6 +71,7 @@ extern "C" { #define UCL_SHA3_256 10 #define UCL_SHA3_384 11 #define UCL_SHA3_512 12 + /** * SHA3 Algorithm context. */ @@ -53,14 +104,14 @@ extern "C" { typedef struct sha3_ctx { - /* 1600 bits algorithm hashing state */ - u64 hash[UCL_SHA3_MAX_PERMSIZE]; - /* 1536-bit buffer for leftovers */ - u64 message[UCL_SHA3_MAXQRATE_QWORDS]; - /* count of bytes in the message[] buffer */ - u32 rest; - /* size of a message block processed at once */ - u32 block_size; + /* 1600 bits algorithm hashing state */ + u64 hash[UCL_SHA3_MAX_PERMSIZE]; + /* 1536-bit buffer for leftovers */ + u64 message[UCL_SHA3_MAXQRATE_QWORDS]; + /* count of bytes in the message[] buffer */ + u32 rest; + /* size of a message block processed at once */ + u32 block_size; } sha3_ctx; #define SHA3_SPONGE_WORDS (((1600)/8/*bits to byte*/)/sizeof(u64)) @@ -70,21 +121,21 @@ typedef struct sha3_context_ { u64 s[SHA3_SPONGE_WORDS]; u8 sb[SHA3_SPONGE_WORDS * 8]; }; - int byteIndex; /* 0..7--the next byte after the set one - * (starts from 0; 0--none are buffered) */ - int wordIndex; /* 0..24--the next word to integrate input - * (starts from 0) */ - int capacityWords; /* the double size of the hash output in - * words (e.g. 16 for Keccak 512) */ + int byteIndex; // 0..7--the next byte after the set one + // (starts from 0; 0--none are buffered) + int wordIndex; // 0..24--the next word to integrate input + // (starts from 0) + int capacityWords; // The double size of the hash output in + // words (e.g. 16 for Keccak 512) } ucl_sha3_ctx_t; - // methods for calculating the hash function - +// methods for calculating the hash function + /*============================================================================*/ /** SHA3-224 Init. * The initialisation of SHA3-224. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -93,12 +144,13 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_224_init(ucl_sha3_ctx_t *ctx); +int ucl_sha3_224_init(ucl_sha3_ctx_t *ctx); + /*============================================================================*/ /** SHA3-256 Init. * The initialisation of SHA3-256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -107,12 +159,13 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_256_init(ucl_sha3_ctx_t *ctx); +int ucl_sha3_256_init(ucl_sha3_ctx_t *ctx); + /*============================================================================*/ /** SHA3-384 Init. * The initialisation of SHA3-384. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -121,12 +174,13 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_384_init(ucl_sha3_ctx_t *ctx); +int ucl_sha3_384_init(ucl_sha3_ctx_t *ctx); + /*============================================================================*/ /** SHA3-512 Init. * The initialisation of SHA3-512. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -135,12 +189,13 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_512_init(ucl_sha3_ctx_t *ctx); +int ucl_sha3_512_init(ucl_sha3_ctx_t *ctx); + /*============================================================================*/ /** SHA3 Core. * The core of SHA3, common to all SHA3 hash functions. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -154,7 +209,8 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_core(ucl_sha3_ctx_t *ctx, const u8* msg, u32 size); +int ucl_sha3_core(ucl_sha3_ctx_t *ctx, const u8* msg, u32 size); + /*============================================================================*/ /** SHA3 Finish. * Finish the process of SHA3, common to all SHA3 hash functions. @@ -162,7 +218,7 @@ typedef struct sha3_context_ { * @pre Hash byte length is equal to 28/32/48 or 64 bytes * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha3_*_init and #ucl_sha3_core must be processed before. * @@ -174,8 +230,7 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - - int ucl_sha3_finish(u8 *hash,ucl_sha3_ctx_t *ctx); +int ucl_sha3_finish(u8 *hash, ucl_sha3_ctx_t *ctx); /*============================================================================*/ /** SHA3-224. @@ -194,8 +249,7 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - - int ucl_sha3_224(u8 *digest,u8 *msg,u32 msg_Len); +int ucl_sha3_224(u8 *digest, u8 *msg, u32 msg_Len); /*============================================================================*/ /** SHA3-256. @@ -214,7 +268,7 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_256(u8 *digest,u8 *msg,u32 msg_Len); +int ucl_sha3_256(u8 *digest, u8 *msg, u32 msg_Len); /*============================================================================*/ /** SHA3-384. @@ -233,7 +287,7 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_384(u8 *digest,u8 *msg,u32 msg_Len); +int ucl_sha3_384(u8 *digest, u8 *msg, u32 msg_Len); /*============================================================================*/ /** SHA3-512. @@ -252,13 +306,14 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_512(u8 *digest,u8 *msg,u32 msg_Len); - int ucl_shake128_init(ucl_sha3_ctx_t *ctx); - int ucl_shake256_init(ucl_sha3_ctx_t *ctx); - int ucl_shake_finish(u8 *hash,ucl_sha3_ctx_t *ctx); +int ucl_sha3_512(u8 *digest, u8 *msg, u32 msg_Len); + +int ucl_shake128_init(ucl_sha3_ctx_t *ctx); +int ucl_shake256_init(ucl_sha3_ctx_t *ctx); +int ucl_shake_finish(u8 *hash, ucl_sha3_ctx_t *ctx); #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ -#endif /* _UCL_SHA3_H */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA3_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha384.h b/Libraries/FCL/include/ucl/ucl_sha384.h index d0864c67062..c6c7521f3da 100644 --- a/Libraries/FCL/include/ucl/ucl_sha384.h +++ b/Libraries/FCL/include/ucl/ucl_sha384.h @@ -1,44 +1,57 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SHA512 -* Description: sha512 definition -* Filename: ucl_sha512.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _UCL_SHA384_H_ -#define _UCL_SHA384_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA384_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA384_H_ + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -139,7 +152,7 @@ int ucl_sha384(u8 *hash, u8 *data, u32 data_byteLen); /** SHA384 Init. * The initialisation of SHA384. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -153,7 +166,7 @@ int ucl_sha384_init(ucl_sha384_ctx_t *context); /** SHA384 Core. * The core of SHA384. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -176,7 +189,7 @@ int ucl_sha384_core(ucl_sha384_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 32 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha384_init and #ucl_sha384_core must be processed before. * @@ -194,7 +207,7 @@ int ucl_sha384_finish(u8 *hash, ucl_sha384_ctx_t *context); void sha384_stone(u32 hash[8], u32 stone[16]); int ucl_hmac_sha384(u8 *mac, u32 mac_byteLen, u8 *message, u32 message_byteLen, - u8 *key, u32 key_byteLen); + u8 *key, u32 key_byteLen); int ucl_hmac_sha384_init(ucl_sha384_ctx_t *context , u8 *key, u32 key_byteLen); int ucl_hmac_sha384_core(ucl_sha384_ctx_t *context, u8 *data, u32 byteLen); int ucl_hmac_sha384_finish(u8 *mac, u32 mac_byteLen, ucl_sha384_ctx_t *context, @@ -203,4 +216,4 @@ int ucl_hmac_sha384_finish(u8 *mac, u32 mac_byteLen, ucl_sha384_ctx_t *context, } #endif /* __cplusplus */ -#endif +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA384_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha512.h b/Libraries/FCL/include/ucl/ucl_sha512.h index 96432bd8461..df20b84c69f 100644 --- a/Libraries/FCL/include/ucl/ucl_sha512.h +++ b/Libraries/FCL/include/ucl/ucl_sha512.h @@ -1,52 +1,65 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SHA512 -* Description: sha512 definition -* Filename: ucl_sha512.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _UCL_SHA512_H_ -#define _UCL_SHA512_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA512_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA512_H_ + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ + #include #include #include - /** @file ucl_sha512.h * @defgroup UCL_SHA512 SHA512 * Secure Hash Algorithm 512, from FIPS 180-2. @@ -140,7 +153,7 @@ int ucl_sha512(u8 *hash, u8 *data, u32 data_byteLen); /** SHA512 Init. * The initialisation of SHA512. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -154,7 +167,7 @@ int ucl_sha512_init(ucl_sha512_ctx_t *context); /** SHA512 Core. * The core of SHA512. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -177,7 +190,7 @@ int ucl_sha512_core(ucl_sha512_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 64 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha512_init and #ucl_sha512_core must be processed before. * @@ -195,7 +208,7 @@ int ucl_sha512_finish(u8 *hash, ucl_sha512_ctx_t *context); void sha512_stone(u64 hash[8], u64 stone[16]); int ucl_hmac_sha512(u8 *mac, u32 mac_byteLen, u8 *message, u32 message_byteLen, - u8 *key, u32 key_byteLen); + u8 *key, u32 key_byteLen); int ucl_hmac_sha512_init(ucl_sha512_ctx_t *context , u8 *key, u32 key_byteLen); int ucl_hmac_sha512_core(ucl_sha512_ctx_t *context, u8 *data, u32 byteLen); int ucl_hmac_sha512_finish(u8 *mac, u32 mac_byteLen, ucl_sha512_ctx_t *context, @@ -204,5 +217,5 @@ int ucl_hmac_sha512_finish(u8 *mac, u32 mac_byteLen, ucl_sha512_ctx_t *context, } #endif /* __cplusplus */ -#endif +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA512_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sia256.h b/Libraries/FCL/include/ucl/ucl_sia256.h index 238bc4235dd..452ce51a506 100644 --- a/Libraries/FCL/include/ucl/ucl_sia256.h +++ b/Libraries/FCL/include/ucl/ucl_sia256.h @@ -1,35 +1,64 @@ -/*============================================================================ +/****************************************************************************** * - * ucl_sia256.h + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * - *==========================================================================*/ -/*============================================================================ + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * - * Copyright © 2009 Innova Card. - * All Rights Reserved. Do not disclose. + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. * - * This software is the confidential and proprietary information of - * Innova Card ("Confidential Information"). You siall not - * disclose such Confidential Information and siall use it only in - * accordance with the terms of the license agreement you entered - * into with Innova Card. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. * - * Innova Card makes no representations or warranties about the suitability of - * the software, either express or implied, including but not limited to - * the implied warranties of merchantability, fitness for a particular purpose, - * or non-infrigement. Innova Card siall not be liable for any damages suffered - * by licensee as the result of using, modifying or distributing this software - * or its derivatives. + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. * - *==========================================================================*/ + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + /*============================================================================ * * Purpose : SIA256 * *==========================================================================*/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SIA256_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SIA256_H_ + #ifndef PROFILE_2 -#ifndef _UCL_SIA256_H_ -#define _UCL_SIA256_H_ #ifdef __cplusplus extern "C" { @@ -130,7 +159,7 @@ int __API__ ucl_sia256(u8 *hash, u8 *data, u32 data_byteLen); /** SIA256 Init. * The initialisation of SIA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -146,7 +175,7 @@ int __API__ ucl_sia256_init(ucl_sia256_ctx_t *context); /** SIA256 Core. * The core of SIA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -171,7 +200,7 @@ int __API__ ucl_sia256_core(ucl_sia256_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 32 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sia256_init and #ucl_sia256_core must be processed before. * @@ -188,7 +217,8 @@ int __API__ ucl_sia256_finish(u8 *hash, ucl_sia256_ctx_t *context); #ifdef __cplusplus } -#endif /* _ cplusplus */ +#endif /* __cplusplus__ */ -#endif /* _UCL_SIA256_H_ */ #endif//PROFILE2 + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SIA256_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sys.h b/Libraries/FCL/include/ucl/ucl_sys.h index 4ead122d75b..32769dc46fe 100644 --- a/Libraries/FCL/include/ucl/ucl_sys.h +++ b/Libraries/FCL/include/ucl/ucl_sys.h @@ -1,43 +1,57 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SYS -* Description: init definition -* Filename: ucl_sys.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef _UCL_SYS_H_ -#define _UCL_SYS_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SYS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SYS_H_ + int ucl_init(void); -#endif /* _UCL_SYS_H_ */ + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SYS_H_ diff --git a/Libraries/FCL/include/ucl/ucl_types.h b/Libraries/FCL/include/ucl/ucl_types.h index 3f7891c2366..dd9aa3306ff 100644 --- a/Libraries/FCL/include/ucl/ucl_types.h +++ b/Libraries/FCL/include/ucl/ucl_types.h @@ -1,47 +1,62 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: UCL -* Description: types definition -* Filename: ucl_types.h -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ -#ifndef UCL_TYPE_H_ -#define UCL_TYPE_H_ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_TYPES_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_TYPES_H_ + +#include + typedef unsigned int u32; -typedef unsigned short u16; +typedef uint16_t u16; typedef unsigned char u8; -typedef unsigned long long u64; +typedef uint64_t u64; -#endif /* UCL_TYPE_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_TYPES_H_ diff --git a/Libraries/FCL/libfcl.mk b/Libraries/FCL/libfcl.mk index 4e2b73ea1b2..9b8217e1436 100644 --- a/Libraries/FCL/libfcl.mk +++ b/Libraries/FCL/libfcl.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file PROJECT_NAME=libfcl @@ -91,4 +109,53 @@ endif MAKECMDGOALS=lib # Include the rules for building for this target +############################################################################### + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + # + # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## include $(CMSIS_ROOT)/Device/Maxim/$(TARGET_UC)/Source/$(COMPILER)/$(TARGET_LC).mk diff --git a/Libraries/FCL/readme.txt b/Libraries/FCL/readme.txt index 7c504323847..caf83eb6205 100644 --- a/Libraries/FCL/readme.txt +++ b/Libraries/FCL/readme.txt @@ -12,6 +12,6 @@ On a x86-cygwin PC, just run build_fcl_x86_external release notes 1.0.0: initial release 1.0.1: p192 initializers size corrected; hash functions number updated -1.1.0: sha-3 (sha-224,sha-256,sha-384, sha-512) has been added +1.1.0: sha-3 (sha-224, sha-256, sha-384, sha-512) has been added 1.2.0: secp384r1, secp521r1, bp256r1, bp384r1, bp512r1 curves added; sha384 and sha512 added -1.2.1: AES (128,192, 256) in ECB, CBC modes and AES-CBC-MAC added +1.2.1: AES (128, 192, 256) in ECB, CBC modes and AES-CBC-MAC added diff --git a/Libraries/FCL/src/Makefile b/Libraries/FCL/src/Makefile index 7090f8a1748..f9b187844ed 100644 --- a/Libraries/FCL/src/Makefile +++ b/Libraries/FCL/src/Makefile @@ -1,33 +1,83 @@ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + # # Makefile for the FCL, Free Cryptographic Library # -CC= gcc.exe +CC= gcc.exe CFLAGS= -O2 -W -Wall -DASYMMETRIC -DWORD32 -DX86 -D__x86 IFLAGS= -I ./ -I ./include -I ../include LFLAGS= -L ./ LIBFLAGS= -OBJ = main.o ecdsatest.o shatest.o ucl_sha256.o sha256_stone.o ucl_sha384.o ucl_sha512.o sha512_stone.o ucl_sia256.o ucl_sha3.o bignum.o ecdsa_generic_api.o ecdsa_high.o ucl_rng.o ucl_sys.o +OBJ = main.o ecdsatest.o shatest.o ucl_sha256.o sha256_stone.o ucl_sha384.o ucl_sha512.o sha512_stone.o ucl_sia256.o ucl_sha3.o bignum.o ecdsa_generic_api.o ecdsa_high.o ucl_rng.o ucl_sys.o TRACE_OBJ= # # Rules # -all: fcl_testing.exe +all: fcl_testing.exe # # Dependencies # -%.o: %.c - $(CC) $(CFLAGS) $(IFLAGS) -c -o $@ $< +%.o: %.c + $(CC) $(CFLAGS) $(IFLAGS) -c -o $@ $ < -fcl_testing.exe: $(OBJ) - $(CC) $(CFLAGS) $(IFLAGS) $(LFLAGS) -o fcl_testing.exe $(OBJ) $(LIBFLAGS) +fcl_testing.exe: $(OBJ) + $(CC) $(CFLAGS) $(IFLAGS) $(LFLAGS) -o fcl_testing.exe $(OBJ) $(LIBFLAGS) # End Of Makefile - diff --git a/Libraries/FCL/src/aes.c b/Libraries/FCL/src/aes.c index e60a6c436ef..7533554d06a 100644 --- a/Libraries/FCL/src/aes.c +++ b/Libraries/FCL/src/aes.c @@ -1,9 +1,61 @@ -//AES implementation based on -/* Optimised ANSI C code for the Rijndael cipher (now AES) +/****************************************************************************** * - * @author Vincent Rijmen - * @author Antoon Bosselaers - * @author Paulo Barreto + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +/** + * @version 3.0 (December 2000) + * + * Optimised ANSI C code for the Rijndael cipher (now AES) + * + * @author Vincent Rijmen < vincent.rijmen@esat.kuleuven.ac.be > + * @author Antoon Bosselaers < antoon.bosselaers@esat.kuleuven.ac.be > + * @author Paulo Barreto < paulo.barreto@terra.com.br > * * This code is hereby placed in the public domain. * @@ -19,63 +71,68 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +// This implementation is based on Rijndael cipher (now AES). + #include #include #include #ifdef SWAP -# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) -# define GETU32(p) SWAP(*((u32 *)(p))) -# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); } +#define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) +#define GETU32(p) SWAP(*((u32 *)(p))) +#define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); } #else -# define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) -# define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); } +#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) +#define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); } #endif -static const u32 Te0[256] = - { - 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, - 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, - 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, - 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, - 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, - 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, - 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, - 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, - 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, - 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, - 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, - 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, - 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, - 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, - 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, - 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, - 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, - 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, - 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, - 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, - 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, - 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,}; - -static const u8 te4[256]={0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, - 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, - 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, - 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, - 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, - 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, - 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, - 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, - 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, - 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, - 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, - 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, - 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, - 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, - 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, - 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, - 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16}; -static const u32 Td0[256] = - { +static const u32 Te0[256] = { + 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, + 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, + 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, + 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, + 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, + 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, + 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, + 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, + 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, + 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, + 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, + 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, + 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, + 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, + 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, + 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, + 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, + 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, + 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, + 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, + 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, + 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU +}; + +static const u8 te4[256] = { + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, + 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, + 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, + 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, + 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, + 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, + 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, + 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, + 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, + 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, + 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, + 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, + 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, + 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, + 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, + 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, + 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 +}; + +static const u32 Td0[256] = { 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, @@ -97,381 +154,242 @@ static const u32 Td0[256] = 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, - 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,}; -static const u8 ti4[256]={0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, - 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, - 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, - 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, - 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, - 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, - 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, - 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, - 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, - 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, - 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d}; + 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U +}; + +static const u8 ti4[256] = { + 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, + 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, + 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, + 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, + 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, + 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, + 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, + 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, + 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, + 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, + 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d +}; static const u32 rcon[] = {0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000}; -#define MACRO_ROTR(a,b) ((a)>>((b)*8)| (a)<<(32-((b)*8))) -#define MACRO_ROTL(a,b) ((a)<<((b)*8)| (a)>>(32-((b)*8))) +#define MACRO_ROTR(a, b) ((a) >> ((b)*8)| (a) << (32-((b)*8))) +#define MACRO_ROTL(a, b) ((a) << ((b)*8)| (a) >> (32-((b)*8))) int aes_set_ekey(AES_KEY *key, const u8 *userKey, const int len) { - u32 *rk; - int i = 0; - u32 temp; - if (!userKey || !key) - return -1; - if (len != 16 && len != 24 && len != 32) - return -2; - rk = key->rd_key; - if (len == 16) - key->rounds = 10; - else if (len == 24) - key->rounds = 12; - else - key->rounds = 14; - rk[0] = GETU32(userKey); - rk[1] = GETU32(userKey + 4); - rk[2] = GETU32(userKey + 8); - rk[3] = GETU32(userKey + 12); - if (len == 16) - { - while (1) - { - temp = rk[3]; - rk[4] = rk[0] ^ - ((u32)te4[(temp >> 16) & 0xff]<<24)^ - ((u32)te4[(temp >> 8) & 0xff]<<16)^ - ((u32)te4[(temp) & 0xff]<<8)^ - ((u32)te4[(temp >> 24)])^ - rcon[i]; - rk[5] = rk[1] ^ rk[4]; - rk[6] = rk[2] ^ rk[5]; - rk[7] = rk[3] ^ rk[6]; - if (++i == 10) - { - return 0; - } - rk += 4; - } + u32 *rk; + int i = 0; + u32 temp; + + if (!userKey || !key) { + return -1; + } + + if (len != 16 && len != 24 && len != 32) { + return -2; + } + + rk = key->rd_key; + + if (len == 16) { + key->rounds = 10; + } else if (len == 24) { + key->rounds = 12; + } else { + key->rounds = 14; + } + + rk[0] = GETU32(userKey); + rk[1] = GETU32(userKey + 4); + rk[2] = GETU32(userKey + 8); + rk[3] = GETU32(userKey + 12); + + if (len == 16) { + while (1) { + temp = rk[3]; + rk[4] = rk[0] ^ ((u32)te4[(temp >> 16) & 0xff] << 24) ^ ((u32)te4[(temp >> 8) & 0xff] << 16) ^ ((u32)te4[(temp) & 0xff] << 8) ^ ((u32)te4[(temp >> 24)]) ^ rcon[i]; + rk[5] = rk[1] ^ rk[4]; + rk[6] = rk[2] ^ rk[5]; + rk[7] = rk[3] ^ rk[6]; + + if (++i == 10) { + return 0; + } + + rk += 4; + } } - rk[4] = GETU32(userKey + 16); - rk[5] = GETU32(userKey + 20); - if (len == 24) - { - while (1) - { - temp = rk[ 5]; - rk[ 6] = rk[ 0] ^ - ((u32)te4[(temp >> 16) & 0xff]<<24)^ - ((u32)te4[(temp >> 8) & 0xff]<<16)^ - ((u32)te4[(temp) & 0xff]<<8)^ - ((u32)te4[(temp >> 24)])^ - rcon[i]; - rk[ 7] = rk[ 1] ^ rk[ 6]; - rk[ 8] = rk[ 2] ^ rk[ 7]; - rk[ 9] = rk[ 3] ^ rk[ 8]; - if (++i == 8) - { - return 0; - } - rk[10] = rk[ 4] ^ rk[ 9]; - rk[11] = rk[ 5] ^ rk[10]; - rk += 6; + + rk[4] = GETU32(userKey + 16); + rk[5] = GETU32(userKey + 20); + + if (len == 24) { + while (1) { + temp = rk[5]; + rk[6] = rk[0] ^ ((u32)te4[(temp >> 16) & 0xff] << 24) ^ ((u32)te4[(temp >> 8) & 0xff] << 16) ^ ((u32)te4[(temp) & 0xff] << 8) ^ ((u32)te4[(temp >> 24)]) ^ rcon[i]; + rk[7] = rk[1] ^ rk[6]; + rk[8] = rk[2] ^ rk[7]; + rk[9] = rk[3] ^ rk[8]; + + if (++i == 8) { + return 0; + } + + rk[10] = rk[4] ^ rk[9]; + rk[11] = rk[5] ^ rk[10]; + rk += 6; } } - rk[6] = GETU32(userKey + 24); - rk[7] = GETU32(userKey + 28); - if (len == 32) - { - while (1) - { - temp = rk[ 7]; - rk[ 8] = rk[ 0] ^ - ((u32)te4[(temp >> 16) & 0xff]<<24)^ - ((u32)te4[(temp >> 8) & 0xff]<<16)^ - ((u32)te4[(temp) & 0xff]<<8)^ - ((u32)te4[(temp >> 24)])^ - rcon[i]; - rk[ 9] = rk[ 1] ^ rk[ 8]; - rk[10] = rk[ 2] ^ rk[ 9]; - rk[11] = rk[ 3] ^ rk[10]; - if (++i == 7) - { - return 0; - } - temp = rk[11]; - rk[12] = rk[ 4] ^ - ((u32)te4[(temp >> 24)]<<24)^ - ((u32)te4[(temp >> 16) & 0xff]<<16)^ - ((u32)te4[(temp >> 8) & 0xff]<<8)^ - ((u32)te4[(temp) & 0xff]); - rk[13] = rk[ 5] ^ rk[12]; - rk[14] = rk[ 6] ^ rk[13]; - rk[15] = rk[ 7] ^ rk[14]; - rk += 8; + + rk[6] = GETU32(userKey + 24); + rk[7] = GETU32(userKey + 28); + + if (len == 32) { + while (1) { + temp = rk[7]; + rk[8] = rk[0] ^ ((u32)te4[(temp >> 16) & 0xff] << 24) ^ ((u32)te4[(temp >> 8) & 0xff] << 16) ^ ((u32)te4[(temp) & 0xff] << 8) ^ ((u32)te4[(temp >> 24)]) ^ rcon[i]; + rk[9] = rk[1] ^ rk[8]; + rk[10] = rk[2] ^ rk[9]; + rk[11] = rk[3] ^ rk[10]; + + if (++i == 7) { + return 0; + } + + temp = rk[11]; + rk[12] = rk[4] ^ ((u32)te4[(temp >> 24)] << 24) ^ ((u32)te4[(temp >> 16) & 0xff] << 16) ^ ((u32)te4[(temp >> 8) & 0xff] << 8) ^ ((u32)te4[(temp) & 0xff]); + rk[13] = rk[5] ^ rk[12]; + rk[14] = rk[6] ^ rk[13]; + rk[15] = rk[7] ^ rk[14]; + rk += 8; } } - return 0; + + return 0; } int aes_set_dkey(AES_KEY *key, const u8 *userKey, const int len) { - u32 *rk; - int i, j, status; - u32 temp; - status = aes_set_ekey(key, userKey, len); - if (status < 0) - return status; - rk = key->rd_key; - for (i = 0, j = 4 * (key->rounds); i < j; i += 4, j -= 4) - { - temp = rk[i ]; - rk[i ] = rk[j ]; - rk[j ] = temp; - temp = rk[i + 1]; - rk[i + 1] = rk[j + 1]; - rk[j + 1] = temp; - temp = rk[i + 2]; - rk[i + 2] = rk[j + 2]; - rk[j + 2] = temp; - temp = rk[i + 3]; - rk[i + 3] = rk[j + 3]; - rk[j + 3] = temp; + u32 *rk; + int i, j, status; + u32 temp; + + status = aes_set_ekey(key, userKey, len); + if (status < 0) { + return status; } - for (i = 1; i < (key->rounds); i++) - { - rk += 4; - rk[0] = - Td0[te4[(rk[0] >> 24)]] ^ - MACRO_ROTR(Td0[te4[(rk[0] >> 16) & 0xff]],1) ^ - MACRO_ROTR(Td0[te4[(rk[0] >> 8) & 0xff]],2) ^ - MACRO_ROTR(Td0[te4[(rk[0]) & 0xff]],3); - rk[1] = - Td0[te4[(rk[1] >> 24)]] ^ - MACRO_ROTR(Td0[te4[(rk[1] >> 16) & 0xff]],1) ^ - MACRO_ROTR(Td0[te4[(rk[1] >> 8) & 0xff]],2) ^ - MACRO_ROTR(Td0[te4[(rk[1]) & 0xff]],3); - rk[2] = - Td0[te4[(rk[2] >> 24)]] ^ - MACRO_ROTR(Td0[te4[(rk[2] >> 16) & 0xff]],1) ^ - MACRO_ROTR(Td0[te4[(rk[2] >> 8) & 0xff]],2) ^ - MACRO_ROTR(Td0[te4[(rk[2]) & 0xff]],3); - rk[3] = - Td0[te4[(rk[3] >> 24)]] ^ - MACRO_ROTR(Td0[te4[(rk[3] >> 16) & 0xff]],1) ^ - MACRO_ROTR(Td0[te4[(rk[3] >> 8) & 0xff]],2) ^ - MACRO_ROTR(Td0[te4[(rk[3]) & 0xff]],3); + + rk = key->rd_key; + for (i = 0, j = 4 * (key->rounds); i < j; i += 4, j -= 4) { + temp = rk[i]; + rk[i] = rk[j]; + rk[j] = temp; + temp = rk[i + 1]; + rk[i + 1] = rk[j + 1]; + rk[j + 1] = temp; + temp = rk[i + 2]; + rk[i + 2] = rk[j + 2]; + rk[j + 2] = temp; + temp = rk[i + 3]; + rk[i + 3] = rk[j + 3]; + rk[j + 3] = temp; } - return 0; + for (i = 1; i < (key->rounds); i++) { + rk += 4; + rk[0] = Td0[te4[(rk[0] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[0] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[0] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[0]) & 0xff]], 3); + rk[1] = Td0[te4[(rk[1] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[1] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[1] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[1]) & 0xff]], 3); + rk[2] = Td0[te4[(rk[2] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[2] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[2] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[2]) & 0xff]], 3); + rk[3] = Td0[te4[(rk[3] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[3] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[3] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[3]) & 0xff]], 3); + } + + return 0; } int aes_encrypt(u8 *out, const u8 *in, const AES_KEY *key) { - const u32 *rk; - u32 s0, s1, s2, s3, t0, t1, t2, t3; - int r; - rk = key->rd_key; - s0 = GETU32(in) ^ rk[0]; - s1 = GETU32(in + 4) ^ rk[1]; - s2 = GETU32(in + 8) ^ rk[2]; - s3 = GETU32(in + 12) ^ rk[3]; - r = key->rounds >> 1; - for (;;) - { - t0 = - Te0[(s0 >> 24)] ^ - MACRO_ROTR(Te0[(s1 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(s2 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(s3) & 0xff],3) ^ - rk[4]; - t1 = - Te0[(s1 >> 24)] ^ - MACRO_ROTR(Te0[(s2 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(s3 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(s0) & 0xff],3) ^ - rk[5]; - t2 = - Te0[(s2 >> 24)] ^ - MACRO_ROTR(Te0[(s3 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(s0 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(s1) & 0xff],3) ^ - rk[6]; - t3 = - Te0[(s3 >> 24)] ^ - MACRO_ROTR(Te0[(s0 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(s1 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(s2) & 0xff],3) ^ - rk[7]; - rk += 8; - if (--r == 0) - { - break; - } - s0 = - Te0[(t0 >> 24)] ^ - MACRO_ROTR(Te0[(t1 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(t2 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(t3) & 0xff],3) ^ - rk[0]; - s1 = - Te0[(t1 >> 24)] ^ - MACRO_ROTR(Te0[(t2 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(t3 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(t0) & 0xff],3) ^ - rk[1]; - s2 = - Te0[(t2 >> 24)] ^ - MACRO_ROTR(Te0[(t3 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(t0 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(t1) & 0xff],3) ^ - rk[2]; - s3 = - Te0[(t3 >> 24)] ^ - MACRO_ROTR(Te0[(t0 >> 16) & 0xff],1) ^ - MACRO_ROTR(Te0[(t1 >> 8) & 0xff],2) ^ - MACRO_ROTR(Te0[(t2) & 0xff],3) ^ - rk[3]; + const u32 *rk; + u32 s0, s1, s2, s3, t0, t1, t2, t3; + int r; + + rk = key->rd_key; + s0 = GETU32(in) ^ rk[0]; + s1 = GETU32(in + 4) ^ rk[1]; + s2 = GETU32(in + 8) ^ rk[2]; + s3 = GETU32(in + 12) ^ rk[3]; + r = key->rounds >> 1; + + for (;;) { + t0 = Te0[(s0 >> 24)] ^ MACRO_ROTR(Te0[(s1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s3) & 0xff], 3) ^ rk[4]; + t1 = Te0[(s1 >> 24)] ^ MACRO_ROTR(Te0[(s2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s0) & 0xff], 3) ^ rk[5]; + t2 = Te0[(s2 >> 24)] ^ MACRO_ROTR(Te0[(s3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s1) & 0xff], 3) ^ rk[6]; + t3 = Te0[(s3 >> 24)] ^ MACRO_ROTR(Te0[(s0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s2) & 0xff], 3) ^ rk[7]; + rk += 8; + + if (--r == 0) { + break; + } + + s0 = Te0[(t0 >> 24)] ^ MACRO_ROTR(Te0[(t1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t3) & 0xff], 3) ^ rk[0]; + s1 = Te0[(t1 >> 24)] ^ MACRO_ROTR(Te0[(t2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t0) & 0xff], 3) ^ rk[1]; + s2 = Te0[(t2 >> 24)] ^ MACRO_ROTR(Te0[(t3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t1) & 0xff], 3) ^ rk[2]; + s3 = Te0[(t3 >> 24)] ^ MACRO_ROTR(Te0[(t0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t2) & 0xff], 3) ^ rk[3]; } - s0 = - ((u32)te4[(t0 >> 24)]<<24) ^ - ((u32)te4[(t1 >> 16) & 0xff]<<16) ^ - ((u32)te4[(t2 >> 8) & 0xff]<<8) ^ - ((u32)te4[(t3) & 0xff]) ^ - rk[0]; - PUTU32(out , s0); - s1 = - ((u32)te4[(t1 >> 24)]<<24) ^ - ((u32)te4[(t2 >> 16) & 0xff]<<16) ^ - ((u32)te4[(t3 >> 8) & 0xff]<<8) ^ - ((u32)te4[(t0) & 0xff]) ^ - rk[1]; - - PUTU32(out + 4, s1); - - s2 = - ((u32)te4[(t2 >> 24)]<<24) ^ - ((u32)te4[(t3 >> 16) & 0xff]<<16) ^ - ((u32)te4[(t0 >> 8) & 0xff]<<8) ^ - ((u32)te4[(t1) & 0xff]) ^ - rk[2]; - - PUTU32(out + 8, s2); - - s3 = - ((u32)te4[(t3 >> 24)]<<24) ^ - ((u32)te4[(t0 >> 16) & 0xff]<<16) ^ - ((u32)te4[(t1 >> 8) & 0xff]<<8) ^ - ((u32)te4[(t2) & 0xff]) ^ - rk[3]; - - PUTU32(out + 12, s3); - return(UCL_OK); + s0 = ((u32)te4[(t0 >> 24)] << 24) ^ ((u32)te4[(t1 >> 16) & 0xff] << 16) ^ ((u32)te4[(t2 >> 8) & 0xff] << 8) ^ ((u32)te4[(t3) & 0xff]) ^ rk[0]; + PUTU32(out, s0); + s1 = ((u32)te4[(t1 >> 24)] << 24) ^ ((u32)te4[(t2 >> 16) & 0xff] << 16) ^ ((u32)te4[(t3 >> 8) & 0xff] << 8) ^ ((u32)te4[(t0) & 0xff]) ^ rk[1]; + PUTU32(out + 4, s1); + s2 = ((u32)te4[(t2 >> 24)] << 24) ^ ((u32)te4[(t3 >> 16) & 0xff] << 16) ^ ((u32)te4[(t0 >> 8) & 0xff] << 8) ^ ((u32)te4[(t1) & 0xff]) ^ rk[2]; + PUTU32(out + 8, s2); + s3 = ((u32)te4[(t3 >> 24)] << 24) ^ ((u32)te4[(t0 >> 16) & 0xff] << 16) ^ ((u32)te4[(t1 >> 8) & 0xff] << 8) ^ ((u32)te4[(t2) & 0xff]) ^ rk[3]; + PUTU32(out + 12, s3); + + return(UCL_OK); } int aes_decrypt(u8 *out, const u8 *in, const AES_KEY *key) { - const u32 *rk; - - u32 s0, s1, s2, s3, t0, t1, t2, t3; - - int r; - - rk = key->rd_key; - - s0 = GETU32(in) ^ rk[0]; - s1 = GETU32(in + 4) ^ rk[1]; - s2 = GETU32(in + 8) ^ rk[2]; - s3 = GETU32(in + 12) ^ rk[3]; - - r = key->rounds >> 1; - for (;;) - { - t0 = - Td0[(s0 >> 24)] ^ - MACRO_ROTR(Td0[(s3 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(s2 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(s1) & 0xff],3) ^ - rk[4]; - t1 = - Td0[(s1 >> 24)] ^ - MACRO_ROTR(Td0[(s0 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(s3 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(s2) & 0xff],3) ^ - rk[5]; - t2 = - Td0[(s2 >> 24)] ^ - MACRO_ROTR(Td0[(s1 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(s0 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(s3) & 0xff],3) ^ - rk[6]; - t3 = - Td0[(s3 >> 24)] ^ - MACRO_ROTR(Td0[(s2 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(s1 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(s0) & 0xff],3) ^ - rk[7]; - rk += 8; - if (--r == 0) - { - break; - } - s0 = - Td0[(t0 >> 24)] ^ - MACRO_ROTR(Td0[(t3 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(t2 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(t1) & 0xff],3) ^ - rk[0]; - s1 = - Td0[(t1 >> 24)] ^ - MACRO_ROTR(Td0[(t0 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(t3 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(t2) & 0xff],3) ^ - rk[1]; - s2 = - Td0[(t2 >> 24)] ^ - MACRO_ROTR(Td0[(t1 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(t0 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(t3) & 0xff],3) ^ - rk[2]; - s3 = - Td0[(t3 >> 24)] ^ - MACRO_ROTR(Td0[(t2 >> 16) & 0xff],1) ^ - MACRO_ROTR(Td0[(t1 >> 8) & 0xff],2) ^ - MACRO_ROTR(Td0[(t0) & 0xff],3) ^ - rk[3]; + const u32 *rk; + + u32 s0, s1, s2, s3, t0, t1, t2, t3; + + int r; + + rk = key->rd_key; + + s0 = GETU32(in) ^ rk[0]; + s1 = GETU32(in + 4) ^ rk[1]; + s2 = GETU32(in + 8) ^ rk[2]; + s3 = GETU32(in + 12) ^ rk[3]; + + r = key->rounds >> 1; + + for (;;) { + t0 = Td0[(s0 >> 24)] ^ MACRO_ROTR(Td0[(s3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s1) & 0xff], 3) ^ rk[4]; + t1 = Td0[(s1 >> 24)] ^ MACRO_ROTR(Td0[(s0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s2) & 0xff], 3) ^ rk[5]; + t2 = Td0[(s2 >> 24)] ^ MACRO_ROTR(Td0[(s1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s3) & 0xff], 3) ^ rk[6]; + t3 = Td0[(s3 >> 24)] ^ MACRO_ROTR(Td0[(s2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s0) & 0xff], 3) ^ rk[7]; + + rk += 8; + if (--r == 0) { + break; + } + + s0 = Td0[(t0 >> 24)] ^ MACRO_ROTR(Td0[(t3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t1) & 0xff], 3) ^ rk[0]; + s1 = Td0[(t1 >> 24)] ^ MACRO_ROTR(Td0[(t0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t2) & 0xff], 3) ^ rk[1]; + s2 = Td0[(t2 >> 24)] ^ MACRO_ROTR(Td0[(t1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t3) & 0xff], 3) ^ rk[2]; + s3 = Td0[(t3 >> 24)] ^ MACRO_ROTR(Td0[(t2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t0) & 0xff], 3) ^ rk[3]; } - s0 = - ((u32)ti4[(t0 >> 24)]<<24)^ - ((u32)ti4[(t3 >> 16) & 0xff]<<16)^ - ((u32)ti4[(t2 >> 8) & 0xff]<<8)^ - ((u32)ti4[(t1) & 0xff])^ - rk[0]; - PUTU32(out , s0); - s1 = - ((u32)ti4[(t1 >> 24)]<<24)^ - ((u32)ti4[(t0 >> 16) & 0xff]<<16)^ - ((u32)ti4[(t3 >> 8) & 0xff]<<8)^ - ((u32)ti4[(t2) & 0xff])^ - rk[1]; - PUTU32(out + 4, s1); - s2 = - ((u32)ti4[(t2 >> 24)]<<24)^ - ((u32)ti4[(t1 >> 16) & 0xff]<<16)^ - ((u32)ti4[(t0 >> 8) & 0xff]<<8)^ - ((u32)ti4[(t3) & 0xff])^ - rk[2]; - PUTU32(out + 8, s2); - s3 = - ((u32)ti4[(t3 >> 24)]<<24)^ - ((u32)ti4[(t2 >> 16) & 0xff]<<16)^ - ((u32)ti4[(t1 >> 8) & 0xff]<<8)^ - ((u32)ti4[(t0) & 0xff])^ - rk[3]; - PUTU32(out + 12, s3); - return(UCL_OK); -} + s0 = ((u32)ti4[(t0 >> 24)] << 24) ^ ((u32)ti4[(t3 >> 16) & 0xff] << 16) ^ ((u32)ti4[(t2 >> 8) & 0xff] << 8) ^ ((u32)ti4[(t1) & 0xff]) ^ rk[0]; + PUTU32(out, s0); + s1 = ((u32)ti4[(t1 >> 24)] << 24) ^ ((u32)ti4[(t0 >> 16) & 0xff] << 16) ^ ((u32)ti4[(t3 >> 8) & 0xff] << 8) ^ ((u32)ti4[(t2) & 0xff]) ^ rk[1]; + PUTU32(out + 4, s1); + s2 = ((u32)ti4[(t2 >> 24)] << 24) ^ ((u32)ti4[(t1 >> 16) & 0xff] << 16) ^ ((u32)ti4[(t0 >> 8) & 0xff] << 8) ^ ((u32)ti4[(t3) & 0xff]) ^ rk[2]; + PUTU32(out + 8, s2); + s3 = ((u32)ti4[(t3 >> 24)] << 24) ^ ((u32)ti4[(t2 >> 16) & 0xff] << 16) ^ ((u32)ti4[(t1 >> 8) & 0xff] << 8) ^ ((u32)ti4[(t0) & 0xff]) ^ rk[3]; + PUTU32(out + 12, s3); + return(UCL_OK); +} diff --git a/Libraries/FCL/src/aestest.c b/Libraries/FCL/src/aestest.c index b5c5263ca6d..92bea32b898 100644 --- a/Libraries/FCL/src/aestest.c +++ b/Libraries/FCL/src/aestest.c @@ -1,37 +1,54 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #include #include @@ -45,88 +62,95 @@ #include #include - int test_longer(void) { - u8 ct_ecb[4 * 16] = - { - 0x3a, 0xd7, 0x7b, 0xb4, 0x0d, 0x7a, 0x36, 0x60, 0xa8, 0x9e, 0xca, 0xf3, 0x24, 0x66, 0xef, 0x97, - 0xf5, 0xd3, 0xd5, 0x85, 0x03, 0xb9, 0x69, 0x9d, 0xe7, 0x85, 0x89, 0x5a, 0x96, 0xfd, 0xba, 0xaf, - 0x43, 0xb1, 0xcd, 0x7f, 0x59, 0x8e, 0xce, 0x23, 0x88, 0x1b, 0x00, 0xe3, 0xed, 0x03, 0x06, 0x88, - 0x7b, 0x0c, 0x78, 0x5e, 0x27, 0xe8, 0xad, 0x3f, 0x82, 0x23, 0x20, 0x71, 0x04, 0x72, 0x5d, 0xd4 -}; - - u8 pt[4 * 16]= -{ - 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, - 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, - 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, - 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 -}; + u8 ct_ecb[4 * 16] = { + 0x3a, 0xd7, 0x7b, 0xb4, 0x0d, 0x7a, 0x36, 0x60, 0xa8, 0x9e, 0xca, 0xf3, 0x24, 0x66, 0xef, 0x97, + 0xf5, 0xd3, 0xd5, 0x85, 0x03, 0xb9, 0x69, 0x9d, 0xe7, 0x85, 0x89, 0x5a, 0x96, 0xfd, 0xba, 0xaf, + 0x43, 0xb1, 0xcd, 0x7f, 0x59, 0x8e, 0xce, 0x23, 0x88, 0x1b, 0x00, 0xe3, 0xed, 0x03, 0x06, 0x88, + 0x7b, 0x0c, 0x78, 0x5e, 0x27, 0xe8, 0xad, 0x3f, 0x82, 0x23, 0x20, 0x71, 0x04, 0x72, 0x5d, 0xd4 + }; - u8 key0[16] = -{ - 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c -}; - - u32 result; - u8 output[4*16]; - result = ucl_aes_ecb(output,pt,4*16,key0,16,UCL_CIPHER_ENCRYPT); - if ( UCL_OK != result ) - printf("ERROR AES 128 ECB ENC\n"); - if(memcmp(output, ct_ecb, (4 * 16))==0) - printf("AES 128 ENC 64 bytes OK\n"); - else - { - printf("ERROR AES 128 ENC 64 bytes\n"); - return(UCL_ERROR); + u8 pt[4 * 16] = { + 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, + 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, + 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, + 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 + }; + + u8 key0[16] = { + 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c + }; + + u32 result; + u8 output[4*16]; + result = ucl_aes_ecb(output, pt, (4*16), key0, 16, UCL_CIPHER_ENCRYPT); + + if (UCL_OK != result) { + printf("ERROR AES 128 ECB ENC\n"); } - return(UCL_OK); + + if (memcmp(output, ct_ecb, (4 * 16)) == 0) { + printf("AES 128 ENC 64 bytes OK\n"); + } else { + printf("ERROR AES 128 ENC 64 bytes\n"); + return(UCL_ERROR); + } + + return(UCL_OK); } int test_aes(void) { - // AES 128 ECB tests (from FIPS-197 test vectors, encrypt) - u8 aeskey128s[] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }; - u8 aesplain128s[] = { - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; - u8 aescipher128s[] = { - 0x69, 0xC4, 0xE0, 0xD8, 0x6A, 0x7B, 0x04, 0x30, - 0xD8, 0xCD, 0xB7, 0x80, 0x70, 0xB4, 0xC5, 0x5A }; - u8 e256[32]; - u8 mac[UCL_AES_BLOCKSIZE]; - u8 cbcmac[UCL_AES_BLOCKSIZE]={0x69,0xc4,0xe0,0xd8,0x6a,0x7b,0x04,0x30,0xd8,0xcd,0xb7,0x80,0x70,0xb4,0xc5,0x5a}; - printf("AES testing --------------------\n"); - ucl_aes(e256,aesplain128s,aeskey128s,UCL_AES_KEYLEN_128,UCL_CIPHER_ENCRYPT); - if(memcmp(e256,aescipher128s,UCL_AES_BLOCKSIZE)!=0) - { - printf("ERROR AES ENC-128 KAT FIPS\n"); - return(UCL_ERROR); + // AES 128 ECB tests (from FIPS-197 test vectors, encrypt) + u8 aeskey128s[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F + }; + + u8 aesplain128s[] = { + 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF + }; + + u8 aescipher128s[] = { + 0x69, 0xC4, 0xE0, 0xD8, 0x6A, 0x7B, 0x04, 0x30, + 0xD8, 0xCD, 0xB7, 0x80, 0x70, 0xB4, 0xC5, 0x5A + }; + + u8 e256[32]; + u8 mac[UCL_AES_BLOCKSIZE]; + u8 cbcmac[UCL_AES_BLOCKSIZE] = { + 0x69, 0xc4, 0xe0, 0xd8, 0x6a, 0x7b, 0x04, 0x30, + 0xd8, 0xcd, 0xb7, 0x80, 0x70, 0xb4, 0xc5, 0x5a + }; + + printf("AES testing --------------------\n"); + + ucl_aes(e256, aesplain128s, aeskey128s, UCL_AES_KEYLEN_128, UCL_CIPHER_ENCRYPT); + if (memcmp(e256, aescipher128s, UCL_AES_BLOCKSIZE) != 0) { + printf("ERROR AES ENC-128 KAT FIPS\n"); + return(UCL_ERROR); + } else { + printf("AES ENC-128 KAT FIPS OK\n"); } - else - printf("AES ENC-128 KAT FIPS OK\n"); - - ucl_aes_ecb(e256,aescipher128s,UCL_AES_BLOCKSIZE,aeskey128s,UCL_AES_KEYLEN_128,UCL_CIPHER_DECRYPT); - if(memcmp(e256,aesplain128s,UCL_AES_BLOCKSIZE)!=0) - { - printf("ERROR AES DEC-128 KAT FIPS\n"); - return(UCL_ERROR); + + ucl_aes_ecb(e256, aescipher128s, UCL_AES_BLOCKSIZE, aeskey128s, UCL_AES_KEYLEN_128, UCL_CIPHER_DECRYPT); + if (memcmp(e256, aesplain128s, UCL_AES_BLOCKSIZE) != 0) { + printf("ERROR AES DEC-128 KAT FIPS\n"); + return(UCL_ERROR); + } else { + printf("AES DEC-128 KAT FIPS OK\n"); } - else - printf("AES DEC-128 KAT FIPS OK\n"); - - ucl_aes_cbc_mac(mac,UCL_AES_BLOCKSIZE,aesplain128s,UCL_AES_BLOCKSIZE,aeskey128s,UCL_AES_KEYLEN_128); - if(memcmp(mac,cbcmac,UCL_AES_BLOCKSIZE)!=0) - { - printf("ERROR AES 128 CBC-MAC\n"); - return(UCL_ERROR); + + ucl_aes_cbc_mac(mac, UCL_AES_BLOCKSIZE, aesplain128s, UCL_AES_BLOCKSIZE, aeskey128s, UCL_AES_KEYLEN_128); + if (memcmp(mac, cbcmac, UCL_AES_BLOCKSIZE) != 0) { + printf("ERROR AES 128 CBC-MAC\n"); + return(UCL_ERROR); + } else { + printf("AES 128 CBC-MAC OK\n"); } - else - printf("AES 128 CBC-MAC OK\n"); - test_longer(); - return(UCL_OK); -} + test_longer(); + return(UCL_OK); +} diff --git a/Libraries/FCL/src/bignum.c b/Libraries/FCL/src/bignum.c index 48ad52eccaf..d38e78e31f3 100644 --- a/Libraries/FCL/src/bignum.c +++ b/Libraries/FCL/src/bignum.c @@ -1,42 +1,54 @@ -/******************************************************************************* -* Copyright (C) 2017 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: ECC test application -* Description: performs bignumber operation -* Filename: bignum.c -* Author: LSL -* Compiler: gcc -* -******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #define MAJVER 1 #define MINVER 0 #define ZVER 0 @@ -50,569 +62,639 @@ #include // for all u32* numbers, digit[0] is the least significent digit -void bignum_d2us(u8 *a,u32 len,u32 *b,u32 digits) +void bignum_d2us(u8 *a, u32 len, u32 *b, u32 digits) { - u32 t; - int j; - int i; - u32 u; - for(i = 0, j = (int)len - 1; i <(int)digits && j >= 0; i++) - { - t = b[i]; - for(u = 0; j >= 0 && u <(int)DIGIT_BITS; j--, u += 8) - a[j] =(u8)(t >> u); + u32 t; + int j; + int i; + u32 u; + + for (i = 0, j = (int)len - 1; i < (int)digits && j >= 0; i++) { + t = b[i]; + for (u = 0; j >= 0 && u < (int)DIGIT_BITS; j--, u += 8) + a[j] = (u8)(t >> u); + } + + for (; j >= 0; j--) { + a[j] = 0; } - for(; j >= 0; j--) - a[j] = 0; } -void bignum_us2d(u32 *a,u32 digits,u8 *b,u32 len) +void bignum_us2d(u32 *a, u32 digits, u8 *b, u32 len) { - u32 t; - int j,i; - int u; - for(i = 0, j = (int)len - 1; i <(int)digits && j >= 0; i++) - { - t = 0; - for(u = 0; j >= 0 && u <(int)DIGIT_BITS; j--, u += 8) - { - t |=((u32)b[j]) <<(u32)u; - } - a[i] = t; + u32 t; + int j, i; + int u; + + for (i = 0, j = (int)len - 1; i < (int)digits && j >= 0; i++) { + t = 0; + + for (u = 0; j >= 0 && u < (int)DIGIT_BITS; j--, u += 8) { + t |= ((u32)b[j]) << (u32)u; + } + + a[i] = t; + } + + for (; i < (int)digits; i++) { + a[i] = 0; } - for(; i <(int)digits; i++) - a[i] = 0; } -u32 bignum_digits(u32 *N,u32 tn) +u32 bignum_digits(u32 *N, u32 tn) { - int i; - for(i=(int)(tn-1);i>=0;i--) - { - if(N[i]) - { - break; - } + int i; + for (i = (int)(tn-1); i >= 0; i--) { + if (N[i]) { + break; + } } - return((u32)(i+1)); + + return((u32)(i+1)); } -// e=0 except e[0]=f -void bignum_copydigit(u32 *E,u32 F,u32 tE) +// e = 0 except e[0] = f +void bignum_copydigit(u32 *E, u32 F, u32 tE) { int i; - for(i=(int)(tE-1);i!=0;i--) - E[i]=0; - E[0]=F; + for (i = (int)(tE-1); i != 0; i--) + E[i] = 0; + E[0] = F; } -// e=0 -void bignum_copyzero(u32 *E,u32 tE) +// e = 0 +void bignum_copyzero(u32 *E, u32 tE) { - int i; - for(i=(int)(tE-1);i!=0;i--) - E[i]=0; - E[0]=0; + int i; + + for (i = (int)(tE-1); i != 0; i--) { + E[i] = 0; + } + + E[0] = 0; } -// e=f -void bignum_copy(u32 *E,u32 *F,u32 tE) +// e = f +void bignum_copy(u32 *E, u32 *F, u32 tE) { - int i; - for(i=(int)(tE-1);i!=0;i--) - E[i]=F[i]; - E[0]=F[0]; + int i; + for (i = (int)(tE-1); i != 0; i--) { + E[i] = F[i]; + } + + E[0] = F[0]; } u32 bignum_digitbits(u32 a) { - int i; - for(i=0;i<(int)DIGIT_BITS;i++,a>>=1) - { - if(a==0) - break; + int i; + for (i = 0; i < (int)DIGIT_BITS; i++, a >>= 1) { + if (a == 0) { + break; + } } - return((u32)i); + + return((u32)i); } -int bignum_cmp(u32 *a,u32 *b,u32 s) +int bignum_cmp(u32 *a, u32 *b, u32 s) { - int i; - for(i=(int)(s-1);i>=0;i--) - { - if(a[i]>b[i]) - { - return(1); - } - if(a[i]= 0; i--) { + if (a[i] >b[i]) { + return(1); + } + + if (a[i] < b[i]) { + return(-1); + } } - return(0); + + return(0); } -int bignum_cmp_zero(u32 *a,int s) +int bignum_cmp_zero(u32 *a, int s) { - int i; - for(i=0;i<(int)s;i++) - if(a[i]) - return(1); - return(0); + int i; + + for (i = 0; i < (int)s; i++) { + if (a[i]) { + return(1); + } + } + + return(0); } -void bignum_scalarmult(u32 *c,u32 a,u32 b) +void bignum_scalarmult(u32 *c, u32 a, u32 b) { - union u - { - DOUBLE_DIGIT result; - u32 t[2]; - } n; - n.result=(DOUBLE_DIGIT)a*(DOUBLE_DIGIT)b; - - c[0]=n.t[0]; - c[1]=n.t[1]; + union u { + DOUBLE_DIGIT result; + u32 t[2]; + } n; + + n.result = (DOUBLE_DIGIT)a * (DOUBLE_DIGIT)b; + + c[0] = n.t[0]; + c[1] = n.t[1]; } void bignum_scalardiv(u32 *a, u32 b[2], u32 c) { - DOUBLE_DIGIT t; - t =(((DOUBLE_DIGIT)b[1]) << DIGIT_BITS) ^((DOUBLE_DIGIT)b[0]); - *a = (u32)(t/c); + DOUBLE_DIGIT t; + t = (((DOUBLE_DIGIT)b[1]) << DIGIT_BITS) ^ ((DOUBLE_DIGIT)b[0]); + *a = (u32)(t/c); } -// w=x+y, ret(carry) +// w = x+y, ret(carry) -u32 bignum_sub(u32 *w,u32 *x,u32 *y,u32 digits) +u32 bignum_sub(u32 *w, u32 *x, u32 *y, u32 digits) { - u32 wi,borrow=0; - - int i; - for(i=0;i<(int)digits;i++) - { - if((wi=x[i]-borrow)>(MAX_DIGIT-borrow)) - wi=MAX_DIGIT-y[i]; - else - borrow=((wi-=y[i])>(MAX_DIGIT-y[i]))?1:0; - w[i]=wi; + u32 wi, borrow = 0; + int i; + + for (i = 0; i < (int)digits; i++) { + if ((wi = x[i] - borrow) > (MAX_DIGIT - borrow)) { + wi = MAX_DIGIT - y[i]; + } else { + borrow = ((wi -= y[i]) > (MAX_DIGIT - y[i])) ? 1 : 0; + w[i] = wi; + } } - return(borrow); + + return(borrow); } -u32 bignum_add(u32 *w,u32 *x,u32 *y,u32 digits) +u32 bignum_add(u32 *w, u32 *x, u32 *y, u32 digits) { - u32 wi,carry; - int i; - wi=x[0]; - carry=((wi+=y[0])> DIGIT_BITS; - *r0 = (u32)r01; + DOUBLE_DIGIT p = (DOUBLE_DIGIT)a * b; + DOUBLE_DIGIT r01 = ((DOUBLE_DIGIT)(*r1) << DIGIT_BITS) | *r0; + r01 += p; + *r2 += (r01 < p); + *r1 = r01 >> DIGIT_BITS; + *r0 = (u32)r01; } void bignum_mult_scfo(u32 *t, u32 *a, u32 *b, u32 n) { - u32 r0 = 0; - u32 r1 = 0; - u32 r2 = 0; - int i, k; - for(k = 0; k < (int)n; ++k) - { - for(i = 0; i <= k; ++i) - scalarmult(&r0, &r1, &r2,a[i], b[k-i]); - t[k] = r0; - r0 = r1; - r1 = r2; - r2 = 0; + u32 r0 = 0; + u32 r1 = 0; + u32 r2 = 0; + int i, k; + for (k = 0; k < (int)n; ++k) { + for (i = 0; i <= k; ++i) + scalarmult(&r0, &r1, &r2, a[i], b[k-i]); + t[k] = r0; + r0 = r1; + r1 = r2; + r2 = 0; } - for(k = (int)n; k < (int)n*2 - 1; ++k) - { - for(i = (k + 1) - (int)n; i<(int)n; ++i) - scalarmult(&r0, &r1, &r2,a[i], b[k-i]); - t[k] = r0; - r0 = r1; - r1 = r2; - r2 = 0; + + for (k = (int)n; k < (int)n*2 - 1; ++k) { + for (i = (k + 1) - (int)n; i < (int)n; ++i) + scalarmult(&r0, &r1, &r2, a[i], b[k-i]); + t[k] = r0; + r0 = r1; + r1 = r2; + r2 = 0; } - t[n*2 - 1] = r0; + + t[n*2 - 1] = r0; } -void bignum_mult(u32 *t,u32 *a,u32 *b,u32 n) +void bignum_mult(u32 *t, u32 *a, u32 *b, u32 n) { - bignum_mult_scfo(t,a,b,n); + bignum_mult_scfo(t, a, b, n); } -void bignum_multscalar(u32 *t,u32 a,u32 *b,u32 n) + +void bignum_multscalar(u32 *t, u32 a, u32 *b, u32 n) { - int j; - u32 bDigits; - u32 carry; - DOUBLE_DIGIT de,re; - bDigits=bignum_digits(b,n); - bignum_copyzero(t,2*n); - if (a != 0) - { - carry = 0; - for (j = 0; j < (int)bDigits; j++) - { - re=(DOUBLE_DIGIT)a*(DOUBLE_DIGIT)b[j]; - de=(DOUBLE_DIGIT)t[j]+(DOUBLE_DIGIT)carry+re; - carry=(u32)(de>>32); - t[j]=de&0xffffffff; - } - t[bDigits]+=carry; + int j; + u32 bDigits; + u32 carry; + DOUBLE_DIGIT de, re; + bDigits = bignum_digits(b, n); + bignum_copyzero(t, 2*n); + + if (a != 0) { + carry = 0; + for (j = 0; j < (int)bDigits; j++) { + re = (DOUBLE_DIGIT)a * (DOUBLE_DIGIT)b[j]; + de = (DOUBLE_DIGIT)t[j] + (DOUBLE_DIGIT)carry + re; + carry = (u32)(de >> 32); + t[j] = de & 0xffffffff; + } + + t[bDigits] += carry; } } -void bignum_square_opt(u32 *a,u32 *b,u32 digits) +void bignum_square_opt(u32 *a, u32 *b, u32 digits) { - u32 t[2*MAX_DIGITS],tmp[2],carry,carrynext,carryover; - u32 bDigits,c0,c1; - int i,j; - bignum_copyzero(t,(u32)2 * digits); - bDigits = bignum_digits(b, digits); - for(i=0;i<(int)bDigits;i++) - { - for(carry=carrynext=0,j=0;jval) - borrow=1; - else - borrow=0; - ai-=t[0]; - val=MAX_DIGIT-t[0]; - if(ai>val) - borrow++; - borrow+=t[1]; - a[i]=ai; + u32 borrow = 0, di, ai, bi, t[2], val; + int i; + + if (c == 0) { + return(0); } - return(borrow); + + for (i = 0; i < (int)digits; i++) { + di = d[i]; + bignum_scalarmult(t, c, di); + ai = a[i]; + bi = b[i]; + ai = bi - borrow; + val = MAX_DIGIT - borrow; + + if (ai > val) { + borrow = 1; + } else { + borrow = 0; + } + + ai -= t[0]; + val = MAX_DIGIT - t[0]; + if (ai > val) { + borrow++; + } + + borrow += t[1]; + a[i] = ai; + } + + return(borrow); } -u32 bignum_leftshift(u32 *a,u32 *b,u32 c,u32 digits) +u32 bignum_leftshift(u32 *a, u32 *b, u32 c, u32 digits) { - u32 bi,borrow,t,m,p; - int i; + u32 bi, borrow, t, m, p; + int i; + + if (c < DIGIT_BITS) { + if (c == 0) { + for (i = 0; i < (int)digits; i++) { + a[i] = b[i]; + } + + return((u32)0); + } else { + t = DIGIT_BITS - c; + borrow = 0; + + for (i = 0; i < (int)digits; i++) { + bi = b[i]; + a[i] = ((bi << c) | borrow); + borrow = c ? (bi >> t) : 0; + } + } + + return(borrow); + } - if(c>t):0; - } - } - return(borrow); + m = c / DIGIT_BITS; + p = c & (DIGIT_BITS - 1); + t = DIGIT_BITS - p; + borrow = 0; + for (i = 0; i < (int)m; i++) { + a[i] = 0; } - m=c/DIGIT_BITS; - p=c&(DIGIT_BITS-1); - t=DIGIT_BITS-p; - borrow=0; - for(i=0;i<(int)m;i++) - a[i]=0; - if(p==0) - for(i=0;i<(int)digits;i++) - a[i+(int)m]=b[i]; - else - for(i=0;i<(int)digits;i++) - { - bi=b[i]; - a[i+(int)m]=(borrow|(bi<>t):0; - } - return(borrow); + + if (p == 0) { + for (i = 0; i < (int)digits; i++) { + a[i+(int)m] = b[i]; + } + } else { + for (i = 0; i < (int)digits; i++) { + bi = b[i]; + a[i+(int)m] = (borrow | (bi << p)); + borrow = p ? (bi >> t) : 0; + } + } + + return(borrow); } -u32 bignum_rightshift(u32 *a,u32 *b,u32 c,u32 digits) +u32 bignum_rightshift(u32 *a, u32 *b, u32 c, u32 digits) { - u32 bi,borrow,t,m,p; - int i; - if(c=0;i--) - { - bi=b[i]; - a[i]=(borrow|(bi>>c)); - borrow=bi<= 0; i--) { + bi = b[i]; + a[i] = (borrow | (bi >> c)); + borrow = bi << t; + } + } + + return(borrow); + } + + p = c & (DIGIT_BITS - 1); + m = c / DIGIT_BITS; + t = DIGIT_BITS - p; + borrow = 0; + if (p == 0) { + for (i = (int)(digits-1-m); i >= 0; i--) { + a[i] = b[i+(int)m]; + } + } else { + for (i = (int)(digits-1-m); i >= 0; i--) { + bi = b[i+(int)m]; + a[i] = (borrow | (bi >> p)); + borrow = p ? (bi << t) : 0; + } } - p=c&(DIGIT_BITS-1); - m=c/DIGIT_BITS; - t=DIGIT_BITS-p; - borrow=0; - if(p==0) - for(i=(int)(digits-1-m);i>=0;i--) - a[i]=b[i+(int)m]; - else - for(i=(int)(digits-1-m);i>=0;i--) - { - bi=b[i+(int)m]; - a[i]=(borrow|(bi>>p)); - borrow=p?(bi<= 0; i--) - { - if(t == MAX_DIGIT) - ai = cc[i+(int)ddDigits]; - else - { - bignum_scalardiv(&ai, &cc[i+(int)ddDigits-1], t + 1); - } - cc[i+(int)ddDigits] -= bignum_subscalarmult(&cc[i], &cc[i], ai, dd, ddDigits); - while(cc[i+(int)ddDigits] ||(bignum_cmp(&cc[i], dd, ddDigits) >= 0)) - { - ai++; - cc[i+(int)ddDigits] -= bignum_sub(&cc[i], &cc[i], dd, ddDigits); - } - if(NULL!=a) - a[i] = ai; + u32 ai, cc[2*MAX_DIGITS+1], dd[MAX_DIGITS], t; + int i; + u32 ddDigits, shift; + + ddDigits = bignum_digits(d, dDigits); + if (ddDigits == 0) { + return; } - if(b!=NULL) - { - bignum_copyzero(b, dDigits); - bignum_rightshift(b, cc, shift, ddDigits); + + shift = DIGIT_BITS - bignum_digitbits(d[ddDigits-1]); + bignum_copyzero(cc, ddDigits); + cc[cDigits] = bignum_leftshift(cc, c, shift, cDigits); + bignum_leftshift(dd, d, shift, ddDigits); + t = dd[ddDigits-1]; + + if (NULL != a) { + bignum_copyzero(a, cDigits); + } + + for (i = (int)(cDigits-ddDigits); i >= 0; i--) { + if (t == MAX_DIGIT) { + ai = cc[i+(int)ddDigits]; + } else { + bignum_scalardiv(&ai, &cc[i+(int)ddDigits-1], t + 1); + } + + cc[i+(int)ddDigits] -= bignum_subscalarmult(&cc[i], &cc[i], ai, dd, ddDigits); + while (cc[i+(int)ddDigits] || (bignum_cmp(&cc[i], dd, ddDigits) >= 0)) { + ai++; + cc[i+(int)ddDigits] -= bignum_sub(&cc[i], &cc[i], dd, ddDigits); + } + + if (NULL != a) { + a[i] = ai; + } + } + + if (b != NULL) { + bignum_copyzero(b, dDigits); + bignum_rightshift(b, cc, shift, ddDigits); } } -int bignum_modmult(u32 *r,u32 *a,u32 *b,u32 *m,u32 k) +int bignum_modmult(u32 *r, u32 *a, u32 *b, u32 *m, u32 k) { - u32 mult[2*MAX_DIGITS]; - bignum_mult(mult,a,b,k); - bignum_mod(r,mult,2*k,m,k); - return(UCL_OK); + u32 mult[2*MAX_DIGITS]; + + bignum_mult(mult, a, b, k); + bignum_mod(r, mult, 2*k, m, k); + + return(UCL_OK); } -void bignum_modadd(u32 *r,u32 *a,u32 *b,u32 *m,u32 k) + +void bignum_modadd(u32 *r, u32 *a, u32 *b, u32 *m, u32 k) { - u32 add[MAX_DIGITS+1]; - add[k]=bignum_add(add,a,b,k); - bignum_mod(r,add,k+1,m,k); + u32 add[MAX_DIGITS+1]; + + add[k] = bignum_add(add, a, b, k); + bignum_mod(r, add, k+1, m, k); } -void bignum_mod(u32 *b,u32 *c,u32 cDigits,u32 *d,u32 dDigits) +void bignum_mod(u32 *b, u32 *c, u32 cDigits, u32 *d, u32 dDigits) { - u32 copy_a[2*MAX_DIGITS],ddDigits; - ddDigits=bignum_digits(d,dDigits); - bignum_divide(NULL,copy_a,c,cDigits,d,ddDigits); - bignum_copyzero(b,dDigits); - bignum_copy(b,copy_a,ddDigits); + u32 copy_a[2*MAX_DIGITS], ddDigits; + + ddDigits = bignum_digits(d, dDigits); + bignum_divide(NULL, copy_a, c, cDigits, d, ddDigits); + bignum_copyzero(b, dDigits); + bignum_copy(b, copy_a, ddDigits); } -int bignum_isnul(u32 *A,u32 tA) +int bignum_isnul(u32 *A, u32 tA) { - int i; - for(i=0;i<(int)tA;i++) - if(A[i]) - return(0); - return(1); + int i; + + for (i = 0; i < (int)tA; i++) { + if (A[i]) { + return(0); + } + } + + return(1); } -void bignum_div(u32 *quot,u32 *b,u32 *c,u32 cDigits,u32 *d,u32 dDigits) +void bignum_div(u32 *quot, u32 *b, u32 *c, u32 cDigits, u32 *d, u32 dDigits) { - u32 copy_a[2*MAX_DIGITS],ddDigits; - int i; - ddDigits=bignum_digits(d,dDigits); - if(ddDigits==0) - return; - bignum_divide(quot,copy_a,c,cDigits,d,ddDigits); - if(b!=NULL) - { - bignum_copy(b,copy_a,ddDigits); - for(i=(int)ddDigits;i<(int)dDigits;i++) - b[i]=0; + u32 copy_a[2*MAX_DIGITS], ddDigits; + int i; + + ddDigits = bignum_digits(d, dDigits); + if (ddDigits == 0) { + return; + } + + bignum_divide(quot, copy_a, c, cDigits, d, ddDigits); + if (b != NULL) { + bignum_copy(b, copy_a, ddDigits); + + for (i = (int)ddDigits; i < (int)dDigits; i++) { + b[i] = 0; + } } } -void bignum_modinv(u32 *x,u32 *a0,u32 *b0,u32 digits) +void bignum_modinv(u32 *x, u32 *a0, u32 *b0, u32 digits) { - u32 u[MAX_DIGITS],v[MAX_DIGITS]; - u32 a[MAX_DIGITS+1],c[MAX_DIGITS+1]; - bignum_copy(u,a0,digits); - bignum_copy(v,b0,digits); - bignum_copydigit(a,1,digits); - bignum_copyzero(c,digits); - while(!bignum_isnul(u,digits)) - { - //while u is even, so lsb is 0 - while((u[0]&1)==0) - { - bignum_rightshift(u,u,1,digits); - //if a is even - if((a[0]&1)==0) - { - bignum_rightshift(a,a,1,digits); - } - else - { - a[digits]=bignum_add(a,a,b0,digits); - bignum_rightshift(a,a,1,digits+1); - } - } - //while v is even - while((v[0]&1)==0) - { - bignum_rightshift(v,v,1,digits); - //if c is even - if((c[0]&1)==0) - { - bignum_rightshift(c,c,1,digits); - } - else - { - c[digits]=bignum_add(c,c,b0,digits); - bignum_rightshift(c,c,1,digits+1); - } - } - if(bignum_cmp(u,v,digits)>=0) - { - bignum_sub(u,u,v,digits); - if(bignum_cmp(a,c,digits)<0) - bignum_add(a,a,b0,digits); - bignum_sub(a,a,c,digits); - } - else - { - bignum_sub(v,v,u,digits); - if(bignum_cmp(c,a,digits)<0) - bignum_add(c,c,b0,digits); - bignum_sub(c,c,a,digits); - } + u32 u[MAX_DIGITS], v[MAX_DIGITS]; + u32 a[MAX_DIGITS+1], c[MAX_DIGITS+1]; + bignum_copy(u, a0, digits); + bignum_copy(v, b0, digits); + bignum_copydigit(a, 1, digits); + bignum_copyzero(c, digits); + + while (!bignum_isnul(u, digits)) { + //while u is even, so lsb is 0 + while ((u[0] & 1) == 0) { + bignum_rightshift(u, u, 1, digits); + //if a is even + if ((a[0] & 1) == 0) { + bignum_rightshift(a, a, 1, digits); + } else { + a[digits] = bignum_add(a, a, b0, digits); + bignum_rightshift(a, a, 1, digits+1); + } + } + + //while v is even + while ((v[0] & 1) == 0) { + bignum_rightshift(v, v, 1, digits); + //if c is even + if ((c[0] & 1) == 0) { + bignum_rightshift(c, c, 1, digits); + } else { + c[digits] = bignum_add(c, c, b0, digits); + bignum_rightshift(c, c, 1, digits+1); + } + } + + if (bignum_cmp(u, v, digits) >= 0) { + bignum_sub(u, u, v, digits); + + if (bignum_cmp(a, c, digits) < 0) { + bignum_add(a, a, b0, digits); + } + + bignum_sub(a, a, c, digits); + } else { + bignum_sub(v, v, u, digits); + + if (bignum_cmp(c, a, digits) < 0) { + bignum_add(c, c, b0, digits); + } + + bignum_sub(c, c, a, digits); + } } - bignum_copy(x,c,digits); -} + bignum_copy(x, c, digits); +} diff --git a/Libraries/FCL/src/ecdsa_generic_api.c b/Libraries/FCL/src/ecdsa_generic_api.c index cb8270aa7a2..891f2ed4866 100644 --- a/Libraries/FCL/src/ecdsa_generic_api.c +++ b/Libraries/FCL/src/ecdsa_generic_api.c @@ -1,42 +1,53 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. - * Module Name: ECC test application - * Description: performs ECC computations - * Filename: ecdsa_generic_api.c - * Author: LSL - * Compiler: gcc +/****************************************************************************** * - ******************************************************************************* - */ + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #define MAJVER 1 #define MINVER 0 @@ -58,495 +69,521 @@ //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_mod(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_mod(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #ifdef P192 //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_mod192r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_mod192r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #endif//P192 + #ifdef P256 //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_mod256r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_mod256r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #endif//P256 #ifdef P384 //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_mod384r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_mod384r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #endif//P384 #ifdef P521 //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_mod521r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_mod521r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #endif//P521 #ifdef BP256 //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_modbp256r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_modbp256r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #endif//BP256 #ifdef BP384 //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_modbp384r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_modbp384r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #endif//BP384 #ifdef BP512 //default modular reduction //not efficient for special NIST primes, as not using their structure -void ecc_modbp512r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) +void ecc_modbp512r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) { - bignum_mod(b,c,cDigits,p,pDigits); + bignum_mod(b, c, cDigits, p, pDigits); } #endif//BP512 -void ecc_modcurve(u32 *b,u32 *c,u32 cDigits,ucl_type_curve *curve_params) +void ecc_modcurve(u32 *b, u32 *c, u32 cDigits, ucl_type_curve *curve_params) { - switch(curve_params->curve) - { + switch (curve_params->curve) { #ifdef P192 - case SECP192R1: - ecc_mod192r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + case SECP192R1: + ecc_mod192r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + break; #endif//P192 #ifdef P256 - case SECP256R1: - ecc_mod256r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + case SECP256R1: + ecc_mod256r1(b, c, cDigits, ( u32*)(curve_params->p), curve_params->curve_wsize); + break; #endif//P256 #ifdef P384 - case SECP384R1: - ecc_mod384r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + case SECP384R1: + ecc_mod384r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + break; #endif//P384 #ifdef P521 - case SECP521R1: - ecc_mod521r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + case SECP521R1: + ecc_mod521r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + break; #endif//P521 #ifdef BP256 - case BP256R1: - ecc_modbp256r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + case BP256R1: + ecc_modbp256r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + break; #endif//BP256 #ifdef BP384 - case BP384R1: - ecc_modbp384r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + case BP384R1: + ecc_modbp384r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + break; #endif//BP384 #ifdef BP512 - case BP512R1: - ecc_modbp512r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + case BP512R1: + ecc_modbp512r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + break; #endif//BP512 - default: - ecc_mod(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); - break; + default: + ecc_mod(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + break; } } -int ecc_modsub(u32 *p_result, u32 *p_left, u32 *p_right,ucl_type_curve *curve_params) +int ecc_modsub(u32 *p_result, u32 *p_left, u32 *p_right, ucl_type_curve *curve_params) { - u32 carry; - carry= bignum_sub(p_result, p_left, p_right,curve_params->curve_wsize); - if(carry) - bignum_add(p_result, p_result, (u32*)(curve_params->p),curve_params->curve_wsize); - return(UCL_OK); + u32 carry; + + carry = bignum_sub(p_result, p_left, p_right, curve_params->curve_wsize); + if (carry) { + bignum_add(p_result, p_result, (u32*)(curve_params->p), curve_params->curve_wsize); + } + + return(UCL_OK); } -int ecc_modadd(u32 *r,u32 *a,u32 *b,ucl_type_curve *curve_params) +int ecc_modadd(u32 *r, u32 *a, u32 *b, ucl_type_curve *curve_params) { - u32 resu[1+ECDSA_DIGITS]; - resu[curve_params->curve_wsize]=bignum_add(resu,a,b,curve_params->curve_wsize); - ecc_modcurve(r,resu,1+curve_params->curve_wsize,curve_params); - return(UCL_OK); + u32 resu[ECDSA_DIGITS+1]; + + resu[curve_params->curve_wsize] = bignum_add(resu, a, b, curve_params->curve_wsize); + ecc_modcurve(r, resu, 1+curve_params->curve_wsize, curve_params); + + return(UCL_OK); } -int ecc_modleftshift(u32 *a,u32 *b,u32 c,u32 digits,ucl_type_curve *curve_params) +int ecc_modleftshift(u32 *a, u32 *b, u32 c, u32 digits, ucl_type_curve *curve_params) { - u32 tmp[ECDSA_DIGITS+1]; - tmp[digits]=bignum_leftshift(tmp,b,c,digits); - ecc_modcurve(a,tmp,digits+1,curve_params); - return(UCL_OK); + u32 tmp[ECDSA_DIGITS+1]; + + tmp[digits] = bignum_leftshift(tmp, b, c, digits); + ecc_modcurve(a, tmp, digits+1, curve_params); + + return(UCL_OK); } -int ecc_modmult(u32 *r,u32 *a,u32 *b,ucl_type_curve *curve_params) +int ecc_modmult(u32 *r, u32 *a, u32 *b, ucl_type_curve *curve_params) { - u32 mult[2*ECDSA_DIGITS]; - bignum_mult(mult,a,b,curve_params->curve_wsize); - ecc_modcurve(r,mult,2*curve_params->curve_wsize,curve_params); - return(UCL_OK); + u32 mult[2*ECDSA_DIGITS]; + bignum_mult(mult, a, b, curve_params->curve_wsize); + ecc_modcurve(r, mult, 2*curve_params->curve_wsize, curve_params); + + return(UCL_OK); } -void ecc_modmultscalar(u32 *r,u32 a,u32 *b,ucl_type_curve *curve_params) +void ecc_modmultscalar(u32 *r, u32 a, u32 *b, ucl_type_curve *curve_params) { - u32 mult[2*ECDSA_DIGITS]; - bignum_multscalar(mult,a,b,curve_params->curve_wsize); - ecc_modcurve(r,mult,2*curve_params->curve_wsize,curve_params); + u32 mult[2*ECDSA_DIGITS]; + + bignum_multscalar(mult, a, b, curve_params->curve_wsize); + ecc_modcurve(r, mult, 2*curve_params->curve_wsize, curve_params); } -int ecc_modsquare(u32 *r,u32 *a,ucl_type_curve *curve_params) +int ecc_modsquare(u32 *r, u32 *a, ucl_type_curve *curve_params) { - u32 mult[2*ECDSA_DIGITS]; - bignum_square(mult,a,curve_params->curve_wsize); - ecc_modcurve(r,mult,2*curve_params->curve_wsize,curve_params); - return(UCL_OK); + u32 mult[2*ECDSA_DIGITS]; + + bignum_square(mult, a, curve_params->curve_wsize); + ecc_modcurve(r, mult, 2*curve_params->curve_wsize, curve_params); + + return(UCL_OK); } -int ecc_infinite_affine(ucl_type_ecc_digit_affine_point Q,ucl_type_curve *curve_params) +int ecc_infinite_affine(ucl_type_ecc_digit_affine_point Q, ucl_type_curve *curve_params) { - if(bignum_isnul(Q.x,(u32)(curve_params->curve_wsize)) && bignum_isnul(Q.y,(u32)(curve_params->curve_wsize))) - return(UCL_TRUE); - return(UCL_ERROR); + if (bignum_isnul(Q.x, (u32)(curve_params->curve_wsize)) && bignum_isnul(Q.y, (u32)(curve_params->curve_wsize))) { + return(UCL_TRUE); + } + + return(UCL_ERROR); } -int ecc_infinite_jacobian(ucl_type_ecc_jacobian_point Q,ucl_type_curve *curve_params) +int ecc_infinite_jacobian(ucl_type_ecc_jacobian_point Q, ucl_type_curve *curve_params) { - int i; - if( (Q.x[0]!=1) || (Q.y[0]!=1)) - return(UCL_ERROR); - if(!bignum_isnul(Q.z,curve_params->curve_wsize)) - return(UCL_ERROR); + int i; + + if ((Q.x[0] != 1) || (Q.y[0] != 1)) { + return(UCL_ERROR); + } + + if (!bignum_isnul(Q.z, curve_params->curve_wsize)) { + return(UCL_ERROR); + } - for(i=1;i<(int)curve_params->curve_wsize;i++) - if((Q.x[i]!=0) || (Q.y[i]!=0)) - return(UCL_ERROR); - return(UCL_TRUE); + for (i = 1; i < (int)curve_params->curve_wsize; i++) { + if ((Q.x[i] != 0) || (Q.y[i] != 0)) { + return(UCL_ERROR); + } + } + return(UCL_TRUE); } -int ecc_double_jacobian(ucl_type_ecc_jacobian_point Q3,ucl_type_ecc_jacobian_point Q1,ucl_type_curve *curve_params) +int ecc_double_jacobian(ucl_type_ecc_jacobian_point Q3, ucl_type_ecc_jacobian_point Q1, ucl_type_curve *curve_params) { - u32 t1[ECDSA_DIGITS]; - u32 t2[ECDSA_DIGITS]; - u32 t3[ECDSA_DIGITS+1]; - int digits; - digits=curve_params->curve_wsize; - - //2.t1=z1^2 - if(ecc_infinite_jacobian(Q1,curve_params)==UCL_TRUE) - { - //return(x2:y2:1) - bignum_copy(Q3.x,Q1.x,curve_params->curve_wsize); - bignum_copy(Q3.y,Q1.y,curve_params->curve_wsize); - bignum_copydigit(Q3.z,0,curve_params->curve_wsize); - return(UCL_OK); - } - if(BP256R1==curve_params->curve||BP384R1==curve_params->curve||BP512R1==curve_params->curve) - { - //t1=x^2 - ecc_modsquare(t1,Q1.x,curve_params); - //t1=3*x^2 - ecc_modmultscalar(t1,3,t1,curve_params); - //t2=z^2 - ecc_modsquare(t2,Q1.z,curve_params); - //t2=z^4 - ecc_modsquare(t2,t2,curve_params); - //t2=a*z^4 - ecc_modmult(t2,(u32*)curve_params->a,t2,curve_params); - //t2=3*x^2+a*z^4 (t2 is m) - ecc_modadd(t2,t1,t2,curve_params); - ecc_modsquare(t1,Q1.y,curve_params); - ecc_modmult(t1,t1,Q1.x,curve_params); - ecc_modmultscalar(t1,4,t1,curve_params); - //t1 is s=4*x*y^2 + u32 t1[ECDSA_DIGITS]; + u32 t2[ECDSA_DIGITS]; + u32 t3[ECDSA_DIGITS+1]; + int digits; + digits = curve_params->curve_wsize; + + //2.t1 = z1^2 + if (ecc_infinite_jacobian(Q1, curve_params) == UCL_TRUE) { + //return(x2:y2:1) + bignum_copy(Q3.x, Q1.x, curve_params->curve_wsize); + bignum_copy(Q3.y, Q1.y, curve_params->curve_wsize); + bignum_copydigit(Q3.z, 0, curve_params->curve_wsize); + + return(UCL_OK); } - else - { - ecc_modsquare(t1,Q1.z,curve_params); - //3.t2=x1-t1 - ecc_modsub(t2,Q1.x,t1,curve_params); - //4.t1=x1+t1 - bignum_modadd(t1,t1,Q1.x,(u32*)curve_params->p,curve_params->curve_wsize); - //5.t2=t2*t1 - ecc_modmult(t2,t2,t1,curve_params); - //6.t2=3*t2 - ecc_modmultscalar(t2,3,t2,curve_params); + + if (BP256R1 == curve_params->curve || BP384R1 == curve_params->curve || BP512R1 == curve_params->curve) { + //t1 = x^2 + ecc_modsquare(t1, Q1.x, curve_params); + //t1 = 3*x^2 + ecc_modmultscalar(t1, 3, t1, curve_params); + //t2 = z^2 + ecc_modsquare(t2, Q1.z, curve_params); + //t2 = z^4 + ecc_modsquare(t2, t2, curve_params); + //t2 = a*z^4 + ecc_modmult(t2, (u32*)curve_params->a, t2, curve_params); + //t2 = 3*x^2+a*z^4 (t2 is m) + ecc_modadd(t2, t1, t2, curve_params); + ecc_modsquare(t1, Q1.y, curve_params); + ecc_modmult(t1, t1, Q1.x, curve_params); + ecc_modmultscalar(t1, 4, t1, curve_params); + //t1 is s = 4*x*y^2 + } else { + ecc_modsquare(t1, Q1.z, curve_params); + //3.t2 = x1-t1 + ecc_modsub(t2, Q1.x, t1, curve_params); + //4.t1 = x1+t1 + bignum_modadd(t1, t1, Q1.x, (u32*)curve_params->p, curve_params->curve_wsize); + //5.t2 = t2*t1 + ecc_modmult(t2, t2, t1, curve_params); + //6.t2 = 3*t2 + ecc_modmultscalar(t2, 3, t2, curve_params); } - //7.y3=2*y1 - ecc_modleftshift(Q3.y,Q1.y,1,digits,curve_params); - //8.z3=y3*z1 - ecc_modmult(Q3.z,Q1.z,Q3.y,curve_params); - //9.y3^2 - ecc_modsquare(Q3.y,Q3.y,curve_params); - //10.t3=y3.x1 - ecc_modmult(t3,Q1.x,Q3.y,curve_params); - //11.y3=y3^2 - ecc_modsquare(Q3.y,Q3.y,curve_params); - //12.y3=y3/2 equiv. to y3=y3*(2^-1) - ecc_modmult(Q3.y,Q3.y,curve_params->invp2,curve_params); - //13.x3=t2^2 - ecc_modsquare(Q3.x,t2,curve_params); - //14.t1=2*t3 - ecc_modleftshift(t1,t3,1,digits,curve_params); - //15.x3=x3-t1 - ecc_modsub(Q3.x,Q3.x,t1,curve_params); - //16.t1=t3-x3 - ecc_modsub(t1,t3,Q3.x,curve_params); - //17.t1=t1*t2 - ecc_modmult(t1,t1,t2,curve_params); - //18.y3=t1-y3 - ecc_modsub(Q3.y,t1,Q3.y,curve_params); - //result in x3,y3,z3 - return(UCL_OK); + + //7.y3 = 2*y1 + ecc_modleftshift(Q3.y, Q1.y, 1, digits, curve_params); + //8.z3 = y3*z1 + ecc_modmult(Q3.z, Q1.z, Q3.y, curve_params); + //9.y3^2 + ecc_modsquare(Q3.y, Q3.y, curve_params); + //10.t3 = y3.x1 + ecc_modmult(t3, Q1.x, Q3.y, curve_params); + //11.y3 = y3^2 + ecc_modsquare(Q3.y, Q3.y, curve_params); + //12.y3 = y3/2 equiv. to y3 = y3*(2^-1) + ecc_modmult(Q3.y, Q3.y, curve_params->invp2, curve_params); + //13.x3 = t2^2 + ecc_modsquare(Q3.x, t2, curve_params); + //14.t1 = 2*t3 + ecc_modleftshift(t1, t3, 1, digits, curve_params); + //15.x3 = x3-t1 + ecc_modsub(Q3.x, Q3.x, t1, curve_params); + //16.t1 = t3-x3 + ecc_modsub(t1, t3, Q3.x, curve_params); + //17.t1 = t1*t2 + ecc_modmult(t1, t1, t2, curve_params); + //18.y3 = t1-y3 + ecc_modsub(Q3.y, t1, Q3.y, curve_params); + + //result in x3, y3, z3 + return(UCL_OK); } -int ecc_add_jacobian_affine(ucl_type_ecc_jacobian_point Q3,ucl_type_ecc_jacobian_point Q1,ucl_type_ecc_digit_affine_point Q2,ucl_type_curve *curve_params) +int ecc_add_jacobian_affine(ucl_type_ecc_jacobian_point Q3, ucl_type_ecc_jacobian_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params) { - u32 t1[ECDSA_DIGITS]; - u32 t2[ECDSA_DIGITS]; - u32 t3[ECDSA_DIGITS]; - u32 t4[ECDSA_DIGITS]; - u32 scalar[ECDSA_DIGITS]; - ucl_type_ecc_jacobian_point Q2tmp; - int digits; - digits=curve_params->curve_wsize; - if(ecc_infinite_affine(Q2,curve_params)==UCL_TRUE) - { - bignum_copy(Q3.x,Q1.x,curve_params->curve_wsize); - bignum_copy(Q3.y,Q1.y,curve_params->curve_wsize); - bignum_copy(Q3.z,Q1.z,curve_params->curve_wsize); - return(UCL_OK); + u32 t1[ECDSA_DIGITS]; + u32 t2[ECDSA_DIGITS]; + u32 t3[ECDSA_DIGITS]; + u32 t4[ECDSA_DIGITS]; + u32 scalar[ECDSA_DIGITS]; + ucl_type_ecc_jacobian_point Q2tmp; + int digits; + + digits = curve_params->curve_wsize; + if (ecc_infinite_affine(Q2, curve_params) == UCL_TRUE) { + bignum_copy(Q3.x, Q1.x, curve_params->curve_wsize); + bignum_copy(Q3.y, Q1.y, curve_params->curve_wsize); + bignum_copy(Q3.z, Q1.z, curve_params->curve_wsize); + + return(UCL_OK); } - if(ecc_infinite_jacobian(Q1,curve_params)==UCL_TRUE) - { - //return(x2:y2:1) - bignum_copy(Q3.x,Q2.x,curve_params->curve_wsize); - bignum_copy(Q3.y,Q2.y,curve_params->curve_wsize); - bignum_copydigit(Q3.z,1,curve_params->curve_wsize); - return(UCL_OK); + if (ecc_infinite_jacobian(Q1, curve_params) == UCL_TRUE) { + //return(x2:y2:1) + bignum_copy(Q3.x, Q2.x, curve_params->curve_wsize); + bignum_copy(Q3.y, Q2.y, curve_params->curve_wsize); + bignum_copydigit(Q3.z, 1, curve_params->curve_wsize); + + return(UCL_OK); } - //3.t1=z1^2 - ecc_modsquare(t1,Q1.z,curve_params); - //4.t2=t1*z1 - ecc_modmult(t2,t1,Q1.z,curve_params); - //6.t2=t2*y2 - ecc_modmult(t2,t2,Q2.y,curve_params); - //5.t1=t1*x2 - ecc_modmult(t1,t1,Q2.x,curve_params); - //7.t1=t1-x1 - ecc_modsub(t1,t1,Q1.x,curve_params); - //8.t2=t2-y1 - ecc_modsub(t2,t2,Q1.y,curve_params); - //9. - if(bignum_isnul(t1,curve_params->curve_wsize)) - { - bignum_copyzero(scalar,curve_params->curve_wsize); - //9.1 - if(bignum_isnul(t2,curve_params->curve_wsize)) - { - //double (x2:y2:1) - scalar[0]=1; - Q2tmp.x=Q2.x; - Q2tmp.y=Q2.y; - Q2tmp.z=scalar; - ecc_double_jacobian(Q3,Q2tmp,curve_params); - return(UCL_OK); - } - //9.2 - else - { - //return infinite - bignum_copy(Q3.x,scalar,curve_params->curve_wsize); - bignum_copy(Q3.y,scalar,curve_params->curve_wsize); - bignum_copyzero(Q3.z,curve_params->curve_wsize); - return(UCL_OK); - } + + //3.t1 = z1^2 + ecc_modsquare(t1, Q1.z, curve_params); + //4.t2 = t1*z1 + ecc_modmult(t2, t1, Q1.z, curve_params); + //6.t2 = t2*y2 + ecc_modmult(t2, t2, Q2.y, curve_params); + //5.t1 = t1*x2 + ecc_modmult(t1, t1, Q2.x, curve_params); + //7.t1 = t1-x1 + ecc_modsub(t1, t1, Q1.x, curve_params); + //8.t2 = t2-y1 + ecc_modsub(t2, t2, Q1.y, curve_params); + //9. + if (bignum_isnul(t1, curve_params->curve_wsize)) { + bignum_copyzero(scalar, curve_params->curve_wsize); + + //9.1 + if (bignum_isnul(t2, curve_params->curve_wsize)) { + //double (x2:y2:1) + scalar[0] = 1; + Q2tmp.x = Q2.x; + Q2tmp.y = Q2.y; + Q2tmp.z = scalar; + ecc_double_jacobian(Q3, Q2tmp, curve_params); + + return(UCL_OK); + } else { //9.2 + //return infinite + bignum_copy(Q3.x, scalar, curve_params->curve_wsize); + bignum_copy(Q3.y, scalar, curve_params->curve_wsize); + bignum_copyzero(Q3.z, curve_params->curve_wsize); + + return(UCL_OK); + } } - //10.z3=z1*t1 - ecc_modmult(Q3.z,Q1.z,t1,curve_params); - //11.t3=t1^2 - ecc_modsquare(t3,t1,curve_params); - //12.t4=t3*t1 - ecc_modmult(t4,t3,t1,curve_params); - //13.t3=t3*x1 - ecc_modmult(t3,t3,Q1.x,curve_params); - //14.t1=2*t3 - ecc_modleftshift(t1,t3,1,digits,curve_params); - //15.x3=t2^2 - ecc_modsquare(Q3.x,t2,curve_params); - //16.x3=Q3.x-t1 - ecc_modsub(Q3.x,Q3.x,t1,curve_params); - //17.x3=x3-t4 - ecc_modsub(Q3.x,Q3.x,t4,curve_params); - //18.t3=t3-x3 - ecc_modsub(t3,t3,Q3.x,curve_params); - //19.t3=t3*t2 - ecc_modmult(t3,t3,t2,curve_params); - //20.t4=t4*y1 - ecc_modmult(t4,t4,Q1.y,curve_params); - //21.y3=t3-t4 - ecc_modsub(Q3.y,t3,t4,curve_params); - //result in x3,y3,z3 - return(UCL_OK); + + //10.z3 = z1*t1 + ecc_modmult(Q3.z, Q1.z, t1, curve_params); + //11.t3 = t1^2 + ecc_modsquare(t3, t1, curve_params); + //12.t4 = t3*t1 + ecc_modmult(t4, t3, t1, curve_params); + //13.t3 = t3*x1 + ecc_modmult(t3, t3, Q1.x, curve_params); + //14.t1 = 2*t3 + ecc_modleftshift(t1, t3, 1, digits, curve_params); + //15.x3 = t2^2 + ecc_modsquare(Q3.x, t2, curve_params); + //16.x3 = Q3.x-t1 + ecc_modsub(Q3.x, Q3.x, t1, curve_params); + //17.x3 = x3-t4 + ecc_modsub(Q3.x, Q3.x, t4, curve_params); + //18.t3 = t3-x3 + ecc_modsub(t3, t3, Q3.x, curve_params); + //19.t3 = t3*t2 + ecc_modmult(t3, t3, t2, curve_params); + //20.t4 = t4*y1 + ecc_modmult(t4, t4, Q1.y, curve_params); + //21.y3 = t3-t4 + ecc_modsub(Q3.y, t3, t4, curve_params); + + //result in x3, y3, z3 + return(UCL_OK); } -int ecc_convert_affine_to_jacobian(ucl_type_ecc_jacobian_point Q,ucl_type_ecc_digit_affine_point X1,ucl_type_curve *curve_params) +int ecc_convert_affine_to_jacobian(ucl_type_ecc_jacobian_point Q, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params) { - //conversion from x:y to x*z^2:y*z^3:z; direct and simple for z=1 - bignum_copy(Q.x,X1.x,(u32)curve_params->curve_wsize); - bignum_copy(Q.y,X1.y,(u32)curve_params->curve_wsize); - bignum_copydigit(Q.z,1,(u32)curve_params->curve_wsize); - return(UCL_OK); + //conversion from x:y to x*z^2:y*z^3:z; direct and simple for z = 1 + bignum_copy(Q.x, X1.x, (u32)curve_params->curve_wsize); + bignum_copy(Q.y, X1.y, (u32)curve_params->curve_wsize); + bignum_copydigit(Q.z, 1, (u32)curve_params->curve_wsize); + + return(UCL_OK); } -int ecc_convert_jacobian_to_affine(u32 *x,u32 *y,u32 *xq,u32 *yq,u32 *zq,ucl_type_curve *curve_params) +int ecc_convert_jacobian_to_affine(u32 *x, u32 *y, u32 *xq, u32 *yq, u32 *zq, ucl_type_curve *curve_params) { - u32 tmp[ECDSA_DIGITS]; - u32 tmp1[ECDSA_DIGITS]; - int digits; - digits=curve_params->curve_wsize; - //x:y:z corresponds to x/z^2:y/z^3 - //z^2 - ecc_modsquare(tmp,zq,curve_params); - //z^-2 - bignum_modinv(tmp1,tmp,(u32*)curve_params->p,digits); - ecc_modmult(x,xq,tmp1,curve_params); - //z^3 - ecc_modmult(tmp,tmp,zq,curve_params); - //z^-3 - bignum_modinv(tmp1,tmp,(u32*)curve_params->p,digits); - ecc_modmult(y,yq,tmp1,curve_params); - return(UCL_OK); + u32 tmp[ECDSA_DIGITS]; + u32 tmp1[ECDSA_DIGITS]; + int digits; + + digits = curve_params->curve_wsize; + //x:y:z corresponds to x/z^2:y/z^3 + //z^2 + ecc_modsquare(tmp, zq, curve_params); + //z^-2 + bignum_modinv(tmp1, tmp, (u32*)curve_params->p, digits); + ecc_modmult(x, xq, tmp1, curve_params); + //z^3 + ecc_modmult(tmp, tmp, zq, curve_params); + //z^-3 + bignum_modinv(tmp1, tmp, (u32*)curve_params->p, digits); + ecc_modmult(y, yq, tmp1, curve_params); + + return(UCL_OK); } -int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1,ucl_type_curve *curve_params) +int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params) { - int i; - int j; - u32 zq[ECDSA_DIGITS]; - int size; - ucl_type_ecc_jacobian_point T; - - u32 mask=(u32)0x80000000; - u8 first; - - if(NULL==m) - return(UCL_INVALID_INPUT); - bignum_copyzero(Q.x,curve_params->curve_wsize); - bignum_copyzero(Q.y,curve_params->curve_wsize); - bignum_copyzero(zq,curve_params->curve_wsize); - size=(int)curve_params->curve_wsize; - mask=(u32)0x80000000; - - T.x=Q.x; - T.y=Q.y; - T.z=zq; - first=1; - for(i=(int)(size-1);i>=0;i--) - { - for(j=0;j<(int)DIGIT_BITS;j++) - { - if(!first) - { - ecc_double_jacobian(T,T,curve_params); - } - if((m[i]&(mask>>j))!=0) - { - if(first) - { - ecc_convert_affine_to_jacobian(T,X1,curve_params); - - first=0; - } - else - ecc_add_jacobian_affine(T,T,X1,curve_params); - } - } + int i; + int j; + u32 zq[ECDSA_DIGITS]; + int size; + ucl_type_ecc_jacobian_point T; + + u32 mask = (u32)0x80000000; + u8 first; + + if (NULL == m) { + return(UCL_INVALID_INPUT); + } + + bignum_copyzero(Q.x, curve_params->curve_wsize); + bignum_copyzero(Q.y, curve_params->curve_wsize); + bignum_copyzero(zq, curve_params->curve_wsize); + size = (int)curve_params->curve_wsize; + mask = (u32)0x80000000; + + T.x = Q.x; + T.y = Q.y; + T.z = zq; + first = 1; + for (i = (int)(size-1); i >= 0; i--) { + for (j = 0; j < (int)DIGIT_BITS; j++) { + if (!first) { + ecc_double_jacobian(T, T, curve_params); + } + + if ((m[i] & (mask >> j)) != 0) { + if (first) { + ecc_convert_affine_to_jacobian(T, X1, curve_params); + + first = 0; + } else { + ecc_add_jacobian_affine(T, T, X1, curve_params); + } + } + } } - ecc_convert_jacobian_to_affine(Q.x,Q.y,T.x,T.y,T.z,curve_params); - return(UCL_OK); + + ecc_convert_jacobian_to_affine(Q.x, Q.y, T.x, T.y, T.z, curve_params); + + return(UCL_OK); } -int ecc_add(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1,ucl_type_ecc_digit_affine_point Q2,ucl_type_curve *curve_params) +int ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params) { - u32 lambda[ECDSA_DIGITS]; - u32 tmp1[ECDSA_DIGITS]; - u32 tmp2[ECDSA_DIGITS]; - //tmp1=(x2-x1) - ecc_modsub(tmp1,Q2.x,Q1.x,curve_params); - bignum_modinv(tmp2,tmp1,(u32*)(curve_params->p),curve_params->curve_wsize); - //tmp1=(y2-y1) - ecc_modsub(tmp1,Q2.y,Q1.y,curve_params); - //lambda=(y2-y1)*(x2-x1)^-1 mod p - ecc_modmult(lambda,tmp1,tmp2,curve_params); - //tmp1=lambda^2 mod p - ecc_modsquare(tmp1,lambda,curve_params); - //tmp2=lambda^2 mod p -x1 - ecc_modsub(tmp2,tmp1,Q1.x,curve_params); - //x3 =lambda^2 mod p -x1 -x2 - ecc_modsub(Q3.x,tmp2,Q2.x,curve_params); - //tmp2=x1-x3 - ecc_modsub(tmp2,Q1.x,Q3.x,curve_params); - //tmp1=lambda * (x1-x3) - ecc_modmult(tmp1,lambda,tmp2,curve_params); - //y3=lambda * (x1-x3) -y1 - ecc_modsub(Q3.y,tmp1,Q1.y,curve_params); - return(UCL_OK); + u32 lambda[ECDSA_DIGITS]; + u32 tmp1[ECDSA_DIGITS]; + u32 tmp2[ECDSA_DIGITS]; + + //tmp1 = (x2-x1) + ecc_modsub(tmp1, Q2.x, Q1.x, curve_params); + bignum_modinv(tmp2, tmp1, (u32*)(curve_params->p), curve_params->curve_wsize); + //tmp1 = (y2-y1) + ecc_modsub(tmp1, Q2.y, Q1.y, curve_params); + //lambda = (y2-y1)*(x2-x1)^-1 mod p + ecc_modmult(lambda, tmp1, tmp2, curve_params); + //tmp1 = lambda^2 mod p + ecc_modsquare(tmp1, lambda, curve_params); + //tmp2 = lambda^2 mod p -x1 + ecc_modsub(tmp2, tmp1, Q1.x, curve_params); + //x3 = lambda^2 mod p -x1 -x2 + ecc_modsub(Q3.x, tmp2, Q2.x, curve_params); + //tmp2 = x1-x3 + ecc_modsub(tmp2, Q1.x, Q3.x, curve_params); + //tmp1 = lambda * (x1-x3) + ecc_modmult(tmp1, lambda, tmp2, curve_params); + //y3 = lambda * (x1-x3) -y1 + ecc_modsub(Q3.y, tmp1, Q1.y, curve_params); + + return(UCL_OK); } -int ecc_double(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params) +int ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params) { - u32 lambda[ECDSA_DIGITS+1]; - u32 tmp1[ECDSA_DIGITS+1]; - u32 tmp2[ECDSA_DIGITS+1]; - u32 tmp3[ECDSA_DIGITS+1]; - u32 trois[ECDSA_DIGITS]; - - bignum_copyzero(trois,curve_params->curve_wsize); - trois[0]=3; - //tmp1 = x1^2 - ecc_modsquare(tmp1,Q1.x,curve_params); - //lambda = 3*x1^2 - ecc_modmult(lambda,trois,tmp1,curve_params); - //tmp1 = 3*x1^2+a - tmp1[curve_params->curve_wsize]=bignum_add(tmp1,lambda,(u32*)(curve_params->a),curve_params->curve_wsize); - ecc_modcurve(tmp1,tmp1,curve_params->curve_wsize+1,curve_params); - //tmp2 = 2*y1 - tmp2[curve_params->curve_wsize]=bignum_leftshift(tmp2,Q1.y,1,curve_params->curve_wsize); - ecc_modcurve(tmp2,tmp2,curve_params->curve_wsize+1,curve_params); - //tmp3 = 2*y1^-1 mod p - bignum_modinv(tmp3,tmp2,(u32*)(curve_params->p),curve_params->curve_wsize); - //lambda = (3*x1^2+a)*(2*y)^-1 modp - ecc_modmult(lambda,tmp1,tmp3,curve_params); - //tmp1=Lambda^2 mod p - ecc_modsquare(tmp1,lambda,curve_params); - //tmp2=Lambda^2 mod p -x1 - ecc_modsub(tmp2,tmp1,Q1.x,curve_params); - //x3 =Lambda^2 mod p -x1 -x2 - ecc_modsub(Q3.x,tmp2,Q1.x,curve_params); - //tmp2=x1-x3 - ecc_modsub(tmp2,Q1.x,Q3.x,curve_params); - //tmp1=Lambda * (x1-x3) - ecc_modmult(tmp1,lambda,tmp2,curve_params); - //y3=Lambda * (x1-x3) -y1 - ecc_modsub(Q3.y,tmp1,Q1.y,curve_params); - return(UCL_OK); + u32 lambda[ECDSA_DIGITS+1]; + u32 tmp1[ECDSA_DIGITS+1]; + u32 tmp2[ECDSA_DIGITS+1]; + u32 tmp3[ECDSA_DIGITS+1]; + u32 trois[ECDSA_DIGITS]; + + bignum_copyzero(trois, curve_params->curve_wsize); + trois[0] = 3; + //tmp1 = x1^2 + ecc_modsquare(tmp1, Q1.x, curve_params); + //lambda = 3*x1^2 + ecc_modmult(lambda, trois, tmp1, curve_params); + //tmp1 = 3*x1^2+a + tmp1[curve_params->curve_wsize] = bignum_add(tmp1, lambda, (u32*)(curve_params->a), curve_params->curve_wsize); + ecc_modcurve(tmp1, tmp1, curve_params->curve_wsize+1, curve_params); + //tmp2 = 2*y1 + tmp2[curve_params->curve_wsize] = bignum_leftshift(tmp2, Q1.y, 1, curve_params->curve_wsize); + ecc_modcurve(tmp2, tmp2, curve_params->curve_wsize+1, curve_params); + //tmp3 = 2*y1^-1 mod p + bignum_modinv(tmp3, tmp2, (u32*)(curve_params->p), curve_params->curve_wsize); + //lambda = (3*x1^2+a)*(2*y)^-1 mod p + ecc_modmult(lambda, tmp1, tmp3, curve_params); + //tmp1 = Lambda^2 mod p + ecc_modsquare(tmp1, lambda, curve_params); + //tmp2 = Lambda^2 mod p -x1 + ecc_modsub(tmp2, tmp1, Q1.x, curve_params); + //x3 = Lambda^2 mod p -x1 -x2 + ecc_modsub(Q3.x, tmp2, Q1.x, curve_params); + //tmp2 = x1-x3 + ecc_modsub(tmp2, Q1.x, Q3.x, curve_params); + //tmp1 = Lambda * (x1-x3) + ecc_modmult(tmp1, lambda, tmp2, curve_params); + //y3 = Lambda * (x1-x3) -y1 + ecc_modsub(Q3.y, tmp1, Q1.y, curve_params); + + return(UCL_OK); } - diff --git a/Libraries/FCL/src/ecdsa_high.c b/Libraries/FCL/src/ecdsa_high.c index cf31cb548ed..84c1742b1f9 100644 --- a/Libraries/FCL/src/ecdsa_high.c +++ b/Libraries/FCL/src/ecdsa_high.c @@ -1,42 +1,53 @@ -/******************************************************************************* -* Copyright (C) 2017 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: ECC test application -* Description: performs ECDSA computations -* Filename: ecdsa_high.c -* Author: LSL -* Compiler: gcc -* -******************************************************************************* -*/ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ //1.0.0: first release, with sign and verify functions, taken from UCL //1.0.1: some cleaning in the code @@ -67,199 +78,229 @@ extern int hash_size[MAX_HASH_FUNCTIONS]; //curves domain parameters -ucl_type_curve secp256r1={(u32*)local_a_p256r1,(u32*)local_b_p256r1,(u32*)local_p_p256r1,(u32*)local_n_p256r1,(u32*)local_xg_p256r1,(u32*)local_yg_p256r1,(u32*)local_inv2_p256r1,NULL,NULL,NULL,SECP256R1_WORDSIZE,SECP256R1_BYTESIZE,SECP256R1}; -ucl_type_curve secp192r1={(u32*)local_a_p192r1,(u32*)local_b_p192r1,(u32*)local_p_p192r1,(u32*)local_n_p192r1,(u32*)local_xg_p192r1,(u32*)local_yg_p192r1,(u32*)local_inv2_p192r1,NULL,NULL,NULL,SECP192R1_WORDSIZE,SECP192R1_BYTESIZE,SECP192R1}; -ucl_type_curve secp384r1={(u32*)local_a_p384r1,(u32*)local_b_p384r1,(u32*)local_p_p384r1,(u32*)local_n_p384r1,(u32*)local_xg_p384r1,(u32*)local_yg_p384r1,(u32*)local_inv2_p384r1,NULL,NULL,NULL,SECP384R1_WORDSIZE,SECP384R1_BYTESIZE,SECP384R1}; -ucl_type_curve secp521r1={(u32*)local_a_p521r1,(u32*)local_b_p521r1,(u32*)local_p_p521r1,(u32*)local_n_p521r1,(u32*)local_xg_p521r1,(u32*)local_yg_p521r1,(u32*)local_inv2_p521r1,NULL,NULL,NULL,SECP521R1_WORDSIZE,SECP521R1_BYTESIZE,SECP521R1}; -ucl_type_curve bp256r1={(u32*)local_a_bp256r1,(u32*)local_b_bp256r1,(u32*)local_p_bp256r1,(u32*)local_n_bp256r1,(u32*)local_xg_bp256r1,(u32*)local_yg_bp256r1,(u32*)local_inv2_bp256r1,NULL,NULL,NULL,BP256R1_WORDSIZE,BP256R1_BYTESIZE,BP256R1}; -ucl_type_curve bp384r1={(u32*)local_a_bp384r1,(u32*)local_b_bp384r1,(u32*)local_p_bp384r1,(u32*)local_n_bp384r1,(u32*)local_xg_bp384r1,(u32*)local_yg_bp384r1,(u32*)local_inv2_bp384r1,NULL,NULL,NULL,BP384R1_WORDSIZE,BP384R1_BYTESIZE,BP384R1}; -ucl_type_curve bp512r1={(u32*)local_a_bp512r1,(u32*)local_b_bp512r1,(u32*)local_p_bp512r1,(u32*)local_n_bp512r1,(u32*)local_xg_bp512r1,(u32*)local_yg_bp512r1,(u32*)local_inv2_bp512r1,NULL,NULL,NULL,BP512R1_WORDSIZE,BP512R1_BYTESIZE,BP512R1}; +ucl_type_curve secp256r1 = {(u32*)local_a_p256r1, (u32*)local_b_p256r1, (u32*)local_p_p256r1, (u32*)local_n_p256r1, (u32*)local_xg_p256r1, (u32*)local_yg_p256r1, (u32*)local_inv2_p256r1, NULL, NULL, NULL, SECP256R1_WORDSIZE, SECP256R1_BYTESIZE, SECP256R1}; +ucl_type_curve secp192r1 = {(u32*)local_a_p192r1, (u32*)local_b_p192r1, (u32*)local_p_p192r1, (u32*)local_n_p192r1, (u32*)local_xg_p192r1, (u32*)local_yg_p192r1, (u32*)local_inv2_p192r1, NULL, NULL, NULL, SECP192R1_WORDSIZE, SECP192R1_BYTESIZE, SECP192R1}; +ucl_type_curve secp384r1 = {(u32*)local_a_p384r1, (u32*)local_b_p384r1, (u32*)local_p_p384r1, (u32*)local_n_p384r1, (u32*)local_xg_p384r1, (u32*)local_yg_p384r1, (u32*)local_inv2_p384r1, NULL, NULL, NULL, SECP384R1_WORDSIZE, SECP384R1_BYTESIZE, SECP384R1}; +ucl_type_curve secp521r1 = {(u32*)local_a_p521r1, (u32*)local_b_p521r1, (u32*)local_p_p521r1, (u32*)local_n_p521r1, (u32*)local_xg_p521r1, (u32*)local_yg_p521r1, (u32*)local_inv2_p521r1, NULL, NULL, NULL, SECP521R1_WORDSIZE, SECP521R1_BYTESIZE, SECP521R1}; +ucl_type_curve bp256r1 = {(u32*)local_a_bp256r1, (u32*)local_b_bp256r1, (u32*)local_p_bp256r1, (u32*)local_n_bp256r1, (u32*)local_xg_bp256r1, (u32*)local_yg_bp256r1, (u32*)local_inv2_bp256r1, NULL, NULL, NULL, BP256R1_WORDSIZE, BP256R1_BYTESIZE, BP256R1}; +ucl_type_curve bp384r1 = {(u32*)local_a_bp384r1, (u32*)local_b_bp384r1, (u32*)local_p_bp384r1, (u32*)local_n_bp384r1, (u32*)local_xg_bp384r1, (u32*)local_yg_bp384r1, (u32*)local_inv2_bp384r1, NULL, NULL, NULL, BP384R1_WORDSIZE, BP384R1_BYTESIZE, BP384R1}; +ucl_type_curve bp512r1 = {(u32*)local_a_bp512r1, (u32*)local_b_bp512r1, (u32*)local_p_bp512r1, (u32*)local_n_bp512r1, (u32*)local_xg_bp512r1, (u32*)local_yg_bp512r1, (u32*)local_inv2_bp512r1, NULL, NULL, NULL, BP512R1_WORDSIZE, BP512R1_BYTESIZE, BP512R1}; int min(int a, int b) { - return(a>UCL_HASH_SHIFT)&UCL_HASH_MASK; - input_format=(configuration>>UCL_INPUT_SHIFT)&UCL_INPUT_MASK; - //if no-input, the function call is only for r & k-1 precomputation - if(UCL_NO_INPUT==input_format) - return(UCL_INVALID_INPUT); - - //hash computation only if input format is UCL_MSG_INPUT - hashsize=hash_size[hash]; -//1. e=SHA(m) - if(UCL_MSG_INPUT==input_format) - ucl_hash(e,input,inputlength); - else - if(UCL_NO_INPUT!=input_format) - { - //here, the hash is provided as input - if(inputlength!=UCL_SHA256_HASHSIZE) - if(inputlength!=UCL_SHA512_HASHSIZE) - if(inputlength!=UCL_SHA384_HASHSIZE) - if(inputlength!=UCL_SIA256_HASHSIZE) - return(UCL_INVALID_INPUT); - hashsize=(int)inputlength; - memcpy(e,input,inputlength); - } - curve_wsize=(int)(curve_params->curve_wsize); - curve_bsize=(int)(curve_params->curve_bsize); - //2 generate k for Q computation - //this has to be really random, otherwise the key is exposed - ucl_rng_read((u8*)K,(u32)curve_bsize); - bignum_mod(K,K,curve_wsize,(u32*)(curve_params->n),curve_wsize); - //3 compute r=x1(mod n) where (x1,y1)=k.G - //compute k.G - Q.x=X1; - Q.y=Y1; - P.x=(u32*)curve_params->xg; - P.y=(u32*)curve_params->yg; - resu=ecc_mult_jacobian(Q,K,P,curve_params); - if(UCL_OK!=resu) - return(resu); - bignum_d2us(signature.r,(u32)curve_bsize,X1,(u32)curve_wsize); - //r=x1 mod n - bignum_mod(R,X1,(u32)curve_wsize,(u32*)curve_params->n,(u32)curve_wsize); - //store R in r - bignum_d2us(signature.r,(u32)curve_bsize,R,(u32)curve_wsize); - //4 compute s=k_inv.(z+r.d)mod n - bignum_modinv(W,K,(u32*)curve_params->n,(u32)curve_wsize); - //parameter check - //u2=r.d - bignum_us2d(D,(u32)curve_wsize,d,(u32)curve_bsize); - bignum_modmult(U2,R,D,(u32*)curve_params->n,(u32)curve_wsize); - //z+r.d where z is e - bignum_us2d(E,(u32)curve_wsize,e,(u32)min(curve_bsize,hashsize)); - //sm2.A5 r=(e+x1) mod n - bignum_modadd(U2,E,U2,(u32*)curve_params->n,(u32)curve_wsize); - //k_inv . (z+r.d) - bignum_modmult(S,W,U2,(u32*)curve_params->n,(u32)curve_wsize); - bignum_d2us(signature.s,(u32)curve_bsize,S,(u32)curve_wsize); - //6 result - return(UCL_OK); + //the larger size to cover any hash function + u8 e[64]; + int resu; + u32 R[SECP521R1_WORDSIZE], E[SECP521R1_WORDSIZE], S[SECP521R1_WORDSIZE], U2[SECP521R1_WORDSIZE+1]; + u32 X1[SECP521R1_WORDSIZE], Y1[SECP521R1_WORDSIZE], K[SECP521R1_WORDSIZE], W[SECP521R1_WORDSIZE], D[SECP521R1_WORDSIZE]; + ucl_type_ecc_digit_affine_point Q; + ucl_type_ecc_digit_affine_point P; + int hash, input_format; + int curve_wsize, curve_bsize, hashsize; + + //check parameters + if (NULL == input) { + return(UCL_INVALID_INPUT); + } + + if (NULL == d) { + return(UCL_INVALID_INPUT); + } + + //retrieve configuration + hash = (configuration >> UCL_HASH_SHIFT)&UCL_HASH_MASK; + input_format = (configuration >> UCL_INPUT_SHIFT)&UCL_INPUT_MASK; + + //if no-input, the function call is only for r & k-1 precomputation + if (UCL_NO_INPUT == input_format) { + return(UCL_INVALID_INPUT); + } + + //hash computation only if input format is UCL_MSG_INPUT + hashsize = hash_size[hash]; + //1. e = SHA(m) + if (UCL_MSG_INPUT == input_format) { + ucl_hash(e, input, inputlength); + } else { + if (UCL_NO_INPUT != input_format) { + //here, the hash is provided as input + if (inputlength != UCL_SHA256_HASHSIZE) { + if (inputlength != UCL_SHA512_HASHSIZE) { + if (inputlength != UCL_SHA384_HASHSIZE) { + if (inputlength != UCL_SIA256_HASHSIZE) { + return(UCL_INVALID_INPUT); + } + + hashsize = (int)inputlength; + memcpy(e, input, inputlength); + } + } + } + } + } + + curve_wsize = (int)(curve_params->curve_wsize); + curve_bsize = (int)(curve_params->curve_bsize); + + //2 generate k for Q computation + //this has to be really random, otherwise the key is exposed + ucl_rng_read((u8*)K, (u32)curve_bsize); + bignum_mod(K, K, curve_wsize, (u32*)(curve_params->n), curve_wsize); + //3 compute r = x1(mod n) where (x1, y1) = k.G + //compute k.G + Q.x = X1; + Q.y = Y1; + P.x = (u32*)curve_params->xg; + P.y = (u32*)curve_params->yg; + resu = ecc_mult_jacobian(Q, K, P, curve_params); + + if (UCL_OK != resu) { + return(resu); + } + + bignum_d2us(signature.r, (u32)curve_bsize, X1, (u32)curve_wsize); + //r = x1 mod n + bignum_mod(R, X1, (u32)curve_wsize, (u32*)curve_params->n, (u32)curve_wsize); + //store R in r + bignum_d2us(signature.r, (u32)curve_bsize, R, (u32)curve_wsize); + //4 compute s = k_inv.(z+r.d)mod n + bignum_modinv(W, K, (u32*)curve_params->n, (u32)curve_wsize); + //parameter check + //u2 = r.d + bignum_us2d(D, (u32)curve_wsize, d, (u32)curve_bsize); + bignum_modmult(U2, R, D, (u32*)curve_params->n, (u32)curve_wsize); + //z+r.d where z is e + bignum_us2d(E, (u32)curve_wsize, e, (u32)min(curve_bsize, hashsize)); + //sm2.A5 r = (e+x1) mod n + bignum_modadd(U2, E, U2, (u32*)curve_params->n, (u32)curve_wsize); + //k_inv . (z+r.d) + bignum_modmult(S, W, U2, (u32*)curve_params->n, (u32)curve_wsize); + bignum_d2us(signature.s, (u32)curve_bsize, S, (u32)curve_wsize); + + //6 result + return(UCL_OK); } //this function is the signature function, verifying ECDSA signature, using the curve defined by curve_params and the hash function pointed by ucl_hash -int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q,ucl_type_ecdsa_signature signature,int(*ucl_hash)(u8*,u8*,u32),u8 *input,u32 inputlength,ucl_type_curve *curve_params,u32 configuration) +int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q, ucl_type_ecdsa_signature signature, int(*ucl_hash)(u8*, u8*, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration) { - u32 S[SECP521R1_WORDSIZE+1],R[SECP521R1_WORDSIZE],W[SECP521R1_WORDSIZE],E[SECP521R1_WORDSIZE],U1[SECP521R1_WORDSIZE],U2[SECP521R1_WORDSIZE]; - u32 X1[SECP521R1_WORDSIZE],Y1[SECP521R1_WORDSIZE],X2[SECP521R1_WORDSIZE],Y2[SECP521R1_WORDSIZE]; - u32 X[SECP521R1_WORDSIZE],Y[SECP521R1_WORDSIZE]; - u32 XQ[SECP521R1_WORDSIZE],YQ[SECP521R1_WORDSIZE]; - ucl_type_ecc_digit_affine_point pQ; - ucl_type_ecc_digit_affine_point pP; - ucl_type_ecc_digit_affine_point pR; - - //the hash digest has the largest size, to fit any hash function - u8 e[64]; - int hash,input_format; - int curve_wsize,curve_bsize,hashsize; - //check parameters - if(NULL==input) - return(UCL_INVALID_INPUT); - //retrieve configuration - hash=(configuration>>UCL_HASH_SHIFT)&UCL_HASH_MASK; - input_format=(configuration>>UCL_INPUT_SHIFT)&UCL_INPUT_MASK; - //no input is non sense for verify - if(UCL_NO_INPUT==input_format) - return(UCL_INVALID_INPUT); - - //hash computation only if input format is UCL_MSG_INPUT - //1. e=SHA(m) - hashsize=hash_size[hash]; - if(UCL_MSG_INPUT==input_format) - ucl_hash(e,input,inputlength); - else - { - //or here, the hash is provided as input - if(inputlength!=UCL_SHA256_HASHSIZE) - if(inputlength!=UCL_SHA384_HASHSIZE) - if(inputlength!=UCL_SHA512_HASHSIZE) - return(UCL_INVALID_INPUT); - hashsize=(int)inputlength; - memcpy(e,input,inputlength); + u32 S[SECP521R1_WORDSIZE+1], R[SECP521R1_WORDSIZE], W[SECP521R1_WORDSIZE], E[SECP521R1_WORDSIZE], U1[SECP521R1_WORDSIZE], U2[SECP521R1_WORDSIZE]; + u32 X1[SECP521R1_WORDSIZE], Y1[SECP521R1_WORDSIZE], X2[SECP521R1_WORDSIZE], Y2[SECP521R1_WORDSIZE]; + u32 X[SECP521R1_WORDSIZE], Y[SECP521R1_WORDSIZE]; + u32 XQ[SECP521R1_WORDSIZE], YQ[SECP521R1_WORDSIZE]; + ucl_type_ecc_digit_affine_point pQ; + ucl_type_ecc_digit_affine_point pP; + ucl_type_ecc_digit_affine_point pR; + + //the hash digest has the largest size, to fit any hash function + u8 e[64]; + int hash, input_format; + int curve_wsize, curve_bsize, hashsize; + + //check parameters + if (NULL == input) { + return(UCL_INVALID_INPUT); } - curve_wsize=curve_params->curve_wsize; - curve_bsize=curve_params->curve_bsize; - - //2. Verification of the r/s intervals (shall be >0 and n,(u32)curve_wsize)>=0)||(bignum_cmp(R,(u32*)curve_params->n,(u32)curve_wsize)>=0)) - return(UCL_ERROR); - if(bignum_cmp_zero(S,(u32)curve_wsize)==0) - return(UCL_ERROR); - if(bignum_cmp_zero(R,(u32)curve_wsize)==0) - return(UCL_ERROR); - - //3. w=s^-1 - bignum_modinv(W,S,(u32*)curve_params->n,(u32)curve_wsize); - //4. U1=e.w mod n and U2=r.w mod n - bignum_us2d(E,(u32)curve_wsize,e,(u32)min(hashsize,curve_bsize)); - //U1=E*W mod n - bignum_modmult(U1,E,W,(u32*)curve_params->n,(u32)curve_wsize); - bignum_modmult(U2,R,W,(u32*)curve_params->n,(u32)curve_wsize); - // 5. (x1,y1)=u1*G+u2*Q - // u1*G - pP.x=(u32*)curve_params->xg; - pP.y=(u32*)curve_params->yg; - pQ.x=X1; - pQ.y=Y1; - ecc_mult_jacobian(pQ,U1,pP,curve_params); - - // u2*Q - bignum_us2d(XQ,(u32)curve_wsize, Q.x, (u32)curve_bsize); - bignum_us2d(YQ,(u32)curve_wsize, Q.y, (u32)curve_bsize); - pP.x=XQ; - pP.y=YQ; - pQ.x=X2; - pQ.y=Y2; - ecc_mult_jacobian(pQ,U2,pP,curve_params); - - // u1*G+u2*Q - if(bignum_cmp(X1,X2,(u32)curve_wsize)!=0 || bignum_cmp(X1,X2,(u32)curve_wsize)!=0) - { - pP.x=X1; - pP.y=Y1; - pQ.x=X2; - pQ.y=Y2; - pR.x=X; - pR.y=Y; - ecc_add(pR,pP,pQ,curve_params); + + //retrieve configuration + hash = (configuration >> UCL_HASH_SHIFT)&UCL_HASH_MASK; + input_format = (configuration >> UCL_INPUT_SHIFT)&UCL_INPUT_MASK; + //no input is non sense for verify + if (UCL_NO_INPUT == input_format) { + return(UCL_INVALID_INPUT); } - else - { - pP.x=X1; - pP.y=Y1; - pR.x=X; - pR.y=Y; - ecc_double(pR,pP,curve_params); + + //hash computation only if input format is UCL_MSG_INPUT + //1. e = SHA(m) + hashsize = hash_size[hash]; + + if (UCL_MSG_INPUT == input_format) { + ucl_hash(e, input, inputlength); + } else { + //or here, the hash is provided as input + if (inputlength != UCL_SHA256_HASHSIZE) { + if (inputlength != UCL_SHA384_HASHSIZE) { + if (inputlength != UCL_SHA512_HASHSIZE) { + return(UCL_INVALID_INPUT); + } + + hashsize = (int)inputlength; + memcpy(e, input, inputlength); + } + } } - //5.4.4 2. v=x1 mod n - bignum_mod(Y,X,(u32)curve_wsize,(u32*)curve_params->n,(u32)curve_wsize); - // 3. if r==v) ok - if(bignum_cmp(R,Y,(u32)curve_wsize)==0) - return(UCL_OK); - else - return(UCL_ERROR); -} + curve_wsize = curve_params->curve_wsize; + curve_bsize = curve_params->curve_bsize; + + //2. Verification of the r/s intervals (shall be >0 and < n) + bignum_us2d(S, (u32)curve_wsize, signature.s, (u32)curve_bsize); + bignum_us2d(R, (u32)curve_wsize, signature.r, (u32)curve_bsize); + if ((bignum_cmp(S, (u32*)curve_params->n, (u32)curve_wsize) >= 0) || (bignum_cmp(R, (u32*)curve_params->n, (u32)curve_wsize) >= 0)) { + return(UCL_ERROR); + } + + if (bignum_cmp_zero(S, (u32)curve_wsize) == 0) { + return(UCL_ERROR); + } + + if (bignum_cmp_zero(R, (u32)curve_wsize) == 0) { + return(UCL_ERROR); + } + + //3. w = s^-1 + bignum_modinv(W, S, (u32*)curve_params->n, (u32)curve_wsize); + //4. U1 = e.w mod n and U2 = r.w mod n + bignum_us2d(E, (u32)curve_wsize, e, (u32)min(hashsize, curve_bsize)); + //U1 = E*W mod n + bignum_modmult(U1, E, W, (u32*)curve_params->n, (u32)curve_wsize); + bignum_modmult(U2, R, W, (u32*)curve_params->n, (u32)curve_wsize); + // 5. (x1, y1) = u1*G+u2*Q + // u1*G + pP.x = (u32*)curve_params->xg; + pP.y = (u32*)curve_params->yg; + pQ.x = X1; + pQ.y = Y1; + ecc_mult_jacobian(pQ, U1, pP, curve_params); + + // u2*Q + bignum_us2d(XQ, (u32)curve_wsize, Q.x, (u32)curve_bsize); + bignum_us2d(YQ, (u32)curve_wsize, Q.y, (u32)curve_bsize); + pP.x = XQ; + pP.y = YQ; + pQ.x = X2; + pQ.y = Y2; + ecc_mult_jacobian(pQ, U2, pP, curve_params); + + // u1*G+u2*Q + if (bignum_cmp(X1, X2, (u32)curve_wsize) != 0 || bignum_cmp(X1, X2, (u32)curve_wsize) != 0) { + pP.x = X1; + pP.y = Y1; + pQ.x = X2; + pQ.y = Y2; + pR.x = X; + pR.y = Y; + ecc_add(pR, pP, pQ, curve_params); + } else { + pP.x = X1; + pP.y = Y1; + pR.x = X; + pR.y = Y; + ecc_double(pR, pP, curve_params); + } + + //5.4.4 2. v = x1 mod n + bignum_mod(Y, X, (u32)curve_wsize, (u32*)curve_params->n, (u32)curve_wsize); + // 3. if r == v) ok + if (bignum_cmp(R, Y, (u32)curve_wsize) == 0) { + return(UCL_OK); + } else { + return(UCL_ERROR); + } +} diff --git a/Libraries/FCL/src/ecdsatest.c b/Libraries/FCL/src/ecdsatest.c index 5c373a294b8..3405c606604 100644 --- a/Libraries/FCL/src/ecdsatest.c +++ b/Libraries/FCL/src/ecdsatest.c @@ -1,42 +1,53 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: ECC test application -* Description: performs ECDSA testing -* Filename: ecdsatest.c -* Author: LSL -* Compiler: gcc -* - ******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ //1.0.0: initial release, copied from genuine ecdsatest.c #define VERBOSE @@ -79,238 +90,239 @@ extern ucl_type_curve bp512r1; //function testing KAT and sign+verify cycles, using new API and structures introduced in 2.4.9 int test_ecdsa_curves(void) { - //P256R1 - //RFC4754 test vector -sha256 - //secret key - u8 d3_p256r1[]={0xDC,0x51,0xD3,0x86,0x6A,0x15,0xBA,0xCD,0xE3,0x3D,0x96,0xF9,0x92,0xFC,0xA9,0x9D,0xA7,0xE6,0xEF,0x09,0x34,0xE7,0x09,0x75,0x59,0xC2,0x7F,0x16,0x14,0xC8,0x8A,0x7F}; - //message - //u8 msg3_p256r1[]={'a','b','c'}; - //public key - u8 xq3_p256r1[]={0x24,0x42,0xA5,0xCC,0x0E,0xCD,0x01,0x5F,0xA3,0xCA,0x31,0xDC,0x8E,0x2B,0xBC,0x70,0xBF,0x42,0xD6,0x0C,0xBC,0xA2,0x00,0x85,0xE0,0x82,0x2C,0xB0,0x42,0x35,0xE9,0x70}; - u8 yq3_p256r1[]={0x6F,0xC9,0x8B,0xD7,0xE5,0x02,0x11,0xA4,0xA2,0x71,0x02,0xFA,0x35,0x49,0xDF,0x79,0xEB,0xCB,0x4B,0xF2,0x46,0xB8,0x09,0x45,0xCD,0xDF,0xE7,0xD5,0x09,0xBB,0xFD,0x7D}; - //signature for the message above - // u8 r3_p256r1[]={0xCB,0x28,0xE0,0x99,0x9B,0x9C,0x77,0x15,0xFD,0x0A,0x80,0xD8,0xE4,0x7A,0x77,0x07,0x97,0x16,0xCB,0xBF,0x91,0x7D,0xD7,0x2E,0x97,0x56,0x6E,0xA1,0xC0,0x66,0x95,0x7C}; - //u8 s3_p256r1[]={0x86,0xFA,0x3B,0xB4,0xE2,0x6C,0xAD,0x5B,0xF9,0x0B,0x7F,0x81,0x89,0x92,0x56,0xCE,0x75,0x94,0xBB,0x1E,0xA0,0xC8,0x92,0x12,0x74,0x8B,0xFF,0x3B,0x3D,0x5B,0x03,0x15}; + //P256R1 + //RFC4754 test vector -sha256 + //secret key + u8 d3_p256r1[] = {0xDC, 0x51, 0xD3, 0x86, 0x6A, 0x15, 0xBA, 0xCD, 0xE3, 0x3D, 0x96, 0xF9, 0x92, 0xFC, 0xA9, 0x9D, 0xA7, 0xE6, 0xEF, 0x09, 0x34, 0xE7, 0x09, 0x75, 0x59, 0xC2, 0x7F, 0x16, 0x14, 0xC8, 0x8A, 0x7F}; + //message + //u8 msg3_p256r1[] = {'a', 'b', 'c'}; + //public key + u8 xq3_p256r1[] = {0x24, 0x42, 0xA5, 0xCC, 0x0E, 0xCD, 0x01, 0x5F, 0xA3, 0xCA, 0x31, 0xDC, 0x8E, 0x2B, 0xBC, 0x70, 0xBF, 0x42, 0xD6, 0x0C, 0xBC, 0xA2, 0x00, 0x85, 0xE0, 0x82, 0x2C, 0xB0, 0x42, 0x35, 0xE9, 0x70}; + u8 yq3_p256r1[] = {0x6F, 0xC9, 0x8B, 0xD7, 0xE5, 0x02, 0x11, 0xA4, 0xA2, 0x71, 0x02, 0xFA, 0x35, 0x49, 0xDF, 0x79, 0xEB, 0xCB, 0x4B, 0xF2, 0x46, 0xB8, 0x09, 0x45, 0xCD, 0xDF, 0xE7, 0xD5, 0x09, 0xBB, 0xFD, 0x7D}; + //signature for the message above + // u8 r3_p256r1[] = {0xCB, 0x28, 0xE0, 0x99, 0x9B, 0x9C, 0x77, 0x15, 0xFD, 0x0A, 0x80, 0xD8, 0xE4, 0x7A, 0x77, 0x07, 0x97, 0x16, 0xCB, 0xBF, 0x91, 0x7D, 0xD7, 0x2E, 0x97, 0x56, 0x6E, 0xA1, 0xC0, 0x66, 0x95, 0x7C}; + //u8 s3_p256r1[] = {0x86, 0xFA, 0x3B, 0xB4, 0xE2, 0x6C, 0xAD, 0x5B, 0xF9, 0x0B, 0x7F, 0x81, 0x89, 0x92, 0x56, 0xCE, 0x75, 0x94, 0xBB, 0x1E, 0xA0, 0xC8, 0x92, 0x12, 0x74, 0x8B, 0xFF, 0x3B, 0x3D, 0x5B, 0x03, 0x15}; - //KAT for P192 - u8 d3_p192r1[]={0x1a,0x8d,0x59,0x8f,0xc1,0x5b,0xf0,0xfd,0x89,0x03,0x0b,0x5c,0xb1,0x11,0x1a,0xeb,0x92,0xae,0x8b,0xaf,0x5e,0xa4,0x75,0xfb}; - u8 xq3_p192r1[]={0x62,0xB1,0x2D,0x60,0x69,0x0C,0xDC,0xF3,0x30,0xBA,0xBA,0xB6,0xE6,0x97,0x63,0xB4,0x71,0xF9,0x94,0xDD,0x70,0x2D,0x16,0xA5}; - u8 yq3_p192r1[]={0x63,0xBF,0x5E,0xC0,0x80,0x69,0x70,0x5F,0xFF,0xF6,0x5E,0x5C,0xA5,0xC0,0xD6,0x97,0x16,0xDF,0xCB,0x34,0x74,0x37,0x39,0x02}; - // u8 msg3_p192r1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17}; - //u8 r3_p192r1[]={0x03,0xbe,0x83,0xbb,0x6d,0xff,0x29,0x25,0x87,0xa9,0x4d,0x13,0x8a,0x8e,0x1d,0x0e,0x6f,0x57,0xc3,0x78,0x69,0x68,0xe4,0xa3}; - //u8 s3_p192r1[]={0xa9,0x47,0x0f,0xf0,0xda,0x47,0x7c,0xe6,0x7f,0x44,0x54,0xb1,0xb1,0x28,0x8d,0x04,0x79,0x90,0x6c,0xb6,0xdc,0x04,0x84,0x0d}; + //KAT for P192 + u8 d3_p192r1[] = {0x1a, 0x8d, 0x59, 0x8f, 0xc1, 0x5b, 0xf0, 0xfd, 0x89, 0x03, 0x0b, 0x5c, 0xb1, 0x11, 0x1a, 0xeb, 0x92, 0xae, 0x8b, 0xaf, 0x5e, 0xa4, 0x75, 0xfb}; + u8 xq3_p192r1[] = {0x62, 0xB1, 0x2D, 0x60, 0x69, 0x0C, 0xDC, 0xF3, 0x30, 0xBA, 0xBA, 0xB6, 0xE6, 0x97, 0x63, 0xB4, 0x71, 0xF9, 0x94, 0xDD, 0x70, 0x2D, 0x16, 0xA5}; + u8 yq3_p192r1[] = {0x63, 0xBF, 0x5E, 0xC0, 0x80, 0x69, 0x70, 0x5F, 0xFF, 0xF6, 0x5E, 0x5C, 0xA5, 0xC0, 0xD6, 0x97, 0x16, 0xDF, 0xCB, 0x34, 0x74, 0x37, 0x39, 0x02}; + // u8 msg3_p192r1[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17}; + //u8 r3_p192r1[] = {0x03, 0xbe, 0x83, 0xbb, 0x6d, 0xff, 0x29, 0x25, 0x87, 0xa9, 0x4d, 0x13, 0x8a, 0x8e, 0x1d, 0x0e, 0x6f, 0x57, 0xc3, 0x78, 0x69, 0x68, 0xe4, 0xa3}; + //u8 s3_p192r1[] = {0xa9, 0x47, 0x0f, 0xf0, 0xda, 0x47, 0x7c, 0xe6, 0x7f, 0x44, 0x54, 0xb1, 0xb1, 0x28, 0x8d, 0x04, 0x79, 0x90, 0x6c, 0xb6, 0xdc, 0x04, 0x84, 0x0d}; - //KAT for P384R1 - //RFC4754 test vector -sha384 - u8 d3_p384r1[] = {0x0B,0xEB,0x64,0x66,0x34,0xBA,0x87,0x73,0x5D,0x77,0xAE,0x48,0x09,0xA0,0xEB,0xEA,0x86,0x55,0x35,0xDE,0x4C,0x1E,0x1D,0xCB,0x69,0x2E,0x84,0x70,0x8E,0x81,0xA5,0xAF,0x62,0xE5,0x28,0xC3,0x8B,0x2A,0x81,0xB3,0x53,0x09,0x66,0x8D,0x73,0x52,0x4D,0x9F}; - // u8 msg3_p384r1[]={'a','b','c'}; - u8 xq3_p384r1[]={0x96,0x28,0x1B,0xF8,0xDD,0x5E,0x05,0x25,0xCA,0x04,0x9C,0x04,0x8D,0x34,0x5D,0x30,0x82,0x96,0x8D,0x10,0xFE,0xDF,0x5C,0x5A,0xCA,0x0C,0x64,0xE6,0x46,0x5A,0x97,0xEA,0x5C,0xE1,0x0C,0x9D,0xFE,0xC2,0x17,0x97,0x41,0x57,0x10,0x72,0x1F,0x43,0x79,0x22}; - u8 yq3_p384r1[]={0x44,0x76,0x88,0xBA,0x94,0x70,0x8E,0xB6,0xE2,0xE4,0xD5,0x9F,0x6A,0xB6,0xD7,0xED,0xFF,0x93,0x01,0xD2,0x49,0xFE,0x49,0xC3,0x30,0x96,0x65,0x5F,0x5D,0x50,0x2F,0xAD,0x3D,0x38,0x3B,0x91,0xC5,0xE7,0xED,0xAA,0x2B,0x71,0x4C,0xC9,0x9D,0x57,0x43,0xCA}; - //signature for the message above - // u8 r3_p384r1[]={0xFB,0x01,0x7B,0x91,0x4E,0x29,0x14,0x94,0x32,0xD8,0xBA,0xC2,0x9A,0x51,0x46,0x40,0xB4,0x6F,0x53,0xDD,0xAB,0x2C,0x69,0x94,0x80,0x84,0xE2,0x93,0x0F,0x1C,0x8F,0x7E,0x08,0xE0,0x7C,0x9C,0x63,0xF2,0xD2,0x1A,0x07,0xDC,0xB5,0x6A,0x6A,0xF5,0x6E,0xB3}; - // u8 s3_p384r1[]={0xB2,0x63,0xA1,0x30,0x5E,0x05,0x7F,0x98,0x4D,0x38,0x72,0x6A,0x1B,0x46,0x87,0x41,0x09,0xF4,0x17,0xBC,0xA1,0x12,0x67,0x4C,0x52,0x82,0x62,0xA4,0x0A,0x62,0x9A,0xF1,0xCB,0xB9,0xF5,0x16,0xCE,0x0F,0xA7,0xD2,0xFF,0x63,0x08,0x63,0xA0,0x0E,0x8B,0x9F}; + //KAT for P384R1 + //RFC4754 test vector -sha384 + u8 d3_p384r1[] = {0x0B, 0xEB, 0x64, 0x66, 0x34, 0xBA, 0x87, 0x73, 0x5D, 0x77, 0xAE, 0x48, 0x09, 0xA0, 0xEB, 0xEA, 0x86, 0x55, 0x35, 0xDE, 0x4C, 0x1E, 0x1D, 0xCB, 0x69, 0x2E, 0x84, 0x70, 0x8E, 0x81, 0xA5, 0xAF, 0x62, 0xE5, 0x28, 0xC3, 0x8B, 0x2A, 0x81, 0xB3, 0x53, 0x09, 0x66, 0x8D, 0x73, 0x52, 0x4D, 0x9F}; + // u8 msg3_p384r1[] = {'a', 'b', 'c'}; + u8 xq3_p384r1[] = {0x96, 0x28, 0x1B, 0xF8, 0xDD, 0x5E, 0x05, 0x25, 0xCA, 0x04, 0x9C, 0x04, 0x8D, 0x34, 0x5D, 0x30, 0x82, 0x96, 0x8D, 0x10, 0xFE, 0xDF, 0x5C, 0x5A, 0xCA, 0x0C, 0x64, 0xE6, 0x46, 0x5A, 0x97, 0xEA, 0x5C, 0xE1, 0x0C, 0x9D, 0xFE, 0xC2, 0x17, 0x97, 0x41, 0x57, 0x10, 0x72, 0x1F, 0x43, 0x79, 0x22}; + u8 yq3_p384r1[] = {0x44, 0x76, 0x88, 0xBA, 0x94, 0x70, 0x8E, 0xB6, 0xE2, 0xE4, 0xD5, 0x9F, 0x6A, 0xB6, 0xD7, 0xED, 0xFF, 0x93, 0x01, 0xD2, 0x49, 0xFE, 0x49, 0xC3, 0x30, 0x96, 0x65, 0x5F, 0x5D, 0x50, 0x2F, 0xAD, 0x3D, 0x38, 0x3B, 0x91, 0xC5, 0xE7, 0xED, 0xAA, 0x2B, 0x71, 0x4C, 0xC9, 0x9D, 0x57, 0x43, 0xCA}; + //signature for the message above + // u8 r3_p384r1[] = {0xFB, 0x01, 0x7B, 0x91, 0x4E, 0x29, 0x14, 0x94, 0x32, 0xD8, 0xBA, 0xC2, 0x9A, 0x51, 0x46, 0x40, 0xB4, 0x6F, 0x53, 0xDD, 0xAB, 0x2C, 0x69, 0x94, 0x80, 0x84, 0xE2, 0x93, 0x0F, 0x1C, 0x8F, 0x7E, 0x08, 0xE0, 0x7C, 0x9C, 0x63, 0xF2, 0xD2, 0x1A, 0x07, 0xDC, 0xB5, 0x6A, 0x6A, 0xF5, 0x6E, 0xB3}; + // u8 s3_p384r1[] = {0xB2, 0x63, 0xA1, 0x30, 0x5E, 0x05, 0x7F, 0x98, 0x4D, 0x38, 0x72, 0x6A, 0x1B, 0x46, 0x87, 0x41, 0x09, 0xF4, 0x17, 0xBC, 0xA1, 0x12, 0x67, 0x4C, 0x52, 0x82, 0x62, 0xA4, 0x0A, 0x62, 0x9A, 0xF1, 0xCB, 0xB9, 0xF5, 0x16, 0xCE, 0x0F, 0xA7, 0xD2, 0xFF, 0x63, 0x08, 0x63, 0xA0, 0x0E, 0x8B, 0x9F}; - //KAT for P521R1 - //RFC4754 test vector -sha512 - u8 d3_p521r1[] = {0x00,0x65,0xFD,0xA3,0x40,0x94,0x51,0xDC,0xAB,0x0A,0x0E,0xAD,0x45,0x49,0x51,0x12,0xA3,0xD8,0x13,0xC1,0x7B,0xFD,0x34,0xBD,0xF8,0xC1,0x20,0x9D,0x7D,0xF5,0x84,0x91,0x20,0x59,0x77,0x79,0x06,0x0A,0x7F,0xF9,0xD7,0x04,0xAD,0xF7,0x8B,0x57,0x0F,0xFA,0xD6,0xF0,0x62,0xE9,0x5C,0x7E,0x0C,0x5D,0x54,0x81,0xC5,0xB1,0x53,0xB4,0x8B,0x37,0x5F,0xA1}; - //u8 msg3_p521r1[]={'a','b','c'}; - u8 xq3_p521r1[]={0x01,0x51,0x51,0x8F,0x1A,0xF0,0xF5,0x63,0x51,0x7E,0xDD,0x54,0x85,0x19,0x0D,0xF9,0x5A,0x4B,0xF5,0x7B,0x5C,0xBA,0x4C,0xF2,0xA9,0xA3,0xF6,0x47,0x47,0x25,0xA3,0x5F,0x7A,0xFE,0x0A,0x6D,0xDE,0xB8,0xBE,0xDB,0xCD,0x6A,0x19,0x7E,0x59,0x2D,0x40,0x18,0x89,0x01,0xCE,0xCD,0x65,0x06,0x99,0xC9,0xB5,0xE4,0x56,0xAE,0xA5,0xAD,0xD1,0x90,0x52,0xA8}; - u8 yq3_p521r1[]={0x00,0x6F,0x3B,0x14,0x2E,0xA1,0xBF,0xFF,0x7E,0x28,0x37,0xAD,0x44,0xC9,0xE4,0xFF,0x6D,0x2D,0x34,0xC7,0x31,0x84,0xBB,0xAD,0x90,0x02,0x6D,0xD5,0xE6,0xE8,0x53,0x17,0xD9,0xDF,0x45,0xCA,0xD7,0x80,0x3C,0x6C,0x20,0x03,0x5B,0x2F,0x3F,0xF6,0x3A,0xFF,0x4E,0x1B,0xA6,0x4D,0x1C,0x07,0x75,0x77,0xDA,0x3F,0x42,0x86,0xC5,0x8F,0x0A,0xEA,0xE6,0x43}; - //signature for the message above - // u8 r3_p521r1[]={0x01,0x54,0xFD,0x38,0x36,0xAF,0x92,0xD0,0xDC,0xA5,0x7D,0xD5,0x34,0x1D,0x30,0x53,0x98,0x85,0x34,0xFD,0xE8,0x31,0x8F,0xC6,0xAA,0xAA,0xB6,0x8E,0x2E,0x6F,0x43,0x39,0xB1,0x9F,0x2F,0x28,0x1A,0x7E,0x0B,0x22,0xC2,0x69,0xD9,0x3C,0xF8,0x79,0x4A,0x92,0x78,0x88,0x0E,0xD7,0xDB,0xB8,0xD9,0x36,0x2C,0xAE,0xAC,0xEE,0x54,0x43,0x20,0x55,0x22,0x51}; - // u8 s3_p521r1[]={0x01,0x77,0x05,0xA7,0x03,0x02,0x90,0xD1,0xCE,0xB6,0x05,0xA9,0xA1,0xBB,0x03,0xFF,0x9C,0xDD,0x52,0x1E,0x87,0xA6,0x96,0xEC,0x92,0x6C,0x8C,0x10,0xC8,0x36,0x2D,0xF4,0x97,0x53,0x67,0x10,0x1F,0x67,0xD1,0xCF,0x9B,0xCC,0xBF,0x2F,0x3D,0x23,0x95,0x34,0xFA,0x50,0x9E,0x70,0xAA,0xC8,0x51,0xAE,0x01,0xAA,0xC6,0x8D,0x62,0xF8,0x66,0x47,0x26,0x60}; + //KAT for P521R1 + //RFC4754 test vector -sha512 + u8 d3_p521r1[] = {0x00, 0x65, 0xFD, 0xA3, 0x40, 0x94, 0x51, 0xDC, 0xAB, 0x0A, 0x0E, 0xAD, 0x45, 0x49, 0x51, 0x12, 0xA3, 0xD8, 0x13, 0xC1, 0x7B, 0xFD, 0x34, 0xBD, 0xF8, 0xC1, 0x20, 0x9D, 0x7D, 0xF5, 0x84, 0x91, 0x20, 0x59, 0x77, 0x79, 0x06, 0x0A, 0x7F, 0xF9, 0xD7, 0x04, 0xAD, 0xF7, 0x8B, 0x57, 0x0F, 0xFA, 0xD6, 0xF0, 0x62, 0xE9, 0x5C, 0x7E, 0x0C, 0x5D, 0x54, 0x81, 0xC5, 0xB1, 0x53, 0xB4, 0x8B, 0x37, 0x5F, 0xA1}; + //u8 msg3_p521r1[] = {'a', 'b', 'c'}; + u8 xq3_p521r1[] = {0x01, 0x51, 0x51, 0x8F, 0x1A, 0xF0, 0xF5, 0x63, 0x51, 0x7E, 0xDD, 0x54, 0x85, 0x19, 0x0D, 0xF9, 0x5A, 0x4B, 0xF5, 0x7B, 0x5C, 0xBA, 0x4C, 0xF2, 0xA9, 0xA3, 0xF6, 0x47, 0x47, 0x25, 0xA3, 0x5F, 0x7A, 0xFE, 0x0A, 0x6D, 0xDE, 0xB8, 0xBE, 0xDB, 0xCD, 0x6A, 0x19, 0x7E, 0x59, 0x2D, 0x40, 0x18, 0x89, 0x01, 0xCE, 0xCD, 0x65, 0x06, 0x99, 0xC9, 0xB5, 0xE4, 0x56, 0xAE, 0xA5, 0xAD, 0xD1, 0x90, 0x52, 0xA8}; + u8 yq3_p521r1[] = {0x00, 0x6F, 0x3B, 0x14, 0x2E, 0xA1, 0xBF, 0xFF, 0x7E, 0x28, 0x37, 0xAD, 0x44, 0xC9, 0xE4, 0xFF, 0x6D, 0x2D, 0x34, 0xC7, 0x31, 0x84, 0xBB, 0xAD, 0x90, 0x02, 0x6D, 0xD5, 0xE6, 0xE8, 0x53, 0x17, 0xD9, 0xDF, 0x45, 0xCA, 0xD7, 0x80, 0x3C, 0x6C, 0x20, 0x03, 0x5B, 0x2F, 0x3F, 0xF6, 0x3A, 0xFF, 0x4E, 0x1B, 0xA6, 0x4D, 0x1C, 0x07, 0x75, 0x77, 0xDA, 0x3F, 0x42, 0x86, 0xC5, 0x8F, 0x0A, 0xEA, 0xE6, 0x43}; + //signature for the message above + // u8 r3_p521r1[] = {0x01, 0x54, 0xFD, 0x38, 0x36, 0xAF, 0x92, 0xD0, 0xDC, 0xA5, 0x7D, 0xD5, 0x34, 0x1D, 0x30, 0x53, 0x98, 0x85, 0x34, 0xFD, 0xE8, 0x31, 0x8F, 0xC6, 0xAA, 0xAA, 0xB6, 0x8E, 0x2E, 0x6F, 0x43, 0x39, 0xB1, 0x9F, 0x2F, 0x28, 0x1A, 0x7E, 0x0B, 0x22, 0xC2, 0x69, 0xD9, 0x3C, 0xF8, 0x79, 0x4A, 0x92, 0x78, 0x88, 0x0E, 0xD7, 0xDB, 0xB8, 0xD9, 0x36, 0x2C, 0xAE, 0xAC, 0xEE, 0x54, 0x43, 0x20, 0x55, 0x22, 0x51}; + // u8 s3_p521r1[] = {0x01, 0x77, 0x05, 0xA7, 0x03, 0x02, 0x90, 0xD1, 0xCE, 0xB6, 0x05, 0xA9, 0xA1, 0xBB, 0x03, 0xFF, 0x9C, 0xDD, 0x52, 0x1E, 0x87, 0xA6, 0x96, 0xEC, 0x92, 0x6C, 0x8C, 0x10, 0xC8, 0x36, 0x2D, 0xF4, 0x97, 0x53, 0x67, 0x10, 0x1F, 0x67, 0xD1, 0xCF, 0x9B, 0xCC, 0xBF, 0x2F, 0x3D, 0x23, 0x95, 0x34, 0xFA, 0x50, 0x9E, 0x70, 0xAA, 0xC8, 0x51, 0xAE, 0x01, 0xAA, 0xC6, 0x8D, 0x62, 0xF8, 0x66, 0x47, 0x26, 0x60}; - //KAT for BP256R1 - //RFC6932 test vector - u8 d3_bp256r1[] ={0x04,0x1E,0xB8,0xB1,0xE2,0xBC,0x68,0x1B,0xCE,0x8E,0x39,0x96,0x3B,0x2E,0x9F,0xC4,0x15,0xB0,0x52,0x83,0x31,0x3D,0xD1,0xA8,0xBC,0xC0,0x55,0xF1,0x1A,0xE4,0x96,0x99}; - u8 xq3_bp256r1[]={0x78,0x02,0x84,0x96,0xB5,0xEC,0xAA,0xB3,0xC8,0xB6,0xC1,0x2E,0x45,0xDB,0x1E,0x02,0xC9,0xE4,0xD2,0x6B,0x41,0x13,0xBC,0x4F,0x01,0x5F,0x60,0xC5,0xCC,0xC0,0xD2,0x06}; - u8 yq3_bp256r1[]={0xA2,0xAE,0x17,0x62,0xA3,0x83,0x1C,0x1D,0x20,0xF0,0x3F,0x8D,0x1E,0x3C,0x0C,0x39,0xAF,0xE6,0xF0,0x9B,0x4D,0x44,0xBB,0xE8,0x0C,0xD1,0x00,0x98,0x7B,0x05,0xF9,0x2B}; - // u8 msg3_bp256r1[]={'a','b','c'}; - //u8 r3_bp256r1[]={0x56,0xd4,0xd0,0xd0,0xfa,0x96,0xa9,0x60,0x2b,0x1f,0x05,0xb9,0x06,0x34,0x1c,0x0a,0xfa,0xa2,0x1b,0xaa,0x5e,0xd6,0x8d,0xa7,0x1f,0x08,0xa1,0xcc,0x7b,0x2b,0xe7,0xd9}; -//u8 s3_bp256r1[]={0x40,0xa6,0xc8,0x3e,0xed,0x38,0x8e,0x26,0xdf,0xec,0xc5,0x90,0x63,0xed,0x7b,0x59,0xde,0xe1,0x43,0x5d,0x20,0x5a,0x93,0x4d,0x72,0x7f,0xed,0xfc,0x9f,0xa6,0x4f,0x35}; + //KAT for BP256R1 + //RFC6932 test vector + u8 d3_bp256r1[] = {0x04, 0x1E, 0xB8, 0xB1, 0xE2, 0xBC, 0x68, 0x1B, 0xCE, 0x8E, 0x39, 0x96, 0x3B, 0x2E, 0x9F, 0xC4, 0x15, 0xB0, 0x52, 0x83, 0x31, 0x3D, 0xD1, 0xA8, 0xBC, 0xC0, 0x55, 0xF1, 0x1A, 0xE4, 0x96, 0x99}; + u8 xq3_bp256r1[] = {0x78, 0x02, 0x84, 0x96, 0xB5, 0xEC, 0xAA, 0xB3, 0xC8, 0xB6, 0xC1, 0x2E, 0x45, 0xDB, 0x1E, 0x02, 0xC9, 0xE4, 0xD2, 0x6B, 0x41, 0x13, 0xBC, 0x4F, 0x01, 0x5F, 0x60, 0xC5, 0xCC, 0xC0, 0xD2, 0x06}; + u8 yq3_bp256r1[] = {0xA2, 0xAE, 0x17, 0x62, 0xA3, 0x83, 0x1C, 0x1D, 0x20, 0xF0, 0x3F, 0x8D, 0x1E, 0x3C, 0x0C, 0x39, 0xAF, 0xE6, 0xF0, 0x9B, 0x4D, 0x44, 0xBB, 0xE8, 0x0C, 0xD1, 0x00, 0x98, 0x7B, 0x05, 0xF9, 0x2B}; + // u8 msg3_bp256r1[] = {'a', 'b', 'c'}; + //u8 r3_bp256r1[] = {0x56, 0xd4, 0xd0, 0xd0, 0xfa, 0x96, 0xa9, 0x60, 0x2b, 0x1f, 0x05, 0xb9, 0x06, 0x34, 0x1c, 0x0a, 0xfa, 0xa2, 0x1b, 0xaa, 0x5e, 0xd6, 0x8d, 0xa7, 0x1f, 0x08, 0xa1, 0xcc, 0x7b, 0x2b, 0xe7, 0xd9}; + //u8 s3_bp256r1[] = {0x40, 0xa6, 0xc8, 0x3e, 0xed, 0x38, 0x8e, 0x26, 0xdf, 0xec, 0xc5, 0x90, 0x63, 0xed, 0x7b, 0x59, 0xde, 0xe1, 0x43, 0x5d, 0x20, 0x5a, 0x93, 0x4d, 0x72, 0x7f, 0xed, 0xfc, 0x9f, 0xa6, 0x4f, 0x35}; - //KAT for BP384R1 - //RFC 6932 - u8 d3_bp384r1[] = {0x01,0x4E,0xC0,0x75,0x5B,0x78,0x59,0x4B,0xA4,0x7F,0xB0,0xA5,0x6F,0x61,0x73,0x04,0x5B,0x43,0x31,0xE7,0x4B,0xA1,0xA6,0xF4,0x73,0x22,0xE7,0x0D,0x79,0xD8,0x28,0xD9,0x7E,0x09,0x58,0x84,0xCA,0x72,0xB7,0x3F,0xDA,0xBD,0x59,0x10,0xDF,0x0F,0xA7,0x6A}; - u8 xq3_bp384r1[] = {0x45,0xCB,0x26,0xE4,0x38,0x4D,0xAF,0x6F,0xB7,0x76,0x88,0x53,0x07,0xB9,0xA3,0x8B,0x7A,0xD1,0xB5,0xC6,0x92,0xE0,0xC3,0x2F,0x01,0x25,0x33,0x27,0x78,0xF3,0xB8,0xD3,0xF5,0x0C,0xA3,0x58,0x09,0x9B,0x30,0xDE,0xB5,0xEE,0x69,0xA9,0x5C,0x05,0x8B,0x4E}; - u8 yq3_bp384r1[] = {0x81,0x73,0xA1,0xC5,0x4A,0xFF,0xA7,0xE7,0x81,0xD0,0xE1,0xE1,0xD1,0x2C,0x0D,0xC2,0xB7,0x4F,0x4D,0xF5,0x8E,0x4A,0x4E,0x3A,0xF7,0x02,0x6C,0x5D,0x32,0xDC,0x53,0x0A,0x2C,0xD8,0x9C,0x85,0x9B,0xB4,0xB4,0xB7,0x68,0x49,0x7F,0x49,0xAB,0x8C,0xC8,0x59}; - // u8 msg3_bp384r1[]={'a','b','c'}; - //u8 r3_bp384r1[]={0x12,0x45,0xdf,0xf5,0x15,0x1f,0xb1,0xed,0x4b,0x99,0xfd,0xef,0xe2,0x48,0x9e,0x16,0xcf,0x70,0x5a,0x2d,0x7e,0xa7,0x7b,0xa8,0xea,0x88,0x2f,0x17,0x8f,0x48,0x9f,0x3d,0x2c,0xa2,0xf4,0xc5,0xc5,0xf5,0xc9,0xde,0x5e,0xd0,0xd5,0x69,0x7e,0x93,0xe8,0xa8}; -//u8 s3_bp384r1[]={0x0c,0xf4,0xe5,0x7a,0xe9,0x20,0xbd,0x4f,0x49,0xcb,0xdc,0xf8,0xf0,0xa5,0x33,0xa9,0x47,0x25,0xf5,0x3e,0x26,0x46,0xde,0x45,0xcd,0x91,0x83,0x96,0xe8,0xd3,0xc8,0x9b,0xa9,0x9f,0x39,0xf1,0xdf,0x96,0x5b,0x07,0xd8,0x41,0x0c,0x67,0x91,0xa8,0x38,0xa6}; - - //KAT for BP512R1 - //RFC 6932 - u8 d3_bp512r1[]={0x63,0x6B,0x6B,0xE0,0x48,0x2A,0x6C,0x1C,0x41,0xAA,0x7A,0xE7,0xB2,0x45,0xE9,0x83,0x39,0x2D,0xB9,0x4C,0xEC,0xEA,0x26,0x60,0xA3,0x79,0xCF,0xE1,0x59,0x55,0x9E,0x35,0x75,0x81,0x82,0x53,0x91,0x17,0x5F,0xC1,0x95,0xD2,0x8B,0xAC,0x0C,0xF0,0x3A,0x78,0x41,0xA3,0x83,0xB9,0x5C,0x26,0x2B,0x98,0x37,0x82,0x87,0x4C,0xCE,0x6F,0xE3,0x33}; - u8 xq3_bp512r1[] ={0x05,0x62,0xE6,0x8B,0x9A,0xF7,0xCB,0xFD,0x55,0x65,0xC6,0xB1,0x68,0x83,0xB7,0x77,0xFF,0x11,0xC1,0x99,0x16,0x1E,0xCC,0x42,0x7A,0x39,0xD1,0x7E,0xC2,0x16,0x64,0x99,0x38,0x95,0x71,0xD6,0xA9,0x94,0x97,0x7C,0x56,0xAD,0x82,0x52,0x65,0x8B,0xA8,0xA1,0xB7,0x2A,0xE4,0x2F,0x4F,0xB7,0x53,0x21,0x51,0xAF,0xC3,0xEF,0x09,0x71,0xCC,0xDA}; - u8 yq3_bp512r1[] ={0xA7,0xCA,0x2D,0x81,0x91,0xE2,0x17,0x76,0xA8,0x98,0x60,0xAF,0xBC,0x1F,0x58,0x2F,0xAA,0x30,0x8D,0x55,0x1C,0x1D,0xC6,0x13,0x3A,0xF9,0xF9,0xC3,0xCA,0xD5,0x99,0x98,0xD7,0x00,0x79,0x54,0x81,0x40,0xB9,0x0B,0x1F,0x31,0x1A,0xFB,0x37,0x8A,0xA8,0x1F,0x51,0xB2,0x75,0xB2,0xBE,0x6B,0x7D,0xEE,0x97,0x8E,0xFC,0x73,0x43,0xEA,0x64,0x2E}; - //u8 msg3_bp512r1[]={'a','b','c'}; -//u8 r3_bp512r1[]={0x93,0x0b,0x87,0x41,0x6f,0x43,0x6c,0x5d,0xba,0x06,0xc1,0x63,0x15,0x3e,0x82,0x87,0x59,0xbd,0x4a,0x66,0xc3,0x34,0xe0,0x8d,0x2d,0x66,0x6f,0xe8,0x23,0xb0,0x83,0xad,0xec,0xd6,0xb6,0x15,0xf6,0xfb,0xf0,0xa8,0x50,0xc7,0x3f,0xe3,0xfa,0xbb,0xb2,0xdc,0x9d,0x1a,0xa4,0xc5,0xca,0x53,0x72,0x22,0xb3,0x48,0x2f,0xeb,0xad,0x4b,0xe1,0x34}; -//u8 s3_bp512r1[]={0x3e,0x2f,0xcf,0xa1,0x2d,0x1a,0x6e,0xd8,0x08,0x30,0x5b,0xea,0xce,0xd7,0xe7,0xa0,0xbb,0xf8,0x48,0x62,0x5a,0xca,0xfc,0x3b,0x8e,0x15,0x97,0xb4,0xc3,0x2e,0xf2,0x48,0x84,0x90,0x43,0x9b,0x20,0x80,0xe9,0xef,0x7b,0x7d,0xdb,0x22,0xad,0x41,0xbd,0x1e,0x58,0xdb,0xb8,0x4a,0xf1,0xe2,0x29,0xe4,0x16,0xc0,0xd9,0x1e,0x90,0x7a,0xf2,0xa4}; + //KAT for BP384R1 + //RFC 6932 + u8 d3_bp384r1[] = {0x01, 0x4E, 0xC0, 0x75, 0x5B, 0x78, 0x59, 0x4B, 0xA4, 0x7F, 0xB0, 0xA5, 0x6F, 0x61, 0x73, 0x04, 0x5B, 0x43, 0x31, 0xE7, 0x4B, 0xA1, 0xA6, 0xF4, 0x73, 0x22, 0xE7, 0x0D, 0x79, 0xD8, 0x28, 0xD9, 0x7E, 0x09, 0x58, 0x84, 0xCA, 0x72, 0xB7, 0x3F, 0xDA, 0xBD, 0x59, 0x10, 0xDF, 0x0F, 0xA7, 0x6A}; + u8 xq3_bp384r1[] = {0x45, 0xCB, 0x26, 0xE4, 0x38, 0x4D, 0xAF, 0x6F, 0xB7, 0x76, 0x88, 0x53, 0x07, 0xB9, 0xA3, 0x8B, 0x7A, 0xD1, 0xB5, 0xC6, 0x92, 0xE0, 0xC3, 0x2F, 0x01, 0x25, 0x33, 0x27, 0x78, 0xF3, 0xB8, 0xD3, 0xF5, 0x0C, 0xA3, 0x58, 0x09, 0x9B, 0x30, 0xDE, 0xB5, 0xEE, 0x69, 0xA9, 0x5C, 0x05, 0x8B, 0x4E}; + u8 yq3_bp384r1[] = {0x81, 0x73, 0xA1, 0xC5, 0x4A, 0xFF, 0xA7, 0xE7, 0x81, 0xD0, 0xE1, 0xE1, 0xD1, 0x2C, 0x0D, 0xC2, 0xB7, 0x4F, 0x4D, 0xF5, 0x8E, 0x4A, 0x4E, 0x3A, 0xF7, 0x02, 0x6C, 0x5D, 0x32, 0xDC, 0x53, 0x0A, 0x2C, 0xD8, 0x9C, 0x85, 0x9B, 0xB4, 0xB4, 0xB7, 0x68, 0x49, 0x7F, 0x49, 0xAB, 0x8C, 0xC8, 0x59}; + // u8 msg3_bp384r1[] = {'a', 'b', 'c'}; + //u8 r3_bp384r1[] = {0x12, 0x45, 0xdf, 0xf5, 0x15, 0x1f, 0xb1, 0xed, 0x4b, 0x99, 0xfd, 0xef, 0xe2, 0x48, 0x9e, 0x16, 0xcf, 0x70, 0x5a, 0x2d, 0x7e, 0xa7, 0x7b, 0xa8, 0xea, 0x88, 0x2f, 0x17, 0x8f, 0x48, 0x9f, 0x3d, 0x2c, 0xa2, 0xf4, 0xc5, 0xc5, 0xf5, 0xc9, 0xde, 0x5e, 0xd0, 0xd5, 0x69, 0x7e, 0x93, 0xe8, 0xa8}; + //u8 s3_bp384r1[] = {0x0c, 0xf4, 0xe5, 0x7a, 0xe9, 0x20, 0xbd, 0x4f, 0x49, 0xcb, 0xdc, 0xf8, 0xf0, 0xa5, 0x33, 0xa9, 0x47, 0x25, 0xf5, 0x3e, 0x26, 0x46, 0xde, 0x45, 0xcd, 0x91, 0x83, 0x96, 0xe8, 0xd3, 0xc8, 0x9b, 0xa9, 0x9f, 0x39, 0xf1, 0xdf, 0x96, 0x5b, 0x07, 0xd8, 0x41, 0x0c, 0x67, 0x91, 0xa8, 0x38, 0xa6}; - u8 r[SECP521R1_BYTESIZE]; - u8 s[SECP521R1_BYTESIZE]; - u8 msg[3]={'a','b','c'}; - u8 tab_curve[MAX_CURVE]; - u8 tab_hash[MAX_HASH_FUNCTIONS]; - int itab_curve,itab_hash; - u8 *msg3; - u8 *d3; - int msg3_len; - int resu; - int i,loop; - int configuration; - int count; - int hash; - int curve; - ucl_type_ecc_u8_affine_point q3; - ucl_type_ecdsa_signature signature; - ucl_type_curve *curve_params; - int (*hash_function_ptr)(u8*,u8*,u32); + //KAT for BP512R1 + //RFC 6932 + u8 d3_bp512r1[] = {0x63, 0x6B, 0x6B, 0xE0, 0x48, 0x2A, 0x6C, 0x1C, 0x41, 0xAA, 0x7A, 0xE7, 0xB2, 0x45, 0xE9, 0x83, 0x39, 0x2D, 0xB9, 0x4C, 0xEC, 0xEA, 0x26, 0x60, 0xA3, 0x79, 0xCF, 0xE1, 0x59, 0x55, 0x9E, 0x35, 0x75, 0x81, 0x82, 0x53, 0x91, 0x17, 0x5F, 0xC1, 0x95, 0xD2, 0x8B, 0xAC, 0x0C, 0xF0, 0x3A, 0x78, 0x41, 0xA3, 0x83, 0xB9, 0x5C, 0x26, 0x2B, 0x98, 0x37, 0x82, 0x87, 0x4C, 0xCE, 0x6F, 0xE3, 0x33}; + u8 xq3_bp512r1[] = {0x05, 0x62, 0xE6, 0x8B, 0x9A, 0xF7, 0xCB, 0xFD, 0x55, 0x65, 0xC6, 0xB1, 0x68, 0x83, 0xB7, 0x77, 0xFF, 0x11, 0xC1, 0x99, 0x16, 0x1E, 0xCC, 0x42, 0x7A, 0x39, 0xD1, 0x7E, 0xC2, 0x16, 0x64, 0x99, 0x38, 0x95, 0x71, 0xD6, 0xA9, 0x94, 0x97, 0x7C, 0x56, 0xAD, 0x82, 0x52, 0x65, 0x8B, 0xA8, 0xA1, 0xB7, 0x2A, 0xE4, 0x2F, 0x4F, 0xB7, 0x53, 0x21, 0x51, 0xAF, 0xC3, 0xEF, 0x09, 0x71, 0xCC, 0xDA}; + u8 yq3_bp512r1[] = {0xA7, 0xCA, 0x2D, 0x81, 0x91, 0xE2, 0x17, 0x76, 0xA8, 0x98, 0x60, 0xAF, 0xBC, 0x1F, 0x58, 0x2F, 0xAA, 0x30, 0x8D, 0x55, 0x1C, 0x1D, 0xC6, 0x13, 0x3A, 0xF9, 0xF9, 0xC3, 0xCA, 0xD5, 0x99, 0x98, 0xD7, 0x00, 0x79, 0x54, 0x81, 0x40, 0xB9, 0x0B, 0x1F, 0x31, 0x1A, 0xFB, 0x37, 0x8A, 0xA8, 0x1F, 0x51, 0xB2, 0x75, 0xB2, 0xBE, 0x6B, 0x7D, 0xEE, 0x97, 0x8E, 0xFC, 0x73, 0x43, 0xEA, 0x64, 0x2E}; + //u8 msg3_bp512r1[] = {'a', 'b', 'c'}; + //u8 r3_bp512r1[] = {0x93, 0x0b, 0x87, 0x41, 0x6f, 0x43, 0x6c, 0x5d, 0xba, 0x06, 0xc1, 0x63, 0x15, 0x3e, 0x82, 0x87, 0x59, 0xbd, 0x4a, 0x66, 0xc3, 0x34, 0xe0, 0x8d, 0x2d, 0x66, 0x6f, 0xe8, 0x23, 0xb0, 0x83, 0xad, 0xec, 0xd6, 0xb6, 0x15, 0xf6, 0xfb, 0xf0, 0xa8, 0x50, 0xc7, 0x3f, 0xe3, 0xfa, 0xbb, 0xb2, 0xdc, 0x9d, 0x1a, 0xa4, 0xc5, 0xca, 0x53, 0x72, 0x22, 0xb3, 0x48, 0x2f, 0xeb, 0xad, 0x4b, 0xe1, 0x34}; + //u8 s3_bp512r1[] = {0x3e, 0x2f, 0xcf, 0xa1, 0x2d, 0x1a, 0x6e, 0xd8, 0x08, 0x30, 0x5b, 0xea, 0xce, 0xd7, 0xe7, 0xa0, 0xbb, 0xf8, 0x48, 0x62, 0x5a, 0xca, 0xfc, 0x3b, 0x8e, 0x15, 0x97, 0xb4, 0xc3, 0x2e, 0xf2, 0x48, 0x84, 0x90, 0x43, 0x9b, 0x20, 0x80, 0xe9, 0xef, 0x7b, 0x7d, 0xdb, 0x22, 0xad, 0x41, 0xbd, 0x1e, 0x58, 0xdb, 0xb8, 0x4a, 0xf1, 0xe2, 0x29, 0xe4, 0x16, 0xc0, 0xd9, 0x1e, 0x90, 0x7a, 0xf2, 0xa4}; - char curve_name[MAX_CURVE][20]; - char hash_name[MAX_HASH_FUNCTIONS][20]; + u8 r[SECP521R1_BYTESIZE]; + u8 s[SECP521R1_BYTESIZE]; + u8 msg[3] = {'a', 'b', 'c'}; + u8 tab_curve[MAX_CURVE]; + u8 tab_hash[MAX_HASH_FUNCTIONS]; + int itab_curve, itab_hash; + u8 *msg3; + u8 *d3; + int msg3_len; + int resu; + int i, loop; + int configuration; + int count; + int hash; + int curve; + ucl_type_ecc_u8_affine_point q3; + ucl_type_ecdsa_signature signature; + ucl_type_curve *curve_params; + int (*hash_function_ptr)(u8*, u8*, u32); - sprintf(hash_name[UCL_SHA256],"sha256"); - sprintf(hash_name[UCL_SHA384],"sha384"); - sprintf(hash_name[UCL_SHA512],"sha512"); - - sprintf(curve_name[SECP192R1],"p192r1"); - sprintf(curve_name[SECP256R1],"p256r1"); - sprintf(curve_name[SECP384R1],"p384r1"); - sprintf(curve_name[SECP521R1],"p521r1"); - sprintf(curve_name[BP256R1],"bp256r1"); - sprintf(curve_name[BP384R1],"bp384r1"); - sprintf(curve_name[BP512R1],"bp512r1"); + char curve_name[MAX_CURVE][20]; + char hash_name[MAX_HASH_FUNCTIONS][20]; + + snprintf(hash_name[UCL_SHA256], sizeof("sha256"), "%s", "sha256"); + snprintf(hash_name[UCL_SHA384], sizeof("sha384"), "%s", "sha384"); + snprintf(hash_name[UCL_SHA512], sizeof("sha512"), "%s", "sha512"); + snprintf(curve_name[SECP192R1], sizeof("p192r1"), "%s", "p192r1"); + snprintf(curve_name[SECP256R1], sizeof("p256r1"), "%s", "p256r1"); + snprintf(curve_name[SECP384R1], sizeof("p384r1"), "%s", "p384r1"); + snprintf(curve_name[SECP521R1], sizeof("p521r1"), "%s", "p521r1"); + snprintf(curve_name[BP256R1], sizeof("bp256r1"), "%s", "bp256r1"); + snprintf(curve_name[BP384R1], sizeof("bp384r1"), "%s", "bp384r1"); + snprintf(curve_name[BP512R1], sizeof("bp512r1"), "%s", "bp512r1"); - #ifdef VERBOSE - PRINTF("TEST ECDSA curves\n"); + PRINTF("TEST ECDSA curves\n"); #endif - tab_curve[4]=SECP192R1; - tab_curve[1]=SECP256R1; - tab_curve[2]=SECP384R1; - tab_curve[3]=SECP521R1; - tab_curve[0]=BP256R1; - tab_curve[5]=BP384R1; - tab_curve[6]=BP512R1; - tab_hash[0]=UCL_SHA256; - tab_hash[1]=UCL_SHA384; - tab_hash[2]=UCL_SHA512; + tab_curve[4] = SECP192R1; + tab_curve[1] = SECP256R1; + tab_curve[2] = SECP384R1; + tab_curve[3] = SECP521R1; + tab_curve[0] = BP256R1; + tab_curve[5] = BP384R1; + tab_curve[6] = BP512R1; + tab_hash[0] = UCL_SHA256; + tab_hash[1] = UCL_SHA384; + tab_hash[2] = UCL_SHA512; - for(itab_curve=0;itab_curve<7;itab_curve++) - for(itab_hash=0;itab_hash<3;itab_hash++) - { - curve=tab_curve[itab_curve]; - hash=tab_hash[itab_hash]; + for (itab_curve = 0; itab_curve < 7; itab_curve++) { + for (itab_hash = 0; itab_hash < 3; itab_hash++) { + curve = tab_curve[itab_curve]; + hash = tab_hash[itab_hash]; #ifdef VERBOSE - PRINTF("ECDSA-%s-%s TEST START -----\n",curve_name[curve],hash_name[hash]); + PRINTF("ECDSA-%s-%s TEST START -----\n", curve_name[curve], hash_name[hash]); #endif - signature.r=r; - signature.s=s; - d3=d3_p192r1; - curve_params=&secp192r1; - hash_function_ptr=(&ucl_sha256); - switch(curve) - { - case SECP192R1: - q3.x=xq3_p192r1; - q3.y=yq3_p192r1; - d3=d3_p192r1; - curve_params=&secp192r1; - break; - case SECP256R1: - q3.x=xq3_p256r1; - q3.y=yq3_p256r1; - d3=d3_p256r1; - curve_params=&secp256r1; - break; - default: - break; - case SECP384R1: - q3.x=xq3_p384r1; - q3.y=yq3_p384r1; - d3=d3_p384r1; - curve_params=&secp384r1; - break; - case SECP521R1: - q3.x=xq3_p521r1; - q3.y=yq3_p521r1; - d3=d3_p521r1; - curve_params=&secp521r1; - break; - case BP256R1: - q3.x=xq3_bp256r1; - q3.y=yq3_bp256r1; - d3=d3_bp256r1; - curve_params=&bp256r1; - break; - case BP384R1: - q3.x=xq3_bp384r1; - q3.y=yq3_bp384r1; - d3=d3_bp384r1; - curve_params=&bp384r1; - break; - case BP512R1: - q3.x=xq3_bp512r1; - q3.y=yq3_bp512r1; - d3=d3_bp512r1; - curve_params=&bp512r1; - break; - } - msg3=msg; - msg3_len=sizeof(msg); - switch(hash) - { - case UCL_SHA256: - hash_function_ptr=(&ucl_sha256); - break; - case UCL_SHA384: - hash_function_ptr=(&ucl_sha384); - break; - case UCL_SHA512: - hash_function_ptr=(&ucl_sha512); - break; - default: - break; - } - //loop on sign+verify cycles, with RFC 4754 parameters fixed - //only the ECDSA random number is changing - loop=LOOP; + signature.r = r; + signature.s = s; + d3 = d3_p192r1; + curve_params = &secp192r1; + hash_function_ptr = (&ucl_sha256); + switch (curve) { + case SECP192R1: + q3.x = xq3_p192r1; + q3.y = yq3_p192r1; + d3 = d3_p192r1; + curve_params = &secp192r1; + break; + case SECP256R1: + q3.x = xq3_p256r1; + q3.y = yq3_p256r1; + d3 = d3_p256r1; + curve_params = &secp256r1; + break; + default: + break; + case SECP384R1: + q3.x = xq3_p384r1; + q3.y = yq3_p384r1; + d3 = d3_p384r1; + curve_params = &secp384r1; + break; + case SECP521R1: + q3.x = xq3_p521r1; + q3.y = yq3_p521r1; + d3 = d3_p521r1; + curve_params = &secp521r1; + break; + case BP256R1: + q3.x = xq3_bp256r1; + q3.y = yq3_bp256r1; + d3 = d3_bp256r1; + curve_params = &bp256r1; + break; + case BP384R1: + q3.x = xq3_bp384r1; + q3.y = yq3_bp384r1; + d3 = d3_bp384r1; + curve_params = &bp384r1; + break; + case BP512R1: + q3.x = xq3_bp512r1; + q3.y = yq3_bp512r1; + d3 = d3_bp512r1; + curve_params = &bp512r1; + break; + } + + msg3 = msg; + msg3_len = sizeof(msg); + switch (hash) { + case UCL_SHA256: + hash_function_ptr = (&ucl_sha256); + break; + case UCL_SHA384: + hash_function_ptr = (&ucl_sha384); + break; + case UCL_SHA512: + hash_function_ptr = (&ucl_sha512); + break; + default: + break; + } + //loop on sign+verify cycles, with RFC 4754 parameters fixed + //only the ECDSA random number is changing + loop = LOOP; #ifdef VERBOSE - PRINTF("ECDSA COMPUTATION %s-%s SIGN+VERIFY, loop=%d ",curve_name[curve],hash_name[hash],loop); + PRINTF("ECDSA COMPUTATION %s-%s SIGN+VERIFY, loop = %d ", curve_name[curve], hash_name[hash], loop); #endif - for(count=0,i=0;icurve_bsize;i++) - PRINTF("%02x",signature.r[i]); - PRINTF("\n"); - for(i=0;icurve_bsize;i++) - PRINTF("%02x",signature.s[i]); - PRINTF("\n"); + for (i = 0; i < curve_params->curve_bsize; i++) { + PRINTF("%02x", signature.r[i]); + } + PRINTF("\n"); + for (i = 0; i < curve_params->curve_bsize; i++) { + PRINTF("%02x", signature.s[i]); + } + PRINTF("\n"); #endif - if(UCL_OK!=resu) - printf("error signature=%d\n",resu); - resu=ucl_ecdsa_verification(q3,signature,hash_function_ptr,msg3,msg3_len,curve_params,configuration); - if(resu==UCL_ERROR) - { - PRINTF("ECDSA SIGNATURE TEST-LOOP %s-%s NOK %d \n",curve_name[curve],hash_name[hash],resu); - return(UCL_ERROR); - } - else - count++; - } + if (UCL_OK != resu) { + printf("error signature = %d\n", resu); + } + + resu = ucl_ecdsa_verification(q3, signature, hash_function_ptr, msg3, msg3_len, curve_params, configuration); + if (resu == UCL_ERROR) { + PRINTF("ECDSA SIGNATURE TEST-LOOP %s-%s NOK %d \n", curve_name[curve], hash_name[hash], resu); + return(UCL_ERROR); + } else { + count++; + } + } #ifdef VERBOSE - if(loop==count) - PRINTF("OK\n"); - else - PRINTF("NOK (%d/%d)\n",count,loop); - PRINTF( "ECDSA %s-%s TEST END -----\n",curve_name[curve],hash_name[hash]); + if (loop == count) { + PRINTF("OK\n"); + } else { + PRINTF("NOK (%d/%d)\n", count, loop); + } + PRINTF("ECDSA %s-%s TEST END -----\n", curve_name[curve], hash_name[hash]); #endif - } - return(UCL_OK); + } + } + + return(UCL_OK); } #endif//ECDSA diff --git a/Libraries/FCL/src/include/aestest.h b/Libraries/FCL/src/include/aestest.h index 4f6fa933c67..23b64a53073 100644 --- a/Libraries/FCL/src/include/aestest.h +++ b/Libraries/FCL/src/include/aestest.h @@ -1 +1,57 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_SRC_INCLUDE_AESTEST_H_ +#define LIBRARIES_FCL_SRC_INCLUDE_AESTEST_H_ + int test_aes(void); + +#endif // LIBRARIES_FCL_SRC_INCLUDE_AESTEST_H_ diff --git a/Libraries/FCL/src/include/ecdsatest.h b/Libraries/FCL/src/include/ecdsatest.h index 3c57f3d98ed..db99d84202b 100644 --- a/Libraries/FCL/src/include/ecdsatest.h +++ b/Libraries/FCL/src/include/ecdsatest.h @@ -1,6 +1,61 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_SRC_INCLUDE_ECDSATEST_H_ +#define LIBRARIES_FCL_SRC_INCLUDE_ECDSATEST_H_ + #include #include #include int test_ecdsa_curves(void); +#endif // LIBRARIES_FCL_SRC_INCLUDE_ECDSATEST_H_ diff --git a/Libraries/FCL/src/include/shatest.h b/Libraries/FCL/src/include/shatest.h index 39be2588c7a..8dc387d23df 100644 --- a/Libraries/FCL/src/include/shatest.h +++ b/Libraries/FCL/src/include/shatest.h @@ -1,4 +1,59 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef LIBRARIES_FCL_SRC_INCLUDE_SHATEST_H_ +#define LIBRARIES_FCL_SRC_INCLUDE_SHATEST_H_ + #include int test_sha(void); +#endif // LIBRARIES_FCL_SRC_INCLUDE_SHATEST_H_ diff --git a/Libraries/FCL/src/include/ucl_testing_config.h b/Libraries/FCL/src/include/ucl_testing_config.h index 3aa506bdc29..8c9b8f6a78c 100644 --- a/Libraries/FCL/src/include/ucl_testing_config.h +++ b/Libraries/FCL/src/include/ucl_testing_config.h @@ -1,3 +1,54 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + //this file is used to define which algorithms will be tested //this is a multi-platform file //the platform is automatically managed by the makefile of the project @@ -5,8 +56,9 @@ // ** DO NOT MODIFY THE FOLLOWING LINES #include -#ifndef _UCL_TESTING_CONFIG_H -#define _UCL_TESTING_CONFIG_H +#ifndef LIBRARIES_FCL_SRC_INCLUDE_UCL_TESTING_CONFIG_H_ +#define LIBRARIES_FCL_SRC_INCLUDE_UCL_TESTING_CONFIG_H_ + #include #define PRINTF printf @@ -19,4 +71,5 @@ int ucl_testing(void); -#endif//UCL_TESTING_CONFIG_H + +#endif //LIBRARIES_FCL_SRC_INCLUDE_UCL_TESTING_CONFIG_H_ diff --git a/Libraries/FCL/src/main.c b/Libraries/FCL/src/main.c index 08bbd06bca6..017ae93a0dc 100644 --- a/Libraries/FCL/src/main.c +++ b/Libraries/FCL/src/main.c @@ -1,34 +1,53 @@ -/******************************************************************************* -* Copyright (C) 2017 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights.*/ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #include @@ -48,42 +67,45 @@ #define ZVER 1 //1.0.0: initial release //1.0.1: p192 initializers size corrected; hash functions number updated -//1.1.0: sha-3 (sha3-224,sha3-256,sha3-384, sha3-512) has been added +//1.1.0: sha-3 (sha3-224, sha3-256, sha3-384, sha3-512) has been added //1.2.0: sha-384, sha-512, ecdsa p384, p521, bp256, bp384, bp512 have been added //1.2.1: aes ecb has been added #ifdef ECDSA void test_ecdsa(void) { - PRINTF("ECDSA testing----------\n"); - if(UCL_OK==test_ecdsa_curves()) - PRINTF("OK\n"); - else - PRINTF("NOK\n"); - PRINTF("\n"); + PRINTF("ECDSA testing----------\n"); + + if (UCL_OK == test_ecdsa_curves()) { + PRINTF("OK\n"); + } else { + PRINTF("NOK\n"); + } + + PRINTF("\n"); } #endif//ECDSA int ucl_testing(void) { - int result=UCL_OK; + int result = UCL_OK; - PRINTF("FCL testing\n"); - ucl_init(); - test_sha(); - // test_aes(); + PRINTF("FCL testing\n"); + ucl_init(); + test_sha(); +// test_aes(); #ifdef ECDSA - test_ecdsa(); + test_ecdsa(); #endif - return result; + return result; } int main(void) { - int result=UCL_OK; - PRINTF("FCL validation tool %d %d %d\n",MAJVER,MINVER,ZVER); - ucl_testing(); + int result = UCL_OK; + PRINTF("FCL validation tool %d %d %d\n", MAJVER, MINVER, ZVER); + ucl_testing(); - PRINTF("this is the end...\n"); + PRINTF("this is the end...\n"); - return result; + return result; } diff --git a/Libraries/FCL/src/sha256_stone.c b/Libraries/FCL/src/sha256_stone.c index 14999689cf2..21af8766552 100644 --- a/Libraries/FCL/src/sha256_stone.c +++ b/Libraries/FCL/src/sha256_stone.c @@ -1,42 +1,53 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SHA256 -* Description: performs SHA256 low-level operations -* Filename: sha256_stone.c -* Author: GR -* Compiler: gcc -* -******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #include #ifdef HASH_SHA256 @@ -46,66 +57,70 @@ #include "ucl/ucl_defs.h" #include "ucl/ucl_retdefs.h" -#define ROTR(x,n) ( ( (x) >> (n)) | ( (x) << (32 - n) ) ) -#define SHR(x,n) ( (x) >> (n) ) -#define CH(x,y,z) ( (z) ^ ((x) & ( (y) ^ (z) ) )) -#define MAJ(x,y,z) ( ( (x) & (y) ) ^ ( (x) & (z) ) ^ ( (y) & (z) ) ) -#define SIGMA0(x) ( ROTR(x,2) ^ ROTR(x,13) ^ ROTR(x,22) ) -#define SIGMA1(x) ( ROTR(x,6) ^ ROTR(x,11) ^ ROTR(x,25) ) -#define GAMMA0(x) ( ROTR(x,7) ^ ROTR(x,18) ^ SHR(x,3) ) -#define GAMMA1(x) ( ROTR(x,17) ^ ROTR(x,19) ^ SHR(x,10) ) -#define ROUND(a,b,c,e,f,g,h,i) \ - T1 = h + SIGMA1(e) + CH(e,f,g) + K[i] + W[i]; \ - T2 = SIGMA0(a) + MAJ(a,b,c); +#define ROTR(x, n) (((x) >> (n)) | ((x) << (32 - n))) +#define SHR(x, n) ((x) >> (n)) +#define CH(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MAJ(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) +#define SIGMA0(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22)) +#define SIGMA1(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25)) +#define GAMMA0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3)) +#define GAMMA1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10)) +#define ROUND(a, b, c, e, f, g, h, i) \ + T1 = h + SIGMA1(e) + CH(e, f, g) + K[i] + W[i]; \ + T2 = SIGMA0(a) + MAJ(a, b, c); static const u32 K[64] = { 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 }; + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 }; void sha256_stone(u32 hash[8], u32 stone[16]) { - int i; - u32 W[64]; - u32 A, B, C, D, E, F, G, H, T1, T2; - for(i=0; i<16; i++) - W[i] = stone[i]; + int i; + u32 W[64]; + u32 A, B, C, D, E, F, G, H, T1, T2; - for(; i < 64; i++) - W[i] = GAMMA1(W[i-2]) + W[i-7] + GAMMA0(W[i-15]) + W[i-16]; - A = hash[0]; - B = hash[1]; - C = hash[2]; - D = hash[3]; - E = hash[4]; - F = hash[5]; - G = hash[6]; - H = hash[7]; + for (i = 0; i < 16; i++) { + W[i] = stone[i]; + } - for(i = 0; i < 64; i++) - { - ROUND(A,B,C,E,F,G,H,i); - H = G; - G = F; - F = E; - E = D + T1; - D = C; - C = B; - B = A; - A = T1 + T2; + for (; i < 64; i++) { + W[i] = GAMMA1(W[i-2]) + W[i-7] + GAMMA0(W[i-15]) + W[i-16]; } - hash[0] += A; - hash[1] += B; - hash[2] += C; - hash[3] += D; - hash[4] += E; - hash[5] += F; - hash[6] += G; - hash[7] += H; + + A = hash[0]; + B = hash[1]; + C = hash[2]; + D = hash[3]; + E = hash[4]; + F = hash[5]; + G = hash[6]; + H = hash[7]; + + for (i = 0; i < 64; i++) { + ROUND(A, B, C, E, F, G, H, i); + H = G; + G = F; + F = E; + E = D + T1; + D = C; + C = B; + B = A; + A = T1 + T2; + } + + hash[0] += A; + hash[1] += B; + hash[2] += C; + hash[3] += D; + hash[4] += E; + hash[5] += F; + hash[6] += G; + hash[7] += H; } #endif//HASH_SHA256 diff --git a/Libraries/FCL/src/sha512_stone.c b/Libraries/FCL/src/sha512_stone.c index 3f18081fb4d..a50fc5058fb 100644 --- a/Libraries/FCL/src/sha512_stone.c +++ b/Libraries/FCL/src/sha512_stone.c @@ -1,41 +1,54 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SHA512 -* Description: performs SHA512 low-level operations -* Filename: sha512_stone.c -* Author: GR -* Compiler: gcc -* -*******************************************************************************/ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #include #ifdef HASH_SHA512 @@ -45,66 +58,68 @@ #include "ucl/ucl_retdefs.h" #include "ucl/ucl_sha512.h" -#define ROTR(x,n) ( ( (x) >> (n)) | ( (x) << (64 - n) ) ) -#define SHR(x,n) ( (x) >> (n) ) -#define CH(x,y,z) ( (z) ^ ((x) & ( (y) ^ (z) ) )) -#define MAJ(x,y,z) ( ( (x) & (y) ) ^ ( (x) & (z) ) ^ ( (y) & (z) ) ) -#define BIGSIGMA1(x) ( ((ROTR(x,14)) ^ (ROTR(x,18)) ^ (ROTR(x,41))) ) -#define BIGSIGMA0(x) ( ((ROTR(x,28)) ^ (ROTR(x,34)) ^ (ROTR(x,39))) ) -#define SIGMA0(x) ( ((ROTR(x,1)) ^ (ROTR(x,8)) ^ (SHR(x,7))) ) -#define SIGMA1(x) ( (ROTR(x,19) ^ ROTR(x,61) ^ SHR(x,6)) ) -#define ROUND(a,b,c,e,f,g,h,i) \ - T1 = h + BIGSIGMA1(e) + CH(e,f,g) + K[i] + W[i]; \ - T2 = BIGSIGMA0(a) + MAJ(a,b,c); +#define ROTR(x, n) (((x) >> (n)) | ((x) << (64 - n))) +#define SHR(x, n) ((x) >> (n)) +#define CH(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MAJ(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) +#define BIGSIGMA1(x) (((ROTR(x, 14)) ^ (ROTR(x, 18)) ^ (ROTR(x, 41)))) +#define BIGSIGMA0(x) (((ROTR(x, 28)) ^ (ROTR(x, 34)) ^ (ROTR(x, 39)))) +#define SIGMA0(x) (((ROTR(x, 1)) ^ (ROTR(x, 8)) ^ (SHR(x, 7)))) +#define SIGMA1(x) ((ROTR(x, 19) ^ ROTR(x, 61) ^ SHR(x, 6))) +#define ROUND(a, b, c, e, f, g, h, i) \ + T1 = h + BIGSIGMA1(e) + CH(e, f, g) + K[i] + W[i]; \ + T2 = BIGSIGMA0(a) + MAJ(a, b, c); static const u64 K[80] = { - 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, - 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, - 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, - 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, - 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, - 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, - 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, - 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, - 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, - 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, - 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, - 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, - 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, - 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL, + 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, + 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, + 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, + 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, + 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, + 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, + 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, + 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, + 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, + 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, + 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, + 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, + 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, + 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL, }; void sha512_stone(u64 hash[8], u64 stone[16]) { - int i; - u64 W[80]; - u64 A, B, C, D, E, F, G, H, T1, T2; - - A = hash[0]; - B = hash[1]; - C = hash[2]; - D = hash[3]; - E = hash[4]; - F = hash[5]; - G = hash[6]; - H = hash[7]; + int i; + u64 W[80]; + u64 A, B, C, D, E, F, G, H, T1, T2; + + A = hash[0]; + B = hash[1]; + C = hash[2]; + D = hash[3]; + E = hash[4]; + F = hash[5]; + G = hash[6]; + H = hash[7]; - for(i=0; i<16; i++) - W[i] = stone[i]; - for(; i < 80; i++) - W[i] = SIGMA1(W[i-2]) + W[i-7] + SIGMA0(W[i-15]) + W[i-16]; + for (i = 0; i < 16; i++) { + W[i] = stone[i]; + } + + for (; i < 80; i++) { + W[i] = SIGMA1(W[i-2]) + W[i-7] + SIGMA0(W[i-15]) + W[i-16]; + } - for(i = 0; i < 80; i++) - { - ROUND(A,B,C,E,F,G,H,i); - H = G; - G = F; - F = E; - E = D + T1; - D = C; - C = B; - B = A; - A = T1 + T2; + for (i = 0; i < 80; i++) { + ROUND(A, B, C, E, F, G, H, i); + H = G; + G = F; + F = E; + E = D + T1; + D = C; + C = B; + B = A; + A = T1 + T2; } hash[0] += A; diff --git a/Libraries/FCL/src/shatest.c b/Libraries/FCL/src/shatest.c index 39eff13dd68..ee87e9d3c5f 100644 --- a/Libraries/FCL/src/shatest.c +++ b/Libraries/FCL/src/shatest.c @@ -1,36 +1,53 @@ -/******************************************************************************* -* Copyright (C) 2017 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights.*/ - - +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ //#define VERBOSE #include @@ -47,638 +64,771 @@ //HMAC RFC 4231 test vectors for HMAC SHA-224, SHA-256, SHA-384 and SHA-512 -u8 key_rfc4231_1[]={0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b}; -u8 msg_rfc4231_1[]={0x48,0x69,0x20,0x54,0x68,0x65,0x72,0x65}; -u8 mac224_rfc4231_1[]={0x89,0x6f,0xb1,0x12,0x8a,0xbb,0xdf,0x19,0x68,0x32,0x10,0x7c,0xd4,0x9d,0xf3,0x3f,0x47,0xb4,0xb1,0x16,0x99,0x12,0xba,0x4f,0x53,0x68,0x4b,0x22}; -u8 mac256_rfc4231_1[]={0xb0,0x34,0x4c,0x61,0xd8,0xdb,0x38,0x53,0x5c,0xa8,0xaf,0xce,0xaf,0x0b,0xf1,0x2b,0x88,0x1d,0xc2,0x00,0xc9,0x83,0x3d,0xa7,0x26,0xe9,0x37,0x6c,0x2e,0x32,0xcf,0xf7}; -u8 mac384_rfc4231_1[]={0xaf,0xd0,0x39,0x44,0xd8,0x48,0x95,0x62,0x6b,0x08,0x25,0xf4,0xab,0x46,0x90,0x7f,0x15,0xf9,0xda,0xdb,0xe4,0x10,0x1e,0xc6,0x82,0xaa,0x03,0x4c,0x7c,0xeb,0xc5,0x9c,0xfa,0xea,0x9e,0xa9,0x07,0x6e,0xde,0x7f,0x4a,0xf1,0x52,0xe8,0xb2,0xfa,0x9c,0xb6}; -u8 mac512_rfc4231_1[]={0x87,0xaa,0x7c,0xde,0xa5,0xef,0x61,0x9d,0x4f,0xf0,0xb4,0x24,0x1a,0x1d,0x6c,0xb0,0x23,0x79,0xf4,0xe2,0xce,0x4e,0xc2,0x78,0x7a,0xd0,0xb3,0x05,0x45,0xe1,0x7c,0xde,0xda,0xa8,0x33,0xb7,0xd6,0xb8,0xa7,0x02,0x03,0x8b,0x27,0x4e,0xae,0xa3,0xf4,0xe4,0xbe,0x9d,0x91,0x4e,0xeb,0x61,0xf1,0x70,0x2e,0x69,0x6c,0x20,0x3a,0x12,0x68,0x54}; +u8 key_rfc4231_1[] = {0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b}; +u8 msg_rfc4231_1[] = {0x48, 0x69, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65}; +u8 mac224_rfc4231_1[] = {0x89, 0x6f, 0xb1, 0x12, 0x8a, 0xbb, 0xdf, 0x19, 0x68, 0x32, 0x10, 0x7c, 0xd4, 0x9d, 0xf3, 0x3f, 0x47, 0xb4, 0xb1, 0x16, 0x99, 0x12, 0xba, 0x4f, 0x53, 0x68, 0x4b, 0x22}; +u8 mac256_rfc4231_1[] = {0xb0, 0x34, 0x4c, 0x61, 0xd8, 0xdb, 0x38, 0x53, 0x5c, 0xa8, 0xaf, 0xce, 0xaf, 0x0b, 0xf1, 0x2b, 0x88, 0x1d, 0xc2, 0x00, 0xc9, 0x83, 0x3d, 0xa7, 0x26, 0xe9, 0x37, 0x6c, 0x2e, 0x32, 0xcf, 0xf7}; +u8 mac384_rfc4231_1[] = {0xaf, 0xd0, 0x39, 0x44, 0xd8, 0x48, 0x95, 0x62, 0x6b, 0x08, 0x25, 0xf4, 0xab, 0x46, 0x90, 0x7f, 0x15, 0xf9, 0xda, 0xdb, 0xe4, 0x10, 0x1e, 0xc6, 0x82, 0xaa, 0x03, 0x4c, 0x7c, 0xeb, 0xc5, 0x9c, 0xfa, 0xea, 0x9e, 0xa9, 0x07, 0x6e, 0xde, 0x7f, 0x4a, 0xf1, 0x52, 0xe8, 0xb2, 0xfa, 0x9c, 0xb6}; +u8 mac512_rfc4231_1[] = {0x87, 0xaa, 0x7c, 0xde, 0xa5, 0xef, 0x61, 0x9d, 0x4f, 0xf0, 0xb4, 0x24, 0x1a, 0x1d, 0x6c, 0xb0, 0x23, 0x79, 0xf4, 0xe2, 0xce, 0x4e, 0xc2, 0x78, 0x7a, 0xd0, 0xb3, 0x05, 0x45, 0xe1, 0x7c, 0xde, 0xda, 0xa8, 0x33, 0xb7, 0xd6, 0xb8, 0xa7, 0x02, 0x03, 0x8b, 0x27, 0x4e, 0xae, 0xa3, 0xf4, 0xe4, 0xbe, 0x9d, 0x91, 0x4e, 0xeb, 0x61, 0xf1, 0x70, 0x2e, 0x69, 0x6c, 0x20, 0x3a, 0x12, 0x68, 0x54}; -u8 key_rfc4231_2[]={0x4a,0x65,0x66,0x65}; -u8 msg_rfc4231_2[]={0x77,0x68,0x61,0x74,0x20,0x64,0x6f,0x20,0x79,0x61,0x20,0x77,0x61,0x6e,0x74,0x20,0x66,0x6f,0x72,0x20,0x6e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x3f}; +u8 key_rfc4231_2[] = {0x4a, 0x65, 0x66, 0x65}; +u8 msg_rfc4231_2[] = {0x77, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x61, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x3f}; -u8 mac224_rfc4231_2[]={0xa3,0x0e,0x01,0x09,0x8b,0xc6,0xdb,0xbf,0x45,0x69,0x0f,0x3a,0x7e,0x9e,0x6d,0x0f,0x8b,0xbe,0xa2,0xa3,0x9e,0x61,0x48,0x00,0x8f,0xd0,0x5e,0x44}; -u8 mac256_rfc4231_2[]={0x5b,0xdc,0xc1,0x46,0xbf,0x60,0x75,0x4e,0x6a,0x04,0x24,0x26,0x08,0x95,0x75,0xc7,0x5a,0x00,0x3f,0x08,0x9d,0x27,0x39,0x83,0x9d,0xec,0x58,0xb9,0x64,0xec,0x38,0x43}; -u8 mac384_rfc4231_2[]={0xaf,0x45,0xd2,0xe3,0x76,0x48,0x40,0x31,0x61,0x7f,0x78,0xd2,0xb5,0x8a,0x6b,0x1b,0x9c,0x7e,0xf4,0x64,0xf5,0xa0,0x1b,0x47,0xe4,0x2e,0xc3,0x73,0x63,0x22,0x44,0x5e,0x8e,0x22,0x40,0xca,0x5e,0x69,0xe2,0xc7,0x8b,0x32,0x39,0xec,0xfa,0xb2,0x16,0x49}; -u8 mac512_rfc4231_2[]={0x16,0x4b,0x7a,0x7b,0xfc,0xf8,0x19,0xe2,0xe3,0x95,0xfb,0xe7,0x3b,0x56,0xe0,0xa3,0x87,0xbd,0x64,0x22,0x2e,0x83,0x1f,0xd6,0x10,0x27,0x0c,0xd7,0xea,0x25,0x05,0x54,0x97,0x58,0xbf,0x75,0xc0,0x5a,0x99,0x4a,0x6d,0x03,0x4f,0x65,0xf8,0xf0,0xe6,0xfd,0xca,0xea,0xb1,0xa3,0x4d,0x4a,0x6b,0x4b,0x63,0x6e,0x07,0x0a,0x38,0xbc,0xe7,0x37}; +u8 mac224_rfc4231_2[] = {0xa3, 0x0e, 0x01, 0x09, 0x8b, 0xc6, 0xdb, 0xbf, 0x45, 0x69, 0x0f, 0x3a, 0x7e, 0x9e, 0x6d, 0x0f, 0x8b, 0xbe, 0xa2, 0xa3, 0x9e, 0x61, 0x48, 0x00, 0x8f, 0xd0, 0x5e, 0x44}; +u8 mac256_rfc4231_2[] = {0x5b, 0xdc, 0xc1, 0x46, 0xbf, 0x60, 0x75, 0x4e, 0x6a, 0x04, 0x24, 0x26, 0x08, 0x95, 0x75, 0xc7, 0x5a, 0x00, 0x3f, 0x08, 0x9d, 0x27, 0x39, 0x83, 0x9d, 0xec, 0x58, 0xb9, 0x64, 0xec, 0x38, 0x43}; +u8 mac384_rfc4231_2[] = {0xaf, 0x45, 0xd2, 0xe3, 0x76, 0x48, 0x40, 0x31, 0x61, 0x7f, 0x78, 0xd2, 0xb5, 0x8a, 0x6b, 0x1b, 0x9c, 0x7e, 0xf4, 0x64, 0xf5, 0xa0, 0x1b, 0x47, 0xe4, 0x2e, 0xc3, 0x73, 0x63, 0x22, 0x44, 0x5e, 0x8e, 0x22, 0x40, 0xca, 0x5e, 0x69, 0xe2, 0xc7, 0x8b, 0x32, 0x39, 0xec, 0xfa, 0xb2, 0x16, 0x49}; +u8 mac512_rfc4231_2[] = {0x16, 0x4b, 0x7a, 0x7b, 0xfc, 0xf8, 0x19, 0xe2, 0xe3, 0x95, 0xfb, 0xe7, 0x3b, 0x56, 0xe0, 0xa3, 0x87, 0xbd, 0x64, 0x22, 0x2e, 0x83, 0x1f, 0xd6, 0x10, 0x27, 0x0c, 0xd7, 0xea, 0x25, 0x05, 0x54, 0x97, 0x58, 0xbf, 0x75, 0xc0, 0x5a, 0x99, 0x4a, 0x6d, 0x03, 0x4f, 0x65, 0xf8, 0xf0, 0xe6, 0xfd, 0xca, 0xea, 0xb1, 0xa3, 0x4d, 0x4a, 0x6b, 0x4b, 0x63, 0x6e, 0x07, 0x0a, 0x38, 0xbc, 0xe7, 0x37}; -u8 key_rfc4231_3[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa}; -u8 msg_rfc4231_3[]={0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}; +u8 key_rfc4231_3[] = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; +u8 msg_rfc4231_3[] = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd}; -u8 mac224_rfc4231_3[]={0x7f,0xb3,0xcb,0x35,0x88,0xc6,0xc1,0xf6,0xff,0xa9,0x69,0x4d,0x7d,0x6a,0xd2,0x64,0x93,0x65,0xb0,0xc1,0xf6,0x5d,0x69,0xd1,0xec,0x83,0x33,0xea}; -u8 mac256_rfc4231_3[]={0x77,0x3e,0xa9,0x1e,0x36,0x80,0x0e,0x46,0x85,0x4d,0xb8,0xeb,0xd0,0x91,0x81,0xa7,0x29,0x59,0x09,0x8b,0x3e,0xf8,0xc1,0x22,0xd9,0x63,0x55,0x14,0xce,0xd5,0x65,0xfe}; -u8 mac384_rfc4231_3[]={0x88,0x06,0x26,0x08,0xd3,0xe6,0xad,0x8a,0x0a,0xa2,0xac,0xe0,0x14,0xc8,0xa8,0x6f,0x0a,0xa6,0x35,0xd9,0x47,0xac,0x9f,0xeb,0xe8,0x3e,0xf4,0xe5,0x59,0x66,0x14,0x4b,0x2a,0x5a,0xb3,0x9d,0xc1,0x38,0x14,0xb9,0x4e,0x3a,0xb6,0xe1,0x01,0xa3,0x4f,0x27}; -u8 mac512_rfc4231_3[]={0xfa,0x73,0xb0,0x08,0x9d,0x56,0xa2,0x84,0xef,0xb0,0xf0,0x75,0x6c,0x89,0x0b,0xe9,0xb1,0xb5,0xdb,0xdd,0x8e,0xe8,0x1a,0x36,0x55,0xf8,0x3e,0x33,0xb2,0x27,0x9d,0x39,0xbf,0x3e,0x84,0x82,0x79,0xa7,0x22,0xc8,0x06,0xb4,0x85,0xa4,0x7e,0x67,0xc8,0x07,0xb9,0x46,0xa3,0x37,0xbe,0xe8,0x94,0x26,0x74,0x27,0x88,0x59,0xe1,0x32,0x92,0xfb}; +u8 mac224_rfc4231_3[] = {0x7f, 0xb3, 0xcb, 0x35, 0x88, 0xc6, 0xc1, 0xf6, 0xff, 0xa9, 0x69, 0x4d, 0x7d, 0x6a, 0xd2, 0x64, 0x93, 0x65, 0xb0, 0xc1, 0xf6, 0x5d, 0x69, 0xd1, 0xec, 0x83, 0x33, 0xea}; +u8 mac256_rfc4231_3[] = {0x77, 0x3e, 0xa9, 0x1e, 0x36, 0x80, 0x0e, 0x46, 0x85, 0x4d, 0xb8, 0xeb, 0xd0, 0x91, 0x81, 0xa7, 0x29, 0x59, 0x09, 0x8b, 0x3e, 0xf8, 0xc1, 0x22, 0xd9, 0x63, 0x55, 0x14, 0xce, 0xd5, 0x65, 0xfe}; +u8 mac384_rfc4231_3[] = {0x88, 0x06, 0x26, 0x08, 0xd3, 0xe6, 0xad, 0x8a, 0x0a, 0xa2, 0xac, 0xe0, 0x14, 0xc8, 0xa8, 0x6f, 0x0a, 0xa6, 0x35, 0xd9, 0x47, 0xac, 0x9f, 0xeb, 0xe8, 0x3e, 0xf4, 0xe5, 0x59, 0x66, 0x14, 0x4b, 0x2a, 0x5a, 0xb3, 0x9d, 0xc1, 0x38, 0x14, 0xb9, 0x4e, 0x3a, 0xb6, 0xe1, 0x01, 0xa3, 0x4f, 0x27}; +u8 mac512_rfc4231_3[] = {0xfa, 0x73, 0xb0, 0x08, 0x9d, 0x56, 0xa2, 0x84, 0xef, 0xb0, 0xf0, 0x75, 0x6c, 0x89, 0x0b, 0xe9, 0xb1, 0xb5, 0xdb, 0xdd, 0x8e, 0xe8, 0x1a, 0x36, 0x55, 0xf8, 0x3e, 0x33, 0xb2, 0x27, 0x9d, 0x39, 0xbf, 0x3e, 0x84, 0x82, 0x79, 0xa7, 0x22, 0xc8, 0x06, 0xb4, 0x85, 0xa4, 0x7e, 0x67, 0xc8, 0x07, 0xb9, 0x46, 0xa3, 0x37, 0xbe, 0xe8, 0x94, 0x26, 0x74, 0x27, 0x88, 0x59, 0xe1, 0x32, 0x92, 0xfb}; -u8 key_rfc4231_4[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19}; -u8 msg_rfc4231_4[]={0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd}; +u8 key_rfc4231_4[] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}; +u8 msg_rfc4231_4[] = {0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd}; -u8 mac224_rfc4231_4[]={0x6c,0x11,0x50,0x68,0x74,0x01,0x3c,0xac,0x6a,0x2a,0xbc,0x1b,0xb3,0x82,0x62,0x7c,0xec,0x6a,0x90,0xd8,0x6e,0xfc,0x01,0x2d,0xe7,0xaf,0xec,0x5a,}; -u8 mac256_rfc4231_4[]={0x82,0x55,0x8a,0x38,0x9a,0x44,0x3c,0x0e,0xa4,0xcc,0x81,0x98,0x99,0xf2,0x08,0x3a,0x85,0xf0,0xfa,0xa3,0xe5,0x78,0xf8,0x07,0x7a,0x2e,0x3f,0xf4,0x67,0x29,0x66,0x5b}; -u8 mac384_rfc4231_4[]={0x3e,0x8a,0x69,0xb7,0x78,0x3c,0x25,0x85,0x19,0x33,0xab,0x62,0x90,0xaf,0x6c,0xa7,0x7a,0x99,0x81,0x48,0x08,0x50,0x00,0x9c,0xc5,0x57,0x7c,0x6e,0x1f,0x57,0x3b,0x4e,0x68,0x01,0xdd,0x23,0xc4,0xa7,0xd6,0x79,0xcc,0xf8,0xa3,0x86,0xc6,0x74,0xcf,0xfb}; -u8 mac512_rfc4231_4[]={0xb0,0xba,0x46,0x56,0x37,0x45,0x8c,0x69,0x90,0xe5,0xa8,0xc5,0xf6,0x1d,0x4a,0xf7,0xe5,0x76,0xd9,0x7f,0xf9,0x4b,0x87,0x2d,0xe7,0x6f,0x80,0x50,0x36,0x1e,0xe3,0xdb,0xa9,0x1c,0xa5,0xc1,0x1a,0xa2,0x5e,0xb4,0xd6,0x79,0x27,0x5c,0xc5,0x78,0x80,0x63,0xa5,0xf1,0x97,0x41,0x12,0x0c,0x4f,0x2d,0xe2,0xad,0xeb,0xeb,0x10,0xa2,0x98,0xdd}; +u8 mac224_rfc4231_4[] = {0x6c, 0x11, 0x50, 0x68, 0x74, 0x01, 0x3c, 0xac, 0x6a, 0x2a, 0xbc, 0x1b, 0xb3, 0x82, 0x62, 0x7c, 0xec, 0x6a, 0x90, 0xd8, 0x6e, 0xfc, 0x01, 0x2d, 0xe7, 0xaf, 0xec, 0x5a, }; +u8 mac256_rfc4231_4[] = {0x82, 0x55, 0x8a, 0x38, 0x9a, 0x44, 0x3c, 0x0e, 0xa4, 0xcc, 0x81, 0x98, 0x99, 0xf2, 0x08, 0x3a, 0x85, 0xf0, 0xfa, 0xa3, 0xe5, 0x78, 0xf8, 0x07, 0x7a, 0x2e, 0x3f, 0xf4, 0x67, 0x29, 0x66, 0x5b}; +u8 mac384_rfc4231_4[] = {0x3e, 0x8a, 0x69, 0xb7, 0x78, 0x3c, 0x25, 0x85, 0x19, 0x33, 0xab, 0x62, 0x90, 0xaf, 0x6c, 0xa7, 0x7a, 0x99, 0x81, 0x48, 0x08, 0x50, 0x00, 0x9c, 0xc5, 0x57, 0x7c, 0x6e, 0x1f, 0x57, 0x3b, 0x4e, 0x68, 0x01, 0xdd, 0x23, 0xc4, 0xa7, 0xd6, 0x79, 0xcc, 0xf8, 0xa3, 0x86, 0xc6, 0x74, 0xcf, 0xfb}; +u8 mac512_rfc4231_4[] = {0xb0, 0xba, 0x46, 0x56, 0x37, 0x45, 0x8c, 0x69, 0x90, 0xe5, 0xa8, 0xc5, 0xf6, 0x1d, 0x4a, 0xf7, 0xe5, 0x76, 0xd9, 0x7f, 0xf9, 0x4b, 0x87, 0x2d, 0xe7, 0x6f, 0x80, 0x50, 0x36, 0x1e, 0xe3, 0xdb, 0xa9, 0x1c, 0xa5, 0xc1, 0x1a, 0xa2, 0x5e, 0xb4, 0xd6, 0x79, 0x27, 0x5c, 0xc5, 0x78, 0x80, 0x63, 0xa5, 0xf1, 0x97, 0x41, 0x12, 0x0c, 0x4f, 0x2d, 0xe2, 0xad, 0xeb, 0xeb, 0x10, 0xa2, 0x98, 0xdd}; -u8 key_rfc4231_6[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa}; -u8 msg_rfc4231_6[]={0x54,0x65,0x73,0x74,0x20,0x55,0x73,0x69,0x6e,0x67,0x20,0x4c,0x61,0x72,0x67,0x65,0x72,0x20,0x54,0x68,0x61,0x6e,0x20,0x42,0x6c,0x6f,0x63,0x6b,0x2d,0x53,0x69,0x7a,0x65,0x20,0x4b,0x65,0x79,0x20,0x2d,0x20,0x48,0x61,0x73,0x68,0x20,0x4b,0x65,0x79,0x20,0x46,0x69,0x72,0x73,0x74}; +u8 key_rfc4231_6[] = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; +u8 msg_rfc4231_6[] = {0x54, 0x65, 0x73, 0x74, 0x20, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x54, 0x68, 0x61, 0x6e, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x2d, 0x20, 0x48, 0x61, 0x73, 0x68, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x46, 0x69, 0x72, 0x73, 0x74}; -u8 mac224_rfc4231_6[]={0x95,0xe9,0xa0,0xdb,0x96,0x20,0x95,0xad,0xae,0xbe,0x9b,0x2d,0x6f,0x0d,0xbc,0xe2,0xd4,0x99,0xf1,0x12,0xf2,0xd2,0xb7,0x27,0x3f,0xa6,0x87,0x0e}; -u8 mac256_rfc4231_6[]={0x60,0xe4,0x31,0x59,0x1e,0xe0,0xb6,0x7f,0x0d,0x8a,0x26,0xaa,0xcb,0xf5,0xb7,0x7f,0x8e,0x0b,0xc6,0x21,0x37,0x28,0xc5,0x14,0x05,0x46,0x04,0x0f,0x0e,0xe3,0x7f,0x54}; -u8 mac384_rfc4231_6[]={0x4e,0xce,0x08,0x44,0x85,0x81,0x3e,0x90,0x88,0xd2,0xc6,0x3a,0x04,0x1b,0xc5,0xb4,0x4f,0x9e,0xf1,0x01,0x2a,0x2b,0x58,0x8f,0x3c,0xd1,0x1f,0x05,0x03,0x3a,0xc4,0xc6,0x0c,0x2e,0xf6,0xab,0x40,0x30,0xfe,0x82,0x96,0x24,0x8d,0xf1,0x63,0xf4,0x49,0x52}; -u8 mac512_rfc4231_6[]={0x80,0xb2,0x42,0x63,0xc7,0xc1,0xa3,0xeb,0xb7,0x14,0x93,0xc1,0xdd,0x7b,0xe8,0xb4,0x9b,0x46,0xd1,0xf4,0x1b,0x4a,0xee,0xc1,0x12,0x1b,0x01,0x37,0x83,0xf8,0xf3,0x52,0x6b,0x56,0xd0,0x37,0xe0,0x5f,0x25,0x98,0xbd,0x0f,0xd2,0x21,0x5d,0x6a,0x1e,0x52,0x95,0xe6,0x4f,0x73,0xf6,0x3f,0x0a,0xec,0x8b,0x91,0x5a,0x98,0x5d,0x78,0x65,0x98,}; +u8 mac224_rfc4231_6[] = {0x95, 0xe9, 0xa0, 0xdb, 0x96, 0x20, 0x95, 0xad, 0xae, 0xbe, 0x9b, 0x2d, 0x6f, 0x0d, 0xbc, 0xe2, 0xd4, 0x99, 0xf1, 0x12, 0xf2, 0xd2, 0xb7, 0x27, 0x3f, 0xa6, 0x87, 0x0e}; +u8 mac256_rfc4231_6[] = {0x60, 0xe4, 0x31, 0x59, 0x1e, 0xe0, 0xb6, 0x7f, 0x0d, 0x8a, 0x26, 0xaa, 0xcb, 0xf5, 0xb7, 0x7f, 0x8e, 0x0b, 0xc6, 0x21, 0x37, 0x28, 0xc5, 0x14, 0x05, 0x46, 0x04, 0x0f, 0x0e, 0xe3, 0x7f, 0x54}; +u8 mac384_rfc4231_6[] = {0x4e, 0xce, 0x08, 0x44, 0x85, 0x81, 0x3e, 0x90, 0x88, 0xd2, 0xc6, 0x3a, 0x04, 0x1b, 0xc5, 0xb4, 0x4f, 0x9e, 0xf1, 0x01, 0x2a, 0x2b, 0x58, 0x8f, 0x3c, 0xd1, 0x1f, 0x05, 0x03, 0x3a, 0xc4, 0xc6, 0x0c, 0x2e, 0xf6, 0xab, 0x40, 0x30, 0xfe, 0x82, 0x96, 0x24, 0x8d, 0xf1, 0x63, 0xf4, 0x49, 0x52}; +u8 mac512_rfc4231_6[] = {0x80, 0xb2, 0x42, 0x63, 0xc7, 0xc1, 0xa3, 0xeb, 0xb7, 0x14, 0x93, 0xc1, 0xdd, 0x7b, 0xe8, 0xb4, 0x9b, 0x46, 0xd1, 0xf4, 0x1b, 0x4a, 0xee, 0xc1, 0x12, 0x1b, 0x01, 0x37, 0x83, 0xf8, 0xf3, 0x52, 0x6b, 0x56, 0xd0, 0x37, 0xe0, 0x5f, 0x25, 0x98, 0xbd, 0x0f, 0xd2, 0x21, 0x5d, 0x6a, 0x1e, 0x52, 0x95, 0xe6, 0x4f, 0x73, 0xf6, 0x3f, 0x0a, 0xec, 0x8b, 0x91, 0x5a, 0x98, 0x5d, 0x78, 0x65, 0x98, }; -const u8 key_rfc4231_7[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa}; -const u8 msg_rfc4231_7[]={0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x65,0x73,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x20,0x6b,0x65,0x79,0x20,0x61,0x6e,0x64,0x20,0x61,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x20,0x64,0x61,0x74,0x61,0x2e,0x20,0x54,0x68,0x65,0x20,0x6b,0x65,0x79,0x20,0x6e,0x65,0x65,0x64,0x73,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x68,0x61,0x73,0x68,0x65,0x64,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x48,0x4d,0x41,0x43,0x20,0x61,0x6c,0x67,0x6f,0x72,0x69,0x74,0x68,0x6d,0x2e}; +const u8 key_rfc4231_7[] = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; +const u8 msg_rfc4231_7[] = {0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, 0x4d, 0x41, 0x43, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x2e}; -const u8 mac224_rfc4231_7[]={0x3a,0x85,0x41,0x66,0xac,0x5d,0x9f,0x02,0x3f,0x54,0xd5,0x17,0xd0,0xb3,0x9d,0xbd,0x94,0x67,0x70,0xdb,0x9c,0x2b,0x95,0xc9,0xf6,0xf5,0x65,0xd1}; -u8 mac256_rfc4231_7[]={0x9b,0x09,0xff,0xa7,0x1b,0x94,0x2f,0xcb,0x27,0x63,0x5f,0xbc,0xd5,0xb0,0xe9,0x44,0xbf,0xdc,0x63,0x64,0x4f,0x07,0x13,0x93,0x8a,0x7f,0x51,0x53,0x5c,0x3a,0x35,0xe2}; -const u8 mac384_rfc4231_7[]={0x66,0x17,0x17,0x8e,0x94,0x1f,0x02,0x0d,0x35,0x1e,0x2f,0x25,0x4e,0x8f,0xd3,0x2c,0x60,0x24,0x20,0xfe,0xb0,0xb8,0xfb,0x9a,0xdc,0xce,0xbb,0x82,0x46,0x1e,0x99,0xc5,0xa6,0x78,0xcc,0x31,0xe7,0x99,0x17,0x6d,0x38,0x60,0xe6,0x11,0x0c,0x46,0x52,0x3e}; -const u8 mac512_rfc4231_7[]={0xe3,0x7b,0x6a,0x77,0x5d,0xc8,0x7d,0xba,0xa4,0xdf,0xa9,0xf9,0x6e,0x5e,0x3f,0xfd,0xde,0xbd,0x71,0xf8,0x86,0x72,0x89,0x86,0x5d,0xf5,0xa3,0x2d,0x20,0xcd,0xc9,0x44,0xb6,0x02,0x2c,0xac,0x3c,0x49,0x82,0xb1,0x0d,0x5e,0xeb,0x55,0xc3,0xe4,0xde,0x15,0x13,0x46,0x76,0xfb,0x6d,0xe0,0x44,0x60,0x65,0xc9,0x74,0x40,0xfa,0x8c,0x6a,0x58}; +const u8 mac224_rfc4231_7[] = {0x3a, 0x85, 0x41, 0x66, 0xac, 0x5d, 0x9f, 0x02, 0x3f, 0x54, 0xd5, 0x17, 0xd0, 0xb3, 0x9d, 0xbd, 0x94, 0x67, 0x70, 0xdb, 0x9c, 0x2b, 0x95, 0xc9, 0xf6, 0xf5, 0x65, 0xd1}; +u8 mac256_rfc4231_7[] = {0x9b, 0x09, 0xff, 0xa7, 0x1b, 0x94, 0x2f, 0xcb, 0x27, 0x63, 0x5f, 0xbc, 0xd5, 0xb0, 0xe9, 0x44, 0xbf, 0xdc, 0x63, 0x64, 0x4f, 0x07, 0x13, 0x93, 0x8a, 0x7f, 0x51, 0x53, 0x5c, 0x3a, 0x35, 0xe2}; +const u8 mac384_rfc4231_7[] = {0x66, 0x17, 0x17, 0x8e, 0x94, 0x1f, 0x02, 0x0d, 0x35, 0x1e, 0x2f, 0x25, 0x4e, 0x8f, 0xd3, 0x2c, 0x60, 0x24, 0x20, 0xfe, 0xb0, 0xb8, 0xfb, 0x9a, 0xdc, 0xce, 0xbb, 0x82, 0x46, 0x1e, 0x99, 0xc5, 0xa6, 0x78, 0xcc, 0x31, 0xe7, 0x99, 0x17, 0x6d, 0x38, 0x60, 0xe6, 0x11, 0x0c, 0x46, 0x52, 0x3e}; +const u8 mac512_rfc4231_7[] = {0xe3, 0x7b, 0x6a, 0x77, 0x5d, 0xc8, 0x7d, 0xba, 0xa4, 0xdf, 0xa9, 0xf9, 0x6e, 0x5e, 0x3f, 0xfd, 0xde, 0xbd, 0x71, 0xf8, 0x86, 0x72, 0x89, 0x86, 0x5d, 0xf5, 0xa3, 0x2d, 0x20, 0xcd, 0xc9, 0x44, 0xb6, 0x02, 0x2c, 0xac, 0x3c, 0x49, 0x82, 0xb1, 0x0d, 0x5e, 0xeb, 0x55, 0xc3, 0xe4, 0xde, 0x15, 0x13, 0x46, 0x76, 0xfb, 0x6d, 0xe0, 0x44, 0x60, 0x65, 0xc9, 0x74, 0x40, 0xfa, 0x8c, 0x6a, 0x58}; -int hex(char c1,char c2) +int hex(char c1, char c2) { - int value; - value=0; - if(c1>='A' && c1<='F') - value=(c1-'A'+10); - if(c1>='a' && c1<='f') - value=(c1-'a'+10); - if(c1>='0' && c1<='9') - value=(c1-'0'); - value*=16; - if(c2>='A' && c2<='F') - value+=(c2-'A'+10); - if(c2>='a' && c2<='f') - value+=(c2-'a'+10); - if(c2>='0' && c2<='9') - value+=(c2-'0'); - return(value); + int value; + + value = 0; + if (c1 >= 'A' && c1 <= 'F') { + value = (c1-'A'+10); + } + + if (c1 >= 'a' && c1 <= 'f') { + value = (c1-'a'+10); + } + + if (c1 >= '0' && c1 <= '9') { + value = (c1-'0'); + } + + value *= 16; + if (c2 >= 'A' && c2 <= 'F') { + value += (c2-'A'+10); + } + + if (c2 >= 'a' && c2 <= 'f') { + value += (c2-'a'+10); + } + + if (c2 >= '0' && c2 <= '9') { + value += (c2-'0'); + } + + return(value); } -int check(u8 *h,char *sth,int l) +int check(u8 *h, char *sth, int l) { - int i; - //max size of a hash digest - u8 th[64]; - if((int)strlen(sth)!=l*2) - { - PRINTF("ERROR: incorrect string length (%d -> %d\n",(int)strlen(sth),l); - return(UCL_ERROR); - } - for(i=0;i %d\n", (int)strlen(sth), l); + return(UCL_ERROR); + } + + for (i = 0; i < l; i++) { + th[i] = hex(sth[i*2], sth[i*2+1]); + } + + if (memcmp(h, th, l) == 0) { #ifdef VERBOSE - PRINTF("OK\n"); + PRINTF("OK\n"); #endif + } else { + return(UCL_ERROR); } - else - return(UCL_ERROR); - return(UCL_OK); + + return(UCL_OK); } int test_sia256(void) { - u8 sha256data1[]={0x05,0xC0,0x57,0x52,0x78,0xDA,0x49,0x02,0x2B,0x6E,0x3D,0x40,0x4F,0x8F,0xBD,0xAE,0x3D,0x41,0x55,0x2E,0x27,0x56,0xAF,0xBB,0x99,0x29,0x0A,0x1C,0xDF,0xFB,0xDD,0xE9,0x42,0xFE,0x32,0x56,0xD3,0xD6,0x7F,0xDA,0x1D,0xA0,0x4E,0xCA,0xBE,0x5E,0xFD,0xD5,0xCF,0xAF,0x7D,0xBA,0xA2,0x16,0x68,0x34,0xF8,0xE8,0x99,0x01,0x62,0x8F,0x41,0x1F,0x00,0x1E,0x22,0x40,0xC1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; - //expected result - u8 sha256res1[32]={0xd5,0x3c,0x1d,0xf1,0xff,0x81,0x96,0x36,0x06,0x05,0xb9,0xf1,0x7e,0xf1,0xee,0xf0,0x1b,0xbc,0xea,0x54,0x21,0xc5,0x5f,0xd9,0x56,0x1c,0x7b,0xe3,0xa4,0xa6,0xc8,0xc0}; - u8 digest[UCL_SIA256_HASHSIZE]; - ucl_sia256(digest,sha256data1,sizeof(sha256data1)); - if(memcmp(sha256res1,digest,UCL_SIA256_HASHSIZE)!=0) - { - return(UCL_ERROR); - } - return(UCL_OK); + u8 sha256data1[] = {0x05, 0xC0, 0x57, 0x52, 0x78, 0xDA, 0x49, 0x02, 0x2B, 0x6E, 0x3D, 0x40, 0x4F, 0x8F, 0xBD, 0xAE, 0x3D, 0x41, 0x55, 0x2E, 0x27, 0x56, 0xAF, 0xBB, 0x99, 0x29, 0x0A, 0x1C, 0xDF, 0xFB, 0xDD, 0xE9, 0x42, 0xFE, 0x32, 0x56, 0xD3, 0xD6, 0x7F, 0xDA, 0x1D, 0xA0, 0x4E, 0xCA, 0xBE, 0x5E, 0xFD, 0xD5, 0xCF, 0xAF, 0x7D, 0xBA, 0xA2, 0x16, 0x68, 0x34, 0xF8, 0xE8, 0x99, 0x01, 0x62, 0x8F, 0x41, 0x1F, 0x00, 0x1E, 0x22, 0x40, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + //expected result + u8 sha256res1[32] = {0xd5, 0x3c, 0x1d, 0xf1, 0xff, 0x81, 0x96, 0x36, 0x06, 0x05, 0xb9, 0xf1, 0x7e, 0xf1, 0xee, 0xf0, 0x1b, 0xbc, 0xea, 0x54, 0x21, 0xc5, 0x5f, 0xd9, 0x56, 0x1c, 0x7b, 0xe3, 0xa4, 0xa6, 0xc8, 0xc0}; + u8 digest[UCL_SIA256_HASHSIZE]; + + ucl_sia256(digest, sha256data1, sizeof(sha256data1)); + if (memcmp(sha256res1, digest, UCL_SIA256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + return(UCL_OK); } int test_sha256(void) { - // FIPS 180-2 - // "abc" l=24 - u8 sha256data1[]={0x61,0x62,0x63}; - u8 sha256res1[32]={0xba,0x78,0x16,0xbf,0x8f,0x01,0xcf,0xea,0x41,0x41,0x40,0xde,0x5d,0xae,0x22,0x23,0xb0,0x03,0x61,0xa3,0x96,0x17,0x7a,0x9c,0xb4,0x10,0xff,0x61,0xf2,0x00,0x15,0xad}; - // "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" l=448b - u8 sha256data2[]={0x61,0x62,0x63,0x64,0x62,0x63,0x64,0x65,0x63,0x64,0x65,0x66,0x64,0x65,0x66,0x67,0x65,0x66,0x67,0x68,0x66,0x67,0x68,0x69,0x67,0x68,0x69,0x6A,0x68,0x69,0x6A,0x6B,0x69,0x6A,0x6B,0x6C,0x6A,0x6B,0x6C,0x6D,0x6B,0x6C,0x6D,0x6E,0x6C,0x6D,0x6E,0x6F,0x6D,0x6E,0x6F,0x70,0x6E,0x6F,0x70,0x71}; - u8 sha256res2[32]={0x24,0x8d,0x6a,0x61,0xd2,0x06,0x38,0xb8,0xe5,0xc0,0x26,0x93,0x0c,0x3e,0x60,0x39,0xa3,0x3c,0xe4,0x59,0x64,0xff,0x21,0x67,0xf6,0xec,0xed,0xd4,0x19,0xdb,0x06,0xc1}; - - //data=1 million "a" 1 million 61 - u8 sha256res3[]={0xcd,0xc7,0x6e,0x5c,0x99,0x14,0xfb,0x92,0x81,0xa1,0xc7,0xe2,0x84,0xd7,0x3e,0x67,0xf1,0x80,0x9a,0x48,0xa4,0x97,0x20,0x0e,0x04,0x6d,0x39,0xcc,0xc7,0x11,0x2c,0xd0}; - int i; - u8 million[1000]; - ucl_sha256_ctx_t ctxt; - int err; - u8 digest[UCL_SHA256_HASHSIZE]; - err=ucl_sha256(digest,sha256data1,sizeof(sha256data1)); - if(err!=UCL_OK) - return(UCL_ERROR); - if(memcmp(digest,sha256res1,UCL_SHA256_HASHSIZE)!=0) - return(UCL_ERROR); - err=ucl_sha256(digest,sha256data2,sizeof(sha256data2)); - if(err!=UCL_OK) - return(UCL_ERROR); - if(memcmp(digest,sha256res2,UCL_SHA256_HASHSIZE)!=0) - return(UCL_ERROR); - for(i=0;i<(int)sizeof(million);i++) - million[i]='a'; - - ucl_sha256_init(&ctxt); - for(i=0;i<1000000/(int)sizeof(million);i++) - ucl_sha256_core(&ctxt,million,sizeof(million)); - ucl_sha256_finish(digest,&ctxt); - if(memcmp(digest,sha256res3,UCL_SHA256_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha256(digest,million,128); - return(UCL_OK); + // FIPS 180-2 + // "abc" l = 24 + u8 sha256data1[] = {0x61, 0x62, 0x63}; + u8 sha256res1[32] = {0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea, 0x41, 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23, 0xb0, 0x03, 0x61, 0xa3, 0x96, 0x17, 0x7a, 0x9c, 0xb4, 0x10, 0xff, 0x61, 0xf2, 0x00, 0x15, 0xad}; + // "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" l = 448b + u8 sha256data2[] = {0x61, 0x62, 0x63, 0x64, 0x62, 0x63, 0x64, 0x65, 0x63, 0x64, 0x65, 0x66, 0x64, 0x65, 0x66, 0x67, 0x65, 0x66, 0x67, 0x68, 0x66, 0x67, 0x68, 0x69, 0x67, 0x68, 0x69, 0x6A, 0x68, 0x69, 0x6A, 0x6B, 0x69, 0x6A, 0x6B, 0x6C, 0x6A, 0x6B, 0x6C, 0x6D, 0x6B, 0x6C, 0x6D, 0x6E, 0x6C, 0x6D, 0x6E, 0x6F, 0x6D, 0x6E, 0x6F, 0x70, 0x6E, 0x6F, 0x70, 0x71}; + u8 sha256res2[32] = {0x24, 0x8d, 0x6a, 0x61, 0xd2, 0x06, 0x38, 0xb8, 0xe5, 0xc0, 0x26, 0x93, 0x0c, 0x3e, 0x60, 0x39, 0xa3, 0x3c, 0xe4, 0x59, 0x64, 0xff, 0x21, 0x67, 0xf6, 0xec, 0xed, 0xd4, 0x19, 0xdb, 0x06, 0xc1}; + + //data = 1 million "a" 1 million 61 + u8 sha256res3[] = {0xcd, 0xc7, 0x6e, 0x5c, 0x99, 0x14, 0xfb, 0x92, 0x81, 0xa1, 0xc7, 0xe2, 0x84, 0xd7, 0x3e, 0x67, 0xf1, 0x80, 0x9a, 0x48, 0xa4, 0x97, 0x20, 0x0e, 0x04, 0x6d, 0x39, 0xcc, 0xc7, 0x11, 0x2c, 0xd0}; + int i; + u8 million[1000]; + ucl_sha256_ctx_t ctxt; + int err; + u8 digest[UCL_SHA256_HASHSIZE]; + + err = ucl_sha256(digest, sha256data1, sizeof(sha256data1)); + if (err != UCL_OK) { + return(UCL_ERROR); + } + + if (memcmp(digest, sha256res1, UCL_SHA256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + err = ucl_sha256(digest, sha256data2, sizeof(sha256data2)); + if (err != UCL_OK) { + return(UCL_ERROR); + } + + if (memcmp(digest, sha256res2, UCL_SHA256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < (int)sizeof(million); i++) { + million[i] = 'a'; + } + + ucl_sha256_init(&ctxt); + for (i = 0; i < 1000000/(int)sizeof(million); i++) { + ucl_sha256_core(&ctxt, million, sizeof(million)); + } + + ucl_sha256_finish(digest, &ctxt); + if (memcmp(digest, sha256res3, UCL_SHA256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha256(digest, million, 128); + + return(UCL_OK); } int test_sha3(void) { - u8 abc[]={0x61,0x62,0x63}; - u8 sha3_abc_224[]={0xe6,0x42,0x82,0x4c,0x3f,0x8c,0xf2,0x4a,0xd0,0x92,0x34,0xee,0x7d,0x3c,0x76,0x6f,0xc9,0xa3,0xa5,0x16,0x8d,0x0c,0x94,0xad,0x73,0xb4,0x6f,0xdf}; - u8 sha3_abc_256[]={0x3a,0x98,0x5d,0xa7,0x4f,0xe2,0x25,0xb2,0x04,0x5c,0x17,0x2d,0x6b,0xd3,0x90,0xbd,0x85,0x5f,0x08,0x6e,0x3e,0x9d,0x52,0x5b,0x46,0xbf,0xe2,0x45,0x11,0x43,0x15,0x32}; - u8 sha3_abc_384[]={0xec,0x01,0x49,0x82,0x88,0x51,0x6f,0xc9,0x26,0x45,0x9f,0x58,0xe2,0xc6,0xad,0x8d,0xf9,0xb4,0x73,0xcb,0x0f,0xc0,0x8c,0x25,0x96,0xda,0x7c,0xf0,0xe4,0x9b,0xe4,0xb2,0x98,0xd8,0x8c,0xea,0x92,0x7a,0xc7,0xf5,0x39,0xf1,0xed,0xf2,0x28,0x37,0x6d,0x25}; - u8 sha3_abc_512[]={0xb7,0x51,0x85,0x0b,0x1a,0x57,0x16,0x8a,0x56,0x93,0xcd,0x92,0x4b,0x6b,0x09,0x6e,0x08,0xf6,0x21,0x82,0x74,0x44,0xf7,0x0d,0x88,0x4f,0x5d,0x02,0x40,0xd2,0x71,0x2e,0x10,0xe1,0x16,0xe9,0x19,0x2a,0xf3,0xc9,0x1a,0x7e,0xc5,0x76,0x47,0xe3,0x93,0x40,0x57,0x34,0x0b,0x4c,0xf4,0x08,0xd5,0xa5,0x65,0x92,0xf8,0x27,0x4e,0xec,0x53,0xf0}; - // "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" l=448b - u8 abcopq[]={0x61,0x62,0x63,0x64,0x62,0x63,0x64,0x65,0x63,0x64,0x65,0x66,0x64,0x65,0x66,0x67,0x65,0x66,0x67,0x68,0x66,0x67,0x68,0x69,0x67,0x68,0x69,0x6A,0x68,0x69,0x6A,0x6B,0x69,0x6A,0x6B,0x6C,0x6A,0x6B,0x6C,0x6D,0x6B,0x6C,0x6D,0x6E,0x6C,0x6D,0x6E,0x6F,0x6D,0x6E,0x6F,0x70,0x6E,0x6F,0x70,0x71}; - u8 sha3_abcopq_224[]={0x8a,0x24,0x10,0x8b,0x15,0x4a,0xda,0x21,0xc9,0xfd,0x55,0x74,0x49,0x44,0x79,0xba,0x5c,0x7e,0x7a,0xb7,0x6e,0xf2,0x64,0xea,0xd0,0xfc,0xce,0x33}; - u8 sha3_void_224[]={0x6b,0x4e,0x03,0x42,0x36,0x67,0xdb,0xb7,0x3b,0x6e,0x15,0x45,0x4f,0x0e,0xb1,0xab,0xd4,0x59,0x7f,0x9a,0x1b,0x07,0x8e,0x3f,0x5b,0x5a,0x6b,0xc7}; - u8 sha3_abcopq_256[]={0x41,0xc0,0xdb,0xa2,0xa9,0xd6,0x24,0x08,0x49,0x10,0x03,0x76,0xa8,0x23,0x5e,0x2c,0x82,0xe1,0xb9,0x99,0x8a,0x99,0x9e,0x21,0xdb,0x32,0xdd,0x97,0x49,0x6d,0x33,0x76}; - u8 sha3_void_256[]={0xa7,0xff,0xc6,0xf8,0xbf,0x1e,0xd7,0x66,0x51,0xc1,0x47,0x56,0xa0,0x61,0xd6,0x62,0xf5,0x80,0xff,0x4d,0xe4,0x3b,0x49,0xfa,0x82,0xd8,0x0a,0x4b,0x80,0xf8,0x43,0x4a}; - u8 sha3_abcopq_384[]={0x99,0x1c,0x66,0x57,0x55,0xeb,0x3a,0x4b,0x6b,0xbd,0xfb,0x75,0xc7,0x8a,0x49,0x2e,0x8c,0x56,0xa2,0x2c,0x5c,0x4d,0x7e,0x42,0x9b,0xfd,0xbc,0x32,0xb9,0xd4,0xad,0x5a,0xa0,0x4a,0x1f,0x07,0x6e,0x62,0xfe,0xa1,0x9e,0xef,0x51,0xac,0xd0,0x65,0x7c,0x22}; - u8 sha3_void_384[]={0x0c,0x63,0xa7,0x5b,0x84,0x5e,0x4f,0x7d,0x01,0x10,0x7d,0x85,0x2e,0x4c,0x24,0x85,0xc5,0x1a,0x50,0xaa,0xaa,0x94,0xfc,0x61,0x99,0x5e,0x71,0xbb,0xee,0x98,0x3a,0x2a,0xc3,0x71,0x38,0x31,0x26,0x4a,0xdb,0x47,0xfb,0x6b,0xd1,0xe0,0x58,0xd5,0xf0,0x04}; - u8 sha3_abcopq_512[]={0x04,0xa3,0x71,0xe8,0x4e,0xcf,0xb5,0xb8,0xb7,0x7c,0xb4,0x86,0x10,0xfc,0xa8,0x18,0x2d,0xd4,0x57,0xce,0x6f,0x32,0x6a,0x0f,0xd3,0xd7,0xec,0x2f,0x1e,0x91,0x63,0x6d,0xee,0x69,0x1f,0xbe,0x0c,0x98,0x53,0x02,0xba,0x1b,0x0d,0x8d,0xc7,0x8c,0x08,0x63,0x46,0xb5,0x33,0xb4,0x9c,0x03,0x0d,0x99,0xa2,0x7d,0xaf,0x11,0x39,0xd6,0xe7,0x5e}; - u8 sha3_void_512[]={0xa6,0x9f,0x73,0xcc,0xa2,0x3a,0x9a,0xc5,0xc8,0xb5,0x67,0xdc,0x18,0x5a,0x75,0x6e,0x97,0xc9,0x82,0x16,0x4f,0xe2,0x58,0x59,0xe0,0xd1,0xdc,0xc1,0x47,0x5c,0x80,0xa6,0x15,0xb2,0x12,0x3a,0xf1,0xf5,0xf9,0x4c,0x11,0xe3,0xe9,0x40,0x2c,0x3a,0xc5,0x58,0xf5,0x00,0x19,0x9d,0x95,0xb6,0xd3,0xe3,0x01,0x75,0x85,0x86,0x28,0x1d,0xcd,0x26}; - //data=1 million "a" 1 million 61 - u8 sha3_million_a_224[]={0xd6,0x93,0x35,0xb9,0x33,0x25,0x19,0x2e,0x51,0x6a,0x91,0x2e,0x6d,0x19,0xa1,0x5c,0xb5,0x1c,0x6e,0xd5,0xc1,0x52,0x43,0xe7,0xa7,0xfd,0x65,0x3c}; - u8 sha3_million_a_256[]={0x5c,0x88,0x75,0xae,0x47,0x4a,0x36,0x34,0xba,0x4f,0xd5,0x5e,0xc8,0x5b,0xff,0xd6,0x61,0xf3,0x2a,0xca,0x75,0xc6,0xd6,0x99,0xd0,0xcd,0xcb,0x6c,0x11,0x58,0x91,0xc1}; - u8 sha3_million_a_384[]={0xee,0xe9,0xe2,0x4d,0x78,0xc1,0x85,0x53,0x37,0x98,0x34,0x51,0xdf,0x97,0xc8,0xad,0x9e,0xed,0xf2,0x56,0xc6,0x33,0x4f,0x8e,0x94,0x8d,0x25,0x2d,0x5e,0x0e,0x76,0x84,0x7a,0xa0,0x77,0x4d,0xdb,0x90,0xa8,0x42,0x19,0x0d,0x2c,0x55,0x8b,0x4b,0x83,0x40}; - u8 sha3_million_a_512[]={0x3c,0x3a,0x87,0x6d,0xa1,0x40,0x34,0xab,0x60,0x62,0x7c,0x07,0x7b,0xb9,0x8f,0x7e,0x12,0x0a,0x2a,0x53,0x70,0x21,0x2d,0xff,0xb3,0x38,0x5a,0x18,0xd4,0xf3,0x88,0x59,0xed,0x31,0x1d,0x0a,0x9d,0x51,0x41,0xce,0x9c,0xc5,0xc6,0x6e,0xe6,0x89,0xb2,0x66,0xa8,0xaa,0x18,0xac,0xe8,0x28,0x2a,0x0e,0x0d,0xb5,0x96,0xc9,0x0b,0x0a,0x7b,0x87}; - - int i; - u8 digest[UCL_SHA3_512_HASHSIZE]; - u8 million[1000]; - ucl_sha3_ctx_t ctx; - int err; - - for(i=0;i<1000;i++) - million[i]='a'; - - ucl_sha3_224_init(&ctx); - err=ucl_sha3_core(&ctx,abc,3); - if(UCL_OK!=err) - return(UCL_ERROR); - err=ucl_sha3_finish(digest,&ctx); - if(UCL_OK!=err) - return(UCL_ERROR); - ucl_sha3_224(digest,abc,sizeof(abc)); - if(memcmp(digest,sha3_abc_224,UCL_SHA3_224_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_224(digest,abcopq,sizeof(abcopq)); - if(memcmp(digest,sha3_abcopq_224,UCL_SHA3_224_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_224(digest,abc,0); - if(memcmp(digest,sha3_void_224,UCL_SHA3_224_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_224_init(&ctx); - for(i=0;i<1000;i++) - ucl_sha3_core(&ctx,million,1000); - ucl_sha3_finish(digest,&ctx); - if(memcmp(digest,sha3_million_a_224,UCL_SHA3_224_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_256(digest,abc,sizeof(abc)); - if(memcmp(digest,sha3_abc_256,UCL_SHA3_256_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_256(digest,abcopq,sizeof(abcopq)); - if(memcmp(digest,sha3_abcopq_256,UCL_SHA3_256_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_256(digest,abc,0); - if(memcmp(digest,sha3_void_256,UCL_SHA3_256_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_256_init(&ctx); - for(i=0;i<1000;i++) - ucl_sha3_core(&ctx,million,1000); - ucl_sha3_finish(digest,&ctx); - if(memcmp(digest,sha3_million_a_256,UCL_SHA3_256_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_384(digest,abc,sizeof(abc)); - if(memcmp(digest,sha3_abc_384,UCL_SHA3_384_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_384(digest,abcopq,sizeof(abcopq)); - if(memcmp(digest,sha3_abcopq_384,UCL_SHA3_384_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_384(digest,abc,0); - if(memcmp(digest,sha3_void_384,UCL_SHA3_384_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_384_init(&ctx); - for(i=0;i<1000;i++) - ucl_sha3_core(&ctx,million,1000); - ucl_sha3_finish(digest,&ctx); - if(memcmp(digest,sha3_million_a_384,UCL_SHA3_384_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_512(digest,abc,sizeof(abc)); - if(memcmp(digest,sha3_abc_512,UCL_SHA3_512_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_512(digest,abcopq,sizeof(abcopq)); - if(memcmp(digest,sha3_abcopq_512,UCL_SHA3_512_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_512(digest,abc,0); - if(memcmp(digest,sha3_void_512,UCL_SHA3_512_HASHSIZE)!=0) - return(UCL_ERROR); - ucl_sha3_512_init(&ctx); - for(i=0;i<1000;i++) - ucl_sha3_core(&ctx,million,1000); - ucl_sha3_finish(digest,&ctx); - if(memcmp(digest,sha3_million_a_512,UCL_SHA3_512_HASHSIZE)!=0) - return(UCL_ERROR); - return(UCL_OK); + u8 abc[] = {0x61, 0x62, 0x63}; + u8 sha3_abc_224[] = {0xe6, 0x42, 0x82, 0x4c, 0x3f, 0x8c, 0xf2, 0x4a, 0xd0, 0x92, 0x34, 0xee, 0x7d, 0x3c, 0x76, 0x6f, 0xc9, 0xa3, 0xa5, 0x16, 0x8d, 0x0c, 0x94, 0xad, 0x73, 0xb4, 0x6f, 0xdf}; + u8 sha3_abc_256[] = {0x3a, 0x98, 0x5d, 0xa7, 0x4f, 0xe2, 0x25, 0xb2, 0x04, 0x5c, 0x17, 0x2d, 0x6b, 0xd3, 0x90, 0xbd, 0x85, 0x5f, 0x08, 0x6e, 0x3e, 0x9d, 0x52, 0x5b, 0x46, 0xbf, 0xe2, 0x45, 0x11, 0x43, 0x15, 0x32}; + u8 sha3_abc_384[] = {0xec, 0x01, 0x49, 0x82, 0x88, 0x51, 0x6f, 0xc9, 0x26, 0x45, 0x9f, 0x58, 0xe2, 0xc6, 0xad, 0x8d, 0xf9, 0xb4, 0x73, 0xcb, 0x0f, 0xc0, 0x8c, 0x25, 0x96, 0xda, 0x7c, 0xf0, 0xe4, 0x9b, 0xe4, 0xb2, 0x98, 0xd8, 0x8c, 0xea, 0x92, 0x7a, 0xc7, 0xf5, 0x39, 0xf1, 0xed, 0xf2, 0x28, 0x37, 0x6d, 0x25}; + u8 sha3_abc_512[] = {0xb7, 0x51, 0x85, 0x0b, 0x1a, 0x57, 0x16, 0x8a, 0x56, 0x93, 0xcd, 0x92, 0x4b, 0x6b, 0x09, 0x6e, 0x08, 0xf6, 0x21, 0x82, 0x74, 0x44, 0xf7, 0x0d, 0x88, 0x4f, 0x5d, 0x02, 0x40, 0xd2, 0x71, 0x2e, 0x10, 0xe1, 0x16, 0xe9, 0x19, 0x2a, 0xf3, 0xc9, 0x1a, 0x7e, 0xc5, 0x76, 0x47, 0xe3, 0x93, 0x40, 0x57, 0x34, 0x0b, 0x4c, 0xf4, 0x08, 0xd5, 0xa5, 0x65, 0x92, 0xf8, 0x27, 0x4e, 0xec, 0x53, 0xf0}; + // "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" l = 448b + u8 abcopq[] = {0x61, 0x62, 0x63, 0x64, 0x62, 0x63, 0x64, 0x65, 0x63, 0x64, 0x65, 0x66, 0x64, 0x65, 0x66, 0x67, 0x65, 0x66, 0x67, 0x68, 0x66, 0x67, 0x68, 0x69, 0x67, 0x68, 0x69, 0x6A, 0x68, 0x69, 0x6A, 0x6B, 0x69, 0x6A, 0x6B, 0x6C, 0x6A, 0x6B, 0x6C, 0x6D, 0x6B, 0x6C, 0x6D, 0x6E, 0x6C, 0x6D, 0x6E, 0x6F, 0x6D, 0x6E, 0x6F, 0x70, 0x6E, 0x6F, 0x70, 0x71}; + u8 sha3_abcopq_224[] = {0x8a, 0x24, 0x10, 0x8b, 0x15, 0x4a, 0xda, 0x21, 0xc9, 0xfd, 0x55, 0x74, 0x49, 0x44, 0x79, 0xba, 0x5c, 0x7e, 0x7a, 0xb7, 0x6e, 0xf2, 0x64, 0xea, 0xd0, 0xfc, 0xce, 0x33}; + u8 sha3_void_224[] = {0x6b, 0x4e, 0x03, 0x42, 0x36, 0x67, 0xdb, 0xb7, 0x3b, 0x6e, 0x15, 0x45, 0x4f, 0x0e, 0xb1, 0xab, 0xd4, 0x59, 0x7f, 0x9a, 0x1b, 0x07, 0x8e, 0x3f, 0x5b, 0x5a, 0x6b, 0xc7}; + u8 sha3_abcopq_256[] = {0x41, 0xc0, 0xdb, 0xa2, 0xa9, 0xd6, 0x24, 0x08, 0x49, 0x10, 0x03, 0x76, 0xa8, 0x23, 0x5e, 0x2c, 0x82, 0xe1, 0xb9, 0x99, 0x8a, 0x99, 0x9e, 0x21, 0xdb, 0x32, 0xdd, 0x97, 0x49, 0x6d, 0x33, 0x76}; + u8 sha3_void_256[] = {0xa7, 0xff, 0xc6, 0xf8, 0xbf, 0x1e, 0xd7, 0x66, 0x51, 0xc1, 0x47, 0x56, 0xa0, 0x61, 0xd6, 0x62, 0xf5, 0x80, 0xff, 0x4d, 0xe4, 0x3b, 0x49, 0xfa, 0x82, 0xd8, 0x0a, 0x4b, 0x80, 0xf8, 0x43, 0x4a}; + u8 sha3_abcopq_384[] = {0x99, 0x1c, 0x66, 0x57, 0x55, 0xeb, 0x3a, 0x4b, 0x6b, 0xbd, 0xfb, 0x75, 0xc7, 0x8a, 0x49, 0x2e, 0x8c, 0x56, 0xa2, 0x2c, 0x5c, 0x4d, 0x7e, 0x42, 0x9b, 0xfd, 0xbc, 0x32, 0xb9, 0xd4, 0xad, 0x5a, 0xa0, 0x4a, 0x1f, 0x07, 0x6e, 0x62, 0xfe, 0xa1, 0x9e, 0xef, 0x51, 0xac, 0xd0, 0x65, 0x7c, 0x22}; + u8 sha3_void_384[] = {0x0c, 0x63, 0xa7, 0x5b, 0x84, 0x5e, 0x4f, 0x7d, 0x01, 0x10, 0x7d, 0x85, 0x2e, 0x4c, 0x24, 0x85, 0xc5, 0x1a, 0x50, 0xaa, 0xaa, 0x94, 0xfc, 0x61, 0x99, 0x5e, 0x71, 0xbb, 0xee, 0x98, 0x3a, 0x2a, 0xc3, 0x71, 0x38, 0x31, 0x26, 0x4a, 0xdb, 0x47, 0xfb, 0x6b, 0xd1, 0xe0, 0x58, 0xd5, 0xf0, 0x04}; + u8 sha3_abcopq_512[] = {0x04, 0xa3, 0x71, 0xe8, 0x4e, 0xcf, 0xb5, 0xb8, 0xb7, 0x7c, 0xb4, 0x86, 0x10, 0xfc, 0xa8, 0x18, 0x2d, 0xd4, 0x57, 0xce, 0x6f, 0x32, 0x6a, 0x0f, 0xd3, 0xd7, 0xec, 0x2f, 0x1e, 0x91, 0x63, 0x6d, 0xee, 0x69, 0x1f, 0xbe, 0x0c, 0x98, 0x53, 0x02, 0xba, 0x1b, 0x0d, 0x8d, 0xc7, 0x8c, 0x08, 0x63, 0x46, 0xb5, 0x33, 0xb4, 0x9c, 0x03, 0x0d, 0x99, 0xa2, 0x7d, 0xaf, 0x11, 0x39, 0xd6, 0xe7, 0x5e}; + u8 sha3_void_512[] = {0xa6, 0x9f, 0x73, 0xcc, 0xa2, 0x3a, 0x9a, 0xc5, 0xc8, 0xb5, 0x67, 0xdc, 0x18, 0x5a, 0x75, 0x6e, 0x97, 0xc9, 0x82, 0x16, 0x4f, 0xe2, 0x58, 0x59, 0xe0, 0xd1, 0xdc, 0xc1, 0x47, 0x5c, 0x80, 0xa6, 0x15, 0xb2, 0x12, 0x3a, 0xf1, 0xf5, 0xf9, 0x4c, 0x11, 0xe3, 0xe9, 0x40, 0x2c, 0x3a, 0xc5, 0x58, 0xf5, 0x00, 0x19, 0x9d, 0x95, 0xb6, 0xd3, 0xe3, 0x01, 0x75, 0x85, 0x86, 0x28, 0x1d, 0xcd, 0x26}; + //data = 1 million "a" 1 million 61 + u8 sha3_million_a_224[] = {0xd6, 0x93, 0x35, 0xb9, 0x33, 0x25, 0x19, 0x2e, 0x51, 0x6a, 0x91, 0x2e, 0x6d, 0x19, 0xa1, 0x5c, 0xb5, 0x1c, 0x6e, 0xd5, 0xc1, 0x52, 0x43, 0xe7, 0xa7, 0xfd, 0x65, 0x3c}; + u8 sha3_million_a_256[] = {0x5c, 0x88, 0x75, 0xae, 0x47, 0x4a, 0x36, 0x34, 0xba, 0x4f, 0xd5, 0x5e, 0xc8, 0x5b, 0xff, 0xd6, 0x61, 0xf3, 0x2a, 0xca, 0x75, 0xc6, 0xd6, 0x99, 0xd0, 0xcd, 0xcb, 0x6c, 0x11, 0x58, 0x91, 0xc1}; + u8 sha3_million_a_384[] = {0xee, 0xe9, 0xe2, 0x4d, 0x78, 0xc1, 0x85, 0x53, 0x37, 0x98, 0x34, 0x51, 0xdf, 0x97, 0xc8, 0xad, 0x9e, 0xed, 0xf2, 0x56, 0xc6, 0x33, 0x4f, 0x8e, 0x94, 0x8d, 0x25, 0x2d, 0x5e, 0x0e, 0x76, 0x84, 0x7a, 0xa0, 0x77, 0x4d, 0xdb, 0x90, 0xa8, 0x42, 0x19, 0x0d, 0x2c, 0x55, 0x8b, 0x4b, 0x83, 0x40}; + u8 sha3_million_a_512[] = {0x3c, 0x3a, 0x87, 0x6d, 0xa1, 0x40, 0x34, 0xab, 0x60, 0x62, 0x7c, 0x07, 0x7b, 0xb9, 0x8f, 0x7e, 0x12, 0x0a, 0x2a, 0x53, 0x70, 0x21, 0x2d, 0xff, 0xb3, 0x38, 0x5a, 0x18, 0xd4, 0xf3, 0x88, 0x59, 0xed, 0x31, 0x1d, 0x0a, 0x9d, 0x51, 0x41, 0xce, 0x9c, 0xc5, 0xc6, 0x6e, 0xe6, 0x89, 0xb2, 0x66, 0xa8, 0xaa, 0x18, 0xac, 0xe8, 0x28, 0x2a, 0x0e, 0x0d, 0xb5, 0x96, 0xc9, 0x0b, 0x0a, 0x7b, 0x87}; + + int i; + u8 digest[UCL_SHA3_512_HASHSIZE]; + u8 million[1000]; + ucl_sha3_ctx_t ctx; + int err; + + for (i = 0; i < 1000; i++) { + million[i] = 'a'; + } + + ucl_sha3_224_init(&ctx); + err = ucl_sha3_core(&ctx, abc, 3); + if (UCL_OK != err) { + return(UCL_ERROR); + } + + err = ucl_sha3_finish(digest, &ctx); + if (UCL_OK != err) { + return(UCL_ERROR); + } + + ucl_sha3_224(digest, abc, sizeof(abc)); + if (memcmp(digest, sha3_abc_224, UCL_SHA3_224_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_224(digest, abcopq, sizeof(abcopq)); + if (memcmp(digest, sha3_abcopq_224, UCL_SHA3_224_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_224(digest, abc, 0); + if (memcmp(digest, sha3_void_224, UCL_SHA3_224_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_224_init(&ctx); + for (i = 0; i < 1000; i++) { + ucl_sha3_core(&ctx, million, 1000); + } + + ucl_sha3_finish(digest, &ctx); + if (memcmp(digest, sha3_million_a_224, UCL_SHA3_224_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_256(digest, abc, sizeof(abc)); + if (memcmp(digest, sha3_abc_256, UCL_SHA3_256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_256(digest, abcopq, sizeof(abcopq)); + if (memcmp(digest, sha3_abcopq_256, UCL_SHA3_256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_256(digest, abc, 0); + if (memcmp(digest, sha3_void_256, UCL_SHA3_256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_256_init(&ctx); + for (i = 0; i < 1000; i++) { + ucl_sha3_core(&ctx, million, 1000); + } + + ucl_sha3_finish(digest, &ctx); + if (memcmp(digest, sha3_million_a_256, UCL_SHA3_256_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_384(digest, abc, sizeof(abc)); + if (memcmp(digest, sha3_abc_384, UCL_SHA3_384_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_384(digest, abcopq, sizeof(abcopq)); + if (memcmp(digest, sha3_abcopq_384, UCL_SHA3_384_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_384(digest, abc, 0); + if (memcmp(digest, sha3_void_384, UCL_SHA3_384_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_384_init(&ctx); + for (i = 0; i < 1000; i++) { + ucl_sha3_core(&ctx, million, 1000); + } + + ucl_sha3_finish(digest, &ctx); + if (memcmp(digest, sha3_million_a_384, UCL_SHA3_384_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_512(digest, abc, sizeof(abc)); + if (memcmp(digest, sha3_abc_512, UCL_SHA3_512_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_512(digest, abcopq, sizeof(abcopq)); + if (memcmp(digest, sha3_abcopq_512, UCL_SHA3_512_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + ucl_sha3_512(digest, abc, 0); + if (memcmp(digest, sha3_void_512, UCL_SHA3_512_HASHSIZE) != 0) { + return(UCL_ERROR); + } + ucl_sha3_512_init(&ctx); + for (i = 0; i < 1000; i++) { + ucl_sha3_core(&ctx, million, 1000); + } + + ucl_sha3_finish(digest, &ctx); + if (memcmp(digest, sha3_million_a_512, UCL_SHA3_512_HASHSIZE) != 0) { + return(UCL_ERROR); + } + + return(UCL_OK); } int test_sha384(void) { - /* -SHA-384 Test Data -#1) 0 byte (null message) -38b060a751ac9638 4cd9327eb1b1e36a 21fdb71114be0743 4c0cc7bf63f6e1da -274edebfe76f65fb d51ad2f14898b95b -#2) 111 bytes of zeros -435770712c611be7 293a66dd0dc8d145 0dc7ff7337bfe115 bf058ef2eb9bed09 -cee85c26963a5bcc 0905dc2df7cc6a76 -#3) 112 bytes of zeros -3e0cbf3aee0e3aa7 0415beae1bd12dd7 db821efa446440f1 2132edffce76f635 -e53526a111491e75 ee8e27b9700eec20 -#4) 113 bytes of zeros -6be9af2cf3cd5dd1 2c8d9399ec2b34e6 6034fbd699d4e022 1d39074172a38065 -6089caafe8f39963 f94cc7c0a07e3d21 -#5) 122 bytes of zeros -12a72ae4972776b0 db7d73d160a15ef0 d19645ec96c7f816 411ab780c794aa49 -6a22909d941fe671 ed3f3caee900bdd5 -#6) 1000 bytes of zeros -aae017d4ae5b6346 dd60a19d52130fb5 5194b6327dd40b89 c11efc8222292de8 -1e1a23c9b59f9f58 b7f6ad463fa108ca -#7) 1000 bytes of 0x41 'A' -7df01148677b7f18 617eee3a23104f0e ed6bb8c90a6046f7 15c9445ff43c30d6 -9e9e7082de39c345 2fd1d3afd9ba0689 -#8) 1005 bytes of 0x55 'U' -1bb8e256da4a0d1e 87453528254f223b 4cb7e49c4420dbfa 766bba4adba44eec -a392ff6a9f565bc3 47158cc970ce44ec -#9) 1000000 bytes of zeros -8a1979f9049b3fff 15ea3a43a4cf84c6 34fd14acad1c333f ecb72c588b68868b -66a994386dc0cd16 87b9ee2e34983b81 -#10) 0x20000000 (536870912) bytes of 0x5a 'Z' -18aded227cc6b562 cc7fb259e8f40454 9e52914531aa1c5d 85167897c779cc4b -25d0425fd1590e40 bd763ec3f4311c1a -#11) 0x41000000 (1090519040) bytes of zeros -83ab05ca483abe3f aa597ad524d31291 ae827c5be2b3efcb 6391bfed31ccd937 -b6135e0378c6c7f5 98857a7c516f207a -#12) 0x6000003e (1610612798) bytes of 0x42 'B' -cf852304f8d80209 351b37ce69ca7dcf 34972b4edb781702 8ec55ab67ad3bc96 -eecb8241734258a8 5d2afce65d4571e2 - */ - int i; - ucl_sha384_ctx_t ctx; - u8 e[UCL_SHA384_HASHSIZE]; - u8 tab[1005]; - u8 digest_void[]={0x38,0xb0,0x60,0xa7,0x51,0xac,0x96,0x38,0x4c,0xd9,0x32,0x7e,0xb1,0xb1,0xe3,0x6a,0x21,0xfd,0xb7,0x11,0x14,0xbe,0x07,0x43,0x4c,0x0c,0xc7,0xbf,0x63,0xf6,0xe1,0xda,0x27,0x4e,0xde,0xbf,0xe7,0x6f,0x65,0xfb,0xd5,0x1a,0xd2,0xf1,0x48,0x98,0xb9,0x5b}; - u8 digest_1110[]={0x43,0x57,0x70,0x71,0x2c,0x61,0x1b,0xe7,0x29,0x3a,0x66,0xdd,0x0d,0xc8,0xd1,0x45,0x0d,0xc7,0xff,0x73,0x37,0xbf,0xe1,0x15,0xbf,0x05,0x8e,0xf2,0xeb,0x9b,0xed,0x09,0xce,0xe8,0x5c,0x26,0x96,0x3a,0x5b,0xcc,0x09,0x05,0xdc,0x2d,0xf7,0xcc,0x6a,0x76}; - u8 digest_1120[]={0x3e,0x0c,0xbf,0x3a,0xee,0x0e,0x3a,0xa7,0x04,0x15,0xbe,0xae,0x1b,0xd1,0x2d,0xd7,0xdb,0x82,0x1e,0xfa,0x44,0x64,0x40,0xf1,0x21,0x32,0xed,0xff,0xce,0x76,0xf6,0x35,0xe5,0x35,0x26,0xa1,0x11,0x49,0x1e,0x75,0xee,0x8e,0x27,0xb9,0x70,0x0e,0xec,0x20}; - u8 digest_1130[]={0x6b,0xe9,0xaf,0x2c,0xf3,0xcd,0x5d,0xd1,0x2c,0x8d,0x93,0x99,0xec,0x2b,0x34,0xe6,0x60,0x34,0xfb,0xd6,0x99,0xd4,0xe0,0x22,0x1d,0x39,0x07,0x41,0x72,0xa3,0x80,0x65,0x60,0x89,0xca,0xaf,0xe8,0xf3,0x99,0x63,0xf9,0x4c,0xc7,0xc0,0xa0,0x7e,0x3d,0x21}; - u8 digest_1220[]={0x12,0xa7,0x2a,0xe4,0x97,0x27,0x76,0xb0,0xdb,0x7d,0x73,0xd1,0x60,0xa1,0x5e,0xf0,0xd1,0x96,0x45,0xec,0x96,0xc7,0xf8,0x16,0x41,0x1a,0xb7,0x80,0xc7,0x94,0xaa,0x49,0x6a,0x22,0x90,0x9d,0x94,0x1f,0xe6,0x71,0xed,0x3f,0x3c,0xae,0xe9,0x00,0xbd,0xd5}; - u8 digest_10000[]={0xaa,0xe0,0x17,0xd4,0xae,0x5b,0x63,0x46,0xdd,0x60,0xa1,0x9d,0x52,0x13,0x0f,0xb5,0x51,0x94,0xb6,0x32,0x7d,0xd4,0x0b,0x89,0xc1,0x1e,0xfc,0x82,0x22,0x29,0x2d,0xe8,0x1e,0x1a,0x23,0xc9,0xb5,0x9f,0x9f,0x58,0xb7,0xf6,0xad,0x46,0x3f,0xa1,0x08,0xca}; - u8 digest_1000A[]={0x7d,0xf0,0x11,0x48,0x67,0x7b,0x7f,0x18,0x61,0x7e,0xee,0x3a,0x23,0x10,0x4f,0x0e,0xed,0x6b,0xb8,0xc9,0x0a,0x60,0x46,0xf7,0x15,0xc9,0x44,0x5f,0xf4,0x3c,0x30,0xd6,0x9e,0x9e,0x70,0x82,0xde,0x39,0xc3,0x45,0x2f,0xd1,0xd3,0xaf,0xd9,0xba,0x06,0x89}; - u8 digest_1005U[]={0x1b,0xb8,0xe2,0x56,0xda,0x4a,0x0d,0x1e,0x87,0x45,0x35,0x28,0x25,0x4f,0x22,0x3b,0x4c,0xb7,0xe4,0x9c,0x44,0x20,0xdb,0xfa,0x76,0x6b,0xba,0x4a,0xdb,0xa4,0x4e,0xec,0xa3,0x92,0xff,0x6a,0x9f,0x56,0x5b,0xc3,0x47,0x15,0x8c,0xc9,0x70,0xce,0x44,0xec}; - u8 digest_1mil0[]={0x8a,0x19,0x79,0xf9,0x04,0x9b,0x3f,0xff,0x15,0xea,0x3a,0x43,0xa4,0xcf,0x84,0xc6,0x34,0xfd,0x14,0xac,0xad,0x1c,0x33,0x3f,0xec,0xb7,0x2c,0x58,0x8b,0x68,0x86,0x8b,0x66,0xa9,0x94,0x38,0x6d,0xc0,0xcd,0x16,0x87,0xb9,0xee,0x2e,0x34,0x98,0x3b,0x81}; - u8 digest_536Z[]={0x18,0xad,0xed,0x22,0x7c,0xc6,0xb5,0x62,0xcc,0x7f,0xb2,0x59,0xe8,0xf4,0x04,0x54,0x9e,0x52,0x91,0x45,0x31,0xaa,0x1c,0x5d,0x85,0x16,0x78,0x97,0xc7,0x79,0xcc,0x4b,0x25,0xd0,0x42,0x5f,0xd1,0x59,0x0e,0x40,0xbd,0x76,0x3e,0xc3,0xf4,0x31,0x1c,0x1a}; - u8 digest_1090[]={0x83,0xab,0x05,0xca,0x48,0x3a,0xbe,0x3f,0xaa,0x59,0x7a,0xd5,0x24,0xd3,0x12,0x91,0xae,0x82,0x7c,0x5b,0xe2,0xb3,0xef,0xcb,0x63,0x91,0xbf,0xed,0x31,0xcc,0xd9,0x37,0xb6,0x13,0x5e,0x03,0x78,0xc6,0xc7,0xf5,0x98,0x85,0x7a,0x7c,0x51,0x6f,0x20,0x7a}; + /* + SHA-384 Test Data + #1) 0 byte (null message) + 38b060a751ac9638 4cd9327eb1b1e36a 21fdb71114be0743 4c0cc7bf63f6e1da + 274edebfe76f65fb d51ad2f14898b95b + #2) 111 bytes of zeros + 435770712c611be7 293a66dd0dc8d145 0dc7ff7337bfe115 bf058ef2eb9bed09 + cee85c26963a5bcc 0905dc2df7cc6a76 + #3) 112 bytes of zeros + 3e0cbf3aee0e3aa7 0415beae1bd12dd7 db821efa446440f1 2132edffce76f635 + e53526a111491e75 ee8e27b9700eec20 + #4) 113 bytes of zeros + 6be9af2cf3cd5dd1 2c8d9399ec2b34e6 6034fbd699d4e022 1d39074172a38065 + 6089caafe8f39963 f94cc7c0a07e3d21 + #5) 122 bytes of zeros + 12a72ae4972776b0 db7d73d160a15ef0 d19645ec96c7f816 411ab780c794aa49 + 6a22909d941fe671 ed3f3caee900bdd5 + #6) 1000 bytes of zeros + aae017d4ae5b6346 dd60a19d52130fb5 5194b6327dd40b89 c11efc8222292de8 + 1e1a23c9b59f9f58 b7f6ad463fa108ca + #7) 1000 bytes of 0x41 'A' + 7df01148677b7f18 617eee3a23104f0e ed6bb8c90a6046f7 15c9445ff43c30d6 + 9e9e7082de39c345 2fd1d3afd9ba0689 + #8) 1005 bytes of 0x55 'U' + 1bb8e256da4a0d1e 87453528254f223b 4cb7e49c4420dbfa 766bba4adba44eec + a392ff6a9f565bc3 47158cc970ce44ec + #9) 1000000 bytes of zeros + 8a1979f9049b3fff 15ea3a43a4cf84c6 34fd14acad1c333f ecb72c588b68868b + 66a994386dc0cd16 87b9ee2e34983b81 + #10) 0x20000000 (536870912) bytes of 0x5a 'Z' + 18aded227cc6b562 cc7fb259e8f40454 9e52914531aa1c5d 85167897c779cc4b + 25d0425fd1590e40 bd763ec3f4311c1a + #11) 0x41000000 (1090519040) bytes of zeros + 83ab05ca483abe3f aa597ad524d31291 ae827c5be2b3efcb 6391bfed31ccd937 + b6135e0378c6c7f5 98857a7c516f207a + #12) 0x6000003e (1610612798) bytes of 0x42 'B' + cf852304f8d80209 351b37ce69ca7dcf 34972b4edb781702 8ec55ab67ad3bc96 + eecb8241734258a8 5d2afce65d4571e2 + */ + int i; + ucl_sha384_ctx_t ctx; + u8 e[UCL_SHA384_HASHSIZE]; + u8 tab[1005]; + u8 digest_void[] = {0x38, 0xb0, 0x60, 0xa7, 0x51, 0xac, 0x96, 0x38, 0x4c, 0xd9, 0x32, 0x7e, 0xb1, 0xb1, 0xe3, 0x6a, 0x21, 0xfd, 0xb7, 0x11, 0x14, 0xbe, 0x07, 0x43, 0x4c, 0x0c, 0xc7, 0xbf, 0x63, 0xf6, 0xe1, 0xda, 0x27, 0x4e, 0xde, 0xbf, 0xe7, 0x6f, 0x65, 0xfb, 0xd5, 0x1a, 0xd2, 0xf1, 0x48, 0x98, 0xb9, 0x5b}; + u8 digest_1110[] = {0x43, 0x57, 0x70, 0x71, 0x2c, 0x61, 0x1b, 0xe7, 0x29, 0x3a, 0x66, 0xdd, 0x0d, 0xc8, 0xd1, 0x45, 0x0d, 0xc7, 0xff, 0x73, 0x37, 0xbf, 0xe1, 0x15, 0xbf, 0x05, 0x8e, 0xf2, 0xeb, 0x9b, 0xed, 0x09, 0xce, 0xe8, 0x5c, 0x26, 0x96, 0x3a, 0x5b, 0xcc, 0x09, 0x05, 0xdc, 0x2d, 0xf7, 0xcc, 0x6a, 0x76}; + u8 digest_1120[] = {0x3e, 0x0c, 0xbf, 0x3a, 0xee, 0x0e, 0x3a, 0xa7, 0x04, 0x15, 0xbe, 0xae, 0x1b, 0xd1, 0x2d, 0xd7, 0xdb, 0x82, 0x1e, 0xfa, 0x44, 0x64, 0x40, 0xf1, 0x21, 0x32, 0xed, 0xff, 0xce, 0x76, 0xf6, 0x35, 0xe5, 0x35, 0x26, 0xa1, 0x11, 0x49, 0x1e, 0x75, 0xee, 0x8e, 0x27, 0xb9, 0x70, 0x0e, 0xec, 0x20}; + u8 digest_1130[] = {0x6b, 0xe9, 0xaf, 0x2c, 0xf3, 0xcd, 0x5d, 0xd1, 0x2c, 0x8d, 0x93, 0x99, 0xec, 0x2b, 0x34, 0xe6, 0x60, 0x34, 0xfb, 0xd6, 0x99, 0xd4, 0xe0, 0x22, 0x1d, 0x39, 0x07, 0x41, 0x72, 0xa3, 0x80, 0x65, 0x60, 0x89, 0xca, 0xaf, 0xe8, 0xf3, 0x99, 0x63, 0xf9, 0x4c, 0xc7, 0xc0, 0xa0, 0x7e, 0x3d, 0x21}; + u8 digest_1220[] = {0x12, 0xa7, 0x2a, 0xe4, 0x97, 0x27, 0x76, 0xb0, 0xdb, 0x7d, 0x73, 0xd1, 0x60, 0xa1, 0x5e, 0xf0, 0xd1, 0x96, 0x45, 0xec, 0x96, 0xc7, 0xf8, 0x16, 0x41, 0x1a, 0xb7, 0x80, 0xc7, 0x94, 0xaa, 0x49, 0x6a, 0x22, 0x90, 0x9d, 0x94, 0x1f, 0xe6, 0x71, 0xed, 0x3f, 0x3c, 0xae, 0xe9, 0x00, 0xbd, 0xd5}; + u8 digest_10000[] = {0xaa, 0xe0, 0x17, 0xd4, 0xae, 0x5b, 0x63, 0x46, 0xdd, 0x60, 0xa1, 0x9d, 0x52, 0x13, 0x0f, 0xb5, 0x51, 0x94, 0xb6, 0x32, 0x7d, 0xd4, 0x0b, 0x89, 0xc1, 0x1e, 0xfc, 0x82, 0x22, 0x29, 0x2d, 0xe8, 0x1e, 0x1a, 0x23, 0xc9, 0xb5, 0x9f, 0x9f, 0x58, 0xb7, 0xf6, 0xad, 0x46, 0x3f, 0xa1, 0x08, 0xca}; + u8 digest_1000A[] = {0x7d, 0xf0, 0x11, 0x48, 0x67, 0x7b, 0x7f, 0x18, 0x61, 0x7e, 0xee, 0x3a, 0x23, 0x10, 0x4f, 0x0e, 0xed, 0x6b, 0xb8, 0xc9, 0x0a, 0x60, 0x46, 0xf7, 0x15, 0xc9, 0x44, 0x5f, 0xf4, 0x3c, 0x30, 0xd6, 0x9e, 0x9e, 0x70, 0x82, 0xde, 0x39, 0xc3, 0x45, 0x2f, 0xd1, 0xd3, 0xaf, 0xd9, 0xba, 0x06, 0x89}; + u8 digest_1005U[] = {0x1b, 0xb8, 0xe2, 0x56, 0xda, 0x4a, 0x0d, 0x1e, 0x87, 0x45, 0x35, 0x28, 0x25, 0x4f, 0x22, 0x3b, 0x4c, 0xb7, 0xe4, 0x9c, 0x44, 0x20, 0xdb, 0xfa, 0x76, 0x6b, 0xba, 0x4a, 0xdb, 0xa4, 0x4e, 0xec, 0xa3, 0x92, 0xff, 0x6a, 0x9f, 0x56, 0x5b, 0xc3, 0x47, 0x15, 0x8c, 0xc9, 0x70, 0xce, 0x44, 0xec}; + u8 digest_1mil0[] = {0x8a, 0x19, 0x79, 0xf9, 0x04, 0x9b, 0x3f, 0xff, 0x15, 0xea, 0x3a, 0x43, 0xa4, 0xcf, 0x84, 0xc6, 0x34, 0xfd, 0x14, 0xac, 0xad, 0x1c, 0x33, 0x3f, 0xec, 0xb7, 0x2c, 0x58, 0x8b, 0x68, 0x86, 0x8b, 0x66, 0xa9, 0x94, 0x38, 0x6d, 0xc0, 0xcd, 0x16, 0x87, 0xb9, 0xee, 0x2e, 0x34, 0x98, 0x3b, 0x81}; + u8 digest_536Z[] = {0x18, 0xad, 0xed, 0x22, 0x7c, 0xc6, 0xb5, 0x62, 0xcc, 0x7f, 0xb2, 0x59, 0xe8, 0xf4, 0x04, 0x54, 0x9e, 0x52, 0x91, 0x45, 0x31, 0xaa, 0x1c, 0x5d, 0x85, 0x16, 0x78, 0x97, 0xc7, 0x79, 0xcc, 0x4b, 0x25, 0xd0, 0x42, 0x5f, 0xd1, 0x59, 0x0e, 0x40, 0xbd, 0x76, 0x3e, 0xc3, 0xf4, 0x31, 0x1c, 0x1a}; + u8 digest_1090[] = {0x83, 0xab, 0x05, 0xca, 0x48, 0x3a, 0xbe, 0x3f, 0xaa, 0x59, 0x7a, 0xd5, 0x24, 0xd3, 0x12, 0x91, 0xae, 0x82, 0x7c, 0x5b, 0xe2, 0xb3, 0xef, 0xcb, 0x63, 0x91, 0xbf, 0xed, 0x31, 0xcc, 0xd9, 0x37, 0xb6, 0x13, 0x5e, 0x03, 0x78, 0xc6, 0xc7, 0xf5, 0x98, 0x85, 0x7a, 0x7c, 0x51, 0x6f, 0x20, 0x7a}; #ifdef VERBOSE - PRINTF("TEST SHA384\n"); - PRINTF("sha384(void)\n"); + PRINTF("TEST SHA384\n"); + PRINTF("sha384(void)\n"); #endif - ucl_sha384(e,tab,0); - //#1) 0 byte (null message) - if(memcmp(e,digest_void,48)!=0) - { - return(UCL_ERROR); + ucl_sha384(e, tab, 0); + //#1) 0 byte (null message) + if (memcmp(e, digest_void, 48) != 0) { + return(UCL_ERROR); } - for(i=0;i<1000;i++) - tab[i]=0; - ucl_sha384(e,tab,111); + for (i = 0; i < 1000; i++) + tab[i] = 0; + ucl_sha384(e, tab, 111); #ifdef VERBOSE - PRINTF("sha384(111-0)\n"); + PRINTF("sha384(111-0)\n"); #endif - //#2) 111 bytes of zeros - if(memcmp(e,digest_1110,48)!=0) - { - for(i=0;i<48;i++) - printf("%02x",e[i]); - printf("\n"); - return(UCL_ERROR); + //#2) 111 bytes of zeros + if (memcmp(e, digest_1110, 48) != 0) { + for (i = 0; i < 48; i++) + printf("%02x", e[i]); + printf("\n"); + return(UCL_ERROR); } - ucl_sha384(e,tab,112); + ucl_sha384(e, tab, 112); #ifdef VERBOSE - PRINTF("sha384(112-0)\n"); + PRINTF("sha384(112-0)\n"); #endif - //#3) 112 bytes of zeros - if(memcmp(e,digest_1120,48)!=0) - return(UCL_ERROR); + //#3) 112 bytes of zeros + if (memcmp(e, digest_1120, 48) != 0) { + return(UCL_ERROR); + } - ucl_sha384(e,tab,113); + ucl_sha384(e, tab, 113); #ifdef VERBOSE - PRINTF("sha384(113-0):"); + PRINTF("sha384(113-0):"); #endif - //#4) 113 bytes of zeros - if(memcmp(e,digest_1130,48)!=0) - return(UCL_ERROR); + //#4) 113 bytes of zeros + if (memcmp(e, digest_1130, 48) != 0) { + return(UCL_ERROR); + } - ucl_sha384(e,tab,122); + ucl_sha384(e, tab, 122); #ifdef VERBOSE - PRINTF("sha384(122-0):"); + PRINTF("sha384(122-0):"); #endif - //#5) 122 bytes of zeros - if(memcmp(e,digest_1220,48)!=0) - return(UCL_ERROR); - - ucl_sha384(e,tab,1000); + //#5) 122 bytes of zeros + if (memcmp(e, digest_1220, 48) != 0) { + return(UCL_ERROR); + } + + ucl_sha384(e, tab, 1000); #ifdef VERBOSE - PRINTF("sha384(1000-0):"); + PRINTF("sha384(1000-0):"); #endif - //#6) 1000 bytes of zeros - if(memcmp(e,digest_10000,48)!=0) - return(UCL_ERROR); - - for(i=0;i<1000;i++) - tab[i]='A'; - ucl_sha384(e,tab,1000); + //#6) 1000 bytes of zeros + if (memcmp(e, digest_10000, 48) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 1000; i++) { + tab[i] = 'A'; + } + ucl_sha384(e, tab, 1000); #ifdef VERBOSE - PRINTF("sha384(1000-A):"); + PRINTF("sha384(1000-A):"); #endif - //#7) 1000 bytes of 0x41 'A' - if(memcmp(e,digest_1000A,48)!=0) - return(UCL_ERROR); + //#7) 1000 bytes of 0x41 'A' + if (memcmp(e, digest_1000A, 48) != 0) { + return(UCL_ERROR); + } - for(i=0;i<1005;i++) - tab[i]='U'; - ucl_sha384(e,tab,1005); + for (i = 0; i < 1005; i++) { + tab[i] = 'U'; + } + ucl_sha384(e, tab, 1005); #ifdef VERBOSE - PRINTF("sha384(1005-U):"); + PRINTF("sha384(1005-U):"); #endif - //#8) 1005 bytes of 0x55 'U' - if(memcmp(e,digest_1005U,48)!=0) - return(UCL_ERROR); - - for(i=0;i<1000;i++) - tab[i]=0; - ucl_sha384_init(&ctx); - for(i=0;i<1000;i++) - ucl_sha384_core(&ctx,tab,1000); - ucl_sha384_finish(e,&ctx); + //#8) 1005 bytes of 0x55 'U' + if (memcmp(e, digest_1005U, 48) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 1000; i++) { + tab[i] = 0; + } + ucl_sha384_init(&ctx); + + for (i = 0; i < 1000; i++) { + ucl_sha384_core(&ctx, tab, 1000); + } + ucl_sha384_finish(e, &ctx); #ifdef VERBOSE - PRINTF("sha384(1mil-0):"); + PRINTF("sha384(1mil-0):"); #endif - //#9) 1000000 bytes of zeros - if(memcmp(e,digest_1mil0,48)!=0) - return(UCL_ERROR); - - for(i=0;i<512;i++) - tab[i]='Z'; - ucl_sha384_init(&ctx); - for(i=0;i<1048576;i++) - ucl_sha384_core(&ctx,tab,512); - ucl_sha384_finish(e,&ctx); + //#9) 1000000 bytes of zeros + if (memcmp(e, digest_1mil0, 48) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 512; i++) { + tab[i] = 'Z'; + } + ucl_sha384_init(&ctx); + + for (i = 0; i < 1048576; i++) { + ucl_sha384_core(&ctx, tab, 512); + } + ucl_sha384_finish(e, &ctx); #ifdef VERBOSE - PRINTF("sha384(2^29-Z):"); + PRINTF("sha384(2^29-Z):"); #endif - //#10) 0x20000000 (536870912) bytes of 0x5a 'Z' - if(memcmp(e,digest_536Z,48)!=0) - return(UCL_ERROR); - - for(i=0;i<520;i++) - tab[i]=0; - ucl_sha384_init(&ctx); - for(i=0;i<2097152;i++) - ucl_sha384_core(&ctx,tab,520); - ucl_sha384_finish(e,&ctx); + //#10) 0x20000000 (536870912) bytes of 0x5a 'Z' + if (memcmp(e, digest_536Z, 48) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 520; i++) { + tab[i] = 0; + } + ucl_sha384_init(&ctx); + + for (i = 0; i < 2097152; i++) { + ucl_sha384_core(&ctx, tab, 520); + } + ucl_sha384_finish(e, &ctx); #ifdef VERBOSE - PRINTF("sha384(2^24*5*13-0):"); + PRINTF("sha384(2^24*5*13-0):"); #endif - //#11) 0x41000000 (1090519040) bytes of zeros - if(memcmp(e,digest_1090,48)!=0) - return(UCL_ERROR); + //#11) 0x41000000 (1090519040) bytes of zeros + if (memcmp(e, digest_1090, 48) != 0) { + return(UCL_ERROR); + } - return(UCL_OK); + return(UCL_OK); } int test_sha512(void) { - /* -SHA-512 Test Data -#1) 0 byte (null message) -cf83e1357eefb8bd f1542850d66d8007 d620e4050b5715dc 83f4a921d36ce9ce -47d0d13c5d85f2b0 ff8318d2877eec2f 63b931bd47417a81 a538327af927da3e - -#2) 111 bytes of zeros - -77ddd3a542e530fd 047b8977c657ba6c e72f1492e360b2b2 212cd264e75ec038 -82e4ff0525517ab4 207d14c70c2259ba 88d4d335ee0e7e20 543d22102ab1788c -#3) 112 bytes of zeros -2be2e788c8a8adea a9c89a7f78904cac ea6e39297d75e057 3a73c756234534d6 -627ab4156b48a665 7b29ab8beb733340 40ad39ead81446bb 09c70704ec707952 -#4) 113 bytes of zeros -0e67910bcf0f9ccd e5464c63b9c850a1 2a759227d16b040d 98986d54253f9f34 -322318e56b8feb86 c5fb2270ed87f312 52f7f68493ee7597 43909bd75e4bb544 -#5) 122 bytes of zeros -4f3f095d015be4a7 a7cc0b8c04da4aa0 9e74351e3a97651f 744c23716ebd9b3e -822e5077a01baa5c c0ed45b9249e88ab 343d4333539df21e d229da6f4a514e0f -#6) 1000 bytes of zeros -ca3dff61bb23477a a6087b27508264a6 f9126ee3a004f53c b8db942ed345f2f2 -d229b4b59c859220 a1cf1913f34248e3 803bab650e849a3d 9a709edc09ae4a76 -#7) 1000 bytes of 0x41 ‘A’ -329c52ac62d1fe73 1151f2b895a00475 445ef74f50b979c6 f7bb7cae349328c1 -d4cb4f7261a0ab43 f936a24b000651d4 a824fcdd577f211a ef8f806b16afe8af -#8) 1005 bytes of 0x55 ‘U’ -59f5e54fe299c6a8 764c6b199e44924a 37f59e2b56c3ebad 939b7289210dc8e4 -c21b9720165b0f4d 4374c90f1bf4fb4a 5ace17a116179801 5052893a48c3d161 -#9) 1000000 bytes of zeros -ce044bc9fd43269d 5bbc946cbebc3bb7 11341115cc4abdf2 edbc3ff2c57ad4b1 -5deb699bda257fea 5aef9c6e55fcf4cf 9dc25a8c3ce25f2e fe90908379bff7ed -#10) 0x20000000 (536870912) bytes of 0x5a ‘Z’ -da172279f3ebbda9 5f6b6e1e5f0ebec6 82c25d3d93561a16 24c2fa9009d64c7e -9923f3b46bcaf11d 39a531f43297992b a4155c7e827bd0f1 e194ae7ed6de4cac -#11) 0x41000000 (1090519040) bytes of zeros -14b1be901cb43549 b4d831e61e5f9df1 c791c85b50e85f9d 6bc64135804ad43c -e8402750edbe4e5c 0fc170b99cf78b9f 4ecb9c7e02a15791 1d1bd1832d76784f -#12) 0x6000003e (1610612798) bytes of 0x42 ‘B’ -fd05e13eb771f051 90bd97d62647157e a8f1f6949a52bb6d aaedbad5f578ec59 -b1b8d6c4a7ecb2fe ca6892b4dc138771 670a0f3bd577eea3 26aed40ab7dd58b1 - */ - int i; - ucl_sha512_ctx_t ctx; - u8 e[UCL_SHA512_HASHSIZE]; - u8 mabc[3]={'a','b','c'}; - u8 mtwoblock512[]={"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"}; - u8 digest_void[]={0xcf,0x83,0xe1,0x35,0x7e,0xef,0xb8,0xbd,0xf1,0x54,0x28,0x50,0xd6,0x6d,0x80,0x07,0xd6,0x20,0xe4,0x05,0x0b,0x57,0x15,0xdc,0x83,0xf4,0xa9,0x21,0xd3,0x6c,0xe9,0xce,0x47,0xd0,0xd1,0x3c,0x5d,0x85,0xf2,0xb0,0xff,0x83,0x18,0xd2,0x87,0x7e,0xec,0x2f,0x63,0xb9,0x31,0xbd,0x47,0x41,0x7a,0x81,0xa5,0x38,0x32,0x7a,0xf9,0x27,0xda,0x3e}; - u8 digest_abc[]={0xdd,0xaf,0x35,0xa1,0x93,0x61,0x7a,0xba,0xcc,0x41,0x73,0x49,0xae,0x20,0x41,0x31,0x12,0xe6,0xfa,0x4e,0x89,0xa9,0x7e,0xa2,0x0a,0x9e,0xee,0xe6,0x4b,0x55,0xd3,0x9a,0x21,0x92,0x99,0x2a,0x27,0x4f,0xc1,0xa8,0x36,0xba,0x3c,0x23,0xa3,0xfe,0xeb,0xbd,0x45,0x4d,0x44,0x23,0x64,0x3c,0xe8,0x0e,0x2a,0x9a,0xc9,0x4f,0xa5,0x4c,0xa4,0x9f}; - u8 digest_2blocks[]={0x8e,0x95,0x9b,0x75,0xda,0xe3,0x13,0xda,0x8c,0xf4,0xf7,0x28,0x14,0xfc,0x14,0x3f,0x8f,0x77,0x79,0xc6,0xeb,0x9f,0x7f,0xa1,0x72,0x99,0xae,0xad,0xb6,0x88,0x90,0x18,0x50,0x1d,0x28,0x9e,0x49,0x00,0xf7,0xe4,0x33,0x1b,0x99,0xde,0xc4,0xb5,0x43,0x3a,0xc7,0xd3,0x29,0xee,0xb6,0xdd,0x26,0x54,0x5e,0x96,0xe5,0x5b,0x87,0x4b,0xe9,0x09}; - u8 digest_1110[]={0x77,0xdd,0xd3,0xa5,0x42,0xe5,0x30,0xfd,0x04,0x7b,0x89,0x77,0xc6,0x57,0xba,0x6c,0xe7,0x2f,0x14,0x92,0xe3,0x60,0xb2,0xb2,0x21,0x2c,0xd2,0x64,0xe7,0x5e,0xc0,0x38,0x82,0xe4,0xff,0x05,0x25,0x51,0x7a,0xb4,0x20,0x7d,0x14,0xc7,0x0c,0x22,0x59,0xba,0x88,0xd4,0xd3,0x35,0xee,0x0e,0x7e,0x20,0x54,0x3d,0x22,0x10,0x2a,0xb1,0x78,0x8c}; - u8 digest_1120[]={0x2b,0xe2,0xe7,0x88,0xc8,0xa8,0xad,0xea,0xa9,0xc8,0x9a,0x7f,0x78,0x90,0x4c,0xac,0xea,0x6e,0x39,0x29,0x7d,0x75,0xe0,0x57,0x3a,0x73,0xc7,0x56,0x23,0x45,0x34,0xd6,0x62,0x7a,0xb4,0x15,0x6b,0x48,0xa6,0x65,0x7b,0x29,0xab,0x8b,0xeb,0x73,0x33,0x40,0x40,0xad,0x39,0xea,0xd8,0x14,0x46,0xbb,0x09,0xc7,0x07,0x04,0xec,0x70,0x79,0x52}; - u8 digest_1130[]={0x0e,0x67,0x91,0x0b,0xcf,0x0f,0x9c,0xcd,0xe5,0x46,0x4c,0x63,0xb9,0xc8,0x50,0xa1,0x2a,0x75,0x92,0x27,0xd1,0x6b,0x04,0x0d,0x98,0x98,0x6d,0x54,0x25,0x3f,0x9f,0x34,0x32,0x23,0x18,0xe5,0x6b,0x8f,0xeb,0x86,0xc5,0xfb,0x22,0x70,0xed,0x87,0xf3,0x12,0x52,0xf7,0xf6,0x84,0x93,0xee,0x75,0x97,0x43,0x90,0x9b,0xd7,0x5e,0x4b,0xb5,0x44}; - u8 digest_1220[]={0x4f,0x3f,0x09,0x5d,0x01,0x5b,0xe4,0xa7,0xa7,0xcc,0x0b,0x8c,0x04,0xda,0x4a,0xa0,0x9e,0x74,0x35,0x1e,0x3a,0x97,0x65,0x1f,0x74,0x4c,0x23,0x71,0x6e,0xbd,0x9b,0x3e,0x82,0x2e,0x50,0x77,0xa0,0x1b,0xaa,0x5c,0xc0,0xed,0x45,0xb9,0x24,0x9e,0x88,0xab,0x34,0x3d,0x43,0x33,0x53,0x9d,0xf2,0x1e,0xd2,0x29,0xda,0x6f,0x4a,0x51,0x4e,0x0f}; - u8 digest_10000[]={0xca,0x3d,0xff,0x61,0xbb,0x23,0x47,0x7a,0xa6,0x08,0x7b,0x27,0x50,0x82,0x64,0xa6,0xf9,0x12,0x6e,0xe3,0xa0,0x04,0xf5,0x3c,0xb8,0xdb,0x94,0x2e,0xd3,0x45,0xf2,0xf2,0xd2,0x29,0xb4,0xb5,0x9c,0x85,0x92,0x20,0xa1,0xcf,0x19,0x13,0xf3,0x42,0x48,0xe3,0x80,0x3b,0xab,0x65,0x0e,0x84,0x9a,0x3d,0x9a,0x70,0x9e,0xdc,0x09,0xae,0x4a,0x76}; - u8 digest_100041[]={0x32,0x9c,0x52,0xac,0x62,0xd1,0xfe,0x73,0x11,0x51,0xf2,0xb8,0x95,0xa0,0x04,0x75,0x44,0x5e,0xf7,0x4f,0x50,0xb9,0x79,0xc6,0xf7,0xbb,0x7c,0xae,0x34,0x93,0x28,0xc1,0xd4,0xcb,0x4f,0x72,0x61,0xa0,0xab,0x43,0xf9,0x36,0xa2,0x4b,0x00,0x06,0x51,0xd4,0xa8,0x24,0xfc,0xdd,0x57,0x7f,0x21,0x1a,0xef,0x8f,0x80,0x6b,0x16,0xaf,0xe8,0xaf}; - u8 digest_1005U[]={0x59,0xf5,0xe5,0x4f,0xe2,0x99,0xc6,0xa8,0x76,0x4c,0x6b,0x19,0x9e,0x44,0x92,0x4a,0x37,0xf5,0x9e,0x2b,0x56,0xc3,0xeb,0xad,0x93,0x9b,0x72,0x89,0x21,0x0d,0xc8,0xe4,0xc2,0x1b,0x97,0x20,0x16,0x5b,0x0f,0x4d,0x43,0x74,0xc9,0x0f,0x1b,0xf4,0xfb,0x4a,0x5a,0xce,0x17,0xa1,0x16,0x17,0x98,0x01,0x50,0x52,0x89,0x3a,0x48,0xc3,0xd1,0x61}; - u8 digest_1mil0[]={0xce,0x04,0x4b,0xc9,0xfd,0x43,0x26,0x9d,0x5b,0xbc,0x94,0x6c,0xbe,0xbc,0x3b,0xb7,0x11,0x34,0x11,0x15,0xcc,0x4a,0xbd,0xf2,0xed,0xbc,0x3f,0xf2,0xc5,0x7a,0xd4,0xb1,0x5d,0xeb,0x69,0x9b,0xda,0x25,0x7f,0xea,0x5a,0xef,0x9c,0x6e,0x55,0xfc,0xf4,0xcf,0x9d,0xc2,0x5a,0x8c,0x3c,0xe2,0x5f,0x2e,0xfe,0x90,0x90,0x83,0x79,0xbf,0xf7,0xed}; - u8 digest_5a[]={0xda,0x17,0x22,0x79,0xf3,0xeb,0xbd,0xa9,0x5f,0x6b,0x6e,0x1e,0x5f,0x0e,0xbe,0xc6,0x82,0xc2,0x5d,0x3d,0x93,0x56,0x1a,0x16,0x24,0xc2,0xfa,0x90,0x09,0xd6,0x4c,0x7e,0x99,0x23,0xf3,0xb4,0x6b,0xca,0xf1,0x1d,0x39,0xa5,0x31,0xf4,0x32,0x97,0x99,0x2b,0xa4,0x15,0x5c,0x7e,0x82,0x7b,0xd0,0xf1,0xe1,0x94,0xae,0x7e,0xd6,0xde,0x4c,0xac}; - u8 digest_1090[]={0x14,0xb1,0xbe,0x90,0x1c,0xb4,0x35,0x49,0xb4,0xd8,0x31,0xe6,0x1e,0x5f,0x9d,0xf1,0xc7,0x91,0xc8,0x5b,0x50,0xe8,0x5f,0x9d,0x6b,0xc6,0x41,0x35,0x80,0x4a,0xd4,0x3c,0xe8,0x40,0x27,0x50,0xed,0xbe,0x4e,0x5c,0x0f,0xc1,0x70,0xb9,0x9c,0xf7,0x8b,0x9f,0x4e,0xcb,0x9c,0x7e,0x02,0xa1,0x57,0x91,0x1d,0x1b,0xd1,0x83,0x2d,0x76,0x78,0x4f}; - u8 digest_42[]={0xfd,0x05,0xe1,0x3e,0xb7,0x71,0xf0,0x51,0x90,0xbd,0x97,0xd6,0x26,0x47,0x15,0x7e,0xa8,0xf1,0xf6,0x94,0x9a,0x52,0xbb,0x6d,0xaa,0xed,0xba,0xd5,0xf5,0x78,0xec,0x59,0xb1,0xb8,0xd6,0xc4,0xa7,0xec,0xb2,0xfe,0xca,0x68,0x92,0xb4,0xdc,0x13,0x87,0x71,0x67,0x0a,0x0f,0x3b,0xd5,0x77,0xee,0xa3,0x26,0xae,0xd4,0x0a,0xb7,0xdd,0x58,0xb1}; - u8 tab[1005]; + /* + SHA-512 Test Data + #1) 0 byte (null message) + cf83e1357eefb8bd f1542850d66d8007 d620e4050b5715dc 83f4a921d36ce9ce + 47d0d13c5d85f2b0 ff8318d2877eec2f 63b931bd47417a81 a538327af927da3e + + #2) 111 bytes of zeros + + 77ddd3a542e530fd 047b8977c657ba6c e72f1492e360b2b2 212cd264e75ec038 + 82e4ff0525517ab4 207d14c70c2259ba 88d4d335ee0e7e20 543d22102ab1788c + #3) 112 bytes of zeros + 2be2e788c8a8adea a9c89a7f78904cac ea6e39297d75e057 3a73c756234534d6 + 627ab4156b48a665 7b29ab8beb733340 40ad39ead81446bb 09c70704ec707952 + #4) 113 bytes of zeros + 0e67910bcf0f9ccd e5464c63b9c850a1 2a759227d16b040d 98986d54253f9f34 + 322318e56b8feb86 c5fb2270ed87f312 52f7f68493ee7597 43909bd75e4bb544 + #5) 122 bytes of zeros + 4f3f095d015be4a7 a7cc0b8c04da4aa0 9e74351e3a97651f 744c23716ebd9b3e + 822e5077a01baa5c c0ed45b9249e88ab 343d4333539df21e d229da6f4a514e0f + #6) 1000 bytes of zeros + ca3dff61bb23477a a6087b27508264a6 f9126ee3a004f53c b8db942ed345f2f2 + d229b4b59c859220 a1cf1913f34248e3 803bab650e849a3d 9a709edc09ae4a76 + #7) 1000 bytes of 0x41 �A� + 329c52ac62d1fe73 1151f2b895a00475 445ef74f50b979c6 f7bb7cae349328c1 + d4cb4f7261a0ab43 f936a24b000651d4 a824fcdd577f211a ef8f806b16afe8af + #8) 1005 bytes of 0x55 �U� + 59f5e54fe299c6a8 764c6b199e44924a 37f59e2b56c3ebad 939b7289210dc8e4 + c21b9720165b0f4d 4374c90f1bf4fb4a 5ace17a116179801 5052893a48c3d161 + #9) 1000000 bytes of zeros + ce044bc9fd43269d 5bbc946cbebc3bb7 11341115cc4abdf2 edbc3ff2c57ad4b1 + 5deb699bda257fea 5aef9c6e55fcf4cf 9dc25a8c3ce25f2e fe90908379bff7ed + #10) 0x20000000 (536870912) bytes of 0x5a �Z� + da172279f3ebbda9 5f6b6e1e5f0ebec6 82c25d3d93561a16 24c2fa9009d64c7e + 9923f3b46bcaf11d 39a531f43297992b a4155c7e827bd0f1 e194ae7ed6de4cac + #11) 0x41000000 (1090519040) bytes of zeros + 14b1be901cb43549 b4d831e61e5f9df1 c791c85b50e85f9d 6bc64135804ad43c + e8402750edbe4e5c 0fc170b99cf78b9f 4ecb9c7e02a15791 1d1bd1832d76784f + #12) 0x6000003e (1610612798) bytes of 0x42 �B� + fd05e13eb771f051 90bd97d62647157e a8f1f6949a52bb6d aaedbad5f578ec59 + b1b8d6c4a7ecb2fe ca6892b4dc138771 670a0f3bd577eea3 26aed40ab7dd58b1 + */ + int i; + ucl_sha512_ctx_t ctx; + u8 e[UCL_SHA512_HASHSIZE]; + u8 mabc[3] = {'a', 'b', 'c'}; + u8 mtwoblock512[] = {"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"}; + u8 digest_void[] = {0xcf, 0x83, 0xe1, 0x35, 0x7e, 0xef, 0xb8, 0xbd, 0xf1, 0x54, 0x28, 0x50, 0xd6, 0x6d, 0x80, 0x07, 0xd6, 0x20, 0xe4, 0x05, 0x0b, 0x57, 0x15, 0xdc, 0x83, 0xf4, 0xa9, 0x21, 0xd3, 0x6c, 0xe9, 0xce, 0x47, 0xd0, 0xd1, 0x3c, 0x5d, 0x85, 0xf2, 0xb0, 0xff, 0x83, 0x18, 0xd2, 0x87, 0x7e, 0xec, 0x2f, 0x63, 0xb9, 0x31, 0xbd, 0x47, 0x41, 0x7a, 0x81, 0xa5, 0x38, 0x32, 0x7a, 0xf9, 0x27, 0xda, 0x3e}; + u8 digest_abc[] = {0xdd, 0xaf, 0x35, 0xa1, 0x93, 0x61, 0x7a, 0xba, 0xcc, 0x41, 0x73, 0x49, 0xae, 0x20, 0x41, 0x31, 0x12, 0xe6, 0xfa, 0x4e, 0x89, 0xa9, 0x7e, 0xa2, 0x0a, 0x9e, 0xee, 0xe6, 0x4b, 0x55, 0xd3, 0x9a, 0x21, 0x92, 0x99, 0x2a, 0x27, 0x4f, 0xc1, 0xa8, 0x36, 0xba, 0x3c, 0x23, 0xa3, 0xfe, 0xeb, 0xbd, 0x45, 0x4d, 0x44, 0x23, 0x64, 0x3c, 0xe8, 0x0e, 0x2a, 0x9a, 0xc9, 0x4f, 0xa5, 0x4c, 0xa4, 0x9f}; + u8 digest_2blocks[] = {0x8e, 0x95, 0x9b, 0x75, 0xda, 0xe3, 0x13, 0xda, 0x8c, 0xf4, 0xf7, 0x28, 0x14, 0xfc, 0x14, 0x3f, 0x8f, 0x77, 0x79, 0xc6, 0xeb, 0x9f, 0x7f, 0xa1, 0x72, 0x99, 0xae, 0xad, 0xb6, 0x88, 0x90, 0x18, 0x50, 0x1d, 0x28, 0x9e, 0x49, 0x00, 0xf7, 0xe4, 0x33, 0x1b, 0x99, 0xde, 0xc4, 0xb5, 0x43, 0x3a, 0xc7, 0xd3, 0x29, 0xee, 0xb6, 0xdd, 0x26, 0x54, 0x5e, 0x96, 0xe5, 0x5b, 0x87, 0x4b, 0xe9, 0x09}; + u8 digest_1110[] = {0x77, 0xdd, 0xd3, 0xa5, 0x42, 0xe5, 0x30, 0xfd, 0x04, 0x7b, 0x89, 0x77, 0xc6, 0x57, 0xba, 0x6c, 0xe7, 0x2f, 0x14, 0x92, 0xe3, 0x60, 0xb2, 0xb2, 0x21, 0x2c, 0xd2, 0x64, 0xe7, 0x5e, 0xc0, 0x38, 0x82, 0xe4, 0xff, 0x05, 0x25, 0x51, 0x7a, 0xb4, 0x20, 0x7d, 0x14, 0xc7, 0x0c, 0x22, 0x59, 0xba, 0x88, 0xd4, 0xd3, 0x35, 0xee, 0x0e, 0x7e, 0x20, 0x54, 0x3d, 0x22, 0x10, 0x2a, 0xb1, 0x78, 0x8c}; + u8 digest_1120[] = {0x2b, 0xe2, 0xe7, 0x88, 0xc8, 0xa8, 0xad, 0xea, 0xa9, 0xc8, 0x9a, 0x7f, 0x78, 0x90, 0x4c, 0xac, 0xea, 0x6e, 0x39, 0x29, 0x7d, 0x75, 0xe0, 0x57, 0x3a, 0x73, 0xc7, 0x56, 0x23, 0x45, 0x34, 0xd6, 0x62, 0x7a, 0xb4, 0x15, 0x6b, 0x48, 0xa6, 0x65, 0x7b, 0x29, 0xab, 0x8b, 0xeb, 0x73, 0x33, 0x40, 0x40, 0xad, 0x39, 0xea, 0xd8, 0x14, 0x46, 0xbb, 0x09, 0xc7, 0x07, 0x04, 0xec, 0x70, 0x79, 0x52}; + u8 digest_1130[] = {0x0e, 0x67, 0x91, 0x0b, 0xcf, 0x0f, 0x9c, 0xcd, 0xe5, 0x46, 0x4c, 0x63, 0xb9, 0xc8, 0x50, 0xa1, 0x2a, 0x75, 0x92, 0x27, 0xd1, 0x6b, 0x04, 0x0d, 0x98, 0x98, 0x6d, 0x54, 0x25, 0x3f, 0x9f, 0x34, 0x32, 0x23, 0x18, 0xe5, 0x6b, 0x8f, 0xeb, 0x86, 0xc5, 0xfb, 0x22, 0x70, 0xed, 0x87, 0xf3, 0x12, 0x52, 0xf7, 0xf6, 0x84, 0x93, 0xee, 0x75, 0x97, 0x43, 0x90, 0x9b, 0xd7, 0x5e, 0x4b, 0xb5, 0x44}; + u8 digest_1220[] = {0x4f, 0x3f, 0x09, 0x5d, 0x01, 0x5b, 0xe4, 0xa7, 0xa7, 0xcc, 0x0b, 0x8c, 0x04, 0xda, 0x4a, 0xa0, 0x9e, 0x74, 0x35, 0x1e, 0x3a, 0x97, 0x65, 0x1f, 0x74, 0x4c, 0x23, 0x71, 0x6e, 0xbd, 0x9b, 0x3e, 0x82, 0x2e, 0x50, 0x77, 0xa0, 0x1b, 0xaa, 0x5c, 0xc0, 0xed, 0x45, 0xb9, 0x24, 0x9e, 0x88, 0xab, 0x34, 0x3d, 0x43, 0x33, 0x53, 0x9d, 0xf2, 0x1e, 0xd2, 0x29, 0xda, 0x6f, 0x4a, 0x51, 0x4e, 0x0f}; + u8 digest_10000[] = {0xca, 0x3d, 0xff, 0x61, 0xbb, 0x23, 0x47, 0x7a, 0xa6, 0x08, 0x7b, 0x27, 0x50, 0x82, 0x64, 0xa6, 0xf9, 0x12, 0x6e, 0xe3, 0xa0, 0x04, 0xf5, 0x3c, 0xb8, 0xdb, 0x94, 0x2e, 0xd3, 0x45, 0xf2, 0xf2, 0xd2, 0x29, 0xb4, 0xb5, 0x9c, 0x85, 0x92, 0x20, 0xa1, 0xcf, 0x19, 0x13, 0xf3, 0x42, 0x48, 0xe3, 0x80, 0x3b, 0xab, 0x65, 0x0e, 0x84, 0x9a, 0x3d, 0x9a, 0x70, 0x9e, 0xdc, 0x09, 0xae, 0x4a, 0x76}; + u8 digest_100041[] = {0x32, 0x9c, 0x52, 0xac, 0x62, 0xd1, 0xfe, 0x73, 0x11, 0x51, 0xf2, 0xb8, 0x95, 0xa0, 0x04, 0x75, 0x44, 0x5e, 0xf7, 0x4f, 0x50, 0xb9, 0x79, 0xc6, 0xf7, 0xbb, 0x7c, 0xae, 0x34, 0x93, 0x28, 0xc1, 0xd4, 0xcb, 0x4f, 0x72, 0x61, 0xa0, 0xab, 0x43, 0xf9, 0x36, 0xa2, 0x4b, 0x00, 0x06, 0x51, 0xd4, 0xa8, 0x24, 0xfc, 0xdd, 0x57, 0x7f, 0x21, 0x1a, 0xef, 0x8f, 0x80, 0x6b, 0x16, 0xaf, 0xe8, 0xaf}; + u8 digest_1005U[] = {0x59, 0xf5, 0xe5, 0x4f, 0xe2, 0x99, 0xc6, 0xa8, 0x76, 0x4c, 0x6b, 0x19, 0x9e, 0x44, 0x92, 0x4a, 0x37, 0xf5, 0x9e, 0x2b, 0x56, 0xc3, 0xeb, 0xad, 0x93, 0x9b, 0x72, 0x89, 0x21, 0x0d, 0xc8, 0xe4, 0xc2, 0x1b, 0x97, 0x20, 0x16, 0x5b, 0x0f, 0x4d, 0x43, 0x74, 0xc9, 0x0f, 0x1b, 0xf4, 0xfb, 0x4a, 0x5a, 0xce, 0x17, 0xa1, 0x16, 0x17, 0x98, 0x01, 0x50, 0x52, 0x89, 0x3a, 0x48, 0xc3, 0xd1, 0x61}; + u8 digest_1mil0[] = {0xce, 0x04, 0x4b, 0xc9, 0xfd, 0x43, 0x26, 0x9d, 0x5b, 0xbc, 0x94, 0x6c, 0xbe, 0xbc, 0x3b, 0xb7, 0x11, 0x34, 0x11, 0x15, 0xcc, 0x4a, 0xbd, 0xf2, 0xed, 0xbc, 0x3f, 0xf2, 0xc5, 0x7a, 0xd4, 0xb1, 0x5d, 0xeb, 0x69, 0x9b, 0xda, 0x25, 0x7f, 0xea, 0x5a, 0xef, 0x9c, 0x6e, 0x55, 0xfc, 0xf4, 0xcf, 0x9d, 0xc2, 0x5a, 0x8c, 0x3c, 0xe2, 0x5f, 0x2e, 0xfe, 0x90, 0x90, 0x83, 0x79, 0xbf, 0xf7, 0xed}; + u8 digest_5a[] = {0xda, 0x17, 0x22, 0x79, 0xf3, 0xeb, 0xbd, 0xa9, 0x5f, 0x6b, 0x6e, 0x1e, 0x5f, 0x0e, 0xbe, 0xc6, 0x82, 0xc2, 0x5d, 0x3d, 0x93, 0x56, 0x1a, 0x16, 0x24, 0xc2, 0xfa, 0x90, 0x09, 0xd6, 0x4c, 0x7e, 0x99, 0x23, 0xf3, 0xb4, 0x6b, 0xca, 0xf1, 0x1d, 0x39, 0xa5, 0x31, 0xf4, 0x32, 0x97, 0x99, 0x2b, 0xa4, 0x15, 0x5c, 0x7e, 0x82, 0x7b, 0xd0, 0xf1, 0xe1, 0x94, 0xae, 0x7e, 0xd6, 0xde, 0x4c, 0xac}; + u8 digest_1090[] = {0x14, 0xb1, 0xbe, 0x90, 0x1c, 0xb4, 0x35, 0x49, 0xb4, 0xd8, 0x31, 0xe6, 0x1e, 0x5f, 0x9d, 0xf1, 0xc7, 0x91, 0xc8, 0x5b, 0x50, 0xe8, 0x5f, 0x9d, 0x6b, 0xc6, 0x41, 0x35, 0x80, 0x4a, 0xd4, 0x3c, 0xe8, 0x40, 0x27, 0x50, 0xed, 0xbe, 0x4e, 0x5c, 0x0f, 0xc1, 0x70, 0xb9, 0x9c, 0xf7, 0x8b, 0x9f, 0x4e, 0xcb, 0x9c, 0x7e, 0x02, 0xa1, 0x57, 0x91, 0x1d, 0x1b, 0xd1, 0x83, 0x2d, 0x76, 0x78, 0x4f}; + u8 digest_42[] = {0xfd, 0x05, 0xe1, 0x3e, 0xb7, 0x71, 0xf0, 0x51, 0x90, 0xbd, 0x97, 0xd6, 0x26, 0x47, 0x15, 0x7e, 0xa8, 0xf1, 0xf6, 0x94, 0x9a, 0x52, 0xbb, 0x6d, 0xaa, 0xed, 0xba, 0xd5, 0xf5, 0x78, 0xec, 0x59, 0xb1, 0xb8, 0xd6, 0xc4, 0xa7, 0xec, 0xb2, 0xfe, 0xca, 0x68, 0x92, 0xb4, 0xdc, 0x13, 0x87, 0x71, 0x67, 0x0a, 0x0f, 0x3b, 0xd5, 0x77, 0xee, 0xa3, 0x26, 0xae, 0xd4, 0x0a, 0xb7, 0xdd, 0x58, 0xb1}; + u8 tab[1005]; + #ifdef VERBOSE - PRINTF("TEST SHA512\n"); + PRINTF("TEST SHA512\n"); #endif - ucl_sha512(e,mabc,0); + ucl_sha512(e, mabc, 0); #ifdef VERBOSE - PRINTF("sha512(void):"); + PRINTF("sha512(void):"); #endif - if(memcmp(e,digest_void,64)!=0) - return(UCL_ERROR); - ucl_sha512(e,mabc,3); + if (memcmp(e, digest_void, 64) != 0) { + return(UCL_ERROR); + } + + ucl_sha512(e, mabc, 3); #ifdef VERBOSE - PRINTF("sha512(abc):"); + PRINTF("sha512(abc):"); #endif - if(memcmp(e,digest_abc,64)!=0) - return(UCL_ERROR); - ucl_sha512(e,mtwoblock512,112); + if (memcmp(e, digest_abc, 64) != 0) { + return(UCL_ERROR); + } + + ucl_sha512(e, mtwoblock512, 112); #ifdef VERBOSE - PRINTF("sha512(2blocks):"); + PRINTF("sha512(2blocks):"); #endif - if(memcmp(e,digest_2blocks,64)!=0) - return(UCL_ERROR); - for(i=0;i<1000;i++) - tab[i]=0; - ucl_sha512(e,tab,111); + if (memcmp(e, digest_2blocks, 64) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 1000; i++) { + tab[i] = 0; + } + ucl_sha512(e, tab, 111); #ifdef VERBOSE - PRINTF("sha512(111-0):"); + PRINTF("sha512(111-0):"); #endif - if(memcmp(e,digest_1110,64)!=0) - return(UCL_ERROR); + if (memcmp(e, digest_1110, 64) != 0) { + return(UCL_ERROR); + } - ucl_sha512(e,tab,112); + ucl_sha512(e, tab, 112); #ifdef VERBOSE - PRINTF("sha512(112-0):"); + PRINTF("sha512(112-0):"); #endif - if(memcmp(e,digest_1120,64)!=0) - return(UCL_ERROR); + if (memcmp(e, digest_1120, 64) != 0) { + return(UCL_ERROR); + } - ucl_sha512(e,tab,113); + ucl_sha512(e, tab, 113); #ifdef VERBOSE - PRINTF("sha512(113-0):"); + PRINTF("sha512(113-0):"); #endif - if(memcmp(e,digest_1130,64)!=0) - return(UCL_ERROR); - ucl_sha512(e,tab,122); + if (memcmp(e, digest_1130, 64) != 0) { + return(UCL_ERROR); + } + + ucl_sha512(e, tab, 122); #ifdef VERBOSE - PRINTF("sha512(122-0):"); + PRINTF("sha512(122-0):"); #endif - //#5) 122 bytes of zeros - if(memcmp(e,digest_1220,64)!=0) - return(UCL_ERROR); + //#5) 122 bytes of zeros + if (memcmp(e, digest_1220, 64) != 0) { + return(UCL_ERROR); + } - ucl_sha512(e,tab,1000); + ucl_sha512(e, tab, 1000); #ifdef VERBOSE - PRINTF("sha512(1000-0):"); + PRINTF("sha512(1000-0):"); #endif - //#6) 1000 bytes of zeros - if(memcmp(e,digest_10000,64)!=0) - return(UCL_ERROR); + //#6) 1000 bytes of zeros + if (memcmp(e, digest_10000, 64) != 0) { + return(UCL_ERROR); + } - for(i=0;i<1000;i++) - tab[i]='A'; - ucl_sha512(e,tab,1000); + for (i = 0; i < 1000; i ++) { + tab[i] = 'A'; + } + ucl_sha512(e, tab, 1000); #ifdef VERBOSE - PRINTF("sha512(1000-A):"); + PRINTF("sha512(1000-A):"); #endif - //#7) 1000 bytes of 0x41 ‘A’ - if(memcmp(e,digest_100041,64)!=0) - return(UCL_ERROR); + //#7) 1000 bytes of 0x41 + if (memcmp(e, digest_100041, 64) != 0) { + return(UCL_ERROR); + } - for(i=0;i<1005;i++) - tab[i]='U'; - ucl_sha512(e,tab,1005); + for (i = 0; i < 1005; i++) { + tab[i] = 'U'; + } + ucl_sha512(e, tab, 1005); #ifdef VERBOSE - PRINTF("sha512(1005-U):"); + PRINTF("sha512(1005-U):"); #endif - //#8) 1005 bytes of 0x55 ‘U’ - if(memcmp(e,digest_1005U,64)!=0) - return(UCL_ERROR); - - for(i=0;i<1000;i++) - tab[i]=0; - ucl_sha512_init(&ctx); - for(i=0;i<1000;i++) - ucl_sha512_core(&ctx,tab,1000); - ucl_sha512_finish(e,&ctx); + //#8) 1005 bytes of 0x55 + if (memcmp(e, digest_1005U, 64) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 1000; i++) { + tab[i] = 0; + } + ucl_sha512_init(&ctx); + + for (i = 0; i < 1000; i++) { + ucl_sha512_core(&ctx, tab, 1000); + } + ucl_sha512_finish(e, &ctx); #ifdef VERBOSE - PRINTF("sha512(1mil-0):"); + PRINTF("sha512(1mil-0):"); #endif - //#9) 1000000 bytes of zeros - if(memcmp(e,digest_1mil0,64)!=0) - return(UCL_ERROR); - - for(i=0;i<512;i++) - tab[i]='Z'; - ucl_sha512_init(&ctx); - for(i=0;i<1048576;i++) - { - ucl_sha512_core(&ctx,tab,512); - } - ucl_sha512_finish(e,&ctx); + //#9) 1000000 bytes of zeros + if (memcmp(e, digest_1mil0, 64) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 512; i++) { + tab[i] = 'Z'; + } + ucl_sha512_init(&ctx); + + for (i = 0; i < 1048576; i++) { + ucl_sha512_core(&ctx, tab, 512); + } + ucl_sha512_finish(e, &ctx); #ifdef VERBOSE - PRINTF("sha512(2^29-Z):"); + PRINTF("sha512(2^29-Z):"); #endif - //#10) 0x20000000 (536870912) bytes of 0x5a ‘Z’ - if(memcmp(e,digest_5a,64)!=0) - return(UCL_ERROR); - - for(i=0;i<520;i++) - tab[i]=0; - ucl_sha512_init(&ctx); - for(i=0;i<2097152;i++) - { - ucl_sha512_core(&ctx,tab,520); - } - ucl_sha512_finish(e,&ctx); + //#10) 0x20000000 (536870912) bytes of 0x5a + if (memcmp(e, digest_5a, 64) != 0) + return(UCL_ERROR); + + for (i = 0; i < 520; i++) { + tab[i] = 0; + } + ucl_sha512_init(&ctx); + + for (i = 0; i < 2097152; i++) { + ucl_sha512_core(&ctx, tab, 520); + } + ucl_sha512_finish(e, &ctx); #ifdef VERBOSE - PRINTF("sha512(2^24*5*13-0):"); + PRINTF("sha512(2^24*5*13-0):"); #endif - //#11) 0x41000000 (1090519040) bytes of zeros - if(memcmp(e,digest_1090,64)!=0) - return(UCL_ERROR); - - for(i=0;i<118;i++) - tab[i]='B'; - ucl_sha512_init(&ctx); - for(i=0;i<13649261;i++) - ucl_sha512_core(&ctx,tab,118); - ucl_sha512_finish(e,&ctx); + //#11) 0x41000000 (1090519040) bytes of zeros + if (memcmp(e, digest_1090, 64) != 0) { + return(UCL_ERROR); + } + + for (i = 0; i < 118; i++) { + tab[i] = 'B'; + } + ucl_sha512_init(&ctx); + + for (i = 0; i < 13649261; i++) { + ucl_sha512_core(&ctx, tab, 118); + } + ucl_sha512_finish(e, &ctx); #ifdef VERBOSE - PRINTF("sha512(2*59*13649261-'B'):"); + PRINTF("sha512(2*59*13649261-'B'):"); #endif - //#12) 0x6000003e (1610612798) bytes of 0x42 ‘B’ - if(memcmp(e,digest_42,64)!=0) - return(UCL_ERROR); - return(UCL_OK); + //#12) 0x6000003e (1610612798) bytes of 0x42 + if (memcmp(e, digest_42, 64) != 0) { + return(UCL_ERROR); + } + + return(UCL_OK); } void test_sha(void) { - if(UCL_OK==test_sia256()) - PRINTF("SIA256 OK\n"); - if(UCL_OK==test_sha256()) - PRINTF("SHA256 OK\n"); - if(UCL_OK==test_sha384()) - PRINTF("SHA384 OK\n"); - if(UCL_OK==test_sha512()) - PRINTF("SHA512 OK\n"); - if(UCL_OK==test_sha3()) - PRINTF("SHA3 OK\n"); + if (UCL_OK == test_sia256()) { + PRINTF("SIA256 OK\n"); + } + + if (UCL_OK == test_sha256()) { + PRINTF("SHA256 OK\n"); + } + + if (UCL_OK == test_sha384()) { + PRINTF("SHA384 OK\n"); + } + + if (UCL_OK == test_sha512()) { + PRINTF("SHA512 OK\n"); + } + + if (UCL_OK == test_sha3()) { + PRINTF("SHA3 OK\n"); + } } diff --git a/Libraries/FCL/src/ucl_aes.c b/Libraries/FCL/src/ucl_aes.c index 3659883136c..c0d6b805898 100644 --- a/Libraries/FCL/src/ucl_aes.c +++ b/Libraries/FCL/src/ucl_aes.c @@ -1,58 +1,75 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -*******************************************************************************/ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #include #include #include #include + int ucl_aes(u8 *dst, u8 *src, u8 *key, u32 keylen, int mode) { - int resu; - AES_KEY aeskey; + int resu; + AES_KEY aeskey; - if (mode == UCL_CIPHER_ENCRYPT) - { - aes_set_ekey(&aeskey, key, keylen); - return(aes_encrypt(dst, src, &aeskey)); - } + if (mode == UCL_CIPHER_ENCRYPT) { + aes_set_ekey(&aeskey, key, keylen); - else if (mode == UCL_CIPHER_DECRYPT) - { - aes_set_dkey(&aeskey, key, keylen); - return(aes_decrypt(dst, src, &aeskey)); + return(aes_encrypt(dst, src, &aeskey)); + } else if (mode == UCL_CIPHER_DECRYPT) { + aes_set_dkey(&aeskey, key, keylen); + + return(aes_decrypt(dst, src, &aeskey)); + } else { + return(UCL_INVALID_ARG); } - else - return(UCL_INVALID_ARG); - return UCL_OK; + + return UCL_OK; } diff --git a/Libraries/FCL/src/ucl_aes_cbc.c b/Libraries/FCL/src/ucl_aes_cbc.c index 21304bdb434..5311d98aa8b 100644 --- a/Libraries/FCL/src/ucl_aes_cbc.c +++ b/Libraries/FCL/src/ucl_aes_cbc.c @@ -1,14 +1,14 @@ -/******************************************************************************* - * Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -30,7 +30,25 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. - ********************************************************************************/ + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #include #include #include @@ -46,132 +64,162 @@ int _ucl_increment_dst; int ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode) { - ucl_aes_ctx_t ctx; - int ret; - if ((src == NULL) || - (key == NULL) || - (IV == NULL)) - return UCL_INVALID_INPUT; - - if ((dst == NULL)) - return UCL_INVALID_OUTPUT; - - if ((mode != UCL_CIPHER_DECRYPT) && - (mode != UCL_CIPHER_ENCRYPT)) - return UCL_INVALID_MODE; - - if ((len % UCL_AES_BLOCKSIZE) != 0) - return UCL_INVALID_ARG; - - if ((keylen != UCL_AES_KEYLEN_128) && - (keylen != UCL_AES_KEYLEN_192) && - (keylen != UCL_AES_KEYLEN_256)) - return UCL_INVALID_ARG; - - ucl_aes_cbc_init(&ctx, key, keylen, IV, mode); - ret=ucl_aes_cbc_core(dst, &ctx, src, len); - //fault testing - if(UCL_OK!=ret) - return(ret); - ucl_aes_cbc_finish(&ctx); - return UCL_OK; + ucl_aes_ctx_t ctx; + int ret; + if ((src == NULL) || (key == NULL) || (IV == NULL)) { + return UCL_INVALID_INPUT; + } + + if ((dst == NULL)) { + return UCL_INVALID_OUTPUT; + } + + if ((mode != UCL_CIPHER_DECRYPT) && (mode != UCL_CIPHER_ENCRYPT)) { + return UCL_INVALID_MODE; + } + + if ((len % UCL_AES_BLOCKSIZE) != 0) { + return UCL_INVALID_ARG; + } + + if ((keylen != UCL_AES_KEYLEN_128) && (keylen != UCL_AES_KEYLEN_192) && (keylen != UCL_AES_KEYLEN_256)) { + return UCL_INVALID_ARG; + } + + ucl_aes_cbc_init(&ctx, key, keylen, IV, mode); + + ret = ucl_aes_cbc_core(dst, &ctx, src, len); + //fault testing + if (UCL_OK != ret) { + return(ret); + } + + ucl_aes_cbc_finish(&ctx); + + return UCL_OK; } int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode) { - int resu; - int i; - if (ctx == NULL) - return UCL_INVALID_OUTPUT; - if (key == NULL) - return UCL_INVALID_INPUT; - if ((keylen != UCL_AES_KEYLEN_128) && (keylen != UCL_AES_KEYLEN_192) && (keylen != UCL_AES_KEYLEN_256)) - return UCL_INVALID_ARG; - _ucl_increment_dst=UCL_OK; - for(i=0;i<(int)keylen;i++) - ctx->origin_key[i]=key[i]; - ctx->origin_keylen=(int)keylen; - - if (mode == UCL_CIPHER_ENCRYPT) - aes_set_ekey(&ctx->key, key, keylen); - else if (mode == UCL_CIPHER_DECRYPT) - aes_set_dkey(&ctx->key, key, keylen); - else - return UCL_INVALID_MODE; - memcpy(ctx->memory, IV, UCL_AES_BLOCKSIZE); - ctx->mode = mode; - return UCL_OK; + int resu; + int i; + + if (ctx == NULL) { + return UCL_INVALID_OUTPUT; + } + + if (key == NULL) { + return UCL_INVALID_INPUT; + } + + if ((keylen != UCL_AES_KEYLEN_128) && (keylen != UCL_AES_KEYLEN_192) && (keylen != UCL_AES_KEYLEN_256)) { + return UCL_INVALID_ARG; + } + + _ucl_increment_dst = UCL_OK; + + for (i = 0; i < (int)keylen; i++) { + ctx->origin_key[i] = key[i]; + } + + ctx->origin_keylen = (int)keylen; + + if (mode == UCL_CIPHER_ENCRYPT) { + aes_set_ekey(&ctx->key, key, keylen); + } else if (mode == UCL_CIPHER_DECRYPT) { + aes_set_dkey(&ctx->key, key, keylen); + } else { + return UCL_INVALID_MODE; + } + + memcpy(ctx->memory, IV, UCL_AES_BLOCKSIZE); + ctx->mode = mode; + return UCL_OK; } int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len) { - int ret; - u32 i; - u8 block[UCL_AES_BLOCKSIZE]; - u8 *data_end; - if ((ctx == NULL) || (dst == NULL)) - return UCL_INVALID_OUTPUT; - if (src == NULL) - return UCL_INVALID_INPUT; - if ((len % UCL_AES_BLOCKSIZE) != 0) - return UCL_INVALID_ARG; - data_end = len + src; - - if (ctx->mode == UCL_CIPHER_ENCRYPT) - { - for (i = 0 ; i < UCL_AES_BLOCKSIZE ; i++) - block[i] = src[i] ^ ctx->memory[i]; - aes_encrypt(dst, block, &ctx->key); - src += UCL_AES_BLOCKSIZE; - while (src != data_end) - { - for (i = 0 ; i < UCL_AES_BLOCKSIZE ; i++) - { - block[i] = src[i] ^ dst[i]; - } - if(UCL_OK==_ucl_increment_dst) - dst += UCL_AES_BLOCKSIZE; - src += UCL_AES_BLOCKSIZE; - aes_encrypt(dst, block, &ctx->key); - } - memcpy(ctx->memory, dst, UCL_AES_BLOCKSIZE); - } - else if (ctx->mode == UCL_CIPHER_DECRYPT) - { - u8 save_src[UCL_AES_BLOCKSIZE]; - aes_decrypt(block, src, &ctx->key); - // Xor dest with IV - for (i = 0 ; i < UCL_AES_BLOCKSIZE ; i++) - { - u8 s = src[i]; - dst[i] = block[i] ^ ctx->memory[i]; - save_src[i]=s; - } - // Go to next dest block - dst += UCL_AES_BLOCKSIZE; - while ((src + UCL_AES_BLOCKSIZE) != data_end) - { - aes_decrypt(block, (src + UCL_AES_BLOCKSIZE), &ctx->key); - // Xor - for (i = 0 ; i < UCL_AES_BLOCKSIZE ; i++) - { - u8 s = src[UCL_AES_BLOCKSIZE+i]; - dst[i] = block[i] ^ save_src[i]; - save_src[i]=s; - } - dst += UCL_AES_BLOCKSIZE; - src += UCL_AES_BLOCKSIZE; - } - // Save IV for next call - memcpy(ctx->memory, src, UCL_AES_BLOCKSIZE); - } - return UCL_OK; + int ret; + u32 i; + u8 block[UCL_AES_BLOCKSIZE]; + u8 *data_end; + if ((ctx == NULL) || (dst == NULL)) { + return UCL_INVALID_OUTPUT; + } + + if (src == NULL) { + return UCL_INVALID_INPUT; + } + + if ((len % UCL_AES_BLOCKSIZE) != 0) { + return UCL_INVALID_ARG; + } + + data_end = len + src; + + if (ctx->mode == UCL_CIPHER_ENCRYPT) { + for (i = 0; i < UCL_AES_BLOCKSIZE; i++) { + block[i] = src[i] ^ ctx->memory[i]; + } + + aes_encrypt(dst, block, &ctx->key); + src += UCL_AES_BLOCKSIZE; + + while (src != data_end) { + for (i = 0; i < UCL_AES_BLOCKSIZE; i++) { + block[i] = src[i] ^ dst[i]; + } + + if (UCL_OK == _ucl_increment_dst) { + dst += UCL_AES_BLOCKSIZE; + } + + src += UCL_AES_BLOCKSIZE; + aes_encrypt(dst, block, &ctx->key); + } + + memcpy(ctx->memory, dst, UCL_AES_BLOCKSIZE); + + } else if (ctx->mode == UCL_CIPHER_DECRYPT) { + u8 save_src[UCL_AES_BLOCKSIZE]; + aes_decrypt(block, src, &ctx->key); + + // Xor dest with IV + for (i = 0; i < UCL_AES_BLOCKSIZE; i++) { + u8 s = src[i]; + dst[i] = block[i] ^ ctx->memory[i]; + save_src[i] = s; + } + + // Go to next dest block + dst += UCL_AES_BLOCKSIZE; + while ((src + UCL_AES_BLOCKSIZE) != data_end) { + aes_decrypt(block, (src + UCL_AES_BLOCKSIZE), &ctx->key); + + // Xor + for (i = 0; i < UCL_AES_BLOCKSIZE; i++) { + u8 s = src[UCL_AES_BLOCKSIZE+i]; + dst[i] = block[i] ^ save_src[i]; + save_src[i] = s; + } + + dst += UCL_AES_BLOCKSIZE; + src += UCL_AES_BLOCKSIZE; + } + + // Save IV for next call + memcpy(ctx->memory, src, UCL_AES_BLOCKSIZE); + } + return UCL_OK; } int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx) { - if (ctx == NULL) - return UCL_INVALID_OUTPUT; - memset((unsigned char *)ctx, 0, sizeof(*ctx)); - return UCL_OK; + if (ctx == NULL) { + return UCL_INVALID_OUTPUT; + } + + memset((unsigned char *)ctx, 0, sizeof(*ctx)); + + return UCL_OK; } diff --git a/Libraries/FCL/src/ucl_aes_cbc_mac.c b/Libraries/FCL/src/ucl_aes_cbc_mac.c index 02b733040bb..8b0557787bb 100644 --- a/Libraries/FCL/src/ucl_aes_cbc_mac.c +++ b/Libraries/FCL/src/ucl_aes_cbc_mac.c @@ -1,36 +1,53 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -********************************************************************************/ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #include #include @@ -44,8 +61,8 @@ extern int _ucl_increment_dst; -/*============================================================================*/ -/** AES-CBC-MAC. +/*============================================================================ */ +/** < b >AES-CBC-MAC < /b >. * ISO/IEC 9797 Part I MAC Algorithm 3. * * @param[out] tmac Pointer to the mac (may be truncated) @@ -73,24 +90,33 @@ int ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 ke u8 mac[UCL_AES_BLOCKSIZE]; ucl_aes_ctx_t ctx; - if ((src == NULL) || (key == NULL)) - return UCL_INVALID_INPUT; - if ((tmac == NULL)) - return UCL_INVALID_OUTPUT; - if ((len % UCL_AES_BLOCKSIZE) != 0) - return UCL_INVALID_ARG; - if (tmac_byteLen > UCL_AES_BLOCKSIZE) - return UCL_INVALID_ARG; - ucl_aes_cbc_mac_init(&ctx,key,keylen); - _ucl_increment_dst=UCL_NOP; - ucl_aes_cbc_mac_core(&ctx,src,len); - ucl_aes_cbc_mac_finish(tmac,tmac_byteLen,&ctx); + if ((src == NULL) || (key == NULL)) { + return UCL_INVALID_INPUT; + } + + if ((tmac == NULL)) { + return UCL_INVALID_OUTPUT; + } + + if ((len % UCL_AES_BLOCKSIZE) != 0) { + return UCL_INVALID_ARG; + } + + if (tmac_byteLen > UCL_AES_BLOCKSIZE) { + return UCL_INVALID_ARG; + } + + ucl_aes_cbc_mac_init(&ctx, key, keylen); + _ucl_increment_dst = UCL_NOP; + ucl_aes_cbc_mac_core(&ctx, src, len); + ucl_aes_cbc_mac_finish(tmac, tmac_byteLen, &ctx); + return(UCL_OK); } -/*============================================================================*/ -/** AES-CBC-MAC Init. +/*============================================================================ */ +/** < b >AES-CBC-MAC Init < /b >. * Initialise AES CBC MAC Context. * * @param[out] ctx Pointer to the context @@ -105,22 +131,26 @@ int ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 ke * @ingroup UCL_CBC_MAC */ -int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key,u32 keylen) +int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen) { - u8 ivnull[UCL_AES_BLOCKSIZE]; - int i; - if (ctx == NULL) - return UCL_INVALID_OUTPUT; - if (key == NULL) + u8 ivnull[UCL_AES_BLOCKSIZE]; + int i; + if (ctx == NULL) { + return UCL_INVALID_OUTPUT; + } + if (key == NULL) { return UCL_INVALID_INPUT; - memset(ivnull,0,UCL_AES_BLOCKSIZE); - ctx->mode=UCL_CIPHER_ENCRYPT; - return(ucl_aes_cbc_init(ctx,key,keylen,ivnull,UCL_CIPHER_ENCRYPT)); + } + + memset(ivnull, 0, UCL_AES_BLOCKSIZE); + ctx->mode = UCL_CIPHER_ENCRYPT; + + return(ucl_aes_cbc_init(ctx, key, keylen, ivnull, UCL_CIPHER_ENCRYPT)); } -/*============================================================================*/ -/** AES-CBC-MAC Core. +/*============================================================================ */ +/** < b >AES-CBC-MAC Core < /b >. * Process the Data. * * @param[in, out] ctx Pointer to the context @@ -140,11 +170,12 @@ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key,u32 keylen) */ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len) { - u8 dst[1]; - return(ucl_aes_cbc_core(dst,ctx,src,len)); + u8 dst[1]; + + return(ucl_aes_cbc_core(dst, ctx, src, len)); } -/** AES-CBC-MAC Finish. +/** < b >AES-CBC-MAC Finish < /b >. * Zeroize the context and return result. * * @param[out] tmac Pointer to the mac @@ -160,10 +191,11 @@ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len) */ int ucl_aes_cbc_mac_finish(u8 *tmac, u32 tmac_byteLen, ucl_aes_ctx_t *ctx) { - if (ctx == NULL) - { - return UCL_INVALID_OUTPUT; + if (ctx == NULL) { + return UCL_INVALID_OUTPUT; } - memcpy(tmac, ctx->memory, tmac_byteLen); - return(UCL_OK); + + memcpy(tmac, ctx->memory, tmac_byteLen); + + return(UCL_OK); } diff --git a/Libraries/FCL/src/ucl_aes_ecb.c b/Libraries/FCL/src/ucl_aes_ecb.c index fb7f22bd956..bbd8cc1a3b3 100644 --- a/Libraries/FCL/src/ucl_aes_ecb.c +++ b/Libraries/FCL/src/ucl_aes_ecb.c @@ -1,130 +1,169 @@ -/******************************************************************************* -* Copyright (C) 2018 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* -*/ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #include #include #include #include -#include "ucl/ucl_aes_ecb.h" +#include #include int ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, int mode) { ucl_aes_ctx_t ctx; int ret; - if ((src == NULL) || - (key == NULL)) + + if ((src == NULL) || (key == NULL)) { return UCL_INVALID_INPUT; - if ((dst == NULL)) + } + + if ((dst == NULL)) { return UCL_INVALID_OUTPUT; - if ((len % UCL_AES_BLOCKSIZE) != 0) + } + + if ((len % UCL_AES_BLOCKSIZE) != 0) { return UCL_INVALID_ARG; - if ((mode != UCL_CIPHER_DECRYPT) && - (mode != UCL_CIPHER_ENCRYPT)) + } + + if ((mode != UCL_CIPHER_DECRYPT) && (mode != UCL_CIPHER_ENCRYPT)) { return UCL_INVALID_MODE; - if ((keylen != UCL_AES_KEYLEN_128) && - (keylen != UCL_AES_KEYLEN_192) && - (keylen != UCL_AES_KEYLEN_256)) + } + + if ((keylen != UCL_AES_KEYLEN_128) && (keylen != UCL_AES_KEYLEN_192) && (keylen != UCL_AES_KEYLEN_256)) { return UCL_INVALID_ARG; + } + ucl_aes_ecb_init(&ctx, key, keylen, mode); ucl_aes_ecb_core(dst, &ctx, src, len); ucl_aes_ecb_finish(&ctx); + return UCL_OK; } int ucl_aes_ecb_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, int mode) { - int i; - if (ctx == NULL) - return UCL_INVALID_OUTPUT; - if (key == NULL) - return UCL_INVALID_INPUT; - if ((keylen != UCL_AES_KEYLEN_128) && - (keylen != UCL_AES_KEYLEN_192) && - (keylen != UCL_AES_KEYLEN_256)) - return UCL_INVALID_ARG; - ctx->mode = mode; - for(i=0;i<(int)keylen;i++) - ctx->origin_key[i]=key[i]; - ctx->origin_keylen=(int)keylen; - if (mode == UCL_CIPHER_ENCRYPT) - aes_set_ekey(&ctx->key, key, keylen); - else if (mode == UCL_CIPHER_DECRYPT) - aes_set_dkey(&ctx->key, key, keylen); - else - return UCL_INVALID_MODE; - return UCL_OK; + int i; + if (ctx == NULL) { + return UCL_INVALID_OUTPUT; + } + + if (key == NULL) { + return UCL_INVALID_INPUT; + } + + if ((keylen != UCL_AES_KEYLEN_128) && (keylen != UCL_AES_KEYLEN_192) && (keylen != UCL_AES_KEYLEN_256)) { + return UCL_INVALID_ARG; + } + + ctx->mode = mode; + for (i = 0; i < (int)keylen; i++) { + ctx->origin_key[i] = key[i]; + } + + ctx->origin_keylen = (int)keylen; + + if (mode == UCL_CIPHER_ENCRYPT) { + aes_set_ekey(&ctx->key, key, keylen); + } else if (mode == UCL_CIPHER_DECRYPT) { + aes_set_dkey(&ctx->key, key, keylen); + } else { + return UCL_INVALID_MODE; + } + + return UCL_OK; } int ucl_aes_ecb_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len) { - u8 *data_end; int ret; - if ((ctx == NULL) || (dst == NULL)) + + if ((ctx == NULL) || (dst == NULL)) { return UCL_INVALID_OUTPUT; - if (src == NULL) + } + + if (src == NULL) { return UCL_INVALID_INPUT; - if ((len % UCL_AES_BLOCKSIZE) != 0) + } + + if ((len % UCL_AES_BLOCKSIZE) != 0) { return UCL_INVALID_ARG; + } + data_end = len + src; - if (ctx->mode == UCL_CIPHER_ENCRYPT) - { - while (src != data_end) - { - aes_encrypt(dst, src, &ctx->key); - src += UCL_AES_BLOCKSIZE; - dst += UCL_AES_BLOCKSIZE; - } - } - else - if (ctx->mode == UCL_CIPHER_DECRYPT) - { - while (src != data_end) - { - aes_decrypt(dst, src, &ctx->key); - src += UCL_AES_BLOCKSIZE; - dst += UCL_AES_BLOCKSIZE; - } - } + + if (ctx->mode == UCL_CIPHER_ENCRYPT) { + while (src != data_end) { + aes_encrypt(dst, src, &ctx->key); + src += UCL_AES_BLOCKSIZE; + dst += UCL_AES_BLOCKSIZE; + } + } else if (ctx->mode == UCL_CIPHER_DECRYPT) { + while (src != data_end) { + aes_decrypt(dst, src, &ctx->key); + src += UCL_AES_BLOCKSIZE; + dst += UCL_AES_BLOCKSIZE; + } + } + return UCL_OK; } int ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx) { - if (ctx == NULL) + if (ctx == NULL) { return UCL_INVALID_OUTPUT; + } + memset((unsigned char *)ctx, 0, sizeof(*ctx)); + return UCL_OK; } diff --git a/Libraries/FCL/src/ucl_rng.c b/Libraries/FCL/src/ucl_rng.c index 5ef1a7cdb2c..db45216eb0d 100644 --- a/Libraries/FCL/src/ucl_rng.c +++ b/Libraries/FCL/src/ucl_rng.c @@ -1,42 +1,54 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: RNG -* Description: proposes a PRNG -* Filename: ucl_rng.c -* Author: LSL -* Compiler: gcc -* -******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #include #include #include @@ -51,30 +63,32 @@ //this is not secure for ECDSA signatures, as being pseudo random number generator //this is for test and demo only -int ucl_rng_read(u8 *rand,u32 rand_byteLen) +int ucl_rng_read(u8 *rand, u32 rand_byteLen) { - int msgi,j; - static u8 pseudo[16]={0x11,0x22,0x33,0x44,0x55,0x00,0x11,0x22,0x33,0x44,0x55,0x00,0x11,0x22,0x33,0x44}; - u8 output[32],input[16]; - u8 blocksize; - blocksize=16; - - - for(msgi=0;msgi<(int)rand_byteLen;) - { - for(j=0;j #include + #ifdef HASH_SHA256 #include @@ -52,8 +63,7 @@ static u32 _wsb_b2w(u8 *src) { - return ((u32)src[3] | ((u32)src[2] << 8) | - ((u32)src[1] << 16) | ((u32)src[0] << 24)); + return ((u32)src[3] | ((u32)src[2] << 8) | ((u32)src[1] << 16) | ((u32)src[0] << 24)); } static void _wsb_w2b(u8 *dst, u32 src) @@ -71,8 +81,7 @@ void swapcpy_b2w(u32 *dst, const u8 *src, u32 wordlen) { int i; - for (i = 0 ; i < (int)wordlen ; i++) - { + for (i = 0; i < (int)wordlen; i++) { dst[i] = _wsb_b2w((u8 *) src); src += 4; } @@ -83,8 +92,7 @@ void swapcpy_w2b(u8 *dst, const u32 *src, u32 wordlen) { int i; - for (i = 0 ; i < (int)wordlen ; i++) - { + for (i = 0; i < (int)wordlen; i++) { _wsb_w2b(dst, src[i]); dst += 4; } @@ -95,8 +103,7 @@ void swapcpy_b2b(u8 *dst, u8 *src, u32 wordlen) u8 tmp; int i; - for (i = 0 ; i < (int)wordlen ; i++) - { + for (i = 0; i < (int)wordlen; i++) { tmp = src[0]; dst[0] = src[3]; dst[3] = tmp; @@ -112,8 +119,10 @@ void swapcpy_b2b(u8 *dst, u8 *src, u32 wordlen) int ucl_sha256_init(ucl_sha256_ctx_t *ctx) { - if (ctx == NULL) + if (ctx == NULL) { return UCL_INVALID_INPUT; + } + ctx->state[0] = 0x6A09E667; ctx->state[1] = 0xBB67AE85; ctx->state[2] = 0x3C6EF372; @@ -122,7 +131,7 @@ int ucl_sha256_init(ucl_sha256_ctx_t *ctx) ctx->state[5] = 0x9b05688c; ctx->state[6] = 0x1f83d9ab; ctx->state[7] = 0x5be0cd19; - + ctx->count[0] = 0; ctx->count[1] = 0; @@ -132,17 +141,21 @@ int ucl_sha256_init(ucl_sha256_ctx_t *ctx) int ucl_sha256_core(ucl_sha256_ctx_t *ctx, u8 *data, u32 dataLen) { u32 indexh, partLen, i; - if (ctx == NULL) + if (ctx == NULL) { return UCL_INVALID_INPUT; + } - if ((data == NULL) || (dataLen == 0)) + if ((data == NULL) || (dataLen == 0)) { return UCL_NOP; + } + /** Compute number of bytes mod 64 */ indexh = (u32)((ctx->count[1] >> 3) & 0x3F); /** Update number of bits */ - if ((ctx->count[1] += ((u32)dataLen << 3)) < ((u32)dataLen << 3)) + if ((ctx->count[1] += ((u32)dataLen << 3)) < ((u32)dataLen << 3)) { ctx->count[0]++; + } ctx->count[0] += ((u32)dataLen >> 29); @@ -150,26 +163,21 @@ int ucl_sha256_core(ucl_sha256_ctx_t *ctx, u8 *data, u32 dataLen) /** Process 512-bits block as many times as possible. */ - if (dataLen >= partLen) - { + if (dataLen >= partLen) { memcpy(&ctx->buffer[indexh], data, partLen); swapcpy_b2b(ctx->buffer, ctx->buffer, 16); sha256_stone(ctx->state, (u32 *) ctx->buffer); - for (i = partLen; i + 63 < dataLen; i += 64) - { + for (i = partLen; i + 63 < dataLen; i += 64) { swapcpy_b2b(ctx->buffer, &data[i], 16); sha256_stone(ctx->state, (u32 *) ctx->buffer); } indexh = 0; - } - - else - { + } else { i = 0; } @@ -189,12 +197,15 @@ int ucl_sha256_finish(u8 *hash, ucl_sha256_ctx_t *ctx) padding[0] = 0x80; memset(padding + 1, 0, 63); - - if (hash == NULL) + + if (hash == NULL) { return UCL_INVALID_OUTPUT; + } - if (ctx == NULL) + if (ctx == NULL) { return UCL_INVALID_INPUT; + } + /** Save number of bits */ swapcpy_w2b(bits, ctx->count, 2); @@ -216,16 +227,20 @@ int ucl_sha256_finish(u8 *hash, ucl_sha256_ctx_t *ctx) return UCL_OK; } + int ucl_sha256(u8 *hash, u8 *message, u32 byteLength) { ucl_sha256_ctx_t ctx; - if (hash == NULL) + if (hash == NULL) { return UCL_INVALID_OUTPUT; + } ucl_sha256_init(&ctx); ucl_sha256_core(&ctx, message, byteLength); ucl_sha256_finish(hash, &ctx); + return UCL_OK; } -#endif//HASH_SHA256 + +#endif // HASH_SHA256 diff --git a/Libraries/FCL/src/ucl_sha3.c b/Libraries/FCL/src/ucl_sha3.c index ce2bd7670f8..40e6bba1286 100644 --- a/Libraries/FCL/src/ucl_sha3.c +++ b/Libraries/FCL/src/ucl_sha3.c @@ -1,383 +1,475 @@ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + //SHA3 implementation //this implementation used the implementation from Markku-Juhani O.Saarinen //as a starting point -/******************************************************************************* -* Copyright (C) 2017 Maxim Integrated Products, Inc., All rights Reserved. -* -* This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -******************************************************************************* - -The MIT License (MIT) - -Copyright (c) 2015 Markku-Juhani O. Saarinen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - + #include #ifdef HASH_SHA3 #include #include #include #include -#include "ucl/ucl_sha3.h" +#include #include #define N_ROUNDS 24 //the specialization for keccak-f from keccak-p #define ROTL64(x, y) (((x) << (y)) | ((x) >> ((sizeof(u64)*8) - (y)))) -const u64 kcf_rc[24] = {0x0000000000000001,0x0000000000008082,0x800000000000808a,0x8000000080008000,0x000000000000808b,0x0000000080000001,0x8000000080008081,0x8000000000008009,0x000000000000008a,0x0000000000000088,0x0000000080008009,0x000000008000000a,0x000000008000808b,0x800000000000008b,0x8000000000008089,0x8000000000008003,0x8000000000008002,0x8000000000000080,0x000000000000800a,0x800000008000000a,0x8000000080008081,0x8000000000008080,0x0000000080000001,0x8000000080008008}; +const u64 kcf_rc[24] = {0x0000000000000001, 0x0000000000008082, 0x800000000000808a, 0x8000000080008000, 0x000000000000808b, 0x0000000080000001, 0x8000000080008081, 0x8000000000008009, 0x000000000000008a, 0x0000000000000088, 0x0000000080008009, 0x000000008000000a, 0x000000008000808b, 0x800000000000008b, 0x8000000000008089, 0x8000000000008003, 0x8000000000008002, 0x8000000000000080, 0x000000000000800a, 0x800000008000000a, 0x8000000080008081, 0x8000000000008080, 0x0000000080000001, 0x8000000080008008}; static const u8 kcf_rho[24] = {1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 2, 14, 27, 41, 56, 8, 25, 43, 62, 18, 39, 61, 20, 44}; static const u8 kcf_pilane[24] = {10, 7, 11, 17, 18, 3, 5, 16, 8, 21, 24, 4, 15, 23, 19, 13, 12, 2, 20, 14, 22, 9, 6, 1}; -// generally called after SHA3_SPONGE_WORDS-ctx->capacityWords words - // are XORed into the state s +// generally called after SHA3_SPONGE_WORDS-ctx->capacityWords words + // are XORed into the state s static void kcf(u64 state[25]) { - int i, j, round; - u64 t, c[5]; - - //I(chi(Pi(ro(theta( - for(round = 0; round < N_ROUNDS; round++) - { - // Theta - for(i = 0; i < 5; i++) - c[i] = state[i] ^ state[i + 5] ^ state[i + 10] ^ state[i + 15] ^ state[i + 20]; - for(i = 0; i < 5; i++) - { - t = c[(i + 4) % 5] ^ (u64)ROTL64(c[(i + 1) % 5], 1); - for(j = 0; j < 25; j += 5) - state[j + i] ^= t; - } - // Rho Pi - t = state[1]; - for(i = 0; i < 24; i++) - { - j = (int)kcf_pilane[i]; - c[0] = state[j]; - state[j] = (u64)ROTL64(t, kcf_rho[i]); - t = c[0]; - } - // Chi - for(j = 0; j < 25; j += 5) - { - for(i = 0; i < 5; i++) - c[i] = state[j + i]; - for(i = 0; i < 5; i++) - state[j + i] ^= (~c[(i + 1) % 5]) & c[(i + 2) % 5]; - } - // Iota - state[0] ^= kcf_rc[round]; + int i, j, round; + u64 t, c[5]; + + //I(chi(Pi(ro(theta( + for (round = 0; round < N_ROUNDS; round++) { + // Theta + for (i = 0; i < 5; i++) { + c[i] = state[i] ^ state[i + 5] ^ state[i + 10] ^ state[i + 15] ^ state[i + 20]; + } + + for (i = 0; i < 5; i++) { + t = c[(i + 4) % 5] ^ (u64)ROTL64(c[(i + 1) % 5], 1); + + for (j = 0; j < 25; j += 5) { + state[j + i] ^= t; + } + } + + // Rho Pi + t = state[1]; + for (i = 0; i < 24; i++) { + j = (int)kcf_pilane[i]; + c[0] = state[j]; + state[j] = (u64)ROTL64(t, kcf_rho[i]); + t = c[0]; + } + + // Chi + for (j = 0; j < 25; j += 5) { + for (i = 0; i < 5; i++) { + c[i] = state[j + i]; + } + + for (i = 0; i < 5; i++) { + state[j + i] ^= (~c[(i + 1) % 5]) & c[(i + 2) % 5]; + } + } + + // Iota + state[0] ^= kcf_rc[round]; } } -int ucl_shake128_init(ucl_sha3_ctx_t *ctx) +int ucl_shake128_init(ucl_sha3_ctx_t *ctx) { - if(NULL==ctx) - return(UCL_INVALID_INPUT); - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 2 * 128 / (8 * sizeof(u64)); - return(UCL_OK); + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + memset(ctx, 0, sizeof(*ctx)); + ctx->capacityWords = 2 * 128 / (8 * sizeof(u64)); + + return(UCL_OK); } -int ucl_sha3_224_init(ucl_sha3_ctx_t *ctx) +int ucl_sha3_224_init(ucl_sha3_ctx_t *ctx) { - if(NULL==ctx) - return(UCL_INVALID_INPUT); - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 448 / (8 * sizeof(u64)); - return(UCL_OK); + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + memset(ctx, 0, sizeof(*ctx)); + ctx->capacityWords = 448 / (8 * sizeof(u64)); + + return(UCL_OK); } -int ucl_sha3_256_init(ucl_sha3_ctx_t *ctx) +int ucl_sha3_256_init(ucl_sha3_ctx_t *ctx) { - if(NULL==ctx) - return(UCL_INVALID_INPUT); - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 512 / (8 * sizeof(u64)); - return(UCL_OK); + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + memset(ctx, 0, sizeof(*ctx)); + ctx->capacityWords = 512 / (8 * sizeof(u64)); + + return(UCL_OK); } int ucl_shake256_init(ucl_sha3_ctx_t *ctx) { - return(ucl_sha3_256_init(ctx)); + return(ucl_sha3_256_init(ctx)); } -int ucl_sha3_384_init(ucl_sha3_ctx_t *ctx) +int ucl_sha3_384_init(ucl_sha3_ctx_t *ctx) { - if(NULL==ctx) - return(UCL_INVALID_INPUT); - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 768 / (8 * sizeof(u64)); - return(UCL_OK); - } - -int ucl_sha3_512_init(ucl_sha3_ctx_t *ctx) + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + memset(ctx, 0, sizeof(*ctx)); + ctx->capacityWords = 768 / (8 * sizeof(u64)); + + return(UCL_OK); +} + +int ucl_sha3_512_init(ucl_sha3_ctx_t *ctx) { - if(NULL==ctx) - return(UCL_INVALID_INPUT); - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 1024 / (8 * sizeof(u64)); - return(UCL_OK); + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + memset(ctx, 0, sizeof(*ctx)); + ctx->capacityWords = 1024 / (8 * sizeof(u64)); + + return(UCL_OK); } int ucl_sha3_core(ucl_sha3_ctx_t *ctx, const u8 *bufIn, u32 len) { - u32 old_tail = (8 - ctx->byteIndex) & 7; - size_t words; - int tail; - size_t i; - const u8 *buf = bufIn; - if(NULL==ctx) - return(UCL_INVALID_INPUT); - if(NULL==bufIn) - return(UCL_INVALID_INPUT); - if(len < old_tail) - { - while (len--) - ctx->saved |= (u64) (*(buf++)) << ((ctx->byteIndex++) * 8); - return(UCL_OK); - } - if(old_tail) - { - len -= old_tail; - while (old_tail--) - ctx->saved |= (u64) (*(buf++)) << ((ctx->byteIndex++) * 8); - ctx->s[ctx->wordIndex] ^= ctx->saved; - ctx->byteIndex = 0; - ctx->saved = 0; - if(++ctx->wordIndex == ((int)SHA3_SPONGE_WORDS - ctx->capacityWords)) - { - kcf(ctx->s); - ctx->wordIndex = 0; - } - } - words = len / sizeof(u64); - tail = (int)(len - words * sizeof(u64)); - for(i = 0; i < words; i++, buf += sizeof(u64)) - { - const u64 t = (u64) (buf[0]) | - ((u64) (buf[1]) << 8 * 1) | - ((u64) (buf[2]) << 8 * 2) | - ((u64) (buf[3]) << 8 * 3) | - ((u64) (buf[4]) << 8 * 4) | - ((u64) (buf[5]) << 8 * 5) | - ((u64) (buf[6]) << 8 * 6) | - ((u64) (buf[7]) << 8 * 7); - ctx->s[ctx->wordIndex] ^= t; - if(++ctx->wordIndex == ((int)SHA3_SPONGE_WORDS - ctx->capacityWords)) - { - kcf(ctx->s); - ctx->wordIndex = 0; - } - } - while (tail--) - { - ctx->saved |= (u64) (*(buf++)) << ((ctx->byteIndex++) * 8); - } - return(UCL_OK); + u32 old_tail = (8 - ctx->byteIndex) & 7; + size_t words; + int tail; + size_t i; + const u8 *buf = bufIn; + + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + if (NULL == bufIn) { + return(UCL_INVALID_INPUT); + } + + if (len < old_tail) { + while (len--) { + ctx->saved |= (u64) (*(buf++)) << ((ctx->byteIndex++) * 8); + } + + return(UCL_OK); + } + + if (old_tail) { + len -= old_tail; + while (old_tail--) + ctx->saved |= (u64) (*(buf++)) << ((ctx->byteIndex++) * 8); + ctx->s[ctx->wordIndex] ^= ctx->saved; + ctx->byteIndex = 0; + ctx->saved = 0; + if (++ctx->wordIndex == ((int)SHA3_SPONGE_WORDS - ctx->capacityWords)) { + kcf(ctx->s); + ctx->wordIndex = 0; + } + } + + words = len / sizeof(u64); + tail = (int)(len - words * sizeof(u64)); + + for (i = 0; i < words; i++, buf += sizeof(u64)) { + const u64 t = (u64) (buf[0]) | ((u64) (buf[1]) << 8 * 1) | ((u64) (buf[2]) << 8 * 2) | ((u64) (buf[3]) << 8 * 3) | ((u64) (buf[4]) << 8 * 4) | ((u64) (buf[5]) << 8 * 5) | ((u64) (buf[6]) << 8 * 6) | ((u64) (buf[7]) << 8 * 7); + ctx->s[ctx->wordIndex] ^= t; + if (++ctx->wordIndex == ((int)SHA3_SPONGE_WORDS - ctx->capacityWords)){ + kcf(ctx->s); + ctx->wordIndex = 0; + } + } + + while (tail--) { + ctx->saved |= (u64) (*(buf++)) << ((ctx->byteIndex++) * 8); + } + + return(UCL_OK); } -int ucl_sha3_finish(u8 *digest,ucl_sha3_ctx_t *ctx) +int ucl_sha3_finish(u8 *digest, ucl_sha3_ctx_t *ctx) { - // SHA3 version - ctx->s[ctx->wordIndex] ^= (ctx->saved ^ ((u64) ((u64) (0x02 | (1 << 2)) << ((ctx->byteIndex) * 8)))); - ctx->s[(int)SHA3_SPONGE_WORDS - ctx->capacityWords - 1] ^= (u64)0x8000000000000000UL; - kcf(ctx->s); - - int i; - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - if(NULL==ctx) - return(UCL_INVALID_INPUT); - for(i = 0; i < (int)SHA3_SPONGE_WORDS; i++) { - const u32 t1 = (u32) ctx->s[i]; - const u32 t2 = (u32) ((ctx->s[i] >> 16) >> 16); - ctx->sb[i * 8 + 0] = (u8) (t1); - ctx->sb[i * 8 + 1] = (u8) (t1 >> 8); - ctx->sb[i * 8 + 2] = (u8) (t1 >> 16); - ctx->sb[i * 8 + 3] = (u8) (t1 >> 24); - ctx->sb[i * 8 + 4] = (u8) (t2); - ctx->sb[i * 8 + 5] = (u8) (t2 >> 8); - ctx->sb[i * 8 + 6] = (u8) (t2 >> 16); - ctx->sb[i * 8 + 7] = (u8) (t2 >> 24); - } - for(i=0;i<(int)SHA3_SPONGE_WORDS * 8;i++) - digest[i]=ctx->sb[i]; - return(UCL_OK); + // SHA3 version + ctx->s[ctx->wordIndex] ^= (ctx->saved ^ ((u64) ((u64) (0x02 | (1 << 2)) << ((ctx->byteIndex) * 8)))); + ctx->s[(int)SHA3_SPONGE_WORDS - ctx->capacityWords - 1] ^= (u64)0x8000000000000000UL; + kcf(ctx->s); + + int i; + + if (NULL == digest) { + return(UCL_INVALID_OUTPUT); + } + + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + for (i = 0; i < (int)SHA3_SPONGE_WORDS; i++) { + const u32 t1 = (u32) ctx->s[i]; + const u32 t2 = (u32) ((ctx->s[i] >> 16) >> 16); + ctx->sb[i * 8 + 0] = (u8) (t1); + ctx->sb[i * 8 + 1] = (u8) (t1 >> 8); + ctx->sb[i * 8 + 2] = (u8) (t1 >> 16); + ctx->sb[i * 8 + 3] = (u8) (t1 >> 24); + ctx->sb[i * 8 + 4] = (u8) (t2); + ctx->sb[i * 8 + 5] = (u8) (t2 >> 8); + ctx->sb[i * 8 + 6] = (u8) (t2 >> 16); + ctx->sb[i * 8 + 7] = (u8) (t2 >> 24); + } + + for (i = 0; i < (int)SHA3_SPONGE_WORDS * 8; i++) { + digest[i] = ctx->sb[i]; + } + + return(UCL_OK); } -int ucl_shake_finish(u8 *digest,ucl_sha3_ctx_t *ctx) +int ucl_shake_finish(u8 *digest, ucl_sha3_ctx_t *ctx) { - int i; - if(NULL==ctx) - return(UCL_INVALID_INPUT); - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - ctx->s[ctx->wordIndex] ^= (ctx->saved ^ ((u64) (0x1F) << ((ctx->byteIndex) * 8))); - i=(int)SHA3_SPONGE_WORDS - ctx->capacityWords - 1; - ctx->s[(int)SHA3_SPONGE_WORDS - ctx->capacityWords - 1] ^= (u64)(0x8000000000000000UL); - kcf(ctx->s); - - for(i = 0; i < (int)SHA3_SPONGE_WORDS; i++) - { - const u32 t1 = (u32) ctx->s[i]; - const u32 t2 = (u32) ((ctx->s[i] >> 16) >> 16); - ctx->sb[i * 8 + 0] = (u8) (t1); - ctx->sb[i * 8 + 1] = (u8) (t1 >> 8); - ctx->sb[i * 8 + 2] = (u8) (t1 >> 16); - ctx->sb[i * 8 + 3] = (u8) (t1 >> 24); - ctx->sb[i * 8 + 4] = (u8) (t2); - ctx->sb[i * 8 + 5] = (u8) (t2 >> 8); - ctx->sb[i * 8 + 6] = (u8) (t2 >> 16); - ctx->sb[i * 8 + 7] = (u8) (t2 >> 24); - } - for(i=0;i<(int)SHA3_SPONGE_WORDS * 8;i++) - digest[i]=ctx->sb[i]; - return(UCL_OK); + int i; + + if (NULL == ctx) { + return(UCL_INVALID_INPUT); + } + + if (NULL == digest) { + return(UCL_INVALID_OUTPUT); + } + + ctx->s[ctx->wordIndex] ^= (ctx->saved ^ ((u64) (0x1F) << ((ctx->byteIndex) * 8))); + i = (int)SHA3_SPONGE_WORDS - ctx->capacityWords - 1; + ctx->s[(int)SHA3_SPONGE_WORDS - ctx->capacityWords - 1] ^= (u64)(0x8000000000000000UL); + kcf(ctx->s); + + for (i = 0; i < (int)SHA3_SPONGE_WORDS; i++) { + const u32 t1 = (u32) ctx->s[i]; + const u32 t2 = (u32) ((ctx->s[i] >> 16) >> 16); + ctx->sb[i * 8 + 0] = (u8) (t1); + ctx->sb[i * 8 + 1] = (u8) (t1 >> 8); + ctx->sb[i * 8 + 2] = (u8) (t1 >> 16); + ctx->sb[i * 8 + 3] = (u8) (t1 >> 24); + ctx->sb[i * 8 + 4] = (u8) (t2); + ctx->sb[i * 8 + 5] = (u8) (t2 >> 8); + ctx->sb[i * 8 + 6] = (u8) (t2 >> 16); + ctx->sb[i * 8 + 7] = (u8) (t2 >> 24); + } + + for (i = 0; i < (int)SHA3_SPONGE_WORDS * 8; i++) { + digest[i] = ctx->sb[i]; + } + + return(UCL_OK); } -int ucl_sha3_224(u8 *digest,u8 *msg,u32 msgLen) +int ucl_sha3_224(u8 *digest, u8 *msg, u32 msgLen) { -ucl_sha3_ctx_t ctx; - if(NULL==msg) - return(UCL_INVALID_INPUT); - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - if(UCL_OK!=ucl_sha3_224_init(&ctx)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_core(&ctx,msg,msgLen)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_finish(digest,&ctx)) - return(UCL_ERROR); - return(UCL_OK); + ucl_sha3_ctx_t ctx; + if (NULL == msg) { + return(UCL_INVALID_INPUT); + } + + if (NULL == digest) { + return(UCL_INVALID_OUTPUT); + } + + if (UCL_OK != ucl_sha3_224_init(&ctx)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_core(&ctx, msg, msgLen)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_finish(digest, &ctx)) { + return(UCL_ERROR); + } + + return(UCL_OK); } -int ucl_sha3_256(u8 *digest,u8 *msg,u32 msgLen) + +int ucl_sha3_256(u8 *digest, u8 *msg, u32 msgLen) { -ucl_sha3_ctx_t ctx; - if(NULL==msg) - return(UCL_INVALID_INPUT); - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - - if(UCL_OK!=ucl_sha3_256_init(&ctx)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_core(&ctx,msg,msgLen)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_finish(digest,&ctx)) - return(UCL_ERROR); - return(UCL_OK); + ucl_sha3_ctx_t ctx; + + if (NULL == msg) { + return(UCL_INVALID_INPUT); + } + + if (NULL == digest) + return(UCL_INVALID_OUTPUT); + + if (UCL_OK != ucl_sha3_256_init(&ctx)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_core(&ctx, msg, msgLen)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_finish(digest, &ctx)) { + return(UCL_ERROR); + } + + return(UCL_OK); } -int ucl_shake128(u8 *digest,u8 *msg,u32 msgLen) + +int ucl_shake128(u8 *digest, u8 *msg, u32 msgLen) { -ucl_sha3_ctx_t ctx; - if(NULL==msg) - return(UCL_INVALID_INPUT); - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - - if(UCL_OK!=ucl_shake128_init(&ctx)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_core(&ctx,msg,msgLen)) - return(UCL_ERROR); - if(UCL_OK!=ucl_shake_finish(digest,&ctx)) - return(UCL_ERROR); - return(UCL_OK); + ucl_sha3_ctx_t ctx; + + if (NULL == msg) { + return(UCL_INVALID_INPUT); + } + + if (NULL == digest) { + return(UCL_INVALID_OUTPUT); + } + + if (UCL_OK != ucl_shake128_init(&ctx)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_core(&ctx, msg, msgLen)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_shake_finish(digest, &ctx)) { + return(UCL_ERROR); + } + + return(UCL_OK); } -int ucl_sha3_384(u8 *digest,u8 *msg,u32 msgLen) +int ucl_sha3_384(u8 *digest, u8 *msg, u32 msgLen) { -ucl_sha3_ctx_t ctx; - if(NULL==msg) - return(UCL_INVALID_INPUT); - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - - if(UCL_OK!=ucl_sha3_384_init(&ctx)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_core(&ctx,msg,msgLen)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_finish(digest,&ctx)) - return(UCL_ERROR); - return(UCL_OK); + ucl_sha3_ctx_t ctx; + + if (NULL == msg) { + return(UCL_INVALID_INPUT); + } + + if (NULL == digest) { + return(UCL_INVALID_OUTPUT); + } + + if (UCL_OK != ucl_sha3_384_init(&ctx)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_core(&ctx, msg, msgLen)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_finish(digest, &ctx)) { + return(UCL_ERROR); + } + + return(UCL_OK); } -int ucl_sha3_512(u8 *digest,u8 *msg,u32 msgLen) + +int ucl_sha3_512(u8 *digest, u8 *msg, u32 msgLen) { -ucl_sha3_ctx_t ctx; - if(NULL==msg) - return(UCL_INVALID_INPUT); - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - - if(UCL_OK!=ucl_sha3_512_init(&ctx)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_core(&ctx,msg,msgLen)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_finish(digest,&ctx)) - return(UCL_ERROR); - return(UCL_OK); + ucl_sha3_ctx_t ctx; + if (NULL == msg) { + return(UCL_INVALID_INPUT); + } + + if (NULL == digest) { + return(UCL_INVALID_OUTPUT); + } + + if (UCL_OK != ucl_sha3_512_init(&ctx)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_core(&ctx, msg, msgLen)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_finish(digest, &ctx)) { + return(UCL_ERROR); + } + + return(UCL_OK); } -int ucl_shake256(u8 *digest,u8 *msg,u32 msgLen) + +int ucl_shake256(u8 *digest, u8 *msg, u32 msgLen) { -ucl_sha3_ctx_t ctx; - if(NULL==msg) - return(UCL_INVALID_INPUT); - if(NULL==digest) - return(UCL_INVALID_OUTPUT); - - if(UCL_OK!=ucl_shake256_init(&ctx)) - return(UCL_ERROR); - if(UCL_OK!=ucl_sha3_core(&ctx,msg,msgLen)) - return(UCL_ERROR); - if(UCL_OK!=ucl_shake_finish(digest,&ctx)) - return(UCL_ERROR); - return(UCL_OK); + ucl_sha3_ctx_t ctx; + if (NULL == msg) { + return(UCL_INVALID_INPUT); + } + + if (NULL == digest) { + return(UCL_INVALID_OUTPUT); + } + + if (UCL_OK != ucl_shake256_init(&ctx)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_sha3_core(&ctx, msg, msgLen)) { + return(UCL_ERROR); + } + + if (UCL_OK != ucl_shake_finish(digest, &ctx)) { + return(UCL_ERROR); + } + + return(UCL_OK); } + #endif//SHA3 diff --git a/Libraries/FCL/src/ucl_sha384.c b/Libraries/FCL/src/ucl_sha384.c index 4c1e1618bae..e9804fa9c43 100644 --- a/Libraries/FCL/src/ucl_sha384.c +++ b/Libraries/FCL/src/ucl_sha384.c @@ -1,32 +1,60 @@ -/*============================================================================ +/****************************************************************************** * - * ucl_sha384.c + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * - *==========================================================================*/ -/*============================================================================ + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. * - * Copyright © 2018 Maxim Integrated. All rights reserved. Do not disclose. - * All Rights Reserved. Do not disclose. + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. * - * This software is the confidential and proprietary information of - * Innova Card ("Confidential Information"). You shall not - * disclose such Confidential Information and shall use it only in - * accordance with the terms of the license agreement you entered - * into with Maxim Integrated. + ****************************************************************************** * - * Maxim Integrated makes no representations or warranties about the suitability of - * the software, either express or implied, including but not limited to - * the implied warranties of merchantability, fitness for a particular purpose, - * or non-infrigement. Innova Card shall not be liable for any damages suffered - * by licensee as the result of using, modifying or distributing this software - * or its derivatives. + * Copyright 2023 Analog Devices, Inc. * - *==========================================================================*/ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + /*============================================================================ * * Purpose : SHA384 * - *==========================================================================*/ + *========================================================================== */ + #include #include #ifdef HASH_SHA384 @@ -36,16 +64,18 @@ #include #include -#include "ucl/ucl_sha384.h" +#include #include -#include "ucl/bignum_ecdsa_generic_api.h" +#include extern int using_sha_hardware; int __API__ ucl_sha384_init(ucl_sha384_ctx_t *ctx) { - if (ctx == NULL) + if (ctx == NULL) { return UCL_INVALID_INPUT; + } + ctx->state[0] = 0xcbbb9d5dc1059ed8ULL; ctx->state[1] = 0x629a292a367cd507ULL; ctx->state[2] = 0x9159015a3070dd17ULL; @@ -54,7 +84,7 @@ int __API__ ucl_sha384_init(ucl_sha384_ctx_t *ctx) ctx->state[5] = 0x8eb44a8768581511ULL; ctx->state[6] = 0xdb0c2e0d64f98fa7ULL; ctx->state[7] = 0x47b5481dbefa4fa4ULL; - + ctx->count[0] = 0; ctx->count[1] = 0; @@ -63,28 +93,34 @@ int __API__ ucl_sha384_init(ucl_sha384_ctx_t *ctx) int ucl_sha384_core(ucl_sha384_ctx_t *ctx, u8 *data, u32 dataLen) { - return(ucl_sha512_core(ctx,data,dataLen)); + return(ucl_sha512_core(ctx, data, dataLen)); } - int ucl_sha384_finish(u8 *hash, ucl_sha384_ctx_t *ctx) { - u8 sha512_hash[64]; - int i; + u8 sha512_hash[64]; + int i; - ucl_sha512_finish(sha512_hash,ctx); - for(i=0;i #ifdef HASH_SHA512 #include -#include "ucl/ucl_sha512.h" +#include #include #include -#include "ucl/bignum_ecdsa_generic_api.h" +#include void _wsb_ll2b(u8 *dst, u64 src) { - dst[7] = src & 0xFF; - src >>= 8; - dst[6] = src & 0xFF; - src >>= 8; - dst[5] = src & 0xFF; - src >>= 8; - dst[4] = src & 0xFF; - src >>= 8; - dst[3] =src & 0xFF; - src >>= 8; - dst[2] = src & 0xFF; - src >>= 8; - dst[1] = src & 0xFF; - src >>= 8; - dst[0] = src & 0xFF; + dst[7] = src & 0xFF; + src >>= 8; + dst[6] = src & 0xFF; + src >>= 8; + dst[5] = src & 0xFF; + src >>= 8; + dst[4] = src & 0xFF; + src >>= 8; + dst[3] = src & 0xFF; + src >>= 8; + dst[2] = src & 0xFF; + src >>= 8; + dst[1] = src & 0xFF; + src >>= 8; + dst[0] = src & 0xFF; } void swapcpy_ll2b(u8 *dst, const u64 *src, u32 wordlen) { int i; - for (i = 0 ; i < (int)wordlen ; i++) - { + for (i = 0; i < (int)wordlen; i++) { _wsb_ll2b(dst, src[i]); dst += 8; } @@ -81,8 +93,7 @@ void swapcpy_b2b64(u8 *dst, u8 *src, u32 wordlen) u8 tmp; int i; - for (i = 0 ; i < (int)wordlen ; i++) - { + for (i = 0; i < (int)wordlen; i++) { tmp = src[0]; dst[0] = src[7]; dst[7] = tmp; @@ -103,8 +114,10 @@ void swapcpy_b2b64(u8 *dst, u8 *src, u32 wordlen) int ucl_sha512_init(ucl_sha512_ctx_t *ctx) { - if (ctx == NULL) + if (ctx == NULL) { return UCL_INVALID_INPUT; + } + ctx->state[0] = 0x6a09e667f3bcc908ULL; ctx->state[1] = 0xbb67ae8584caa73bULL; ctx->state[2] = 0x3c6ef372fe94f82bULL; @@ -122,30 +135,35 @@ int ucl_sha512_init(ucl_sha512_ctx_t *ctx) int ucl_sha512_core(ucl_sha512_ctx_t *ctx, u8 *data, u32 dataLen) { u32 indexh, partLen, i; - if (ctx == NULL) + + if (ctx == NULL) { return UCL_INVALID_INPUT; - if ((data == NULL) || (dataLen == 0)) + } + + if ((data == NULL) || (dataLen == 0)) { return UCL_NOP; + } + indexh = (u32)((ctx->count[1] >> 3) & 0x7F); - ctx->count[1]+=(u64)(dataLen << 3); + ctx->count[1] += (u64)(dataLen << 3); ctx->count[0] += ((u64)dataLen >> 29); partLen = 128 - indexh; - if (dataLen >= partLen) - { + + if (dataLen >= partLen) { memcpy(&ctx->buffer[indexh], data, partLen); - swapcpy_b2b64(ctx->buffer, ctx->buffer, 16); + swapcpy_b2b64(ctx->buffer, ctx->buffer, 16); sha512_stone(ctx->state, (u64 *) ctx->buffer); - for (i = partLen; i + 127 < dataLen; i += 128) - { + + for (i = partLen; i + 127 < dataLen; i += 128) { swapcpy_b2b64(ctx->buffer, &data[i], 16); sha512_stone(ctx->state, (u64 *) ctx->buffer); - } + } + indexh = 0; - } - else - { + } else { i = 0; - } + } + memcpy(&ctx->buffer[indexh], &data[i], dataLen - i); return UCL_OK; } @@ -155,28 +173,41 @@ int ucl_sha512_finish(u8 *hash, ucl_sha512_ctx_t *ctx) u8 bits[16]; u64 indexh, padLen; u8 padding[128]; + padding[0] = 0x80; memset(padding + 1, 0, 127); - if (hash == NULL) + + if (hash == NULL) { return UCL_INVALID_OUTPUT; - if (ctx == NULL) + } + + if (ctx == NULL) { return UCL_INVALID_INPUT; + } + swapcpy_ll2b(bits, ctx->count, 2); indexh = (u32)((ctx->count[1] >> 3) & 0x7f); padLen = (indexh < 112) ? (112 - indexh) : (240 - indexh); + ucl_sha512_core(ctx, padding, (u32)padLen); ucl_sha512_core(ctx, bits, 16); swapcpy_ll2b(hash, ctx->state, 8); + return UCL_OK; } + int ucl_sha512(u8 *hash, u8 *message, u32 byteLength) { ucl_sha512_ctx_t ctx; - if (hash == NULL) + + if (hash == NULL) { return UCL_INVALID_OUTPUT; + } + ucl_sha512_init(&ctx); ucl_sha512_core(&ctx, message, byteLength); ucl_sha512_finish(hash, &ctx); return UCL_OK; } + #endif//HASH_SHA512 diff --git a/Libraries/FCL/src/ucl_sia256.c b/Libraries/FCL/src/ucl_sia256.c index e079bc9fb67..65017b07158 100644 --- a/Libraries/FCL/src/ucl_sia256.c +++ b/Libraries/FCL/src/ucl_sia256.c @@ -1,27 +1,54 @@ -//------------Copyright (C) 2012 Maxim Integrated Products -------------- -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL MAXIM INTEGRATED PRODCUTS BE LIABLE FOR ANY CLAIM, DAMAGES -// OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// -// Except as contained in this notice, the name of Maxim Integrated Products -// shall not be used except as stated in the Maxim Integrated Products -// Branding Policy. -// --------------------------------------------------------------------------- +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + // // ucl_sia256.c - SHA-256 implementation in software compliant with Maxim devices. // @@ -30,13 +57,13 @@ #include #ifdef HASH_SIA256 +#include + #include "ucl/ucl_config.h" #include "ucl/ucl_types.h" #include "ucl/ucl_defs.h" #include "ucl/ucl_retdefs.h" -#include - #define SHA_256_INITIAL_LENGTH 8 @@ -63,34 +90,32 @@ void sha_prepareSchedule(u8* message); void sha256_hashblock(u8* message, u32 lastblock); -// hold secret for creating a +// hold secret for creating a static u8 SECRET[32]; // SHA-256 globals values -u32 SHA_256_Initial[] = -{ - 0x6a09e667, - 0xbb67ae85, - 0x3c6ef372, - 0xa54ff53a, - 0x510e527f, - 0x9b05688c, - 0x1f83d9ab, - 0x5be0cd19 +u32 SHA_256_Initial[] = { + 0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19 }; -u32 SHA_CONSTANTS[] = -{ - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, - 0xca273ece, 0xd186b8c7, 0xeada7dd6, 0xf57d4f7f, 0x06f067aa, 0x0a637dc5, 0x113f9804, 0x1b710b35, - 0x28db77f5, 0x32caab7b, 0x3c9ebe0a, 0x431d67c4, 0x4cc5d4be, 0x597f299c, 0x5fcb6fab, 0x6c44198c +u32 SHA_CONSTANTS[] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, + 0xca273ece, 0xd186b8c7, 0xeada7dd6, 0xf57d4f7f, 0x06f067aa, 0x0a637dc5, 0x113f9804, 0x1b710b35, + 0x28db77f5, 0x32caab7b, 0x3c9ebe0a, 0x431d67c4, 0x4cc5d4be, 0x597f299c, 0x5fcb6fab, 0x6c44198c }; u8 workbuffer[128]; @@ -98,20 +123,21 @@ u8 workbuffer[128]; u32 a32, b32, c32, d32, e32, f32, g32, h32; // SHA working variables u32 W32[16]; // SHA message schedule u32 H32[8]; // last SHA result variables - -int reverse_endian=1; -int sha_debug=1; + +int reverse_endian = 1; +int sha_debug = 1; //---------------------------------------------------------------------- // Set the Secret to be used for calculating MAC's in the ComputeMAC // function. // void set_secret(u8 *secret) -{ - int i; +{ + int i; - for (i = 0; i < 32; i++) - SECRET[i] = secret[i]; + for (i = 0; i < 32; i++) { + SECRET[i] = secret[i]; + } } //---------------------------------------------------------------------- @@ -126,53 +152,49 @@ void set_secret(u8 *secret) // int ComputeMAC256(u8* MT, int length, u8* MAC) { - int i,j; - u8 tmp[4]; - - // check for two block format - if (length == 119) - { - // insert secret - memcpy(&MT[64], &SECRET[0], 32); - - // change to little endian for A1 devices - if (reverse_endian) - { - for (i = 0; i < 108; i+=4) - { - for (j = 0; j < 4; j++) - tmp[3 - j] = MT[i + j]; - - for (j = 0; j < 4; j++) - MT[i + j] = tmp[j]; - } - } - - ComputeSHA256(MT, 119, UCL_TRUE, UCL_TRUE, MAC); - } - // one block format - else - { - // insert secret - memcpy(&MT[0], &SECRET[0], 32); - - // change to little endian for A1 devices - if (reverse_endian) - { - for (i = 0; i < 56; i+=4) - { - for (j = 0; j < 4; j++) - tmp[3 - j] = MT[i + j]; - - for (j = 0; j < 4; j++) - MT[i + j] = tmp[j]; - } - } - - ComputeSHA256(MT, 55, UCL_TRUE, UCL_TRUE, MAC); - } - - return (UCL_OK); + int i, j; + u8 tmp[4]; + + // check for two block format + if (length == 119) { + // insert secret + memcpy(&MT[64], &SECRET[0], 32); + + // change to little endian for A1 devices + if (reverse_endian) { + for (i = 0; i < 108; i += 4) { + for (j = 0; j < 4; j++) { + tmp[3 - j] = MT[i + j]; + } + + for (j = 0; j < 4; j++) { + MT[i + j] = tmp[j]; + } + } + } + + ComputeSHA256(MT, 119, UCL_TRUE, UCL_TRUE, MAC); + } else { // one block format + // insert secret + memcpy(&MT[0], &SECRET[0], 32); + + // change to little endian for A1 devices + if (reverse_endian) { + for (i = 0; i < 56; i += 4) { + for (j = 0; j < 4; j++) { + tmp[3 - j] = MT[i + j]; + } + + for (j = 0; j < 4; j++) { + MT[i + j] = tmp[j]; + } + } + } + + ComputeSHA256(MT, 55, UCL_TRUE, UCL_TRUE, MAC); + } + + return (UCL_OK); } //---------------------------------------------------------------------- @@ -188,26 +210,27 @@ int ComputeMAC256(u8* MT, int length, u8* MAC) // int VerifyMAC256(u8* MT, int length, u8* compare_MAC) { - u8 calc_mac[32]; - int i; - - // calculate the MAC - ComputeMAC256(MT, length, calc_mac); - - // Compare calculated mac with one read from device - for (i = 0; i < 32; i++) - { - if (compare_MAC[i] != calc_mac[i]) - return(UCL_ERROR); - } - return(UCL_OK); + u8 calc_mac[32]; + int i; + + // calculate the MAC + ComputeMAC256(MT, length, calc_mac); + + // Compare calculated mac with one read from device + for (i = 0; i < 32; i++) { + if (compare_MAC[i] != calc_mac[i]) { + return(UCL_ERROR); + } + } + + return(UCL_OK); } //---------------------------------------------------------------------- // Performs a Compute Next SHA-256 calculation given the provided 32-bytes // of binding data and 8 byte partial secret. The first 8 bytes of the // resulting MAC is set as the new secret. -// +// // 'binding' - 32 byte buffer containing the binding data // 'partial' - 8 byte buffer with new partial secret // 'page_num' - page number that the compute is calculated on @@ -220,31 +243,31 @@ int VerifyMAC256(u8* MT, int length, u8* compare_MAC) // int CalculateNextSecret256(u8* binding, u8* partial, int page_num, u8* manid) { - u8 MT[128]; - u8 MAC[64]; + u8 MT[128]; + u8 MAC[64]; - // clear - memset(MT,0,128); + // clear + memset(MT, 0, 128); - // insert page data - memcpy(&MT[0],binding,32); + // insert page data + memcpy(&MT[0], binding, 32); - // insert challenge - memcpy(&MT[32],partial,32); + // insert challenge + memcpy(&MT[32], partial, 32); - // insert ROM number or FF - // memcpy(&MT[96],ROM_NO,8); + // insert ROM number or FF + // memcpy(&MT[96], ROM_NO, 8); - MT[106] = (u8)page_num; - MT[105] = manid[0]; - MT[104] = manid[1]; + MT[106] = (u8)page_num; + MT[105] = manid[0]; + MT[104] = manid[1]; - ComputeMAC256(MT, 119, MAC); + ComputeMAC256(MT, 119, MAC); - // set the new secret to the first 32 bytes of MAC - set_secret(MAC); + // set the new secret to the first 32 bytes of MAC + set_secret(MAC); - return(UCL_OK); + return(UCL_OK); } //---------------------------------------------------------------------- @@ -252,7 +275,7 @@ int CalculateNextSecret256(u8* binding, u8* partial, int page_num, u8* manid) // u32 sha_ch(u32 x, u32 y, u32 z) { - return (x & y) ^ ((~x) & z); + return (x & y) ^ ((~x) & z); } //---------------------------------------------------------------------- @@ -260,10 +283,11 @@ u32 sha_ch(u32 x, u32 y, u32 z) // u32 sha_maj(u32 x, u32 y, u32 z) { - u32 temp = x & y; - temp ^= (x & z); - temp ^= (y & z); - return temp; //(x & y) ^ (x & z) ^ (y & z); + u32 temp = x & y; + + temp ^= (x & z); + temp ^= (y & z); + return temp; //(x & y) ^ (x & z) ^ (y & z); } //---------------------------------------------------------------------- @@ -271,8 +295,8 @@ u32 sha_maj(u32 x, u32 y, u32 z) // u32 sha_rotr_32(u32 val, u32 r) { - val = val & 0xFFFFFFFFL; - return ((val >> r) | (val << (32 - r))) & 0xFFFFFFFFL; + val = val & 0xFFFFFFFFL; + return ((val >> r) | (val << (32 - r))) & 0xFFFFFFFFL; } //---------------------------------------------------------------------- @@ -280,8 +304,8 @@ u32 sha_rotr_32(u32 val, u32 r) // u32 sha_shr_32(u32 val, u32 r) { - val = val & 0xFFFFFFFFL; - return val >> r; + val = val & 0xFFFFFFFFL; + return val >> r; } //---------------------------------------------------------------------- @@ -289,7 +313,7 @@ u32 sha_shr_32(u32 val, u32 r) // u32 sha_bigsigma256_0(u32 x) { - return sha_rotr_32(x,2) ^ sha_rotr_32(x,13) ^ sha_rotr_32(x,22); + return sha_rotr_32(x, 2) ^ sha_rotr_32(x, 13) ^ sha_rotr_32(x, 22); } //---------------------------------------------------------------------- @@ -297,7 +321,7 @@ u32 sha_bigsigma256_0(u32 x) // u32 sha_bigsigma256_1(u32 x) { - return sha_rotr_32(x,6) ^ sha_rotr_32(x,11) ^ sha_rotr_32(x,25); + return sha_rotr_32(x, 6) ^ sha_rotr_32(x, 11) ^ sha_rotr_32(x, 25); } //---------------------------------------------------------------------- @@ -305,7 +329,7 @@ u32 sha_bigsigma256_1(u32 x) // u32 sha_littlesigma256_0(u32 x) { - return sha_rotr_32(x,7) ^ sha_rotr_32(x,18) ^ sha_shr_32(x,3); + return sha_rotr_32(x, 7) ^ sha_rotr_32(x, 18) ^ sha_shr_32(x, 3); } //---------------------------------------------------------------------- @@ -313,7 +337,7 @@ u32 sha_littlesigma256_0(u32 x) // u32 sha_littlesigma256_1(u32 x) { - return sha_rotr_32(x,17) ^ sha_rotr_32(x,19) ^ sha_shr_32(x,10); + return sha_rotr_32(x, 17) ^ sha_rotr_32(x, 19) ^ sha_shr_32(x, 10); } //---------------------------------------------------------------------- @@ -321,11 +345,10 @@ u32 sha_littlesigma256_1(u32 x) // void sha_copy32(u32* p1, u32* p2, u32 length) { - while (length > 0) - { - *p2++ = *p1++; - length--; - } + while (length > 0) { + *p2++ = *p1++; + length--; + } } //---------------------------------------------------------------------- @@ -336,8 +359,7 @@ void sha_copyWordsToBytes32(u32* input, u8* output, u32 numwords) u32 temp; u32 i; - for (i=0;i> 24); *output++ = (u8)(temp >> 16); @@ -351,21 +373,18 @@ void sha_copyWordsToBytes32(u32* input, u8* output, u32 numwords) // void sha_writeResult(u32 reverse, u8* outpointer) { - int i; - u8 tmp; - - sha_copyWordsToBytes32(H32, outpointer, 8); + int i; + u8 tmp; - if (reverse) - { - for (i = 0; i < 16; i++) - { - tmp = outpointer[i]; - outpointer[i] = outpointer[31-i]; - outpointer[31-i] = tmp; - } - } + sha_copyWordsToBytes32(H32, outpointer, 8); + if (reverse) { + for (i = 0; i < 16; i++) { + tmp = outpointer[i]; + outpointer[i] = outpointer[31-i]; + outpointer[31-i] = tmp; + } + } } //---------------------------------------------------------------------- @@ -373,19 +392,16 @@ void sha_writeResult(u32 reverse, u8* outpointer) // u32 sha_getW(int indexh) { - u32 newW; - if (indexh < 16) - { - return W32[indexh]; - } - - newW = sha_littlesigma256_1(W32[(indexh-2)&0x0f]) + - W32[(indexh-7)&0x0f] + - sha_littlesigma256_0(W32[(indexh-15)&0x0f]) + - W32[(indexh-16)&0x0f]; - W32[indexh & 0x0f] = newW & 0xFFFFFFFFL; // just in case... - - return newW; + u32 newW; + + if (indexh < 16) { + return W32[indexh]; + } + + newW = sha_littlesigma256_1(W32[(indexh-2)&0x0f]) + W32[(indexh-7)&0x0f] + sha_littlesigma256_0(W32[(indexh-15)&0x0f]) + W32[(indexh-16)&0x0f]; + W32[indexh & 0x0f] = newW & 0xFFFFFFFFL; // just in case... + + return newW; } //---------------------------------------------------------------------- @@ -393,208 +409,192 @@ u32 sha_getW(int indexh) // void sha_prepareSchedule(u8* message) { - // we need to copy the initial message into the 16 W registers - u32 i,j; - u32 temp; - for (i = 0; i < 16; i++) - { - temp = 0; - for (j = 0; j < 4;j++) - { - temp = temp << 8; - temp = temp | (*message & 0xff); - message++; - } - - W32[i] = temp; - } + // we need to copy the initial message into the 16 W registers + u32 i, j; + u32 temp; + + for (i = 0; i < 16; i++) { + temp = 0; + + for (j = 0; j < 4; j++) { + temp = temp << 8; + temp = temp | (*message & 0xff); + message++; + } + + W32[i] = temp; + } } //---------------------------------------------------------------------- -// Hash a single block of data. +// Hash a single block of data. // void sha256_hashblock(u8* message, u32 lastblock) { - u32 sha1counter = 0; - u32 sha1functionselect = 0; - u32 i; - u32 nodeT1, nodeT2; - - u32 Wt, Kt; - - // chunk the original message into the working schedule - sha_prepareSchedule(message); - - a32 = H32[0]; - b32 = H32[1]; - c32 = H32[2]; - d32 = H32[3]; - e32 = H32[4]; - f32 = H32[5]; - g32 = H32[6]; - h32 = H32[7]; - - // rounds - for (i = 0; i < 64; i++) - { - Wt = sha_getW((int)i); - Kt = SHA_CONSTANTS[i]; - - nodeT1 = (h32 + sha_bigsigma256_1(e32) + sha_ch(e32,f32,g32) + Kt + Wt); // & 0xFFFFFFFFL; - nodeT2 = (sha_bigsigma256_0(a32) + sha_maj(a32,b32,c32)); // & 0xFFFFFFFFL; - h32 = g32; - g32 = f32; - f32 = e32; - e32 = d32 + nodeT1; - d32 = c32; - c32 = b32; - b32 = a32; - a32 = nodeT1 + nodeT2; - - sha1counter++; - if (sha1counter==20) - { - sha1functionselect++; - sha1counter = 0; - } - - } - - if (!lastblock) - { - // now fix up our H array - H32[0] += a32; - H32[1] += b32; - H32[2] += c32; - H32[3] += d32; - H32[4] += e32; - H32[5] += f32; - H32[6] += g32; - H32[7] += h32; - } - else - { - // now fix up our H array - H32[0] = a32; - H32[1] = b32; - H32[2] = c32; - H32[3] = d32; - H32[4] = e32; - H32[5] = f32; - H32[6] = g32; - H32[7] = h32; - } + u32 sha1counter = 0; + u32 sha1functionselect = 0; + u32 i; + u32 nodeT1, nodeT2; + u32 Wt, Kt; + + // chunk the original message into the working schedule + sha_prepareSchedule(message); + + a32 = H32[0]; + b32 = H32[1]; + c32 = H32[2]; + d32 = H32[3]; + e32 = H32[4]; + f32 = H32[5]; + g32 = H32[6]; + h32 = H32[7]; + + // rounds + for (i = 0; i < 64; i++) { + Wt = sha_getW((int)i); + Kt = SHA_CONSTANTS[i]; + + nodeT1 = (h32 + sha_bigsigma256_1(e32) + sha_ch(e32, f32, g32) + Kt + Wt); // & 0xFFFFFFFFL; + nodeT2 = (sha_bigsigma256_0(a32) + sha_maj(a32, b32, c32)); // & 0xFFFFFFFFL; + h32 = g32; + g32 = f32; + f32 = e32; + e32 = d32 + nodeT1; + d32 = c32; + c32 = b32; + b32 = a32; + a32 = nodeT1 + nodeT2; + + sha1counter++; + if (sha1counter == 20) { + sha1functionselect++; + sha1counter = 0; + } + } + + if (!lastblock) { + // now fix up our H array + H32[0] += a32; + H32[1] += b32; + H32[2] += c32; + H32[3] += d32; + H32[4] += e32; + H32[5] += f32; + H32[6] += g32; + H32[7] += h32; + } else { + // now fix up our H array + H32[0] = a32; + H32[1] = b32; + H32[2] = c32; + H32[3] = d32; + H32[4] = e32; + H32[5] = f32; + H32[6] = g32; + H32[7] = h32; + } } //---------------------------------------------------------------------- -// Computes SHA-256 given the data block 'message' with no padding. -// The result is returned in 'digest'. +// Computes SHA-256 given the data block 'message' with no padding. +// The result is returned in 'digest'. // -// 'message' - buffer containing the message -// 'skipconst' - skip adding constant on last block (skipconst=1) -// 'reverse' - reverse order of digest (reverse=1, MSWord first, LSByte first) +// 'message' - buffer containing the message +// 'skipconst' - skip adding constant on last block (skipconst = 1) +// 'reverse' - reverse order of digest (reverse = 1, MSWord first, LSByte first) // 'digest' - result hash digest in byte order used by 1-Wire device // int ComputeSHA256(u8* message, int length, u32 skipconst, u32 reverse, u8* digest) { - u32 bytes_per_block; - u32 nonpaddedlength; - u32 numblocks; - u32 i,j; - u32 bitlength; - u32 markerwritten; - u32 lastblock; - - u32 wordsize = 32; - - - // if wordsize is 32 bits, we need 512 bit blocks. else 1024 bit blocks. - // that means 16 words are in one message. - bytes_per_block = 16 * (wordsize / 8); - // 1 byte for the '80' that follows the message, 8 or 16 bytes of length - nonpaddedlength = (u32)length + 1 + (wordsize/4); - numblocks = nonpaddedlength / bytes_per_block; - if ((nonpaddedlength % bytes_per_block) != 0) - { - // then there is some remainder we need to pad - numblocks++; - } - - sha_copy32(SHA_256_Initial, H32, SHA_256_INITIAL_LENGTH); - - bitlength = 8 * (u32)length; - markerwritten = 0; - // 'length' is our number of bytes remaining. - for (i = 0; i < numblocks; i++) - { - if ((u32)length > bytes_per_block) - { - memcpy(workbuffer, message, bytes_per_block); - length -= (int)bytes_per_block; - } - else if (length==(int)bytes_per_block) - { - memcpy(workbuffer, message, (size_t)length); - length = 0; - } - else // length is less than number of bytes in a block - { - memcpy(workbuffer, message, (size_t)length); - // message is now used for temporary space - message = workbuffer + length; - if (markerwritten == 0) - { - *message++ = 0x80; - length++; - } - - while (length < (int)bytes_per_block) - { - // this loop is inserting padding, in this case all zeroes - *message++ = 0; - length++; - } - length = 0; - // signify that we have already written the 80h - markerwritten = 1; - } - - // on the last block, put the bit length at the very end - lastblock = (i == (numblocks - 1)); - if (lastblock) - { - // point at the last byte in the block - message = workbuffer + bytes_per_block - 1; - for (j = 0; j < wordsize/4; j++) - { - *message-- = (u8)bitlength; - bitlength = bitlength >> 8; - } - } - - // SHA in software - sha256_hashblock(workbuffer, (u32)(lastblock && skipconst)); - message += bytes_per_block; - } - - sha_writeResult(reverse, digest); - - - return (UCL_OK); + u32 bytes_per_block; + u32 nonpaddedlength; + u32 numblocks; + u32 i, j; + u32 bitlength; + u32 markerwritten; + u32 lastblock; + + u32 wordsize = 32; + + // if wordsize is 32 bits, we need 512 bit blocks. else 1024 bit blocks. + // that means 16 words are in one message. + bytes_per_block = 16 * (wordsize / 8); + // 1 byte for the '80' that follows the message, 8 or 16 bytes of length + nonpaddedlength = (u32)length + 1 + (wordsize/4); + numblocks = nonpaddedlength / bytes_per_block; + if ((nonpaddedlength % bytes_per_block) != 0) { + // then there is some remainder we need to pad + numblocks++; + } + + sha_copy32(SHA_256_Initial, H32, SHA_256_INITIAL_LENGTH); + + bitlength = 8 * (u32)length; + markerwritten = 0; + + // 'length' is our number of bytes remaining. + for (i = 0; i < numblocks; i++) { + if ((u32)length > bytes_per_block) { + memcpy(workbuffer, message, bytes_per_block); + length -= (int)bytes_per_block; + } else if (length == (int)bytes_per_block) { + memcpy(workbuffer, message, (size_t)length); + length = 0; + } else { // length is less than number of bytes in a block + memcpy(workbuffer, message, (size_t)length); + // message is now used for temporary space + message = workbuffer + length; + if (markerwritten == 0) + { + *message++ = 0x80; + length++; + } + + while (length < (int)bytes_per_block) + { + // this loop is inserting padding, in this case all zeroes + *message++ = 0; + length++; + } + length = 0; + // signify that we have already written the 80h + markerwritten = 1; + } + + // on the last block, put the bit length at the very end + lastblock = (i == (numblocks - 1)); + if (lastblock) { + // point at the last byte in the block + message = workbuffer + bytes_per_block - 1; + for (j = 0; j < wordsize/4; j++) { + *message--= (u8)bitlength; + bitlength = bitlength >> 8; + } + } + + // SHA in software + sha256_hashblock(workbuffer, (u32)(lastblock && skipconst)); + message += bytes_per_block; + } + + sha_writeResult(reverse, digest); + + return (UCL_OK); } int __API__ ucl_sia256(u8 *hash, u8 *data, u32 data_byteLen) { -//---------------------------------------------------------------------- -// Computes SHA-256 given the data block 'message' with no padding. -// The result is returned in 'digest'. -// -// 'message' - buffer containing the message -// 'skipconst' - skip adding constant on last block (skipconst=1) -// 'reverse' - reverse order of digest (reverse=1, MSWord first, LSByte first) -// 'digest' - result hash digest in byte order used by 1-Wire device -// - return(ComputeSHA256(data, (int)data_byteLen, 1,0,hash)); + //---------------------------------------------------------------------- + // Computes SHA-256 given the data block 'message' with no padding. + // The result is returned in 'digest'. + // + // 'message' - buffer containing the message + // 'skipconst' - skip adding constant on last block (skipconst = 1) + // 'reverse' - reverse order of digest (reverse = 1, MSWord first, LSByte first) + // 'digest' - result hash digest in byte order used by 1-Wire device + // + return(ComputeSHA256(data, (int)data_byteLen, 1, 0, hash)); } + #endif//SIA256 #endif//PROFILE2 diff --git a/Libraries/FCL/src/ucl_sys.c b/Libraries/FCL/src/ucl_sys.c index cf751773bab..b6a3928e7b6 100644 --- a/Libraries/FCL/src/ucl_sys.c +++ b/Libraries/FCL/src/ucl_sys.c @@ -1,42 +1,54 @@ -/******************************************************************************* -* Copyright (C) 2015 Maxim Integrated Products, Inc., All rights Reserved. -* * This software is protected by copyright laws of the United States and -* of foreign countries. This material may also be protected by patent laws -* and technology transfer regulations of the United States and of foreign -* countries. This software is furnished under a license agreement and/or a -* nondisclosure agreement and may only be used or reproduced in accordance -* with the terms of those agreements. Dissemination of this information to -* any party or parties not specified in the license agreement and/or -* nondisclosure agreement is expressly prohibited. -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Except as contained in this notice, the name of Maxim Integrated -* Products, Inc. shall not be used except as stated in the Maxim Integrated -* Products, Inc. Branding Policy. -* -* The mere transfer of this software does not imply any licenses -* of trade secrets, proprietary technology, copyrights, patents, -* trademarks, maskwork rights, or any other form of intellectual -* property whatsoever. Maxim Integrated Products, Inc. retains all -* ownership rights. -* Module Name: SYS -* Description: performs s -* Filename: ucl_sys.c -* Author: LSL -* Compiler: gcc -* -******************************************************************************* - */ +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Maxim Integrated + * Products, Inc. shall not be used except as stated in the Maxim Integrated + * Products, Inc. Branding Policy. + * + * The mere transfer of this software does not imply any licenses + * of trade secrets, proprietary technology, copyrights, patents, + * trademarks, maskwork rights, or any other form of intellectual + * property whatsoever. Maxim Integrated Products, Inc. retains all + * ownership rights. + * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #include "ucl/ucl_config.h" #include "ucl/ucl_defs.h" #include "ucl/ucl_retdefs.h" @@ -65,19 +77,19 @@ __API__ int hash_size[MAX_HASH_FUNCTIONS]; int __API__ ucl_init(void) { #ifdef HASH_SHA256 - hash_size[UCL_SHA256]=UCL_SHA256_HASHSIZE; + hash_size[UCL_SHA256] = UCL_SHA256_HASHSIZE; #endif #ifdef HASH_SHA512 - hash_size[UCL_SHA512]=UCL_SHA256_HASHSIZE; + hash_size[UCL_SHA512] = UCL_SHA256_HASHSIZE; #endif #ifdef HASH_SHA384 - hash_size[UCL_SHA384]=UCL_SHA256_HASHSIZE; + hash_size[UCL_SHA384] = UCL_SHA256_HASHSIZE; #endif #ifdef HASH_SHA3 - hash_size[UCL_SHA3]=UCL_SHA3_512_HASHSIZE; + hash_size[UCL_SHA3] = UCL_SHA3_512_HASHSIZE; #endif #ifdef HASH_SIA256 - hash_size[UCL_SIA256]=UCL_SIA256_HASHSIZE; + hash_size[UCL_SIA256] = UCL_SIA256_HASHSIZE; #endif return(UCL_OK); } diff --git a/Libraries/FreeRTOS/Makefile b/Libraries/FreeRTOS/Makefile index fbe46f03396..485fb053ce1 100644 --- a/Libraries/FreeRTOS/Makefile +++ b/Libraries/FreeRTOS/Makefile @@ -1,37 +1,53 @@ -################################################################################ -# Copyright (C) 2014 Maxim Integrated Products, Inc., All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of Maxim Integrated -# Products, Inc. shall not be used except as stated in the Maxim Integrated -# Products, Inc. Branding Policy. -# -# The mere transfer of this software does not imply any licenses -# of trade secrets, proprietary technology, copyrights, patents, -# trademarks, maskwork rights, or any other form of intellectual -# property whatsoever. Maxim Integrated Products, Inc. retains all -# ownership rights. -# -# $Id: Makefile_arm_cm4f 22023 2016-03-21 20:41:55Z zach.metzinger $ -# -################################################################################ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file override PROJECT=librtos diff --git a/Libraries/FreeRTOS/freertos.mk b/Libraries/FreeRTOS/freertos.mk index 018b4a9ce63..2a35a7d9701 100644 --- a/Libraries/FreeRTOS/freertos.mk +++ b/Libraries/FreeRTOS/freertos.mk @@ -1,37 +1,53 @@ -################################################################################ -# Copyright (C) 2014 Maxim Integrated Products, Inc., All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of Maxim Integrated -# Products, Inc. shall not be used except as stated in the Maxim Integrated -# Products, Inc. Branding Policy. -# -# The mere transfer of this software does not imply any licenses -# of trade secrets, proprietary technology, copyrights, patents, -# trademarks, maskwork rights, or any other form of intellectual -# property whatsoever. Maxim Integrated Products, Inc. retains all -# ownership rights. -# -# $Id: freertos.mk 16493 2015-02-03 20:19:08Z jeremy.brodt $ -# -################################################################################ +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/LVGL/lvgl.mk b/Libraries/LVGL/lvgl.mk index 6cb696bd280..a54c6359ad7 100644 --- a/Libraries/LVGL/lvgl.mk +++ b/Libraries/LVGL/lvgl.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(LVGL_DIR)" "" # If LVGL_DIR is not specified, this Makefile will locate itself. diff --git a/Libraries/MAXUSB/Makefile b/Libraries/MAXUSB/Makefile index 678be4045b6..5d8582f4806 100644 --- a/Libraries/MAXUSB/Makefile +++ b/Libraries/MAXUSB/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2018-12-12 10:32:14 -0600 (Wed, 12 Dec 2018) $ - # $Revision: 39790 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file override PROJECT=maxusb diff --git a/Libraries/MAXUSB/include/core/arm/usb_hwopt.h b/Libraries/MAXUSB/include/core/arm/usb_hwopt.h index a7d105d7aea..cdb66843549 100644 --- a/Libraries/MAXUSB/include/core/arm/usb_hwopt.h +++ b/Libraries/MAXUSB/include/core/arm/usb_hwopt.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_ARM_USB_HWOPT_H_ diff --git a/Libraries/MAXUSB/include/core/maxq/maxqusb.h b/Libraries/MAXUSB/include/core/maxq/maxqusb.h index 53db2fd9d8a..c5773f1f7cc 100644 --- a/Libraries/MAXUSB/include/core/maxq/maxqusb.h +++ b/Libraries/MAXUSB/include/core/maxq/maxqusb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_MAXQ_MAXQUSB_H_ diff --git a/Libraries/MAXUSB/include/core/maxq/usb_hwopt.h b/Libraries/MAXUSB/include/core/maxq/usb_hwopt.h index 999f6c92c76..a1ee6bdc6bd 100644 --- a/Libraries/MAXUSB/include/core/maxq/usb_hwopt.h +++ b/Libraries/MAXUSB/include/core/maxq/usb_hwopt.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_MAXQ_USB_HWOPT_H_ diff --git a/Libraries/MAXUSB/include/core/maxq/usb_regs_maxq.h b/Libraries/MAXUSB/include/core/maxq/usb_regs_maxq.h index 3792746e2b8..0a86f1131fd 100644 --- a/Libraries/MAXUSB/include/core/maxq/usb_regs_maxq.h +++ b/Libraries/MAXUSB/include/core/maxq/usb_regs_maxq.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_MAXQ_USB_REGS_MAXQ_H_ diff --git a/Libraries/MAXUSB/include/core/maxq/usbio_maxq.h b/Libraries/MAXUSB/include/core/maxq/usbio_maxq.h index da311920527..013bf3e0949 100644 --- a/Libraries/MAXUSB/include/core/maxq/usbio_maxq.h +++ b/Libraries/MAXUSB/include/core/maxq/usbio_maxq.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_MAXQ_USBIO_MAXQ_H_ #define LIBRARIES_MAXUSB_INCLUDE_CORE_MAXQ_USBIO_MAXQ_H_ diff --git a/Libraries/MAXUSB/include/core/musbhsfc/usb_hwopt.h b/Libraries/MAXUSB/include/core/musbhsfc/usb_hwopt.h index 3debb6caabe..47778256edd 100644 --- a/Libraries/MAXUSB/include/core/musbhsfc/usb_hwopt.h +++ b/Libraries/MAXUSB/include/core/musbhsfc/usb_hwopt.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_MUSBHSFC_USB_HWOPT_H_ diff --git a/Libraries/MAXUSB/include/core/usb.h b/Libraries/MAXUSB/include/core/usb.h index 899f78bcc8f..50e57ea53e2 100644 --- a/Libraries/MAXUSB/include/core/usb.h +++ b/Libraries/MAXUSB/include/core/usb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_USB_H_ diff --git a/Libraries/MAXUSB/include/core/usb_event.h b/Libraries/MAXUSB/include/core/usb_event.h index 3e5b7dc4bf7..8988a21f058 100644 --- a/Libraries/MAXUSB/include/core/usb_event.h +++ b/Libraries/MAXUSB/include/core/usb_event.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Libraries/MAXUSB/include/core/usb_protocol.h b/Libraries/MAXUSB/include/core/usb_protocol.h index 060261c0ad5..0baf5aff8d9 100644 --- a/Libraries/MAXUSB/include/core/usb_protocol.h +++ b/Libraries/MAXUSB/include/core/usb_protocol.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_CORE_USB_PROTOCOL_H_ diff --git a/Libraries/MAXUSB/include/dbg_log/dbg_log.h b/Libraries/MAXUSB/include/dbg_log/dbg_log.h index 9781e092fa2..ac009acb49b 100644 --- a/Libraries/MAXUSB/include/dbg_log/dbg_log.h +++ b/Libraries/MAXUSB/include/dbg_log/dbg_log.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_DBG_LOG_DBG_LOG_H_ diff --git a/Libraries/MAXUSB/include/devclass/ccid.h b/Libraries/MAXUSB/include/devclass/ccid.h index a41aaab389c..3220714b01a 100644 --- a/Libraries/MAXUSB/include/devclass/ccid.h +++ b/Libraries/MAXUSB/include/devclass/ccid.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_DEVCLASS_CCID_H_ diff --git a/Libraries/MAXUSB/include/devclass/cdc_acm.h b/Libraries/MAXUSB/include/devclass/cdc_acm.h index 719ebc77943..8737f6da01c 100644 --- a/Libraries/MAXUSB/include/devclass/cdc_acm.h +++ b/Libraries/MAXUSB/include/devclass/cdc_acm.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_DEVCLASS_CDC_ACM_H_ diff --git a/Libraries/MAXUSB/include/devclass/fifo.h b/Libraries/MAXUSB/include/devclass/fifo.h index a7898c9a2c7..7c870734208 100644 --- a/Libraries/MAXUSB/include/devclass/fifo.h +++ b/Libraries/MAXUSB/include/devclass/fifo.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/MAXUSB/include/devclass/hid.h b/Libraries/MAXUSB/include/devclass/hid.h index 0423efbb1dc..4d5a4e44568 100644 --- a/Libraries/MAXUSB/include/devclass/hid.h +++ b/Libraries/MAXUSB/include/devclass/hid.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_DEVCLASS_HID_H_ diff --git a/Libraries/MAXUSB/include/devclass/hid_kbd.h b/Libraries/MAXUSB/include/devclass/hid_kbd.h index be7897f89cd..0c9efd2269a 100644 --- a/Libraries/MAXUSB/include/devclass/hid_kbd.h +++ b/Libraries/MAXUSB/include/devclass/hid_kbd.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_DEVCLASS_HID_KBD_H_ diff --git a/Libraries/MAXUSB/include/devclass/hid_raw.h b/Libraries/MAXUSB/include/devclass/hid_raw.h index 8bedcf62630..58d8a19dc78 100644 --- a/Libraries/MAXUSB/include/devclass/hid_raw.h +++ b/Libraries/MAXUSB/include/devclass/hid_raw.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_DEVCLASS_HID_RAW_H_ diff --git a/Libraries/MAXUSB/include/devclass/msc.h b/Libraries/MAXUSB/include/devclass/msc.h index 18cfba89b2c..fbba6149083 100644 --- a/Libraries/MAXUSB/include/devclass/msc.h +++ b/Libraries/MAXUSB/include/devclass/msc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_DEVCLASS_MSC_H_ diff --git a/Libraries/MAXUSB/include/enumerate/enumerate.h b/Libraries/MAXUSB/include/enumerate/enumerate.h index cc55fe9b7af..fc506843deb 100644 --- a/Libraries/MAXUSB/include/enumerate/enumerate.h +++ b/Libraries/MAXUSB/include/enumerate/enumerate.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MAXUSB_INCLUDE_ENUMERATE_ENUMERATE_H_ diff --git a/Libraries/MAXUSB/maxusb.mk b/Libraries/MAXUSB/maxusb.mk index 6f123fae89a..c73045b61bf 100644 --- a/Libraries/MAXUSB/maxusb.mk +++ b/Libraries/MAXUSB/maxusb.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2018-12-12 10:32:14 -0600 (Wed, 12 Dec 2018) $ - # $Revision: 39790 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## ifeq "$(MAXUSB_DIR)" "" $(error MAXUSB_DIR must be specified") diff --git a/Libraries/MAXUSB/src/core/arm/usb.c b/Libraries/MAXUSB/src/core/arm/usb.c index ad09a0c4d29..a0390c61571 100644 --- a/Libraries/MAXUSB/src/core/arm/usb.c +++ b/Libraries/MAXUSB/src/core/arm/usb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/core/maxq/usb.c b/Libraries/MAXUSB/src/core/maxq/usb.c index 04e2919e235..efb472d24aa 100644 --- a/Libraries/MAXUSB/src/core/maxq/usb.c +++ b/Libraries/MAXUSB/src/core/maxq/usb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/core/maxq/usbio_maxq.c b/Libraries/MAXUSB/src/core/maxq/usbio_maxq.c index 5c99b778b9b..4e453f573e4 100644 --- a/Libraries/MAXUSB/src/core/maxq/usbio_maxq.c +++ b/Libraries/MAXUSB/src/core/maxq/usbio_maxq.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/core/musbhsfc/usb.c b/Libraries/MAXUSB/src/core/musbhsfc/usb.c index edb14cff2fa..d55d517eb09 100644 --- a/Libraries/MAXUSB/src/core/musbhsfc/usb.c +++ b/Libraries/MAXUSB/src/core/musbhsfc/usb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/core/usb_event.c b/Libraries/MAXUSB/src/core/usb_event.c index bb0fe75ea06..177026caa51 100644 --- a/Libraries/MAXUSB/src/core/usb_event.c +++ b/Libraries/MAXUSB/src/core/usb_event.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/dbg_log/dbg_log.c b/Libraries/MAXUSB/src/dbg_log/dbg_log.c index 8b9ef6cd87f..408aebe5e6a 100644 --- a/Libraries/MAXUSB/src/dbg_log/dbg_log.c +++ b/Libraries/MAXUSB/src/dbg_log/dbg_log.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/devclass/ccid.c b/Libraries/MAXUSB/src/devclass/ccid.c index 342fc60997a..76f16e941ee 100644 --- a/Libraries/MAXUSB/src/devclass/ccid.c +++ b/Libraries/MAXUSB/src/devclass/ccid.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ diff --git a/Libraries/MAXUSB/src/devclass/cdc_acm.c b/Libraries/MAXUSB/src/devclass/cdc_acm.c index ca042f73ee2..38c6e0abcbc 100644 --- a/Libraries/MAXUSB/src/devclass/cdc_acm.c +++ b/Libraries/MAXUSB/src/devclass/cdc_acm.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/devclass/fifo.c b/Libraries/MAXUSB/src/devclass/fifo.c index c1099a11328..9609363e702 100644 --- a/Libraries/MAXUSB/src/devclass/fifo.c +++ b/Libraries/MAXUSB/src/devclass/fifo.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/devclass/hid_kbd.c b/Libraries/MAXUSB/src/devclass/hid_kbd.c index 0e84cfcb07e..81599cf298e 100644 --- a/Libraries/MAXUSB/src/devclass/hid_kbd.c +++ b/Libraries/MAXUSB/src/devclass/hid_kbd.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/devclass/hid_raw.c b/Libraries/MAXUSB/src/devclass/hid_raw.c index 22d20c0c0b6..cdd4513e043 100644 --- a/Libraries/MAXUSB/src/devclass/hid_raw.c +++ b/Libraries/MAXUSB/src/devclass/hid_raw.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/devclass/msc.c b/Libraries/MAXUSB/src/devclass/msc.c index de26cd23343..656df32f3f0 100644 --- a/Libraries/MAXUSB/src/devclass/msc.c +++ b/Libraries/MAXUSB/src/devclass/msc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MAXUSB/src/enumerate/enumerate.c b/Libraries/MAXUSB/src/enumerate/enumerate.c index 299b8f364dc..1c197e11140 100644 --- a/Libraries/MAXUSB/src/enumerate/enumerate.c +++ b/Libraries/MAXUSB/src/enumerate/enumerate.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/ADC/max11261.c b/Libraries/MiscDrivers/ADC/max11261.c index a65dd75a4e4..833502b6752 100644 --- a/Libraries/MiscDrivers/ADC/max11261.c +++ b/Libraries/MiscDrivers/ADC/max11261.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/ADC/max11261.h b/Libraries/MiscDrivers/ADC/max11261.h index 0af7043b8ed..940ce0d1939 100644 --- a/Libraries/MiscDrivers/ADC/max11261.h +++ b/Libraries/MiscDrivers/ADC/max11261.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,10 +37,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef MAX11261_H_ -#define MAX11261_H_ +#ifndef LIBRARIES_MISCDRIVERS_ADC_MAX11261_H_ +#define LIBRARIES_MISCDRIVERS_ADC_MAX11261_H_ #include @@ -581,4 +599,4 @@ int max11261_adc_result(max11261_adc_result_t *res, int count); */ int max11261_adc_convert(void); -#endif /* MAX11261_H_ */ +#endif // LIBRARIES_MISCDRIVERS_ADC_MAX11261_H_ diff --git a/Libraries/MiscDrivers/ADC/max11261_regs.h b/Libraries/MiscDrivers/ADC/max11261_regs.h index 0184c5e74d9..c33738d0105 100644 --- a/Libraries/MiscDrivers/ADC/max11261_regs.h +++ b/Libraries/MiscDrivers/ADC/max11261_regs.h @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,10 +38,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef MAX11261_REGS_H_ -#define MAX11261_REGS_H_ +#ifndef LIBRARIES_MISCDRIVERS_ADC_MAX11261_REGS_H_ +#define LIBRARIES_MISCDRIVERS_ADC_MAX11261_REGS_H_ /** * @ingroup max11261_commands @@ -696,4 +714,4 @@ /**@} end of group MAX11261_LIMIT_HIGH5_Register */ -#endif /* MAX11261_REGS_H_ */ +#endif // LIBRARIES_MISCDRIVERS_ADC_MAX11261_REGS_H_ diff --git a/Libraries/MiscDrivers/BarcodeDecoder/zbar/Makefile b/Libraries/MiscDrivers/BarcodeDecoder/zbar/Makefile index 80481ac353d..971b688f3d7 100644 --- a/Libraries/MiscDrivers/BarcodeDecoder/zbar/Makefile +++ b/Libraries/MiscDrivers/BarcodeDecoder/zbar/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file PROJECT=libbarcode_decoder diff --git a/Libraries/MiscDrivers/BarcodeDecoder/zbar/barcode_decoder.mk b/Libraries/MiscDrivers/BarcodeDecoder/zbar/barcode_decoder.mk index 51e6b827730..756835a2ecc 100644 --- a/Libraries/MiscDrivers/BarcodeDecoder/zbar/barcode_decoder.mk +++ b/Libraries/MiscDrivers/BarcodeDecoder/zbar/barcode_decoder.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(BARCODE_DECODER_DIR)" "" $(error BARCODE_DECODER_DIR must be specified") diff --git a/Libraries/MiscDrivers/CODEC/max9867.c b/Libraries/MiscDrivers/CODEC/max9867.c index d895fa0c813..06403e94902 100644 --- a/Libraries/MiscDrivers/CODEC/max9867.c +++ b/Libraries/MiscDrivers/CODEC/max9867.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/CODEC/max9867.h b/Libraries/MiscDrivers/CODEC/max9867.h index 7752e34a4d8..cf55bf97963 100644 --- a/Libraries/MiscDrivers/CODEC/max9867.h +++ b/Libraries/MiscDrivers/CODEC/max9867.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CODEC_MAX9867_H_ diff --git a/Libraries/MiscDrivers/Camera/camera.c b/Libraries/MiscDrivers/Camera/camera.c index b9214f60efb..fb4be468e14 100644 --- a/Libraries/MiscDrivers/Camera/camera.c +++ b/Libraries/MiscDrivers/Camera/camera.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/camera.h b/Libraries/MiscDrivers/Camera/camera.h index 76acbc99b14..09e6744a8f4 100644 --- a/Libraries/MiscDrivers/Camera/camera.h +++ b/Libraries/MiscDrivers/Camera/camera.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_CAMERA_H_ diff --git a/Libraries/MiscDrivers/Camera/debayering.c b/Libraries/MiscDrivers/Camera/debayering.c index d75ecc4a4d3..084d5156ba8 100644 --- a/Libraries/MiscDrivers/Camera/debayering.c +++ b/Libraries/MiscDrivers/Camera/debayering.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/debayering.h b/Libraries/MiscDrivers/Camera/debayering.h index c29071b9e86..c70bc5d0fef 100644 --- a/Libraries/MiscDrivers/Camera/debayering.h +++ b/Libraries/MiscDrivers/Camera/debayering.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_DEBAYERING_H_ diff --git a/Libraries/MiscDrivers/Camera/hm01b0.c b/Libraries/MiscDrivers/Camera/hm01b0.c index 24f47fa7883..e947391d6b1 100644 --- a/Libraries/MiscDrivers/Camera/hm01b0.c +++ b/Libraries/MiscDrivers/Camera/hm01b0.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/hm01b0_regs.h b/Libraries/MiscDrivers/Camera/hm01b0_regs.h index 7c8a5e57ce7..17220b8d124 100644 --- a/Libraries/MiscDrivers/Camera/hm01b0_regs.h +++ b/Libraries/MiscDrivers/Camera/hm01b0_regs.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_HM01B0_REGS_H_ diff --git a/Libraries/MiscDrivers/Camera/hm0360_color.c b/Libraries/MiscDrivers/Camera/hm0360_color.c index deaf2723d33..b21910b894c 100644 --- a/Libraries/MiscDrivers/Camera/hm0360_color.c +++ b/Libraries/MiscDrivers/Camera/hm0360_color.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/hm0360_mono.c b/Libraries/MiscDrivers/Camera/hm0360_mono.c index 89478555c37..12a37c21b4c 100644 --- a/Libraries/MiscDrivers/Camera/hm0360_mono.c +++ b/Libraries/MiscDrivers/Camera/hm0360_mono.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/hm0360_regs.h b/Libraries/MiscDrivers/Camera/hm0360_regs.h index 18fb94b9845..18d072a47a2 100644 --- a/Libraries/MiscDrivers/Camera/hm0360_regs.h +++ b/Libraries/MiscDrivers/Camera/hm0360_regs.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_HM0360_REGS_H_ diff --git a/Libraries/MiscDrivers/Camera/mipi_camera.c b/Libraries/MiscDrivers/Camera/mipi_camera.c index 29b15fadff8..5d0b0308241 100644 --- a/Libraries/MiscDrivers/Camera/mipi_camera.c +++ b/Libraries/MiscDrivers/Camera/mipi_camera.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/mipi_camera.h b/Libraries/MiscDrivers/Camera/mipi_camera.h index ea720a362d3..0289075b974 100644 --- a/Libraries/MiscDrivers/Camera/mipi_camera.h +++ b/Libraries/MiscDrivers/Camera/mipi_camera.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_MIPI_CAMERA_H_ diff --git a/Libraries/MiscDrivers/Camera/ov5640.c b/Libraries/MiscDrivers/Camera/ov5640.c index 5e4ee10487b..732803bb2b9 100644 --- a/Libraries/MiscDrivers/Camera/ov5640.c +++ b/Libraries/MiscDrivers/Camera/ov5640.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/ov5640_regs.h b/Libraries/MiscDrivers/Camera/ov5640_regs.h index b3d4f827120..b128bf35494 100644 --- a/Libraries/MiscDrivers/Camera/ov5640_regs.h +++ b/Libraries/MiscDrivers/Camera/ov5640_regs.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_OV5640_REGS_H_ diff --git a/Libraries/MiscDrivers/Camera/ov5642.c b/Libraries/MiscDrivers/Camera/ov5642.c index 8ce9cb61733..6ec8bc1ddbf 100644 --- a/Libraries/MiscDrivers/Camera/ov5642.c +++ b/Libraries/MiscDrivers/Camera/ov5642.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/ov5642_regs.h b/Libraries/MiscDrivers/Camera/ov5642_regs.h index 66f3edb36b5..2c0e5e3a534 100644 --- a/Libraries/MiscDrivers/Camera/ov5642_regs.h +++ b/Libraries/MiscDrivers/Camera/ov5642_regs.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_OV5642_REGS_H_ diff --git a/Libraries/MiscDrivers/Camera/ov7692.c b/Libraries/MiscDrivers/Camera/ov7692.c index bd961003c07..51b3439898e 100644 --- a/Libraries/MiscDrivers/Camera/ov7692.c +++ b/Libraries/MiscDrivers/Camera/ov7692.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/ov7692_regs.h b/Libraries/MiscDrivers/Camera/ov7692_regs.h index 4a6b9cf224a..ebcf56750ca 100644 --- a/Libraries/MiscDrivers/Camera/ov7692_regs.h +++ b/Libraries/MiscDrivers/Camera/ov7692_regs.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_OV7692_REGS_H_ diff --git a/Libraries/MiscDrivers/Camera/pag7920.c b/Libraries/MiscDrivers/Camera/pag7920.c index c033cd3e5da..9507e35cd7a 100644 --- a/Libraries/MiscDrivers/Camera/pag7920.c +++ b/Libraries/MiscDrivers/Camera/pag7920.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/pag7920_regs.h b/Libraries/MiscDrivers/Camera/pag7920_regs.h index 81ee861c9cb..d6fa2bc193e 100644 --- a/Libraries/MiscDrivers/Camera/pag7920_regs.h +++ b/Libraries/MiscDrivers/Camera/pag7920_regs.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_PAG7920_REGS_H_ diff --git a/Libraries/MiscDrivers/Camera/sccb.c b/Libraries/MiscDrivers/Camera/sccb.c index ec0e78364a2..c2d4bb5d283 100644 --- a/Libraries/MiscDrivers/Camera/sccb.c +++ b/Libraries/MiscDrivers/Camera/sccb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Camera/sccb.h b/Libraries/MiscDrivers/Camera/sccb.h index bd7b2046fb0..616909dd752 100644 --- a/Libraries/MiscDrivers/Camera/sccb.h +++ b/Libraries/MiscDrivers/Camera/sccb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_CAMERA_SCCB_H_ diff --git a/Libraries/MiscDrivers/Display/adafruit_3315_tft.c b/Libraries/MiscDrivers/Display/adafruit_3315_tft.c index cbfe2112015..e3c731617ea 100644 --- a/Libraries/MiscDrivers/Display/adafruit_3315_tft.c +++ b/Libraries/MiscDrivers/Display/adafruit_3315_tft.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Display/adafruit_3315_tft.h b/Libraries/MiscDrivers/Display/adafruit_3315_tft.h index 785dd9c0943..2d87fb4807f 100644 --- a/Libraries/MiscDrivers/Display/adafruit_3315_tft.h +++ b/Libraries/MiscDrivers/Display/adafruit_3315_tft.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_DISPLAY_ADAFRUIT_3315_TFT_H_ diff --git a/Libraries/MiscDrivers/Display/display.h b/Libraries/MiscDrivers/Display/display.h index 38988c49e24..29c37b1895c 100644 --- a/Libraries/MiscDrivers/Display/display.h +++ b/Libraries/MiscDrivers/Display/display.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef DRIVER_DISPLAY_H_ -#define DRIVER_DISPLAY_H_ +#ifndef LIBRARIES_MISCDRIVERS_DISPLAY_DISPLAY_H_ +#define LIBRARIES_MISCDRIVERS_DISPLAY_DISPLAY_H_ #define DISP_E_SUCCESS 0 #define DISP_E_ERROR -1 @@ -62,4 +80,4 @@ typedef struct { uint32_t comm_buffer_len; } display_comm_api; -#endif /* DRIVER_DISPLAY_H_ */ +#endif // LIBRARIES_MISCDRIVERS_DISPLAY_DISPLAY_H_ diff --git a/Libraries/MiscDrivers/Display/sharp_mip.c b/Libraries/MiscDrivers/Display/sharp_mip.c index 3aa0c954b8d..072567f8a0e 100644 --- a/Libraries/MiscDrivers/Display/sharp_mip.c +++ b/Libraries/MiscDrivers/Display/sharp_mip.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /*------------------------------------------------------------------------------------------------- @@ -175,7 +193,7 @@ void sharp_mip_flush_area(sharp_mip_dev *dev, const display_area_t *area, const void sharp_mip_set_buffer_pixel_util(sharp_mip_dev *dev, uint8_t *buf, uint16_t buf_w, uint16_t x, uint16_t y, uint8_t color, uint8_t is_opaque) { - //TODO:: check buf_w with dev->init_param.col! + //TODO(10-20-2023): check buf_w with dev->init_param.col! if (color == 0 && is_opaque) { BIT_SET(buf[BUFIDX(x, y)], PIXIDX(x)); /*Set draw_buf pixel bit to 1 for other colors than BLACK*/ diff --git a/Libraries/MiscDrivers/Display/sharp_mip.h b/Libraries/MiscDrivers/Display/sharp_mip.h index 5cdae801a25..331e9e6775a 100644 --- a/Libraries/MiscDrivers/Display/sharp_mip.h +++ b/Libraries/MiscDrivers/Display/sharp_mip.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,26 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef DRIVER_SHARP_MIPH_ -#define DRIVER_SHARP_MIPH_ +#ifndef LIBRARIES_MISCDRIVERS_DISPLAY_SHARP_MIP_H_ +#define LIBRARIES_MISCDRIVERS_DISPLAY_SHARP_MIP_H_ #include #include @@ -65,4 +83,4 @@ void sharp_mip_set_buffer_pixel_util(sharp_mip_dev *dev, uint8_t *buf, uint16_t uint16_t y, uint8_t color, uint8_t is_opaque); void sharp_mip_com_inversion(sharp_mip_dev *dev, int inversion_on); -#endif /* DRIVER_SHARP_MIPH_ */ +#endif // LIBRARIES_MISCDRIVERS_DISPLAY_SHARP_MIP_H_ diff --git a/Libraries/MiscDrivers/Display/ssd1306.c b/Libraries/MiscDrivers/Display/ssd1306.c index 5291bef7d69..414d8c5970e 100644 --- a/Libraries/MiscDrivers/Display/ssd1306.c +++ b/Libraries/MiscDrivers/Display/ssd1306.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "ssd1306.h" diff --git a/Libraries/MiscDrivers/Display/ssd1306.h b/Libraries/MiscDrivers/Display/ssd1306.h index 2f7ad443dad..71725760f4e 100644 --- a/Libraries/MiscDrivers/Display/ssd1306.h +++ b/Libraries/MiscDrivers/Display/ssd1306.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_DISPLAY_SSD1306_H_ @@ -80,4 +98,4 @@ void ssd1306_flush_area(ssd1306_dev *dev, const display_area_t *area, const uint void ssd1306_set_buffer_pixel_util(uint8_t *buf, uint16_t buf_w, uint32_t buf_max, uint16_t x, uint16_t y, uint8_t color, uint8_t is_opaque); -#endif /* DRIVER_SSD1306_H_ */ +#endif // LIBRARIES_MISCDRIVERS_DISPLAY_SSD1306_H_ diff --git a/Libraries/MiscDrivers/Display/st7735s.c b/Libraries/MiscDrivers/Display/st7735s.c index 4a771015597..b5fe48decc2 100644 --- a/Libraries/MiscDrivers/Display/st7735s.c +++ b/Libraries/MiscDrivers/Display/st7735s.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Libraries/MiscDrivers/Display/st7735s.h b/Libraries/MiscDrivers/Display/st7735s.h index 48fda0d13d4..a298381118f 100644 --- a/Libraries/MiscDrivers/Display/st7735s.h +++ b/Libraries/MiscDrivers/Display/st7735s.h @@ -1,11 +1,7 @@ -/** - * @file st7735s.h - * @brief Sitronix ST7735S LCD controller driver - * - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,10 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ -#ifndef EXAMPLES_MAX32672_DISPLAY_ST7735S_DRV_H_ -#define EXAMPLES_MAX32672_DISPLAY_ST7735S_DRV_H_ +/** + * @file st7735s.h + * @brief Sitronix ST7735S LCD controller driver + * + */ + +#ifndef LIBRARIES_MISCDRIVERS_DISPLAY_ST7735S_H_ +#define LIBRARIES_MISCDRIVERS_DISPLAY_ST7735S_H_ #define DISP_HOR_RES 128 #define DISP_VER_RES 128 @@ -94,4 +112,4 @@ int st7735s_pixel(uint32_t x, uint32_t y, uint32_t z); int st7735s_write_pixels(uint8_t *data, unsigned int len); int st7735s_xyloc(uint8_t row, uint8_t col); -#endif // EXAMPLES_MAX32672_DISPLAY_ST7735S_DRV_H_ +#endif // LIBRARIES_MISCDRIVERS_DISPLAY_ST7735S_H_ diff --git a/Libraries/MiscDrivers/Display/st7735s_cfaf128128b1.h b/Libraries/MiscDrivers/Display/st7735s_cfaf128128b1.h index 0bbbcb2d0ab..8346bf2ac75 100644 --- a/Libraries/MiscDrivers/Display/st7735s_cfaf128128b1.h +++ b/Libraries/MiscDrivers/Display/st7735s_cfaf128128b1.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** @@ -46,8 +64,8 @@ * is transmitted. */ -#ifndef EXAMPLES_MAX32672_DISPLAY_DISP_CFAF128128B1_H_ -#define EXAMPLES_MAX32672_DISPLAY_DISP_CFAF128128B1_H_ +#ifndef LIBRARIES_MISCDRIVERS_DISPLAY_ST7735S_CFAF128128B1_H_ +#define LIBRARIES_MISCDRIVERS_DISPLAY_ST7735S_CFAF128128B1_H_ #include "st7735s.h" @@ -92,4 +110,4 @@ st7735s_regcfg_t cfaf128128b1_regcfg[] = { { .cmd = ST7735S_MADCTL, .delay = 0, .len = 1, .data = (uint8_t *)"\xc0" }, }; -#endif // EXAMPLES_MAX32672_DISPLAY_DISP_CFAF128128B1_H_ +#endif // LIBRARIES_MISCDRIVERS_DISPLAY_ST7735S_CFAF128128B1_H_ diff --git a/Libraries/MiscDrivers/Display/tft_ili9341.c b/Libraries/MiscDrivers/Display/tft_ili9341.c index 0646365d8cc..4d5111d3f9b 100644 --- a/Libraries/MiscDrivers/Display/tft_ili9341.c +++ b/Libraries/MiscDrivers/Display/tft_ili9341.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Display/tft_ili9341.h b/Libraries/MiscDrivers/Display/tft_ili9341.h index f3f16ba7b49..09a190eaa9c 100644 --- a/Libraries/MiscDrivers/Display/tft_ili9341.h +++ b/Libraries/MiscDrivers/Display/tft_ili9341.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_DISPLAY_TFT_ILI9341_H_ diff --git a/Libraries/MiscDrivers/Display/tft_ssd2119.c b/Libraries/MiscDrivers/Display/tft_ssd2119.c index b07ba2335db..7051f9df1dc 100644 --- a/Libraries/MiscDrivers/Display/tft_ssd2119.c +++ b/Libraries/MiscDrivers/Display/tft_ssd2119.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Display/tft_ssd2119.h b/Libraries/MiscDrivers/Display/tft_ssd2119.h index 3879831d5fe..0c526135513 100644 --- a/Libraries/MiscDrivers/Display/tft_ssd2119.h +++ b/Libraries/MiscDrivers/Display/tft_ssd2119.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_DISPLAY_TFT_SSD2119_H_ diff --git a/Libraries/MiscDrivers/Display/tft_st7735.c b/Libraries/MiscDrivers/Display/tft_st7735.c index d562fab142a..84fe6ce4e8b 100644 --- a/Libraries/MiscDrivers/Display/tft_st7735.c +++ b/Libraries/MiscDrivers/Display/tft_st7735.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Display/tft_st7735.h b/Libraries/MiscDrivers/Display/tft_st7735.h index 359395de88f..87d54a4962b 100644 --- a/Libraries/MiscDrivers/Display/tft_st7735.h +++ b/Libraries/MiscDrivers/Display/tft_st7735.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_DISPLAY_TFT_ST7735_H_ diff --git a/Libraries/MiscDrivers/Display/tft_st7789v.c b/Libraries/MiscDrivers/Display/tft_st7789v.c index 07620b070fa..dc01955e00a 100644 --- a/Libraries/MiscDrivers/Display/tft_st7789v.c +++ b/Libraries/MiscDrivers/Display/tft_st7789v.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Display/tft_st7789v.h b/Libraries/MiscDrivers/Display/tft_st7789v.h index da3b72dcba1..728f13a04bc 100644 --- a/Libraries/MiscDrivers/Display/tft_st7789v.h +++ b/Libraries/MiscDrivers/Display/tft_st7789v.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_DISPLAY_TFT_ST7789V_H_ diff --git a/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.c b/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.c index 1612341c5b4..5a9c9487c5c 100644 --- a/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.c +++ b/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.c @@ -1,33 +1,18 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * Copyright 2023 Analog Devices, Inc. * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. + * http://www.apache.org/licenses/LICENSE-2.0 * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * ******************************************************************************/ diff --git a/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.h b/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.h index 23d3b0e781c..f88384b1cae 100644 --- a/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.h +++ b/Libraries/MiscDrivers/EEPROM/eeprom_24lc256_driver.h @@ -6,35 +6,20 @@ **/ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * Copyright 2023 Analog Devices, Inc. * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. + * http://www.apache.org/licenses/LICENSE-2.0 * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. - * - * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all - * ownership rights. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * ******************************************************************************/ diff --git a/Libraries/MiscDrivers/ExtMemory/Ext_Flash.h b/Libraries/MiscDrivers/ExtMemory/Ext_Flash.h index 951dd18cd68..276f8f66b17 100644 --- a/Libraries/MiscDrivers/ExtMemory/Ext_Flash.h +++ b/Libraries/MiscDrivers/ExtMemory/Ext_Flash.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_EXTMEMORY_EXT_FLASH_H_ diff --git a/Libraries/MiscDrivers/ExtMemory/mscmem.c b/Libraries/MiscDrivers/ExtMemory/mscmem.c index c9717375bc4..cff144d903c 100644 --- a/Libraries/MiscDrivers/ExtMemory/mscmem.c +++ b/Libraries/MiscDrivers/ExtMemory/mscmem.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/MiscDrivers/ExtMemory/mscmem.h b/Libraries/MiscDrivers/ExtMemory/mscmem.h index 7046e045e3f..d5ecf15d07c 100644 --- a/Libraries/MiscDrivers/ExtMemory/mscmem.h +++ b/Libraries/MiscDrivers/ExtMemory/mscmem.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_EXTMEMORY_MSCMEM_H_ diff --git a/Libraries/MiscDrivers/ExtMemory/mx25.c b/Libraries/MiscDrivers/ExtMemory/mx25.c index 8450dc65af1..7d38e1eba4c 100644 --- a/Libraries/MiscDrivers/ExtMemory/mx25.c +++ b/Libraries/MiscDrivers/ExtMemory/mx25.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/MiscDrivers/ExtMemory/mx25_64MB.c b/Libraries/MiscDrivers/ExtMemory/mx25_64MB.c index dae7f997c53..afa53f8c641 100644 --- a/Libraries/MiscDrivers/ExtMemory/mx25_64MB.c +++ b/Libraries/MiscDrivers/ExtMemory/mx25_64MB.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/MiscDrivers/ExtMemory/s26k.h b/Libraries/MiscDrivers/ExtMemory/s26k.h index ccbf6536535..d27c226933f 100644 --- a/Libraries/MiscDrivers/ExtMemory/s26k.h +++ b/Libraries/MiscDrivers/ExtMemory/s26k.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/MiscDrivers/ExtMemory/w25.c b/Libraries/MiscDrivers/ExtMemory/w25.c index d19a0a70ad8..e012b71d4e3 100644 --- a/Libraries/MiscDrivers/ExtMemory/w25.c +++ b/Libraries/MiscDrivers/ExtMemory/w25.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/MiscDrivers/LED/led.c b/Libraries/MiscDrivers/LED/led.c index fc5c9c83fc6..6c7552d6f8a 100644 --- a/Libraries/MiscDrivers/LED/led.c +++ b/Libraries/MiscDrivers/LED/led.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "board.h" diff --git a/Libraries/MiscDrivers/LED/led.h b/Libraries/MiscDrivers/LED/led.h index 8bf3d9e249e..6808b9d1daa 100644 --- a/Libraries/MiscDrivers/LED/led.h +++ b/Libraries/MiscDrivers/LED/led.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_LED_LED_H_ diff --git a/Libraries/MiscDrivers/PMIC/max20303.c b/Libraries/MiscDrivers/PMIC/max20303.c index b553accd048..8185f78e3b2 100644 --- a/Libraries/MiscDrivers/PMIC/max20303.c +++ b/Libraries/MiscDrivers/PMIC/max20303.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/PMIC/max20303.h b/Libraries/MiscDrivers/PMIC/max20303.h index bef47f125ed..854de20b91b 100644 --- a/Libraries/MiscDrivers/PMIC/max20303.h +++ b/Libraries/MiscDrivers/PMIC/max20303.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_PMIC_MAX20303_H_ diff --git a/Libraries/MiscDrivers/PushButton/pb.c b/Libraries/MiscDrivers/PushButton/pb.c index 83b8595f188..60d4586cf5c 100644 --- a/Libraries/MiscDrivers/PushButton/pb.c +++ b/Libraries/MiscDrivers/PushButton/pb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/PushButton/pb.h b/Libraries/MiscDrivers/PushButton/pb.h index e042bc1dbe8..bebf34b8d7f 100644 --- a/Libraries/MiscDrivers/PushButton/pb.h +++ b/Libraries/MiscDrivers/PushButton/pb.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_PUSHBUTTON_PB_H_ diff --git a/Libraries/MiscDrivers/TempSensor/max31889_driver.c b/Libraries/MiscDrivers/TempSensor/max31889_driver.c index 6da89946e27..a2309d0778b 100644 --- a/Libraries/MiscDrivers/TempSensor/max31889_driver.c +++ b/Libraries/MiscDrivers/TempSensor/max31889_driver.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "max31889_driver.h" diff --git a/Libraries/MiscDrivers/TempSensor/max31889_driver.h b/Libraries/MiscDrivers/TempSensor/max31889_driver.h index 97d359ef8af..589bf3083fa 100644 --- a/Libraries/MiscDrivers/TempSensor/max31889_driver.h +++ b/Libraries/MiscDrivers/TempSensor/max31889_driver.h @@ -6,7 +6,9 @@ **/ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_TEMPSENSOR_MAX31889_DRIVER_H_ diff --git a/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.c b/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.c index c01aaf83212..f2a91ac49ef 100644 --- a/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.c +++ b/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* diff --git a/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.h b/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.h index 7e81a6012ce..9ccda2116cd 100644 --- a/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.h +++ b/Libraries/MiscDrivers/Touchscreen/adafruit_3315_touch.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_TOUCHSCREEN_ADAFRUIT_3315_TOUCH_H_ diff --git a/Libraries/MiscDrivers/Touchscreen/tsc2046.c b/Libraries/MiscDrivers/Touchscreen/tsc2046.c index 32801436c0f..49424e9956e 100644 --- a/Libraries/MiscDrivers/Touchscreen/tsc2046.c +++ b/Libraries/MiscDrivers/Touchscreen/tsc2046.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/MiscDrivers/Touchscreen/tsc2046.h b/Libraries/MiscDrivers/Touchscreen/tsc2046.h index e9e93668fc3..ba5c7b0588a 100644 --- a/Libraries/MiscDrivers/Touchscreen/tsc2046.h +++ b/Libraries/MiscDrivers/Touchscreen/tsc2046.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_MISCDRIVERS_TOUCHSCREEN_TSC2046_H_ diff --git a/Libraries/MiscDrivers/stdio.c b/Libraries/MiscDrivers/stdio.c index 1b536aedab1..662510eeab2 100644 --- a/Libraries/MiscDrivers/stdio.c +++ b/Libraries/MiscDrivers/stdio.c @@ -1,5 +1,7 @@ -/******************************************************************************* - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,21 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - * $Date: 2017-09-18 16:45:06 -0500 (Mon, 18 Sep 2017) $ - * $Revision: 30883 $ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * ******************************************************************************/ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/ctb.h b/Libraries/PeriphDrivers/Include/MAX32520/ctb.h index 123c26663ea..3a019b97753 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/ctb.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/ctb.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_CTB_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/dma.h b/Libraries/PeriphDrivers/Include/MAX32520/dma.h index ad2b422ff2b..c8fb8eaf437 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/flc.h b/Libraries/PeriphDrivers/Include/MAX32520/flc.h index 75665ab487b..ee935f5e08b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/gpio.h b/Libraries/PeriphDrivers/Include/MAX32520/gpio.h index 7a287bed004..cead16b6208 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/i2c.h b/Libraries/PeriphDrivers/Include/MAX32520/i2c.h index bf150892a2a..fa7cc59140f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/icc.h b/Libraries/PeriphDrivers/Include/MAX32520/icc.h index 5dc65f7eaf4..290cb09a13d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/lp.h b/Libraries/PeriphDrivers/Include/MAX32520/lp.h index a5f60bc3be8..711827d9a74 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32520/mxc_assert.h index ae8eed8a28b..4d8311aaedf 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32520/mxc_delay.h index 148363b9182..24df2586160 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32520/mxc_device.h index d612effb15d..28e2c066a10 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/mxc_device.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32520/mxc_errors.h index ef1dbfdf879..640c6f887de 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32520/mxc_lock.h index 0055936755c..139c3563dc6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32520/mxc_pins.h index eabb97464f9..93bf2e8c4cf 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32520/mxc_sys.h index 5525b1b33e1..05791f739cd 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/mxc_sys.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_MXC_SYS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32520/nvic_table.h index 7748d195407..d1b56de0785 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/sfe.h b/Libraries/PeriphDrivers/Include/MAX32520/sfe.h index 86402e51c42..635bf8e720d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/sfe.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/sfe.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_SFE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/smon.h b/Libraries/PeriphDrivers/Include/MAX32520/smon.h index dbaaaec09be..f9817487474 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/smon.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/smon.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_SMON_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/spi.h b/Libraries/PeriphDrivers/Include/MAX32520/spi.h index bdb4b1799fe..c3d0d53c2d8 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_SPI_H_ #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32520_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/tmr.h b/Libraries/PeriphDrivers/Include/MAX32520/tmr.h index 3bbd9ce70f2..747574a5765 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/uart.h b/Libraries/PeriphDrivers/Include/MAX32520/uart.h index b578a0a04f4..50740cbb5c3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32520/wdt.h b/Libraries/PeriphDrivers/Include/MAX32520/wdt.h index e9c2aa049cd..bce779e1215 100644 --- a/Libraries/PeriphDrivers/Include/MAX32520/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32520/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/adc.h b/Libraries/PeriphDrivers/Include/MAX32650/adc.h index 12389b16d75..a0be9c40437 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ @@ -124,14 +142,6 @@ typedef void (*mxc_adc_complete_cb_t)(void *req, int error); */ typedef void (*mxc_adc_monitor_cb_t)(void *req, int error); -/** - * Enumeration type for ADC reference sources - */ -typedef enum { - MXC_ADC_REF_INT, // Selects internal bandgap reference - MXC_ADC_REF_EXT, // Selects external reference pins -} mxc_adc_ref_t; - /** * @brief Used to set up a monitor to watch a channel * diff --git a/Libraries/PeriphDrivers/Include/MAX32650/clcd.h b/Libraries/PeriphDrivers/Include/MAX32650/clcd.h index c93ef6765cb..1c21b61a7e3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/clcd.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/clcd.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/dma.h b/Libraries/PeriphDrivers/Include/MAX32650/dma.h index d3da7790960..651f2f26ba1 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/flc.h b/Libraries/PeriphDrivers/Include/MAX32650/flc.h index db67c850c19..1a0718c52f3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/gpio.h b/Libraries/PeriphDrivers/Include/MAX32650/gpio.h index 58fd6a3ca87..3b10e73fb8b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/hpb.h b/Libraries/PeriphDrivers/Include/MAX32650/hpb.h index 1f883523951..b35ae70c645 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/hpb.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/hpb.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/i2c.h b/Libraries/PeriphDrivers/Include/MAX32650/i2c.h index 32b0f7f1754..9bd403c9425 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_I2C_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/i2s.h b/Libraries/PeriphDrivers/Include/MAX32650/i2s.h index 492c89ecf94..b8c480f0a0f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/icc.h b/Libraries/PeriphDrivers/Include/MAX32650/icc.h index 6602e2545a6..f0abbcfa54f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/lp.h b/Libraries/PeriphDrivers/Include/MAX32650/lp.h index fd12b36230d..29bb3700b9b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mem_utils.h b/Libraries/PeriphDrivers/Include/MAX32650/mem_utils.h index ccd485be5b3..dd89610d41d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mem_utils.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mem_utils.h @@ -3,7 +3,9 @@ * @brief memory utility functions */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_MEM_UTILS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32650/mxc_assert.h index 7be8cf7892b..f824a9ad891 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32650/mxc_delay.h index 8bf3db4425b..6dfee8790f7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32650/mxc_device.h index ca10d7bc4a9..e8a09a12d5c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32650/mxc_errors.h index 9fb910a8200..427b3ec663d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32650/mxc_lock.h index 3eed6c7ac2d..83edcb15b31 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32650/mxc_pins.h index 7ec78f32fe0..5439501526a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32650/mxc_sys.h index 929089a9781..08de4ee6a9b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/mxc_sys.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32650/nvic_table.h index 7171f61b7d3..ff6af1d3c17 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/owm.h b/Libraries/PeriphDrivers/Include/MAX32650/owm.h index fca76d386dd..3ab91b8407f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/owm.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/owm.h @@ -4,7 +4,9 @@ * peripheral module. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/pt.h b/Libraries/PeriphDrivers/Include/MAX32650/pt.h index 4319245fb88..ad4daad959a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/rtc.h b/Libraries/PeriphDrivers/Include/MAX32650/rtc.h index ea3163b35ee..a298dfd0bb7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/sdhc.h b/Libraries/PeriphDrivers/Include/MAX32650/sdhc.h index 2dcb26c5908..147e0a9e6e9 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/sdhc.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/sdhc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/sema.h b/Libraries/PeriphDrivers/Include/MAX32650/sema.h index c0a8c3e58b4..f3b89b6d531 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/sema.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/sema.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/spi.h b/Libraries/PeriphDrivers/Include/MAX32650/spi.h index 234e6b0a0ae..1c0e964597d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/spimss.h b/Libraries/PeriphDrivers/Include/MAX32650/spimss.h index 530746454d1..46526080f7e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/spimss.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/spimss.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/spixf.h b/Libraries/PeriphDrivers/Include/MAX32650/spixf.h index 19c30b045a4..58aea45a2c1 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/spixf.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/spixf.h @@ -3,7 +3,9 @@ * @brief SPI Master driver header file. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/spixr.h b/Libraries/PeriphDrivers/Include/MAX32650/spixr.h index 2e5dd1f95f2..40496645630 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/spixr.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/spixr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/tmr.h b/Libraries/PeriphDrivers/Include/MAX32650/tmr.h index 6b5036fca27..c602b4a7a6b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/tpu.h b/Libraries/PeriphDrivers/Include/MAX32650/tpu.h index d944027382f..09bcb645454 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/tpu.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/tpu.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_TPU_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/trng.h b/Libraries/PeriphDrivers/Include/MAX32650/trng.h index 683e6cff303..83dd3d8f732 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/uart.h b/Libraries/PeriphDrivers/Include/MAX32650/uart.h index a1092e95b24..775645197cc 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/uart.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32650_UART_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32650/wdt.h b/Libraries/PeriphDrivers/Include/MAX32650/wdt.h index 4cc5bc10be4..b9ef92c5c52 100644 --- a/Libraries/PeriphDrivers/Include/MAX32650/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32650/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/adc.h b/Libraries/PeriphDrivers/Include/MAX32655/adc.h index b2ef0493c83..c27783f3762 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/aes.h b/Libraries/PeriphDrivers/Include/MAX32655/aes.h index a4262f19650..2a41176f5ef 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/cameraif.h b/Libraries/PeriphDrivers/Include/MAX32655/cameraif.h index 5e9f3c2d6e5..d1759c8e11d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/cameraif.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/cameraif.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/crc.h b/Libraries/PeriphDrivers/Include/MAX32655/crc.h index f58347170d4..916d3286db2 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/dma.h b/Libraries/PeriphDrivers/Include/MAX32655/dma.h index 5848bb968c8..5851d33435d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/flc.h b/Libraries/PeriphDrivers/Include/MAX32655/flc.h index b8e828e153f..0c15041159b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/gpio.h b/Libraries/PeriphDrivers/Include/MAX32655/gpio.h index c2eafbc2e9e..fff5a35140d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/i2c.h b/Libraries/PeriphDrivers/Include/MAX32655/i2c.h index dd7bde3f518..e615ac31de6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/i2s.h b/Libraries/PeriphDrivers/Include/MAX32655/i2s.h index 2861c227910..66ac6731f88 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/icc.h b/Libraries/PeriphDrivers/Include/MAX32655/icc.h index c6e317a59e2..1e943e5ad7d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/lp.h b/Libraries/PeriphDrivers/Include/MAX32655/lp.h index de2ffa76d7a..c2f8981f15a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/lpcmp.h b/Libraries/PeriphDrivers/Include/MAX32655/lpcmp.h index 5ee4941f6e2..fc4ee2125b6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/lpcmp.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/lpcmp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc.h index 20f62ae179a..aa425d40fce 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_MXC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc_assert.h index 51f9dad6ed9..1e21a3c1903 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc_delay.h index cbe44399192..223abb2d381 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc_device.h index f8df475ebfe..f836f1bcaf8 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc_errors.h index b6d34132d0c..b78ec2174a4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc_lock.h index 4c214b315ca..802c318e91f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc_pins.h index 1c01f4217c6..1d32d80e7bf 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32655/mxc_sys.h index 7992cfa90e6..2ac50b681cf 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/mxc_sys.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32655/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32655/nvic_table.h index 1d9a3e8d8d0..5a8762e4fb1 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/owm.h b/Libraries/PeriphDrivers/Include/MAX32655/owm.h index 4124c2ca44a..b2ba4a7b896 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/owm.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/owm.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/pt.h b/Libraries/PeriphDrivers/Include/MAX32655/pt.h index c621bbb4936..c83dd27688a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/rtc.h b/Libraries/PeriphDrivers/Include/MAX32655/rtc.h index e6f56f8d7c7..b105bc8185c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/sema.h b/Libraries/PeriphDrivers/Include/MAX32655/sema.h index 5d8b8f666ad..7f4f91b0d4e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/sema.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/sema.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/simo.h b/Libraries/PeriphDrivers/Include/MAX32655/simo.h index 5ba1e242ea8..ea0b12a0557 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/simo.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/simo.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/spi.h b/Libraries/PeriphDrivers/Include/MAX32655/spi.h index 42d502f746b..20211a9655e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/tmr.h b/Libraries/PeriphDrivers/Include/MAX32655/tmr.h index f227af26241..21c20a55325 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/trng.h b/Libraries/PeriphDrivers/Include/MAX32655/trng.h index cd77cd46a48..b3d3b0cb5b6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32655_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/uart.h b/Libraries/PeriphDrivers/Include/MAX32655/uart.h index 5f829080fcb..8eae702f7d7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/wdt.h b/Libraries/PeriphDrivers/Include/MAX32655/wdt.h index 16e89a4d472..1d7bb652e25 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32655/wut.h b/Libraries/PeriphDrivers/Include/MAX32655/wut.h index 01980c24383..b6f64cb7b5b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32655/wut.h +++ b/Libraries/PeriphDrivers/Include/MAX32655/wut.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/dma.h b/Libraries/PeriphDrivers/Include/MAX32660/dma.h index 814c0e2de62..964bc224fda 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32660_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/flc.h b/Libraries/PeriphDrivers/Include/MAX32660/flc.h index ce7d144711a..d8ab63647e7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32660_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/gpio.h b/Libraries/PeriphDrivers/Include/MAX32660/gpio.h index 754292021a6..6d7913bf3c2 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/i2c.h b/Libraries/PeriphDrivers/Include/MAX32660/i2c.h index 82e0da11cec..021b81d56f4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/i2s.h b/Libraries/PeriphDrivers/Include/MAX32660/i2s.h index 95f5b3c803c..cd95e542146 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32660_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/icc.h b/Libraries/PeriphDrivers/Include/MAX32660/icc.h index 1e5b3a1995a..15c0a645158 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/lp.h b/Libraries/PeriphDrivers/Include/MAX32660/lp.h index a92e07b9bd4..acb069b0109 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ // Define to prevent redundant inclusion diff --git a/Libraries/PeriphDrivers/Include/MAX32660/msr.h b/Libraries/PeriphDrivers/Include/MAX32660/msr.h index a74731f671d..4f5f509ae60 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/msr.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/msr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32660/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32660/mxc_assert.h index aee4588ebd6..37495ceb2f4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32660/mxc_delay.h index c4957b67e77..9b83bbb2aa8 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32660/mxc_device.h index 5d80f0c3599..faf01c49dd6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32660/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32660/mxc_errors.h index 38b76c5f919..6405f7de4ab 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/mxc_errors.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32660/mxc_lock.h index cd91bcd2b1b..7c376ad8463 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32660/mxc_pins.h index 5732514a093..522d52c6266 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32660_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32660/mxc_sys.h index 57b3dff9c48..e1396aba81a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/mxc_sys.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32660_MXC_SYS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32660/nvic_table.h index 9ea42bd6868..5e55a6eeb52 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32660_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/rtc.h b/Libraries/PeriphDrivers/Include/MAX32660/rtc.h index 5ec19bcbfc7..5070c1a3f82 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/spi.h b/Libraries/PeriphDrivers/Include/MAX32660/spi.h index 7c94bdf6357..af31f0dabde 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32660_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/spimss.h b/Libraries/PeriphDrivers/Include/MAX32660/spimss.h index e5df3e13a7b..66f3022cbb5 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/spimss.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/spimss.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/tmr.h b/Libraries/PeriphDrivers/Include/MAX32660/tmr.h index a2de2c1bcc9..761cb91e039 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/uart.h b/Libraries/PeriphDrivers/Include/MAX32660/uart.h index 27be4d5d73e..39cfcece5ef 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32660/wdt.h b/Libraries/PeriphDrivers/Include/MAX32660/wdt.h index 421536f1d4a..81ab5b4d496 100644 --- a/Libraries/PeriphDrivers/Include/MAX32660/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32660/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/adc.h b/Libraries/PeriphDrivers/Include/MAX32662/adc.h index 14c6bd4b69a..bfe955bdacb 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/aes.h b/Libraries/PeriphDrivers/Include/MAX32662/aes.h index d813c705fc9..9fbb109d7ea 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/can.h b/Libraries/PeriphDrivers/Include/MAX32662/can.h index af2ba23e5f8..c163689de5f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/can.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/can.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/crc.h b/Libraries/PeriphDrivers/Include/MAX32662/crc.h index c83ffa12e5f..6beedfbd221 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/dma.h b/Libraries/PeriphDrivers/Include/MAX32662/dma.h index 161929d9d4f..48a455d13db 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/flc.h b/Libraries/PeriphDrivers/Include/MAX32662/flc.h index fa3269baa40..61daaf53720 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/gpio.h b/Libraries/PeriphDrivers/Include/MAX32662/gpio.h index 53911b72489..aa23f3a096a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/i2c.h b/Libraries/PeriphDrivers/Include/MAX32662/i2c.h index 6559145b23d..42a9a80058f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/i2s.h b/Libraries/PeriphDrivers/Include/MAX32662/i2s.h index 46b82170689..143a725368f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/icc.h b/Libraries/PeriphDrivers/Include/MAX32662/icc.h index 4f9728dca87..5e864a9eb0a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/lp.h b/Libraries/PeriphDrivers/Include/MAX32662/lp.h index 7ffed6e1689..e4a57144524 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/msr.h b/Libraries/PeriphDrivers/Include/MAX32662/msr.h index 563e479dd76..9c0ca4f7515 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/msr.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/msr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32662/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32662/mxc_assert.h index be202299d5d..20182e4dbc7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32662/mxc_delay.h index 262198c781b..566966934e7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32662/mxc_device.h index 520b5db5e54..9ee5e8f0758 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32662/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32662/mxc_errors.h index a56ca57694f..06ea3fc680d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32662/mxc_lock.h index abbfabe19a9..95459fe5675 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32662/mxc_pins.h index 7b2d2d76124..60b96eb7393 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32662/mxc_sys.h index 535c68977e7..52403ad6f35 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/mxc_sys.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32662/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32662/nvic_table.h index add61277903..2252fe9cc6c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/pt.h b/Libraries/PeriphDrivers/Include/MAX32662/pt.h index 54ea382ccc6..66745642b5c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/rtc.h b/Libraries/PeriphDrivers/Include/MAX32662/rtc.h index 86f725cf3ef..9c55084ec97 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/spi.h b/Libraries/PeriphDrivers/Include/MAX32662/spi.h index a2b22e89431..3914687071d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/tmr.h b/Libraries/PeriphDrivers/Include/MAX32662/tmr.h index 3c935a5c9e8..4fd0ede7870 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/trng.h b/Libraries/PeriphDrivers/Include/MAX32662/trng.h index d9eda21b1f5..68c1dab95b3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32662_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/uart.h b/Libraries/PeriphDrivers/Include/MAX32662/uart.h index 6b951e62560..aa4275982df 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32662/wdt.h b/Libraries/PeriphDrivers/Include/MAX32662/wdt.h index 212c178519c..e0d292d78a5 100644 --- a/Libraries/PeriphDrivers/Include/MAX32662/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32662/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/adc.h b/Libraries/PeriphDrivers/Include/MAX32665/adc.h index 679f947e5b0..ba8d284cf07 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ @@ -128,13 +146,6 @@ typedef enum { MXC_ADC_SCALE_6, ///< ADC Scale by 1/6 (this uses 1/3 and an additional 1/2 scaling) MXC_ADC_SCALE_8, ///< ADC Scale by 1/8 (this uses 1/4 and an additional 1/2 scaling) } mxc_adc_scale_t; -/** - * Enumeration type for ADC reference sources - */ -typedef enum { - MXC_ADC_REF_INT, // Selects internal bandgap reference - MXC_ADC_REF_EXT, // Selects external reference pins -} mxc_adc_ref_t; /** * @brief Callback used when a conversion event is complete diff --git a/Libraries/PeriphDrivers/Include/MAX32665/core1.h b/Libraries/PeriphDrivers/Include/MAX32665/core1.h index 5fb126a9f4b..b261cc5f370 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/core1.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/core1.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_CORE1_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/dma.h b/Libraries/PeriphDrivers/Include/MAX32665/dma.h index 3e73924978c..f4381ebea92 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/dvs.h b/Libraries/PeriphDrivers/Include/MAX32665/dvs.h index 33d460e927c..36948d9ca5e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/dvs.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/dvs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/flc.h b/Libraries/PeriphDrivers/Include/MAX32665/flc.h index d456745fa79..69b6f45a97a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/gpio.h b/Libraries/PeriphDrivers/Include/MAX32665/gpio.h index e4419c2c427..86d40a5e30c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/htmr.h b/Libraries/PeriphDrivers/Include/MAX32665/htmr.h index df16589a20e..6936a66d189 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/htmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/htmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/i2c.h b/Libraries/PeriphDrivers/Include/MAX32665/i2c.h index a15a8b226d4..b6527654949 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/icc.h b/Libraries/PeriphDrivers/Include/MAX32665/icc.h index 2937c3eba06..0fa9b4f658e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/lp.h b/Libraries/PeriphDrivers/Include/MAX32665/lp.h index 2de4bfbde19..25fb19b6a5a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32665/mxc_assert.h index b7850a61df7..959c736914f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32665/mxc_delay.h index f81952d279c..e2ca072cd31 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32665/mxc_device.h index cdaf569bde3..c2d2faed51d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32665/mxc_errors.h index b7a83bb5d25..62e7208508b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32665/mxc_lock.h index e72d1bb4dd2..1f8538e5e00 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32665/mxc_pins.h index e18aec65f2d..2f9251c134e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32665/mxc_sys.h index 59c7dff7e73..95f9557e4c1 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/mxc_sys.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32665/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32665/nvic_table.h index 1a0e9192947..658e17d20e5 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/owm.h b/Libraries/PeriphDrivers/Include/MAX32665/owm.h index 0bf174eaef8..11ef985b616 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/owm.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/owm.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/pt.h b/Libraries/PeriphDrivers/Include/MAX32665/pt.h index 47b7a31ff14..bf898d0d345 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/rpu.h b/Libraries/PeriphDrivers/Include/MAX32665/rpu.h index 981881221a3..a75ff2ba47e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/rpu.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/rpu.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/rtc.h b/Libraries/PeriphDrivers/Include/MAX32665/rtc.h index d9b09259992..8602f3a9bb7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/sdhc.h b/Libraries/PeriphDrivers/Include/MAX32665/sdhc.h index 36bbffc6ed7..b121c6ed1fa 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/sdhc.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/sdhc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/sema.h b/Libraries/PeriphDrivers/Include/MAX32665/sema.h index f08bdbf1a69..0680710d687 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/sema.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/sema.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/simo.h b/Libraries/PeriphDrivers/Include/MAX32665/simo.h index 2fd8946205e..ebc56d592fc 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/simo.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/simo.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/spi.h b/Libraries/PeriphDrivers/Include/MAX32665/spi.h index e7c1be3421c..10d44e25edf 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_SPI_H_ #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/spixf.h b/Libraries/PeriphDrivers/Include/MAX32665/spixf.h index 5d47373823c..865a092dbd9 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/spixf.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/spixf.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/spixr.h b/Libraries/PeriphDrivers/Include/MAX32665/spixr.h index 657c099b49e..7875c9690fa 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/spixr.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/spixr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/srcc.h b/Libraries/PeriphDrivers/Include/MAX32665/srcc.h index 2e92a67baff..bbd89e17a59 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/srcc.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/srcc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_SRCC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/tmr.h b/Libraries/PeriphDrivers/Include/MAX32665/tmr.h index 2d9cfb6ef95..0bc60a2e643 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/tpu.h b/Libraries/PeriphDrivers/Include/MAX32665/tpu.h index e678949ad32..2f7654ecb84 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/tpu.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/tpu.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_TPU_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/trng.h b/Libraries/PeriphDrivers/Include/MAX32665/trng.h index 79cab9de088..7fba29440e4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32665_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/uart.h b/Libraries/PeriphDrivers/Include/MAX32665/uart.h index 348dfeacbe7..7e722a83dc5 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/wdt.h b/Libraries/PeriphDrivers/Include/MAX32665/wdt.h index 20c8dd83653..7ee835a4c39 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32665/wut.h b/Libraries/PeriphDrivers/Include/MAX32665/wut.h index 200fcf36b48..9865a20de66 100644 --- a/Libraries/PeriphDrivers/Include/MAX32665/wut.h +++ b/Libraries/PeriphDrivers/Include/MAX32665/wut.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/aes.h b/Libraries/PeriphDrivers/Include/MAX32670/aes.h index 57a76d786a8..d635b31aff4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/crc.h b/Libraries/PeriphDrivers/Include/MAX32670/crc.h index 2daae197dc9..57718c75099 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/dma.h b/Libraries/PeriphDrivers/Include/MAX32670/dma.h index 2f1aad32d2e..116e056ab4a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/flc.h b/Libraries/PeriphDrivers/Include/MAX32670/flc.h index 0c16550d2ae..8bd631e3c37 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/gpio.h b/Libraries/PeriphDrivers/Include/MAX32670/gpio.h index bda41419ff1..20c4415f76d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/i2c.h b/Libraries/PeriphDrivers/Include/MAX32670/i2c.h index 3f0c723ceb7..7ba4d888a79 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/i2s.h b/Libraries/PeriphDrivers/Include/MAX32670/i2s.h index b90e81716e0..28e14d0e936 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/icc.h b/Libraries/PeriphDrivers/Include/MAX32670/icc.h index c7c9d3dac41..2545e41a7f9 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/lp.h b/Libraries/PeriphDrivers/Include/MAX32670/lp.h index d8279755a0c..3b3adca6504 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32670/mxc_assert.h index 96afe1c9a74..a19dcfc11eb 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32670/mxc_delay.h index 5bfc02b10ba..28909f02b18 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32670/mxc_device.h index 9106bd64fc3..dd30a871601 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/mxc_device.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32670/mxc_errors.h index fc9a7ceb003..7f820b25eec 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/mxc_errors.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32670/mxc_lock.h index 9cea8ff900f..922b12634d7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32670/mxc_pins.h index 2f4052930a7..f1b0b88062f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32670/mxc_sys.h index 457e84da4af..27b1e4551b4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/mxc_sys.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_MXC_SYS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32670/nvic_table.h index 18f0eba77af..d060fcc3102 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/rtc.h b/Libraries/PeriphDrivers/Include/MAX32670/rtc.h index 1310bc3b1ff..d5ddc13c4cf 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/spi.h b/Libraries/PeriphDrivers/Include/MAX32670/spi.h index f2d00ef8068..c0b7aae5cfc 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/tmr.h b/Libraries/PeriphDrivers/Include/MAX32670/tmr.h index d7fe193789a..48a8038bc5e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/trng.h b/Libraries/PeriphDrivers/Include/MAX32670/trng.h index 44b0a3f1377..28b7b36b59d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32670_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/uart.h b/Libraries/PeriphDrivers/Include/MAX32670/uart.h index a68b89100e2..7accdd3dee3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32670/wdt.h b/Libraries/PeriphDrivers/Include/MAX32670/wdt.h index 15ecdc4a54b..1f061f8bd46 100644 --- a/Libraries/PeriphDrivers/Include/MAX32670/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32670/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/adc.h b/Libraries/PeriphDrivers/Include/MAX32672/adc.h index c110748e260..f4c4d7d407d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/aes.h b/Libraries/PeriphDrivers/Include/MAX32672/aes.h index 135f5b8a040..4eecc333119 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/aes.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/ctb.h b/Libraries/PeriphDrivers/Include/MAX32672/ctb.h index 6d2b881969e..8f22a778ead 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/ctb.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/ctb.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_CTB_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/dma.h b/Libraries/PeriphDrivers/Include/MAX32672/dma.h index 6c9241a6877..d6ce4766029 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/flc.h b/Libraries/PeriphDrivers/Include/MAX32672/flc.h index 23f72c9b3af..001b0852547 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/gpio.h b/Libraries/PeriphDrivers/Include/MAX32672/gpio.h index 032c32786a6..8766e967830 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/i2c.h b/Libraries/PeriphDrivers/Include/MAX32672/i2c.h index 97a18c7475f..d59fb442e26 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/i2s.h b/Libraries/PeriphDrivers/Include/MAX32672/i2s.h index 665292f8537..44a2fb8316f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/icc.h b/Libraries/PeriphDrivers/Include/MAX32672/icc.h index cdc7fa3662e..29f57bbe456 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/lp.h b/Libraries/PeriphDrivers/Include/MAX32672/lp.h index d743f640069..e9cdf04e3b1 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/msr.h b/Libraries/PeriphDrivers/Include/MAX32672/msr.h index 7f7c98ec837..4e040333438 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/msr.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/msr.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32672/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32672/mxc_assert.h index 6407ecf823c..d087d208f42 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32672/mxc_delay.h index 4d6e09eb3e5..707fea7f7d4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32672/mxc_device.h index 27cc92a85a1..b3f1b5de2c6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/mxc_device.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32672/mxc_errors.h index 309fed00e1b..e2edc60bf2c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/mxc_errors.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32672/mxc_lock.h index 3dd17482f16..99ec686e65f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32672/mxc_pins.h index b716e4a654f..af4ec1bcdff 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32672/mxc_sys.h index 716ddc8177f..04afcb9b006 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/mxc_sys.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_MXC_SYS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32672/nvic_table.h index cac3e4edafa..eab716bb0f8 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/qdec.h b/Libraries/PeriphDrivers/Include/MAX32672/qdec.h index b87d796129a..99e1995710c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/qdec.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/qdec.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/rtc.h b/Libraries/PeriphDrivers/Include/MAX32672/rtc.h index 6342a66ed6e..7f036961dad 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/spi.h b/Libraries/PeriphDrivers/Include/MAX32672/spi.h index aef631e3f01..ae04ef70d40 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/tmr.h b/Libraries/PeriphDrivers/Include/MAX32672/tmr.h index 4068e64dbb4..8ca0af8281d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/trng.h b/Libraries/PeriphDrivers/Include/MAX32672/trng.h index 8f83cc22bd6..f036c8ef66b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/uart.h b/Libraries/PeriphDrivers/Include/MAX32672/uart.h index 9a138691e1b..b911984e480 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32672/wdt.h b/Libraries/PeriphDrivers/Include/MAX32672/wdt.h index ec413a6d43f..c3800a44f60 100644 --- a/Libraries/PeriphDrivers/Include/MAX32672/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32672/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/aes.h b/Libraries/PeriphDrivers/Include/MAX32675/aes.h index 5cee478a16d..e0adfced658 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/afe.h b/Libraries/PeriphDrivers/Include/MAX32675/afe.h index 870b45ea417..9732ca702a9 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/afe.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/afe.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_AFE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/afe_gpio.h b/Libraries/PeriphDrivers/Include/MAX32675/afe_gpio.h index fe495d63c08..52ac792e943 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/afe_gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/afe_gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/afe_timer.h b/Libraries/PeriphDrivers/Include/MAX32675/afe_timer.h index 4049e5e31fc..6ef486f04a5 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/afe_timer.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/afe_timer.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/crc.h b/Libraries/PeriphDrivers/Include/MAX32675/crc.h index 9622b45c97c..43ae5667cd7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/dma.h b/Libraries/PeriphDrivers/Include/MAX32675/dma.h index 6c63ddab12a..6e23b7e926e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/flc.h b/Libraries/PeriphDrivers/Include/MAX32675/flc.h index bd920e2130c..ef5d2c144a7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/gpio.h b/Libraries/PeriphDrivers/Include/MAX32675/gpio.h index ef0812071ad..c7cba334b23 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/hart_uart.h b/Libraries/PeriphDrivers/Include/MAX32675/hart_uart.h index 422935076c5..7e1ec7b56fe 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/hart_uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/hart_uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_HART_UART_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/i2c.h b/Libraries/PeriphDrivers/Include/MAX32675/i2c.h index a26b27e483d..4ad1b3e82e1 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/i2s.h b/Libraries/PeriphDrivers/Include/MAX32675/i2s.h index 6683bef1df7..b0ce35bdccb 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/icc.h b/Libraries/PeriphDrivers/Include/MAX32675/icc.h index d29c6f72cd9..b4a0211119f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/infoblock.h b/Libraries/PeriphDrivers/Include/MAX32675/infoblock.h index afa700d1046..9c58c615b30 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/infoblock.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/infoblock.h @@ -1,13 +1,7 @@ -/** - * @file infoblock.h - * @brief Infoblock interface - * @details - * This driver can be used to interface with the infoblock, - * reading and writing select locations. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file infoblock.h + * @brief Infoblock interface + * @details + * This driver can be used to interface with the infoblock, + * reading and writing select locations. + */ + #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_INFOBLOCK_H_ #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_INFOBLOCK_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/lp.h b/Libraries/PeriphDrivers/Include/MAX32675/lp.h index 05cc786de83..42f2161e3ab 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32675/mxc_assert.h index 1e7f69db961..6e66a39942d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32675/mxc_delay.h index 65e1fda8aa7..e7528f73548 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32675/mxc_device.h index 9f27581c1c7..d00a6f58ea3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/mxc_device.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32675/mxc_errors.h index 81f60a45b59..c0d616cb7a8 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/mxc_errors.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32675/mxc_lock.h index 6cb2a5f733e..e725d0467ea 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32675/mxc_pins.h index f132c71616f..daef96fc9d7 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32675/mxc_sys.h index d7885525534..b0a9c3bc743 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/mxc_sys.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_MXC_SYS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32675/nvic_table.h index e4cf816e004..5686b0a9450 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/rtc.h b/Libraries/PeriphDrivers/Include/MAX32675/rtc.h index 535443cb13f..78bc439d1eb 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/spi.h b/Libraries/PeriphDrivers/Include/MAX32675/spi.h index e240c530a36..9352042b391 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_SPI_H_ #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/tmr.h b/Libraries/PeriphDrivers/Include/MAX32675/tmr.h index 2c928406803..358d7e5bf3f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/trng.h b/Libraries/PeriphDrivers/Include/MAX32675/trng.h index 2758faac3ff..3802abefaca 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32675_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/uart.h b/Libraries/PeriphDrivers/Include/MAX32675/uart.h index 1af6e1a661c..6db2dc154c2 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32675/wdt.h b/Libraries/PeriphDrivers/Include/MAX32675/wdt.h index 2228b4bf668..6d324c1b768 100644 --- a/Libraries/PeriphDrivers/Include/MAX32675/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32675/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/adc.h b/Libraries/PeriphDrivers/Include/MAX32680/adc.h index 1e62031ee7a..13cb14f59f6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/aes.h b/Libraries/PeriphDrivers/Include/MAX32680/aes.h index 2ec01b97348..f397d8c1feb 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/afe.h b/Libraries/PeriphDrivers/Include/MAX32680/afe.h index c2bbbbd6496..a2002b323dd 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/afe.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/afe.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_AFE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/afe_gpio.h b/Libraries/PeriphDrivers/Include/MAX32680/afe_gpio.h index 6161e389bbe..a31af991b58 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/afe_gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/afe_gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/afe_timer.h b/Libraries/PeriphDrivers/Include/MAX32680/afe_timer.h index c507bc6e2a1..fdcc341e2b5 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/afe_timer.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/afe_timer.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/cameraif.h b/Libraries/PeriphDrivers/Include/MAX32680/cameraif.h index 24791079acc..150594f2196 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/cameraif.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/cameraif.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/crc.h b/Libraries/PeriphDrivers/Include/MAX32680/crc.h index dca508deab4..bd4a8d0dbcc 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/dma.h b/Libraries/PeriphDrivers/Include/MAX32680/dma.h index c02e6705e16..e4356be15ac 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/flc.h b/Libraries/PeriphDrivers/Include/MAX32680/flc.h index b014eec793f..691994147bd 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/gpio.h b/Libraries/PeriphDrivers/Include/MAX32680/gpio.h index ef31db72e9d..09f5a9c4185 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/hart_uart.h b/Libraries/PeriphDrivers/Include/MAX32680/hart_uart.h index 0f1fd5e6db5..698d6154ace 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/hart_uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/hart_uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_HART_UART_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/i2c.h b/Libraries/PeriphDrivers/Include/MAX32680/i2c.h index 5966d09d2ec..02697dbe0eb 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/i2s.h b/Libraries/PeriphDrivers/Include/MAX32680/i2s.h index 0d2847fc35d..950b5d80666 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/icc.h b/Libraries/PeriphDrivers/Include/MAX32680/icc.h index 41e4d0b253c..ed0d7efca50 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/infoblock.h b/Libraries/PeriphDrivers/Include/MAX32680/infoblock.h index 74506d93684..a2c9ae65151 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/infoblock.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/infoblock.h @@ -1,13 +1,7 @@ -/** - * @file infoblock.h - * @brief Infoblock interface - * @details - * This driver can be used to interface with the infoblock, - * reading and writing select locations. - */ - /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -37,8 +31,32 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +/** + * @file infoblock.h + * @brief Infoblock interface + * @details + * This driver can be used to interface with the infoblock, + * reading and writing select locations. + */ + #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_INFOBLOCK_H_ #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_INFOBLOCK_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/lp.h b/Libraries/PeriphDrivers/Include/MAX32680/lp.h index 4d9c17cb87d..d5815eb062d 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/lpcmp.h b/Libraries/PeriphDrivers/Include/MAX32680/lpcmp.h index 66b6260cb1c..b9583067add 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/lpcmp.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/lpcmp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc.h index 8c27b04214b..f275533caf8 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_MXC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc_assert.h index 4d45393aaf9..727f33e2f77 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc_delay.h index e2f80dcb112..40ef03a6fe3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc_device.h index bf5683eb29d..c58363a588c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc_errors.h index 71cd6b1449f..15c25a218a6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc_lock.h index 49b20ff4036..6e9fbb96ee2 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc_pins.h index e9f2e4aafa3..7454fdca402 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32680/mxc_sys.h index bf169aa9416..74f1d6fc492 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/mxc_sys.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32680/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32680/nvic_table.h index bb9a84ee442..98db5bff085 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/owm.h b/Libraries/PeriphDrivers/Include/MAX32680/owm.h index 3d1eb6d1424..4d78950fc19 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/owm.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/owm.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/pt.h b/Libraries/PeriphDrivers/Include/MAX32680/pt.h index 52e7f1944fc..58d9d342539 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/rtc.h b/Libraries/PeriphDrivers/Include/MAX32680/rtc.h index 23368c98440..3735d9282d9 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/sema.h b/Libraries/PeriphDrivers/Include/MAX32680/sema.h index 29d15d18d36..31574555e93 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/sema.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/sema.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/simo.h b/Libraries/PeriphDrivers/Include/MAX32680/simo.h index 933539c43bc..737cd5f538b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/simo.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/simo.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/spi.h b/Libraries/PeriphDrivers/Include/MAX32680/spi.h index 83a7c9d8277..87b5223aa14 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_SPI_H_ #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/tmr.h b/Libraries/PeriphDrivers/Include/MAX32680/tmr.h index 8969b15f4f0..27cf30ec674 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/trng.h b/Libraries/PeriphDrivers/Include/MAX32680/trng.h index 89284d28600..07219eb7f7c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32680_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/uart.h b/Libraries/PeriphDrivers/Include/MAX32680/uart.h index f3f4b814435..a5ae8be6b52 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/wdt.h b/Libraries/PeriphDrivers/Include/MAX32680/wdt.h index 55bd28083b8..6d1f9ed2143 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32680/wut.h b/Libraries/PeriphDrivers/Include/MAX32680/wut.h index 7bf6c4b9643..c9d113f9fe2 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/wut.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/wut.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/adc.h b/Libraries/PeriphDrivers/Include/MAX32690/adc.h index cc5521f317d..29cdd7ce066 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/aes.h b/Libraries/PeriphDrivers/Include/MAX32690/aes.h index 22d89c2b531..d51b0282270 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/can.h b/Libraries/PeriphDrivers/Include/MAX32690/can.h index 07f03b7a5ec..728a9a067f4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/can.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/can.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/crc.h b/Libraries/PeriphDrivers/Include/MAX32690/crc.h index 7bcc7322e26..8007f1d0cb6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/ctb.h b/Libraries/PeriphDrivers/Include/MAX32690/ctb.h index 8c64a84adc5..931a264ef66 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/ctb.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/ctb.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_CTB_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/dma.h b/Libraries/PeriphDrivers/Include/MAX32690/dma.h index 1bcfe3dddd5..3ab1af243f3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/flc.h b/Libraries/PeriphDrivers/Include/MAX32690/flc.h index f9512c75357..baf7df811ed 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/gpio.h b/Libraries/PeriphDrivers/Include/MAX32690/gpio.h index 0e0be6664a4..f9358a31c10 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/hpb.h b/Libraries/PeriphDrivers/Include/MAX32690/hpb.h index 75eb1d04ea0..569b18ba7ba 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/hpb.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/hpb.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/i2c.h b/Libraries/PeriphDrivers/Include/MAX32690/i2c.h index 0369c910b8f..cc2afe40582 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/i2s.h b/Libraries/PeriphDrivers/Include/MAX32690/i2s.h index 760f1bdccde..a94d91f864c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/icc.h b/Libraries/PeriphDrivers/Include/MAX32690/icc.h index aa53962bec9..d83460f6d6f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/lp.h b/Libraries/PeriphDrivers/Include/MAX32690/lp.h index 9afa16c8d64..27e88abef9c 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/lpcmp.h b/Libraries/PeriphDrivers/Include/MAX32690/lpcmp.h index fd3fb227796..689a1061b1a 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/lpcmp.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/lpcmp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX32690/mxc_assert.h index 1f1d8050c0a..82003619517 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX32690/mxc_delay.h index 9f226c42126..5ba39e69c29 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX32690/mxc_device.h index 91f56637fd3..1dd3356a96e 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX32690/mxc_errors.h index c8653b4aafb..824af062981 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX32690/mxc_lock.h index 38e40fc3869..d8b72786c5f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX32690/mxc_pins.h index c09e72784e5..3ac32b35ed5 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX32690/mxc_sys.h index 6e25b98122b..9f587f4a45f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/mxc_sys.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX32690/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX32690/nvic_table.h index cf45599a8b4..1881d027098 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/owm.h b/Libraries/PeriphDrivers/Include/MAX32690/owm.h index 7a06f221ce3..874093a3f13 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/owm.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/owm.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/pt.h b/Libraries/PeriphDrivers/Include/MAX32690/pt.h index 3dc8aa1216b..811c1e4caea 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/rtc.h b/Libraries/PeriphDrivers/Include/MAX32690/rtc.h index 15401da01bb..a4eaa9d79b6 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/sema.h b/Libraries/PeriphDrivers/Include/MAX32690/sema.h index aa194547429..ba6afeb9348 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/sema.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/sema.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/spi.h b/Libraries/PeriphDrivers/Include/MAX32690/spi.h index 5b70f9e66fc..8aa444ef794 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/spixf.h b/Libraries/PeriphDrivers/Include/MAX32690/spixf.h index 1724816910b..feeaaa626b3 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/spixf.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/spixf.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/spixr.h b/Libraries/PeriphDrivers/Include/MAX32690/spixr.h index bc809f945af..fa3990152f9 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/spixr.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/spixr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/tmr.h b/Libraries/PeriphDrivers/Include/MAX32690/tmr.h index 12f6f78b7c0..7d9fc465704 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/trng.h b/Libraries/PeriphDrivers/Include/MAX32690/trng.h index bc215c5c3ee..4a8a10ada98 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32690_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/uart.h b/Libraries/PeriphDrivers/Include/MAX32690/uart.h index 1838a5d7d42..ac34185f6b4 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/wdt.h b/Libraries/PeriphDrivers/Include/MAX32690/wdt.h index e5ba05b58f6..8c941e9fd7b 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX32690/wut.h b/Libraries/PeriphDrivers/Include/MAX32690/wut.h index 2a0b2522b41..c7a04437e7f 100644 --- a/Libraries/PeriphDrivers/Include/MAX32690/wut.h +++ b/Libraries/PeriphDrivers/Include/MAX32690/wut.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/adc.h b/Libraries/PeriphDrivers/Include/MAX78000/adc.h index fef58fa9195..793afafeaba 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/aes.h b/Libraries/PeriphDrivers/Include/MAX78000/aes.h index 7d5abd51403..f2c92865991 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/cameraif.h b/Libraries/PeriphDrivers/Include/MAX78000/cameraif.h index 53ef2a1b4cd..6ba72cc8709 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/cameraif.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/cameraif.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/crc.h b/Libraries/PeriphDrivers/Include/MAX78000/crc.h index b2320140b8a..265c9b9783c 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/dma.h b/Libraries/PeriphDrivers/Include/MAX78000/dma.h index 3598774e328..787950a4e64 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/flc.h b/Libraries/PeriphDrivers/Include/MAX78000/flc.h index 0743aa09d9d..b40d9d2461b 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/gpio.h b/Libraries/PeriphDrivers/Include/MAX78000/gpio.h index 97e89a49bb3..030416fb2b9 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/i2c.h b/Libraries/PeriphDrivers/Include/MAX78000/i2c.h index 1f44204074f..bbdb11d69f5 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/i2s.h b/Libraries/PeriphDrivers/Include/MAX78000/i2s.h index f88c42f7b2f..9f4d6d2f14d 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/icc.h b/Libraries/PeriphDrivers/Include/MAX78000/icc.h index 1caf20417c9..fa34d080861 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/lp.h b/Libraries/PeriphDrivers/Include/MAX78000/lp.h index d53685f1e49..754f432a1a1 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/lpcmp.h b/Libraries/PeriphDrivers/Include/MAX78000/lpcmp.h index 92e802bc1f8..a5edd069278 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/lpcmp.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/lpcmp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc.h index b788d0269d1..d1478a953f5 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_MXC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc_assert.h index b42f8300086..82c9fd86e27 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc_delay.h index 8b3557bde8a..f0e05c405f3 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc_device.h index 641cf94abed..c867ccf0303 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc_errors.h index 64e7f18e452..1ecbdf48f85 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc_lock.h index 99acefd2059..ad8efa639f4 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc_pins.h index e085e61b4fb..1420db61bd1 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX78000/mxc_sys.h index d43797685b9..961014aa445 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/mxc_sys.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX78000/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX78000/nvic_table.h index 893fdf6c3a1..41de9bf96b4 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/owm.h b/Libraries/PeriphDrivers/Include/MAX78000/owm.h index 288b8d651f2..c3b07d5db38 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/owm.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/owm.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/pt.h b/Libraries/PeriphDrivers/Include/MAX78000/pt.h index 8554e146f32..5c7e5fd4812 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/rtc.h b/Libraries/PeriphDrivers/Include/MAX78000/rtc.h index 0aa464940b5..5be86a6ec0c 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/sema.h b/Libraries/PeriphDrivers/Include/MAX78000/sema.h index 9841a93b048..763f08706b1 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/sema.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/sema.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/spi.h b/Libraries/PeriphDrivers/Include/MAX78000/spi.h index 8564173d731..f1c9bb25008 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_SPI_H_ #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/tmr.h b/Libraries/PeriphDrivers/Include/MAX78000/tmr.h index 3e940956f94..d749bbd1ee3 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/trng.h b/Libraries/PeriphDrivers/Include/MAX78000/trng.h index 632894f9047..bd5170d67d6 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78000_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/uart.h b/Libraries/PeriphDrivers/Include/MAX78000/uart.h index dd82b7632da..a01f06f7f67 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/wdt.h b/Libraries/PeriphDrivers/Include/MAX78000/wdt.h index 3eb9ce8fb91..eea2a246045 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78000/wut.h b/Libraries/PeriphDrivers/Include/MAX78000/wut.h index ef229c50e0f..c92536cf837 100644 --- a/Libraries/PeriphDrivers/Include/MAX78000/wut.h +++ b/Libraries/PeriphDrivers/Include/MAX78000/wut.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/adc.h b/Libraries/PeriphDrivers/Include/MAX78002/adc.h index 9ac4a2a6602..ab5799650e1 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/adc.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/adc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/aes.h b/Libraries/PeriphDrivers/Include/MAX78002/aes.h index ca521a23090..d23657bf58a 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/aes.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/aes.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_AES_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/cameraif.h b/Libraries/PeriphDrivers/Include/MAX78002/cameraif.h index c4d1b429b44..d2ad4885702 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/cameraif.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/cameraif.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/crc.h b/Libraries/PeriphDrivers/Include/MAX78002/crc.h index 9fb336edea7..2d1cc285ef4 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/crc.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/crc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_CRC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/csi2.h b/Libraries/PeriphDrivers/Include/MAX78002/csi2.h index 3859933f89f..25bb916caec 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/csi2.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/csi2.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/dma.h b/Libraries/PeriphDrivers/Include/MAX78002/dma.h index 0bbefc35277..06b7d0bdef5 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/dma.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/dma.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_DMA_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/flc.h b/Libraries/PeriphDrivers/Include/MAX78002/flc.h index 9441cda9666..b80e740932a 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/flc.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/flc.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_FLC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/gpio.h b/Libraries/PeriphDrivers/Include/MAX78002/gpio.h index dcee404ac87..67704321a2c 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/gpio.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/gpio.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/i2c.h b/Libraries/PeriphDrivers/Include/MAX78002/i2c.h index 83a65c5275e..57a842acc39 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/i2c.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/i2c.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/i2s.h b/Libraries/PeriphDrivers/Include/MAX78002/i2s.h index 44e72ecf544..795ff4d1a85 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/i2s.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/i2s.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_I2S_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/icc.h b/Libraries/PeriphDrivers/Include/MAX78002/icc.h index 43a05a96ae1..adccff4627c 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/icc.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/icc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/lp.h b/Libraries/PeriphDrivers/Include/MAX78002/lp.h index dea7ca69e90..3637e9ce1d5 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/lp.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/lp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/lpcmp.h b/Libraries/PeriphDrivers/Include/MAX78002/lpcmp.h index d676cd3ebbd..f1161870cbf 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/lpcmp.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/lpcmp.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc.h index 7318f1fd753..f522801e7a5 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_MXC_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc_assert.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc_assert.h index 510a5ee88bf..8b268d9b476 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc_assert.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc_assert.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc_delay.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc_delay.h index 12dcfa97081..3f40a12b792 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc_delay.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc_delay.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc_device.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc_device.h index 8964c015e1b..7a133d2b481 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc_device.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc_device.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_MXC_DEVICE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc_errors.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc_errors.h index 6f8ac2fa93b..91f9d57a15c 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc_errors.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc_errors.h @@ -3,7 +3,9 @@ * @brief List of common error return codes for Maxim Integrated libraries. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,6 +35,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc_lock.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc_lock.h index 733396ed3c0..a6e5d6cc52f 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc_lock.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc_lock.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc_pins.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc_pins.h index d11e5c75680..a1e3a502088 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc_pins.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc_pins.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_MXC_PINS_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/mxc_sys.h b/Libraries/PeriphDrivers/Include/MAX78002/mxc_sys.h index e613283746f..437952471fb 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/mxc_sys.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/mxc_sys.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Include/MAX78002/nvic_table.h b/Libraries/PeriphDrivers/Include/MAX78002/nvic_table.h index 8ff31c965d3..2007ccd73ec 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/nvic_table.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/nvic_table.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_NVIC_TABLE_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/owm.h b/Libraries/PeriphDrivers/Include/MAX78002/owm.h index d241cc37e40..0308a0b9103 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/owm.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/owm.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/pt.h b/Libraries/PeriphDrivers/Include/MAX78002/pt.h index 67e2c8526c1..3b26d71f3e1 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/pt.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/pt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/rtc.h b/Libraries/PeriphDrivers/Include/MAX78002/rtc.h index e6a4b30225d..698d096cf3c 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/rtc.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/rtc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/sdhc.h b/Libraries/PeriphDrivers/Include/MAX78002/sdhc.h index 1695c6c5af0..4102294454d 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/sdhc.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/sdhc.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/sema.h b/Libraries/PeriphDrivers/Include/MAX78002/sema.h index 9a22a48f225..3d44dbe3718 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/sema.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/sema.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/spi.h b/Libraries/PeriphDrivers/Include/MAX78002/spi.h index 9c2f9d4b5d3..579bb2ebd19 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/spi.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/spi.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_SPI_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/tmr.h b/Libraries/PeriphDrivers/Include/MAX78002/tmr.h index 0c31054a958..081b1c86b92 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/tmr.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/tmr.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/trng.h b/Libraries/PeriphDrivers/Include/MAX78002/trng.h index f2030cd410f..4fd735ee19b 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/trng.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/trng.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX78002_TRNG_H_ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/uart.h b/Libraries/PeriphDrivers/Include/MAX78002/uart.h index c62b2e6f495..99f5f25d0ee 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/uart.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/wdt.h b/Libraries/PeriphDrivers/Include/MAX78002/wdt.h index 7554441ea31..fe35f084814 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/wdt.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/wdt.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Include/MAX78002/wut.h b/Libraries/PeriphDrivers/Include/MAX78002/wut.h index 03f6d80d1f0..0f5d40a1de8 100644 --- a/Libraries/PeriphDrivers/Include/MAX78002/wut.h +++ b/Libraries/PeriphDrivers/Include/MAX78002/wut.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_ai87.c b/Libraries/PeriphDrivers/Source/ADC/adc_ai87.c index c84c3cd2e1d..cf9bb3dd456 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_ai87.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me10.c b/Libraries/PeriphDrivers/Source/ADC/adc_me10.c index c0a8b614f7a..4f362d0ffe5 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me10.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ @@ -140,11 +158,7 @@ void MXC_ADC_SetExtScale(mxc_adc_scale_t scale) { MXC_ADC_RevA_SetExtScale((mxc_adc_reva_regs_t *)MXC_ADC, scale); } -// ************************************************************************** -void MXC_ADC_RefSelect(mxc_adc_ref_t ref) -{ - MXC_ADC_RevA_RefSelect((mxc_adc_reva_regs_t *)MXC_ADC, ref); -} + // ************************************************************************** void MXC_ADC_EnableMonitor(mxc_adc_monitor_t monitor) { diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me12.c b/Libraries/PeriphDrivers/Source/ADC/adc_me12.c index 2164b2e695d..975928002ae 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me12.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me13.c b/Libraries/PeriphDrivers/Source/ADC/adc_me13.c index c36ea4e9388..eb18220e60c 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me13.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me13.c @@ -136,10 +136,7 @@ void MXC_ADC_SetExtScale(mxc_adc_scale_t scale) { MXC_ADC_RevA_SetExtScale((mxc_adc_reva_regs_t *)MXC_ADC, scale); } -void MXC_ADC_RefSelect(mxc_adc_ref_t ref) -{ - MXC_ADC_RevA_RefSelect((mxc_adc_reva_regs_t *)MXC_ADC, ref); -} + void MXC_ADC_EnableMonitor(mxc_adc_monitor_t monitor) { MXC_ADC_RevA_EnableMonitor((mxc_adc_reva_regs_t *)MXC_ADC, monitor); diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me14.c b/Libraries/PeriphDrivers/Source/ADC/adc_me14.c index 8c0fc81579d..d5ae09fc22e 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me14.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "adc.h" @@ -132,10 +150,7 @@ void MXC_ADC_SetExtScale(mxc_adc_scale_t scale) { MXC_ADC_RevA_SetExtScale((mxc_adc_reva_regs_t *)MXC_ADC, scale); } -void MXC_ADC_RefSelect(mxc_adc_ref_t ref) -{ - MXC_ADC_RevA_RefSelect((mxc_adc_reva_regs_t *)MXC_ADC, ref); -} + void MXC_ADC_EnableMonitor(mxc_adc_monitor_t monitor) { MXC_ADC_RevA_EnableMonitor((mxc_adc_reva_regs_t *)MXC_ADC, monitor); diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me17.c b/Libraries/PeriphDrivers/Source/ADC/adc_me17.c index 17b647c8078..6cbe6d8c292 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me17.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "adc.h" @@ -169,10 +187,7 @@ void MXC_ADC_SetExtScale(mxc_adc_scale_t scale) { MXC_ADC_RevA_SetExtScale((mxc_adc_reva_regs_t *)MXC_ADC, scale); } -void MXC_ADC_RefSelect(mxc_adc_ref_t ref) -{ - MXC_ADC_RevA_RefSelect((mxc_adc_reva_regs_t *)MXC_ADC, ref); -} + void MXC_ADC_EnableMonitor(mxc_adc_monitor_t monitor) { MXC_ADC_RevA_EnableMonitor((mxc_adc_reva_regs_t *)MXC_ADC, monitor); diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me18.c b/Libraries/PeriphDrivers/Source/ADC/adc_me18.c index 08244388f89..2754b1f7a47 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me18.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "adc.h" diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me21.c b/Libraries/PeriphDrivers/Source/ADC/adc_me21.c index 43556e7b99b..7ef47e20e28 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me21.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "adc.h" diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_me55.c b/Libraries/PeriphDrivers/Source/ADC/adc_me55.c index fea3f0cbe5c..fc813ba020f 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_me55.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_me55.c @@ -137,10 +137,7 @@ void MXC_ADC_SetExtScale(mxc_adc_scale_t scale) { MXC_ADC_RevA_SetExtScale((mxc_adc_reva_regs_t *)MXC_ADC, scale); } -void MXC_ADC_RefSelect(mxc_adc_ref_t ref) -{ - MXC_ADC_RevA_RefSelect((mxc_adc_reva_regs_t *)MXC_ADC, ref); -} + void MXC_ADC_EnableMonitor(mxc_adc_monitor_t monitor) { MXC_ADC_RevA_EnableMonitor((mxc_adc_reva_regs_t *)MXC_ADC, monitor); diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_reva.c b/Libraries/PeriphDrivers/Source/ADC/adc_reva.c index c4269ae585a..b2fb25d6e4d 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_reva.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include @@ -226,25 +244,8 @@ void MXC_ADC_RevA_SetExtScale(mxc_adc_reva_regs_t *adc, mxc_adc_scale_t scale) adc->ctrl &= ~MXC_F_ADC_REVA_CTRL_SCALE; break; } - - //Force sampling of adc scale register - adc->ctrl ^= (1 << MXC_F_ADC_REVA_CTRL_CH_SEL_POS); - //Reset the channel to original selected channel - adc->ctrl ^= (1 << MXC_F_ADC_REVA_CTRL_CH_SEL_POS); } -void MXC_ADC_RevA_RefSelect(mxc_adc_reva_regs_t *adc, mxc_adc_ref_t ref) -{ - switch (ref) { - case MXC_ADC_REF_INT: - case MXC_ADC_REF_EXT: - adc->ctrl &= ~MXC_F_ADC_REVA_CTRL_REF_SEL; - adc->ctrl |= (ref << MXC_F_ADC_REVA_CTRL_REF_SEL_POS); - break; - default: - break; - } -} void MXC_ADC_RevA_EnableMonitor(mxc_adc_reva_regs_t *adc, mxc_adc_monitor_t monitor) { MXC_ASSERT(monitor < MXC_MONITOR_NUM); diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_reva.h b/Libraries/PeriphDrivers/Source/ADC/adc_reva.h index 312c908fdf6..b17b3452529 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_reva.h +++ b/Libraries/PeriphDrivers/Source/ADC/adc_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_ADC_ADC_REVA_H_ #define LIBRARIES_PERIPHDRIVERS_SOURCE_ADC_ADC_REVA_H_ @@ -76,7 +94,6 @@ int MXC_ADC_RevA_SetConversionSpeed(mxc_adc_reva_regs_t *adc, uint32_t hz); int MXC_ADC_RevA_GetConversionSpeed(uint8_t divider); void MXC_ADC_RevA_SetDataAlignment(mxc_adc_reva_regs_t *adc, int msbJustify); void MXC_ADC_RevA_SetExtScale(mxc_adc_reva_regs_t *adc, mxc_adc_scale_t scale); -void MXC_ADC_RevA_RefSelect(mxc_adc_reva_regs_t *adc, mxc_adc_ref_t ref); void MXC_ADC_RevA_EnableMonitor(mxc_adc_reva_regs_t *adc, mxc_adc_monitor_t monitor); void MXC_ADC_RevA_DisableMonitor(mxc_adc_reva_regs_t *adc, mxc_adc_monitor_t monitor); void MXC_ADC_RevA_SetMonitorHighThreshold(mxc_adc_reva_regs_t *adc, mxc_adc_monitor_t monitor, diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_reva_regs.h b/Libraries/PeriphDrivers/Source/ADC/adc_reva_regs.h index 2d6f3c10e0a..56c298a8c9f 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/ADC/adc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _ADC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_revb.c b/Libraries/PeriphDrivers/Source/ADC/adc_revb.c index 32caa57ae4b..ad71668a7b0 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_revb.c +++ b/Libraries/PeriphDrivers/Source/ADC/adc_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include "adc.h" diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_revb.h b/Libraries/PeriphDrivers/Source/ADC/adc_revb.h index fea30b2d037..9a953b31a54 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_revb.h +++ b/Libraries/PeriphDrivers/Source/ADC/adc_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_ADC_ADC_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/ADC/adc_revb_regs.h b/Libraries/PeriphDrivers/Source/ADC/adc_revb_regs.h index c46be08908d..d25f6839a8f 100644 --- a/Libraries/PeriphDrivers/Source/ADC/adc_revb_regs.h +++ b/Libraries/PeriphDrivers/Source/ADC/adc_revb_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _ADC_REVB_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/AES/aes_ai87.c b/Libraries/PeriphDrivers/Source/AES/aes_ai87.c index 08d5ade2436..ecd2d36af5e 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_ai87.c +++ b/Libraries/PeriphDrivers/Source/AES/aes_ai87.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/AES/aes_me12.c b/Libraries/PeriphDrivers/Source/AES/aes_me12.c index de2581be91f..db31c9927a5 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_me12.c +++ b/Libraries/PeriphDrivers/Source/AES/aes_me12.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/AES/aes_me15.c b/Libraries/PeriphDrivers/Source/AES/aes_me15.c index 0fa0f79720c..e9b172dc43d 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_me15.c +++ b/Libraries/PeriphDrivers/Source/AES/aes_me15.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/AES/aes_me17.c b/Libraries/PeriphDrivers/Source/AES/aes_me17.c index 3bc597e8d2f..b9e31a3a408 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_me17.c +++ b/Libraries/PeriphDrivers/Source/AES/aes_me17.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/AES/aes_me18.c b/Libraries/PeriphDrivers/Source/AES/aes_me18.c index de2581be91f..db31c9927a5 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_me18.c +++ b/Libraries/PeriphDrivers/Source/AES/aes_me18.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/AES/aes_me21.c b/Libraries/PeriphDrivers/Source/AES/aes_me21.c index 4330d630fbe..90aba75ee0a 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_me21.c +++ b/Libraries/PeriphDrivers/Source/AES/aes_me21.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/AES/aes_revb.c b/Libraries/PeriphDrivers/Source/AES/aes_revb.c index 0c1d5ae2fa9..18e40374906 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_revb.c +++ b/Libraries/PeriphDrivers/Source/AES/aes_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/AES/aes_revb.h b/Libraries/PeriphDrivers/Source/AES/aes_revb.h index 70beee79276..73dee878fb9 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_revb.h +++ b/Libraries/PeriphDrivers/Source/AES/aes_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_AES_AES_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/AES/aes_revb_regs.h b/Libraries/PeriphDrivers/Source/AES/aes_revb_regs.h index 4b856a0e63e..a8ecb500a05 100644 --- a/Libraries/PeriphDrivers/Source/AES/aes_revb_regs.h +++ b/Libraries/PeriphDrivers/Source/AES/aes_revb_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _AES_REVB_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/AES/aeskeys_revb_regs.h b/Libraries/PeriphDrivers/Source/AES/aeskeys_revb_regs.h index 58177947ea0..8fec74b3b62 100644 --- a/Libraries/PeriphDrivers/Source/AES/aeskeys_revb_regs.h +++ b/Libraries/PeriphDrivers/Source/AES/aeskeys_revb_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_AESKEYS_AESKEYS_REVB_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/AFE/afe.c b/Libraries/PeriphDrivers/Source/AFE/afe.c index c179e1807d3..dc7ec9cad12 100644 --- a/Libraries/PeriphDrivers/Source/AFE/afe.c +++ b/Libraries/PeriphDrivers/Source/AFE/afe.c @@ -1,14 +1,14 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -31,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/AFE/afe_gpio.c b/Libraries/PeriphDrivers/Source/AFE/afe_gpio.c index 3c5f7a67f71..0231bdcc01b 100644 --- a/Libraries/PeriphDrivers/Source/AFE/afe_gpio.c +++ b/Libraries/PeriphDrivers/Source/AFE/afe_gpio.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/AFE/afe_timer.c b/Libraries/PeriphDrivers/Source/AFE/afe_timer.c index c5b5ef8dfd8..5685ca42ccd 100644 --- a/Libraries/PeriphDrivers/Source/AFE/afe_timer.c +++ b/Libraries/PeriphDrivers/Source/AFE/afe_timer.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/AFE/hart_uart.c b/Libraries/PeriphDrivers/Source/AFE/hart_uart.c index e5d0d6c607d..855e5a25e58 100644 --- a/Libraries/PeriphDrivers/Source/AFE/hart_uart.c +++ b/Libraries/PeriphDrivers/Source/AFE/hart_uart.c @@ -1,14 +1,14 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -31,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/AFE/infoblock.c b/Libraries/PeriphDrivers/Source/AFE/infoblock.c index 27451c0d4d4..5161c327c4f 100644 --- a/Libraries/PeriphDrivers/Source/AFE/infoblock.c +++ b/Libraries/PeriphDrivers/Source/AFE/infoblock.c @@ -1,14 +1,14 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -31,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai85.c b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai85.c index 28a9efe3961..d12fbfc216d 100644 --- a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai85.c +++ b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai87.c b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai87.c index 28a9efe3961..d12fbfc216d 100644 --- a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai87.c +++ b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.c b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.c index 68f3862e71b..c99b85e864f 100644 --- a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.c +++ b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.h b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.h index 26080aa7136..441bd7c5325 100644 --- a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.h +++ b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_CAMERAIF_CAMERAIF_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva_regs.h b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva_regs.h index 686b086170b..b689a259d54 100644 --- a/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/CAMERAIF/cameraif_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _CAMERAIF_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/CAN/can_me12.c b/Libraries/PeriphDrivers/Source/CAN/can_me12.c index daefa37aff8..a419e2204a6 100644 --- a/Libraries/PeriphDrivers/Source/CAN/can_me12.c +++ b/Libraries/PeriphDrivers/Source/CAN/can_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CAN/can_me18.c b/Libraries/PeriphDrivers/Source/CAN/can_me18.c index d13c7c39fad..4958b099cb0 100644 --- a/Libraries/PeriphDrivers/Source/CAN/can_me18.c +++ b/Libraries/PeriphDrivers/Source/CAN/can_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "can.h" diff --git a/Libraries/PeriphDrivers/Source/CAN/can_reva.c b/Libraries/PeriphDrivers/Source/CAN/can_reva.c index 01b97196502..d13963a4e76 100644 --- a/Libraries/PeriphDrivers/Source/CAN/can_reva.c +++ b/Libraries/PeriphDrivers/Source/CAN/can_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "can_reva.h" diff --git a/Libraries/PeriphDrivers/Source/CAN/can_reva.h b/Libraries/PeriphDrivers/Source/CAN/can_reva.h index 3462aa458e4..431e4c15a91 100644 --- a/Libraries/PeriphDrivers/Source/CAN/can_reva.h +++ b/Libraries/PeriphDrivers/Source/CAN/can_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_CAN_CAN_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/CAN/can_reva_regs.h b/Libraries/PeriphDrivers/Source/CAN/can_reva_regs.h index b173b7f91ce..77f53b3d5a7 100644 --- a/Libraries/PeriphDrivers/Source/CAN/can_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/CAN/can_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _CAN_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/CLCD/clcd_me10.c b/Libraries/PeriphDrivers/Source/CLCD/clcd_me10.c index 8cf531b9d64..e4e0444940c 100644 --- a/Libraries/PeriphDrivers/Source/CLCD/clcd_me10.c +++ b/Libraries/PeriphDrivers/Source/CLCD/clcd_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.c b/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.c index 9c5ba068225..15d6dee1c32 100644 --- a/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.c +++ b/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.h b/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.h index c431a47353b..7b0784ffd1d 100644 --- a/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.h +++ b/Libraries/PeriphDrivers/Source/CLCD/clcd_reva.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Source/CLCD/clcd_reva_regs.h b/Libraries/PeriphDrivers/Source/CLCD/clcd_reva_regs.h index cf171b23d46..5d950742d87 100644 --- a/Libraries/PeriphDrivers/Source/CLCD/clcd_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/CLCD/clcd_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _CLCD_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/CORE1/system_core1.c b/Libraries/PeriphDrivers/Source/CORE1/system_core1.c index 609bd1d83f4..685071210cf 100644 --- a/Libraries/PeriphDrivers/Source/CORE1/system_core1.c +++ b/Libraries/PeriphDrivers/Source/CORE1/system_core1.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/CRC/crc_ai87.c b/Libraries/PeriphDrivers/Source/CRC/crc_ai87.c index e0bdb814bf1..e4b0af1661e 100644 --- a/Libraries/PeriphDrivers/Source/CRC/crc_ai87.c +++ b/Libraries/PeriphDrivers/Source/CRC/crc_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CRC/crc_me15.c b/Libraries/PeriphDrivers/Source/CRC/crc_me15.c index e0bdb814bf1..e4b0af1661e 100644 --- a/Libraries/PeriphDrivers/Source/CRC/crc_me15.c +++ b/Libraries/PeriphDrivers/Source/CRC/crc_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CRC/crc_me16.c b/Libraries/PeriphDrivers/Source/CRC/crc_me16.c index 67081b69ecb..212be173fbb 100644 --- a/Libraries/PeriphDrivers/Source/CRC/crc_me16.c +++ b/Libraries/PeriphDrivers/Source/CRC/crc_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CRC/crc_me17.c b/Libraries/PeriphDrivers/Source/CRC/crc_me17.c index e0bdb814bf1..e4b0af1661e 100644 --- a/Libraries/PeriphDrivers/Source/CRC/crc_me17.c +++ b/Libraries/PeriphDrivers/Source/CRC/crc_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CRC/crc_reva.c b/Libraries/PeriphDrivers/Source/CRC/crc_reva.c index 9969f52b257..1ad75ca43b7 100644 --- a/Libraries/PeriphDrivers/Source/CRC/crc_reva.c +++ b/Libraries/PeriphDrivers/Source/CRC/crc_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/CRC/crc_reva.h b/Libraries/PeriphDrivers/Source/CRC/crc_reva.h index 283240dc59d..f9d09bb99d1 100644 --- a/Libraries/PeriphDrivers/Source/CRC/crc_reva.h +++ b/Libraries/PeriphDrivers/Source/CRC/crc_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_CRC_CRC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/CRC/crc_reva_regs.h b/Libraries/PeriphDrivers/Source/CRC/crc_reva_regs.h index 74835dc5553..8b254774b4d 100644 --- a/Libraries/PeriphDrivers/Source/CRC/crc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/CRC/crc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _CRC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/CSI2/csi2_ai87.c b/Libraries/PeriphDrivers/Source/CSI2/csi2_ai87.c index 488119d8946..ab0326e712f 100644 --- a/Libraries/PeriphDrivers/Source/CSI2/csi2_ai87.c +++ b/Libraries/PeriphDrivers/Source/CSI2/csi2_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.c b/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.c index 01f664da9b7..54ea8b12acd 100644 --- a/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.c +++ b/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifdef __riscv diff --git a/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.h b/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.h index 614b6e67df5..6aabc58b25d 100644 --- a/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.h +++ b/Libraries/PeriphDrivers/Source/CSI2/csi2_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_CSI2_CSI2_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/CSI2/csi2_reva_regs.h b/Libraries/PeriphDrivers/Source/CSI2/csi2_reva_regs.h index f03455773e0..431311eb355 100644 --- a/Libraries/PeriphDrivers/Source/CSI2/csi2_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/CSI2/csi2_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _CSI2_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_common.c b/Libraries/PeriphDrivers/Source/CTB/ctb_common.c index eb6c7d84456..aa50ec4f26c 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_common.c +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_common.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "ctb.h" diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_common.h b/Libraries/PeriphDrivers/Source/CTB/ctb_common.h index 4b3614808ca..2ed3537db8f 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_common.h +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_common.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_CTB_CTB_COMMON_H_ diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_es17.c b/Libraries/PeriphDrivers/Source/CTB/ctb_es17.c index b0fda0791d0..0ab5005907a 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_es17.c +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_me18.c b/Libraries/PeriphDrivers/Source/CTB/ctb_me18.c index cdcca03490d..aa5d200322f 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_me18.c +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_me21.c b/Libraries/PeriphDrivers/Source/CTB/ctb_me21.c index 6209787887b..8c51de85ef1 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_me21.c +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_reva.c b/Libraries/PeriphDrivers/Source/CTB/ctb_reva.c index 3885336d4e3..aeac75c0986 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_reva.c +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_reva.h b/Libraries/PeriphDrivers/Source/CTB/ctb_reva.h index 56586b83819..90e5cd71226 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_reva.h +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_CTB_CTB_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/CTB/ctb_reva_regs.h b/Libraries/PeriphDrivers/Source/CTB/ctb_reva_regs.h index 0f745b30de4..514542b0f2d 100644 --- a/Libraries/PeriphDrivers/Source/CTB/ctb_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/CTB/ctb_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _CTB_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/CTB/trng_reva_regs.h b/Libraries/PeriphDrivers/Source/CTB/trng_reva_regs.h index e65623103d0..9aeb6017cad 100644 --- a/Libraries/PeriphDrivers/Source/CTB/trng_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/CTB/trng_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TRNG_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_ai87.c b/Libraries/PeriphDrivers/Source/DMA/dma_ai87.c index d1611b5d686..bd43a9b57f0 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_ai87.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_es17.c b/Libraries/PeriphDrivers/Source/DMA/dma_es17.c index 52e7384883b..7c3ed1d6913 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_es17.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me10.c b/Libraries/PeriphDrivers/Source/DMA/dma_me10.c index a7ee76b5b6c..0b49d91bd9d 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me10.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me11.c b/Libraries/PeriphDrivers/Source/DMA/dma_me11.c index ef043fcd8cb..8c54297f3d9 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me11.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me12.c b/Libraries/PeriphDrivers/Source/DMA/dma_me12.c index 574265c0065..e869c2003b7 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me12.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me14.c b/Libraries/PeriphDrivers/Source/DMA/dma_me14.c index e118f19bf3d..1383e575e35 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me14.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me15.c b/Libraries/PeriphDrivers/Source/DMA/dma_me15.c index 38e976e9caf..73af61072a9 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me15.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me16.c b/Libraries/PeriphDrivers/Source/DMA/dma_me16.c index 3f9cc3f04ee..a872a0999f4 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me16.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me17.c b/Libraries/PeriphDrivers/Source/DMA/dma_me17.c index d1611b5d686..bd43a9b57f0 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me17.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me18.c b/Libraries/PeriphDrivers/Source/DMA/dma_me18.c index 574265c0065..e869c2003b7 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me18.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_me21.c b/Libraries/PeriphDrivers/Source/DMA/dma_me21.c index d3a15605ed2..dd6f71ba2a0 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_me21.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_reva.c b/Libraries/PeriphDrivers/Source/DMA/dma_reva.c index 490714298b7..d4c9c134297 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_reva.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_reva.h b/Libraries/PeriphDrivers/Source/DMA/dma_reva.h index 3674c265c78..3bf29045530 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_reva.h +++ b/Libraries/PeriphDrivers/Source/DMA/dma_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_DMA_DMA_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_reva_regs.h b/Libraries/PeriphDrivers/Source/DMA/dma_reva_regs.h index 0cb0b1c40e9..2a8e4d19d51 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/DMA/dma_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _DMA_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_revb.c b/Libraries/PeriphDrivers/Source/DMA/dma_revb.c index 3db7b3403f1..cd93466b94f 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_revb.c +++ b/Libraries/PeriphDrivers/Source/DMA/dma_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/DMA/dma_revb.h b/Libraries/PeriphDrivers/Source/DMA/dma_revb.h index 4cbcf79e99a..2cff79257a7 100644 --- a/Libraries/PeriphDrivers/Source/DMA/dma_revb.h +++ b/Libraries/PeriphDrivers/Source/DMA/dma_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_DMA_DMA_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/EMAC/emac_reva.c b/Libraries/PeriphDrivers/Source/EMAC/emac_reva.c index b312e331e09..c3d756e389e 100644 --- a/Libraries/PeriphDrivers/Source/EMAC/emac_reva.c +++ b/Libraries/PeriphDrivers/Source/EMAC/emac_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /******* Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/EMAC/emac_reva.h b/Libraries/PeriphDrivers/Source/EMAC/emac_reva.h index f1bf4dc197d..8980339bbac 100644 --- a/Libraries/PeriphDrivers/Source/EMAC/emac_reva.h +++ b/Libraries/PeriphDrivers/Source/EMAC/emac_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_EMAC_EMAC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/EMAC/emac_reva_regs.h b/Libraries/PeriphDrivers/Source/EMAC/emac_reva_regs.h index 5e5d49e0cae..dab534cccec 100644 --- a/Libraries/PeriphDrivers/Source/EMAC/emac_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/EMAC/emac_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _EMAC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/EMCC/emcc_me10.c b/Libraries/PeriphDrivers/Source/EMCC/emcc_me10.c index b1629c240e1..725fc2c6283 100644 --- a/Libraries/PeriphDrivers/Source/EMCC/emcc_me10.c +++ b/Libraries/PeriphDrivers/Source/EMCC/emcc_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/EMCC/emcc_me18.c b/Libraries/PeriphDrivers/Source/EMCC/emcc_me18.c index 91bf99dc189..89c5b589448 100644 --- a/Libraries/PeriphDrivers/Source/EMCC/emcc_me18.c +++ b/Libraries/PeriphDrivers/Source/EMCC/emcc_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "emcc.h" diff --git a/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.c b/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.c index be919b238a0..bb0cf7045bc 100644 --- a/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.c +++ b/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "emcc_reva.h" diff --git a/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.h b/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.h index ef18271e636..5dd38e1706d 100644 --- a/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.h +++ b/Libraries/PeriphDrivers/Source/EMCC/emcc_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_EMCC_EMCC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/EMCC/emcc_reva_regs.h b/Libraries/PeriphDrivers/Source/EMCC/emcc_reva_regs.h index ae0168acbdf..b313f2258b0 100644 --- a/Libraries/PeriphDrivers/Source/EMCC/emcc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/EMCC/emcc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_EMCC_EMCC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_ai87.c b/Libraries/PeriphDrivers/Source/FLC/flc_ai87.c index 6d2aba91197..fb88e7611f2 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_ai87.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_ai87.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_common.c b/Libraries/PeriphDrivers/Source/FLC/flc_common.c index 767556994bc..139213900e9 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_common.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_common.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_common.h b/Libraries/PeriphDrivers/Source/FLC/flc_common.h index 16d5759e28c..9dbb7048ac3 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_common.h +++ b/Libraries/PeriphDrivers/Source/FLC/flc_common.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_FLC_FLC_COMMON_H_ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_es17.c b/Libraries/PeriphDrivers/Source/FLC/flc_es17.c index 0c5513182a1..d20d046241e 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_es17.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_es17.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me10.c b/Libraries/PeriphDrivers/Source/FLC/flc_me10.c index dcba1fb7479..64649890a12 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me10.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me10.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me11.c b/Libraries/PeriphDrivers/Source/FLC/flc_me11.c index d9ca75dd4ea..1e598e15402 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me11.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me11.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me12.c b/Libraries/PeriphDrivers/Source/FLC/flc_me12.c index 00d45bc7dc0..48fed6fc761 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me12.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me12.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me14.c b/Libraries/PeriphDrivers/Source/FLC/flc_me14.c index 01e858a15bb..d09a24a0708 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me14.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me14.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me15.c b/Libraries/PeriphDrivers/Source/FLC/flc_me15.c index 63e1c890348..2b64dcec042 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me15.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me15.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me17.c b/Libraries/PeriphDrivers/Source/FLC/flc_me17.c index 8dd1ddc78d5..45dcc948aee 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me17.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me17.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me18.c b/Libraries/PeriphDrivers/Source/FLC/flc_me18.c index 5b9b61d88f6..f0afc227534 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me18.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me18.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_me21.c b/Libraries/PeriphDrivers/Source/FLC/flc_me21.c index 5c00576d45e..05d1643e2af 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_me21.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_me21.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_reva.c b/Libraries/PeriphDrivers/Source/FLC/flc_reva.c index befba39794c..e3b238e2cde 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_reva.c +++ b/Libraries/PeriphDrivers/Source/FLC/flc_reva.c @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_reva.h b/Libraries/PeriphDrivers/Source/FLC/flc_reva.h index 618828704b2..b930dfd28f2 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_reva.h +++ b/Libraries/PeriphDrivers/Source/FLC/flc_reva.h @@ -4,7 +4,9 @@ * @details This driver can be used to operate on the embedded flash memory. */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_FLC_FLC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/FLC/flc_reva_regs.h b/Libraries/PeriphDrivers/Source/FLC/flc_reva_regs.h index bf6419f50c1..897bcc85210 100644 --- a/Libraries/PeriphDrivers/Source/FLC/flc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/FLC/flc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_FLC_FLC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_ai85.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_ai85.c index df5aa7304e3..ffc17ede5bf 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_ai85.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_ai87.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_ai87.c index df5aa7304e3..ffc17ede5bf 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_ai87.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_common.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_common.c index ba58087f359..09ddb7381ff 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_common.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_common.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_common.h b/Libraries/PeriphDrivers/Source/GPIO/gpio_common.h index 6c02acd5d34..2df8c6de03c 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_common.h +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_common.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_GPIO_GPIO_COMMON_H_ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_es17.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_es17.c index 179546518b8..65b42b4683a 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_es17.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me10.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me10.c index 97db19aec7c..cb68aaf3125 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me10.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me11.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me11.c index 52ac14b7de4..b6c348fa911 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me11.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me12.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me12.c index a1ee12ab617..45fe406d79e 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me12.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me14.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me14.c index 7f55668fd23..2ad0c93b177 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me14.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me15.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me15.c index 6741a29f630..4f03b6a54ed 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me15.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me16.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me16.c index 1596db8d3e6..8963f752c60 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me16.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me17.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me17.c index df5aa7304e3..ffc17ede5bf 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me17.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me18.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me18.c index 2b91bbcada5..183ab547049 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me18.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me20.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me20.c index 05c47d410ce..5488a58808c 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me20.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me20.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_me21.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_me21.c index c31ff4ef0ac..ae08522c596 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_me21.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.c index b943978766a..eb1e9e306d5 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.h b/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.h index d926b1ff8ac..1b58a383f3b 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.h +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_GPIO_GPIO_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_reva_regs.h b/Libraries/PeriphDrivers/Source/GPIO/gpio_reva_regs.h index 1433971d1fd..2d9721696ad 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_GPIO_GPIO_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.c b/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.c index b7894226fbb..754c1fa2b7b 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.c +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.h b/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.h index c4e7440ebab..c8b57b2a802 100644 --- a/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.h +++ b/Libraries/PeriphDrivers/Source/GPIO/gpio_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_GPIO_GPIO_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/HPB/hpb_me10.c b/Libraries/PeriphDrivers/Source/HPB/hpb_me10.c index 7c7ed611a60..3a8061855bd 100644 --- a/Libraries/PeriphDrivers/Source/HPB/hpb_me10.c +++ b/Libraries/PeriphDrivers/Source/HPB/hpb_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/HPB/hpb_me18.c b/Libraries/PeriphDrivers/Source/HPB/hpb_me18.c index b67bf256e6e..0e59169727d 100644 --- a/Libraries/PeriphDrivers/Source/HPB/hpb_me18.c +++ b/Libraries/PeriphDrivers/Source/HPB/hpb_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/HPB/hpb_reva.c b/Libraries/PeriphDrivers/Source/HPB/hpb_reva.c index a287dd332bb..15c4b343a46 100644 --- a/Libraries/PeriphDrivers/Source/HPB/hpb_reva.c +++ b/Libraries/PeriphDrivers/Source/HPB/hpb_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/HPB/hpb_reva.h b/Libraries/PeriphDrivers/Source/HPB/hpb_reva.h index ed18f9a030d..a028ca16816 100644 --- a/Libraries/PeriphDrivers/Source/HPB/hpb_reva.h +++ b/Libraries/PeriphDrivers/Source/HPB/hpb_reva.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* Define to prevent redundant inclusion */ diff --git a/Libraries/PeriphDrivers/Source/HPB/hpb_reva_regs.h b/Libraries/PeriphDrivers/Source/HPB/hpb_reva_regs.h index d4455a6ff8f..627d9c72527 100644 --- a/Libraries/PeriphDrivers/Source/HPB/hpb_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/HPB/hpb_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_HPB_HPB_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/HTMR/htmr_me14.c b/Libraries/PeriphDrivers/Source/HTMR/htmr_me14.c index 461974c9681..b2e7ccb64b2 100644 --- a/Libraries/PeriphDrivers/Source/HTMR/htmr_me14.c +++ b/Libraries/PeriphDrivers/Source/HTMR/htmr_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.c b/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.c index 20ec1933fba..5be64734911 100644 --- a/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.c +++ b/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.h b/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.h index d8f44dabcd1..5e7c114523d 100644 --- a/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.h +++ b/Libraries/PeriphDrivers/Source/HTMR/htmr_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_HTMR_HTMR_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/HTMR/htmr_reva_regs.h b/Libraries/PeriphDrivers/Source/HTMR/htmr_reva_regs.h index 43b5061ce8a..1f61ad45c9a 100644 --- a/Libraries/PeriphDrivers/Source/HTMR/htmr_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/HTMR/htmr_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_HTMR_HTMR_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_ai87.c b/Libraries/PeriphDrivers/Source/I2C/i2c_ai87.c index 2caa81e8684..813d1fb6ffc 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_ai87.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_es17.c b/Libraries/PeriphDrivers/Source/I2C/i2c_es17.c index d9ac5fdcfe9..ca03e51921f 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_es17.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me10.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me10.c index 7998542f29c..4889e873602 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me10.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me11.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me11.c index b882e03e8b3..3e31cc23fda 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me11.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me12.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me12.c index 10c96e961ec..484c50c49b5 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me12.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me14.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me14.c index 3171f20a3b2..ebd053ba7b1 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me14.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me15.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me15.c index 9e88b1ee2e1..b110bf5b665 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me15.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me17.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me17.c index ae9ee88cd64..a8bd702ff17 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me17.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me18.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me18.c index 3a7dadd559e..28beace62ac 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me18.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_me21.c b/Libraries/PeriphDrivers/Source/I2C/i2c_me21.c index fdef823a00f..ae2a62f60ef 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_me21.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_reva.c b/Libraries/PeriphDrivers/Source/I2C/i2c_reva.c index 6fa2682700e..780c6eed4c7 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_reva.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_reva.h b/Libraries/PeriphDrivers/Source/I2C/i2c_reva.h index 1952bbbbcf2..277e65b572e 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_reva.h +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_I2C_I2C_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_reva_regs.h b/Libraries/PeriphDrivers/Source/I2C/i2c_reva_regs.h index 62347b22ce1..919ce636103 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_reva_regs.h @@ -6,7 +6,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -36,6 +38,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_I2C_I2C_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_revb.c b/Libraries/PeriphDrivers/Source/I2C/i2c_revb.c index ca8acc61656..9194887baa4 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_revb.c +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2C/i2c_revb.h b/Libraries/PeriphDrivers/Source/I2C/i2c_revb.h index 2394d8f0940..4befbd8848c 100644 --- a/Libraries/PeriphDrivers/Source/I2C/i2c_revb.h +++ b/Libraries/PeriphDrivers/Source/I2C/i2c_revb.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_I2C_I2C_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_ai85.c b/Libraries/PeriphDrivers/Source/I2S/i2s_ai85.c index c66422f48d5..2dabc875973 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_ai85.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_ai85.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_ai87.c b/Libraries/PeriphDrivers/Source/I2S/i2s_ai87.c index c66422f48d5..2dabc875973 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_ai87.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_ai87.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_me12.c b/Libraries/PeriphDrivers/Source/I2S/i2s_me12.c index 2c1a1e7d3bb..2b169705c6c 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_me12.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_me12.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_me15.c b/Libraries/PeriphDrivers/Source/I2S/i2s_me15.c index e9016bc4c6c..891a724d0ca 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_me15.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_me16.c b/Libraries/PeriphDrivers/Source/I2S/i2s_me16.c index 0ede8294082..63ddb86f2ec 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_me16.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_me17.c b/Libraries/PeriphDrivers/Source/I2S/i2s_me17.c index 990ef412ac0..6c317348016 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_me17.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_me17.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_me18.c b/Libraries/PeriphDrivers/Source/I2S/i2s_me18.c index 9536d8a67a6..588705da453 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_me18.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_me18.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_me20.c b/Libraries/PeriphDrivers/Source/I2S/i2s_me20.c index 0d2d1195421..f6c24a402e6 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_me20.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_me20.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_me21.c b/Libraries/PeriphDrivers/Source/I2S/i2s_me21.c index e9016bc4c6c..891a724d0ca 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_me21.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_reva.c b/Libraries/PeriphDrivers/Source/I2S/i2s_reva.c index 6035bd9e39d..76255eabd6e 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_reva.c +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_reva.h b/Libraries/PeriphDrivers/Source/I2S/i2s_reva.h index 92c3ef17591..deff10ec4cb 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_reva.h +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_I2S_I2S_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/I2S/i2s_reva_regs.h b/Libraries/PeriphDrivers/Source/I2S/i2s_reva_regs.h index fb7a5455279..7be243c962d 100644 --- a/Libraries/PeriphDrivers/Source/I2S/i2s_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/I2S/i2s_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_I2S_I2S_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_ai87.c b/Libraries/PeriphDrivers/Source/ICC/icc_ai87.c index 6d076983559..a559cc8a2f3 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_ai87.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_common.c b/Libraries/PeriphDrivers/Source/ICC/icc_common.c index 7764fa929b4..a2ec23044d5 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_common.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_common.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_common.h b/Libraries/PeriphDrivers/Source/ICC/icc_common.h index e6b1b751f69..9d00f886b71 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_common.h +++ b/Libraries/PeriphDrivers/Source/ICC/icc_common.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_ICC_ICC_COMMON_H_ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_es17.c b/Libraries/PeriphDrivers/Source/ICC/icc_es17.c index aa60013442c..b276f167c55 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_es17.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me10.c b/Libraries/PeriphDrivers/Source/ICC/icc_me10.c index 714ff1cd52e..390d5343305 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me10.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ @@ -94,4 +112,4 @@ void MXC_ICC_FlushInst(mxc_icc_regs_t *icc) { MXC_ICC_DisableInst(icc); MXC_ICC_EnableInst(icc); -} \ No newline at end of file +} diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me11.c b/Libraries/PeriphDrivers/Source/ICC/icc_me11.c index aa60013442c..b276f167c55 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me11.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me12.c b/Libraries/PeriphDrivers/Source/ICC/icc_me12.c index aa60013442c..b276f167c55 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me12.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me14.c b/Libraries/PeriphDrivers/Source/ICC/icc_me14.c index 31a62f287aa..a6773dc981c 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me14.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me15.c b/Libraries/PeriphDrivers/Source/ICC/icc_me15.c index aa60013442c..b276f167c55 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me15.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me16.c b/Libraries/PeriphDrivers/Source/ICC/icc_me16.c index 93b0b06d0a0..40645a701e9 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me16.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me17.c b/Libraries/PeriphDrivers/Source/ICC/icc_me17.c index dee34e74807..535e2552722 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me17.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me18.c b/Libraries/PeriphDrivers/Source/ICC/icc_me18.c index a25551ab32c..fb57e879f3a 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me18.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_me21.c b/Libraries/PeriphDrivers/Source/ICC/icc_me21.c index aa60013442c..b276f167c55 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_me21.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_reva.c b/Libraries/PeriphDrivers/Source/ICC/icc_reva.c index 2984a8f8737..a600aab417c 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_reva.c +++ b/Libraries/PeriphDrivers/Source/ICC/icc_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_reva.h b/Libraries/PeriphDrivers/Source/ICC/icc_reva.h index bc3aeeef20d..c0696a16271 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_reva.h +++ b/Libraries/PeriphDrivers/Source/ICC/icc_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_ICC_ICC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/ICC/icc_reva_regs.h b/Libraries/PeriphDrivers/Source/ICC/icc_reva_regs.h index ac77603ac23..6a31a08ff6b 100644 --- a/Libraries/PeriphDrivers/Source/ICC/icc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/ICC/icc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_ICC_ICC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/LP/lp_ai85.c b/Libraries/PeriphDrivers/Source/LP/lp_ai85.c index 1c831da3f68..7afe830ea75 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_ai85.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - *************************************************************************** */ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #include "mxc_device.h" #include "mxc_assert.h" #include "mxc_sys.h" diff --git a/Libraries/PeriphDrivers/Source/LP/lp_ai87.c b/Libraries/PeriphDrivers/Source/LP/lp_ai87.c index 1ffa3667fa1..88e0eb52d78 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_ai87.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/LP/lp_es17.c b/Libraries/PeriphDrivers/Source/LP/lp_es17.c index fa3a18996bb..844508f9908 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_es17.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me10.c b/Libraries/PeriphDrivers/Source/LP/lp_me10.c index 2e1ab063569..da355007942 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me10.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me11.c b/Libraries/PeriphDrivers/Source/LP/lp_me11.c index 5f0514de2ae..ab0bbeb0b87 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me11.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me11.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me12.c b/Libraries/PeriphDrivers/Source/LP/lp_me12.c index 9e3d8e041e4..2632e54481e 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me12.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me14.c b/Libraries/PeriphDrivers/Source/LP/lp_me14.c index 2c7694c00fc..ee739b1b731 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me14.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /***** Includes *****/ diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me15.c b/Libraries/PeriphDrivers/Source/LP/lp_me15.c index c34a43fa28a..9a31f00e8b6 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me15.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me16.c b/Libraries/PeriphDrivers/Source/LP/lp_me16.c index 66ca6e4d28e..f9f6720bd41 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me16.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me17.c b/Libraries/PeriphDrivers/Source/LP/lp_me17.c index 71722192fbb..16c060fd6ea 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me17.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" #include "mxc_assert.h" diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me18.c b/Libraries/PeriphDrivers/Source/LP/lp_me18.c index a6d971253f1..c8dc1f8c5f0 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me18.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef __riscv diff --git a/Libraries/PeriphDrivers/Source/LP/lp_me21.c b/Libraries/PeriphDrivers/Source/LP/lp_me21.c index 015804c1977..56a3fa28c41 100644 --- a/Libraries/PeriphDrivers/Source/LP/lp_me21.c +++ b/Libraries/PeriphDrivers/Source/LP/lp_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai85.c b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai85.c index 083308c635e..6a8faf0c393 100644 --- a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai85.c +++ b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai87.c b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai87.c index 083308c635e..6a8faf0c393 100644 --- a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai87.c +++ b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me17.c b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me17.c index 083308c635e..6a8faf0c393 100644 --- a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me17.c +++ b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me18.c b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me18.c index 5bfd40346df..a89abf3e174 100644 --- a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me18.c +++ b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.c b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.c index 340fc37a48b..af237949e0b 100644 --- a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.c +++ b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.h b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.h index 2e4bfc1424f..9e61003dee4 100644 --- a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.h +++ b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_LPCMP_LPCMP_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva_regs.h b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva_regs.h index 61006a55918..91e3945c0ae 100644 --- a/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/LPCMP/lpcmp_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_LPCMP_LPCMP_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/OTP/otp_reva.c b/Libraries/PeriphDrivers/Source/OTP/otp_reva.c index 04105e98fb4..5a5c2ec2946 100644 --- a/Libraries/PeriphDrivers/Source/OTP/otp_reva.c +++ b/Libraries/PeriphDrivers/Source/OTP/otp_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/OTP/otp_reva.h b/Libraries/PeriphDrivers/Source/OTP/otp_reva.h index da0e1932821..791a8d2c643 100644 --- a/Libraries/PeriphDrivers/Source/OTP/otp_reva.h +++ b/Libraries/PeriphDrivers/Source/OTP/otp_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,8 +31,27 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ +#ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_OTP_OTP_REVA_H_ +#define LIBRARIES_PERIPHDRIVERS_SOURCE_OTP_OTP_REVA_H_ + /* **** Includes **** */ #include #include "otp_reva_regs.h" @@ -62,3 +83,5 @@ int MXC_OTP_RevA_Read32(mxc_otp_reva_regs_t *otp, uint16_t addr, uint32_t *data) #ifdef __cplusplus } #endif + +#endif //LIBRARIES_PERIPHDRIVERS_SOURCE_OTP_OTP_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/OTP/otp_reva_regs.h b/Libraries/PeriphDrivers/Source/OTP/otp_reva_regs.h index eff8aa2e9fe..896597a8fe8 100644 --- a/Libraries/PeriphDrivers/Source/OTP/otp_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/OTP/otp_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _OTP_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_ai87.c b/Libraries/PeriphDrivers/Source/OWM/owm_ai87.c index aed8890b7c0..e5b573bcb50 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_ai87.c +++ b/Libraries/PeriphDrivers/Source/OWM/owm_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_me10.c b/Libraries/PeriphDrivers/Source/OWM/owm_me10.c index 25831e977e3..9125848ae88 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_me10.c +++ b/Libraries/PeriphDrivers/Source/OWM/owm_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_me14.c b/Libraries/PeriphDrivers/Source/OWM/owm_me14.c index 81065ef5f01..d65c880243b 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_me14.c +++ b/Libraries/PeriphDrivers/Source/OWM/owm_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_me17.c b/Libraries/PeriphDrivers/Source/OWM/owm_me17.c index aed8890b7c0..e5b573bcb50 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_me17.c +++ b/Libraries/PeriphDrivers/Source/OWM/owm_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_me18.c b/Libraries/PeriphDrivers/Source/OWM/owm_me18.c index aed8890b7c0..e5b573bcb50 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_me18.c +++ b/Libraries/PeriphDrivers/Source/OWM/owm_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_reva.c b/Libraries/PeriphDrivers/Source/OWM/owm_reva.c index 6dbf5c72abb..23da3ca890c 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_reva.c +++ b/Libraries/PeriphDrivers/Source/OWM/owm_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_reva.h b/Libraries/PeriphDrivers/Source/OWM/owm_reva.h index 251e21d40e1..895c1d12673 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_reva.h +++ b/Libraries/PeriphDrivers/Source/OWM/owm_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_OWM_OWM_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/OWM/owm_reva_regs.h b/Libraries/PeriphDrivers/Source/OWM/owm_reva_regs.h index f341d07328b..7ea280d1fa7 100644 --- a/Libraries/PeriphDrivers/Source/OWM/owm_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/OWM/owm_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_OWM_OWM_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/PT/pt_ai85.c b/Libraries/PeriphDrivers/Source/PT/pt_ai85.c index 7641c0fa3e0..f774a9e154c 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_ai85.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "pt.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_ai87.c b/Libraries/PeriphDrivers/Source/PT/pt_ai87.c index d174ed1f3f6..d3919ea0d2c 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_ai87.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "pt.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_me10.c b/Libraries/PeriphDrivers/Source/PT/pt_me10.c index cdcb10eeb5b..a061c80df75 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_me10.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/PT/pt_me12.c b/Libraries/PeriphDrivers/Source/PT/pt_me12.c index 81f56c3068d..47d6a4e06dc 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_me12.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_sys.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_me14.c b/Libraries/PeriphDrivers/Source/PT/pt_me14.c index ad33b893f54..c9fb5305aa8 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_me14.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "pt.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_me17.c b/Libraries/PeriphDrivers/Source/PT/pt_me17.c index 6b129d45fa6..36a68b50682 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_me17.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "pt.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_me18.c b/Libraries/PeriphDrivers/Source/PT/pt_me18.c index d52a85668b2..035d6102074 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_me18.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "pt.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_me20.c b/Libraries/PeriphDrivers/Source/PT/pt_me20.c index 7641c0fa3e0..f774a9e154c 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_me20.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_me20.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "pt.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_reva.c b/Libraries/PeriphDrivers/Source/PT/pt_reva.c index e414a48851f..8eae1010ea6 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_reva.c +++ b/Libraries/PeriphDrivers/Source/PT/pt_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "pt.h" diff --git a/Libraries/PeriphDrivers/Source/PT/pt_reva.h b/Libraries/PeriphDrivers/Source/PT/pt_reva.h index 6471c9a27fd..a19e1a8579f 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_reva.h +++ b/Libraries/PeriphDrivers/Source/PT/pt_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_PT_PT_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/PT/pt_reva_regs.h b/Libraries/PeriphDrivers/Source/PT/pt_reva_regs.h index c84c36dc426..40e2d342fdd 100644 --- a/Libraries/PeriphDrivers/Source/PT/pt_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/PT/pt_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _PT_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/PT/ptg_reva_regs.h b/Libraries/PeriphDrivers/Source/PT/ptg_reva_regs.h index 8166402cbe2..8bb8253e83f 100644 --- a/Libraries/PeriphDrivers/Source/PT/ptg_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/PT/ptg_reva_regs.h @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_PTG_PTG_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/QDEC/qdec_me21.c b/Libraries/PeriphDrivers/Source/QDEC/qdec_me21.c index d00e08f616e..8eaa16d8a3d 100644 --- a/Libraries/PeriphDrivers/Source/QDEC/qdec_me21.c +++ b/Libraries/PeriphDrivers/Source/QDEC/qdec_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.c b/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.c index debfc1378cb..0f881e7887b 100644 --- a/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.c +++ b/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.h b/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.h index db641b5976e..a459c782b92 100644 --- a/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.h +++ b/Libraries/PeriphDrivers/Source/QDEC/qdec_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_QDEC_QDEC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/QDEC/qdec_reva_regs.h b/Libraries/PeriphDrivers/Source/QDEC/qdec_reva_regs.h index 9cc16916e7f..3e8bc08a9aa 100644 --- a/Libraries/PeriphDrivers/Source/QDEC/qdec_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/QDEC/qdec_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _QDEC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/RPU/rpu_me14.c b/Libraries/PeriphDrivers/Source/RPU/rpu_me14.c index c7eefc15edb..95c260a4e2c 100644 --- a/Libraries/PeriphDrivers/Source/RPU/rpu_me14.c +++ b/Libraries/PeriphDrivers/Source/RPU/rpu_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/RPU/rpu_reva.c b/Libraries/PeriphDrivers/Source/RPU/rpu_reva.c index 2d8a310f9ef..0f8dcc0d3da 100644 --- a/Libraries/PeriphDrivers/Source/RPU/rpu_reva.c +++ b/Libraries/PeriphDrivers/Source/RPU/rpu_reva.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/RPU/rpu_reva.h b/Libraries/PeriphDrivers/Source/RPU/rpu_reva.h index a874197f8ba..281c3d33596 100644 --- a/Libraries/PeriphDrivers/Source/RPU/rpu_reva.h +++ b/Libraries/PeriphDrivers/Source/RPU/rpu_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_RPU_RPU_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_ai87.c b/Libraries/PeriphDrivers/Source/RTC/rtc_ai87.c index 5640366c0e7..4c5e5ceaeff 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_ai87.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me10.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me10.c index 7a6774f56c7..4bf47d6ce50 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me10.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me11.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me11.c index c30324bf375..5eb040b7c39 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me11.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me12.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me12.c index 0e59dd3e703..1dc6107b267 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me12.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me14.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me14.c index 1651da3b905..c0300a9e4eb 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me14.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio_regs.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me15.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me15.c index eb2ec0b113a..092d143da3e 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me15.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio_regs.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me16.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me16.c index 15432670385..4bdf95ab977 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me16.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me17.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me17.c index 3f7b80941c7..c3ab7652d74 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me17.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me18.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me18.c index c1f4c5c9dd0..25b7d6f4e85 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me18.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_me21.c b/Libraries/PeriphDrivers/Source/RTC/rtc_me21.c index ba71c2e3ee8..d4a68623f73 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_me21.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_reva.c b/Libraries/PeriphDrivers/Source/RTC/rtc_reva.c index 8cb02faf11b..3f70177e162 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_reva.c +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_reva.h b/Libraries/PeriphDrivers/Source/RTC/rtc_reva.h index aef743ad99e..61cc1faddb8 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_reva.h +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_RTC_RTC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/RTC/rtc_reva_regs.h b/Libraries/PeriphDrivers/Source/RTC/rtc_reva_regs.h index f71a8c51519..a8faeb30504 100644 --- a/Libraries/PeriphDrivers/Source/RTC/rtc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/RTC/rtc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _RTC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SDHC/sdhc_ai87.c b/Libraries/PeriphDrivers/Source/SDHC/sdhc_ai87.c index b4522d8a678..10afe968c25 100644 --- a/Libraries/PeriphDrivers/Source/SDHC/sdhc_ai87.c +++ b/Libraries/PeriphDrivers/Source/SDHC/sdhc_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SDHC/sdhc_me10.c b/Libraries/PeriphDrivers/Source/SDHC/sdhc_me10.c index d382db05c2e..7c018c43235 100644 --- a/Libraries/PeriphDrivers/Source/SDHC/sdhc_me10.c +++ b/Libraries/PeriphDrivers/Source/SDHC/sdhc_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SDHC/sdhc_me14.c b/Libraries/PeriphDrivers/Source/SDHC/sdhc_me14.c index ebc13b22257..0baef93993a 100644 --- a/Libraries/PeriphDrivers/Source/SDHC/sdhc_me14.c +++ b/Libraries/PeriphDrivers/Source/SDHC/sdhc_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.c b/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.c index c0fa5701d05..2fac01dc869 100644 --- a/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.c +++ b/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.h b/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.h index ca82346333e..da70f1267e8 100644 --- a/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.h +++ b/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SDHC_SDHC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva_regs.h b/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva_regs.h index 2f94602b5ab..276152c8033 100644 --- a/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SDHC/sdhc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SDHC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SEMA/sema_me10.c b/Libraries/PeriphDrivers/Source/SEMA/sema_me10.c index 0405b6f1f7f..49e20aea8ac 100644 --- a/Libraries/PeriphDrivers/Source/SEMA/sema_me10.c +++ b/Libraries/PeriphDrivers/Source/SEMA/sema_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SEMA/sema_me14.c b/Libraries/PeriphDrivers/Source/SEMA/sema_me14.c index f40d9cf1fae..5010ab05f3a 100644 --- a/Libraries/PeriphDrivers/Source/SEMA/sema_me14.c +++ b/Libraries/PeriphDrivers/Source/SEMA/sema_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/SEMA/sema_me17.c b/Libraries/PeriphDrivers/Source/SEMA/sema_me17.c index 4807ebd4646..53311b01311 100644 --- a/Libraries/PeriphDrivers/Source/SEMA/sema_me17.c +++ b/Libraries/PeriphDrivers/Source/SEMA/sema_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/SEMA/sema_me18.c b/Libraries/PeriphDrivers/Source/SEMA/sema_me18.c index a027cd1352b..0132aaa8116 100644 --- a/Libraries/PeriphDrivers/Source/SEMA/sema_me18.c +++ b/Libraries/PeriphDrivers/Source/SEMA/sema_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/SEMA/sema_reva.c b/Libraries/PeriphDrivers/Source/SEMA/sema_reva.c index 243db87edb5..eec497306c2 100644 --- a/Libraries/PeriphDrivers/Source/SEMA/sema_reva.c +++ b/Libraries/PeriphDrivers/Source/SEMA/sema_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SEMA/sema_reva.h b/Libraries/PeriphDrivers/Source/SEMA/sema_reva.h index 1d187709c5c..c9179938a8b 100644 --- a/Libraries/PeriphDrivers/Source/SEMA/sema_reva.h +++ b/Libraries/PeriphDrivers/Source/SEMA/sema_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SEMA_SEMA_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SEMA/sema_reva_regs.h b/Libraries/PeriphDrivers/Source/SEMA/sema_reva_regs.h index a2c1e5be921..cbab83fdbc8 100644 --- a/Libraries/PeriphDrivers/Source/SEMA/sema_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SEMA/sema_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SEMA_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SFE/sfe_es17.c b/Libraries/PeriphDrivers/Source/SFE/sfe_es17.c index 3dff94e50bb..7022119aad4 100644 --- a/Libraries/PeriphDrivers/Source/SFE/sfe_es17.c +++ b/Libraries/PeriphDrivers/Source/SFE/sfe_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SFE/sfe_reva.c b/Libraries/PeriphDrivers/Source/SFE/sfe_reva.c index 83c757b44a1..367dc177e65 100644 --- a/Libraries/PeriphDrivers/Source/SFE/sfe_reva.c +++ b/Libraries/PeriphDrivers/Source/SFE/sfe_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SFE/sfe_reva.h b/Libraries/PeriphDrivers/Source/SFE/sfe_reva.h index 9027579d849..1567673c034 100644 --- a/Libraries/PeriphDrivers/Source/SFE/sfe_reva.h +++ b/Libraries/PeriphDrivers/Source/SFE/sfe_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SFE_SFE_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SFE/sfe_reva_regs.h b/Libraries/PeriphDrivers/Source/SFE/sfe_reva_regs.h index e0c55f789d2..9ce8b3eec09 100644 --- a/Libraries/PeriphDrivers/Source/SFE/sfe_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SFE/sfe_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SFE_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SIMO/simo_me14.c b/Libraries/PeriphDrivers/Source/SIMO/simo_me14.c index 07f01aa3741..e8675630927 100644 --- a/Libraries/PeriphDrivers/Source/SIMO/simo_me14.c +++ b/Libraries/PeriphDrivers/Source/SIMO/simo_me14.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SIMO/simo_me17.c b/Libraries/PeriphDrivers/Source/SIMO/simo_me17.c index 2973cff35dd..1524e406264 100644 --- a/Libraries/PeriphDrivers/Source/SIMO/simo_me17.c +++ b/Libraries/PeriphDrivers/Source/SIMO/simo_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SIMO/simo_reva.c b/Libraries/PeriphDrivers/Source/SIMO/simo_reva.c index 123f3b83d43..00754e6e501 100644 --- a/Libraries/PeriphDrivers/Source/SIMO/simo_reva.c +++ b/Libraries/PeriphDrivers/Source/SIMO/simo_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Libraries/PeriphDrivers/Source/SIMO/simo_reva.h b/Libraries/PeriphDrivers/Source/SIMO/simo_reva.h index 17396543dea..02cc876d375 100644 --- a/Libraries/PeriphDrivers/Source/SIMO/simo_reva.h +++ b/Libraries/PeriphDrivers/Source/SIMO/simo_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SIMO_SIMO_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SIMO/simo_reva_regs.h b/Libraries/PeriphDrivers/Source/SIMO/simo_reva_regs.h index 512b17721f2..2635e41601d 100644 --- a/Libraries/PeriphDrivers/Source/SIMO/simo_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SIMO/simo_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SIMO_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.c b/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.c index 25af1d87937..93e5cc68508 100644 --- a/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.c +++ b/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.h b/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.h index 77339e35849..2e63ac496c5 100644 --- a/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.h +++ b/Libraries/PeriphDrivers/Source/SKBD/skbd_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SKBD_SKBD_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SKBD/skbd_reva_regs.h b/Libraries/PeriphDrivers/Source/SKBD/skbd_reva_regs.h index 11a0c7263db..0381f2ba011 100644 --- a/Libraries/PeriphDrivers/Source/SKBD/skbd_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SKBD/skbd_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SKBD_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SMON/smon_es17.c b/Libraries/PeriphDrivers/Source/SMON/smon_es17.c index 9407990f9fa..df34b61f726 100644 --- a/Libraries/PeriphDrivers/Source/SMON/smon_es17.c +++ b/Libraries/PeriphDrivers/Source/SMON/smon_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "smon_reva.h" diff --git a/Libraries/PeriphDrivers/Source/SMON/smon_reva.c b/Libraries/PeriphDrivers/Source/SMON/smon_reva.c index 54db67ef18b..117f06fa8d6 100644 --- a/Libraries/PeriphDrivers/Source/SMON/smon_reva.c +++ b/Libraries/PeriphDrivers/Source/SMON/smon_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SMON/smon_reva.h b/Libraries/PeriphDrivers/Source/SMON/smon_reva.h index 0c558e65d65..e458872b3d7 100644 --- a/Libraries/PeriphDrivers/Source/SMON/smon_reva.h +++ b/Libraries/PeriphDrivers/Source/SMON/smon_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SMON_SMON_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SMON/smon_reva_regs.h b/Libraries/PeriphDrivers/Source/SMON/smon_reva_regs.h index b17e6af43ed..7cef8dfcb6c 100644 --- a/Libraries/PeriphDrivers/Source/SMON/smon_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SMON/smon_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SMON_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_ai87.c b/Libraries/PeriphDrivers/Source/SPI/spi_ai87.c index 70626b81949..09b6dfa3e9b 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_ai87.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_ai87_v2.c b/Libraries/PeriphDrivers/Source/SPI/spi_ai87_v2.c index 857f1363b22..824bedce65b 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_ai87_v2.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_ai87_v2.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_es17.c b/Libraries/PeriphDrivers/Source/SPI/spi_es17.c index fae1743c2fd..65e1aff7836 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_es17.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me10.c b/Libraries/PeriphDrivers/Source/SPI/spi_me10.c index a0843e10ee2..17acecef06f 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me10.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me10.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me11.c b/Libraries/PeriphDrivers/Source/SPI/spi_me11.c index 20b6043590b..7eebcda3259 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me11.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me12.c b/Libraries/PeriphDrivers/Source/SPI/spi_me12.c index ddf2b5d2ea5..de643e75b67 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me12.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me14.c b/Libraries/PeriphDrivers/Source/SPI/spi_me14.c index 5bf3ae2023a..8a7a84d8c21 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me14.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me15.c b/Libraries/PeriphDrivers/Source/SPI/spi_me15.c index 9de0b08cf71..2ac65564fcb 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me15.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me16.c b/Libraries/PeriphDrivers/Source/SPI/spi_me16.c index f6e3964720c..aa04b6d7b4f 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me16.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me17.c b/Libraries/PeriphDrivers/Source/SPI/spi_me17.c index 2d806febd06..096e519bcc5 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me17.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me18.c b/Libraries/PeriphDrivers/Source/SPI/spi_me18.c index 3f3e6c9cf1c..e0feacc5715 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me18.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include @@ -427,13 +445,13 @@ int MXC_SPI_MasterTransactionDMA(mxc_spi_req_t *req) reqselRx = MXC_DMA_REQUEST_SPI1RX; break; case 2: - reqselRx = MXC_DMA_REQUEST_SPI2RX; + reqselTx = MXC_DMA_REQUEST_SPI2RX; break; case 3: - reqselRx = MXC_DMA_REQUEST_SPI3RX; + reqselTx = MXC_DMA_REQUEST_SPI3RX; break; case 4: - reqselRx = MXC_DMA_REQUEST_SPI4RX; + reqselTx = MXC_DMA_REQUEST_SPI4RX; break; default: return E_BAD_PARAM; diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_me21.c b/Libraries/PeriphDrivers/Source/SPI/spi_me21.c index fe7f8dbd1df..e384429e3a8 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_me21.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_reva1.c b/Libraries/PeriphDrivers/Source/SPI/spi_reva1.c index 99aa1737148..268b7e15099 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_reva1.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_reva1.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_reva1.h b/Libraries/PeriphDrivers/Source/SPI/spi_reva1.h index 854a43b0655..1ac492549c1 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_reva1.h +++ b/Libraries/PeriphDrivers/Source/SPI/spi_reva1.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SPI_SPI_REVA1_H_ diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_reva2.c b/Libraries/PeriphDrivers/Source/SPI/spi_reva2.c index 69421b11333..261f36f1d51 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_reva2.c +++ b/Libraries/PeriphDrivers/Source/SPI/spi_reva2.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_reva2.h b/Libraries/PeriphDrivers/Source/SPI/spi_reva2.h index 693a622e3fc..3a6660d71ee 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_reva2.h +++ b/Libraries/PeriphDrivers/Source/SPI/spi_reva2.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SPI_SPI_REVA2_H_ diff --git a/Libraries/PeriphDrivers/Source/SPI/spi_reva_regs.h b/Libraries/PeriphDrivers/Source/SPI/spi_reva_regs.h index 0601b8c0a98..5ce4c196bc9 100644 --- a/Libraries/PeriphDrivers/Source/SPI/spi_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SPI/spi_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SPI_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me10.c b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me10.c index 25aaf511b10..1ff672c82dc 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me10.c +++ b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me11.c b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me11.c index 75d1fcd3f68..1330ea854f3 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me11.c +++ b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_me11.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.c b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.c index 2de3670444e..09b4fb8831e 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.c +++ b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.h b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.h index 8e57634b0a7..4716bd7fde8 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.h +++ b/Libraries/PeriphDrivers/Source/SPIMSS/i2s_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SPIMSS_I2S_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me10.c b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me10.c index df1d77209f6..9a6047f5a0d 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me10.c +++ b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me11.c b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me11.c index cf7adfe1cf2..8d0be75046e 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me11.c +++ b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.c b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.c index b58537356e6..ccb421a3cee 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.c +++ b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.c @@ -5,7 +5,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,6 +37,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.h b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.h index a2d1cfd83c8..e91078a757c 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.h +++ b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SPIMSS_SPIMSS_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva_regs.h b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva_regs.h index a002e4efde2..4c54d6cbfe4 100644 --- a/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SPIMSS/spimss_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SPIMSS_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixf_me10.c b/Libraries/PeriphDrivers/Source/SPIXF/spixf_me10.c index 3f79e62e2df..64abb203332 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixf_me10.c +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixf_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixf_me14.c b/Libraries/PeriphDrivers/Source/SPIXF/spixf_me14.c index a1e4499f955..68122722dcd 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixf_me14.c +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixf_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixf_me18.c b/Libraries/PeriphDrivers/Source/SPIXF/spixf_me18.c index f39402f2915..665973fa2eb 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixf_me18.c +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixf_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.c b/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.c index a999703daad..51a585b59ed 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.c +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.h b/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.h index 646d9fe37b3..d607659d9c8 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.h +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixf_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SPIXF_SPIXF_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixfc_fifo_reva_regs.h b/Libraries/PeriphDrivers/Source/SPIXF/spixfc_fifo_reva_regs.h index 5fd23d066ca..7156f16aa87 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixfc_fifo_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixfc_fifo_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SPIXFC_FIFO_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixfc_reva_regs.h b/Libraries/PeriphDrivers/Source/SPIXF/spixfc_reva_regs.h index 2422257f2d3..1e44dd2b789 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixfc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixfc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SPIXFC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIXF/spixfm_reva_regs.h b/Libraries/PeriphDrivers/Source/SPIXF/spixfm_reva_regs.h index cd6718f0d89..c702cccd68f 100644 --- a/Libraries/PeriphDrivers/Source/SPIXF/spixfm_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SPIXF/spixfm_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SPIXFM_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIXR/spixr_me10.c b/Libraries/PeriphDrivers/Source/SPIXR/spixr_me10.c index d5d85f419da..c9df7040118 100644 --- a/Libraries/PeriphDrivers/Source/SPIXR/spixr_me10.c +++ b/Libraries/PeriphDrivers/Source/SPIXR/spixr_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SPIXR/spixr_me14.c b/Libraries/PeriphDrivers/Source/SPIXR/spixr_me14.c index cd466dd3904..7a931447d24 100644 --- a/Libraries/PeriphDrivers/Source/SPIXR/spixr_me14.c +++ b/Libraries/PeriphDrivers/Source/SPIXR/spixr_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/SPIXR/spixr_me18.c b/Libraries/PeriphDrivers/Source/SPIXR/spixr_me18.c index d9cd8a6271c..43e62db3109 100644 --- a/Libraries/PeriphDrivers/Source/SPIXR/spixr_me18.c +++ b/Libraries/PeriphDrivers/Source/SPIXR/spixr_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.c b/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.c index 6e68af3d262..7c0fe4f07ea 100644 --- a/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.c +++ b/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /****** Includes *******/ diff --git a/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.h b/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.h index 48e85cbef5a..3f9a0727cfe 100644 --- a/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.h +++ b/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SPIXR_SPIXR_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva_regs.h b/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva_regs.h index fbdea93d870..fc986debb78 100644 --- a/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SPIXR/spixr_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SPIXR_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SRCC/srcc_me14.c b/Libraries/PeriphDrivers/Source/SRCC/srcc_me14.c index e454ac56b3c..9643a9b0923 100644 --- a/Libraries/PeriphDrivers/Source/SRCC/srcc_me14.c +++ b/Libraries/PeriphDrivers/Source/SRCC/srcc_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "srcc.h" diff --git a/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.c b/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.c index f4a92b2ece1..0ea28c1b63d 100644 --- a/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.c +++ b/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "srcc_reva.h" diff --git a/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.h b/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.h index cf934be180a..ce0306f9286 100644 --- a/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.h +++ b/Libraries/PeriphDrivers/Source/SRCC/srcc_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_SRCC_SRCC_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/SRCC/srcc_reva_regs.h b/Libraries/PeriphDrivers/Source/SRCC/srcc_reva_regs.h index 4f0bad4d0bd..f5b1f9ade55 100644 --- a/Libraries/PeriphDrivers/Source/SRCC/srcc_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/SRCC/srcc_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _SRCC_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/SYS/mxc_assert.c b/Libraries/PeriphDrivers/Source/SYS/mxc_assert.c index f356cc6813f..d562b2c86b5 100644 --- a/Libraries/PeriphDrivers/Source/SYS/mxc_assert.c +++ b/Libraries/PeriphDrivers/Source/SYS/mxc_assert.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SYS/mxc_delay.c b/Libraries/PeriphDrivers/Source/SYS/mxc_delay.c index df60f7e5fef..bc490612fe4 100644 --- a/Libraries/PeriphDrivers/Source/SYS/mxc_delay.c +++ b/Libraries/PeriphDrivers/Source/SYS/mxc_delay.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SYS/mxc_lock.c b/Libraries/PeriphDrivers/Source/SYS/mxc_lock.c index 459df723f14..e048ec41df1 100644 --- a/Libraries/PeriphDrivers/Source/SYS/mxc_lock.c +++ b/Libraries/PeriphDrivers/Source/SYS/mxc_lock.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SYS/nvic_table.c b/Libraries/PeriphDrivers/Source/SYS/nvic_table.c index fdb5eeb7071..1ce258f416f 100644 --- a/Libraries/PeriphDrivers/Source/SYS/nvic_table.c +++ b/Libraries/PeriphDrivers/Source/SYS/nvic_table.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef __riscv diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_ai85.c b/Libraries/PeriphDrivers/Source/SYS/pins_ai85.c index 30bc07fb0b6..a2cb97fbcc2 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_ai85.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_ai85.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_ai87.c b/Libraries/PeriphDrivers/Source/SYS/pins_ai87.c index fe7386e37b7..920c9ac583c 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_ai87.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_ai87.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_es17.c b/Libraries/PeriphDrivers/Source/SYS/pins_es17.c index 5f79e9712ef..7fde8bcee48 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_es17.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_es17.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me10.c b/Libraries/PeriphDrivers/Source/SYS/pins_me10.c index efbe33f1482..4219fdfd74d 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me10.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me11.c b/Libraries/PeriphDrivers/Source/SYS/pins_me11.c index f763287cd17..118ef81182d 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me11.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me11.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me12.c b/Libraries/PeriphDrivers/Source/SYS/pins_me12.c index aaa74d76c9c..de2cf89465a 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me12.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me12.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me14.c b/Libraries/PeriphDrivers/Source/SYS/pins_me14.c index b5c25081771..a13e4a2ac7c 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me14.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me14.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me15.c b/Libraries/PeriphDrivers/Source/SYS/pins_me15.c index 51ec3596b53..db9c61f1460 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me15.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me15.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me16.c b/Libraries/PeriphDrivers/Source/SYS/pins_me16.c index b63d8881b24..6c26b69a2c3 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me16.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me16.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me17.c b/Libraries/PeriphDrivers/Source/SYS/pins_me17.c index 9bac8893c32..ffcee07c894 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me17.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me17.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me18.c b/Libraries/PeriphDrivers/Source/SYS/pins_me18.c index d439aa2da0a..1cc625bf735 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me18.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me18.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me20.c b/Libraries/PeriphDrivers/Source/SYS/pins_me20.c index dec5e155bdc..dd91eaaaa90 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me20.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me20.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/pins_me21.c b/Libraries/PeriphDrivers/Source/SYS/pins_me21.c index 0f20b52a5f5..7c2a1faa5a5 100644 --- a/Libraries/PeriphDrivers/Source/SYS/pins_me21.c +++ b/Libraries/PeriphDrivers/Source/SYS/pins_me21.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "gpio.h" diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_ai85.c b/Libraries/PeriphDrivers/Source/SYS/sys_ai85.c index 0933b278dff..82dfa3c4d73 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_ai85.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_ai87.c b/Libraries/PeriphDrivers/Source/SYS/sys_ai87.c index 3fac5df776d..351319559a9 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_ai87.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_es17.c b/Libraries/PeriphDrivers/Source/SYS/sys_es17.c index 578af9d4e30..3ea9273de29 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_es17.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me10.c b/Libraries/PeriphDrivers/Source/SYS/sys_me10.c index 5111b507af1..995b1f397e4 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me10.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me11.c b/Libraries/PeriphDrivers/Source/SYS/sys_me11.c index 5ab1b538736..b6972c8d781 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me11.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me12.c b/Libraries/PeriphDrivers/Source/SYS/sys_me12.c index 8c79ed8c2e0..d6bc7b96790 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me12.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me14.c b/Libraries/PeriphDrivers/Source/SYS/sys_me14.c index 17b2fd89f33..ab813cebe6f 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me14.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me15.c b/Libraries/PeriphDrivers/Source/SYS/sys_me15.c index b7f7e98fb73..0ba90ad2a7a 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me15.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me16.c b/Libraries/PeriphDrivers/Source/SYS/sys_me16.c index 95b318ef49f..05d57ba0972 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me16.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me17.c b/Libraries/PeriphDrivers/Source/SYS/sys_me17.c index d537824cd8c..877ffb1e13d 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me17.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me18.c b/Libraries/PeriphDrivers/Source/SYS/sys_me18.c index ff05baa16f1..5f1c970ad01 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me18.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/SYS/sys_me21.c b/Libraries/PeriphDrivers/Source/SYS/sys_me21.c index 3485faa83c5..64dc771a943 100644 --- a/Libraries/PeriphDrivers/Source/SYS/sys_me21.c +++ b/Libraries/PeriphDrivers/Source/SYS/sys_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /** diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_ai85.c b/Libraries/PeriphDrivers/Source/TMR/tmr_ai85.c index ce8274b951f..7884a299d31 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_ai85.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_ai87.c b/Libraries/PeriphDrivers/Source/TMR/tmr_ai87.c index 4cce165f749..814fe7c8783 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_ai87.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_common.c b/Libraries/PeriphDrivers/Source/TMR/tmr_common.c index e886118568d..0ed0a95bdc5 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_common.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_common.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_common.h b/Libraries/PeriphDrivers/Source/TMR/tmr_common.h index 517e1e22134..88b5d179a34 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_common.h +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_common.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_TMR_TMR_COMMON_H_ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_es17.c b/Libraries/PeriphDrivers/Source/TMR/tmr_es17.c index c7265b0113c..44566b784d1 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_es17.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me10.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me10.c index 4e3322cc526..d7a00f46a4e 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me10.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me11.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me11.c index e0d27e44777..927d512753a 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me11.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me12.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me12.c index 2af26df5536..d6ca32ef9e9 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me12.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me14.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me14.c index 6869c106f75..a0c5ceae8d9 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me14.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me15.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me15.c index 736eb7fd955..64bdfb1361c 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me15.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me16.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me16.c index 4dbec49d381..06cd07f04a7 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me16.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me17.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me17.c index e1d8fc54c00..2c3495de7d4 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me17.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me18.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me18.c index 409fa61c923..4ef95063fa4 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me18.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_me21.c b/Libraries/PeriphDrivers/Source/TMR/tmr_me21.c index 11304edd81a..7c7bef28c95 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_me21.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "tmr.h" diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_reva.c b/Libraries/PeriphDrivers/Source/TMR/tmr_reva.c index b6bad99460c..16938998e6b 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_reva.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_reva.h b/Libraries/PeriphDrivers/Source/TMR/tmr_reva.h index 43fddd31076..674fd55ec00 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_reva.h +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_TMR_TMR_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_reva_regs.h b/Libraries/PeriphDrivers/Source/TMR/tmr_reva_regs.h index 7006c198825..48fc03fccf9 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TMR_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_revb.c b/Libraries/PeriphDrivers/Source/TMR/tmr_revb.c index cd123d5b694..ed977ad0e9d 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_revb.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_revb.h b/Libraries/PeriphDrivers/Source/TMR/tmr_revb.h index fcc5a7263d6..8835fcc90b8 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_revb.h +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_TMR_TMR_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_revb_regs.h b/Libraries/PeriphDrivers/Source/TMR/tmr_revb_regs.h index 4a10849c33d..e422d97c874 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_revb_regs.h +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_revb_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TMR_REVB_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_revc.c b/Libraries/PeriphDrivers/Source/TMR/tmr_revc.c index 56472d1e578..397059d00da 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_revc.c +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_revc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TMR/tmr_revc.h b/Libraries/PeriphDrivers/Source/TMR/tmr_revc.h index b4013e33c9d..b4d3ac3384c 100644 --- a/Libraries/PeriphDrivers/Source/TMR/tmr_revc.h +++ b/Libraries/PeriphDrivers/Source/TMR/tmr_revc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_TMR_TMR_REVC_H_ diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_me10.c b/Libraries/PeriphDrivers/Source/TPU/tpu_me10.c index e6314386d45..0859c96c7f7 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_me10.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_me14.c b/Libraries/PeriphDrivers/Source/TPU/tpu_me14.c index f6b9e86200e..a3ac54f4783 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_me14.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c index 3b5a46e0cf3..b60d70e1cec 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.h b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.h index caa2225822d..7137318da18 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.h +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_TPU_TPU_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva_regs.h b/Libraries/PeriphDrivers/Source/TPU/tpu_reva_regs.h index e51dba191bb..78b76bb7987 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TPU_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/TPU/trng_revc_regs.h b/Libraries/PeriphDrivers/Source/TPU/trng_revc_regs.h index dc106ee0008..6b753eba012 100644 --- a/Libraries/PeriphDrivers/Source/TPU/trng_revc_regs.h +++ b/Libraries/PeriphDrivers/Source/TPU/trng_revc_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TRNG_REVC_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_ai85.c b/Libraries/PeriphDrivers/Source/TRNG/trng_ai85.c index 4856a25c631..3af70866a44 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_ai85.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_ai85.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_ai87.c b/Libraries/PeriphDrivers/Source/TRNG/trng_ai87.c index e0a57893e90..babe766cfaa 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_ai87.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_ai87.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me10.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me10.c index 120180a5ad5..708dd893cbd 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me10.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me12.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me12.c index 8742479a646..d294e2da1f8 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me12.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me12.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me14.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me14.c index e5754fa55f9..3d10db7b0a9 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me14.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me14.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me15.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me15.c index a56907a4ef4..9c1e9d89d5b 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me15.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me16.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me16.c index 86a840612a3..62850c81914 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me16.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me17.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me17.c index 1e4de20f245..3740c78d60d 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me17.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me17.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me18.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me18.c index 8742479a646..d294e2da1f8 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me18.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me18.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me20.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me20.c index 4856a25c631..3af70866a44 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me20.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me20.c @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_me21.c b/Libraries/PeriphDrivers/Source/TRNG/trng_me21.c index 5581ec2278c..1bcb38f703d 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_me21.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "mxc_device.h" diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_reva.c b/Libraries/PeriphDrivers/Source/TRNG/trng_reva.c index 4c8cdf22a96..5a4d09d46ed 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_reva.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_reva.h b/Libraries/PeriphDrivers/Source/TRNG/trng_reva.h index 707418e8693..93ef60c0614 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_reva.h +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_TRNG_TRNG_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_reva_regs.h b/Libraries/PeriphDrivers/Source/TRNG/trng_reva_regs.h index a696b11f76f..e0f733068d4 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TRNG_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_revb.c b/Libraries/PeriphDrivers/Source/TRNG/trng_revb.c index 0ba09f35540..65c2a8f7724 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_revb.c +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include @@ -157,7 +175,7 @@ void MXC_TRNG_RevB_GenerateKey(mxc_trng_revb_regs_t *trng) trng->ctrl |= MXC_F_TRNG_REVB_CTRL_AESKG_USR; // Wait for key transfer to complete - while (trng->status & MXC_F_TRNG_REVB_STATUS_AESKGD) {}; + while (trng->status & MXC_F_TRNG_REVB_STATUS_AESKGD) {} } int MXC_TRNG_RevB_HealthTest(mxc_trng_revb_regs_t *trng) diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_revb.h b/Libraries/PeriphDrivers/Source/TRNG/trng_revb.h index 9ccad3eaffc..e86747b9b76 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_revb.h +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_TRNG_TRNG_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/TRNG/trng_revb_regs.h b/Libraries/PeriphDrivers/Source/TRNG/trng_revb_regs.h index 86d238b511b..d01088e08a8 100644 --- a/Libraries/PeriphDrivers/Source/TRNG/trng_revb_regs.h +++ b/Libraries/PeriphDrivers/Source/TRNG/trng_revb_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _TRNG_REVB_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_ai85.c b/Libraries/PeriphDrivers/Source/UART/uart_ai85.c index 574412c3815..c02d10eb95f 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_ai85.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_ai85.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_ai87.c b/Libraries/PeriphDrivers/Source/UART/uart_ai87.c index 44838b6762b..485f84df367 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_ai87.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_common.c b/Libraries/PeriphDrivers/Source/UART/uart_common.c index 692126bbebb..79aaa023bb0 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_common.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_common.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart_common.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_common.h b/Libraries/PeriphDrivers/Source/UART/uart_common.h index d1e95ec1493..634fbb001af 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_common.h +++ b/Libraries/PeriphDrivers/Source/UART/uart_common.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_UART_UART_COMMON_H_ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_es17.c b/Libraries/PeriphDrivers/Source/UART/uart_es17.c index 4ca3e13e171..1d20fe9f68e 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_es17.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me10.c b/Libraries/PeriphDrivers/Source/UART/uart_me10.c index 33bdd032881..26d454b9e9c 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me10.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me11.c b/Libraries/PeriphDrivers/Source/UART/uart_me11.c index e7db0c8f0d5..f3f62c0acf7 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me11.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me12.c b/Libraries/PeriphDrivers/Source/UART/uart_me12.c index 63cda742260..1dccd9a7e24 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me12.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me14.c b/Libraries/PeriphDrivers/Source/UART/uart_me14.c index 80183ca9333..9f607840a98 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me14.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me15.c b/Libraries/PeriphDrivers/Source/UART/uart_me15.c index 73e852bb060..700215a2ad6 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me15.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me16.c b/Libraries/PeriphDrivers/Source/UART/uart_me16.c index 26b375e0883..4f8e3fcd2bd 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me16.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifdef __CC_ARM // Keil #pragma diag_suppress 68 // integer conversion resulted in a change of sign diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me17.c b/Libraries/PeriphDrivers/Source/UART/uart_me17.c index e70b725bf84..12e36d2ebbd 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me17.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me18.c b/Libraries/PeriphDrivers/Source/UART/uart_me18.c index dad49bff447..d861f10e7c6 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me18.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me21.c b/Libraries/PeriphDrivers/Source/UART/uart_me21.c index 36379128359..2e78ee1b280 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me21.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include "uart.h" diff --git a/Libraries/PeriphDrivers/Source/UART/uart_reva.c b/Libraries/PeriphDrivers/Source/UART/uart_reva.c index 80716b8d136..e13eee51c60 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_reva.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/UART/uart_reva.h b/Libraries/PeriphDrivers/Source/UART/uart_reva.h index bba25f14aed..71e69969ac4 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_reva.h +++ b/Libraries/PeriphDrivers/Source/UART/uart_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_UART_UART_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_reva_regs.h b/Libraries/PeriphDrivers/Source/UART/uart_reva_regs.h index c210967610d..a8740eb6840 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/UART/uart_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _UART_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_revb.c b/Libraries/PeriphDrivers/Source/UART/uart_revb.c index 54331393878..fb9a90f6afd 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_revb.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/UART/uart_revb.h b/Libraries/PeriphDrivers/Source/UART/uart_revb.h index 0ec4280c9a0..e5f5c0a55c0 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_revb.h +++ b/Libraries/PeriphDrivers/Source/UART/uart_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_UART_UART_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_revb_regs.h b/Libraries/PeriphDrivers/Source/UART/uart_revb_regs.h index eab6759602a..68405f15a45 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_revb_regs.h +++ b/Libraries/PeriphDrivers/Source/UART/uart_revb_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _UART_REVB_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_revc.c b/Libraries/PeriphDrivers/Source/UART/uart_revc.c index ff41c9ae314..aaf97fbfd32 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_revc.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_revc.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #include diff --git a/Libraries/PeriphDrivers/Source/UART/uart_revc.h b/Libraries/PeriphDrivers/Source/UART/uart_revc.h index 1c15780e273..f3351362486 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_revc.h +++ b/Libraries/PeriphDrivers/Source/UART/uart_revc.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_UART_UART_REVC_H_ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_revc_regs.h b/Libraries/PeriphDrivers/Source/UART/uart_revc_regs.h index e23c3b23936..1ad4f94851a 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_revc_regs.h +++ b/Libraries/PeriphDrivers/Source/UART/uart_revc_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _UART_REVC_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_ai87.c b/Libraries/PeriphDrivers/Source/WDT/wdt_ai87.c index 777ef7e618c..7688630bbf5 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_ai87.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_common.c b/Libraries/PeriphDrivers/Source/WDT/wdt_common.c index 982fbbd12cc..66120ce73af 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_common.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_common.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_es17.c b/Libraries/PeriphDrivers/Source/WDT/wdt_es17.c index 23e1b984bd6..abadde35d5c 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_es17.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_es17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me10.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me10.c index 91ae30f8f72..ee314ef5c92 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me10.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me10.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me11.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me11.c index 2d98ef2af9a..05d915a563a 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me11.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me11.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me12.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me12.c index 779c99734ab..26330516925 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me12.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me12.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me14.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me14.c index 64c8a27248c..de718d83209 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me14.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me15.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me15.c index d26b330c2ca..2780e30d0fe 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me15.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me15.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me16.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me16.c index 57d0a3f0e5f..1de08a226b7 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me16.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me16.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me17.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me17.c index d26b330c2ca..2780e30d0fe 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me17.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me18.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me18.c index d26b330c2ca..2780e30d0fe 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me18.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_me21.c b/Libraries/PeriphDrivers/Source/WDT/wdt_me21.c index d26b330c2ca..2780e30d0fe 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_me21.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_me21.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_reva.c b/Libraries/PeriphDrivers/Source/WDT/wdt_reva.c index 40893d084f9..646f96d3315 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_reva.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_reva.h b/Libraries/PeriphDrivers/Source/WDT/wdt_reva.h index ef68cb1a812..7760d0c58a8 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_reva.h +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_WDT_WDT_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_reva_regs.h b/Libraries/PeriphDrivers/Source/WDT/wdt_reva_regs.h index b80806513b5..60cf6a7814f 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _WDT_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_revb.c b/Libraries/PeriphDrivers/Source/WDT/wdt_revb.c index b93835071b5..630dc255dc5 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_revb.c +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_revb.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_revb.h b/Libraries/PeriphDrivers/Source/WDT/wdt_revb.h index b84aa194c6f..7e950b7eb20 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_revb.h +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_revb.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_WDT_WDT_REVB_H_ diff --git a/Libraries/PeriphDrivers/Source/WDT/wdt_revb_regs.h b/Libraries/PeriphDrivers/Source/WDT/wdt_revb_regs.h index ee9e3909612..9f42d4c9710 100644 --- a/Libraries/PeriphDrivers/Source/WDT/wdt_revb_regs.h +++ b/Libraries/PeriphDrivers/Source/WDT/wdt_revb_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _WDT_REVB_REGS_H_ diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_ai85.c b/Libraries/PeriphDrivers/Source/WUT/wut_ai85.c index 75b21bac85c..0bbe1a46f6e 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_ai85.c +++ b/Libraries/PeriphDrivers/Source/WUT/wut_ai85.c @@ -1,5 +1,7 @@ -/* ***************************************************************************** - * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - **************************************************************************** */ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ /* **** Includes **** */ #include diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_ai87.c b/Libraries/PeriphDrivers/Source/WUT/wut_ai87.c index 059198b564f..80d83314eee 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_ai87.c +++ b/Libraries/PeriphDrivers/Source/WUT/wut_ai87.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_me14.c b/Libraries/PeriphDrivers/Source/WUT/wut_me14.c index 3e6f8e8f376..8d5e415b272 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_me14.c +++ b/Libraries/PeriphDrivers/Source/WUT/wut_me14.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_me17.c b/Libraries/PeriphDrivers/Source/WUT/wut_me17.c index fe2541bf90c..f41c8d66cf9 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_me17.c +++ b/Libraries/PeriphDrivers/Source/WUT/wut_me17.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_me18.c b/Libraries/PeriphDrivers/Source/WUT/wut_me18.c index 4d40ffa83a1..3f598ccaf3d 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_me18.c +++ b/Libraries/PeriphDrivers/Source/WUT/wut_me18.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_reva.c b/Libraries/PeriphDrivers/Source/WUT/wut_reva.c index 1c57f37ec68..afd93d36a2f 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_reva.c +++ b/Libraries/PeriphDrivers/Source/WUT/wut_reva.c @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ /* **** Includes **** */ diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_reva.h b/Libraries/PeriphDrivers/Source/WUT/wut_reva.h index 88a5467573b..d4c98e313fd 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_reva.h +++ b/Libraries/PeriphDrivers/Source/WUT/wut_reva.h @@ -1,5 +1,7 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +31,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef LIBRARIES_PERIPHDRIVERS_SOURCE_WUT_WUT_REVA_H_ diff --git a/Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h b/Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h index 186327c2006..eab787c619e 100644 --- a/Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h +++ b/Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h @@ -4,7 +4,9 @@ */ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,6 +36,22 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ******************************************************************************/ #ifndef _WUT_REVA_REGS_H_ diff --git a/Libraries/PeriphDrivers/libPeriphDriver.mk b/Libraries/PeriphDrivers/libPeriphDriver.mk index 0ab53eab9b0..3f003e78a29 100644 --- a/Libraries/PeriphDrivers/libPeriphDriver.mk +++ b/Libraries/PeriphDrivers/libPeriphDriver.mk @@ -32,6 +32,22 @@ # ownership rights. # ############################################################################### + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file PROJECT_NAME=libPeriphDriver diff --git a/Libraries/PeriphDrivers/max32520_files.mk b/Libraries/PeriphDrivers/max32520_files.mk index 3f228ec1453..798b225fb48 100644 --- a/Libraries/PeriphDrivers/max32520_files.mk +++ b/Libraries/PeriphDrivers/max32520_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32570_files.mk b/Libraries/PeriphDrivers/max32570_files.mk index 7100e11e117..2f88066d298 100644 --- a/Libraries/PeriphDrivers/max32570_files.mk +++ b/Libraries/PeriphDrivers/max32570_files.mk @@ -1,6 +1,7 @@ - -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -30,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2018-08-31 14:08:14 -0500 (Fri, 31 Aug 2018) $ - # $Revision: 37586 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32572_files.mk b/Libraries/PeriphDrivers/max32572_files.mk index ab7ce1b5755..7d0f9b7d53c 100644 --- a/Libraries/PeriphDrivers/max32572_files.mk +++ b/Libraries/PeriphDrivers/max32572_files.mk @@ -1,6 +1,7 @@ - -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -30,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2018-08-31 14:08:14 -0500 (Fri, 31 Aug 2018) $ - # $Revision: 37586 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32650_files.mk b/Libraries/PeriphDrivers/max32650_files.mk index 45d71348461..b31f42c4073 100644 --- a/Libraries/PeriphDrivers/max32650_files.mk +++ b/Libraries/PeriphDrivers/max32650_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32655_files.mk b/Libraries/PeriphDrivers/max32655_files.mk index 7d4162537ed..3ffd45e2ca3 100644 --- a/Libraries/PeriphDrivers/max32655_files.mk +++ b/Libraries/PeriphDrivers/max32655_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32660_files.mk b/Libraries/PeriphDrivers/max32660_files.mk index 48b77ce803a..4a720245bd7 100644 --- a/Libraries/PeriphDrivers/max32660_files.mk +++ b/Libraries/PeriphDrivers/max32660_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32662_files.mk b/Libraries/PeriphDrivers/max32662_files.mk index b3bea11cad1..61c16ceee21 100644 --- a/Libraries/PeriphDrivers/max32662_files.mk +++ b/Libraries/PeriphDrivers/max32662_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32665_files.mk b/Libraries/PeriphDrivers/max32665_files.mk index 17de2cdccf0..1abd1273326 100644 --- a/Libraries/PeriphDrivers/max32665_files.mk +++ b/Libraries/PeriphDrivers/max32665_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32670_files.mk b/Libraries/PeriphDrivers/max32670_files.mk index ec5cf3e3501..545403b804e 100644 --- a/Libraries/PeriphDrivers/max32670_files.mk +++ b/Libraries/PeriphDrivers/max32670_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32672_files.mk b/Libraries/PeriphDrivers/max32672_files.mk index 472c3f823b1..3e672ed6f50 100644 --- a/Libraries/PeriphDrivers/max32672_files.mk +++ b/Libraries/PeriphDrivers/max32672_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32675_files.mk b/Libraries/PeriphDrivers/max32675_files.mk index d36303034e8..fa90b865a11 100644 --- a/Libraries/PeriphDrivers/max32675_files.mk +++ b/Libraries/PeriphDrivers/max32675_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32680_files.mk b/Libraries/PeriphDrivers/max32680_files.mk index c545532b848..db0cc956bab 100644 --- a/Libraries/PeriphDrivers/max32680_files.mk +++ b/Libraries/PeriphDrivers/max32680_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max32690_files.mk b/Libraries/PeriphDrivers/max32690_files.mk index f6e83319882..6db51b9f252 100644 --- a/Libraries/PeriphDrivers/max32690_files.mk +++ b/Libraries/PeriphDrivers/max32690_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max78000_files.mk b/Libraries/PeriphDrivers/max78000_files.mk index 1d757355f0c..6b24fa293e8 100644 --- a/Libraries/PeriphDrivers/max78000_files.mk +++ b/Libraries/PeriphDrivers/max78000_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/max78002_files.mk b/Libraries/PeriphDrivers/max78002_files.mk index 0faf01cac44..441662d102a 100644 --- a/Libraries/PeriphDrivers/max78002_files.mk +++ b/Libraries/PeriphDrivers/max78002_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This is the name of the build output file diff --git a/Libraries/PeriphDrivers/periphdriver.mk b/Libraries/PeriphDrivers/periphdriver.mk index efdb3ab48c6..5a2c51bb510 100644 --- a/Libraries/PeriphDrivers/periphdriver.mk +++ b/Libraries/PeriphDrivers/periphdriver.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/SDHC/Include/sdhc_lib.h b/Libraries/SDHC/Include/sdhc_lib.h index b37bbd5d076..192a75b6799 100644 --- a/Libraries/SDHC/Include/sdhc_lib.h +++ b/Libraries/SDHC/Include/sdhc_lib.h @@ -4,8 +4,10 @@ * Secure Digital High Capacity (SDHC) peripheral module. */ -/* ***************************************************************************** - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2017-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,10 +37,23 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - * $Date: 2017-03-01 09:46:57 -0600 (Wed, 01 Mar 2017) $ - * $Revision: 26777 $ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * - **************************************************************************** */ + ******************************************************************************/ #ifndef LIBRARIES_SDHC_INCLUDE_SDHC_LIB_H_ #define LIBRARIES_SDHC_INCLUDE_SDHC_LIB_H_ diff --git a/Libraries/SDHC/Include/sdhc_resp_regs.h b/Libraries/SDHC/Include/sdhc_resp_regs.h index 55a80f97d75..5a174dadbe9 100644 --- a/Libraries/SDHC/Include/sdhc_resp_regs.h +++ b/Libraries/SDHC/Include/sdhc_resp_regs.h @@ -3,8 +3,10 @@ * @brief Registers, Bit Masks and Bit Positions for the response registers from the card. */ -/* **************************************************************************** - * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2016-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,10 +36,23 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - * $Date: 2017-03-31 16:02:07 +0000 (Fri, 31 Mar 2017) $ - * $Revision: 27335 $ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * - *************************************************************************** */ + ******************************************************************************/ #ifndef LIBRARIES_SDHC_INCLUDE_SDHC_RESP_REGS_H_ #define LIBRARIES_SDHC_INCLUDE_SDHC_RESP_REGS_H_ diff --git a/Libraries/SDHC/Makefile b/Libraries/SDHC/Makefile index ec3e6812d82..e9efdbde367 100644 --- a/Libraries/SDHC/Makefile +++ b/Libraries/SDHC/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2017-01-17 11:51:57 -0600 (Tue, 17 Jan 2017) $ - # $Revision: 25948 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file override PROJECT=sdhc diff --git a/Libraries/SDHC/Source/sdhc_lib.c b/Libraries/SDHC/Source/sdhc_lib.c index d1791de2dbd..e1340b432be 100644 --- a/Libraries/SDHC/Source/sdhc_lib.c +++ b/Libraries/SDHC/Source/sdhc_lib.c @@ -4,8 +4,10 @@ * Secure Digital High Capacity (SDHC) peripheral module. */ -/* ***************************************************************************** - * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. +/****************************************************************************** + * + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,10 +37,23 @@ * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. * - * $Date: 2017-03-01 09:46:57 -0600 (Wed, 01 Mar 2017) $ - * $Revision: 26777 $ + ****************************************************************************** + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * - **************************************************************************** */ + ******************************************************************************/ /* **** Includes **** */ #include diff --git a/Libraries/SDHC/ff13/Makefile b/Libraries/SDHC/ff13/Makefile index 8596b2bfad4..02e1c530bda 100644 --- a/Libraries/SDHC/ff13/Makefile +++ b/Libraries/SDHC/ff13/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2017-05-25 16:18:58 -0500 (Thu, 25 May 2017) $ - # $Revision: 28232 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file override PROJECT=FAT32 diff --git a/Libraries/SDHC/ff13/fat32.mk b/Libraries/SDHC/ff13/fat32.mk index 7e28e2befa7..dd2d625f682 100644 --- a/Libraries/SDHC/ff13/fat32.mk +++ b/Libraries/SDHC/ff13/fat32.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2016-05-26 16:10:11 -0500 (Thu, 26 May 2016) $ - # $Revision: 23077 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/SDHC/ff14/Makefile b/Libraries/SDHC/ff14/Makefile index d4daaa78ae9..b04809e5661 100644 --- a/Libraries/SDHC/ff14/Makefile +++ b/Libraries/SDHC/ff14/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2017-05-25 16:18:58 -0500 (Thu, 25 May 2017) $ - # $Revision: 28232 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file override PROJECT=FAT32 diff --git a/Libraries/SDHC/ff14/fat32.mk b/Libraries/SDHC/ff14/fat32.mk index 5d0d9b7be5f..ec23cbbb2c9 100644 --- a/Libraries/SDHC/ff14/fat32.mk +++ b/Libraries/SDHC/ff14/fat32.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2016-05-26 16:10:11 -0500 (Thu, 26 May 2016) $ - # $Revision: 23077 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/SDHC/ff15/Makefile b/Libraries/SDHC/ff15/Makefile index e136a5d6969..e5a8b7f6571 100644 --- a/Libraries/SDHC/ff15/Makefile +++ b/Libraries/SDHC/ff15/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2017-05-25 16:18:58 -0500 (Thu, 25 May 2017) $ - # $Revision: 28232 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file override PROJECT=FAT32 diff --git a/Libraries/SDHC/ff15/fat32.mk b/Libraries/SDHC/ff15/fat32.mk index 7b13d31ccf2..3a5201303e5 100644 --- a/Libraries/SDHC/ff15/fat32.mk +++ b/Libraries/SDHC/ff15/fat32.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2016-05-26 16:10:11 -0500 (Thu, 26 May 2016) $ - # $Revision: 23077 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/SDHC/sdhc.mk b/Libraries/SDHC/sdhc.mk index 497abafba7b..a34ea2f451d 100644 --- a/Libraries/SDHC/sdhc.mk +++ b/Libraries/SDHC/sdhc.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ################################################################################ # This file can be included in a project makefile to build the library for the diff --git a/Libraries/libs.mk b/Libraries/libs.mk index 82643879e8d..85e0d919fa2 100644 --- a/Libraries/libs.mk +++ b/Libraries/libs.mk @@ -1,3 +1,20 @@ +############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # This Makefile is used to manage the inclusion of the various # libraries that are available in the MaximSDK. 'include'-ing # libs.mk offers 'toggle switch' variables that can be used to diff --git a/Libraries/littlefs/Documentation/html/flash_8h_source.html b/Libraries/littlefs/Documentation/html/flash_8h_source.html index 4355a898525..f08039b05ce 100644 --- a/Libraries/littlefs/Documentation/html/flash_8h_source.html +++ b/Libraries/littlefs/Documentation/html/flash_8h_source.html @@ -85,38 +85,6 @@
        flash.h
        -Go to the documentation of this file.
        1 /*******************************************************************************
        -
        2 * Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved.
        -
        3 *
        -
        4 * Permission is hereby granted, free of charge, to any person obtaining a
        -
        5 * copy of this software and associated documentation files (the "Software"),
        -
        6 * to deal in the Software without restriction, including without limitation
        -
        7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -
        8 * and/or sell copies of the Software, and to permit persons to whom the
        -
        9 * Software is furnished to do so, subject to the following conditions:
        -
        10 *
        -
        11 * The above copyright notice and this permission notice shall be included
        -
        12 * in all copies or substantial portions of the Software.
        -
        13 *
        -
        14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
        -
        15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        -
        16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        -
        17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
        -
        18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
        -
        19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
        -
        20 * OTHER DEALINGS IN THE SOFTWARE.
        -
        21 *
        -
        22 * Except as contained in this notice, the name of Maxim Integrated
        -
        23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
        -
        24 * Products, Inc. Branding Policy.
        -
        25 *
        -
        26 * The mere transfer of this software does not imply any licenses
        -
        27 * of trade secrets, proprietary technology, copyrights, patents,
        -
        28 * trademarks, maskwork rights, or any other form of intellectual
        -
        29 * property whatsoever. Maxim Integrated Products, Inc. retains all
        -
        30 * ownership rights.
        -
        31 *
        -
        32 ******************************************************************************/
        33 
        40 #ifndef FLASH_H_
        41 #define FLASH_H_
        diff --git a/Libraries/littlefs/littlefs.mk b/Libraries/littlefs/littlefs.mk index 7e2f14f3366..dd8bc1a1c22 100644 --- a/Libraries/littlefs/littlefs.mk +++ b/Libraries/littlefs/littlefs.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date$ - # $Revision$ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## ifeq "$(LFS_DIR)" "" # If LFS_DIR is not specified, this Makefile will locate itself. diff --git a/Libraries/lwIP/Makefile b/Libraries/lwIP/Makefile index d6217e50710..8e6f126a8fa 100644 --- a/Libraries/lwIP/Makefile +++ b/Libraries/lwIP/Makefile @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ifeq "$(LWIP_DIR)" "" # If the location of the library is not specified, this Makefile will locate itself. diff --git a/Libraries/lwIP/Maxim/mxc_eth.c b/Libraries/lwIP/Maxim/mxc_eth.c index 8c2be160937..e4e46e0765a 100644 --- a/Libraries/lwIP/Maxim/mxc_eth.c +++ b/Libraries/lwIP/Maxim/mxc_eth.c @@ -1,17 +1,14 @@ -/* - * @file mxc_eth.c +/****************************************************************************** * - ****************************************************************************** - * Copyright (C) 2019 Maxim Integrated Products, Inc., All rights Reserved. + * Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -33,8 +30,24 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. + * ****************************************************************************** - */ + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #include #include diff --git a/Libraries/lwIP/include/Maxim/arch/cc.h b/Libraries/lwIP/include/Maxim/arch/cc.h index 4f6df4f32e1..6b14e2e5b27 100644 --- a/Libraries/lwIP/include/Maxim/arch/cc.h +++ b/Libraries/lwIP/include/Maxim/arch/cc.h @@ -1,17 +1,15 @@ -/* - * @file cc.h + +/****************************************************************************** * - ****************************************************************************** - * Copyright (C) 2019 Maxim Integrated Products, Inc., All rights Reserved. + * Copyright (C) 2019-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -33,8 +31,25 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. + * ****************************************************************************** - */ + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #ifndef LIBRARIES_LWIP_INCLUDE_MAXIM_ARCH_CC_H_ #define LIBRARIES_LWIP_INCLUDE_MAXIM_ARCH_CC_H_ diff --git a/Libraries/lwIP/include/Maxim/arch/sys_arch.h b/Libraries/lwIP/include/Maxim/arch/sys_arch.h index 39571fb75e5..5a4d6acc342 100644 --- a/Libraries/lwIP/include/Maxim/arch/sys_arch.h +++ b/Libraries/lwIP/include/Maxim/arch/sys_arch.h @@ -1,17 +1,14 @@ -/* - * @file sys_arch.h +/****************************************************************************** * - ****************************************************************************** - * Copyright (C) 2019 Maxim Integrated Products, Inc., All rights Reserved. + * Copyright (C) 2019-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -33,8 +30,25 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. + * ****************************************************************************** - */ + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + #ifndef LIBRARIES_LWIP_INCLUDE_MAXIM_ARCH_SYS_ARCH_H_ #define LIBRARIES_LWIP_INCLUDE_MAXIM_ARCH_SYS_ARCH_H_ diff --git a/Libraries/lwIP/include/Maxim/mxc_eth.h b/Libraries/lwIP/include/Maxim/mxc_eth.h index e706784e270..10c7e0f13fc 100644 --- a/Libraries/lwIP/include/Maxim/mxc_eth.h +++ b/Libraries/lwIP/include/Maxim/mxc_eth.h @@ -1,17 +1,14 @@ -/* - * @file mxc_eth.h +/****************************************************************************** * - ****************************************************************************** - * Copyright (C) 2019 Maxim Integrated Products, Inc., All rights Reserved. + * Copyright (C) 2019-2023 Maxim Integrated Products, Inc., All Rights Reserved. + * (now owned by Analog Devices, Inc.) * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -33,8 +30,24 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. + * ****************************************************************************** - */ + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ #ifndef LIBRARIES_LWIP_INCLUDE_MAXIM_MXC_ETH_H_ #define LIBRARIES_LWIP_INCLUDE_MAXIM_MXC_ETH_H_ diff --git a/Libraries/lwIP/lwip.mk b/Libraries/lwIP/lwip.mk index f08ca5cf2a5..aa81ed47ad0 100644 --- a/Libraries/lwIP/lwip.mk +++ b/Libraries/lwIP/lwip.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # Specify the build directory if not defined by the project ifeq "$(BUILD_DIR)" "" diff --git a/Libraries/lwIP/lwip_files.mk b/Libraries/lwIP/lwip_files.mk index 658455f7ebd..4b464873183 100644 --- a/Libraries/lwIP/lwip_files.mk +++ b/Libraries/lwIP/lwip_files.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,10 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - # $Date: 2018-08-31 14:08:14 -0500 (Fri, 31 Aug 2018) $ - # $Revision: 37586 $ + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. # - ############################################################################### + ############################################################################## # This is the name of the build output file diff --git a/Tools/Bluetooth/BLE_hci.py b/Tools/Bluetooth/BLE_hci.py index 0250ad4416a..70b9672ec60 100644 --- a/Tools/Bluetooth/BLE_hci.py +++ b/Tools/Bluetooth/BLE_hci.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## BLE_hci.py # diff --git a/Tools/Bluetooth/RS_fsl3.py b/Tools/Bluetooth/RS_fsl3.py index 752137fbd54..12d7ce834a5 100644 --- a/Tools/Bluetooth/RS_fsl3.py +++ b/Tools/Bluetooth/RS_fsl3.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## RS_fsl3.py # diff --git a/Tools/Bluetooth/RS_fsl3_sweep.py b/Tools/Bluetooth/RS_fsl3_sweep.py index 19b45a2d3ec..89afcb61fd9 100644 --- a/Tools/Bluetooth/RS_fsl3_sweep.py +++ b/Tools/Bluetooth/RS_fsl3_sweep.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## RS_fsl3_sweep.py # diff --git a/Tools/Bluetooth/conn_sweep.py b/Tools/Bluetooth/conn_sweep.py index da54e5a6a56..df6ed0e845d 100755 --- a/Tools/Bluetooth/conn_sweep.py +++ b/Tools/Bluetooth/conn_sweep.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## conn_sweep.py # diff --git a/Tools/Bluetooth/dtm_plotter.py b/Tools/Bluetooth/dtm_plotter.py index e101c7278f5..58b1dacae09 100644 --- a/Tools/Bluetooth/dtm_plotter.py +++ b/Tools/Bluetooth/dtm_plotter.py @@ -1,37 +1,55 @@ #! /usr/bin/env python3 -################################################################################ -# Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES -# OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of Maxim Integrated -# Products, Inc. shall not be used except as stated in the Maxim Integrated -# Products, Inc. Branding Policy. -# -# The mere transfer of this software does not imply any licenses -# of trade secrets, proprietary technology, copyrights, patents, -# trademarks, maskwork rights, or any other form of intellectual -# property whatsoever. Maxim Integrated Products, Inc. retains all -# ownership rights. -# ############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # plot_per_results.py # diff --git a/Tools/Bluetooth/dtm_sweep.py b/Tools/Bluetooth/dtm_sweep.py index 0637fca5fc4..58fa69ab596 100644 --- a/Tools/Bluetooth/dtm_sweep.py +++ b/Tools/Bluetooth/dtm_sweep.py @@ -1,253 +1,271 @@ -#! /usr/bin/env python3 - -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. - # - # Permission is hereby granted, free of charge, to any person obtaining a - # copy of this software and associated documentation files (the "Software"), - # to deal in the Software without restriction, including without limitation - # the rights to use, copy, modify, merge, publish, distribute, sublicense, - # and/or sell copies of the Software, and to permit persons to whom the - # Software is furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included - # in all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - # OTHER DEALINGS IN THE SOFTWARE. - # - # Except as contained in this notice, the name of Maxim Integrated - # Products, Inc. shall not be used except as stated in the Maxim Integrated - # Products, Inc. Branding Policy. - # - # The mere transfer of this software does not imply any licenses - # of trade secrets, proprietary technology, copyrights, patents, - # trademarks, maskwork rights, or any other form of intellectual - # property whatsoever. Maxim Integrated Products, Inc. retains all - # ownership rights. - # - ############################################################################### - -## dtm_sweep.py - # - # Sweep connection parameters. - # - # Ensure that both targets are built with BT_VER := 9 - # - -import sys -import argparse -from argparse import RawTextHelpFormatter -from time import sleep -import itertools -from mini_RCDAT_USB import mini_RCDAT_USB -from BLE_hci import BLE_hci -from BLE_hci import Namespace -import socket -import time - -if socket.gethostname() == "wall-e": - rf_switch = True -else: - rf_switch = False - -# Setup the command line description text -descText = """ -DTM sweep. - -This tool uses a Mini Circuits RCDAT to control attenuation between two devices -running DTM software. The Packet error rate (PER) of the master will be collected by setting the slave device in tx test mode and the master in rx test mode. -A vendor specific command is sent which sets the total number of packets which shoule be transmitted. -The total number of packets transmitted will be compared to the number of packtes received and the PER will be -calculated as numPacketsReceived/numPacketsTransmitted * 100 - -IMPORTANT: -The tx test command is vendor specific and is only guarenteed to work on MAX32 BLE devices running the latest stack. -The command is also supported by Nordic SoCs -""" - -# Parse the command line arguments -parser = argparse.ArgumentParser(description=descText, formatter_class=RawTextHelpFormatter) -parser.add_argument('slaveSerial',help='Serial port for slave device') -parser.add_argument('masterSerial',help='Serial port for master device') -parser.add_argument('results',help='CSV files to store the results') -parser.add_argument('-d', '--delay', default=5,help='Number of seconds to wait before ending the test') -parser.add_argument('-l', '--limit', default=0,help='PER limit for return value') -parser.add_argument('-p', '--phys', default="1",help='PHYs to test with, comma separated list with 1-4.') -parser.add_argument('-c', '--channel', default="0", help="Test channel, 0-39") -parser.add_argument('-t', '--txpows', default="0",help='TX powers to test with, comma separated list.') -parser.add_argument('-a', '--attens', help='Attenuation settings to use, comma separated list.') -parser.add_argument('-s', '--step', default=10, help='Attenuation sweep step size in dBm.') -parser.add_argument('-e', '--pktlen', default="250", help="packet length, comma separated list.") - -parser.add_argument('-n', '--numpkt', default='5000',help='Number of packets in test.') - -parser.add_argument('--mtp', default="", help="master TRACE serial port") -parser.add_argument('--stp', default="", help="slave TRACE serial port") - -args = parser.parse_args() -print(args) - -print("--------------------------------------------------------------------------------------------") -packetLengths = args.pktlen.strip().split(",") -numPackets = args.numpkt.strip().split(",") -phys = args.phys.strip().split(",") -txPowers = args.txpows.strip().split(",") -chan = args.channel.strip().split(",") - -if args.attens is None: - if int(args.step) == 0: - attens = [20, 70] - else: - attens = list(range(20, 90, int(args.step))) - - # Add the max attenuation - attens.append(90) -else: - attens = args.attens.strip().split(",") - -print("slaveSerial :", args.slaveSerial) -print("masterSerial :", args.masterSerial) -print("results :", args.results) -print("delay :", args.delay) -print("packetLengths :", packetLengths) -print("numPackets :", numPackets) -print("phys :", phys) -print("attens :", attens) -print("txPowers :", txPowers) -print("Channel :", chan) -print("PER limit :", args.limit) - -# Open the results file, write the parameters -results = open(args.results, "a") -if 0: - results.write("# slaveSerial : "+str(args.slaveSerial)+"\n") - results.write("# masterSerial : "+str(args.masterSerial)+"\n") - results.write("# results : "+str(args.results)+"\n") - results.write("# delay : "+str(args.delay)+"\n") - results.write("# packetLengths : "+str(packetLengths)+"\n") - results.write("# numPackets : "+str(numPackets)+"\n") - results.write("# phys : "+str(phys)+"\n") - results.write("# attens : "+str(attens)+"\n") - results.write("# txPower : "+str(txPower)+"\n") - results.write("# Channel : "+str(chan)+"\n") - results.write("# PER limit : "+str(args.limit)+"\n") - - # Write the header line - results.write("packetLen,numPkt,phy,atten,txPower,channel,perMaster,perSlave\n") - -# Create the BLE_hci objects -hciSlave = BLE_hci(Namespace(serialPort=args.slaveSerial, monPort=args.stp, baud=115200, id=2)) -hciMaster = BLE_hci(Namespace(serialPort=args.masterSerial, monPort=args.mtp, baud=115200, id=1)) - -perMax = 0 - -for packetLen, numPkt, phy, txPower, chan in itertools.product(packetLengths, numPackets, phys, txPowers, chan): - per_100 = 0 - for atten in attens: - RETRY = 2 - while per_100 < RETRY: - start_secs = time.time() - print(f'\n---------------------------------------------------------------------------------------') - print(f'packetLen: {packetLen}, numPackets: {numPkt}, phy: {phy}, atten: {atten}, txPower: {txPower}, Channel: {chan}\n') - - print("Set the requested attenuation.") - if rf_switch: - mini_RCDAT = mini_RCDAT_USB(Namespace(atten=atten)) - sleep(0.1) - - print("\nReset the devices.") - hciSlave.resetFunc(None) - hciMaster.resetFunc(None) - sleep(0.1) - - print("\nSet the PHY.") - hciMaster.phyFunc(Namespace(phy=phy), timeout=1) - - print("\nSet the txPower.") - hciSlave.txPowerFunc(Namespace(power=txPower, handle="0")) - hciMaster.txPowerFunc(Namespace(power=txPower, handle="0")) - - - print('--------------') - print("\nSet slave to RX.") - print(chan) - hciSlave.rxTestFunc(Namespace(channel=chan, phy=phy)) - print("\nSet master to TX, start test.") - hciMaster.txTestVSFunc(Namespace(channel=chan, phy=phy, packetLength=packetLen, numPackets=numPkt,payload=0)) - print(f"\nWait {args.delay} secs for the DTM Test to complete.") - sleep(int(args.delay)) - - print("\nEnd test.") - hciMaster.endTestFunc(None) - perSlave = hciSlave.endTestFunc(None) / int(numPkt) * 100 - - print('--------------') - print("\nReset the devices.") - hciSlave.resetFunc(None) - hciMaster.resetFunc(None) - sleep(0.1) - print(chan) - print("\nSet master to RX.") - hciMaster.rxTestFunc(Namespace(channel=chan, phy=phy)) - print("\nSet slave to TX, start test.") - hciSlave.txTestVSFunc(Namespace(channel=chan, phy=phy, packetLength=packetLen, numPackets=numPkt,payload=0)) - - print(f"\nWait {args.delay} secs for the DTM Test to complete.") - sleep(int(args.delay)) - - print("\nEnd test.") - hciSlave.endTestFunc(None) - perMaster = hciMaster.endTestFunc(None) / int(numPkt) * 100 - - print("\nCollect results.") - print("perMaster : ", perMaster) - print("perSlave : ", perSlave) - - if perMaster is None or perSlave is None: - per_100 += 1 - print(f'Retry: {per_100}') - continue - - # Record max per - if perMaster > perMax: - perMax = perMaster - if perSlave > perMax: - perMax = perSlave - print("perMax : ", perMax) - - break - - if per_100 >= RETRY: - print(f'Tried {per_100} times, give up.') - perMaster = 100 - perSlave = 100 - perMax = 100 - - # Save the results to file - results.write(str(packetLen)+","+str(numPkt)+","+str(phy)+",-"+str(atten)+","+str(txPower)+","+str(chan)+","+str(perMaster)+","+str(perSlave)+"\n") - end_secs = time.time() - print(f'\nUsed {(end_secs - start_secs):.0f} seconds.') - -print('--------------------------------------------------------------------------------------------') -print("Reset the devices.") -hciSlave.resetFunc(None) -hciMaster.resetFunc(None) -sleep(0.1) - -results.write("\n") -results.close() - -print("perMax: ", perMax) - -if float(args.limit) != 0.0: - if perMax > float(args.limit): - print("PER too high!") - sys.exit(1) - -sys.exit(0) +#! /usr/bin/env python3 + +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) + # + # Permission is hereby granted, free of charge, to any person obtaining a + # copy of this software and associated documentation files (the "Software"), + # to deal in the Software without restriction, including without limitation + # the rights to use, copy, modify, merge, publish, distribute, sublicense, + # and/or sell copies of the Software, and to permit persons to whom the + # Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included + # in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES + # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + # OTHER DEALINGS IN THE SOFTWARE. + # + # Except as contained in this notice, the name of Maxim Integrated + # Products, Inc. shall not be used except as stated in the Maxim Integrated + # Products, Inc. Branding Policy. + # + # The mere transfer of this software does not imply any licenses + # of trade secrets, proprietary technology, copyrights, patents, + # trademarks, maskwork rights, or any other form of intellectual + # property whatsoever. Maxim Integrated Products, Inc. retains all + # ownership rights. + # + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## + +## dtm_sweep.py + # + # Sweep connection parameters. + # + # Ensure that both targets are built with BT_VER := 9 + # + +import sys +import argparse +from argparse import RawTextHelpFormatter +from time import sleep +import itertools +from mini_RCDAT_USB import mini_RCDAT_USB +from BLE_hci import BLE_hci +from BLE_hci import Namespace +import socket +import time + +if socket.gethostname() == "wall-e": + rf_switch = True +else: + rf_switch = False + +# Setup the command line description text +descText = """ +DTM sweep. + +This tool uses a Mini Circuits RCDAT to control attenuation between two devices +running DTM software. The Packet error rate (PER) of the master will be collected by setting the slave device in tx test mode and the master in rx test mode. +A vendor specific command is sent which sets the total number of packets which shoule be transmitted. +The total number of packets transmitted will be compared to the number of packtes received and the PER will be +calculated as numPacketsReceived/numPacketsTransmitted * 100 + +IMPORTANT: +The tx test command is vendor specific and is only guarenteed to work on MAX32 BLE devices running the latest stack. +The command is also supported by Nordic SoCs +""" + +# Parse the command line arguments +parser = argparse.ArgumentParser(description=descText, formatter_class=RawTextHelpFormatter) +parser.add_argument('slaveSerial',help='Serial port for slave device') +parser.add_argument('masterSerial',help='Serial port for master device') +parser.add_argument('results',help='CSV files to store the results') +parser.add_argument('-d', '--delay', default=5,help='Number of seconds to wait before ending the test') +parser.add_argument('-l', '--limit', default=0,help='PER limit for return value') +parser.add_argument('-p', '--phys', default="1",help='PHYs to test with, comma separated list with 1-4.') +parser.add_argument('-c', '--channel', default="0", help="Test channel, 0-39") +parser.add_argument('-t', '--txpows', default="0",help='TX powers to test with, comma separated list.') +parser.add_argument('-a', '--attens', help='Attenuation settings to use, comma separated list.') +parser.add_argument('-s', '--step', default=10, help='Attenuation sweep step size in dBm.') +parser.add_argument('-e', '--pktlen', default="250", help="packet length, comma separated list.") + +parser.add_argument('-n', '--numpkt', default='5000',help='Number of packets in test.') + +parser.add_argument('--mtp', default="", help="master TRACE serial port") +parser.add_argument('--stp', default="", help="slave TRACE serial port") + +args = parser.parse_args() +print(args) + +print("--------------------------------------------------------------------------------------------") +packetLengths = args.pktlen.strip().split(",") +numPackets = args.numpkt.strip().split(",") +phys = args.phys.strip().split(",") +txPowers = args.txpows.strip().split(",") +chan = args.channel.strip().split(",") + +if args.attens is None: + if int(args.step) == 0: + attens = [20, 70] + else: + attens = list(range(20, 90, int(args.step))) + + # Add the max attenuation + attens.append(90) +else: + attens = args.attens.strip().split(",") + +print("slaveSerial :", args.slaveSerial) +print("masterSerial :", args.masterSerial) +print("results :", args.results) +print("delay :", args.delay) +print("packetLengths :", packetLengths) +print("numPackets :", numPackets) +print("phys :", phys) +print("attens :", attens) +print("txPowers :", txPowers) +print("Channel :", chan) +print("PER limit :", args.limit) + +# Open the results file, write the parameters +results = open(args.results, "a") +if 0: + results.write("# slaveSerial : "+str(args.slaveSerial)+"\n") + results.write("# masterSerial : "+str(args.masterSerial)+"\n") + results.write("# results : "+str(args.results)+"\n") + results.write("# delay : "+str(args.delay)+"\n") + results.write("# packetLengths : "+str(packetLengths)+"\n") + results.write("# numPackets : "+str(numPackets)+"\n") + results.write("# phys : "+str(phys)+"\n") + results.write("# attens : "+str(attens)+"\n") + results.write("# txPower : "+str(txPower)+"\n") + results.write("# Channel : "+str(chan)+"\n") + results.write("# PER limit : "+str(args.limit)+"\n") + + # Write the header line + results.write("packetLen,numPkt,phy,atten,txPower,channel,perMaster,perSlave\n") + +# Create the BLE_hci objects +hciSlave = BLE_hci(Namespace(serialPort=args.slaveSerial, monPort=args.stp, baud=115200, id=2)) +hciMaster = BLE_hci(Namespace(serialPort=args.masterSerial, monPort=args.mtp, baud=115200, id=1)) + +perMax = 0 + +for packetLen, numPkt, phy, txPower, chan in itertools.product(packetLengths, numPackets, phys, txPowers, chan): + per_100 = 0 + for atten in attens: + RETRY = 2 + while per_100 < RETRY: + start_secs = time.time() + print(f'\n---------------------------------------------------------------------------------------') + print(f'packetLen: {packetLen}, numPackets: {numPkt}, phy: {phy}, atten: {atten}, txPower: {txPower}, Channel: {chan}\n') + + print("Set the requested attenuation.") + if rf_switch: + mini_RCDAT = mini_RCDAT_USB(Namespace(atten=atten)) + sleep(0.1) + + print("\nReset the devices.") + hciSlave.resetFunc(None) + hciMaster.resetFunc(None) + sleep(0.1) + + print("\nSet the PHY.") + hciMaster.phyFunc(Namespace(phy=phy), timeout=1) + + print("\nSet the txPower.") + hciSlave.txPowerFunc(Namespace(power=txPower, handle="0")) + hciMaster.txPowerFunc(Namespace(power=txPower, handle="0")) + + + print('--------------') + print("\nSet slave to RX.") + print(chan) + hciSlave.rxTestFunc(Namespace(channel=chan, phy=phy)) + print("\nSet master to TX, start test.") + hciMaster.txTestVSFunc(Namespace(channel=chan, phy=phy, packetLength=packetLen, numPackets=numPkt,payload=0)) + print(f"\nWait {args.delay} secs for the DTM Test to complete.") + sleep(int(args.delay)) + + print("\nEnd test.") + hciMaster.endTestFunc(None) + perSlave = hciSlave.endTestFunc(None) / int(numPkt) * 100 + + print('--------------') + print("\nReset the devices.") + hciSlave.resetFunc(None) + hciMaster.resetFunc(None) + sleep(0.1) + print(chan) + print("\nSet master to RX.") + hciMaster.rxTestFunc(Namespace(channel=chan, phy=phy)) + print("\nSet slave to TX, start test.") + hciSlave.txTestVSFunc(Namespace(channel=chan, phy=phy, packetLength=packetLen, numPackets=numPkt,payload=0)) + + print(f"\nWait {args.delay} secs for the DTM Test to complete.") + sleep(int(args.delay)) + + print("\nEnd test.") + hciSlave.endTestFunc(None) + perMaster = hciMaster.endTestFunc(None) / int(numPkt) * 100 + + print("\nCollect results.") + print("perMaster : ", perMaster) + print("perSlave : ", perSlave) + + if perMaster is None or perSlave is None: + per_100 += 1 + print(f'Retry: {per_100}') + continue + + # Record max per + if perMaster > perMax: + perMax = perMaster + if perSlave > perMax: + perMax = perSlave + print("perMax : ", perMax) + + break + + if per_100 >= RETRY: + print(f'Tried {per_100} times, give up.') + perMaster = 100 + perSlave = 100 + perMax = 100 + + # Save the results to file + results.write(str(packetLen)+","+str(numPkt)+","+str(phy)+",-"+str(atten)+","+str(txPower)+","+str(chan)+","+str(perMaster)+","+str(perSlave)+"\n") + end_secs = time.time() + print(f'\nUsed {(end_secs - start_secs):.0f} seconds.') + +print('--------------------------------------------------------------------------------------------') +print("Reset the devices.") +hciSlave.resetFunc(None) +hciMaster.resetFunc(None) +sleep(0.1) + +results.write("\n") +results.close() + +print("perMax: ", perMax) + +if float(args.limit) != 0.0: + if perMax > float(args.limit): + print("PER too high!") + sys.exit(1) + +sys.exit(0) diff --git a/Tools/Bluetooth/dtm_sweep_vs.py b/Tools/Bluetooth/dtm_sweep_vs.py index 1aca86278a8..dfd00ce4077 100644 --- a/Tools/Bluetooth/dtm_sweep_vs.py +++ b/Tools/Bluetooth/dtm_sweep_vs.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## dtm_sweep.py # diff --git a/Tools/Bluetooth/dtm_sweep_vs_allCh.py b/Tools/Bluetooth/dtm_sweep_vs_allCh.py index f67010b37cb..5c809260372 100644 --- a/Tools/Bluetooth/dtm_sweep_vs_allCh.py +++ b/Tools/Bluetooth/dtm_sweep_vs_allCh.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## dtm_sweep.py # diff --git a/Tools/Bluetooth/mini_RCDAT_USB.py b/Tools/Bluetooth/mini_RCDAT_USB.py index 09e9654aa37..a3a0c010493 100644 --- a/Tools/Bluetooth/mini_RCDAT_USB.py +++ b/Tools/Bluetooth/mini_RCDAT_USB.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## mini_RCDAT_USB.py # diff --git a/Tools/Bluetooth/rf_switch.py b/Tools/Bluetooth/rf_switch.py index 637190cb940..45a86d4b57f 100644 --- a/Tools/Bluetooth/rf_switch.py +++ b/Tools/Bluetooth/rf_switch.py @@ -1,7 +1,9 @@ #! /usr/bin/env python3 -################################################################################ - # Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -31,7 +33,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # - ############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## ## rf_switch.py # diff --git a/Tools/Flash/flash.mk b/Tools/Flash/flash.mk index 81712986747..48ade04a461 100644 --- a/Tools/Flash/flash.mk +++ b/Tools/Flash/flash.mk @@ -1,5 +1,7 @@ -################################################################################ - # Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. +############################################################################### + # + # Copyright (C) 2022-2023 Maxim Integrated Products, Inc., All Rights Reserved. + # (now owned by Analog Devices, Inc.) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), @@ -29,7 +31,23 @@ # property whatsoever. Maxim Integrated Products, Inc. retains all # ownership rights. # -############################################################################### + ############################################################################## + # + # Copyright 2023 Analog Devices, Inc. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + ############################################################################## # Makefile targets to flash with JLinkExe or OpenOCD